From a083a15650496db67aa057127c13ad75fbaaab7f Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Fri, 2 Aug 2024 07:49:53 +0200 Subject: [PATCH 01/10] Clean up gitignore (#2012) * Clean up gitignore * review * reivew --- .gitignore | 43 ++++++------------------------------------- 1 file changed, 6 insertions(+), 37 deletions(-) diff --git a/.gitignore b/.gitignore index f10e23510..fcb8f37f6 100644 --- a/.gitignore +++ b/.gitignore @@ -7,54 +7,23 @@ __pycache__/ .vscode/ .vs/ .idea/ -CMakeLists.txt -cmake-build-debug -venv/ -.venv/ # Project-specific ignores +extracted/ build/ expected/ -notes/ -baserom/ -baseroms/*/segments/ docs/doxygen/ -*.elf -*.sra *.z64 *.n64 *.v64 -*.map -*.dump -out.txt -*.ram -# Tool artifacts -tools/mipspro7.2_compiler/ -tools/overlayhelpers/batchdisasm/output/* -tools/overlayhelpers/batchdisasm/output2/* -tools/overlayhelpers/batchdisasm/mipsdisasm/* -tools/disasm/output/* -tools/asmsplitter/asm/* -tools/asmsplitter/c/* +# Tools +.venv/ ctx.c tools/*dSYM/ graphs/ -# Assets -*.png -*.jpg -*.mdli -*.anmi -*.obj -*.mtl -*.fbx -!*_custom* -.extracted-assets.json -extracted/ - -# Docs -!docs/tutorial/ - # Per-user configuration -.python-version +# If you want to use your own gitignore rules without modifying this file: +# - use `git config core.excludesFile path/to/my_gitignore_file` +# - or edit `.git/info/exclude` From 078e21f6c62b5acb4744cefd97718f63bc622831 Mon Sep 17 00:00:00 2001 From: fig02 Date: Fri, 2 Aug 2024 17:50:02 -0400 Subject: [PATCH 02/10] `InitVars` -> `Profile` (#2011) * rename ActorInit * rename actorInit * rename initInfo * EffectSs Profile * _InitVars -> _Profile * format, loose ends * revert tutorial --- include/z64actor.h | 4 +- include/z64effect.h | 4 +- src/code/z_actor.c | 46 ++++++++++--------- src/code/z_actor_dlftbls.c | 24 +++++----- src/code/z_effect_soft_sprite.c | 20 ++++---- src/code/z_effect_soft_sprite_dlftbls.c | 10 ++-- src/code/z_en_a_keep.c | 2 +- src/code/z_en_item00.c | 2 +- src/code/z_player_call.c | 2 +- src/code/z_scene.c | 2 +- .../actors/ovl_Arms_Hook/z_arms_hook.c | 2 +- .../actors/ovl_Arrow_Fire/z_arrow_fire.c | 2 +- .../actors/ovl_Arrow_Ice/z_arrow_ice.c | 2 +- .../actors/ovl_Arrow_Light/z_arrow_light.c | 2 +- .../ovl_Bg_Bdan_Objects/z_bg_bdan_objects.c | 2 +- .../ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c | 2 +- .../actors/ovl_Bg_Bom_Guard/z_bg_bom_guard.c | 2 +- .../actors/ovl_Bg_Bombwall/z_bg_bombwall.c | 2 +- .../actors/ovl_Bg_Bowl_Wall/z_bg_bowl_wall.c | 2 +- .../actors/ovl_Bg_Breakwall/z_bg_breakwall.c | 2 +- .../actors/ovl_Bg_Ddan_Jd/z_bg_ddan_jd.c | 2 +- .../actors/ovl_Bg_Ddan_Kd/z_bg_ddan_kd.c | 2 +- .../actors/ovl_Bg_Dodoago/z_bg_dodoago.c | 2 +- .../ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.c | 2 +- .../ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c | 2 +- .../ovl_Bg_Gate_Shutter/z_bg_gate_shutter.c | 2 +- .../ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c | 2 +- .../ovl_Bg_Gnd_Darkmeiro/z_bg_gnd_darkmeiro.c | 2 +- .../ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.c | 2 +- .../ovl_Bg_Gnd_Iceblock/z_bg_gnd_iceblock.c | 2 +- .../ovl_Bg_Gnd_Nisekabe/z_bg_gnd_nisekabe.c | 2 +- .../ovl_Bg_Gnd_Soulmeiro/z_bg_gnd_soulmeiro.c | 2 +- src/overlays/actors/ovl_Bg_Haka/z_bg_haka.c | 2 +- .../actors/ovl_Bg_Haka_Gate/z_bg_haka_gate.c | 2 +- .../actors/ovl_Bg_Haka_Huta/z_bg_haka_huta.c | 2 +- .../ovl_Bg_Haka_Megane/z_bg_haka_megane.c | 2 +- .../ovl_Bg_Haka_MeganeBG/z_bg_haka_meganebg.c | 2 +- .../ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c | 2 +- .../actors/ovl_Bg_Haka_Ship/z_bg_haka_ship.c | 2 +- .../actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.c | 2 +- .../actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.c | 2 +- .../ovl_Bg_Haka_Water/z_bg_haka_water.c | 2 +- .../actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c | 2 +- .../ovl_Bg_Heavy_Block/z_bg_heavy_block.c | 2 +- .../ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c | 2 +- .../ovl_Bg_Hidan_Dalm/z_bg_hidan_dalm.c | 2 +- .../z_bg_hidan_firewall.c | 2 +- .../ovl_Bg_Hidan_Fslift/z_bg_hidan_fslift.c | 2 +- .../ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c | 2 +- .../ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.c | 2 +- .../ovl_Bg_Hidan_Hrock/z_bg_hidan_hrock.c | 2 +- .../ovl_Bg_Hidan_Kousi/z_bg_hidan_kousi.c | 2 +- .../z_bg_hidan_kowarerukabe.c | 2 +- .../ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c | 2 +- .../z_bg_hidan_rsekizou.c | 2 +- .../ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c | 2 +- .../ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c | 2 +- .../ovl_Bg_Hidan_Syoku/z_bg_hidan_syoku.c | 2 +- .../ovl_Bg_Ice_Objects/z_bg_ice_objects.c | 2 +- .../ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c | 2 +- .../ovl_Bg_Ice_Shutter/z_bg_ice_shutter.c | 2 +- .../ovl_Bg_Ice_Turara/z_bg_ice_turara.c | 2 +- .../actors/ovl_Bg_Ingate/z_bg_ingate.c | 2 +- .../ovl_Bg_Jya_1flift/z_bg_jya_1flift.c | 2 +- .../z_bg_jya_amishutter.c | 2 +- .../ovl_Bg_Jya_Bigmirror/z_bg_jya_bigmirror.c | 2 +- .../actors/ovl_Bg_Jya_Block/z_bg_jya_block.c | 2 +- .../z_bg_jya_bombchuiwa.c | 2 +- .../ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c | 2 +- .../actors/ovl_Bg_Jya_Cobra/z_bg_jya_cobra.c | 2 +- .../ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.c | 2 +- .../ovl_Bg_Jya_Haheniron/z_bg_jya_haheniron.c | 2 +- .../ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.c | 2 +- .../ovl_Bg_Jya_Kanaami/z_bg_jya_kanaami.c | 2 +- .../actors/ovl_Bg_Jya_Lift/z_bg_jya_lift.c | 2 +- .../ovl_Bg_Jya_Megami/z_bg_jya_megami.c | 2 +- .../z_bg_jya_zurerukabe.c | 2 +- .../ovl_Bg_Menkuri_Eye/z_bg_menkuri_eye.c | 2 +- .../z_bg_menkuri_kaiten.c | 2 +- .../z_bg_menkuri_nisekabe.c | 2 +- .../ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c | 2 +- .../ovl_Bg_Mizu_Movebg/z_bg_mizu_movebg.c | 2 +- .../ovl_Bg_Mizu_Shutter/z_bg_mizu_shutter.c | 2 +- .../actors/ovl_Bg_Mizu_Uzu/z_bg_mizu_uzu.c | 2 +- .../ovl_Bg_Mizu_Water/z_bg_mizu_water.c | 2 +- src/overlays/actors/ovl_Bg_Mjin/z_bg_mjin.c | 2 +- .../ovl_Bg_Mori_Bigst/z_bg_mori_bigst.c | 2 +- .../ovl_Bg_Mori_Elevator/z_bg_mori_elevator.c | 2 +- .../ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c | 2 +- .../ovl_Bg_Mori_Hashira4/z_bg_mori_hashira4.c | 2 +- .../ovl_Bg_Mori_Hineri/z_bg_mori_hineri.c | 2 +- .../ovl_Bg_Mori_Idomizu/z_bg_mori_idomizu.c | 2 +- .../z_bg_mori_kaitenkabe.c | 2 +- .../z_bg_mori_rakkatenjo.c | 2 +- .../actors/ovl_Bg_Po_Event/z_bg_po_event.c | 2 +- .../ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c | 2 +- .../actors/ovl_Bg_Pushbox/z_bg_pushbox.c | 2 +- .../ovl_Bg_Relay_Objects/z_bg_relay_objects.c | 2 +- .../ovl_Bg_Spot00_Break/z_bg_spot00_break.c | 2 +- .../z_bg_spot00_hanebasi.c | 2 +- .../ovl_Bg_Spot01_Fusya/z_bg_spot01_fusya.c | 2 +- .../z_bg_spot01_idohashira.c | 2 +- .../z_bg_spot01_idomizu.c | 2 +- .../z_bg_spot01_idosoko.c | 2 +- .../z_bg_spot01_objects2.c | 2 +- .../z_bg_spot02_objects.c | 2 +- .../ovl_Bg_Spot03_Taki/z_bg_spot03_taki.c | 2 +- .../ovl_Bg_Spot05_Soko/z_bg_spot05_soko.c | 2 +- .../z_bg_spot06_objects.c | 2 +- .../ovl_Bg_Spot07_Taki/z_bg_spot07_taki.c | 2 +- .../z_bg_spot08_bakudankabe.c | 2 +- .../z_bg_spot08_iceblock.c | 2 +- .../ovl_Bg_Spot09_Obj/z_bg_spot09_obj.c | 2 +- .../z_bg_spot11_bakudankabe.c | 2 +- .../ovl_Bg_Spot11_Oasis/z_bg_spot11_oasis.c | 2 +- .../ovl_Bg_Spot12_Gate/z_bg_spot12_gate.c | 2 +- .../ovl_Bg_Spot12_Saku/z_bg_spot12_saku.c | 2 +- .../ovl_Bg_Spot15_Rrbox/z_bg_spot15_rrbox.c | 2 +- .../ovl_Bg_Spot15_Saku/z_bg_spot15_saku.c | 2 +- .../z_bg_spot16_bombstone.c | 2 +- .../z_bg_spot16_doughnut.c | 2 +- .../z_bg_spot17_bakudankabe.c | 2 +- .../ovl_Bg_Spot17_Funen/z_bg_spot17_funen.c | 2 +- .../ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c | 2 +- .../ovl_Bg_Spot18_Futa/z_bg_spot18_futa.c | 2 +- .../ovl_Bg_Spot18_Obj/z_bg_spot18_obj.c | 2 +- .../z_bg_spot18_shutter.c | 2 +- .../actors/ovl_Bg_Sst_Floor/z_bg_sst_floor.c | 2 +- .../ovl_Bg_Toki_Hikari/z_bg_toki_hikari.c | 2 +- .../actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c | 2 +- .../actors/ovl_Bg_Treemouth/z_bg_treemouth.c | 2 +- .../actors/ovl_Bg_Umajump/z_bg_umajump.c | 2 +- .../actors/ovl_Bg_Vb_Sima/z_bg_vb_sima.c | 2 +- .../actors/ovl_Bg_Ydan_Hasi/z_bg_ydan_hasi.c | 2 +- .../ovl_Bg_Ydan_Maruta/z_bg_ydan_maruta.c | 2 +- .../actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c | 2 +- src/overlays/actors/ovl_Bg_Zg/z_bg_zg.c | 2 +- .../actors/ovl_Boss_Dodongo/z_boss_dodongo.c | 2 +- src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c | 2 +- src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c | 2 +- .../actors/ovl_Boss_Ganon/z_boss_ganon.c | 2 +- .../actors/ovl_Boss_Ganon2/z_boss_ganon2.c | 2 +- .../ovl_Boss_Ganondrof/z_boss_ganondrof.c | 2 +- .../actors/ovl_Boss_Goma/z_boss_goma.c | 2 +- src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c | 2 +- src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c | 2 +- src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c | 2 +- src/overlays/actors/ovl_Boss_Va/z_boss_va.c | 2 +- src/overlays/actors/ovl_Demo_6K/z_demo_6k.c | 2 +- src/overlays/actors/ovl_Demo_Du/z_demo_du.c | 2 +- src/overlays/actors/ovl_Demo_Ec/z_demo_ec.c | 2 +- .../actors/ovl_Demo_Effect/z_demo_effect.c | 2 +- src/overlays/actors/ovl_Demo_Ext/z_demo_ext.c | 2 +- .../actors/ovl_Demo_Geff/z_demo_geff.c | 2 +- src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c | 2 +- src/overlays/actors/ovl_Demo_Go/z_demo_go.c | 2 +- src/overlays/actors/ovl_Demo_Gt/z_demo_gt.c | 2 +- src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c | 2 +- src/overlays/actors/ovl_Demo_Im/z_demo_im.c | 2 +- .../actors/ovl_Demo_Kankyo/z_demo_kankyo.c | 2 +- .../actors/ovl_Demo_Kekkai/z_demo_kekkai.c | 2 +- src/overlays/actors/ovl_Demo_Sa/z_demo_sa.c | 2 +- src/overlays/actors/ovl_Demo_Shd/z_demo_shd.c | 2 +- .../actors/ovl_Demo_Tre_Lgt/z_demo_tre_lgt.c | 2 +- src/overlays/actors/ovl_Door_Ana/z_door_ana.c | 2 +- .../actors/ovl_Door_Gerudo/z_door_gerudo.c | 2 +- .../actors/ovl_Door_Killer/z_door_killer.c | 2 +- .../actors/ovl_Door_Shutter/z_door_shutter.c | 6 +-- .../actors/ovl_Door_Toki/z_door_toki.c | 2 +- .../actors/ovl_Door_Warp1/z_door_warp1.c | 2 +- .../actors/ovl_Efc_Erupc/z_efc_erupc.c | 2 +- src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c | 2 +- src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c | 2 +- src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c | 2 +- src/overlays/actors/ovl_En_Am/z_en_am.c | 2 +- src/overlays/actors/ovl_En_Ani/z_en_ani.c | 2 +- .../actors/ovl_En_Anubice/z_en_anubice.c | 2 +- .../ovl_En_Anubice_Fire/z_en_anubice_fire.c | 2 +- .../ovl_En_Anubice_Tag/z_en_anubice_tag.c | 2 +- .../actors/ovl_En_Arow_Trap/z_en_arow_trap.c | 2 +- src/overlays/actors/ovl_En_Arrow/z_en_arrow.c | 2 +- .../ovl_En_Attack_Niw/z_en_attack_niw.c | 2 +- src/overlays/actors/ovl_En_Ba/z_en_ba.c | 2 +- src/overlays/actors/ovl_En_Bb/z_en_bb.c | 2 +- .../actors/ovl_En_Bdfire/z_en_bdfire.c | 2 +- .../actors/ovl_En_Bigokuta/z_en_bigokuta.c | 2 +- src/overlays/actors/ovl_En_Bili/z_en_bili.c | 2 +- src/overlays/actors/ovl_En_Bird/z_en_bird.c | 2 +- .../actors/ovl_En_Blkobj/z_en_blkobj.c | 2 +- src/overlays/actors/ovl_En_Bom/z_en_bom.c | 2 +- .../ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c | 2 +- .../ovl_En_Bom_Bowl_Pit/z_en_bom_bowl_pit.c | 2 +- .../actors/ovl_En_Bom_Chu/z_en_bom_chu.c | 2 +- src/overlays/actors/ovl_En_Bombf/z_en_bombf.c | 2 +- src/overlays/actors/ovl_En_Boom/z_en_boom.c | 2 +- src/overlays/actors/ovl_En_Box/z_en_box.c | 2 +- src/overlays/actors/ovl_En_Brob/z_en_brob.c | 2 +- .../actors/ovl_En_Bubble/z_en_bubble.c | 2 +- src/overlays/actors/ovl_En_Butte/z_en_butte.c | 2 +- src/overlays/actors/ovl_En_Bw/z_en_bw.c | 2 +- src/overlays/actors/ovl_En_Bx/z_en_bx.c | 2 +- .../actors/ovl_En_Changer/z_en_changer.c | 2 +- .../actors/ovl_En_Clear_Tag/z_en_clear_tag.c | 2 +- src/overlays/actors/ovl_En_Cow/z_en_cow.c | 2 +- src/overlays/actors/ovl_En_Crow/z_en_crow.c | 2 +- src/overlays/actors/ovl_En_Cs/z_en_cs.c | 2 +- src/overlays/actors/ovl_En_Daiku/z_en_daiku.c | 2 +- .../z_en_daiku_kakariko.c | 2 +- .../actors/ovl_En_Dekubaba/z_en_dekubaba.c | 2 +- .../actors/ovl_En_Dekunuts/z_en_dekunuts.c | 2 +- src/overlays/actors/ovl_En_Dh/z_en_dh.c | 2 +- src/overlays/actors/ovl_En_Dha/z_en_dha.c | 2 +- .../ovl_En_Diving_Game/z_en_diving_game.c | 2 +- src/overlays/actors/ovl_En_Dns/z_en_dns.c | 2 +- .../actors/ovl_En_Dnt_Demo/z_en_dnt_demo.c | 2 +- .../actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c | 2 +- .../actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c | 2 +- .../actors/ovl_En_Dodojr/z_en_dodojr.c | 2 +- .../actors/ovl_En_Dodongo/z_en_dodongo.c | 2 +- src/overlays/actors/ovl_En_Dog/z_en_dog.c | 2 +- src/overlays/actors/ovl_En_Door/z_en_door.c | 2 +- src/overlays/actors/ovl_En_Ds/z_en_ds.c | 2 +- src/overlays/actors/ovl_En_Du/z_en_du.c | 2 +- .../actors/ovl_En_Dy_Extra/z_en_dy_extra.c | 2 +- src/overlays/actors/ovl_En_Eg/z_en_eg.c | 2 +- src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c | 2 +- src/overlays/actors/ovl_En_Elf/z_en_elf.c | 2 +- .../actors/ovl_En_Encount1/z_en_encount1.c | 2 +- .../actors/ovl_En_Encount2/z_en_encount2.c | 2 +- .../actors/ovl_En_Ex_Item/z_en_ex_item.c | 2 +- .../actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.c | 2 +- src/overlays/actors/ovl_En_Fd/z_en_fd.c | 2 +- .../actors/ovl_En_Fd_Fire/z_en_fd_fire.c | 2 +- .../actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c | 2 +- .../actors/ovl_En_Fire_Rock/z_en_fire_rock.c | 2 +- .../actors/ovl_En_Firefly/z_en_firefly.c | 2 +- src/overlays/actors/ovl_En_Fish/z_en_fish.c | 2 +- .../actors/ovl_En_Floormas/z_en_floormas.c | 2 +- src/overlays/actors/ovl_En_Fr/z_en_fr.c | 2 +- src/overlays/actors/ovl_En_Fu/z_en_fu.c | 2 +- src/overlays/actors/ovl_En_Fw/z_en_fw.c | 2 +- src/overlays/actors/ovl_En_Fz/z_en_fz.c | 2 +- .../actors/ovl_En_G_Switch/z_en_g_switch.c | 2 +- .../ovl_En_Ganon_Mant/z_en_ganon_mant.c | 2 +- .../ovl_En_Ganon_Organ/z_en_ganon_organ.c | 2 +- src/overlays/actors/ovl_En_Gb/z_en_gb.c | 2 +- src/overlays/actors/ovl_En_Ge1/z_en_ge1.c | 2 +- src/overlays/actors/ovl_En_Ge2/z_en_ge2.c | 2 +- src/overlays/actors/ovl_En_Ge3/z_en_ge3.c | 2 +- src/overlays/actors/ovl_En_GeldB/z_en_geldb.c | 2 +- src/overlays/actors/ovl_En_GirlA/z_en_girla.c | 2 +- src/overlays/actors/ovl_En_Gm/z_en_gm.c | 2 +- src/overlays/actors/ovl_En_Go/z_en_go.c | 2 +- src/overlays/actors/ovl_En_Go2/z_en_go2.c | 2 +- src/overlays/actors/ovl_En_Goma/z_en_goma.c | 2 +- .../actors/ovl_En_Goroiwa/z_en_goroiwa.c | 2 +- src/overlays/actors/ovl_En_Gs/z_en_gs.c | 2 +- src/overlays/actors/ovl_En_Guest/z_en_guest.c | 2 +- src/overlays/actors/ovl_En_Hata/z_en_hata.c | 2 +- .../actors/ovl_En_Heishi1/z_en_heishi1.c | 2 +- .../actors/ovl_En_Heishi2/z_en_heishi2.c | 2 +- .../actors/ovl_En_Heishi3/z_en_heishi3.c | 2 +- .../actors/ovl_En_Heishi4/z_en_heishi4.c | 2 +- .../actors/ovl_En_Hintnuts/z_en_hintnuts.c | 2 +- src/overlays/actors/ovl_En_Holl/z_en_holl.c | 2 +- .../actors/ovl_En_Honotrap/z_en_honotrap.c | 2 +- src/overlays/actors/ovl_En_Horse/z_en_horse.c | 2 +- .../z_en_horse_game_check.c | 2 +- .../ovl_En_Horse_Ganon/z_en_horse_ganon.c | 2 +- .../z_en_horse_link_child.c | 2 +- .../ovl_En_Horse_Normal/z_en_horse_normal.c | 2 +- .../ovl_En_Horse_Zelda/z_en_horse_zelda.c | 2 +- src/overlays/actors/ovl_En_Hs/z_en_hs.c | 2 +- src/overlays/actors/ovl_En_Hs2/z_en_hs2.c | 2 +- src/overlays/actors/ovl_En_Hy/z_en_hy.c | 2 +- .../actors/ovl_En_Ice_Hono/z_en_ice_hono.c | 2 +- src/overlays/actors/ovl_En_Ik/z_en_ik.c | 2 +- src/overlays/actors/ovl_En_In/z_en_in.c | 4 +- .../actors/ovl_En_Insect/z_en_insect.c | 2 +- src/overlays/actors/ovl_En_Ishi/z_en_ishi.c | 2 +- src/overlays/actors/ovl_En_It/z_en_it.c | 2 +- src/overlays/actors/ovl_En_Jj/z_en_jj.c | 2 +- src/overlays/actors/ovl_En_Js/z_en_js.c | 2 +- .../actors/ovl_En_Jsjutan/z_en_jsjutan.c | 2 +- .../actors/ovl_En_Kakasi/z_en_kakasi.c | 2 +- .../actors/ovl_En_Kakasi2/z_en_kakasi2.c | 2 +- .../actors/ovl_En_Kakasi3/z_en_kakasi3.c | 2 +- .../actors/ovl_En_Kanban/z_en_kanban.c | 2 +- .../actors/ovl_En_Karebaba/z_en_karebaba.c | 2 +- src/overlays/actors/ovl_En_Ko/z_en_ko.c | 2 +- src/overlays/actors/ovl_En_Kusa/z_en_kusa.c | 2 +- src/overlays/actors/ovl_En_Kz/z_en_kz.c | 2 +- src/overlays/actors/ovl_En_Light/z_en_light.c | 2 +- .../actors/ovl_En_Lightbox/z_en_lightbox.c | 2 +- .../actors/ovl_En_M_Fire1/z_en_m_fire1.c | 2 +- .../actors/ovl_En_M_Thunder/z_en_m_thunder.c | 2 +- src/overlays/actors/ovl_En_Ma1/z_en_ma1.c | 2 +- src/overlays/actors/ovl_En_Ma2/z_en_ma2.c | 2 +- src/overlays/actors/ovl_En_Ma3/z_en_ma3.c | 2 +- src/overlays/actors/ovl_En_Mag/z_en_mag.c | 2 +- src/overlays/actors/ovl_En_Mb/z_en_mb.c | 2 +- src/overlays/actors/ovl_En_Md/z_en_md.c | 2 +- src/overlays/actors/ovl_En_Mk/z_en_mk.c | 2 +- src/overlays/actors/ovl_En_Mm/z_en_mm.c | 2 +- src/overlays/actors/ovl_En_Mm2/z_en_mm2.c | 2 +- src/overlays/actors/ovl_En_Ms/z_en_ms.c | 2 +- src/overlays/actors/ovl_En_Mu/z_en_mu.c | 2 +- src/overlays/actors/ovl_En_Nb/z_en_nb.c | 2 +- src/overlays/actors/ovl_En_Niw/z_en_niw.c | 2 +- .../actors/ovl_En_Niw_Girl/z_en_niw_girl.c | 2 +- .../actors/ovl_En_Niw_Lady/z_en_niw_lady.c | 2 +- .../actors/ovl_En_Nutsball/z_en_nutsball.c | 2 +- src/overlays/actors/ovl_En_Nwc/z_en_nwc.c | 2 +- src/overlays/actors/ovl_En_Ny/z_en_ny.c | 2 +- src/overlays/actors/ovl_En_OE2/z_en_oe2.c | 2 +- .../z_en_okarina_effect.c | 2 +- .../ovl_En_Okarina_Tag/z_en_okarina_tag.c | 2 +- src/overlays/actors/ovl_En_Okuta/z_en_okuta.c | 2 +- src/overlays/actors/ovl_En_Ossan/z_en_ossan.c | 2 +- src/overlays/actors/ovl_En_Owl/z_en_owl.c | 2 +- src/overlays/actors/ovl_En_Part/z_en_part.c | 2 +- .../actors/ovl_En_Peehat/z_en_peehat.c | 2 +- .../actors/ovl_En_Po_Desert/z_en_po_desert.c | 2 +- .../actors/ovl_En_Po_Field/z_en_po_field.c | 2 +- .../actors/ovl_En_Po_Relay/z_en_po_relay.c | 2 +- .../ovl_En_Po_Sisters/z_en_po_sisters.c | 2 +- src/overlays/actors/ovl_En_Poh/z_en_poh.c | 2 +- .../actors/ovl_En_Pu_box/z_en_pu_box.c | 2 +- src/overlays/actors/ovl_En_Rd/z_en_rd.c | 2 +- src/overlays/actors/ovl_En_Reeba/z_en_reeba.c | 2 +- .../ovl_En_River_Sound/z_en_river_sound.c | 2 +- src/overlays/actors/ovl_En_Rl/z_en_rl.c | 2 +- src/overlays/actors/ovl_En_Rr/z_en_rr.c | 2 +- src/overlays/actors/ovl_En_Ru1/z_en_ru1.c | 2 +- src/overlays/actors/ovl_En_Ru2/z_en_ru2.c | 2 +- src/overlays/actors/ovl_En_Sa/z_en_sa.c | 2 +- src/overlays/actors/ovl_En_Sb/z_en_sb.c | 2 +- .../ovl_En_Scene_Change/z_en_scene_change.c | 2 +- src/overlays/actors/ovl_En_Sda/z_en_sda.c | 2 +- .../actors/ovl_En_Shopnuts/z_en_shopnuts.c | 2 +- src/overlays/actors/ovl_En_Si/z_en_si.c | 2 +- .../actors/ovl_En_Siofuki/z_en_siofuki.c | 2 +- src/overlays/actors/ovl_En_Skb/z_en_skb.c | 2 +- src/overlays/actors/ovl_En_Skj/z_en_skj.c | 2 +- .../actors/ovl_En_Skjneedle/z_en_skjneedle.c | 2 +- src/overlays/actors/ovl_En_Ssh/z_en_ssh.c | 2 +- src/overlays/actors/ovl_En_St/z_en_st.c | 2 +- src/overlays/actors/ovl_En_Sth/z_en_sth.c | 2 +- .../actors/ovl_En_Stream/z_en_stream.c | 2 +- src/overlays/actors/ovl_En_Sw/z_en_sw.c | 2 +- .../ovl_En_Syateki_Itm/z_en_syateki_itm.c | 2 +- .../ovl_En_Syateki_Man/z_en_syateki_man.c | 2 +- .../ovl_En_Syateki_Niw/z_en_syateki_niw.c | 2 +- src/overlays/actors/ovl_En_Ta/z_en_ta.c | 2 +- .../ovl_En_Takara_Man/z_en_takara_man.c | 2 +- src/overlays/actors/ovl_En_Tana/z_en_tana.c | 2 +- src/overlays/actors/ovl_En_Test/z_en_test.c | 2 +- src/overlays/actors/ovl_En_Tg/z_en_tg.c | 2 +- src/overlays/actors/ovl_En_Tite/z_en_tite.c | 2 +- src/overlays/actors/ovl_En_Tk/z_en_tk.c | 2 +- src/overlays/actors/ovl_En_Torch/z_en_torch.c | 2 +- .../actors/ovl_En_Torch2/z_en_torch2.c | 2 +- src/overlays/actors/ovl_En_Toryo/z_en_toryo.c | 2 +- src/overlays/actors/ovl_En_Tp/z_en_tp.c | 2 +- src/overlays/actors/ovl_En_Tr/z_en_tr.c | 2 +- src/overlays/actors/ovl_En_Trap/z_en_trap.c | 2 +- .../actors/ovl_En_Tubo_Trap/z_en_tubo_trap.c | 2 +- src/overlays/actors/ovl_En_Vali/z_en_vali.c | 2 +- src/overlays/actors/ovl_En_Vase/z_en_vase.c | 2 +- .../actors/ovl_En_Vb_Ball/z_en_vb_ball.c | 2 +- .../actors/ovl_En_Viewer/z_en_viewer.c | 2 +- src/overlays/actors/ovl_En_Vm/z_en_vm.c | 2 +- .../actors/ovl_En_Wall_Tubo/z_en_wall_tubo.c | 2 +- .../actors/ovl_En_Wallmas/z_en_wallmas.c | 2 +- .../ovl_En_Weather_Tag/z_en_weather_tag.c | 2 +- .../actors/ovl_En_Weiyer/z_en_weiyer.c | 2 +- src/overlays/actors/ovl_En_Wf/z_en_wf.c | 2 +- .../ovl_En_Wonder_Item/z_en_wonder_item.c | 2 +- .../ovl_En_Wonder_Talk/z_en_wonder_talk.c | 2 +- .../ovl_En_Wonder_Talk2/z_en_wonder_talk2.c | 2 +- .../actors/ovl_En_Wood02/z_en_wood02.c | 2 +- src/overlays/actors/ovl_En_Xc/z_en_xc.c | 2 +- .../ovl_En_Yabusame_Mark/z_en_yabusame_mark.c | 2 +- .../actors/ovl_En_Yukabyun/z_en_yukabyun.c | 2 +- src/overlays/actors/ovl_En_Zf/z_en_zf.c | 2 +- src/overlays/actors/ovl_En_Zl1/z_en_zl1.c | 2 +- src/overlays/actors/ovl_En_Zl2/z_en_zl2.c | 2 +- src/overlays/actors/ovl_En_Zl3/z_en_zl3.c | 2 +- src/overlays/actors/ovl_En_Zl4/z_en_zl4.c | 2 +- src/overlays/actors/ovl_En_Zo/z_en_zo.c | 2 +- src/overlays/actors/ovl_En_fHG/z_en_fhg.c | 2 +- .../actors/ovl_End_Title/z_end_title.c | 2 +- src/overlays/actors/ovl_Fishing/z_fishing.c | 2 +- .../actors/ovl_Item_B_Heart/z_item_b_heart.c | 2 +- .../ovl_Item_Etcetera/z_item_etcetera.c | 2 +- .../actors/ovl_Item_Inbox/z_item_inbox.c | 2 +- .../actors/ovl_Item_Ocarina/z_item_ocarina.c | 2 +- .../actors/ovl_Item_Shield/z_item_shield.c | 2 +- .../actors/ovl_Magic_Dark/z_magic_dark.c | 2 +- .../actors/ovl_Magic_Fire/z_magic_fire.c | 2 +- .../actors/ovl_Magic_Wind/z_magic_wind.c | 2 +- src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c | 2 +- src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c | 2 +- .../ovl_Obj_Blockstop/z_obj_blockstop.c | 2 +- .../actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c | 2 +- src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c | 2 +- .../actors/ovl_Obj_Dekujr/z_obj_dekujr.c | 2 +- .../actors/ovl_Obj_Elevator/z_obj_elevator.c | 2 +- .../actors/ovl_Obj_Hamishi/z_obj_hamishi.c | 2 +- src/overlays/actors/ovl_Obj_Hana/z_obj_hana.c | 2 +- .../actors/ovl_Obj_Hsblock/z_obj_hsblock.c | 2 +- .../actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c | 2 +- .../actors/ovl_Obj_Kibako/z_obj_kibako.c | 2 +- .../actors/ovl_Obj_Kibako2/z_obj_kibako2.c | 2 +- src/overlays/actors/ovl_Obj_Lift/z_obj_lift.c | 2 +- .../ovl_Obj_Lightswitch/z_obj_lightswitch.c | 2 +- .../ovl_Obj_Makekinsuta/z_obj_makekinsuta.c | 2 +- .../ovl_Obj_Makeoshihiki/z_obj_makeoshihiki.c | 2 +- src/overlays/actors/ovl_Obj_Mure/z_obj_mure.c | 2 +- .../actors/ovl_Obj_Mure2/z_obj_mure2.c | 2 +- .../actors/ovl_Obj_Mure3/z_obj_mure3.c | 2 +- .../actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c | 2 +- .../ovl_Obj_Roomtimer/z_obj_roomtimer.c | 2 +- .../actors/ovl_Obj_Switch/z_obj_switch.c | 2 +- .../actors/ovl_Obj_Syokudai/z_obj_syokudai.c | 2 +- .../ovl_Obj_Timeblock/z_obj_timeblock.c | 2 +- .../actors/ovl_Obj_Tsubo/z_obj_tsubo.c | 2 +- .../ovl_Obj_Warp2block/z_obj_warp2block.c | 2 +- .../ovl_Object_Kankyo/z_object_kankyo.c | 2 +- .../actors/ovl_Oceff_Spot/z_oceff_spot.c | 2 +- .../actors/ovl_Oceff_Storm/z_oceff_storm.c | 2 +- .../actors/ovl_Oceff_Wipe/z_oceff_wipe.c | 2 +- .../actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c | 2 +- .../actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c | 2 +- .../actors/ovl_Oceff_Wipe4/z_oceff_wipe4.c | 2 +- src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c | 2 +- .../ovl_Effect_Ss_Blast/z_eff_ss_blast.c | 2 +- .../ovl_Effect_Ss_Bomb/z_eff_ss_bomb.c | 2 +- .../ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.c | 2 +- .../ovl_Effect_Ss_Bubble/z_eff_ss_bubble.c | 2 +- .../ovl_Effect_Ss_D_Fire/z_eff_ss_d_fire.c | 2 +- .../ovl_Effect_Ss_Dead_Db/z_eff_ss_dead_db.c | 2 +- .../ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.c | 2 +- .../ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.c | 2 +- .../z_eff_ss_dead_sound.c | 2 +- .../z_eff_ss_dt_bubble.c | 2 +- .../ovl_Effect_Ss_Dust/z_eff_ss_dust.c | 2 +- .../ovl_Effect_Ss_En_Fire/z_eff_ss_en_fire.c | 2 +- .../ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.c | 2 +- .../ovl_Effect_Ss_Extra/z_eff_ss_extra.c | 2 +- .../ovl_Effect_Ss_Fcircle/z_eff_ss_fcircle.c | 2 +- .../z_eff_ss_fhg_flash.c | 2 +- .../z_eff_ss_fire_tail.c | 2 +- .../ovl_Effect_Ss_G_Fire/z_eff_ss_g_fire.c | 2 +- .../ovl_Effect_Ss_G_Magma/z_eff_ss_g_magma.c | 2 +- .../z_eff_ss_g_magma2.c | 2 +- .../z_eff_ss_g_ripple.c | 2 +- .../ovl_Effect_Ss_G_Spk/z_eff_ss_g_spk.c | 2 +- .../z_eff_ss_g_splash.c | 2 +- .../ovl_Effect_Ss_Hahen/z_eff_ss_hahen.c | 2 +- .../ovl_Effect_Ss_HitMark/z_eff_ss_hitmark.c | 2 +- .../z_eff_ss_ice_piece.c | 2 +- .../z_eff_ss_ice_smoke.c | 2 +- .../ovl_Effect_Ss_K_Fire/z_eff_ss_k_fire.c | 2 +- .../ovl_Effect_Ss_Kakera/z_eff_ss_kakera.c | 2 +- .../z_eff_ss_kirakira.c | 2 +- .../z_eff_ss_lightning.c | 2 +- .../ovl_Effect_Ss_Sibuki/z_eff_ss_sibuki.c | 2 +- .../ovl_Effect_Ss_Sibuki2/z_eff_ss_sibuki2.c | 2 +- .../z_eff_ss_solder_srch_ball.c | 2 +- .../ovl_Effect_Ss_Stick/z_eff_ss_stick.c | 2 +- .../ovl_Effect_Ss_Stone1/z_eff_ss_stone1.c | 2 +- 472 files changed, 525 insertions(+), 521 deletions(-) diff --git a/include/z64actor.h b/include/z64actor.h index ef436ff9f..f5c2a3ef0 100644 --- a/include/z64actor.h +++ b/include/z64actor.h @@ -34,7 +34,7 @@ typedef struct { /* 0x14 */ ActorFunc destroy; // Destructor /* 0x18 */ ActorFunc update; // Update Function /* 0x1C */ ActorFunc draw; // Draw function -} ActorInit; // size = 0x20 +} ActorProfile; // size = 0x20 /** * @see ACTOROVL_ALLOC_ABSOLUTE @@ -90,7 +90,7 @@ typedef struct { /* 0x08 */ void* vramStart; /* 0x0C */ void* vramEnd; /* 0x10 */ void* loadedRamAddr; // original name: "allocp" - /* 0x14 */ ActorInit* initInfo; + /* 0x14 */ ActorProfile* profile; /* 0x18 */ char* name; /* 0x1C */ u16 allocType; // See `ACTOROVL_ALLOC_` defines /* 0x1E */ s8 numLoaded; // original name: "clients" diff --git a/include/z64effect.h b/include/z64effect.h index e90ff85af..4e34ec0f7 100644 --- a/include/z64effect.h +++ b/include/z64effect.h @@ -199,14 +199,14 @@ typedef void (*EffectSsDrawFunc)(struct PlayState* play, u32 index, struct Effec typedef struct { /* 0x00 */ u32 type; /* 0x04 */ EffectSsInitFunc init; -} EffectSsInit; // size = 0x08 +} EffectSsProfile; // size = 0x08 typedef struct { /* 0x00 */ RomFile file; /* 0x08 */ void* vramStart; /* 0x0C */ void* vramEnd; /* 0x10 */ void* loadedRamAddr; - /* 0x14 */ EffectSsInit* initInfo; + /* 0x14 */ EffectSsProfile* profile; /* 0x18 */ u8 unk_18; } EffectSsOverlay; // size = 0x1C diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 890a05a68..620586961 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -2834,7 +2834,7 @@ Actor* Actor_Spawn(ActorContext* actorCtx, PlayState* play, s16 actorId, f32 pos s16 rotY, s16 rotZ, s16 params) { s32 pad; Actor* actor; - ActorInit* actorInit; + ActorProfile* profile; s32 objectSlot; ActorOverlay* overlayEntry; uintptr_t temp; @@ -2862,7 +2862,7 @@ Actor* Actor_Spawn(ActorContext* actorCtx, PlayState* play, s16 actorId, f32 pos if (overlayEntry->vramStart == NULL) { ACTOR_DEBUG_PRINTF("オーバーレイではありません\n"); // "Not an overlay" - actorInit = overlayEntry->initInfo; + profile = overlayEntry->profile; } else { if (overlayEntry->loadedRamAddr != NULL) { ACTOR_DEBUG_PRINTF("既にロードされています\n"); // "Already loaded" @@ -2905,30 +2905,30 @@ Actor* Actor_Spawn(ActorContext* actorCtx, PlayState* play, s16 actorId, f32 pos overlayEntry->numLoaded = 0; } - actorInit = (void*)(uintptr_t)((overlayEntry->initInfo != NULL) - ? (void*)((uintptr_t)overlayEntry->initInfo - - (intptr_t)((uintptr_t)overlayEntry->vramStart - - (uintptr_t)overlayEntry->loadedRamAddr)) - : NULL); + profile = (void*)(uintptr_t)((overlayEntry->profile != NULL) + ? (void*)((uintptr_t)overlayEntry->profile - + (intptr_t)((uintptr_t)overlayEntry->vramStart - + (uintptr_t)overlayEntry->loadedRamAddr)) + : NULL); } - objectSlot = Object_GetSlot(&play->objectCtx, actorInit->objectId); + objectSlot = Object_GetSlot(&play->objectCtx, profile->objectId); if ((objectSlot < 0) || - ((actorInit->category == ACTORCAT_ENEMY) && Flags_GetClear(play, play->roomCtx.curRoom.num))) { + ((profile->category == ACTORCAT_ENEMY) && Flags_GetClear(play, play->roomCtx.curRoom.num))) { // "No data bank!! (profilep->bank=%d)" PRINTF(VT_COL(RED, WHITE) "データバンク無し!!<データバンク=%d>(profilep->bank=%d)\n" VT_RST, objectSlot, - actorInit->objectId); + profile->objectId); Actor_FreeOverlay(overlayEntry); return NULL; } - actor = ZELDA_ARENA_MALLOC(actorInit->instanceSize, name, 1); + actor = ZELDA_ARENA_MALLOC(profile->instanceSize, name, 1); if (actor == NULL) { // "Actor class cannot be reserved! %s " PRINTF(VT_COL(RED, WHITE) "Actorクラス確保できません! %s <サイズ=%dバイト>\n", VT_RST, name, - actorInit->instanceSize); + profile->instanceSize); Actor_FreeOverlay(overlayEntry); return NULL; } @@ -2942,32 +2942,36 @@ Actor* Actor_Spawn(ActorContext* actorCtx, PlayState* play, s16 actorId, f32 pos // "Actor client No. %d" ACTOR_DEBUG_PRINTF("アクタークライアントは %d 個目です\n", overlayEntry->numLoaded); - Lib_MemSet((u8*)actor, actorInit->instanceSize, 0); + Lib_MemSet((u8*)actor, profile->instanceSize, 0); actor->overlayEntry = overlayEntry; - actor->id = actorInit->id; - actor->flags = actorInit->flags; + actor->id = profile->id; + actor->flags = profile->flags; - if (actorInit->id == ACTOR_EN_PART) { + if (profile->id == ACTOR_EN_PART) { actor->objectSlot = rotZ; rotZ = 0; } else { actor->objectSlot = objectSlot; } - actor->init = actorInit->init; - actor->destroy = actorInit->destroy; - actor->update = actorInit->update; - actor->draw = actorInit->draw; + actor->init = profile->init; + actor->destroy = profile->destroy; + actor->update = profile->update; + actor->draw = profile->draw; + actor->room = play->roomCtx.curRoom.num; + actor->home.pos.x = posX; actor->home.pos.y = posY; actor->home.pos.z = posZ; + actor->home.rot.x = rotX; actor->home.rot.y = rotY; actor->home.rot.z = rotZ; + actor->params = params; - Actor_AddToCategory(actorCtx, actor, actorInit->category); + Actor_AddToCategory(actorCtx, actor, profile->category); temp = gSegments[6]; Actor_Init(actor, play); diff --git a/src/code/z_actor_dlftbls.c b/src/code/z_actor_dlftbls.c index 4a6ce2567..ff162db4b 100644 --- a/src/code/z_actor_dlftbls.c +++ b/src/code/z_actor_dlftbls.c @@ -11,9 +11,9 @@ #undef DEFINE_ACTOR_INTERNAL #undef DEFINE_ACTOR_UNSET -// Init Vars declarations (also used in the table below) -#define DEFINE_ACTOR(name, _1, _2, _3) extern ActorInit name##_InitVars; -#define DEFINE_ACTOR_INTERNAL(name, _1, _2, _3) extern ActorInit name##_InitVars; +// Profile declarations (also used in the table below) +#define DEFINE_ACTOR(name, _1, _2, _3) extern ActorProfile name##_Profile; +#define DEFINE_ACTOR_INTERNAL(name, _1, _2, _3) extern ActorProfile name##_Profile; #define DEFINE_ACTOR_UNSET(_0) #include "tables/actor_table.h" @@ -31,15 +31,15 @@ _ovl_##name##SegmentStart, \ _ovl_##name##SegmentEnd, \ NULL, \ - &name##_InitVars, \ + &name##_Profile, \ nameString, \ allocType, \ 0, \ }, -#define DEFINE_ACTOR_INTERNAL(name, _1, allocType, nameString) \ - { \ - ROM_FILE_UNSET, NULL, NULL, NULL, &name##_InitVars, nameString, allocType, 0, \ +#define DEFINE_ACTOR_INTERNAL(name, _1, allocType, nameString) \ + { \ + ROM_FILE_UNSET, NULL, NULL, NULL, &name##_Profile, nameString, allocType, 0, \ }, #else @@ -51,15 +51,15 @@ _ovl_##name##SegmentStart, \ _ovl_##name##SegmentEnd, \ NULL, \ - &name##_InitVars, \ + &name##_Profile, \ NULL, \ allocType, \ 0, \ }, -#define DEFINE_ACTOR_INTERNAL(name, _1, allocType, _3) \ - { \ - ROM_FILE_UNSET, NULL, NULL, NULL, &name##_InitVars, NULL, allocType, 0, \ +#define DEFINE_ACTOR_INTERNAL(name, _1, allocType, _3) \ + { \ + ROM_FILE_UNSET, NULL, NULL, NULL, &name##_Profile, NULL, allocType, 0, \ }, #endif @@ -88,7 +88,7 @@ void ActorOverlayTable_LogPrint(void) { for (i = 0, overlayEntry = &gActorOverlayTable[0]; i < (u32)gMaxActorId; i++, overlayEntry++) { PRINTF("%08x %08x %08x %08x %08x %08x %s\n", overlayEntry->file.vromStart, overlayEntry->file.vromEnd, - overlayEntry->vramStart, overlayEntry->vramEnd, overlayEntry->loadedRamAddr, &overlayEntry->initInfo->id, + overlayEntry->vramStart, overlayEntry->vramEnd, overlayEntry->loadedRamAddr, &overlayEntry->profile->id, overlayEntry->name != NULL ? overlayEntry->name : "?"); } #endif diff --git a/src/code/z_effect_soft_sprite.c b/src/code/z_effect_soft_sprite.c index 20691e716..d6d58659d 100644 --- a/src/code/z_effect_soft_sprite.c +++ b/src/code/z_effect_soft_sprite.c @@ -174,7 +174,7 @@ void EffectSs_Spawn(PlayState* play, s32 type, s32 priority, void* initParams) { s32 index; u32 overlaySize; EffectSsOverlay* overlayEntry; - EffectSsInit* initInfo; + EffectSsProfile* profile; overlayEntry = &gEffectSsOverlayTable[type]; @@ -191,7 +191,7 @@ void EffectSs_Spawn(PlayState* play, s32 type, s32 priority, void* initParams) { if (overlayEntry->vramStart == NULL) { // "Not an overlay" PRINTF("EffectSoftSprite2_makeEffect():オーバーレイではありません。\n"); - initInfo = overlayEntry->initInfo; + profile = overlayEntry->profile; } else { if (overlayEntry->loadedRamAddr == NULL) { overlayEntry->loadedRamAddr = ZELDA_ARENA_MALLOC_R(overlaySize, "../z_effect_soft_sprite.c", 585); @@ -218,19 +218,19 @@ void EffectSs_Spawn(PlayState* play, s32 type, s32 priority, void* initParams) { PRINTF(VT_RST); } - initInfo = (void*)(uintptr_t)((overlayEntry->initInfo != NULL) - ? (void*)((uintptr_t)overlayEntry->initInfo - - (intptr_t)((uintptr_t)overlayEntry->vramStart - - (uintptr_t)overlayEntry->loadedRamAddr)) - : NULL); + profile = (void*)(uintptr_t)((overlayEntry->profile != NULL) + ? (void*)((uintptr_t)overlayEntry->profile - + (intptr_t)((uintptr_t)overlayEntry->vramStart - + (uintptr_t)overlayEntry->loadedRamAddr)) + : NULL); } - if (initInfo->init == NULL) { + if (profile->init == NULL) { // "Effects have already been loaded, but the constructor is NULL so the addition will not occur. // Please fix this. (Waste of memory) %08x %d" PRINTF("EffectSoftSprite2_makeEffect():すでにエフェクトはロード済みで\nすが," "コンストラクターがNULLなので追加をやめます。\n直してください。(メモリーの無駄) %08x %d\n", - initInfo, type); + profile, type); return; } @@ -240,7 +240,7 @@ void EffectSs_Spawn(PlayState* play, s32 type, s32 priority, void* initParams) { sEffectSsInfo.table[index].type = type; sEffectSsInfo.table[index].priority = priority; - if (initInfo->init(play, index, &sEffectSsInfo.table[index], initParams) == 0) { + if (profile->init(play, index, &sEffectSsInfo.table[index], initParams) == 0) { PRINTF(VT_FGCOL(GREEN)); // "Construction failed for some reason. The constructor returned an error. // Ceasing effect addition." diff --git a/src/code/z_effect_soft_sprite_dlftbls.c b/src/code/z_effect_soft_sprite_dlftbls.c index 3fb498b33..cb24257c8 100644 --- a/src/code/z_effect_soft_sprite_dlftbls.c +++ b/src/code/z_effect_soft_sprite_dlftbls.c @@ -9,8 +9,8 @@ #undef DEFINE_EFFECT_SS #undef DEFINE_EFFECT_SS_UNSET -// Init Vars declarations (also used in the table below) -#define DEFINE_EFFECT_SS(name, _1) extern EffectSsInit name##_InitVars; +// Profile declarations (also used in the table below) +#define DEFINE_EFFECT_SS(name, _1) extern EffectSsProfile name##_Profile; #define DEFINE_EFFECT_SS_UNSET(_0) #include "tables/effect_ss_table.h" @@ -19,9 +19,9 @@ #undef DEFINE_EFFECT_SS_UNSET // Effect SS Overlay Table definition -#define DEFINE_EFFECT_SS(name, _1) \ - { \ - ROM_FILE(ovl_##name), _ovl_##name##SegmentStart, _ovl_##name##SegmentEnd, NULL, &name##_InitVars, 1, \ +#define DEFINE_EFFECT_SS(name, _1) \ + { \ + ROM_FILE(ovl_##name), _ovl_##name##SegmentStart, _ovl_##name##SegmentEnd, NULL, &name##_Profile, 1, \ }, #define DEFINE_EFFECT_SS_UNSET(_0) \ diff --git a/src/code/z_en_a_keep.c b/src/code/z_en_a_keep.c index 21c5ebd75..57799c22e 100644 --- a/src/code/z_en_a_keep.c +++ b/src/code/z_en_a_keep.c @@ -20,7 +20,7 @@ void EnAObj_SetupBlockRot(EnAObj* this, s16 type); void EnAObj_SetupBoulderFragment(EnAObj* this, s16 type); void EnAObj_SetupBlock(EnAObj* this, s16 type); -ActorInit En_A_Obj_InitVars = { +ActorProfile En_A_Obj_Profile = { /**/ ACTOR_EN_A_OBJ, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/code/z_en_item00.c b/src/code/z_en_item00.c index 9e2e76249..7306c4689 100644 --- a/src/code/z_en_item00.c +++ b/src/code/z_en_item00.c @@ -20,7 +20,7 @@ void EnItem00_DrawCollectible(EnItem00* this, PlayState* play); void EnItem00_DrawHeartContainer(EnItem00* this, PlayState* play); void EnItem00_DrawHeartPiece(EnItem00* this, PlayState* play); -ActorInit En_Item00_InitVars = { +ActorProfile En_Item00_Profile = { /**/ ACTOR_EN_ITEM00, /**/ ACTORCAT_MISC, /**/ FLAGS, diff --git a/src/code/z_player_call.c b/src/code/z_player_call.c index 1eb12319c..38812cb0f 100644 --- a/src/code/z_player_call.c +++ b/src/code/z_player_call.c @@ -17,7 +17,7 @@ void Player_Destroy(Actor* thisx, PlayState* play); void Player_Update(Actor* thisx, PlayState* play); void Player_Draw(Actor* thisx, PlayState* play); -ActorInit Player_InitVars = { +ActorProfile Player_Profile = { /**/ ACTOR_PLAYER, /**/ ACTORCAT_PLAYER, /**/ FLAGS, diff --git a/src/code/z_scene.c b/src/code/z_scene.c index 849d936a4..1de6f7a61 100644 --- a/src/code/z_scene.c +++ b/src/code/z_scene.c @@ -205,7 +205,7 @@ BAD_RETURN(s32) Scene_CommandPlayerEntryList(PlayState* play, SceneCmd* cmd) { linkObjectId = gLinkObjectIds[((void)0, gSaveContext.save.linkAge)]; - gActorOverlayTable[playerEntry->id].initInfo->objectId = linkObjectId; + gActorOverlayTable[playerEntry->id].profile->objectId = linkObjectId; Object_SpawnPersistent(&play->objectCtx, linkObjectId); } diff --git a/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c b/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c index 9552c4546..b1ec6987a 100644 --- a/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c +++ b/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c @@ -11,7 +11,7 @@ void ArmsHook_Draw(Actor* thisx, PlayState* play); void ArmsHook_Wait(ArmsHook* this, PlayState* play); void ArmsHook_Shoot(ArmsHook* this, PlayState* play); -ActorInit Arms_Hook_InitVars = { +ActorProfile Arms_Hook_Profile = { /**/ ACTOR_ARMS_HOOK, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Arrow_Fire/z_arrow_fire.c b/src/overlays/actors/ovl_Arrow_Fire/z_arrow_fire.c index afc9cc19c..2dde5c416 100644 --- a/src/overlays/actors/ovl_Arrow_Fire/z_arrow_fire.c +++ b/src/overlays/actors/ovl_Arrow_Fire/z_arrow_fire.c @@ -20,7 +20,7 @@ void ArrowFire_Hit(ArrowFire* this, PlayState* play); #include "assets/overlays/ovl_Arrow_Fire/ovl_Arrow_Fire.c" -ActorInit Arrow_Fire_InitVars = { +ActorProfile Arrow_Fire_Profile = { /**/ ACTOR_ARROW_FIRE, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Arrow_Ice/z_arrow_ice.c b/src/overlays/actors/ovl_Arrow_Ice/z_arrow_ice.c index ff8e88896..da5e1bc00 100644 --- a/src/overlays/actors/ovl_Arrow_Ice/z_arrow_ice.c +++ b/src/overlays/actors/ovl_Arrow_Ice/z_arrow_ice.c @@ -21,7 +21,7 @@ void ArrowIce_Hit(ArrowIce* this, PlayState* play); #include "assets/overlays/ovl_Arrow_Ice/ovl_Arrow_Ice.c" -ActorInit Arrow_Ice_InitVars = { +ActorProfile Arrow_Ice_Profile = { /**/ ACTOR_ARROW_ICE, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Arrow_Light/z_arrow_light.c b/src/overlays/actors/ovl_Arrow_Light/z_arrow_light.c index fb96f1124..87546c713 100644 --- a/src/overlays/actors/ovl_Arrow_Light/z_arrow_light.c +++ b/src/overlays/actors/ovl_Arrow_Light/z_arrow_light.c @@ -21,7 +21,7 @@ void ArrowLight_Hit(ArrowLight* this, PlayState* play); #include "assets/overlays/ovl_Arrow_Light/ovl_Arrow_Light.c" -ActorInit Arrow_Light_InitVars = { +ActorProfile Arrow_Light_Profile = { /**/ ACTOR_ARROW_LIGHT, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.c b/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.c index bd1270ab2..0786f214d 100644 --- a/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.c +++ b/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.c @@ -43,7 +43,7 @@ void BgBdanObjects_WaitForTimerExpired(BgBdanObjects* this, PlayState* play); void BgBdanObjects_WaitForPlayerOnTop(BgBdanObjects* this, PlayState* play); void BgBdanObjects_FallToLowerPos(BgBdanObjects* this, PlayState* play); -ActorInit Bg_Bdan_Objects_InitVars = { +ActorProfile Bg_Bdan_Objects_Profile = { /**/ ACTOR_BG_BDAN_OBJECTS, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c b/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c index cba055ea8..bc1940064 100644 --- a/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c +++ b/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c @@ -42,7 +42,7 @@ void func_8086DCE8(BgBdanSwitch* this, PlayState* play); void func_8086DDA8(BgBdanSwitch* this); void func_8086DDC0(BgBdanSwitch* this, PlayState* play); -ActorInit Bg_Bdan_Switch_InitVars = { +ActorProfile Bg_Bdan_Switch_Profile = { /**/ ACTOR_BG_BDAN_SWITCH, /**/ ACTORCAT_SWITCH, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Bom_Guard/z_bg_bom_guard.c b/src/overlays/actors/ovl_Bg_Bom_Guard/z_bg_bom_guard.c index 44950a46c..729dd8155 100644 --- a/src/overlays/actors/ovl_Bg_Bom_Guard/z_bg_bom_guard.c +++ b/src/overlays/actors/ovl_Bg_Bom_Guard/z_bg_bom_guard.c @@ -17,7 +17,7 @@ void BgBomGuard_Update(Actor* thisx, PlayState* play); void func_8086E638(BgBomGuard* this, PlayState* play); -ActorInit Bg_Bom_Guard_InitVars = { +ActorProfile Bg_Bom_Guard_Profile = { /**/ ACTOR_BG_BOM_GUARD, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Bombwall/z_bg_bombwall.c b/src/overlays/actors/ovl_Bg_Bombwall/z_bg_bombwall.c index ff7ebd99c..17622037f 100644 --- a/src/overlays/actors/ovl_Bg_Bombwall/z_bg_bombwall.c +++ b/src/overlays/actors/ovl_Bg_Bombwall/z_bg_bombwall.c @@ -69,7 +69,7 @@ static ColliderTrisInit sTrisInit = { sTrisElementsInit, }; -ActorInit Bg_Bombwall_InitVars = { +ActorProfile Bg_Bombwall_Profile = { /**/ ACTOR_BG_BOMBWALL, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Bowl_Wall/z_bg_bowl_wall.c b/src/overlays/actors/ovl_Bg_Bowl_Wall/z_bg_bowl_wall.c index 3fdafb144..1278f8c56 100644 --- a/src/overlays/actors/ovl_Bg_Bowl_Wall/z_bg_bowl_wall.c +++ b/src/overlays/actors/ovl_Bg_Bowl_Wall/z_bg_bowl_wall.c @@ -24,7 +24,7 @@ void BgBowlWall_FallDoEffects(BgBowlWall* this, PlayState* play); void BgBowlWall_FinishFall(BgBowlWall* this, PlayState* play); void BgBowlWall_Reset(BgBowlWall* this, PlayState* play); -ActorInit Bg_Bowl_Wall_InitVars = { +ActorProfile Bg_Bowl_Wall_Profile = { /**/ ACTOR_BG_BOWL_WALL, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c b/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c index ef92c82ee..b7ca1a731 100644 --- a/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c +++ b/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c @@ -26,7 +26,7 @@ void BgBreakwall_WaitForObject(BgBreakwall* this, PlayState* play); void BgBreakwall_Wait(BgBreakwall* this, PlayState* play); void BgBreakwall_LavaCoverMove(BgBreakwall* this, PlayState* play); -ActorInit Bg_Breakwall_InitVars = { +ActorProfile Bg_Breakwall_Profile = { /**/ ACTOR_BG_BREAKWALL, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Ddan_Jd/z_bg_ddan_jd.c b/src/overlays/actors/ovl_Bg_Ddan_Jd/z_bg_ddan_jd.c index cf0746a99..469aaa75a 100644 --- a/src/overlays/actors/ovl_Bg_Ddan_Jd/z_bg_ddan_jd.c +++ b/src/overlays/actors/ovl_Bg_Ddan_Jd/z_bg_ddan_jd.c @@ -17,7 +17,7 @@ void BgDdanJd_Draw(Actor* thisx, PlayState* play); void BgDdanJd_Idle(BgDdanJd* this, PlayState* play); void BgDdanJd_Move(BgDdanJd* this, PlayState* play); -ActorInit Bg_Ddan_Jd_InitVars = { +ActorProfile Bg_Ddan_Jd_Profile = { /**/ ACTOR_BG_DDAN_JD, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Ddan_Kd/z_bg_ddan_kd.c b/src/overlays/actors/ovl_Bg_Ddan_Kd/z_bg_ddan_kd.c index f5396acc2..1909b801e 100644 --- a/src/overlays/actors/ovl_Bg_Ddan_Kd/z_bg_ddan_kd.c +++ b/src/overlays/actors/ovl_Bg_Ddan_Kd/z_bg_ddan_kd.c @@ -18,7 +18,7 @@ void BgDdanKd_CheckForExplosions(BgDdanKd* this, PlayState* play); void BgDdanKd_LowerStairs(BgDdanKd* this, PlayState* play); void BgDdanKd_DoNothing(BgDdanKd* this, PlayState* play); -ActorInit Bg_Ddan_Kd_InitVars = { +ActorProfile Bg_Ddan_Kd_Profile = { /**/ ACTOR_BG_DDAN_KD, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c b/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c index d1ccf08fc..ac5460a29 100644 --- a/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c +++ b/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c @@ -20,7 +20,7 @@ void BgDodoago_OpenJaw(BgDodoago* this, PlayState* play); void BgDodoago_DoNothing(BgDodoago* this, PlayState* play); void BgDodoago_LightOneEye(BgDodoago* this, PlayState* play); -ActorInit Bg_Dodoago_InitVars = { +ActorProfile Bg_Dodoago_Profile = { /**/ ACTOR_BG_DODOAGO, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.c b/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.c index 4187b3402..5e90d0774 100644 --- a/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.c +++ b/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.c @@ -54,7 +54,7 @@ void BgDyYoseizo_DrawEffects(BgDyYoseizo* this, PlayState* play); static s32 sUnusedGetItemIds[] = { GI_FARORES_WIND, GI_NAYRUS_LOVE, GI_DINS_FIRE }; -ActorInit Bg_Dy_Yoseizo_InitVars = { +ActorProfile Bg_Dy_Yoseizo_Profile = { /**/ ACTOR_BG_DY_YOSEIZO, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c b/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c index 7cf14989c..88eae8d91 100644 --- a/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c +++ b/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c @@ -25,7 +25,7 @@ void BgGanonOtyuka_WaitToFall(BgGanonOtyuka* this, PlayState* play); void BgGanonOtyuka_Fall(BgGanonOtyuka* this, PlayState* play); void BgGanonOtyuka_DoNothing(Actor* thisx, PlayState* play); -ActorInit Bg_Ganon_Otyuka_InitVars = { +ActorProfile Bg_Ganon_Otyuka_Profile = { /**/ ACTOR_BG_GANON_OTYUKA, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Gate_Shutter/z_bg_gate_shutter.c b/src/overlays/actors/ovl_Bg_Gate_Shutter/z_bg_gate_shutter.c index af2704272..27b71b28d 100644 --- a/src/overlays/actors/ovl_Bg_Gate_Shutter/z_bg_gate_shutter.c +++ b/src/overlays/actors/ovl_Bg_Gate_Shutter/z_bg_gate_shutter.c @@ -20,7 +20,7 @@ void func_80878300(BgGateShutter* this, PlayState* play); void func_808783AC(BgGateShutter* this, PlayState* play); void func_808783D4(BgGateShutter* this, PlayState* play); -ActorInit Bg_Gate_Shutter_InitVars = { +ActorProfile Bg_Gate_Shutter_Profile = { /**/ ACTOR_BG_GATE_SHUTTER, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c b/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c index e8bcca20b..090076a43 100644 --- a/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c +++ b/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c @@ -19,7 +19,7 @@ void func_808787A4(BgGjyoBridge* this, PlayState* play); void BgGjyoBridge_TriggerCutscene(BgGjyoBridge* this, PlayState* play); void BgGjyoBridge_SpawnBridge(BgGjyoBridge* this, PlayState* play); -ActorInit Bg_Gjyo_Bridge_InitVars = { +ActorProfile Bg_Gjyo_Bridge_Profile = { /**/ ACTOR_BG_GJYO_BRIDGE, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Gnd_Darkmeiro/z_bg_gnd_darkmeiro.c b/src/overlays/actors/ovl_Bg_Gnd_Darkmeiro/z_bg_gnd_darkmeiro.c index 287cd60ea..fc0bc51bf 100644 --- a/src/overlays/actors/ovl_Bg_Gnd_Darkmeiro/z_bg_gnd_darkmeiro.c +++ b/src/overlays/actors/ovl_Bg_Gnd_Darkmeiro/z_bg_gnd_darkmeiro.c @@ -21,7 +21,7 @@ void BgGndDarkmeiro_UpdateBlockTimer(BgGndDarkmeiro* this, PlayState* play); void BgGndDarkmeiro_UpdateStaticBlock(BgGndDarkmeiro* this, PlayState* play); void BgGndDarkmeiro_UpdateSwitchBlock(BgGndDarkmeiro* this, PlayState* play); -ActorInit Bg_Gnd_Darkmeiro_InitVars = { +ActorProfile Bg_Gnd_Darkmeiro_Profile = { /**/ ACTOR_BG_GND_DARKMEIRO, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.c b/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.c index 809158c8a..8773496bb 100644 --- a/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.c +++ b/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.c @@ -18,7 +18,7 @@ void BgGndFiremeiro_Sink(BgGndFiremeiro* this, PlayState* play); void BgGndFiremeiro_Shake(BgGndFiremeiro* this, PlayState* play); void BgGndFiremeiro_Rise(BgGndFiremeiro* this, PlayState* play); -ActorInit Bg_Gnd_Firemeiro_InitVars = { +ActorProfile Bg_Gnd_Firemeiro_Profile = { /**/ ACTOR_BG_GND_FIREMEIRO, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Gnd_Iceblock/z_bg_gnd_iceblock.c b/src/overlays/actors/ovl_Bg_Gnd_Iceblock/z_bg_gnd_iceblock.c index 2f347fada..7ac595bc1 100644 --- a/src/overlays/actors/ovl_Bg_Gnd_Iceblock/z_bg_gnd_iceblock.c +++ b/src/overlays/actors/ovl_Bg_Gnd_Iceblock/z_bg_gnd_iceblock.c @@ -23,7 +23,7 @@ void BgGndIceblock_Draw(Actor* thisx, PlayState* play); void BgGndIceblock_Idle(BgGndIceblock* this, PlayState* play); void BgGndIceblock_Slide(BgGndIceblock* this, PlayState* play); -ActorInit Bg_Gnd_Iceblock_InitVars = { +ActorProfile Bg_Gnd_Iceblock_Profile = { /**/ ACTOR_BG_GND_ICEBLOCK, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Gnd_Nisekabe/z_bg_gnd_nisekabe.c b/src/overlays/actors/ovl_Bg_Gnd_Nisekabe/z_bg_gnd_nisekabe.c index a6766c62a..e7e243e9e 100644 --- a/src/overlays/actors/ovl_Bg_Gnd_Nisekabe/z_bg_gnd_nisekabe.c +++ b/src/overlays/actors/ovl_Bg_Gnd_Nisekabe/z_bg_gnd_nisekabe.c @@ -14,7 +14,7 @@ void BgGndNisekabe_Destroy(Actor* thisx, PlayState* play); void BgGndNisekabe_Update(Actor* thisx, PlayState* play); void BgGndNisekabe_Draw(Actor* thisx, PlayState* play); -ActorInit Bg_Gnd_Nisekabe_InitVars = { +ActorProfile Bg_Gnd_Nisekabe_Profile = { /**/ ACTOR_BG_GND_NISEKABE, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/z_bg_gnd_soulmeiro.c b/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/z_bg_gnd_soulmeiro.c index 05cf7cde5..0007e5434 100644 --- a/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/z_bg_gnd_soulmeiro.c +++ b/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/z_bg_gnd_soulmeiro.c @@ -19,7 +19,7 @@ void func_8087AF38(BgGndSoulmeiro* this, PlayState* play); void func_8087B284(BgGndSoulmeiro* this, PlayState* play); void func_8087B350(BgGndSoulmeiro* this, PlayState* play); -ActorInit Bg_Gnd_Soulmeiro_InitVars = { +ActorProfile Bg_Gnd_Soulmeiro_Profile = { /**/ ACTOR_BG_GND_SOULMEIRO, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Haka/z_bg_haka.c b/src/overlays/actors/ovl_Bg_Haka/z_bg_haka.c index 43e2d8c90..e283244e5 100644 --- a/src/overlays/actors/ovl_Bg_Haka/z_bg_haka.c +++ b/src/overlays/actors/ovl_Bg_Haka/z_bg_haka.c @@ -20,7 +20,7 @@ void func_8087B938(BgHaka* this, PlayState* play); void func_8087BAAC(BgHaka* this, PlayState* play); void func_8087BAE4(BgHaka* this, PlayState* play); -ActorInit Bg_Haka_InitVars = { +ActorProfile Bg_Haka_Profile = { /**/ ACTOR_BG_HAKA, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Haka_Gate/z_bg_haka_gate.c b/src/overlays/actors/ovl_Bg_Haka_Gate/z_bg_haka_gate.c index ed45e2cfc..759c3ce0f 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Gate/z_bg_haka_gate.c +++ b/src/overlays/actors/ovl_Bg_Haka_Gate/z_bg_haka_gate.c @@ -52,7 +52,7 @@ static f32 sStatueDistToPlayer = 0; static s16 sStatueRotY; -ActorInit Bg_Haka_Gate_InitVars = { +ActorProfile Bg_Haka_Gate_Profile = { /**/ ACTOR_BG_HAKA_GATE, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Haka_Huta/z_bg_haka_huta.c b/src/overlays/actors/ovl_Bg_Haka_Huta/z_bg_haka_huta.c index b1d38adc9..4b2abe663 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Huta/z_bg_haka_huta.c +++ b/src/overlays/actors/ovl_Bg_Haka_Huta/z_bg_haka_huta.c @@ -24,7 +24,7 @@ void BgHakaHuta_SlideOpen(BgHakaHuta* this, PlayState* play); void func_8087D720(BgHakaHuta* this, PlayState* play); void BgHakaHuta_DoNothing(BgHakaHuta* this, PlayState* play); -ActorInit Bg_Haka_Huta_InitVars = { +ActorProfile Bg_Haka_Huta_Profile = { /**/ ACTOR_BG_HAKA_HUTA, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Haka_Megane/z_bg_haka_megane.c b/src/overlays/actors/ovl_Bg_Haka_Megane/z_bg_haka_megane.c index 39082dcb6..3d6de9f41 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Megane/z_bg_haka_megane.c +++ b/src/overlays/actors/ovl_Bg_Haka_Megane/z_bg_haka_megane.c @@ -19,7 +19,7 @@ void func_8087DB24(BgHakaMegane* this, PlayState* play); void func_8087DBF0(BgHakaMegane* this, PlayState* play); void BgHakaMegane_DoNothing(BgHakaMegane* this, PlayState* play); -ActorInit Bg_Haka_Megane_InitVars = { +ActorProfile Bg_Haka_Megane_Profile = { /**/ ACTOR_BG_HAKA_MEGANE, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Haka_MeganeBG/z_bg_haka_meganebg.c b/src/overlays/actors/ovl_Bg_Haka_MeganeBG/z_bg_haka_meganebg.c index 6c8e3bf11..275317dc0 100644 --- a/src/overlays/actors/ovl_Bg_Haka_MeganeBG/z_bg_haka_meganebg.c +++ b/src/overlays/actors/ovl_Bg_Haka_MeganeBG/z_bg_haka_meganebg.c @@ -23,7 +23,7 @@ void func_8087E288(BgHakaMeganeBG* this, PlayState* play); void func_8087E2D8(BgHakaMeganeBG* this, PlayState* play); void func_8087E34C(BgHakaMeganeBG* this, PlayState* play); -ActorInit Bg_Haka_MeganeBG_InitVars = { +ActorProfile Bg_Haka_MeganeBG_Profile = { /**/ ACTOR_BG_HAKA_MEGANEBG, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c b/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c index c96055ac4..9a83cbfca 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c +++ b/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c @@ -26,7 +26,7 @@ void BgHakaSgami_Draw(Actor* thisx, PlayState* play); void BgHakaSgami_SetupSpin(BgHakaSgami* this, PlayState* play); void BgHakaSgami_Spin(BgHakaSgami* this, PlayState* play); -ActorInit Bg_Haka_Sgami_InitVars = { +ActorProfile Bg_Haka_Sgami_Profile = { /**/ ACTOR_BG_HAKA_SGAMI, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Haka_Ship/z_bg_haka_ship.c b/src/overlays/actors/ovl_Bg_Haka_Ship/z_bg_haka_ship.c index 19e7e18a7..d462920c6 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Ship/z_bg_haka_ship.c +++ b/src/overlays/actors/ovl_Bg_Haka_Ship/z_bg_haka_ship.c @@ -21,7 +21,7 @@ void BgHakaShip_SetupCrash(BgHakaShip* this, PlayState* play); void BgHakaShip_CrashShake(BgHakaShip* this, PlayState* play); void BgHakaShip_CrashFall(BgHakaShip* this, PlayState* play); -ActorInit Bg_Haka_Ship_InitVars = { +ActorProfile Bg_Haka_Ship_Profile = { /**/ ACTOR_BG_HAKA_SHIP, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.c b/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.c index c65a1a2f0..49f4898de 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.c +++ b/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.c @@ -29,7 +29,7 @@ void func_80880D68(BgHakaTrap* this); static UNK_TYPE D_80880F30 = 0; -ActorInit Bg_Haka_Trap_InitVars = { +ActorProfile Bg_Haka_Trap_Profile = { /**/ ACTOR_BG_HAKA_TRAP, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.c b/src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.c index c499e3191..bd3c65642 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.c +++ b/src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.c @@ -18,7 +18,7 @@ void BgHakaTubo_Draw(Actor* thisx, PlayState* play); void BgHakaTubo_Idle(BgHakaTubo* this, PlayState* play); void BgHakaTubo_DropCollectible(BgHakaTubo* this, PlayState* play); -ActorInit Bg_Haka_Tubo_InitVars = { +ActorProfile Bg_Haka_Tubo_Profile = { /**/ ACTOR_BG_HAKA_TUBO, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Haka_Water/z_bg_haka_water.c b/src/overlays/actors/ovl_Bg_Haka_Water/z_bg_haka_water.c index e40af6493..588fddb5e 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Water/z_bg_haka_water.c +++ b/src/overlays/actors/ovl_Bg_Haka_Water/z_bg_haka_water.c @@ -18,7 +18,7 @@ void BgHakaWater_LowerWater(BgHakaWater* this, PlayState* play); void BgHakaWater_Wait(BgHakaWater* this, PlayState* play); void BgHakaWater_ChangeWaterLevel(BgHakaWater* this, PlayState* play); -ActorInit Bg_Haka_Water_InitVars = { +ActorProfile Bg_Haka_Water_Profile = { /**/ ACTOR_BG_HAKA_WATER, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c b/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c index 781dd579b..dd4b28148 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c +++ b/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c @@ -54,7 +54,7 @@ static ColliderCylinderInit sCylinderInit = { static Vec3f sZeroVec = { 0.0f, 0.0f, 0.0f }; -ActorInit Bg_Haka_Zou_InitVars = { +ActorProfile Bg_Haka_Zou_Profile = { /**/ ACTOR_BG_HAKA_ZOU, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Heavy_Block/z_bg_heavy_block.c b/src/overlays/actors/ovl_Bg_Heavy_Block/z_bg_heavy_block.c index 85549a63d..683bf85b7 100644 --- a/src/overlays/actors/ovl_Bg_Heavy_Block/z_bg_heavy_block.c +++ b/src/overlays/actors/ovl_Bg_Heavy_Block/z_bg_heavy_block.c @@ -27,7 +27,7 @@ void BgHeavyBlock_Fly(BgHeavyBlock* this, PlayState* play); void BgHeavyBlock_Land(BgHeavyBlock* this, PlayState* play); void BgHeavyBlock_DoNothing(BgHeavyBlock* this, PlayState* play); -ActorInit Bg_Heavy_Block_InitVars = { +ActorProfile Bg_Heavy_Block_Profile = { /**/ ACTOR_BG_HEAVY_BLOCK, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c b/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c index 394a828b6..080c74d95 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c @@ -53,7 +53,7 @@ static CollisionCheckInfoInit sCcInfoInit = { 1, 80, 100, MASS_IMMOVABLE }; static BgHidanCurtainParams sHCParams[] = { { 81, 144, 0.090f, 144.0f, 5.0f }, { 46, 88, 0.055f, 88.0f, 3.0f } }; -ActorInit Bg_Hidan_Curtain_InitVars = { +ActorProfile Bg_Hidan_Curtain_Profile = { /**/ ACTOR_BG_HIDAN_CURTAIN, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Dalm/z_bg_hidan_dalm.c b/src/overlays/actors/ovl_Bg_Hidan_Dalm/z_bg_hidan_dalm.c index 16e1d8042..7e7732883 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Dalm/z_bg_hidan_dalm.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Dalm/z_bg_hidan_dalm.c @@ -17,7 +17,7 @@ void BgHidanDalm_Draw(Actor* thisx, PlayState* play); void BgHidanDalm_Wait(BgHidanDalm* this, PlayState* play); void BgHidanDalm_Shrink(BgHidanDalm* this, PlayState* play); -ActorInit Bg_Hidan_Dalm_InitVars = { +ActorProfile Bg_Hidan_Dalm_Profile = { /**/ ACTOR_BG_HIDAN_DALM, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall.c b/src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall.c index 130b38c12..c0de44701 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall.c @@ -21,7 +21,7 @@ void BgHidanFirewall_Erupt(BgHidanFirewall* this, PlayState* play); void BgHidanFirewall_Collide(BgHidanFirewall* this, PlayState* play); void BgHidanFirewall_ColliderFollowPlayer(BgHidanFirewall* this, PlayState* play); -ActorInit Bg_Hidan_Firewall_InitVars = { +ActorProfile Bg_Hidan_Firewall_Profile = { /**/ ACTOR_BG_HIDAN_FIREWALL, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Fslift/z_bg_hidan_fslift.c b/src/overlays/actors/ovl_Bg_Hidan_Fslift/z_bg_hidan_fslift.c index 846903cfb..202eea424 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Fslift/z_bg_hidan_fslift.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Fslift/z_bg_hidan_fslift.c @@ -18,7 +18,7 @@ void BgHidanFslift_Idle(BgHidanFslift* this, PlayState* play); void BgHidanFslift_Descend(BgHidanFslift* this, PlayState* play); void BgHidanFslift_Ascend(BgHidanFslift* this, PlayState* play); -ActorInit Bg_Hidan_Fslift_InitVars = { +ActorProfile Bg_Hidan_Fslift_Profile = { /**/ ACTOR_BG_HIDAN_FSLIFT, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c b/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c index 170f0677b..512d9337c 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c @@ -31,7 +31,7 @@ void BgHidanFwbig_WaitForTimer(BgHidanFwbig* this, PlayState* play); void BgHidanFwbig_WaitForPlayer(BgHidanFwbig* this, PlayState* play); void BgHidanFwbig_Move(BgHidanFwbig* this, PlayState* play); -ActorInit Bg_Hidan_Fwbig_InitVars = { +ActorProfile Bg_Hidan_Fwbig_Profile = { /**/ ACTOR_BG_HIDAN_FWBIG, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.c b/src/overlays/actors/ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.c index 27c1c9e61..0368e6b70 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.c @@ -63,7 +63,7 @@ static ColliderTrisInit sTrisInit = { sTrisElementsInit, }; -ActorInit Bg_Hidan_Hamstep_InitVars = { +ActorProfile Bg_Hidan_Hamstep_Profile = { /**/ ACTOR_BG_HIDAN_HAMSTEP, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Hrock/z_bg_hidan_hrock.c b/src/overlays/actors/ovl_Bg_Hidan_Hrock/z_bg_hidan_hrock.c index d2f5a4f8c..99440ae97 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Hrock/z_bg_hidan_hrock.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Hrock/z_bg_hidan_hrock.c @@ -18,7 +18,7 @@ void func_8088960C(BgHidanHrock* this, PlayState* play); void func_808896B8(BgHidanHrock* this, PlayState* play); void func_808894A4(BgHidanHrock* this, PlayState* play); -ActorInit Bg_Hidan_Hrock_InitVars = { +ActorProfile Bg_Hidan_Hrock_Profile = { /**/ ACTOR_BG_HIDAN_HROCK, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Kousi/z_bg_hidan_kousi.c b/src/overlays/actors/ovl_Bg_Hidan_Kousi/z_bg_hidan_kousi.c index c7890ace8..d013eaab6 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Kousi/z_bg_hidan_kousi.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Kousi/z_bg_hidan_kousi.c @@ -23,7 +23,7 @@ void func_80889D28(BgHidanKousi* this, PlayState* play); static f32 D_80889E40[] = { 120.0f, 150.0f, 150.0f }; -ActorInit Bg_Hidan_Kousi_InitVars = { +ActorProfile Bg_Hidan_Kousi_Profile = { /**/ ACTOR_BG_HIDAN_KOUSI, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/z_bg_hidan_kowarerukabe.c b/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/z_bg_hidan_kowarerukabe.c index d9ce7e6ab..e8fb098b3 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/z_bg_hidan_kowarerukabe.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/z_bg_hidan_kowarerukabe.c @@ -22,7 +22,7 @@ void BgHidanKowarerukabe_Destroy(Actor* thisx, PlayState* play); void BgHidanKowarerukabe_Update(Actor* thisx, PlayState* play); void BgHidanKowarerukabe_Draw(Actor* thisx, PlayState* play); -ActorInit Bg_Hidan_Kowarerukabe_InitVars = { +ActorProfile Bg_Hidan_Kowarerukabe_Profile = { /**/ ACTOR_BG_HIDAN_KOWARERUKABE, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c b/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c index ef6bb4386..307f6f260 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c @@ -29,7 +29,7 @@ void func_8088BC40(PlayState* play, BgHidanRock* this); static Vec3f D_8088BF60 = { 3310.0f, 120.0f, 0.0f }; -ActorInit Bg_Hidan_Rock_InitVars = { +ActorProfile Bg_Hidan_Rock_Profile = { /**/ ACTOR_BG_HIDAN_ROCK, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.c b/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.c index 5f8ec0ce0..f170e2811 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.c @@ -14,7 +14,7 @@ void BgHidanRsekizou_Destroy(Actor* thisx, PlayState* play); void BgHidanRsekizou_Update(Actor* thisx, PlayState* play); void BgHidanRsekizou_Draw(Actor* thisx, PlayState* play); -ActorInit Bg_Hidan_Rsekizou_InitVars = { +ActorProfile Bg_Hidan_Rsekizou_Profile = { /**/ ACTOR_BG_HIDAN_RSEKIZOU, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c b/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c index d07db7eca..8f91b0000 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c @@ -17,7 +17,7 @@ void BgHidanSekizou_Draw(Actor* thisx, PlayState* play2); void func_8088D434(BgHidanSekizou* this, PlayState* play); void func_8088D720(BgHidanSekizou* this, PlayState* play); -ActorInit Bg_Hidan_Sekizou_InitVars = { +ActorProfile Bg_Hidan_Sekizou_Profile = { /**/ ACTOR_BG_HIDAN_SEKIZOU, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c b/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c index 8273e2696..3d0ede852 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c @@ -21,7 +21,7 @@ void func_8088E760(BgHidanSima* this, PlayState* play); void func_8088E7A8(BgHidanSima* this, PlayState* play); void func_8088E90C(BgHidanSima* this); -ActorInit Bg_Hidan_Sima_InitVars = { +ActorProfile Bg_Hidan_Sima_Profile = { /**/ ACTOR_BG_HIDAN_SIMA, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Hidan_Syoku/z_bg_hidan_syoku.c b/src/overlays/actors/ovl_Bg_Hidan_Syoku/z_bg_hidan_syoku.c index e69cca84a..0714a51c6 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Syoku/z_bg_hidan_syoku.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Syoku/z_bg_hidan_syoku.c @@ -18,7 +18,7 @@ void func_8088F4B8(BgHidanSyoku* this, PlayState* play); void func_8088F514(BgHidanSyoku* this, PlayState* play); void func_8088F62C(BgHidanSyoku* this, PlayState* play); -ActorInit Bg_Hidan_Syoku_InitVars = { +ActorProfile Bg_Hidan_Syoku_Profile = { /**/ ACTOR_BG_HIDAN_SYOKU, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Ice_Objects/z_bg_ice_objects.c b/src/overlays/actors/ovl_Bg_Ice_Objects/z_bg_ice_objects.c index 56b3d62ad..fc8bc3192 100644 --- a/src/overlays/actors/ovl_Bg_Ice_Objects/z_bg_ice_objects.c +++ b/src/overlays/actors/ovl_Bg_Ice_Objects/z_bg_ice_objects.c @@ -23,7 +23,7 @@ static Color_RGBA8 sWhite = { 250, 250, 250, 255 }; static Color_RGBA8 sGray = { 180, 180, 180, 255 }; static Vec3f sZeroVec = { 0.0f, 0.0f, 0.0f }; -ActorInit Bg_Ice_Objects_InitVars = { +ActorProfile Bg_Ice_Objects_Profile = { /**/ ACTOR_BG_ICE_OBJECTS, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c b/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c index 459e11899..d00519f2b 100644 --- a/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c +++ b/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c @@ -23,7 +23,7 @@ void BgIceShelter_SetupMelt(BgIceShelter* this); void BgIceShelter_Idle(BgIceShelter* this, PlayState* play); void BgIceShelter_Melt(BgIceShelter* this, PlayState* play); -ActorInit Bg_Ice_Shelter_InitVars = { +ActorProfile Bg_Ice_Shelter_Profile = { /**/ ACTOR_BG_ICE_SHELTER, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Ice_Shutter/z_bg_ice_shutter.c b/src/overlays/actors/ovl_Bg_Ice_Shutter/z_bg_ice_shutter.c index 0d8f5a34d..1e99bbaf1 100644 --- a/src/overlays/actors/ovl_Bg_Ice_Shutter/z_bg_ice_shutter.c +++ b/src/overlays/actors/ovl_Bg_Ice_Shutter/z_bg_ice_shutter.c @@ -18,7 +18,7 @@ void func_80891CF4(BgIceShutter* this, PlayState* play); void func_80891D6C(BgIceShutter* this, PlayState* play); void func_80891DD4(BgIceShutter* this, PlayState* play); -ActorInit Bg_Ice_Shutter_InitVars = { +ActorProfile Bg_Ice_Shutter_Profile = { /**/ ACTOR_BG_ICE_SHUTTER, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Ice_Turara/z_bg_ice_turara.c b/src/overlays/actors/ovl_Bg_Ice_Turara/z_bg_ice_turara.c index 30a2c281c..59eeb3190 100644 --- a/src/overlays/actors/ovl_Bg_Ice_Turara/z_bg_ice_turara.c +++ b/src/overlays/actors/ovl_Bg_Ice_Turara/z_bg_ice_turara.c @@ -40,7 +40,7 @@ static ColliderCylinderInit sCylinderInit = { { 13, 120, 0, { 0, 0, 0 } }, }; -ActorInit Bg_Ice_Turara_InitVars = { +ActorProfile Bg_Ice_Turara_Profile = { /**/ ACTOR_BG_ICE_TURARA, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Ingate/z_bg_ingate.c b/src/overlays/actors/ovl_Bg_Ingate/z_bg_ingate.c index 81e75edbd..47a008c9f 100644 --- a/src/overlays/actors/ovl_Bg_Ingate/z_bg_ingate.c +++ b/src/overlays/actors/ovl_Bg_Ingate/z_bg_ingate.c @@ -17,7 +17,7 @@ void BgInGate_Draw(Actor* thisx, PlayState* play); void func_80892890(BgInGate* this, PlayState* play); void BgInGate_DoNothing(BgInGate* this, PlayState* play); -ActorInit Bg_Ingate_InitVars = { +ActorProfile Bg_Ingate_Profile = { /**/ ACTOR_BG_INGATE, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Jya_1flift/z_bg_jya_1flift.c b/src/overlays/actors/ovl_Bg_Jya_1flift/z_bg_jya_1flift.c index 0b5e2c538..e9395d903 100644 --- a/src/overlays/actors/ovl_Bg_Jya_1flift/z_bg_jya_1flift.c +++ b/src/overlays/actors/ovl_Bg_Jya_1flift/z_bg_jya_1flift.c @@ -25,7 +25,7 @@ void BgJya1flift_DelayMove(BgJya1flift* this, PlayState* play); static u8 sIsSpawned = false; -ActorInit Bg_Jya_1flift_InitVars = { +ActorProfile Bg_Jya_1flift_Profile = { /**/ ACTOR_BG_JYA_1FLIFT, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Jya_Amishutter/z_bg_jya_amishutter.c b/src/overlays/actors/ovl_Bg_Jya_Amishutter/z_bg_jya_amishutter.c index 87cb2807d..b610da9e4 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Amishutter/z_bg_jya_amishutter.c +++ b/src/overlays/actors/ovl_Bg_Jya_Amishutter/z_bg_jya_amishutter.c @@ -23,7 +23,7 @@ void func_808934C0(BgJyaAmishutter* this); void func_808934FC(BgJyaAmishutter* this); void func_8089350C(BgJyaAmishutter* this); -ActorInit Bg_Jya_Amishutter_InitVars = { +ActorProfile Bg_Jya_Amishutter_Profile = { /**/ ACTOR_BG_JYA_AMISHUTTER, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Jya_Bigmirror/z_bg_jya_bigmirror.c b/src/overlays/actors/ovl_Bg_Jya_Bigmirror/z_bg_jya_bigmirror.c index a8e3c1ad7..e80148878 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Bigmirror/z_bg_jya_bigmirror.c +++ b/src/overlays/actors/ovl_Bg_Jya_Bigmirror/z_bg_jya_bigmirror.c @@ -16,7 +16,7 @@ void BgJyaBigmirror_Draw(Actor* thisx, PlayState* play); static u8 sIsSpawned = false; -ActorInit Bg_Jya_Bigmirror_InitVars = { +ActorProfile Bg_Jya_Bigmirror_Profile = { /**/ ACTOR_BG_JYA_BIGMIRROR, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Jya_Block/z_bg_jya_block.c b/src/overlays/actors/ovl_Bg_Jya_Block/z_bg_jya_block.c index e4155e4f8..c6923c662 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Block/z_bg_jya_block.c +++ b/src/overlays/actors/ovl_Bg_Jya_Block/z_bg_jya_block.c @@ -14,7 +14,7 @@ void BgJyaBlock_Destroy(Actor* thisx, PlayState* play); void BgJyaBlock_Update(Actor* thisx, PlayState* play); void BgJyaBlock_Draw(Actor* thisx, PlayState* play); -ActorInit Bg_Jya_Block_InitVars = { +ActorProfile Bg_Jya_Block_Profile = { /**/ ACTOR_BG_JYA_BLOCK, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c b/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c index b4c2d6158..1fa70be0d 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c +++ b/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c @@ -14,7 +14,7 @@ void func_808949B8(BgJyaBombchuiwa* this, PlayState* play); void BgJyaBombchuiwa_CleanUpAfterExplosion(BgJyaBombchuiwa* this, PlayState* play); void BgJyaBombchuiwa_SpawnLightRay(BgJyaBombchuiwa* this, PlayState* play); -ActorInit Bg_Jya_Bombchuiwa_InitVars = { +ActorProfile Bg_Jya_Bombchuiwa_Profile = { /**/ ACTOR_BG_JYA_BOMBCHUIWA, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c b/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c index 4450298fa..103471d3c 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c +++ b/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c @@ -16,7 +16,7 @@ void BgJyaBombiwa_Destroy(Actor* thisx, PlayState* play); void BgJyaBombiwa_Update(Actor* thisx, PlayState* play); void BgJyaBombiwa_Draw(Actor* thisx, PlayState* play); -ActorInit Bg_Jya_Bombiwa_InitVars = { +ActorProfile Bg_Jya_Bombiwa_Profile = { /**/ ACTOR_BG_JYA_BOMBIWA, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Jya_Cobra/z_bg_jya_cobra.c b/src/overlays/actors/ovl_Bg_Jya_Cobra/z_bg_jya_cobra.c index 78f5a1f5e..079b2cc87 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Cobra/z_bg_jya_cobra.c +++ b/src/overlays/actors/ovl_Bg_Jya_Cobra/z_bg_jya_cobra.c @@ -18,7 +18,7 @@ void func_80896ABC(BgJyaCobra* this, PlayState* play); #include "assets/overlays/ovl_Bg_Jya_Cobra/ovl_Bg_Jya_Cobra.c" -ActorInit Bg_Jya_Cobra_InitVars = { +ActorProfile Bg_Jya_Cobra_Profile = { /**/ ACTOR_BG_JYA_COBRA, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.c b/src/overlays/actors/ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.c index 7ab065bd3..5a4898763 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.c +++ b/src/overlays/actors/ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.c @@ -23,7 +23,7 @@ void BgJyaGoroiwa_SetupMove(BgJyaGoroiwa* this); void BgJyaGoroiwa_UpdateRotation(BgJyaGoroiwa* this); void BgJyaGoroiwa_UpdateCollider(BgJyaGoroiwa* this); -ActorInit Bg_Jya_Goroiwa_InitVars = { +ActorProfile Bg_Jya_Goroiwa_Profile = { /**/ ACTOR_BG_JYA_GOROIWA, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Jya_Haheniron/z_bg_jya_haheniron.c b/src/overlays/actors/ovl_Bg_Jya_Haheniron/z_bg_jya_haheniron.c index 93e972e2e..670bbef00 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Haheniron/z_bg_jya_haheniron.c +++ b/src/overlays/actors/ovl_Bg_Jya_Haheniron/z_bg_jya_haheniron.c @@ -22,7 +22,7 @@ void BgJyaHaheniron_PillarCrumble(BgJyaHaheniron* this, PlayState* play); void BgJyaHaheniron_SetupRubbleCollide(BgJyaHaheniron* this); void BgJyaHaheniron_RubbleCollide(BgJyaHaheniron* this, PlayState* play); -ActorInit Bg_Jya_Haheniron_InitVars = { +ActorProfile Bg_Jya_Haheniron_Profile = { /**/ ACTOR_BG_JYA_HAHENIRON, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.c b/src/overlays/actors/ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.c index 9188456de..8d955b402 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.c +++ b/src/overlays/actors/ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.c @@ -24,7 +24,7 @@ void BgJyaIronobj_SpawnThroneParticles(BgJyaIronobj* this, PlayState* play, EnIk static int sUnused = 0; -ActorInit Bg_Jya_Ironobj_InitVars = { +ActorProfile Bg_Jya_Ironobj_Profile = { /**/ ACTOR_BG_JYA_IRONOBJ, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Jya_Kanaami/z_bg_jya_kanaami.c b/src/overlays/actors/ovl_Bg_Jya_Kanaami/z_bg_jya_kanaami.c index 4a56ed44e..3c752333b 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Kanaami/z_bg_jya_kanaami.c +++ b/src/overlays/actors/ovl_Bg_Jya_Kanaami/z_bg_jya_kanaami.c @@ -21,7 +21,7 @@ void func_8089993C(BgJyaKanaami* this); void func_80899950(BgJyaKanaami* this, PlayState* play); void func_80899A08(BgJyaKanaami* this); -ActorInit Bg_Jya_Kanaami_InitVars = { +ActorProfile Bg_Jya_Kanaami_Profile = { /**/ ACTOR_BG_JYA_KANAAMI, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Jya_Lift/z_bg_jya_lift.c b/src/overlays/actors/ovl_Bg_Jya_Lift/z_bg_jya_lift.c index 5462ee6dc..4d5a3367e 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Lift/z_bg_jya_lift.c +++ b/src/overlays/actors/ovl_Bg_Jya_Lift/z_bg_jya_lift.c @@ -22,7 +22,7 @@ void BgJyaLift_Move(BgJyaLift* this, PlayState* play); static s16 sIsSpawned = false; -ActorInit Bg_Jya_Lift_InitVars = { +ActorProfile Bg_Jya_Lift_Profile = { /**/ ACTOR_BG_JYA_LIFT, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.c b/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.c index f4bd5ebcf..b51804cb1 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.c +++ b/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.c @@ -20,7 +20,7 @@ void BgJyaMegami_DetectLight(BgJyaMegami* this, PlayState* play); void BgJyaMegami_SetupExplode(BgJyaMegami* this); void BgJyaMegami_Explode(BgJyaMegami* this, PlayState* play); -ActorInit Bg_Jya_Megami_InitVars = { +ActorProfile Bg_Jya_Megami_Profile = { /**/ ACTOR_BG_JYA_MEGAMI, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/z_bg_jya_zurerukabe.c b/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/z_bg_jya_zurerukabe.c index 378116f72..2786512bc 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/z_bg_jya_zurerukabe.c +++ b/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/z_bg_jya_zurerukabe.c @@ -23,7 +23,7 @@ void func_8089B870(BgJyaZurerukabe* this, PlayState* play); static f32 D_8089B9C0[4] = { 0.0f, 0.0f, 0.0f, 0.0f }; -ActorInit Bg_Jya_Zurerukabe_InitVars = { +ActorProfile Bg_Jya_Zurerukabe_Profile = { /**/ ACTOR_BG_JYA_ZURERUKABE, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Menkuri_Eye/z_bg_menkuri_eye.c b/src/overlays/actors/ovl_Bg_Menkuri_Eye/z_bg_menkuri_eye.c index a39b2e8ae..da6e9c60c 100644 --- a/src/overlays/actors/ovl_Bg_Menkuri_Eye/z_bg_menkuri_eye.c +++ b/src/overlays/actors/ovl_Bg_Menkuri_Eye/z_bg_menkuri_eye.c @@ -14,7 +14,7 @@ void BgMenkuriEye_Destroy(Actor* thisx, PlayState* play); void BgMenkuriEye_Update(Actor* thisx, PlayState* play); void BgMenkuriEye_Draw(Actor* thisx, PlayState* play); -ActorInit Bg_Menkuri_Eye_InitVars = { +ActorProfile Bg_Menkuri_Eye_Profile = { /**/ ACTOR_BG_MENKURI_EYE, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Menkuri_Kaiten/z_bg_menkuri_kaiten.c b/src/overlays/actors/ovl_Bg_Menkuri_Kaiten/z_bg_menkuri_kaiten.c index b7fa437b8..7b3e0b5b4 100644 --- a/src/overlays/actors/ovl_Bg_Menkuri_Kaiten/z_bg_menkuri_kaiten.c +++ b/src/overlays/actors/ovl_Bg_Menkuri_Kaiten/z_bg_menkuri_kaiten.c @@ -14,7 +14,7 @@ void BgMenkuriKaiten_Destroy(Actor* thisx, PlayState* play); void BgMenkuriKaiten_Update(Actor* thisx, PlayState* play); void BgMenkuriKaiten_Draw(Actor* thisx, PlayState* play); -ActorInit Bg_Menkuri_Kaiten_InitVars = { +ActorProfile Bg_Menkuri_Kaiten_Profile = { /**/ ACTOR_BG_MENKURI_KAITEN, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Menkuri_Nisekabe/z_bg_menkuri_nisekabe.c b/src/overlays/actors/ovl_Bg_Menkuri_Nisekabe/z_bg_menkuri_nisekabe.c index 0d3c4635e..0bd95411b 100644 --- a/src/overlays/actors/ovl_Bg_Menkuri_Nisekabe/z_bg_menkuri_nisekabe.c +++ b/src/overlays/actors/ovl_Bg_Menkuri_Nisekabe/z_bg_menkuri_nisekabe.c @@ -14,7 +14,7 @@ void BgMenkuriNisekabe_Destroy(Actor* thisx, PlayState* play); void BgMenkuriNisekabe_Update(Actor* thisx, PlayState* play); void BgMenkuriNisekabe_Draw(Actor* thisx, PlayState* play); -ActorInit Bg_Menkuri_Nisekabe_InitVars = { +ActorProfile Bg_Menkuri_Nisekabe_Profile = { /**/ ACTOR_BG_MENKURI_NISEKABE, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c b/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c index 2eaf22b9e..558931bc9 100644 --- a/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c +++ b/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c @@ -19,7 +19,7 @@ void BgMizuBwall_Idle(BgMizuBwall* this, PlayState* play); void BgMizuBwall_Break(BgMizuBwall* this, PlayState* play); void BgMizuBwall_DoNothing(BgMizuBwall* this, PlayState* play); -ActorInit Bg_Mizu_Bwall_InitVars = { +ActorProfile Bg_Mizu_Bwall_Profile = { /**/ ACTOR_BG_MIZU_BWALL, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Mizu_Movebg/z_bg_mizu_movebg.c b/src/overlays/actors/ovl_Bg_Mizu_Movebg/z_bg_mizu_movebg.c index 9e78921ae..92c9389ce 100644 --- a/src/overlays/actors/ovl_Bg_Mizu_Movebg/z_bg_mizu_movebg.c +++ b/src/overlays/actors/ovl_Bg_Mizu_Movebg/z_bg_mizu_movebg.c @@ -25,7 +25,7 @@ void BgMizuMovebg_UpdateMain(BgMizuMovebg* this, PlayState* play); void BgMizuMovebg_UpdateHookshotPlatform(BgMizuMovebg* this, PlayState* play); s32 BgMizuMovebg_SetPosFromPath(Path* pathList, Vec3f* pos, s32 pathId, s32 pointId); -ActorInit Bg_Mizu_Movebg_InitVars = { +ActorProfile Bg_Mizu_Movebg_Profile = { /**/ ACTOR_BG_MIZU_MOVEBG, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Mizu_Shutter/z_bg_mizu_shutter.c b/src/overlays/actors/ovl_Bg_Mizu_Shutter/z_bg_mizu_shutter.c index a547fde73..8af0447f2 100644 --- a/src/overlays/actors/ovl_Bg_Mizu_Shutter/z_bg_mizu_shutter.c +++ b/src/overlays/actors/ovl_Bg_Mizu_Shutter/z_bg_mizu_shutter.c @@ -13,7 +13,7 @@ void BgMizuShutter_WaitForSwitch(BgMizuShutter* this, PlayState* play); void BgMizuShutter_Move(BgMizuShutter* this, PlayState* play); void BgMizuShutter_WaitForCutscene(BgMizuShutter* this, PlayState* play); -ActorInit Bg_Mizu_Shutter_InitVars = { +ActorProfile Bg_Mizu_Shutter_Profile = { /**/ ACTOR_BG_MIZU_SHUTTER, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Mizu_Uzu/z_bg_mizu_uzu.c b/src/overlays/actors/ovl_Bg_Mizu_Uzu/z_bg_mizu_uzu.c index 8d9ebd855..1810d0bd2 100644 --- a/src/overlays/actors/ovl_Bg_Mizu_Uzu/z_bg_mizu_uzu.c +++ b/src/overlays/actors/ovl_Bg_Mizu_Uzu/z_bg_mizu_uzu.c @@ -16,7 +16,7 @@ void BgMizuUzu_Draw(Actor* thisx, PlayState* play); void func_8089F788(BgMizuUzu* this, PlayState* play); -ActorInit Bg_Mizu_Uzu_InitVars = { +ActorProfile Bg_Mizu_Uzu_Profile = { /**/ ACTOR_BG_MIZU_UZU, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.c b/src/overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.c index c0071bed5..4d58505b0 100644 --- a/src/overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.c +++ b/src/overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.c @@ -29,7 +29,7 @@ static WaterLevel sWaterLevels[] = { { WATER_TEMPLE_WATER_F1_FLAG, WATER_TEMPLE_WATER_F1_Y - WATER_TEMPLE_WATER_F3_Y }, }; -ActorInit Bg_Mizu_Water_InitVars = { +ActorProfile Bg_Mizu_Water_Profile = { /**/ ACTOR_BG_MIZU_WATER, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Mjin/z_bg_mjin.c b/src/overlays/actors/ovl_Bg_Mjin/z_bg_mjin.c index 4463a4f79..a615c5598 100644 --- a/src/overlays/actors/ovl_Bg_Mjin/z_bg_mjin.c +++ b/src/overlays/actors/ovl_Bg_Mjin/z_bg_mjin.c @@ -24,7 +24,7 @@ void BgMjin_Draw(Actor* thisx, PlayState* play); void func_808A0850(BgMjin* this, PlayState* play); void BgMjin_DoNothing(BgMjin* this, PlayState* play); -ActorInit Bg_Mjin_InitVars = { +ActorProfile Bg_Mjin_Profile = { /**/ ACTOR_BG_MJIN, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Mori_Bigst/z_bg_mori_bigst.c b/src/overlays/actors/ovl_Bg_Mori_Bigst/z_bg_mori_bigst.c index 9cb6034bc..afb9469ab 100644 --- a/src/overlays/actors/ovl_Bg_Mori_Bigst/z_bg_mori_bigst.c +++ b/src/overlays/actors/ovl_Bg_Mori_Bigst/z_bg_mori_bigst.c @@ -28,7 +28,7 @@ void BgMoriBigst_SetupStalfosPairFight(BgMoriBigst* this, PlayState* play); void BgMoriBigst_StalfosPairFight(BgMoriBigst* this, PlayState* play); void BgMoriBigst_SetupDone(BgMoriBigst* this, PlayState* play); -ActorInit Bg_Mori_Bigst_InitVars = { +ActorProfile Bg_Mori_Bigst_Profile = { /**/ ACTOR_BG_MORI_BIGST, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Mori_Elevator/z_bg_mori_elevator.c b/src/overlays/actors/ovl_Bg_Mori_Elevator/z_bg_mori_elevator.c index 8b50d4b5d..b5bbda9f2 100644 --- a/src/overlays/actors/ovl_Bg_Mori_Elevator/z_bg_mori_elevator.c +++ b/src/overlays/actors/ovl_Bg_Mori_Elevator/z_bg_mori_elevator.c @@ -19,7 +19,7 @@ void BgMoriElevator_MoveAboveGround(BgMoriElevator* this, PlayState* play); static s16 sIsSpawned = false; -ActorInit Bg_Mori_Elevator_InitVars = { +ActorProfile Bg_Mori_Elevator_Profile = { /**/ ACTOR_BG_MORI_ELEVATOR, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c b/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c index a4b870c10..7d779dc94 100644 --- a/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c +++ b/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c @@ -24,7 +24,7 @@ void BgMoriHashigo_SetupLadderFall(BgMoriHashigo* this); void BgMoriHashigo_LadderFall(BgMoriHashigo* this, PlayState* play); void BgMoriHashigo_SetupLadderRest(BgMoriHashigo* this); -ActorInit Bg_Mori_Hashigo_InitVars = { +ActorProfile Bg_Mori_Hashigo_Profile = { /**/ ACTOR_BG_MORI_HASHIGO, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Mori_Hashira4/z_bg_mori_hashira4.c b/src/overlays/actors/ovl_Bg_Mori_Hashira4/z_bg_mori_hashira4.c index 5f5af2235..ca0224f17 100644 --- a/src/overlays/actors/ovl_Bg_Mori_Hashira4/z_bg_mori_hashira4.c +++ b/src/overlays/actors/ovl_Bg_Mori_Hashira4/z_bg_mori_hashira4.c @@ -21,7 +21,7 @@ void BgMoriHashira4_PillarsRotate(BgMoriHashira4* this, PlayState* play); void BgMoriHashira4_GateWait(BgMoriHashira4* this, PlayState* play); void BgMoriHashira4_GateOpen(BgMoriHashira4* this, PlayState* play); -ActorInit Bg_Mori_Hashira4_InitVars = { +ActorProfile Bg_Mori_Hashira4_Profile = { /**/ ACTOR_BG_MORI_HASHIRA4, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Mori_Hineri/z_bg_mori_hineri.c b/src/overlays/actors/ovl_Bg_Mori_Hineri/z_bg_mori_hineri.c index b6c0d9c9b..7e94e0cbe 100644 --- a/src/overlays/actors/ovl_Bg_Mori_Hineri/z_bg_mori_hineri.c +++ b/src/overlays/actors/ovl_Bg_Mori_Hineri/z_bg_mori_hineri.c @@ -29,7 +29,7 @@ void func_808A3D58(BgMoriHineri* this, PlayState* play); static s16 sSubCamId = CAM_ID_NONE; -ActorInit Bg_Mori_Hineri_InitVars = { +ActorProfile Bg_Mori_Hineri_Profile = { /**/ ACTOR_BG_MORI_HINERI, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Mori_Idomizu/z_bg_mori_idomizu.c b/src/overlays/actors/ovl_Bg_Mori_Idomizu/z_bg_mori_idomizu.c index 0af410e5f..d16ebaa95 100644 --- a/src/overlays/actors/ovl_Bg_Mori_Idomizu/z_bg_mori_idomizu.c +++ b/src/overlays/actors/ovl_Bg_Mori_Idomizu/z_bg_mori_idomizu.c @@ -21,7 +21,7 @@ void BgMoriIdomizu_Main(BgMoriIdomizu* this, PlayState* play); static s16 sIsSpawned = false; -ActorInit Bg_Mori_Idomizu_InitVars = { +ActorProfile Bg_Mori_Idomizu_Profile = { /**/ ACTOR_BG_MORI_IDOMIZU, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Mori_Kaitenkabe/z_bg_mori_kaitenkabe.c b/src/overlays/actors/ovl_Bg_Mori_Kaitenkabe/z_bg_mori_kaitenkabe.c index 836ab229a..ab012874b 100644 --- a/src/overlays/actors/ovl_Bg_Mori_Kaitenkabe/z_bg_mori_kaitenkabe.c +++ b/src/overlays/actors/ovl_Bg_Mori_Kaitenkabe/z_bg_mori_kaitenkabe.c @@ -20,7 +20,7 @@ void BgMoriKaitenkabe_Wait(BgMoriKaitenkabe* this, PlayState* play); void BgMoriKaitenkabe_SetupRotate(BgMoriKaitenkabe* this); void BgMoriKaitenkabe_Rotate(BgMoriKaitenkabe* this, PlayState* play); -ActorInit Bg_Mori_Kaitenkabe_InitVars = { +ActorProfile Bg_Mori_Kaitenkabe_Profile = { /**/ ACTOR_BG_MORI_KAITENKABE, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/z_bg_mori_rakkatenjo.c b/src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/z_bg_mori_rakkatenjo.c index cab9eed7d..1cb084f29 100644 --- a/src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/z_bg_mori_rakkatenjo.c +++ b/src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/z_bg_mori_rakkatenjo.c @@ -28,7 +28,7 @@ void BgMoriRakkatenjo_Rise(BgMoriRakkatenjo* this, PlayState* play); static s16 sCamSetting = CAM_SET_NONE; -ActorInit Bg_Mori_Rakkatenjo_InitVars = { +ActorProfile Bg_Mori_Rakkatenjo_Profile = { /**/ ACTOR_BG_MORI_RAKKATENJO, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.c b/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.c index f5fb613ba..9111d5e0e 100644 --- a/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.c +++ b/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.c @@ -28,7 +28,7 @@ void BgPoEvent_PaintingAppear(BgPoEvent* this, PlayState* play); void BgPoEvent_PaintingPresent(BgPoEvent* this, PlayState* play); void BgPoEvent_PaintingBurn(BgPoEvent* this, PlayState* play); -ActorInit Bg_Po_Event_InitVars = { +ActorProfile Bg_Po_Event_Profile = { /**/ ACTOR_BG_PO_EVENT, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c b/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c index 5c379a538..6def1043f 100644 --- a/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c +++ b/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c @@ -58,7 +58,7 @@ static Color_RGBA8 sEnvColors[] = { { 0, 150, 0, 255 }, }; -ActorInit Bg_Po_Syokudai_InitVars = { +ActorProfile Bg_Po_Syokudai_Profile = { /**/ ACTOR_BG_PO_SYOKUDAI, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Pushbox/z_bg_pushbox.c b/src/overlays/actors/ovl_Bg_Pushbox/z_bg_pushbox.c index ef5e59d66..78104fa50 100644 --- a/src/overlays/actors/ovl_Bg_Pushbox/z_bg_pushbox.c +++ b/src/overlays/actors/ovl_Bg_Pushbox/z_bg_pushbox.c @@ -16,7 +16,7 @@ void BgPushbox_Draw(Actor* thisx, PlayState* play); void BgPushbox_UpdateImpl(BgPushbox* this, PlayState* play); -ActorInit Bg_Pushbox_InitVars = { +ActorProfile Bg_Pushbox_Profile = { /**/ ACTOR_BG_PUSHBOX, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Relay_Objects/z_bg_relay_objects.c b/src/overlays/actors/ovl_Bg_Relay_Objects/z_bg_relay_objects.c index 680f6e12e..038890ee8 100644 --- a/src/overlays/actors/ovl_Bg_Relay_Objects/z_bg_relay_objects.c +++ b/src/overlays/actors/ovl_Bg_Relay_Objects/z_bg_relay_objects.c @@ -26,7 +26,7 @@ void BgRelayObjects_DoNothing(BgRelayObjects* this, PlayState* play); void func_808A932C(BgRelayObjects* this, PlayState* play); void func_808A939C(BgRelayObjects* this, PlayState* play); -ActorInit Bg_Relay_Objects_InitVars = { +ActorProfile Bg_Relay_Objects_Profile = { /**/ ACTOR_BG_RELAY_OBJECTS, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Spot00_Break/z_bg_spot00_break.c b/src/overlays/actors/ovl_Bg_Spot00_Break/z_bg_spot00_break.c index a16c96b91..2ad49f6e7 100644 --- a/src/overlays/actors/ovl_Bg_Spot00_Break/z_bg_spot00_break.c +++ b/src/overlays/actors/ovl_Bg_Spot00_Break/z_bg_spot00_break.c @@ -14,7 +14,7 @@ void BgSpot00Break_Destroy(Actor* thisx, PlayState* play); void BgSpot00Break_Update(Actor* thisx, PlayState* play); void BgSpot00Break_Draw(Actor* thisx, PlayState* play); -ActorInit Bg_Spot00_Break_InitVars = { +ActorProfile Bg_Spot00_Break_Profile = { /**/ ACTOR_BG_SPOT00_BREAK, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c b/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c index 1fafea47c..95d9f361b 100644 --- a/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c +++ b/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c @@ -25,7 +25,7 @@ void BgSpot00Hanebasi_DrawbridgeWait(BgSpot00Hanebasi* this, PlayState* play); void BgSpot00Hanebasi_DrawbridgeRiseAndFall(BgSpot00Hanebasi* this, PlayState* play); void BgSpot00Hanebasi_SetTorchLightInfo(BgSpot00Hanebasi* this, PlayState* play); -ActorInit Bg_Spot00_Hanebasi_InitVars = { +ActorProfile Bg_Spot00_Hanebasi_Profile = { /**/ ACTOR_BG_SPOT00_HANEBASI, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Spot01_Fusya/z_bg_spot01_fusya.c b/src/overlays/actors/ovl_Bg_Spot01_Fusya/z_bg_spot01_fusya.c index f2306ac6b..d01ec3a34 100644 --- a/src/overlays/actors/ovl_Bg_Spot01_Fusya/z_bg_spot01_fusya.c +++ b/src/overlays/actors/ovl_Bg_Spot01_Fusya/z_bg_spot01_fusya.c @@ -16,7 +16,7 @@ void BgSpot01Fusya_Draw(Actor* thisx, PlayState* play); void func_808AAA50(BgSpot01Fusya* this, PlayState* play); -ActorInit Bg_Spot01_Fusya_InitVars = { +ActorProfile Bg_Spot01_Fusya_Profile = { /**/ ACTOR_BG_SPOT01_FUSYA, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Spot01_Idohashira/z_bg_spot01_idohashira.c b/src/overlays/actors/ovl_Bg_Spot01_Idohashira/z_bg_spot01_idohashira.c index a8e6ce655..3542b7714 100644 --- a/src/overlays/actors/ovl_Bg_Spot01_Idohashira/z_bg_spot01_idohashira.c +++ b/src/overlays/actors/ovl_Bg_Spot01_Idohashira/z_bg_spot01_idohashira.c @@ -36,7 +36,7 @@ static BgSpot01IdohashiraDrawFunc sDrawFuncs[] = { func_808AB700, }; -ActorInit Bg_Spot01_Idohashira_InitVars = { +ActorProfile Bg_Spot01_Idohashira_Profile = { /**/ ACTOR_BG_SPOT01_IDOHASHIRA, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Spot01_Idomizu/z_bg_spot01_idomizu.c b/src/overlays/actors/ovl_Bg_Spot01_Idomizu/z_bg_spot01_idomizu.c index 4b1ec00ad..994a2d2bb 100644 --- a/src/overlays/actors/ovl_Bg_Spot01_Idomizu/z_bg_spot01_idomizu.c +++ b/src/overlays/actors/ovl_Bg_Spot01_Idomizu/z_bg_spot01_idomizu.c @@ -16,7 +16,7 @@ void BgSpot01Idomizu_Draw(Actor* thisx, PlayState* play); void func_808ABB84(BgSpot01Idomizu* this, PlayState* play); -ActorInit Bg_Spot01_Idomizu_InitVars = { +ActorProfile Bg_Spot01_Idomizu_Profile = { /**/ ACTOR_BG_SPOT01_IDOMIZU, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Spot01_Idosoko/z_bg_spot01_idosoko.c b/src/overlays/actors/ovl_Bg_Spot01_Idosoko/z_bg_spot01_idosoko.c index 0acc4f207..8623e2dd7 100644 --- a/src/overlays/actors/ovl_Bg_Spot01_Idosoko/z_bg_spot01_idosoko.c +++ b/src/overlays/actors/ovl_Bg_Spot01_Idosoko/z_bg_spot01_idosoko.c @@ -16,7 +16,7 @@ void BgSpot01Idosoko_Draw(Actor* thisx, PlayState* play); void func_808ABF54(BgSpot01Idosoko* this, PlayState* play); -ActorInit Bg_Spot01_Idosoko_InitVars = { +ActorProfile Bg_Spot01_Idosoko_Profile = { /**/ ACTOR_BG_SPOT01_IDOSOKO, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Spot01_Objects2/z_bg_spot01_objects2.c b/src/overlays/actors/ovl_Bg_Spot01_Objects2/z_bg_spot01_objects2.c index 63697a0a8..921cc601e 100644 --- a/src/overlays/actors/ovl_Bg_Spot01_Objects2/z_bg_spot01_objects2.c +++ b/src/overlays/actors/ovl_Bg_Spot01_Objects2/z_bg_spot01_objects2.c @@ -18,7 +18,7 @@ void func_808AC2BC(BgSpot01Objects2* this, PlayState* play); void func_808AC474(BgSpot01Objects2* this, PlayState* play); void func_808AC4A4(Actor* thisx, PlayState* play); -ActorInit Bg_Spot01_Objects2_InitVars = { +ActorProfile Bg_Spot01_Objects2_Profile = { /**/ ACTOR_BG_SPOT01_OBJECTS2, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Spot02_Objects/z_bg_spot02_objects.c b/src/overlays/actors/ovl_Bg_Spot02_Objects/z_bg_spot02_objects.c index 1f1f9da16..18dd4eae4 100644 --- a/src/overlays/actors/ovl_Bg_Spot02_Objects/z_bg_spot02_objects.c +++ b/src/overlays/actors/ovl_Bg_Spot02_Objects/z_bg_spot02_objects.c @@ -31,7 +31,7 @@ static void* D_808AD850[] = { object_spot02_objects_Tex_0102B0, object_spot02_objects_Tex_010EB0, object_spot02_objects_Tex_011AB0, }; -ActorInit Bg_Spot02_Objects_InitVars = { +ActorProfile Bg_Spot02_Objects_Profile = { /**/ ACTOR_BG_SPOT02_OBJECTS, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Spot03_Taki/z_bg_spot03_taki.c b/src/overlays/actors/ovl_Bg_Spot03_Taki/z_bg_spot03_taki.c index 78d1e3d37..cbeb926fa 100644 --- a/src/overlays/actors/ovl_Bg_Spot03_Taki/z_bg_spot03_taki.c +++ b/src/overlays/actors/ovl_Bg_Spot03_Taki/z_bg_spot03_taki.c @@ -16,7 +16,7 @@ void BgSpot03Taki_Draw(Actor* thisx, PlayState* play); void func_808ADEF0(BgSpot03Taki* this, PlayState* play); -ActorInit Bg_Spot03_Taki_InitVars = { +ActorProfile Bg_Spot03_Taki_Profile = { /**/ ACTOR_BG_SPOT03_TAKI, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Spot05_Soko/z_bg_spot05_soko.c b/src/overlays/actors/ovl_Bg_Spot05_Soko/z_bg_spot05_soko.c index 681a512d8..4eed72210 100644 --- a/src/overlays/actors/ovl_Bg_Spot05_Soko/z_bg_spot05_soko.c +++ b/src/overlays/actors/ovl_Bg_Spot05_Soko/z_bg_spot05_soko.c @@ -17,7 +17,7 @@ void func_808AE5A8(BgSpot05Soko* this, PlayState* play); void func_808AE5B4(BgSpot05Soko* this, PlayState* play); void func_808AE630(BgSpot05Soko* this, PlayState* play); -ActorInit Bg_Spot05_Soko_InitVars = { +ActorProfile Bg_Spot05_Soko_Profile = { /**/ ACTOR_BG_SPOT05_SOKO, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.c b/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.c index acba75f76..4d28d392c 100644 --- a/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.c +++ b/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.c @@ -44,7 +44,7 @@ void BgSpot06Objects_LockFloat(BgSpot06Objects* this, PlayState* play); void BgSpot06Objects_WaterPlaneCutsceneWait(BgSpot06Objects* this, PlayState* play); void BgSpot06Objects_WaterPlaneCutsceneRise(BgSpot06Objects* this, PlayState* play); -ActorInit Bg_Spot06_Objects_InitVars = { +ActorProfile Bg_Spot06_Objects_Profile = { /**/ ACTOR_BG_SPOT06_OBJECTS, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Spot07_Taki/z_bg_spot07_taki.c b/src/overlays/actors/ovl_Bg_Spot07_Taki/z_bg_spot07_taki.c index c88235dbf..a40daf01f 100644 --- a/src/overlays/actors/ovl_Bg_Spot07_Taki/z_bg_spot07_taki.c +++ b/src/overlays/actors/ovl_Bg_Spot07_Taki/z_bg_spot07_taki.c @@ -16,7 +16,7 @@ void BgSpot07Taki_Draw(Actor* thisx, PlayState* play); void BgSpot07Taki_DoNothing(BgSpot07Taki* this, PlayState* play); -ActorInit Bg_Spot07_Taki_InitVars = { +ActorProfile Bg_Spot07_Taki_Profile = { /**/ ACTOR_BG_SPOT07_TAKI, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/z_bg_spot08_bakudankabe.c b/src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/z_bg_spot08_bakudankabe.c index 3015e9015..4174abb0b 100644 --- a/src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/z_bg_spot08_bakudankabe.c +++ b/src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/z_bg_spot08_bakudankabe.c @@ -19,7 +19,7 @@ void BgSpot08Bakudankabe_Draw(Actor* thisx, PlayState* play); void func_808B02D0(BgSpot08Bakudankabe* this, PlayState* play); void func_808B0324(BgSpot08Bakudankabe* this, PlayState* play); -ActorInit Bg_Spot08_Bakudankabe_InitVars = { +ActorProfile Bg_Spot08_Bakudankabe_Profile = { /**/ ACTOR_BG_SPOT08_BAKUDANKABE, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Spot08_Iceblock/z_bg_spot08_iceblock.c b/src/overlays/actors/ovl_Bg_Spot08_Iceblock/z_bg_spot08_iceblock.c index 3ad8321f1..4c8336f9e 100644 --- a/src/overlays/actors/ovl_Bg_Spot08_Iceblock/z_bg_spot08_iceblock.c +++ b/src/overlays/actors/ovl_Bg_Spot08_Iceblock/z_bg_spot08_iceblock.c @@ -22,7 +22,7 @@ void BgSpot08Iceblock_SetupFloatOrbitingTwins(BgSpot08Iceblock* this); void BgSpot08Iceblock_FloatOrbitingTwins(BgSpot08Iceblock* this, PlayState* play); void BgSpot08Iceblock_SetupNoAction(BgSpot08Iceblock* this); -ActorInit Bg_Spot08_Iceblock_InitVars = { +ActorProfile Bg_Spot08_Iceblock_Profile = { /**/ ACTOR_BG_SPOT08_ICEBLOCK, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Spot09_Obj/z_bg_spot09_obj.c b/src/overlays/actors/ovl_Bg_Spot09_Obj/z_bg_spot09_obj.c index 6df0a2657..8c25f125e 100644 --- a/src/overlays/actors/ovl_Bg_Spot09_Obj/z_bg_spot09_obj.c +++ b/src/overlays/actors/ovl_Bg_Spot09_Obj/z_bg_spot09_obj.c @@ -18,7 +18,7 @@ s32 func_808B1AE0(BgSpot09Obj* this, PlayState* play); s32 func_808B1BA0(BgSpot09Obj* this, PlayState* play); s32 func_808B1BEC(BgSpot09Obj* this, PlayState* play); -ActorInit Bg_Spot09_Obj_InitVars = { +ActorProfile Bg_Spot09_Obj_Profile = { /**/ ACTOR_BG_SPOT09_OBJ, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Spot11_Bakudankabe/z_bg_spot11_bakudankabe.c b/src/overlays/actors/ovl_Bg_Spot11_Bakudankabe/z_bg_spot11_bakudankabe.c index 68f723fce..b8ce8ddae 100644 --- a/src/overlays/actors/ovl_Bg_Spot11_Bakudankabe/z_bg_spot11_bakudankabe.c +++ b/src/overlays/actors/ovl_Bg_Spot11_Bakudankabe/z_bg_spot11_bakudankabe.c @@ -16,7 +16,7 @@ void BgSpot11Bakudankabe_Destroy(Actor* thisx, PlayState* play); void BgSpot11Bakudankabe_Update(Actor* thisx, PlayState* play); void BgSpot11Bakudankabe_Draw(Actor* thisx, PlayState* play); -ActorInit Bg_Spot11_Bakudankabe_InitVars = { +ActorProfile Bg_Spot11_Bakudankabe_Profile = { /**/ ACTOR_BG_SPOT11_BAKUDANKABE, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Spot11_Oasis/z_bg_spot11_oasis.c b/src/overlays/actors/ovl_Bg_Spot11_Oasis/z_bg_spot11_oasis.c index ff7c8e28b..e5d37c33a 100644 --- a/src/overlays/actors/ovl_Bg_Spot11_Oasis/z_bg_spot11_oasis.c +++ b/src/overlays/actors/ovl_Bg_Spot11_Oasis/z_bg_spot11_oasis.c @@ -20,7 +20,7 @@ void func_808B29F0(BgSpot11Oasis* this, PlayState* play); void func_808B2AA8(BgSpot11Oasis* this); void func_808B2AB8(BgSpot11Oasis* this, PlayState* play); -ActorInit Bg_Spot11_Oasis_InitVars = { +ActorProfile Bg_Spot11_Oasis_Profile = { /**/ ACTOR_BG_SPOT11_OASIS, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Spot12_Gate/z_bg_spot12_gate.c b/src/overlays/actors/ovl_Bg_Spot12_Gate/z_bg_spot12_gate.c index 2a62445f4..f7262bc13 100644 --- a/src/overlays/actors/ovl_Bg_Spot12_Gate/z_bg_spot12_gate.c +++ b/src/overlays/actors/ovl_Bg_Spot12_Gate/z_bg_spot12_gate.c @@ -24,7 +24,7 @@ void func_808B318C(BgSpot12Gate* this, PlayState* play); void func_808B3274(BgSpot12Gate* this); void func_808B3298(BgSpot12Gate* this, PlayState* play); -ActorInit Bg_Spot12_Gate_InitVars = { +ActorProfile Bg_Spot12_Gate_Profile = { /**/ ACTOR_BG_SPOT12_GATE, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Spot12_Saku/z_bg_spot12_saku.c b/src/overlays/actors/ovl_Bg_Spot12_Saku/z_bg_spot12_saku.c index 360464957..5d6235347 100644 --- a/src/overlays/actors/ovl_Bg_Spot12_Saku/z_bg_spot12_saku.c +++ b/src/overlays/actors/ovl_Bg_Spot12_Saku/z_bg_spot12_saku.c @@ -21,7 +21,7 @@ void func_808B3604(BgSpot12Saku* this, PlayState* play); void func_808B3714(BgSpot12Saku* this); void func_808B37AC(BgSpot12Saku* this, PlayState* play); -ActorInit Bg_Spot12_Saku_InitVars = { +ActorProfile Bg_Spot12_Saku_Profile = { /**/ ACTOR_BG_SPOT12_SAKU, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Spot15_Rrbox/z_bg_spot15_rrbox.c b/src/overlays/actors/ovl_Bg_Spot15_Rrbox/z_bg_spot15_rrbox.c index 5a8560df8..ee673af66 100644 --- a/src/overlays/actors/ovl_Bg_Spot15_Rrbox/z_bg_spot15_rrbox.c +++ b/src/overlays/actors/ovl_Bg_Spot15_Rrbox/z_bg_spot15_rrbox.c @@ -25,7 +25,7 @@ void func_808B44CC(BgSpot15Rrbox* this, PlayState* play); static s16 D_808B4590 = 0; -ActorInit Bg_Spot15_Rrbox_InitVars = { +ActorProfile Bg_Spot15_Rrbox_Profile = { /**/ ACTOR_BG_SPOT15_RRBOX, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Spot15_Saku/z_bg_spot15_saku.c b/src/overlays/actors/ovl_Bg_Spot15_Saku/z_bg_spot15_saku.c index 3432321a9..e414a3e51 100644 --- a/src/overlays/actors/ovl_Bg_Spot15_Saku/z_bg_spot15_saku.c +++ b/src/overlays/actors/ovl_Bg_Spot15_Saku/z_bg_spot15_saku.c @@ -18,7 +18,7 @@ void func_808B4930(BgSpot15Saku* this, PlayState* play); void func_808B4978(BgSpot15Saku* this, PlayState* play); void func_808B4A04(BgSpot15Saku* this, PlayState* play); -ActorInit Bg_Spot15_Saku_InitVars = { +ActorProfile Bg_Spot15_Saku_Profile = { /**/ ACTOR_BG_SPOT15_SAKU, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c b/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c index 5a9726a82..d70558950 100644 --- a/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c +++ b/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c @@ -109,7 +109,7 @@ static s16 D_808B5EB0[][7] = { { 0x0014, 0x0050, 0x0032, 0x0000, 0x0096, 0x00C8, 0x0008 }, }; -ActorInit Bg_Spot16_Bombstone_InitVars = { +ActorProfile Bg_Spot16_Bombstone_Profile = { /**/ ACTOR_BG_SPOT16_BOMBSTONE, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Spot16_Doughnut/z_bg_spot16_doughnut.c b/src/overlays/actors/ovl_Bg_Spot16_Doughnut/z_bg_spot16_doughnut.c index 8f60a3398..4dceef1ed 100644 --- a/src/overlays/actors/ovl_Bg_Spot16_Doughnut/z_bg_spot16_doughnut.c +++ b/src/overlays/actors/ovl_Bg_Spot16_Doughnut/z_bg_spot16_doughnut.c @@ -18,7 +18,7 @@ void BgSpot16Doughnut_Draw(Actor* thisx, PlayState* play); void BgSpot16Doughnut_UpdateExpanding(Actor* thisx, PlayState* play); void BgSpot16Doughnut_DrawExpanding(Actor* thisx, PlayState* play); -ActorInit Bg_Spot16_Doughnut_InitVars = { +ActorProfile Bg_Spot16_Doughnut_Profile = { /**/ ACTOR_BG_SPOT16_DOUGHNUT, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Spot17_Bakudankabe/z_bg_spot17_bakudankabe.c b/src/overlays/actors/ovl_Bg_Spot17_Bakudankabe/z_bg_spot17_bakudankabe.c index fe22885a6..7c59bfe39 100644 --- a/src/overlays/actors/ovl_Bg_Spot17_Bakudankabe/z_bg_spot17_bakudankabe.c +++ b/src/overlays/actors/ovl_Bg_Spot17_Bakudankabe/z_bg_spot17_bakudankabe.c @@ -16,7 +16,7 @@ void BgSpot17Bakudankabe_Destroy(Actor* thisx, PlayState* play); void BgSpot17Bakudankabe_Update(Actor* thisx, PlayState* play); void BgSpot17Bakudankabe_Draw(Actor* thisx, PlayState* play); -ActorInit Bg_Spot17_Bakudankabe_InitVars = { +ActorProfile Bg_Spot17_Bakudankabe_Profile = { /**/ ACTOR_BG_SPOT17_BAKUDANKABE, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Spot17_Funen/z_bg_spot17_funen.c b/src/overlays/actors/ovl_Bg_Spot17_Funen/z_bg_spot17_funen.c index b8c93658c..75900983a 100644 --- a/src/overlays/actors/ovl_Bg_Spot17_Funen/z_bg_spot17_funen.c +++ b/src/overlays/actors/ovl_Bg_Spot17_Funen/z_bg_spot17_funen.c @@ -15,7 +15,7 @@ void BgSpot17Funen_Update(Actor* thisx, PlayState* play); void func_808B746C(Actor* thisx, PlayState* play); void func_808B7478(Actor* thisx, PlayState* play); -ActorInit Bg_Spot17_Funen_InitVars = { +ActorProfile Bg_Spot17_Funen_Profile = { /**/ ACTOR_BG_SPOT17_FUNEN, /**/ ACTORCAT_SWITCH, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c b/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c index 92d1f9671..8f9d890b6 100644 --- a/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c +++ b/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c @@ -22,7 +22,7 @@ void func_808B7D50(BgSpot18Basket* this, PlayState* play); void func_808B7FC0(BgSpot18Basket* this, PlayState* play); void func_808B81A0(BgSpot18Basket* this, PlayState* play); -ActorInit Bg_Spot18_Basket_InitVars = { +ActorProfile Bg_Spot18_Basket_Profile = { /**/ ACTOR_BG_SPOT18_BASKET, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Spot18_Futa/z_bg_spot18_futa.c b/src/overlays/actors/ovl_Bg_Spot18_Futa/z_bg_spot18_futa.c index 158856409..c321d5c55 100644 --- a/src/overlays/actors/ovl_Bg_Spot18_Futa/z_bg_spot18_futa.c +++ b/src/overlays/actors/ovl_Bg_Spot18_Futa/z_bg_spot18_futa.c @@ -14,7 +14,7 @@ void BgSpot18Futa_Destroy(Actor* thisx, PlayState* play); void BgSpot18Futa_Update(Actor* thisx, PlayState* play); void BgSpot18Futa_Draw(Actor* thisx, PlayState* play); -ActorInit Bg_Spot18_Futa_InitVars = { +ActorProfile Bg_Spot18_Futa_Profile = { /**/ ACTOR_BG_SPOT18_FUTA, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Spot18_Obj/z_bg_spot18_obj.c b/src/overlays/actors/ovl_Bg_Spot18_Obj/z_bg_spot18_obj.c index 4c284b9b1..6c65828e8 100644 --- a/src/overlays/actors/ovl_Bg_Spot18_Obj/z_bg_spot18_obj.c +++ b/src/overlays/actors/ovl_Bg_Spot18_Obj/z_bg_spot18_obj.c @@ -30,7 +30,7 @@ void func_808B8F08(BgSpot18Obj* this, PlayState* play); void func_808B9030(BgSpot18Obj* this); void func_808B9040(BgSpot18Obj* this, PlayState* play); -ActorInit Bg_Spot18_Obj_InitVars = { +ActorProfile Bg_Spot18_Obj_Profile = { /**/ ACTOR_BG_SPOT18_OBJ, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Spot18_Shutter/z_bg_spot18_shutter.c b/src/overlays/actors/ovl_Bg_Spot18_Shutter/z_bg_spot18_shutter.c index c4ce8ce19..eabb54154 100644 --- a/src/overlays/actors/ovl_Bg_Spot18_Shutter/z_bg_spot18_shutter.c +++ b/src/overlays/actors/ovl_Bg_Spot18_Shutter/z_bg_spot18_shutter.c @@ -20,7 +20,7 @@ void func_808B9618(BgSpot18Shutter* this, PlayState* play); void func_808B9698(BgSpot18Shutter* this, PlayState* play); void func_808B971C(BgSpot18Shutter* this, PlayState* play); -ActorInit Bg_Spot18_Shutter_InitVars = { +ActorProfile Bg_Spot18_Shutter_Profile = { /**/ ACTOR_BG_SPOT18_SHUTTER, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Sst_Floor/z_bg_sst_floor.c b/src/overlays/actors/ovl_Bg_Sst_Floor/z_bg_sst_floor.c index c9c30b37a..b0bdaa854 100644 --- a/src/overlays/actors/ovl_Bg_Sst_Floor/z_bg_sst_floor.c +++ b/src/overlays/actors/ovl_Bg_Sst_Floor/z_bg_sst_floor.c @@ -16,7 +16,7 @@ void BgSstFloor_Draw(Actor* thisx, PlayState* play); static s32 sUnkValues[] = { 0, 0, 0 }; // Unused, probably a zero vector -ActorInit Bg_Sst_Floor_InitVars = { +ActorProfile Bg_Sst_Floor_Profile = { /**/ ACTOR_BG_SST_FLOOR, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Toki_Hikari/z_bg_toki_hikari.c b/src/overlays/actors/ovl_Bg_Toki_Hikari/z_bg_toki_hikari.c index eafa885cb..a421d428d 100644 --- a/src/overlays/actors/ovl_Bg_Toki_Hikari/z_bg_toki_hikari.c +++ b/src/overlays/actors/ovl_Bg_Toki_Hikari/z_bg_toki_hikari.c @@ -21,7 +21,7 @@ void func_808BA22C(BgTokiHikari* this, PlayState* play); void func_808BA274(BgTokiHikari* this, PlayState* play); void func_808BA2CC(BgTokiHikari* this, PlayState* play); -ActorInit Bg_Toki_Hikari_InitVars = { +ActorProfile Bg_Toki_Hikari_Profile = { /**/ ACTOR_BG_TOKI_HIKARI, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c b/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c index 3f8968a84..2a689189c 100644 --- a/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c +++ b/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c @@ -22,7 +22,7 @@ extern CutsceneData D_808BB2F0[]; extern CutsceneData D_808BB7A0[]; extern CutsceneData D_808BBD90[]; -ActorInit Bg_Toki_Swd_InitVars = { +ActorProfile Bg_Toki_Swd_Profile = { /**/ ACTOR_BG_TOKI_SWD, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c b/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c index cdbbba7ef..e6a4f1cae 100644 --- a/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c +++ b/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c @@ -29,7 +29,7 @@ extern CutsceneData D_808BD2A0[]; extern CutsceneData D_808BD520[]; extern CutsceneData D_808BD790[]; -ActorInit Bg_Treemouth_InitVars = { +ActorProfile Bg_Treemouth_Profile = { /**/ ACTOR_BG_TREEMOUTH, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Umajump/z_bg_umajump.c b/src/overlays/actors/ovl_Bg_Umajump/z_bg_umajump.c index 4df2aa218..822a9ddd5 100644 --- a/src/overlays/actors/ovl_Bg_Umajump/z_bg_umajump.c +++ b/src/overlays/actors/ovl_Bg_Umajump/z_bg_umajump.c @@ -14,7 +14,7 @@ void BgUmaJump_Destroy(Actor* thisx, PlayState* play); void BgUmaJump_Update(Actor* thisx, PlayState* play); void BgUmaJump_Draw(Actor* thisx, PlayState* play); -ActorInit Bg_Umajump_InitVars = { +ActorProfile Bg_Umajump_Profile = { /**/ ACTOR_BG_UMAJUMP, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Vb_Sima/z_bg_vb_sima.c b/src/overlays/actors/ovl_Bg_Vb_Sima/z_bg_vb_sima.c index 638134365..fa566bb37 100644 --- a/src/overlays/actors/ovl_Bg_Vb_Sima/z_bg_vb_sima.c +++ b/src/overlays/actors/ovl_Bg_Vb_Sima/z_bg_vb_sima.c @@ -15,7 +15,7 @@ void BgVbSima_Destroy(Actor* thisx, PlayState* play); void BgVbSima_Update(Actor* thisx, PlayState* play); void BgVbSima_Draw(Actor* thisx, PlayState* play); -ActorInit Bg_Vb_Sima_InitVars = { +ActorProfile Bg_Vb_Sima_Profile = { /**/ ACTOR_BG_VB_SIMA, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Ydan_Hasi/z_bg_ydan_hasi.c b/src/overlays/actors/ovl_Bg_Ydan_Hasi/z_bg_ydan_hasi.c index 0b32afe5e..885abc5da 100644 --- a/src/overlays/actors/ovl_Bg_Ydan_Hasi/z_bg_ydan_hasi.c +++ b/src/overlays/actors/ovl_Bg_Ydan_Hasi/z_bg_ydan_hasi.c @@ -21,7 +21,7 @@ void BgYdanHasi_MoveWater(BgYdanHasi* this, PlayState* play); void BgYdanHasi_DecWaterTimer(BgYdanHasi* this, PlayState* play); void BgYdanHasi_UpdateThreeBlocks(BgYdanHasi* this, PlayState* play); -ActorInit Bg_Ydan_Hasi_InitVars = { +ActorProfile Bg_Ydan_Hasi_Profile = { /**/ ACTOR_BG_YDAN_HASI, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Ydan_Maruta/z_bg_ydan_maruta.c b/src/overlays/actors/ovl_Bg_Ydan_Maruta/z_bg_ydan_maruta.c index 9d141c297..142960fea 100644 --- a/src/overlays/actors/ovl_Bg_Ydan_Maruta/z_bg_ydan_maruta.c +++ b/src/overlays/actors/ovl_Bg_Ydan_Maruta/z_bg_ydan_maruta.c @@ -20,7 +20,7 @@ void func_808BF078(BgYdanMaruta* this, PlayState* play); void func_808BF108(BgYdanMaruta* this, PlayState* play); void func_808BF1EC(BgYdanMaruta* this, PlayState* play); -ActorInit Bg_Ydan_Maruta_InitVars = { +ActorProfile Bg_Ydan_Maruta_Profile = { /**/ ACTOR_BG_YDAN_MARUTA, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c b/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c index 1a5d2e366..6c3594de1 100644 --- a/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c +++ b/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c @@ -24,7 +24,7 @@ typedef enum { /* 1 */ WEB_WALL } BgYdanSpType; -ActorInit Bg_Ydan_Sp_InitVars = { +ActorProfile Bg_Ydan_Sp_Profile = { /**/ ACTOR_BG_YDAN_SP, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Bg_Zg/z_bg_zg.c b/src/overlays/actors/ovl_Bg_Zg/z_bg_zg.c index 18f026c33..06ff7dbff 100644 --- a/src/overlays/actors/ovl_Bg_Zg/z_bg_zg.c +++ b/src/overlays/actors/ovl_Bg_Zg/z_bg_zg.c @@ -35,7 +35,7 @@ static BgZgDrawFunc sDrawFuncs[] = { func_808C0EEC, }; -ActorInit Bg_Zg_InitVars = { +ActorProfile Bg_Zg_Profile = { /**/ ACTOR_BG_ZG, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c b/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c index a502fb6f2..dbdc0a370 100644 --- a/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c +++ b/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c @@ -33,7 +33,7 @@ f32 func_808C50A8(BossDodongo* this, PlayState* play); void BossDodongo_DrawEffects(PlayState* play); void BossDodongo_UpdateEffects(PlayState* play); -ActorInit Boss_Dodongo_InitVars = { +ActorProfile Boss_Dodongo_Profile = { /**/ ACTOR_EN_DODONGO, /**/ ACTORCAT_BOSS, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c b/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c index 6ba94dbed..2377494fb 100644 --- a/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c +++ b/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c @@ -44,7 +44,7 @@ void BossFd_Wait(BossFd* this, PlayState* play); void BossFd_UpdateEffects(BossFd* this, PlayState* play); void BossFd_DrawBody(PlayState* play, BossFd* this); -ActorInit Boss_Fd_InitVars = { +ActorProfile Boss_Fd_Profile = { /**/ ACTOR_BOSS_FD, /**/ ACTORCAT_BOSS, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c index 7a0895bdc..86e22e909 100644 --- a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c +++ b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c @@ -46,7 +46,7 @@ void BossFd2_Damaged(BossFd2* this, PlayState* play); void BossFd2_Death(BossFd2* this, PlayState* play); void BossFd2_Wait(BossFd2* this, PlayState* play); -ActorInit Boss_Fd2_InitVars = { +ActorProfile Boss_Fd2_Profile = { /**/ ACTOR_BOSS_FD2, /**/ ACTORCAT_BOSS, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c index 0d5b97361..cedf0d005 100644 --- a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c +++ b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c @@ -45,7 +45,7 @@ void BossGanon_UpdateEffects(PlayState* play); s32 BossGanon_CheckFallingPlatforms(BossGanon* this, PlayState* play, Vec3f* checkPos); -ActorInit Boss_Ganon_InitVars = { +ActorProfile Boss_Ganon_Profile = { /**/ ACTOR_BOSS_GANON, /**/ ACTORCAT_BOSS, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c index ced201f7b..8d812e072 100644 --- a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c +++ b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c @@ -32,7 +32,7 @@ void BossGanon2_DrawEffects(PlayState* play); void BossGanon2_GenShadowTexture(void* shadowTexture, BossGanon2* this, PlayState* play); void BossGanon2_DrawShadowTexture(void* shadowTexture, BossGanon2* this, PlayState* play); -ActorInit Boss_Ganon2_InitVars = { +ActorProfile Boss_Ganon2_Profile = { /**/ ACTOR_BOSS_GANON2, /**/ ACTORCAT_BOSS, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c b/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c index dae6502be..5424ee703 100644 --- a/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c +++ b/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c @@ -69,7 +69,7 @@ void BossGanondrof_Charge(BossGanondrof* this, PlayState* play); void BossGanondrof_Stunned(BossGanondrof* this, PlayState* play); void BossGanondrof_Death(BossGanondrof* this, PlayState* play); -ActorInit Boss_Ganondrof_InitVars = { +ActorProfile Boss_Ganondrof_Profile = { /**/ ACTOR_BOSS_GANONDROF, /**/ ACTORCAT_BOSS, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c b/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c index bdbf0fcf0..3e217b295 100644 --- a/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c +++ b/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c @@ -49,7 +49,7 @@ void BossGoma_WallClimb(BossGoma* this, PlayState* play); void BossGoma_CeilingMoveToCenter(BossGoma* this, PlayState* play); void BossGoma_SpawnChildGohma(BossGoma* this, PlayState* play, s16 i); -ActorInit Boss_Goma_InitVars = { +ActorProfile Boss_Goma_Profile = { /**/ ACTOR_BOSS_GOMA, /**/ ACTORCAT_BOSS, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c index 94021d0ee..7e9555ac5 100644 --- a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c +++ b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c @@ -118,7 +118,7 @@ typedef enum { /* 150 */ MO_DEATH_MO_CORE_BURST = 150 } BossMoCsState; -ActorInit Boss_Mo_InitVars = { +ActorProfile Boss_Mo_Profile = { /**/ ACTOR_BOSS_MO, /**/ ACTORCAT_BOSS, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c index dd2136039..2e83d357f 100644 --- a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c +++ b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c @@ -234,7 +234,7 @@ static Color_RGBA8 sBodyColor = { 255, 255, 255, 255 }; static Color_RGBA8 sStaticColor = { 0, 0, 0, 255 }; static s32 sHandState[] = { HAND_WAIT, HAND_WAIT }; -ActorInit Boss_Sst_InitVars = { +ActorProfile Boss_Sst_Profile = { /**/ ACTOR_BOSS_SST, /**/ ACTORCAT_BOSS, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c index 2f9c32a68..be2c9c21a 100644 --- a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c +++ b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c @@ -116,7 +116,7 @@ void BossTw_TwinrovaChargeBlast(BossTw* this, PlayState* play); void BossTw_TwinrovaSetupSpin(BossTw* this, PlayState* play); void BossTw_UpdateEffects(PlayState* play); -ActorInit Boss_Tw_InitVars = { +ActorProfile Boss_Tw_Profile = { /**/ ACTOR_BOSS_TW, /**/ ACTORCAT_BOSS, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c index 49a3b69f6..634d85500 100644 --- a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c +++ b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c @@ -188,7 +188,7 @@ void BossVa_SpawnBloodDroplets(PlayState* play, BossVaEffect* effect, Vec3f* pos void BossVa_Tumor(PlayState* play, BossVa* this, s32 count, s16 scale, f32 xzSpread, f32 ySpread, u8 mode, f32 range, u8 fixed); -ActorInit Boss_Va_InitVars = { +ActorProfile Boss_Va_Profile = { /**/ ACTOR_BOSS_VA, /**/ ACTORCAT_BOSS, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c b/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c index c2b949c27..fcd116ffe 100644 --- a/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c +++ b/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c @@ -37,7 +37,7 @@ void func_80968B70(Actor* thisx, PlayState* play); void func_80968FB0(Actor* thisx, PlayState* play); void func_809691BC(Demo6K* this, PlayState* play, s32 cueChannel); -ActorInit Demo_6K_InitVars = { +ActorProfile Demo_6K_Profile = { /**/ ACTOR_DEMO_6K, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Demo_Du/z_demo_du.c b/src/overlays/actors/ovl_Demo_Du/z_demo_du.c index 4fc2d7bb9..35c6b7550 100644 --- a/src/overlays/actors/ovl_Demo_Du/z_demo_du.c +++ b/src/overlays/actors/ovl_Demo_Du/z_demo_du.c @@ -1042,7 +1042,7 @@ void DemoDu_Draw(Actor* thisx, PlayState* play) { sDrawFuncs[this->drawIndex](thisx, play); } -ActorInit Demo_Du_InitVars = { +ActorProfile Demo_Du_Profile = { /**/ ACTOR_DEMO_DU, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Demo_Ec/z_demo_ec.c b/src/overlays/actors/ovl_Demo_Ec/z_demo_ec.c index c3d0e6327..27cac8856 100644 --- a/src/overlays/actors/ovl_Demo_Ec/z_demo_ec.c +++ b/src/overlays/actors/ovl_Demo_Ec/z_demo_ec.c @@ -1369,7 +1369,7 @@ void DemoEc_Draw(Actor* thisx, PlayState* play) { } } -ActorInit Demo_Ec_InitVars = { +ActorProfile Demo_Ec_Profile = { /**/ ACTOR_DEMO_EC, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c index e5db2e88a..e6ec54a62 100644 --- a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c +++ b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c @@ -62,7 +62,7 @@ void DemoEffect_SetStartPosFromCue(DemoEffect* this, PlayState* play, s32 cueCha void DemoEffect_SetPosRotFromCue(DemoEffect* this, PlayState* play, s32 cueChannel, s32 shouldUpdateFacing); void DemoEffect_MoveTowardCuePos(DemoEffect* this, PlayState* play, s32 cueChannel, f32 speed); -ActorInit Demo_Effect_InitVars = { +ActorProfile Demo_Effect_Profile = { /**/ ACTOR_DEMO_EFFECT, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Demo_Ext/z_demo_ext.c b/src/overlays/actors/ovl_Demo_Ext/z_demo_ext.c index b80f41997..384398cba 100644 --- a/src/overlays/actors/ovl_Demo_Ext/z_demo_ext.c +++ b/src/overlays/actors/ovl_Demo_Ext/z_demo_ext.c @@ -236,7 +236,7 @@ void DemoExt_Draw(Actor* thisx, PlayState* play) { } } -ActorInit Demo_Ext_InitVars = { +ActorProfile Demo_Ext_Profile = { /**/ ACTOR_DEMO_EXT, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.c b/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.c index ee75d038d..c18e18d8a 100644 --- a/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.c +++ b/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.c @@ -42,7 +42,7 @@ static DemoGeffDrawFunc sDrawFuncs[] = { func_80978344, }; -ActorInit Demo_Geff_InitVars = { +ActorProfile Demo_Geff_Profile = { /**/ ACTOR_DEMO_GEFF, /**/ ACTORCAT_BOSS, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c b/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c index e508f6cc8..9d4ba2fa3 100644 --- a/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c +++ b/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c @@ -1457,7 +1457,7 @@ void DemoGj_Draw(Actor* thisx, PlayState* play) { sDrawFuncs[this->drawConfig](this, play); } -ActorInit Demo_Gj_InitVars = { +ActorProfile Demo_Gj_Profile = { /**/ ACTOR_DEMO_GJ, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Demo_Go/z_demo_go.c b/src/overlays/actors/ovl_Demo_Go/z_demo_go.c index 432b8ce63..2a6ac15c5 100644 --- a/src/overlays/actors/ovl_Demo_Go/z_demo_go.c +++ b/src/overlays/actors/ovl_Demo_Go/z_demo_go.c @@ -37,7 +37,7 @@ static DemoGoDrawFunc D_8097D468[] = { func_8097D29C, }; -ActorInit Demo_Go_InitVars = { +ActorProfile Demo_Go_Profile = { /**/ ACTOR_DEMO_GO, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.c b/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.c index 6e3d23613..b9a1a9e11 100644 --- a/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.c +++ b/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.c @@ -1784,7 +1784,7 @@ void DemoGt_Draw(Actor* thisx, PlayState* play) { drawFunc(this, play); } -ActorInit Demo_Gt_InitVars = { +ActorProfile Demo_Gt_Profile = { /**/ ACTOR_DEMO_GT, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c b/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c index fcb7817e6..05ef28a1b 100644 --- a/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c +++ b/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c @@ -503,7 +503,7 @@ void DemoIk_Draw(Actor* thisx, PlayState* play) { sDrawFuncs[this->drawMode](this, play); } -ActorInit Demo_Ik_InitVars = { +ActorProfile Demo_Ik_Profile = { /**/ ACTOR_DEMO_IK, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Demo_Im/z_demo_im.c b/src/overlays/actors/ovl_Demo_Im/z_demo_im.c index 8d8548622..37226cc59 100644 --- a/src/overlays/actors/ovl_Demo_Im/z_demo_im.c +++ b/src/overlays/actors/ovl_Demo_Im/z_demo_im.c @@ -92,7 +92,7 @@ static DemoImDrawFunc sDrawFuncs[] = { DemoIm_DrawTranslucent, }; -ActorInit Demo_Im_InitVars = { +ActorProfile Demo_Im_Profile = { /**/ ACTOR_DEMO_IM, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c index f2f194175..2c5e6ccef 100644 --- a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c +++ b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c @@ -40,7 +40,7 @@ extern CutsceneData gChildWarpOutCS[]; extern CutsceneData gChildWarpInToTCS[]; extern CutsceneData gChildWarpOutToTCS[]; -ActorInit Demo_Kankyo_InitVars = { +ActorProfile Demo_Kankyo_Profile = { /**/ ACTOR_DEMO_KANKYO, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c b/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c index 9568574a4..a51816bee 100644 --- a/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c +++ b/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c @@ -21,7 +21,7 @@ void DemoKekkai_DrawTrialBarrier(Actor* thisx, PlayState* play2); void DemoKekkai_TowerBarrier(DemoKekkai* this, PlayState* play); -ActorInit Demo_Kekkai_InitVars = { +ActorProfile Demo_Kekkai_Profile = { /**/ ACTOR_DEMO_KEKKAI, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Demo_Sa/z_demo_sa.c b/src/overlays/actors/ovl_Demo_Sa/z_demo_sa.c index b930f0365..57edd774c 100644 --- a/src/overlays/actors/ovl_Demo_Sa/z_demo_sa.c +++ b/src/overlays/actors/ovl_Demo_Sa/z_demo_sa.c @@ -87,7 +87,7 @@ static DemoSaDrawFunc sDrawFuncs[] = { DemoSa_DrawXlu, }; -ActorInit Demo_Sa_InitVars = { +ActorProfile Demo_Sa_Profile = { /**/ ACTOR_DEMO_SA, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Demo_Shd/z_demo_shd.c b/src/overlays/actors/ovl_Demo_Shd/z_demo_shd.c index 19272d504..980bdd800 100644 --- a/src/overlays/actors/ovl_Demo_Shd/z_demo_shd.c +++ b/src/overlays/actors/ovl_Demo_Shd/z_demo_shd.c @@ -15,7 +15,7 @@ void DemoShd_Draw(Actor* thisx, PlayState* play); void func_80991298(DemoShd* this, PlayState* play); -ActorInit Demo_Shd_InitVars = { +ActorProfile Demo_Shd_Profile = { /**/ ACTOR_DEMO_SHD, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Demo_Tre_Lgt/z_demo_tre_lgt.c b/src/overlays/actors/ovl_Demo_Tre_Lgt/z_demo_tre_lgt.c index cd6966eb0..8966ec40b 100644 --- a/src/overlays/actors/ovl_Demo_Tre_Lgt/z_demo_tre_lgt.c +++ b/src/overlays/actors/ovl_Demo_Tre_Lgt/z_demo_tre_lgt.c @@ -26,7 +26,7 @@ static DemoTreLgtInfo sDemoTreLgtInfo[] = { { 1.0f, 136.0f, 220.0f, 50.0f }, }; -ActorInit Demo_Tre_Lgt_InitVars = { +ActorProfile Demo_Tre_Lgt_Profile = { /**/ ACTOR_DEMO_TRE_LGT, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Door_Ana/z_door_ana.c b/src/overlays/actors/ovl_Door_Ana/z_door_ana.c index 5487a20b4..948b1b8a2 100644 --- a/src/overlays/actors/ovl_Door_Ana/z_door_ana.c +++ b/src/overlays/actors/ovl_Door_Ana/z_door_ana.c @@ -18,7 +18,7 @@ void DoorAna_WaitClosed(DoorAna* this, PlayState* play); void DoorAna_WaitOpen(DoorAna* this, PlayState* play); void DoorAna_GrabPlayer(DoorAna* this, PlayState* play); -ActorInit Door_Ana_InitVars = { +ActorProfile Door_Ana_Profile = { /**/ ACTOR_DOOR_ANA, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Door_Gerudo/z_door_gerudo.c b/src/overlays/actors/ovl_Door_Gerudo/z_door_gerudo.c index 160a15959..2b2a16bb7 100644 --- a/src/overlays/actors/ovl_Door_Gerudo/z_door_gerudo.c +++ b/src/overlays/actors/ovl_Door_Gerudo/z_door_gerudo.c @@ -19,7 +19,7 @@ s32 func_80994750(DoorGerudo* this, PlayState* play); void func_8099496C(DoorGerudo* this, PlayState* play); void func_809949C8(DoorGerudo* this, PlayState* play); -ActorInit Door_Gerudo_InitVars = { +ActorProfile Door_Gerudo_Profile = { /**/ ACTOR_DOOR_GERUDO, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Door_Killer/z_door_killer.c b/src/overlays/actors/ovl_Door_Killer/z_door_killer.c index 26630ef77..ebacac702 100644 --- a/src/overlays/actors/ovl_Door_Killer/z_door_killer.c +++ b/src/overlays/actors/ovl_Door_Killer/z_door_killer.c @@ -29,7 +29,7 @@ void DoorKiller_WaitForObject(DoorKiller* this, PlayState* play); void DoorKiller_DrawDoor(Actor* thisx, PlayState* play); void DoorKiller_DrawRubble(Actor* thisx, PlayState* play); -ActorInit Door_Killer_InitVars = { +ActorProfile Door_Killer_Profile = { /**/ ACTOR_DOOR_KILLER, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c b/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c index 4926bdc7b..11baa1f38 100644 --- a/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c +++ b/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c @@ -48,7 +48,7 @@ void DoorShutter_GohmaBlockFall(DoorShutter* this, PlayState* play); void DoorShutter_GohmaBlockBounce(DoorShutter* this, PlayState* play); void DoorShutter_PhantomGanonBarsRaise(DoorShutter* this, PlayState* play); -ActorInit Door_Shutter_InitVars = { +ActorProfile Door_Shutter_Profile = { /**/ ACTOR_DOOR_SHUTTER, /**/ ACTORCAT_DOOR, /**/ FLAGS, @@ -979,14 +979,14 @@ void DoorShutter_Draw(Actor* thisx, PlayState* play) { //! @bug This actor is not fully initialized until the required object dependency is loaded. //! In most cases, the check for objectSlot to equal requiredObjectSlot prevents the actor //! from drawing until initialization is complete. However if the required object is the same as the - //! object dependency listed in init vars (gameplay_keep in this case), the check will pass even though + //! object dependency listed in the actor profile (gameplay_keep in this case), the check will pass even though //! initialization has not completed. When this happens, it will try to draw the display list of the //! first entry in `sGfxInfo`, which will likely crash the game. //! This only matters in very specific scenarios, when the door is unculled on the first possible frame //! after spawning. It will try to draw without having run update yet. //! //! The best way to fix this issue (and what was done in Majora's Mask) is to null out the draw function in - //! the init vars for the actor, and only set draw after initialization is complete. + //! the profile for the actor, and only set draw after initialization is complete. if (this->dyna.actor.objectSlot == this->requiredObjectSlot && (this->styleType == DOORSHUTTER_STYLE_PHANTOM_GANON || DoorShutter_ShouldDraw(this, play))) { diff --git a/src/overlays/actors/ovl_Door_Toki/z_door_toki.c b/src/overlays/actors/ovl_Door_Toki/z_door_toki.c index 726f0f5d1..e2e6ada56 100644 --- a/src/overlays/actors/ovl_Door_Toki/z_door_toki.c +++ b/src/overlays/actors/ovl_Door_Toki/z_door_toki.c @@ -13,7 +13,7 @@ void DoorToki_Init(Actor* thisx, PlayState* play); void DoorToki_Destroy(Actor* thisx, PlayState* play); void DoorToki_Update(Actor* thisx, PlayState* play); -ActorInit Door_Toki_InitVars = { +ActorProfile Door_Toki_Profile = { /**/ ACTOR_DOOR_TOKI, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c b/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c index dbddf1799..f6aa53916 100644 --- a/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c +++ b/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c @@ -32,7 +32,7 @@ void DoorWarp1_DoNothing(DoorWarp1* this, PlayState* play); void DoorWarp1_ChooseInitialAction(DoorWarp1* this, PlayState* play); void DoorWarp1_FloatPlayer(DoorWarp1* this, PlayState* play); -ActorInit Door_Warp1_InitVars = { +ActorProfile Door_Warp1_Profile = { /**/ ACTOR_DOOR_WARP1, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Efc_Erupc/z_efc_erupc.c b/src/overlays/actors/ovl_Efc_Erupc/z_efc_erupc.c index cd2dbef96..33e718a05 100644 --- a/src/overlays/actors/ovl_Efc_Erupc/z_efc_erupc.c +++ b/src/overlays/actors/ovl_Efc_Erupc/z_efc_erupc.c @@ -14,7 +14,7 @@ void EfcErupc_UpdateEffects(EfcErupc* this, PlayState* play); void EfcErupc_SpawnEffect(EfcErupcEffect* effect, Vec3f* pos, Vec3f* vel, Vec3f* accel, f32 scaleFactor); void EfcErupc_InitEffects(EfcErupcEffect* effect); -ActorInit Efc_Erupc_InitVars = { +ActorProfile Efc_Erupc_Profile = { /**/ ACTOR_EFC_ERUPC, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c b/src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c index 289fee6a8..de97ec844 100644 --- a/src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c +++ b/src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c @@ -22,7 +22,7 @@ void EffDust_UpdateFunc_8099DFC0(EffDust* this, PlayState* play); void EffDust_DrawFunc_8099E4F4(Actor* thisx, PlayState* play2); void EffDust_DrawFunc_8099E784(Actor* thisx, PlayState* play2); -ActorInit Eff_Dust_InitVars = { +ActorProfile Eff_Dust_Profile = { /**/ ACTOR_EFF_DUST, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c b/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c index d326f93b5..13057532a 100644 --- a/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c +++ b/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c @@ -20,7 +20,7 @@ void ElfMsg_Draw(Actor* thisx, PlayState* play); void ElfMsg_CallNaviCuboid(ElfMsg* this, PlayState* play); void ElfMsg_CallNaviCylinder(ElfMsg* this, PlayState* play); -ActorInit Elf_Msg_InitVars = { +ActorProfile Elf_Msg_Profile = { /**/ ACTOR_ELF_MSG, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c b/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c index 0e94e7392..9a7eb92f4 100644 --- a/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c +++ b/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c @@ -20,7 +20,7 @@ s32 ElfMsg2_GetMessageId(ElfMsg2* this); void ElfMsg2_WaitUntilActivated(ElfMsg2* this, PlayState* play); void ElfMsg2_WaitForTextRead(ElfMsg2* this, PlayState* play); -ActorInit Elf_Msg2_InitVars = { +ActorProfile Elf_Msg2_Profile = { /**/ ACTOR_ELF_MSG2, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Am/z_en_am.c b/src/overlays/actors/ovl_En_Am/z_en_am.c index bed0a0be6..8dfe3fbb2 100644 --- a/src/overlays/actors/ovl_En_Am/z_en_am.c +++ b/src/overlays/actors/ovl_En_Am/z_en_am.c @@ -39,7 +39,7 @@ typedef enum { /* 10 */ AM_BEHAVIOR_AGGRO = 10 } ArmosBehavior; -ActorInit En_Am_InitVars = { +ActorProfile En_Am_Profile = { /**/ ACTOR_EN_AM, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Ani/z_en_ani.c b/src/overlays/actors/ovl_En_Ani/z_en_ani.c index 1e9dbb933..aca464624 100644 --- a/src/overlays/actors/ovl_En_Ani/z_en_ani.c +++ b/src/overlays/actors/ovl_En_Ani/z_en_ani.c @@ -26,7 +26,7 @@ void func_809B0994(EnAni* this, PlayState* play); void func_809B0A28(EnAni* this, PlayState* play); void func_809B0A6C(EnAni* this, PlayState* play); -ActorInit En_Ani_InitVars = { +ActorProfile En_Ani_Profile = { /**/ ACTOR_EN_ANI, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c b/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c index a370e6b36..501c25182 100644 --- a/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c +++ b/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c @@ -25,7 +25,7 @@ void EnAnubice_SetupShootFireball(EnAnubice* this, PlayState* play); void EnAnubice_ShootFireball(EnAnubice* this, PlayState* play); void EnAnubice_Die(EnAnubice* this, PlayState* play); -ActorInit En_Anubice_InitVars = { +ActorProfile En_Anubice_Profile = { /**/ ACTOR_EN_ANUBICE, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.c b/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.c index 19851e173..480dc1580 100644 --- a/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.c +++ b/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.c @@ -19,7 +19,7 @@ void func_809B26EC(EnAnubiceFire* this, PlayState* play); void func_809B27D8(EnAnubiceFire* this, PlayState* play); void func_809B2B48(EnAnubiceFire* this, PlayState* play); -ActorInit En_Anubice_Fire_InitVars = { +ActorProfile En_Anubice_Fire_Profile = { /**/ ACTOR_EN_ANUBICE_FIRE, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Anubice_Tag/z_en_anubice_tag.c b/src/overlays/actors/ovl_En_Anubice_Tag/z_en_anubice_tag.c index d2e69c344..ae88d5929 100644 --- a/src/overlays/actors/ovl_En_Anubice_Tag/z_en_anubice_tag.c +++ b/src/overlays/actors/ovl_En_Anubice_Tag/z_en_anubice_tag.c @@ -17,7 +17,7 @@ void EnAnubiceTag_Draw(Actor* thisx, PlayState* play); void EnAnubiceTag_SpawnAnubis(EnAnubiceTag* this, PlayState* play); void EnAnubiceTag_ManageAnubis(EnAnubiceTag* this, PlayState* play); -ActorInit En_Anubice_Tag_InitVars = { +ActorProfile En_Anubice_Tag_Profile = { /**/ ACTOR_EN_ANUBICE_TAG, /**/ ACTORCAT_SWITCH, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Arow_Trap/z_en_arow_trap.c b/src/overlays/actors/ovl_En_Arow_Trap/z_en_arow_trap.c index 84bed0a06..60b212100 100644 --- a/src/overlays/actors/ovl_En_Arow_Trap/z_en_arow_trap.c +++ b/src/overlays/actors/ovl_En_Arow_Trap/z_en_arow_trap.c @@ -12,7 +12,7 @@ void EnArowTrap_Init(Actor* thisx, PlayState* play); void EnArowTrap_Destroy(Actor* thisx, PlayState* play); void EnArowTrap_Update(Actor* thisx, PlayState* play); -ActorInit En_Arow_Trap_InitVars = { +ActorProfile En_Arow_Trap_Profile = { /**/ ACTOR_EN_AROW_TRAP, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c b/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c index 75aa432f7..573b15d83 100644 --- a/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c +++ b/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c @@ -19,7 +19,7 @@ void EnArrow_Fly(EnArrow* this, PlayState* play); void func_809B45E0(EnArrow* this, PlayState* play); void func_809B4640(EnArrow* this, PlayState* play); -ActorInit En_Arrow_InitVars = { +ActorProfile En_Arrow_Profile = { /**/ ACTOR_EN_ARROW, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Attack_Niw/z_en_attack_niw.c b/src/overlays/actors/ovl_En_Attack_Niw/z_en_attack_niw.c index a045dd41b..3025df7f5 100644 --- a/src/overlays/actors/ovl_En_Attack_Niw/z_en_attack_niw.c +++ b/src/overlays/actors/ovl_En_Attack_Niw/z_en_attack_niw.c @@ -19,7 +19,7 @@ void func_809B5670(EnAttackNiw* this, PlayState* play); void func_809B5C18(EnAttackNiw* this, PlayState* play); void func_809B59B0(EnAttackNiw* this, PlayState* play); -ActorInit En_Attack_Niw_InitVars = { +ActorProfile En_Attack_Niw_Profile = { /**/ ACTOR_EN_ATTACK_NIW, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Ba/z_en_ba.c b/src/overlays/actors/ovl_En_Ba/z_en_ba.c index 133cffe45..0f927d635 100644 --- a/src/overlays/actors/ovl_En_Ba/z_en_ba.c +++ b/src/overlays/actors/ovl_En_Ba/z_en_ba.c @@ -23,7 +23,7 @@ void EnBa_RecoilFromDamage(EnBa* this, PlayState* play); void EnBa_Die(EnBa* this, PlayState* play); void EnBa_SetupSwingAtPlayer(EnBa* this); -ActorInit En_Ba_InitVars = { +ActorProfile En_Ba_Profile = { /**/ ACTOR_EN_BA, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Bb/z_en_bb.c b/src/overlays/actors/ovl_En_Bb/z_en_bb.c index 2c05b0997..a8131ea37 100644 --- a/src/overlays/actors/ovl_En_Bb/z_en_bb.c +++ b/src/overlays/actors/ovl_En_Bb/z_en_bb.c @@ -195,7 +195,7 @@ static DamageTable sDamageTableWhite = { /* Unknown 2 */ DMG_ENTRY(0, 0x0), }; -ActorInit En_Bb_InitVars = { +ActorProfile En_Bb_Profile = { /**/ ACTOR_EN_BB, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Bdfire/z_en_bdfire.c b/src/overlays/actors/ovl_En_Bdfire/z_en_bdfire.c index ba1920a32..7137c0421 100644 --- a/src/overlays/actors/ovl_En_Bdfire/z_en_bdfire.c +++ b/src/overlays/actors/ovl_En_Bdfire/z_en_bdfire.c @@ -18,7 +18,7 @@ void EnBdfire_DrawFire(EnBdfire* this, PlayState* play); void func_809BC2A4(EnBdfire* this, PlayState* play); void func_809BC598(EnBdfire* this, PlayState* play); -ActorInit En_Bdfire_InitVars = { +ActorProfile En_Bdfire_Profile = { /**/ 0, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c index 54248862c..9cb4514e4 100644 --- a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c +++ b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c @@ -30,7 +30,7 @@ static Color_RGBA8 sEffectPrimColor = { 255, 255, 255, 255 }; static Color_RGBA8 sEffectEnvColor = { 100, 255, 255, 255 }; static Vec3f sEffectPosAccel = { 0.0f, 0.0f, 0.0f }; -ActorInit En_Bigokuta_InitVars = { +ActorProfile En_Bigokuta_Profile = { /**/ ACTOR_EN_BIGOKUTA, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Bili/z_en_bili.c b/src/overlays/actors/ovl_En_Bili/z_en_bili.c index b7b4d5d76..312d6172c 100644 --- a/src/overlays/actors/ovl_En_Bili/z_en_bili.c +++ b/src/overlays/actors/ovl_En_Bili/z_en_bili.c @@ -28,7 +28,7 @@ void EnBili_Die(EnBili* this, PlayState* play); void EnBili_Stunned(EnBili* this, PlayState* play); void EnBili_Frozen(EnBili* this, PlayState* play); -ActorInit En_Bili_InitVars = { +ActorProfile En_Bili_Profile = { /**/ ACTOR_EN_BILI, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Bird/z_en_bird.c b/src/overlays/actors/ovl_En_Bird/z_en_bird.c index 77db59284..3229f5af8 100644 --- a/src/overlays/actors/ovl_En_Bird/z_en_bird.c +++ b/src/overlays/actors/ovl_En_Bird/z_en_bird.c @@ -19,7 +19,7 @@ void EnBird_Move(EnBird* this, PlayState* play); void EnBird_Idle(EnBird* this, PlayState* play); void EnBird_SetupIdle(EnBird* this, s16 params); -ActorInit En_Bird_InitVars = { +ActorProfile En_Bird_Profile = { /**/ ACTOR_EN_BIRD, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Blkobj/z_en_blkobj.c b/src/overlays/actors/ovl_En_Blkobj/z_en_blkobj.c index 59a2e76bf..d2c008fec 100644 --- a/src/overlays/actors/ovl_En_Blkobj/z_en_blkobj.c +++ b/src/overlays/actors/ovl_En_Blkobj/z_en_blkobj.c @@ -19,7 +19,7 @@ void EnBlkobj_SpawnDarkLink(EnBlkobj* this, PlayState* play); void EnBlkobj_DarkLinkFight(EnBlkobj* this, PlayState* play); void EnBlkobj_DoNothing(EnBlkobj* this, PlayState* play); -ActorInit En_Blkobj_InitVars = { +ActorProfile En_Blkobj_Profile = { /**/ ACTOR_EN_BLKOBJ, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Bom/z_en_bom.c b/src/overlays/actors/ovl_En_Bom/z_en_bom.c index 86871860e..62f532021 100644 --- a/src/overlays/actors/ovl_En_Bom/z_en_bom.c +++ b/src/overlays/actors/ovl_En_Bom/z_en_bom.c @@ -18,7 +18,7 @@ void EnBom_Draw(Actor* thisx, PlayState* play); void EnBom_Move(EnBom* this, PlayState* play); void EnBom_WaitForRelease(EnBom* this, PlayState* play); -ActorInit En_Bom_InitVars = { +ActorProfile En_Bom_Profile = { /**/ ACTOR_EN_BOM, /**/ ACTORCAT_EXPLOSIVE, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c b/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c index 3907b579f..0373fac49 100644 --- a/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c +++ b/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c @@ -34,7 +34,7 @@ void EnBomBowlMan_SetupChooseShowPrize(EnBomBowlMan* this, PlayState* play); void EnBomBowlMan_ChooseShowPrize(EnBomBowlMan* this, PlayState* play); void EnBomBowlMan_BeginPlayGame(EnBomBowlMan* this, PlayState* play); -ActorInit En_Bom_Bowl_Man_InitVars = { +ActorProfile En_Bom_Bowl_Man_Profile = { /**/ ACTOR_EN_BOM_BOWL_MAN, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Bom_Bowl_Pit/z_en_bom_bowl_pit.c b/src/overlays/actors/ovl_En_Bom_Bowl_Pit/z_en_bom_bowl_pit.c index a1fa88b63..3e8ff3945 100644 --- a/src/overlays/actors/ovl_En_Bom_Bowl_Pit/z_en_bom_bowl_pit.c +++ b/src/overlays/actors/ovl_En_Bom_Bowl_Pit/z_en_bom_bowl_pit.c @@ -20,7 +20,7 @@ void EnBomBowlPit_Reset(EnBomBowlPit* this, PlayState* play); static s32 sGetItemIds[] = { GI_BOMB_BAG_30, GI_HEART_PIECE, GI_BOMBCHUS_10, GI_BOMBS_1, GI_RUPEE_PURPLE }; -ActorInit En_Bom_Bowl_Pit_InitVars = { +ActorProfile En_Bom_Bowl_Pit_Profile = { /**/ ACTOR_EN_BOM_BOWL_PIT, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c b/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c index a0b95d220..7abad332b 100644 --- a/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c +++ b/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c @@ -15,7 +15,7 @@ void EnBomChu_WaitForRelease(EnBomChu* this, PlayState* play); void EnBomChu_Move(EnBomChu* this, PlayState* play); void EnBomChu_WaitForKill(EnBomChu* this, PlayState* play); -ActorInit En_Bom_Chu_InitVars = { +ActorProfile En_Bom_Chu_Profile = { /**/ ACTOR_EN_BOM_CHU, /**/ ACTORCAT_EXPLOSIVE, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c b/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c index 36860ca1c..093aefd71 100644 --- a/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c +++ b/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c @@ -21,7 +21,7 @@ void EnBombf_WaitForRelease(EnBombf* this, PlayState* play); void EnBombf_Explode(EnBombf* this, PlayState* play); void EnBombf_SetupGrowBomb(EnBombf* this, s16 params); -ActorInit En_Bombf_InitVars = { +ActorProfile En_Bombf_Profile = { /**/ ACTOR_EN_BOMBF, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Boom/z_en_boom.c b/src/overlays/actors/ovl_En_Boom/z_en_boom.c index e5697f91c..d64acac79 100644 --- a/src/overlays/actors/ovl_En_Boom/z_en_boom.c +++ b/src/overlays/actors/ovl_En_Boom/z_en_boom.c @@ -16,7 +16,7 @@ void EnBoom_Draw(Actor* thisx, PlayState* play); void EnBoom_Fly(EnBoom* this, PlayState* play); -ActorInit En_Boom_InitVars = { +ActorProfile En_Boom_Profile = { /**/ ACTOR_EN_BOOM, /**/ ACTORCAT_MISC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Box/z_en_box.c b/src/overlays/actors/ovl_En_Box/z_en_box.c index c8077659e..573762c08 100644 --- a/src/overlays/actors/ovl_En_Box/z_en_box.c +++ b/src/overlays/actors/ovl_En_Box/z_en_box.c @@ -50,7 +50,7 @@ void EnBox_AppearAnimation(EnBox* this, PlayState* play); void EnBox_WaitOpen(EnBox* this, PlayState* play); void EnBox_Open(EnBox* this, PlayState* play); -ActorInit En_Box_InitVars = { +ActorProfile En_Box_Profile = { /**/ ACTOR_EN_BOX, /**/ ACTORCAT_CHEST, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Brob/z_en_brob.c b/src/overlays/actors/ovl_En_Brob/z_en_brob.c index 58bd6d52e..32a7a3b36 100644 --- a/src/overlays/actors/ovl_En_Brob/z_en_brob.c +++ b/src/overlays/actors/ovl_En_Brob/z_en_brob.c @@ -22,7 +22,7 @@ void EnBrob_Stunned(EnBrob* this, PlayState* play); void EnBrob_MoveDown(EnBrob* this, PlayState* play); void EnBrob_Shock(EnBrob* this, PlayState* play); -ActorInit En_Brob_InitVars = { +ActorProfile En_Brob_Profile = { /**/ ACTOR_EN_BROB, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c b/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c index 902520173..faaaaa293 100644 --- a/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c +++ b/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c @@ -12,7 +12,7 @@ void EnBubble_Wait(EnBubble* this, PlayState* play); void EnBubble_Pop(EnBubble* this, PlayState* play); void EnBubble_Regrow(EnBubble* this, PlayState* play); -ActorInit En_Bubble_InitVars = { +ActorProfile En_Bubble_Profile = { /**/ ACTOR_EN_BUBBLE, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Butte/z_en_butte.c b/src/overlays/actors/ovl_En_Butte/z_en_butte.c index e91e59d47..e7a39c17c 100644 --- a/src/overlays/actors/ovl_En_Butte/z_en_butte.c +++ b/src/overlays/actors/ovl_En_Butte/z_en_butte.c @@ -49,7 +49,7 @@ static ColliderJntSphInit sColliderInit = { sJntSphElementsInit, }; -ActorInit En_Butte_InitVars = { +ActorProfile En_Butte_Profile = { /**/ ACTOR_EN_BUTTE, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Bw/z_en_bw.c b/src/overlays/actors/ovl_En_Bw/z_en_bw.c index 538055540..a93135cd4 100644 --- a/src/overlays/actors/ovl_En_Bw/z_en_bw.c +++ b/src/overlays/actors/ovl_En_Bw/z_en_bw.c @@ -33,7 +33,7 @@ void func_809D0268(EnBw* this, PlayState* play); void func_809D03CC(EnBw* this); void func_809D0424(EnBw* this, PlayState* play); -ActorInit En_Bw_InitVars = { +ActorProfile En_Bw_Profile = { /**/ ACTOR_EN_BW, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Bx/z_en_bx.c b/src/overlays/actors/ovl_En_Bx/z_en_bx.c index c0c9fb703..4ce0d62c9 100644 --- a/src/overlays/actors/ovl_En_Bx/z_en_bx.c +++ b/src/overlays/actors/ovl_En_Bx/z_en_bx.c @@ -14,7 +14,7 @@ void EnBx_Destroy(Actor* thisx, PlayState* play); void EnBx_Update(Actor* thisx, PlayState* play); void EnBx_Draw(Actor* thisx, PlayState* play); -ActorInit En_Bx_InitVars = { +ActorProfile En_Bx_Profile = { /**/ ACTOR_EN_BX, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Changer/z_en_changer.c b/src/overlays/actors/ovl_En_Changer/z_en_changer.c index d548a7a88..3f90555d7 100644 --- a/src/overlays/actors/ovl_En_Changer/z_en_changer.c +++ b/src/overlays/actors/ovl_En_Changer/z_en_changer.c @@ -24,7 +24,7 @@ void EnChanger_Wait(EnChanger* this, PlayState* play); void EnChanger_OpenChests(EnChanger* this, PlayState* play); void EnChanger_SetHeartPieceFlag(EnChanger* this, PlayState* play); -ActorInit En_Changer_InitVars = { +ActorProfile En_Changer_Profile = { /**/ ACTOR_EN_CHANGER, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c b/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c index a47186b62..e1450c0c8 100644 --- a/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c +++ b/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c @@ -18,7 +18,7 @@ void EnClearTag_CreateFlashEffect(PlayState* play, Vec3f* position, f32 scale, f void EnClearTag_CalculateFloorTangent(EnClearTag* this); -ActorInit En_Clear_Tag_InitVars = { +ActorProfile En_Clear_Tag_Profile = { /**/ ACTOR_EN_CLEAR_TAG, /**/ ACTORCAT_BOSS, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Cow/z_en_cow.c b/src/overlays/actors/ovl_En_Cow/z_en_cow.c index a9e667089..d47ec80ab 100644 --- a/src/overlays/actors/ovl_En_Cow/z_en_cow.c +++ b/src/overlays/actors/ovl_En_Cow/z_en_cow.c @@ -26,7 +26,7 @@ void EnCow_DrawTail(Actor* thisx, PlayState* play); void EnCow_UpdateTail(Actor* thisx, PlayState* play); void EnCow_IdleTail(EnCow* this, PlayState* play); -ActorInit En_Cow_InitVars = { +ActorProfile En_Cow_Profile = { /**/ ACTOR_EN_COW, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Crow/z_en_crow.c b/src/overlays/actors/ovl_En_Crow/z_en_crow.c index fc6f9474e..5cdcd6bd7 100644 --- a/src/overlays/actors/ovl_En_Crow/z_en_crow.c +++ b/src/overlays/actors/ovl_En_Crow/z_en_crow.c @@ -18,7 +18,7 @@ void EnCrow_Damaged(EnCrow* this, PlayState* play); static Vec3f sZeroVecAccel = { 0.0f, 0.0f, 0.0f }; -ActorInit En_Crow_InitVars = { +ActorProfile En_Crow_Profile = { /**/ ACTOR_EN_CROW, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Cs/z_en_cs.c b/src/overlays/actors/ovl_En_Cs/z_en_cs.c index d99e29120..89b3e859d 100644 --- a/src/overlays/actors/ovl_En_Cs/z_en_cs.c +++ b/src/overlays/actors/ovl_En_Cs/z_en_cs.c @@ -15,7 +15,7 @@ void EnCs_Wait(EnCs* this, PlayState* play); s32 EnCs_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* thisx); void EnCs_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx); -ActorInit En_Cs_InitVars = { +ActorProfile En_Cs_Profile = { /**/ ACTOR_EN_CS, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c b/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c index c99af3995..bd1856284 100644 --- a/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c +++ b/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c @@ -41,7 +41,7 @@ void EnDaiku_EscapeRun(EnDaiku* this, PlayState* play); s32 EnDaiku_OverrideLimbDraw(PlayState* play, s32 limb, Gfx** dList, Vec3f* pos, Vec3s* rot, void* thisx); void EnDaiku_PostLimbDraw(PlayState* play, s32 limb, Gfx** dList, Vec3s* rot, void* thisx); -ActorInit En_Daiku_InitVars = { +ActorProfile En_Daiku_Profile = { /**/ ACTOR_EN_DAIKU, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c b/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c index f5e31493c..4475138a2 100644 --- a/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c +++ b/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c @@ -24,7 +24,7 @@ void EnDaikuKakariko_Draw(Actor* thisx, PlayState* play); void EnDaikuKakariko_Wait(EnDaikuKakariko* this, PlayState* play); void EnDaikuKakariko_Run(EnDaikuKakariko* this, PlayState* play); -ActorInit En_Daiku_Kakariko_InitVars = { +ActorProfile En_Daiku_Kakariko_Profile = { /**/ ACTOR_EN_DAIKU_KAKARIKO, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c b/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c index 265e58cc0..3060562f3 100644 --- a/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c +++ b/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c @@ -29,7 +29,7 @@ void EnDekubaba_DeadStickDrop(EnDekubaba* this, PlayState* play); static Vec3f sZeroVec = { 0.0f, 0.0f, 0.0f }; -ActorInit En_Dekubaba_InitVars = { +ActorProfile En_Dekubaba_Profile = { /**/ ACTOR_EN_DEKUBABA, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c b/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c index 6e14eba6c..583c09705 100644 --- a/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c +++ b/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c @@ -30,7 +30,7 @@ void EnDekunuts_BeDamaged(EnDekunuts* this, PlayState* play); void EnDekunuts_BeStunned(EnDekunuts* this, PlayState* play); void EnDekunuts_Die(EnDekunuts* this, PlayState* play); -ActorInit En_Dekunuts_InitVars = { +ActorProfile En_Dekunuts_Profile = { /**/ ACTOR_EN_DEKUNUTS, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Dh/z_en_dh.c b/src/overlays/actors/ovl_En_Dh/z_en_dh.c index ccf7f4af2..8b973ff59 100644 --- a/src/overlays/actors/ovl_En_Dh/z_en_dh.c +++ b/src/overlays/actors/ovl_En_Dh/z_en_dh.c @@ -31,7 +31,7 @@ void EnDh_Burrow(EnDh* this, PlayState* play); void EnDh_Damage(EnDh* this, PlayState* play); void EnDh_Death(EnDh* this, PlayState* play); -ActorInit En_Dh_InitVars = { +ActorProfile En_Dh_Profile = { /**/ ACTOR_EN_DH, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Dha/z_en_dha.c b/src/overlays/actors/ovl_En_Dha/z_en_dha.c index 17ec0b85e..7a7eca1bc 100644 --- a/src/overlays/actors/ovl_En_Dha/z_en_dha.c +++ b/src/overlays/actors/ovl_En_Dha/z_en_dha.c @@ -23,7 +23,7 @@ void EnDha_SetupDeath(EnDha* this); void EnDha_Die(EnDha* this, PlayState* play); void EnDha_UpdateHealth(EnDha* this, PlayState* play); -ActorInit En_Dha_InitVars = { +ActorProfile En_Dha_Profile = { /**/ ACTOR_EN_DHA, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c b/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c index d0ba25207..da5e7dbf2 100644 --- a/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c +++ b/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c @@ -33,7 +33,7 @@ void func_809EEA00(EnDivingGame* this, PlayState* play); void func_809EEA90(EnDivingGame* this, PlayState* play); void func_809EEAF8(EnDivingGame* this, PlayState* play); -ActorInit En_Diving_Game_InitVars = { +ActorProfile En_Diving_Game_Profile = { /**/ ACTOR_EN_DIVING_GAME, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Dns/z_en_dns.c b/src/overlays/actors/ovl_En_Dns/z_en_dns.c index 9d1c37c47..853437b44 100644 --- a/src/overlays/actors/ovl_En_Dns/z_en_dns.c +++ b/src/overlays/actors/ovl_En_Dns/z_en_dns.c @@ -42,7 +42,7 @@ void EnDns_SetupNoSaleBurrow(EnDns* this, PlayState* play); void EnDns_Burrow(EnDns* this, PlayState* play); void EnDns_PostBurrow(EnDns* this, PlayState* play); -ActorInit En_Dns_InitVars = { +ActorProfile En_Dns_Profile = { /**/ ACTOR_EN_DNS, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.c b/src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.c index 9e0c0f6e4..f4f708959 100644 --- a/src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.c +++ b/src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.c @@ -26,7 +26,7 @@ void EnDntDemo_Judge(EnDntDemo* this, PlayState* play); void EnDntDemo_Results(EnDntDemo* this, PlayState* play); void EnDntDemo_Prize(EnDntDemo* this, PlayState* play); -ActorInit En_Dnt_Demo_InitVars = { +ActorProfile En_Dnt_Demo_Profile = { /**/ ACTOR_EN_DNT_DEMO, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c b/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c index cfa1f2a32..6cb7731fb 100644 --- a/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c +++ b/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c @@ -39,7 +39,7 @@ void EnDntJiji_GivePrize(EnDntJiji* this, PlayState* play); void EnDntJiji_Hide(EnDntJiji* this, PlayState* play); void EnDntJiji_Return(EnDntJiji* this, PlayState* play); -ActorInit En_Dnt_Jiji_InitVars = { +ActorProfile En_Dnt_Jiji_Profile = { /**/ ACTOR_EN_DNT_JIJI, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c b/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c index ff9f9cc71..eb215b32c 100644 --- a/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c +++ b/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c @@ -56,7 +56,7 @@ void EnDntNomal_StageAttackHide(EnDntNomal* this, PlayState* play); void EnDntNomal_StageAttack(EnDntNomal* this, PlayState* play); void EnDntNomal_StageReturn(EnDntNomal* this, PlayState* play); -ActorInit En_Dnt_Nomal_InitVars = { +ActorProfile En_Dnt_Nomal_Profile = { /**/ ACTOR_EN_DNT_NOMAL, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Dodojr/z_en_dodojr.c b/src/overlays/actors/ovl_En_Dodojr/z_en_dodojr.c index f5f594088..0a882fe0c 100644 --- a/src/overlays/actors/ovl_En_Dodojr/z_en_dodojr.c +++ b/src/overlays/actors/ovl_En_Dodojr/z_en_dodojr.c @@ -31,7 +31,7 @@ void EnDodojr_DeathSequence(EnDodojr* this, PlayState* play); void EnDodojr_WaitFreezeFrames(EnDodojr* this, PlayState* play); void EnDodojr_EatBomb(EnDodojr* this, PlayState* play); -ActorInit En_Dodojr_InitVars = { +ActorProfile En_Dodojr_Profile = { /**/ ACTOR_EN_DODOJR, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c b/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c index 6ae9701d5..8f30f194a 100644 --- a/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c +++ b/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c @@ -36,7 +36,7 @@ void EnDodongo_Stunned(EnDodongo* this, PlayState* play); void EnDodongo_Death(EnDodongo* this, PlayState* play); void EnDodongo_SweepTail(EnDodongo* this, PlayState* play); -ActorInit En_Dodongo_InitVars = { +ActorProfile En_Dodongo_Profile = { /**/ ACTOR_EN_DODONGO, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Dog/z_en_dog.c b/src/overlays/actors/ovl_En_Dog/z_en_dog.c index be4c04dd9..6735211ce 100644 --- a/src/overlays/actors/ovl_En_Dog/z_en_dog.c +++ b/src/overlays/actors/ovl_En_Dog/z_en_dog.c @@ -21,7 +21,7 @@ void EnDog_RunAway(EnDog* this, PlayState* play); void EnDog_FaceLink(EnDog* this, PlayState* play); void EnDog_Wait(EnDog* this, PlayState* play); -ActorInit En_Dog_InitVars = { +ActorProfile En_Dog_Profile = { /**/ ACTOR_EN_DOG, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Door/z_en_door.c b/src/overlays/actors/ovl_En_Door/z_en_door.c index 7a087c0b9..a445b1b0a 100644 --- a/src/overlays/actors/ovl_En_Door/z_en_door.c +++ b/src/overlays/actors/ovl_En_Door/z_en_door.c @@ -32,7 +32,7 @@ void EnDoor_AjarOpen(EnDoor* this, PlayState* play); void EnDoor_AjarClose(EnDoor* this, PlayState* play); void EnDoor_Open(EnDoor* this, PlayState* play); -ActorInit En_Door_InitVars = { +ActorProfile En_Door_Profile = { /**/ ACTOR_EN_DOOR, /**/ ACTORCAT_DOOR, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Ds/z_en_ds.c b/src/overlays/actors/ovl_En_Ds/z_en_ds.c index 3d8e0e57c..5cfabd683 100644 --- a/src/overlays/actors/ovl_En_Ds/z_en_ds.c +++ b/src/overlays/actors/ovl_En_Ds/z_en_ds.c @@ -16,7 +16,7 @@ void EnDs_Draw(Actor* thisx, PlayState* play); void EnDs_Wait(EnDs* this, PlayState* play); -ActorInit En_Ds_InitVars = { +ActorProfile En_Ds_Profile = { /**/ ACTOR_EN_DS, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Du/z_en_du.c b/src/overlays/actors/ovl_En_Du/z_en_du.c index 65f4b90bf..4181108b7 100644 --- a/src/overlays/actors/ovl_En_Du/z_en_du.c +++ b/src/overlays/actors/ovl_En_Du/z_en_du.c @@ -22,7 +22,7 @@ void func_809FEC70(EnDu* this, PlayState* play); void func_809FECE4(EnDu* this, PlayState* play); void func_809FEB08(EnDu* this, PlayState* play); -ActorInit En_Du_InitVars = { +ActorProfile En_Du_Profile = { /**/ ACTOR_EN_DU, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Dy_Extra/z_en_dy_extra.c b/src/overlays/actors/ovl_En_Dy_Extra/z_en_dy_extra.c index 0f9fb333e..591eb82c7 100644 --- a/src/overlays/actors/ovl_En_Dy_Extra/z_en_dy_extra.c +++ b/src/overlays/actors/ovl_En_Dy_Extra/z_en_dy_extra.c @@ -18,7 +18,7 @@ void EnDyExtra_Draw(Actor* thisx, PlayState* play); void EnDyExtra_WaitForTrigger(EnDyExtra* this, PlayState* play); void EnDyExtra_FallAndKill(EnDyExtra* this, PlayState* play); -ActorInit En_Dy_Extra_InitVars = { +ActorProfile En_Dy_Extra_Profile = { /**/ ACTOR_EN_DY_EXTRA, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Eg/z_en_eg.c b/src/overlays/actors/ovl_En_Eg/z_en_eg.c index 7b3940994..4bfba816a 100644 --- a/src/overlays/actors/ovl_En_Eg/z_en_eg.c +++ b/src/overlays/actors/ovl_En_Eg/z_en_eg.c @@ -22,7 +22,7 @@ static EnEgActionFunc sActionFuncs[] = { func_809FFDC8, }; -ActorInit En_Eg_InitVars = { +ActorProfile En_Eg_Profile = { /**/ ACTOR_EN_EG, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c b/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c index ebfa1c6e1..5c0921755 100644 --- a/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c +++ b/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c @@ -35,7 +35,7 @@ void EnEiyer_Die(EnEiyer* this, PlayState* play); void EnEiyer_Dead(EnEiyer* this, PlayState* play); void EnEiyer_Stunned(EnEiyer* this, PlayState* play); -ActorInit En_Eiyer_InitVars = { +ActorProfile En_Eiyer_Profile = { /**/ ACTOR_EN_EIYER, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Elf/z_en_elf.c b/src/overlays/actors/ovl_En_Elf/z_en_elf.c index 6de4a0c58..1beda793a 100644 --- a/src/overlays/actors/ovl_En_Elf/z_en_elf.c +++ b/src/overlays/actors/ovl_En_Elf/z_en_elf.c @@ -54,7 +54,7 @@ void func_80A0461C(EnElf* this, PlayState* play); void EnElf_SpawnSparkles(EnElf* this, PlayState* play, s32 sparkleLife); void EnElf_GetCuePos(Vec3f* dest, PlayState* play, s32 cueChannel); -ActorInit En_Elf_InitVars = { +ActorProfile En_Elf_Profile = { /**/ ACTOR_EN_ELF, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Encount1/z_en_encount1.c b/src/overlays/actors/ovl_En_Encount1/z_en_encount1.c index 45f993da0..fb342b615 100644 --- a/src/overlays/actors/ovl_En_Encount1/z_en_encount1.c +++ b/src/overlays/actors/ovl_En_Encount1/z_en_encount1.c @@ -14,7 +14,7 @@ void EnEncount1_SpawnStalchildOrWolfos(EnEncount1* this, PlayState* play); static s16 sLeeverAngles[] = { 0x0000, 0x2710, 0x7148, 0x8EB8, 0xD8F0 }; static f32 sLeeverDists[] = { 200.0f, 170.0f, 120.0f, 120.0f, 170.0f }; -ActorInit En_Encount1_InitVars = { +ActorProfile En_Encount1_Profile = { /**/ ACTOR_EN_ENCOUNT1, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c b/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c index cab41eec9..4ad684fa8 100644 --- a/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c +++ b/src/overlays/actors/ovl_En_Encount2/z_en_encount2.c @@ -23,7 +23,7 @@ void EnEncount2_SpawnEffect(EnEncount2* this, Vec3f* position, f32 scale); void EnEncount2_DrawEffects(Actor* thisx, PlayState* play); void EnEncount2_UpdateEffects(EnEncount2* this, PlayState* play); -ActorInit En_Encount2_InitVars = { +ActorProfile En_Encount2_Profile = { /**/ ACTOR_EN_ENCOUNT2, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.c b/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.c index 060f97435..bf6028d8e 100644 --- a/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.c +++ b/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.c @@ -32,7 +32,7 @@ void EnExItem_TargetPrizeApproach(EnExItem* this, PlayState* play); void EnExItem_TargetPrizeGive(EnExItem* this, PlayState* play); void EnExItem_TargetPrizeFinish(EnExItem* this, PlayState* play); -ActorInit En_Ex_Item_InitVars = { +ActorProfile En_Ex_Item_Profile = { /**/ ACTOR_EN_EX_ITEM, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.c b/src/overlays/actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.c index ea7d24224..86d7d65ee 100644 --- a/src/overlays/actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.c +++ b/src/overlays/actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.c @@ -28,7 +28,7 @@ static s16 sRupeeValues[] = { 1, 5, 20, 500, 50, }; -ActorInit En_Ex_Ruppy_InitVars = { +ActorProfile En_Ex_Ruppy_Profile = { /**/ ACTOR_EN_EX_RUPPY, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Fd/z_en_fd.c b/src/overlays/actors/ovl_En_Fd/z_en_fd.c index fe2eadd28..a74a3d594 100644 --- a/src/overlays/actors/ovl_En_Fd/z_en_fd.c +++ b/src/overlays/actors/ovl_En_Fd/z_en_fd.c @@ -30,7 +30,7 @@ void EnFd_DrawEffectsDots(EnFd* this, PlayState* play); void EnFd_DrawEffectsFlames(EnFd* this, PlayState* play); void EnFd_Land(EnFd* this, PlayState* play); -ActorInit En_Fd_InitVars = { +ActorProfile En_Fd_Profile = { /**/ ACTOR_EN_FD, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c b/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c index d15f8c58a..83da31b51 100644 --- a/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c +++ b/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c @@ -12,7 +12,7 @@ void func_80A0E70C(EnFdFire* this, PlayState* play); void EnFdFire_DanceTowardsPlayer(EnFdFire* this, PlayState* play); void EnFdFire_WaitToDie(EnFdFire* this, PlayState* play); -ActorInit En_Fd_Fire_InitVars = { +ActorProfile En_Fd_Fire_Profile = { /**/ ACTOR_EN_FD_FIRE, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c b/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c index 8d0a8f2a6..55fc46789 100644 --- a/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c +++ b/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c @@ -44,7 +44,7 @@ void EnFhgFire_SpearLight(EnFhgFire* this, PlayState* play); void EnFhgFire_EnergyBall(EnFhgFire* this, PlayState* play); void EnFhgFire_PhantomWarp(EnFhgFire* this, PlayState* play); -ActorInit En_Fhg_Fire_InitVars = { +ActorProfile En_Fhg_Fire_Profile = { /**/ 0, /**/ ACTORCAT_BOSS, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.c b/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.c index 32d28a007..229e0a917 100644 --- a/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.c +++ b/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.c @@ -15,7 +15,7 @@ void FireRock_WaitOnFloor(EnFireRock* this, PlayState* play); void EnFireRock_Fall(EnFireRock* this, PlayState* play); void EnFireRock_SpawnMoreBrokenPieces(EnFireRock* this, PlayState* play); -ActorInit En_Fire_Rock_InitVars = { +ActorProfile En_Fire_Rock_Profile = { /**/ ACTOR_EN_FIRE_ROCK, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c b/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c index 760140aed..344943544 100644 --- a/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c +++ b/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c @@ -34,7 +34,7 @@ typedef enum { /* 2 */ KEESE_AURA_ICE } KeeseAuraType; -ActorInit En_Firefly_InitVars = { +ActorProfile En_Firefly_Profile = { /**/ ACTOR_EN_FIREFLY, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Fish/z_en_fish.c b/src/overlays/actors/ovl_En_Fish/z_en_fish.c index e008be1d2..757eddd05 100644 --- a/src/overlays/actors/ovl_En_Fish/z_en_fish.c +++ b/src/overlays/actors/ovl_En_Fish/z_en_fish.c @@ -64,7 +64,7 @@ static ColliderJntSphInit sJntSphInit = { sJntSphElementsInit, }; -ActorInit En_Fish_InitVars = { +ActorProfile En_Fish_Profile = { /**/ ACTOR_EN_FISH, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c b/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c index 41dd2cfdc..6da11b6f5 100644 --- a/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c +++ b/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c @@ -44,7 +44,7 @@ void EnFloormas_Stand(EnFloormas* this, PlayState* play); void EnFloormas_BigDecideAction(EnFloormas* this, PlayState* play); void EnFloormas_Charge(EnFloormas* this, PlayState* play); -ActorInit En_Floormas_InitVars = { +ActorProfile En_Floormas_Profile = { /**/ ACTOR_EN_FLOORMAS, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Fr/z_en_fr.c b/src/overlays/actors/ovl_En_Fr/z_en_fr.c index 955cc02db..773731261 100644 --- a/src/overlays/actors/ovl_En_Fr/z_en_fr.c +++ b/src/overlays/actors/ovl_En_Fr/z_en_fr.c @@ -133,7 +133,7 @@ static s32 sSongToFrog[] = { FROG_PURPLE, FROG_WHITE, FROG_YELLOW, FROG_BLUE, FROG_RED, }; -ActorInit En_Fr_InitVars = { +ActorProfile En_Fr_Profile = { /**/ ACTOR_EN_FR, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Fu/z_en_fu.c b/src/overlays/actors/ovl_En_Fu/z_en_fu.c index 9f1008485..40457c98d 100644 --- a/src/overlays/actors/ovl_En_Fu/z_en_fu.c +++ b/src/overlays/actors/ovl_En_Fu/z_en_fu.c @@ -28,7 +28,7 @@ void func_80A1DBA0(EnFu* this, PlayState* play); void func_80A1DBD4(EnFu* this, PlayState* play); void func_80A1DB60(EnFu* this, PlayState* play); -ActorInit En_Fu_InitVars = { +ActorProfile En_Fu_Profile = { /**/ ACTOR_EN_FU, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Fw/z_en_fw.c b/src/overlays/actors/ovl_En_Fw/z_en_fw.c index 4170af674..5f8768ff1 100644 --- a/src/overlays/actors/ovl_En_Fw/z_en_fw.c +++ b/src/overlays/actors/ovl_En_Fw/z_en_fw.c @@ -24,7 +24,7 @@ void EnFw_Run(EnFw* this, PlayState* play); void EnFw_JumpToParentInitPos(EnFw* this, PlayState* play); void EnFw_TurnToParentInitPos(EnFw* this, PlayState* play); -ActorInit En_Fw_InitVars = { +ActorProfile En_Fw_Profile = { /**/ ACTOR_EN_FW, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Fz/z_en_fz.c b/src/overlays/actors/ovl_En_Fz/z_en_fz.c index 3e4b6ec49..aef519677 100644 --- a/src/overlays/actors/ovl_En_Fz/z_en_fz.c +++ b/src/overlays/actors/ovl_En_Fz/z_en_fz.c @@ -45,7 +45,7 @@ void EnFz_SpawnIceSmokeFreeze(EnFz* this, Vec3f* pos, Vec3f* velocity, Vec3f* ac void EnFz_UpdateIceSmoke(EnFz* this, PlayState* play); void EnFz_DrawEffects(EnFz* this, PlayState* play); -ActorInit En_Fz_InitVars = { +ActorProfile En_Fz_Profile = { /**/ ACTOR_EN_FZ, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c b/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c index dd5ad3b49..9ebf1c401 100644 --- a/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c +++ b/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c @@ -64,7 +64,7 @@ static s16 sRupeeTypes[] = { ITEM00_RUPEE_GREEN, ITEM00_RUPEE_BLUE, ITEM00_RUPEE_RED, ITEM00_RUPEE_ORANGE, ITEM00_RUPEE_PURPLE, }; -ActorInit En_G_Switch_InitVars = { +ActorProfile En_G_Switch_Profile = { /**/ ACTOR_EN_G_SWITCH, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c b/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c index 2ccb862d6..b76e89ece 100644 --- a/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c +++ b/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c @@ -14,7 +14,7 @@ void EnGanonMant_Destroy(Actor* thisx, PlayState* play); void EnGanonMant_Update(Actor* thisx, PlayState* play); void EnGanonMant_Draw(Actor* thisx, PlayState* play); -ActorInit En_Ganon_Mant_InitVars = { +ActorProfile En_Ganon_Mant_Profile = { /**/ ACTOR_EN_GANON_MANT, /**/ ACTORCAT_BOSS, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Ganon_Organ/z_en_ganon_organ.c b/src/overlays/actors/ovl_En_Ganon_Organ/z_en_ganon_organ.c index a4c93dea9..8d81044e8 100644 --- a/src/overlays/actors/ovl_En_Ganon_Organ/z_en_ganon_organ.c +++ b/src/overlays/actors/ovl_En_Ganon_Organ/z_en_ganon_organ.c @@ -14,7 +14,7 @@ void EnGanonOrgan_Destroy(Actor* thisx, PlayState* play); void EnGanonOrgan_Update(Actor* thisx, PlayState* play); void EnGanonOrgan_Draw(Actor* thisx, PlayState* play); -ActorInit En_Ganon_Organ_InitVars = { +ActorProfile En_Ganon_Organ_Profile = { /**/ ACTOR_EN_GANON_ORGAN, /**/ ACTORCAT_BOSS, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Gb/z_en_gb.c b/src/overlays/actors/ovl_En_Gb/z_en_gb.c index ad08fbdac..9a39c0982 100644 --- a/src/overlays/actors/ovl_En_Gb/z_en_gb.c +++ b/src/overlays/actors/ovl_En_Gb/z_en_gb.c @@ -26,7 +26,7 @@ void func_80A2FC0C(EnGb* this, PlayState* play); void EnGb_DrawCagedSouls(EnGb* this, PlayState* play); void EnGb_UpdateCagedSouls(EnGb* this, PlayState* play); -ActorInit En_Gb_InitVars = { +ActorProfile En_Gb_Profile = { /**/ ACTOR_EN_GB, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c b/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c index 405cfc066..de56141d4 100644 --- a/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c +++ b/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c @@ -39,7 +39,7 @@ void EnGe1_Wait_Archery(EnGe1* this, PlayState* play); void EnGe1_CueUpAnimation(EnGe1* this); void EnGe1_StopFidget(EnGe1* this); -ActorInit En_Ge1_InitVars = { +ActorProfile En_Ge1_Profile = { /**/ ACTOR_EN_GE1, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c b/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c index 40b2b9df5..3b5b8bea7 100644 --- a/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c +++ b/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c @@ -55,7 +55,7 @@ void EnGe2_UpdateFriendly(Actor* thisx, PlayState* play); void EnGe2_UpdateAfterTalk(Actor* thisx, PlayState* play); void EnGe2_UpdateStunned(Actor* thisx, PlayState* play2); -ActorInit En_Ge2_InitVars = { +ActorProfile En_Ge2_Profile = { /**/ ACTOR_EN_GE2, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c b/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c index df33dc59e..184e2a836 100644 --- a/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c +++ b/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c @@ -18,7 +18,7 @@ void EnGe3_WaitLookAtPlayer(EnGe3* this, PlayState* play); void EnGe3_ForceTalk(EnGe3* this, PlayState* play); void EnGe3_UpdateWhenNotTalking(Actor* thisx, PlayState* play); -ActorInit En_Ge3_InitVars = { +ActorProfile En_Ge3_Profile = { /**/ ACTOR_EN_GE3, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c b/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c index 8ef486c42..575623fdd 100644 --- a/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c +++ b/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c @@ -69,7 +69,7 @@ void EnGeldB_Block(EnGeldB* this, PlayState* play); void EnGeldB_Sidestep(EnGeldB* this, PlayState* play); void EnGeldB_Defeated(EnGeldB* this, PlayState* play); -ActorInit En_GeldB_InitVars = { +ActorProfile En_GeldB_Profile = { /**/ ACTOR_EN_GELDB, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_GirlA/z_en_girla.c b/src/overlays/actors/ovl_En_GirlA/z_en_girla.c index 13a545dc1..7abec67e2 100644 --- a/src/overlays/actors/ovl_En_GirlA/z_en_girla.c +++ b/src/overlays/actors/ovl_En_GirlA/z_en_girla.c @@ -67,7 +67,7 @@ void EnGirlA_BuyEvent_ObtainBombchuPack(PlayState* play, EnGirlA* this); void EnGirlA_BuyEvent_GoronTunic(PlayState* play, EnGirlA* this); void EnGirlA_BuyEvent_ZoraTunic(PlayState* play, EnGirlA* this); -ActorInit En_GirlA_InitVars = { +ActorProfile En_GirlA_Profile = { /**/ ACTOR_EN_GIRLA, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Gm/z_en_gm.c b/src/overlays/actors/ovl_En_Gm/z_en_gm.c index 46f0a2ec0..3e80b4e03 100644 --- a/src/overlays/actors/ovl_En_Gm/z_en_gm.c +++ b/src/overlays/actors/ovl_En_Gm/z_en_gm.c @@ -26,7 +26,7 @@ void EnGm_ProcessChoiceIndex(EnGm* this, PlayState* play); void func_80A3DF00(EnGm* this, PlayState* play); void func_80A3DF60(EnGm* this, PlayState* play); -ActorInit En_Gm_InitVars = { +ActorProfile En_Gm_Profile = { /**/ ACTOR_EN_GM, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Go/z_en_go.c b/src/overlays/actors/ovl_En_Go/z_en_go.c index f648a2f91..ec34f6db0 100644 --- a/src/overlays/actors/ovl_En_Go/z_en_go.c +++ b/src/overlays/actors/ovl_En_Go/z_en_go.c @@ -34,7 +34,7 @@ void EnGo_SpawnEffectDust(EnGo* this, Vec3f* pos, Vec3f* velocity, Vec3f* accel, void EnGo_UpdateEffects(EnGo* this); void EnGo_DrawEffects(EnGo* this, PlayState* play); -ActorInit En_Go_InitVars = { +ActorProfile En_Go_Profile = { /**/ ACTOR_EN_GO, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Go2/z_en_go2.c b/src/overlays/actors/ovl_En_Go2/z_en_go2.c index b5b699676..2f1f4f312 100644 --- a/src/overlays/actors/ovl_En_Go2/z_en_go2.c +++ b/src/overlays/actors/ovl_En_Go2/z_en_go2.c @@ -94,7 +94,7 @@ static ColliderCylinderInit sCylinderInit = { static CollisionCheckInfoInit2 sColChkInfoInit = { 0, 0, 0, 0, MASS_IMMOVABLE }; -ActorInit En_Go2_InitVars = { +ActorProfile En_Go2_Profile = { /**/ ACTOR_EN_GO2, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Goma/z_en_goma.c b/src/overlays/actors/ovl_En_Goma/z_en_goma.c index 1734511c5..50dbe53d5 100644 --- a/src/overlays/actors/ovl_En_Goma/z_en_goma.c +++ b/src/overlays/actors/ovl_En_Goma/z_en_goma.c @@ -42,7 +42,7 @@ void EnGoma_SetupLand(EnGoma* this); void EnGoma_SetupJump(EnGoma* this); void EnGoma_SetupStunned(EnGoma* this, PlayState* play); -ActorInit En_Goma_InitVars = { +ActorProfile En_Goma_Profile = { /**/ ACTOR_BOSS_GOMA, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c b/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c index 23df32616..3e9793f98 100644 --- a/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c +++ b/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c @@ -43,7 +43,7 @@ void EnGoroiwa_MoveUp(EnGoroiwa* this, PlayState* play); void EnGoroiwa_SetupMoveDown(EnGoroiwa* this); void EnGoroiwa_MoveDown(EnGoroiwa* this, PlayState* play); -ActorInit En_Goroiwa_InitVars = { +ActorProfile En_Goroiwa_Profile = { /**/ ACTOR_EN_GOROIWA, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Gs/z_en_gs.c b/src/overlays/actors/ovl_En_Gs/z_en_gs.c index d367633af..6a7da4f55 100644 --- a/src/overlays/actors/ovl_En_Gs/z_en_gs.c +++ b/src/overlays/actors/ovl_En_Gs/z_en_gs.c @@ -21,7 +21,7 @@ void func_80A4F700(EnGs* this, PlayState* play); void func_80A4F77C(EnGs* this); -ActorInit En_Gs_InitVars = { +ActorProfile En_Gs_Profile = { /**/ ACTOR_EN_GS, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Guest/z_en_guest.c b/src/overlays/actors/ovl_En_Guest/z_en_guest.c index a122de078..df604c728 100644 --- a/src/overlays/actors/ovl_En_Guest/z_en_guest.c +++ b/src/overlays/actors/ovl_En_Guest/z_en_guest.c @@ -20,7 +20,7 @@ void func_80A50518(EnGuest* this, PlayState* play); void func_80A5057C(EnGuest* this, PlayState* play); void func_80A505CC(Actor* thisx, PlayState* play); -ActorInit En_Guest_InitVars = { +ActorProfile En_Guest_Profile = { /**/ ACTOR_EN_GUEST, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Hata/z_en_hata.c b/src/overlays/actors/ovl_En_Hata/z_en_hata.c index dcf9aca99..0151dc787 100644 --- a/src/overlays/actors/ovl_En_Hata/z_en_hata.c +++ b/src/overlays/actors/ovl_En_Hata/z_en_hata.c @@ -14,7 +14,7 @@ void EnHata_Destroy(Actor* thisx, PlayState* play); void EnHata_Update(Actor* thisx, PlayState* play2); void EnHata_Draw(Actor* thisx, PlayState* play); -ActorInit En_Hata_InitVars = { +ActorProfile En_Hata_Profile = { /**/ ACTOR_EN_HATA, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Heishi1/z_en_heishi1.c b/src/overlays/actors/ovl_En_Heishi1/z_en_heishi1.c index 8fd6c9d6f..0668b8395 100644 --- a/src/overlays/actors/ovl_En_Heishi1/z_en_heishi1.c +++ b/src/overlays/actors/ovl_En_Heishi1/z_en_heishi1.c @@ -31,7 +31,7 @@ void EnHeishi1_WaitNight(EnHeishi1* this, PlayState* play); static s32 sPlayerIsCaught = false; -ActorInit En_Heishi1_InitVars = { +ActorProfile En_Heishi1_Profile = { /**/ 0, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c b/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c index 762fa5d6c..f8fad950d 100644 --- a/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c +++ b/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c @@ -50,7 +50,7 @@ void func_80A546DC(EnHeishi2* this, PlayState* play); void func_80A541FC(EnHeishi2* this, PlayState* play); void func_80A53DF8(EnHeishi2* this, PlayState* play); -ActorInit En_Heishi2_InitVars = { +ActorProfile En_Heishi2_Profile = { /**/ ACTOR_EN_HEISHI2, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c b/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c index c38744ea2..072d5d71a 100644 --- a/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c +++ b/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c @@ -25,7 +25,7 @@ void func_80A55BD4(EnHeishi3* this, PlayState* play); static s16 sPlayerCaught = 0; -ActorInit En_Heishi3_InitVars = { +ActorProfile En_Heishi3_Profile = { /**/ ACTOR_EN_HEISHI3, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c b/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c index c02946ac2..5298317f0 100644 --- a/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c +++ b/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c @@ -21,7 +21,7 @@ void func_80A56994(EnHeishi4* this, PlayState* play); void func_80A56A50(EnHeishi4* this, PlayState* play); void func_80A56ACC(EnHeishi4* this, PlayState* play); -ActorInit En_Heishi4_InitVars = { +ActorProfile En_Heishi4_Profile = { /**/ ACTOR_EN_HEISHI4, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c b/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c index 08468d132..8a9400eeb 100644 --- a/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c +++ b/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c @@ -27,7 +27,7 @@ void EnHintnuts_Talk(EnHintnuts* this, PlayState* play); void EnHintnuts_Leave(EnHintnuts* this, PlayState* play); void EnHintnuts_Freeze(EnHintnuts* this, PlayState* play); -ActorInit En_Hintnuts_InitVars = { +ActorProfile En_Hintnuts_Profile = { /**/ ACTOR_EN_HINTNUTS, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Holl/z_en_holl.c b/src/overlays/actors/ovl_En_Holl/z_en_holl.c index 921156ee5..a150b178c 100644 --- a/src/overlays/actors/ovl_En_Holl/z_en_holl.c +++ b/src/overlays/actors/ovl_En_Holl/z_en_holl.c @@ -76,7 +76,7 @@ void EnHoll_VerticalBgCover(EnHoll* this, PlayState* play); void EnHoll_VerticalInvisible(EnHoll* this, PlayState* play); void EnHoll_HorizontalBgCoverSwitchFlag(EnHoll* this, PlayState* play); -ActorInit En_Holl_InitVars = { +ActorProfile En_Holl_Profile = { /**/ ACTOR_EN_HOLL, /**/ ACTORCAT_DOOR, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c b/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c index 8e3a20b26..d9a689a88 100644 --- a/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c +++ b/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c @@ -48,7 +48,7 @@ void EnHonotrap_FlameChase(EnHonotrap* this, PlayState* play); void EnHonotrap_SetupFlameVanish(EnHonotrap* this); void EnHonotrap_FlameVanish(EnHonotrap* this, PlayState* play); -ActorInit En_Honotrap_InitVars = { +ActorProfile En_Honotrap_Profile = { /**/ ACTOR_EN_HONOTRAP, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Horse/z_en_horse.c b/src/overlays/actors/ovl_En_Horse/z_en_horse.c index 43937fd02..37df3828a 100644 --- a/src/overlays/actors/ovl_En_Horse/z_en_horse.c +++ b/src/overlays/actors/ovl_En_Horse/z_en_horse.c @@ -66,7 +66,7 @@ static f32 sPlaybackSpeeds[] = { 2.0f / 3.0f, 2.0f / 3.0f, 1.0f, 1.0f, 1.0f, 1.0 static SkeletonHeader* sSkeletonHeaders[] = { &gEponaSkel, &gHorseIngoSkel }; -ActorInit En_Horse_InitVars = { +ActorProfile En_Horse_Profile = { /**/ ACTOR_EN_HORSE, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Horse_Game_Check/z_en_horse_game_check.c b/src/overlays/actors/ovl_En_Horse_Game_Check/z_en_horse_game_check.c index 53c09dc47..155227b1f 100644 --- a/src/overlays/actors/ovl_En_Horse_Game_Check/z_en_horse_game_check.c +++ b/src/overlays/actors/ovl_En_Horse_Game_Check/z_en_horse_game_check.c @@ -48,7 +48,7 @@ void EnHorseGameCheck_Destroy(Actor* thisx, PlayState* play); void EnHorseGameCheck_Update(Actor* thisx, PlayState* play); void EnHorseGameCheck_Draw(Actor* thisx, PlayState* play); -ActorInit En_Horse_Game_Check_InitVars = { +ActorProfile En_Horse_Game_Check_Profile = { /**/ ACTOR_EN_HORSE_GAME_CHECK, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Horse_Ganon/z_en_horse_ganon.c b/src/overlays/actors/ovl_En_Horse_Ganon/z_en_horse_ganon.c index 0b324c308..49c366142 100644 --- a/src/overlays/actors/ovl_En_Horse_Ganon/z_en_horse_ganon.c +++ b/src/overlays/actors/ovl_En_Horse_Ganon/z_en_horse_ganon.c @@ -23,7 +23,7 @@ void func_80A68AC4(EnHorseGanon* this); void func_80A68AF0(EnHorseGanon* this, PlayState* play); void func_80A68DB0(EnHorseGanon* this, PlayState* play); -ActorInit En_Horse_Ganon_InitVars = { +ActorProfile En_Horse_Ganon_Profile = { /**/ ACTOR_EN_HORSE_GANON, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.c b/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.c index 698a02630..ff33ecbe3 100644 --- a/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.c +++ b/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.c @@ -19,7 +19,7 @@ void func_80A69EC0(EnHorseLinkChild* this); void func_80A6A4DC(EnHorseLinkChild* this); void func_80A6A724(EnHorseLinkChild* this); -ActorInit En_Horse_Link_Child_InitVars = { +ActorProfile En_Horse_Link_Child_Profile = { /**/ ACTOR_EN_HORSE_LINK_CHILD, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c b/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c index 443dcf15c..2ba604eba 100644 --- a/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c +++ b/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c @@ -39,7 +39,7 @@ void func_80A6BCEC(EnHorseNormal* this); void func_80A6C4CC(EnHorseNormal* this); void func_80A6C6B0(EnHorseNormal* this); -ActorInit En_Horse_Normal_InitVars = { +ActorProfile En_Horse_Normal_Profile = { /**/ ACTOR_EN_HORSE_NORMAL, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Horse_Zelda/z_en_horse_zelda.c b/src/overlays/actors/ovl_En_Horse_Zelda/z_en_horse_zelda.c index e3da728e8..09ffab69b 100644 --- a/src/overlays/actors/ovl_En_Horse_Zelda/z_en_horse_zelda.c +++ b/src/overlays/actors/ovl_En_Horse_Zelda/z_en_horse_zelda.c @@ -18,7 +18,7 @@ void EnHorseZelda_Stop(EnHorseZelda* this, PlayState* play); void EnHorseZelda_Gallop(EnHorseZelda* this, PlayState* play); void EnHorseZelda_SetupStop(EnHorseZelda* this); -ActorInit En_Horse_Zelda_InitVars = { +ActorProfile En_Horse_Zelda_Profile = { /**/ ACTOR_EN_HORSE_ZELDA, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Hs/z_en_hs.c b/src/overlays/actors/ovl_En_Hs/z_en_hs.c index 09b1da8dd..ba6f7e55b 100644 --- a/src/overlays/actors/ovl_En_Hs/z_en_hs.c +++ b/src/overlays/actors/ovl_En_Hs/z_en_hs.c @@ -18,7 +18,7 @@ void EnHs_Draw(Actor* thisx, PlayState* play); void func_80A6E9AC(EnHs* this, PlayState* play); void func_80A6E6B0(EnHs* this, PlayState* play); -ActorInit En_Hs_InitVars = { +ActorProfile En_Hs_Profile = { /**/ ACTOR_EN_HS, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c b/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c index d84e35c4e..c10f85b66 100644 --- a/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c +++ b/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c @@ -16,7 +16,7 @@ void EnHs2_Update(Actor* thisx, PlayState* play); void EnHs2_Draw(Actor* thisx, PlayState* play); void func_80A6F1A4(EnHs2* this, PlayState* play); -ActorInit En_Hs2_InitVars = { +ActorProfile En_Hs2_Profile = { /**/ ACTOR_EN_HS2, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Hy/z_en_hy.c b/src/overlays/actors/ovl_En_Hy/z_en_hy.c index 37e0666f3..a36946bec 100644 --- a/src/overlays/actors/ovl_En_Hy/z_en_hy.c +++ b/src/overlays/actors/ovl_En_Hy/z_en_hy.c @@ -32,7 +32,7 @@ void func_80A7127C(EnHy* this, PlayState* play); void EnHy_DoNothing(EnHy* this, PlayState* play); void func_80A714C4(EnHy* this, PlayState* play); -ActorInit En_Hy_InitVars = { +ActorProfile En_Hy_Profile = { /**/ ACTOR_EN_HY, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c b/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c index 2a7e7006b..0725c380f 100644 --- a/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c +++ b/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c @@ -24,7 +24,7 @@ void EnIceHono_SetupActionDroppedFlame(EnIceHono* this); void EnIceHono_SetupActionSpreadFlames(EnIceHono* this); void EnIceHono_SetupActionSmallFlame(EnIceHono* this); -ActorInit En_Ice_Hono_InitVars = { +ActorProfile En_Ice_Hono_Profile = { /**/ ACTOR_EN_ICE_HONO, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Ik/z_en_ik.c b/src/overlays/actors/ovl_En_Ik/z_en_ik.c index da82e0725..7357a5d1a 100644 --- a/src/overlays/actors/ovl_En_Ik/z_en_ik.c +++ b/src/overlays/actors/ovl_En_Ik/z_en_ik.c @@ -1558,7 +1558,7 @@ void EnIk_Init(Actor* thisx, PlayState* play) { } } -ActorInit En_Ik_InitVars = { +ActorProfile En_Ik_Profile = { /**/ ACTOR_EN_IK, /**/ ACTORCAT_BOSS, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_In/z_en_in.c b/src/overlays/actors/ovl_En_In/z_en_in.c index 5e63760b2..20e87a210 100644 --- a/src/overlays/actors/ovl_En_In/z_en_in.c +++ b/src/overlays/actors/ovl_En_In/z_en_in.c @@ -24,7 +24,7 @@ void func_80A7A940(EnIn* this, PlayState* play); void func_80A7AA40(EnIn* this, PlayState* play); void func_80A7A4BC(EnIn* this, PlayState* play); -ActorInit En_In_InitVars = { +ActorProfile En_In_Profile = { /**/ ACTOR_EN_IN, /**/ ACTORCAT_NPC, /**/ FLAGS, @@ -503,7 +503,7 @@ void EnIn_Destroy(Actor* thisx, PlayState* play) { } // This function does not actually wait since it waits for OBJECT_IN, -// but the object is already loaded at this point from being set in the ActorInit data +// but the object is already loaded at this point from being set in the ActorProfile data void EnIn_WaitForObject(EnIn* this, PlayState* play) { s32 sp3C = 0; diff --git a/src/overlays/actors/ovl_En_Insect/z_en_insect.c b/src/overlays/actors/ovl_En_Insect/z_en_insect.c index 9140aef7b..4cb346977 100644 --- a/src/overlays/actors/ovl_En_Insect/z_en_insect.c +++ b/src/overlays/actors/ovl_En_Insect/z_en_insect.c @@ -42,7 +42,7 @@ static s16 sCaughtCount = 0; */ static s16 sDroppedCount = 0; -ActorInit En_Insect_InitVars = { +ActorProfile En_Insect_Profile = { /**/ ACTOR_EN_INSECT, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c b/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c index 3caf9062a..8ab5e481b 100644 --- a/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c +++ b/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c @@ -32,7 +32,7 @@ void EnIshi_SpawnDustLarge(EnIshi* this, PlayState* play); static s16 sRotSpeedX = 0; static s16 sRotSpeedY = 0; -ActorInit En_Ishi_InitVars = { +ActorProfile En_Ishi_Profile = { /**/ ACTOR_EN_ISHI, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_It/z_en_it.c b/src/overlays/actors/ovl_En_It/z_en_it.c index 39c0a913d..8445812f7 100644 --- a/src/overlays/actors/ovl_En_It/z_en_it.c +++ b/src/overlays/actors/ovl_En_It/z_en_it.c @@ -34,7 +34,7 @@ static ColliderCylinderInit sCylinderInit = { static CollisionCheckInfoInit2 sColChkInfoInit = { 0, 0, 0, 0, MASS_IMMOVABLE }; -ActorInit En_It_InitVars = { +ActorProfile En_It_Profile = { /**/ ACTOR_EN_IT, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Jj/z_en_jj.c b/src/overlays/actors/ovl_En_Jj/z_en_jj.c index 9162737dc..eaf47d8f9 100644 --- a/src/overlays/actors/ovl_En_Jj/z_en_jj.c +++ b/src/overlays/actors/ovl_En_Jj/z_en_jj.c @@ -28,7 +28,7 @@ void EnJj_WaitForFish(EnJj* this, PlayState* play); void EnJj_BeginCutscene(EnJj* this, PlayState* play); void EnJj_RemoveDust(EnJj* this, PlayState* play); -ActorInit En_Jj_InitVars = { +ActorProfile En_Jj_Profile = { /**/ ACTOR_EN_JJ, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Js/z_en_js.c b/src/overlays/actors/ovl_En_Js/z_en_js.c index 667ebf740..aec212f0f 100644 --- a/src/overlays/actors/ovl_En_Js/z_en_js.c +++ b/src/overlays/actors/ovl_En_Js/z_en_js.c @@ -16,7 +16,7 @@ void EnJs_Draw(Actor* thisx, PlayState* play); void func_80A89304(EnJs* this, PlayState* play); -ActorInit En_Js_InitVars = { +ActorProfile En_Js_Profile = { /**/ ACTOR_EN_JS, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.c b/src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.c index f6fcd43c6..607ccb17a 100644 --- a/src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.c +++ b/src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.c @@ -14,7 +14,7 @@ void EnJsjutan_Destroy(Actor* thisx, PlayState* play); void EnJsjutan_Update(Actor* thisx, PlayState* play2); void EnJsjutan_Draw(Actor* thisx, PlayState* play2); -ActorInit En_Jsjutan_InitVars = { +ActorProfile En_Jsjutan_Profile = { /**/ ACTOR_EN_JSJUTAN, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c b/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c index 0d7cd9d83..f586a408f 100644 --- a/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c +++ b/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c @@ -42,7 +42,7 @@ static ColliderCylinderInit sCylinderInit = { { 20, 70, 0, { 0, 0, 0 } }, }; -ActorInit En_Kakasi_InitVars = { +ActorProfile En_Kakasi_Profile = { /**/ ACTOR_EN_KAKASI, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c b/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c index 31b3b3d00..6fb57a361 100644 --- a/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c +++ b/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c @@ -41,7 +41,7 @@ void func_80A904D8(EnKakasi2* this, PlayState* play); void func_80A90578(EnKakasi2* this, PlayState* play); void func_80A906C4(EnKakasi2* this, PlayState* play); -ActorInit En_Kakasi2_InitVars = { +ActorProfile En_Kakasi2_Profile = { /**/ ACTOR_EN_KAKASI2, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c b/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c index 669596dd8..478e5d666 100644 --- a/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c +++ b/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c @@ -46,7 +46,7 @@ static ColliderCylinderInit sCylinderInit = { { 20, 70, 0, { 0, 0, 0 } }, }; -ActorInit En_Kakasi3_InitVars = { +ActorProfile En_Kakasi3_Profile = { /**/ ACTOR_EN_KAKASI3, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c b/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c index d86ae429a..0ca298c45 100644 --- a/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c +++ b/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c @@ -75,7 +75,7 @@ void EnKanban_Destroy(Actor* thisx, PlayState* play); void EnKanban_Update(Actor* thisx, PlayState* play2); void EnKanban_Draw(Actor* thisx, PlayState* play); -ActorInit En_Kanban_InitVars = { +ActorProfile En_Kanban_Profile = { /**/ ACTOR_EN_KANBAN, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c b/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c index 53fb55984..297427230 100644 --- a/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c +++ b/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c @@ -29,7 +29,7 @@ void EnKarebaba_Dead(EnKarebaba* this, PlayState* play); void EnKarebaba_Regrow(EnKarebaba* this, PlayState* play); void EnKarebaba_Upright(EnKarebaba* this, PlayState* play); -ActorInit En_Karebaba_InitVars = { +ActorProfile En_Karebaba_Profile = { /**/ ACTOR_EN_KAREBABA, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Ko/z_en_ko.c b/src/overlays/actors/ovl_En_Ko/z_en_ko.c index 72c74e074..9c820fe17 100644 --- a/src/overlays/actors/ovl_En_Ko/z_en_ko.c +++ b/src/overlays/actors/ovl_En_Ko/z_en_ko.c @@ -30,7 +30,7 @@ void func_80A99560(EnKo* this, PlayState* play); s32 func_80A98ECC(EnKo* this, PlayState* play); -ActorInit En_Ko_InitVars = { +ActorProfile En_Ko_Profile = { /**/ ACTOR_EN_KO, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c b/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c index c5924df2b..7bfa8183d 100644 --- a/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c +++ b/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c @@ -41,7 +41,7 @@ static s16 rotSpeedX = 0; static s16 rotSpeedYtarget = 0; static s16 rotSpeedY = 0; -ActorInit En_Kusa_InitVars = { +ActorProfile En_Kusa_Profile = { /**/ ACTOR_EN_KUSA, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Kz/z_en_kz.c b/src/overlays/actors/ovl_En_Kz/z_en_kz.c index ce431636a..6aaab9955 100644 --- a/src/overlays/actors/ovl_En_Kz/z_en_kz.c +++ b/src/overlays/actors/ovl_En_Kz/z_en_kz.c @@ -22,7 +22,7 @@ void EnKz_Wait(EnKz* this, PlayState* play); void EnKz_SetupGetItem(EnKz* this, PlayState* play); void EnKz_StartTimer(EnKz* this, PlayState* play); -ActorInit En_Kz_InitVars = { +ActorProfile En_Kz_Profile = { /**/ ACTOR_EN_KZ, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Light/z_en_light.c b/src/overlays/actors/ovl_En_Light/z_en_light.c index 3eeba7521..f235d0fcd 100644 --- a/src/overlays/actors/ovl_En_Light/z_en_light.c +++ b/src/overlays/actors/ovl_En_Light/z_en_light.c @@ -16,7 +16,7 @@ void EnLight_Update(Actor* thisx, PlayState* play); void EnLight_Draw(Actor* thisx, PlayState* play); void EnLight_UpdateSwitch(Actor* thisx, PlayState* play); -ActorInit En_Light_InitVars = { +ActorProfile En_Light_Profile = { /**/ ACTOR_EN_LIGHT, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Lightbox/z_en_lightbox.c b/src/overlays/actors/ovl_En_Lightbox/z_en_lightbox.c index f89e7dc76..d7bb502f9 100644 --- a/src/overlays/actors/ovl_En_Lightbox/z_en_lightbox.c +++ b/src/overlays/actors/ovl_En_Lightbox/z_en_lightbox.c @@ -14,7 +14,7 @@ void EnLightbox_Destroy(Actor* thisx, PlayState* play); void EnLightbox_Update(Actor* thisx, PlayState* play); void EnLightbox_Draw(Actor* thisx, PlayState* play); -ActorInit En_Lightbox_InitVars = { +ActorProfile En_Lightbox_Profile = { /**/ ACTOR_EN_LIGHTBOX, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_M_Fire1/z_en_m_fire1.c b/src/overlays/actors/ovl_En_M_Fire1/z_en_m_fire1.c index 5de655778..74bc53af1 100644 --- a/src/overlays/actors/ovl_En_M_Fire1/z_en_m_fire1.c +++ b/src/overlays/actors/ovl_En_M_Fire1/z_en_m_fire1.c @@ -12,7 +12,7 @@ void EnMFire1_Init(Actor* thisx, PlayState* play); void EnMFire1_Destroy(Actor* thisx, PlayState* play); void EnMFire1_Update(Actor* thisx, PlayState* play); -ActorInit En_M_Fire1_InitVars = { +ActorProfile En_M_Fire1_Profile = { /**/ ACTOR_EN_M_FIRE1, /**/ ACTORCAT_MISC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c b/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c index 2bc483153..7fce32533 100644 --- a/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c +++ b/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c @@ -12,7 +12,7 @@ void func_80A9F314(PlayState* play, f32 arg1); void func_80A9F408(EnMThunder* this, PlayState* play); void func_80A9F9B4(EnMThunder* this, PlayState* play); -ActorInit En_M_Thunder_InitVars = { +ActorProfile En_M_Thunder_Profile = { /**/ ACTOR_EN_M_THUNDER, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c b/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c index 26795a516..0206c09dd 100644 --- a/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c +++ b/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c @@ -23,7 +23,7 @@ void EnMa1_TeachSong(EnMa1* this, PlayState* play); void EnMa1_WaitForPlayback(EnMa1* this, PlayState* play); void EnMa1_DoNothing(EnMa1* this, PlayState* play); -ActorInit En_Ma1_InitVars = { +ActorProfile En_Ma1_Profile = { /**/ ACTOR_EN_MA1, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c b/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c index d840a4b53..6b727f28f 100644 --- a/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c +++ b/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c @@ -17,7 +17,7 @@ void func_80AA204C(EnMa2* this, PlayState* play); void func_80AA20E4(EnMa2* this, PlayState* play); void func_80AA21C8(EnMa2* this, PlayState* play); -ActorInit En_Ma2_InitVars = { +ActorProfile En_Ma2_Profile = { /**/ ACTOR_EN_MA2, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c b/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c index 2bbc18563..3feb7cc33 100644 --- a/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c +++ b/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c @@ -20,7 +20,7 @@ s32 func_80AA2F28(EnMa3* this); void EnMa3_UpdateEyes(EnMa3* this); void func_80AA3200(EnMa3* this, PlayState* play); -ActorInit En_Ma3_InitVars = { +ActorProfile En_Ma3_Profile = { /**/ ACTOR_EN_MA3, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Mag/z_en_mag.c b/src/overlays/actors/ovl_En_Mag/z_en_mag.c index 83ad84d11..635e3efb8 100644 --- a/src/overlays/actors/ovl_En_Mag/z_en_mag.c +++ b/src/overlays/actors/ovl_En_Mag/z_en_mag.c @@ -14,7 +14,7 @@ void EnMag_Destroy(Actor* thisx, PlayState* play); void EnMag_Update(Actor* thisx, PlayState* play); void EnMag_Draw(Actor* thisx, PlayState* play); -ActorInit En_Mag_InitVars = { +ActorProfile En_Mag_Profile = { /**/ ACTOR_EN_MAG, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Mb/z_en_mb.c b/src/overlays/actors/ovl_En_Mb/z_en_mb.c index 92f3aac85..60c2cff72 100644 --- a/src/overlays/actors/ovl_En_Mb/z_en_mb.c +++ b/src/overlays/actors/ovl_En_Mb/z_en_mb.c @@ -53,7 +53,7 @@ void EnMb_Destroy(Actor* thisx, PlayState* play); void EnMb_Update(Actor* thisx, PlayState* play); void EnMb_Draw(Actor* thisx, PlayState* play); -ActorInit En_Mb_InitVars = { +ActorProfile En_Mb_Profile = { /**/ ACTOR_EN_MB, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Md/z_en_md.c b/src/overlays/actors/ovl_En_Md/z_en_md.c index 879de69ec..631a58af0 100644 --- a/src/overlays/actors/ovl_En_Md/z_en_md.c +++ b/src/overlays/actors/ovl_En_Md/z_en_md.c @@ -21,7 +21,7 @@ void func_80AAB948(EnMd* this, PlayState* play); void func_80AABC10(EnMd* this, PlayState* play); void func_80AABD0C(EnMd* this, PlayState* play); -ActorInit En_Md_InitVars = { +ActorProfile En_Md_Profile = { /**/ ACTOR_EN_MD, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Mk/z_en_mk.c b/src/overlays/actors/ovl_En_Mk/z_en_mk.c index 5b8e26d91..b98cda4e4 100644 --- a/src/overlays/actors/ovl_En_Mk/z_en_mk.c +++ b/src/overlays/actors/ovl_En_Mk/z_en_mk.c @@ -16,7 +16,7 @@ void EnMk_Draw(Actor* thisx, PlayState* play); void EnMk_Wait(EnMk* this, PlayState* play); -ActorInit En_Mk_InitVars = { +ActorProfile En_Mk_Profile = { /**/ ACTOR_EN_MK, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Mm/z_en_mm.c b/src/overlays/actors/ovl_En_Mm/z_en_mm.c index 2375b5e6c..6813a3fcb 100644 --- a/src/overlays/actors/ovl_En_Mm/z_en_mm.c +++ b/src/overlays/actors/ovl_En_Mm/z_en_mm.c @@ -39,7 +39,7 @@ s32 func_80AADA70(void); s32 EnMm_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* thisx); void EnMm_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void*); -ActorInit En_Mm_InitVars = { +ActorProfile En_Mm_Profile = { /**/ ACTOR_EN_MM, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c b/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c index 74636b9e2..43df398a8 100644 --- a/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c +++ b/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c @@ -35,7 +35,7 @@ void func_80AAF668(EnMm2* this, PlayState* play); s32 EnMm2_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* thisx); void EnMm2_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx); -ActorInit En_Mm2_InitVars = { +ActorProfile En_Mm2_Profile = { /**/ ACTOR_EN_MM2, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Ms/z_en_ms.c b/src/overlays/actors/ovl_En_Ms/z_en_ms.c index 9feb9d43b..18a8c723e 100644 --- a/src/overlays/actors/ovl_En_Ms/z_en_ms.c +++ b/src/overlays/actors/ovl_En_Ms/z_en_ms.c @@ -20,7 +20,7 @@ void EnMs_Talk(EnMs* this, PlayState* play); void EnMs_Sell(EnMs* this, PlayState* play); void EnMs_TalkAfterPurchase(EnMs* this, PlayState* play); -ActorInit En_Ms_InitVars = { +ActorProfile En_Ms_Profile = { /**/ ACTOR_EN_MS, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Mu/z_en_mu.c b/src/overlays/actors/ovl_En_Mu/z_en_mu.c index d6a8f2af0..eeaf652b1 100644 --- a/src/overlays/actors/ovl_En_Mu/z_en_mu.c +++ b/src/overlays/actors/ovl_En_Mu/z_en_mu.c @@ -39,7 +39,7 @@ static ColliderCylinderInit D_80AB0BD0 = { static CollisionCheckInfoInit2 D_80AB0BFC = { 0, 0, 0, 0, MASS_IMMOVABLE }; -ActorInit En_Mu_InitVars = { +ActorProfile En_Mu_Profile = { /**/ ACTOR_EN_MU, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Nb/z_en_nb.c b/src/overlays/actors/ovl_En_Nb/z_en_nb.c index 454c36a15..04883b3fc 100644 --- a/src/overlays/actors/ovl_En_Nb/z_en_nb.c +++ b/src/overlays/actors/ovl_En_Nb/z_en_nb.c @@ -1558,7 +1558,7 @@ void EnNb_Draw(Actor* thisx, PlayState* play) { sDrawFuncs[this->drawMode](this, play); } -ActorInit En_Nb_InitVars = { +ActorProfile En_Nb_Profile = { /**/ ACTOR_EN_NB, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Niw/z_en_niw.c b/src/overlays/actors/ovl_En_Niw/z_en_niw.c index e24f78be8..e2c44b79d 100644 --- a/src/overlays/actors/ovl_En_Niw/z_en_niw.c +++ b/src/overlays/actors/ovl_En_Niw/z_en_niw.c @@ -36,7 +36,7 @@ void EnNiw_DrawEffects(EnNiw* this, PlayState* play); static s16 D_80AB85E0 = 0; -ActorInit En_Niw_InitVars = { +ActorProfile En_Niw_Profile = { /**/ ACTOR_EN_NIW, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c b/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c index 33c98d4f8..d318e9f05 100644 --- a/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c +++ b/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c @@ -19,7 +19,7 @@ void EnNiwGirl_Talk(EnNiwGirl* this, PlayState* play); void func_80AB94D0(EnNiwGirl* this, PlayState* play); void func_80AB9210(EnNiwGirl* this, PlayState* play); -ActorInit En_Niw_Girl_InitVars = { +ActorProfile En_Niw_Girl_Profile = { /**/ ACTOR_EN_NIW_GIRL, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c b/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c index 9da760fb1..e977d1865 100644 --- a/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c +++ b/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c @@ -25,7 +25,7 @@ void func_80ABA244(EnNiwLady* this, PlayState* play); void func_80ABA654(EnNiwLady* this, PlayState* play); void func_80ABAD7C(EnNiwLady* this, PlayState* play); -ActorInit En_Niw_Lady_InitVars = { +ActorProfile En_Niw_Lady_Profile = { /**/ ACTOR_EN_NIW_LADY, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c b/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c index 1d05b78c3..151b4e746 100644 --- a/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c +++ b/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c @@ -22,7 +22,7 @@ void EnNutsball_Draw(Actor* thisx, PlayState* play); void func_80ABBB34(EnNutsball* this, PlayState* play); void func_80ABBBA8(EnNutsball* this, PlayState* play); -ActorInit En_Nutsball_InitVars = { +ActorProfile En_Nutsball_Profile = { /**/ ACTOR_EN_NUTSBALL, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Nwc/z_en_nwc.c b/src/overlays/actors/ovl_En_Nwc/z_en_nwc.c index b6942de60..0a38ca95c 100644 --- a/src/overlays/actors/ovl_En_Nwc/z_en_nwc.c +++ b/src/overlays/actors/ovl_En_Nwc/z_en_nwc.c @@ -30,7 +30,7 @@ typedef enum { /* 1 */ CHICK_NORMAL } ChickTypes; -ActorInit En_Nwc_InitVars = { +ActorProfile En_Nwc_Profile = { /**/ ACTOR_EN_NWC, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Ny/z_en_ny.c b/src/overlays/actors/ovl_En_Ny/z_en_ny.c index 38e717dd6..5d6eb3338 100644 --- a/src/overlays/actors/ovl_En_Ny/z_en_ny.c +++ b/src/overlays/actors/ovl_En_Ny/z_en_ny.c @@ -23,7 +23,7 @@ void EnNy_SetupDie(EnNy* this, PlayState* play); void EnNy_DrawDeathEffect(Actor* thisx, PlayState* play); void func_80ABD3B8(EnNy* this, f32, f32); -ActorInit En_Ny_InitVars = { +ActorProfile En_Ny_Profile = { /**/ ACTOR_EN_NY, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_OE2/z_en_oe2.c b/src/overlays/actors/ovl_En_OE2/z_en_oe2.c index 641f47d0f..cfd4f7377 100644 --- a/src/overlays/actors/ovl_En_OE2/z_en_oe2.c +++ b/src/overlays/actors/ovl_En_OE2/z_en_oe2.c @@ -15,7 +15,7 @@ void EnOE2_Draw(Actor* thisx, PlayState* play); void EnOE2_DoNothing(EnOE2* this, PlayState* play); -ActorInit En_OE2_InitVars = { +ActorProfile En_OE2_Profile = { /**/ ACTOR_EN_OE2, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.c b/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.c index 4b755ca61..9d8edf6a1 100644 --- a/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.c +++ b/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.c @@ -18,7 +18,7 @@ void EnOkarinaEffect_Update(Actor* thisx, PlayState* play); void EnOkarinaEffect_TriggerStorm(EnOkarinaEffect* this, PlayState* play); void EnOkarinaEffect_ManageStorm(EnOkarinaEffect* this, PlayState* play); -ActorInit En_Okarina_Effect_InitVars = { +ActorProfile En_Okarina_Effect_Profile = { /**/ ACTOR_EN_OKARINA_EFFECT, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c b/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c index a258f84c1..1e4ade9f2 100644 --- a/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c +++ b/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c @@ -22,7 +22,7 @@ void func_80ABF0CC(EnOkarinaTag* this, PlayState* play); void func_80ABF4C8(EnOkarinaTag* this, PlayState* play); void func_80ABF7CC(EnOkarinaTag* this, PlayState* play); -ActorInit En_Okarina_Tag_InitVars = { +ActorProfile En_Okarina_Tag_Profile = { /**/ ACTOR_EN_OKARINA_TAG, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c b/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c index 3b4bbb26f..21dc7500d 100644 --- a/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c +++ b/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c @@ -19,7 +19,7 @@ void EnOkuta_Die(EnOkuta* this, PlayState* play); void EnOkuta_Freeze(EnOkuta* this, PlayState* play); void EnOkuta_ProjectileFly(EnOkuta* this, PlayState* play); -ActorInit En_Okuta_InitVars = { +ActorProfile En_Okuta_Profile = { /**/ ACTOR_EN_OKUTA, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c index 784ac765c..5ec2091fa 100644 --- a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c +++ b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c @@ -100,7 +100,7 @@ void EnOssan_SetStateGiveDiscountDialog(PlayState* play, EnOssan* this); #define CURSOR_INVALID 0xFF -ActorInit En_Ossan_InitVars = { +ActorProfile En_Ossan_Profile = { /**/ ACTOR_EN_OSSAN, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Owl/z_en_owl.c b/src/overlays/actors/ovl_En_Owl/z_en_owl.c index b67d863e3..df9101484 100644 --- a/src/overlays/actors/ovl_En_Owl/z_en_owl.c +++ b/src/overlays/actors/ovl_En_Owl/z_en_owl.c @@ -65,7 +65,7 @@ typedef enum { /* 0x01 */ OWL_OK } EnOwlMessageChoice; -ActorInit En_Owl_InitVars = { +ActorProfile En_Owl_Profile = { /**/ ACTOR_EN_OWL, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Part/z_en_part.c b/src/overlays/actors/ovl_En_Part/z_en_part.c index 63219d2f0..8ff94c65b 100644 --- a/src/overlays/actors/ovl_En_Part/z_en_part.c +++ b/src/overlays/actors/ovl_En_Part/z_en_part.c @@ -15,7 +15,7 @@ void EnPart_Destroy(Actor* thisx, PlayState* play); void EnPart_Update(Actor* thisx, PlayState* play); void EnPart_Draw(Actor* thisx, PlayState* play); -ActorInit En_Part_InitVars = { +ActorProfile En_Part_Profile = { /**/ ACTOR_EN_PART, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c b/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c index 8fa9e1a49..b0120cf4a 100644 --- a/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c +++ b/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c @@ -40,7 +40,7 @@ void EnPeehat_Adult_StateDie(EnPeehat* this, PlayState* play); void EnPeehat_SetStateExplode(EnPeehat* this); void EnPeehat_StateExplode(EnPeehat* this, PlayState* play); -ActorInit En_Peehat_InitVars = { +ActorProfile En_Peehat_Profile = { /**/ ACTOR_EN_PEEHAT, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c b/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c index 3f814e796..6adf35d68 100644 --- a/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c +++ b/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c @@ -19,7 +19,7 @@ void EnPoDesert_WaitForPlayer(EnPoDesert* this, PlayState* play); void EnPoDesert_MoveToNextPoint(EnPoDesert* this, PlayState* play); void EnPoDesert_Disappear(EnPoDesert* this, PlayState* play); -ActorInit En_Po_Desert_InitVars = { +ActorProfile En_Po_Desert_Profile = { /**/ ACTOR_EN_PO_DESERT, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c b/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c index f67ce8d4e..56d53d4dd 100644 --- a/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c +++ b/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c @@ -33,7 +33,7 @@ void EnPoField_SoulDisappear(EnPoField* this, PlayState* play); void EnPoField_SoulInteract(EnPoField* this, PlayState* play); void EnPoField_SpawnFlame(EnPoField* this); -ActorInit En_Po_Field_InitVars = { +ActorProfile En_Po_Field_Profile = { /**/ ACTOR_EN_PO_FIELD, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c b/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c index 4106c8f0c..da5bfd4b6 100644 --- a/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c +++ b/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c @@ -33,7 +33,7 @@ static Vec3s D_80AD8C30[] = { { 0x0B4E, 0xFE66, 0xF87E }, { 0x0B4A, 0xFE66, 0xF97A }, { 0x0B4A, 0xFE98, 0xF9FC }, { 0x0BAE, 0xFE98, 0xF9FC }, }; -ActorInit En_Po_Relay_InitVars = { +ActorProfile En_Po_Relay_Profile = { /**/ ACTOR_EN_PO_RELAY, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c b/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c index 1315e00b9..17fc773e9 100644 --- a/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c +++ b/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c @@ -61,7 +61,7 @@ static Color_RGBA8 D_80ADD700[4] = { { 0, 150, 0, 255 }, }; -ActorInit En_Po_Sisters_InitVars = { +ActorProfile En_Po_Sisters_Profile = { /**/ ACTOR_EN_PO_SISTERS, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Poh/z_en_poh.c b/src/overlays/actors/ovl_En_Poh/z_en_poh.c index 10af76099..a95fb1fe3 100644 --- a/src/overlays/actors/ovl_En_Poh/z_en_poh.c +++ b/src/overlays/actors/ovl_En_Poh/z_en_poh.c @@ -42,7 +42,7 @@ void EnPoh_TalkComposer(EnPoh* this, PlayState* play); static s16 D_80AE1A50 = 0; -ActorInit En_Poh_InitVars = { +ActorProfile En_Poh_Profile = { /**/ ACTOR_EN_POH, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.c b/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.c index b141965c3..90eba0cde 100644 --- a/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.c +++ b/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.c @@ -14,7 +14,7 @@ void EnPubox_Destroy(Actor* thisx, PlayState* play); void EnPubox_Update(Actor* thisx, PlayState* play); void EnPubox_Draw(Actor* thisx, PlayState* play); -ActorInit En_Pu_box_InitVars = { +ActorProfile En_Pu_box_Profile = { /**/ ACTOR_EN_PU_BOX, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Rd/z_en_rd.c b/src/overlays/actors/ovl_En_Rd/z_en_rd.c index cae3ead4e..2280d6ee1 100644 --- a/src/overlays/actors/ovl_En_Rd/z_en_rd.c +++ b/src/overlays/actors/ovl_En_Rd/z_en_rd.c @@ -52,7 +52,7 @@ typedef enum { /* 4 */ REDEAD_GRAB_END } EnRdGrabState; -ActorInit En_Rd_InitVars = { +ActorProfile En_Rd_Profile = { /**/ ACTOR_EN_RD, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c b/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c index d2be03070..e58a65504 100644 --- a/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c +++ b/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c @@ -75,7 +75,7 @@ static DamageTable sDamageTable = { /* Unknown 2 */ DMG_ENTRY(0, LEEVER_DMGEFF_NONE), }; -ActorInit En_Reeba_InitVars = { +ActorProfile En_Reeba_Profile = { /**/ ACTOR_EN_REEBA, /**/ ACTORCAT_MISC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_River_Sound/z_en_river_sound.c b/src/overlays/actors/ovl_En_River_Sound/z_en_river_sound.c index 19b867eb8..09517dd34 100644 --- a/src/overlays/actors/ovl_En_River_Sound/z_en_river_sound.c +++ b/src/overlays/actors/ovl_En_River_Sound/z_en_river_sound.c @@ -13,7 +13,7 @@ void EnRiverSound_Destroy(Actor* thisx, PlayState* play); void EnRiverSound_Update(Actor* thisx, PlayState* play); void EnRiverSound_Draw(Actor* thisx, PlayState* play); -ActorInit En_River_Sound_InitVars = { +ActorProfile En_River_Sound_Profile = { /**/ ACTOR_EN_RIVER_SOUND, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Rl/z_en_rl.c b/src/overlays/actors/ovl_En_Rl/z_en_rl.c index d3c74b790..ad648f5eb 100644 --- a/src/overlays/actors/ovl_En_Rl/z_en_rl.c +++ b/src/overlays/actors/ovl_En_Rl/z_en_rl.c @@ -394,7 +394,7 @@ void EnRl_Draw(Actor* thisx, PlayState* play) { sDrawFuncs[this->drawConfig](this, play); } -ActorInit En_Rl_InitVars = { +ActorProfile En_Rl_Profile = { /**/ ACTOR_EN_RL, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Rr/z_en_rr.c b/src/overlays/actors/ovl_En_Rr/z_en_rr.c index 146f926a9..21e032474 100644 --- a/src/overlays/actors/ovl_En_Rr/z_en_rr.c +++ b/src/overlays/actors/ovl_En_Rr/z_en_rr.c @@ -64,7 +64,7 @@ void EnRr_Death(EnRr* this, PlayState* play); void EnRr_Retreat(EnRr* this, PlayState* play); void EnRr_Stunned(EnRr* this, PlayState* play); -ActorInit En_Rr_InitVars = { +ActorProfile En_Rr_Profile = { /**/ ACTOR_EN_RR, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c index d33d43917..9f11eba22 100644 --- a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c +++ b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c @@ -132,7 +132,7 @@ static EnRu1DrawFunc sDrawFuncs[] = { EnRu1_DrawXlu, }; -ActorInit En_Ru1_InitVars = { +ActorProfile En_Ru1_Profile = { /**/ ACTOR_EN_RU1, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c b/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c index c2c23b2b9..e93011fc4 100644 --- a/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c +++ b/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c @@ -79,7 +79,7 @@ static EnRu2DrawFunc sDrawFuncs[] = { func_80AF321C, }; -ActorInit En_Ru2_InitVars = { +ActorProfile En_Ru2_Profile = { /**/ ACTOR_EN_RU2, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Sa/z_en_sa.c b/src/overlays/actors/ovl_En_Sa/z_en_sa.c index d60aa4e40..d6296987e 100644 --- a/src/overlays/actors/ovl_En_Sa/z_en_sa.c +++ b/src/overlays/actors/ovl_En_Sa/z_en_sa.c @@ -33,7 +33,7 @@ typedef enum { /* 4 */ SARIA_MOUTH_FROWNING } SariaMouthState; -ActorInit En_Sa_InitVars = { +ActorProfile En_Sa_Profile = { /**/ ACTOR_EN_SA, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Sb/z_en_sb.c b/src/overlays/actors/ovl_En_Sb/z_en_sb.c index df531b2b7..ef608988e 100644 --- a/src/overlays/actors/ovl_En_Sb/z_en_sb.c +++ b/src/overlays/actors/ovl_En_Sb/z_en_sb.c @@ -25,7 +25,7 @@ void EnSb_Lunge(EnSb* this, PlayState* play); void EnSb_Bounce(EnSb* this, PlayState* play); void EnSb_Cooldown(EnSb* this, PlayState* play); -ActorInit En_Sb_InitVars = { +ActorProfile En_Sb_Profile = { /**/ ACTOR_EN_SB, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Scene_Change/z_en_scene_change.c b/src/overlays/actors/ovl_En_Scene_Change/z_en_scene_change.c index 0bc1a1187..26d322f9b 100644 --- a/src/overlays/actors/ovl_En_Scene_Change/z_en_scene_change.c +++ b/src/overlays/actors/ovl_En_Scene_Change/z_en_scene_change.c @@ -15,7 +15,7 @@ void EnSceneChange_Draw(Actor* thisx, PlayState* play); void EnSceneChange_DoNothing(EnSceneChange* this, PlayState* play); -ActorInit En_Scene_Change_InitVars = { +ActorProfile En_Scene_Change_Profile = { /**/ ACTOR_EN_SCENE_CHANGE, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Sda/z_en_sda.c b/src/overlays/actors/ovl_En_Sda/z_en_sda.c index 7a3b1c81f..6e90040a5 100644 --- a/src/overlays/actors/ovl_En_Sda/z_en_sda.c +++ b/src/overlays/actors/ovl_En_Sda/z_en_sda.c @@ -17,7 +17,7 @@ void func_80AF95C4(EnSda* this, u8* shadowTexture, Player* player, PlayState* pl void func_80AF9C70(u8* shadowTexture, Player* player, PlayState* play); void func_80AF8F60(Player* player, u8* shadowTexture, f32 arg2); -ActorInit En_Sda_InitVars = { +ActorProfile En_Sda_Profile = { /**/ ACTOR_EN_SDA, /**/ ACTORCAT_BOSS, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c b/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c index b351d6888..679a00f8a 100644 --- a/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c +++ b/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c @@ -21,7 +21,7 @@ void EnShopnuts_ThrowNut(EnShopnuts* this, PlayState* play); void EnShopnuts_Burrow(EnShopnuts* this, PlayState* play); void EnShopnuts_SpawnSalesman(EnShopnuts* this, PlayState* play); -ActorInit En_Shopnuts_InitVars = { +ActorProfile En_Shopnuts_Profile = { /**/ ACTOR_EN_SHOPNUTS, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Si/z_en_si.c b/src/overlays/actors/ovl_En_Si/z_en_si.c index b6b3adf16..cac674c40 100644 --- a/src/overlays/actors/ovl_En_Si/z_en_si.c +++ b/src/overlays/actors/ovl_En_Si/z_en_si.c @@ -40,7 +40,7 @@ static ColliderCylinderInit sCylinderInit = { static CollisionCheckInfoInit2 D_80AFBADC = { 0, 0, 0, 0, MASS_IMMOVABLE }; -ActorInit En_Si_InitVars = { +ActorProfile En_Si_Profile = { /**/ ACTOR_EN_SI, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Siofuki/z_en_siofuki.c b/src/overlays/actors/ovl_En_Siofuki/z_en_siofuki.c index 0d28bea18..08cb1a998 100644 --- a/src/overlays/actors/ovl_En_Siofuki/z_en_siofuki.c +++ b/src/overlays/actors/ovl_En_Siofuki/z_en_siofuki.c @@ -18,7 +18,7 @@ void func_80AFC34C(EnSiofuki* this, PlayState* play); void func_80AFC544(EnSiofuki* this, PlayState* play); void func_80AFC478(EnSiofuki* this, PlayState* play); -ActorInit En_Siofuki_InitVars = { +ActorProfile En_Siofuki_Profile = { /**/ ACTOR_EN_SIOFUKI, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Skb/z_en_skb.c b/src/overlays/actors/ovl_En_Skb/z_en_skb.c index c484ee206..1853e7b75 100644 --- a/src/overlays/actors/ovl_En_Skb/z_en_skb.c +++ b/src/overlays/actors/ovl_En_Skb/z_en_skb.c @@ -113,7 +113,7 @@ static DamageTable sDamageTable = { /* Unknown 2 */ DMG_ENTRY(0, 0x0), }; -ActorInit En_Skb_InitVars = { +ActorProfile En_Skb_Profile = { /**/ ACTOR_EN_SKB, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Skj/z_en_skj.c b/src/overlays/actors/ovl_En_Skj/z_en_skj.c index 1fb08a6cd..9805f0542 100644 --- a/src/overlays/actors/ovl_En_Skj/z_en_skj.c +++ b/src/overlays/actors/ovl_En_Skj/z_en_skj.c @@ -159,7 +159,7 @@ typedef struct { static EnSkjUnkStruct sSmallStumpSkullKid = { 0, NULL }; static EnSkjUnkStruct sOcarinaMinigameSkullKids[] = { { 0, NULL }, { 0, NULL } }; -ActorInit En_Skj_InitVars = { +ActorProfile En_Skj_Profile = { /**/ ACTOR_EN_SKJ, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c b/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c index df3f584f9..b27a05a48 100644 --- a/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c +++ b/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c @@ -16,7 +16,7 @@ void EnSkjneedle_Draw(Actor* thisx, PlayState* play); s32 EnSkjNeedle_CollisionCheck(EnSkjneedle* this); -ActorInit En_Skjneedle_InitVars = { +ActorProfile En_Skjneedle_Profile = { /**/ ACTOR_EN_SKJNEEDLE, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c b/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c index e7b9d3ee0..1cf4f71ad 100644 --- a/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c +++ b/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c @@ -30,7 +30,7 @@ void EnSsh_Start(EnSsh* this, PlayState* play); #include "assets/overlays/ovl_En_Ssh/ovl_En_Ssh.c" -ActorInit En_Ssh_InitVars = { +ActorProfile En_Ssh_Profile = { /**/ ACTOR_EN_SSH, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_St/z_en_st.c b/src/overlays/actors/ovl_En_St/z_en_st.c index b7983ad59..1011149b3 100644 --- a/src/overlays/actors/ovl_En_St/z_en_st.c +++ b/src/overlays/actors/ovl_En_St/z_en_st.c @@ -23,7 +23,7 @@ void EnSt_FinishBouncing(EnSt* this, PlayState* play); #include "assets/overlays/ovl_En_St/ovl_En_St.c" -ActorInit En_St_InitVars = { +ActorProfile En_St_Profile = { /**/ ACTOR_EN_ST, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Sth/z_en_sth.c b/src/overlays/actors/ovl_En_Sth/z_en_sth.c index 66416baba..ac1ead5ac 100644 --- a/src/overlays/actors/ovl_En_Sth/z_en_sth.c +++ b/src/overlays/actors/ovl_En_Sth/z_en_sth.c @@ -22,7 +22,7 @@ void EnSth_ParentRewardObtainedWait(EnSth* this, PlayState* play); void EnSth_RewardUnobtainedWait(EnSth* this, PlayState* play); void EnSth_ChildRewardObtainedWait(EnSth* this, PlayState* play); -ActorInit En_Sth_InitVars = { +ActorProfile En_Sth_Profile = { /**/ ACTOR_EN_STH, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Stream/z_en_stream.c b/src/overlays/actors/ovl_En_Stream/z_en_stream.c index cc6cf457d..afd36981f 100644 --- a/src/overlays/actors/ovl_En_Stream/z_en_stream.c +++ b/src/overlays/actors/ovl_En_Stream/z_en_stream.c @@ -15,7 +15,7 @@ void EnStream_Update(Actor* thisx, PlayState* play); void EnStream_Draw(Actor* thisx, PlayState* play); void EnStream_WaitForPlayer(EnStream* this, PlayState* play); -ActorInit En_Stream_InitVars = { +ActorProfile En_Stream_Profile = { /**/ ACTOR_EN_STREAM, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Sw/z_en_sw.c b/src/overlays/actors/ovl_En_Sw/z_en_sw.c index 6ffffd208..91d65ef9b 100644 --- a/src/overlays/actors/ovl_En_Sw/z_en_sw.c +++ b/src/overlays/actors/ovl_En_Sw/z_en_sw.c @@ -20,7 +20,7 @@ void func_80B0D3AC(EnSw* this, PlayState* play); void func_80B0DB00(EnSw* this, PlayState* play); void func_80B0D878(EnSw* this, PlayState* play); -ActorInit En_Sw_InitVars = { +ActorProfile En_Sw_Profile = { /**/ ACTOR_EN_SW, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Syateki_Itm/z_en_syateki_itm.c b/src/overlays/actors/ovl_En_Syateki_Itm/z_en_syateki_itm.c index 9719fd651..5f39b2de6 100644 --- a/src/overlays/actors/ovl_En_Syateki_Itm/z_en_syateki_itm.c +++ b/src/overlays/actors/ovl_En_Syateki_Itm/z_en_syateki_itm.c @@ -27,7 +27,7 @@ void EnSyatekiItm_CheckTargets(EnSyatekiItm* this, PlayState* play); void EnSyatekiItm_CleanupGame(EnSyatekiItm* this, PlayState* play); void EnSyatekiItm_EndGame(EnSyatekiItm* this, PlayState* play); -ActorInit En_Syateki_Itm_InitVars = { +ActorProfile En_Syateki_Itm_Profile = { /**/ ACTOR_EN_SYATEKI_ITM, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c b/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c index 90c72cf99..bcf5c8baf 100644 --- a/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c +++ b/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c @@ -44,7 +44,7 @@ void EnSyatekiMan_Blink(EnSyatekiMan* this); void EnSyatekiMan_SetBgm(void); #endif -ActorInit En_Syateki_Man_InitVars = { +ActorProfile En_Syateki_Man_Profile = { /**/ ACTOR_EN_SYATEKI_MAN, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c b/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c index 9da826cd6..2e85c4d53 100644 --- a/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c +++ b/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c @@ -26,7 +26,7 @@ void EnSyatekiNiw_ExitArchery(EnSyatekiNiw* this, PlayState* play); void EnSyatekiNiw_SpawnFeather(EnSyatekiNiw* this, Vec3f* pos, Vec3f* vel, Vec3f* accel, f32 scale); -ActorInit En_Syateki_Niw_InitVars = { +ActorProfile En_Syateki_Niw_Profile = { /**/ ACTOR_EN_SYATEKI_NIW, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Ta/z_en_ta.c b/src/overlays/actors/ovl_En_Ta/z_en_ta.c index b9575cf6e..63e0005eb 100644 --- a/src/overlays/actors/ovl_En_Ta/z_en_ta.c +++ b/src/overlays/actors/ovl_En_Ta/z_en_ta.c @@ -57,7 +57,7 @@ void EnTa_AnimSleeping(EnTa* this); void EnTa_AnimSitSleeping(EnTa* this); void EnTa_AnimRunToEnd(EnTa* this); -ActorInit En_Ta_InitVars = { +ActorProfile En_Ta_Profile = { /**/ ACTOR_EN_TA, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.c b/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.c index b0c4c9249..f243fc13f 100644 --- a/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.c +++ b/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.c @@ -22,7 +22,7 @@ void func_80B17934(EnTakaraMan* this, PlayState* play); void func_80B17A6C(EnTakaraMan* this, PlayState* play); void func_80B17AC4(EnTakaraMan* this, PlayState* play); -ActorInit En_Takara_Man_InitVars = { +ActorProfile En_Takara_Man_Profile = { /**/ ACTOR_EN_TAKARA_MAN, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Tana/z_en_tana.c b/src/overlays/actors/ovl_En_Tana/z_en_tana.c index a3cf4949c..1bb12bd04 100644 --- a/src/overlays/actors/ovl_En_Tana/z_en_tana.c +++ b/src/overlays/actors/ovl_En_Tana/z_en_tana.c @@ -15,7 +15,7 @@ void EnTana_Update(Actor* thisx, PlayState* play); void EnTana_DrawWoodenShelves(Actor* thisx, PlayState* play); void EnTana_DrawStoneShelves(Actor* thisx, PlayState* play); -ActorInit En_Tana_InitVars = { +ActorProfile En_Tana_Profile = { /**/ ACTOR_EN_TANA, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Test/z_en_test.c b/src/overlays/actors/ovl_En_Test/z_en_test.c index 96a2a2e87..6434aa2c1 100644 --- a/src/overlays/actors/ovl_En_Test/z_en_test.c +++ b/src/overlays/actors/ovl_En_Test/z_en_test.c @@ -125,7 +125,7 @@ static u8 sUpperBodyLimbCopyMap[] = { false, // STALFOS_LIMB_WAIST }; -ActorInit En_Test_InitVars = { +ActorProfile En_Test_Profile = { /**/ ACTOR_EN_TEST, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Tg/z_en_tg.c b/src/overlays/actors/ovl_En_Tg/z_en_tg.c index 403ea500f..b95ebe951 100644 --- a/src/overlays/actors/ovl_En_Tg/z_en_tg.c +++ b/src/overlays/actors/ovl_En_Tg/z_en_tg.c @@ -38,7 +38,7 @@ static ColliderCylinderInit sCylinderInit = { static CollisionCheckInfoInit2 sColChkInfoInit = { 0, 0, 0, 0, MASS_IMMOVABLE }; -ActorInit En_Tg_InitVars = { +ActorProfile En_Tg_Profile = { /**/ ACTOR_EN_TG, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Tite/z_en_tite.c b/src/overlays/actors/ovl_En_Tite/z_en_tite.c index f9ab17127..0c2dc38f4 100644 --- a/src/overlays/actors/ovl_En_Tite/z_en_tite.c +++ b/src/overlays/actors/ovl_En_Tite/z_en_tite.c @@ -74,7 +74,7 @@ void EnTite_FallApart(EnTite* this, PlayState* play); void EnTite_FlipOnBack(EnTite* this, PlayState* play); void EnTite_FlipUpright(EnTite* this, PlayState* play); -ActorInit En_Tite_InitVars = { +ActorProfile En_Tite_Profile = { /**/ ACTOR_EN_TITE, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Tk/z_en_tk.c b/src/overlays/actors/ovl_En_Tk/z_en_tk.c index b48964c8f..40045d332 100644 --- a/src/overlays/actors/ovl_En_Tk/z_en_tk.c +++ b/src/overlays/actors/ovl_En_Tk/z_en_tk.c @@ -20,7 +20,7 @@ void EnTk_Rest(EnTk* this, PlayState* play); void EnTk_Walk(EnTk* this, PlayState* play); void EnTk_Dig(EnTk* this, PlayState* play); -ActorInit En_Tk_InitVars = { +ActorProfile En_Tk_Profile = { /**/ ACTOR_EN_TK, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Torch/z_en_torch.c b/src/overlays/actors/ovl_En_Torch/z_en_torch.c index 95623b0de..e60e16c0d 100644 --- a/src/overlays/actors/ovl_En_Torch/z_en_torch.c +++ b/src/overlays/actors/ovl_En_Torch/z_en_torch.c @@ -10,7 +10,7 @@ void EnTorch_Init(Actor* thisx, PlayState* play); -ActorInit En_Torch_InitVars = { +ActorProfile En_Torch_Profile = { /**/ ACTOR_EN_TORCH, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c b/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c index 8c3c1c90a..93d2643bc 100644 --- a/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c +++ b/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c @@ -21,7 +21,7 @@ void EnTorch2_Destroy(Actor* thisx, PlayState* play); void EnTorch2_Update(Actor* thisx, PlayState* play2); void EnTorch2_Draw(Actor* thisx, PlayState* play2); -ActorInit En_Torch2_InitVars = { +ActorProfile En_Torch2_Profile = { /**/ ACTOR_EN_TORCH2, /**/ ACTORCAT_BOSS, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c b/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c index 38e5f46d5..74c25006c 100644 --- a/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c +++ b/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c @@ -18,7 +18,7 @@ void EnToryo_Idle(EnToryo* this, PlayState* play); s32 EnToryo_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* thisx); void EnToryo_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx); -ActorInit En_Toryo_InitVars = { +ActorProfile En_Toryo_Profile = { /**/ ACTOR_EN_TORYO, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Tp/z_en_tp.c b/src/overlays/actors/ovl_En_Tp/z_en_tp.c index cf99f6eca..d71f1d617 100644 --- a/src/overlays/actors/ovl_En_Tp/z_en_tp.c +++ b/src/overlays/actors/ovl_En_Tp/z_en_tp.c @@ -39,7 +39,7 @@ typedef enum { /* 9 */ TAILPASARAN_ACTION_HEAD_BURROWRETURNHOME } TailpasaranAction; -ActorInit En_Tp_InitVars = { +ActorProfile En_Tp_Profile = { /**/ ACTOR_EN_TP, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Tr/z_en_tr.c b/src/overlays/actors/ovl_En_Tr/z_en_tr.c index fa9a5fca8..8908dad6c 100644 --- a/src/overlays/actors/ovl_En_Tr/z_en_tr.c +++ b/src/overlays/actors/ovl_En_Tr/z_en_tr.c @@ -23,7 +23,7 @@ void EnTr_SetRotFromCue(EnTr* this, PlayState* play, s32 cueChannel); void func_80B24038(EnTr* this, PlayState* play, s32 cueChannel); void EnTr_SetStartPosRotFromCue(EnTr* this, PlayState* play, s32 cueChannel); -ActorInit En_Tr_InitVars = { +ActorProfile En_Tr_Profile = { /**/ ACTOR_EN_TR, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Trap/z_en_trap.c b/src/overlays/actors/ovl_En_Trap/z_en_trap.c index 6c21a07c2..44ab7726d 100644 --- a/src/overlays/actors/ovl_En_Trap/z_en_trap.c +++ b/src/overlays/actors/ovl_En_Trap/z_en_trap.c @@ -34,7 +34,7 @@ void EnTrap_Destroy(Actor* thisx, PlayState* play); void EnTrap_Update(Actor* thisx, PlayState* play); void EnTrap_Draw(Actor* thisx, PlayState* play); -ActorInit En_Trap_InitVars = { +ActorProfile En_Trap_Profile = { /**/ ACTOR_EN_TRAP, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Tubo_Trap/z_en_tubo_trap.c b/src/overlays/actors/ovl_En_Tubo_Trap/z_en_tubo_trap.c index 9d40aa022..45da6ae14 100644 --- a/src/overlays/actors/ovl_En_Tubo_Trap/z_en_tubo_trap.c +++ b/src/overlays/actors/ovl_En_Tubo_Trap/z_en_tubo_trap.c @@ -40,7 +40,7 @@ static ColliderCylinderInit sCylinderInit = { { 9, 23, 0, { 0 } }, }; -ActorInit En_Tubo_Trap_InitVars = { +ActorProfile En_Tubo_Trap_Profile = { /**/ ACTOR_EN_TUBO_TRAP, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Vali/z_en_vali.c b/src/overlays/actors/ovl_En_Vali/z_en_vali.c index b48c0e3e2..a8f7574e6 100644 --- a/src/overlays/actors/ovl_En_Vali/z_en_vali.c +++ b/src/overlays/actors/ovl_En_Vali/z_en_vali.c @@ -29,7 +29,7 @@ void EnVali_Stunned(EnVali* this, PlayState* play); void EnVali_Frozen(EnVali* this, PlayState* play); void EnVali_ReturnToLurk(EnVali* this, PlayState* play); -ActorInit En_Vali_InitVars = { +ActorProfile En_Vali_Profile = { /**/ ACTOR_EN_VALI, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Vase/z_en_vase.c b/src/overlays/actors/ovl_En_Vase/z_en_vase.c index c411371c2..065013bb5 100644 --- a/src/overlays/actors/ovl_En_Vase/z_en_vase.c +++ b/src/overlays/actors/ovl_En_Vase/z_en_vase.c @@ -13,7 +13,7 @@ void EnVase_Init(Actor* thisx, PlayState* play); void EnVase_Destroy(Actor* thisx, PlayState* play); void EnVase_Draw(Actor* thisx, PlayState* play); -ActorInit En_Vase_InitVars = { +ActorProfile En_Vase_Profile = { /**/ ACTOR_EN_VASE, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Vb_Ball/z_en_vb_ball.c b/src/overlays/actors/ovl_En_Vb_Ball/z_en_vb_ball.c index 695b88014..e4b89045d 100644 --- a/src/overlays/actors/ovl_En_Vb_Ball/z_en_vb_ball.c +++ b/src/overlays/actors/ovl_En_Vb_Ball/z_en_vb_ball.c @@ -16,7 +16,7 @@ void EnVbBall_Destroy(Actor* thisx, PlayState* play); void EnVbBall_Update(Actor* thisx, PlayState* play2); void EnVbBall_Draw(Actor* thisx, PlayState* play); -ActorInit En_Vb_Ball_InitVars = { +ActorProfile En_Vb_Ball_Profile = { /**/ 0, /**/ ACTORCAT_BOSS, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c b/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c index 1c459b1e5..ef8df0119 100644 --- a/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c +++ b/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c @@ -31,7 +31,7 @@ void EnViewer_UpdateImpl(EnViewer* this, PlayState* play); static u8 sHorseSfxPlayed = false; -ActorInit En_Viewer_InitVars = { +ActorProfile En_Viewer_Profile = { /**/ ACTOR_EN_VIEWER, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Vm/z_en_vm.c b/src/overlays/actors/ovl_En_Vm/z_en_vm.c index 25f13383c..4ea733cc2 100644 --- a/src/overlays/actors/ovl_En_Vm/z_en_vm.c +++ b/src/overlays/actors/ovl_En_Vm/z_en_vm.c @@ -23,7 +23,7 @@ void EnVm_Attack(EnVm* this, PlayState* play); void EnVm_Stun(EnVm* this, PlayState* play); void EnVm_Die(EnVm* this, PlayState* play); -ActorInit En_Vm_InitVars = { +ActorProfile En_Vm_Profile = { /**/ ACTOR_EN_VM, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Wall_Tubo/z_en_wall_tubo.c b/src/overlays/actors/ovl_En_Wall_Tubo/z_en_wall_tubo.c index 2728e4b0d..c20a25754 100644 --- a/src/overlays/actors/ovl_En_Wall_Tubo/z_en_wall_tubo.c +++ b/src/overlays/actors/ovl_En_Wall_Tubo/z_en_wall_tubo.c @@ -21,7 +21,7 @@ void EnWallTubo_FindGirl(EnWallTubo* this, PlayState* play); void EnWallTubo_DetectChu(EnWallTubo* this, PlayState* play); void EnWallTubo_SetWallFall(EnWallTubo* this, PlayState* play); -ActorInit En_Wall_Tubo_InitVars = { +ActorProfile En_Wall_Tubo_Profile = { /**/ ACTOR_EN_WALL_TUBO, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c b/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c index 645b077de..e6083208e 100644 --- a/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c +++ b/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c @@ -38,7 +38,7 @@ void EnWallmas_WaitForSwitchFlag(EnWallmas* this, PlayState* play); void EnWallmas_Stun(EnWallmas* this, PlayState* play); void EnWallmas_Walk(EnWallmas* this, PlayState* play); -ActorInit En_Wallmas_InitVars = { +ActorProfile En_Wallmas_Profile = { /**/ ACTOR_EN_WALLMAS, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Weather_Tag/z_en_weather_tag.c b/src/overlays/actors/ovl_En_Weather_Tag/z_en_weather_tag.c index 1259de278..18ae59f2b 100644 --- a/src/overlays/actors/ovl_En_Weather_Tag/z_en_weather_tag.c +++ b/src/overlays/actors/ovl_En_Weather_Tag/z_en_weather_tag.c @@ -31,7 +31,7 @@ void EnWeatherTag_EnabledRainThunder(EnWeatherTag* this, PlayState* play); #define WEATHER_TAG_RANGE100(x) ((x >> 8) * 100.0f) -ActorInit En_Weather_Tag_InitVars = { +ActorProfile En_Weather_Tag_Profile = { /**/ ACTOR_EN_WEATHER_TAG, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.c b/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.c index ecf2ffb55..d7e1a835d 100644 --- a/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.c +++ b/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.c @@ -26,7 +26,7 @@ void func_80B332B4(EnWeiyer* this, PlayState* play); void func_80B33338(EnWeiyer* this, PlayState* play); void func_80B3349C(EnWeiyer* this, PlayState* play); -ActorInit En_Weiyer_InitVars = { +ActorProfile En_Weiyer_Profile = { /**/ ACTOR_EN_WEIYER, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Wf/z_en_wf.c b/src/overlays/actors/ovl_En_Wf/z_en_wf.c index a0088fc69..00351e785 100644 --- a/src/overlays/actors/ovl_En_Wf/z_en_wf.c +++ b/src/overlays/actors/ovl_En_Wf/z_en_wf.c @@ -187,7 +187,7 @@ static DamageTable sDamageTable = { /* Unknown 2 */ DMG_ENTRY(0, ENWF_DMGEFF_NONE), }; -ActorInit En_Wf_InitVars = { +ActorProfile En_Wf_Profile = { /**/ ACTOR_EN_WF, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c b/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c index acf36140c..1f8be2586 100644 --- a/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c +++ b/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c @@ -41,7 +41,7 @@ static ColliderCylinderInit sCylinderInit = { { 20, 30, 0, { 0, 0, 0 } }, }; -ActorInit En_Wonder_Item_InitVars = { +ActorProfile En_Wonder_Item_Profile = { /**/ ACTOR_EN_WONDER_ITEM, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.c b/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.c index 08dbcbd9f..cb51d8868 100644 --- a/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.c +++ b/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.c @@ -17,7 +17,7 @@ void func_80B391CC(EnWonderTalk* this, PlayState* play); void func_80B395F0(EnWonderTalk* this, PlayState* play); void func_80B3943C(EnWonderTalk* this, PlayState* play); -ActorInit En_Wonder_Talk_InitVars = { +ActorProfile En_Wonder_Talk_Profile = { /**/ ACTOR_EN_WONDER_TALK, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Wonder_Talk2/z_en_wonder_talk2.c b/src/overlays/actors/ovl_En_Wonder_Talk2/z_en_wonder_talk2.c index 7dd016d49..69117b0cb 100644 --- a/src/overlays/actors/ovl_En_Wonder_Talk2/z_en_wonder_talk2.c +++ b/src/overlays/actors/ovl_En_Wonder_Talk2/z_en_wonder_talk2.c @@ -19,7 +19,7 @@ void func_80B3A15C(EnWonderTalk2* this, PlayState* play); void func_80B3A3D4(EnWonderTalk2* this, PlayState* play); void EnWonderTalk2_DoNothing(EnWonderTalk2* this, PlayState* play); -ActorInit En_Wonder_Talk2_InitVars = { +ActorProfile En_Wonder_Talk2_Profile = { /**/ ACTOR_EN_WONDER_TALK2, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c b/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c index 6845d3983..c61f2f1aa 100644 --- a/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c +++ b/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c @@ -33,7 +33,7 @@ typedef enum { /* 5 */ WOOD_DRAW_LEAF_YELLOW } WoodDrawType; -ActorInit En_Wood02_InitVars = { +ActorProfile En_Wood02_Profile = { /**/ ACTOR_EN_WOOD02, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Xc/z_en_xc.c b/src/overlays/actors/ovl_En_Xc/z_en_xc.c index 1f3b1bca9..3aeacb3f8 100644 --- a/src/overlays/actors/ovl_En_Xc/z_en_xc.c +++ b/src/overlays/actors/ovl_En_Xc/z_en_xc.c @@ -2456,7 +2456,7 @@ void EnXc_Draw(Actor* thisx, PlayState* play) { } } -ActorInit En_Xc_InitVars = { +ActorProfile En_Xc_Profile = { /**/ ACTOR_EN_XC, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c b/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c index 8d7cf097d..ee2fbb4bb 100644 --- a/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c +++ b/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c @@ -34,7 +34,7 @@ static ColliderQuadInit sQuadInit = { { { { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f } } }, }; -ActorInit En_Yabusame_Mark_InitVars = { +ActorProfile En_Yabusame_Mark_Profile = { /**/ ACTOR_EN_YABUSAME_MARK, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c b/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c index c133bde62..fc1541d8c 100644 --- a/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c +++ b/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c @@ -18,7 +18,7 @@ void func_80B43A94(EnYukabyun* this, PlayState* play); void func_80B43AD4(EnYukabyun* this, PlayState* play); void func_80B43B6C(EnYukabyun* this, PlayState* play); -ActorInit En_Yukabyun_InitVars = { +ActorProfile En_Yukabyun_Profile = { /**/ ACTOR_EN_YUKABYUN, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Zf/z_en_zf.c b/src/overlays/actors/ovl_En_Zf/z_en_zf.c index 05ef602b3..a10d0321d 100644 --- a/src/overlays/actors/ovl_En_Zf/z_en_zf.c +++ b/src/overlays/actors/ovl_En_Zf/z_en_zf.c @@ -99,7 +99,7 @@ static Vec3f sPlatformPositions[] = { static s16 D_80B4A1B0 = 0; static s16 D_80B4A1B4 = 1; -ActorInit En_Zf_InitVars = { +ActorProfile En_Zf_Profile = { /**/ ACTOR_EN_ZF, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c b/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c index 1780cc1c9..f63480381 100644 --- a/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c +++ b/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c @@ -27,7 +27,7 @@ extern CutsceneData D_80B4C5D0[]; #include "z_en_zl1_camera_data.inc.c" -ActorInit En_Zl1_InitVars = { +ActorProfile En_Zl1_Profile = { /**/ ACTOR_EN_ZL1, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c b/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c index e3b0c516b..c3867c17f 100644 --- a/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c +++ b/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c @@ -87,7 +87,7 @@ static EnZl2DrawFunc sDrawFuncs[] = { func_80B525D4, }; -ActorInit En_Zl2_InitVars = { +ActorProfile En_Zl2_Profile = { /**/ ACTOR_EN_ZL2, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c b/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c index cdc701bdd..a4d62f84c 100644 --- a/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c +++ b/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c @@ -2788,7 +2788,7 @@ void EnZl3_Draw(Actor* thisx, PlayState* play) { sDrawFuncs[this->drawConfig](this, play); } -ActorInit En_Zl3_InitVars = { +ActorProfile En_Zl3_Profile = { /**/ ACTOR_EN_ZL3, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c b/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c index fb6cbd9ec..f133f51c2 100644 --- a/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c +++ b/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c @@ -58,7 +58,7 @@ void EnZl4_Cutscene(EnZl4* this, PlayState* play); void EnZl4_Idle(EnZl4* this, PlayState* play); void EnZl4_TheEnd(EnZl4* this, PlayState* play); -ActorInit En_Zl4_InitVars = { +ActorProfile En_Zl4_Profile = { /**/ ACTOR_EN_ZL4, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_Zo/z_en_zo.c b/src/overlays/actors/ovl_En_Zo/z_en_zo.c index 8b6b59123..c54842fec 100644 --- a/src/overlays/actors/ovl_En_Zo/z_en_zo.c +++ b/src/overlays/actors/ovl_En_Zo/z_en_zo.c @@ -299,7 +299,7 @@ static ColliderCylinderInit sCylinderInit = { static CollisionCheckInfoInit2 sColChkInit = { 0, 0, 0, 0, MASS_IMMOVABLE }; -ActorInit En_Zo_InitVars = { +ActorProfile En_Zo_Profile = { /**/ ACTOR_EN_ZO, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_En_fHG/z_en_fhg.c b/src/overlays/actors/ovl_En_fHG/z_en_fhg.c index de1bc675f..6cfd3dd92 100644 --- a/src/overlays/actors/ovl_En_fHG/z_en_fhg.c +++ b/src/overlays/actors/ovl_En_fHG/z_en_fhg.c @@ -45,7 +45,7 @@ void EnfHG_Damage(EnfHG* this, PlayState* play); void EnfHG_Retreat(EnfHG* this, PlayState* play); void EnfHG_Done(EnfHG* this, PlayState* play); -ActorInit En_fHG_InitVars = { +ActorProfile En_fHG_Profile = { /**/ ACTOR_EN_FHG, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_End_Title/z_end_title.c b/src/overlays/actors/ovl_End_Title/z_end_title.c index a71164cec..7117be63a 100644 --- a/src/overlays/actors/ovl_End_Title/z_end_title.c +++ b/src/overlays/actors/ovl_End_Title/z_end_title.c @@ -14,7 +14,7 @@ void EndTitle_Update(Actor* thisx, PlayState* play); void EndTitle_DrawFull(Actor* thisx, PlayState* play); void EndTitle_DrawNintendoLogo(Actor* thisx, PlayState* play); -ActorInit End_Title_InitVars = { +ActorProfile End_Title_Profile = { /**/ ACTOR_END_TITLE, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index 34876f792..571e5463e 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -131,7 +131,7 @@ typedef enum { #define LINE_SEG_COUNT 200 #define SINKING_LURE_SEG_COUNT 20 -ActorInit Fishing_InitVars = { +ActorProfile Fishing_Profile = { /**/ ACTOR_FISHING, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Item_B_Heart/z_item_b_heart.c b/src/overlays/actors/ovl_Item_B_Heart/z_item_b_heart.c index f6d21ef41..52545ba6a 100644 --- a/src/overlays/actors/ovl_Item_B_Heart/z_item_b_heart.c +++ b/src/overlays/actors/ovl_Item_B_Heart/z_item_b_heart.c @@ -16,7 +16,7 @@ void ItemBHeart_Draw(Actor* thisx, PlayState* play); void func_80B85264(ItemBHeart* this, PlayState* play); -ActorInit Item_B_Heart_InitVars = { +ActorProfile Item_B_Heart_Profile = { /**/ ACTOR_ITEM_B_HEART, /**/ ACTORCAT_MISC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.c b/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.c index a1d99a01a..3efe62cc2 100644 --- a/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.c +++ b/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.c @@ -22,7 +22,7 @@ void ItemEtcetera_MoveFireArrowDown(ItemEtcetera* this, PlayState* play); void func_80B85B28(ItemEtcetera* this, PlayState* play); void ItemEtcetera_UpdateFireArrow(ItemEtcetera* this, PlayState* play); -ActorInit Item_Etcetera_InitVars = { +ActorProfile Item_Etcetera_Profile = { /**/ ACTOR_ITEM_ETCETERA, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Item_Inbox/z_item_inbox.c b/src/overlays/actors/ovl_Item_Inbox/z_item_inbox.c index 3935fa1ea..b93b680a2 100644 --- a/src/overlays/actors/ovl_Item_Inbox/z_item_inbox.c +++ b/src/overlays/actors/ovl_Item_Inbox/z_item_inbox.c @@ -15,7 +15,7 @@ void ItemInbox_Draw(Actor* thisx, PlayState* play); void ItemInbox_Wait(ItemInbox* this, PlayState* play); -ActorInit Item_Inbox_InitVars = { +ActorProfile Item_Inbox_Profile = { /**/ ACTOR_ITEM_INBOX, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Item_Ocarina/z_item_ocarina.c b/src/overlays/actors/ovl_Item_Ocarina/z_item_ocarina.c index c7394227e..00d7eab43 100644 --- a/src/overlays/actors/ovl_Item_Ocarina/z_item_ocarina.c +++ b/src/overlays/actors/ovl_Item_Ocarina/z_item_ocarina.c @@ -22,7 +22,7 @@ void func_80B864EC(ItemOcarina* this, PlayState* play); void func_80B865E0(ItemOcarina* this, PlayState* play); void ItemOcarina_DoNothing(ItemOcarina* this, PlayState* play); -ActorInit Item_Ocarina_InitVars = { +ActorProfile Item_Ocarina_Profile = { /**/ ACTOR_ITEM_OCARINA, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Item_Shield/z_item_shield.c b/src/overlays/actors/ovl_Item_Shield/z_item_shield.c index acb8dbee3..32587360d 100644 --- a/src/overlays/actors/ovl_Item_Shield/z_item_shield.c +++ b/src/overlays/actors/ovl_Item_Shield/z_item_shield.c @@ -38,7 +38,7 @@ static ColliderCylinderInit sCylinderInit = { { 15, 15, 0, { 0, 0, 0 } }, }; -ActorInit Item_Shield_InitVars = { +ActorProfile Item_Shield_Profile = { /**/ ACTOR_ITEM_SHIELD, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c b/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c index 2d3053bfc..d1605484c 100644 --- a/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c +++ b/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c @@ -18,7 +18,7 @@ void MagicDark_DiamondDraw(Actor* thisx, PlayState* play); void MagicDark_DimLighting(PlayState* play, f32 intensity); -ActorInit Magic_Dark_InitVars = { +ActorProfile Magic_Dark_Profile = { /**/ ACTOR_MAGIC_DARK, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.c b/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.c index e861cc84e..34accd755 100644 --- a/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.c +++ b/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.c @@ -30,7 +30,7 @@ typedef enum { /* 0x04 */ DF_SCREEN_TINT_FINISHED } MagicFireScreenTint; -ActorInit Magic_Fire_InitVars = { +ActorProfile Magic_Fire_Profile = { /**/ ACTOR_MAGIC_FIRE, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Magic_Wind/z_magic_wind.c b/src/overlays/actors/ovl_Magic_Wind/z_magic_wind.c index 38458db6b..f8a9e829e 100644 --- a/src/overlays/actors/ovl_Magic_Wind/z_magic_wind.c +++ b/src/overlays/actors/ovl_Magic_Wind/z_magic_wind.c @@ -19,7 +19,7 @@ void MagicWind_FadeOut(MagicWind* this, PlayState* play); void MagicWind_WaitAtFullSize(MagicWind* this, PlayState* play); void MagicWind_Grow(MagicWind* this, PlayState* play); -ActorInit Magic_Wind_InitVars = { +ActorProfile Magic_Wind_Profile = { /**/ ACTOR_MAGIC_WIND, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c b/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c index 8c200e3da..6828028ab 100644 --- a/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c +++ b/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c @@ -30,7 +30,7 @@ typedef enum { /* 9 */ MIRRAY_GANONSCASTLE_SPIRITTRIAL_DOWNLIGHT } MirRayBeamLocations; -ActorInit Mir_Ray_InitVars = { +ActorProfile Mir_Ray_Profile = { /**/ ACTOR_MIR_RAY, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c b/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c index 7a42022b6..5b5e2c7d7 100644 --- a/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c +++ b/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c @@ -72,7 +72,7 @@ void ObjBean_WaitForStepOff(ObjBean* this, PlayState* play); static ObjBean* D_80B90E30 = NULL; -ActorInit Obj_Bean_InitVars = { +ActorProfile Obj_Bean_Profile = { /**/ ACTOR_OBJ_BEAN, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Obj_Blockstop/z_obj_blockstop.c b/src/overlays/actors/ovl_Obj_Blockstop/z_obj_blockstop.c index c908d7c3f..615793c90 100644 --- a/src/overlays/actors/ovl_Obj_Blockstop/z_obj_blockstop.c +++ b/src/overlays/actors/ovl_Obj_Blockstop/z_obj_blockstop.c @@ -13,7 +13,7 @@ void ObjBlockstop_Init(Actor* thisx, PlayState* play); void ObjBlockstop_Destroy(Actor* thisx, PlayState* play); void ObjBlockstop_Update(Actor* thisx, PlayState* play); -ActorInit Obj_Blockstop_InitVars = { +ActorProfile Obj_Blockstop_Profile = { /**/ ACTOR_OBJ_BLOCKSTOP, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c b/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c index dc7cd70d9..d2e2aa5eb 100644 --- a/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c +++ b/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c @@ -18,7 +18,7 @@ void ObjBombiwa_Draw(Actor* thisx, PlayState* play); void ObjBombiwa_Break(ObjBombiwa* this, PlayState* play); -ActorInit Obj_Bombiwa_InitVars = { +ActorProfile Obj_Bombiwa_Profile = { /**/ ACTOR_OBJ_BOMBIWA, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c b/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c index 1c071363c..37ed2432f 100644 --- a/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c +++ b/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c @@ -20,7 +20,7 @@ void ObjComb_ChooseItemDrop(ObjComb* this, PlayState* play); void ObjComb_SetupWait(ObjComb* this); void ObjComb_Wait(ObjComb* this, PlayState* play); -ActorInit Obj_Comb_InitVars = { +ActorProfile Obj_Comb_Profile = { /**/ ACTOR_OBJ_COMB, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.c b/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.c index 3d24be095..e698b55d3 100644 --- a/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.c +++ b/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.c @@ -16,7 +16,7 @@ void ObjDekujr_Draw(Actor* thisx, PlayState* play); void ObjDekujr_ComeUp(ObjDekujr* this, PlayState* play); -ActorInit Obj_Dekujr_InitVars = { +ActorProfile Obj_Dekujr_Profile = { /**/ ACTOR_OBJ_DEKUJR, /**/ ACTORCAT_NPC, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Obj_Elevator/z_obj_elevator.c b/src/overlays/actors/ovl_Obj_Elevator/z_obj_elevator.c index 0cd7062bd..c1d6507ab 100644 --- a/src/overlays/actors/ovl_Obj_Elevator/z_obj_elevator.c +++ b/src/overlays/actors/ovl_Obj_Elevator/z_obj_elevator.c @@ -19,7 +19,7 @@ void func_80B92C80(ObjElevator* this, PlayState* play); void func_80B92D20(ObjElevator* this); void func_80B92D44(ObjElevator* this, PlayState* play); -ActorInit Obj_Elevator_InitVars = { +ActorProfile Obj_Elevator_Profile = { /**/ ACTOR_OBJ_ELEVATOR, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c b/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c index 3eb9e3347..245325d25 100644 --- a/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c +++ b/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c @@ -14,7 +14,7 @@ void ObjHamishi_Destroy(Actor* thisx, PlayState* play2); void ObjHamishi_Update(Actor* thisx, PlayState* play); void ObjHamishi_Draw(Actor* thisx, PlayState* play); -ActorInit Obj_Hamishi_InitVars = { +ActorProfile Obj_Hamishi_Profile = { /**/ ACTOR_OBJ_HAMISHI, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.c b/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.c index 6dea87f6b..303373ea7 100644 --- a/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.c +++ b/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.c @@ -14,7 +14,7 @@ void ObjHana_Destroy(Actor* thisx, PlayState* play); void ObjHana_Update(Actor* thisx, PlayState* play); void ObjHana_Draw(Actor* thisx, PlayState* play); -ActorInit Obj_Hana_InitVars = { +ActorProfile Obj_Hana_Profile = { /**/ ACTOR_OBJ_HANA, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Obj_Hsblock/z_obj_hsblock.c b/src/overlays/actors/ovl_Obj_Hsblock/z_obj_hsblock.c index 602502f9b..e7e37675a 100644 --- a/src/overlays/actors/ovl_Obj_Hsblock/z_obj_hsblock.c +++ b/src/overlays/actors/ovl_Obj_Hsblock/z_obj_hsblock.c @@ -21,7 +21,7 @@ void func_80B93D90(ObjHsblock* this); void func_80B93DB0(ObjHsblock* this); void func_80B93E38(ObjHsblock* this); -ActorInit Obj_Hsblock_InitVars = { +ActorProfile Obj_Hsblock_Profile = { /**/ ACTOR_OBJ_HSBLOCK, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c b/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c index 736ba66f7..5aa41d15e 100644 --- a/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c +++ b/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c @@ -17,7 +17,7 @@ void ObjIcePoly_Draw(Actor* thisx, PlayState* play); void ObjIcePoly_Idle(ObjIcePoly* this, PlayState* play); void ObjIcePoly_Melt(ObjIcePoly* this, PlayState* play); -ActorInit Obj_Ice_Poly_InitVars = { +ActorProfile Obj_Ice_Poly_Profile = { /**/ ACTOR_OBJ_ICE_POLY, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c b/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c index 63b9fb117..c6c503a80 100644 --- a/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c +++ b/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c @@ -22,7 +22,7 @@ void ObjKibako_Held(ObjKibako* this, PlayState* play); void ObjKibako_SetupThrown(ObjKibako* this); void ObjKibako_Thrown(ObjKibako* this, PlayState* play); -ActorInit Obj_Kibako_InitVars = { +ActorProfile Obj_Kibako_Profile = { /**/ ACTOR_OBJ_KIBAKO, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.c b/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.c index bfcc4bbf2..231b504b0 100644 --- a/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.c +++ b/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.c @@ -17,7 +17,7 @@ void ObjKibako2_Draw(Actor* thisx, PlayState* play); void ObjKibako2_Idle(ObjKibako2* this, PlayState* play); void ObjKibako2_Kill(ObjKibako2* this, PlayState* play); -ActorInit Obj_Kibako2_InitVars = { +ActorProfile Obj_Kibako2_Profile = { /**/ ACTOR_OBJ_KIBAKO2, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Obj_Lift/z_obj_lift.c b/src/overlays/actors/ovl_Obj_Lift/z_obj_lift.c index 52859a628..f51118f3c 100644 --- a/src/overlays/actors/ovl_Obj_Lift/z_obj_lift.c +++ b/src/overlays/actors/ovl_Obj_Lift/z_obj_lift.c @@ -24,7 +24,7 @@ void ObjLift_Wait(ObjLift* this, PlayState* play); void ObjLift_Shake(ObjLift* this, PlayState* play); void ObjLift_Fall(ObjLift* this, PlayState* play); -ActorInit Obj_Lift_InitVars = { +ActorProfile Obj_Lift_Profile = { /**/ ACTOR_OBJ_LIFT, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c b/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c index bb3bb5633..0ed3b5550 100644 --- a/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c +++ b/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c @@ -35,7 +35,7 @@ void ObjLightswitch_DisappearDelay(ObjLightswitch* this, PlayState* play); void ObjLightswitch_SetupDisappear(ObjLightswitch* this); void ObjLightswitch_Disappear(ObjLightswitch* this, PlayState* play); -ActorInit Obj_Lightswitch_InitVars = { +ActorProfile Obj_Lightswitch_Profile = { /**/ ACTOR_OBJ_LIGHTSWITCH, /**/ ACTORCAT_SWITCH, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Obj_Makekinsuta/z_obj_makekinsuta.c b/src/overlays/actors/ovl_Obj_Makekinsuta/z_obj_makekinsuta.c index 2e4abf070..aebbdc3d2 100644 --- a/src/overlays/actors/ovl_Obj_Makekinsuta/z_obj_makekinsuta.c +++ b/src/overlays/actors/ovl_Obj_Makekinsuta/z_obj_makekinsuta.c @@ -15,7 +15,7 @@ void ObjMakekinsuta_Update(Actor* thisx, PlayState* play); void func_80B98320(ObjMakekinsuta* this, PlayState* play); void ObjMakekinsuta_DoNothing(ObjMakekinsuta* this, PlayState* play); -ActorInit Obj_Makekinsuta_InitVars = { +ActorProfile Obj_Makekinsuta_Profile = { /**/ ACTOR_OBJ_MAKEKINSUTA, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Obj_Makeoshihiki/z_obj_makeoshihiki.c b/src/overlays/actors/ovl_Obj_Makeoshihiki/z_obj_makeoshihiki.c index 98f5d45fb..234c012c3 100644 --- a/src/overlays/actors/ovl_Obj_Makeoshihiki/z_obj_makeoshihiki.c +++ b/src/overlays/actors/ovl_Obj_Makeoshihiki/z_obj_makeoshihiki.c @@ -13,7 +13,7 @@ void ObjMakeoshihiki_Init(Actor* thisx, PlayState* play); void ObjMakeoshihiki_Draw(Actor* thisx, PlayState* play); -ActorInit Obj_Makeoshihiki_InitVars = { +ActorProfile Obj_Makeoshihiki_Profile = { /**/ ACTOR_OBJ_MAKEOSHIHIKI, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Obj_Mure/z_obj_mure.c b/src/overlays/actors/ovl_Obj_Mure/z_obj_mure.c index 7a6f06f9d..e8c297d3a 100644 --- a/src/overlays/actors/ovl_Obj_Mure/z_obj_mure.c +++ b/src/overlays/actors/ovl_Obj_Mure/z_obj_mure.c @@ -19,7 +19,7 @@ void ObjMure_ActiveState(ObjMure* this, PlayState* play); s32 ObjMure_GetMaxChildSpawns(ObjMure* this); -ActorInit Obj_Mure_InitVars = { +ActorProfile Obj_Mure_Profile = { /**/ ACTOR_OBJ_MURE, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Obj_Mure2/z_obj_mure2.c b/src/overlays/actors/ovl_Obj_Mure2/z_obj_mure2.c index 21c3ca6eb..9cb8cac7d 100644 --- a/src/overlays/actors/ovl_Obj_Mure2/z_obj_mure2.c +++ b/src/overlays/actors/ovl_Obj_Mure2/z_obj_mure2.c @@ -28,7 +28,7 @@ void ObjMure2_SetupWait(ObjMure2* this); void func_80B9A658(ObjMure2* this); void func_80B9A6E8(ObjMure2* this); -ActorInit Obj_Mure2_InitVars = { +ActorProfile Obj_Mure2_Profile = { /**/ ACTOR_OBJ_MURE2, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Obj_Mure3/z_obj_mure3.c b/src/overlays/actors/ovl_Obj_Mure3/z_obj_mure3.c index a53531460..ad4801d1f 100644 --- a/src/overlays/actors/ovl_Obj_Mure3/z_obj_mure3.c +++ b/src/overlays/actors/ovl_Obj_Mure3/z_obj_mure3.c @@ -19,7 +19,7 @@ void func_80B9AF64(ObjMure3* this, PlayState* play); void func_80B9AFEC(ObjMure3* this); void func_80B9AFFC(ObjMure3* this, PlayState* play); -ActorInit Obj_Mure3_InitVars = { +ActorProfile Obj_Mure3_Profile = { /**/ ACTOR_OBJ_MURE3, /**/ ACTORCAT_BG, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c b/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c index 6243acb0b..d6e825e90 100644 --- a/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c +++ b/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c @@ -24,7 +24,7 @@ void ObjOshihiki_Push(ObjOshihiki* this, PlayState* play); void ObjOshihiki_SetupFall(ObjOshihiki* this, PlayState* play); void ObjOshihiki_Fall(ObjOshihiki* this, PlayState* play); -ActorInit Obj_Oshihiki_InitVars = { +ActorProfile Obj_Oshihiki_Profile = { /**/ ACTOR_OBJ_OSHIHIKI, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Obj_Roomtimer/z_obj_roomtimer.c b/src/overlays/actors/ovl_Obj_Roomtimer/z_obj_roomtimer.c index 1f52d5c88..3b33a5ac9 100644 --- a/src/overlays/actors/ovl_Obj_Roomtimer/z_obj_roomtimer.c +++ b/src/overlays/actors/ovl_Obj_Roomtimer/z_obj_roomtimer.c @@ -15,7 +15,7 @@ void ObjRoomtimer_Update(Actor* thisx, PlayState* play); void func_80B9D054(ObjRoomtimer* this, PlayState* play); void func_80B9D0B0(ObjRoomtimer* this, PlayState* play); -ActorInit Obj_Roomtimer_InitVars = { +ActorProfile Obj_Roomtimer_Profile = { /**/ ACTOR_OBJ_ROOMTIMER, /**/ ACTORCAT_ENEMY, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c b/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c index 23c0e243b..fcaf50a34 100644 --- a/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c +++ b/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c @@ -50,7 +50,7 @@ void ObjSwitch_CrystalOn(ObjSwitch* this, PlayState* play); void ObjSwitch_CrystalTurnOffInit(ObjSwitch* this); void ObjSwitch_CrystalTurnOff(ObjSwitch* this, PlayState* play); -ActorInit Obj_Switch_InitVars = { +ActorProfile Obj_Switch_Profile = { /**/ ACTOR_OBJ_SWITCH, /**/ ACTORCAT_SWITCH, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c b/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c index 7ea6b73d3..70f473ec7 100644 --- a/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c +++ b/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c @@ -16,7 +16,7 @@ void ObjSyokudai_Destroy(Actor* thisx, PlayState* play); void ObjSyokudai_Update(Actor* thisx, PlayState* play2); void ObjSyokudai_Draw(Actor* thisx, PlayState* play); -ActorInit Obj_Syokudai_InitVars = { +ActorProfile Obj_Syokudai_Profile = { /**/ ACTOR_OBJ_SYOKUDAI, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c b/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c index a081e363c..13a99f779 100644 --- a/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c +++ b/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c @@ -25,7 +25,7 @@ void ObjTimeblock_Normal(ObjTimeblock* this, PlayState* play); void ObjTimeblock_AltBehaviorVisible(ObjTimeblock* this, PlayState* play); void ObjTimeblock_AltBehaviourNotVisible(ObjTimeblock* this, PlayState* play); -ActorInit Obj_Timeblock_InitVars = { +ActorProfile Obj_Timeblock_Profile = { /**/ ACTOR_OBJ_TIMEBLOCK, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c b/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c index 7c05c22fa..d19818c24 100644 --- a/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c +++ b/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c @@ -36,7 +36,7 @@ static s16 D_80BA1B54 = 0; static s16 D_80BA1B58 = 0; static s16 D_80BA1B5C = 0; -ActorInit Obj_Tsubo_InitVars = { +ActorProfile Obj_Tsubo_Profile = { /**/ ACTOR_OBJ_TSUBO, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Obj_Warp2block/z_obj_warp2block.c b/src/overlays/actors/ovl_Obj_Warp2block/z_obj_warp2block.c index 73919d7d3..979287b6b 100644 --- a/src/overlays/actors/ovl_Obj_Warp2block/z_obj_warp2block.c +++ b/src/overlays/actors/ovl_Obj_Warp2block/z_obj_warp2block.c @@ -28,7 +28,7 @@ void func_80BA24F8(ObjWarp2block* this, PlayState* play); void func_80BA2600(ObjWarp2block* this); void func_80BA2610(ObjWarp2block* this, PlayState* play); -ActorInit Obj_Warp2block_InitVars = { +ActorProfile Obj_Warp2block_Profile = { /**/ ACTOR_OBJ_WARP2BLOCK, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c b/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c index 5ce4d3b6b..7e664db82 100644 --- a/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c +++ b/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c @@ -43,7 +43,7 @@ static void* D_80BA5900[] = { gEffSunGraveSpark5Tex, gEffSunGraveSpark6Tex, gEffSunGraveSpark7Tex, gEffSunGraveSpark8Tex, }; -ActorInit Object_Kankyo_InitVars = { +ActorProfile Object_Kankyo_Profile = { /**/ ACTOR_OBJECT_KANKYO, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c b/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c index 4220f879e..671325b5b 100644 --- a/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c +++ b/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c @@ -16,7 +16,7 @@ void OceffSpot_Draw(Actor* thisx, PlayState* play); void OceffSpot_GrowCylinder(OceffSpot* this, PlayState* play); -ActorInit Oceff_Spot_InitVars = { +ActorProfile Oceff_Spot_Profile = { /**/ ACTOR_OCEFF_SPOT, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Oceff_Storm/z_oceff_storm.c b/src/overlays/actors/ovl_Oceff_Storm/z_oceff_storm.c index 0df7ced42..8babfbf40 100644 --- a/src/overlays/actors/ovl_Oceff_Storm/z_oceff_storm.c +++ b/src/overlays/actors/ovl_Oceff_Storm/z_oceff_storm.c @@ -18,7 +18,7 @@ void OceffStorm_Draw2(Actor* thisx, PlayState* play); void OceffStorm_DefaultAction(OceffStorm* this, PlayState* play); void OceffStorm_UnkAction(OceffStorm* this, PlayState* play); -ActorInit Oceff_Storm_InitVars = { +ActorProfile Oceff_Storm_Profile = { /**/ ACTOR_OCEFF_STORM, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Oceff_Wipe/z_oceff_wipe.c b/src/overlays/actors/ovl_Oceff_Wipe/z_oceff_wipe.c index b4a696fec..600a41414 100644 --- a/src/overlays/actors/ovl_Oceff_Wipe/z_oceff_wipe.c +++ b/src/overlays/actors/ovl_Oceff_Wipe/z_oceff_wipe.c @@ -14,7 +14,7 @@ void OceffWipe_Destroy(Actor* thisx, PlayState* play); void OceffWipe_Update(Actor* thisx, PlayState* play); void OceffWipe_Draw(Actor* thisx, PlayState* play); -ActorInit Oceff_Wipe_InitVars = { +ActorProfile Oceff_Wipe_Profile = { /**/ ACTOR_OCEFF_WIPE, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c b/src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c index 1f659aa1d..6b1419f36 100644 --- a/src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c +++ b/src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c @@ -14,7 +14,7 @@ void OceffWipe2_Destroy(Actor* thisx, PlayState* play); void OceffWipe2_Update(Actor* thisx, PlayState* play); void OceffWipe2_Draw(Actor* thisx, PlayState* play); -ActorInit Oceff_Wipe2_InitVars = { +ActorProfile Oceff_Wipe2_Profile = { /**/ ACTOR_OCEFF_WIPE2, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c b/src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c index f9fdd00cb..cded21fce 100644 --- a/src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c +++ b/src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c @@ -14,7 +14,7 @@ void OceffWipe3_Destroy(Actor* thisx, PlayState* play); void OceffWipe3_Update(Actor* thisx, PlayState* play); void OceffWipe3_Draw(Actor* thisx, PlayState* play); -ActorInit Oceff_Wipe3_InitVars = { +ActorProfile Oceff_Wipe3_Profile = { /**/ ACTOR_OCEFF_WIPE3, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Oceff_Wipe4/z_oceff_wipe4.c b/src/overlays/actors/ovl_Oceff_Wipe4/z_oceff_wipe4.c index 954992a60..2d05d06bf 100644 --- a/src/overlays/actors/ovl_Oceff_Wipe4/z_oceff_wipe4.c +++ b/src/overlays/actors/ovl_Oceff_Wipe4/z_oceff_wipe4.c @@ -14,7 +14,7 @@ void OceffWipe4_Destroy(Actor* thisx, PlayState* play); void OceffWipe4_Update(Actor* thisx, PlayState* play); void OceffWipe4_Draw(Actor* thisx, PlayState* play); -ActorInit Oceff_Wipe4_InitVars = { +ActorProfile Oceff_Wipe4_Profile = { /**/ ACTOR_OCEFF_WIPE4, /**/ ACTORCAT_ITEMACTION, /**/ FLAGS, diff --git a/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c b/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c index a6afa9baa..c1082be5b 100644 --- a/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c +++ b/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c @@ -21,7 +21,7 @@ void ShotSun_TriggerFairy(ShotSun* this, PlayState* play); void ShotSun_UpdateFairySpawner(ShotSun* this, PlayState* play); void ShotSun_UpdateHyliaSun(ShotSun* this, PlayState* play); -ActorInit Shot_Sun_InitVars = { +ActorProfile Shot_Sun_Profile = { /**/ ACTOR_SHOT_SUN, /**/ ACTORCAT_PROP, /**/ FLAGS, diff --git a/src/overlays/effects/ovl_Effect_Ss_Blast/z_eff_ss_blast.c b/src/overlays/effects/ovl_Effect_Ss_Blast/z_eff_ss_blast.c index dc5eae3c5..de5b09452 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Blast/z_eff_ss_blast.c +++ b/src/overlays/effects/ovl_Effect_Ss_Blast/z_eff_ss_blast.c @@ -24,7 +24,7 @@ u32 EffectSsBlast_Init(PlayState* play, u32 index, EffectSs* this, void* initPar void EffectSsBlast_Update(PlayState* play, u32 index, EffectSs* this); void EffectSsBlast_Draw(PlayState* play, u32 index, EffectSs* this); -EffectSsInit Effect_Ss_Blast_InitVars = { +EffectSsProfile Effect_Ss_Blast_Profile = { EFFECT_SS_BLAST, EffectSsBlast_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_Bomb/z_eff_ss_bomb.c b/src/overlays/effects/ovl_Effect_Ss_Bomb/z_eff_ss_bomb.c index 5edefefc2..4fd99e362 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Bomb/z_eff_ss_bomb.c +++ b/src/overlays/effects/ovl_Effect_Ss_Bomb/z_eff_ss_bomb.c @@ -16,7 +16,7 @@ u32 EffectSsBomb_Init(PlayState* play, u32 index, EffectSs* this, void* initPara void EffectSsBomb_Draw(PlayState* play, u32 index, EffectSs* this); void EffectSsBomb_Update(PlayState* play, u32 index, EffectSs* this); -EffectSsInit Effect_Ss_Bomb_InitVars = { +EffectSsProfile Effect_Ss_Bomb_Profile = { EFFECT_SS_BOMB, EffectSsBomb_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.c b/src/overlays/effects/ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.c index 34572a978..ce187a990 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.c +++ b/src/overlays/effects/ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.c @@ -24,7 +24,7 @@ void EffectSsBomb2_DrawFade(PlayState* play, u32 index, EffectSs* this); void EffectSsBomb2_DrawLayered(PlayState* play, u32 index, EffectSs* this); void EffectSsBomb2_Update(PlayState* play, u32 index, EffectSs* this); -EffectSsInit Effect_Ss_Bomb2_InitVars = { +EffectSsProfile Effect_Ss_Bomb2_Profile = { EFFECT_SS_BOMB2, EffectSsBomb2_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_Bubble/z_eff_ss_bubble.c b/src/overlays/effects/ovl_Effect_Ss_Bubble/z_eff_ss_bubble.c index 8f6eb2e9f..70fd02ea0 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Bubble/z_eff_ss_bubble.c +++ b/src/overlays/effects/ovl_Effect_Ss_Bubble/z_eff_ss_bubble.c @@ -13,7 +13,7 @@ u32 EffectSsBubble_Init(PlayState* play, u32 index, EffectSs* this, void* initPa void EffectSsBubble_Draw(PlayState* play, u32 index, EffectSs* this); void EffectSsBubble_Update(PlayState* play, u32 index, EffectSs* this); -EffectSsInit Effect_Ss_Bubble_InitVars = { +EffectSsProfile Effect_Ss_Bubble_Profile = { EFFECT_SS_BUBBLE, EffectSsBubble_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_D_Fire/z_eff_ss_d_fire.c b/src/overlays/effects/ovl_Effect_Ss_D_Fire/z_eff_ss_d_fire.c index 1ba2d700e..5b178002d 100644 --- a/src/overlays/effects/ovl_Effect_Ss_D_Fire/z_eff_ss_d_fire.c +++ b/src/overlays/effects/ovl_Effect_Ss_D_Fire/z_eff_ss_d_fire.c @@ -22,7 +22,7 @@ u32 EffectSsDFire_Init(PlayState* play, u32 index, EffectSs* this, void* initPar void EffectSsDFire_Draw(PlayState* play, u32 index, EffectSs* this); void EffectSsDFire_Update(PlayState* play, u32 index, EffectSs* this); -EffectSsInit Effect_Ss_D_Fire_InitVars = { +EffectSsProfile Effect_Ss_D_Fire_Profile = { EFFECT_SS_D_FIRE, EffectSsDFire_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_Dead_Db/z_eff_ss_dead_db.c b/src/overlays/effects/ovl_Effect_Ss_Dead_Db/z_eff_ss_dead_db.c index 167bb6f14..56b7b4db3 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Dead_Db/z_eff_ss_dead_db.c +++ b/src/overlays/effects/ovl_Effect_Ss_Dead_Db/z_eff_ss_dead_db.c @@ -24,7 +24,7 @@ u32 EffectSsDeadDb_Init(PlayState* play, u32 index, EffectSs* this, void* initPa void EffectSsDeadDb_Draw(PlayState* play, u32 index, EffectSs* this); void EffectSsDeadDb_Update(PlayState* play, u32 index, EffectSs* this); -EffectSsInit Effect_Ss_Dead_Db_InitVars = { +EffectSsProfile Effect_Ss_Dead_Db_Profile = { EFFECT_SS_DEAD_DB, EffectSsDeadDb_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.c b/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.c index dff7cea06..ac0df1b43 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.c +++ b/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.c @@ -23,7 +23,7 @@ u32 EffectSsDeadDd_Init(PlayState* play, u32 index, EffectSs* this, void* initPa void EffectSsDeadDd_Draw(PlayState* play, u32 index, EffectSs* this); void EffectSsDeadDd_Update(PlayState* play, u32 index, EffectSs* this); -EffectSsInit Effect_Ss_Dead_Dd_InitVars = { +EffectSsProfile Effect_Ss_Dead_Dd_Profile = { EFFECT_SS_DEAD_DD, EffectSsDeadDd_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.c b/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.c index 002cda253..780a729c6 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.c +++ b/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.c @@ -21,7 +21,7 @@ u32 EffectSsDeadDs_Init(PlayState* play, u32 index, EffectSs* this, void* initPa void EffectSsDeadDs_Draw(PlayState* play, u32 index, EffectSs* this); void EffectSsDeadDs_Update(PlayState* play, u32 index, EffectSs* this); -EffectSsInit Effect_Ss_Dead_Ds_InitVars = { +EffectSsProfile Effect_Ss_Dead_Ds_Profile = { EFFECT_SS_DEAD_DS, EffectSsDeadDs_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.c b/src/overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.c index dae17d0ff..b1c92ec97 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.c +++ b/src/overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.c @@ -12,7 +12,7 @@ u32 EffectSsDeadSound_Init(PlayState* play, u32 index, EffectSs* this, void* initParamsx); void EffectSsDeadSound_Update(PlayState* play, u32 index, EffectSs* this); -EffectSsInit Effect_Ss_Dead_Sound_InitVars = { +EffectSsProfile Effect_Ss_Dead_Sound_Profile = { EFFECT_SS_DEAD_SOUND, EffectSsDeadSound_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/z_eff_ss_dt_bubble.c b/src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/z_eff_ss_dt_bubble.c index 80a3d559a..fb7db2f3f 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/z_eff_ss_dt_bubble.c +++ b/src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/z_eff_ss_dt_bubble.c @@ -26,7 +26,7 @@ void EffectSsDtBubble_Update(PlayState* play, u32 index, EffectSs* this); static Color_RGBA8 sPrimColors[] = { { 255, 255, 100, 255 }, { 150, 255, 255, 255 }, { 100, 255, 255, 255 } }; static Color_RGBA8 sEnvColors[] = { { 170, 0, 0, 255 }, { 0, 100, 0, 255 }, { 0, 0, 255, 255 } }; -EffectSsInit Effect_Ss_Dt_Bubble_InitVars = { +EffectSsProfile Effect_Ss_Dt_Bubble_Profile = { EFFECT_SS_DT_BUBBLE, EffectSsDtBubble_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_Dust/z_eff_ss_dust.c b/src/overlays/effects/ovl_Effect_Ss_Dust/z_eff_ss_dust.c index 62dfc4472..cdb56fc74 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Dust/z_eff_ss_dust.c +++ b/src/overlays/effects/ovl_Effect_Ss_Dust/z_eff_ss_dust.c @@ -26,7 +26,7 @@ void EffectSsDust_Update(PlayState* play, u32 index, EffectSs* this); void EffectSsDust_UpdateFire(PlayState* play, u32 index, EffectSs* this); void EffectSsDust_Draw(PlayState* play, u32 index, EffectSs* this); -EffectSsInit Effect_Ss_Dust_InitVars = { +EffectSsProfile Effect_Ss_Dust_Profile = { EFFECT_SS_DUST, EffectSsDust_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_En_Fire/z_eff_ss_en_fire.c b/src/overlays/effects/ovl_Effect_Ss_En_Fire/z_eff_ss_en_fire.c index 302941ca4..0845e34af 100644 --- a/src/overlays/effects/ovl_Effect_Ss_En_Fire/z_eff_ss_en_fire.c +++ b/src/overlays/effects/ovl_Effect_Ss_En_Fire/z_eff_ss_en_fire.c @@ -22,7 +22,7 @@ u32 EffectSsEnFire_Init(PlayState* play, u32 index, EffectSs* this, void* initPa void EffectSsEnFire_Draw(PlayState* play, u32 index, EffectSs* this); void EffectSsEnFire_Update(PlayState* play, u32 index, EffectSs* this); -EffectSsInit Effect_Ss_En_Fire_InitVars = { +EffectSsProfile Effect_Ss_En_Fire_Profile = { EFFECT_SS_EN_FIRE, EffectSsEnFire_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.c b/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.c index 16ea95d8d..a1c117bc3 100644 --- a/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.c +++ b/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.c @@ -26,7 +26,7 @@ void EffectSsEnIce_Draw(PlayState* play, u32 index, EffectSs* this); void EffectSsEnIce_Update(PlayState* play, u32 index, EffectSs* this); void EffectSsEnIce_UpdateFlying(PlayState* play, u32 index, EffectSs* this); -EffectSsInit Effect_Ss_En_Ice_InitVars = { +EffectSsProfile Effect_Ss_En_Ice_Profile = { EFFECT_SS_EN_ICE, EffectSsEnIce_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.c b/src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.c index 471bed5f7..0b9ff7c67 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.c +++ b/src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.c @@ -18,7 +18,7 @@ void EffectSsExtra_Update(PlayState* play, u32 index, EffectSs* this); static s16 sScores[] = { 30, 60, 100 }; -EffectSsInit Effect_Ss_Extra_InitVars = { +EffectSsProfile Effect_Ss_Extra_Profile = { EFFECT_SS_EXTRA, EffectSsExtra_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_Fcircle/z_eff_ss_fcircle.c b/src/overlays/effects/ovl_Effect_Ss_Fcircle/z_eff_ss_fcircle.c index c3e7088f1..296c2f73b 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Fcircle/z_eff_ss_fcircle.c +++ b/src/overlays/effects/ovl_Effect_Ss_Fcircle/z_eff_ss_fcircle.c @@ -17,7 +17,7 @@ u32 EffectSsFcircle_Init(PlayState* play, u32 index, EffectSs* this, void* initP void EffectSsFcircle_Draw(PlayState* play, u32 index, EffectSs* this); void EffectSsFcircle_Update(PlayState* play, u32 index, EffectSs* this); -EffectSsInit Effect_Ss_Fcircle_InitVars = { +EffectSsProfile Effect_Ss_Fcircle_Profile = { EFFECT_SS_FCIRCLE, EffectSsFcircle_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_Fhg_Flash/z_eff_ss_fhg_flash.c b/src/overlays/effects/ovl_Effect_Ss_Fhg_Flash/z_eff_ss_fhg_flash.c index c427ddca6..c637e1a9b 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Fhg_Flash/z_eff_ss_fhg_flash.c +++ b/src/overlays/effects/ovl_Effect_Ss_Fhg_Flash/z_eff_ss_fhg_flash.c @@ -20,7 +20,7 @@ void EffectSsFhgFlash_UpdateLightBall(PlayState* play, u32 index, EffectSs* this void EffectSsFhgFlash_DrawShock(PlayState* play, u32 index, EffectSs* this); void EffectSsFhgFlash_UpdateShock(PlayState* play, u32 index, EffectSs* this); -EffectSsInit Effect_Ss_Fhg_Flash_InitVars = { +EffectSsProfile Effect_Ss_Fhg_Flash_Profile = { EFFECT_SS_FHG_FLASH, EffectSsFhgFlash_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_Fire_Tail/z_eff_ss_fire_tail.c b/src/overlays/effects/ovl_Effect_Ss_Fire_Tail/z_eff_ss_fire_tail.c index a08d8af13..1fab3c757 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Fire_Tail/z_eff_ss_fire_tail.c +++ b/src/overlays/effects/ovl_Effect_Ss_Fire_Tail/z_eff_ss_fire_tail.c @@ -25,7 +25,7 @@ u32 EffectSsFireTail_Init(PlayState* play, u32 index, EffectSs* this, void* init void EffectSsFireTail_Draw(PlayState* play, u32 index, EffectSs* this); void EffectSsFireTail_Update(PlayState* play, u32 index, EffectSs* this); -EffectSsInit Effect_Ss_Fire_Tail_InitVars = { +EffectSsProfile Effect_Ss_Fire_Tail_Profile = { EFFECT_SS_FIRE_TAIL, EffectSsFireTail_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_G_Fire/z_eff_ss_g_fire.c b/src/overlays/effects/ovl_Effect_Ss_G_Fire/z_eff_ss_g_fire.c index d82c9cb41..351fadab7 100644 --- a/src/overlays/effects/ovl_Effect_Ss_G_Fire/z_eff_ss_g_fire.c +++ b/src/overlays/effects/ovl_Effect_Ss_G_Fire/z_eff_ss_g_fire.c @@ -11,7 +11,7 @@ u32 EffectSsGFire_Init(PlayState* play, u32 index, EffectSs* this, void* initPar void EffectSsGFire_Draw(PlayState* play, u32 index, EffectSs* this); void EffectSsGFire_Update(PlayState* play, u32 index, EffectSs* this); -EffectSsInit Effect_Ss_G_Fire_InitVars = { +EffectSsProfile Effect_Ss_G_Fire_Profile = { EFFECT_SS_G_FIRE, EffectSsGFire_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_G_Magma/z_eff_ss_g_magma.c b/src/overlays/effects/ovl_Effect_Ss_G_Magma/z_eff_ss_g_magma.c index 4e9dc378a..f93bb0e7d 100644 --- a/src/overlays/effects/ovl_Effect_Ss_G_Magma/z_eff_ss_g_magma.c +++ b/src/overlays/effects/ovl_Effect_Ss_G_Magma/z_eff_ss_g_magma.c @@ -11,7 +11,7 @@ u32 EffectSsGMagma_Init(PlayState* play, u32 index, EffectSs* this, void* initPa void EffectSsGMagma_Draw(PlayState* play, u32 index, EffectSs* this); void EffectSsGMagma_Update(PlayState* play, u32 index, EffectSs* this); -EffectSsInit Effect_Ss_G_Magma_InitVars = { +EffectSsProfile Effect_Ss_G_Magma_Profile = { EFFECT_SS_G_MAGMA, EffectSsGMagma_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_G_Magma2/z_eff_ss_g_magma2.c b/src/overlays/effects/ovl_Effect_Ss_G_Magma2/z_eff_ss_g_magma2.c index e3eaaa136..eb0ae6122 100644 --- a/src/overlays/effects/ovl_Effect_Ss_G_Magma2/z_eff_ss_g_magma2.c +++ b/src/overlays/effects/ovl_Effect_Ss_G_Magma2/z_eff_ss_g_magma2.c @@ -32,7 +32,7 @@ static void* sTextures[] = { object_kingdodongo_Tex_0308E0, }; -EffectSsInit Effect_Ss_G_Magma2_InitVars = { +EffectSsProfile Effect_Ss_G_Magma2_Profile = { EFFECT_SS_G_MAGMA2, EffectSsGMagma2_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_G_Ripple/z_eff_ss_g_ripple.c b/src/overlays/effects/ovl_Effect_Ss_G_Ripple/z_eff_ss_g_ripple.c index c629cecba..48a2eec4f 100644 --- a/src/overlays/effects/ovl_Effect_Ss_G_Ripple/z_eff_ss_g_ripple.c +++ b/src/overlays/effects/ovl_Effect_Ss_G_Ripple/z_eff_ss_g_ripple.c @@ -24,7 +24,7 @@ u32 EffectSsGRipple_Init(PlayState* play, u32 index, EffectSs* this, void* initP void EffectSsGRipple_Draw(PlayState* play, u32 index, EffectSs* this); void EffectSsGRipple_Update(PlayState* play, u32 index, EffectSs* this); -EffectSsInit Effect_Ss_G_Ripple_InitVars = { +EffectSsProfile Effect_Ss_G_Ripple_Profile = { EFFECT_SS_G_RIPPLE, EffectSsGRipple_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_G_Spk/z_eff_ss_g_spk.c b/src/overlays/effects/ovl_Effect_Ss_G_Spk/z_eff_ss_g_spk.c index 0b7c5cdd9..8f82e2ce0 100644 --- a/src/overlays/effects/ovl_Effect_Ss_G_Spk/z_eff_ss_g_spk.c +++ b/src/overlays/effects/ovl_Effect_Ss_G_Spk/z_eff_ss_g_spk.c @@ -24,7 +24,7 @@ void EffectSsGSpk_Update(PlayState* play, u32 index, EffectSs* this); void EffectSsGSpk_UpdateNoAccel(PlayState* play, u32 index, EffectSs* this); void EffectSsGSpk_Draw(PlayState* play, u32 index, EffectSs* this); -EffectSsInit Effect_Ss_G_Spk_InitVars = { +EffectSsProfile Effect_Ss_G_Spk_Profile = { EFFECT_SS_G_SPK, EffectSsGSpk_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_G_Splash/z_eff_ss_g_splash.c b/src/overlays/effects/ovl_Effect_Ss_G_Splash/z_eff_ss_g_splash.c index fe65984f5..4e7c26308 100644 --- a/src/overlays/effects/ovl_Effect_Ss_G_Splash/z_eff_ss_g_splash.c +++ b/src/overlays/effects/ovl_Effect_Ss_G_Splash/z_eff_ss_g_splash.c @@ -15,7 +15,7 @@ u32 EffectSsGSplash_Init(PlayState* play, u32 index, EffectSs* this, void* initP void EffectSsGSplash_Draw(PlayState* play, u32 index, EffectSs* this); void EffectSsGSplash_Update(PlayState* play, u32 index, EffectSs* this); -EffectSsInit Effect_Ss_G_Splash_InitVars = { +EffectSsProfile Effect_Ss_G_Splash_Profile = { EFFECT_SS_G_SPLASH, EffectSsGSplash_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.c b/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.c index 2085eff57..dac031106 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.c +++ b/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.c @@ -20,7 +20,7 @@ void EffectSsHahen_DrawGray(PlayState* play, u32 index, EffectSs* this); void EffectSsHahen_Draw(PlayState* play, u32 index, EffectSs* this); void EffectSsHahen_Update(PlayState* play, u32 index, EffectSs* this); -EffectSsInit Effect_Ss_Hahen_InitVars = { +EffectSsProfile Effect_Ss_Hahen_Profile = { EFFECT_SS_HAHEN, EffectSsHahen_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_HitMark/z_eff_ss_hitmark.c b/src/overlays/effects/ovl_Effect_Ss_HitMark/z_eff_ss_hitmark.c index 87e1ab519..8a67d26fa 100644 --- a/src/overlays/effects/ovl_Effect_Ss_HitMark/z_eff_ss_hitmark.c +++ b/src/overlays/effects/ovl_Effect_Ss_HitMark/z_eff_ss_hitmark.c @@ -36,7 +36,7 @@ static void* sTextures[] = { gEffHitMark7Tex, gEffHitMark8Tex, }; -EffectSsInit Effect_Ss_HitMark_InitVars = { +EffectSsProfile Effect_Ss_HitMark_Profile = { EFFECT_SS_HITMARK, EffectSsHitMark_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/z_eff_ss_ice_piece.c b/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/z_eff_ss_ice_piece.c index 3a1387276..6c0546258 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/z_eff_ss_ice_piece.c +++ b/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/z_eff_ss_ice_piece.c @@ -17,7 +17,7 @@ u32 EffectSsIcePiece_Init(PlayState* play, u32 index, EffectSs* this, void* init void EffectSsIcePiece_Draw(PlayState* play, u32 index, EffectSs* this); void EffectSsIcePiece_Update(PlayState* play, u32 index, EffectSs* this); -EffectSsInit Effect_Ss_Ice_Piece_InitVars = { +EffectSsProfile Effect_Ss_Ice_Piece_Profile = { EFFECT_SS_ICE_PIECE, EffectSsIcePiece_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/z_eff_ss_ice_smoke.c b/src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/z_eff_ss_ice_smoke.c index 790d157a7..580122009 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/z_eff_ss_ice_smoke.c +++ b/src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/z_eff_ss_ice_smoke.c @@ -15,7 +15,7 @@ u32 EffectSsIceSmoke_Init(PlayState* play, u32 index, EffectSs* this, void* init void EffectSsIceSmoke_Draw(PlayState* play, u32 index, EffectSs* this); void EffectSsIceSmoke_Update(PlayState* play, u32 index, EffectSs* this); -EffectSsInit Effect_Ss_Ice_Smoke_InitVars = { +EffectSsProfile Effect_Ss_Ice_Smoke_Profile = { EFFECT_SS_ICE_SMOKE, EffectSsIceSmoke_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_K_Fire/z_eff_ss_k_fire.c b/src/overlays/effects/ovl_Effect_Ss_K_Fire/z_eff_ss_k_fire.c index 5a613a2f8..00371cf3c 100644 --- a/src/overlays/effects/ovl_Effect_Ss_K_Fire/z_eff_ss_k_fire.c +++ b/src/overlays/effects/ovl_Effect_Ss_K_Fire/z_eff_ss_k_fire.c @@ -18,7 +18,7 @@ u32 EffectSsKFire_Init(PlayState* play, u32 index, EffectSs* this, void* initPar void EffectSsKFire_Draw(PlayState* play, u32 index, EffectSs* this); void EffectSsKFire_Update(PlayState* play, u32 index, EffectSs* this); -EffectSsInit Effect_Ss_K_Fire_InitVars = { +EffectSsProfile Effect_Ss_K_Fire_Profile = { EFFECT_SS_K_FIRE, EffectSsKFire_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.c b/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.c index 29c243f68..d861f234a 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.c +++ b/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.c @@ -26,7 +26,7 @@ void EffectSsKakera_Update(PlayState* play, u32 index, EffectSs* this); void func_809A9BA8(EffectSs* this, PlayState* play); -EffectSsInit Effect_Ss_Kakera_InitVars = { +EffectSsProfile Effect_Ss_Kakera_Profile = { EFFECT_SS_KAKERA, EffectSsKakera_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_KiraKira/z_eff_ss_kirakira.c b/src/overlays/effects/ovl_Effect_Ss_KiraKira/z_eff_ss_kirakira.c index 09f9e7917..5973ca9e1 100644 --- a/src/overlays/effects/ovl_Effect_Ss_KiraKira/z_eff_ss_kirakira.c +++ b/src/overlays/effects/ovl_Effect_Ss_KiraKira/z_eff_ss_kirakira.c @@ -27,7 +27,7 @@ void func_809AABF0(PlayState* play, u32 index, EffectSs* this); void func_809AACAC(PlayState* play, u32 index, EffectSs* this); void func_809AAD6C(PlayState* play, u32 index, EffectSs* this); -EffectSsInit Effect_Ss_KiraKira_InitVars = { +EffectSsProfile Effect_Ss_KiraKira_Profile = { EFFECT_SS_KIRAKIRA, EffectSsKiraKira_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_Lightning/z_eff_ss_lightning.c b/src/overlays/effects/ovl_Effect_Ss_Lightning/z_eff_ss_lightning.c index 14c5389e4..0e2560e34 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Lightning/z_eff_ss_lightning.c +++ b/src/overlays/effects/ovl_Effect_Ss_Lightning/z_eff_ss_lightning.c @@ -24,7 +24,7 @@ u32 EffectSsLightning_Init(PlayState* play, u32 index, EffectSs* this, void* ini void EffectSsLightning_Draw(PlayState* play, u32 index, EffectSs* this); void EffectSsLightning_Update(PlayState* play, u32 index, EffectSs* this); -EffectSsInit Effect_Ss_Lightning_InitVars = { +EffectSsProfile Effect_Ss_Lightning_Profile = { EFFECT_SS_LIGHTNING, EffectSsLightning_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_Sibuki/z_eff_ss_sibuki.c b/src/overlays/effects/ovl_Effect_Ss_Sibuki/z_eff_ss_sibuki.c index 5ee3a70cb..f22efbbfe 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Sibuki/z_eff_ss_sibuki.c +++ b/src/overlays/effects/ovl_Effect_Ss_Sibuki/z_eff_ss_sibuki.c @@ -23,7 +23,7 @@ u32 EffectSsSibuki_Init(PlayState* play, u32 index, EffectSs* this, void* initPa void EffectSsSibuki_Draw(PlayState* play, u32 index, EffectSs* this); void EffectSsSibuki_Update(PlayState* play, u32 index, EffectSs* this); -EffectSsInit Effect_Ss_Sibuki_InitVars = { +EffectSsProfile Effect_Ss_Sibuki_Profile = { EFFECT_SS_SIBUKI, EffectSsSibuki_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_Sibuki2/z_eff_ss_sibuki2.c b/src/overlays/effects/ovl_Effect_Ss_Sibuki2/z_eff_ss_sibuki2.c index ae32c1bef..4fbb881e0 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Sibuki2/z_eff_ss_sibuki2.c +++ b/src/overlays/effects/ovl_Effect_Ss_Sibuki2/z_eff_ss_sibuki2.c @@ -22,7 +22,7 @@ u32 EffectSsSibuki2_Init(PlayState* play, u32 index, EffectSs* this, void* initP void EffectSsSibuki2_Draw(PlayState* play, u32 index, EffectSs* this); void EffectSsSibuki2_Update(PlayState* play, u32 index, EffectSs* this); -EffectSsInit Effect_Ss_Sibuki2_InitVars = { +EffectSsProfile Effect_Ss_Sibuki2_Profile = { EFFECT_SS_SIBUKI2, EffectSsSibuki2_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_Solder_Srch_Ball/z_eff_ss_solder_srch_ball.c b/src/overlays/effects/ovl_Effect_Ss_Solder_Srch_Ball/z_eff_ss_solder_srch_ball.c index 1667ac898..ed1d5edcc 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Solder_Srch_Ball/z_eff_ss_solder_srch_ball.c +++ b/src/overlays/effects/ovl_Effect_Ss_Solder_Srch_Ball/z_eff_ss_solder_srch_ball.c @@ -11,7 +11,7 @@ u32 EffectSsSolderSrchBall_Init(PlayState* play, u32 index, EffectSs* this, void* initParamsx); void EffectSsSolderSrchBall_Update(PlayState* play, u32 index, EffectSs* this); -EffectSsInit Effect_Ss_Solder_Srch_Ball_InitVars = { +EffectSsProfile Effect_Ss_Solder_Srch_Ball_Profile = { EFFECT_SS_SOLDER_SRCH_BALL, EffectSsSolderSrchBall_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_Stick/z_eff_ss_stick.c b/src/overlays/effects/ovl_Effect_Ss_Stick/z_eff_ss_stick.c index 5a5362bb4..b3dc6e8a4 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Stick/z_eff_ss_stick.c +++ b/src/overlays/effects/ovl_Effect_Ss_Stick/z_eff_ss_stick.c @@ -15,7 +15,7 @@ u32 EffectSsStick_Init(PlayState* play, u32 index, EffectSs* this, void* initPar void EffectSsStick_Draw(PlayState* play, u32 index, EffectSs* this); void EffectSsStick_Update(PlayState* play, u32 index, EffectSs* this); -EffectSsInit Effect_Ss_Stick_InitVars = { +EffectSsProfile Effect_Ss_Stick_Profile = { EFFECT_SS_STICK, EffectSsStick_Init, }; diff --git a/src/overlays/effects/ovl_Effect_Ss_Stone1/z_eff_ss_stone1.c b/src/overlays/effects/ovl_Effect_Ss_Stone1/z_eff_ss_stone1.c index 45846446f..29901a387 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Stone1/z_eff_ss_stone1.c +++ b/src/overlays/effects/ovl_Effect_Ss_Stone1/z_eff_ss_stone1.c @@ -13,7 +13,7 @@ u32 EffectSsStone1_Init(PlayState* play, u32 index, EffectSs* this, void* initPa void EffectSsStone1_Draw(PlayState* play, u32 index, EffectSs* this); void EffectSsStone1_Update(PlayState* play, u32 index, EffectSs* this); -EffectSsInit Effect_Ss_Stone1_InitVars = { +EffectSsProfile Effect_Ss_Stone1_Profile = { EFFECT_SS_STONE1, EffectSsStone1_Init, }; From 0da402b9de9b6874a7e04f8e9e8333079f61a75e Mon Sep 17 00:00:00 2001 From: cadmic Date: Fri, 2 Aug 2024 17:31:15 -0700 Subject: [PATCH 03/10] Automate fixing BSS ordering (#2009) * Automate fixing BSS ordering * Typo * Some cleanups * Move pragma check after printing BSS info * Some proofreading * multiprocessing, require version, some colors * Tweak output * Black + mypy * Move logging and sys.exit out of helper functions * Use stdout instead of stderr in fix_bss.py * Add suggestion to conflicting offsets error Co-authored-by: Dragorn421 * Remove var = list[T]() * Improve error handling Co-authored-by: Dragorn421 * Add error if no pointers to BSS * Add comment about process_file_worker * Only print updates if stdout is a tty * Use new binary-search-esque candidate generation algorithm Co-authored-by: Dragorn421 * Add Wikipedia link * More comment tweaks --------- Co-authored-by: Dragorn421 --- Makefile | 2 +- src/boot/idle.c | 5 +- src/code/fault.c | 9 +- src/code/main.c | 4 +- src/code/sys_math3d.c | 4 +- src/code/z_actor.c | 5 +- src/code/z_camera.c | 6 +- src/code/z_collision_check.c | 6 +- src/code/z_common_data.c | 5 +- src/code/z_demo.c | 4 +- src/code/z_kaleido_scope_call.c | 5 +- src/code/z_kankyo.c | 10 +- .../actors/ovl_Boss_Ganon/z_boss_ganon.c | 12 +- .../ovl_En_Wonder_Item/z_en_wonder_item.c | 2 +- src/overlays/actors/ovl_En_Xc/z_en_xc.c | 5 +- src/overlays/actors/ovl_Fishing/z_fishing.c | 3 +- .../actors/ovl_player_actor/z_player.c | 13 +- tools/check_ordering.py | 234 ------ tools/fix_bss.py | 705 ++++++++++++++++++ tools/ido_block_numbers.py | 324 +++++++- tools/preprocess.py | 60 +- 21 files changed, 1071 insertions(+), 352 deletions(-) delete mode 100755 tools/check_ordering.py create mode 100755 tools/fix_bss.py diff --git a/Makefile b/Makefile index 11a960949..99f468e13 100644 --- a/Makefile +++ b/Makefile @@ -378,7 +378,7 @@ $(BUILD_DIR)/src/code/jpegdecoder.o: CC := $(CC_OLD) ifeq ($(PERMUTER),) # permuter + preprocess.py misbehaves, permuter doesn't care about rodata diffs or bss ordering so just don't use it in that case # Handle encoding (UTF-8 -> EUC-JP) and custom pragmas -$(BUILD_DIR)/src/%.o: CC := $(PYTHON) tools/preprocess.py $(CC) +$(BUILD_DIR)/src/%.o: CC := $(PYTHON) tools/preprocess.py -v $(VERSION) -- $(CC) endif else diff --git a/src/boot/idle.c b/src/boot/idle.c index 3d62994c4..34b19120d 100644 --- a/src/boot/idle.c +++ b/src/boot/idle.c @@ -1,10 +1,7 @@ #include "global.h" #include "terminal.h" -// For retail BSS ordering, the block number of sMainThread must be 0 or -// just above (the exact upper bound depends on the block numbers assigned to -// extern variables declared in headers). -#pragma increment_block_number 60 +#pragma increment_block_number "gc-eu:64 gc-eu-mq:64" OSThread sMainThread; STACK(sMainStack, 0x900); diff --git a/src/code/fault.c b/src/code/fault.c index 16f1a183f..990285615 100644 --- a/src/code/fault.c +++ b/src/code/fault.c @@ -44,14 +44,7 @@ #include "terminal.h" #include "alloca.h" -// For retail BSS ordering, the block number of sFaultInstance must be 0 or -// just above (the exact upper bound depends on the block numbers assigned to -// extern variables declared in headers). -#if OOT_DEBUG -#pragma increment_block_number 0 -#else -#pragma increment_block_number 20 -#endif +#pragma increment_block_number "gc-eu:64 gc-eu-mq:64 gc-eu-mq-dbg:0" void FaultDrawer_Init(void); void FaultDrawer_SetOsSyncPrintfEnabled(u32 enabled); diff --git a/src/code/main.c b/src/code/main.c index ca72ab0e5..e39e8974b 100644 --- a/src/code/main.c +++ b/src/code/main.c @@ -7,9 +7,7 @@ s32 gScreenWidth = SCREEN_WIDTH; s32 gScreenHeight = SCREEN_HEIGHT; u32 gSystemHeapSize = 0; -// For retail BSS ordering, the block number of gIrqMgr must be greater than the -// the block numbers assigned to extern variables above (declared in variables.h). -#pragma increment_block_number 220 +#pragma increment_block_number "gc-eu:0 gc-eu-mq:0" PreNmiBuff* gAppNmiBufferPtr; Scheduler gScheduler; diff --git a/src/code/sys_math3d.c b/src/code/sys_math3d.c index bb86036ad..b9e712e29 100644 --- a/src/code/sys_math3d.c +++ b/src/code/sys_math3d.c @@ -5,9 +5,7 @@ #include "macros.h" #include "sys_math3d.h" -// For retail BSS ordering, the block number of cbf in Math3D_CylVsCylOverlapCenterDist -// must be 0. -#pragma increment_block_number 108 +#pragma increment_block_number "gc-eu:108 gc-eu-mq:108" s32 Math3D_LineVsLineClosestTwoPoints(Vec3f* lineAPointA, Vec3f* lineAPointB, Vec3f* lineBPointA, Vec3f* lineBPointB, Vec3f* lineAClosestToB, Vec3f* lineBClosestToA); diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 620586961..1da1f1ce3 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -8,8 +8,7 @@ #include "assets/objects/gameplay_dangeon_keep/gameplay_dangeon_keep.h" #include "assets/objects/object_bdoor/object_bdoor.h" -// For retail BSS ordering, the block number of sCurCeilingPoly -// must be between 2 and 243 inclusive. +#pragma increment_block_number "gc-eu:0 gc-eu-mq:0" static CollisionPoly* sCurCeilingPoly; static s32 sCurCeilingBgId; @@ -1906,7 +1905,7 @@ s32 func_8002F9EC(PlayState* play, Actor* actor, CollisionPoly* poly, s32 bgId, return false; } -#pragma increment_block_number 22 +#pragma increment_block_number "gc-eu:22 gc-eu-mq:22" // Local data used for Farore's Wind light (stored in BSS) LightInfo D_8015BC00; diff --git a/src/code/z_camera.c b/src/code/z_camera.c index 4caafe18c..e6edcb6e3 100644 --- a/src/code/z_camera.c +++ b/src/code/z_camera.c @@ -4,9 +4,7 @@ #include "terminal.h" #include "overlays/actors/ovl_En_Horse/z_en_horse.h" -// For retail BSS ordering, the block number of D_8015BD7C -// must be between 88 and 123 inclusive. -#pragma increment_block_number 30 +#pragma increment_block_number "gc-eu:0 gc-eu-mq:0" s16 Camera_RequestSettingImpl(Camera* camera, s16 requestedSetting, s16 flags); s32 Camera_RequestModeImpl(Camera* camera, s16 requestedMode, u8 forceModeChange); @@ -3632,7 +3630,7 @@ s32 Camera_KeepOn3(Camera* camera) { return 1; } -#pragma increment_block_number 100 +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128" s32 Camera_KeepOn4(Camera* camera) { static Vec3f D_8015BD50; diff --git a/src/code/z_collision_check.c b/src/code/z_collision_check.c index 9b0e03131..e78c78fd1 100644 --- a/src/code/z_collision_check.c +++ b/src/code/z_collision_check.c @@ -12,9 +12,7 @@ typedef s32 (*ColChkLineFunc)(PlayState*, CollisionCheckContext*, Collider*, Vec #define SAC_ENABLE (1 << 0) -// For retail BSS ordering, the block number of sparkInit in CollisionCheck_BlueBlood -// must be between 183 and 255 inclusive. -#pragma increment_block_number 50 +#pragma increment_block_number "gc-eu:64 gc-eu-mq:64" #if OOT_DEBUG /** @@ -2695,7 +2693,7 @@ typedef enum { /* 2 */ MASSTYPE_NORMAL } ColChkMassType; -#pragma increment_block_number 253 +#pragma increment_block_number "gc-eu:252 gc-eu-mq:252" /** * Get mass type. Immovable colliders cannot be pushed, while heavy colliders can only be pushed by heavy and immovable diff --git a/src/code/z_common_data.c b/src/code/z_common_data.c index a0588d929..0f40faddc 100644 --- a/src/code/z_common_data.c +++ b/src/code/z_common_data.c @@ -1,9 +1,6 @@ #include "global.h" -// For retail BSS ordering, the block number of D_8015FA88 must be 0 or -// just above (the exact upper bound depends on the block numbers assigned to -// extern variables declared in headers). -#pragma increment_block_number 60 +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128" ALIGNED(16) SaveContext gSaveContext; u32 D_8015FA88; diff --git a/src/code/z_demo.c b/src/code/z_demo.c index 6961ed25b..8f7b9a886 100644 --- a/src/code/z_demo.c +++ b/src/code/z_demo.c @@ -120,9 +120,7 @@ u16 gCamAtSplinePointsAppliedFrame; u16 gCamEyePointAppliedFrame; u16 gCamAtPointAppliedFrame; -// For retail BSS ordering, the block number of sReturnToCamId must be greater -// than that of gCamAtPointAppliedFrame (declared in variables.h). -#pragma increment_block_number 180 +#pragma increment_block_number "gc-eu:0 gc-eu-mq:0" // Cam ID to return to when a scripted cutscene is finished s16 sReturnToCamId; diff --git a/src/code/z_kaleido_scope_call.c b/src/code/z_kaleido_scope_call.c index 7b53b8521..272156f63 100644 --- a/src/code/z_kaleido_scope_call.c +++ b/src/code/z_kaleido_scope_call.c @@ -1,10 +1,7 @@ #include "global.h" #include "terminal.h" -// For retail BSS ordering, the block number of sKaleidoScopeUpdateFunc must be 0 or -// just above (the exact upper bound depends on the block numbers assigned to -// extern variables declared in headers). -#pragma increment_block_number 60 +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128" void (*sKaleidoScopeUpdateFunc)(PlayState* play); void (*sKaleidoScopeDrawFunc)(PlayState* play); diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c index 60f5c651f..c35f0d1dc 100644 --- a/src/code/z_kankyo.c +++ b/src/code/z_kankyo.c @@ -7,10 +7,7 @@ #include "assets/objects/gameplay_keep/gameplay_keep.h" #include "assets/objects/gameplay_field_keep/gameplay_field_keep.h" -// For retail BSS ordering, the block number of sLensFlareUnused must be lower -// than the extern variables declared in the header (e.g. gLightningStrike) -// while the block number of sNGameOverLightNode must be higher. -#pragma increment_block_number 80 +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128" typedef enum { /* 0x00 */ LIGHTNING_BOLT_START, @@ -215,10 +212,7 @@ s16 sLightningFlashAlpha; s16 sSunDepthTestX; s16 sSunDepthTestY; -// These variables could be moved farther down in the file to reduce the amount -// of block number padding here, but currently this causes BSS ordering issues -// for debug. -#pragma increment_block_number 217 +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128" LightNode* sNGameOverLightNode; LightInfo sNGameOverLightInfo; diff --git a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c index cedf0d005..f7144781f 100644 --- a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c +++ b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c @@ -100,21 +100,19 @@ static ColliderCylinderInit sLightBallCylinderInit = { static u8 D_808E4C58[] = { 0, 12, 10, 12, 14, 16, 12, 14, 16, 12, 14, 16, 12, 14, 16, 10, 16, 14 }; static Vec3f sZeroVec = { 0.0f, 0.0f, 0.0f }; -// For retail BSS ordering, the block number of sGanondorf must be 0 or just above. - -// TODO: There's probably a way to do this with less padding by spreading the variables out and moving -// data around. It would be easier if we had more options for controlling BSS ordering in debug. -#pragma increment_block_number 50 +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128" static EnGanonMant* sCape; -#pragma increment_block_number 200 +// TODO: There's probably a way to match BSS ordering with less padding by spreading the variables out and moving +// data around. It would be easier if we had more options for controlling BSS ordering in debug. +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128" static s32 sSeed1; static s32 sSeed2; static s32 sSeed3; -#pragma increment_block_number 200 +#pragma increment_block_number "gc-eu:192 gc-eu-mq:192" static BossGanon* sGanondorf; diff --git a/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c b/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c index 1f8be2586..b9fc75668 100644 --- a/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c +++ b/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c @@ -53,7 +53,7 @@ ActorProfile En_Wonder_Item_Profile = { /**/ NULL, }; -#pragma increment_block_number 1 +#pragma increment_block_number "gc-eu:0 gc-eu-mq:0" static Vec3f sTagPointsFree[9]; static Vec3f sTagPointsOrdered[9]; diff --git a/src/overlays/actors/ovl_En_Xc/z_en_xc.c b/src/overlays/actors/ovl_En_Xc/z_en_xc.c index 3aeacb3f8..6518ec38b 100644 --- a/src/overlays/actors/ovl_En_Xc/z_en_xc.c +++ b/src/overlays/actors/ovl_En_Xc/z_en_xc.c @@ -14,8 +14,7 @@ #include "assets/scenes/dungeons/ice_doukutu/ice_doukutu_scene.h" #include "terminal.h" -// For retail BSS ordering, the block number of sSfxPos -// must be between 0 and 213 inclusive. +#pragma increment_block_number "gc-eu:0 gc-eu-mq:0" #define FLAGS ACTOR_FLAG_4 @@ -1396,7 +1395,7 @@ void func_80B3F3D8(void) { Sfx_PlaySfxCentered2(NA_SE_PL_SKIP); } -#pragma increment_block_number 20 +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128" void EnXc_PlayDiveSFX(Vec3f* src, PlayState* play) { static Vec3f D_80B42DA0; diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index 571e5463e..7149e3b4e 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -11,8 +11,7 @@ #include "ichain.h" #include "terminal.h" -// For retail BSS ordering, the block number of sStreamSfxProjectedPos must be 0. -#pragma increment_block_number 206 +#pragma increment_block_number "gc-eu:206 gc-eu-mq:206" #define FLAGS ACTOR_FLAG_4 diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index aac7839a9..d3dee8adc 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -354,22 +354,19 @@ void Player_Action_CsAction(Player* this, PlayState* play); // .bss part 1 -// For retail BSS ordering, the block number of sDogSpawnPos in Player_Update -// must be between 0 and 53 inclusive. - -// TODO: There's probably a way to do this with less padding by spreading the variables out and moving -// data around. It would be easier if we had more options for controlling BSS ordering in debug. -#pragma increment_block_number 30 +#pragma increment_block_number "gc-eu:0 gc-eu-mq:0" static s32 D_80858AA0; -#pragma increment_block_number 250 +// TODO: There's probably a way to match BSS ordering with less padding by spreading the variables out and moving +// data around. It would be easier if we had more options for controlling BSS ordering in debug. +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128" static s32 D_80858AA4; static Vec3f sInteractWallCheckResult; static Input* sControlInput; -#pragma increment_block_number 50 +#pragma increment_block_number "gc-eu:192 gc-eu-mq:192" // .data diff --git a/tools/check_ordering.py b/tools/check_ordering.py deleted file mode 100755 index 0af2d9a94..000000000 --- a/tools/check_ordering.py +++ /dev/null @@ -1,234 +0,0 @@ -#!/usr/bin/env python3 - -# SPDX-FileCopyrightText: 2024 zeldaret -# SPDX-License-Identifier: CC0-1.0 - - -from __future__ import annotations - -import argparse -import dataclasses -import enum -from pathlib import Path -import sys -from typing import BinaryIO - -import elftools.elf.elffile -import mapfile_parser.mapfile - - -@dataclasses.dataclass -class Reloc: - name: str - offset_32: int | None - offset_hi16: int | None - offset_lo16: int | None - addend: int - - -@dataclasses.dataclass -class Pointer: - name: str - addend: int - base_value: int - build_value: int - - -def read_relocs(object_path: Path, section_name: str) -> list[Reloc]: - with open(object_path, "rb") as f: - elffile = elftools.elf.elffile.ELFFile(f) - symtab = elffile.get_section_by_name(".symtab") - data = elffile.get_section_by_name(section_name).data() - - reloc_section = elffile.get_section_by_name(f".rel{section_name}") - if reloc_section is None: - return [] - - relocs = [] - offset_hi16 = 0 - for reloc in reloc_section.iter_relocations(): - reloc_offset = reloc.entry["r_offset"] - reloc_type = reloc.entry["r_info_type"] - reloc_name = symtab.get_symbol(reloc.entry["r_info_sym"]).name - - if reloc_type == 2: # R_MIPS_32 - offset_32 = reloc_offset - addend = int.from_bytes( - data[reloc_offset : reloc_offset + 4], "big", signed=True - ) - relocs.append(Reloc(reloc_name, offset_32, None, None, addend)) - elif reloc_type == 4: # R_MIPS_26 - pass - elif reloc_type == 5: # R_MIPS_HI16 - offset_hi16 = reloc_offset - elif reloc_type == 6: # R_MIPS_LO16 - offset_lo16 = reloc_offset - addend_hi16 = int.from_bytes( - data[offset_hi16 + 2 : offset_hi16 + 4], "big", signed=False - ) - addend_lo16 = int.from_bytes( - data[offset_lo16 + 2 : offset_lo16 + 4], "big", signed=True - ) - addend = (addend_hi16 << 16) + addend_lo16 - relocs.append(Reloc(reloc_name, None, offset_hi16, offset_lo16, addend)) - else: - raise NotImplementedError(f"Unsupported relocation type: {reloc_type}") - - return relocs - - -def read_u32(f: BinaryIO, offset: int) -> int: - f.seek(offset) - return int.from_bytes(f.read(4), "big") - - -def read_u16(f: BinaryIO, offset: int) -> int: - f.seek(offset) - return int.from_bytes(f.read(2), "big") - - -def read_s16(f: BinaryIO, offset: int) -> int: - f.seek(offset) - return int.from_bytes(f.read(2), "big", signed=True) - - -def main(): - parser = argparse.ArgumentParser( - description="Report bss reorderings between the baserom and the current build " - "by parsing relocations from the built object files and comparing their final values " - "between the baserom and the current build. " - "Assumes that the only differences are due to ordering and that the text sections of the " - "ROMS are not shifted." - ) - parser.add_argument( - "--oot-version", - "-v", - type=str, - default="gc-eu-mq-dbg", - help="OOT version (default: gc-eu-mq-dbg)", - ) - parser.add_argument( - "--segment", - type=str, - help="ROM segment to check, e.g. 'boot', 'code', or 'ovl_player_actor' (default: all)", - ) - parser.add_argument( - "--all-sections", - action="store_true", - help="Check ordering for all section types, not just .bss", - ) - - args = parser.parse_args() - version = args.oot_version - - mapfile = mapfile_parser.mapfile.MapFile() - mapfile.readMapFile(f"build/{version}/oot-{version}.map") - - # Segments built from source code (filtering out assets) - source_code_segments = [] - for mapfile_segment in mapfile: - if ( - args.segment - and mapfile_segment.name != f"..{args.segment}" - and mapfile_segment.name != f"..{args.segment}.bss" - ): - continue - if not ( - mapfile_segment.name.startswith("..boot") - or mapfile_segment.name.startswith("..code") - or mapfile_segment.name.startswith("..buffers") - or mapfile_segment.name.startswith("..ovl_") - ): - continue - source_code_segments.append(mapfile_segment) - - base = open(f"baseroms/{version}/baserom-decompressed.z64", "rb") - build = open(f"build/{version}/oot-{version}.z64", "rb") - - # Find all pointers with different values - pointers = [] - for mapfile_segment in source_code_segments: - for file in mapfile_segment: - if not str(file.filepath).endswith(".o"): - continue - if file.sectionType == ".bss": - continue - for reloc in read_relocs(file.filepath, file.sectionType): - if reloc.offset_32 is not None: - base_value = read_u32(base, file.vrom + reloc.offset_32) - build_value = read_u32(build, file.vrom + reloc.offset_32) - elif reloc.offset_hi16 is not None and reloc.offset_lo16 is not None: - if ( - read_u16(base, file.vrom + reloc.offset_hi16) - != read_u16(build, file.vrom + reloc.offset_hi16) - ) or ( - read_u16(base, file.vrom + reloc.offset_lo16) - != read_u16(build, file.vrom + reloc.offset_lo16) - ): - print( - f"Error: Reference to {reloc.name} in {file.filepath} is in a shifted (or non-matching even ignoring relocs) portion of the ROM.\n" - "Please ensure that the only differences between the baserom and the current build are due to data ordering.", - file=sys.stderr, - ) - sys.exit(1) - - base_value = ( - read_u16(base, file.vrom + reloc.offset_hi16 + 2) << 16 - ) + read_s16(base, file.vrom + reloc.offset_lo16 + 2) - build_value = ( - read_u16(build, file.vrom + reloc.offset_hi16 + 2) << 16 - ) + read_s16(build, file.vrom + reloc.offset_lo16 + 2) - else: - assert False, "Invalid relocation" - - pointers.append( - Pointer(reloc.name, reloc.addend, base_value, build_value) - ) - - # Remove duplicates and sort by baserom address - pointers = list({p.base_value: p for p in pointers}.values()) - pointers.sort(key=lambda p: p.base_value) - - # Go through sections and report differences - for mapfile_segment in source_code_segments: - for file in mapfile_segment: - if not args.all_sections and not file.sectionType == ".bss": - continue - - pointers_in_section = [ - p - for p in pointers - if file.vram <= p.build_value < file.vram + file.size - ] - if not pointers_in_section: - continue - - # Try to detect if the section is shifted by comparing the lowest - # address among any pointer into the section between base and build - base_min_address = min(p.base_value for p in pointers_in_section) - build_min_address = min(p.build_value for p in pointers_in_section) - section_shift = build_min_address - base_min_address - if all( - p.build_value == p.base_value + section_shift - for p in pointers_in_section - ): - continue - - print(f"{file.filepath} {file.sectionType} is reordered:") - for i, p in enumerate(pointers_in_section): - if p.addend > 0: - addend_str = f"+0x{p.addend:X}" - elif p.addend < 0: - addend_str = f"-0x{-p.addend:X}" - else: - addend_str = "" - - if i > 0 and p.build_value < pointers_in_section[i - 1].build_value: - print(" --------------------") # BSS wraps around - print( - f" {p.base_value:08X} -> {p.build_value:08X} {p.name}{addend_str}" - ) - - -if __name__ == "__main__": - main() diff --git a/tools/fix_bss.py b/tools/fix_bss.py new file mode 100755 index 000000000..91ddd07ba --- /dev/null +++ b/tools/fix_bss.py @@ -0,0 +1,705 @@ +#!/usr/bin/env python3 + +# SPDX-FileCopyrightText: 2024 zeldaret +# SPDX-License-Identifier: CC0-1.0 + + +from __future__ import annotations + +import argparse +from collections import Counter +import colorama +from dataclasses import dataclass +import io +import itertools +import multiprocessing +import multiprocessing.pool +from pathlib import Path +import re +import shlex +import sys +import time +from typing import BinaryIO, Iterator + +from ido_block_numbers import ( + generate_make_log, + find_compiler_command_line, + run_cfe, + SymbolTableEntry, + UcodeOp, +) + +import elftools.elf.elffile +import mapfile_parser.mapfile + + +def read_u32(f: BinaryIO, offset: int) -> int: + f.seek(offset) + return int.from_bytes(f.read(4), "big") + + +def read_u16(f: BinaryIO, offset: int) -> int: + f.seek(offset) + return int.from_bytes(f.read(2), "big") + + +def read_s16(f: BinaryIO, offset: int) -> int: + f.seek(offset) + return int.from_bytes(f.read(2), "big", signed=True) + + +class FixBssException(Exception): + pass + + +@dataclass +class Reloc: + name: str + offset_32: int | None + offset_hi16: int | None + offset_lo16: int | None + addend: int + + +@dataclass +class Pointer: + name: str + addend: int + base_value: int + build_value: int + + +# Read relocations from an ELF file section +def read_relocs(object_path: Path, section_name: str) -> list[Reloc]: + with open(object_path, "rb") as f: + elffile = elftools.elf.elffile.ELFFile(f) + symtab = elffile.get_section_by_name(".symtab") + data = elffile.get_section_by_name(section_name).data() + + reloc_section = elffile.get_section_by_name(f".rel{section_name}") + if reloc_section is None: + return [] + + relocs = [] + offset_hi16 = 0 + for reloc in reloc_section.iter_relocations(): + reloc_offset = reloc.entry["r_offset"] + reloc_type = reloc.entry["r_info_type"] + reloc_name = symtab.get_symbol(reloc.entry["r_info_sym"]).name + + if reloc_type == 2: # R_MIPS_32 + offset_32 = reloc_offset + addend = int.from_bytes( + data[reloc_offset : reloc_offset + 4], "big", signed=True + ) + relocs.append(Reloc(reloc_name, offset_32, None, None, addend)) + elif reloc_type == 4: # R_MIPS_26 + pass + elif reloc_type == 5: # R_MIPS_HI16 + offset_hi16 = reloc_offset + elif reloc_type == 6: # R_MIPS_LO16 + offset_lo16 = reloc_offset + addend_hi16 = int.from_bytes( + data[offset_hi16 + 2 : offset_hi16 + 4], "big", signed=False + ) + addend_lo16 = int.from_bytes( + data[offset_lo16 + 2 : offset_lo16 + 4], "big", signed=True + ) + addend = (addend_hi16 << 16) + addend_lo16 + relocs.append(Reloc(reloc_name, None, offset_hi16, offset_lo16, addend)) + else: + raise NotImplementedError(f"Unsupported relocation type: {reloc_type}") + + return relocs + + +def get_file_pointers( + file: mapfile_parser.mapfile.File, + base: BinaryIO, + build: BinaryIO, +) -> list[Pointer]: + pointers = [] + # TODO: open each ELF file only once instead of once per section? + for reloc in read_relocs(file.filepath, file.sectionType): + if reloc.offset_32 is not None: + base_value = read_u32(base, file.vrom + reloc.offset_32) + build_value = read_u32(build, file.vrom + reloc.offset_32) + elif reloc.offset_hi16 is not None and reloc.offset_lo16 is not None: + if ( + read_u16(base, file.vrom + reloc.offset_hi16) + != read_u16(build, file.vrom + reloc.offset_hi16) + ) or ( + read_u16(base, file.vrom + reloc.offset_lo16) + != read_u16(build, file.vrom + reloc.offset_lo16) + ): + raise FixBssException( + f"Reference to {reloc.name} in {file.filepath} is in a shifted or non-matching portion of the ROM.\n" + "Please ensure that the only differences between the baserom and the current build are due to BSS ordering." + ) + + base_value = ( + read_u16(base, file.vrom + reloc.offset_hi16 + 2) << 16 + ) + read_s16(base, file.vrom + reloc.offset_lo16 + 2) + build_value = ( + read_u16(build, file.vrom + reloc.offset_hi16 + 2) << 16 + ) + read_s16(build, file.vrom + reloc.offset_lo16 + 2) + else: + assert False, "Invalid relocation" + + pointers.append(Pointer(reloc.name, reloc.addend, base_value, build_value)) + return pointers + + +base = None +build = None + + +def get_file_pointers_worker_init(version: str): + global base + global build + base = open(f"baseroms/{version}/baserom-decompressed.z64", "rb") + build = open(f"build/{version}/oot-{version}.z64", "rb") + + +def get_file_pointers_worker(file: mapfile_parser.mapfile.File) -> list[Pointer]: + assert base is not None + assert build is not None + return get_file_pointers(file, base, build) + + +# Compare pointers between the baserom and the current build, returning a dictionary from +# C files to a list of pointers into their BSS sections +def compare_pointers(version: str) -> dict[Path, list[Pointer]]: + mapfile_path = Path(f"build/{version}/oot-{version}.map") + if not mapfile_path.exists(): + raise FixBssException(f"Could not open {mapfile_path}") + + mapfile = mapfile_parser.mapfile.MapFile() + mapfile.readMapFile(mapfile_path) + + # Segments built from source code (filtering out assets) + source_code_segments = [] + for mapfile_segment in mapfile: + if not ( + mapfile_segment.name.startswith("..boot") + or mapfile_segment.name.startswith("..code") + or mapfile_segment.name.startswith("..buffers") + or mapfile_segment.name.startswith("..ovl_") + ): + continue + source_code_segments.append(mapfile_segment) + + # Find all pointers with different values + if not sys.stdout.isatty(): + print(f"Comparing pointers between baserom and build ...") + pointers = [] + file_results = [] + with multiprocessing.Pool( + initializer=get_file_pointers_worker_init, + initargs=(version,), + ) as p: + for mapfile_segment in source_code_segments: + for file in mapfile_segment: + if not str(file.filepath).endswith(".o"): + continue + if file.sectionType == ".bss": + continue + file_result = p.apply_async(get_file_pointers_worker, (file,)) + file_results.append(file_result) + + # Report progress and wait until all files are done + num_files = len(file_results) + while True: + time.sleep(0.010) + num_files_done = sum(file_result.ready() for file_result in file_results) + if sys.stdout.isatty(): + print( + f"Comparing pointers between baserom and build ... {num_files_done:>{len(f'{num_files}')}}/{num_files}", + end="\r", + ) + if num_files_done == num_files: + break + if sys.stdout.isatty(): + print("") + + # Collect results and check for errors + for file_result in file_results: + try: + pointers.extend(file_result.get()) + except FixBssException as e: + print(f"{colorama.Fore.RED}Error: {str(e)}{colorama.Fore.RESET}") + sys.exit(1) + + # Remove duplicates and sort by baserom address + pointers = list({p.base_value: p for p in pointers}.values()) + pointers.sort(key=lambda p: p.base_value) + + # Go through sections and collect differences + pointers_by_file = {} + for mapfile_segment in source_code_segments: + for file in mapfile_segment: + if not file.sectionType == ".bss": + continue + + pointers_in_section = [ + p + for p in pointers + if file.vram <= p.build_value < file.vram + file.size + ] + if not pointers_in_section: + continue + + c_file = file.filepath.relative_to(f"build/{version}").with_suffix(".c") + pointers_by_file[c_file] = pointers_in_section + + return pointers_by_file + + +@dataclass +class Pragma: + line_number: int + block_number: int + amount: int + + +# A BSS variable in the source code +@dataclass +class BssVariable: + block_number: int + name: str + size: int + align: int + + +# A BSS variable with its offset in the compiled .bss section +@dataclass +class BssSymbol: + name: str + offset: int + size: int + align: int + + +INCREMENT_BLOCK_NUMBER_RE = re.compile(r"increment_block_number_(\d+)_(\d+)") + + +# Find increment_block_number pragmas by parsing the symbol names generated by preprocess.py. +# This is pretty ugly but it seems more reliable than trying to determine the line numbers of +# BSS variables in the C file. +def find_pragmas(symbol_table: list[SymbolTableEntry]) -> list[Pragma]: + # Keep track of first block number and count for each line number + first_block_number = {} + amounts: Counter[int] = Counter() + for block_number, entry in enumerate(symbol_table): + if match := INCREMENT_BLOCK_NUMBER_RE.match(entry.name): + line_number = int(match.group(1)) + if line_number not in first_block_number: + first_block_number[line_number] = block_number + amounts[line_number] += 1 + + pragmas = [] + for line_number, block_number in sorted(first_block_number.items()): + pragmas.append(Pragma(line_number, block_number, amounts[line_number])) + return pragmas + + +# Find all BSS variables from IDO's symbol table and U-Code output. +def find_bss_variables( + symbol_table: list[SymbolTableEntry], ucode: list[UcodeOp] +) -> list[BssVariable]: + bss_variables = [] + init_block_numbers = set(op.i1 for op in ucode if op.opcode_name == "init") + last_function_name = None + + for op in ucode: + # gsym: file-level global symbol + # lsym: file-level static symbol + # fsym: function-level static symbol + if op.opcode_name in ("gsym", "lsym", "fsym"): + block_number = op.i1 + if block_number in init_block_numbers: + continue # not BSS + + name = symbol_table[block_number].name + if op.opcode_name == "fsym": + name = f"{last_function_name}::{name}" + + size = op.args[0] + align = 1 << op.lexlev + # TODO: IDO seems to automatically align anything with size 8 or more to + # an 8-byte boundary in BSS. Is this correct? + if size >= 8: + align = 8 + + bss_variables.append(BssVariable(block_number, name, size, align)) + elif op.opcode_name == "ent": + last_function_name = symbol_table[op.i1].name + + bss_variables.sort(key=lambda var: var.block_number) + return bss_variables + + +# Predict offsets of BSS variables in the build. +def predict_bss_ordering(variables: list[BssVariable]) -> list[BssSymbol]: + bss_symbols = [] + offset = 0 + # Sort by block number mod 256 (for ties, the original order is preserved) + for var in sorted(variables, key=lambda var: var.block_number % 256): + size = var.size + align = var.align + offset = (offset + align - 1) & ~(align - 1) + bss_symbols.append(BssSymbol(var.name, offset, size, align)) + offset += size + return bss_symbols + + +# Match up BSS variables between the baserom and the build using the pointers from relocations. +# Note that we may not be able to match all variables if a variable is not referenced by any pointer. +def determine_base_bss_ordering( + build_bss_symbols: list[BssSymbol], pointers: list[Pointer] +) -> list[BssSymbol]: + # Assume that the lowest address is the start of the BSS section + base_section_start = min(p.base_value for p in pointers) + build_section_start = min(p.build_value for p in pointers) + + found_symbols: dict[str, BssSymbol] = {} + for p in pointers: + base_offset = p.base_value - base_section_start + build_offset = p.build_value - build_section_start + + new_symbol = None + new_offset = 0 + for symbol in build_bss_symbols: + if ( + symbol.offset <= build_offset + and build_offset < symbol.offset + symbol.size + ): + new_symbol = symbol + new_offset = base_offset - (build_offset - symbol.offset) + break + + if new_symbol is None: + if p.addend > 0: + addend_str = f"+0x{p.addend:X}" + elif p.addend < 0: + addend_str = f"-0x{-p.addend:X}" + else: + addend_str = "" + raise FixBssException( + f"Could not find BSS symbol for pointer {p.name}{addend_str} " + f"(base address 0x{p.base_value:08X}, build address 0x{p.build_value:08X})" + ) + + if new_symbol.name in found_symbols: + # Sanity check that offsets agree + existing_offset = found_symbols[new_symbol.name].offset + if new_offset != existing_offset: + raise FixBssException( + f"BSS symbol {new_symbol.name} found at conflicting offsets in this baserom " + f"(0x{existing_offset:04X} and 0x{new_offset:04X}). Is the build up-to-date?" + ) + else: + found_symbols[new_symbol.name] = BssSymbol( + new_symbol.name, new_offset, new_symbol.size, new_symbol.align + ) + + return list(sorted(found_symbols.values(), key=lambda symbol: symbol.offset)) + + +# Generate a sequence of integers in the range [0, 256) with a 2-adic valuation of exactly `nu`. +# The 2-adic valuation of an integer n is the largest k such that 2^k divides n +# (see https://en.wikipedia.org/wiki/P-adic_valuation), and for convenience we define +# the 2-adic valuation of 0 to be 8. Here's what the sequences look like for nu = 0..8: +# 8: 0 +# 7: 128 +# 6: 64, 192 +# 5: 32, 96, 160, 224 +# 4: 16, 48, 80, 112, ... +# 3: 8, 24, 40, 56, ... +# 2: 4, 12, 20, 28, ... +# 1: 2, 6, 10, 14, ... +# 0: 1, 3, 5, 7, ... +def gen_seq(nu: int) -> Iterator[int]: + if nu == 8: + yield 0 + else: + for i in range(1 << (7 - nu)): + yield (2 * i + 1) * (1 << nu) + + +# Yields all n-tuples of integers in the range [0, 256) with minimum 2-adic valuation +# of exactly `min_nu`. +def gen_candidates_impl(n: int, min_nu: int) -> Iterator[tuple[int, ...]]: + if n == 1: + for n in gen_seq(min_nu): + yield (n,) + else: + # (a, *b) has min 2-adic valuation = min_nu if and only if either: + # a has 2-adic valuation > min_nu and b has min 2-adic valuation == min_nu + # a has 2-adic valuation == min_nu and b has min 2-adic valuation >= min_nu + for min_nu_a in reversed(range(min_nu + 1, 9)): + for a in gen_seq(min_nu_a): + for b in gen_candidates_impl(n - 1, min_nu): + yield (a, *b) + for a in gen_seq(min_nu): + for min_nu_b in reversed(range(min_nu, 9)): + for b in gen_candidates_impl(n - 1, min_nu_b): + yield (a, *b) + + +# Yields all n-tuples of integers in the range [0, 256), ordered by descending minimum +# 2-adic valuation of the elements in the tuple. For example, for n = 2 the sequence is: +# (0, 0), (0, 128), (128, 0), (128, 128), (0, 64), (0, 192), (128, 64), (128, 192), ... +def gen_candidates(n: int) -> Iterator[tuple[int, ...]]: + for nu in reversed(range(9)): + yield from gen_candidates_impl(n, nu) + + +# Determine a new set of increment_block_number pragmas that will fix the BSS ordering. +def solve_bss_ordering( + pragmas: list[Pragma], + bss_variables: list[BssVariable], + base_bss_symbols: list[BssSymbol], +) -> list[Pragma]: + base_symbols_by_name = {symbol.name: symbol for symbol in base_bss_symbols} + + # Our "algorithm" just tries all possible combinations of increment_block_number amounts, + # which can get very slow with more than a few pragmas. But, we order the candidates in a + # binary-search-esque way to try to find a solution faster. + for new_amounts in gen_candidates(len(pragmas)): + # Generate new block numbers + new_bss_variables = [] + for var in bss_variables: + new_block_number = var.block_number + for pragma, new_amount in zip(pragmas, new_amounts): + if var.block_number >= pragma.block_number: + new_block_number += new_amount - pragma.amount + new_bss_variables.append( + BssVariable(new_block_number, var.name, var.size, var.align) + ) + + # Predict new BSS and check if new ordering matches + new_bss_symbols = predict_bss_ordering(new_bss_variables) + + bss_ordering_matches = True + for symbol in new_bss_symbols: + base_symbol = base_symbols_by_name.get(symbol.name) + if base_symbol is None: + continue + if symbol.offset != base_symbol.offset: + bss_ordering_matches = False + break + + if bss_ordering_matches: + new_pragmas = [] + for pragma, new_amount in zip(pragmas, new_amounts): + new_pragmas.append( + Pragma(pragma.line_number, pragma.block_number, new_amount) + ) + return new_pragmas + + raise FixBssException("Could not find any solutions") + + +def update_source_file(version_to_update: str, file: Path, new_pragmas: list[Pragma]): + with open(file, "r", encoding="utf-8") as f: + lines = f.readlines() + + for pragma in new_pragmas: + line = lines[pragma.line_number - 1] + if not line.startswith("#pragma increment_block_number "): + raise FixBssException( + f"Expected #pragma increment_block_number on line {pragma.line_number}" + ) + + # Grab pragma argument and remove quotes + arg = line.strip()[len("#pragma increment_block_number ") + 1 : -1] + + amounts_by_version = {} + for part in arg.split(): + version, amount_str = part.split(":") + amounts_by_version[version] = int(amount_str) + + amounts_by_version[version_to_update] = pragma.amount + new_arg = " ".join( + f"{version}:{amount}" for version, amount in amounts_by_version.items() + ) + new_line = f'#pragma increment_block_number "{new_arg}"\n' + + lines[pragma.line_number - 1] = new_line + + with open(file, "w", encoding="utf-8") as f: + f.writelines(lines) + + +def process_file( + file: Path, + pointers: list[Pointer], + make_log: list[str], + dry_run: bool, + version: str, +): + print(f"{colorama.Fore.CYAN}Processing {file} ...{colorama.Fore.RESET}") + + command_line = find_compiler_command_line(make_log, file) + if command_line is None: + raise FixBssException(f"Could not determine compiler command line for {file}") + + print(f"Compiler command: {shlex.join(command_line)}") + symbol_table, ucode = run_cfe(command_line, keep_files=False) + + bss_variables = find_bss_variables(symbol_table, ucode) + print("BSS variables:") + for var in bss_variables: + i = var.block_number + print( + f" {i:>6} [{i%256:>3}]: size=0x{var.size:04X} align=0x{var.align:X} {var.name}" + ) + + build_bss_symbols = predict_bss_ordering(bss_variables) + print("Current build BSS ordering:") + for symbol in build_bss_symbols: + print( + f" offset=0x{symbol.offset:04X} size=0x{symbol.size:04X} align=0x{symbol.align:X} {symbol.name}" + ) + + if not pointers: + raise FixBssException(f"No pointers to BSS found in ROM for {file}") + + base_bss_symbols = determine_base_bss_ordering(build_bss_symbols, pointers) + print("Baserom BSS ordering:") + for symbol in base_bss_symbols: + print( + f" offset=0x{symbol.offset:04X} size=0x{symbol.size:04X} align=0x{symbol.align:X} {symbol.name}" + ) + + pragmas = find_pragmas(symbol_table) + max_pragmas = 3 + if not pragmas: + raise FixBssException(f"No increment_block_number pragmas found in {file}") + elif len(pragmas) > max_pragmas: + raise FixBssException( + f"Too many increment_block_number pragmas found in {file} (found {len(pragmas)}, max {max_pragmas})" + ) + + print("Solving BSS ordering ...") + new_pragmas = solve_bss_ordering(pragmas, bss_variables, base_bss_symbols) + print("New increment_block_number amounts:") + for pragma in new_pragmas: + print(f" line {pragma.line_number}: {pragma.amount}") + + if not dry_run: + update_source_file(version, file, new_pragmas) + print(f"{colorama.Fore.GREEN}Updated {file}{colorama.Fore.RESET}") + + +def process_file_worker(*x): + # Collect output in a buffer to avoid interleaving output when processing multiple files + old_stdout = sys.stdout + fake_stdout = io.StringIO() + try: + sys.stdout = fake_stdout + process_file(*x) + except Exception as e: + print(f"{colorama.Fore.RED}Error: {str(e)}{colorama.Fore.RESET}") + raise + finally: + sys.stdout = old_stdout + print() + print(fake_stdout.getvalue(), end="") + + +def main(): + parser = argparse.ArgumentParser( + description="Automatically fix BSS ordering by editing increment_block_number pragmas. " + "Assumes that the build is up-to-date and that only differences between the baserom and " + "the current build are due to BSS ordering." + ) + parser.add_argument( + "--oot-version", + "-v", + type=str, + required=True, + help="OOT version", + ) + parser.add_argument( + "--dry-run", + action="store_true", + help="Print changes instead of editing source files", + ) + parser.add_argument( + "files", + metavar="FILE", + nargs="*", + type=Path, + help="Fix BSS ordering for a particular C file (default: all files with BSS differences)", + ) + + args = parser.parse_args() + version = args.oot_version + + pointers_by_file = compare_pointers(version) + + files_with_reordering = [] + for file, pointers in pointers_by_file.items(): + # Try to detect if the section is shifted by comparing the lowest + # address among any pointer into the section between base and build + base_min_address = min(p.base_value for p in pointers) + build_min_address = min(p.build_value for p in pointers) + if not all( + p.build_value - build_min_address == p.base_value - base_min_address + for p in pointers + ): + files_with_reordering.append(file) + + if files_with_reordering: + print("Files with BSS reordering:") + for file in files_with_reordering: + print(f" {file}") + else: + print("No BSS reordering found.") + + if args.files: + files_to_fix = args.files + else: + files_to_fix = files_with_reordering + if not files_to_fix: + return + + print(f"Running make to find compiler command line ...") + make_log = generate_make_log(version) + + with multiprocessing.Pool() as p: + file_results = [] + for file in files_to_fix: + file_result = p.apply_async( + process_file_worker, + ( + file, + pointers_by_file.get(file, []), + make_log, + args.dry_run, + version, + ), + ) + file_results.append(file_result) + + # Wait until all files are done + while not all(file_result.ready() for file_result in file_results): + time.sleep(0.010) + + # Collect results and check for errors + num_successes = sum(file_result.successful() for file_result in file_results) + if num_successes == len(file_results): + print() + print(f"Updated {num_successes}/{len(file_results)} files.") + else: + print() + print( + f"{colorama.Fore.RED}Updated {num_successes}/{len(file_results)} files.{colorama.Fore.RESET}" + ) + sys.exit(1) + + +if __name__ == "__main__": + main() diff --git a/tools/ido_block_numbers.py b/tools/ido_block_numbers.py index 2deb64c79..f45bb9745 100755 --- a/tools/ido_block_numbers.py +++ b/tools/ido_block_numbers.py @@ -14,14 +14,20 @@ # https://github.com/decompals/ultralib/blob/main/tools/mdebug.py # https://www.cs.unibo.it/~solmi/teaching/arch_2002-2003/AssemblyLanguageProgDoc.pdf # https://github.com/decompals/IDO/blob/main/IDO_7.1/dist/compiler_eoe/usr/include/sym.h +# https://github.com/Synray/ido-ucode-utils + +from __future__ import annotations import argparse +from dataclasses import dataclass import itertools from pathlib import Path import platform import struct import subprocess +import shlex import sys +from typing import Optional, Tuple class Header: @@ -157,10 +163,15 @@ def read_string(data, start): return data[start : start + size].decode("ascii") -def print_symbol_table(data): - header = Header(data[0 : Header.SIZE]) +@dataclass +class SymbolTableEntry: + symbol: Optional[Symbol] + name: str + extern: bool - print(f"block [mod 256]: linkage type class name") + +def parse_symbol_table(data: bytes) -> list[SymbolTableEntry]: + header = Header(data[0 : Header.SIZE]) # File descriptors fds = [] @@ -170,15 +181,14 @@ def print_symbol_table(data): ) # Symbol identifiers ("dense numbers") + entries = [] for i in range(header.idnMax): ifd, isym = struct.unpack(">II", read_entry(data, header.cbDnOffset, i, 8)) if isym == 0xFFFFF: - # TODO: is this always a string? - extern = False + sym = None sym_name = "" - st = "string" - sc = "" + extern = False else: extern = ifd == 0x7FFFFFFF if extern: @@ -195,15 +205,251 @@ def print_symbol_table(data): ) ) sym_name = read_string(data, header.cbSsOffset + fd.issBase + sym.iss) - st = sym.symbol_type() - sc = sym.symbol_storage_class() + entries.append(SymbolTableEntry(sym, sym_name, extern)) + + return entries + + +def print_symbol_table(symbol_table: list[SymbolTableEntry]): + print(f"block [mod 256]: linkage type class name") + for i, entry in enumerate(symbol_table): + if not entry.symbol: + # TODO: is this always a string? + st = "string" + sc = "" + else: + st = entry.symbol.symbol_type() + sc = entry.symbol.symbol_storage_class() print( - f'{i:>9} [{i%256:>3}]: {"extern" if extern else "":<7} {st:<10} {sc:<9} {sym_name:<40}' + f'{i:>9} [{i%256:>3}]: {"extern" if entry.extern else "":<7} {st:<10} {sc:<9} {entry.name:<40}' ) -def find_compiler_command_line(filename, oot_version): +@dataclass +class UcodeOp: + opcode: int + opcode_name: str + mtype: int + dtype: int + lexlev: int + i1: int + args: list[int] + string: Optional[bytes] + + +@dataclass +class UcodeOpInfo: + opcode: int + name: str + length: int + has_const: bool + + +UCODE_OP_INFO = [ + UcodeOpInfo(0x00, "abs", 2, False), + UcodeOpInfo(0x01, "add", 2, False), + UcodeOpInfo(0x02, "adj", 4, False), + UcodeOpInfo(0x03, "aent", 4, False), + UcodeOpInfo(0x04, "and", 2, False), + UcodeOpInfo(0x05, "aos", 2, False), + UcodeOpInfo(0x06, "asym", 4, False), + UcodeOpInfo(0x07, "bgn", 4, False), + UcodeOpInfo(0x08, "bgnb", 2, False), + UcodeOpInfo(0x09, "bsub", 2, False), + UcodeOpInfo(0x0A, "cg1", 2, False), + UcodeOpInfo(0x0B, "cg2", 2, False), + UcodeOpInfo(0x0C, "chkh", 2, False), + UcodeOpInfo(0x0D, "chkl", 2, False), + UcodeOpInfo(0x0E, "chkn", 2, False), + UcodeOpInfo(0x0F, "chkt", 2, False), + UcodeOpInfo(0x10, "cia", 4, True), + UcodeOpInfo(0x11, "clab", 4, False), + UcodeOpInfo(0x12, "clbd", 2, False), + UcodeOpInfo(0x13, "comm", 4, True), + UcodeOpInfo(0x14, "csym", 4, False), + UcodeOpInfo(0x15, "ctrl", 4, False), + UcodeOpInfo(0x16, "cubd", 2, False), + UcodeOpInfo(0x17, "cup", 4, False), + UcodeOpInfo(0x18, "cvt", 4, False), + UcodeOpInfo(0x19, "cvtl", 2, False), + UcodeOpInfo(0x1A, "dec", 2, False), + UcodeOpInfo(0x1B, "def", 4, False), + UcodeOpInfo(0x1C, "dif", 4, False), + UcodeOpInfo(0x1D, "div", 2, False), + UcodeOpInfo(0x1E, "dup", 2, False), + UcodeOpInfo(0x1F, "end", 2, False), + UcodeOpInfo(0x20, "endb", 2, False), + UcodeOpInfo(0x21, "ent", 4, False), + UcodeOpInfo(0x22, "ueof", 2, False), + UcodeOpInfo(0x23, "equ", 2, False), + UcodeOpInfo(0x24, "esym", 4, False), + UcodeOpInfo(0x25, "fill", 4, False), + UcodeOpInfo(0x26, "fjp", 2, False), + UcodeOpInfo(0x27, "fsym", 4, False), + UcodeOpInfo(0x28, "geq", 2, False), + UcodeOpInfo(0x29, "grt", 2, False), + UcodeOpInfo(0x2A, "gsym", 4, False), + UcodeOpInfo(0x2B, "hsym", 4, False), + UcodeOpInfo(0x2C, "icuf", 4, False), + UcodeOpInfo(0x2D, "idx", 2, False), + UcodeOpInfo(0x2E, "iequ", 4, False), + UcodeOpInfo(0x2F, "igeq", 4, False), + UcodeOpInfo(0x30, "igrt", 4, False), + UcodeOpInfo(0x31, "ijp", 2, False), + UcodeOpInfo(0x32, "ilda", 6, False), + UcodeOpInfo(0x33, "ildv", 4, False), + UcodeOpInfo(0x34, "ileq", 4, False), + UcodeOpInfo(0x35, "iles", 4, False), + UcodeOpInfo(0x36, "ilod", 4, False), + UcodeOpInfo(0x37, "inc", 2, False), + UcodeOpInfo(0x38, "ineq", 4, False), + UcodeOpInfo(0x39, "init", 6, True), + UcodeOpInfo(0x3A, "inn", 4, False), + UcodeOpInfo(0x3B, "int", 4, False), + UcodeOpInfo(0x3C, "ior", 2, False), + UcodeOpInfo(0x3D, "isld", 4, False), + UcodeOpInfo(0x3E, "isst", 4, False), + UcodeOpInfo(0x3F, "istr", 4, False), + UcodeOpInfo(0x40, "istv", 4, False), + UcodeOpInfo(0x41, "ixa", 2, False), + UcodeOpInfo(0x42, "lab", 4, False), + UcodeOpInfo(0x43, "lbd", 2, False), + UcodeOpInfo(0x44, "lbdy", 2, False), + UcodeOpInfo(0x45, "lbgn", 2, False), + UcodeOpInfo(0x46, "lca", 4, True), + UcodeOpInfo(0x47, "lda", 6, False), + UcodeOpInfo(0x48, "ldap", 2, False), + UcodeOpInfo(0x49, "ldc", 4, True), + UcodeOpInfo(0x4A, "ldef", 4, False), + UcodeOpInfo(0x4B, "ldsp", 2, False), + UcodeOpInfo(0x4C, "lend", 2, False), + UcodeOpInfo(0x4D, "leq", 2, False), + UcodeOpInfo(0x4E, "les", 2, False), + UcodeOpInfo(0x4F, "lex", 2, False), + UcodeOpInfo(0x50, "lnot", 2, False), + UcodeOpInfo(0x51, "loc", 2, False), + UcodeOpInfo(0x52, "lod", 4, False), + UcodeOpInfo(0x53, "lsym", 4, False), + UcodeOpInfo(0x54, "ltrm", 2, False), + UcodeOpInfo(0x55, "max", 2, False), + UcodeOpInfo(0x56, "min", 2, False), + UcodeOpInfo(0x57, "mod", 2, False), + UcodeOpInfo(0x58, "mov", 4, False), + UcodeOpInfo(0x59, "movv", 2, False), + UcodeOpInfo(0x5A, "mpmv", 4, False), + UcodeOpInfo(0x5B, "mpy", 2, False), + UcodeOpInfo(0x5C, "mst", 2, False), + UcodeOpInfo(0x5D, "mus", 4, False), + UcodeOpInfo(0x5E, "neg", 2, False), + UcodeOpInfo(0x5F, "neq", 2, False), + UcodeOpInfo(0x60, "nop", 2, False), + UcodeOpInfo(0x61, "not", 2, False), + UcodeOpInfo(0x62, "odd", 2, False), + UcodeOpInfo(0x63, "optn", 4, False), + UcodeOpInfo(0x64, "par", 4, False), + UcodeOpInfo(0x65, "pdef", 4, False), + UcodeOpInfo(0x66, "pmov", 4, False), + UcodeOpInfo(0x67, "pop", 2, False), + UcodeOpInfo(0x68, "regs", 4, False), + UcodeOpInfo(0x69, "rem", 2, False), + UcodeOpInfo(0x6A, "ret", 2, False), + UcodeOpInfo(0x6B, "rlda", 4, False), + UcodeOpInfo(0x6C, "rldc", 4, True), + UcodeOpInfo(0x6D, "rlod", 4, False), + UcodeOpInfo(0x6E, "rnd", 4, False), + UcodeOpInfo(0x6F, "rpar", 4, False), + UcodeOpInfo(0x70, "rstr", 4, False), + UcodeOpInfo(0x71, "sdef", 4, False), + UcodeOpInfo(0x72, "sgs", 4, False), + UcodeOpInfo(0x73, "shl", 2, False), + UcodeOpInfo(0x74, "shr", 2, False), + UcodeOpInfo(0x75, "sign", 2, False), + UcodeOpInfo(0x76, "sqr", 2, False), + UcodeOpInfo(0x77, "sqrt", 2, False), + UcodeOpInfo(0x78, "ssym", 4, True), + UcodeOpInfo(0x79, "step", 2, False), + UcodeOpInfo(0x7A, "stp", 2, False), + UcodeOpInfo(0x7B, "str", 4, False), + UcodeOpInfo(0x7C, "stsp", 2, False), + UcodeOpInfo(0x7D, "sub", 2, False), + UcodeOpInfo(0x7E, "swp", 4, False), + UcodeOpInfo(0x7F, "tjp", 2, False), + UcodeOpInfo(0x80, "tpeq", 2, False), + UcodeOpInfo(0x81, "tpge", 2, False), + UcodeOpInfo(0x82, "tpgt", 2, False), + UcodeOpInfo(0x83, "tple", 2, False), + UcodeOpInfo(0x84, "tplt", 2, False), + UcodeOpInfo(0x85, "tpne", 2, False), + UcodeOpInfo(0x86, "typ", 4, False), + UcodeOpInfo(0x87, "ubd", 2, False), + UcodeOpInfo(0x88, "ujp", 2, False), + UcodeOpInfo(0x89, "unal", 2, False), + UcodeOpInfo(0x8A, "uni", 4, False), + UcodeOpInfo(0x8B, "vreg", 4, False), + UcodeOpInfo(0x8C, "xjp", 8, False), + UcodeOpInfo(0x8D, "xor", 2, False), + UcodeOpInfo(0x8E, "xpar", 2, False), + UcodeOpInfo(0x8F, "mtag", 2, False), + UcodeOpInfo(0x90, "alia", 2, False), + UcodeOpInfo(0x91, "ildi", 4, False), + UcodeOpInfo(0x92, "isti", 4, False), + UcodeOpInfo(0x93, "irld", 4, False), + UcodeOpInfo(0x94, "irst", 4, False), + UcodeOpInfo(0x95, "ldrc", 4, False), + UcodeOpInfo(0x96, "msym", 4, False), + UcodeOpInfo(0x97, "rcuf", 4, False), + UcodeOpInfo(0x98, "ksym", 4, False), + UcodeOpInfo(0x99, "osym", 4, False), + UcodeOpInfo(0x9A, "irlv", 2, False), + UcodeOpInfo(0x9B, "irsv", 2, False), +] + + +def parse_ucode(ucode: bytes) -> list[UcodeOp]: + ops = [] + pos = 0 + while pos < len(ucode): + opcode = ucode[pos] + mtype = ucode[pos + 1] >> 5 + dtype = ucode[pos + 1] & 0x1F + lexlev = int.from_bytes(ucode[pos + 2 : pos + 4], "big") + i1 = int.from_bytes(ucode[pos + 4 : pos + 8], "big") + pos += 8 + + info = UCODE_OP_INFO[opcode] + size = 4 * info.length + + args = [] + for _ in range(info.length - 2): + args.append(int.from_bytes(ucode[pos : pos + 4], "big")) + pos += 4 + + string = None + if info.has_const: + string_length = int.from_bytes(ucode[pos : pos + 4], "big") + pos += 8 + if dtype in (9, 12, 13, 14, 16) or info.name == "comm": + string = ucode[pos : pos + string_length] + pos += (string_length + 7) & ~7 + + ops.append(UcodeOp(opcode, info.name, mtype, dtype, lexlev, i1, args, string)) + return ops + + +def print_ucode(ucode: list[UcodeOp]): + for op in ucode: + args = " ".join(f"0x{arg:X}" for arg in op.args) + print( + f"{op.opcode_name:<4} mtype={op.mtype:X} dtype={op.dtype:X} lexlev={op.lexlev} i1={op.i1} args={args}", + end="", + ) + if op.string is not None: + print(f" string={op.string!r}", end="") + print() + + +def generate_make_log(oot_version: str) -> list[str]: is_macos = platform.system() == "Darwin" make = "gmake" if is_macos else "make" make_command_line = [ @@ -212,30 +458,28 @@ def find_compiler_command_line(filename, oot_version): "--dry-run", f"VERSION={oot_version}", ] + return subprocess.check_output(make_command_line).decode("utf-8").splitlines() - print(f"Running {make} to find compiler command line ...", file=sys.stderr) - make_output = ( - subprocess.check_output(make_command_line).decode("utf-8").splitlines() - ) +def find_compiler_command_line( + make_log: list[str], filename: Path +) -> Optional[list[str]]: found = 0 - for line in make_output: + for line in make_log: parts = line.split() if "-o" in parts and str(filename) in parts: compiler_command_line = parts found += 1 if found != 1: - print( - f"Could not determine compiler command line for {filename}", file=sys.stderr - ) - sys.exit(1) + return None - print(f'Command line: {" ".join(compiler_command_line)}', file=sys.stderr) return compiler_command_line -def generate_symbol_table(command_line): +def run_cfe( + command_line: list[str], keep_files: bool +) -> Tuple[list[SymbolTableEntry], list[UcodeOp]]: # Assume command line is of the form: # python3 tools/preprocess.py [COMPILER] [COMPILER_ARGS] [INPUT_FILE] input_file = Path(command_line[-1]) @@ -251,11 +495,14 @@ def generate_symbol_table(command_line): subprocess.run(rest + ["-Hf", input_file], check=True) # Read symbol table - return symbol_table_file.read_bytes() + symbol_table = parse_symbol_table(symbol_table_file.read_bytes()) + ucode = parse_ucode(ucode_file.read_bytes()) + return (symbol_table, ucode) finally: # Cleanup - symbol_table_file.unlink(missing_ok=True) - ucode_file.unlink(missing_ok=True) + if not keep_files: + symbol_table_file.unlink(missing_ok=True) + ucode_file.unlink(missing_ok=True) def main(): @@ -270,12 +517,33 @@ def main(): default="gc-eu-mq-dbg", help="OOT version (default: gc-eu-mq-dbg)", ) + parser.add_argument( + "--print-ucode", action="store_true", help="Print cfe ucode output" + ) + parser.add_argument( + "--keep-files", + action="store_true", + help="Keep temporary files (symbol table and ucode)", + ) args = parser.parse_args() - command_line = find_compiler_command_line(args.filename, args.oot_version) - data = generate_symbol_table(command_line) - print_symbol_table(data) + print(f"Running make to find compiler command line ...", file=sys.stderr) + make_log = generate_make_log(args.oot_version) + + command_line = find_compiler_command_line(make_log, args.filename) + if command_line is None: + print( + f"Error: could not determine compiler command line for {filename}", + file=sys.stderr, + ) + sys.exit(1) + print(f"Compiler command: {shlex.join(compiler_command_line)}", file=sys.stderr) + + symbol_table, ucode = run_cfe(command_line, args.keep_files) + print_symbol_table(symbol_table) + if args.print_ucode: + print_ucode(ucode) if __name__ == "__main__": diff --git a/tools/preprocess.py b/tools/preprocess.py index d84c3eef2..df30827f4 100755 --- a/tools/preprocess.py +++ b/tools/preprocess.py @@ -3,13 +3,13 @@ # SPDX-FileCopyrightText: © 2024 ZeldaRET # SPDX-License-Identifier: CC0-1.0 -# Usage: preprocess.py [compile command minus input file...] [single input file] +# Usage: preprocess.py [flags] -- [compile command minus input file...] [single input file] # Preprocess a C file to: # * Re-encode from UTF-8 to EUC-JP (the repo uses UTF-8 for text encoding, but # the strings in the ROM are encoded in EUC-JP) -# * Replace `#pragma increment_block_number N` with `N` fake structs for -# controlling BSS ordering +# * Replace `#pragma increment_block_number` with fake structs for controlling BSS ordering +import argparse from pathlib import Path import os import tempfile @@ -22,39 +22,59 @@ def fail(message): sys.exit(1) -def process_file(filename, input, output): +def process_file(version, filename, input, output): output.write(f'#line 1 "{filename}"\n') for i, line in enumerate(input, start=1): - if line.startswith("#pragma increment_block_number"): - parts = line.split() - if len(parts) != 3: - fail( - f"{filename}:{i}: increment_block_number must be followed by an integer" - ) - try: - amount = int(parts[2]) - except ValueError: - fail( - f"{filename}:{i}: increment_block_number must be followed by an integer" - ) + if line.startswith("#pragma increment_block_number "): + # Grab pragma argument and remove quotes + arg = line.strip()[len("#pragma increment_block_number ") + 1 : -1] + amount = 0 + for part in arg.split(): + kv = part.split(":") + if len(kv) != 2: + fail( + f"{filename}:{i}: increment_block_number must be followed by a list of version:amount pairs" + ) + if kv[0] != version: + continue + try: + amount = int(kv[1]) + except ValueError: + fail( + f"{filename}:{i}: increment_block_number amount must be an integer" + ) + + # Always generate at least one struct so that fix_bss.py can know where the increment_block_number pragmas are + if amount == 0: + amount = 256 + # Write fake structs for BSS ordering for j in range(amount): - output.write(f"struct DummyStruct_{i:05}_{j:03};\n") + output.write(f"struct increment_block_number_{i:05}_{j:03};\n") output.write(f'#line {i + 1} "{filename}"\n') else: output.write(line) def main(): - filename = Path(sys.argv[-1]) + parser = argparse.ArgumentParser() + parser.add_argument("-v", "--oot-version", help="Which version should be processed") + parser.add_argument( + "args", + nargs="+", + ) + + args = parser.parse_args() + + filename = Path(args.args[-1]) with tempfile.TemporaryDirectory(prefix="oot_") as tmpdir: tmpfile = Path(tmpdir) / filename.name with open(filename, mode="r", encoding="utf-8") as input: with open(tmpfile, mode="w", encoding="euc-jp") as output: - process_file(filename, input, output) + process_file(args.oot_version, filename, input, output) - compile_command = sys.argv[1:-1] + ["-I", filename.parent, tmpfile] + compile_command = args.args[:-1] + ["-I", filename.parent, tmpfile] process = subprocess.run(compile_command) return process.returncode From ff2abf36a15f93374b40dd49ecfe215d9881941f Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Sat, 3 Aug 2024 03:20:54 +0200 Subject: [PATCH 04/10] Remove tutorial, link to the latest zeldaret/oot:main revision with it (#2013) * Remove tutorial, link to the latest zeldaret/oot:main revision with it * proofreading here too * rename to decompiling_tutorial --------- Co-authored-by: fig02 --- docs/decompiling_tutorial.md | 10 + docs/tutorial/beginning_decomp.md | 926 ------------------ docs/tutorial/contents.md | 62 -- docs/tutorial/data.md | 648 ------------ docs/tutorial/draw_functions.md | 476 --------- docs/tutorial/helper_scripts.md | 202 ---- .../images/changing_init_prototype.png | Bin 39609 -> 0 bytes docs/tutorial/images/ctx.png | Bin 35739 -> 0 bytes .../images/data_inserted_commented_out.png | Bin 27548 -> 0 bytes docs/tutorial/images/fresh_actor_data.png | Bin 35341 -> 0 bytes docs/tutorial/images/fresh_actor_file.png | Bin 63355 -> 0 bytes .../images/fresh_actor_file_annotated.png | Bin 59988 -> 0 bytes docs/tutorial/images/fresh_actor_header.png | Bin 12879 -> 0 bytes docs/tutorial/images/func_80A87B1C_diff1.png | Bin 50187 -> 0 bytes docs/tutorial/images/func_80A87B1C_diff2.png | Bin 57091 -> 0 bytes docs/tutorial/images/func_80A87B9C_diff1.png | Bin 35868 -> 0 bytes docs/tutorial/images/func_80A87B9C_diff2.png | Bin 40101 -> 0 bytes .../images/init_after_replace_actorthis.png | Bin 81801 -> 0 bytes docs/tutorial/images/init_asm.png | Bin 141441 -> 0 bytes docs/tutorial/images/init_diff1.png | Bin 242910 -> 0 bytes docs/tutorial/images/init_diff2.png | Bin 255715 -> 0 bytes docs/tutorial/images/init_diff3top.png | Bin 83538 -> 0 bytes .../images/permuter_console_output.png | Bin 58310 -> 0 bytes docs/tutorial/images/vbindiff_data_1.png | Bin 95938 -> 0 bytes docs/tutorial/images/vbindiff_data_2.png | Bin 99541 -> 0 bytes docs/tutorial/introduction.md | 74 -- docs/tutorial/merging.md | 97 -- docs/tutorial/object_decomp.md | 174 ---- docs/tutorial/object_decomp_example.md | 258 ----- docs/tutorial/other_functions.md | 830 ---------------- docs/tutorial/pre-decomp.md | 31 - docs/tutorial/types_structs_padding.md | 149 --- 32 files changed, 10 insertions(+), 3927 deletions(-) create mode 100644 docs/decompiling_tutorial.md delete mode 100644 docs/tutorial/beginning_decomp.md delete mode 100644 docs/tutorial/contents.md delete mode 100644 docs/tutorial/data.md delete mode 100644 docs/tutorial/draw_functions.md delete mode 100644 docs/tutorial/helper_scripts.md delete mode 100644 docs/tutorial/images/changing_init_prototype.png delete mode 100644 docs/tutorial/images/ctx.png delete mode 100644 docs/tutorial/images/data_inserted_commented_out.png delete mode 100644 docs/tutorial/images/fresh_actor_data.png delete mode 100644 docs/tutorial/images/fresh_actor_file.png delete mode 100644 docs/tutorial/images/fresh_actor_file_annotated.png delete mode 100644 docs/tutorial/images/fresh_actor_header.png delete mode 100644 docs/tutorial/images/func_80A87B1C_diff1.png delete mode 100644 docs/tutorial/images/func_80A87B1C_diff2.png delete mode 100644 docs/tutorial/images/func_80A87B9C_diff1.png delete mode 100644 docs/tutorial/images/func_80A87B9C_diff2.png delete mode 100644 docs/tutorial/images/init_after_replace_actorthis.png delete mode 100644 docs/tutorial/images/init_asm.png delete mode 100644 docs/tutorial/images/init_diff1.png delete mode 100644 docs/tutorial/images/init_diff2.png delete mode 100644 docs/tutorial/images/init_diff3top.png delete mode 100644 docs/tutorial/images/permuter_console_output.png delete mode 100644 docs/tutorial/images/vbindiff_data_1.png delete mode 100644 docs/tutorial/images/vbindiff_data_2.png delete mode 100644 docs/tutorial/introduction.md delete mode 100644 docs/tutorial/merging.md delete mode 100644 docs/tutorial/object_decomp.md delete mode 100644 docs/tutorial/object_decomp_example.md delete mode 100644 docs/tutorial/other_functions.md delete mode 100644 docs/tutorial/pre-decomp.md delete mode 100644 docs/tutorial/types_structs_padding.md diff --git a/docs/decompiling_tutorial.md b/docs/decompiling_tutorial.md new file mode 100644 index 000000000..a77fb1bb8 --- /dev/null +++ b/docs/decompiling_tutorial.md @@ -0,0 +1,10 @@ +This repository used to contain a tutorial for how to do +decompilation work in the repo. + +It has been less useful as more and more was decompiled, +and also more of a chore to keep up-to-date, so it has been +removed from the repo. + +It is still interesting for historical purposes or for +curiosity, you can find the last version of it in revision +[9963e7f5d5fa8caee329f6b40e393d8a2c45390b](https://github.com/zeldaret/oot/blob/9963e7f5d5fa8caee329f6b40e393d8a2c45390b/docs/tutorial/contents.md). diff --git a/docs/tutorial/beginning_decomp.md b/docs/tutorial/beginning_decomp.md deleted file mode 100644 index 149753d43..000000000 --- a/docs/tutorial/beginning_decomp.md +++ /dev/null @@ -1,926 +0,0 @@ -# Beginning decompilation: the Init function and the Actor struct - -Up: [Contents](contents.md) - -Open the C file and the H file with your actor's name from the appropriate directory in `src/overlays/actors/`. These will be the main files we work with. We will be using EnJj (Lord Jabu Jabu) as our example: despite being a fairly small actor, it has a number of interesting features. - -Each actor has associated to it a data file and one assembly file per function. During the process, we will transfer the contents of all or most of these into the main C file. VSCode's search feature usually makes it quite easy to find the appropriate files without troubling the directory tree. - -## Anatomy of the C file - -The actor file starts off looking like: - -![Fresh actor file annotated](images/fresh_actor_file_annotated.png) - -It is currently divided into six sections as follows: - -1. Preliminary description of the actor. This is not present for all actors, but gives a short description based on what we know about the actor already. It may be inaccurate, so feel free to correct it after you understand the actor better. - -2. Specific `include`s and `define`s for the actor. You may need to add more header files, but otherwise this section is unlikely to change. - -3. These are prototypes for the "main four" functions that almost every actor has. You add more functions here if they need to be declared above their first use. - -4. A set of `extern`s. These refer to data that comes from other files, usually in the actor's corresponding object file. They point to addresses in the ROM where assets are stored (usually collision data, animations or display lists). Once the corresponding object files have been decompiled, these will simply be replaced by including the object file (see [Object Decompilation](object_decomp.md) for how this process works). For now, you can put them between blocks 5 and 6 to conform with how the rest of our files are structured. These symbols have been automatically extracted from the MIPS code. There may turn out to be some that were not caught by the script, in which case they need to be placed in the file called `undefined_syms.txt` in the root directory of the project. Ask in Discord for how to do this: it is simple, but rare enough to not be worth covering here. - -5. Commented-out section containing the `InitVars`. This can be ignored until we import the data: it is a section of the actor data that has been imported automatically since, unlike most of the data, it has the same format in every actor. (This image is out of date: actors now also have their ColliderInits in here) - -6. List of functions. Each `#pragma` is letting the compiler use the corresponding assembly file while we do not have decompiled C code for that function. The majority of the decompilation work is converting these functions into C that it looks like a human wrote. - -## Header file - -The header file looks like this at the moment: - -![Fresh actor header](images/fresh_actor_header.png) - -The struct currently contains a variable that is the `Actor` struct, which all actors use one way or another, plus other items. Currently we don't know what those items are, so we have an array of chars as padding instead, just so the struct is the right size. As we understand the actor better, we will be able to gradually replace this padding with the actual variables that the actor uses. - -The header file is also used to declare structs and other information about the actor that is needed globally (e.g. by other actors). - -## Order of decompilation - -The general rule for order of decompilation is -- Start with `Init`, because it usually contains the most information about the structure of the actor. -- Next, decompile any other functions from the actor you have found in `Init`. You generally start with the action functions, because they return nothing and all take the same arguments, - -```C -void func_80whatever(EnJj* this, PlayState* play); -``` - -- Decompile each action function in turn until you run out. Along the way, do any other functions in the actor for which you have discovered the argument types. (You are probably better doing depth-first on action functions than breadth-first: it's normally easier to follow along one branch of the actions than ) - -- After you've run out, do `Update`. This usually provides the rest of the function tree, apart from posibly some Draw functions. - -- Finally, do the draw functions. - -The above is a rough ordering for the beginner. As you become more experienced, you can deviate from this scheme, but the general principle remains that you should work on functions that you already know something about. - -## Data - -![Fresh actor data](images/fresh_actor_data.png) - -Associated to each actor is a `.data` file, containing data that the actor uses. This ranges from spawn positions, to display lists, to even some cutscene data. Since the structure of the data is very inconsistent between actors, automatic importing has been very limited, so the vast majority must be done manually. - -There are two ways of transfering the data into an actor: we can either -- import it all naively as words (`s32`s), which will still allow it to compile, and sort out the actual types later, or -- we can extern each piece of data as we come across it, and come back to it later when we have a better idea of what it is. - -We will concentrate on the second here; the other is covered in [the document about data](data.md). Thankfully this means we essentially don't have to do anything to the data yet. Nevertheless, it is often quite helpful to copy over at least some of the data and leave it commented out for later replacement. *Data must go in the same order as in the data file, and data is "all or nothing": you cannot only import some of it*. - -![Data copied in and commented out](images/data_inserted_commented_out.png) - -**WARNING** The way in which the data was extracted from the ROM means that there are sometimes "fake symbols" in the data, which have to be removed to avoid confusing the compiler. Thankfully it will turn out that this is not the case here, although there will be other data issues. - -(Sometimes it is useful to import the data in the middle of doing functions: you just have to choose an appropriate moment.) - - -Some actors also have a `.bss` file. This is just data that is initialised to 0, and can be imported immediately once you know what type it is, by declaring it without giving it a value. - -## Init - -The Init function sets up the various components of the actor when it is first loaded. It is hence usually very useful for finding out what is in the actor struct, and so we usually start with it. (Some people like starting with Destroy, which is usually shorter and simpler, but gives some basic information about the actor, but Init is probably best for beginners.) - -### mips2c - -The first stage of decompilation is done by a program called mips2c or mips_to_c, which constructs a C interpretation of the assembly code based on reading it very literally. This means that considerable cleanup will be required to turn it into something that firstly compiles at all, and secondly looks like a human wrote it, let alone a Zelda developer from the late '90s. - -The web version of mips2c can be found [here](https://simonsoftware.se/other/mips_to_c.py). There is also a downloadable version, but let's just use the online one for now. - -Since the actor depends on the rest of the codebase, we can't expect to get much intelligible out of mips2c without giving it some context. We make this using a Python script in the `tools` directory called `m2ctx.py`, so run -``` -$ ./tools/m2ctx.py -``` -from the main directory of the repository. In this case, the C file is `src/overlays/actors/ovl_En_Jj/z_en_jj.c`. This generates a file called `ctx.c` in the main directory of the repository. Open this file in a text editor (Notepad will do) and copy the whole contents into the "Existing C source, preprocessed" box. - -![Copying the context](images/ctx.png) - -Now, open the file containing the assembly for `EnJj_Init`. - -![Copying the Init asm](images/init_asm.png) - -Copy the entire contents of this file into the upper box, labelled "MIPS assembly". Now, for Init (and also the other "main 4" functions `Destroy`, `Update` and `Draw`), the function's first argument is `Actor* thisx`. But we would like mips2c to use the fields in the actual actor struct; we can make it do this by deliberately changing the prototype of the `EnJj_Init` in the pasted context to have first argument `EnJj* this` instead. - -![Changing init prototype](images/changing_init_prototype.png) - -Now press "Decompile". This should produce C code: -```C -void EnJj_Init(EnJj *this, PlayState *play) { - CollisionHeader *sp4C; - DynaCollisionContext *sp44; - DynaCollisionContext *temp_a1; - DynaCollisionContext *temp_a1_2; - DynaCollisionContext *temp_a1_3; - char *temp_v0_2; - s16 temp_v0; - - sp4C = NULL; - Actor_ProcessInitChain((Actor *) this, &D_80A88CE0); - ActorShape_Init(&this->actor.shape, 0.0f, NULL, 0.0f); - temp_v0 = this->actor.params; - temp_a1 = this + 0x164; - [...] -``` - -Typically for all buth the simplest functions, there is a lot that needs fixing before we are anywhere near seeing how close we are to the original code. You will notice that mips2c creates a lot of temporary variables. Usually most of these will turn out to not be real, and we need to remove the right ones to get the code to match. - -First, change the first argument back to `Actor* thisx` so that the function matches its prototype above. To allow the function to find the variables, we need another correction. Half of this has already been done at the top of the function, where we have - -```C -#define THIS ((EnJj*)thisx) -``` - -To do the other half, write the following at the beginning of the function, before any declarations: - -```C -EnJj* this = THIS; -``` - -Now everything points to the right place, even though the argument of the function seems inconsistent with the contents. - -(This step is only necessary for the "main 4" functions, and sometimes functions that are used by these: it relates to how such functions are used outside the actor.) - -While we are carrying out initial changes, you can also find-and-replace any instances of `(Actor *) this` by `&this->actor`. The function now looks like this: - -
- - Large code block, click to show. - - -```C -void EnJj_Init(Actor *thisx, PlayState *play) { - EnJj* this = THIS; - - CollisionHeader *sp4C; - DynaCollisionContext *sp44; - DynaCollisionContext *temp_a1; - DynaCollisionContext *temp_a1_2; - DynaCollisionContext *temp_a1_3; - char *temp_v0_2; - s16 temp_v0; - - sp4C = NULL; - Actor_ProcessInitChain(&this->actor, &D_80A88CE0); - ActorShape_Init(&this->actor.shape, 0.0f, NULL, 0.0f); - temp_v0 = this->actor.params; - temp_a1 = this + 0x164; - if (temp_v0 == -1) { - sp44 = temp_a1; - SkelAnime_InitFlex(play, (SkelAnime *) temp_a1, (FlexSkeletonHeader *) &D_0600B9A8, (AnimationHeader *) &D_06001F4C, this + 0x1A8, this + 0x22C, 0x16); - Animation_PlayLoop((SkelAnime *) sp44, (AnimationHeader *) &D_06001F4C); - this->unk30A = (u16)0; - this->unk30E = (u8)0; - this->unk30F = (u8)0; - this->unk310 = (u8)0; - this->unk311 = (u8)0; - if ((*(&gSaveContext + 0xEDA) & 0x400) != 0) { - func_80A87800(this, &func_80A87BEC); - } else { - func_80A87800(this, &func_80A87C30); - } - this->unk300 = Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, (u16)0x5A, this->actor.world.pos.x - 10.0f, this->actor.world.pos.y, this->actor.world.pos.z, 0, (?32) this->actor.world.rot.y, 0, 0); - DynaPolyActor_Init((DynaPolyActor *) this, 0); - CollisionHeader_GetVirtual((void *) &D_06000A1C, &sp4C); - this->unk_14C = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->actor, sp4C); - temp_a1_3 = this + 0x2B0; - sp44 = temp_a1_3; - Collider_InitCylinder(play, (ColliderCylinder *) temp_a1_3); - Collider_SetCylinder(play, (ColliderCylinder *) temp_a1_3, &this->actor, &D_80A88CB4); - this->actor.colChkInfo.mass = 0xFF; - return; - } - if (temp_v0 == 0) { - DynaPolyActor_Init((DynaPolyActor *) this, 0); - CollisionHeader_GetVirtual((void *) &D_06001830, &sp4C); - temp_a1_2 = &play->colCtx.dyna; - sp44 = temp_a1_2; - temp_v0_2 = DynaPoly_SetBgActor(play, temp_a1_2, &this->actor, sp4C); - this->unk_14C = temp_v0_2; - func_8003ECA8(play, temp_a1_2, (s32) temp_v0_2); - this->actor.update = &func_80A87F44; - this->actor.draw = NULL; - Actor_SetScale(&this->actor, 0.087f); - return; - } - if (temp_v0 != 1) { - return; - } - DynaPolyActor_Init((DynaPolyActor *) this, 0); - CollisionHeader_GetVirtual((void *) &D_0600BA8C, &sp4C); - this->unk_14C = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->actor, sp4C); - this->actor.update = &func_80A87F44; - this->actor.draw = NULL; - Actor_SetScale(&this->actor, 0.087f); -} -``` - -
- -In the next sections, we shall sort out the various initialisation functions that occur in Init. There are several types, and one of the reasons we are using EnJj as the example is that it has several of the most common ones. A disadvantage of this actor is that it has an unusually complicated Init: we can see that it does three different things depending on the value of its params. - -### Init chains - -Almost always, one of the first items in `Init` is a function that looks like - -```C -Actor_ProcessInitChain(&this->actor, &D_80A88CE0); -``` - -which initialises common properties of actor using an InitChain, which is usually somewhere near the top of the data, in this case in the variable `D_80A88CE0`. Although we don't need to do this now since we we will extern the data, we might as well work out what it is now. Fortunately, we have a script to do this. - -The InitChain script is also in the tools directory, and is called `ichaindis.py`. Simply passing it the ROM address will spit out the entire contents of the InitChain, in this case: - -``` -$ ./tools/ichaindis.py baseroms/gc-eu-mq-dbg/baserom-decompressed.z64 80A88CE0 -static InitChainEntry sInitChain[] = { - ICHAIN_VEC3F_DIV1000(unk_50, 87, ICHAIN_CONTINUE), - ICHAIN_F32(unk_F4, 4000, ICHAIN_CONTINUE), - ICHAIN_F32(unk_F8, 3300, ICHAIN_CONTINUE), - ICHAIN_F32(unk_FC, 1100, ICHAIN_STOP), -}; -``` - -However, some of these variables have now been given names in the Actor struct. Pass it `--names` to fill these in automatically: -``` -$ ./tools/ichaindis.py --names baseroms/gc-eu-mq-dbg/baserom-decompressed.z64 80A88CE0 -static InitChainEntry sInitChain[] = { - ICHAIN_VEC3F_DIV1000(scale, 87, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneScale, 3300, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneDownward, 1100, ICHAIN_STOP), -}; -``` - -Replace the commented-out .words for the `glabel D_80A88CE0` with this, and comment it out, instead adding -```C -extern InitChainEntry D_80A88CE0[]; - -``` -above it: - -```C -extern InitChainEntry D_80A88CE0[]; -// static InitChainEntry sInitChain[] = { -// ICHAIN_VEC3F_DIV1000(scale, 87, ICHAIN_CONTINUE), -// ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE), -// ICHAIN_F32(uncullZoneScale, 3300, ICHAIN_CONTINUE), -// ICHAIN_F32(uncullZoneDownward, 1100, ICHAIN_STOP), -// }; -``` - -(We will come back and actually import it after doing the rest of the actor.) - -Since this is an array, we do not need the `&` in the function any more, which leaves us with -```C -Actor_ProcessInitChain(&this->actor, D_80A88CE0); -``` - -in `EnJj_Init`. - -### DynaPoly - -Glancing through the rest of `EnJj_Init`, we notice some references to DynaPoly, for example -```C -DynaPolyActor_Init((DynaPolyActor *) this, 0); -CollisionHeader_GetVirtual((void *) &D_06000A1C, &sp4C); -this->unk_14C = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->actor, sp4C); -``` - -This means that EnJj is not an ordinary actor: it is instead a DynaPoly actor. In-game this is to do with how the actor interacts with Link and the environment (a good rule of thumb is that Link can often stand on DynaPoly actors as if they were ground). For decompilation purposes, it means that the actor struct is wrong: the first element of a DynaPoly actor's struct is not an `Actor` struct, but a `DynaPolyActor`, usually called `dyna`. We should fix this immediately to avoid confusion later. (Some actors have this correctly identified already; we were unlucky with this one.) - -Since there's basically nothing in the struct at present, the change is easy to make: replace `Actor actor` with `DynaPolyActor dyna`. Now, `DynaPolyActor` is a different size to `Actor`, so we need to account for that. To find out what size it is, you need to find the definition. In VSCode you can usually Ctrl+Left Click on things to go to where they are defined. Doing so takes us to `z64actor.h`, where most actor-related structs are defined: we find -```C -typedef struct { - /* 0x000 */ Actor actor; - /* 0x14C */ u32 bgId; - /* 0x150 */ f32 unk_150; - /* 0x154 */ f32 unk_154; - /* 0x158 */ s16 unk_158; - /* 0x15A */ u16 unk_15A; - /* 0x15C */ u32 unk_15C; - /* 0x160 */ u8 unk_160; - /* 0x162 */ s16 unk_162; -} DynaPolyActor; // size = 0x164 -``` - -so a `DynaPolyActor` struct is an `Actor` with various other things after it. For now all we care about is the size, i.e. `0x164`. This tells us that the next thing after the `DynaPolyActor` struct in the `EnJj` struct begins at `0x164`, not `0x14C` as it does for `Actor`s. - -So rename the variable to `unk_164` and change the comment to say `0x0164` (the comments don't do anything, they just make it easier to keep track of where everything is when it's named). - -Next we need to adjust the size of the array so that the struct is still the right size. In this case, we just subtract the address of the padding variable from the total size of the struct: -```0x314 - 0x164 = 1B0```. Hence the struct is now -```C -typedef struct EnJj { - /* 0x0000 */ DynaPolyActor dyna; - /* 0x0164 */ char unk_164[0x1B0]; -} EnJj; // size = 0x0314 -``` - -Now that we know this, it is worth remaking the context file and running mips2c again, since we have changed the struct significantly. Doing so, and replacing `(Actor*) this` with `&this->dyna.actor` this time, we find that the block we quoted above has become -```C -DynaPolyActor_Init((DynaPolyActor *) this, 0); -CollisionHeader_GetVirtual((void *) &D_06000A1C, &sp4C); -this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, sp4C); -``` - -Next, replace `(DynaPolyActor *) this` by `&this->dyna`. There's not a lot more we can do to the DynaPoly stuff right now, so just remove the casts to void and move on. - -### Colliders - -The next common thing that actors have is colliders. Not every actor has these, but most do, even if they don't just use them for collision system purposes. - -The relevant functions in this actor are -```C -temp_a1_3 = this + 0x2B0; -sp44 = temp_a1_3; -Collider_InitCylinder(play, (ColliderCylinder *) temp_a1_3); -Collider_SetCylinder(play, (ColliderCylinder *) temp_a1_3, &this->dyna.actor, &D_80A88CB4); -``` - -Notice that `sp44` is set, but actually not used anywhere in the actor. This is a good indication that it is fake. We'll get back to that. Similarly, `temp_a1_3` is only used in these functions, so is likely to be fake as well: it's simply trying to get the pointer into the `a1` register. - -Since mips2c doesn't know about the collider, it has just told us where it is, namely `this + 0x2B0`. So insert a `ColliderCylinder collider` variable in the actor struct, look up its size, and redo the padding. This should give -```C -typedef struct EnJj { - /* 0x0000 */ DynaPolyActor dyna; - /* 0x0164 */ char unk_164[0x14C]; - /* 0x02B0 */ ColliderCylinder collider; - /* 0x02FC */ char unk_2FC[0x18]; -} EnJj; // size = 0x0314 -``` - -Now replace the temps, so we have -```C -Collider_InitCylinder(play, &this->collider); -Collider_SetCylinder(play, &this->collider, &this->dyna.actor, &D_80A88CB4); -``` - -(You may prefer to just comment out temps initially, to keep track of where they were.) - -The last thing we need to deal with is the last variable of `Collider_SetCylinder`, which is again data. - - - -This is already in the actor file in the correct format, all you need to do is add an extern for it underneath: -```C -/* -[...] -*/ -extern ColliderCylinderInit D_80A88CB4; -``` - -Unlike the InitChain, this is not an array, so keep the `&` in the function. - -### SkelAnime - -This is the combined system that handles actors' skeletons and their animations. It is the other significant part of most actor structs. We see its initialisation in this part of the code: -```C -temp_a1 = this->unk_164; -... -sp44 = (DynaCollisionContext *) temp_a1; -SkelAnime_InitFlex(play, (SkelAnime *) temp_a1, (FlexSkeletonHeader *) &D_0600B9A8, (AnimationHeader *) &D_06001F4C, this + 0x1A8, this + 0x22C, 0x16); -Animation_PlayLoop((SkelAnime *) sp44, (AnimationHeader *) &D_06001F4C); -``` - -(Both of the temps are likely to be fake.) - -An actor with SkelAnime has three structs in the Actor struct that handle it: one called SkelAnime, and two arrays of `Vec3s`, called `jointTable` and `overrideDrawTable` (for now). Usually, although not always, they are next to one another. - -There are two different sorts of SkelAnime, although for decompilation purposes there is not much difference between them. From `SkelAnime_InitFlex` we can read off that - -- The `SkelAnime` struct is at `this + 0x164` -- The `jointTable` is at `this + 0x1A8` -- The `overrideDrawTable` is at `this + 0x22C` -- The number of limbs is `0x16 = 22` -- Hence the `jointTable` and `overrideDrawTable` both have `22` elements - -Looking in `z64animation.h`, we find that `SkelAnime` has size `0x44`, and looking in `z64math.h`, that `Vec3s` has size `0x6`. Since ` 0x164 + 0x44 = 0x1A8 `, `jointTable` is immediately after the `SkelAnime`, and since `0x1A8 + 0x6 * 0x16 = 0x22C`, `overrideDrawTable` is immediately after the `jointTable`. Finally, `0x22C + 0x6 * 0x16 = 2B0`, and we have filled all the space between the `dyna` and `collider`. Therefore the struct now looks like -```C -typedef struct EnJj { - /* 0x0000 */ DynaPolyActor dyna; - /* 0x0164 */ SkelAnime skelAnime; - /* 0x01A8 */ Vec3s jointTable[22]; - /* 0x022C */ Vec3s overrideDrawTable[22]; - /* 0x02B0 */ ColliderCylinder collider; - /* 0x02FC */ char unk_2FC[0x18]; -} EnJj; // size = 0x0314 -``` - -The last information we get from the SkelAnime functions is the types of two of the externed symbols: `D_0600B9A8` is a `FlexSkeletonHeader`, and `D_06001F4C` is an `AnimationHeader`. So we can change these in the C file: - -```C -extern UNK_TYPE D_06000A1C; -extern UNK_TYPE D_06001830; -extern AnimationHeader D_06001F4C; -extern FlexSkeletonHeader D_0600B9A8; -extern UNK_TYPE D_0600BA8C; -``` - -and removing the temps, -```C -SkelAnime_InitFlex(play, &this->skelAnime, &D_0600B9A8, &D_06001F4C, this->jointTable, this->morphTable, 22); -Animation_PlayLoop(&this->skelAnime, &D_06001F4C); -``` - -### More struct variables - -This function also gives us information about other things in the struct. One obvious thing that sticks out is -```C -this->unk300 = Actor_SpawnAsChild(&play->actorCtx, &this->dyna.actor, play, (u16)0x5A, this->dyna.actor.world.pos.x - 10.0f, this->dyna.actor.world.pos.y, this->dyna.actor.world.pos.z, 0, (?32) this->dyna.actor.world.rot.y, 0, 0); -``` -Hovering over this function tells us it outputs a pointer to the spawned actor, so `this->unk_300` is an `Actor*`. We may or may not care what this actor actually is, depending on how it is used later on, so let's just add `/* 0x0300 */ Actor* childActor` to the struct for now. - -We can look up what the actor with ID 0x5A is in `z64actor.h`: we find it is `ACTOR_EN_JJ`. So some Jabus spawn another Jabu. Filling this in and removing the spurious cast, we have -```C -this->childActor = Actor_SpawnAsChild(&play->actorCtx, &this->dyna.actor, play, ACTOR_EN_JJ, this->dyna.actor.world.pos.x - 10.0f, this->dyna.actor.world.pos.y, this->dyna.actor.world.pos.z, 0, this->dyna.actor.world.rot.y, 0, 0); -``` - -Finally, we have this block: -```C -this->unk30A = (u16)0; -this->unk30E = (u8)0; -this->unk30F = (u8)0; -this->unk310 = (u8)0; -this->unk311 = (u8)0; -``` -This is not quite as helpful as you might think: it tells us the size of these variables, but despite mips2c's assertion that they are all unsigned, they may actually be signed: you can't tell from the MIPS unless they are loaded: there is only `sh`, but there are both `lh` and `lhu`, for example. There's not much to choose between them when guessing, but generally signed is a better guess with no other context. For unnamed struct variables, our convention is `unk_30A` etc. Adding them to the struct, we end up with -
- - Large code block, click to show. - - -```C -typedef struct EnJj { - /* 0x0000 */ DynaPolyActor dyna; - /* 0x0164 */ SkelAnime skelAnime; - /* 0x01A8 */ Vec3s jointTable[22]; - /* 0x022C */ Vec3s morphTable[22]; - /* 0x02B0 */ ColliderCylinder collider; - /* 0x02FC */ char unk_2FC[0x4]; - /* 0x0300 */ Actor* childActor; - /* 0x0304 */ char unk_304[0x6]; - /* 0x030A */ s16 unk_30A; - /* 0x030C */ char unk_30C[0x2]; - /* 0x030E */ s8 unk_30E; - /* 0x030F */ s8 unk_30F; - /* 0x0310 */ s8 unk_310; - /* 0x0311 */ s8 unk_311; - /* 0x0312 */ char unk_312[0x2]; -} EnJj; // size = 0x0314 -``` - -We can remove a few more temps that don't look real, and end up with -```C -void EnJj_Init(Actor *thisx, PlayState *play) { - EnJj* this = THIS; - - CollisionHeader *sp4C; - // DynaCollisionContext *sp44; - // DynaCollisionContext *temp_a1_2; - // DynaCollisionContext *temp_a1_3; - // char *temp_a1; - s16 temp_v0; - // u32 temp_v0_2; - - sp4C = NULL; - Actor_ProcessInitChain(&this->dyna.actor, D_80A88CE0); - ActorShape_Init(&this->dyna.actor.shape, 0.0f, NULL, 0.0f); - temp_v0 = this->dyna.actor.params; - // temp_a1 = this->unk_164; - if (temp_v0 == -1) { - // sp44 = (DynaCollisionContext *) temp_a1; - SkelAnime_InitFlex(play, &this->skelAnime, &D_0600B9A8, &D_06001F4C, this->jointTable, this->morphTable, 22); - Animation_PlayLoop(&this->skelAnime, &D_06001F4C); - this->unk_30A = 0; - this->unk_30E = 0; - this->unk_30F = 0; - this->unk_310 = 0; - this->unk_311 = 0; - if ((*(&gSaveContext + 0xEDA) & 0x400) != 0) { - func_80A87800(this, &func_80A87BEC); - } else { - func_80A87800(this, &func_80A87C30); - } - this->childActor = Actor_SpawnAsChild(&play->actorCtx, &this->dyna.actor, play, ACTOR_EN_JJ, this->dyna.actor.world.pos.x - 10.0f, this->dyna.actor.world.pos.y, this->dyna.actor.world.pos.z, 0, this->dyna.actor.world.rot.y, 0, 0); - DynaPolyActor_Init(&this->dyna, 0); - CollisionHeader_GetVirtual(&D_06000A1C, &sp4C); - this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, sp4C); - // temp_a1_3 = this + 0x2B0; - // sp44 = temp_a1_3; - Collider_InitCylinder(play, &this->collider); - Collider_SetCylinder(play, &this->collider, &this->dyna.actor, &D_80A88CB4); - this->dyna.actor.colChkInfo.mass = 0xFF; - return; - } - if (temp_v0 == 0) { - DynaPolyActor_Init(&this->dyna, 0); - CollisionHeader_GetVirtual(&D_06001830, &sp4C); - // temp_a1_2 = &play->colCtx.dyna; - // sp44 = temp_a1_2; - this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, sp4C); - func_8003ECA8(play, &play->colCtx.dyna, this->dyna.bgId); - this->dyna.actor.update = &func_80A87F44; - this->dyna.actor.draw = NULL; - Actor_SetScale(&this->dyna.actor, 0.087f); - return; - } - if (temp_v0 != 1) { - return; - } - DynaPolyActor_Init(&this->dyna, 0); - CollisionHeader_GetVirtual(&D_0600BA8C, &sp4C); - this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, sp4C); - this->dyna.actor.update = &func_80A87F44; - this->dyna.actor.draw = NULL; - Actor_SetScale(&this->dyna.actor, 0.087f); -} -``` -
- -This will still not compile without errors: we need to know what the functions it calls are. - -### Functions called - -Function pointers do not need `&`, so remove all those. There are three functions that are called in this actor. Firstly, `this->dyna.actor.update = func_80A87F44;` tells us that `func_80A87F44` is an alternative update function for this actor. We therefore give it a prototype similar to the original Update: -```C -void EnJj_Init(Actor* thisx, PlayState* play); -void EnJj_Destroy(Actor* thisx, PlayState* play); -void EnJj_Update(Actor* thisx, PlayState* play); -void EnJj_Draw(Actor* thisx, PlayState* play); - -void func_80A87F44(Actor* thisx, PlayState* play); -``` - -Unfortunately the others are not so easy to deal with. In order to find out what type the functions called by `func_80A87800`, we have to look at `func_80A87800` itself. But fortunately, this is the entire MIPS for `func_80A87800`: - -```MIPS -glabel func_80A87800 -/* 00000 80A87800 03E00008 */ jr $ra -/* 00004 80A87804 AC8502FC */ sw $a1, 0x02FC($a0) ## 000002FC -``` - -This is simple enough to read that we don't even need to appeal to mips2c: it saves its second argument into its first argument `+ 0x2FC`. Many actors use this type of function, which we call `SetupAction`: it simply changes the action function. - -*Action functions* are the main other kind of function in most actors: they are usually run by Update every frame, and carry out the main actions that the actor does (hence the name). They all have the same arguments, and so we have a typedef for such things: it is -```C -typedef void (*EnJjActionFunc)(struct EnJj*, PlayState*); -``` -Put this between `struct EnJj;` and the actor struct in the header file. This also gives us another bit of the struct, conveniently plugging the gap at `0x2FC`: -```C -/* 0x02FC */ EnJjActionFunc actionFunc; -``` - -We have actually learnt three useful pieces of information from this, the other two being that the function above Init is simply -```C -void func_80A87800(EnJj* this, EnJjActionFunc actionFunc) { - this->actionFunc = actionFunc; -} -``` - -and that `func_80A87BEC` and `func_80A87C30`, passed to it in `EnJj_Init`, are action functions. Since they are first used above where they are defined, we prototype them at the top as well, -```C -void EnJj_Init(Actor* thisx, PlayState* play); -void EnJj_Destroy(Actor* thisx, PlayState* play); -void EnJj_Update(Actor* thisx, PlayState* play); -void EnJj_Draw(Actor* thisx, PlayState* play); - -void func_80A87F44(Actor* thisx, PlayState* play); -void func_80A87BEC(EnJj* this, PlayState* play); -void func_80A87C30(EnJj* this, PlayState* play); -``` - - -### Other pointer issues - -Mips2c is bad at arrays. We see this in the `(*(&gSaveContext + 0xEDA) & 0x400) != 0`, which will actually stop the compiler working. We need to go and look up what this is actually pointing to, and replace it in the code. Following the trail, we find that: - -1. `gSaveContext` is of type `SaveContext` -2. The struct `SaveContext` is defined in `z64save.h` -3. The entry in `SaveContext` that contains `0xEDA` is `/* 0x0ED4 */ u16 eventChkInf[14];` -4. Since `0xEDA - 0xED4 = 0x6`, and `u16`s take up 2 bytes each, we conclude that it is `eventChkInf[3]` that is being referenced. - -Therefore, the condition should be `(gSaveContext.save.info.eventChkInf[3] & 0x400) != 0`. This is a flag comparison, so we can also leave off the `!= 0`. - -With all of this implemented, the function should now compile without errors. The parts of the file that we have changed now look like - -
- - Large code block, click to show. - - -```C -void EnJj_Init(Actor* thisx, PlayState* play); -void EnJj_Destroy(Actor* thisx, PlayState* play); -void EnJj_Update(Actor* thisx, PlayState* play); -void EnJj_Draw(Actor* thisx, PlayState* play); - -void func_80A87F44(Actor* thisx, PlayState* play); -void func_80A87BEC(EnJj* this, PlayState* play); -void func_80A87C30(EnJj* this, PlayState* play); - -#if 0 -ActorInit En_Jj_InitVars = { - /**/ ACTOR_EN_JJ, - /**/ ACTORTYPE_ITEMACTION, - /**/ FLAGS, - /**/ OBJECT_JJ, - /**/ sizeof(EnJj), - /**/ EnJj_Init, - /**/ EnJj_Destroy, - /**/ EnJj_Update, - /**/ EnJj_Draw, -}; -#endif - -extern ColliderCylinderInit D_80A88CB4; -// static ColliderCylinderInit sCylinderInit = { -// { -// COLTYPE_NONE, -// AT_NONE, -// AC_ON | AC_TYPE_PLAYER, -// OC1_ON | OC1_TYPE_ALL, -// OC2_TYPE_1, -// COLSHAPE_CYLINDER, -// }, -// { -// ELEMTYPE_UNK0, -// { 0x00000000, 0x00, 0x00 }, -// { 0x00000004, 0x00, 0x00 }, -// ATELEM_NONE, -// ACELEM_ON, -// OCELEM_ON, -// }, -// { 170, 150, 0, { 0, 0, 0 } }, -// }; - -extern InitChainEntry D_80A88CE0[]; -// static InitChainEntry sInitChain[] = { -// ICHAIN_VEC3F_DIV1000(scale, 87, ICHAIN_CONTINUE), -// ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE), -// ICHAIN_F32(uncullZoneScale, 3300, ICHAIN_CONTINUE), -// ICHAIN_F32(uncullZoneDownward, 1100, ICHAIN_STOP), -// }; - -// glabel D_80A88CF0 -// .word 0xC4C6A000, 0x42540000, 0xC22C0000 -// glabel D_80A88CFC -// .word 0x06007698, 0x06007A98, 0x06007E98, 0x00000000, 0x00000000 - - -extern UNK_TYPE D_06000A1C; -extern UNK_TYPE D_06001830; -extern AnimationHeader D_06001F4C; -extern FlexSkeletonHeader D_0600B9A8; -extern UNK_TYPE D_0600BA8C; - -// #pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Jj/func_80A87800.s") -void func_80A87800(EnJj* this, EnJjActionFunc actionFunc) { - this->actionFunc = actionFunc; -} - -// #pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Jj/EnJj_Init.s") -void EnJj_Init(Actor *thisx, PlayState *play) { - EnJj* this = THIS; - - CollisionHeader *sp4C; - // DynaCollisionContext *sp44; - // DynaCollisionContext *temp_a1_2; - // DynaCollisionContext *temp_a1_3; - // char *temp_a1; - s16 temp_v0; - // u32 temp_v0_2; - - sp4C = NULL; - Actor_ProcessInitChain(&this->dyna.actor, D_80A88CE0); - ActorShape_Init(&this->dyna.actor.shape, 0.0f, NULL, 0.0f); - temp_v0 = this->dyna.actor.params; - // temp_a1 = this->unk_164; - if (temp_v0 == -1) { - // sp44 = (DynaCollisionContext *) temp_a1; - SkelAnime_InitFlex(play, &this->skelAnime, &D_0600B9A8, &D_06001F4C, this->jointTable, this->morphTable, 22); - Animation_PlayLoop(&this->skelAnime, &D_06001F4C); - this->unk_30A = 0; - this->unk_30E = 0; - this->unk_30F = 0; - this->unk_310 = 0; - this->unk_311 = 0; - if ((gSaveContext.save.info.eventChkInf[3] & 0x400) != 0) { - func_80A87800(this, func_80A87BEC); - } else { - func_80A87800(this, func_80A87C30); - } - this->childActor = Actor_SpawnAsChild(&play->actorCtx, &this->dyna.actor, play, ACTOR_EN_JJ, this->dyna.actor.world.pos.x - 10.0f, this->dyna.actor.world.pos.y, this->dyna.actor.world.pos.z, 0, this->dyna.actor.world.rot.y, 0, 0); - DynaPolyActor_Init(&this->dyna, 0); - CollisionHeader_GetVirtual(&D_06000A1C, &sp4C); - this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, sp4C); - // temp_a1_3 = this + 0x2B0; - // sp44 = temp_a1_3; - Collider_InitCylinder(play, &this->collider); - Collider_SetCylinder(play, &this->collider, &this->dyna.actor, &D_80A88CB4); - this->dyna.actor.colChkInfo.mass = 0xFF; - return; - } - if (temp_v0 == 0) { - DynaPolyActor_Init(&this->dyna, 0); - CollisionHeader_GetVirtual(&D_06001830, &sp4C); - // temp_a1_2 = &play->colCtx.dyna; - // sp44 = temp_a1_2; - this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, sp4C); - func_8003ECA8(play, &play->colCtx.dyna, this->dyna.bgId); - this->dyna.actor.update = func_80A87F44; - this->dyna.actor.draw = NULL; - Actor_SetScale(&this->dyna.actor, 0.087f); - return; - } - if (temp_v0 != 1) { - return; - } - DynaPolyActor_Init(&this->dyna, 0); - CollisionHeader_GetVirtual(&D_0600BA8C, &sp4C); - this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, sp4C); - this->dyna.actor.update = func_80A87F44; - this->dyna.actor.draw = NULL; - Actor_SetScale(&this->dyna.actor, 0.087f); -} -``` -
- -## Diff - -Once preliminary cleanup and struct filling is done, most time spent matching functions is done by comparing the original code with the code you have compiled. This is aided by a program called `diff.py`. - -In order to use `diff.py` with the symbol names, we need a copy of the code to compare against. This is done by copying the `build` directory into a directory called `expected`. Copying in Windows on WSL is very slow, so run -``` -$ mkdir expected -cp -r build expected/ -``` -from the main directory of the repository. You should end up with the directory structure `expected/build/...`. - -You may want to do this again when you start renaming functions. *Make sure that you copy an OK build, or you are going to get very confused.* You should also do this again after needing to do a `make clean`. - -Now, we run diff on the function name: in the main directory, -``` -$ ./diff.py -mwo3 EnJj_Init -``` - -(To see what these arguments do, run it with `./diff.py -h` or look in the scripts documentation.) - -This gives the following: - -
- - Large image, click to show. - - -![Init diff 1](images/init_diff1.png) -
- -The code we want is on the left, current code on the right. To spot where the function ends, either look for where stuff is added and subtracted from the stack pointer in successive lines, or for a -```MIPS -jr ra -nop -``` - -The colours mean the following: - -- White/gray is matching lines -- Red is lines missing -- Green is extra lines -- Blue denotes significant differences in instructions, be they just numerical ones, or whole instructions -- Yellow/Gold denotes that instructions are correct but register usage is wrong -- Other colors are used to distinguish incorrectly used registers or stack variables, to make it easy to follow where they are used. -- The colored arrows denote branching. An arrow of one color on the right leads to the arrow of the same color on the left. - -Obviously we want to make the whole thing white. This is the tricky bit: you have to have the imagination to try different things until you get the diff to match. You learn these with experience. - -Generally, the order of what to fix should be: - -1. Control flow (conditionals, where branches go) -2. Instruction ordering and type (functions cannot change order, which is a useful indicator) -3. Regalloc (register allocation) differences -4. Stack differences - -(It is this order because the things that happen earlier can influence the things that happen later.) - -You can keep the diff open in the terminal, and it will refresh when the C file (but not the H file) is changed with these settings. - -In this case, we see that various branches are happening in the wrong place. Here I fear experience is necessary: notice that the function has three blocks that look quite similar, and three separate conditionals that depend on the same variable. This is a good indicator of a switch. Changing the function to use a switch, - -```C -void EnJj_Init(Actor* thisx, PlayState* play) { - EnJj* this = THIS; - - s32 sp4C; - s16 temp_v0; - - sp4C = 0; - Actor_ProcessInitChain(&this->dyna.actor, D_80A88CE0); - ActorShape_Init(&this->dyna.actor.shape, 0.0f, NULL, 0.0f); - temp_v0 = this->dyna.actor.params; - - switch (temp_v0) { - case -1: - SkelAnime_InitFlex(play, &this->skelAnime, &D_0600B9A8, &D_06001F4C, this->jointTable, - this->morphTable, 22); - Animation_PlayLoop(&this->skelAnime, &D_06001F4C); - this->unk_30A = 0; - this->unk_30E = 0; - this->unk_30F = 0; - this->unk_310 = 0; - this->unk_311 = 0; - if ((gSaveContext.save.info.eventChkInf[3] & 0x400) != 0) { - func_80A87800(this, func_80A87BEC); - } else { - func_80A87800(this, func_80A87C30); - } - this->childActor = Actor_SpawnAsChild( - &play->actorCtx, &this->dyna.actor, play, ACTOR_EN_JJ, this->dyna.actor.world.pos.x - 10.0f, - this->dyna.actor.world.pos.y, this->dyna.actor.world.pos.z, 0, this->dyna.actor.world.rot.y, 0, 0); - DynaPolyActor_Init(&this->dyna, 0); - CollisionHeader_GetVirtual(&D_06000A1C, &sp4C); - this->dyna.bgId = - DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, sp4C); - Collider_InitCylinder(play, &this->collider); - Collider_SetCylinder(play, &this->collider, &this->dyna.actor, &D_80A88CB4); - this->dyna.actor.colChkInfo.mass = 0xFF; - break; - case 0: - DynaPolyActor_Init(&this->dyna, 0); - CollisionHeader_GetVirtual(&D_06001830, &sp4C); - // temp_a1_2 = &play->colCtx.dyna; - // sp44 = temp_a1_2; - this->dyna.bgId = - DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, sp4C); - func_8003ECA8(play, &play->colCtx.dyna, this->dyna.bgId); - this->dyna.actor.update = func_80A87F44; - this->dyna.actor.draw = NULL; - Actor_SetScale(&this->dyna.actor, 0.087f); - break; - case 1: - DynaPolyActor_Init(&this->dyna, 0); - CollisionHeader_GetVirtual(&D_0600BA8C, &sp4C); - this->dyna.bgId = - DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, sp4C); - this->dyna.actor.update = func_80A87F44; - this->dyna.actor.draw = NULL; - Actor_SetScale(&this->dyna.actor, 0.087f); - break; - } -} -``` - -we see that the diff is nearly correct (note that `-3` lets you compare current with previous): - -
- - Large image, click to show. - - -![Init diff 2](images/init_diff2.png) -
- -except we still have some stack issues. Now that `temp_v0` is only used once, it looks fake. Eliminating it actually seems to make the stack worse. To fix this, we employ something that we have evidence that the developers did: namely, we make a copy of `play` (the theory is that they actually used `gameState` as an argument of the main 4 functions, just like we used `Actor* thisx` as the first argument.) The quick way to do this is to change the top of the function to -```C -void EnJj_Init(Actor* thisx, PlayState* play2) { - PlayState* play = play2; - EnJj* this = THIS; - ... -``` - -It turns out that this is enough to completely fix the diff: - -![Init diff 2](images/init_diff3top.png) -(last two edits, only top shown for brevity) - -Everything *looks* fine, but we only know for sure when we run `make`. Thankfully doing so gives -``` -oot-gc-eu-mq-dbg.z64: OK -``` - -which is either a sense of triumph or relief depending on how long you've spent on a function. - -And with that, we have successfully matched our first function. (Or first two counting `func_80A87800`) - -**N.B** Notice that we don't yet have much idea of what this code actually does: this should be clarified by going through the rest of the actor's functions, which is discussed in the next document. - -Next: [Other functions in the actor](other_functions.md) diff --git a/docs/tutorial/contents.md b/docs/tutorial/contents.md deleted file mode 100644 index c3279a437..000000000 --- a/docs/tutorial/contents.md +++ /dev/null @@ -1,62 +0,0 @@ -# Getting started - -## [Introduction to decomp](introduction.md) -- What we are doing -- Structure of the code - -## Pre-decompilation -- Building the repo (follow the instructions in the README.md) -- Most of us use VSCode. (You can watch Fig's video to get an idea of how this can be used). Some useful information is [here](../vscode.md). -- Choosing a first actor (You want something small that has simple interactions with the environment. But OoT is far enough in that there are basically no unreserved actors left anyway now.) - -## Decompilation - -- [Begining decompilation: order, Init and the actor struct](beginning_decomp.md) - - Order of decompilation - - Init and common actor features - - Initchains - - Actors and dynapoly actors - - Colliders - - Skelanime - - - Matching - - Using diff - - control flow (branches) -> instruction ordering -> register allocation -> stack - -- [The rest of the functions in the actor](other_functions.md) - - Order of decompilation - - Action Functions and other functions - - - More on matching: the permuter - -- [Draw functions](draw_functions.md) - -- [Data, migration and non-migration](data.md) - - Importing the data: early and late - - Fake symbols - - Inlining - -## [Object Decompilation](object_decomp.md) -- Object files -- How we decompile objects -- [Example](object_decomp_example.md) - - -## After Decompilation - -- [Preparing to merge](merging.md) - - Preliminary documentation - - Preparing to PR - - Pull Requests - - Trello - -## Appendices -- [Types, Structs and Padding](types_structs_padding.md) (a miscellany of useful stuff) -- [Helper scripts](helper_scripts.md) - -To be written, maybe - -- How we use git and GitHub -- Some notes on the basic structure of N64 MIPS -- Glossary -- Conventions diff --git a/docs/tutorial/data.md b/docs/tutorial/data.md deleted file mode 100644 index bc3bf0765..000000000 --- a/docs/tutorial/data.md +++ /dev/null @@ -1,648 +0,0 @@ -# Data - -## Table of Contents - -- [Data first](#data-first) - * [Example: `EnTg`](#example-entg) -- [Extern and data last](#extern-and-data-last) -- [Fake symbols](#fake-symbols) -- [Inlining](#inlining) - -Each actor's data is stored in a separate file. EnJj's data is in `data/overlays/actors/z_en_jj.data.s`, for example. At some point in the decompilation process we need to convert this raw data into recognisable information for the C to use. - -There are two main ways to do this: either -1. import the data first and type it later, or -2. wait until the data appears in functions, extern it, then import it at the end - -Sometimes something between these two is appropriate: wait until the largest or strangest bits of data appear in functions, get some typing information out of that, and then import it, but for now, let's stick to both of these. - -Both approaches have their advantages and disadvantages. - -## Data first - - -This way is good for smaller actors with little data. It is not really suitable for EnJj, for example, because of the enormous section of data labelled as `D_80A88164`. - -### Example: `EnTg` - -We give a simple example of this approach with a small NPC actor, EnTg, that is, the spinning couple. - -The data file looks like - -
- -Large code block, click to show - - -``` -.include "macro.inc" - - /* assembler directives */ - .set noat /* allow manual use of $at */ - .set noreorder /* don't insert nops after branches */ - .set gp=64 /* allow use of 64-bit general purpose registers */ - -.section .data - -.balign 16 - -glabel D_80B18910 - .word 0x0A000039, 0x20010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00140040, 0x00000000, 0x00000000 -glabel D_80B1893C - .word 0x00000000, 0x00000000, 0xFF000000 -glabel En_Tg_InitVars - .word 0x01AC0400, 0x00000009, 0x01820000, 0x0000020C -.word EnTg_Init -.word EnTg_Destroy -.word EnTg_Update -.word EnTg_Draw -glabel D_80B18968 - .word 0x00000000, 0x44480000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - - -``` - -
- -We transfer this data into the actor file by pretending it is an array of words. The InitVars have already been processed and inserted into the C file, so just need to be uncommented. Data cannot change order, so the two pieces above the InitVars must stay there. At the end of this process, the top of the file will look like - -
- -Large code block, click to show - - -```C -/* - * File: z_en_tg.c - * Overlay: ovl_En_Tg - * Description: Honey & Darling - */ - -#include "z_en_tg.h" - -#define FLAGS 0x00000009 - -#define THIS ((EnTg*)thisx) - -void EnTg_Init(Actor* thisx, PlayState* play); -void EnTg_Destroy(Actor* thisx, PlayState* play); -void EnTg_Update(Actor* thisx, PlayState* play); -void EnTg_Draw(Actor* thisx, PlayState* play); - -s32 D_80B18910[] = { 0x0A000039, 0x20010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00140040, 0x00000000, 0x00000000 }; - -s32 D_80B1893C[] = { 0x00000000, 0x00000000, 0xFF000000 }; - -ActorInit En_Tg_InitVars = { - /**/ ACTOR_EN_TG, - /**/ ACTORTYPE_NPC, - /**/ FLAGS, - /**/ OBJECT_MU, - /**/ sizeof(EnTg), - /**/ EnTg_Init, - /**/ EnTg_Destroy, - /**/ EnTg_Update, - /**/ EnTg_Draw, -}; - -s32 D_80B18968[] = { 0x00000000, 0x44480000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }; - -extern UNK_TYPE D_06005040; -extern UNK_TYPE D_0600AE40; - -``` - -
- -Now, open the file called `spec` in the base directory, find the section corresponding to EnTg: -``` -beginseg - name "ovl_En_Tg" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tg/z_en_tg.o" - include "$(BUILD_DIR)/data/overlays/actors/z_en_tg.data.o" - include "$(BUILD_DIR)/data/overlays/actors/z_en_tg.reloc.o" -endseg -``` -and comment out the .data line, -``` -beginseg - name "ovl_En_Tg" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tg/z_en_tg.o" - //include "$(BUILD_DIR)/data/overlays/actors/z_en_tg.data.o" - include "$(BUILD_DIR)/data/overlays/actors/z_en_tg.reloc.o" -endseg -``` -to tell the compiler not to look for the data in that file any more. Now run `make -j`, and if you did both steps correctly, you should get `OK`. - -Now carry out the usual steps to decompile `Init`. The usual cleanup and struct population gets us to -```C -void EnTg_Init(Actor *thisx, PlayState *play) { - EnTg *this = THIS; - - ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawFunc_Circle, 28.0f); - SkelAnime_InitFlex(play, &this->skelAnime, &D_0600AE40, &D_06005040, 0, 0, 0); - Collider_InitCylinder(play, &this->collider); - Collider_SetCylinder(play, &this->collider, &this->actor, (ColliderCylinderInit *) D_80B18910); - func_80061EFC(&this->actor.colChkInfo, NULL, (CollisionCheckInfoInit2 *) D_80B1893C); - this->actor.unk_1F = 6; - Actor_SetScale(&this->actor, 0.01f); - this->actionFunc = func_80B185C0; - this->unk_208 = play->state.frames & 1; -} -``` -and it remains to deal with the data. mips2c has told us what the types should be. We run `colliderinit` on `D_80B18910` as usual, which gives -``` -$ ./tools/overlayhelpers/colliderinit.py 80B18910 ColliderCylinderInit -ovl_En_Tg: Rom 00ECE1F0:00ECE910 VRam 80B18360:80B18A80 Offset 0005B0 - -static ColliderCylinderInit sCylinderInit = -{ - { COLTYPE_UNK10, 0x00, 0x00, 0x39, 0x20, COLSHAPE_CYLINDER }, - { 0x00, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, 0x00, 0x00, 0x01 }, - { 20, 64, 0, { 0, 0, 0 } }, -}; -``` - -Copy this in below `D_80B18910`, delete the original words of data, change the name back to `D_80B18910`, and put `sCylinderInit` commented out above it: -```C -// sCylinderInit -static ColliderCylinderInit D_80B18910 = -{ - { COLTYPE_UNK10, 0x00, 0x00, 0x39, 0x20, COLSHAPE_CYLINDER }, - { 0x00, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, 0x00, 0x00, 0x01 }, - { 20, 64, 0, { 0, 0, 0 } }, -}; -``` - -For the `CollisionCheckInfoInit2`, we don't have a script to separate it, but you can look in other files to see that it should be separated as -```C -// sColChkInit -CollisionCheckInfoInit2 D_80B1893C = { 0, 0, 0, 0, 0xFF }; -``` - -One more thing needs to change: since both are no longer arrays, we need to make the uses in the functions pointers: -```C -Collider_SetCylinder(play, &this->collider, &this->actor, &D_80B18910); -func_80061EFC(&this->actor.colChkInfo, NULL, &D_80B1893C); -``` - -A quick check of the diff shows that we just need to put the action function set to last, and it matches. - -Following the function tree as usual, we find the only other place any data is used is in `func_80B1871C`. From its use in `EnTg_Draw`, we realise that this is a `PostLimbDraw` function. Giving mips2c the correct prototype, it comes out as -```C -void func_80B1871C(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) { - ? sp18; - - sp18.unk0 = (s32) D_80B18968->unk0; - sp18.unk4 = (s32) D_80B18968[1]; - sp18.unk8 = (s32) D_80B18968[2]; - if (limbIndex == 9) { - Matrix_MultVec3f((Vec3f *) &sp18, thisx + 0x38); - } -} -``` -which clearly doesn't like the words we fed it. We see that `sp18` should be a `Vec3f` from the cast in the `Matrix_MultVec3f`, so the last three words are padding (a `Vec3f` has size `0xC`, and it's not using it like an array), and we can convert it to -```C -Vec3f D_80B18968 = { 0.0f, 800.0f, 0.0f }; -``` -and the function matches as -```C -void func_80B1871C(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) { - EnTg* this = THIS; - - Vec3f sp18 = D_80B18968; - - if (limbIndex == 9) { - Matrix_MultVec3f(&sp18, &this->actor.world2.pos); - } -} -``` -(we can see from the assembly doing `lw` and `sw` rather than `lwc1` and `swc1` that it is doing a struct copy, rather than setting it componentwise). - - -## Extern and data last - -Externing is explained in detail in the document about the [Init function](beginning_decomp.md). To summarize, every time a `D_address` appears that is in the data file, we put a -```C -extern UNK_TYPE D_address; -``` -at the top of the file, in the same order that the data appears in the data file. We can also give it a type if we know what the type actually is (e.g. for colliders, initchains, etc.), and convert the actual data and place it commented-out under the corresponding line. This means we don't have to do everything at once at the end. - -Once we have decompiled enough things to know what the data is, we can import it. The advantage of doing it this way is we should know what type everything is already: in our work on EnJj, for example, we ended up with the following data at the top of the file -```C -extern UNK_TYPE D_80A88164; - -extern ColliderCylinderInit D_80A88CB4; -// static ColliderCylinderInit sCylinderInit = -// { -// { COLTYPE_UNK10, 0x00, 0x09, 0x39, 0x10, COLSHAPE_CYLINDER }, -// { 0x00, { 0x00000000, 0x00, 0x00 }, { 0x00000004, 0x00, 0x00 }, 0x00, 0x01, 0x01 }, -// { 170, 150, 0, { 0, 0, 0 } }, -// }; - -extern InitChainEntry D_80A88CE0[]; -// static InitChainEntry sInitChain[] = { -// ICHAIN_VEC3F_DIV1000(scale, 87, ICHAIN_CONTINUE), -// ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE), -// ICHAIN_F32(uncullZoneScale, 3300, ICHAIN_CONTINUE), -// ICHAIN_F32(uncullZoneDownward, 1100, ICHAIN_STOP), -// }; - -extern Vec3f D_80A88CF0; -// static Vec3f D_80A88CF0 = { -1589.0f, 53.0f, -43.0f }; - -extern Gfx* D_80A88CFC[]; -// static Gfx* D_80A88CFC[] = { 0x06007698, 0x06007A98, 0x06007E98, } -``` -and the only thing we don't know about is the cutscene data `D_80A88164`. - -*Before doing anything else, make sure `make` gives `OK`.* - -First, we tell the compiler to ignore the original data file. To do this, open the file called `spec` in the main directory of the repository, and search for the actor name. You will find a section that looks like -``` -beginseg - name "ovl_En_Jj" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Jj/z_en_jj.o" - include "$(BUILD_DIR)/data/overlays/actors/z_en_jj.data.o" - include "$(BUILD_DIR)/data/overlays/actors/z_en_jj.reloc.o" -endseg -``` -We will eventually remove both of the bottom two lines and replace them with our own reloc file, but for now, just comment out the data line: -``` -beginseg - name "ovl_En_Jj" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Jj/z_en_jj.o" - //include "$(BUILD_DIR)/data/overlays/actors/z_en_jj.data.o" - include "$(BUILD_DIR)/data/overlays/actors/z_en_jj.reloc.o" -endseg -``` - -Next remove all the externs, and uncomment their corresponding commented data: -```C -extern UNK_TYPE D_80A88164; - -static ColliderCylinderInit sCylinderInit = -{ - { COLTYPE_UNK10, 0x00, 0x09, 0x39, 0x10, COLSHAPE_CYLINDER }, - { 0x00, { 0x00000000, 0x00, 0x00 }, { 0x00000004, 0x00, 0x00 }, 0x00, 0x01, 0x01 }, - { 170, 150, 0, { 0, 0, 0 } }, -}; - -static InitChainEntry sInitChain[] = { - ICHAIN_VEC3F_DIV1000(scale, 87, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneScale, 3300, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneDownward, 1100, ICHAIN_STOP), -}; - -static Vec3f D_80A88CF0 = { -1589.0f, 53.0f, -43.0f }; - -static Gfx* D_80A88CFC[] = { 0x06007698, 0x06007A98, 0x06007E98, } -``` -Find-and-replace `D_80A88CB4` and `D_80A88CE0` by `sCylinderInit` and `sInitChain` respectively. Notice the naming scheme: static data symbols always start with `s` in our style. (Unless they are inlined, but we'll worry about that later.) - -We still need to deal with the cutscene data. This is special: because it's so large, it goes in its own file. Make a new file called `z_en_jj_cutscene_data.c` in the same directory as `z_en_jj.c`. Include the actor's header file and `z64cutscene_commands.h`, and put `// clang-format off` and `// clang-format on` in the file (this is so that our formatting script doesn't wreak havoc with the formatting of the cutscene macros). Thus the contents of the file is currently - -```C -#include "z_en_jj.h" -#include "z64cutscene_commands.h" -// clang-format off - -// clang-format on -``` - -Finally, we have a script to convert the cutscene data into macros, namely `csdis.py` in the tools folder. We can just give it the VRAM address that the `D_address` is referring to, and it will output the cs macros: - -
- - (Very) long code block, click to view - - -``` -$ ./tools/csdis.py 80A88164 -ovl_En_Jj: Rom 00E3E3D0:00E3F9E0 VRam 80A87800:80A88E10 Offset 000964 - -static CutsceneData D_80A88164[] = { - CS_BEGIN_CUTSCENE(26, 1629), - CS_PLAYER_CUE_LIST(4), - CS_PLAYER_CUE(PLAYER_CUEID_5, 0, 240, 0x0000, 0x4000, 0x0000, -1732, 52, -44, -1732, 52, -44, 1.1393037197548209e-29f, 0.0f, 1.401298464324817e-45f), - CS_PLAYER_CUE(PLAYER_CUEID_3, 240, 255, 0x0000, 0x4000, 0x0000, -1732, 52, -44, -1732, 52, -44, 1.1393037197548209e-29f, 0.0f, 1.401298464324817e-45f), - CS_PLAYER_CUE(PLAYER_CUEID_6, 255, 285, 0x0000, 0x4000, 0x0000, -1732, 52, -44, -1732, 52, -44, 1.1393037197548209e-29f, 0.0f, 1.401298464324817e-45f), - CS_PLAYER_CUE(PLAYER_CUEID_32, 285, 300, 0x0000, 0xC000, 0x0000, -1732, 52, -44, -1537, 109, -44, 1.1393037197548209e-29f, 0.0f, 1.401298464324817e-45f), - CS_ACTOR_CUE_LIST(68, 4), - CS_ACTOR_CUE(0x0001, 0, 234, 0x0000, 0x4000, 0x0000, -1665, 52, -44, -1665, 52, -44, 1.1393037197548209e-29f, 0.0f, 1.401298464324817e-45f), - CS_ACTOR_CUE(0x0002, 234, 241, 0x41F8, 0x0000, 0x0000, -1665, 52, -44, -1603, 130, -47, 8.857142448425293f, 11.142857551574707f, -8.857142448425293f), - CS_ACTOR_CUE(0x0002, 241, 280, 0x4031, 0x0000, 0x0000, -1603, 130, -47, -549, 130, -52, 27.0256404876709f, 0.0f, -27.0256404876709f), - CS_ACTOR_CUE(0x0003, 280, 300, 0x0000, 0x0000, 0x0000, -549, 130, -52, -549, 130, -52, 0.0f, 0.0f, 0.0f), - CS_ACTOR_CUE_LIST(67, 5), - CS_ACTOR_CUE(0x0001, 0, 93, 0x0000, 0x0000, 0x0000, 0, 51, 124, 0, 51, 124, 0.0f, 0.0f, 0.0f), - CS_ACTOR_CUE(0x0003, 93, 121, 0x0000, 0x0000, 0x0000, 0, 51, 124, 0, 51, 124, 0.0f, 0.0f, 0.0f), - CS_ACTOR_CUE(0x0001, 121, 146, 0x0000, 0x0000, 0x0000, 0, 51, 124, 0, 51, 124, 0.0f, 0.0f, 0.0f), - CS_ACTOR_CUE(0x0002, 146, 241, 0x0000, 0x0000, 0x0000, 0, 51, 124, 0, 51, 124, 0.0f, 0.0f, 0.0f), - CS_ACTOR_CUE(0x0001, 241, 441, 0x0000, 0x0000, 0x0000, 0, 51, 124, 0, 51, 124, 0.0f, 0.0f, 0.0f), - CS_ACTOR_CUE_LIST(69, 3), - CS_ACTOR_CUE(0x0001, 0, 90, 0x0000, 0x0000, 0x0000, 0, -33, 9, 0, -33, 9, 0.0f, 0.0f, 0.0f), - CS_ACTOR_CUE(0x0002, 90, 330, 0x0000, 0x0000, 0x0000, 0, -33, 9, 0, -62, 22, 0.0f, -0.12083332985639572f, 0.0f), - CS_ACTOR_CUE(0x0003, 330, 380, 0x0000, 0x0000, 0x0000, 0, -62, 22, 0, -62, 22, 0.0f, 0.0f, 0.0f), - CS_MISC_LIST(1), - CS_MISC(0x000C, 1095, 1161, 0x0000, 0x00000000, 0xFFFFFFD2, 0x00000000, 0xFFFFFFD0, 0xFFFFFFD2, 0x00000000, 0xFFFFFFD0, 0x00000000, 0x00000000, 0x00000000), - CS_TRANSITION(0x0009, 0, 10), - CS_PLAYER_CUE_LIST(1), - CS_PLAYER_CUE(PLAYER_CUEID_53, 300, 1629, 0x0000, 0x0000, 0x0000, -1630, 52, -52, -1630, 52, -52, 0.0f, 0.0f, 0.0f), - CS_CAM_EYE_SPLINE(0, 1091), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0x015C), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0x016D), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0x017E), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0x0223), - CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0x7065), - CS_CAM_EYE_SPLINE(60, 1151), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1532, 251, 222, 0x015C), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1532, 251, 222, 0x016D), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1532, 251, 222, 0x017E), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1532, 251, 222, 0x0223), - CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.39994430541992f, -1532, 251, 222, 0x7065), - CS_CAM_EYE_SPLINE(90, 351), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1698, 382, 455, 0x0000), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1698, 382, 455, 0xAC34), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1698, 382, 455, 0x4428), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1694, 380, 451, 0x0000), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 32.99989700317383f, -1694, 380, 451, 0xAC10), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 32.99989700317383f, -1694, 380, 451, 0x0000), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 32.99989700317383f, -1694, 380, 451, 0x0000), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 32.99989700317383f, -1694, 380, 451, 0x0164), - CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 32.99989700317383f, -1694, 380, 451, 0xAD78), - CS_CAM_EYE_SPLINE(220, 392), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0x0000), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0xAC34), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0x4428), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0x0000), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0xAC10), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0x0000), - CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0x0000), - CS_CAM_EYE_SPLINE(240, 1331), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945068359375f, -1810, 65, -15, 0x0000), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945068359375f, -1810, 65, -15, 0xAC34), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945068359375f, -1810, 65, -15, 0x4428), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945068359375f, -1810, 65, -15, 0x0000), - CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.599945068359375f, -1810, 65, -15, 0xAC10), - CS_CAM_EYE_SPLINE(280, 1371), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945068359375f, -1531, 95, -7, 0x0000), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945068359375f, -1531, 95, -7, 0xAC34), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945068359375f, -1531, 95, -7, 0x4428), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945068359375f, -1531, 95, -7, 0x0000), - CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.599945068359375f, -1531, 95, -7, 0xAC10), - CS_CAM_EYE_SPLINE(310, 1421), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1717, 83, -59, 0x0000), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1717, 83, -59, 0xAC34), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1649, 177, -59, 0x4428), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1533, 224, -59, 0x0000), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1243, 180, -59, 0xAC10), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -953, 71, -55, 0x0000), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -953, 71, -55, 0x0000), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -953, 71, -55, 0x0164), - CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.39994430541992f, -953, 71, -55, 0xAD78), - CS_CAM_EYE_SPLINE(355, 1466), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.60000228881836f, -1830, 103, 18, 0x0000), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.60000228881836f, -1830, 103, 18, 0xAC34), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.60000228881836f, -1830, 103, 18, 0x4428), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.60000228881836f, -1830, 103, 18, 0x0000), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.60000228881836f, -1830, 103, 18, 0xAC10), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.60000228881836f, -1830, 103, 18, 0x0000), - CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.60000228881836f, -1830, 103, 18, 0x0000), - CS_CAM_AT_SPLINE(0, 1120), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.39994430541992f, -1724, -5, -45, 0x0000), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.39994430541992f, -1724, -5, -45, 0xAC34), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 45.39994430541992f, -1724, -5, -45, 0x4428), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.39994430541992f, -1724, -5, -45, 0x0000), - CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.39994430541992f, -1724, -5, -45, 0xAC10), - CS_CAM_AT_SPLINE(60, 1180), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.39994430541992f, -1440, 241, 134, 0x0000), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.39994430541992f, -1440, 241, 134, 0xAC34), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 45.39994430541992f, -1440, 241, 134, 0x4428), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.39994430541992f, -1440, 241, 134, 0x0000), - CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.39994430541992f, -1440, 241, 134, 0xAC10), - CS_CAM_AT_SPLINE(90, 380), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.39994430541992f, -1610, 348, 373, 0x0000), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.39994430541992f, -1610, 348, 373, 0xAC34), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 45.39994430541992f, -1610, 348, 373, 0x4428), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 35.399906158447266f, -1614, 338, 367, 0x0000), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 32.99989700317383f, -1614, 338, 367, 0xAC10), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 32.99989700317383f, -1614, 338, 367, 0x0000), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 32.99989700317383f, -1614, 338, 367, 0x0000), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 32.99989700317383f, -1614, 338, 367, 0x0164), - CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 32.99989700317383f, -1614, 338, 367, 0xAD78), - CS_CAM_AT_SPLINE(220, 421), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.39994430541992f, -1724, -5, -45, 0x0000), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 70, 45.39994430541992f, -1724, -5, -45, 0xAC34), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 5, 45.39994430541992f, -1724, -5, -45, 0x4428), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 6, 45.79994583129883f, -1593, 150, -146, 0x0000), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.39994430541992f, -1531, 152, -75, 0xAC10), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.39994430541992f, -1531, 152, -75, 0x0000), - CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.39994430541992f, -1531, 152, -75, 0x0000), - CS_CAM_AT_SPLINE(240, 1360), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.599945068359375f, -1712, 74, -37, 0x0000), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.599945068359375f, -1712, 74, -37, 0xAC34), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 45.599945068359375f, -1712, 74, -37, 0x4428), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.599945068359375f, -1712, 74, -37, 0x0000), - CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.599945068359375f, -1712, 74, -37, 0xAC10), - CS_CAM_AT_SPLINE(280, 1400), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.599945068359375f, -1619, 99, -50, 0x0000), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.599945068359375f, -1619, 99, -50, 0xAC34), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 45.599945068359375f, -1619, 99, -50, 0x4428), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.599945068359375f, -1619, 99, -50, 0x0000), - CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.599945068359375f, -1619, 99, -50, 0xAC10), - CS_CAM_AT_SPLINE(310, 1450), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x0B, 30, 90.99960327148438f, -1610, 141, -59, 0x0000), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x09, 10, 90.79960632324219f, -1599, 114, -57, 0xAC34), - CS_CAM_POINT(CS_CAM_CONTINUE, 0xFC, 10, 90.39961242675781f, -1528, 192, -54, 0x4428), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 90.599609375f, -1427, 164, -54, 0x0000), - CS_CAM_POINT(CS_CAM_CONTINUE, 0xCB, 10, 90.39961242675781f, -1138, 119, -37, 0xAC10), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x20, 10, 90.39961242675781f, -832, 50, -51, 0x0000), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 45.39994430541992f, -836, 35, -51, 0x0000), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.39994430541992f, -836, 35, -51, 0x0164), - CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.39994430541992f, -836, 35, -51, 0xAD78), - CS_CAM_AT_SPLINE(355, 1495), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.60000228881836f, -1706, 111, -6, 0x0000), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.60000228881836f, -1706, 111, -6, 0xAC34), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 60.60000228881836f, -1706, 111, -6, 0x4428), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 60.60000228881836f, -1721, 82, -42, 0x0000), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 60.60000228881836f, -1721, 82, -42, 0xAC10), - CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.60000228881836f, -1721, 82, -42, 0x0000), - CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.60000228881836f, -1721, 82, -42, 0x0000), - CS_TRANSITION(0x000B, 335, 342), - CS_DESTINATION(CS_DEST_JABU_JABU, 345, 395), - CS_ACTOR_CUE_LIST(62, 1), - CS_ACTOR_CUE(0x0001, 305, 494, 0x0000, 0x0000, 0x0000, -1399, 452, -53, -1399, 452, -53, 0.0f, 0.0f, 0.0f), - CS_END(), -}; -``` - -
- -Copy this into the file we just made (given the length, you may prefer to `>` it into a file and copy it from there, rather than the terminal itself). Save and close that file: we won't need it any more. - -To replace the `extern`, because the data is in a separate file, we include the file in a particular way: -```C -#include "z_en_jj_cutscene_data.c" EARLY -``` -(`EARLY` is required specifically for cutscene data. See [the definition of the CutsceneData struct](../include/z64cutscene.h) for exactly why.) - -Lastly, uncomment the InitVars block that's been sitting there the whole time. The data section of the file now looks like -```C -ActorInit En_Jj_InitVars = { - /**/ ACTOR_EN_JJ, - /**/ ACTORTYPE_ITEMACTION, - /**/ FLAGS, - /**/ OBJECT_JJ, - /**/ sizeof(EnJj), - /**/ EnJj_Init, - /**/ EnJj_Destroy, - /**/ EnJj_Update, - /**/ EnJj_Draw, -}; - -#include "en_jj_cutscene_data.c" EARLY - -static ColliderCylinderInit sCylinderInit = -{ - { COLTYPE_UNK10, 0x00, 0x09, 0x39, 0x10, COLSHAPE_CYLINDER }, - { 0x00, { 0x00000000, 0x00, 0x00 }, { 0x00000004, 0x00, 0x00 }, 0x00, 0x01, 0x01 }, - { 170, 150, 0, { 0, 0, 0 } }, -}; - -static InitChainEntry sInitChain[] = { - ICHAIN_VEC3F_DIV1000(scale, 87, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneScale, 3300, ICHAIN_CONTINUE), - ICHAIN_F32(uncullZoneDownward, 1100, ICHAIN_STOP), -}; - -static Vec3f D_80A88CF0 = { -1589.0f, 53.0f, -43.0f }; - -static Gfx* D_80A88CFC[] = { 0x06007698, 0x06007A98, 0x06007E98, }; -``` - -That should be everything, and we should now be able to `make` without the data file with no issues - -But running `make`, we get the dreaded Error 1: - -``` -md5sum: WARNING: 1 computed checksum did NOT match -make: *** [Makefile:172: all] Error 1 -``` - -Oh no! What went wrong? - -To find out what went wrong, we need to use `firstdiff.py`. This tells us where our ROM starts to differ: -``` -$ ./firstdiff.py -First difference at ROM addr 0x144F4, gDmaDataTable (RAM 0x80016DA0, ROM 0x12F70, build/asm/dmadata.o) -Bytes: 00:E3:F9:D0 vs 00:E3:F9:E0 -Instruction difference at ROM addr 0xE3ED48, En_Jj_InitVars (RAM 0x80A88140, ROM 0xE3ED10, build/src/overlays/actors/ovl_En_Jj/z_en_jj.o) -Bytes: 40:00:00:00 vs 00:F0:00:00 -Instruction difference at ROM addr 0xE3F900, D_80A88D40 (RAM 0x80A88D30, ROM 0xE3F900, build/data/overlays/actors/z_en_jj.reloc.o) -Bytes: 00:00:09:40 vs C4:89:80:00 -Instruction difference at ROM addr 0xE3F9D4, En_Js_SetupAction (RAM 0x80A88E00, ROM 0xE3F9D0, build/src/overlays/actors/ovl_En_Js/z_en_js.o) -Bytes: AC:85:02:8C vs 00:00:00:00 -Instruction difference at ROM addr 0xE3F9D8, EnJs_Init (RAM 0x80A88E08, ROM 0xE3F9D8, build/src/overlays/actors/ovl_En_Js/z_en_js.o) -Bytes: 27:BD:FF:B0 vs 00:00:00:00 -Instruction difference at ROM addr 0xE3FAFC, EnJs_Destroy (RAM 0x80A88F2C, ROM 0xE3FAFC, build/src/overlays/actors/ovl_En_Js/z_en_js.o) -Bytes: 27:BD:FF:E8 vs 8F:B0:00:34 - -Over 1000 differing words, must be a shifted ROM. -Map appears to have shifted just before D_80A88D40 (build/data/overlays/actors/z_en_jj.reloc.o) -- in En_Jj_InitVars? -``` - -Ignore the first line: `gDmaDataTable` is always different if the ROM is shifted. The useful lines are usually the next line, and the guess it makes at the end. - -To fix this, we use a binary diff program. A suitable one is `vbindiff`: run it on the baserom and the zelda_whatever one the compiler generates: -``` -vbindiff baseroms/gc-eu-mq-dbg/baserom-decompressed.z64 oot-gc-eu-mq-dbg.z64 -``` -In this, press `g` to open up goto position, and paste in the address `0xE3ED10` from the first important line of the `first_diff` output. This gives us the following: - -![vbindiff for data](images/vbindiff_data_1.png) - -Notice that the numbers in the bottom pane is all shifted one word to the left. We therefore need some extra padding somewhere. The real issue is where. Thankfully the guess at the bottom gives us a hint: let's try just under `InitVars`. Just put a padding variable straight after them: - -```C -ActorInit En_Jj_InitVars = { - /**/ ACTOR_EN_JJ, - /**/ ACTORTYPE_ITEMACTION, - /**/ FLAGS, - /**/ OBJECT_JJ, - /**/ sizeof(EnJj), - /**/ EnJj_Init, - /**/ EnJj_Destroy, - /**/ EnJj_Update, - /**/ EnJj_Draw, -}; - -s32 usused = 0; - -#include "z_en_jj_cutscene_data.c" EARLY -``` - -This isn't good enough: we still get Error 1, but: -``` -$ ./first_diff.py -First difference at ROM addr 0x144F4, gDmaDataTable (RAM 0x80016DA0, ROM 0x12F70, build/asm/dmadata.o) -Bytes: 00:E3:F9:D0 vs 00:E3:F9:E0 -Instruction difference at ROM addr 0xE3F87C, unused (RAM 0x80A88160, ROM 0xE3ED30, build/src/overlays/actors/ovl_En_Jj/z_en_jj.o) -Bytes: 0A:00:09:39 vs 00:00:00:00 -Instruction difference at ROM addr 0xE3F900, D_80A88D40 (RAM 0x80A88D30, ROM 0xE3F900, build/data/overlays/actors/z_en_jj.reloc.o) -Bytes: 00:00:09:40 vs C4:89:80:00 -Instruction difference at ROM addr 0xE3F9D4, En_Js_SetupAction (RAM 0x80A88E00, ROM 0xE3F9D0, build/src/overlays/actors/ovl_En_Js/z_en_js.o) -Bytes: AC:85:02:8C vs 00:00:00:00 -Instruction difference at ROM addr 0xE3F9D8, EnJs_Init (RAM 0x80A88E08, ROM 0xE3F9D8, build/src/overlays/actors/ovl_En_Js/z_en_js.o) -Bytes: 27:BD:FF:B0 vs 00:00:00:00 -Instruction difference at ROM addr 0xE3FAFC, EnJs_Destroy (RAM 0x80A88F2C, ROM 0xE3FAFC, build/src/overlays/actors/ovl_En_Js/z_en_js.o) -Bytes: 27:BD:FF:E8 vs 8F:B0:00:34 - -Over 1000 differing words, must be a shifted ROM. -Map appears to have shifted just before D_80A88D40 (build/data/overlays/actors/z_en_jj.reloc.o) -- in unused? -(Base map file expected/build/z64.map out of date due to new or renamed symbols, so result may be imprecise.) -``` -We've managed to get rid of one issue, but there's still another one. Looking in vbindiff again, - -![vbindiff data 2](images/vbindiff_data_2.png) - -we see that everything is shifted left by 2 words. Guessing based on the hint from `first_diff`, we put two words after the cutscene include: -```C -#include "z_en_jj_cutscene_data.c" EARLY - -s32 usused2[] = { 0, 0 }; - -static ColliderCylinderInit sCylinderInit = -{ - { COLTYPE_UNK10, 0x00, 0x09, 0x39, 0x10, COLSHAPE_CYLINDER }, - { 0x00, { 0x00000000, 0x00, 0x00 }, { 0x00000004, 0x00, 0x00 }, 0x00, 0x01, 0x01 }, - { 170, 150, 0, { 0, 0, 0 } }, -}; -``` - -Running `make -j` again, -``` -oot-gc-eu-mq-dbg.z64: OK -``` - -Hooray, we won! - - -## Fake symbols - -Some symbols in the data have been decompiled wrongly, being incorrectly separated from the previous symbol due to how it was accessed by the actor's functions. However, most of these have now been fixed. Some more detail is given in [Types, structs and padding](types_structs_padding.md) If you are unsure, ask! - - -## Inlining - -After the file is finished, it is possible to move some static data into functions. This requires that: -1. The data is used in only one function -2. The ordering of the data can be maintained - -Additionally, we prefer to keep larger data (more than a line or two) out of functions anyway. - - -# Finally: .bss - -A .bss contains data that is uninitialised (actually initialised to `0`). For most actors all you need to do is declare it at the top of the actor file without giving it a value, once you find out what type it is. diff --git a/docs/tutorial/draw_functions.md b/docs/tutorial/draw_functions.md deleted file mode 100644 index 6724b4281..000000000 --- a/docs/tutorial/draw_functions.md +++ /dev/null @@ -1,476 +0,0 @@ -# Draw functions - -Up: [Contents](contents.md) -Previous: [The rest of the functions in the actor](other_functions.md) - -Draw functions behave completely differently from the other functions in an actor. They often use a lot of macros. - -For this tutorial we will first look at the `EnJj` draw function, `EnJj_Draw`, then some more complicated examples. - -## A first example - -Unless it is completely invisible, an actor usually has a draw function as one of the main four actor functions. Hence its prototype looks like - -```C -EnJj_Draw(Actor* thisx, PlayState* play); -``` - -As in Init, Destroy and Update, it is much more convenient to feed mips2c the fake prototype - -```C -EnJj_Draw(EnJj* this, PlayState* play); -``` - -so that it fills out the struct fields from the actuar actor; we then put a - -```C -EnJj* this = THIS; -``` - -in the declarations as before. From now on, the process is rather different from the decompilation process used for the other functions. Here is the output of mips2c after sorting out the actor struct from Init, and with the arguments set back to `Actor* thisx`: -```C -void EnJj_Draw(Actor *thisx, PlayState *play) { - EnJj* this = THIS; - - GraphicsContext *sp4C; - Gfx *sp3C; - EnJj *sp18; - Gfx *temp_v1; - GraphicsContext *temp_a1; - s32 temp_a0; - - temp_a1 = play->state.gfxCtx; - sp4C = temp_a1; - Graph_OpenDisps(&sp3C, temp_a1, (const char *) "../z_en_jj.c", 0x36F); - Gfx_SetupDL_37Opa(play->state.gfxCtx); - Matrix_Translate(0.0f, (cosf(this->skelAnime.curFrame * 0.076624215f) * 10.0f) - 10.0f, 0.0f, (u8)1U); - Matrix_Scale(10.0f, 10.0f, 10.0f, (u8)1U); - temp_v1 = temp_a1->polyOpa.p; - temp_a1->polyOpa.p = temp_v1 + 8; - temp_v1->words.w0 = 0xDB060020; - temp_a0 = *(&D_80A88CFC + (this->unk_30E * 4)); - temp_v1->words.w1 = (temp_a0 & 0xFFFFFF) + gSegments[(u32) (temp_a0 * 0x10) >> 0x1C] + 0x80000000; - sp18 = this; - SkelAnime_DrawFlexOpa(play, this->skelAnime.skeleton, this->skelAnime.jointTable, (s32) this->skelAnime.dListCount, 0, 0); - Graph_CloseDisps(&sp3C, play->state.gfxCtx, (const char *) "../z_en_jj.c", 0x382); -} -``` - -Notable features are the Open and Close Disps functions, and blocks of the form - -```C -temp_v1 = temp_a1->polyOpa.p; -temp_a1->polyOpa.p = temp_v1 + 8; -temp_v1->words.w0 = 0xDB060020; -temp_a0 = *(&D_80A88CFC + (this->unk_30E * 4)); -temp_v1->words.w1 = (temp_a0 & 0xFFFFFF) + gSegments[(u32) (temp_a0 * 0x10) >> 0x1C] + 0x80000000; -``` - -(This is a particularly simple example, since there's only one of these blocks. We will give a more involved example later.) - -Each of these blocks converts into a graphics macro. They are usually (but not always) straightforward, but manually converting them is a pain, and there are sometimes special cases. To deal with them easily, we will use a tool from glank's N64 tools. To install these, follow the instructions [here](https://practicerom.com/public/packages/debian/howto.txt). - -For our purposes, we only need one of the programs this provides: `gfxdis.f3dex2`. - - -Graphics are actually 64-bit on the Nintendo 64. This code block is a result of instructions telling the processor what to do with the graphics pointer. There are two types of graphics pointer, -- polyOpa for solid textures -- polyXlu for translucent textures - -Our example is polyOpa, not surprisingly since Jabu is solid. - -`words.w0` and `words.w1` contain the actual graphics instruction, in hex format. Usually, `w0` is constant and `w1` contains the arguments. To find out what sort of macro we are dealing with, we use `gfxdis.f3dex2`. `w1` is variable, but we need to give the program a constant placeholder. A common word to use is 12345678, so in this case we run -``` -gfxdis.f3dex2 -x -g "POLY_OPA_DISP++" -d DB06002012345678 -``` - -- `-x` uses hex instead of the default qu macros (never mind what those are, OoT doesn't have them) -- `-g` is used to specify which graphics pointer macro to use -- `-d` is for the graphics dword - -Our standard now is to use decimal colors. If you have a constant second argument rather than a variable one, you can also use `-dc` to get decimal colors instead of the default hex. - -The output looks like -``` -gSPSegment(POLY_OPA_DISP++, 0x08, 0x12345678); -``` - -We can now replace the `0x12345678` by the actual second word. Or we could, if we had worked out what it was. - -Firstly, `*(&D_80A88CFC + (this->unk_30E * 4))` is referring to a piece of data we haven't externed yet. It looks like -``` -glabel D_80A88CFC -.word 0x06007698, 0x06007A98, 0x06007E98, 0x00000000, 0x00000000 -``` - -The first three words look like pointers to assets in the actor segment, which would make sense if we're looking for textures to draw. The last two words are 0, which is strange. A check in the rest of the actor file shows that `unk_30E` only takes the values `0,1,2`. We conclude that the last two words are just padding, and can be removed. Because this data is used in a graphics macro, it will be either a displaylist or a texture. We therefore set it up to be an array of unknown pointers for now: -```C -extern UNK_PTR D_80A88CFC[]; -// static Gfx* D_80A88CFC[] = { 0x06007698, 0x06007A98, 0x06007E98, } -``` - -It goes through further processing before it is used in the macro: `(temp_a0 & 0xFFFFFF) + gSegments[(u32) (temp_a0 * 0x10) >> 0x1C] + 0x80000000` is a conversion of a segmented address into a VRAM address. We have a macro for this too: `SEGMENTED_TO_VIRTUAL`. So after all this, the second word is -```C -SEGMENTED_TO_VIRTUAL(D_80A88CFC[this->unk_30E]); -``` -and the whole macro is -```C -gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_80A88CFC[this->unk_30E])); -``` -The contents of a desegmentation macro used like this are almost always textures in this context, so we can replace `UNK_PTR` by `u64*`, the type for textures. - -You repeat this for every block in the function. - -We also have macros for Graph_OpenDisps and Graph_CloseDisps: you can replace -```C -Graph_OpenDisps(&sp3C, temp_a1, (const char *) "../z_en_jj.c", 0x36F); -``` -by -```C -OPEN_DISPS(temp_a1, "../z_en_jj.c", 879); -``` -(the last argument is a line number, so should be in decimal). - -The function may or may not use a temp for `play->state.gfxCtx`: you have to work it out using the diff. - -Once you've replaced all the blocks and the open and close with macros, you proceed with the function as usual. - -Two last things: the last argument of the matrix functions tells the compiler whether to use the previously stored matrix or not, so we have the enums `MTXMODE_NEW` and `MTXMODE_APPLY` for these. And the rather weird-looking float `0.076624215f` is, of all things, `(M_PI/41.0f)` (try Wolfram Alpha for these things, and if that doesn't produce anything sensible, ask in Discord). - -(The actual reason is probably that the animation is 41 frames long, but you won't necessarily spot this sort of thing for most floats) - -After all that, it turns out that -```C -void EnJj_Draw(Actor *thisx, PlayState *play) { - EnJj *this = THIS; - - OPEN_DISPS(play->state.gfxCtx, "../z_en_jj.c", 879); - Gfx_SetupDL_37Opa(play->state.gfxCtx); - Matrix_Translate(0.0f, (cosf(this->skelAnime.curFrame * (M_PI/41.0f)) * 10.0f) - 10.0f, 0.0f, 1); - Matrix_Scale(10.0f, 10.0f, 10.0f, 1); - gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_80A88CFC[this->unk_30E])); - SkelAnime_DrawFlexOpa(play, this->skelAnime.skeleton, this->skelAnime.jointTable, - this->skelAnime.dListCount, 0, 0, this); - CLOSE_DISPS(play->state.gfxCtx, "../z_en_jj.c", 898); -} -``` - -matches apart from a couple of stack differences. This can be resolved by giving it `PlayState* play = play2;` at the top of the function and changing the second argument to `play2` as usual. - -We have enums for the last argument of the matrix functions: `0` is `MTXMODE_NEW`, `1` is `MTXMODE_APPLY`. - -Lastly, the penultimate and antepenultimate arguments of `SkelAnime_DrawFlexOpa` are actually pointers to functions, so they should be `NULL` instead of `0`. - - -## More examples: OverrideLimbDraw and PostLimbDraw - -For more examples of graphics macros and the structure of Draw functions, we look at a function from `EnDntNormal`, which is some Deku Scrubs used in the minigame stuff in Lost Woods. This has a good selection of macros, and two functions that are commonly combined with Draw, namely OverrideLimbDraw and PostLimbDraw. - -The mips2c output for - -```C -void func_809F5A6C(Actor *thisx, PlayState *play) { - ? sp60; - Gfx *sp48; - Gfx *sp38; - Actor *sp14; - Gfx *temp_v0; - Gfx *temp_v0_2; - Gfx *temp_v0_3; - Gfx *temp_v0_4; - Gfx *temp_v0_5; - GraphicsContext *temp_a1; - GraphicsContext *temp_s0; - s32 temp_a0; - void *temp_v1; - - sp60.unk0 = (s32) D_809F5E94.unk0; - sp60.unk4 = (s32) D_809F5E94.unk4; - sp60.unk8 = (s32) D_809F5E94.unk8; - temp_a1 = play->state.gfxCtx; - temp_s0 = temp_a1; - Graph_OpenDisps(&sp48, temp_a1, (const char *) "../z_en_dnt_nomal.c", 0x6FE); - Gfx_SetupDL_25Opa(play->state.gfxCtx); - temp_v0 = temp_s0->polyOpa.p; - temp_s0->polyOpa.p = temp_v0 + 8; - temp_v0->words.w0 = 0xDB060020; - temp_a0 = *(&D_809F5EA0 + (thisx->unk268 * 4)); - temp_v0->words.w1 = (temp_a0 & 0xFFFFFF) + gSegments[(u32) (temp_a0 * 0x10) >> 0x1C] + 0x80000000; - sp14 = thisx; - SkelAnime_DrawOpa(play, thisx->unk150, thisx->unk16C, &func_809F58E4, &func_809F59E4); - Matrix_Translate(thisx->unk21C, thisx->unk220, (bitwise f32) thisx->unk224, (u8)0U); - Matrix_Scale(0.01f, 0.01f, 0.01f, (u8)1U); - temp_v0_2 = temp_s0->polyOpa.p; - temp_s0->polyOpa.p = temp_v0_2 + 8; - temp_v0_2->words.w0 = 0xE7000000; - temp_v0_2->words.w1 = 0; - temp_v0_3 = temp_s0->polyOpa.p; - temp_s0->polyOpa.p = temp_v0_3 + 8; - temp_v0_3->words.w0 = 0xFB000000; - temp_v1 = (thisx->unk26A * 4) + &D_809F5E4C; - temp_v0_3->words.w1 = (temp_v1->unk-2 << 8) | (temp_v1->unk-4 << 0x18) | (temp_v1->unk-3 << 0x10) | 0xFF; - temp_v0_4 = temp_s0->polyOpa.p; - temp_s0->polyOpa.p = temp_v0_4 + 8; - temp_v0_4->words.w0 = 0xDA380003; - sp38 = temp_v0_4; - sp38->words.w1 = Matrix_NewMtx(play->state.gfxCtx, (char *) "../z_en_dnt_nomal.c", 0x716); - temp_v0_5 = temp_s0->polyOpa.p; - temp_s0->polyOpa.p = temp_v0_5 + 8; - temp_v0_5->words.w1 = (u32) &D_06001B00; - temp_v0_5->words.w0 = 0xDE000000; - Graph_CloseDisps(&sp48, play->state.gfxCtx, (const char *) "../z_en_dnt_nomal.c", 0x719); - if (&func_809F49A4 == thisx->unk214) { - func_80033C30((Vec3f *) &thisx->world, (Vec3f *) &sp60, (u8)0xFFU, play); - } -} -``` - -### Graphics macros - -There are 5 graphics macro blocks here: -```C -temp_v0 = temp_s0->polyOpa.p; -temp_s0->polyOpa.p = temp_v0 + 8; -temp_v0->words.w0 = 0xDB060020; -temp_a0 = *(&D_809F5EA0 + (thisx->unk268 * 4)); -temp_v0->words.w1 = (temp_a0 & 0xFFFFFF) + gSegments[(u32) (temp_a0 * 0x10) >> 0x1C] + 0x80000000; -``` - -We've seen one of these before: gfxdis gives -```C -$ gfxdis.f3dex2 -g "POLY_OPA_DISP++" -d DB06002012345678 -gSPSegment(POLY_OPA_DISP++, 0x08, 0x12345678); -``` -and looking at the data shows -``` -glabel D_809F5EA0 - .word 0x060027D0, 0x060025D0, 0x06002750, 0x00000000 -``` -which is an array of pointers to something again. It is used inside a `SEGMENTED_TO_VIRTUAL`, so they are most likely textures, and this block becomes -```C -gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_809F5EA0[this->unk_268])); -``` - -Next, -```C -temp_v0_2 = temp_s0->polyOpa.p; -temp_s0->polyOpa.p = temp_v0_2 + 8; -temp_v0_2->words.w0 = 0xE7000000; -temp_v0_2->words.w1 = 0; -``` -which we can find immediately using -``` -$ gfxdis.f3dex2 -g "POLY_OPA_DISP++" -d E700000000000000 -gDPPipeSync(POLY_OPA_DISP++); -``` - -Third, -```C -temp_v0_3 = temp_s0->polyOpa.p; -temp_s0->polyOpa.p = temp_v0_3 + 8; -temp_v0_3->words.w0 = 0xFB000000; -temp_v1 = (thisx->unk26A * 4) + &D_809F5E4C; -temp_v0_3->words.w1 = (temp_v1->unk-2 << 8) | (temp_v1->unk-4 << 0x18) | (temp_v1->unk-3 << 0x10) | 0xFF; -``` -this looks more troublesome. We find -``` -$ gfxdis.f3dex2 -g "POLY_OPA_DISP++" -d FB00000012345678 -gDPSetEnvColor(POLY_OPA_DISP++, 0x12, 0x34, 0x56, 0x78); -``` - -Now we need to work out what the last four arguments are. Two things are going on here: `D_809F5E4C` is an array of something: -``` -glabel D_809F5E4C - .word 0xFFFFFFFF, 0xFFC3AFFF, 0xD2FF00FF, 0xFFFFFFFF, 0xD2FF00FF, 0xFFC3AFFF, 0xFFFFFFFF, 0xFFC3AFFF, 0xD2FF00FF -``` -Worse, this is being accessed with pointer subtraction in the second word. `temp_v1 = (thisx->unk26A * 4) + &D_809F5E4C;` tells us that the array has elements of size 4 bytes, and the graphics macro implies the elements are colors. Colors of size 4 bytes are `Color_RGBA8`. Usually, we write colors in decimal, so `D_809F5E4C` becomes -```C -static Color_RGBA8 D_809F5E4C[] = { - { 255, 255, 255, 255 }, { 255, 195, 175, 255 }, { 210, 255, 0, 255 }, - { 255, 255, 255, 255 }, { 210, 255, 0, 255 }, { 255, 195, 175, 255 }, - { 255, 255, 255, 255 }, { 255, 195, 175, 255 }, { 210, 255, 0, 255 }, -}; -``` - -Now, we have two things to worry about: how to implement the negative pointer access, and how the second word is built. Negative accesses can be done by just subtracting 1, so that -```C -temp_v1 = D_809F5E4C[this->unk_26A - 1]; -``` -and then -```C -temp_v0_3->words.w1 = (temp_v1->unk2 << 8) | (temp_v1->unk0 << 0x18) | (temp_v1->unk3 << 0x10) | 0xFF; -``` -or rather, since it is a `Color_RGB8`, -```C -temp_v0_3->words.w1 = (temp_v1.b << 8) | (temp_v1.r << 0x18) | (temp_v1.g << 0x10) | 0xFF; -``` - -The last thing to worry about is how to put this word into the macro. Let's think about what the word actually is in a concrete case; it is easiest to see what is going on in hex, so suppose we are in the case -```C -temp_v1 = { 0xFF, 0xC3, 0xAF, 0xFF }; -``` - -Then the calculation is -``` -(0xAF << 8) | (0xFF << 0x18) | (0xC3 << 0x10) | 0xFF = 0xAF00 | 0xC30000 | 0xFF0000000 | 0xFF = 0xFFC3AFFF -``` -and so all this calculation is doing is turning `temp_v1` back into a word, with the last byte replaced by `0xFF` (that all the elements of `D_809F5E4C` have `0xFF` as their last element anyway is irrelevant here). Looking back at the output of gfxdis, we see that this actually means that the r,g,b just slot into the penultimate three arguments, the last being `0xFF`, leaving -```C -temp_v1 = D_809F5E4C[this->unk_26A - 1]; -gDPSetEnvColor(POLY_OPA_DISP++, temp_v1.r, temp_v1.g, temp_v1.b, 0xFF); -``` -as the residue of this block; it may turn out later that we can eliminate the temp. - - -The last two are much easier: -```C -temp_v0_4 = temp_s0->polyOpa.p; -temp_s0->polyOpa.p = temp_v0_4 + 8; -temp_v0_4->words.w0 = 0xDA380003; -sp38 = temp_v0_4; -sp38->words.w1 = Matrix_NewMtx(play->state.gfxCtx, (char *) "../z_en_dnt_nomal.c", 0x716); -``` -The macro is -``` -$ gfxdis.f3dex2 -g "POLY_OPA_DISP++" -d DA38000312345678 -gSPMatrix(POLY_OPA_DISP++, 0x12345678, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); -``` -and the second argument is filled by the `Matrix_NewMtx` function: -```C -gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_en_dnt_nomal.c", 1814), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); -``` - -Lastly, -```C -temp_v0_5 = temp_s0->polyOpa.p; -temp_s0->polyOpa.p = temp_v0_5 + 8; -temp_v0_5->words.w1 = (u32) &D_06001B00; -temp_v0_5->words.w0 = 0xDE000000; -``` -The macro is -``` -$ gfxdis.f3dex2 -g "POLY_OPA_DISP++" -d DE00000012345678 -gSPDisplayList(POLY_OPA_DISP++, 0x12345678); -``` -and so `D_06001B00` is a displaylist, so the type in the externed data at the top of the file can be changed to `Gfx D_06001B00[]`. Arrays act like pointers, so we don't need the `&` in the macro: -```C -gSPDisplayList(POLY_OPA_DISP++, D_06001B00); -``` - -Putting this all together -```C -void func_809F5A6C(Actor *thisx, PlayState *play) { - EnDntNormal *this = THIS; - ? sp60; - Actor *sp14; - Color_RGBA8 temp_v1; - - sp60.unk0 = (s32) D_809F5E94.unk0; - sp60.unk4 = (s32) D_809F5E94.unk4; - sp60.unk8 = (s32) D_809F5E94.unk8; - - OPEN_DISPS(play->state.gfxCtx, "../z_en_dnt_nomal.c", 1790); - Gfx_SetupDL_25Opa(play->state.gfxCtx); - - gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_809F5EA0[this->unk_268])); - - sp14 = this; - SkelAnime_DrawOpa(play, thisx->unk150, thisx->unk16C, &func_809F58E4, &func_809F59E4); - Matrix_Translate(thisx->unk21C, thisx->unk220, (bitwise f32) thisx->unk224, (u8)0U); - Matrix_Scale(0.01f, 0.01f, 0.01f, (u8)1U); - - gDPPipeSync(POLY_OPA_DISP++); - temp_v1 = D_809F5E4C[this->unk_26A - 1]; - gDPSetEnvColor(POLY_OPA_DISP++, temp_v1.r, temp_v1.g, temp_v1.r, 0xFF); - gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_en_dnt_nomal.c", 1814), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_OPA_DISP++, D_06001B00); - - CLOSE_DISPS(play->state.gfxCtx, "../z_en_dnt_nomal.c", 1817); - - if (&func_809F49A4 == this->unk214) { - func_80033C30((Vec3f *) &this.actor->world, (Vec3f *) &sp60, (u8)0xFFU, play); - } -} -``` - -### SkelAnime_Draw and the LimbDraws - -Some more general tidying up can be done here (`sp60` and so `D_809F5E94` are `Vec3f`, for example, and under normal circumstances we'd know that ), but the big remaining issue is -```C -sp14 = this; -SkelAnime_DrawOpa(play, thisx->unk150, thisx->unk16C, func_809F58E4, func_809F59E4); -``` -If we look at the definition of `SkelAnime_DrawOpa`, we find that it's missing the last argument. This is mips2c not noticing why `this` has been put on the stack: this code should actually be -```C -SkelAnime_DrawOpa(play, thisx->unk150, thisx->unk16C, func_809F58E4, func_809F59E4, this); -``` -mips2c doing this is not especially unusual, so bear it in mind. - -The other thing this tells us is that `func_809F58E4` is of type `OverrideLimbDraw`, and `func_809F59E4` of type `PostLimbDraw`. Their names are fairly self-explanatory. Filling in the prototypes as -```C -s32 func_809F58E4(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* thisx); -void func_809F59E4(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx); -``` -and running mips2c gives - -```C -s32 func_809F58E4(PlayState *play, s32 limbIndex, Gfx **dList, Vec3f *pos, Vec3s *rot, void *thisx) { - GraphicsContext *sp38; - Gfx *sp28; - Gfx *temp_v1; - Gfx *temp_v1_2; - GraphicsContext *temp_a1; - void *temp_v0; - - if ((limbIndex == 1) || (limbIndex == 3) || (limbIndex == 4) || (limbIndex == 5) || (limbIndex == 6)) { - temp_a1 = play->state.gfxCtx; - sp38 = temp_a1; - Graph_OpenDisps(&sp28, temp_a1, (const char *) "../z_en_dnt_nomal.c", 0x6C5); - temp_v1 = sp38->polyOpa.p; - sp38->polyOpa.p = temp_v1 + 8; - temp_v1->words.w1 = 0; - temp_v1->words.w0 = 0xE7000000; - temp_v1_2 = sp38->polyOpa.p; - sp38->polyOpa.p = temp_v1_2 + 8; - temp_v1_2->words.w0 = 0xFB000000; - temp_v0 = (thisx->unk26A * 4) + &D_809F5E4C; - temp_v1_2->words.w1 = (temp_v0->unk-2 << 8) | (temp_v0->unk-4 << 0x18) | (temp_v0->unk-3 << 0x10) | 0xFF; - Graph_CloseDisps(&sp28, play->state.gfxCtx, (const char *) "../z_en_dnt_nomal.c", 0x6CF); - } - return 0; -} - -void func_809F59E4(PlayState *play, s32 limbIndex, Gfx **dList, Vec3s *rot, void *thisx) { - ? sp18; - - sp18.unk0 = (s32) D_809F5E88.unk0; - sp18.unk4 = (s32) D_809F5E88.unk4; - sp18.unk8 = (s32) D_809F5E88.unk8; - if (thisx->unk26A == 0) { - if (limbIndex == 5) { - Matrix_MultVec3f((Vec3f *) &sp18, thisx + 0x27C); - return; - } - } else if (limbIndex == 7) { - Matrix_MultVec3f((Vec3f *) &sp18, thisx + 0x27C); - } -} -``` - -This structure is pretty typical: both edit what certain limbs do. Both also usually need a `ActorName *this = THIS;` at the top. We have seen both of the macros in the former before: applying the usual procedure, we find that it becomes -```C -s32 func_809F58E4(PlayState *play, s32 limbIndex, Gfx **dList, Vec3f *pos, Vec3s *rot, void *thisx) { - EnDntNormal *this = THIS; - - if ((limbIndex == 1) || (limbIndex == 3) || (limbIndex == 4) || (limbIndex == 5) || (limbIndex == 6)) { - OPEN_DISPS(play->state.gfxCtx, "../z_en_dnt_nomal.c", 1733); - gDPPipeSync(POLY_OPA_DISP++); - gDPSetEnvColor(POLY_OPA_DISP++, D_809F5E4C[this->type - 1].r, D_809F5E4C[this->type - 1].g, D_809F5E4C[this->type - 1].b, 255); - CLOSE_DISPS(play->state.gfxCtx, "../z_en_dnt_nomal.c", 1743); - } - return 0; -} -``` -Notice that this function returns `0`. OverrideLimbDraw almost always returns `0`. - -The latter function is easier, and it is probably unnecessary to explain to the reader what it is necessary to do to it to clean it up. diff --git a/docs/tutorial/helper_scripts.md b/docs/tutorial/helper_scripts.md deleted file mode 100644 index 74c580904..000000000 --- a/docs/tutorial/helper_scripts.md +++ /dev/null @@ -1,202 +0,0 @@ -# List of helper scripts - -This list gives brief information on the most common usage cases. For more information, first try using `-h` or `--help` as an argument, and failing that, ask in #oot-decomp-help or #tools-other in the Discord. - -Many tools require activating a Python virtual environment that contains Python -dependencies. This virtual environment is automatically installed into the -`.venv` directory by `make setup`, but you need to **activate** it in your -current terminal session in order to run Python tools. To start using the -virtual environment in your current terminal run: - -```bash -source .venv/bin/activate -``` - -Keep in mind that for each new terminal session, you will need to activate the -Python virtual environment again. That is, run the above `source .venv/bin/activate` command. - -To deactivate the virtual environment, run - -```bash -deactivate -``` - -and your terminal session state will be restored to what it was before. - -## m2ctx - -This generates the context for mips2c to use to type objects in its output. It lives in the tools directory. Running -```sh -./tools/m2ctx.py -``` -will produce a file in the root directory called `ctx.c`. You open this file and copy it into the mips2c context box. - -The rule of thumb is to rerun this every time you change something significant to other functions, like the struct in the header or a function prototype, and probably after every function, at least at first. As with most other things on this project, you will develop intuition for when this is required. - -## diff - -This is in the repo's root directory. It is the main comparison tool to check your C code generates the right MIPS. - -The usual way diff is used is -```sh -./diff.py -mwo3 -``` - -- `m` automatically runs make as necessary -- `o` allows using symbol names -- `w` refreshes the diff output when the c file is saved (only the c file, not the header) -- `3` allows comparison of the previous and current saves of the file. - -Many other options exist, use the `-h` to see them. - -In order to use `diff.py` with the symbol names (with `o`), we need a copy of the code to compare against. This is done by copying the `build` folder into a folder called `expected`. Copying in Windows on WSL is very slow, so run -```sh -mkdir expected -cp -r build/ expected/ -``` -from the main directory of the repository. You should end up with the folder structure `expected/build/...`. - -![Example of a diff](images/func_80A87B9C_diff1.png) - -The colors have the following meanings: - -- Red is lines missing -- Green is extra lines -- Blue denotes significant differences in instructions, be they just numerical ones, or whole instructions -- Yellow/Gold denotes that register usage is wrong -- Other colors are used to distinguish incorrectly used registers or stack variables, to make it easy to follow where they are used. - -## decomp-permuter - -This is linked in #resources in the Discord. - -For inspiration when you run out of ideas to match a function. It is unlikely to match it completely by itself, but if you can't see from the MIPS or your code where you have issues, it will often tell you where to start looking. - -First, import the C file and MIPS of the function to compare using -```sh -./import.py -``` - -It will put it in a subdirectory of `nonmatchings`. You then run -```sh -./permuter.py nonmatchings// -``` -to produce suggestions. There are various arguments that can be used, of which the most important initially is `-j`: `-jN` tells it to use `N` CPU threads. - -Suggestions are saved in the function directory it imported the function into. - -## first_diff - -Tells you where your built rom first differs from the baserom. It gives you a memory address that you can use to do, e.g. a binary diff, and also tries too find what function or data this address is in. Run with -```C -./first_diff.py -``` - -If the rom is shifted, the first problem will be in gDMADataTable. Ignore this and look at the next one for where you actually need to look to see what's happened. The last line makes a guess on this location you need to edit to fix the problem. - -## sym_info - -Gives information about a `D_address` symbol (ROM address, RAM address, file). Run -```C -./sym_info.py -``` - -## ichaindis - -This is used to convert the data associated to the `D_address` in -```C -Actor_ProcessInitChain(&this->actor, &D_address); -``` -into an InitChain. It lives in the tools directory. Run -```sh -./tools/ichaindis.py -``` -and copy the output. (This used to only take the ROM address, which you would need to get from `sym_info.py`. Now you can just give it the RAM address, or even the raw `D_address`.) - -## colliderinit - -This is used to convert data `D_address` in the various ColliderInit functions into the format of a collider. It lives in `tools/overlayhelpers`. Because there are different types of collider, you need to give it the type of collider as well. This does not need the baserom path, and a recent update allows it to be run from anywhere. You also have to give it the `
` without the leading `D_`. -```sh -./colliderinit.py
-``` -Collider types supported are - -- `ColliderJntSphInit` -- `ColliderCylinderInit` -- `ColliderTrisInit` -- `ColliderQuadInit` -- `ColliderJntSphElementInit` -- `ColliderTrisElementInit` - -and `num` is used only for `ColliderJntSphElementInit`. - -## sfxconvert - -Automatically converts sound effect numbers in a file into their corresponding `#defines`, taking into account if `SFX_FLAG` is used. Run on a specific C file, -```sh -./tools/sfxconvert.py -``` - -Optional arguments are `-o output` to output to a different file and `-v` to give verbose output (i.e. tell you what changes it has made). - -## vt_fmt - -This turns the strange strings in the `PRINTF`s into the human-readable equivalent instructions. Copy the contents, including the quotation marks, and run -```sh -./tools/vt_fmt.py "contents" -``` -and replace the contents of the printf with the output. - -## Glank's N64 tools - -In particular, the ones used to decompile graphics macros. Their use is discussed in the section on [decompiling Draw functions](draw_functions.md). - -## graphovl - -This generates a directed graph showing an actor's function. Search for `graphovl.py` in the Discord. Put it in the root directory of the project, and run -```sh -./graphovl.py Actor_Name -``` -to produce a png in the `graphs` subdirectory. - -## format - -Shell script that does a standardised format to the C code. Can be run on a file, a directory, or the whole codebase. Run this before you submit a PR. - -## find_unused_asm - -Tracks down any `.s` files no longer used by the project. Does not ignore comments, so you have to actually remove any `#pragma` lines for it to consider the file unused. -```sh -./tools/find_unused_asm.sh -``` -will output a list of all such files, while adding `-d` deletes the files. - -## csdis - -This converts the cutscene data into macros that the cutscene system uses. Cutscenes are generally very long, so I recommend sending the output straight to a file with `>`, rather than trying to copy it all from the terminal. Run -```sh -./tools/csdis.py
-``` -on the address from the `D_address` containing the cutscene data. - -## regconvert - -This converts the direct memory references, of the form `gRegEditor->data[index]` or `gRegEditor + 0x`, into the corresponding REG macros defined in [regs.h](../include/regs.h). Run -```sh -./tools/regconvert.py -``` -if you have it in the form `gRegEditor->data[index]`, or -```sh -./tools/regconvert.py --offset -``` -if you have it in the form `gRegEditor + 0x`. You can also run it on a whole file using `--file `. - -## assist - -This takes a function name, and looks for functions with very similar assembly code. It outputs the best matches, and tells you if there is a decompiled one. -```sh -./tools/assist.py -``` -It has two optional arguments: -- `--threshold` adjust how high the matching threshold is, 1.0 being highest, 0.0 lowest -- `--num-out` change the number of matches to output diff --git a/docs/tutorial/images/changing_init_prototype.png b/docs/tutorial/images/changing_init_prototype.png deleted file mode 100644 index 7e3088b0f4eb104f920f51002ea59ef14ce19f0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39609 zcmeAS@N?(olHy`uVBq!ia0y~yU|Pz+!1$7bje&t-_bS&N3=9m6#X;^)4C~IxykuZt zU`coMb!1@J*w6hZk(GggfwRCPvY3H^?=T269?xHq!oV=g&(p;*q$2L^-@WT{e5cLr zz1n)=k*L5DSH>@#ANVpZWv>i$S^fWW zEl8`EW_dF^$UCUO@Fq33e)uNpt}5G7JkuN${X^&TFYQi-X5*Wc~H~-)H^n?)S*N z@LxNp`J62-2)Ey3WUu_+^!(eZ%kPgL%G!J5XT7W4sfEYe=ltBFJ!jp_w+|Or<@>>JPczbI<$k{?h)m`?>tzy8nk(fByfbdfAjuR(hgKZFD{zUCQ2J-?47b zoeGDa&dpo@1>8DWd1CFlm%p38t@{?d7wl%EIgy)2hhNcQ`*;$Qf4b|bb662;;F z4rKj3_kZr3?CHwMJ{QV=pIE;q!nEK2YwZ5!8nxZ0wM*-b-t2!bZ+XG4hN=Ahet)a~ zGqZnm{n_u7uKCn7M$7B(LzRjZKlT@8_RKxRto;1BbC#-q#g8A%86~}bg`xGIc>Z2G zXcNzE{rBXF@7BNk|HN;+%zw#z($lIM&)=)RTK`{vY`R%kvHyW@FaH|v`akceM){F8 z`HLDW9WG`9I&GakhP8bIFTe!|CfK%WShQG@2%~jlYckw`akcW z&;J*DdWycyy?F0jQqrC8^RhoJ-M3yjev)nTXmdN6R9~*KX-)$2{~s z%6~Cd>b=}8clWnn9CNnYFK^BHM+*b3suwiu-x2oN&F1w&&c*D~*Z)me_P%)C3;Duu zd!zI6pJVU)?QcHw{7~%Q_2>9c*r(hmmiYX2&Dq+xwfBG4o7z1)&G!1zJ>@xf?8A%x zaV);mSo1j8ZpVIm&U2z?&r84g7Wq2u_4|gqlRtOH9xHyA_jhI8!J4N@)2Fk@hoAY> zZa--$-?^l7&#jKTefH9ve>^bo)Y+P+4~tp9^vNkCsk1+^S@Y>3*P8DiYbMNl5nmW? zUsV6#QqaCj?|c62TRs1u_Gf18+8chqEw@GO|NMXAkC=T`jrQDsPS3HOJ(Ks?4dbM5 z|NI>dJ1_o}>Fv~EIhj0fxphK$x!uO|wY~b5<=g+c)Ia*9{ajvN_|5xI?-j~t|9JGe zvBJ&pX@us}&lXx<@qZtEZNKnBap$DZ8w&q_YMgR?ar?b<|GIYna@S{&x4x)fw(Cgf zU+w?pb6&{*)F`suaQ}ti>aQC<*Q>g3k5?|Qj`>}6VE>lF_VD}l4f`e8GxleEnJ;^L zx1!#E_S-88q~=CWtUmnf4F7A%`*SZ#=FQ&sdii_1$Ns-|Me%F@G(P|Th0Nx#%JAY1 zPrqB$ZuhtUx+})u_}3{xc9U}hPaRg3w>sa}-XZ6)nEjO3y2AXQ4o@1Nd`d~LKfd@^ zZLi#nb=f9v(vD{&x3Ay1`2Wsao}V|{?pLYpZg;om)#~-vex~2^ zIrhV2+OAB#qNm}xCHs5+=q;_0JIr;w`_lYhLRwF)FZ_O=Jww#>yhH2d_k7Q1#Pn2{ z{C{!#uKbgKq1Dk|m3p^9W!S05PqtU@H&%CjqWR*|_Qk97oqp?PYTj>$7i(KIbioB& z{&Lq$aKTt60g&{nu5r z^!|UR;IsAfp02BF|EgUHHbwIDlzcDETWR*69S^>2l`8&g{y5_K(FABswAsVu*qkSU zf14~Vw}Z>sIUhkaL*bXb8Zv8TMJJg&`x$lPrN5i&Q zr3;#JzSvLf2h~Mi++6QNGPAwwt2|o|cZ8~*=jOe3<>6D5K0EdQT$jK6zT>mvhwJK| ztxgC{UIVfA^Q1*ry7y1H_&2drp{>2cSWuj=d09Xi_` z^#1UQ6`!+z+0}SrWBDHF;5pwnI9VU z*Dqc3Y3Y}L)x2k4S7-k7)-2em@$|cy`-gyqwoI?TNY7s^KmY#8zvV9O{AS0(Ub9w( zeUh~PtNkCPZrcC3>rc<0>o(_SoByp_v!l9h-HCL|7WdE0Hx|5&xLMEAfA;*@_bv1N zZ=JNWn0MIyd;QVazq`MNKPf+N|7lPC`)BpXH@}}5bn5kvkSU)woDiQbr%8FSCuCN8gkzCVF)Q{cg^m*)Rd0@Y7-2j|SGKGgYd zqF=A!_2=n!|g## zU#EC{-LdjR+9lJ1;tnrebVc5;slDsJ_Vi;nG;Iuu>g<+;eQIg%w{LK}{xjfdRI>J6 z<+5M?f2Q+2Tbd85qWrE=mw zsDD0sL%a5;*Qc7^0J$mMI*-=PnZNqYm(%)5A2u&B-TgKE@BZR{6I0i{e-i(A&Gb3b zJ|6J5T)*^BNniJ+i-$cF9xr>YXjrANM#5I4od54t<}{ULAO1B{9$VLOzn{P9QvIX< z=l(%b^Z(VKnO{t?IUljFAmiNK&&5^yM4V5}n>c^+?{>?Xv(t?(+jpf;+5EoeTbW4k zv(|m{8w2$|_1t;rvj4ZA{QRSNe^>tRxoi7hd9T9Vm+Wso_1j*vs^ncG`BHyrjo5M5 zmv0)G{wYMAmHxP0EHU^WT?~f8C$`Oy2kU_RI1KKVx>R z{(to+Z!{QLLh z3;%vrGC%tExAer#sh^9d2LJtWwBp>|wfkS$f6i>$_q^>{5&KQ9wfiU4qt{C|)feut z?p@5@apNSTCI9N09Zaul=ls)}wp#zr+<$ZbpZMG8?frA*f93o0SIW@;<$hrQnVXwu-c0DRRn~j|UqocG#9V*&O0m-L^XEnVzC0HGZd&*B z&fQ<`f8tMu8`b!1s8|1gacb-krMb3I3|+$3#Fe(CS}@*b6Y zt6!{@Tczyx<^3Q3nm1kltz#br{x!I?{gKOmuk>~7-=uAmrpE73K5o9>ZQrNwS#^FD zU;nZnc~L2FOJAzC=H#E+^p4a24^C?p{{1q&x9;7>=e>2$+D%{7e#u$$<#PG_oAUGd zt^bD=)qKl-vf3hS(?v_S`OohqGk#h7$>08KUrj>aYt5xKYPT0nVV`8bC619_&~}0w z|CFgQkMDh2c$)d-Q{_JoD@^ar{WtUfJ~w`!>!wnRdljDb+`fM2>i<=LD)KV^JyMXH zzH;f`t3Mld7k!`qufzIhWxa3CgX$u&!(2zO*F_Z}Uk)w)>3;v+KZWn> zZ`}?$ReTd%-^i)&zx#WxrKXa<bRsG-F z_U!9klmAOacEn6M_ixg~cCNRA5zF^4lKGo*!mrPNQomeI&)RG6pIDc@4*$3N{pLIC zz7*@uob~*{y1I(gI=6q>^PZoL{`Ym=m+Cv`?tXsyDUk2|GxiORw+(L}cK>)I?dR{8 zKmJ|x`*!f=-2JBcWN!ax-e;sGOF8?IE`>XYT*5V0InX8xIPi^S2Jh}K+`6pTR z*T$fhcx~OY;9rvRNB5ro?{}{BRRcB-tZ^(b=fDlE|JIe0?3UGQ z-fw(+`FDEBf7|Yf_n$D<8^!nRy)=Ej%J=-1PYYts%xez+_E)52-MQs|l-TUOqc%tH zpR8W#XH>6Qe&Kbo;`RQ7xsMjD|C2rE>!iy@az8YmZ=Ev#Tw&m@svF4V-e1N|lhu_a zldBSJmF{nhs()l(DSS^n{Ezh7{j2|X{T1B(^@mF3yp1&vFSt#3eDP<^wVy#e+Bbdn zJ$~{p@^1b4gk|+5ac-8s&t?2~Gfa(p(f@76*7Y~$2d=xk4_fkd)&=y1ZJHT#CM9Zq z-2uJ-Rb>{)Mc=E$$NKB8?h!m+m2v3B!DCzPm%RKvXKu~$yuat_Q|8$tbz9fpkT2X6 z_fPS#eY;`&`CB*bo=4qyTCeUu<9%7g?(Y2KC;x8#^ir~?i2qZs|IY{i{;61mo80$T z$UB*#oc8>^-ty59}{)T|L^HN2V(z*zv;J#wEq-6VfUH) z89C3ylXw4F|3rD+llPJj?r$ztGnVe^pRxCUaDY$J_WBd8ZI&*Gh+h>1qe_p!v{fP^^t)6Sg=+~aNul+vrucv+3>qOQ1XFuiVCO@ls zXDfE&>HNA^r8|+zymN09KkHOC-dCm%Gq=M_uIc%9Dltot?YTV`gh|=8y)8@lzbugR6_2o z{ii$47ylZ4+CAk{CC_|?xG6=(|Bp-$(7fMxuRi|p8jUJ8tvPk&7RMJa5|=w`|Eugf z`_B5S_ofBSJG~9m%>HEY^X6A}(dg4nr?@xKM@ZXE`c^mxdT`hl|oG@2rzKZoo zRPoDx|IgJQlu7wntZDsMk2&Rxr`*-^U+4aL^9bC26Rza7t6%>AYSFLNf8Jh*vAgPi zoa2dcWF^nH@8|wa4f3j#o8A>vZ^Ypxi@5bN?&L@9rJl8zw+;NzW(_2%~KAFVU*uXlf4_A6fZ{?mN+UHX}I;6mp*8e9~ z{+sdsSJ^Mw6g%;EFP?wSt1J7cex`i(kHy*j&Tqc#kLt^rwm;bK-Ta$Bj1T5Ny*0D< zzez>ig&O-r@%`7%UYj1|W%+o8#@9m+ZZ0sFf3#YOYmCNnUm_ja z|1VBk^XUBE#M*iDgS<4;bGn1%Hmt8x3`}{^I)RlPl*Om%v&PBj`N!D5edYbMtM2># z>mMF5gWEL+o`1Q09UT9gf3)6SuD@aN$DDJ1|5ra%|NU9x$%EBghXOxN-FR``yZ_}4 zGu#T_K3e|XNOY&Yq5IM)pR(HW1N6NrHC9(>F0IjxulyhAQ5(wmCsUxB`(%(;r9P<3 z{Hge3KGRE3ckKNlVl(Fc&+#v&eaZv1OZ?Agf8Se^{zG%`MgMc1b8Fn+_s>84bWzDS z@m(@px0E;d)ic`sl07l^&i|&05(CNTwfA4%FLeKZGTweYyos`7_WY~=*8C~oeeaL@ zB)3l~&;R@B&5YV~`ab6m2T&7bJ=1S(`Lv>h<<3GOqew^=5?A-J7_5Afjmuj3B=T80=V*h;2f&(9>OJpx)FDq(_ ziS56(yWaY*^^Dh@`(Eu&;4^w=ZT)xW$rCdspZT)i%6|9Xn?KKQJ?~$?qf9oY_{Y(6 z|0n;r27K&-fc{dVZ!z`NPrYPfQKs3*Y^*@6=yE_sjX*`3;a(%U#vC{Way5 zA5-nZiq@%m-<|Z4^Mw27IL>XU^=uzC*nZt&@2&3Ha`T_~{+8c=`Md7@wfV2UPt&O15)&QA|NFRI z-#4MMPqMe}U%chNqdvSRsqBB>=Gg`>Xmh ze!uy>`A+kk&Han_w#@w_GWWmD?e)9tXFRUjD|ni7@r?Cz{=e6gFASM7sb$m(}b19-U^M`)O)j`jhW||2wwStJ@dsvRB@_#`m{f+qsx_ zAIn=m|9jNz{8v&hcl2?knT^7o`W#L9%@JP$Zl0VQ$&<$)H*vq{jZZ(yzfG*JnZp{- zFL_yZUvvFR?f3F;ivK?jKX-Sn{l)oDerf;IKHqBly`2B-=lzr4@7T5f#QsnJZZxhh zKli_UdcTF1SFLb7V_$cmfVL&$uKE*2dy7N=_iZuXr5X0iUHVC~`mdvY(aa`yD53?G7BdeZPD3ckW;Pb;G2` zn@>-yl!^IWll1lH)2|u)Y0tCO;}6FD+WRn__d@0Oe-);yKl9qh&dccz64`Mn{D9(x zMk(12P{+|G!?xh+x>xp%&Tq{o&8&-GEPWh2ZPHKU^4t4-N= z7A>2$&wE|<2SK}=_TL-#U5LB%;&)`BeA?@yqC3ycot(a*M)!?rwf!yY8z=oMp8oxq zb?0~>U)?Sn$$JaqrW85fubeS0NN)M}`_~PsSH69qxcj#JvpcmHYj@QzJ##~JuJupO z^?U43UEc&Aul&QMZ&J%_@T<*Fp`LyIyLip_Prm%qi1#LHZilEID55EbZ<>fiqn5d5 zM#I4E@U4l^5!X}Umq4SpUYbjhW}rwknnYI~Ui3x&|Ks{U+v|TEmS6Vv{=eJxzn9Of z{`a{4Pk;UXXM!Mpe*OMw=ffX=6tw@dy8i3>fB!a55ez@4p59sgP_*W0Ez_O2`O}gI}TdS*8bh z{j>!QGaCKT{4cB$V6cYk{Cd4fr@tqar%9fF^j31u@7X5<15Xt{6x}#2$m?hAj*uxv z&s;T&O!qeYmHNcGOnm1vh2@z&%YMFWe%AQxS-sZ+C*#{3$K-1#o)WJWURI&_IPhGJ zjFI>P%XRWoy65P}JgeT){A1(O%Hq2*yYEl>8K*4%>2mUCTdUslrH2-O)Ykjb`zN7i z-|NXe)1Dtrm3z%mvfJ0)DkC#_oBF(9`RVfKwC2Ct{>`xV!&VdaSWEdC&v!nr5(CY4 zPU=~`b-!|aR@T2ujC-#%h)>wR<_ptz!(UaM%9l@Hil0)ad-u}QSBmt6rS)CzbzIlH-G3e2vEFyX!(A-d7gTplv;T6{gkAD_Q{A&;PhT!y z7y0;e<`2Kc`qgsA8EY53|0%w?0yG^U{O`{*u1`nVs#dC2W%k8+{A61EUf)Ks`d^d3 z{Dr62t7c~T?(-?GYs&djba$eDVYs@5`BT``H?7C;ks_AnK4WrI)eU`EB_t~w#Pi_74%KmJrQG50i zyZMH({W+fO#WBlX&(WW-TlV0e*mL1UDL-6lx~|q<*!qWUon-qQem(d7Zw%E-HQhU3 zYb>1-wC>aE*-zg;SbBsz?b??^r?Tx#mx(W5mucDlOy5xca(D3C`+sKFe-^)96}hVS z+KQjtrAIREX7O$_cK18>R=@tk)>)_L1nzS=b!Yz>)?bc=FRNHS-7#NiIO{g^^ouQj zO6LA}Xk@DX-68wP;*ZtqO!wX1e^v5p=_k$a;V0G$UUEDDu(ayg)>*sVU^~|3CBpf41+PcAxXx-t+~a%w#?9n=fR_ zPqUxc+UB(Guj^ky^M#dcx?ZP)7brY^eo*eGZ&aPt8|%+^|AP9Bc8y|7pPKzK)6M-> zzu>|CRPT?k{1-xb`y7_oDF#<>8y1byG62-p|Bl3OU_!m#{Tnvd86#U-NE{oKJlPJ zaK20TrB4PTURhduH0BibD4ls;<;bqJ>x$6yi#2<1OP?$^xPCoIW?5hPZ~gh8BrxBn z`%;jd3|F}54^T||FD0r&iM8T>n)<@r;d8n9e&Juem#pniF1arm``5wl!)5=Uhkq^j zYVvHt`7)vYdFwtq^{srQcEmp%n;a`@R7;9(mzMQHc6 z^<8?;GS(fIl27Jijd?cZ^~Ab2L0>qZJ-H?NDf8L?bM|Y+jeqy_egW0AwHbj?dCrCl z^ACN=o!@2A#XIYXNqeQ<=|e2BQsuVl8Fup(>{FeKzR#bgF)vicI?YwqKyRja!G!C^ zA99z>H+pt@UEA6Il&6Ahh#dZ#5Ve!pZ`5Q+pXsh z+p!Cef0!?S@Y`8F_T-7_!T&=7E?wF-vdZ9o!HVyj;A#inssS!-n@U}(9;vR!}e4r&&>0eon}b5{gV9rLm~IU?5<05 zwA22*|C7v{ebnbXl70=9O*1|`YV+4G*`#rDQQIR8?!}Rc#ZF?@|9n;6{9*30IF{Kj zwrsg!%E1$}V$8MVjQx%ufB8G=mz?k}_o}pi#?u~$e~ULrH{m-~J#T7|m!^F;D6feG ziSTB{P53dRi+dKA!2HF9c1xR`jy%<~R=xhIQ+B&={ge4g!G=>m$?kK@4T)J>a{kk6 z1GCR3uUB8J7W&`$-}-+Mzx$d$)A^T9392*G_45A7xTb5@`va%yyP~+Bfoz#Awsh$q z28~x=e4mtSKltMNs$6fCx8~A2C`$$^1!|2gvq5EpC5kv`J|1}~L15so7w=hq#j{jP z|Mh#^H*sEyNf;=v1li4hobRRSqiM9>=-1za?p;BR``rJ4stzyB`KJp5e`OfHa9#O- z|49a;eRr>zZ`_>kF!zh{|NAMM7{q?*9{I;n4z}qzXe9yHv5V$QCULJzZ&h9M=fZ!{ zCmrDI4l#&Jq-=FlVT<_8pT3$Y6KA%jif!tLNMVFpPtAjSUf6m*p zRO4&DPjJ52v@>5{U;WQwuk9r{|L=2VkZ(1g{*@75DpDQZ9rP@ir!VT%%heT2QWIZ& zPCL^TbSxqo;VHIfA-zRc^A*u-c9^wy=(o6$0z)Z zq;7va_h*;y!{on`+k(6_!+%U#^kw4oC-09Ke{xoI4gBb#_(Aly@o(On=>^CCPmEu$ z^KPSiwb}bq?>)YWK3_Q{=+t@8Kx4lBr`ENFab5rZpIGw9u*<`bDj0!j>~^f-zj^vqUpGz-=FI;XT59Y&iZ{` zYX3Ro6I<8&N~=FVUhHB&U+{oL(f)jI&80Q^b(M$H0#A7#kpHsB;?vRx`pm!nO=2oJ zV{vi4`0Qglr}6GR!E$}^^w&JkcGX`}pFiQL_qD&bZ=TQoC3#=VUj4_fD_gty!@f;i z`-uHm+HYkeey4vOSNB}BSo7z;;_r9+i(lQ>T(i7aA;16Cyq~47{^!V){VcV#`jd0< zd-k)mKPPPe$7K8ca;@Lu-?Q*=?$jW!pK*VF=6+S*r18|zK8rJXkA$0k>s4>vud6Iy z%-L&DnfcQ@&$Rr=RPl8m#NT(;?lo}Vc<@}i=#9@`ZxR?%MPClBNcghZ|MZXY!uRh$1F81S zxq(%m4n1Fb=ycO`_k9HkOCN{)f3vjo*QL3IpAPw6SU>$k=7`%+x5_-E(e(43^{ z^CkDO$v*gb>4x6ExwX?T*8I(?Z?IV+Q~yAvUiq)d^NW9W{>{;x|FgX5xxB6Mg?d;0 z8n3#G_Mh(7E;t$gG_kzS@16WhouyMg?fv=G(@x9FTXTJS*o~>CBHKjHEu9jy&s^8b zyHfd|uj1bzFU_arDAj(YK<#16>~hJMUqHp)AC;&n|Bn56`2R-0h$u!=_(f+w14b*^}q*eyBge|38;yJ#*mOiTjh}UV6GE zTYr)6y7$F;QnEtzy* z(mu6bzA|olP@S6mPv4hQ7xlI$+xfh=c{1XrgKbA)9dOw zvFWp3zg{QSUjO(1kNXogQEO{P;h|&ckQylIxZ|v7dkb z(W%c51jBxbvd@2Izlq=a!r$2M-{1X9IQ(^LP+j~qS51CyIR}$pHh)Uqw#xIX_Fk5; zJ(97wUG7KJv-rvrhVfO!b91U?wur7-*x8dSc9`#b@SGpZEoV*tVP*RLzM|Olz=*&N zD>=?Q;*(S;ukqWa!*uaw%E6!YKkWb8|5y2G-1BozsPw~cPx~Lgjy2P6vt|3Gb!+~? zm-Y+Xp1ZGkXP;7c|I(fg&zonCovFK5tep1mWzPC@`}G=nPs+S|$Nbdb`qZF0vHG7azpX#bzEl(OG2jEc z=-(;*at52*<%<709{&1{@#%ta{#`R;Q<9#wJNQXA&R@M%JFU$B@9f^g?~W=O*^7k5 zP3hgIIQ7o@@cSuB%X?EqW-s1)=C~Q_{i#hMy4{)ipW>_1|IP2aTpt!#_0;C)e%o|0a=Z{p7XYyLl-6aD9l@xG~b6V7cZWy-!I z_s!i>`Y7+3_^13kkF(G7KNdUfU&qASYrQpI7j`C1uUAm}ZtOU(a9U8ETzy^D-_DEw zYv%JGtT~}-bK=v(!lw(Le=FN@Z=(K*zlt-=E{B~fPy09TL7kQL|06lJZ{oNP#fMFB zy}n|Hv)|=Xv1ySfp4H@UUUcPcAJ^m9+oDUg|6iS9EVcaMK5ah~PPkkda6Hq{r|zxm@G?`9SL+`2a0TS9sNrq^q}G@o8?Gdtl+jpWlD zvwf%Ki_XiZ_!*m9%Da8@|0Z7cvpMu%qKLcZ)9;U0Xk2yfWB0OaDC74ne7dmw=|THT zuTPXuG`lQjH2?jXKema_o}aTfjOJI@XMJ$=K|sXXF2h^vR-9H6ntA@anKsA!ZQ;jz|F ztE*E3wPx2erC9&J>Q=d6XP#8;Q+JK$i;MRk{_eNoyrtRg{}-#iH~-WBo%cLh<@0Ba zv~QB93roC?pR<3q)ArdiyXyy+|F+-seu4Gly^H?qN!njmu227Y_UnNe3;v(`%lh5$ zbNQtD1e?bqmu7C95>zL*-=;R*Rg+)5Uc$=8V9!tHZg$U8nNIvNrnV{mat>7wdZSLg z+^t)0kaYR^*@V9@8h17QytHBuSl-T_bw6GG_k5$b8~>a#eo^;Ja!Ka8k~ufN z|89Sl&J**jXuEHH$-l(%eV6w=v+@2P8)Lq2*W39U_HX{PGxyi#Kg@M!CY)b7W&U~n z@?UE-bpL;taJKzrdDHYJaT~35`&I=?>|3N!8!jA~F~#WdZhPlA#-Asgt}jgZ>a=^x zr{c`OT?hAjM*PkGx7&enDf^!l7plrW=PP~QZ~yn5@0aK~n-1;I{KI*ELi*)7Q-WN& zFWsLJxbSM(Jy@ZB&*6UEnOn<^wYJG<$Ct> zx0UP9T3(vmbF6I1Irowp^*`%>H|`C%GyhNcwmD0$p1)+%bnbcQz01EJ%RY(kf4uzL zjrRvv|1+LnT3+|=`H_8ZE_|48s$TtRZbhh%`p>x^gTH;BJU@Er9}~MzvxDNAmVfwg zvi<7Z_7j`sGi)Z<%B`!cu$!#?vr1KR_2i>xMB^mqf4lX)_S>h~8$Z3j`TXT-Me%w3 zNe}-#vooqQ&3AYwXDNL0j9v0R`%nL8R)0G6nREB&rT$;#Z??<6__ywNb$R`Uhrhfu z*C$6#DKai zHpwSBPo}>v{JXg6R_%iK#Wibhov44KDQ}{lTw=0Jyu0MgpOV{6hEi5;KR^F<)UQhM ze|+!Ku~YwJ|I{tJn)16P#=H2x$nMj!(|e1U<>dcf{I~dc@=l?{T^H^85B%%=Z^9n= zuJQN0O*4CE)_!?EG3eQb5{-egNBJ5kfv|MBI=R+bMS!wUM|9N}%(H*z#*BL*X zxi|3N!RODTN`6b!Jw05T#y?^0ANFHuADfH%^tM-@I<>#2{q-63IenMU|A?`#y=KE) z(pMv8__=<&{fXlJkRpEZ59A_#>;DsX>aWG$-A{VyzHYOwm!iDUPXW)0fG1}wpDug^ zFV`nS%k^~$zQ3L(+njJadyzR`r8)4_V^z{C_Kb+6b)ZBS%Z*b10|F_=D)xReip8s?IEq~E@{*-em!Me{6pZJ$|Kk<3| zFQZF4Z~gxgtDBg!tzP@@gHNlUn?LXW#IgBf?7s=s{}hU6?K}yp2{!HDa9V!NC;r72 zUYh5hPhSo$+*_p0@;}^l_Kc}q5mULL?~B!^*d=GTw4QlxZCoGTQ}oPkzKwzGm!;>e zWwrPFe>;DDea^=O|A^=MGP7P=bk>_bU-f@|0@$(k!rBq@f1j7AOsy#^lYgqR-{5oo zcDbJ((;q3QP2YWH=FRgls@DH6$vw_Y-}+yBro;2B|9&Mlr(WpvezG|IUa$VdRq=V3 z!{6(_`LzAC{eomQ?WH#Tix-LP&~)dYaWkUmS3u&qlg(~DUv||#`Dbu2eE#{E{m&jw z`PdOt&6I5aRJqXU>FgjDIc5UfJ)E|MK}xiVdI9`Q`_m{P*@t_0xOizn-{%^Pgu`2|gF#eK zNqd8NgY+^K)NU$*PBwZ~Wxf4F30Yy4}?~{{0h| z?YvZ&RA0UiQuI%YmtU^B*|uidzui0XYD#b0C)TI`EWZ6E{U`gM8H)40HNXFS>NiVt z=~H>Rq@Npp#Xe}<+dbDZZo`!G3f#RxX@Ab0-y!)#nLD<<=_>czpi_^xXxx49KPdih z_Rr;qm?J-44&zT>!0?Ls*XD%#UNaxwH~H6heuwN?PtADbqWqr2eZ4bLpc3B8axtC} zzjM0taH}(IEKIi@~s%VM2WbfJ!`(v)3?|Sj;;{F$VCe06@ zP#@c`U!MGn>%`x8)0x*T`fGEsy6WG3$A4c<>$3X)o{9T9|L2eugY z2_G@MJoV@q(RokrbG%*p{`H%u=E+a*Z$5uI+*!{?{)my5iNyX{<_hKIU1Elt&(C<@ z|EK=hygi?44!x^+8T{A%TO#|e{jdMsyDOiwV_(pz-w|R<@2vSHu2m~%x9i)X{`RJ0 znSF9fTP`}Y*XVv;Z<8`ZfA3DeZMJ;3xUOArIcC7M-? z{6?=l#_SYtMa`F5ev>}A{-<6%+F`%nCj38AKdV{i`+-`2P~+Y1SNWMgm+vhoS7DbA zPoDdD)0yS#CEv~`s_j1Sbi7^SzrH`qOytGxO!>E9!Te7bdF`rS7+lXUSy#@_!M?ZZ z!kITp!p8P2MYlNq#H^J)_@`z<>c2boA701SP1q?@`*Qzn?+HJvuATd2FMYm3=FxY< zFT(M^Y?x<0pHuphJ$c{%m}))|;azv$X=?vBl3VAV{-k71-LdDtUT%ISxuE#T<&K&E zcmH*q_xtSDggdEco=Y`+vLsPR-po%Xm_%U-|DxR_o^IZv5n5t(vyaApM!L-P|YhD&@Y%UJC!N zoILO6{@e0T=EF@9sN%ZvU6mCB<9+zuX;l=tj=}uwMtChM&(rC;wD1 z?eXqEir@b@J~Jtv{5dh@e@cDgbo+>>@@|Dwg7(c@yeNcUGVetV!yCD%N2i>hpK2~& za(&`^rQBt@DR%c~{@mU4b0+t8&wp+^7tMX5F26-me~sKN?Z`vTwg>I&A6|%g-uZ9! zzf`~U$|^DK|3>$X<7X5; zt9zEuz4{N-z+e5>`r=28#hXn|J=WR3`;TIHe1%{9-u)X+-`D%!&^L3 zT30cgJvQlbJ72M%oJ-P@>u;66xAX4%RrBnZDgXK&_b0c6H_ZL_!}M>@^{2c4ERp$d z8|N@T>Ct3MrrPC(z2A=3irSf7>X-Xo_;mhhms>7%Qiqk-{88rXPkqK+?DkkvzP7)= zG_U{8Qn{Z~DlHY?GXE-mbEUq({zd<}6&9BJ4K|;T===Ti*3aWM+mGM5^4#i2$$$56 zvL)}o{>={G`O9r(e!2^Sw3jlpVRuat9H(pQ}!)h z`uNDdcQrfDJk6W^PiMcKpLbgI51qf|g?E3v+E#z)-?>lEx4k_7iT{V8v)%Ndxbynu zw;;{^)9p87D<1rE{xkWY{~z7?u3}P4&r}>WezV)zZqtQQjfnlHjdx9X@7H~a_n-dH ztNWM9AKcGavF%;>$GKfE?zh%;2Zz-he|{$X(wr%uETO~0n)%CJU-Eu=dw30KNPg)Q zW6;b4sL_vY7jaEw;HmR@bN+~M)^k?=x<28bb;&)spV_BC!{FPLOYIgtp7|vH{ABH) zUr*Mzo{C#vx9zE5NuA%9dGqd9)KPqmR^OYgj~ame^mS@H4~x4oPes7cRp(T!gh z+@zn7gtbZkTW9a5>1sC5XQ^+w_Eq~@VB$HOeqW8WoZd&1{a(8E$E8SppJw)C`7Gs| znSV@f+9_VYbjSYayQ1T%i|;fXcfVh}zVJ(hPIyv;;jQO_H|#&of2MHSw%~rS*=EDd z{r_Z*|8FsWA$#)R@v9Nfcj$b6neFy_d3OFf`_Imw|IBUhk9uur-BW-3Z|U8vdG_+f z@kZ^te>+&7DP20{{3HGO0g#rwbY52d1yD<#(Xcwh@VdN6%zHTlzN)VaX5DmEORM8} zvPJO6&M0f8&#acmw*Ef9wPu08@S5WPLFNw@uNU0BXII~qc0KvSWp;Pm?Ko2A8DCo} z-*fg6`>zuhOuMp=gWK>I<>u3+4R6<<8_4xj;BF>6>R6Pde$pvFpF&nm?y&&efc>oqh0^O>ob|@MCwc8C#sxKlA7Q zT6eokOD)Qt2cLP9zHZXo`po{1TQ=YNKhOHso|aFyfAWg^{L9tf z#mj!)eky;#aPrikef;jOngy5p zxbqv!wG=y}eN*qv>8@W~k?|#*|6O35d-c=gOK+F(K1-JVam4+h(L^)R!>c2HZnu`l z-)MJF59mpm=Wj?!32xUPKX2aVMN`_F?a#>MRpkFW@X&EW(X0#1&c6I7C$o3RML-+v zInYMC!nz4@`Mdw@xRbmf(f)bCT6UvfSNuDSudn?1OXl;R3o+~l=bv_-&e&Hc{@-}U z&vx1EFF$WNulzqlsrd0G;lB%PL-(y$nw#}QrR<;csVVh8m-?H2znlyiu(>~1fBMcl zxtHfZy?#9NWDfuQrT_KTNyp#)=6~aUC?p4blrIY#vG-_Lr&MV>`LD1a&t{zTE``HEc8u=+zY9h$5eMW;5Wm(J6p{=*0^KhU+;KO_4LX1 zhS*XO)_;qZ?~o8(Hp|(*dsAp);Uam zrqsD58-KX|nf)EJ(X$7;XPv*lcE2`zf2!E@KP7I-#v5jC1bhAW23@bcGd@l;a7#4M z;tFF8dlgz7c9hd~DObpjpc5RTCd#)tccuS|tlp}T^iR7xNc8Qy&8N#>zdvOx_Uv~Z z=d+#t22$EfK{HG#(NpG$xQpMD!Izu4?61YOnkv^W zH#E>Me)nras?CX~uk-#IKY4O&_UWTJ_shVGw5H5IxJ_eefP^S_Q&WqRbAZc}8vUjp zUw&HuHPDV=_#G#*_E}%S{f2$wzF%VPcLl#|4gR%R`R&20PG=r3o&U|aZOiuPdiQzT z5=_i)n;$Eh^JfR|wW4KF2S9VU_owFua)}83n&!=`!BgTJf0XeoH>dn^RpY-73nv)b`c_KWV0-aq+uxl{Va-}w{Yed+&HEff#x!|pSW z51LZ<+^MPQ6t^muivGTiUc-sktu@4K?X~3m6ZidY&(Dl^z1wm3*W5XF|BTOnR#Fk) zIq!97o&O_n6n=lcLgVW85EFd?hsPpZA_BXXy)Vj-4B4UcHTZ(Tx+Is+4%bhZ=-m`e zX?C-(E!gnVHMq&uLn*2+D+tK7w+mm>GR9}E(=jx<(Zo& zs~?&4Q?mE0glH}z4c|Z6`lcsgU(WeYi!C+nx32$+Fnm>#QuHB-)`KfFB19urhM$cT zwGo-B6_99J-o`a+;#-!x#(&rBjS?~ZKh!U>35cE@4M!Gk^J2+vgE+5iTf@~ z%$ROjUVFkw?#ZXp?RDznoA($$tDJeZSZ*UY>%Kp`O=GD>gs7kh&%d`ytO4h~D|PtK z-+!5ZwG-R#xGi%;Z2Nw*ecAhB;rm|~=N9Szx-?%llfTTh@X^Oh{=X%iZ{1#d|77B{ z@@K#P%$dGVarY~EtFQfwz>f6a=BgQ>^5N2VHWBt+%ho??c-Gp|e|gf(x&;?JW_C>q z{;eIht@ZbW*8cUulk3&*#PZ8Ii7T!R4{W_wxx4GP`7c@jh`(WP^8Wg*yU!_m^xb~LSGh~tZPtCcJfqou3&`9*GW(Wj z$cjqcXXR4TchPLy^Fzr@f5N9K_M?lQyB~e5d8YjT2i>>DwwHHC@1K16c>S}=xH%X9 zJ)iMu+T#~r439pt1637Ie;0>Lc@?cSOI%|?VHb;Nh{-R#@6%XYPY2nvaz55-GvP1k z^?5ug*3m5E%Vl=<*_$76Pe`xPJ`pUIWG&72c}n)gUtu5LT$}%b{n?qCYkwkRdNOTF z`*V5~+`j48f>sxv`koLyB}n8)_q;<%Av3c0{_30xYdzXo_vFP@i|d;Xsv8~ry2e6k zB4(045Px2N2mgr~&F{19>OrYylW|i-iuLme_5D|WYtQAhOU(fnBz8I7L88Jpg^p?P zxVau&b--(H*11&{3s)@c)Nbtwa5UaDcR}^C`CG%gm7b-8%X`(_s*4_ZA5Pbn{mlF8 zr#Hj+ba&FpdIpB;^Qym>F5L_Y75nboz^WjbK$`%cfHf738evv`U(a_U!H$#6=?>!Rjoip6 zq9c;hq@?t`TJXs7^Y>r2haPOM)t?ns?7k!4;Xb$WuXXZwHNPLy{Cjiaw+C5@&yZ90 z)bCriCq0RNrE338E00 zuR*I5KN*7-_E?JxiMYh+1a?$D^vvn$+;h*7@%hidj}=^>@7mXR|JIUoe{=2qlP}?) z-Cx_*H(B-=-*?>pT>UL*?a|Zp0%+2fSWw8t%EcACddG#W+jX>Jrv1|NkO((iRJkBK zMQZvRu1$`M=i6D_kP!`Ksyw#6$)@rmD=2Yqn&1sCtjj<3m_L?$nk=H5FgivJ?Qy7*8?@r!Cf#>f^6^sl-*VrjB*mi6K8d0P-EeE%kmP{9{=yKA=pbE$u3 z|5-skW6jqaGoD|+;aywjYyTJIzSN)oNK-> z%69qH^H=AHU*cJh``>x6jY_-`s+7+X|kz3zp#K$o!MG|L=uWzkgjjr}9Bv z-?0qNZ*GslN!squCpCG|rAup!MAm90fYX|7CUlY7J>(T>bq4?L2lj!-zEAlhH?=`} zf>4*SG5`5)@wwdVV7)tXAwD%4Jgp4(35zvnb^Q|>=~aX=5; z(6MjV*Yrwny;R=NbfR0cOHtpZ^DOrg^pqZRz64ahdBH|ScFqVW>?t9h1vO$0icG-1cP-+u1F1&`j8OLoTPlVPd)jp zm7f-Imzl{tOIr3~8V&)U*fDZMe zf=8KKIgWOTOC&+s*$3mqEX%nhuT@_(RjNJqPnlJ7L)wz}CT%*O4t!NST`}SG^}D}> z|7w0Wyf#@nf93tpZu1Q{-tGoD?hns4S54L?aZb*o?5%AJI!^qIWBK^WhwuE>g6r0cGF%L z|9|n@bb-UG#vui@8O#5^);L554kP?0gwi%pX2Y=MNTV{bWho*fi zZ1w0{c**~KhsM+N${*a%FVBzCdTM>>yzkeZ`uJV-*>zQQyZ(RA_;+ge&X6fZ37Pw) z|5?xc^GCp3m(}X*e`)_)9M8PZRXOU_uATLN&&2<2%h$Jp+FZX{kNeMOi+cU<)bgq8 zF4i2I+Fx!bl3w?}FT>vNUFEko!f|Qyx7FA6o7=B{e)HqqoA&Xq--=cnY?|D2Y|_m9 zBky+k&*O}5{k^Pw^5fqViXKgUqw+20{MMALO22nM*sXuc`rX^V-eSFWUssUK^vhfB zbDEtn_mqC#Dq6I^Y{E~+q`mn?&qQn&J0G}l=G>`&n#O;B9NV$r{lAOfe+0c-P+b!I z(#^r|{^yTVQ`XqG2A=aj`T6I`nos{~oATFxdU)<6<9~bX(f1P&zczT2FE#);y zHA~NzA9!B#zv9oH;5*-^a6eO!-upl7*XK9NpJm=%d;iD!>wmu8-`{KJth*t$)S_ka zy(ub_)+)rjlU{AfVJ zpSy+S&%CLQ`I7#dfAinl4_|*c9JuEl`&+&jOFDaMMGtG#zm)d<{AB-|%yl_)jy*3b zdA#}D^}e3z``$4By<&QcUFvg_#&?yjzyD+Xv7Y_&)c9XJ&-XkQFMF}vR$^{% z_{Yr{CGC2@bkTWp!}S**&px$PU1W#d)%{JSdD+J_^c&`0 zth#<$=Fhij4>o_;H{+&#>hk%9Kc}?|&wR8{@Vp2689uYepX?u}-${1f{yzTMjD5Eq z<%=&U-i_JK=V9Aa_+9h)!~Xc><8R+zdw=8S{?q(tzA=9|`gG0FzLLIm>6Np3*FW;F zpZWUJ9RK=~zO--t-_)PZ{+&P<0n^-K3>_5E&DI+SNeNwTFH-x(ob10g+Hvi9G>!G zx}DwSuwV9@>koC-vCn+pdCh29;q~VN*OfJ%XT6;Np8M=Xe>wHn?pAJ3V!r&C*O&D5 z?~S$h3m@%2?pG{%<{NXEk;T{fmYY9b{dMNI$N8-KqdEV}elzcz_EWET_q{ohesd!0 z6iTc29Y~hAxofighpi^t_gl+vm{mOKf9$_|JO3wbt=F!(dqVuly!WwslX|SbT58{2 z{h87D=ehrLYf8)f9Ol1XetyP*Y4Od+o6giG)cx9h>Ak||og1R}f6iC8Z~VFYcRIV} zsT*-e_2tq6XE9#<6p(tUsCdF}DfYkn?5;m!TcUST^7_LfS?j;nZsxvnQ}+1%=KQQG z|MPM3nX`YE`)mKU_WPnPH~Cpoyxo~=i+^i{fA8P>^Uq)}SKZgX@sz!C-OQV9cmFlir06_<|B2ape&VyoC;#pI zH`o5m-bwT4{+;|Iyx48inf=GNKhCOA|0Zgjyg4GwEbPs-liPMo;yw|x;o4VAapkG_A-e23lcZ%uE}tbdC0pT5tlQUBJs@nVeO?ftTg zOY`J+J};WuE%@To&nIJ z%TozhqI|H8|nSr@*(tI@dMd3%|@>?LKBWyfMHV(p!a-_Oh6?(J>V z9`$c6aCe*F>LInR_c`G(ZSPl+P?U&lXXpYi(f;=jyK z^>)slFZ??*`PuBKM@F;O-+%i4?(hA#_lv%eS-W)UoPTfr-FRpzbyV%b{HmGzH<_NQ ze|9ppi*xSsk4t+)d6bL#g|5Hf_gkt4c3jBJ`~APv%ZeuS9=X2Cmg(32u6Uc8B^pJJ-bJ>A>$?MSrd(_+cHoA13dy7cnxa^tR>(LZPY*|Zt9&m$ah@bKeB zA@vJBorrIk_9^zodh42etgVNi*AL#=BJ#rIe|}7c@(lf*|5c@Te%YG!@A}Kt`{&tg z-Ji5HzT(f9%mrKDt*?oCDRnkI=4Zuo=fY>--*0+E$=CMlKjquy z&d+nV-zAiU7^;5Ib&VHu9y$e-VGOJRKto}%$#yd zHf&JeS#m-@WzufF!bSB*Px5vkHw-F;Gx#=5{IC66ea#nRyG@!OuKqon-Cp=b^-cGi z%ikkRw%xM-;^h}_`Mj#!Zq6O;nj}55t$ACnz1{t%S4Si@Wys`Pbd; zxBhwaCi^iJcXqQU{p&*yyQfd9w>Wu!?vI4D`;Qmd->#qW_C8;HyL{iHQu~Z@2X)_+ zH>)MwepYY$U;ZchVO^K-e-ro5Lh;L={hR;5@X~o3@8##_ztc@G+g7i%f6juN=1X%V zbcL6-SXZu1(cT!7o&0jQ-A9`PS&aYBc>T**{zTE--_xsJ#-BWY&My1Xy!q?} zl}%^fZhGhS@7=NOo9Dlt(En)W%likdl0N^CIeBz(8O!TT<&NBC)oJ1XY){ue*&?X@ zzwFGLdB4o1+pqq-H?itvy4+5+vVwTo`JXTURApYgD5P^~YSImZCw$lKwpr&`eaYHq zW*)GQ9@T8r+@RexcFY-v+c#G zVxUofog*QI0PE#Jq3Xvv1|k znZt_xKJ7n!-}-y}ns527>!p7--TA!twCkk8<#y>ytEcVX{m=gNe%W`+H-Gj&bM3Ik zJM9V0cYoe(0I{Vr17_vld!c4$%h6C5KR^3(z;bZCUI?z&*@b?uGhTnW z?oiE1_kTYmijDujynO0kpYY$#<4bnln9jfX>x+G-uKrD4_j|eB<4@Y97u5Nci}b2$ z-f4v0?+3@Q|0m%H$>Wj`I~Wv6XR+-|QRFM0as?mq|4rO)_T zv8jGt{d4}}^-t2%|Ev7FI%lHJ=l37q?vT3QS$p)%4V`IIdqsDbZqi-%gvm&JO=;~p zpYNxR@BU|hc)xI3-Mc@+o4*zm@y}`cd*&qP4};UU{gb1oG?|rcvFu5mRDAE%hNn?n z;{JBKBJ_8Z#YUZ%xjA+JhRgev-!gxz)meYn&geY*<9CzKi=J3|{(6^8^v(MlFTdZ% zF@63I^&)-08*k;e-Le1m(*8%qv-GFo=Un^e@880oSHHdP___bFbq8vnT>f9!p#PHJ zYU$zJgJPD1+Z(dmIPeA#8iX+JG*+E2(|sa(5k z{>QbSHgC4?x__R12Y=14pHfdv{yN*8zJK?J-y7!S#XFO>)myv0zGGK({;8I@@`b0L zPyW?uoB1yE-@9M`dH(xJ{Nx00i}E^MyO#{M=zS&(7%Olg}>y`QrV9O!rNb# zI#;zEyE21&`RnwIcXvO(Ez9(L7LXll{&(X4#h)FUCx2aFD79}#&er`6ar5n!u5VUL zi;L6s44#v zzUW_w)PA43Mg1OVyXcE~U(2RX^vk!O8+hj4sq;^!&&`F7d+nPA@Ak`xFa5GhSD-=kr2~&%euEeis&<-<&@GgVFCT ze?M36`B`auzVH3He?O!0*WYNKI5)*)+K&A5U+O`NM&EkO?SJv(deF2NEd}3pG4Gc#1|GZFS?vu=Jt9j_k-YC2mgC4vzl|B{6F=N zQ~PgEe-2koY5nJ0i88gEzmRO`h~KUO5O zWcJs2-7GVYtN49C|Ghc;`(wYlvTu!sCoeYg{(PK$^~1%PPv!kSm8;v$xcPm@i}T;) z(|&J1eEnhj;)=Wcw`4DP3QPXhY76`~@9lrt|85)7mG{T=zm`Ax!tTO%%Y9+FPwc-< z;h#0x&`K)$?tSa9f6R|xT>Uvs_j%Xe@Xx0?XVnIKUCNZ4AoS?T)=3Kw?7VjDQu*8$ zr+vR?e|ggQxrO=q@?YT_&gGt!c*?rLIO=`X%;x*|glfd@i5vf3{^pCZ+Wk)-l!9$c z9!b7zxOp&rsMOhMJ>O0r|M4U$p?d58FUIFCRu)`%|MOv#;ihX}m5cwzq@S^_KG*p_ zMw@+Kc;ER-^ZgYTT3(_Sy0Yqxw-^p??e7(O|Kh^xpSOHA)Cf*WcAh;GQIlH?g_>M) zjpzQFGv|BF+2zxXB#ypa^G9xNs$O=>`AQXb>;L`-+HdZwG2QPn!8Mc3=kpT59(9Q_ z_N$Kj*Pq{7xgvP_lb-D2*yDcx`zAY2y`E{GxbKN_eNE5Kng73Jrq&|W1ZWpu^x3w!5S^fTa-rv5t|J8rae9OKjWx}sCNQ>ot zHS6v_3g=CYZ*RCQKcT

7UrTgy+U*YHV)WU*G?^eP{Tm&713m{%4)@nD+DgkFuEF z_eb_6rR9j7K6R|?uGLMk@FK>U+}C#5r7x>~`Z)Ig{D=3uF3#I|e)VQcrrMXE{f?h{ zKl$_X*Xw`H?)hWSxO;Q$&#Y~(nlB#o3LU$VCmcR|TDE44jpd6^yiabGX4)2~g#SC_ z_rGrof8~l#x85p$t}%FL_cNw3=2y+y6C0=gm9_r+uDjr8XT8$*M=f{%C7%Afc>cfU z{`9)Ax~DN;e*Exfl>)2( zp8h)FHK@;BBYE`chBWi^Y4a!lW&SzM>QeeI&^B@F-;00zt!emuVEO#@fqs|mpKShf zxA*-KI|H*>+G)SHCvQ3TR{49(x*|iSSiAXm&L_=y8Ta)4y8q`t{uLv;S$sXuKlj)Fc^rS{W0}zW^YSm#bGFpa+AZyU;`Y=%&d)Ty^Uu{= z&KdjuT>GcFJ92+rQnYnS&N|b2`Kz(X_jftUoV5@pa^6gSNGT+VXB6cmE5mYuIULcgsHD-K5<=EjP|LOWU_nRd4anU$Ou0 z?ft*|Z*=3ii&0UhUY>u~FFS8>U=GvYmD7J3N1y-nzpvhU$@S=45px&b{n>Q&=e@b{ zH%>a5rJe9Adi0<3#eb2y&Ic10iQEi7*cNBIz}Xck4!ng z{QGyAIEhodZzspeJ^lQ!?$?v**O&iRo6aw&uaCNyFABNbXQ@rI*iw6m|Kc}RO#ND+%R>+25s+j#2zuj_?R zzdtDd$9-YG!}t8N{^$L_|Cc)(UuizQD~M0$ZMpJ)s~NMWG0lDUzn43g<+JMd{UyrN z_l2GPZ&myCdM9X!&=>Ch`F6ZpuKk_ruN}MiXOFi0`x=dNfBwl{tebP^^P8LMd(PP9 z{{JJFUl(_N^W)u{>-Sx|t^F+_MP0I2)%bqL-O~9s!uzsi(~0?*UL)k*WP6RwK97PKlCP)v|X%bMSMLuhcn)VURe0& z()rpn8TpTmbUNKf9Q8o+W#qY>yAB%mh(&LYIn0ymNl@x(R2EL&-}uE z-n;wiXD0v3W3N5q*j`fn)=J?k$FaN1=d|0`^~!GFAH6^M`F}logWLQE#HVi-v%X}x zYu?jLvwdCme^b|;F1Gu7(Q?*J`Gu`*r=g$m!{u6e_UW+|>|L%{nZ^g2o0&R@{T1U9&$jw*YS#hN=!8Vs= z%+l^Nf-5Oo%8U@!P0kUGu{Yxl$Za1qu?%i zd-ac_hjqM+6{6%;`FzMwPCMxeZcZ4ZjQ{g~i%pMP{pVgMikZ`ndh#4WIWq@B5qPx|aw=|N5h~%~eyQbMX>mlqmpvk(k|jYt#GQ zoQl8k^8Unciu_q|yK7VC@gKXZK3{u+_x$yumfJS%PhNh%R#4CWqyLk*IU8=<=j^Qi za=HG)$1~?ot)J5^XJ4Nwf9D^#4Ym7E!|xO7#Vq@l*uR*pNTfOhDp6*GRthKL~*?+1pvCAmfBxmAwSbX~0Z{inTe|CRT zbxoxwG5g4=_P{^u>Zi<n2Up#y@5Ele{{=H_Llx=4XLdnNQze{{Da7|F8wcTc%Ab z`nCCYa{KcPk=YLQuTuY=x~B1eruuYEwUT+DyX6dfPS|?I?En2P`vY$b=APa=SLQQ z{r4~STfc;S<-5OM{(Sjon_iM{TA#|Eo)*HfzYE;nc!;IF!EuWBt#&-$)8B{xUa4Mv z=i%z}XV*d(=1xh!u;>f>ziKW*>**)uQwczOE&nzh@*-y8%TBITX7PjL5ZyGpeh(RZ`&`S!hcKGhk% zY4VL?+v}57zMOOB+x`3X8$REE`lI7s`qTeU{{HUzyz9{ljiZH@f7hhch~H4SuaY}Q zUgt^W1r{Uwj5XhV&&^qsUcw!R=fT)+8L zTW@pKO_OE%vto~ZD7#*vr*e%2Mdt-AvnDK}8FwA!FpU$a)q&T8|Y!=C@%9bq^A zEhql>=D))^|I2<@{V5Px|J!jlvsI>2a{N()Q}MstF5CRnub!nXz5L@&nY%yMeBP@3 zc&Ywx2m8|AZ;i)nz?U`pY(LO;-qUi2%~x9{t10o|{%d?+y!oS6ou%UDe6O1w z$gPY8;8wn}b!AA~P2Sk0_~bArKU&Iu9z-U>IXgt85i)Bj7_KbDi;Rr}xQ_?NqU zzh*S^y?l17)Zvw2&u)K9{`x;s*6`ukgl+N-`g-ZQWlM@nY)@a#sS&OJbvkDH^O|3a zi%mAyZ?f0?UUT95A0zv>%E$A2i{Ba^JY)ZC*S|CDn_`~-TN?KZ)N?&QYs>TJj4|^R zig&NsJ!${$k8j^Rw|cU;BJEfChQ1p%cJ4(VSI8c$y2X(+`{lixvOoDU^>Y=XkGj{F z?<;$7Tj%%-|5(f8Z~MR1Eww-Swd?ro=KOV+KX1LYKG^N&If)%%eV6PX7RQ~{m+R>Y zVl}&!V8*!f@YepflU_@^ecn3L;irVmy5wT-@b z%g@i${yYDs{X>`i&1b&5WJ_M&@w&LR?xOSG^~61o&HXiJ>bt8y8)nu# z|L?cY%36KF`LCDLeG*QuKbY+J%+A36Z!Gv;uoH&YirQk?i{|FmOtwEW^X+xf3z~no zxF1;F^EUL)qeQW#k^;K?p?R0Ut&RG;3G2Tyv#j(kI<|G@y5!~c?eY#hr$LH4!V`SXN-zWTfU^822olRpwop6!?yc~748zx>5cf9?76 zPj1s-RV|!Sa?I$&ob9(x#GGFE;lahH?M>O&mwr7nG4?07^pMYaO> zbNVmYue*Ft!@lQdt@?+PxfkVs?o59Ad9$UKm**)RiDMHc3z+&Zn)LLnu-E<6OHYeq z^s4RF9l7kTHn(Qpi~A2>XP#=#>6`U>y06qvftRzRj=5iM{801nV}JdhZp(Xqk3RoY z{@c_0&A+%jnX_{Dr1BFoPya2v{M2OO>$^V#_6cwIjkj9jp5fEGvtUycEG`2DBv@BUuDylsHy$oF>GEA*|JA5IHG9hc zGm}q?2wV9-_Lg2P;r2vMb>02i@1{T4z_)@no`1Rh`1`ZT-{)K~+Fme8{^yJ*w=T{R zzVJWv&!dORt}D&nYbQ8|nFs!iNlSk*w_tPa)1SK8>+ap(fBK)`W99RE=g*seZ~yb2 zcWa-mfAio>57$Fb)9u^`tvQGPYVAAaS7{snw|~Z`pI`pXJIw94b7Ae%(+g|rcg(NK zpK4w6btl@K#vkcvfn?2Txc_6?GUdHf{oRMvm;Xk8zWn*}-~H~N!|$D4x@Zcs_wTzW z_VYbkw$x$y&-%ws(g$l!{?)&EV(I$O&-?x2|9*Y4@~^1&-$Rd=`!laCt$%vi>w1RW z<5S12<-3gc*Sl|#SO0EP{f$$9v;S@T{l{m|zyA5nk9Tk8umAe3%U0s1r(5#LGv-O< zch%3gtUpwHdH2bWwH}rqy~>2D*FBFiGMzj5=D*i}%d70}*cn~3)&8&k{(fX!+|j_m zuE#~cB2WI%+u*p*^OlAFnhC$RHV?$8#{4<_FW28r__z7~#NFTXkNp9Sbb=cjy#yK? z4kM|tQCPcE%q=`{r8!Le=hu#e_B^!7I#!%J>{FPX6Ni&gGP(WwF#mU*KcY3 zS|?n)ud}jO&R!&@+Ntq%@L%nS?N$v*Q^XIP%h>xmm9MVa`$J?!{FyiNH(fqIqvrJC zPM?n#I?|Ugr?Jm2{5k)l@w<%+Z-3V>_PPIdLBHjT33=;c*_X&2-0^$L=MTr%Z+r|N zE>8Q+_~TL0wIp{d_v@Q&&K?W@xP1Sa(#mto?XBF6f2;qVTy&nj_PqY*%XUS7u321{ z6F&1NdEM*tH43Lo-^IULTCZwv{d`Ec3tVq>e*j+ zoPAuZBHn*X5OlQYwwdqd-ktbjC=iim7#drQ?ybu31Ic9yu z9!ov{yQ}|NrA~RjGx|CxWB>c3=D_Nhmmo^dR8zH?0ff;p>~*6-6d zaks0Svqt`<#Khu@kE^Y^u6|G6UU$6nznt~iR0Gf=fCpEgbK~!oZCC#l-Te3VTmBzW z&vu`ATUDH9S(x^-@ygquO#O)|ul?!{T)%YZ-@BRvS?4_emH(`M{;&J$zqKDqmE$K= z?EfhWK^ywn(QWR=&kpwwszgw*@~r}=XRJ~ zEq(Ll{fTC#8|8B==YA7@=56=s`0*LDfBMf4`&K^Zg};s3*`xbvW~_Dp9=h(GeDPiT zuaeW_S2o*Kf<0dhZD-y1SwCq$cxA`ReCPtdec>BU^M8sl-psrEFXPV>5$EndWiPWk zeCGJ%zr}y8>t|GhQh@r$_0M`zX4d!TAHVv;?~Qiav9yhAa@O2fJ2|&dReZwEgtf1W z({}kMd0Qtv|L<2EaPet=*6ZuMU(ZzD{Ykv+SNW3K6V0=(=gH4} z-dyIDl_?FZDe}s36tH1fiAN@}L?-%(Ro6nm+X+K|d{CxZ^ zcKFEN1G`TrWg6+aBH~Dn-?8@E{r8T#+t;4@yfq1Y$=Lk4tc8o>drF>GDcHRg+;ru6 z)r6%rQ{<2R*(dyBlI{ZgPsQ!O|77)b1x+&IZZmwM;&OKKij>OFEtkq?mi&~NetKTN z_Qx+1J=N!{|0@4cHS3eY?8VQ1rA~IUbNRJw+Q*9}3O4iW|2&repVYT~@{gK-9`?zL z|6aaxH^S-Ox+k(m?mO#Wlvw({s4BOc^8QHf<>`Dc1*L+M_2#Ubzi?;y`R%uts?Ky? zTYC44`@jBk?7V*0nvZ4tc(m#2Kc=eMe;qOBXSEpS^hW$N=(_)P{U_!#Uq4>_*H|?D z&e`*wf43NZ_SG$vJbV59r|<9n-hX?atEBJRr69lhvidh4WO|c?U-<7m6Ms|csr~0C zMn_xDUH)b>app!nC@kJZ6%j4jVvp6svjDSDf6j`PKT zEu?{s)w5UB=xsLs;{TH>Q{2J3$3LB!cghaX;7y zO4%~km-WB=|F3*|5WM#)Xx&B~um7Oy6LQ6)p^9E_(Wou5*7f>-)Bbn*^k~iagD>8^ zjjEJe{O4WNPaU`FE!j`24R0Ne)vk`3Vz)C^(`)?&=Gc8*^Ui+1^ryalSG)cEcOSDe z0)IXE7V7%a{@?NcKl1;7Xt(#dUH?1(|670K{pSB)#s6KsKi~M@+x>sH*U#_%Wb`jG!#{Yj^FMDd;mi2#@m6SLflwV>m`AFs8po4@bBzAMs=U}&$L}v$^`!A|NqdQ z=Xq_^;c(GK_x4}5Td47O?t`>F!3;eW*PDL_$4Q*Gn7z98V)3JvtKB~*A2@E!pY;6d zdA7YL<~?0M;q277ocpzniw?h^diSTt{tf#-HC9ggyt4Gg!nq$_RcjO%FnyMy^f`rBhJn}&}c&o$quyt>)( z#QpU7+b4@(GLBpDW9?>F`Q6$g`k!CCpC|rfxx}9Hzvk+Gd{y1?arN)xf84+Sk^KG5 z(?)q-`kRf-{&P&fWt6>tC0A^hng3+|yP57Y?B2@jdS%uGpNcpacsf5Q_S^dZU-$p} zZ78}uYu)_puDFvgPA^**UL32o_ulobx2ERT-H)8|%0XQws{gp-F{!f`ou@n7ML#yW z);l48XWaEolRtlYCUv*qQ|P9d{0%wc^RK;5T=4ArC&%O(u9K$IYbV6^`)?CIdG*e^ z5V=Kj&(+2b#NdCpWEljF|OV*ix7MgG+4!&cwJ)18Z#o=!gV!(^RWjr>LL`mN!! z-fyejcWmqYNe|aQ^PeA8-WAlla>noF|G&)tw>~N0=(1;u!HQnN_ph&ha7E@<HBqi7i)Z-W^Olo9{aS)d&>)7uzdcjurn@YUH``|FPG%~+BNO}A%2|` z`)AtT)p)mhb65Vd$%WrJ!|XivuP@v^>-h6C{tnA_Htb*HzklbsTK2Qk`JU~tySDC) z^?8fg*400>EQ`~BrrJDy6!lqEeCGBk$;Hpbd9CYwC;MKj&bzE;;QqNW``MfiXVMSz ze0R4DitBK$eHoY|H~mrAI+N>P3*PSh^tB--V_#111(`1=_|{xYn!oeJQ*DEH`xsx> z^6m3df2lo#*pUf%y@?U)Zs&Mz+_HQ1amp1!fH^0Sw z(B^*jmyEo1#nL_6@{4cWwJSP0Z$K7U#cMg z)a~Hq$umK@vMbty2={o?aYF|%DYe1Bc}Zo2yQ#GEDW zwNkZbm!FK6pS{)p*D{l*6WY5DKh9>b{OqP6y;V{sZ~wtm@jq!oKNd0b+PUwuwzQvl z)I6&}_bco5cj~`l(oZSARoee5{np2Q->!W>S?ezUH)nHg>AXU-@Q+#YqW-^Du*pqM zm|LOV#^XxK;s1>CzL`FMW|yLK!iN9S z#9i)|GH0JgJ=c*u8?IxpS@%P64cEWEbkU_+2Ag-DxqeY%xxg1geV)k4tzN8rc@^J(u$b$_jLDyibZeh_nN4N)u-~vy=EKWf;VFHL zu~O166VDuf+Wlsi-o&aIt1H)pudxPY+j;whX8&=XmMwXCmiA8er)M9|D*S3YUr)H_ zqIanFV zFP1s??A09A#XsMD_Tc-m`eWv|_aaNR-fWuRYpQ%RgZH`?&&%C=uYUC~yR`VnLCPq^0f=p*yo&%!C;kDTR;+OxmQ)~+*t zI-yMdqp-=mO|g1EeCGRs3bdo$_va=53jcQa^Tbd4>sS1}yY+eN&Yp{Dc9v&~>vw#M zc~-Z?_pR?S6DjGBuhN+<3+fZM#h+UL=&Zz_D6{aYm)g^fXDdHxe;sx&-D<*5yT)^e zGUO#r7ryzmukTuK#aG)S6~~?xYR2<@-ulez9b@boPm_83-n`kp-a4$f^Wfi8*^PX& zzD@dMM4)BTBJt@P6a-COm`^(?;qwLc9m)UlkZq^5{GL6*OwfFAU@8MN@_J1nBelKuJAK#XQ%`=rh zFn< z{EbUvpBT$G?lk#Q{ipw#U(xlcR%tembNU{Ay_5RRJ^5G3%ty0gCp)h*Jy!M7s&(r= zwe?%WnXJ!zj1jg@Zu+|VZ~45RIUW+;@r?gX=2zI*rR+-UD^ircH1+!CJv;KA%=DhG zzvOnY#^06BwQn0=J1;X`!~VqNx?+dv^SK|^RCCz7r^q$#ye0kAt=MhnCp&|5G5K#7 zdSiYv{G9Q+DCXPNuuoS^ndE1_K9PUEImd(l@w)qOQ*C0nU*7z<#`c?Sfsx#S_b-G<_|ChvWL&LLwt}ePVdtc|AvkPC$KKY4%+Lb*T zdy3Y6&01Zl8SGsj{?;q7YOAG;%J+->d5?5URIQSDfM%? z^SWu~b3S|2tcy4A``zJp&1?R#%v;S{R?qg!ZF$y{lz1jTX@b9;`@F_2vp-2L-n>1# z@AjExdsOAv&z?W1S3fWRtnAyl+avXg{Ni@czj4-bU;Vr3{qH57mS30IK0Eh``!R=i zLG2%YxTouXe*64d=_?t9?>|@DoGqGbb!S=s<&t$qe7&kSrr2HkwKK->*5cUWJL$9D zq}63g{?E`qA^NehC%kBVO>fbWibZ=bSw%fNm#Vzec=qdbrvI5=X8K(F3P=|_1Mh#`@Zr?&n138|CqWbrn)XeS$4C`zsdEV{Qq6I$SpfJX=3lyidVH> zfxk}nD(t;cQ);d2@iC=Ph)fzsy+^bx+!Q?t+SP%PQ8cm)g1a80*u2Z+|rN=;@R5>df7~ z&pEuexaj=B@Mlln?R&KRed@M7^W`1Q>^il7NB%ogB!2%R!~fWaA6`9Ma-R8(`Xcc! zi}?lC{%x5)#Xcv#_nqsl7j<_|GS+{cAhTEDru1CLk~c+b4jsJs@7dvq$15ir+P^+g z>-X#B_meCA9?bfA>avdec{jVdrDxL}{EXYJ{ko=u`VYtN|2tj(Q~&=r`~T1X+svs? z^{*G2lbv+tcUsH2;AbyF@9285+P%If+V%U~y-Dm(p9JsNH246(WiBL3e!HbHu_{wTzcoCb9vi+;ZNCR^LOZc zpE`YN|3dEl>t3+@>dJj;ULhxUH21N-+51<2vQ8Y<*{@u7w43YF|F`wO@BjN&|L^?& zpQrzYl*!g{_x$LH&33#>a+eiS2^!;XkF^_68}q-}qqh`l-3L zUotb}AKzON{95Mv)J-fqYcAE)2YS5QbjJAlBNe&rQ+FovxP6k{ZCkYe>HOonCeMGc zG4-@fLr!0c@{;;vUh>%!)yqrHeTcbKqi^JHT*Jrv+vL}q?k_v?F34;ZwbOr|#S>k} zC#h`LKhZL;e2R9-oO$V8g8$MhyZpNX47EHIyQgbczba(d_#$fK>siOPKKl{#w)r`u z89k(!v7PWZ@n$|vfQ#@@2Qg-_s_U*e-Kr6<-BR<>j}Mq=Nk5S zAKP_@{n&xrY`*!En%7T{?Ps;_;aq1bKjZZ;p_}1vK5?pCHa)?9Hr%H`s{haQ_ot?o zc+P*aY3t$A)BZ1~={3f$t5)C7l>LPLN1aMnWSvz{we$M-=Q)l({MP#X_|C<}t=B5~ zF1OFkeKODf<&-$7+Nb^g^ZRv6dJ^WHckQo9jhGo#*z7 zelq>~@>a3>ZKk=Oyg%2x?OU(mwKe>N{73umQJ>v2)=8aEJ6rtbU*EdBe1F})Z~imW zKKx{>cdR|;U*+tl+>&Ol&(xms)p_iXINI#juba5; z^{Kr!u9gcm`QEJJpQU`)`lo1wcI=w@Px(bQ-!3y!|MBvA=O4M3$!||gx3&t;m|L_W zoBgJj`M%zByWe-O57)UF_FF?f;}pNyMbksi8H+!kF;hP;vQzb3uyw&WS2E=1FD69d|fNekeN07uVd& zI2?Y$|JvCk!Agm{^CNZSz8e=!vRmSJa7IxR@A=ytFR$(qmcR0ZJK=J&*KN)7ueZ#u zK6GbhymG{98;oGc*{|F;XU^S! zW@eGeXKq_#%c_X^cP{R9N_T!;RL`2Myq{sdt@%pf9btJh?N5E?xu&&$p8OZ(VDIX8 z`u}$JZ?<^)n=`Iwg~43WB@>Qz*UWeu`7ZOH|STZ?>PB+(zal}OODR(H0%!EnzLD{H0@u|yl-yb z(my`A)3Q^~KfcW1`u8L2U&eQSUX^?NYehZV&%$`wYriWe#Bct*Ytq?s$7JVfZ@GVJ z;X31U7iXOKJjLqZ_47$G6N}TcFTOW>`P=4CvHV0s^+XwI^*g$8>p)@fwafD9;@S^C z%6^+nIzJ)z`}NYL`46fe)%7Om7PlOqm;HIxKb_;saj{dh#Jipg{$I*G;rAawJ9(RW zrCP7bXLr6HocdR%{+a&fj0q2H9Cm3s&OW+T{kC~hi@ZjzRcawOyMBk`9{mo-s-7O=SF%x7zoaRBpz0-S$!@=2+H((7{Zz5P+t#dil;zCTtwjo# zzMU|?KJ~=(GYfyK?RPi0{&u+&ToCrFA{w&Rp+_YPV;k%t->dmU;C`N_eGLV&!gfG)7$uJrp(`` z9+N#^^}1<_&!NwX@uuNst+&5aD#)`MJyWsFKWf}1{#5C4x=!)D%A@}4Ow}wG z{WSLHm90gK3{U>_`QPyI%*y!9VXv2X7sdXb@x9UVlWuCA-jnSP&vt&^slI2E#?k(s zr-J{Bd263mxtt6C_fuqLbM|*;`6tKkg2L?lZlMj5^Bg|7Jb$+G>8uvt3o){KYaNfx zI4#?|`s@eG7h(5n#oqOs+xJ)<$XfS2&o5~Eahubv{p(Ar-`x9tgQe*DYD?w+SJHh? z9n7s%wx5~*ROf3?O-Wj@|FOIK>%a8>yBOco|Aco?n;kxX_Nj0A{iycmyy`>C z=Wm|-hvnI6xd+EJXEJY!+PGHLoVPjuC0s-OjP%^{{nOUZJRZqo z$N%?Jx9#Gc^DiyT?)_<*Tz9K%hn=mzh;sOCp6~5ur`?a8UjFB6%;oEGJ@1Ss8rl7o z@pzWZB>j%x_s5K!UpEuxehb*~f7at2XC9v@-Fe@x?oh`4va^A5>AdxGSN~gH_u=)O z)pO>5tBKE;7cGDO&)vJ{Kk=WL|D~S2^EC74%MT9pCVgp+SU1sp^^dv5w?2pLlb&<) z=H5TDffqkqzMr|YCViUgO0D1XtAx)#dc4c^Nb-d37xyzr{$Ke#gH^xuT!iNR&YQJ= z=4J*)oqAsUW!s;V@y4G&Jav4!Hh%T}=0B-^(NCs-vRzQ|+w=Yer+@yNbbY*k`ur00 t(*(6{LC1K4PGLemAM4Ehe{cWGpYCW(jQ4b~U|?Wi@O1TaS?83{1OV7&WbFU| diff --git a/docs/tutorial/images/ctx.png b/docs/tutorial/images/ctx.png deleted file mode 100644 index 4dd8c87447e08ccdbe55fe85bd8baaf379666f6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35739 zcmeAS@N?(olHy`uVBq!ia0y~yV0^~Fz!b#6#=yWJrjTaHz`(#*9OUlAuNSs54@I14-?iy0XB4ude`@%$Aj3=G`{o-U3d6>)F(?k#$3b9t@p z^TojzJKt!@9$B(#)``Z)wx&xnf~@PA+{rFgX07Zmn;E!JiJdBRq#c=&iwE zzvFpke|`J(_t)RwuaC9A^66<_>js-i?*z|0U;IhfBk*?`q#UImfeiYzvut_c7Of6_s{>n&&*|Ne&}9e zZ&3fo$f0iMzP%RWQ^}+M68TDm9~*W=fp;y(TBzbCz^qCV?={<+Ni z8=qEx_+4dFW4`~k{rc%E>dxL`VLROa;%?(k(LFza(!>^Uj%#iDHfXA{{C zicIF+I&gK{_BH>)68hAGtUcW)7Z;mMVVs?-@A7Nienzja|1SUf`swDy*;aM-b~o#G ziFK=bf?tZ^oa!rPtI9BSTWpHcjj zM@f=VGwk34rIUdz>JC%i*YgNfov-__^GA04JszXX+&|m?Udqmrtbh6S`rbEx``7kt z{r0cz^{I9HpLfhi-0@_2_l%ePHvDOQUbY%%pG=E;elSOEuED||**YqJug_Z9Yx1ki z??BAT^QDvQe#T6m-aPZog9rD{zhUwDDq=82`Iy&#F`<3;j~LFlY`429vex(GjMwk) zU+S2-=gHsn+h$MLn{NG*oC%{4i|bNKY1DT1GW#I0ptJfA`0PV$eZ?*xtaum`Mu%5!hx&i`Ju z+h&%${1ao)-g(FG$g|%Do!1U3&2?*-xLH8k_s`aU+zOk@Ch!QZkahm^OU=Ui-Xxf9v)9cbV_)cbc@_`h7d&cKOTFUrTfDB)27AoqOO+r|XjVb@}yMUO%6Gg)6x- z#o+Rj5)DXWlvHAItwX=FF0#1$HvNvA-1+-|dgN ze``zPYk#)QhKFz5^0~ul@hU;iwI(of#*N2CuM;QvO-sBf{44x-$LYt{-JiRE^ElFrui|a+SG441^Zl*D+zwT`Q4@S|9&aQ``PQv;9p+8HD)tdV^w*A z+SWr6a@h%e(>ENyXe5~sm(nHYesOYl!DNlkfq&nuxBqeX&)P&y>9%6GBQll^k!q}* zY%``uMSIn%X}taZwOh63sP1}Yms9Q6&)ko=2hLR)E@upQ-X8+9Uo7vMvDLmzqE5_N zU<YewCI`%V0p>&=b82C<|~ z|M~hld;NQbzn{LT?^@RHxz=Es`@97jjU0}?=cn#no8I_y(UNa0Go)+YC+v&yf5u*I z5qoIo>6Zn6%PdNNez)Oh`nK@uv`zMPGgth4`u3N*X7r;lj?>DW>Kgy*pWbcy`6jri zto38RmL3SsW&j6E{F%b$Ij zclywDtb@jEn_I&=uE;)MGcf$XcH`#j#s4n-`ugdl;AZw^a-#eW&x&r^e-*!e z^_1>}pL6~S7_?QN^Yy-L<|XG`tx<29dO0}CNni{AT86ZHnOSq!%0t6kqVBQhdH1tv zmr8|~|Cx6%%i+c1l)Tf2<}7}_qVCdk_WC)OE>ErAaP8G^t6S_HVb&W=8eCX6cel6; zZeu8Aa?LuvM~>ZWmHw~3gUcN9v}UN@2)=%7dBl|6-}UR_kG=OinduUvX>MQBWUQ3N zQKeVPzB%?#T;gu`GVPY96ORZ_;j+#bpIQ}A#lUx6bLXbNrec%+WuLv`CRJ;#p0Mu9 zb1TpJHF-_WSKQAzp8R5Ho^-D1eAD&svn|**Zz_plN>5t)KdREkZj;%u6*hkrjL!4z ztJAdZoLBsP#&4UMpt!ywdZzwfTv)5oOi;1#gmV>3THE`FUtX?%ocdy+PG3f@%h}wS zp0>Re!NxNVJ4e^pHt!6wuTY%9ZXK|4fo9{)FS2v4c;#0^!;Boa}Q)Fb9Ukr2n!{&yq42xx(ckYusvqx%z^y3hN z-S4k68~J~p|;s2+GJJ|qruDs zm!IJ)Py2tic1bX^`{#F>3zVIs9zI-OdY3D)QYCZp)MwDrtC zk$FaH(1Zu-?3+JkXx@VCPH#g0#b<;>HU_|V0E3I!R|Y^ zKjww_-u5w*YFd!HMQFy|YyIE1$s79{{P}-sH>>gTCwsId?k}IueP-v~l~cCNGX^;@ ziv3Ley><+2^OrQrk4~arl(;zt+#>cw90?>H1cmu%e$K zMTy62pS_-b{QOt%umh8xbUiEDU)lV%!kJ@cib|gTS<|(yXJmYrmucFje_8LaeGdPg zgN6IvEwSs@ujAeNUA>myX1_SX;MR96xVY+k>euZ|#XQp7GdXh33a(&1FL7qu zUV)dp|FIcd{q6ty`e}9dGjcPkLTngjo=*LLB|auxd%MH4;;erk=e$nfdwxcrEizWr zYX2;wC0|+=R9{`?eKXsJ!7ZzGqs=Fl!ylymqwKQGCNG=);>mZOFlHxt)#7NeXEL$w zUnlRg`SEzlymfb)w}#!ne$mch%TC@iKa1GBnLTtKsLY5}k=dSqTX?~_@BUw1?;G9_ zIpNE?nWg&GuiwU-e*HW8{`3#qlhsK_d{Uo@vkDrsy!F;@y!qqt^v*f;vG!Xwv4Y$6 z6-|MO&)+Tz;`cIMxeRCFwC?2TgFbwL@|NtXtIUm)&V9>2`1-f6Omk$U)w$lnl%@Zp zcGlEyF?4(Sl6~UJb&Zzg{X5T3zA3WoJ;kkeK<>mO} zr!P21%3R#_`_evLW6kA)`B`km6&c;@(+$F3u}e$b5jxX+_p4UMia5SAX>SgC-u3z~ zR@Isjt2v+f*&o~cw|+lfbbradivMA(pP#1G)w8s0EjH$LykHi^dFI{yrSHD3eDiT{ z6u(>ixd(EG^~?KbJhW|y(&bl}_Uxbb*PCgZmVYijD03jeF>N3JgB6YGZ{A$ezbf4b zE~Z|`_td8_x>>jV_shs+VSCZz%|BaZ?Wew- zzNxTZvguvW+yigkYf4LOzWzf#%?RXI3m+r44QWlX2c|bwGOS=wy2@QThd=F-@Amt~ z1+uoKwp)q~g)I;NEHEj3+upL{e^G7r<+io^ef$4q0?Zjw_VQR z`2qD)>R;A>6P$j0egC=sSJ!Q&9=Cj4T6*@io#xZc2XoFCY%@F1tDKe%E4wbUfg5MK z+7h75c`xXj7dX1NoOCOWD3WXR*GoM-IcK5f;=t6O;&FEq%j!RaLm2N^yG^-nw0%lP!I zjMCG?+0V*t@=;19P$~97kH_)65~NWk@I?oUP!!{tIXNkFbLGLs*4zHS*UJ2xx>?k9 z?doIs*;l>ZtCD&2#GE6^bApPqZ@0(u-%Gq<*h_R`mR%n$%|= z$McKcCH(vRt?2K+Pes#z8-A9zP!&*I@p9*;?O$~a+Rvm+WPHY!&;0CZa@@Cn-)qme zXkM0hde81+AaijZ|BI(>3(^DA4TAe}n2hANW={im&K}tppfe|#pI!=#+Apa|}KF7P)f`qT9(^1o?A z|7FjvnCnK7C!YqNY?b{!bA7y={q^(^Rsi?lar#k8J{; z|G6Aa{oL{T+i(a8pWpxQ zWZvWMgRj^lM9-Xh7rttvya~(HEBxT%H}U_|-#s%{Cp`8rId%I?>75kgdq)mcGAO%0 zUTL}a`KDjC2XfTki(QEP&~q?np}0~hdza#QQ|DZU#=Um0^w-Ag=gX}x|M`n?7tiZ0 z_3?VY`|q_g*sojs_Lusc+wX1D#HUsT%<|OV>vwYM+w~hK ze2LFqW_IbtZA-@DrFPdne?2J{e)GU-;&qE#TxPXB2Njf~*tsMPryqO{DiST<7W1Wi zTEE`N?yKqY(wy6YE^8|}C7Pv=39S>Z)qQ*a;1%~hJ6}XH8@r$3ymI$&!mazaLYyyb zUco)%?cS&FCDjka<$*^o{vYs8Nc$n@H~*hiT$|jfM;+JPuH2c%=#AcU?a8$^K4^2p z_ls6Wh(U$H?0wCXcj+dabKQK*>!;C)6W7Bf=l_~Dwd3c(gElw*-=6%&>^Wc z&n27YxyH)>ld8E7?ZxV+7fcRD^kNy0T)I=g)b6&=v64E=8OOhuG;f}u)v%R|kJBrY z{h&bOZNnL_#U0$bKYV^%{P+0d$=?g254<@RTQy&5&A$J+3GXiLFaM^QEqcc8R^OtW z=z5XT-{6j{LMU`7%Hq#N=>uvEJ_l_WLKp%WKOgkzdikxAZQbJK>)Olo(k`V~$oDN< z_jiK8_xN@BxwkfaO>d|a`KUH|7khe4o~_R(F`rE~TP`y3E$!cN$L;LJN?se*?R)lp z`e8HY>aX4eGr!{(xlZ2tec!0=dF9{g3A5t$YBjBWWsEF(J0_cLS^D9$|7UXtSo3Z{ z`bDpVxbvX)?4)nU*IDXV_8(B6zG?oMS3z4kiV}AmOpJd4DIn*$LY=?j@5bYh{_4+@ z2YoKiWZB$bFj<4It-H>=K0D%6+k!a)hVFa`(>xuU=F6Npws>h$vV&w^X~z`)^)vTx z+@ts+65NuDm1vsh+A$+hqK?b?LL69VxdF>tY(jSr{CWO1bxL3HjVp`hLkr2TXock6 z315<|ix>42dYxZ;SKn4O((^;%^nLTc$D6BbNv898pPtLVyu0XZiSvcHE8=I$^wak4 znGPza-2X8zWl>_;D%bgSdX?CWtyktTY<^|iRQYqp^u7OU?;9u1KJ~f4cJ7xc^XBC5 z7Vk-Rz7V&?+F-j=gq-Ie_EZ1Y?};{;U+Z-aIu3_iG+NG{y}Ma4L%(WON9CSM*4YP6 zNPBR26qRHtz7Xz_*}tgfT0QRr+^xN+XP+$MzgV2#pk0N=Wg4AM=q9V-LMeq{bW}xYaZESzOg{=z=?|$S$^+#LI&WH zxL0!Ilzqx$oQr4yKB+sm6g&v`>|@pR_0K=@zE8ZhUw`^v_xH{X^49}D_4~_i&ieXy z{r>$=e*V>G-F#o^Q;m^)+fTX8n^K?rygJ9-%l}2;Ro*izGs{<&J^*(cKFMnw&i`}r zj{DiPpd#T;g1uF<-JLt-44K2QF<{owgk58?6l^v#()^Kxf_(2`TH3zHaDQ4(H zdnNbZfB!$@`1dSZiCW9%*>etIwi}I>BHE3U3vM5gjlOr8_ngxzhHF{>ll~}MbF^{X z=~Jw$y}Z`-$Ip*D|2_VAvU-PZLfK=zz5cvm_x~T8|NhNC*%^m}ub#S8vVkjYe~D~t z{`^aFSHFAT+;N=8cEzs7pO3@8JedA*J^$ZbOToip?e;;;5ypBZlUOChx@ zttNxpl}8U2Tzvm5U)1~Ng~wci#ZMU0W{RjtB*eYC7_`xF0nc_T$k<-SJ%KIaib-vW zKQwt9t3ln~Iw8=Io?=qlLv=$I$KL`Z%v*!eawFSdCO@#7pAVu46n0@{qy}akK+ZqE4*jSRG+Ws z-@0ZwxWJyb;K%=|<=oFU`=7iidhGklw+faOyX|B!;-7 z;K)BdJA4CY&z{DX1{L?^Voi1jPkhuqmHziSgPotcW>M_v6xHees^VpL()ZO>{)yS2 zH}i?I--pD7BB!==OkRBPir&&?+SRtle=a&+Ic@SkQHH)r6MPy{D*rtFxU@9c|Ac7n zoF`Rg=js@?R4zSjtuAU_c%bfxz?TWHSkj`7)$QC@yCZh#9ow|ef92oaN(J{HR>9kh zPprUg#^e)n(`H<*)?0m_`OMji3w-BWvTbfn>$oEO;z`{p!xL}52G(c(t@`=qMW}3j zZOxOLwNj_=PBc0GKuzC;T1vy<-Qld~%mu++NJ|%&T_YMDy38$)H&- z8^@^!&Y(<2^sd;sHt@*oSqEk0ZasP}d1mUbgWLygZZvAeS@G$i49k7zcy@4U$Bo$s zbRO91zRELaar_;iZt#2Q>kQ4?c1vYz@1F*>U4#gX#Z}h$n@6zD-Xt=22iv|w?2Osl zL*$eStl5hH9!n@I^ zAjY7RMi$Wx+j;EZ&9*s_*N@%jNPGOHHmiM0jgob5+s}O;ACz2mQxWf+6I1>(v#y=v z%(3J51OILU1?jG)N^WqJ-AY-C)=qoqEAvg&Ztv=+vp@>V*uhmt;OsR?$GvYn&Y1b< zNy4%hK}|Q^cX*0$t$$Pgd3V>+9FD3G#iTx&13HtNSnMrl^tyXLJl623jBnznho+yc zXMqA5rBF%SaZ-RKR~giiH3xNG6j75pX)HeLvwt1{+x?9x` ztobFD@NRnc?lks?55M0?6_eg~K1bT}GH8_L>Vcfg#s7Wv+aL;<@SVU zQ|6SjKK}isY=X?5*!g@%R6pDjS-4epofLSag#Aoi=I-xCX5c|%nf$neY6hR!gqSAD z%#Gss#iD$Cy~g~n@ytIgWS5@6m?oH%y>rpdJ4b+Jv}u^Q_~Vs1_lhI`u00^re8fqQDZ1Ds<8pc5!JOON z6ZgILfA>7*mHpay{rR$cS3O?e-*2<~yqm#s>C`FHR~mcYd>$Swu4$|IB5o_wjIDcT z{sw#V31{0w^SD#r0yobLx$B~_KYfFgz%PxNw>KF)e_^$1{+Fi*<(Gdcc`CPN>#u!% z-xwF2%}qEry%@EK0gtwsg>Q$IFfacquIB~K9{y$2kN@^|#giKMBRr1Z*St%JGmcUN zd(GzHiVdI3K;_HKlFP5B#N7NR#qIfjYg(3a@4mUh2H~%Y=PvQLyZ+>9f||8O@DqzZ zvF4Tc&U9Gb-p{)Jy?G(evn}V3vu!qe- z)qd*Fm=^f%-_lk3Q$T5a@xFwAKT7}p`+NPXv-WH7@Mx#{3_PQ1Y-}ZUdNY`LbWfc5 z&Zrc8&}QFq=`~HhprL>8m>Q(8Y5VcjcZ1cxW8aTo)7^V+&e2O-YImHjna}$9hg^~L zl)ph{?+l$U#I91FalL=qNl=U7vB61+1G6~G7~;8}F)m>0;F`go7UYLCiZyztK!XA9B*f|w(q}I3ThHB@im)uc+zK%nj%fi$I$BaaYHfbKmXih<6p2G#riW%CV#*jpw z0ZXnbs6;x<+qPis6~Qxl2Ty!|F#Yvy`M0|u)%F(qZPB+;TRvve*JO$p^%i=aU2AK) zH+9y5C*K}V-}n8a<^A*LD;H{4zdsyr=2iB6#^e_}7lRsikj|r;;kw6a%^%go&M`|kf7@^b zTz<(V;!5)+AFG$8Uh8t|ds~;s_0hHmAOEWL9h~#+rs$bh*{%m*VoUbo3;hX8~m@_z0ZRq`?(c(a`1`$2B8^}``Rxr-`_WV zVf!YFMOy_;x2GPM6IUfW5GU2sSfh&bK&;Q|j|DfmH zQ%7Mrhm_Pa)_x@P^g=8MyfcbwGxQ}n$<@*eYwtDhK>GT-eFnxCuY zY_(tJjM1U4Ijt^?Yp!ha-tqk|sx8k0feHpd_KpJBM>W5E0)2;3f9Qnj$} z^Fbdkl##R~^!_1eBrQ;N@+!zk+NP667P}>74x3ihCQF;TKi}GE|N7St=07)1-SB#> zzyIH??{@pD{=fP1eU0p;#Vf)a^NM^8h0Znn{B-#buMoU5s9nnP*$muA*kW%6>kIx( z37fu1)+6oi@jJ8M|NUzJ`+R!S;eA&i6Q#LJ?>2%fwH-4n1)u@OE`p)d>^F<8P1a*S>#Tyl?*e{dx0WUHpfLF zR&`{K_VdoV84;Vq)YHT@dzEq+n`-`t#DB>xcKluZ@%p}+Zz}71?{AB*@M;6kHr z|B21@X{H9zFQg>gt%Gh>pJY6;?q9)wNkQWh>95S2zxcg3+zl=!rEnLM*+scYa|{Y+ z{aafstZ`M^_srIgHJA3Y_Cwo(>k`7^gKeJu`n^5NrRx3T>=*O*NX-bnaLF=Wedn~( zCI;t?S+-`G8r1)ZdLF;b1GMPqAG2oT%!kz$wZC3hNLFcdD@T>b-`bvfU;=vaxH-D1 za>MSp-W69mZ~Fg%&Ajdb&Ai6Tp9xmFbPG}`eEgmrYta3PW8dPv3zF3j%uDCUx~i41 zEg()2+T{JiZnQ7_^}!dXCGR{DsoPn7gy%ium8?pJjV9mYSDrVUEID^R_cMc=Q4?mq zKdf@Ytniqh@|qK`j`&Q_XxMsdzr_C&d`^moHYaz)-)BibKL1;OeEsL&;njbI_niJ{ z`mgThuHs`456H~hbxt?d{eHAW`oh`WGa!ve?Um9qWPA38d+9lWhfvz>g+SwHJkas8 ziLY9%&aoS>Typ!kC5-0!y1%}pJob5iYq_lnW1m*E66g zS{QD=e>SFZX-*rs$KV|9-ZqH>-zPR@7JQi_Izo?pjyX5#nu3OLM zUA_J?i-^(YVEy7nU4_4Ie~I7Z{aQjOq~y%fJI}uUYFBt+cZDx)x8~8)U*G!PpL58` z^1uz|KYqoj!Aycpv*u}6N1tcK{ucPF zw^UQ^`qy25odrtdvsjGZZhw=w=AD%5)1+>9wx6ZY9s z%^5d$hq=#IX~|{2{tcpcR$YH2^XC^b`jz$j|NZJ%_c{SoZWr#sK4o#%MRK{e$j)`C zn`TP9sucXE|5AH~x0S)Rv z7R*&P?(Cbbb9{D$1%E<`;0BZB-($k+HD^d3@>E;SQXqFKP-WfWI~L4tyX^ArI|UuM zxGj=7jd9P?qTBH%b!-3cd7Z%X{EW1}-@3KC#6Fh2`u`{E)C41;rf;j(CH$+XHcZ`9 zvzHG%VeLMz;mn>iHQijz+wN!6l*)w{;-7!Gb8gPvr8*+2JAPEp7LPpS*J!zu&Ce`0 zJ?^|&!m^E7JLetUxklY>O-Nduz*<4$o7bM_a`wLUbAR|d?yquE+XCCwkAt?=2+e+H zeLwuj8Q}@I7s~D4xa4o9pZe>c34RZ?9nx;e9`?Jrs((#fcFt|{4gGsXXKdZKwz|<$ z{G(rm(XBl16M{xt#joF8@V`lsV;BEd#^Q*5)1DtGm4)_{pCqhkMlBDe1B;{CcrsB( zxOG*-g0gilR`j#%TGVsC^u2vP zD8tkq$k}sszxP(q+?Wkx@B6D&2EU5fzDr=1fdPv?e?E}o6JRXQmmz7*x{f*fvTc;; z9HBG&Y$NYqTgwoVYriSVZlAl|S-zgc%$rW<)S3I@{h^~+OPL78!uoZ)$#j2IQkJ)n`mUtb=TGz*S1|K6rd(E@prDbJ^(wLTN>hIcH{D zG4E%RxNLLdu<1*qk~cBy-ZE80|DOMa@qq5fwDR(Hp1{r$r*u;z}%CleZIGF=kEN3jQ^%UIUU7C=_p>FM^+VDA`PpMG$*)d6j zOJ56r-+C9a?W~jm_XFLjxBo5rnEm(pUXdD>i-*6K^qDW3u}O7t^M@7xFPwLKY`uTh zXOEYhj@vHvwxLJP2zL-Hh#n&fqI0en&n9epD}CemJ+3oR z_peDe&Q!j%L|>Il@8+S&x2L|nd+-MrBssbZcW-V+Uzv+Bi>c38%oEiV&Ep~37Oa$3 z{bkbaT7<>)X3T8&U9+T-2G z6OtUS7QYny+zV}tbi&r?wmm#va^w2XFYBgdgJJ^!laKk(jhNP#%>&aHQz1rr}EIr@D4Yem0FM%K5lnk?sZ;hMQq zZ06*ap4<1A{oiwU8Gm3?U&dk1bU(gH+VR)7%gD1h)?VRDo1OLf>923gmfk5j@bBxv z`_>-&_x$Z#_c9sOV40{c02-O|zASt1*yaOkmVUd#apvIGDKlBG7pFcyD6?n5|GH^A zm#6Awhrjz4^sG3#>NdDk>rGI*P$gmh?9jg-sf(UX-~L*DX-+3-R7+)^19-|Z&F|z+ z)1Kt@T+i6L+hsv+GWjd_x%VJA8Q@yc%UCmKS1@L$^Io20#37$N z8^vPZ^atS#$+Ot2cc{g-_02uKHI^Yi`~PG+h7%o^ZqyW=YC8RFt={`HCag8T?wu$M z*?slL26GOJ5{%3gId#t?9v~=Pm;ikN$q6cEC9CCJoMqb?K zIY`u%%i)hZ`XDe*EZ+`e2_SpFdkK^``a)aBdZ$!6Mr-17) zn?~5A0=`MhsJREi8_sO8ZkyY^X!b#*#?o~r(1b!kabR|(WaQS^x@X@s7WLlV(fm;q zl&(uzKhNJjJ#?WDxDQpyRA_MJAnN2LcqdhY!RIutcPDtBeYhYNe?DQ|75+G;XA)aj zwo6RV;#ux;=H0D_bzArQIaI`g77Km$`OsNZzP>{5%Ob;`Tl?BSKIL@`kS}HaEEWKr zCu!_~w3m#hw{F7HYb2q?RFnAfy4(6^zjb~b`<}7ep+6z(m_uOhuZM-JKmG(SL|ZU> zh2WW*`w_DobtZMY$o<>C6TCm?c%qPDgD=Aj@S@#COwXDd{dU>TgH3NTa$(Fhh@au{ z5v_@NHrFB4ZsS=wh3v%-fBZSg5W={d_1}uRwSTMrzcRhW-aSXM?Ar0ymYo*163#nW zmNO^Dtcwpf-oE(G|GP;w)8{YaXWIPnV|mE_9FC@68C6GWlEHC&D`gREk~8s#q3pL* zNKcUC)neG#ncCzVABDbIM5!^K`C$Cx?jPL*P3fjQRoKpgga*mF97xki`h;}T0z1(7 zSAjV3rJ0G~nV-B`G0)b6O0fPVd!~a+gNe)t|`B!51v&%A`M|4#V*yXt0ZIj|1G@JELj2y{+&~=)pS=q#G^owi%{3DKqx>-!gsuV;WfFvir$- zjGyOke|_3ZI%)!Feje9ODF*rF?{IeYr2S9CT$cPHdSJ%0gL3OUr!P!?UX&|-;P$Qm zOZXY`D$Rc$NVBs%8FOVTe+je9^2YPI28y4PgQaB{^G)sE90z6UaD&}@XUx6cF%7(( z2GZNJ+_bZA_M2ni-rkc88&i01?_^&P=L4H5i#=l6cNVhsl+@nYx6OKL?q;?#OcmZw zx9!jP6ZOCH`hn+;Wqsz81QN90Esxm@ZdBa^H>#>UPJ$X$R)WU%D%%b*CxGVHl>HTW z_7|o+q-r_F^)E`+E z9Xfa0b*bDGxrW0y=MAz;nc^9ZF29o~)9cD(+njsRL?pw+Y_BAPTyu#Rc(9yh*4|7+Pq`{0zV=e!)34HvyAHVWE^ZNThHKEVZyP%tK z<)H$vBX8Epz6<~Tnx*ABYq55V>GlTyDeeWEFRs-LpUbfENd}MdgnNg7d;&Eq!k9My zE?-$)i+>_ufy?vfjW=g3NVAi z_f3O8Gx&ZRL6(BCe7y+YALR+%AH|sVL-J4FKd}u{cpbM3DLp&Ec*aQ6!{7jq{Wi!{ zDDM+cO@Z3jiU##ELB-hyQx?bXpbeZns6q=n6P~#!Ej<%obJps%-8N8%{8mZ{;eMa@ zvnTRzEID1KRqXu->SJzgzPap?$%b0(6M(iqJaRIFZ%iMMNb_ICFtaPL0j%h}l zA5^V-V>6>!{EPj4J=JF$tc5{CR0c>xR8RMPGthf>YT0X!6E#=XMLq+yT{_hj!21hk z1{dY=KE8o8M&*&Q(m4Dhe2i)*!?XVQ`+w!myoSu3;99p~9C&P{wd=a`L{%xFZ#PT-sFK8L^FQIey(~rckO1m!#?8{mASnW7u z%F|NH|LjZK=~v^q(%K3(Ee>I_;D4$ibUiU|4x@6c{Py*4{ZenQVcg7cFKFjmeX0G| z>QDN5A2#!nb>950>d5V-|39zRboTP)xV74<@uuwu)11#0^97Cl9eDPCT=EQ3Km}5x zp|$RTiPG9Bv*q~?ZZu6&yZviV?&6KTeT(1!{?gwe+4OCVUBa?r(9q_?J9W^}dgg*1 zIClfA^?LvrkwWhXzD-cG{_%6^6P2p7u6rsc^yO^NeZn#Gmh|=5t&nl4QpU}DxBszy z%yQ#2bZub>+7ga5KG|DF2_DM#t`O74@^3D<`A+kNz{RK)TpU@?yUKEJ-4}1lD!f_M z`|mSoT=&Y?hwBf1mo@B%G_xogmfCmaWzgpC2zT#`!SlP+6lR;PSoiN?!G}HnAmi{C z^saKG`AI3wZGK;SKY1H1+EhKVFO>R~qWF(L=nUBQ%Nw)eNe^Ne-v z;Lrq(G$q1E$qDxiO$5)($w-;=^Y!`L-5z#A`B@hsTMo?7`-7JZZ-<`DWSZ!dw$AmL zisIvM+h6Wao3CX&JErCI+~qk%7msh31a-Ww@TJY}0(S*!5r3Pt=^N_H-F&)6@LZXSUk*?9I2Z z<7oP|Lh#I#q|1jbCTmw~gPQDeo;Hmi{%gM%J2Pieakj+qIMFk_`#5KCX33R_H6(vn zx^wOJZ@J*HEZ_adYm)KrIVZCv)x*zV6uvg*N)oU za;@8GyfauoOgoiZfAPoGf8N^)bn=eASliUEP_<*;xhMVD??jD#kYudi+jo`CYP6%@x&X=+LvEruBle|ZhiCBrzx`;)*KL6K$!=|}R z#YMbxa(12DGcWgmPjYYhETe7fJ?CiOa9zu5U}`@@@W-2bC)mmaExu}4c3>Ph*|#R)VJ#q9>3O`21{ptc{`_JXVCoD zDz%?>hN*uLRWN?rm-u|qi!_7V-+137=d-4*&3|2HFj;m@jmyk#KhqC|F0;NYbvdXS zT~V|z_CTiq4V5%=FNtVXKO4Lq`nc^!MDcudq!x1 zm%;CEDYentnF6-{J(2bEhuqJg^!Z6)2cIv#$+2u(o#48zmARMIuU@sc;fqVJfi8Ge z%VIHB7n@kObKl>>>otG8PS@3*F#82wV3 z;lz!mQ+sy)3fkBo@VMx;$s?azGq_T-#cyUM+)b&OKL1(ylmj_6f96gD_sf0zXXJxN zJ3MFmn6#@t7yR)g$c)E++2MWXAgd}IYY{s*g%%GunCes&;`E^R8;@Rlcaa)88XstN0pKG zrr0aDcG+*df7Y|M;nZ|ZYnQ1xzx!`(p3uARep*e(48<4IUP&9O3vQ~GSo8f8xT-!P z>>+o?T!MCH##tH5Eve}1BlfVIG0fo1GgJtb@avp$ckAK5S@m-pKI}@E$M$fOx8QQ~ zM*jnaQ6buIe{I?C?{)ju*4usH5&9LvGyYyG-7+P2{-wTs@1H_i{1YH!_E>kQ6Fp)- zJxWh?x!nE5Z<%bHR=%A4>l%7tRy@lhr9etBTB7(SSAZILy6Uh>62oi;1J=(B0gNuJ zXV{tNmQ>p?Ux%KeA%by=hTaUx8CpMfoUv|PRg*N^*5R7l;g3HjGp=AN^%MISry3pLv2VVA_CC|JO^PqVoDfF=Jv?3p z*;m=PhtNzQXwy*JZV8luFyVt|I^B$BM`-Lj9&_`1%6F9=9tD>keZKxxK;84@jJKi8tJ*_uW_B_+(X}5}%4cM;-rHRFypE{Sl_(Rjb>6LSy1#R}N&8$0_^;_}#_qWHO z6N6?;J{X*Pa%$SPmzMRlD^k6|b8a754uLmY7JHprnxnlLx>dJ?`%KaO2f z!x%PiGcUFWCw800C(}38Udd4_GXHq;z2q9U7CWzJ+jP!Y?&^D`UR(L$xTbCFPWEi@ zL1$-f#-4HtZ0g=`{`bGcLA13D$EyBuDQKmJc zw)$ewmY7-hU?m#gGt!BQsr=OPzQzr@!bd|K_^dqr8G|VFj7w z8NH~w%HNBpd^KDtdhF8)VGmB!LpEkv7G<1nP((ZbhjT{q1))1h4yz322pR6qZvTDt zpB3Z7(t|dt1r(V0C zP61`F!Wk|+3BnA^666@P8dfy?Ojs~EuRr~PRn@DijOR%WhtSVHJI`v&9Ly>|y;413 zs(;RA_7k@{r^|o(;7eZdO*c-*Hr)u>hQwoV`22(N&)XZ8=5Xwq3g0BonD%3%Ecp10d? zF3J?+L%%i!j#r=|t~)0MSR8FZ9Zze?CWRI40)~eR)SU%bzFu%KC|)F}yL-B~!6J3} zm*6$op0j=Ob5V-3nX}%WTDD$hQbEDCbtaA;il48oJu7Wi@%b2!r(9;y6w%W&Czn4t z^;{Zc^sR$Amvg0V?90qFm)-DqO?-B48u-wjPb^-jEwjl7-fT)%wOqS2ThmZ{hh})$ z#iHp;=E%0R&o7?RZl$$;`{gu_rUi0YEXJ;f<&I_9<)p4YKJ`-?c!I;G@e{0fS>~7F zwOexe#*mup3FnqflG(}kp-As#CdlUtUw)rqd|<0!QN+GD{d_Y}D#ufxJ<-J68F|$E zfKG8>|9a2Q3H(oA8dbhI72%f0vN`shUi|WA$=`y`0wva^%%20Ey)#t5SnLjVTj&PO z+0F&B;<5eUZluJfc2)2}W%_KJTi3F=u^!NxVLN59$K8Wwt@(SBr*5;p`ljRN9?O$| zA3rGB++HEv{>i8`P4oAktXE2^sw|G%FIow1X8*Dmw4&h|s7#Ux$~%R(L|R(G&uq`P`{(2=z6eTYS0JY~2_3q% zlMgx%sEcJ8sc9GNV6j@Wq;o&k9guN9^X~PN%=}fw*#_O!C*H-c`sFl}$5G&lbFA{S z_xtS*?d*>)S#MdaU)2aLKw!JBt9ka{u}y0G&XBd$rXgb1@AX&G?{l4z+w;-(*%!G@ zESvYoIo;T1`?YcXjkO7K_nq^aH$j#^HRUaEGbm0Hd}*Qdt$^h9C!KP3f03*Q(2N(E=VFC9ORL6(i541pi7)BkFN{>PWGy4S%Thp%*624Cqk z|M2@~<&54p1z7I7A)TeO*xChjkl}lWd!Q&l$>|^5+7vjlKuwr?Cj?j=bwPvQ(x74h zbX-J*vaEfk|-k@@lG>#B~)OU~SxU0GRm z=7v)Kwnrw6oo95eT`W6&T(Qw(S98d$4ww6lUF%;?-zD6nu)_6i!ZTmZdt0W=;X8FW zFX+?nI!HojT7t4W@wwjtnKjG)yh&vbmEG~!WbUloSAL(pgKnR%>{8@tin_v)=C%E0 z;+(rjoaO`4z-7B{x~l_rCp3YiS;{>=Ww z*X<_oemJ+a`R^=6jwt`y18>YXOz^(>eVcr-DCnp{@Lb#($jVEen}>zK$AMKh+;r0K z+H$$$CUfXC_J(bZmTiSm_C;)GifX?74zrkT-v3^D`Ln+>Y%|V({F}}gSDhafqksQ4 zc<;_!0hYCk{SwT!2^!h|Np1ME@%Y~vwO4W+9w;dy^|yXz*gvhmgnj^+$;~bQ4}bY; z+~moW7Oj`~vTSnEf?VceDaG`%O+g3O#H{Yw`Hm;xXXA#9`n2u5D$No1X1g8XalG*D z6?@vtYp>P7J<3O%Mvx;|Z5i4@n-LAM9KPBu`avzh>}_A7C8BZ;f*Xmo_i5D(^ zw^esZ*}QWF6{BDt&VPCiQvwkpSLUDqsfpHE0a{qc+eP{mELYLR? zynk=wiMZ5ZZrW^Vv*qY@;~Cmto5dS<3K*_Vh?6kXu5GK*nz7s|qL}l{ExEJrqN?+6 zPFd~OV0#{v%A;7%h@H}gp3v5*egf8QQd|Dv^j+n&3jPIQrYe~v=5ai6k_qb2b>5p1zCS2+-Ctq#l<4Dun~Hj6oUc|IOrCsVhXiN(t(|{N?47|A|KQ29 zfNrF2(KL9ss4lF%b~bd)3K@(uDC$9{b85 zp@}LdPn^E}wO`}?Lr`zl^LO%ov||Phqo>_|+c~-X#F^;tNq$C~KK?kv-#n>rN#)6@ z#pb2j7W&uqr%!wP>#N+{_iWF0zCCZwV%sfs@QqRZ-(L^jKQ-%@JH>d+F8Ib=$VTX` z)iZLy>jErIdza1<`W&~1=ZxpS_nO}X%Bl@_7tc}6xl!0vSAS{CyuGn`_nS9w+I-di z3)?@7nEze{Z2$Mkg%+&4`>)3N!sd)`L1kP?Oj~a}y7=tMyZvvI!9`L11HLwEHsj?_ zVkQOuT6b{IneGEMHc|^*ej7?V%;TB!o%Px0ukqYIc3IbT7(Y+?_FTGYo@?y^n_D-M zPOPu%!H&*SGD?o`=c5Yi{kiUo28sEF#xz`#kISw_R2i_Ak#?E;U@k z{4DkD?@ethVx*epxf&nTnYM}Z49`pZ{OjV}DLen%1+PDYtT7OHXr;GH4t1mT*Mn~s zO1VDbE31)pE@z0{^?S-4-&3*oxt<_y zg}w&27Rc+PXAHZ@KCRm8!fiH3qxcH~stfgr8~e!8?m<NkjN&Eg}Yni>}zUMw=fnRN1&-`JZ$8PM~C4y)+VLzyKm9Mn&hs@_f64wsya6Pg| zY{ugg7XPZWW^g8`f98B0y(8TA?B;_$`TzPaf1O{j&UnV|E%x^XzUa(id1mkFB4eo& zf4cZ%?Q=VDJ^GV>55~BY)fUtS)r|ug)}S+}ZD*YQda!s=>L#mcZx6^+Yt8ssm9?Iy z;BN83ocDj#^6Q?kta$P=;oW6$GG8HiCQ_q1|Lgl8@CfMtMtn1V28%x5J@`gZ=CH}$ z_Go71tNGOzR=r|PC@WpwznJ5h#FS^^DzysQn{>P9y)v_3vGV(j?ziI8XDzMPPxaQ1 z0WUufy2_C@F-GN+fGWR#65^-`^dr6;6z~2+w7!~=TVLQ^H#}+V+X@c|JD)i`bFRaB zJ~!#L$G*DfPKl9@SDw*(`NUq{OJ@_zwq4xtQ&Gj=H+sRc+#9=|&Dm!)dHbz>y44H@ z$2~pNT&{q^`s0V|x!~m`ne}hr<)~kd-Gx6Aju#s1uGOYRd=x2|c8B?l>U5>FU(%m{ zM?qF6e9?goJH73^zFEtgkO5Fr$ zkBw=++&?3>DJS36ecoVWTXwtX`@VxRN>7_J%bBK}L_78H!)1vkg$#bDBRuxKiX2Vf z6kN_Agx+5k_Y1oCPv2aC#j*MVi$S-Fau$CK; zp2Gf2GjcJgC0ZSzZr~m#d1lE@!Os<+xy%|Tnokgz@Z`l6rwi&5mUXT_*Zh|{aQvkj z=7NOjF{e$>J}un$#$U{OjHMkM6FNIq`EB=Ued_%l)&i^B6b_e3>ze@!2Wn zIBEAYC1+-ymV9R8_?+1OS4Oe)jL%OW?P1w`wp%yx?V{xC&sx5P{;od#?cb;D$L$jj zf@3HJv@r9~zBASPkG}z(rOJQcp%w09vQiDQpHDKgZmN95#*xC&w7@n)XvY6Nd#5b) z+4s2mjE&=Tv}0mGD=np5Vf&cvqz%(^61K@3eD9et7j%s91?AO}XM6+H-YX=@-CzAR z;mcE=cZQgIkQ3aVKX0 zI{iEkV|JQFLQmF{OxVY-tg6o9*uVO&+nHMv56sb4&zxNP26{ZyKIvp(ZjL6okd7G- zmm7kTY)gmaK51tG7RQbm53P+@90foEpneftz=ZRR(#aF+`#Yc3&S}<@U3ovo(zE&C zGCTS8_xIHbSFWF0?4QNaq_9HrjNazyr$4z)yKQ&v)bE*7n)MrJPSL)euwkWb%YNDO z5AXcU*k}HnZ@ITcxuxv7`+Uo<{!`6<`|Y_@lLAN7hAFw_Gpj0h{|h`7b?Uhld#u$v zr6fDK^~dww=kIw^V=Dz}Q!s*(xIzbLwyx;I-tQeZp;i6TZ00N`qgsFWXg|TPC)oG@ zzVfna!TZG>vloAmcw-rUJN%W(HhG;pKUUuRShI5;UsUb^47|)q(_#;+jnM(OwD&8!`-TH9)GPUDUdnmeqHpy$){Ubt>~Hm9}QAGUR{5( z*KWph$tDGkSsc&o^YvX{Tsu`gV@mV;z3yjvACh{tEh0C5r(U7<41N3c?EAw%ZGZfJOK+1RN7I5x z{`$MuEMHuLq%ebq>mQ$fIo!0fbbSga5p8icm<*1hpOt^|l!|mfo&K|eO3&Ii?!IrM zVoax{U8a#@gXL5*nxp8SLrv7ns;Z4a;VZsi8;95C3kYhf8^ zF`GnNxcQZJoC#u{E_JmkPxU^B@7puI_`*`(&Ve+nf2egAcP z(OKQv_m7MJJ^%H&;PJoJHGhq7gM z4`*xkpWnMpC6G5({rGgr`n~_Fe(S!E|MV-JL9O<`(TA;n`%hoGzT)cC{qpDDnSOZP zKbh5afBF^m_gd+v`qJ~X|Hhu#|F7t`?tb}mH}Y$9&$4XZH|6cOq_Q~WC^b-C`Rjg0 zF6#LCf^!F3)+evvRrpzJa^L;p{J(Zr%CGyk8C60~-*>Bo7 zt$gZi5~DggPhOvL{_Lf++v^XkDDkbVvDxTenz5%an)mVf@A3Kjzx|8UaDBi3Z`@mN z^R4pV=daC=PiMRJ#HZ5A?t9f!_W2Smp8x;tUHbZGZGuIy^waC{nfI;#fBtBBP_&A!Dsp>uud zHi0gOTW=uecH|harz@p#b6QI7e$k>{ZNBi>^(9Y>lICVz-)FS##L~{~Hv6nBqL0mg zzyDrcWzDJcu5}+~W?if=iet>*Y4bO7^4r&f3(oEPx8m$W+n$3l)qlT!pFZdR&kcfx z>(`!4C=2}PT|4vF<8an{pFw45xx8U`VldL_9a#xs>W@o|eAJUNQyw9KwUT>dOT*1HC zY}NYx|Nc$#-Y@UXvo%|2#@+ocrVcZG63*GlnB89@Q&TQ)xO&4(p@~%=X1;EI?y~ra zZQpyngLB+GbstEpy;@rK_T)b=;r!D-J_%Rf{_*+m^@D*j_bft)U=iKJ2pYFWp-OY4vh3{{>8=u$pNf*EU8h)$)yy)?l z(>E3NSDKnOMXHE*zWEnE^S$-y&wqVS9i0A4_35dt@zZkO9+>FTbInl2=FbhzkXH{j zUQCFozv6bXT0VYneVNow|JIVsrmvGNqkXDUH&|HjczRo-QeFDlW_fA?^cDCZj>uu*8r}wcui?Q_lom#1JyM41tii}74-Q#cHR?Ext ztj{c68R_=&cfpPFzuqnXV5RVZkO?kyT5(}xRH?dq5*ANRxT@x#_?a~4N|E%m+(n>~ys z-CfW$xp&W+O>dL=c9rCG&S0LQJ7>9SV)_4f3;s0!n`;xv=_tVRHoiBZY=i8k%BR73 zx30|9*Dv2E|M~aVl;Be{S6DJdUzIyl_)PKN_jU`%0~4mIuiD)Rs$>3Ue+$}nH#KXE zCoALZhBL=^tm!Ylur%5G$eFT&3T)> z@4RlDIi)$j`iKqx8L=H|QOh)L>cvV22v2xfZMCYhU~TO-`E$%N&wqUlte7>4|My%c z0T$cUX-$!lr~Z8|tL6Ny|6VoeUmnBld9SA)e4~`kw1ru(*>b0zxS_h{52MPW^XtoU zJSy281-{hGVoa;s(XD7RN7|uwcSof0^yLbV*Pg!h-jp5G#sxJ8KFETa1JgF`oHOmf z{qwk-fwn924`_pJBZ_Tb+^*5Jee9duJZ*xi_JYpVJ@t_{9)O%`m4$QcZ6;J$(Mh6@&68Zw2dR{GPvtkR(*Woom95&Q@xY#F1G@26TYO@ z9sRq;#J(lJe!0D39pt!$-#=EyPyhV%^{>NMe!u(s_)EX-|GHn&=W73dd;fL&nsV>o zEV`aXVsGy-6(5>@ME3HsZOxyH{%*2gaQN$MTdVuLXNqsn&*x~mb%i5sd-atGPft5q zv8`v_-0)QjJXBHHv_s;Dz?CZBXWlm4XV_M;8!wkivW0LcK>%v&CvbB z4{lUs@ISQBw@i@IZO;&?PHA+L3V&7_K^0)soC``t4Cw66>-`tbbg)h|CcUwOW_>1Tz>fsUeHX@*PR zX7*!_%q=j3#g^+Svt2SX5B%t#dEv+F45x=Lt~h=X9o>-0v(?O(4m*!9`?S}#2F z<3s)|jVGUGPWx@v23`N48^@F;o;!Wo?)usM(ovPWeB^c;iRHJcxt{#yJeARuac1$1 z+eM$-dfpaKjrV(&p1H68;OoT&Y`=vJ!hdhSe)ZtbpIP^&gi9T^N{G9*Pd~fk)KW!` ztjj(I>C-ly-T46Zyy95>Aze*500U)=|D5?40{GH&2X;ISj4LE)BpW{YR=%Ldr2R}&br~Y1X z)8Vjh)+dY;a^(IvTV983u-?KiaM{K*uQz zT9#_S_jC)3o?_1FGqYz`D6KgCclv>sawmTMo@}r2g{`>%Tdky08b_4x5;nNlA z%FlYPnHg&2JPdS%|8cheHKeXpDBZ!%GM!KCHQJN#6_0pTGU}>2KZt{z};4V8=11EY==)b5Qzzvfq0}Z-d{jRa|qSO0v>lW`k%i!`jOoH_qmW& z5h{pP5guQiWS@gKF)oJ9S~Q~0T3kJ#Gk-_g@#|GLHf_zYSXVCPe&)%SlW)yD%$slC za6A0Wx9Ho1EeApza?X8xuKm!FPjAxWicI-N;oL}&8PujEf27PRsx19Wie42jYq$xM6jn5mZ zD@~kva9h!@Cx!=j94{!Z6g8$8G(;cK%ZnoWr@}|KIoZtCzh_IpPCa7m@q_ z-llcnsfwQ=3ExiYtEpXV0J$nnKlQfAoQvD~zEzucy?bqeYd~!|Y(VXFN0sg5XKrUm zoblXrW6?w(X|I-;YcX=q5Bq(NSiW<^){e+$xBJ#3kE@+d&HnWdvf5Nh!tA|^=|yj) zXIeL=oK@V>*S!vHx)XH!(dm-!D^7&uv!un_cRi8CGQ^fvcR>4A_Rajy68gF8_sSbL z->l`haP}!r@w^3}y>HrO@oAbrMY`Z<@!u)`J%4|C&<{VJ(ET^V#b;&)&rct%S<}oSvtfs_{4o3Web&STmZk;lSKb}) zNwPSt>}(Of&i5KTf4)Bq+BkaQan^Rh&1EVE&rf;YN|Cj0h*Sez#Q6T$jU!A=3)n@K z(tc#}I0|fGS4?V?KPJH9*stJn=EGr$CWRM*Egh0|63zlFwoL+thxtLd(;YId{qf%E zJ)NzOwicykyT8&8_q(L_*|*j%Zh!4>wNG){&&7TeS>5<1B=7hAyU5R{CAKcfHgoiT zl?wAX3Vh+nV%dBr|E6QrjcOi(mPHx-YvsX7nF_{qgoib$!eDezpd6 z=I76uHdo%g&zC86g|AJ4ql#rMbK3qbcdI35`avF2A}(vFHUnm zy}Q}=NX1Wcw)OpoB;R-+h^bL5DyW9)1DZ01vkfRO7mwmj?aJpwCilss;^?Tc=XkS#hG?TOSBc8nZw%Ky#b*WI505ESh9C^YHhVr(d?S7Qc== z4H|NH2i?&JiNYOM->W4Z4>DtMJg@0;#y`2-zA9p#-0tvw?^Ho&qsR<0!!5IQf9iq@JE{QPVs< zv?33sS+y0cj+EkgVEU)dwo-!`GKX+9ZDNBQO3u*nfS#-OaYW&wfWbArcm3*MT)9(i#d2=AD&*62#zwf`S=ltHYkL|*>gE@;!yLRl1`B-BBnOk|i#O6A<^UgNo zt2s_2h|c^I=UkV)EM-u)Og=Q2#RpDj(;B`z*3^dB# zf|%Se|Gu|}x$S!zN0k_87`Z~cZ9%%A(zD)L{l^Ut_kwPA0ym3VAqzH?8a<{wJw4NW z`-!RF3;A}HEU7Dgs`9qKHv9f*iznCm=PWb!wG+yp#&~$UDP#@C0`1K;yu00Ze){wM zug|H2(+~KZnwnkz=KRaHIXBI8pIaqt`w%~&Te{8gVRfMYBQ_P{++Q^S?O7qZjPye z7DL!UowD^tWgC1SO6OZ=Dz434WN4oBt-#`zoyd!;r>5_^vG4c2sg=Szsv0NSy!;yY zGx5{D8?NHNw##!RWmHESXg^;LUQ}`5%!R8;DOT?r|1@^|tg|(S^@Ni6U);Fj=Wifg z%u=S+xFBHPm8IW;En+tXJ`vi!*Y0}xC&h)6i~rvK{O|XV+6C*Y_ppN|s(I43pD$uA zDD02?THBMXHiJ8`gkf{Vt=qedXGmH-PJMjs(^9=H`O04PcK>#*e!X75Eu}vF7yoKz zwMlj|YtR3?B_}VS@FLQL6LbOWtpzzbjQbAl_nBDq!S%?USMw73l+(VKe%kUqN^o;y zU+*a$j%8EzOLx|?D|HFH+;#7w(avALUN9fzT0eX4+xhk#Gag^ulc!}r@8#bYo9FO3 zo?nz^;NSL%>!Oh*d#sgGQr=e|gX#~*zR$Q^eM0EWzbeke+hvcL<1c+nRPMVnrFzZQ zBBS>;r4?u0=0tAalCSLEC1LCkwYA_vinL>r9_7%k|8>dut!NnCsNTJ5OkT%U>Mv%6cQi*Q~$4Ro@A? z{{HUh_TKn+`-1d~;DH{Ql9wI{=cZ2HV*hPzt^VVRvUorHWz8#Z@_A^k30{A@{%-Xf z`6lpHUz+UkE@uj6-(SC6*)_*_T9Ndez2Bwx;vHoU#_xC&YEVkXCGwAkkJ73t$A^7>&zONSZ_SRSI2WQtbiMH}Ys2SVk zj&J_X|Nc7iB7sF|2D{J1KUGokoFsTpXwzo+yiom{=-<~KSA6^T@Gm$)DyL27?Acs5 zQFjV+&tJZf6H|FXYr-#V&QO~nTXFgC3|G0_-Md4g^WJKLS~(pvUf032em;=%J+5zo z^{qz}zvuWZekG^&^g(yW&y8D^Um%5C7G*Ub0RkFtz9M3QEOz3;B$bWH@VdKo{8+EsEp5QyT_aJCyK+y2| z-uM4xSuXKv@>D$bynpy+>}CG0b6fvOAKQK+`1bPGzjJoJhAzI`1t83^8zHRZ+0qXuq{qh2@AIg-x?C99}?(X;Vvp=3* zFKnIAGdcrB2&R=qrvUkgyPW}430pzRH1UcP!_ov@tYVPms z_q6<>lvKyYA1HOuz59rSms!^9Z9Qk!eT|pDZ)Cp3|G=AnyKc7rlf3e*!sPkOzxMN9 z{<1s$5|qz5)5Lj?f1kPiSNTe)BidiwcS{qQs3~kWwN>NXU18aSuRq2 zSN@;&DfD;#j`e$@{$Kh2vC2yFa^^QHM74}bVkK&2K5nS zYF5Svt&91c-2Od-{m#W8-A0Fo8*b+pvrmgVYk7;m;+EUrX5+uxr>(!SKUQ_YrXx%X zR)2lJ=w;&6L-Fd1zt8*&D#`x^ed`597r4pv?fAZ}`L=z>U)=Zo;r%YUt+r9TLGyln zZO!X%@!#dZS?S#YpHm0L1wR*8{M`Ha`|Fn;g17f9y%Y8S>&LaX>+k*sXQ7T6=HJ#H z-}wBWu7J;yZ7f`hLDv8F%=7-9D0=-@zU2K`f45hh2U*Smnit(|0M0P^Z=(Aj-~8SF zJsX@m+7c1<+v`G`>i-|=c#-cC&0_m3zuVDOw~<3#^5y)l$)HxBpyBnuZ~h+s4XV)6 z+|Hb06D?Ejp8ooF^p>4Rxxk5BvP~Y8+h%d5iA(bD+{Ah1qhD~xjAEo5deO$<_T0r4 z_fsEEJqYpWV{4V29cMZ9-@J2s_S>R;^CbJ~PVc|F_uNT3%r<{tQTM;-Q`4>P|J(3- z%9>grXKc%|+$9IVY2WVJZ~uo= z`jw_z|NnLS)by%5bvzG{Y8KA4$1)928@>KN)i~pryl2gw^EdzH9(nh>cmKOLQ6f>= z@mX8{Zm>#F%G@1qy!TrjxH8$ob4EY^y8W$6mopz`sXY*#)-EY!mKB{Wx%0+;WJERp)x-&k4D*+)1fs@@A@EH|&HFVf@!tzRzxG$Wb$07N^`87bP_E=T^GI&f@9C?)E&z47 zyE}d!JiEa7_~On38ba3dG9UR*&zAHu%i6r4<5t9@W&dP5ESlbk>PDOItE-MZfBo#b zulKF?&1?g=R{P&8<}-p&w8QhWIgLdPr`xg7j}NIja{$v zIj%yp^wqX@-oKM`pLhr+vw5uk=6^lJVMo;e-uL{F<2hGmu^8Vsm$UhE-Uu{rJST4Z zoh33gEA656LyCAWU!Xyw!moJ_3Jy7opI>B-{PW@Bmfl~h|FZvvWR&fzSxWT4%_sAH z_S5I9Z7Ta)Z~ag1TsWv1k0-+j&4_x7Kg0OOp32?a84fQI-177kInBG7tB=l(20pWQOk z`9o-i=guPDwCx{3v%5my{@MqDCzNM#rcGaDy#IdD+M0c!1y6EHY1_KzELV+K0Wk%d zceW(DuB~bGwEXc-J!xH|t+m>nAx-gX~KFx;aY@z6pC)efId~ zN!k`UMh#P11y~%#AwfdDKq7zgmZ+Pr_`CeXQ$6IK~`Pe+CQ!F=hL^p+_jajpGuzvU(8mf zEk1oyI%vt-t^H|DH~(6P{Ii33X`a%vW$pV5`X!qbUc9`*kyd~HMnnJHfBi*k_ssXS z{1LQ&Nz6{R&CxqKo}E7b`k-E+w0wR4X=Cs#`+AfVB6TJ&+0S57e@ErY-vwFmuOLeD r|9`gsU)-7~(U$l_?vMTT|MGTrjsIt_Ht=F#U|{fc^>bP0l+XkKG8|I! diff --git a/docs/tutorial/images/data_inserted_commented_out.png b/docs/tutorial/images/data_inserted_commented_out.png deleted file mode 100644 index 8ad9686aa2fe8e0b9d76f4bb29494ab7c8e15eca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27548 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 diff --git a/docs/tutorial/images/fresh_actor_data.png b/docs/tutorial/images/fresh_actor_data.png deleted file mode 100644 index 3ab88dff2fccbcede9183eedc5f650e747ee4c22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35341 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%0D6gMC8{&)d?=MW1iHEjXjbyz~D0J@d={ zKbMT(zV&?Yo3D>PO7LF{{HL^ZdVZ1ai{u|yqSh_{w)=n4R8Vj zq_m#gG+%MT>Az;TH{J3)eniG~?uzTTAI@mi*R)gM`fK*8;2O_{$!}`UpLw0dR=xLE z#g@LiW{oz}c#o&Pnj!Ku@$RPl;HSl{wP&6O+*q-8<6kz02P|&|PMp8Hiu(?z*vk=c zyU;IpDxF1LHph(P$vl1qOPwo@X}=31zpj088tjCi_syawjypxBd|&vge6jr6fStt( z`D}^5@A$r7p8DrUdu{f&#b@K*A854MDu3O09q(grzx}-M@acem#{detU-S3D*7Z?mQOybtO0Y_KRINHq~oaZUf256<5BP4!r*mG?OajPte+(2lqhg19^sjnyyoqcxBc(JFYxtRNqlYe znc~kLy8G{iYkrM2x0A0~CP0sG|6AtPx7Ti7@y*w76({t^a64MKpWpHP%h%b{rvKJ` zl_OEH-B$1R=6mi840G1?GFQ%Nn)JM#|C3Eotexr7rxTn6UNpIcwfDK*%uwie^xT%+ zenO({%(rN%gF)=GF8=)#)X??Hz-r3Wg;_Q$rv0A$bVGRSQKc=C$Iq@Qf zF^<)VT6inqh`1ioC$LBpP86JEA4Xzd1 z+W0H*fA!6kxj%p3oNY66Q(m;4U+mk-+Yc(gU}RuexA`pSF7dW{02R zgx?ImmZsMpn0D~8_rhqln|g0vE$3?65Z!u7BBniHPE$_a>GrgZel;I@@72wIU;Mez zbm80dJH@;H&TQNxaHw{7{I`9~3=DUC;ANF-Lj18$jd$ALSy;(7{|qoQ&zbc##>eamowx2%^lp5Czht~jWj%wT<6X~Ooy6#~mvywKEs^i@zt^2FJ|WJw3-hOmR%wcjsq zQz_Hv{d}~&H1vg@Q*o88P|en#jW*xj?|grr_ere%^~1X!dV6k++aCY-^*8a(4RPE5 z|B7H_V2DYVX8-iTeU9A(?IM;vYl`m}ywepwkvwA!b287Rzn?@-eSNX>ikxa+?$grJ z4f@wR|IW1Tn#;WY3eWFK`Lu1ZZ#Hj@e|XwiD}U?ES0?*S7#J90oOk~XeBK%LtKX_n zLGudu$iX}zCd+k=CYSsr*clki1seZM+pugg&$IK!+hsQ8GB7mE?gND>DeWxel>Tdz zarsWM)V*7G?}^@4=%Frn;`8DMXOAD?=ijCIdP@J%>22(fR+K(Xe)072^XBwB;{TM^ zn_nw?E%>`|?uQjse|P-fV{?7&w!4P%fAcr~7W*Fgc71@&wfO1JbC+*=^<(9}r}u-l z%iDx}%P-mO`0wr4jeoo3>K{r5s+|kByZ33%kGE&-mN76q*mVOmdA4))@8>T|xgPw@ zZeCx%wdi@+&Bi%S3f~#ud!PU1uuQ&ZvePWCC@YS(1!1l0CDhs#)--M5$}xO%mH(OH zZ9c{Twu;d8TK&HRTQ1K%oRo8!@912ChF*5w-kjU-4;SBm|D^8M-w*4%f4#K%S@vc6 zB$1x>vqz+&ZM@s zFm0ObsZWh}*f&VTB^$_}I%AMy@H(-zNz!ymu(zRR`EyvXI-HG{@UHwhHMNB%hR?y$T58f z-?wAs-P2d?&HhR8LFxML2V0{R^l!cG6p&=f7Jsqn*oi#j3C}luz1+*7$y8aP`|3q* z^DZ^&26U0Bp;({jvc2b<=DUk6OpLuM|#$(3TXL-gs}2^MlEq+hqb zJ)tjkD(=vuM5fBS_XN%z{(0f~s`t(|Vqd2#|~?dJ9MYhLK5AFb46s$BlM{eS6 zhjrKaZ_8QB-`)4;f5?loU&=y$mww1&{q*v$mfMS`A1^i9Y!8*ad=0cXC-%)Z_qpm> zFYRBk^d0|qiIst29Y2$0fp6>ommd~C2Axm3&XmcL@65by7nOaO7#gA}Do~D{>OTHT z{`jTFJry!lMmBnTzgm=Q+SYFTxZ>BpMgzylUG?g{7WB3Z5KZL@AA8qb&=QaS+%}PpC1OgHO!*a z+CP$$F{WqI?~5P59=#dx{2gfCqxGeOoZHU7!aBhQ@7;I&eSK`jPVqxl{`*)M72jn=PRBqX0YYXa$dxL7ULp##XNb0+t>3{r- z?NiaY3X#{xzXc^sXROhg5Y4!c|8LJ6W(I~iO_2Vf{E4ZFEHzU%k(@;f(= z?&5f;IH&tla)jB0;}5J`F8;7;eQSwve`EibtO-nJs{&$K4;dV=A4SP%r*Iw9psiz+2Vel z9in(+v;zO)`%gP|%v&V%eDeKi4sybYy0czpe5C_Qyx3W z{p$$!@swP)EaK_$xvM7WN}bp%Vkb!NAaP_-19xpFeftyWY>|KmBfPmw?=<-V1deK9Q2b&85~ij(w^!smj{R+p@fD z8`IB@53Y&bprz)1H_kQM^t63%{BtID-TFJf9_6eMcDn*vjk@97LS6Y2S10Rtuaw{9 z)9=Ku{Jb@3OGIyobg=c4U8N24Br@~-LM8d1RC;yFaLV6x6I^rk<0mQQANy*Ttphdx zQjR;wG5>fKS6BNk%=O2&^^dPiU3l)HuI!2Dt#0y8uN~q(m7WrOShTBC>g+W~^F4mI zIToMR`odQFyX^jQ=AHTa>!stiKU?76GhzDg6(;))K&?>!+pM1qbXCs^>MvXT#6hmP z3VI%PUBYsK6U&_+mneLHJB4uv-wS7l(1$iFnagB)w>5)?AyZRl$p4aO+QD-%`LcHz z=M$f3Mg|7+Gv|WCPFX&_*0Dp*)qc;@5`45B_$SY&x~rKPjBPB zt1fiHy&rVN+t!&mZP?Z>Phii4A+;)!DX&+>{pIqyx z+UBkB{#q=5aK$nA1L~*#+ReP&cxhwe7a0bI7~|ROMV9q+a{CZ z`iuH|-#q_6RiOtY)9%0*UA*oam?Li^4|Gys}|26aIv@f5#kJnvFuQ1ZwzmSjN zz}l^q3ja^7ei#1#i~qa%oBqEKEl<2s{h@!~pYV5A*I!9(FEeV~^HbuN%%N@E^~wGH z_g#P9`1>utN#4ss?b>wlpEv&AJ0Wb%eN6d(^uhYa4tZPd-uyD7m-UnL+-wGh0;@7P zMgD`o<>fn4`R~}5IsTRZzncHucFPI=wvn5-r`R#%8CKO@aM<@EqmF0CRm0g;DgW3G z*}bb(vHSL0;5ldz`M}xj#R~g>tlzK2^s~9%N71Hd$^Cl{c2aq@0{jaNSU<1ws}rf2 z#I(e;Nw(wd3oF+hXKzncK38=&P2qd3mV04p#Fy8<>W^QHOTHZ^)p+jAf}8Tv8*`K< zoWHegMf8^Szf88}MQcx3{#m^n_fj}Eh3%C%c6P%o6L(+d9U=$y_J}F&;-A0LkE6x;=eou_+hg~vYg%us zyEr62-A_UO?lyz4Y5jlen0H#-Tl>xZ+xp6Nj0^{QH^wUb|6M<4j&t2^=AD9C(y59H zuL57CCG@RjzjE2HiJ8C(OBbUH#X~64npuL$2F=7d(=zTw&~#2f7!aYvMhX_5&XSWNs>+ zpwcI>vvzWzW>|KzNGo?&ejYJ z7MYM7sW>6u{#MoOqaSwOF2E!`hf75v!^mrdtMm5SfOz;K}M&I?c=GR(08ja4vg zSRgHZV(nAVjWH|1V=tI1E9E8Zt1T`&*;hw+_GG?*8Pu}B76KK%cqI#%uny{xTp5#Cc1(o$k;3jpg$1bN!pm zR`k>3U&{UCuLGV-F)+;Oo9lk!{QKz(f4@n3drdt3<=36jr3-5+YGsxSo;WTy_xAn(syV|aIZ8YcWRdu1KPZh8HzO!`Smrrr^ zb#40khwG+4Uw(Dl-_(mypmhp~#~tLBFJJR6GWFtH9z;g$IkREb35A#oi3WSb6xV{Y z;V$P&jsk0zqWfhZcX91|`fFR2burV=7u#AlZt8W;6y0Zi)Ufw?xkdP@znyPX3=pDDy_@B6~$eGgGpwV=(0+dOY9iAV! zo$KgR@g|v^rHXT|{Z_es?RQ|C@9z9)3>I7FE?;xx!rr3iRh7RUpWk@#vvZ`)g!T=W zIiA#Jc&+bE2x-x2mYs(s_pVG{GB-qF`g6M}-THzv`7T!Oyr};>ruy4YIc@FRlS=>8 zZSU6yUD*Z7+lPHkx#k`EvGM;5W9z4aMe!H&-- zrt?4PRk+GE%}Qr!z&!W!uN}k=N5tzf1@k2B^kLQAKX)y2r8@hTEoXl!KMB0K-7R42 zuND3723u@*=3afjFD`YqgWm5H*4sChty#YR3Qte=;>vZ$nRkY7%Wu!i4yl{)%dY4w z14F~zw~41ty|ip~*jKp2Io&EnE=plYmgP$m*%0|6_8VB#sfgd*y&lLN0^RUw|%L7N{e4cDSA8g3Tu%i@GXhhkG#oJo# zuL7NjUi4SlVy1)Lrw3F2NMFC*vj5|9?Y#9hSE@=n-fl6G=P~*C;!okLi=X4PzvM}s zSo_(!=$v}4%!%oBn=~01ZnT5TjQ-Yl(A{{(i{BLZDNpFPwYopObm3X{4Z3dU`K3;X z%bv|=IU{glJI_w98^>#VorFOb3Cq2a0o~HQc<}?f4fl_MYU$q(rh>}Hg{sFhWY-Gh=nC6RkZ3FYq1lT ze@;Cf{dTrpeCkfAyW*)u@k<}g5c_>B*piXKBGj7glLgbhUFlORpXZfs1>JqO>2Rdo zg#P{*KF4dT#1HR~3=@`Y;kHs}yROvnl~MO9r(>bUebWi29WvPOTQ1yi@7x>*yIr}7 zYjos)|79yG+;jQoyYqA7?(Y|?t^U)x{Agjo>#o$a`l~xle{(S~_#G;1j5#NKz4(N6 z;*~#P=M~MJQWxv6xY&B#<>{Fydt&W@Wv|)-)P9Gu?E)1KZ?66hVJ(t;)-90x{cKu` zkL95`q6bTJKvj5kheMp)=7sBz)va<^7y3JM>%wrt0 zEXxc=13o3nQI zUoNS=yYH5GY2Mn;>zFI=m+6H+U!LL2_59wyAd8N_Px%2as&VxQ>SD3H!CPs9d=Q8A z*A*%`XJ3lD3%PfHuiWQnIpO)l(nA&u4BpBU^ zAs){0QIM}R2>93gI``20nv}nGQ~R^}`8Lj-_N=+_%j1{LJNZ9!`v2FtmdpCzm$`D4 zzU=1;MuvvjiO&T;ef}N$VqblnuKn(a^3&mYrP<7tHA0JI-_=BlYt$~do%H3;g2tMQ z7ylev{MlLI{&``O!*=hoRpRO&dd16dJY`@=5VmIjB(Wz{fq(G}yN>zyZ-I(|+6mmy z#`>B{tc~^c^Q|=ZOZ+JPyZ`fv`mMSCy&AI*ZnZZ{y6K`Ye`{{w_Kf(inK^g8BEr9} zjxeh^DDf*y?(nA?-qdf?*BuiVV_+y)`&Qz_<1JIJ?yb7{>(QFu-*b7NJU*Do5e;pu z-$-1$m^rCJmnlKsE_kj$N&BZ*=AHSwD`Hvi7u81Zoom@xQ*!%IM5Ns}Yt~PXW*qyh z{adW5((YL7UH#6_8o$N<#m?mhHSNqVg4zbFY}@Zl|9UzvTLF~uec0E3JRs5AJMYy~ z*SlIG(;4-1tXaMt6!@3MQY5JW&GhFkgx%Dy>^ZhQR?2=~HOG^qgMk#1`b~UIiP_VD)`NOSz54M|3XivDx;b%2r<%fu#1!g_0MY3wE9qfd@ ztxkx(ft2SxSwB6xbNhM91g7eLlLVK1tFc}=n$tDep-zCN$|lCqgQc@9prA!-+BLG)P!2i zUvm$YZ|AM=ng7b^XK<~D{4E9shU@q1{;k;j^K$zc#rd0UST@UOIBQ7rx2_F{Y&+P8 zS^Ik&_;zgj-L2QBAAKBOmpQSF=gGsZG4*Z=;kDAYx*Pv+>zC|Ge)#=j|CI3O>baY1 z?=dhOSP43ZKk!4E#P_^x1%JiB_WNNQt{l{B{bW-W*ZxB0o{-?Nqz`9PwQjr(k>V{PlZoA>SRc z-7an8`Q+!K3=DI&!7{ozU-=6kmK)8VpP!kRRkACnK>qI{Mg|5y$;Lku4sm2zdi888 z;yV8EsNkR1#ruB!F9h|~kvayGHiA0_2ik8f__z4#LZ8RoVhjv7_(7=#zPEINv?ORQ zwc&M>18Cf>DAxQpEm3Bu)7DkHO9i!x_`p_ z`{9kZ*^6W^O@A_f+R5fh1_p+LMP;A^0A9bAKJoXmV*LpYD+bUdPs!k`ezmvnQlBOW zw*2Nc?kC^Fq|YeE?<|h2%TX+`e>-mzc=1u|TboqXw$EiR_=2PSl&1XWEj|fa{8v=Q z|D^of-B+Nsmr<#64U+aHD0~kN`|;8lv;=9z-#>xr#pf#KB=382UhdpX=W{14K^AYS zRG9wxxUJ~1$0Ab~*3=e;t*g&jY+wDO<@Y51Cua;n1A9*23{syS>1F$L{Eqm(^PnP? zVOsHH=E~QebN?>>3Tj9(L|o|QeNy`%%?fmtoZpSJ^EZJ`SeRpg608c?cnhTEPt1?9 zf4uL5c-c(_JB1hC=c7Qg1qUAH$blA>ZmlrcS65P3Ru_L|XMNmM`C0V}6ZmiR@BdK3 z@#N>$P;;BJpMU%BI=Z2Mv&* zH>$ZGJ=aCzdx}Cn+q?Z0mu!z;wqayo*f2qsxl)EV{;u@2pMsx3cL{Z7>TdcI@ysvs z3ezyF+#Q*%yMRia- zOMp81jn?cRs*c==E0Y4vs&0?6PlPOA+fc2rzxZ8P5{r#rq^0oFpI+=-`uK4$S%ia1rpKW8~y(Qf~Yg#ons{_vEk*&X2J zV+T5S%mp`9Ed=paQ7DVO;VKt=kNo~G-~Qph3f1Yg*seC#INkqz_kFLw2B-46*W2wc z+W-IB^Rt^AZPNGG|LFO>Dzc8pf5&w>z4Empmr8&CexUtsci3Fzohz?@u=}nZ^Y~|t zZ`|wUn(q#u+WT!u?7OXfksJSW$FIL}?MUrs(9u%=-Y&m;I7t=~<)xo5{!D*YqW|JF-?hKz^*8=|toq%=ob8`qtZmQwYyIwKdGbx~^;1s2-}9;P<~^}lx!s%M?&a^l zn>2Szzgv9Wr*40X@7?D`PW!1%XwSVrXZGc7jL&YdeA2H=eW=gUwsieM=bZl{eV-fq zUhm0{^_(B*yx?x~3e#J8d)w8SD__rOefrq3j`QDVuXp8@{2ueoJ4<~&{kpby@y%_O zde)z+u9se^PW*G)SH|SU>F>Xu=KtE4c|SjYJGc>F-uV09&PcI4(WQ+wPtUF0#9Y1M zl;R!sPoNv{&h<`mDi)lw+rg^k;zkF#=2si?xYk+TXxnyl*RRqCxBuU;eeGQE(RIP* zVuk$ef3HN>XKj0XTCVoS$=^?Zzm0$WD|~*@JO24a_7hJtSzdZ+pE7M{mYIS~8g>)|5#2er0~|D2nC zclCYG)2lb_*{8u@Q(d?Bo%f;CSNC7tP87NS-@5OKyZH3|BCpTN-{fC>#EL`QjcKRo z4Cfc`oC^Nu@66+Qb2Ov$z8ly1%E~~sX}ODTZu_Sc$kq5~?e{z0nYaD-e%)C8QFLSc zK|Oh%kIl>FQ&;4veQaK**Drr*{ZIZUc|Y^#{jbS7{_DXey9O0)Nu{Qvd0>vyo6a(3jcx>6f8 zlk&f=kGhbi%|JL`T+ttsP*YcG7fA(&>eb~{R6K|U_ zl~`=sw0@u84fXr`cjaw<+hvvKc6Xue<5^r^FaP>e7aU2g~EzaMr+nul7S}gm+*KWnF%a&|!9pv0*t~SuWW#WF~^o6(k z1&$=xh+R9niMMB~?5}nI(;cS#e0qN0>)-d*{?5D3ez)9y{#hB>`QNVU&ES*I`r4lG zwehyMIsgBIbM0>Y;XSk}{%%iG&F7QyCq9E8NO@G-}@vcq|iho=ez3EQceE$9Mo9uVpe;H+b?e)*c8FAZp&0n>4 zW%4zPuv<4u&EB}z%>5k{zxkVCj_l?@;lF&jecw{`YHOyx+9etBTXfy~0y{5P`=?e% z>y{PY&R_p7`p)~8pEJ4MU#+n_{o3QZcHVMr@#7^wY&u?xy+1v1+tyz@mj0@YKAPUO zZ`mW$8~NV*^MmZ4$t(Y!b@vYFp#2Y?-~U}-yXkiNZU?z#3zz(ScvR-oCCH`d;*Hz& zwcY2HYJ5wK?2Gz6@r`21^jD>+w~fvmcaZxh`)cbi^^U5v%Jn=?iu}F`#NBSJ;n-8O zlViW)5x(4MZ>v&ohaR}EIl+I++mrt~-+uXhHTVC;-SWGq|Jh%vaR2f4lD`Wj^Gu%c z`qwPzuSOn*BiH(dUmF|)@-`Hg13hY_S~(%#UjmDz5KlJ`{D1YE8gD@`K^(^!fpSV$G0uQX4#b`|2^}3 z^{udlrM%a>a$i2qpLpC+|N84w`}}2%7w<`XA6_b3>1uz~^wH^_?|rqr{vLn(9%>2J zuDrG8-1C@krgypDzWUy1UZ*?bxSoFgx7~T0*T}EG__5ehb=$-K<#(RfSwF1uKECTk zbmh9$e_y=5l6$>$&EuK3cwV3WJmdB8h>3=^y=kOGMP4?Sv3g?wC1}j>yep~d`F5oyrT;GJ}+n%v}GU0x)^Zq2CcNV@J^6KJSOXVkP1=cW?r)vf9E5E(m zXj3zDLU72keKKEy1azIg{&C1-OOvcw?GV>iVX375_4Yl*3I5yGcJBLC`nu|sMUJhL zoc)(4zAJYXdc0)L`EkHU{>UTe-8`9JUpGeB>q@_hGCy4udG-8F`D2fqW7jC({`^;B zFXvLL;_u$GZs-5D>5<+1uGGr@Bb#yU5i16ISmFq5loOXQmiq(gEmWHac@NHdRbn{N~v@6ed?TvpZv0~TNP5bWu zyK(F9it~qggnx%_-TAOkBI5cMfm>_WPkpv^Ld5ZP@%P@8|J|qky1#x|&*pE&`_d16 z>v`>yXB}hy_xVYMZ>5XgUQC^PZQJ3G*<0uKHJ8@?$_~<*t(jB4`gMn3QKo(Um6gla z>R4Fa``j4Qaz|05T5G~`!T0;l^*F>`d+Suf_vC6#X=a+j`a^%`INbZVa688;X_ij` zYRlIiDgAvtRH6TC^6e_?K#og4xer}ytZ}>T^<$BO+ljBct`^>?;@kOa0grsqUG}`s zYFe+m`Q1M{M%>xpmOm}&?-rkR(X|e%_}_nOyDE8ino3?>(%e^SSGLQ(-kvXWc$3bW z`x>)vzh4z+PJzcPJa%)HmT;_rRqmeij`XF-A#Kp%+t`n?OA&D^{XhJ+X1y(TB?lKFJ>w} zvGgqS&N=pZ=M??-yY74Pq9UDRrxMHer-mW77vGrM8Tj%-+5UI4-(Bq#EYja*FMHy5 z!~E;JW!`(MvOK@$QN(j`)03;eg`z71ZN z-~Ll;!t(r=xBqO9{Bz;8-G)oNN`JDteig`_D!t($KkeUPomzua0W0#gR5#W|En`l- zY5v$bZkz4zV>)?8NplzN-B5Gm`Fy+lt#k7@cFwzXzTont+$FPbRqPL)9T{K$XvWGq zcjx`5A4g6L&6PZM&Ry(#w7mBEd)qhNzh)J9H-G)s_+L_fmo{E}xM+XkceQoKOD)dd zt$wiemBg#>0ek1~`tQ6mYJ26~E3cBnuFburU#lB=-Stk}KE7q^9)d&t|@tad)U zRM%tS-Lvah^{;F^lwKIKt8BlN(sGQU8{F$_2a0x>}ToW+7tZuyib1|9>xWl1(dxS9QN&)l%oE#iH}uG>)UHI z|20>g=C{l_%5~+Tnw_9h6L0g`t(&j@yL%;j#`kASUR6Du;h4Ou%T2-j^mcK#-JuHW zpS3<#`Dw5B@MPllP#N7#Zs}(yE{;BGW#$n5Ln*tjgjw+WZK=jPI`>-*Q(F!0rTMf@ z?8-D|KW_f*PyCXn_3nImB^t)x{+6`|e2l+U{BJr#d+CYq&(7sezbwCIrR(w)vpxkT zxcpD}b3fNGbZL<{Xs;ndffQ(_m$)MWArk{tUoQSEzw@&;@Lr^7|60(=1{2=eILRIQ z{`d30uQ!kGs;GT_Zx#1b?ecl?pjGlO-pZUPW%$lmTU%&$g;V(zxEpt1Q!;1_A=^|{ zwWs5G>c%}1px!&fh1+@)mS2#SC_eH2j%E4kkhq>{AR{#1*rYC{_fM*|5mKU z##=zbH*6=gUzp2WF=tUwU)S+~bNXvRTgbM81`q6+^1w^kK-;f8AhSMm`i#!V_j7BGY>wkZ@+`f;V;OplDbPgAR#!DXl{#W_`*PEo+mV($iAO0}QmfsHl zmQ^QQ*%=s=q1RL-?$K^wC3Ye?K=zvNK~whI7q&%&@8_%eEx$XxmP2nJM@bpqlegRE zSH1Q>yRG)-Vt(t&{WbglX2<@26?|^yV%DN1m+KGo_WzRU`tNXG?ZCWMhuJ|@+ zzq|X7!f8=bHIljGEfuC^?{~gGpz{C(MPUTmi+#!E>ule2I_kVAF89qJ!-K!-H zb>G?Fh3|Z0ZC@Z>`FFz|_KNuP8v8$|et%Vd>C-Bm_4=on@6U^0|9euw%wOAol}Q}^ z{=ZN8=f$H>^^aD4cK>!*Vztj`2??H0K6KYE=sbG2dA-R%<(701O*=}euS zv2E>sk10+H^{;Ke2i^J>oL~DUuEzCEc!F=}Oz++|A@XZ7U6yHmKfV7^+-LbucR$^? z`Tz4u-`9niwKI-=-LLJw_R6-yyeiX6pPbdZFYxrlr9HD3-oL+2|NQUSaogj>C5ohX z{k^m9j{4o@^SI>J?rVRVG<(yUsP$aNv*nHN`mK&{b<@aNFTH-^Cf&V0vFSzkf4x0g z>a?@8Ilpb|H&dBkIkL(-byyZ8)><$5xo_*b+>LKv%~`qc>A%y(5fgqdzcsCPUg4Rv zxv#I)z5Ms}x9IodT#JA0Xnh-gJlW~9jQhT`Z|{ANx|?3R=a%x5Ylhu#xBl7`xPP_7 zx^>L?mmlBa{JnhL#2aPXbu0IETNT~Tnx7tfIQYuG(7&@Eg2r^xUY+v1VK@P_^N;6& z-GudbQw0^)rXE*tJ6h|Y?^MiptMZBs+Z%~%yRX+Sn5O*3Ib+`ormq5%uI~C(`lD#V zZBNI0-&J!DU*~4r!~MMScK-L=r3LGl_n%}Bt+qP8K=#C8jbhPfuCt$UR7&ppE8Zm0 zbNtY*h;5AjVc`k$x6X#by^<+b;Bm)?K-Yr*e*huJTM?@q9)IdRQgv!3~)`7Mpw z3BRPBxlI1CC12g1f97YiMSaEb>wkT{?oT=N`eECI{CSnp-_9Nr`fhl|*IeYj+r{H~ zKmCu|MdWVp_kK6KHh9+U_lxZJb|#B`OSf=)_)Pyc-_y(H-o^LT&bi;1_GbO9u*h}m zHkZh?eY;YZ+WW6R?(nM_SFZ24KTT)*&F6>TPk+<@u6)O{EV~3}OMn&;Wa}rK+l5^vTBB()0W6-c6Zm!@Fc!bFT7)=M!J76qv(QeX&e_ zMKXiF`-$S{Vx~$dSN&V}Z6>%^ne3E3aa;Mx$~umXMR#}XwL9|qz*^_`dW|)!-a6fR zem(f-2Uq8JyZ?XR@XxRQM$%n|ZvNk&+>GyZ9AV$`!(pA>nc4E!lFgZZFH^sL@82<< zTVk)Lyp1%!zA5+jva6Z*PAuN}cik&iVe|6^%JQdbBd@xxnEdUeh5om)<>%cakN=PU za(UOWC*PjW+Z|@Rx^^f3BdIUH!{=^Ks$Kl|ndzKUPs*&1n%;`i&)%A=JN>u)^BE`i zoxSUJd=FblY~{PZ`@e2|c=P(Dmd?McZp|r{@%dP_c3rE^mh3(K(a%?Zlsjqms@x*~ zZLQJ$>&7>(Ki<@6Bfq_7?zX=BQwsRk)LmdWzO7ne{;Wxlo=?#K=&hYJ%gc6`ZFA&`GI@0O`b@zSr+3A6 zoNL@OYrWoCo+qI@<_n*&w)-OHSla9$ck0QOsXOxi@8Wv0u`VY%U!BX*s^0O2)r9jI z(VX!jM>uxIZMWi!KCjrHxa>cJk9@~l{_4p18i#KFCyx%-d`YvcQ|2(|-??s=Cp@gy z?|FFi*Dtor`*#*?s9T(qw|{lj!5@a&eSdkb+V$LtaE`s{uWj-J);C*8O5bb(yl-Ye zsBcyhy_@Az-raoO=ga>5S?N1g;`%fGfUr(TV3&FdV#XA|akf%{(X zRvO4LRmImmi4PZSo1pDf5HIJv)wb*IOo^#{x!+&!dl@%ZLh*aj@5_yQ_Ok~mrRz+R^crmVGre7(yuh~8QRW@TiQ{^v* zTWKu{H6FkDPb>V*^7@}BZ?Di^Bx`o5eFMMJ%fn%HGy3mOSf0<4djHfe(16UNW181A zZ=E)u@MQV<=-lNKX1-qem&e@qrrWNQJ>R3Z&iwjSy>I5La+5E+ZRVv$UY(ZsrY5Cu z|JRM5Ue#*<&Rr{f_3yW+-%Hm&RFR$iDs8^gmxM=F!Cjy4>}8Kz-M6rg|LX6RzwM{2 zE}ebdcdcDo>fM!pFI}Hh8ha%7#p{GuQu7R+OWk{5k@2afmu>%rcWT$0_TK+|@B7cv zsC=azZM8G1ZLB}q@YZT=H~cs=Xs`XAUwh;8oagrM$-i3n^82wL&;5n>Zz?kSW{~>S zYSr>JZ+cCg;?5`^_ssgo_cQ1ff0ayFp|a@dw7YxEdCab#3;SIjygu>X?8&QMKP~B- z`PFX!*%|AKtT>*e{rq+)V>{QAt9uIOsQf>8M1I?yu)>ygdjgLOYUJI!wvqAHA@Q4? z6JNP5x%lkj#lO)l>ZS9Q&!#ejPrJxC8 zhMQ@PHa&gE55#iT?~puPZYi~H`9@HW>cqA`i_fi*``c$ss7kgI&E`Jcpn zw0;8G9mcRA^EfyF62!q>LE;vxpv?r*cM4FqSa-?!w(P1HfA>E%-Nys(D7(&`|HtXR zw_z$Ig5=`ut?D(Rcc0!}dUK;q#NS(cWq*Ck{r>HH-OISx4f@AFCx5@R|Ig}b+v@Mf zSH1CncQpURuS?F~AGIgl<-cF-|8!ISp67BW%dGqFRjs(T|M9$9^J#m(c{;`li8F|J(O^*83{_e-tkE&nY3| zmz33!Z~hN0=SSNm4R zlXOGo*VLvLcI$U$OP+X|{^P{X&)=`!ue)V?<#ggLqY29|)V@Cxy9$)0T0iXOX8Tl~ zzw7({@7b5v>+QdD)syk>JN`TCi*Az+7@rH|>E*vMt=ojd!@tD3+8f?)bkw#+>b2 z(w1HM%B|1$?9mWDZFVsyx_+WYtHZx*)$f*WdAt1HuN!-Rblq5gVAd+5@Lvsiee+fb zPTO}!|9@BY+508CpYE^x_j#qP_J`%OD|7bQr^OtutFNuC%<0}|vVODW-+4jrrq|V<*?fBM*KaqqCbYlQ_i7m{P5~=GB?a8<-qp0t^{lAky^T&t?@zZ7o z*UDb({x_d7@Y!_x-|OC2Z-2KtR=(u^;rg|aiyvR!cZ>D%!(&1BmwaN+s|1|0tg~l{HedCtxh~@RzQ|MCR?mKPh9T&S`XNzJ?caR$U1qZVep&sozQ`!|dD^wi+_$s7>#o{v_`K%D-w(BtuYQ|dwL3L?$3^|m zKg{~3F6+M=VgLE(s%@bev4^)NMHe%**zi^Dj0^u(`)Y>dQ`74Gt6rbb{{Mn_!?|EL|GPk|??VEYp#clg6zkqva zZ=ao2+>&`0+C>BPKV?lAYx9qxar@`Kj^xM}2o))b$y6{@p3QzAAmI z{&&Zi=DPo@K8LNz-*SIXTky;~dCPaWMZZp6yKU{$qW{ljjBjq=dHcnT>kX^4&+q-e zeV>`l@2FV@8{*T3KVHZ1(Z75sE& zWd1qRIsLQW7yrIfkr=zR_t{Rr0594f4D4m2?-xq;FZ`KODyo}gaH#J5w;_e8|sZ~4;e%=Oy*)U$89SBdw? zZ+>*+e8AhoCwfh<2h!=}1F33e?pf=$0aNvwJs_~zV^ z6(t$Fvv%8^8ezU{ zLW@2}X63I<0W*XzsNdf9P4oKp!!@EOF2^_h|Ji%K%j$EBbnAZy?n~>Jt>AyXFs5$D zG5%8@6kpmexy-)k4};u(#qO_{js8B2{kC?^?!Uc}cPx%txmN#lw)^?=bJ%UolxJ00 z_J@6gw@u7rdHgplH?8(>XY#UNvb=xw`qLxBwx&v0%SYbHuU)gJ>i(&^=+`c#`}ba} zdzo$Fd3@O}#pMFFGj^Pt^2nzAedG02$t&(Vf317*_sk7 zUMT&`YR0ZM^)ox$%q{q4*~Bk?sIz7F$*l?Rzwh~8TQ~RGY>w%P^3UYXzxuWLTx#rc zdo$tp{W@{nJI`&151z02t0ubi@V{++o^kuN=5M}V{6SlLHfW<{_}3{@_il7M(Ovn( z!t>w$tA1JYX8(8CV!x+Q;@a8#Z)c;~TV|)N{=0kSb%Xb3J+FQ(vO1n)^yHpF_dET| zp=M5~vub~j)C8&LwOcra-`nv><6`cv%G+y_nYZ-zozm0n<>>EwcVFe2$js!2o^z#@ zC(M4j+hExmfn&FORvH8u=01DyVhU(S4MRgLWaZ-5tDuTqxbcpE_Rgr?r+2%7 z_V_mVGVkPjpxkJ~^8Mq*V$d?xZMStMET3@qe^b|%eI@Cud5f9kg~PHvfF z0O}r|+4kLGUj6JnM{Gbo1%eBZw2SnX9E z`!@AE+5FRYhjG2!^|$te==a#w=O*5{l3g+Xx9GZ$HT%@of4wa7J@IK=^(DRUQODQZ z_}{udJSY3nzMo(HciaE}cKKc6M!qtxCqE5;e!BRx{N379$DiG|*S}`DjD2(k|(DZ}O}A_J4ofO2WCu%>$frk_-AD)RVdkQ)V@689fHANiX z8~^xzKd_>B@sbNMEKl_&@FkY$OgO&4YR&AXY`$#^b2qN5ll}3{zU=%jftVV>7jI-v z+|ITCdTsu!+~1qr<;yLM%jf()y!?*;lT8kNCBOJ*rsj$LW83cAU>n-b z`{eZJ-|2U2#IJHWx)*_Zc}zc1dwF?sn}z=`T%GmHZu^4$r&90#Y}|d~b^BAh1HY@>e$Lh39ln3^ zwD8o*+CaG<-~LqHo!)Z#%Kod{4{PlEUoLa9Ur(=I^V)3tP4aG?r2=|AEJfM|?HBI0 zKKOUP=&r<#?u)PX^@_~<{ArPo&TW^?xqn?3i7@?)e!p}2CD0^f^7lvDN&A~(?Ia$t z``e!ixa;$%Jt@lJY})* zXQn0h!E+j1MXYn!(GeO2L; zG4Jt-?K|)Oj$8eEO@Daxk*%e=64$52+~@wIa|`0uMPy_r{xs_k*=>^~7gtDGkKb+`H$SXF@uL!G9Yy>}RavzZ18s@(2IBF9)C5 z%dGu%^{mDT^Z9=suC+_}+N-oj&Th)*vzqyq~_%wC(b_ytPGaG&Pcx8)b- z-#cO$Y`(4_d1`L^r)y`65@_8oytTfdw*7OU)-TQLn%|7)-ma@Iz5l4rf4+Zk#rkKT zBjen6#TQz~?zC8T__<@u_KNtvEo*NccaV8}ZRhrLt^aIp&8R(__s;lTKV+0B?B?6e zmEe>7!nMog;%+zod6QJjRD7b{A&%wVzBMwH*B0JrPqoZ?>%OV|LhP#RQ*%!n$TL^| zC|_~?)qI6lGoS7?nsD0ks&hpy`zOT@r=BYPX%n#C61na5)ZB2!`sEIG7q_YZR^N8{ zefajj?(gf~#C`gIt+A&6{-v+&X*({?Ft_>GsOEI^!^63+CFLJE{%u@g|KoJoscmoh zzgx;*SOlBMyLVovZF*JxV&tj3*Mu&z$N;_>yS$~T`rrR{%hcKX*xDOvmJ z!Aa8pDo)kD+b+Crd&!#aeN&(By4AnW?`~PFyR84?nAyKG=5oLOyK&-;=VkTJlWuiw zNmRJbSW|V%i{trg@A9-MvR?Dpf=(aYCV1kr$CnTezs9{8yZNseHcVH3vU9CvqfPH3 z@wfSMCzNex-Qj!kR`64ZeM`j7ygPC7k4hh0TUb8b!R~6A;=9kUSJwPkr1<^r|LTbU z52fedv6~<*-}RI|Z%^bE`5BLx!|tqEtq^+W#L{2PRT0-74+w>w?Kr;Ca4%AFGO+oDFL2PFelCzi9q7Q?>2(-|uXF z75Vmbt-$pK_xHcrBl=qUt@-+gA!^%iYp%O^ttxVLZuZVQ|1FREe9L`jX7$W;!K+in z@Bgn|&wGB~G&P?$;a8u{d7RL7J-bvlWnt{&+B;V9p0DThf8SkKFZwmQcBXa=d*xpV zmty(DWnaE3eh+-V-tL}q?)Tg8XB=O8YyFOWfB%L2mfyDfY^AumLm)kdVJ`Q}lT#)C>&j1O)|fw+I(Pi+_nozQdp4}Q z<@Pyd`D5Mw@WAkPN$=Htq83j`=uIka?2FyM=jQugwc*#~|NBU$zfG?>-||-S`pi3J zJMw;=pX~VNwae|rr>%||uIme492b+eW#`fjch{~{b~~|D_x}px+27sgcKbwsY^2E| zP9OQAtL#bs*S`Pvlb@s%B4WPg(Xz#zUoRW&%=^l?GEe3z`}Y^yR0=-}zYZ~9xbJPm z{XLnI=5hKMi#Q+I%qmT_@0G5+F+K0^`?Av0(y3N$SO2LLpPw6>KkJKX=)F@$&0cAB?Z*JD09g|L)x;TiWwG_3p2`cH6(5-`A!N zPM2!O7rxG}oEvf6cH^n^oYhw6o_(sYX@BigqjvIFlKpYJ;A4{S_ZG~3R_k5+^7PZ4 z>wZ7wo!=jv>%KNQNIv^QXOZi2Qc; z$Asy*=XXT9JyKJ?rg@9|bbD=|{qCi={md7~_`glx6Up<*H*L@TRcF_%w=X;svVZZy z`%gdWoL;q!C;7Q@_wTj+Q^Vg!-^|aRyW-vU>$mi4dDUOu2r>U%bNHQaOuAR$yxrdq zWM4JB@_u2Jed+)9qOEzKcdfj7e9ao`t?|F2Hm&R4!CNcq6MIt97p zaN0dPmOE}mGFy5j5i2;C-wb~obNaPTTzu-zy!|$6Rr{^hI@o>OH@`PNQuB?(iS?_i zPMx|Jq5R~iP0^es&)!eaKUyD<|5LGj?T^`$`TQQXnX2>TO607YyY}1rWpRi1n5&0g z=RVFObve`oG)uVG;MQ8EN>hCq^^^Y#IsN%|uYII3+tez%H}9SvbaHX+vW^Ga9@Ir+ z>tY_u`)j_UWU=$jBlV2;?UH64nDbxtK%(rYy*rC<7kPD-+y2{rV&1ihhKuSA{=MHe zV^z@3rQpSj7QDnyqgjLQOZoWm$ES-wn}0<7UA=niZkrSDK}Sn5T)+RV@z1?ev1`Ng zuD0fBPXJwKa`o@JIpC=}lU&IY=XWo7+gu^Tx}FJitSF!3o$Jcr=}cYFY+~rsf0f_! zwI>`;1s`D#anYG)jW#`X>+e)n;+7gpi8VFMet+& z)ggaY?2wn;erk`w(W4o{3=9lAj)Eo>&&+bxGjsxVHG34nmU7=R1k*QI!C`=NktPEJ z15P>mF5q079QNk_q3hb)ObhS-`L+D+{QBRS-#0|CgQFz;-77C!tN-toMwg%d^XcB- z&q;feD>wYwT5bL1?d^AO-~YX|w@O>?;eTpQBR*B%|D&aN{|}#yZ&H{lZ+ttu(=t~& zVI7`%L{pYqwrx?1-(IV(Fq*KvFEYYT?#c8A_UoV2P5<8TrE+q_ah3J?cdcjT&VIgW z^7`+R&lhLhuA2YjyZ`=wcKyG<)L!0q|6U$^1mo&0jwi3Z%hg`%Jvpe=ULb$sehGh% zmAMz!S=WGfOfLo8jx$yAtUA0)bH}p;>04s2UtMp^|DXJQ4gbNT;*ICdHSW3lEja)0 z%A4EttG^_wzn}hod;Qwi@wKOR+Si==>!Qc~#AEsY36amz9-_=8UOQVJxK^MS|vx&JD=Z8Ty2?obIy`{L=#B?epn zvRY)3jIHFU$L(LTA39&GUr=wiHMzDRQa0N)7^Pz z&$GYT_r>qev$_A(@WS8OyYK&t5Pj~JcbntF!yBje{jy4&U-SRfuCv>;U+rk!^~vH` zvCwyIx$Y$S?rpuFe9uZMs%sNzUI{*A9 zt4n{oZofQr)KJ!r|Ix0azl)aSp0#6pBq4tM$gX8ajQ&<`F~rz6_}M}3SqG^0xXbb6 zsLZFB?>E}$)uH_QaKdYBH!_=d4JCGoZJ5j=6`0?{iS?u<*mu!je~#c zB7aMteY^ec{Ef-eu1$RIb$`pDZMSN>*GOOe^7F#)hrf-ke9v7~D{{T(DvpUrr)Gi^ zk$hXMWWsX8o)_!=p7pM^?Cb9X()-2EBu}4i{yTPiB-MTin76#~O3{W~mQOZ9wxUhJ3HrC*F_-c@c*;?km+hzEzxajg@7e61Jo?qP zGgnr(*j(jT3|l9?{d#+a?2ghGcU33&Z;kEv{ijMxeqY9k+VB76uGRlIroNs3$+7mN zpN-P_Vqe*p{b&$1f2|}^akMvPmHmSD(zmnclvl%5Bp|md`}IP{(0>6Sx&x#G@h1JU0ZB-@BOd8p;z+1rmicHeeyL~ z;A}0=?Tgpj@3`;X|Er>Z%ia9_$#T=P_CNY{*wXW@s{P+Z^>eq$g8P<-z7_wzz5VI` z9iPwV*Id)toomMZRBN_amKQs{=D;&iutVxqC2dE8>=KT=kq;zc)DfI zBBQTQ7ff%;5M1?~y~x<$^n+;DPew;h3s$bY|BbJ)W>c>3m#gceuLmDbd@We?moejx z#gZ?KV)-(4cfTZR*=;#JA#A@~$Jfi77On#=H0{0r;8@4(`4R5hp8qzi680*6_6}vL z@)K{)E4AQ3)wi7d1(F9?gZU<7j|7x`N<{Fgr#rqgyWxF>%LuJFA^+j4|ucE zVV>Kb-&V#=I#)miBTuc>4uJ$he^*|0~kKk-`-N(mXw|SMAK*T?(^n#p{bHs$rozdh#Nj{C@2t(t#hZ|7?t&2z=y$c<*bag4-9aZ(f;QacE9n}tzRQj#`ENQsBLO${u;qgNphBcL7&S{On+p*V*8&7 zhr|Ay^<-aOaCnw*n;F_F*4AXU-j`b7jel_xZ^Ih*%o6XL{N(?R7WMYKVTDu9O3mHs zW}Ywp`UXSp!|pd>!7c^S1^d?uo;dp{Rw6iz<8kh>5Q&vD%!&(YlDGep4%u~aVa}ud z4f*nhz6t043q9BXnZ>kRdStiU|L73E*B2x%+DrT|kM;>&dFPS?sMj@z4ct%LfNQ!A zbnrP;ZoyoppFjWpsHpk*q9#@hbngvl0q7ecDpv%m1!M)FYQ9D0>h+_X_61!CY{SU#< ztGDjnGy64YhV+CP&yzBS{QY^lpxMv|xnd^{zxZJwx^%<7lJwZQ7O78t*0_VOVU7a# zD>-f_c6H6$qy(Njeeu?QListpYe`=q)0$h}NPwnn8Qx$$S_!&DmjLy}?)AO@Z`JR} zuYa=X{OHdeD-)|j$x^Ak|uDp8rnxnPXR~4(6f0erTyskCdX8!t<*?&!r)<*2S zK5xtEz1Ix2ztul{EqZ&_j{G{%GS2;fw^T>0X@2)s(JW9 zr`5FYtG&JV@80-b;o>h2fBXyHB>3xp{`)tTZ?q=a`T4YLVPu?Sf6#5)HO`+A+KQGg zavVJzI`=2EFtYRMD6{){k}6j z?%a*f{B@V^)U8~%Zr$a-`)!XWf4BJjr#kfe^xa=I^Uv>mp0_upHhy10c=6rk`gff3 zu7CdU()Q~ANxT2qT)SJTa9ZECLiO$11=+K&ihkO2c*i3DS&JW@=C|MX^iKc#u1&?t zCogierdDf?dj?!YSR)O~kS1?5olP4p>_|x!~-fX*rws{W2DOv%lziGly6_i_LMdC$+c3=l{F9RrZzKzAsNIS@$1K zzx(f>^|`+v`+hf07yPr#ILGL=jM&45Xyt_S+RL?1Y*#;X-m1oYse047j^L9Iixp1z zzrGnW^>zBTV}vKGfmdx$TNx67Be0h&yn6&`(pXE;+);BN2>GulQ(|$ zsGoOa(lN2;Gv}X9R~P-Q`h3|}>6hJSy&UTvl$99E;)jo*(9~ovm_Vea+jtbEWY$Z}Xn~3z1`~$wWQ1S}>;WS?%Hk@$FZSx(S`% z8FOXhrrH;`uEndUsGOL;ub}+Wjqv&Vinhybs1!VYQ{vIF%X=FGwySTo%e&N{5zHg~ z>-WjNt%Z@&QMaC4W=!anHNO+`{9(I`oxsnxXN(vnpS`Z#Dapro|GYfk&9-gx-+r>p zoX>U5@#w3~xmxMTpLQ*qziFph+AY8H`iwX8`LEX9pP_tdnqF|_vFBmOx@%Y5v+A&} z>n)m5vn}b!X%Ckx|F(H>@B3ObyZ7#znV)ojpT8b(;Q8{L;`!o7axO-Ff420m_UEq8 z6Ad?=y7a@>My=$!g;37A>UXAV&s)X)mA)RQC$aPB>9ceA=Qrygl#73F#&&D}($9Pw zg|ZJHH)An5I_-Bf39XsrwX`M?Z5rV?6sA?@p1s z54jyhjwx?Ecj{Y0%Iuo!`y~@f7ykM6`N8h@zwi8BP|N>*^UUp!i|xK03d!%NNzO96 z<78!X=-6DdZ5u43-p)SUaiZP--kz&$tNFQp#hAaZv3R<%iapVLj`G%}%!;=J?0$Vp z&*7W)wk~E<{rR0^Oa1QIWCzL|G1|YC&-`X+iTAC2cg(~;2Tr(r{>r-N^37X~ zUvmdd_*}kfb;VomPg)g~mcsj0l2-d>nk(d*GyRWfs!6gw@HhGKl**qU!S%OPY_}5xLoR%74ndEBUwQ2c8L%-xv1l!lI48_PMTU&e|teC3kT8ExQ{b#ZTJTKAbLj-*1hH zRhhE==PJ`=&MM10O2?v$`#4;eRB^BPr4s@ zA*=Aljht)6nq_|CC)U;RF+GkkNS=Orcincg)Za4}Ki)b=Ft?@RljZb6jr&1sTJww6 z&aRwdw)X9|-mc{vuO;=}RQHp+U1j%8>DQg_<(d__t(%uCTxY6LIN`Y?|9ijXYi;>C zIyu%&Huqi5yA%k$IaDTiC9vVN^rxKcP6hw%FAn|t*JQIOfAa69J@wA>ZcXlZTKl-d z^+@)?wXW|AS$>|`rf}|O;i~oVCO_^RKEL(<-u(M<`X_pQ1M_x#+;F0_^l*x_j`bR8 z#iOrQopsplczxfug~xOI`F9AOF?+52_N1lzlDBE|BsXQsKAE_*?mPd!xHEs!t(Iif zuE@^$;GEZ4pz!Rq;_a6CGv|l(ef&6mUF`a~sq@b_K24Yrzd3Kw{>1&W53lU&e=TTv z>-F@PH@BVo`Dgl(p5NO_c=~5DuhNbG{bBRD-iEo}!fKzha`ZZzJ^*)`}PYU1rolJgvJbv-#LGhK(S3k<#(0g2cW{1h=uD_>e^(6T| zUKd%;);oV*fAS5k|2sav&%bZ{T2JaXXOYm&U-~Ol`uOgqUfZ_s+M!?bRo|FS{Z>|e zlDE>IMf>2}nVhexF58Je`I6eSf05Deq5u!4kd9YRo9>95iTPpH6w_5vr+i*BS>Abq ze{S}S^$YWF`yEaE%DeLxgYDUa2R)@DY%FG2q)0Cp$$a~q>-GFoS<$aIOi6vroX2AQ zCqh0?|A(PXOVI44pC9Rby&cycc;?UZEq1OgzK<@Rxh%l8r)G;>HH1SGQ?u*R|ic zRk!8!hK7@Sq-IwiTbT6Jr1{OZotMtGwutTyy7zT=?YorUALkhzo0VRZmSLlO{>P0e z=Bf58UE*IVZ<^9luqZ?g+cA7g$xzQMBsu`n5;)JuOx~k^DO& zx?fmPaqfPFHDXV=bF^P{GwoKqUOU@jOs_|a7@vpC~cepE`zD;@Wj4g&?m0~%(&wT1S zzJB=kV*e(me;V?-EAAe$5qcn7bWW4wQ^dBHZ+9&3icxFwt`)iZO?O**k+$zP@B8ZS zW}oD(RJb*t`;*d#;{As=>hr41sWv|u=<<2j@wOA^N<-&V^Xv{xZe48%e-alk41IcWY6>M?^@f_ zId8i9?F+BXD&L7W@86_ku}q;pHZwlb(r}G*(MLH;i|Hl*`F@7A^j1ApV-FMLQ`epI z;y{#A+cy!j^|GsVBT3x-+c;c4$ap?O$45#{jGYjEt>Pwv%LicdYu1vu>3E+ z;i`IXQ{?u|*WNxmdZ>$+q4q`hn+K(w3-1nFjzj`3O z`)hW6>PZ9GVRYahBl~ypDcHq`xSfIhqUA;jjTzS?wuzu6x3_zU92<40+jIr;mbe zOk-eRP}n?QVfpQk6`$`qEVAY*snni#-#onx;uwY_r|PfF+?apn_Wn(i^3Q$z` zRDbVz>iga4@$x(4^Z#9r{dIl+-Sz*Tr^|o%wfXV8^ppIH-!1y^@$B5+e>ZQLk57Z*QrNxyozZG*?|pav zKH8^z->&?A?bpe_pE>;z|95}4_5Z)~tLIey+q>%b>ASzCY=3^IczfKYefse`R_}aw zS^S;i_Scm^zRY`7e=@dS?)5vH2~VfX?V0o~?84Twued7jCB|G-KYQ`R({}m$MemN6 zyWZR>_{8Mf>|%?xq6X`G75+b1+`C^uB4@7ia>IX>9iKIimPW4Az9bjQ`j)dR>Tub6 z$$4C#;?At7(Rs36;Z1nWy-z$IzkLsNdA`e^D;s6*7woy$w=pYwU$ zH-2zS`1|ef{WJd5{8*SjndR5i^>@$jeAm7HZttD>r@zUqHr*6*Jv+m_}8K2+BeQv+}srsU05k|jI$W(T}o28FkwBe&v z6{W2D-vRt&_X|G}?iWhkx-h4yKKJ&zw``*3S+~0jyCqJ)xZPbl-Szz6mIA@H@Nllx zER}n|Ze#g5(OQJ*l9o01jkOg5FPu!$7tYN;yZAs~(%pK!rdjtlgkP*V%>7DhQfU0& znfqi?tUXV#$6u0ID9c%(f9~^*`=ZgFbFvTS3$?8JYvsOF|HR8_I|V5 zNuc$k$C}NXY$a~0-T#`;77?ql|DVl|cfakv+hyE8{5$8_+aGiK_ZqC79aZgNDxIe& zE0_4#PdeH{Va>O*i7rnLtLNYQSZtZ{#nEy8YqmN3%WbZGI%{!m;;l=| zv7aup*Sl%{J0R-S_7BSqI%irfY3e^@cJ({o;OP_=uQ{5%yvWDi{AB-A!%f9y_4i8a z|9#x{`>pWmcaJviR}eS97d2t~`V~jMpWH6`#OcE{tIE%7TnhzG|G8#$Cnfx%ZszZz z+c9U{9sTTsch9Tmxpr=izK7$v`zzNy+NytI^@FERef~`9SZlWQZo`(l9DkBIKXtxk z_}Ez*%lY`I;tK|FI$rP z_W2uy^#=73^N-0L-*ESwvGB9hv+!=={AUxAwq>r_moNBw!L0S|^V~ly-NtWrRpw`7 z){oR<+l94z`|h4NzbEc&L{l8!_KuAue{>0S3j4lr?zH4Zw+{9B#ggrxbdN^;P`kcsrhDe)TY0xnRD4T1y3p+8HVO0R z$tR~j$hUTz|DyQ*{iP4Kik_R-6vO=?Y{K*FVV~?@-HGL%fBxIlsehzAyv4T3I?l^q zl&)mKS(dn)>)u9M@+`JCKds=VZgjIQdya*6HhZf7TQ$Cp^E@0_x~^KS~h#y!B)&&rQ>LkMC8fR%P3L z+g-cQ<@Y>&?}aue{w@|cYj?@Q%KnGU*P7Bj?AuQNkki)N8}U`(ZRVW`x6e$kEpEKU zE`93Uyq5YqKfiB(KeJT4_b-d(-M;XRx-b5kPQ8%cy?@K0xZuqE?bGi}`0lbn=+3;E z3)Y#xEq3&aSNox@wOOCNRmG)sMV#IV--Bmb^Oa95?RakfX^zo1LzbUcwzd6~`nBzC zh)mf13CDS-$a_6fxUhs*M^45^W|MDp*OqU^sVaJF4+l*%t<$^LbMxWxUj@|%`3nOi zwtb%|p1$(_H>;kcXZFj#YAWRj^{35iGkEZH@mCI!`OWf^e{iOKmE3%HlFYe6ZoBW- z)f{TCO5EM*_wm_Bq1>%AHon-ZcyQsfQ`GGwN>%q)ew-2cI=E=kRNaWU_XbfxWGj~axYygashOQgby)M))hn-%i!g+JF3dD6QhUg?Cb z;}@=lyV@0&Tm8G`^(NZRyvb%;|F*9dfts?uYRRW26`~Jt?50l%c*><)@$ou-aob5X8k7LT; zU7yD#Xhe;J%5Zcu2os->n#ZB@t*nq{qsAs=g&PX z3>v3+C(QnS^%-I9cbu#14o3LSIr~ZC{H*jG|3`0c+PGJrl6ZV`vCY|H?|oCM_FY>W z-?+>ET#kE{q2^!Lx$^UGCtoQ%oPO85F0aVYcJd*2?yT(w{VWyjbBZ4|&H48xai^vI z+T1q*jp8c)25lZ>2ZBssFe6Oc&6BtOXkUwpKlYFKl5fnVr`49*81YQ zvdf$1^0nOYJ3E<=KTlaUD|!Favp$*joijgK2mPJ)aY|{gZu7;elt+6?*D$@kv*do* ze2>@V3(WQB9_|#8*3~=J7(3(1Os6%Q>)GT?4X>OJu=amjzc##fcje_v$9%TUJ?s5^ z(p2$6p1JIsW#(;AY5(5Q+_pY^GPlg8-SK)XE6#e~s8r z;(+xt*XWm3Zxnr0nq<8;{eJjd{j9a#JC}FveUtqz*4ELEs19QyXO`6wb)}{o!8i7l zt(kRy_N>DdX3I@}HqBti)f6csoz^#O&{f4(?R>^H}K5`9$%l711eo&&@J- z7w6J8WB9UAf73Hxa|XdV+jT+x%R+;=$VQ3x$$PjC3$8yq$LhzidG)SZ^|Fzbi(O|L ze(%SMio%~+TCZ`GVJ7RyX z{|N3}WEaQ%`&|R+Po1;YX8q}q5`UXhu&!XY=o^S=!wF9APp98~c(KoVSK-cSv6dz7 z-}~=8T={4H42Xg~_vUO+;4h7-xqdym?0SVYMAYE{%RR;GOg1%r=1(I#+OLNlSqtqT zHbf|%5dCtlLhR|a-U^ZDI}|}X9~l@HJpIuWvu9b-9%sE*u)be1chTSQkVo@v)-cVn zd%S)P#OQ=g`xTalhkW||c;0PxU+ItKClo=GpbQKQFN&C8iWsgD-|GV#dw^gca^O3M zT#j`Q%Kq#>_x{iKAMD$m?@qMdqjdWGB>nRJJKnEroo^56AEr6SpX+;nckcgx=WWl~ z{Exf(_i0}3soTZxc1G(*-k+|2=W5LNm)zec-2Q4)Q|144|C4q0{iWq{Cq8-e$9Yz3 zzqplF+G_LOVBL$!&oX{|I^3Uc`Tgj{KbRXqV1)(aio;P2X5t*Cy`%&g0Kosh<{NC-x~?;G4ExekI$IziNp`RlaXO z*S9XWSl3qT{_gmMLz@r&X8p2R>DHW-JI|jltGySO6UOyvuC>8yroavF^JI1{KFeA; zh&qKXIk-E8Yhvs>ReN>M8QV`k@2B<6`<(A<^Go8hg~gw+Z=cMuf73#R{ojuK{dQGf z&0fCl#ch?wx~JLSi`V^rlwGd;efcMa2hP@u|6OW-H(NibGI;v$%~eV_xc~l{-g5ZK z{ddK?j`G_dpZ(`V@8S6o`=6TsF7aN|x*jd@_D7&ANNXT0OH#73ZEV z>YMu3`TDkhN{Wh(|Gu>Do_uWIuP;+~e{DG1ZE^0Hfcd<4ye_*mGhRPd``cl5bi=~^ z$bG;rDeJr)E6*L~@2pYybbDqhlM$jH_y^GsT+`fjHT`zTxnoaCeeF|=ea~!}J1@Se zPvh11UQ4Cimqt_5Yw}X}+-QHbwt2_n>l*DR)3x39^tiaZ&F|jwAX%^PQDY2M%T zzlN8!rtXy4_e#ezVrxtD<8JLYT5lmQsk~aJ_x_P&r}AFqgU@z7kGuS9&Eu>43*SC% zni#$3&Y7PdEPn{S`S>+2dBNXktM>xh8_jBRoE?I5cCL4oVE=z>TkLIKt-LGS#FNhl zOgJ8~Hv0FGMbGP;c5obCt=$^DL(xA+^8{y^wj9eYfwPer&!azUY*-xeeSY_XXXbB0 zP40ha+SQeEHN1YAKKo5Sp-%^=o494TGu`R_Z1b)BXqeFRs1LJQ7G~`~7xl-(!bl4v9JdQA?$+qRSCe`hm>iJw|;&%f{YzVmzeZ+-t@H@ni>?s>Al z&+E1uazSU?qCMK(Z|t~yOw7!Eb#1YP;Li^yXK%li@DeWkqN`7PU0_gvd<@&0Gk ztP7iGT@QXX@tbzvSUcRepkh)(V^joSTg^Tb!zjx}#U>-!Zly`NC-^4(I1 z_MN_9P^Zs=V5je>xApxKLHl#--3+~Je?+}>?mqVFx7bF$RX?jWilZ-4fZI84n6CJl&=Ly;jV4@xG(;!Y8{kK3slkVnDi$ zbs3+(M_sz(>Z6Itn;y2zwX|e@;14z?|PBj7Qsg+pT`_q zSmV7>Y~RVPdCvlGZP|9)%xK=;2+>Xcb8NPKt$E}6W#{|%K_6~$rMD`C$K1ZTsK(iG zUOaQ=$wS+ePki?M;=`hTP%lT^QI>Vb9>w$9rg3~K>DGJmUjKyhFSDKcCw`khS!vrD zanHOj++~m0ov1Hz?i0@Ea6g(Ozx>xP*XHxKe`0>$|NZUl*QPsG3`g6f`MYDn`B}Fe z+;n)CV9=U%w|KTlm%PoEue$T?M}zdioXvKZ=FKT~xs~^9rsC{tj&hN&%Ktxjee_KI zGUrv-+IJmevwt#;gFR`V+$P^2Gk<12m5{H0dF$(~$ZtPoBKX>Vn!Z;1CH-x;<(yYP zcF0X!yti)Vyxi4u&ewaM*^%#k{KE{(1-CwJ<+p!*hvUXhlSHHS$DU2Hm~o^gw@A^s ztoQkj?Qxy=X7&Hgo3DRy-}BQ!8vI57HC#6LoAjOIw{y3Rmwn&()@a}HE^qy?*1$EH zcT8WOTd;G<^T!g~4%xr^^ZWMqGrPKvePp$~J7d1Squ++>A-8V7RW*NNE4YSbd%D_+ z*S^1FCS0D*`LFBLo70YpoPmm~rgIks8x%jh%~7QJ=x49Z@}62AN4u?S6Zf_4%e5A5 zziR%ZkojqQP;o)QB{ngBJ~h6Z$247|e(y9Antm-&^R$%xSI3L3vUO|tw~PM~U~f#U zo?lrw?N{#l!y0M-ilgQ$9a8(4@hp>rInFMs-{GU>55vy+31RaMZ|k0XD6{=RaeXe+ zmGIt+v9Cq)<@7I>sc0DOHJkR}L8^E1w2bS!?De}Evu;lj-S3=}Yk#XW;y_AV?^)Z& z0UL{EIhNgydHKxgP*<$x`(JnM$~XP3@Rv+JYiwt1GH+sfP0p#=o92fsS}%P2un~W+ z?Tqk~hKu_irQe9*JX;wm_pohFagL*3{k;o6Hn%@_nqWLJ+O^Pu^Ha&=*jqXRPd2R; zzZf~e{Qc@;F|JQ;ck~6H%u}dp4Y=z(Ay~FPSM{6jd}&9y+wQlk=5TPn{KJ~KRUtkh z+A&__2Jg;yw~r)#wSJPd*k^Xke}SiO51$9kP%XFE(AKVsr#IKmirJf+fZCgzLPl?{ zjGDbU``g^x*oxKck5pAu|60Fhg8eB(e{M6l)q2DF$##C1zfYyzH_fxCPKQ|$_mi2otWSeJe|d*jK@w@2BHty3c86Z=oSo-_aMmYn5>RkjCz?rC>b zl^?7gc0I9mPWLCmGU z)=#1Z&0bBNEfe8tF=tD`BIfK)iCZLg>n^9uo#k%iMV}U+Urg+=ro4+qku$6MYu)c;~S`U5k$YHy^Z0lYxODrzMgD+;L&B cVE%Xhuf5#|&+}DX4@*E|p00i_>zopr09)-iGhKk)zA7a0|NtNage(c!@6@aFBupZ zSkfJR9T^xl_H+M9WMyDr;4JWnEM{QfI}E~%$MaXDFfhD)>FMGaQW5v&@BP)X*LN=9 zer^@s81qDFL|9teBN-lO1w))%iJ$3=9kr1}8wi(~(L6Ialm#-^o);|L(8<_Vf6k zrVlr+*O&a9G@qS;p+WeBSjy8=Ypu)Qy?Gz|q1*V=*6#EFR91CfoRS^?f7V6u$&a2h zGB7-NvT@;>n8>?3H}BfGyVaVrVT=q678`RO&zq_|aq98;`?uY)e=g3V$IQsUFo&zmH7rG7Y3bVI zONyIy85j zL_r~A;yr!p|G)MB@Bftnsr7=2qK4PH)2Gbt?b7N0{QvhK#huUR8EG2L-SGV4&A+SU z*=zo8x_R@O_gY2t4gaaNr%p?fdH=@0q)I)2?FmGx?JbP85Bt5odR;Y)gC9K>`0?>XLMeVGXWjp>{k=(LE<5-2;nk41hnqrq& z3_oxD@H$4(3(x(+N1?H1(@Az31(5})!VCeQs9w!uhX&<%r|=1=^8LF9GG@<(wdm5 zs~xJv|6CHgd5w45y7KqETs>1nC;P6AsI!`C6V<*xwkE8z<4tR5uZ8jnTk~YuB<4s- zRTBmVhUj$ZO+}9HHpRw%^}d}tcTJD#>$}>=PI~QmC9<3s6yJ@XR6c2&8p%#yb0W-a zk}(5A!{Ln^*F*%*e0(kH_@$IoZ)a|`PZoO(HeK3vq}WGU8x&JA%(G9PI6PMn=(ysiHBsWY3Bc%6OY zxKDNKuROnPpU@@#(&k(-$7NgRO%%PPd3586F2}I*-b@S(2IkSb4wjj1Q`LSTVcEvQ zz_3AP!qm$xJqJzPT;3#{zp+u0fuTW}Ei#hn=~WH;-W@BJykHLu-}+@k*RExUH*hg9 z=!ipd9`7blnbOS`$;iOa;M%-~fq~(`BGhDA78@of{qx$>NKgKybH61&Uab7jYv)&& z9mxmn6sNa;XJ$CSVK#Z{YVH4XY7ei~wkrfBvoB?zN+x*!b_@ISN8#Pik7cu#_n(n# z-0xx4zkaR8J+p!xuTC|G_%Ct}V_-phVj=g-0+GCada_?dO2<5rbT^FE~+GbbGXawIZe_V=xC6PlM# zn`+~iYq?C~weM=zXS_4bT!oE{Lj%=McqN-p6lGwrklUuFov!!h?fuBy+LBc5O+nxG zW#uS;JGkt7uWZ(K^?6F#n<8?LJ}lO%b_YxBO7hnL&@{^NT0vh}4suPH%_X{`dC8<5nZ27*e#@QCZ1R~P8mhZ> zGAAg*^`ul!Z+wJt;iX4~a4*BKZRR8E|_ z_-OrxE$e$^RE;(W>VH|18Ff&NePj5Y8nd=g28IL~ka-NSstH>LNjW#~@2Br_m0#}f z`*O9u`pId#OfzsXJ)_NV>U?S6Lg7uD{KDjXD*GL5MZ{N4P)4wNoA7_T7&NInB?)uuC7k4k7IJL#bPdt*5 zLE@zOxhm_MvXMJCY}cPv^fV$hHTL|f)T0x0z1*Mns0*{6yzCYJGx_~f6=l0~rX|&e z>0vgL&!(8IesQMou1Ra*lo^{p%$Tw6(QGcm&xN~xvTov>mZr32)s~-sB0Wu{xuipF ztF{HVPZbq)dB1Gs_A2wuN&bfRoJ&(w-NJTfraleQ@afSxs=b+qLoH8$uIh8ITDfcW>0g1ZU#73BKU=+K4ZCT|-ROTWGa>`$u27h}J+{Z#Y2QN6DXC^t ze#`wme5&i!%UH|JlVsw;OjahXeqdLdlNu)Sb*6{orq~HgJHD)$G*OhnBK1wnnhZxv zy+}!SMeR!~Z^Zdtdb_}5&ZfTOs>?)uuU~!hkNx-2O^?^7EPeM<`iZ=#VZT>c$(9?H z+pAyXp6ogj$bKSMgMS{^1kvd0Gh}uMED1e)Gf?9k*L?f?tr9Ykj18C1=$$xq_3GSN z(cyoVMQX|K|Hfn!VrJmcpMZms>RYHn6_F*6i! zIfU8Vo;=lJLww2Mb^RYFzh`3qw0qrk--X|`d=5=!HJsf4_*bC))Yu)bC%t`Q{c=r3 z+9|7|`4ZM1cf0d7v<-L6bmCo6>tCp{@uu@}h3Wb;ZL(8bL&HPUrvJP0xzKslv@Y8q z$6M^G%EwOf6|TA=ANyyQTx4OV(aXP~j_ba!Vq$oZvZ;8Jk@)S2Q&j`4SQr=%Gz4JZhro1PzlQb zZ}{OUcQ(J?^y$Wh=;^!p!$FnJ+(ctgK7Ajbka6={G!JiWq~R0_K~Tf!!IaINYi?val!w)2JY6+$+TXq0d5PKJ=vqF4;%QEu zUXttY2nTb8{@~o!>=o%()M@H8^snG{hQEjfm0W zg8I^XI;cZn@f2(=S}K_(JAEqm`oEvr_y4N+x+s3mxwlu>+nEX0{a79UuJ*Kg?~_-1 z`|Cg4;@xl1seZ3E_y6J9&(Fo|`SvjT_j|jS!Tpof=l|OhIw?JGon3A2*JG~xZyZ}w zUGP?N|ANSSc}xrk@-}s@IWe2N_}h2AALqAq2X<|LD%z>P@9$y$xa+fTM1;wx*==e9 z^%sn8-aB#1M&GF9PMoE?;ijVZ+q`dSxoc}bzh_Y}cl*n8*H<3+^zziHlec^s7%c3z zscDDj-MzWL@Sc8-;A56=M!oaqL~L3AV8)--;`wiCFZ|Q!7tl;q6`q)5q3$+K^XboP zukATH+hv|jT=)0#^-EjIG!F4q?>OVX|IK9|fyJywOC~Na-@vR@*cBZz@vKQ!%G0MC zx_Fi{Ffimy)jfHtb?@JsZK0PMys`}zKa{*Ekz&_#9|9SXYB$f5zl;k&V+1 zwWuZU`v2bk;q&T_^a^po?H`h*&sEHcJMkx@RA7JRi-|D@B^9;Zf@2y(S28d#Y&%+( zlDaNYw12v&n+Ksj~CpMhw*?#TUY3&MboHhjz58VKa^4ix z?Gxmlnkw7Q0*5hYGWVvUr`P6MZ%^CJlEM)cpw;@+U|!(HjcZc=l~ni~xA)RF(hLNp zk^-ii5n<0{!ahpqZV0dM3A%E~@SO3T-i@(KGgv;(bPafPR!?pAe!iz}!GGFv=DqrL zCFKauv3nm9-#4x`KCiD`6z;Xd`6wvk9XOMtq5UmTdo$naCDEZ>7X^22TCBgX;`WOZ zU5@`JsITx;@Axb<`_s2jS(Rt|%Wwbix;3F#%0Bg;@w8W`&RLz`uusTnwR8@+?U|VK zoGtoBq17bA)D7$m3<+uzL|?>)Oxj(0bpH_&! zzu*qyS653XMwfrfpYxsj)2~!eUS!yICT)6SipkN~zm{Fs^_dwM4rr!)md;t647z#dt%m2D37w^};T>byqa`*Z_C#L^R|GeQR?>5kYK$OMr z6X8wEB;qSgew+%g|92vCeli=lG>|xb(_QZGUFGb z);zr^59%;5Y;XXpk1$D>FDzeIAPMrW*vap56RX4O%%Af&fn_aJ+zr+wfs3pM26JqG zKb_yb^33nusm!24i(zu-GNae53dc`Qn3})$UvvCk+h-w;j74Pipf1Rt} ze))Xer*gZs=l_44Y##IM|G$_2zc%?B|G8WLYbyVz`~T-ZubK7G{%^eEXX*bhBj=~h z5L*&?C_Vm9q{pB4`>Q_w|FE(xPJn@7#$07H(Zg<=ivAs|D-qc^?MKkz+~Vq|GDmM5 z+k0D2GkMOMjwvSL^E>BFDM>y0XKRmRWwYY9FGj+b*DBqJi?3|<->$c4$q|LP zq`%JAEy3)sB`-I9@mewQj2_qx&yN2Mh)g-UPg-Mk+U4oIsjmAocShV%N_04CafCl^ z_rptXGQ2Kum~K)!tbQ=CX|Bd$j^MhB$2Gh)wGI2jWK8u9gA-@@OcCA5ma_KzbZNpc@HY?@vo5OTx{g%wTv|~ z+^Ky{cK90>MuvvTr`k3x+Oc7~{bl~9CaV;$i_@q2Sex9QAZog4(=^RZkLuW$s9Osq z*MFM)pJ~M;QS&20uFDE14Q!1NtxctA-dUl&RK^f0CJeIk~mU3@(L&~+!_gs${J2^a+ zx!hFZJwrl}g@M6OP5NZlpOTx#hu=3aJq(*#lyG=eb4J(4o-@fVUXP|qJr(1PG*l8Q zKJ{ekQf2M79f320=BY7nTErfx;=kve@PyS)ibwxdSw0hwJQ;j#M%Uq64Rg1wY|*>V z8!oah>GN@(rr4v)((4jxkNVwwIwR9jO7+S_cQ!`Q@b5S9SS-UC25`xQcbp1bvSDu< zrZuhE(f)eL0r~%9%V~VYo!#7?B4F`4Suzg>D@z;I*Hlti4ZtwSx z{Pn5J`Q!T68}9mWOW*g@E7$!MMms+5-2d;_XZAY9!q2Dj<^R>r-NXCuasU7G_y7FK z|Gzl?lgys)v*+8res0Sy|EE3v&d1NMe>~Iw_we1`vwk22}%|6beA zxEJDkec$ig>qq1MEjzzN?DQYA%}?{+#d^QozxRi^U1i5}yZ_Jc*MEEb{7=xM{JM_; z-G_|-|M+_U&m9T38Fhbl{9kbP@&82EBV~tS$&me2g$ zo;5z7rk3B!=UZL#`(OE|L{aDXu%0rB_>Z6ezqhZuS}Ty*zsBbO_Q!h6k*_|LxP>j6 z7;;bT)TGm0A1CekCL?t7*_zei78S2I*Vq2%u480in08$6WY-VJDLq~>bJonT@v{DO z+BwR)NNUrhrrB$&e{*g>XA$&EKsWN^|6lEy0bwl`9|FET<*jIo8zozyoZ#}Wwn;vaE%yZY@HvY%q_tBe_rpM0O zbV)Mu=Cn0mR_b}@I)=qe*mlG7ZR%?ECuXrY*=FkbRfOa3vUz;Xnwx>yN zTI3dXY@=&rp)z~w_ZWlHl&3dRQu`)OZP{zC>N@#o{2c9m*M^Cr3=OH9l{Y1=|0l83 zW8H#xzJ@O|SzLRT7(dv!a?OtF_*;Uza)QHDKJS`1Rrl`ZOB1Hnm;c-U^R-LS``j}V zW~gZQeliJpb79k@(419Qm%S}K&&6=ykfgeHc<<5_i_}8@xWF@ubcigr?UGYfWA_(K zejT&aex1?ctK>dg4v`gUf{Xihpsi1Kpj445|66_<=#YU-5H@^S(P5$1W>!1KVN z_y6_Q_jR}RWf<50yDb0zNB#f)@V}SDD&PI{U+!iH%X1HZR6Lzu|M{A)z5U!~al4eIq7TfqF|ytBZt}Jh z;{QJUKEL|SJjeg^^>goE>)+qZFWV!ZhoR;vFT%fQ0 zOn&$IKM(ujIc)xKUzTn(_vwy(xy6x&67Ge6o-J3dTD@{p(UBRef>(XNdcD5ppQL@h zMO36=dywU+`ad5%7{By8AfAYnt%G0KLfB(Nk=IMi0cKO(%&6oX;mf!mi zshSuXF7`|UO+l?)9FiX!7PHf|e@)G2@&6w{^;v7p$NYD()t}@4AN1Y+c)vFL^x8-H z`u}?UH`V-pba%qfv(BeZ6@RbKvQg+;Y{KTfWz7x7sTRGvBZ5z#+W%i(EkWkx&nN8X zmzIeCT%O;)?FR3bl*`Ta@9m5KU%e{cP-C7s^{BdK&iUtRxBHj9mMY}>yXc?BSAV@C znbLsTvMEzb4{I%3Uikm?v6H0|>)Jc!FROd{i+TR%cYke4er>m?Q*pfaN9Bu^+2In# zNqUtB?n!N0)RwpX=e&yMpnp2HWotlv-YVI*jO;>=IyVE_sv-Rw^tPWxR?T&MW zo)+q-x}Mwe>rTMz&y#JpUYi?!zV_ewuSXT4br;`}eXzyo<-Dnkk%sbTznn^)*k9r3 zzV3a6{>7I@^MAK{o=kaq=dFrKyIf?U*@G0PXOpd1ZYgUkiAkU6y2vNKxi2|r(i#gZ zW$pMsKdyh>;PvK1*Z=0FmoLdCE_tEADjCJGclw$3cfQYj-Bax+#hqQA|JrDR*mNgf zAN@(oO{~niOPtKocbiA`-&(IWb&bc-wyLnHZ(f~x8e(|W!uN33r{s%Q)pQNREbbgE zl6qn`WxX~l2fN9lzM?eOj~%OdrakJ}#J z+xvZnujsy?-8ma4h)Onl9yXr*K9Vy?sY&R#)+{IE?lmg1D_v6dtf_g(zyJT6<4dDw z{xka4y)yc2)#5o`VW;ejQakR>2q=pc&fDamnF*;H?NhEvULdh@=MM2wAVz%d5V!{x+YypA*H8$r%g3|E*jp%z;|$)TiBYd zZ{D9Ry6hFgYb@O3BH5Gr8(e`0Mov8V+$*d^e&sHW%f_OAla^>|@A5yDvNYM|@{Oi7 zI~4NP?0ZvsrT*dNz{LvF)`**%q_~FXM2CgQdeuC4D6?9!=7o~1UzkdL%vrZqZvj=_Lc__OIu-6=Arp9_d!B#3e86DK zDT^l>?(~kFFu5Wjn zyUQmRMEpPTF7jmkikLf_CmD5I%PDBi^$z>@?k)R2tBHcFwf@-;JW`j|8v8!>s=PVZ zBma4o&TszO&C4}+MK>=wvhQrkuBv?(%jKFD$s5VUg?;)zDLI96#@eL!iW0@bEAIZ) z(8x|vT_3SjaM!vZ*;PDw9jO6fG4rMf)$uM-b(7tN+nR{AGRP8~3MM=l!cxy>kCZ!M@xtKO`H3 z&sjuXJRiK#BGuD;jl{Fsb6q#w%I+Rds9pM}wEs_x#@|=!f7LXW-M71-Y?ABZa>Z7= z{>!6FvXPxXrKcrGC~Gg$%<2yGvf4E1{}qq_Y8u>2&#bID*8D}U^84b@!(aRIPR(() zvYaosOX>FHoi0~nbA7|+B<}dXA$Iwt$)Yb+9{qom79=j1lyt3hY2LACfqzeJ&i~u} z()QTjJz=kOuXL_w4E4_Iy1Q*vgszz8ax0BhN%b{$KU+?;oLc|r#o}cyj(ZL+KmLGu z)1uRp`BrH8Sg7V~lQ@#+`rAt@-R^~vkmadY2U?Zq$@&_rp5Ng0aM>C6YW$GHal@wrR^rAy>(`{HZCq%#~5jumcqJ#f0L25k(}`Hgudz5gmV@? zIq+|K_evSDXDr-{!M)))$4WT^2L=r`&}Aj z75DRO`MvDW?nVYP@MH;&6(-OgE2Nb(YqF;HyP3a!GXD^MeV=zr?3>GJ$8GcK-FJN6 z`KwUS{d`Nf`SyVReQP(KSG0XM|MarzszC_Zf8zMk z6*iSmSH}2s*PgbuRdG9BX4L=L@lxmb*WB5syBy`(^M9W8cmEPLIrVAA#`j+?uIIXB z`{m-PuF_>QCQVP_+I+I>;NEZkH$J3Vxoc?`?OS^G<#t8C{{1}*eH#|1Oj#o#yRq+5 z)$32J7ia9{ezv$W#Wl`hMclSE;#a$Qu3GcG)#gvVlpkvbZX{GTZ`YIN?|7`ydr;`D z%+G|A9TP>j9?c27*ZiU>MQqWd-6g+c>gPXF|F7g+xpkqYgGOc5qIGeqQ#Mq*P1<)O zN3|BxOt_NK_}2aM(sqlZbsK*Q*@;`$E!lNdL;H1G=%a@EIW_GMQ&jgY(EBE~EqG&R z>!}stFIvMddzw#XOUP+Exp$WI^iw^Gixsv1?y9o6vf-Lz=-Zp!6M0<=BHu{#OWT}o zmY8Yq`J=|~#p{cHX^Oc`RjE!*JCksIYCl_(N~EOenxHuhxBR3wU8+i4IJr~8UAu!T zZjSEKH6G_6%>nDJIaLv{PEYfl-|XL2Ib}EV8->a5B3Gs!?cFhFyZl*`O-i2x^A8)eunyw#P_mm6PUSUF>+Z{vLytPjpIqh)i_3p9KHIl11Y@C^{TeB;- zT>D>qDgIYo;P;xy{3*ewy=LAliOMr9OLn?h>bv9MHg)Yl_f)w)A+6C=eod=XORnQh$CZU&;v~-8TR8>NVu)CKiQ|!> z?B^BIIa{5t?5$JOZY^+WKasj7yn$nqd^v6WaoqYdV?f>kX zBzo6<)xLmVu~&~~-P*Lsc)RrjUQk2ACU4C?(N(ua*DhVoG;dLn+qJ2yQaE48obYR( zJXJ+(RZC>x>wul*iSA!JG1QRphE2rAO;``93L|eEPnKW9Ov6o;6dLb*=TZHz{t< zxb(W)*HUwH>ZCO*=GL41)%h~e z?&phLo;FX`w|CX;db6;5mP~lKW{1pz8T-;wRL{@RDACeOb3N;Pbzb0dl{cCn_ne$C zU&48HkIQ|LAl@F{{xwIA#;Cn{IE`8NxsO-8@uo@X=U$%Z>b|g9#x3l@6wox-L`(Ou zHQh14-yJ-<+tXrAeaiPWPwYeV-bH#!x@4Q}IJiw!yZ-w(=J&#GBA@QvH4F?(v3vGD z?w#kAMZv#(gTsnWpKQMI_TQKKx}bYv!FM+Ym8oC4y;IKn*U>Wn;F9f5(;`cIZ%>-K zNnVIgSNmuE$;j!`O2fa&H3gbC&bsTfJ3cJ)q445YUQE}VV}vRTQjW6w9}|E!JJzgl z)z})_pK@aRyUwLk*S>x@&22(vNW1Cs38L9%zvhYBuTOQ7P34pen;x7L5VptcsL0=J zh2Mddo0jr!wR?MS^QZl0ReyL66iKRUUsdp0s`L3&*Uvnu+b7ojmRPfX%Kmo~=W{QO z|GVTq%h4~l*{fQX`R+P2DK`D(iLO)k1wmR z);_Bcw&&Gd!~f@B9!!53`{|u~>Ew0KKP&6aEZz}!*>9tE(9F{GovM)^?{?0uVZS_4 z^recEpY=|g%u?f{a(+IlteVwp((nHgzg*q(yK?P1?f3Glrrp`HZC#RIZ9vGg{k3<` z?Cy7Cy}n4{-h<1@9~2`Cm7a!mwr<%c^k|22cDHQvjkOu^nJhC~LR(CJE}jf(a-;_S zoEotr*h$*+)Sr{?`YjVhtv^ir^tw<`)Mm0uz0%E-Y#XC{m`jU_#P(g z(*Nd2CoBXvI}{g-v~uapzxGt6dCR1){7nlw|Lm(;ynNchG?By7RXQolGvk>z6`eW3 zH78)g)SD;QZF|G@G*pq5|ANfn#=rXF!Ip6;EUG8FWIqSI+q8JgzJ~MvuGm$v1vf5! z^ya4i{~r_G>%T8u|8MquxxXKk6Ty0?wcp7(Z3|x4t#N04 z)6VdH=^5&wqb^05x+Z-$tw$f+6!507Hu#ntJqi>?S zW#iuN*?ujl{#Ml+ey;BGnP=t9?jKB%o2)xwp2uwa>b?@@U;lmqNt|^h* zeqXu1%4=$6&l(Z_MCl5(=(8G;FYOBV`@c@yy6(C3PmVul<)`JFxXxSs?Nl{rQLn+L zIiEhwE#RI!^;+?3S!LanMQbdc9GJRkkz8GUMZe+h;vMV{v!fh)mi>9Qc6NH)&va$& zx_=jDEVgN1V-a<*`}p%}H!dr$e_8+V<(Ew_vz?P(ZL3YW-8{>)^jKinHQv=T<{kK}FRgyxFd}lN zT%7*&D(>%f7BjopXD_SoUi|dN1I6fj(!LIHx6BRN0;4@Puglr?Um`2w^@6JDi8ZDR zmQN6k%#rS|yS|{#bD`yJPDlsb5c3e0lcg$)^+CjGMx(#6Pb7K8O3$InB5T4(`X* z{Wr87kK1l~WWg7?5qBf#o$S$d%cuYRwe(19afREy(w*ws$5ig@>FD^*qnUVtJM`A` zcmIP6_@+i?^safK;L13Q|4P4XoLNee^}=WWpY~1^JvrxVT%D`6yp`EYk=S3`^q5m? zo!6-y-Tf{~cJ|RS6(N^2zGSVc{kKFmU0SXEobjAZiJYlbP;{W4_9Bj_3pc(HO}#h$ zxMu6^fQ@XhF6z2p85T{!B4ZsZ>oE5pGjYx zT#V0l8)oLS!Kd>=%v6lO3M9Oq-Ld9?Vbb~^Q}+Mu{C@l2pNXzE=}T3$%avBod>0Ye z^yzJP`Q9dvM|Z3HZ-zXaz5j$5cjQFF874NyKj%$VP*u|4|F?JUSrJ9U?lnsc`y(3U zUxh1~dk0O~rmC&xd_L`o)P>*iAGjG`E)A-e+;w$Ve9x6lK`DN=E8g|27VTZuv-jXO zW$l&x2DP4b?OxttQnhUf*Z0={==SmqTO!vL$kMzj)Oq{5O*yh}PdH1uo$Q*%qiEG) z^(A#hTlx$ht%|+xD(5C;p6oiDacV_eWM7oPlwH@)>n;@O`>}G(44vg`Wh>kzSDc?-P4M818yU0I{Ls%<8x+ajK0n`$E?um6>wz9yph z)v2yC+GnMvO#SsK;LL|}zvr(^ajn|)<9@-lUejH+-oardUa!7wdLX@lHL}q0PDHJ8 z$Yys*_erAO*Sfi)okBK*6fpBPS|uw=EDp%?M0EhRIbLYzAD?RAl&&_cx$&r zR^&zZZOYnO(YumXtb4#>HeGak*z?7yf0Xzg3ctOXzW?Ki@VbAh-&;giYjRh={xo6D zjlgL$*}~CVKgFBg51JMpz_>qM7V{Y#{S zWkaK4rmSJf5udtf=bTrs4uo{oRqX}2R4Q_#W3*6 zcU(>z=jdr)Q*QPNagN`*#zcJeMA7n9DQX+@Qd}2_N-D`l7OLkSFOrC4+>qlP_T;(K z=f5R4vrge}_LOR8e`-F#5qa`cM+8f6z$T^WFO`o3x}yVm54R|oZPxQyoU?gkbJ*=#)x4>$_zq;vXDkjPCp6t4p=P*4+*n4%kdj{*w zme=q9I{7AYW=R~2?3;gGN$K;yErH7$rIREliLUqEXz=U0gI1c7s+sMM>hq`E_CIC2 zVR`K2snBFiNx#TDlfz|xo2Tu)7?z{F`(5&eeL??rx!37Usrx#)PFUn}zWfWpS!U~& z`%f01{_cd=nfUuf+C3Ae)+|1$HK+TBC#&GXjh)BLeB?r%=Kq|3@0?p0k7kHefMEQ` z&Yv>^e)hD#s=vSJcaO5(F87kT@e|h>Enioaz3I^|vG4NR-aA=sN~&J-VgC-Fb@M$| z&(;#u_bL#JoC%0^}F$T#j_ljC5S5eo-!_}+QL=(W%8c1}I zrvCfDYW$wR)_jMa&oje!E=BS;70ils8h)F6p89NkxCb7Q@UGR=)O) zE$0}HRhdPWD}#q#*x!Gg|88SY&zciSd7QgF-%ANRm!4xcVd~9|i)E`WBncf?(|)Ud z!|9~zeYm>;HUK%AG`Ifg}We)17%gyBXyWfl7nPNTvclOno zUGwsvEPiKR|L~6Xf1UoN_1~7imy9g@oIT;+;un@;YTBQE{M=@n;=fWpVbL0ksN+eG z+pkHVTK-a=Pt&t9NYeM`^zHL(KSNq73neoZg;S4Sw0QcZIHu&l!QhQe%bl2IW=-6r z^j`DM{*B>#PZZqyE`ILF!uz}S$QAbWhHqJA(!Ab8zT@Yg`?KbqESdKB*S52%M-$=? zr^z3-eD+i=IQ41A#`ilq_kIeG|G%-W_QAzdUOzw0oyZhrG=Ggm&*C4=|L>_S)^^v? zekxrfcjP*oubt@Z_rDk$wj#~X?AtZ#ZpahXmRG5#s{;3)2-y4h!oE)dYJab#9^S5h zk9Ved#p_Ll9Tt6;By=vGo5(+{Mkb##y8JQu zs{P3>Wp>0q@ns*AEIB8|g{2$&h%3CD#QtWjqIQ;qTX*Zq)yJJpS2biUS+Z%SQ&>v0 z>|;aA+6iCsoP=+lIllN!-#)7sb*Jv9z7RgVGU>bOw1auBc0sd02WzEInQC}gD{q31 zZwj-#Jv`dNzzkYhGi9pw_CE#Pi}yKg;dQZl z#45XU-{ZY5%TL$5lUGxnJhgcHPgU)pjSJ_6s_x!Z zWEtvX>UVj=qCXKOTRpvdMES}$%wgNf`}DOJ;~~c06^rLY2HHH*YF=uwSm&}H^Gapy z*t$ZN)5%)R@{WRU96GGipPXo`tX=iz&C-g60Zq@Su?+3(se3IR5;0ba$Mi%ExzmkLRrVa5g@ryLHV82_LC>Gi%O! zO_+3sZI;t!-AK>%ESokh+PlPT$&8ydS;cLNVt?ZnK8vpNsh9kH^vc?_y@7tJ+Ntt0 zjgI8`XzX6cX?~+DMfDrwCF7^%E4HL8_29hm;MLOq!k$SFfBn1hx4LAl)Tu7h&?jP# zdji5%F6Ky;P}h#?=lST6;;zDdZ<6R{T~U>}W^B9P*}uw|rc>AUa>nsH3EJ&${1Zg> z?(@93DJZ2Q-D8?Bckd#O(78pEQ&Z1Y9-XSt;JjhwnlIwp-9r$wGC|hI1y6a|ZMqa= z9@o2R^4XkgLQ{W!|Nr=){mnx0&36TY+2(6UUaVd6YLU3ZP*R)6>2rie{(cP>m2jop|V8Ca_EaW3=CmlHNE>MpT}oOouXgwa&P z)xv7s^%_U){}krDaMIPT+Ni57q<+GyPB8uUCZmct-6!Ie47-m$o8EZtck9oTqxbTP ze$H0X2sG-NIJIa&>hV-pvnS%WH!U)fc*N1Qb#nOsllLM%``dqc_b8)hO~;fJ+X?Su zPuYcDoHDg+`c92V&MC1SZ}+a7edL(^o#Y9H+*^Mur?_7Aj5_m5tL$^+hhGasjyv_G zEk2~$F{y3GjFT>6dz7`cJlb@Reg2u5AQ6=+Q#568^9a;+u0mhMe?o22FHD zUe1;B3=d;Fuk9Abz<1DXQuyK*TJESY=WPGl|7PCQKkcWE+G=YyXPjj- zzp*Xl>HB+i59T`D4PG=;L)%FH^Y>KMjtrx7p>FuYS7SujJ^eJ5f*(dGfz^-$d1fZC!iY6VCW9DEq#6 z!J3Iv_aseqd$G%_bcN9l#c7U_g_S{GKTIb~lPLZ1Yg5p#-U+g)zB+4jY;S)rv6AI8 z<+`-Ughx`7^XJnkA3j?}TTKjMGe2Uap>5~yb8$c0Ci$t?tA0J78c;8M_~*8ZkJB0a zEFP!0x~M2?byxrBO4SSA*pZuZy_V-%_^J5sC(gHCT3>f5zbWb0TV`9Q%Wf_%@hKmr zE>0Aky1&r5GjYk9BWI6F`||8P?I3jd>HqoP>nGfO@aR-R_mX;<5WB~YRnzzUzPRdP zmAiTBImNki{P|-izC9VU=+(MyYTD-v?$qB{7yR;MSBcQa`a{wntB$n}O*s^&-YqC?k+bx#SF6$#yFZ#TcjDaGk&c;T18VCZlQ zW8}rBp6nr_YIB6lqIr_GFRE3YYAjzO*(sA+`rwe@`MzZ{C#6R$EeL+L*s$0pz2w*3 z-}0^tH!ACC?w4x`K3Kf@q|?mL=|A=u^?JO%?vNf=>0hU`_2K!QjDALw-NGIeNNl|D zuQ0}B{${4!C*QA1+ivACJ6!U)D#f+xZ_buv_m?q{kroH}l+?0MzrFjW5;wzhWqs+T z4PO6*=UK?kJ@vtx<%Zy=(+<1ywf0DJBnYF-<4A$WLBz1_pM-5N_L(61J*D<*oIpCZLgUzxp0$`z4tkeQ%Uk$4}rEuGn_fLWFknaVKEWQEFqItSUqd(73-%mvIF!zcZ$#d5izrQtmzr}O$XU}Kv|G~a@=Z1=R-}e7IJR7v)QSU2wUF6gJ zQ*)Nwx7*N}F8BLge&{?lv*yml%XWX4o9vsCeKRL*G5hq=a~njrf1UDgnZ9TH{Jmd} z@82W2+~023lgq#N{4#j*|1$UekC}b1`JLvl+kf^<=ZpKX#Lr~O+k1QEz3ZM``fLC5 zOnpto-Q|({K3|NT93g&wY5GLoy}e8f2lxzv!k)-F{5JpAB`(>u?}#|_$=}Uk-4)&! zl2V@Dx_dwF_q*-6S>9nw<~T1~B*1;KZDFr_?W)a@jvp&8U2|8s^x@L#ynEk19^R)^ z^g#A#mum>u?z~jCMf!GuW+HoBjDA;UOYdV?2G%?huiZKdD;osavWa#>mPfV%wN z31$yBNQnf;)k=KhV_+z24&0Qqi3)eYrJ&&&@;uTDJX2q3lGcG z`@EIgLN<8bzO*SxL(F?hjYLS=W67y2Gd3GqY!~<+5R}AWIQ5{!rqZX%n-y2&7E}6CI5qX|B=8W>P>Mc_IOUuS*CK)Z%K$|Uq|;;X<35_r%x69 z1T7boO)!oWRJk~zEn-{G%Z6gnfViaA2lt*nO7e0Jt8!ekrlK?O<;}1&yDI-QJz<%) z;YErom-51*NJF(H-;!8%wpJ`jn4X^rzCAn?p@O%AK}Y+>){bq zo@pJ^Bi4mcfx%B= z_KB|Dug!jW7T-xtmO88=c%405wlX?wmg6=>ZPyPQ@-7KZF8Up(sBQM9qVYwFp3O?> zV&=$=ixo0AE;3`DZdu+jLGR)fhmPq&>V^jsE*f{M&8R+A{YkNBj2RdX zZV6J=@vy# zcBCBb%U#j8zfo4_`aZ?eh|zbNg+x1K z*qi>;Jpb;OZU%-84#!S*?VT7VJmqNI-;ZY!wfI&`{k+=yhpXfC1pfRVe_ZA4HG5xp z9AJqoyd~Jgu6jwlDkoDr^5kXqn@wweJi3`#(0xt%kjX2iuCJojOD_sG@81!;EIK}u z#sBtIqlrx{jwg@j@B~(Ensi!Zsw@AoC-1(#@vm3j_UUr^Un2$voqkVcZ3gwe=I;`b zj0_PLC%EQB#Tm|PTFJnmBcGDWdE%*b?aX8TYpqNB+JDUpv+mvH0Xk?x5>JVTbq%B1 z2~f#hzA9WaZs*f^TkX$lPv>|4zP0spfX!z+om0tQKezuam)matMW_C|&A*&o)$a{& zx@?Pd6zi(u1*(!bee{0x2v9ryyum4ngEAQhEG3g~8 zYq%xnKV7dR{`0pg3q!+G9> z{+)g5dfk#G;p%)-1dz(AkJp~od~EtS^Qz6ZMQm(I{JMS<%Fldyb?{fc^1iL)6af4Xc&Anb-U|&uVmcPqp!=cD75{-Xiw<+SBiGAH5kE z3>r75@Bi~yzxM0>H(x%xpZj%1az@E{FJ0|lzNe2qx)!jQA#>y4(Ji}-qN+O-p2 z>K$j?Wj!m`aIXAm6m@LEnwr~F&PF+1V%;t}dEc={Bdti!rB~(8Dr#q)S==c1WP`J2 z;)Wv{hwlECpBeD(m$%Uj3%|$uXFGy29&Tus|5@OtseR3UPWK7-nKc$62l6;&PjE3D zSZMkC#Nu-y({!|NE|stTd`f0hlGTG4)+y5?6nB*G+%e(x>8~`Q-6+*PxJ2JUfYPb5z5-v)0JF$_00JKNslwmgtbK{l_)Ct3P$6F1ycYxhCsL zxcMh-1wCiGJr6&NSN>UIvPhXxIOS-jJBQp9kN6iGm#$4w^_NfK-t?$DefdG%sCs~tcl_V&?)%<| zO*h-bRPe~6q90U6emwF!YkzusD9;J512ub+Y*>RC8D_Nn-udbMp$%P(k(R1R1sr?z zY>yq2CM^pT?_^+juteb9YTv_JY~U8`G^Yx#JB#h>ReX#7pPIh!m-Xxyc{}e~flI-j zL$=YW374j~Z{q+j3vX{f4W8hG9pwa8G^Y&OE>2E;dP?_y%wOxDx4HUXb^Z>1v2R;} zTvz(NcGt=^b^kW}Klk`s`@E;`=N+H#TmIfwZT5+4n{J+Q`}}D>l=%0lP=B3GAyPU1kU2yiy$7@fwCm3!jdiyT_^>hK%$eRyb+iq1{S#C93RAjz-ZY_%v z@58q?zxFoEUeRV=>wIMT`x~X&#sTjgrtz|#pKzwmuG)X0?wQ)JVNTvZqn`0>J~cnC zYJqVCZ&&wvyPo%QObiWk6F#LXNP2w?QhKzhUirt#JNj{YZrn#WKlMe%*+$rNnPF+N zb-Y*3F;>vNzqkBm{ge{L3O6rFM@{Xhk|lHgZS6*Hvpox!H>+{l&vVnV-B?kQ+jG4{ zkKuaz4KqJ)I8qYsxH*vX}#ztO4SeNmy|Qbp~(3SnV;j;#2Sqn&owrp~d5 z$vdKClTz!%fSqe3goCOLo9;N-1Z_CIed~&sIY#joku%uJmrHqVytUCSEXC$M1H-iQDv=W(3NKYY zn$Z<;`kQ;$5t|bC=#tO7y!ozdy2N`)vgpR5H79x^ZKqGY&HnLnVFtJ7jg6|YW+%nI z2OfR@CT;dfWo@k7tMGo(*+ z$+8CC3VifV@FVxBz)v4%Oo+>HpCUAIhRKwmT_-dmC;IMa6f->;738$mj)7rAcF&Zl zw?bHc?@ra%cojG8t&(i+uAs#p+gGi5zquOJD7^VhB|##fGg(^gL(ue_fobJGH?u=Q`YjpvGYr- zT=Xrkuuoqcw<&1vt0G^LGP}Hq}ro?nI%UQj$QEZcUGwUu;s3XuvXLTJ)3+c zi#C51l~;-Xcys#& zuUs#G`~2oa28Ob}!c9e`qW6+C@}t7?O{R#;tjjxbd-_Dt{z+4_%j=`}w`iO^#inm` z<=A4ot2fsy_+gXzT3LXfBmeou_p)ym+%w9UtDw~yYd)Q=xypNUj>d}Ss+9|C8Rlv? zoLcid^x2v%O((xyTCEm1v-jfk9o(z7FfeS;_Swg?`=(sp zUuJlI8kbpSwCnfyTMmuiI(0S&wwwy#3K!T}D5ZE<(NjO^j7~*KpH1<?Bf|lqn;u~{#;3c$y~p~g8%vI@+P-azTbPw&irp)ZQ^~#_XQy8@ zYD;-~ds)skp-Fl>*3S51$~PtOq?gv(e;Is{7Y|FAe#$(N(;jpvq4Q$v?(g1|?S*ud>GMfBq& z>(#64P8zRYGlS0}objn@7{|LwEYmaCZBJEin+% znl75`l%?-BA-cnztL*1CG1Ixe&$!jOFF$w};;ea6NU9=IkaL5RfX=~AZ;Af``Wqih z`l+q4z2X1YqCMVwQ{>DEJe$^Wzh15)xvRxU-rmcVSCA=g$)tmz(+3Sa!=CU>{VRR+ z?^ff}T{GI>WpwAom7i>k3ftvq<;)j7MRca&>gSt^ek;^j@#QLVT5nr&TJ7c|yH!8t z-pw(tOgZY|a7Liyptp~Lj+Jbul;9Mn{$(7A4K69FFIvwEhkYr`(J+4hx#H`_6-*K4 zn?A4G5|zXNsw(xhleAu4i#qyd)1=w%hrS*Rb-y=lYTAU{6JCNgYi5@mS#oDz_=zrF z>o^6gncV)bj@@wx3-Z73_Pb>><8({jA`ZpaMJuD-nx;hj^xzZJfAr+w)@~J_wEYWH z3=*?gCQkZtmz#lM+6j-ym$SPP@11tIba9!sX;;bWQ@`wXi>F9$nw0Cu)W$f~Vq2n6 zef8QYqUn~0Cn_IT)izpR^-C;Fu%_;<%-c%qZ4cc8wwS-*UCJ~?S-bFs>H^`#k17ti zsd~h0EYhz&e=7gpu9xDB3<-@rlSFr}G&_EGThP+;OLW3aKdqMjDJn2sQU2bCpWQZf zK~fhdHgIlwv_+YP-)o8fmm8PDHceX2zlk;S5Wt8+r6I7$dFL!v*)1LgOq|7%Bh(4!-BS1~XYun;{}2`#xK zwY9_ZeyYE^fAfCu`dGXD;_^H0R~KKnc)2$Bp^eD-J^bCDBL4nK{6F{jTYlTq_ig*_ zXTQ5w?PE4^ZR+Nkz0b~Pd-i8q{(1cE_4SV?9{soV<4tDFn?B!Oe7~2;lDEf>Z!eMC zo?qBsr`ff9KKta_E4MWm7~U{EPI>xDYexs@sE6nIZ{FW8c%_tY#q;_2S;*knHGM^| zO`8sO^KAXN!oSo^Tf@%()-R4n+NC_(`sKfgepO2SZM5JIuiaG173IRG+M1?&q}i{( zXS%{D{WII3*6<}b{nR9Y_Rht;1s^Qm>nvIfrd{cxMTFhqG@|Aw;-YihpVOZ^{s zsr7-RW-80lH5nHt7X7-e_v~iSLA6}((_ITAbWX}TrPh62SjOFNB<)<4UR0&KSs*#> zpzpjTzK@jBoWmjyU7YeDQs8^wEiZ0(7juJ4nM2qWji!=aKUeoGH4fXmb*bs5OPord z1Koq>1!v6h6Oj3 zSrl?UmI;)d6Mci*_FM2~UC-~?mbD)xQ)0!h`Fnb8x$}cV@V!;x<=3Fz0jM?g^3IG) z#xvF`JX>geYtiiMu|*4}P0gEdZo*-)RM)gKuXe7vW7jdi&pF!TP@nG0O`h9!^lR0n zo8R`4i!>|}FlO2OQAn7h+s}QGCyVCA#hOjUvuaX~J}cBtJ2=(*=Aj#Z^cI{|?gZ8U ze#UWOM?$2;tJbVMQ<0sUJVWKtuLrA?^G|yjpD;^V${}~n*D5I}@4j}*(KcCqfw^Z| z)k~A}6tv4kTr%A|zj3Cs>1{6JaQ2vW-zT-Oo%Lmc(KHJwuTs^Tq?@72rOj}LG;ph6F zet2fOxHGAp=(^k|V52c{--TrF=#yUa>`sWK92GzB*Brg&p1`s|@qi;jG5<_9Boby%dvekDs&C8p3r7EZxw%e~fnnP5BhopH zeiH2O4M7!R!30r@tGA65QJhX1SW+A<1SSYJ~9{@wdUYr*PI zrxg7EJ_AicH1tZUYrA>v>7Fw^T-# zh>LG#tckhx|9ATQ`ZM|*{k4DHr|bW$1f87G*fUkM@@xO%k6BMYSAV+k_wQcrx=Ou$ zWglLpExaTI_Mx$loOuSPIdJx zz7rYy)w`(jMEB`Co0OV0)@IwP&6Un!WMJ?!nw)Y}qEp(vFvD?XWZ1g+xW6wRJqDdt zz~CqNIMvlhb@$e9t5l{u`F=02`xW?%yMibQP3@^Gr<}3eGzoezwD{r_*Su9{J-4r| zNSiYC)wL*4Xt?_9IrvRtMg2w|1_p-Z9Zyelf!vx!YRg?gTfM*7|L>Fc;{WftSN49> zX`M3N_|Mts|8V}Z*x{KI<36u^ zU6;tRZMy8u;+%(T-LBbOF&gXbep0x)%>887o=itp$Aoq~)W$Gn=o*Y~aAGA4%Qb3rxS(zd{WKA*5F`(Lhf zpZHJh&w1JZlg%u@pFjHlMCkYA|5LyJtlgjbYx#sn%eUU0TEBWx=(JD&Kk0Z_DlKA9 zzEZZ?Wpk2F<-Oh0|L#4RW^~-*I<#c-4k;JZm!f> z&YAQ|_gcZG2|Jc&u~)M@c}+_1KJK(uX!XU{em^{>s$cz?=6B6eoQL7Tlug{5l;i@o zU%!;wvd{5Z?eWJ;4t_N>dS7kyGBD)-+8IVqCKx@B_1N9=cB1Iruea*-%+;e$tg60d zt-XWq(%Yh`H~n!R-+r7LEq;-RmcFS>c{wUw+41+!*oXn#|idNp+al>3`E&3fK9)h$0o!+OJwn<=un zSua%UcL&eB)V+G1=hu$6LR`J`*1Xtx`I>83(#g}J-CN(hoAUpQ`X+zd;IiO5r)N!` zU9)1%^&Aez>6VhliEFdviadf60lC(>nVuy?<3AzSS>`XIXQht;;=K-xo(W_b%hz>aAf?HEWGW z>l%~a-rhSq*Qi_#d-bn+(;5?#MQhH~Wpdy8s@$5Bv(#~FvG=B=$2aEubUYb*wq0sM z+l=}bbK=*3Ugtz?TBRmTZ8&MO$9>bzH-97xUEFfS86F%l z4hp+A)9a)5!nH}Wf2`Vj&Pw#E?7HcqFJG0UtJV74+-k15XsHD#0PCX4Gxu%Y^0`;f zEb!Pw(d8#k{kVIlZ;j2rKdJL?x@3p;-TR)nYR=`Ye{fneo-B*g8q=b+gq% zjy-0cjy)cEqQ_B+fB3_4wqGG<9d;=`Wz`Xw@rYi98MTlw0}LNeBkK1_a(d4%3FQ0-{Rh?=c&-Hu1qIsFV_9rXba5GRl&rcC{VBnjze_R#* zYdw2ww0jN9(g3*y?p{(Ne`{3*jI@;V7N)qaJGUmdg)y@74#$MMETDi|J^|Eh)%(q& zx$%0#yET6OD21Lk2DxN&hO$d(7p8 zgWKvsHG)N}&!nl^kCe?H{oSghon^8#;trqj>8|~3DV&owwoVk4zFh5gU7D-SE$mIt zPmxGQhKAr16_J9$n(qQOPH(Jww@LQdRMD3gH-F?=&SZ4r;`@uI|JnU&SzLJjl+^FS zH4{Y(7o3g`KN)N0lTwVUo|n>0JbDeb9h zRFc)J1(E97o9?F9o9Jlw*Vf)o7rXCedEWNvbLm?umY4H4FfuTR9oGPzYhV0`qw813 z?`26dg2Nt_&iB}1el4Nam4CZSRI~7=MW@$@x~ERg<>l|P$m|F{ToE&ot$9h3xT;9> zrk7t|eOuh7&d9)^)7)u(L(a1JeggNoe9&BF!_lTSbJE^a@PiIjJk1tq8Pt_+n;2DW z?R_w;iGhLP4Hvl4M9kP1C_ON2$T)WD)YRyI3xAb=`+jIO_tUejmcOgT|D@l3q>*ye zwrgJv-`@I!S-&)FgYEqu7G`M`*PN@ZIkea3 z>r=PfjiECSPnq{|{pHw#*)!g*zm@Tv)%j{PN7o6XoyQNGcx#+E&0CYS;_#!b%xceO z-DPKJxSKX-O-yX-c8Ms*mG?6;ZX6VswDNKPeWmnrgbv}%XhJH$+I@K?3xxNd&{cwoBP5u?JKz$7;dP7TAt?O%MMOG z0zMw|%E{SA``66i3(7g5)$On4tF-*jmKQopwYUCV;b;E&@TNy>>NV->f4%VuyAsv@ za-sROsn7N8QZFC1S=WBoi(iIR9(xq{N6$_$Cd}GH{DN9ntELC?d(G~ z-@g9s?sr$;T%EpJ`$Wryo72+gtXbh}v4`R3m*R7C_(DY)7&dtOOc9+39@Ww`y1bz) zF)xx+cI`W<}r-YZ-2CXhLUz@!T#CT z_3g90GSY%dXKvWnvhB}0mD>}ho^q=BvmrBBXkt#BPdir88`D@l(xM{*1e+Lyr7)Bd@|RG6xV|# zUCe*uUrM^BOYXij<=%_g)|-N!PRR&dE&>YpsZ(oW^L2y5D`juxY*OBNIP=&^uNy87 z*CzQ-J~CrUc6_}YXlVXn&y=a_R-Un1lQbhV?3Clg8@b-)E2=JovbLUCO4!{E?>=cO zT4-((Vo_3f_h?nfp=JGi-?J5RdsiNtwB|(EyuX1@`y8zp86Kn-nZ=0ldPcAUfWwTpQycCJWX_a(zf5FTnr3v%!Knd*cLt8cTmhvW~n$6 z!+~|pYYv=rJhr+Hv`Ar&$%LuG&XuZ1{lDB{VA${&nw3E%CjKL$5o1W7wmBXDH?Qt( zk(dAZ2lv&APkVio+xKD0_g^nR3I1-l@=EZ>zrqxwrTrmF{0*R6PgKA|KzkT8swF4v zG1k~8apK9&&9{C+bB@T(8`-`NZq#{`=OPNI3b=a=Ff{y;Z&Cyj=%Be2HLSXz0D^5%wmd zYxghX>#wJat7#kF-B)~r%j@~ylMm+}{=vn-a3IZRim0TW<~!e=N{5Qvc{k=vUA#A4 zm2W~xiYr^-pQ&>*EIq@X1WT*$^sb5LzuwHiz`%D>B~noTgB)IU4P~`NDVhjv7Os8pUA3t$tQ&G;8WL?k+ z<_w!IJy1E-^}AC5R7dP~-;w_G;(Yr@%huPtpQwMnJbNuOcmwCgBhopaPez>X+1CU* zZSeq0&-x#h*8lgq%a!i?^qBQe$F~Ut?XSewhrL^x-~BW7sO_S&eh+(3y^H*j804Qn`S`hGU%qVk^Ct4Q{l)X|!};%i zKX~=oA(I~${{Gqc_ZP2=;l$(Lm>CWPKCD|UBjalFw7kFOX?1sn#+|F76^V)8J~>sU z2NZ~Goc77LJvt#R@}j=;w94m_zn0op#Vrhfvp3;Hm8XEhV(}Bpa( zcJK;#qTBYcw=Ml#jDghVTf5et(bB&3*L|izOSouS)CbTVOiwzA53ku25=HE2w9mmS{P@bi0R{YVE1qJI3zR4-B>wdqvf8yPGQ_a4sp~m}@ zr#D6^YcEopDRyG*ny=E6Bthydl#ZS5`Z}pGIz#`>+w&iq7d+mdzSNK*IYL{zY{$~| z$`E_qPMzWip7~H}LSk6tMrX~9%l-G(En_v>^k_Yc?Y}>%_D2>8@%ly<9t{4aSkGJX zPIGdu^DouCag$Oe-FhuA;y77hE*RJ^THlCsAjJ7u0^{vaReOU}UC(MXv7D`?r z^j5*^)Or?IR{eLE<{E5LvI=s~n11AuUDmxUW(I~0)u2BAiJ7rseoBYK7cej|lyRp# zO?lXsXaKsR#St{2mpA?6^{OvdD)whI==Dy zw_8)#21z|3o}8=~;}0)nmzCZin2+!s+>sEWE5kf&{kqr>$};@sZJEV`MmxG*e4k zN#otr)9L48B2^(X_y04p&**A5|K0NP@#}Ia>oe||CQh-J1D%zl#8d9IU3#DREm&;1 zmQQ%tnO%CD&s_h$qr@#NBv6#s6BK(~i&I_K{fM}=&ro2-BAGf5OQW_F-yW{srB z-Q__&%U(E6Uu*b3bwLXARE?69qZJMB-oHLLNkQA{0Y{`{zQOHjQ}4}VVqnl|c)4lP zx_?i;uSp4S-FEEa-GuD9%GaCH#PfuTIWzdZJ5n^PHN}ospPYEYt6H3afkEux!n_T< z;Z1MePusiT#TVV8l1-NcI-|LuO;jog=H&W9rUS@L2(~axj|MrfWD>%h( zmu6h0?wNNYhjkekHZXwhuSz_6q59k@o@GfhBEwvy9zC6{!u3c@({^{Tig*9Nhr7z` zk6LKeUwpkib*ZV$Bv-S^(W|XDDSb9ef9^JC*_tgXC&l*#dN43FEPg65y|HhKvP@(o z(;~I4<~bAFrhi$-*l7tGGG#cmji}kxn{L@U1SKMh31{Jy843Uv?z1ALP z&aqdu+Ct@?-*sSM*ieB|JI|7xF!et_XyhviD!yA$yAE`KqMtk{*D~lxr5v4XEBx)r z$F1Gx^S(d7VET>yQnAg)uz9;qJI6CH_!&M;*Q|Q}t=@Fy{+hp; z`*+0ld4x%w-&tP!6TkR#tS-p1bnUOqxRcBb4asS%*4(N1`~SQC z|F80Yo6@(ZE|tpPz@n>RCmO8Dd*IR!_xP%h7ml8)Dd4-m`*!~l<8Lp6Q;)KEex7MH zCEQ0OatmW*COf~0aO~3@1?`1?uPoLUnQ6%|F!*UKPJJr>^qk1TUFoUEQ&r#Zx77@^ zO0)fO@x_wXRqu6vKc1raxl_g2Pwo$9^ zVa*fi+zGR9nnYTDpW?qJ^l;&lO-ijfp^MjM8^X?)-NAlT2as~viPkb1H*>dGLMWdOe|vAWR&WWuzcdZ z+H-f$v^@T?LFn=|O$LS=o)bj7<*Y3iF6oZ^oZ#-*x0CO$2hTDlhJsBFVKz6n_D?>3 z{aKay1d9o~#U{re=j^PqdT7PLz+k*l8Z`XCuv`q(@L&)-%Xgw{KEClAn?EI$!EZk2 z`XAiGSiGjYupIj-k&Vn&<3_xg9(n;c#I z)VwF`a)n0B^TOY>CYXtlPi8sdKq(^cYBU|*fZH%E9JJYzyI5qRrA%uW0_k-qC%}omMUs9 zFf4CBxhaWdsb$9^)wFJz#x+}X50fSSw@zi(gUd^u=PGHddCWS0Me*tS6N`9Hcv)90m}#+U|M@pA@Aq9PUg03R zJlM&3@uA!a5k-Mw;q&J*Pc)L~Y62fmt*ad#{_ozDH}j@8)a=?1n%$iE6PD+mU07Ob zmAUYhb?JNUB|J0zRV0hL1eRZToqn|2v1DaPe_Y-crCh%WqL;-UuPbd*xB6-j8}{hl z%(W{TRx)gBIXfe?ReH^ujQ6A2S&6?}2YvyEKH*r_j-uOv1HgodKEyX*g z)O3foN}saY{)OM=*NG{60{IyjHV7;`-F3%%HCy1Cm1hdG*FKJL3-hU;R^@BG^WM70 z!cJGq#r|JdeN-}a>CNcuPdvwUwS|uBmc4ROW_NwMQtQrzJAeN*c2s9=yJxwEfnfs+ zUukph9wC#>D<%3K&zoxGy36zWOwaRo-}S%#XZ`gE+g(rpX`=gGr3)g$KJ}WNIGZzT z&7A5}>SA~6Qx>f`QFBKB^|mCnB_XTsb-8-iYP7ELD`8|=IU&71ZumG+QXfjH%6Nm;%I2g3sqaLXM1 zHb-bh3#(p1(}H5Wn;tz}etLFNJ&(;}=jT2(a+=%>1zM8o+TUay52sQO|JiiuU%X9*esn>DbVb#D`;5K zq^@%K&L*Xgzc(o@4Vq=Dpvh-OxyTV!U*Rm;k@#nY!MMXl=c3R}WZnYsDQ%Dm52*;gD&GZ+{Wj)UsuwSrU5 zt#2`VYVj^oGx$hsOnJuth56r(m;Tq)+?ed=%+WppDMQamSOm_{UVpdj`Y*U?($kBD zAqPWL#ZA|z9%V0lx$52}Ey0z4F1a%YvAx^H$`AqCA!_gMI@4=c;?WJ8&qq$&7kS(H zZfo|{g1w7p8$B<$J8!O2`pYke{8m}dQPa+QZTDu^L{Z1wEkRvLm#gAaJ~{3>80s10 zbWS4jr1`8zCwAExatmF4o8Rj6@Ty(hzpBW5&5&DvBZ_u++3nD~@+*m%;lRhjj?)hA zrvy)&x)E3QT+_X0Tkpza&isKno8F~$95(>1EXbH3+WjTsru`lD{$pP!u1#v!;EQcP zuB4sE!xqfQ5MgzqOMUmZ!cPI$1GaTrOxV9?QdRBL70Vf?TJ8hwM2rCUok6W(Xm-Ut z|DvERSGQ}A<~PlaHe6y14BO6GL{6M8!X~B9W|eQBxA$&Aa-T<76n|?mKeyz~-^bV= z%1eFasGMmAuEFQjecJ1DxW6R$y|6*>TD#J9DsM-s^(LeD7yQ2NsGT_VuuXATSJjR}Dc#nvsUJic z7$Q!mL~hJll;X-3+p{d@W^80;bkobQrS{uE#}>Ske47c+&xj`R)HfH`1$O$R89zQ& zx9I_!X;t8=hWjfW+{4eoo6Czdj_pLd?XAQ~2@zYW2>Pz=L z4_NV8ya(Kf6d9=+zbqJB0v@MDVT4b)*)ea@chk0p5`n4pEjIuiJbUz#(sV6ti_436Q{1X zufO@GL-SSe@1OeHa&CnAf`)pH{KCE{cpVPm*{!X;E&tlLfbxgCy0`9o)D~UzykPIj zxlaC>R}ZRcxz142Uif`$;`QD&99fH}28qnR_FHK(|0UjaUXO%|+)jDjnIm^0>vWgi z!{GDBC*4?8W}RgGWVhzgjB5rA3~w~rckq-fk!f7h^D5P!NmlWO)H12l+*!vPLuYRD zV`Mns*R&?$iTytli$bNq=^<$c`(DTt%l-;f^4ZzhhJ0*=nzrd>>)hG5tdk=#J=M(0JdqD5*H5>Fs@o z!Yh{RF)$o>nY3%ooSmC?Z3Z<$RZ^y;`bF-nn;8$f6K#$YIM(e%cTP{eHeZkb&gMfA zpusB6v^i^zNQd#93VE|s{`|k*nfY6C|Cju{6YLhYV>&D7iuR(8(+ov1dx6Wtv*%8n zTKX4sA^iOH6WkBmmfi(z4L{(SG-u5TZ!YGm-Hq$+e42meOWp$S-%3jT_VqVUbj{X( zDBBLYesVgvtMBRctiFEXQH!oxy_lZ@(eAesK=-@57(|9WdD?o>Z{51S10g(tVNyX# z`f<-5g6?WlpSE(7lC$RO)pZX~tp(iz@JM=Q@~<+&VM;ANXD?AZB z9kl$&&ebbtJTlg|UpZyeKh%$%Y+-(CtLrkMZ<|DVNS zM`CTbDDJgH%HDRzx1RVp z&BggLXDS+mzWMwJS++d>o9E^Ye}W%fP@NKd^lIYw7R#)hiDCIMU%F>inFs$&w`2Dc zo;&T^&h!6&UY~FOfm^+?a8psDzFkPXZC?Dnm>G}b3wD&|t*`sKZI9B&quc9$9DMyb zCrPgE+a>w`pO(#*`*UWw=cD;?Kle98Q#)-Vtm_U6{*O1mzjSAm#$}csk*3Az z-kXf9m(6i~ZKGc*zb(|vR`uERsb~FfZB#!qZFSVXi;unU-8j4W>Z3K&&Md19U9nfA zy8LpG?cYr&SH9XNtm2$=?D@sqxwj@n1sb(`od};3u-%ebH`nmi-rGLYL@SFEy~BEr zyt#j2y~Q0N$Yp_|m-WBzdwTTgq3r!7o%R)P+fM6ix@DYMUioWg{@#Dh0*b1;{wT(( zZC-cs=fT(2WxH34=dV|}+xMEo{F@zz<@KJACmyt1>u~W7<2oszUs-YY{E;(ChM62k z)+gm2R`;Dg)lFcnFXzOmzvcI)G{^7y|DiS9nX}b1p7Uqc&w8~@)4cbstK79kHvh(d z54$}-TVhxL&=QOHJNdup&v`f2>0;_E{kfB~eU|P$aXEU1(fWHkGNWWNWA12K^>qt$ zFE@X_e9=$tmwFvbS~eJ7Tpqr<|Bmn8u)RlJuFl_Tbb4W+_AA#?lVrtOpOb1YZwBUl zThJTq)D`$9DrU;E`_I?kD&KtZmkQ^>%~>JRrB6FUXDy5H6IBsgynnW{Xx#LG{Oi*L zPAw~28?oi%=GvDRR%9JqWB2RK^^~I*e&3LaT*>cJC!l+?Z^@-uyfaIa=ceyou-!VQ zXmj(*OGzJMES3l*F`jV`ve|rB$648^&3yyRV2kT_owWc{S(!n zCS3@Loak-8`a-e#6RV3g`LTS=T5d6u(k)~QnRS(vt|ct0IWke=y`=fKcdXk3W`5lh zF){jdR`1OTys37gj*)vcD)sh!+ZKN@s(aczq04`#Uk_vAjhuL}=SEC3}NwN0l zuJs8{+P`R7qSmJr-MJ5<%&$kB*pq*{eT@Zc=W*{?w{*fHFSgA1l&M=@c3;28 z>#EhX<=cteEjjPoyeDmY`tr@Ptlwvr1y9(+sH?$!bEP(?#OVc0t4c~ua&=ovLpfzb zD{n1txi$Ash#_Ngm1k)9vX;W=T`J!io>|(atv_w-m>;|L#_h9N?51ZIOM0n(&U5~m z8St)X@9bPF)rnV+&-*DA%is0Jqq0lrRHahs)MZ<~&d{BDEo@W&%-k!}_C#-2En?ce z%h%mE|Dv1s{V5+}C!BfNlgoPXNp;re9StvEFXo>wlO!K7KeJ5xb=g`Q-eVtI?f?AS zEN}l@ylmFRO-kXFe`+L?9pHOgKScpgqA1@y>XnQaMy0q5*OB!F6pz@lr%{^Dswi8KNK#1 zulBqMxs?P1T!vGvGvWSh#C%Z~nfc zo8(r>UU@M$H}CG%L@|TF`9hMK3)anV+95tssaVG+-~98JIh$H;1{yC}yV^Nf==0>Y zR;pGvCf$g;;Fsup^Ht?smm|}ff*K^yhQ_Ai8f;ZZxh;Dwr@rKM;RkGHtT7g(}>*o zVqtgNnk{Z&IdX+fGa{3!mR}57v^R0mnlDW%OK#-f`m!K+u#U#a$ZwoyqLdhp;dvbmFk%=`5WCr zmh79DA5P%-85w(h;nH>A{5&^(Hh8+y+@wc_b$a}+%I%q*%lf@_R_SeCH#uyA$5!{C zqVTBgio3Qx_9ykHQStwGmR5$-ucK?o@fEpck@A4+ucZAcKXyz?bR{9ySCrS z>n`}JF0Upj5xG*<$$xjai>t!K@N?`GS|BZEaZ#-I40y8Wz6hI`2UnP=IZ>by?`Y}t@$ zc>C9^X-Zr46{BOW=PbQ@tXCs3Wrs?ru4(z@>$7uD?8=P{yR{>@GcQ)M#_&v-)$iFa zmRg_kXZPdWzI>TPua~h$n&_&)hui!f*)8MQm9DkIev+T7sD&Qi`(>)@Ke%zGiifo2 zT%3L+#A)Z$J=1=bc+FUAm!!{h^rhegj+=~GG92C;H@EqDZZZyjnpt0KC9-ttWuK&H z?#67>m8b5rGrGxC(p1rPG_2s}eXEYU-HY!1c_`QFB3FII@8gNCI|-}Tvz)bD^T=?M zP>kY_7RQravZf#9zoxpTawu!x^fj317w7Fo#th+HO_T8?1aIFVVTq`^=o$ zjiK3#qz=X%@W`-r-nORqv!jat>XoM^{0V(j;JL}a^;_PuQ!giruDojD)wbj7o~Kir zWMis-KJ(gou59||O_6QdoBx!&n6iO2t~Mh7&_eGUcUGvh?V5CEV^_-Jx34a(t|&>n z`q5&KXRmvW3E zH-54!T5_>2|L%XiZ`18oUFCSW%YEbhg3o8S#J{{D|N5J^;HT)4=WESoZ8tSMF-y&Q zOR8dYRCrL$#`}9CSvK}g{2eki?AE~@UAgkss)4I_pM3uE%`&adxiy|w_APg5UMKIn zd7aF*Cspjck&2<7T{%v1LdI8BuPkpl`fkcQ*Ba$_%gQa75_0kqGEB$A{BE6ey!5sEk)oyze)xSUSC}^=7!+~#>M^Ztm8y1tWt^?e^g&(2TnEUZ)fBoN? z_IEyVr=PR=_%8dm{5_lUXOFh>$KS61?m2%~Y23ekcTeekK6Cc!^859N^rv{3)>Rd} zmE3Q^{`{WBjE@YeZ)Sd2>Eplu&E&MipUaOd^wwD3wfgWo&f+UKl-Azc@j~2mvnv- z*~?|@_MbB+{a7x(@3FWDyMB$3QT?Zjs?)#C?SFTSqyEq7yT94>ZWjJ+RN41sRlG=C z?Tl-(?#dn>UnXns?3}ad=AviPRnPyP|MT^){twoN9x1L(=Wl zR`fn|d=$+{d!sb*i$vl#nd-{}^UuRx&#fNL@|9`zc zpMKV=1T;BOCKMO9A}(vj()_u%wV!Lag}u95=6U*fmD{E6aQU`*`!uyL{cS%J#yUsI zW5R^U^W19Z4!=I8IEhWxDNM>y@9zI#*&{0V{yy>F*Ro6{E$;cw&pY=|`>%B5|Mj!t zTmSZ7e>US->JkAN+vrJCZyG+G#B6V<7vAUO1C~_yn9H~@QTE&`p^IVToeDx^kt@wwvtAi*Av|~ZOIQCPP{ms^?O^< z*L%n9|AZQXt`?7r(cAOQd-{*&>v=o=OiF4wRx@k){GZoe+j9s8EjlfKDb?uptU2;~ z_N8y%UG?#s*QK{R`U;ZYH%}-&E78y6m(lC7C1vRZo{y8-umANqqa!rA&Eb#MHM5#a zC6Spd7jI1wh}`-AqPN+PrN8;(D@>;ZXy`HUF8+7?)GUVI_k*V81>LU=f^Yef72h^H)-uKiBPP_F^o-?`rj^{kbXs8Rz4_&P`kV)l;Y`{pt#{SEqzmoA_>=qvfIF zR&U;}wMTE^y>uSP^6NaWKRNMMCaa1 zQ*6ZJs&B8)SnKNT-}&<2>1^%Bwlyab+|tYvzZRvaR(4KQTrJ|;Ea`3BA+l`Ola$n_ z4}LKR&uA8xt10mmPdhdJEvP@WO(FZYPxI2*$=!c%%~m^E=C@2y`%{STwrsVSY^Bfp z-d=t?_ss8OC$?_WOSrm7)FV)}Id{()t<1~f>-VmnoiDm%t9#z!)N1pXNn3RN)6JLW z)LmclwcpXocG_Z{l;!JG5_FomR$RJz@r&=C=HobkJN((ysVclpo<7Oax72$Qk2FrWz50b}r%f@B&{?+>*R&^>t9Cbj$ZS{9 z{`jvyftfdw^O6APHwC{5dGek?i<(jv8T*D=Ir0?lR-C2(a5evXyNVx^W?tM>^t`xz z_nTGGCYiOT#1u_r7H&Kt-L&iHX{lKgcIG4|Pgr9s3+X83-1U%Kay92_?_z_PNm*g{OLNw?G+*tNJTIcn`TaLZ=Za%vfE1SkB{8r9z z5>weOhlTHEcAeR1u=nnn%f+XJ(%jEZ*tU+Z*Yk}3wpUYLBzPy~9Pmf)CDkgZs7_UR z5+6V5+(e_TwyW4)NxiG7WjbnpC}_S=?UIDW#_l_WOxi$0hg*-Fwk=XUv2j<{v+ebg zCt_PqsxRl5x@JdV-#q7tPEW@@H6069OcdSzsA0_w$LS*JQ`SU$x!~#?7Nx9h)^Fi> zM#pgP_Y6G4svL!a-k9fBU04}WVf^^B|8Dm+84khSlV@$daHh3Q*+eYz^rZ~P zS!V-49iZS@Zv<3Qf?tcRE#L~;+I%)GRzlD7+sX@>xl1Fzzf?1fcD37d^mO)`t~+bB zzfPRV8LiKk+G8Ix^XqcgIT1?=I(#iR&+_^C*`hbt>Fw^hmlm!swtA)D>ZSAlK;E%l zzV=o8ji&^(@1J?moV0>3rrnQo^Huh5i(Jk%zHzWnajFZuUK%kss_(1n#928a>unDI z4mn;G7g<>Ss;_SEe%mFSXY1xN@Gd*;^}gtQ>)yXJ>jXsB{d;m)g;`m9tFwmY%hT=> z{Vz{-%?RG}$(H{^-X3k4 zD0*3J$+d-dpLxxGy6^eIhaA1Fd6BEaj$O!U>k>25^~>Dk94x)*Xz9|6J-m@}DY=}= zhgDZ*t=u_#-@O|7n>VMg+0y%OadbFaJkRE-=l-cxz3lsRxiR?A+m)Jbi!bp^ifqja z*|B!=j(*L<4&Q_8L%vKeEUYlst!y>-(%8MgD5ZO!$}*u-YoBbrvOM@u&R4-|K@GqD z2A30j0goL_{LB(-J-bfvdmQas*|@50cf7p+x0TE7RF5g_zI@}UTF;uEhXLj{t_3NT zUq4sEd*YN=LF)ryHdXDiD@W?DOc$N1*s~_Z{Gbb4s_N!BjFB7fP1yCnbdyr&N3RJf z-#*V=;~^*Q;x6oBJx9WK!qhr}))#>ikr!uf-aDh=iUw^vBuaj@CP}=JCce~Z+hq*6b zA?ZEw9-oD0*txwQYvVIt{hoT!d;Lki#)Pb`AHQ;@%&%%I+w-xMPsF{L;a#NUQH#h< z^EDDvR(9;DNc$lhps>TKfTRD1yQ#*d$)eIn()WF@N>4fJW9Angw&%r;In{4@Q#-P* zJQjN-WBBpx9oLwo4bzO8jAs0q)Y~!9cVpX>WsHR{*)+SJf0~ju`DEAMO}&54JKXB~ zaDV@wOUJicd^*Yp>Z0Vjya-D^eJOLz?z0naWt_T@sWH1G^{9D7S=IM6!6Prb=Z0i1 zo!h(m#Icg}nz z^eXsJQn^<4$F;>RD~nA;S8n59w|C;(O?FQ=U3&GYrDW>P!X-wZ?)pepsa|1UXQ5;^ z#g1!l@S?*9G&knyn{4E}9lPEoqFUk9B>s6nS3QvxouI_~e)oFYt%35ZK7T!VPTM$D zeLvUISEocbnJko8`1fztf%T2Y3Oi0aa4YWSDe>rZplv#`kj)*A`gi+N({zx@uIE|@qcD{`Wuu&VY=T}^|DuQ<0AOgT}% zZq?6e|38%NH`OoWn%0p~_&w-^%?-ugZwBYr9Td(vUcAdatn0Lc`lXOh+@6JA;j^|K zdlz3>`gqsXEz*Be<9^7#e|$K!xzzdZhPji=iUevSpRZ_pab@bPhz*~j`sbIW3Urq< z`zDlwPR3&JW5qiM0=fYlesb~TsoLA$EdF}g_5(`x!n?ecIJ=^6KYm&#;ub|85^9N5<~~btslk-MC4KS$+FD3rEgP zNnccNb*|`%;R*`x0QEu4(&wx>v7&SLo#4}5ODud1ohGw^HjguGJ17yUssC3a^5SC6 zU&;&&3=MA$oWfEfmO8y#Drz0*todt|0LZar67|h%m8I=A?vMV~r1bfZ6bAzX!?v?- zo02@vM;-)Cxh1eII|bT#eqd(4&8MmJ>t9~1|9vU^?w8&Aw!ijnPXC*Jn+-gRnOXB* zaJ}ZSz`B1OK1TmfO#gcvD#2NEc=oCAXVPAp4q*%o3<)~v=j(nxPtxlD_hW_6(FX9G zXT-T(iBoT``(Xl^$i24M z{~w$rq0{B^VgT({y$oURvz=`UuXMR{P}}B((J}^ z3tDW2?WVqbIlcChj?Vun7A2fdLkdf8*e3Q#MK8H3E&g{=+BW9I{UY5f8y7q6TVA%_ z`La~S^V+)~+tQ>@q2ZpYd^k~ zulw*zZ?E>pbp5{{_49YVJb1olmdd}Et?z%Z9zDoCzvayQnv#=CYo9OPZForjf6@1U zjoxK3^$MN(dtZsShRZK2J${ixNa*hquRNvYIonqJY&#?VZ2kNCgZdoqO4>p-_vXF7 z(38KiKQe4yO;wuYshPhgU>p zg64#M)>_4}ZwxmjeLj*oIl1ac`~Iq_CZx0JQHCrw?w+WPnE z&~JGQw6!1WnLl}Z+W2%=v52zv_q^Rpo+jHWzdX8{-`W5E6w#OeoYPh_`3b6coLKXm zRrvYC(#Hax&3ua5y$aLc{a?wKB=o-SlX|>Uu#oZk&v$;_iLd{^v;0q!^1uCg`=Z{~ z?=d@WGDW%d!Hb)d)|~0nd>+WN+QsbMs`i^-rp(x%e(TQ?+3G_%J6AoGw%zySXWp@E z2};ijWQxR>xbsJEx%+1!|LdR>RWr@Cr%ZG|thb;4SKnIw?0miB?dxTJrz*Tw4c{y- z8MiZ4_UWNHn+CYglq}tMY`^s@d&T*nK9lpmeB=0w>TjZ2zlcbw{EYAW&#~&kr5)`L zK6<~Cy8OfbPJ(yVsXbMXmt~qiwU^%B)%RHG$fK8Me|nbcmL{sGw)A$|?TxB^lJ{!s zD_yl!|JF>6iY6P&A(OeO{CZQPZF?M z?Y1>Ad|t%T%&w;)j!A~Uc3Xx#Eam)KR?E3G$JKxR_mD^Fzb`EeyxJ65`(@_(lU)nH zZ#3N$^k&(b==_XYPou~{_k%v!Sq?_48>$SCUfg=iV*Rh>Et;E83TrFot|&BN_qwD! zHDG>tvrkrw`O=>O7XN*2C+|NPw(jelT|xUxBWHw$wHPc&I-*+Hc3IH;f|61aui7bh zna+>%3X|W*6>v|DJl`$4bL*OGGk9+XJPQ__a&3LJ4c(=YXSM|aK zQOPqW&Zw=4>szCuZ)lVR#s#+5AG;_XC zR{5vkqbxlyRYPNE3LVRRIq3%Ttmj{5?A1HZvbS_=Qoi|W*()afX&O_{?B;#C+;QjW zuX)>EPH_p7uYQ(YVym%9`RPh8jn`?*8&hjNzi_TR;djDpR}$~W4^{eIr{2#A?+rdA zc3`Vt*^(jKc&C!>1*C@H#@##{`3z!YX4_1_`v)uxqjlp7bi}wIQ8+A z*Ce)sD$6$Vz7;-Z@W|oB+t4qQT;^G_b*3qAQZoLOx%aNak1fuVrdIrS-_Y2$h9$Fu zrCLDUV|%}fW}u_d#hGf_a~0Zl+!Z)G{lnGva(SDYlV>s_E#Gh~$-DUEcg!}9g+DoZ zUH{3ho4tR{PR^O9#mv}F-nx8{Pc2tF<@B}QCyr6NeR-#a4y&%*cJ+?$Y~8R0c>=1S z=_j2l4*2_3Uo|IAWa2B4DAZSSeHJm}Uf#2pmZ_YZ7pHkdhqoV7d8Qs+>Q%Bqb)wx> zU;O>5z3bSX*j!Bgz+_!bghMgcG(5hqmruH zVzwn0CrrI|qU)@(pMbHq&wG<7uPx?2lcvT^Xc77CJ6oaJ+ zu&lzMVzF5>F2uFJulZ)1zeQnHt^dr^WyWkXFQv3A>0y&K>*bag zdabD49&Gic)X!aZiAU#C`5R|FI3A+5n!bjjzFD{|DlxoUoiA%hB#~ z;{2;!e5->`Z``L6G`aWD)bxsGr!c37j~8|ZhcQf_k-u@H^{>?vU&x=`@q1ZFa#r-G z-H)zLy_R~4Vyeo4&5cpGn(q$J|b7 z(chNKa=1LsTwv|7MK`;}b#tQTTuN!*rk2wE+H0|-^d_4Vw}jlOzOn-z8ClNTcC5=XQSHxrToNog5o11y z#k*}sX=r$p=8c0}r{}K=xtv*UsXaS&htX;Oc0bPO2Upv_s>$qXIos=%v_ku&%xVv_ zTkG`pcDbjA$(9v&TSm5)drMR+hl(~u*8F;^K7ZZm$hkt`Sk@B->&->@yVRM+P<~ycId18qy-#C zM+EP0F8Y$AqWwHyBw25>hIc{h0|B{@{aFD^)V0kz&ey#EdhSHm%$zyv)>K?9wETWc z`jo)c6~}dtSSCH1y|a7Akp$gTmQ;hEs?vhWvy*r=eVHF!;tdix|5Wp=+GNpcoz1j)BWtZpDo4W>Lw*;HLtKu z(Lo7HSA}yPYE1ke6B?}Xf6m*O?6|-;B03YlH5^=X<6_4*gY!w6db+vOmFt_{ZY;pk zZ|is7rFb*zR_{L}{Xc!*KR#S_aMr@Q8<#w-Ej#wDDGqTidFAD+Gh>&-;^nHmNk5a$ zM=V)fZ+>CphTY)Vo#jlBeNOP%5=I6F^o5qtDWzp6Pfd;f6aceab_uWHqsU--xS{o7OR)z;;QKua$VT$9k(UZlKw_1f)v(J2>N4}$K8xnY)^ zs=9*%Y`gm@i^!b{T}i%6l(oa3YF)UuEdLc~Bcq0-vUXHJ)FvgZ%W`=jfg2M9Hzma` zNvS`7-zVGt>9r^Z28J1(AI)!AeVQoh1DfwiOH+<4?2ipBxDD!><;+|OwxD1M)bZFi zaG);N1NHu3T~!6T^pTd`I~($E=K03UF3XqJzWZGN@9T5^KZiUMX06%r{Pps3=GfSq z%il!j#eVEGE~x&xdVA_({e6EA^T*v^s{ZT$o2B;up8A^G{+Q`M`H21A53>6gSX4Zm zJmKf$e!ZPr-q)0vyZv|^|L)%Tb9-O&t9)D<{&&%bSBJN}vygIhS~NfAr0d{c>&NtW3X9lW($TZ&6=T%F}zf)3?;DNmtoh@ipz;&1Hhc19lrk?UrYseFa_O)ARY#vkcm4l8@y_r{dR98mdj9X%p!v4= zf+PR0pDoW^Cw2b&>e_S~ty{+&NlQ$J5Gd&9Z;>8fe@Uw%w7FZ-Oa)nc`3 zAyc?$mj0=GcejN2@6Rb(wd*a*NdfM{N|l6+*I)L0?JUoKCF0n$d`fYC&HsX_#uqM$ zExx<^Y(?bGO_L0#{#kpvOMCmXiBng9xBK^Seb>wB)%QO=Dtfpze%BHCJ!OZVP8U%& zd3M?6@0sm!{~bFf2*v)Jpf@@4`jbBozS{1-d$oIe_@un!r7hCc@-1_+k5!};IAyym zQq^uv>6mV_=UsYI+Qb3l_QH{;RqsEyiM`cl{^WO#)O66KQuxLnMPC1==Q4+|Z0~L2m%FWYea5l+*=*K1 z!OyNro4@_*wW zx=eFgFl*=07w?}1v|d-ea{H_5luavRwZ(F=Oe?XzVxB1P;=N6I<(4$(w7U_{Z|c2x z%QyYbn}k(cBy7a_R<=Yie4Z$BKF9p@1&&Dzzl9hb**oo3k!sD)-)4rtuP9hs?E0kZ zoL%SNNrMTmYjLB zb#QCmI@3Vj#=Lnc_qL0#yIRcnI?cqrOG|Re&WWLymg&b; zn~SXExO7W-`^8OrrS&{-O9|7QRE&)n8$Aw~RqPtDY)e|rD^d>{F7)1)Pi2A!EX z&c9m>dn^QsszvvzOib@{Ty(Qz&553xsC;t)ySEckRPX&4%vqqQ?I@*mQ0@rlrMJqS zULg~FN|v4UQtwdAGk5u{TJ!bcU3UI>BjczrKJE9vs`buB-ppvzPk&+Wl>O+$Z4t%a zMz5E-ubtWyvi6L_VZm*pn^Ir9eNw2*l)WVVG*zt4J1BSc&e>+sYaH(Kc^x?BrtA9o z`daN+t<4K39AC4pONuXe<54VY_#Qae3w~D$O6hBT`8I9dyx?gD)>&;^N=q|*lIk{v zE_Y#%7E)*56@D)4{HwAVpT2zXV5t?8yv4rg&dof}O;K?mKSwEK)1zaSReXu6YOEhWDK;%~3%k?ByeWx2HfT=ZrlgC`;=GZWy=!jRJYq52 zeB_JY;-xOthgBk9vU+-Kyuan8N34dbiI?EV&$D#_8x}wlz;{+uWcDYqs<)+RDW(2bTtmLN?WN~EKoJikge=6r3(_HxNuHVZG*DYmB zCn%{-t4}b0?AGplwcR1LV`_fd7e~Vo_I1w7TW-E$t`1as?og&6Bcy1*`nA=TD_8Gn zdX~v8v-#TAHgWNTPu}M5&2%q*DeQE;ntHAD5|@zXcMa`@Pu8D{4z267+4PKA=-}Lw z!eKR_6%jwz>i=quO>0?mVuP3KTh+`jskd8J+y68;dEkWCTLCYxU!MezCGXm#^h`wm z@0T?vl6U`nBA=bIbV|<(zL{%OmUk{TE&OzF`3W!c4mFVjDd+4%s|^!VRDUz2`-UE= zQ_Kw(t$KQ)Z^b_2+59bkrcGFwk$5?2`NABbsPhwa*JW?Jl=s+eih)tgq*c>q?SA?C z?DvUtYfpO3F6W#^{4zZ)tEoFI_ROBP=a97Ol-K~tO|J1m!JJRSK1IE{teLp&SI1rs zk>&0VN-69s3KevYo|CdtJ$cS&>hix|Uj|GG^E2+8DSuWXrZ42zuM;WU7dRhjik)6{ z;@i1^kSRLPR`X?=OHL4d&Aak8DHkXXgn#J!yDdWpr0CrP~WGCHm`sdw9I@AZ!^&J2Bj^-hvs*u%R*$KP5}0V?j&4GpB7$4Ak88{$WPj`q{42xBdM3a>D#MMPFhS z-?r6Mt@)7C-S%PcJ66G0cTcWfWHGCkYs%UsyFiy-_+Q`hlBxFD`iEQYZk}`^MfL86 zq#1ALO?|+1P|@a*{M7{>_o`CBjUS=;IOOLvVbe39N;f8kPr+n09whi2w-i-v8?ja;shRcijzX71e( z)s2(&J8ylTl5yed;>>GP4^NAEzd%uYiI(R?-xJ+*46C*E@cbGaI&< zS#To9YyK8TJFQUVcNbsvswaD@80M|!n8BB^-iEWbqttX+iTuKKEh)@%6}IJ_W_ltj z*T2lRPc!y-;O@oVHzrLzH*^TPbbE*S*aX7;k7H5Rqay6xl=VWo+W=N|9T}M z%J%M6Pi2b>lY3t*5<7_0>-v$W*A@J0&eWwFS&`<*guiV$66^d=Qn!t_tNwENgrwyO zogHHRdrg?#PifXQz1?)<*a@#f$rmoOyy_G+{a$)qzILOw`@DPMW6 zTl;~HQzw@dO{n;J%;&hJOL%NzA!w1_Kgc3IcOGyD1p9fPsGX9_phbEm%j?W1*fhuA z%iZxZ*dH{J%?JfP;?D+x!gSer-|nu(9NLSUCrWloHOlzzL@0w`<#1u za*O@Hr|%`4>L#$S^nbZ-&6VAnnz?Ida(FarB&$;5~#r1#xKEL;oyYI*UT|f2CUUiz;Rjp4?io^sOp>4^}z7b-lTJ_Ow?or~CSaZl9|lsidUW&%%>Cch+=;#N)wf)92kf zR*bcG<=W=1pgqvrqqhD#>GA(vOG&2ny$SC(XU5FikS!X2^wH_e+fug~L=WaJe$ae; z+ewvKX4?Ob8{bHrZ3NmK^`HIMKjA!4+2gJqM=#I*9DMOlYl*l^kkgGBFD|dX>i%w7 z-0FKtPLERF=4)@3k=nW_F2vnf?9%ZmIg{qeK0PKj8@6JvwvD(Id%ka@HfB7=oPE*? zkni}T5Vc9xbE&Dc(d%PY=gS=P%Xd6UV-H?>^uf*o57i?~Gy0cQr0tGubDO}kb@?R4 zcUwcI>n?obp_RooX?cI*i!<*N{`J~uiZ>rS)fK}qX|;{Jp0<-jfZ?M_Hiut!NM{HN zZe$aFs@!*^;{1+{<@!5XPpx@=wChe(SoWE=9F5N_IZnNDJz4y4>-N80*P^z3nKI+u z{yp1-GEQ{yq@|<@hv~bAO`0wtxykFI$&8IA%^r!Xy#2z$_}1AQv|3g?Jm@~XByryF zKl4u~PSrbqrzWa?=Hqa^Y!RDnTaA1>|8~vFFP*5K{gP$&{yYxw#wgRmwez?m%oke* zg`8C2?Oij;toGxr-3vWjCtQ=;**op+-2%@`+dvf{?^2V4h90|HzfNg=b7d+^Pig>T z=q{^S+om1bwW_6WmCf5=r?-A}t7bG9?p?A>|(7NtN3d{xQ)g-+Aw>+1yDdUL~Ke>0QU}TDHW-mGi01#9dy&x2n!e^UBt~ zdHjr7miN82w}mVlWA83oyli{M;-&dsKlD7Fl^omFl(8z7BXnZfa*LY8K&&0AiPgbj z-`b{lh5dP}#Wp>WZ_gT)OaY%HsoNLq5_y#QTJFTT>U%z!nLHuGOi9~FdH%KAyesh2TPIygd^Vq;%*i`b{W0H`lityabO_w;6I&Sk`tl^BWt@wWM@boi1)21Fi zwfo;Z@8U4CS+AmV?YY)=D(45cyg9vQw%pb*uAr?(%)IV5!cI(ED}A#0$w-k&#imK8yB_`FeXM)?yC|)DRsMe)6-{4H zT=S3vJUR8!WQwoTgbBWDXLsc;7g5n(>l_yD8=U~#4E62j;Mfec(>;|({qK_QM_#MFYCG4t2+KV-CA}k zW!wEfBy_M$JN9nV(ayc68nLT1^}|tv=$CKu7fpYsVJ~Z;dS~9OBonQ(3Nu4jxV7H4 z>ij*!=*7I13;wNm5%TEKhrFmyT=`Q1${bTqh}C-fs7{GKnZ42<)E!m+rW7zojM^5~*vu;;Tis}xh51h@DM6I(P*}pp7bxOc3Y}4!nrRGhOBF{CfiOBc3 z``;>Z;*knf52N2deZo}wc^56_TqNt)qjti}zQgH@M$eiTXKu#%>_~U5-TStD>&H~T z$}>HGpSAx}Hf>rNd%5M$v>BGalU6U&%J#a&sJ!qi&&^F{=h!FOq*~7~Kg)J9UX^dU z%I}bj_i3x<*hNlsTAQWfe5dN(8t;RA>-N?ZFP#;>`*h?@ox@Wj>#Rz=ZZNI4TVww4 zf@)4)h>&xv=d%dcO&7~bUxwOPZGN?PR`i*ZT6>}o-AG=!O5n_*KNd^%(o4NcUQ98F zu6-M4^K*-pmFwAvt}k^5)|lyNxqh>iIs2h>^NUMn`|V^uO%Cqcr@iFv1pj`~dASz_ z_Fdnr;I!AeGE~I<@}%oib5yT}{>xUV-nGnE{DpBn@A9|vrn;zUf4kJ5{{L8v`7Jj1 zMyOrPazaNaTxdA;`$Xm5PrTE^JohdAsU!F0o#m^xY-{DhvF7l_uZt$HPbGS#rw})63G^xF&0>^{y7($d_||W?QuG zXN!`%nYzF^sAtWR+hGYxz0cR2Y0tECs}J|*U3T?y>|B#3X4{(`dRc-!y3arPcTTRp zlyCntaHE@$59lDMp# znUR6vfM#0PnwZ$TH{;iC5|=#p^Pdx_&!f4iC{;CC>u2=z-hByL3=9kg>dC3D>%MkO zPuY|t^gaKLWM`qs^mb4m4Yb%WM!29 zx2wthe^zst0DpD{KMpI`T%bAN!+)gLbpZcYF5NM=s;KMRf>|%NY&l>1@BIFMe;VU0 zIDNotK8wHpef;g|#owR{0`9m+Kl}D7JpZ&?e9iB6`8{^$)t)^hc8yadT)(e!7ZpU< zpJ=|ayd*sA)!ivmwp}~Z@{{k_q}6IC>Xt|Ce*8(iH&odpa^pkkTdTE;gI0cd!{RM3 zyDM!MI}dMax+bSkSR{kUpHmh}0(AO9W>J?G#Z-Bb47 z47Aer#EGk)T-zpUZ-4jZzQud-Z6~f)%m4one)P-fz4?`eJ3rjgkA1`+xBKBI?=C^9 z&zbY;o<*i=G}ew>ga84&+U(`4)yNkcRFX9Y-41x&{XN- zq^V9uN4(|Yz8f2E_VAHn`nWpc_6N_)sY?Z2vV)ycp8j*!zxiPLJNuf4R|A|9FNHhp zi|YMvaAm)>BF0SCt!>B599#=-Yy5byF}J8U^UwCo4TsHAT62ulgMVr%|*V zIeF`TSem6tmh0XXeQ7#N`ZaH=?9EuVTGz~S=e=#Z_padNS-xdn-3N;wPVnkr{os|jZFXt~%gKOhEy+i5 z-lacH zj&BQFrnxab@bg+d*m)GQRo`y0KF7QX&!XG5v+EM?cJJeMR+LN-q!mj2!2g)aTO z8sH@?)4U}*!awqaU##bW2sY7xrK=ZbW^1ll?e${Csmpe%SKd8Y-o+_#*?ZM4Bh{YU zmsB^ho1A}XSRFf$v+8x$(R+De)+;jQ&IV}BESEmz-&{2P_1&Dynw@LxzMZ-LqADQ8 z{Z#OjfOEntSDP$ddpu|5mTi-2&*UuL_T=s^-HF0CuI5^0Rdt(1{aV)YzA42oJx9A^ z*{#+9(OsXU)u(pbRK>S^GLbkg{_n%@^PnZYH$XQ-6iwW==8Wl@N3@;4`dP~tf9^vl zKY{L+NB)%QkrH~ITh~6zyOpz%snlA7QCfPd$l3Vq>q=IhX>*d>yh|%9XX0nwXt#pV+i>;#^kEAyVT zcHO5F3*U$2@JAkfQ?0YDU+uWbzuyndW@*`IPYqxTTyZ$%gtm?7)m%M4y$X!Z)}=|J zfiorZ*YZw}ee^_R;UrP>a~F#_v<)>ort=Gmm~MI$CNn|Q`o*M2J(EPc<#uJ9@XAg( z`b<#0W2Wk|aw%QaTheMLz4Sety8bTn<+l>$&QGiP*Sy`%+A-|Y`^{M*OInLMA9~A4 zHC<>*zZ>TflEUkLB4*ocLl4k&OjAov*4>aC>!k{jnX;RzF0SD|teR;$_iNs+ZReNI zK9V!_Mi}3Ko;m^UXzgFWF0Iw$$wX862|wQX%-iq?v_9i}e(gp5H%7`St}#oJ>h<}S zv}n6*7Noq7^_5j`7Nn1*_2tyV)$4wp%dr#q6z$ZusMWU{bW{iE@Pr-fZhGzRl@2^~ zqQG-iRMxv?>&@@Gmwi(uzK3OE&F}s<@Z!oNM<3qZ@m8w=w(jSEW36=)3YpXmCf7r{_Tsl6wUHH^C#ojgQ6vuuDh#6 zH~0zoZ;S|Y)vBxwl2j?)_bWr?(~ZStyWGM|uAVqG=dhL>)s_Vwveka|I(Pr-l`FlD z*rXk+`+PXu7PWunW!kj2Vd90Vwwy@m=gl7THp#Au(m?NCMe(jk>4-i*yA-xC@N*Wi z3j_Ct!xskXfEET$kzalV`))1%8CTm}m!8=UyXV;fI*A<<*Sl+rt`qRse zhc@d<9s0gY++{_%`g*QXle1lGlTL>P#e%LEU7mfbq_M`T;))QsgQcjw$>RM6ucB5e zt`gLKuk0@MR9bKCq#Ez1h+`)Hd~Mte`@5-DO0ufBhCP|vTE3~Ad8df`PqQ>o-=}vbbYqwH z*SrOv&A(mlZalNRJnZv6RSpIQ20wXdi}Q_ZTX^2xoBIpz>7RH#9X!W$!zek`Rqy)= z1+RbCQYC#0yWKzjN(Ej2+1fLCs!7(Q(_IS6dTl00Kz*tWw#QC%iA||WNv-$4rdAWECvK6T4&1h5YMYWin6HTd zT_?hD!!8)Sr|p3UWY^V2qJsc3)3(SlEFrq)yp&HY{awGRdB&05^Z%TjeqqXyGp}vR?Y>{XU;j>a|AUVI>u0~e6r(#O zQ{0W~;Kj|Vkuzn3&n+sQH+>iXZLQh!gg&1>^-TTk4dJxYp}O~9d{oVU^Xy_)VVL(K z?sZyM;->7~ow;&e-OVQ^7jZdWPD$(WwnYPAh+a%uJ%RP3w zYtQC_($M`UE-c;g(>Pu4g!=96gJkJo{B`is!8iLglZ`S*-OO#25&w3OjGfwMwzaj*ZhZ{!{6?{nNd5b z2V%uASYg zX7v8H(OsL9d-4@xRzGK2m#w*E#U#gD;*qMkzaDKZcb?d#u-3LnTKD$uhm)4%R$A>| zdCP9|OOYja4^^FVDtqO{bj)Z)gI27pZ?tz}Y^ala=)7;53(M5)Lwyd+hzq(pRWtF< zG`&vS1(kmNH(!79xey(${jF^CEl1za8Eru)_uLMslbW(S=6%|1KhKn}8`Jl>U2j&h z4w|>9rD&c<>{88K+cfW`Tc^HBPLtlM`uH*WKEBTh%U49dG?QK-0RL^7X`X7JO?d#6zzcG27qS`wvBl4sk4Ue&isJwo^IP=`8 z_mxeVmJj%q>%5oh z6i1O)23yMvl;n3V7Es=u{I-9hrnA_pR*}V_ZHa#8rY=UMy17UOQ2Aw)-4~ zv}rT$Wp0_0kv~I4d#?hg=C|2qwl6|-_RReFlmFhYH!P7Ku$%97bfazwA2%+_4LQLAX+ z4*c8b{*~|A5*wk&xrdYaTAmc9e>&l;wgJ^)(j@PD9xPXub=lr>f*Tix@&J+9kjQ_jFk{ikWw_Zv`UKCN*W)z$?a~)%3Bs_R0$|fcI z*l%Y(STAs(>NYJz2h7Chlehf;+!EiZ^AAnGrgCf9!5ZVY;a2DqT$`4i|`C^Va$xrM;mrlK=wJz!QaX-&1ukt>Dsu`~&^?0GJ?=>$jc)Sh_ny<$uZ&aBiu|1TTPY%ByPk zrUh{k6(;_7*g@yvpRS0^+<7AOv4P#+Q){oSo&nlKWtJ=)IdQtwyZani?_)YZQ$c4*cK0_w)DOR~(NlN>_P^Xexaa4`6kCY$qrrl-jb;z^ie` zB(@|jE^R^9UT!UASB`}N0ZJ*FzA6r0f*Hz|Kb0TIdu%e^ZEU^S{@&ir@6TBO{(VvG z`?s?6^!l^E@9nde2Hl^exNmb3t5=2ZbL~cj;C*{@`9OQQ7#OA<^w^lR;QdOMy+L!9 zO~^WU610trVcO|ONvigLKi-c#`4iM#WAIK++?Z7V_3-{^Kc?2W$JZS|q7i0~k8s)k z63pAJf9u))%}h%{oxKLpf{x>0X@=wMN5H13@sdwRh{f;!{rJp%`=#B*&&}fA-K*YQ z`tQ!s)A?oZ_wJcgH2qw&^_^2z#mU*<9-edCrLi#a&xYckZo6VwpMNh4vv8D*9Wji<%Y3QukzCVhwowY6Q1i){rSyu`*ZJ>bWc9u zv2oJBgGGn_r`G<;cl;#Z6n5m>oA1xR{GapQ?*GrPk4t~WckaLU|M`7&!?*uuebV^+ zc&+@U*2L%6sx|-od%JYT_rtf{vmVZ`m$xm>e*elY^KS|P^@wX5f46TGQb|g?{$juW`iM0yy+TJ$U4A>mv^F9=rSjtk zhj(9mH#%*v*E|!X;KgF3)cQ7C>4xPFDHE4zj_m^4yvoz()voDnIphA`UX8z5{oz*K z&zGnF|NHf6cZuM|^RE;2*J?Sn?l1@vkg@j`($-f05$W>$YS8_|(@q6WKl1A6sf*%o zZ?JBDvT&KK?Y+-#=KbMfy91Sc1=u&$C$zSsduWG#gy(eYq<=fMzoPTb0Wb4`MK}F{z z`DOhgBqwHePIXF|pl7*bR$NA+kl{}bmC(ek6E}&8Yx63HnWcKHv8k?}-y2_5R`7aZ zg@?`-)r@RYyTlLAndkd&Oz!_y%%LY8v-(EY(PvL07Ry)l6!LMM+;MD~gwNOH%MW<1 zf7sl<{ph?yxml8Ewt7^+_ncx)(TDz@77Lyd+&pXMr`4~NcV}i_)lFOVJ94#wZ|}+s z{j)i%CZALjUHnJMCtTNTI?K+$5?}q7^Cq4O|9rV=B0+Kkld4^R~CiuR|8h~4E&UVK zpC(=q^beacwM*2AFQlp9q?Piii4_-|oLWSCy7+B7J*^(!dKP?9Y}tld-&Gpdk|Kqr zl7b(`3TbTK9rEnZyU!sLL%T(7RUdwfw~H2(N^0dZp0jDn`C0xc%V(aYVIP>o~nxpvTn9dv_uyqxP%s67T4b|GM!6#t=v(!(-r1#JoB_K zzFfvRMWpGfhxH*fFLmo=SGKF{$rql?zWF3@(yn8NJ)Zhkd(L?GW2q2NR-LD5*g@yq z(^ZFrUwNxJtv@|AA=+HD`tBO5jLdV(DqPnmJJ(50iCwq*=Ca3}q4K*w>6XdxK4z6J+B5{=F{#K5tp~)@K6uBUhH3EbN@BBh@is=6SO<^EkMi`JJ|Xt#?IyW)8a`?{mz18k21ml_|%J89b%9=~$RE$8*#4SF8Y zL1(Up?h$;S+w#usUV74v$*b0;neUvzx1hHDuZL<8=M`g2F z>~|_%r?~N?&5DxsIr7ZJ_3_bNv-o#j{FFFj@@JKdB@u=-;w9bF)mDpWf7I;p4^#?C zQk_@)#e}7MMvh7+zmUeW6xA>p0qvR>liv0SY4_Of%IKJS?IhQ9Mc)OjC(|yOgiVRK zyJ14aOUaWHZu?urKbc}BAGhR__5PZT4H2458GKwK3zL=|QRZY3I(RqN--uVQz~iA& z-l~ay3v!g)mdsc=`|h(Ty%zb(A$vJqAK9S3_CjR2@v(hVs(-C$T@P)*YX)vVHI4&gk}?K6ft|m~d~jx%({n za?06r-Mg}Cw9Jnn$7WarwdCV+&YUY%shkQ6MM$Hd*h&o=TTj+q-6W#qpI-{>Xgq!-QQ4Tsuxb@sw!U zBx>(f3ko6SDn*gg&I;UlO;W-KMdtFB*c57Co|2hApRaZMmNO@o&G$9+GoHGgU$tyO zvPxi#+hbk+%OO=O_V4?ZapLX9&1GHwVK3TG{ab$exMG-#cE>ypiH(PrtG!&iFT#-Z zNy^b$PB%#rZNH~H9irEGe}1#~UlXv*j&sqWms^FkL)v;HvRO{{Y4nH*XxA#UO>!^V zl*GL|PUpj1(an1+*KbQ&H;q%j;`!;Y^Nt&26PMa7ZoPZVY~dMr@NiK zn`GzhT{*iWf`4{z(6Sy;(QAr}+-@IEU9FOnSo}R}+lxZxdtU?IN2F*x{8-iPJ9e^v9xb`q?^ook8P9%a ztHgxbyT(pe?s`5gel{nbIZ(TD&7bv+6+53T<9>1XVC3mJ+upCauvq?K*}p|^&9A>( zdgh3iN_Ph9MFGxB@>dsn_^;V8G33X~$LCIZdE_kD4x4nLQ`P)7ucb%UmFHqhEKNRl zURN><4)M-Bs3GzHL|cpC^9@d?G97l5^oqPYYP57yVN&bS-zO%!-Fhf8HDmfE{aT+Z z6Kbm6A6`(1j(vaJtWI)?O>+LdWr6b9S5C~Cpu5qh>*=m3lke2+43&6zLiE1ry`q*$ zS~Bw1^Jcsfx1{+kK zeLb`&`GuO3BKK!?C5L>|_wQ0_ww1fuF7(M=Z7@T9%X9x@ej8eMf3Jv4HS^sF}Zh#t8dfBI=_0)Id@!NKjWw_4w`dp|7Ih{X$oO4P8{hF{XSJ> zgM#{-^{VTnzf`WXFw?MGwqDV7`2i8d$U9ZX811Z=f7ZX@Hz9S-8j=1+za>E*`6rn? zRrmEy{u^o||8~~qYg4X0u6sE*{&V%7IZOFv_!>_HiM>7K7R7IE$Np!DkL|^l%X2UP z-Vg3JG1&17XoGqMGfdFw^m94?J6j;Y!lvNA9*a29w(7BevL9R^{>pBb6)Me4NJnw=BKNig_$bYtR%Ge7($omG?knRKStQaXR%{JL|+e&KgZKA$z`W?*3W$=Jxu;IOPm|HJP(jkv$Zg&(cYOFgBQ^!1Kt z;me)2Ig#`4)II2_cw4`=Yxm4edv?Uu{64b^Wbap$$Rw!w|6X#Ko8-mv%T=Za;M;yV0iI-cs{hK`Ntd%;|VrjeXy*yWF||cj*uN z`rqD#5BHzG{$FR`*{vtLwlVFGyz}eBtctgnSUvVI3NHgf|__%)0o_bBc|JUz6vcIuueVy-{9nb4K_Aberw?%vhi%`DX+5_Kh z$~8Oku52q-KYDWhiMQYQGx{snt`twY%zeLm(R`4Wbr)NsYm|L z(bfN@+ke)Yza)mWdY-jsUoV$?U+=vqcRma4>7V$0x0v?F#r5Z=S3fR2CTY9gmSc|0 z?y9>_Zale>v-d&GvK70hSEB-AA{_?@-WlXMLx1ey42m)_nf=H=4eCI_+iFo*&oR zKRv~LqwXnd;_*kGx3B3QKl7*1xPHnzR@L9j->%vs^`g!zh?I~hStxClT}{vpmvJE`*I=e_wVm&=RG~8{CH`y_IYi|*>~stbN+t6 zz3an`N2RhaBxYo{ESj8Qe$(V*Dbnt!ryFE}?@r})15w_gh_o~!4qe|cg3!BfAV zEUrH^t=TL->6HDO8}fFV#kX8m>itMLH{td5-^$y?n~NDwm+hOOb4ET@mFs`fucAZvzH7vVP6+_`Qwhq-1ps^UUutFHkq{jn0)>Zxf9>D zZPo{K+_{-<;5Yx~leIH`rnj8!JFV2;Uw=N;-j>s5+ubdzUvKZ-^YZu8J|+zO57ES{^^HnSXNXxz>u{!(PhMZ=}5BSK4Fd=>q<<)KT7<;6!5vjwdG+eaMe zD8JWmKsw2O)v?dF6BY+>a+_!KJ^wQ$bNf4UjtjCJG7JnxtW4|-4L*$r7#S3T6$%&_ zPP9y)_oI5__jl|^%D?|vYq90E0t+7l!%l^#f6uPJufOfjOR=x|Ad#60${&*Z|9Jd4 z``0~0gb!5LsGZ=bNj<*(i1K%vHH!*3<~;5TKhmyWqhl9qdu;msKPxQ$mjvp)R(ZYj zLT${wqf?h!sOjDQD^|1PlSVK*!v>BXy$^HU&vzK7UpsP2w&tgVO#IeIQ;cfj=X^gN zr2OHp_WN%C`E{;u(ofC0?E9eT&D}f+L%zGs0E^?t;Ndgs*2@B6!L@2;AcJ8EiU zbMC#mw*6`5jD6?Vb^C6sdA;j~?`f_wdCMnX4{m;WqICQE6J`w0W(uLA!iiBh*u_UcdQz$$m4Ya!>BC@7#^e zy*+*{TyGx_$@-o|AXe`Yt& z{x`wGsO;GB8Y6?Z?4mn*vZ6iLG#=<*)18~@!r#bzLG-t_$jNu>@0vUE)p#{(dtA|N zmGo?F2`tly58o2?=HKg8{QpWdlc#P|ycA|+{&%oc8x4=TD+s!+hN z%P5j1&d8l9eCHbvJIi@$A6?(%Ex)+&a(%((g4d^a<;_p5cXof^m2ljDb86uhi%hv$ z&-R=y@sYfFe&T_-hSCZJ2FGqa*QRm4*zGy`(z7Rt8J%6OFFXD3 z`H2Vi?z{At*`Qu0j>XSKYWf!wrvBcgNfwR47q>0mc_9B@_12CL*A)vGs*(&@^Ok5W zm7JXTp6PqholW)Xho(JF+P`B7kIIK@@i9SB95Gk-#=Tj+@<6vgYpPefU`e5~#_vFT z&76OnOib*SpVGhEs+rku(aO93Q+MN^Ucu*1k@xniotrapKjZQq{ZC%278a~k_-oRp z{ko57`+Cp$2YFpQ=e)b^|CUFwK-W!A{*KS4n(Euv`rk}dk^Ua5u(<5D{^a@7|Nj1+ z!^FZ@^u+%D?+HKrqsu$~SNy)tHB)|u0uws}!v$^u3kHT1E|z@tN*{>pPRz{P7gA7EH{;YU=#S#RxW;bj5Gto2b&)c znqS>t%D!K5n%oW3We27oJtbAy^Y4Y_VK%7^$#}|e~Ad< zZKzB)X*|6%;MzC++1INox4!zi!z4avZS#St3x3CCB*y&t>3wNQ>zZGOCS@`397@p? z*}CK7jlc?n$Piak%TSAjQj}CkazwSuCFg_`WOD#Fu~K5 zL*|U`r#zQsv+=v5_)arHi)kUu3;37p`G304{fh9+%eI|6vr8wfOfj8$U@FVX1ZAh~Ow+%{ zel*e)i{HZ&*l7KG+T%5OVh68mj;oZ{XiNmzo^tpHQ#iNP9KqFnJ;xfC8N~DyWV6U+ z+wVE>)#6a?cg+HwmDAqIH~dVFX_T(?|N3-kQ-_g2CUYbEqpy+y5As;<>4$82o1s^r zvy$yV&WX^M|DXL+&Ia2$}dMR|NHP#c<8s zc6o}@dchqneZCK`yzdfIp3a}A7P)V4?rZmNUXyx%>m8Vs#o#jYnYRxE1A{R$s0dx= z@IYE-_NE6bPfI3yZk?dF{|aM*1oi|3DXx*zm8AcJEUw5;5`SB~S1~dia7$Rk5wpJE z^5>B-28IcSla~fOc@hRn+a>8rji+6Emq$%xXJ9a6Tg(-+&Zl3-f`Q@7;S@~~)z4c+ zH=dco$iT27-Kg=kXjRxzzjZte3=X=J>pDA4xEL5p(oGtzf95|qz{rr0w#<7W0|Ubh zPW1GR={%%LMg*;LD1Y)J>*De^+aDaB>VDIz_vThTyV_r(8|Q0hpS^x`|DH{1|Gs`y zE&TlK?xXnb|Nl?_jj^5gyl#V9UG$cTE9_=i-7Nf{{Al~~@^0psnMvD<*&O736bklA zouA41oO!y^-aX#`{?FL)=g{v*d+hrfS@I_SzVE@b-DBcrru9=F=EzjkY~9oN;di7^ z{+ww~S3l}KTNlZ~A(L|81ygwOBAM8^C64WnSBKpSdhq&@MR2;uGyexs1yK$`KDsXM zGn^i1{aXJrn)4rf|5odDw+z1*pJSNOTFAO?*@UT&=4H6bY1&Rc^kJiu?=s7j-%48d z_kXI})u)+!nmeMA-HFd$_QGGSIlub5KKoDJbkEKRKN(5!>SCq@CpQs`*b^0}RIhqmncI=H zc+%3MkoBG{>*I_yCHwuDo_}+FwOZO=Ggr6x-Ls4HBw6x2T{deqsU?NgPTqB1bmHcz zd#CP{?Up;9H(BnX%If3mwwDT6NKUWwJTH(0PZW=e^C)IXO~b$YjM=5OcNBUOC*8$-_l52o*}w!H^J zr(^~5@Xh<w0?n>(yY-A)oQYk!zmP?5 zasI9u%&Bi$WjlUEOq8mcnA4KTB6qLlSE5tnZ^2T=wdZ>m>!crvKh$H(z{Dj`cf&vAz{bao2OQaS<{VhP$6Va-wMobPE{)V^<$})t z-V?p9nAVDGc+P%1z5HkGn6pk&l>h7fb`9Hp{Z4lKw==31rvEjr6j0_BCxWH{GCTQMgV3?o@%AqMZ zh0hsY=(73Zd3xsjNj&qo=Cb}ZSz2}IqD`sibNQ9ccDggGRvD?xNna}aMf1Wof6r^S zkt>fcn}0#&dHY)K113G{1zTqvJ|Y|`xy0kE@|TB;KXf&+v z4%=AjBN-icfXhap=*P$IQd^>gLv&QE{?b_&Z`|df`5f9^9Cuwa;Vl4YIpC(cC$N_JsO+Tv8C z6D1nk%@^*QkmSw1WtBMBo&Ezaw|TJS1?&0jYMZXZ!Y4MllVzVy*fq6Zk_$!Vd(QTl zc&z1i+$QM~Pg8p(zXO~BC-0wcoW8!c@%8mo`MNFni$0byU9WA6-{tf`q25h+hu_Q) z%MV-sp3d33aOJ0aF-O*1R;bfjG$pt9fa*VeSFOP7Ut$-i)2D{+1Ak9QFc@$OSa=-%qjlu3 zrUFBPmO?>*_Y9}TJ&ZHhiLRhxA6WN?^J^K2WQ55-*q__;aS|MyF*-tPBhn<^;07 zbGviLjDdl{SJJZ8NxZNDR3(WW`zvJZvCwC$ku3wmlk*i!`UTTNoA)p>B#60*S}-s) z`~xY2c6X5LPm~Hu2B~x8$X(X)wEvzce@%(gokP=@8IGl>G~RxhQv0mX>ZWtj=bPt` zY}*@i^FU6l_-_3eQSX>Y-tDoPN2<=I{{AVObGIS=JZtXzs%b0P8<`EleZ(8jzfB4I z$+c(WhRHHw<*uxJ3^UZ#gexrezKO_ie7`$kWy{WzIeF`E)IOPz7tQr;%Z;?tpkB<9 zc&&fF?(4d1kNZzwe>!(be(d}&&kJI6?nQ0&ohY)SXTy3KvF&r}SNCjqyy-h@-lDwA zeg|D2^v8=_&$}aV{hrN>Jaz`2V*NiqsYdm3q27@OlukCTh>FyuAmu?hzLJ z79hC8ccO^U`ndVR+kbu)dC3uTmqnp~;aQU>i(TxOyAF$ZS^Q3?Tv@05#i}v*ru&S* z2Yyq0RCQY4dW3uZ(%o2dVBfM55etTdl4IgKy7n#q`)SfLuTx(gtShB?gROj_3I{88rjFqXWswubMU(|h64#b8U>%D zKX@+A*S+~FTy9;0_7;!axk0B&1vhD#zvT+lw-nrQ?Eg}4g>3CQ*WK|8e^`D9da+f| z;_p&V9i!_*&XB-GbcP6hkfo%(Y00fudi&%U7#gbF zgnxYcXId^dWoK*hL>Xb%Mi=3&)Gq|G4Yx^ygjwk>&mdPZ`b} zSiw|2Eo63q+M%V7KP&9ZW160Pzxqphr=&x@=i>XY!2AzFzBAc>gXu zx|sF#_vnYq>{a@DQvavkEZtbCt*QLhn)A-f**(>uQG{*bF{0kf){5%bzRTh%@_85G ztXTd0=$F{5=B^D9)&Z6<<^LPp#RrZQ}K%9Di$9*GhJpO~{!Qu!*s#ej-PV?DRYHEzQ2W zg{v1Rzi*kc_`SOj+olUpQ;~&*YPySNqqG7DYyG@HTKh2lhv2hTOD1*JWQ1mL)FDp zZ~ro73ZIm6>$~y?ru3SgfNT~y@tmj!d0WmI&pwc?^ud!wPx<}qmLFfIAI;n*(@-Z7 z_(0Bx-R`1(;4Ds0u4~@bOH|&tzqaFLiPPUG$>Mim=kp`WS^Fbd=DoVU=_5;?0}CHp znpERzeS_uE6PN30U3u#IvS@nY?Dw-a0b zKZB@7|8@+FCxLB@!@#R0QjaduLrp??lbHd-1`%auyzPo)| z_0L-}&XqZ)wbvitvuP?0Q#yY2-5k#+%+}?$+VWH1e^{c*!l$;(yz%slDDT;kc5A2n zF4~&gB+2>Q?ZL+WUm*{2RhHk{IdNrIm9M0*>8cr8oj`zL4Z-MI6581!e zavudW9>2ZPaO`6)OB3<+Q z0)v)bG80N!s-+yRAYV=U-Cw?QPaCcHQ?bEps~#ghm%R7yMq8CsS7M z^+bM8@V4m=4;~wCI#8;TcU1SXhF^%C!Dqz}Qa3#cxA&^7O$jZ@etPQU=8D=I!bOqm zyGoYEoSyCDdw=PHwKq=h+7h?qeGyOTiEqE!4o>@RKC{gubK0b@%V&k|{5Wfim(PQk z=;ig#o(b%gys}s&+AGBUrq!c90a1(V+q!mnHwGu}|6%!?lcDEu2h(@uJl)T(-3NBp zURi&zyX)$_k z#Os`QR_ZSNP@S502^a`u*&JmrhCnz|;HN*zAv zcGOqt(Ub#!Iquvv>poCAMP`Z59F7{X#@|iLZYzAKOjc>UJzpT~P}q9$x8WN5LaLp+ zH@&(ozWn#DUy}m2Uk@x%4gGrSwf4R3otsYo`;uKf+3UNl_1nvavkaccKJW;u=Zt*1 zQ8FatZ0*k%+piw_7JpvpL(n2KDfLX=snh+InOX#9|Jj!3w`b;oQocWJ74J>r`F<_7 zZ(Kc}^OXr_YuBBhvOie3rTle2tlN~?Cb-r!^2evLB`X(&X~k+sUA7a*S(EQQRcqpp z`39G2&pTbuuu}`ry_dE7ySI@2D!mKcwgpe)qMxT3MsvB=Z_Ef%cUAd2MYu8hPW&W; zOH+5g-gKw;#@%fuLHQDm^XvRM{~SB-|MBSpbGD8H&!>B`-ut@Pu47RiPi_5thP3A& zyB|p@eFy|Kt8EJdV*Z2*RyyBXOnghiPV(2wV+nC0KM(NB`F))5eAPkcfLc49t>0JO zC@+i6d35U8tRKmriVt2}{pj=i`m`N-_x=elJ16t$$GO*6cg&9w?>8=8wxGQ6_VK65 zn|W4Et#F%nOaN5ZAnxQ ztN4z(Id+Dc(`rTTSGU}^%Zs<`dOzK}(VewoeZ{}W^Sl24jy`;TUc##-m9Nq_y_J6S zv)Sk8=l=m;-(I(@@YxeQO|+)Q=MQUcwr5{`O_fN+*-2StlU6UPc{8;_=d((IrnK2F zJ=g1clSwCp+OEs%$xB0|tP3P@Dve)ov zdeM~M?=^o-(^+%C_xJYT%a=}B#doCJeR!U5F?Vim>x;P?RajO$iT3)<`7ulJQhD6| z>nnxbuh)Mq)qE82p#I}8>3LhaXCFPkW=U%F`ZYTyZuos~1(U!2N;Tzt<+q&Ef;OM& zJ&-K_b>)HEF85c>m7aMi^8b_xFaOD`%yP8aRQ^l*NXD;)wbM#@zp*_!@Bipt#4ZO` zx&D2-&vkEld7^aV`$Orfx4+FYQvRSCwD0$cg)X;WCw;!QD(B^nb^foX)Lwt!#~=N` z=f9S6jAod!H|yMjQ^GsuuHEo(5qCA0rgrA)vONbvOX7OY%P+SsPHdUM5X$nVE8O$C z+aa~8y04Ydd5cPe|6Mun6TNJH(7V)V{;SXAj|8X8-ZOKH=#Q22PiL~+6J9=J(?SUa z_H*2OSeU|txECdB`l=pxni1skG&@MWZGPXzl|4bX+?u=!_H8JA64M#D@7kf1bkQfr zT$C!pm+V?!aV4f*X0_aH0q<3rJL5#XeP#;n5P4r{{C-=N@2k96@!K62LgQ7ErZX*n z`}dQ`SElKgwiR7nzxwCF&I7%BtX&@)Hm<(XDc5c7S1%)AR8S!TD<-N4RJ_lv)_ zDwlJq7hIjLogw}`ZNcl`=8ViN`(7}upV%u>e%s>`*BzH@QOoAc=)RsiJw*HUQI>VL zBR#)s7j)lY|H<<3@%;l*g;6=)u16iYT(6Zc&S`ggvAgrZ)B~B->up?x8-q1>f9*XG z%C%(i9@RAm?$+`veJ~Q&ZGFAmEGMN#=SJKm&j(Vq%?0^VjGT@Bj4XCWvG%XjIhEcq zsTTWJt(sT=`NE`9<-G7yVtx<)edJO8Ao3?7JJ89OV`tcd_9M?WtDVv-WPP_hX4a+l z1Bb78c}q0@e*7x-!9JUrSKM;*YNm1Ad2)a4iJMcnS@xY^dap6tYRVd0!{31`MR!fI z5Zx^|SvvRjiaYzRwJ=@J{d)FryUW+w`x`Xw^sW*#6)f#N@LK83N>;tof3KEC339}| z-~Okxvw7Y1jCw=HV@F;u@!XOTUu!q<^0Qxow}mVV+&)|s;bqx(fa(30!2O(VQ&R8m zn{xO1Kk;s_GcGq`mdw57SE&4f>GR8mds}Y()@Z-k~IU2u&L7DknQI_iCu9~dI^GdU;?quAUzFj$Pwl=>?-Yx4% zWxt=k4q;)MF3}nN%bNXqjS?8jk|Am@9*4j zX$R9ZiIuB1&MdtAc*$nHs!!8be3lblJN?qFO=-7`{zjbo$L3MqSRX;HuHhl{hbd>)iov+TRzqg-J6^^Hk!({!7UsUO?#*Lwb$qTPM)=>c!f z?8M-gTAuNiFvO}9Em7JNtr|}k`4Lw&K{*Bc3aFc4}xf z-nLt^qPcdq^t`CG^YgYpkDPk?+ov6W9$&xY->0cm@Vt$)QQzb-cZ}|f0QrUeO_P53 zo>l(HCivqI*PVW?+E*;I7j*@w{;|9C*ISeI?Wq%27a#UrCL43)ZRh0$OWxhDI8`|L zt=qRh%cXTcKlowU`1?@X0r6Rdta(ptUrwJcHq$BdckrP(tn)-X9OIP?0@F1-t?({(FPR!%L3?*1xoPS@`O6c<*JG z4@)=vE#mk4vGVN{$^0UPd`O0W<$ZcV%^{nL^u}t?;1I7;!7uO09x3ZOx%b@O~&oT&BsFeu*$na>q9lyDvBx2jjcisC-O86LNgo}kem^<%?45#Q$_LZ|< zPRnItIHS(3{-H>3$~JpNnHjg&UD)EI@{5gu;n1UH0SpWZ#e_$gmX4O8D z8~3h$5puiuk=eQ&v3a)Yaubq^GIr0OasbrDyC+(1`#OJp`g!)&151u@q~EtYdoA~D z_k8wR`_D?j>zfa3-}Be?!uQtuHA>qIN*6C-(K{~pr98^!tMtD=CqCb}T{*i$j`d!S zr>W|X#j9OqIcgpo%s!BB`G4Atx_9qT-hYLToZ}`6I zR#@kWE4I7!%tXsSS!9I%ml()l<43LBq;k?ICRXA(EQj z3oq4*9Cv(m!C&s&$IHp325&=ms=s#lc5maw$3bsX7Ohw&w4-N{t)|z^%1P6b?$)O4U2&SjQ0v34 zeZ2=(a%5H-@ZF4eIl=g_cf~p%d1XN}+3DpyQ6KIYM(^UjBRZ#NRpyj6i{C7HvWV&V ztzDNwn3i99`pb)RPM4)o-$E9@#kS^;CKnYhKD*^ZaF2e$F8$E{m;3h~_*>id{KWB_ z?SdAv(Xl@xdQ=MHZwPb7bb7iUJ`7#?%jY`W2$bf#4{=~L+jqb?6a%@2}`uE;5Um~tTY<*wVaIQBH{-g#9fnn!i7 z7JE#P+tE2Kwv(8?v%bu0KJfa61C#mR(`Amo-2}^e4{*NP)1&fHu=v50PNf3nSs`}e zC(m?+c$o@B>fBoUdbeAVF{jPkXB?;YJkC-t2>&OhKL5Um+Vi!p5uVl_#ViGjuKmcJ z>T~jSCTrd?aZPVQ(HTi*jrouX>5{a0ztSZfAUO81BCG2bp^FetYz_Z~E=E3=9kzXBY%QQ*DNzF#%Gh+Ss4`cy;{I;i>L--0!}98riy!^D?7DN!qiTh`N?l!TEEa+ zn&CjwrP&9vr-w|Q9P6w5KK6BJ)}h6dmQAtRes_z$Qo5*W@zc6rhqb2{J-fa0?N1{H zh5|`Y=QC!RUrtG0u*OD{(;FtNh~~QK8UBOms?qhAV!`oTHKu!MrMXt#;Xpz-pGo0Q07G7|bIVQfN$-_b*Qz3(& zLx#b?y+^HJuF=O}4dFGNnyNWUS(=xO_OHFL^Ti5>U?%h2-1=|bejs%sknGaAd(ABq zZmDp~TwU+*2SU0@vz!X|9qHk^Gv#*KQM)Jmv?SaAdc{OKKVWEh#shK+g9I~D9|FrD zG+GLTB+RAdji0?&-F%r+yKIJ^7-+?jEmw@U)xIUOj)zQ+1kL^~G;h4FxAK{wpFTGO z!vbFBCkLcC{`84%YtJU4FZ>^D^{S2ljuV9^&M|tcz+rh&Q#+ICROa+WW(QBCPQ1ag*P^{-l9Gn} zjR!~8tw`0G%;%XiG3<_0N8MD91(O`IM3kdEWD6Suyg3SwvX*RTta^Sf zAdn)u!vZ8AI5G6WBancLOIRbOqB~J@YMvR--}$rI{ztQCT+PR$(dza!KME%QTdH6C zGR$hr^SZa$@wac-e!o+^{Y_lO!`9jQ^*>Mdzm2Q?dUbYqT;-CVp}4<$&a_9Fy3c<;pTEB}?p5*`(TT~$*@aCj6l@w+ zD4Nu$t?d%Mf6{$}!0jkLmG$9qIXmPsb&BL{Dn9)9HKlz)^5jp!eyXWYDpsCTQc_x; zq;+g#fk%$g{4G^+u{=l8H0Sl*&^dZ}3bW3FSCuRK4Z~gf&OS+w6%4hj{;9wJ&nLHp zNSB1^M_m-wa>==zDC+TWsy1I5lpOTil$2*-}6HCTv}_LuE?jl?^9Wn&~PhNr`v~3Pv(7He4sJeS63C z&6dv|wG?%{zVlWw_mxfZx(=DrFM)HhB{pd;FrtuK1V`Xke^K=);w))~Cbj!%q#pPY|#flbQ?#5Zy^w@-c zYnjgLyVY|f_|gi0GsTtl(eo2PLBHYpBNc0-o3Rh&pIfZ6HaPj*T4{PbpXa|Ty6?a3 z3SM+0c^x>MA4T++etqH``cYwd_UaAmjl9iz5g zn=i+eyZ9W2_{LNJ*w!y%f^&i&-}A7M-6+|)eCr&Y4Yz)=fJ0`kxVoUW+}l+zJ0xFP zKC2e>Vwto>>rkc5ntx}McKa-Ox{E{UkVmAhrn=A7NEeqUS5%G(9`49JqPD{RvbT>< zj>SK}oh`(0uJXr+hsW3o8s;TGWOx!BH+#F; zrL+W9zYU33V{{eaO zqbb*=8mk_>w|pkmqiZ)Q`O|9NVovF2ZoZF;^K>q+o7I-9>+W*R_1Tt>Uj#FaCH%K9 zjE%Wn@oPohvCFR$iwX}lJep#`aqjx&nbJ8eQ*6$u&o?TN>WjX8FYi*+!uSmS2Rp9p zF3svwp76!_O_qJ{jRM_Y7Ju)=v3sn3`CWHe%=Fin<@U96ums%y!TR;AWpJID>pAPA zTisUtoo6q#qfXTS((2e(*M-0D+<2zuP`QP9{e*%$x4KUJO|p5LY%{n0by4l(l^?&{ zdZFiM)Nvr8*e3nDbdJo5QX!d@&rJ+Ud$$U!`|X}_LT0ku>?KR*yX8ckNY=Skaw+TA zof&hOULE?n{Fvm1%x1034rkx!MwNF?h_;{3@*^;Aq^MA7b;D38S z?a-~w!V`Zle#Kt3;e3txJSqR`pAEequT)fJp0T^u+ML3^$oxTZvu{=2{#c<7xycQl zOf0>(>|ajawjbo}EfbD^z4hga@^Q`TRdbRLw>)(08%3xkzvd!G%6w8IRic7Vq@iy;@c2byC*7^O@!^ zk6l)OeyvVwW2WNzUhWIWx~JHNp3^j#XXp9&*0Ia46ABBBObZOm3ne4w%>I0PkKEb~ zYbI{le$7<--IAweD#A8q0lzbkENk5pCbB@Z`%3z%Il;pJS2k{4Yn-xt(XzLvG}m8c zR$P6^vvvpH_0?rPykArNK3YEg{c(Gl&THNGv;3_4FX{u&?iFRFwKhOLVID2JXTb$(;cEt`~-Pa*o{xt_| z`MO|V!-AuIpI0qt;Ru?|w|vhvjTrlXjMUICg0IquX??=TiDWa zcZb++)i-Cpd~$=zc76=e6BJi3Dk>AS$lLg7hLe7NOK_aGi_4QK68=wx3Jbw4AEng? zj&^o{z#1lTb+FJTu9!I>fsPYe1%*mQEEUHY_Rl_N&wp*Ytt?mF@%fv6nu^pd-kYwh zq*U}y!hb!#xVjQM+rr1wy#%b|luCIvo{rA>xzjC9qLk;Ln4sWJ|DNU7PhNY};`nl} z=H^=uWY!oYA8s((aFxwtwb|R*g|6>TDc11RA3JV2zo=>-&yweBPuC>Pe(VsrWd5t~ zcRx>y`E_9X&8{`vk5|qSJ{J7=Wz>zRIUB54!&X~x`85_7$VkuOOKSeH%`EcmF~;P_ zT_Jo&7uM)B_1s^+=USW5$?k|^+rFP`%4X^>7uj}Y={bABo%KD-i}Ykp9q(CQ#33gC z`jo>}QIo!_R@`P+IR&G`7FZsWYk#}8p)%0_yy10@w+rTO>9=aPFshWf{(g?J=}*1R zErJ4Ozf^V`ly2W}>tg?pBX*BAKS`FE9G`om^I+Srt0s2A>*vjI+Yx=c%x0(9qL|BC z-v5|?Hmm(({&GJ?-uJAoU?l%V-p4PMr+qPyir8O#Zpyznp-g27|NQy#)BdpcEPsCT z$s?BKi4BrptOS=O99S)U?eUsDg%e)gU{ueL&02fp;LM&H{k z+e+tI+3Wn|UlN}sRW>L1vew>WmlRtG|LunJ^fsHE10^ukO+W0_4=8+_Be3zP=fc>X z-{y23JhpAwTxARU-NGzVOq{u?lT_v>m&pnQt4Wt_nR`C!+)}6L;a?3(vmE2u8}ENq+oN zxM%t23)eK?f~qL}sYj1;_8n5#=GS5TfWyK?d&z;6m40(QO`c}#_FJ-b!oQVHp0_jA z&-vD=xm$bci{7#_{iqyKx`)#y_ZG)uJ2AyW?a$Xu-nI4dlwZDqrw{Y52)C{8oA>`n z{3_YpMY*QBOM0?D>Q5|IExuZDYx(l_W5JIzVG8DcEcu(G>nGqDHrIkg}G07v0RUy`FlFJoj z+4D|w7CzEsj}gxOe?jk7WUkT5$@BhMwST+Y>hp>#_x;VI`U3Yj_$Aeg0gzAtS7oJN92A55|arM^L96`aIe#okfc3i!6dUuH1 zkq{S`6md|ww1b#l=MD?Oo$5bY1?uGI)nB{)^|_$?gXz8+v*Xi0hI_cUJP9(K7bm9Y zSH|%Ce14+y?@jX?n4R_g*D=>L&(G~yza?qr{m|q78*JNdJY2u>xZQq!eWfCup5;be zAHV#%5jE$+!!>p`nDqHZJ#FKqc`7WIt(XZhc~KQI0&c)KTc`!#2mzV44DQjcFg zl;~ykmRTh8c%@7eC{`P$YAia~U>qTHysfeM#)FQvynJ3!Y!*yM(sRy9-fA-b{z>F= z<)+h)|3m*DOt1PDEVF8k;Qaefqt5UiS?$ZO`CsqQw(Q#*758uRbm=?Yu}#9icX>IZ zz32bX|AzDWHbbTOPCrVHm2BD7m2x1;{ltN17R_^SXKS{fzrhm6WioYp*sX72MwT~q z5Ae-!*m^!`^5ZY(LuNi_sB@IQ#d*8SUE6HQX70w=OKuTb?Vx7%zYg95i{pOi4Pas z+H&u8OG_2bC4MN9VSmY~#_SVk&3WDD_B}4)*1F_Fm+rAldv#*E#=++XD3Q2i4oA%!BeS&@2j`sEkL@m&Jlvz4JooX9_NXxaQ%dqL%-^hDe;}x~YQp_# z%1XzNS6KPqzQ;8y)uwh*nvLnaIOe-YJ!O=dPZXZlbJ1B9Yh9pOylTzT>@~fw&ggF0 z%_fvkROGky<=69fRIJ%Ao$ClaqSLskD>~=oV*MX+r)MQkFWR7}TV@;Y{hv8CWcI}D zr&6}BESNKIT;F23N%+>cmmasZpKLD`ocP#ixvuSu(>KC)m%UqdX62@7>o%HYoSvd~ zDev*hk0w_N*)DBZpII#7f4=$V@m&&I)|f0m(#Pm#F-=D8oK@(#ofo&Qzf^q7XPf5i zFX#0p=k%s5dM>6ndGGee;jIkOzZQKvFSL8wVLpzRH?~zyop=6y)!G}|UM6bJpDVXc zSl;vQ_qF~Wm3wUjE%lCF&b;+4v}#vt?$uq_mSv?}IwuIK$D$(t%ok2*sPgN0Yl?X{(j+gzh6xDt1`Xc1o6GR z@%_&Z_w3!Lw^nTvZSuaYu2?_kLjDxS8$oGDM9NnBEAY>bo7XX?EiAg}^#?B*`)Pk>r)n)2Aes{&PHon7@s@ca@g_p5oeW`=C{0N|LD`TPT1%< z`{$E8GR1jYt=*LtZD}pr{`2P7#rIz<{t4B>8((Sluy;ovd3o>wU|1^&YY52uD#6D-RG4G zhtIPchLy?=2Ihk2TRDVs-#@+V_KQvW*T%0K1tz|DdN9WFi{aOXB^S@%2+q6YRwL*3 z+UMUTi6He;uYT6-rZUC$d~FA{VpEnfMuZ zd%XE4vp7dk&{Dr=`R`;KTU|ZBl&c%O59VHhjbcnKK8U})4Q_&CYm{#jQ~%>BXIwkTIQc+W@Z*8eaXt#Pj>v5;X1V>=g<1M*An>? zLb?>L*0jtl?%q^7GXz3HKEB<+qL|7Rv2+%23ZYIL*kSeQoDmdTC91yL?6?0pGgft-R9lh=IV z_f*qY@`?^lZ(_Tj>@IbDNx0#fgH2n^He84|)qNVk_WWA*wa?dB>YQyGw=I#c+BS8| z=IQ1~Pi)QF*KgHo!V;fJ3{>24AC!B7C+v> zk!pR=*s&mKj%470cQP);U4e#AtF@arlHV@&`NAUctMi|y-GuweXOp}hEYQ6om|m6ftTxnr?p22-uz?q9Y`WY&c)yubQxRENPOv0p4J?B6c9xAyOp|2+m(x_u{C zKX%Ej{=_`hBPnBP? zJXfC4?DpQwc&FGlF?9>e$x`i4gxzywO|~!lsj^o{`rP5n!h%c67PjhYy*4?w_n10b zuXsLbMp}?^%M-(emh1j93tn8Q;QU{Ge;?=bt=qB{9H)F-vhIs>P3x8`)ko@`er?PB z{9@~e^h-u*8(+qHyF8g7;lF&L>=ol%XUZ>K-gZOMzjt|2ZH}&=QjVhV&RY}0alG64A%}ao$B~sj{)v4R)Pv-ji z)Ky7I=@ZA}l^tJhM9ujScH!RajMcpPtDkP)^g7yUy{pNzBU8-3DXkC;J-X$*;yokl zN2`_1l$4Gi05x>K7)ba(y>ugLj*E_*O~nR578halCl+QF_D9&#b942ksv54npx*V; z?1$&CWxx0jUEe%E=}5SHj^D}l`9EKr{XOsBx4d~BF=EQUl5I@q-DCZuQk!fu)jRRy zMm-sU=c}~~=ggDs&6<8P@Uq48hlkr|+az52qQ;}osx&`)Yh||boR&>HGVBPR;-Mb@u*G^XBjVdBOUB&UH5zJ>kbMb9+F2i0Ov&;`BfTi>a|@!Jmn@ z%PbP+KCw{G6y!XWaHt^We6!EC-%+*inV8(AXXNG{+2b{Y7eBS z=@VhoO5wmWvY@{+mfSqcD|FGW+%o(9)-{4|HKixh!sFjIN+|W!|DA1L{`vCzpI@F?FY4N{ zEh*}}W6tK^mp2Pe{G8^pSPRtcGXQn3rrtcht6;^_yR0&Ng_*7m#Z|lIpYy%Vx!q-O z;U2`^O50nT8VeWnpI>ONJnhZAf}VtH4}=p}Cw1w*eOCRZEcHnE@*InO+4t){$ll*A z=wfG?X3n0d%6l;9tzb}DTT(N_b~B|SOK=za94LvzX?OoGX0nj(yT9!5oHdgc#)=m6 z^+jLSYn(U3O(aWdf|>didP);=jHK||tLtB^%)iZ{Ie+h;3-_AVZC~U1;^OAZ#L7t z7PeF6LLX$b`yJQbJO3hyqo^*KUjR#9C^t7vA*gig~a;WU>`FbWMkNFqE zUd`^j@$Le{qQKkn>IJ{rKV{V`J8V2CCw*+mx5BNF%7THn+V zjf(59KNF0X-KaQsi(vd-?K^evmUf?bng|+P-qi!{Vm;lo)uMAltIxMA=cuhKLw3K~ zv+((XnK64$ZZXTcJ+tP^^(i|p%CVS!3-wue-F_?ovR^Yh<4#8^XI{VZjyHF~{|yWK zqvW{-Z^hl~Sl@T!z>4)<9X&}lbC++sTVd7vF=Sou!vB_nJM{(ZUp(#X=r|#9EZ9;! zX3mLKiQ*Yq+dW)dT#gycJGJw{BbPAV?ah@w3#WsI6k!D(&ZZ60cw>>;2mhSsA9jCL zQc}u3R-v^iFJ{ghjyl!km#O~2W*r)pds0@OjaJ^{;{8xuaAIB%UkEl*}X63aY@8O0x+rSI{r}!C<#}{RFmC3+`u0)ka;;ir4x1aN&;gh5{468j5SX=agME1U2X7 zdzNof+toeUg84y(%=@Itp%&++-0tmQE2~-mwB?@ZxyCm^t`Y*geXl>S@jU$mJXg_` zrm%Kddd$0GrQ+OI7fv&O`oQh*$HI-FT=e>nuyft_RW;r}Zns^v{`-tg`$6`V27G0H z`|{{6OVD8D6ss?v8f+e~jFH;hU;41;X5$Q@-Sd1)msuF@mfUUiQOfa4MzBkdY;)Z0 z+yA`kdv0x+5bkQcM9$Lh=6B19JIzX8Jav8W!n~#T*Rg%?F7!;;^g*{z`P|9%wT0sL zDQ7g3yROyoCMzhtK2))*_hX6VI$znU%45MhLqJnH1w3;$P8W}wJG5@%w%JS%OTMl4pn0s_Du%g#JIz8AWm-2T@Z5U8@VfZ%Z--5L8aviZp7(F- z7PIdQlaC*(uwuKujBhW_+drr!Q>^DF1>Uk?=nd|a2b zfBeFE?6M)Km6x3YnvglJSjb^l=pwV2>%B{u7fcsmz zP1H=vI;4foYNvd=deSuM@YfT}pI$tdIj;8nW9Nn^Gd@|`mn~QM>UtuB|H{T*hDmL@ zKW}Vj;y&qpf18WT<@ve)^y+q$tW`CN+o_g(@MCRnbH^QhaFLn3WFNS9x^b(;$rK(7 zP2sw5=>wL91vxV!Y^6Isf0e1py<(=ACm5l?FI^`5Lim!BRE=8w6}6wXRZj!vcW__X zF!9r615Dl;BW-&^x)Quf)O4^M1;HbYAPQuQ~bqMH)_ z&sXLe&GS3FwRd^H!rpZK=|`c>wTml{yqI!bNKnvH6<(;Nr)9A}zcA-h6lmqdkqWKn zP2Iwgrgx4#HEfN$x6l$Y3)A^AdBtMg{q=FV?>@iX4QsTO$bouH(cP0fjyALN zn;mMu{P=^+`=rB5l-@3#9(PMdd)f7a9r+5|mVA_caYJE=<+{|lUHSh%?l1nl_Ws|6 zdGk6>?CW{)u%q|m7c0q+ypLDLD0TOjy0R#D*;bkP$X%LO|LkR==y)ptZ6FQYRMx1=g|J0KOgV^_C9~#Z}I;p z&;GXiWWLKxNvVA4@^)QY>BlP_&YSlvFY5Hs^Am7n`FJ%v{_VY_xJ?gd-0rrVCw%!{ z-hn7bmJEI2+1peyF0{@2yVdBCbcd>=#=$LIdiOma*OWCC@g3i~M)lu`<97Q6Prm=N za)15j-1=9_vrWp%1kPu*chp^v|Gn4O>d~)%?D2))-Cg*aK5ps%Si7?OqOAhT!jXq*-=s6%@S5{`jTYvCD-$%Zq$L{kQ^K2kZamvH$USh;7bWAx=bHLKc#`k7yH z)=w0?zhM6j$;JOK^>d`{ULAbYVvh3xQ9;JXFKxh6&qZr_{+@?Sa-P^o?7SzI%=?|? zz2bxKFMq!MmAt2<=l+J}Irn81l$56TeEhPhpsK+M^b}_j_|o!lm!|o#NVj z%V5LRXF)s53{&SwevXT4J=xd)WbIbl*{VCjYIrV2RBbNm7p!l)n7#C`px280*RB>P zm%shGCsuMT|Mg}48*}eV=_nmPTv1itv;0_aPS5h|N3T6naXR2-a_(G0;ht{ZbDp+k|LAjpjGk+Y4{k23?_f(R3^S*P2Kd-jMise+*NmTvYQ?l0U z_C2vvna|x+ud}ba{dsQeE8%IMT%YWa@Xv3~ll1>B;V*x2+xFI?p5@bzgC`^Gku7@ii>}j*k1MyW^nX+K^*MNyeS>$TgVZN=KfN{jL1yC z&bw21o4uu)&o0>fDfN-h)M7mWfei5nGq$XKm*j9h)A(lAt))iSuW>M13;p2uCs6%o zMY$jUxyLf+dKVa&eW`wbE2h6B=k^}2^YhF1hUMJ;vSCWUec{|6fv@)E*E*eg{j~E$ zp&@8hOKjS@wV)b&DR|D5LDw>IYohBdYxd<2#NvIe-3!XX?)&U|6Y}89$@iAIbM`HZ z)$;kYa+{k^^!)|a>&D@w+^k&oK!gB`izHq*M_w@Up%=r%8wW9p%t_!ca(w_Zk=acNU_J?0=Z77bu zzy1MxaPC<>zqQF_zS+0*zIy%(+UxRU$CoWjmu>|OP`?zub@%l9pOZg+5j=MJb82?s zAwIU3A-n*61ba7fkMo{@L6|*H5>u&kZz9h~v zGwRw>r`<1w)oOmN?9;8i@wqoFL9z1f+PVejPabY76431XDL30}gR$8a?!uK%dw%@6 zwAE>E9RDrb(!5uv=P1bEj_Ka=<*?pY#y2PSi^+>bGB3WhDP^+6rL1KiOLm{}ZZ5m5 ze(dt?myKoqbF*!1a3vO%p{4innErS<429w#O?Pls+?R1t&J|%d~<@PrYx2>HA znBK0N{2*$9|BKmQnDVSo6} zR;?%7?JiDYxc&KOmFyd(4Y@lPe?9qU(cHZ?f|h*Bw~UgKZEC0Z@3sUjby_Rouip>t zEt3Pl&X&3;7k$k zygNVpcB+Wr#9Ye9(NEYOTwnj;_lG|$k2co*ny_j8$Gr?nN=3F3{`%bF>edaPpO>#o ze09{p!r;rNb&P6ywO3D1c7I}i`J?ck7ZLWg9ykBgJlRZ_3H^--l)j&h~B*|NCHpVCc~;{C}PPfBAH);fm4Muxpw-!u}MzTf45f=htV& zb*vofsdt`!f2P^|IlFe*AH)1_N2k5Fl@_$Lfi#9C{GS`ni&Km4p3K3h9Vj!OF?oZ< zy`yQlH9uzd-`n&4W&ZnTZ<*hQ`uy(c(6nogb>LZ0eoo}3?!%f>t^$^BGS%OLdwzUg zxQ-PxF*@y^*WBRwQO~`8)oR7N@SX42)^lSG@8g#*7sS7q9~W107nFTWK+9hg&aBN^ zo@0^L>M3XN!1np$r4CPm{brYI*!|V5|NSg{-_z^)|4vocy?f^T{?F#v*|7`u`K*bH zQ&Zo~nrSV(!f)PAe8t})EiwXKia6}DjRjUv1Gdp|Ja}!j* zD8BWwejRaHe~F~O{KVJGc^<#4G}viz@MVOk(Trd}yYyz|uy&>S2cPV?#mLZdHokz`5Q|%Zf>p!vv&C+{QlocP|NW7y|3cm@BN)w9HYkdHsz3! zVTSm(s}uDDeLk|^n)vZawSvCc7Q^Ec{@pCSzT{i@xuyQAUrda9Yh<=o;NTql{uu4I z2l~uDpDcWRed`*zm&ym)H>}@hbTnw^6vLpt4w-3|xsn?}CB{#=6WzSIXAGCr_bl)C zkZ=6>rRIg6UjYl7TJwpI>&z@7UvIHUJm0ynyjM`b`N+rh^`D>T)%~)af3L(jHN%~EMuWt)!nP@)m!F;RdvWDXBgfA>HjCtPV_lx?IFosL1!x82t<$f; z!$wtdpp}rqsY@+QJ%Y_-w)d6t*!}2xf0sjPzRc#?%^N1QC2ae~p=s^B(Xk3m)Dvd+hP{Fd2-ph zExB_KgSyyXY$8E(whGhdY}ooxV)+`g;}7_4zvfCSKHWTB{#NvbuhYKTo$>9McR5YS z?`F*E8EN9oj4z*_zxZ1Jm&nJJnV!e%PWC%zTNml({9ta{xJKc^SDTjnSNy#k%GU8Q z{2P|$oXUEuIos;M9Y2AD;95Tyzw;e@U%wo$_@#2T;?{9+!}jN<9TtfV)8=eQKYZY! zh&QuLRbP>Zz(wc3pXJVc<>ZT=JIyYk=*ojjx1N|KStp(syyXz>cFfM{!s+NHyS2}Y z_Rb4fYS$w^-+SM+&(9}jPqbGG`@#71>!%gb(Z^RtpJ7pYslIcLwry_a z%bN>yk6m^@{-yEb7XG@R$5-?~nIJnUyYLW0VRvuiV`278_M#(gC6^>}=1g*Akx@2N z)V>*aZ{dS)#rn1JGkCV z6~TQQ+*W8$HhPa*ME?`fBUSp z$^Bn<<#$!SWB(sy?(gEF$N%_cp~1XUQ8%LI?D=4OzvA=J`L&1B9;Gq;zodS@;xyZg zFE=Ysq~w$@vw2%S1LUN&pw|Dz%KEKTWd0X1r&T@JB?jzg(|F{q7zVEK=(5VdmWB-4@{axGj?E7=i zbx;2^?cScqFqafAu#4;zKZ;2IczyrR&e@<6wF=pK++X|StaRa@JO29$ zjZa$k@iuu!9oeY9?1sCHhdYnOvpY9pgkN^Y#Yt?mWS@2fQZm~yo$3pC^IhZt+|Op-y~WEMY$`wJ+;dtzqw9pwvCEGq?0fOFRd9B3g66z`Q@{VYlh*v+ z`Td{G$AWiCh{?b13b+O*5;Y->px6Ao~is~?S?(7VTPhRV^$s8%;7M*`1qpo>&fCl+dh5~ z+`7JZ`F6?9<#$XU{y4w)wf;S;=|6sfrexM`vFusC$xKaLokLYv=3oZv%w!gYmJKbIXb&71kX6c zgm-kQ`1n4!@zl&z*s7^7qk!*zaop0q$97JLUG?UhLW9ip=aG}e8l^$Y&A(O7km~*| zaCw64{J6LT$DseuQ>M3is#@Fa-6JReBl>^M^XLnrM?;=idF(lrl;F8|d54<&;oA}B zOCN4Do+su1{E_DWyM1Z*q8VK=>@T#UZk^uEJtfn|bY9=4Ef$$47suuH$Q}gwv9PeI!N5{^ z*&V-U6tLS$HusvG?Zkz1e6lW8Z{K`)=O5;HmkGZv@x7W|Hu0El)*AtHCih>4 zZ&x#!Lq>lky1}Ero(E1FJ}s_$Jl*k!|Mk2JdlF1=bD8{F?9?f*39M%0`XBQ`Zv;eA_Ir);|J$;ZLm z7YQykX^Zrv0(?eEXyIm6SH6^(`dvqFN5`FG6}zmD1xIp6 zcMIRU@C#Q>`o14u z&RYNbQ}^h!bYZ1+o<4s?^ty&xz~a3LP(17iqHNYE+p}`d)`?{Y4#(HtRlBi4I5<~m z!VSgl+}+W~EN@IWo)`6Nb(iM-V!MR+(-G2w7v-MhzL{5hd-3D>JN61B9{hCX`SbF2 zEy1I5Pmb~#wpQtx=|pAS5?Z@qiKHvD<@+0W0 z0z0adjvM|xrd}p^_Lkixr9~{Ori31yl6^7$PBI<&2AZWPCyj$XtST~@xsHskf<2at^L!kD%)maalRw@7D?J3vK z?weR~Dm``$iswTNmTz(?FPwC8Hs>8Kh0M~VAGLp%2#>(Z{0K| zA5%9I^m3W>_}7{2ORHvtoml;MXWFL6mrpa7Rc(`d{p;7~O}4)+K?2-59icPt3{HLV03Qm07d~eZio1mi~C%O4gydln;pDddh zdb@gK(UE0FQ}>niEWdr`Xt0=a}@msC3`?^F~NzC8}2RI zy?0No0c2=TZ{DVz?)TOnJvra*-lHe|`yMmTcHgn#q*CkSZx>%$_AEC#^yvQ_24TzX zi$3>P`cxfZ*mV1#`fe#@v$v+_7+;;`RcM%Ntk7rMJ{BWg$yfAfu>O=r*A_BuH>F|+W}B=^0y zBzCua44D=YGe<$e=Shd=`H~_VRwl!w%W=!6Z!@b>nz8NL7F9#v4T>9lZf==SUY7JL z$A15(A9|TJw4y}&r;d}y?yniwv!7ovayrskpY!_Z=L)f;Q*#AcM0Z@B^QR;I z_vLn*d!eTrcV_SX^XYW|QQpQg{_4=*PAGcNCv1>Ql#lGiEH<;&_ zY$KbjIq#G3pC|d3;y0i5=lq`ZDyFA-X~ij}mMyub_Kew5-!`y|)>cKQA~>#Apb-Y%=Biwk&zD$ifW2Rk&6cVrxy5`AIs+=WZC6?5La zOKA4EHr-8e#v7KacNJW2&bJe>)W7f`EI-;-91s} z|AyJS4=347-3{4(!Ma=Z!f9)h<$I=ebezyMgsnBP)_PmK;`k%9`P+wKI_H;v`^0xv zbG@pPQju5B@*=$*#O<%J6#nt{SMiU#Rf2*OO_L#ekNJG!`b1xOFNpf2_9!k+HT6@_ z%D8`)pJM&@K7PhNuWH%s?c95E>t4P6q@+}|Ps0DW!MsyTH*U3f$h$WF&rNfix@_(F z`@fttzqg6eMagNx$+*@=^KGBX?nIrNvmu6S%j`Oj`DeDyw8^Qe6g`#VbK~vHr}LHn z?_a*}=d<`dfB#=Rd%N}Q?85rrFZ1rTrQa|6d~W}*CueuwJ6@_5X&Kf&yS%>hMYhwgZ~XRKZwhw(UB^9T z&)aVYo7v6v_x*VE>}gPk)^XcvLBYo_A1>H??6TeRuH{EA`u?do+gI`H-2Cd2KVR5? ze+vd#e)RY*r741b4iTP@&9b(xOp*#bXPD4@;+ly=!tKx3xpwPyJUAR*yQNt)YXj$! z??+6OZY{pGy)3tWonW4>@}v*D{r_J#pI`fH|E|h+E4SO9>+krcuzs4UyUP~#O6lF{ z_rJaPp`NGj60yPN^Ut4m7pe+`9Qm?zdfcmL-6tw1Rj?h=-eOy>Q&nzTb`U(YW3#$z z`TB!%Cq-|ZEb&{~KYyNI#hh*I$AU9w#>`Qe!ojlWBA3zej?%vBBq?bZ3C6C3ut2`O zcb9AxYE;(vV5_nrWP|d0-}9R{W}4r3)>SWSxNF&=d48W#*N4{S`%9H4?f>}AzC>I8 zpliy>$JJnW&g(s^91ZHNEfWpDamTk(cki;^Pk%n2&o3*FtNj|9@7x`uP&wtr>iM-> z6c`?f8R}Nuwa({zoGJhKrA>C%@_@&g@21^J-F&`6E4V~ledeB-2V}1Q;V8?#e@k(} z&BCq?*Zz1_zl&OUcS}3N#nbB(t_xpwkTcu6N9@fxN1tfBpI55Q7DbjuV zSxr^t0l)Ltl4IlRBm{>J6WpU!KaZ-^fMQ@DG{OWU61mzVVSE>FIb zZj)*_=_sea@`t%QcD+xV|1sp*jM_EY|IZwES(kLZ%f;X4=2pdCS^1osR~-V*yP7Ol zP`IGya3>==e>(fEx~!cphN;`1t+)RhpIcV`puYOo{<=MjgWvjXwQvl$dG(-Lw@9Dh zm3eGggT1u^!e0Y4C|gfj|{d+E$-hF-96cU@Bc?C68=k%!z-Ti)f|k6ICdUA zqi(GbaGvvy+VgE?zSiyn{otBi%&5|idSYbx<&jFjGVuBsyX>Cjvv2&ITeP@WH;{kc=8>OaHZdy6WO^I{107fJo^g@tar`he*T5Orb9WGlQZEBqY{1hCrtA zxf;8g9|g&;b2BEMZkk(TvhA4NmL2K4TRxV^J$`AD-Lw1;i~Y~pU#{nT4nDMZMwZRg z-5Wp)5m}EcD(~Jp>13R`B~yILdG_!Bs*RuPuWstf5YhwPB=gUt$nD#{^s36mJwIL* zpSRuqbM4ox!&_JPcAPLYn0GGO#+K(;@J7M?JdzK%&toevL0krSEYA0x&keAD3&Wl`( z$M2jwUFh#q=yyp;$g=(Mjh1^{wQCIwGnps%epB0Uq3v3m|E+WBxA)C)w|nZ6vWj=| z%smH8H$JS+xyDxK9IfzmZPK*#WaDRBYdO#DHhQ%Bhw`F%2Vz;v#pCBb?yq_CS$g6h z(4eC^Xozf+XL36G$2DagFUtRJy?=X&^1Ao+A4JRRUGyX%r7>v2d+VjxIS+1FgsU+f zH=V!5$}uVaZG`FLp3LT#Z&m=+A`5@?*`7> zTyfewwzIdLw|IAP9(xb7QUTxJlk2z-s@66HTwE9Sgim!@;;C@qmKDO+m+-$l?fm;y zvHg$fW=$v5kH2}Qux5$kjJ38-r_KfB2t2sv=As8$d$czq6SP_9N<|fTzsV8FpM95$ zdXgVam~ho*exz)1Px194y~cR~m&~`6pHr(1>z{exLfa{0Q)t5fSZ zb9*Z;hTRIwJ-NEJOhdzXpI7ax!V~BG`Zn%dy?)>8z4vzt2H92rT)3AtHb1ia#M5BY zlNDJua}R;$E7Qcp)z>CjILgE zw{Tf@MVr9$=fdurx}8le+*W*(^o7&W(mpP~TDAq<_c^l5*;r}W zOZhih_1Ei@7T@2H=yQVq_rJxrH+EK}vUmSeJfX7o+U%N3oFc{h9IeXsn)Uz4I@Z3) z)4%eHx|w7*`r2(P(0bCxFX3yqudSQZ88}yBRdf5iW+Tn2=j#Q3Dd#4B+NvZtTh*{N z?*A3L71vj7dAf%4mD~OR|65{>Z?DcyK4S87Z}dUI$7Zr_HB&b(?75=Zbo1S-o?ojv zPG}svT$$Bl4C>WQ%}#w$@8|NaJ1#*;P;la1_;PJ)$2Tv~cB~Xw&p0kp1)IVkev#vM zmi-6M=O6ogx$o=JbkW@$VW>e7RS3`^D{C|h{|K2)#{lC5brMZ>W`uVSyzI!{n#`Q^sg#Y`#k0mpt~L8$Pix6Ab<&aOOkf_x)ct@_xH9q0g4-tYMPuY;RY?x#E}o z_xxUN_LD=y+G*qc(16X+O(&jC(>uQVUB-snOjFz~J7k^~$jo+*e^Dlz&DO@Zv=u@JWo2jXz4QDgL&N65|(arZk#>A=T&C0ig&lp z4TUz(?9LBY=FVA~&3Z&E`W&d<;Gfc5vHc}up^L=k=EHsGKl-kwwUHhO zy7q%dq}nBpsVQuE(=y@yy*9a>VY{V|s2_j(&P#VS`}P@vt|$1;?f*4>{_9&|(~eB} zb*^(qht02M$-8P{Px+I@ggeWB|GAhCJ{AdO=B0C@L^`Ob{j#G(TwT!HK_bfV+&La4 zr#Ke1Mcox@_D$Uj0>tiTM=soZEXq^*Sy}D|#RFHid~x>O9fCF})%n47ivah&@Y@|x zZv=MD;=g&9@ze^l#n+u8ZqF4dn-az79ch}|7yti~x|!3>cW**={O#f0?XtIK0cg3v z68|lB-HiVdp3T^C?bf+Oo4Lm-cAW{bd0Ovt>-a9A=<08_;Egu->^Jw9Dt5gIQ(y{x z^W)w><2X@)PnOHOG`|%mRq0*eyT!1j-RxSdoPumt6qBFt?vQCmQ08Z9`#a)AE%Kzd zGl>gWUD}xYS&JimUVZO^zPRr9wq>HhWmR?G<^P;XD`)@rcK^RaYXX!u{ZYPuDQ`lO zmeIL|kEeo;DtT$-{qYOt5S72dymie-|64M;DD1Wf-jZ~%{L(63rpvo|Yx5N5y(tsS z;857Im2LXG8M`ij?m!xq3UtzWwf5nxzQ2=Zv|THE5_Mz4<>nt@0xzoW-PycK&~0At z*|iz-Ce9TKo;TGsCoxZ*W5wzuEh9FmI-ax3e877$KkMlFMSWTkE}c9bw9@nXkw=eO zZm(TCW7~0o#FK{SJHj3=k@>WIp72_0&*v_`+P|r<6%Ee$bSCGL-b~DiooNpuuW6+f z{|^x_d?MVq`ls%c%Uv%|Y;`-@HCN@->!*q{))x5PO?vjtBwN4bT?9lG!^eZcW;)apcmk`gzKrMgw?F0ca81&Z|8NN@AgJKJk~oc`{*M?7Ur@ zFWb3yPuTLbrT7=ST@yzx7iYp2bF(EE^S4Yj`#9HOQu=g#S-JC0K0Ae*HZX0UHCg^+ zPW`V5$9HF03Mf9A|N7RR>G5?xH##Uxc>6Ya#rf?;JvS6nI=pq;Z=afTTz%1vX~spm z=Tv*MuY9_->vK(RbzZ`AwudR@>>ph`KKs`!DeRWo4PR*RcHQKTJ8g4ow(LH(uXgKg zuvcaxk79ue)18o>M$5u`Nvvgh8=Mt3JlxEcsi152rew?07LI)XjO%WmhrTgOExd4~dzWg05)_OM-CUt~=67Xr+`0j#2 z4rmAYjkOQ|2pIa*&Db5LpqnI9wWyOf_3Nh{U(fLIC7pcxltX7iJMa0!YHOG3>NhU9 z%P2fC_rm8@9~+i|N8`?cM&tD6rF}efnf=DuyNRIXLFZdhmd4q>b$TLjHTlhf6nD;7 zx}}1GJMEAczAY{~X)V&BvFQ5lvvuJ&T$7%^lt}IFI8m8sb65WH%gn+;rPXb*TzQMX zA@4W^A6l6rN?^e29cSI&=KJl>)dl*$UT&XqcKzlb+@OPN>IBl9OX%IDkO1*fZ zvyEcuxvg1qwQrnx+I`}oV`)TJ{&O&2m@8CC;}K zn|S!*+@+m?+F7hCZwvyvl9%^~d5Z7$s|{^1k#Am-C8&mC#cWTtmI z?Ke!!%xCg0ec~+=?6EsLN;_`rT+S0;TtycNx}EAga9l6>GMC_)pEWZ;*80wsU%~#< zVSi$LZEDxjBF*F_GJ=*m$1Ybs+oC-y*QOR!gI4jDh^rUQ;7QVMxH&WN!HLI{AHQmN zdtm9AZEI%T_m0=jtk>@^yY9fmX>)bib^GGU4`n>8mBR!#vz*e(+o;;V??JV0c3E~SUkLwFkd+Lx0dblqtl9)4_oux>DKkr zuPt-cZcI6QMa9;ANAK+DcVDYtY@NI>BmcVIMsLd{$@`xiPdrtYH^=RD^M|dqLP|Yf zq*EQ`F2Cs1Ebjf3m>HJ{TXAOie&gfaAFoto+0?qMw>x(EbV_02A%?AeSBp);j$1I^ zFZRyqniq_6K*)rXj`E-bLaHWzxw9bt18bR1M(}QJkNA+r&ITXOGa`$hURW-FK56!6U)?ip%S)j@-cMp)W_nkHPU-{I3I?I_ zk6)&4+G>&5PyjkBWX@t)k2%WB&Q)_t^A>D)ZOO94W)A465Fa*~nVjysk&g;l{prS% zvo%F|eU{sA%?0gUb=rOV&zoOI>jjwms`m-rUv$PSf61I(uTL13CcRnpqvwas(}FqK zMsYINH%jGRpJL(kYWAm%zLrat%1=6`UN&``kB9xd-T9q!gq3dzz3tCSS?9L7D&hJx z;h=dRuT=Z7HM$vWJ$Bc?m>F5`G^SeCG9F^lPq?v4{*k<075lf3UObZ`;eTc-X&U_V?VoZj^&>&j{U~x{WaxYtBYvPj<5VU z-3xLq)H-Hyb$5p2&2jTiD4xt;|2Th7z^e%Rg&sHm@I2jE=N#vhxTO3buw-zB!>&u$LsN1Q8*Uj@I8 zIhdvw?=sI|5$DX{W0&n-9*�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⁣w}q#&J3Bh&ObR}> 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 n?K4TG7ubP0l+XkK@aPcI diff --git a/docs/tutorial/images/func_80A87B9C_diff1.png b/docs/tutorial/images/func_80A87B9C_diff1.png deleted file mode 100644 index a44354fc67953ec738ee6ccd58c8ddb37b4bc7cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35868 zcmeAS@N?(olHy`uVBq!ia0y~yV3uTHU_8&k#=yW}FD?Frfq{XsILO_JVcj{ImkbOH zEa{HEjtmSN`?>!lvNA9*a29w(7BevL9R^{>wBg&vh05Q z%}!Z$#?`;NecKXdxpg`yXU&*)M<-|rrvXFbGMO7wayBX)rZ5IugdrhzXIQe<^*MIk;&ewgnOrKwU ze(!n9?>~9#c6@)c_uRjj>a}~n?Uet2sQ=H2ewz+3$Z2(KgD|=%V|baL`0=iM|L+ek zm(Tb6bg%lo?Zp2-9{2mdy#N2-_xVeltKak2|2RDPj`jOJpIzQX-~V;(Fn`^L=IcfC zYd)Pk{C(f|z1NH6YrkBaT%`46eeULtjuUGmJ{2x`c>I;^58D%^?|5zNt&}!D@z1t= zzwh_E$-ghj)voK%xyWl|z$YPaz#`G0!Z*s)YLB}7;pU5Lo;rN0dg|Kt%R@Qh=YwYc zxa50+b8tLNlB+Tch1yjQhwNIX_zhCvOO_}!RWyhIG_P&-53L)>k ztH112+H~a6@uf*Jm2aQc|9IH0?(AvM5YyD;5M>%8&^#r(M|O+9xz^Pkx*M;g2?|b( zHhlW{mb$>&^*MjJl>E5-#O1U<)we85=i7z5RK>`oeE1<=(eIemdwbGB?*gX{ zL8(!0JxLcHbatGOllWR_8-MfH-g#$Cn|V$hT>tq?>z0+jzwA`H^mvg%^JU&oNj8Ql zHhk-ho+M8(2op#?uKhFjr%h6?&XbASsVW_uhBdmyxnhEXJ4F}&t>-UBm-G`|FA?CAQ7t zvrT5tovEaxbpGH9d#5(uT97#(Yp1^QcTaWuqnWuyy}fhG{#^eH&$~SOyPJCEOn9=T zS-+z&*575)`Rbm~x|d2ngZn4lu3Fv`-M`bUyQAYyS9Wd8s^?(+nY!)2IYXAcyA09I z(<5G~`?HU&AeJ|sY2vRf&F&im{G)DFx%VW^$Ogr~?#rJ$ro|Z?u)X@e_s3RJlOA7yy<5&F|9$f!a(i~os{7IPQ zijhbBr{&5<%KxT(-#Vw}`6UHs7q>_rBNs5ZmM}q42?S;*k;W)A_~h=l*G5oKP|~?x zt0)zwVd})?K9YM*P2qWbc8OJ2ukiFPw*|7LyaDXR z-F;7H{n0wC$!)Zzch<4jcVd>soATa_>g#yJ{r6??m*t-?=)bx)zwVmd-8CaLxU0YNn>wMh8WnJIR z4xZAD2AeEyRW)px_3w_`#Hy9^|9!AaS;+jhH}1l{JD06)sTSSWeI>Q9uX>LC*KlQz zs;S<;tK6#c^fu4CAp7p@v8LByVJ`E;b0+=!;`_q>FXP{rvjg5b(U6!@lJX_?ezINGp z-6hcu(JSh+<}pf^EcSJ7&$=bFebwr9?Q$nVlG_hHvVEreZ?koqcMKwfjM{OfYut%EZ{XKp*& zAoKmo7S+5^@zkR8A}6jC_HSHVd*$wG?W*RS+2YThO){PS`(*msjbhPrg(lW6u&)*V z`_krD@ZXn#lK=eJbbRH!E}tssbzEEI-p(O^RC&_*rW1=_Y9x#74E4LT=#H|H?vt(E z(zjgaZ(4q8C+iF5#KO$ntN7qa#*%HDh6IyqTc&^^&gS7jW?8S zlc#Z5WcILM*ST_nAv5ru;7qYkw~q3@UF2WA?9@)vi}PP8+%|Le0=nDzCECu{c@o!hyr=3W1twJVBww={nXVV|&XvRnKF=Vi|; zCWp)B?MRJP4q*Qt%vb7a{;FmxTkp3-pV!Y6KhOI#BY55GnzYM}eAns}r6mO`<020K zx@@SJ4?JVtG>&g(e+Oxx%?NWU*9LoBrhZsp;!4 z#Dkol#<&|1PjCeH)-&%;K56Z^H6-OH%EkJ=T9O^ndkes@=C=s!HdZ|CP+k(*L?V zf06yw`EpZ3@1GR7IZ0wwT-<4?n{wONc)PefnRe&W@w=P!EX~*?Kjo}3w3`!G5OnFZ z^uuYTogE!_g#NC4BiPJSX?9IQOD^`)kNwll59z)Z5)|C2`YZURGMgl*d{)||iJuYP za(~71^6ft-#r(ZIf9-?v2b#0v-#;+lS8b%Eq~z{iUuDB%z|Z@0av`t0A@z!dIn7YuvEtj_(N;ylyV z^3rGhU3-*fzjlaRa{tx$gP+$g?`iz+r?pA{%kmG-d4#uj5G(7k^K=ekwq%(r{O>o8jxH)7Z3fBX_&GKH2rc|Eb0c ze|u$6VSnty@ufx&Oc(h|39Mbju~uk;pUaHwPk}Zmt7Sg4>rT0;zeTh=f8IIHYyPZCdo_U&`( zrHL`wQK_Ew3euBb@Eg<>C!1{D=8|H6B=3d4eey}UV{F&H-!V?Df8V)E{MY5>-`iC| zCE@1{5-A2heMBaQi&|CsNT}S(6>Z$25w4V&vZ{$qZF6YPULn_|_a&J##JRc7>@cib z@^qi&Q9G+Iz59+CFr1rGxZu5^g7Pn8rtg7l@0XY8sH;s>o^Sc`tn)LyO`^XV9-b^s zxxCz_WwM6Sb@%#P>f3zlf2n~AqKPwkjf@^1aM&(< zf70a18d0G~bU1kAQa|q7D?jbk4epnRrxc#P@v%#XZT>#@jn&`pNJ}o3&=Rw`-s7mv zz4l+v2Djs@0w0!oT{kM#4G==%cpMfuis_gW~bNsNY!ZF(m(x>x2_?+NE z`7eww_-oe$8lUo$OKwO~o?lp@>9yPBy!S8TLs7EcvM07xE}VAr+18g6b8p*})<;~D zKe6MA$&($+mxWe+?>JF+VgA0(euZY)GBwhDt(7zkm$O>%9BbOQ=*`LJvw|6pbr?GK?fV>cdT00x?c@umrLWExy!ImE zR!Lvrn&mbp9Q?W~)-Koh();hq@91e?+P69FZQnI zAA`PlKUtBo_LcwdFK-t93#pHKKY#IZ`-{`HmfP>Oo9xIYs2Hdqd{)~lT-`2EW3r1B z*Wng5-TqZVGmQdIxGvKQcwqNQWA)kF(mFc7M3NX@GDO-j4`|e1~Gl-Iyq;=R~ z=;HEePtI=*cgf?=j;Ocl{Z}Fdstr!~ut^#QG;*%$pV#1-aOp%kqszyJJ@aI`ZcGzi z)DzsbMg7*th4EX@PdGaBi^e~}U*()%w)gQ~_&)DW$3KT-o0f%UMXv2j{GlN~sjbj; zUeV-fKQmu$wKbT2;>)uszg8@sZobI=3b(|;6NT}nPZmmjGV^ztCl0D~FK52Umz93; zbIB@kP`Zzc_&S$o;&UaoMbo#38^mpqOl~cVsa7(&^nA{T16MkGIyyWq%>QY|cKW7l*(8O8Bo?Gk&w2IvNW*XcU0wx$D)xR0sbBrg;o50k^FQma zUpr;0@ z_@#O1vFXpyXJ3{u&OF|*WZB1ESLCi8c)9Z6>VJW5(ii5us*Y(keap%Hi}?=!MR^Nb z-<)F`KP|amB*q4+C51Nxp3Kyn&1a_e-0toJyHm-=SL$NAY|I=c{JPaE`u##%%=z3+ z#lND>qpDS`^q&++poxfnlST{yoa>s`dydT9X|DPUT5JnLvW%I zJK@&vD=>TVyfZR4a~P$?*HsrO`YXLUw)XCqC1+M{0+rHVR=&+%`b{{JNuz0bj!5d?auYIy#z?`3&n@T6wO`3i2;FO!s=FST+Ie1cYL*_42aH;9A zj5p5j`_u({pO&0g-fJUySi#xFC8aI6;p2{t$&(MIEt~ghU8`@1-{RND-h{9(|FYi9 z>?eok)J*f}n+JSzKlC~IZE4(h`FIuA*=L4-Q}`yht33`qz02LLMA=3Cnc36eE7kGr z{55l4ZuGmi{Zl6Urrfw0+59h+<=toPve$WaURiSYtTvhNSGIV)my2u%4bynEe_I@s z)A31glDB2)yw!uzu^D-N_E-T1#C0Z|xDR`aaL>_S^%rzD)k3>UiwHpVYTsKOLI% z?+X*#t(F+y)fb+BgW1e(rjTP~_CN0M>d8NI&TSH0J=^Won#`T^7Tx>3tHV^t81uDot`bvzaF0>_k80k2kYfA+jCd+ygI*f-tjHLyXBtx8Lj`aQuXKFkCO|* zsd1f$*`G#U|GygSbIeS0=A5j*fHYFVadMZJ1Z8g?r&ttZCE0>M!|olr*y7A?=ENk z0-KXI*DlU}FZg$1oWhC@neSicExK}G#o5WF5-FfzygdS&9=?0}R;+3EakKeMEyoj* z-wL-)w0qvk>0|qF0$h>BOZ!)vwg*`c9=O$S#K$VR|I@XXCr{nllqv-(76m7YA9}fD zUrqc&RRf`v6W<_4cbr&;pJ8MCe((2t;8DHye!E{U9!B5)6&C(X$nM93=HQ#4VL*?q?aq;5(cihcA#txnKf4^M5Uh{qT{kNwUc3e0u%*Z2V)iQ5^`*nk;7uu=y zpH8at+y8mUzdotL)#aRHy;k%>`@8a!9od-OO-?8nW$vkaUw!}eDZPU&28Mh39Z!B0 ztb9JV-0!V_yh+#d!#7-yM{Ie&|9@S0UZ?IU$*Vt??z+J5XPISbD|?V(Qh(0u?QIwL zU0&C3|L=#&>EH8uI&#j3{VTb$O@{OD%d(zdO{&{8-0QUrBvVoxg(Wxrm}$W__w~F# zA{tWPQx_$9ROF`ibJV`nw8;>8esU%A<954*2|L`5{o}NT~e^8sg*62^+N}jadSCiOW zYJ7^U56;|Tv+b1ao-j*?%w?axalLg_tgehqae05@;77|_dD56WxifCCv2V3rhVrm4;LScaM`vv zJ=*Qs?-jX>e_z%v0ClKl9#vp|>bO(#PnqN7c1H%aIVZE#XI9T>iAi5n-PYf!^xh*- z@$FpWuE4Zk)kpr#<^G%3>yX{@>c-P04Th_`Yg#52C9P1NzB99z=giAL9&;X1^=^t?n17ES)YJ%^$!nDL92eeP?M~_{ym#NXE%DXrgMr;p1A}>^{?{3eHhas&Erb+s@JACTYb9tST*YA(p?u`#{GO^ z%x2pA^>Ux5L}dJiEA!-@C|*7-Jn?qG+ao8c;*+EMyw1;K%?Zoi{_M&7-dE1Ae_xR9 zR*k=q>}$E?dr47OSlLRwzb`*Z@)_ManU-{m)9c90EiwLq?|Jubv30gzCMMB!T}%Gc zTA};eJ>1;0g;{>h4W4nJX??eOTf(UTAHyiV$Mb&9y0qWx`~lsoq0FyOFjO_f_&!cq zZaSrL+t%Ei>*8x<4}W>N^u>Y`a+$fO!7g&rea~^lF!SR4SN_fazF7FMN!nyObk1am zll)<&IJ1UrzKNPn|6z}0#Vx5!o8BH_d#BvL>DHdTO+kxVbYw)<>MfX_Cz8xl&BpjC zr2C_Te3iT+$B7BoFRz|h6qW2cdxmw7i*CB#bLGt;;@>aEf0^-R%U;tETV-*#>(^%) zwrpwrRQ*$Fldbo*)RMjZx5N~BZBlOU*}KSou3P;odt0T+j&3|54xIs0v<@>E|9rBT zW2T3~`crIb-GA;aNo`uLR?>eVOf3A@+Q1qw9`9@cr>ly`HeTI0;pn~7%{z+>YPK*> zY72CnS2Wpd(dP|U(oQYAbK*l+TnMvFl0&ss{Og&~@r#pZd^I%{S1OX-_Gx)`PWQhr z{~YvRYz7UviGgIcw6L$bEG9T{di%dGHD8v$HaIcC z`9S9(+xZd+Jce;|ZhiTr-xw_Gm%J`;TStcs_urR4U-(~7oS@j=5X>y+|Lv2Di%Sa6 z-<5Z`z{R?t;7t+ijER!_zHQ$B_rvD>pZ)#T@2wFOtQ2nMnV9};Zv3y?{P+K?^>lPks^Bp?*UW2bb@bWyONCGFy^whN_sjY}f#G?5 zfpg_oX1lcgn|%IP#^-AWx5~eKdtU#2{=AgR`;!GHn(s6@apTndE}z0|+1rPnpZaSo znNqNcYtELWh?^V>ePX^pS?=(1=lk>jZrNK*ZBBZ&OTFIY1$XVMrzdR;gI?TJeLQ11 z5Zr<0q@A@A3U(WZtdwKqzeE&xu z1#jqol2~k2x44d7qy2aAxt;r-hxNR2Te>`1x#x=Ouc-aX`jd|;G@q5|7F(JnZd0k_ z=b>^tZ`Ka>r_L7xk4WsB_vpApjPj>_Vq3PSFW40D(m46RkBMzLmu^?TAR<+;6Sf8~bDYuU`_&D6Lzv z&h%|(jPLBlvGLijR!!jFYa>`W`9|x!vl6N2wtac=GuW&!M=o2cY{A!^4<~)Q*VV&a zrt{wOxz&5c+ViHf6F;4o!q}cF^IA@sbkujj#@0{o8GpI$zf~fZa*XM)N5WLsN|od?Jwq2x zjhE)1@10^yHZkqqy4ewzN` zuJq%G%aiV1KB*aXbK)+y+lPP6l$t#8E9>IY&=bzfrmHLE3rUAwzqd5to>cv;>UU@B zLw?WyzNC2W_XEGL#eK`UIqANq<(1IHNc zxO>UdkcG>8G>Uw=y}Q%$uNY=_HZI=ZBftJa-|@YNb{L$W(_`Rg8JpFqH`iLPr`R;l zaLU@^g@4Y7ulL?{?UhZ>71LXCX51&PZJA)W5>zksTnqiI`506&iG8{DSal1iKG=LM z^8TIqTP(L_y*Kr|ztOYOzv@ltlNZ%nr+?I5yEgih^^|7$b(z&_$wALIEtl3^+t+Il zbsdy-rk_-3KL2o|MW9Yx;EGiloC*P2mjaI1%v0`V?ThJA`g!7L!Ivo$O+HP?{rruq zyZ7J52`{5#FGv{uns4&NNNnQH^rR<}?7!|lTkQP8#qP6Y?5nvNuKA0?r{0lQ7qxv- zn{umRx|w15)kyu9H7V0xNlk2=_mOY$>+CJ-8f1R%H58j@w`Tdy(yd1(vI*BQ4Zo_wFeb8>z0rO&$63BCF&{=WRV ze!|Aw-!;1XmG!5eR8VHqN^uO66zOsGvE!0uW&Je4Q8VzsiK7 zdg8>P(-8)3?yv7JJ#t~8e{S5d#jRh$%#v>|YhTrU#{Ft&NpG3Mr3>CqG|e-Wt@w*e z*G^=-)e_^co+TOldiB)VtF>RRHWybi;(a}NYw^0b_fE}c`aW^K%?nl`_m9gZqkqi+ zCy>M|*HUYi<;3Rme7Esa-eve|f5N%>eOIoYI(xQtPY$HMJdp6MseiFEgUfz{D-t<8 zRsQdUikLV|Im9L!Zu)umcUx>qOZC^~o9uavo(L2K6`fcAz#`7V{Pyu{-Gt;LnwL#a ziB)n+q@1uVeE%=xTQg`dOU9=Ee|4pj()AYgJ{F0+{Xe^8c!{V%L4!^r%{|Q@AGXWe z?fHJM`Y!T}?K+mW*O&e6YtNSN|9y9z%%0!xc00G}rT+WSZvW<){KSj`Ha&cy z&$E`x)8qaLO1}Lq77+gB=VX7o%8LJgzwa)J-ryQ*!E;UK`}vmwFAH@pZhw_A=~__g zgK3YIKTVSOxO}nWG4Gh=zb+fP{ocpA{mNn8SC{77@q^ky_t@oY3Z(YDumAsh`N2oK z)b%eLnmKHJIkv()K3*I$=LA<_0%CQL6+Ym^nTU>}unEfReci=cefL+& zXIV~Ue$tm9GQA{u%X{So-dAThWGB3mIbv~PUKYo;q$TSlKA)KAZ=ZBTd*=5OVVmX^ z$wtQA-jWlS^d>8I>!0lY{uAD;x6PjVCo^w|UUM_2;?=Pfkn>*oFZ@=^@^|IG67RI; z9v(FVhtdVrPo6B{Gi$!(XV!dgc1^^pWPJm<-1y}yxUM(bq*PVv&g_o6H}B<3wlyz* zi$uQBv}RL3w^eGviAmEf*QA~eyzb1Oa_!30eeQW)--Go(<;pz`tL@0q)lNSDcggjt zllQY~TvBGO@lD9RYRa|bDlcD(?WccpN^f1;7=DTU?@I}AS4QI34w2?*FLv^o2^uxe z=u}*gk-B4@y5V=Hc^4RJ-4`zNI;V7WEfFzR-ipyhnc`cqZSTBm27 zk=paT)XV+_^9A`|D?rl-EB}32!Bel!EU~~xE>N%eR4^Bt@TRtLERv>V-4a`~QoHTB z%;E@tp9zg~Hhr)v*SgVHz5Y*jZ+}P4wr8()rSEl|dQwgG`u9D4UzgW@S^l_mV&9&B zCH6e*k~{{?(@&mu2~~YQF<|zw1)Ch6sjUclZ!07@Kh7ca_*!?7l9Zkaw|581KrEJs z|H9+$TDi9PP{1`-zuFVqj}>#fz4p4ldE$&qe|yriw-_x8USe}^`!8|#d9S1U`cHVb zf4#cS`%Tr>w;?I_r5NWM8<{@CoUw<}b!o)@%AE{#-PZ>05DE!p9;$w1!alM=A7ZH2m;+D>gbmvo3Ds57n=h7vh69@Z zec5dC_vPmeudF4N&a<{9oRi2o37;U|Das~U#9_fX!z%FRtmtd1N=ilEkXei;0v}FH zJpO<0p0ztuW0jPYw!748Z9fDWv2<~9F*{0tk@>d{MYor{a+p)K5YK)l>M7$ogFMq+;5J8`cdVdw>#9Yvfn%9`IqHNwrb5h z{{kn~d$0MQb>rXWXDbqS9Iv;#qLIhEt1<4&C%2!s&j0&%*u4Jr<;!de(v9$2RB>o$MA7reWCU^;m2 z|NlXD`8hli^~;(*72Q2`<#*JC=ldj%{W)smwq3nm#O;^f>6}E7`fug`PIj*Uf7ISq za)bSM>Hj}c&g^)1vi&)aQQhCu^^YIE&aYoQTV3h9>z|`b|B38BS!=n%_{4-$#lJ3# zHHp6a{WAXN;>%x6n|c1etdj(Fry^^)1P>qR7xZ}(@e{QqkH`q!)LKYUmn z|I0fTv@&7?|3=mZ-j^rWK8>lL`Ex&2zBjjhT#Ug7Q1|EBZ5rJu|G|H$Eb zli}eFi63qq-<`uJ6qBICDQ8e|)nHN_uUcvW|MjhFRO{ZJuK$|yrtY(Q{r89G>pwpC z%bc?%fn~MKu@CwGUTpV&DRFZDzp3}XnYg96Cj{RRNo_94oKU#Z{;3?_%c9;pQ}i#) zf93yB>faW*OB>B9p3eGm;z<3oUw0Io>#K6ont4P-T6>*}V?TSYX5%k9b>O$nt<*%7 zxku$52fXLbm90))`94%loo`Q?jgs?*P+rXhmmS-ewMtyfGU<2lyZY)S_Yux3TZ%gv zPrEIUGU`!%`StS^&()4>{ssmsY`%I(`5V6aDkNdrb4UK)4SD-N|HAhdSM?Vj@!00J z@m}-AGnqdAZZ7kt-Ls{oky)_rlx^pLl0qo#88Kekp6h!P0Dt>z}ye|2&@eBX{^B>BM7@oRbEWR84*LMY zJu=4@H8HOFUYOMAXme=C(zQ0XmaTV?fBAZAZ_CkHzu!3XqjOHi=Uel#*%u74)iWllT{ z*8cfVY5m9bCm&B{S@O~9*GmS-AYnksl=5>LN|Vors`b9!HDPnYGC%%XuAnq~@03Hf zh~(_BW$Z;${B8ICu{|iWjm@Bc>GGaO)BYZ62wg1EeEr{_l%9ljl`Ln{J+9Z-yoxbs ztMl}IVv(S~jmv05dG_DToEIXt_gC7#U2HGA{Oj_D^>d=Rf1W!g!Xmr(_c_=4UGZwo zJbrFJGK9U(Xm@W4%@Q+yxn$v&J?afBma|!AI{uva+E$IP^IZRjpC=~n>z8mnHqGS8 ztBULT*-u^CH>%jr`Q5rMd$REMIU0s`Gs`b!?FKaz&+l-^|Cel2U8`2{!27nux?isY zu1-i4;8akWKL6=zN4I@HdS%$A+N_9AyUiu{`r9Sf6#D{)#=Q(V%-dA2+y2zt_G!89 z#`#<4fQHZGPR~CU{wRF4&i&Fgsi6}xPv7MF`?78(k5SSBC$ZeAin>25tu6*fiOi~b z67X-^oCysrt(Q*U7gnxyXUmfMbX9}tvEXvyR}xotY2{j0FFI#g+r9A3*4f!#lzx8w zqIG1&wwDtc6pwremGn#YP@k{RbfEFNREmS?s)tgJZ5?ms-{_G8x#!FBsX1EJcER<( zepbBppFgd9rG4wX^>ert)=8$EsEY(o>Mwep;Ns$vBKs>CTA|H+Sh9M$x{{Jo@(cf` zVG=1P6dzpFgLHzFjN1N%rhO#9Y(ujl>Q>wI6bIWA6Oq9xPJ*Ku(d=AT<^ zzt{G#{Pd(E$uCll$26{a9;~>=+1d1A#rkQ7vs0MbinQ|cm&i}3Kc6EyG5Z+1vb)ScAdAs(?w*}ry5>3v<9^p)q+&)WAeO}Q_Wk1zP{#K8B z5uKei{3#OMOL}|GizRC)ZCCwPxz;}Stxd|`>n5Ob{5ojW9JpJPvarC%;53UoVS???NaC6JNuz#D^D|+3qL?i#nsziy23-yj^CtttD zyyWVa6W5CJTyM?(>2ter&xu5l3-i6ji%T{v+sd}A&(+UCVtv*OSTE;(-_a94azKGq zyY18RA6(aJm^jyEM}jiUJm-=P%U=3FjY(_n(a}k`v}4`RB@1gzb(b52vK7rWy1gl@ zPQUj3ksI!ok$+;YAHU&w+DT$!rsDd(^chmmR~F?lmR@d)lbg`K??_=$uVVD>1B;7y z>cjds$16VWn`Y{Mtb_~H!TH!3v-ZRk1OjM9Zdj}PuhG|9++a&hZD+u$W@EN)A5Jh{G6 zL4Q+^_Q#@YgdcqMBmhtZ0^TI8g=Y_Lr#$p5UpAn9=@>R)>u@X~eZDY-T zrL@k4PvHP=E+ z@#T_@9F^yvY`&2lDVkEv#h}4kIpylJx1AEkw`T8q%rWWMAs4-4_Mla>&ZbJvwNDr; zC5t@>puVFa+z1B zYOWgcc$exL28EY!NUqB?e;guv;>3?NlFovaa@#&F_sqU-{msru(T?G!S-$@Z|KlFj zpiY^xp=3%*Agfw$YjmoIx1I1|TkozTM-<~lRa|CPRaP@UU3`9vxU#5fyM`6lJj1R> zpJx3DoN0AVcW+UKe-F!*O?kYfn{Qke<8k?vQ7mR!xyMiUnZ&fXxCQr5ENI_bb8FJB zjNsMh6PK)0efDb6{Vk%Cj@2mcFRQuMv#`U4Kl*3zx{ZQwtB&)9Sc1ZBc}?TLE%tWV z#{!N)7I-l=^J8>c_!yUq2disE7oXnc;^LCm38?^NnB>39gJc{OtKZv5))b{a9OZ>Y2FRt^0Sy1qFACe_8(f(ISQB#Z1`DQ-IW z=(_m@;eQ1$q};kKPt3RY_}uBb!5*a|$zPW%K@;VwUzYz)Had~;po8uCzn=vu7eDiN zxzucxQCp#2oxi7K@d+E_=X>{Xb&JWKwD0+rGHt=S7ZTm|ukO1)m$+CNu_`;{xnaW- z<=fBJCT@BEGd%<{UG(MUVA84+~AZ6dPlDZ}90_XbwoG!6qYpr|R zpIhpJJN1;esTzH?`#ER2o!v*}y?a1~;Je<3{obht*&*VptGdp*T=(qrS;uIpwtg9- zm$O{y*2?N;yG0!?yIxv{q`vO;*PpcCJc*@hg1BW#r%A~}p~DAc3KmVsKJ}=CG4_n< z&(OAD{*uu+Y@Ti@ntFx*%I$T!5}E#|gZ6dAOfUYcS-_udXLMugJvEQ| zDtXYrfqR$O1VqywUM|1K zeoWg)QvTP`A2KWJryr2G^6!(~m5+&r#&&O=;<-zY+&FgA=-btZ32{%2%=hkk4he?! zsb3e!K4GqEvndUoIq};T@HEi%^mE%bsCmx+y!?j1r3uM*k6$Z@J@yJNgv z;2r0$o3ET&ZN8|wwPcI^mr{=GjVvHOs z<=YcqJPzWiQ`)~uW$(e>M^9&YKAPpJ+@B$%YT5O1Hk0b|_yZCbwpXoU*!$73?yQrA z(OSKbO$!QVz2NvIP+79J+`nJK@Lg|WLY~C;xVu-}tv2PxEnWV3acS?Xnp3MXMZa_! zEppHNee2tnC3`?i7p8mv(R{yAJ@lE}h534yUpcwfud=_Zefa)K2DV*V!TANomV4Bl za^5qlO}{*2R+&pc)S^T&|3x`djDGI@=$MwLct`k)@vaL(i*LMQdwewF+7{KSWG~AX zk-pwl>+flT77<)~Ve@y+ErS5QpLd*V8+1~`AMZjeBe-yj^IFPoy_4>G*Z0J4&a@Hw zb-D6I`qkF1e3gsjS^F?Jy>FU<>c#0>%NxMtz2hn)xXZ?tLbvBt-Y2PS7t7* zUH^0Mx6Tu9U)-E_Enea9uXT2ZbZJAzu z!riQN;rQv%N`72^=XC9oaQT*+l%{`Q_BrUkSP$xYs;D*hNUUfO zTBs4K*2WOfWEI(%t=9GD#KJG3lFn)sSx(IIV*v~9&sg$ z@5yhvQC;a^tJ(f*)w&@5Hm*r+aZ2&GjTe132p3;-@u$RvdFQTIP3T_OvdY=}EoWr> zm(A1lm98gh*K^%zw_Wk{>e;jl^Y6)j39VmcZ!5HV-(w8TSc=@iMo_;GemJ>iGLwF{px5cl1P=4U& z%e~oupU9Ui>^PE~0xZ zaPf`y!o-@Y%C*UvGk;A#tGPmZm(_Ruxy3y%Y;>-+))kxzJpJ+|2it@{-u3Hiw!Gh> z{lDWBWXacxT**Z4=sO_F@@RKi1zcs}VANzVsxb4jKIiQtaCUxyHk}1Wqk{;-FKx)g@ z*MBpX#qVBTo!BAxV&cXwyQ@3h@;#!h-6R6PXkVXl_$AY>8QGs!^DLJ; zv7j5g04ykWLgjhW0KaH)ScMQBt^76E<5r-?Fl(ettESl-6qyu(m(dRVMEzX*HQ-N7E?Sipn%=MZ}GycqKb5fX}t+qVWPHp}2o(tDD zmahuh_T^Z*-@khc=7)+;>sa^Y)3O!E^mes7CcnA8>+-x4UrTcRo?pMxs+jW5v%hi8 z&k37uebG#c*<5yQ%W@~XFP~hVSe>~k7V&B7^EKb+_1-pq8L!`82ikq{>vFQ;mqJZ8 z`-$^boO;5DXN4|GobbY^reKf>&|6jLHXJ4Fe=L%`%?>(88@cMz$VU;lF zlPm^1pQz^cnOWVn-peX*>to|Qq5Gf$zVD1}mC^PI&mEq>+H0t>_Mm6=4E?z2C2N;| z_Ab5ZzHTDp7lxg)j#*{$rk+^om7DBWl65QNesMd!A@tUswM3<=+MN zfA{G8eOUsRP@E54lYClM+5wt;TY+gXepZ{7Vh-$&4r5)eI(rcExdd zMg9&Gzu;}&^@8r0n(;>*Sf_Bf zt~6SrDzCa?a_CAfu_|r_VH?wh)h*jL?YN}h`zZKDwyeBZuJ+*>6T^8!yv3^Z`B$*Z zy0n1`biH5fp3eRg*T0p#SUF=gx5n%u<-^*wZ@%iYZCU<#tK5?$jfJl+1XVj-6aV|> zY4?dziLJUzbbp@O`Z~70%KpN2E4yEpm#4n;|9*Vc`;-nFaa;Cc{sfJe;>WlSm-Pxy zob$n<^p=v+r%xB=&+GqJA`70X2;A{pn7K#s*y`^pAA&5dJ~VkImD=5LVk5E|(+3|@ z^!;62T#j9se`>7(Xv=}1;6z_TQW!INjOu=_)wlgKJ^%la!~Z{X+kgG=|L39oRaJiv zZ~vbjdsFovfBxSauZ#ZW=l?%1U-x(I`jV$lo)&7~{b7FZ*CWsRmCd_WY*z=3K`Bi) zmQ4BcSO3qG&i`j`$JhSYe(%?(!}T9`I3^b#18t#rvU%lV87A>{oJm!mJ{9d)nx`_u zad~jMzn@DA-;I>RFF$<1ZDXF0rKOtv_4j+e zwq8!_U!a=Fc-U7GRIGOPu&O_PS$uE1fAyxFs_Si6rqA)nXWq_I(i3_~Lw)&&J@0BK z&oT6>ei{6hf6c{SOSe~#Jl&?6o)DNAxIz8L@*h??b^d-XE_UgLClZQ}sm(YWy}L2( z@SI-R*=C<^suao2+_ljA!@#p1B?lir*;!(zn=v#AwKb?5GWM0V=3GsD1 z?TwafwP69qq8{^Ch|s_<*qGEH9n!XbDq@Z$TOvWuWnv=x@7-$$@MY^8`5K5gx{NduJmpA zG4<;?Z70{Of0dkGb|#C#(ekTYg0bz^iT9K%y-GXtdM;fHU0HnnS!YMf4X&I^TlZ7JBwp*9O*-%SHvHb?du)<>@{hMSEM#N9nRC4J zX=cEu#y@h^d`28AUU28K{PLZ>*gpEzv7p$gQTemgm4r5&t^C#V|Mus}$$}GYjsDE# zIdEgs%+=Q=?rUAXbo)Z8a>V66m%A&T*}i0j-=xQi)sZoyBpjqT|5iCxWr-q%ldWI^3$1)O)>PW`<<~*e8!uZJ)U#D{TOd=*}Cgu z@|JZ1mCZbYk<8yZ`;(Hk_oei^y3Ff7slc3kDs8&27miN4wruH*r6aI6aG9GX2x*IR)|B zyV*YpZkY4KkZ)%BrAzNjcTL=w``ac;yy(gDb0^+^&79EjX8PV+ae@bBAkwXAP_?@@ew@AUiL z&-0G2{5HExU4r3LRZ;Qd$p;orHxCm3HG2!!%iKyOB_*XINk}tMfJZ_A)RmWEZsxIM zv3WY9>Xb4_{`VnJ15rNr(c=>E2?T;S#lhQulyGm7HLiJ^UjO@Hdj0eHbK5SW9<#6e z(V73}>AIdZhZP)el->HKuBoGHMt zK%Ry1#R=0UhLVY!{vUe(ck^Yt)9TYfg^9rqmmVGy;nT0r|Jho9Wom4bXLn)U%VSkX zI{Z%7Jk7pubC%QJ_|_ifril*ABQ7XEF5-;7c64u~_>}LL_kVJa-Dx?)+t2&eudLf9 zx1Q4W^3iywkI{A8pPB~i?ue`IWnWyusob6G@=UHn(fRzkyU*9YI+e-w zeevNOnH_P}k0$>9^wIp(>CzOpTYEyQT~cOw|DE=)gy+|#&BdF}gzZaMU9_WK`~SSJ zMW=b|uU)%ks^u^FZ$}8*p5Ba|YLArp15T{!35-w*To=r@ej;bihGn0=x&2~vd8N}- z##k_y^;pvC?($xq_nzD*)b%HXUB0}}TkM-^Pmlj<;pf}FPAd(x`!z57RpPxB#@C;O zOTKbz+d6Se*}jId(3um>^tZaZ=&5HjUr;->{H-Q?R)fHN>A#HgwrqJEadCRwxugk=iwpvN;(k|% zKTTM4BKgsY^q?JmK9`DY(?w>S2{Zi0_1I~CqpRcY+pY&pYnR*igg)7k-pf;J7$>=V zo1DVhW%{~rvW<=G9$wmZZ_~P}d>+Np&}Q$dsmk+B1A8N{u@?JPnX$yUtDV_exx`kf zNHVf{&$mzR7w4Y~ejBO!_ehu#TMuXE3AMd@pU;!{SXlZ-?<1@7)1DtYChY9aNp*Ri z`0Ag7oKX+&d*;VtGq+6qvdS8?OPK%5r<9(X3d*M#c}%XG$}i0p<$k*Q`dgKyXSS`G zb>I8G^-Yy!?={S?e|@a)>AcfDHR{A`&A(SH{HGRY-}<;R=kB%atD(HwZJpmO3XaYF z9x5hzN$L9K>|33Vs`iZT+RVYZahK%;E$6Q}c+W~sHI*TIi>`P5E}4`MUjI24Y$)Bh zdF`LQmw)Y8TXXQ59iLJ8-b&evl{0qPFR6W7E1GiaLF*Q&E!#m0S0$5QJPz`yTJ(IC zM~uF$SJu?UQr%kRCLC-LF@a8E-fypm*uSm-4bff?{#9nU}>XJWu@m6w_b~$pM7z@-{o)m8!CP5Z)zkx zPx`*0eC?mThP&?XxFWtrH~rl4)~K}E?!P9TJACDDqnQ%(7SYIKYfh!S$&xC%6MR`~ zZ*__+XdFXrv6k?4iPKuaD+3L?*g6kX&h57P&hz%1vh6Q69g$zI@)J)UI#qh2qUY3> z2~el5ELwN+#E%fY%-6cFo9^xHu|BqKnX2s1YYfK|x4oQlao&~#F|)64ad$bVoV_7E z_}tR1j4}IN>Z3gWFZ*OM=b+oA@?%`l=H_YN53J~a-Fw$^UxKe?u-!T*>FQLbm&%{r z|4(lcY~s4c_*BvVCX4*Zu}b{P%6ZHX z#q9C(%HgWa+d<~sU*(?lZ_1K7v$b-Itx}O)WV7w;BEDaj?Y<;u9qw9tcwM5p`yevv>EiZ}MES_e=A)MQ1!uCtHck z+IZ4pS$$}xd&-J_8-@OzCrVR_*yMKe?w)y1zJ_@9n_~mu1sRwcU=TuZmx?{pryQTVEEO-nHObd*a&H zO_d9HCzw2AsywweGiJF=oMG8jkN$0y>ui;ZEQ{;1S^mD1*di)DZQpg?gf~Umm;0~m zFP8jRxc1H*{T;3S(qH2jTlMpletEV#Hh#;_KJEbh1;G;^?|W73%-eIzCKB3OHxz)5 zvu~=uabv^F3Qp;$o%MY$9=~$bI(Y1sI*)R#+73?!qpvN_*TCC1CU-{9)w;7uPw=Ka zn`Du{%+2G1F#|U83_n2_-*E85=JxdmgAHRN{$}T#+%O&N1LDwm^CEqV{OM>1jXCQp#8{7N=mcw9y(NLVE5<4;r8$Ms@H=~69P>HyRPeYJT~<}LG7=X%h&&W zSHA!D)aLU0wdE%+EIlLt??e0DKgve8zN>E2a(8k0*7~o6=kLlly(bkO!w>el%yh=- z&%N*au1}r&cy9T<${+u}@BhDKjwN%U{)K$8OrD!D^D$Ph3Kc(1;adh?y81nq>22pZ z(DuLZmCOZfrL}?KtF!e>dAr`Q{(YJH!vDC$+uuUPPeJ3?*)x#NDDqq>5yCbFv`J4V z>D}q%lN#@Bb>FDIct1xd&8MpJ`?;{%`P%Akg0gOU2@VU&&#P{5GkShyuIT}{#p?B( zFP*PtzFPJAimAq@Jum#XH~+izK29zLu8)1MGH7T>Hu1;fpuja|O;3J3?zgvl$|xM5 zZhvg+J>i|R*nEU4uUvihmUq!joi$%%tNfZvQf`0INblFWe`@RFo$ibD4@e|Vkl6gB z|66V6#G*^nR)ueA-BRo)Jbl6bHJvfR;>%@w96{?==PXbNzJBzQ1XK1}-_^D4rr7~5 z>-?{6`}f6oL*fmcznSw@;|*?oS9Lq(8NDj*qSz(S+}z1@9X3fHG48pZnW7xcGdPol zPNXO8?DM%aA@x(zkEq97K30{WHLIH>0(I`OA6q@uwQrA^Y@~?&-)FTep1SZ&ux<)m za#m9K*oxfm8TY44XsYL~e7Y$4MEqlumLlW(n)CO8&oNS-UmDCCbIaDWE%-`N;#nz? ziLVdNx;B3w=ijAke_giQVwnt@XqM}|sla?R>4Ony@J4OtTo1L~amy5tav-X|exNXjhJpKHxU2;_l!M(D_I=)Lh zc;T(9pWAn5(mVg&MAc*abhANrzg_vwx&D{P-L})}zh3q0*H7PAk`KmSQNf_mAc)PY?c-7xJmavdQi1zVs-i#7xNj>~`EBK_@c$#I-NgvCT^E zE}*kQAk$KdLH(Hw_5SRh)Tt{CJoj>@7hQMTTg|dGHPMhwL$da*>y{=94lf5B1)IsY#L* z37?dN4|_^|cN2_aZFHIT_21s0-`pCKx#@SJBE>vq7hiKQ(z_GA_>C2thMCdCWS`>L z(>J*zJI<)*F45PyvE-_7|Ch{F?;A^=Ec5erJMDS5PS1GLw(D7-~K_ zYVk$siAM0;3wtm1`HLm{Py07P{^m6erte{r$8;(Uci3i0RyX}iId`#Nrzqoi=DPQa z-TQsl_e?o_WAgRO`wfDw3vKeJ{>o5Z?NBHd1$_C=ZVv;4<1dotEu>LH2?qSynQik|4O94EZ<}f zS~kkN@%#EV+ndu*%!N?4u2%c}e^c#Wo$5Ss`k{9G?`J2EeK1)(eSZt+fUB2gZ%)qNl=kmV z{-4L{PanirZz|gF!zLN|MZV_4!OV?M^Z)OBcXGeUw-ga={fip^-n{=aSs2_8v?@HZ zA@RzNcPITDZN4XRXtFz>HU%v(<=p@8>Hd!&zHZ-t@vQK~-%j;b{r^g&zdiAPZ2#HN z`A^om>QB=b*x%JZEI-{V({Kw5`OUpn?m!r_kDg`|NY_nKR@nQ|A>zN+uR=i z_fq_;QynKhPwEX!_=)v?q5i2yxepiSm zw+p3joP56NSyiu(#if^gZC!Q=4-6T$%-nXl{e((yowBfVz;Aa;!?qJgPJ|t9U{=%* zP&eAs@00PqR_}uJEyhg!+OGP>_ z{&I1NlTsBuAF|{BtyWL|KHL7+ZvOgz-S*{PkC(72M?5uXtN-l2zt-!x$G@-Z|7=@s zsASDFyJ_zUx7U{xoa=A7*IS(z{HyuBz{9=ZP@}BB!Gy@)f+>GrZk)+$6c8X{#&x#z z>~j;=!vV@!Vg-BUCa&C4`ev%c=2>FR)3SfX^{ON&B*{elIT5aWY{!<&sS>xcBD9OY z+o@ZIWBcX1eRGEbU!Pf|}7uaQAVc5_es zk4O6Rd8F6J6z^(kRN*~*{Zz7m<;qT;wk=b^OOCp|A%`u^Tl_Ql#AUuensrkbv^Xs0 zjd*rpzTEtW?^75~buYROsyH$wCt51mF1|5u&j&f?HpLYQcTPOFHQMuR-ks}GW_~&b z9TL-L-Mh5=`?V!&=j^yBmLOAAd-s+`o5c32-ie0~gua@-YvMtPXHo{UvhDP~VlD(- zeAgwGtIWUtm*lU@nSC$(e^!K4^FQ$Z`6JYKHh76_GmnVu)3t6BS-U<>4o}rqHkw*? z@y*n08kg*Q97-9!>@}Su+M}F&YVrA5_l$Fe65dBeueHBA|C_}k`?d1+>t5bz_FtPB4a%>R9oe|2 z>d#zwWX~pz=%weTUofcBaS@Su^<3IL#c9#!mFL~xarVe2AF8-;PvZZaRSv)Ua%4~c za@F~?qu=O6de4q_!!DmoGlWx|bk!3qUPpYsbt-1I#P2y)7tQCmf>(RaEj#~`?d6HD zzs@|j`G@^(=NJCVEmzq;wPWJ4Gjp}8n_9iDFk`v>U477QsgM(g@}7EhALLmZ)PI7Zd!CJ$ z*X-@)68&FTm9OZ1yYRaDt-Ly)ruMOk->+(1+oct%7GTDvW^_JLq;cCt`CAVElQpW} zKHIfz=l8+}iK}L^22m301rA?771}I$>nu~7z+n$Lf3vEm9VbpRL$^0Fz< z`VJfZU%?a4Uzjg9`J_VgLDi%)`+YuHeafG1t9-EZRN|+q|0Pu_Kf(j27#<5;{Nqo~ z!ej~Ek~zPhKbuUb8ckT20v}Uf7h>D;sZXz zLqM15qO$P0Cq^e@zCUqZ?bB(u*yE@5@9Iv0+y73zz3Fv)hy3EEd;Vv&QzwZpwoVn< z9G925;L^0ErdmqdUF)sfZpZJm{dM`gNA#EF(+xofbyW0b%>1Asa4KY~v60J0mzJ+` zDb<3S^?Zl_u5EfdbKCw#lTWXzf7xyAc-Q$w&>-LiYw@{K+r6ucUT|6!_6bH_G6c8u zdla01XGyKk49|~S{CI7S_53SGZ>`7_z2)-L@+s%l1*yqGe;JSE=k+YRHm&1L`wiZ| zFN1IWYrApa*SvlHH}6*~)w2A3dHFYU?xLE%FaLo~Gp$kUI=PyQ*GFQqgWWMB!Tiu= zRdYRN{Dz&Kcln!n%Eko;dZZt_M~T$7P8- z*Za;lQR{!bsv}ZB!sgVY+IOqBoZ4ERRj(~+9rscne2`xB&uW#=GR{|DxqJKFyJpd2 zYBgs#juyNI?eEGv%TIUuC?uKw$$g5VQD|c4fyDw}_bm?k9qoAYWHL`c&ab)9 zlk+4__OKTOO)`9a@_WSU%PyoChs=~pPF|#v!Lm~4THJ~$A7Q&)7|KH{L-@Go+R6+j%-CyN3v~Q7v_Ii ze(!#h;1jzqjFqPjMySola*$rF*ZO)>P|tL(Q~fUgw&tEWDlRh@DfnbfRbHzl>=i%N zxI57+@tR)8^JRUW+_lT+YiR!Mo3y?AZQR23!Q2*Y%g>qfE%B8GAEq~B{mv@*VR{l) zw?f~~SAM

dXr)$LY-vI=%$t>9ya_PyD*nzP3)SnWskUgUOb+qASr)LH}k~7iNDJE=4cq~4^1yv6sqPo)lz-F zVQ1ciYj&?va!zJnPINi`Y9;6OGrYy^iYtxoO#XCf+qSo&pKk9;IC;Q5p6RXQzC5E% z`#cuQJejc4D$Mg=OttHiZyVaaEkCeAewM(6|>QGu?nvGGI`>XqwDTQG#s{Qq<8X0>ZHifktO*367W-8symE1KaZ!2U|NDji z_T!+r7ja+mE&j`B`iIu||7+gp|8>u|-}BYDR`RC| z=p8r+3*6_rO!{8M* z!u^j=y!_?4UoKJj&(Zr9`8xikdoP8a`gv&o-hFeRM}IUl)f`)JRyy^nRjtf>{r@M^ zjrP1h)d4;ujo-{XdQMvr=)jLnGtZ?>cs;Miq0Q{cEZ+++_l3`1vzx<+E4Th>v7hwY z;~!r>W&Cxt&D=`t=hjBId29v$J;QI7*vGB6-6((YC+Jv%$)EIZepny7{KT23-C)zF zUthj_y_uZt%;Ji@mMhga&FQhb=3Hggy(hi+>#u#`nVdCo(?9?CwQElJhMjXx-PX>n zXU=?LTlwE2uK4eM@k{sR)*pXWsN;A2?8@Jnm;b0=ZuI1zCt|a+eUtpxk6(qEzI-v< ze`?M=C56ut414yifA}>#op_6KUsoj z=7cwFJpWQtn#-){Ipkoz$(L^n1lj$}$qGupTT;w#v~%9=l+7P4pW05l{_O44ZTl7f zrUajmFsNH{wPEqz=W!M<&m_mkpMU=Nw}7op?kDTy=?k_l(+xa*@^X_|#7W_;C+2>V zf4;<=zu3w?=z52b_Vwnn3H*`KQ;b!uuRfa=9IbXr5FF92n>-UIpJ!XDZp=R0>D}pP zZLgo~y{9s*f7>2EZRzD@&XbL@Bd4zXviH(A^DA|i>do%tF!_J}IOE=_`^w(6sm_0_ zJZfc@7nf{h<6qt|%`koQUyEnCmYL_XclNDIy|>`%&xyOPZBZ{W&F!;!na#X-r`dN0 zwyH|-Ag9r3%>xy8rpz%b%CVaje8qG_;VI87GlQEqwn$4|dUb5&-g&#;uh{ap`s`yj zgTECE6SS;f=N zhU}hcd2-J!i@^MK6PxE8n>VlF&O!IKtorK8<-Nv^$CB^Q6gMm1^X6P{O{#s|Nd0Rzds_s&kNW2+Fy2I zUfewJ;cO*|%?H_<&gSa>&xxCRCjIj#s|F4E=}p16R`ZJGKB(%tmzJ5yyw&{0@hfe8 zyh_rCFSorb{NpEm*8LXmi@i?vlJh4f2-RB6y<(rYhSRLdDA?efzuAZNW-s2d*}YBN zx9rP%&far}Jz^KXwPc;!zsXeh!nSR_k^YI6m@T}I{UEu5Z;lOd5 z8yDu-y*tRZ;pT%4iD{ojcFx&yE;nJq>{}X7|D9!CqJ2nhqG3X?`~LYk9-LZo$8|GL z%suwn;qUI2Gp5NUQnTH&?)%HLSNU}3%{{hkv3P@wk?r5Qza>4NE*?JT-u5ckbe(_k zVYdH;mt#*yUIJy)lmxvDkLpO_C(5&nJWgBmY}q-faLJ#zec-T(nVR#1dA5<6q5l&( z^Ni&V%rnDhKfm1e`>NYI_Sy1Js%J0AIk(Krqq=3=Jf`08$05xV z@pePcxRS;~%ih47AGW9HR96<<8K=;`P_fz+Eynv zKgWZMW6Eu>7|A^qsyL9jM=sUvHcw>yoy(`EpNA~7sZ`uh*%o(iVJ6epY@5Ur!ooBD zNKD;x47^?VN$Y{j4b^sy>N^x9ZoGQjCpvG^hmyxqsrR9$RO`1~*8G!S!KHuwI9R<4 z;eEy~aWc#8^XVjhtJ6;=U@M@Z#DCG*>(_Q=98`u zyZO_jGy8&--j8TK_rf za`!Iy^Wx#1{RR3PJuR7ECzaG}do{hL4P0Wfo5@7~c^UREai%@TW0t>L6sztWDY!eC z|83d}krflZy-K!Q&U#FqN{SyN{Mg1zezkRhwaSb1ZL-*{(heIuQn&Nl)PFiJ@3Q>{`K!GStQMz zO?hu5%zag{26U9KB>#giKfdH&>3{suB`=}IEv2IVRK2V9ybFEBx4th~Cv9Y8$JwTz z``RORN&Qd%Q#)**8Q)XCskHq_lI5A_$#qi~&R3tg==0ke#<%N@lpk*n-T$N*9HMFo zi)RV@n#t5Wd30yF^d0xgoU~j0-Wxp^)qLW#3wl18_tRrrb;+j5$9XTjc3AXzBA=Pt z@;%2t-P*JF;EoIa9{X?mK0fiI=fs?64+@%80pd~3Q_e!RIV{uB6M zv5As5)@oU|gRIcI~+?A|`>+_FnD>2k4G^&OUpbyZOZ+g5FUX(hD$ zW9^$@v+q6cZ+(=Un5o$R>(-Yo%GWikSIx=ZY+^Un`?i&p_>})u#{YIKbf5M;w=#H* zuKHVtZD*r5>n%H$zPj!t)LhPcb~SIXnZ?^>FH|OG_t@EqZ3}{mt&JZxUvjbUl-~XPR@oUu{*4es1)&b=^C`0Su|$Wq-Wz(680asrmVW zReH{4cLOf>+q3mv+x6MZ?}A`^y$CzGSlN`L2J&8z7396xm@vIJ9(4MrhVA;pZT$| z(r2sv&g*4v9p2&o%(K=!DWzuFFW0K*IJ5J)Ry|j~w%vKW>_2a9-O-p>gJ{0bA8xRD z+{)CGd#bs8neN)|iytN5PVa#XReW+vNWRN$x9*_s>q&oMLJwN@)lGRZ>&_;H7`9LpUpCI!`JvA5ES3|3kaIji%B1`@ipf-?eG#y+_Zam=FAxXo|Vd+;i1k zzIMwl|2a1b{Et16>s6{R zZbRku$EWa=Zq1d`OyBZeY12I2zc2SLwx8Q(chMYl&^YMY2_BW24+q(oyPj?^jEMRE zgxRRnU}nvwMIwd_*}NzAUhccS_khyhACLQYS5`ACAGN6g-GcNt#jZ$J@{4_OtIs>f z^Vd)GtkM6J{3L2w%8q4oZate=G?samYrYkG0)uPm)cV;3$`zVr#_~uF=;{; zi|3YUo(e&$PYKLi^7Qjm&GzdjSkw}<^7}7b^LlH(WPL->q94J_`S$*P-?+1Gq4k8< zJ>gUPd6o-Fp1#MaP}TXdm#2G=)Iz~q-yBYzD$RZ})4yc?&RFHkllEQzdNtesbja-L z>>*C$FUeh-vu)A8FSwd&TsFRf;w$`(q()2@kM*&_Do z^7|hC>zuEYH;0__xbOPJNbl?NC6lL_+NZz%vfTf@z1FYGsWTVY-<99&=r%<}B4pj< z;|nIAd$2V#kRwA~CH2}St>Bl{%ioswYe;!rf7W}aUgQP)-hSQ<0l$ zU?$OIwN7I3Jq!JVGJ*1?M?6&eje^bHTE0t|+&b|)aOQ-6Oh4DYn;ga~w?(>biu8o# z{9E5EKRplwa?i7CzgO7DX1|V_T_kd=?mK9=V6fPkwfYLa^;Ol7>tLQJ2v6tCRi9+S zR{N^z)xO1-zX=xz>F`Vuir5oe`~Ge{|Cz7ak0-r;;Wjltb-~n!Rqrmo)R5phm2^&H zzL6o{%=NeSN!akPzkU37g^zcBt>e3uTapi!`Z_<~v2MAI@>89!u`b&l2G#FsU3=R) zcfVu3)&2E7-s=_zhwhu&7}l2k_htI^UzbmVPEJj^P%-~xK6~#LjhtSmiOqBDwp@I8 zaphmOUu{8GJH%aI_eyU0exJMeZ8Nb)s|LxgXx3$d9D)edf zz6DbsM%DkSjM{BB{nW+zcBvL8GT8MPSq?f)Ro3O2n32~tukgiES;k+%;!dk)O!)ZX z>%=c%n(rISVzk~So&6E=^IlV4YQ!E3g_13&)-Gf_Vmf!1ruB7+&a69+{=7PQzQf1+ zyusIB_byG&{F<|J&c%J*C(PzN_D@{9_VRo?Uwf;!J3^wY*MkNR8bPa2k0)!gO$%4s z$!C&sL23Hr)|IXdC$>IqxpRKWwn|V+5$UzN82)RDd&QEE66@}rcS_QU6q!=2&$dZ+ zy4SPW;lE~Qf9d+@ylne|+eR1dFTMJ4Fv_;8@TuLi9-~Y9PCW6HsXXyT?sVU&o;CVk zl>V;tIeDS}7ek@YUc(&8m%BUW91r_9#pcq4=uM?N>(|QOVb0zEb@}{@ecq~{&uafY zYg)C`{_1=?@yU*EA|?haeB!1iUhq`6XFioZcZ(RC%ulPIil?rezHQt&>vmo7*@_A6 zmyQN}OL=L0YVM!u2_mci8Q58LeX;-kMXY4~nXHIIQHwqPN^CeIx&DlEkN1ktr{-*Z zo#c|1Qk$Anb>^hY^;JIBZMutV#V3BvdFk(-JNI8m{j7h_=grf9G1YQaa`6lQuggIP z`dm^!wr9J=lb;74hAh5#X}7zJOJ4uKlKU_GQ+e4W)15;6Q)Xq%zdmn{jr|BZ@1_3{$KZPJ)^t-mB>zZ zJhr{=WBs2G%m07;|KZ`}_y4<>x1N7p|4;spckE5CY?Xg!{QvsP|NBw@U*A^q`3tue zyF`g(8Pl%kAHQzj|MA0Y&@|xvpC9-C{!m``=e_Nphy8y)9$sJnGruHtdcwu?f0bWw zNT}4Up8H#~-Ke@~$@A|ADqYR4XD_gO_ta&{bbBVZ&+)$>?63Xt^L_2F5BdM*|F7r2 z|Kt9@@L054!9RvtS!ze8lF>~qlJLbIoQ{`mi8e9aH(|L68!nrhAU>vHae`Fg*D z|0vgOn$8~o)A;|d!~6fe{r}pN?ZfK--S_`YUbp67NzX}z$NT^J|7TaPdw%`D`|_jy z3mO<7>{6GHQf^FCef$02_5Yt%%6uw{eQ&KLb@cN=jzjC~Uh3QaIV4{H^C9@~n`09} ztAs4~c5HkUsChlxUm_{Ol69t0*A&mVo_DHlg2^ZLPM6T=d8Yqo`v3dw`Tx@Y_a9YY zz7%(C&2)XG+r{hba~pV9{~urT&i|w4md*uBPc{Dg zQg>l~+%tb+oi82dk1Q`btIqstFN>W0clZDA)iXu^zO?CfJa+zX_W#L~3y<#D+BWrp z;z8D9M$5IXdKB;*JxLZx`cc(iao+ZBrQfZ8Z4&ms&VWXpLYZ&gEB62JLhLb{W#CWH zeEGVZr!tEpcq4fDk1dlrIA?}SUrkTu`zy)kG(P4;%}V{T?W`n5g@b}!m zF8_9^-*s=k)4Yr?pBkF?etR4gBb_qm{DtF7KP}y=Q*`OoqV=2BPCOtmp)F8F_OZi) zi}%VyZvA8P3p28tvr8aC@wmm2%sa+&_Wb#}{?E6UTUhJ-7Z_sEZ5N;TdgAfrl~ztoUGx8aulrx(d!g}Q_R|9j&QGk) zAFTh;6J zj~w`T^P&JJS%Kn5-oq!fI21~8CjC{DO&aAX+ z;`ySYO^1~4eXBh^OQE^&qDEIw;acCC*U~$m3Gl@So)n&PV#~j_Z(r^7N?oe{uC4?v zbrMnjSE6|$#%H`)dss)SUYw)68MxwU$lb@fBkWiOmu&afVr@ z_CAtFYdmwirnpD1*k3#6cGJTg`|w+nmWvyfRj#^dB$aYO?bfYtzAnEKHgEjAcTe$4 z*#l2^%ZILGogc)^b?V^sZStGBeqDaN*#7Rh`D!OlxKDU~BDnX*{dqnAN@ku^XnxS> zK1o6|&M-%!A!|#-gP(n@FC`dKUM+fVmtxWA&}NfTM$JaC{z~6Vr zvnLC`Tl&BAtds~{=h^SW{WCZA=OU>#L1v%14S{RFA3JfaI$9{^$?~taYIqbG+3YvA z%lKREP}@7TwdZlne3vJi-^V@Jyz2dGf6;3OkNiE=dG`mVX1eRLOV;rI+}j_^3f`G| z_uTwv27Ugl0tF6#`;`Ap+wyCo=DU@tAx3?_E@!HN_FM}b4o@wbsRhKA!1eJNM<^CvkFrx1F)&dMoL=pzhV`r(4_vi@c1}C6Yf> z$xl6{AHU^`opV%g?QC@=|ATqQ*RkhR_?LAG)^jaUW#C-9e?jcWh5djUj~}(7kRWkwxi?3-bIj!{6ATY^-nIH-Yp*R z<&WPd?-%RmxYzkhFK+FNdHwv0#_ahjd#=52>h6f){=2egfxWHTWJk7U?;|H1j5qG- z`}6UHw}H@~huo(m93-KRf)=%<6mY>_xH~-Cv^ridFt= zooe`?7Iem2d-31Qe!<_xDqoiWcCKG#f4A$TLUV>-huq8pwdtPEcB#uho07@@LHtjA z{cq{Jdx~#V*T*wiKJ3_dXlC)=Zz4^<4YgkUy|O0=^(MTi#Y#od=e{o2UHt8N*bD#n z{C{7jFVX#V`LqOhBaPb@p9&F<)K#Y<-#?XG03>mdOqj6)d|s`=F0!y&0qig z`2Tx{@BexwZ}aEX^nXF&X}o*?F=alv`n~7+6{TJ3m)sN9UF@FIb>;GIt>c;OZBJyB z5AA&szD~3GmxliJC*hKQZW9*Pn)Y7bvf6z8#gAdz=K8-%%Du9MD|gYKIiFgxE^IRF z{KxRv+}v&JeWgwQN#?8UTeE~Ka&s@N09}$-JHf8$-R>#*MBLO|My3{{@s*g zp4@I5P9^gEf7W03drIHLKd<9|zTNDfeCuDEj+n>{yUX#H7Ck8Lsx5gTUE7<;@TCEK zzupV6$BY+cQ*M8nwxW2#gQ-QU1kZGOJ~@%@SM?dReMa@y?AIrj`9rqQe3|`S@tD{p zw@aG#-?zNpaLD#~&%%zF`IhxwRd3v4-(QvQyCr{N{ylb3!3(=_?>b_!fPSV%+UgpO z7gGW=re=%uNV&b^uYc1o52~>&_a3)MQi)z1@%~`OGm~ZNn_X_-pRn=q)QyK9B)?gF zW9=VXr~NOpc|!f|wJa;69~-RN*nKf|PH_3uvp2RM+o@W7JzM>$)4JC-;X7CUcD`kP zJv=4CIycJnly2^CmlXLUVGP+@wo3ju_3g?O-{9EuZ-33(WN*5E`o5NbCG{8bf332w zoxBC#bvX=kcF*)D3AjJ{`lEx2?!U&`%00jG05-}-W5 zTkgDF_D?wFFNCE?_G?WpT$y>I(BF6Umv@2_|6cgKT%h_w&~@YM%HN&`eOdmyxz31f zug!(|b^GEbT%G@}8MMA^vS6xIDBC*26`{|h{yd3}x0ZB?tNyvLc1yH8>wM?i_s#l) z8G4i+PYGTb-E&-S!FrIRmLKF~N6bdNl{-mS;_%viOV~<%q9Q)%@JyNV&;8`> zqh;$aTwlp5b2#|9H2bAxy$3A9nI)QUOD&ZUd6vCy-j=m6xAJ$)fuyE;=bb&tqjAxo{u)mO`Pax<>on7`rLv~{laRn{-GA74J*eSX#Fwf0x% zziR|no*EN6pNTHbR-eb2+@y58W$R=oxy%y_d!8_IiOrnwySg&^VDjC#Upp84*qVRU z!N{&B`qG5v>~Hz}1&bQ&Lgt>#jPaOoYR=^IGZF+Q!PYS-E|)(M5O(TeZ3_0~3<_*p zeECat8QwbXV|yDJ58w7uzizKmQMKEj%o^3#`%Zn!iE~({tNz0OJu_$+4{~3iV%z#t z3j$`I(J70YIY%qJH|vFDo5tfQN^b>koqFW8A9Gm)U#+72-wxQihM?0)cB|GcT0Vu} z^Y9KO|DB$v|7`hkOKygDN>#B}?UjqCv#*Qi=Kc2B+u-Ng_j{Eh|J4cGE0sR&>G=`- z;^!&Ldc*YkFU!9({ykgKGS7dNT>z+z=7wx6J>u}?(>E{ami4v+w7`MASwH)0oq7~# zgZst#T`}U#J<^BQTWzTqx@@G{Y^c(Iza#Ini;GK~(68W$wZ@VuAEJ-^saEDT;Qn~W zUOlmK`J8X}mE)zROSt~)X|t@%w71=EzU@MKUHj~>NB$OnKAS)Dy6KK3)=Hb~w|!cE zt7W;*&2y*b)Lxx$XMe``OJsdjy$_q@Pv69UUs^impG-^wEoh!tACO|C+3tGw>#h3i zJ>tv698z7}=C!Z=GV`}#(VC4bfBN05T+;8eE;>^1rhfF#;M_yOFRIU%g}J3Xsk|`% zo;~P5!Jruv%ub~&60-et%TF&;zW&e0*V&6ar!Xo}eJcc6ll07lL zk4y9BU3xaFEl1bgrSJI8eG>t$JFna|K2ZGG<@N>MFHO~(Gc(N9 zl!|!tzAn$sY5EsZe+slB@4|dL{>_eVYCJO{)@9puP3SOQFyq9heOm0oXR5{Qf9_fT zy>(mPVu9A)N1GLPs@WQOo@N4_B&h#5T5;{N^SaxjCs@9dY-->+w#fIe0Qkb{>r%CD zZCg(GzWjR0W});J!I=^#=FRDNGkZn&Klt18)R zr){kos6VA-b#3?bs$0S;f|hb`e?6-@H~${U=04COCb@|Z6&9O&`UI@b(Dg|OogpF8 z<1v*RdS|wVWoD(w38!A33DZ~&K-T7;@m&2f^L&WqcC}y47rmlxr#a|f=%2N1TJ|;5 zRp)!Ga})M{uv&Wk;?lBti==a{YIl^>xIC$}JU)M3vhcDu=jL_ruF1U$I#KiLe7V+> z3eBxvPfjiQ*rl{(vbR;HPsr4@{ns?qCwtp<-I^vGpz|r>LhikJ9fvN({c^0ntbgg! ze~p4;YJXRE*+CBfJL3wO`%-*1>(fsAqU}v)7up@HGyF>#URq~RqCF zk=HxywzKu_GF&Ec0d$*d|IbIe&WV2ZnSF8nt+W(nWu@QkrE#@Sz?q|iACx_^BPZDW z&8&ZWq71arA*8W0_2IUnB}Wt5Rw*1vG1~cLq0HVQ1+Gi?_Pb}ze^D>Slw!DnW0S+; zJA2gXL)3oSRz1BSCsvY@6}f%URrzOobJ^dr@&rHGv0kcQ;PK^Uhjm{wojP}C`!Ao$ z9($GEoeuMgCQsX$rMUOraod&M;kWK*Z|-U!4y+%jW!9(19U2o;;!Y z>r;Dk`lBHym*>5FoEJG=MjCP*w!EK(h33nry#?^SDc?FA+iaw>c|`loEC1X-jdq1L z=#o{Ow@E>cf9m0VP(JPF+Vr~iozwM|l$1`t@OOR3-rU1`K;aWN*VprjE|61bC;m%FmW>pzhl z&q1e*=UQ*vDD!M<(XY$D9qP3}2j(eQIIIl3Rc1K3&ncNFpdb!ZuG~4?bfQ#@X}u@6 zyY=0L{ECk!*oc|Gv}m4_^iW2kf91dX+>2}7w@VlwsF>8A6Fslvgl)k}`=fo6rZK4e zoBBFR3{t7f%)F_f+--a6mR`yfIp?s;0q<7bh!olBH#0X9)b=cY5p3GkxNq|G$!a_Y zr@Yy_aoc;#%Fkb1UEcNT{?RmI5xMG?6u&%Y8F;wvlptuIgV)>>JEU~iRfjA-Q5wr) zxW(PHE_lmd9z&koU)~8T-%EJasDYm(D2NH z4H|`ek3Cp;WU9-pJxa|RJ>nK+$Gz7)zi7r#{_SH!ajL z&FiCZrTo+GEYVxBy-LXr@~?MX6<%4Lw&Z=~si~8#pV`POD&+dLySVfn3HxVa#3IF_ zVY&6)Pap7@!c@@4u_F$x68pmXwrJEloQ&S-aBqr_otJ6(f4P$@LrlB&oUdRxw&7m+ z`krsHmUC2pz6jt^y|Ph6(9$US*X4OW`V%0%7E2>gW2ZLhOtqi0i;K-i0~@Uuy# zA37=6zq)wQk!;Z6FfPk3&hNUT4ibLs)uXuHrc36p5~zP((?`No0w~`>59hfl_~+0i z_4zeLzmBR_X#UUBRr-E3WkO@%Aqk`p^l)EYhYZ~Sttzs-!{p#Ot- zj;K{Kps5-;|O!_6h$#w(eZ#uX*CI`v<$1KPKFp z%>Q@gzmO+8XYv{)eb}_&brKs-bam4qVXl;HsYX{nd7*+Uf4riP$1UvtqN=X4=hA)) zhJ+e}ik-(MDg+zm_xXnsAxDM~RKO`9PC>*T>mScGv2d{;qMG_}Yx)aKN?SRZovR zyka6KXlWPx&tyxTio)zYERr%e9@_W4)32)AAj`h)>vE;zNuUMgPHX#RH@`5fn`(3H zY^KZa6`O1)S|~}m3JO|IpO^1b^;Oxs@(2GPFJEgZTl*W|re^!D zuO8o>bSguf^fR~iZ9917%HzA+WIomI(N-#&?<0G_@q9YlA5UHl4fgnp zdHb6Gh16?(n&ZPJS<~O-zEMImF7koSi>xgk>bRU z*VA#;sYf*W>H>Q|ChmFtjt-fA!Fs7E`=FEj%O{-QTP(l(()?HcuJdM}1YI?? zp~A2aykk?ZiiwX$k$b*PT;zv22d)$;ux&{<_dJy_kMJA zocJj5b-6>`Yj-VgJ5^|kS@k~U#J4X!t2;V6);QN|ZPMp4nkU%{x@Y|93xC&dt&Ycx x7YB+63htEoyYj?7$m%=1hg|XgoY?-~-lIw{W#4;wUj_yS22WQ%mvv4FO#m=lS~CCu diff --git a/docs/tutorial/images/func_80A87B9C_diff2.png b/docs/tutorial/images/func_80A87B9C_diff2.png deleted file mode 100644 index 204eb8b4ad571844cd035e8718f791e77c1a5add..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40101 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

#ero#>DR0$x)y&mnRg^lU|ZaaEJx2p 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

`J=vmOgif0ufQ*S)k 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 b{~4F+eG`)ED%WOUU|{fc^>bP0l+XkKL^%wq diff --git a/docs/tutorial/images/init_diff1.png b/docs/tutorial/images/init_diff1.png deleted file mode 100644 index 8f92523e40c07002e261272e0a6e39dd27491524..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 242910 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 v{Oiq7;_yDGi$ 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�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 diff --git a/docs/tutorial/images/permuter_console_output.png b/docs/tutorial/images/permuter_console_output.png deleted file mode 100644 index cd427a9dc48fc1098dbfa4a617b5cbaad463e89c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58310 zcmeAS@N?(olHy`uVBq!ia0y~yV3K5DVEo6y#=yW}xLHPrfq{XsILO_JVcj{ImkbOH zEa{HEjtmSN`?>!lvNA9*a29w(7BevL9R^{>cwPB<1ef3&o#etO#e_t~8GbCv97-&@ESEK$9yA~kkpcDVp7P_rzrS;D{J&7b)@YthWzpw%cXvNsFIfmvkR>PS3o<-L+}+-&g5!g~xDA(G z-JgojkB)ZhANzV!+uutNVHOdGn|2JNeu^|K6RGAMd6b zMb~_520QlL;lO?#Teb<0Cp{B%y#3#KrvH4q*kcX#&nE17y>Kn}eD|&=e;&E>SAESm zS+kg5{t5s56N|2=rf|nrP1vy(Y{Iw4E8LH@^UF{3j?I;0in;M;>!GJI|2B)9c(Gn` z*5m(@++Tb3>W&%R|I#oa&o0(~S$W!OuwO4*yqb9Msf@gcjZKZ*bc=f333kV3F5h4F zLSHzmdu#Xnjc3enez3b<+yk-3@3Brl&%a3r;>CVsvro5BcrRXSZv+bMXRn{>{EwLw z`|8*E!WHjtZcg{M{udr}U9av~UuB9+vbLRv(YHxp8`n?#GVx)3V}XkCZ~nShLC-Hb z%76OBUwY~IVwY_{y4n9P^ndc@I^XtIy<-iAau!+MY2Qvv==slXFWGJ6RHq<){79S; zDCj?Lon&XUL&7+w@AORX*>!S~ANL=6_1K2z%Lj(oH&g#dWgeAJamY=$^VKD~$5nFS z{|T$?Qr&=0 z{Qr90`_KIY2lW3nulsv{PG;Z2*Xr$i&;4Jau=8R4clF7c`}lt3D{ngYH(tPE?)qmF z9Tn$PJq!++(ChkT|K@}Byk^q%K40$7J9+HK`VX(_7mEJckfXG*Zrhvg^`d&R-?%Fi z_^dZquBiEIXxO z<^Hgb-v6uBewLTiYg4% zEwT1*!~oY4IgSnroY)3rgwbLMg12%Kh)F{OpYCejYK-imMYN9#l`cyvX3(q2uE3eEP-w9*Zp6mtNE$%XQIwcb7)9 z;Ymijpa`ksY2UhYpBTGTpZIMN@ppYamvv^knm` zOHV&d-H|ZuIoCz`33^*kcFVtd(k&CD{EC@R;@3w;*^AR>>OO7q?@jKu>#twpZh7Vz zL$M9tBc>;@dfU=i>Ht@s66ikL|9+ocN}BVcnI@r$1PJDnBMy%JHJ(^{mF; ziR(`-ytQ}#y6pPYLUYqg?rhu#)Vq(Xb3bQiy#I1C&!;VWJ<_T|B1EJfOHH2h<-?{F znF*;plJf52tOq3Sx9<14Iiu&X@GcD(uJ&yyPmFiPEI+PSEl?|X>2SK(?vxGw^1Dhl zDCkS>yS!Yc^UYS?6O}dse?xN~v@`x|xHYM~USj^y(38ciXPxC|&u`}0yG8Z!KTWZk zPt2?*xIe_!{rqu8%rd3#`P>;3J1wWw1w?=TQ8K?)?r+U?$G7|Ud{f!1zv&m_(SsJH z3vc|r5ZcFJd2HtMDv8DO3r{*t3;(rosbyTU=(knQ6YOtF?8~-Sy#D+3>pSr;8gkY| zs@J9j2vlADC@J2j^m);>N52*tUw%B>=l;v(Yu`(11-um9T>0td^T2|8)6Qo#*L<;) zKh2ddR=rJfliimK;>l+({Hc)8)|Y%|eSfd570c?a5ABZIgeR`u*v@PBm*GlcV=kZJ zKH=R(YL-7&IJZjmwyUhUd8(tDAtlwO7Z*RO|`53thvfm`L&p3$AKBIYmL9Hajy9$RsJH~=5Xz^-P^aet(#u> zNk{%?kI~-!|Md4izZEZ8_;;4o;d;G~c49}l=a$)UXmHIphx_TkL-&c^@?{eJu0qdU zCA#h0)9lE+p3uWqJhksN)=kWH z(68$|@hm|6M)ChSTYq&HGM0S^&aIjC_Oh34wvEu+^9kob2~g_k)yT=gaaX?ml0E4# z<)-$!d-0F|P8G~GFV*`sabfes>zaQXVvi+H{IQ4U*cbJ^f>Uoij+oM(^~SL6jF@!i z*|zsjm?X`%o!0PIws&0??=ru(*3C#DHRJpzo92oOhZjEidu7J|T_+zMw6`w_(Ld41 z=ffv|Z1pyoYt5E*6P%{azZk_WyJFM&_z52yY*}UZOt4i-`#SmPQkze)pS6FNgq`0q z^R!L7M9g`fFLR>Wnd~1|PH#M$#n-8MD!sDLsQSp&-`T(a9lD>fdu8DjWo5Aru}kKU zeERc^YM0O7wlAG^NqC`-*4fj1fd|t0x-VLUB=si;%B5AgweCyf-jeuOaq*4E%X-$l z?6=cCuV>%QtyMX1;UAayjlFqWS315~*?YD^@q$~pi{+YIMH^n0xlWrOxR+_$RQ-7C zM@_*+8Y>LH2*3A`-}w0Pin^qj7YFU17M!*#z0llq-S}sRWlZvt_{zJ=?LVGBzsr%- zS*nu6S6v@_{$J4CzH8eepRaIl6BD!i6}e%@1!LP2tJc2%a`{@hsD^7VPnl-i*UE<; z?E4llPq@D0-x~LWA6K1C(c1V}cw0)pQdqQ+sBO<Uq%;iz9z3=KMN(Si)!(@7mT^>i?d)@4B+?hR~&%N1gNb z{Oge4yMVcORw~cz7l}UqxSk5c9ywvL;QZ4x4fz_c_JW;}e+8z$nzLi7{?*o^Cccv? zzqbUP@0x44Z*l+mH;gTLDVw)Wko#k^l&{h9MOS6FLUV79&%RHc_F2N|@7Mo-EcAW) zpQ~1;w=G^xWZV+zpc|&MWu}~1Xm0KDci+HhW z*|FMvkBy9NbGTkA*&SQd!>6>6cUj?q`eRzs3a`rV$QK<+n;Ls|*jUNies$GUs**EjADNxs>< zVrAj`i5G47Zpr*xy^d+Nj-1c*o<}kh&t{%GzV+()^$7cZ-knMBkL`aF z!?kz+x5k){(`R_cKF?kxFWKKxC(2mgcIF?;T~Mpyx(}p*wak+H?}-dhou>!ZK@Pw-c^__9JUtLgoQr}g(A&v|g&k}viDdKvAq|MB*BPVFpy@xPjL^PCgY zbIv%b|JUw}{?GpSoa5E!+3DNLmVXM!uIe?t_U7=1i4Xs4r^~cFC^}m%URV2hzsSs9 zTeIg@Q&!eLax<@Xu5YyXR=@0*VzI?(&#z27RMuU5o@^0rYj1LY>esAylkJQw82;AR z8dawRn4IwVHzU6E(rTubH}#k270SM<`L*n_zUc$jGYj?ie+ihxlY8>z?i8(%uRHvI zoc@0ytcUZ2q2~h>*8GfIIsb+KG-tzC%l*rg^yHu3SvSEx`g-^IGus72 z=d11xYd2n1U2wYUZQ%Lr!js}RCFcej_TRWVV}icm_jIx9EsuB1>$0B|9Uc7aVAQKlI--r|q9_ zsO1BLz}x>fvxwG<^xwMFx#zS&c-0RVx7T`-vd5md?JTpcZq)r?w{~Gt@S7XU`~AP~ zoORgiuS@+Bbg8Rbu)V&v$MxCpX4*VLKtysUwYEIzY<{L-Z z)~vlQ_tmDm+yB)rtkUH)D_G>&n!RfvHt(<+%sqAxy)Dm zWwQEe7N2tDUzhq#GF^fDC&b^3NO_`NJN0Xkyc4 zIX)-wOM3RJ7fthHuSLGukY;c6X?fMQHBWa|RCmI`nhV@m5x@gs>G8SBNJW zezH|Qx7c_8_s(RqIJZ##qvzMl9(B)?NbgI@2+uz^&wx=)UK&r{{VyV<`DxcZ!$lW(i`>ZteSLeSJOOfnt4TdS3HgXh2+FX<` z*j>H;`kC}&-z*k4SY~hQi`4&cWA)F4d&Q=IF>t^CGXAvq-;3t$$3?}<%i=iF&u5guNBaE@Vuey7hs~rMv{;4ncEtmA#u1(w;miPqhgGfHs zzkhD^{B5#4aVAS}!s(=*e+|Ej&s427{QPr9tzpxS8MAw3cgHoHx%TJGqe=E>E|&kA zs(-flMgKm|o2Ng;^vb5ae%kZL@>vdJicP!Um(4flUv+2OkWhFr)Z>fd=|h+A?MgWF zd{Jt$VR-8c_C+O=06%(;DdeU_| zruI{Gp`iW8Ma&b@_XvrHTs!oYdDDp_%xk%dFHY_a{iDeL5 z0LK+G8e99<$ChL-<`xyJtFU*858ZL%)$a49H%(VnWoVoKSbKKG&Pk^q1s(KWF8o+1 zPd}PFS8ZYMJELfap zTeI`pufM;)yW1Ph;Jz7g85F!pUnd&=e$6T_R1~ANYr#C5%1Ni}%zhkQ{POa0|L*fO zkMgH1_BXPb7q_RP(4Wn&=EsH;3yk~D=4kF$P6?jA_rUxYn{#%aSslK9-vmav`uF$t z{&sqIcDDJ;szm0QH{ut{OUBDrznvR+_x!n;%QDwZpDZUSqY|_2=8dHbxufoPfsuHH%u{6|5w_!|J8-_sb1hAiz)GZdB<3G#mxVb9n;VEeWo2>S&jTr)#^1< zPaEq0=AK$|}4bKh(&4{6`{&b?kWch<9CmMCGGa^TNRQU z`bxldar|dF^Wuy8H+QrxKh_!_)!mbGt|O-}DL`62z1sa_{@vZamt*v2%S--wwIJR| zMk(v}LqUGElfM&BTC@w#|MI!BNB*76r7tfRJT-XsVUg}ku37DNd=7G4FTQ#o_#3SA z<4L=E!H!oAXZ0Fp>K2`l`OmsMzR9rt5`R{<-28W&&o7?;{>9_n|6k2%v^#sht476s z&CW-kPP=_%F6uEp|Mdj>F;(u!b1#lhdsgu`#^zdk6TfF7o^gYjkhejx4fom{$lUbkAvQ1zxFxz=OdGi2xwej z)wZ-!iR%IV2VN|G^U`SAoL6=0cYI6f-@CZf&2OvMY|BZRv!1K?V0AfiEnvo()`TKlz;IA$`?+MK6$GCdtfD7%7urPY`yM_{z`^MZ?-y01F5#Mj-m{csW25;~mG@1S*Ap#T zD5JI9P%Y_T{VmE zIce>M)8wBTMoZ^t$Nx)E)LZdP;Qq#my=Ob@l7(-d@(+v7Hsp*gtGg(iedfGePtL^a zTV<3Ui?5ff`S`H${Fmzao84o6c-pzA6dQfJWBsDDU$n^PmbmZb82j|jdCf1fVs(&Kz4C~oy+e##ed)?*VMGAvnZ^Ws2n{imsV zTeY{fl%#!}AkCNmjQQhY@sgW`6AjyZzZi&J_qB8pH#Fk=ctG56p6&zVeGBH#n8Lkw z=Ob0|NrCfTUVePyy3~d4p8u|Hg@(tvk8wHp6ouKC{q)+Y%+5g`{oaa z_cDF^y1Mh{E}cjE!8zV--b}Zpoafa|Z~yUQ#Vw|nXO2y=Z@2kzbjemHSch1BvOE9d zjr*H^_vqGJaGc-x=%UQpy?QDOk57BuxW+84RNC@r*c#`4-D~{GcH&8YyKNuc>bCvH zr{KRX)_>abWtscr!sI2-CCe5V8^zDf@hhJHhUpBXg!lS&;=y$8>3zcWy>VQBtR5{i zRGNMHPJ7HzSQX&)3(|#MW;wMk1=PFsEf&K!dj4hN$JOWe@BI1o|6ieBMmL|mesKNY zw|}$Ji+nH7VM~9>|NrTM{q@D4|JUhH&pdaW|KFqAcm98vzi;Qysq)W_&epB5Gm2o* zlb6tCOSb>D{{QY7RhMJb*X+DDi+9Iy<;OwU%;4^@*fi%)4rXP1H~#;1eq6HS!3z6p zeNu0{-#xq-xqXiB|GVYac1G5woZ%A{J7v!E=TrXEP5r!eA2SxM_%PG|Pj8X8&vqk` zhy4GZ?Bn_K!hZi$$8?$5H-qZjPb|}`ZnVGn+&WtAbMyXxL2NfX{#5;Py6*q!YgAFe zgwDUw6Z*W@@c!wl++%h^J0visZB=xlLi@5U1#n#gKe$SVVB*%JeVC?Z^_V={kpC5Uqi`CS$#J?X1ye?uv&+Qm;3o&bnH8mlln6@ zNA{P^zlm~B4Q4Z+`DjrRaP+XQ^&5u2FU}rYwPU_ycds+w#KYTvbgLYz%lRvyY;^j^ z+hm_DzLn@66Y+ce3*T`J6W?>FlPBYuHYNe~Em(&P<{BjODhrbK7>9 zy;u-m8Www5vij&!o4lR!+nz1EdF+`x+w7jYlN&6uejhrvXyTsyq+^;gb}yd`OX>&k z@&77e&}o0QP$R>8S<|zH{f}bgxNdAZeDZIwPIrIU4e$F4KZO4IbozMuwiAlQe-1?P z9cuPD^Dy=f`;}`pc6Za~yW8J?&&U1S)quHn*8bM4T#c|lN5l*-y7?LPG~T-Oa-){~ zrNin*arWNw*@Z8Z|F4O@61*_UyU?(2f6cC*qzJxe&b zc3}_C`c?^T_Df31;wqo)p3nF-F>dYD?>pyl8Am(B$T1iE(Bg~lR^8XE^Lp8ypL--f z9seD&J?s3R$XhQg&wQM9%Hr5@kE7GF4yQhjWN) zRL@BkHHqIjJ@1R>vM77eZynhe3$>5W`nYoof3b?Nqx-gJXYFE+*iT=<8`xH6!_n8+ z6jLJK#ryZgk_n=Vf0u_JX;(UKzwiD_%P$w79VptHRek?Nm`nTo_%;F1U_77v*Ns0j zjO%aCV84C(VWqWyVQ)_Q1LNXN8@0UuZ0jr3S-0{xk6{^TjDN=&jc=y+-Ol8!oV&16 z=E#4)N;N3`yCKbmOw*7g3uX{SS8ryq+eR8+4&swDiUOrkw! zjpf|e6)897KksvFw?6vvuZ+(>Z^dr*{}Xm+2mje##I5z?uv+4ttkV}?Tj!nAvERJ) z;zO0+55yfJB&9CBHWhJTCh zMLnKrzshy1_CE$w=h_F%?H?Z{Tde53Tq=M1%(X|KRm8ha|L&_z3HikQWAD~9r6baR z^s-`&A0=bN6By}qVw^R3Kpj}OX8mg|R3?l%%h)nMS7?o_f<_r;>K zTq1X~f-l5v@c!7|>^NIvQS-*E(~)Mun*ule(dfTT+*%lL%ZI^rxslTxG#WwC;kNi_s z{&bG{xahe3uhpg@ikp}IirpN%QeL6#*WU9tXU)G^Y0+$P_r2*f3I2-v^PWdcefqGf zdR{{Hw+e}?=cRVfJO6^SU$mysw(rl~UH@lUJ+DrY5t~7FWlvt~O?Ua!@mi%9AhWz!5k*AFxOn+p*v@VAK+qC9+ zUn4&1E>7a!6!o=sN%O_z4kOWbNlnf+GV7jbobvs<({@U$oZvd=3+uUMJ5(o22X3AE zQ|7z%XSc7Ldv3;bWUHtB+&Ovo-Ur*(1*dE*{ZQ?D{?^P5$1S&sK0U5qvvFzNwHw;& zQujZe{95wIV$-vavc4sMo%nFhuAS#xpRJyJHuK$N*)ua^E}I+|mf!oA``5$Bx{N#X z3T;x1W~SL+a%Wrbr6;TYduj>ihRn*0o)gbZzAJ_oo;BXNEYq+3IP3JgOXsbQH=a}a zhjmHue}g5^5&l`hFR?8yz|w~Lykbw)*H_Peet!P)Msid9`}_O%SAKfpX?4#eyX3FQ z+3hyJlpnvmyqv%6q|K7G*(v>h3N|>Ii5;8GEVOHgo>W*HSl??W5%+|D3A+{_gIl z)%w!)I&u4IENg5u+>e|n-*F{=^^c>j$Cdf!|2%SE!+n0r4w-mFk3D7jb8HI^R_IT! z{`~ChvagROecfSHuay0DGy4tqdb4fj%Wth(_xs+~U2NH2vIg?Do4@AxEtZ!&D_i{} z{j~Dqpod1XM-Lo4Qejq>`J(Bny=P|aU#DxWCnSt!3F~|CrTsd|ZTZ1)#?4Eqhg}cN zaG3sja$WD`GTTWH7ajZ_7_;ek)J~bt9j-;jPv)0s_}!Xmv*zk~IgNWcIr)BDLu0?& zW|y*kUden_?5)qbo9+5?l2H-=&v6I09$LPSx%nenl7 znfV*9UOVwzOGJMH|IN;wjWgHIlv~?+ERw(W{1XQ2oQnUZ+g0std~2+qPHkJ$jr^v$nkJIXZ{q=bCLLJ8M++W<1^L^o4zickZW0 z{c4|F`Bn;kWo);F4i!u*I=KAUM%Ver?Jq5sNh@x!lw&Vs{G=y-+qlE{Tp=hd56?MO z7jAuxfBqKZJMu3JD?dFge3P1eY~|}ZpS9;MC>tNUGY8~5FRN~M#tkdJtbFi-{Z~Ye zDBEn-%9IeFs#2qKH6=eSxX+ezx%@p;pLyi^>Ke&dA<5|6-kNoXYMy!V&%gM*Ywb+A zl+4Y7w)&GM%O#~i*DYMvv0r2S_(zN0wK=|i(MF#nW7l0yo^IQ*kK^S-@yNdoNk{#kDLK!U zn#hy9plpr&)rUFrwbIWd_xL}FRGxnG@HL*4i!X~emEPYRw))77*`Fua8U0B4sA0h6 zB_3Bk$e3<_vae36YlRnZ_Lq6-*~)A`s>2>eG=Ji&wjV^pYm?| zeXcw|z5Rxc-ijwXxw3n0b3VLmH?vBe?L6=Ok#%!C{p?;{TITjK@Nv@FFtt2#lsp@{u?&`IT zmS?WX`mMdX_Fqp@-nXaS?rnU+ll%oYoQMk1_xN!1Y=TbQIg#)yo5PMAh;Re7I9EUV z%=6^2Oi8t2c+S}`Kh!Rk|4N=ClM&^7fba2{i9Tlfha$dM8hy4r6fvcJrrc5KOO*E-CudtbaruA}(dhEg9s_t*Q}*XDgq7b)JX|NUR{e3iMZ&nF&Kda<7E zSMW-Z?{c=SY+zmY;-GkYv)bhN#aX9+8_iEwkbl15cK6Pt>}BmXE7rdMQa#5?BGUgC zx@c`YzEOk!>WyTcnYw)Pe5N((;wK6mcJ_QS`4pV;%k|66>**@Y zfoF7hO6cO+}w44^Do9*U#jO%erj;;=ILu;;AFVnplj#N>DB!_VpGo^ zc(n0{*0G$z>s|U{9ehnYE`}Vrd8~DZp#Q=oP*goV^ZUYM%QZJ2__Xt02Tr&eAAP9M z%{PLjXZKXgUP4<3(WF=Z=Ep5T@i~*69eWqfuWAuI3xwYfj~dv%z-LbP)HCYhw; z*OT<4qfcI|Js)+q>D;l5?GPVKYrV31k}FHs1hd)AM;+T(A6dITvT|_kwiBDkG;z=A z%!QKfd@0;tmPdX0AX{mdKHc%ynXs$RCC{+GcjmXcy6(oTmw`50zRsxt><{^Kj-r}Zc9eoeBQ84E{OGgEy}r2WVR4B40hwR6{`0(_oa}s*CR5p8 zs~;U55&hjZYb#fsf%~rwj<+A@eS3UQ*_r#e)1_rEY81Er;4@n1tl<4n!Fl4b=2K6% zykwBCnNw*MaOBz{A>-)K`PUWX4b@*bZ~uNa=j@jW%v&M8-}YvLdv4j;sdG}cuXD9| zkhanI-Dlb9GhaTuG*RzSvd*a&A4HBkd))B9CzNmIiu;B2Cnnad{WZrc#^7`@>zmDW zQPp-k10Jmp%ISY4Q28rXF2s4#TIgtzyQ#M1RjW-u=DnOa=l2pz<)1xg{ogdL94gtqH6GtPeXZ`AwZG-IMx}09_9gw(*~~lDDJEyPE;`*FuW|DS z2j9(Xs|1nf9XWo*c6w{;J}lKg^DO9vyIb+r58RXD%?{|B);)Ci=AFs1>CE~+qK|_P zq{~SuZ?ZgFx#P&Mm+o%Go?ny~?~JnW`1*RT{oGF%9-Ln{Gv{(mILHK$6t+bWsBw7p9*yi)Y{eZTt7@Hj}ewJu|WJuK%IW{_pSX+5f*+@AN6QtNS2+ z|JlFx|6k6YUH`{odM2n{cTlO|=Yb4EiQgCN|K2}(W%e_x#Iswk_^!H1>#t90ZuWU|zo{f9DfdD6na5il;}oT>*{iP{F%7mAzW%^* zsrna-e@}m#%~UM}u?A zZ$~ECefeGf=k%*Yw`csNQrAn)$~)XkZQ+akIa9Fo?2Ma2Q~&P!VY)*8X>jp$)BRI> zv!DG-`6+m*@|3Hu&zeXxwoMz$wi$|DujoAeXWfgL2V+W(Y+ZQl#dQ9wrgIloeY5+L zV>`dU)Am)yx75$d&Ax8?QzB%x)+Q!j^tflv{8)q!JhvjQ(av6L#W2nJYkb;)B6xi7y&Oyz(1P*`&P{H6U{Ext^wzorWsQCqr0;&{AWtec?@ z`{#vj7oHb=@xI<;UC;M%f%CS%8|M6Ee&x)6zxBFA@x^YL`>iRf&g3v=xA1J#eSETR zfA`liU5Uy0J(Jz{y$)jkqPNRu-6Z*g7Rejyxi?MiZOl30|48lq=3O0C{a1wpYb)QYv$FsfPj=+Ir=f4LJq+LQtqKS-u( zD0JQJZefbno+bE;`^cmBxsKUB(+#(UE|4+n?r(oTX>$LrEt(I0a5R!Ko>Y8d>8}aj zEstO6|B|(K&-t$*Gj1|H`XteCIK1#jl+H)llt}ZZXP=*)V1IA0|-w4U(y>ZNrK-%1pZZe9PxJ>zZCf3Z7d$BNSKoJ#PwOpi6Lyx`3FbN4>w zFDWbLO{tzc@gK+PYyPcUjW<`>$qQRsZ8FXO_D~5nALLlTbE`*0`qxEIMQyk5@7Hzk zyY|)B?7v+6V)5C=r&U+K?VGr^gU^0Hk0NMBNT%;q^5=_b|27%&Z<~JjbJ@H{Qa8^X zNPm`+96IesuI%H8nBeb{NpJSqDN7d241ANluXo1HAZzE(79E+7&wom=xgzv=<>VFB zZqN94U0A>E_k$lcS2zE<_;9PvqIbzFZbThZ`)xb9^DFa~>owE#C$3-*@!nX^eMbFR z4$lV1zCHP!4>zpe>#y^*M56m&-c{pA?*a=~XIqLl_htP(bK`Z5om$y3Md@t6=T>r( z-=6PGzVOhmu*#l&@_(gMj}F>Dd3Q_X|JplET>mzBO02(C^yOFIY-8vY(|f+I4-Jvc zJ7!Go4UMef*!gAS`mYlmV{Q~jFi($^Yif^5@Yz3S`?ZQ^{aJx;yX+m#2FU+7khtfE z1Yg#plDo%^HgEl5bF%f(r+vxtl2iXM)a9?8$??%`e|pcSzW&oQixzweZ%Mx1Z#DJ& zzq>21oR_MecV2Sy4J-po+c!;gBRsD3;=w^a>G;3iG3=`>kCf-6B!_O2=}?Wcw)s$c za^X|UV|6}%Gjty@XP@0J2pXykRCBs>q*La#;@;)In%B8*kG&vTujGAJ{!y2>?Z1oh zYZr3O)V=zC)?BZ@3>z=MuRV9|&zW0uOq9(q}z9{vV6*>_3y_#rj(h& z@@Z$5-hW-V`n+iLrT0QUNxVCQ! zg{~T%z$M+bN2l`*X05^U<&JVI*$6kHf@qE>qAJYOi zvPQ1`Wq0Y|3qzNgT;+xb73KKCi$tC-`*%m~lv6*)b;TFgTltPmI@!D8)~TAl-*YP$ z|B5`8qjzMh@a8{vPTq|xh`z45>4w#hxi2HLrpnwsHudUD@z-)U7Nv8a;hFn+cQ?S}T+_LxztmvkQ#-bKqqnp8ntz^NuV0IA(sMaB;o_VM$0CEv z{&6Q7`wyO(rpKWt1YIODXWQ$EJktds({HDq&T!Y6G+Xii66eB8=bj|4t^4NiF)g`z zbNkwhw|-lNe2Tdk+-P~FF{`^w?fRR;;{806);3)#kNX=HWA{~7gQd%1y?Btp}E0k)60vuUa)w*@cm4ggm&Lo`=4!l z!Y=={TWrHi@gUW28T^&)x37mh0WMIY_clTTmx^IYPxx`+C~FCE#FKc$vF9OQo)v-S;cBTDHoGW=;y=3DvnOR#@mFHi4 zYGqq?v-w5$1Ub9SH&mNze_dEA|HcQC<8L^`HN1yS@7cUR(&KYx;g{xHvyLzS{pRzF=hnY| zysN)?WAd4OCtk6OXxABuOWwNDks`soHTmxfzVzQAmdSF-HA?5DcAk;jrsc8yn|f(e z+$)vI;_vunR;Rao+1Z;`f61L~zK8<%iDv;5cj-L-^0J|0_I&44=ChAoTxoZr#QH^N z@r@Jv99M)VzcjJjx_OB6*rTUs+`6kmH10h&m?ro&WW|kDKWvzPTCm@ZJ0luxY`f3% z%iMnw>g=EAkW@1mx4;jZCnIqZL zE3dpq+MW{Q$Zne5Uw3r*oSpS2KFqCoD1U#cyJg6|CD%V&Y!h@9hdG%Vf#&2(OS+9ymeeCClqXZpd2HO(HX z-z>zQE|jY7QQUm=;o(%!KAf2q5t`Vy;VgX*+JH5c-G}tob?0BPXIy??>o@JNMY?|UaidGtr;DG6{C6`n z|6TNc;=zRn(iSj8ridoTaQwO^HeKl>vm3kPoeZr>fsRLeE4W0XMdzn$q~B|oJD&&} z3ym+_#WVlX!uYxO*r)y}n6NJQpVym0ol}Q>&c9HK+|2r;&u7mO(ds>4l(K&GO}8yym5A*k26KSsb04B~YD}Jh^ba^Q{+M8ttLcd}epoo%m$DD*VFI7FjGCb3PP; z{g9IV#Cw|an;%hcQdcv5e#{)gU-y3Y)19l9cbz*X0U9ZklN6DYcIrOK#N_HR`|QC- z3Wu3K&h32%9hTx%tDJt>$+%DEgxCxJtuG#0f2ujB*W5F6?W*&}Gx+bd%ayE(-DrAw zaYe>!>%UvR#)>nv^BCPoOU_``I<{I6ASH%60xyopTCM!O#tpGy{S={lnGz$O6$&w9CS?bF$pUZwKfF7up+ zo$_aQk7ZHz*_CX6ChZOU%W-RQZ5Lm_yvEuGh3`{WGi}@OeydHg=l&$73= zzh~Lbu#%rg_6MDLFk$a9X1Bt=6VFVZKfd&eJ^t6B9KF`M6q9i7{R%%-nSZr1|Le|W zBVu^!IcRulA1#Nc=F9&%y4~{kL;Kp|&)W9qQfHk`{yOnsQqj)?8G({$!&6UCho`o& zBZjA3Jt4zW(@IO+bkk4Oe~&HJU1MjI*3QNKPMWRm=k}tT$JzE*m;}xN?+)Inx-43< z>nD4CQ9N7Sm-+WkEkIpj`+2VJou8kJnC#~7rs{iS*2@fapK57U613c*VyWg z+Qdme5#6-0c!RrdjPX_DLS8wM)AKye@oapuv*2G0SM}W0i;WFWo10Dl{C&aupmS5w z&Up6obhREmcTA5rc0!BuTtrMm$PT5j9*pCih@lWD>%HCpZ0ExztW@oxc$A9_@1h- z)0r1|Y|q;RS*Dxx#NdHa-+r4L4mii7Y~vn1G_!hhq5odany%k7H{P&#B4An5y+0@E z&GBpehDw`z?%N$(G>=O(x*_gS;vE0&n~&7I`2POK^s9$^&d9$qS@&|5eZ!v99J2R5 z87seY>v!$P>;U^y%b)3G*J(>%KlAtGC*>udr_|q5P`joh&HN_(+7Dyb&CfpG@N?opwZ-v9I-73ADQx_q@_zP=Laqt^zka$L z^uj6)y<3x3E~tF5_{8*frfqKuivEk7ezZ7u!qWE}8n<*lncjasXQK17 zAB|gOTG(gKIJ|oY|BAJhHM`E+_1EpYFKhMfbQ0SylX~u}w*uDu=+sSG)H?^%_*r^6 zIn-`RyMM}_x@mUT9$j$%7rA}Ka;Kxy9wo`t|16O_xki)zFttu)%qx<=6G$hIE!-+%S4-QJquv(L~^?&msh*$ca0 z813|`V|m{i;PYj!fgM@z+SF;DA>Wgn9k2VC#UZ~4cx@kjM;Lz88vC2nh# z@XbDY{BSvV`EX9l8-a+;Qx{t7_20(&_{G;7)0xHovd5qNxXEsNnPhzQX~C$+IXS#% zPk)H&*jThd*Qm@<>3wnEO8J*pqbldWUTLtI^~h60hV~tgK5UJ6WPM^&-l^H=XDin4 z@h@Hd?ach8z4H#stY6uaT+*zn-9dA9p{#m); z=c$<`zaOvM^-lDgMYy=^_M#`V&M&QcvdsHf8E%bX%iJ9*?6% z3)xW}BJ=EW+!xt%Y|~e+``xqmTmyQ{?(;pK&}%yVaH);aoAWit7aX3e^u3Nx z?Z4}kqs{dv?ry#5vb~7=mPPy7V-;7YEe@}_^CYq^ExVa-dwuzX7WOkzM~=?PS##=< z^NFSXwQKu%9vzx@SZc?aPXabqn38`z-Lv(WaeYX4R`?&rthQeV*!jL5JznrYc=>C) zX*1UzeeS6zGX1;k?-MJYuz#q|KI_t9{_E`n|1FL@b^k&Z?n^nn-+F3keDe8X)8w$? zo3qTPA8)obdKb4xO+HoORDefLL-4;f%e&3AOG;LsJ@(;Hyjh@y#1=_qD~Z+H=A;Iz zN$Z{N|1@JQ@3yJ>d;(wf3uU2;pF>X;DNL()D{$z#YWuY362A?8Ier+m{rP4km;bmflS zTh#V{(%N=p?l~2?qQh*d{|>!9$Y|AK=^_!GBZpW%z3+#p+18GaGR&VZPVRkq(4nUL zJ^TKQ-S?}n@;^QuB~#Q;_fqnw*`g%xN;ki6KfbWbC$E`WwEpXzsPmUL->^6ndREgs z;N$V{A_}MH{4hw?`y1CEUAykar1M7}eag!Yvp;gY{4M9c>bQ4bL_R5pm`5jHCuuv z$SNK!-d^8%{bGDmL%WaK$QvJ#ughBx0K>pzbCBT@eH)uY5C#D zP2Qh_&R_LzG49&mP;zcv_ZP^)D89v7gtjijX6@vrhOdviYg7NvMz-4L!|T7lznlBd zv++DWJFR!!{AE9;%S z`_1$3@AEw#x4&+0&tq$w>Tfzzv-j;@bM^enFEek(2>1Ux@!-I-1?P@^d#0Ehs|;Q@ z)Er;={@&i`y058^`;VTUuHW9z{8CFy^Gtu-Ew2CW zG%D=bg=9ajaO>*JS{8QG}ePj6j z;{361Y5LJGR$jRwwTAWe@tQAZt}Wcj^K0V8I~(2Ww%HiziRxVrFYA>xXytU5VC?*2Z?9rZ{EVt1k zukFudzN4PjliRocy2*TWcJJG>a@$s!nmNB-K5N0;lcv*;iud#AYt%l!x}Nv+@_o!l zofu!Xp3*jcCA~LpslBoof9^BmWy~jzr{{o&S7tMuXn%9$&Ve)6eEP3BJzmqk4|Jjm zUlr2AC3_vMjqcU((^Mw9UtRROhbQ-HzeKFisjC@xCA%#JKSk!gEcywae{Kago}L_) z_k|v&qE|rVVJg>NwOda8yRK}Fyj^Dc4*N@wKRr49_{Qn5)~w#M7akk@x)oyYVWEW7oR>B;kmDA@|FAlQo;Cxvry}?_!<*Cy3z_Q_b{vJG;%Ud@~qwQAne!BR(Mko4olW>INND!2Pk3Q;Y@1vLl}3)d__R&8 zmFl|fGn;-=yq`x_O-IS~l;XliADUS7C-Fc>imr7@NSyAd(t?bH)y!$myDtJBD7s1c zK#{l-Y@lct!wKzP+zp*MZDa9+e-|VbE7xnjnf6V2Zb>F`R%3oM^|M#2~?2qQy=7bi#sB(vUZSVgF>fOhe zJ)L+k=@n$LlG4cp&|)R0mDm<5nY$jn=EGkZ5PkpUcZ*VkP4m7mmr17geK}Ss*>lvY zBP0oQ)XA!i$0dxSWs+jje)#E4c(|Zg@@eLiw_}aj{V;Jr{`MKg2QiLUoWmXFsDh*417*Y zvpsmR4|x66CYfWF)i+m7czJZ&^&4W~xZ3N^*3LA$Q7Pf^3W?21k=pwz4!lt4koI+* zlN-|^{ZT|~o0i@AfOC8JZRZ^ZtrNVT^UH7lqY_EGrOx}U_VR1}l>8ec3^{IQ=Ddrp zo6@*H$j+?j)c#iS()HRG_xV%Pr_VpiI@RWUK;5GCH{7=0x}xyy$}zRaaqU|!iU#tn z-X@c?D|X`3^pN!nPRm>GD?7rv{7FDS@(cBQ6YY|Y9}oQd;PJJ;^RDurxOQT?PWz3I zTS0}0S8uLkdeoP#JAK~S8fn;YIqm1tU|YbEx!E!zB_$$b-{y<4>?<-Zx*G;$Oe(h& z<#~LfF{klgNVnWR<@3+q7@e4LbJZ`K=ARF0UpOwm1xkQj?c4TU_K&__%D7?S#DjY6 zOMlt)Uowp5e%1Kv1ng9os37pEF00LEo<=&#y$T5oKU?oW1CCQ@}y16Fc}Cb&mG&xJvPB zO~1U1x#mORvzHEn(cB>vj0CkWhmHgt*1|awv|5Dnk)TsL-?$cUU0^>sU#}T90`$RK zU0VL2Vzn>(ROq2DORw_p`*QSl4A+{L-_suKj+^6cQj<#&Hk(IY~2T*GA}-w@aC|6-TQY*uY8N=Zg>`z zZT3K}zsGwmZ_UB&IdASvh(2*_+o5@LZ2xH+ojrVz)%|ZEGjzR@)wyN;`TMVzUz-Wu z@}>^n^7btMPmtE{8xO?$)w;M~lWZD??En3>VgLVea=w02$+3+yb)S~E{zJHS zn(p+Ur|oyii%WOL`|ExGUjOfJ$=(f($Sand9qkmPZ+oTA)iOFe=he&|Z2Vj$Dd}!s zeJFm&f%)Na&y)4OR!RfD_`;TSrmOHt@6LF**+Qzr%ZC{&maZ;wxjTKXk5a>QnLPFO`3k zZBHedvCnv1_+mjjUAlt&KTg%TpI=e8 z?Z+Om-O6*9|M|>jxbfS~8DBoHwEHym=bMaq$Ngod7U%HJ%`MEm;JE+Q)?Letx9INy z4G^V2O+Nj1gQ@vhGc$Xm8!2DB+l~g_7B>^?eNroI?Dz14r~UjB6^)xJUtDH9(6$)9 z?d{3JhPeB4-px-ssIH&00Aw^A2oAUzwS=UN>wEqrwwOiagV+yzZlPm4IDL=mKn3DeN!uj%t zTMZ|#ys@b6<#krhCljTn$Gx1Tc=yP;@`wKxNK0O=-FE+}@jeCN*UMjh)+uW*L~L?P z&3;_%u5jF9qww_popZMq=d``L@;ie2eek(!*R~vbbEd^BCQ5y+snt#97gKy(Oegi4 zF5mof;=)CzKD2gmtIyREIvK#C#bCFXht*|c^~8XLY*%Ba`o;roT(F&P67oOwEPt-> zp3QX5?ES2@JV#&FZqk)-Uw_ekH2 zUhm&RmY)u(=RWgLYvMa`Y}VzS9rb#F(u;WBRtU&2vv%rr!S=T;S6X)BWB>b0&hoi@ zI@eck``(-5TJqy(Du9_38+R;w zXME&FZLOQp1Ea+^uGdIAzKis~8FFs>6H%l2$@_lJGn_r$aB|^azb&q_>)zk)`qua5 z@$C1~2|3&D8_$feH~1X6&t;KZfbP+Mx(55B$`>0SOnm=Y!^y8y!+zuDvcAv@N7tQ} ztDR%07aVz+t9tJF6DQ*veZJgIlmYEaT=!_=LARorYd@TF<44}w7CigWbeR_=}UiYn@XmQc-*FMgSP{mY32U&|#C_Rkt$C2ZkSHku#m zob_4u?~Aes@A>WWcKXR`!CPC;8%K+-@XwlP>+5&%<#eXEH|wUKzgPZ7d9jf7gYVO3 zom9B@;(N!%nG+i4%s1b%c>R+@=QnCy*;DiF{ka_9^f#4u>1Vz({tRFfZ zy0Pv16#L^Z7s2M&J=bnF$l}Gym7|N3%(h?&O%T;q`2e#jT6UKrC195c+t+j zPw9PS-$wah`>5_82ckafD&OYMe!ao%%S=;6@w$zZ=1YXPUCYdkO*aaSKCwVu+FGo} zDZOXzuh{ODLG}ipcS`NPvFn=PqmupC515}gCiC=yen!rZn3PABVXS+t{5Kd^+oWV$ zC7=In`Hbnq(XSSt%1>8b$a$R8&ja4kR9<6qovb!joZyx2{<(mcKZh^n#-E-R18L|0aR_^=pZeQNP@A?VCbN_Kn zv44`X<^E5-`I6mVgTGda?OwdA^XJ{BKhx$bhvd)HEqc1Isz=XRe&<5_dCAcV;%8Ld z*LcdTUz5rDmO1H|f62o3J>JWNroYd>et3C`Os{0iT`z z<(IQPbMC&malL!mPpcy(k=!}nZHKuboATLZx!~)p+iiZdU5HZbem_(0ZC)U}%YCCUw-{?;KTE{QTn`$Q7FLw6|`+T$R$Tq#mgx>9^ z*4#{5_uctSrD!Yz)BH_$QvV(Kdu~tQ-<*#-XQjs$+`J*Sq4j=t)wOdiGn^lNx^XnB zZrh?iKU(!yWm|z37fm>>e%<(!d-klOSKl0erF_`3w0Lg!nQ-;lm+z=s&j4*n>r=O@ z`YrzD@ZsjrbQ%7cKFevOXz8J&qDBR^+!Grz(xyxT=TaX53c|I{yu-6P35FM^RrU1_P(EW z`~RJ&`1R#wbF2|`_nFL^3B9fxzW)6De7665yQPo&Paf}=&%d{?c6Q(1y1!MD$IC0e zy@}MiUQ-^qdVcUrH6_}^8BX+4L`~1eZ8(#S9tMb$KiClkLIT?s!Qq}7uS!wGr5sp-cHBp=2OefOWB`t z+*DbAuiyS+`pu%5YuY00U!8t>Z%^gs%)L8OY}cIut%Z5R`0e8S-nVC0Zd>(w-PTXP z64x%W`}1+D#MM_)YczMw?4NhD%53??{+?%jwx2dXomjZCU}j&^gM=g->D?wJ2Vc!! zvSnYL;%lcA&_tNH3cK;&C#^C+B+lf#-1P8J8d7Vg;NpYd8hSUA*T(c!9#PsU`N`i( zME$Lg+_hKf{37|_J#@D=y<1@OTJUA%Gwa$j-?!fQH6z)sbiu7fb5EN7{%};eIc0Lm z|8uM35j)!?B9MjOKFZHT-iz&HvCcWppgWZb>}R{zm4r*8GZ}G*^pPKuBxpLq5;v3g#d&~LW@r8@pB_<^H*sKz}o1T)fx~@e&uCK^6 zs{B}zUrS9`^sbnF;7MRbP#emu@}s-(Po?%N9lsj5=hW3WxPM7a^WOO&`04zzU%+8!{+BFi*K7u7w>vE zQK$cE)ZB&cX+1kF`QvSjrj&^FGbIGR3_f^~|I5Z3S|MDFl_?U=)8po9l|gp5?Tz@U z_h-6W&E8YfFRD(2Y~(wWzV6Eh$y(3~4aaF_>^q;k7F}}g>0#c~qxksoi&;}OxJzl(Ph z`?Omq$MOE2*3MM*_d(fz5pKJmiF{93f9UP6sY&aWF*^R)@63rKGG6wG3Ae@l@BdBj zwLST!drh6g#z*SK6BqjSdbAk^SYPXZRj|!}s_`?!W9pyQOg#N2F`I4Ei!YWpcX2g^UgW{I`Lrg(ZvTM3Pe|)HhS0URQRK5GY0I=axTnQ88AU&3q%p=CbW7`4#WJNB(7aYbt+n;?t=zmA^xxk3TbrE-$G4 z@yv4Fl~-Z)pcN~hjw(C1bDmtzVWF~RMcjl3-Lnry?3tsvZbkaqj>e5WpjpVUqsYr| zz#FKJTUcJ$($*k*Y^L(eoVb>aFN#y16}N2E;5WAIGCwAe8+iE3NxtMKho5sKJywX@ zeP(f;`mZ;yjVCo~I9E@5&b3P*vigg*-P1FFFCX;X_o4s&rNuH@`IlZ-&bit3V$#*a zu1EeTxX+#yDlgubB_Vy|+up@H+_o|9{b8vz+c`Gj{NLhhuh{D!%{upO_xk={4Q7Au zJ$JDcc>X5w^$eN5Yj+cCe=2s)xpv{N^i`-Qi{9J+@Vs<$i;YnP%ipUG^;)9)c1ZTX zml*|g%={x28hvm2PvrGfPaJb=m*0PU<=}~`OZ+!d=U85nex7O|_F5sR)3(pGa>X&Z zgzT&5MT)-|Di?)VrpAd>~(x zwK{GBv+Soi!k`w{8usD{>G$V98AoL=?Dqclb#?h$rQ2ON2a;}`%D8Jh;q$Chf0WtQ zU)2R~RJ^C$?A!?2{8kv!bMw(U(RiDL5`iPV%aqQU=^Y_vu~ARm%1$h6jefuR5KXJS zZ<1@PS*mY*b$44Dwtc~7!((^eoZjos)_UA2t1!|9GOQ$%5}^PaRywW}q%f)6QrCo( zVI@IQhm}_28djRFnv7?q(W1qatTehNcI}#Me5CQ4k1xM>pT5w}|K)hp+9vrk6YY|g zzb!QXUHE?D!q#NP%;1uJ6SN}OC9f+^SbAgPLXXFePm6AqH1ONKb5-9aHVrhswukL! zhoz(ZuD$tb*~{8xK>IZ>Un}35+HRAzIUDzKBlsW_&gDiTvDcU=9%Rbq&VDWTU31^j zKL>Q$MMcV6P}UoL;8ul>Ho=Y%29Gwi-b9Qxoo4%?dPHA_$k8Uh(a|Q#Mw_1cte7W# zU|0CLjoyjtKUYp!oO5@>Nz1-{-j=iXx%pM4Y&fA41U^ULDU+I>EU4`j&X#;4!>{J$ zs|^n}DX`nI8AqSepWS8HsCQlcuhjClRVs(o5a$S>tw5S9eT{q5#NkBl&;AvX%=@xq zK15xO=WBR$YgZzkJ#i>||J(T%R_sV^mt7#g_hy9XcjIQmq7IpTN8uad5`FqNu2|mm zhWTHR@ZvvfC;puC@{s+T6Z3wbEpZK011>)(`r z>3NmjeLj1m^`**F_W1(B+4Fln?dQKzj(=C|%GR;CsBi7U&ARJ&tzLxh4ZB{__O12% z!t~ca*U01&d%DtwnHpTsMMxH)rPuuG;HB5%W~dwC1dWYQ&l$AR`6GUi=S${4u~l0a zMtl^GKH?&6dD4I_%X|6pRW%;`^G{U#y>L7Vy7;K+8qbo$e^)Ebzv$?5s#U(|)nPHC znyQ#n#>Fq5@BVOW#>tSJ!2MrdH?e&3==EM-a&|&q((~N~^%r`3UfJD#|4A}_LMNmn zc^J0yZ6forO69Iv#Kb(%XPWBV+OwnKxWtbn>#Doyv*JMuJYP?x$`Zv`gEB;JlcO$`)lrRiuR(z=k=YzORm|wf8D6r zGP9pI=khh1qo$kYHl9Co^4Kba`_~Qoj+&OvS3LIawecjz>5@nHJ-f|ObiV4;vZ8&e z>nHq_`F!?!&&@qOGkac_FVemBrTTu@mhvU?_iOGmByR>UFlwBMd|cAiUD9(o{nQ@+ zPI)V{dO>&WblYDR$uY||Eff7_HGksd{Y*1oY(H!P+MO74RQd3Kn{u8#n=U#-wzP4b z057Iq_Cu9jtHO*EbY^1Q{len3pEK9?^2y!2?zpim!nLCtJScWN=GP5VTce0zKFw?W zl?$vS)*kLSlYVu=tr~axU9#6MJ%8AK{`8EKA-NAfp9y1qH90E9e{yiiucZ#v+wMQz z3|?Y%gzv}RrD;YT=D%!{O4KZrC4ViV`k2xO0h*2}9r0k3zUQy^*fOlOJN`N6&N;Sn zn@s0!eEzd%-j9fb;@2OaxUc)%adYoxTce1IV?R?aUR_q8p_TGO&b;!9XW(V`i3{2d zFU0e$3YhaEL9TG2^FL3w{X7!RZI70$waG9((yJDm6`sTS^2{Se^BkRL&1N<)1kyem zw;`X*SZLfOao*5C-uC7Uy^KfBY_N4jPg-Oa#8w=(arZKJomzL{#}wk4o7+R zXSo_SUgM7Zc{Y8EvwcyV^2WY2Bjf0rOUr*f+WmVM>;3%=z9qku1O82ze6jBN?wT~6 zYyMZCN51KMrS`0x8+1TYz}~etqbARsi$0X}=pd0pNhgn8Z&citSN7($>**TVq+M%R zx2Ya}*qYm`=)eDTv)LZ_vS{S9k={*ymh$OEq7CR&utM3nTWy%@H2(#^I{r1Gf7ip} zv)g&Thi41?U8xZNvTF)913Zq9jTck|$!lcv7KHXkqE-oHRzPHv6Wo5);p6zH?sp2y(t7Uq83rZg1Q0{b?4je{g#||Ci_iJv7;5`6cM7Naw)!9>5k4 zfle7ly&U0LVCC0WSI>Tae*W^t<1G8{?XR!@{N&{1l0BK%Ui`|Om0$VA{n+K@{_<}o zReD5UKOy(?VM1$;PSe`+^X>1~{Q9CPTkm5By4CC3+uJ2?zP`SG+G5|~&FSZZc0SvE zI_mEnulY02ntpuI&%>9)_bMkRU+&U1(@o&DJU^y>2i+JJ9&h$9Vo%M_q8}9jeH|0u zgD+m{?(TD!vHRS)Kd{g4WP#5*T7@p|8%ot^Fb`l#yb!qk5*pkbU1{r@0`5=DN`%4PT$l2yukZHiTbT~*ran{(Xk zjb>ScN3@PDJ(OzI)!5wmG3U*t3#_Z_CtdpWt91?cM9`7OaT8?De3>j>^dQ+_^V04X z?%Bxg7}w_ai+7~-Z!NNXCfNNX?S%cyfH_-?D?7o$ zAg7N^KPSwcAwA>fEaY*cG-Ae$j=Y!@u+HuExrj5J6V7LOPd^?0s3~%uwoARkt}AN# z|1y-~pG=SnlrLz69XqKhUXvw*GW{kXuJFESqiwUrW0~*jo5JkRtb9|xHTmxcPwT^f zC(2D%kC!_hw=FH?+Fm7QjA5grsYt^{X563RG^$F$i;Hwj?rRD_78k82V{uVV(XB}n z&%Y>|E4TZN;}=&C{`rw_CLOe^eG$Z~q%R4&#fh{3wBxzQjW5(N9e%e#n^Rd$=`-xHYjaiL4R<(XH-@ABr)MsyvQUx6k z^=0Bg^=|jZjW=|d{_36HAOd73Mmw0XyZNzb)@ zakH5H_`=R+l^V@&k`#VUMP0r$GkEcj6@?qqw3Xj6PRKoIQDs~9>q7tfCldctrx!k* z>wmV>BhAH(z2s-=F88m@SO40rmS3>?*fVO`)+w_jKb{;je2%4QaL~4YAb7YR5@@ON|Z%lC;!FcJkqi zyR2vS{5D?&JNM~c{fEg*HfL6*Y~c8{y76C#7RZOQbF~s0wW~fHeYoJ{lj|#P;n<@#}p%9!!zp%HsKZ#QKu^n;#ad*C?^CqL)J zvPpu@2}(DR-@|YFB4l?`_A>X67a$w4^cc*PjBY&L5HkOHpjBG7qiulvOdr*VqG$T}Opzga0fl2_ZV zIel&Rp9NauaCF*)b2@TGkH5PAdBGZ6az!WEs##+4ekaIL*e{BAN}gh$e@QVWFUN{ua?o_8_JdE(TB{Elk3D-5pW2GD^nq?^(mns5w&M}jH(A;nA&)#(-Dk3Ru^{dZP zPn4gr)V}z(4|K#{(E`ZQtEl znGf?fo>CP4YW&$TIJ3=1tirY{rmd#Q-y zw4YP=C&h66IOCk`0=i0SdW8Mo6B&A)b)Y?K>?`Z`eqJ6dC-vv1`Q+SL??KC$z*4@K zO~^fJyZUqU{&%;s`r2>(e7Ilc$M^iafA`-%H9A`hJ}v1D;b}JPFE{+^w%;$Jc&%ysdCh*Ftfij{0_OhxRsa0)@dmr36UW?i+TS+jypaj{e0j}b z*OOJ7%d*o$isj#afBMGm&3?P>vx_(WIx$1GMPy}u(T}J1Po>IB|9N!rNZX~OZTkcB zI$wsh@&0JG->J`R|Lc5y>IKQ;Y1`iEU1!|1@^st-|1Uq!O*{GFI^%RkKEb+=$otZ? zuKw(P&pzL%zMplsp}Vo%uZe|Ob?fK8`nd_b2iXitwQ;}r*jXTZ{~1#IoS&@-1E)0wLMGyvCDm@#NyKr&5f#Zep>u9 zF27j(`@*B@DYF;aRLgF9W@s;3ALI7oL)w|&bJyCP&*?mMFY=Golm5alKlPKZu6m|t zxo>K3>2v7WNcQ;xmsjL5{GPgZPusWhGnq9HLaryZy}I!G!sf3%L3P{bOpGqRY!Yf_ zZ)73yVmeRj%5CDMcMK+dZ*DI%;{_jyl<&u9^Q$C7SNve2^Mz?XtY@9&rHd;y5>E4l zeD~j|V|Qy=+%LY_ankXyYbxb8oqkw5q0@3t_wNSyM*QD*9W(d0r7iIPynVr~3yN!Y zG4zKPHOTziB^O}#fz|ToldT(%c+TUmeKO7TqRe$u=gL&OZ7H|;?{?XPPd-{NUY!0D zv`6a+%go(UUf<5eu4$K1I6R{!dCsq=yY)&P-Y+`+MC+$ukFnVA?F!L1C4T(46*q6; zt`BxaFKW9=b9J@el)7o|k6L{6zVq3I!A62>bIq=qEZ^{R;zHi34_&3YzpeX_Z{Cq| zgF&m#ZZXg7_TG2WEoZlGOLTjoFVMYz`|QZ%T|FDuo;}I9^GC%GJxkESqO-GQW03Ew z_+6yA;Qs?{%eZULujxI`&bD;Qp3@t8!${t8y|AO*pGoX|g(r&|jKg0)sExB14Qao( zTq*!`u+hHQ^^v*rX2q|#vFgp-i1Jep_eSKueVNp~bKMj76>7<#bB&hlny#I(uSo6g zzlv4ss#|T(t#CcQ_Rigz4!;c`<2+YQmKO>Bk6C2qB6;iM2P-zS$BTY%xOk!8&un8- z$^Um|9}=4%%in+hMdnw=>+r5GtKQZsM+?f{s7rJ@!(X(;^1{{Q2c2jCJiV}F!(N#m z+dqq3KT*bJXRI#0dPAyRk=)|%>1Q4-;{ScmoO$lWc8TUU?ltqWod3S~uuEY1GjXkL z(>9*GcQR#99m`wO`A@x7UNNqXeRH4bv-@kEzdh^UKIJO!?>by_t9##JyW*LzcAdZR zy2r`yUze-ekGBSVHzO|3IRx4|=0ExP0sS7=_le0>_U$YGcb$H8(0>1w>Am&Z+ZUXz zvrqsZS9Drg&Ii7G%%csqd+gA(pC^t=y#K|&Q_ZivLgKl#QO&W+Lf-V0%4@q;*?xAP zP+#PGwrGX1zTA)H&%)2-=-T;z>q9!JD0VUEq$1fron{>ezZZ#qTbuK5V{ zQqN@RMSos)vzfg*<<8zqzILY^rY!t%bIbBSnnB{Z+bl1xHJg3Y{Pm`fhZC1Et1LRa zC+l=1-=rrKPJCKyla}3_`?TBHAL*1LQIq{i`6pvL1Ur;pi=Qg4vAHN-Y_I%Ga{u(x zNAzCIw3qb$D-gfq#r7x5z0$n5Zb)O7+<#=nY*+ss9-VXR-WP9smR`2)jDp{H>rGew z98}*r{ZGr@nAFOGd+#)h461EnIq6(@Mxxju{M@mpUwx-h=A8|_#kN0lU-XvghuPL}ug&v<%Rsr*B1?#UDB zMF+}{{rGZRIN5t%{_)V{8qzqL#E zr;pC!y@$(>9+j}Wc+CA+XaDu!%}|26Ytt9|=VnM*gHT6}hI z-+e*(P-(~3KOrk_t$HK-Y^C12t2W7I;wPq`7l)iaH09zR7<#?Pjsas6aW_dZ$T6OhIPcE6LK%4flU?dpuubX+F9r2z^md+_nqB zD>s_`27<~A$MqVPhy@|2fal5 z%ZUe*5_}fGS3DD315|xu)wLTv$=4QD*6gcDsc?L0y}m9t!tSeVM2c91zIUCfOYP$8 ztG}chh21ICu)17 zfhYM%;MNy*%FfYWmEG7U(_^(y=)$OE<8A9)izRD5o(NdDae|2IQOEgQeRT`^7X>cd z6gk1Y&9J1f<8s)>#ix&d&94=i^{e&&r3rE+25Rwc(_M~*MJvx=Z7_f5rNil8KnDY} zN8XZoGEe-ZC%>T)-wC6(p8mzz)8wzsEUa-7&pwyvNc=h052ow>L%Vq!vec)j7`)VH zDFgME`mAnx9lLsCa>3oRsgvxCek|e8FfeQHx{@ln+}~B$+@AHxY~RN(LgZ6+$$mLv znUiu~Ar!nV=YTn13}5uEnyS17pq}Jw*Xa8%=O10k?NH@P>}f)^wK2=0q~8^vDHi?9 z$|PO$i`jX);kK_1%4JV|z_);ycJ)h%XKyolB*%b0c@=)|=ao4fDQ+pn4*jh@-&fQv z*mXZ0d@7-f`?T<)CvSsuLyIC-ZY*BoT5JhEKKj<$u z&-b))GtJLkAPe+Fm^)hAGo z_kCfO@h19i2Xoj{SQBRdV{_?#P%ORtZl``aan9!HYq@5|2V*K8@|M`X_Xf$D*7W4)@(nRrTL9NY1 zo)+Y^^w_G9Ym0X3!1sei1b`Rr+<0>$pr$5$@ov6=i;Mc5mR?YKU$o_AIw_+vCPp_> zn~6RnsQBrH?q9OcjL)f;T|Kt!n};gs6#NO-b?oKTD<{;Zgh)qmU*)&Uf0=5l6Nndk`6K-6^w zTnARmeww9ic``4yyW+svr1U$_t@VsAA6}{)d*pb;l#35FJI)?=6mO7Ur@W}{_+Lf$ zUt3=lYZV^UIWM~5{IATnKc6^t?q}F&yUO{=%ks(qUe9e=+)Iq5ga64~U6T^>`ULo1 zkav@x^*k{)s&7eI^%cCK{-*TR{sp$TmcL+lDtUul?t9#}RcDgc2Sj#1`?TZxiHup< zuG9VhXdmU_i{#so^F}Ce4(RylpF6hvIygOh)$?bsm&r?>y?RLBqfU`=|CJw0S)%J! zDxLmwD&A0!wdNW4ezQ64-fQO9rI<{2u{WBvy0tlE|Gl5WI{du<-poE}cD5XJm=IVB zbWyh@-aEX1o%qpw|L@P)|9@_u|BDH7-`Umq|K31u(6r<|cd7p0?D;!?Uf=)whmtycc8;#w8HGA>Q@J@%{6kKd`U+^wzcKoQ2uurGNS+_{M%? zs$X<|(^I4RpYGouCnW zpko++T)LWgFx3${7-J@y%oMxM|Cg!X?XMnfzD@9ntf?-`9_DKw6*yf zaj;u1%VpoZa{h?vm*j+!g@xw~)^!_iUTN&~J0hJo_hiWVjowM?KhLcD_2{P6ukMLY zZ0pbN!@5>y!^=uXeo zkLuD4+)!^q>v?G?_BCWe?Sc5Lq$&GNjpiH2{%DuISzP~f-A=)ip(!!%{Sx6IwjeR?QsQqtSah5@;!+HyW=N`4Z^W|jOt+d}L4 z4JoVJk8Uk!uKO7fds*_9_`UXdYoBi}5__H6yLM;hwv9h09%Ne(Z=}A87l8* zHx_cWLrx8v0zNfJMo5G;_hiTgn=gTLKzDPrPX^!3!7Z&(Bf9_3r;p%!LG3q`96(*X z{CdNOcoyRe%YR0%xYm|*)IUd1IQI!?le_L*xz(Q(ZEKVse|476c9j2_es|G4t|;RP zeBal1)wr=6YKqsLSjiuK;={{A>m#&VPR>J6SDwqwC*G>$!zaD4Xi-y=3aVt8?!A zLw_C3jaL26*?&5{#!(G2NzVsAA*d@f_vV!S%8TOi*UwEh4q1M$y&k$&=jKe#sXL|^ zuO(|c7--yv>FI`p?)$vK7k4ylKD#?j+qtl6eh&Asi?26cZm+9RJ^n*~chCB@PdU~W zg2&)0bdN+>PMGkqTdZ<^vCm(R_18}QjyZ3*K-f0=b%0&<{8zrYpC0dI;43`O9&#;H zEqJS|w5`>h{*#MK);#su`p~FwfA}l*G`sL*_N(!4?l;{&cVOM^b#G#Ar>F$m9@om) zSEPUUAIIc-Ykw;wzdf_&*wWfg8Ow*0&5BioJ1g_QJ;iY_wZE&+#K-dYm$uv8l8IOs zp8H<e($Xu7dawgBC-a78L!8s@R z=W^E^+b^Qve@5W=lHbWF0M6WeapJ~^ilI^W`Qp3$ycW}pUqjE@-t9w^VW+8n`P@a zpfBNRmvftkd`OVdroS7u@nyTrj}$I?D6ajpvoJMd?zL;BYQbAud8#&TOg^Yya_q*+ z`&(ydePuSDzj|Z$+H6@xzwfsLZF>uDUop0Hil3&QBQX2c35EH#0%-*wU)vn)zxh}( z`m$v8yz`(dR%^ibofXNM+_t!_+}xTz$6qWqm#ck|Q``H($?kJSOlw6rt0b7smY$!z z5PnS1-=YK_$*#%UJ}o#aU_Ps4W$Z@PCC1(DcQ$OC!GG(+g2Sz6&r6tHJRA{Y{!}3L z$O(%hXEl;+jvuJ`l9Fr{(8(|PXVKfb_o4PZlZA`G=L1b!Xqu#F^&x(%<9z!UX%G0b zRc%*^9%YHrPkCxS|03Vt6P3M3tY)1&lk?GY{;Tfy?_P`5{AV(|__E*Or?a2i@44?k z&D+>JID=Wsu1+WDlzwDa*))3pm~9r`{9 z$G%W}KWXI=_;qK;uay`-&*|sUa}5@$!OA|WQ&X)ZxqS|@}b2X2i z;>j??IYG`D&~t+BsGmLg*9YZF4?mxkFZpi$HHBZn zj{8o`zo@Lb`e%-PQuK744acHWujLqC|E>6JPnRA;qkrT(qxwg6>GwdJgJaHa*4vSj z!+qn>`!2bZMZW9jcbtzseLif8{QeKFrM~HJ3hkIb{diL4_AkSC^Nv}6BWhDDmglW2 zp7`@sO7X1UDeT3ded!;Mxaa?Gs;l@SuKGZ6@=2556YY#DLW^En++4rbyTSJ~cz$Xp z|IV)Ld7$M#RyKM&-spXe`8(_3n#cMIbAPuh)Ikwr= z|Eu}@^78VMKZZYle0+TN_V)bC8?UdA*MIzj@BBPl@29ig>t%l})~Zc2yMAP`y^+NR z%N3h9?uD)iy7}qEgYbL1%im9nuf6#r`QxXjryo9cv{Z82cX;W)sH6INR&s^lqY^ED zsT_X#7}R{Afkt-IK^tzdq(Sbg*5H}2#t>1pk5 zA!SL=o5b!Yr*=7(C}}&@;FHGpUmjMUe)HFiVA&PhGSZ9A+SPnK@uBHbdEDPPkzaf| zM%?SCtFAx1BLB;)DgSzQyx21Hyu|#%8pz;Dz#a#?6!m9pY1`7Owunik+kUZ~%>1U{ z!teDvb$=do|GS7a=a<_0BXVyQ-#-qx=*)A%z)dc+`<=1TmQedc{QB<19YVcdujj?- zGt-L5y6$XslN@{1oz$%XCyTd+rMuW~J9ateakqQhq;rn~r|4+aYFYehv=fVNJ(cEo zkK4U>L^mOEV0|1-Vq%YtUZpGLb>j38%j|2#8Q&TjE}(P(4a6PKPTeBa~Y zSJg4G&|#WkN{vkH=06+G^*k2d6;W(v2^yd-+3D9G`%U4O(vtS`I%Ovl=G&F5WScmh z=l;v!zLw)p6`p@|_!7RcF@D<*<}B}fe-mrO!d1_Un()`Yi3Z)ce)=rr#&ydH;tzJi zT2|++4V8t9HU2Kx_Uz+JyWcjye)iez`yFrgO=YwGreBOlyXK#9Z8I}fl04?{Ho|_@ z;hT1$=Vlz2n15oko8IR3wOp%sx2AUcPw(Dgzj1Ha>d+_cw==$}*QR_p`6w_UhYz$V z%x}J!bzYs=J#$<~P-`KEjgFgl?z?Q?9W35J`qgK!Jz)z^OWclOsZpoWpi!~Krm0T@ zj@X1}ZGF{0p{8f&&FT7bl2$$*cAz7LT)!$Y#^2#N2045h^GG56XP`lr`zpWu>U$Ett4iEcahG&^?*(4vvW70Emo#Y}zXzcFyLtLalP<9oFAw9Tt>q^(lx z7BtV=>c0O`@VPtovUi?v|No(9durh)wY~F>&s^J~7ik;g0-73I8TqyF;fl76jk))& zyRuWHFLcjW-eh@&_1hi$^tE*#)YrYt+5h|33V!eb%~zNU&&h3DW!Y1e{(AD$o1pz* z*Gy%Pf;Jref1vJ}e)-dh1i>%i%zsyg{CJdRV0Js?08{vv2i=DqC!bs&xbTeUihq->Xn}g`Lm>Uy0V=`kfha z2KA$y$4+-TmIrJM{aD#n^sM&9N0~6#{dJ_LmtlkjveSZ5MZ^ zoE3XuZS+wn{LRNp-D_U<+i9QIvj?4SHSb~j?(fO?FGW)&@=`S8CFL#aU+SEn3ceT( zegZZ3%6L{Cr2w5RH)VAAjI@NnOMb*bOMXepB9CXq zj}1jDeyrGDez~DtIqzzg=%eJmFM`&&{kw01P8`ye;r5)p=yPkxLEI+}c~j%WA)K4R zsB-r7Yl$s&HLKQ7N}us`!=V#me`nSdOMRD<^etZd;=?0xFEhI)=Wnz4B#v4t&AvRR z-+Q%u%}eghJ4L{!3H@n$GM)E>cW=DKhNsiDh&X*3d^s8!r%&7exI2IU&-wMgSL!d& zpPajoFYfQl^Y@}Z`>b2}aeDoi&3n`LHGkP?gI`E!I^zizW(+o$CXy3v*4rS9eQSOn-^_x~5 zUUgbV(_8+WJ+_bg%(dES^4BCcZG2Ys(DC4|^m5h!^Xfaki>p<4AK!RVwryYWd`)#* zBMuRF=v5$dR`R}QZ;G1@KC*G^@^${zx_vcN*YTZJ0V+Cvun*K)+@6A zwC)?aXICXmOMh}zzH?XFj{83j-8=p2TCJFs&Qj-pLi_g}zi~Yv=AZ2COXrvOckXys zcqh@PXtPcD%%|*WmG>q&Z$G;Hc*xR6#v$*RzVw_E>;HYFHjuSG+1Dbf{QczmtmOJK zbIonK<;hnH`ONH%Dnu{pOUi`YZtm`!yhmT;u}VK=2&$WDp?|lJ;sgoEjJx>qtc2d*mA=6L^Y(zXyhpp{-%wJ!b;7gFFd*8>HteZ$ z)eo0ruiNdeHQ9YSzsuEDRI4iK&zVBmsef|LDt?oEJb7Ev@^>$;GqV5i%~d)c;mU7N zu6zEIWc<=-12tRG3CGzqj^8Mj{CQ$WisQBouOEL3t=qlMbV+;6B=aJN`6ZY7V`4VH z$Tzh=bGYqV%%^=~qEGH?*dHkWnqGNq-|GqThV5T2y0uyAY0u=Ewf&j#*KQumB%R&d zPx$MU4ol?LB-fm;4Ro#AWH{rl_yemFz6ZPS`~K*hljNvwy2R>i0N5Bck!j^`Wbu9e~h|V{%iZM=hf`9pLEu4Th?B8ey;K6 z^)}V=pU!;VC%O4g$`PCJ;)u0}B}M0#=I!v=!>yIhed3|_6VZob&0)?@bjy!mUlXnH}9 zH41r9*XamqaouEiwU{B(SYGU?~ncXYY4>3dAS*~P~#cH+0D zUHwC@63tIuBJ`Nqet^qVDi!QVE2J@2`}m*?=FadczX+4RZ({!9B~_D^o!{?VfMcb4p2 z&lCOEYSZ@5dd`*obLEqrvz+&ZzuItU)_I5ODdmdwd*0u0KNeRg=>5g>O{ID2k*{4T zJ8#ZruTFWf_1ULDwnaRi2@@lDrr&PTyOlHX!dkQLSKZ6bzF=MSsDH%|&{2+QM<+dX zuRL>&?e?kZ_7NT2h@00qYQFF;X`lEU`Q9~n+^jh{;jrmnCdn@;$pIG+S4=rsv)K3l z#%fdR@@ubRUo5yLH%0Ex#qwWI=bxYJI5%kek$%~yNn7+@^zRhf{KsSacTK+cw@+!< zXIHL!wjruLy3?-t+_u1f3yQWe*j39+w0*3^_Wk6|&v{P%HER;8OWtc7Uw-X+&t_XA zj(LT4oH4nR+><6gtd2RcV)AsIS`{wa9>&>+o}Ue9H0s}RLGi!JVO6EyCpI{2naVEe z@@MiC#IRRD%o+Aa?)n*vH+D)KR;!Zee!Wa)QMZI-d&C4K*qKPoy;#mfQr4>a;Jq`o z$29PEspHXhQ^~cObtl#BzV3K3+3qUq{i)k^s~QYHRL;ylv-Ey;*=f70aSGdCB(3|V zQ2XiRdBy|gDPK6I$oISiU1GAAYuCwz-@3ldKOP!e-rN5v`0VGN$U3dcY3t8iFMoFF zTKS4A{;f05D?~rJ|J1g)ZFv27_D0Xf+`pxfED zWU5AQWxX`BSF@h4^1~vc&q~s&GMV>qSHr%U{KhkL;xo=0o&T-)%xld{#%D)&o=Dku zae1@sik%vp**=GguPS{x$yRom)AVg68U7cRzrVEheQ3!H@BP;-p0)4eImz**=hJ4@ z^Vw%UF>ks4X^(3A=3grVK1v!zf7JVMWy=iA1_kEn~MGG{%rsE8@JXn(Etl;!z&2f0gizfNR8hRdcRADRR@O%m5Zll`Yw zhp*3@XJ0?B&sOcn*MEP1&sO)Jx8$+!X1DA9mupThwl|t*SNkhr`Wa{NSxEfs+9}C` zIko@({CswKx&O-_$)7$xK0bSU{{3ai>*M#w9s4Ld&$fEnDbxG0*Iqpj`E@2|U8j3} zNsr>7r2-dyC;Q`7GKcWYOCOo`2- z4>SG$^cH>bY&-q&Xt((Hlm~~~`MZ6}D$nJ-bhLCbJGuJ%WB)Ia+hWvKD_-mWRkYJQ z|6Wd%zFuU%_Gi$Zt?Gu_FX`Zm)Aqh92yu>%%jg=*X{4| zZarNh!ptuG_~wnJ3%SGot1SKcl{->g3AC4gkAmflm+JaY4jfNN^A=~B&Wk)(c$(wB zd*MmB?59O%l*LY-olt*ip+#o;rww8D)e9;>19pe6#g(ow?KRz!YKwMboA0H+*6Raw z_2&QL6Ja{K@VYv9sLW_8bf|0wpMv~+$caKC`V;tXcJ6Eh?ORyedMuK^_WTnD>zp9u z6Sg@hJYky!+V<0Z+T`Dx+-=uizr@}0%rk~!8@@+OPh$19r3<9bc?{ZGh~tFq4DJh? zxAHxGe63dC;$oF!cjmO~%Sn1!ar*>r`tW7tgBR?-G&n^0XR|_1P+HbwEFWuk>`9 zrJ(&Erf1eX#Cd|!?5m%ZEMF?R9b=3bMaxv;@ytT0|q79tVoUtXW`CYwXY?bbG139H!irVU-2Ui8Tq~^18oK8DpXUvMjY*^z zW=%eRHu7x$`Q*QQb?0AY`}v~QZra+XI^QDl7u$WgAf9~oLe2gUj+G}1?*DxE_Km=7 z(CNqFiEB5u^V$v>|PYyMuR2To8$;Zx`!5uXzK!b zGHo_j#DgxmnnH^Vqo1a$w(ZgXT*>ySkZ;%C8QR;@s!lZD`sKI(_{!#qUzf;lIBik9 z#Qfap1f6S+ON2n%$O3w8k4?Dw=)*&!!{tSdJ~nG`9G!IG8|dhyr;vu*>bMEau`H0I zlYWJsx&_@52O23e>Vu4wZE`Nom{x!*aiPR%C$%O`WOE?czo?|+tub85%@12QR(9=FW+>mV(NYdf54qamJ^R~G{* zTX`i{%JC`C=o09DHUat1slt1=*uG1%e`jm7Wk-}n*E#WMZs;;Bar9+a6(4gG@o$K8 zjw@DGzqvMBkbg(yo1Wh_$5Yd)c9bmX{vpwAWHp0j<4=nhOeA|m)?-Os`%;4ZkrWtDzG+MUsjmWs#5U%xt8BOi`_m+&a`(j zy80{fwDE)KZ+c(3UyyqnT+;A~=M8gzwSKhdw-wF~^DJWgzid5};rsIZli8PH3$pn4 z2Wu0Gs!x(R$hrRM$|E##YUXS2ZDRj2DbJ>B2jKcsq{ZKGhaSy^6$ z{)uDTf+CmOUfZ;CerNWJ;|^sDJ^$aD889(&^6n@5XT2%4%kPc-^y1vH*_SO}PF%=( z{@9~Lt+{&ol68T`Y&F++JlMKwzYN3CtzZ3PF3L~P+xqzEiNpi0J_lFvYt%rSL2GsP zqYQyLw+GnV*>so>c1;^}3`~EL#P5w?oqJ9gEIS@?CD`#BWBtm`z<<|H)SN4MC|{Ox z{_oS>&)ihPCl=N!N6VRi_5Qad&+xi&$Hm;viUZ-_tgGCkZkLHcuC+sa>;^ zo?K^l)qUTc=UqLgb8VGn=jImXt_b}Vy8f!^+=aCdYhT<1T@zn@<>H&u&)nH&_tc%- zV3GCv(6L1m_v9xX)0DA$`CM31KY)+_R|&(=KOdYD;HROwJWKdU$kx8 zGSRejwF_?M_eJ%yUqAnBxN)@`=xAp%d!vvL$$bHZ50?bHDoJ)ZupUUCvams;OkapA zXKe;(yWEWc$84Uto7OU=GCx+nuL?dE;J`;gCgi`MJw%|)Dn9N_m5WhYHzuv$-3#Qc&B&%-WvoyNZESDzoh?Scgk8N(%sY+ z-#Rkw9LudMGf$rlh}HUTrTkYgEb_8ec6!>^8auTz%wv+iJX(I^LcbqZq~Wf5t)wm) z(A?mci_Z=e?aivbe}T3k z@qyoRt7hHFMy`3j;8CdS<#*VvO} zKK3s46}fmYV(Zfc6{LlgC6oHZx5+Ww3um;o^1omWJ8`=*`wi)*ZR<1RJ8j#l<>sI`Y&(0~ zwUj-_HXdDmE3k}hXM&z(lJBF6RA223d4c}lK01?T&ON`uv<$})+b0LH4g+LQ~MX>;k{LG0&AgUp@KE z^aZk%s$#>dp2wqWsm`eXbE9}ImF3m2)Vr&<8cw?XizCT*CG)jOKR18P@mnk}c~-Xi zN&0E!$3YK`WRD&=c%%Y+#N$w9#&1MPtngzcajNa?XCq&^0+% z^`csh{YK*CUr0-+T0^iOt4-JAkscRCe|L207kYVH$ba)($gt3vN1Fs+fDhJwxs?xk z|C-FBEun8-d@2;1^?es=Vl?Vp0i`+sP>D=mc zJv6B*WrF^n$Gg91w4a*&rAjV+o6@e7uLXjj8%vg@T|NHT!?cGt=l8w980Fgyaerhc zo?WQ7;rTzy?61xCg}&*(?_PJW1>a`2NUo#!+lEpfK6lXZLLUt6Vmce=e6C$>4>@8; z{*TJboGADp5!WxbqwI(iwqNLLL{oTj(#H)!^W5sXeD-(Pf!56{oVqaYX(ijo1?}GV zf3GzB-#PQS)mgrz|Hj9{5c?lHzY?c(X%j^BNAe6M?(*;KK< zMT^fWUAT4#*Ltc?>Du@=?&YSOojNCF`#M*f2WcCP-+h*yKJ(?nOB3}TCF`7eksx&B z+2e-)J)wLvSKKeGKQXax?XNlDn?70JY_5x{w%Zx-Xnjyl|0@B|tX_yS{00C zh{)Bg@e}?`V*GokacjJnV9Lz+pW4TkHk^mtVEehC^XujQo@bL@xVsf^Etv4?x^?}z zrwb3xuQk58?B_brkP}GiGH8M=eIfJ=$~mBYeQ2jDdB{uFf7oqb|JnZkx8Qh(c(vO# zvU`4Ap1*hdGtkW6@`I7T&ewl7Hvj*t+`jhno8$W@oHBX-`24>Q&!^q_e>lGO|FiPC z-{QeD!6#_yFiq$05o_Ma|NqC{-Q6qA&z2sVmA&?6L$!^O-d3{@toJuQ-xPg`}uq)vzE1N%0W9v+xcqsCX3Wu9+J?fQ#MK)dxW&h0f{UVKT}nR{OE(ZeBDv2jL! z7Nzn0SXX#3JG9=Cp)31!8)V^>z8fF2UJ_SWt;0juDUzu_kBZgG{rBiEnsJu#S%r*M z%cFHbCIRr7W2)*pT6@m%x& z9!H-wwPtF6YgYBw>^v_jsnB=Ia$DQEZ9B|fEQtRag}hg9%hS3Wvu3AB&z6_WG5V!? z_|b~D+|u1{pZ0Z1E-(18WWImO9tTSs&;@R3i!?I4mw_&%ee`5uL!A8_@R^ZuHyj?W z{sEgL`_br%e$mK4@6~hTlQ@0Nt$MiU*?#Gtm7QIuKI9e^_p=IBnY552grUYwlB*->yVAk~*SgYL{xLQ3if%b} zLG!j&fSG~ar&#du1gvv%@0mtRc3u9B-a@L$)pgJ4-MrD%ME`KM;;~bWEj{sDPW+ye z{K~y*YuLT#Reg+eU)+pp|8(rmUQo zENT+Jb9&wv&t;pIg_mYkJ2>2hJ>+RDxR@byjnP00%sF1l`9C_h(Z zQ&P$QkRu|N|31c6y;yv<@oCl7Z~G>$?clTD&!hN^-SU=<&a33l7t`#_Huy#(owRhQ zCjPjE*!3&5Z4$dd7sJM+iTs|GuYAJxwdU+oKd0?+dRBbK{JwD-XusRK`<>e|F2Aph zzIbn9UCrlO=AN_Ps?~&Fv!~gep6+pldDT+T1yvCq>^XPFyQFHt)G{ z)uUwA_?Uj>`t5Vr&zhb4b|T@SaM=>u1#{s9O^AsI2A5x zt~}Dp_fuW+uMyrIdCoI%@5tM=fKEH|oW5>L%l1tx>&tD7F_M=axlEYpYE+Es&_e%N5-QkJ$ZVYUc}$YQ?6atPl@dSPkS{zNmw?2&je=q z=9#*&Dl+eSI7@cgy}WLbdtF&lkE2HZsA~0^sizJ5BUH?t|9Q4QS~B-BY_jPrl->F{wc7FXOavSl%at%nr- zqL23J$zR|9HBjM|_&;ywstX5a)JVn(Nk-@P)~q{J^URBX{>A5AYiG)(WEM}Tj#E*$ zJ#xZA;k1O2UEjLMx`^~+A30;!Sk9iaE#-;vu9)S=^{NGG1uq>=7u%h(!C!t?Nb?Er zw)bB&-48u3n((FP;0#UuYVBpvmCrsO&v@1O2z~AWAS3$=#?OW2%V;5<|)pJzs z=a=0&kKq@KS zLp~jL+_gtqWL>RO6`PU+qaI;DHZD)}0l-S=1jV$5Az zv$CjT?hdi=n^vc@?ka1~^jll@a?Q&E-t&5rB68d>!x_05!Dn>OmX+-4PdBT&!YHQu zOCyBK<)?=G?7CwUnR6TKSGn?^Kk<2YwPeVfoYLBR2WvWNUpOv*+qZVE+~b9BjsI?` z{lE$+HE!>FU+32vnO@t3(yhWHI|Cc z&LvL$>OSMV#r_*xdwsuqsIT*zXFcJ%mc5}LXqf5PtpeRO@-;<#D^8akpSEIiSNokK zzm)5~H0d*EO*1^NaO_L?8O2?o&B^goZYSFP2yJ)S8T(fNdKQ%I*9iST>p*8g)t?DI zqx$K|ksXrmcE{?bt~HifyIbbuo2;$g<-YCN6=f$27(qvK$HsVYn>G1dQ9Kd!=0w1f zp9{K*@~jTDTb#4u7pcs21o_&ospiR?1^jn6=BH;bZ` z8_xgQ`R&gqr<3t{H{w7mk=!dcv`u+?i>Wj$`I&ywS*_%?%H8j$$~|4=e=hQ5c*wsF zqr1N>PZ>X${w?gQ@|N)5BC-kd8fyg}?>lu(vhP}KnbB^UvKMP!7Ra90lRW$(?BmnP z|GhRgJ5Os~E>-Q)Q|xM*zC*r0%>KuxX|F1OBpOfed3g4axJta)f$38576o6HPH~*} zbMF2m8?GN`T$4en`THa6i%&|(b?!{z$rs}b+JEooWleG3e{Z5s@*SSf1(P~#z;n1j z{MjT!9uO;bhW9Z85UV^tV8e_k*D|NFlEZ@Dj_n-23g`~Ul?KYwkd zsyWZ$+=6NUzUTjc^s@fn-}CeBe*E zJ*~pF;$UF?6$Voa{him3Z|>Xt^7Z+8llN<^iz`mvkoD6ExnuC5y#Dv*pl`9w@iE|0 zCGq;rGPS1yTK4~2ZpFU;|9Sg89T#UFFWYwJJy-6pP2zt}+GT5>`g42zyyHjR9=+B) z_4oMxe>-CIa}*~3KEI&PeGTuQQ*Z&#Uw`OP~BR zwkgULkTwiU{@(VrDeH~S+|pf1y6yjFRdgzztdj8$Ti>v!=g~I2a zUoErtU(ynrU8_GnEX&)Kvg5(k2s@vvl2500N_VFpZ@s;0d)0y+=kjK};a_pOtj=)L z&Pu`H4c{1B{q5}*DF5EHIrOP`^p~SQ!mG|CnzGLje*8h;RC{zD_pgi5y``OXVUWY1 z{p%{dAhTYA3h zY0P_tV;SC`81LVF|0440dCB?xN&PE6PpiMDpmuGa6m!yr=c~4TX^j6p;dG&(`*RuV zLz{Ki^IE;QzW?2U(l6fVM#>lM!;fzCanJ5{`?&)= zzO;0Hd`eQ|u8%ehH+)1`b5pG>_-jSf#aX``JFNLDUFU}g=p?A_`2CN5oD;K5@w3^` zAvtr7^VjCw=O3kO`#!&Te)F(Wo!}dX`Jc~USj(FXJqc<`B2Uh0<6~KNR}SkNZLE8d ztouUw|C;D)mk*jUm%9Al^}^Vy<7CVc=W}*Biih)iPTLr_*UeMCcFb>Ca`&&L_r+Bv zxM#)eeRXSLUefc(MfNY;j_q3iZMWTHZlj%byX@X4^&6avcxT_dZI$7H_@smXv*y?s z?vL8PWB;PLi;HvGOQn8Cbl*rn*LQ8p;n3%sUq6XjJlS@`Da{Dwt2YX)m+MQ4g}TP9 z*i-Ooi^r6O96Ahjn|-!^)Y!0iQRKsTg$;?0)@^>d(F<}CYMw+|)_z&)%NRcU`-!mD z!ee&1+>c-M!VZC2AA79-T2X6uOt0+2JzWvpmSKD9W=pLcp? z*X+Mj-$pQ!*|(m)IP>P%(|s=IK2IqENIwj$|o(w&d5Z_twa<9yES=z5um4>>}|c5hR&|OY_UUtqyp?eMa!e(K%UbxIY)`J-!jWD`mqnnV>cDpAT3?tUcUyDn0vz+4&dl zxfBdj<{fXl?&u_#B*{^fmmmvEyEbwjn;!+Ex-)Ck`=>CzUYHzuY>-x)# z*m9%T=o1T;OI2(BXgMci{k2*oczIpI^J4Qd%iY%`ANACwfB1UlIA`*N-xK@)J~5h~ z9Q)z;XO{nE)7!Ir%VR3-!Yz+XU!lHefBL!Rhce~6Q#O3)`FwiOZSX~I73XH#yk4^6 zM|^WuVi>L2J}Q)Pkilip=|w`HRjozs#lI(#h2ZpXue@Uf;i z^WqM@q!gJ?X;Wm*dnedctuln7xaRzaocY8qFa2I?2p4y zE00GRsuk>=a5cYfv+S>l-KLXXXQ*%9d{n>on)vyP*Nu<-<-XyPzK7)%zh&gx@_Aop zZj7;yonOAuea-AS_l;j{uS>gg|AeA*&WZ5fS7xpGb8~KTx`Ox_Rrep$j$3EnI#@d) zS^fQ~l1E*?tzSJ1pV{$Pf9=b}^LOM{QUO8f=nvp7&3KKd&Nn_cn*QS7-d}p3uHSF-AM(_xJpt_N%jMgZteN)lZ^bzg#yx@vr29_}|FbpjEThe^cI8dy*-;ChXY> zvEpR=Cv(a_vMT%tdAjbC`up-{YhOL@Ie*vYchl-)=NfeXtostMdJg-sqxx@k*xjGA z$vl0o^Gto;ho!rhS+BF0&sbU0RTcJc$Fk6v!=*BDMoQcB)>Q}olv??W=ln{(XI^;{ zZPO>~@BPgB_g6vU*PiIuM{Tb)^d;|TRlamtwSKL8gYRi@GpK@Z=c(+tle~uutYh>l zZrZ-u`OCR&bKm|3pLg-?pP;Rt0`20H5^aeRZ4dR%s3wD1yA7uIB!XD)4#gOOq!M>< z7oU{4r#Zjo)5**2@^uk?d%ZurKCQpMrt1CP@25T{S|q(nm-u(UdVk8E|Nnlk|2C=8 zH#&c!_NT)KxvoaAMc=Rc{r0l?{hHvu{oecj{d&Fpy#4<@GQYoE_TMjky!^+5W`3`o z5B;Yv{9 zgj&$y;KiS~CpFIm9S;6T;!Vy^rH87AXDrZu6}3&T#w_0#v}<(6cZvVUI5oZVffY94d=yPl-V z>?Oz3xeh8lxSpOcF|s0mnn=*K?Yl}>?N`#b%6(>hEMM+^;k9e0p6iL|AL*T1%xoQP zZM&}Z@tXGYQ)Lp`&&uq7cJ2wg{9hr)oMXQCI&E(|+x0oS^BXE0mZ;n!w)p&s3)|{a zzD_a-UtOB6^W5dj&276D)u`*;c)HX18~c^i*?W$73;$GVztT~AfO}3|jf4BQ)b!Ia zA6{E*d(r)I{g)Ysv-k|uk2%IP)J!@3R`$ru=Pva|?q3hjIajxR?(6pWTcQ``zq(X@ z5`DbmR2ciC6uGSdPxnVl-;KKaP}TUj&7Jo5u|_^t-NzqoTJa^a;0trD&bC%BK}C7) zqtVNc_N}ux=k(d9@rM3KZ{_=OUsJzMT49l${j^y8nQ^%7pS1bb+sdjYEIs?Iw=&QV zHXv0f6TACQMZ^Q>2~eqDBx3{9dt$36)Czw65PftV&$pM((@i_}7};D-?^8J@>Zo^& z`DT1_^Q)%R=$|k6AMf5_Rr&6L&6kb&J2e(e-)3~tKKbDC3eXL2^S)~Lz0aBG{Okzm zhBwRhSM0aXJvRR(^Zep@<6jkh^*47+I<+t4EAuhv@lT6*k`t`2_m}Rtz5E&Ig12s) zY?0J;8?H7+9g=^wNXlKlZ1KHSW{c|Gx870(1;wXH2lcx_x4emEPD!;9V`LQ)KXWMP zUSY{C_NnhUsy@k>72Q#Ywc2K7_x^x6UyQlvenayM8@FB-Ht#(D<^7{CtP{*@&Fu^2 zUd!M9l_UMd@Y~UiS-RyLpI1eHUD&=)CcE|XV{Z8~-mYKfKEJV!Z)0rCg_FhNp!0s} z9YY8GU(e|=(q3ix;Pm=S zdsoT7c=tW_FT-19`HO*1r^+1twszYt%O^8`eNyt8ZTx4&yyAUUTdT@^!wvbbf7&=rIb)2iGKj+&g5Lx|2dcI}%zsiEi`hOlr+CICmXQlbG!gTG&-q*UjpZrm9 zpFL}9zjz;L$=d;!xoj&PX?Z&6vXLKtzHog+txLW>?C3q0#)|cb^JfJu+uX6bm%CE=p40KL z3mzL{%k{X_Hy++q4_V(&uJW9Z}sO@Pwj=1{OpIbWUMwm2gl!P@sksE50s~T z^1gH9^TBDBm*&@+oe!)N7ccp==kTAD_>Hpsejzv-?H`7(o>3MkD_8yS2KS; zAL9_d_2SB_#uaAIX0&HlmYrPiA;P1($rWks(#&4D(gxRVJF$sOfp({MUg%L~zs2-F zq+4#@#OLMTjaJ;a`Rdo6=AQzfeQvj9qpfX^Ip0qImHGP(plxoSp0>=eZV$aCpJ?~^PttWWv%AW3LFJ7@ z-0D9^EWnq(Wgp(Uq3**;%LRI{=9%#8{vQ{)_q|vVdCaC+;&QxU`wJzvV~n+ddF?+R zgv$y&E&J-c=7pkNjr+W^E6IC5>|Q0G!1veC-w?EJ>2aFOPl?~5+pKo9?KE4p)nZj| z?Ao$}Y{ggH-)u>~bGX!Icgl_e9hKZJJ-sEYLXK*$1X48hQZz2r1h`t7%RX?HNuS5w zHAh$H=FL~XYFK`ruymB)m3;r)H9vk!P?FtJyKSxPrx$Kz>xxdzi|wvC@HQ#k=3Kwa z%(-%LRu#I!19q>U-}-#|;Jp1_ z8~1|F8t?yZvt}<=(Wp+WqZ}D+TS_0+54Emp3s_~A6kQY z*FTt0>&@O%xNgNWp6`z@zG9Dm)@o@38Xmf*Q{(t4mAPi+$5!Um>lbjP%)I|o``F@! u^D!o2A;oRKKXiNr4MP?Fn7#Zzd*(*-b*FEc2rw`(FnGH9xvX0|NtNage(c!@6@aFBupZ zSkfJR9T^xl_H+M9WMyDr;4JWnEM{QfI}E~%$MaXDFfjaI>gnPbQW5v&@A=iXw=18w zKj(k3@xWoZilXImE!%c>`jjt`)40sdXWQMwD!IkcL_@-8!$CEUM-Lhn^fD`6@MY^N zn6%{Nn$2(EbPeelEop0VfW{J@SHgp)6wrYwe4F+y8&N-v(0ABH&}?8{7GU53KB= z%G_n^TuR!(G6j?Tg2R<|Idg!dEIgO5)b3vNd-nZ5&!m&vKtddfE&eY}N>vyAX8QL? z|KFqV{hzJ(e_nn6NALX~t7^6P|Np)Jf0}Z1&J>8*{r*=k$qL?mf9Czackk=2uG^x{ z^gI9Gv;2L#{;mK2b${LNZ|U{l((_+-yaU_*+_@^h)AwSmtMcxxp$1+Ght~i9wZ8tX z)daVUqS$R8j@SP=KL19jw4LYcsIQ;rzOQ-y_Fnw&t?|{~!TSv5W0mDQZ_es}m)d!* z*7?+Edt9rZ+4{;8^^p3XOsBjhr?Hp^uj!|w@g5&AAu9LE&% z{jF`Pa&bLK~#hlLmO-)+a%rSEbt>{{U(a4M``BZ76Y+(w3+6N}#! zHLvUM`R7@@Z{F&HT#@&;WS{@Abuo`;5V*29-gb3w{Sk|QPuL&oT2FP)oVt2jBFL#u z6*(93v)>5aEnPnQZqyMq>(d=>4i!bUB0U{BWd{Xk-}<=reAMJ;aqm`VxJTQ}dJ!i5 zAbF44Mc>(1KTm0`Ue$Yw`PbHl^IPNDAs&C+P#1kz>@J6c?PK4lMN|E6zA)^r%4@0F zuyXg_P>J=8y{E1_+HIECk6hjTN4GQilZD}DeYn5i!Cv!p(V-!f^{9v zeK!|geYd$RbE|VNuT#|XFC3hUgafrz=G;6Ps`!$-)Sz1>vy`EwTY+$gkp*VOEy z^Ya0Bp?3AU&z`fgt)AIr%7(9Ce}1xj&$8J1SB`N`snd9KkNu6AJU_4_JVeiK_iKoq zA076u-Ke!|s+&caqOQQin8R$2I*NQThusc^DzucYZ8|Y+g_zJhq1B?N%%3SnPvwmN zYAD7Tl~b~&x+Lb}V!62t>)r;hEKO#QIW#-FW*uiql-fwoE4!mlS^jp61pf0342d;^Vf8}`~PbH@1N`c zegFUXf6ediGyk8~|Gv5Y-{$|H-rJqLv+<|=|L5~-KTV%2db8%=-S|JR&i`Lt|2@>M z=HJQr|KF;Kj7y=#By=f!Ww z?SKCM_A~!~d;RyV*?QTjaa!FsqW7=9CGhC=9DQ@OGpnW_zWR2J2{a|dVcTel{> zX7Bp-k*{CQD=o-g6UVyGI^wzY@ARZ=KMED{zgo}tu9e^C2PuZW|NHR%o>Yu*m#5Dx z&b4P`rP+2{0<}Ks?L@QSf#(taL2~bza_pFrSn@KXNOhpnEv|( z^Cuye2U+e?)?3r}KHC)fZ0V*4`RmVX-!|BH?srlQgXC=4Bl_2`9eXu3;8@qKcC#06=C?*ZKJHkn5nnUuo^@T^ zRKMVGF<0|NZF7B6zx3w+|CGyg?cnPh8Vnk57x>-(?R)N{>8*gYR}MQZpUq)Oldah# z?sxa-_xc~-o2UIbmd&^M*CEH!d$Z15>HH&F((m(cty(ymN2vY=|?ZE=H^{ ze7Lu!G$yiKcSEwws?Q12)@#2Ojlcdw>gBV(=FNOo$zPQhuFa6YwQ~1AoikGQd>mCz zz5g5Kc@)=e;f-H@`N~w+i?Ql6SwxezmhDM4?z&?-V@HV*^P3ar6Z_VmYjeEH+O;*| z@s(JEgpKyUd@p|7y4)sv#kno^^Jm>izL3O}C3Go1RyucMXxcI6>!KGN9pk>~`Te#q z38DHr_$8Dk6uf~KYCN8b?usC`kFeCDbqK-`Mc?3 z2gqqz#+eKU#7n+C47T!(&2%-NyUH)@uyJK(N#DsE8yPPNr7~H^iqBeez}8)D?PG4~ z70(5xtn#+qFOqX-S9l-W!kM)X7sOV6T6Csnl3M)D6?-?R_G;X>{@FiG(*8?fd2S~p z$b_;D6Su85UANBqd&8wH_N(=<029hCPS-!hz5lW4C$^=>H~tD-v35)H?=v8W)dVV^ z-!=K%#~bGpXZi()M}b1jYG%IO*2%Kc0lPL`tK>1TUB9LLk<~tr@_!p;o4wXPzVvhJ zuJZ|L@fH)rzh5hU5?pS)!*AcMMm2^jTMkb&(pKng1h#&n@#~c<>W*hWuDmJt)s#E;T+jXscFOL*{%U+WTKLwz=JEPlZS(ws z!`B@5X6cP9H<6XT65=R#ln!xxCC0^)=T%mu|TJ`N5T1vA*@+b@+cy+JC7k zrtR|rhlU^PzUOY-e&$x|edTwpkF)bDr**9VywB>y?qe?6C$yPs1! zW`urU{fhNtY43Wzcei)X>snfRL3VZc;;$W_O0LhJxbAO%&wSl0*JZAo9Wnp6D)+@p zlhUV(|0hhUdGSHp#eAQ~<9r?=sfNc1?91OxHD*i*i?=9wd(MxuQuC}~nR3;!+o}08 zH?I9wy<-#aSBgacB;wi}9~R zjrm)@w10Xyxu!H$c;h{0@1z>;?PorD|J?POFMO-wk?WT6c|J2j_1m>??{vDOu-~u_ zn&>2EUE^fonA~GVzOfUv50} zr+Ut>Ft=B(wySy1)Hq*}iq7v8F+ROGoc;CL5Yg>6*&p&dc9e5Yt!>lac-3xm&EBH= z&aIy;R-8FC|J%b<-o>(CFU&p~;yzuxW*oNuCLR;3uRecfuEe{; z66O-p?#KRYzL@#y)S?&9zRouh>2(RXvislb)ef@KQgOYuLAeg=WmH#8IDfDF@$P*o z%^RLqd^u_vP#Lm5>+r|0yXgz}2+ICAwEWVhnUQk)N($EB%G&d8N;>zu$8x`B{cgP# zS7uz(c-d}qjpfffTlXidw&A;T+R4vack0Y-kLHL~PMzp~^UR~Eze7@2m@Rs?{pck7 zS6Z_pb1RPjYtnxG^oj9i-otw(9>u$aLm{z_GI@I2iY*`KB+Fm1qFSQo5><)hy{EER#-u18Z&7VvD9C16Pj~cM+n~JU#1;_nb(|1^V zq0JfIgBFWw-U}XI*HYG64%U5czeX*`Nh;dSa4|9>vu|D1mhh+5)mrEC( zV|ZtINwZHsXTiMWO)K@j?z!N!#As*f`Z=;GEa6SMKeb=Hx;62W&cba6NTvJ z`ds73!vDuUr`NvCoFDnM>gvCu)05PS{+W+Zp~g_|*o{ za9NG@w>)aSW_^3~>x@~;?r+yczZQL(c{e`XX{P4lQ-9+Oll8aEzqN7qKOY0W1@n^g z0_>mp*w(9qYuoK&>#b(axKV0kX||vw^-Twt@Xr_Kw#UU^p0nR}CDrEq1BDG&tMBYO z?<6c3|0Cr=klNPsXFe6kf6w^ty>Iv34NE`CIPRVuwc`j+eBSRftFCK*pB^m7{)pjF zYqh5K&k5^3PsqOFp1Jk)%qrcFr)pPOg=E?92rzpUc77uN(`%)l=3Q(nf4hG5D{%U? zXF4i=>R#-AsU*2t&-rE7=kp$O{JUvg;llWqcc5bC+GEuwx7GI_$Vy)d$d&2yVLKk4 zzIegObldf<^2hSi{O+bNh@G-g_d{^`lC-Jqoa^^E9GsGHzI3}yb>c$x`?~_pepzaD zwRmf7+Rv(||C-i*l5uSc__|_uj?TXYMjt)*9=GZH^s3fNcEP;atX~f=zqG1+>&@F> z=Yg`<>Fe$emb<_G;dl|v^4)mL?Cx9P25!eU7P(vb##WxNUlPNm7Y%9`*GxPnf86Rk zlS}N6u(0#o%ioE*IF{FSYw5kJJk?{r^!v1Q&UY78R=&8sGJ4+LfNxQCGhSw|MmVX_ z>OuD&RSrRux$=c2`%3pz&7Y*-^ZdKh%;Pis=B90b82kJ6D^OheDX-M(I~!=_8yhKd_tw{hf*=Q`6BZV- z(o%B|ww(1i+a8t<^KSw@eNWyIWi`Z|%obwOn5qK>>d6$gilhTiIKz zZ?_d(|F>&Z+@X`{)AYsDZDThrocrSula>4Ipt@UIZyl11pK3Z=b+6;@zHNQ_?WN=D$7iiV0IA;ltDs{%O`p>uje_j9Ye*Leb z>Lq36ixCP9dh5T*|6OhVkoW)V`cLPTcm4mrrt6(#{^F>r+d?PWwwIUY-&_T15rMmN zcR$7aR9h!m`>-fH-sj){=kxz<-hT4`_WQri*ME)wbNv5bMd|h}4|kgVIeY)t>-fK? z>;Jgtf1k`>SyuMpa(?amv(MuHKDN(TfBwJqyFTT(5JazHW$O-3U z{!G!X-I@G&m8HZy;bVf27w;}Jha}BC)8}!Xe)6<*W=Fs!j-b?cHx#mFe!0;TBCTNm z$?{iT&GqRy0+(d^_s#iKuqX6;q{Y6psn6H#tNU_x%5& z>AlXkKGaAT*>~@Ck$8EIukc*y8v)k2XL;gw`Zwx3%n6T9{?GsaqQCvdn@xXq$|oNC z+hjMT_t(VFU%kbjuBpr|y#8<3rRmmY>t;1StW4xFbla5;4pP^Py%K*v`v3b|{dxb# zxAFUGi`^Pt%}G{fT)l<4u}NX$_uD%kXKz_}=1OBxaZIjjxZLu0kKXM5m;SZ&aBS^H zi4D?=O_~@3!^_iTK%w~4Y>L3-0OgE+vk&h3|1Qt}smx;KXaK5+%FHvPUBs`K*6F`G zz17ZXN8_a*i)*H2_P^i#?fTSxcXrlXmEk$>?ecwpdSJ=x*+$2Iwe>`-oqThnr0YAW z`L!RP-rio)bnN1B?`<`uW*sm6MAlC|zH+z1jYR*r$ENL(wGRuz<9#YP&2_nS-jxOx z=Ez)Xdwx40r!%ibp`gbjVw3f0?eCh$x4e}+$otCs?JVyDS8G1AB0+ZCNzCb5&>ejVBTZPaJtVqeoU+p*Q2GU&*83-6s#& zx|g-e#@}$TJ?_`=YEg0a)56zrmO=6}Zi+|Wxhl@xCMKZ!<4?&crbP}9ZdfegJ-(wQuG0t@#a)BdhmaHiBjW3t_**S_{A<^P^q{%IQTzJ>Re*S$ODa6I<+ zYp?isH+E$4wLNz$-U~@pnXcPe(&z4Y!*;#%^^Jy0qUT=z;&606zu>Ltsy_WobL(?f zp03!Z-5>p3^30oV-FL56bD8TZyqR~E^~lCT59xXNhrP}g?^z}rVB6KCvEpUqo}&3) zHHu3z;@=&dSA6Sk$-}r$>z{vUov=Q0h1r6lzUS8OZpDZHDti7YwAjGLyi4-#*4-B~ zUv+)0=uCK|_qS(jinG+JUgk<+lU>=~7W=HEn zS7IfPA5+Y&*vETx){C@o-|G&K8d~eO*q&bfZKaEOuJx^ujWr@QllNbG!hO~4P@c$} z>^occulusq)a=12ONn{Y3+LSjbyej)@oRqFaa?qfbo`Q!#|yWvHA}9Xvn%{YY7zEvV}_s-$HU+;*;+Ih*MB%l|k!D90ysLTY72nr;cxq~y%l9>(&S-sx);GWU zrE8Lx3Efqe@8fNnrqBSdZyF4rJ$~?Gm03qdUnu)ci>HOJ^f=059^c&can|8A`wDif zUjMN&NR0JT=_gAwzRbg)b5HPTf7h@VtGYDjdg;0T-Shnl>z_5h z&ocgI{qoE~|DBhv-@5Um!;<4%mDOptc$-(#FHF>~wKU@kpC&2cexvkyLRe+mw4b0( zEUXJA@J(T1?8`UrKrKvYWsoTKMn!p#_T0O7Ux3Ents%pK_y_&Ss9{d6dNJ?gGwtWP z6X(}|7tde6D%7s#Q`fgy{fF0>2QhuU6y5vdNLkJ4i)*&mS)O^pE&gx*vrEw@zTL2} zN!t5mnU>u~+fUC{xv!f3%J9>Rue&ZyKOFiw>1FPmfVXKsns$F%X*@lB>%-7w=6A2O z_o(%VAL~8F|9Iu*YB6Y)uzTJDcLtXnr7ln92~&3_H?L4FNHPw}ZTNHIcx8QE`)hAA zj_N-5_$l*?xxUSPQTED?`}p-WpZ+|UZC@q*ho?qtMg3?0e@CNdh5vrHv9MxGRquNJ zxTqD|E4Eavl-tuJZT)ff{;${PKiPV8D%fpPKQmoidoU z>h&LH8Kk}X@o=)q<5ipM*&vSVxG4YsNqRhVZ0|dxUzP2)V|MlPhb?^F1|3Aq8{gNxr zd~n?drWQBNJbJYBL+R@O?AOX&%lDR}Q?o0dm8?r}qCA zZ)bIWxp>je$0mRk1HmAIwZYeyp*2!EUv*pS!Z>TNPJ^Nyk~5 zL84W@W!p8igg*}H|9MJg?Yh*J*EF|Do@q)li}Jz#WTUd21`{PI>x-TKoY4>FDepc6 z=_Q%FmcGn!yZH9n-l8RT2AlP_DP(AMWC?wEJDKyq#_Y!*GQKtyZju+g+aIys{?}Xk zzo+_keej%BomH0|6A3DwVl4F=s&6=|=sU*k`qxwZ;g#J|U5A&2dgrqaYac%rTibfQ zC4QlV`q%4%eUkPU?tX?kt@Di3pBudE4xZo0xKw-2<*$NF>*qbbtsNp8zr_0gjiBit zB|^fd9$)*LM<#yrsl}};*#h^qUQ>XCk%QUe+Nc$>avS4r6z;p%?R%H=&LddpY}c15 z@oz2OWq11e+}|N@7jL=MbAFcH?KVHVkD`aJU;OcKhW{lQ<9QO!SHI1CVN!auYLAP+ zpJ{bmF`E>5uO4gM!?_1KwAUERxbNMz4IB;gPClC)TllUJn&>q;t`++nVmAR)k z-@0&8eV@}0k!Pxp+mr1)i_cUf@r2$^2X)2U|2TWuzAJ2faZEh(PvM#KGiCG}IiA}s zeKq+Vd=JsH9h-c%?%mQD3a^NwRdC7 zWHUCro5+8h&Cy%oXxfrzhxLrVfAqW{`?;{7CREzR_V_C2v#Xsf`>w=pNGRZSw2v#E zaaEk}@#p=&!~;qvSefzlhpiV}cXwf&PQ%qU|E1Y+(eQ*KbMbFa@dxGKQ_3pW|JzlR zbLZ-HxjA1$4EyyH?v_>@t2vj&`EbhfE~Clz$*%qC2ZR314oy1_8^crhu<^7*v!b8i z5!2%1Zo5y&ZVFt^@$O|!?!zBaxiaxAH95x*yx+o~p=i0e08~OUY23Gwobe{*!<>79 z((Uf6!&?&?-cDqFGV#^XcZ`j0W;I3rTMKt?iVOc$v?D9dVv%&(kEZY!mzVCeSa%d6YifOh2Y)=`*SX0mpPN4Q=0;2BstH3H#G4*mugUm4e4qO=M4#b9;)fmWa{4dV*@K3V$f!2F za85~W(%O~2$M#I6_mk)M{~o>lx^61}{5^~IK6`BNx_8PR%ayk}KK6RO|M+YR-@p8& z|Jt9PkdtnA|Gad&<|~_go5%7muh+;_92Q-#aqU0z)5+oI^=^jN-+24C{cm|~_MOmu zcm5rkeoyC^`nLBUmu*zuxHRbVtw&z*@|O2K^?T=UuKhLf>#8>!3kyC~UYj9#ZKu|? z)?!cxO=DN3za67YV&@GPk;!ff+QrA)jxsuSo%Ptt_(@s*dF?;hb^13I-dM`jdX@zD z%{rbQU-NTnZ}9g>feg+RpIsAe&G`CXbSJD2KT_12u(@1NQ9i&fYKq5cx5l3E%VG6D z?tk9zymNZZj_EdA6gFDC-B`F|wf^$`CngsQ<=vS0EZA)G4e97pF)vTgJl)rOcm{uR^TtCz9?U4-{OgM5X0V|d?zdjwOnSE1$yOkBi)?AS@WRd2 z`RjU0%b)N4y#?HXUmF|Kr)tOfDKx{%tXhn{Y|>3fw+nK$ds0q^r#J6dzbInSY@-jF zhPr`#es@{FC+#nP9%sRLdt+gRN<52%n(N)8jPD-S*gkif$6_GXwaXw=J@MG~dr@hh zo=!Hp?s^^^z8kN^J4hW|_N7|S#Xb47;JPoa_Z`Z8EzJ00?KpPaN=LYMo@tt$RFAnC z*NXXOy!VvX?TC?l{q9s~?XApLUfR0^Ckjm!n#bYRWOF>_%?*Z^AJZ@R)p)&N`Yv-* zw5%qP`KwG)RH@?HxtW)yH2YurrSt$?Uo|y&9#EdZ)$||^lz5Mps&PD@sc>V0-KGYO z0LFc(;KlSQmco z`>pr|b0a^!$?5yHGB^#?I;bi9J2UCo;)PX#_jj%SKQTZo;Mcm`|8X%lK`CR)qG+ZW z4tjwn^9n?#_VH@OKAf|zUm@db&6l`^uYM@q{ds)au7aNXA1{i%OFSNZJ#~NB_eg^P z34^ItjIkicwoXW%J|#QK!$ba~`ibE4Qra13xspz`xB4BL?742&E;GLJucnv2il3N% z=~H}e+QOZ&l8-x*9~Ugu|LWUXT%9YkWBKm>KUey{N+6tT8-1q6WQBHo%nIpJyH8Iu z%%(hD6;bZK?#*TB6qaM{%a4;(r7yXQF@L&tZd3Q;)tfIqR$Y8yU4Vbi6i}1o)3 zk{lViv)4Q7>|C#uUjH8OIWcI`yuTHl3+8o7v2(3V!!b8@N}bJJ?CfEzM67#V_}6!yz+SgV|l@2_mypuib~h)HV*%ixqPKI z|IhX*Rd*h9UF_Ar^yBf2;<@>My`7iN-4*`r-L3FB4%I3W~utG4yQj z?jpzWV-L^m+x9EFCELBm(n9I_#=;$!rW>=%O0$1T$TKvX5iFCvrsP|}7XS6@t}Fkn zIyPe``@RE@i{A=1Mw%(#6`$U(!Jpfc`?lNGV%Cw3J2$=Cd^=#yUn8qa;OP=J7S-L` zO>7=*ss596x~;V_TXs|6bFO!h)mM@^k6+KY{4?qLETffiHDL#J=X_)2{IWM*sYN&g z97IbWG|6(GyeKQ`>*iReBe7WapFo#R$knp-@uybVL`<*(bv|Wlcm55v+%2%yaZba# zSq0$obhi^Y&p#;)oo|&|21-HGZ}C_^d$jq8k9h6IcxmCyIWl&OY;Mfa+`ZUSX14Zg zyWPC^yZwU0!(5?jDiUX-uYiJfz;KVok+KfM1-b$RywEDl^?PXkl0ScT@2{xtt*T{K zS)Z{UIx^>-Kk13D&z_k<>zB%}-<`i?&OzDxRvh6!f1P_?|MO(@@M*e~$!r#%6!uV(M_e z#BtIVRDQH7Fnv;%-}`9BmYfrli=#|7D4$)PBlF?#Bj=g!-)>m!XXQ zJIp;Pe`31Lm#EyUlMQ2PA4nhDbM1j0i?ChD{)=g0*4DWziuat8l+KyDt}^%Gk>` zc=IoG_TEM@M&`Sw4{uoP>C*o-x6t8!@tK{Gf1f_+IUHG1^FTRlStQdufb)D86csmXkB)veGuySSTVzg@}Q z^X$Nb>kZfWm?ke`vj&%pERItY4ka0KiCkh4U)s+Wb&4J0=t=sWfnSfW`BzkM?BSYS zlhq$jKDvJQIf-RDLM#ds7i@a#n!DU8EN$!N%Wa=rv0eP@k} zQgbRzUf93#^I5oWi|gCx8$fGw*1kwvl=bM9AvcS%@N`HAk4X&F!F!v>jHovsMU^U^ zH7sQ+-sgd z&2vO_{lr;y%UC(WrZj$@vpD9)uG0CAu{@$TB3iN%iXr9wQK$2AkDQ-B_0Igc-i%Kx z9$X#1d$Sr;AG(9;!|P(F%Clw8t=Qedqa?-Hod2gN@1-EOZddjE>UCGF`mP`Q?0)NJ zuJbD&De0U_AI67!k6%CYHM@KFucBY4-(F64`5F{ede@k5{=}tKeQyP)y@YfV4GO2% z9gBi>6Q!WtL`Tnqo{Or#oV9&ZrTz9wt=QcL^$ogz&umWtwKQa(oJ~4dcz3JfgNC|W z&x&)W7q)zI1Q(R+pLDa%{r8|at={rPxUKuoR~B;u%ddJr4w|6h}t{$tJa-F1AnbC<2N zc_JV5s<2-hye7oIzrSSPO7*Xyw^mlS%67cl!_4i+o8(g^_Tc-E=4rcsNh!)Rb&6HI z-Jom8w$L=9WWjDV8E{EfKXIA9#k`yGeCI6YgqEM$?_N=~cG_ExsGQ@irD@jrTN6dC zH!_9r=3t;n>>Rl$v{oB+K1%`+9zU*E!#j{P@Dt#g-?gcUR3T_FhySHdD6O z<E1ovW`;eR`w$St|Rd zz~Nn%C!S|muRhb~HY?S5HScuD5D@cZv5%gr0?Rob&Dxo~IQ9wO%@qq-zL)IVR#4Mx zHdnulO=Zut16C z@?L3Z{mz_TPyx3+;E;5DO<9w)ML+NNlIz zIUk8k?2351t{t+>7}A;DV_SA`o!JL&!`*iazFglDjx^i#;iPi9jb6(KyU+6{#`RLW z>W&n>YkaTf=^oWjpWpv`^fq+ssrK{lcqc@ksZdtUH(GVwebrmgK>frGoV!I+AKVP+xvHYuOobWO3$8L|?KVG?M3+j#QbmiTP^}nFZpyVQWbcx`J zQ+GBxUJw^#U5FLl zd~D(2shDIqrX2r3`U0(m@r>i#=-l=wJGM7FIzP|N$PAg4t8QG$W9_cyUDMZlc=1*5Iih#_qx4xg8hcwmop`Joey!Weq1^Y3 zR6Aea`pBn+uio9Th`G5u{8v(q^1mtXT)wY?j5LK;_)6Gw0w!-es|7 zwLhYNoWre29^CKDbTKJgBs~9CBHKI5P1wEghZuS};-OlN+jwqo|W^HS}6;pez-tlFKu`RLTz zUxJU>r^vY?IqL>X(wr;t?iOi(9LmodUjTQ9RU5KDB%AMGvp>!@WnF>ab$5Hg1ug+GEpp_qE}zzaunuXM4v)>c3*RYibB_$<*VpAb zMuOHAz^r9N?CSF)Q{Ux$c{(Hc7|;F#Ms?ScZm%&qpLMto(qt^F zxLLa3AhZ^16oJ=bj^)r=?5oUbK2!Y*#%(s?7IDR|^dbzVeJTVEmfjL{DljtG?Jg(- z8kiJ!Y}k?$Y2i`4@7dO)%HPE8e;4)ni=Dg(8uGVXRCLXvq~La?TP31saC_1G9p>7D zk^Y@`r!?y)+%4UaZO7+lxB1kbH0OUkqPFu`yf@~C%}n3=PzcgEhYg_aKCZtlXG`}T zMd{Km*lLcnv(x8kr)*!k`yG}MRD~;jH!N&|_Re?_BWu+vgJo4*^ zp^`-WpT^Yf7fn~6*?g-2l*r(H!Oai3rI;iX&n#A*bNTsZq$Q0z=KS*JJoAh7{o)sh z$+#K`n|BM3d+&OE-U+chk~+P{HJ}9?{KfZ#PQJcYd3XJ%hm*HEUaOHw+dFZRdBCS> zXQJd@Mdm)Ry*KCD!T)Qo{NEsRGx_m{jD0`ce}3)l+Vioeeo6f2!Uw$Jdlp6f=bz#q zXS+Kk{BPp+@ABX7e_dM`{9b>zA2v)R&U9fv+I15 zgSSHRrQSCi3oBgWS*rIcP0MDPy|yfNZAcy(mJhu7;kj~{zDv1VhiQ-Wl9_>Ojk`15aF z9aq2GvT?@29nPD}kGI)m{oFC%wZk^eJ!1G?uy0&dgkyxklL9Zpk;KQCo0&wET-n)QnRY_|7;;W3~Q->0iU;k;Dz zZih#w7t0D3Wyg8o4&j#{#u@5%TX*x`DNYH$@v)WnN-;a|8c{jYC75)9x z#n?QB1fdTcOPUmRTtD{kVol*(&O?=I9A-=UbriTl8s1wyEP4Az<%*MwCFc~G;Ico3 zZ*GBI{96BkOwYIU-y071>iVs@{m3hR%l)aJ_kI)4NS|h7J$o_K$tLkJ^~+}b%vce3 zW&68V^(s?Xr|iqVy_KHo-eY$!hhAk{pMZT+d5tSsYhCU;Ldb6uL07 zHCasm(v|MwHzCS>j7ZnPO+_^+V*Ar{-OA8V}M_4|bX--!N) z8L)9Ha9U{I_33EquE6KY@qKB|k?Xoj%b%PA1u%HJ@XB;K{m4yY*45fM>D(60aJ);>kn7YHx%IKc^-6>_S;%@HFjxS_-J2BzT z$BcbiEb>RBC%3jP*<5(>{H;>ON3#v)@FqP8bXEJA+4LSXn!jG~)5^a`{a9bBrm9ht#j>ox1&qlz?GNQFO*OnMeKXQRRCwq1&OE1w75-k)B1Py3qX ztRovM&+qC#v#Idc7trboovysU9~B-=ZhJ5Hvmhrz;#fMrD`YvOu%R_{c}f*%dCCKM z#1B6kblfQB{q|0vQ2%E}`l4!+LmLZsY+k?ipVY%!g7JKPCrUwMluyq%9zWJ-Gb6f( z_nF9XDebwoGH)-he*M*B-#o*#ca8cVe#BI}BuqQ&@%`vi(=~! zV|GK%9qP{*7ZakM)wzc>cyUK;{ zb)5oGUrcY}F4IwQFAp)1Wc|4@p{MMJv&N=?(A#_KG*^F0aC`;s`+a%(E&S;lr!8!S zOuMo{p1CCcmJ2+TG~swCJXd8IznRf}UdTB1%h9@ApEH{Ze{_6GC|>pk?&cbO&a$*JAG!h`s-+;mE!s7tIQtk zn^?qFUh`TZ=ILwe`Tw7)=lee1Tpen-?~9qX-Nw7W%e3zuJ60=Oog))>RQ%=AjfLCx z$7}-)pK-rB7|r zL+Gw&TU&+aryu6X^}^FtLR(FrcL|9A5IzEd4{<6AVEBA&}gb7n1-Uq|1#F~==QVKo{(9x?~7{g!E|xyL)Tw|D}KnbNgFQz z<7py0vunN`ot}UH5~mcr?o{p4bY46Cf!sOmw^w2X-fUQ&_t=!3Z9m(dGJzQ)rZ+%C zAzxKF7O@D5bq6k(pteJ!*5pEv-3xG=U}}wL&no-0uh4NG8_D@Pb$3gT8Kh2BVCZC- znya5>eRZSJ>bY~xrs)5g^=tFtv$bDOZ)_Hx|NY1ZQ^+vSGs&Gs+iax1$d{@w3y8n9 z=v#3FXun=qiE*H5q2PWQWr>+PWF~J+W?mwA@kXa#O;)+|j^`)VZ2)hLyTKU{>oJ+# zn)!~mrGPmb*^-DqL>3{vh4Rz|f)$RQ-5s6fjlxFit5pxb>cQ%ag{8MR%Ht z-fu13u~~n`bAiM!?3HC^?!U9S%Vj3b3oQS1gnz@2iE+2SiV3~CYs$WL?yYS`i|2kn zliITFl`do4`h3IUzqcN(+h?a_XD?)Y?2qvw@yf3+Z|&UR1Kt%ejbWYe^t%tN3PGFZ z4q3*^D`vcq+_Kl{>POdIpZj%7AI>n^pnbryGyl@A^J{Ve;FwYf^Xz2Mc%`zA zSk*THc`N;RuhaEg3j=;?&AFZZxF9|LZtauhcB_sTY}vmpU|;m(0=K)WDFPQcBx)W{ zFZS+_$Oydi`%dxFYlVBv=Gk95mnR*Re(6TS>0~aB_qO}e*2PEPxjOxFeBOLJ33=AoSWxj|83>{>U}JteBJxIN6R05 zUL#Q#9v}Vp=`9=S@Z;0moeCSySM7WK{KDnTSEro+DK3@!zQd{Hakt4oi*?%;#OA+h z{c){w`8&}vgFi5_3*YM5-ryfE;fSa$>NTR|8Blyj$ow{jj{d&oXZJVTDEIX`Pw#)G5U=;D@|vw;p87)W zXF-m@78b@Fw=BCiM#b{;S$YiR*^h^Bb-Yr%#_9xHp>Nbvg@oSJLdbGZ!>J!n%&Kp+s>R`_paLY&YG{MA3`RL(hf%) zIDTu!{8Z%?=Y#gH(>XuSX#K`%{Dy00H`nxS+kEOx#*#=gXs=Mr)!ZOca83wQ;Vs*` zjj8alRUO+`8{5G9_XOvZ^#0ly901xEJvz85;6z|vG!k=g)j#fH+~>j>U){VGUO({p z*qL{~)@-k{#4^0PV-xS)nu?Q*|NnWeKkz!77TWpUrWO2Ial|2Y1Gr;g2zTV#ET8gwrLXmqfvuYPK}7@IHC<`5WI&Y5x?s%(k`$DJnW!u5?;VS{EbPnnf`dN||gMApFPeFdrYf$VTsZFDbb-WL;^xbx`L z+N!1cW&Z{1y;kdH-+uG*vgw?fN7^mx5C2fi>)n6E31t=Pqv?oMs9RiCzc{kIY(ZEZQbkNeXLHMUw7ok z%D2W{@3fyM)U_7*sF&aK=aGySCt{1@%7H9qhmRK~}&K3v}t4cWi&N@=~qsqGh}TtF)(R$rg=w<5P&`}T#C?%c}O{yH6Znr)wd z`_odMTHp98;NhLP*^+PGuFtZMyL~vy?#H`VyN`0PyK8r~O!fyk z&ZN%b*<_RBJ?h5-w$`dy`NnRP(-&mfzjQv+^c)Z8t%VBtO!<(`rgK7ggZkRzjw_;L z83gX{Iu4z6Sga6r-jH!xT~N#>&>HN{T{C*F%dE>eytYPVSEPvh>|dXEAD;Tx^(Sap zVRq!3m+Ln_c3<=K@>SV`&9?Ku{*em*_A+$eD?XiEj`}aR>wlH?`Tsq1dF$Jt`Rg7& z5sp`^>3Sr6yk^p~86S^GtlDS{__!cd+UjS(^uUs0{_od{qhoHyv)o;K;Ps6&k4}A5z6L5fDm{|V7jBJxe9CU` zDe?U;F7SD06z(tLJ9a&0&exE?dycKCNxOMQtN-v+*r;reTxCr6>&>TZR`Xhex;i3v zfAvehvAU1|-3Q^&1>Xm;0J)>N?)6Tmw^iKhisLeuziVP`&MsYE!w)(L!rDpa3y+VQ zQ|yWujFDMzUVWgpqPKr~k5f&z_U~-n4_wC~Syld3?}LRlUzCq)#e+uhet+?bSKe~} zMtu0WgFj}qZ=PqAuEB1&emCFdPcu`ESKIJ~PpdrJ_D53th(TYX=DPD*pVyehfYt!J zUgTx5E0fGHIPy}%MOOMPXnVw5CD`@|$=a8JLQ7rMkIntYsH>7L)+br}(22oyiJ?Ix zbccldDskbt*~;!Mccx_o*8C7AGka!?Y2BO}H|b06$Inj% zt!)<-E4!5`(j0!)5xfup6w>i**N*&0gmv8Jhv7ml2FE)RYCf`0yX$roJO-``3U64~ z@=Tk421i1R!E9%2OGcglV9?d zZUD`b)O_s!^z~NQgWmK%%716|Gw1JkBzp8${eqgZ{M0G2U)%5AtG`iyefzQ4r>EcQ z*StKNRFm{uE?>%8C|b*Oz3#d%UnhQ^`{mLP%iGK4BiEmjlV(?+pWZt&aqjA*SPOS> z#WDN)6X64b)AsCxFXs_s@4NoB_2w`+6fg`0cL!;kIS{rMhf4e6;xFV-mq@7~VxQ_Dnl zwr%%eP>W$(bI$_XUlk{(tv|RUPln`$E4U|@38mG%UYn{GZ>L!t`$a~&efKXR@4u`|1arLhKX zG2~T`%?+z-%~t!*HL^D2>woe(GWpr!gB8h(8-8V8eqj5k>-5x(@7Bd!g{&Nv7Ss&v z{4q5_5_yFRU;rqrxzPs@2#Y0lhQLC`!USu0&{9c@92bu!kvUVf|`Yxk!l z+I4&I_fz*`e|HII^s_wfbN?Kw_(S2|3>_VnxxL+W*Vb_h-fwxBBcR-`WpvVCxCSz_ zF~R?>ewmhszM=JmGWg5}`}cE~RgcxY2)^`1{J8ON$nx-veOl**jK4qXX^k|y!dvKV zJN?!_+tZ)pHlDkv(s#D{T5Za--pk9~p@TH`c^hVXA1?2&u`tu&dAzxO5oFs(=M1E6 zABThNZYZvBJalK}?i2Ds-z8G|zqOg+@S}%5s|3{~c4yu>z5LVa%FOG%ogKE< z6W;R)exKA|rnbvnSw_0u`uD9@>jl@zethcS16wyr%`w>vOCAa?topNPQ!3_|?0P-< zeH<_LPvKZz>%dg|emciPmMCxqpt&RAxKmMyyX)k@3G&>>GTQB1l(<8;-hDlNlNP_& zl5^9O9~ZdC=hcUv({srd5C%1!q}#P?FRlX*nlV?#TwM-bT)fomaNo`!I);~Bb%FD{@ z1Hq^L*E3FKSi9b-JV#)wPgRcFD&7h5 zKP{jOT?Nm6e9>)G&=`{=aO$wj-tOGn*ATwbs15fdo;zv}EghwcW%h|xKV1@A4N-GQwhHC9{6 z&g53Qw&d%PzT&&<&9i%QuXnzSd|R`H_oHj{mE!0#QJ^JkuazHvb}vo^tr~THrto#C zekQlw?i&KoGu@)^PqDmao^m8>?iuikoCNWi`7c>|7xz!k`S~hG;JeV#E6vF*MO!7o z<3l%sw||_)+#JswXU*Z$CG`eU8L|X6adaQm2=EY&nPMlEp$Q*Rm{v4vvzdE_X+m+#6V6f>&STHqHc#W zz4?Y^g`U>&S@qlBO;!HN$TX8}51aku#?FHq!FxZP8ih|J^DLOte6cQnfhxa?@KdoV z)$4l?&#iT|ZRc2Qe`51y%Uki$J04H?(z9!_dR@cO{x6r-ZJ!YEex2otw^z1Jm3+G= zT~B#SXg=qMs@m?Eudj=hfBh=>@#n-DhR@~;?mMyC|N6PsR4Z_m*@AyheD|xZ&u-Ia z40g^B8|}9H<6%s5oP*V}Pl$N4J175BatPTqT=E><>uTk-Vz zT<5=&46n_7U0wchF2tqR!|HdMoj-PU-&7n60>t=mFW^v9G=2z1hAnRM_tsUeGT&Lxq2w`IEl2|*_+U%C= zy9vEgUIqTovq96&o1b_e^eUaKyPItjZ2vwN^SsUj362d4GW|C!?p&O%HcMec&eP3e z8P^MrfNItB`0%gOPhSJAFfQX(-ShEiy84dB&o>JE%WJzg&OI7sdv43;FzHVnJcn}E z{GRyhEO(tkJo9}tNym0_N^!lW`zWd1S z_dD8nzkU5Bw{Deq>b3ttp?0x5(|9GAV^$H=6 zO5v$ux?&qZLzmCGvvuTzikD=|>4jhGcI7*<{+V->8R!(Xf?PLgtDgnEyNcI#-HrMl z853E)+~4y2&iQq(tK)B;v|qIM+4f^oH$L@>_xo*8`|1H`NNEon#9b}VkhfU=Zh+UO zO}dR`@A=x{XT7|+Wr0$SZvJ(s@#wr(ugtR6h!r;~Z-ZA~ZIReqk)e2Tt8GlAzL@#D zwa<@jvQL(_`l*oTn0d(dBIVab7 zqk9RneQxsk+OK~i?H0Y8deQzRcu)PTyK(D!bi;oZ-A?z1j<$h=X3L`43Cka}|9C2K z(Bs478Q`N{I*x&ldby2s)JtC1t4B9>l&+V#`*hw-@n``PQJ0@P=Ox$KsdN;*xn*H9 zYyBz7izTUhtxmMts94S4$g7?G^MUj$%d%T(Ki1ZS+&y|@`KkDqi(@3C*L``q<^0so zO8cBDWFd7JO95})n=jWMJcpg@(indJ<6HQ-F5StGuhp`F7R2g?nRaX{j%Z#1j)Q4$ zj%S1ReGC5G;%#U3y(c#!@-+MXt?QE7?w@kMDtqnMl=E4;r)wvlc0aOl>$jD)U+%#z z#XIa-o;zpP`9mK~SKDwc`YPjC@>2b%s&u>iXVq6pMsdYEHpMl?s=s4xiQ4rg%l{n{bMQ6qO8%0y~x7U9A@=^+XFhKSN*c9JW*c4w` z?wnoWH;%r99^vwD;kkJ=;P_2 zSElCdwCc;gmEsp(Q~EdhT}6kJI-Cnc6@#7vzk{tk0`y7{1`M|U(owp_;@yGP_^-BTvKD? z%6i67_Lbn!zM-hB8!g6nY0mn}+``noCGzv{L{B_xylvrRex}*3^FMv~Yz7{gWDCD` z_hsRq7OZl<+AIx6jqqTf6+Aiwcbb8 zFaFNf{nH>T&Y2tgW7(v59~Gh)|>#{PxxwYU6fQ97TsvG>5qCDNe9D;@g;V(foB>%YgubDhJi zT3qlG;nCt1^Sg9N1)4MreBVKa?+C1{Ef$F z&DoJ}dUd@)>&F)L+9&P%%-Z!Bu}pN9sPXz$*NqR{__N}FbZzPy?&pxSB@A69deMB} z-_zS;V_87E2zB@tY++UsW87W-{096i=XW_)b9QyV|Nr56{?~mJwRg?{{U`ZAAuqOh9p9u}F`BGDf67k1syN)U{(JCKV#IH*dHVQTt(cFQTEtR62k_!m#V0pZpUx5!y5#}JQ`A6=Vv36#q{^kzwgooJC{8>hta%DaEM&dmvSnZ4ZflP%2NM}D8Eo!bZ5lzy%LPJ;P#0!u*KZGT#nivM&z zC8sVg#8Uq2ENo`!ZcCpctQ7+%_oo&+q#5aB}#T>(JAozt<^0 z<$3qxn&Xa3;vdAc?v5E`|vfWf$GrskYy1!hyabfn+A4k6Jy=St` zlrQ~itWIy})#6Uu4L)&k z%v~C4y$)f|`gob9dG^E3l9~G-wSGIwzwhVb?G4LX`>#)#{O{cJ`kkji8=n~p5AJPn zP&)ssE9KnAjDme!f~NvL-(2*}c+>G?4@GNqzp^Gb6h}Rglwb05%2^%oM)?h9VWIv< zGO@4YT$P5oj+67@R7mZnYz5f^0jb^c&v7KpEzVI{F||w~KtSbNoppIlui2EDRsnf^ z*0cGRzkBrC{?E_o+7;Lqaf&xJ9&K=Kw6T(IVb|!D-S=^OiU08#{_V++KWOdSweLdH z`8?fBvD!;Dul7ZPmzr%qmKE;*#-cr9{kCWvBZjAb{PD=BdEKp_?0>xa`E_F_c_a3f z`n4zjJm1{S`|ven9qL!#naQ=zZXMT7zPVw+6jt*MeLd%Djj~U;M-30nV{K}<6wCgp zwaSkvqyNB*Pm+Z>GI1xb-w@Yn&|%wE7s6u&b+6W=>6<)Qnp-wv8#A=Kw5bqjfBfc! zAA4^s%abwQze4=@UEA`eDzBW&V!sYuJlgi56x@+97Y-E`|9IN4X=3MTLrH5h2Pwhc zx#-JK<}zG$HOu}9=}M_h$UKn!p`Y=<#=;$|^$*OmX=re&y5p%5zv6pgZ0d^V*A@6( zguio~+It;zmdAp5(!Z0oSZc9thi;NTzjmXQ68`=1uYUaTxUzFW^0~=%&#EjxxW<*n zTZ@AlrAtNc3LPkYv`IQfeO)rMSGdLU*UBusw$0nZS3qt*SgN-v@-*mlv@C{zgk-^0 zjc37*)aBz47GwRS>VNL){Iw^=U+rCB)bo6Lz)!8@eSM%Y&eHD_=l@zH*L;k7zLhz1 zxy-p0yRE~tqeQ;jeUDjLDzm=#dHsJX$I4w>i+eR5zePyrr%zE-fivl zK1=^!GhaVl@at3L`PH_sc7oPMcHujC^YWy#9l_rtk%kRrYdueFFu3yh$>FBB%K^C& zE<2{5ud3_Sn-7{=n_6>qALx*1fd%e@KVoi++BLx!ah4y?a{aolfA$;K?za)>`{MsV zHlpW#ou2(U2NI^&KE?*t{=~jDzW?#LWrvY>#q0R#9C-hcUAO$J>xCOpXCieRGHWJ2 zi|Z?`>o%Ovcl_AH(3;-bg|Zh_kGVe9LERP~nsMc`@$JghysHmP=e@A(##Pu5{AtP0 zeP^p5^z2@2R;u@6#^>xszim$&Ke}O2@-u_)Q|qpI@1HH55t`<%e0I~!t8KE7p^(4F zdG{FxcY+UK`{*Tb0Db`50g2Cu1K76S6uRqom-S#@woSBoT=9i-lbRUpjVG^TJ`PR? zE*UZ396RDW8eSuI z#J@iEV-Nc=CcA6L{zyunihF&;@VTkjYF+S|*S&|M?2c^6zvl+#S_zRp2<24 z?v;t$J+S1dw9!w5V#}#MT@6Gjj5TH z@sjPk2cRKCaccu1<0proYb0@)#RxCy|4{@TIIRBd#QmgN_eV5n4ei{GS{D7hL~e^u z&oSAz5|oIej!*rr=YMo#VZ`b7oy&GO>|b>cW8o=mJ7R^e!19ieBU$CPDEBYC-N;?G zwb9-1#@n{V`JTng4sfWKsJpYMdv9Ha|YSu~GZ}ucrm6mG544 z|F_=t?U@N|Z~R^99Wn22wSi{;zg{!gyCAWqdq%Qx_v+XCzD~10e(a&(YtzO4@+;#y zbszFPo}KI|KllB^TFB(^=XX_Vg2G+lS@7dQPoyfL91og(IxXyOdLh`_`XB3$_OZ?h z_XXFoKd1JJ`LXU;%>6j__6M){FWj{YT9*pP_np;Qw`R9-7-*Pm_4PG&wOgtRbvLTY zv=$x~H#_G0_tUW(uiqR#4q4OeHsjw9b^G61i}P!KPtU)fCV0f^`3;W%?Y9S>q&|8F zx?G_sC+#ZaFqzf-U!~Stp3yrmRsPj=!mpRx_k9nYwLNft@zUK6ZSQL22N|OkE>hT^!ZNz9=I;&dET2|u$4=y z&c3qsvasH>M`qN;hy;sTkRn@Jr zjqmmxuAY+Kx%=0x&+X~y;>UJxdlD@W#QgkTdG>`J!8v5-Y8F^vZJ&YuAPfXnb)MHB#<7E4gmX z?`sjIxiWHV2&v^<%kf<*|>>zh2a|Ljxxr)EW+jp2sDy z?ImI-H+AM#aNdQJ8d`F`LVD_FwiD;~|L)#?{kWFA-Tx=&|9_hd-qQVPv;MxC&;GR* z{<5WOi=NKjv98Mb?xoq66Sn*Xl_O>Iu5a$U9+TE%I9X-u-%%u{qWVAZ5L!Boc@}vjw`snv1+P*T;O@_ zx1iHFn`*Wkz800gnAQ592W(~eUV$XEBhm9N$OJ~AY#uo|dLs!Ow zkLkZYjrTZ*eom-;tT23&T0zDE0S-@Lk?%JwHoVZR=n2_<|Iga}b*JOMeVuiBjp4I` zrTVw#Y`f@m-S=JO-%`+#%lho;aXX6ByWPLEK3KFjGkx8~bJZ>8-wXL4?frGY{6t>Z z-gj1EpaWAFeopM)S21xKZ)H)Q?zOw3S3}>Pd49w0Vd0LfHD$AQZPM5!xD2vI?S=IH ze@|x%xC*?UldSBxb_;V8`^L@X(=UE}dSk=ov&&C4a!BXS+10)I{jYSvr0~ehvUw3K zulY77KVIN)J9hPk2b1=*eY)4cxB1wN!&CQddGYaRONsf;bm$oozuHb*YZm00;cU`J5?mSzz^en@T$0tTK58~{L-ue#oyI=RWjkcwc9R-&v%;#Az6>cz#cyuy zDCl?DqOd;e@Hx((ub!vwyZfH^h4JwlV&T7<3_tWuu7)1da=Nu<`?FS1>9KFexum0& z#|+GtoZn__*u3ZUPRXykUPtV`G(F%A(f=vuPazB6Ro#?8*^|ntVh3@9vO<&L$*sO7XourM-ZZo}I%Y)dpCYV3p zn(Z2}KC^vha!$8)En}`@yoRkGJS~bpjed9se3WPF1ZRa}-$%2*2-Z6-O0ChWaf75o z(?b#$Hb4Avq4H-?)W6kdWdm(3*L_{8oAEkJTCREZv8?4QwXZ!^Wn$d)rT7oDHtGHG z5>%Vq3ZAER1fv4o`ScT+(JX>V&{yZ`DbzsQ})9_!z#X}yN+t81>#RZ}xo z(6KnKzFYCe*;o4N^M6?J|AZWH*#9isrD*0$=Bqh*_n=o zUAW+XTDkgvL&`OY;vJ`^m;Id{P%!Ume0X2)?q5X((5TY7^>x|Y?|(L#I>~K)e`HP7 z-O@F2FSA=}IueEM=B=sbpR-3+Iz9GXj>;p8Wx0{RGv;soXbn19(+c8gsF^jPQV&B|<`w%zB} z9m{$Ji?--1J@%2-ZY$Z}b9UAB*yFFR?(6t`=lJqp^}6!wWIt|Y-)Hk6`R(-3~=+sW_)1NcU9_s^Pw)J%-PUmaac_>B+o{ z@da0JH0=I$>yThGcn$2OA4mJXrMa))TpY;r^3%*v{T;6(_MV!~(z76b+owu>#o&w6 zyG-T#dN=E>zxhG6#q5#9#CH9C3pR;?H?7^Uh>4u%zFF|bj&0S*b)5f0ZjME~3zzFp zNZ&u9?Kx<08(K%ry%H~yaBaQG!^)TNTJWKQ%_4^Me>*JhG$U3jI9Y)11g65aY~yGsth>%+gcty-MF=GTd;&~G;^EPj3{>iDH*eXs5KY2_@t=oNRT2kbw) zYWnHWe5MxbUypoi_e_fU`QhYkO?T^>RK9ODOY|>!CqK@qZ>|2+l?-ZZx?cQSUH_vz zUx_R6q;>%OtgQu}Tl&EJz%FJ#^aNcpx;6E1Dd>K;D7oeDHqQXvzgH`GB=W$_8Oqf; zGFf&yUu1+CDr(o~91FiG&nqM!x_)WRx^JyBE@e;L=_dV7@LpE=k?OCF`4jH0sj>`^ zKjm_73jarsUHd-W1oxSLaf5brKkWgZl{vH7R{rVhy~$}iF81E$S5F%rtSDVz(<9sRSWdcq_b;hH z`|EcvpE+1+cS-y&d~G1t_s5~f-N0K8c6a%_y{EKg6=)KQ!$j_N0=uMR^_P#6bmOZ} z1xvba4=yh(c^)v*E($XUWE@QcF&s~x?WdcmXx}V zip*p7|EoYti^Aibin&fC&xxMXe9^A>!~31L#IF>;7d1Zox8mx?i{O=nsttm{LQ`#C z1-dSU4X|-U*~;$)4X}Ni=HA~MBE9|H<^s@Ye9X&k&XX!@u6VwJ&JSfWt~_3VaFP;l z;~CS=e9(N;+XemSThFh$E+)m^!^`Pk_UFm{t%W;QuNOSlIgj^v`?=HL!<=P8_JJpx z?%WIq%{KMFGL(6{zQ8`NG^b?NF3^mUKp1pJN$JE1X~)~3gSNIVx2a)Vpts>`kNJfB z?-eH_)2?UtYS-$re(eGsw%A;u!0{on{0j$H!wJv?QrpFY;4{KA_PMFd5X`w-%Kp{4 z_6|$h)zgm2i{~BwekoZ3wvSp$dS>%&Xw1d!`2>nN$kn2DQ6-;`_g`s^{T^7*9Q^&% z&Ewu_S3$=US#~!kKQ?%Fc!|2Nz=IjGk$uw@GOql&1`aIHk`;C7x^?SQ6V3#zPyhe;n09UN1pZ?0Mb^ayv-`ie!j77(F1!|e{Fvrr<69Pc(kuIV zdcns?7K7GmiMek7_n2+>PM&+e|?=@zn*_f{(k!t6e|!3+yhroM}1hLA$EuL31So zxaJ(RyzO4x;&nAY{!F(2f7}04VL{DVo&Mi$rzCUs3g*>RM=ZUy^TRf^dkV|LO|O4W z{x{V&f7Rou56``BwOqg5{pA0N+dXr)D(2fRIk)LyG3aEE8P#nlzOFWa!`z|>#pg`UBR)G7u%!?LUyXKl*v5XV$=H2FXeb2T6Z~_XC z_p7%w+q@(DuKe1#nA=^PeEnhiN8NK)^S+#QU93<4__2er!9ScF|7}`--Khe!5HV8Z zF2`l$D#x9HaTVz5n>CmCSR9(}--~5Getpd+*n+rs>hnL&Vs7l2%d%APfR0aTcw+;* zmpp5sH-l<`cSbnJqnPKx&o?}lN!oiW&vC=E;L5&(GFuvYwq4zS_@dbn@!UXAGwvPe zT&K&R;W<#)uAVLo4qJ}6bK1P_ugag^D7Y?Srg~z&RnYRikLuK}Of?GTJ9XsO!RHqX zMGnP5s>xf74$ih}4Y-R1I-gOGIGB1lLO@i$uYvCaXbDO+Ks99}PYht7%zN8xsd(>w`lZ z-*{+0;Cz!6$M>XDo-^Q*_wIX534QP1%{qLG$(rq-@}k?h&KK74K36^P`m1i*xw*Qa z(?!cgeyD`*Kd6)doI40?J=lha3A7d*xe{I>@L%ISo-gN+54zYEQe*~yX@yq z75?BczwIpPydE}Dfy|R&l@p7zZS;0f<&-uBH0|^1(PD)z0h#6%mqgE9-Loy=fLex7 z%*WpNbGo)k3m0trzVrF1TTIsTroWwc^i;01Zp)2?(@aet?mf)ZmXj)>;$dhH!!Y3A@fJv{wU<=5cR7v?_`@vh&1~rH3{$*tFv1DpqU=W<_F>BA|CyWh5ABwSzcGo ztBF*3Wx3GZ;2g`%T>)1b?0~w zI@||zoxl@khZ>QKcc&g-S=~B!>bpJ6i`KLGyq$8zzNe6B2{U6>|A!~H?j_i5+HxT4 zdP=9^j&&QawuL@8&6aU_slJT&8A!tFsXU%01`ZnVNuv?^W?UBgzwWpv72e02?yGoT zYVy%b`inQeNZOzD9q5^wja}p@1J&FXZGR}@R-O~dGi~b z3k)HLMCu*n1sxJ;|F%$mKFcA{c^r`Z%Tl=R)IXA1m*JmGP5J^Y<<@s zwqDtA;p2<1mKN6(?F#~}@!NQ?s;NPJzTi6Tf1f)%_x8V@v;KM7p&1JQ^X@J@6U!4m zQ#<=7$MIv4_tS4$JT08@^!3G0GgHB<3&dQ_1$urw^G{X?5nNzee4K6KY0zm`2cbQ# zvpW5k?G`-PXFemGL+Vzjfhxdb?5_$Fk~Wt!Hm)^$ zA}A@gV&gmaSLVs@cHFrNUg-}m7gxr)Cmj+xAE3XYj4!;mcde23zy9yKogX7#c)M73hvE0wm;!fZpt5TwR7e9zl$Em?UnS> zH(HV3HS6i=mE!+ThyK4k^>fwY$g{^=e@{7Iz0Z{I(d#|yb?1D13|>HTmV55>R{~gSE2hVHm7`VyLXWBst1}PO3A-xJr&Gm}$@aV>$3l%EyK&9+ZwCAH zcFbnkTx0n)sqr9tQ-RIo?;N+~nDdJHzQXQE$S{<6E#nh+yI+r7qs*S1+__caU&n@-&X%V4tY#PJ!^ZRS zT3+@e-OtnArEtyiICv{o=bgRQTl@5nyD@zOjqG}_wy8OF40ihQZ}92IA{o20o%E$I zEKuFiZ^joTbL`J6l^IV@uMAIb_7_`QmB-y=v0KAyb8tt-N^7mYUgw&*-=7wg{E>M$ zvF75kGmVAqldH3C=U+VgR_{I3$=5r6ZFo1!+VGFyLvH0rES!;eptDg-CEgN{LddgFog!Br*dyXNlVZqWx{F9159`I}Ca)E4(vgKphM z|Cd`m3$9HM)}Pw$+S=N6py&Lq6BbvBv}Qcst=9r|oWnlw#>B(QKa(0)z17*#{`u=2 zsVB~IQ6C(-7yRN&yZZXn$Kvq#CcDM!1wKEXzTVdG&%^{}*V&p^yx)qxI~@uhCJHN2 zzNPX=V1ZCihXrJvAY`AFY7X?sju`2HDv`T+ceUMLF&qCr)c9bHf(pluxo>k6_n2{} z{V001R92wIv!UNCd&7y9b9{>WJ~r3)#Y(sTuzC*~d_2|<9ej*=VDni(`s~E4?cy#9 zmDh`nUzJ|pShZAt;STO6hR4#*9n7%5Wh<1kBEZd7?x;S4`~C?n&mXSZ2)Qvx)o69c zQ zx7&>K+^?cnM;{%j6x04A&?6{bt(L00T+Fs*_n+Nnd>>2iP4E7+wjd9@?9u6jqSp?! zkG{V;>=(*@`MC1~bddBqN3z5Dw#TrW2>RLHI!brH`O*{UB6R$*xq$A z_T^u%I^KKreXrr4zyxF0r);&Bjy2`q9{$`}1RAghZKd+G>p0ObaMxy9<9k(shc_%s z*T2}OeC8E5JJ=!TI1=CL={VlI`maa-#;WkSQ@+}K->^IUd~T!1dTtrvSvL0`_s@Ow zdJkv{!2-0PdG#Tig=aIL8(TL&3H$ik4^j9+PwM2#t%jwUwtPg_|5t}cQ1Ekk8r{?{pE2wAuK6s8g>E?KHa>j zzi`v5=+f_-*Cam{h<{#dY4P|t_)?;d>{~N_I{r3tKexrOczVsQxkn)x_?CEoQi1&Z zSO2%x>?k{OU2e|TDKmU6j~Oo8=wAD(@>bX9uQEDMgDXv>+tb%v*OC4h2hK6B7kN1> z%Dg2XaD=iHp1rft@k!BIXR}!@P1RQM(H8q;W(&4xUw3DGy@lUH;JxU9sgku1ALvxY zq;Ke(6RWe^)8MrDx9IN*dJzk@2p>}4ZT03u$+v8QBUAaU{gWq@=gOd#?A~uO-Yb7z zxM=?8-8E@fxk2+YpHvx@Urb+HbI zd*ImCyC`?nZSbY`fypS>?4WE&UcKn|D)XSae|O{e?A;dg^TSW|`hVN!KLKAySH=AF z#6|On@ z|Mr%vH8O7TPn_?sxjDh^(=*%YtM9RJlz&;eabe95mHSzTqZ3#2?sJo72T$;W)*aq> z|3y5%a>@J+mY2d6?|@F77IXdn{_n&4dpk8+RFi~Z2Sc(*HHm<4-Ep_8(zVIFX|ZG9 zwj7mRn(ll5-4u_nOMQH$Rt!3>w?phI=w>?8`MW$om+<^Ll~yDALGt2XLCD2&9BQ|w zmOYlr-4R~Vzt5xpXUOcOc5_)PCzA7p3N754t@)4l%f7staqNYhd<6luEc_BuVMkmoYeEK(Y86)u8T%0Inv z;{U7$*hu74_kEx%slOKOxFp^v1ztQZ@j3DO+vWFv-Mig%(D1p6-i^JAXBYX;^1u81 z0r=)FmG~{nZ;vv?o-gLljXj@x@u!sd*Ne+uUyf9;$dWxFZ~x}hJJ87K`lWWR5!$^I z)c;?6){!7n+iL+{;aQg`bK(1|#fD*SCGFv$A#c}u5H`MaZQsw`t(o{p4}k#5(MFWVBSp|VP_TSsG;+{M3| z(LXmZlymEUFW5Klc2l)L^%GXF?1|IQM$FsjpC0&nscc+LxZx|%BLC^n#A{nJlG|tR zIqojzwyItnzC(5W(w|Esc5a{Vv;%UjHt19i&4--{E*XX3c{e$E*B3{Yx9C9@$4^gQ zJU4S)AfKJ*>+S|f_YgV;ePQ*6rjO|<$B!+Hc8K`#+R5P2>zJ2^GCR&;=|5}Bj%ukw_ zKPT6CytJnD`t^XHTFG{>g@y8e!_QwW3_9Qb0kq-?eHb&^`m|o(`o&Kd&YR+yx%}Pc zit|;yF)y<Hj_XsmL>-F+p^BUtpJ?4kRYA)C8Y zf7UE{@vi1|yp-14D|=SCJSy_{f>oIVRk!$8WVpJ2{<)4WDWW`Mn9d zmcCKeD*n}C)r+>@R-QZ0kQm{r_A?kfoVmK@s{YomHh*2?zRr*hf{t?sME|0}; z1^nHaWa_TOzcT*Br2FIQvA35OzX<35w9M{Tc-huG@KzE-wHNmLYzp;%PV^Uje`>aW z4(K4GIU7Ma<>vKke;%C{sa^``^a#PV;Ux95Mk@qV%I*0p8Eh2U{ek!z2Bqc|9TJL^Ezcy4?5F@Ey@ z_b1=}_EPCiR-hgZ&v-D z^Ld$3yP7FLb^5`bq&87`NKFF*6iKIpWu@Ybz=0+#)9I~rNbb!WEaj<|Wc z+iqRhT6p7B`Zt+9i{g^wLsE>3&+N{yP0M|^F245}^Iz+@;$O8Z=cc;XOyvE(|GD%UK}aK57myEgoUD+hF4Abd=98m~fvCUXJ*^-9}4>#R%XvsO;p?qd7T zBGnrRik6q^R+9kG@RaRx?VTSZovVgE|Z!9xeW)) z-oHLN*J$_Cn@!su+3A)DwTJRdvTuyA^LTwrZioDec9)A0`mb0v1R)2Zil-8<~ z;$IJ?l#*SHR*R1P2Pr6yRUF+R-YW}74-&6jS)~~I8_Tc*Gm_wP)$B!L6 z*>1(S?dq~?cORar>a7i&$a~!Q*dFfL-fQxsj$6;xPJ9=fzx8Ux-IwKkndV3HjvBw& zdG5yY-p<{3?*HWMhvbUcjAzZgQd=IlT)CP*y^nV?^OUj)EAD_Ui7m?c&|TkBB6>@7 zIb>b`b(c?aDjzs4mRMi3jkDI;HS+=o_tMCSnIBk~<|-d>*!ocJ%{QGR$#w>8c}%>| zLEG?tb_J&`x8aNWqH>I5-V#xl#64!&8-waf)4PwBZ z)~}yo(Ij?$qmQZWYJX$)^XDCx^U8uwD2puqaH^`b*6>qYVGifDplgx2E_;uwU6)ho zcp3l7{@5bhzjnuh8`u7FES{Kr>)+nn)^8xScWmoyHnXIyT)xMT3GQTi*m1xGa+B=z zWaponhbKK?TmJ6Ri*tJy=yI5Nl`pE^Qx;Nky&?xNlp@p5TG)cTcY`<)~Ok4`BU*(>W_lXtb-sO0CRzB%ik z_Zd9X{XeDKpR;>&a;gjWs@=D%w)wx_JG1%tvjvyi`g#vvta()n+L2zpV7FOO*_quN z1leRZyUE8sPdg|c_#onO*%ryjEcLAqE$X-4beyx8|D|x}-|rpe4`t>qTeoFV^nE4C z3sq;B4tA_~0^Vi4_N1cKN6n2KcP?|D(v^wt<4s-QC$xLX>vf=YHxqwxd}3XCH7s`C zF1MS!PzS)N2anRjs_AQrxoc%opD09~9%4NNRt* zx4GnNjPp15Una#L{>YTvx{&)^x9{2I-sigO)`%DIzx9u6+GBOwIQd@d*Xdh(@8(^~ zNh_Tl6TWcc=^rY+4EKH|ZNBzC>+n0Nw_f!Ob~D;*5@p{WIu1EZWp%;i6;CF1Yk|-6 z3Sxc2(G+&xy?jv-@A2!?dRa^-ODg(Gu26pdh4=Q_-#SmcGk?CnwR~Fco^7tYbGUB! zyfIA3{&c$x9iS3^w+)$^t$$Z);_6QQ>|WyOK@f_b>H?YHupq&xoqM2zh_vV z$^Cq=c{8s(bag3HVC4QtE3+l5SClG3uWYzJt=HxIi`mt$l;!;HrU#T?6}++_{m4%l z`9@3ST?@JA_`KWoVxk;#JCgwDXv|nU(+?R3(?6~-yR$hw!ZP)qmcQ-(mQy~`Mf@4= z+iq_R{%0(%{Ym;Zk4i_P&T+Bo*QyZ>(@s6!u>H&w{`$LH7q57CW%F*kqHX@Wt0kw; zY`!PM@@D(33mXe>Og=x;k|X?DH#FT^zcBQ@W_F?N`Va4~p&K@@wQAn?q{QjQ%kN7I z`)vOns7aouA^-EX@%_WUp>3L_b#A{nF7nRJf8|*_wd_^g%d(}iUvld@4exJWG<&{q zc0t-9?(%Tcnnq+T8kPy2R(e1#`DX z1d4;aanQqFu2P5L+coYj7ao*neoyaRYxKB$jrz7b!ROC5d}Q;xJ@@V9GY5-{1?HHQ zV**@x-Zfv$ivs7+j{pz{5-)9{@C;!?1dzkdE z=NYr-udIH$4z^4-+dR~I4fx1Trt+G$s4F!;UUvNc;c}+$r-j8n8EF=C;hGxAJ%CR4 zFQnHhA3y%0Tek3$mbjf~@xFVzSs9x=&$^@~2x%O1IN+kbA=%mBLB#hfd$z6ksiEH_ zta0Fl47Yyj0lxUf95)VWZVsNO9Pn-H!ZR&z*>>aKTdrvr7yJih zOweuT7cK29<5zRxsLnqqi(wu&$pUgFJ5rtzzo^-oyKNY`aeI`GtNC% zxpZ!wdj7k~`gT{#H?1@f-*C|U_?FuA?Z;;B3V)Xc8-O=h@b#_GLMy%s=;*u06fVgA ziK3hvTc>?^W;6fpy4{!U6cq1peo`)3RJ}58&ie0G1`lVR;qehWV7Nh`W2c%&zZqY$ zT|>lb#@Vf5-1^sl-r0Sl8C0FPD^yGh=Up^c|3S^(a&FcMRr`bW1K)nTbk+O$hm#go zzfzBC8dnDYw=(+>`FSR1Y4XP@_6z2$dK@&<(*D_2*JlrkDq|q+huiT}vz`}(?$t0Z zxqc*Q@3wchxnJwQzFAS{+4I`lq1RVAJxAjIob}HWL>~L?*S~q8ebdSSv0oz6kK)re zAFbZ*|5OsP(_1!5Ti8=$wLYKOs<1~4yq4hI{ojZ8R|`+(@NUsqG{b}`a;CLeM+}Rm znetUO&`PDKic6ac3u@Qi^e72#tLm+G0PW%jPhPKAvuhIh=&@^`)XZ!aJKZSv=9bC* ze>Q&zlFOMQmwR0ze&%h^=sn*R_7nXzDoP%wkFDI@9Q-WuYuEbE`(z}9qvn8a2ew(H z|BUsmuXS;6**)v~?(s{G*R1jtwf(WKGPm&QkDaUa?`{`+{!;!x`d8Oo&%SyDoV#VW zDqPq2dDvVbJO`)ArK^s1D z;j5{l&89S3eOy_5>*~7QHz2$E1J(DIX>+uhZs>}1OwyGXOK7q<*wt|Q9Q(G=16CUH zOP@~mpL;vFoV`i2aawDph|r@PX{*$Eq3c28;_!joPe*H3zJ-k3i`_ZAM_E50ipkw9 zxw1q1$Ew1_ZtdgeV{2u5KVSW?yvQoRzOV6H9=W#jBs-98?xvAp9l_lX598821Eacv%vv#hn;W)sOk|Q$1 zdbjB@2le?;G2gG%azEvNqG<13=6>sf=I1q4N3U1L>ph8PReq2U9vy#VRXpeO8QvU| z@2l^M{dgqjxbMisUBO+vSAOs4v#opmQx!Bm`9<~HvC5jn-6GNUQnj5aK7sOOJ1m#g zCTy|aEY@;;$>l3k!%Dmv!f_04Wan4j_;{=hdfVZvCE)_9A9PtSg2R|K?9|~>CUM4` z`~|X~r~5w*KK*|hYM_a%G*!5=^=*p*u7i$dTZ>T<%`aI{Sf7N>X zH?M6u6fTvrmu(UJv26YE&$8vRtHXaa?JbOR5{tk4)!pIkVZ-^WxWB$W6??mQkC+p@ zNwM=w#mPy$FHHk?vs5Z)?9TSK*!OLk`}ySS$9)g1{H?Rg)4$krfo0zM`*;iyGYZ~kJt=SzPD>?1ezUk}a3bygiH9Eg495lNGo4{H8Q|e+~qIvnX z7d4sdKJH9u&N$Kr+9s)e{Jd=K+uqN=lGwWL_IDhUK3g2&56JGF1^wCjF*;ir_myF~7b;7d0O z)_jh>Q@SSZX}15I>&hB`syfzJz1@4EB69KOz`YjhQss`%Ex6va_^IT~)W;t(QtM1$ zlj2(spU%^3+F1SM@J7c6edhzZ(Z)WMzq~2?eg?Eq@f*M9R^~HD(l?a!y9xMsoSw$u zJ?pdSdfhoS94}aO#C+BT>fOAy=bKYp^4>YStS9hWr`|cPUMlf<=2egM> zYKk^^aj#R%DjWI zCTfU6mV7ta2PYYQJhCU-$o0E<7*`F(PE z(}vYfXF1G%-B;K)E+D)+ozV7&g(Uo|n1-B3KJp?UqgADFJ zeEL9;`NnVegNiyAGhca8wTgyJ5`5ZK3SKhyBzJ2)?W2$SHXRc z%4s+AZ^b)a?pOxCXfY{lugtnHM;|S4Elug~bw0bCD?5%^M|$1H8`&3c zy>_k%**opiPmOr*w{IRiF`m|LVzwu9-7{0>KUqE>>T6YvUaej%3tH-XsrC#1&k6G{ zZCYs0IRC0RXd1ox_^U~vBVjK7+hV)kH@toVyJ67(>$f%{&KOu#_XqW!MaKn=m-sp& zSl-;5n|%Cwp!BKc4Pm!d?siyHY!BKiDWm&Y5ad>dyQU986D}LL4?7)vv_N)dq2kTm z9-NRRiN9anx_R(q`j$rHzuVZ9*#3J3vz+4U5m_ia|JGeL$ko3^r<*Ta`+Q62!LDcE{gu*b*Rs2{Yd0E%Tx5BC z{zPA|^LBxaAIiCZ@m#D;-79xi{7SL++dXZQ`LBC&pK4>6vG=rEVPiaKfIs?QEGRmK zzVIKKU9Eb++PYCc=X*^e^QrF{pC8Sv(PUe@UgrFFDV9}U$ar;YH^g$vCn$oNdWgR zSD*I2o%aoN&en~GYJ1Ds%et-PRBQyhe>}PYTAi%#@S~9b=LGrwa4dg-yMx7m_@4x>+Q7r<-3a&LaH z@O(boYUA$JTY|qwo>?*d^wfP39NWa0j~`ojn*HN}MF-Pu*B@m`3^>0Vyq0_3!RtZR z>mNS3d~?rqffvV^_f3~O9I>fz$721zUX2gdJwMqTd$Wq~M&ffRnV(OaJ~=|hdcQ1< zxA;`y$?^MzNhxTRa*^kcyoWz-ZCcsicjfaP=ew{g4`&AIPuH%E-P&+q20yoDrdV%b zVE>DEmXEU6&b?mnNix@A_sY$#=7%G+ZI0ldw#WAn$K@qwQoe&l)g7<#*5QO<|{hG&Mt zrw*8&3TE9JTz;@N#`@D8V+*D0pqojrPvz#Q++eZc#pc_`K58%tu=%)&)vi<2g4_pu z^=p+$d^D(_2+mDuk7&NB zdPj08_Va`*dJzLwiz@!-d5;-^ZLBmMBIn)TVcC(H{9O^nrL^4 zPrls?a=q~_hC_Mpr>ls&C@m7S@90?<*9W@x{^J?jq^O@CIxSYmPuOKAYPw$c1Utmc z)%p$&*X@`;t*d=@ZD{onQfzuw+z|9i82wYNKXW9@hMTM3=67kg*CSl8<`Y0W*nKaE`RFs zxaV=NROWY>-3%1F>8NgC$sYRVs!f91Zw>yR3-4I1`?u@gqvDnI(+hs>UHv;^d*stV zIb~D%W310JW-t8~YWwfi`hTx<*Oomk-omTcB5=rdLS94?s8=Y+$u#lcRxO!T9*=D1 zFR|2@R^0v3Mxjh)nttFx0;6L6O2q)r>s6i+g}l-%@=uj@XRrOF zaN>mU!*i7i@ty8JmF4>q&o~$G-LHAn@1K)xeLh2eYUA&d?siZ7%a&Y?zq8n?(En_H z_pI|l`;(pT?rhWlDt~DA>E}L`a}53KgXXCo#o9m+18z2PtQINl6&Ow+e2p3`aVnlsN=Ce=YHzh@ps)WZC;_PGUeabY~6VJ z(v0Ua|5Vp_8b8an4t{p4Ul4Rn=b^ueYvYrHOO(X~#TV~rdl&bjMfth4;1(4Rx9S!V zC-)|{#5;GlvwrU>Ra_tS>|ELrUHeo(51hK0ul+I&b2UGdTytiTQP)+|6Xhb>3KN6mjTz2)nv@>$vj5+ol+AtB zGt;&!pw+^xW5v>{_nQ1~LEDlz-|YJK3x5t6#j-oizs@Jy-Q z>RyK_3MnVW4MSSFzZd&fW=s!Tt3(7t!ugberxTHYqgycp93p*e^OYn^IGr4 zSF3|QADrG|e*H&`@SO$Q-qf@SIB`6b3we8CzMvtggL2lsP~0%nR=J|6k_+kI(_|W zS|@WN`tP~tLHFC&gGT!oz4*7+{?G31Y}Z?ogeIpsX%`=FJGjnIdZn2|-IL}HWqI&; z;K^ldQ(kpv^W?z}1^_QCeD~DuSHm6_#vQjN9`kz}xqfHP)XJ4QKW@MNe9Ek6{pWoW z;SP0AE+1`)+$XbcjrF%X%U!4L0iWTyZ{3>kn%KvuXIk_9xDmzv@$}ZM8>>{OY+Uqh zA+Oc%^u%jF3IpU%iO*m1y>EUvs9tov*t;T8Jy^2#@$LOJvl~i3SebD#cv-Kw{Jm~+ zG5mZpOZCP`_W5sGgUdhumH+p5f$Dz9O?d%xx2qYKD%G>zRi0eG`iz!$u6d5d_VVY? zAkK6%5zF$a(2ti5zZT2=MxyFsVWZ78v61V4>^e5xV)wkRt)&+vSIe_LU8+;PKgULC z^RfQsTRu_@A6Vzsf=?umy6C%n)#R%meBz|$f;XjXahZ9*?|Q46cES0Hp09r#VtZxD zvh-EZd3{!C(Ak`h8ENqr8R7HxXc*65ax&a3OFzd``P6s6e~VL(@z>sojeZ0PvLjJG zGu~$Ru6}*acEOfgj$h})0_@1GJ2$&O9eQ8UyT|cm;hH*;EbX^9?2JKS7Juc$=66eq zZN3#pEW3PVYFNp2&t-nkX8XTQInFj^-I`K4W}oxgZ|Cml)4w#gKIiy?pw~M}>ejw9 zo^ey0@5#}>OGjJ2f4W*&dUtC7 zrBl^qch`dxSoV`MRa&d=f4o%@x6QrwtkZ1c$NF2&pO{!@-&Io>^IP!#kJZ~2F24-f zd$Rbttncx*FB8ux<+DXVuEaaca7=#w*BaS3Uu`T(=eIt7ZF|~z-;?!Q+1q>}H`I>U#ywY@Q+-*>Hc{lnN>ZKtY~cJ=S7D#x1G z$E%xve_OXaDO0xO_^YcKwu@};eobGJ{a^WUI`>!8<6C(@_U_M;uCnrt1&z0<$Xos4 zy4b6K>4$W43)=&W8wXcbKlNdlaaEizcK7CBr#P?Tp1U3MK9=2#PRm*SS8iR-;U8A- zvs-E;l1p>;O<&))`qjGl-f00cGef_x295Xht{2Rau-@#t-8$@k^U^(`VcXaFNy;Bg zyY^#c$-XbHUCE!)eUD$CwXLe<+sZSWpeu@^??-&q-S)fl)W(I2B@Do)NvA%uvy+Sg z?d@Nmb@<4Wh|&qX%>4IP$urM3d7k?CN^F7s^>6Q3x+7~JF4&|cZ#VVXF14pWRyTky zp#3%_vTpuD-pAQ}>(|aOI6eLF)Kd9}|Gs}JP2KzGwNf^`-`fBOw$B<{WTdUS zK*xb8b3mrEq;jp|y?++$yJh*7d6q#s)5V^B1rMTi|AJO>#>ZZFS@ZqCB#HZnbT|JA z+V^hP;m}-;kEQ3POACX#z^BUA37DVA?~#Y(xvKj3_j~8{y-rBYTyriZ*LLmGH6^KK z*Pgm>nrT{>a8^A2l7zF2vd_kc6VJUneNA~QKh%BD;V{KLY#o&@nvX(e$E2I>j_XC# zB!{F+!)344-Q}1Ms+XWcUq4vn4mK$NH+&QN(xjC7=Sk~Ed*^Ruy7^(5a$NSRnjcSi zTR`VYU(ax^(lP!ow|w8!iB*B;vzU$V3v4}hEn4a5nNKgS9;`ABJ*sW{S2yI7~x z`47Ewww~9CUwqFmP z*6{16Po}3yxBWIa#(V78M8p4}y~&$2c2)jW=XF&U6#2UD|1Yh8<85u>$^9YH7qs0u zwVrJLe)q>Z{hJDJEahqo`9kEbuD(^UC-i%yM!pOCz7H$6!&xH ze(z}C_pEN=w&{0y;vZ}|uM_WQSN>N2hE_lG_e~Qn`+27>TWhi0H7@l@u-WE{r*@%| zt9n=b%-#5;f7hwBFzI_6_dhsQW%=_=&fx<6V>=vYZ9FLP^38iE@XET`#~#hzZS+Xm ztXqLG__>UDpAax`1bUYYn-7O}3L+S@l@* zD<3&)u_&JP+FxIVO-OA z*=}>q-lF=0VU^nsxaZ0{{w|2iyz2eZ&jsY-DOL@a+ynmyl-X(8Z=Cq)G-|-EUNC3t zohj4pRzLpWrNLk9Y|y81zxv2V?S-)m=LPdreA~4aGGg_5K}ds&#N`H=$s3cIr7qmy zd{Yv;!nmQjucYfSxAcnVGjdjW+v;x-Sm~2@S38|u^5E12?|)poc9ku$@m`_(!F`tN zM(zdKPc6CXUhMz)Co;bJR(japxUKu|e9Cd$H)V2J;=2oBTKjV{^aG*{pS+2QeiZt9 zidD|hQ1(-+&4T7nTDEtG-Dcj0>;9Iy?wwPU_Wk|4?wtt*GGx)n?hIncY_n#}WDYghVx zjme!Kxi4<#{)E*w?h_S4Y+va~ciXS-*uQvB)%+m#70=Tg|9)7xsA)R zNelRXDCKiHvG_iBmzkR{yZ+wtC)|&J?hSZmxGZ@2&D@IX|90()^RwGr^Y-Y>``Kn& z6mw5jJSjf=ZH@lMG-v5c)3(Hy?|t;6sN#Lq+g|DSvGcl;VP^-F*-Fe2nZRJg=Xbo# zE!`l|IOucY^qIeZq%h?9w(uPf-d-Fx6<`n2`788W5Gp=)lgIIm%xnc3v` zVcu8OYdI=^GQDs4_UyN4e0=(0SJm52>F_D;7VzP@=1H7>jFMB56AE)OO4gO0aO+jr zvHbJaR`3PrmOmRV+buXyVj^JplOyfZQFY-`9-+L-X&0WzpYP}Hj+PVu`S#uXm)Wap z(|%T6{a1AQ@qw6!a?h0BKA95wU1n~2_MWWyOtlP;f9{=NzH#5Qnct+|p4+B)XY2lT ztELxxn)&qf(MbR4IT`Bvb~K#3xNOS&vbEa^j)kY5P4mpZux|0%$EP2zs@hrjxa$+g zaqzSl?A9HDLuT+jmWo)qWZ*FmCl19qpc!D4E+4dN#d(wYhXsGk_y3Lm|LXtWEd?t5Vf@2l=^S-e^;A7W->plAlb}n9j|Iga}|E});bG-h`>ivJO)&CRQz!5iB_Rp8-`_-F& zhX4P;f9o}0d5-gfyZ`3b|2lu~R{OR;`u`sP-?ue+;)1_drp-Mob?1Do@|@|tV)Bkv zD{YJ`p4yfEuH`nLf97E7x-U=rc+YyDy=~=xI3^?i){fm`V26vjn!jI~e#oe@GFDA# zib+!lXt76>nk{s(N8di_`(IV1TTG5G)?aQTlYg~VtZ#kf)19mJb>)PzmRMUKvAn)9 zdE(2QZ9B51|2>#(|7+FTh>-th?SG2rzkFZwZ~FWjAD^~;&T@bAA9OOEx>Q&nC*W>wret&;f z59;Loe%8Zq)$+I-Qy9kWch7d*>RM;xclYSc^1tU_akuaOH7VlqB8LZ3xexm5e*51) zvQupG-a}09ZnbeJlqpPg^SB&VYCh@c^s?l}d)iyHUoGGI&3#Jar5}rHro8NV-xvNa z`1rAdXVr@fW@^`3{#8x1J9fR}-FM|hzc;=#DNPM5c|F_c_^-B}h_#b%Zj^L=Ck0we zeS3RJ(=qTYQ>j_UOFxnIQ;)CQt#BjJKMu4XruJb$czlv~iLzK@ve;bJ-KOtuwQaqt z(ju_8H1XMtGHdOstNyo4uP4QSmUT7v_;Nn(OZ-lMS!s4yY<>~{JbCBJ5|{74o#$UT zc6aNCkB}n<)K;nKfsYsvo(}HKp&v1j$oy5tnsHV4xwTV|udROSQJat!pHmnfKh^YN z?}Eot*11arE2~?N#@?Rb8va&I@r<5$cR?(J#j{;v$(P*A_P%8Px%m8+3lrAoeBk|R z_cihQe)me$WcE!wGr(%m@4pNEv*cTjgXZAEO1ulMb)L>En7ad1=RKUWu3y093(u{% zg|B`n-Tird+OD4GyFcwHoqzDmz8jC$?bFI$6uo=Nua#3=mo1Y82g??Y%WHSn&Cw%*!(e*B39<-@ZS^_}=m5 z=UR7OxVM%6Q1V4ceU|V@?{Cl66lbYbz08%uCc8k3C#x=_ zn(;CFyQKYMSpPa5eSR-~dlUOxU+MDe;N`EUoc}2u24zt7$s@ z!QZ*81@2b1M?w;XZ^`Szj){ABZz<1pe$Kx-V?FHV@{*qy__M7+*ZzDz7xw{@9@OP8 z%_^UI=HUM4Uh&a?m&Pkjt2lo*FWq)->fOhvFsE2E{3nGmankc4OSj`Zu^%Q{FDM`GA{5LEj%sx!kmmr)po_u*i8j*>cC( zsr&lASYO|kbMDca<(qRv+OO4R?z|)}Gm~FAeA>@bW^-lem<;ZXCTbvlQ3U%J`azx?u*sU+1a0;DV`T)n9J*zEOlw!1)fHLeQ#`QfDYt!z8K z&G$SwuXyL1J`%qDQP+L*y&MykhhB>(pNeG6>FwpCFpWIR|=z zXyLv2_aFY6#CvGohsx^$^N`>igs$s4Z9JP0=1eCy}B* z>1(cE&3)le-FRv7i+NYifmYXj*Ua5$rXM5S?*92`sSE3K(fOY5C8eDn%Y0b-F>d|U z;)jJ7#f{94zjBlO%XQbb+%b7-)wTGnd!XYGqb}-BjBJ+QebDp=>|koA2Um-0Kzks& zOP z#~Sx=?zy{FRVIEeZ(}UuzIWR;a5T(2`D}7*;k&|DcHE#doD4Kp?_f}Sa_#)JJBvBr ze#-c274?0h_G{Ol+nAmiUwiEpAAMzRs+iV=^|m#yHm-_%`{v1HyV&+^4ew@wvf0_| z9c30jo36#)cRuU>S*d@z4f}eXU96>b@7;Z%!;@DY%Y}F3)l57lfBes!lOKgT3f>jJ zio00r4jQ1WkzT`H{#VoMdDa8bn(8~7FZ053xn=hUi1iz^56y^oa;y%szF)c~?&ay3 z;@}l^t1_<7-nh`7$&M?z=VM&5{bPY0VY&CE(``$STrqxD9OC`LTj+QX`?Z{3xw$^E zk!i=T>qx&kJKgozyPnF(m*6H_cKP&JcBwVswSX6dJT^+M{JG)unc5nm67bP(SJ?v3 zZ+sQ-c~wB4a;dnEM2z!={_8SnUt16V*z@hjWTg!o!lmt|uB*%ir95!P-ppa2ym#G~ zQkGlq_8vQrl$~ekA2EH*wDIf=hlIDX;s+!iZ&ZEvH2CM$Jr?IJk8ppBX_nmm%G=`g z%4;jO9_N^6IDd1L(_i=h1w7u#uTB|R?@PPcGv}|7)g^H8#Kt7Qo5w`rkqGzz?JeDR z6s1eM9?Uy;9n=>-_R;mg@iLx2e!m;UChg^RPj!pmA+Uk-3Qt^A%~!19zix4Ji|0nNa-6{^{cjxUGb}0*k79D05O03$!|~~M zy{k~&(Am?se4dd{nymw7R{%QC7ZbIZpDFveD-(HC_d~ExOwvX zOccEYm;Va-5*ObWHxv z^CRKgd-JzH`aiEI{e*6 zISN3GJ>Zt(BFIYnEep?FX)G!}WBD^)_=4Zvqu=X)eBS=&MERa)2Ns=BT4G{tr{lzO z(AJEv{Hy6A&gGmOQERsBke@pxY7KZX4rnX0_2Y(p&u0{G{&o7HM~>yGsr$D5>fW}@ z_qeRzyOp0maom+j+1LClqUWXVx*px~ucnv2UY}b0!RuYr`u>KG?HAH~F16KgzIk(R z_Ud0-z?CHAFaXX^;KKmK*vlr}baaDkCA z4!(7~X<3s-b6YZ#g5#9r>!53!M^zKJx@4Uwxers+&0wvzUxktM`Z_zbdlKDF8`2stpn(O;!U9B(gO%DGhl>L`= zPV>coIr4QTyEoe?`W6J zkDdNE3VKp^^NfRsA(x~p>-bci6O^~okM}xVzqK&nC%7ssNRPi;`((M@s^bM)_RE-T z*G`rx%#m65<>?pk&#kdR>pW{F+g)0}Xm<1FU;aO11f$=*%6_sp84|Xvk6ZO$Z;^c5 zHsj*W*ps2Pw;g%$d?ahp<{f1OBjxOXeEtgxoktZGk+$Su)VoxPVJM|CT7=>1)? zBjs^Hc)aYBvxkltIy&u}(Q@GYojH#u$6ovRPgO&{vB_bqezN^Q^y za#eR8LuTD*o6-`?E{|8XpWS&i9+xuPGm`nGohzpx)S$NeLo`Ww{) zHXMMgPF(+}`=63;e1Xm8{W5(=rY(+nnVnz1vBFS(W^>2;bH`HWG#{v8Ul)3NZ;T`; za9V1z>SJx$wf*k7=k{HB4Y?Y~V%Cw3g{KbRaJ*w=HvQ4r>TTy?CwJT0UB3gmCw7BD z&w077S^T@t+&QkERCeb0!H=Q20@q|#^KH5)Z&%c3^uZEzNpkxC2|@Qye9>L|d*=C# zg*!IumwD{$_ZM5b7Idu5bmf$9U2|36z3FD~-M{%n@tVR5HxFO@S5)A#F8Oi6QvK!o z1+H(|{fvj{orkn_@r2KF7VqEqTq-2-T|sHi&eiKzCq0w<@u`8oC8S(7?PkZ;s@TYR zwyAN4FRJvNo%pFF{+j)w+I!icLxwhK>|%60`A(O&-{P&@{u`ST6CXsi=Umy@RDDhE zYs8_CrngG=-PpR!XO;N;&;st|wGK?R@27WgF-|$!=Xj{eMZhNMae;gMtRAL?8>gPX z==qXE@;Kdm%-=L-J>x@LXebocf5zCxaLpGs5D z+-cqyvgYTEROM^0Na*b6=CeJU`a#F3Kzox;9Jk3_T|&lC<|eIO z>#LNXKEMC>=8@3X+{T)1%?_cN^ao2$RBP;Li%bsYct*M4`?8y%Ea2wrgecEe&%(|Xw9H_xo+ z|9^VhQdh^FRk<>Y@ljk{rthpjsm8109BNOZvxhsnI{1TVWnYym>>;cVw=y6RSE5ms9uhw6#zhj%Iuu}!}R;iA_vWlsKO_T9l zq1T!9=h6Ix(AKh}&@SOL`L9yzEd?$t03VkX{;^dfHGBrEGgD|c&u;T2kr^JJSN@g} z*!*Oz$*YRB($d)V6>?|Z8ql42Jxb-hpan#4 zqpchtzkpl}+nLjubjn|nBkbzBM^|D6-fUQ&_t=!(eSxJJ-})!sO`%N!f?f_+zAkRs zsAqRe^iX;1fwZgLHjy%%@9vh0xt>~dR8Xbo`#ZU=t*qZpnN89EHSyQx!)I%6rOxjR zmOFk-ao@S$v$ob*-nn{x-oA)#&hHM`>mi7X2o-X zEK`O)Gj|r{?#Z7*8kX*Pa(d$%kMk?UD<8QtP5E+Z-S&iwN6O33CgwKo-NehdaBY=$ z!}Zt31*bMIKa&kQ6wvtkdfj)gvh(BD9Bm12?d{v>yQ}zNT*<6mpi1q5RpCwEb;8#- zGA`AgbNQ=aQ`9=Eknl`K?T`t;N;3GVk83-rfI4gyFTJ zj9^dc$BRj=0wK03=8NN^Bm^(&bo@A`|9qO<#()dUL2!hG-mCp(iYxaj<#wND^-31@>$_VtoZ!-92< zFIIC4|5R>zEw6BPm3ZoHWt*Mb!VmQ5=xzw#mMHpT6XUItm)yrC=h&6zfKMcgd_Dbe zZ0*~Z-AiYDh_l%EWO1&@;u{4ko?pL}8CEHCZ}U6lzFz2UaG;xMA?JACpRv*fe8k%V zRgMH>=v#M zv(>}EaN|vD$E~})@7-Blzcuvp&;Pfo=TEQQRp z#Wss6eb3MEm^4mnXg0P;zaZSXkloiIkfZ6XqGXO?0!yGJ^JBH;{V#o;1p;{tS?Zt2 zXZ+lA{PpbW^~K>=LqlJ$%-{Ppu9^S*=4-pM@4o)NE6eulKGW54S6X`uYWAdvJX+w( zaNF=~`>{hZs`fr#zSi z>1!_geDq{Pi@8}%pZfg=Tlg~s@9ciT>Av8sP@(^~qb|ZNm1~x47S)+_Zv3Pyt*GFGGp+~fK9B<3s^+orXnMn56id5-O9Xw76Ykpt+mAf%i?mDFG*jT^Q z=IZsZc$rAyb4rc-w=KJKv~89=t1k#LzMzm z9Cj`7)8+2jBW419+T0~9uCmExKiDE2_cc4_#~(zcYcTWI58nRg3VY7~dA_2c-pV(& z^95w#C-qKZ{XF&av=jREUsi7qzp5o~x7*wy&+u{YlszX`Eb9-s9hv{PXvgK~6BS4E zzpEX{dR!E`ciO!ZVnlJo+PSbL7*Vo8Ey0g*o%BBM75jw{!>+9NIdz*1o?+cF?x;tfIT)(V_{PK633u?}4 z@&7+F|D;Ca!lP4KL(O#lH0YW|J>Uf06SgUCN;vnKj+{BWtnaJ^?Xj5pwdhw;SiR*0 z^-Av>kNOSfZ<-l8Py2OU>ioEuuTNDLy2o>*9OFoCHaT`I?xC;Uf|^~W^C}+w`>?(4 zx%Iyf^Z&co+FyzP5-2OZ)!$xd&GgOp`EF%`M`#oNJ$hZQX|(@)bNv3fb_#By;7j@5 z97sCtwEKI@Vc1RWKlSd{gh@Yo^>TM``Nzle|9$d*x)U_Ta-iuP(<+1IqB;w7c3fSz zsB_QvC2vnvWir3KbY$YLa#Xi(&@?=zs$%l&=ajQ+K7p=h{{6)(KKxv__0J?31HI$I znd??Qe#&vz>bwQZpRn78GVd78pGPT2Tz=tw=t%!I|5l9g*(X~X-&>_RthvT|5j;^C zU-R|tZBKUY_pph=>dvH74s(Bm?DC6$mDwF!ez2|4_GeEfUmxgpqh`ky!NPNA>FVC# z5Kz*!4cbZ-I#QKcX?DF=lv!r=mtzquk zRd*gTfw%ca=11p0pJWf7cyzqns4SNSG`Y-i;^Qq$0yX)Uv2Hn(Dcyv$0?w?AsfsQthg{2QwA8U(?@-2F^5V@=Tcz57qR2Q38-EAeKyezgDcgI%Dp+JaV#rTrT|yt3T4*Xim< z*BzhxbxS25TYgmQb$1bYeyx_x_;(UFua8(}?lYbMHm&=+vjrHc=9Qd(RGqrlp>)NS z)@L4ft>1;|Ur+1Se*N^z(KY{yChE67jZdx%t6aC{_te^|rTPKUAsx4~9~YR%uQ~bW zk>ji*<`0$sxokg|Eu$s#uJ>2>`>ppQ+|Tv&erI?*eRklhvlezmhhIaN*d%<6{-s%P zvdthwn*CGS!?%~F71WfP>AZ=0kZtp#^3AUuoZy9}*U%`XC4S9FI zE?r*E$5yR!Fj-dD&3$7S)&zp}agTqW*%XIz|zlI6|gMdwx-n+e>X z+sh3axV>I^OmRY3ZhY_N`Bq7$7;`#1Z0iT&{lTQ@4CeH%p zpp8@dK@PvbInVFwE_e4051;2e`jHYSp9`9g*&JzETD~KCuZ(oN_Uos8hb8}(vefKZ zWfOkw?zm#$C!{3vgq!1W&PwWm4O?0w86ksSTn=Hn5?xDD#OX>(TTKYX+NPEF7{ z(9rFy^HMRZ|2?$U>0KEK+Wa4BrktMd<__7=d*IMI_270sq>@F}fs zvrXfx)=juPP48}|`~|m7<&RgKdBH6%mLrzMrr)i}o$Y)5fSAvXi^ra>shfos+06aEXx|rH_N4j66Oo!Nb3>m+ew~&2ISb@qQP8d+Cys}I z5Bmx)5-D6Ydr|mZnc5IUwfKYKO8kk0*V89&0G-lA zLzAwTD|K-yPnfzh`S7y_g`;UpZhZiwDvG2x< zpZ`|&k?&3aTbv<~!;n_ytiM}3*el<5*B3QoPu&}v$y+dt| znnK3rOV8>`g0eQhx&#^!3#_^LzK8kOy!S`WzS3{c^OYzB4cBeG8o$Lf*J@rtk?-8; z?k}Dxe3rd(Jc%d2@ae5jA@Rzw^|6-h>z}Or`b);(pTMmi&s!5_A2|2!D%{O;AAO2l zzFh}0Zfn-Azwg(#w=A$5rsncK+Sip-qr9Ng-N)PH`fLW!nQ$lfCL|PO9W0+4)-!uv z^5YL7@lBk^pCl(swX!6dskip~d7Wa91wsBeBBq-brHtzj|IOjRoxiK-?8AJ-Lgnp zP&2TTVQNCk#OKzM)@BYBe&=ftY*{jgqDlj0oTMN6?qS(+>CUe3 zzIjEPGqMCzFMOEGI>B|y`*ppCgKIf`jTHI|Hwi)qZgXG*xBlN)P5Xp}e>K}!&tClZ z>4SB;=c2YB1rO8DJ=;}rOHBIEmeQ@o0rHIdvg6Ob+P{1qbl~>L!HoKC{PyPlh=JSZ zPgdEz1>ct?bU^2c(9{md*6$rob1u0HY^k!VS|3naBlzx5vUlu{bI)97R0$sUG(8mk zwD7eZGjGqX4xZvj-#pF0WY^5k2o!_LHmG&+b-a?OoUO@z7bT z++#Zu&%SuG4&qACtcu7cOME)*8UBePl*1f z_;k{TyPy%p2i>6hQeIYa{o*_>>(cdaY`3m2I36MH!`8v}K~B1T`7bF&d9^ua0`HD+ z>TgV6n9vM$!%^|St~2&M_&e0Zl?EGhUJ;{gs|N2 zMUcGmB>4C1SC$clpX{=Vm&C2tIp2}|_(6uy@nf3&$?S!vZ^T69$KA9G?*rZI3F`e; z2z>NBTn?%-b9f$aZeR55u%_|#kDW7QVK=+q4`sjkK%Vhzvf7kJlblrx%3kU1=-Z-v zKBnp2iIVBp{+@Y$!@}mKxcZWqFtlaRymx7Ti?^JI zoMaC^^R>fYO0KX=Vckq?vmBl!r6=6xYVTMETZQ@&x=Ea)#BcNJxtHw}8uxuyTXcx& zRN8TcMCT+yo217dT;kCNb5HIA4d!0sd;u!55QDjv=!3bPuO(uhzCLAI%)e`8#An0P zZfmZ-KK1F1=4YuswZfdVsn3hI@S7Q*vIEV}4&WJL@&8_gzm-_fAQF=$o*|a%FOV?_u|kt`#qR^QxS$&NL6p-7A{6 zRo=G~o_6wdwgaL&Y4ma?fCJ^tUp=s9N77B@|_*~(a`yMBwB&%aGGL-iNfJ>h@iEmxJg?Nx)tTDuRt z$#K~QveE{2A^R^rJ7pFkv;N;vw&>REIOBp-k0Fy&0D`pf4RQL?I>ZVA080r z3NGIN#mq@>P4j#od&13VcgxsW%eeK`V4@fO*K+}q5Odl%(qSYLCu zyX|_m3ZYQ%S}7VU*>d8 zah}&}l_y{$_VC z|8?uOcy{(7_ts|6Q0|ToI##~1nXcPe3g+&Z!*;#%^^Jx@qK~H79a^+7{lYh{(Bt9{ z&)ILg()xZ%V=&_*m3^GAtw1|4oWd3J*7qKsTw8j5;(W0KzhwJ3j_vxHvDt}ZmE5M; zf%>^U9T{dWHIJw7Sn95`<;DEUca^!#vXA3$wq2QNV0PovX7fYU{rc?7ZSrPr2aTJi zy^D{wxqAKHz7^k+Z@IhX9!l@^x3-<_7aYFkxHpS%`OEY*s?vu7a%E1;c3tcpedy!W zn;SGT3s-$~>YsDvlSS!#R&H5v5AKJ@z8fxEW?q>rD+U?Hoh#E{(yg`c_4!T4ua+8Z z*1T2$8pgF)Xm$0t@3&1`Ktc6uYSNnDH-rDEZaek(7WgI{Xy#aNTf1?KT20CowVG=` zwp`x)(xmk1w0e(~$8FaM-2I`{W4|vv`oc={uTC}E_f}T73U}z;Yi#A)W%BTbMU6;& zhuI;WhMMauUkW`ww3BVo`aGW}{T%D+8%$QmP08*5ppv`3K{E1I!up)US|3uGx4gW> zi#(7E9+LzOy$0|IOEieXAd~GL@K>Ix$lNc z#2bN?HTQ3+%$RZG&D;f6cUAM(UEP0c)z34l#7h&EW#siGTP-q#50v>7Kd7o%QJ1r? zrStup#xEP+@%c$BaqQalUNnObBlm&^DVz9f)~-!1-eV zqkD2SuD$wr3UujJ%YlgRi@)AZLd?YdFREO%e(gSsO=@#ond)$j*eE5mjkeF!n^`o@hdB=+RKhFm~{6~|1;WO>$x)VV)VE+15p>{Q&y1vZ< z-z?0vmu;STTG>m`LfC@k+b3}TyJ-KPsq=ba^6i^Bg^=OZ>YSKuw}%f6k)h_$!_dOSjK>sVe?B`fM6(Fzx5AqJ8(zivMShTEC0!*s+Pz zH-6Ci{;qeuciGkZ+V^>+&mFXKlwY|%0%b{T`o(0%CsSv2Bpu>NNqu)iAuG~iBdmtB zhfZ|fw~hym2uAODlPv`s_4$$h&&Q3EM|YXdnyY=Tq1`&tjNhuoZ)(4GmE3xu=gr2# zf?E?z%nWlERo8N;&yQNKbwTra#_nTxk1ezgOLv&}L^rY9{!q=SH27%MdhO@GWotL8 z8MsMEFEKRx#+Cnx@u{++e}vf);o}FrzqbGXWB=;+!hehUU)@+y`)gvt-Z_8EEY`SVuM*lljE%E$*M5^Yc}X!1u)(&stc2_*I7ZKfDsVAu$0|se(t36{Zwi zUU_pz!sorw8Q+Ui_ii)OF36FYVy<_(=T)d^u8Ae0%IyTAD@g$kkA}w?Y2$ zw+++y_bohjF}(WEy z!NM%sB6mlM{j#@-y7D#UUvE7Ap7*#Q-+I35K9OnlcG*92u#MGTTyuVjXN|DkBmW8N zudOTllH(p0IkA0jd9XB0XO?ThF)M~ zU-maa*Z}SV+otz5LeH#UpXk~6Qx0_~_dR&CiNU`geln#BHjC2t99&u58azku9%xrb zfq8`ayI;Xm9=$rGy`wEV`;Hi7JU1sp)=!#Cw`Fm|tpgt8CRE^9kMOa!e;hwFdJKxBD$o5+9XF-m@7M&$G zdal%1q&~BEzC zcN2Q8Tnl`kXLBFFo?-m!(qa{^ZoeMux6HRZzU9e)F6%nfbk^zYgH%IVdB+EOfrq4} z?fUgLg5*gX~&&RnO$b<8+y6thc+C5r5dgHo{v`S zRx;AN~-vSAVz9Rs$VWVD7qpm*uY&h+6#v`qx+dwAfJ`P7V{2#YF`VTjxU}v4_^a`J)z_z~O1Ep*?yT*4aOsX>Z`nQVJtx_(JzMZ=!u8Pb`XBc{|8Lnj zt!BqGn|Yi1VqczqssBmkU6*Brs{h*S&)dpuiw@g0!`8%}ZTi=}e*e!Y7r)nic)dM1 zmSy838EG^2fE$d0-3@oEi{AW@%GEF~U2v!7eU1ZDbmH=NOdHRAy^`%yoDiHM95h2% z-b_&pw2apux{UYMnk_r!=T5n`2G&pb0$#>zUAXzz>4nk4ZlKu~&?sxJ@9aMHIWfV{ zp9=1>JW<2`b)&@L=$M_`Y_4ASxE>#V4l;br-ecclmORPqiQ0zE)u!QJL8~Ua7wzuy znR{>3iSUIlZ@jrFv+u{N+uMa<2YZ&9b^O-q@?5{%gDcoB_VJZi8QY!WJUo87Kh|CD zD!g2rBQx)nx52|1H90;Mb+1S^Bp&{4@GwxpS4jHKe0# zz`fH&bva}qFL(k~A>(V!7x0eFJD?q#C1!I9gs*9Ci~cT|k#NOzisP9F4phHZ9q;|$R%J`q^L?s2I;&EBUex;Y zjJf6Q?mp|@fL3ki{cN971zE>?=*Q*9%CUBTN}^r22Y)|xFZefCc~9xVl!gq3_Ztf< zR;?HOlz1qU`JvyO4?@*qTxJ&FQOFO0H5cPsUUKg{{|0H=Wc&UbduH^XaXeC<{@Cc8 zW5Pb>%&TSk;p;$QMzt-rIamuJ7A)=4_@C@H8`MPOT&RR%|gFWBHQa zxt1O_gPIz@GaawQ0>g!XV-VAD8jf+s|?JvG`P7X*0GmJf%CjH8p5eS>_4HFJ*00=Vevzsu zxbIOZc8}%Q?8%^OE^9>MTc+Q8vdlbWZe{Y-Ytj$Xu6hT!-BVZ|ZhHNP;r~9$zW-L>z}-`4?WSJ9r=~%mGeJ`eNPsKr>*AexcrLwzQMDtY}Yq3 zK6d^pox3i_`RK=2@i`kpcRVv?MjFZ7eC@;XUq!!~wyXuY89E|k*!3dBZO#WJE5RdO z#W^Y~M9UHuCQQ6hUH%SM@mU>R78l^ZHFfoSzq?2K>wlfz{wrX;;n_x3UP$pF65kQz z*Lu@HC1C5xf-2`3y=?~bcb#K2^uEV6*}hI-U)StV{Uf@mDb69bTCuVll=(Ks)5WJFG4u(mom=|)&G=IoKpDy(oGS~ZZr1@2KTC~G_IN5(7qk8 z?}huT^PJ|_Urwo2gN=Eej-3B}&BJUP@CwjqkQ=8TG0R;NuL>Qq4l6MZG%Xa|U*m3I zRQS{HSRb!|n@ciiVejSK2eXuyAL`T3S#YdSXu+-(GTHy`?h5a_;%-nV80HglP~~3s z;}0qE0gnZ;N*QHx`#9Xp)Ss?oo%U&x{{2+<3b(x{gzbeEv`qKg%Q{I z2`v92D8_5sye)i%)jp2$e;b$Tt-3xdpBCf4bG}wyllm7DU;TU0t^Q1T(XE{GP3_)( z0bLcpQBGgb=g!jk8>i)PIBzXf$QSE{%x)fDwB)F#I%~C@zTlJH-_>o{#jGH8#l)J8 zof*a})va|VEjTXvBgWcN?xk30&Gq@I=~ui{(}LH0eA4}6O(AS0Z}Z+wypWZ=%aK>| z!d&z#Dbx4Ii50#-)_lxdo_;y=)hXTo6N37yV-$CNbd{*DQSYm2JS6LPS9^{_$wxk& zk_$^Y!EI)zErMx`Pj>tHPL~irXDU!znyggsQt+2~N#xf>In^!dnboXkPF!NEPL&R8 z)R$i1J3Y_h+=DMGA&czK-r5hEJNA#)SzPpeq|y~qyRYf(Gt!!hysb04rh+W2smUTybA-lI{raW~s+l$r%3Ue|4@i-s@X zPJ0ut=l^xDYebOaFzh?zen( zZ=UO&TeDBaZ2Pp(W>4w_lbl_fEG&NZmJ_+>HvZVidcnzEdRI1*1KCX@#crQ7G{654nK0+ z(83_Mrl>@Av1qYdd(~z7)?aKh3T8ibw*30BmAij@^soOJCJ&kx1&zC~J*;qAcs4ds ztX3?tbz}O()WEPg&6E4Z@^s&Am8mZHbWv@w!PA8`Q!>x5JUjJk(Qj_I-L|Dn%fTy! z_sM)#?5Fsv+aGMN{XMnysaHH~9pz;G zyl1a(2*fzo^cE}n`)w4w9(rc?XQdYF197JpvLuJGi&TFr1&tdGcTSG+%)KFuQb^zz#mN{XKR`Wy3AD7jv8lIlse7WuY#&_ZCbi>yt zZ(&uMXePAfVw`k4boFeq7c9hJ5>~z`nqwrF+ zxIMgHjI%wy9Z@g#^+HBt_bOOKu8~~Pb@@T6;`O%k3dh>sfBj|p?OE{K<6CUkJZ*j- z6~6KK`{%2~*L)S9f3-~CZ|}EjwVm3vmM6sL$6D<mdv5p#6LyGrz%oq z2YjBnb6ZOR>znP!OJ$$J##i6nvM60&&~^E!^_f@P;$nepD&;MUAF#cXc>Qdh@U^}5 zN4BcZKd-n;lRxpz?y`tSuc|EnvR1#k@bC)6^6AX`64vtGPrkc8CVJhMryaq^k3G!W zr?pEmJ?BOL_WnZ>$!k|Vx;s;R{ev@gQH3nmb)?(Bzc~Gp`*>PdrHu43?cZw2<;V7{ z0gcjW?D{HiZc)16Ah@DDqQ$KVt|%vfD$2V^73GcO$DqlL3CBKnCeH#dk@fGWF{;qs zl(@l5Luh^Ws@~?w{Il5-Zz^eV2*-npqxO@>RhHP~=+uP&%!&gq+umOi zKG(IFQ~SQHIH)82i+T1|>G_fSWYT^X{W`R9X6QWSx5enAryTyaQGqu%UF0l8Swnkn zdNQ-$?*_9;d!<1qA6RTyV4PvSO17J$+w!B%4xN3bcT=_JFa7l9?twWqZqkR|Z;cCh zdxJwTO-s1o?LA?w<@eW1Nv}JrGY4FFX5}_&U*EWP=aU;2cg~7G4oRMDSo8%pZko1M zSI_uc@P%IOr|&^M*SxOXCWfb{AJzda;xOBM%6N6{xeJ-EPOXA&AUR%`H|>z|3-}qW z4_!Zai|m&v$$SVp2L*bg;0L9OCynm%yS9KAD^P#$N%f4+(@uc*oKqxnF8xE^$&YjDEoCC3LHBoq_h9FXt;ttU z;gkFMJw3cnen(bry~K+idF|8VrIAo}=d!)56B=z1CZbGtxC>|7N$_`XBzh4iO2 z>&w^w-D={0UwMn@*Bwc@oZuY~t`|ue5w)7Lt6Tp6m+ARm7se&eV&;}y&cn6&#YWC+ z<}sF_C5WbrT(`_Sm9hEP=lX~5YmcYBcRKCH0-go5>(c)l&IZ$&GnbM-8G`K`p(Wf`>=cczFKS4V-9YdJicE*ksr{xz}KJ>mhgXD8wq+PKK|b;|&U~u^d145Om6WqAI+>;c&zvH7u%wzw}j&QfAMcTd*^|*Rl~;9-`~vw z9i;`m3F%RI(?r*K;Hk`qAJZ@R)x0W^-tp|jO7J-cg>!;d>uriWeH>gZns=);H#Ht| zy1*+29xHEAlbdjSM}rV(m2B%Yn;UC1wlBB?TS+wA{;%V_xo1J!%dd;2uZ0|MFtLw8 z5jHBit)RxzEZPPfv#C0s`RlX- zb$a%JNs{W56tW(|h1*~VCn%GmX-}5wl_ov9Whkh?O$6c!)mt3{Q z9(2Xpwa2PWuC*^ePEwUV4J#)Bg}sfK0ouX2p0A3zr6eBWW3v9v9E8+a_8j5$0ok7 zjz7Nc)6$=&-wc0VIj+ayymjU0EywnYuZxR5^m-wG_WVzCD-Qj#>-Gx{&qE$5eO#S> z`QeqlMPEJ&J$Qa?SAx;Y$RGE9%fE_wncY$|Bj;9##aYEYEW)K{k~{O1r3%5t(64TT z+JoO`BC^c4Z{kfYKTpV9k)OE}bRA-PCwSp=l3eei*)=EQA8y?L!F5LV&vid;T73S! z;_Sq&Pp3YWEXUAO;x%(i@|NzL~Y?a7Ca8Q4{8KsT3k+(fQ5 zC-*~#MyIc3ylg84Do<{TtLuZ-#vX^Rjb#T9m)^MZvfQk0U$#uiw}LIGLyS%_m*34Y z=GdW}`{qYcj?BD0eX&owE8XM!LHker;@{3)p8oI|qx_WB-tCcQO}~6Ekl|-@(v* zFVZ>lKRw*cmA7EMhj2^(wbQQVqS>EoruANsd6BbT=lndQ^$##Z>Gv9mGD}SBT{k*3ezPjy*{3aN=u`i{0 z!}H%SPMA-^?^KLcl`1bza z(f!}V)aq}ZStTAI|B3yRD*xV9(WMS^!sLIn8Ll_o(Z?$xzv_NQajLXdU-h#OvOLEt8D%Plg_Wg+5?KlV78?q0yzw)l7atCaGrPD#B zjo;thf$y)pceBKzRNVgGOa1$=ocA6xVHY!j3{3^rD0*3nrX8N(a8>Q_OWs5?sY5ld ztk{p}RBHSD`{DRQD=%!X!1gH}+$C@DSAXK|!z>)oWB>3Pk6@8ovq-&%AGaS+2< z@EFnQm)z;TKTcdoTNAj2H~082&>06iAuZj~7 zF4k(cQtHKL974yc{rQjH0u5iC694P**Ye>rtGS!bAAy|`0dX9~t720&PwNLS(#cDB zq_k$niYCuJ*Fm!_3yvvXdBtRLOGdCK$L~}yx6V`5_#C1tUwFXwH(@7Z>+@8kL$=T|-w(m6kGN1ci%_oaJo3I{XP<|$45%|2iJ)1Z{M;JVuGV}G1l!Fq8 zT^#LMn^kws-Nh|teW_wwo=<%__fzw@#TxZ zW$xXXT2uB7d{MBNtNEcX;_>yLH5b4C``~(h`DTu!qn6+WsRorZcT~ThAsgR!b`5gZ z?C_gUYd(g=-#YU(smTv?%8h^SVeQ(DCkwS!7~~f?r(6?06#4gQ!S-GKrE;wE;I3hj zD#;X$`|BH9vU$gMH>P!Ku20?f?%0jxJ7@`BtPzm z`3RcVylZJZu^+Tk(Q1b*5HQ-hlDC>79LWIV7nX{g0k_I<_0g-gyu+~9V7`JYAKR((~qX$RlIe)h@5 z6esXD{gg-G-G>r_y>nk2S?;&JF}rULm-W7FIceAS7JZrWJM`(xidFg&;uk@-N84=W zUH_%^#-txk5ufJ<=l*JYziIZxc)s#Ay94I-bL`lCH9Pcah1S57{GZMJZ^R-9Pf zy6SQE>9n-F>ELwAeeCEa;f%hsV&I4fRn+`=RP(aNzO*mX56iy3ce6h;`p(+8>eu^@ zO#R9epSnc;B=AHUFk~A>I91)DMf2S-X;KUW!WY_jqH66$~9#*Ic{^+!LRupHj_^3%JDBl?7V8FYr5U+MaQ_vh|C&HH*Q_`B)4HR7PHf(4t_?sBv}`Th+k7{Y(;l8&AK>R9J_ zDS2?zNB>h){b?}Me)@}fq2IZdGsW&XtbJM#`8)fIte)`(>+2b2B(8TtC$H7<~);Hi~k~@5SKpWxz=o~GrG3q=Hx?do#GVMz2 z28M~pKIbLRf+l=rA?@tRH#WYk$dZnG>An0~hv%*M|5oor!D+tul7Gauj-W$FK&N>` z@9q0ieSGRyr=H&PCES<3u0B)Y5q*Xzo}_wk-t zvHQZIk~GCxk@Ixty;^-p?Ho(o?K85oRp;Gm3;&hWe3?^m_PuN8ccuS2{m`%U`pVlL zwsVVjM$dou_Pgr3Ro8>!8D3URN!gR<*^^(GS|9uJ^wFFC=Wq4YdR45PzfPn7g73?l zrg_uWf1lBxT-*k}iJ=^H4WJW8B52bMbk90<=Am#8*ny854YbT}`18qqe^qtunokcu zf3N@Ne*YwR_xk=HuWpgQQ}Z7^(#@?B7M_21_RO@sC*OAF_cpJt$=$o~ z9B80?ef`_}KMwn^f6aP~EnjH$&zyxH_qH6nwWexkjHUj(7v1ItpQ6g29#+rKmU;VO z>(* z)W6XaBCTNm$?{iT&GqZkc<&3w-B?xUB@8+kai87}={@#8|DC`0$mGP$I~>Jpb7bb! zr2U*_dQ4{Bm!r>?@Fs#5aLCpwE|XC1;k_gwUEN}Sy^#0O-d_jIPvn6vD4!$l|JAjg z@#n<;ymK6<+iW_cqhHJ1*=Uvgr-mi|j?Blup?{w)*rUmR|EJ7p;dh6pCO`IrwDkp- zLH6y{zGvTGC%gz=-YZlHSXcW?%EtHcs^6_yCDXCt;<1&xEq<@7&#kKer~hZ~_5$;Y zNP+(!w%0umo+0dhgkO60BV<>nv4V%=-aY9qJg`H?Uw`MazUjKVKHhz5yE=|9{9O0) zUs8eg*}-h-Yl{nx9b5D9b0G2-clNw*CeJ>c-l6F8CqvrKKD@8j8d6uTOA1!6?YOGt zB_r+rgzJdj^4^a5;C{)i;CZGO-(HDTxV2$99o%Zs< z6XVm@*BCx4Sh~J&^Q(d!nRidRk8bVb1#L;+VS1w7W=lk~SV6D(j8Oe{?dL~>YdL>S z{pWI~-#p`7)N=>;O2*a;YyTRq-Y;`P{Qr+9)@N2_&o~ba&P!c+EbS~DkEXxpaAV;> zo|957fYugwJ{_3!qU?2?Wz{L($A^sg;>?^5<@7{NxN&7i+xuO4-0Jfq_oel1)Lr+5 zbqi}#6JoY$ZtJv)W9nut-+OxbSmY|N?}+?*>(Qyok0J3++2Rw9?_d;WU;H;?J8NZ5 zFE4nYWWlk*L%#JB($kB#?B8~QxAyPU*7vcJhi!Lc<=g??f);f#_UJMej{d3;#z)ZV zr0K`S&0E0LiGSrZm+jHtBd@sf9Xq(%!0eWUrC`E=&#~8YAA$n$jN!JUQ};RK2CnSx z&juaQ(qY141YU6XL-Tv`)bzzeEi$v?xEK^p^gJ>-eXF6`TPfT^Pcp_%b;${t>AfDM~;~+e`mZx z-IpiKp+?~N@_B2e*)29my#330<7E1@^^wVE9(u)ZIeN|Q0cf7#dIyVf(^~KH3l;18 zXCGKoWeLjFuU0qjF*Uoh^<3j8=-$&O-O_r$Kr0ouvQ|#kzyDL^OnJ@u71=XRPfdQD zS2Al?(P{f7D)KBB=DKbV{?1id`Z2m7=!8S8Q#Zf8`ZeDPj%(*X6nTzFU;62w<*@Ib ztv+<W8Vw?Ltj|$r+>RHCRA9H z{^p~0=c&yh;m7xH*0(n6Td$of6Bjv8Ir%Yogbg-9TYtx)z~}{dK8i&ziEZ}8S^V}- zi)H6?%m3@0LfigVS5D zVY_zi+FTa!K{nu%wI?2%k_ilJw|Y-+AT_N4t+Xrt`c1KJEDPm7#jXDsA(YCFQT%3cjTtKlZV7Y473Z8s~4_*s;l` z`czGeUvRjXtGR-m#mnRiiXnnWOhHXv@2K`1lMSrb!Ix3Y-KZF6_FxOY$C7I&3 z`nhFI`);2~&s`jMSWB! z|NK33i?$q|eotpvU08+Mxf?S~>%g;AkJH`e=k*>258Q3_TEBh$$K-!gZ9g~HPkg>- z(%)5PSANAje;G9MkY(D}%nDubs=9ag|J}8(6At9?j%)0Kt>0(zT~rD=(It-CKf;V} z-FjW=OO8(i_hwbj*>ye%RGWP{y6m{qxg?{Y+=vrjZ^d7V$oa;RuN#oVca?pgW0_y2 zjE45V9enpY+z)*%J=zC4+v6f=h5uq{eejVlDl8k6&n(YLd)RkX^6_)!AFB?16s>*L za~QF{al7g&zUbHe%-1){J%TN5+$fja3>wWV=+nNws{nG!q4}a$NZq03yTH{WhY8Xm z{-PX#b61ug^GpEk6#w&M`Tm;S^Qw9?`9L=VFV#2WdvU43x4Sjf=HU}5zsXs5r0z0Z zeY!VPPTcHLlwHlnz)dgTK^8B6O|;FNtZ{+cC~l{qCA3hGknRyZ#(uwZ_SNO*Earsj zA5%$nX;>vUbsgUgLGyLF(LHZ3b-p`)x9!Iw-K-dk<5RQm-c7h;cx;9K%vr@nuAit~o10suW8kx;uqc!1 z8l+B4XcXJ{@k#bt8@;V(PR*}*&Grm5`!apO`4`$O2Q&gWHviE2bE>z)$^o*AA9TiP zt=Ve-xrG+1T72ki>DOl#bDp2t`YzAl*$V68wqKXT zyp#X)LDo#TEOAkN6y7Ab@F@6Pv=2WtoRC&^Je{`O$?9p)OvouOhgZM4TDVkSO?bBG zWOsv&t9W0Q9!hkc;Tit++oIl0$1I=TY&z@7-6Y2TNg;pgO;AwlFYIMKk$fkiqxoXp zmf4JT+m5v*L)J%@Jo275_v}Qw(&LH`CBG{9|7p0kY-w=*#kKa;0lQb+)e7IHsIVn8 z-%feQbK}MS_m%Ig$dXxi^e*HMLS4q58Ix8#3GCO>l9diXJ@4hMZoi!LO0&GX=?|ye z+z2`-UhIQcY(&G+`Mh1AB^rzG%9&&yf6h1eQ%<0{b8c9U)2Z8A!AshYHO!Me3Y+5E z93Tr`-2tsV?XSHrSmIxL_L{|g0(Ybw{&p!?>hU7K%v#i}ne`H%MP30A_#*rMfZ z6X)K0tevxXU%(HK`TN|by|UbP9CTGB=m;2vHPaxg{#_Dh0P!1D z$D~heuio=SXY=c=$ENO!IPg8M=+=gaC%a47|FU?+nf~*rwA#hmSaWj*cp^ERy>j*a z*Pb%mMl0ff##pD?FqJ}9e8`^^cj~iyT%0yvYra(bdn-QBf=apT%AZ_ou32o{^6yRK zwwJFeQl(#ocWr#PWWME5{`*f~ZGGpLG3RsSV=(uY@S zMeaPfvbX5l$4Q`;kXL-QxviMISc%zYV`;IoICcs-t}zz zapN6*{zu--=m(7^1={{t!XtXqqE!5+^C`LX%g!;zJ0t$g%+Pt3uGXVw$bEB$S+?*s zO_rz2*4$kz*atc%q43wq(wbHOuYXc}+o8{%o^wXZ-v3+cgybBBpr7kDUb=bsqFw2+ zhoDuK*Ho{Gd^)ba&rOjp8&tGCcK+(jAdEP^^u(Swuj;<3Rr7-UqM@7``?`Dg&5p&j zTK9tQ&Rl#~;xTA({zb9waRg0Q_2-YR=O9!*!@k(m3pP~vvLnyZhe=AKx{kyNwh_s!BOu#-!IH(t{# z-z<1z$2QsbE8q2~_EsMgPoDI?rf=KkQ>cB>a)ymP8E!V^FXtn5N)Nq#U?||XwK3ko z@@-rAzgb0~?klvzdg$$n{*aFy!iRpJu@9;+MQpQc!MuAOQpJ;0n?p|rpKkx_>h0_+ zQ~Brb|Nq(kmmlb0nVC-u?|WD_uQhMpX~qXSY@=uA<4+;+(X|Kn_da@Cz9g}^)_4Bd zyRX*$kJO&M`0M^vao+jCEf>Sq|6SgfJnQt_SEj{liq_s+wp_gR%J$c1KRvzD{eNoA zamD%Rufz^Xrmc}qe+k~F^8efWe;;o<9a(f_b%@}?7QrQ;14^H4nvn=uC*r=oRb5A# z{rdGD@Szz0W#%<5IXdn7JE4CMr`K;d4L&@!2;5Br9jh|on3{f}!;WW$lXqX0b!5E} zCVj|sz3#d-;(wRSZl0Lcp0NZx#8|#s{C;{*=rM-tuhn|?se`KIpGB{h79PLNsL7nk zb$yRhg{kqiUP(xjL+OcH3pzAto!dCEA@oKg>x85E?^iZI&JL@DtqQq5`TUG$2N)jl z`6c>^M})k-I|sV_d6qSJj&R=^gx~gxzo zH%eZD4%-Zn)k>bZQu||-i<7x9m-U^EagW|a$gU5qs|njZtL)13VEwQB$)ffhvd5Cb z=Ly6e?I}$bo4agXME`USu_a6AKZmdFKMWd_yuJpUdYjW@EF%BBnv0Sswl3E{*Tvnw z``X;eg^vFBeOlk9g9u=UD3pue7z&pmk@U^ISabbUMlf@5WZn*%fXP`SOu$#DQ0Bt0(KS z-I9}T2VDt&?GC6Gx2-K~eX%e3?$^zB=M9sBFUPD~GhNwlC4a5uqIA>PcVYU4X=`46 z$>aRA?%R5?yI<8794qGi8}T^J_}bRTUef9H^HU#BIi5Iez4epL<#%UXZIgv0&A-Qa z{g^U(-c95`&enMPQQKLMv+eW0?dbCtI|S^)G)9iN^HlUg6oL?=e-5RPsHD|Ng%2)4x^h0GI=+>Q6Rf@-UEL;$$yu|y+$Kb-f zeI<`TTiLH?`_4JE`j}Q_Pjd1!{pE3YWRxm)C?074wQ9HJJl4v`$!|qIV{!p|%b}_64U5gq6s#n;=p$qjlgKi%b`@XlkvXybkZcDRug$-zhVxxjWZi=^t z%v0Mdva9AE4*hydYjd5D-1_KSA=`Isii=LpTlp^fdhW%}cai%x+~3ufp0@Mj<%p+~ z>ui3V?rzRg%bM%HZcE{}?~!JHl`?5RcRAZtU+;yUA~Qhy%c_q_@10}rQ1^3j{NBAy z;Xgn8{B8e#@%tx_4PN(7aoGE%OvTPq{{A$R$GK^G#=j0dJ!Nigck%iq>4ypZpyL5P zs#)z#6VGtI#}M}UW|MjA)jjT4)HlC+`sv6arTZQj}#w%Cr%hY}P zJAbb)kFS`S=b@Y#)u1(Q-Df!yo$NphEZ)7~Hgt`?)VAbe8~Q-yJgczvUr+`rC+|4i zXE1+LVZrfNJs&>{))W>W`5yi?yh2XC6nalRYQ^9RKV8gGsrGCZ z7XSQBg|GDL{#=g#xAOIOgVp*n5fRW4%E{g?BGOOfq}!MOO4{6{2Rf**{F7_-#ua_b zr^f`}F73`MeD`TysDAtMzN^}`y({Lwez}t6-~9jF_3y3Cs?D>&Eid__;(yOsEO`IZ z@6MWkT<0Gzh6SHe;PU-ex~^-&5})6&PzqNl65PXa0z52Pl=GoCA#?{Q;8+idSHCh_ zW(iu_uh#14QZni2p=k41@T$8VY~Vd_cTS3TXXiSjj!1sxKC^22;i-?GuiVG-*Q;LX z*>P!;LmgJF{drdqJ8kbMT>UrWYW%~>nkyS2Te1Xmg$g+WINe-iP(~tipd*nn(g77B zck}LQyT4)v9oK9YlDol2V&7)VO&>np-C9_&O8?+E_I!4z~}`Mv0>KKiV=g(9@Y3Pv@cwJ6`dAzdF8IEmwcNsVO%6%;q29LKK zKObCMI$`@UH`~zkWVWxi^Q-!9U=B5k&O7QZCp~xBx;vlvHBYh&{dAv6pZ5M2ygqf`9AD54K(p6(`R&a-9BA;q(I#tuN95O{ zidPYPFJ0&Oxq;KW$B?dzDu2d8@W6(k0_>KGbCX53T&_dl**m3}<8CNuG9-?k?% zYc>~OEItArD})r4m(tW<>|R^b*JT0D>i*wKL+jrjyy;)Mct=>@@>>=)eV-CGr&NP3 z9s0>JciFl%UGD^(KvQ2dyBA#m^Zwd3UGG-k^Z5C+zwYa|TSZR~KY#!KPyfEj;FGyt z@lH{8zwc2wEqrh0=Eq*~kEPFRZF=b2^3}I&4{yJ@*VP&sxA-TAqrY9tnPa{|_u~a)3S`a&X69v3VPEWMbl@&4lhwS-hhZ@wPEJpC%^5h zZ@YLT7rhg`w^%<{%yfQMuz7OL^*!4T%zJ&J-RS?_{XeeXJ7oXo6MxxFP-|x0;`$Tq ze?+G7{$>8LW*^7(J!ud6uIfs+_dm$atebeO=J>QNd+k^r_r6vYl9X@xIpwTQ{J9zB zuihDaYdvMRuKkCC+=heGq;FBi0vXw@$UcO8h-&eC>Kry<&!l+m#9bGlGAYh{aZd zj`!$))V(ixje*^j{+t6fUMli$y*VEm?$_Ft{dpegWhIOEd~bM`2k}B_*Xi<3|CTV&GIqJfW1dFpCpd0Ft16XUn#}WsE^}mq zhA3jX|K6KiZ3vpJ`}IofP1n1Ixw1an$J70b>^Pq^S8UN`ad&(9b8;~m{_BGcKv3jh{x`UPp_YSym{ZN zt=`FX{&%k{^sg=D*?(lN;GG9kZfg2-WET{#I4sh;^x`vHXl*u8XsXaW4!0IDNNx6b zF~{5=Q!cPV&VVk;DKYYudir4UhCCKXH|Q{EuIFWT%!b52JExYI`9F$$u~G5Nq4>Ak z4v1gp_~d%xYA>hsit7{m_U;zg@bXlg{l}oPpWuU+ytKPf2_2p;uO;?dw0LRbB(N@awc;2 zsvqM?tdqS}?NDqEsrOh6lDrm8a<^TDxyt?NjR)I*HwXCbnR>1?x^#YPa2j|kz~d&~ z$4cjy9aB;9eKh++#&*_kU#0w#IP&MZG48wDyD{&$Nzq;` z`Io%>T-$E*mp@)zI={#R2?j8uAkqI_-4<5v-@KI%Q*dTPD2eR|E+?CZz=%-glz z@R{+to8w_vhC=0_&Eaf5JRxiQx6Q zhvt1`y}R|w=Dwe{rSXeTyFYy%Tq^&Z?|MOS)Z=Xhr}l)-lafEg(XQDe`i%d@G0~5A zZ|-Ne@{NTK7mC~k-~HDLy8Cb5t?;y~ryqL7-)-94c0_dc@q5+}&rN@~YO7_BS_awPt16)H=qQ@(H@$xoIzTJ4r@b7PQ#)qien3yJyo| zZVM`|soZ-+gYEnert~xKSN@htwli3lTvMJOalPQwn<>vlEq<>|emv!)?JbKt3(uSp zK6dKFrS(SP)1Y_9zx%lJ8Mp^mXlD0cJIl^y-oerur8MwzlfK@6A0}FyIteR#v+Vq8^W?d!3T0DM85Ltr zzXcT};(vYbZ)hym{W;NJ)acY~{~RsQdgbJ+8w)EotzY}|D6jb6<%KTw!fN}TZ596{ zar_~)L=5;G828v}*^a_@0`||gw*{vyx7l3yE%uFf-P5q!0a{T!mS?ME^nX;QMvIs(Ycu#K>Wckhv(YIUuKn!}S z2#4d$h2Tq6rtXW_u+UpLN6JUw&5Ry*@uGF=^SKVK%iFM+_o1!*-!KhrY5t!ZG)sS4 znDP04IeJ#?k?YS7C)?tF?|&T}_<0uNKFC=klWVWqDcSV(UR-u7Z1>&_S;^K9FWCEj z+>-jdSpSgwGuQBEg|f+g9)BjS+Zp`15EMn}X6Nc&-FT64-ihEH*l$f=edV11A2QTG z?)Je<`<~Cr>zDdpzLVBWZ_wWx+wEU-ZF_F*$E(}(bKNXG4##CyKgbQZJDXuOZ$9^v z&{bb~bM{PJduvC*+)TF==T8aR)g7GnQ{M8^Gp((QKOKm#U99v} z(Z}Yc`)z)^>$gAbG85S%`F8E~@8xFM7OD4w=Sk*l-JJb+!_@O{EGu019{acI#IsYC zhNq`b?!RU@wf+3!e>?oLCtX`p*n4Z$?&jU%XI|-xzdiouZ1OB){b|P*zIma2v*54x z{dJPh4oY0Nc=PM;s*R94i2l93|M#)~Bi_Px*hHa{xMBxJgQ1~eDbE4ZC7-J*mRgt2 zXRVyH-Np7F=sd4e2YDG%Lw8Qu#x5oeKK9zv!q9>9bekjhrinY&nDIS+9k-jeWz&X+ zQ{uv`v-cjlt-1M6aQYt(wd}Lm+)tYyta-Xj?v!_;?z@)bH8LmSuV1ga+RG$=MRxYC z7gu&!U#W3OmH*8oe}viW#;df$M>RJ`&y%!x`{ss)#m|8J1KVz0`Bu1NQ(SU=Xv*R5 ztDha!iTAVnbpFN?n;RN7x7IoS+?khqcFxUshq@=1-?IAMO+WNd==bbz9}Vx$6t7u6 zXI1~T>aB{kPIEJo*QwjbO26Z*UH-P?}Vq49`k8-Y8COV#J zd0@pE`18`EcK$;h>#AfYvpGhC%21vE)#l3ub^k2hFD3W7riAf;e=c{;h7B7gYWU4g z-}+GM%`u~OhR>LjZ%V2k*%euThYCi}2+dFw`Wzgeo zH=>La!|Hoagx}>(+q#guTJ!fBzD38J*V%qvlx=+=tajt&hrJ~QF1TbU~j!&kYFQ4n{J$$j| zRjFS1weIW%-qJgh;yO0(I}&9V^;+Wa8QyE`Ih_65vUAqX+_3x|-?=!0)x6suDDeC^ zC-?SEvG>zgxA;nuonteNZ}~01U;VwgfcJ}dv1hfp&RX;Ja;xVqTeoFVbooS{4BNEE z1ecIcb9-c^71o?owEC#Ikt60Z=PB@_zSISNLc3dDuiPH}{nW%?9G_TQuZG3W^IDvf zJgb{+Dcidp8oe14Z*7v6RB!!rttR3{#YP$`_yN<-*A+_-Fp4~4E}D}#JLMH53Bpw2ikp7&wGFV zh2PBWr;NFm&%L|v#v>0q_va6$er1Xcj?^mtdVA^mjoZ(p*MwgCH1Wq`n-^fXYcl`e8#mj| zxBr^>eyhD?ckKQBRiI0DL91;ArhYwlX`^C{>sszg<&521RAs;&rN#N{R`yp|l+Jgw z4RsG_o+tRcxP~Qd*$XkA0I?5-aZM5t4~~5?Rk7lEQwR+`;>{^nwVb!)<}$9u;Z>K}=WPtu&PH7(mF*Kuan z9jSM-ELZP$JHc*0-@D{>;CaEnOuBa}7aFa;t92#tdYJUDHLH`SA3rhGjIUh#bD;ED z{e9Q#;-m6UJceEJy!LX)+zn;@H5O(ZcRosH1%7_GTzTDNVMA-ssp>^J0(X2qeEc{` z>&V<)+;aXU`o`1N<2Si7w&*_OTgbiB3G(N|{vk?^dz>W9BB zia(lla$%9d%Dx|kr_L;E;r-X~Jow?P>tb7^uW$T$ao(q3b8RuMM;^z;?t{-{UHCdQ z?ds(Bn-U)`)VUGBwoiU#_*wVLi}DM2y$U&4PBqBx%epIzDC(Lg_akNiF2-M2+6gVy z*Tmo5b6^{&ktp@rboKrd>Dl@-uC_(L5Rd=j*n9onnhmc`sXtwDqRnnWuEy$9Yqm}D zZLK@pX7<3kbnVMi?KRmoPranucTfGfhWFza`D%vyi81->q(B8AXi2lf>vuv6t@tXA zvrPmo15@#WE(5bPn-k?-A$&f){MEZH{2mPrZSGUWy)0;B8HNKKDHQ?v;Q_g>8To;=X zSSPSB`mbxnmckdO&bY;h>%LO|=xsH>n$;YfJSML#E6bJn_APViEz6it{Zl-#vm#bq zzg8;ie!F13zPdag|EsD4>YpFIIh(jW?NHA@tIgtXau4g?sK0ss*pI*-{i*CFXD9LI zs?Fxg^_EU@p560Os4!VRWZjm+9nmw--`enQb-uvU8wSr`#T8ry*YL32n+4%JBwZYo z&y*@xe{1`ufiw?Y?)|s)xv2UL&~arh(1YX4`TM86_&7=LFX$Xu=$Qvt2903KNtnt$ zwd%#bSG`mAgmztDk-wL*s9Q3B$(7r3(^q^gzVBhl{G2!0_?{En$I^4xXKr8Qcs9Fx z_s>VIEMI-gwkYcBtoUisv+qRvzR1mrH6=L~Hic^rh3+#ko5DZ;Np$WH^Z2W5@r!$# z;p0p<-hUC#zqVxl2Fpv~iZ-CtG-9sb^Z&n--{0xkqUt0P=p)g%=8UYgi(Zq+?1@>- zPu%UQbZruETI|?&Ek|XSrnB#3sQ^2_yXgnBeYY<7_+PzpuEE1!UBSn}lh#SalOiN; zCWEdX=TN&f$xNl!?2h&x_xP6MHLHB@{`eUCdDg+HprQ2=*;)^~C(AeFyl_5{{?&EI zv#qVxVcT0zv8>jfVask-_;Qa-6rGl zt=v@j#q<&Q zzKAc}j~n)d%fDn*xuf7((q7GVJP zGGzC>B;v1dwl9Z8BXcY=f(sI+fMeq5j)pL1XuIu9{Q@A z99#M0r*wQrgH-)A?c?WzYYUCr5*GIh|z&onA-QvnVf`1U{M|(Z!@}k??%0L^kLs&go!BkK*1#ph*e;oj0FsnXxhRp7xgN{yF}Tt9%Xw~x+J;(zEpi1cp8WE zSHNROraha5e;g`%?-Q}g+jwYQbhuo#h6dSAvy36Eljp8K>Mpe)lO)93$ z)nfd^-K87ze--xFp8`i*!^Q)qPn_#)<{gqa=$_txKv_0E_Lr1aeCnCw;Ewn^t51vn zXT`{>o7%PXyFvDCG6nAZQgLz;??cnT-7K(%K=tXx&o{n)toGnat=Qe9V@W%{2!EIa zzES3=DP$>5-afZ4Cpeu}d&e*OytFq~Y3*i5fuzIfz4oW4K7QW0uf)l!kNMMskZs2r z^X@J9x9g!3d|~@mll@A&oPP*I2T#iCcf5G;<5slXtLvPZ%im31+&`URcF^4iB}`xL z{on9vC1Nh3ML0KN{?W1*H7}Qxc$Qp_Z`t^8_oMU=S2k8nUH@x_SMT!uCsrSODJb&q zfKa^Y*;M!tO1!|kXVB-7p-jsbmvmJ71z*ly6oeUnaztU^13S_`D@278mkpUgj
- - Matching C for `func_80A87D94` - - -```C -void func_80A87D94(EnJj* this, PlayState* play) { - switch (play->csCtx.actorCues[2]->id) { - case 1: - if ((this->unk_30A & 2) != 0) { - this->unk_30E = 0; - this->unk_30F = Rand_S16Offset(20, 20); - this->unk_310 = 0; - this->unk_311 = 0; - this->unk_30A ^= 2; - } - break; - case 2: - this->unk_30A |= 1; - if ((this->unk_30A & 8) == 0) { - this->unk_304 = Actor_SpawnAsChild(&play->actorCtx, &this->dyna.actor, play, ACTOR_EFF_DUST, - -1100.0f, 105.0f, -27.0f, 0, 0, 0, 0); - this->unk_30A |= 8; - } - break; - case 3: - if ((this->unk_30A & 2) == 0) { - this->unk_30E = 0; - this->unk_30F = 0; - this->unk_310 = 1; - this->unk_311 = 0; - this->unk_30A |= 2; - } - break; - } - if ((this->unk_30A & 1) != 0) { - Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_JABJAB_BREATHE - SFX_FLAG); - if (this->unk_308 >= -5200) { - this->unk_308 -= 102; - } - } -} -``` - -
- - -With that, the last remaining function is `EnJj_Draw`. Draw functions have an extra layer of macroing that is required, so we shall cover them separately. - -Next: [Draw functions](draw_functions.md) diff --git a/docs/tutorial/pre-decomp.md b/docs/tutorial/pre-decomp.md deleted file mode 100644 index 4ad66b76f..000000000 --- a/docs/tutorial/pre-decomp.md +++ /dev/null @@ -1,31 +0,0 @@ -# Pre-decompilation - -It is very important to get everything set up properly before you start trying to decompile anything. As usual, if you need help at any stage of the process, ask in the Discord and we'll do our best to help. - -## Setting up the repository - -This is covered on the main page of the repository. - -## Git and GitHub workflow - -First, make a GitHub fork of the repository, then clone it into a git-enabled local folder. - -Once you have decided on an actor, you should make a new git branch to work on: your main branch is meant to stay level with the main repository. Name it something sensible: my `EnFirefly` branch is called "en_firefly", for example, but you may prefer to use a more descriptive name: "Dark_Link" is rather more suggestive than "en_torch2", for example. You work on the branch, commit changes, and periodically push them to GitHub, if only for backup purposes. - -Once you have finished an actor, you submit a pull request for other people to check your work complies with the project's conventions, and once it is deemed satisfactory, it will be merged in to the main repository. - -But we are getting ahead of ourselves: - -## Choosing a first actor - -Since actors cover so many different categories of stuff in the game, they come in a wide variety of shapes, sizes and difficulties. The following is a list of things to bear in mind: - -- Bosses are by far the largest, and all are already taken, so you can safely ignore them. Likewise `ovl_Fishing`, the largest actor in the game. -- Enemies are often quite complicated due to the many different interactions they have with Link, and sometimes one another. -- NPCs vary hugely. Some of the smaller ones are suitable to be first actors, but many are not. -- Cutscene objects tend to have very complicated functions, and are best left until later. -- The best starter actors tend to be dungeon or scene objects: statues, platforms, decorations, gates, etc., although we are naturally running a bit short on these now. - -The general rule of thumb is to pick something with few, simple interactions with its environment. (For example, my first actor was BgIceTurara: icicles, which can do about 3 different things: break, fall, and grow.) This hopefully means that the functions are mostly small and simple. You are also probably better off if Draw and Init are small functions, although difficulty is sometimes not correlated to size. - -If in doubt, ask someone to have a quick look through the code to see if it's suitable. diff --git a/docs/tutorial/types_structs_padding.md b/docs/tutorial/types_structs_padding.md deleted file mode 100644 index 30c691a0c..000000000 --- a/docs/tutorial/types_structs_padding.md +++ /dev/null @@ -1,149 +0,0 @@ -# Types, structs, and padding - -Reminders: -- In N64 MIPS, 1 word is 4 bytes (yes, the N64 is meant to be 64-bit, but it mostly isn't used like it in OoT) -- A byte is 8 bits, or 2 hex digits - - -## Types - -The following are the common data types used everywhere: - -| Name | Size | Comment | -| ---- | ----- | -------- | -| char | 1 byte | character | -| u8 | 1 byte | unsigned byte | -| s8 | 1 byte | signed byte | -| u16 | 2 bytes | unsigned short | -| s16 | 2 bytes | signed short | -| u32 | 4 bytes/1 word | unsigned int | -| s32 | 4 bytes/1 word | signed int | -| void* | 4 bytes/1 word | pointer | - -A pointer is sometimes mistaken for an s32. s32 is the default thing to use in the absence of any other information about the data. - -Useful data for guessing types: -- u8 is about 7 times more common than s8 (so the tutorial is a bit misleading) -- s16 is about 16 times more common than u16 -- s32 is about 8 times more common than u32 - -Another useful thing to put here: the prototype for an action function is -```C -typedef void (*ActorNameActionFunc)(struct ActorName*, PlayState*); -``` -where you replace `ActorName` by the actual actor name as used elsewhere in the actor, e.g. `EnJj`. - - -## Some Common Structs - - - -Here are the usual names and the sizes of some of the most common structs used in actors and their structs: -| Type | Usual name | Size | -| ----------------------- | --------------------- | --------------- | -| `Actor` | `actor` | 0x14C | -| `DynaPolyActor` | `dyna` | 0x164 | -| `Vec3f` | | 0xC | -| `Vec3s` | | 0x6 | -| `SkelAnime` | `skelAnime` | 0x44 | -| `Vec3s[limbCount]` | `jointTable` | 0x6 * limbCount | -| `Vec3s[limbCount]` | `morphTable` | 0x6 * limbCount | -| `ColliderCylinder` | `collider` | 0x4C | -| `ColliderQuad` | `collider` | 0x80 | -| `ColliderJntSph` | `collider` | 0x20 | -| `ColliderJntSphElement` | `colliderElements[n]` | 0x40 * n | -| `ColliderTris` | `collider` | 0x20 | -| `ColliderTrisElement` | `colliderElements[n]` | 0x5C * n | - -(`colliderElements` used to be called `colliderItems`, and we have not switched over fully in the repo yet.) - -## Padding - -### Alignment - -A stored variable or piece of data does not always start immediately after the previous one: there may be padding in between: `0`s that are never written or referred to, and so ignored. This is to do with how the processor accesses memory: it reads 1 word at a time, so multibyte objects are aligned so they cross as few word boundaries as possible. - -The clearest example of this is that variables with types that are 1 word in size (`s32`s and pointers, for example) are automatically shifted so that they start at the beginning of the next word, i.e. at an offset ending with one of `0,4,8,C`: this is called 4-alignment. This will also happen to `s16`s, but with 2-alignment - -### Struct padding - -In actor structs, this manifests as some of the char arrays not being completely replaced by actual variables. For example, BgIceTurara, the actor for icicles, has the following actor struct: - -```C -typedef struct BgIceTurara { - /* 0x0000 */ DynaPolyActor dyna; - /* 0x0164 */ BgIceTuraraActionFunc actionFunc; - /* 0x0168 */ s16 shiverTimer; - /* 0x016C */ ColliderCylinder collider; -} BgIceTurara; // size = 0x01B8 -``` - -Notice that even though `timer` is an `s16`, `collider` is at `this + 0x16C`: there was originally a `char unk_166[0x2]` left over from the original char array, but it has been removed without affecting the alignment. - -How do structs themselves align? A struct has the same alignment properties as its longest constituent (that is not itself a struct). For example, a `Vec3f` has 4-alignment, while a `Vec3s` has 2-alignment. - -A struct may also pad at the end: it will pad to the size of its largest non-struct element. Notably, every actor struct has size a whole number of words as well, so this phenomenon also occurs at the ends of structs: see, for example, EnJj's actor struct that we filled out in the tutorial: the `char unk_312[0x2]` is unnecessary, because it is used nowhere, and the struct pads to `0x314` anyway. - -For more information on this topic, there are plenty of guides elsewhere on the Internet. *The main thing to bear in mind for decomp purposes is that after finishing the functions, there may be some small parts of the actor struct that are just not used, because they were originally just struct padding.* - -### Padding at the end of sections - - - - - -In the ROM, each actor is layed out in the following order: - -- .text (Function instructions, separated into .s files, aka .text) -- .data (contents of the .data.s file) -- .rodata (read-only data, includes strings, floats, jumptables etc., moved to the appropriate function files in the OoT repo) -- .bss (varibles initialised to 0, not assigned a value when declared) -- .reloc (relocation information: you can ignore this) - -Each section is 0x10/16-aligned (qword aligned): each new section begins at an address with last digit `0`. This means that there can occur up to three words of padding at the end of each section. - -(The same occurs with any object divided into multiple .c files: each new file becomes 0x10 aligned.) - -#### Padding at the end of .text (function instructions) - -In function instructions, this manifests as a set of `nop`s at the end of the last function, and once the rest of the functions match, this is automatic. So you never need to worry about these. - -#### Padding at the end of .data - -In data, the last entry may contain up to 3 words of 0s as padding. These can safely be removed when migrating data, but make sure that you don't remove something that actually is accessed by the function and happens to be 0! - -For example, in `EnJj` we found that the last symbol in the data, -```C -glabel D_80A88CFC - .word 0x06007698, 0x06007A98, 0x06007E98, 0x00000000, 0x00000000 -``` -had 2 words of padding: only the first 3 entries are actually used. - -### Padding within the .data section - -Every distinct symbol in data is 4-aligned (word-aligned). So in the data, even if you have two `u8`s, they will be stored in addresses starting successive words: - -```C -u8 byte1 = 1 // will go to address ending in 0 -u8 byte2 = 2 // Will go to address ending in 4 -``` - -#### Fake symbols - -The process of separating the data is not flawless, and sometimes gives rise to symbols that are fake: that is, containing data that should not be stored by itself, but part of a different earlier symbol. - -Since `D_address` corresponds to the address where the symbol is stored, every address should be word-aligned, i.e. end in one of `0,4,8,C`. Any symbols that do not are fake, and the data attached to them should be joined to the data of previous symbol, with all references to them adjusted to the correct offset from the previous symbol. - -Thankfully most of the fake symbols have now been automatically eliminated, but that does not mean that there are none left. Symbols can also be fake if they have the correct alignment, but are rather harder to spot. From 6c4935dc184122d395e1f546ec35573c4d2d3d96 Mon Sep 17 00:00:00 2001 From: cadmic Date: Sat, 3 Aug 2024 18:43:26 -0700 Subject: [PATCH 05/10] Use recomp instead of qemu-irix in Jenkins (#2014) --- Jenkinsfile | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index f05c0808c..2566f13e3 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -30,20 +30,7 @@ pipeline { sh 'make -j setup' } } - stage('Build gc-eu-mq-dbg (qemu-irix)') { - when { - branch 'main' - } - steps { - sh 'make -j ORIG_COMPILER=1' - } - } stage('Build gc-eu-mq-dbg') { - when { - not { - branch 'main' - } - } steps { sh 'make -j RUN_CC_CHECK=0' } @@ -54,20 +41,7 @@ pipeline { sh 'make -j setup VERSION=gc-eu-mq' } } - stage('Build gc-eu-mq (qemu-irix)') { - when { - branch 'main' - } - steps { - sh 'make -j VERSION=gc-eu-mq ORIG_COMPILER=1' - } - } stage('Build gc-eu-mq') { - when { - not { - branch 'main' - } - } steps { sh 'make -j VERSION=gc-eu-mq RUN_CC_CHECK=0' } From 6a8c556bdb38d89e3bef8a225cbbb5469bf1cf7f Mon Sep 17 00:00:00 2001 From: fig02 Date: Tue, 6 Aug 2024 13:32:34 -0400 Subject: [PATCH 06/10] Add make_options.mk (#2016) * make-options.mk * fix file name * Make more settings overwritable with .make_options.mk and group them together * PAL -> EU --------- Co-authored-by: Derek Hensley --- .gitignore | 1 + Makefile | 80 ++++++++++++++++++++++++++++-------------------------- 2 files changed, 43 insertions(+), 38 deletions(-) diff --git a/.gitignore b/.gitignore index fcb8f37f6..3b1e6398a 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ __pycache__/ .idea/ # Project-specific ignores +.make_options.mk extracted/ build/ expected/ diff --git a/Makefile b/Makefile index 99f468e13..adf690705 100644 --- a/Makefile +++ b/Makefile @@ -5,31 +5,66 @@ SHELL = /bin/bash .SHELLFLAGS = -o pipefail -c # Build options can either be changed by modifying the makefile, or by building with 'make SETTING=value' +# It is also possible to override default settings in a file called .make_options.mk with 'SETTING=value'. + +-include .make_options.mk # If COMPARE is 1, check the output md5sum after building -COMPARE := 1 +COMPARE ?= 1 # If NON_MATCHING is 1, define the NON_MATCHING C flag when building -NON_MATCHING := 0 +NON_MATCHING ?= 0 # If ORIG_COMPILER is 1, compile with QEMU_IRIX and the original compiler -ORIG_COMPILER := 0 +ORIG_COMPILER ?= 0 # If COMPILER is "gcc", compile with GCC instead of IDO. -COMPILER := ido +COMPILER ?= ido # Target game version. Currently the following versions are supported: # gc-eu GameCube Europe/PAL # gc-eu-mq GameCube Europe/PAL Master Quest # gc-eu-mq-dbg GameCube Europe/PAL Master Quest Debug (default) # The following versions are work-in-progress and not yet matching: # gc-us GameCube US -VERSION := gc-eu-mq-dbg +VERSION ?= gc-eu-mq-dbg # Number of threads to extract and compress with -N_THREADS := $(shell nproc) +N_THREADS ?= $(shell nproc) # Check code syntax with host compiler -RUN_CC_CHECK := 1 +RUN_CC_CHECK ?= 1 +# Set prefix to mips binutils binaries (mips-linux-gnu-ld => 'mips-linux-gnu-') - Change at your own risk! +# In nearly all cases, not having 'mips-linux-gnu-*' binaries on the PATH is indicative of missing dependencies +MIPS_BINUTILS_PREFIX ?= mips-linux-gnu- +# Emulator w/ flags +N64_EMULATOR ?= +# Set to override game region in the ROM header. Options: JP, US, EU +# REGION ?= US CFLAGS ?= CPPFLAGS ?= CPP_DEFINES ?= +# Version-specific settings +ifeq ($(VERSION),gc-us) + REGION ?= US + PAL := 0 + MQ := 0 + DEBUG := 0 +else ifeq ($(VERSION),gc-eu) + REGION ?= EU + PAL := 1 + MQ := 0 + DEBUG := 0 +else ifeq ($(VERSION),gc-eu-mq) + REGION ?= EU + PAL := 1 + MQ := 1 + DEBUG := 0 +else ifeq ($(VERSION),gc-eu-mq-dbg) + REGION ?= EU + PAL := 1 + MQ := 1 + DEBUG := 1 +else +$(error Unsupported version $(VERSION)) +endif + # ORIG_COMPILER cannot be combined with a non-IDO compiler. Check for this case and error out if found. ifneq ($(COMPILER),ido) ifeq ($(ORIG_COMPILER),1) @@ -42,40 +77,11 @@ ifeq ($(COMPILER),gcc) NON_MATCHING := 1 endif -# Set prefix to mips binutils binaries (mips-linux-gnu-ld => 'mips-linux-gnu-') - Change at your own risk! -# In nearly all cases, not having 'mips-linux-gnu-*' binaries on the PATH is indicative of missing dependencies -MIPS_BINUTILS_PREFIX := mips-linux-gnu- - ifeq ($(NON_MATCHING),1) CPP_DEFINES += -DNON_MATCHING -DAVOID_UB COMPARE := 0 endif -# Version-specific settings -ifeq ($(VERSION),gc-us) - REGION := US - PAL := 0 - MQ := 0 - DEBUG := 0 -else ifeq ($(VERSION),gc-eu) - REGION := EU - PAL := 1 - MQ := 0 - DEBUG := 0 -else ifeq ($(VERSION),gc-eu-mq) - REGION := EU - PAL := 1 - MQ := 1 - DEBUG := 0 -else ifeq ($(VERSION),gc-eu-mq-dbg) - REGION := EU - PAL := 1 - MQ := 1 - DEBUG := 1 -else -$(error Unsupported version $(VERSION)) -endif - PROJECT_DIR := $(dir $(realpath $(firstword $(MAKEFILE_LIST)))) BUILD_DIR := build/$(VERSION) EXPECTED_DIR := expected/$(BUILD_DIR) @@ -157,8 +163,6 @@ OBJCOPY := $(MIPS_BINUTILS_PREFIX)objcopy OBJDUMP := $(MIPS_BINUTILS_PREFIX)objdump NM := $(MIPS_BINUTILS_PREFIX)nm -N64_EMULATOR ?= - INC := -Iinclude -Iinclude/libc -Isrc -I$(BUILD_DIR) -I. -I$(EXTRACTED_DIR) # Check code syntax with host compiler From 01865243003bdeab66a079e29ba9489552ce6956 Mon Sep 17 00:00:00 2001 From: cadmic Date: Wed, 7 Aug 2024 17:03:22 -0700 Subject: [PATCH 07/10] Match NTSC z_kaleido_scope.c (#1988) * Match NTSC z_kaleido_scope.c * Use new REGs everywhere * Add comments for YREG initialization * Use new REGs everywhere for real * Fix merge --- assets/xml/textures/icon_item_jpn_static.xml | 4 +- include/regs.h | 14 +++ src/code/z_construct.c | 54 ++++++---- .../misc/ovl_kaleido_scope/z_kaleido_scope.c | 102 +++++++++++++----- 4 files changed, 126 insertions(+), 48 deletions(-) diff --git a/assets/xml/textures/icon_item_jpn_static.xml b/assets/xml/textures/icon_item_jpn_static.xml index 95e1ea055..f2fe854b8 100644 --- a/assets/xml/textures/icon_item_jpn_static.xml +++ b/assets/xml/textures/icon_item_jpn_static.xml @@ -11,8 +11,8 @@ - - + + diff --git a/include/regs.h b/include/regs.h index 7878d5aad..53e8053a7 100644 --- a/include/regs.h +++ b/include/regs.h @@ -100,6 +100,14 @@ #define R_TEXTBOX_TEXHEIGHT YREG(17) #define R_TEXTBOX_WIDTH YREG(22) #define R_TEXTBOX_HEIGHT YREG(23) +#if OOT_NTSC +#define R_KALEIDO_UNK1(i) YREG(48 + (i)) +#define R_KALEIDO_UNK2(i) YREG(50 + (i)) +#define R_KALEIDO_UNK3(i) YREG(52 + (i)) +#define R_KALEIDO_UNK4(i) YREG(54 + (i)) +#define R_KALEIDO_UNK5(i) YREG(56 + (i)) +#define R_KALEIDO_UNK6(i) YREG(58 + (i)) +#endif #define R_TEXTBOX_ICON_XPOS YREG(71) #define R_TEXTBOX_ICON_YPOS YREG(72) #define R_TEXTBOX_ICON_DIMENSION YREG(75) @@ -187,6 +195,12 @@ #define R_B_LABEL_X(i) WREG(40 + (i)) #define R_B_LABEL_Y(i) WREG(43 + (i)) #define R_A_LABEL_Z(i) WREG(46 + (i)) +#define R_KALEIDO_UNK1(i) WREG(49 + (i)) +#define R_KALEIDO_UNK2(i) WREG(52 + (i)) +#define R_KALEIDO_UNK3(i) WREG(55 + (i)) +#define R_KALEIDO_UNK4(i) WREG(58 + (i)) +#define R_KALEIDO_UNK5(i) WREG(61 + (i)) +#define R_KALEIDO_UNK6(i) WREG(64 + (i)) #endif #define R_DGN_MINIMAP_X WREG(68) #define R_DGN_MINIMAP_Y WREG(69) diff --git a/src/code/z_construct.c b/src/code/z_construct.c index ac1291e2d..f9bfa5efd 100644 --- a/src/code/z_construct.c +++ b/src/code/z_construct.c @@ -247,6 +247,22 @@ void Regs_InitDataImpl(void) { YREG(45) = 236; YREG(46) = 36; YREG(47) = 0; + +#if OOT_NTSC + R_KALEIDO_UNK1(0) = -45; + R_KALEIDO_UNK1(1) = -48; + R_KALEIDO_UNK2(0) = 16; + R_KALEIDO_UNK2(1) = 22; + R_KALEIDO_UNK3(0) = -55; + R_KALEIDO_UNK3(1) = -53; + R_KALEIDO_UNK4(0) = 43; + R_KALEIDO_UNK4(1) = 47; + R_KALEIDO_UNK5(0) = -33; + R_KALEIDO_UNK5(1) = -42; + R_KALEIDO_UNK6(0) = -33; + R_KALEIDO_UNK6(1) = -37; +#else + // Same as above, although these regs are now unused for PAL versions YREG(48) = -45; YREG(49) = -48; YREG(50) = 16; @@ -259,6 +275,8 @@ void Regs_InitDataImpl(void) { YREG(57) = -42; YREG(58) = -33; YREG(59) = -37; +#endif + YREG(60) = 14; YREG(61) = -2; YREG(62) = -2; @@ -533,24 +551,24 @@ void Regs_InitDataImpl(void) { R_A_LABEL_Z(0) = -380; R_A_LABEL_Z(1) = -360; R_A_LABEL_Z(2) = -350; - WREG(49) = -48; - WREG(50) = 16; - WREG(51) = -62; - WREG(52) = 22; - WREG(53) = -84; - WREG(54) = 20; - WREG(55) = -53; - WREG(56) = 40; - WREG(57) = -64; - WREG(58) = 47; - WREG(59) = -84; - WREG(60) = 44; - WREG(61) = -42; - WREG(62) = 32; - WREG(63) = -45; - WREG(64) = -37; - WREG(65) = 30; - WREG(66) = -50; + R_KALEIDO_UNK1(0) = -48; + R_KALEIDO_UNK1(1) = 16; + R_KALEIDO_UNK1(2) = -62; + R_KALEIDO_UNK2(0) = 22; + R_KALEIDO_UNK2(1) = -84; + R_KALEIDO_UNK2(2) = 20; + R_KALEIDO_UNK3(0) = -53; + R_KALEIDO_UNK3(1) = 40; + R_KALEIDO_UNK3(2) = -64; + R_KALEIDO_UNK4(0) = 47; + R_KALEIDO_UNK4(1) = -84; + R_KALEIDO_UNK4(2) = 44; + R_KALEIDO_UNK5(0) = -42; + R_KALEIDO_UNK5(1) = 32; + R_KALEIDO_UNK5(2) = -45; + R_KALEIDO_UNK6(0) = -37; + R_KALEIDO_UNK6(1) = 30; + R_KALEIDO_UNK6(2) = -50; #endif R_DGN_MINIMAP_X = 204; diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c index 2e9f652f3..0eba73593 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c @@ -132,18 +132,49 @@ static void* sGameOverTexs[] = { gPauseSave20Tex, gPauseSave21Tex, gPauseSave22Tex, gPauseSave23Tex, gPauseSave24Tex, }; -static void* sEquipmentTexs[] = - LANGUAGE_ARRAY(sEquipmentJPNTexs, sEquipmentENGTexs, sEquipmentGERTexs, sEquipmentFRATexs); +#if OOT_NTSC +#define EQUIPMENT_TEXS(language) ((language) != LANGUAGE_JPN ? sEquipmentENGTexs : sEquipmentJPNTexs) +#define SELECT_ITEM_TEXS(language) ((language) != LANGUAGE_JPN ? sSelectItemENGTexs : sSelectItemJPNTexs) +#define MAP_TEXS(language) ((language) != LANGUAGE_JPN ? sMapENGTexs : sMapJPNTexs) +#define QUEST_STATUS_TEXS(language) ((language) != LANGUAGE_JPN ? sQuestStatusENGTexs : sQuestStatusJPNTexs) +#define SAVE_TEXS(language) ((language) != LANGUAGE_JPN ? sSaveENGTexs : sSaveJPNTexs) +#else +static void* sEquipmentTexs[] = { + sEquipmentENGTexs, + sEquipmentGERTexs, + sEquipmentFRATexs, +}; -static void* sSelectItemTexs[] = - LANGUAGE_ARRAY(sSelectItemJPNTexs, sSelectItemENGTexs, sSelectItemGERTexs, sSelectItemFRATexs); +static void* sSelectItemTexs[] = { + sSelectItemENGTexs, + sSelectItemGERTexs, + sSelectItemFRATexs, +}; -static void* sMapTexs[] = LANGUAGE_ARRAY(sMapJPNTexs, sMapENGTexs, sMapGERTexs, sMapFRATexs); +static void* sMapTexs[] = { + sMapENGTexs, + sMapGERTexs, + sMapFRATexs, +}; -static void* sQuestStatusTexs[] = - LANGUAGE_ARRAY(sQuestStatusJPNTexs, sQuestStatusENGTexs, sQuestStatusGERTexs, sQuestStatusFRATexs); +static void* sQuestStatusTexs[] = { + sQuestStatusENGTexs, + sQuestStatusGERTexs, + sQuestStatusFRATexs, +}; -static void* sSaveTexs[] = LANGUAGE_ARRAY(sSaveJPNTexs, sSaveENGTexs, sSaveGERTexs, sSaveFRATexs); +static void* sSaveTexs[] = { + sSaveENGTexs, + sSaveGERTexs, + sSaveFRATexs, +}; + +#define EQUIPMENT_TEXS(language) (sEquipmentTexs[(language)]) +#define SELECT_ITEM_TEXS(language) (sSelectItemTexs[(language)]) +#define MAP_TEXS(language) (sMapTexs[(language)]) +#define QUEST_STATUS_TEXS(language) (sQuestStatusTexs[(language)]) +#define SAVE_TEXS(language) (sSaveTexs[(language)]) +#endif s16 D_8082AAEC[] = { 32, 112, 32, 48, 32, 32, 32, 48, 32, 64, 32, 48, 48, 48, 48, 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 80, 64, @@ -588,6 +619,9 @@ void KaleidoScope_SetupPageSwitch(PauseContext* pauseCtx, u8 pt) { pauseCtx->cursorSpecialPos = PAUSE_CURSOR_PAGE_LEFT; } +#if OOT_NTSC + gSaveContext.buttonStatus[0] = gPageSwitchNextButtonStatus[pauseCtx->pageIndex + pt][0]; +#endif gSaveContext.buttonStatus[1] = gPageSwitchNextButtonStatus[pauseCtx->pageIndex + pt][1]; gSaveContext.buttonStatus[2] = gPageSwitchNextButtonStatus[pauseCtx->pageIndex + pt][2]; gSaveContext.buttonStatus[3] = gPageSwitchNextButtonStatus[pauseCtx->pageIndex + pt][3]; @@ -832,7 +866,7 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) { G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); POLY_OPA_DISP = KaleidoScope_DrawPageSections(POLY_OPA_DISP, pauseCtx->itemPageVtx, - sSelectItemTexs[gSaveContext.language]); + SELECT_ITEM_TEXS(gSaveContext.language)); KaleidoScope_DrawItemSelect(play); } @@ -850,7 +884,7 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) { G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); POLY_OPA_DISP = KaleidoScope_DrawPageSections(POLY_OPA_DISP, pauseCtx->equipPageVtx, - sEquipmentTexs[gSaveContext.language]); + EQUIPMENT_TEXS(gSaveContext.language)); KaleidoScope_DrawEquipment(play); } @@ -869,7 +903,7 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) { G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); POLY_OPA_DISP = KaleidoScope_DrawPageSections(POLY_OPA_DISP, pauseCtx->questPageVtx, - sQuestStatusTexs[gSaveContext.language]); + QUEST_STATUS_TEXS(gSaveContext.language)); KaleidoScope_DrawQuestStatus(play, gfxCtx); } @@ -888,7 +922,7 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) { G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); POLY_OPA_DISP = - KaleidoScope_DrawPageSections(POLY_OPA_DISP, pauseCtx->mapPageVtx, sMapTexs[gSaveContext.language]); + KaleidoScope_DrawPageSections(POLY_OPA_DISP, pauseCtx->mapPageVtx, MAP_TEXS(gSaveContext.language)); if (sInDungeonScene) { KaleidoScope_DrawDungeonMap(play, gfxCtx); @@ -917,7 +951,7 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) { G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); POLY_OPA_DISP = KaleidoScope_DrawPageSections(POLY_OPA_DISP, pauseCtx->itemPageVtx, - sSelectItemTexs[gSaveContext.language]); + SELECT_ITEM_TEXS(gSaveContext.language)); KaleidoScope_DrawItemSelect(play); break; @@ -932,7 +966,7 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) { G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); POLY_OPA_DISP = - KaleidoScope_DrawPageSections(POLY_OPA_DISP, pauseCtx->mapPageVtx, sMapTexs[gSaveContext.language]); + KaleidoScope_DrawPageSections(POLY_OPA_DISP, pauseCtx->mapPageVtx, MAP_TEXS(gSaveContext.language)); if (sInDungeonScene) { KaleidoScope_DrawDungeonMap(play, gfxCtx); @@ -964,7 +998,7 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) { G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); POLY_OPA_DISP = KaleidoScope_DrawPageSections(POLY_OPA_DISP, pauseCtx->questPageVtx, - sQuestStatusTexs[gSaveContext.language]); + QUEST_STATUS_TEXS(gSaveContext.language)); KaleidoScope_DrawQuestStatus(play, gfxCtx); @@ -983,7 +1017,7 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) { G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); POLY_OPA_DISP = KaleidoScope_DrawPageSections(POLY_OPA_DISP, pauseCtx->equipPageVtx, - sEquipmentTexs[gSaveContext.language]); + EQUIPMENT_TEXS(gSaveContext.language)); KaleidoScope_DrawEquipment(play); @@ -1037,7 +1071,7 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) { POLY_OPA_DISP = KaleidoScope_DrawPageSections(POLY_OPA_DISP, pauseCtx->saveVtx, sGameOverTexs); } else { // PAUSE_STATE_SAVE_PROMPT POLY_OPA_DISP = - KaleidoScope_DrawPageSections(POLY_OPA_DISP, pauseCtx->saveVtx, sSaveTexs[gSaveContext.language]); + KaleidoScope_DrawPageSections(POLY_OPA_DISP, pauseCtx->saveVtx, SAVE_TEXS(gSaveContext.language)); } gSPVertex(POLY_OPA_DISP++, &pauseCtx->saveVtx[60], 32, 0); @@ -1132,9 +1166,9 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) { LANGUAGE_ARRAY(gPauseToSelectItemJPNTex, gPauseToSelectItemENGTex, gPauseToSelectItemGERTex, gPauseToSelectItemFRATex), }; - static u16 D_8082ADD8[3] = { 56, 88, 80 }; - static u16 D_8082ADE0[3] = { 64, 88, 72 }; - static u16 D_8082ADE8[3] = { 80, 104, 112 }; + static u16 D_8082ADD8[] = LANGUAGE_ARRAY(56, 56, 88, 80); + static u16 D_8082ADE0[] = LANGUAGE_ARRAY(48, 64, 88, 72); + static u16 D_8082ADE8[] = LANGUAGE_ARRAY(96, 80, 104, 112); static s16 D_8082ADF0[][4] = { { 180, 210, 255, 220 }, { 100, 100, 150, 220 }, @@ -1415,13 +1449,14 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) { gSPVertex(POLY_OPA_DISP++, &pauseCtx->infoPanelVtx[16], 8, 0); if (pauseCtx->state == PAUSE_STATE_SAVE_PROMPT) { - pauseCtx->infoPanelVtx[16].v.ob[0] = pauseCtx->infoPanelVtx[18].v.ob[0] = WREG(61 + gSaveContext.language); + pauseCtx->infoPanelVtx[16].v.ob[0] = pauseCtx->infoPanelVtx[18].v.ob[0] = + R_KALEIDO_UNK5(gSaveContext.language); pauseCtx->infoPanelVtx[17].v.ob[0] = pauseCtx->infoPanelVtx[19].v.ob[0] = pauseCtx->infoPanelVtx[16].v.ob[0] + 24; pauseCtx->infoPanelVtx[20].v.ob[0] = pauseCtx->infoPanelVtx[22].v.ob[0] = - pauseCtx->infoPanelVtx[16].v.ob[0] + WREG(52 + gSaveContext.language); + pauseCtx->infoPanelVtx[16].v.ob[0] + R_KALEIDO_UNK2(gSaveContext.language); pauseCtx->infoPanelVtx[21].v.ob[0] = pauseCtx->infoPanelVtx[23].v.ob[0] = pauseCtx->infoPanelVtx[20].v.ob[0] + D_8082ADE0[gSaveContext.language]; @@ -1461,13 +1496,13 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) { } else { if ((u32)pauseCtx->pageIndex == PAUSE_ITEM) { pauseCtx->infoPanelVtx[16].v.ob[0] = pauseCtx->infoPanelVtx[18].v.ob[0] = - WREG(49 + gSaveContext.language); + R_KALEIDO_UNK1(gSaveContext.language); pauseCtx->infoPanelVtx[17].v.ob[0] = pauseCtx->infoPanelVtx[19].v.ob[0] = pauseCtx->infoPanelVtx[16].v.ob[0] + 48; pauseCtx->infoPanelVtx[20].v.ob[0] = pauseCtx->infoPanelVtx[22].v.ob[0] = - pauseCtx->infoPanelVtx[16].v.ob[0] + WREG(58 + gSaveContext.language); + pauseCtx->infoPanelVtx[16].v.ob[0] + R_KALEIDO_UNK4(gSaveContext.language); pauseCtx->infoPanelVtx[21].v.ob[0] = pauseCtx->infoPanelVtx[23].v.ob[0] = pauseCtx->infoPanelVtx[20].v.ob[0] + D_8082ADD8[gSaveContext.language]; @@ -1490,13 +1525,13 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) { (pauseCtx->cursorSlot[PAUSE_QUEST] <= 0x11)) { if (pauseCtx->namedItem != PAUSE_ITEM_NONE) { pauseCtx->infoPanelVtx[16].v.ob[0] = pauseCtx->infoPanelVtx[18].v.ob[0] = - WREG(55 + gSaveContext.language); + R_KALEIDO_UNK3(gSaveContext.language); pauseCtx->infoPanelVtx[17].v.ob[0] = pauseCtx->infoPanelVtx[19].v.ob[0] = pauseCtx->infoPanelVtx[16].v.ob[0] + 24; pauseCtx->infoPanelVtx[20].v.ob[0] = pauseCtx->infoPanelVtx[22].v.ob[0] = - pauseCtx->infoPanelVtx[16].v.ob[0] + WREG(52 + gSaveContext.language); + pauseCtx->infoPanelVtx[16].v.ob[0] + R_KALEIDO_UNK2(gSaveContext.language); #if OOT_PAL if (gSaveContext.language == LANGUAGE_GER) { @@ -1523,13 +1558,13 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) { } } else if (pauseCtx->pageIndex == PAUSE_EQUIP) { pauseCtx->infoPanelVtx[16].v.ob[0] = pauseCtx->infoPanelVtx[18].v.ob[0] = - WREG(64 + gSaveContext.language); + R_KALEIDO_UNK6(gSaveContext.language); pauseCtx->infoPanelVtx[17].v.ob[0] = pauseCtx->infoPanelVtx[19].v.ob[0] = pauseCtx->infoPanelVtx[16].v.ob[0] + 24; pauseCtx->infoPanelVtx[20].v.ob[0] = pauseCtx->infoPanelVtx[22].v.ob[0] = - pauseCtx->infoPanelVtx[16].v.ob[0] + WREG(52 + gSaveContext.language); + pauseCtx->infoPanelVtx[16].v.ob[0] + R_KALEIDO_UNK2(gSaveContext.language); pauseCtx->infoPanelVtx[21].v.ob[0] = pauseCtx->infoPanelVtx[23].v.ob[0] = pauseCtx->infoPanelVtx[20].v.ob[0] + D_8082ADD8[gSaveContext.language]; @@ -2675,7 +2710,9 @@ void KaleidoScope_UpdateCursorSize(PlayState* play) { void KaleidoScope_LoadDungeonMap(PlayState* play) { InterfaceContext* interfaceCtx = &play->interfaceCtx; +#if OOT_PAL s32 pad; +#endif DMA_REQUEST_SYNC(interfaceCtx->mapSegment, (uintptr_t)_map_48x85_staticSegmentRomStart + ((R_MAP_TEX_INDEX + 0) * MAP_48x85_TEX_SIZE), @@ -3190,6 +3227,9 @@ void KaleidoScope_Update(PlayState* play) { pauseCtx->state = PAUSE_STATE_CLOSING; WREG(2) = -6240; func_800F64E0(0); +#if OOT_NTSC + AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF); +#endif } else if (CHECK_BTN_ALL(input->press.button, BTN_B)) { pauseCtx->nextPageMode = 0; pauseCtx->promptChoice = 0; @@ -3335,6 +3375,9 @@ void KaleidoScope_Update(PlayState* play) { WREG(2) = -6240; YREG(8) = pauseCtx->unk_204; func_800F64E0(0); +#if OOT_NTSC + AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF); +#endif } else { Audio_PlaySfxGeneral(NA_SE_SY_PIECE_OF_HEART, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, @@ -3356,6 +3399,9 @@ void KaleidoScope_Update(PlayState* play) { gSaveContext.buttonStatus[3] = BTN_ENABLED; gSaveContext.hudVisibilityMode = HUD_VISIBILITY_NO_CHANGE; Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_ALL); +#if OOT_NTSC + AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF); +#endif } break; From 29acf96db2fe30f0d194cc4298a3ceef367bf0e5 Mon Sep 17 00:00:00 2001 From: Tharo <17233964+Thar0@users.noreply.github.com> Date: Thu, 8 Aug 2024 05:11:39 +0100 Subject: [PATCH 08/10] [Audio 1/?] Extract Samplebanks and Soundfonts to XML (#2008) * [Audio 1/?] Extract Samplebanks and Soundfonts to XML * Remove config.py and use the version yamls for addresses, other suggested changes * Adjust setup-audio * Remove some commented out dead code (MM review) --- Makefile | 8 + assets/xml/audio/samplebanks/SampleBank_0.xml | 433 ++++++++ assets/xml/audio/samplebanks/SampleBank_2.xml | 4 + assets/xml/audio/samplebanks/SampleBank_3.xml | 8 + assets/xml/audio/samplebanks/SampleBank_4.xml | 8 + assets/xml/audio/samplebanks/SampleBank_5.xml | 9 + assets/xml/audio/samplebanks/SampleBank_6.xml | 10 + assets/xml/audio/soundfonts/Soundfont_0.xml | 250 +++++ assets/xml/audio/soundfonts/Soundfont_1.xml | 102 ++ assets/xml/audio/soundfonts/Soundfont_10.xml | 23 + assets/xml/audio/soundfonts/Soundfont_11.xml | 15 + assets/xml/audio/soundfonts/Soundfont_12.xml | 13 + assets/xml/audio/soundfonts/Soundfont_13.xml | 24 + assets/xml/audio/soundfonts/Soundfont_14.xml | 15 + assets/xml/audio/soundfonts/Soundfont_15.xml | 26 + assets/xml/audio/soundfonts/Soundfont_16.xml | 23 + assets/xml/audio/soundfonts/Soundfont_17.xml | 18 + assets/xml/audio/soundfonts/Soundfont_18.xml | 29 + assets/xml/audio/soundfonts/Soundfont_19.xml | 14 + assets/xml/audio/soundfonts/Soundfont_2.xml | 28 + assets/xml/audio/soundfonts/Soundfont_20.xml | 23 + assets/xml/audio/soundfonts/Soundfont_21.xml | 20 + assets/xml/audio/soundfonts/Soundfont_22.xml | 25 + assets/xml/audio/soundfonts/Soundfont_23.xml | 14 + assets/xml/audio/soundfonts/Soundfont_24.xml | 23 + assets/xml/audio/soundfonts/Soundfont_25.xml | 19 + assets/xml/audio/soundfonts/Soundfont_26.xml | 10 + assets/xml/audio/soundfonts/Soundfont_27.xml | 21 + assets/xml/audio/soundfonts/Soundfont_28.xml | 15 + assets/xml/audio/soundfonts/Soundfont_29.xml | 22 + assets/xml/audio/soundfonts/Soundfont_3.xml | 37 + assets/xml/audio/soundfonts/Soundfont_30.xml | 13 + assets/xml/audio/soundfonts/Soundfont_31.xml | 19 + assets/xml/audio/soundfonts/Soundfont_32.xml | 32 + assets/xml/audio/soundfonts/Soundfont_33.xml | 37 + assets/xml/audio/soundfonts/Soundfont_34.xml | 42 + assets/xml/audio/soundfonts/Soundfont_35.xml | 26 + assets/xml/audio/soundfonts/Soundfont_36.xml | 17 + assets/xml/audio/soundfonts/Soundfont_37.xml | 11 + assets/xml/audio/soundfonts/Soundfont_4.xml | 11 + assets/xml/audio/soundfonts/Soundfont_5.xml | 22 + assets/xml/audio/soundfonts/Soundfont_6.xml | 16 + assets/xml/audio/soundfonts/Soundfont_7.xml | 17 + assets/xml/audio/soundfonts/Soundfont_8.xml | 26 + assets/xml/audio/soundfonts/Soundfont_9.xml | 34 + baseroms/gc-eu-mq-dbg/config.yml | 4 + baseroms/gc-eu-mq/config.yml | 4 + baseroms/gc-eu/config.yml | 4 + baseroms/gc-us/config.yml | 4 + tools/audio/extraction/audio_extract.py | 269 +++++ tools/audio/extraction/audio_tables.py | 107 ++ tools/audio/extraction/audiobank_file.py | 956 ++++++++++++++++++ tools/audio/extraction/audiobank_structs.py | 406 ++++++++ tools/audio/extraction/audiotable.py | 690 +++++++++++++ tools/audio/extraction/envelope.py | 119 +++ tools/audio/extraction/tuning.py | 211 ++++ tools/audio/extraction/util.py | 126 +++ tools/audio_extraction.py | 166 +++ 58 files changed, 4678 insertions(+) create mode 100644 assets/xml/audio/samplebanks/SampleBank_0.xml create mode 100644 assets/xml/audio/samplebanks/SampleBank_2.xml create mode 100644 assets/xml/audio/samplebanks/SampleBank_3.xml create mode 100644 assets/xml/audio/samplebanks/SampleBank_4.xml create mode 100644 assets/xml/audio/samplebanks/SampleBank_5.xml create mode 100644 assets/xml/audio/samplebanks/SampleBank_6.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_0.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_1.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_10.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_11.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_12.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_13.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_14.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_15.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_16.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_17.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_18.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_19.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_2.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_20.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_21.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_22.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_23.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_24.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_25.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_26.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_27.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_28.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_29.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_3.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_30.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_31.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_32.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_33.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_34.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_35.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_36.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_37.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_4.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_5.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_6.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_7.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_8.xml create mode 100644 assets/xml/audio/soundfonts/Soundfont_9.xml create mode 100644 tools/audio/extraction/audio_extract.py create mode 100644 tools/audio/extraction/audio_tables.py create mode 100644 tools/audio/extraction/audiobank_file.py create mode 100644 tools/audio/extraction/audiobank_structs.py create mode 100644 tools/audio/extraction/audiotable.py create mode 100644 tools/audio/extraction/envelope.py create mode 100644 tools/audio/extraction/tuning.py create mode 100644 tools/audio/extraction/util.py create mode 100644 tools/audio_extraction.py diff --git a/Makefile b/Makefile index adf690705..fa0ede70a 100644 --- a/Makefile +++ b/Makefile @@ -183,6 +183,9 @@ PYTHON ?= $(VENV)/bin/python3 # preprocessor for this because it won't substitute inside string literals. SPEC_REPLACE_VARS := sed -e 's|$$(BUILD_DIR)|$(BUILD_DIR)|g' +# Audio tools +AUDIO_EXTRACT := $(PYTHON) tools/audio_extraction.py + CFLAGS += $(CPP_DEFINES) CPPFLAGS += $(CPP_DEFINES) @@ -427,6 +430,10 @@ venv: $(PYTHON) -m pip install -U pip $(PYTHON) -m pip install -U -r requirements.txt +# TODO this is a temporary rule for testing audio, to be removed +setup-audio: + $(AUDIO_EXTRACT) -o $(EXTRACTED_DIR) -v $(VERSION) --read-xml + setup: venv $(MAKE) -C tools $(PYTHON) tools/decompress_baserom.py $(VERSION) @@ -434,6 +441,7 @@ setup: venv $(PYTHON) tools/extract_incbins.py $(EXTRACTED_DIR)/baserom --oot-version $(VERSION) -o $(EXTRACTED_DIR)/incbin $(PYTHON) tools/msgdis.py $(VERSION) $(PYTHON) extract_assets.py -v $(VERSION) -j$(N_THREADS) + $(AUDIO_EXTRACT) -o $(EXTRACTED_DIR) -v $(VERSION) --read-xml disasm: $(RM) -r $(EXPECTED_DIR) diff --git a/assets/xml/audio/samplebanks/SampleBank_0.xml b/assets/xml/audio/samplebanks/SampleBank_0.xml new file mode 100644 index 000000000..336d17028 --- /dev/null +++ b/assets/xml/audio/samplebanks/SampleBank_0.xml @@ -0,0 +1,433 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/audio/samplebanks/SampleBank_2.xml b/assets/xml/audio/samplebanks/SampleBank_2.xml new file mode 100644 index 000000000..21e76424e --- /dev/null +++ b/assets/xml/audio/samplebanks/SampleBank_2.xml @@ -0,0 +1,4 @@ + + + + diff --git a/assets/xml/audio/samplebanks/SampleBank_3.xml b/assets/xml/audio/samplebanks/SampleBank_3.xml new file mode 100644 index 000000000..e6738f8b3 --- /dev/null +++ b/assets/xml/audio/samplebanks/SampleBank_3.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/assets/xml/audio/samplebanks/SampleBank_4.xml b/assets/xml/audio/samplebanks/SampleBank_4.xml new file mode 100644 index 000000000..8d68e285f --- /dev/null +++ b/assets/xml/audio/samplebanks/SampleBank_4.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/assets/xml/audio/samplebanks/SampleBank_5.xml b/assets/xml/audio/samplebanks/SampleBank_5.xml new file mode 100644 index 000000000..6eb735693 --- /dev/null +++ b/assets/xml/audio/samplebanks/SampleBank_5.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/assets/xml/audio/samplebanks/SampleBank_6.xml b/assets/xml/audio/samplebanks/SampleBank_6.xml new file mode 100644 index 000000000..e6971659b --- /dev/null +++ b/assets/xml/audio/samplebanks/SampleBank_6.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_0.xml b/assets/xml/audio/soundfonts/Soundfont_0.xml new file mode 100644 index 000000000..02f75704f --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_0.xml @@ -0,0 +1,250 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_1.xml b/assets/xml/audio/soundfonts/Soundfont_1.xml new file mode 100644 index 000000000..6376f6d11 --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_1.xml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_10.xml b/assets/xml/audio/soundfonts/Soundfont_10.xml new file mode 100644 index 000000000..578101fd4 --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_10.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_11.xml b/assets/xml/audio/soundfonts/Soundfont_11.xml new file mode 100644 index 000000000..72b4f77fd --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_11.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_12.xml b/assets/xml/audio/soundfonts/Soundfont_12.xml new file mode 100644 index 000000000..4800feced --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_12.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_13.xml b/assets/xml/audio/soundfonts/Soundfont_13.xml new file mode 100644 index 000000000..b399905de --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_13.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_14.xml b/assets/xml/audio/soundfonts/Soundfont_14.xml new file mode 100644 index 000000000..2345061c9 --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_14.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_15.xml b/assets/xml/audio/soundfonts/Soundfont_15.xml new file mode 100644 index 000000000..bf32ecd43 --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_15.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_16.xml b/assets/xml/audio/soundfonts/Soundfont_16.xml new file mode 100644 index 000000000..c1c6d1d2b --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_16.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_17.xml b/assets/xml/audio/soundfonts/Soundfont_17.xml new file mode 100644 index 000000000..a16e9752f --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_17.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_18.xml b/assets/xml/audio/soundfonts/Soundfont_18.xml new file mode 100644 index 000000000..76807539a --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_18.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_19.xml b/assets/xml/audio/soundfonts/Soundfont_19.xml new file mode 100644 index 000000000..9f2ba9286 --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_19.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_2.xml b/assets/xml/audio/soundfonts/Soundfont_2.xml new file mode 100644 index 000000000..a297ce850 --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_2.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_20.xml b/assets/xml/audio/soundfonts/Soundfont_20.xml new file mode 100644 index 000000000..5ce632d47 --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_20.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_21.xml b/assets/xml/audio/soundfonts/Soundfont_21.xml new file mode 100644 index 000000000..a1bc07be8 --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_21.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_22.xml b/assets/xml/audio/soundfonts/Soundfont_22.xml new file mode 100644 index 000000000..fe0099beb --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_22.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_23.xml b/assets/xml/audio/soundfonts/Soundfont_23.xml new file mode 100644 index 000000000..582c638a2 --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_23.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_24.xml b/assets/xml/audio/soundfonts/Soundfont_24.xml new file mode 100644 index 000000000..aee3907f9 --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_24.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_25.xml b/assets/xml/audio/soundfonts/Soundfont_25.xml new file mode 100644 index 000000000..5ad7d22f2 --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_25.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_26.xml b/assets/xml/audio/soundfonts/Soundfont_26.xml new file mode 100644 index 000000000..ec20f4f56 --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_26.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_27.xml b/assets/xml/audio/soundfonts/Soundfont_27.xml new file mode 100644 index 000000000..1bc1c9d88 --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_27.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_28.xml b/assets/xml/audio/soundfonts/Soundfont_28.xml new file mode 100644 index 000000000..c0292b0d7 --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_28.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_29.xml b/assets/xml/audio/soundfonts/Soundfont_29.xml new file mode 100644 index 000000000..39e03a9a2 --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_29.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_3.xml b/assets/xml/audio/soundfonts/Soundfont_3.xml new file mode 100644 index 000000000..bb510aaef --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_3.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_30.xml b/assets/xml/audio/soundfonts/Soundfont_30.xml new file mode 100644 index 000000000..e9a1d093e --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_30.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_31.xml b/assets/xml/audio/soundfonts/Soundfont_31.xml new file mode 100644 index 000000000..d246fff00 --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_31.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_32.xml b/assets/xml/audio/soundfonts/Soundfont_32.xml new file mode 100644 index 000000000..7508ee8b5 --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_32.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_33.xml b/assets/xml/audio/soundfonts/Soundfont_33.xml new file mode 100644 index 000000000..93116ad1c --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_33.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_34.xml b/assets/xml/audio/soundfonts/Soundfont_34.xml new file mode 100644 index 000000000..20437b048 --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_34.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_35.xml b/assets/xml/audio/soundfonts/Soundfont_35.xml new file mode 100644 index 000000000..fa9209a72 --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_35.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_36.xml b/assets/xml/audio/soundfonts/Soundfont_36.xml new file mode 100644 index 000000000..fe49eda57 --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_36.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_37.xml b/assets/xml/audio/soundfonts/Soundfont_37.xml new file mode 100644 index 000000000..67fa255b2 --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_37.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_4.xml b/assets/xml/audio/soundfonts/Soundfont_4.xml new file mode 100644 index 000000000..4e023974e --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_4.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_5.xml b/assets/xml/audio/soundfonts/Soundfont_5.xml new file mode 100644 index 000000000..465b554ee --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_5.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_6.xml b/assets/xml/audio/soundfonts/Soundfont_6.xml new file mode 100644 index 000000000..f4c239da8 --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_6.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_7.xml b/assets/xml/audio/soundfonts/Soundfont_7.xml new file mode 100644 index 000000000..aa61f7d25 --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_7.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_8.xml b/assets/xml/audio/soundfonts/Soundfont_8.xml new file mode 100644 index 000000000..06cc14a1c --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_8.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/audio/soundfonts/Soundfont_9.xml b/assets/xml/audio/soundfonts/Soundfont_9.xml new file mode 100644 index 000000000..97384ba3c --- /dev/null +++ b/assets/xml/audio/soundfonts/Soundfont_9.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/baseroms/gc-eu-mq-dbg/config.yml b/baseroms/gc-eu-mq-dbg/config.yml index c5e301afa..115ee5c05 100644 --- a/baseroms/gc-eu-mq-dbg/config.yml +++ b/baseroms/gc-eu-mq-dbg/config.yml @@ -72,6 +72,10 @@ variables: sFraMessageEntryTable: 0x80151658 sStaffMessageEntryTable: 0x80153768 sShadowTex: 0x80A8E610 + gSoundFontTable: 0x801550D0 + gSequenceFontTable: 0x80155340 + gSequenceTable: 0x80155500 + gSampleBankTable: 0x80155BF0 assets: - name: code/fbdemo_circle xml_path: assets/xml/code/fbdemo_circle.xml diff --git a/baseroms/gc-eu-mq/config.yml b/baseroms/gc-eu-mq/config.yml index 34c5cbe9c..59b1802e4 100644 --- a/baseroms/gc-eu-mq/config.yml +++ b/baseroms/gc-eu-mq/config.yml @@ -64,6 +64,10 @@ variables: sFraMessageEntryTable: 0x8010DB28 sStaffMessageEntryTable: 0x8010FC38 sShadowTex: 0x80A72FA0 + gSoundFontTable: 0x80110470 + gSequenceFontTable: 0x801106E0 + gSequenceTable: 0x801108A0 + gSampleBankTable: 0x80110F90 assets: - name: code/fbdemo_circle xml_path: assets/xml/code/fbdemo_circle.xml diff --git a/baseroms/gc-eu/config.yml b/baseroms/gc-eu/config.yml index 90712dc3f..7d54a0259 100644 --- a/baseroms/gc-eu/config.yml +++ b/baseroms/gc-eu/config.yml @@ -64,6 +64,10 @@ variables: sFraMessageEntryTable: 0x8010DB48 sStaffMessageEntryTable: 0x8010FC58 sShadowTex: 0x80A73020 + gSoundFontTable: 0x80110490 + gSequenceFontTable: 0x80110700 + gSequenceTable: 0x801108C0 + gSampleBankTable: 0x80110FB0 assets: - name: code/fbdemo_circle xml_path: assets/xml/code/fbdemo_circle.xml diff --git a/baseroms/gc-us/config.yml b/baseroms/gc-us/config.yml index 54498f9a2..c66c4322e 100644 --- a/baseroms/gc-us/config.yml +++ b/baseroms/gc-us/config.yml @@ -63,6 +63,10 @@ variables: sNesMessageEntryTable: 0x8010DFCC sStaffMessageEntryTable: 0x801121EC sShadowTex: 0x80A74130 + gSoundFontTable: 0x80112C80 + gSequenceFontTable: 0x80112EF0 + gSequenceTable: 0x801130B0 + gSampleBankTable: 0x801137A0 assets: - name: code/fbdemo_circle xml_path: assets/xml/code/fbdemo_circle.xml diff --git a/tools/audio/extraction/audio_extract.py b/tools/audio/extraction/audio_extract.py new file mode 100644 index 000000000..ac51d2e0e --- /dev/null +++ b/tools/audio/extraction/audio_extract.py @@ -0,0 +1,269 @@ +# SPDX-FileCopyrightText: © 2024 ZeldaRET +# SPDX-License-Identifier: CC0-1.0 +# +# Extract audio files +# + +import os +from dataclasses import dataclass +from enum import auto, Enum +from typing import Dict, List, Tuple, Union +from xml.etree import ElementTree +from xml.etree.ElementTree import Element + +from .audio_tables import AudioCodeTable, AudioCodeTableEntry, AudioStorageMedium +from .audiotable import AudioTableFile +from .audiobank_file import AudiobankFile +from .util import align, debugm, error, incbin + +class MMLVersion(Enum): + OOT = auto() + MM = auto() + +@dataclass +class GameVersionInfo: + # Music Macro Language Version + mml_version : MMLVersion + # Soundfont table code offset + soundfont_table : int + # Sequence font table code offset + seq_font_table : int + # Sequence table code offset + seq_table : int + # Sample bank table code offset + sample_bank_table : int + # Sequence enum names + seq_enum_names : Tuple[str] + # List of indices corresponding to handwritten sequences + handwritten_sequences : Tuple[int] + # Some soundfonts report the wrong samplebank, map them to the correct samplebank for proper sample discovery + fake_banks : Dict[int, int] + # Contains audiotable indices that suffer from a buffer clearing bug + audiotable_buffer_bugs : Tuple[int] + +SAMPLECONV_PATH = f"{os.path.dirname(os.path.realpath(__file__))}/../sampleconv/sampleconv" + +BASEROM_DEBUG = False + +# ====================================================================================================================== +# Run +# ====================================================================================================================== + +def collect_sample_banks(audiotable_seg : memoryview, extracted_dir : str, version_info : GameVersionInfo, + table : AudioCodeTable, samplebank_xmls : Dict[int, Tuple[str, Element]]): + sample_banks : List[Union[AudioTableFile, int]] = [] + + for i,entry in enumerate(table): + entry : AudioCodeTableEntry + + assert entry.short_data1 == 0 and entry.short_data2 == 0 and entry.short_data3 == 0, \ + "Bad data for Sample Bank entry, all short data should be 0" + assert entry.medium == AudioStorageMedium.MEDIUM_CART , \ + "Bad data for Sample Bank entry, medium should be CART" + + if entry.size == 0: + # Pointer to other entry, in this case the rom address is a table index + + entry_dst = table.entries[entry.rom_addr] + sample_banks[entry.rom_addr].register_ptr(i) + sample_banks.append(entry_dst.rom_addr) + else: + # Check whether this samplebank suffers from the buffer bug + # TODO it should be possible to detect this automatically by checking padding following sample discovery + bug = i in version_info.audiotable_buffer_bugs + + bank = AudioTableFile(i, audiotable_seg, entry, table.rom_addr, buffer_bug=bug, + extraction_xml=samplebank_xmls.get(i, None)) + + if BASEROM_DEBUG: + bank.dump_bin(f"{extracted_dir}/baserom_audiotest/audiotable_files/{bank.file_name}.bin") + + sample_banks.append(bank) + + return sample_banks + +def bank_data_lookup(sample_banks : List[Union[AudioTableFile, int]], e : Union[AudioTableFile, int]) -> AudioTableFile: + if isinstance(e, int): + if e == 255: + return None + return bank_data_lookup(sample_banks, sample_banks[e]) + else: + return e + +def collect_soundfonts(audiobank_seg : memoryview, extracted_dir : str, version_info : GameVersionInfo, + sound_font_table : AudioCodeTable, soundfont_xmls : Dict[int, Tuple[str, Element]], + sample_banks : List[Union[AudioTableFile, int]]): + soundfonts = [] + + for i,entry in enumerate(sound_font_table): + entry : AudioCodeTableEntry + + # Lookup the samplebanks used by this soundfont + bank1 = bank_data_lookup(sample_banks, version_info.fake_banks.get(i, entry.sample_bank_id_1)) + bank2 = bank_data_lookup(sample_banks, entry.sample_bank_id_2) + + # Read the data + soundfont = AudiobankFile(audiobank_seg, i, entry, sound_font_table.rom_addr, bank1, bank2, + entry.sample_bank_id_1, entry.sample_bank_id_2, + extraction_xml=soundfont_xmls.get(i, None)) + soundfonts.append(soundfont) + + if BASEROM_DEBUG: + # Write the individual file for debugging and comparison + soundfont.dump_bin(f"{extracted_dir}/baserom_audiotest/audiobank_files/{soundfont.file_name}.bin") + + return soundfonts + +def extract_samplebank(extracted_dir : str, sample_banks : List[Union[AudioTableFile, int]], bank : AudioTableFile, + write_xml : bool): + # deal with remaining gaps, have to blob them unless we can find an exact match in another bank + bank.finalize_coverage(sample_banks) + # assign names + bank.assign_names() + + # write xml + with open(f"{extracted_dir}/assets/audio/samplebanks/{bank.file_name}.xml", "w") as outfile: + outfile.write(bank.to_xml(f"assets/audio/samples/{bank.name}")) + + # write the extraction xml if specified + if write_xml: + bank.write_extraction_xml(f"assets/xml/audio/samplebanks/{bank.file_name}.xml") + +def extract_audio_for_version(version_info : GameVersionInfo, extracted_dir : str, read_xml : bool, write_xml : bool): + print("Setting up...") + + # Open baserom segments + + code_seg = None + audiotable_seg = None + audiobank_seg = None + + with open(f"{extracted_dir}/baserom/code", "rb") as infile: + code_seg = memoryview(infile.read()) + + with open(f"{extracted_dir}/baserom/Audiotable", "rb") as infile: + audiotable_seg = memoryview(infile.read()) + + with open(f"{extracted_dir}/baserom/Audiobank", "rb") as infile: + audiobank_seg = memoryview(infile.read()) + + # ================================================================================================================== + # Collect audio tables + # ================================================================================================================== + + seq_font_tbl_len = version_info.seq_table - version_info.seq_font_table + + sound_font_table = AudioCodeTable(code_seg, version_info.soundfont_table) + sample_bank_table = AudioCodeTable(code_seg, version_info.sample_bank_table) + sequence_table = AudioCodeTable(code_seg, version_info.seq_table) + sequence_font_table = incbin(code_seg, version_info.seq_font_table, seq_font_tbl_len) + + if BASEROM_DEBUG: + # Extract Table Binaries + + os.makedirs(f"{extracted_dir}/baserom_audiotest/audio_code_tables/", exist_ok=True) + + with open(f"{extracted_dir}/baserom_audiotest/audio_code_tables/samplebank_table.bin", "wb") as outfile: + outfile.write(sample_bank_table.data) + + with open(f"{extracted_dir}/baserom_audiotest/audio_code_tables/soundfont_table.bin", "wb") as outfile: + outfile.write(sound_font_table.data) + + with open(f"{extracted_dir}/baserom_audiotest/audio_code_tables/sequence_table.bin", "wb") as outfile: + outfile.write(sequence_table.data) + + with open(f"{extracted_dir}/baserom_audiotest/audio_code_tables/sequence_font_table.bin", "wb") as outfile: + outfile.write(sequence_font_table) + + # ================================================================================================================== + # Collect extraction xmls + # ================================================================================================================== + + samplebank_xmls : Dict[int, Tuple[str, Element]] = {} + soundfont_xmls : Dict[int, Tuple[str, Element]] = {} + sequence_xmls : Dict[int, Tuple[str, Element]] = {} + + if read_xml: + # Read all present xmls + + def walk_xmls(out_dict : Dict[int, Tuple[str, Element]], path : str, typename : str): + for root,_,files in os.walk(path): + for f in files: + fullpath = os.path.join(root, f) + xml = ElementTree.parse(fullpath) + xml_root = xml.getroot() + + if xml_root.tag != typename or "Name" not in xml_root.attrib or "Index" not in xml_root.attrib: + error(f"Malformed {typename} extraction xml: \"{fullpath}\"") + out_dict[int(xml_root.attrib["Index"])] = (f.replace(".xml", ""), xml_root) + + walk_xmls(samplebank_xmls, f"assets/xml/audio/samplebanks", "SampleBank") + walk_xmls(soundfont_xmls, f"assets/xml/audio/soundfonts", "SoundFont") + walk_xmls(sequence_xmls, f"assets/xml/audio/sequences", "Sequence") + + # TODO warn about any missing xmls or xmls with a bad index + + # ================================================================================================================== + # Collect samplebanks + # ================================================================================================================== + + if BASEROM_DEBUG: + os.makedirs(f"{extracted_dir}/baserom_audiotest/audiotable_files", exist_ok=True) + sample_banks = collect_sample_banks(audiotable_seg, extracted_dir, version_info, sample_bank_table, samplebank_xmls) + + # ================================================================================================================== + # Collect soundfonts + # ================================================================================================================== + + if BASEROM_DEBUG: + os.makedirs(f"{extracted_dir}/baserom_audiotest/audiobank_files", exist_ok=True) + soundfonts = collect_soundfonts(audiobank_seg, extracted_dir, version_info, sound_font_table, soundfont_xmls, + sample_banks) + + # ================================================================================================================== + # Finalize samplebanks + # ================================================================================================================== + + for i,bank in enumerate(sample_banks): + if isinstance(bank, AudioTableFile): + bank.finalize_samples() + + # ================================================================================================================== + # Extract samplebank contents + # ================================================================================================================== + + print("Extracting samplebanks...") + + os.makedirs(f"{extracted_dir}/assets/audio/samplebanks", exist_ok=True) + if write_xml: + os.makedirs(f"assets/xml/audio/samplebanks", exist_ok=True) + + for bank in sample_banks: + if isinstance(bank, AudioTableFile): + extract_samplebank(extracted_dir, sample_banks, bank, write_xml) + + # ================================================================================================================== + # Extract soundfonts + # ================================================================================================================== + + print("Extracting soundfonts...") + + os.makedirs(f"{extracted_dir}/assets/audio/soundfonts", exist_ok=True) + if write_xml: + os.makedirs(f"assets/xml/audio/soundfonts", exist_ok=True) + + for i,sf in enumerate(soundfonts): + sf : AudiobankFile + + # Finalize instruments/drums/etc. + # This step includes assigning the final samplerate and basenote for the instruments, which may be different + # from the samplerate and basenote assigned to their sample prior. + sf.finalize() + + # write the soundfont xml itself + with open(f"{extracted_dir}/assets/audio/soundfonts/{sf.file_name}.xml", "w") as outfile: + outfile.write(sf.to_xml(f"Soundfont_{i}", "assets/audio/samplebanks")) + + # write the extraction xml if specified + if write_xml: + sf.write_extraction_xml(f"assets/xml/audio/soundfonts/{sf.file_name}.xml") diff --git a/tools/audio/extraction/audio_tables.py b/tools/audio/extraction/audio_tables.py new file mode 100644 index 000000000..d288b9262 --- /dev/null +++ b/tools/audio/extraction/audio_tables.py @@ -0,0 +1,107 @@ +# SPDX-FileCopyrightText: © 2024 ZeldaRET +# SPDX-License-Identifier: CC0-1.0 +# +# Implements code tables structure and related enums +# + +import struct +from enum import IntEnum + +from .util import incbin + +class AudioStorageMedium(IntEnum): + MEDIUM_RAM = 0 + MEDIUM_UNK = 1 + MEDIUM_CART = 2 + MEDIUM_DISK_DRIVE = 3 + +class AudioCachePolicy(IntEnum): + CACHE_LOAD_PERMANENT = 0 + CACHE_LOAD_PERSISTENT = 1 + CACHE_LOAD_TEMPORARY = 2 + CACHE_LOAD_EITHER = 3 + CACHE_LOAD_EITHER_NOSYNC = 4 + +class AudioCodeTableEntry: + """ + typedef struct { + /* 0x00 */ u32 romAddr; + /* 0x04 */ u32 size; + /* 0x08 */ s8 medium; + /* 0x09 */ s8 cachePolicy; + /* 0x0A */ s16 shortData1; + /* 0x0C */ s16 shortData2; + /* 0x0E */ s16 shortData3; + } AudioTableEntry; // size = 0x10 + """ + def __init__(self, data): + self.rom_addr, self.size, self.medium, self.cache_policy, self.short_data1, self.short_data2, \ + self.short_data3 = struct.unpack(">IIbbhhh", data[:0x10]) + + self.medium = AudioStorageMedium(self.medium) + self.cache_policy = AudioCachePolicy(self.cache_policy) + + self.sample_bank_id_1 = (self.short_data1 >> 8) & 0xFF + self.sample_bank_id_2 = (self.short_data1 >> 0) & 0xFF + + self.num_instruments = (self.short_data2 >> 8) & 0xFF + self.num_drums = (self.short_data2 >> 0) & 0xFF + + self.num_sfx = self.short_data3 + + def __str__(self): + out = "{\n" + out += f" .romAddr = 0x{self.rom_addr:X}\n" + out += f" .size = 0x{self.size:X}\n" + out += f" .medium = {self.medium.name}\n" + out += f" .cachePolicy = {self.cache_policy.name}\n" + out += f" .shortData1 = ({self.sample_bank_id_1} << 8) | {self.sample_bank_id_2}\n" + out += f" .shortData2 = ({self.num_instruments} << 8) | {self.num_drums}\n" + out += f" .shortData3 = {self.num_sfx}\n" + out += "}\n" + return out + + def data(self, segment_data : memoryview, segment_offset : int) -> memoryview: + return incbin(segment_data, self.rom_addr + segment_offset, self.size) + +class AudioCodeTable: + """ + typedef struct { + /* 0x00 */ s16 numEntries; + /* 0x02 */ s16 unkMediumParam; + /* 0x04 */ u32 romAddr; + /* 0x08 */ char pad[0x8]; + /* 0x10 */ AudioTableEntry entries[1/* numEntries */]; + } AudioTable; // size = 0x10 + 0x10 * numEntries + """ + + def __init__(self, rom_image : memoryview, rom_start : int): + header = incbin(rom_image, rom_start, 0x10) + + self.num_entries, self.unk_medium_param, self.rom_addr = struct.unpack(">hhI", header[:8]) + assert all([b == 0 for b in header[8:]]) + + self.data = incbin(rom_image, rom_start, 0x10 + 0x10 * self.num_entries) + + self.entries = [] + for i in range(self.num_entries): + self.entries.append(AudioCodeTableEntry(self.data[0x10 + 0x10 * i:][:0x10])) + + def __iter__(self) -> AudioCodeTableEntry: + for e in self.entries: + yield e + + def __len__(self): + return len(self.entries) + + def __str__(self): + out = "{\n" + out += f" .numEntries = {self.num_entries}\n" + out += f" .unkMediumParam = {self.unk_medium_param}\n" + out += f" .romAddr = 0x{self.rom_addr:X}\n" + out += " .entries = {\n" + for entry in self.entries: + out += str(entry) + "\n" + out += " }\n" + out += "}\n" + return out diff --git a/tools/audio/extraction/audiobank_file.py b/tools/audio/extraction/audiobank_file.py new file mode 100644 index 000000000..8c6bd58b9 --- /dev/null +++ b/tools/audio/extraction/audiobank_file.py @@ -0,0 +1,956 @@ +# SPDX-FileCopyrightText: © 2024 ZeldaRET +# SPDX-License-Identifier: CC0-1.0 +# +# Implements audiobank file +# + +import struct +from typing import Optional, Tuple +from xml.etree.ElementTree import Element + +from .audio_tables import AudioCodeTableEntry +from .audiobank_structs import AdpcmBook, AdpcmLoop, Drum, Instrument, SoundFontSample, SoundFontSound +from .envelope import Envelope +from .audiotable import AudioTableFile, AudioTableSample +from .tuning import pitch_names +from .util import XMLWriter, align, debugm, merge_like_ranges, merge_ranges + +# Debug settings +PLOT_DRUM_TUNING = False +LOG_COVERAGE = False + +def coverage_log(str): + if LOG_COVERAGE: debugm(str) + +if PLOT_DRUM_TUNING: + import matplotlib.pyplot as plt + + + +# dummy types for coverage labeling + +class Padding: + pass + +class SfxListPtr: + SIZE = 4 + +class DrumsListPtr: + SIZE = 4 + +class InstrumentPtr: + SIZE = 4 + +class DrumPtr: + SIZE = 4 + + + + + +class DrumGroup: + + def __init__(self): + self.drums = [] + self.start = None + self.end = None + self.sample_header_offset = None + self.sample = None + + # Filled in at finalize + self.envelope_offset = None + self.envelope = None + self.release_rate = None + self.pan = None + self.sample_header_offset = None + self.sample_rate = None + self.base_note = None + self.needs_rate_override = None + self.needs_note_override = None + + def __len__(self): + return len(self.drums) + + def __iter__(self): + for drum in self.drums: + yield drum + + def append(self, drum): + self.drums.append(drum) + + def set_range(self, start, end): + self.start, self.end = start, end + + def finalize(self, envelopes, sample_lookup_fn): + # A drum group should use the same envelope for all entries + env_offsets = set(drum.envelope for drum in self.drums) + assert len(env_offsets) == 1 + self.envelope_offset = env_offsets.pop() + self.envelope : Envelope = envelopes[self.envelope_offset] + + # A drum group should use the same release rate + release_rates = set(drum.release_rate for drum in self.drums) + assert len(release_rates) == 1 + self.release_rate = release_rates.pop() + + # The release rate used should belong to the envelope used + assert self.release_rate in self.envelope.release_rates + + # A drum group should always contain a single pan value + pans = set(drum.pan for drum in self.drums) + assert len(pans) == 1 + self.pan = pans.pop() + + # A drum group should be the same sample repeated + sample_header_offsets = set(drum.sample for drum in self.drums) + assert len(sample_header_offsets) == 1 + sample_header_offset = sample_header_offsets.pop() + + # Fetch sample header + self.sample_header_offset = sample_header_offset + sample = sample_lookup_fn(sample_header_offset) + sample : AudioTableSample + + # Collect final samplerate and basenotes for each drum in the group + final_rate = None + notes = [] + for drum in self: + drum : Drum + + tuning = drum.tuning + assert tuning in sample.tuning_map + # Get from sample + rate, note = sample.tuning_map[tuning] + + if final_rate is None: + final_rate = rate + # This should never occur as drum groups are split when the samplerate changes + assert final_rate == rate + + notes.append(note) + + # Note values should increase monotonically in a drum group + note_indices = [pitch_names.index(note) + 21 for note in notes] + assert all(v == note_indices[0] + i for i,v in enumerate(note_indices)) + + # Assign final rate and note. + # Use first note in the group as the basenote for the whole group, the rest will be filled in during build. + self.sample_rate = final_rate + self.base_note = notes[0] + + assert sample.sample_rate is not None + assert sample.base_note is not None + + # Needs override if they do not agree with the final values in the sample + self.needs_rate_override = sample.sample_rate != self.sample_rate + self.needs_note_override = sample.base_note != self.base_note + + def to_xml(self, xml : XMLWriter, name : str, sample_name_func, envelope_name_func): + attributes = { + "Name" : name, + "Envelope" : envelope_name_func(self.envelope_offset), + } + + if self.release_rate != self.envelope.release_rate(): + attributes["Release"] = self.release_rate + + attributes["Pan"] = self.pan + + if self.start == self.end: + attributes["Note"] = pitch_names[self.start] + else: + attributes["NoteStart"] = pitch_names[self.start] + attributes["NoteEnd"] = pitch_names[self.end] + + attributes["Sample"] = sample_name_func(self.sample_header_offset) + + if self.needs_rate_override: + attributes["SampleRate"] = self.sample_rate + if self.needs_note_override: + attributes["BaseNote"] = self.base_note + + xml.write_element("Drum", attributes) + + + + + + + +class AudiobankFile: + """ + """ + + def __init__(self, audiobank_seg : memoryview, index : int, table_entry : AudioCodeTableEntry, + seg_offset : int, bank1 : AudioTableFile, bank2 : AudioTableFile, bank1_num : int, bank2_num : int, + extraction_xml : Tuple[str, Element] = None): + self.bank_num = index + self.table_entry : AudioCodeTableEntry = table_entry + self.num_instruments = self.table_entry.num_instruments + self.data = self.table_entry.data(audiobank_seg, seg_offset) + self.bank1 : AudioTableFile = bank1 + self.bank2 : AudioTableFile = bank2 + self.bank1_num = bank1_num + self.bank2_num = bank2_num + + if extraction_xml is None: + self.file_name = f"Soundfont_{self.bank_num}" + self.name = f"Soundfont_{self.bank_num}" + + self.extraction_envelopes_info = None + self.extraction_instruments_info = None + self.extraction_drums_info = None + self.extraction_effects_info = None + else: + self.file_name = extraction_xml[0] + self.name = extraction_xml[1].attrib["Name"] + + self.extraction_envelopes_info = [] + self.extraction_instruments_info = {} + self.extraction_drums_info = [] + self.extraction_effects_info = [] + + for item in extraction_xml[1]: + if item.tag == "Envelopes": + for env in item: + assert env.tag == "Envelope" + self.extraction_envelopes_info.append(env.attrib["Name"]) + elif item.tag == "Instruments": + for instr in item: + assert instr.tag == "Instrument" + self.extraction_instruments_info[int(instr.attrib["ProgramNumber"])] = instr.attrib["Name"] + elif item.tag == "Drums": + for drum in item: + self.extraction_drums_info.append(drum.attrib["Name"]) + elif item.tag == "Effects": + for effect in item: + self.extraction_effects_info.append(effect.attrib["Name"]) + else: + assert False, item.tag + + # Coverage consists of a list of itervals of the form [[start,type],[end,type]] + self.coverage = [] + self.envelopes = {} + self.sample_headers = {} + self.books = {} + self.loops = {} + self.loops_have_frames = False + + # Read Drums + + self.collect_drums() + self.group_drums() + + # Read Sfx + + self.collect_sfx() + + # Read Instruments + + self.collect_instruments() + + + # Check Coverage + + self.cvg_log() + self.coverage = merge_ranges(self.coverage) + + self.resolve_cvg_gaps() + self.coverage = merge_ranges(self.coverage) + + coverage_log("Final Coverage:") + coverage_log([[[interval[0][0], interval[0][1].__name__], [interval[1][0], interval[1][1].__name__]] for interval in self.coverage]) + coverage_log(f"[[{0}, {len(self.data)}]]") + assert len(self.coverage) == 1 + coverage_log("OK") + + # Check End of File + + self.check_end() + + def collect_drums(self): + # Read structures + + self.drums_ptr_list_ptr = self.read_pointer(0, DrumsListPtr) + assert self.drums_ptr_list_ptr % 16 == 0 + self.drums_ptr_list = self.read_pointer_list(self.drums_ptr_list_ptr, self.table_entry.num_drums, DrumPtr) + self.drums = self.read_list_from_offset_list(self.drums_ptr_list, Drum) + + # Process structures + + for drum in self.drums: + if drum is None: + # NULL pointer in drums pointer list + continue + + # Read envelope + self.read_envelope(drum.envelope, drum.release_rate) + + # Read sample if it exists + if drum.tuning != 0 and drum.sample != 0: + self.read_sample_header(drum.sample, drum.tuning, drum) + + def group_drums(self): + self.drum_groups = [] + + first = True + last_drum = None + for drum in self.drums: + if drum is None: + if last_drum is None and not first: + self.drum_groups[-1].append(None) + else: + self.drum_groups.append([None]) + last_drum = None + else: + drum : Drum + + if not drum.group_continuation(last_drum): + # group changed + self.drum_groups.append(DrumGroup()) + + self.drum_groups[-1].append(drum) + last_drum = drum + + first = False + + note_start = 0 + for drum_grp in self.drum_groups: + note_end = note_start + len(drum_grp) - 1 + + if any(d is not None for d in drum_grp): + drum_grp : DrumGroup + drum_grp.set_range(note_start, note_end) + + note_start = note_end + 1 + + def collect_sfx(self): + # Read structures + + self.sfx_list_ptr = self.read_pointer(4, SfxListPtr) + assert self.sfx_list_ptr % 16 == 0 + self.sfx = self.read_list(self.sfx_list_ptr, self.table_entry.num_sfx, SoundFontSound) + + # Process structures + + for sfx in self.sfx: + # Read sample if it exists + if sfx.tuning != 0 and sfx.sample != 0: + self.read_sample_header(sfx.sample, sfx.tuning, sfx) + + def collect_instruments(self): + # Read structures + self.instrument_offset_list = self.read_pointer_list(8, self.table_entry.num_instruments, InstrumentPtr) + self.instruments = self.read_list_from_offset_list(self.instrument_offset_list, Instrument) + + # Record order information + for i,instr in enumerate(self.instruments): + if instr is None: + # NULL entry in pointer list + continue + instr.program_number = i + instr.offset = self.instrument_offset_list[i] + + # Get rid of NULL entries, these correspond to program numbers with no assigned instrument. + self.instruments = [instr for instr in self.instruments if instr is not None] + + # Build index map for sequence checking + self.instrument_index_map = { instr.program_number : instr for instr in self.instruments } + + # The struct index records the order of the instrument structures themselves. This is often different than the + # order they appear in the pointer table, since the pointer table is indexed by program number. We want to emit + # xml entries in struct order with a property stating their program number as this seems most user-friendly. + for i,instr in enumerate(sorted(self.instruments, key=lambda instr : instr.offset)): + instr : Instrument + instr.struct_index = i + + # Read data that this structure references + + for i,instr in enumerate(self.instruments): + # Read the envelope + self.read_envelope(instr.envelope, instr.release_rate) + + # Read the samples, if they exist + if instr.low_notes_tuning != 0 and instr.low_notes_sample != 0: + self.read_sample_header(instr.low_notes_sample, instr.low_notes_tuning, instr) + + if instr.normal_notes_tuning != 0 and instr.normal_notes_sample != 0: + self.read_sample_header(instr.normal_notes_sample, instr.normal_notes_tuning, instr) + + if instr.high_notes_tuning != 0 and instr.high_notes_sample != 0: + self.read_sample_header(instr.high_notes_sample, instr.high_notes_tuning, instr) + + def cvg_log(self): + if not LOG_COVERAGE: + return + + types_ranges = merge_like_ranges(self.coverage) + + for type_range in types_ranges: + interval_start, interval_start_type = type_range[0] + interval_end, _ = type_range[1] + + if interval_start == interval_end: + continue + + interval_length = interval_end - interval_start + + if interval_start_type == int: + sizeof_type = 4 + elif interval_start_type == Padding: + sizeof_type = interval_end - interval_start + elif interval_start_type == AdpcmBook: + sizeof_type = self.read_book_size(interval_start) + elif interval_start_type == AdpcmLoop: + sizeof_type = self.read_loop_size(interval_start) + elif interval_start_type == Envelope.EnvelopePoint: + sizeof_type = 4 + else: + sizeof_type = interval_start_type.SIZE + + array_size = interval_length // sizeof_type + + output_str = f"0x{interval_start:04X} - 0x{interval_end:04X} : {interval_start_type.__name__}" + if array_size != 1 or interval_start_type == Envelope.EnvelopePoint: + output_str += f"[{array_size}]" + + coverage_log(output_str) + + def resolve_cvg_gaps(self): + if len(self.coverage) < 2: + # There are already no gaps, nothing to do + return + + # Resolve gaps in coverage with heuristics + + for i in range(len(self.coverage) - 1): + prev_interval = self.coverage[i] + next_interval = self.coverage[i + 1] + + unref_start_offset, unref_start_type = prev_interval[1] + unref_end_offset, unref_end_type = next_interval[0] + + unaccounted_data = self.data[unref_start_offset:unref_end_offset] + + if unref_end_type in [AdpcmBook, AdpcmLoop] and all(b == 0 for b in unaccounted_data) and \ + unref_end_offset - unref_start_offset < 16 and (unref_end_offset % 16) == 0: + # Book and Loop structures are aligned to 16 byte boundaries, silently mark padding + self.coverage.append([[unref_start_offset, Padding], [unref_end_offset, Padding]]) + continue + + coverage_log(f"Unaccounted: 0x{unref_start_offset:X}({unref_start_type.__name__}) " + \ + f"to 0x{unref_end_offset:X}({unref_end_type.__name__})") + coverage_log([f"0x{b:02X}" for b in unaccounted_data]) + + try: + if unref_start_type == Envelope.EnvelopePoint: + # Assume it is an envelope if it follows an envelope + assert unref_start_offset not in self.envelopes + coverage_log("Unaccounted follows an envelope, assume it is an envelope") + st = self.read_envelope(unref_start_offset, None, is_zero=all(b == 0 for b in unaccounted_data)) + + elif unref_start_type in [SoundFontSample, AdpcmLoop]: + # Orphaned loops are unlikely, it's more likely a SoundFontSample + coverage_log("Unaccounted follows a SoundFontSample or AdpcmLoop, assuming SoundFontSample") + st = self.read_sample_header(unref_start_offset, None, None) + + elif unref_start_type == Instrument: + coverage_log("Unaccounted follows an Instrument, assume it is an Instrument") + st : Instrument = self.read_structure(unref_start_offset, unref_start_type) + # Check that we already saw the sample header this instrument wants + assert st.normal_notes_sample in self.sample_headers + assert st.normal_range_hi == 127 or st.high_notes_sample in self.sample_headers + assert st.normal_range_lo == 0 or st.low_notes_sample in self.sample_headers + # Insert into instrument list in the appropriate location, mark it as unused so that sfc knows not + # to add it to the instrument pointer list when recompiling + st.offset = unref_start_offset + st.unused = True + + # Assign struct index for this unreferenced instrument + new_index = -1 + for instr in sorted(self.instruments, key= lambda instr : instr.struct_index): + instr : Instrument + + if instr.offset > unref_start_offset: + if new_index == -1: + # Record struct index for the unused instrument + new_index = instr.struct_index + # Increment struct indices for every structure that occurs after this one + instr.struct_index += 1 + else: + # Give it a new index at the end + if new_index == -1: + new_index = len(self.instruments) + + st.struct_index = new_index + self.instruments.append(st) + else: + st = self.read_structure(unref_start_offset, unref_start_type) + coverage_log(st) + assert False, "Unhandled coverage case" # handle more structures if they appear + + coverage_log(st) + except Exception as e: + coverage_log("FAILED") + if all(b == 0 for b in unaccounted_data): + coverage_log("Probably padding or an empty file?") + raise e + + def check_end(self): + self.pad_to_size = None + + end = self.coverage[-1][1][0] + end_aligned = align(end, 16) + if end_aligned != len(self.data): + print(f"[Soundfont {self.bank_num:2}] Did not reach end of the file?", + f"0x{end_aligned:X} vs 0x{len(self.data):X}") + assert all(b == 0 for b in self.data[end_aligned:]) + self.pad_to_size = len(self.data) + + self.file_padding = None + + if not all(b == 0 for b in self.data[end:]): + print(f"[Soundfont {self.bank_num:2}] Non-zero unaccounted data at the end of the file?", + f"From 0x{end:X} to 0x{len(self.data):X}") + self.file_padding = self.data[end:] + + def dump_bin(self, path): + with open(path, "wb") as outfile: + outfile.write(self.data) + + def read_loop_size(self, offset): + loop_count, = struct.unpack(">I", self.data[offset+8:offset+0xC]) + return 0x30 if loop_count != 0 else 0x10 + + def read_loop_struct(self, offset): + return AdpcmLoop(self.logged_read(offset, self.read_loop_size(offset), AdpcmLoop)) + + def read_book_size(self, offset): + order, npredictors = struct.unpack(">ii", self.data[offset:offset+8]) + return 8 + 2 * 8 * order * npredictors + + def read_sample_header(self, offset, tuning, ob): + assert offset % 16 == 0 + + if offset in self.sample_headers: + # Don't re-read a sample header structure if it was already read + sample_header = self.sample_headers[offset] + sample_header : SoundFontSample + else: + # Read the new sample header and cache it + sample_header = self.read_structure(offset, SoundFontSample) + self.sample_headers[offset] = sample_header + + # Samples must always have an associated book + assert sample_header.book != 0 + + if sample_header.book in self.books: + # Lookup the book, samples may share books if they are identical + book = self.books[sample_header.book] + else: + # Read the new book + book_size = self.read_book_size(sample_header.book) + book = AdpcmBook(self.logged_read(sample_header.book, book_size, AdpcmBook)) + + # Books are `8 + 16 * n` bytes large and should start on an 0x10 byte boundary. + # Check that we get 8 bytes of padding following the book. + book_end = sample_header.book + book_size + assert sample_header.book % 16 == 0 + assert book_end % 16 == 8 + assert all(b == 0 for b in self.logged_read(book_end, 8, Padding)) + + # Cache it + self.books[sample_header.book] = book + + # Read the loop, if there is one + if sample_header.loop == 0: + # No loop + loop = None + elif sample_header.loop in self.loops: + # Already seen, look it up + loop = self.loops[sample_header.loop] + else: + # Read new loop structure + loop = self.read_loop_struct(sample_header.loop) + + # If loops were determined to store the sample's total frame count, require that all loops with nonzero + # count all have the same behavior within the same soundfont + if self.loops_have_frames and loop.count != 0: + assert loop.num_frames != 0, loop + + # If the numFrames field is nonzero anywhere, record this + # TODO this may miss some checks, fix? + if loop.num_frames != 0: + self.loops_have_frames = True + + # Add the sample to the appropriate samplebank + bank = self.bank1 if sample_header.medium == 0 else self.bank2 + if tuning is not None: + bank.add_sample(sample_header, book, loop, tuning, ob) + else: + # If we found unreferenced sample data that was not discovered elsewhere there is no tuning value to recover + # the samplerate from. These need to be handled manually, but this is currently unsupported as this does not + # occur in zelda64 audio banks. + assert sample_header.sample_addr in bank.samples , \ + "Unreferenced sample header refers to sample that was not otherwise discovered, cannot " + \ + "automatically recover sample rate" + + return sample_header + + def read_envelope_points(self, offset, is_zero=False): + size = 0 + + if not is_zero: + points = [] + + while True: + point = Envelope.EnvelopePoint(*struct.unpack(">hh", self.data[offset + size:][:4])) + assert point.delay >= -3 # TODO this could be used to determine whether data is really an envelope + points.append(point) + size += 4 + if point.delay < 0: + break + + # pad to 0x10 byte boundary + while (size % 16) != 0: + point = Envelope.EnvelopePoint(*struct.unpack(">hh", self.data[offset + size:][:4])) + assert point.delay == 0 and point.arg == 0 + points.append(point) + size += 4 + else: + size = 16 + points = [Envelope.EnvelopePoint(0, 0), Envelope.EnvelopePoint(0, 0), + Envelope.EnvelopePoint(0, 0), Envelope.EnvelopePoint(0, 0)] + + return points, size + + def read_envelope(self, offset, release_rate, is_zero=False): + assert offset % 16 == 0 + + if offset in self.envelopes: + # Look it up if it was already seen + env = self.envelopes[offset] + else: + # Read new + points, size = self.read_envelope_points(offset, is_zero) + env = Envelope(points, is_zero=is_zero) + + # Cache it + self.envelopes[offset] = env + # Mark coverage + self.coverage.append([[offset, Envelope.EnvelopePoint], [offset + size, Envelope.EnvelopePoint]]) + + # Add release rate if there was one + if release_rate is not None: + env.release_rates.append(release_rate) + + return env + + def logged_read(self, start, length, dtype): + """ + Read data while also recording coverage information + """ + end = start + length + self.coverage.append([[start, dtype], [end, dtype]]) + return self.data[start:end] + + def read_structure(self, offset, dtype): + return dtype(self.logged_read(offset, dtype.SIZE, dtype)) + + def read_list(self, offset, num, dtype): + return [dtype(i, self.logged_read(offset + i * dtype.SIZE, dtype.SIZE, dtype)) for i in range(num)] + + def read_pointer(self, offset, ptr_type): + return struct.unpack('>I', self.logged_read(offset, 4, ptr_type))[0] + + def read_list_from_offset_list(self, offset_list, dtype): + assert all([b % 0x10 == 0 for b in offset_list]) + return [dtype(self.logged_read(offset, dtype.SIZE, dtype)) if offset != 0 else None for offset in offset_list] + + def read_pointer_list(self, offset, count, ptr_type): + # May be NULL, but only if the count is 0 + assert (count == 0 and offset == 0) or offset != 0 + + if count == 0: + # No data + return [] + + # Read pointer list contents + ptr_list = [i[0] for i in struct.iter_unpack('>I', self.logged_read(offset, 4 * count, ptr_type))] + assert len(ptr_list) == count + + # Pointer lists seem to always pad to the next 0x10 byte boundary + pointers_end = offset + 4 * count + possible_pad = self.logged_read(pointers_end, align(pointers_end, 16) - pointers_end, Padding) + assert all(b == 0 for b in possible_pad) + + return ptr_list + + def sorted_envelopes(self): + # sort by offset + for i,(offset,env) in enumerate(sorted(self.envelopes.items(), key=lambda x : x[0])): + yield i,(offset,env) + + def envelope_name_func(self, offset): + return self.envelopes[offset].name + + def sorted_sample_headers(self): + for i,offset in enumerate(sorted(self.sample_headers)): + yield i,(offset,self.sample_headers[offset]) + + def lookup_sample(self, header_offset : int) -> Optional[AudioTableSample]: + if header_offset == 0: + return None + header : SoundFontSample = self.sample_headers[header_offset] + bank = self.bank1 if header.medium == 0 else self.bank2 + return bank.lookup_sample(header.sample_addr) + + def lookup_sample_name(self, sample_header : SoundFontSample): + bank = self.bank1 if sample_header.medium == 0 else self.bank2 + name = bank.lookup_sample(sample_header.sample_addr).name + assert name is not None + return name + + def sample_name_func(self, offset): + return self.lookup_sample_name(self.sample_headers[offset]) + + def finalize(self): + # Assign envelope names + for i,(offset,env) in self.sorted_envelopes(): + env : Envelope + env.name = self.envelope_name(i) + + # Link Instruments + for instr in self.instruments: + instr.finalize(self.lookup_sample) + + # Final Drum Groups + + if PLOT_DRUM_TUNING: + plt.clf() + plt.cla() + plt.title(f"Drums in soundfont {self.bank_num}") + plt.xlabel("Drum index") + plt.ylabel("Tuning value") + + for drum_grp in self.drum_groups: + if all(d is None for d in drum_grp): + continue + + if PLOT_DRUM_TUNING: + plt.plot( range(drum_grp.start,drum_grp.end), [drum.tuning for drum in drum_grp]) + plt.scatter(range(drum_grp.start,drum_grp.end), [drum.tuning for drum in drum_grp]) + + drum_grp : DrumGroup + drum_grp.finalize(self.envelopes, self.lookup_sample) + + if PLOT_DRUM_TUNING: + if len(self.drum_groups) != 0: + plt.savefig(f"figures/drums_{self.bank_num}.png") + + # Link SFX + for sfx in self.sfx: + sfx.finalize(self.lookup_sample) + + # TODO resolve decay/release index overrides? + + def envelope_name(self, index): + if self.extraction_envelopes_info is not None: + return self.extraction_envelopes_info[index] + else: + return f"Env{index}" + + def instrument_name(self, program_number): + if self.extraction_instruments_info is not None: + return self.extraction_instruments_info[program_number] + else: + return f"INST_{program_number}" + + def drum_grp_name(self, index): + if self.extraction_drums_info is not None: + return self.extraction_drums_info[index] + else: + return f"DRUM_{index}" + + def effect_name(self, index): + if self.extraction_effects_info is not None: + return self.extraction_effects_info[index] + else: + return f"EFFECT_{index}" + + def envelopes_to_xml(self, xml : XMLWriter): + if len(self.envelopes) == 0: + return + + xml.write_start_tag("Envelopes") + + for i,(offset,env) in self.sorted_envelopes(): + env : Envelope + env.to_xml(xml, self.envelope_name(i)) + + xml.write_end_tag() + + def samples_to_xml(self, xml : XMLWriter): + if len(self.sample_headers) == 0: + return + + xml.write_start_tag("Samples") + + # Emit these in the order the sample headers appear in the soundfont + for i,(offset,sample_header) in self.sorted_sample_headers(): + sample_header : SoundFontSample + sample_header.to_xml(xml, self.lookup_sample_name(sample_header)) + + xml.write_end_tag() + + def sfx_to_xml(self, xml : XMLWriter): + if len(self.sfx) == 0: + return + + xml.write_start_tag("Effects") + + for i,sfx in enumerate(self.sfx): + sfx.to_xml(xml, self.effect_name(i), self.sample_name_func) + + xml.write_end_tag() + + def drums_to_xml(self, xml : XMLWriter): + if len(self.drums) == 0: + return + + xml.write_start_tag("Drums") + + for i,drum_grp in enumerate(self.drum_groups): + if isinstance(drum_grp, list): + for _ in range(len(drum_grp)): + xml.write_element("Drum") + else: + drum_grp : DrumGroup + drum_grp.to_xml(xml, self.drum_grp_name(i), self.sample_name_func, self.envelope_name_func) + + xml.write_end_tag() + + def instruments_to_xml(self, xml : XMLWriter): + if len(self.instruments) == 0: + return + + xml.write_start_tag("Instruments") + + # Write in struct order + for instr in sorted(self.instruments, key=lambda instr : instr.struct_index): + instr : Instrument + name = self.instrument_name(instr.program_number) if not instr.unused else None + instr.to_xml(xml, name, self.sample_name_func, self.envelope_name_func) + + xml.write_end_tag() + + def to_xml(self, name, samplebanks_base): + xml = XMLWriter() + + start = { + "Name" : name, + "Index" : self.bank_num, + "Medium" : self.table_entry.medium.name, + "CachePolicy" : self.table_entry.cache_policy.name, + "SampleBank" : f"$(BUILD_DIR)/{samplebanks_base}/{self.bank1.file_name}.xml", + } + + # If the samplebank1 index is not the true index (that is it's a pointer), write an Indirect + if self.bank1_num != self.bank1.bank_num: + start["Indirect"] = self.bank1_num + + if self.bank2_num != 255: # bank2 is not None if bank2_num != 255 + start["SampleBankDD"] = f"$(BUILD_DIR)/{samplebanks_base}/{self.bank2.file_name}.xml", + # TODO we should really write an indirect for DD banks too if bank2_num != bank2.bank_num + + if self.loops_have_frames: + # Some MM banks have sample frame counts embedded in loop headers, but not all soundfonts do this + start["LoopsHaveFrames"] = "true" + + if max(instr.program_number or 0 for instr in self.instruments) + 1 != self.table_entry.num_instruments: + # Some banks have trailing NULLs in their instrument pointer tables, record the max length for matching + start["NumInstruments"] = self.table_entry.num_instruments + + if self.pad_to_size is not None: + # The final soundfont typically has extra zeros at the end + start["PadToSize"] = f"0x{self.pad_to_size:X}" + + xml.write_start_tag("Soundfont", start) + + self.envelopes_to_xml(xml) + self.samples_to_xml(xml) + + self.sfx_to_xml(xml) + self.drums_to_xml(xml) + self.instruments_to_xml(xml) + + if self.file_padding is not None: + # Some soundfonts may have garbage data in the final 16-byte file padding + xml.write_start_tag("MatchPadding") + xml.write_raw(", ".join(f"0x{b:02X}" for b in self.file_padding)) + xml.write_end_tag() + + xml.write_end_tag() + return str(xml) + + def write_extraction_xml(self, path): + xml = XMLWriter() + + xml.write_comment("This file is only for extraction of vanilla data. For other purposes see assets/audio/soundfonts/") + + xml.write_start_tag("SoundFont", { + "Name" : self.name, + "Index" : self.bank_num, + }) + + # add contents for names + + if len(self.envelopes) != 0: + xml.write_start_tag("Envelopes") + + for i in range(len(self.envelopes)): + xml.write_element("Envelope", { + "Name" : self.envelope_name(i) + }) + + xml.write_end_tag() + + if len(self.instruments) != 0: + xml.write_start_tag("Instruments") + + # Write in struct order + for instr in sorted(self.instruments, key=lambda instr : instr.struct_index): + instr : Instrument + if not instr.unused: + xml.write_element("Instrument", { + "ProgramNumber" : instr.program_number, + "Name" : self.instrument_name(instr.program_number), + }) + + xml.write_end_tag() + + if any(isinstance(dg, DrumGroup) for dg in self.drum_groups): + xml.write_start_tag("Drums") + + for i,drum_grp in enumerate(self.drum_groups): + if isinstance(drum_grp, DrumGroup): + xml.write_element("Drum", { + "Name" : self.drum_grp_name(i) + }) + + xml.write_end_tag() + + if len(self.sfx) != 0: + xml.write_start_tag("Effects") + + for i,sfx in enumerate(self.sfx): + xml.write_element("Effect", { + "Name" : self.effect_name(i) + }) + + xml.write_end_tag() + + xml.write_end_tag() + + with open(path, "w") as outfile: + outfile.write(str(xml)) diff --git a/tools/audio/extraction/audiobank_structs.py b/tools/audio/extraction/audiobank_structs.py new file mode 100644 index 000000000..fa6afa37d --- /dev/null +++ b/tools/audio/extraction/audiobank_structs.py @@ -0,0 +1,406 @@ +# SPDX-FileCopyrightText: © 2024 ZeldaRET +# SPDX-License-Identifier: CC0-1.0 +# +# This file implements reading various structures resident to the Audiobank files. +# Additionally handles: +# - Linking with finalized samples +# - Writing xml elements representing these structures in soundfont xmls +# + +import struct +from enum import IntEnum + +from .audio_tables import AudioStorageMedium +from .tuning import rate_from_tuning, pitch_names +from .util import XMLWriter + +VADPCM_VERSTAMP = 1 + +class AudioSampleCodec(IntEnum): + CODEC_ADPCM = 0 + CODEC_S8 = 1 + CODEC_S16_INMEMORY = 2 + CODEC_SMALL_ADPCM = 3 + CODEC_REVERB = 4 + CODEC_S16 = 5 + + + +class SoundFontSample: # SampleHeader ? + """ + typedef struct { + /* 0x00 */ u32 codec : 4; + /* 0x00 */ u32 medium : 2; // storage medium determines which of the two sample bank ids to use when relocating sampleAddr + /* 0x00 */ u32 cached : 1; + /* 0x00 */ u32 isRelocated : 1; + /* 0x01 */ u32 size : 24; + /* 0x04 */ u8* sampleAddr; // offset into the sample bank associated with this soundfont + /* 0x08 */ AdpcmLoop* loop; + /* 0x0C */ AdpcmBook* book; + } SoundFontSample; // size = 0x10 + """ + SIZE = 0x10 + + def __init__(self, data): + bits, self.sample_addr, self.loop, self.book = struct.unpack(">IIII", data[:0x10]) + + self.codec = AudioSampleCodec((bits >> 28) & 0b1111) + self.medium = AudioStorageMedium((bits >> 26) & 0b11) + self.cached = bool((bits >> 25) & 1) + self.is_relocated = bool((bits >> 24) & 1) + self.size = (bits >> 0) & 0b111111111111111111111111 + + assert self.book != 0 + assert self.loop != 0 + assert self.codec in [AudioSampleCodec.CODEC_ADPCM, AudioSampleCodec.CODEC_SMALL_ADPCM] + assert self.medium == 0 + assert not self.is_relocated # Not relocated in ROM + + def to_xml(self, xml : XMLWriter, name : str, rate_override = None, note_override = None): + # Example xml output: + # + + attrs = { "Name" : name } + if rate_override is not None: + attrs["SampleRate"] = rate_override + if note_override is not None: + attrs["BaseNote"] = note_override + if self.medium != 0: + attrs["IsDD"] = "true" + if self.cached: + attrs["Cached"] = str(self.cached).lower() + + xml.write_element("Sample", attrs) + + def __str__(self): + out = "(SoundFontSample){\n" + out += f" .codec = {self.codec.name}\n" + out += f" .medium = {self.medium.name}\n" + out += f" .cached = {self.cached}\n" + out += f" .is_relocated = {self.is_relocated}\n" + out += f" .size = 0x{self.size:X}\n" + out += f" .sampleAddr = 0x{self.sample_addr:X}\n" + out += f" .loop = 0x{self.loop:X}\n" + out += f" .book = 0x{self.book:X}\n" + out += "}\n" + return out + + + +class AdpcmLoop: + """ + typedef struct { + /* 0x00 */ u32 start; + /* 0x04 */ u32 end; + /* 0x08 */ u32 count; + /* 0x0C */ u32 numFrames; + /* 0x10 */ s16 state[16]; // only exists if count != 0. 8-byte aligned + } AdpcmLoop; // size = 0x30 (or 0x10) + """ + + def __init__(self, data): + self.start, self.end, self.count, self.num_frames = struct.unpack(">IIII", data[:0x10]) + + # We expect loops to be either "no loop" or "infinite", as these are all that vadpcm_enc could handle. + assert self.count in (0,0xFFFFFFFF) + + if self.count != 0: + self.state = tuple(s[0] for s in struct.iter_unpack(">h", data[0x10:0x30])) + else: + # A count of 0 indicates "no loop", but a loop structure is mandatory for all samples so something had to + # be emitted. Ensure the start is at 0, later we will ensure that the end is at the last frame of the sample + # once we have the sample data. + assert self.start == 0 + self.state = tuple([0] * 16) + assert len(self.state) == 16 + + def serialize(self): + """ + Creates VADPCMLOOPS section data for aifc files + """ + NUM_LOOPS = 1 + + return struct.pack(">HHIII16h", + VADPCM_VERSTAMP, NUM_LOOPS, + self.start, self.end, self.count, + *self.state) + + def __eq__(self, other): + if not isinstance(other, AdpcmLoop): + return False + other : AdpcmLoop + + start_matches = self.start == other.start + end_matches = self.end == other.end + count_matches = self.count == other.count + # We don't check num_frames in loop equality since loops in different soundfonts referring to the same + # sample data may not have this field filled out + return start_matches and end_matches and count_matches and self.state == other.state + + def __str__(self): + out = "(AdpcmLoop){\n" + out += f" .start = {self.start},\n" + out += f" .end = {self.end},\n" + out += f" .count = {self.count},\n" + out += f" .numFrames = {self.num_frames},\n" + out += f" .state = {self.state},\n" + out += "}\n" + return out + +class AdpcmBook: + """ + typedef struct { + /* 0x00 */ s32 order; + /* 0x04 */ s32 npredictors; + /* 0x08 */ s16 book[1]; // size 8 * order * npredictors. 8-byte aligned + } AdpcmBook; // size >= 0x8 + """ + + def __init__(self, data): + self.order, self.n_predictors = struct.unpack(">ii", data[:8]) + self.book = tuple(s[0] for s in struct.iter_unpack(">h", data[8:][:2 * 8 * self.order * self.n_predictors])) + assert len(self.book) == 8 * self.order * self.n_predictors , (len(self.book), 8 * self.order * self.n_predictors) + + def serialize(self): + header = struct.pack(">hhh", VADPCM_VERSTAMP, self.order, self.n_predictors) + data = b"".join(struct.pack(">h", x) for x in self.book) + return header + data + + def __eq__(self, other): + if not isinstance(other, AdpcmBook): + return False + other : AdpcmBook + + order_matches = self.order == other.order + npredictors_matches = self.n_predictors == other.n_predictors + return order_matches and npredictors_matches and self.book == other.book + + def __str__(self): + out = "(AdpcmBook){\n" + out += f" .order = {self.order},\n" + out += f" .npredictors = {self.n_predictors},\n" + out += f" .book = {self.book},\n" + out += "}\n" + return out + + + +class SoundFontSound: + """ + typedef struct { + /* 0x00 */ SoundFontSample* sample; + /* 0x04 */ f32 tuning; // frequency scale factor + } SoundFontSound; // size = 0x8 + """ + SIZE = 8 + + def __init__(self, index, data): + self.index = index + self.sample, self.tuning = struct.unpack(">If", data[:8]) + + def finalize(self, sample_lookup_fn): + from .audiotable import AudioTableSample + + sample = sample_lookup_fn(self.sample) + if sample is None: + return + + assert isinstance(sample, AudioTableSample) + sample : AudioTableSample + + assert self.tuning in sample.tuning_map + rate,note = sample.tuning_map[self.tuning] + + self.sample_rate = rate + self.needs_rate_override = self.sample_rate != sample.sample_rate + + self.base_note = note + self.needs_note_override = self.base_note != sample.base_note + + def __str__(self) -> str: + out = "(SoundFontSound}{\n" + out += f" .sample = 0x{self.sample:X}\n" + out += f" .tuning = {self.tuning:.7f}f\n" + out += "}\n" + return out + + def to_xml(self, xml : XMLWriter, name : str, sample_name_func): + if self.sample == 0 and self.tuning == 0: + xml.write_element("Effect") + else: + attrs = { + "Name" : name, + "Sample" : sample_name_func(self.sample), + } + if self.needs_rate_override: + attrs["SampleRate"] = self.sample_rate + if self.needs_note_override: + attrs["BaseNote"] = self.base_note + + xml.write_element("Effect", attrs) + + + +class Drum: + """ + typedef struct { + /* 0x00 */ u8 releaseRate; + /* 0x01 */ u8 pan; + /* 0x02 */ u8 isRelocated; + /* 0x04 */ SoundFontSound sound; + /* 0x0C */ AdsrEnvelope* envelope; + } Drum; // size = 0x10 + """ + SIZE = 0x10 + + def __init__(self, data): + self.release_rate, self.pan, self.is_relocated, self.sample, self.tuning, self.envelope = \ + struct.unpack(">BBBxIfI", data[:0x10]) + + assert self.is_relocated == 0 + + def group_continuation(self, other): + """ + Determine if self is a continuation of the drum group containing other, the last drum added. + """ + # If there is no previous drum or the previous drum was an empty entry, always begin a new group + if other is None: + return False + + assert isinstance(other, Drum) + + # Check general agreement, if these attributes do not match it is certainly not part of the same group + if self.sample == other.sample and self.pan == other.pan and self.envelope == other.envelope and \ + self.release_rate == other.release_rate: + # If there is any intersection in the samplerates, assume these are in the same drum group + samplerates1 = set(rate for _,rate in rate_from_tuning(self.tuning)) + samplerates2 = set(rate for _,rate in rate_from_tuning(other.tuning)) + return len(samplerates1.intersection(samplerates2)) != 0 + + return False + + def __str__(self): + out = "(Drum){\n" + out += f" .releaseRate = {self.release_rate},\n" + out += f" .pan = {self.pan},\n" + out += f" .isRelocated = {self.is_relocated},\n" + out += f" .sound.sample = 0x{self.sample:X},\n" + out += f" .sound.tuning = {self.tuning:.7f}f,\n" + out += f" .envelope = 0x{self.envelope:X},\n" + out += "}\n" + return out + + + +class Instrument: + """ + typedef struct { + /* 0x00 */ u8 isRelocated; + /* 0x01 */ u8 normalRangeLo; + /* 0x02 */ u8 normalRangeHi; + /* 0x03 */ u8 releaseRate; + /* 0x04 */ AdsrEnvelope* envelope; + /* 0x08 */ SoundFontSound lowNotesSound; + /* 0x10 */ SoundFontSound normalNotesSound; + /* 0x18 */ SoundFontSound highNotesSound; + } Instrument; // size = 0x20 + """ + SIZE = 0x20 + + def __init__(self, data): + self.is_relocated, self.normal_range_lo, self.normal_range_hi, self.release_rate, self.envelope, \ + self.low_notes_sample, self.low_notes_tuning, \ + self.normal_notes_sample, self.normal_notes_tuning, \ + self.high_notes_sample, self.high_notes_tuning = struct.unpack(">BBBBIIfIfIf", data[:0x20]) + + self.program_number = None + self.offset = None + self.struct_index = None + self.unused = False + + assert self.is_relocated == 0 + + # Sample is either present or the split point is at the start/end + assert not (self.low_notes_sample == 0 and self.low_notes_tuning == 0.0) or self.normal_range_lo == 0 + assert not (self.high_notes_sample == 0 and self.high_notes_tuning == 0.0) or self.normal_range_hi == 127 + + def __str__(self): + out = "(Instrument){\n" + out += f" .isRelocated = {self.is_relocated},\n" + out += f" .normalRangeLo = {self.normal_range_lo},\n" + out += f" .normalRangeHi = {self.normal_range_hi},\n" + out += f" .releaseRate = {self.release_rate},\n" + out += f" .envelope = 0x{self.envelope:X},\n" + out += f" .lowNotesSound.sample = {self.low_notes_sample},\n" + out += f" .lowNotesSound.tuning = {self.low_notes_tuning},\n" + out += f" .normalNotesSound.sample = {self.normal_notes_sample},\n" + out += f" .normalNotesSound.tuning = {self.normal_notes_tuning},\n" + out += f" .highNotesSound.sample = {self.high_notes_sample},\n" + out += f" .highNotesSound.tuning = {self.high_notes_tuning},\n" + out += "}\n" + return out + + def finalize(self, sample_lookup_fn): + from .audiotable import AudioTableSample + + self.sample_rate = [None] * 3 + self.base_note = [None] * 3 + self.needs_rate_override = [False] * 3 + self.needs_note_override = [False] * 3 + + sample_offsets = (self.low_notes_sample, self.normal_notes_sample, self.high_notes_sample) + tunings = (self.low_notes_tuning, self.normal_notes_tuning, self.high_notes_tuning) + for i,(sample_offset,tuning) in enumerate(zip(sample_offsets, tunings)): + sample = sample_lookup_fn(sample_offset) + if sample is None: + continue + assert isinstance(sample, AudioTableSample) + sample : AudioTableSample + + assert tuning in sample.tuning_map + rate,note = sample.tuning_map[tuning] + + self.sample_rate[i] = rate + self.needs_rate_override[i] = self.sample_rate[i] != sample.sample_rate + + self.base_note[i] = note + self.needs_note_override[i] = self.base_note[i] != sample.base_note + + def to_xml(self, xml : XMLWriter, name : str, sample_names_func, envelope_name_func): + attributes = {} + + if not self.unused: + attributes["ProgramNumber"] = self.program_number + attributes["Name"] = name + + # TODO release rate overrides? + attributes.update({ + "Envelope" : envelope_name_func(self.envelope), + #"Release" : self.release_rate, + "Sample" : sample_names_func(self.normal_notes_sample), + }) + + if self.needs_rate_override[1]: + attributes["SampleRate"] = self.sample_rate[1] + if self.needs_note_override[1]: + attributes["BaseNote"] = self.base_note[1] + + if self.normal_range_lo != 0: + attributes["RangeLo"] = pitch_names[self.normal_range_lo] + attributes["SampleLo"] = sample_names_func(self.low_notes_sample) + + if self.needs_rate_override[0]: + attributes["SampleRateLo"] = self.sample_rate[0] + if self.needs_note_override[0]: + attributes["BaseNoteLo"] = self.base_note[0] + + if self.normal_range_hi != 127: + attributes["RangeHi"] = pitch_names[self.normal_range_hi] + attributes["SampleHi"] = sample_names_func(self.high_notes_sample) + + if self.needs_rate_override[2]: + attributes["SampleRateHi"] = self.sample_rate[2] + if self.needs_note_override[2]: + attributes["BaseNoteHi"] = self.base_note[2] + + xml.write_element("Instrument" if not self.unused else "InstrumentUnused", attributes) diff --git a/tools/audio/extraction/audiotable.py b/tools/audio/extraction/audiotable.py new file mode 100644 index 000000000..e02a6f285 --- /dev/null +++ b/tools/audio/extraction/audiotable.py @@ -0,0 +1,690 @@ +# SPDX-FileCopyrightText: © 2024 ZeldaRET +# SPDX-License-Identifier: CC0-1.0 +# +# +# + +import struct +from typing import Dict, Tuple +from xml.etree.ElementTree import Element + +from .audio_tables import AudioCodeTableEntry +from .audiobank_structs import AudioSampleCodec, SoundFontSample, AdpcmBook, AdpcmLoop +from .tuning import pitch_names, note_z64_to_midi, recalc_tuning, rate_from_tuning, rank_rates_notes, BAD_FLOATS +from .util import align, error, XMLWriter, f32_to_u32 + +class AIFCFile: + + def __init__(self): + self.sections = [] + self.total_size = 0 + + @staticmethod + def pstring(data): + return bytes([len(data)]) + data + (b"" if len(data) % 2 else b"\0") + + @staticmethod + def serialize_f80(num): + """ + Convert num to 80-bit float. Does not accept denormal/infinity/nan but these should never appear anyway. + """ + num = float(num) + if num == 0.0: + return b"\0" * 10 + elif num == -0.0: + return b"\x80" + b"\0" * 9 + + f64_bits, = struct.unpack(">Q", struct.pack(">d", num)) + + f64_sign_bit = f64_bits & (2 ** 63) + + f64_exponent = (f64_bits ^ f64_sign_bit) >> 52 + assert f64_exponent != 0, "can't handle denormals" + assert f64_exponent != 0x7FF, "can't handle infinity/nan" + f64_exponent -= 1023 + + f64_mantissa = f64_bits & (2 ** 52 - 1) + + f80_sign_bit = f64_sign_bit << (80 - 64) + f80_exponent = (f64_exponent + 0x3FFF) << 64 + f80_mantissa = (2 ** 63) | (f64_mantissa << (63 - 52)) + + f80 = f80_sign_bit | f80_exponent | f80_mantissa + + return struct.pack(">HQ", f80 >> 64, f80 & (2 ** 64 - 1)) + + def add_section(self, tp, data): + assert isinstance(tp, bytes) + assert isinstance(data, bytes) + + self.sections.append((tp, data)) + self.total_size += align(len(data),2) + 8 + + def add_custom_section(self, tp, data): + self.add_section(b"APPL", b"stoc" + self.pstring(tp) + data) + + def remove_section(self, tp): + assert isinstance(tp, bytes) + + for s_tp, s_data in self.sections: + if s_tp == tp: + self.sections.remove((s_tp, s_data)) + self.total_size -= align(len(s_data),2) + 8 + return + + def commit(self, outpath): + self.total_size += 4 + + with open(outpath, "wb") as outfile: + outfile.write(b"FORM" + struct.pack(">I", self.total_size) + b"AIFC") + + for tp, data in self.sections: + outfile.write(tp + struct.pack(">I", len(data))) + outfile.write(data) + + if len(data) % 2: + outfile.write(b"\0") + +class AudioTableData: + """ + Unaccounted data in the Audiotable + """ + + def __init__(self, start, end, data): + self.start : int = start + self.end : int = end + self.data = data + assert len(self.data) % 2 == 0 + + self.name : str = None + self.filename : str = None + + def __len__(self): + return len(self.data) + + def to_asm(self, name): + out = f"# {name} [0x{self.start:X}:0x{self.end:X}](0x{self.end-self.start:X})\n\n" + out += " .byte " + for i,b in enumerate(self.data): + if i != 0 and i % 32 == 0: + out = out[:-2] + "\n .byte " + out += f"0x{b:02X}, " + out = out[:-2] + "\n\n" + return out + + def to_file(self, outpath : str): + # Output as binary blob + + with open(outpath, "wb") as outfile: + outfile.write(self.data) + + + +PCM16_SAMPLE_SIZE = 16 + +class AudioTableSample(AudioTableData): + """ + Sample in the Audiotable + """ + + def __init__(self, start : int, end : int, header : SoundFontSample, data, book : AdpcmBook, loop : AdpcmLoop, padding=None): + super().__init__(start, end, data) + + self.header : SoundFontSample = header + self.book : AdpcmBook = book + self.loop : AdpcmLoop = loop + self.padding = padding + + self.notes_rates = set() + self.sample_rate = None + self.base_note = None + self.tuning_map = None + + if self.loop.count == 0: + # If a count is 0 the loop end must be the (bugged, vadpcm_enc computed it wrong originally) frame count + num_frames_bugged = (len(self.data) * PCM16_SAMPLE_SIZE) // self.frame_size() + assert self.loop.end == num_frames_bugged, f"{self.loop.end}, {num_frames_bugged}" + + def clone(self, start, end, padding): + new_sample = AudioTableSample(start, end, self.header, self.data, self.book, self.loop, padding) + new_sample.notes_rates = self.notes_rates + return new_sample + + def frame_size(self): + return { + AudioSampleCodec.CODEC_ADPCM : 9, + AudioSampleCodec.CODEC_S8 : 16, + AudioSampleCodec.CODEC_S16_INMEMORY : 32, + AudioSampleCodec.CODEC_SMALL_ADPCM : 5, + AudioSampleCodec.CODEC_REVERB : 0, + AudioSampleCodec.CODEC_S16 : 32 + }[self.header.codec] + + def codec_id(self): + return { + AudioSampleCodec.CODEC_ADPCM : b'ADP9', + AudioSampleCodec.CODEC_S8 : b'HPCM', + AudioSampleCodec.CODEC_S16_INMEMORY : b'NONE', + AudioSampleCodec.CODEC_SMALL_ADPCM : b'ADP5', + AudioSampleCodec.CODEC_REVERB : b'RVRB', + AudioSampleCodec.CODEC_S16 : b'NONE', + }[self.header.codec] + + def codec_name(self): + return { + AudioSampleCodec.CODEC_ADPCM : b"Nintendo/SGI VADPCM 9-bytes/frame", + AudioSampleCodec.CODEC_S8 : b"Half-frame PCM", + AudioSampleCodec.CODEC_S16_INMEMORY : b"Uncompressed", + AudioSampleCodec.CODEC_SMALL_ADPCM : b"Nintendo/SGI VADPCM 5-bytes/frame", + AudioSampleCodec.CODEC_REVERB : b"Nintendo Reverb format", + AudioSampleCodec.CODEC_S16 : b"Uncompressed" + }[self.header.codec] + + def codec_file_extension_compressed(self): + ext = { + AudioSampleCodec.CODEC_ADPCM : ".aifc", + AudioSampleCodec.CODEC_S8 : None, + AudioSampleCodec.CODEC_S16_INMEMORY : None, + AudioSampleCodec.CODEC_SMALL_ADPCM : ".half.aifc", + AudioSampleCodec.CODEC_REVERB : None, + AudioSampleCodec.CODEC_S16 : ".aiff", + }[self.header.codec] + assert ext is not None + return ext + + def codec_file_extension_decompressed(self): + ext = { + AudioSampleCodec.CODEC_ADPCM : ".wav", + AudioSampleCodec.CODEC_S8 : None, + AudioSampleCodec.CODEC_S16_INMEMORY : None, + AudioSampleCodec.CODEC_SMALL_ADPCM : ".half.wav", + AudioSampleCodec.CODEC_REVERB : None, + AudioSampleCodec.CODEC_S16 : ".wav", + }[self.header.codec] + assert ext is not None + return ext + + def base_note_number(self): + return note_z64_to_midi(pitch_names.index(self.base_note)) + + def resolve_basenote_rate(self, extraction_sample_info : Dict[int, Dict[str,str]]): + assert len(self.notes_rates) != 0 + + # rate_3ds = None + # if SAMPLERATES_3DS is not None: + # rate_3ds = SAMPLERATES_3DS[self.bank_num].get(i, None) + + tuning_map = {} + def update_tuning_map(tuning, rate, note): + tuning_map.update({ tuning : (rate, note) }) + + # check + tuning_bits = f32_to_u32(tuning) + ntuning = recalc_tuning(rate, note) + assert ntuning == tuning or tuning_bits in BAD_FLOATS, \ + f"Got: {ntuning}(0x{f32_to_u32(ntuning):X}), Expected: {tuning}(0x{f32_to_u32(tuning):X})" + + if len(self.notes_rates) == 1: + # only need to match one tuning value + + notes_rates,tuning = self.notes_rates.pop() + + # if rate_3ds is not None and rate_3ds not in [rate for _,rate in notes_rates]: + # print(f"NONMATCHING: 3DS={rate_3ds} N64={[rate for _,rate in notes_rates]}") + + if len(notes_rates) == 1: + # only one possible combination of samplerate and basenote + final_note,final_rate = notes_rates[0] + else: + # Several possible combinations of samplerate and basenote that result in the same tuning value, + # choose just one by arbitrary ranking + final_rate,(final_note,) = rank_rates_notes(tuple((rate, (note,)) for note,rate in notes_rates)) + + update_tuning_map(tuning, final_rate, final_note) + else: + # need to match for multiple tuning values + + # produce a list of samplerates that are common to all entries, the correct samplerate is most likely in + # this intersection + rate_cands = set.intersection(*(set(rate for note,rate in nrs) for nrs,t in self.notes_rates)) + + # if rate_3ds is not None and rate_3ds not in rate_cands: + # print(f"NONMATCHING: 3DS={rate_3ds} N64={rate_cands}") + + if len(rate_cands) == 0: + # no common samplerates, arbitrarily rank each separately to get best candidate for each tuning, then + # rank those again to find the one we should associate with the sample itself + + finalists = [] + for all_layout,tuning in self.notes_rates: + best_rate,(best_note,) = rank_rates_notes([(rate, (note,)) for note, rate in all_layout]) + + update_tuning_map(tuning, best_rate, best_note) + + finalists.append((best_rate,(best_note,))) + + final_rate,(final_note,) = rank_rates_notes(finalists) + else: + tunings = [t for nrs,t in self.notes_rates] + # Found one or more common samplerate, select just one by arbitrary ranking + + # build a map from samplerate -> note value for each entry + dicts = tuple(dict((rate,note) for note,rate in nrs) for nrs,t in self.notes_rates) + + # list of tuples (rate, (notes for each entry)) for each candidate samplerate + final_rate,final_notes = rank_rates_notes([(rate, tuple(D[rate] for D in dicts)) for rate in rate_cands]) + + finalists = [] + + # map the result of this stage to the tunings + for tuning,note in zip(tunings,final_notes): + update_tuning_map(tuning, final_rate, note) + finalists.append((final_rate,(note,))) + + # select best note to go in the sample + final_rate,(final_note,) = rank_rates_notes(finalists) + + if extraction_sample_info is not None: + if self.start in extraction_sample_info: + entry = extraction_sample_info[self.start] + if "SampleRate" in entry and "BaseNote" in entry: + final_rate = int(entry["SampleRate"]) + final_note = entry["BaseNote"] + else: + print(f"WARNING: Missing extraction xml entry for sample at offset=0x{self.start:X}") + + # print(" ",len(FINAL_NOTES_RATES), FINAL_NOTES_RATES) + # if rate_3ds is not None and len(FINAL_NOTES_RATES) == 1: + # print(f"3DS : {rate_3ds} N64 : {FINAL_NOTES_RATES[0][0]}") + # if rate_3ds != FINAL_NOTES_RATES[0][0]: + # print("NONMATCHING AFTER RANKING") + # else: + # print("No 3DS comparison") + + self.notes_rates = None + self.sample_rate = final_rate + self.base_note = final_note + self.tuning_map = tuning_map + + def to_file(self, outpath : str): + assert self.sample_rate is not None and self.base_note is not None,\ + f"The sample must have been assigned a samplerate and basenote to be extracted to AIFC: [0x{self.start:X}:0x{self.end:X}]\n{self.header}" + + NUM_CHANNELS = 1 + + # Note this computes the correct number of frames, The original sdk tool vadpcm_enc contained a bug where aifc + # files would sometimes be 1-off in the reported number of frames. We do not reproduce this. + num_frames = (len(self.data) // self.frame_size()) * PCM16_SAMPLE_SIZE + + aifc = AIFCFile() + + aifc.add_section(b"COMM", + struct.pack(">hIh", NUM_CHANNELS, num_frames, PCM16_SAMPLE_SIZE) + + AIFCFile.serialize_f80(self.sample_rate) + + self.codec_id() + + AIFCFile.pstring(self.codec_name()) + ) + + aifc.add_section(b"INST", + struct.pack(">bbbbbbhhhhhhh", + self.base_note_number(), + 0, # detune + # TODO fill in the rest? with what? + 0, # lownote + 0, # highnote + 0, # lowvel + 0, # highvel + 0, # gain + 0,0,0, # sustain(mode,start,end) + 0,0,0, # release(mode,start,end) + ) + ) + + aifc.add_custom_section(b"VADPCMCODES", self.book.serialize()) + if self.loop.count != 0: + # We don't need to write a VADPCMLOOPS chunk if the count is 0 as we can represent these by the absence of + # a VADPCMLOOPS chunk; a count of 0 indicates the sample has no loop, the start and end of a loop with + # count=0 are always 0 and the end of the sample respectively. + aifc.add_custom_section(b"VADPCMLOOPS", self.loop.serialize()) + + aifc.add_section(b"SSND", struct.pack(">II", 0, 0) + bytes(self.data)) + + aifc.commit(outpath) + + def to_asm(self, name): + out = f"# {name} [0x{self.start:X}:0x{self.end:X}](0x{self.end-self.start:X})\n" + out += "\n" + out += f".global {name}\n" + out += f"{name}:\n" + out += f".global {name}_OFF\n" + out += f".set {name}_OFF, . - $start\n" + out += "\n" + out += " .byte " + for i,b in enumerate(self.data): + if i != 0 and i % 32 == 0: + out = out[:-2] + "\n .byte " + out += f"0x{b:02X}, " + out = out[:-2] + "\n" + if len(self.padding) == 0 or all(b == 0 for b in self.padding): + out += " .balign 16\n" + else: + out += f"# PADDING\n" + out += " .byte " + ", ".join(f"0x{b:02X}" for b in self.padding) + "\n" + out += "\n" + return out + + + + + + + +class AudioTableFile: + """ + Single sample bank in the Audiotable + """ + + def __init__(self, bank_num : int, audiotable_seg : memoryview, table_entry : AudioCodeTableEntry, + seg_offset : int, buffer_bug : bool = False, extraction_xml : Tuple[str, Element] = None): + self.bank_num = bank_num + self.table_entry : AudioCodeTableEntry = table_entry + self.data = self.table_entry.data(audiotable_seg, seg_offset) + self.buffer_bug = buffer_bug + + self.samples_final = None + + if extraction_xml is None: + self.file_name = f"SampleBank_{self.bank_num}" + self.name = f"SampleBank_{self.bank_num}" + self.extraction_sample_info = None + self.extraction_blob_info = None + else: + self.file_name = extraction_xml[0] + self.name = extraction_xml[1].attrib["Name"] + + self.extraction_sample_info = {} + self.extraction_blob_info = {} + for item in extraction_xml[1]: + if item.tag == "Sample": + self.extraction_sample_info[int(item.attrib["Offset"], 16)] = item.attrib + elif item.tag == "Blob": + self.extraction_blob_info[int(item.attrib["Offset"], 16)] = item.attrib + else: + assert False + + self.pointer_indices = [] + + self.samples = {} + self.coverage = set() + + def register_ptr(self, index): + self.pointer_indices.append(index) + + def dump_bin(self, path): + with open(path, "wb") as outfile: + outfile.write(self.data) + + def __len__(self): + return len(self.data) + + def add_sample(self, sample_header : SoundFontSample, book : AdpcmBook, loop : AdpcmLoop, tuning : float, ob): + # collect sample data + sample_start = sample_header.sample_addr + sample_end = sample_header.sample_addr + sample_header.size + sample_end_aligned = align(sample_end, 16) + sample_data = self.data[sample_start:sample_end] + sample_padding = self.data[sample_end:sample_end_aligned] + notes_rates = rate_from_tuning(tuning) + + # update coverage + self.coverage.add((sample_start, sample_end_aligned, sample_end)) + + if sample_start in self.samples: + # if this sample start was already recorded, compare with previous + prev_sample : AudioTableSample = self.samples[sample_start] + + # check data integrity, these should not change if the same is the same + assert prev_sample.end == sample_end + assert prev_sample.header.codec == sample_header.codec + assert prev_sample.book == book + assert prev_sample.loop == loop + + # add notes/rates candidates + prev_sample.notes_rates.add((notes_rates, tuning)) + else: + # if this sample start was not recorded, add it + new_sample = AudioTableSample(sample_start, sample_end, sample_header, sample_data, book, loop, sample_padding) + new_sample.notes_rates.add((notes_rates, tuning)) + self.samples[sample_start] = new_sample + + def lookup_sample(self, offset : int) -> AudioTableSample: + return self.samples[offset] + + def sample_name(self, sample : AudioTableSample, index : int): + if self.extraction_sample_info is not None: + if sample.start in self.extraction_sample_info: + return self.extraction_sample_info[sample.start]["Name"] + print(f"WARNING: Missing extraction xml entry for sample at offset=0x{sample.start:X}") + return f"SAMPLE_{self.bank_num}_{index}" + + def sample_filename(self, sample : AudioTableSample, index : int): + ext = sample.codec_file_extension_compressed() + + if self.extraction_sample_info is not None: + if sample.start in self.extraction_sample_info: + return self.extraction_sample_info[sample.start]["FileName"] + ext + print(f"WARNING: Missing extraction xml entry for sample at offset=0x{sample.start:X}") + return f"Sample{index}{ext}" + + def blob_filename(self, start, end): + if self.extraction_blob_info is not None: + if start in self.extraction_blob_info: + return self.extraction_blob_info[start]["Name"] + print(f"WARNING: Missing extraction xml entry for blob at offset=0x{start:X}") + return f"UNACCOUNTED_{start:X}_{end:X}" + + def finalize_samples(self): + self.samples_final = list(sorted(self.samples.values(), key = lambda sample : sample.start)) + + for i,sample in enumerate(self.samples_final): + sample : AudioTableSample + sample.resolve_basenote_rate(self.extraction_sample_info) + + def finalize_coverage(self, all_sample_banks): + if len(self.coverage) != 0: + # merge ranges if there are any + self.coverage = list(sorted(self.coverage)) + + merged = [list(self.coverage.pop(0))] + + while len(self.coverage) != 0: + next = self.coverage.pop(0) + if merged[-1][1] == next[0]: + merged[-1][1] = next[1] + merged[-1][2] = next[2] + else: + merged.append(list(next)) + + self.coverage = merged + + # check fully covered + if len(self.coverage) == 1 and self.coverage[0][0] == 0 and self.coverage[0][1] == len(self.data): + return # all accounted + + # not fully covered, determine ranges of unaccounted data + if len(self.coverage) == 0: + # absolutely nothing is accounted for + unaccounted_ranges = [(0, len(self))] + else: + unaccounted_ranges = [] + # deal with gap at the start + if self.coverage[0][0] != 0: + unaccounted_ranges.append((0, self.coverage[0][0])) + # deal with gaps in the middle + for j,cvg in enumerate(self.coverage[:-1]): + start = cvg[1] + end = self.coverage[j + 1][0] + if start != end: + unaccounted_ranges.append((start, end)) + # deal with gap at the end + if self.coverage[-1][1] != len(self): + unaccounted_ranges.append((self.coverage[-1][1], len(self))) + + # TODO if an unaccounted range is in the extraction xml, trust it before searching other banks + + unaccounted_str = "[" + ", ".join(f"(0x{start:06X}, 0x{end:06X})" for start,end in unaccounted_ranges) + "]" + print(f"Sample Bank {self.bank_num} has incomplete coverage. Unaccounted: {unaccounted_str}") + + # search other banks for matches + for start,end in unaccounted_ranges: + while start != end: + found = False + + for j,bank in enumerate(all_sample_banks): + if not isinstance(bank, AudioTableFile): + # Ignore pointer entries + continue + + for sample in bank.samples_final: + sample : AudioTableSample + + sample_end = start + len(sample) + sample_end_aligned = align(sample_end, 16) + + if self.data[start:sample_end] == sample.data: + print(f" Located match for range [0x{start:X}:0x{sample_end:X}] in bank {j} at 0x{sample.start:X}") + new_sample = sample.clone(start, sample_end, self.data[sample_end:sample_end_aligned]) + new_sample.start = start + new_sample.end = sample_end + new_sample.sample_rate = sample.sample_rate + new_sample.base_note = sample.base_note + self.samples_final.append(new_sample) + found = True + start = sample_end_aligned + break + if found: + break + else: + # found no matches, blob it + print(f" No match found in other banks for range [0x{start:X}:0x{end:X}], leaving as binary blob") + self.samples_final.append(AudioTableData(start, end, self.data[start:end])) + break + + # Final sort + self.samples_final.sort(key = lambda sample : sample.start) + + def assign_names(self): + i = 0 + for sample in self.samples_final: + if isinstance(sample, AudioTableSample): + sample : AudioTableSample + + sample.name = self.sample_name(sample, i) + sample.filename = self.sample_filename(sample, i) + i += 1 + else: + sample : AudioTableData + + name = self.blob_filename(sample.start, sample.end) + sample.name = name + sample.filename = f"{name}.bin" + + def to_xml(self, base_path): + xml = XMLWriter() + + start = { + "Name" : self.name, + "Index" : self.bank_num, + "Medium" : self.table_entry.medium.name, + "CachePolicy" : self.table_entry.cache_policy.name, + } + if self.buffer_bug: + start["BufferBug"] = "true" + + xml.write_start_tag("SampleBank", start) + + # write pointers + for index in self.pointer_indices: + xml.write_element("Pointer", { "Index" : index }) + + # write samples/blobs + for sample in self.samples_final: + if isinstance(sample, AudioTableSample): + sample : AudioTableSample + + xml.write_element("Sample", { + "Name" : sample.name, + "Path" : f"$(BUILD_DIR)/{base_path}/{sample.filename}", + }) + else: + sample : AudioTableData + + xml.write_element("Blob", { + "Name" : sample.name, + "Path" : f"$(BUILD_DIR)/{base_path}/{sample.filename}", + }) + + xml.write_end_tag() + + return str(xml) + + def write_extraction_xml(self, path): + xml = XMLWriter() + + xml.write_comment("This file is only for extraction of vanilla data. For other purposes see assets/audio/samplebanks/") + + start = { + "Name" : self.name, + "Index" : self.bank_num, + } + xml.write_start_tag("SampleBank", start) + + i = 0 + for sample in self.samples_final: + if isinstance(sample, AudioTableSample): + sample : AudioTableSample + + xml.write_element("Sample", { + "Name" : sample.name, + "FileName" : sample.filename.replace(sample.codec_file_extension_compressed(), ""), + "Offset" : f"0x{sample.start:06X}", + "SampleRate" : sample.sample_rate, + "BaseNote" : sample.base_note, + }) + i += 1 + else: + sample : AudioTableData + + xml.write_element("Blob", { + "Name" : sample.name, + "Offset" : f"0x{sample.start:06X}", + "Size" : f"0x{sample.end - sample.start:X}", + }) + + xml.write_end_tag() + + with open(path, "w") as outfile: + outfile.write(str(xml)) + + def write_s_file(self, name, path): + with open(path, "w") as outfile: + out = ".rdata\n" + out += "\n" + out += ".balign 16\n" + out += "\n" + out += f".global {name}\n" + out += f"{name}_Start:\n" + out += "$start:\n" + out += "\n" + + outfile.write(out) + + i = 0 + for sample in self.samples: + if isinstance(sample, AudioTableSample): + sample : AudioTableSample + outfile.write(sample.to_asm(self.sample_name(i))) + i += 1 + else: + sample : AudioTableData + outfile.write(sample.to_asm("__UNACCOUNTED__")) diff --git a/tools/audio/extraction/envelope.py b/tools/audio/extraction/envelope.py new file mode 100644 index 000000000..0dab8c8d9 --- /dev/null +++ b/tools/audio/extraction/envelope.py @@ -0,0 +1,119 @@ +# SPDX-FileCopyrightText: © 2024 ZeldaRET +# SPDX-License-Identifier: CC0-1.0 +# +# Implements envelopes and envelope point structures +# + +import collections + +from .util import XMLWriter + +class EnvDelay(int): + def __str__(self): + return { + 0 : "ADSR_DISABLE", + -1 : "ADSR_HANG", + -2 : "ADSR_GOTO", + -3 : "ADSR_RESTART", + }.get(self, super().__str__()) + +class Envelope: + """ + Array of envelope points + """ + + class EnvelopePoint: + """ + typedef struct { + /* 0x0 */ s16 delay; + /* 0x2 */ s16 arg; + } EnvelopePoint; // size = 0x4 + """ + + def __init__(self, delay, arg): + self.delay = EnvDelay(delay) + self.arg = arg + + def __repr__(self): + return str(self) + + def __str__(self): + return f"{{ {self.delay}, {self.arg} }}" + + def is_disable(self): + return self.delay == 0 and self.arg == 0 + + def is_hang(self): + return self.delay == -1 and self.arg == 0 + + def to_xml(self, xml : XMLWriter): + if self.delay == 0: # Disable + assert self.arg == 0 + xml.write_element("Disable") + elif self.delay == -1: # Hang + assert self.arg == 0 + xml.write_element("Hang") + elif self.delay == -2: # Goto + xml.write_element("Goto", + { "Arg" : self.arg } + ) + elif self.delay == -3: # Restart + assert self.arg == 0 + xml.write_element("Restart") + else: + assert self.delay >= 0 + xml.write_element("Point", + { + "Delay" : self.delay, + "Arg" : self.arg, + } + ) + + def __init__(self, points, is_zero=False): + self.name = None # Assigned when bank is finalized + + self.is_zero = is_zero + self.release_rates = [] + self._release_rate = None # cached + + assert len(points) != 0 + assert type(points[0]) == Envelope.EnvelopePoint + self.points = points + + if not self.is_zero: + while self.points[-1].is_disable(): + self.points.pop() + + assert self.points[-1].is_hang() + + def __str__(self): + out = "{\n" + out += " " + ", ".join([str(point) for point in self.points]) + "\n" + out += "}\n" + return out + + def release_rate(self): + if self._release_rate is not None: + return self._release_rate + + rates = collections.Counter(self.release_rates).most_common() + assert len(rates) in [0, 1], rates # TODO handle ties? + + self._release_rate = 0 if len(rates) == 0 else rates[0][0] + return self._release_rate + + def to_xml(self, xml : XMLWriter, name : str): + if self.is_zero: + return xml.write_element("Envelope") + + xml.write_start_tag("Envelope", + { + "Name" : name, + "Release" : self.release_rate(), + } + ) + + for point in self.points[:-1]: # exclude final hang command, will be added by the soundfont compiler on build + point.to_xml(xml) + + xml.write_end_tag() diff --git a/tools/audio/extraction/tuning.py b/tools/audio/extraction/tuning.py new file mode 100644 index 000000000..b538c68e8 --- /dev/null +++ b/tools/audio/extraction/tuning.py @@ -0,0 +1,211 @@ +#!/usr/bin/env python3 +# SPDX-FileCopyrightText: © 2024 ZeldaRET +# SPDX-License-Identifier: CC0-1.0 +# +# Estimate (samplerate, basenote) from tuning +# +# tuning = samplerate * 2 ** basenote +# + +from typing import List, Tuple + +from .util import f32, u32_to_f32, f32_to_u32 + +# Mirrors gPitchFrequencies in audio driver source. +# Indexed by z64 note numbers, g_pitch_frequencies[C4] = 1.0 (0x3F800000) +# Converted to their IEEE-754 binary representation to avoid any string -> float parser trouble as we need exact values. +g_pitch_frequencies = ( + 0x3DD744F6, 0x3DE411C3, 0x3DF1A198, 0x3E000000, 0x3E079C84, 0x3E0FACE6, 0x3E1837F8, 0x3E21450F, + 0x3E2ADC0A, 0x3E350508, 0x3E3FC86D, 0x3E4B2FEC, 0x3E5744F6, 0x3E641206, 0x3E71A1DC, 0x3E800000, + 0x3E879C84, 0x3E8FACE6, 0x3E9837F8, 0x3EA1450F, 0x3EAADC0A, 0x3EB504E6, 0x3EBFC88E, 0x3ECB2FEC, + 0x3ED744F6, 0x3EE411E4, 0x3EF1A1BA, 0x3F000000, 0x3F079C84, 0x3F0FACD6, 0x3F1837F8, 0x3F214520, + 0x3F2ADC0A, 0x3F3504F7, 0x3F3FC88E, 0x3F4B2FFD, 0x3F574507, 0x3F6411F5, 0x3F71A1CB, 0x3F800000, + 0x3F879C7C, 0x3F8FACD6, 0x3F9837EF, 0x3FA14517, 0x3FAADC0A, 0x3FB504F7, 0x3FBFC886, 0x3FCB2FF5, + 0x3FD744FE, 0x3FE411F5, 0x3FF1A1C2, 0x40000000, 0x40079C7C, 0x400FACD6, 0x401837EF, 0x40214517, + 0x402ADC0A, 0x403504F7, 0x403FC88A, 0x404B2FF9, 0x405744FE, 0x406411F5, 0x4071A1C2, 0x40800000, + 0x40879C7E, 0x408FACD8, 0x409837F1, 0x40A14519, 0x40AADC0A, 0x40B504F5, 0x40BFC888, 0x40CB2FF9, + 0x40D74500, 0x40E411F5, 0x40F1A1C2, 0x41000000, 0x41079C7D, 0x410FACD7, 0x411837F1, 0x41214519, + 0x412ADC0A, 0x413504F5, 0x413FC889, 0x414B2FF8, 0x41574500, 0x416411F4, 0x4171A1C3, 0x41800000, + 0x41879C7D, 0x418FACD7, 0x419837F1, 0x41A14519, 0x41AADC0A, 0x41B504F5, 0x41BFC889, 0x41CB2FF8, + 0x41D74500, 0x41E411F4, 0x41F1A1C3, 0x42000000, 0x42079C7D, 0x420FACD7, 0x421837F1, 0x42214519, + 0x422ADC0A, 0x423504F5, 0x423FC889, 0x424B2FF8, 0x42574500, 0x426411F4, 0x4271A1C3, 0x42800000, + 0x42879C7D, 0x428FACD7, 0x429837F1, 0x42A14519, 0x42AADC0A, 0x3D6411C3, 0x3D71A198, 0x3D800000, + 0x3D879C41, 0x3D8FACE6, 0x3D9837B5, 0x3DA1450F, 0x3DAADBC6, 0x3DB504C5, 0x3DBFC86D, 0x3DCB302F, +) + +# Names for pitch values indexed by z64 note numbers, pitch_names[39] = C4 +pitch_names = ( + "A0", "BF0", "B0", + "C1", "DF1", "D1", "EF1", "E1", "F1", "GF1", "G1", "AF1", "A1", "BF1", "B1", + "C2", "DF2", "D2", "EF2", "E2", "F2", "GF2", "G2", "AF2", "A2", "BF2", "B2", + "C3", "DF3", "D3", "EF3", "E3", "F3", "GF3", "G3", "AF3", "A3", "BF3", "B3", + "C4", "DF4", "D4", "EF4", "E4", "F4", "GF4", "G4", "AF4", "A4", "BF4", "B4", + "C5", "DF5", "D5", "EF5", "E5", "F5", "GF5", "G5", "AF5", "A5", "BF5", "B5", + "C6", "DF6", "D6", "EF6", "E6", "F6", "GF6", "G6", "AF6", "A6", "BF6", "B6", + "C7", "DF7", "D7", "EF7", "E7", "F7", "GF7", "G7", "AF7", "A7", "BF7", "B7", + "C8", "DF8", "D8", "EF8", "E8", "F8", "GF8", "G8", "AF8", "A8", "BF8", "B8", + "C9", "DF9", "D9", "EF9", "E9", "F9", "GF9", "G9", "AF9", "A9", "BF9", "B9", + "C10", "DF10", "D10", "EF10", "E10", "F10", + "BFNEG1", "BNEG1", + "C0", "DF0", "D0", "EF0", "E0", "F0", "GF0", "G0", "AF0", +) + +# Floats that are encountered in extraction but cannot be resolved to a match. +BAD_FLOATS = [0x3E7319E3] + +def note_z64_to_midi(note : int) -> int: + """ + Convert a z64 note number to MIDI note number. + + Middle C is 39 in z64, while it is 60 in MIDI. + We want MIDI note numbers to store in the extracted sample files (aiff or wav) + """ + return (21 + note) % 128 + +def recalc_tuning(rate : int, note : str) -> float: + return f32(f32(rate / 32000.0) * u32_to_f32(g_pitch_frequencies[pitch_names.index(note)])) + +def rate_from_tuning(tuning : float) -> Tuple[Tuple[str,int]]: + """ + Decompose a tuning value into a pair (samplerate, basenote) that round-trips when ran through `recalc_tuning` + """ + matches : List[Tuple[str,int]] = [] + diffs : List[Tuple[int, Tuple[str,int]]] = [] + + tuning_bits : int = f32_to_u32(tuning) + + def test_value(note_val : int, nominal_rate : int, freq : float): + if nominal_rate > 48000: + # reject samplerate if too high + return + + # recalc tuning and compare to original + + tuning2 : float = f32(f32(nominal_rate / 32000.0) * freq) + + diff : int = abs(f32_to_u32(tuning2) - tuning_bits) + + if diff == 0: + matches.append((pitch_names[note_val], nominal_rate)) + else: + diffs.append((diff, (pitch_names[note_val], nominal_rate))) + + # search gPitchFrequencies LUT one by one. We don't exit as soon as a match is found as in general this procedure + # only recovers the correct (rate,note) pair up to multiples of 2, to get the final value we want to select the + # "best" of these pairs by an essentially arbitrary ranking (cf `rank_rates_notes`) + for note_val,freq_bits in enumerate(g_pitch_frequencies): + freq : float = u32_to_f32(freq_bits) + + # compute the "nominal" samplerate for a given basenote by R = 32000 * (t / f) + nominal_rate : int = int(f32(tuning / freq) * 32000.0) + + # test nominal value and +/-1 + test_value(note_val, nominal_rate, freq) + test_value(note_val, nominal_rate + 1, freq) + test_value(note_val, nominal_rate - 1, freq) + + if len(matches) != 0: + return tuple(matches) + + # no matches found... check if we expected this, otherwise flag it for special handling + assert tuning_bits in BAD_FLOATS , f"0x{tuning_bits:08X}" + + # just take the closest match and hack it in the soundfont compiler + hack_rate = sorted(diffs, key=lambda e : e[0])[0] + return (hack_rate[1],) + +def rank_rates_notes(layouts): + + def rank_rate_note(rate, notes): + """ + Arbitrarily rank the input samplerate + note numbers, based on what is most likely. + """ + rank = 0 + + if 'C4' in notes and rate > 10000: + rank += 10000 + elif 'C2' in notes and rate > 10000: + rank += 9500 + elif 'D3' in notes and rate > 10000: + rank += 8500 + elif 'D4' in notes and rate > 10000: + rank += 8000 + elif 'G3' in notes: + rank += 2000 + elif 'F3' in notes: + rank += 25 + elif 'C0' in notes: + rank += 50 + elif 'BF2' in notes: + rank += 30 + elif 'B3' in notes: + rank += 25 + elif 'BF1' in notes: + rank += 25 + elif 'E2' in notes: + rank += 20 + elif 'F6' in notes: + rank += 15 + elif 'GF2' in notes: + rank += 10 + + rank += { + 32000 : 200, + 16000 : 100, + 24000 : 50, + 22050 : 30, + 20000 : 28, + 44100 : 25, + 12000 : 15, + 8000 : 10, + 15950 : 5, + 20050 : 5, + 31800 : 5, + }.get(rate, 0) + + return rank + + # Input should not be empty + assert len(layouts) != 0 + + if len(layouts) == 1: + # No ranking needed, there is only one possible option + return layouts[0] + + # Ranking is needed, rank each layout + ranked = list(sorted(layouts, key=lambda L : rank_rate_note(*L), reverse=True)) + + # Ensure the ranking produced a unique best option + assert rank_rate_note(*ranked[0]) != rank_rate_note(*ranked[1]) , ranked + + # Output best + return ranked[0] + +if __name__ == '__main__': + import argparse + + parser = argparse.ArgumentParser(description="Given either a (rate,note) or a tuning, compute all matching rates/notes.") + parser.add_argument("-t", dest="tuning", required=False, default=None, type=float, help="Tuning value (float)") + parser.add_argument("-r", dest="rate", required=False, default=None, type=int, help="Sample rate (integer)") + parser.add_argument("-n", dest="note", required=False, default=None, type=str, help="Base note (note name)") + parser.add_argument("--show-result", required=False, default=False, action="store_true", help="Show recalculated tuning value") + args = parser.parse_args() + + if args.tuning is not None: + # Take input tuning + tuning = args.tuning + elif args.rate is not None and args.note is not None: + # Calculate target tuning from input rate and note + tuning : float = recalc_tuning(args.rate, args.note) + else: + # Insufficient arguments + parser.print_help() + raise SystemExit("Must specify either -t or both -r and -n.") + + notes_rates : Tuple[Tuple[str,int]] = rate_from_tuning(tuning) + + for note,rate in notes_rates: + if args.show_result: + print(rate, note, "->", recalc_tuning(rate, note)) + else: + print(rate, note) diff --git a/tools/audio/extraction/util.py b/tools/audio/extraction/util.py new file mode 100644 index 000000000..20891810c --- /dev/null +++ b/tools/audio/extraction/util.py @@ -0,0 +1,126 @@ +# SPDX-FileCopyrightText: © 2024 ZeldaRET +# SPDX-License-Identifier: CC0-1.0 +# +# Misc utilities +# + +import struct, subprocess, sys + +def debugm(msg): + """ + Debug message on stderr + """ + print(msg, file=sys.stderr) + +def error(msg): + """ + Debug message + exit + """ + debugm(msg) + sys.exit(1) + +def incbin(rom, offset, size): + return rom[offset:offset+size] + +def f32(f): + """ + Reduces precision of f to a 32-bit float for correct intermediate calculations + """ + return struct.unpack("f", struct.pack("f", f))[0] + +def u32_to_f32(u): + """ + Convert IEEE-754 binary rep to float + """ + return struct.unpack(">f", struct.pack(">I", u))[0] + +def f32_to_u32(f): + """ + Convert float to IEEE-754 binary rep + """ + return struct.unpack(">I", struct.pack(">f", f))[0] + +def align(x, n): + """ + Align to next n (power of 2) + """ + return (x + (n - 1)) & ~(n - 1) + +def merge_ranges(intervals): + if len(intervals) == 0: + return [] + + intervals = sorted(intervals, key=lambda x: x[0][0]) + + stack = [intervals[0]] + for i in range(1, len(intervals)): + last_element = stack[len(stack) - 1] + if last_element[1][0] >= intervals[i][0][0]: + last_element[1] = max(intervals[i][1], last_element[1], key=lambda x: x[0]) + stack.pop(len(stack) - 1) + stack.append(last_element) + else: + stack.append(intervals[i]) + return stack + +def merge_like_ranges(intervals): + if len(intervals) == 0: + return [] + + intervals = sorted(intervals, key=lambda x: x[0][0]) + + stack = [intervals[0]] + for i in range(1, len(intervals)): + last_element = stack[len(stack) - 1] + if last_element[1][0] >= intervals[i][0][0] and last_element[1][1] == intervals[i][1][1]: + last_element[1] = max(intervals[i][1], last_element[1], key=lambda x: x[0]) + stack.pop(len(stack) - 1) + stack.append(last_element) + else: + stack.append(intervals[i]) + return stack + +def list_is_in_order(l): + return all(l[i] <= l[i + 1] for i in range(len(l) - 1)) + +def program_call(cmd): + subprocess.check_call(cmd, shell=True) + +def program_get(cmd): + return subprocess.check_output(cmd, shell=True).decode("ascii") + +class XMLWriter: + """ + Simple XML builder for writing with desired formatting characteristics (no tabs, 4 space indent) + """ + + def __init__(self): + self.contents = "" + self.tag_stack = [] + + def __str__(self): + return self.contents + + def write_line(self, name, open, close, attributes): + indent = " " * len(self.tag_stack) + if attributes is None: + self.contents += f"{indent}{open}{name}{close}\n" + else: + attributes_str = " ".join(f"{k}=\"{v}\"" for k,v in attributes.items()) + self.contents += f"{indent}{open}{name} {attributes_str}{close}\n" + + def write_comment(self, comment): + self.write_line(comment, "", None) + + def write_start_tag(self, name, attributes=None): + self.write_line(name, "<", ">", attributes) + self.tag_stack.append(name) + + def write_end_tag(self): + self.write_line(self.tag_stack.pop(), "", None) + + def write_element(self, name, attributes=None): + self.write_line(name, "<", "/>", attributes) + + def write_raw(self, contents): + self.write_line(contents, "", "", None) diff --git a/tools/audio_extraction.py b/tools/audio_extraction.py new file mode 100644 index 000000000..da30273b7 --- /dev/null +++ b/tools/audio_extraction.py @@ -0,0 +1,166 @@ +#!/usr/bin/env python3 +# SPDX-FileCopyrightText: © 2024 ZeldaRET +# SPDX-License-Identifier: CC0-1.0 +# +# Configures and runs baserom audio extraction +# + +import argparse + +import version_config + +from audio.extraction.audio_extract import extract_audio_for_version, GameVersionInfo, MMLVersion + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description="baserom audio asset extractor") + parser.add_argument("-o", "--extracted-dir", required=True, help="path to extracted directory") + parser.add_argument("-v", "--version", required=True, help="version name") + parser.add_argument("--read-xml", required=False, action="store_true", help="Read extraction xml files") + parser.add_argument("--write-xml", required=False, action="store_true", help="Write extraction xml files") + args = parser.parse_args() + + version = args.version + + config = version_config.load_version_config(version) + + code_vram = config.dmadata_segments["code"].vram + soundfont_table_code_offset = config.variables["gSoundFontTable"] - code_vram + seq_font_table_code_offset = config.variables["gSequenceFontTable"] - code_vram + seq_table_code_offset = config.variables["gSequenceTable"] - code_vram + sample_bank_table_code_offset = config.variables["gSampleBankTable"] - code_vram + + # List any sequences that are "handwritten", we don't extract these by + # default as we want these checked in for documentation. + handwritten_sequences = (0, 1, 2, 109) + + # Sequence enum names for extraction purposes. + seq_enum_names = ( + "NA_BGM_GENERAL_SFX", + "NA_BGM_NATURE_AMBIENCE", + "NA_BGM_FIELD_LOGIC", + "NA_BGM_FIELD_INIT", + "NA_BGM_FIELD_DEFAULT_1", + "NA_BGM_FIELD_DEFAULT_2", + "NA_BGM_FIELD_DEFAULT_3", + "NA_BGM_FIELD_DEFAULT_4", + "NA_BGM_FIELD_DEFAULT_5", + "NA_BGM_FIELD_DEFAULT_6", + "NA_BGM_FIELD_DEFAULT_7", + "NA_BGM_FIELD_DEFAULT_8", + "NA_BGM_FIELD_DEFAULT_9", + "NA_BGM_FIELD_DEFAULT_A", + "NA_BGM_FIELD_DEFAULT_B", + "NA_BGM_FIELD_ENEMY_INIT", + "NA_BGM_FIELD_ENEMY_1", + "NA_BGM_FIELD_ENEMY_2", + "NA_BGM_FIELD_ENEMY_3", + "NA_BGM_FIELD_ENEMY_4", + "NA_BGM_FIELD_STILL_1", + "NA_BGM_FIELD_STILL_2", + "NA_BGM_FIELD_STILL_3", + "NA_BGM_FIELD_STILL_4", + "NA_BGM_DUNGEON", + "NA_BGM_KAKARIKO_ADULT", + "NA_BGM_ENEMY", + "NA_BGM_BOSS", + "NA_BGM_INSIDE_DEKU_TREE", + "NA_BGM_MARKET", + "NA_BGM_TITLE", + "NA_BGM_LINK_HOUSE", + "NA_BGM_GAME_OVER", + "NA_BGM_BOSS_CLEAR", + "NA_BGM_ITEM_GET", + "NA_BGM_OPENING_GANON", + "NA_BGM_HEART_GET", + "NA_BGM_OCA_LIGHT", + "NA_BGM_JABU_JABU", + "NA_BGM_KAKARIKO_KID", + "NA_BGM_GREAT_FAIRY", + "NA_BGM_ZELDA_THEME", + "NA_BGM_FIRE_TEMPLE", + "NA_BGM_OPEN_TRE_BOX", + "NA_BGM_FOREST_TEMPLE", + "NA_BGM_COURTYARD", + "NA_BGM_GANON_TOWER", + "NA_BGM_LONLON", + "NA_BGM_GORON_CITY", + "NA_BGM_FIELD_MORNING", + "NA_BGM_SPIRITUAL_STONE", + "NA_BGM_OCA_BOLERO", + "NA_BGM_OCA_MINUET", + "NA_BGM_OCA_SERENADE", + "NA_BGM_OCA_REQUIEM", + "NA_BGM_OCA_NOCTURNE", + "NA_BGM_MINI_BOSS", + "NA_BGM_SMALL_ITEM_GET", + "NA_BGM_TEMPLE_OF_TIME", + "NA_BGM_EVENT_CLEAR", + "NA_BGM_KOKIRI", + "NA_BGM_OCA_FAIRY_GET", + "NA_BGM_SARIA_THEME", + "NA_BGM_SPIRIT_TEMPLE", + "NA_BGM_HORSE", + "NA_BGM_HORSE_GOAL", + "NA_BGM_INGO", + "NA_BGM_MEDALLION_GET", + "NA_BGM_OCA_SARIA", + "NA_BGM_OCA_EPONA", + "NA_BGM_OCA_ZELDA", + "NA_BGM_OCA_SUNS", + "NA_BGM_OCA_TIME", + "NA_BGM_OCA_STORM", + "NA_BGM_NAVI_OPENING", + "NA_BGM_DEKU_TREE_CS", + "NA_BGM_WINDMILL", + "NA_BGM_HYRULE_CS", + "NA_BGM_MINI_GAME", + "NA_BGM_SHEIK", + "NA_BGM_ZORA_DOMAIN", + "NA_BGM_APPEAR", + "NA_BGM_ADULT_LINK", + "NA_BGM_MASTER_SWORD", + "NA_BGM_INTRO_GANON", + "NA_BGM_SHOP", + "NA_BGM_CHAMBER_OF_SAGES", + "NA_BGM_FILE_SELECT", + "NA_BGM_ICE_CAVERN", + "NA_BGM_DOOR_OF_TIME", + "NA_BGM_OWL", + "NA_BGM_SHADOW_TEMPLE", + "NA_BGM_WATER_TEMPLE", + "NA_BGM_BRIDGE_TO_GANONS", + "NA_BGM_OCARINA_OF_TIME", + "NA_BGM_GERUDO_VALLEY", + "NA_BGM_POTION_SHOP", + "NA_BGM_KOTAKE_KOUME", + "NA_BGM_ESCAPE", + "NA_BGM_UNDERGROUND", + "NA_BGM_GANONDORF_BOSS", + "NA_BGM_GANON_BOSS", + "NA_BGM_END_DEMO", + "NA_BGM_STAFF_1", + "NA_BGM_STAFF_2", + "NA_BGM_STAFF_3", + "NA_BGM_STAFF_4", + "NA_BGM_FIRE_BOSS", + "NA_BGM_TIMED_MINI_GAME", + "NA_BGM_CUTSCENE_EFFECTS", + ) + + # Some bugged soundfonts report the wrong samplebank. Map them to the correct samplebank for proper sample discovery. + fake_banks = { 37 : 2 } + + # Some audiotable banks have a buffer clearing bug. Indicate which banks suffer from this. + audiotable_buffer_bugs = (0,) + + version_info = GameVersionInfo(MMLVersion.OOT, + soundfont_table_code_offset, + seq_font_table_code_offset, + seq_table_code_offset, + sample_bank_table_code_offset, + seq_enum_names, + handwritten_sequences, + fake_banks, + audiotable_buffer_bugs) + + extract_audio_for_version(version_info, args.extracted_dir, args.read_xml, args.write_xml) From feac6883134e6f0c2e62ae90c5adce2cca82a000 Mon Sep 17 00:00:00 2001 From: cadmic Date: Wed, 7 Aug 2024 21:27:02 -0700 Subject: [PATCH 09/10] Match NTSC file select (#1998) * Match NTSC file select Co-authored-by: inspectredc * nes -> eng in macros * Duplicate more code but use less #ifs * Format --------- Co-authored-by: inspectredc --- assets/xml/overlays/ovl_file_choose.xml | 28 +- assets/xml/overlays/ovl_file_choose_pal.xml | 31 + baseroms/gc-eu-mq-dbg/config.yml | 4 +- baseroms/gc-eu-mq/config.yml | 4 +- baseroms/gc-eu/config.yml | 4 +- baseroms/gc-us/config.yml | 4 +- extract_assets.py | 7 +- include/macros.h | 4 +- include/z64.h | 4 + src/code/z_sram.c | 22 +- .../gamestates/ovl_file_choose/file_select.h | 10 +- .../ovl_file_choose/z_file_choose.c | 22 +- .../ovl_file_choose/z_file_nameset.c | 778 ++++++++++++++++-- .../ovl_file_choose/z_file_nameset_data.c | 10 - tools/disasm/gc-us/functions.txt | 3 + 15 files changed, 832 insertions(+), 103 deletions(-) create mode 100644 assets/xml/overlays/ovl_file_choose_pal.xml diff --git a/assets/xml/overlays/ovl_file_choose.xml b/assets/xml/overlays/ovl_file_choose.xml index aa9dcbb84..a97188b44 100644 --- a/assets/xml/overlays/ovl_file_choose.xml +++ b/assets/xml/overlays/ovl_file_choose.xml @@ -3,25 +3,31 @@ - + + + + + + + + + + + + + - + - + - + - - - - - - - + diff --git a/assets/xml/overlays/ovl_file_choose_pal.xml b/assets/xml/overlays/ovl_file_choose_pal.xml new file mode 100644 index 000000000..9721f7e0d --- /dev/null +++ b/assets/xml/overlays/ovl_file_choose_pal.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/baseroms/gc-eu-mq-dbg/config.yml b/baseroms/gc-eu-mq-dbg/config.yml index 115ee5c05..9d6db2827 100644 --- a/baseroms/gc-eu-mq-dbg/config.yml +++ b/baseroms/gc-eu-mq-dbg/config.yml @@ -956,9 +956,9 @@ assets: start_offset: 0x780 end_offset: 0x4128 - name: overlays/ovl_file_choose - xml_path: assets/xml/overlays/ovl_file_choose.xml + xml_path: assets/xml/overlays/ovl_file_choose_pal.xml start_offset: 0xDE70 - end_offset: 0xE6B0 + end_offset: 0xE740 - name: overlays/ovl_Magic_Dark xml_path: assets/xml/overlays/ovl_Magic_Dark.xml start_offset: 0xD10 diff --git a/baseroms/gc-eu-mq/config.yml b/baseroms/gc-eu-mq/config.yml index 59b1802e4..e803b25ea 100644 --- a/baseroms/gc-eu-mq/config.yml +++ b/baseroms/gc-eu-mq/config.yml @@ -940,9 +940,9 @@ assets: start_offset: 0x6E0 end_offset: 0x4088 - name: overlays/ovl_file_choose - xml_path: assets/xml/overlays/ovl_file_choose.xml + xml_path: assets/xml/overlays/ovl_file_choose_pal.xml start_offset: 0xD740 - end_offset: 0xDF80 + end_offset: 0xE010 - name: overlays/ovl_Magic_Dark xml_path: assets/xml/overlays/ovl_Magic_Dark.xml start_offset: 0xC90 diff --git a/baseroms/gc-eu/config.yml b/baseroms/gc-eu/config.yml index 7d54a0259..690c8b8ce 100644 --- a/baseroms/gc-eu/config.yml +++ b/baseroms/gc-eu/config.yml @@ -940,9 +940,9 @@ assets: start_offset: 0x6E0 end_offset: 0x4088 - name: overlays/ovl_file_choose - xml_path: assets/xml/overlays/ovl_file_choose.xml + xml_path: assets/xml/overlays/ovl_file_choose_pal.xml start_offset: 0xD740 - end_offset: 0xDF80 + end_offset: 0xE010 - name: overlays/ovl_Magic_Dark xml_path: assets/xml/overlays/ovl_Magic_Dark.xml start_offset: 0xC90 diff --git a/baseroms/gc-us/config.yml b/baseroms/gc-us/config.yml index c66c4322e..eb3aca9bf 100644 --- a/baseroms/gc-us/config.yml +++ b/baseroms/gc-us/config.yml @@ -940,8 +940,8 @@ assets: end_offset: 0x4088 - name: overlays/ovl_file_choose xml_path: assets/xml/overlays/ovl_file_choose.xml - start_offset: 0xD740 - end_offset: 0xDF80 + start_offset: 0xEC40 + end_offset: 0xF320 - name: overlays/ovl_Magic_Dark xml_path: assets/xml/overlays/ovl_Magic_Dark.xml start_offset: 0xC90 diff --git a/extract_assets.py b/extract_assets.py index 815b1af49..a3f915c24 100755 --- a/extract_assets.py +++ b/extract_assets.py @@ -17,6 +17,7 @@ def SignalHandler(sig, frame): # Don't exit immediately to update the extracted assets file. def ExtractFile(assetConfig: version_config.AssetConfig, outputPath: Path, outputSourcePath: Path): + name = assetConfig.name xmlPath = assetConfig.xml_path version = globalVersionConfig.version if globalAbort.is_set(): @@ -31,15 +32,15 @@ def ExtractFile(assetConfig: version_config.AssetConfig, outputPath: Path, outpu execStr = f"{zapdPath} e -eh -i {xmlPath} -b extracted/{version}/baserom -o {outputPath} -osf {outputSourcePath} -gsf 1 -rconf {configPath} --cs-float both {ZAPDArgs}" - if "code" in xmlPath.parts or "overlays" in xmlPath.parts: + if name.startswith("code/") or name.startswith("overlays/"): assert assetConfig.start_offset is not None assert assetConfig.end_offset is not None execStr += f" --start-offset 0x{assetConfig.start_offset:X}" execStr += f" --end-offset 0x{assetConfig.end_offset:X}" - if "overlays" in xmlPath.parts: - overlayName = xmlPath.stem + if name.startswith("overlays/"): + overlayName = name.split("/")[1] baseAddress = globalVersionConfig.dmadata_segments[overlayName].vram + assetConfig.start_offset execStr += f" --base-address 0x{baseAddress:X}" diff --git a/include/macros.h b/include/macros.h index ed67abc4a..37eb4fc9e 100644 --- a/include/macros.h +++ b/include/macros.h @@ -249,9 +249,9 @@ extern struct GraphicsContext* __gfxCtx; #endif /* OOT_DEBUG */ #if OOT_NTSC -#define LANGUAGE_ARRAY(jpn, nes, ger, fra) { jpn, nes } +#define LANGUAGE_ARRAY(jpn, eng, ger, fra) { jpn, eng } #else -#define LANGUAGE_ARRAY(jpn, nes, ger, fra) { nes, ger, fra } +#define LANGUAGE_ARRAY(jpn, eng, ger, fra) { eng, ger, fra } #endif /** diff --git a/include/z64.h b/include/z64.h index 7e0b60ee5..1c24f026c 100644 --- a/include/z64.h +++ b/include/z64.h @@ -207,7 +207,9 @@ typedef struct { /* 0x000A4 */ Vtx* windowVtx; /* 0x000A8 */ u8* staticSegment; /* 0x000AC */ u8* parameterSegment; +#if OOT_PAL /* 0x000B0 */ char unk_B0[0x8]; +#endif /* 0x000B8 */ View view; /* 0x001E0 */ SramContext sramCtx; /* 0x001E4 */ char unk_1E4[0x4]; @@ -226,7 +228,9 @@ typedef struct { /* 0x1CA1C */ u32 questItems[3]; /* 0x1CA28 */ s16 n64ddFlags[3]; /* 0x1CA2E */ s8 defense[3]; +#if OOT_PAL /* 0x1CA32 */ u16 health[3]; +#endif /* 0x1CA38 */ s16 buttonIndex; /* 0x1CA3A */ s16 confirmButtonIndex; // 0: yes, 1: quit /* 0x1CA3C */ s16 menuMode; diff --git a/src/code/z_sram.c b/src/code/z_sram.c index fb2a4d119..af77828f5 100644 --- a/src/code/z_sram.c +++ b/src/code/z_sram.c @@ -10,7 +10,9 @@ #define HEALTH_CAP offsetof(SaveContext, save.info.playerData.healthCapacity) #define QUEST offsetof(SaveContext, save.info.inventory.questItems) #define DEFENSE offsetof(SaveContext, save.info.inventory.defenseHearts) +#if OOT_PAL #define HEALTH offsetof(SaveContext, save.info.playerData.health) +#endif #define SLOT_OFFSET(index) (SRAM_HEADER_SIZE + 0x10 + (index * SLOT_SIZE)) @@ -726,13 +728,17 @@ void Sram_VerifyAndLoadAllSaves(FileSelectState* fileSelect, SramContext* sramCt MemCpy(&fileSelect->defense[1], sramCtx->readBuff + SLOT_OFFSET(1) + DEFENSE, sizeof(fileSelect->defense[0])); MemCpy(&fileSelect->defense[2], sramCtx->readBuff + SLOT_OFFSET(2) + DEFENSE, sizeof(fileSelect->defense[0])); +#if OOT_PAL MemCpy(&fileSelect->health[0], sramCtx->readBuff + SLOT_OFFSET(0) + HEALTH, sizeof(fileSelect->health[0])); MemCpy(&fileSelect->health[1], sramCtx->readBuff + SLOT_OFFSET(1) + HEALTH, sizeof(fileSelect->health[0])); MemCpy(&fileSelect->health[2], sramCtx->readBuff + SLOT_OFFSET(2) + HEALTH, sizeof(fileSelect->health[0])); +#endif PRINTF("f_64dd=%d, %d, %d\n", fileSelect->n64ddFlags[0], fileSelect->n64ddFlags[1], fileSelect->n64ddFlags[2]); PRINTF("heart_status=%d, %d, %d\n", fileSelect->defense[0], fileSelect->defense[1], fileSelect->defense[2]); +#if OOT_PAL PRINTF("now_life=%d, %d, %d\n", fileSelect->health[0], fileSelect->health[1], fileSelect->health[2]); +#endif } void Sram_InitSave(FileSelectState* fileSelect, SramContext* sramCtx) { @@ -821,11 +827,15 @@ void Sram_InitSave(FileSelectState* fileSelect, SramContext* sramCtx) { MemCpy(&fileSelect->n64ddFlags[gSaveContext.fileNum], sramCtx->readBuff + j + N64DD, sizeof(fileSelect->n64ddFlags[0])); MemCpy(&fileSelect->defense[gSaveContext.fileNum], sramCtx->readBuff + j + DEFENSE, sizeof(fileSelect->defense[0])); +#if OOT_PAL MemCpy(&fileSelect->health[gSaveContext.fileNum], sramCtx->readBuff + j + HEALTH, sizeof(fileSelect->health[0])); +#endif PRINTF("f_64dd[%d]=%d\n", gSaveContext.fileNum, fileSelect->n64ddFlags[gSaveContext.fileNum]); PRINTF("heart_status[%d]=%d\n", gSaveContext.fileNum, fileSelect->defense[gSaveContext.fileNum]); +#if OOT_PAL PRINTF("now_life[%d]=%d\n", gSaveContext.fileNum, fileSelect->health[gSaveContext.fileNum]); +#endif } void Sram_EraseSave(FileSelectState* fileSelect, SramContext* sramCtx) { @@ -879,8 +889,10 @@ void Sram_CopySave(FileSelectState* fileSelect, SramContext* sramCtx) { sizeof(fileSelect->n64ddFlags[0])); MemCpy(&fileSelect->defense[fileSelect->copyDestFileIndex], sramCtx->readBuff + offset + DEFENSE, sizeof(fileSelect->defense[0])); +#if OOT_PAL MemCpy(&fileSelect->health[fileSelect->copyDestFileIndex], (sramCtx->readBuff + offset) + HEALTH, sizeof(fileSelect->health[0])); +#endif PRINTF("f_64dd[%d]=%d\n", gSaveContext.fileNum, fileSelect->n64ddFlags[gSaveContext.fileNum]); PRINTF("heart_status[%d]=%d\n", gSaveContext.fileNum, fileSelect->defense[gSaveContext.fileNum]); @@ -903,22 +915,30 @@ void Sram_InitSram(GameState* gameState, SramContext* sramCtx) { for (i = 0; i < ARRAY_COUNTU(sZeldaMagic) - 3; i++) { if (sZeldaMagic[i + SRAM_HEADER_MAGIC] != sramCtx->readBuff[i + SRAM_HEADER_MAGIC]) { PRINTF("SRAM破壊!!!!!!\n"); // "SRAM destruction! ! ! ! ! !" +#if OOT_PAL gSaveContext.language = sramCtx->readBuff[SRAM_HEADER_LANGUAGE]; +#endif + MemCpy(sramCtx->readBuff, sZeldaMagic, sizeof(sZeldaMagic)); + +#if OOT_PAL sramCtx->readBuff[SRAM_HEADER_LANGUAGE] = gSaveContext.language; +#endif Sram_WriteSramHeader(sramCtx); } } gSaveContext.audioSetting = sramCtx->readBuff[SRAM_HEADER_SOUND] & 3; gSaveContext.zTargetSetting = sramCtx->readBuff[SRAM_HEADER_ZTARGET] & 1; - gSaveContext.language = sramCtx->readBuff[SRAM_HEADER_LANGUAGE]; +#if OOT_PAL + gSaveContext.language = sramCtx->readBuff[SRAM_HEADER_LANGUAGE]; if (gSaveContext.language >= LANGUAGE_MAX) { gSaveContext.language = LANGUAGE_ENG; sramCtx->readBuff[SRAM_HEADER_LANGUAGE] = gSaveContext.language; Sram_WriteSramHeader(sramCtx); } +#endif #if OOT_DEBUG if (CHECK_BTN_ANY(gameState->input[2].cur.button, BTN_DRIGHT)) { diff --git a/src/overlays/gamestates/ovl_file_choose/file_select.h b/src/overlays/gamestates/ovl_file_choose/file_select.h index b4d0db5b2..15f78f143 100644 --- a/src/overlays/gamestates/ovl_file_choose/file_select.h +++ b/src/overlays/gamestates/ovl_file_choose/file_select.h @@ -157,7 +157,13 @@ typedef enum { typedef enum { /* 0 */ FS_CHAR_PAGE_HIRA, /* 1 */ FS_CHAR_PAGE_KATA, - /* 2 */ FS_CHAR_PAGE_ENG + /* 2 */ FS_CHAR_PAGE_ENG, + /* 3 */ FS_CHAR_PAGE_HIRA_TO_KATA, + /* 4 */ FS_CHAR_PAGE_KATA_TO_HIRA, + /* 5 */ FS_CHAR_PAGE_HIRA_TO_ENG, + /* 6 */ FS_CHAR_PAGE_ENG_TO_HIRA, + /* 7 */ FS_CHAR_PAGE_KATA_TO_ENG, + /* 8 */ FS_CHAR_PAGE_ENG_TO_KATA } CharPage; typedef enum { @@ -214,6 +220,4 @@ void FileSelect_DrawOptions(GameState* thisx); void FileSelect_DrawNameEntry(GameState* thisx); void FileSelect_DrawCharacter(GraphicsContext* gfxCtx, void* texture, s16 vtx); -extern s16 D_808123F0[]; - #endif diff --git a/src/overlays/gamestates/ovl_file_choose/z_file_choose.c b/src/overlays/gamestates/ovl_file_choose/z_file_choose.c index df6118dce..3876619b1 100644 --- a/src/overlays/gamestates/ovl_file_choose/z_file_choose.c +++ b/src/overlays/gamestates/ovl_file_choose/z_file_choose.c @@ -189,7 +189,16 @@ void FileSelect_UpdateMainMenu(GameState* thisx) { &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); this->configMode = CM_ROTATE_TO_NAME_ENTRY; this->kbdButton = FS_KBD_BTN_NONE; + +#if OOT_NTSC + this->charPage = FS_CHAR_PAGE_HIRA; + if (gSaveContext.language != LANGUAGE_JPN) { + this->charPage = FS_CHAR_PAGE_ENG; + } +#else this->charPage = FS_CHAR_PAGE_ENG; +#endif + this->kbdX = 0; this->kbdY = 0; this->charIndex = 0; @@ -224,7 +233,7 @@ void FileSelect_UpdateMainMenu(GameState* thisx) { this->nextTitleLabel = FS_TITLE_ERASE_FILE; } else { this->configMode = CM_MAIN_TO_OPTIONS; - this->kbdButton = 0; + this->kbdButton = FS_KBD_BTN_HIRA; this->kbdX = 0; this->kbdY = 0; this->charBgAlpha = 0; @@ -798,6 +807,11 @@ static s16 sQuestItemRed[] = { 255, 255, 255, 0, 255, 0, 255, 200, 200 }; static s16 sQuestItemGreen[] = { 255, 255, 255, 255, 60, 100, 130, 50, 200 }; static s16 sQuestItemBlue[] = { 255, 255, 255, 0, 0, 255, 0, 255, 0 }; static s16 sQuestItemFlags[] = { 0x0012, 0x0013, 0x0014, 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005 }; + +#if OOT_NTSC +static void* sSaveXTextures[] = { gFileSelSaveXJPNTex, gFileSelSaveXENGTex }; +#endif + static s16 sNamePrimColors[2][3] = { { 255, 255, 255 }, { 100, 100, 100 } }; static void* sHeartTextures[] = { gHeartFullTex, gDefenseHeartFullTex }; static s16 sHeartPrimColors[2][3] = { { 255, 70, 50 }, { 200, 0, 0 } }; @@ -1729,9 +1743,11 @@ void FileSelect_Main(GameState* thisx) { void FileSelect_InitContext(GameState* thisx) { FileSelectState* this = (FileSelectState*)thisx; EnvironmentContext* envCtx = &this->envCtx; +#if OOT_PAL SramContext* sramCtx = &this->sramCtx; +#endif - Sram_Alloc(&this->state, sramCtx); + Sram_Alloc(&this->state, &this->sramCtx); ZREG(7) = 32; ZREG(8) = 22; @@ -1888,6 +1904,7 @@ void FileSelect_InitContext(GameState* thisx) { this->n64ddFlags[0] = this->n64ddFlags[1] = this->n64ddFlags[2] = this->defense[0] = this->defense[1] = this->defense[2] = 0; +#if OOT_PAL SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, SRAM_SIZE, OS_READ); gSaveContext.language = sramCtx->readBuff[SRAM_HEADER_LANGUAGE]; @@ -1895,6 +1912,7 @@ void FileSelect_InitContext(GameState* thisx) { if (gSaveContext.language >= LANGUAGE_MAX) { sramCtx->readBuff[SRAM_HEADER_LANGUAGE] = gSaveContext.language = LANGUAGE_ENG; } +#endif } void FileSelect_Destroy(GameState* thisx) { diff --git a/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c b/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c index b6f452546..f369ce7f3 100644 --- a/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c +++ b/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c @@ -3,6 +3,31 @@ #include "assets/textures/title_static/title_static.h" #include "assets/overlays/ovl_file_choose/ovl_file_choose.h" +void FileSelect_DrawCharacter(GraphicsContext* gfxCtx, void* texture, s16 vtx) { + OPEN_DISPS(gfxCtx, "../z_file_nameset_PAL.c", 110); + + gDPLoadTextureBlock_4b(POLY_OPA_DISP++, texture, G_IM_FMT_I, 16, 16, 0, G_TX_NOMIRROR | G_TX_CLAMP, + G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + gSP1Quadrangle(POLY_OPA_DISP++, vtx, vtx + 2, vtx + 3, vtx + 1, 0); + + CLOSE_DISPS(gfxCtx, "../z_file_nameset_PAL.c", 119); +} + +#if OOT_NTSC +void FileSelect_DrawCharacterTransition(GraphicsContext* gfxCtx, void* texture1, void* texture2, s16 vtx) { + OPEN_DISPS(gfxCtx, "", 0); + + gDPLoadTextureBlock_4b(POLY_OPA_DISP++, texture1, G_IM_FMT_I, 16, 16, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + gDPLoadMultiBlock_4b(POLY_OPA_DISP++, texture2, 0x0080, 1, G_IM_FMT_I, 16, 16, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + gSP1Quadrangle(POLY_OPA_DISP++, vtx, vtx + 2, vtx + 3, vtx + 1, 0); + + CLOSE_DISPS(gfxCtx, "", 0); +} +#endif + +#if OOT_PAL static s16 D_808124C0[] = { 0x0002, 0x0003, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0001, 0x0002, 0x0000, 0x0001, 0x0001, 0x0002, 0x0001, 0x0001, 0x0004, 0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0000, 0x0002, 0x0000, 0x0001, @@ -18,20 +43,10 @@ static s16 D_80812544[] = { 0x0002, 0x0002, 0x0001, 0x0001, 0x0002, 0x0002, 0x0003, 0x0002, 0x0002, 0x0000, 0x0002, 0x0002, 0x0002, 0x0003, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0001, 0x0003, }; - -void FileSelect_DrawCharacter(GraphicsContext* gfxCtx, void* texture, s16 vtx) { - OPEN_DISPS(gfxCtx, "../z_file_nameset_PAL.c", 110); - - gDPLoadTextureBlock_4b(POLY_OPA_DISP++, texture, G_IM_FMT_I, 16, 16, 0, G_TX_NOMIRROR | G_TX_CLAMP, - G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - gSP1Quadrangle(POLY_OPA_DISP++, vtx, vtx + 2, vtx + 3, vtx + 1, 0); - - CLOSE_DISPS(gfxCtx, "../z_file_nameset_PAL.c", 119); -} +#endif void FileSelect_SetKeyboardVtx(GameState* thisx) { FileSelectState* this = (FileSelectState*)thisx; - s16 val; s16 phi_t2; s16 phi_t0; s16 phi_t3; @@ -43,14 +58,49 @@ void FileSelect_SetKeyboardVtx(GameState* thisx) { phi_s1 = 0x26; +#if OOT_NTSC for (phi_t2 = 0, phi_s2 = 0, phi_t3 = 0; phi_s2 < 5; phi_s2++) { - phi_t0 = -0x60; + for (phi_t0 = -0x60, phi_t1 = 0; phi_t1 < 13; phi_t1++, phi_t3 += 4) { + this->keyboardVtx[phi_t3].v.ob[0] = this->keyboardVtx[phi_t3 + 2].v.ob[0] = phi_t0; + this->keyboardVtx[phi_t3 + 1].v.ob[0] = this->keyboardVtx[phi_t3 + 3].v.ob[0] = phi_t0 + 12; - for (phi_t1 = 0; phi_t1 < 13; phi_t1++, phi_t3 += 4, phi_t2++) { - //! @bug D_80812544 is accessed out of bounds when drawing the empty space character (value of 64). Under - //! normal circumstances it reads a halfword from sNameLabelTextures. + this->keyboardVtx[phi_t3].v.ob[1] = this->keyboardVtx[phi_t3 + 1].v.ob[1] = phi_s1; + + this->keyboardVtx[phi_t3 + 2].v.ob[1] = this->keyboardVtx[phi_t3 + 3].v.ob[1] = phi_s1 - 12; + + this->keyboardVtx[phi_t3].v.ob[2] = this->keyboardVtx[phi_t3 + 1].v.ob[2] = + this->keyboardVtx[phi_t3 + 2].v.ob[2] = this->keyboardVtx[phi_t3 + 3].v.ob[2] = 0; + + this->keyboardVtx[phi_t3].v.flag = this->keyboardVtx[phi_t3 + 1].v.flag = + this->keyboardVtx[phi_t3 + 2].v.flag = this->keyboardVtx[phi_t3 + 3].v.flag = 0; + + this->keyboardVtx[phi_t3].v.tc[0] = this->keyboardVtx[phi_t3].v.tc[1] = + this->keyboardVtx[phi_t3 + 1].v.tc[1] = this->keyboardVtx[phi_t3 + 2].v.tc[0] = 0; + + this->keyboardVtx[phi_t3 + 1].v.tc[0] = this->keyboardVtx[phi_t3 + 2].v.tc[1] = + this->keyboardVtx[phi_t3 + 3].v.tc[0] = this->keyboardVtx[phi_t3 + 3].v.tc[1] = 0x200; + + this->keyboardVtx[phi_t3].v.cn[0] = this->keyboardVtx[phi_t3 + 1].v.cn[0] = + this->keyboardVtx[phi_t3 + 2].v.cn[0] = this->keyboardVtx[phi_t3 + 3].v.cn[0] = + this->keyboardVtx[phi_t3].v.cn[1] = this->keyboardVtx[phi_t3 + 1].v.cn[1] = + this->keyboardVtx[phi_t3 + 2].v.cn[1] = this->keyboardVtx[phi_t3 + 3].v.cn[1] = + this->keyboardVtx[phi_t3].v.cn[2] = this->keyboardVtx[phi_t3 + 1].v.cn[2] = + this->keyboardVtx[phi_t3 + 2].v.cn[2] = this->keyboardVtx[phi_t3 + 3].v.cn[2] = + this->keyboardVtx[phi_t3].v.cn[3] = this->keyboardVtx[phi_t3 + 1].v.cn[3] = + this->keyboardVtx[phi_t3 + 2].v.cn[3] = this->keyboardVtx[phi_t3 + 3].v.cn[3] = + 255; + + phi_t0 += 0x10; + } + + phi_s1 -= 0x10; + } +#else + for (phi_t2 = 0, phi_s2 = 0, phi_t3 = 0; phi_s2 < 5; phi_s2++) { + for (phi_t0 = -0x60, phi_t1 = 0; phi_t1 < 13; phi_t1++, phi_t3 += 4, phi_t2++) { + //! @bug D_80812544 is accessed out of bounds when drawing the empty space character (value + //! of 64). Under normal circumstances it reads a halfword from sNameLabelTextures. this->keyboardVtx[phi_t3].v.ob[0] = this->keyboardVtx[phi_t3 + 2].v.ob[0] = D_80812544[phi_t2] + phi_t0; - this->keyboardVtx[phi_t3 + 1].v.ob[0] = this->keyboardVtx[phi_t3 + 3].v.ob[0] = D_80812544[phi_t2] + phi_t0 + 12; @@ -85,6 +135,7 @@ void FileSelect_SetKeyboardVtx(GameState* thisx) { phi_s1 -= 0x10; } +#endif } static void* sNameLabelTextures[] = @@ -124,7 +175,9 @@ void FileSelect_SetNameEntryVtx(GameState* thisx) { Font* font = &this->font; s16 phi_s0; s16 phi_t1; +#if OOT_PAL u8 temp; +#endif s16 phi_v0; if (1) {} @@ -143,26 +196,55 @@ void FileSelect_SetNameEntryVtx(GameState* thisx) { gSP1Quadrangle(POLY_OPA_DISP++, 0, 2, 3, 1, 0); gDPPipeSync(POLY_OPA_DISP++); +#if OOT_NTSC + for (phi_t1 = 0, phi_s0 = 4; phi_t1 < 5; phi_t1++, phi_s0 += 4) { + if (gSaveContext.language == LANGUAGE_JPN) { + gDPPipeSync(POLY_OPA_DISP++); + gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, this->windowColor[0], this->windowColor[1], this->windowColor[2], + 255); + gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, 0); + + gDPLoadTextureBlock(POLY_OPA_DISP++, sButtonTextures[phi_t1], G_IM_FMT_IA, G_IM_SIZ_16b, + sButtonWidths[phi_t1], 16, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + + gSP1Quadrangle(POLY_OPA_DISP++, phi_s0, phi_s0 + 2, phi_s0 + 3, phi_s0 + 1, 0); + } else if (phi_t1 >= 3) { + gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, this->windowColor[0], this->windowColor[1], this->windowColor[2], + 255); + gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, 0); + + gDPLoadTextureBlock(POLY_OPA_DISP++, sButtonTextures[phi_t1], G_IM_FMT_IA, G_IM_SIZ_16b, + sButtonWidths[phi_t1], 16, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + + gSP1Quadrangle(POLY_OPA_DISP++, phi_s0, phi_s0 + 2, phi_s0 + 3, phi_s0 + 1, 0); + } + } +#else phi_s0 = 0x10; for (phi_t1 = 0; phi_t1 < 2; phi_t1++, phi_s0 += 4) { gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, this->windowColor[0], this->windowColor[1], this->windowColor[2], 255); gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, 0); -#if OOT_NTSC - // TODO: implement NTSC version - gDPLoadTextureBlock(POLY_OPA_DISP++, sButtonTextures[phi_t1], G_IM_FMT_IA, G_IM_SIZ_16b, sButtonWidths[phi_t1], - 16, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, - G_TX_NOLOD, G_TX_NOLOD); -#else + gDPLoadTextureBlock(POLY_OPA_DISP++, sButtonTextures[gSaveContext.language][phi_t1], G_IM_FMT_IA, G_IM_SIZ_16b, sButtonWidths[phi_t1], 16, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); -#endif + gSP1Quadrangle(POLY_OPA_DISP++, phi_s0, phi_s0 + 2, phi_s0 + 3, phi_s0 + 1, 0); } +#endif this->nameEntryVtx = GRAPH_ALLOC(this->state.gfxCtx, 44 * sizeof(Vtx)); for (phi_s0 = 0, phi_t1 = 0; phi_t1 < 44; phi_t1 += 4, phi_s0++) { +#if OOT_NTSC + this->nameEntryVtx[phi_t1].v.ob[0] = this->nameEntryVtx[phi_t1 + 2].v.ob[0] = + D_808125EC[phi_s0] + this->nameEntryBoxPosX; + + this->nameEntryVtx[phi_t1 + 1].v.ob[0] = this->nameEntryVtx[phi_t1 + 3].v.ob[0] = + this->nameEntryVtx[phi_t1].v.ob[0] + 0xA; +#else if ((phi_s0 > 0) && (phi_s0 < 9)) { temp = this->fileNames[this->buttonIndex][phi_s0 - 1]; @@ -178,6 +260,7 @@ void FileSelect_SetNameEntryVtx(GameState* thisx) { this->nameEntryVtx[phi_t1 + 1].v.ob[0] = this->nameEntryVtx[phi_t1 + 3].v.ob[0] = this->nameEntryVtx[phi_t1].v.ob[0] + 0xA; } +#endif this->nameEntryVtx[phi_t1].v.ob[1] = this->nameEntryVtx[phi_t1 + 1].v.ob[1] = D_80812604[phi_s0]; @@ -237,9 +320,9 @@ void FileSelect_SetNameEntryVtx(GameState* thisx) { this->nameEntryVtx[0x27].v.tc[1] = this->nameEntryVtx[0x29].v.tc[0] = this->nameEntryVtx[0x2A].v.tc[1] = this->nameEntryVtx[0x2B].v.tc[0] = this->nameEntryVtx[0x2B].v.tc[1] = 0x300; - if ((this->kbdButton == 0) || (this->kbdButton == 1) || (this->kbdButton == 4)) { + if (this->kbdButton == FS_KBD_BTN_HIRA || this->kbdButton == FS_KBD_BTN_KATA || this->kbdButton == FS_KBD_BTN_END) { this->nameEntryVtx[0x29].v.tc[0] = this->nameEntryVtx[0x2B].v.tc[0] = 0x700; - } else if ((this->kbdButton == 2) || (this->kbdButton == 3)) { + } else if (this->kbdButton == FS_KBD_BTN_ENG || this->kbdButton == FS_KBD_BTN_BACKSPACE) { this->nameEntryVtx[0x29].v.tc[0] = this->nameEntryVtx[0x2B].v.tc[0] = 0x500; } @@ -264,22 +347,189 @@ void FileSelect_DrawKeyboard(GameState* thisx) { 0, 0, COMBINED); gDPSetPrimColor(POLY_OPA_DISP++, 0, this->charBgAlpha, 255, 255, 255, 255); - while (vtx < 0x100) { +#if OOT_NTSC + if (this->charPage == FS_CHAR_PAGE_HIRA || this->charPage == FS_CHAR_PAGE_HIRA_TO_KATA || + this->charPage == FS_CHAR_PAGE_HIRA_TO_ENG) { + if (this->charPage != FS_CHAR_PAGE_HIRA_TO_ENG) { + for (; vtx < 0x100; vtx += 32) { + gSPVertex(POLY_OPA_DISP++, &this->keyboardVtx[vtx], 32, 0); + + for (tmp = 0; tmp < 32; i++, tmp += 4) { + FileSelect_DrawCharacterTransition(this->state.gfxCtx, + font->fontBuf + gCharPageHira[i] * FONT_CHAR_TEX_SIZE, + font->fontBuf + gCharPageKata[i] * FONT_CHAR_TEX_SIZE, tmp); + } + } + gSPVertex(POLY_OPA_DISP++, &this->keyboardVtx[0x100], 4, 0); + FileSelect_DrawCharacterTransition(this->state.gfxCtx, + font->fontBuf + gCharPageHira[i] * FONT_CHAR_TEX_SIZE, + font->fontBuf + gCharPageKata[i] * FONT_CHAR_TEX_SIZE, 0); + } else { + for (; vtx < 0x100; vtx += 32) { + gSPVertex(POLY_OPA_DISP++, &this->keyboardVtx[vtx], 32, 0); + + for (tmp = 0; tmp < 32; i++, tmp += 4) { + FileSelect_DrawCharacterTransition(this->state.gfxCtx, + font->fontBuf + gCharPageHira[i] * FONT_CHAR_TEX_SIZE, + font->fontBuf + gCharPageEng[i] * FONT_CHAR_TEX_SIZE, tmp); + } + } + gSPVertex(POLY_OPA_DISP++, &this->keyboardVtx[0x100], 4, 0); + FileSelect_DrawCharacterTransition(this->state.gfxCtx, + font->fontBuf + gCharPageHira[i] * FONT_CHAR_TEX_SIZE, + font->fontBuf + gCharPageEng[i] * FONT_CHAR_TEX_SIZE, 0); + } + } else if (this->charPage == FS_CHAR_PAGE_KATA || this->charPage == FS_CHAR_PAGE_KATA_TO_HIRA || + this->charPage == FS_CHAR_PAGE_KATA_TO_ENG) { + if (this->charPage != FS_CHAR_PAGE_KATA_TO_ENG) { + for (; vtx < 0x100; vtx += 32) { + gSPVertex(POLY_OPA_DISP++, &this->keyboardVtx[vtx], 32, 0); + + for (tmp = 0; tmp < 32; i++, tmp += 4) { + FileSelect_DrawCharacterTransition(this->state.gfxCtx, + font->fontBuf + gCharPageKata[i] * FONT_CHAR_TEX_SIZE, + font->fontBuf + gCharPageHira[i] * FONT_CHAR_TEX_SIZE, tmp); + } + } + gSPVertex(POLY_OPA_DISP++, &this->keyboardVtx[0x100], 4, 0); + FileSelect_DrawCharacterTransition(this->state.gfxCtx, + font->fontBuf + gCharPageKata[i] * FONT_CHAR_TEX_SIZE, + font->fontBuf + gCharPageHira[i] * FONT_CHAR_TEX_SIZE, 0); + } else { + for (; vtx < 0x100; vtx += 32) { + gSPVertex(POLY_OPA_DISP++, &this->keyboardVtx[vtx], 32, 0); + + for (tmp = 0; tmp < 32; i++, tmp += 4) { + FileSelect_DrawCharacterTransition(this->state.gfxCtx, + font->fontBuf + gCharPageKata[i] * FONT_CHAR_TEX_SIZE, + font->fontBuf + gCharPageEng[i] * FONT_CHAR_TEX_SIZE, tmp); + } + } + gSPVertex(POLY_OPA_DISP++, &this->keyboardVtx[0x100], 4, 0); + FileSelect_DrawCharacterTransition(this->state.gfxCtx, + font->fontBuf + gCharPageKata[i] * FONT_CHAR_TEX_SIZE, + font->fontBuf + gCharPageEng[i] * FONT_CHAR_TEX_SIZE, 0); + } + } else { + if (this->charPage != FS_CHAR_PAGE_ENG_TO_KATA) { + for (; vtx < 0x100; vtx += 32) { + gSPVertex(POLY_OPA_DISP++, &this->keyboardVtx[vtx], 32, 0); + + for (tmp = 0; tmp < 32; i++, tmp += 4) { + FileSelect_DrawCharacterTransition(this->state.gfxCtx, + font->fontBuf + gCharPageEng[i] * FONT_CHAR_TEX_SIZE, + font->fontBuf + gCharPageHira[i] * FONT_CHAR_TEX_SIZE, tmp); + } + } + gSPVertex(POLY_OPA_DISP++, &this->keyboardVtx[0x100], 4, 0); + FileSelect_DrawCharacterTransition(this->state.gfxCtx, font->fontBuf + gCharPageEng[i] * FONT_CHAR_TEX_SIZE, + font->fontBuf + gCharPageHira[i] * FONT_CHAR_TEX_SIZE, 0); + } else { + for (; vtx < 0x100; vtx += 32) { + gSPVertex(POLY_OPA_DISP++, &this->keyboardVtx[vtx], 32, 0); + + for (tmp = 0; tmp < 32; i++, tmp += 4) { + FileSelect_DrawCharacterTransition(this->state.gfxCtx, + font->fontBuf + gCharPageEng[i] * FONT_CHAR_TEX_SIZE, + font->fontBuf + gCharPageKata[i] * FONT_CHAR_TEX_SIZE, tmp); + } + } + gSPVertex(POLY_OPA_DISP++, &this->keyboardVtx[0x100], 4, 0); + FileSelect_DrawCharacterTransition(this->state.gfxCtx, font->fontBuf + gCharPageEng[i] * FONT_CHAR_TEX_SIZE, + font->fontBuf + gCharPageKata[i] * FONT_CHAR_TEX_SIZE, 0); + } + } +#else + for (; vtx < 0x100; vtx += 32) { gSPVertex(POLY_OPA_DISP++, &this->keyboardVtx[vtx], 32, 0); for (tmp = 0; tmp < 32; i++, tmp += 4) { - FileSelect_DrawCharacter(this->state.gfxCtx, font->fontBuf + D_808123F0[i] * FONT_CHAR_TEX_SIZE, tmp); + FileSelect_DrawCharacter(this->state.gfxCtx, font->fontBuf + gCharPageEng[i] * FONT_CHAR_TEX_SIZE, tmp); } - - vtx += 32; } gSPVertex(POLY_OPA_DISP++, &this->keyboardVtx[0x100], 4, 0); - FileSelect_DrawCharacter(this->state.gfxCtx, font->fontBuf + D_808123F0[i] * FONT_CHAR_TEX_SIZE, 0); + FileSelect_DrawCharacter(this->state.gfxCtx, font->fontBuf + gCharPageEng[i] * FONT_CHAR_TEX_SIZE, 0); +#endif CLOSE_DISPS(this->state.gfxCtx, "../z_file_nameset_PAL.c", 347); } +#if OOT_NTSC +// Tables for applying or removing Japanese diacritics (dakuten and handakuten) to filename characters. +// For the range of characters between RangeMin[i] and RangeMax[i], the modified character can be found +// by adding RangeOffset[i]. +static s16 sRemoveDiacriticRangeMin[12] = { 0x0F, 0x23, 0x41, 0x50, 0x55, 0x5F, 0x73, 0x91, 0xA0, 0xA5, 0x5C, 0xAA }; +static s16 sRemoveDiacriticRangeMax[12] = { 0x1D, 0x27, 0x4F, 0x54, 0x59, 0x6D, 0x77, 0x9F, 0xA4, 0xA9, 0x5C, 0xAA }; +static s16 sRemoveDiacriticRangeOffset[12] = { 0x32, 0x2D, -0x32, 0x05, -0x32, 0x32, + 0x2D, -0x32, 0x05, -0x32, 0x4E, -0x4E }; +static s16 sDakutenDiacriticRangeMin[8] = { 0x0F, 0x23, 0x55, 0x5F, 0x73, 0xA5, 0x5C, 0xAA }; +static s16 sDakutenDiacriticRangeMax[8] = { 0x1D, 0x27, 0x59, 0x6D, 0x77, 0xA9, 0x5C, 0xAA }; +static s16 sDakutenDiacriticRangeOffset[8] = { 0x32, 0x2D, -0x05, 0x32, 0x2D, -0x05, 0x4E, -0x4E }; +static s16 sHandakutenDiacriticRangeMin[4] = { 0x23, 0x50, 0x73, 0xA0 }; +static s16 sHandakutenDiacriticRangeMax[4] = { 0x27, 0x54, 0x77, 0xA4 }; +static s16 sHandakutenDiacriticRangeOffset[4] = { 0x32, 0x05, 0x32, 0x05 }; + +/** + * Apply a Japanese diacritic to a character in the filename. The diacritic can be + * FILENAME_DAKUTEN, FILENAME_HANDAKUTEN, or FILENAME_SPACE (which removes any + * diacritic). Returns true if the diacritic was successfully applied (or removed). + */ +s32 FileSelect_ApplyDiacriticToCharacter(GameState* thisx, s16 diacritic, s16 charIndex) { + FileSelectState* this = (FileSelectState*)thisx; + s16 i; + + if (diacritic == FILENAME_SPACE) { + for (i = 0; i < ARRAY_COUNTU(sRemoveDiacriticRangeOffset); i++) { + if (sRemoveDiacriticRangeMin[i] <= this->fileNames[this->buttonIndex][charIndex] && + this->fileNames[this->buttonIndex][charIndex] <= sRemoveDiacriticRangeMax[i]) { + this->fileNames[this->buttonIndex][charIndex] += sRemoveDiacriticRangeOffset[i]; + return true; + } + } + } else if (diacritic == FILENAME_DAKUTEN) { + for (i = 0; i < ARRAY_COUNTU(sDakutenDiacriticRangeOffset); i++) { + if (sDakutenDiacriticRangeMin[i] <= this->fileNames[this->buttonIndex][charIndex] && + this->fileNames[this->buttonIndex][charIndex] <= sDakutenDiacriticRangeMax[i]) { + this->fileNames[this->buttonIndex][charIndex] += sDakutenDiacriticRangeOffset[i]; + return true; + } + } + } else if (diacritic == FILENAME_HANDAKUTEN) { + for (i = 0; i < ARRAY_COUNTU(sHandakutenDiacriticRangeOffset); i++) { + if (sHandakutenDiacriticRangeMin[i] <= this->fileNames[this->buttonIndex][charIndex] && + this->fileNames[this->buttonIndex][charIndex] <= sHandakutenDiacriticRangeMax[i]) { + this->fileNames[this->buttonIndex][charIndex] += sHandakutenDiacriticRangeOffset[i]; + return true; + } + } + } + return false; +} + +/** + * Apply a Japanese diacritic to the filename, either replacing the current + * character or the previous character in the filename. The diacritic can be + * FILENAME_DAKUTEN, FILENAME_HANDAKUTEN, or FILENAME_SPACE (which removes any + * diacritic). Returns true if the diacritic was successfully applied (or removed). + */ +s32 FileSelect_ApplyDiacriticToFilename(GameState* thisx, s16 diacritic) { + FileSelectState* this = (FileSelectState*)thisx; + s32 pad; + + if (!FileSelect_ApplyDiacriticToCharacter(&this->state, diacritic, this->newFileNameCharCount)) { + if (this->newFileNameCharCount != 0) { + if (!FileSelect_ApplyDiacriticToCharacter(&this->state, diacritic, this->newFileNameCharCount - 1)) { + return false; + } + } else { + return false; + } + } + return true; +} +#endif + void FileSelect_DrawNameEntry(GameState* thisx) { FileSelectState* this = (FileSelectState*)thisx; Font* font = &this->font; @@ -323,8 +573,13 @@ void FileSelect_DrawNameEntry(GameState* thisx) { this->kbdButton); } +#if OOT_NTSC + this->nameEntryVtx[40].v.ob[0] = this->nameEntryVtx[42].v.ob[0] = + this->keyboardVtx[this->charIndex * 4].v.ob[0] - 6; +#else this->nameEntryVtx[40].v.ob[0] = this->nameEntryVtx[42].v.ob[0] = this->keyboardVtx[this->charIndex * 4].v.ob[0] - D_80812544[this->charIndex] - 6; +#endif this->nameEntryVtx[41].v.ob[0] = this->nameEntryVtx[43].v.ob[0] = this->nameEntryVtx[40].v.ob[0] + 24; this->nameEntryVtx[40].v.ob[1] = this->nameEntryVtx[41].v.ob[1] = this->keyboardVtx[this->charIndex * 4].v.ob[1] + 6; @@ -399,18 +654,208 @@ void FileSelect_DrawNameEntry(GameState* thisx) { } } else { if (this->charPage <= FS_CHAR_PAGE_ENG) { +#if OOT_NTSC if (this->kbdY != 5) { // draw the character the cursor is hovering over in yellow gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 0, 255); + + if (this->charPage == FS_CHAR_PAGE_HIRA) { + gSPVertex(POLY_OPA_DISP++, &this->keyboardVtx[(this->charIndex * 4)], 4, 0); + FileSelect_DrawCharacter( + this->state.gfxCtx, font->fontBuf + gCharPageHira[this->charIndex] * FONT_CHAR_TEX_SIZE, 0); + if (CHECK_BTN_ALL(input->press.button, BTN_A)) { + if ((gCharPageHira[this->charIndex] == FILENAME_DAKUTEN) || + (gCharPageHira[this->charIndex] == FILENAME_HANDAKUTEN)) { + if (!FileSelect_ApplyDiacriticToFilename(&this->state, + gCharPageHira[this->charIndex])) { + Audio_PlaySfxGeneral(NA_SE_SY_FSEL_ERROR, &gSfxDefaultPos, 4, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, + &gSfxDefaultReverb); + } else { + Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_S, &gSfxDefaultPos, 4, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, + &gSfxDefaultReverb); + } + } else { + Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_S, &gSfxDefaultPos, 4, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, + &gSfxDefaultReverb); + this->fileNames[this->buttonIndex][this->newFileNameCharCount] = + gCharPageHira[this->charIndex]; + this->newFileNameCharCount++; + if (this->newFileNameCharCount >= 8) { + this->newFileNameCharCount = 7; + } + } + } + } else if (this->charPage == FS_CHAR_PAGE_KATA) { + gSPVertex(POLY_OPA_DISP++, &this->keyboardVtx[(this->charIndex * 4)], 4, 0); + FileSelect_DrawCharacter( + this->state.gfxCtx, font->fontBuf + gCharPageKata[this->charIndex] * FONT_CHAR_TEX_SIZE, 0); + if (CHECK_BTN_ALL(input->press.button, BTN_A)) { + if ((gCharPageHira[this->charIndex] == FILENAME_DAKUTEN) || + (gCharPageHira[this->charIndex] == FILENAME_HANDAKUTEN)) { + if (!FileSelect_ApplyDiacriticToFilename(&this->state, + gCharPageHira[this->charIndex])) { + Audio_PlaySfxGeneral(NA_SE_SY_FSEL_ERROR, &gSfxDefaultPos, 4, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, + &gSfxDefaultReverb); + } else { + Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_S, &gSfxDefaultPos, 4, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, + &gSfxDefaultReverb); + } + } else { + Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_S, &gSfxDefaultPos, 4, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, + &gSfxDefaultReverb); + this->fileNames[this->buttonIndex][this->newFileNameCharCount] = + gCharPageKata[this->charIndex]; + this->newFileNameCharCount++; + if (this->newFileNameCharCount >= 8) { + this->newFileNameCharCount = 7; + } + } + } + } else { + gSPVertex(POLY_OPA_DISP++, &this->keyboardVtx[this->charIndex * 4], 4, 0); + + FileSelect_DrawCharacter(this->state.gfxCtx, + font->fontBuf + gCharPageEng[this->charIndex] * FONT_CHAR_TEX_SIZE, 0); + + if (CHECK_BTN_ALL(input->press.button, BTN_A)) { + Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_S, &gSfxDefaultPos, 4, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, + &gSfxDefaultReverb); + this->fileNames[this->buttonIndex][this->newFileNameCharCount] = + gCharPageEng[this->charIndex]; + this->newFileNameCharCount++; + + if (this->newFileNameCharCount > 7) { + this->newFileNameCharCount = 7; + } + } + } + } else if (CHECK_BTN_ALL(input->press.button, BTN_A) && (this->charPage != this->kbdButton)) { + if (this->kbdButton == FS_KBD_BTN_HIRA) { + if (this->charPage == FS_CHAR_PAGE_KATA) { + this->charPage = FS_CHAR_PAGE_KATA_TO_HIRA; + } else { + this->charPage = FS_CHAR_PAGE_ENG_TO_HIRA; + } + Audio_PlaySfxGeneral(NA_SE_SY_WIN_OPEN, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); + } else if (this->kbdButton == FS_KBD_BTN_KATA) { + if (this->charPage == FS_CHAR_PAGE_HIRA) { + this->charPage = FS_CHAR_PAGE_HIRA_TO_KATA; + } else { + this->charPage = FS_CHAR_PAGE_ENG_TO_KATA; + } + Audio_PlaySfxGeneral(NA_SE_SY_WIN_OPEN, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); + } else if (this->kbdButton == FS_KBD_BTN_ENG) { + if (this->charPage == FS_CHAR_PAGE_HIRA) { + this->charPage = FS_CHAR_PAGE_HIRA_TO_ENG; + } else { + this->charPage = FS_CHAR_PAGE_KATA_TO_ENG; + } + Audio_PlaySfxGeneral(NA_SE_SY_WIN_OPEN, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); + } else { + if (this->kbdButton == FS_KBD_BTN_BACKSPACE) { + if ((this->newFileNameCharCount == 7) && + (this->fileNames[this->buttonIndex][7] != FILENAME_SPACE)) { + for (i = this->newFileNameCharCount; i < 7; i++) { + this->fileNames[this->buttonIndex][i] = this->fileNames[this->buttonIndex][i + 1]; + } + + this->fileNames[this->buttonIndex][i] = FILENAME_SPACE; + Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_S, &gSfxDefaultPos, 4, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, + &gSfxDefaultReverb); + } else { + this->newFileNameCharCount--; + + if (this->newFileNameCharCount < 0) { + this->newFileNameCharCount = 0; + } + + for (i = this->newFileNameCharCount; i < 7; i++) { + this->fileNames[this->buttonIndex][i] = this->fileNames[this->buttonIndex][i + 1]; + } + + this->fileNames[this->buttonIndex][i] = FILENAME_SPACE; + Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_S, &gSfxDefaultPos, 4, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, + &gSfxDefaultReverb); + } + } else if (this->kbdButton == FS_KBD_BTN_END) { + validName = false; + + for (i = 0; i < 8; i++) { + if (this->fileNames[this->buttonIndex][i] != FILENAME_SPACE) { + validName = true; + break; + } + } + + if (validName) { + Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_L, &gSfxDefaultPos, 4, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, + &gSfxDefaultReverb); + gSaveContext.fileNum = this->buttonIndex; + dayTime = ((void)0, gSaveContext.save.dayTime); + Sram_InitSave(this, &this->sramCtx); + gSaveContext.save.dayTime = dayTime; + this->configMode = CM_NAME_ENTRY_TO_MAIN; + this->nameBoxAlpha[this->buttonIndex] = this->nameAlpha[this->buttonIndex] = 200; + this->connectorAlpha[this->buttonIndex] = 255; + Rumble_Request(300.0f, 180, 20, 100); + } else { + Audio_PlaySfxGeneral(NA_SE_SY_FSEL_ERROR, &gSfxDefaultPos, 4, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, + &gSfxDefaultReverb); + } + } + } + } + + if (CHECK_BTN_ALL(input->press.button, BTN_CRIGHT)) { + Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); + this->newFileNameCharCount++; + + if (this->newFileNameCharCount > 7) { + this->newFileNameCharCount = 7; + } + } else if (CHECK_BTN_ALL(input->press.button, BTN_CLEFT)) { + Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); + this->newFileNameCharCount--; + + if (this->newFileNameCharCount < 0) { + this->newFileNameCharCount = 0; + } + } else if (CHECK_BTN_ALL(input->press.button, BTN_Z)) { + if (FileSelect_ApplyDiacriticToFilename(&this->state, FILENAME_SPACE)) { + Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_S, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); + } + } +#else + if (this->kbdY != 5) { + // draw the character the cursor is hovering over in yellow + gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 0, 255); + gSPVertex(POLY_OPA_DISP++, &this->keyboardVtx[this->charIndex * 4], 4, 0); FileSelect_DrawCharacter(this->state.gfxCtx, - font->fontBuf + D_808123F0[this->charIndex] * FONT_CHAR_TEX_SIZE, 0); + font->fontBuf + gCharPageEng[this->charIndex] * FONT_CHAR_TEX_SIZE, 0); if (CHECK_BTN_ALL(input->press.button, BTN_A)) { Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_S, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); - this->fileNames[this->buttonIndex][this->newFileNameCharCount] = D_808123F0[this->charIndex]; + this->fileNames[this->buttonIndex][this->newFileNameCharCount] = gCharPageEng[this->charIndex]; this->newFileNameCharCount++; if (this->newFileNameCharCount > 7) { @@ -491,6 +936,7 @@ void FileSelect_DrawNameEntry(GameState* thisx) { this->newFileNameCharCount = 0; } } +#endif } } } @@ -522,7 +968,7 @@ void FileSelect_StartNameEntry(GameState* thisx) { this->nameEntryBoxAlpha = 255; this->kbdX = 0; this->kbdY = 0; - this->kbdButton = 99; + this->kbdButton = FS_KBD_BTN_NONE; this->configMode = CM_NAME_ENTRY; } } @@ -537,7 +983,199 @@ void FileSelect_UpdateKeyboardCursor(GameState* thisx) { FileSelectState* this = (FileSelectState*)thisx; s16 prevKbdX; - this->kbdButton = 99; +#if OOT_NTSC + Input* input = &this->state.input[0]; + s32 pad; + + if (this->charPage <= FS_CHAR_PAGE_ENG) { + if (CHECK_BTN_ALL(input->press.button, BTN_R)) { + if (gSaveContext.language == LANGUAGE_JPN) { + if (this->charPage == FS_CHAR_PAGE_HIRA) { + this->charPage = FS_CHAR_PAGE_HIRA_TO_KATA; + Audio_PlaySfxGeneral(NA_SE_SY_WIN_OPEN, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); + } else if (this->charPage == FS_CHAR_PAGE_KATA) { + this->charPage = FS_CHAR_PAGE_KATA_TO_ENG; + Audio_PlaySfxGeneral(NA_SE_SY_WIN_OPEN, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); + } else if (this->charPage == FS_CHAR_PAGE_ENG) { + this->charPage = FS_CHAR_PAGE_ENG_TO_HIRA; + Audio_PlaySfxGeneral(NA_SE_SY_WIN_OPEN, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); + } + } + } else { + this->kbdButton = FS_KBD_BTN_NONE; + + if (this->kbdY != 5) { + if (this->stickAdjX < -30) { + Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); + this->charIndex--; + this->kbdX--; + if (this->kbdX < 0) { + this->kbdX = 12; + this->charIndex = this->kbdY * 13 + this->kbdX; + } + } else if (this->stickAdjX > 30) { + Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); + this->charIndex++; + this->kbdX++; + if (this->kbdX >= 13) { + this->kbdX = 0; + this->charIndex = this->kbdY * 13 + this->kbdX; + } + } + } else if (gSaveContext.language == LANGUAGE_JPN) { + if (this->stickAdjX < -30) { + Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); + this->kbdX--; + if (this->kbdX < 0) { + this->kbdX = 4; + } + } else if (this->stickAdjX > 30) { + Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); + this->kbdX++; + if (this->kbdX >= 5) { + this->kbdX = 0; + } + } + } else { + if (this->stickAdjX < -30) { + Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); + this->kbdX--; + if (this->kbdX < 3) { + this->kbdX = 4; + } + } else if (this->stickAdjX > 30) { + Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); + this->kbdX++; + if (this->kbdX >= 5) { + this->kbdX = 3; + } + } + } + + if (this->stickAdjY > 30) { + Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); + this->kbdY--; + if (this->kbdY < 0) { + if (gSaveContext.language == LANGUAGE_JPN) { + this->kbdY = 5; + this->charIndex += 52; + prevKbdX = this->kbdX; + if (this->kbdX < 3) { + this->kbdX = 0; + } else if (this->kbdX < 6) { + this->kbdX = 1; + } else if (this->kbdX < 8) { + this->kbdX = 2; + } else if (this->kbdX < 10) { + this->kbdX = 3; + } else if (this->kbdX < 13) { + this->kbdX = 4; + } + + this->unk_1CAD6[this->kbdX] = prevKbdX; + } else { + // don't go to bottom row + if (this->kbdX < 8) { + this->kbdY = 4; + this->charIndex = this->kbdX + 52; + } else { + this->kbdY = 5; + this->charIndex += 52; + prevKbdX = this->kbdX; + if (this->kbdX < 10) { + this->kbdX = 3; + } else if (this->kbdX < 13) { + this->kbdX = 4; + } + + this->unk_1CAD6[this->kbdX] = prevKbdX; + } + } + } else { + this->charIndex -= 13; + if (this->kbdY == 4) { + this->charIndex = 52; + this->kbdX = this->unk_1CAD6[this->kbdX]; + this->charIndex += this->kbdX; + } + } + } else if (this->stickAdjY < -30) { + Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); + this->kbdY++; + + if (this->kbdY >= 6) { + this->kbdY = 0; + this->kbdX = this->unk_1CAD6[this->kbdX]; + this->charIndex = this->kbdX; + } else { + this->charIndex += 13; + + if (this->kbdY == 5) { + if (gSaveContext.language != LANGUAGE_JPN) { + if (this->kbdX < 8) { + this->kbdY = 0; + this->charIndex = this->kbdX; + } else { + prevKbdX = this->kbdX; + + if (this->kbdX < 3) { + this->kbdX = 0; + } else if (this->kbdX < 6) { + this->kbdX = 1; + } else if (this->kbdX < 8) { + this->kbdX = 2; + } else if (this->kbdX < 10) { + this->kbdX = 3; + } else if (this->kbdX < 13) { + this->kbdX = 4; + } + + this->unk_1CAD6[this->kbdX] = prevKbdX; + } + } else { + prevKbdX = this->kbdX; + + if (this->kbdX < 3) { + this->kbdX = 0; + } else if (this->kbdX < 6) { + this->kbdX = 1; + } else if (this->kbdX < 8) { + this->kbdX = 2; + } else if (this->kbdX < 10) { + this->kbdX = 3; + } else if (this->kbdX < 13) { + this->kbdX = 4; + } + + this->unk_1CAD6[this->kbdX] = prevKbdX; + } + } + } + } + if (this->kbdY == 5) { + this->kbdButton = this->kbdX; + } + } + } else { + this->charBgAlpha += ZREG(9); + if (this->charBgAlpha >= 255) { + this->charBgAlpha = 0; + this->charPage = gNextCharPage[this->charPage]; + } + } +#else + this->kbdButton = FS_KBD_BTN_NONE; if (this->kbdY != 5) { if (this->stickAdjX < -30) { @@ -547,16 +1185,16 @@ void FileSelect_UpdateKeyboardCursor(GameState* thisx) { this->kbdX--; if (this->kbdX < 0) { this->kbdX = 12; - this->charIndex = (this->kbdY * 13) + this->kbdX; + this->charIndex = this->kbdY * 13 + this->kbdX; } } else if (this->stickAdjX > 30) { Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); this->charIndex++; this->kbdX++; - if (this->kbdX > 12) { + if (this->kbdX >= 13) { this->kbdX = 0; - this->charIndex = (this->kbdY * 13) + this->kbdX; + this->charIndex = this->kbdY * 13 + this->kbdX; } } } else { @@ -571,7 +1209,7 @@ void FileSelect_UpdateKeyboardCursor(GameState* thisx) { Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); this->kbdX++; - if (this->kbdX > 4) { + if (this->kbdX >= 5) { this->kbdX = 3; } } @@ -581,17 +1219,15 @@ void FileSelect_UpdateKeyboardCursor(GameState* thisx) { Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); this->kbdY--; - if (this->kbdY < 0) { // don't go to bottom row if (this->kbdX < 8) { this->kbdY = 4; - this->charIndex = (s32)(this->kbdX + 52); + this->charIndex = this->kbdX + 52; } else { this->kbdY = 5; this->charIndex += 52; prevKbdX = this->kbdX; - if (this->kbdX < 10) { this->kbdX = 3; } else if (this->kbdX < 13) { @@ -602,7 +1238,6 @@ void FileSelect_UpdateKeyboardCursor(GameState* thisx) { } } else { this->charIndex -= 13; - if (this->kbdY == 4) { this->charIndex = 52; this->kbdX = this->unk_1CAD6[this->kbdX]; @@ -614,7 +1249,7 @@ void FileSelect_UpdateKeyboardCursor(GameState* thisx) { &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); this->kbdY++; - if (this->kbdY > 5) { + if (this->kbdY >= 6) { this->kbdY = 0; this->kbdX = this->unk_1CAD6[this->kbdX]; this->charIndex = this->kbdX; @@ -645,10 +1280,10 @@ void FileSelect_UpdateKeyboardCursor(GameState* thisx) { } } } - if (this->kbdY == 5) { this->kbdButton = this->kbdX; } +#endif } /** @@ -748,33 +1383,50 @@ void FileSelect_UpdateOptionsMenu(GameState* thisx) { } } +#if OOT_NTSC +typedef struct { + /* 0x00 */ void* texture[2]; + /* 0x08 */ u16 width; + /* 0x0A */ u16 height; +} OptionsMenuTextureInfo; // size = 0x0C + +#define OPTIONS_MENU_TEXTURE_WIDTHS(jpn, eng, ger, fra) jpn +#define OPTIONS_MENU_TEXTURE_WIDTH(info) info.width +#define OPTIONS_MENU_TEXTURE_HEIGHT(info) info.height +#else typedef struct { /* 0x00 */ void* texture[3]; /* 0x0C */ u16 width[3]; /* 0x12 */ u16 height; } OptionsMenuTextureInfo; // size = 0x14 +#define OPTIONS_MENU_TEXTURE_WIDTHS(jpn, eng, ger, fra) \ + { eng, ger, fra } +#define OPTIONS_MENU_TEXTURE_WIDTH(info) info.width[gSaveContext.language] +#define OPTIONS_MENU_TEXTURE_HEIGHT(info) info.height +#endif + static OptionsMenuTextureInfo sOptionsMenuHeaders[] = { { LANGUAGE_ARRAY(gFileSelOptionsJPNTex, gFileSelOptionsENGTex, gFileSelOptionsGERTex, gFileSelOptionsENGTex), - { 128, 128, 128 }, + OPTIONS_MENU_TEXTURE_WIDTHS(128, 128, 128, 128), 16, }, { LANGUAGE_ARRAY(gFileSelSOUNDENGTex, gFileSelSOUNDENGTex, gFileSelSOUNDENGTex, gFileSelSOUNDFRATex), - { 64, 64, 64 }, + OPTIONS_MENU_TEXTURE_WIDTHS(64, 64, 64, 64), 16, }, { LANGUAGE_ARRAY(gFileSelLTargetingJPNTex, gFileSelLTargetingENGTex, gFileSelLTargetingGERTex, gFileSelLTargetingFRATex), - { 64, 144, 64 }, + OPTIONS_MENU_TEXTURE_WIDTHS(64, 64, 144, 64), 16, }, { LANGUAGE_ARRAY(gFileSelCheckBrightnessJPNTex, gFileSelCheckBrightnessENGTex, gFileSelCheckBrightnessGERTex, gFileSelCheckBrightnessFRATex), - { 128, 128, 128 }, + OPTIONS_MENU_TEXTURE_WIDTHS(96, 128, 128, 128), 16, }, }; @@ -782,32 +1434,32 @@ static OptionsMenuTextureInfo sOptionsMenuHeaders[] = { static OptionsMenuTextureInfo sOptionsMenuSettings[] = { { LANGUAGE_ARRAY(gFileSelStereoJPNTex, gFileSelStereoENGTex, gFileSelStereoENGTex, gFileSelStereoFRATex), - { 48, 48, 48 }, + OPTIONS_MENU_TEXTURE_WIDTHS(48, 48, 48, 48), 16, }, { LANGUAGE_ARRAY(gFileSelMonoJPNTex, gFileSelMonoENGTex, gFileSelMonoENGTex, gFileSelMonoENGTex), - { 48, 48, 48 }, + OPTIONS_MENU_TEXTURE_WIDTHS(48, 48, 48, 48), 16, }, { LANGUAGE_ARRAY(gFileSelHeadsetJPNTex, gFileSelHeadsetENGTex, gFileSelHeadsetGERTex, gFileSelHeadsetFRATex), - { 48, 48, 48 }, + OPTIONS_MENU_TEXTURE_WIDTHS(48, 48, 48, 48), 16, }, { LANGUAGE_ARRAY(gFileSelSurroundJPNTex, gFileSelSurroundENGTex, gFileSelSurroundENGTex, gFileSelSurroundENGTex), - { 48, 48, 48 }, + OPTIONS_MENU_TEXTURE_WIDTHS(48, 48, 48, 48), 16, }, { LANGUAGE_ARRAY(gFileSelSwitchJPNTex, gFileSelSwitchENGTex, gFileSelSwitchGERTex, gFileSelSwitchFRATex), - { 48, 80, 48 }, + OPTIONS_MENU_TEXTURE_WIDTHS(48, 48, 80, 48), 16, }, { LANGUAGE_ARRAY(gFileSelHoldJPNTex, gFileSelHoldENGTex, gFileSelHoldGERTex, gFileSelHoldFRATex), - { 48, 80, 48 }, + OPTIONS_MENU_TEXTURE_WIDTHS(48, 48, 80, 48), 16, }, }; @@ -917,9 +1569,9 @@ void FileSelect_DrawOptionsImpl(GameState* thisx) { for (i = 0, vtx = 0; i < 4; i++, vtx += 4) { gDPLoadTextureBlock(POLY_OPA_DISP++, sOptionsMenuHeaders[i].texture[gSaveContext.language], G_IM_FMT_IA, - G_IM_SIZ_8b, sOptionsMenuHeaders[i].width[gSaveContext.language], - sOptionsMenuHeaders[i].height, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, - G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + G_IM_SIZ_8b, OPTIONS_MENU_TEXTURE_WIDTH(sOptionsMenuHeaders[i]), + OPTIONS_MENU_TEXTURE_HEIGHT(sOptionsMenuHeaders[i]), 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSP1Quadrangle(POLY_OPA_DISP++, vtx, vtx + 2, vtx + 3, vtx + 1, 0); } @@ -952,9 +1604,9 @@ void FileSelect_DrawOptionsImpl(GameState* thisx) { //! @bug Mistakenly using sOptionsMenuHeaders instead of sOptionsMenuSettings for the height. //! This works out anyway because all heights are 16. gDPLoadTextureBlock(POLY_OPA_DISP++, sOptionsMenuSettings[i].texture[gSaveContext.language], G_IM_FMT_IA, - G_IM_SIZ_8b, sOptionsMenuSettings[i].width[gSaveContext.language], - sOptionsMenuHeaders[i].height, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, - G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + G_IM_SIZ_8b, OPTIONS_MENU_TEXTURE_WIDTH(sOptionsMenuSettings[i]), + OPTIONS_MENU_TEXTURE_HEIGHT(sOptionsMenuHeaders[i]), 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSP1Quadrangle(POLY_OPA_DISP++, vtx, vtx + 2, vtx + 3, vtx + 1, 0); } @@ -979,9 +1631,9 @@ void FileSelect_DrawOptionsImpl(GameState* thisx) { //! This is also an OOB read that happens to access the height of the first two elements in //! sOptionsMenuSettings, and since all heights are 16, it works out anyway. gDPLoadTextureBlock(POLY_OPA_DISP++, sOptionsMenuSettings[i].texture[gSaveContext.language], G_IM_FMT_IA, - G_IM_SIZ_8b, sOptionsMenuSettings[i].width[gSaveContext.language], - sOptionsMenuHeaders[i].height, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, - G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + G_IM_SIZ_8b, OPTIONS_MENU_TEXTURE_WIDTH(sOptionsMenuSettings[i]), + OPTIONS_MENU_TEXTURE_HEIGHT(sOptionsMenuHeaders[i]), 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSP1Quadrangle(POLY_OPA_DISP++, vtx, vtx + 2, vtx + 3, vtx + 1, 0); } diff --git a/src/overlays/gamestates/ovl_file_choose/z_file_nameset_data.c b/src/overlays/gamestates/ovl_file_choose/z_file_nameset_data.c index d6bc09c28..2fc9670b8 100644 --- a/src/overlays/gamestates/ovl_file_choose/z_file_nameset_data.c +++ b/src/overlays/gamestates/ovl_file_choose/z_file_nameset_data.c @@ -1,11 +1 @@ -#include "file_select.h" - #include "assets/overlays/ovl_file_choose/ovl_file_choose.c" - -s16 D_808123F0[] = { - 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, - 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, 0x0020, 0x0021, 0x0022, 0x0023, - 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, 0x0030, - 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, - 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x0000, 0x0040, 0x003F, 0x003E, -}; diff --git a/tools/disasm/gc-us/functions.txt b/tools/disasm/gc-us/functions.txt index 5300b4ed5..03b61b40f 100644 --- a/tools/disasm/gc-us/functions.txt +++ b/tools/disasm/gc-us/functions.txt @@ -3150,9 +3150,12 @@ FileSelect_EraseAnim2 = 0x808061A4; // type:func FileSelect_EraseAnim3 = 0x80806268; // type:func FileSelect_ExitEraseToMain = 0x808064D4; // type:func FileSelect_DrawCharacter = 0x80806670; // type:func +FileSelect_DrawCharacterTransition = 0x808067A8; // type:func FileSelect_SetKeyboardVtx = 0x80806988; // type:func FileSelect_SetNameEntryVtx = 0x80806C4C; // type:func FileSelect_DrawKeyboard = 0x80807930; // type:func +FileSelect_ApplyDiacriticToCharacter = 0x808081F4; // type:func +FileSelect_ApplyDiacriticToFilename = 0x808083FC; // type:func FileSelect_DrawNameEntry = 0x8080847C; // type:func FileSelect_StartNameEntry = 0x808098E0; // type:func FileSelect_UpdateKeyboardCursor = 0x80809994; // type:func From 1021c482afc9c7f6a97f50ac1bfd8493833cdc42 Mon Sep 17 00:00:00 2001 From: cadmic Date: Thu, 8 Aug 2024 00:26:48 -0700 Subject: [PATCH 10/10] gc-us OK (#2018) Match BSS order and delete disassembly data --- Makefile | 3 +- src/boot/idle.c | 2 +- src/code/fault.c | 2 +- src/code/main.c | 2 +- src/code/sys_math3d.c | 2 +- src/code/z_actor.c | 4 +- src/code/z_camera.c | 4 +- src/code/z_collision_check.c | 4 +- src/code/z_common_data.c | 2 +- src/code/z_demo.c | 2 +- src/code/z_kaleido_scope_call.c | 2 +- src/code/z_kankyo.c | 4 +- .../actors/ovl_Boss_Ganon/z_boss_ganon.c | 6 +- .../ovl_En_Wonder_Item/z_en_wonder_item.c | 2 +- src/overlays/actors/ovl_En_Xc/z_en_xc.c | 4 +- src/overlays/actors/ovl_Fishing/z_fishing.c | 2 +- .../actors/ovl_player_actor/z_player.c | 6 +- tools/disasm/gc-us/file_addresses.csv | 7 - tools/disasm/gc-us/files_code.csv | 467 - tools/disasm/gc-us/files_ovl_file_choose.csv | 22 - .../disasm/gc-us/files_ovl_kaleido_scope.csv | 34 - tools/disasm/gc-us/functions.txt | 13138 ---------------- tools/disasm/gc-us/variables.txt | 1 - 23 files changed, 27 insertions(+), 13695 deletions(-) delete mode 100644 tools/disasm/gc-us/file_addresses.csv delete mode 100644 tools/disasm/gc-us/files_code.csv delete mode 100644 tools/disasm/gc-us/files_ovl_file_choose.csv delete mode 100644 tools/disasm/gc-us/files_ovl_kaleido_scope.csv delete mode 100644 tools/disasm/gc-us/functions.txt delete mode 100644 tools/disasm/gc-us/variables.txt diff --git a/Makefile b/Makefile index fa0ede70a..266d03d4e 100644 --- a/Makefile +++ b/Makefile @@ -18,11 +18,12 @@ ORIG_COMPILER ?= 0 # If COMPILER is "gcc", compile with GCC instead of IDO. COMPILER ?= ido # Target game version. Currently the following versions are supported: +# gc-us GameCube US # gc-eu GameCube Europe/PAL # gc-eu-mq GameCube Europe/PAL Master Quest # gc-eu-mq-dbg GameCube Europe/PAL Master Quest Debug (default) # The following versions are work-in-progress and not yet matching: -# gc-us GameCube US +# (none currently) VERSION ?= gc-eu-mq-dbg # Number of threads to extract and compress with N_THREADS ?= $(shell nproc) diff --git a/src/boot/idle.c b/src/boot/idle.c index 34b19120d..f516a8b82 100644 --- a/src/boot/idle.c +++ b/src/boot/idle.c @@ -1,7 +1,7 @@ #include "global.h" #include "terminal.h" -#pragma increment_block_number "gc-eu:64 gc-eu-mq:64" +#pragma increment_block_number "gc-eu:64 gc-eu-mq:64 gc-us:64" OSThread sMainThread; STACK(sMainStack, 0x900); diff --git a/src/code/fault.c b/src/code/fault.c index 990285615..edd08f934 100644 --- a/src/code/fault.c +++ b/src/code/fault.c @@ -44,7 +44,7 @@ #include "terminal.h" #include "alloca.h" -#pragma increment_block_number "gc-eu:64 gc-eu-mq:64 gc-eu-mq-dbg:0" +#pragma increment_block_number "gc-eu:64 gc-eu-mq:64 gc-eu-mq-dbg:0 gc-us:64" void FaultDrawer_Init(void); void FaultDrawer_SetOsSyncPrintfEnabled(u32 enabled); diff --git a/src/code/main.c b/src/code/main.c index e39e8974b..f0da0bd75 100644 --- a/src/code/main.c +++ b/src/code/main.c @@ -7,7 +7,7 @@ s32 gScreenWidth = SCREEN_WIDTH; s32 gScreenHeight = SCREEN_HEIGHT; u32 gSystemHeapSize = 0; -#pragma increment_block_number "gc-eu:0 gc-eu-mq:0" +#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-us:0" PreNmiBuff* gAppNmiBufferPtr; Scheduler gScheduler; diff --git a/src/code/sys_math3d.c b/src/code/sys_math3d.c index b9e712e29..1904f90d1 100644 --- a/src/code/sys_math3d.c +++ b/src/code/sys_math3d.c @@ -5,7 +5,7 @@ #include "macros.h" #include "sys_math3d.h" -#pragma increment_block_number "gc-eu:108 gc-eu-mq:108" +#pragma increment_block_number "gc-eu:108 gc-eu-mq:108 gc-us:108" s32 Math3D_LineVsLineClosestTwoPoints(Vec3f* lineAPointA, Vec3f* lineAPointB, Vec3f* lineBPointA, Vec3f* lineBPointB, Vec3f* lineAClosestToB, Vec3f* lineBClosestToA); diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 1da1f1ce3..3703f069f 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -8,7 +8,7 @@ #include "assets/objects/gameplay_dangeon_keep/gameplay_dangeon_keep.h" #include "assets/objects/object_bdoor/object_bdoor.h" -#pragma increment_block_number "gc-eu:0 gc-eu-mq:0" +#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-us:0" static CollisionPoly* sCurCeilingPoly; static s32 sCurCeilingBgId; @@ -1905,7 +1905,7 @@ s32 func_8002F9EC(PlayState* play, Actor* actor, CollisionPoly* poly, s32 bgId, return false; } -#pragma increment_block_number "gc-eu:22 gc-eu-mq:22" +#pragma increment_block_number "gc-eu:22 gc-eu-mq:22 gc-us:22" // Local data used for Farore's Wind light (stored in BSS) LightInfo D_8015BC00; diff --git a/src/code/z_camera.c b/src/code/z_camera.c index e6edcb6e3..14127cac9 100644 --- a/src/code/z_camera.c +++ b/src/code/z_camera.c @@ -4,7 +4,7 @@ #include "terminal.h" #include "overlays/actors/ovl_En_Horse/z_en_horse.h" -#pragma increment_block_number "gc-eu:0 gc-eu-mq:0" +#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-us:0" s16 Camera_RequestSettingImpl(Camera* camera, s16 requestedSetting, s16 flags); s32 Camera_RequestModeImpl(Camera* camera, s16 requestedMode, u8 forceModeChange); @@ -3630,7 +3630,7 @@ s32 Camera_KeepOn3(Camera* camera) { return 1; } -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-us:128" s32 Camera_KeepOn4(Camera* camera) { static Vec3f D_8015BD50; diff --git a/src/code/z_collision_check.c b/src/code/z_collision_check.c index e78c78fd1..187409524 100644 --- a/src/code/z_collision_check.c +++ b/src/code/z_collision_check.c @@ -12,7 +12,7 @@ typedef s32 (*ColChkLineFunc)(PlayState*, CollisionCheckContext*, Collider*, Vec #define SAC_ENABLE (1 << 0) -#pragma increment_block_number "gc-eu:64 gc-eu-mq:64" +#pragma increment_block_number "gc-eu:64 gc-eu-mq:64 gc-us:64" #if OOT_DEBUG /** @@ -2693,7 +2693,7 @@ typedef enum { /* 2 */ MASSTYPE_NORMAL } ColChkMassType; -#pragma increment_block_number "gc-eu:252 gc-eu-mq:252" +#pragma increment_block_number "gc-eu:252 gc-eu-mq:252 gc-us:252" /** * Get mass type. Immovable colliders cannot be pushed, while heavy colliders can only be pushed by heavy and immovable diff --git a/src/code/z_common_data.c b/src/code/z_common_data.c index 0f40faddc..727aab214 100644 --- a/src/code/z_common_data.c +++ b/src/code/z_common_data.c @@ -1,6 +1,6 @@ #include "global.h" -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-us:128" ALIGNED(16) SaveContext gSaveContext; u32 D_8015FA88; diff --git a/src/code/z_demo.c b/src/code/z_demo.c index 8f7b9a886..ada81163d 100644 --- a/src/code/z_demo.c +++ b/src/code/z_demo.c @@ -120,7 +120,7 @@ u16 gCamAtSplinePointsAppliedFrame; u16 gCamEyePointAppliedFrame; u16 gCamAtPointAppliedFrame; -#pragma increment_block_number "gc-eu:0 gc-eu-mq:0" +#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-us:0" // Cam ID to return to when a scripted cutscene is finished s16 sReturnToCamId; diff --git a/src/code/z_kaleido_scope_call.c b/src/code/z_kaleido_scope_call.c index 272156f63..f34d82fca 100644 --- a/src/code/z_kaleido_scope_call.c +++ b/src/code/z_kaleido_scope_call.c @@ -1,7 +1,7 @@ #include "global.h" #include "terminal.h" -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-us:128" void (*sKaleidoScopeUpdateFunc)(PlayState* play); void (*sKaleidoScopeDrawFunc)(PlayState* play); diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c index c35f0d1dc..e7486d855 100644 --- a/src/code/z_kankyo.c +++ b/src/code/z_kankyo.c @@ -7,7 +7,7 @@ #include "assets/objects/gameplay_keep/gameplay_keep.h" #include "assets/objects/gameplay_field_keep/gameplay_field_keep.h" -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-us:128" typedef enum { /* 0x00 */ LIGHTNING_BOLT_START, @@ -212,7 +212,7 @@ s16 sLightningFlashAlpha; s16 sSunDepthTestX; s16 sSunDepthTestY; -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-us:128" LightNode* sNGameOverLightNode; LightInfo sNGameOverLightInfo; diff --git a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c index f7144781f..e4a164a5a 100644 --- a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c +++ b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c @@ -100,19 +100,19 @@ static ColliderCylinderInit sLightBallCylinderInit = { static u8 D_808E4C58[] = { 0, 12, 10, 12, 14, 16, 12, 14, 16, 12, 14, 16, 12, 14, 16, 10, 16, 14 }; static Vec3f sZeroVec = { 0.0f, 0.0f, 0.0f }; -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-us:128" static EnGanonMant* sCape; // TODO: There's probably a way to match BSS ordering with less padding by spreading the variables out and moving // data around. It would be easier if we had more options for controlling BSS ordering in debug. -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-us:128" static s32 sSeed1; static s32 sSeed2; static s32 sSeed3; -#pragma increment_block_number "gc-eu:192 gc-eu-mq:192" +#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-us:192" static BossGanon* sGanondorf; diff --git a/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c b/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c index b9fc75668..54a421af1 100644 --- a/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c +++ b/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c @@ -53,7 +53,7 @@ ActorProfile En_Wonder_Item_Profile = { /**/ NULL, }; -#pragma increment_block_number "gc-eu:0 gc-eu-mq:0" +#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-us:0" static Vec3f sTagPointsFree[9]; static Vec3f sTagPointsOrdered[9]; diff --git a/src/overlays/actors/ovl_En_Xc/z_en_xc.c b/src/overlays/actors/ovl_En_Xc/z_en_xc.c index 6518ec38b..ef5fe638d 100644 --- a/src/overlays/actors/ovl_En_Xc/z_en_xc.c +++ b/src/overlays/actors/ovl_En_Xc/z_en_xc.c @@ -14,7 +14,7 @@ #include "assets/scenes/dungeons/ice_doukutu/ice_doukutu_scene.h" #include "terminal.h" -#pragma increment_block_number "gc-eu:0 gc-eu-mq:0" +#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-us:0" #define FLAGS ACTOR_FLAG_4 @@ -1395,7 +1395,7 @@ void func_80B3F3D8(void) { Sfx_PlaySfxCentered2(NA_SE_PL_SKIP); } -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-us:128" void EnXc_PlayDiveSFX(Vec3f* src, PlayState* play) { static Vec3f D_80B42DA0; diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index 7149e3b4e..f33b6137f 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -11,7 +11,7 @@ #include "ichain.h" #include "terminal.h" -#pragma increment_block_number "gc-eu:206 gc-eu-mq:206" +#pragma increment_block_number "gc-eu:206 gc-eu-mq:206 gc-us:208" #define FLAGS ACTOR_FLAG_4 diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index d3dee8adc..2d10e9bfb 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -354,19 +354,19 @@ void Player_Action_CsAction(Player* this, PlayState* play); // .bss part 1 -#pragma increment_block_number "gc-eu:0 gc-eu-mq:0" +#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-us:0" static s32 D_80858AA0; // TODO: There's probably a way to match BSS ordering with less padding by spreading the variables out and moving // data around. It would be easier if we had more options for controlling BSS ordering in debug. -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-us:128" static s32 D_80858AA4; static Vec3f sInteractWallCheckResult; static Input* sControlInput; -#pragma increment_block_number "gc-eu:192 gc-eu-mq:192" +#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-us:192" // .data diff --git a/tools/disasm/gc-us/file_addresses.csv b/tools/disasm/gc-us/file_addresses.csv deleted file mode 100644 index d0d5f562e..000000000 --- a/tools/disasm/gc-us/file_addresses.csv +++ /dev/null @@ -1,7 +0,0 @@ -name,vrom_start,vrom_end,rom_start,rom_end,vram_start,overlay_dir -code,A86000,B8AA60,A62500,AFDAA0,80010EE0, -ovl_file_choose,B8E090,B9DFF0,AFFCF0,B08BF0,80803630,gamestates -ovl_kaleido_scope,B9DFF0,BBA770,B08BF0,B17940,808135B0,misc -ovl_player_actor,BBA770,BE0E80,B17940,B30C90,8082FDA0,actors -ovl_En_Mag,DFA080,DFC9B0,C8E1E0,C8FEA0,80A884E0,actors -ovl_Fishing,EB6810,ECA2E0,D061D0,D13750,80B44FE0,actors diff --git a/tools/disasm/gc-us/files_code.csv b/tools/disasm/gc-us/files_code.csv deleted file mode 100644 index 8e0d572b1..000000000 --- a/tools/disasm/gc-us/files_code.csv +++ /dev/null @@ -1,467 +0,0 @@ -offset,vram,.text -0,80010EE0,src/code/z_en_a_keep -AA0,80011980,src/code/z_en_item00 -2EA0,80013D80,src/code/z_eff_blure -62D0,800171B0,src/code/z_eff_shield_particle -7930,80018810,src/code/z_eff_spark -8FE0,80019EC0,src/code/z_eff_ss_dead -9790,8001A670,src/code/z_effect -9F10,8001ADF0,src/code/z_effect_soft_sprite -A9B0,8001B890,src/code/z_effect_soft_sprite_old_init -D4D0,8001E3B0,src/code/flg_set -D8F0,8001E7D0,src/code/z_DLF -DB40,8001EA20,src/code/z_actor -1A0E0,8002AFC0,src/code/z_actor_dlftbls -1A230,8002B110,src/code/z_bgcheck -23E10,80034CF0,src/code/code_800430A0 -24130,80035010,src/code/code_80043480 -244C0,800353A0,src/code/z_camera -38AF0,800499D0,src/code/z_collision_btltbls -38B50,80049A30,src/code/z_collision_check -407D0,800516B0,src/code/z_common_data -40860,80051740,src/code/z_debug -40B70,80051A50,src/code/z_debug_display -41030,80051F10,src/code/z_demo -45D10,80056BF0,src/code/code_80069420 -45DA0,80056C80,src/code/z_draw -47CA0,80058B80,src/code/z_sfx_source -47E60,80058D40,src/code/z_elf_message -48540,80059420,src/code/z_face_reaction -48590,80059470,src/code/code_8006C3A0 -48710,800595F0,src/code/z_fcurve_data -48950,80059830,src/code/z_fcurve_data_skelanime -49160,8005A040,src/code/z_horse -49E40,8005AD20,src/code/z_jpeg -4A600,8005B4E0,src/code/z_kaleido_setup -4A9D0,8005B8B0,src/code/z_kanfont -4ABE0,8005BAC0,src/code/z_kankyo -523F0,800632D0,src/code/z_lib -53590,80064470,src/code/z_lifemeter -54930,80065810,src/code/z_lights -559D0,800668B0,src/code/z_malloc -55BB0,80066A90,src/code/z_map_mark -561B0,80067090,src/code/z_prenmi_buff -56270,80067150,src/code/z_nulltask -562F0,800671D0,src/code/z_olib -569E0,800678C0,src/code/z_onepointdemo -5A980,8006B860,src/code/z_map_exp -5C520,8006D400,src/code/z_parameter -67BF0,80078AD0,src/code/z_path -67DC0,80078CA0,src/code/z_frame_advance -67E70,80078D50,src/code/z_player_lib -6B8E0,8007C7C0,src/code/z_prenmi -6BA80,8007C960,src/code/z_quake -6C8F0,8007D7D0,src/code/z_rcp -6E1B0,8007F090,src/code/z_room -6F9A0,80080880,src/code/z_sample -6FDA0,80080C80,src/code/code_80097A00 -6FF60,80080E40,src/code/z_scene -71410,800822F0,src/code/z_scene_table -77C10,80088AF0,src/code/z_skelanime -7C600,8008D4E0,src/code/z_skin -7D1A0,8008E080,src/code/z_skin_awb -7DAB0,8008E990,src/code/z_skin_matrix -7EE50,8008FD30,src/code/z_sram -80190,80091070,src/code/z_ss_sram -80360,80091240,src/code/z_rumble -805E0,800914C0,src/code/z_view -81CE0,80092BC0,src/code/z_vimode -82850,80093730,src/code/z_viscvg -829F0,800938D0,src/code/z_vismono -83210,800940F0,src/code/z_viszbuf -834A0,80094380,src/code/z_vr_box -85D70,80096C50,src/code/z_vr_box_draw -86450,80097330,src/code/z_player_call -865C0,800974A0,src/code/z_fbdemo -86FE0,80097EC0,src/code/z_fbdemo_triforce -875A0,80098480,src/code/z_fbdemo_wipe1 -87A10,800988F0,src/code/z_fbdemo_circle -880D0,80098FB0,src/code/z_fbdemo_fade -88430,80099310,src/code/shrink_window -885A0,80099480,src/code/code_800BB0A0 -88A70,80099950,src/code/z_kaleido_manager -88CA0,80099B80,src/code/z_kaleido_scope_call -88F80,80099E60,src/code/z_play -8C9E0,8009D8C0,src/code/PreRender -8EAD0,8009F9B0,src/code/TwoHeadGfxArena -8ECE0,8009FBC0,src/code/TwoHeadArena -8EEA0,8009FD80,src/code/audio_stop_all_sfx -8EEF0,8009FDD0,src/code/audio_thread_manager -8F300,800A01E0,src/code/title_setup -8F370,800A0250,src/code/game -8FAF0,800A09D0,src/code/gamealloc -8FC30,800A0B10,src/code/graph -905D0,800A14B0,src/code/gfxalloc -90630,800A1510,src/code/listalloc -90780,800A1660,src/code/main -90AE0,800A19C0,src/code/padmgr -915E0,800A24C0,src/code/sched -92260,800A3140,src/code/speed_meter -92CA0,800A3B80,src/code/sys_cfb -92DC0,800A3CA0,src/code/sys_math -93060,800A3F40,src/code/sys_math3d -98E30,800A9D10,src/code/sys_math_atan -99060,800A9F40,src/code/sys_matrix -9B460,800AC340,src/code/sys_ucode -9B4B0,800AC390,src/code/sys_rumble -9B810,800AC6F0,src/code/code_800D31A0 -9B840,800AC720,src/code/irqmgr -9BE60,800ACD40,src/code/fault -9E6B0,800AF590,src/code/fault_drawer -9F130,800B0010,src/code/kanread -9FC20,800B0B00,src/audio/lib/synthesis -A2D80,800B3C60,src/audio/lib/heap -A6150,800B7030,src/audio/lib/load -A9F40,800BAE20,src/audio/lib/thread -AB7A0,800BC680,src/audio/lib/dcache -AB820,800BC700,src/audio/lib/aisetnextbuf -AB8A0,800BC780,src/audio/lib/playback -AD820,800BE700,src/audio/lib/effects -AE2A0,800BF180,src/audio/lib/seqplayer -B18C0,800C27A0,src/audio/general -B7A50,800C8930,src/audio/sfx -B98B0,800CA790,src/audio/sequence -BB4D0,800CC3B0,src/code/gfxprint -BC240,800CD120,src/code/rcp_utils -BC2A0,800CD180,src/code/loadfragment2 -BC300,800CD1E0,src/code/relocation -BC540,800CD420,src/code/load -BC610,800CD4F0,src/code/code_800FC620 -BC950,800CD830,src/code/padutils -BCB40,800CDA20,src/code/padsetup -BCC80,800CDB60,src/code/fp_math -BD190,800CE070,src/code/fp -BD2F0,800CE1D0,src/code/system_malloc -BD4C0,800CE3A0,src/code/rand -BD680,800CE560,src/code/__osMalloc -BE430,800CF310,src/libultra/libc/sprintf -BE500,800CF3E0,src/code/printutils -BE560,800CF440,src/code/sleep -BE700,800CF5E0,src/code/jpegutils -BEC10,800CFAF0,src/code/jpegdecoder -BF200,800D00E0,src/libultra/mgu/scale -BF2B0,800D0190,src/libultra/gu/sinf -BF470,800D0350,src/libultra/gu/sins -BF4E0,800D03C0,src/libultra/io/sptask -BF7A0,800D0680,src/libultra/io/motor -BFB70,800D0A50,src/libultra/io/siacs -BFC30,800D0B10,src/libultra/io/controller -BFF10,800D0DF0,src/libultra/io/contreaddata -C00F0,800D0FD0,src/libultra/gu/perspective -C0380,800D1260,src/libultra/io/sprawdma -C0410,800D12F0,src/libultra/io/sirawdma -C04C0,800D13A0,src/libultra/io/sptaskyield -C04E0,800D13C0,src/libultra/mgu/mtxidentf -C0530,800D1410,src/libultra/gu/lookat -C0850,800D1730,src/libultra/os/stoptimer -C0940,800D1820,src/libultra/gu/sqrtf -C0950,800D1830,src/libultra/os/afterprenmi -C0970,800D1850,src/libultra/io/contquery -C0A10,800D18F0,src/libultra/gu/lookathil -C1290,800D2170,src/libultra/libc/xprintf -C1F70,800D2E50,src/libultra/libc/string -C2010,800D2EF0,src/libultra/io/sp -C2040,800D2F20,src/libultra/mgu/mtxident -C2090,800D2F70,src/libultra/gu/position -C22A0,800D3180,src/libultra/io/sptaskyielded -C2300,800D31E0,src/libultra/gu/rotate -C24D0,800D33B0,src/libultra/io/aisetfreq -C2620,800D3500,src/libultra/os/getactivequeue -C2640,800D3520,src/libultra/mgu/normalize -C26A0,800D3580,src/libultra/io/dpgetstat -C26B0,800D3590,src/libultra/io/dpsetstat -C26C0,800D35A0,src/libultra/gu/ortho -C2880,800D3760,src/libultra/gu/cosf -C29F0,800D38D0,src/libultra/gu/coss -C2A20,800D3900,src/libultra/io/visetevent -C2A80,800D3960,src/libultra/gu/us2dex -C2C00,800D3AE0,src/libultra/io/pfsselectbank -C2C80,800D3B60,src/libultra/io/contsetch -C2CE0,800D3BC0,src/libultra/io/aigetlen -C2D00,800D3BE0,src/libultra/mgu/translate -C2DD0,800D3CB0,src/libultra/io/contramwrite -C3020,800D3F00,src/libultra/io/pfsgetstatus -C3250,800D4130,src/libultra/io/contpfs -C3DD0,800D4CB0,src/libultra/io/contramread -C4000,800D4EE0,src/libultra/io/crc -C4170,800D5050,src/libultra/io/pfsisplug -C4460,800D5340,src/libultra/os/settimer -C45F0,800D54D0,src/libultra/libc/xldtob -C5100,800D5FE0,src/libultra/libc/ldiv -C5290,800D6170,src/libultra/libc/xlitob -C5530,800D6410,src/libultra/io/spgetstat -C5540,800D6420,src/libultra/io/spsetstat -C5550,800D6430,src/libultra/os/writebackdcacheall -C5580,800D6460,src/libultra/os/getcurrfaultedthread -C55A0,800D6480,src/libultra/mgu/mtxf2l -C5610,800D64F0,src/libultra/libc/llcvt -C5820,800D6700,src/libultra/io/vigetcurrframebuf -C5860,800D6740,src/libultra/io/spsetpc -C5890,800D6770,src/libultra/libc/sqrt -C58A0,800D6780,src/libultra/libc/absf -C58B0,800D6790,src/code/fmodf -C5900,800D67E0,src/code/__osMemset -C5930,800D6810,src/code/__osMemmove -C59C0,800D68A0,src/code/z_message -D1060,800E1F40,src/code/z_game_over -D15A0,800E2480,src/code/z_construct -D2960,800E3840,data/rsp.text - -offset,vram,.data -D5CC0,800E6BA0,src/code/z_en_a_keep -D5D60,800E6C40,src/code/z_en_item00 -D6000,800E6EE0,src/code/z_eff_blure -D60B0,800E6F90,src/code/z_eff_shield_particle -D6100,800E6FE0,src/code/z_effect -D6150,800E7030,src/code/z_effect_soft_sprite -D6160,800E7040,src/code/z_effect_soft_sprite_old_init -D6250,800E7130,src/code/z_effect_soft_sprite_dlftbls -D6660,800E7540,src/code/flg_set -D6820,800E7700,src/code/z_actor -D6B40,800E7A20,src/code/z_actor_dlftbls -DA630,800EB510,src/code/z_bgcheck -DA780,800EB660,src/code/z_camera -DDCD0,800EEBB0,src/code/z_collision_btltbls -DDFB0,800EEE90,src/code/z_collision_check -DE260,800EF140,src/code/z_debug -DE290,800EF170,src/code/z_debug_display -DE2E0,800EF1C0,src/code/z_demo -DE440,800EF320,src/code/z_draw -DF4C0,800F03A0,src/code/z_elf_message -DF510,800F03F0,src/code/z_face_reaction -DF950,800F0830,src/code/z_game_dlftbls -DFA70,800F0950,src/code/z_horse -DFB80,800F0A60,src/code/z_jpeg -DFBC0,800F0AA0,src/code/z_kaleido_setup -DFC10,800F0AF0,src/code/z_kankyo -E0000,800F0EE0,src/code/z_lib -E0030,800F0F10,src/code/z_lifemeter -E0150,800F1030,src/code/z_lights -E0160,800F1040,src/code/z_map_mark -E0220,800F1100,src/code/z_onepointdemo -E3B40,800F4A20,src/code/z_map_exp -E3B60,800F4A40,src/code/z_map_data -E5960,800F6840,src/code/z_parameter -E5C60,800F6B40,src/code/z_player_lib -E6340,800F7220,src/code/z_quake -E6370,800F7250,src/code/z_rcp -E7190,800F8070,src/code/z_room -E7210,800F80F0,src/code/code_80097A00 -E7590,800F8470,src/code/z_scene -E7610,800F84F0,src/code/object_table -E82B0,800F9190,src/code/z_scene_table -EA4C0,800FB3A0,src/code/z_skelanime -EA4E0,800FB3C0,src/code/z_skin_matrix -EA520,800FB400,src/code/z_sram -EA6D0,800FB5B0,src/code/z_ss_sram -EA780,800FB660,data/unk_8012ABC0.data -EA7B0,800FB690,src/code/z_view -EA7C0,800FB6A0,src/code/z_viscvg -EA850,800FB730,src/code/z_vr_box -EAB50,800FBA30,src/code/z_player_call -EAB70,800FBA50,src/code/z_fbdemo -EABF0,800FBAD0,src/code/z_fbdemo_triforce -EACC0,800FBBA0,src/code/z_fbdemo_wipe1 -EB760,800FC640,src/code/z_fbdemo_circle -ECA60,800FD940,src/code/z_fbdemo_fade -ECA90,800FD970,src/code/shrink_window -ECAA0,800FD980,src/code/z_kaleido_manager -ECAF0,800FD9D0,src/code/z_play -ECB00,800FD9E0,src/code/audio_stop_all_sfx -ECB10,800FD9F0,src/code/graph -ECB20,800FDA00,src/code/main -ECB30,800FDA10,src/code/padmgr -ECB40,800FDA20,src/code/speed_meter -ECB70,800FDA50,src/code/sys_math -ECBB0,800FDA90,src/code/sys_math_atan -ED3C0,800FE2A0,src/code/sys_matrix -ED440,800FE320,src/code/sys_ucode -ED450,800FE330,src/code/sys_rumble -ED460,800FE340,src/code/irqmgr -ED480,800FE360,src/code/fault -ED4E0,800FE3C0,src/code/fault_drawer -ED520,800FE400,src/audio/lib/data -EF930,80100810,src/audio/lib/synthesis -EF960,80100840,src/audio/lib/load -EF970,80100850,src/audio/lib/thread -EF990,80100870,src/audio/lib/aisetnextbuf -EF9A0,80100880,src/audio/lib/effects -EF9B0,80100890,src/audio/lib/seqplayer -EFA00,801008E0,src/audio/general -F1120,80102000,src/audio/sfx_params -F24F0,801033D0,src/audio/data -F2560,80103440,src/audio/session_config -F2D00,80103BE0,src/code/logseverity -F2D10,80103BF0,src/code/gfxprint -F35C0,801044A0,src/code/code_800FC620 -F35E0,801044C0,src/code/fp -F35F0,801044D0,src/code/rand -F3600,801044E0,src/code/__osMalloc -F3610,801044F0,src/libultra/gu/sins -F3E10,80104CF0,src/libultra/io/siacs -F3E20,80104D00,src/libultra/io/controller -F3E30,80104D10,src/libultra/libc/xprintf -F3E80,80104D60,src/libultra/gu/position -F3E90,80104D70,src/libultra/gu/rotate -F3EA0,80104D80,src/libultra/io/vimodefpallan1 -F3EF0,80104DD0,src/libultra/io/contpfs -F3F00,80104DE0,src/libultra/io/contramread -F3F10,80104DF0,src/libultra/libc/xlitob - -offset,vram,.rodata -F3F40,80104E20,src/code/z_en_a_keep -F3F90,80104E70,src/code/z_en_item00 -F4200,801050E0,src/code/z_eff_blure -F4230,80105110,src/code/z_eff_shield_particle -F4240,80105120,src/code/z_eff_spark -F4250,80105130,src/code/z_eff_ss_dead -F4260,80105140,src/code/z_effect_soft_sprite_old_init -F4280,80105160,src/code/flg_set -F4610,801054F0,src/code/z_actor -F4BC0,80105AA0,src/code/z_actor_dlftbls -F4C10,80105AF0,src/code/z_bgcheck -F4CB0,80105B90,src/code/code_80043480 -F4CC0,80105BA0,src/code/z_camera -F5440,80106320,src/code/z_collision_check -F5490,80106370,src/code/z_debug -F54A0,80106380,src/code/z_demo -F5980,80106860,src/code/z_draw -F5990,80106870,src/code/z_elf_message -F5AB0,80106990,src/code/z_fcurve_data -F5AC0,801069A0,src/code/z_fcurve_data_skelanime -F5AD0,801069B0,src/code/z_horse -F5AE0,801069C0,src/code/z_jpeg -F5B70,80106A50,src/code/z_kankyo -F5C20,80106B00,src/code/z_lib -F5C30,80106B10,src/code/z_lifemeter -F5C50,80106B30,src/code/z_lights -F5C60,80106B40,src/code/z_map_mark -F5CC0,80106BA0,src/code/z_olib -F5CE0,80106BC0,src/code/z_onepointdemo -F65A0,80107480,src/code/z_map_exp -F68C0,801077A0,src/code/z_parameter -F6AD0,801079B0,src/code/z_path -F6AE0,801079C0,src/code/z_player_lib -F6B40,80107A20,src/code/z_quake -F6BD0,80107AB0,src/code/z_room -F6C10,80107AF0,src/code/z_sample -F6C20,80107B00,src/code/z_scene_table -F6C60,80107B40,src/code/z_skelanime -F6C80,80107B60,src/code/z_skin -F6C90,80107B70,src/code/z_skin_matrix -F6CA0,80107B80,src/code/z_sram -F6D10,80107BF0,src/code/z_rumble -F6D20,80107C00,src/code/z_view -F6D30,80107C10,src/code/z_vr_box -F6E20,80107D00,src/code/z_fbdemo_triforce -F6E30,80107D10,src/code/z_fbdemo_wipe1 -F6E40,80107D20,src/code/z_fbdemo_circle -F6E50,80107D30,src/code/code_800BB0A0 -F6E60,80107D40,src/code/z_kaleido_manager -F6E80,80107D60,src/code/z_play -F6F40,80107E20,src/code/game -F6F60,80107E40,src/code/graph -F6FB0,80107E90,src/code/main -F6FE0,80107EC0,src/code/padmgr -F6FF0,80107ED0,src/code/sys_cfb -F7000,80107EE0,src/code/sys_math -F7010,80107EF0,src/code/sys_math3d -F70A0,80107F80,src/code/sys_math_atan -F70B0,80107F90,src/code/sys_matrix -F70E0,80107FC0,src/code/irqmgr -F7100,80107FE0,src/code/fault -F7B10,801089F0,src/code/fault_drawer -F7F40,80108E20,src/audio/lib/synthesis -F7F60,80108E40,src/audio/lib/heap -F7F90,80108E70,src/audio/lib/load -F8000,80108EE0,src/audio/lib/thread -F8130,80109010,src/audio/lib/playback -F8160,80109040,src/audio/lib/effects -F8190,80109070,src/audio/lib/seqplayer -F87D0,801096B0,src/audio/general -F8960,80109840,src/audio/sfx -F8980,80109860,src/audio/sequence -F8A00,801098E0,src/audio/session_config -F8A10,801098F0,src/code/gfxprint -F8A30,80109910,src/code/fp_math -F8A80,80109960,src/code/__osMalloc -F8D40,80109C20,src/libultra/gu/sinf -F8D90,80109C70,src/libultra/gu/perspective -F8DA0,80109C80,src/libultra/gu/lookathil -F8DB0,80109C90,src/libultra/libc/xprintf -F8EB0,80109D90,src/libultra/gu/cosf -F8F00,80109DE0,src/libultra/gu/libm_vals -F8F10,80109DF0,src/libultra/libc/xldtob -F8F70,80109E50,src/libultra/libc/llcvt - -offset,vram,.data -F8F80,80109E60,src/code/z_message -101910,801127F0,src/code/z_game_over - -offset,vram,.rodata -101920,80112800,src/code/z_message -101D40,80112C20,src/code/z_game_over -101DA0,80112C80,data/audio_tables.rodata -102940,80113820,data/rsp.rodata - -offset,vram,.bss -104A60,80115940,src/code/z_en_item00 -104A70,80115950,src/code/z_effect -108860,80119740,src/code/flg_set -108870,80119750,src/code/z_actor -1088F0,801197D0,src/code/z_actor_dlftbls -108900,801197E0,src/code/z_bgcheck -108A20,80119900,src/code/z_camera -108B00,801199E0,src/code/z_collision_check -10A260,8011B140,src/code/z_common_data -10B690,8011C570,src/code/z_debug -10B8B0,8011C790,src/code/z_debug_display -10B8C0,8011C7A0,src/code/z_demo -10B8F0,8011C7D0,src/code/z_kankyo -10B9C0,8011C8A0,src/code/z_lifemeter -10B9F0,8011C8D0,src/code/z_lights -10BB80,8011CA60,src/code/z_malloc -10BBB0,8011CA90,src/code/z_map_mark -10BBC0,8011CAA0,src/code/z_map_exp -10BBD0,8011CAB0,src/code/z_parameter -10BBF0,8011CAD0,src/code/z_player_lib -10BC10,8011CAF0,src/code/z_quake -10BCA0,8011CB80,src/code/z_skelanime -10BCB0,8011CB90,src/code/z_skin -10CBC0,8011DAA0,src/code/z_rumble -10CCD0,8011DBB0,src/code/z_vr_box_draw -10CCE0,8011DBC0,src/code/z_player_call -10CCF0,8011DBD0,src/code/db_camera -10CCF0,8011DBD0,src/code/mempak -10CCF0,8011DBD0,src/code/z_kaleido_scope_call -10CD10,8011DBF0,src/code/z_play -10CE20,8011DD00,src/code/game -10CF00,8011DDE0,src/code/graph -10CF70,8011DE50,src/code/main -110E00,80121CE0,src/code/padmgr -110E10,80121CF0,src/code/sched -110E30,80121D10,src/code/speed_meter -110EA0,80121D80,src/code/sys_cfb -110EB0,80121D90,src/code/sys_math3d -1110D0,80121FB0,src/code/sys_matrix -1110E0,80121FC0,src/code/fault -111F60,80122E40,src/code/fault_drawer -111FC0,80122EA0,src/audio/lib/load -112080,80122F60,src/audio/general -112280,80123160,src/audio/sfx -114A90,80125970,src/audio/sequence -115850,80126730,src/audio/session_config -11BD60,8012CC40,src/code/gfxprint -11BD70,8012CC50,src/code/fp_math -11BD80,8012CC60,src/code/system_malloc -11BDB0,8012CC90,src/code/rand -11BDC0,8012CCA0,src/code/__osMalloc -11BDD0,8012CCB0,src/code/jpegdecoder -11BDE0,8012CCC0,src/libultra/io/sptask -11BE20,8012CD00,src/libultra/io/motor -11BF20,8012CE00,src/libultra/io/siacs -11BF40,8012CE20,src/libultra/io/controller -11BFD0,8012CEB0,src/libultra/io/contpfs -11C0D0,8012CFB0,src/libultra/io/pfsisplug -11C110,8012CFF0,src/code/z_message -11C130,8012D010,.end diff --git a/tools/disasm/gc-us/files_ovl_file_choose.csv b/tools/disasm/gc-us/files_ovl_file_choose.csv deleted file mode 100644 index aded105dd..000000000 --- a/tools/disasm/gc-us/files_ovl_file_choose.csv +++ /dev/null @@ -1,22 +0,0 @@ -offset,vram,.text -0,80803630,src/overlays/gamestates/ovl_file_choose/z_file_copy_erase -3040,80806670,src/overlays/gamestates/ovl_file_choose/z_file_nameset -8490,8080BAC0,src/overlays/gamestates/ovl_file_choose/z_file_choose - -offset,vram,.data -EC40,80812270,src/overlays/gamestates/ovl_file_choose/z_file_nameset_data -F320,80812950,src/overlays/gamestates/ovl_file_choose/z_file_copy_erase -F360,80812990,src/overlays/gamestates/ovl_file_choose/z_file_nameset -F500,80812B30,src/overlays/gamestates/ovl_file_choose/z_file_choose - -offset,vram,.rodata -F7F0,80812E20,src/overlays/gamestates/ovl_file_choose/z_file_nameset -F800,80812E30,src/overlays/gamestates/ovl_file_choose/z_file_choose - -offset,vram,.ovl -F820,80812E50,src/overlays/gamestates/ovl_file_choose/ovl_file_choose_reloc - -offset,vram,.bss -FF60,80813590,src/overlays/gamestates/ovl_file_choose/z_file_copy_erase -FF70,808135A0,src/overlays/gamestates/ovl_file_choose/z_file_nameset -FF80,808135B0,.end diff --git a/tools/disasm/gc-us/files_ovl_kaleido_scope.csv b/tools/disasm/gc-us/files_ovl_kaleido_scope.csv deleted file mode 100644 index 27333f248..000000000 --- a/tools/disasm/gc-us/files_ovl_kaleido_scope.csv +++ /dev/null @@ -1,34 +0,0 @@ -offset,vram,.text -0,808135B0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect -2400,808159B0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_debug -43B0,80817960,src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment -5E30,808193E0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_item -7E20,8081B3D0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_map -B100,8081E6B0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_prompt -B300,8081E8B0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope -152C0,80828870,src/overlays/misc/ovl_kaleido_scope/z_lmap_mark - -offset,vram,.data -15980,80828F30,src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect -15B30,808290E0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_debug -15D00,808292B0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment -15D30,808292E0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_item -15DA0,80829350,src/overlays/misc/ovl_kaleido_scope/z_kaleido_map -15FF0,808295A0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_prompt -16000,808295B0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope -169C0,80829F70,src/overlays/misc/ovl_kaleido_scope/z_lmap_mark -16A10,80829FC0,src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data - -offset,vram,.rodata -1AB70,8082E120,src/overlays/misc/ovl_kaleido_scope/z_kaleido_debug -1AC50,8082E200,src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment -1AC60,8082E210,src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope -1AF40,8082E4F0,src/overlays/misc/ovl_kaleido_scope/z_lmap_mark -1AFF0,8082E5A0,src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data - -offset,vram,.ovl -1B070,8082E620,src/overlays/misc/ovl_kaleido_scope/ovl_kaleido_scope_reloc - -offset,vram,.bss -1C780,8082FD30,src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope -1C7F0,8082FDA0,.end diff --git a/tools/disasm/gc-us/functions.txt b/tools/disasm/gc-us/functions.txt deleted file mode 100644 index 03b61b40f..000000000 --- a/tools/disasm/gc-us/functions.txt +++ /dev/null @@ -1,13138 +0,0 @@ -entrypoint = 0x80000400; // type:func -cleararena = 0x80000460; // type:func -bootproc = 0x80000498; // type:func -Main_ThreadEntry = 0x800005A0; // type:func -Idle_ThreadEntry = 0x8000063C; // type:func -ViConfig_UpdateVi = 0x80000830; // type:func -ViConfig_UpdateBlack = 0x80000930; // type:func -DmaMgr_DmaRomToRam = 0x80000980; // type:func -DmaMgr_AudioDmaHandler = 0x80000B04; // type:func -DmaMgr_DmaFromDriveRom = 0x80000B24; // type:func -DmaMgr_FindFileName = 0x80000BC8; // type:func -DmaMgr_GetFileName = 0x80000BD8; // type:func -DmaMgr_ProcessRequest = 0x80000BEC; // type:func -DmaMgr_ThreadEntry = 0x80000D78; // type:func -DmaMgr_RequestAsync = 0x80000DF8; // type:func -DmaMgr_RequestSync = 0x80000E5C; // type:func -DmaMgr_Init = 0x80000ED8; // type:func -Yaz0_FirstDMA = 0x80000FC0; // type:func -Yaz0_NextDMA = 0x80001060; // type:func -Yaz0_DecompressImpl = 0x8000114C; // type:func -Yaz0_Decompress = 0x800012B4; // type:func -Locale_Init = 0x80001300; // type:func -Locale_ResetRegion = 0x800013AC; // type:func -osSyncPrintf = 0x800013DC; // type:func -osDriveRomInit = 0x80001420; // type:func -Mio0_Decompress = 0x80001600; // type:func -StackCheck_Init = 0x800016B0; // type:func -StackCheck_Cleanup = 0x80001788; // type:func -StackCheck_GetState = 0x800017F8; // type:func -StackCheck_CheckAll = 0x80001870; // type:func -StackCheck_Check = 0x800018C8; // type:func -LogUtils_HungupThread = 0x80001900; // type:func -LogUtils_ResetHungup = 0x80001934; // type:func -__osPiCreateAccessQueue = 0x80001960; // type:func -__osPiGetAccess = 0x800019B0; // type:func -__osPiRelAccess = 0x800019F4; // type:func -osSendMesg = 0x80001A20; // type:func -osStopThread = 0x80001B70; // type:func -osViExtendVStart = 0x80001C30; // type:func -osRecvMesg = 0x80001C40; // type:func -__createSpeedParam = 0x80001D80; // type:func -__osInitialize_common = 0x80001E1C; // type:func -__osInitialize_autodetect = 0x800020C8; // type:func -__ull_rshift = 0x800020D0; // type:func -__ull_rem = 0x800020FC; // type:func -__ull_div = 0x80002138; // type:func -__ll_lshift = 0x80002174; // type:func -__ll_rem = 0x800021A0; // type:func -__ll_div = 0x800021DC; // type:func -__ll_mul = 0x80002238; // type:func -__ull_divremi = 0x80002268; // type:func -__ll_mod = 0x800022C8; // type:func -__ll_rshift = 0x80002364; // type:func -__osExceptionPreamble = 0x80002390; // type:func -osDestroyThread = 0x80002D00; // type:func -bzero = 0x80002E10; // type:func -osCreateThread = 0x80002F10; // type:func -__osSetSR = 0x80003060; // type:func -__osGetSR = 0x80003070; // type:func -osWritebackDCache = 0x80003080; // type:func -osViGetNextFramebuffer = 0x80003100; // type:func -osCreatePiManager = 0x80003140; // type:func -__osDevMgrMain = 0x800032C0; // type:func -__osPiRawStartDma = 0x800036D0; // type:func -osVirtualToPhysical = 0x800037A0; // type:func -osViBlack = 0x80003820; // type:func -__osSiRawReadIo = 0x80003890; // type:func -osGetThreadId = 0x800038E0; // type:func -osSetIntMask = 0x80003900; // type:func -osViSetMode = 0x800039A0; // type:func -__osProbeTLB = 0x80003A00; // type:func -osGetMemSize = 0x80003AC0; // type:func -osSetEventMesg = 0x80003BE0; // type:func -osUnmapTLBAll = 0x80003CA0; // type:func -osEPiStartDma = 0x80003CF0; // type:func -osInvalICache = 0x80003D90; // type:func -osCreateMesgQueue = 0x80003E10; // type:func -osInvalDCache = 0x80003E40; // type:func -__osSiDeviceBusy = 0x80003EF0; // type:func -osJamMesg = 0x80003F20; // type:func -osSetThreadPri = 0x80004070; // type:func -osGetThreadPri = 0x80004150; // type:func -__osEPiRawReadIo = 0x80004170; // type:func -osViSwapBuffer = 0x800042D0; // type:func -__osEPiRawStartDma = 0x80004320; // type:func -bcmp = 0x80004500; // type:func -osGetTime = 0x80004620; // type:func -__osTimerServicesInit = 0x800046B0; // type:func -__osTimerInterrupt = 0x8000473C; // type:func -__osSetTimerIntr = 0x800048B4; // type:func -__osInsertTimer = 0x80004954; // type:func -osGetCount = 0x80004AE0; // type:func -__osSetGlobalIntMask = 0x80004AF0; // type:func -__osSetCompare = 0x80004B40; // type:func -bcopy = 0x80004B50; // type:func -__osResetGlobalIntMask = 0x80004E60; // type:func -__osDisableInt = 0x80004EC0; // type:func -__osRestoreInt = 0x80004F30; // type:func -__osViInit = 0x80004F50; // type:func -__osViSwapContext = 0x80005070; // type:func -osPiGetCmdQueue = 0x80005370; // type:func -osEPiReadIo = 0x800053A0; // type:func -osViSetSpecialFeatures = 0x800053F0; // type:func -osCartRomInit = 0x80005550; // type:func -__osSetFpcCsr = 0x800056B0; // type:func -__osGetFpcCsr = 0x800056C0; // type:func -osMapTLBRdb = 0x800056D0; // type:func -osYieldThread = 0x80005730; // type:func -__osGetCause = 0x80005780; // type:func -__osEPiRawWriteIo = 0x80005790; // type:func -__osSiRawWriteIo = 0x800058F0; // type:func -osCreateViManager = 0x80005940; // type:func -viMgrMain = 0x80005AC0; // type:func -__osViGetCurrentContext = 0x80005C50; // type:func -osStartThread = 0x80005C60; // type:func -osViSetYScale = 0x80005DB0; // type:func -osViSetXScale = 0x80005E00; // type:func -__osSetHWIntrRoutine = 0x80005F10; // type:func -__osGetHWIntrRoutine = 0x80005F80; // type:func -__osSetWatchLo = 0x80005FB0; // type:func -EnAObj_SetupAction = 0x80010EE0; // type:func -EnAObj_Init = 0x80010EEC; // type:func -EnAObj_Destroy = 0x8001122C; // type:func -EnAObj_WaitFinishedTalking = 0x80011288; // type:func -EnAObj_SetupWaitTalk = 0x800112B8; // type:func -EnAObj_WaitTalk = 0x800112E0; // type:func -EnAObj_SetupBlockRot = 0x80011394; // type:func -EnAObj_BlockRot = 0x800113E4; // type:func -EnAObj_SetupBoulderFragment = 0x80011504; // type:func -EnAObj_BoulderFragment = 0x8001152C; // type:func -EnAObj_SetupBlock = 0x8001164C; // type:func -EnAObj_Block = 0x8001168C; // type:func -EnAObj_Update = 0x80011774; // type:func -EnAObj_Draw = 0x80011890; // type:func -EnItem00_SetupAction = 0x80011980; // type:func -EnItem00_Init = 0x8001198C; // type:func -EnItem00_Destroy = 0x80011FF4; // type:func -func_8001DFC8 = 0x80012020; // type:func -func_8001E1C8 = 0x80012220; // type:func -func_8001E304 = 0x8001235C; // type:func -EnItem00_Collected = 0x80012620; // type:func -EnItem00_Update = 0x80012778; // type:func -EnItem00_Draw = 0x80012DF8; // type:func -EnItem00_DrawRupee = 0x80012F90; // type:func -EnItem00_DrawCollectible = 0x800130A8; // type:func -EnItem00_DrawHeartContainer = 0x800131E8; // type:func -EnItem00_DrawHeartPiece = 0x800132E0; // type:func -func_8001F404 = 0x80013378; // type:func -Item_DropCollectible = 0x800134C0; // type:func -Item_DropCollectible2 = 0x800136F8; // type:func -Item_DropCollectibleRandom = 0x800138CC; // type:func -EffectBlure_AddVertex = 0x80013D80; // type:func -EffectBlure_AddSpace = 0x800140A4; // type:func -EffectBlure_InitElements = 0x800140E8; // type:func -EffectBlure_Init1 = 0x800141A0; // type:func -EffectBlure_Init2 = 0x800142B0; // type:func -EffectBlure_Destroy = 0x800143E4; // type:func -EffectBlure_Update = 0x800143F0; // type:func -EffectBlure_UpdateFlags = 0x80014854; // type:func -EffectBlure_GetComputedValues = 0x800149C4; // type:func -EffectBlure_SetupSmooth = 0x80014ED8; // type:func -EffectBlure_DrawElemNoInterpolation = 0x80014F0C; // type:func -EffectBlure_DrawElemHermiteInterpolation = 0x800153E0; // type:func -EffectBlure_DrawSmooth = 0x80015D6C; // type:func -EffectBlure_SetupSimple = 0x8001603C; // type:func -EffectBlure_SetupSimpleAlt = 0x80016074; // type:func -EffectBlure_DrawSimpleVertices = 0x800162DC; // type:func -EffectBlure_DrawSimple = 0x800167BC; // type:func -EffectBlure_Draw = 0x80016CC8; // type:func -EffectShieldParticle_Init = 0x800171B0; // type:func -EffectShieldParticle_Destroy = 0x800173E8; // type:func -EffectShieldParticle_Update = 0x80017474; // type:func -EffectShieldParticle_GetColors = 0x800175D8; // type:func -EffectShieldParticle_Draw = 0x800182F8; // type:func -EffectSpark_Init = 0x80018810; // type:func -EffectSpark_Destroy = 0x80018BEC; // type:func -EffectSpark_Update = 0x80018BF8; // type:func -EffectSpark_Draw = 0x80018CBC; // type:func -func_80026230 = 0x80019EC0; // type:func -func_80026400 = 0x8001A068; // type:func -func_80026608 = 0x8001A24C; // type:func -func_80026690 = 0x8001A290; // type:func -func_80026860 = 0x8001A438; // type:func -func_80026A6C = 0x8001A624; // type:func -Effect_GetPlayState = 0x8001A670; // type:func -Effect_GetByIndex = 0x8001A680; // type:func -Effect_InitStatus = 0x8001A790; // type:func -Effect_InitContext = 0x8001A7A4; // type:func -Effect_Add = 0x8001A84C; // type:func -Effect_DrawAll = 0x8001A9CC; // type:func -Effect_UpdateAll = 0x8001AAC8; // type:func -Effect_Delete = 0x8001ABF4; // type:func -Effect_DeleteAll = 0x8001AD00; // type:func -EffectSs_InitInfo = 0x8001ADF0; // type:func -EffectSs_ClearAll = 0x8001AED4; // type:func -EffectSs_Delete = 0x8001AF94; // type:func -EffectSs_Reset = 0x8001AFF4; // type:func -EffectSs_FindSlot = 0x8001B088; // type:func -EffectSs_Insert = 0x8001B1C0; // type:func -EffectSs_Spawn = 0x8001B258; // type:func -EffectSs_Update = 0x8001B400; // type:func -EffectSs_UpdateAll = 0x8001B4A0; // type:func -EffectSs_Draw = 0x8001B55C; // type:func -EffectSs_DrawAll = 0x8001B5A0; // type:func -EffectSs_LerpInv = 0x8001B6EC; // type:func -EffectSs_LerpS16 = 0x8001B750; // type:func -EffectSs_LerpU8 = 0x8001B7A4; // type:func -EffectSs_DrawGEffect = 0x8001B890; // type:func -EffectSsDust_Spawn = 0x8001BACC; // type:func -func_8002829C = 0x8001BB80; // type:func -func_80028304 = 0x8001BBE8; // type:func -func_8002836C = 0x8001BC50; // type:func -func_800283D4 = 0x8001BCB8; // type:func -func_8002843C = 0x8001BD20; // type:func -func_800284A4 = 0x8001BD88; // type:func -func_80028510 = 0x8001BDF4; // type:func -func_8002857C = 0x8001BE60; // type:func -func_800285EC = 0x8001BED0; // type:func -func_8002865C = 0x8001BF40; // type:func -func_800286CC = 0x8001BFB0; // type:func -func_8002873C = 0x8001C020; // type:func -func_800287AC = 0x8001C090; // type:func -func_8002881C = 0x8001C100; // type:func -func_80028858 = 0x8001C13C; // type:func -func_80028894 = 0x8001C178; // type:func -func_80028990 = 0x8001C274; // type:func -func_80028A54 = 0x8001C338; // type:func -EffectSsKiraKira_SpawnSmallYellow = 0x8001C3FC; // type:func -EffectSsKiraKira_SpawnSmall = 0x8001C458; // type:func -EffectSsKiraKira_SpawnDispersed = 0x8001C494; // type:func -EffectSsKiraKira_SpawnFocused = 0x8001C5D0; // type:func -EffectSsBomb_Spawn = 0x8001C6A8; // type:func -EffectSsBomb2_SpawnFade = 0x8001C700; // type:func -EffectSsBomb2_SpawnLayered = 0x8001C768; // type:func -EffectSsBlast_Spawn = 0x8001C7D8; // type:func -EffectSsBlast_SpawnWhiteShockwaveSetScale = 0x8001C868; // type:func -EffectSsBlast_SpawnShockwaveSetColor = 0x8001C8BC; // type:func -EffectSsBlast_SpawnWhiteShockwave = 0x8001C908; // type:func -EffectSsGSpk_SpawnAccel = 0x8001C944; // type:func -EffectSsGSpk_SpawnNoAccel = 0x8001C9D4; // type:func -EffectSsGSpk_SpawnFuse = 0x8001CA68; // type:func -EffectSsGSpk_SpawnRandColor = 0x8001CABC; // type:func -EffectSsGSpk_SpawnSmall = 0x8001CBC0; // type:func -EffectSsDFire_Spawn = 0x8001CC04; // type:func -EffectSsDFire_SpawnFixedScale = 0x8001CC84; // type:func -EffectSsBubble_Spawn = 0x8001CCC8; // type:func -EffectSsGRipple_Spawn = 0x8001CD28; // type:func -EffectSsGSplash_Spawn = 0x8001CD80; // type:func -EffectSsGMagma_Spawn = 0x8001CE14; // type:func -EffectSsGFire_Spawn = 0x8001CE4C; // type:func -EffectSsLightning_Spawn = 0x8001CE84; // type:func -EffectSsDtBubble_SpawnColorProfile = 0x8001CEFC; // type:func -EffectSsDtBubble_SpawnCustomColor = 0x8001CF78; // type:func -EffectSsHahen_Spawn = 0x8001D008; // type:func -EffectSsHahen_SpawnBurst = 0x8001D088; // type:func -EffectSsStick_Spawn = 0x8001D1D0; // type:func -EffectSsSibuki_Spawn = 0x8001D224; // type:func -EffectSsSibuki_SpawnBurst = 0x8001D294; // type:func -EffectSsSibuki2_Spawn = 0x8001D418; // type:func -EffectSsGMagma2_Spawn = 0x8001D478; // type:func -EffectSsStone1_Spawn = 0x8001D4E8; // type:func -EffectSsHitMark_Spawn = 0x8001D53C; // type:func -EffectSsHitMark_SpawnFixedScale = 0x8001D594; // type:func -EffectSsHitMark_SpawnCustomScale = 0x8001D5B8; // type:func -EffectSsFhgFlash_SpawnLightBall = 0x8001D5E4; // type:func -EffectSsFhgFlash_SpawnShock = 0x8001D650; // type:func -EffectSsKFire_Spawn = 0x8001D6B4; // type:func -EffectSsSolderSrchBall_Spawn = 0x8001D71C; // type:func -EffectSsKakera_Spawn = 0x8001D784; // type:func -EffectSsIcePiece_Spawn = 0x8001D83C; // type:func -EffectSsIcePiece_SpawnBurst = 0x8001D8A4; // type:func -EffectSsEnIce_SpawnFlyingVec3f = 0x8001DA38; // type:func -EffectSsEnIce_SpawnFlyingVec3s = 0x8001DAD8; // type:func -EffectSsEnIce_Spawn = 0x8001DBA4; // type:func -EffectSsFireTail_Spawn = 0x8001DC2C; // type:func -EffectSsFireTail_SpawnFlame = 0x8001DCC4; // type:func -EffectSsFireTail_SpawnFlameOnPlayer = 0x8001DD88; // type:func -EffectSsEnFire_SpawnVec3f = 0x8001DDD8; // type:func -EffectSsEnFire_SpawnVec3s = 0x8001DE50; // type:func -EffectSsExtra_Spawn = 0x8001DEFC; // type:func -EffectSsFCircle_Spawn = 0x8001DF64; // type:func -EffectSsDeadDb_Spawn = 0x8001DFC0; // type:func -EffectSsDeadDd_Spawn = 0x8001E078; // type:func -EffectSsDeadDd_SpawnRandYellow = 0x8001E12C; // type:func -EffectSsDeadDs_Spawn = 0x8001E19C; // type:func -EffectSsDeadDs_SpawnStationary = 0x8001E214; // type:func -EffectSsDeadSound_Spawn = 0x8001E264; // type:func -EffectSsDeadSound_SpawnStationary = 0x8001E2FC; // type:func -EffectSsIceSmoke_Spawn = 0x8001E34C; // type:func -FlagSet_Update = 0x8001E3B0; // type:func -Overlay_LoadGameState = 0x8001E7D0; // type:func -Overlay_FreeGameState = 0x8001E8F8; // type:func -ActorShape_Init = 0x8001EA20; // type:func -ActorShadow_Draw = 0x8001EA44; // type:func -ActorShadow_DrawCircle = 0x8001EE24; // type:func -ActorShadow_DrawWhiteCircle = 0x8001EE4C; // type:func -ActorShadow_DrawHorse = 0x8001EE7C; // type:func -ActorShadow_DrawFoot = 0x8001EEA4; // type:func -ActorShadow_DrawFeet = 0x8001F0B0; // type:func -Actor_SetFeetPos = 0x8001F57C; // type:func -Actor_ProjectPos = 0x8001F5D0; // type:func -func_8002BE64 = 0x8001F634; // type:func -func_8002BE98 = 0x8001F66C; // type:func -Actor_SetNaviToActor = 0x8001F734; // type:func -func_8002C0C0 = 0x8001F898; // type:func -func_8002C124 = 0x8001F8FC; // type:func -func_8002C7BC = 0x8001FF34; // type:func -Flags_GetSwitch = 0x800202C8; // type:func -Flags_SetSwitch = 0x800202FC; // type:func -Flags_UnsetSwitch = 0x8002033C; // type:func -Flags_GetUnknown = 0x80020380; // type:func -Flags_SetUnknown = 0x800203B4; // type:func -Flags_UnsetUnknown = 0x800203F4; // type:func -Flags_GetTreasure = 0x80020438; // type:func -Flags_SetTreasure = 0x80020450; // type:func -Flags_GetClear = 0x8002046C; // type:func -Flags_SetClear = 0x80020484; // type:func -Flags_UnsetClear = 0x800204A0; // type:func -Flags_GetTempClear = 0x800204C0; // type:func -Flags_SetTempClear = 0x800204D8; // type:func -Flags_UnsetTempClear = 0x800204F4; // type:func -Flags_GetCollectible = 0x80020514; // type:func -Flags_SetCollectible = 0x80020548; // type:func -TitleCard_Init = 0x8002058C; // type:func -TitleCard_InitBossName = 0x800205AC; // type:func -TitleCard_InitPlaceName = 0x800205F0; // type:func -TitleCard_Update = 0x8002068C; // type:func -TitleCard_Draw = 0x80020748; // type:func -TitleCard_Clear = 0x80020C9C; // type:func -Actor_Kill = 0x80020CD0; // type:func -Actor_SetWorldToHome = 0x80020CF0; // type:func -Actor_SetFocus = 0x80020D20; // type:func -Actor_SetWorldRotToShape = 0x80020D64; // type:func -Actor_SetShapeRotToWorld = 0x80020D84; // type:func -Actor_SetScale = 0x80020DA4; // type:func -Actor_SetObjectDependency = 0x80020DC0; // type:func -Actor_Init = 0x80020DF8; // type:func -Actor_Destroy = 0x80020F0C; // type:func -Actor_UpdatePos = 0x80020F40; // type:func -Actor_UpdateVelocityXZGravity = 0x80020FC0; // type:func -Actor_MoveXZGravity = 0x80021038; // type:func -Actor_UpdateVelocityXYZ = 0x80021064; // type:func -Actor_MoveXYZ = 0x800210D4; // type:func -Actor_SetProjectileSpeed = 0x80021100; // type:func -Actor_UpdatePosByAnimation = 0x80021154; // type:func -Actor_WorldYawTowardActor = 0x800211D0; // type:func -Actor_FocusYawTowardActor = 0x800211FC; // type:func -Actor_WorldYawTowardPoint = 0x80021228; // type:func -Actor_WorldPitchTowardActor = 0x8002124C; // type:func -Actor_FocusPitchTowardActor = 0x80021278; // type:func -Actor_WorldPitchTowardPoint = 0x800212A4; // type:func -Actor_WorldDistXYZToActor = 0x800212C8; // type:func -Actor_WorldDistXYZToPoint = 0x800212F4; // type:func -Actor_WorldDistXZToActor = 0x80021318; // type:func -Actor_WorldDistXZToPoint = 0x80021344; // type:func -func_8002DBD0 = 0x80021368; // type:func -Actor_HeightDiff = 0x80021408; // type:func -Player_GetHeight = 0x8002141C; // type:func -func_8002DCE4 = 0x8002147C; // type:func -func_8002DD6C = 0x80021504; // type:func -func_8002DD78 = 0x80021514; // type:func -func_8002DDA8 = 0x80021548; // type:func -func_8002DDE4 = 0x80021584; // type:func -func_8002DDF4 = 0x80021598; // type:func -func_8002DE04 = 0x800215AC; // type:func -func_8002DE74 = 0x8002161C; // type:func -Actor_MountHorse = 0x80021674; // type:func -func_8002DEEC = 0x80021698; // type:func -func_8002DF18 = 0x800216C4; // type:func -Player_SetCsAction = 0x800216E4; // type:func -Player_SetCsActionWithHaltedActors = 0x80021708; // type:func -func_8002DF90 = 0x80021744; // type:func -func_8002DFA4 = 0x8002175C; // type:func -Player_IsFacingActor = 0x80021784; // type:func -Actor_ActorBIsFacingActorA = 0x800217DC; // type:func -Actor_IsFacingPlayer = 0x80021844; // type:func -Actor_ActorAIsFacingActorB = 0x80021890; // type:func -Actor_IsFacingAndNearPlayer = 0x800218F0; // type:func -Actor_ActorAIsFacingAndNearActorB = 0x80021970; // type:func -func_8002E234 = 0x80021A04; // type:func -func_8002E2AC = 0x80021A7C; // type:func -Actor_UpdateBgCheckInfo = 0x80021C88; // type:func -func_8002E830 = 0x80022008; // type:func -func_8002EABC = 0x800221E4; // type:func -func_8002EB44 = 0x8002221C; // type:func -func_8002EBCC = 0x80022254; // type:func -func_8002ED80 = 0x80022374; // type:func -Actor_GetFocus = 0x80022494; // type:func -Actor_GetWorld = 0x800224C8; // type:func -Actor_GetWorldPosShapeRot = 0x800224FC; // type:func -func_8002EFC0 = 0x80022578; // type:func -func_8002F090 = 0x80022648; // type:func -func_8002F0C8 = 0x80022684; // type:func -Actor_TalkOfferAccepted = 0x80022754; // type:func -Actor_OfferTalkExchange = 0x80022784; // type:func -Actor_OfferTalkExchangeEquiCylinder = 0x80022858; // type:func -Actor_OfferTalk = 0x8002288C; // type:func -Actor_OfferTalkNearColChkInfoCylinder = 0x800228B4; // type:func -Actor_TextboxIsClosing = 0x800228F4; // type:func -func_8002F368 = 0x80022928; // type:func -Actor_GetScreenPos = 0x80022938; // type:func -Actor_HasParent = 0x800229D4; // type:func -Actor_OfferGetItem = 0x800229F8; // type:func -Actor_OfferGetItemNearby = 0x80022B18; // type:func -Actor_OfferCarry = 0x80022B44; // type:func -Actor_HasNoParent = 0x80022B64; // type:func -func_8002F5C4 = 0x80022B88; // type:func -Actor_SetClosestSecretDistance = 0x80022BB8; // type:func -Actor_IsMounted = 0x80022BE0; // type:func -Actor_SetRideActor = 0x80022C04; // type:func -Actor_NotMounted = 0x80022C3C; // type:func -func_8002F698 = 0x80022C60; // type:func -func_8002F6D4 = 0x80022CA0; // type:func -func_8002F71C = 0x80022CE8; // type:func -func_8002F758 = 0x80022D24; // type:func -func_8002F7A0 = 0x80022D6C; // type:func -Player_PlaySfx = 0x80022DA8; // type:func -Actor_PlaySfx = 0x80022DF4; // type:func -func_8002F850 = 0x80022E20; // type:func -func_8002F8F0 = 0x80022EC4; // type:func -func_8002F91C = 0x80022EF8; // type:func -func_8002F948 = 0x80022F2C; // type:func -func_8002F974 = 0x80022F60; // type:func -func_8002F994 = 0x80022F88; // type:func -func_8002F9EC = 0x80022FE0; // type:func -func_8002FA60 = 0x80023058; // type:func -Actor_DrawFaroresWindPointer = 0x800231A8; // type:func -func_80030488 = 0x80023A20; // type:func -Actor_DisableLens = 0x80023A48; // type:func -Actor_InitContext = 0x80023A74; // type:func -Actor_UpdateAll = 0x80023BC8; // type:func -Actor_FaultPrint = 0x80024064; // type:func -Actor_Draw = 0x800240D8; // type:func -func_80030ED8 = 0x80024398; // type:func -Actor_DrawLensOverlay = 0x80024468; // type:func -Actor_DrawLensActors = 0x800245D8; // type:func -func_800314B0 = 0x8002480C; // type:func -func_800314D4 = 0x80024830; // type:func -func_800315AC = 0x80024908; // type:func -Actor_KillAllWithMissingObject = 0x80024B20; // type:func -Actor_FreezeAllEnemies = 0x80024BBC; // type:func -func_80031B14 = 0x80024C0C; // type:func -func_80031C3C = 0x80024D34; // type:func -Actor_AddToCategory = 0x80024DEC; // type:func -Actor_RemoveFromCategory = 0x80024E34; // type:func -Actor_FreeOverlay = 0x80024F00; // type:func -Actor_Spawn = 0x80024F64; // type:func -Actor_SpawnAsChild = 0x80025244; // type:func -Actor_SpawnTransitionActors = 0x800252DC; // type:func -Actor_SpawnEntry = 0x80025418; // type:func -Actor_Delete = 0x8002549C; // type:func -func_80032880 = 0x800255A0; // type:func -func_800328D4 = 0x800255F4; // type:func -func_80032AF0 = 0x80025810; // type:func -Actor_Find = 0x80025960; // type:func -Enemy_StartFinishingBlow = 0x800259A0; // type:func -FaceChange_UpdateBlinking = 0x800259D8; // type:func -FaceChange_UpdateRandomSet = 0x80025A8C; // type:func -BodyBreak_Alloc = 0x80025B58; // type:func -BodyBreak_SetInfo = 0x80025C50; // type:func -BodyBreak_SpawnParts = 0x80025D58; // type:func -Actor_SpawnFloorDustRing = 0x80025F3C; // type:func -func_80033480 = 0x8002615C; // type:func -Actor_GetCollidedExplosive = 0x8002631C; // type:func -func_80033684 = 0x80026360; // type:func -Actor_ChangeCategory = 0x80026428; // type:func -Actor_GetProjectileActor = 0x80026468; // type:func -Actor_SetTextWithPrefix = 0x80026628; // type:func -Actor_TestFloorInDirection = 0x800266A4; // type:func -Actor_IsTargeted = 0x80026770; // type:func -Actor_OtherIsTargeted = 0x800267A4; // type:func -func_80033AEC = 0x800267D8; // type:func -func_80033C30 = 0x80026924; // type:func -Actor_RequestQuake = 0x80026A74; // type:func -Actor_RequestQuakeWithSpeed = 0x80026ADC; // type:func -Actor_RequestQuakeAndRumble = 0x80026B4C; // type:func -Rand_ZeroFloat = 0x80026BBC; // type:func -Rand_CenteredFloat = 0x80026BE8; // type:func -Actor_DrawDoorLock = 0x80026C20; // type:func -func_8003424C = 0x80026EC4; // type:func -Actor_SetColorFilter = 0x80026EE4; // type:func -func_800342EC = 0x80026F68; // type:func -func_8003435C = 0x80026FDC; // type:func -Npc_UpdateTalking = 0x80027050; // type:func -Npc_TrackPointWithLimits = 0x80027140; // type:func -Npc_GetTrackingPresetMaxPlayerYaw = 0x80027474; // type:func -Npc_UpdateAutoTurn = 0x800274A0; // type:func -Npc_TrackPoint = 0x800276A8; // type:func -func_80034B28 = 0x800277C0; // type:func -func_80034B54 = 0x800277E4; // type:func -func_80034BA0 = 0x80027824; // type:func -func_80034CC4 = 0x8002791C; // type:func -func_80034DD4 = 0x80027A00; // type:func -Animation_ChangeByInfo = 0x80027AF0; // type:func -func_80034F54 = 0x80027B88; // type:func -Actor_Noop = 0x80027D4C; // type:func -func_80035124 = 0x80027D5C; // type:func -Gfx_DrawDListOpa = 0x80027EA0; // type:func -Gfx_DrawDListXlu = 0x80027F24; // type:func -func_800353E8 = 0x80027FA8; // type:func -Actor_FindNearby = 0x80027FB8; // type:func -func_800354B4 = 0x8002807C; // type:func -func_8003555C = 0x80028124; // type:func -func_800355B8 = 0x80028180; // type:func -func_800355E4 = 0x800281AC; // type:func -Actor_ApplyDamage = 0x800281F0; // type:func -Actor_SetDropFlag = 0x8002821C; // type:func -Actor_SetDropFlagJntSph = 0x80028308; // type:func -func_80035844 = 0x80028410; // type:func -func_800358DC = 0x800284A4; // type:func -func_800359B8 = 0x80028580; // type:func -func_80035B18 = 0x800286E4; // type:func -Flags_GetEventChkInf = 0x80028714; // type:func -Flags_SetEventChkInf = 0x80028740; // type:func -Flags_GetInfTable = 0x80028774; // type:func -Flags_SetInfTable = 0x800287A0; // type:func -func_80035BFC = 0x800287D4; // type:func -func_80036E50 = 0x80029A28; // type:func -func_800374E0 = 0x8002A0B8; // type:func -func_80037C30 = 0x8002A80C; // type:func -func_80037C5C = 0x8002A83C; // type:func -func_80037C94 = 0x8002A878; // type:func -func_80037CB8 = 0x8002A89C; // type:func -func_80037D98 = 0x8002A980; // type:func -Actor_TrackNone = 0x8002AB18; // type:func -Actor_TrackPoint = 0x8002ABB4; // type:func -Actor_TrackPlayerSetFocusHeight = 0x8002AD48; // type:func -Actor_TrackPlayer = 0x8002AE84; // type:func -ActorOverlayTable_LogPrint = 0x8002AFC0; // type:func -ActorOverlayTable_FaultPrint = 0x8002AFC8; // type:func -ActorOverlayTable_Init = 0x8002B0A0; // type:func -ActorOverlayTable_Cleanup = 0x8002B0E0; // type:func -SSNode_SetValue = 0x8002B110; // type:func -SSList_SetNull = 0x8002B12C; // type:func -SSNodeList_SetSSListHead = 0x8002B13C; // type:func -DynaSSNodeList_SetSSListHead = 0x8002B194; // type:func -DynaSSNodeList_Initialize = 0x8002B1EC; // type:func -DynaSSNodeList_Alloc = 0x8002B200; // type:func -DynaSSNodeList_ResetCount = 0x8002B250; // type:func -DynaSSNodeList_GetNextNodeIdx = 0x8002B25C; // type:func -BgCheck_Vec3sToVec3f = 0x8002B28C; // type:func -BgCheck_Vec3fToVec3s = 0x8002B2D0; // type:func -CollisionPoly_GetMinY = 0x8002B314; // type:func -CollisionPoly_GetNormalF = 0x8002B3C0; // type:func -func_80038A28 = 0x8002B418; // type:func -CollisionPoly_GetPointDistanceFromPlane = 0x8002B56C; // type:func -CollisionPoly_GetVertices = 0x8002B5D4; // type:func -CollisionPoly_GetVerticesByBgId = 0x8002B674; // type:func -CollisionPoly_CheckYIntersectApprox1 = 0x8002B6F4; // type:func -CollisionPoly_CheckYIntersect = 0x8002B828; // type:func -CollisionPoly_CheckYIntersectApprox2 = 0x8002B8D4; // type:func -CollisionPoly_CheckXIntersectApprox = 0x8002B914; // type:func -CollisionPoly_CheckZIntersectApprox = 0x8002B9B8; // type:func -CollisionPoly_LineVsPoly = 0x8002BA5C; // type:func -CollisionPoly_SphVsPoly = 0x8002BD3C; // type:func -StaticLookup_AddPolyToSSList = 0x8002BE0C; // type:func -StaticLookup_AddPoly = 0x8002C02C; // type:func -BgCheck_RaycastDownStaticList = 0x8002C0C0; // type:func -BgCheck_RaycastDownStatic = 0x8002C2FC; // type:func -BgCheck_ComputeWallDisplacement = 0x8002C414; // type:func -BgCheck_SphVsStaticWall = 0x8002C4C4; // type:func -BgCheck_CheckStaticCeiling = 0x8002CD58; // type:func -BgCheck_CheckLineAgainstSSList = 0x8002CF30; // type:func -BgCheck_CheckLineInSubdivision = 0x8002D154; // type:func -BgCheck_SphVsFirstStaticPolyList = 0x8002D2E0; // type:func -BgCheck_SphVsFirstStaticPoly = 0x8002D4B0; // type:func -BgCheck_GetNearestStaticLookup = 0x8002D5E8; // type:func -BgCheck_GetStaticLookup = 0x8002D69C; // type:func -BgCheck_GetStaticLookupIndicesFromPos = 0x8002D768; // type:func -BgCheck_GetSubdivisionMinBounds = 0x8002D848; // type:func -BgCheck_GetSubdivisionMaxBounds = 0x8002D9EC; // type:func -BgCheck_GetPolySubdivisionBounds = 0x8002DBB8; // type:func -BgCheck_PolyIntersectsSubdivision = 0x8002DD68; // type:func -BgCheck_InitializeStaticLookup = 0x8002E4BC; // type:func -BgCheck_IsSpotScene = 0x8002E8BC; // type:func -BgCheck_TryGetCustomMemsize = 0x8002E900; // type:func -BgCheck_SetSubdivisionDimension = 0x8002E998; // type:func -BgCheck_Allocate = 0x8002EA20; // type:func -BgCheck_GetCollisionHeader = 0x8002EE04; // type:func -BgCheck_PosInStaticBoundingBox = 0x8002EE6C; // type:func -BgCheck_RaycastDownImpl = 0x8002EF28; // type:func -BgCheck_CameraRaycastDown1 = 0x8002F0F8; // type:func -BgCheck_EntityRaycastDown1 = 0x8002F154; // type:func -BgCheck_EntityRaycastDown2 = 0x8002F1B0; // type:func -BgCheck_EntityRaycastDown3 = 0x8002F204; // type:func -BgCheck_EntityRaycastDown4 = 0x8002F268; // type:func -BgCheck_EntityRaycastDown5 = 0x8002F2D0; // type:func -BgCheck_EntityRaycastDown6 = 0x8002F328; // type:func -BgCheck_EntityRaycastDown7 = 0x8002F38C; // type:func -BgCheck_AnyRaycastDown1 = 0x8002F3F4; // type:func -BgCheck_AnyRaycastDown2 = 0x8002F4A8; // type:func -BgCheck_CameraRaycastDown2 = 0x8002F560; // type:func -BgCheck_EntityRaycastDownWalls = 0x8002F5C4; // type:func -BgCheck_EntityRaycastDown9 = 0x8002F62C; // type:func -BgCheck_CheckWallImpl = 0x8002F690; // type:func -BgCheck_EntitySphVsWall1 = 0x8002FCCC; // type:func -BgCheck_EntitySphVsWall2 = 0x8002FD30; // type:func -BgCheck_EntitySphVsWall3 = 0x8002FD94; // type:func -BgCheck_EntitySphVsWall4 = 0x8002FDFC; // type:func -BgCheck_CheckCeilingImpl = 0x8002FE68; // type:func -BgCheck_AnyCheckCeiling = 0x8002FF88; // type:func -BgCheck_EntityCheckCeiling = 0x8002FFD4; // type:func -BgCheck_CheckLineImpl = 0x80030024; // type:func -BgCheck_GetBccFlags = 0x80030504; // type:func -BgCheck_CameraLineTest1 = 0x8003054C; // type:func -BgCheck_CameraLineTest2 = 0x800305D8; // type:func -BgCheck_EntityLineTest1 = 0x80030664; // type:func -BgCheck_EntityLineTest2 = 0x800306F0; // type:func -BgCheck_EntityLineTest3 = 0x80030780; // type:func -BgCheck_ProjectileLineTest = 0x8003080C; // type:func -BgCheck_AnyLineTest1 = 0x80030898; // type:func -BgCheck_AnyLineTest2 = 0x800308DC; // type:func -BgCheck_AnyLineTest3 = 0x80030968; // type:func -BgCheck_SphVsFirstPolyImpl = 0x800309F4; // type:func -BgCheck_SphVsFirstPoly = 0x80030AB8; // type:func -BgCheck_SphVsFirstWall = 0x80030AFC; // type:func -SSNodeList_Initialize = 0x80030B44; // type:func -SSNodeList_Alloc = 0x80030B5C; // type:func -SSNodeList_GetNextNode = 0x80030BCC; // type:func -SSNodeList_GetNextNodeIdx = 0x80030C08; // type:func -ScaleRotPos_Initialize = 0x80030C1C; // type:func -ScaleRotPos_SetValue = 0x80030C5C; // type:func -ScaleRotPos_Equals = 0x80030CAC; // type:func -DynaLookup_ResetLists = 0x80030D80; // type:func -DynaLookup_Reset = 0x80030DC0; // type:func -DynaLookup_ResetVtxStartIndex = 0x80030DE0; // type:func -BgActor_Initialize = 0x80030DEC; // type:func -BgActor_SetActor = 0x80030E4C; // type:func -BgActor_IsTransformUnchanged = 0x80030F04; // type:func -DynaPoly_NullPolyList = 0x80030F2C; // type:func -DynaPoly_AllocPolyList = 0x80030F38; // type:func -DynaPoly_NullVtxList = 0x80030F74; // type:func -DynaPoly_AllocVtxList = 0x80030F80; // type:func -DynaPoly_SetBgActorPrevTransform = 0x80030FC8; // type:func -DynaPoly_IsBgIdBgActor = 0x80031014; // type:func -DynaPoly_Init = 0x80031034; // type:func -DynaPoly_Alloc = 0x80031080; // type:func -DynaPoly_SetBgActor = 0x80031154; // type:func -DynaPoly_GetActor = 0x80031214; // type:func -DynaPoly_DisableCollision = 0x80031288; // type:func -DynaPoly_EnableCollision = 0x800312E0; // type:func -DynaPoly_DisableCeilingCollision = 0x80031338; // type:func -DynaPoly_EnableCeilingCollision = 0x80031390; // type:func -DynaPoly_DeleteBgActor = 0x800313E8; // type:func -DynaPoly_InvalidateLookup = 0x80031470; // type:func -DynaPoly_AddBgActorToLookup = 0x80031488; // type:func -DynaPoly_UnsetAllInteractFlags = 0x80031DD4; // type:func -DynaPoly_UpdateContext = 0x80031E6C; // type:func -DynaPoly_UpdateBgActorTransforms = 0x80031FD8; // type:func -BgCheck_RaycastDownDynaList = 0x80032068; // type:func -BgCheck_RaycastDownDyna = 0x80032250; // type:func -BgCheck_SphVsDynaWallInBgActor = 0x800326F8; // type:func -BgCheck_SphVsDynaWall = 0x80032DBC; // type:func -BgCheck_CheckDynaCeilingList = 0x80032FF8; // type:func -BgCheck_CheckDynaCeiling = 0x80033254; // type:func -BgCheck_CheckLineAgainstBgActorSSList = 0x800333B8; // type:func -BgCheck_CheckLineAgainstBgActor = 0x8003353C; // type:func -BgCheck_CheckLineAgainstDyna = 0x80033658; // type:func -BgCheck_SphVsFirstDynaPolyList = 0x80033810; // type:func -BgCheck_SphVsFirstDynaPolyInBgActor = 0x80033928; // type:func -BgCheck_SphVsFirstDynaPoly = 0x80033A68; // type:func -CollisionHeader_SegmentedToVirtual = 0x80033BC0; // type:func -CollisionHeader_GetVirtual = 0x80033CA4; // type:func -func_800418D0 = 0x80033CF8; // type:func -BgCheck_ResetPolyCheckTbl = 0x80033DA0; // type:func -SurfaceType_GetData = 0x80033DD8; // type:func -SurfaceType_GetBgCamIndex = 0x80033E50; // type:func -BgCheck_GetBgCamSettingImpl = 0x80033E74; // type:func -BgCheck_GetBgCamSetting = 0x80033EBC; // type:func -BgCheck_GetBgCamCountImpl = 0x80033F50; // type:func -BgCheck_GetBgCamCount = 0x80033FAC; // type:func -BgCheck_GetBgCamFuncDataImpl = 0x80034040; // type:func -BgCheck_GetBgCamFuncData = 0x800340C8; // type:func -SurfaceType_GetExitIndex = 0x8003415C; // type:func -SurfaceType_GetFloorType = 0x80034184; // type:func -func_80041D70 = 0x800341AC; // type:func -SurfaceType_GetWallType = 0x800341D4; // type:func -SurfaceType_GetWallFlags = 0x800341FC; // type:func -SurfaceType_CheckWallFlag0 = 0x8003422C; // type:func -SurfaceType_CheckWallFlag1 = 0x80034260; // type:func -SurfaceType_CheckWallFlag2 = 0x80034294; // type:func -SurfaceType_GetFloorProperty2 = 0x800342C8; // type:func -SurfaceType_GetFloorProperty = 0x800342F0; // type:func -SurfaceType_IsSoft = 0x80034318; // type:func -SurfaceType_IsHorseBlocked = 0x80034340; // type:func -SurfaceType_GetMaterial = 0x80034368; // type:func -SurfaceType_GetSfxOffset = 0x8003438C; // type:func -SurfaceType_GetFloorEffect = 0x800343D4; // type:func -SurfaceType_GetLightSetting = 0x800343FC; // type:func -SurfaceType_GetEcho = 0x80034424; // type:func -SurfaceType_CanHookshot = 0x8003444C; // type:func -SurfaceType_IsIgnoredByEntities = 0x80034474; // type:func -SurfaceType_IsIgnoredByProjectiles = 0x800344B0; // type:func -SurfaceType_IsFloorConveyor = 0x800344EC; // type:func -SurfaceType_GetConveyorSpeed = 0x80034528; // type:func -SurfaceType_GetConveyorDirection = 0x80034550; // type:func -func_80042108 = 0x80034578; // type:func -WaterBox_GetSurface1 = 0x800345AC; // type:func -WaterBox_GetSurfaceImpl = 0x800346B8; // type:func -WaterBox_GetSurface2 = 0x80034810; // type:func -WaterBox_GetBgCamIndex = 0x800349AC; // type:func -WaterBox_GetBgCamSetting = 0x800349C0; // type:func -WaterBox_GetLightIndex = 0x80034A18; // type:func -func_800425B0 = 0x80034A30; // type:func -func_80042708 = 0x80034B88; // type:func -func_800427B4 = 0x80034C38; // type:func -DynaPolyActor_UpdateCarriedActorPos = 0x80034CF0; // type:func -DynaPolyActor_UpdateCarriedActorRotY = 0x80034E2C; // type:func -func_80043334 = 0x80034EC0; // type:func -DynaPolyActor_TransformCarriedActor = 0x80034F30; // type:func -DynaPolyActor_Init = 0x80035010; // type:func -DynaPolyActor_UnsetAllInteractFlags = 0x80035034; // type:func -DynaPolyActor_SetActorOnTop = 0x80035040; // type:func -DynaPolyActor_SetPlayerOnTop = 0x80035054; // type:func -DynaPoly_SetPlayerOnTop = 0x80035068; // type:func -DynaPolyActor_SetPlayerAbove = 0x80035098; // type:func -DynaPoly_SetPlayerAbove = 0x800350AC; // type:func -func_80043538 = 0x800350DC; // type:func -DynaPolyActor_IsActorOnTop = 0x800350F0; // type:func -DynaPolyActor_IsPlayerOnTop = 0x80035114; // type:func -DynaPolyActor_IsPlayerAbove = 0x80035138; // type:func -func_800435B4 = 0x8003515C; // type:func -func_800435D8 = 0x80035180; // type:func -Camera_InterpolateCurve = 0x800353A0; // type:func -Camera_LERPCeilF = 0x8003544C; // type:func -Camera_LERPFloorF = 0x80035490; // type:func -Camera_LERPCeilS = 0x800354D4; // type:func -Camera_LERPFloorS = 0x80035568; // type:func -Camera_LERPCeilVec3f = 0x800355FC; // type:func -func_80043ABC = 0x80035680; // type:func -func_80043B60 = 0x800356C0; // type:func -Camera_Vec3sToVec3f = 0x800356F0; // type:func -Camera_AddVecGeoToVec3f = 0x80035758; // type:func -Camera_Vec3fTranslateByUnitVector = 0x800357D8; // type:func -Camera_BGCheckInfo = 0x80035844; // type:func -Camera_BGCheck = 0x80035A6C; // type:func -func_80043F94 = 0x80035AC8; // type:func -func_80044340 = 0x80035E80; // type:func -Camera_CheckOOB = 0x80035EDC; // type:func -Camera_GetFloorYNorm = 0x80035F78; // type:func -Camera_GetFloorY = 0x8003605C; // type:func -Camera_GetFloorYLayer = 0x800360B8; // type:func -Camera_GetBgCamSetting = 0x8003627C; // type:func -Camera_GetBgCamFuncData = 0x800362B0; // type:func -Camera_GetBgCamIndex = 0x800362E0; // type:func -Camera_GetBgCamFuncDataUnderPlayer = 0x80036360; // type:func -Camera_GetWaterBoxBgCamIndex = 0x80036410; // type:func -Camera_GetWaterSurface = 0x800364F0; // type:func -Camera_XZAngle = 0x800365B8; // type:func -Camera_GetPitchAdjFromFloorHeightDiffs = 0x80036620; // type:func -Camera_CalcUpFromPitchYawRoll = 0x8003694C; // type:func -Camera_ClampLERPScale = 0x80036B88; // type:func -Camera_CopyDataToRegs = 0x80036BE0; // type:func -Camera_UpdateInterface = 0x80036BF0; // type:func -Camera_BGCheckCorner = 0x80036CFC; // type:func -func_80045508 = 0x80036D64; // type:func -Camera_CalcSlopeYAdj = 0x80036F74; // type:func -Camera_CalcAtDefault = 0x80037008; // type:func -func_800458D4 = 0x80037120; // type:func -func_80045B08 = 0x800372D8; // type:func -Camera_CalcAtForParallel = 0x80037438; // type:func -Camera_CalcAtForLockOn = 0x8003779C; // type:func -Camera_CalcAtForHorse = 0x80037C54; // type:func -Camera_LERPClampDist = 0x80037E10; // type:func -Camera_ClampDist = 0x80037EC8; // type:func -Camera_CalcDefaultPitch = 0x80037FDC; // type:func -Camera_CalcDefaultYaw = 0x8003813C; // type:func -func_80046E20 = 0x80038290; // type:func -Camera_Noop = 0x800387B4; // type:func -Camera_Normal1 = 0x800387C4; // type:func -Camera_Normal2 = 0x8003921C; // type:func -Camera_Normal3 = 0x800399AC; // type:func -Camera_Normal4 = 0x8003A054; // type:func -Camera_Normal0 = 0x8003A074; // type:func -Camera_Parallel1 = 0x8003A094; // type:func -Camera_Parallel2 = 0x8003A920; // type:func -Camera_Parallel3 = 0x8003A940; // type:func -Camera_Parallel4 = 0x8003A9A4; // type:func -Camera_Parallel0 = 0x8003A9C4; // type:func -Camera_Jump1 = 0x8003A9E4; // type:func -Camera_Jump2 = 0x8003B024; // type:func -Camera_Jump3 = 0x8003B910; // type:func -Camera_Jump4 = 0x8003C07C; // type:func -Camera_Jump0 = 0x8003C09C; // type:func -Camera_Battle1 = 0x8003C0BC; // type:func -Camera_Battle2 = 0x8003CDF8; // type:func -Camera_Battle3 = 0x8003CE18; // type:func -Camera_Battle4 = 0x8003CE38; // type:func -Camera_Battle0 = 0x8003D190; // type:func -Camera_KeepOn1 = 0x8003D1B0; // type:func -Camera_KeepOn2 = 0x8003DF00; // type:func -Camera_KeepOn3 = 0x8003DF20; // type:func -Camera_KeepOn4 = 0x8003E918; // type:func -Camera_KeepOn0 = 0x8003F730; // type:func -Camera_Fixed1 = 0x8003F9D0; // type:func -Camera_Fixed2 = 0x8003FCBC; // type:func -Camera_Fixed3 = 0x80040070; // type:func -Camera_Fixed4 = 0x80040270; // type:func -Camera_Fixed0 = 0x800405FC; // type:func -Camera_Subj1 = 0x8004061C; // type:func -Camera_Subj2 = 0x8004063C; // type:func -Camera_Subj3 = 0x8004065C; // type:func -Camera_Subj4 = 0x80040C60; // type:func -Camera_Subj0 = 0x80041294; // type:func -Camera_Data0 = 0x800412B4; // type:func -Camera_Data1 = 0x800412D4; // type:func -Camera_Data2 = 0x800412F4; // type:func -Camera_Data3 = 0x80041314; // type:func -Camera_Data4 = 0x80041334; // type:func -Camera_Unique1 = 0x80041620; // type:func -Camera_Unique2 = 0x80041AA4; // type:func -Camera_Unique3 = 0x80041E5C; // type:func -Camera_Unique0 = 0x8004230C; // type:func -Camera_Unique4 = 0x80042828; // type:func -Camera_Unique5 = 0x80042848; // type:func -Camera_Unique6 = 0x80042868; // type:func -Camera_Unique7 = 0x80042998; // type:func -Camera_Unique8 = 0x80042B9C; // type:func -Camera_Unique9 = 0x80042BBC; // type:func -Camera_Vec3fCopy = 0x80044018; // type:func -Camera_RotateAroundPoint = 0x80044038; // type:func -Camera_Demo1 = 0x80044094; // type:func -Camera_Demo2 = 0x8004426C; // type:func -Camera_Demo3 = 0x8004428C; // type:func -Camera_Demo4 = 0x80044D28; // type:func -Camera_Demo5 = 0x80044D48; // type:func -Camera_Demo6 = 0x80045720; // type:func -Camera_Demo7 = 0x800459C4; // type:func -Camera_Demo8 = 0x800459F8; // type:func -Camera_Demo9 = 0x80045A18; // type:func -Camera_Demo0 = 0x80045E38; // type:func -Camera_Special0 = 0x80045E58; // type:func -Camera_Special1 = 0x80045FA0; // type:func -Camera_Special2 = 0x80045FC0; // type:func -Camera_Special3 = 0x80045FE0; // type:func -Camera_Special4 = 0x80046000; // type:func -Camera_Special5 = 0x800461A4; // type:func -Camera_Special7 = 0x80046548; // type:func -Camera_Special6 = 0x80046894; // type:func -Camera_Special8 = 0x80046D04; // type:func -Camera_Special9 = 0x80046D24; // type:func -Camera_Create = 0x8004740C; // type:func -Camera_Destroy = 0x8004745C; // type:func -Camera_Init = 0x80047484; // type:func -func_80057FC4 = 0x800476A4; // type:func -Camera_Stub80058140 = 0x800477F8; // type:func -Camera_InitDataUsingPlayer = 0x80047804; // type:func -Camera_ChangeStatus = 0x80047A00; // type:func -Camera_UpdateWater = 0x80047A1C; // type:func -Camera_UpdateHotRoom = 0x80047E38; // type:func -Camera_UpdateDistortion = 0x80047E78; // type:func -Camera_Update = 0x800481D8; // type:func -Camera_Finish = 0x80048A08; // type:func -Camera_SetNewModeStateFlags = 0x80048B74; // type:func -Camera_RequestModeImpl = 0x80048B98; // type:func -Camera_RequestMode = 0x80048EFC; // type:func -Camera_CheckValidMode = 0x80048F28; // type:func -Camera_RequestSettingImpl = 0x80048F94; // type:func -Camera_RequestSetting = 0x80049188; // type:func -Camera_RequestBgCam = 0x800491B4; // type:func -Camera_GetInputDir = 0x80049288; // type:func -Camera_GetInputDirPitch = 0x800492AC; // type:func -Camera_GetInputDirYaw = 0x800492D4; // type:func -Camera_GetCamDir = 0x800492FC; // type:func -Camera_GetCamDirPitch = 0x80049320; // type:func -Camera_GetCamDirYaw = 0x80049348; // type:func -Camera_RequestQuake = 0x80049370; // type:func -Camera_SetViewParam = 0x800493E4; // type:func -Camera_UnsetViewFlag = 0x80049578; // type:func -Camera_OverwriteStateFlags = 0x800495A0; // type:func -Camera_ResetAnim = 0x800495BC; // type:func -Camera_SetCSParams = 0x800495CC; // type:func -Camera_SetStateFlag = 0x80049660; // type:func -Camera_UnsetStateFlag = 0x80049684; // type:func -Camera_ChangeDoorCam = 0x800496AC; // type:func -Camera_Copy = 0x800497AC; // type:func -Camera_IsDebugCamEnabled = 0x800498F4; // type:func -Camera_GetQuakeOffset = 0x80049900; // type:func -Camera_SetCameraData = 0x80049924; // type:func -func_8005B198 = 0x80049970; // type:func -Camera_SetFinishedFlag = 0x80049980; // type:func -DamageTable_Get = 0x800499D0; // type:func -DamageTable_Clear = 0x800499FC; // type:func -Collider_InitBase = 0x80049A30; // type:func -Collider_DestroyBase = 0x80049A78; // type:func -Collider_SetBaseToActor = 0x80049A8C; // type:func -Collider_SetBaseType1 = 0x80049ACC; // type:func -Collider_SetBase = 0x80049B10; // type:func -Collider_ResetATBase = 0x80049B54; // type:func -Collider_ResetACBase = 0x80049B70; // type:func -Collider_ResetOCBase = 0x80049B8C; // type:func -Collider_InitElementDamageInfoAT = 0x80049BB4; // type:func -Collider_DestroyElementDamageInfoAT = 0x80049BDC; // type:func -Collider_SetElementDamageInfoAT = 0x80049BF0; // type:func -Collider_ResetATElement_Unk = 0x80049C18; // type:func -Collider_InitElementDamageInfoAC = 0x80049C28; // type:func -Collider_DestroyElementDamageInfoAC = 0x80049C58; // type:func -Collider_SetElementDamageInfoAC = 0x80049C6C; // type:func -Collider_InitElement = 0x80049C94; // type:func -Collider_DestroyElement = 0x80049D14; // type:func -Collider_SetElement = 0x80049D54; // type:func -Collider_ResetATElement = 0x80049DCC; // type:func -Collider_ResetACElement = 0x80049E04; // type:func -Collider_ResetOCElement = 0x80049E3C; // type:func -Collider_InitJntSphElementDim = 0x80049E54; // type:func -Collider_DestroyJntSphElementDim = 0x80049E9C; // type:func -Collider_SetJntSphElementDim = 0x80049EB0; // type:func -Collider_InitJntSphElement = 0x80049F08; // type:func -Collider_DestroyJntSphElement = 0x80049F48; // type:func -Collider_SetJntSphElement = 0x80049F88; // type:func -Collider_ResetJntSphElementAT = 0x80049FD8; // type:func -Collider_ResetJntSphElementAC = 0x80049FFC; // type:func -Collider_ResetJntSphElementOC = 0x8004A020; // type:func -Collider_InitJntSph = 0x8004A044; // type:func -Collider_FreeJntSph = 0x8004A070; // type:func -Collider_DestroyJntSph = 0x8004A110; // type:func -Collider_SetJntSphToActor = 0x8004A1A0; // type:func -Collider_SetJntSphAllocType1 = 0x8004A27C; // type:func -Collider_SetJntSphAlloc = 0x8004A358; // type:func -Collider_SetJntSph = 0x8004A434; // type:func -Collider_ResetJntSphAT = 0x8004A4E8; // type:func -Collider_ResetJntSphAC = 0x8004A574; // type:func -Collider_ResetJntSphOC = 0x8004A600; // type:func -Collider_InitCylinderDim = 0x8004A68C; // type:func -Collider_DestroyCylinderDim = 0x8004A6E8; // type:func -Collider_SetCylinderDim = 0x8004A6FC; // type:func -Collider_InitCylinder = 0x8004A73C; // type:func -Collider_DestroyCylinder = 0x8004A78C; // type:func -Collider_SetCylinderToActor = 0x8004A7DC; // type:func -Collider_SetCylinderType1 = 0x8004A844; // type:func -Collider_SetCylinder = 0x8004A8AC; // type:func -Collider_ResetCylinderAT = 0x8004A914; // type:func -Collider_ResetCylinderAC = 0x8004A954; // type:func -Collider_ResetCylinderOC = 0x8004A994; // type:func -Collider_InitTrisElementDim = 0x8004A9D4; // type:func -Collider_DestroyTrisElementDim = 0x8004AA20; // type:func -Collider_SetTrisElementDim = 0x8004AA34; // type:func -Collider_InitTrisElement = 0x8004AAE8; // type:func -Collider_DestroyTrisElement = 0x8004AB28; // type:func -Collider_SetTrisElement = 0x8004AB68; // type:func -Collider_ResetTrisElementAT = 0x8004ABB8; // type:func -Collider_ResetTrisElementAC = 0x8004ABDC; // type:func -Collider_ResetTrisElementOC = 0x8004AC00; // type:func -Collider_InitTris = 0x8004AC24; // type:func -Collider_FreeTris = 0x8004AC50; // type:func -Collider_DestroyTris = 0x8004AD08; // type:func -Collider_SetTrisAllocType1 = 0x8004ADAC; // type:func -Collider_SetTrisAlloc = 0x8004AEAC; // type:func -Collider_SetTris = 0x8004AFAC; // type:func -Collider_ResetTrisAT = 0x8004B078; // type:func -Collider_ResetTrisAC = 0x8004B118; // type:func -Collider_ResetTrisOC = 0x8004B1B8; // type:func -Collider_InitQuadDim = 0x8004B258; // type:func -Collider_DestroyQuadDim = 0x8004B2A4; // type:func -Collider_ResetQuadACDist = 0x8004B2B8; // type:func -Collider_SetQuadMidpoints = 0x8004B2D4; // type:func -Collider_SetQuadDim = 0x8004B390; // type:func -Collider_InitQuad = 0x8004B418; // type:func -Collider_DestroyQuad = 0x8004B468; // type:func -Collider_SetQuadType1 = 0x8004B4B8; // type:func -Collider_SetQuad = 0x8004B520; // type:func -Collider_ResetQuadAT = 0x8004B588; // type:func -Collider_ResetQuadAC = 0x8004B5D8; // type:func -Collider_ResetQuadOC = 0x8004B618; // type:func -Collider_QuadSetNearestAC = 0x8004B658; // type:func -Collider_InitLine = 0x8004B708; // type:func -Collider_DestroyLine = 0x8004B768; // type:func -Collider_SetLinePoints = 0x8004B77C; // type:func -Collider_SetLine = 0x8004B7C0; // type:func -Collider_ResetLineOC = 0x8004B7EC; // type:func -CollisionCheck_InitContext = 0x8004B808; // type:func -CollisionCheck_DestroyContext = 0x8004B828; // type:func -CollisionCheck_ClearContext = 0x8004B838; // type:func -CollisionCheck_EnableSAC = 0x8004B8E0; // type:func -CollisionCheck_DisableSAC = 0x8004B8F8; // type:func -CollisionCheck_SetAT = 0x8004B910; // type:func -CollisionCheck_SetAT_SAC = 0x8004B9F0; // type:func -CollisionCheck_SetAC = 0x8004BB00; // type:func -CollisionCheck_SetAC_SAC = 0x8004BBE0; // type:func -CollisionCheck_SetOC = 0x8004BCF0; // type:func -CollisionCheck_SetOC_SAC = 0x8004BDD0; // type:func -CollisionCheck_SetOCLine = 0x8004BEE0; // type:func -CollisionCheck_IsElementNotAT = 0x8004BF6C; // type:func -CollisionCheck_IsElementNotAC = 0x8004BF90; // type:func -CollisionCheck_NoSharedFlags = 0x8004BFB4; // type:func -CollisionCheck_NoBlood = 0x8004BFDC; // type:func -CollisionCheck_BlueBlood = 0x8004BFF0; // type:func -CollisionCheck_GreenBlood = 0x8004C15C; // type:func -CollisionCheck_WaterBurst = 0x8004C2C8; // type:func -CollisionCheck_RedBlood = 0x8004C304; // type:func -CollisionCheck_RedBloodUnused = 0x8004C328; // type:func -CollisionCheck_HitSolid = 0x8004C34C; // type:func -CollisionCheck_SwordHitAudio = 0x8004C55C; // type:func -CollisionCheck_HitEffects = 0x8004C668; // type:func -CollisionCheck_SetBounce = 0x8004C868; // type:func -CollisionCheck_SetATvsAC = 0x8004C888; // type:func -CollisionCheck_ATJntSphVsACJntSph = 0x8004CA30; // type:func -CollisionCheck_ATJntSphVsACCyl = 0x8004CCDC; // type:func -CollisionCheck_ATCylVsACJntSph = 0x8004CF50; // type:func -CollisionCheck_ATJntSphVsACTris = 0x8004D1F0; // type:func -CollisionCheck_ATTrisVsACJntSph = 0x8004D410; // type:func -CollisionCheck_ATJntSphVsACQuad = 0x8004D624; // type:func -CollisionCheck_ATQuadVsACJntSph = 0x8004D844; // type:func -CollisionCheck_ATCylVsACCyl = 0x8004DAA8; // type:func -CollisionCheck_ATCylVsACTris = 0x8004DC7C; // type:func -CollisionCheck_ATTrisVsACCyl = 0x8004DE40; // type:func -CollisionCheck_ATCylVsACQuad = 0x8004E000; // type:func -CollisionCheck_ATQuadVsACCyl = 0x8004E274; // type:func -CollisionCheck_ATTrisVsACTris = 0x8004E520; // type:func -CollisionCheck_ATTrisVsACQuad = 0x8004E774; // type:func -CollisionCheck_ATQuadVsACTris = 0x8004EA04; // type:func -CollisionCheck_ATQuadVsACQuad = 0x8004EC9C; // type:func -CollisionCheck_SetJntSphHitFX = 0x8004EF2C; // type:func -CollisionCheck_SetCylHitFX = 0x8004F00C; // type:func -CollisionCheck_SetTrisHitFX = 0x8004F0A4; // type:func -CollisionCheck_SetQuadHitFX = 0x8004F18C; // type:func -CollisionCheck_SetHitEffects = 0x8004F224; // type:func -CollisionCheck_AC = 0x8004F2F8; // type:func -CollisionCheck_AT = 0x8004F420; // type:func -CollisionCheck_GetMassType = 0x8004F4F0; // type:func -CollisionCheck_SetOCvsOC = 0x8004F52C; // type:func -CollisionCheck_OC_JntSphVsJntSph = 0x8004F85C; // type:func -CollisionCheck_OC_JntSphVsCyl = 0x8004FA2C; // type:func -CollisionCheck_OC_CylVsJntSph = 0x8004FB8C; // type:func -CollisionCheck_OC_CylVsCyl = 0x8004FBB8; // type:func -CollisionCheck_SkipOC = 0x8004FC88; // type:func -CollisionCheck_Incompatible = 0x8004FCAC; // type:func -CollisionCheck_OC = 0x8004FD2C; // type:func -CollisionCheck_InitInfo = 0x8004FEBC; // type:func -CollisionCheck_ResetDamage = 0x8004FF04; // type:func -CollisionCheck_SetInfoNoDamageTable = 0x8004FF30; // type:func -CollisionCheck_SetInfo = 0x8004FF58; // type:func -CollisionCheck_SetInfo2 = 0x8004FF84; // type:func -CollisionCheck_SetInfoGetDamageTable = 0x8004FFB8; // type:func -CollisionCheck_ApplyDamage = 0x8004FFF0; // type:func -CollisionCheck_ApplyDamageJntSph = 0x800501B0; // type:func -CollisionCheck_ApplyDamageCyl = 0x80050258; // type:func -CollisionCheck_ApplyDamageTris = 0x80050278; // type:func -CollisionCheck_ApplyDamageQuad = 0x8005030C; // type:func -CollisionCheck_Damage = 0x8005032C; // type:func -CollisionCheck_LineOC_JntSph = 0x800503EC; // type:func -CollisionCheck_LineOC_Cyl = 0x80050504; // type:func -CollisionCheck_LineOC = 0x8005057C; // type:func -CollisionCheck_LineOCCheckAll = 0x800506C4; // type:func -CollisionCheck_LineOCCheck = 0x800506E8; // type:func -Collider_UpdateCylinder = 0x80050714; // type:func -Collider_SetCylinderPosition = 0x80050758; // type:func -Collider_SetQuadVertices = 0x80050778; // type:func -Collider_SetTrisVertices = 0x800507E8; // type:func -Collider_SetTrisDim = 0x800508A8; // type:func -Collider_UpdateSpheres = 0x800508F8; // type:func -CollisionCheck_SpawnRedBlood = 0x80050A7C; // type:func -CollisionCheck_SpawnWaterDroplets = 0x80050BDC; // type:func -CollisionCheck_SpawnShieldParticles = 0x80050D38; // type:func -CollisionCheck_SpawnShieldParticlesMetal = 0x80050DCC; // type:func -CollisionCheck_SpawnShieldParticlesMetalSfx = 0x80050E18; // type:func -CollisionCheck_SpawnShieldParticlesMetal2 = 0x80050E64; // type:func -CollisionCheck_SpawnShieldParticlesWood = 0x80050E84; // type:func -CollisionCheck_CylSideVsLineSeg = 0x80050F44; // type:func -CollisionCheck_GetSwordDamage = 0x80051648; // type:func -SaveContext_Init = 0x800516B0; // type:func -Regs_Init = 0x80051740; // type:func -DebugCamera_ScreenText = 0x800517D0; // type:func -DebugCamera_ScreenTextColored = 0x800517E4; // type:func -DebugCamera_DrawScreenText = 0x800518A0; // type:func -Debug_DrawText = 0x80051984; // type:func -DebugDisplay_Init = 0x80051A50; // type:func -DebugDisplay_AddObject = 0x80051A60; // type:func -DebugDisplay_DrawObjects = 0x80051B3C; // type:func -DebugDisplay_DrawSpriteI8 = 0x80051BCC; // type:func -DebugDisplay_DrawPolygon = 0x80051DB0; // type:func -Cutscene_InitContext = 0x80051F10; // type:func -Cutscene_StartManual = 0x80051F28; // type:func -Cutscene_StopManual = 0x80051F40; // type:func -Cutscene_UpdateManual = 0x80051F64; // type:func -Cutscene_UpdateScripted = 0x80051FB0; // type:func -CutsceneHandler_DoNothing = 0x80052064; // type:func -Cutscene_StepTimer = 0x80052074; // type:func -CutsceneHandler_StartManual = 0x800520AC; // type:func -CutsceneHandler_StartScript = 0x8005210C; // type:func -CutsceneCmd_Misc = 0x80052178; // type:func -CutsceneCmd_SetLightSetting = 0x80052914; // type:func -CutsceneCmd_StartSequence = 0x80052954; // type:func -CutsceneCmd_StopSequence = 0x80052990; // type:func -CutsceneCmd_FadeOutSequence = 0x800529CC; // type:func -CutsceneCmd_RumbleController = 0x80052A4C; // type:func -CutsceneCmd_SetTime = 0x80052A90; // type:func -CutsceneCmd_Destination = 0x80052B34; // type:func -CutsceneCmd_Transition = 0x80054854; // type:func -CutsceneCmd_UpdateCamEyeSpline = 0x80055234; // type:func -CutsceneCmd_UpdateCamAtSpline = 0x80055388; // type:func -CutsceneCmd_SetCamEye = 0x800554E4; // type:func -CutsceneCmd_SetCamAt = 0x800556C0; // type:func -CutsceneCmd_Text = 0x80055868; // type:func -Cutscene_ProcessScript = 0x80055B3C; // type:func -CutsceneHandler_RunScript = 0x8005650C; // type:func -CutsceneHandler_StopManual = 0x80056550; // type:func -CutsceneHandler_StopScript = 0x80056590; // type:func -Cutscene_SetupScripted = 0x80056698; // type:func -func_80069048 = 0x80056818; // type:func -func_8006907C = 0x80056850; // type:func -Cutscene_HandleEntranceTriggers = 0x80056874; // type:func -Cutscene_HandleConditionalTriggers = 0x80056994; // type:func -Cutscene_SetScript = 0x80056B9C; // type:func -MemCpy = 0x80056BF0; // type:func -MemSet = 0x80056C20; // type:func -GetItem_Draw = 0x80056C80; // type:func -GetItem_DrawMaskOrBombchu = 0x80056CC4; // type:func -GetItem_DrawSoldOut = 0x80056D60; // type:func -GetItem_DrawBlueFire = 0x80056E08; // type:func -GetItem_DrawPoes = 0x80056FAC; // type:func -GetItem_DrawFairy = 0x800571A8; // type:func -GetItem_DrawMirrorShield = 0x80057384; // type:func -GetItem_DrawSkullToken = 0x800574FC; // type:func -GetItem_DrawEggOrMedallion = 0x80057664; // type:func -GetItem_DrawCompass = 0x8005771C; // type:func -GetItem_DrawPotion = 0x80057824; // type:func -GetItem_DrawGoronSword = 0x800579F8; // type:func -GetItem_DrawDekuNuts = 0x80057B00; // type:func -GetItem_DrawRecoveryHeart = 0x80057C14; // type:func -GetItem_DrawFish = 0x80057D2C; // type:func -GetItem_DrawOpa0 = 0x80057E34; // type:func -GetItem_DrawOpa0Xlu1 = 0x80057ED0; // type:func -GetItem_DrawXlu01 = 0x80057FD4; // type:func -GetItem_DrawOpa10Xlu2 = 0x8005808C; // type:func -GetItem_DrawMagicArrow = 0x800581A8; // type:func -GetItem_DrawMagicSpell = 0x800582C4; // type:func -GetItem_DrawOpa1023 = 0x80058414; // type:func -GetItem_DrawOpa10Xlu32 = 0x800584FC; // type:func -GetItem_DrawSmallRupee = 0x80058630; // type:func -GetItem_DrawScale = 0x80058780; // type:func -GetItem_DrawBulletBag = 0x800588E0; // type:func -GetItem_DrawWallet = 0x80058A2C; // type:func -SfxSource_InitAll = 0x80058B80; // type:func -SfxSource_UpdateAll = 0x80058BB0; // type:func -SfxSource_PlaySfxAtFixedWorldPos = 0x80058C58; // type:func -QuestHint_CheckCondition = 0x80058D40; // type:func -QuestHint_CheckConditionChain = 0x80058FBC; // type:func -QuestHint_CheckRandomCondition = 0x80059050; // type:func -QuestHint_GetTextIdFromScript = 0x80059230; // type:func -QuestHint_GetSariaTextId = 0x80059374; // type:func -QuestHint_GetNaviTextId = 0x800593DC; // type:func -MaskReaction_GetTextId = 0x80059420; // type:func -CutsceneFlags_UnsetAll = 0x80059470; // type:func -CutsceneFlags_Set = 0x800594A0; // type:func -CutsceneFlags_Unset = 0x8005950C; // type:func -CutsceneFlags_Get = 0x8005957C; // type:func -Curve_CubicHermiteSpline = 0x800595F0; // type:func -Curve_Interpolate = 0x80059688; // type:func -SkelCurve_Clear = 0x80059830; // type:func -SkelCurve_Init = 0x80059860; // type:func -SkelCurve_Destroy = 0x80059910; // type:func -SkelCurve_SetAnim = 0x80059940; // type:func -SkelCurve_Update = 0x80059978; // type:func -SkelCurve_DrawLimb = 0x80059C68; // type:func -SkelCurve_Draw = 0x80059FF4; // type:func -func_8006CFC0 = 0x8005A040; // type:func -func_8006D074 = 0x8005A0F4; // type:func -func_8006D0AC = 0x8005A130; // type:func -func_8006D0EC = 0x8005A170; // type:func -func_8006D684 = 0x8005A608; // type:func -func_8006DC68 = 0x8005AB7C; // type:func -func_8006DD9C = 0x8005AC8C; // type:func -Jpeg_ScheduleDecoderTask = 0x8005AD20; // type:func -Jpeg_CopyToZbuffer = 0x8005AE5C; // type:func -Jpeg_GetUnalignedU16 = 0x8005AF94; // type:func -Jpeg_ParseMarkers = 0x8005AFE0; // type:func -Jpeg_Decode = 0x8005B1AC; // type:func -KaleidoSetup_Update = 0x8005B4E0; // type:func -KaleidoSetup_Init = 0x8005B74C; // type:func -KaleidoSetup_Destroy = 0x8005B8A0; // type:func -Font_LoadCharWide = 0x8005B8B0; // type:func -Font_LoadChar = 0x8005B904; // type:func -Font_LoadMessageBoxIcon = 0x8005B954; // type:func -Font_LoadOrderedFont = 0x8005B998; // type:func -Environment_ZBufValToFixedPoint = 0x8005BAC0; // type:func -Environment_GetPixelDepth = 0x8005BAF8; // type:func -Environment_GraphCallback = 0x8005BB24; // type:func -Environment_Init = 0x8005BB68; // type:func -Environment_SmoothStepToU8 = 0x8005C038; // type:func -Environment_SmoothStepToS8 = 0x8005C170; // type:func -Environment_LerpWeight = 0x8005C2B0; // type:func -Environment_LerpWeightAccelDecel = 0x8005C334; // type:func -Environment_UpdateStorm = 0x8005C4F4; // type:func -Environment_UpdateSkybox = 0x8005C5E8; // type:func -Environment_EnableUnderwaterLights = 0x8005CED4; // type:func -Environment_DisableUnderwaterLights = 0x8005CF4C; // type:func -Environment_Update = 0x8005CFC4; // type:func -Environment_DrawSunAndMoon = 0x8005EE20; // type:func -Environment_DrawSunLensFlare = 0x8005F67C; // type:func -Environment_DrawLensFlare = 0x8005F750; // type:func -Environment_RandCentered = 0x800603A8; // type:func -Environment_DrawRain = 0x800603D0; // type:func -Environment_ChangeLightSetting = 0x80060978; // type:func -Environment_DrawSkyboxFilters = 0x800609FC; // type:func -Environment_DrawLightningFlash = 0x80060C1C; // type:func -Environment_UpdateLightningStrike = 0x80060CB4; // type:func -Environment_AddLightningBolts = 0x80060FBC; // type:func -Environment_DrawLightning = 0x80061024; // type:func -Environment_PlaySceneSequence = 0x80061468; // type:func -Environment_PlayTimeBasedSequence = 0x80061658; // type:func -Environment_DrawCustomLensFlare = 0x80061970; // type:func -Environment_InitGameOverLights = 0x80061A1C; // type:func -Environment_FadeInGameOverLights = 0x80061C04; // type:func -Environment_FadeOutGameOverLights = 0x80061EB8; // type:func -Environment_UpdateRain = 0x800621D4; // type:func -Environment_FillScreen = 0x8006223C; // type:func -Environment_DrawSandstorm = 0x80062434; // type:func -Environment_AdjustLights = 0x80062E80; // type:func -Environment_GetBgsDayCount = 0x800630AC; // type:func -Environment_ClearBgsDayCount = 0x800630BC; // type:func -Environment_GetTotalDays = 0x800630CC; // type:func -Environment_ForcePlaySequence = 0x800630DC; // type:func -Environment_IsForcedSequenceDisabled = 0x800630F4; // type:func -Environment_PlayStormNatureAmbience = 0x8006311C; // type:func -Environment_StopStormNatureAmbience = 0x8006317C; // type:func -Environment_WarpSongLeave = 0x800631DC; // type:func -Lib_MemSet = 0x800632D0; // type:func -Math_CosS = 0x80063324; // type:func -Math_SinS = 0x80063364; // type:func -Math_ScaledStepToS = 0x800633A4; // type:func -Math_StepToS = 0x80063474; // type:func -Math_StepToF = 0x800634FC; // type:func -Math_StepUntilAngleS = 0x80063590; // type:func -Math_StepUntilS = 0x800635F8; // type:func -Math_StepToAngleS = 0x80063658; // type:func -Math_StepUntilF = 0x8006371C; // type:func -Math_AsymStepToF = 0x8006376C; // type:func -Lib_GetControlStickData = 0x80063814; // type:func -Rand_S16Offset = 0x80063890; // type:func -Rand_S16OffsetStride = 0x800638E4; // type:func -Math_Vec3f_Copy = 0x8006394C; // type:func -Math_Vec3s_ToVec3f = 0x8006396C; // type:func -Math_Vec3f_Sum = 0x800639B0; // type:func -Math_Vec3f_Diff = 0x800639E8; // type:func -Math_Vec3s_DiffToVec3f = 0x80063A20; // type:func -Math_Vec3f_Scale = 0x80063A7C; // type:func -Math_Vec3f_DistXYZ = 0x80063AB8; // type:func -Math_Vec3f_DistXYZAndStoreDiff = 0x80063AFC; // type:func -Math_Vec3f_DistXZ = 0x80063B58; // type:func -Math_Vec3f_DiffY = 0x80063B8C; // type:func -Math_Vec3f_Yaw = 0x80063BA0; // type:func -Math_Vec3f_Pitch = 0x80063BD4; // type:func -Actor_ProcessInitChain = 0x80063C1C; // type:func -IChain_Apply_u8 = 0x80063C94; // type:func -IChain_Apply_s8 = 0x80063CB0; // type:func -IChain_Apply_u16 = 0x80063CCC; // type:func -IChain_Apply_s16 = 0x80063CE8; // type:func -IChain_Apply_u32 = 0x80063D04; // type:func -IChain_Apply_s32 = 0x80063D20; // type:func -IChain_Apply_f32 = 0x80063D3C; // type:func -IChain_Apply_f32div1000 = 0x80063D60; // type:func -IChain_Apply_Vec3f = 0x80063D90; // type:func -IChain_Apply_Vec3fdiv1000 = 0x80063DBC; // type:func -IChain_Apply_Vec3s = 0x80063DF4; // type:func -Math_SmoothStepToF = 0x80063E18; // type:func -Math_ApproachF = 0x80063F20; // type:func -Math_ApproachZeroF = 0x80063F90; // type:func -Math_SmoothStepToDegF = 0x80063FE4; // type:func -Math_SmoothStepToS = 0x800641A8; // type:func -Math_ApproachS = 0x800642C4; // type:func -Color_RGBA8_Copy = 0x80064368; // type:func -Sfx_PlaySfxCentered = 0x80064390; // type:func -Sfx_PlaySfxCentered2 = 0x800643D8; // type:func -Sfx_PlaySfxAtPos = 0x80064420; // type:func -Health_InitMeter = 0x80064470; // type:func -Health_UpdateMeter = 0x8006454C; // type:func -func_80078E18 = 0x80064930; // type:func -func_80078E34 = 0x80064950; // type:func -func_80078E84 = 0x800649A0; // type:func -Health_DrawMeter = 0x80064A38; // type:func -Health_UpdateBeatingHeart = 0x800656B0; // type:func -Health_IsCritical = 0x8006579C; // type:func -Lights_PointSetInfo = 0x80065810; // type:func -Lights_PointNoGlowSetInfo = 0x8006586C; // type:func -Lights_PointGlowSetInfo = 0x800658D0; // type:func -Lights_PointSetColorAndRadius = 0x80065938; // type:func -Lights_DirectionalSetInfo = 0x8006596C; // type:func -Lights_Reset = 0x800659C4; // type:func -Lights_Draw = 0x80065A00; // type:func -Lights_FindSlot = 0x80065B44; // type:func -Lights_BindPoint = 0x80065B74; // type:func -Lights_BindDirectional = 0x80065ED0; // type:func -Lights_BindAll = 0x80065F38; // type:func -Lights_FindBufSlot = 0x80065FD4; // type:func -Lights_FreeNode = 0x80066060; // type:func -LightContext_Init = 0x800660D8; // type:func -LightContext_SetAmbientColor = 0x80066144; // type:func -LightContext_SetFog = 0x80066170; // type:func -LightContext_NewLights = 0x800661AC; // type:func -LightContext_InitList = 0x800661E4; // type:func -LightContext_DestroyList = 0x800661F4; // type:func -LightContext_InsertLight = 0x80066250; // type:func -LightContext_RemoveLight = 0x800662B0; // type:func -Lights_NewAndDraw = 0x80066314; // type:func -Lights_New = 0x8006645C; // type:func -Lights_GlowCheck = 0x800664A4; // type:func -Lights_DrawGlow = 0x800666A8; // type:func -ZeldaArena_Malloc = 0x800668B0; // type:func -ZeldaArena_MallocR = 0x800668D8; // type:func -ZeldaArena_Realloc = 0x80066900; // type:func -ZeldaArena_Free = 0x80066930; // type:func -ZeldaArena_Calloc = 0x80066958; // type:func -ZeldaArena_GetSizes = 0x800669B0; // type:func -ZeldaArena_Check = 0x800669E8; // type:func -ZeldaArena_Init = 0x80066A0C; // type:func -ZeldaArena_Cleanup = 0x80066A3C; // type:func -ZeldaArena_IsInitialized = 0x80066A60; // type:func -MapMark_Init = 0x80066A90; // type:func -MapMark_ClearPointers = 0x80066B3C; // type:func -MapMark_DrawForDungeon = 0x80066B58; // type:func -MapMark_Draw = 0x80067048; // type:func -PreNmiBuff_Init = 0x80067090; // type:func -PreNmiBuff_SetReset = 0x80067108; // type:func -PreNmiBuff_IsResetting = 0x8006713C; // type:func -Sched_FlushTaskQueue = 0x80067150; // type:func -OLib_Vec3fDist = 0x800671D0; // type:func -OLib_Vec3fDistOutDiff = 0x80067214; // type:func -OLib_Vec3fDistXZ = 0x80067270; // type:func -OLib_ClampMinDist = 0x800672A4; // type:func -OLib_ClampMaxDist = 0x800672F4; // type:func -OLib_Vec3fDistNormalize = 0x80067344; // type:func -OLib_VecSphToVec3f = 0x800673F4; // type:func -OLib_VecGeoToVec3f = 0x800674A0; // type:func -OLib_Vec3fToVecSph = 0x800674E4; // type:func -OLib_Vec3fToVecGeo = 0x80067638; // type:func -OLib_Vec3fDiffToVecSph = 0x80067680; // type:func -OLib_Vec3fDiffToVecGeo = 0x800676D4; // type:func -OLib_Vec3fDiffRad = 0x80067728; // type:func -OLib_Vec3fDiffDegF = 0x800677B8; // type:func -OLib_Vec3fDiffBinAng = 0x80067820; // type:func -OnePointCutscene_AddVecGeoToVec3f = 0x800678C0; // type:func -OnePointCutscene_Vec3fYaw = 0x80067940; // type:func -OnePointCutscene_Vec3sToVec3f = 0x800679A8; // type:func -OnePointCutscene_BgCheckLineTest = 0x800679EC; // type:func -OnePointCutscene_RaycastDown = 0x80067A3C; // type:func -OnePointCutscene_SetCsCamPoints = 0x80067A64; // type:func -OnePointCutscene_SetInfo = 0x80067A98; // type:func -OnePointCutscene_SetAsChild = 0x8006B1D4; // type:func -OnePointCutscene_RemoveCamera = 0x8006B21C; // type:func -OnePointCutscene_Init = 0x8006B2F0; // type:func -OnePointCutscene_EndCutscene = 0x8006B5A8; // type:func -OnePointCutscene_Attention = 0x8006B604; // type:func -OnePointCutscene_AttentionSetSfx = 0x8006B770; // type:func -OnePointCutscene_EnableAttention = 0x8006B7C4; // type:func -OnePointCutscene_DisableAttention = 0x8006B7D4; // type:func -OnePointCutscene_CheckForCategory = 0x8006B7E8; // type:func -OnePointCutscene_Noop = 0x8006B848; // type:func -Map_SavePlayerInitialInfo = 0x8006B860; // type:func -Map_SetPaletteData = 0x8006B8C0; // type:func -Map_SetFloorPalettesData = 0x8006B93C; // type:func -Map_InitData = 0x8006BAF4; // type:func -Map_InitRoomData = 0x8006BDB0; // type:func -Map_Destroy = 0x8006BE8C; // type:func -Map_Init = 0x8006BEB4; // type:func -Minimap_DrawCompassIcons = 0x8006C13C; // type:func -Minimap_Draw = 0x8006C590; // type:func -Map_GetFloorTextIndexOffset = 0x8006D0AC; // type:func -Map_Update = 0x8006D0D4; // type:func -Interface_ChangeHudVisibilityMode = 0x8006D400; // type:func -Interface_RaiseButtonAlphas = 0x8006D434; // type:func -Interface_DimButtonAlphas = 0x8006D56C; // type:func -Interface_UpdateHudAlphas = 0x8006D640; // type:func -func_80083108 = 0x8006DE60; // type:func -Interface_SetSceneRestrictions = 0x8006ED7C; // type:func -Gfx_TextureIA8 = 0x8006EEC4; // type:func -Gfx_TextureI8 = 0x8006F0E8; // type:func -Inventory_SwapAgeEquipment = 0x8006F30C; // type:func -Interface_InitHorsebackArchery = 0x8006F590; // type:func -func_800849EC = 0x8006F5D8; // type:func -Interface_LoadItemIcon1 = 0x8006F658; // type:func -Interface_LoadItemIcon2 = 0x8006F708; // type:func -func_80084BF4 = 0x8006F7B8; // type:func -Item_Give = 0x8006F8D4; // type:func -Item_CheckObtainability = 0x80070F50; // type:func -Inventory_DeleteItem = 0x80071490; // type:func -Inventory_ReplaceItem = 0x80071510; // type:func -Inventory_HasEmptyBottle = 0x800715C4; // type:func -Inventory_HasSpecificBottle = 0x80071634; // type:func -Inventory_UpdateBottleItem = 0x800716AC; // type:func -Inventory_ConsumeFairy = 0x80071744; // type:func -func_80086D5C = 0x8007181C; // type:func -Interface_LoadActionLabel = 0x80071854; // type:func -Interface_SetDoAction = 0x800719B8; // type:func -Interface_SetNaviCall = 0x80071A40; // type:func -Interface_LoadActionLabelB = 0x80071B44; // type:func -Health_ChangeBy = 0x80071C1C; // type:func -Health_GiveHearts = 0x80071D00; // type:func -Rupees_ChangeBy = 0x80071D2C; // type:func -Inventory_ChangeAmmo = 0x80071D54; // type:func -Magic_Fill = 0x80072060; // type:func -Magic_Reset = 0x800720A8; // type:func -Magic_RequestChange = 0x800720E8; // type:func -Magic_Update = 0x800723A0; // type:func -Magic_DrawMeter = 0x80072C4C; // type:func -Interface_SetSubTimer = 0x80073438; // type:func -Interface_SetSubTimerToFinalSecond = 0x80073488; // type:func -Interface_SetTimer = 0x800734CC; // type:func -Interface_DrawActionLabel = 0x8007351C; // type:func -Interface_DrawItemButtons = 0x80073604; // type:func -Interface_DrawItemIconTexture = 0x800743F8; // type:func -Interface_DrawAmmoCount = 0x800745A0; // type:func -Interface_DrawActionButton = 0x80074A40; // type:func -Interface_InitVertices = 0x80074C2C; // type:func -func_8008A8B8 = 0x800750EC; // type:func -func_8008A994 = 0x800751CC; // type:func -Interface_Draw = 0x80075214; // type:func -Interface_Update = 0x80077DCC; // type:func -Path_GetByIndex = 0x80078AD0; // type:func -Path_OrientAndGetDistSq = 0x80078B14; // type:func -Path_CopyLastPoint = 0x80078C00; // type:func -FrameAdvance_Init = 0x80078CA0; // type:func -FrameAdvance_Update = 0x80078CB0; // type:func -Player_SetBootData = 0x80078D50; // type:func -Player_InBlockingCsMode = 0x80078EDC; // type:func -Player_InCsMode = 0x80078F8C; // type:func -func_8008E9C4 = 0x80078FC8; // type:func -Player_IsChildWithHylianShield = 0x80078FD8; // type:func -Player_ActionToModelGroup = 0x80079000; // type:func -Player_SetModelsForHoldingShield = 0x8007904C; // type:func -Player_SetModels = 0x80079138; // type:func -Player_SetModelGroup = 0x80079210; // type:func -func_8008EC70 = 0x8007927C; // type:func -Player_SetEquipmentData = 0x800792B4; // type:func -Player_UpdateBottleHeld = 0x800793A4; // type:func -func_8008EDF0 = 0x800793F8; // type:func -func_8008EE08 = 0x80079414; // type:func -func_8008EEAC = 0x800794B8; // type:func -func_8008EF30 = 0x8007953C; // type:func -func_8008EF44 = 0x80079554; // type:func -Player_IsBurningStickInRange = 0x80079570; // type:func -Player_GetStrength = 0x80079648; // type:func -Player_GetMask = 0x80079694; // type:func -Player_UnsetMask = 0x800796A4; // type:func -Player_HasMirrorShieldEquipped = 0x800796B4; // type:func -Player_HasMirrorShieldSetToDraw = 0x800796CC; // type:func -Player_ActionToMagicSpell = 0x800796F8; // type:func -Player_HoldsHookshot = 0x80079724; // type:func -func_8008F128 = 0x80079748; // type:func -Player_ActionToMeleeWeapon = 0x8007977C; // type:func -Player_GetMeleeWeaponHeld = 0x800797A4; // type:func -Player_HoldsTwoHandedWeapon = 0x800797C8; // type:func -Player_HoldsBrokenKnife = 0x800797F4; // type:func -Player_ActionToBottle = 0x8007984C; // type:func -Player_GetBottleHeld = 0x80079878; // type:func -Player_ActionToExplosive = 0x80079898; // type:func -Player_GetExplosiveHeld = 0x800798C4; // type:func -func_8008F2BC = 0x800798E4; // type:func -Player_GetEnvironmentalHazard = 0x80079920; // type:func -Player_DrawImpl = 0x80079A98; // type:func -func_8008F87C = 0x80079E5C; // type:func -Player_OverrideLimbDrawGameplayCommon = 0x8007A2A8; // type:func -Player_OverrideLimbDrawGameplayDefault = 0x8007A5FC; // type:func -Player_OverrideLimbDrawGameplayFirstPerson = 0x8007A8E8; // type:func -Player_OverrideLimbDrawGameplayCrawling = 0x8007AA38; // type:func -func_80090480 = 0x8007AA7C; // type:func -Player_UpdateShieldCollider = 0x8007AC04; // type:func -func_800906D4 = 0x8007ACD8; // type:func -Player_DrawGetItemImpl = 0x8007ADE8; // type:func -Player_DrawGetItem = 0x8007AF7C; // type:func -func_80090A28 = 0x8007AFF4; // type:func -Player_DrawHookshotReticle = 0x8007B0C8; // type:func -Player_PostLimbDrawGameplay = 0x8007B2AC; // type:func -Player_InitPauseDrawData = 0x8007BC14; // type:func -Player_OverrideLimbDrawPause = 0x8007BD40; // type:func -Player_DrawPauseImpl = 0x8007BEE4; // type:func -Player_DrawPause = 0x8007C5E8; // type:func -func_80092320 = 0x8007C7C0; // type:func -PreNMI_Update = 0x8007C7D4; // type:func -PreNMI_Draw = 0x8007C81C; // type:func -PreNMI_Main = 0x8007C8D8; // type:func -PreNMI_Destroy = 0x8007C90C; // type:func -PreNMI_Init = 0x8007C918; // type:func -Quake_AddVecGeoToVec3f = 0x8007C960; // type:func -Quake_UpdateShakeInfo = 0x8007C9E0; // type:func -Quake_CallbackType1 = 0x8007CC08; // type:func -Quake_CallbackType5 = 0x8007CC90; // type:func -Quake_CallbackType6 = 0x8007CD04; // type:func -Quake_CallbackType3 = 0x8007CD88; // type:func -Quake_CallbackType2 = 0x8007CE20; // type:func -Quake_CallbackType4 = 0x8007CE90; // type:func -Quake_GetFreeIndex = 0x8007CF28; // type:func -Quake_RequestImpl = 0x8007CF8C; // type:func -Quake_Remove = 0x8007D044; // type:func -Quake_GetRequest = 0x8007D06C; // type:func -Quake_SetValue = 0x8007D0C8; // type:func -Quake_SetSpeed = 0x8007D1F8; // type:func -Quake_SetDuration = 0x8007D240; // type:func -Quake_GetTimeLeft = 0x8007D290; // type:func -Quake_SetPerturbations = 0x8007D2C8; // type:func -Quake_SetOrientation = 0x8007D330; // type:func -Quake_Init = 0x8007D398; // type:func -Quake_Request = 0x8007D3EC; // type:func -Quake_RemoveRequest = 0x8007D410; // type:func -Quake_Update = 0x8007D458; // type:func -Gfx_SetFog = 0x8007D7D0; // type:func -Gfx_SetFogWithSync = 0x8007D94C; // type:func -Gfx_SetFog2 = 0x8007DADC; // type:func -Gfx_SetupDLImpl = 0x8007DB10; // type:func -Gfx_SetupDL = 0x8007DB4C; // type:func -Gfx_SetupDLAtPtr = 0x8007DB6C; // type:func -Gfx_SetupDL_57 = 0x8007DB98; // type:func -Gfx_SetupDL_57b = 0x8007DBC0; // type:func -Gfx_SetupDL_52NoCD = 0x8007DBE8; // type:func -Gfx_SetupDL_58Opa = 0x8007DC2C; // type:func -Gfx_SetupDL_57Opa = 0x8007DC54; // type:func -Gfx_SetupDL_50Opa = 0x8007DC7C; // type:func -Gfx_SetupDL_51Opa = 0x8007DCA4; // type:func -Gfx_SetupDL_52Xlu = 0x8007DCCC; // type:func -Gfx_SetupDL_53Opa = 0x8007DCF4; // type:func -Gfx_SetupDL_54Opa = 0x8007DD1C; // type:func -Gfx_SetupDL_55Xlu = 0x8007DD44; // type:func -Gfx_SetupDL_26Opa = 0x8007DD6C; // type:func -Gfx_SetupDL_25Xlu2 = 0x8007DD94; // type:func -func_80093C80 = 0x8007DDBC; // type:func -Gfx_SetupDL_25Opa = 0x8007DE28; // type:func -Gfx_SetupDL_25Xlu = 0x8007DE50; // type:func -Gfx_SetupDL_31Opa = 0x8007DE78; // type:func -Gfx_SetupDL_32Opa = 0x8007DEA0; // type:func -Gfx_SetupDL_33Opa = 0x8007DEC8; // type:func -Gfx_SetupDL_64 = 0x8007DEF0; // type:func -Gfx_SetupDL_34 = 0x8007DF18; // type:func -Gfx_SetupDL_34Opa = 0x8007DF40; // type:func -Gfx_SetupDL_35Opa = 0x8007DF6C; // type:func -Gfx_SetupDL_44Xlu = 0x8007DF94; // type:func -Gfx_SetupDL_36Opa = 0x8007DFBC; // type:func -Gfx_SetupDL_28 = 0x8007DFE4; // type:func -Gfx_SetupDL_28Opa = 0x8007E00C; // type:func -Gfx_SetupDL_43Opa = 0x8007E034; // type:func -Gfx_SetupDL_45Opa = 0x8007E05C; // type:func -Gfx_SetupDL_46Overlay = 0x8007E084; // type:func -Gfx_SetupDL_38Xlu = 0x8007E0AC; // type:func -Gfx_SetupDL_4Xlu = 0x8007E0D4; // type:func -Gfx_SetupDL_37Opa = 0x8007E0FC; // type:func -Gfx_SetupDL_2Opa = 0x8007E124; // type:func -Gfx_SetupDL_39 = 0x8007E14C; // type:func -Gfx_SetupDL_39Opa = 0x8007E174; // type:func -Gfx_SetupDL_39Overlay = 0x8007E1A0; // type:func -Gfx_SetupDL_39Ptr = 0x8007E1CC; // type:func -Gfx_SetupDL_40Opa = 0x8007E1F8; // type:func -Gfx_SetupDL_41Opa = 0x8007E220; // type:func -Gfx_SetupDL_47Xlu = 0x8007E248; // type:func -Gfx_SetupDL_66 = 0x8007E270; // type:func -Gfx_SetupDL_67 = 0x8007E298; // type:func -Gfx_SetupDL_68NoCD = 0x8007E2C0; // type:func -Gfx_SetupDL_69NoCD = 0x8007E304; // type:func -func_800947AC = 0x8007E348; // type:func -Gfx_SetupDL_70 = 0x8007E38C; // type:func -Gfx_SetupDL_20NoCD = 0x8007E3B4; // type:func -Gfx_SetupDL_42Opa = 0x8007E3F8; // type:func -Gfx_SetupDL_42Overlay = 0x8007E420; // type:func -Gfx_SetupDL_48Opa = 0x8007E448; // type:func -Gfx_SetupDL_49Xlu = 0x8007E470; // type:func -Gfx_SetupDL_27Xlu = 0x8007E498; // type:func -Gfx_SetupDL_60NoCDXlu = 0x8007E4C0; // type:func -Gfx_SetupDL_61Xlu = 0x8007E508; // type:func -Gfx_SetupDL_56Opa = 0x8007E530; // type:func -Gfx_SetupDL_56Ptr = 0x8007E558; // type:func -Gfx_SetupDL_59Opa = 0x8007E584; // type:func -Gfx_BranchTexScroll = 0x8007E5AC; // type:func -func_80094E54 = 0x8007E650; // type:func -func_80094E78 = 0x8007E674; // type:func -Gfx_TexScroll = 0x8007E698; // type:func -Gfx_TwoTexScroll = 0x8007E71C; // type:func -Gfx_TwoTexScrollEnvColor = 0x8007E83C; // type:func -Gfx_EnvColor = 0x8007E99C; // type:func -Gfx_SetupFrame = 0x8007E9F4; // type:func -func_80095974 = 0x8007EFAC; // type:func -func_80095AA0 = 0x8007F090; // type:func -Room_DrawNormal = 0x8007F0A8; // type:func -Room_DrawCullable = 0x8007F2C4; // type:func -Room_DecodeJpeg = 0x8007F78C; // type:func -Room_DrawBackground2D = 0x8007F814; // type:func -Room_DrawImageSingle = 0x8007FB10; // type:func -Room_GetImageMultiBgEntry = 0x8007FEE0; // type:func -Room_DrawImageMulti = 0x8007FFCC; // type:func -Room_DrawImage = 0x8008039C; // type:func -func_80096FD4 = 0x80080404; // type:func -func_80096FE8 = 0x8008041C; // type:func -func_8009728C = 0x800805B8; // type:func -func_800973FC = 0x800806F0; // type:func -Room_Draw = 0x80080794; // type:func -func_80097534 = 0x800807E4; // type:func -Sample_HandleStateChange = 0x80080880; // type:func -Sample_Draw = 0x800808B4; // type:func -Sample_Main = 0x80080AA0; // type:func -Sample_Destroy = 0x80080ACC; // type:func -Sample_SetupView = 0x80080AD8; // type:func -Sample_LoadTitleStatic = 0x80080B90; // type:func -Sample_Init = 0x80080BF0; // type:func -Inventory_ChangeEquipment = 0x80080C80; // type:func -Inventory_DeleteEquipment = 0x80080CD8; // type:func -Inventory_ChangeUpgrade = 0x80080DE4; // type:func -Object_SpawnPersistent = 0x80080E40; // type:func -Object_InitContext = 0x80080F24; // type:func -Object_UpdateEntries = 0x80081080; // type:func -Object_GetSlot = 0x80081178; // type:func -Object_IsLoaded = 0x800811D8; // type:func -func_800981B8 = 0x80081208; // type:func -func_800982FC = 0x80081290; // type:func -Scene_ExecuteCommands = 0x800812F0; // type:func -Scene_CommandPlayerEntryList = 0x80081374; // type:func -Scene_CommandActorEntryList = 0x80081450; // type:func -Scene_CommandUnused2 = 0x800814A8; // type:func -Scene_CommandCollisionHeader = 0x800814F0; // type:func -Scene_CommandRoomList = 0x80081620; // type:func -Scene_CommandSpawnList = 0x80081678; // type:func -Scene_CommandSpecialFiles = 0x800816C0; // type:func -Scene_CommandRoomBehavior = 0x80081788; // type:func -Scene_CommandRoomShape = 0x800817E0; // type:func -Scene_CommandObjectList = 0x80081828; // type:func -Scene_CommandLightList = 0x800819DC; // type:func -Scene_CommandPathList = 0x80081A8C; // type:func -Scene_CommandTransitionActorEntryList = 0x80081AD4; // type:func -TransitionActor_InitContext = 0x80081B2C; // type:func -Scene_CommandLightSettingsList = 0x80081B3C; // type:func -Scene_CommandSkyboxSettings = 0x80081B94; // type:func -Scene_CommandSkyboxDisables = 0x80081BD8; // type:func -Scene_CommandTimeSettings = 0x80081C00; // type:func -Scene_CommandWindSettings = 0x80081F14; // type:func -Scene_CommandExitList = 0x80081F78; // type:func -Scene_CommandUndefined9 = 0x80081FC0; // type:func -Scene_CommandSoundSettings = 0x80081FD0; // type:func -Scene_CommandEchoSettings = 0x8008201C; // type:func -Scene_CommandAlternateHeaderList = 0x80082034; // type:func -Scene_CommandCutsceneData = 0x80082130; // type:func -Scene_CommandMiscSettings = 0x80082170; // type:func -Scene_SetTransitionForNextEntrance = 0x80082234; // type:func -Scene_DrawConfigDefault = 0x800822F0; // type:func -Scene_DrawConfigDekuTree = 0x80082330; // type:func -Scene_DrawConfigDekuTreeBoss = 0x80082478; // type:func -Scene_DrawConfigDodongosCavern = 0x8008255C; // type:func -Scene_DrawConfigTempleOfTime = 0x80082884; // type:func -Scene_DrawConfigGrottos = 0x8008309C; // type:func -Scene_DrawConfigChamberOfTheSages = 0x800833AC; // type:func -Scene_DrawConfigGreatFairyFountain = 0x800835D0; // type:func -Scene_DrawConfigGraveExitLightShining = 0x80083768; // type:func -Scene_DrawConfigFairysFountain = 0x80083840; // type:func -Scene_DrawConfigShadowTempleAndWell = 0x800839A4; // type:func -Scene_DrawConfigThievesHideout = 0x80083B30; // type:func -Scene_DrawConfigWaterTemple = 0x80083C18; // type:func -Scene_DrawConfigWaterTempleBoss = 0x80084388; // type:func -Scene_DrawConfigShootingGallery = 0x800844A8; // type:func -Scene_DrawConfigCastleCourtyardGuards = 0x8008455C; // type:func -Scene_DrawConfigOutsideGanonsCastle = 0x800846D4; // type:func -func_8009BEEC = 0x80084970; // type:func -Scene_DrawConfigGanonsTowerCollapseExterior = 0x80084B30; // type:func -Scene_DrawConfigIceCavern = 0x80084E3C; // type:func -Scene_DrawConfigRoyalFamilysTomb = 0x8008502C; // type:func -Scene_DrawConfigLakesideLaboratory = 0x800852B0; // type:func -Scene_DrawConfigCalmWater = 0x80085490; // type:func -Scene_DrawConfigGerudoTrainingGround = 0x80085598; // type:func -Gfx_TwoTexScrollPrimColor = 0x80085788; // type:func -Scene_DrawConfigFishingPond = 0x800858E8; // type:func -Scene_DrawConfigBombchuBowlingAlley = 0x80085A14; // type:func -Scene_DrawConfigLonLonBuildings = 0x80085C18; // type:func -Scene_DrawConfigMarketGuardHouse = 0x80085CE8; // type:func -Scene_DrawConfigPotionShopGranny = 0x80085E18; // type:func -Scene_DrawConfigForestTemple = 0x80085F90; // type:func -Scene_DrawConfigSpiritTemple = 0x80086180; // type:func -Scene_DrawConfigHyruleField = 0x800861F0; // type:func -Scene_DrawConfigKakarikoVillage = 0x800864EC; // type:func -Scene_DrawConfigZorasRiver = 0x800865BC; // type:func -Scene_DrawConfigKokiriForest = 0x800867D4; // type:func -Scene_DrawConfigLakeHylia = 0x80086C38; // type:func -Scene_DrawConfigZorasDomain = 0x80086DF8; // type:func -Scene_DrawConfigZorasFountain = 0x80086F54; // type:func -Scene_DrawConfigGerudoValley = 0x80087144; // type:func -Scene_DrawConfigLostWoods = 0x80087480; // type:func -Scene_DrawConfigDesertColossus = 0x8008767C; // type:func -Scene_DrawConfigGerudosFortress = 0x80087788; // type:func -Scene_DrawConfigHauntedWasteland = 0x800877F8; // type:func -Scene_DrawConfigHyruleCastle = 0x80087970; // type:func -Scene_DrawConfigDeathMountainTrail = 0x80087B14; // type:func -Scene_DrawConfigDeathMountainCrater = 0x80087CD8; // type:func -Scene_DrawConfigGoronCity = 0x80087EA4; // type:func -Scene_DrawConfigLonLonRanch = 0x80088014; // type:func -Scene_DrawConfigFireTemple = 0x800880E4; // type:func -Scene_DrawConfigJabuJabu = 0x80088288; // type:func -Scene_DrawConfigInsideGanonsCastle = 0x80088734; // type:func -Scene_DrawConfigInsideGanonsCastleCollapse = 0x80088938; // type:func -Scene_DrawConfigGanonsTowerCollapseInterior = 0x80088958; // type:func -Scene_DrawConfigBesitu = 0x80088978; // type:func -Scene_Draw = 0x80088AB0; // type:func -SkelAnime_DrawLimbLod = 0x80088AF0; // type:func -SkelAnime_DrawLod = 0x80088D58; // type:func -SkelAnime_DrawFlexLimbLod = 0x80088F48; // type:func -SkelAnime_DrawFlexLod = 0x800891D8; // type:func -SkelAnime_DrawLimbOpa = 0x80089450; // type:func -SkelAnime_DrawOpa = 0x8008969C; // type:func -SkelAnime_DrawFlexLimbOpa = 0x8008987C; // type:func -SkelAnime_DrawFlexOpa = 0x80089AF4; // type:func -SkelAnime_GetFrameData = 0x80089D58; // type:func -Animation_GetLength = 0x80089EC0; // type:func -Animation_GetLastFrame = 0x80089EFC; // type:func -SkelAnime_DrawLimb = 0x80089F44; // type:func -SkelAnime_Draw = 0x8008A184; // type:func -SkelAnime_DrawFlexLimb = 0x8008A374; // type:func -SkelAnime_DrawFlex = 0x8008A604; // type:func -SkelAnime_GetFrameDataLegacy = 0x8008A86C; // type:func -Animation_GetLimbCountLegacy = 0x8008AC70; // type:func -Animation_GetLengthLegacy = 0x8008ACAC; // type:func -Animation_GetLastFrameLegacy = 0x8008ACE8; // type:func -SkelAnime_InterpFrameTable = 0x8008AD30; // type:func -AnimTaskQueue_Reset = 0x8008B1B0; // type:func -AnimTaskQueue_SetNextGroup = 0x8008B1BC; // type:func -AnimTaskQueue_DisableTransformTasksForGroup = 0x8008B1DC; // type:func -AnimTaskQueue_NewTask = 0x8008B204; // type:func -AnimTaskQueue_AddLoadPlayerFrame = 0x8008B23C; // type:func -AnimTaskQueue_AddCopy = 0x8008B338; // type:func -AnimTaskQueue_AddInterp = 0x8008B3A0; // type:func -AnimTaskQueue_AddCopyUsingMap = 0x8008B410; // type:func -AnimTaskQueue_AddCopyUsingMapInverted = 0x8008B480; // type:func -AnimTaskQueue_AddActorMove = 0x8008B4F0; // type:func -AnimTask_LoadPlayerFrame = 0x8008B54C; // type:func -AnimTask_Copy = 0x8008B57C; // type:func -AnimTask_Interp = 0x8008B5EC; // type:func -AnimTask_CopyUsingMap = 0x8008B648; // type:func -AnimTask_CopyUsingMapInverted = 0x8008B6C8; // type:func -AnimTask_ActorMove = 0x8008B74C; // type:func -AnimTaskQueue_Update = 0x8008B7E0; // type:func -SkelAnime_InitLink = 0x8008B880; // type:func -LinkAnimation_SetUpdateFunction = 0x8008B9E4; // type:func -LinkAnimation_Update = 0x8008BA1C; // type:func -LinkAnimation_Morph = 0x8008BA40; // type:func -LinkAnimation_AnimateFrame = 0x8008BAFC; // type:func -LinkAnimation_Loop = 0x8008BBD8; // type:func -LinkAnimation_Once = 0x8008BC78; // type:func -Animation_SetMorph = 0x8008BD54; // type:func -LinkAnimation_Change = 0x8008BD78; // type:func -LinkAnimation_PlayOnce = 0x8008BEF0; // type:func -LinkAnimation_PlayOnceSetSpeed = 0x8008BF50; // type:func -LinkAnimation_PlayLoop = 0x8008BFB4; // type:func -LinkAnimation_PlayLoopSetSpeed = 0x8008C010; // type:func -LinkAnimation_CopyJointToMorph = 0x8008C070; // type:func -LinkAnimation_CopyMorphToJoint = 0x8008C0A0; // type:func -LinkAnimation_LoadToMorph = 0x8008C0D0; // type:func -LinkAnimation_LoadToJoint = 0x8008C114; // type:func -LinkAnimation_InterpJointMorph = 0x8008C158; // type:func -LinkAnimation_BlendToJoint = 0x8008C190; // type:func -LinkAnimation_BlendToMorph = 0x8008C230; // type:func -LinkAnimation_EndLoop = 0x8008C2D0; // type:func -Animation_OnFrameImpl = 0x8008C2F4; // type:func -LinkAnimation_OnFrame = 0x8008C3AC; // type:func -SkelAnime_Init = 0x8008C3FC; // type:func -SkelAnime_InitFlex = 0x8008C500; // type:func -SkelAnime_InitSkin = 0x8008C60C; // type:func -SkelAnime_SetUpdate = 0x8008C6EC; // type:func -SkelAnime_Update = 0x8008C738; // type:func -SkelAnime_Morph = 0x8008C75C; // type:func -SkelAnime_MorphTaper = 0x8008C81C; // type:func -SkelAnime_AnimateFrame = 0x8008C9A4; // type:func -SkelAnime_LoopFull = 0x8008CAEC; // type:func -SkelAnime_LoopPartial = 0x8008CB8C; // type:func -SkelAnime_Once = 0x8008CC34; // type:func -Animation_ChangeImpl = 0x8008CD38; // type:func -Animation_Change = 0x8008CEF4; // type:func -Animation_PlayOnce = 0x8008CF3C; // type:func -Animation_MorphToPlayOnce = 0x8008CF94; // type:func -Animation_PlayOnceSetSpeed = 0x8008CFF0; // type:func -Animation_PlayLoop = 0x8008D04C; // type:func -Animation_MorphToLoop = 0x8008D0A0; // type:func -Animation_PlayLoopSetSpeed = 0x8008D0D8; // type:func -Animation_EndLoop = 0x8008D130; // type:func -Animation_Reverse = 0x8008D15C; // type:func -SkelAnime_CopyFrameTableTrue = 0x8008D180; // type:func -SkelAnime_CopyFrameTableFalse = 0x8008D1E8; // type:func -SkelAnime_UpdateTranslation = 0x8008D254; // type:func -Animation_OnFrame = 0x8008D420; // type:func -SkelAnime_Free = 0x8008D448; // type:func -SkelAnime_CopyFrameTable = 0x8008D494; // type:func -Skin_UpdateVertices = 0x8008D4E0; // type:func -Skin_ApplyLimbModifications = 0x8008D6AC; // type:func -Skin_DrawAnimatedLimb = 0x8008DB18; // type:func -Skin_DrawLimb = 0x8008DBF4; // type:func -Skin_DrawImpl = 0x8008DD1C; // type:func -func_800A6330 = 0x8008DF48; // type:func -func_800A6360 = 0x8008DF78; // type:func -func_800A6394 = 0x8008DFAC; // type:func -func_800A63CC = 0x8008DFE4; // type:func -Skin_GetLimbPos = 0x8008E020; // type:func -Skin_InitAnimatedLimb = 0x8008E080; // type:func -Skin_Init = 0x8008E25C; // type:func -Skin_Free = 0x8008E42C; // type:func -func_800A698C = 0x8008E500; // type:func -Skin_ApplyAnimTransformations = 0x8008E63C; // type:func -SkinMatrix_Vec3fMtxFMultXYZW = 0x8008E990; // type:func -SkinMatrix_Vec3fMtxFMultXYZ = 0x8008EA78; // type:func -SkinMatrix_MtxFMtxFMult = 0x8008EB28; // type:func -SkinMatrix_GetClear = 0x8008EE84; // type:func -SkinMatrix_Clear = 0x8008EE98; // type:func -SkinMatrix_MtxFCopy = 0x8008EEF0; // type:func -SkinMatrix_Invert = 0x8008EF78; // type:func -SkinMatrix_SetScale = 0x8008F218; // type:func -SkinMatrix_SetRotateZYX = 0x8008F27C; // type:func -SkinMatrix_SetRotateYXZ = 0x8008F40C; // type:func -SkinMatrix_SetTranslate = 0x8008F59C; // type:func -SkinMatrix_SetTranslateRotateZYXScale = 0x8008F600; // type:func -SkinMatrix_SetTranslateRotateYXZScale = 0x8008F684; // type:func -SkinMatrix_SetTranslateRotateZYX = 0x8008F708; // type:func -SkinMatrix_Vec3fToVec3s = 0x8008F768; // type:func -SkinMatrix_Vec3sToVec3f = 0x8008F7AC; // type:func -SkinMatrix_MtxFToMtx = 0x8008F7F0; // type:func -SkinMatrix_MtxFToNewMtx = 0x8008FA08; // type:func -SkinMatrix_SetRotateAxis = 0x8008FA50; // type:func -func_800A8030 = 0x8008FBC0; // type:func -Sram_InitNewSave = 0x8008FD30; // type:func -Sram_InitDebugSave = 0x8008FE5C; // type:func -Sram_OpenSave = 0x8009001C; // type:func -Sram_WriteSave = 0x80090360; // type:func -Sram_VerifyAndLoadAllSaves = 0x800904AC; // type:func -Sram_InitSave = 0x80090978; // type:func -Sram_EraseSave = 0x80090C18; // type:func -Sram_CopySave = 0x80090D30; // type:func -Sram_WriteSramHeader = 0x80090F20; // type:func -Sram_InitSram = 0x80090F54; // type:func -Sram_Alloc = 0x80091024; // type:func -Sram_Init = 0x80091054; // type:func -SsSram_Init = 0x80091070; // type:func -SsSram_Dma = 0x80091148; // type:func -SsSram_ReadWrite = 0x800911D4; // type:func -Rumble_Update = 0x80091240; // type:func -Rumble_Override = 0x8009127C; // type:func -Rumble_Request = 0x80091318; // type:func -Rumble_Init = 0x800913D4; // type:func -Rumble_Destroy = 0x80091410; // type:func -Rumble_Controller1HasRumblePak = 0x80091468; // type:func -Rumble_Reset = 0x80091480; // type:func -Rumble_ClearRequests = 0x80091494; // type:func -Rumble_SetUpdateEnabled = 0x800914A4; // type:func -View_ViewportToVp = 0x800914C0; // type:func -View_New = 0x8009152C; // type:func -View_Free = 0x80091578; // type:func -View_Init = 0x80091598; // type:func -View_LookAt = 0x80091658; // type:func -View_LookAtUnsafe = 0x800916F4; // type:func -View_SetScale = 0x80091744; // type:func -View_GetScale = 0x80091764; // type:func -View_SetPerspective = 0x80091774; // type:func -View_GetPerspective = 0x800917A4; // type:func -View_SetOrtho = 0x800917C4; // type:func -View_GetOrtho = 0x80091800; // type:func -View_SetViewport = 0x80091820; // type:func -View_GetViewport = 0x80091854; // type:func -View_ApplyLetterbox = 0x8009187C; // type:func -View_SetDistortionOrientation = 0x800919BC; // type:func -View_SetDistortionScale = 0x800919E0; // type:func -View_SetDistortionSpeed = 0x80091A04; // type:func -View_InitDistortion = 0x80091A18; // type:func -View_ClearDistortion = 0x80091A7C; // type:func -View_SetDistortion = 0x80091AB0; // type:func -View_StepDistortion = 0x80091B04; // type:func -View_Apply = 0x80091CBC; // type:func -View_ApplyPerspective = 0x80091D08; // type:func -View_ApplyOrtho = 0x80091FFC; // type:func -View_ApplyOrthoToOverlay = 0x800921A8; // type:func -View_ApplyPerspectiveToOverlay = 0x800923DC; // type:func -View_UpdateViewingMatrix = 0x8009272C; // type:func -View_ApplyTo = 0x80092798; // type:func -ViMode_LogPrint = 0x80092BC0; // type:func -ViMode_Configure = 0x80092BCC; // type:func -ViMode_Save = 0x80093174; // type:func -ViMode_Load = 0x80093254; // type:func -ViMode_Init = 0x800932DC; // type:func -ViMode_Destroy = 0x80093344; // type:func -ViMode_ConfigureFeatures = 0x80093350; // type:func -ViMode_Update = 0x800933B4; // type:func -VisCvg_Init = 0x80093730; // type:func -VisCvg_Destroy = 0x80093754; // type:func -VisCvg_Draw = 0x80093760; // type:func -VisMono_Init = 0x800938D0; // type:func -VisMono_Destroy = 0x80093920; // type:func -VisMono_DesaturateTLUT = 0x80093944; // type:func -VisMono_DesaturateDList = 0x80093C58; // type:func -VisMono_Draw = 0x80093E88; // type:func -VisMono_DrawOld = 0x8009407C; // type:func -VisZBuf_Init = 0x800940F0; // type:func -VisZBuf_Destroy = 0x80094124; // type:func -VisZBuf_Draw = 0x80094130; // type:func -Skybox_CalculateFace256 = 0x80094380; // type:func -Skybox_CalculateFace128 = 0x80094A90; // type:func -Skybox_Calculate256 = 0x80095798; // type:func -Skybox_Calculate128 = 0x80095948; // type:func -Skybox_Setup = 0x800959E8; // type:func -Skybox_Init = 0x80096B3C; // type:func -Skybox_UpdateMatrix = 0x80096C50; // type:func -Skybox_Draw = 0x80096CD8; // type:func -Skybox_Update = 0x80097320; // type:func -PlayerCall_InitFuncPtrs = 0x80097330; // type:func -PlayerCall_Init = 0x80097398; // type:func -PlayerCall_Destroy = 0x800973E0; // type:func -PlayerCall_Update = 0x80097420; // type:func -PlayerCall_Draw = 0x80097460; // type:func -TransitionTile_InitGraphics = 0x800974A0; // type:func -TransitionTile_InitVtxData = 0x8009786C; // type:func -TransitionTile_Destroy = 0x8009792C; // type:func -TransitionTile_Init = 0x800979B8; // type:func -TransitionTile_SetVtx = 0x80097B30; // type:func -TransitionTile_Draw = 0x80097C44; // type:func -TransitionTile_Suck = 0x80097D70; // type:func -TransitionTile_Update = 0x80097EA4; // type:func -func_800B23F0 = 0x80097EB0; // type:func -TransitionTriforce_Start = 0x80097EC0; // type:func -TransitionTriforce_Init = 0x80097EF8; // type:func -TransitionTriforce_Destroy = 0x80097F98; // type:func -TransitionTriforce_Update = 0x80097FA4; // type:func -TransitionTriforce_SetColor = 0x800980B8; // type:func -TransitionTriforce_SetType = 0x800980C4; // type:func -TransitionTriforce_SetState = 0x800980D0; // type:func -TransitionTriforce_Draw = 0x800980DC; // type:func -TransitionTriforce_IsDone = 0x800983EC; // type:func -TransitionWipe_Start = 0x80098480; // type:func -TransitionWipe_Init = 0x80098538; // type:func -TransitionWipe_Destroy = 0x80098564; // type:func -TransitionWipe_Update = 0x80098570; // type:func -TransitionWipe_Draw = 0x80098650; // type:func -TransitionWipe_IsDone = 0x8009888C; // type:func -TransitionWipe_SetType = 0x80098898; // type:func -TransitionWipe_SetColor = 0x800988D8; // type:func -TransitionWipe_SetUnkColor = 0x800988E4; // type:func -TransitionCircle_Start = 0x800988F0; // type:func -TransitionCircle_Init = 0x80098ADC; // type:func -TransitionCircle_Destroy = 0x80098B08; // type:func -TransitionCircle_Update = 0x80098B14; // type:func -TransitionCircle_Draw = 0x80098C98; // type:func -TransitionCircle_IsDone = 0x80098F34; // type:func -TransitionCircle_SetType = 0x80098F40; // type:func -TransitionCircle_SetColor = 0x80098F98; // type:func -TransitionCircle_SetUnkColor = 0x80098FA4; // type:func -TransitionFade_Start = 0x80098FB0; // type:func -TransitionFade_Init = 0x8009900C; // type:func -TransitionFade_Destroy = 0x80099038; // type:func -TransitionFade_Update = 0x80099044; // type:func -TransitionFade_Draw = 0x800991D4; // type:func -TransitionFade_IsDone = 0x800992A0; // type:func -TransitionFade_SetColor = 0x800992AC; // type:func -TransitionFade_SetType = 0x800992B8; // type:func -Letterbox_SetSizeTarget = 0x80099310; // type:func -Letterbox_GetSizeTarget = 0x80099320; // type:func -Letterbox_SetSize = 0x80099330; // type:func -Letterbox_GetSize = 0x80099340; // type:func -Letterbox_Init = 0x80099350; // type:func -Letterbox_Destroy = 0x80099370; // type:func -Letterbox_Update = 0x80099380; // type:func -func_800BB0A0 = 0x80099480; // type:func -func_800BB2B4 = 0x80099694; // type:func -KaleidoManager_LoadOvl = 0x80099950; // type:func -KaleidoManager_ClearOvl = 0x800999AC; // type:func -KaleidoManager_Init = 0x800999FC; // type:func -KaleidoManager_Destroy = 0x80099A6C; // type:func -KaleidoManager_GetRamAddr = 0x80099AAC; // type:func -KaleidoScopeCall_LoadPlayer = 0x80099B80; // type:func -KaleidoScopeCall_Init = 0x80099BCC; // type:func -KaleidoScopeCall_Destroy = 0x80099C18; // type:func -KaleidoScopeCall_Update = 0x80099C38; // type:func -KaleidoScopeCall_Draw = 0x80099DD8; // type:func -Play_RequestViewpointBgCam = 0x80099E60; // type:func -Play_SetViewpoint = 0x80099EA0; // type:func -Play_CheckViewpoint = 0x80099F4C; // type:func -Play_SetShopBrowsingViewpoint = 0x80099F74; // type:func -Play_SetupTransition = 0x80099FA0; // type:func -func_800BC88C = 0x8009A24C; // type:func -Play_SetFog = 0x8009A264; // type:func -Play_Destroy = 0x8009A2B0; // type:func -Play_Init = 0x8009A41C; // type:func -Play_Update = 0x8009ABD4; // type:func -Play_DrawOverlayElements = 0x8009BCC8; // type:func -Play_Draw = 0x8009BD60; // type:func -Play_Main = 0x8009C7A4; // type:func -Play_InCsMode = 0x8009C7E4; // type:func -func_800BFCB8 = 0x8009C818; // type:func -Play_LoadFile = 0x8009C9C4; // type:func -Play_InitEnvironment = 0x8009CA20; // type:func -Play_InitScene = 0x8009CA68; // type:func -Play_SpawnScene = 0x8009CB6C; // type:func -Play_GetScreenPos = 0x8009CC14; // type:func -Play_CreateSubCamera = 0x8009CCD8; // type:func -Play_GetActiveCamId = 0x8009CD88; // type:func -Play_ChangeCameraStatus = 0x8009CD94; // type:func -Play_ClearCamera = 0x8009CE04; // type:func -Play_ClearAllSubCameras = 0x8009CE6C; // type:func -Play_GetCamera = 0x8009CED8; // type:func -Play_SetCameraAtEye = 0x8009CF10; // type:func -Play_SetCameraAtEyeUp = 0x8009D020; // type:func -Play_SetCameraFov = 0x8009D144; // type:func -Play_SetCameraRoll = 0x8009D18C; // type:func -Play_CopyCamera = 0x8009D1D8; // type:func -Play_InitCameraDataUsingPlayer = 0x8009D254; // type:func -Play_RequestCameraSetting = 0x8009D2C4; // type:func -Play_ReturnToMainCam = 0x8009D300; // type:func -Play_GetCameraUID = 0x8009D3DC; // type:func -func_800C09D8 = 0x8009D410; // type:func -Play_SaveSceneFlags = 0x8009D47C; // type:func -Play_SetRespawnData = 0x8009D4C4; // type:func -Play_SetupRespawnPoint = 0x8009D534; // type:func -Play_TriggerVoidOut = 0x8009D5A0; // type:func -Play_LoadToLastEntrance = 0x8009D5F8; // type:func -Play_TriggerRespawn = 0x8009D6CC; // type:func -Play_CamIsNotFixed = 0x8009D700; // type:func -FrameAdvance_IsEnabled = 0x8009D770; // type:func -func_800C0D34 = 0x8009D780; // type:func -func_800C0DB4 = 0x8009D800; // type:func -PreRender_SetValuesSave = 0x8009D8C0; // type:func -PreRender_Init = 0x8009D8FC; // type:func -PreRender_SetValues = 0x8009D930; // type:func -PreRender_Destroy = 0x8009D964; // type:func -PreRender_CopyImage = 0x8009D988; // type:func -PreRender_CopyImageRegionImpl = 0x8009DC50; // type:func -func_800C170C = 0x8009E098; // type:func -func_800C1AE8 = 0x8009E414; // type:func -PreRender_CoverageRgba16ToI8 = 0x8009E450; // type:func -PreRender_SaveZBuffer = 0x8009E768; // type:func -PreRender_SaveFramebuffer = 0x8009E7A0; // type:func -PreRender_FetchFbufCoverage = 0x8009E7D8; // type:func -PreRender_DrawCoverage = 0x8009E8F0; // type:func -PreRender_RestoreZBuffer = 0x8009E934; // type:func -func_800C213C = 0x8009E958; // type:func -PreRender_RestoreFramebuffer = 0x8009EC88; // type:func -PreRender_CopyImageRegion = 0x8009ECAC; // type:func -PreRender_AntiAliasFilter = 0x8009ECCC; // type:func -PreRender_DivotFilter = 0x8009F78C; // type:func -PreRender_ApplyFilters = 0x8009F8E0; // type:func -THGA_Init = 0x8009F9B0; // type:func -THGA_Destroy = 0x8009F9D0; // type:func -THGA_IsCrash = 0x8009F9F0; // type:func -THGA_Reset = 0x8009FA10; // type:func -THGA_GetRemaining = 0x8009FA30; // type:func -THGA_GetHead = 0x8009FA50; // type:func -THGA_SetHead = 0x8009FA70; // type:func -THGA_GetTail = 0x8009FA90; // type:func -THGA_AllocDisplayList = 0x8009FAB0; // type:func -THGA_AllocGfx = 0x8009FAD4; // type:func -THGA_AllocGfx2 = 0x8009FAF4; // type:func -THGA_AllocTail = 0x8009FB14; // type:func -THGA_AllocMtxArray = 0x8009FB34; // type:func -THGA_AllocMtx = 0x8009FB58; // type:func -THGA_AllocVtxArray = 0x8009FB78; // type:func -THGA_AllocVtx = 0x8009FB9C; // type:func -THA_GetHead = 0x8009FBC0; // type:func -THA_SetHead = 0x8009FBCC; // type:func -THA_GetTail = 0x8009FBD8; // type:func -THA_AllocHead = 0x8009FBE4; // type:func -THA_AllocHeadByte = 0x8009FBF8; // type:func -THA_AllocTail = 0x8009FC18; // type:func -THA_AllocTailAlign16 = 0x8009FCA8; // type:func -THA_AllocTailAlign = 0x8009FCC8; // type:func -THA_GetRemaining = 0x8009FCE4; // type:func -THA_IsCrash = 0x8009FCF8; // type:func -THA_Reset = 0x8009FD1C; // type:func -THA_Init = 0x8009FD38; // type:func -THA_Destroy = 0x8009FD5C; // type:func -AudioMgr_StopAllSfx = 0x8009FD80; // type:func -AudioMgr_NotifyTaskDone = 0x8009FDD0; // type:func -AudioMgr_HandleRetrace = 0x8009FE08; // type:func -AudioMgr_HandlePreNMI = 0x8009FF90; // type:func -AudioMgr_ThreadEntry = 0x8009FFB4; // type:func -AudioMgr_WaitForInit = 0x800A00E4; // type:func -AudioMgr_Init = 0x800A0110; // type:func -Setup_InitImpl = 0x800A01E0; // type:func -Setup_Destroy = 0x800A021C; // type:func -Setup_Init = 0x800A0228; // type:func -GameState_SetFBFilter = 0x800A0250; // type:func -func_800C4344 = 0x800A03A4; // type:func -GameState_Draw = 0x800A03B0; // type:func -GameState_SetFrameBuffer = 0x800A04A8; // type:func -func_800C49F4 = 0x800A058C; // type:func -GameState_ReqPadData = 0x800A0604; // type:func -GameState_Update = 0x800A0634; // type:func -GameState_InitArena = 0x800A06B0; // type:func -GameState_Realloc = 0x800A0720; // type:func -GameState_Init = 0x800A07E0; // type:func -GameState_Destroy = 0x800A08D8; // type:func -GameState_GetInit = 0x800A0988; // type:func -GameState_GetSize = 0x800A0994; // type:func -GameState_IsRunning = 0x800A09A0; // type:func -GameState_GetArenaSize = 0x800A09AC; // type:func -GameAlloc_Log = 0x800A09D0; // type:func -GameAlloc_Malloc = 0x800A09F0; // type:func -GameAlloc_Free = 0x800A0A5C; // type:func -GameAlloc_Cleanup = 0x800A0AA8; // type:func -GameAlloc_Init = 0x800A0AF8; // type:func -Graph_InitTHGA = 0x800A0B10; // type:func -Graph_GetNextGameState = 0x800A0C28; // type:func -Graph_Init = 0x800A0CD8; // type:func -Graph_Destroy = 0x800A0D48; // type:func -Graph_TaskSet00 = 0x800A0D54; // type:func -Graph_Update = 0x800A1098; // type:func -Graph_ThreadEntry = 0x800A134C; // type:func -Graph_Alloc = 0x800A1444; // type:func -Graph_Alloc2 = 0x800A1478; // type:func -Gfx_Open = 0x800A14B0; // type:func -Gfx_Close = 0x800A14BC; // type:func -Gfx_Alloc = 0x800A14D4; // type:func -ListAlloc_Init = 0x800A1510; // type:func -ListAlloc_Alloc = 0x800A1524; // type:func -ListAlloc_Free = 0x800A1590; // type:func -ListAlloc_FreeAll = 0x800A1610; // type:func -Main = 0x800A1660; // type:func -PadMgr_AcquireSerialEventQueue = 0x800A19C0; // type:func -PadMgr_ReleaseSerialEventQueue = 0x800A19F0; // type:func -PadMgr_LockPadData = 0x800A1A18; // type:func -PadMgr_UnlockPadData = 0x800A1A44; // type:func -PadMgr_UpdateRumble = 0x800A1A70; // type:func -PadMgr_RumbleStop = 0x800A1CC0; // type:func -PadMgr_RumbleReset = 0x800A1D58; // type:func -PadMgr_RumbleSetSingle = 0x800A1D68; // type:func -PadMgr_RumbleSet = 0x800A1D80; // type:func -PadMgr_UpdateInputs = 0x800A1DB0; // type:func -PadMgr_HandleRetrace = 0x800A1F90; // type:func -PadMgr_HandlePreNMI = 0x800A2128; // type:func -PadMgr_RequestPadData = 0x800A214C; // type:func -PadMgr_ThreadEntry = 0x800A22C8; // type:func -PadMgr_Init = 0x800A23C4; // type:func -Sched_SwapFrameBufferImpl = 0x800A24C0; // type:func -Sched_SwapFrameBuffer = 0x800A2530; // type:func -Sched_HandlePreNMI = 0x800A2580; // type:func -Sched_HandleNMI = 0x800A258C; // type:func -Sched_QueueTask = 0x800A25B0; // type:func -Sched_Yield = 0x800A261C; // type:func -Sched_GfxTaskFramebufferValid = 0x800A2650; // type:func -Sched_Schedule = 0x800A2714; // type:func -Sched_SetNextFramebufferFromTask = 0x800A2848; // type:func -Sched_TaskComplete = 0x800A2894; // type:func -Sched_RunTask = 0x800A290C; // type:func -Sched_HandleNotification = 0x800A2A70; // type:func -Sched_HandleRetrace = 0x800A2B60; // type:func -Sched_HandleRSPDone = 0x800A2C38; // type:func -Sched_HandleRDPDone = 0x800A2E4C; // type:func -Sched_Notify = 0x800A2F14; // type:func -Sched_ThreadEntry = 0x800A2F38; // type:func -Sched_Init = 0x800A306C; // type:func -SpeedMeter_InitImpl = 0x800A3140; // type:func -SpeedMeter_Init = 0x800A3150; // type:func -SpeedMeter_Destroy = 0x800A3174; // type:func -SpeedMeter_DrawTimeEntries = 0x800A3180; // type:func -SpeedMeter_InitAllocEntry = 0x800A3644; // type:func -SpeedMeter_DrawAllocEntry = 0x800A3688; // type:func -SpeedMeter_DrawAllocEntries = 0x800A38DC; // type:func -SysCfb_Init = 0x800A3B80; // type:func -SysCfb_Reset = 0x800A3C48; // type:func -SysCfb_GetFbPtr = 0x800A3C68; // type:func -SysCfb_GetFbEnd = 0x800A3C90; // type:func -Math_FactorialF = 0x800A3CA0; // type:func -Math_Factorial = 0x800A3DA0; // type:func -Math_PowF = 0x800A3E64; // type:func -Math_SinF = 0x800A3E8C; // type:func -Math_CosF = 0x800A3EE0; // type:func -Math3D_PlaneVsLineSegClosestPoint = 0x800A3F40; // type:func -Math3D_LineVsLineClosestTwoPoints = 0x800A4060; // type:func -Math3D_LineClosestToPoint = 0x800A430C; // type:func -Math3D_FindPointOnPlaneIntersect = 0x800A43F8; // type:func -Math3D_PlaneVsPlaneNewLine = 0x800A4458; // type:func -Math3D_PlaneVsPlaneVsLineClosestPoint = 0x800A4638; // type:func -Math3D_PointOnInfiniteLine = 0x800A46B4; // type:func -Math3D_LineSplitRatio = 0x800A4700; // type:func -Math3D_Cos = 0x800A474C; // type:func -Math3D_CosOut = 0x800A4770; // type:func -Math3D_Vec3fReflect = 0x800A4828; // type:func -Math3D_PointInSquare2D = 0x800A48FC; // type:func -Math3D_CirSquareVsTriSquare = 0x800A4960; // type:func -Math3D_SphCubeVsTriCube = 0x800A4AA0; // type:func -Math3D_Dist1DSq = 0x800A4CC4; // type:func -Math3D_Dist1D = 0x800A4CDC; // type:func -Math3D_Dist2DSq = 0x800A4D00; // type:func -Math3D_Dist2D = 0x800A4D44; // type:func -Math3D_Vec3fMagnitudeSq = 0x800A4D74; // type:func -Math3D_Vec3fMagnitude = 0x800A4DA0; // type:func -Math3D_Vec3fDistSq = 0x800A4DC8; // type:func -Math3D_Vec3f_DistXYZ = 0x800A4DF0; // type:func -Math3D_DistXYZ16toF = 0x800A4E10; // type:func -Math3D_Vec3fDiff_CrossZ = 0x800A4E88; // type:func -Math3D_Vec3fDiff_CrossX = 0x800A4EC8; // type:func -Math3D_Vec3fDiff_CrossY = 0x800A4F08; // type:func -Math3D_Vec3f_Cross = 0x800A4F48; // type:func -Math3D_SurfaceNorm = 0x800A4FBC; // type:func -Math3D_PointRelativeToCubeFaces = 0x800A5024; // type:func -Math3D_PointRelativeToCubeEdges = 0x800A50D0; // type:func -Math3D_PointRelativeToCubeVertices = 0x800A5280; // type:func -Math3D_LineVsCube = 0x800A53FC; // type:func -Math3D_LineVsCubeShort = 0x800A5E74; // type:func -Math3D_RotateXZPlane = 0x800A5FE0; // type:func -Math3D_DefPlane = 0x800A606C; // type:func -Math3D_Planef = 0x800A6180; // type:func -Math3D_Plane = 0x800A61C0; // type:func -Math3D_UDistPlaneToPos = 0x800A61FC; // type:func -Math3D_DistPlaneToPos = 0x800A6234; // type:func -Math3D_TriChkPointParaYImpl = 0x800A62B8; // type:func -Math3D_TriChkPointParaYDeterminate = 0x800A65D4; // type:func -Math3D_TriChkPointParaYSlopedY = 0x800A661C; // type:func -Math3D_TriChkPointParaYIntersectDist = 0x800A666C; // type:func -Math3D_TriChkPointParaYIntersectInsideTri = 0x800A671C; // type:func -Math3D_TriChkPointParaY = 0x800A67C8; // type:func -Math3D_TriChkLineSegParaYIntersect = 0x800A6844; // type:func -Math3D_TriChkPointParaYDist = 0x800A69B8; // type:func -Math3D_TriChkPointParaXImpl = 0x800A6A2C; // type:func -Math3D_TriChkPointParaXDeterminate = 0x800A6D48; // type:func -Math3D_TriChkPointParaXIntersect = 0x800A6D90; // type:func -Math3D_TriChkPointParaX = 0x800A6E44; // type:func -Math3D_TriChkLineSegParaXIntersect = 0x800A6EC0; // type:func -Math3D_TriChkPointParaXDist = 0x800A7048; // type:func -Math3D_TriChkPointParaZImpl = 0x800A70BC; // type:func -Math3D_TriChkPointParaZDeterminate = 0x800A7404; // type:func -Math3D_TriChkPointParaZIntersect = 0x800A744C; // type:func -Math3D_TriChkPointParaZ = 0x800A7500; // type:func -Math3D_TriChkLineSegParaZIntersect = 0x800A757C; // type:func -Math3D_TriChkLineSegParaZDist = 0x800A7708; // type:func -Math3D_LineSegFindPlaneIntersect = 0x800A777C; // type:func -Math3D_LineSegVsPlane = 0x800A7858; // type:func -Math3D_TriLineIntersect = 0x800A7960; // type:func -Math3D_TriNorm = 0x800A7AC4; // type:func -Math3D_PointInSph = 0x800A7B74; // type:func -Math3D_PointDistSqToLine2D = 0x800A7BC4; // type:func -Math3D_LineVsSph = 0x800A7D0C; // type:func -Math3D_GetSphVsTriIntersectPoint = 0x800A7F14; // type:func -Math3D_TriVsSphIntersect = 0x800A8054; // type:func -Math3D_PointInCyl = 0x800A8474; // type:func -Math3D_CylVsLineSeg = 0x800A8530; // type:func -Math3D_CylTriVsIntersect = 0x800A8EF8; // type:func -Math3D_CylVsTri = 0x800A9378; // type:func -Math3D_SphVsSph = 0x800A9398; // type:func -Math3D_SphVsSphOverlap = 0x800A93B8; // type:func -Math3D_SphVsSphOverlapCenterDist = 0x800A93D8; // type:func -Math3D_SphVsCylOverlap = 0x800A94B0; // type:func -Math3D_SphVsCylOverlapCenterDist = 0x800A94D0; // type:func -Math3D_CylVsCylOverlap = 0x800A9640; // type:func -Math3D_CylVsCylOverlapCenterDist = 0x800A9660; // type:func -Math3D_TriVsTriIntersect = 0x800A9830; // type:func -Math3D_XZInSphere = 0x800A9BB0; // type:func -Math3D_XYInSphere = 0x800A9C24; // type:func -Math3D_YZInSphere = 0x800A9C98; // type:func -Math_GetAtan2Tbl = 0x800A9D10; // type:func -Math_Atan2S = 0x800A9D88; // type:func -Math_Atan2F = 0x800A9F00; // type:func -Matrix_Init = 0x800A9F40; // type:func -Matrix_Push = 0x800A9F7C; // type:func -Matrix_Pop = 0x800A9FB4; // type:func -Matrix_Get = 0x800A9FD0; // type:func -Matrix_Put = 0x800A9FF4; // type:func -Matrix_GetCurrent = 0x800AA01C; // type:func -Matrix_Mult = 0x800AA02C; // type:func -Matrix_Translate = 0x800AA084; // type:func -Matrix_Scale = 0x800AA18C; // type:func -Matrix_RotateX = 0x800AA270; // type:func -Matrix_RotateY = 0x800AA424; // type:func -Matrix_RotateZ = 0x800AA5DC; // type:func -Matrix_RotateZYX = 0x800AA790; // type:func -Matrix_TranslateRotateZYX = 0x800AAA4C; // type:func -Matrix_SetTranslateRotateYXZ = 0x800AADA0; // type:func -Matrix_MtxFToMtx = 0x800AAF4C; // type:func -Matrix_ToMtx = 0x800AB168; // type:func -Matrix_NewMtx = 0x800AB190; // type:func -Matrix_MtxFToNewMtx = 0x800AB1BC; // type:func -Matrix_MultVec3f = 0x800AB1E8; // type:func -Matrix_MtxFCopy = 0x800AB2A0; // type:func -Matrix_MtxToMtxF = 0x800AB3A8; // type:func -Matrix_MultVec3fExt = 0x800AB5FC; // type:func -Matrix_Transpose = 0x800AB6AC; // type:func -Matrix_ReplaceRotation = 0x800AB6E4; // type:func -Matrix_MtxFToYXZRotS = 0x800AB7E0; // type:func -Matrix_MtxFToZYXRotS = 0x800AB978; // type:func -Matrix_RotateAxis = 0x800ABB10; // type:func -Matrix_SetTranslateUniformScaleMtxF = 0x800ABF78; // type:func -Matrix_SetTranslateUniformScaleMtx = 0x800ABFE0; // type:func -Matrix_SetTranslateUniformScaleMtx2 = 0x800AC030; // type:func -Matrix_SetTranslateScaleMtx1 = 0x800AC120; // type:func -Matrix_SetTranslateScaleMtx2 = 0x800AC240; // type:func -SysUcode_GetUCodeBoot = 0x800AC340; // type:func -SysUcode_GetUCodeBootSize = 0x800AC350; // type:func -SysUcode_GetUCode = 0x800AC36C; // type:func -SysUcode_GetUCodeData = 0x800AC37C; // type:func -RumbleMgr_Update = 0x800AC390; // type:func -RumbleMgr_Init = 0x800AC6A0; // type:func -RumbleMgr_Destroy = 0x800AC6D8; // type:func -func_800D31A0 = 0x800AC6F0; // type:func -IrqMgr_AddClient = 0x800AC720; // type:func -IrqMgr_RemoveClient = 0x800AC7AC; // type:func -IrqMgr_SendMesgToClients = 0x800AC838; // type:func -IrqMgr_JamMesgToClients = 0x800AC89C; // type:func -IrqMgr_HandlePreNMI = 0x800AC900; // type:func -IrqMgr_CheckStacks = 0x800AC998; // type:func -IrqMgr_HandlePreNMI450 = 0x800AC9B8; // type:func -IrqMgr_HandlePreNMI480 = 0x800ACA34; // type:func -IrqMgr_HandlePreNMI500 = 0x800ACAC8; // type:func -IrqMgr_HandleRetrace = 0x800ACAEC; // type:func -IrqMgr_ThreadEntry = 0x800ACBA4; // type:func -IrqMgr_Init = 0x800ACC78; // type:func -Fault_SleepImpl = 0x800ACD40; // type:func -Fault_ClientProcessThread = 0x800ACDB0; // type:func -Fault_ClientRunTask = 0x800ACE24; // type:func -Fault_ProcessClient = 0x800ACFA8; // type:func -Fault_AddClient = 0x800ACFFC; // type:func -Fault_RemoveClient = 0x800AD0E0; // type:func -Fault_AddAddrConvClient = 0x800AD1D8; // type:func -Fault_RemoveAddrConvClient = 0x800AD2B0; // type:func -Fault_ConvertAddress = 0x800AD3A8; // type:func -Fault_Sleep = 0x800AD45C; // type:func -Fault_PadCallback = 0x800AD498; // type:func -Fault_UpdatePadImpl = 0x800AD4D4; // type:func -Fault_WaitForInputImpl = 0x800AD520; // type:func -Fault_WaitForInput = 0x800AD66C; // type:func -Fault_DrawRec = 0x800AD6B8; // type:func -Fault_FillScreenBlack = 0x800AD718; // type:func -Fault_FillScreenRed = 0x800AD76C; // type:func -Fault_DrawCornerRec = 0x800AD7C0; // type:func -Fault_PrintFReg = 0x800AD814; // type:func -Fault_LogFReg = 0x800AD8C0; // type:func -Fault_PrintFPCSR = 0x800AD970; // type:func -Fault_LogFPCSR = 0x800ADA14; // type:func -Fault_PrintThreadContext = 0x800ADAAC; // type:func -Fault_LogThreadContext = 0x800ADDC8; // type:func -Fault_FindFaultedThread = 0x800AE0C4; // type:func -Fault_Wait5Seconds = 0x800AE14C; // type:func -Fault_WaitForButtonCombo = 0x800AE1DC; // type:func -Fault_DrawMemDumpContents = 0x800AE4A8; // type:func -Fault_DrawMemDump = 0x800AE614; // type:func -Fault_WalkStack = 0x800AE818; // type:func -Fault_DrawStackTrace = 0x800AE9A8; // type:func -Fault_LogStackTrace = 0x800AEB28; // type:func -Fault_ResumeThread = 0x800AEC98; // type:func -Fault_DisplayFrameBuffer = 0x800AED14; // type:func -Fault_ProcessClients = 0x800AEDD4; // type:func -Fault_UpdatePad = 0x800AEEB4; // type:func -Fault_ThreadEntry = 0x800AEEF0; // type:func -Fault_SetFrameBuffer = 0x800AF250; // type:func -Fault_Init = 0x800AF2A4; // type:func -Fault_HungupFaultClient = 0x800AF3D8; // type:func -Fault_AddHungupAndCrashImpl = 0x800AF4D4; // type:func -Fault_AddHungupAndCrash = 0x800AF52C; // type:func -FaultDrawer_SetOsSyncPrintfEnabled = 0x800AF590; // type:func -FaultDrawer_DrawRecImpl = 0x800AF5A0; // type:func -FaultDrawer_DrawChar = 0x800AF6BC; // type:func -FaultDrawer_ColorToPrintColor = 0x800AF82C; // type:func -FaultDrawer_UpdatePrintColor = 0x800AF8DC; // type:func -FaultDrawer_SetForeColor = 0x800AF97C; // type:func -FaultDrawer_SetBackColor = 0x800AF9C4; // type:func -FaultDrawer_SetFontColor = 0x800AFA0C; // type:func -FaultDrawer_SetCharPad = 0x800AFA54; // type:func -FaultDrawer_SetCursor = 0x800AFA84; // type:func -FaultDrawer_FillScreen = 0x800AFB7C; // type:func -FaultDrawer_PrintCallback = 0x800AFC0C; // type:func -FaultDrawer_VPrintf = 0x800AFE18; // type:func -FaultDrawer_Printf = 0x800AFE68; // type:func -FaultDrawer_DrawText = 0x800AFEB8; // type:func -FaultDrawer_SetDrawerFB = 0x800AFF08; // type:func -FaultDrawer_SetInputCallback = 0x800AFF34; // type:func -FaultDrawer_WritebackFBDCache = 0x800AFF44; // type:func -FaultDrawer_Init = 0x800AFFA0; // type:func -Kanji_OffsetFromShiftJIS = 0x800B0010; // type:func -AudioSynth_InitNextRingBuf = 0x800B0B00; // type:func -func_800DB03C = 0x800B0E7C; // type:func -AudioSynth_Update = 0x800B0F04; // type:func -func_800DB2C0 = 0x800B1100; // type:func -AudioSynth_LoadRingBuffer1AtTemp = 0x800B1170; // type:func -AudioSynth_SaveRingBuffer1AtTemp = 0x800B1218; // type:func -AudioSynth_LeakReverb = 0x800B12C0; // type:func -func_800DB4E4 = 0x800B1324; // type:func -func_800DB680 = 0x800B14C0; // type:func -func_800DB828 = 0x800B1668; // type:func -AudioSynth_FilterReverb = 0x800B1880; // type:func -AudioSynth_MaybeMixRingBuffer1 = 0x800B1928; // type:func -func_800DBB94 = 0x800B19D4; // type:func -AudioSynth_ClearBuffer = 0x800B19DC; // type:func -func_800DBBBC = 0x800B19FC; // type:func -func_800DBBC4 = 0x800B1A04; // type:func -func_800DBBCC = 0x800B1A0C; // type:func -AudioSynth_Mix = 0x800B1A14; // type:func -func_800DBC08 = 0x800B1A48; // type:func -func_800DBC10 = 0x800B1A50; // type:func -func_800DBC18 = 0x800B1A58; // type:func -AudioSynth_SetBuffer = 0x800B1A60; // type:func -func_800DBC54 = 0x800B1A94; // type:func -func_800DBC5C = 0x800B1A9C; // type:func -AudioSynth_DMemMove = 0x800B1AA4; // type:func -func_800DBC90 = 0x800B1AD0; // type:func -func_800DBC98 = 0x800B1AD8; // type:func -func_800DBCA0 = 0x800B1AE0; // type:func -func_800DBCA8 = 0x800B1AE8; // type:func -AudioSynth_InterL = 0x800B1AF0; // type:func -AudioSynth_EnvSetup1 = 0x800B1B14; // type:func -func_800DBD08 = 0x800B1B48; // type:func -AudioSynth_LoadBuffer = 0x800B1B50; // type:func -AudioSynth_SaveBuffer = 0x800B1B78; // type:func -AudioSynth_EnvSetup2 = 0x800B1BA0; // type:func -func_800DBD7C = 0x800B1BBC; // type:func -func_800DBD84 = 0x800B1BC4; // type:func -func_800DBD8C = 0x800B1BCC; // type:func -AudioSynth_S8Dec = 0x800B1BD4; // type:func -AudioSynth_HiLoGain = 0x800B1BF0; // type:func -AudioSynth_UnkCmd19 = 0x800B1C24; // type:func -func_800DBE18 = 0x800B1C58; // type:func -func_800DBE20 = 0x800B1C60; // type:func -func_800DBE28 = 0x800B1C68; // type:func -func_800DBE30 = 0x800B1C70; // type:func -AudioSynth_UnkCmd3 = 0x800B1C78; // type:func -func_800DBE5C = 0x800B1C9C; // type:func -func_800DBE64 = 0x800B1CA4; // type:func -func_800DBE6C = 0x800B1CAC; // type:func -AudioSynth_LoadFilterBuffer = 0x800B1CB4; // type:func -AudioSynth_LoadFilterSize = 0x800B1CD8; // type:func -AudioSynth_LoadRingBuffer1 = 0x800B1CF0; // type:func -AudioSynth_LoadRingBuffer2 = 0x800B1D9C; // type:func -AudioSynth_LoadRingBufferPart = 0x800B1E48; // type:func -AudioSynth_SaveRingBufferPart = 0x800B1EB4; // type:func -AudioSynth_SaveBufferOffset = 0x800B1F20; // type:func -AudioSynth_MaybeLoadRingBuffer2 = 0x800B1F64; // type:func -AudioSynth_LoadReverbSamples = 0x800B1FA4; // type:func -AudioSynth_SaveReverbSamples = 0x800B2018; // type:func -AudioSynth_SaveRingBuffer2 = 0x800B211C; // type:func -AudioSynth_DoOneAudioUpdate = 0x800B21C4; // type:func -AudioSynth_ProcessNote = 0x800B2750; // type:func -AudioSynth_FinalResample = 0x800B346C; // type:func -AudioSynth_ProcessEnvelope = 0x800B350C; // type:func -AudioSynth_LoadWaveSamples = 0x800B3834; // type:func -AudioSynth_ApplyHaasEffect = 0x800B39A4; // type:func -AudioHeap_CalculateAdsrDecay = 0x800B3C60; // type:func -AudioHeap_InitAdsrDecayTable = 0x800B3C7C; // type:func -AudioHeap_ResetLoadStatus = 0x800B3DC0; // type:func -AudioHeap_DiscardFont = 0x800B3E88; // type:func -AudioHeap_ReleaseNotesForFont = 0x800B3F6C; // type:func -AudioHeap_DiscardSequence = 0x800B3FF4; // type:func -AudioHeap_WritebackDCache = 0x800B4078; // type:func -AudioHeap_AllocZeroedAttemptExternal = 0x800B4098; // type:func -AudioHeap_AllocAttemptExternal = 0x800B40F0; // type:func -AudioHeap_AllocDmaMemory = 0x800B4148; // type:func -AudioHeap_AllocDmaMemoryZeroed = 0x800B4184; // type:func -AudioHeap_AllocZeroed = 0x800B41C0; // type:func -AudioHeap_Alloc = 0x800B421C; // type:func -AudioHeap_InitPool = 0x800B4274; // type:func -AudioHeap_InitPersistentCache = 0x800B429C; // type:func -AudioHeap_InitTemporaryCache = 0x800B42B0; // type:func -AudioHeap_ResetPool = 0x800B42E0; // type:func -AudioHeap_PopPersistentCache = 0x800B42F0; // type:func -AudioHeap_InitMainPools = 0x800B4430; // type:func -AudioHeap_InitSessionPools = 0x800B4490; // type:func -AudioHeap_InitCachePools = 0x800B4514; // type:func -AudioHeap_InitPersistentPoolsAndCaches = 0x800B4598; // type:func -AudioHeap_InitTemporaryPoolsAndCaches = 0x800B465C; // type:func -AudioHeap_AllocCached = 0x800B4720; // type:func -AudioHeap_SearchCaches = 0x800B4EB4; // type:func -AudioHeap_SearchRegularCaches = 0x800B4F0C; // type:func -func_800DF1D8 = 0x800B5018; // type:func -AudioHeap_ClearFilter = 0x800B53EC; // type:func -AudioHeap_LoadLowPassFilter = 0x800B541C; // type:func -AudioHeap_LoadHighPassFilter = 0x800B5470; // type:func -AudioHeap_LoadFilter = 0x800B54C8; // type:func -AudioHeap_UpdateReverb = 0x800B55FC; // type:func -AudioHeap_UpdateReverbs = 0x800B5604; // type:func -AudioHeap_ClearCurrentAiBuffer = 0x800B56C8; // type:func -AudioHeap_ResetStep = 0x800B5734; // type:func -AudioHeap_Init = 0x800B5A38; // type:func -AudioHeap_SearchPermanentCache = 0x800B6328; // type:func -AudioHeap_AllocPermanent = 0x800B6380; // type:func -AudioHeap_AllocSampleCache = 0x800B6404; // type:func -AudioHeap_InitSampleCaches = 0x800B6474; // type:func -AudioHeap_AllocTemporarySampleCacheEntry = 0x800B650C; // type:func -AudioHeap_UnapplySampleCacheForFont = 0x800B67A4; // type:func -AudioHeap_DiscardSampleCacheEntry = 0x800B6918; // type:func -AudioHeap_UnapplySampleCache = 0x800B69F4; // type:func -AudioHeap_AllocPersistentSampleCacheEntry = 0x800B6A38; // type:func -AudioHeap_DiscardSampleCacheForFont = 0x800B6AC0; // type:func -AudioHeap_DiscardSampleCaches = 0x800B6AFC; // type:func -AudioHeap_ChangeStorage = 0x800B6C4C; // type:func -AudioHeap_DiscardSampleBank = 0x800B6CAC; // type:func -AudioHeap_ApplySampleBankCache = 0x800B6CD0; // type:func -AudioHeap_ApplySampleBankCacheInternal = 0x800B6CF4; // type:func -AudioHeap_DiscardSampleBanks = 0x800B6F88; // type:func -AudioLoad_DecreaseSampleDmaTtls = 0x800B7030; // type:func -AudioLoad_DmaSampleData = 0x800B711C; // type:func -AudioLoad_InitSampleDmaBuffers = 0x800B7458; // type:func -AudioLoad_IsFontLoadComplete = 0x800B76F0; // type:func -AudioLoad_IsSeqLoadComplete = 0x800B7768; // type:func -AudioLoad_IsSampleLoadComplete = 0x800B77E0; // type:func -AudioLoad_SetFontLoadStatus = 0x800B7858; // type:func -AudioLoad_SetSeqLoadStatus = 0x800B7888; // type:func -AudioLoad_SetSampleFontLoadStatusAndApplyCaches = 0x800B78B8; // type:func -AudioLoad_SetSampleFontLoadStatus = 0x800B7918; // type:func -AudioLoad_InitTable = 0x800B7948; // type:func -AudioLoad_SyncLoadSeqFonts = 0x800B79A8; // type:func -AudioLoad_SyncLoadSeqParts = 0x800B7A58; // type:func -AudioLoad_SyncLoadSample = 0x800B7AB8; // type:func -AudioLoad_SyncLoadInstrument = 0x800B7BA4; // type:func -AudioLoad_AsyncLoad = 0x800B7C74; // type:func -AudioLoad_AsyncLoadSeq = 0x800B7CAC; // type:func -AudioLoad_AsyncLoadSampleBank = 0x800B7CF0; // type:func -AudioLoad_AsyncLoadFont = 0x800B7D34; // type:func -AudioLoad_GetFontsForSequence = 0x800B7D78; // type:func -AudioLoad_DiscardSeqFonts = 0x800B7DBC; // type:func -AudioLoad_DiscardFont = 0x800B7E6C; // type:func -AudioLoad_SyncInitSeqPlayer = 0x800B7F14; // type:func -AudioLoad_SyncInitSeqPlayerSkipTicks = 0x800B7F64; // type:func -AudioLoad_SyncInitSeqPlayerInternal = 0x800B7FBC; // type:func -AudioLoad_SyncLoadSeq = 0x800B8104; // type:func -AudioLoad_GetSampleBank = 0x800B8158; // type:func -AudioLoad_TrySyncLoadSampleBank = 0x800B8178; // type:func -AudioLoad_SyncLoadFont = 0x800B8294; // type:func -AudioLoad_SyncLoad = 0x800B8398; // type:func -AudioLoad_GetRealTableIndex = 0x800B85A8; // type:func -AudioLoad_SearchCaches = 0x800B85E4; // type:func -AudioLoad_GetLoadTable = 0x800B8638; // type:func -AudioLoad_RelocateFont = 0x800B867C; // type:func -AudioLoad_SyncDma = 0x800B88E8; // type:func -AudioLoad_SyncDmaUnkMedium = 0x800B8A0C; // type:func -AudioLoad_Dma = 0x800B8A20; // type:func -AudioLoad_Unused1 = 0x800B8AF8; // type:func -AudioLoad_SyncLoadSimple = 0x800B8B00; // type:func -AudioLoad_AsyncLoadInner = 0x800B8B20; // type:func -AudioLoad_ProcessLoads = 0x800B8E2C; // type:func -AudioLoad_SetDmaHandler = 0x800B8E5C; // type:func -AudioLoad_SetUnusedHandler = 0x800B8E68; // type:func -AudioLoad_InitSoundFont = 0x800B8E74; // type:func -AudioLoad_Init = 0x800B8ED4; // type:func -AudioLoad_InitSlowLoads = 0x800B9240; // type:func -AudioLoad_SlowLoadSample = 0x800B9254; // type:func -AudioLoad_GetFontSample = 0x800B9420; // type:func -AudioLoad_Unused2 = 0x800B94B0; // type:func -AudioLoad_FinishSlowLoad = 0x800B94B8; // type:func -AudioLoad_ProcessSlowLoads = 0x800B952C; // type:func -AudioLoad_DmaSlowCopy = 0x800B96B4; // type:func -AudioLoad_DmaSlowCopyUnkMedium = 0x800B9738; // type:func -AudioLoad_SlowLoadSeq = 0x800B974C; // type:func -AudioLoad_InitAsyncLoads = 0x800B9854; // type:func -AudioLoad_StartAsyncLoadUnkMedium = 0x800B9884; // type:func -AudioLoad_StartAsyncLoad = 0x800B9908; // type:func -AudioLoad_ProcessAsyncLoads = 0x800B9A2C; // type:func -AudioLoad_ProcessAsyncLoadUnkMedium = 0x800B9B50; // type:func -AudioLoad_FinishAsyncLoad = 0x800B9B5C; // type:func -AudioLoad_ProcessAsyncLoad = 0x800B9C98; // type:func -AudioLoad_AsyncDma = 0x800B9DF4; // type:func -AudioLoad_AsyncDmaUnkMedium = 0x800B9E84; // type:func -AudioLoad_RelocateSample = 0x800B9E98; // type:func -AudioLoad_RelocateFontAndPreloadSamples = 0x800B9FD8; // type:func -AudioLoad_ProcessSamplePreloads = 0x800BA3D0; // type:func -AudioLoad_AddToSampleSet = 0x800BA584; // type:func -AudioLoad_GetSamplesForFont = 0x800BA5CC; // type:func -AudioLoad_AddUsedSample = 0x800BA700; // type:func -AudioLoad_PreloadSamplesForFont = 0x800BA758; // type:func -AudioLoad_LoadPermanentSamples = 0x800BABD4; // type:func -AudioLoad_Unused3 = 0x800BAD14; // type:func -AudioLoad_Unused4 = 0x800BAD1C; // type:func -AudioLoad_Unused5 = 0x800BAD24; // type:func -AudioLoad_ScriptLoad = 0x800BAD2C; // type:func -AudioLoad_ProcessScriptLoads = 0x800BAD98; // type:func -AudioLoad_InitScriptLoads = 0x800BADF0; // type:func -AudioThread_Update = 0x800BAE20; // type:func -AudioThread_UpdateImpl = 0x800BAE40; // type:func -AudioThread_ProcessGlobalCmd = 0x800BB3C4; // type:func -AudioThread_SetFadeOutTimer = 0x800BB798; // type:func -AudioThread_SetFadeInTimer = 0x800BB7EC; // type:func -AudioThread_InitMesgQueuesImpl = 0x800BB834; // type:func -AudioThread_QueueCmd = 0x800BB8CC; // type:func -AudioThread_QueueCmdF32 = 0x800BB918; // type:func -AudioThread_QueueCmdS32 = 0x800BB93C; // type:func -AudioThread_QueueCmdS8 = 0x800BB960; // type:func -AudioThread_QueueCmdU16 = 0x800BB990; // type:func -AudioThread_ScheduleProcessCmds = 0x800BB9C0; // type:func -AudioThread_ResetCmdQueue = 0x800BBA50; // type:func -AudioThread_ProcessCmd = 0x800BBA68; // type:func -AudioThread_ProcessCmds = 0x800BBBAC; // type:func -func_800E5E20 = 0x800BBC60; // type:func -AudioThread_GetFontsForSequence = 0x800BBCC4; // type:func -Audio_GetSampleBankIdsOfFont = 0x800BBCE4; // type:func -func_800E5EDC = 0x800BBD1C; // type:func -func_800E5F34 = 0x800BBD74; // type:func -AudioThread_ResetAudioHeap = 0x800BBDC8; // type:func -AudioThread_PreNMIInternal = 0x800BBE64; // type:func -AudioThread_GetChannelIO = 0x800BBEB0; // type:func -AudioThread_GetSeqPlayerIO = 0x800BBF04; // type:func -AudioThread_InitExternalPool = 0x800BBF2C; // type:func -AudioThread_ResetExternalPool = 0x800BBF5C; // type:func -AudioThread_ProcessSeqPlayerCmd = 0x800BBF68; // type:func -AudioThread_ProcessChannelCmd = 0x800BC140; // type:func -AudioThread_Noop1Cmd = 0x800BC2F0; // type:func -AudioThread_Noop1CmdZeroed = 0x800BC338; // type:func -AudioThread_Noop2Cmd = 0x800BC35C; // type:func -AudioThread_WaitForAudioTask = 0x800BC390; // type:func -func_800E6590 = 0x800BC3D0; // type:func -func_800E6680 = 0x800BC4C0; // type:func -func_800E66A0 = 0x800BC4E0; // type:func -func_800E66C0 = 0x800BC500; // type:func -AudioThread_NextRandom = 0x800BC600; // type:func -AudioThread_InitMesgQueues = 0x800BC658; // type:func -Audio_InvalDCache = 0x800BC680; // type:func -Audio_WritebackDCache = 0x800BC6C0; // type:func -osAiSetNextBuffer = 0x800BC700; // type:func -Audio_InitNoteSub = 0x800BC780; // type:func -Audio_NoteSetResamplingRate = 0x800BCBF8; // type:func -Audio_NoteInit = 0x800BCCA8; // type:func -Audio_NoteDisable = 0x800BCD68; // type:func -Audio_ProcessNotes = 0x800BCDCC; // type:func -Audio_GetInstrumentTunedSample = 0x800BD29C; // type:func -Audio_GetInstrumentInner = 0x800BD2D8; // type:func -Audio_GetDrum = 0x800BD3AC; // type:func -Audio_GetSoundEffect = 0x800BD490; // type:func -Audio_SetFontInstrument = 0x800BD584; // type:func -Audio_SeqLayerDecayRelease = 0x800BD6C8; // type:func -Audio_SeqLayerNoteDecay = 0x800BD9A0; // type:func -Audio_SeqLayerNoteRelease = 0x800BD9C0; // type:func -Audio_BuildSyntheticWave = 0x800BD9E0; // type:func -Audio_InitSyntheticWave = 0x800BDAE4; // type:func -Audio_InitNoteList = 0x800BDB3C; // type:func -Audio_InitNoteLists = 0x800BDB4C; // type:func -Audio_InitNoteFreeList = 0x800BDB9C; // type:func -Audio_NotePoolClear = 0x800BDC40; // type:func -Audio_NotePoolFill = 0x800BDDA0; // type:func -Audio_AudioListPushFront = 0x800BDEDC; // type:func -Audio_AudioListRemove = 0x800BDF1C; // type:func -Audio_FindNodeWithPrioLessThan = 0x800BDF48; // type:func -Audio_NoteInitForLayer = 0x800BDFC8; // type:func -func_800E82C0 = 0x800BE100; // type:func -Audio_NoteReleaseAndTakeOwnership = 0x800BE134; // type:func -Audio_AllocNoteFromDisabled = 0x800BE160; // type:func -Audio_AllocNoteFromDecaying = 0x800BE1AC; // type:func -Audio_AllocNoteFromActive = 0x800BE1FC; // type:func -Audio_AllocNote = 0x800BE2F4; // type:func -Audio_NoteInitAll = 0x800BE5C8; // type:func -Audio_SequenceChannelProcessSound = 0x800BE700; // type:func -Audio_SequencePlayerProcessSound = 0x800BE8C8; // type:func -Audio_GetPortamentoFreqScale = 0x800BEA14; // type:func -Audio_GetVibratoPitchChange = 0x800BEA70; // type:func -Audio_GetVibratoFreqScale = 0x800BEAA8; // type:func -Audio_NoteVibratoUpdate = 0x800BECE4; // type:func -Audio_NoteVibratoInit = 0x800BED40; // type:func -Audio_NotePortamentoInit = 0x800BEDF8; // type:func -Audio_AdsrInit = 0x800BEE24; // type:func -Audio_AdsrUpdate = 0x800BEE44; // type:func -AudioSeq_GetScriptControlFlowArgument = 0x800BF180; // type:func -AudioSeq_HandleScriptFlowControl = 0x800BF1E8; // type:func -AudioSeq_InitSequenceChannel = 0x800BF3C4; // type:func -AudioSeq_SeqChannelSetLayer = 0x800BF518; // type:func -AudioSeq_SeqLayerDisable = 0x800BF63C; // type:func -AudioSeq_SeqLayerFree = 0x800BF6B8; // type:func -AudioSeq_SequenceChannelDisable = 0x800BF708; // type:func -AudioSeq_SequencePlayerSetupChannels = 0x800BF774; // type:func -AudioSeq_SequencePlayerDisableChannels = 0x800BF86C; // type:func -AudioSeq_SequenceChannelEnable = 0x800BF8EC; // type:func -AudioSeq_SequencePlayerDisableAsFinished = 0x800BF984; // type:func -AudioSeq_SequencePlayerDisable = 0x800BF9AC; // type:func -AudioSeq_AudioListPushBack = 0x800BFA68; // type:func -AudioSeq_AudioListPopBack = 0x800BFAA8; // type:func -AudioSeq_InitLayerFreelist = 0x800BFAE8; // type:func -AudioSeq_ScriptReadU8 = 0x800BFB88; // type:func -AudioSeq_ScriptReadS16 = 0x800BFB9C; // type:func -AudioSeq_ScriptReadCompressedU16 = 0x800BFBD4; // type:func -AudioSeq_SeqLayerProcessScript = 0x800BFC14; // type:func -AudioSeq_SeqLayerProcessScriptStep1 = 0x800BFD18; // type:func -AudioSeq_SeqLayerProcessScriptStep5 = 0x800BFDA4; // type:func -AudioSeq_SeqLayerProcessScriptStep2 = 0x800BFF00; // type:func -AudioSeq_SeqLayerProcessScriptStep4 = 0x800C0280; // type:func -AudioSeq_SeqLayerProcessScriptStep3 = 0x800C0920; // type:func -AudioSeq_SetChannelPriorities = 0x800C0D34; // type:func -AudioSeq_GetInstrument = 0x800C0D64; // type:func -AudioSeq_SetInstrument = 0x800C0DD8; // type:func -AudioSeq_SequenceChannelSetVolume = 0x800C0E84; // type:func -AudioSeq_SequenceChannelProcessScript = 0x800C0EA8; // type:func -AudioSeq_SequencePlayerProcessSequence = 0x800C1B98; // type:func -AudioSeq_ProcessSequences = 0x800C23A4; // type:func -AudioSeq_SkipForwardSequence = 0x800C2458; // type:func -AudioSeq_ResetSequencePlayer = 0x800C24A8; // type:func -AudioSeq_InitSequencePlayerChannels = 0x800C2574; // type:func -AudioSeq_InitSequencePlayer = 0x800C264C; // type:func -AudioSeq_InitSequencePlayers = 0x800C271C; // type:func -AudioOcarina_SetCustomButtonMapping = 0x800C27A0; // type:func -AudioOcarina_ReadControllerInput = 0x800C2840; // type:func -AudioOcarina_BendPitchTwoSemitones = 0x800C28A0; // type:func -AudioOcarina_GetPlayingState = 0x800C2930; // type:func -AudioOcarina_MapNoteToButton = 0x800C2974; // type:func -AudioOcarina_MapNotesToScarecrowButtons = 0x800C29BC; // type:func -AudioOcarina_Start = 0x800C2A44; // type:func -AudioOcarina_CheckIfStartedSong = 0x800C2BFC; // type:func -AudioOcarina_CheckSongsWithMusicStaff = 0x800C2C38; // type:func -AudioOcarina_CheckSongsWithoutMusicStaff = 0x800C3040; // type:func -AudioOcarina_PlayControllerInput = 0x800C3298; // type:func -AudioOcarina_EnableInput = 0x800C3688; // type:func -AudioOcarina_SetInstrument = 0x800C3698; // type:func -AudioOcarina_SetPlaybackSong = 0x800C377C; // type:func -AudioOcarina_PlaybackSong = 0x800C387C; // type:func -AudioOcarina_SetRecordingSong = 0x800C3BA8; // type:func -AudioOcarina_SetRecordingState = 0x800C3FB0; // type:func -AudioOcarina_UpdateRecordingStaff = 0x800C40DC; // type:func -AudioOcarina_UpdatePlayingStaff = 0x800C4114; // type:func -AudioOcarina_UpdatePlaybackStaff = 0x800C4158; // type:func -AudioOcarina_GetRecordingStaff = 0x800C4208; // type:func -AudioOcarina_GetPlayingStaff = 0x800C4214; // type:func -AudioOcarina_GetPlaybackStaff = 0x800C4238; // type:func -AudioOcarina_RecordSong = 0x800C4244; // type:func -AudioOcarina_MemoryGameInit = 0x800C43BC; // type:func -AudioOcarina_MemoryGameNextNote = 0x800C442C; // type:func -AudioOcarina_Update = 0x800C4534; // type:func -AudioOcarina_PlayLongScarecrowSong = 0x800C4664; // type:func -AudioOcarina_ResetStaffs = 0x800C4770; // type:func -AudioDebug_Draw = 0x800C47BC; // type:func -AudioDebug_ScrPrt = 0x800C47C4; // type:func -Audio_Update = 0x800C47D0; // type:func -func_800F3138 = 0x800C4874; // type:func -func_800F3140 = 0x800C487C; // type:func -func_800F314C = 0x800C4888; // type:func -Audio_ComputeSfxVolume = 0x800C48C4; // type:func -Audio_ComputeSfxReverb = 0x800C4A2C; // type:func -Audio_ComputeSfxPanSigned = 0x800C4BA4; // type:func -Audio_ComputeSfxFreqScale = 0x800C4D28; // type:func -func_800F37B8 = 0x800C4EF4; // type:func -func_800F3990 = 0x800C50CC; // type:func -Audio_SetSfxProperties = 0x800C5144; // type:func -Audio_ResetSfxChannelState = 0x800C561C; // type:func -Audio_PlayCutsceneEffectsSequence = 0x800C5684; // type:func -func_800F3F84 = 0x800C56CC; // type:func -func_800F4010 = 0x800C5758; // type:func -func_800F4138 = 0x800C5878; // type:func -func_800F4190 = 0x800C58D0; // type:func -Audio_PlaySfxRandom = 0x800C5920; // type:func -func_800F4254 = 0x800C5994; // type:func -func_800F436C = 0x800C5AAC; // type:func -func_800F4414 = 0x800C5B54; // type:func -func_800F44EC = 0x800C5C2C; // type:func -func_800F4524 = 0x800C5C64; // type:func -func_800F4578 = 0x800C5CB8; // type:func -func_800F45D0 = 0x800C5D10; // type:func -Audio_PlaySfxRiver = 0x800C5D74; // type:func -Audio_PlaySfxWaterfall = 0x800C5E20; // type:func -Audio_StepFreqLerp = 0x800C5EC4; // type:func -Audio_SetBgmVolumeOffDuringFanfare = 0x800C5EFC; // type:func -Audio_SetBgmVolumeOnDuringFanfare = 0x800C5F3C; // type:func -Audio_SetMainBgmVolume = 0x800C5F7C; // type:func -Audio_SetGanonsTowerBgmVolumeLevel = 0x800C5FB0; // type:func -Audio_SetGanonsTowerBgmVolume = 0x800C605C; // type:func -Audio_LowerMainBgmVolume = 0x800C6194; // type:func -Audio_UpdateRiverSoundVolumes = 0x800C61B0; // type:func -Audio_PlaySfxIncreasinglyTransposed = 0x800C6298; // type:func -Audio_ResetIncreasingTranspose = 0x800C6328; // type:func -Audio_PlaySfxTransposed = 0x800C6334; // type:func -func_800F4C58 = 0x800C6398; // type:func -func_800F4E30 = 0x800C6570; // type:func -Audio_ClearSariaBgm = 0x800C680C; // type:func -Audio_ClearSariaBgmAtPos = 0x800C682C; // type:func -Audio_SplitBgmChannels = 0x800C684C; // type:func -Audio_PlaySariaBgm = 0x800C69E0; // type:func -Audio_ClearSariaBgm2 = 0x800C6C44; // type:func -Audio_PlayMorningSceneSequence = 0x800C6C50; // type:func -Audio_PlaySceneSequence = 0x800C6C90; // type:func -Audio_UpdateSceneSequenceResumePoint = 0x800C6DE8; // type:func -Audio_PlayWindmillBgm = 0x800C6E58; // type:func -Audio_SetMainBgmTempoFreqAfterFanfare = 0x800C6E8C; // type:func -Audio_SetFastTempoForTimedMinigame = 0x800C7058; // type:func -Audio_PlaySequenceInCutscene = 0x800C709C; // type:func -Audio_StopSequenceInCutscene = 0x800C7128; // type:func -Audio_IsSequencePlaying = 0x800C7198; // type:func -func_800F5ACC = 0x800C720C; // type:func -func_800F5B58 = 0x800C7280; // type:func -func_800F5BF0 = 0x800C7318; // type:func -func_800F5C2C = 0x800C7354; // type:func -Audio_PlayFanfare = 0x800C738C; // type:func -Audio_UpdateFanfare = 0x800C7420; // type:func -Audio_PlaySequenceWithSeqPlayerIO = 0x800C7540; // type:func -Audio_SetSequenceMode = 0x800C75B8; // type:func -Audio_SetBgmEnemyVolume = 0x800C7834; // type:func -Audio_UpdateMalonSinging = 0x800C7988; // type:func -func_800F64E0 = 0x800C7BEC; // type:func -Audio_ToggleMalonSinging = 0x800C7C90; // type:func -Audio_SetEnvReverb = 0x800C7DCC; // type:func -Audio_SetCodeReverb = 0x800C7DE8; // type:func -func_800F6700 = 0x800C7E0C; // type:func -Audio_SetBaseFilter = 0x800C7EAC; // type:func -Audio_SetExtraFilter = 0x800C7F34; // type:func -Audio_SetCutsceneFlag = 0x800C7FC8; // type:func -Audio_PlaySfxGeneralIfNotInCutscene = 0x800C7FE0; // type:func -Audio_PlaySfxIfNotInCutscene = 0x800C8028; // type:func -func_800F6964 = 0x800C8070; // type:func -Audio_StopBgmAndFanfare = 0x800C81BC; // type:func -func_800F6B3C = 0x800C8248; // type:func -Audio_DisableAllSeq = 0x800C8274; // type:func -func_800F6BB8 = 0x800C82C4; // type:func -func_800F6BDC = 0x800C82E8; // type:func -Audio_PreNMI = 0x800C8320; // type:func -func_800F6C34 = 0x800C8340; // type:func -Audio_SetNatureAmbienceChannelIO = 0x800C8464; // type:func -Audio_StartNatureAmbienceSequence = 0x800C8578; // type:func -Audio_PlayNatureAmbienceSequence = 0x800C867C; // type:func -Audio_Init = 0x800C87C0; // type:func -Audio_InitSound = 0x800C87E4; // type:func -func_800F7170 = 0x800C8838; // type:func -func_800F71BC = 0x800C8884; // type:func -func_800F7208 = 0x800C88D0; // type:func -Audio_SetSfxBanksMute = 0x800C8930; // type:func -Audio_QueueSeqCmdMute = 0x800C8988; // type:func -Audio_ClearBGMMute = 0x800C89EC; // type:func -Audio_PlaySfxGeneral = 0x800C8A5C; // type:func -Audio_RemoveMatchingSfxRequests = 0x800C8ADC; // type:func -Audio_ProcessSfxRequest = 0x800C8C7C; // type:func -Audio_RemoveSfxBankEntry = 0x800C9118; // type:func -Audio_ChooseActiveSfx = 0x800C92B0; // type:func -Audio_PlayActiveSfx = 0x800C99F0; // type:func -Audio_StopSfxByBank = 0x800C9D10; // type:func -func_800F8884 = 0x800C9DF4; // type:func -Audio_StopSfxByPosAndBank = 0x800C9F10; // type:func -Audio_StopSfxByPos = 0x800C9F58; // type:func -Audio_StopSfxByPosAndId = 0x800C9FB4; // type:func -Audio_StopSfxByTokenAndId = 0x800CA110; // type:func -Audio_StopSfxById = 0x800CA274; // type:func -Audio_ProcessSfxRequests = 0x800CA3AC; // type:func -Audio_SetUnusedBankLerp = 0x800CA410; // type:func -Audio_StepUnusedBankLerp = 0x800CA4A4; // type:func -func_800F8F88 = 0x800CA4F8; // type:func -Audio_IsSfxPlaying = 0x800CA564; // type:func -Audio_ResetSfx = 0x800CA5CC; // type:func -Audio_StartSequence = 0x800CA790; // type:func -Audio_StopSequence = 0x800CA914; // type:func -Audio_ProcessSeqCmd = 0x800CA99C; // type:func -Audio_QueueSeqCmd = 0x800CB460; // type:func -Audio_ProcessSeqCmds = 0x800CB488; // type:func -Audio_GetActiveSeqId = 0x800CB508; // type:func -Audio_IsSeqCmdNotQueued = 0x800CB570; // type:func -Audio_ResetSequenceRequests = 0x800CB5C8; // type:func -Audio_ReplaceSeqCmdSetupOpVolRestore = 0x800CB5E0; // type:func -Audio_SetVolumeScale = 0x800CB694; // type:func -Audio_UpdateActiveSequences = 0x800CB830; // type:func -func_800FAD34 = 0x800CC188; // type:func -Audio_ResetActiveSequences = 0x800CC24C; // type:func -Audio_ResetActiveSequencesAndVolume = 0x800CC308; // type:func -GfxPrint_Setup = 0x800CC3B0; // type:func -GfxPrint_SetColor = 0x800CC7FC; // type:func -GfxPrint_SetPosPx = 0x800CC848; // type:func -GfxPrint_SetPos = 0x800CC86C; // type:func -GfxPrint_SetBasePosPx = 0x800CC894; // type:func -GfxPrint_PrintCharImpl = 0x800CC8A8; // type:func -GfxPrint_PrintChar = 0x800CCD3C; // type:func -GfxPrint_PrintStringWithSize = 0x800CCEFC; // type:func -GfxPrint_PrintString = 0x800CCF58; // type:func -GfxPrint_Callback = 0x800CCFB0; // type:func -GfxPrint_Init = 0x800CCFDC; // type:func -GfxPrint_Destroy = 0x800CD064; // type:func -GfxPrint_Open = 0x800CD06C; // type:func -GfxPrint_Close = 0x800CD0A0; // type:func -GfxPrint_VPrintf = 0x800CD0D0; // type:func -GfxPrint_Printf = 0x800CD0F0; // type:func -RcpUtils_PrintRegisterStatus = 0x800CD120; // type:func -RcpUtils_Reset = 0x800CD148; // type:func -Overlay_AllocateAndLoad = 0x800CD180; // type:func -Overlay_Relocate = 0x800CD1E0; // type:func -Overlay_Load = 0x800CD420; // type:func -func_800FC800 = 0x800CD4F0; // type:func -func_800FC83C = 0x800CD520; // type:func -func_800FC868 = 0x800CD54C; // type:func -func_800FC8D8 = 0x800CD5BC; // type:func -func_800FC948 = 0x800CD62C; // type:func -func_800FCA18 = 0x800CD6FC; // type:func -func_800FCB34 = 0x800CD798; // type:func -SystemHeap_Init = 0x800CD808; // type:func -PadUtils_Init = 0x800CD830; // type:func -func_800FCB70 = 0x800CD850; // type:func -PadUtils_ResetPressRel = 0x800CD858; // type:func -PadUtils_CheckCurExact = 0x800CD864; // type:func -PadUtils_CheckCur = 0x800CD87C; // type:func -PadUtils_CheckPressed = 0x800CD898; // type:func -PadUtils_CheckReleased = 0x800CD8B4; // type:func -PadUtils_GetCurButton = 0x800CD8D0; // type:func -PadUtils_GetPressButton = 0x800CD8D8; // type:func -PadUtils_GetCurX = 0x800CD8E0; // type:func -PadUtils_GetCurY = 0x800CD8E8; // type:func -PadUtils_SetRelXY = 0x800CD8F0; // type:func -PadUtils_GetRelXImpl = 0x800CD8FC; // type:func -PadUtils_GetRelYImpl = 0x800CD904; // type:func -PadUtils_GetRelX = 0x800CD90C; // type:func -PadUtils_GetRelY = 0x800CD92C; // type:func -PadUtils_UpdateRelXY = 0x800CD94C; // type:func -PadSetup_Init = 0x800CDA20; // type:func -Math_FTanF = 0x800CDB60; // type:func -Math_FFloorF = 0x800CDB94; // type:func -Math_FCeilF = 0x800CDBB4; // type:func -Math_FRoundF = 0x800CDBD4; // type:func -Math_FTruncF = 0x800CDBF4; // type:func -Math_FNearbyIntF = 0x800CDC14; // type:func -Math_FAtanTaylorQF = 0x800CDC34; // type:func -Math_FAtanTaylorF = 0x800CDC80; // type:func -Math_FAtanContFracF = 0x800CDDA4; // type:func -Math_FAtanF = 0x800CDEF0; // type:func -Math_FAtan2F = 0x800CDF30; // type:func -Math_FAsinF = 0x800CE018; // type:func -Math_FAcosF = 0x800CE048; // type:func -floorf = 0x800CE070; // type:func -floor = 0x800CE07C; // type:func -lfloorf = 0x800CE088; // type:func -lfloor = 0x800CE098; // type:func -ceilf = 0x800CE0A8; // type:func -ceil = 0x800CE0B4; // type:func -lceilf = 0x800CE0C0; // type:func -lceil = 0x800CE0D0; // type:func -truncf = 0x800CE0E0; // type:func -trunc = 0x800CE0EC; // type:func -ltruncf = 0x800CE0F8; // type:func -ltrunc = 0x800CE108; // type:func -nearbyintf = 0x800CE118; // type:func -nearbyint = 0x800CE124; // type:func -lnearbyintf = 0x800CE130; // type:func -lnearbyint = 0x800CE140; // type:func -roundf = 0x800CE150; // type:func -round = 0x800CE16C; // type:func -lroundf = 0x800CE18C; // type:func -lround = 0x800CE1AC; // type:func -SystemArena_Malloc = 0x800CE1D0; // type:func -SystemArena_MallocR = 0x800CE1F8; // type:func -SystemArena_Realloc = 0x800CE220; // type:func -SystemArena_Free = 0x800CE250; // type:func -SystemArena_Calloc = 0x800CE278; // type:func -SystemArena_GetSizes = 0x800CE2CC; // type:func -SystemArena_Check = 0x800CE304; // type:func -SystemArena_Init = 0x800CE328; // type:func -SystemArena_Cleanup = 0x800CE358; // type:func -SystemArena_IsInitialized = 0x800CE37C; // type:func -Rand_Next = 0x800CE3A0; // type:func -Rand_Seed = 0x800CE3D0; // type:func -Rand_ZeroOne = 0x800CE3DC; // type:func -Rand_Centered = 0x800CE430; // type:func -Rand_Seed_Variable = 0x800CE488; // type:func -Rand_Next_Variable = 0x800CE490; // type:func -Rand_ZeroOne_Variable = 0x800CE4B8; // type:func -Rand_Centered_Variable = 0x800CE504; // type:func -ArenaImpl_LockInit = 0x800CE560; // type:func -ArenaImpl_Lock = 0x800CE58C; // type:func -ArenaImpl_Unlock = 0x800CE5B4; // type:func -ArenaImpl_GetLastBlock = 0x800CE5DC; // type:func -__osMallocInit = 0x800CE640; // type:func -__osMallocAddBlock = 0x800CE690; // type:func -__osMallocCleanup = 0x800CE730; // type:func -__osMallocIsInitialized = 0x800CE750; // type:func -__osMalloc_NoLock = 0x800CE758; // type:func -__osMalloc = 0x800CE884; // type:func -__osMallocR = 0x800CE8C4; // type:func -__osFree_NoLock = 0x800CEA38; // type:func -__osFree = 0x800CEB78; // type:func -__osRealloc = 0x800CEBB0; // type:func -ArenaImpl_GetSizes = 0x800CEFA8; // type:func -ArenaImpl_FaultClient = 0x800CF07C; // type:func -__osCheckArena = 0x800CF250; // type:func -proutSprintf = 0x800CF310; // type:func -vsprintf = 0x800CF334; // type:func -sprintf = 0x800CF384; // type:func -PrintUtils_VPrintf = 0x800CF3E0; // type:func -PrintUtils_Printf = 0x800CF414; // type:func -Sleep_Cycles = 0x800CF440; // type:func -Sleep_Nsec = 0x800CF4AC; // type:func -Sleep_Usec = 0x800CF4FC; // type:func -Sleep_Msec = 0x800CF54C; // type:func -Sleep_Sec = 0x800CF5A0; // type:func -JpegUtils_ProcessQuantizationTable = 0x800CF5E0; // type:func -JpegUtils_ParseHuffmanCodesLengths = 0x800CF648; // type:func -JpegUtils_GetHuffmanCodes = 0x800CF6CC; // type:func -JpegUtils_SetHuffmanTable = 0x800CF738; // type:func -JpegUtils_ProcessHuffmanTableImpl = 0x800CF7E0; // type:func -JpegUtils_ProcessHuffmanTable = 0x800CF89C; // type:func -JpegUtils_SetHuffmanTableOld = 0x800CF974; // type:func -JpegUtils_ProcessHuffmanTableImplOld = 0x800CFA1C; // type:func -JpegDecoder_Decode = 0x800CFAF0; // type:func -JpegDecoder_ProcessMcu = 0x800CFD18; // type:func -JpegDecoder_ParseNextSymbol = 0x800CFEB4; // type:func -JpegDecoder_ReadBits = 0x800CFFF0; // type:func -guScale = 0x800D00E0; // type:func -sinf = 0x800D0190; // type:func -sins = 0x800D0350; // type:func -_VirtualToPhysicalTask = 0x800D03C0; // type:func -osSpTaskLoad = 0x800D04CC; // type:func -osSpTaskStartGo = 0x800D0634; // type:func -__osMotorAccess = 0x800D0680; // type:func -_MakeMotorData = 0x800D07E8; // type:func -osMotorInit = 0x800D08F4; // type:func -__osSiCreateAccessQueue = 0x800D0A50; // type:func -__osSiGetAccess = 0x800D0AA0; // type:func -__osSiRelAccess = 0x800D0AE4; // type:func -osContInit = 0x800D0B10; // type:func -__osContGetInitData = 0x800D0C6C; // type:func -__osPackRequestData = 0x800D0D18; // type:func -osContStartReadData = 0x800D0DF0; // type:func -osContGetReadData = 0x800D0E74; // type:func -__osPackReadData = 0x800D0F00; // type:func -guPerspectiveF = 0x800D0FD0; // type:func -guPerspective = 0x800D1200; // type:func -__osSpRawStartDma = 0x800D1260; // type:func -__osSiRawStartDma = 0x800D12F0; // type:func -osSpTaskYield = 0x800D13A0; // type:func -guMtxIdentF = 0x800D13C0; // type:func -guLookAtF = 0x800D1410; // type:func -guLookAt = 0x800D16B4; // type:func -osStopTimer = 0x800D1730; // type:func -sqrtf = 0x800D1820; // type:func -osAfterPreNMI = 0x800D1830; // type:func -osContStartQuery = 0x800D1850; // type:func -osContGetQuery = 0x800D18CC; // type:func -guLookAtHiliteF = 0x800D18F0; // type:func -guLookAtHilite = 0x800D20B0; // type:func -_Printf = 0x800D2170; // type:func -_Putfld = 0x800D27B8; // type:func -strchr = 0x800D2E50; // type:func -strlen = 0x800D2E90; // type:func -memcpy = 0x800D2EB8; // type:func -__osSpDeviceBusy = 0x800D2EF0; // type:func -guMtxIdent = 0x800D2F20; // type:func -guPositionF = 0x800D2F70; // type:func -guPosition = 0x800D3118; // type:func -osSpTaskYielded = 0x800D3180; // type:func -guRotateF = 0x800D31E0; // type:func -guRotate = 0x800D3364; // type:func -osAiSetFrequency = 0x800D33B0; // type:func -__osGetActiveQueue = 0x800D3500; // type:func -guNormalize = 0x800D3520; // type:func -osDpGetStatus = 0x800D3580; // type:func -osDpSetStatus = 0x800D3590; // type:func -guOrthoF = 0x800D35A0; // type:func -guOrtho = 0x800D36F4; // type:func -cosf = 0x800D3760; // type:func -coss = 0x800D38D0; // type:func -osViSetEvent = 0x800D3900; // type:func -guS2DInitBg = 0x800D3960; // type:func -__osPfsSelectBank = 0x800D3AE0; // type:func -osContSetCh = 0x800D3B60; // type:func -osAiGetLength = 0x800D3BC0; // type:func -guTranslate = 0x800D3BE0; // type:func -__osContRamWrite = 0x800D3CB0; // type:func -__osPfsGetStatus = 0x800D3F00; // type:func -__osPfsRequestOneChannel = 0x800D3FD0; // type:func -__osPfsGetOneChannelData = 0x800D4094; // type:func -__osSumcalc = 0x800D4130; // type:func -__osIdCheckSum = 0x800D41A4; // type:func -__osRepairPackId = 0x800D42A0; // type:func -__osCheckPackId = 0x800D45F0; // type:func -__osGetId = 0x800D4754; // type:func -__osCheckId = 0x800D4900; // type:func -__osPfsRWInode = 0x800D49D4; // type:func -__osContRamRead = 0x800D4CB0; // type:func -__osContAddressCrc = 0x800D4EE0; // type:func -__osContDataCrc = 0x800D4FB0; // type:func -osPfsIsPlug = 0x800D5050; // type:func -__osPfsRequestData = 0x800D51DC; // type:func -__osPfsGetInitData = 0x800D5290; // type:func -osSetTimer = 0x800D5340; // type:func -_Ldtob = 0x800D54D0; // type:func -_Ldunscale = 0x800D5960; // type:func -_Genld = 0x800D5A18; // type:func -ldiv = 0x800D5FE0; // type:func -lldiv = 0x800D6064; // type:func -_Litob = 0x800D6170; // type:func -__osSpGetStatus = 0x800D6410; // type:func -__osSpSetStatus = 0x800D6420; // type:func -osWritebackDCacheAll = 0x800D6430; // type:func -__osGetCurrFaultedThread = 0x800D6460; // type:func -guMtxF2L = 0x800D6480; // type:func -__d_to_ll = 0x800D64F0; // type:func -__f_to_ll = 0x800D650C; // type:func -__d_to_ull = 0x800D6528; // type:func -__f_to_ull = 0x800D65C8; // type:func -__ll_to_d = 0x800D6664; // type:func -__ll_to_f = 0x800D667C; // type:func -__ull_to_d = 0x800D6694; // type:func -__ull_to_f = 0x800D66C8; // type:func -osViGetCurrentFramebuffer = 0x800D6700; // type:func -__osSpSetPc = 0x800D6740; // type:func -sqrt = 0x800D6770; // type:func -absf = 0x800D6780; // type:func -fmodf = 0x800D6790; // type:func -__osMemset = 0x800D67E0; // type:func -__osMemmove = 0x800D6810; // type:func -Message_ResetOcarinaNoteState = 0x800D68A0; // type:func -Message_UpdateOcarinaMemoryGame = 0x800D699C; // type:func -Message_ShouldAdvance = 0x800D6AC0; // type:func -Message_ShouldAdvanceSilent = 0x800D6B84; // type:func -Message_CloseTextbox = 0x800D6BCC; // type:func -Message_HandleChoiceSelection = 0x800D6C44; // type:func -Message_DrawTextChar = 0x800D6E24; // type:func -Message_GrowTextbox = 0x800D7154; // type:func -Message_FindMessageJPN = 0x800D7358; // type:func -Message_FindMessageNES = 0x800D73FC; // type:func -Message_FindCreditsMessage = 0x800D74A0; // type:func -Message_SetTextColor = 0x800D7514; // type:func -Message_DrawTextboxIcon = 0x800D77C8; // type:func -Message_DrawItemIcon = 0x800D7F0C; // type:func -Message_HandleOcarina = 0x800D8258; // type:func -Message_DrawTextWide = 0x800D8468; // type:func -Message_DrawText = 0x800D985C; // type:func -Message_LoadItemIcon = 0x800DAAD4; // type:func -Message_Decode = 0x800DAC74; // type:func -Message_OpenText = 0x800DD19C; // type:func -Message_StartTextbox = 0x800DD6C4; // type:func -Message_ContinueTextbox = 0x800DD730; // type:func -Message_StartOcarinaImpl = 0x800DD800; // type:func -Message_StartOcarina = 0x800DDCB0; // type:func -Message_StartOcarinaSunsSongDisabled = 0x800DDCE0; // type:func -Message_GetState = 0x800DDD14; // type:func -Message_DrawTextBox = 0x800DDE34; // type:func -Message_SetView = 0x800DE2C0; // type:func -Message_DrawMain = 0x800DE308; // type:func -Message_Draw = 0x800E12E0; // type:func -Message_Update = 0x800E137C; // type:func -Message_SetTables = 0x800E1F04; // type:func -GameOver_Init = 0x800E1F40; // type:func -GameOver_FadeInLights = 0x800E1F54; // type:func -GameOver_Update = 0x800E1FBC; // type:func -Interface_Destroy = 0x800E2480; // type:func -Interface_Init = 0x800E24A0; // type:func -Message_Init = 0x800E28A4; // type:func -Regs_InitDataImpl = 0x800E2948; // type:func -Regs_InitData = 0x800E3814; // type:func -ConsoleLogo_Calc = 0x80800000; // type:func -ConsoleLogo_SetupView = 0x80800010; // type:func -ConsoleLogo_Draw = 0x808000A8; // type:func -ConsoleLogo_Main = 0x808005E0; // type:func -ConsoleLogo_Destroy = 0x808006A0; // type:func -ConsoleLogo_Init = 0x808006C0; // type:func -MapSelect_LoadTitle = 0x80800850; // type:func -MapSelect_LoadGame = 0x80800870; // type:func -MapSelect_UpdateMenu = 0x80800960; // type:func -MapSelect_PrintMenu = 0x808012C0; // type:func -MapSelect_PrintLoadingMessage = 0x8080149C; // type:func -MapSelect_PrintAgeSetting = 0x80801528; // type:func -MapSelect_PrintCutsceneSetting = 0x8080159C; // type:func -MapSelect_DrawMenu = 0x80801758; // type:func -MapSelect_DrawLoadingScreen = 0x8080186C; // type:func -MapSelect_Draw = 0x80801954; // type:func -MapSelect_Main = 0x80801A08; // type:func -MapSelect_Destroy = 0x80801A34; // type:func -MapSelect_Init = 0x80801A40; // type:func -TitleSetup_SetupTitleScreen = 0x808034D0; // type:func -func_80803C5C = 0x8080353C; // type:func -TitleSetup_Main = 0x80803548; // type:func -TitleSetup_Destroy = 0x8080358C; // type:func -TitleSetup_Init = 0x80803598; // type:func -FileSelect_SetupCopySource = 0x80803630; // type:func -FileSelect_SelectCopySource = 0x808037C8; // type:func -FileSelect_SetupCopyDest1 = 0x80803B38; // type:func -FileSelect_SetupCopyDest2 = 0x80803CC8; // type:func -FileSelect_SelectCopyDest = 0x80803D90; // type:func -FileSelect_ExitToCopySource1 = 0x80804148; // type:func -FileSelect_ExitToCopySource2 = 0x80804214; // type:func -FileSelect_SetupCopyConfirm1 = 0x80804340; // type:func -FileSelect_SetupCopyConfirm2 = 0x80804564; // type:func -FileSelect_CopyConfirm = 0x808045C0; // type:func -FileSelect_ReturnToCopyDest = 0x808047C8; // type:func -FileSelect_CopyAnim1 = 0x808049FC; // type:func -FileSelect_CopyAnim2 = 0x80804A78; // type:func -FileSelect_CopyAnim3 = 0x80804BC8; // type:func -FileSelect_CopyAnim4 = 0x80804CE4; // type:func -FileSelect_CopyAnim5 = 0x80804DD4; // type:func -FileSelect_ExitCopyToMain = 0x808050D4; // type:func -FileSelect_SetupEraseSelect = 0x80805210; // type:func -FileSelect_EraseSelect = 0x808053E0; // type:func -FileSelect_SetupEraseConfirm1 = 0x8080576C; // type:func -FileSelect_SetupEraseConfirm2 = 0x80805A34; // type:func -FileSelect_EraseConfirm = 0x80805B10; // type:func -FileSelect_ExitToEraseSelect1 = 0x80805CF8; // type:func -FileSelect_ExitToEraseSelect2 = 0x80805DA8; // type:func -FileSelect_EraseAnim1 = 0x80805FC4; // type:func -FileSelect_EraseAnim2 = 0x808061A4; // type:func -FileSelect_EraseAnim3 = 0x80806268; // type:func -FileSelect_ExitEraseToMain = 0x808064D4; // type:func -FileSelect_DrawCharacter = 0x80806670; // type:func -FileSelect_DrawCharacterTransition = 0x808067A8; // type:func -FileSelect_SetKeyboardVtx = 0x80806988; // type:func -FileSelect_SetNameEntryVtx = 0x80806C4C; // type:func -FileSelect_DrawKeyboard = 0x80807930; // type:func -FileSelect_ApplyDiacriticToCharacter = 0x808081F4; // type:func -FileSelect_ApplyDiacriticToFilename = 0x808083FC; // type:func -FileSelect_DrawNameEntry = 0x8080847C; // type:func -FileSelect_StartNameEntry = 0x808098E0; // type:func -FileSelect_UpdateKeyboardCursor = 0x80809994; // type:func -FileSelect_StartOptions = 0x8080A374; // type:func -FileSelect_UpdateOptionsMenu = 0x8080A404; // type:func -FileSelect_DrawOptionsImpl = 0x8080A680; // type:func -FileSelect_DrawOptions = 0x8080BA98; // type:func -FileSelect_SetView = 0x8080BAC0; // type:func -FileSelect_QuadTextureIA8 = 0x8080BB44; // type:func -FileSelect_InitModeUpdate = 0x8080BD24; // type:func -FileSelect_InitModeDraw = 0x8080BD7C; // type:func -FileSelect_FadeInMenuElements = 0x8080BD88; // type:func -FileSelect_SplitNumber = 0x8080BEF0; // type:func -FileSelect_StartFadeIn = 0x8080BF64; // type:func -FileSelect_FinishFadeIn = 0x8080BFEC; // type:func -FileSelect_UpdateMainMenu = 0x8080C084; // type:func -FileSelect_UnusedCM31 = 0x8080C928; // type:func -FileSelect_UnusedCMDelay = 0x8080C934; // type:func -FileSelect_RotateToNameEntry = 0x8080C988; // type:func -FileSelect_RotateToOptions = 0x8080C9FC; // type:func -FileSelect_RotateToMain = 0x8080CA70; // type:func -FileSelect_PulsateCursor = 0x8080CAE8; // type:func -FileSelect_ConfigModeUpdate = 0x8080CBE4; // type:func -FileSelect_SetWindowVtx = 0x8080CC20; // type:func -FileSelect_SetWindowContentVtx = 0x8080CEF4; // type:func -FileSelect_DrawFileInfo = 0x8080E1B8; // type:func -FileSelect_DrawWindowContents = 0x8080E934; // type:func -FileSelect_ConfigModeDraw = 0x8080FDE8; // type:func -FileSelect_FadeMainToSelect = 0x808106C8; // type:func -FileSelect_MoveSelectedFileToTop = 0x80810834; // type:func -FileSelect_FadeInFileInfo = 0x80810938; // type:func -FileSelect_ConfirmFile = 0x80810A1C; // type:func -FileSelect_FadeOutFileInfo = 0x80810BF4; // type:func -FileSelect_MoveSelectedFileToSlot = 0x80810CE4; // type:func -FileSelect_FadeOut = 0x80810F3C; // type:func -FileSelect_LoadGame = 0x80810F98; // type:func -FileSelect_SelectModeUpdate = 0x80811160; // type:func -FileSelect_SelectModeDraw = 0x8081119C; // type:func -FileSelect_Main = 0x80811554; // type:func -FileSelect_InitContext = 0x80811B1C; // type:func -FileSelect_Destroy = 0x80812148; // type:func -FileSelect_Init = 0x80812154; // type:func -KaleidoScope_DrawQuestStatus = 0x808135B0; // type:func -KaleidoScope_UpdateQuestStatusPoint = 0x8081599C; // type:func -KaleidoScope_DrawDebugEditorText = 0x808159B0; // type:func -KaleidoScope_DrawDigit = 0x80815CA4; // type:func -KaleidoScope_DrawDebugEditor = 0x80815E18; // type:func -KaleidoScope_DrawEquipmentImage = 0x80817960; // type:func -KaleidoScope_DrawPlayerWork = 0x80817D60; // type:func -KaleidoScope_DrawEquipment = 0x80817F04; // type:func -KaleidoScope_DrawAmmoCount = 0x808193E0; // type:func -KaleidoScope_SetCursorVtx = 0x8081991C; // type:func -KaleidoScope_SetItemCursorVtx = 0x8081994C; // type:func -KaleidoScope_DrawItemSelect = 0x80819978; // type:func -KaleidoScope_UpdateItemEquip = 0x8081A7D4; // type:func -KaleidoScope_DrawDungeonMap = 0x8081B3D0; // type:func -KaleidoScope_DrawWorldMap = 0x8081CBE0; // type:func -KaleidoScope_UpdatePrompt = 0x8081E6B0; // type:func -KaleidoScope_SetupPlayerPreRender = 0x8081E8B0; // type:func -KaleidoScope_ProcessPlayerPreRender = 0x8081E988; // type:func -KaleidoScope_QuadTextureIA4 = 0x8081E9C0; // type:func -KaleidoScope_QuadTextureIA8 = 0x8081EBA0; // type:func -KaleidoScope_OverridePalIndexCI4 = 0x8081ED80; // type:func -KaleidoScope_MoveCursorToSpecialPos = 0x8081EEB8; // type:func -KaleidoScope_DrawQuadTextureRGBA32 = 0x8081EF1C; // type:func -KaleidoScope_SetDefaultCursor = 0x8081F10C; // type:func -KaleidoScope_SetupPageSwitch = 0x8081F1CC; // type:func -KaleidoScope_HandlePageToggles = 0x8081F344; // type:func -KaleidoScope_DrawCursor = 0x8081F474; // type:func -KaleidoScope_DrawPageSections = 0x8081F7C0; // type:func -KaleidoScope_DrawPages = 0x8081FA6C; // type:func -KaleidoScope_DrawInfoPanel = 0x80821248; // type:func -KaleidoScope_UpdateNamePanel = 0x808229D8; // type:func -KaleidoScope_UpdatePageSwitch = 0x80822BD0; // type:func -KaleidoScope_SetView = 0x80822DB0; // type:func -func_80823A0C = 0x80822E2C; // type:func -KaleidoScope_InitVertices = 0x808234BC; // type:func -KaleidoScope_DrawGameOver = 0x80824FFC; // type:func -KaleidoScope_Draw = 0x80825674; // type:func -KaleidoScope_GrayOutTextureRGBA32 = 0x8082589C; // type:func -KaleidoScope_UpdateOpening = 0x80825950; // type:func -KaleidoScope_UpdateCursorSize = 0x80825B40; // type:func -KaleidoScope_LoadDungeonMap = 0x80825E84; // type:func -KaleidoScope_UpdateDungeonMap = 0x80825F20; // type:func -KaleidoScope_Update = 0x80826014; // type:func -PauseMapMark_Init = 0x80828870; // type:func -PauseMapMark_Clear = 0x808288A4; // type:func -PauseMapMark_DrawForDungeon = 0x808288B8; // type:func -PauseMapMark_Draw = 0x80828ECC; // type:func -Player_ZeroSpeedXZ = 0x8082FDA0; // type:func -func_80832224 = 0x8082FDB8; // type:func -func_8083224C = 0x8082FDE0; // type:func -Player_AnimPlayOnce = 0x8082FDFC; // type:func -Player_AnimPlayLoop = 0x8082FE20; // type:func -Player_AnimPlayLoopAdjusted = 0x8082FE44; // type:func -Player_AnimPlayOnceAdjusted = 0x8082FE74; // type:func -func_808322FC = 0x8082FEA4; // type:func -func_80832318 = 0x8082FEC4; // type:func -func_80832340 = 0x8082FEF0; // type:func -Player_DetachHeldActor = 0x8082FF60; // type:func -func_80832440 = 0x8082FFEC; // type:func -Player_PutAwayHeldItem = 0x808300D4; // type:func -func_80832564 = 0x80830110; // type:func -func_80832594 = 0x80830148; // type:func -func_80832630 = 0x808301E8; // type:func -Player_RequestRumble = 0x80830204; // type:func -func_80832698 = 0x80830250; // type:func -func_808326F0 = 0x808302B0; // type:func -func_8083275C = 0x8083031C; // type:func -func_80832770 = 0x80830338; // type:func -func_808327A4 = 0x80830370; // type:func -func_808327C4 = 0x80830398; // type:func -func_808327F8 = 0x808303D0; // type:func -func_80832854 = 0x8083042C; // type:func -func_808328A0 = 0x80830478; // type:func -func_808328EC = 0x808304C4; // type:func -Player_ProcessAnimSfxList = 0x808304F8; // type:func -Player_AnimChangeOnceMorph = 0x808306E0; // type:func -Player_AnimChangeOnceMorphAdjusted = 0x8083074C; // type:func -Player_AnimChangeLoopMorph = 0x808307BC; // type:func -Player_AnimChangeFreeze = 0x80830804; // type:func -Player_AnimChangeLoopSlowMorph = 0x80830848; // type:func -func_80832CB0 = 0x80830890; // type:func -Player_SkelAnimeResetPrevTranslRot = 0x808308E4; // type:func -Player_SkelAnimeResetPrevTranslRotAgeScale = 0x8083090C; // type:func -Player_ZeroRootLimbYaw = 0x80830998; // type:func -func_80832DBC = 0x808309A8; // type:func -func_80832E48 = 0x80830A34; // type:func -Player_AnimReplaceApplyFlags = 0x80830B44; // type:func -Player_AnimReplacePlayOnceSetSpeed = 0x80830BEC; // type:func -Player_AnimReplacePlayOnce = 0x80830C34; // type:func -Player_AnimReplacePlayOnceAdjusted = 0x80830C5C; // type:func -Player_AnimReplaceNormalPlayOnceAdjusted = 0x80830C84; // type:func -Player_AnimReplacePlayLoopSetSpeed = 0x80830CA4; // type:func -Player_AnimReplacePlayLoop = 0x80830CEC; // type:func -Player_AnimReplacePlayLoopAdjusted = 0x80830D14; // type:func -Player_AnimReplaceNormalPlayLoopAdjusted = 0x80830D3C; // type:func -Player_ProcessControlStick = 0x80830D5C; // type:func -func_8083328C = 0x80830E88; // type:func -func_808332B8 = 0x80830EB8; // type:func -func_808332E4 = 0x80830EE4; // type:func -func_808332F4 = 0x80830EF8; // type:func -func_80833338 = 0x80830F3C; // type:func -func_80833350 = 0x80830F58; // type:func -func_808333FC = 0x8083100C; // type:func -func_80833438 = 0x80831048; // type:func -func_808334B4 = 0x808310C4; // type:func -func_808334E4 = 0x808310F8; // type:func -func_80833528 = 0x80831140; // type:func -func_8083356C = 0x80831188; // type:func -func_808335B0 = 0x808311D0; // type:func -func_808335F4 = 0x80831218; // type:func -Player_SetUpperActionFunc = 0x80831260; // type:func -Player_InitItemActionWithAnim = 0x8083128C; // type:func -Player_ItemToItemAction = 0x8083134C; // type:func -Player_InitDefaultIA = 0x80831398; // type:func -Player_InitDekuStickIA = 0x808313A8; // type:func -Player_InitHammerIA = 0x808313C4; // type:func -Player_InitBowOrSlingshotIA = 0x808313D4; // type:func -Player_InitExplosiveIA = 0x8083140C; // type:func -Player_InitHookshotIA = 0x8083154C; // type:func -Player_InitBoomerangIA = 0x808315BC; // type:func -Player_InitItemAction = 0x808315D8; // type:func -func_80833A20 = 0x80831664; // type:func -func_80833B2C = 0x8083176C; // type:func -func_80833B54 = 0x80831794; // type:func -func_80833BCC = 0x8083180C; // type:func -func_80833C04 = 0x80831848; // type:func -func_80833C3C = 0x80831884; // type:func -Player_ItemIsInUse = 0x8083189C; // type:func -Player_ItemIsItemAction = 0x808318E8; // type:func -Player_GetItemOnButton = 0x80831930; // type:func -Player_ProcessItemButtons = 0x80831A4C; // type:func -Player_StartChangingHeldItem = 0x80831D34; // type:func -Player_UpdateItems = 0x80831EEC; // type:func -func_80834380 = 0x80831FD4; // type:func -func_8083442C = 0x80832080; // type:func -Player_FinishItemChange = 0x808321E8; // type:func -func_80834644 = 0x80832298; // type:func -func_808346C4 = 0x80832318; // type:func -func_80834758 = 0x808323AC; // type:func -func_8083485C = 0x808324B4; // type:func -func_80834894 = 0x808324EC; // type:func -Player_WaitToFinishItemChange = 0x80832548; // type:func -func_8083499C = 0x808325F8; // type:func -Player_UpperAction_Sword = 0x80832638; // type:func -Player_UpperAction_ChangeHeldItem = 0x80832688; // type:func -func_80834B5C = 0x808327B8; // type:func -func_80834BD4 = 0x80832834; // type:func -func_80834C74 = 0x808328D8; // type:func -func_80834D2C = 0x80832990; // type:func -func_80834E44 = 0x80832AA8; // type:func -func_80834E7C = 0x80832AE0; // type:func -func_80834EB8 = 0x80832B1C; // type:func -func_80834F2C = 0x80832B90; // type:func -func_80834FBC = 0x80832C20; // type:func -func_8083501C = 0x80832C80; // type:func -func_808350A4 = 0x80832D08; // type:func -func_808351D4 = 0x80832E3C; // type:func -func_808353D8 = 0x80833048; // type:func -func_80835588 = 0x808331F8; // type:func -func_808355DC = 0x80833254; // type:func -func_80835644 = 0x808332C0; // type:func -func_80835688 = 0x80833308; // type:func -Player_UpperAction_CarryActor = 0x80833368; // type:func -func_808357E8 = 0x80833468; // type:func -func_80835800 = 0x80833484; // type:func -func_80835884 = 0x80833508; // type:func -func_808358F0 = 0x80833574; // type:func -func_808359FC = 0x80833688; // type:func -func_80835B60 = 0x808337F0; // type:func -func_80835C08 = 0x80833898; // type:func -Player_SetupAction = 0x808338F0; // type:func -func_80835DAC = 0x80833A4C; // type:func -func_80835DE4 = 0x80833A80; // type:func -func_80835E44 = 0x80833AE4; // type:func -func_80835EA4 = 0x80833B48; // type:func -Player_DestroyHookshot = 0x80833BA4; // type:func -Player_UseItem = 0x80833BF4; // type:func -func_80836448 = 0x808340FC; // type:func -Player_CanUpdateItems = 0x8083427C; // type:func -Player_UpdateUpperBody = 0x80834328; // type:func -Player_SetupWaitForPutAway = 0x80834550; // type:func -Player_UpdateShapeYaw = 0x808345A8; // type:func -func_808369C8 = 0x80834684; // type:func -func_80836AB8 = 0x80834770; // type:func -func_80836BEC = 0x808348A4; // type:func -Player_CalcSpeedAndYawFromControlStick = 0x80834C68; // type:func -func_8083721C = 0x80834ED8; // type:func -Player_GetMovementSpeedAndYaw = 0x80834F2C; // type:func -Player_TryActionChangeList = 0x8083500C; // type:func -Player_TryActionInterrupt = 0x80835168; // type:func -func_80837530 = 0x80835200; // type:func -Player_CanSpinAttack = 0x808352B0; // type:func -func_80837704 = 0x808353E0; // type:func -func_808377DC = 0x808354B8; // type:func -func_80837818 = 0x808354FC; // type:func -func_80837918 = 0x808355FC; // type:func -func_80837948 = 0x8083562C; // type:func -func_80837AE0 = 0x808357CC; // type:func -func_80837AFC = 0x808357E8; // type:func -func_80837B18 = 0x80835808; // type:func -func_80837B60 = 0x80835850; // type:func -func_80837B9C = 0x8083588C; // type:func -func_80837C0C = 0x808358FC; // type:func -func_80838144 = 0x80835E34; // type:func -func_8083816C = 0x80835E5C; // type:func -func_8083819C = 0x80835E8C; // type:func -func_8083821C = 0x80835F10; // type:func -func_80838280 = 0x80835F74; // type:func -func_808382BC = 0x80835FB0; // type:func -func_808382DC = 0x80835FD0; // type:func -func_80838940 = 0x80836634; // type:func -func_808389E8 = 0x808366D8; // type:func -Player_ActionChange_12 = 0x80836704; // type:func -func_80838E70 = 0x80836B60; // type:func -func_80838F18 = 0x80836C10; // type:func -func_80838F5C = 0x80836C5C; // type:func -func_80838FB8 = 0x80836CC0; // type:func -Player_HandleExitsAndVoids = 0x80836D3C; // type:func -Player_GetRelativePosition = 0x808372E0; // type:func -Player_SpawnFairy = 0x80837384; // type:func -func_808396F4 = 0x808373F8; // type:func -func_8083973C = 0x80837444; // type:func -Player_PosVsWallLineTest = 0x80837470; // type:func -Player_ActionChange_1 = 0x8083750C; // type:func -func_80839E88 = 0x80837BA4; // type:func -func_80839F30 = 0x80837C48; // type:func -func_80839F90 = 0x80837CA4; // type:func -func_80839FFC = 0x80837D10; // type:func -func_8083A060 = 0x80837D78; // type:func -func_8083A098 = 0x80837DB4; // type:func -func_8083A0D4 = 0x80837DF4; // type:func -func_8083A0F4 = 0x80837E14; // type:func -func_8083A2F8 = 0x80838018; // type:func -func_8083A360 = 0x80838088; // type:func -func_8083A388 = 0x808380B0; // type:func -func_8083A3B0 = 0x808380D8; // type:func -func_8083A40C = 0x80838130; // type:func -func_8083A434 = 0x80838158; // type:func -func_8083A4A8 = 0x808381CC; // type:func -func_8083A5C4 = 0x808382E8; // type:func -func_8083A6AC = 0x808383DC; // type:func -func_8083A9B8 = 0x808386E4; // type:func -func_8083AA10 = 0x8083873C; // type:func -func_8083AD4C = 0x80838A78; // type:func -Player_StartCsAction = 0x80838B00; // type:func -func_8083AE40 = 0x80838B6C; // type:func -func_8083AF44 = 0x80838BF4; // type:func -func_8083B010 = 0x80838CC8; // type:func -Player_ActionChange_13 = 0x80838CFC; // type:func -Player_ActionChange_4 = 0x80839300; // type:func -func_8083B8F4 = 0x808395B0; // type:func -Player_ActionChange_0 = 0x80839658; // type:func -func_8083BA90 = 0x80839750; // type:func -func_8083BB20 = 0x808397E8; // type:func -func_8083BBA0 = 0x80839868; // type:func -func_8083BC04 = 0x808398D0; // type:func -func_8083BC7C = 0x80839948; // type:func -func_8083BCD0 = 0x8083999C; // type:func -Player_ActionChange_10 = 0x80839A88; // type:func -func_8083BF50 = 0x80839C20; // type:func -func_8083C0B8 = 0x80839D84; // type:func -func_8083C0E8 = 0x80839DBC; // type:func -func_8083C148 = 0x80839E18; // type:func -Player_ActionChange_6 = 0x80839EB4; // type:func -Player_ActionChange_11 = 0x80839F90; // type:func -func_8083C484 = 0x8083A168; // type:func -func_8083C50C = 0x8083A1F0; // type:func -Player_ActionChange_8 = 0x8083A228; // type:func -func_8083C61C = 0x8083A304; // type:func -func_8083C6B8 = 0x8083A3A0; // type:func -func_8083C858 = 0x8083A544; // type:func -func_8083C8DC = 0x8083A5C8; // type:func -func_8083C910 = 0x8083A5FC; // type:func -func_8083CA20 = 0x8083A710; // type:func -func_8083CA54 = 0x8083A748; // type:func -func_8083CA9C = 0x8083A790; // type:func -func_8083CB2C = 0x8083A824; // type:func -func_8083CB94 = 0x8083A888; // type:func -func_8083CBF0 = 0x8083A8E4; // type:func -func_8083CC9C = 0x8083A98C; // type:func -func_8083CD00 = 0x8083A9EC; // type:func -func_8083CD54 = 0x8083AA40; // type:func -func_8083CE0C = 0x8083AAFC; // type:func -func_8083CEAC = 0x8083AB98; // type:func -func_8083CF10 = 0x8083ABF8; // type:func -func_8083CF5C = 0x8083AC40; // type:func -func_8083CFA8 = 0x8083AC88; // type:func -func_8083D0A8 = 0x8083AD90; // type:func -func_8083D12C = 0x8083AE18; // type:func -func_8083D330 = 0x8083B020; // type:func -func_8083D36C = 0x8083B05C; // type:func -func_8083D53C = 0x8083B230; // type:func -func_8083D6EC = 0x8083B3E0; // type:func -func_8083DB98 = 0x8083B890; // type:func -func_8083DC54 = 0x8083B94C; // type:func -func_8083DDC8 = 0x8083BAC0; // type:func -func_8083DF68 = 0x8083BC68; // type:func -func_8083DFE0 = 0x8083BCE4; // type:func -Player_ActionChange_3 = 0x8083BE04; // type:func -Player_GetSlopeDirection = 0x8083BFA4; // type:func -Player_HandleSlopes = 0x8083C020; // type:func -func_8083E4C4 = 0x8083C1D4; // type:func -Player_ActionChange_2 = 0x8083C2BC; // type:func -func_8083EA94 = 0x8083C754; // type:func -func_8083EAF0 = 0x8083C7B0; // type:func -Player_ActionChange_9 = 0x8083C804; // type:func -func_8083EC18 = 0x8083C8D8; // type:func -func_8083F070 = 0x8083CD34; // type:func -Player_TryEnteringCrawlspace = 0x8083CD8C; // type:func -func_8083F360 = 0x8083D028; // type:func -func_8083F524 = 0x8083D1EC; // type:func -Player_TryLeavingCrawlspace = 0x8083D238; // type:func -func_8083F72C = 0x8083D3F4; // type:func -Player_ActionChange_5 = 0x8083D480; // type:func -func_8083F9D0 = 0x8083D698; // type:func -func_8083FAB8 = 0x8083D780; // type:func -func_8083FB14 = 0x8083D7DC; // type:func -func_8083FB7C = 0x8083D844; // type:func -func_8083FBC0 = 0x8083D884; // type:func -func_8083FC68 = 0x8083D934; // type:func -func_8083FD78 = 0x8083DA44; // type:func -func_8083FFB8 = 0x8083DC88; // type:func -func_80840058 = 0x8083DD28; // type:func -func_80840138 = 0x8083DE10; // type:func -func_808401B0 = 0x8083DE88; // type:func -func_8084021C = 0x8083DEF4; // type:func -func_8084029C = 0x8083DF74; // type:func -Player_Action_80840450 = 0x8083E12C; // type:func -Player_Action_808407CC = 0x8083E4A8; // type:func -func_808409CC = 0x8083E6A8; // type:func -Player_Action_80840BC8 = 0x8083E8A4; // type:func -Player_Action_80840DE4 = 0x8083EAC4; // type:func -func_80841138 = 0x8083EE18; // type:func -func_8084140C = 0x8083F0F4; // type:func -func_80841458 = 0x8083F140; // type:func -Player_Action_808414F8 = 0x8083F1E0; // type:func -func_808416C0 = 0x8083F3B4; // type:func -Player_Action_8084170C = 0x8083F400; // type:func -Player_Action_808417FC = 0x8083F4F0; // type:func -func_80841860 = 0x8083F554; // type:func -Player_Action_8084193C = 0x8083F630; // type:func -Player_Action_80841BA8 = 0x8083F894; // type:func -func_80841CC4 = 0x8083F9B0; // type:func -func_80841EE4 = 0x8083FBD4; // type:func -Player_Action_80842180 = 0x8083FE78; // type:func -Player_Action_8084227C = 0x8083FF7C; // type:func -Player_Action_808423EC = 0x808400F0; // type:func -Player_Action_8084251C = 0x80840220; // type:func -func_8084260C = 0x80840310; // type:func -func_8084269C = 0x808403A0; // type:func -Player_Action_8084279C = 0x808404A0; // type:func -func_8084285C = 0x80840560; // type:func -func_808428D8 = 0x808405DC; // type:func -func_80842964 = 0x8084066C; // type:func -Player_RequestQuake = 0x808406C4; // type:func -func_80842A28 = 0x80840738; // type:func -func_80842A88 = 0x8084079C; // type:func -func_80842AC4 = 0x808407D8; // type:func -func_80842B7C = 0x80840894; // type:func -func_80842CF0 = 0x80840A0C; // type:func -func_80842D20 = 0x80840A44; // type:func -func_80842DF4 = 0x80840B1C; // type:func -Player_Action_80843188 = 0x80840EB0; // type:func -Player_Action_808435C4 = 0x808412EC; // type:func -Player_Action_8084370C = 0x80841438; // type:func -Player_Action_8084377C = 0x808414AC; // type:func -Player_Action_80843954 = 0x80841688; // type:func -Player_Action_80843A38 = 0x80841770; // type:func -func_80843AE8 = 0x80841824; // type:func -Player_Action_80843CEC = 0x80841A28; // type:func -func_80843E14 = 0x80841B54; // type:func -func_80843E64 = 0x80841BA8; // type:func -func_8084409C = 0x80841DE0; // type:func -Player_Action_8084411C = 0x80841E68; // type:func -Player_Action_80844708 = 0x8084245C; // type:func -Player_Action_80844A44 = 0x80842798; // type:func -Player_Action_80844AF4 = 0x80842848; // type:func -func_80844BE4 = 0x80842938; // type:func -func_80844CF8 = 0x80842A50; // type:func -func_80844D30 = 0x80842A88; // type:func -func_80844D68 = 0x80842AC0; // type:func -func_80844DC8 = 0x80842B24; // type:func -func_80844E3C = 0x80842B98; // type:func -Player_Action_80844E68 = 0x80842BC8; // type:func -Player_Action_80845000 = 0x80842D60; // type:func -Player_Action_80845308 = 0x80843068; // type:func -Player_Action_80845668 = 0x808433C8; // type:func -Player_Action_WaitForPutAway = 0x80843634; // type:func -func_80845964 = 0x808436C8; // type:func -func_80845BA0 = 0x8084390C; // type:func -func_80845C68 = 0x808439D8; // type:func -Player_Action_80845CA4 = 0x80843A18; // type:func -Player_Action_80845EF8 = 0x80843C78; // type:func -Player_Action_80846050 = 0x80843DD0; // type:func -Player_Action_80846120 = 0x80843EA8; // type:func -Player_Action_80846260 = 0x80843FE8; // type:func -Player_Action_80846358 = 0x808440E8; // type:func -Player_Action_80846408 = 0x80844198; // type:func -Player_Action_808464B0 = 0x80844240; // type:func -Player_Action_80846578 = 0x8084430C; // type:func -func_8084663C = 0x808443D4; // type:func -func_80846648 = 0x808443E4; // type:func -func_80846660 = 0x80844400; // type:func -func_80846720 = 0x808444C0; // type:func -func_808467D4 = 0x80844574; // type:func -func_808468A8 = 0x80844650; // type:func -func_808468E8 = 0x80844698; // type:func -func_80846978 = 0x80844728; // type:func -func_808469BC = 0x8084476C; // type:func -Player_SpawnMagicSpell = 0x808447AC; // type:func -func_80846A68 = 0x80844818; // type:func -Player_InitCommon = 0x80844858; // type:func -Player_Init = 0x80844A88; // type:func -func_808471F4 = 0x80844F98; // type:func -func_80847298 = 0x8084503C; // type:func -Player_UpdateInterface = 0x80845178; // type:func -Player_UpdateHoverBoots = 0x80845828; // type:func -Player_ProcessSceneCollision = 0x80845950; // type:func -Player_UpdateCamAndSeqModes = 0x80846458; // type:func -Player_UpdateBurningDekuStick = 0x808467B8; // type:func -Player_UpdateBodyShock = 0x80846900; // type:func -Player_UpdateBodyBurn = 0x80846A30; // type:func -Player_DetectRumbleSecrets = 0x80846CB4; // type:func -Player_UpdateCommon = 0x80846D5C; // type:func -Player_Update = 0x80847C68; // type:func -Player_DrawGameplay = 0x80847EA0; // type:func -Player_Draw = 0x80848344; // type:func -Player_Destroy = 0x808488A4; // type:func -func_8084ABD8 = 0x80848928; // type:func -func_8084AEEC = 0x80848C3C; // type:func -func_8084B000 = 0x80848D58; // type:func -func_8084B158 = 0x80848EB8; // type:func -Player_Action_8084B1D8 = 0x80848F38; // type:func -func_8084B3CC = 0x80849128; // type:func -func_8084B498 = 0x808491FC; // type:func -func_8084B4D4 = 0x80849238; // type:func -Player_Action_8084B530 = 0x80849298; // type:func -Player_Action_8084B78C = 0x80849500; // type:func -func_8084B840 = 0x808495B4; // type:func -Player_Action_8084B898 = 0x80849610; // type:func -Player_Action_8084B9E4 = 0x8084975C; // type:func -Player_Action_8084BBE4 = 0x80849960; // type:func -Player_Action_8084BDFC = 0x80849B78; // type:func -func_8084BEE4 = 0x80849C60; // type:func -Player_Action_8084BF1C = 0x80849C98; // type:func -Player_Action_8084C5F8 = 0x8084A378; // type:func -Player_Action_8084C760 = 0x8084A4E0; // type:func -Player_Action_8084C81C = 0x8084A59C; // type:func -func_8084C89C = 0x8084A61C; // type:func -func_8084C9BC = 0x8084A748; // type:func -func_8084CBF4 = 0x8084A984; // type:func -Player_Action_8084CC98 = 0x8084AA2C; // type:func -Player_Action_8084D3E4 = 0x8084B17C; // type:func -func_8084D530 = 0x8084B2D0; // type:func -func_8084D574 = 0x8084B318; // type:func -func_8084D5CC = 0x8084B374; // type:func -Player_Action_8084D610 = 0x8084B3C0; // type:func -Player_Action_8084D7C4 = 0x8084B570; // type:func -Player_Action_8084D84C = 0x8084B600; // type:func -func_8084D980 = 0x8084B734; // type:func -Player_Action_8084DAB4 = 0x8084B86C; // type:func -func_8084DBC4 = 0x8084B97C; // type:func -Player_Action_8084DC48 = 0x8084BA00; // type:func -func_8084DF6C = 0x8084BD2C; // type:func -func_8084DFAC = 0x8084BD70; // type:func -func_8084DFF4 = 0x8084BDBC; // type:func -Player_Action_8084E1EC = 0x8084BFB4; // type:func -Player_Action_8084E30C = 0x8084C0D4; // type:func -Player_Action_8084E368 = 0x8084C134; // type:func -Player_Action_8084E3C4 = 0x8084C194; // type:func -Player_Action_8084E604 = 0x8084C3D4; // type:func -Player_Action_8084E6D4 = 0x8084C4A4; // type:func -func_8084E988 = 0x8084C758; // type:func -Player_Action_8084E9AC = 0x8084C77C; // type:func -Player_Action_8084EAC0 = 0x8084C890; // type:func -Player_Action_8084ECA4 = 0x8084CA7C; // type:func -Player_Action_8084EED8 = 0x8084CCB4; // type:func -Player_Action_8084EFC0 = 0x8084CD9C; // type:func -Player_Action_8084F104 = 0x8084CEE4; // type:func -Player_Action_8084F308 = 0x8084D0EC; // type:func -Player_Action_8084F390 = 0x8084D174; // type:func -Player_Action_8084F608 = 0x8084D3EC; // type:func -Player_Action_8084F698 = 0x8084D47C; // type:func -Player_Action_8084F710 = 0x8084D4F4; // type:func -Player_Action_8084F88C = 0x8084D670; // type:func -Player_Action_8084F9A0 = 0x8084D784; // type:func -Player_Action_8084F9C0 = 0x8084D7A4; // type:func -Player_Action_8084FA54 = 0x8084D838; // type:func -Player_Action_8084FB10 = 0x8084D8F4; // type:func -Player_Action_8084FBF4 = 0x8084D9D8; // type:func -func_8084FF7C = 0x8084DA90; // type:func -Player_UpdateBunnyEars = 0x8084DB44; // type:func -Player_ActionChange_7 = 0x8084DD3C; // type:func -Player_Action_808502D0 = 0x8084DDE8; // type:func -Player_Action_808505DC = 0x8084E0F8; // type:func -Player_Action_8085063C = 0x8084E158; // type:func -Player_Action_8085076C = 0x8084E288; // type:func -Player_Action_808507F4 = 0x8084E310; // type:func -Player_Action_80850AEC = 0x8084E60C; // type:func -Player_Action_80850C68 = 0x8084E78C; // type:func -Player_Action_80850E84 = 0x8084E9A8; // type:func -Player_AnimChangeOnceMorphZeroRootYawSpeed = 0x8084E9FC; // type:func -Player_AnimChangeOnceMorphAdjustedZeroRootYawSpeed = 0x8084EA40; // type:func -Player_AnimChangeLoopMorphAdjustedZeroRootYawSpeed = 0x8084EAC0; // type:func -func_80851008 = 0x8084EB2C; // type:func -func_80851030 = 0x8084EB54; // type:func -func_80851050 = 0x8084EB74; // type:func -func_80851094 = 0x8084EBB8; // type:func -func_808510B4 = 0x8084EBD8; // type:func -func_808510D4 = 0x8084EBF8; // type:func -func_808510F4 = 0x8084EC18; // type:func -func_80851114 = 0x8084EC38; // type:func -func_80851134 = 0x8084EC58; // type:func -func_80851154 = 0x8084EC78; // type:func -func_80851174 = 0x8084EC98; // type:func -func_80851194 = 0x8084ECB8; // type:func -func_808511B4 = 0x8084ECD8; // type:func -func_808511D4 = 0x8084ECF8; // type:func -func_808511FC = 0x8084ED24; // type:func -func_80851248 = 0x8084ED78; // type:func -func_80851294 = 0x8084EDCC; // type:func -func_808512E0 = 0x8084EE20; // type:func -func_80851314 = 0x8084EE58; // type:func -func_80851368 = 0x8084EEAC; // type:func -func_808513BC = 0x8084EF00; // type:func -func_808514C0 = 0x8084F008; // type:func -func_8085157C = 0x8084F0C4; // type:func -func_808515A4 = 0x8084F0F0; // type:func -func_80851688 = 0x8084F1D4; // type:func -func_80851750 = 0x8084F2A4; // type:func -func_80851788 = 0x8084F2E0; // type:func -func_80851828 = 0x8084F380; // type:func -func_808518DC = 0x8084F438; // type:func -func_8085190C = 0x8084F46C; // type:func -func_80851998 = 0x8084F4F8; // type:func -func_808519C0 = 0x8084F520; // type:func -func_808519EC = 0x8084F54C; // type:func -func_80851A50 = 0x8084F5B0; // type:func -func_80851B90 = 0x8084F6F0; // type:func -func_80851BE8 = 0x8084F74C; // type:func -func_80851CA4 = 0x8084F80C; // type:func -func_80851D2C = 0x8084F898; // type:func -func_80851D80 = 0x8084F8F0; // type:func -func_80851DEC = 0x8084F964; // type:func -func_80851E28 = 0x8084F9A4; // type:func -func_80851E64 = 0x8084F9E4; // type:func -func_80851E90 = 0x8084FA10; // type:func -func_80851ECC = 0x8084FA50; // type:func -func_80851F14 = 0x8084FAA0; // type:func -func_80851F84 = 0x8084FB14; // type:func -func_80851FB0 = 0x8084FB40; // type:func -func_80852048 = 0x8084FBDC; // type:func -func_80852080 = 0x8084FC18; // type:func -func_808520BC = 0x8084FC58; // type:func -func_80852174 = 0x8084FD10; // type:func -func_808521B8 = 0x8084FD5C; // type:func -func_808521F4 = 0x8084FD9C; // type:func -func_80852234 = 0x8084FDDC; // type:func -func_8085225C = 0x8084FE08; // type:func -func_80852280 = 0x8084FE2C; // type:func -func_80852298 = 0x8084FE48; // type:func -func_80852328 = 0x8084FEDC; // type:func -func_80852358 = 0x8084FF0C; // type:func -func_80852388 = 0x8084FF3C; // type:func -func_80852414 = 0x8084FFCC; // type:func -func_80852450 = 0x8085000C; // type:func -func_80852480 = 0x8085003C; // type:func -func_808524B0 = 0x8085006C; // type:func -func_808524D0 = 0x80850090; // type:func -func_80852514 = 0x808500D8; // type:func -func_80852544 = 0x8085010C; // type:func -func_80852554 = 0x80850120; // type:func -func_80852564 = 0x80850134; // type:func -func_808525C0 = 0x80850198; // type:func -func_80852608 = 0x808501E4; // type:func -func_80852648 = 0x8085022C; // type:func -func_808526EC = 0x808502D4; // type:func -func_8085283C = 0x8085042C; // type:func -func_808528C8 = 0x808504BC; // type:func -func_80852944 = 0x8085053C; // type:func -func_808529D0 = 0x808505C8; // type:func -func_80852A54 = 0x80850650; // type:func -func_80852B4C = 0x80850748; // type:func -func_80852C0C = 0x80850808; // type:func -func_80852C50 = 0x8085084C; // type:func -Player_Action_CsAction = 0x80850A08; // type:func -Player_IsDroppingFish = 0x80850AB0; // type:func -Player_StartFishing = 0x80850AE4; // type:func -func_80852F38 = 0x80850B20; // type:func -Player_TryCsAction = 0x80850BEC; // type:func -func_80853080 = 0x80850C70; // type:func -Player_InflictDamage = 0x80850CCC; // type:func -func_80853148 = 0x80850D34; // type:func -EnTest_SetupAction = 0x8085D0E0; // type:func -EnTest_Init = 0x8085D0EC; // type:func -EnTest_Destroy = 0x8085D338; // type:func -EnTest_ChooseRandomAction = 0x8085D3D0; // type:func -EnTest_ChooseAction = 0x8085D54C; // type:func -EnTest_SetupWaitGround = 0x8085D86C; // type:func -EnTest_WaitGround = 0x8085D8E4; // type:func -EnTest_SetupWaitAbove = 0x8085D9C4; // type:func -EnTest_WaitAbove = 0x8085DA38; // type:func -EnTest_SetupIdle = 0x8085DB04; // type:func -EnTest_Idle = 0x8085DB88; // type:func -EnTest_Fall = 0x8085DDB8; // type:func -EnTest_Land = 0x8085DE6C; // type:func -EnTest_SetupWalkAndBlock = 0x8085DEDC; // type:func -EnTest_WalkAndBlock = 0x8085DFA0; // type:func -func_80860BDC = 0x8085E684; // type:func -func_80860C24 = 0x8085E6CC; // type:func -func_80860EC0 = 0x8085E968; // type:func -func_80860F84 = 0x8085EA2C; // type:func -EnTest_SetupSlashDown = 0x8085EEC0; // type:func -EnTest_SlashDown = 0x8085EF44; // type:func -EnTest_SetupSlashDownEnd = 0x8085F050; // type:func -EnTest_SlashDownEnd = 0x8085F0A0; // type:func -EnTest_SetupSlashUp = 0x8085F2CC; // type:func -EnTest_SlashUp = 0x8085F348; // type:func -EnTest_SetupJumpBack = 0x8085F400; // type:func -EnTest_JumpBack = 0x8085F4A0; // type:func -EnTest_SetupJumpslash = 0x8085F648; // type:func -EnTest_Jumpslash = 0x8085F6F4; // type:func -EnTest_SetupJumpUp = 0x8085F804; // type:func -EnTest_JumpUp = 0x8085F87C; // type:func -EnTest_SetupStopAndBlock = 0x8085F974; // type:func -EnTest_StopAndBlock = 0x8085FA34; // type:func -EnTest_SetupIdleFromBlock = 0x8085FB04; // type:func -EnTest_IdleFromBlock = 0x8085FB50; // type:func -func_80862154 = 0x8085FC08; // type:func -func_808621D4 = 0x8085FC88; // type:func -func_80862398 = 0x8085FE50; // type:func -func_80862418 = 0x8085FED0; // type:func -EnTest_SetupStunned = 0x80860034; // type:func -EnTest_Stunned = 0x80860110; // type:func -func_808627C4 = 0x80860288; // type:func -func_808628C8 = 0x8086038C; // type:func -func_80862DBC = 0x80860884; // type:func -func_80862E6C = 0x80860938; // type:func -func_80862FA8 = 0x80860A74; // type:func -func_80863044 = 0x80860B10; // type:func -func_808630F0 = 0x80860BBC; // type:func -func_8086318C = 0x80860C58; // type:func -EnTest_SetupRecoil = 0x80860D0C; // type:func -EnTest_Recoil = 0x80860D60; // type:func -EnTest_Rise = 0x80860E2C; // type:func -func_808633E8 = 0x80860EB4; // type:func -EnTest_UpdateHeadRot = 0x80860F30; // type:func -EnTest_UpdateDamage = 0x80860FC8; // type:func -EnTest_Update = 0x80861168; // type:func -EnTest_OverrideLimbDraw = 0x80861594; // type:func -EnTest_PostLimbDraw = 0x80861768; // type:func -EnTest_Draw = 0x80861AF0; // type:func -func_80864158 = 0x80861C04; // type:func -EnTest_ReactToProjectile = 0x80861C94; // type:func -ArmsHook_SetupAction = 0x80862990; // type:func -ArmsHook_Init = 0x8086299C; // type:func -ArmsHook_Destroy = 0x80862A10; // type:func -ArmsHook_Wait = 0x80862A58; // type:func -func_80865044 = 0x80862AD8; // type:func -ArmsHook_AttachToPlayer = 0x80862AEC; // type:func -ArmsHook_DetachHookFromActor = 0x80862B1C; // type:func -ArmsHook_CheckForCancel = 0x80862B44; // type:func -ArmsHook_AttachHookToActor = 0x80862BE0; // type:func -ArmsHook_Shoot = 0x80862C28; // type:func -ArmsHook_Update = 0x80863294; // type:func -ArmsHook_Draw = 0x808632D4; // type:func -ArrowFire_SetupAction = 0x80863700; // type:func -ArrowFire_Init = 0x8086370C; // type:func -ArrowFire_Destroy = 0x80863788; // type:func -ArrowFire_Charge = 0x808637AC; // type:func -func_80865ECC = 0x808638A0; // type:func -ArrowFire_Hit = 0x808638F8; // type:func -ArrowFire_Fly = 0x80863AC4; // type:func -ArrowFire_Update = 0x80863C18; // type:func -ArrowFire_Draw = 0x80863C6C; // type:func -ArrowIce_SetupAction = 0x808655E0; // type:func -ArrowIce_Init = 0x808655EC; // type:func -ArrowIce_Destroy = 0x80865668; // type:func -ArrowIce_Charge = 0x8086568C; // type:func -func_80867E8C = 0x80865780; // type:func -ArrowIce_Hit = 0x808657D8; // type:func -ArrowIce_Fly = 0x808659A4; // type:func -ArrowIce_Update = 0x80865AF8; // type:func -ArrowIce_Draw = 0x80865B4C; // type:func -ArrowLight_SetupAction = 0x808674E0; // type:func -ArrowLight_Init = 0x808674EC; // type:func -ArrowLight_Destroy = 0x80867568; // type:func -ArrowLight_Charge = 0x8086758C; // type:func -func_80869E6C = 0x80867680; // type:func -ArrowLight_Hit = 0x808676D8; // type:func -ArrowLight_Fly = 0x808678A4; // type:func -ArrowLight_Update = 0x808679F8; // type:func -ArrowLight_Draw = 0x80867A4C; // type:func -BgBdanObjects_GetProperty = 0x808693F0; // type:func -BgBdanObjects_SetProperty = 0x80869444; // type:func -BgBdanObjects_Init = 0x80869498; // type:func -BgBdanObjects_Destroy = 0x8086971C; // type:func -BgBdanObjects_OctoPlatform_WaitForRutoToStartCutscene = 0x8086976C; // type:func -BgBdanObjects_OctoPlatform_RaiseToUpperPosition = 0x808698C0; // type:func -BgBdanObjects_OctoPlatform_WaitForRutoToAdvanceCutscene = 0x808699BC; // type:func -BgBdanObjects_OctoPlatform_DescendWithBigOcto = 0x80869AF8; // type:func -BgBdanObjects_OctoPlatform_PauseBeforeDescending = 0x80869C7C; // type:func -BgBdanObjects_OctoPlatform_WaitForBigOctoToStartBattle = 0x80869CE0; // type:func -BgBdanObjects_OctoPlatform_BattleInProgress = 0x80869D3C; // type:func -BgBdanObjects_SinkToFloorHeight = 0x80869E14; // type:func -BgBdanObjects_WaitForPlayerInRange = 0x80869E94; // type:func -BgBdanObjects_RaiseToUpperPosition = 0x80869F00; // type:func -BgBdanObjects_DoNothing = 0x80869F98; // type:func -BgBdanObjects_ElevatorOscillate = 0x80869FA8; // type:func -BgBdanObjects_WaitForSwitch = 0x8086A0DC; // type:func -BgBdanObjects_ChangeWaterBoxLevel = 0x8086A128; // type:func -BgBdanObjects_WaitForTimerExpired = 0x8086A1F0; // type:func -BgBdanObjects_WaitForPlayerOnTop = 0x8086A244; // type:func -BgBdanObjects_FallToLowerPos = 0x8086A2C8; // type:func -BgBdanObjects_Update = 0x8086A384; // type:func -BgBdanObjects_Draw = 0x8086A3C0; // type:func -BgBdanSwitch_InitDynaPoly = 0x8086A6C0; // type:func -BgBdanSwitch_InitCollision = 0x8086A718; // type:func -func_8086D0EC = 0x8086A76C; // type:func -BgBdanSwitch_Init = 0x8086A8D8; // type:func -BgBdanSwitch_Destroy = 0x8086AA94; // type:func -func_8086D4B4 = 0x8086AB00; // type:func -func_8086D548 = 0x8086AB94; // type:func -func_8086D5C4 = 0x8086AC10; // type:func -func_8086D5E0 = 0x8086AC30; // type:func -func_8086D67C = 0x8086ACCC; // type:func -func_8086D694 = 0x8086ACE8; // type:func -func_8086D730 = 0x8086AD88; // type:func -func_8086D754 = 0x8086ADB0; // type:func -func_8086D7FC = 0x8086AE58; // type:func -func_8086D80C = 0x8086AE6C; // type:func -func_8086D86C = 0x8086AECC; // type:func -func_8086D888 = 0x8086AEEC; // type:func -func_8086D8BC = 0x8086AF24; // type:func -func_8086D8CC = 0x8086AF38; // type:func -func_8086D944 = 0x8086AFB0; // type:func -func_8086D95C = 0x8086AFCC; // type:func -func_8086D9F8 = 0x8086B06C; // type:func -func_8086DA1C = 0x8086B094; // type:func -func_8086DAB4 = 0x8086B130; // type:func -func_8086DAC4 = 0x8086B144; // type:func -func_8086DB24 = 0x8086B1A4; // type:func -func_8086DB40 = 0x8086B1C4; // type:func -func_8086DB4C = 0x8086B1D4; // type:func -func_8086DB68 = 0x8086B1F4; // type:func -func_8086DC30 = 0x8086B2BC; // type:func -func_8086DC48 = 0x8086B2D8; // type:func -func_8086DCCC = 0x8086B35C; // type:func -func_8086DCE8 = 0x8086B37C; // type:func -func_8086DDA8 = 0x8086B43C; // type:func -func_8086DDC0 = 0x8086B458; // type:func -BgBdanSwitch_Update = 0x8086B4EC; // type:func -func_8086DF58 = 0x8086B5F0; // type:func -BgBdanSwitch_Draw = 0x8086B660; // type:func -BgBomGuard_SetupAction = 0x8086BAF0; // type:func -BgBomGuard_Init = 0x8086BAFC; // type:func -BgBomGuard_Destroy = 0x8086BB98; // type:func -func_8086E638 = 0x8086BBCC; // type:func -BgBomGuard_Update = 0x8086BC98; // type:func -BgBombwall_InitDynapoly = 0x8086BD10; // type:func -BgBombwall_RotateVec = 0x8086BD68; // type:func -BgBombwall_Init = 0x8086BDBC; // type:func -BgBombwall_DestroyCollision = 0x8086BFCC; // type:func -BgBombwall_Destroy = 0x8086C048; // type:func -func_8086EB5C = 0x8086C068; // type:func -func_8086ED50 = 0x8086C25C; // type:func -func_8086ED70 = 0x8086C280; // type:func -func_8086EDFC = 0x8086C310; // type:func -func_8086EE40 = 0x8086C354; // type:func -func_8086EE94 = 0x8086C3A8; // type:func -BgBombwall_Update = 0x8086C3D8; // type:func -BgBombwall_Draw = 0x8086C404; // type:func -BgBowlWall_Init = 0x8086C5D0; // type:func -BgBowlWall_Destroy = 0x8086C688; // type:func -BgBowlWall_SpawnBullseyes = 0x8086C6BC; // type:func -BgBowlWall_WaitForHit = 0x8086C88C; // type:func -BgBowlWall_FallDoEffects = 0x8086C8B0; // type:func -BgBowlWall_FinishFall = 0x8086CB64; // type:func -BgBowlWall_Reset = 0x8086CC44; // type:func -BgBowlWall_Update = 0x8086CCDC; // type:func -BgBowlWall_Draw = 0x8086CD10; // type:func -BgBreakwall_SetupAction = 0x8086CF50; // type:func -BgBreakwall_Init = 0x8086CF5C; // type:func -BgBreakwall_Destroy = 0x8086D108; // type:func -BgBreakwall_SpawnFragments = 0x8086D13C; // type:func -BgBreakwall_WaitForObject = 0x8086D60C; // type:func -BgBreakwall_Wait = 0x8086D714; // type:func -BgBreakwall_LavaCoverMove = 0x8086D8E4; // type:func -BgBreakwall_Update = 0x8086D938; // type:func -BgBreakwall_Draw = 0x8086D95C; // type:func -BgDdanJd_Init = 0x8086DDC0; // type:func -BgDdanJd_Destroy = 0x8086DE6C; // type:func -BgDdanJd_Idle = 0x8086DEA0; // type:func -BgDdanJd_MoveEffects = 0x8086E044; // type:func -BgDdanJd_Move = 0x8086E21C; // type:func -BgDdanJd_Update = 0x8086E320; // type:func -BgDdanJd_Draw = 0x8086E344; // type:func -BgDdanKd_SetupAction = 0x8086E410; // type:func -BgDdanKd_Init = 0x8086E41C; // type:func -BgDdanKd_Destroy = 0x8086E514; // type:func -BgDdanKd_CheckForExplosions = 0x8086E55C; // type:func -BgDdanKd_LowerStairs = 0x8086E674; // type:func -BgDdanKd_DoNothing = 0x8086EB48; // type:func -BgDdanKd_Update = 0x8086EB58; // type:func -BgDdanKd_Draw = 0x8086EB7C; // type:func -BgDodoago_SetupAction = 0x8086ED00; // type:func -BgDodoago_SpawnSparkles = 0x8086ED0C; // type:func -BgDodoago_Init = 0x8086EE2C; // type:func -BgDodoago_Destroy = 0x8086EF90; // type:func -BgDodoago_WaitExplosives = 0x8086EFFC; // type:func -BgDodoago_OpenJaw = 0x8086F2C0; // type:func -BgDodoago_DoNothing = 0x8086F584; // type:func -BgDodoago_LightOneEye = 0x8086F594; // type:func -BgDodoago_Update = 0x8086F5F8; // type:func -BgDodoago_Draw = 0x8086F750; // type:func -BgDyYoseizo_Init = 0x8086FAB0; // type:func -BgDyYoseizo_Destroy = 0x8086FBB4; // type:func -BgDyYoseizo_SpawnEffects = 0x8086FBC4; // type:func -BgDyYoseizo_Bob = 0x8086FEC0; // type:func -BgDyYoseizo_CheckMagicAcquired = 0x8086FF88; // type:func -BgDyYoseizo_ChooseType = 0x8087004C; // type:func -BgDyYoseizo_SetupSpinGrow_NoReward = 0x80870448; // type:func -BgDyYoseizo_SpinGrow_NoReward = 0x80870544; // type:func -BgDyYoseizo_CompleteSpinGrow_NoReward = 0x808706A0; // type:func -BgDyYoseizo_SetupGreetPlayer_NoReward = 0x80870750; // type:func -BgDyYoseizo_GreetPlayer_NoReward = 0x80870868; // type:func -BgDyYoseizo_SetupHealPlayer_NoReward = 0x80870944; // type:func -BgDyYoseizo_HealPlayer_NoReward = 0x80870A30; // type:func -BgDyYoseizo_SayFarewell_NoReward = 0x80870D08; // type:func -BgDyYoseizo_SetupSpinShrink = 0x80870DE4; // type:func -BgDyYoseizo_SpinShrink = 0x80870EE8; // type:func -BgDyYoseizo_Vanish = 0x80870FD8; // type:func -BgDyYoseizo_SetupSpinGrow_Reward = 0x8087107C; // type:func -BgDyYoseizo_SpinGrowSetupGive_Reward = 0x808711B0; // type:func -BgDyYoseizo_Give_Reward = 0x808714DC; // type:func -BgDyYoseizo_Update = 0x80871B2C; // type:func -BgDyYoseizo_OverrideLimbDraw = 0x80871D58; // type:func -BgDyYoseizo_Draw = 0x80871DC0; // type:func -BgDyYoseizo_SpawnEffect = 0x80871F48; // type:func -BgDyYoseizo_UpdateEffects = 0x80872058; // type:func -BgDyYoseizo_DrawEffects = 0x8087234C; // type:func -BgGanonOtyuka_Init = 0x808728A0; // type:func -BgGanonOtyuka_Destroy = 0x8087293C; // type:func -BgGanonOtyuka_WaitToFall = 0x80872970; // type:func -BgGanonOtyuka_Fall = 0x80872BC0; // type:func -BgGanonOtyuka_DoNothing = 0x80873000; // type:func -BgGanonOtyuka_Update = 0x80873010; // type:func -BgGanonOtyuka_Draw = 0x80873058; // type:func -BgGateShutter_Init = 0x80874EE0; // type:func -BgGateShutter_Destroy = 0x80874FC8; // type:func -func_8087828C = 0x80874FFC; // type:func -func_80878300 = 0x80875070; // type:func -func_808783AC = 0x80875120; // type:func -func_808783D4 = 0x80875148; // type:func -BgGateShutter_Update = 0x80875204; // type:func -BgGateShutter_Draw = 0x80875238; // type:func -BgGjyoBridge_Init = 0x80875370; // type:func -BgGjyoBridge_Destroy = 0x80875428; // type:func -func_808787A4 = 0x8087545C; // type:func -BgGjyoBridge_TriggerCutscene = 0x8087546C; // type:func -BgGjyoBridge_SpawnBridge = 0x808755C4; // type:func -BgGjyoBridge_Update = 0x80875640; // type:func -BgGjyoBridge_Draw = 0x80875664; // type:func -BgGndDarkmeiro_ToggleBlock = 0x80875860; // type:func -BgGndDarkmeiro_Init = 0x808758EC; // type:func -BgGndDarkmeiro_Destroy = 0x80875B18; // type:func -BgGndDarkmeiro_Noop = 0x80875B60; // type:func -BgGndDarkmeiro_UpdateBlockTimer = 0x80875B70; // type:func -BgGndDarkmeiro_UpdateStaticBlock = 0x80875D64; // type:func -BgGndDarkmeiro_UpdateSwitchBlock = 0x80875D74; // type:func -BgGndDarkmeiro_Update = 0x80875DD8; // type:func -BgGndDarkmeiro_DrawInvisiblePath = 0x80875DFC; // type:func -BgGndDarkmeiro_DrawSwitchBlock = 0x80875E2C; // type:func -BgGndDarkmeiro_DrawStaticBlock = 0x80875F44; // type:func -BgGndFiremeiro_Init = 0x80876020; // type:func -BgGndFiremeiro_Destroy = 0x808760D4; // type:func -BgGndFiremeiro_Sink = 0x80876114; // type:func -BgGndFiremeiro_Shake = 0x808761D0; // type:func -BgGndFiremeiro_Rise = 0x80876374; // type:func -BgGndFiremeiro_Update = 0x80876434; // type:func -BgGndFiremeiro_Draw = 0x80876458; // type:func -BgGndIceblock_Init = 0x80876570; // type:func -BgGndIceblock_Destroy = 0x8087665C; // type:func -BgGndIceblock_SetPosition = 0x80876690; // type:func -BgGndIceblock_CheckForBlock = 0x8087679C; // type:func -BgGndIceblock_NextAction = 0x808767D8; // type:func -BgGndIceblock_SetNextPosition = 0x80876824; // type:func -BgGndIceblock_Idle = 0x80876B54; // type:func -BgGndIceblock_Reset = 0x80876C10; // type:func -BgGndIceblock_Fall = 0x80876CD4; // type:func -BgGndIceblock_Hole = 0x80876D8C; // type:func -BgGndIceblock_Slide = 0x80876E28; // type:func -BgGndIceblock_Update = 0x80877158; // type:func -BgGndIceblock_Draw = 0x8087717C; // type:func -BgGndNisekabe_Init = 0x80877670; // type:func -BgGndNisekabe_Destroy = 0x808776AC; // type:func -BgGndNisekabe_Update = 0x808776BC; // type:func -BgGndNisekabe_Draw = 0x808776F0; // type:func -BgGndSoulmeiro_Init = 0x808777E0; // type:func -BgGndSoulmeiro_Destroy = 0x80877924; // type:func -func_8087AF38 = 0x80877960; // type:func -func_8087B284 = 0x80877CAC; // type:func -func_8087B350 = 0x80877D78; // type:func -BgGndSoulmeiro_Update = 0x80877DCC; // type:func -BgGndSoulmeiro_Draw = 0x80877DF8; // type:func -BgHaka_Init = 0x80878040; // type:func -BgHaka_Destroy = 0x808780BC; // type:func -func_8087B758 = 0x808780F0; // type:func -func_8087B7E8 = 0x80878180; // type:func -func_8087B938 = 0x808782D4; // type:func -func_8087BAAC = 0x8087844C; // type:func -func_8087BAE4 = 0x80878488; // type:func -BgHaka_Update = 0x80878500; // type:func -BgHaka_Draw = 0x80878524; // type:func -BgHakaGate_Init = 0x80878700; // type:func -BgHakaGate_Destroy = 0x808789D0; // type:func -BgHakaGate_DoNothing = 0x80878A2C; // type:func -BgHakaGate_StatueInactive = 0x80878A3C; // type:func -BgHakaGate_StatueIdle = 0x80878A78; // type:func -BgHakaGate_StatueTurn = 0x80878B90; // type:func -BgHakaGate_FloorClosed = 0x80878D74; // type:func -BgHakaGate_FloorOpen = 0x80878EFC; // type:func -BgHakaGate_GateWait = 0x80878F88; // type:func -BgHakaGate_GateOpen = 0x80878FD8; // type:func -BgHakaGate_SkullOfTruth = 0x80879068; // type:func -BgHakaGate_FalseSkull = 0x808790C4; // type:func -BgHakaGate_Update = 0x80879144; // type:func -BgHakaGate_DrawFlame = 0x8087918C; // type:func -BgHakaGate_Draw = 0x80879364; // type:func -BgHakaHuta_Init = 0x808797A0; // type:func -BgHakaHuta_Destroy = 0x80879860; // type:func -BgHakaHuta_SpawnDust = 0x80879894; // type:func -BgHakaHuta_PlaySfx = 0x80879A50; // type:func -BgHakaHuta_SpawnEnemies = 0x80879ADC; // type:func -BgHakaHuta_Open = 0x80879DA4; // type:func -BgHakaHuta_SlideOpen = 0x80879E58; // type:func -func_8087D720 = 0x80879F0C; // type:func -BgHakaHuta_DoNothing = 0x8087A0B0; // type:func -BgHakaHuta_Update = 0x8087A0C0; // type:func -BgHakaHuta_Draw = 0x8087A0E4; // type:func -BgHakaMegane_Init = 0x8087A240; // type:func -BgHakaMegane_Destroy = 0x8087A2F8; // type:func -func_8087DB24 = 0x8087A32C; // type:func -func_8087DBF0 = 0x8087A3FC; // type:func -BgHakaMegane_DoNothing = 0x8087A470; // type:func -BgHakaMegane_Update = 0x8087A480; // type:func -BgHakaMegane_Draw = 0x8087A4A4; // type:func -BgHakaMeganeBG_Init = 0x8087A640; // type:func -BgHakaMeganeBG_Destroy = 0x8087A7DC; // type:func -func_8087DFF8 = 0x8087A810; // type:func -func_8087E040 = 0x8087A858; // type:func -func_8087E10C = 0x8087A924; // type:func -func_8087E1E0 = 0x8087A9F8; // type:func -func_8087E258 = 0x8087AA70; // type:func -func_8087E288 = 0x8087AAA0; // type:func -func_8087E2D8 = 0x8087AAF0; // type:func -func_8087E34C = 0x8087AB64; // type:func -BgHakaMeganeBG_Update = 0x8087AB74; // type:func -BgHakaMeganeBG_Draw = 0x8087AB98; // type:func -BgHakaSgami_Init = 0x8087AD00; // type:func -BgHakaSgami_Destroy = 0x8087AFA8; // type:func -BgHakaSgami_SetupSpin = 0x8087B008; // type:func -BgHakaSgami_Spin = 0x8087B080; // type:func -BgHakaSgami_Update = 0x8087B594; // type:func -BgHakaSgami_Draw = 0x8087B5E8; // type:func -BgHakaShip_Init = 0x8087B920; // type:func -BgHakaShip_Destroy = 0x8087BA64; // type:func -BgHakaShip_ChildUpdatePosition = 0x8087BAA4; // type:func -BgHakaShip_WaitForSong = 0x8087BB00; // type:func -BgHakaShip_CutsceneStationary = 0x8087BB78; // type:func -BgHakaShip_Move = 0x8087BC14; // type:func -BgHakaShip_SetupCrash = 0x8087BDD8; // type:func -BgHakaShip_CrashShake = 0x8087BE34; // type:func -BgHakaShip_CrashFall = 0x8087BEC4; // type:func -BgHakaShip_Update = 0x8087BF84; // type:func -BgHakaShip_Draw = 0x8087BFC4; // type:func -BgHakaTrap_Init = 0x8087C370; // type:func -BgHakaTrap_Destroy = 0x8087C610; // type:func -func_8087FFC0 = 0x8087C694; // type:func -func_808801B8 = 0x8087C894; // type:func -func_808802D8 = 0x8087C9B8; // type:func -func_80880484 = 0x8087CB64; // type:func -func_808805C0 = 0x8087CCA0; // type:func -func_808806BC = 0x8087CD9C; // type:func -func_808808F4 = 0x8087CFD4; // type:func -func_808809B0 = 0x8087D094; // type:func -func_808809E4 = 0x8087D0C8; // type:func -func_80880AE8 = 0x8087D1D4; // type:func -func_80880C0C = 0x8087D2F8; // type:func -BgHakaTrap_Update = 0x8087D36C; // type:func -func_80880D68 = 0x8087D45C; // type:func -BgHakaTrap_Draw = 0x8087D4F8; // type:func -BgHakaTubo_Init = 0x8087D940; // type:func -BgHakaTubo_Destroy = 0x8087DA3C; // type:func -BgHakaTubo_Idle = 0x8087DA94; // type:func -BgHakaTubo_DropCollectible = 0x8087DD00; // type:func -BgHakaTubo_Update = 0x8087DFC4; // type:func -BgHakaTubo_DrawFlameCircle = 0x8087DFF8; // type:func -BgHakaTubo_Draw = 0x8087E1A4; // type:func -BgHakaWater_Init = 0x8087E360; // type:func -BgHakaWater_Destroy = 0x8087E3EC; // type:func -BgHakaWater_LowerWater = 0x8087E3FC; // type:func -BgHakaWater_Wait = 0x8087E544; // type:func -BgHakaWater_ChangeWaterLevel = 0x8087E600; // type:func -BgHakaWater_Update = 0x8087E708; // type:func -BgHakaWater_Draw = 0x8087E72C; // type:func -BgHakaZou_Init = 0x8087EB60; // type:func -BgHakaZou_Destroy = 0x8087EE48; // type:func -func_808828F4 = 0x8087EE98; // type:func -BgHakaZou_Wait = 0x8087F014; // type:func -func_80882BDC = 0x8087F184; // type:func -func_80882CC4 = 0x8087F26C; // type:func -func_80882E54 = 0x8087F3FC; // type:func -func_80883000 = 0x8087F5AC; // type:func -func_80883104 = 0x8087F6B0; // type:func -func_80883144 = 0x8087F6F0; // type:func -func_80883254 = 0x8087F800; // type:func -func_80883328 = 0x8087F8D8; // type:func -func_808834D8 = 0x8087FA88; // type:func -BgHakaZou_DoNothing = 0x8087FB18; // type:func -BgHakaZou_Update = 0x8087FB28; // type:func -BgHakaZou_Draw = 0x8087FB6C; // type:func -BgHeavyBlock_SetPieceRandRot = 0x8087FD50; // type:func -BgHeavyBlock_InitPiece = 0x8087FDE0; // type:func -BgHeavyBlock_SetupDynapoly = 0x8087FF5C; // type:func -BgHeavyBlock_Init = 0x8087FFD0; // type:func -BgHeavyBlock_Destroy = 0x80880214; // type:func -BgHeavyBlock_MovePiece = 0x8088025C; // type:func -BgHeavyBlock_SpawnDust = 0x80880420; // type:func -BgHeavyBlock_SpawnPieces = 0x80880784; // type:func -BgHeavyBlock_Wait = 0x8088097C; // type:func -BgHeavyBlock_LiftedUp = 0x80880AA4; // type:func -BgHeavyBlock_Fly = 0x80880C0C; // type:func -BgHeavyBlock_DoNothing = 0x80880F24; // type:func -BgHeavyBlock_Land = 0x80880F34; // type:func -BgHeavyBlock_Update = 0x808811A4; // type:func -BgHeavyBlock_Draw = 0x808811C8; // type:func -BgHeavyBlock_DrawPiece = 0x80881330; // type:func -BgHidanCurtain_Init = 0x80881640; // type:func -BgHidanCurtain_Destroy = 0x80881854; // type:func -BgHidanCurtain_WaitForSwitchOn = 0x80881880; // type:func -BgHidanCurtain_WaitForCutscene = 0x80881934; // type:func -BgHidanCurtain_WaitForClear = 0x80881960; // type:func -BgHidanCurtain_WaitForSwitchOff = 0x808819A4; // type:func -BgHidanCurtain_TurnOn = 0x808819E8; // type:func -BgHidanCurtain_TurnOff = 0x80881A5C; // type:func -BgHidanCurtain_WaitForTimer = 0x80881B4C; // type:func -BgHidanCurtain_Update = 0x80881BB0; // type:func -BgHidanCurtain_Draw = 0x80881E44; // type:func -BgHidanDalm_Init = 0x808820E0; // type:func -BgHidanDalm_Destroy = 0x808821C8; // type:func -BgHidanDalm_Wait = 0x80882210; // type:func -BgHidanDalm_Shrink = 0x80882394; // type:func -BgHidanDalm_Update = 0x80882544; // type:func -BgHidanDalm_UpdateCollider = 0x808825A4; // type:func -BgHidanDalm_Draw = 0x808826D0; // type:func -BgHidanFirewall_Init = 0x80882930; // type:func -BgHidanFirewall_Destroy = 0x808829D0; // type:func -BgHidanFirewall_CheckProximity = 0x808829FC; // type:func -BgHidanFirewall_Wait = 0x80882A6C; // type:func -BgHidanFirewall_Countdown = 0x80882AB4; // type:func -BgHidanFirewall_Erupt = 0x80882AE8; // type:func -BgHidanFirewall_Collide = 0x80882B78; // type:func -BgHidanFirewall_ColliderFollowPlayer = 0x80882BE0; // type:func -BgHidanFirewall_Update = 0x80882D44; // type:func -BgHidanFirewall_Draw = 0x80882E1C; // type:func -BgHidanFslift_Init = 0x80883090; // type:func -BgHidanFslift_SetHookshotTargetPos = 0x80883178; // type:func -BgHidanFslift_Destroy = 0x808831D8; // type:func -BgHidanFslift_SetupIdle = 0x8088320C; // type:func -BgHidanFslift_Idle = 0x80883228; // type:func -BgHidanFslift_Descend = 0x808832C8; // type:func -BgHidanFslift_Ascend = 0x80883334; // type:func -BgHidanFslift_Update = 0x808833D0; // type:func -BgHidanFslift_Draw = 0x80883478; // type:func -BgHidanFwbig_Init = 0x80883560; // type:func -BgHidanFwbig_Destroy = 0x80883700; // type:func -BgHidanFwbig_UpdatePosition = 0x8088372C; // type:func -BgHidanFwbig_WaitForSwitch = 0x808837AC; // type:func -BgHidanFwbig_WaitForCs = 0x80883810; // type:func -BgHidanFwbig_Rise = 0x8088383C; // type:func -BgHidanFwbig_Lower = 0x808838B0; // type:func -BgHidanFwbig_WaitForTimer = 0x80883990; // type:func -BgHidanFwbig_WaitForPlayer = 0x808839E0; // type:func -BgHidanFwbig_Move = 0x80883A44; // type:func -BgHidanFwbig_MoveCollider = 0x80883AE4; // type:func -BgHidanFwbig_Update = 0x80883CE4; // type:func -BgHidanFwbig_Draw = 0x80883E5C; // type:func -BgHidanHamstep_SetupAction = 0x80884240; // type:func -BgHidanHamstep_SpawnChildren = 0x80884260; // type:func -BgHidanHamstep_Init = 0x808843DC; // type:func -BgHidanHamstep_Destroy = 0x8088464C; // type:func -func_808884C8 = 0x808846A0; // type:func -func_80888638 = 0x80884810; // type:func -func_80888694 = 0x8088486C; // type:func -func_80888734 = 0x8088490C; // type:func -func_808887C4 = 0x808849A0; // type:func -func_80888860 = 0x80884A3C; // type:func -func_808889B8 = 0x80884B88; // type:func -func_80888A58 = 0x80884C28; // type:func -BgHidanHamstep_DoNothing = 0x80884DC0; // type:func -BgHidanHamstep_Update = 0x80884DD0; // type:func -BgHidanHamstep_Draw = 0x80884DF4; // type:func -BgHidanHrock_Init = 0x808850F0; // type:func -BgHidanHrock_Destroy = 0x80885420; // type:func -func_808894A4 = 0x80885468; // type:func -func_808894B0 = 0x80885478; // type:func -func_8088960C = 0x808855D4; // type:func -func_808896B8 = 0x80885680; // type:func -BgHidanHrock_Update = 0x80885760; // type:func -BgHidanHrock_Draw = 0x80885784; // type:func -BgHidanKousi_SetupAction = 0x80885920; // type:func -BgHidanKousi_Init = 0x8088592C; // type:func -BgHidanKousi_Destroy = 0x80885A24; // type:func -func_80889ACC = 0x80885A58; // type:func -func_80889B5C = 0x80885AE4; // type:func -func_80889BC0 = 0x80885B48; // type:func -func_80889C18 = 0x80885BA0; // type:func -func_80889C90 = 0x80885C18; // type:func -func_80889D28 = 0x80885CB4; // type:func -BgHidanKousi_Update = 0x80885CC4; // type:func -BgHidanKousi_Draw = 0x80885CE8; // type:func -BgHidanKowarerukabe_InitDynaPoly = 0x80885EB0; // type:func -BgHidanKowarerukabe_InitColliderSphere = 0x80885F4C; // type:func -BgHidanKowarerukabe_OffsetActorYPos = 0x80885FE0; // type:func -BgHidanKowarerukabe_Init = 0x8088600C; // type:func -BgHidanKowarerukabe_Destroy = 0x808860BC; // type:func -BgHidanKowarerukabe_SpawnDust = 0x80886104; // type:func -BgHidanKowarerukabe_FloorBreak = 0x80886228; // type:func -func_8088A67C = 0x808864F4; // type:func -BgHidanKowarerukabe_LargeWallBreak = 0x8088678C; // type:func -BgHidanKowarerukabe_Break = 0x80886A18; // type:func -BgHidanKowarerukabe_Update = 0x80886AA8; // type:func -BgHidanKowarerukabe_Draw = 0x80886B78; // type:func -BgHidanRock_Init = 0x80886D90; // type:func -BgHidanRock_Destroy = 0x80886F0C; // type:func -func_8088B24C = 0x80886F60; // type:func -func_8088B268 = 0x80886F80; // type:func -func_8088B5F4 = 0x80887310; // type:func -func_8088B634 = 0x80887350; // type:func -func_8088B69C = 0x808873BC; // type:func -func_8088B79C = 0x808874BC; // type:func -func_8088B90C = 0x8088762C; // type:func -func_8088B954 = 0x80887674; // type:func -func_8088B990 = 0x808876B0; // type:func -BgHidanRock_Update = 0x8088789C; // type:func -func_8088BC40 = 0x8088796C; // type:func -BgHidanRock_Draw = 0x80887B7C; // type:func -BgHidanRsekizou_Init = 0x80887E90; // type:func -BgHidanRsekizou_Destroy = 0x80887F94; // type:func -BgHidanRsekizou_Update = 0x80887FDC; // type:func -BgHidanRsekizou_DrawFireball = 0x808883A0; // type:func -BgHidanRsekizou_Draw = 0x808886B8; // type:func -func_8088CEC0 = 0x80888A70; // type:func -BgHidanSekizou_Init = 0x80888E2C; // type:func -BgHidanSekizou_Destroy = 0x80888FA0; // type:func -func_8088D434 = 0x80888FE8; // type:func -func_8088D720 = 0x808892D4; // type:func -func_8088D750 = 0x80889304; // type:func -BgHidanSekizou_Update = 0x80889470; // type:func -func_8088D9F4 = 0x808895AC; // type:func -func_8088DC50 = 0x808897F4; // type:func -func_8088DE08 = 0x808899AC; // type:func -BgHidanSekizou_Draw = 0x80889A8C; // type:func -BgHidanSima_Init = 0x80889EC0; // type:func -BgHidanSima_Destroy = 0x80889FC4; // type:func -func_8088E518 = 0x8088A00C; // type:func -func_8088E5D0 = 0x8088A0C8; // type:func -func_8088E6D0 = 0x8088A1CC; // type:func -func_8088E760 = 0x8088A264; // type:func -func_8088E7A8 = 0x8088A2AC; // type:func -func_8088E90C = 0x8088A410; // type:func -BgHidanSima_Update = 0x8088A570; // type:func -func_8088EB54 = 0x8088A660; // type:func -BgHidanSima_Draw = 0x8088AAD8; // type:func -BgHidanSyoku_Init = 0x8088ADC0; // type:func -BgHidanSyoku_Destroy = 0x8088AE4C; // type:func -func_8088F47C = 0x8088AE80; // type:func -func_8088F4B8 = 0x8088AEBC; // type:func -func_8088F514 = 0x8088AF1C; // type:func -func_8088F5A0 = 0x8088AFA8; // type:func -func_8088F62C = 0x8088B034; // type:func -BgHidanSyoku_Update = 0x8088B090; // type:func -BgHidanSyoku_Draw = 0x8088B138; // type:func -BgIceObjects_Init = 0x8088B220; // type:func -BgIceObjects_Destroy = 0x8088B2AC; // type:func -BgIceObjects_SetNextTarget = 0x8088B2E0; // type:func -BgIceObjects_CheckPits = 0x8088B760; // type:func -BgIceObjects_Idle = 0x8088B8E8; // type:func -BgIceObjects_Slide = 0x8088B9EC; // type:func -BgIceObjects_Reset = 0x8088BD7C; // type:func -BgIceObjects_Stuck = 0x8088BE18; // type:func -BgIceObjects_Update = 0x8088BE54; // type:func -BgIceObjects_Draw = 0x8088BE78; // type:func -BgIceShelter_InitColliders = 0x8088C160; // type:func -BgIceShelter_InitDynaPoly = 0x8088C294; // type:func -BgIceShelter_RotateY = 0x8088C2EC; // type:func -BgIceShelter_Init = 0x8088C36C; // type:func -BgIceShelter_Destroy = 0x8088C4E8; // type:func -BgIceShelter_SpawnSteamAround = 0x8088C574; // type:func -BgIceShelter_SpawnSteamAlong = 0x8088C7E8; // type:func -BgIceShelter_SetupIdle = 0x8088CA4C; // type:func -BgIceShelter_Idle = 0x8088CA68; // type:func -BgIceShelter_SetupMelt = 0x8088CBA8; // type:func -BgIceShelter_Melt = 0x8088CBC4; // type:func -BgIceShelter_Update = 0x8088CD88; // type:func -BgIceShelter_Draw = 0x8088CDAC; // type:func -func_80891AC0 = 0x8088D3A0; // type:func -BgIceShutter_Init = 0x8088D428; // type:func -BgIceShutter_Destroy = 0x8088D5A8; // type:func -func_80891CF4 = 0x8088D5DC; // type:func -func_80891D6C = 0x8088D654; // type:func -func_80891DD4 = 0x8088D6BC; // type:func -BgIceShutter_Update = 0x8088D724; // type:func -BgIceShutter_Draw = 0x8088D748; // type:func -BgIceTurara_Init = 0x8088D810; // type:func -BgIceTurara_Destroy = 0x8088D8EC; // type:func -BgIceTurara_Break = 0x8088D934; // type:func -BgIceTurara_Stalagmite = 0x8088DB14; // type:func -BgIceTurara_Wait = 0x8088DB7C; // type:func -BgIceTurara_Shiver = 0x8088DBB4; // type:func -BgIceTurara_Fall = 0x8088DD20; // type:func -BgIceTurara_Regrow = 0x8088DE78; // type:func -BgIceTurara_Update = 0x8088DEC8; // type:func -BgIceTurara_Draw = 0x8088DEEC; // type:func -BgInGate_SetupAction = 0x8088E040; // type:func -BgInGate_Init = 0x8088E04C; // type:func -BgInGate_Destroy = 0x8088E168; // type:func -func_80892890 = 0x8088E19C; // type:func -BgInGate_DoNothing = 0x8088E29C; // type:func -BgInGate_Update = 0x8088E2AC; // type:func -BgInGate_Draw = 0x8088E2D0; // type:func -BgJya1flift_InitDynapoly = 0x8088E3D0; // type:func -BgJya1flift_InitCollision = 0x8088E428; // type:func -BgJya1flift_Init = 0x8088E47C; // type:func -BgJya1flift_Destroy = 0x8088E574; // type:func -BgJya1flift_SetupWaitForSwitch = 0x8088E5CC; // type:func -BgJya1flift_WaitForSwitch = 0x8088E5EC; // type:func -BgJya1flift_SetupDoNothing = 0x8088E630; // type:func -BgJya1flift_DoNothing = 0x8088E650; // type:func -BgJya1flift_ChangeDirection = 0x8088E660; // type:func -BgJya1flift_Move = 0x8088E688; // type:func -BgJya1flift_ResetMoveDelay = 0x8088E76C; // type:func -BgJya1flift_DelayMove = 0x8088E784; // type:func -BgJya1flift_Update = 0x8088E7C4; // type:func -BgJya1flift_Draw = 0x8088E8E0; // type:func -BgJyaAmishutter_InitDynaPoly = 0x8088EA60; // type:func -BgJyaAmishutter_Init = 0x8088EAB8; // type:func -BgJyaAmishutter_Destroy = 0x8088EB00; // type:func -BgJyaAmishutter_SetupWaitForPlayer = 0x8088EB34; // type:func -BgJyaAmishutter_WaitForPlayer = 0x8088EB48; // type:func -func_80893428 = 0x8088EBA4; // type:func -func_80893438 = 0x8088EBB8; // type:func -func_808934B0 = 0x8088EC30; // type:func -func_808934C0 = 0x8088EC44; // type:func -func_808934FC = 0x8088EC80; // type:func -func_8089350C = 0x8088EC94; // type:func -BgJyaAmishutter_Update = 0x8088ECF8; // type:func -BgJyaAmishutter_Draw = 0x8088ED20; // type:func -BgJyaBigmirror_SetRoomFlag = 0x8088EDF0; // type:func -BgJyaBigmirror_HandleCobra = 0x8088EE60; // type:func -BgJyaBigmirror_SetBombiwaFlag = 0x8088EFF8; // type:func -BgJyaBigmirror_HandleMirRay = 0x8088F04C; // type:func -BgJyaBigmirror_Init = 0x8088F1F4; // type:func -BgJyaBigmirror_Destroy = 0x8088F278; // type:func -BgJyaBigmirror_Update = 0x8088F298; // type:func -BgJyaBigmirror_DrawLightBeam = 0x8088F2E8; // type:func -BgJyaBigmirror_Draw = 0x8088F474; // type:func -BgJyaBlock_Init = 0x8088F640; // type:func -BgJyaBlock_Destroy = 0x8088F6F8; // type:func -BgJyaBlock_Update = 0x8088F72C; // type:func -BgJyaBlock_Draw = 0x8088F750; // type:func -BgJyaBombchuiwa_SetupCollider = 0x8088F8B0; // type:func -BgJyaBombchuiwa_SetDrawFlags = 0x8088F904; // type:func -BgJyaBombchuiwa_Init = 0x8088F928; // type:func -BgJyaBombchuiwa_Destroy = 0x8088F9A8; // type:func -BgJyaBombchuiwa_Break = 0x8088F9D4; // type:func -BgJyaBombchuiwa_SetupWaitForExplosion = 0x8088FC60; // type:func -BgJyaBombchuiwa_WaitForExplosion = 0x8088FC98; // type:func -BgJyaBombchuiwa_CleanUpAfterExplosion = 0x8088FD7C; // type:func -func_808949B8 = 0x8088FDD4; // type:func -BgJyaBombchuiwa_SpawnLightRay = 0x8088FE60; // type:func -BgJyaBombchuiwa_Update = 0x8088FED8; // type:func -BgJyaBombchuiwa_DrawRock = 0x8088FF04; // type:func -BgJyaBombchuiwa_DrawLight = 0x8088FF8C; // type:func -BgJyaBombchuiwa_Draw = 0x808901E8; // type:func -BgJyaBombiwa_SetupDynaPoly = 0x808903F0; // type:func -BgJyaBombiwa_InitCollider = 0x80890448; // type:func -BgJyaBombiwa_Init = 0x8089049C; // type:func -BgJyaBombiwa_Destroy = 0x8089051C; // type:func -BgJyaBombiwa_Break = 0x80890564; // type:func -BgJyaBombiwa_Update = 0x808907F8; // type:func -BgJyaBombiwa_Draw = 0x80890888; // type:func -func_808958F0 = 0x808909B0; // type:func -BgJyaCobra_InitDynapoly = 0x80890A04; // type:func -BgJyaCobra_SpawnRay = 0x80890A5C; // type:func -func_80895A70 = 0x80890AC4; // type:func -func_80895BEC = 0x80890C44; // type:func -func_80895C74 = 0x80890CC8; // type:func -BgJyaCobra_UpdateShadowFromSide = 0x80890F48; // type:func -BgJyaCobra_UpdateShadowFromTop = 0x80891570; // type:func -BgJyaCobra_Init = 0x8089182C; // type:func -BgJyaCobra_Destroy = 0x80891918; // type:func -func_80896918 = 0x8089194C; // type:func -func_80896950 = 0x80891988; // type:func -func_808969F8 = 0x80891A30; // type:func -func_80896ABC = 0x80891AF8; // type:func -BgJyaCobra_Update = 0x80891C8C; // type:func -func_80896CB4 = 0x80891D00; // type:func -func_80896D78 = 0x80891D88; // type:func -BgJyaCobra_DrawShadow = 0x80891EB4; // type:func -BgJyaCobra_Draw = 0x80892138; // type:func -BgJyaGoroiwa_UpdateCollider = 0x808926F0; // type:func -BgJyaGoroiwa_InitCollider = 0x80892748; // type:func -BgJyaGoroiwa_UpdateRotation = 0x808927B0; // type:func -BgJyaGoroiwa_Init = 0x808927F0; // type:func -BgJyaGoroiwa_Destroy = 0x80892884; // type:func -BgJyaGoroiwa_SetupMove = 0x808928B0; // type:func -BgJyaGoroiwa_Move = 0x808928E0; // type:func -BgJyaGoroiwa_SetupWait = 0x80892B74; // type:func -BgJyaGoroiwa_Wait = 0x80892B8C; // type:func -BgJyaGoroiwa_Update = 0x80892BDC; // type:func -BgJyaGoroiwa_Draw = 0x80892CC8; // type:func -BgJyaHaheniron_ColliderInit = 0x80892E70; // type:func -BgJyaHaheniron_SpawnFragments = 0x80892EC4; // type:func -BgJyaHaheniron_Init = 0x808930F0; // type:func -BgJyaHaheniron_Destroy = 0x808931BC; // type:func -BgJyaHaheniron_SetupChairCrumble = 0x808931F4; // type:func -BgJyaHaheniron_ChairCrumble = 0x80893208; // type:func -BgJyaHaheniron_SetupPillarCrumble = 0x80893344; // type:func -BgJyaHaheniron_PillarCrumble = 0x80893358; // type:func -BgJyaHaheniron_SetupRubbleCollide = 0x808933D8; // type:func -BgJyaHaheniron_RubbleCollide = 0x808933EC; // type:func -BgJyaHaheniron_Update = 0x80893450; // type:func -BgJyaHaheniron_Draw = 0x8089347C; // type:func -BgJyaIronobj_InitCylinder = 0x80893660; // type:func -BgJyaIronobj_SpawnPillarParticles = 0x808936E0; // type:func -BgJyaIronobj_SpawnThroneParticles = 0x80893B5C; // type:func -BgJyaIronobj_Init = 0x80893F88; // type:func -BgJyaIronobj_Destroy = 0x8089401C; // type:func -func_808992D8 = 0x80894064; // type:func -func_808992E8 = 0x80894078; // type:func -BgJyaIronobj_Update = 0x808941B8; // type:func -BgJyaIronobj_Draw = 0x808941DC; // type:func -BgJyaKanaami_InitDynaPoly = 0x80894410; // type:func -BgJyaKanaami_Init = 0x80894468; // type:func -BgJyaKanaami_Destroy = 0x808944E8; // type:func -func_80899880 = 0x8089451C; // type:func -func_80899894 = 0x80894534; // type:func -func_8089993C = 0x808945DC; // type:func -func_80899950 = 0x808945F4; // type:func -func_80899A08 = 0x808946AC; // type:func -BgJyaKanaami_Update = 0x808946C0; // type:func -BgJyaKanaami_Draw = 0x808946F4; // type:func -BgJyaLift_InitDynapoly = 0x808947C0; // type:func -BgJyaLift_Init = 0x80894818; // type:func -BgJyaLift_Destroy = 0x808948D4; // type:func -BgJyaLift_SetInitPosY = 0x80894918; // type:func -BgJyaLift_DelayMove = 0x8089493C; // type:func -BgJyaLift_SetupMove = 0x808949C0; // type:func -BgJyaLift_Move = 0x808949D4; // type:func -BgJyaLift_SetFinalPosY = 0x80894AF8; // type:func -BgJyaLift_Update = 0x80894B10; // type:func -BgJyaLift_Draw = 0x80894C00; // type:func -BgJyaMegami_InitDynaPoly = 0x80894D10; // type:func -BgJyaMegami_InitCollider = 0x80894D68; // type:func -BgJyaMegami_SpawnEffect = 0x80894DBC; // type:func -BgJyaMegami_SetupSpawnEffect = 0x80895000; // type:func -BgJyaMegami_Init = 0x808950FC; // type:func -BgJyaMegami_Destroy = 0x80895190; // type:func -BgJyaMegami_SetupDetectLight = 0x808951D8; // type:func -BgJyaMegami_DetectLight = 0x808951F4; // type:func -BgJyaMegami_SetupExplode = 0x80895380; // type:func -BgJyaMegami_Explode = 0x80895418; // type:func -BgJyaMegami_Update = 0x808957A0; // type:func -BgJyaMegami_DrawFace = 0x808957C4; // type:func -BgJyaMegami_DrawExplode = 0x80895908; // type:func -BgJyaMegami_Draw = 0x80895AD4; // type:func -BgJyaZurerukabe_InitDynaPoly = 0x80895F00; // type:func -func_8089B4C8 = 0x80895F58; // type:func -BgJyaZurerukabe_Init = 0x808960F4; // type:func -BgJyaZurerukabe_Destroy = 0x808961B4; // type:func -func_8089B7B4 = 0x80896200; // type:func -func_8089B7C4 = 0x80896214; // type:func -func_8089B80C = 0x80896260; // type:func -func_8089B870 = 0x808962C8; // type:func -BgJyaZurerukabe_Update = 0x80896390; // type:func -BgJyaZurerukabe_Draw = 0x808963E8; // type:func -BgMenkuriEye_Init = 0x808965B0; // type:func -BgMenkuriEye_Destroy = 0x8089668C; // type:func -BgMenkuriEye_Update = 0x808966B8; // type:func -BgMenkuriEye_Draw = 0x80896828; // type:func -BgMenkuriKaiten_Init = 0x80896A50; // type:func -BgMenkuriKaiten_Destroy = 0x80896AB8; // type:func -BgMenkuriKaiten_Update = 0x80896AEC; // type:func -BgMenkuriKaiten_Draw = 0x80896B4C; // type:func -BgMenkuriNisekabe_Init = 0x80896BE0; // type:func -BgMenkuriNisekabe_Destroy = 0x80896C08; // type:func -BgMenkuriNisekabe_Update = 0x80896C18; // type:func -BgMenkuriNisekabe_Draw = 0x80896C4C; // type:func -BgMizuBwall_RotateVec3f = 0x80896D30; // type:func -BgMizuBwall_Init = 0x80896D84; // type:func -BgMizuBwall_Destroy = 0x80897600; // type:func -BgMizuBwall_SetAlpha = 0x80897648; // type:func -BgMizuBwall_SpawnDebris = 0x808977CC; // type:func -BgMizuBwall_Idle = 0x80897AA0; // type:func -BgMizuBwall_Break = 0x80897BA0; // type:func -BgMizuBwall_DoNothing = 0x80897BCC; // type:func -BgMizuBwall_Update = 0x80897BDC; // type:func -BgMizuBwall_Draw = 0x80897C00; // type:func -BgMizuMovebg_GetDragonStatueBossRoomOffsetIndex = 0x80898200; // type:func -BgMizuMovebg_Init = 0x8089826C; // type:func -BgMizuMovebg_Destroy = 0x80898634; // type:func -BgMizuMovebg_SetPosFromPath = 0x808986E8; // type:func -BgMizuMovebg_SetScrollAlphas = 0x8089877C; // type:func -BgMizuMovebg_UpdateMain = 0x80898900; // type:func -BgMizuMovebg_UpdateHookshotPlatform = 0x80898C3C; // type:func -BgMizuMovebg_Update = 0x80898DF8; // type:func -BgMizuMovebg_Draw = 0x80898E1C; // type:func -BgMizuShutter_Init = 0x80899390; // type:func -BgMizuShutter_Destroy = 0x808995F0; // type:func -BgMizuShutter_WaitForSwitch = 0x80899624; // type:func -BgMizuShutter_WaitForCutscene = 0x808996B8; // type:func -BgMizuShutter_Move = 0x80899704; // type:func -BgMizuShutter_WaitForTimer = 0x808998F0; // type:func -BgMizuShutter_Update = 0x80899970; // type:func -BgMizuShutter_Draw = 0x80899994; // type:func -BgMizuUzu_Init = 0x80899B90; // type:func -BgMizuUzu_Destroy = 0x80899C0C; // type:func -func_8089F788 = 0x80899C40; // type:func -BgMizuUzu_Update = 0x80899CB8; // type:func -BgMizuUzu_Draw = 0x80899CDC; // type:func -BgMizuWater_GetWaterLevelActionIndex = 0x80899D60; // type:func -BgMizuWater_SetWaterBoxesHeight = 0x80899E00; // type:func -BgMizuWater_Init = 0x80899E6C; // type:func -BgMizuWater_Destroy = 0x8089A0C8; // type:func -BgMizuWater_WaitForAction = 0x8089A0D8; // type:func -BgMizuWater_ChangeWaterLevel = 0x8089A2A4; // type:func -BgMizuWater_Update = 0x8089A5B4; // type:func -BgMizuWater_Draw = 0x8089A70C; // type:func -BgMjin_SetupAction = 0x8089AA30; // type:func -BgMjin_Init = 0x8089AA3C; // type:func -BgMjin_Destroy = 0x8089AADC; // type:func -func_808A0850 = 0x8089AB10; // type:func -BgMjin_DoNothing = 0x8089ABE4; // type:func -BgMjin_Update = 0x8089ABF4; // type:func -BgMjin_Draw = 0x8089AC18; // type:func -BgMoriBigst_SetupAction = 0x8089AE20; // type:func -BgMoriBigst_InitDynapoly = 0x8089AE2C; // type:func -BgMoriBigst_Init = 0x8089AE84; // type:func -BgMoriBigst_Destroy = 0x8089AF5C; // type:func -BgMoriBigst_SetupWaitForMoriTex = 0x8089AF90; // type:func -BgMoriBigst_WaitForMoriTex = 0x8089AFB8; // type:func -BgMoriBigst_SetupNoop = 0x8089B084; // type:func -BgMoriBigst_SetupStalfosFight = 0x8089B0A8; // type:func -BgMoriBigst_StalfosFight = 0x8089B15C; // type:func -BgMoriBigst_SetupFall = 0x8089B1D4; // type:func -BgMoriBigst_Fall = 0x8089B1FC; // type:func -BgMoriBigst_SetupLanding = 0x8089B288; // type:func -BgMoriBigst_Landing = 0x8089B31C; // type:func -BgMoriBigst_SetupStalfosPairFight = 0x8089B348; // type:func -BgMoriBigst_StalfosPairFight = 0x8089B460; // type:func -BgMoriBigst_SetupDone = 0x8089B4C0; // type:func -BgMoriBigst_Update = 0x8089B4E4; // type:func -BgMoriBigst_Draw = 0x8089B558; // type:func -func_808A1800 = 0x8089B750; // type:func -func_808A18FC = 0x8089B848; // type:func -BgMoriElevator_Init = 0x8089B8D0; // type:func -BgMoriElevator_Destroy = 0x8089B9B4; // type:func -BgMoriElevator_IsPlayerRiding = 0x8089B9F4; // type:func -BgMoriElevator_SetupWaitAfterInit = 0x8089BA54; // type:func -BgMoriElevator_WaitAfterInit = 0x8089BA68; // type:func -func_808A1C30 = 0x8089BB0C; // type:func -BgMoriElevator_MoveIntoGround = 0x8089BB20; // type:func -func_808A1CF4 = 0x8089BBD4; // type:func -BgMoriElevator_MoveAboveGround = 0x8089BC30; // type:func -BgMoriElevator_SetupSetPosition = 0x8089BCE4; // type:func -BgMoriElevator_SetPosition = 0x8089BCF8; // type:func -BgMoriElevator_StopMovement = 0x8089BEC0; // type:func -func_808A2008 = 0x8089BEDC; // type:func -BgMoriElevator_Update = 0x8089BF90; // type:func -BgMoriElevator_Draw = 0x8089BFE8; // type:func -BgMoriHashigo_InitDynapoly = 0x8089C240; // type:func -BgMoriHashigo_InitCollider = 0x8089C298; // type:func -BgMoriHashigo_SpawnLadder = 0x8089C344; // type:func -BgMoriHashigo_InitClasp = 0x8089C3FC; // type:func -BgMoriHashigo_InitLadder = 0x8089C488; // type:func -BgMoriHashigo_Init = 0x8089C4CC; // type:func -BgMoriHashigo_Destroy = 0x8089C590; // type:func -BgMoriHashigo_SetupWaitForMoriTex = 0x8089C5E8; // type:func -BgMoriHashigo_WaitForMoriTex = 0x8089C5FC; // type:func -BgMoriHashigo_SetupClasp = 0x8089C67C; // type:func -BgMoriHashigo_Clasp = 0x8089C690; // type:func -BgMoriHashigo_SetupLadderWait = 0x8089C6F4; // type:func -BgMoriHashigo_LadderWait = 0x8089C708; // type:func -BgMoriHashigo_SetupLadderFall = 0x8089C73C; // type:func -BgMoriHashigo_LadderFall = 0x8089C778; // type:func -BgMoriHashigo_SetupLadderRest = 0x8089C858; // type:func -BgMoriHashigo_Update = 0x8089C87C; // type:func -BgMoriHashigo_Draw = 0x8089C8B8; // type:func -BgMoriHashira4_SetupAction = 0x8089CB00; // type:func -BgMoriHashira4_InitDynaPoly = 0x8089CB0C; // type:func -BgMoriHashira4_Init = 0x8089CB64; // type:func -BgMoriHashira4_Destroy = 0x8089CC78; // type:func -BgMoriHashira4_SetupWaitForMoriTex = 0x8089CCAC; // type:func -BgMoriHashira4_WaitForMoriTex = 0x8089CCD0; // type:func -BgMoriHashira4_SetupPillarsRotate = 0x8089CD4C; // type:func -BgMoriHashira4_PillarsRotate = 0x8089CD70; // type:func -BgMoriHashira4_GateWait = 0x8089CDA8; // type:func -BgMoriHashira4_GateOpen = 0x8089CE54; // type:func -BgMoriHashira4_Update = 0x8089CEAC; // type:func -BgMoriHashira4_Draw = 0x8089CED8; // type:func -BgMoriHineri_Init = 0x8089D090; // type:func -BgMoriHineri_Destroy = 0x8089D290; // type:func -func_808A39FC = 0x8089D2C4; // type:func -BgMoriHineri_DoNothing = 0x8089D4BC; // type:func -BgMoriHineri_SpawnBossKeyChest = 0x8089D4CC; // type:func -func_808A3C8C = 0x8089D55C; // type:func -func_808A3D58 = 0x8089D628; // type:func -func_808A3E54 = 0x8089D724; // type:func -BgMoriHineri_Update = 0x8089D804; // type:func -BgMoriHineri_DrawHallAndRoom = 0x8089D828; // type:func -BgMoriIdomizu_SetupAction = 0x8089DDE0; // type:func -BgMoriIdomizu_SetWaterLevel = 0x8089DDEC; // type:func -BgMoriIdomizu_Init = 0x8089DE14; // type:func -BgMoriIdomizu_Destroy = 0x8089DF38; // type:func -BgMoriIdomizu_SetupWaitForMoriTex = 0x8089DF58; // type:func -BgMoriIdomizu_WaitForMoriTex = 0x8089DF7C; // type:func -BgMoriIdomizu_SetupMain = 0x8089DFD4; // type:func -BgMoriIdomizu_Main = 0x8089DFF8; // type:func -BgMoriIdomizu_Update = 0x8089E1BC; // type:func -BgMoriIdomizu_Draw = 0x8089E1E8; // type:func -BgMoriKaitenkabe_CrossProduct = 0x8089E420; // type:func -BgMoriKaitenkabe_Init = 0x8089E494; // type:func -BgMoriKaitenkabe_Destroy = 0x8089E548; // type:func -BgMoriKaitenkabe_WaitForMoriTex = 0x8089E57C; // type:func -BgMoriKaitenkabe_SetupWait = 0x8089E5D4; // type:func -BgMoriKaitenkabe_Wait = 0x8089E5EC; // type:func -BgMoriKaitenkabe_SetupRotate = 0x8089E74C; // type:func -BgMoriKaitenkabe_Rotate = 0x8089E76C; // type:func -BgMoriKaitenkabe_Update = 0x8089E8D8; // type:func -BgMoriKaitenkabe_Draw = 0x8089E8FC; // type:func -BgMoriRakkatenjo_Init = 0x8089EA90; // type:func -BgMoriRakkatenjo_Destroy = 0x8089EB48; // type:func -BgMoriRakkatenjo_IsLinkUnder = 0x8089EB7C; // type:func -BgMoriRakkatenjo_IsLinkClose = 0x8089EC2C; // type:func -BgMoriRakkatenjo_SetupWaitForMoriTex = 0x8089ECDC; // type:func -BgMoriRakkatenjo_WaitForMoriTex = 0x8089ECF0; // type:func -BgMoriRakkatenjo_SetupWait = 0x8089ED48; // type:func -BgMoriRakkatenjo_Wait = 0x8089ED84; // type:func -BgMoriRakkatenjo_SetupFall = 0x8089EE54; // type:func -BgMoriRakkatenjo_Fall = 0x8089EE74; // type:func -BgMoriRakkatenjo_SetupRest = 0x8089EFEC; // type:func -BgMoriRakkatenjo_Rest = 0x8089F014; // type:func -BgMoriRakkatenjo_SetupRise = 0x8089F044; // type:func -BgMoriRakkatenjo_Rise = 0x8089F064; // type:func -BgMoriRakkatenjo_Update = 0x8089F0E4; // type:func -BgMoriRakkatenjo_Draw = 0x8089F1BC; // type:func -BgPoEvent_InitPaintings = 0x8089F410; // type:func -BgPoEvent_InitBlocks = 0x8089F78C; // type:func -BgPoEvent_Init = 0x8089F93C; // type:func -BgPoEvent_Destroy = 0x8089FA4C; // type:func -BgPoEvent_BlockWait = 0x8089FAD0; // type:func -BgPoEvent_BlockShake = 0x8089FBDC; // type:func -BgPoEvent_CheckBlock = 0x8089FC94; // type:func -BgPoEvent_BlockFall = 0x8089FDCC; // type:func -BgPoEvent_BlockIdle = 0x8089FED0; // type:func -BgPoEvent_BlockPush = 0x808A0184; // type:func -BgPoEvent_BlockReset = 0x808A0344; // type:func -BgPoEvent_BlockSolved = 0x808A0444; // type:func -BgPoEvent_AmyWait = 0x808A04BC; // type:func -BgPoEvent_AmyPuzzle = 0x808A0538; // type:func -BgPoEvent_NextPainting = 0x808A0654; // type:func -BgPoEvent_PaintingEmpty = 0x808A0710; // type:func -BgPoEvent_PaintingAppear = 0x808A0740; // type:func -BgPoEvent_PaintingVanish = 0x808A0778; // type:func -BgPoEvent_PaintingPresent = 0x808A07C8; // type:func -BgPoEvent_PaintingBurn = 0x808A0A24; // type:func -BgPoEvent_Update = 0x808A0BD0; // type:func -BgPoEvent_Draw = 0x808A0C40; // type:func -BgPoSyokudai_Init = 0x808A1250; // type:func -BgPoSyokudai_Destroy = 0x808A14F0; // type:func -BgPoSyokudai_Update = 0x808A1560; // type:func -BgPoSyokudai_Draw = 0x808A15E0; // type:func -BgPushbox_SetupAction = 0x808A1BC0; // type:func -BgPushbox_Init = 0x808A1BCC; // type:func -BgPushbox_Destroy = 0x808A1C64; // type:func -BgPushbox_UpdateImpl = 0x808A1C98; // type:func -BgPushbox_Update = 0x808A1D74; // type:func -BgPushbox_Draw = 0x808A1DA4; // type:func -BgRelayObjects_Init = 0x808A1EC0; // type:func -BgRelayObjects_Destroy = 0x808A2100; // type:func -func_808A90F4 = 0x808A216C; // type:func -func_808A91AC = 0x808A2228; // type:func -func_808A9234 = 0x808A22B0; // type:func -BgRelayObjects_DoNothing = 0x808A239C; // type:func -func_808A932C = 0x808A23AC; // type:func -func_808A939C = 0x808A241C; // type:func -BgRelayObjects_Update = 0x808A24F0; // type:func -BgRelayObjects_Draw = 0x808A2514; // type:func -BgSpot00Break_Init = 0x808A2670; // type:func -BgSpot00Break_Destroy = 0x808A271C; // type:func -BgSpot00Break_Update = 0x808A2750; // type:func -BgSpot00Break_Draw = 0x808A2760; // type:func -BgSpot00Hanebasi_Init = 0x808A2810; // type:func -BgSpot00Hanebasi_Destroy = 0x808A2C20; // type:func -BgSpot00Hanebasi_DrawbridgeWait = 0x808A2C7C; // type:func -BgSpot00Hanebasi_DoNothing = 0x808A2DAC; // type:func -BgSpot00Hanebasi_DrawbridgeRiseAndFall = 0x808A2DBC; // type:func -BgSpot00Hanebasi_SetTorchLightInfo = 0x808A2EF0; // type:func -BgSpot00Hanebasi_Update = 0x808A3048; // type:func -BgSpot00Hanebasi_DrawTorches = 0x808A3358; // type:func -BgSpot00Hanebasi_Draw = 0x808A35F8; // type:func -BgSpot01Fusya_SetupAction = 0x808A3920; // type:func -BgSpot01Fusya_Init = 0x808A392C; // type:func -BgSpot01Fusya_Destroy = 0x808A39A8; // type:func -func_808AAA50 = 0x808A39B8; // type:func -BgSpot01Fusya_Update = 0x808A3A78; // type:func -BgSpot01Fusya_Draw = 0x808A3A9C; // type:func -BgSpot01Idohashira_PlayBreakSfx1 = 0x808A3BC0; // type:func -BgSpot01Idohashira_PlayBreakSfx2 = 0x808A3BE8; // type:func -func_808AAD3C = 0x808A3C20; // type:func -func_808AAE6C = 0x808A3D58; // type:func -func_808AAF34 = 0x808A3E24; // type:func -BgSpot01Idohashira_Destroy = 0x808A3FE8; // type:func -BgSpot01Idohashira_NotInCsMode = 0x808A401C; // type:func -BgSpot01Idohashira_GetCue = 0x808A403C; // type:func -func_808AB18C = 0x808A4088; // type:func -func_808AB1DC = 0x808A40DC; // type:func -func_808AB29C = 0x808A4180; // type:func -func_808AB3E8 = 0x808A42CC; // type:func -func_808AB3F8 = 0x808A42E0; // type:func -func_808AB414 = 0x808A4300; // type:func -func_808AB444 = 0x808A432C; // type:func -func_808AB504 = 0x808A43D8; // type:func -func_808AB510 = 0x808A43E8; // type:func -func_808AB530 = 0x808A4408; // type:func -func_808AB570 = 0x808A444C; // type:func -BgSpot01Idohashira_Update = 0x808A446C; // type:func -BgSpot01Idohashira_Init = 0x808A44B4; // type:func -func_808AB700 = 0x808A45CC; // type:func -BgSpot01Idohashira_Draw = 0x808A465C; // type:func -BgSpot01Idomizu_Init = 0x808A47C0; // type:func -BgSpot01Idomizu_Destroy = 0x808A4858; // type:func -func_808ABB84 = 0x808A4868; // type:func -BgSpot01Idomizu_Update = 0x808A491C; // type:func -BgSpot01Idomizu_Draw = 0x808A4940; // type:func -BgSpot01Idosoko_SetupAction = 0x808A4AE0; // type:func -BgSpot01Idosoko_Init = 0x808A4AEC; // type:func -BgSpot01Idosoko_Destroy = 0x808A4B8C; // type:func -func_808ABF54 = 0x808A4BC0; // type:func -BgSpot01Idosoko_Update = 0x808A4BD0; // type:func -BgSpot01Idosoko_Draw = 0x808A4BF4; // type:func -BgSpot01Objects2_Init = 0x808A4CF0; // type:func -BgSpot01Objects2_Destroy = 0x808A4DCC; // type:func -func_808AC22C = 0x808A4DDC; // type:func -func_808AC2BC = 0x808A4E70; // type:func -func_808AC474 = 0x808A5020; // type:func -BgSpot01Objects2_Update = 0x808A5030; // type:func -func_808AC4A4 = 0x808A5054; // type:func -BgSpot02Objects_Init = 0x808A51B0; // type:func -BgSpot02Objects_Destroy = 0x808A5420; // type:func -func_808AC8FC = 0x808A5454; // type:func -func_808AC908 = 0x808A5464; // type:func -func_808ACA08 = 0x808A5564; // type:func -func_808ACAFC = 0x808A565C; // type:func -func_808ACB58 = 0x808A56B8; // type:func -BgSpot02Objects_Update = 0x808A5738; // type:func -BgSpot02Objects_Draw = 0x808A575C; // type:func -func_808ACC34 = 0x808A5798; // type:func -func_808ACCB8 = 0x808A581C; // type:func -func_808AD3D4 = 0x808A5F08; // type:func -func_808AD450 = 0x808A5F84; // type:func -BgSpot03Taki_ApplyOpeningAlpha = 0x808A6510; // type:func -BgSpot03Taki_Init = 0x808A684C; // type:func -BgSpot03Taki_Destroy = 0x808A68FC; // type:func -func_808ADEF0 = 0x808A6930; // type:func -BgSpot03Taki_Update = 0x808A6B04; // type:func -BgSpot03Taki_Draw = 0x808A6B28; // type:func -BgSpot05Soko_Init = 0x808A6E30; // type:func -BgSpot05Soko_Destroy = 0x808A6F3C; // type:func -func_808AE5A8 = 0x808A6F70; // type:func -func_808AE5B4 = 0x808A6F80; // type:func -func_808AE630 = 0x808A6FFC; // type:func -BgSpot05Soko_Update = 0x808A7064; // type:func -BgSpot05Soko_Draw = 0x808A7088; // type:func -BgSpot06Objects_Init = 0x808A7150; // type:func -BgSpot06Objects_Destroy = 0x808A751C; // type:func -BgSpot06Objects_GateSpawnBubbles = 0x808A7584; // type:func -BgSpot06Objects_GateWaitForSwitch = 0x808A767C; // type:func -BgSpot06Objects_GateWaitToOpen = 0x808A7710; // type:func -BgSpot06Objects_GateOpen = 0x808A7744; // type:func -BgSpot06Objects_DoNothing = 0x808A77D0; // type:func -BgSpot06Objects_LockSpawnWaterRipples = 0x808A77E0; // type:func -BgSpot06Objects_LockSpawnBubbles = 0x808A7844; // type:func -BgSpot06Objects_LockWait = 0x808A78D8; // type:func -BgSpot06Objects_LockPullOutward = 0x808A7AFC; // type:func -BgSpot06Objects_LockSwimToSurface = 0x808A7BB4; // type:func -BgSpot06Objects_LockFloat = 0x808A7E2C; // type:func -BgSpot06Objects_Update = 0x808A7EAC; // type:func -BgSpot06Objects_DrawLakeHyliaWater = 0x808A7F0C; // type:func -BgSpot06Objects_Draw = 0x808A80F4; // type:func -BgSpot06Objects_WaterPlaneCutsceneWait = 0x808A81B8; // type:func -BgSpot06Objects_WaterPlaneCutsceneRise = 0x808A81E4; // type:func -BgSpot07Taki_Init = 0x808A8550; // type:func -BgSpot07Taki_Destroy = 0x808A85FC; // type:func -BgSpot07Taki_DoNothing = 0x808A8630; // type:func -BgSpot07Taki_Update = 0x808A8640; // type:func -BgSpot07Taki_Draw = 0x808A8664; // type:func -func_808B02D0 = 0x808A8B40; // type:func -func_808B0324 = 0x808A8B94; // type:func -BgSpot08Bakudankabe_Init = 0x808A8E8C; // type:func -BgSpot08Bakudankabe_Destroy = 0x808A8F2C; // type:func -BgSpot08Bakudankabe_Update = 0x808A8F74; // type:func -BgSpot08Bakudankabe_Draw = 0x808A9028; // type:func -BgSpot08Iceblock_SetupAction = 0x808A91E0; // type:func -BgSpot08Iceblock_InitDynaPoly = 0x808A91EC; // type:func -BgSpot08Iceblock_CheckParams = 0x808A9244; // type:func -BgSpot08Iceblock_Bobbing = 0x808A92A4; // type:func -BgSpot08Iceblock_SinkUnderPlayer = 0x808A9300; // type:func -BgSpot08Iceblock_SetWaterline = 0x808A93B0; // type:func -BgSpot08Iceblock_MultVectorScalar = 0x808A93D0; // type:func -BgSpot08Iceblock_CrossProduct = 0x808A9404; // type:func -BgSpot08Iceblock_NormalizeVector = 0x808A9478; // type:func -BgSpot08Iceblock_Roll = 0x808A9514; // type:func -BgSpot08Iceblock_SpawnTwinFloe = 0x808A9888; // type:func -BgSpot08Iceblock_Init = 0x808A9988; // type:func -BgSpot08Iceblock_Destroy = 0x808A9B7C; // type:func -BgSpot08Iceblock_SetupFloatNonrotating = 0x808A9BB0; // type:func -BgSpot08Iceblock_FloatNonrotating = 0x808A9BD4; // type:func -BgSpot08Iceblock_SetupFloatRotating = 0x808A9C28; // type:func -BgSpot08Iceblock_FloatRotating = 0x808A9C4C; // type:func -BgSpot08Iceblock_SetupFloatOrbitingTwins = 0x808A9CAC; // type:func -BgSpot08Iceblock_FloatOrbitingTwins = 0x808A9CD0; // type:func -BgSpot08Iceblock_SetupNoAction = 0x808A9DA8; // type:func -BgSpot08Iceblock_Update = 0x808A9DC8; // type:func -BgSpot08Iceblock_Draw = 0x808A9E64; // type:func -func_808B1AE0 = 0x808AA220; // type:func -func_808B1BA0 = 0x808AA2E0; // type:func -func_808B1BEC = 0x808AA32C; // type:func -func_808B1C70 = 0x808AA3B8; // type:func -func_808B1CEC = 0x808AA434; // type:func -func_808B1D18 = 0x808AA460; // type:func -func_808B1D44 = 0x808AA48C; // type:func -BgSpot09Obj_Init = 0x808AA4CC; // type:func -BgSpot09Obj_Destroy = 0x808AA534; // type:func -BgSpot09Obj_Update = 0x808AA574; // type:func -BgSpot09Obj_Draw = 0x808AA584; // type:func -func_808B2180 = 0x808AA740; // type:func -func_808B2218 = 0x808AA7D4; // type:func -BgSpot11Bakudankabe_Init = 0x808AAAEC; // type:func -BgSpot11Bakudankabe_Destroy = 0x808AAB88; // type:func -BgSpot11Bakudankabe_Update = 0x808AABD0; // type:func -BgSpot11Bakudankabe_Draw = 0x808AAC6C; // type:func -func_808B27F0 = 0x808AAD80; // type:func -func_808B280C = 0x808AADA0; // type:func -BgSpot11Oasis_Init = 0x808AAEB4; // type:func -func_808B2970 = 0x808AAF08; // type:func -func_808B2980 = 0x808AAF1C; // type:func -func_808B29E0 = 0x808AAF7C; // type:func -func_808B29F0 = 0x808AAF90; // type:func -func_808B2AA8 = 0x808AB048; // type:func -func_808B2AB8 = 0x808AB05C; // type:func -BgSpot11Oasis_Update = 0x808AB06C; // type:func -BgSpot11Oasis_Draw = 0x808AB260; // type:func -BgSpot12Gate_InitDynaPoly = 0x808AB4B0; // type:func -BgSpot12Gate_Init = 0x808AB508; // type:func -BgSpot12Gate_Destroy = 0x808AB588; // type:func -func_808B30C0 = 0x808AB5BC; // type:func -func_808B30D8 = 0x808AB5D8; // type:func -func_808B3134 = 0x808AB634; // type:func -func_808B314C = 0x808AB650; // type:func -func_808B317C = 0x808AB680; // type:func -func_808B318C = 0x808AB694; // type:func -func_808B3274 = 0x808AB77C; // type:func -func_808B3298 = 0x808AB7A4; // type:func -BgSpot12Gate_Update = 0x808AB7B4; // type:func -BgSpot12Gate_Draw = 0x808AB7E8; // type:func -func_808B3420 = 0x808AB8C0; // type:func -BgSpot12Saku_Init = 0x808AB918; // type:func -BgSpot12Saku_Destroy = 0x808AB998; // type:func -func_808B3550 = 0x808AB9CC; // type:func -func_808B357C = 0x808AB9FC; // type:func -func_808B35E4 = 0x808ABA64; // type:func -func_808B3604 = 0x808ABA84; // type:func -func_808B3714 = 0x808ABB94; // type:func -func_808B37AC = 0x808ABC28; // type:func -BgSpot12Saku_Update = 0x808ABC38; // type:func -BgSpot12Saku_Draw = 0x808ABC6C; // type:func -func_808B3960 = 0x808ABD80; // type:func -BgSpot15Rrbox_RotatePoint = 0x808ABDD8; // type:func -func_808B3A34 = 0x808ABE2C; // type:func -func_808B3A40 = 0x808ABE3C; // type:func -func_808B3AAC = 0x808ABEAC; // type:func -BgSpot15Rrbox_Init = 0x808ABF94; // type:func -BgSpot15Rrbox_Destroy = 0x808AC064; // type:func -BgSpot15Rrbox_TrySnapToCheckedPoint = 0x808AC0A0; // type:func -BgSpot15Rrbox_GetFloorHeight = 0x808AC1E0; // type:func -BgSpot15Rrbox_TrySnapToFloor = 0x808AC360; // type:func -func_808B4010 = 0x808AC420; // type:func -func_808B4084 = 0x808AC494; // type:func -func_808B40AC = 0x808AC4C0; // type:func -func_808B4178 = 0x808AC58C; // type:func -func_808B4194 = 0x808AC5AC; // type:func -func_808B4380 = 0x808AC798; // type:func -func_808B43D0 = 0x808AC7E8; // type:func -func_808B44B8 = 0x808AC8B4; // type:func -func_808B44CC = 0x808AC8CC; // type:func -BgSpot15Rrbox_Update = 0x808AC8F0; // type:func -BgSpot15Rrbox_Draw = 0x808AC95C; // type:func -BgSpot15Saku_Init = 0x808ACB60; // type:func -BgSpot15Saku_Destroy = 0x808ACC14; // type:func -func_808B4930 = 0x808ACC48; // type:func -func_808B4978 = 0x808ACC90; // type:func -func_808B4A04 = 0x808ACD1C; // type:func -BgSpot15Saku_Update = 0x808ACD4C; // type:func -BgSpot15Saku_Draw = 0x808ACD80; // type:func -func_808B4C30 = 0x808ACEA0; // type:func -func_808B4C4C = 0x808ACEC0; // type:func -func_808B4D04 = 0x808ACF74; // type:func -func_808B4D9C = 0x808AD008; // type:func -func_808B4E58 = 0x808AD0B8; // type:func -BgSpot16Bombstone_Init = 0x808AD2B4; // type:func -BgSpot16Bombstone_Destroy = 0x808AD368; // type:func -BgSpot16Bombstone_SpawnDust = 0x808AD3B4; // type:func -func_808B5240 = 0x808AD450; // type:func -BgSpot16Bombstone_SpawnFragments = 0x808AD5B8; // type:func -func_808B561C = 0x808AD830; // type:func -func_808B56BC = 0x808AD8D0; // type:func -func_808B57E0 = 0x808AD9CC; // type:func -func_808B5934 = 0x808ADB24; // type:func -func_808B5950 = 0x808ADB44; // type:func -func_808B5A78 = 0x808ADC30; // type:func -func_808B5A94 = 0x808ADC50; // type:func -func_808B5AF0 = 0x808ADCB4; // type:func -func_808B5B04 = 0x808ADCCC; // type:func -func_808B5B58 = 0x808ADD24; // type:func -func_808B5B6C = 0x808ADD3C; // type:func -BgSpot16Bombstone_Update = 0x808ADE38; // type:func -BgSpot16Bombstone_Draw = 0x808ADE6C; // type:func -BgSpot16Doughnut_Init = 0x808AE3F0; // type:func -BgSpot16Doughnut_Destroy = 0x808AE564; // type:func -BgSpot16Doughnut_Update = 0x808AE574; // type:func -BgSpot16Doughnut_UpdateExpanding = 0x808AE608; // type:func -BgSpot16Doughnut_Draw = 0x808AE670; // type:func -BgSpot16Doughnut_DrawExpanding = 0x808AE828; // type:func -func_808B6BC0 = 0x808AE9B0; // type:func -BgSpot17Bakudankabe_Init = 0x808AECE0; // type:func -BgSpot17Bakudankabe_Destroy = 0x808AED74; // type:func -BgSpot17Bakudankabe_Update = 0x808AEDA8; // type:func -BgSpot17Bakudankabe_Draw = 0x808AEE3C; // type:func -BgSpot17Funen_Init = 0x808AF0A0; // type:func -BgSpot17Funen_Destroy = 0x808AF0C8; // type:func -BgSpot17Funen_Update = 0x808AF0D8; // type:func -func_808B746C = 0x808AF0FC; // type:func -func_808B7478 = 0x808AF10C; // type:func -func_808B7710 = 0x808AF2F0; // type:func -func_808B7770 = 0x808AF34C; // type:func -BgSpot18Basket_Init = 0x808AF508; // type:func -BgSpot18Basket_Destroy = 0x808AF654; // type:func -func_808B7AEC = 0x808AF69C; // type:func -func_808B7AFC = 0x808AF6B0; // type:func -func_808B7B58 = 0x808AF70C; // type:func -func_808B7B6C = 0x808AF724; // type:func -func_808B7BB0 = 0x808AF768; // type:func -func_808B7BCC = 0x808AF788; // type:func -func_808B7D38 = 0x808AF8F4; // type:func -func_808B7D50 = 0x808AF910; // type:func -func_808B7F74 = 0x808AFB34; // type:func -func_808B7FC0 = 0x808AFB84; // type:func -func_808B818C = 0x808AFD50; // type:func -func_808B81A0 = 0x808AFD68; // type:func -BgSpot18Basket_Update = 0x808B0000; // type:func -BgSpot18Basket_Draw = 0x808B00C4; // type:func -BgSpot18Futa_Init = 0x808B02E0; // type:func -BgSpot18Futa_Destroy = 0x808B034C; // type:func -BgSpot18Futa_Update = 0x808B0380; // type:func -BgSpot18Futa_Draw = 0x808B03E4; // type:func -func_808B8910 = 0x808B0480; // type:func -func_808B8A5C = 0x808B0538; // type:func -func_808B8A98 = 0x808B0574; // type:func -func_808B8B08 = 0x808B05E4; // type:func -func_808B8B38 = 0x808B0618; // type:func -func_808B8BB4 = 0x808B0694; // type:func -func_808B8C90 = 0x808B0778; // type:func -func_808B8CC8 = 0x808B07B4; // type:func -BgSpot18Obj_Init = 0x808B0808; // type:func -BgSpot18Obj_Destroy = 0x808B0864; // type:func -func_808B8DC0 = 0x808B0898; // type:func -func_808B8DD0 = 0x808B08AC; // type:func -func_808B8DDC = 0x808B08BC; // type:func -func_808B8E20 = 0x808B0900; // type:func -func_808B8E64 = 0x808B0944; // type:func -func_808B8E7C = 0x808B0960; // type:func -func_808B8EE0 = 0x808B09C4; // type:func -func_808B8F08 = 0x808B09F0; // type:func -func_808B9030 = 0x808B0B1C; // type:func -func_808B9040 = 0x808B0B30; // type:func -BgSpot18Obj_Update = 0x808B0B50; // type:func -BgSpot18Obj_Draw = 0x808B0B84; // type:func -BgSpot18Shutter_Init = 0x808B0D50; // type:func -BgSpot18Shutter_Destroy = 0x808B0F00; // type:func -func_808B95AC = 0x808B0F34; // type:func -func_808B95B8 = 0x808B0F44; // type:func -func_808B9618 = 0x808B0FA4; // type:func -func_808B9698 = 0x808B102C; // type:func -func_808B971C = 0x808B10B0; // type:func -BgSpot18Shutter_Update = 0x808B118C; // type:func -BgSpot18Shutter_Draw = 0x808B11B0; // type:func -BgSstFloor_Init = 0x808B12A0; // type:func -BgSstFloor_Destroy = 0x808B1308; // type:func -BgSstFloor_Update = 0x808B133C; // type:func -BgSstFloor_Draw = 0x808B16B0; // type:func -BgTokiHikari_Init = 0x808B1800; // type:func -BgTokiHikari_Destroy = 0x808B188C; // type:func -BgTokiHikari_DoNothing = 0x808B189C; // type:func -BgTokiHikari_Update = 0x808B18AC; // type:func -BgTokiHikari_Draw = 0x808B18D0; // type:func -func_808BA018 = 0x808B1920; // type:func -func_808BA204 = 0x808B1AC8; // type:func -func_808BA22C = 0x808B1AF0; // type:func -func_808BA274 = 0x808B1B38; // type:func -func_808BA2CC = 0x808B1B90; // type:func -BgTokiSwd_SetupAction = 0x808B25A0; // type:func -BgTokiSwd_Init = 0x808B25AC; // type:func -BgTokiSwd_Destroy = 0x808B2680; // type:func -func_808BAF40 = 0x808B26AC; // type:func -func_808BB0AC = 0x808B2820; // type:func -func_808BB128 = 0x808B28A0; // type:func -BgTokiSwd_Update = 0x808B28F4; // type:func -BgTokiSwd_Draw = 0x808B2948; // type:func -BgTreemouth_SetupAction = 0x808B3BF0; // type:func -BgTreemouth_Init = 0x808B3BFC; // type:func -BgTreemouth_Destroy = 0x808B3D24; // type:func -func_808BC65C = 0x808B3D58; // type:func -func_808BC6F8 = 0x808B3DF4; // type:func -func_808BC80C = 0x808B3F08; // type:func -func_808BC864 = 0x808B3F60; // type:func -func_808BC8B8 = 0x808B3FB4; // type:func -func_808BC9EC = 0x808B40E8; // type:func -func_808BCAF0 = 0x808B41F0; // type:func -BgTreemouth_DoNothing = 0x808B428C; // type:func -BgTreemouth_Update = 0x808B429C; // type:func -BgTreemouth_Draw = 0x808B431C; // type:func -BgUmaJump_Init = 0x808B5250; // type:func -BgUmaJump_Destroy = 0x808B530C; // type:func -BgUmaJump_Update = 0x808B5340; // type:func -BgUmaJump_Draw = 0x808B5350; // type:func -BgVbSima_Init = 0x808B53E0; // type:func -BgVbSima_Destroy = 0x808B5448; // type:func -BgVbSima_SpawnEmber = 0x808B547C; // type:func -BgVbSima_Update = 0x808B5548; // type:func -BgVbSima_Draw = 0x808B59A8; // type:func -BgYdanHasi_Init = 0x808B5B00; // type:func -BgYdanHasi_Destroy = 0x808B5C64; // type:func -BgYdanHasi_UpdateFloatingBlock = 0x808B5C98; // type:func -BgYdanHasi_InitWater = 0x808B5DD0; // type:func -BgYdanHasi_MoveWater = 0x808B5E1C; // type:func -BgYdanHasi_DecWaterTimer = 0x808B5EEC; // type:func -BgYdanHasi_SetupThreeBlocks = 0x808B5F40; // type:func -BgYdanHasi_UpdateThreeBlocks = 0x808B5FAC; // type:func -BgYdanHasi_Update = 0x808B607C; // type:func -BgYdanHasi_Draw = 0x808B60A0; // type:func -BgYdanMaruta_Init = 0x808B62B0; // type:func -BgYdanMaruta_Destroy = 0x808B6514; // type:func -func_808BEFF4 = 0x808B6568; // type:func -func_808BF078 = 0x808B65EC; // type:func -func_808BF108 = 0x808B667C; // type:func -func_808BF1EC = 0x808B6760; // type:func -BgYdanMaruta_DoNothing = 0x808B67D0; // type:func -BgYdanMaruta_Update = 0x808B67E0; // type:func -BgYdanMaruta_Draw = 0x808B6804; // type:func -BgYdanSp_Init = 0x808B6990; // type:func -BgYdanSp_Destroy = 0x808B6D78; // type:func -BgYdanSp_UpdateFloorWebCollision = 0x808B6DC0; // type:func -BgYdanSp_BurnWeb = 0x808B6E94; // type:func -BgYdanSp_BurnFloorWeb = 0x808B6F04; // type:func -BgYdanSp_FloorWebBroken = 0x808B71D8; // type:func -BgYdanSp_FloorWebBreaking = 0x808B7218; // type:func -BgYdanSp_FloorWebIdle = 0x808B73D8; // type:func -BgYdanSp_BurnWallWeb = 0x808B76B4; // type:func -BgYdanSp_WallWebIdle = 0x808B79EC; // type:func -BgYdanSp_Update = 0x808B7B2C; // type:func -BgYdanSp_Draw = 0x808B7B50; // type:func -BgZg_Destroy = 0x808B80B0; // type:func -func_808C0C50 = 0x808B80E4; // type:func -func_808C0C98 = 0x808B812C; // type:func -func_808C0CC8 = 0x808B8160; // type:func -func_808C0CD4 = 0x808B8170; // type:func -func_808C0D08 = 0x808B81A4; // type:func -BgZg_Update = 0x808B8248; // type:func -BgZg_Init = 0x808B8290; // type:func -func_808C0EEC = 0x808B837C; // type:func -BgZg_Draw = 0x808B83F8; // type:func -func_808C1190 = 0x808B8500; // type:func -func_808C11D0 = 0x808B8540; // type:func -func_808C1200 = 0x808B8570; // type:func -func_808C1230 = 0x808B85A0; // type:func -func_808C1278 = 0x808B85E8; // type:func -func_808C12C4 = 0x808B8634; // type:func -func_808C1554 = 0x808B88C4; // type:func -func_808C17C8 = 0x808B8B44; // type:func -BossDodongo_AteExplosive = 0x808B8C2C; // type:func -BossDodongo_Init = 0x808B8CEC; // type:func -BossDodongo_Destroy = 0x808B8FC8; // type:func -BossDodongo_SetupIntroCutscene = 0x808B9008; // type:func -BossDodongo_IntroCutscene = 0x808B9088; // type:func -BossDodongo_SetupDamaged = 0x808B9C04; // type:func -BossDodongo_SetupExplode = 0x808B9C98; // type:func -BossDodongo_SetupWalk = 0x808B9D3C; // type:func -BossDodongo_SetupRoll = 0x808B9DCC; // type:func -BossDodongo_SetupBlowFire = 0x808B9E40; // type:func -BossDodongo_SetupInhale = 0x808B9EC8; // type:func -BossDodongo_Damaged = 0x808B9F58; // type:func -BossDodongo_Explode = 0x808BA00C; // type:func -BossDodongo_LayDown = 0x808BA260; // type:func -BossDodongo_Vulnerable = 0x808BA340; // type:func -BossDodongo_GetUp = 0x808BA42C; // type:func -BossDodongo_BlowFire = 0x808BA490; // type:func -BossDodongo_Inhale = 0x808BA5C0; // type:func -BossDodongo_Walk = 0x808BA694; // type:func -BossDodongo_Roll = 0x808BAAA4; // type:func -BossDodongo_Update = 0x808BAEA0; // type:func -BossDodongo_OverrideLimbDraw = 0x808BBCE0; // type:func -BossDodongo_PostLimbDraw = 0x808BBF04; // type:func -BossDodongo_Draw = 0x808BBFE8; // type:func -func_808C4F6C = 0x808BC2B0; // type:func -func_808C50A8 = 0x808BC3EC; // type:func -BossDodongo_PlayerYawCheck = 0x808BC538; // type:func -BossDodongo_PlayerPosCheck = 0x808BC594; // type:func -BossDodongo_SpawnFire = 0x808BC628; // type:func -BossDodongo_UpdateDamage = 0x808BC69C; // type:func -BossDodongo_SetupDeathCutscene = 0x808BC808; // type:func -BossDodongo_DeathCutscene = 0x808BC8C0; // type:func -BossDodongo_UpdateEffects = 0x808BE000; // type:func -BossDodongo_DrawEffects = 0x808BE134; // type:func -BossFd_SpawnEmber = 0x808C2000; // type:func -BossFd_SpawnDebris = 0x808C20CC; // type:func -BossFd_SpawnDust = 0x808C219C; // type:func -BossFd_SpawnFireBreath = 0x808C2234; // type:func -BossFd_SetCameraSpeed = 0x808C2340; // type:func -BossFd_UpdateCamera = 0x808C23E0; // type:func -BossFd_Init = 0x808C254C; // type:func -BossFd_Destroy = 0x808C286C; // type:func -BossFd_IsFacingLink = 0x808C28CC; // type:func -BossFd_SetupFly = 0x808C28FC; // type:func -BossFd_Fly = 0x808C296C; // type:func -BossFd_Wait = 0x808C4FF4; // type:func -BossFd_Effects = 0x808C51E4; // type:func -BossFd_CollisionCheck = 0x808C5E04; // type:func -BossFd_Update = 0x808C5EB8; // type:func -BossFd_UpdateEffects = 0x808C65F8; // type:func -BossFd_DrawEffects = 0x808C6A50; // type:func -BossFd_Draw = 0x808C70F0; // type:func -BossFd_OverrideRightArmDraw = 0x808C71A8; // type:func -BossFd_OverrideLeftArmDraw = 0x808C72C8; // type:func -BossFd_DrawMane = 0x808C73E8; // type:func -BossFd_OverrideHeadDraw = 0x808C786C; // type:func -BossFd_PostHeadDraw = 0x808C7964; // type:func -BossFd_DrawBody = 0x808C79B8; // type:func -BossFd2_SpawnDebris = 0x808C9360; // type:func -BossFd2_SpawnFireBreath = 0x808C9438; // type:func -BossFd2_SpawnEmber = 0x808C954C; // type:func -BossFd2_SpawnSkullPiece = 0x808C9620; // type:func -BossFd2_SpawnDust = 0x808C96F8; // type:func -BossFd2_Init = 0x808C9790; // type:func -BossFd2_Destroy = 0x808C988C; // type:func -BossFd2_SetupEmerge = 0x808C98CC; // type:func -BossFd2_Emerge = 0x808C99C4; // type:func -BossFd2_SetupIdle = 0x808C9D04; // type:func -BossFd2_Idle = 0x808C9DAC; // type:func -BossFd2_SetupBurrow = 0x808C9F00; // type:func -BossFd2_Burrow = 0x808C9F78; // type:func -BossFd2_SetupBreatheFire = 0x808CA048; // type:func -BossFd2_BreatheFire = 0x808CA0AC; // type:func -BossFd2_SetupClawSwipe = 0x808CA5F0; // type:func -BossFd2_ClawSwipe = 0x808CA650; // type:func -BossFd2_SetupVulnerable = 0x808CA6C8; // type:func -BossFd2_Vulnerable = 0x808CA724; // type:func -BossFd2_SetupDamaged = 0x808CA97C; // type:func -BossFd2_Damaged = 0x808CA9D8; // type:func -BossFd2_SetupDeath = 0x808CAB08; // type:func -BossFd2_UpdateCamera = 0x808CAB98; // type:func -BossFd2_Death = 0x808CAD08; // type:func -BossFd2_Wait = 0x808CB38C; // type:func -BossFd2_CollisionCheck = 0x808CB3D4; // type:func -BossFd2_UpdateFace = 0x808CB874; // type:func -BossFd2_Update = 0x808CB9E0; // type:func -BossFd2_OverrideLimbDraw = 0x808CBB94; // type:func -BossFd2_PostLimbDraw = 0x808CBD88; // type:func -BossFd2_UpdateMane = 0x808CBE30; // type:func -BossFd2_DrawMane = 0x808CC404; // type:func -BossFd2_Draw = 0x808CC848; // type:func -BossGanonEff_SpawnWindowShard = 0x808CD090; // type:func -BossGanonEff_SpawnSparkle = 0x808CD1D0; // type:func -BossGanonEff_SpawnLightRay = 0x808CD2CC; // type:func -BossGanonEff_SpawnShock = 0x808CD410; // type:func -BossGanonEff_SpawnLightning = 0x808CD4DC; // type:func -BossGanonEff_SpawnDustDark = 0x808CD580; // type:func -BossGanonEff_SpawnDustLight = 0x808CD674; // type:func -BossGanonEff_SpawnShockwave = 0x808CD758; // type:func -BossGanonEff_SpawnBlackDot = 0x808CD850; // type:func -BossGanon_SetColliderPos = 0x808CD90C; // type:func -BossGanon_SetAnimationObject = 0x808CD950; // type:func -BossGanon_Init = 0x808CD9C0; // type:func -BossGanon_Destroy = 0x808CDF64; // type:func -BossGanon_SetupIntroCutscene = 0x808CDFC8; // type:func -BossGanon_SetIntroCsCamera = 0x808CE0AC; // type:func -BossGanon_IntroCutscene = 0x808CE14C; // type:func -BossGanon_SetupDeathCutscene = 0x808CF84C; // type:func -BossGanon_SetupTowerCutscene = 0x808CF930; // type:func -BossGanon_ShatterWindows = 0x808CFA34; // type:func -BossGanon_DeathAndTowerCutscene = 0x808CFB78; // type:func -BossGanon_SetupPoundFloor = 0x808D1520; // type:func -BossGanon_PoundFloor = 0x808D155C; // type:func -BossGanon_SetupChargeBigMagic = 0x808D1AB0; // type:func -BossGanon_ChargeBigMagic = 0x808D1B20; // type:func -BossGanon_SetupWait = 0x808D2328; // type:func -BossGanon_Wait = 0x808D23B0; // type:func -BossGanon_SetupChargeLightBall = 0x808D26FC; // type:func -BossGanon_ChargeLightBall = 0x808D276C; // type:func -BossGanon_SetupPlayTennis = 0x808D2920; // type:func -BossGanon_PlayTennis = 0x808D2988; // type:func -BossGanon_SetupBlock = 0x808D2C58; // type:func -BossGanon_Block = 0x808D2D10; // type:func -BossGanon_SetupHitByLightBall = 0x808D2EA0; // type:func -BossGanon_HitByLightBall = 0x808D2F94; // type:func -BossGanon_SetupVulnerable = 0x808D31EC; // type:func -BossGanon_Vulnerable = 0x808D33BC; // type:func -BossGanon_SetupDamaged = 0x808D3928; // type:func -BossGanon_Damaged = 0x808D3990; // type:func -BossGanon_UpdateDamage = 0x808D3A50; // type:func -BossGanon_Update = 0x808D3E18; // type:func -BossGanon_OverrideLimbDraw = 0x808D4F80; // type:func -BossGanon_PostLimbDraw = 0x808D51C0; // type:func -BossGanon_InitRand = 0x808D551C; // type:func -BossGanon_RandZeroOne = 0x808D553C; // type:func -BossGanon_DrawShock = 0x808D5664; // type:func -BossGanon_DrawHandLightBall = 0x808D5A10; // type:func -BossGanon_DrawBigMagicCharge = 0x808D5C64; // type:func -BossGanon_DrawTriforce = 0x808D62F4; // type:func -BossGanon_DrawDarkVortex = 0x808D66B8; // type:func -func_808E0254 = 0x808D6910; // type:func -BossGanon_GenShadowTexture = 0x808D6DB8; // type:func -BossGanon_DrawShadowTexture = 0x808D70F8; // type:func -BossGanon_Draw = 0x808D7374; // type:func -BossGanon_CheckFallingPlatforms = 0x808D75BC; // type:func -BossGanon_LightBall_Update = 0x808D76A4; // type:func -BossGanon_LightBall_Draw = 0x808D81C4; // type:func -func_808E1EB4 = 0x808D84D8; // type:func -func_808E229C = 0x808D88C8; // type:func -func_808E2544 = 0x808D8B38; // type:func -func_808E324C = 0x808D984C; // type:func -BossGanon_UpdateEffects = 0x808D9B20; // type:func -BossGanon_DrawEffects = 0x808DA348; // type:func -BossGanon2_InitRand = 0x808F2EC0; // type:func -BossGanon2_RandZeroOne = 0x808F2EE0; // type:func -func_808FD080 = 0x808F3008; // type:func -BossGanon2_SetObjectSegment = 0x808F3098; // type:func -func_808FD210 = 0x808F314C; // type:func -func_808FD27C = 0x808F31BC; // type:func -BossGanon2_Init = 0x808F329C; // type:func -BossGanon2_Destroy = 0x808F33CC; // type:func -func_808FD4D4 = 0x808F341C; // type:func -func_808FD5C4 = 0x808F350C; // type:func -func_808FD5F4 = 0x808F3540; // type:func -func_808FF898 = 0x808F57F0; // type:func -func_808FFA24 = 0x808F597C; // type:func -func_808FFAC8 = 0x808F5A20; // type:func -func_808FFBBC = 0x808F5B18; // type:func -func_808FFC84 = 0x808F5BE4; // type:func -func_808FFCFC = 0x808F5C5C; // type:func -func_808FFDB0 = 0x808F5D10; // type:func -func_808FFEBC = 0x808F5E20; // type:func -func_808FFF90 = 0x808F5EF4; // type:func -func_808FFFE0 = 0x808F5F44; // type:func -func_809000A0 = 0x808F6004; // type:func -func_80900104 = 0x808F6064; // type:func -func_80900210 = 0x808F6170; // type:func -func_8090026C = 0x808F61CC; // type:func -func_809002CC = 0x808F6230; // type:func -func_80900344 = 0x808F62A4; // type:func -func_80900580 = 0x808F64E0; // type:func -func_80900650 = 0x808F65B0; // type:func -func_80900818 = 0x808F6778; // type:func -func_80900890 = 0x808F67F0; // type:func -func_80901020 = 0x808F6F84; // type:func -func_8090109C = 0x808F7000; // type:func -func_8090120C = 0x808F7170; // type:func -func_80902348 = 0x808F82B4; // type:func -BossGanon2_CollisionCheck = 0x808F8494; // type:func -BossGanon2_Update = 0x808F8788; // type:func -func_809034E4 = 0x808F9454; // type:func -func_80903F38 = 0x808F9EA8; // type:func -func_80904108 = 0x808FA034; // type:func -func_80904340 = 0x808FA238; // type:func -func_8090464C = 0x808FA528; // type:func -BossGanon2_OverrideLimbDraw = 0x808FA6BC; // type:func -BossGanon2_PostLimbDraw = 0x808FA7F4; // type:func -func_80904D88 = 0x808FABB8; // type:func -func_80904FC8 = 0x808FADBC; // type:func -func_8090523C = 0x808FAFE0; // type:func -BossGanon2_PostLimbDraw2 = 0x808FB270; // type:func -func_80905674 = 0x808FB39C; // type:func -BossGanon2_Draw = 0x808FB5E4; // type:func -BossGanon2_UpdateEffects = 0x808FBA64; // type:func -BossGanon2_DrawEffects = 0x808FBDA8; // type:func -func_80906538 = 0x808FC1A0; // type:func -BossGanon2_GenShadowTexture = 0x808FC660; // type:func -BossGanon2_DrawShadowTexture = 0x808FC718; // type:func -BossGanondrof_ClearPixels8x8 = 0x80905D30; // type:func -BossGanondrof_ClearPixels16x8 = 0x80905D70; // type:func -BossGanondrof_ClearPixels16x16 = 0x80905DB0; // type:func -BossGanondrof_ClearPixels32x16 = 0x80905DE0; // type:func -BossGanondrof_ClearPixels16x32 = 0x80905E28; // type:func -BossGanondrof_ClearPixels = 0x80905E74; // type:func -BossGanondrof_SetColliderPos = 0x80906124; // type:func -BossGanondrof_Init = 0x80906168; // type:func -BossGanondrof_Destroy = 0x809063F8; // type:func -BossGanondrof_SetupIntro = 0x80906464; // type:func -BossGanondrof_Intro = 0x809064B0; // type:func -BossGanondrof_SetupPaintings = 0x80906968; // type:func -BossGanondrof_Paintings = 0x809069AC; // type:func -BossGanondrof_SetupNeutral = 0x80906B80; // type:func -BossGanondrof_Neutral = 0x80906C00; // type:func -BossGanondrof_SetupThrow = 0x80907348; // type:func -BossGanondrof_Throw = 0x80907470; // type:func -BossGanondrof_SetupReturn = 0x8090767C; // type:func -BossGanondrof_Return = 0x8090771C; // type:func -BossGanondrof_SetupStunned = 0x80907828; // type:func -BossGanondrof_Stunned = 0x809078EC; // type:func -BossGanondrof_SetupBlock = 0x80907A00; // type:func -BossGanondrof_Block = 0x80907A74; // type:func -BossGanondrof_SetupCharge = 0x80907B50; // type:func -BossGanondrof_Charge = 0x80907BC0; // type:func -BossGanondrof_SetupDeath = 0x809082A4; // type:func -BossGanondrof_Death = 0x8090833C; // type:func -BossGanondrof_CollisionCheck = 0x8090922C; // type:func -BossGanondrof_Update = 0x80909458; // type:func -BossGanondrof_OverrideLimbDraw = 0x80909860; // type:func -BossGanondrof_PostLimbDraw = 0x80909C3C; // type:func -BossGanondrof_GetClearPixelDList = 0x80909D00; // type:func -BossGanondrof_EmptyDList = 0x80909D6C; // type:func -BossGanondrof_Draw = 0x80909D90; // type:func -BossGoma_ClearPixels16x16Rgba16 = 0x8090AAC0; // type:func -BossGoma_ClearPixels32x32Rgba16 = 0x8090AAF0; // type:func -BossGoma_ClearPixels = 0x8090AB44; // type:func -BossGoma_Init = 0x8090ACF4; // type:func -BossGoma_PlayEffectsAndSfx = 0x8090AEAC; // type:func -BossGoma_Destroy = 0x8090AFB4; // type:func -BossGoma_SetupDefeated = 0x8090AFF4; // type:func -BossGoma_SetupEncounter = 0x8090B0BC; // type:func -BossGoma_SetupFloorIdle = 0x8090B160; // type:func -BossGoma_SetupCeilingIdle = 0x8090B1E8; // type:func -BossGoma_SetupFallJump = 0x8090B26C; // type:func -BossGoma_SetupFallStruckDown = 0x8090B2E8; // type:func -BossGoma_SetupCeilingSpawnGohmas = 0x8090B364; // type:func -BossGoma_SetupCeilingPrepareSpawnGohmas = 0x8090B3D8; // type:func -BossGoma_SetupWallClimb = 0x8090B450; // type:func -BossGoma_SetupCeilingMoveToCenter = 0x8090B4D4; // type:func -BossGoma_SetupFloorMain = 0x8090B568; // type:func -BossGoma_SetupFloorLand = 0x8090B5E8; // type:func -BossGoma_SetupFloorLandStruckDown = 0x8090B674; // type:func -BossGoma_SetupFloorStunned = 0x8090B718; // type:func -BossGoma_SetupFloorAttackPosture = 0x8090B788; // type:func -BossGoma_SetupFloorPrepareAttack = 0x8090B7FC; // type:func -BossGoma_SetupFloorAttack = 0x8090B870; // type:func -BossGoma_SetupFloorDamaged = 0x8090B8EC; // type:func -BossGoma_UpdateCeilingMovement = 0x8090B960; // type:func -BossGoma_SetupEncounterState4 = 0x8090BB9C; // type:func -BossGoma_Encounter = 0x8090BD4C; // type:func -BossGoma_Defeated = 0x8090CE44; // type:func -BossGoma_FloorAttackPosture = 0x8090DCB4; // type:func -BossGoma_FloorPrepareAttack = 0x8090DDBC; // type:func -BossGoma_FloorAttack = 0x8090DE18; // type:func -BossGoma_FloorDamaged = 0x8090E068; // type:func -BossGoma_FloorLandStruckDown = 0x8090E100; // type:func -BossGoma_FloorLand = 0x8090E1A4; // type:func -BossGoma_FloorStunned = 0x8090E200; // type:func -BossGoma_FallJump = 0x8090E32C; // type:func -BossGoma_FallStruckDown = 0x8090E3E0; // type:func -BossGoma_CeilingSpawnGohmas = 0x8090E4A0; // type:func -BossGoma_CeilingPrepareSpawnGohmas = 0x8090E5FC; // type:func -BossGoma_FloorIdle = 0x8090E658; // type:func -BossGoma_CeilingIdle = 0x8090E6C0; // type:func -BossGoma_FloorMain = 0x8090E7B8; // type:func -BossGoma_WallClimb = 0x8090EA28; // type:func -BossGoma_CeilingMoveToCenter = 0x8090EAF4; // type:func -BossGoma_UpdateEye = 0x8090ECF0; // type:func -BossGoma_UpdateTailLimbsScale = 0x8090EF38; // type:func -BossGoma_UpdateHit = 0x8090F044; // type:func -BossGoma_UpdateMainEnvColor = 0x8090F224; // type:func -BossGoma_UpdateEyeEnvColor = 0x8090F3A0; // type:func -BossGoma_Update = 0x8090F448; // type:func -BossGoma_OverrideLimbDraw = 0x8090F618; // type:func -BossGoma_PostLimbDraw = 0x8090FA64; // type:func -BossGoma_EmptyDlist = 0x8090FC68; // type:func -BossGoma_NoBackfaceCullingDlist = 0x8090FC8C; // type:func -BossGoma_Draw = 0x8090FCF8; // type:func -BossGoma_SpawnChildGohma = 0x8090FDE8; // type:func -BossMo_InitRand = 0x80910A60; // type:func -BossMo_RandZeroOne = 0x80910A80; // type:func -BossMo_NearLand = 0x80910BA8; // type:func -BossMo_SpawnRipple = 0x80910CA0; // type:func -BossMo_SpawnDroplet = 0x80910DC0; // type:func -BossMo_SpawnStillDroplet = 0x80910E9C; // type:func -BossMo_SpawnBubble = 0x80910F60; // type:func -BossMo_Init = 0x80911014; // type:func -BossMo_Destroy = 0x809113FC; // type:func -BossMo_SetupTentacle = 0x8091144C; // type:func -BossMo_Tentacle = 0x809114A0; // type:func -BossMo_TentCollisionCheck = 0x80914260; // type:func -BossMo_IntroCs = 0x8091450C; // type:func -BossMo_DeathCs = 0x80915624; // type:func -BossMo_CoreCollisionCheck = 0x809161E0; // type:func -BossMo_Core = 0x809165E8; // type:func -BossMo_UpdateCore = 0x80917C4C; // type:func -BossMo_UpdateTent = 0x80917E7C; // type:func -BossMo_UpdateTentColliders = 0x809186B4; // type:func -BossMo_DrawTentacle = 0x80918760; // type:func -BossMo_DrawWater = 0x80918E90; // type:func -BossMo_DrawCore = 0x809190A0; // type:func -BossMo_DrawTent = 0x80919928; // type:func -BossMo_UpdateEffects = 0x80919B5C; // type:func -BossMo_DrawEffects = 0x8091A26C; // type:func -BossMo_Unknown = 0x8091A998; // type:func -BossSst_Init = 0x80921040; // type:func -BossSst_Destroy = 0x809214C8; // type:func -BossSst_HeadSetupLurk = 0x80921514; // type:func -BossSst_HeadLurk = 0x80921548; // type:func -BossSst_HeadSetupIntro = 0x80921584; // type:func -BossSst_HeadIntro = 0x809216D0; // type:func -BossSst_HeadSetupWait = 0x809224E8; // type:func -BossSst_HeadWait = 0x80922538; // type:func -BossSst_HeadSetupNeutral = 0x809225B4; // type:func -BossSst_HeadNeutral = 0x809225D4; // type:func -BossSst_HeadSetupDamagedHand = 0x80922778; // type:func -BossSst_HeadDamagedHand = 0x809227E0; // type:func -BossSst_HeadSetupReadyCharge = 0x809228D8; // type:func -BossSst_HeadReadyCharge = 0x80922930; // type:func -BossSst_HeadSetupCharge = 0x809229D4; // type:func -BossSst_HeadCharge = 0x80922A90; // type:func -BossSst_HeadSetupEndCharge = 0x80922CF0; // type:func -BossSst_HeadEndCharge = 0x80922D74; // type:func -BossSst_HeadSetupFrozenHand = 0x80922DE4; // type:func -BossSst_HeadFrozenHand = 0x80922E38; // type:func -BossSst_HeadSetupUnfreezeHand = 0x80922E80; // type:func -BossSst_HeadUnfreezeHand = 0x80922ECC; // type:func -BossSst_HeadSetupStunned = 0x80922F08; // type:func -BossSst_HeadStunned = 0x80922FA8; // type:func -BossSst_HeadSetupVulnerable = 0x8092322C; // type:func -BossSst_HeadVulnerable = 0x809232CC; // type:func -BossSst_HeadSetupDamage = 0x809233CC; // type:func -BossSst_HeadDamage = 0x8092349C; // type:func -BossSst_HeadSetupRecover = 0x809234EC; // type:func -BossSst_HeadRecover = 0x80923578; // type:func -BossSst_SetCameraTargets = 0x8092370C; // type:func -BossSst_UpdateDeathCamera = 0x80923838; // type:func -BossSst_HeadSetupDeath = 0x809239C4; // type:func -BossSst_HeadDeath = 0x80923B58; // type:func -BossSst_HeadSetupThrash = 0x80923DA8; // type:func -BossSst_HeadThrash = 0x80923E10; // type:func -BossSst_HeadSetupDarken = 0x80923E8C; // type:func -BossSst_HeadDarken = 0x80923ED4; // type:func -BossSst_HeadSetupFall = 0x809240FC; // type:func -BossSst_HeadFall = 0x80924194; // type:func -BossSst_HeadSetupMelt = 0x80924230; // type:func -BossSst_HeadMelt = 0x80924280; // type:func -BossSst_HeadSetupFinish = 0x80924338; // type:func -BossSst_HeadFinish = 0x80924394; // type:func -BossSst_HandSetupWait = 0x8092468C; // type:func -BossSst_HandWait = 0x80924708; // type:func -BossSst_HandSetupDownbeat = 0x80924878; // type:func -BossSst_HandDownbeat = 0x809248EC; // type:func -BossSst_HandSetupDownbeatEnd = 0x80924A3C; // type:func -BossSst_HandDownbeatEnd = 0x80924A98; // type:func -BossSst_HandSetupOffbeat = 0x80924B8C; // type:func -BossSst_HandOffbeat = 0x80924C00; // type:func -BossSst_HandSetupOffbeatEnd = 0x80924CE0; // type:func -BossSst_HandOffbeatEnd = 0x80924D2C; // type:func -BossSst_HandSetupEndSlam = 0x80924E70; // type:func -BossSst_HandEndSlam = 0x80924EE4; // type:func -BossSst_HandSetupRetreat = 0x80924F20; // type:func -BossSst_HandRetreat = 0x80924FC8; // type:func -BossSst_HandSetupReadySlam = 0x809251F4; // type:func -BossSst_HandReadySlam = 0x80925260; // type:func -BossSst_HandSetupSlam = 0x80925350; // type:func -BossSst_HandSlam = 0x809253E0; // type:func -BossSst_HandSetupReadySweep = 0x809255C4; // type:func -BossSst_HandReadySweep = 0x8092566C; // type:func -BossSst_HandSetupSweep = 0x80925790; // type:func -BossSst_HandSweep = 0x8092581C; // type:func -BossSst_HandSetupReadyPunch = 0x80925A2C; // type:func -BossSst_HandReadyPunch = 0x80925A94; // type:func -BossSst_HandSetupPunch = 0x80925AF0; // type:func -BossSst_HandPunch = 0x80925B78; // type:func -BossSst_HandSetupReadyClap = 0x80925CBC; // type:func -BossSst_HandReadyClap = 0x80925DAC; // type:func -BossSst_HandSetupClap = 0x80925F9C; // type:func -BossSst_HandClap = 0x8092600C; // type:func -BossSst_HandSetupEndClap = 0x80926238; // type:func -BossSst_HandEndClap = 0x809262A4; // type:func -BossSst_HandSetupReadyGrab = 0x80926348; // type:func -BossSst_HandReadyGrab = 0x809263CC; // type:func -BossSst_HandSetupGrab = 0x80926474; // type:func -BossSst_HandGrab = 0x80926500; // type:func -BossSst_HandSetupCrush = 0x809267AC; // type:func -BossSst_HandCrush = 0x80926804; // type:func -BossSst_HandSetupEndCrush = 0x8092691C; // type:func -BossSst_HandEndCrush = 0x8092696C; // type:func -BossSst_HandSetupSwing = 0x809269A8; // type:func -BossSst_HandSwing = 0x80926A30; // type:func -BossSst_HandSetupReel = 0x80926D64; // type:func -BossSst_HandReel = 0x80926DFC; // type:func -BossSst_HandSetupReadyShake = 0x80926F54; // type:func -BossSst_HandReadyShake = 0x80926FA4; // type:func -BossSst_HandSetupShake = 0x8092710C; // type:func -BossSst_HandShake = 0x80927128; // type:func -BossSst_HandSetupReadyCharge = 0x809272BC; // type:func -BossSst_HandReadyCharge = 0x80927310; // type:func -BossSst_HandSetupStunned = 0x80927488; // type:func -BossSst_HandStunned = 0x80927534; // type:func -BossSst_HandSetupDamage = 0x80927690; // type:func -BossSst_HandDamage = 0x809276EC; // type:func -BossSst_HandSetupThrash = 0x809277C4; // type:func -BossSst_HandThrash = 0x80927860; // type:func -BossSst_HandSetupDarken = 0x80927A54; // type:func -BossSst_HandDarken = 0x80927AA4; // type:func -BossSst_HandSetupFall = 0x80927B18; // type:func -BossSst_HandFall = 0x80927B68; // type:func -BossSst_HandSetupMelt = 0x80927BEC; // type:func -BossSst_HandMelt = 0x80927C28; // type:func -BossSst_HandSetupFinish = 0x80927CA0; // type:func -BossSst_HandFinish = 0x80927CCC; // type:func -BossSst_HandSetupRecover = 0x80927CF8; // type:func -BossSst_HandRecover = 0x80927D4C; // type:func -BossSst_HandSetupFrozen = 0x80927DE4; // type:func -BossSst_HandFrozen = 0x80927EB0; // type:func -BossSst_HandSetupReadyBreakIce = 0x80928010; // type:func -BossSst_HandReadyBreakIce = 0x809280C4; // type:func -BossSst_HandSetupBreakIce = 0x809281E0; // type:func -BossSst_HandBreakIce = 0x80928208; // type:func -BossSst_HandGrabPlayer = 0x8092839C; // type:func -BossSst_HandReleasePlayer = 0x8092843C; // type:func -BossSst_MoveAround = 0x809284C0; // type:func -BossSst_HandSelectAttack = 0x8092864C; // type:func -BossSst_HandSetDamage = 0x80928748; // type:func -BossSst_HandSetInvulnerable = 0x809287B4; // type:func -BossSst_HeadSfx = 0x809287F4; // type:func -BossSst_HandCollisionCheck = 0x80928820; // type:func -BossSst_HeadCollisionCheck = 0x809289AC; // type:func -BossSst_UpdateHand = 0x80928AF8; // type:func -BossSst_UpdateHead = 0x80928E08; // type:func -BossSst_OverrideHandDraw = 0x80929078; // type:func -BossSst_PostHandDraw = 0x809290C8; // type:func -BossSst_OverrideHandTrailDraw = 0x80929104; // type:func -BossSst_DrawHand = 0x80929148; // type:func -BossSst_OverrideHeadDraw = 0x809294F4; // type:func -BossSst_PostHeadDraw = 0x80929CF8; // type:func -BossSst_DrawHead = 0x80929DA0; // type:func -BossSst_SpawnHeadShadow = 0x8092A1F0; // type:func -BossSst_SpawnHandShadow = 0x8092A31C; // type:func -BossSst_SpawnShockwave = 0x8092A3D0; // type:func -BossSst_SpawnIceCrystal = 0x8092A4AC; // type:func -BossSst_SpawnIceShard = 0x8092A768; // type:func -BossSst_IceShatter = 0x8092A9BC; // type:func -BossSst_UpdateEffects = 0x8092AB88; // type:func -BossSst_DrawEffects = 0x8092AE2C; // type:func -BossTw_AddDotEffect = 0x8092D610; // type:func -BossTw_AddDmgCloud = 0x8092D704; // type:func -BossTw_AddRingEffect = 0x8092D800; // type:func -BossTw_AddPlayerFreezeEffect = 0x8092D904; // type:func -BossTw_AddFlameEffect = 0x8092D9B0; // type:func -BossTw_AddMergeFlameEffect = 0x8092DA88; // type:func -BossTw_AddShieldBlastEffect = 0x8092DB90; // type:func -BossTw_AddShieldDeflectEffect = 0x8092DC78; // type:func -BossTw_AddShieldHitEffect = 0x8092DE40; // type:func -BossTw_Init = 0x8092E008; // type:func -BossTw_Destroy = 0x8092E824; // type:func -BossTw_SetupTurnToPlayer = 0x8092E88C; // type:func -BossTw_TurnToPlayer = 0x8092E8DC; // type:func -BossTw_SetupFlyTo = 0x8092E9FC; // type:func -BossTw_FlyTo = 0x8092EC00; // type:func -BossTw_SetupShootBeam = 0x8092EE34; // type:func -BossTw_SpawnGroundBlast = 0x8092EF1C; // type:func -BossTw_BeamHitPlayerCheck = 0x8092F298; // type:func -BossTw_CheckBeamReflection = 0x8092F490; // type:func -BossTw_BeamReflHitCheck = 0x8092F718; // type:func -BossTw_GetFloorY = 0x8092F840; // type:func -BossTw_ShootBeam = 0x8092FB14; // type:func -BossTw_SetupFinishBeamShoot = 0x80930ACC; // type:func -BossTw_FinishBeamShoot = 0x80930B28; // type:func -BossTw_SetupHitByBeam = 0x80930BC0; // type:func -BossTw_HitByBeam = 0x80930C28; // type:func -BossTw_SetupLaugh = 0x80930EF0; // type:func -BossTw_Laugh = 0x80930F54; // type:func -BossTw_SetupSpin = 0x80930FE4; // type:func -BossTw_Spin = 0x80931060; // type:func -BossTw_SetupMergeCS = 0x80931100; // type:func -BossTw_MergeCS = 0x8093114C; // type:func -BossTw_SetupWait = 0x80931190; // type:func -BossTw_Wait = 0x809311C8; // type:func -BossTw_TwinrovaSetupMergeCS = 0x8093126C; // type:func -BossTw_TwinrovaMergeCS = 0x8093128C; // type:func -BossTw_SetupDeathCS = 0x80931D58; // type:func -BossTw_DeathCS = 0x80931DC0; // type:func -BossTw_SetupCSWait = 0x80931EC8; // type:func -BossTw_CSWait = 0x80931F00; // type:func -BossTw_TwinrovaSetupIntroCS = 0x80931F10; // type:func -BossTw_TwinrovaIntroCS = 0x80931F48; // type:func -BossTw_DeathBall = 0x8093379C; // type:func -BossTw_TwinrovaSetupDeathCS = 0x80933A98; // type:func -BossTw_DeathCSMsgSfx = 0x80933B54; // type:func -BossTw_TwinrovaDeathCS = 0x80934374; // type:func -BossTw_Update = 0x80935068; // type:func -BossTw_TwinrovaUpdate = 0x809356DC; // type:func -BossTw_OverrideLimbDraw = 0x80936058; // type:func -BossTw_PostLimbDraw = 0x8093610C; // type:func -func_80941BC0 = 0x80936524; // type:func -func_80942180 = 0x80936A9C; // type:func -func_809426F0 = 0x80936FB8; // type:func -func_80942C70 = 0x80937500; // type:func -func_80943028 = 0x80937870; // type:func -BossTw_Draw = 0x80937A74; // type:func -BossTw_TwinrovaOverrideLimbDraw = 0x80938130; // type:func -BossTw_TwinrovaPostLimbDraw = 0x8093855C; // type:func -BossTw_ShieldChargeDraw = 0x80938698; // type:func -BossTw_SpawnPortalDraw = 0x80938F00; // type:func -func_80944C50 = 0x80939338; // type:func -BossTw_TwinrovaDraw = 0x8093971C; // type:func -BossTw_BlastFire = 0x80939A54; // type:func -BossTw_BlastIce = 0x8093A38C; // type:func -BossTw_BlastShieldCheck = 0x8093AF00; // type:func -BossTw_BlastUpdate = 0x8093B190; // type:func -BossTw_BlastDraw = 0x8093B30C; // type:func -BossTw_DrawDeathBall = 0x8093B890; // type:func -BossTw_UpdateEffects = 0x8093BDF0; // type:func -BossTw_InitRand = 0x8093CB48; // type:func -BossTw_RandZeroOne = 0x8093CB68; // type:func -BossTw_DrawEffects = 0x8093CC90; // type:func -BossTw_TwinrovaSetupArriveAtTarget = 0x8093DAC4; // type:func -BossTw_TwinrovaArriveAtTarget = 0x8093DB38; // type:func -BossTw_TwinrovaSetupChargeBlast = 0x8093DC64; // type:func -BossTw_TwinrovaChargeBlast = 0x8093DCC4; // type:func -BossTw_TwinrovaSetupShootBlast = 0x8093DEB0; // type:func -BossTw_TwinrovaShootBlast = 0x8093DF38; // type:func -BossTw_TwinrovaSetupDoneBlastShoot = 0x8093E188; // type:func -BossTw_TwinrovaDoneBlastShoot = 0x8093E1D4; // type:func -BossTw_TwinrovaDamage = 0x8093E26C; // type:func -BossTw_TwinrovaStun = 0x8093E398; // type:func -BossTw_TwinrovaSetupGetUp = 0x8093E64C; // type:func -BossTw_TwinrovaGetUp = 0x8093E6B0; // type:func -BossTw_TwinrovaSetupFly = 0x8093E744; // type:func -BossTw_TwinrovaFly = 0x8093E91C; // type:func -BossTw_TwinrovaSetupSpin = 0x8093EB90; // type:func -BossTw_TwinrovaSpin = 0x8093EBE8; // type:func -BossTw_TwinrovaSetupLaugh = 0x8093EC60; // type:func -BossTw_TwinrovaLaugh = 0x8093ECC4; // type:func -BossVa_SetupAction = 0x809431E0; // type:func -BossVa_AttachToBody = 0x809431EC; // type:func -BossVa_BloodDroplets = 0x80943430; // type:func -BossVa_BloodSplatter = 0x80943530; // type:func -BossVa_Gore = 0x8094365C; // type:func -BossVa_Spark = 0x8094378C; // type:func -BossVa_Tumor = 0x80943910; // type:func -BossVa_SetSparkEnv = 0x80943A94; // type:func -BossVa_SetDeathEnv = 0x80943AE0; // type:func -BossVa_FindBoomerang = 0x80943B60; // type:func -BossVa_KillBari = 0x80943BA0; // type:func -BossVa_Init = 0x80943D8C; // type:func -BossVa_Destroy = 0x809445DC; // type:func -BossVa_SetupIntro = 0x8094462C; // type:func -BossVa_BodyIntro = 0x809446BC; // type:func -BossVa_SetupBodyPhase1 = 0x809456DC; // type:func -BossVa_BodyPhase1 = 0x80945780; // type:func -BossVa_SetupBodyPhase2 = 0x80945A18; // type:func -BossVa_BodyPhase2 = 0x80945B44; // type:func -BossVa_SetupBodyPhase3 = 0x80946048; // type:func -BossVa_BodyPhase3 = 0x80946084; // type:func -BossVa_SetupBodyPhase4 = 0x809466EC; // type:func -BossVa_BodyPhase4 = 0x809467A0; // type:func -BossVa_SetupBodyDeath = 0x809472A8; // type:func -BossVa_BodyDeath = 0x80947340; // type:func -BossVa_SetupSupportIntro = 0x80947E98; // type:func -BossVa_SupportIntro = 0x80947F10; // type:func -BossVa_SetupSupportAttached = 0x80948034; // type:func -BossVa_SupportAttached = 0x809480B8; // type:func -BossVa_SetupSupportCut = 0x809482E0; // type:func -BossVa_SupportCut = 0x809483A8; // type:func -BossVa_SetupStump = 0x8094887C; // type:func -BossVa_Stump = 0x80948900; // type:func -BossVa_SetupZapperIntro = 0x80948998; // type:func -BossVa_ZapperIntro = 0x80948A2C; // type:func -BossVa_SetupZapperAttack = 0x80948AEC; // type:func -BossVa_ZapperAttack = 0x80948B80; // type:func -BossVa_SetupZapperDamaged = 0x809495B4; // type:func -BossVa_ZapperDamaged = 0x809496BC; // type:func -BossVa_SetupZapperDeath = 0x809497D0; // type:func -BossVa_ZapperDeath = 0x809498A4; // type:func -BossVa_SetupZapperEnraged = 0x80949DCC; // type:func -BossVa_ZapperEnraged = 0x80949E54; // type:func -BossVa_SetupZapperHold = 0x8094A5AC; // type:func -BossVa_ZapperHold = 0x8094A62C; // type:func -BossVa_SetupBariIntro = 0x8094A738; // type:func -BossVa_BariIntro = 0x8094A848; // type:func -BossVa_SetupBariPhase3Attack = 0x8094ADA0; // type:func -BossVa_BariPhase3Attack = 0x8094AE48; // type:func -BossVa_SetupBariPhase2Attack = 0x8094B248; // type:func -BossVa_BariPhase2Attack = 0x8094B2F0; // type:func -BossVa_SetupBariPhase3Stunned = 0x8094B908; // type:func -BossVa_BariPhase3Stunned = 0x8094B964; // type:func -BossVa_SetupBariDeath = 0x8094BB80; // type:func -BossVa_BariDeath = 0x8094BBD8; // type:func -BossVa_SetupDoor = 0x8094BC0C; // type:func -BossVa_Door = 0x8094BC5C; // type:func -BossVa_Update = 0x8094BCD0; // type:func -BossVa_BodyOverrideLimbDraw = 0x8094BEDC; // type:func -BossVa_BodyPostLimbDraw = 0x8094C080; // type:func -BossVa_SupportOverrideLimbDraw = 0x8094C584; // type:func -BossVa_SupportPostLimbDraw = 0x8094C5C8; // type:func -BossVa_ZapperOverrideLimbDraw = 0x8094C818; // type:func -BossVa_ZapperPostLimbDraw = 0x8094C9F4; // type:func -BossVa_BariOverrideLimbDraw = 0x8094CE54; // type:func -BossVa_BariPostLimbDraw = 0x8094CEE4; // type:func -BossVa_Draw = 0x8094D070; // type:func -BossVa_UpdateEffects = 0x8094D668; // type:func -BossVa_DrawEffects = 0x8094E008; // type:func -BossVa_SpawnSpark = 0x8094EE10; // type:func -BossVa_SpawnSparkBall = 0x8094F100; // type:func -BossVa_SpawnBloodDroplets = 0x8094F28C; // type:func -BossVa_SpawnBloodSplatter = 0x8094F458; // type:func -BossVa_SpawnTumor = 0x8094F5F4; // type:func -BossVa_SpawnGore = 0x8094F798; // type:func -BossVa_SpawnZapperCharge = 0x8094F9B8; // type:func -BossVa_DrawDoor = 0x8094FB0C; // type:func -Demo6K_SetupAction = 0x8095A470; // type:func -Demo6K_Init = 0x8095A47C; // type:func -Demo6K_Destroy = 0x8095A864; // type:func -Demo6K_WaitForObject = 0x8095A898; // type:func -func_80966E04 = 0x8095A8F0; // type:func -func_80966E98 = 0x8095A988; // type:func -func_80966F84 = 0x8095AA7C; // type:func -func_809670AC = 0x8095ABA4; // type:func -func_8096712C = 0x8095AC24; // type:func -func_80967244 = 0x8095AD3C; // type:func -func_80967410 = 0x8095AF08; // type:func -func_809674E0 = 0x8095AFD8; // type:func -func_809676A4 = 0x8095B19C; // type:func -func_8096784C = 0x8095B344; // type:func -func_80967A04 = 0x8095B500; // type:func -func_80967AD0 = 0x8095B5CC; // type:func -func_80967BF8 = 0x8095B6F8; // type:func -func_80967DBC = 0x8095B8BC; // type:func -func_80967F10 = 0x8095BA08; // type:func -Demo6K_Update = 0x8095BAD4; // type:func -func_80967FFC = 0x8095BAF8; // type:func -func_80968298 = 0x8095BD54; // type:func -func_8096865C = 0x8095C0D8; // type:func -func_809688C4 = 0x8095C2F8; // type:func -func_80968B70 = 0x8095C574; // type:func -func_80968FB0 = 0x8095C974; // type:func -func_809691BC = 0x8095CB38; // type:func -DemoDu_Destroy = 0x8095D1D0; // type:func -DemoDu_UpdateEyes = 0x8095D1F4; // type:func -DemoDu_SetEyeTexIndex = 0x8095D27C; // type:func -DemoDu_SetMouthTexIndex = 0x8095D294; // type:func -DemoDu_UpdateSkelAnime = 0x8095D2AC; // type:func -DemoDu_UpdateBgCheckInfo = 0x8095D2D0; // type:func -DemoDu_GetCue = 0x8095D318; // type:func -DemoDu_CheckForCue = 0x8095D340; // type:func -DemoDu_CheckForNoCue = 0x8095D38C; // type:func -DemoDu_SetStartPosRotFromCue = 0x8095D3D8; // type:func -func_80969DDC = 0x8095D458; // type:func -DemoDu_InitCs_FireMedallion = 0x8095D4E8; // type:func -DemoDu_CsFireMedallion_SpawnDoorWarp = 0x8095D558; // type:func -func_80969F38 = 0x8095D5B4; // type:func -func_80969FB4 = 0x8095D630; // type:func -DemoDu_CsFireMedallion_AdvanceTo01 = 0x8095D650; // type:func -DemoDu_CsFireMedallion_AdvanceTo02 = 0x8095D6E8; // type:func -DemoDu_CsFireMedallion_AdvanceTo03 = 0x8095D738; // type:func -DemoDu_CsFireMedallion_AdvanceTo04 = 0x8095D764; // type:func -DemoDu_CsFireMedallion_AdvanceTo05 = 0x8095D7F8; // type:func -DemoDu_CsFireMedallion_AdvanceTo06 = 0x8095D864; // type:func -DemoDu_UpdateCs_FM_00 = 0x8095D8B0; // type:func -DemoDu_UpdateCs_FM_01 = 0x8095D8D0; // type:func -DemoDu_UpdateCs_FM_02 = 0x8095D8F0; // type:func -DemoDu_UpdateCs_FM_03 = 0x8095D924; // type:func -DemoDu_UpdateCs_FM_04 = 0x8095D964; // type:func -DemoDu_UpdateCs_FM_05 = 0x8095D99C; // type:func -DemoDu_UpdateCs_FM_06 = 0x8095D9DC; // type:func -DemoDu_InitCs_GoronsRuby = 0x8095DA08; // type:func -DemoDu_CsPlaySfx_GoronLanding = 0x8095DA58; // type:func -DemoDu_CsPlaySfx_DaruniaFalling = 0x8095DA80; // type:func -DemoDu_CsPlaySfx_DaruniaHitsLink = 0x8095DAB0; // type:func -DemoDu_CsPlaySfx_HitBreast = 0x8095DB08; // type:func -DemoDu_CsPlaySfx_LinkEscapeFromGorons = 0x8095DB30; // type:func -DemoDu_CsPlaySfx_LinkSurprised = 0x8095DB88; // type:func -DemoDu_CsGoronsRuby_UpdateFaceTextures = 0x8095DBE0; // type:func -func_8096A630 = 0x8095DCE8; // type:func -DemoDu_CsGoronsRuby_SpawnDustWhenHittingLink = 0x8095DD9C; // type:func -DemoDu_CsGoronsRuby_DaruniaFalling = 0x8095E030; // type:func -DemoDu_CsGoronsRuby_AdvanceTo01 = 0x8095E10C; // type:func -DemoDu_CsGoronsRuby_AdvanceTo02 = 0x8095E120; // type:func -DemoDu_CsGoronsRuby_AdvanceTo03 = 0x8095E1C4; // type:func -DemoDu_CsGoronsRuby_AdvanceTo04 = 0x8095E218; // type:func -DemoDu_CsGoronsRuby_AdvanceTo05 = 0x8095E250; // type:func -DemoDu_CsGoronsRuby_AdvanceTo06 = 0x8095E2BC; // type:func -DemoDu_CsGoronsRuby_AdvanceTo07 = 0x8095E354; // type:func -DemoDu_CsGoronsRuby_AdvanceTo08 = 0x8095E3C0; // type:func -DemoDu_CsGoronsRuby_AdvanceTo09 = 0x8095E454; // type:func -DemoDu_CsGoronsRuby_AdvanceTo10 = 0x8095E4C4; // type:func -DemoDu_CsGoronsRuby_AdvanceTo11 = 0x8095E530; // type:func -DemoDu_CsGoronsRuby_AdvanceTo12 = 0x8095E5C4; // type:func -DemoDu_CsGoronsRuby_AdvanceTo13 = 0x8095E630; // type:func -DemoDu_UpdateCs_GR_00 = 0x8095E6C0; // type:func -DemoDu_UpdateCs_GR_01 = 0x8095E6F4; // type:func -DemoDu_UpdateCs_GR_02 = 0x8095E730; // type:func -DemoDu_UpdateCs_GR_03 = 0x8095E78C; // type:func -DemoDu_UpdateCs_GR_04 = 0x8095E7CC; // type:func -DemoDu_UpdateCs_GR_05 = 0x8095E81C; // type:func -DemoDu_UpdateCs_GR_06 = 0x8095E868; // type:func -DemoDu_UpdateCs_GR_07 = 0x8095E8C8; // type:func -DemoDu_UpdateCs_GR_08 = 0x8095E914; // type:func -DemoDu_UpdateCs_GR_09 = 0x8095E978; // type:func -DemoDu_UpdateCs_GR_10 = 0x8095E9D8; // type:func -DemoDu_UpdateCs_GR_11 = 0x8095EA24; // type:func -DemoDu_UpdateCs_GR_12 = 0x8095EA74; // type:func -DemoDu_UpdateCs_GR_13 = 0x8095EAC0; // type:func -DemoDu_InitCs_AfterGanon = 0x8095EB08; // type:func -DemoDu_CsPlaySfx_WhiteOut = 0x8095EBA8; // type:func -DemoDu_CsAfterGanon_SpawnDemo6K = 0x8095EBC8; // type:func -DemoDu_CsAfterGanon_AdvanceTo01 = 0x8095EC48; // type:func -DemoDu_CsAfterGanon_AdvanceTo02 = 0x8095EC9C; // type:func -DemoDu_CsAfterGanon_BackTo01 = 0x8095EDF0; // type:func -DemoDu_UpdateCs_AG_00 = 0x8095EE8C; // type:func -DemoDu_UpdateCs_AG_01 = 0x8095EEAC; // type:func -DemoDu_UpdateCs_AG_02 = 0x8095EEF4; // type:func -DemoDu_Draw_02 = 0x8095EF3C; // type:func -DemoDu_InitCs_Credits = 0x8095F0F8; // type:func -DemoDu_CsCredits_UpdateShadowAlpha = 0x8095F164; // type:func -DemoDu_CsCredits_AdvanceTo01 = 0x8095F1F0; // type:func -DemoDu_CsCredits_AdvanceTo02 = 0x8095F228; // type:func -DemoDu_CsCredits_AdvanceTo03 = 0x8095F274; // type:func -DemoDu_CsCredits_AdvanceTo04 = 0x8095F2B4; // type:func -DemoDu_CsCredits_BackTo02 = 0x8095F2F4; // type:func -DemoDu_CsCredits_HandleCues = 0x8095F33C; // type:func -DemoDu_UpdateCs_CR_00 = 0x8095F3E8; // type:func -DemoDu_UpdateCs_CR_01 = 0x8095F408; // type:func -DemoDu_UpdateCs_CR_02 = 0x8095F454; // type:func -DemoDu_UpdateCs_CR_03 = 0x8095F49C; // type:func -DemoDu_UpdateCs_CR_04 = 0x8095F4E4; // type:func -DemoDu_Update = 0x8095F528; // type:func -DemoDu_Init = 0x8095F570; // type:func -DemoDu_Draw_NoDraw = 0x8095F614; // type:func -DemoDu_Draw_01 = 0x8095F624; // type:func -DemoDu_Draw = 0x8095F7CC; // type:func -DemoEc_Destroy = 0x809609B0; // type:func -DemoEc_Init = 0x809609D4; // type:func -DemoEc_UpdateSkelAnime = 0x80960A1C; // type:func -DemoEc_UpdateBgFlags = 0x80960A40; // type:func -func_8096D594 = 0x80960A88; // type:func -func_8096D5D4 = 0x80960AC8; // type:func -func_8096D64C = 0x80960B40; // type:func -DemoEc_UpdateEyes = 0x80960B80; // type:func -DemoEc_SetEyeTexIndex = 0x80960C08; // type:func -DemoEc_InitSkelAnime = 0x80960C20; // type:func -DemoEc_ChangeAnimation = 0x80960C98; // type:func -DemoEc_AllocColorDList = 0x80960D54; // type:func -DemoEc_DrawSkeleton = 0x80960DAC; // type:func -DemoEc_DrawSkeletonCustomColor = 0x80960F3C; // type:func -DemoEc_UseDrawObject = 0x8096119C; // type:func -DemoEc_UseAnimationObject = 0x809611F8; // type:func -DemoEc_GetCue = 0x80961230; // type:func -DemoEc_SetStartPosRotFromCue = 0x80961258; // type:func -DemoEc_InitIngo = 0x809612D8; // type:func -DemoEc_UpdateIngo = 0x80961378; // type:func -DemoEc_DrawIngo = 0x809613B8; // type:func -DemoEc_InitTalon = 0x809613EC; // type:func -DemoEc_UpdateTalon = 0x8096148C; // type:func -DemoEc_DrawTalon = 0x809614CC; // type:func -DemoEc_InitWindmillMan = 0x80961500; // type:func -DemoEc_UpdateWindmillMan = 0x809615A0; // type:func -DemoEc_DrawWindmillMan = 0x809615E0; // type:func -DemoEc_InitKokiriBoy = 0x80961614; // type:func -DemoEc_InitDancingKokiriBoy = 0x809616B4; // type:func -DemoEc_UpdateKokiriBoy = 0x80961758; // type:func -DemoEc_UpdateDancingKokiriBoy = 0x80961798; // type:func -DemoEc_DrawKokiriBoy = 0x809617B8; // type:func -DemoEc_InitKokiriGirl = 0x809617FC; // type:func -DemoEc_InitDancingKokiriGirl = 0x8096189C; // type:func -DemoEc_UpdateKokiriGirl = 0x80961940; // type:func -DemoEc_UpdateDancingKokiriGirl = 0x80961988; // type:func -DemoEc_DrawKokiriGirl = 0x809619A8; // type:func -DemoEc_InitOldMan = 0x809619FC; // type:func -DemoEc_UpdateOldMan = 0x80961A9C; // type:func -DemoEc_DrawOldMan = 0x80961AE4; // type:func -DemoEc_InitBeardedMan = 0x80961B38; // type:func -DemoEc_UpdateBeardedMan = 0x80961BD8; // type:func -DemoEc_DrawBeardedMan = 0x80961C20; // type:func -DemoEc_InitWoman = 0x80961C74; // type:func -DemoEc_UpdateWoman = 0x80961D14; // type:func -DemoEc_DrawWoman = 0x80961D5C; // type:func -DemoEc_InitOldWoman = 0x80961D98; // type:func -DemoEc_UpdateOldWoman = 0x80961E38; // type:func -DemoEc_DrawOldWoman = 0x80961E78; // type:func -DemoEc_InitBossCarpenter = 0x80961EA8; // type:func -DemoEc_UpdateBossCarpenter = 0x80961F48; // type:func -DemoEc_DrawBossCarpenter = 0x80961F88; // type:func -DemoEc_InitCarpenter = 0x80961FB4; // type:func -DemoEc_UpdateCarpenter = 0x80962054; // type:func -DemoEc_CarpenterOverrideLimbDraw = 0x80962094; // type:func -DemoEc_GetCarpenterPostLimbDList = 0x80962198; // type:func -DemoEc_CarpenterPostLimbDraw = 0x80962200; // type:func -DemoEc_DrawCarpenter = 0x80962284; // type:func -DemoEc_InitGerudo = 0x809622C0; // type:func -DemoEc_UpdateGerudo = 0x80962364; // type:func -DemoEc_GetGerudoPostLimbDList = 0x809623AC; // type:func -DemoEc_GerudoPostLimbDraw = 0x80962400; // type:func -DemoEc_DrawGerudo = 0x80962484; // type:func -DemoEc_InitDancingZora = 0x809624C8; // type:func -DemoEc_UpdateDancingZora = 0x8096256C; // type:func -DemoEc_DrawDancingZora = 0x809625B4; // type:func -DemoEc_InitKingZora = 0x809625F0; // type:func -func_8096F1D4 = 0x809626A0; // type:func -func_8096F224 = 0x809626F0; // type:func -func_8096F26C = 0x80962738; // type:func -func_8096F2B0 = 0x80962780; // type:func -DemoEc_UpdateKingZora = 0x809627E4; // type:func -func_8096F378 = 0x8096284C; // type:func -func_8096F3D4 = 0x809628AC; // type:func -DemoEc_DrawKingZora = 0x809628F4; // type:func -DemoEc_InitMido = 0x80962930; // type:func -func_8096F4FC = 0x809629E0; // type:func -func_8096F544 = 0x80962A28; // type:func -func_8096F578 = 0x80962A5C; // type:func -DemoEc_UpdateMido = 0x80962AC0; // type:func -func_8096F640 = 0x80962B28; // type:func -DemoEc_DrawMido = 0x80962B88; // type:func -DemoEc_InitCucco = 0x80962BC4; // type:func -DemoEc_UpdateCucco = 0x80962C94; // type:func -DemoEc_DrawCucco = 0x80962CD4; // type:func -DemoEc_InitCuccoLady = 0x80962D00; // type:func -DemoEc_UpdateCuccoLady = 0x80962DA4; // type:func -DemoEc_DrawCuccoLady = 0x80962DEC; // type:func -DemoEc_InitPotionShopOwner = 0x80962E28; // type:func -DemoEc_UpdatePotionShopOwner = 0x80962ECC; // type:func -DemoEc_DrawPotionShopOwner = 0x80962F14; // type:func -DemoEc_InitMaskShopOwner = 0x80962F50; // type:func -DemoEc_UpdateMaskShopOwner = 0x80962FF4; // type:func -DemoEc_DrawMaskShopOwner = 0x80963034; // type:func -DemoEc_InitFishingOwner = 0x80963064; // type:func -DemoEc_UpdateFishingOwner = 0x80963108; // type:func -DemoEc_FishingOwnerPostLimbDraw = 0x80963150; // type:func -DemoEc_DrawFishingOwner = 0x809631D0; // type:func -DemoEc_InitBombchuShopOwner = 0x80963214; // type:func -DempEc_UpdateBombchuShopOwner = 0x809632B8; // type:func -DemoEc_DrawBombchuShopOwner = 0x80963300; // type:func -DemoEc_InitGorons = 0x8096333C; // type:func -DemoEc_UpdateGorons = 0x80963474; // type:func -DemoEc_DrawGorons = 0x809634BC; // type:func -DemoEc_InitMalon = 0x809634FC; // type:func -DemoEc_UpdateMalon = 0x809635A0; // type:func -DemoEc_DrawMalon = 0x809635E8; // type:func -DemoEc_InitNpc = 0x80963628; // type:func -DemoEc_InitCommon = 0x80963674; // type:func -DemoEc_Update = 0x80963748; // type:func -DemoEc_DrawCommon = 0x809637C0; // type:func -DemoEc_Draw = 0x809637D0; // type:func -DemoEffect_SetupUpdate = 0x80964210; // type:func -DemoEffect_InterpolateCsFrames = 0x8096421C; // type:func -DemoEffect_InitJewel = 0x8096427C; // type:func -DemoEffect_InitGetItem = 0x8096433C; // type:func -DemoEffect_Init = 0x80964388; // type:func -DemoEffect_Destroy = 0x80964B88; // type:func -DemoEffect_WaitForObject = 0x80964BD8; // type:func -DemoEffect_UpdatePositionToParent = 0x80964C30; // type:func -DemoEffect_UpdateCrystalLight = 0x80964C60; // type:func -DemoEffect_MedalSparkle = 0x80964C94; // type:func -DemoEffect_UpdateGetItem = 0x80964E2C; // type:func -DemoEffect_InitTimeWarp = 0x8096506C; // type:func -DemoEffect_UpdateTimeWarpPullMasterSword = 0x80965228; // type:func -DemoEffect_TimewarpShrink = 0x809652CC; // type:func -DemoEffect_UpdateTimeWarpReturnFromChamberOfSages = 0x809653F0; // type:func -DemoEffect_UpdateTimeWarpTimeblock = 0x809654A8; // type:func -DemoEffect_InitTimeWarpTimeblock = 0x80965564; // type:func -DemoEffect_UpdateTriforceSpot = 0x809655E8; // type:func -DemoEffect_UpdateLightRingShrinking = 0x809658D0; // type:func -DemoEffect_UpdateLightRingExpanding = 0x80965960; // type:func -DemoEffect_UpdateLightRingTriforce = 0x809659D4; // type:func -DemoEffect_UpdateCreationFireball = 0x80965A90; // type:func -DemoEffect_InitCreationFireball = 0x80965BE4; // type:func -DemoEffect_UpdateBlueOrbShrink = 0x80965C34; // type:func -DemoEffect_UpdateBlueOrbGrow = 0x80965C9C; // type:func -DemoEffect_UpdateLightEffect = 0x80965D7C; // type:func -DemoEffect_UpdateLgtShower = 0x80966074; // type:func -DemoEffect_UpdateGodLgtDin = 0x809660E0; // type:func -DemoEffect_UpdateGodLgtNayru = 0x8096627C; // type:func -DemoEffect_UpdateGodLgtFarore = 0x80966474; // type:func -DemoEffect_MoveTowardTarget = 0x80966618; // type:func -DemoEffect_InitJewelColor = 0x80966678; // type:func -DemoEffect_SetJewelColor = 0x80966778; // type:func -DemoEffect_MoveJewelSplit = 0x80966EEC; // type:func -DemoEffect_MoveJewelSpherical = 0x80966F48; // type:func -DemoEffect_MoveJewelActivateDoorOfTime = 0x8096712C; // type:func -DemoEffect_JewelSparkle = 0x80967398; // type:func -DemoEffect_PlayJewelSfx = 0x809674FC; // type:func -DemoEffect_UpdateJewelAdult = 0x80967560; // type:func -DemoEffect_UpdateJewelChild = 0x809675A4; // type:func -DemoEffect_UpdateDust = 0x809677B8; // type:func -DemoEffect_Update = 0x809678DC; // type:func -DemoEffect_CheckForCue = 0x80967900; // type:func -DemoEffect_DrawJewel = 0x80967944; // type:func -DemoEffect_DrawCrystalLight = 0x80967D84; // type:func -DemoEffect_DrawFireBall = 0x8096805C; // type:func -DemoEffect_DrawGodLgt = 0x809681E8; // type:func -DemoEffect_DrawLightEffect = 0x809685B8; // type:func -DemoEffect_DrawBlueOrb = 0x809687F0; // type:func -DemoEffect_DrawLgtShower = 0x80968918; // type:func -DemoEffect_DrawLightRing = 0x80968A9C; // type:func -DemoEffect_DrawTriforceSpot = 0x80968C04; // type:func -DemoEffect_DrawGetItem = 0x80969188; // type:func -DemoEffect_OverrideLimbDrawTimeWarp = 0x80969220; // type:func -DemoEffect_DrawTimeWarp = 0x809693A0; // type:func -DemoEffect_FaceTowardPoint = 0x80969478; // type:func -DemoEffect_SetPosRotFromCue = 0x80969528; // type:func -DemoEffect_MoveTowardCuePos = 0x80969688; // type:func -DemoEffect_SetStartPosFromCue = 0x80969734; // type:func -DemoExt_Destroy = 0x80969DB0; // type:func -DemoExt_Init = 0x80969DC0; // type:func -DemoExt_PlayVortexSFX = 0x80969E78; // type:func -DemoExt_GetCue = 0x80969F00; // type:func -DemoExt_SetupWait = 0x80969F28; // type:func -DemoExt_SetupMaintainVortex = 0x80969F38; // type:func -DemoExt_SetupDispellVortex = 0x80969FC4; // type:func -DemoExt_FinishClosing = 0x80969FDC; // type:func -DemoExt_HandleCues = 0x8096A048; // type:func -DemoExt_SetScrollAndRotation = 0x8096A0F4; // type:func -DemoExt_SetColorsAndScales = 0x8096A144; // type:func -DemoExt_Wait = 0x8096A280; // type:func -DemoExt_MaintainVortex = 0x8096A2A0; // type:func -DemoExt_DispellVortex = 0x8096A2DC; // type:func -DemoExt_Update = 0x8096A31C; // type:func -DemoExt_DrawNothing = 0x8096A364; // type:func -DemoExt_DrawVortex = 0x8096A374; // type:func -DemoExt_Draw = 0x8096A5F4; // type:func -DemoGeff_Destroy = 0x8096A700; // type:func -DemoGeff_Init = 0x8096A710; // type:func -func_80977EA8 = 0x8096A758; // type:func -func_80977F80 = 0x8096A7F4; // type:func -func_80978030 = 0x8096A850; // type:func -func_809781FC = 0x8096AA1C; // type:func -func_809782A0 = 0x8096AAC0; // type:func -func_80978308 = 0x8096AB28; // type:func -func_80978344 = 0x8096AB60; // type:func -func_80978370 = 0x8096AB90; // type:func -func_809783D4 = 0x8096ABDC; // type:func -DemoGeff_Update = 0x8096AC78; // type:func -func_809784D4 = 0x8096ACC0; // type:func -DemoGeff_Draw = 0x8096ACD0; // type:func -DemoGj_GetCollectibleType = 0x8096AF20; // type:func -DemoGj_GetCollectibleAmount = 0x8096AF34; // type:func -DemoGj_GetType = 0x8096AF48; // type:func -DemoGj_InitCylinder = 0x8096AF58; // type:func -DemoGj_HitByExplosion = 0x8096AFA0; // type:func -DemoGj_DestroyCylinder = 0x8096AFD8; // type:func -DemoGj_Destroy = 0x8096B090; // type:func -DemoGj_PlayExplosionSfx = 0x8096B0D4; // type:func -DemoGj_SpawnSmoke = 0x8096B10C; // type:func -DemoGj_DropCollectible = 0x8096B1A0; // type:func -DemoGj_Explode = 0x8096B234; // type:func -DemoGj_IsCutsceneLayer = 0x8096B4D0; // type:func -DemoGj_FindGanon = 0x8096B4F8; // type:func -DemoGj_InitCommon = 0x8096B544; // type:func -DemoGj_InitSetIndices = 0x8096B5BC; // type:func -DemoGj_DrawCommon = 0x8096B620; // type:func -DemoGj_DrawRotated = 0x8096B6BC; // type:func -DemoGj_SetupRotation = 0x8096B798; // type:func -func_809797E4 = 0x8096BD30; // type:func -DemoGj_IsGanondorfRisingFromRubble = 0x8096BD64; // type:func -DemoGj_IsGanondorfFloatingInAir = 0x8096BD88; // type:func -DemoGj_SetupMovement = 0x8096BDAC; // type:func -DemoGj_CheckIfTransformedIntoGanon = 0x8096C4D0; // type:func -DemoGj_InitRubblePile1 = 0x8096C508; // type:func -func_8097A000 = 0x8096C538; // type:func -DemoGj_SpawnSmokePreBattle1 = 0x8096C5B4; // type:func -func_8097A0E4 = 0x8096C620; // type:func -func_8097A130 = 0x8096C674; // type:func -DemoGj_Update01 = 0x8096C6A8; // type:func -DemoGj_Update08 = 0x8096C6E0; // type:func -DemoGj_DrawRubble2 = 0x8096C718; // type:func -DemoGj_DrawRotatedRubble2 = 0x8096C73C; // type:func -DemoGj_InitRubblePile2 = 0x8096C760; // type:func -func_8097A238 = 0x8096C790; // type:func -DemoGj_SpawnSmokePreBattle2 = 0x8096C80C; // type:func -func_8097A320 = 0x8096C87C; // type:func -func_8097A36C = 0x8096C8D0; // type:func -DemoGj_Update02 = 0x8096C904; // type:func -DemoGj_Update09 = 0x8096C93C; // type:func -DemoGj_DrawRubble3 = 0x8096C974; // type:func -DemoGj_DrawRotatedRubble3 = 0x8096C998; // type:func -DemoGj_InitRubblePile3 = 0x8096C9BC; // type:func -func_8097A474 = 0x8096C9EC; // type:func -func_8097A4F0 = 0x8096CA68; // type:func -func_8097A53C = 0x8096CABC; // type:func -DemoGj_Update03 = 0x8096CAF0; // type:func -DemoGj_Update10 = 0x8096CB28; // type:func -DemoGj_DrawRubble4 = 0x8096CB60; // type:func -DemoGj_DrawRotatedRubble4 = 0x8096CB84; // type:func -DemoGj_InitRubblePile4 = 0x8096CBA8; // type:func -func_8097A644 = 0x8096CBD8; // type:func -func_8097A6C0 = 0x8096CC54; // type:func -func_8097A70C = 0x8096CCA8; // type:func -DemoGj_Update04 = 0x8096CCDC; // type:func -DemoGj_Update11 = 0x8096CD14; // type:func -DemoGj_DrawRubble5 = 0x8096CD4C; // type:func -DemoGj_DrawRotatedRubble5 = 0x8096CD70; // type:func -DemoGj_InitRubblePile5 = 0x8096CD94; // type:func -func_8097A814 = 0x8096CDC4; // type:func -func_8097A890 = 0x8096CE40; // type:func -func_8097A8DC = 0x8096CE94; // type:func -DemoGj_Update05 = 0x8096CEC8; // type:func -DemoGj_Update12 = 0x8096CF00; // type:func -DemoGj_DrawRubble6 = 0x8096CF38; // type:func -DemoGj_DrawRotatedRubble6 = 0x8096CF5C; // type:func -DemoGj_InitRubblePile6 = 0x8096CF80; // type:func -func_8097A9E4 = 0x8096CFB0; // type:func -func_8097AA60 = 0x8096D02C; // type:func -func_8097AAAC = 0x8096D080; // type:func -DemoGj_Update06 = 0x8096D0B4; // type:func -DemoGj_Update13 = 0x8096D0EC; // type:func -DemoGj_DrawRubble7 = 0x8096D124; // type:func -DemoGj_DrawRotatedRubble7 = 0x8096D148; // type:func -DemoGj_InitRubblePile7 = 0x8096D16C; // type:func -func_8097ABB4 = 0x8096D19C; // type:func -DemoGj_SpawnSmokePreBattle3 = 0x8096D218; // type:func -func_8097AC9C = 0x8096D288; // type:func -func_8097ACE8 = 0x8096D2DC; // type:func -DemoGj_Update07 = 0x8096D310; // type:func -DemoGj_Update14 = 0x8096D348; // type:func -DemoGj_DrawRubbleTall = 0x8096D380; // type:func -DemoGj_DrawRotatedRubbleTall = 0x8096D3A4; // type:func -DemoGj_InitRubbleAroundArena = 0x8096D3C8; // type:func -DemoGj_UpdateRubbleAroundArena = 0x8096D3F8; // type:func -DemoGj_DrawRubbleAroundArena = 0x8096D448; // type:func -DemoGj_InitDestructableRubble1 = 0x8096D46C; // type:func -func_8097AEE8 = 0x8096D4F4; // type:func -DemoGj_SetCylindersAsAC = 0x8096D688; // type:func -DemoGj_DirectedExplosion = 0x8096D6F4; // type:func -func_8097B128 = 0x8096D730; // type:func -DemoGj_HasCylinderAnyExploded = 0x8096D7C0; // type:func -func_8097B22C = 0x8096D83C; // type:func -DemoGj_Update15 = 0x8096D954; // type:func -DemoGj_Update18 = 0x8096D98C; // type:func -DemoGj_DrawDestructableRubble1 = 0x8096D9AC; // type:func -DemoGj_InitDestructableRubble2 = 0x8096D9D0; // type:func -func_8097B450 = 0x8096DA58; // type:func -DemoGj_SetCylindersAsAC2 = 0x8096DBA8; // type:func -DemoGj_HasCylinderAnyExploded2 = 0x8096DC14; // type:func -DemoGj_DirectedExplosion2 = 0x8096DC90; // type:func -func_8097B6C4 = 0x8096DCCC; // type:func -func_8097B750 = 0x8096DD5C; // type:func -DemoGj_Update16 = 0x8096DE74; // type:func -DemoGj_Update19 = 0x8096DEAC; // type:func -DemoGj_DemoGj_InitDestructableRubble2 = 0x8096DECC; // type:func -DemoGj_InitDestructableRubbleTall = 0x8096DEF0; // type:func -DemoGj_DirectedDoubleExplosion = 0x8096DF3C; // type:func -func_8097B9BC = 0x8096DFC0; // type:func -func_8097BA48 = 0x8096E050; // type:func -DemoGj_Update17 = 0x8096E184; // type:func -DemoGj_Update20 = 0x8096E1BC; // type:func -DemoGj_DemoGj_InitDestructableRubbleTall = 0x8096E1DC; // type:func -DemoGj_Update = 0x8096E200; // type:func -DemoGj_Init = 0x8096E248; // type:func -DemoGj_DrawNothing = 0x8096E350; // type:func -DemoGj_Draw = 0x8096E360; // type:func -DemoGo_GetCueChannel = 0x8096EBD0; // type:func -func_8097C8A8 = 0x8096EC0C; // type:func -DemoGo_Destroy = 0x8096EC78; // type:func -func_8097C930 = 0x8096EC9C; // type:func -func_8097C9B8 = 0x8096ED24; // type:func -func_8097C9DC = 0x8096ED4C; // type:func -func_8097CA30 = 0x8096EDA4; // type:func -func_8097CA78 = 0x8096EDEC; // type:func -func_8097CB0C = 0x8096EE84; // type:func -func_8097CC08 = 0x8096EF84; // type:func -func_8097CCC0 = 0x8096F03C; // type:func -func_8097CCE0 = 0x8096F05C; // type:func -DemoGo_UpdateSkelAnime = 0x8096F114; // type:func -func_8097CDB0 = 0x8096F138; // type:func -func_8097CE10 = 0x8096F1A4; // type:func -func_8097CE20 = 0x8096F1B8; // type:func -func_8097CE78 = 0x8096F214; // type:func -func_8097CEEC = 0x8096F28C; // type:func -func_8097CF20 = 0x8096F2C4; // type:func -func_8097CF9C = 0x8096F340; // type:func -func_8097CFDC = 0x8096F380; // type:func -func_8097CFFC = 0x8096F3A0; // type:func -func_8097D01C = 0x8096F3C0; // type:func -func_8097D058 = 0x8096F404; // type:func -func_8097D088 = 0x8096F43C; // type:func -func_8097D0D0 = 0x8096F48C; // type:func -func_8097D130 = 0x8096F4F4; // type:func -DemoGo_Update = 0x8096F554; // type:func -DemoGo_Init = 0x8096F59C; // type:func -func_8097D290 = 0x8096F648; // type:func -func_8097D29C = 0x8096F658; // type:func -DemoGo_Draw = 0x8096F768; // type:func -DemoGt_Destroy = 0x8096F920; // type:func -DemoGt_PlayEarthquakeSfx = 0x8096F968; // type:func -DemoGt_PlayExplosion1Sfx = 0x8096F988; // type:func -DemoGt_PlayExplosion2Sfx = 0x8096F9AC; // type:func -DemoGt_Rumble = 0x8096F9D0; // type:func -DemoGt_SpawnDust = 0x8096FA00; // type:func -func_8097D7D8 = 0x8096FA90; // type:func -DemoGt_SpawnCloudRing = 0x8096FC18; // type:func -DemoGt_SpawnExplosionWithSound = 0x8096FC78; // type:func -DemoGt_SpawnExplosionNoSound = 0x8096FD2C; // type:func -func_8097DAC8 = 0x8096FD80; // type:func -func_8097DD28 = 0x8096FFE0; // type:func -func_8097DF70 = 0x80970228; // type:func -func_8097E1D4 = 0x8097048C; // type:func -func_8097E454 = 0x8097070C; // type:func -DemoGt_IsCutsceneIdle = 0x8097095C; // type:func -DemoGt_GetCue = 0x8097097C; // type:func -func_8097E704 = 0x809709C8; // type:func -func_8097E744 = 0x80970A08; // type:func -func_8097E824 = 0x80970AE8; // type:func -func_8097ED64 = 0x80971024; // type:func -DemoGt_IsCutsceneLayer = 0x8097105C; // type:func -func_8097EDD8 = 0x80971084; // type:func -func_8097EE44 = 0x809710FC; // type:func -func_8097EEA8_Init0 = 0x80971160; // type:func -func_8097EF00 = 0x809711B8; // type:func -func_8097EF34 = 0x809711EC; // type:func -func_8097EF40 = 0x809711FC; // type:func -func_8097F0AC = 0x80971354; // type:func -func_8097F19C = 0x80971438; // type:func -func_8097F1D8 = 0x8097147C; // type:func -func_8097F280 = 0x80971524; // type:func -func_8097F3EC = 0x80971698; // type:func -DemoGt_Update0 = 0x809716D8; // type:func -DemoGt_Update8 = 0x80971750; // type:func -DemoGt_Draw1 = 0x809717C8; // type:func -func_8097F904_Init1 = 0x80971B8C; // type:func -func_8097F960 = 0x80971BE8; // type:func -func_8097F96C = 0x80971BF8; // type:func -func_8097FA1C = 0x80971C8C; // type:func -func_8097FAFC = 0x80971D54; // type:func -func_8097FC1C = 0x80971E5C; // type:func -func_8097FCE4 = 0x80971F10; // type:func -func_8097FD70 = 0x80971F8C; // type:func -func_8097FDDC = 0x80972000; // type:func -func_8097FED8 = 0x80972100; // type:func -DemoGt_Update1 = 0x80972140; // type:func -DemoGt_Update9 = 0x80972190; // type:func -DemoGt_Draw2 = 0x809721D8; // type:func -func_80980110_Init2 = 0x8097230C; // type:func -func_8098016C = 0x80972368; // type:func -func_80980178 = 0x80972378; // type:func -func_80980184 = 0x80972388; // type:func -func_80980218 = 0x8097241C; // type:func -func_809802AC = 0x809724B0; // type:func -func_8098036C = 0x80972574; // type:func -func_80980430 = 0x8097263C; // type:func -func_80980504 = 0x809726FC; // type:func -func_809805D8 = 0x809727BC; // type:func -func_809806B8 = 0x80972884; // type:func -func_8098078C = 0x80972944; // type:func -func_8098085C = 0x80972A00; // type:func -func_809809C0 = 0x80972B4C; // type:func -func_80980AD4 = 0x80972C50; // type:func -func_80980B68 = 0x80972CD0; // type:func -func_80980BFC = 0x80972D50; // type:func -func_80980C90 = 0x80972DD0; // type:func -func_80980D74 = 0x80972EBC; // type:func -DemoGt_Update2 = 0x80972EFC; // type:func -DemoGt_Update10 = 0x80972F40; // type:func -DemoGt_Draw3 = 0x80972F7C; // type:func -func_80980F00_Init5 = 0x80973018; // type:func -func_80980F58 = 0x80973070; // type:func -func_80980F8C = 0x809730A8; // type:func -func_8098103C = 0x8097315C; // type:func -DemoGt_Update3 = 0x809731C0; // type:func -DemoGt_Update11 = 0x80973204; // type:func -DemoGt_Update16 = 0x80973240; // type:func -DemoGt_Draw4 = 0x809732D8; // type:func -func_809813CC_Init6 = 0x809734C0; // type:func -func_80981424 = 0x80973518; // type:func -func_80981458 = 0x80973550; // type:func -func_80981524 = 0x80973608; // type:func -DemoGt_Update4 = 0x8097366C; // type:func -DemoGt_Update12 = 0x809736B0; // type:func -DemoGt_Update17 = 0x809736EC; // type:func -DemoGt_Draw5 = 0x80973784; // type:func -func_809818A4_Init7 = 0x80973960; // type:func -func_809818FC = 0x809739B8; // type:func -func_80981930 = 0x809739F0; // type:func -DemoGt_Update5 = 0x80973A54; // type:func -DemoGt_Update13 = 0x80973A98; // type:func -DemoGt_Update18 = 0x80973AD4; // type:func -DemoGt_Draw6 = 0x80973B6C; // type:func -func_80981C94_Init23 = 0x80973D24; // type:func -func_80981CEC = 0x80973D7C; // type:func -func_80981D20 = 0x80973DB4; // type:func -func_80981DC8 = 0x80973E5C; // type:func -DemoGt_Update6 = 0x80973E9C; // type:func -DemoGt_Update14 = 0x80973EE0; // type:func -DemoGt_Draw7 = 0x80973F24; // type:func -func_80982054_Init24 = 0x809740BC; // type:func -func_809820AC = 0x80974114; // type:func -func_809820E0 = 0x8097414C; // type:func -func_80982188 = 0x809741F4; // type:func -DemoGt_Update7 = 0x80974234; // type:func -DemoGt_Update15 = 0x80974278; // type:func -DemoGt_Draw8 = 0x809742BC; // type:func -DemoGt_Update = 0x80974458; // type:func -DemoGt_Init = 0x809744A0; // type:func -DemoGt_Draw0 = 0x80974564; // type:func -DemoGt_Draw = 0x80974574; // type:func -DemoIk_Destroy = 0x80974F30; // type:func -DemoIk_BgCheck = 0x80974F40; // type:func -DemoIk_UpdateSkelAnime = 0x80974F88; // type:func -DemoIk_GetCue = 0x80974FAC; // type:func -DemoIk_CheckForCue = 0x80974FD4; // type:func -DemoIk_SetMove = 0x80975014; // type:func -DemoIk_EndMove = 0x80975054; // type:func -DemoIk_GetCurFrame = 0x80975068; // type:func -DemoIk_SetColors = 0x80975074; // type:func -DemoIk_GetCueChannel = 0x80975118; // type:func -DemoIk_Type1PlaySfx = 0x80975144; // type:func -DemoIk_SpawnDeadDb = 0x80975244; // type:func -DemoIk_MoveToStartPos = 0x809753E8; // type:func -DemoIk_Type1Init = 0x80975468; // type:func -func_8098393C = 0x80975584; // type:func -func_8098394C = 0x80975598; // type:func -func_809839AC = 0x809755FC; // type:func -func_809839D0 = 0x80975624; // type:func -DemoIk_Type1Action0 = 0x809756E4; // type:func -DemoIk_Type1Action1 = 0x80975704; // type:func -DemoIk_Type1Action2 = 0x8097573C; // type:func -DemoIk_Type1PostLimbDraw = 0x809757A4; // type:func -DemoIk_Type1Draw = 0x809758A0; // type:func -DemoIk_Type2Init = 0x809759F8; // type:func -DemoIk_Type2PlaySfxOnFrame = 0x80975B00; // type:func -DemoIk_Type2PlaySfx = 0x80975B60; // type:func -func_80983FDC = 0x80975BB0; // type:func -func_80983FEC = 0x80975BC4; // type:func -func_8098402C = 0x80975C04; // type:func -func_80984048 = 0x80975C24; // type:func -DemoIk_Type2Action0 = 0x80975CEC; // type:func -DemoIk_Type2Action1 = 0x80975D0C; // type:func -DemoIk_Type2Action2 = 0x80975D2C; // type:func -DemoIk_Type2OverrideLimbDraw = 0x80975D68; // type:func -DemoIk_Type2PostLimbDraw = 0x80975DC4; // type:func -DemoIk_Type2Draw = 0x80975F94; // type:func -DemoIk_Update = 0x809760F8; // type:func -DemoIk_DrawNothing = 0x80976140; // type:func -DemoIk_Draw = 0x80976150; // type:func -DemoIk_Init = 0x80976198; // type:func -func_80984BE0 = 0x80976440; // type:func -DemoIm_InitCollider = 0x809764C8; // type:func -DemoIm_DestroyCollider = 0x80976514; // type:func -DemoIm_UpdateCollider = 0x80976540; // type:func -func_80984DB8 = 0x80976584; // type:func -func_80984E58 = 0x80976628; // type:func -func_80984F10 = 0x809766E0; // type:func -func_80984F94 = 0x80976768; // type:func -DemoIm_UpdateBgCheckInfo = 0x809767F0; // type:func -DemoIm_UpdateSkelAnime = 0x80976838; // type:func -DemoIm_IsCutsceneIdle = 0x8097685C; // type:func -DemoIm_GetCue = 0x8097687C; // type:func -func_809850E8 = 0x809768C8; // type:func -func_80985134 = 0x80976914; // type:func -func_80985180 = 0x80976960; // type:func -func_80985200 = 0x809769E0; // type:func -DemoIm_ChangeAnim = 0x80976A60; // type:func -func_80985310 = 0x80976AF0; // type:func -func_80985358 = 0x80976B38; // type:func -func_809853B4 = 0x80976B94; // type:func -func_80985430 = 0x80976C10; // type:func -func_8098544C = 0x80976C30; // type:func -func_809854DC = 0x80976CCC; // type:func -func_8098557C = 0x80976D6C; // type:func -func_809855A8 = 0x80976D98; // type:func -func_80985640 = 0x80976E30; // type:func -func_809856AC = 0x80976E9C; // type:func -func_809856F8 = 0x80976EE8; // type:func -func_80985718 = 0x80976F08; // type:func -func_80985738 = 0x80976F28; // type:func -func_80985770 = 0x80976F64; // type:func -func_809857B0 = 0x80976FAC; // type:func -func_809857F0 = 0x80976FF0; // type:func -func_80985830 = 0x80977038; // type:func -func_80985860 = 0x8097706C; // type:func -func_809858A8 = 0x809770B0; // type:func -DemoIm_SpawnLightBall = 0x809770D0; // type:func -func_80985948 = 0x80977150; // type:func -func_809859E0 = 0x809771EC; // type:func -func_80985B34 = 0x80977340; // type:func -func_80985C10 = 0x80977424; // type:func -func_80985C40 = 0x80977444; // type:func -func_80985C94 = 0x8097748C; // type:func -DemoIm_DrawTranslucent = 0x809774D4; // type:func -func_80985E60 = 0x8097761C; // type:func -func_80985EAC = 0x80977668; // type:func -func_80985EF4 = 0x809776B0; // type:func -func_80985F54 = 0x80977710; // type:func -func_80985F64 = 0x80977724; // type:func -func_80985FE8 = 0x809777A8; // type:func -func_8098604C = 0x8097780C; // type:func -func_809860C8 = 0x80977888; // type:func -func_809860DC = 0x809778A0; // type:func -func_80986148 = 0x8097790C; // type:func -func_809861C4 = 0x80977988; // type:func -func_8098629C = 0x80977A4C; // type:func -func_809862E0 = 0x80977A90; // type:func -func_809863BC = 0x80977B58; // type:func -func_809863DC = 0x80977B78; // type:func -func_80986430 = 0x80977BD4; // type:func -func_80986494 = 0x80977C40; // type:func -func_809864D4 = 0x80977C88; // type:func -func_8098652C = 0x80977CE8; // type:func -func_80986570 = 0x80977D2C; // type:func -func_809865F8 = 0x80977DB4; // type:func -func_80986700 = 0x80977EC4; // type:func -func_80986710 = 0x80977ED8; // type:func -func_80986794 = 0x80977F5C; // type:func -func_8098680C = 0x80977FD4; // type:func -func_809868E8 = 0x8097809C; // type:func -func_80986908 = 0x809780BC; // type:func -func_80986948 = 0x80978104; // type:func -func_809869B0 = 0x80978174; // type:func -func_809869F8 = 0x809781B8; // type:func -func_80986A5C = 0x8097821C; // type:func -func_80986AD0 = 0x80978290; // type:func -func_80986B2C = 0x809782EC; // type:func -func_80986BA0 = 0x80978360; // type:func -func_80986BE4 = 0x809783A4; // type:func -func_80986BF8 = 0x809783B8; // type:func -func_80986C30 = 0x809783F0; // type:func -func_80986CC8 = 0x80978494; // type:func -func_80986CFC = 0x809784C8; // type:func -func_80986D40 = 0x80978510; // type:func -func_80986DC8 = 0x80978578; // type:func -func_80986E20 = 0x809785D4; // type:func -func_80986E40 = 0x809785F4; // type:func -func_80986EAC = 0x80978668; // type:func -func_80986F08 = 0x809786CC; // type:func -func_80986F28 = 0x809786EC; // type:func -func_80986F88 = 0x80978754; // type:func -func_80986FA8 = 0x80978778; // type:func -func_80987018 = 0x809787F0; // type:func -func_80987064 = 0x80978838; // type:func -func_809870F0 = 0x809788C4; // type:func -func_80987128 = 0x809788FC; // type:func -func_80987174 = 0x80978948; // type:func -func_809871B4 = 0x80978988; // type:func -func_809871E8 = 0x809789BC; // type:func -func_80987288 = 0x80978A48; // type:func -func_809872A8 = 0x80978A68; // type:func -func_809872F0 = 0x80978AB4; // type:func -func_80987330 = 0x80978AFC; // type:func -DemoIm_Update = 0x80978B40; // type:func -DemoIm_Init = 0x80978B88; // type:func -DemoIm_Destroy = 0x80978CB0; // type:func -DemoIm_OverrideLimbDraw = 0x80978CD0; // type:func -DemoIm_PostLimbDraw = 0x80978D80; // type:func -DemoIm_DrawNothing = 0x80978E0C; // type:func -DemoIm_DrawSolid = 0x80978E1C; // type:func -DemoIm_Draw = 0x80978F60; // type:func -DemoKankyo_SetupAction = 0x8097A3B0; // type:func -DemoKankyo_Init = 0x8097A3BC; // type:func -DemoKankyo_Destroy = 0x8097A7A0; // type:func -DemoKankyo_SetupType = 0x8097A7AC; // type:func -DemoKankyo_DoNothing = 0x8097ABE4; // type:func -DemoKankyo_DoNothing2 = 0x8097ABF4; // type:func -DemoKankyo_SetPosFromCue = 0x8097AC1C; // type:func -DemoKankyo_UpdateRock = 0x8097AD0C; // type:func -DemoKankyo_UpdateClouds = 0x8097AD84; // type:func -DemoKankyo_UpdateDoorOfTime = 0x8097ADD0; // type:func -DemoKankyo_KillDoorOfTimeCollision = 0x8097AE6C; // type:func -DemoKankyo_Update = 0x8097AE98; // type:func -DemoKankyo_Draw = 0x8097AEBC; // type:func -func_80989B54 = 0x8097B064; // type:func -DemoKankyo_DrawRain = 0x8097B234; // type:func -DemoKankyo_DrawRock = 0x8097B840; // type:func -DemoKankyo_DrawClouds = 0x8097B984; // type:func -DemoKankyo_DrawDoorOfTime = 0x8097BCB0; // type:func -DemoKankyo_DrawLightPlane = 0x8097BDC0; // type:func -DemoKankyo_Vec3fCopy = 0x8097BEA8; // type:func -DemoKankyo_AddVecGeoToVec3f = 0x8097BEC8; // type:func -DemoKankyo_Vec3fAddPosRot = 0x8097BF48; // type:func -DemoKankyo_DrawWarpSparkles = 0x8097BFA4; // type:func -DemoKankyo_DrawSparkles = 0x8097C700; // type:func -DemoKekkai_CheckEventFlag = 0x8097E0A0; // type:func -DemoKekkai_Init = 0x8097E0E4; // type:func -DemoKekkai_Destroy = 0x8097E314; // type:func -DemoKekkai_SpawnParticles = 0x8097E354; // type:func -DemoKekkai_TowerBarrier = 0x8097E5A8; // type:func -DemoKekkai_Update = 0x8097E6C4; // type:func -DemoKekkai_TrialBarrierDispel = 0x8097E7F0; // type:func -DemoKekkai_TrialBarrierIdle = 0x8097E950; // type:func -DemoKekkai_DrawTrialBarrier = 0x8097EA74; // type:func -DemoKekkai_DrawTowerBarrier = 0x8097EF88; // type:func -DemoSa_Destroy = 0x8097F390; // type:func -func_8098E480 = 0x8097F3B4; // type:func -DemoSa_SetEyeIndex = 0x8097F43C; // type:func -DemoSa_SetMouthIndex = 0x8097F454; // type:func -func_8098E5C8 = 0x8097F46C; // type:func -DemoSa_UpdateSkelAnime = 0x8097F4B4; // type:func -DemoSa_GetCue = 0x8097F4D8; // type:func -func_8098E654 = 0x8097F500; // type:func -func_8098E6A0 = 0x8097F54C; // type:func -func_8098E6EC = 0x8097F598; // type:func -func_8098E76C = 0x8097F618; // type:func -func_8098E7FC = 0x8097F6A8; // type:func -func_8098E86C = 0x8097F718; // type:func -func_8098E8C8 = 0x8097F774; // type:func -func_8098E944 = 0x8097F7F0; // type:func -func_8098E960 = 0x8097F810; // type:func -func_8098E9EC = 0x8097F8A8; // type:func -func_8098EA3C = 0x8097F8F8; // type:func -func_8098EA68 = 0x8097F924; // type:func -func_8098EB00 = 0x8097F9BC; // type:func -func_8098EB6C = 0x8097FA28; // type:func -func_8098EBB8 = 0x8097FA74; // type:func -func_8098EBD8 = 0x8097FA94; // type:func -func_8098EBF8 = 0x8097FAB4; // type:func -func_8098EC28 = 0x8097FAE8; // type:func -func_8098EC60 = 0x8097FB28; // type:func -func_8098EC94 = 0x8097FB60; // type:func -func_8098ECCC = 0x8097FBA0; // type:func -func_8098ECF4 = 0x8097FBCC; // type:func -func_8098EDB0 = 0x8097FC88; // type:func -func_8098EE08 = 0x8097FCE0; // type:func -func_8098EE28 = 0x8097FD00; // type:func -func_8098EEA8 = 0x8097FD80; // type:func -func_8098EEFC = 0x8097FDD4; // type:func -func_8098F050 = 0x8097FF28; // type:func -func_8098F0E8 = 0x8097FFC4; // type:func -func_8098F118 = 0x8097FFE4; // type:func -func_8098F16C = 0x8098002C; // type:func -DemoSa_DrawXlu = 0x80980074; // type:func -func_8098F390 = 0x80980214; // type:func -func_8098F3F0 = 0x80980274; // type:func -func_8098F420 = 0x809802A8; // type:func -func_8098F480 = 0x80980304; // type:func -func_8098F50C = 0x80980390; // type:func -func_8098F544 = 0x809803C8; // type:func -func_8098F590 = 0x80980414; // type:func -func_8098F5D0 = 0x80980454; // type:func -func_8098F610 = 0x80980494; // type:func -func_8098F654 = 0x809804DC; // type:func -func_8098F714 = 0x80980588; // type:func -func_8098F734 = 0x809805A8; // type:func -func_8098F77C = 0x809805F4; // type:func -func_8098F7BC = 0x8098063C; // type:func -func_8098F7FC = 0x80980684; // type:func -func_8098F83C = 0x809806C8; // type:func -func_8098F8F8 = 0x80980784; // type:func -func_8098F984 = 0x80980810; // type:func -func_8098F998 = 0x80980828; // type:func -func_8098FA2C = 0x809808BC; // type:func -func_8098FA84 = 0x80980914; // type:func -func_8098FAE0 = 0x80980970; // type:func -func_8098FB34 = 0x809809C4; // type:func -func_8098FB68 = 0x809809F8; // type:func -func_8098FC44 = 0x80980AC0; // type:func -func_8098FC64 = 0x80980AE0; // type:func -func_8098FC9C = 0x80980B1C; // type:func -func_8098FCD4 = 0x80980B5C; // type:func -func_8098FD0C = 0x80980B9C; // type:func -DemoSa_Update = 0x80980BE8; // type:func -DemoSa_Init = 0x80980C30; // type:func -DemoSa_OverrideLimbDraw = 0x80980CF8; // type:func -DemoSa_DrawNothing = 0x80980D30; // type:func -DemoSa_DrawOpa = 0x80980D40; // type:func -DemoSa_Draw = 0x80980ED4; // type:func -DemoShd_SetupAction = 0x80981EB0; // type:func -DemoShd_Init = 0x80981EBC; // type:func -DemoShd_Destroy = 0x80981F0C; // type:func -func_80991298 = 0x80981F1C; // type:func -DemoShd_Update = 0x80982074; // type:func -DemoShd_Draw = 0x80982098; // type:func -DemoTreLgt_Init = 0x809842C0; // type:func -DemoTreLgt_Destroy = 0x8098431C; // type:func -func_80993754 = 0x80984348; // type:func -func_8099375C = 0x80984354; // type:func -func_809937B4 = 0x809843AC; // type:func -func_80993848 = 0x80984444; // type:func -DemoTreLgt_Update = 0x809846F8; // type:func -DemoTreLgt_OverrideLimbDraw = 0x8098472C; // type:func -DemoTreLgt_Draw = 0x80984880; // type:func -DoorAna_SetupAction = 0x809849D0; // type:func -DoorAna_Init = 0x809849DC; // type:func -DoorAna_Destroy = 0x80984A98; // type:func -DoorAna_WaitClosed = 0x80984AD4; // type:func -DoorAna_WaitOpen = 0x80984C0C; // type:func -DoorAna_GrabPlayer = 0x80984DC0; // type:func -DoorAna_Update = 0x80984E6C; // type:func -DoorAna_Draw = 0x80984EC0; // type:func -DoorGerudo_Init = 0x80985040; // type:func -DoorGerudo_Destroy = 0x809850F0; // type:func -func_809946BC = 0x80985124; // type:func -func_80994750 = 0x809851BC; // type:func -func_8099485C = 0x809852C8; // type:func -func_8099496C = 0x809853D8; // type:func -func_809949C8 = 0x80985434; // type:func -DoorGerudo_Update = 0x80985490; // type:func -DoorGerudo_Draw = 0x809854B4; // type:func -DoorKiller_Init = 0x80985630; // type:func -DoorKiller_Destroy = 0x80985988; // type:func -DoorKiller_SpawnRubble = 0x809859D8; // type:func -DoorKiller_FallAsRubble = 0x80985B80; // type:func -DoorKiller_IsHit = 0x80985C40; // type:func -DoorKiller_SetAC = 0x80985C74; // type:func -DoorKiller_Die = 0x80985CD4; // type:func -DoorKiller_RiseBackUp = 0x80985D24; // type:func -DoorKiller_FallOver = 0x80985ED4; // type:func -DoorKiller_Wobble = 0x809862A0; // type:func -DoorKiller_WaitBeforeWobble = 0x80986410; // type:func -DoorKiller_Wait = 0x80986444; // type:func -DoorKiller_UpdateTexture = 0x809866A4; // type:func -DoorKiller_WaitForObject = 0x80986738; // type:func -DoorKiller_Update = 0x809867EC; // type:func -DoorKiller_SetTexture = 0x80986810; // type:func -DoorKiller_DrawDoor = 0x8098683C; // type:func -DoorKiller_DrawRubble = 0x80986898; // type:func -DoorShutter_SetupAction = 0x80986BA0; // type:func -DoorShutter_SetupDoor = 0x80986BB0; // type:func -DoorShutter_Init = 0x80986D98; // type:func -DoorShutter_Destroy = 0x80986FB0; // type:func -DoorShutter_WaitForObject = 0x80987020; // type:func -DoorShutter_GetPlayerDistance = 0x8098715C; // type:func -DoorShutter_GetPlayerSide = 0x809871F4; // type:func -DoorShutter_WaitClear = 0x80987374; // type:func -DoorShutter_Unopenable = 0x80987420; // type:func -DoorShutter_Idle = 0x80987430; // type:func -DoorShutter_InitOpeningDoorCam = 0x80987584; // type:func -DoorShutter_UpdateOpening = 0x8098763C; // type:func -DoorShutter_UpdateBarsClosed = 0x80987734; // type:func -DoorShutter_BarAndWaitSwitchFlag = 0x80987818; // type:func -DoorShutter_UnbarredCheckSwitchFlag = 0x809878D0; // type:func -DoorShutter_Open = 0x8098793C; // type:func -DoorShutter_Unbar = 0x80987A8C; // type:func -DoorShutter_SetupClosed = 0x80987B5C; // type:func -DoorShutter_Close = 0x80987D28; // type:func -DoorShutter_JabuDoorClose = 0x80987E6C; // type:func -DoorShutter_WaitPlayerSurprised = 0x80987EB0; // type:func -DoorShutter_GohmaBlockFall = 0x80987F08; // type:func -DoorShutter_GohmaBlockBounce = 0x80988004; // type:func -DoorShutter_PhantomGanonBarsRaise = 0x80988090; // type:func -DoorShutter_Update = 0x80988120; // type:func -DoorShutter_DrawJabuJabuDoor = 0x80988174; // type:func -DoorShutter_ShouldDraw = 0x80988364; // type:func -DoorShutter_Draw = 0x80988410; // type:func -DoorShutter_RequestQuakeAndRumble = 0x80988964; // type:func -DoorToki_Init = 0x80988E60; // type:func -DoorToki_Destroy = 0x80988EC8; // type:func -DoorToki_Update = 0x80988EFC; // type:func -DoorWarp1_SetupAction = 0x80988FC0; // type:func -DoorWarp1_Init = 0x80988FCC; // type:func -DoorWarp1_Destroy = 0x8098913C; // type:func -DoorWarp1_SetupWarp = 0x809891C4; // type:func -DoorWarp1_SetupAdultDungeonWarp = 0x809894CC; // type:func -DoorWarp1_SetupBlueCrystal = 0x80989698; // type:func -DoorWarp1_SetupPurpleCrystal = 0x80989830; // type:func -DoorWarp1_SetPlayerPos = 0x809899D0; // type:func -DoorWarp1_BlueCrystal = 0x80989A08; // type:func -func_80999214 = 0x80989A54; // type:func -func_80999348 = 0x80989B88; // type:func -DoorWarp1_FloatPlayer = 0x80989C50; // type:func -DoorWarp1_PurpleCrystal = 0x80989C6C; // type:func -DoorWarp1_ChooseInitialAction = 0x80989D4C; // type:func -DoorWarp1_AwaitClearFlag = 0x80989DC4; // type:func -func_809995D4 = 0x80989E1C; // type:func -DoorWarp1_WarpAppear = 0x80989F6C; // type:func -func_809998A4 = 0x8098A0F0; // type:func -DoorWarp1_PlayerInRange = 0x8098A188; // type:func -DoorWarp1_ChildWarpIdle = 0x8098A1F4; // type:func -DoorWarp1_ChildWarpOut = 0x8098A2C0; // type:func -DoorWarp1_RutoWarpIdle = 0x8098A6B4; // type:func -func_80999EE0 = 0x8098A734; // type:func -func_80999FE4 = 0x8098A83C; // type:func -DoorWarp1_RutoWarpOut = 0x8098A8F4; // type:func -func_8099A3A4 = 0x8098AC00; // type:func -DoorWarp1_AdultWarpIdle = 0x8098ACCC; // type:func -func_8099A508 = 0x8098AD6C; // type:func -DoorWarp1_AdultWarpOut = 0x8098AE50; // type:func -DoorWarp1_Destination = 0x8098B734; // type:func -DoorWarp1_DoNothing = 0x8098B864; // type:func -func_8099B020 = 0x8098B874; // type:func -DoorWarp1_Update = 0x8098B930; // type:func -DoorWarp1_DrawBlueCrystal = 0x8098B994; // type:func -DoorWarp1_DrawPurpleCrystal = 0x8098BB64; // type:func -DoorWarp1_DrawWarp = 0x8098BDE8; // type:func -DoorWarp1_Draw = 0x8098CC94; // type:func -EfcErupc_SetupAction = 0x8098D2D0; // type:func -EfcErupc_Init = 0x8098D2DC; // type:func -EfcErupc_Destroy = 0x8098D348; // type:func -EfcErupc_UpdateAction = 0x8098D358; // type:func -EfcErupc_Update = 0x8098D5A4; // type:func -EfcErupc_Draw = 0x8098D5E0; // type:func -EfcErupc_DrawEffects = 0x8098D920; // type:func -EfcErupc_UpdateEffects = 0x8098DADC; // type:func -EfcErupc_SpawnEffect = 0x8098DC00; // type:func -EfcErupc_InitEffects = 0x8098DCCC; // type:func -EffDust_SetupAction = 0x8098DDC0; // type:func -EffDust_SetupDraw = 0x8098DDCC; // type:func -EffDust_InitPosAndDistance = 0x8098DDD8; // type:func -EffDust_Init = 0x8098DE50; // type:func -EffDust_Destroy = 0x8098E010; // type:func -EffDust_UpdateFunc_8099DB28 = 0x8098E020; // type:func -EffDust_UpdateFunc_8099DD74 = 0x8098E26C; // type:func -EffDust_UpdateFunc_8099DFC0 = 0x8098E4B8; // type:func -EffDust_Update = 0x8098E9CC; // type:func -EffDust_DrawFunc_8099E4F4 = 0x8098E9F0; // type:func -EffDust_DrawFunc_8099E784 = 0x8098EC44; // type:func -EffDust_Draw = 0x8098EFA8; // type:func -EffectSsBlast_Init = 0x8098F190; // type:func -EffectSsBlast_Draw = 0x8098F2EC; // type:func -EffectSsBlast_Update = 0x8098F458; // type:func -EffectSsBomb_Init = 0x8098F520; // type:func -EffectSsBomb_Draw = 0x8098F5E8; // type:func -EffectSsBomb_Update = 0x8098F820; // type:func -EffectSsBomb2_Init = 0x8098F950; // type:func -EffectSsBomb2_DrawFade = 0x8098FA48; // type:func -EffectSsBomb2_DrawLayered = 0x8098FC38; // type:func -EffectSsBomb2_Update = 0x8098FF6C; // type:func -EffectSsBubble_Init = 0x80990250; // type:func -EffectSsBubble_Draw = 0x809903E0; // type:func -EffectSsBubble_Update = 0x80990534; // type:func -EffectSsDFire_Init = 0x809906D0; // type:func -EffectSsDFire_Draw = 0x8099081C; // type:func -EffectSsDFire_Update = 0x80990A64; // type:func -EffectSsDeadDb_Init = 0x80990BC0; // type:func -EffectSsDeadDb_Draw = 0x80990CDC; // type:func -EffectSsDeadDb_Update = 0x80990EB0; // type:func -EffectSsDeadDd_Init = 0x809910A0; // type:func -EffectSsDeadDd_Draw = 0x80991368; // type:func -EffectSsDeadDd_Update = 0x80991538; // type:func -EffectSsDeadDs_Init = 0x80991630; // type:func -EffectSsDeadDs_Draw = 0x80991718; // type:func -EffectSsDeadDs_Update = 0x809919EC; // type:func -EffectSsDeadSound_Init = 0x80991AB0; // type:func -EffectSsDeadSound_Update = 0x80991B3C; // type:func -EffectSsDtBubble_Init = 0x80991BF0; // type:func -EffectSsDtBubble_Draw = 0x80991E44; // type:func -EffectSsDtBubble_Update = 0x80992084; // type:func -EffectSsDust_Init = 0x80992180; // type:func -EffectSsDust_Draw = 0x80992334; // type:func -EffectSsDust_Update = 0x8099267C; // type:func -EffectSsDust_UpdateFire = 0x80992774; // type:func -EffectSsEnFire_Init = 0x809929C0; // type:func -EffectSsEnFire_Draw = 0x80992B88; // type:func -EffectSsEnFire_Update = 0x80992E90; // type:func -EffectSsEnIce_Init = 0x80993110; // type:func -EffectSsEnIce_Draw = 0x809933B8; // type:func -EffectSsEnIce_UpdateFlying = 0x80993728; // type:func -EffectSsEnIce_Update = 0x80993900; // type:func -EffectSsExtra_Init = 0x809939D0; // type:func -EffectSsExtra_Draw = 0x80993B14; // type:func -EffectSsExtra_Update = 0x80993CC8; // type:func -EffectSsFcircle_Init = 0x80993D90; // type:func -EffectSsFcircle_Draw = 0x80993E50; // type:func -EffectSsFcircle_Update = 0x8099411C; // type:func -EffectSsFhgFlash_Init = 0x80994240; // type:func -EffectSsFhgFlash_DrawLightBall = 0x8099458C; // type:func -EffectSsFhgFlash_DrawShock = 0x80994780; // type:func -EffectSsFhgFlash_UpdateLightBall = 0x8099498C; // type:func -EffectSsFhgFlash_UpdateShock = 0x80994A24; // type:func -EffectSsFireTail_Init = 0x809951C0; // type:func -EffectSsFireTail_Draw = 0x809952DC; // type:func -EffectSsFireTail_Update = 0x809957E4; // type:func -EffectSsGFire_Init = 0x809958C0; // type:func -EffectSsGFire_Draw = 0x80995A00; // type:func -EffectSsGFire_Update = 0x80995AA8; // type:func -EffectSsGMagma_Init = 0x80995B50; // type:func -EffectSsGMagma_Draw = 0x80995CA8; // type:func -EffectSsGMagma_Update = 0x80995D04; // type:func -EffectSsGMagma2_Init = 0x80995DB0; // type:func -EffectSsGMagma2_Draw = 0x80995F7C; // type:func -EffectSsGMagma2_Update = 0x80996194; // type:func -EffectSsGRipple_Init = 0x809962C0; // type:func -EffectSsGRipple_DrawRipple = 0x8099643C; // type:func -EffectSsGRipple_Draw = 0x80996638; // type:func -EffectSsGRipple_Update = 0x80996670; // type:func -EffectSsGSpk_Init = 0x80996820; // type:func -EffectSsGSpk_Draw = 0x80996990; // type:func -EffectSsGSpk_Update = 0x80996B84; // type:func -EffectSsGSpk_UpdateNoAccel = 0x80996C8C; // type:func -EffectSsGSplash_Init = 0x80996DD0; // type:func -EffectSsGSplash_Draw = 0x80996FF0; // type:func -EffectSsGSplash_Update = 0x809970F8; // type:func -EffectSsHahen_CheckForObject = 0x80997280; // type:func -EffectSsHahen_Init = 0x809972F4; // type:func -EffectSsHahen_Draw = 0x80997490; // type:func -EffectSsHahen_DrawGray = 0x809975F0; // type:func -EffectSsHahen_Update = 0x80997798; // type:func -EffectSsHitMark_Init = 0x809978C0; // type:func -EffectSsHitMark_Draw = 0x809979C0; // type:func -EffectSsHitMark_Update = 0x80997BCC; // type:func -EffectSsIcePiece_Init = 0x80997E10; // type:func -EffectSsIcePiece_Draw = 0x80997F5C; // type:func -EffectSsIcePiece_Update = 0x80998190; // type:func -EffectSsIceSmoke_Init = 0x80998250; // type:func -EffectSsIceSmoke_Draw = 0x80998370; // type:func -EffectSsIceSmoke_Update = 0x80998650; // type:func -EffectSsKFire_Init = 0x80998730; // type:func -EffectSsKFire_Draw = 0x80998800; // type:func -EffectSsKFire_Update = 0x80998A68; // type:func -EffectSsKakera_Init = 0x80998B70; // type:func -func_809A9818 = 0x80998CFC; // type:func -EffectSsKakera_Draw = 0x80998D38; // type:func -func_809A9BA8 = 0x80999024; // type:func -func_809A9C10 = 0x80999090; // type:func -func_809A9DC0 = 0x80999240; // type:func -func_809A9DD8 = 0x8099925C; // type:func -func_809A9DEC = 0x80999278; // type:func -func_809A9E28 = 0x809992B4; // type:func -func_809A9E68 = 0x809992F4; // type:func -func_809A9E88 = 0x80999314; // type:func -func_809A9F10 = 0x809993A4; // type:func -func_809A9F4C = 0x809993E4; // type:func -func_809A9FD8 = 0x80999478; // type:func -func_809AA0B8 = 0x80999554; // type:func -func_809AA0EC = 0x8099958C; // type:func -func_809AA230 = 0x809996D4; // type:func -EffectSsKakera_Update = 0x809998D4; // type:func -EffectSsKiraKira_Init = 0x80999C00; // type:func -EffectSsKiraKira_Draw = 0x80999DA0; // type:func -func_809AABF0 = 0x80999FBC; // type:func -func_809AACAC = 0x8099A074; // type:func -func_809AAD6C = 0x8099A130; // type:func -EffectSsLightning_Init = 0x8099A270; // type:func -EffectSsLightning_NewLightning = 0x8099A358; // type:func -EffectSsLightning_Draw = 0x8099A3FC; // type:func -EffectSsLightning_Update = 0x8099A694; // type:func -EffectSsSibuki_Init = 0x8099A940; // type:func -EffectSsSibuki_Draw = 0x8099AAF8; // type:func -EffectSsSibuki_Update = 0x8099ACA8; // type:func -EffectSsSibuki2_Init = 0x8099B010; // type:func -EffectSsSibuki2_Draw = 0x8099B0C0; // type:func -EffectSsSibuki2_Update = 0x8099B2A4; // type:func -EffectSsSolderSrchBall_Init = 0x8099B340; // type:func -EffectSsSolderSrchBall_Update = 0x8099B3C0; // type:func -EffectSsStick_Init = 0x8099B4F0; // type:func -EffectSsStick_Draw = 0x8099B650; // type:func -EffectSsStick_Update = 0x8099B7F0; // type:func -EffectSsStone1_Init = 0x8099B890; // type:func -EffectSsStone1_Draw = 0x8099B91C; // type:func -EffectSsStone1_Update = 0x8099BB18; // type:func -ElfMsg_SetupAction = 0x8099BC10; // type:func -ElfMsg_KillCheck = 0x8099BC1C; // type:func -ElfMsg_Init = 0x8099BD54; // type:func -ElfMsg_Destroy = 0x8099BE48; // type:func -ElfMsg_GetMessageId = 0x8099BE58; // type:func -ElfMsg_CallNaviCuboid = 0x8099BE84; // type:func -ElfMsg_WithinXZDistance = 0x8099BF54; // type:func -ElfMsg_CallNaviCylinder = 0x8099BFA8; // type:func -ElfMsg_Update = 0x8099C070; // type:func -ElfMsg2_SetupAction = 0x8099C200; // type:func -ElfMsg2_KillCheck = 0x8099C20C; // type:func -ElfMsg2_Init = 0x8099C344; // type:func -ElfMsg2_Destroy = 0x8099C404; // type:func -ElfMsg2_GetMessageId = 0x8099C414; // type:func -ElfMsg2_WaitForTextClose = 0x8099C428; // type:func -ElfMsg2_WaitForTextRead = 0x8099C4A8; // type:func -ElfMsg2_WaitUntilActivated = 0x8099C4E0; // type:func -ElfMsg2_Update = 0x8099C55C; // type:func -EnAm_SetupAction = 0x8099C670; // type:func -EnAm_CanMove = 0x8099C67C; // type:func -EnAm_Init = 0x8099C7A8; // type:func -EnAm_Destroy = 0x8099C974; // type:func -EnAm_SpawnEffects = 0x8099C9CC; // type:func -EnAm_SetupSleep = 0x8099CB68; // type:func -EnAm_SetupStatue = 0x8099CC04; // type:func -EnAm_SetupLunge = 0x8099CC94; // type:func -EnAm_SetupCooldown = 0x8099CCF8; // type:func -EnAm_SetupMoveToHome = 0x8099CD64; // type:func -EnAm_SetupRotateToInit = 0x8099CDC0; // type:func -EnAm_SetupRotateToHome = 0x8099CE1C; // type:func -EnAm_SetupRecoilFromDamage = 0x8099CE78; // type:func -EnAm_SetupRicochet = 0x8099CF50; // type:func -EnAm_Sleep = 0x8099D004; // type:func -EnAm_RotateToHome = 0x8099D270; // type:func -EnAm_RotateToInit = 0x8099D374; // type:func -EnAm_MoveToHome = 0x8099D4E0; // type:func -EnAm_RecoilFromDamage = 0x8099D650; // type:func -EnAm_Cooldown = 0x8099D6F4; // type:func -EnAm_Lunge = 0x8099D82C; // type:func -EnAm_Statue = 0x8099DA60; // type:func -EnAm_SetupStunned = 0x8099DCB0; // type:func -EnAm_Stunned = 0x8099DD9C; // type:func -EnAm_Ricochet = 0x8099DE70; // type:func -EnAm_TransformSwordHitbox = 0x8099DF24; // type:func -EnAm_UpdateDamage = 0x8099DFBC; // type:func -EnAm_Update = 0x8099E154; // type:func -EnAm_PostLimbDraw = 0x8099E4F8; // type:func -EnAm_Draw = 0x8099E540; // type:func -EnAni_SetupAction = 0x8099EA70; // type:func -EnAni_Init = 0x8099EA7C; // type:func -EnAni_Destroy = 0x8099EB94; // type:func -EnAni_SetText = 0x8099EBC0; // type:func -func_809B04F0 = 0x8099EBFC; // type:func -func_809B0524 = 0x8099EC34; // type:func -func_809B0558 = 0x8099EC6C; // type:func -func_809B05F0 = 0x8099ED08; // type:func -func_809B064C = 0x8099ED6C; // type:func -func_809B07F8 = 0x8099EF18; // type:func -func_809B0988 = 0x8099F0A8; // type:func -func_809B0994 = 0x8099F0B8; // type:func -func_809B0A28 = 0x8099F14C; // type:func -func_809B0A6C = 0x8099F190; // type:func -EnAni_Update = 0x8099F23C; // type:func -EnAni_OverrideLimbDraw = 0x8099F4B8; // type:func -EnAni_PostLimbDraw = 0x8099F500; // type:func -EnAni_Draw = 0x8099F540; // type:func -EnAnubice_Hover = 0x8099F7E0; // type:func -EnAnubice_AimFireball = 0x8099F884; // type:func -EnAnubice_Init = 0x8099F964; // type:func -EnAnubice_Destroy = 0x8099FA7C; // type:func -EnAnubice_FindFlameCircles = 0x8099FAD8; // type:func -EnAnubice_SetupIdle = 0x8099FB60; // type:func -EnAnubice_Idle = 0x8099FC08; // type:func -EnAnubice_GoToHome = 0x8099FCE8; // type:func -EnAnubice_SetupShootFireball = 0x8099FE38; // type:func -EnAnubice_ShootFireball = 0x8099FEC0; // type:func -EnAnubice_SetupDie = 0x8099FFC0; // type:func -EnAnubice_Die = 0x809A0090; // type:func -EnAnubice_Update = 0x809A0344; // type:func -EnAnubice_OverrideLimbDraw = 0x809A0748; // type:func -EnAnubice_PostLimbDraw = 0x809A0794; // type:func -EnAnubice_Draw = 0x809A0850; // type:func -EnAnubiceFire_Init = 0x809A0A90; // type:func -EnAnubiceFire_Destroy = 0x809A0BB0; // type:func -func_809B26EC = 0x809A0BDC; // type:func -func_809B27D8 = 0x809A0CC8; // type:func -func_809B2B48 = 0x809A1038; // type:func -EnAnubiceFire_Update = 0x809A11E4; // type:func -EnAnubiceFire_Draw = 0x809A13E0; // type:func -EnAnubiceTag_Init = 0x809A1850; // type:func -EnAnubiceTag_Destroy = 0x809A18A0; // type:func -EnAnubiceTag_SpawnAnubis = 0x809A18B0; // type:func -EnAnubiceTag_ManageAnubis = 0x809A1928; // type:func -EnAnubiceTag_Update = 0x809A1A8C; // type:func -EnAnubiceTag_Draw = 0x809A1AB0; // type:func -EnArowTrap_Init = 0x809A1B20; // type:func -EnArowTrap_Destroy = 0x809A1B70; // type:func -EnArowTrap_Update = 0x809A1B80; // type:func -EnArrow_SetupAction = 0x809A1C70; // type:func -EnArrow_Init = 0x809A1C7C; // type:func -EnArrow_Destroy = 0x809A1E84; // type:func -EnArrow_Shoot = 0x809A1F0C; // type:func -func_809B3CEC = 0x809A2024; // type:func -EnArrow_CarryActor = 0x809A210C; // type:func -EnArrow_Fly = 0x809A2310; // type:func -func_809B45E0 = 0x809A2918; // type:func -func_809B4640 = 0x809A2978; // type:func -EnArrow_Update = 0x809A29E0; // type:func -func_809B4800 = 0x809A2B3C; // type:func -EnArrow_Draw = 0x809A2CA4; // type:func -EnAttackNiw_Init = 0x809A3370; // type:func -EnAttackNiw_Destroy = 0x809A34A4; // type:func -func_809B5268 = 0x809A34D8; // type:func -func_809B55EC = 0x809A3860; // type:func -func_809B5670 = 0x809A38E4; // type:func -func_809B59B0 = 0x809A3C24; // type:func -func_809B5C18 = 0x809A3E94; // type:func -EnAttackNiw_Update = 0x809A3F58; // type:func -func_809B5F98 = 0x809A421C; // type:func -EnAttackNiw_Draw = 0x809A4374; // type:func -EnBa_SetupAction = 0x809A45D0; // type:func -EnBa_Init = 0x809A45DC; // type:func -EnBa_Destroy = 0x809A47C8; // type:func -EnBa_SetupIdle = 0x809A47F4; // type:func -EnBa_Idle = 0x809A4834; // type:func -EnBa_SetupFallAsBlob = 0x809A4C60; // type:func -EnBa_FallAsBlob = 0x809A4CD0; // type:func -EnBa_SetupSwingAtPlayer = 0x809A4D90; // type:func -EnBa_SwingAtPlayer = 0x809A4DE4; // type:func -func_809B7174 = 0x809A5404; // type:func -EnBa_RecoilFromDamage = 0x809A5480; // type:func -func_809B75A0 = 0x809A5834; // type:func -EnBa_Die = 0x809A5AB0; // type:func -EnBa_Update = 0x809A5DE0; // type:func -EnBa_Draw = 0x809A5EC0; // type:func -EnBb_SetupAction = 0x809A64A0; // type:func -EnBb_FindExplosive = 0x809A64AC; // type:func -EnBb_SpawnFlameTrail = 0x809A6540; // type:func -EnBb_KillFlameTrail = 0x809A66DC; // type:func -EnBb_Init = 0x809A6728; // type:func -EnBb_Destroy = 0x809A6AD0; // type:func -EnBb_SetupFlameTrail = 0x809A6AFC; // type:func -EnBb_FlameTrail = 0x809A6B50; // type:func -EnBb_SetupDeath = 0x809A6CCC; // type:func -EnBb_Death = 0x809A6D60; // type:func -EnBb_SetupDamage = 0x809A6EDC; // type:func -EnBb_Damage = 0x809A6F9C; // type:func -EnBb_SetupBlue = 0x809A7008; // type:func -EnBb_Blue = 0x809A70C8; // type:func -EnBb_SetupDown = 0x809A78BC; // type:func -EnBb_Down = 0x809A794C; // type:func -EnBb_SetupRed = 0x809A7C20; // type:func -EnBb_Red = 0x809A7D30; // type:func -EnBb_FaceWaypoint = 0x809A80F8; // type:func -EnBb_SetWaypoint = 0x809A812C; // type:func -EnBb_SetupWhite = 0x809A81F8; // type:func -EnBb_White = 0x809A82A8; // type:func -EnBb_InitGreen = 0x809A862C; // type:func -EnBb_SetupGreen = 0x809A8764; // type:func -EnBb_Green = 0x809A87FC; // type:func -EnBb_SetupStunned = 0x809A8E6C; // type:func -EnBb_Stunned = 0x809A8F80; // type:func -EnBb_CollisionCheck = 0x809A9124; // type:func -EnBb_Update = 0x809A9458; // type:func -EnBb_PostLimbDraw = 0x809A96D8; // type:func -EnBb_Draw = 0x809A9728; // type:func -EnBdfire_SetupAction = 0x809AA180; // type:func -EnbdFire_SetupDraw = 0x809AA18C; // type:func -EnBdfire_Init = 0x809AA198; // type:func -EnBdfire_Destroy = 0x809AA3C8; // type:func -func_809BC2A4 = 0x809AA400; // type:func -func_809BC598 = 0x809AA6F4; // type:func -EnBdfire_Update = 0x809AA9E4; // type:func -EnBdfire_DrawFire = 0x809AAA20; // type:func -EnBdfire_Draw = 0x809AABE0; // type:func -EnBigokuta_Init = 0x809AAD20; // type:func -EnBigokuta_Destroy = 0x809AAE8C; // type:func -func_809BCE3C = 0x809AAF00; // type:func -func_809BCEBC = 0x809AAF7C; // type:func -func_809BCF68 = 0x809AB02C; // type:func -func_809BD1C8 = 0x809AB294; // type:func -func_809BD2E4 = 0x809AB3B0; // type:func -func_809BD318 = 0x809AB3E4; // type:func -func_809BD370 = 0x809AB43C; // type:func -func_809BD3AC = 0x809AB478; // type:func -func_809BD3E0 = 0x809AB4B0; // type:func -func_809BD3F8 = 0x809AB4CC; // type:func -func_809BD47C = 0x809AB550; // type:func -func_809BD4A4 = 0x809AB57C; // type:func -func_809BD524 = 0x809AB5FC; // type:func -func_809BD5E0 = 0x809AB6B8; // type:func -func_809BD658 = 0x809AB730; // type:func -func_809BD6B8 = 0x809AB790; // type:func -func_809BD768 = 0x809AB840; // type:func -func_809BD7F0 = 0x809AB8C8; // type:func -func_809BD84C = 0x809AB928; // type:func -func_809BD8DC = 0x809AB9B8; // type:func -func_809BDAE8 = 0x809ABBC4; // type:func -func_809BDB90 = 0x809ABC6C; // type:func -func_809BDC08 = 0x809ABCE4; // type:func -func_809BDF34 = 0x809AC014; // type:func -func_809BDFC8 = 0x809AC0A8; // type:func -func_809BE058 = 0x809AC138; // type:func -func_809BE180 = 0x809AC260; // type:func -func_809BE26C = 0x809AC34C; // type:func -func_809BE3E4 = 0x809AC4C4; // type:func -func_809BE4A4 = 0x809AC584; // type:func -func_809BE518 = 0x809AC5F8; // type:func -func_809BE568 = 0x809AC648; // type:func -func_809BE798 = 0x809AC878; // type:func -EnBigokuta_UpdateDamage = 0x809AC9BC; // type:func -EnBigokuta_Update = 0x809ACAAC; // type:func -EnBigokuta_OverrideLimbDraw = 0x809ACCA4; // type:func -EnBigokuta_Draw = 0x809AD11C; // type:func -EnBili_Init = 0x809AD820; // type:func -EnBili_Destroy = 0x809AD918; // type:func -EnBili_SetupFloatIdle = 0x809AD944; // type:func -EnBili_SetupSpawnedFlyApart = 0x809AD9A0; // type:func -EnBili_SetupDischargeLightning = 0x809ADA18; // type:func -EnBili_SetupClimb = 0x809ADA74; // type:func -EnBili_SetupApproachPlayer = 0x809ADACC; // type:func -EnBili_SetupSetNewHomeHeight = 0x809ADAEC; // type:func -EnBili_SetupRecoil = 0x809ADB54; // type:func -EnBili_SetupBurnt = 0x809ADBDC; // type:func -EnBili_SetupDie = 0x809ADC7C; // type:func -EnBili_SetupStunned = 0x809ADCB0; // type:func -EnBili_SetupFrozen = 0x809ADD28; // type:func -EnBili_UpdateTentaclesIndex = 0x809ADF00; // type:func -EnBili_UpdateFloating = 0x809AE020; // type:func -EnBili_FloatIdle = 0x809AE108; // type:func -EnBili_SpawnedFlyApart = 0x809AE1F4; // type:func -EnBili_DischargeLightning = 0x809AE24C; // type:func -EnBili_Climb = 0x809AE448; // type:func -EnBili_ApproachPlayer = 0x809AE504; // type:func -EnBili_SetNewHomeHeight = 0x809AE594; // type:func -EnBili_Recoil = 0x809AE610; // type:func -EnBili_Burnt = 0x809AE674; // type:func -EnBili_Die = 0x809AE6E8; // type:func -EnBili_Stunned = 0x809AE910; // type:func -EnBili_Frozen = 0x809AE970; // type:func -EnBili_UpdateDamage = 0x809AEA00; // type:func -EnBili_Update = 0x809AEBCC; // type:func -EnBili_PulseLimb3 = 0x809AEDA0; // type:func -EnBili_PulseLimb2 = 0x809AEFB8; // type:func -EnBili_PulseLimb4 = 0x809AF1D8; // type:func -EnBili_OverrideLimbDraw = 0x809AF340; // type:func -EnBili_Draw = 0x809AF430; // type:func -EnBird_SetupAction = 0x809AFAF0; // type:func -EnBird_Init = 0x809AFAFC; // type:func -EnBird_Destroy = 0x809AFBE8; // type:func -EnBird_SetupIdle = 0x809AFBF8; // type:func -EnBird_Idle = 0x809AFCAC; // type:func -EnBird_SetupMove = 0x809AFD4C; // type:func -EnBird_Move = 0x809AFD8C; // type:func -EnBird_Update = 0x809AFEA8; // type:func -EnBird_Draw = 0x809AFED8; // type:func -EnBlkobj_SetupAction = 0x809AFFB0; // type:func -EnBlkobj_Init = 0x809AFFC0; // type:func -EnBlkobj_Destroy = 0x809B0070; // type:func -EnBlkobj_Wait = 0x809B00A4; // type:func -EnBlkobj_SpawnDarkLink = 0x809B00F8; // type:func -EnBlkobj_DarkLinkFight = 0x809B0170; // type:func -EnBlkobj_DoNothing = 0x809B024C; // type:func -EnBlkobj_Update = 0x809B025C; // type:func -EnBlkobj_DrawAlpha = 0x809B0280; // type:func -EnBlkobj_Draw = 0x809B02FC; // type:func -EnBom_SetupAction = 0x809B0510; // type:func -EnBom_Init = 0x809B051C; // type:func -EnBom_Destroy = 0x809B0634; // type:func -EnBom_Move = 0x809B0674; // type:func -EnBom_WaitForRelease = 0x809B0844; // type:func -EnBom_Explode = 0x809B0890; // type:func -EnBom_Update = 0x809B09E0; // type:func -EnBom_Draw = 0x809B1070; // type:func -EnBomBowlMan_Init = 0x809B13E0; // type:func -EnBomBowlMan_Destroy = 0x809B15A0; // type:func -EnBomBowlMan_SetupWaitAsleep = 0x809B15B0; // type:func -EnBomBowlMan_WaitAsleep = 0x809B1638; // type:func -EnBomBowlMan_TalkAsleep = 0x809B16EC; // type:func -EnBomBowlMan_WakeUp = 0x809B1764; // type:func -EnBomBowlMan_BlinkAwake = 0x809B17E8; // type:func -EnBomBowlMan_CheckBeatenDC = 0x809B18E4; // type:func -EnBomBowlMan_WaitNotBeatenDC = 0x809B1A10; // type:func -EnBomBowlMan_TalkNotBeatenDC = 0x809B1A6C; // type:func -EnBomBowlMan_SetupRunGame = 0x809B1ADC; // type:func -EnBomBowlMan_RunGame = 0x809B1B60; // type:func -EnBomBowlMan_HandlePlayChoice = 0x809B1D70; // type:func -func_809C41FC = 0x809B1F2C; // type:func -EnBomBowlMan_SetupChooseShowPrize = 0x809B2048; // type:func -EnBomBowlMan_ChooseShowPrize = 0x809B214C; // type:func -EnBomBowlMan_BeginPlayGame = 0x809B2394; // type:func -EnBomBowlMan_Update = 0x809B2450; // type:func -EnBomBowlMan_OverrideLimbDraw = 0x809B25C8; // type:func -EnBomBowlMan_Draw = 0x809B2610; // type:func -EnBomBowlPit_Init = 0x809B2920; // type:func -EnBomBowlPit_Destroy = 0x809B2938; // type:func -EnBomBowlPit_SetupDetectHit = 0x809B2948; // type:func -EnBomBowlPit_DetectHit = 0x809B2974; // type:func -EnBomBowlPit_CameraDollyIn = 0x809B2C6C; // type:func -EnBomBowlPit_SpawnPrize = 0x809B2E48; // type:func -EnBomBowlPit_SetupGivePrize = 0x809B2ED8; // type:func -EnBomBowlPit_GivePrize = 0x809B2F90; // type:func -EnBomBowlPit_WaitTillPrizeGiven = 0x809B3094; // type:func -EnBomBowlPit_Reset = 0x809B30F0; // type:func -EnBomBowlPit_Update = 0x809B3170; // type:func -EnBomChu_Init = 0x809B3290; // type:func -EnBomChu_Destroy = 0x809B3430; // type:func -EnBomChu_Explode = 0x809B3480; // type:func -EnBomChu_CrossProduct = 0x809B35A0; // type:func -EnBomChu_UpdateFloorPoly = 0x809B3614; // type:func -EnBomChu_WaitForRelease = 0x809B3848; // type:func -EnBomChu_Move = 0x809B39B8; // type:func -EnBomChu_WaitForKill = 0x809B3ED0; // type:func -EnBomChu_ModelToWorld = 0x809B3F10; // type:func -EnBomChu_SpawnRipples = 0x809B3FC0; // type:func -EnBomChu_Update = 0x809B404C; // type:func -EnBomChu_Draw = 0x809B4410; // type:func -EnBombf_SetupAction = 0x809B4930; // type:func -EnBombf_Init = 0x809B493C; // type:func -EnBombf_Destroy = 0x809B4B18; // type:func -EnBombf_SetupGrowBomb = 0x809B4B58; // type:func -EnBombf_GrowBomb = 0x809B4B80; // type:func -EnBombf_Move = 0x809B4E90; // type:func -EnBombf_WaitForRelease = 0x809B4FB4; // type:func -EnBombf_Explode = 0x809B5018; // type:func -EnBombf_Update = 0x809B516C; // type:func -EnBombf_NewMtxDList = 0x809B5918; // type:func -EnBombf_Draw = 0x809B59A4; // type:func -EnBoom_SetupAction = 0x809B5DC0; // type:func -EnBoom_Init = 0x809B5DCC; // type:func -EnBoom_Destroy = 0x809B5EE8; // type:func -EnBoom_Fly = 0x809B5F28; // type:func -EnBoom_Update = 0x809B6368; // type:func -EnBoom_Draw = 0x809B63C0; // type:func -EnBox_SetupAction = 0x809B6690; // type:func -EnBox_ClipToGround = 0x809B669C; // type:func -EnBox_Init = 0x809B6728; // type:func -EnBox_Destroy = 0x809B6B98; // type:func -EnBox_RandomDustKinematic = 0x809B6BCC; // type:func -EnBox_SpawnDust = 0x809B6CD0; // type:func -EnBox_Fall = 0x809B6D84; // type:func -EnBox_FallOnSwitchFlag = 0x809B6F08; // type:func -func_809C9700 = 0x809B6FD8; // type:func -EnBox_AppearOnSwitchFlag = 0x809B7168; // type:func -EnBox_AppearOnRoomClear = 0x809B71E8; // type:func -EnBox_AppearInit = 0x809B72A0; // type:func -EnBox_AppearAnimation = 0x809B735C; // type:func -EnBox_WaitOpen = 0x809B7408; // type:func -EnBox_Open = 0x809B763C; // type:func -EnBox_SpawnIceSmoke = 0x809B77C4; // type:func -EnBox_Update = 0x809B7A70; // type:func -EnBox_PostLimbDraw = 0x809B7BAC; // type:func -EnBox_EmptyDList = 0x809B7D14; // type:func -func_809CA4A0 = 0x809B7D38; // type:func -func_809CA518 = 0x809B7D78; // type:func -EnBox_Draw = 0x809B7DB8; // type:func -EnBrob_Init = 0x809B81F0; // type:func -EnBrob_Destroy = 0x809B8464; // type:func -EnBrob_SetupIdle = 0x809B84BC; // type:func -EnBrob_SetupMoveUp = 0x809B8524; // type:func -EnBrob_SetupWobble = 0x809B8584; // type:func -EnBrob_SetupStunned = 0x809B85D8; // type:func -EnBrob_SetupMoveDown = 0x809B866C; // type:func -EnBrob_SetupShock = 0x809B86EC; // type:func -EnBrob_Idle = 0x809B8738; // type:func -EnBrob_MoveUp = 0x809B87F8; // type:func -EnBrob_Wobble = 0x809B88FC; // type:func -EnBrob_Stunned = 0x809B899C; // type:func -EnBrob_MoveDown = 0x809B8A38; // type:func -EnBrob_Shock = 0x809B8B3C; // type:func -EnBrob_Update = 0x809B8D54; // type:func -EnBrob_PostLimbDraw = 0x809B8FF0; // type:func -EnBrob_Draw = 0x809B90C4; // type:func -EnBubble_SetDimensions = 0x809B92E0; // type:func -func_809CBCBC = 0x809B939C; // type:func -func_809CBCEC = 0x809B93D0; // type:func -EnBubble_DamagePlayer = 0x809B93F4; // type:func -EnBubble_Explosion = 0x809B9460; // type:func -func_809CBFD4 = 0x809B96BC; // type:func -func_809CC020 = 0x809B9708; // type:func -EnBubble_Vec3fNormalizedReflect = 0x809B975C; // type:func -EnBubble_Vec3fNormalize = 0x809B97E4; // type:func -EnBubble_Fly = 0x809B985C; // type:func -func_809CC648 = 0x809B9D38; // type:func -EnBubble_DetectPop = 0x809B9DD4; // type:func -func_809CC774 = 0x809B9E64; // type:func -EnBubble_Init = 0x809B9F78; // type:func -EnBubble_Destroy = 0x809BA078; // type:func -EnBubble_Wait = 0x809BA0A4; // type:func -EnBubble_Pop = 0x809BA158; // type:func -EnBubble_Disappear = 0x809BA1A8; // type:func -EnBubble_Regrow = 0x809BA1F0; // type:func -EnBubble_Update = 0x809BA260; // type:func -EnBubble_Draw = 0x809BA2DC; // type:func -EnButte_SelectFlightParams = 0x809BA700; // type:func -EnButte_ResetTransformationEffect = 0x809BA784; // type:func -EnButte_UpdateTransformationEffect = 0x809BA7A0; // type:func -EnButte_DrawTransformationEffect = 0x809BA7D8; // type:func -EnButte_Init = 0x809BAA14; // type:func -EnButte_Destroy = 0x809BAB88; // type:func -func_809CD56C = 0x809BABB4; // type:func -func_809CD634 = 0x809BAC7C; // type:func -EnButte_Turn = 0x809BAD44; // type:func -EnButte_SetupFlyAround = 0x809BADE0; // type:func -EnButte_FlyAround = 0x809BAE2C; // type:func -EnButte_SetupFollowLink = 0x809BB210; // type:func -EnButte_FollowLink = 0x809BB25C; // type:func -EnButte_SetupTransformIntoFairy = 0x809BB610; // type:func -EnButte_TransformIntoFairy = 0x809BB660; // type:func -EnButte_SetupWaitToDie = 0x809BB71C; // type:func -EnButte_WaitToDie = 0x809BB73C; // type:func -EnButte_Update = 0x809BB76C; // type:func -EnButte_Draw = 0x809BB8AC; // type:func -EnBw_SetupAction = 0x809BBCD0; // type:func -EnBw_Init = 0x809BBCDC; // type:func -EnBw_Destroy = 0x809BBE3C; // type:func -func_809CE884 = 0x809BBE7C; // type:func -func_809CE9A8 = 0x809BBFA0; // type:func -func_809CEA24 = 0x809BC01C; // type:func -func_809CF72C = 0x809BCD24; // type:func -func_809CF7AC = 0x809BCDA4; // type:func -func_809CF8F0 = 0x809BCEE8; // type:func -func_809CF984 = 0x809BCF7C; // type:func -func_809CFBA8 = 0x809BD1A4; // type:func -func_809CFC4C = 0x809BD248; // type:func -func_809CFF10 = 0x809BD50C; // type:func -func_809CFF98 = 0x809BD594; // type:func -func_809D00F4 = 0x809BD6F0; // type:func -func_809D014C = 0x809BD748; // type:func -func_809D01CC = 0x809BD7C8; // type:func -func_809D0268 = 0x809BD864; // type:func -func_809D03CC = 0x809BD9C8; // type:func -func_809D0424 = 0x809BDA20; // type:func -func_809D0584 = 0x809BDB80; // type:func -EnBw_Update = 0x809BDE8C; // type:func -EnBw_OverrideLimbDraw = 0x809BE31C; // type:func -EnBw_Draw = 0x809BE534; // type:func -EnBx_Init = 0x809BF060; // type:func -EnBx_Destroy = 0x809BF268; // type:func -func_809D1D0C = 0x809BF294; // type:func -EnBx_Update = 0x809BF364; // type:func -EnBx_Draw = 0x809BF688; // type:func -EnChanger_Destroy = 0x809BFB60; // type:func -EnChanger_Init = 0x809BFB70; // type:func -EnChanger_Wait = 0x809C008C; // type:func -EnChanger_OpenChests = 0x809C0130; // type:func -EnChanger_SetHeartPieceFlag = 0x809C02E0; // type:func -EnChanger_Update = 0x809C0330; // type:func -EnClearTag_CreateDebrisEffect = 0x809C0540; // type:func -EnClearTag_CreateFireEffect = 0x809C0638; // type:func -EnClearTag_CreateSmokeEffect = 0x809C0728; // type:func -EnClearTag_CreateFlashEffect = 0x809C084C; // type:func -EnClearTag_Destroy = 0x809C0924; // type:func -EnClearTag_Init = 0x809C0950; // type:func -EnClearTag_CalculateFloorTangent = 0x809C0B14; // type:func -EnClearTag_Update = 0x809C0BD0; // type:func -EnClearTag_Draw = 0x809C1984; // type:func -EnClearTag_UpdateEffects = 0x809C1F18; // type:func -EnClearTag_DrawEffects = 0x809C22E0; // type:func -EnCow_RotateY = 0x809CBAE0; // type:func -EnCow_SetColliderPos = 0x809CBB78; // type:func -EnCow_SetTailPos = 0x809CBC6C; // type:func -EnCow_Init = 0x809CBCE8; // type:func -EnCow_Destroy = 0x809CC120; // type:func -EnCow_UpdateAnimation = 0x809CC16C; // type:func -EnCow_TalkEnd = 0x809CC394; // type:func -EnCow_GiveMilkEnd = 0x809CC40C; // type:func -EnCow_GiveMilkWait = 0x809CC454; // type:func -EnCow_GiveMilk = 0x809CC4B8; // type:func -EnCow_CheckForEmptyBottle = 0x809CC554; // type:func -EnCow_Talk = 0x809CC5E4; // type:func -EnCow_Idle = 0x809CC658; // type:func -EnCow_IdleTail = 0x809CC774; // type:func -EnCow_Update = 0x809CC90C; // type:func -EnCow_UpdateTail = 0x809CCB88; // type:func -EnCow_OverrideLimbDraw = 0x809CCC74; // type:func -EnCow_PostLimbDraw = 0x809CCCC4; // type:func -EnCow_Draw = 0x809CCD04; // type:func -EnCow_DrawTail = 0x809CCD64; // type:func -EnCrow_Init = 0x809CCF40; // type:func -EnCrow_Destroy = 0x809CD030; // type:func -EnCrow_SetupFlyIdle = 0x809CD05C; // type:func -EnCrow_SetupDiveAttack = 0x809CD090; // type:func -EnCrow_SetupDamaged = 0x809CD0C4; // type:func -EnCrow_SetupDie = 0x809CD3E4; // type:func -EnCrow_SetupTurnAway = 0x809CD3FC; // type:func -EnCrow_SetupRespawn = 0x809CD484; // type:func -EnCrow_FlyIdle = 0x809CD578; // type:func -EnCrow_DiveAttack = 0x809CD9A4; // type:func -EnCrow_Damaged = 0x809CDB48; // type:func -EnCrow_Die = 0x809CDC70; // type:func -EnCrow_TurnAway = 0x809CDD20; // type:func -EnCrow_Respawn = 0x809CDDC4; // type:func -EnCrow_UpdateDamage = 0x809CDE90; // type:func -EnCrow_Update = 0x809CDF40; // type:func -EnCrow_OverrideLimbDraw = 0x809CE15C; // type:func -EnCrow_PostLimbDraw = 0x809CE248; // type:func -EnCrow_Draw = 0x809CE308; // type:func -EnCs_ChangeAnim = 0x809CE5E0; // type:func -EnCs_Init = 0x809CE704; // type:func -EnCs_Destroy = 0x809CE898; // type:func -EnCs_GetTalkState = 0x809CE8C4; // type:func -EnCs_GetTextId = 0x809CE9F8; // type:func -EnCs_HandleTalking = 0x809CEA7C; // type:func -EnCs_GetwaypointCount = 0x809CEBC8; // type:func -EnCs_GetPathPoint = 0x809CEBDC; // type:func -EnCs_HandleWalking = 0x809CEC70; // type:func -EnCs_Walk = 0x809CEE88; // type:func -EnCs_Wait = 0x809CF028; // type:func -EnCs_Talk = 0x809CF0B4; // type:func -EnCs_Update = 0x809CF178; // type:func -EnCs_Draw = 0x809CF2E8; // type:func -EnCs_OverrideLimbDraw = 0x809CF49C; // type:func -EnCs_PostLimbDraw = 0x809CF52C; // type:func -EnDaiku_ChangeAnim = 0x809CF810; // type:func -EnDaiku_Init = 0x809CF8C4; // type:func -EnDaiku_Destroy = 0x809CFC0C; // type:func -EnDaiku_UpdateTalking = 0x809CFC38; // type:func -EnDaiku_UpdateText = 0x809CFD54; // type:func -EnDaiku_TentIdle = 0x809D0024; // type:func -EnDaiku_Jailed = 0x809D005C; // type:func -EnDaiku_WaitFreedom = 0x809D012C; // type:func -EnDaiku_InitEscape = 0x809D0190; // type:func -EnDaiku_EscapeRotate = 0x809D0398; // type:func -EnDaiku_InitSubCamera = 0x809D0404; // type:func -EnDaiku_UpdateSubCamera = 0x809D0590; // type:func -EnDaiku_EscapeSuccess = 0x809D0648; // type:func -EnDaiku_EscapeRun = 0x809D0784; // type:func -EnDaiku_Update = 0x809D0990; // type:func -EnDaiku_Draw = 0x809D0AA8; // type:func -EnDaiku_OverrideLimbDraw = 0x809D0BD0; // type:func -EnDaiku_PostLimbDraw = 0x809D0C54; // type:func -EnDaikuKakariko_ChangeAnim = 0x809D0F50; // type:func -EnDaikuKakariko_Init = 0x809D1004; // type:func -EnDaikuKakariko_Destroy = 0x809D135C; // type:func -EnDaikuKakariko_GetTalkState = 0x809D1388; // type:func -EnDaikuKakariko_HandleTalking = 0x809D142C; // type:func -EnDaikuKakariko_Talk = 0x809D15E8; // type:func -EnDaikuKakariko_Wait = 0x809D16BC; // type:func -EnDaikuKakariko_StopRunning = 0x809D1758; // type:func -EnDaikuKakariko_Run = 0x809D1808; // type:func -EnDaikuKakariko_Update = 0x809D1B88; // type:func -EnDaikuKakariko_OverrideLimbDraw = 0x809D1D00; // type:func -EnDaikuKakariko_PostLimbDraw = 0x809D1EC0; // type:func -EnDaikuKakariko_Draw = 0x809D1F3C; // type:func -EnDekubaba_Init = 0x809D2310; // type:func -EnDekubaba_Destroy = 0x809D2554; // type:func -EnDekubaba_DisableACColliderElems = 0x809D2580; // type:func -EnDekubaba_SetupWait = 0x809D2608; // type:func -EnDekubaba_SetupGrow = 0x809D2870; // type:func -EnDekubaba_SetupRetract = 0x809D29A0; // type:func -EnDekubaba_SetupDecideLunge = 0x809D2A88; // type:func -EnDekubaba_SetupPrepareLunge = 0x809D2AE0; // type:func -EnDekubaba_SetupLunge = 0x809D2B04; // type:func -EnDekubaba_SetupPullBack = 0x809D2B48; // type:func -EnDekubaba_SetupRecover = 0x809D2BC0; // type:func -EnDekubaba_SetupHit = 0x809D2BF4; // type:func -EnDekubaba_SetupPrunedSomersault = 0x809D2CBC; // type:func -EnDekubaba_SetupShrinkDie = 0x809D2D30; // type:func -EnDekubaba_SetupStunnedVertical = 0x809D2DB0; // type:func -EnDekubaba_SetupSway = 0x809D2F34; // type:func -EnDekubaba_SetupDeadStickDrop = 0x809D2FA0; // type:func -EnDekubaba_Wait = 0x809D3040; // type:func -EnDekubaba_Grow = 0x809D30EC; // type:func -EnDekubaba_Retract = 0x809D3554; // type:func -EnDekubaba_UpdateHeadPosition = 0x809D391C; // type:func -EnDekubaba_DecideLunge = 0x809D3A20; // type:func -EnDekubaba_Lunge = 0x809D3C50; // type:func -EnDekubaba_PrepareLunge = 0x809D3ED8; // type:func -EnDekubaba_PullBack = 0x809D3FA4; // type:func -EnDekubaba_Recover = 0x809D4330; // type:func -EnDekubaba_Hit = 0x809D4428; // type:func -EnDekubaba_StunnedVertical = 0x809D4538; // type:func -EnDekubaba_Sway = 0x809D45D4; // type:func -EnDekubaba_PrunedSomersault = 0x809D46FC; // type:func -EnDekubaba_ShrinkDie = 0x809D4A60; // type:func -EnDekubaba_DeadStickDrop = 0x809D4C24; // type:func -EnDekubaba_UpdateDamage = 0x809D4C8C; // type:func -EnDekubaba_Update = 0x809D4F40; // type:func -EnDekubaba_DrawStemRetracted = 0x809D50E0; // type:func -EnDekubaba_DrawStemExtended = 0x809D51D0; // type:func -EnDekubaba_DrawStemBasePruned = 0x809D54C0; // type:func -EnDekubaba_DrawBaseShadow = 0x809D5580; // type:func -EnDekubaba_PostLimbDraw = 0x809D5674; // type:func -EnDekubaba_Draw = 0x809D56B0; // type:func -EnDekunuts_Init = 0x809D5DC0; // type:func -EnDekunuts_Destroy = 0x809D5F2C; // type:func -EnDekunuts_SetupWait = 0x809D5F68; // type:func -EnDekunuts_SetupLookAround = 0x809D5FDC; // type:func -EnDekunuts_SetupThrowNut = 0x809D6024; // type:func -EnDekunuts_SetupStand = 0x809D6068; // type:func -EnDekunuts_SetupBurrow = 0x809D60D0; // type:func -EnDekunuts_SetupBeginRun = 0x809D6120; // type:func -EnDekunuts_SetupRun = 0x809D6188; // type:func -EnDekunuts_SetupGasp = 0x809D61E0; // type:func -EnDekunuts_SetupBeDamaged = 0x809D6240; // type:func -EnDekunuts_SetupBeStunned = 0x809D631C; // type:func -EnDekunuts_SetupDie = 0x809D63B0; // type:func -EnDekunuts_Wait = 0x809D6400; // type:func -EnDekunuts_LookAround = 0x809D6664; // type:func -EnDekunuts_Stand = 0x809D66E8; // type:func -EnDekunuts_ThrowNut = 0x809D67D4; // type:func -EnDekunuts_Burrow = 0x809D692C; // type:func -EnDekunuts_BeginRun = 0x809D6A40; // type:func -EnDekunuts_Run = 0x809D6AA8; // type:func -EnDekunuts_Gasp = 0x809D6CE8; // type:func -EnDekunuts_BeDamaged = 0x809D6D50; // type:func -EnDekunuts_BeStunned = 0x809D6DA0; // type:func -EnDekunuts_Die = 0x809D6E1C; // type:func -EnDekunuts_ColliderCheck = 0x809D6F78; // type:func -EnDekunuts_Update = 0x809D709C; // type:func -EnDekunuts_OverrideLimbDraw = 0x809D7204; // type:func -EnDekunuts_Draw = 0x809D7338; // type:func -EnDh_SetupAction = 0x809D75C0; // type:func -EnDh_Init = 0x809D75CC; // type:func -EnDh_Destroy = 0x809D7708; // type:func -EnDh_SpawnDebris = 0x809D7750; // type:func -EnDh_SetupWait = 0x809D78E8; // type:func -EnDh_Wait = 0x809D799C; // type:func -EnDh_SetupWalk = 0x809D7BC0; // type:func -EnDh_Walk = 0x809D7C5C; // type:func -EnDh_SetupRetreat = 0x809D7D64; // type:func -EnDh_Retreat = 0x809D7DC8; // type:func -EnDh_SetupAttack = 0x809D7E54; // type:func -EnDh_Attack = 0x809D7EB4; // type:func -EnDh_SetupBurrow = 0x809D81C4; // type:func -EnDh_Burrow = 0x809D8248; // type:func -EnDh_SetupDamage = 0x809D83D8; // type:func -EnDh_Damage = 0x809D8458; // type:func -EnDh_SetupDeath = 0x809D8580; // type:func -EnDh_Death = 0x809D8608; // type:func -EnDh_CollisionCheck = 0x809D8738; // type:func -EnDh_Update = 0x809D8888; // type:func -EnDh_PostLimbDraw = 0x809D8A38; // type:func -EnDh_Draw = 0x809D8AC8; // type:func -EnDha_SetupAction = 0x809D90A0; // type:func -EnDha_Init = 0x809D90AC; // type:func -EnDha_Destroy = 0x809D91C8; // type:func -EnDha_SetupWait = 0x809D91F4; // type:func -EnDha_Wait = 0x809D927C; // type:func -EnDha_SetupTakeDamage = 0x809D978C; // type:func -EnDha_TakeDamage = 0x809D97B8; // type:func -EnDha_SetupDeath = 0x809D9880; // type:func -EnDha_Die = 0x809D98F0; // type:func -EnDha_UpdateHealth = 0x809D9AAC; // type:func -EnDha_Update = 0x809D9BA0; // type:func -EnDha_OverrideLimbDraw = 0x809D9C48; // type:func -EnDha_PostLimbDraw = 0x809D9CE8; // type:func -EnDha_Draw = 0x809D9E00; // type:func -EnDivingGame_Init = 0x809DA0A0; // type:func -EnDivingGame_Destroy = 0x809DA1BC; // type:func -EnDivingGame_SpawnRuppy = 0x809DA1FC; // type:func -EnDivingGame_HasMinigameFinished = 0x809DA328; // type:func -func_809EDCB0 = 0x809DA4D4; // type:func -EnDivingGame_Talk = 0x809DA570; // type:func -EnDivingGame_HandlePlayChoice = 0x809DA700; // type:func -func_809EE048 = 0x809DA86C; // type:func -func_809EE0FC = 0x809DA920; // type:func -func_809EE194 = 0x809DA9B8; // type:func -EnDivingGame_SetupRupeeThrow = 0x809DAA18; // type:func -EnDivingGame_RupeeThrow = 0x809DAC2C; // type:func -EnDivingGame_SetupUnderwaterViewCs = 0x809DAEEC; // type:func -func_809EE780 = 0x809DAFA4; // type:func -func_809EE800 = 0x809DB024; // type:func -func_809EE8F0 = 0x809DB114; // type:func -func_809EE96C = 0x809DB194; // type:func -func_809EEA00 = 0x809DB228; // type:func -func_809EEA90 = 0x809DB2B8; // type:func -func_809EEAF8 = 0x809DB324; // type:func -EnDivingGame_Update = 0x809DB3B4; // type:func -EnDivingGame_EmptyDList = 0x809DB5E0; // type:func -EnDivingGame_OverrideLimbDraw = 0x809DB604; // type:func -EnDivingGame_Draw = 0x809DB764; // type:func -EnDns_Init = 0x809DBA50; // type:func -EnDns_Destroy = 0x809DBBC4; // type:func -EnDns_ChangeAnim = 0x809DBBF0; // type:func -EnDns_CanBuyDekuNuts = 0x809DBC78; // type:func -EnDns_CanBuyDekuSticks = 0x809DBD30; // type:func -EnDns_CanBuyPrice = 0x809DBDE8; // type:func -EnDns_CanBuyDekuSeeds = 0x809DBE18; // type:func -EnDns_CanBuyDekuShield = 0x809DBEE0; // type:func -EnDns_CanBuyBombs = 0x809DBF34; // type:func -EnDns_CanBuyArrows = 0x809DBFD4; // type:func -EnDns_CanBuyBottle = 0x809DC084; // type:func -EnDns_PayPrice = 0x809DC0DC; // type:func -EnDns_PayForDekuNuts = 0x809DC110; // type:func -EnDns_PayForHeartPiece = 0x809DC144; // type:func -EnDns_PayForBombs = 0x809DC18C; // type:func -EnDns_PayForArrows = 0x809DC1C0; // type:func -EnDns_PayForDekuStickUpgrade = 0x809DC1F4; // type:func -EnDns_PayForDekuNutUpgrade = 0x809DC23C; // type:func -EnDns_SetupIdle = 0x809DC284; // type:func -EnDns_Idle = 0x809DC2C8; // type:func -EnDns_Talk = 0x809DC39C; // type:func -EnDns_OfferSaleItem = 0x809DC4D4; // type:func -EnDns_SetupSale = 0x809DC5EC; // type:func -EnDns_Sale = 0x809DC658; // type:func -EnDns_SetupBurrow = 0x809DC6A4; // type:func -EnDns_SetupNoSaleBurrow = 0x809DC798; // type:func -EnDns_Burrow = 0x809DC810; // type:func -EnDns_PostBurrow = 0x809DC88C; // type:func -EnDns_Update = 0x809DC990; // type:func -EnDns_Draw = 0x809DCA80; // type:func -EnDntDemo_Destroy = 0x809DCDE0; // type:func -EnDntDemo_Init = 0x809DCDF0; // type:func -EnDntDemo_Judge = 0x809DCF60; // type:func -EnDntDemo_Results = 0x809DD580; // type:func -EnDntDemo_Prize = 0x809DD7F4; // type:func -EnDntDemo_Update = 0x809DD8D0; // type:func -EnDntJiji_Init = 0x809DDB00; // type:func -EnDntJiji_Destroy = 0x809DDBE0; // type:func -EnDntJiji_SetFlower = 0x809DDC0C; // type:func -EnDntJiji_SetupWait = 0x809DDC4C; // type:func -EnDntJiji_Wait = 0x809DDCFC; // type:func -EnDntJiji_SetupUp = 0x809DDDB4; // type:func -EnDntJiji_Up = 0x809DDE98; // type:func -EnDntJiji_SetupUnburrow = 0x809DDF08; // type:func -EnDntJiji_Unburrow = 0x809DDFEC; // type:func -EnDntJiji_SetupWalk = 0x809DE074; // type:func -EnDntJiji_Walk = 0x809DE124; // type:func -EnDntJiji_SetupBurrow = 0x809DE260; // type:func -EnDntJiji_Burrow = 0x809DE350; // type:func -EnDntJiji_SetupCower = 0x809DE37C; // type:func -EnDntJiji_Cower = 0x809DE4BC; // type:func -EnDntJiji_SetupTalk = 0x809DE560; // type:func -EnDntJiji_Talk = 0x809DE5F4; // type:func -EnDntJiji_SetupGivePrize = 0x809DE6C0; // type:func -EnDntJiji_GivePrize = 0x809DE730; // type:func -EnDntJiji_SetupHide = 0x809DE840; // type:func -EnDntJiji_Hide = 0x809DE8D8; // type:func -EnDntJiji_SetupReturn = 0x809DE944; // type:func -EnDntJiji_Return = 0x809DE9F4; // type:func -EnDntJiji_Update = 0x809DEB6C; // type:func -EnDntJiji_Draw = 0x809DED44; // type:func -EnDntNomal_Init = 0x809DF020; // type:func -EnDntNomal_Destroy = 0x809DF148; // type:func -EnDntNomal_WaitForObject = 0x809DF194; // type:func -EnDntNomal_SetFlower = 0x809DF2E4; // type:func -EnDntNomal_SetupTargetWait = 0x809DF33C; // type:func -EnDntNomal_TargetWait = 0x809DF3E4; // type:func -EnDntNomal_SetupTargetUnburrow = 0x809DF6C0; // type:func -EnDntNomal_TargetUnburrow = 0x809DF7DC; // type:func -EnDntNomal_SetupTargetWalk = 0x809DF848; // type:func -EnDntNomal_TargetWalk = 0x809DF8EC; // type:func -EnDntNomal_TargetFacePlayer = 0x809DF9D8; // type:func -EnDntNomal_SetupTargetTalk = 0x809DFA8C; // type:func -EnDntNomal_TargetTalk = 0x809DFB38; // type:func -EnDntNomal_SetupTargetGivePrize = 0x809DFBE0; // type:func -EnDntNomal_TargetGivePrize = 0x809DFC78; // type:func -EnDntNomal_TargetReturn = 0x809DFDE0; // type:func -EnDntNomal_TargetBurrow = 0x809DFFB0; // type:func -EnDntNomal_SetupStageWait = 0x809E001C; // type:func -EnDntNomal_StageWait = 0x809E00D4; // type:func -EnDntNomal_SetupStageUp = 0x809E0100; // type:func -EnDntNomal_StageUp = 0x809E020C; // type:func -EnDntNomal_SetupStageUnburrow = 0x809E0440; // type:func -EnDntNomal_StageUnburrow = 0x809E0534; // type:func -EnDntNomal_SetupStageCelebrate = 0x809E060C; // type:func -EnDntNomal_StageCelebrate = 0x809E06B4; // type:func -EnDntNomal_SetupStageDance = 0x809E08BC; // type:func -EnDntNomal_StageDance = 0x809E09CC; // type:func -EnDntNomal_SetupStageHide = 0x809E0B30; // type:func -EnDntNomal_StageHide = 0x809E0C0C; // type:func -EnDntNomal_StageAttackHide = 0x809E0DD0; // type:func -EnDntNomal_SetupStageAttack = 0x809E0E04; // type:func -EnDntNomal_StageAttack = 0x809E0ED0; // type:func -EnDntNomal_StageSetupReturn = 0x809E1194; // type:func -EnDntNomal_StageReturn = 0x809E1238; // type:func -EnDntNomal_Update = 0x809E133C; // type:func -EnDntNomal_OverrideLimbDraw = 0x809E1600; // type:func -EnDntNomal_PostLimbDraw = 0x809E16B0; // type:func -EnDntNomal_DrawStageScrub = 0x809E1738; // type:func -EnDntNomal_DrawTargetScrub = 0x809E1928; // type:func -EnDodojr_Init = 0x809E1E20; // type:func -EnDodojr_Destroy = 0x809E1F08; // type:func -EnDodojr_DoSwallowedBombEffects = 0x809E1F34; // type:func -EnDodojr_SpawnLargeDust = 0x809E1F78; // type:func -EnDodojr_SpawnSmallDust = 0x809E2198; // type:func -EnDodojr_UpdateBounces = 0x809E2318; // type:func -EnDodojr_SetupCrawlTowardsTarget = 0x809E23FC; // type:func -EnDodojr_SetupFlipBounce = 0x809E2484; // type:func -EnDodojr_SetupSwallowedBombDeathSequence = 0x809E2528; // type:func -EnDodojr_SetupJumpAttackBounce = 0x809E2598; // type:func -EnDodojr_SetupDespawn = 0x809E261C; // type:func -EnDodojr_SetupEatBomb = 0x809E2688; // type:func -EnDodojr_CheckNearbyBombs = 0x809E2704; // type:func -EnDodojr_TryEatBomb = 0x809E2830; // type:func -EnDodojr_UpdateCrawl = 0x809E28B4; // type:func -EnDodojr_IsPlayerWithinAttackRange = 0x809E2AC8; // type:func -EnDodojr_SetupStandardDeathBounce = 0x809E2AF8; // type:func -EnDodojr_CheckDamaged = 0x809E2B44; // type:func -EnDodojr_UpdateCollider = 0x809E2D00; // type:func -EnDodojr_WaitUnderground = 0x809E2E10; // type:func -EnDodojr_EmergeFromGround = 0x809E2F28; // type:func -EnDodojr_CrawlTowardsTarget = 0x809E2FF0; // type:func -EnDodojr_EatBomb = 0x809E30F4; // type:func -EnDodojr_SwallowBomb = 0x809E31A4; // type:func -EnDodojr_SwallowedBombDeathBounce = 0x809E3214; // type:func -EnDodojr_SwallowedBombDeathSequence = 0x809E32B4; // type:func -EnDodojr_StunnedBounce = 0x809E32D4; // type:func -EnDodojr_Stunned = 0x809E3354; // type:func -EnDodojr_JumpAttackBounce = 0x809E3404; // type:func -EnDodojr_Despawn = 0x809E346C; // type:func -EnDodojr_StandardDeathBounce = 0x809E3524; // type:func -EnDodojr_DeathSequence = 0x809E35AC; // type:func -EnDodojr_DropItem = 0x809E3658; // type:func -EnDodojr_WaitFreezeFrames = 0x809E36BC; // type:func -EnDodojr_Update = 0x809E3704; // type:func -EnDodojr_OverrideLimbDraw = 0x809E37C4; // type:func -EnDodojr_PostLimbDraw = 0x809E3870; // type:func -EnDodojr_Draw = 0x809E3888; // type:func -EnDodongo_SetupAction = 0x809E3CC0; // type:func -EnDodongo_SpawnBombSmoke = 0x809E3CCC; // type:func -EnDodongo_Init = 0x809E41BC; // type:func -EnDodongo_Destroy = 0x809E43E4; // type:func -EnDodongo_SetupIdle = 0x809E4444; // type:func -EnDodongo_SetupWalk = 0x809E44AC; // type:func -EnDodongo_SetupBreatheFire = 0x809E4550; // type:func -EnDodongo_SetupEndBreatheFire = 0x809E45A4; // type:func -EnDodongo_SetupSwallowBomb = 0x809E45F4; // type:func -EnDodongo_SetupStunned = 0x809E4674; // type:func -EnDodongo_Idle = 0x809E470C; // type:func -EnDodongo_EndBreatheFire = 0x809E4784; // type:func -EnDodongo_BreatheFire = 0x809E47D4; // type:func -EnDodongo_SwallowBomb = 0x809E49AC; // type:func -EnDodongo_Walk = 0x809E4EA4; // type:func -EnDodongo_SetupSweepTail = 0x809E51E4; // type:func -EnDodongo_SweepTail = 0x809E5244; // type:func -EnDodongo_SetupDeath = 0x809E5508; // type:func -EnDodongo_Death = 0x809E5580; // type:func -EnDodongo_Stunned = 0x809E56CC; // type:func -EnDodongo_CollisionCheck = 0x809E5730; // type:func -EnDodongo_UpdateQuad = 0x809E5858; // type:func -EnDodongo_Update = 0x809E59C4; // type:func -EnDodongo_OverrideLimbDraw = 0x809E5B90; // type:func -EnDodongo_PostLimbDraw = 0x809E5BE4; // type:func -EnDodongo_Draw = 0x809E6020; // type:func -EnDodongo_ShiftVecRadial = 0x809E6110; // type:func -EnDodongo_AteBomb = 0x809E6170; // type:func -EnDog_PlayWalkSFX = 0x809E6A60; // type:func -EnDog_PlayRunSFX = 0x809E6AC8; // type:func -EnDog_PlayBarkSFX = 0x809E6B30; // type:func -EnDog_PlayAnimAndSFX = 0x809E6B98; // type:func -EnDog_CanFollow = 0x809E6D30; // type:func -EnDog_UpdateWaypoint = 0x809E6DB4; // type:func -EnDog_Orient = 0x809E6E40; // type:func -EnDog_Init = 0x809E6EE4; // type:func -EnDog_Destroy = 0x809E7134; // type:func -EnDog_FollowPath = 0x809E7160; // type:func -EnDog_ChooseMovement = 0x809E72F8; // type:func -EnDog_FollowPlayer = 0x809E73E8; // type:func -EnDog_RunAway = 0x809E7568; // type:func -EnDog_FaceLink = 0x809E760C; // type:func -EnDog_Wait = 0x809E7714; // type:func -EnDog_Update = 0x809E776C; // type:func -EnDog_OverrideLimbDraw = 0x809E7838; // type:func -EnDog_PostLimbDraw = 0x809E7854; // type:func -EnDog_Draw = 0x809E786C; // type:func -EnDoor_Init = 0x809E7C10; // type:func -EnDoor_Destroy = 0x809E7E2C; // type:func -EnDoor_SetupType = 0x809E7E60; // type:func -EnDoor_Idle = 0x809E8018; // type:func -EnDoor_WaitForCheck = 0x809E82D0; // type:func -EnDoor_Check = 0x809E831C; // type:func -EnDoor_AjarWait = 0x809E8354; // type:func -EnDoor_AjarOpen = 0x809E8388; // type:func -EnDoor_AjarClose = 0x809E83F8; // type:func -EnDoor_Open = 0x809E8440; // type:func -EnDoor_Update = 0x809E8694; // type:func -EnDoor_OverrideLimbDraw = 0x809E86B8; // type:func -EnDoor_Draw = 0x809E87EC; // type:func -EnDs_Init = 0x809E8A50; // type:func -EnDs_Destroy = 0x809E8B20; // type:func -EnDs_Talk = 0x809E8B30; // type:func -EnDs_TalkNoEmptyBottle = 0x809E8B80; // type:func -EnDs_TalkAfterGiveOddPotion = 0x809E8BEC; // type:func -EnDs_DisplayOddPotionText = 0x809E8C48; // type:func -EnDs_GiveOddPotion = 0x809E8CA8; // type:func -EnDs_TalkAfterBrewOddPotion = 0x809E8D14; // type:func -EnDs_BrewOddPotion3 = 0x809E8D94; // type:func -EnDs_BrewOddPotion2 = 0x809E8E38; // type:func -EnDs_BrewOddPotion1 = 0x809E8E8C; // type:func -EnDs_OfferOddPotion = 0x809E8F2C; // type:func -EnDs_CheckRupeesAndBottle = 0x809E8FF8; // type:func -EnDs_GiveBluePotion = 0x809E9048; // type:func -EnDs_OfferBluePotion = 0x809E90AC; // type:func -EnDs_Wait = 0x809E91E4; // type:func -EnDs_Update = 0x809E9368; // type:func -EnDs_OverrideLimbDraw = 0x809E9470; // type:func -EnDs_PostLimbDraw = 0x809E94B8; // type:func -EnDs_Draw = 0x809E94F8; // type:func -EnDu_SetupAction = 0x809E9670; // type:func -EnDu_GetTextId = 0x809E967C; // type:func -EnDu_UpdateTalkState = 0x809E9720; // type:func -func_809FDDB4 = 0x809E97FC; // type:func -func_809FDE24 = 0x809E986C; // type:func -func_809FDE9C = 0x809E98E4; // type:func -func_809FDFC0 = 0x809E9A08; // type:func -func_809FE000 = 0x809E9A4C; // type:func -func_809FE040 = 0x809E9A90; // type:func -func_809FE104 = 0x809E9B54; // type:func -EnDu_Init = 0x809E9BFC; // type:func -EnDu_Destroy = 0x809E9DCC; // type:func -func_809FE3B4 = 0x809E9E0C; // type:func -func_809FE3C0 = 0x809E9E1C; // type:func -func_809FE4A4 = 0x809E9F04; // type:func -func_809FE638 = 0x809EA09C; // type:func -func_809FE6CC = 0x809EA134; // type:func -func_809FE740 = 0x809EA1A8; // type:func -func_809FE798 = 0x809EA200; // type:func -func_809FE890 = 0x809EA2F8; // type:func -func_809FEB08 = 0x809EA574; // type:func -func_809FEC14 = 0x809EA680; // type:func -func_809FEC70 = 0x809EA6DC; // type:func -func_809FECE4 = 0x809EA754; // type:func -EnDu_Update = 0x809EA78C; // type:func -EnDu_OverrideLimbDraw = 0x809EA918; // type:func -EnDu_PostLimbDraw = 0x809EAA94; // type:func -EnDu_Draw = 0x809EAAF0; // type:func -EnDyExtra_Destroy = 0x809EB100; // type:func -EnDyExtra_Init = 0x809EB110; // type:func -EnDyExtra_WaitForTrigger = 0x809EB184; // type:func -EnDyExtra_FallAndKill = 0x809EB218; // type:func -EnDyExtra_Update = 0x809EB2D0; // type:func -EnDyExtra_Draw = 0x809EB33C; // type:func -EnEg_PlayVoidOutSFX = 0x809EB6A0; // type:func -EnEg_Destroy = 0x809EB6C0; // type:func -EnEg_Init = 0x809EB6D0; // type:func -func_809FFDC8 = 0x809EB6E0; // type:func -EnEg_Update = 0x809EB778; // type:func -EnEg_Draw = 0x809EB7C0; // type:func -EnEiyer_Init = 0x809EB850; // type:func -EnEiyer_Destroy = 0x809EBA30; // type:func -EnEiyer_RotateAroundHome = 0x809EBA5C; // type:func -EnEiyer_SetupAppearFromGround = 0x809EBACC; // type:func -EnEiyer_SetupUnderground = 0x809EBC0C; // type:func -EnEiyer_SetupInactive = 0x809EBC6C; // type:func -EnEiyer_SetupAmbush = 0x809EBC98; // type:func -EnEiyer_SetupGlide = 0x809EBD78; // type:func -EnEiyer_SetupStartAttack = 0x809EBDF4; // type:func -EnEiyer_SetupDiveAttack = 0x809EBE08; // type:func -EnEiyer_SetupLand = 0x809EBE50; // type:func -EnEiyer_SetupHurt = 0x809EBEC8; // type:func -EnEiyer_SetupDie = 0x809EBF78; // type:func -EnEiyer_SetupDead = 0x809EC038; // type:func -EnEiyer_SetupStunned = 0x809EC064; // type:func -EnEiyer_AppearFromGround = 0x809EC128; // type:func -EnEiyer_CheckPlayerCollision = 0x809EC178; // type:func -EnEiyer_CircleUnderground = 0x809EC1A8; // type:func -EnEiyer_WanderUnderground = 0x809EC224; // type:func -EnEiyer_Inactive = 0x809EC358; // type:func -EnEiyer_Ambush = 0x809EC3EC; // type:func -EnEiyer_Glide = 0x809EC544; // type:func -EnEiyer_StartAttack = 0x809EC760; // type:func -EnEiyer_DiveAttack = 0x809EC85C; // type:func -EnEiyer_Land = 0x809EC8E8; // type:func -EnEiyer_Hurt = 0x809EC9DC; // type:func -EnEiyer_Die = 0x809ECB14; // type:func -EnEiyer_Dead = 0x809ECBC8; // type:func -EnEiyer_Stunned = 0x809ECC48; // type:func -EnEiyer_UpdateDamage = 0x809ECD00; // type:func -EnEiyer_Update = 0x809ECE48; // type:func -EnEiyer_OverrideLimbDraw = 0x809ED06C; // type:func -EnEiyer_Draw = 0x809ED0C0; // type:func -EnElf_SetupAction = 0x809ED4B0; // type:func -func_80A01C38 = 0x809ED4BC; // type:func -func_80A01F90 = 0x809ED814; // type:func -func_80A01FE0 = 0x809ED868; // type:func -func_80A020A4 = 0x809ED930; // type:func -func_80A0214C = 0x809ED9DC; // type:func -func_80A0232C = 0x809EDBBC; // type:func -EnElf_GetColorValue = 0x809EDC34; // type:func -EnElf_Init = 0x809EDCA4; // type:func -func_80A0299C = 0x809EE210; // type:func -func_80A029A8 = 0x809EE220; // type:func -EnElf_Destroy = 0x809EE248; // type:func -func_80A02A20 = 0x809EE298; // type:func -func_80A02AA4 = 0x809EE31C; // type:func -func_80A02B38 = 0x809EE3B0; // type:func -func_80A02BD8 = 0x809EE44C; // type:func -func_80A02C98 = 0x809EE50C; // type:func -func_80A02E30 = 0x809EE6A4; // type:func -func_80A02EC0 = 0x809EE730; // type:func -func_80A02F2C = 0x809EE79C; // type:func -func_80A03018 = 0x809EE888; // type:func -func_80A03148 = 0x809EE9BC; // type:func -func_80A0329C = 0x809EEB14; // type:func -func_80A0353C = 0x809EEDB8; // type:func -func_80A03604 = 0x809EEE80; // type:func -func_80A03610 = 0x809EEE90; // type:func -func_80A03814 = 0x809EF098; // type:func -func_80A03990 = 0x809EF218; // type:func -func_80A03AB0 = 0x809EF33C; // type:func -EnElf_UpdateLights = 0x809EF3A0; // type:func -func_80A03CF8 = 0x809EF574; // type:func -EnElf_ChangeColor = 0x809EFC0C; // type:func -func_80A04414 = 0x809EFC98; // type:func -func_80A0461C = 0x809EFEA4; // type:func -EnElf_SpawnSparkles = 0x809F0240; // type:func -func_80A04D90 = 0x809F0620; // type:func -func_80A04DE4 = 0x809F0674; // type:func -func_80A04F94 = 0x809F0828; // type:func -func_80A05040 = 0x809F08D8; // type:func -func_80A05114 = 0x809F09B4; // type:func -func_80A05188 = 0x809F0A30; // type:func -func_80A05208 = 0x809F0AB8; // type:func -func_80A052F4 = 0x809F0BAC; // type:func -func_80A053F0 = 0x809F0CB0; // type:func -EnElf_Update = 0x809F0F2C; // type:func -EnElf_OverrideLimbDraw = 0x809F0F88; // type:func -EnElf_Draw = 0x809F10AC; // type:func -EnElf_GetCuePos = 0x809F1724; // type:func -EnEncount1_Init = 0x809F1E70; // type:func -EnEncount1_SpawnLeevers = 0x809F1FA4; // type:func -EnEncount1_SpawnTektites = 0x809F2300; // type:func -EnEncount1_SpawnStalchildOrWolfos = 0x809F2498; // type:func -EnEncount1_Update = 0x809F28EC; // type:func -EnEncount2_Init = 0x809F29D0; // type:func -EnEncount2_Wait = 0x809F2A44; // type:func -EnEncount2_SpawnRocks = 0x809F2C9C; // type:func -EnEncount2_Update = 0x809F3264; // type:func -EnEncount2_Draw = 0x809F3630; // type:func -EnEncount2_SpawnEffect = 0x809F3650; // type:func -EnEncount2_UpdateEffects = 0x809F3704; // type:func -EnEncount2_DrawEffects = 0x809F38D8; // type:func -EnExItem_Destroy = 0x809F3C00; // type:func -EnExItem_Init = 0x809F3C10; // type:func -EnExItem_WaitForObject = 0x809F3D6C; // type:func -EnExItem_BowlPrize = 0x809F40E8; // type:func -EnExItem_SetupBowlCounter = 0x809F42D4; // type:func -EnExItem_BowlCounter = 0x809F42FC; // type:func -EnExItem_ExitChest = 0x809F4334; // type:func -EnExItem_FairyMagic = 0x809F439C; // type:func -EnExItem_TargetPrizeApproach = 0x809F43B4; // type:func -EnExItem_TargetPrizeGive = 0x809F4608; // type:func -EnExItem_TargetPrizeFinish = 0x809F4694; // type:func -EnExItem_Update = 0x809F46F4; // type:func -EnExItem_Draw = 0x809F4748; // type:func -EnExItem_DrawItems = 0x809F47F8; // type:func -EnExItem_DrawHeartPiece = 0x809F485C; // type:func -EnExItem_DrawMagic = 0x809F4890; // type:func -EnExItem_DrawKey = 0x809F48D8; // type:func -EnExItem_DrawRupee = 0x809F49C8; // type:func -EnExRuppy_Init = 0x809F4D80; // type:func -EnExRuppy_Destroy = 0x809F5158; // type:func -EnExRuppy_SpawnSparkles = 0x809F5168; // type:func -EnExRuppy_DropIntoWater = 0x809F5384; // type:func -EnExRuppy_EnterWater = 0x809F5464; // type:func -EnExRuppy_Sink = 0x809F55D0; // type:func -EnExRuppy_WaitInGame = 0x809F56D0; // type:func -EnExRuppy_Kill = 0x809F5828; // type:func -EnExRuppy_WaitToBlowUp = 0x809F586C; // type:func -EnExRuppy_WaitAsCollectible = 0x809F5998; // type:func -EnExRuppy_GalleryTarget = 0x809F5A1C; // type:func -EnExRuppy_Update = 0x809F5A7C; // type:func -EnExRuppy_Draw = 0x809F5B08; // type:func -EnFd_SpawnCore = 0x809F5E40; // type:func -EnFd_SpawnChildFire = 0x809F5F38; // type:func -EnFd_SpawnDot = 0x809F6058; // type:func -EnFd_CheckHammer = 0x809F61C4; // type:func -EnFd_ColliderCheck = 0x809F6260; // type:func -EnFd_CanSeeActor = 0x809F63F8; // type:func -EnFd_FindBomb = 0x809F6508; // type:func -EnFd_FindPotentialTheat = 0x809F65C8; // type:func -EnFd_GetPosAdjAroundCircle = 0x809F663C; // type:func -EnFd_ShouldStopRunning = 0x809F6704; // type:func -EnFd_Fade = 0x809F6838; // type:func -EnFd_Init = 0x809F6948; // type:func -EnFd_Destroy = 0x809F6A84; // type:func -EnFd_Reappear = 0x809F6AB0; // type:func -EnFd_SpinAndGrow = 0x809F6B40; // type:func -EnFd_JumpToGround = 0x809F6C14; // type:func -EnFd_Land = 0x809F6C90; // type:func -EnFd_SpinAndSpawnFire = 0x809F6D70; // type:func -EnFd_Run = 0x809F6F90; // type:func -EnFd_WaitForCore = 0x809F71F0; // type:func -EnFd_Update = 0x809F7268; // type:func -EnFd_OverrideLimbDraw = 0x809F7464; // type:func -EnFd_PostLimbDraw = 0x809F74A0; // type:func -EnFd_Draw = 0x809F77CC; // type:func -EnFd_SpawnEffect = 0x809F7B78; // type:func -EnFd_UpdateEffectsFlames = 0x809F7C68; // type:func -EnFd_UpdateEffectsDots = 0x809F7D80; // type:func -EnFd_DrawEffectsFlames = 0x809F7E9C; // type:func -EnFd_DrawEffectsDots = 0x809F8270; // type:func -EnFdFire_UpdatePos = 0x809F8AE0; // type:func -EnFdFire_CheckCollider = 0x809F8BA8; // type:func -EnFdFire_Init = 0x809F8C0C; // type:func -EnFdFire_Destroy = 0x809F8D14; // type:func -func_80A0E70C = 0x809F8D40; // type:func -EnFdFire_WaitToDie = 0x809F8E7C; // type:func -EnFdFire_DanceTowardsPlayer = 0x809F8EB8; // type:func -EnFdFire_Disappear = 0x809F9068; // type:func -EnFdFire_Update = 0x809F911C; // type:func -EnFdFire_Draw = 0x809F9218; // type:func -EnFhgFire_SetUpdate = 0x809F97F0; // type:func -EnFhgFire_Init = 0x809F97FC; // type:func -EnFhgFire_Destroy = 0x809F9C0C; // type:func -EnFhgFire_LightningStrike = 0x809F9C7C; // type:func -EnFhgFire_LightningTrail = 0x809FA014; // type:func -EnFhgFire_LightningShock = 0x809FA1B4; // type:func -EnFhgFire_LightningBurst = 0x809FA2F8; // type:func -EnFhgFire_SpearLight = 0x809FA574; // type:func -EnFhgFire_EnergyBall = 0x809FA768; // type:func -EnFhgFire_PhantomWarp = 0x809FB414; // type:func -EnFhgFire_Update = 0x809FB5D0; // type:func -EnFhgFire_Draw = 0x809FB620; // type:func -EnFireRock_Init = 0x809FBE90; // type:func -EnFireRock_Destroy = 0x809FC280; // type:func -EnFireRock_Fall = 0x809FC2E4; // type:func -EnFireRock_SpawnMoreBrokenPieces = 0x809FC638; // type:func -FireRock_WaitSpawnRocksFromCeiling = 0x809FC7B8; // type:func -FireRock_WaitOnFloor = 0x809FC8A8; // type:func -EnFireRock_Update = 0x809FC98C; // type:func -EnFireRock_Draw = 0x809FCC38; // type:func -EnFirefly_Extinguish = 0x809FCFA0; // type:func -EnFirefly_Ignite = 0x809FCFCC; // type:func -EnFirefly_Init = 0x809FD00C; // type:func -EnFirefly_Destroy = 0x809FD204; // type:func -EnFirefly_SetupFlyIdle = 0x809FD230; // type:func -EnFirefly_SetupFall = 0x809FD2DC; // type:func -EnFirefly_SetupDie = 0x809FD380; // type:func -EnFirefly_SetupRebound = 0x809FD3A4; // type:func -EnFirefly_SetupDiveAttack = 0x809FD3E0; // type:func -EnFirefly_SetupFlyAway = 0x809FD450; // type:func -EnFirefly_SetupStunned = 0x809FD480; // type:func -EnFirefly_SetupFrozenFall = 0x809FD4F0; // type:func -EnFirefly_SetupPerch = 0x809FD690; // type:func -EnFirefly_SetupDisturbDiveAttack = 0x809FD6B4; // type:func -EnFirefly_ReturnToPerch = 0x809FD6F0; // type:func -EnFirefly_SeekTorch = 0x809FD80C; // type:func -EnFirefly_FlyIdle = 0x809FD95C; // type:func -EnFirefly_Fall = 0x809FDBEC; // type:func -EnFirefly_Die = 0x809FDCBC; // type:func -EnFirefly_DiveAttack = 0x809FDD38; // type:func -EnFirefly_Rebound = 0x809FDF4C; // type:func -EnFirefly_FlyAway = 0x809FDFE0; // type:func -EnFirefly_Stunned = 0x809FE148; // type:func -EnFirefly_FrozenFall = 0x809FE1EC; // type:func -EnFirefly_Perch = 0x809FE24C; // type:func -EnFirefly_DisturbDiveAttack = 0x809FE30C; // type:func -EnFirefly_Combust = 0x809FE3E4; // type:func -EnFirefly_UpdateDamage = 0x809FE464; // type:func -EnFirefly_Update = 0x809FE614; // type:func -EnFirefly_OverrideLimbDraw = 0x809FE8BC; // type:func -EnFirefly_PostLimbDraw = 0x809FE910; // type:func -EnFirefly_Draw = 0x809FECA0; // type:func -EnFirefly_DrawInvisible = 0x809FED54; // type:func -EnFish_XZDistanceSquared = 0x809FF110; // type:func -EnFish_SetInWaterAnimation = 0x809FF140; // type:func -EnFish_SetOutOfWaterAnimation = 0x809FF1A4; // type:func -EnFish_BeginRespawn = 0x809FF208; // type:func -EnFish_SetCutsceneData = 0x809FF23C; // type:func -EnFish_ClearCutsceneData = 0x809FF2D4; // type:func -EnFish_Init = 0x809FF2FC; // type:func -EnFish_Destroy = 0x809FF440; // type:func -EnFish_SetYOffset = 0x809FF46C; // type:func -EnFish_InBottleRange = 0x809FF524; // type:func -EnFish_CheckXZDistanceToPlayer = 0x809FF614; // type:func -EnFish_Respawning_SetupSlowDown = 0x809FF644; // type:func -EnFish_Respawning_SlowDown = 0x809FF69C; // type:func -EnFish_Respawning_SetupFollowChild = 0x809FF790; // type:func -EnFish_Respawning_FollowChild = 0x809FF7E8; // type:func -EnFish_Respawning_SetupFleePlayer = 0x809FF97C; // type:func -EnFish_Respawning_FleePlayer = 0x809FF9D4; // type:func -EnFish_Respawning_SetupApproachPlayer = 0x809FFBC4; // type:func -EnFish_Respawning_ApproachPlayer = 0x809FFC1C; // type:func -EnFish_Dropped_SetupFall = 0x809FFDE0; // type:func -EnFish_Dropped_Fall = 0x809FFE40; // type:func -EnFish_Dropped_SetupFlopOnGround = 0x809FFF48; // type:func -EnFish_Dropped_FlopOnGround = 0x80A0008C; // type:func -EnFish_Dropped_SetupSwimAway = 0x80A00268; // type:func -EnFish_Dropped_SwimAway = 0x80A002DC; // type:func -EnFish_Unique_SetupSwimIdle = 0x80A004A4; // type:func -EnFish_Unique_SwimIdle = 0x80A004FC; // type:func -EnFish_Cutscene_FlopOnGround = 0x80A00724; // type:func -EnFish_Cutscene_WiggleFlyingThroughAir = 0x80A00854; // type:func -EnFish_UpdateCutscene = 0x80A008F0; // type:func -EnFish_OrdinaryUpdate = 0x80A00AB0; // type:func -EnFish_RespawningUpdate = 0x80A00C34; // type:func -EnFish_Update = 0x80A00D48; // type:func -EnFish_Draw = 0x80A00DF4; // type:func -EnFloormas_Init = 0x80A01220; // type:func -EnFloormas_Destroy = 0x80A01434; // type:func -EnFloormas_MakeInvulnerable = 0x80A01460; // type:func -EnFloormas_MakeVulnerable = 0x80A01484; // type:func -EnFloormas_SetupBigDecideAction = 0x80A014A0; // type:func -EnFloormas_SetupStand = 0x80A014E8; // type:func -EnFloormas_SetupBigWalk = 0x80A0152C; // type:func -EnFloormas_SetupBigStopWalk = 0x80A015B8; // type:func -EnFloormas_SetupRun = 0x80A01600; // type:func -EnFloormas_SetupTurn = 0x80A01630; // type:func -EnFloormas_SetupHover = 0x80A01760; // type:func -EnFloormas_SetupCharge = 0x80A01838; // type:func -EnFloormas_SetupLand = 0x80A0186C; // type:func -EnFloormas_SetupSplit = 0x80A01918; // type:func -EnFloormas_SetupSmallWalk = 0x80A01A78; // type:func -EnFloormas_SetupSmallDecideAction = 0x80A01AC8; // type:func -EnFloormas_SetupSmallShrink = 0x80A01B28; // type:func -EnFloormas_SetupSmallFollowerJumpAtLeader = 0x80A01C00; // type:func -EnFloormas_SetupJumpAtLink = 0x80A01C6C; // type:func -EnFloormas_SetupGrabLink = 0x80A01CD8; // type:func -EnFloormas_SetupMerge = 0x80A01EAC; // type:func -EnFloormas_SetupSmallWait = 0x80A01F04; // type:func -EnFloormas_SetupTakeDamage = 0x80A01F88; // type:func -EnFloormas_SetupRecover = 0x80A02044; // type:func -EnFloormas_SetupFreeze = 0x80A02098; // type:func -EnFloormas_Die = 0x80A02198; // type:func -EnFloormas_BigDecideAction = 0x80A02234; // type:func -EnFloormas_Stand = 0x80A022F8; // type:func -EnFloormas_BigWalk = 0x80A02384; // type:func -EnFloormas_BigStopWalk = 0x80A024E0; // type:func -EnFloormas_Run = 0x80A0251C; // type:func -EnFloormas_Turn = 0x80A02628; // type:func -EnFloormas_Hover = 0x80A027EC; // type:func -EnFloormas_Slide = 0x80A02870; // type:func -EnFloormas_Charge = 0x80A029B0; // type:func -EnFloormas_Land = 0x80A02AA0; // type:func -EnFloormas_Split = 0x80A02C88; // type:func -EnFloormas_SmallWalk = 0x80A02D10; // type:func -EnFloormas_SmallDecideAction = 0x80A02E00; // type:func -EnFloormas_SmallShrink = 0x80A02F68; // type:func -EnFloormas_JumpAtLink = 0x80A02FC0; // type:func -EnFloormas_GrabLink = 0x80A030FC; // type:func -EnFloormas_SmallFollowerJumpAtLeader = 0x80A03418; // type:func -EnFloormas_Merge = 0x80A03628; // type:func -EnFloormas_SmallWait = 0x80A038D8; // type:func -EnFloormas_TakeDamage = 0x80A038E8; // type:func -EnFloormas_Recover = 0x80A039AC; // type:func -EnFloormas_Freeze = 0x80A039E8; // type:func -EnFloormas_ColliderCheck = 0x80A03A5C; // type:func -EnFloormas_Update = 0x80A03C0C; // type:func -EnFloormas_OverrideLimbDraw = 0x80A03E74; // type:func -EnFloormas_PostLimbDraw = 0x80A03EB0; // type:func -EnFloormas_Draw = 0x80A03FA0; // type:func -EnFloormas_DrawHighlighted = 0x80A0406C; // type:func -EnFr_OrientUnderwater = 0x80A04600; // type:func -EnFr_Init = 0x80A04714; // type:func -EnFr_DrawIdle = 0x80A047CC; // type:func -EnFr_DrawActive = 0x80A047F4; // type:func -EnFr_Update = 0x80A04808; // type:func -EnFr_Destroy = 0x80A04B00; // type:func -EnFr_IsDivingIntoWater = 0x80A04B34; // type:func -EnFr_DivingIntoWater = 0x80A04BB8; // type:func -EnFr_IsBelowLogSpot = 0x80A04C64; // type:func -EnFr_IsAboveAndWithin30DistXZ = 0x80A04CC0; // type:func -EnFr_DecrementBlinkTimer = 0x80A04D3C; // type:func -EnFr_DecrementBlinkTimerUpdate = 0x80A04D64; // type:func -EnFr_SetupJumpingOutOfWater = 0x80A04DF4; // type:func -EnFr_JumpingOutOfWater = 0x80A04E94; // type:func -EnFr_OrientOnLogSpot = 0x80A05034; // type:func -EnFr_ChooseJumpFromLogSpot = 0x80A050F4; // type:func -EnFr_JumpingUp = 0x80A05208; // type:func -EnFr_JumpingBackIntoWater = 0x80A05348; // type:func -EnFr_SetScaleActive = 0x80A054A0; // type:func -EnFr_ButterflyPath = 0x80A055A8; // type:func -EnFr_UpdateActive = 0x80A05704; // type:func -EnFr_SetupJumpingUp = 0x80A057E8; // type:func -EnFr_Idle = 0x80A05888; // type:func -EnFr_Activate = 0x80A05968; // type:func -EnFr_ActivateCheckFrogSong = 0x80A059D0; // type:func -func_80A1BE98 = 0x80A05A74; // type:func -EnFr_ListeningToOcarinaNotes = 0x80A05AEC; // type:func -EnFr_ChildSong = 0x80A05C38; // type:func -EnFr_ChildSongFirstTime = 0x80A05D70; // type:func -EnFr_TalkBeforeFrogSong = 0x80A05DC8; // type:func -EnFr_CheckOcarinaInputFrogSong = 0x80A05E30; // type:func -EnFr_DeactivateButterfly = 0x80A05F2C; // type:func -EnFr_GetNextNoteFrogSong = 0x80A05F74; // type:func -EnFr_SetupFrogSong = 0x80A05FF0; // type:func -EnFr_IsFrogSongComplete = 0x80A06064; // type:func -EnFr_OcarinaMistake = 0x80A06114; // type:func -EnFr_ContinueFrogSong = 0x80A06170; // type:func -EnFr_SetupReward = 0x80A06314; // type:func -EnFr_PrintTextBox = 0x80A06390; // type:func -EnFr_TalkBeforeReward = 0x80A063D0; // type:func -EnFr_SetReward = 0x80A06438; // type:func -EnFr_Deactivate = 0x80A0654C; // type:func -EnFr_GiveReward = 0x80A0664C; // type:func -EnFr_SetIdle = 0x80A066AC; // type:func -EnFr_UpdateIdle = 0x80A06700; // type:func -EnFr_OverrideLimbDraw = 0x80A0672C; // type:func -EnFr_PostLimbDraw = 0x80A06758; // type:func -EnFr_Draw = 0x80A06810; // type:func -EnFu_Init = 0x80A07090; // type:func -EnFu_Destroy = 0x80A071A4; // type:func -func_80A1D94C = 0x80A071D0; // type:func -func_80A1DA04 = 0x80A0728C; // type:func -EnFu_WaitChild = 0x80A07328; // type:func -func_80A1DB60 = 0x80A073EC; // type:func -func_80A1DBA0 = 0x80A0742C; // type:func -func_80A1DBD4 = 0x80A07464; // type:func -EnFu_WaitForPlayback = 0x80A075D4; // type:func -EnFu_TeachSong = 0x80A0763C; // type:func -EnFu_WaitAdult = 0x80A076B8; // type:func -EnFu_Update = 0x80A07808; // type:func -EnFu_OverrideLimbDraw = 0x80A079B0; // type:func -EnFu_PostLimbDraw = 0x80A07B0C; // type:func -EnFu_Draw = 0x80A07B4C; // type:func -EnFw_DoBounce = 0x80A07DE0; // type:func -EnFw_PlayerInRange = 0x80A07EA8; // type:func -EnFw_GetPosAdjAroundCircle = 0x80A07FA4; // type:func -EnFw_CheckCollider = 0x80A08078; // type:func -EnFw_SpawnDust = 0x80A08138; // type:func -EnFw_Init = 0x80A08380; // type:func -EnFw_Destroy = 0x80A08488; // type:func -EnFw_Bounce = 0x80A084B4; // type:func -EnFw_Run = 0x80A08520; // type:func -EnFw_TurnToParentInitPos = 0x80A08AF4; // type:func -EnFw_JumpToParentInitPos = 0x80A08BE8; // type:func -EnFw_Update = 0x80A08C9C; // type:func -EnFw_OverrideLimbDraw = 0x80A08D7C; // type:func -EnFw_PostLimbDraw = 0x80A08D98; // type:func -EnFw_Draw = 0x80A08E34; // type:func -EnFw_SpawnEffectDust = 0x80A08EBC; // type:func -EnFw_UpdateEffects = 0x80A08F60; // type:func -EnFw_DrawEffects = 0x80A0906C; // type:func -EnFz_Init = 0x80A095A0; // type:func -EnFz_Destroy = 0x80A09720; // type:func -EnFz_UpdateTargetPos = 0x80A09770; // type:func -EnFz_ReachedTarget = 0x80A09890; // type:func -EnFz_Damaged = 0x80A098E0; // type:func -EnFz_SpawnIceSmokeHiddenState = 0x80A09AD4; // type:func -EnFz_SpawnIceSmokeGrowingState = 0x80A09AE0; // type:func -EnFz_SpawnIceSmokeActiveState = 0x80A09BC0; // type:func -EnFz_ApplyDamage = 0x80A09C84; // type:func -EnFz_SetYawTowardsPlayer = 0x80A09EEC; // type:func -EnFz_SetupDisappear = 0x80A09F2C; // type:func -EnFz_Disappear = 0x80A09F5C; // type:func -EnFz_SetupWait = 0x80A09FDC; // type:func -EnFz_Wait = 0x80A0A01C; // type:func -EnFz_SetupAppear = 0x80A0A06C; // type:func -EnFz_Appear = 0x80A0A098; // type:func -EnFz_SetupAimForMove = 0x80A0A128; // type:func -EnFz_AimForMove = 0x80A0A16C; // type:func -EnFz_SetupMoveTowardsPlayer = 0x80A0A1A8; // type:func -EnFz_MoveTowardsPlayer = 0x80A0A1DC; // type:func -EnFz_SetupAimForFreeze = 0x80A0A218; // type:func -EnFz_AimForFreeze = 0x80A0A248; // type:func -EnFz_SetupBlowSmoke = 0x80A0A284; // type:func -EnFz_BlowSmoke = 0x80A0A2BC; // type:func -EnFz_SetupDespawn = 0x80A0A4A8; // type:func -EnFz_Despawn = 0x80A0A548; // type:func -EnFz_SetupMelt = 0x80A0A578; // type:func -EnFz_Melt = 0x80A0A5BC; // type:func -EnFz_SetupBlowSmokeStationary = 0x80A0A684; // type:func -EnFz_BlowSmokeStationary = 0x80A0A6C8; // type:func -EnFz_Update = 0x80A0A8C0; // type:func -EnFz_Draw = 0x80A0AA50; // type:func -EnFz_SpawnIceSmokeNoFreeze = 0x80A0AC0C; // type:func -EnFz_SpawnIceSmokeFreeze = 0x80A0ACB0; // type:func -EnFz_UpdateIceSmoke = 0x80A0AD6C; // type:func -EnFz_DrawEffects = 0x80A0B058; // type:func -EnGSwitch_Init = 0x80A0B5B0; // type:func -EnGSwitch_Destroy = 0x80A0B848; // type:func -EnGSwitch_Break = 0x80A0B874; // type:func -EnGSwitch_WaitForObject = 0x80A0BA1C; // type:func -EnGSwitch_SilverRupeeTracker = 0x80A0BAB4; // type:func -EnGSwitch_SilverRupeeIdle = 0x80A0BB98; // type:func -EnGSwitch_SilverRupeeCollected = 0x80A0BC80; // type:func -EnGSwitch_GalleryRupee = 0x80A0BD64; // type:func -EnGSwitch_ArcheryPot = 0x80A0C104; // type:func -EnGSwitch_Kill = 0x80A0C3EC; // type:func -EnGSwitch_Update = 0x80A0C41C; // type:func -EnGSwitch_DrawPot = 0x80A0C550; // type:func -EnGSwitch_DrawRupee = 0x80A0C5E4; // type:func -EnGSwitch_SpawnEffects = 0x80A0C714; // type:func -EnGSwitch_UpdateEffects = 0x80A0C828; // type:func -EnGSwitch_DrawEffects = 0x80A0C9E8; // type:func -EnGanonMant_Init = 0x80A0CDD0; // type:func -EnGanonMant_Destroy = 0x80A0CDEC; // type:func -EnGanonMant_Tear = 0x80A0CDFC; // type:func -EnGanonMant_UpdateStrand = 0x80A0D058; // type:func -EnGanonMant_UpdateVertices = 0x80A0D61C; // type:func -EnGanonMant_Update = 0x80A0D840; // type:func -EnGanonMant_DrawCloak = 0x80A0D8FC; // type:func -EnGanonMant_Draw = 0x80A0DA18; // type:func -EnGanonOrgan_Init = 0x80A11000; // type:func -EnGanonOrgan_Destroy = 0x80A1101C; // type:func -EnGanonOrgan_Update = 0x80A1102C; // type:func -EnGanonOrgan_EmptyDList = 0x80A11070; // type:func -func_80A280BC = 0x80A11094; // type:func -func_80A28148 = 0x80A1110C; // type:func -EnGanonOrgan_Draw = 0x80A1117C; // type:func -func_80A2F180 = 0x80A18040; // type:func -EnGb_Init = 0x80A18070; // type:func -EnGb_Destroy = 0x80A18470; // type:func -func_80A2F608 = 0x80A184CC; // type:func -func_80A2F760 = 0x80A18624; // type:func -func_80A2F7C0 = 0x80A18684; // type:func -func_80A2F83C = 0x80A18700; // type:func -func_80A2F94C = 0x80A1881C; // type:func -func_80A2F9C0 = 0x80A18894; // type:func -func_80A2FA50 = 0x80A18928; // type:func -func_80A2FB40 = 0x80A18A18; // type:func -func_80A2FBB0 = 0x80A18A8C; // type:func -func_80A2FC0C = 0x80A18AEC; // type:func -func_80A2FC70 = 0x80A18B54; // type:func -EnGb_Update = 0x80A18C58; // type:func -EnGb_Draw = 0x80A18D90; // type:func -EnGb_UpdateCagedSouls = 0x80A18EB0; // type:func -EnGb_DrawCagedSouls = 0x80A19208; // type:func -EnGe1_Init = 0x80A19770; // type:func -EnGe1_Destroy = 0x80A19A34; // type:func -EnGe1_SetTalkAction = 0x80A19A60; // type:func -EnGe1_SetAnimationIdle = 0x80A19B40; // type:func -EnGe1_CheckCarpentersFreed = 0x80A19BC4; // type:func -EnGe1_KickPlayer = 0x80A19C00; // type:func -EnGe1_SpotPlayer = 0x80A19CE0; // type:func -EnGe1_WatchForPlayerFrontOnly = 0x80A19D40; // type:func -EnGe1_ChooseActionFromTextId = 0x80A19DF8; // type:func -EnGe1_SetNormalText = 0x80A19E8C; // type:func -EnGe1_WatchForAndSensePlayer = 0x80A19EBC; // type:func -EnGe1_GetReaction_ValleyFloor = 0x80A19F88; // type:func -EnGe1_WaitTillOpened_GTGGuard = 0x80A19FDC; // type:func -EnGe1_Open_GTGGuard = 0x80A1A02C; // type:func -EnGe1_SetupOpen_GTGGuard = 0x80A1A0DC; // type:func -EnGe1_RefuseEntryTooPoor_GTGGuard = 0x80A1A19C; // type:func -EnGe1_OfferOpen_GTGGuard = 0x80A1A1DC; // type:func -EnGe1_RefuseOpenNoCard_GTGGuard = 0x80A1A2CC; // type:func -EnGe1_CheckForCard_GTGGuard = 0x80A1A310; // type:func -EnGe1_WaitGateOpen_GateOp = 0x80A1A378; // type:func -EnGe1_WaitUntilGateOpened_GateOp = 0x80A1A3EC; // type:func -EnGe1_OpenGate_GateOp = 0x80A1A43C; // type:func -EnGe1_SetupOpenGate_GateOp = 0x80A1A4EC; // type:func -EnGe1_CheckGate_GateOp = 0x80A1A5B8; // type:func -EnGe1_Talk_GateGuard = 0x80A1A634; // type:func -EnGe1_GetReaction_GateGuard = 0x80A1A678; // type:func -EnGe1_SetupWait_Archery = 0x80A1A72C; // type:func -EnGe1_WaitTillItemGiven_Archery = 0x80A1A764; // type:func -EnGe1_BeginGiveItem_Archery = 0x80A1A858; // type:func -EnGe1_TalkWinPrize_Archery = 0x80A1A920; // type:func -EnGe1_TalkTooPoor_Archery = 0x80A1A980; // type:func -EnGe1_WaitDoNothing = 0x80A1A9E4; // type:func -EnGe1_BeginGame_Archery = 0x80A1A9F4; // type:func -EnGe1_TalkOfferPlay_Archery = 0x80A1AB94; // type:func -EnGe1_TalkNoPrize_Archery = 0x80A1ABF4; // type:func -EnGe1_TalkAfterGame_Archery = 0x80A1AC40; // type:func -EnGe1_TalkNoHorse_Archery = 0x80A1AD44; // type:func -EnGe1_Wait_Archery = 0x80A1AD88; // type:func -EnGe1_TurnToFacePlayer = 0x80A1AE20; // type:func -EnGe1_LookAtPlayer = 0x80A1AF38; // type:func -EnGe1_Update = 0x80A1B014; // type:func -EnGe1_CueUpAnimation = 0x80A1B15C; // type:func -EnGe1_StopFidget = 0x80A1B19C; // type:func -EnGe1_OverrideLimbDraw = 0x80A1B1F4; // type:func -EnGe1_PostLimbDraw = 0x80A1B348; // type:func -EnGe1_Draw = 0x80A1B3B4; // type:func -EnGe2_ChangeAction = 0x80A1B7A0; // type:func -EnGe2_Init = 0x80A1B848; // type:func -EnGe2_Destroy = 0x80A1BA60; // type:func -Ge2_DetectPlayerInAction = 0x80A1BA8C; // type:func -Ge2_DetectPlayerInUpdate = 0x80A1BB38; // type:func -EnGe2_CheckCarpentersFreed = 0x80A1BC68; // type:func -EnGe2_CaptureClose = 0x80A1BC94; // type:func -EnGe2_CaptureCharge = 0x80A1BD68; // type:func -EnGe2_CaptureTurn = 0x80A1BE9C; // type:func -EnGe2_KnockedOut = 0x80A1BF14; // type:func -EnGe2_TurnPlayerSpotted = 0x80A1C00C; // type:func -EnGe2_AboutTurn = 0x80A1C114; // type:func -EnGe2_Walk = 0x80A1C1CC; // type:func -EnGe2_Stand = 0x80A1C294; // type:func -EnGe2_TurnToFacePlayer = 0x80A1C2D4; // type:func -EnGe2_LookAtPlayer = 0x80A1C3EC; // type:func -EnGe2_SetActionAfterTalk = 0x80A1C500; // type:func -EnGe2_WaitLookAtPlayer = 0x80A1C5C4; // type:func -EnGe2_WaitTillCardGiven = 0x80A1C5E4; // type:func -EnGe2_GiveCard = 0x80A1C648; // type:func -EnGe2_ForceTalk = 0x80A1C6DC; // type:func -EnGe2_SetupCapturePlayer = 0x80A1C760; // type:func -EnGe2_MaintainColliderAndSetAnimState = 0x80A1C7D0; // type:func -EnGe2_MoveAndBlink = 0x80A1C878; // type:func -EnGe2_UpdateFriendly = 0x80A1C904; // type:func -EnGe2_UpdateAfterTalk = 0x80A1C9DC; // type:func -EnGe2_Update = 0x80A1CA30; // type:func -EnGe2_UpdateStunned = 0x80A1CC18; // type:func -EnGe2_OverrideLimbDraw = 0x80A1CD4C; // type:func -EnGe2_PostLimbDraw = 0x80A1CD94; // type:func -EnGe2_Draw = 0x80A1CDD4; // type:func -EnGe3_ChangeAction = 0x80A1D140; // type:func -EnGe3_Init = 0x80A1D1E8; // type:func -EnGe3_Destroy = 0x80A1D2F0; // type:func -EnGe3_TurnToFacePlayer = 0x80A1D31C; // type:func -EnGe3_LookAtPlayer = 0x80A1D434; // type:func -EnGe3_Wait = 0x80A1D548; // type:func -EnGe3_WaitLookAtPlayer = 0x80A1D5AC; // type:func -EnGe3_WaitTillCardGiven = 0x80A1D5CC; // type:func -EnGe3_GiveCard = 0x80A1D630; // type:func -EnGe3_ForceTalk = 0x80A1D6C4; // type:func -EnGe3_UpdateCollision = 0x80A1D77C; // type:func -EnGe3_MoveAndBlink = 0x80A1D824; // type:func -EnGe3_UpdateWhenNotTalking = 0x80A1D8B0; // type:func -EnGe3_Update = 0x80A1D964; // type:func -EnGe3_OverrideLimbDraw = 0x80A1D9B0; // type:func -EnGe3_PostLimbDraw = 0x80A1DB04; // type:func -EnGe3_Draw = 0x80A1DB60; // type:func -EnGeldB_SetupAction = 0x80A1DD80; // type:func -EnGeldB_Init = 0x80A1DD8C; // type:func -EnGeldB_Destroy = 0x80A1DFB0; // type:func -EnGeldB_ReactToPlayer = 0x80A1E018; // type:func -EnGeldB_SetupWait = 0x80A1E3F0; // type:func -EnGeldB_Wait = 0x80A1E484; // type:func -EnGeldB_SetupFlee = 0x80A1E608; // type:func -EnGeldB_Flee = 0x80A1E6A0; // type:func -EnGeldB_SetupReady = 0x80A1E7C8; // type:func -EnGeldB_Ready = 0x80A1E850; // type:func -EnGeldB_SetupAdvance = 0x80A1EB34; // type:func -EnGeldB_Advance = 0x80A1EBB4; // type:func -EnGeldB_SetupRollForward = 0x80A1F060; // type:func -EnGeldB_RollForward = 0x80A1F114; // type:func -EnGeldB_SetupPivot = 0x80A1F26C; // type:func -EnGeldB_Pivot = 0x80A1F2B8; // type:func -EnGeldB_SetupCircle = 0x80A1F498; // type:func -EnGeldB_Circle = 0x80A1F56C; // type:func -EnGeldB_SetupSpinDodge = 0x80A1FB48; // type:func -EnGeldB_SpinDodge = 0x80A1FCB0; // type:func -EnGeldB_SetupSlash = 0x80A20100; // type:func -EnGeldB_Slash = 0x80A20170; // type:func -EnGeldB_SetupSpinAttack = 0x80A203C0; // type:func -EnGeldB_SpinAttack = 0x80A20454; // type:func -EnGeldB_SetupRollBack = 0x80A20808; // type:func -EnGeldB_RollBack = 0x80A20884; // type:func -EnGeldB_SetupStunned = 0x80A20988; // type:func -EnGeldB_Stunned = 0x80A20A34; // type:func -EnGeldB_SetupDamaged = 0x80A20AF0; // type:func -EnGeldB_Damaged = 0x80A20B88; // type:func -EnGeldB_SetupJump = 0x80A20D30; // type:func -EnGeldB_Jump = 0x80A20DE8; // type:func -EnGeldB_SetupBlock = 0x80A20ED0; // type:func -EnGeldB_Block = 0x80A20F88; // type:func -EnGeldB_SetupSidestep = 0x80A21274; // type:func -EnGeldB_Sidestep = 0x80A21404; // type:func -EnGeldB_SetupDefeated = 0x80A21B24; // type:func -EnGeldB_Defeated = 0x80A21BC8; // type:func -EnGeldB_TurnHead = 0x80A21C84; // type:func -EnGeldB_CollisionCheck = 0x80A21D84; // type:func -EnGeldB_Update = 0x80A21F50; // type:func -EnGeldB_OverrideLimbDraw = 0x80A2213C; // type:func -EnGeldB_PostLimbDraw = 0x80A22284; // type:func -EnGeldB_Draw = 0x80A224FC; // type:func -EnGeldB_DodgeRanged = 0x80A2286C; // type:func -EnGirlA_SetupAction = 0x80A23130; // type:func -EnGirlA_TryChangeShopItem = 0x80A2313C; // type:func -EnGirlA_InitItem = 0x80A232B4; // type:func -EnGirlA_Init = 0x80A23358; // type:func -EnGirlA_Destroy = 0x80A2338C; // type:func -EnGirlA_CanBuy_Arrows = 0x80A233BC; // type:func -EnGirlA_CanBuy_Bombs = 0x80A2346C; // type:func -EnGirlA_CanBuy_DekuNuts = 0x80A2350C; // type:func -EnGirlA_CanBuy_DekuSticks = 0x80A235C4; // type:func -EnGirlA_CanBuy_Fish = 0x80A2367C; // type:func -EnGirlA_CanBuy_RedPotion = 0x80A236F4; // type:func -EnGirlA_CanBuy_GreenPotion = 0x80A2376C; // type:func -EnGirlA_CanBuy_BluePotion = 0x80A237E4; // type:func -EnGirlA_CanBuy_Longsword = 0x80A2385C; // type:func -EnGirlA_CanBuy_HylianShield = 0x80A238F0; // type:func -EnGirlA_CanBuy_DekuShield = 0x80A23970; // type:func -EnGirlA_CanBuy_GoronTunic = 0x80A239F0; // type:func -EnGirlA_CanBuy_ZoraTunic = 0x80A23A98; // type:func -EnGirlA_CanBuy_RecoveryHeart = 0x80A23B40; // type:func -EnGirlA_CanBuy_MilkBottle = 0x80A23B8C; // type:func -EnGirlA_CanBuy_WeirdEgg = 0x80A23BE8; // type:func -EnGirlA_CanBuy_Unk19 = 0x80A23C44; // type:func -EnGirlA_CanBuy_Unk20 = 0x80A23C58; // type:func -EnGirlA_CanBuy_Bombchus = 0x80A23C6C; // type:func -EnGirlA_CanBuy_DekuSeeds = 0x80A23CF0; // type:func -EnGirlA_CanBuy_SoldOut = 0x80A23DA0; // type:func -EnGirlA_CanBuy_BlueFire = 0x80A23DB4; // type:func -EnGirlA_CanBuy_Bugs = 0x80A23E2C; // type:func -EnGirlA_CanBuy_Poe = 0x80A23EA4; // type:func -EnGirlA_CanBuy_Fairy = 0x80A23F1C; // type:func -EnGirlA_ItemGive_Arrows = 0x80A23F94; // type:func -EnGirlA_ItemGive_Bombs = 0x80A23FDC; // type:func -EnGirlA_ItemGive_DekuNuts = 0x80A2407C; // type:func -EnGirlA_ItemGive_DekuSticks = 0x80A240EC; // type:func -EnGirlA_ItemGive_Longsword = 0x80A24128; // type:func -EnGirlA_ItemGive_HylianShield = 0x80A24170; // type:func -EnGirlA_ItemGive_DekuShield = 0x80A241AC; // type:func -EnGirlA_ItemGive_GoronTunic = 0x80A241E8; // type:func -EnGirlA_ItemGive_ZoraTunic = 0x80A24224; // type:func -EnGirlA_ItemGive_Health = 0x80A24260; // type:func -EnGirlA_ItemGive_MilkBottle = 0x80A242A0; // type:func -EnGirlA_ItemGive_WeirdEgg = 0x80A242DC; // type:func -EnGirlA_ItemGive_Unk19 = 0x80A24318; // type:func -EnGirlA_ItemGive_Unk20 = 0x80A24348; // type:func -EnGirlA_ItemGive_DekuSeeds = 0x80A24378; // type:func -EnGirlA_ItemGive_BottledItem = 0x80A243B4; // type:func -EnGirlA_BuyEvent_ShieldDiscount = 0x80A244E4; // type:func -EnGirlA_BuyEvent_GoronTunic = 0x80A24584; // type:func -EnGirlA_BuyEvent_ZoraTunic = 0x80A245B4; // type:func -EnGirlA_BuyEvent_ObtainBombchuPack = 0x80A245E4; // type:func -EnGirlA_Noop = 0x80A246F8; // type:func -EnGirlA_SetItemDescription = 0x80A24708; // type:func -EnGirlA_SetItemOutOfStock = 0x80A24830; // type:func -EnGirlA_UpdateStockedItem = 0x80A24864; // type:func -EnGirlA_TrySetMaskItemDescription = 0x80A248DC; // type:func -EnGirlA_WaitForObject = 0x80A2496C; // type:func -EnGirlA_Update2 = 0x80A24D1C; // type:func -EnGirlA_Update = 0x80A24DD8; // type:func -func_80A3C498 = 0x80A24DFC; // type:func -EnGirlA_Draw = 0x80A24E40; // type:func -EnGm_Init = 0x80A25A50; // type:func -EnGm_Destroy = 0x80A25AB0; // type:func -func_80A3D7C8 = 0x80A25ADC; // type:func -func_80A3D838 = 0x80A25B4C; // type:func -EnGm_UpdateEye = 0x80A25CEC; // type:func -EnGm_SetTextID = 0x80A25D64; // type:func -func_80A3DB04 = 0x80A25E18; // type:func -func_80A3DBF4 = 0x80A25F08; // type:func -func_80A3DC44 = 0x80A25F5C; // type:func -func_80A3DD7C = 0x80A26098; // type:func -EnGm_ProcessChoiceIndex = 0x80A26130; // type:func -func_80A3DF00 = 0x80A26220; // type:func -func_80A3DF60 = 0x80A26284; // type:func -func_80A3DFBC = 0x80A262E4; // type:func -EnGm_Update = 0x80A26398; // type:func -func_80A3E090 = 0x80A263BC; // type:func -EnGm_Draw = 0x80A2651C; // type:func -EnGo_SetupAction = 0x80A26780; // type:func -EnGo_GetTextID = 0x80A2678C; // type:func -EnGo_UpdateTalkState = 0x80A26B1C; // type:func -EnGo_UpdateTalking = 0x80A26F3C; // type:func -EnGo_ChangeAnim = 0x80A26FFC; // type:func -EnGo_IsActorSpawned = 0x80A270AC; // type:func -EnGo_GetPlayerTrackingYOffset = 0x80A2720C; // type:func -func_80A3F060 = 0x80A27284; // type:func -func_80A3F0E4 = 0x80A27308; // type:func -EnGo_IsCameraModified = 0x80A27380; // type:func -EnGo_ReverseAnimation = 0x80A27484; // type:func -EnGo_UpdateShadow = 0x80A2749C; // type:func -EnGo_FollowPath = 0x80A27528; // type:func -EnGo_SetMovedPos = 0x80A276E4; // type:func -EnGo_SpawnDust = 0x80A277BC; // type:func -EnGo_IsRollingOnGround = 0x80A279E8; // type:func -func_80A3F908 = 0x80A27B34; // type:func -EnGo_Init = 0x80A27D64; // type:func -EnGo_Destroy = 0x80A280B4; // type:func -func_80A3FEB4 = 0x80A280F4; // type:func -EnGo_StopRolling = 0x80A28138; // type:func -func_80A4008C = 0x80A282CC; // type:func -EnGo_GoronLinkRolling = 0x80A2835C; // type:func -EnGo_FireGenericActionFunc = 0x80A28454; // type:func -EnGo_CurledUp = 0x80A28464; // type:func -EnGo_WakeUp = 0x80A28564; // type:func -func_80A40494 = 0x80A286E0; // type:func -func_80A405CC = 0x80A28818; // type:func -EnGo_BiggoronActionFunc = 0x80A2892C; // type:func -func_80A408D8 = 0x80A28B24; // type:func -func_80A40A54 = 0x80A28CA0; // type:func -func_80A40B1C = 0x80A28D68; // type:func -EnGo_GetItem = 0x80A28DC0; // type:func -func_80A40C78 = 0x80A28EC8; // type:func -EnGo_Eyedrops = 0x80A28FB0; // type:func -func_80A40DCC = 0x80A29020; // type:func -EnGo_Update = 0x80A290A4; // type:func -EnGo_DrawCurledUp = 0x80A291B4; // type:func -EnGo_DrawRolling = 0x80A29280; // type:func -EnGo_OverrideLimbDraw = 0x80A293AC; // type:func -EnGo_PostLimbDraw = 0x80A295C8; // type:func -EnGo_Draw = 0x80A29624; // type:func -EnGo_SpawnEffectDust = 0x80A297C4; // type:func -EnGo_UpdateEffects = 0x80A29868; // type:func -EnGo_DrawEffects = 0x80A29974; // type:func -EnGo2_SpawnEffectDust = 0x80A2ADC0; // type:func -EnGo2_UpdateEffects = 0x80A2AE64; // type:func -EnGo2_DrawEffects = 0x80A2AF70; // type:func -EnGo2_SpawnDust = 0x80A2B268; // type:func -EnGo2_GetItem = 0x80A2B480; // type:func -EnGo2_GetDialogState = 0x80A2B4C4; // type:func -EnGo2_GoronFireGenericGetTextId = 0x80A2B544; // type:func -EnGo2_GetTextIdGoronCityRollingBig = 0x80A2B5C0; // type:func -EnGo2_UpdateTalkStateGoronCityRollingBig = 0x80A2B648; // type:func -EnGo2_GetTextIdGoronDmtBombFlower = 0x80A2B740; // type:func -EnGo2_UpdateTalkStateGoronDmtBombFlower = 0x80A2B77C; // type:func -EnGo2_GetTextIdGoronDmtRollingSmall = 0x80A2B894; // type:func -EnGo2_UpdateTalkStateGoronDmtRollingSmall = 0x80A2B8EC; // type:func -EnGo2_GetTextIdGoronDmtDcEntrance = 0x80A2B928; // type:func -EnGo2_UpdateTalkStateGoronDmtDcEntrance = 0x80A2B9C4; // type:func -EnGo2_GetTextIdGoronCityEntrance = 0x80A2BA24; // type:func -EnGo2_UpdateTalkStateGoronCityEntrance = 0x80A2BAA4; // type:func -EnGo2_GetTextIdGoronCityIsland = 0x80A2BB04; // type:func -EnGo2_UpdateTalkStateGoronCityIsland = 0x80A2BB84; // type:func -EnGo2_GetTextIdGoronCityLowestFloor = 0x80A2BBE4; // type:func -EnGo2_UpdateTalkStateGoronCityLowestFloor = 0x80A2BCC0; // type:func -EnGo2_GetTextIdGoronCityLink = 0x80A2BD20; // type:func -EnGo2_UpdateTalkStateGoronCityLink = 0x80A2BDFC; // type:func -EnGo2_GetTextIdGoronDmtBiggoron = 0x80A2C014; // type:func -EnGo2_UpdateTalkStateGoronDmtBiggoron = 0x80A2C094; // type:func -EnGo2_GetTextIdGoronFireGeneric = 0x80A2C2A8; // type:func -EnGo2_UpdateTalkStateGoronFireGeneric = 0x80A2C2E0; // type:func -EnGo2_GetTextIdGoronCityStairwell = 0x80A2C37C; // type:func -EnGo2_UpdateTalkStateGoronCityStairwell = 0x80A2C3CC; // type:func -EnGo2_GetTextIdGoronMarketBazaar = 0x80A2C42C; // type:func -EnGo2_UpdateTalkStateGoronMarketBazaar = 0x80A2C440; // type:func -EnGo2_GetTextIdGoronCityLostWoods = 0x80A2C47C; // type:func -EnGo2_UpdateTalkStateGoronCityLostWoods = 0x80A2C4EC; // type:func -EnGo2_GetTextIdGoronDmtFairyHint = 0x80A2C54C; // type:func -EnGo2_UpdateTalkStateGoronDmtFairyHint = 0x80A2C5A4; // type:func -EnGo2_GetTextId = 0x80A2C5E0; // type:func -EnGo2_UpdateTalkState = 0x80A2C724; // type:func -func_80A44790 = 0x80A2C83C; // type:func -EnGo2_SetColliderDim = 0x80A2C938; // type:func -EnGo2_SetShape = 0x80A2C974; // type:func -EnGo2_CheckCollision = 0x80A2C9EC; // type:func -EnGo2_SwapInitialFrameAnimFrameCount = 0x80A2CB48; // type:func -func_80A44AB0 = 0x80A2CB60; // type:func -EnGo2_UpdateWaypoint = 0x80A2CD1C; // type:func -EnGo2_Orient = 0x80A2CD98; // type:func -func_80A44D84 = 0x80A2CE3C; // type:func -EnGo2_IsWakingUp = 0x80A2CE74; // type:func -EnGo2_IsRollingOnGround = 0x80A2CFA4; // type:func -EnGo2_BiggoronSetTextId = 0x80A2D140; // type:func -func_80A45288 = 0x80A2D340; // type:func -func_80A45360 = 0x80A2D41C; // type:func -EnGo2_RollForward = 0x80A2D528; // type:func -func_80A454CC = 0x80A2D588; // type:func -EnGo2_GetTargetXZSpeed = 0x80A2D634; // type:func -EnGo2_IsCameraModified = 0x80A2D6D8; // type:func -EnGo2_DefaultWakingUp = 0x80A2D7F4; // type:func -EnGo2_WakingUp = 0x80A2D84C; // type:func -EnGo2_BiggoronWakingUp = 0x80A2D8BC; // type:func -EnGo2_SelectGoronWakingUp = 0x80A2D90C; // type:func -EnGo2_EyeMouthTexState = 0x80A2D9F0; // type:func -EnGo2_SitDownAnimation = 0x80A2DAC4; // type:func -EnGo2_GetDustData = 0x80A2DBDC; // type:func -EnGo2_RollingAnimation = 0x80A2DC64; // type:func -EnGo2_WakeUp = 0x80A2DD18; // type:func -EnGo2_GetItemAnimation = 0x80A2DE0C; // type:func -EnGo2_SetupRolling = 0x80A2DE70; // type:func -EnGo2_StopRolling = 0x80A2DF18; // type:func -EnGo2_IsFreeingGoronInFire = 0x80A2DFD8; // type:func -EnGo2_IsGoronDmtBombFlower = 0x80A2E070; // type:func -EnGo2_IsGoronRollingBig = 0x80A2E0F0; // type:func -EnGo2_IsGoronFireGeneric = 0x80A2E150; // type:func -EnGo2_IsGoronLinkReversing = 0x80A2E18C; // type:func -EnGo2_IsRolling = 0x80A2E1E8; // type:func -EnGo2_GoronLinkAnimation = 0x80A2E27C; // type:func -EnGo2_GoronFireCamera = 0x80A2E3B0; // type:func -EnGo2_GoronFireClearCamera = 0x80A2E4B0; // type:func -EnGo2_BiggoronAnimation = 0x80A2E4F0; // type:func -EnGo2_Init = 0x80A2E5A4; // type:func -EnGo2_Destroy = 0x80A2EA38; // type:func -EnGo2_CurledUp = 0x80A2EA48; // type:func -func_80A46B40 = 0x80A2EC1C; // type:func -EnGo2_GoronDmtBombFlowerAnimation = 0x80A2EDB4; // type:func -EnGo2_GoronRollingBigContinueRolling = 0x80A2EE38; // type:func -EnGo2_ContinueRolling = 0x80A2EE98; // type:func -EnGo2_SlowRolling = 0x80A2EF30; // type:func -EnGo2_GroundRolling = 0x80A2F068; // type:func -EnGo2_ReverseRolling = 0x80A2F104; // type:func -EnGo2_SetupGetItem = 0x80A2F1CC; // type:func -EnGo2_SetGetItem = 0x80A2F240; // type:func -EnGo2_BiggoronEyedrops = 0x80A2F348; // type:func -EnGo2_GoronLinkStopRolling = 0x80A2F57C; // type:func -EnGo2_GoronFireGenericAction = 0x80A2F66C; // type:func -EnGo2_Update = 0x80A2F998; // type:func -EnGo2_DrawCurledUp = 0x80A2FAAC; // type:func -EnGo2_DrawRolling = 0x80A2FB70; // type:func -EnGo2_OverrideLimbDraw = 0x80A2FCAC; // type:func -EnGo2_PostLimbDraw = 0x80A2FEC8; // type:func -EnGo2_Draw = 0x80A2FF24; // type:func -EnGoma_Init = 0x80A30E00; // type:func -EnGoma_Destroy = 0x80A3118C; // type:func -EnGoma_SetupFlee = 0x80A311DC; // type:func -EnGoma_Flee = 0x80A31280; // type:func -EnGoma_EggFallToGround = 0x80A31320; // type:func -EnGoma_Egg = 0x80A315AC; // type:func -EnGoma_SetupHatch = 0x80A317EC; // type:func -EnGoma_Hatch = 0x80A318B4; // type:func -EnGoma_SetupHurt = 0x80A318FC; // type:func -EnGoma_Hurt = 0x80A319E8; // type:func -EnGoma_SetupDie = 0x80A31A70; // type:func -EnGoma_Die = 0x80A31B30; // type:func -EnGoma_SetupDead = 0x80A31BD4; // type:func -EnGoma_Dead = 0x80A31C4C; // type:func -EnGoma_SetupStand = 0x80A31DBC; // type:func -EnGoma_SetupChasePlayer = 0x80A31E48; // type:func -EnGoma_SetupPrepareJump = 0x80A31EC8; // type:func -EnGoma_PrepareJump = 0x80A31F44; // type:func -EnGoma_SetupLand = 0x80A31FDC; // type:func -EnGoma_Land = 0x80A32054; // type:func -EnGoma_SetupJump = 0x80A320C0; // type:func -EnGoma_Jump = 0x80A32168; // type:func -EnGoma_Stand = 0x80A32220; // type:func -EnGoma_ChasePlayer = 0x80A3229C; // type:func -EnGoma_SetupStunned = 0x80A323A4; // type:func -EnGoma_Stunned = 0x80A32440; // type:func -EnGoma_LookAtPlayer = 0x80A32540; // type:func -EnGoma_UpdateHit = 0x80A325EC; // type:func -EnGoma_UpdateEyeEnvColor = 0x80A3281C; // type:func -EnGoma_SetFloorRot = 0x80A328AC; // type:func -EnGoma_Update = 0x80A329C0; // type:func -EnGoma_OverrideLimbDraw = 0x80A32C0C; // type:func -EnGoma_NoBackfaceCullingDlist = 0x80A32D68; // type:func -EnGoma_Draw = 0x80A32DD4; // type:func -EnGoma_Debris = 0x80A33260; // type:func -EnGoma_SpawnHatchDebris = 0x80A332A4; // type:func -EnGoma_BossLimb = 0x80A33408; // type:func -EnGoroiwa_UpdateCollider = 0x80A33AB0; // type:func -EnGoroiwa_InitCollider = 0x80A33B1C; // type:func -EnGoroiwa_UpdateFlags = 0x80A33B84; // type:func -EnGoroiwa_Vec3fNormalize = 0x80A33BA8; // type:func -EnGoroiwa_SetSpeed = 0x80A33C2C; // type:func -EnGoroiwa_FaceNextWaypoint = 0x80A33C54; // type:func -EnGoroiwa_GetPrevWaypointDiff = 0x80A33D2C; // type:func -EnGoroiw_CheckEndOfPath = 0x80A33E88; // type:func -EnGoroiwa_SetNextWaypoint = 0x80A33F3C; // type:func -EnGoroiwa_ReverseDirection = 0x80A33F6C; // type:func -EnGoroiwa_InitPath = 0x80A33F94; // type:func -EnGoroiwa_TeleportToWaypoint = 0x80A33FD4; // type:func -EnGoroiwa_InitRotation = 0x80A34078; // type:func -EnGoroiwa_GetAscendDirection = 0x80A34094; // type:func -EnGoroiwa_SpawnDust = 0x80A34158; // type:func -EnGoroiwa_SpawnWaterEffects = 0x80A34348; // type:func -EnGoroiwa_MoveAndFall = 0x80A3447C; // type:func -EnGoroiwa_Move = 0x80A345B0; // type:func -EnGoroiwa_MoveUpToNextWaypoint = 0x80A347DC; // type:func -EnGoroiwa_MoveDownToNextWaypoint = 0x80A348FC; // type:func -EnGoroiwa_UpdateRotation = 0x80A34C5C; // type:func -EnGoroiwa_NextWaypoint = 0x80A34DFC; // type:func -EnGoroiwa_SpawnFragments = 0x80A34E84; // type:func -EnGoroiwa_Init = 0x80A351A0; // type:func -EnGoroiwa_Destroy = 0x80A352D0; // type:func -EnGoroiwa_SetupRoll = 0x80A352FC; // type:func -EnGoroiwa_Roll = 0x80A3533C; // type:func -EnGoroiwa_SetupMoveAndFallToGround = 0x80A355C0; // type:func -EnGoroiwa_MoveAndFallToGround = 0x80A35634; // type:func -EnGoroiwa_SetupWait = 0x80A356D4; // type:func -EnGoroiwa_Wait = 0x80A35730; // type:func -EnGoroiwa_SetupMoveUp = 0x80A35770; // type:func -EnGoroiwa_MoveUp = 0x80A357C0; // type:func -EnGoroiwa_SetupMoveDown = 0x80A35880; // type:func -EnGoroiwa_MoveDown = 0x80A358EC; // type:func -EnGoroiwa_Update = 0x80A359B4; // type:func -EnGoroiwa_Draw = 0x80A35B14; // type:func -EnGs_Init = 0x80A35E70; // type:func -EnGs_Destroy = 0x80A35F34; // type:func -func_80A4E3EC = 0x80A35F44; // type:func -func_80A4E470 = 0x80A35FCC; // type:func -func_80A4E648 = 0x80A3618C; // type:func -func_80A4E754 = 0x80A3629C; // type:func -func_80A4E910 = 0x80A3645C; // type:func -func_80A4EA08 = 0x80A36558; // type:func -func_80A4EB3C = 0x80A3668C; // type:func -func_80A4ED34 = 0x80A36884; // type:func -func_80A4F13C = 0x80A36C90; // type:func -func_80A4F700 = 0x80A37254; // type:func -func_80A4F734 = 0x80A37288; // type:func -func_80A4F77C = 0x80A372D0; // type:func -EnGs_Update = 0x80A3734C; // type:func -EnGs_Draw = 0x80A374E4; // type:func -EnGuest_Init = 0x80A37CE0; // type:func -EnGuest_Destroy = 0x80A37D40; // type:func -EnGuest_Update = 0x80A37D6C; // type:func -func_80A5046C = 0x80A37EDC; // type:func -func_80A50518 = 0x80A37F88; // type:func -func_80A5057C = 0x80A37FF0; // type:func -func_80A505CC = 0x80A38044; // type:func -func_80A50708 = 0x80A38184; // type:func -EnGuest_OverrideLimbDraw = 0x80A381F0; // type:func -EnGuest_Draw = 0x80A38418; // type:func -EnHata_Init = 0x80A38680; // type:func -EnHata_Destroy = 0x80A387B8; // type:func -EnHata_Update = 0x80A38800; // type:func -EnHata_OverrideLimbDraw = 0x80A38A1C; // type:func -EnHata_PostLimbDraw = 0x80A38AA0; // type:func -EnHata_Draw = 0x80A38AB8; // type:func -EnHeishi1_Init = 0x80A38C10; // type:func -EnHeishi1_Destroy = 0x80A38E28; // type:func -EnHeishi1_SetupWalk = 0x80A38E38; // type:func -EnHeishi1_Walk = 0x80A38EEC; // type:func -EnHeishi1_SetupMoveToLink = 0x80A3920C; // type:func -EnHeishi1_MoveToLink = 0x80A392C8; // type:func -EnHeishi1_SetupWait = 0x80A393C0; // type:func -EnHeishi1_Wait = 0x80A39488; // type:func -EnHeishi1_SetupTurnTowardLink = 0x80A39644; // type:func -EnHeishi1_TurnTowardLink = 0x80A396E0; // type:func -EnHeishi1_SetupKick = 0x80A3978C; // type:func -EnHeishi1_Kick = 0x80A39820; // type:func -EnHeishi1_SetupWaitNight = 0x80A398F4; // type:func -EnHeishi1_WaitNight = 0x80A39988; // type:func -EnHeishi1_Update = 0x80A39A08; // type:func -EnHeishi1_OverrideLimbDraw = 0x80A39D1C; // type:func -EnHeishi1_Draw = 0x80A39D60; // type:func -EnHeishi2_Init = 0x80A3A120; // type:func -EnHeishi2_Destroy = 0x80A3A3A0; // type:func -EnHeishi2_DoNothing1 = 0x80A3A3E4; // type:func -EnHeishi_DoNothing2 = 0x80A3A3F4; // type:func -func_80A531E4 = 0x80A3A404; // type:func -func_80A53278 = 0x80A3A498; // type:func -func_80A5344C = 0x80A3A618; // type:func -func_80A53538 = 0x80A3A704; // type:func -func_80A535BC = 0x80A3A78C; // type:func -func_80A53638 = 0x80A3A808; // type:func -func_80A5372C = 0x80A3A8F4; // type:func -func_80A53850 = 0x80A3AA18; // type:func -func_80A53908 = 0x80A3AAD0; // type:func -func_80A5399C = 0x80A3AB64; // type:func -func_80A53AD4 = 0x80A3AC88; // type:func -func_80A53C0C = 0x80A3ADC4; // type:func -func_80A53C90 = 0x80A3AE4C; // type:func -func_80A53D0C = 0x80A3AEC8; // type:func -func_80A53DF8 = 0x80A3AFAC; // type:func -func_80A53F30 = 0x80A3B0E4; // type:func -func_80A54038 = 0x80A3B1EC; // type:func -func_80A540C0 = 0x80A3B278; // type:func -func_80A541FC = 0x80A3B3B4; // type:func -func_80A5427C = 0x80A3B438; // type:func -func_80A54320 = 0x80A3B4DC; // type:func -func_80A543A0 = 0x80A3B55C; // type:func -func_80A544AC = 0x80A3B668; // type:func -func_80A5455C = 0x80A3B718; // type:func -func_80A546DC = 0x80A3B88C; // type:func -func_80A5475C = 0x80A3B90C; // type:func -func_80A54954 = 0x80A3BB04; // type:func -func_80A549E8 = 0x80A3BB98; // type:func -EnHeishi2_Update = 0x80A3BC28; // type:func -EnHeishi2_OverrideLimbDraw = 0x80A3BD74; // type:func -EnHeishi2_PostLimbDraw = 0x80A3BDEC; // type:func -EnHeishi2_DrawKingGuard = 0x80A3BE24; // type:func -EnHeishi2_Draw = 0x80A3BE98; // type:func -EnHeishi3_Init = 0x80A3C320; // type:func -EnHeishi3_Destroy = 0x80A3C44C; // type:func -EnHeishi3_SetupGuardType = 0x80A3C478; // type:func -EnHeishi3_StandSentinelInGrounds = 0x80A3C528; // type:func -EnHeishi3_StandSentinelInCastle = 0x80A3C684; // type:func -EnHeishi3_CatchStart = 0x80A3C7F4; // type:func -func_80A55BD4 = 0x80A3C89C; // type:func -EnHeishi3_ResetAnimationToIdle = 0x80A3C934; // type:func -func_80A55D00 = 0x80A3C9C8; // type:func -EnHeishi3_Update = 0x80A3CA78; // type:func -EnHeishi3_OverrideLimbDraw = 0x80A3CB58; // type:func -EnHeishi3_Draw = 0x80A3CBC0; // type:func -EnHeishi4_Init = 0x80A3CCF0; // type:func -EnHeishi4_Destroy = 0x80A3CED0; // type:func -func_80A56328 = 0x80A3CEFC; // type:func -func_80A563BC = 0x80A3CF90; // type:func -func_80A56544 = 0x80A3D118; // type:func -func_80A56614 = 0x80A3D1DC; // type:func -func_80A5673C = 0x80A3D304; // type:func -func_80A56874 = 0x80A3D418; // type:func -func_80A56900 = 0x80A3D4A4; // type:func -func_80A56994 = 0x80A3D538; // type:func -func_80A56A50 = 0x80A3D5F4; // type:func -func_80A56ACC = 0x80A3D670; // type:func -func_80A56B40 = 0x80A3D6E4; // type:func -EnHeishi4_Update = 0x80A3D858; // type:func -EnHeishi_OverrideLimbDraw = 0x80A3D9BC; // type:func -EnHeishi4_Draw = 0x80A3DA24; // type:func -EnHintnuts_Init = 0x80A3DBF0; // type:func -EnHintnuts_Destroy = 0x80A3DD90; // type:func -EnHintnuts_HitByScrubProjectile1 = 0x80A3DDCC; // type:func -EnHintnuts_SetupWait = 0x80A3DE50; // type:func -EnHintnuts_SetupLookAround = 0x80A3DED0; // type:func -EnHintnuts_SetupThrowScrubProjectile = 0x80A3DF18; // type:func -EnHintnuts_SetupStand = 0x80A3DF58; // type:func -EnHintnuts_SetupBurrow = 0x80A3DFC0; // type:func -EnHintnuts_HitByScrubProjectile2 = 0x80A3E010; // type:func -EnHintnuts_SetupRun = 0x80A3E100; // type:func -EnHintnuts_SetupTalk = 0x80A3E148; // type:func -EnHintnuts_SetupLeave = 0x80A3E194; // type:func -EnHintnuts_SetupFreeze = 0x80A3E254; // type:func -EnHintnuts_Wait = 0x80A3E300; // type:func -EnHintnuts_LookAround = 0x80A3E564; // type:func -EnHintnuts_Stand = 0x80A3E5E8; // type:func -EnHintnuts_ThrowNut = 0x80A3E6AC; // type:func -EnHintnuts_Burrow = 0x80A3E7E8; // type:func -EnHintnuts_BeginRun = 0x80A3E8FC; // type:func -EnHintnuts_BeginFreeze = 0x80A3E960; // type:func -EnHintnuts_CheckProximity = 0x80A3E99C; // type:func -EnHintnuts_Run = 0x80A3EA30; // type:func -EnHintnuts_Talk = 0x80A3ECC0; // type:func -EnHintnuts_Leave = 0x80A3ED2C; // type:func -EnHintnuts_Freeze = 0x80A3EEE8; // type:func -EnHintnuts_ColliderCheck = 0x80A3F014; // type:func -EnHintnuts_Update = 0x80A3F0C8; // type:func -EnHintnuts_OverrideLimbDraw = 0x80A3F250; // type:func -EnHintnuts_Draw = 0x80A3F384; // type:func -EnHoll_SetupAction = 0x80A3F620; // type:func -EnHoll_IsKokiriLayer8 = 0x80A3F62C; // type:func -EnHoll_ChooseAction = 0x80A3F65C; // type:func -EnHoll_Init = 0x80A3F6C4; // type:func -EnHoll_Destroy = 0x80A3F700; // type:func -EnHoll_SwapRooms = 0x80A3F730; // type:func -EnHoll_HorizontalVisibleNarrow = 0x80A3F7EC; // type:func -EnHoll_HorizontalInvisible = 0x80A3FA2C; // type:func -EnHoll_VerticalDownBgCoverLarge = 0x80A3FBDC; // type:func -EnHoll_VerticalBgCover = 0x80A3FDC8; // type:func -EnHoll_VerticalInvisible = 0x80A3FF48; // type:func -EnHoll_HorizontalBgCoverSwitchFlag = 0x80A40040; // type:func -EnHoll_WaitRoomLoaded = 0x80A40250; // type:func -EnHoll_Update = 0x80A402C8; // type:func -EnHoll_Draw = 0x80A402EC; // type:func -EnHonotrap_FlameCollisionCheck = 0x80A405F0; // type:func -EnHonotrap_GetNormal = 0x80A40684; // type:func -EnHonotrap_InitEye = 0x80A40718; // type:func -EnHonotrap_InitFlame = 0x80A408B4; // type:func -EnHonotrap_Init = 0x80A409F4; // type:func -EnHonotrap_Destroy = 0x80A40A4C; // type:func -EnHonotrap_SetupEyeIdle = 0x80A40A98; // type:func -EnHonotrap_EyeIdle = 0x80A40AB4; // type:func -EnHonotrap_SetupEyeOpen = 0x80A40B6C; // type:func -EnHonotrap_EyeOpen = 0x80A40BC0; // type:func -EnHonotrap_SetupEyeAttack = 0x80A40C90; // type:func -EnHonotrap_EyeAttack = 0x80A40CA8; // type:func -EnHonotrap_SetupEyeClose = 0x80A40CD8; // type:func -EnHonotrap_EyeClose = 0x80A40CEC; // type:func -EnHonotrap_SetupFlameGrow = 0x80A40D38; // type:func -EnHonotrap_FlameGrow = 0x80A40D4C; // type:func -EnHonotrap_SetupFlameDrop = 0x80A40DE0; // type:func -EnHonotrap_FlameDrop = 0x80A40E48; // type:func -EnHonotrap_SetupFlameMove = 0x80A40F8C; // type:func -EnHonotrap_FlameMove = 0x80A41018; // type:func -EnHonotrap_SetupFlameChase = 0x80A411E4; // type:func -EnHonotrap_FlameChase = 0x80A41224; // type:func -EnHonotrap_SetupFlameVanish = 0x80A413D8; // type:func -EnHonotrap_FlameVanish = 0x80A413EC; // type:func -EnHonotrap_Update = 0x80A4147C; // type:func -EnHonotrap_DrawEye = 0x80A415C4; // type:func -EnHonotrap_DrawFlame = 0x80A416B4; // type:func -EnHonotrap_Draw = 0x80A4184C; // type:func -EnHorse_BgCheckBridgeJumpPoint = 0x80A41B50; // type:func -EnHorse_CheckBridgeJumps = 0x80A41CB0; // type:func -EnHorse_RaceWaypointPos = 0x80A41DF0; // type:func -EnHorse_RotateToPoint = 0x80A41E44; // type:func -EnHorse_UpdateIngoRaceInfo = 0x80A41E80; // type:func -EnHorse_PlayWalkingSfx = 0x80A42234; // type:func -EnHorse_PlayTrottingSfx = 0x80A422F0; // type:func -EnHorse_PlayGallopingSfx = 0x80A42338; // type:func -EnHorse_SlopeSpeedMultiplier = 0x80A42380; // type:func -func_80A5BB90 = 0x80A42400; // type:func -func_80A5BBBC = 0x80A42430; // type:func -EnHorse_IdleAnimSounds = 0x80A424E0; // type:func -EnHorse_Spawn = 0x80A4260C; // type:func -EnHorse_ResetCutscene = 0x80A42850; // type:func -EnHorse_ResetRace = 0x80A42868; // type:func -EnHorse_PlayerCanMove = 0x80A42878; // type:func -EnHorse_ResetHorsebackArchery = 0x80A42934; // type:func -EnHorse_ClearDustFlags = 0x80A4294C; // type:func -EnHorse_Init = 0x80A42958; // type:func -EnHorse_Destroy = 0x80A43088; // type:func -EnHorse_RotateToPlayer = 0x80A430F8; // type:func -EnHorse_Freeze = 0x80A43168; // type:func -EnHorse_Frozen = 0x80A431E8; // type:func -EnHorse_UpdateSpeed = 0x80A43358; // type:func -EnHorse_StartMountedIdleResetAnim = 0x80A4379C; // type:func -EnHorse_StartMountedIdle = 0x80A437D8; // type:func -EnHorse_MountedIdle = 0x80A43914; // type:func -EnHorse_MountedIdleAnim = 0x80A43A14; // type:func -EnHorse_MountedIdleWhinney = 0x80A43A38; // type:func -EnHorse_MountedIdleWhinneying = 0x80A43B34; // type:func -EnHorse_StartTurning = 0x80A43C34; // type:func -EnHorse_MountedTurn = 0x80A43CDC; // type:func -EnHorse_StartWalkingFromIdle = 0x80A43EA0; // type:func -EnHorse_StartWalkingInterruptable = 0x80A43EF0; // type:func -EnHorse_StartWalking = 0x80A43F14; // type:func -EnHorse_MountedWalkingReset = 0x80A43FC0; // type:func -EnHorse_MountedWalk = 0x80A44014; // type:func -EnHorse_StartTrotting = 0x80A442E4; // type:func -EnHorse_MountedTrotReset = 0x80A44388; // type:func -EnHorse_MountedTrot = 0x80A443D4; // type:func -EnHorse_StartGallopingInterruptable = 0x80A4450C; // type:func -EnHorse_StartGalloping = 0x80A44530; // type:func -EnHorse_MountedGallopReset = 0x80A445D8; // type:func -EnHorse_JumpLanding = 0x80A44630; // type:func -EnHorse_MountedGallop = 0x80A446B4; // type:func -EnHorse_StartRearing = 0x80A44888; // type:func -EnHorse_MountedRearing = 0x80A449AC; // type:func -EnHorse_StartBraking = 0x80A44B28; // type:func -EnHorse_Stopping = 0x80A44C18; // type:func -EnHorse_StartReversingInterruptable = 0x80A44E04; // type:func -EnHorse_StartReversing = 0x80A44E28; // type:func -EnHorse_Reverse = 0x80A44ECC; // type:func -EnHorse_LowJumpInit = 0x80A4527C; // type:func -EnHorse_StartLowJump = 0x80A452A0; // type:func -EnHorse_Stub1 = 0x80A453D0; // type:func -EnHorse_LowJump = 0x80A453DC; // type:func -EnHorse_HighJumpInit = 0x80A455A0; // type:func -EnHorse_StartHighJump = 0x80A455C4; // type:func -EnHorse_Stub2 = 0x80A45700; // type:func -EnHorse_HighJump = 0x80A4570C; // type:func -EnHorse_InitInactive = 0x80A458D0; // type:func -EnHorse_Inactive = 0x80A45920; // type:func -EnHorse_PlayIdleAnimation = 0x80A45A4C; // type:func -EnHorse_ChangeIdleAnimation = 0x80A45C1C; // type:func -EnHorse_ResetIdleAnimation = 0x80A45C44; // type:func -EnHorse_StartIdleRidable = 0x80A45C78; // type:func -EnHorse_Idle = 0x80A45CAC; // type:func -EnHorse_StartMovingAnimation = 0x80A45E94; // type:func -EnHorse_SetFollowAnimation = 0x80A45FFC; // type:func -EnHorse_FollowPlayer = 0x80A46130; // type:func -EnHorse_InitIngoHorse = 0x80A46554; // type:func -EnHorse_SetIngoAnimation = 0x80A465D8; // type:func -EnHorse_UpdateIngoHorseAnim = 0x80A4667C; // type:func -EnHorse_UpdateIngoRace = 0x80A46990; // type:func -EnHorse_CsMoveInit = 0x80A46B40; // type:func -EnHorse_CsMoveToPoint = 0x80A46BAC; // type:func -EnHorse_CsSetAnimHighJump = 0x80A46CFC; // type:func -EnHorse_CsPlayHighJumpAnim = 0x80A46D20; // type:func -EnHorse_CsJumpInit = 0x80A46E54; // type:func -EnHorse_CsJump = 0x80A46E8C; // type:func -EnHorse_CsRearingInit = 0x80A470E4; // type:func -EnHorse_CsRearing = 0x80A47204; // type:func -EnHorse_WarpMoveInit = 0x80A473AC; // type:func -EnHorse_CsWarpMoveToPoint = 0x80A47494; // type:func -EnHorse_CsWarpRearingInit = 0x80A475E4; // type:func -EnHorse_CsWarpRearing = 0x80A4776C; // type:func -EnHorse_InitCutscene = 0x80A47914; // type:func -EnHorse_GetCutsceneFunctionIndex = 0x80A47938; // type:func -EnHorse_CutsceneUpdate = 0x80A47988; // type:func -EnHorse_UpdateHbaRaceInfo = 0x80A47AE0; // type:func -EnHorse_InitHorsebackArchery = 0x80A47CD0; // type:func -EnHorse_UpdateHbaAnim = 0x80A47D04; // type:func -EnHorse_UpdateHorsebackArchery = 0x80A4803C; // type:func -EnHorse_InitFleePlayer = 0x80A482C8; // type:func -EnHorse_FleePlayer = 0x80A482F0; // type:func -EnHorse_BridgeJumpInit = 0x80A48B44; // type:func -EnHorse_StartBridgeJump = 0x80A48D7C; // type:func -EnHorse_BridgeJumpMove = 0x80A48E2C; // type:func -EnHorse_CheckBridgeJumpLanding = 0x80A48F88; // type:func -EnHorse_BridgeJump = 0x80A49074; // type:func -EnHorse_Vec3fOffset = 0x80A490B8; // type:func -EnHorse_CalcFloorHeight = 0x80A49134; // type:func -EnHorse_ObstructMovement = 0x80A49274; // type:func -EnHorse_CheckFloors = 0x80A4939C; // type:func -EnHorse_MountDismount = 0x80A4991C; // type:func -EnHorse_StickDirection = 0x80A49A20; // type:func -EnHorse_UpdateStick = 0x80A49AAC; // type:func -EnHorse_ResolveCollision = 0x80A49AEC; // type:func -EnHorse_BgCheckSlowMoving = 0x80A49C44; // type:func -EnHorse_UpdateBgCheckInfo = 0x80A49D84; // type:func -EnHorse_CheckBoost = 0x80A4A890; // type:func -EnHorse_RegenBoost = 0x80A4AA3C; // type:func -EnHorse_UpdatePlayerDir = 0x80A4AC68; // type:func -EnHorse_TiltBody = 0x80A4AD74; // type:func -EnHorse_UpdateConveyors = 0x80A4AE70; // type:func -EnHorse_RandInt = 0x80A4AF78; // type:func -EnHorse_Update = 0x80A4AFAC; // type:func -EnHorse_PlayerDirToMountSide = 0x80A4B7D8; // type:func -EnHorse_MountSideCheck = 0x80A4B818; // type:func -EnHorse_GetMountSide = 0x80A4B91C; // type:func -EnHorse_RandomOffset = 0x80A4B974; // type:func -EnHorse_PostDraw = 0x80A4BA10; // type:func -EnHorse_OverrideLimbDraw = 0x80A4C508; // type:func -EnHorse_Draw = 0x80A4C608; // type:func -EnHorseGameCheck_InitIngoRace = 0x80A4DDB0; // type:func -EnHorseGameCheck_DestroyIngoRace = 0x80A4DE6C; // type:func -EnHorseGameCheck_FinishIngoRace = 0x80A4DE80; // type:func -EnHorseGameCheck_UpdateIngoRace = 0x80A4DFCC; // type:func -EnHorseGameCheck_InitGerudoArchery = 0x80A4E444; // type:func -EnHorseGameCheck_DestroyGerudoArchery = 0x80A4E464; // type:func -EnHorseGameCheck_UpdateGerudoArchery = 0x80A4E478; // type:func -EnHorseGameCheck_InitType3 = 0x80A4E4C0; // type:func -EnHorseGameCheck_DestroyType3 = 0x80A4E4DC; // type:func -EnHorseGameCheck_UpdateType3 = 0x80A4E4F0; // type:func -EnHorseGameCheck_InitMalonRace = 0x80A4E504; // type:func -EnHorseGameCheck_DestroyMalonRace = 0x80A4E554; // type:func -EnHorseGameCheck_FinishMalonRace = 0x80A4E568; // type:func -EnHorseGameCheck_UpdateMalonRace = 0x80A4E65C; // type:func -EnHorseGameCheck_Init = 0x80A4EB74; // type:func -EnHorseGameCheck_Destroy = 0x80A4EBF8; // type:func -EnHorseGameCheck_Update = 0x80A4EC34; // type:func -EnHorseGameCheck_Draw = 0x80A4EC70; // type:func -func_80A68660 = 0x80A4EE80; // type:func -func_80A686A8 = 0x80A4EECC; // type:func -func_80A68870 = 0x80A4F094; // type:func -EnHorseGanon_Init = 0x80A4F150; // type:func -EnHorseGanon_Destroy = 0x80A4F29C; // type:func -func_80A68AC4 = 0x80A4F2EC; // type:func -func_80A68AF0 = 0x80A4F31C; // type:func -func_80A68B20 = 0x80A4F350; // type:func -func_80A68DB0 = 0x80A4F5E0; // type:func -func_80A68E14 = 0x80A4F644; // type:func -EnHorseGanon_Update = 0x80A4F708; // type:func -EnHorseGanon_PostDraw = 0x80A4F7DC; // type:func -EnHorseGanon_Draw = 0x80A4F968; // type:func -func_80A693D0 = 0x80A4FC00; // type:func -func_80A6948C = 0x80A4FCBC; // type:func -func_80A695A4 = 0x80A4FDD4; // type:func -EnHorseLinkChild_Init = 0x80A4FE9C; // type:func -EnHorseLinkChild_Destroy = 0x80A50074; // type:func -func_80A6988C = 0x80A500C4; // type:func -func_80A698F4 = 0x80A50128; // type:func -func_80A6993C = 0x80A50170; // type:func -func_80A699FC = 0x80A50230; // type:func -func_80A69B7C = 0x80A503B8; // type:func -func_80A69C18 = 0x80A50458; // type:func -func_80A69EC0 = 0x80A50700; // type:func -func_80A69F5C = 0x80A507A0; // type:func -func_80A6A068 = 0x80A508AC; // type:func -func_80A6A4DC = 0x80A50D28; // type:func -func_80A6A5A4 = 0x80A50DF0; // type:func -func_80A6A724 = 0x80A50F70; // type:func -func_80A6A7D0 = 0x80A51020; // type:func -EnHorseLinkChild_Update = 0x80A512FC; // type:func -EnHorseLinkChild_PostDraw = 0x80A51454; // type:func -EnHorseLinkChild_OverrideLimbDraw = 0x80A515E0; // type:func -EnHorseLinkChild_Draw = 0x80A51668; // type:func -func_80A6B250 = 0x80A51A00; // type:func -func_80A6B30C = 0x80A51ABC; // type:func -EnHorseNormal_Init = 0x80A51B84; // type:func -EnHorseNormal_Destroy = 0x80A52074; // type:func -func_80A6B91C = 0x80A520D4; // type:func -EnHorseNormal_FollowPath = 0x80A5218C; // type:func -EnHorseNormal_NextAnimation = 0x80A52368; // type:func -EnHorseNormal_CycleAnimations = 0x80A523BC; // type:func -func_80A6BC48 = 0x80A52404; // type:func -func_80A6BCEC = 0x80A524AC; // type:func -func_80A6BD7C = 0x80A5253C; // type:func -EnHorseNormal_Wander = 0x80A52630; // type:func -func_80A6C4CC = 0x80A52C94; // type:func -EnHorseNormal_Wait = 0x80A52D3C; // type:func -func_80A6C6B0 = 0x80A52E7C; // type:func -EnHorseNormal_WaitClone = 0x80A52F30; // type:func -func_80A6C8E0 = 0x80A530B4; // type:func -EnHorseNormal_Update = 0x80A53178; // type:func -EnHorseNormal_PostDraw = 0x80A532D4; // type:func -func_80A6CC88 = 0x80A53460; // type:func -EnHorseNormal_Draw = 0x80A53648; // type:func -EnHorseZelda_GetFieldPosition = 0x80A54020; // type:func -EnHorseZelda_Move = 0x80A5406C; // type:func -EnHorseZelda_Init = 0x80A54234; // type:func -EnHorseZelda_Destroy = 0x80A54384; // type:func -EnHorseZelda_SetupStop = 0x80A543D4; // type:func -EnHorseZelda_Stop = 0x80A54424; // type:func -EnHorseZelda_Spur = 0x80A5446C; // type:func -EnHorseZelda_Gallop = 0x80A54554; // type:func -EnHorseZelda_SetRotate = 0x80A54594; // type:func -EnHorseZelda_Update = 0x80A54658; // type:func -EnHorseZelda_PostDraw = 0x80A54734; // type:func -EnHorseZelda_Draw = 0x80A548C0; // type:func -func_80A6E3A0 = 0x80A54B10; // type:func -EnHs_Init = 0x80A54B1C; // type:func -EnHs_Destroy = 0x80A54C60; // type:func -func_80A6E53C = 0x80A54C8C; // type:func -func_80A6E5EC = 0x80A54D40; // type:func -func_80A6E630 = 0x80A54D84; // type:func -func_80A6E6B0 = 0x80A54E04; // type:func -func_80A6E6D8 = 0x80A54E2C; // type:func -func_80A6E70C = 0x80A54E64; // type:func -func_80A6E740 = 0x80A54E9C; // type:func -func_80A6E7BC = 0x80A54F1C; // type:func -func_80A6E8CC = 0x80A5502C; // type:func -func_80A6E9AC = 0x80A55108; // type:func -EnHs_Update = 0x80A55250; // type:func -EnHs_OverrideLimbDraw = 0x80A553BC; // type:func -EnHs_PostLimbDraw = 0x80A55478; // type:func -EnHs_Draw = 0x80A554B8; // type:func -EnHs2_Init = 0x80A556B0; // type:func -EnHs2_Destroy = 0x80A55790; // type:func -func_80A6F0B4 = 0x80A557BC; // type:func -func_80A6F164 = 0x80A55870; // type:func -func_80A6F1A4 = 0x80A558AC; // type:func -EnHs2_Update = 0x80A558F8; // type:func -EnHs2_OverrideLimbDraw = 0x80A55A64; // type:func -EnHs2_PostLimbDraw = 0x80A55AEC; // type:func -EnHs2_Draw = 0x80A55B2C; // type:func -EnHy_FindSkelAndHeadObjects = 0x80A55C90; // type:func -EnHy_AreSkelAndHeadObjectsLoaded = 0x80A55DA4; // type:func -EnHy_FindOsAnimeObject = 0x80A55E2C; // type:func -EnHy_IsOsAnimeObjectLoaded = 0x80A55E7C; // type:func -func_80A6F7CC = 0x80A55EBC; // type:func -EnHy_GetTextId = 0x80A55F00; // type:func -EnHy_UpdateTalkState = 0x80A56748; // type:func -EnHy_UpdateEyes = 0x80A56C94; // type:func -EnHy_InitCollider = 0x80A56D50; // type:func -EnHy_InitSetProperties = 0x80A56D8C; // type:func -EnHy_UpdateCollider = 0x80A56E24; // type:func -func_80A70834 = 0x80A56F28; // type:func -func_80A70978 = 0x80A57070; // type:func -EnHy_ShouldSpawn = 0x80A571E0; // type:func -EnHy_Init = 0x80A5747C; // type:func -EnHy_Destroy = 0x80A5750C; // type:func -EnHy_InitImpl = 0x80A57538; // type:func -func_80A710F8 = 0x80A57804; // type:func -func_80A711B4 = 0x80A578C0; // type:func -func_80A7127C = 0x80A5798C; // type:func -EnHy_DoNothing = 0x80A579C4; // type:func -func_80A712C0 = 0x80A579D4; // type:func -func_80A7134C = 0x80A57A60; // type:func -func_80A714C4 = 0x80A57BDC; // type:func -func_80A71530 = 0x80A57C4C; // type:func -EnHy_Update = 0x80A57CFC; // type:func -EnHy_OverrideLimbDraw = 0x80A57DDC; // type:func -EnHy_PostLimbDraw = 0x80A58148; // type:func -EnHy_SetEnvColor = 0x80A58254; // type:func -EnHy_Draw = 0x80A582C0; // type:func -EnIceHono_XZDistanceSquared = 0x80A595D0; // type:func -EnIceHono_InitCapturableFlame = 0x80A59600; // type:func -EnIceHono_InitDroppedFlame = 0x80A596A4; // type:func -EnIceHono_InitSmallFlame = 0x80A597AC; // type:func -EnIceHono_Init = 0x80A59814; // type:func -EnIceHono_Destroy = 0x80A59974; // type:func -EnIceHono_InBottleRange = 0x80A599CC; // type:func -EnIceHono_SetupActionCapturableFlame = 0x80A59ABC; // type:func -EnIceHono_CapturableFlame = 0x80A59AE4; // type:func -EnIceHono_SetupActionDroppedFlame = 0x80A59B94; // type:func -EnIceHono_DropFlame = 0x80A59BB8; // type:func -EnIceHono_SetupActionSpreadFlames = 0x80A59D78; // type:func -EnIceHono_SpreadFlames = 0x80A59D9C; // type:func -EnIceHono_SetupActionSmallFlame = 0x80A59FF8; // type:func -EnIceHono_SmallFlameMove = 0x80A5A0CC; // type:func -EnIceHono_Update = 0x80A5A224; // type:func -EnIceHono_Draw = 0x80A5A3B8; // type:func -EnIk_Destroy = 0x80A5A7C0; // type:func -EnIk_SetupAction = 0x80A5A840; // type:func -EnIk_InitImpl = 0x80A5A84C; // type:func -EnIk_HandleBlocking = 0x80A5AA98; // type:func -EnIk_FindBreakableProp = 0x80A5AB28; // type:func -EnIk_SetupStandUp = 0x80A5ABC8; // type:func -EnIk_StandUp = 0x80A5AC74; // type:func -EnIk_SetupIdle = 0x80A5AD54; // type:func -EnIk_Idle = 0x80A5ADE4; // type:func -EnIk_SetupWalkOrRun = 0x80A5AF64; // type:func -EnIk_WalkOrRun = 0x80A5B05C; // type:func -EnIk_SetupVerticalAttack = 0x80A5B2E4; // type:func -EnIk_VerticalAttack = 0x80A5B374; // type:func -EnIk_SetupPullOutAxe = 0x80A5B528; // type:func -EnIk_PullOutAxe = 0x80A5B5C8; // type:func -EnIk_SetupDoubleHorizontalAttack = 0x80A5B684; // type:func -EnIk_DoubleHorizontalAttack = 0x80A5B71C; // type:func -EnIk_SetupRecoverFromHorizontalAttack = 0x80A5B88C; // type:func -EnIk_RecoverFromHorizontalAttack = 0x80A5B918; // type:func -EnIk_SetupSingleHorizontalAttack = 0x80A5B960; // type:func -EnIk_SingleHorizontalAttack = 0x80A5B9F0; // type:func -EnIk_SetupStopAndBlock = 0x80A5BAB0; // type:func -EnIk_StopAndBlock = 0x80A5BB3C; // type:func -EnIk_SetupReactToAttack = 0x80A5BC50; // type:func -EnIk_ReactToAttack = 0x80A5BD70; // type:func -EnIk_SetupDie = 0x80A5BE4C; // type:func -EnIk_Die = 0x80A5BEF8; // type:func -EnIk_UpdateDamage = 0x80A5C0F4; // type:func -EnIk_UpdateEnemy = 0x80A5C460; // type:func -EnIk_SetPrimEnvColors = 0x80A5C678; // type:func -EnIk_OverrideLimbDrawEnemy = 0x80A5C730; // type:func -EnIk_PostLimbDrawEnemy = 0x80A5C7F0; // type:func -EnIk_DrawEnemy = 0x80A5CC04; // type:func -EnIk_StartMinibossBgm = 0x80A5D03C; // type:func -EnIk_UpdateAction2Sfx = 0x80A5D05C; // type:func -EnIk_PlayAxeSpawnSfx = 0x80A5D228; // type:func -EnIk_SpawnAxeSmoke = 0x80A5D278; // type:func -EnIk_UpdateBgCheckInfo = 0x80A5D484; // type:func -EnIk_UpdateSkelAnime = 0x80A5D4CC; // type:func -EnIk_GetCue = 0x80A5D4F0; // type:func -EnIk_SetStartPosRotFromCue = 0x80A5D518; // type:func -EnIk_GetAnimCurFrame = 0x80A5D598; // type:func -EnIk_SetupCsAction0 = 0x80A5D5A4; // type:func -EnIk_SetupCsAction1 = 0x80A5D5B8; // type:func -EnIk_SetupCsAction2 = 0x80A5D644; // type:func -EnIk_HandleEnemyChange = 0x80A5D6C4; // type:func -EnIk_PlayArmorFallSfx = 0x80A5D704; // type:func -EnIk_PlayDeathSfx = 0x80A5D74C; // type:func -EnIk_SetupCsAction3 = 0x80A5D7C0; // type:func -EnIk_SetupCsAction4 = 0x80A5D898; // type:func -EnIk_SetupCsAction5 = 0x80A5D8D4; // type:func -EnIk_CsAction3 = 0x80A5D8F0; // type:func -EnIk_CsAction4 = 0x80A5D928; // type:func -EnIk_CsAction5 = 0x80A5D968; // type:func -EnIk_OverrideLimbDrawDefeat = 0x80A5D9A4; // type:func -EnIk_PostLimbDrawDefeat = 0x80A5DA10; // type:func -EnIk_CsDrawDefeat = 0x80A5DC5C; // type:func -EnIk_HandleCsCues = 0x80A5DDC0; // type:func -EnIk_CsAction0 = 0x80A5DEBC; // type:func -EnIk_CsAction1 = 0x80A5DEDC; // type:func -EnIk_CsAction2 = 0x80A5DF14; // type:func -EnIk_UpdateCutscene = 0x80A5DF78; // type:func -EnIk_OverrideLimbDrawIntro = 0x80A5DFC0; // type:func -EnIk_PostLimbDrawIntro = 0x80A5E044; // type:func -EnIk_CsDrawNothing = 0x80A5E230; // type:func -EnIk_CsDrawIntro = 0x80A5E240; // type:func -EnIk_DrawCutscene = 0x80A5E3A4; // type:func -EnIk_CsInit = 0x80A5E3EC; // type:func -EnIk_ChangeToEnemy = 0x80A5E45C; // type:func -EnIk_StartDefeatCutscene = 0x80A5E4C8; // type:func -EnIk_Init = 0x80A5E55C; // type:func -EnIn_GetTextIdChild = 0x80A5EE20; // type:func -EnIn_GetTextIdAdult = 0x80A5EE80; // type:func -EnIn_GetTextId = 0x80A5EFD8; // type:func -EnIn_UpdateTalkStateOnClosing = 0x80A5F03C; // type:func -EnIn_UpdateTalkStateOnChoice = 0x80A5F0B0; // type:func -EnIn_UpdateTalkStateOnEvent = 0x80A5F300; // type:func -EnIn_UpdateTalkState = 0x80A5F36C; // type:func -func_80A795C8 = 0x80A5F434; // type:func -func_80A79690 = 0x80A5F4FC; // type:func -EnIn_ChangeAnim = 0x80A5F558; // type:func -func_80A7975C = 0x80A5F5C8; // type:func -func_80A79830 = 0x80A5F69C; // type:func -EnIn_UpdateEyes = 0x80A5F898; // type:func -func_80A79AB4 = 0x80A5F920; // type:func -func_80A79BAC = 0x80A5FA18; // type:func -func_80A79C78 = 0x80A5FAE4; // type:func -EnIn_Init = 0x80A5FCD8; // type:func -EnIn_Destroy = 0x80A5FDE4; // type:func -EnIn_WaitForObject = 0x80A5FE28; // type:func -func_80A7A304 = 0x80A60180; // type:func -func_80A7A4BC = 0x80A60338; // type:func -func_80A7A4C8 = 0x80A60348; // type:func -func_80A7A568 = 0x80A603EC; // type:func -func_80A7A770 = 0x80A605F4; // type:func -func_80A7A848 = 0x80A606CC; // type:func -func_80A7A940 = 0x80A607C4; // type:func -func_80A7AA40 = 0x80A608C4; // type:func -func_80A7ABD4 = 0x80A60A58; // type:func -func_80A7AE84 = 0x80A60D0C; // type:func -func_80A7AEF0 = 0x80A60D78; // type:func -func_80A7B018 = 0x80A60EA4; // type:func -func_80A7B024 = 0x80A60EB4; // type:func -EnIn_Update = 0x80A60FA0; // type:func -EnIn_OverrideLimbDraw = 0x80A611B4; // type:func -EnIn_PostLimbDraw = 0x80A61408; // type:func -EnIn_Draw = 0x80A61518; // type:func -EnInsect_InitFlags = 0x80A61BC0; // type:func -EnInsect_XZDistanceSquared = 0x80A61BE4; // type:func -EnInsect_InBottleRange = 0x80A61C14; // type:func -EnInsect_SetCrawlAnim = 0x80A61D04; // type:func -EnInsect_TryFindNearbySoil = 0x80A61D50; // type:func -EnInsect_UpdateCrawlSfx = 0x80A61E08; // type:func -EnInsect_Init = 0x80A61E9C; // type:func -EnInsect_Destroy = 0x80A620E8; // type:func -EnInsect_SetupSlowDown = 0x80A62158; // type:func -EnInsect_SlowDown = 0x80A621A8; // type:func -EnInsect_SetupCrawl = 0x80A6234C; // type:func -EnInsect_Crawl = 0x80A6239C; // type:func -EnInsect_SetupRunFromPlayer = 0x80A625C8; // type:func -EnInsect_RunFromPlayer = 0x80A62618; // type:func -EnInsect_SetupCaught = 0x80A62810; // type:func -EnInsect_Caught = 0x80A6287C; // type:func -EnInsect_SetupDig = 0x80A62974; // type:func -EnInsect_Dig = 0x80A629EC; // type:func -EnInsect_SetupWalkOnWater = 0x80A62C10; // type:func -EnInsect_WalkOnWater = 0x80A62C70; // type:func -EnInsect_SetupDrown = 0x80A62FA4; // type:func -EnInsect_Drown = 0x80A6301C; // type:func -EnInsect_SetupDropped = 0x80A6314C; // type:func -EnInsect_Dropped = 0x80A63214; // type:func -EnInsect_Update = 0x80A63944; // type:func -EnInsect_Draw = 0x80A63B8C; // type:func -EnIshi_InitCollider = 0x80A640E0; // type:func -EnIshi_SnapToFloor = 0x80A64158; // type:func -EnIshi_SpawnFragmentsSmall = 0x80A641FC; // type:func -EnIshi_SpawnFragmentsLarge = 0x80A64478; // type:func -EnIshi_SpawnDustSmall = 0x80A64764; // type:func -EnIshi_SpawnDustLarge = 0x80A64858; // type:func -EnIshi_DropCollectible = 0x80A6494C; // type:func -EnIshi_Fall = 0x80A649BC; // type:func -func_80A7ED94 = 0x80A649F0; // type:func -EnIshi_SpawnBugs = 0x80A64A74; // type:func -EnIshi_Init = 0x80A64B30; // type:func -EnIshi_Destroy = 0x80A64CCC; // type:func -EnIshi_SetupWait = 0x80A64CF8; // type:func -EnIshi_Wait = 0x80A64D0C; // type:func -EnIshi_SetupLiftedUp = 0x80A64F64; // type:func -EnIshi_LiftedUp = 0x80A64F8C; // type:func -EnIshi_SetupFly = 0x80A65060; // type:func -EnIshi_Fly = 0x80A6518C; // type:func -EnIshi_Update = 0x80A654F8; // type:func -EnIshi_DrawSmall = 0x80A6551C; // type:func -EnIshi_DrawLarge = 0x80A6554C; // type:func -EnIshi_Draw = 0x80A655F4; // type:func -EnIt_Init = 0x80A6D230; // type:func -EnIt_Destroy = 0x80A6D29C; // type:func -EnIt_Update = 0x80A6D2C8; // type:func -EnJj_SetupAction = 0x80A6D3C0; // type:func -EnJj_Init = 0x80A6D3CC; // type:func -EnJj_Destroy = 0x80A6D65C; // type:func -EnJj_Blink = 0x80A6D6EC; // type:func -EnJj_OpenMouth = 0x80A6D76C; // type:func -EnJj_WaitToOpenMouth = 0x80A6D7C0; // type:func -EnJj_WaitForFish = 0x80A6D804; // type:func -EnJj_BeginCutscene = 0x80A6D8C0; // type:func -EnJj_CutsceneUpdate = 0x80A6D968; // type:func -EnJj_RemoveDust = 0x80A6DAC4; // type:func -EnJj_UpdateStaticCollision = 0x80A6DB1C; // type:func -EnJj_Update = 0x80A6DB2C; // type:func -EnJj_Draw = 0x80A6DBD8; // type:func -En_Js_SetupAction = 0x80A6E990; // type:func -EnJs_Init = 0x80A6E99C; // type:func -EnJs_Destroy = 0x80A6EAC0; // type:func -func_80A88F64 = 0x80A6EAEC; // type:func -func_80A89008 = 0x80A6EB94; // type:func -func_80A89078 = 0x80A6EC08; // type:func -func_80A890C0 = 0x80A6EC54; // type:func -func_80A8910C = 0x80A6ECA4; // type:func -func_80A89160 = 0x80A6ECF8; // type:func -func_80A891C4 = 0x80A6ED60; // type:func -func_80A89294 = 0x80A6EE34; // type:func -func_80A89304 = 0x80A6EEA8; // type:func -EnJs_Update = 0x80A6EEE0; // type:func -EnJs_OverrideLimbDraw = 0x80A6F16C; // type:func -EnJs_PostLimbDraw = 0x80A6F1A4; // type:func -EnJs_Draw = 0x80A6F1E4; // type:func -EnJsjutan_Init = 0x80A6F360; // type:func -EnJsjutan_Destroy = 0x80A6F3F4; // type:func -func_80A89860 = 0x80A6F428; // type:func -func_80A89A6C = 0x80A6F634; // type:func -EnJsjutan_Update = 0x80A70114; // type:func -EnJsjutan_Draw = 0x80A701EC; // type:func -EnKakasi_Destroy = 0x80A74C90; // type:func -EnKakasi_Init = 0x80A74CBC; // type:func -func_80A8F28C = 0x80A74D84; // type:func -func_80A8F320 = 0x80A74E18; // type:func -func_80A8F660 = 0x80A75158; // type:func -func_80A8F75C = 0x80A75254; // type:func -func_80A8F8D0 = 0x80A753D0; // type:func -func_80A8F9C8 = 0x80A754BC; // type:func -func_80A8FAA4 = 0x80A7559C; // type:func -func_80A8FBB8 = 0x80A756A0; // type:func -EnKakasi_Update = 0x80A75738; // type:func -EnKakasi_Draw = 0x80A7583C; // type:func -EnKakasi2_Init = 0x80A759D0; // type:func -EnKakasi2_Destroy = 0x80A75B2C; // type:func -func_80A90264 = 0x80A75B58; // type:func -func_80A904D8 = 0x80A75CB0; // type:func -func_80A90578 = 0x80A75D50; // type:func -func_80A9062C = 0x80A75E04; // type:func -func_80A906C4 = 0x80A75E9C; // type:func -EnKakasi2_Update = 0x80A75F0C; // type:func -func_80A90948 = 0x80A75FCC; // type:func -EnKakasi3_Destroy = 0x80A760F0; // type:func -EnKakasi3_Init = 0x80A7611C; // type:func -func_80A90E28 = 0x80A761E4; // type:func -func_80A90EBC = 0x80A76278; // type:func -func_80A911F0 = 0x80A765AC; // type:func -func_80A91284 = 0x80A76640; // type:func -func_80A91348 = 0x80A76704; // type:func -func_80A915B8 = 0x80A7697C; // type:func -func_80A91620 = 0x80A769E8; // type:func -func_80A91760 = 0x80A76B28; // type:func -func_80A917FC = 0x80A76BC8; // type:func -func_80A9187C = 0x80A76C50; // type:func -func_80A918E4 = 0x80A76CBC; // type:func -func_80A91A90 = 0x80A76E00; // type:func -EnKakasi3_Update = 0x80A76F00; // type:func -EnKakasi3_Draw = 0x80A76FF8; // type:func -EnKanban_SetFloorRot = 0x80A771D0; // type:func -EnKanban_Init = 0x80A7728C; // type:func -EnKanban_Destroy = 0x80A773B4; // type:func -EnKanban_Message = 0x80A773EC; // type:func -EnKanban_Update = 0x80A774A4; // type:func -EnKanban_Draw = 0x80A78D20; // type:func -EnKarebaba_Init = 0x80A7A320; // type:func -EnKarebaba_Destroy = 0x80A7A454; // type:func -EnKarebaba_ResetCollider = 0x80A7A494; // type:func -EnKarebaba_SetupGrow = 0x80A7A4D0; // type:func -EnKarebaba_SetupIdle = 0x80A7A520; // type:func -EnKarebaba_SetupAwaken = 0x80A7A574; // type:func -EnKarebaba_SetupUpright = 0x80A7A5F0; // type:func -EnKarebaba_SetupSpin = 0x80A7A690; // type:func -EnKarebaba_SetupDying = 0x80A7A6AC; // type:func -EnKarebaba_SetupDeadItemDrop = 0x80A7A720; // type:func -EnKarebaba_SetupRetract = 0x80A7A7C0; // type:func -EnKarebaba_SetupDead = 0x80A7A840; // type:func -EnKarebaba_SetupRegrow = 0x80A7A8CC; // type:func -EnKarebaba_Grow = 0x80A7A920; // type:func -EnKarebaba_Idle = 0x80A7A9B8; // type:func -EnKarebaba_Awaken = 0x80A7AA18; // type:func -EnKarebaba_Upright = 0x80A7AAEC; // type:func -EnKarebaba_Spin = 0x80A7ABE0; // type:func -EnKarebaba_Dying = 0x80A7AD74; // type:func -EnKarebaba_DeadItemDrop = 0x80A7B02C; // type:func -EnKarebaba_Retract = 0x80A7B094; // type:func -EnKarebaba_Dead = 0x80A7B168; // type:func -EnKarebaba_Regrow = 0x80A7B1C0; // type:func -EnKarebaba_Update = 0x80A7B28C; // type:func -EnKarebaba_DrawBaseShadow = 0x80A7B440; // type:func -EnKarebaba_Draw = 0x80A7B52C; // type:func -EnKo_AreObjectsAvailable = 0x80A7BC10; // type:func -EnKo_AreObjectsLoaded = 0x80A7BD28; // type:func -EnKo_IsOsAnimeAvailable = 0x80A7BDB0; // type:func -EnKo_IsOsAnimeLoaded = 0x80A7BE00; // type:func -EnKo_GetTextIdChild = 0x80A7BE40; // type:func -EnKo_GetTextIdAdult = 0x80A7C1A8; // type:func -EnKo_GetTextId = 0x80A7C480; // type:func -EnKo_UpdateTalkState = 0x80A7C5AC; // type:func -EnKo_GetForestQuestState = 0x80A7C9AC; // type:func -func_80A97BC0 = 0x80A7CA34; // type:func -func_80A97C7C = 0x80A7CAF0; // type:func -EnKo_IsWithinTalkAngle = 0x80A7CB74; // type:func -func_80A97D68 = 0x80A7CBE0; // type:func -func_80A97E18 = 0x80A7CC90; // type:func -func_80A97EB0 = 0x80A7CD2C; // type:func -func_80A97F20 = 0x80A7CDA0; // type:func -func_80A97F70 = 0x80A7CDF0; // type:func -func_80A98034 = 0x80A7CEB4; // type:func -func_80A98124 = 0x80A7CFA8; // type:func -func_80A98174 = 0x80A7CFF8; // type:func -EnKo_ChildStart = 0x80A7D0DC; // type:func -EnKo_ChildStone = 0x80A7D1E4; // type:func -EnKo_ChildSaria = 0x80A7D2EC; // type:func -EnKo_AdultEnemy = 0x80A7D3F4; // type:func -EnKo_AdultSaved = 0x80A7D4FC; // type:func -func_80A9877C = 0x80A7D604; // type:func -EnKo_CanSpawn = 0x80A7D7C0; // type:func -EnKo_Blink = 0x80A7DAA4; // type:func -func_80A98CD8 = 0x80A7DB64; // type:func -EnKo_GetForestQuestState2 = 0x80A7DBBC; // type:func -func_80A98DB4 = 0x80A7DC48; // type:func -func_80A98ECC = 0x80A7DD60; // type:func -EnKo_Init = 0x80A7DE28; // type:func -EnKo_Destroy = 0x80A7DEB8; // type:func -func_80A99048 = 0x80A7DEE4; // type:func -func_80A99384 = 0x80A7E214; // type:func -func_80A99438 = 0x80A7E2C8; // type:func -func_80A99504 = 0x80A7E394; // type:func -func_80A99560 = 0x80A7E3F4; // type:func -func_80A995CC = 0x80A7E464; // type:func -EnKo_Update = 0x80A7E5A0; // type:func -EnKo_OverrideLimbDraw = 0x80A7E704; // type:func -EnKo_PostLimbDraw = 0x80A7EA64; // type:func -EnKo_SetEnvColor = 0x80A7EB34; // type:func -EnKo_Draw = 0x80A7EBA0; // type:func -EnKusa_SetupAction = 0x80A7FD50; // type:func -EnKusa_SnapToFloor = 0x80A7FD60; // type:func -EnKusa_DropCollectible = 0x80A7FE04; // type:func -EnKusa_UpdateVelY = 0x80A7FED0; // type:func -EnKusa_RandScaleVecToZero = 0x80A7FF04; // type:func -EnKusa_SetScaleSmall = 0x80A7FF88; // type:func -EnKusa_SpawnFragments = 0x80A7FFAC; // type:func -EnKusa_SpawnBugs = 0x80A80304; // type:func -EnKusa_InitCollider = 0x80A803C0; // type:func -EnKusa_Init = 0x80A80418; // type:func -EnKusa_Destroy = 0x80A80540; // type:func -EnKusa_SetupWaitForObject = 0x80A8056C; // type:func -EnKusa_WaitForObject = 0x80A80590; // type:func -EnKusa_SetupMain = 0x80A80620; // type:func -EnKusa_Main = 0x80A80658; // type:func -EnKusa_SetupLiftedUp = 0x80A80820; // type:func -EnKusa_LiftedUp = 0x80A8085C; // type:func -EnKusa_SetupFall = 0x80A8093C; // type:func -EnKusa_Fall = 0x80A809A8; // type:func -EnKusa_SetupCut = 0x80A80C38; // type:func -EnKusa_CutWaitRegrow = 0x80A80C88; // type:func -EnKusa_DoNothing = 0x80A80CBC; // type:func -EnKusa_SetupUprootedWaitRegrow = 0x80A80CCC; // type:func -EnKusa_UprootedWaitRegrow = 0x80A80D38; // type:func -EnKusa_SetupRegrow = 0x80A80D9C; // type:func -EnKusa_Regrow = 0x80A80DF4; // type:func -EnKusa_Update = 0x80A80E8C; // type:func -EnKusa_Draw = 0x80A80EF0; // type:func -EnKz_GetTextIdChild = 0x80A81230; // type:func -EnKz_GetTextIdAdult = 0x80A8128C; // type:func -EnKz_GetTextId = 0x80A8133C; // type:func -EnKz_UpdateTalkState = 0x80A813A4; // type:func -EnKz_UpdateEyes = 0x80A815C8; // type:func -EnKz_UpdateTalking = 0x80A81640; // type:func -func_80A9CB18 = 0x80A817FC; // type:func -EnKz_FollowPath = 0x80A819BC; // type:func -EnKz_SetMovedPos = 0x80A81B28; // type:func -EnKz_Init = 0x80A81BF0; // type:func -EnKz_Destroy = 0x80A81D7C; // type:func -EnKz_PreMweepWait = 0x80A81DA8; // type:func -EnKz_SetupMweep = 0x80A81E18; // type:func -EnKz_Mweep = 0x80A81F44; // type:func -EnKz_StopMweep = 0x80A820B0; // type:func -EnKz_Wait = 0x80A82114; // type:func -EnKz_SetupGetItem = 0x80A8217C; // type:func -EnKz_StartTimer = 0x80A82210; // type:func -EnKz_Update = 0x80A822A8; // type:func -EnKz_OverrideLimbDraw = 0x80A82364; // type:func -EnKz_PostLimbDraw = 0x80A82434; // type:func -EnKz_Draw = 0x80A82490; // type:func -EnLight_Init = 0x80A827D0; // type:func -EnLight_Destroy = 0x80A829B0; // type:func -EnLight_UpdatePosRot = 0x80A829E4; // type:func -EnLight_Update = 0x80A82A60; // type:func -EnLight_UpdateSwitch = 0x80A82D04; // type:func -EnLight_Draw = 0x80A8313C; // type:func -EnLightbox_Init = 0x80A835D0; // type:func -EnLightbox_Destroy = 0x80A836FC; // type:func -EnLightbox_Update = 0x80A83730; // type:func -EnLightbox_Draw = 0x80A839B8; // type:func -EnMFire1_Init = 0x80A83A50; // type:func -EnMFire1_Destroy = 0x80A83ABC; // type:func -EnMFire1_Update = 0x80A83AE8; // type:func -func_80A9EFE0 = 0x80A83BF0; // type:func -EnMThunder_Init = 0x80A83BFC; // type:func -EnMThunder_Destroy = 0x80A83EBC; // type:func -func_80A9F314 = 0x80A83F2C; // type:func -func_80A9F350 = 0x80A83F68; // type:func -func_80A9F408 = 0x80A84020; // type:func -func_80A9F938 = 0x80A84554; // type:func -func_80A9F9B4 = 0x80A845D0; // type:func -EnMThunder_Update = 0x80A8473C; // type:func -EnMThunder_Draw = 0x80A84910; // type:func -EnMa1_GetTextId = 0x80A851F0; // type:func -EnMa1_UpdateTalkState = 0x80A852D8; // type:func -EnMa1_ShouldSpawn = 0x80A85424; // type:func -EnMa1_UpdateEyes = 0x80A85570; // type:func -EnMa1_ChangeAnim = 0x80A855E8; // type:func -EnMa1_UpdateTracking = 0x80A85658; // type:func -EnMa1_UpdateSinging = 0x80A856D8; // type:func -EnMa1_Init = 0x80A85750; // type:func -EnMa1_Destroy = 0x80A858B8; // type:func -EnMa1_Idle = 0x80A858F8; // type:func -EnMa1_GiveWeirdEgg = 0x80A85A10; // type:func -EnMa1_FinishGivingWeirdEgg = 0x80A85A70; // type:func -EnMa1_IdleTeachSong = 0x80A85AB8; // type:func -EnMa1_StartTeachSong = 0x80A85BE4; // type:func -EnMa1_TeachSong = 0x80A85C68; // type:func -EnMa1_WaitForPlayback = 0x80A85CD0; // type:func -EnMa1_DoNothing = 0x80A85D48; // type:func -EnMa1_Update = 0x80A85D58; // type:func -EnMa1_OverrideLimbDraw = 0x80A85E44; // type:func -EnMa1_PostLimbDraw = 0x80A85FD4; // type:func -EnMa1_Draw = 0x80A86030; // type:func -EnMa2_GetTextId = 0x80A864D0; // type:func -EnMa2_UpdateTalkState = 0x80A86568; // type:func -func_80AA1AE4 = 0x80A86618; // type:func -func_80AA1B58 = 0x80A8668C; // type:func -func_80AA1C68 = 0x80A8679C; // type:func -EnMa2_UpdateEyes = 0x80A867F4; // type:func -EnMa2_ChangeAnim = 0x80A86880; // type:func -func_80AA1DB4 = 0x80A868F0; // type:func -EnMa2_Init = 0x80A8697C; // type:func -EnMa2_Destroy = 0x80A86B20; // type:func -func_80AA2018 = 0x80A86B60; // type:func -func_80AA204C = 0x80A86B94; // type:func -func_80AA20E4 = 0x80A86C30; // type:func -func_80AA21C8 = 0x80A86D1C; // type:func -EnMa2_Update = 0x80A86DBC; // type:func -EnMa2_OverrideLimbDraw = 0x80A86EAC; // type:func -EnMa2_PostLimbDraw = 0x80A870EC; // type:func -EnMa2_Draw = 0x80A871A0; // type:func -EnMa3_GetTextId = 0x80A87530; // type:func -EnMa3_UpdateTalkState = 0x80A87668; // type:func -func_80AA2E54 = 0x80A878E8; // type:func -func_80AA2EC8 = 0x80A8795C; // type:func -func_80AA2F28 = 0x80A879C0; // type:func -EnMa3_UpdateEyes = 0x80A87A18; // type:func -EnMa3_ChangeAnim = 0x80A87AA4; // type:func -EnMa3_Init = 0x80A87B14; // type:func -EnMa3_Destroy = 0x80A87C68; // type:func -func_80AA3200 = 0x80A87CA8; // type:func -EnMa3_Update = 0x80A87CDC; // type:func -EnMa3_OverrideLimbDraw = 0x80A87DF0; // type:func -EnMa3_PostLimbDraw = 0x80A88030; // type:func -EnMa3_Draw = 0x80A880E4; // type:func -EnMag_Init = 0x80A884E0; // type:func -EnMag_Destroy = 0x80A88768; // type:func -EnMag_Update = 0x80A88778; // type:func -EnMag_DrawTextureI8 = 0x80A88E50; // type:func -EnMag_DrawEffectTextures = 0x80A89078; // type:func -EnMag_DrawImageRGBA32 = 0x80A894B0; // type:func -EnMag_DrawCharTexture = 0x80A89890; // type:func -EnMag_DrawInner = 0x80A89A5C; // type:func -EnMag_Draw = 0x80A8ABE4; // type:func -EnMb_SetupAction = 0x80A8AE10; // type:func -EnMb_Init = 0x80A8AE1C; // type:func -EnMb_Destroy = 0x80A8B180; // type:func -EnMb_FaceWaypoint = 0x80A8B1D0; // type:func -EnMb_NextWaypoint = 0x80A8B208; // type:func -EnMb_IsPlayerInCorridor = 0x80A8B2F4; // type:func -EnMb_FindWaypointTowardsPlayer = 0x80A8B468; // type:func -EnMb_SetupSpearGuardLookAround = 0x80A8B5F8; // type:func -EnMb_SetupClubWaitPlayerNear = 0x80A8B660; // type:func -EnMb_SetupSpearPatrolTurnTowardsWaypoint = 0x80A8B6C4; // type:func -EnMb_SetupSpearGuardWalk = 0x80A8B73C; // type:func -EnMb_SetupSpearPatrolWalkTowardsWaypoint = 0x80A8B7E0; // type:func -EnMb_SetupSpearPrepareAndCharge = 0x80A8B890; // type:func -EnMb_SetupSpearPatrolImmediateCharge = 0x80A8B948; // type:func -EnMb_SetupClubAttack = 0x80A8B9B8; // type:func -EnMb_SetupSpearEndChargeQuick = 0x80A8BA88; // type:func -EnMb_SetupSpearPatrolEndCharge = 0x80A8BAE8; // type:func -EnMb_SetupClubWaitAfterAttack = 0x80A8BB6C; // type:func -EnMb_SetupClubDamaged = 0x80A8BBE4; // type:func -EnMb_SetupClubDamagedWhileKneeling = 0x80A8BC44; // type:func -EnMb_SetupClubDead = 0x80A8BCCC; // type:func -EnMb_SetupStunned = 0x80A8BD54; // type:func -EnMb_Stunned = 0x80A8BDF8; // type:func -EnMb_SpearGuardLookAround = 0x80A8BF04; // type:func -EnMb_SpearPatrolTurnTowardsWaypoint = 0x80A8BF7C; // type:func -EnMb_SpearEndChargeQuick = 0x80A8C0E0; // type:func -EnMb_ClubWaitAfterAttack = 0x80A8C248; // type:func -EnMb_SpearPatrolEndCharge = 0x80A8C28C; // type:func -EnMb_SpearGuardPrepareAndCharge = 0x80A8C5A4; // type:func -EnMb_ClubAttack = 0x80A8C70C; // type:func -EnMb_SpearPatrolPrepareAndCharge = 0x80A8CA84; // type:func -EnMb_SpearPatrolImmediateCharge = 0x80A8CDE8; // type:func -EnMb_ClubDamaged = 0x80A8D158; // type:func -EnMb_ClubDamagedWhileKneeling = 0x80A8D1EC; // type:func -EnMb_ClubDead = 0x80A8D2F8; // type:func -EnMb_SpearGuardWalk = 0x80A8D5BC; // type:func -EnMb_SpearPatrolWalkTowardsWaypoint = 0x80A8D8CC; // type:func -EnMb_ClubWaitPlayerNear = 0x80A8DBB8; // type:func -EnMb_SetupSpearDamaged = 0x80A8DC68; // type:func -EnMb_SpearDamaged = 0x80A8DD30; // type:func -EnMb_SetupSpearDead = 0x80A8DDA8; // type:func -EnMb_SpearDead = 0x80A8DE80; // type:func -EnMb_SpearUpdateAttackCollider = 0x80A8E098; // type:func -EnMb_ClubUpdateAttackCollider = 0x80A8E224; // type:func -EnMb_CheckColliding = 0x80A8E2BC; // type:func -EnMb_Update = 0x80A8E488; // type:func -EnMb_PostLimbDraw = 0x80A8E65C; // type:func -EnMb_Draw = 0x80A8E7F8; // type:func -func_80AAA250 = 0x80A8F040; // type:func -func_80AAA274 = 0x80A8F068; // type:func -func_80AAA308 = 0x80A8F0FC; // type:func -func_80AAA39C = 0x80A8F190; // type:func -func_80AAA474 = 0x80A8F268; // type:func -func_80AAA508 = 0x80A8F2FC; // type:func -func_80AAA5A4 = 0x80A8F398; // type:func -func_80AAA638 = 0x80A8F42C; // type:func -func_80AAA6D4 = 0x80A8F4C8; // type:func -func_80AAA768 = 0x80A8F55C; // type:func -func_80AAA7FC = 0x80A8F5F0; // type:func -func_80AAA890 = 0x80A8F684; // type:func -func_80AAA92C = 0x80A8F720; // type:func -func_80AAA93C = 0x80A8F738; // type:func -func_80AAAA24 = 0x80A8F820; // type:func -func_80AAAC78 = 0x80A8FA74; // type:func -EnMd_GetTextIdKokiriForest = 0x80A8FAF4; // type:func -EnMd_GetTextIdMidosHouse = 0x80A8FBDC; // type:func -EnMd_GetTextIdLostWoods = 0x80A8FC10; // type:func -EnMd_GetTextId = 0x80A8FC90; // type:func -EnMd_UpdateTalkState = 0x80A8FD00; // type:func -EnMd_ShouldSpawn = 0x80A8FE38; // type:func -EnMd_UpdateEyes = 0x80A8FEDC; // type:func -func_80AAB158 = 0x80A8FF54; // type:func -EnMd_FollowPath = 0x80A90170; // type:func -EnMd_SetMovedPos = 0x80A902DC; // type:func -func_80AAB5A4 = 0x80A903A4; // type:func -EnMd_Init = 0x80A90450; // type:func -EnMd_Destroy = 0x80A9064C; // type:func -func_80AAB874 = 0x80A90678; // type:func -func_80AAB8F8 = 0x80A906FC; // type:func -func_80AAB948 = 0x80A9074C; // type:func -func_80AABC10 = 0x80A90A1C; // type:func -func_80AABD0C = 0x80A90B18; // type:func -EnMd_Update = 0x80A90C40; // type:func -EnMd_OverrideLimbDraw = 0x80A90D00; // type:func -EnMd_PostLimbDraw = 0x80A90F1C; // type:func -EnMd_Draw = 0x80A90F78; // type:func -EnMk_Init = 0x80A916B0; // type:func -EnMk_Destroy = 0x80A917C8; // type:func -func_80AACA40 = 0x80A917F4; // type:func -func_80AACA94 = 0x80A91844; // type:func -func_80AACB14 = 0x80A918CC; // type:func -func_80AACB6C = 0x80A91928; // type:func -func_80AACBAC = 0x80A91964; // type:func -func_80AACC04 = 0x80A919BC; // type:func -func_80AACCA0 = 0x80A91A58; // type:func -func_80AACD48 = 0x80A91B00; // type:func -func_80AACE2C = 0x80A91BE4; // type:func -func_80AACEE8 = 0x80A91CA0; // type:func -func_80AACFA0 = 0x80A91D58; // type:func -func_80AAD014 = 0x80A91DD0; // type:func -EnMk_Wait = 0x80A91E3C; // type:func -EnMk_Update = 0x80A92090; // type:func -EnMk_OverrideLimbDraw = 0x80A922DC; // type:func -EnMk_PostLimbDraw = 0x80A92324; // type:func -EnMk_Draw = 0x80A92364; // type:func -EnMm_ChangeAnim = 0x80A92540; // type:func -EnMm_Init = 0x80A92664; // type:func -EnMm_Destroy = 0x80A92820; // type:func -func_80AADA70 = 0x80A9284C; // type:func -func_80AADAA0 = 0x80A92880; // type:func -EnMm_GetTextId = 0x80A92A14; // type:func -func_80AADCD0 = 0x80A92AB4; // type:func -EnMm_GetPointCount = 0x80A92C34; // type:func -func_80AADE60 = 0x80A92C48; // type:func -func_80AADEF0 = 0x80A92CDC; // type:func -func_80AAE224 = 0x80A93014; // type:func -func_80AAE294 = 0x80A93084; // type:func -func_80AAE50C = 0x80A932FC; // type:func -func_80AAE598 = 0x80A93388; // type:func -EnMm_Update = 0x80A93430; // type:func -EnMm_Draw = 0x80A934A4; // type:func -EnMm_OverrideLimbDraw = 0x80A93738; // type:func -EnMm_PostLimbDraw = 0x80A937CC; // type:func -EnMm2_ChangeAnim = 0x80A93BA0; // type:func -func_80AAEF70 = 0x80A93CC4; // type:func -EnMm2_Init = 0x80A93D94; // type:func -EnMm2_Destroy = 0x80A93F4C; // type:func -func_80AAF224 = 0x80A93F78; // type:func -func_80AAF2BC = 0x80A94014; // type:func -func_80AAF330 = 0x80A94088; // type:func -func_80AAF3C0 = 0x80A94118; // type:func -func_80AAF57C = 0x80A942D4; // type:func -func_80AAF5EC = 0x80A94348; // type:func -func_80AAF668 = 0x80A943C4; // type:func -EnMm2_Update = 0x80A944B8; // type:func -EnMm2_Draw = 0x80A94600; // type:func -EnMm2_OverrideLimbDraw = 0x80A946CC; // type:func -EnMm2_PostLimbDraw = 0x80A94754; // type:func -EnMs_SetOfferText = 0x80A94960; // type:func -EnMs_Init = 0x80A949DC; // type:func -EnMs_Destroy = 0x80A94B00; // type:func -EnMs_Wait = 0x80A94B2C; // type:func -EnMs_Talk = 0x80A94BD8; // type:func -EnMs_Sell = 0x80A94CF4; // type:func -EnMs_TalkAfterPurchase = 0x80A94D90; // type:func -EnMs_Update = 0x80A94DF0; // type:func -EnMs_Draw = 0x80A94EE8; // type:func -EnMu_SetupAction = 0x80A95050; // type:func -EnMu_Interact = 0x80A9505C; // type:func -EnMu_GetTextId = 0x80A951BC; // type:func -EnMu_UpdateTalkState = 0x80A95200; // type:func -EnMu_Init = 0x80A9526C; // type:func -EnMu_Destroy = 0x80A95344; // type:func -EnMu_Pose = 0x80A95368; // type:func -EnMu_Update = 0x80A953A0; // type:func -EnMu_OverrideLimbDraw = 0x80A954E8; // type:func -EnMu_PostLimbDraw = 0x80A955D4; // type:func -EnMu_DisplayListSetColor = 0x80A955EC; // type:func -EnMu_Draw = 0x80A95658; // type:func -EnNb_GetPath = 0x80A95970; // type:func -EnNb_GetType = 0x80A95984; // type:func -EnNb_UpdatePath = 0x80A95994; // type:func -EnNb_SetupCollider = 0x80A95AC0; // type:func -EnNb_UpdateCollider = 0x80A95B0C; // type:func -EnNb_Destroy = 0x80A95B50; // type:func -func_80AB0FBC = 0x80A95B7C; // type:func -func_80AB1040 = 0x80A95C04; // type:func -func_80AB10C4 = 0x80A95C8C; // type:func -EnNb_UpdateEyes = 0x80A95D30; // type:func -func_80AB1284 = 0x80A95DB8; // type:func -EnNb_UpdateSkelAnime = 0x80A95E00; // type:func -EnNb_GetCue = 0x80A95E24; // type:func -EnNb_SetStartPosRotFromCue1 = 0x80A95E4C; // type:func -func_80AB1390 = 0x80A95ECC; // type:func -func_80AB13D8 = 0x80A95F18; // type:func -EnNb_SetStartPosRotFromCue2 = 0x80A95F64; // type:func -EnNb_SetCurrentAnim = 0x80A95FE4; // type:func -EnNb_SetChamberAnim = 0x80A96074; // type:func -EnNb_SpawnBlueWarp = 0x80A960BC; // type:func -EnNb_GiveMedallion = 0x80A96118; // type:func -EnNb_ComeUpImpl = 0x80A96194; // type:func -EnNb_SetupChamberCsImpl = 0x80A961B4; // type:func -EnNb_SetupChamberWarpImpl = 0x80A96250; // type:func -EnNb_SetupDefaultChamberIdle = 0x80A962A0; // type:func -EnNb_SetupArmRaise = 0x80A962CC; // type:func -EnNb_SetupRaisedArmTransition = 0x80A96360; // type:func -EnNb_SetupMedallion = 0x80A963CC; // type:func -EnNb_SetupChamberCs = 0x80A96418; // type:func -EnNb_SetupChamberWarp = 0x80A96438; // type:func -EnNb_ComeUp = 0x80A96458; // type:func -func_80AB193C = 0x80A96494; // type:func -EnNb_RaiseArm = 0x80A964DC; // type:func -func_80AB19BC = 0x80A96520; // type:func -func_80AB19FC = 0x80A96568; // type:func -EnNb_SetupLightArrowOrSealingCs = 0x80A9659C; // type:func -EnNb_PlaySealingSfx = 0x80A965E0; // type:func -EnNb_InitializeDemo6K = 0x80A96600; // type:func -EnNb_SetupHide = 0x80A96680; // type:func -EnNb_CheckToFade = 0x80A966D4; // type:func -EnNb_SetupLightOrb = 0x80A96828; // type:func -EnNb_Hide = 0x80A968C4; // type:func -EnNb_Fade = 0x80A968E4; // type:func -EnNb_CreateLightOrb = 0x80A9692C; // type:func -EnNb_DrawTransparency = 0x80A96974; // type:func -EnNb_InitKidnap = 0x80A96ABC; // type:func -EnNb_PlayCrySFX = 0x80A96B14; // type:func -EnNb_PlayAgonySFX = 0x80A96B4C; // type:func -EnNb_SetPosInPortal = 0x80A96B84; // type:func -EnNb_SetupCaptureCutsceneState = 0x80A96C68; // type:func -EnNb_SetRaisedArmCaptureAnim = 0x80A96C9C; // type:func -EnNb_SetupLookAroundInKidnap = 0x80A96CFC; // type:func -EnNb_SetupKidnap = 0x80A96D70; // type:func -EnNb_CheckKidnapCsMode = 0x80A96DE8; // type:func -func_80AB23A8 = 0x80A96EB0; // type:func -EnNb_MovingInPortal = 0x80A96EE8; // type:func -EnNb_SuckedInByPortal = 0x80A96F44; // type:func -EnNb_SetupConfrontation = 0x80A96FA0; // type:func -EnNb_PlayKnuckleDefeatSFX = 0x80A96FE4; // type:func -EnNb_PlayKneelingOnGroundSFX = 0x80A97028; // type:func -EnNb_PlayLookRightSFX = 0x80A9708C; // type:func -EnNb_PlayLookLeftSFX = 0x80A970D8; // type:func -EnNb_InitDemo6KInConfrontation = 0x80A97130; // type:func -func_80AB2688 = 0x80A971A8; // type:func -func_80AB26C8 = 0x80A971E8; // type:func -func_80AB26DC = 0x80A97200; // type:func -EnNb_SetupKneel = 0x80A97298; // type:func -EnNb_CheckIfKneeling = 0x80A97314; // type:func -EnNb_SetupLookRight = 0x80A97380; // type:func -EnNb_CheckIfLookingRight = 0x80A97400; // type:func -EnNb_SetupLookLeft = 0x80A9746C; // type:func -EnNb_CheckIfLookLeft = 0x80A974EC; // type:func -EnNb_SetupDemo6KInConfrontation = 0x80A9754C; // type:func -EnNb_SetupRun = 0x80A9758C; // type:func -EnNb_SetupConfrontationDestroy = 0x80A9760C; // type:func -EnNb_CheckConfrontationCsMode = 0x80A97624; // type:func -EnNb_CheckConfrontationCsModeWrapper = 0x80A9770C; // type:func -func_80AB2C18 = 0x80A9772C; // type:func -EnNb_Kneel = 0x80A97778; // type:func -EnNb_LookRight = 0x80A977E8; // type:func -EnNb_LookLeft = 0x80A97858; // type:func -EnNb_Run = 0x80A978C0; // type:func -EnNb_ConfrontationDestroy = 0x80A97948; // type:func -func_80AB2E70 = 0x80A9799C; // type:func -func_80AB2FC0 = 0x80A97AB8; // type:func -func_80AB2FE4 = 0x80A97AE0; // type:func -EnNb_SetupCreditsSpawn = 0x80A97C1C; // type:func -EnNb_SetAlphaInCredits = 0x80A97C64; // type:func -EnNb_SetupCreditsFadeIn = 0x80A97CF0; // type:func -EnNb_SetupCreditsSit = 0x80A97D28; // type:func -EnNb_SetupCreditsHeadTurn = 0x80A97D74; // type:func -EnNb_CheckIfLookingUp = 0x80A97DB4; // type:func -EnNb_CheckCreditsCsModeImpl = 0x80A97DE8; // type:func -EnNb_CheckCreditsCsMode = 0x80A97E74; // type:func -EnNb_CreditsFade = 0x80A97E94; // type:func -func_80AB3428 = 0x80A97EE0; // type:func -EnNb_LookUp = 0x80A97F28; // type:func -EnNb_CrawlspaceSpawnCheck = 0x80A97F6C; // type:func -func_80AB359C = 0x80A98068; // type:func -EnNb_SetNoticeSFX = 0x80A9812C; // type:func -EnNb_GetNoticedStatus = 0x80A98154; // type:func -func_80AB36DC = 0x80A981AC; // type:func -EnNb_CheckNoticed = 0x80A9825C; // type:func -EnNb_SetupIdleCrawlspace = 0x80A982B4; // type:func -func_80AB3838 = 0x80A9830C; // type:func -EnNb_SetupPathMovement = 0x80A98388; // type:func -EnNb_SetTextIdAsChild = 0x80A983F0; // type:func -func_80AB3A7C = 0x80A9855C; // type:func -func_80AB3B04 = 0x80A985E8; // type:func -func_80AB3B7C = 0x80A98670; // type:func -EnNb_WaitForNotice = 0x80A986BC; // type:func -EnNb_StandUpAfterNotice = 0x80A98718; // type:func -EnNb_BlockCrawlspace = 0x80A98778; // type:func -EnNb_InitCrawlspaceDialogue = 0x80A987E0; // type:func -EnNb_FollowPath = 0x80A98848; // type:func -func_80AB3DB0 = 0x80A988C8; // type:func -func_80AB3E10 = 0x80A98930; // type:func -EnNb_Update = 0x80A98998; // type:func -EnNb_Init = 0x80A989E0; // type:func -EnNb_OverrideLimbDraw = 0x80A98AFC; // type:func -EnNb_PostLimbDraw = 0x80A98B8C; // type:func -EnNb_DrawNothing = 0x80A98C18; // type:func -EnNb_DrawDefault = 0x80A98C28; // type:func -EnNb_Draw = 0x80A98D6C; // type:func -EnNiw_Init = 0x80A99F40; // type:func -EnNiw_Destroy = 0x80A9A444; // type:func -func_80AB5BF8 = 0x80A9A470; // type:func -EnNiw_SpawnAttackCucco = 0x80A9A818; // type:func -func_80AB6100 = 0x80A9A960; // type:func -EnNiw_ResetAction = 0x80A9AADC; // type:func -func_80AB6324 = 0x80A9AB84; // type:func -func_80AB63A8 = 0x80A9AC08; // type:func -func_80AB6450 = 0x80A9ACB0; // type:func -func_80AB6570 = 0x80A9ADD0; // type:func -func_80AB6A38 = 0x80A9B29C; // type:func -func_80AB6BF8 = 0x80A9B45C; // type:func -func_80AB6D08 = 0x80A9B56C; // type:func -func_80AB6EB4 = 0x80A9B718; // type:func -func_80AB6F04 = 0x80A9B768; // type:func -func_80AB70A0 = 0x80A9B908; // type:func -func_80AB70F8 = 0x80A9B960; // type:func -func_80AB714C = 0x80A9B9B4; // type:func -func_80AB7204 = 0x80A9BA6C; // type:func -func_80AB7290 = 0x80A9BAFC; // type:func -func_80AB7328 = 0x80A9BB94; // type:func -func_80AB7420 = 0x80A9BC90; // type:func -func_80AB747C = 0x80A9BCEC; // type:func -EnNiw_Update = 0x80A9BDA4; // type:func -EnNiw_OverrideLimbDraw = 0x80A9C650; // type:func -EnNiw_Draw = 0x80A9C7A8; // type:func -EnNiw_SpawnFeather = 0x80A9C858; // type:func -EnNiw_UpdateEffects = 0x80A9C948; // type:func -EnNiw_DrawEffects = 0x80A9CAFC; // type:func -EnNiwGirl_Init = 0x80A9D270; // type:func -EnNiwGirl_Destroy = 0x80A9D410; // type:func -EnNiwGirl_Jump = 0x80A9D420; // type:func -func_80AB9210 = 0x80A9D4A4; // type:func -EnNiwGirl_Talk = 0x80A9D658; // type:func -func_80AB94D0 = 0x80A9D768; // type:func -EnNiwGirl_Update = 0x80A9D85C; // type:func -EnNiwGirlOverrideLimbDraw = 0x80A9DA84; // type:func -EnNiwGirl_Draw = 0x80A9DAEC; // type:func -EnNiwLady_Init = 0x80A9DD40; // type:func -EnNiwLady_Destroy = 0x80A9DE28; // type:func -EnNiwLady_ChoseAnimation = 0x80A9DE54; // type:func -func_80AB9F24 = 0x80A9E01C; // type:func -func_80ABA21C = 0x80A9E318; // type:func -func_80ABA244 = 0x80A9E344; // type:func -func_80ABA654 = 0x80A9E6C4; // type:func -func_80ABA778 = 0x80A9E7BC; // type:func -func_80ABA878 = 0x80A9E890; // type:func -func_80ABA9B8 = 0x80A9E9D4; // type:func -func_80ABAA9C = 0x80A9EAB8; // type:func -func_80ABAB08 = 0x80A9EB28; // type:func -func_80ABAC00 = 0x80A9EC20; // type:func -func_80ABAC84 = 0x80A9ECA8; // type:func -func_80ABAD38 = 0x80A9ED50; // type:func -func_80ABAD7C = 0x80A9ED70; // type:func -EnNiwLady_Update = 0x80A9EE34; // type:func -EnNiwLady_EmptyDList = 0x80A9F09C; // type:func -EnNiwLady_OverrideLimbDraw = 0x80A9F0C0; // type:func -EnNiwLady_Draw = 0x80A9F21C; // type:func -EnNutsball_Init = 0x80A9F640; // type:func -EnNutsball_Destroy = 0x80A9F6FC; // type:func -func_80ABBB34 = 0x80A9F728; // type:func -func_80ABBBA8 = 0x80A9F7A0; // type:func -EnNutsball_Update = 0x80A9F970; // type:func -EnNutsball_Draw = 0x80A9FA8C; // type:func -EnNwc_SetUpdate = 0x80A9FC60; // type:func -EnNwc_ChickNoop = 0x80A9FC6C; // type:func -EnNwc_ChickBgCheck = 0x80A9FC80; // type:func -EnNwc_ChickFall = 0x80A9FD7C; // type:func -EnNwc_UpdateChicks = 0x80A9FDE8; // type:func -EnNwc_DrawChicks = 0x80A9FFE8; // type:func -EnNwc_Init = 0x80AA0344; // type:func -EnNwc_Destroy = 0x80AA04D0; // type:func -EnNwc_Idle = 0x80AA04FC; // type:func -EnNwc_Update = 0x80AA051C; // type:func -EnNwc_Draw = 0x80AA0570; // type:func -EnNy_Init = 0x80AA0680; // type:func -EnNy_Destroy = 0x80AA07BC; // type:func -func_80ABCD40 = 0x80AA07E8; // type:func -func_80ABCD84 = 0x80AA0830; // type:func -func_80ABCD94 = 0x80AA0844; // type:func -func_80ABCDAC = 0x80AA0860; // type:func -func_80ABCDBC = 0x80AA0874; // type:func -EnNy_SetupTurnToStone = 0x80AA08B8; // type:func -func_80ABCE38 = 0x80AA08F4; // type:func -func_80ABCE50 = 0x80AA0910; // type:func -func_80ABCE90 = 0x80AA0950; // type:func -func_80ABCEEC = 0x80AA09AC; // type:func -EnNy_Move = 0x80AA0A0C; // type:func -EnNy_TurnToStone = 0x80AA0B20; // type:func -func_80ABD11C = 0x80AA0BE0; // type:func -EnNy_CollisionCheck = 0x80AA0C54; // type:func -func_80ABD3B8 = 0x80AA0E7C; // type:func -EnNy_Update = 0x80AA0F64; // type:func -EnNy_SetupDie = 0x80AA11F0; // type:func -EnNy_Die = 0x80AA1474; // type:func -EnNy_UpdateDeath = 0x80AA1680; // type:func -EnNy_UpdateUnused = 0x80AA16C0; // type:func -EnNy_Draw = 0x80AA17F0; // type:func -EnNy_DrawDeathEffect = 0x80AA1AC4; // type:func -EnOE2_SetupAction = 0x80AA1FC0; // type:func -EnOE2_Init = 0x80AA1FCC; // type:func -EnOE2_Destroy = 0x80AA1FF4; // type:func -EnOE2_DoNothing = 0x80AA2004; // type:func -EnOE2_Update = 0x80AA2014; // type:func -EnOE2_Draw = 0x80AA2024; // type:func -EnOkarinaEffect_SetupAction = 0x80AA20A0; // type:func -EnOkarinaEffect_Destroy = 0x80AA20AC; // type:func -EnOkarinaEffect_Init = 0x80AA212C; // type:func -EnOkarinaEffect_TriggerStorm = 0x80AA2174; // type:func -EnOkarinaEffect_ManageStorm = 0x80AA2200; // type:func -EnOkarinaEffect_Update = 0x80AA23D0; // type:func -EnOkarinaTag_Destroy = 0x80AA2460; // type:func -EnOkarinaTag_Init = 0x80AA2470; // type:func -func_80ABEF2C = 0x80AA25D8; // type:func -func_80ABF0CC = 0x80AA273C; // type:func -func_80ABF28C = 0x80AA28FC; // type:func -func_80ABF4C8 = 0x80AA2B44; // type:func -func_80ABF708 = 0x80AA2D84; // type:func -func_80ABF7CC = 0x80AA2E4C; // type:func -EnOkarinaTag_Update = 0x80AA2F10; // type:func -EnOkuta_Init = 0x80AA3960; // type:func -EnOkuta_Destroy = 0x80AA3B6C; // type:func -EnOkuta_SpawnBubbles = 0x80AA3B98; // type:func -EnOkuta_SpawnDust = 0x80AA3C44; // type:func -EnOkuta_SpawnSplash = 0x80AA3CAC; // type:func -EnOkuta_SpawnRipple = 0x80AA3CF0; // type:func -EnOkuta_SetupWaitToAppear = 0x80AA3D94; // type:func -EnOkuta_SetupAppear = 0x80AA3DC4; // type:func -EnOkuta_SetupHide = 0x80AA3E34; // type:func -EnOkuta_SetupWaitToShoot = 0x80AA3E74; // type:func -EnOkuta_SetupShoot = 0x80AA3ED4; // type:func -EnOkuta_SetupWaitToDie = 0x80AA3FC0; // type:func -EnOkuta_SetupDie = 0x80AA4048; // type:func -EnOkuta_SetupFreeze = 0x80AA4090; // type:func -EnOkuta_SpawnProjectile = 0x80AA40DC; // type:func -EnOkuta_WaitToAppear = 0x80AA421C; // type:func -EnOkuta_Appear = 0x80AA4278; // type:func -EnOkuta_Hide = 0x80AA43BC; // type:func -EnOkuta_WaitToShoot = 0x80AA44BC; // type:func -EnOkuta_Shoot = 0x80AA45EC; // type:func -EnOkuta_WaitToDie = 0x80AA476C; // type:func -EnOkuta_Die = 0x80AA47C0; // type:func -EnOkuta_Freeze = 0x80AA4AD4; // type:func -EnOkuta_ProjectileFly = 0x80AA4C50; // type:func -EnOkuta_UpdateHeadScale = 0x80AA4E9C; // type:func -EnOkuta_ColliderCheck = 0x80AA5244; // type:func -EnOkuta_Update = 0x80AA52F4; // type:func -EnOkuta_GetSnoutScale = 0x80AA5674; // type:func -EnOkuta_OverrideLimbDraw = 0x80AA58FC; // type:func -EnOkuta_Draw = 0x80AA59F8; // type:func -EnOssan_SetupAction = 0x80AA5F40; // type:func -ShopItemDisp_Default = 0x80AA5F4C; // type:func -ShopItemDisp_SpookyMask = 0x80AA5F64; // type:func -ShopItemDisp_SkullMask = 0x80AA5F98; // type:func -ShopItemDisp_BunnyHood = 0x80AA5FCC; // type:func -ShopItemDisp_ZoraMask = 0x80AA6000; // type:func -ShopItemDisp_GoronMask = 0x80AA6034; // type:func -ShopItemDisp_GerudoMask = 0x80AA6068; // type:func -EnOssan_SpawnItemsOnShelves = 0x80AA609C; // type:func -EnOssan_UpdateShopOfferings = 0x80AA61F0; // type:func -EnOssan_TalkDefaultShopkeeper = 0x80AA635C; // type:func -EnOssan_TalkKakarikoPotionShopkeeper = 0x80AA637C; // type:func -EnOssan_TalkMarketPotionShopkeeper = 0x80AA63C0; // type:func -EnOssan_TalkKokiriShopkeeper = 0x80AA63E0; // type:func -EnOssan_TalkBazaarShopkeeper = 0x80AA6400; // type:func -EnOssan_TalkBombchuShopkeeper = 0x80AA6444; // type:func -EnOssan_TalkZoraShopkeeper = 0x80AA6464; // type:func -EnOssan_TalkGoronShopkeeper = 0x80AA64BC; // type:func -EnOssan_TalkHappyMaskShopkeeper = 0x80AA6590; // type:func -EnOssan_UpdateCameraDirection = 0x80AA661C; // type:func -EnOssan_TryGetObjBankIndices = 0x80AA6680; // type:func -EnOssan_Init = 0x80AA6744; // type:func -EnOssan_Destroy = 0x80AA6910; // type:func -EnOssan_UpdateCursorPos = 0x80AA6950; // type:func -EnOssan_EndInteraction = 0x80AA69B4; // type:func -EnOssan_TestEndInteraction = 0x80AA6A78; // type:func -EnOssan_TestCancelOption = 0x80AA6AC0; // type:func -EnOssan_SetStateStartShopping = 0x80AA6B24; // type:func -EnOssan_StartShopping = 0x80AA6BA8; // type:func -EnOssan_ChooseTalkToOwner = 0x80AA6C80; // type:func -EnOssan_SetLookToShopkeeperFromShelf = 0x80AA6CE0; // type:func -EnOssan_State_Idle = 0x80AA6D14; // type:func -EnOssan_UpdateJoystickInputState = 0x80AA6DC4; // type:func -EnOssan_SetCursorIndexFromNeutral = 0x80AA6F10; // type:func -EnOssan_CursorRight = 0x80AA7048; // type:func -EnOssan_CursorLeft = 0x80AA70D4; // type:func -EnOssan_TryPaybackMask = 0x80AA713C; // type:func -EnOssan_State_StartConversation = 0x80AA7278; // type:func -EnOssan_FacingShopkeeperDialogResult = 0x80AA7420; // type:func -EnOssan_State_FacingShopkeeper = 0x80AA748C; // type:func -EnOssan_State_TalkingToShopkeeper = 0x80AA75A4; // type:func -EnOssan_State_LookToLeftShelf = 0x80AA75F8; // type:func -EnOssan_State_LookToRightShelf = 0x80AA76E4; // type:func -EnOssan_CursorUpDown = 0x80AA77D0; // type:func -EnOssan_HasPlayerSelectedItem = 0x80AA79E4; // type:func -EnOssan_State_BrowseLeftShelf = 0x80AA7B80; // type:func -EnOssan_State_BrowseRightShelf = 0x80AA7D40; // type:func -EnOssan_State_LookFromShelfToShopkeeper = 0x80AA7F00; // type:func -EnOssan_State_DisplayOnlyBombDialog = 0x80AA7FBC; // type:func -EnOssan_GiveItemWithFanfare = 0x80AA808C; // type:func -EnOssan_SetStateCantGetItem = 0x80AA8158; // type:func -EnOssan_SetStateQuickBuyDialog = 0x80AA818C; // type:func -EnOssan_HandleCanBuyItem = 0x80AA81C0; // type:func -EnOssan_HandleCanBuyLonLonMilk = 0x80AA8368; // type:func -EnOssan_HandleCanBuyWeirdEgg = 0x80AA8474; // type:func -EnOssan_HandleCanBuyBombs = 0x80AA85AC; // type:func -EnOssan_BuyGoronCityBombs = 0x80AA86B0; // type:func -EnOssan_State_ItemSelected = 0x80AA8754; // type:func -EnOssan_State_SelectMilkBottle = 0x80AA8828; // type:func -EnOssan_State_SelectWeirdEgg = 0x80AA88FC; // type:func -EnOssan_State_SelectUnimplementedItem = 0x80AA89D0; // type:func -EnOssan_State_SelectBombs = 0x80AA8A60; // type:func -EnOssan_State_SelectMaskItem = 0x80AA8B58; // type:func -EnOssan_State_CantGetItem = 0x80AA8D34; // type:func -EnOssan_State_QuickBuyDialog = 0x80AA8DB0; // type:func -EnOssan_State_GiveItemWithFanfare = 0x80AA8E58; // type:func -EnOssan_State_ItemPurchased = 0x80AA8EC8; // type:func -EnOssan_State_ContinueShoppingPrompt = 0x80AA900C; // type:func -EnOssan_State_WaitForDisplayOnlyBombDialog = 0x80AA91EC; // type:func -EnOssan_State_21 = 0x80AA9254; // type:func -EnOssan_State_22 = 0x80AA92C8; // type:func -EnOssan_State_GiveLonLonMilk = 0x80AA931C; // type:func -EnOssan_State_LendMaskOfTruth = 0x80AA9370; // type:func -EnOssan_SetStateGiveDiscountDialog = 0x80AA93E0; // type:func -EnOssan_State_GiveDiscountDialog = 0x80AA940C; // type:func -EnOssan_PositionSelectedItem = 0x80AA94A0; // type:func -EnOssan_ResetItemPosition = 0x80AA9588; // type:func -EnOssan_TakeItemOffShelf = 0x80AA95AC; // type:func -EnOssan_ReturnItemToShelf = 0x80AA9648; // type:func -EnOssan_UpdateItemSelectedProperty = 0x80AA96D4; // type:func -EnOssan_UpdateCursorAnim = 0x80AA9810; // type:func -EnOssan_UpdateStickDirectionPromptAnim = 0x80AA98E4; // type:func -EnOssan_WaitForBlink = 0x80AA9A94; // type:func -EnOssan_Blink = 0x80AA9AC8; // type:func -EnOssan_AreShopkeeperObjectsLoaded = 0x80AA9B68; // type:func -EnOssan_InitBazaarShopkeeper = 0x80AA9C04; // type:func -EnOssan_InitKokiriShopkeeper = 0x80AA9C64; // type:func -EnOssan_InitGoronShopkeeper = 0x80AA9D7C; // type:func -EnOssan_InitZoraShopkeeper = 0x80AA9E58; // type:func -EnOssan_InitPotionShopkeeper = 0x80AA9F34; // type:func -EnOssan_InitHappyMaskShopkeeper = 0x80AA9F94; // type:func -EnOssan_InitBombchuShopkeeper = 0x80AA9FF4; // type:func -EnOssan_SetupHelloDialog = 0x80AAA054; // type:func -EnOssan_InitActionFunc = 0x80AAA1BC; // type:func -EnOssan_Obj3ToSeg6 = 0x80AAA474; // type:func -EnOssan_MainActionFunc = 0x80AAA4AC; // type:func -EnOssan_Update = 0x80AAA5C8; // type:func -EnOssan_OverrideLimbDrawDefaultShopkeeper = 0x80AAA5F4; // type:func -EnOssan_DrawCursor = 0x80AAA62C; // type:func -EnOssan_DrawTextRec = 0x80AAA88C; // type:func -EnOssan_DrawStickDirectionPrompts = 0x80AAAA28; // type:func -EnOssan_DrawBazaarShopkeeper = 0x80AAADD0; // type:func -EnOssan_OverrideLimbDrawKokiriShopkeeper = 0x80AAAEC4; // type:func -EnOssan_EmptyDList = 0x80AAAFBC; // type:func -EnOssan_SetEnvColor = 0x80AAAFE0; // type:func -EnOssan_DrawKokiriShopkeeper = 0x80AAB04C; // type:func -EnOssan_DrawGoronShopkeeper = 0x80AAB1AC; // type:func -EnOssan_OverrideLimbDrawZoraShopkeeper = 0x80AAB2E0; // type:func -EnOssan_DrawZoraShopkeeper = 0x80AAB318; // type:func -EnOssan_DrawPotionShopkeeper = 0x80AAB45C; // type:func -EnOssan_DrawHappyMaskShopkeeper = 0x80AAB548; // type:func -EnOssan_DrawBombchuShopkeeper = 0x80AAB634; // type:func -EnOwl_Init = 0x80AAC520; // type:func -EnOwl_Destroy = 0x80AAC904; // type:func -EnOwl_LookAtLink = 0x80AAC930; // type:func -EnOwl_CheckInitTalk = 0x80AAC96C; // type:func -func_80ACA558 = 0x80AACAD8; // type:func -func_80ACA5C8 = 0x80AACB4C; // type:func -func_80ACA62C = 0x80AACBAC; // type:func -func_80ACA690 = 0x80AACBF8; // type:func -func_80ACA6C0 = 0x80AACC28; // type:func -func_80ACA71C = 0x80AACC84; // type:func -func_80ACA76C = 0x80AACCD0; // type:func -func_80ACA7E0 = 0x80AACD44; // type:func -EnOwl_ConfirmKokiriMessage = 0x80AACDF0; // type:func -EnOwl_WaitOutsideKokiri = 0x80AACE90; // type:func -func_80ACA998 = 0x80AACF08; // type:func -func_80ACAA54 = 0x80AACFC8; // type:func -func_80ACAAC0 = 0x80AAD038; // type:func -EnOwl_WaitHyruleCastle = 0x80AAD0A8; // type:func -func_80ACAB88 = 0x80AAD10C; // type:func -func_80ACAC6C = 0x80AAD1F4; // type:func -EnOwl_WaitKakariko = 0x80AAD264; // type:func -func_80ACAD34 = 0x80AAD2C8; // type:func -func_80ACADF0 = 0x80AAD388; // type:func -EnOwl_WaitGerudo = 0x80AAD3F8; // type:func -func_80ACAEB8 = 0x80AAD45C; // type:func -func_80ACAF74 = 0x80AAD51C; // type:func -EnOwl_WaitLakeHylia = 0x80AAD58C; // type:func -func_80ACB03C = 0x80AAD5F0; // type:func -EnOwl_WaitZoraRiver = 0x80AAD664; // type:func -func_80ACB148 = 0x80AAD704; // type:func -EnOwl_WaitHyliaShortcut = 0x80AAD764; // type:func -func_80ACB22C = 0x80AAD7F0; // type:func -func_80ACB274 = 0x80AAD83C; // type:func -EnOwl_WaitDeathMountainShortcut = 0x80AAD880; // type:func -func_80ACB344 = 0x80AAD914; // type:func -func_80ACB3E0 = 0x80AAD9B4; // type:func -func_80ACB440 = 0x80AADA1C; // type:func -func_80ACB4FC = 0x80AADADC; // type:func -EnOwl_WaitLWPreSaria = 0x80AADB4C; // type:func -func_80ACB5C4 = 0x80AADBB0; // type:func -func_80ACB680 = 0x80AADC70; // type:func -EnOwl_WaitLWPostSaria = 0x80AADCE0; // type:func -func_80ACB748 = 0x80AADD44; // type:func -func_80ACB904 = 0x80AADF00; // type:func -func_80ACB994 = 0x80AADF98; // type:func -EnOwl_WaitDefault = 0x80AAE030; // type:func -func_80ACBAB8 = 0x80AAE0C4; // type:func -func_80ACBC0C = 0x80AAE218; // type:func -func_80ACBD4C = 0x80AAE354; // type:func -func_80ACBEA0 = 0x80AAE4A8; // type:func -func_80ACBF50 = 0x80AAE558; // type:func -func_80ACC00C = 0x80AAE614; // type:func -func_80ACC23C = 0x80AAE7D8; // type:func -func_80ACC30C = 0x80AAE8A4; // type:func -func_80ACC390 = 0x80AAE928; // type:func -func_80ACC460 = 0x80AAE9F8; // type:func -func_80ACC540 = 0x80AAEAD8; // type:func -func_80ACC5CC = 0x80AAEB64; // type:func -func_80ACC624 = 0x80AAEBBC; // type:func -EnOwl_Update = 0x80AAEC38; // type:func -EnOwl_OverrideLimbDraw = 0x80AAF388; // type:func -EnOwl_PostLimbUpdate = 0x80AAF4B4; // type:func -EnOwl_Draw = 0x80AAF538; // type:func -EnOwl_ChangeMode = 0x80AAF604; // type:func -func_80ACD130 = 0x80AAF67C; // type:func -func_80ACD1C4 = 0x80AAF710; // type:func -func_80ACD220 = 0x80AAF770; // type:func -func_80ACD2CC = 0x80AAF81C; // type:func -func_80ACD4D4 = 0x80AAFA24; // type:func -EnPart_Init = 0x80AB00C0; // type:func -EnPart_Destroy = 0x80AB00D0; // type:func -func_80ACDDE8 = 0x80AB00E0; // type:func -func_80ACE13C = 0x80AB0434; // type:func -func_80ACE5B8 = 0x80AB08B0; // type:func -func_80ACE5C8 = 0x80AB08C4; // type:func -func_80ACE7E8 = 0x80AB0AE8; // type:func -EnPart_Update = 0x80AB0CE4; // type:func -func_80ACEAC0 = 0x80AB0DC4; // type:func -EnPart_Draw = 0x80AB0E7C; // type:func -EnPeehat_SetupAction = 0x80AB1720; // type:func -EnPeehat_Init = 0x80AB172C; // type:func -EnPeehat_Destroy = 0x80AB199C; // type:func -EnPeehat_SpawnDust = 0x80AB1A10; // type:func -EnPeehat_HitWhenGrounded = 0x80AB1BA8; // type:func -EnPeehat_Ground_SetStateGround = 0x80AB1DC4; // type:func -EnPeehat_Ground_StateGround = 0x80AB1E5C; // type:func -EnPeehat_Flying_SetStateGround = 0x80AB1FB0; // type:func -EnPeehat_Flying_StateGrounded = 0x80AB203C; // type:func -EnPeehat_Flying_SetStateFly = 0x80AB2140; // type:func -EnPeehat_Flying_StateFly = 0x80AB2188; // type:func -EnPeehat_Ground_SetStateRise = 0x80AB2300; // type:func -EnPeehat_Ground_StateRise = 0x80AB23A8; // type:func -EnPeehat_Flying_SetStateRise = 0x80AB2570; // type:func -EnPeehat_Flying_StateRise = 0x80AB2618; // type:func -EnPeehat_Ground_SetStateSeekPlayer = 0x80AB27E0; // type:func -EnPeehat_Ground_StateSeekPlayer = 0x80AB2830; // type:func -EnPeehat_Larva_SetStateSeekPlayer = 0x80AB29AC; // type:func -EnPeehat_Larva_StateSeekPlayer = 0x80AB29F8; // type:func -EnPeehat_Ground_SetStateLanding = 0x80AB2DD0; // type:func -EnPeehat_Ground_StateLanding = 0x80AB2E18; // type:func -EnPeehat_Flying_SetStateLanding = 0x80AB2FCC; // type:func -EnPeehat_Flying_StateLanding = 0x80AB3014; // type:func -EnPeehat_Ground_SetStateHover = 0x80AB31C4; // type:func -EnPeehat_Ground_StateHover = 0x80AB3254; // type:func -EnPeehat_Ground_SetStateReturnHome = 0x80AB34B0; // type:func -EnPeehat_Ground_StateReturnHome = 0x80AB34E8; // type:func -EnPeehat_SetStateAttackRecoil = 0x80AB36D4; // type:func -EnPeehat_StateAttackRecoil = 0x80AB3734; // type:func -EnPeehat_SetStateBoomerangStunned = 0x80AB3910; // type:func -EnPeehat_StateBoomerangStunned = 0x80AB3994; // type:func -EnPeehat_Adult_SetStateDie = 0x80AB3A10; // type:func -EnPeehat_Adult_StateDie = 0x80AB3A7C; // type:func -EnPeehat_SetStateExplode = 0x80AB3D3C; // type:func -EnPeehat_StateExplode = 0x80AB3D94; // type:func -EnPeehat_Adult_CollisionCheck = 0x80AB3E6C; // type:func -EnPeehat_Update = 0x80AB4058; // type:func -EnPeehat_OverrideLimbDraw = 0x80AB44BC; // type:func -EnPeehat_PostLimbDraw = 0x80AB4694; // type:func -EnPeehat_Draw = 0x80AB4848; // type:func -EnPoDesert_Init = 0x80AB4E20; // type:func -EnPoDesert_Destroy = 0x80AB4F90; // type:func -EnPoDesert_SetNextPathPoint = 0x80AB4FD8; // type:func -EnPoDesert_SetupMoveToNextPoint = 0x80AB5134; // type:func -EnPoDesert_SetupDisappear = 0x80AB5178; // type:func -EnPoDesert_UpdateSpeedModifier = 0x80AB51D8; // type:func -EnPoDesert_WaitForPlayer = 0x80AB5248; // type:func -EnPoDesert_MoveToNextPoint = 0x80AB5314; // type:func -EnPoDesert_Disappear = 0x80AB54A8; // type:func -EnPoDesert_Update = 0x80AB5590; // type:func -EnPoDesert_OverrideLimbDraw = 0x80AB5684; // type:func -EnPoDesert_PostLimbDraw = 0x80AB5710; // type:func -EnPoDesert_Draw = 0x80AB5964; // type:func -EnPoField_Init = 0x80AB5BE0; // type:func -EnPoField_Destroy = 0x80AB5DE8; // type:func -EnPoField_SetupWaitForSpawn = 0x80AB5E48; // type:func -EnPoField_SetupAppear = 0x80AB5F0C; // type:func -EnPoField_SetupCirclePlayer = 0x80AB602C; // type:func -EnPoField_SetupFlee = 0x80AB60D4; // type:func -EnPoField_SetupDamage = 0x80AB6168; // type:func -EnPoField_SetupDeath = 0x80AB6224; // type:func -EnPoField_SetupDisappear = 0x80AB6278; // type:func -EnPoField_SetupSoulIdle = 0x80AB62F0; // type:func -func_80AD42B0 = 0x80AB63A0; // type:func -func_80AD4384 = 0x80AB6474; // type:func -EnPoField_SetupSoulDisappear = 0x80AB652C; // type:func -EnPoField_SetupInteractWithSoul = 0x80AB6540; // type:func -EnPoField_CorrectYPos = 0x80AB6568; // type:func -EnPoField_SetFleeSpeed = 0x80AB664C; // type:func -EnPoField_WaitForSpawn = 0x80AB675C; // type:func -EnPoField_Appear = 0x80AB69C4; // type:func -EnPoField_CirclePlayer = 0x80AB6B60; // type:func -EnPoField_Flee = 0x80AB6DA0; // type:func -EnPoField_Damage = 0x80AB6F44; // type:func -EnPoField_Death = 0x80AB6FD4; // type:func -EnPoField_Disappear = 0x80AB73EC; // type:func -EnPoField_SoulIdle = 0x80AB74EC; // type:func -EnPoField_SoulUpdateProperties = 0x80AB75D0; // type:func -func_80AD587C = 0x80AB7978; // type:func -func_80AD58D4 = 0x80AB79D0; // type:func -EnPoField_SoulDisappear = 0x80AB7BD4; // type:func -EnPoField_SoulInteract = 0x80AB7C14; // type:func -EnPoField_TestForDamage = 0x80AB7D74; // type:func -EnPoField_SpawnFlame = 0x80AB7E0C; // type:func -EnPoField_UpdateFlame = 0x80AB7E60; // type:func -EnPoField_DrawFlame = 0x80AB7F8C; // type:func -func_80AD619C = 0x80AB8264; // type:func -func_80AD6330 = 0x80AB83F8; // type:func -EnPoField_Update = 0x80AB856C; // type:func -EnPoField_OverrideLimbDraw2 = 0x80AB8698; // type:func -EnPoField_PostLimDraw2 = 0x80AB87A0; // type:func -EnPoField_Draw = 0x80AB89B0; // type:func -EnPoField_UpdateDead = 0x80AB8C94; // type:func -EnPoField_DrawSoul = 0x80AB8CF0; // type:func -EnPoRelay_Init = 0x80AB9670; // type:func -EnPoRelay_Destroy = 0x80AB97F8; // type:func -EnPoRelay_SetupIdle = 0x80AB9840; // type:func -EnPoRelay_Vec3sToVec3f = 0x80AB987C; // type:func -EnPoRelay_SetupRace = 0x80AB98C0; // type:func -EnPoRelay_SetupEndRace = 0x80AB9988; // type:func -EnPoRelay_CorrectY = 0x80AB99C8; // type:func -EnPoRelay_Idle = 0x80AB9A70; // type:func -EnPoRelay_Talk = 0x80AB9B2C; // type:func -EnPoRelay_Race = 0x80AB9BA0; // type:func -EnPoRelay_EndRace = 0x80ABA0B4; // type:func -EnPoRelay_Talk2 = 0x80ABA174; // type:func -EnPoRelay_DisappearAndReward = 0x80ABA24C; // type:func -EnPoRelay_Update = 0x80ABA718; // type:func -EnPoRelay_PostLimbDraw = 0x80ABA80C; // type:func -EnPoRelay_Draw = 0x80ABAA00; // type:func -EnPoSisters_Init = 0x80ABAD80; // type:func -EnPoSisters_Destroy = 0x80ABAFCC; // type:func -func_80AD9240 = 0x80ABB034; // type:func -func_80AD9368 = 0x80ABB160; // type:func -func_80AD93C4 = 0x80ABB1BC; // type:func -func_80AD943C = 0x80ABB234; // type:func -func_80AD944C = 0x80ABB248; // type:func -func_80AD94E0 = 0x80ABB2DC; // type:func -func_80AD9568 = 0x80ABB364; // type:func -func_80AD95D8 = 0x80ABB3D4; // type:func -func_80AD96A4 = 0x80ABB4A0; // type:func -func_80AD9718 = 0x80ABB514; // type:func -func_80AD97C8 = 0x80ABB5C4; // type:func -func_80AD98F4 = 0x80ABB6F0; // type:func -func_80AD99D4 = 0x80ABB7D0; // type:func -func_80AD9A54 = 0x80ABB850; // type:func -func_80AD9AA8 = 0x80ABB8A4; // type:func -func_80AD9C24 = 0x80ABBA20; // type:func -func_80AD9D44 = 0x80ABBB40; // type:func -func_80AD9DF0 = 0x80ABBBEC; // type:func -func_80AD9E60 = 0x80ABBC5C; // type:func -func_80AD9F1C = 0x80ABBD18; // type:func -func_80AD9F90 = 0x80ABBD8C; // type:func -func_80ADA028 = 0x80ABBE24; // type:func -func_80ADA094 = 0x80ABBE90; // type:func -func_80ADA10C = 0x80ABBF08; // type:func -func_80ADA1B8 = 0x80ABBFB8; // type:func -func_80ADA25C = 0x80ABC05C; // type:func -func_80ADA2BC = 0x80ABC0BC; // type:func -func_80ADA35C = 0x80ABC15C; // type:func -func_80ADA4A8 = 0x80ABC2A8; // type:func -func_80ADA530 = 0x80ABC330; // type:func -func_80ADA6A0 = 0x80ABC4A0; // type:func -func_80ADA7F0 = 0x80ABC5F0; // type:func -func_80ADA8C0 = 0x80ABC6C0; // type:func -func_80ADA9E8 = 0x80ABC7E8; // type:func -func_80ADAAA4 = 0x80ABC8A4; // type:func -func_80ADAC70 = 0x80ABCA70; // type:func -func_80ADAD54 = 0x80ABCB54; // type:func -func_80ADAE6C = 0x80ABCC6C; // type:func -func_80ADAFC0 = 0x80ABCDC0; // type:func -func_80ADB17C = 0x80ABCF7C; // type:func -func_80ADB2B8 = 0x80ABD0B8; // type:func -func_80ADB338 = 0x80ABD134; // type:func -func_80ADB4B0 = 0x80ABD2B0; // type:func -func_80ADB51C = 0x80ABD31C; // type:func -func_80ADB770 = 0x80ABD570; // type:func -func_80ADB9F0 = 0x80ABD7F0; // type:func -func_80ADBB6C = 0x80ABD96C; // type:func -func_80ADBBF4 = 0x80ABD9F4; // type:func -func_80ADBC88 = 0x80ABDA88; // type:func -func_80ADBD38 = 0x80ABDB3C; // type:func -func_80ADBD8C = 0x80ABDB90; // type:func -func_80ADBEE8 = 0x80ABDCF0; // type:func -func_80ADBF58 = 0x80ABDD60; // type:func -func_80ADC034 = 0x80ABDE3C; // type:func -func_80ADC10C = 0x80ABDF14; // type:func -EnPoSisters_Update = 0x80ABE0D8; // type:func -func_80ADC55C = 0x80ABE36C; // type:func -EnPoSisters_OverrideLimbDraw = 0x80ABE58C; // type:func -EnPoSisters_PostLimbDraw = 0x80ABE77C; // type:func -EnPoSisters_Draw = 0x80ABEE4C; // type:func -EnPoh_Init = 0x80ABFA70; // type:func -EnPoh_Destroy = 0x80ABFDB8; // type:func -func_80ADE114 = 0x80ABFE38; // type:func -EnPoh_SetupIdle = 0x80ABFE90; // type:func -func_80ADE1BC = 0x80ABFEE0; // type:func -EnPoh_SetupAttack = 0x80ABFF30; // type:func -func_80ADE28C = 0x80ABFFB0; // type:func -func_80ADE368 = 0x80AC008C; // type:func -EnPoh_SetupInitialAction = 0x80AC0100; // type:func -func_80ADE48C = 0x80AC01B0; // type:func -func_80ADE4C8 = 0x80AC01F0; // type:func -func_80ADE514 = 0x80AC023C; // type:func -EnPoh_SetupDisappear = 0x80AC0294; // type:func -EnPoh_SetupAppear = 0x80AC02EC; // type:func -EnPoh_SetupDeath = 0x80AC0338; // type:func -func_80ADE6D4 = 0x80AC0404; // type:func -EnPoh_Talk = 0x80AC04F0; // type:func -func_80ADE950 = 0x80AC0688; // type:func -func_80ADE998 = 0x80AC06D4; // type:func -func_80ADE9BC = 0x80AC06FC; // type:func -EnPoh_MoveTowardsPlayerHeight = 0x80AC0710; // type:func -func_80ADEA5C = 0x80AC07A4; // type:func -func_80ADEAC4 = 0x80AC0814; // type:func -EnPoh_Idle = 0x80AC08D0; // type:func -func_80ADEC9C = 0x80AC09EC; // type:func -EnPoh_Attack = 0x80AC0B50; // type:func -func_80ADEECC = 0x80AC0C20; // type:func -func_80ADEF38 = 0x80AC0C8C; // type:func -EnPoh_ComposerAppear = 0x80AC0E0C; // type:func -func_80ADF15C = 0x80AC0EB0; // type:func -func_80ADF574 = 0x80AC12C8; // type:func -func_80ADF5E0 = 0x80AC1334; // type:func -EnPoh_Disappear = 0x80AC13B4; // type:func -EnPoh_Appear = 0x80AC14D0; // type:func -func_80ADF894 = 0x80AC15F0; // type:func -EnPoh_Death = 0x80AC16F0; // type:func -func_80ADFA90 = 0x80AC17F0; // type:func -func_80ADFE28 = 0x80AC1B88; // type:func -func_80ADFE80 = 0x80AC1BE0; // type:func -func_80AE009C = 0x80AC1DFC; // type:func -EnPoh_TalkRegular = 0x80AC1E3C; // type:func -EnPoh_TalkComposer = 0x80AC1F68; // type:func -func_80AE032C = 0x80AC2094; // type:func -EnPoh_UpdateVisibility = 0x80AC212C; // type:func -EnPoh_Update = 0x80AC229C; // type:func -func_80AE067C = 0x80AC23E8; // type:func -func_80AE089C = 0x80AC2608; // type:func -EnPoh_UpdateLiving = 0x80AC2788; // type:func -EnPoh_OverrideLimbDraw = 0x80AC2968; // type:func -EnPoh_PostLimbDraw = 0x80AC2A5C; // type:func -EnPoh_DrawRegular = 0x80AC2C4C; // type:func -EnPoh_DrawComposer = 0x80AC2E74; // type:func -EnPoh_UpdateDead = 0x80AC32F0; // type:func -EnPoh_DrawSoul = 0x80AC3344; // type:func -EnPubox_Init = 0x80AC3C60; // type:func -EnPubox_Destroy = 0x80AC3D98; // type:func -EnPubox_Update = 0x80AC3DCC; // type:func -EnPubox_Draw = 0x80AC3F1C; // type:func -EnRd_SetupAction = 0x80AC3FA0; // type:func -EnRd_Init = 0x80AC3FAC; // type:func -EnRd_Destroy = 0x80AC4198; // type:func -EnRd_UpdateMourningTarget = 0x80AC41DC; // type:func -EnRd_SetupIdle = 0x80AC4248; // type:func -EnRd_Idle = 0x80AC42F0; // type:func -EnRd_SetupRiseFromCoffin = 0x80AC451C; // type:func -EnRd_RiseFromCoffin = 0x80AC45BC; // type:func -EnRd_SetupWalkToPlayer = 0x80AC473C; // type:func -EnRd_WalkToPlayer = 0x80AC47C8; // type:func -EnRd_SetupWalkToHome = 0x80AC4AFC; // type:func -EnRd_WalkToHome = 0x80AC4B7C; // type:func -EnRd_SetupWalkToParent = 0x80AC4D90; // type:func -EnRd_WalkToParent = 0x80AC4E14; // type:func -EnRd_SetupGrab = 0x80AC4FA8; // type:func -EnRd_Grab = 0x80AC500C; // type:func -EnRd_SetupAttemptPlayerFreeze = 0x80AC5378; // type:func -EnRd_AttemptPlayerFreeze = 0x80AC53F0; // type:func -EnRd_SetupStandUp = 0x80AC54E8; // type:func -EnRd_StandUp = 0x80AC5534; // type:func -EnRd_SetupCrouch = 0x80AC5590; // type:func -EnRd_Crouch = 0x80AC5610; // type:func -EnRd_SetupDamaged = 0x80AC564C; // type:func -EnRd_Damaged = 0x80AC56D8; // type:func -EnRd_SetupDead = 0x80AC57E8; // type:func -EnRd_Dead = 0x80AC5860; // type:func -EnRd_SetupStunned = 0x80AC59AC; // type:func -EnRd_Stunned = 0x80AC5A98; // type:func -EnRd_TurnTowardsPlayer = 0x80AC5B6C; // type:func -EnRd_UpdateDamage = 0x80AC5CE4; // type:func -EnRd_Update = 0x80AC5EB0; // type:func -EnRd_OverrideLimbDraw = 0x80AC609C; // type:func -EnRd_PostLimbDraw = 0x80AC60F8; // type:func -EnRd_Draw = 0x80AC6240; // type:func -EnReeba_Init = 0x80AC6860; // type:func -EnReeba_Destroy = 0x80AC6A3C; // type:func -EnReeba_SetupSurface = 0x80AC6AB4; // type:func -EnReeba_Surface = 0x80AC6BC8; // type:func -EnReeba_Move = 0x80AC6DE8; // type:func -EnReeba_SetupMoveBig = 0x80AC6F04; // type:func -EnReeba_MoveBig = 0x80AC6F28; // type:func -EnReeba_Recoiled = 0x80AC7198; // type:func -EnReeba_SetupSink = 0x80AC7204; // type:func -EnReeba_Sink = 0x80AC725C; // type:func -EnReeba_SetupDamaged = 0x80AC736C; // type:func -EnReeba_Damaged = 0x80AC73D0; // type:func -EnReeba_SetupStunned = 0x80AC7468; // type:func -EnReeba_Stunned = 0x80AC74B8; // type:func -EnReeba_StunDie = 0x80AC761C; // type:func -EnReeba_SetupDie = 0x80AC7744; // type:func -EnReeba_Die = 0x80AC77B8; // type:func -EnReeba_StunRecover = 0x80AC7998; // type:func -EnReeba_CheckDamage = 0x80AC7A2C; // type:func -EnReeba_Update = 0x80AC7C68; // type:func -EnReeba_Draw = 0x80AC7F18; // type:func -EnRiverSound_Init = 0x80AC82D0; // type:func -EnRiverSound_Destroy = 0x80AC83A0; // type:func -EnRiverSound_FindClosestPointOnLineSegment = 0x80AC83F8; // type:func -EnRiverSound_GetSfxPos = 0x80AC8564; // type:func -EnRiverSound_Update = 0x80AC8860; // type:func -EnRiverSound_Draw = 0x80AC8A30; // type:func -EnRl_Destroy = 0x80AC8C60; // type:func -func_80AE72D0 = 0x80AC8C84; // type:func -func_80AE744C = 0x80AC8D0C; // type:func -func_80AE7494 = 0x80AC8D54; // type:func -func_80AE74B4 = 0x80AC8D78; // type:func -func_80AE74FC = 0x80AC8DC4; // type:func -func_80AE7544 = 0x80AC8E10; // type:func -func_80AE7590 = 0x80AC8E5C; // type:func -func_80AE7668 = 0x80AC8F3C; // type:func -func_80AE7698 = 0x80AC8F70; // type:func -func_80AE772C = 0x80AC9004; // type:func -func_80AE7798 = 0x80AC9070; // type:func -func_80AE77B8 = 0x80AC9090; // type:func -func_80AE77F8 = 0x80AC90D8; // type:func -func_80AE7838 = 0x80AC911C; // type:func -func_80AE7878 = 0x80AC9164; // type:func -func_80AE78D4 = 0x80AC91BC; // type:func -func_80AE7954 = 0x80AC923C; // type:func -func_80AE79A4 = 0x80AC928C; // type:func -func_80AE7AF8 = 0x80AC93E0; // type:func -func_80AE7BF8 = 0x80AC94EC; // type:func -func_80AE7C64 = 0x80AC9558; // type:func -func_80AE7C94 = 0x80AC9578; // type:func -func_80AE7CE8 = 0x80AC95C0; // type:func -func_80AE7D40 = 0x80AC9604; // type:func -func_80AE7D94 = 0x80AC964C; // type:func -EnRl_Update = 0x80AC9794; // type:func -EnRl_Init = 0x80AC97DC; // type:func -func_80AE7FD0 = 0x80AC9848; // type:func -func_80AE7FDC = 0x80AC9858; // type:func -EnRl_Draw = 0x80AC998C; // type:func -EnRr_Init = 0x80AC9B40; // type:func -EnRr_Destroy = 0x80AC9CE0; // type:func -EnRr_Move = 0x80AC9D20; // type:func -EnRr_SetupReach = 0x80AC9D48; // type:func -EnRr_SetupNeutral = 0x80AC9E48; // type:func -EnRr_SetupGrabPlayer = 0x80AC9F14; // type:func -EnRr_GetMessage = 0x80ACA01C; // type:func -EnRr_SetupReleasePlayer = 0x80ACA070; // type:func -EnRr_SetupDamage = 0x80ACA26C; // type:func -EnRr_SetupApproach = 0x80ACA338; // type:func -EnRr_SetupDeath = 0x80ACA3F0; // type:func -EnRr_SetupStunned = 0x80ACA490; // type:func -EnRr_CollisionCheck = 0x80ACA59C; // type:func -EnRr_InitBodySegments = 0x80ACA92C; // type:func -EnRr_UpdateBodySegments = 0x80ACAAEC; // type:func -EnRr_Approach = 0x80ACAC70; // type:func -EnRr_Reach = 0x80ACAD30; // type:func -EnRr_GrabPlayer = 0x80ACAE4C; // type:func -EnRr_Damage = 0x80ACAF44; // type:func -EnRr_Death = 0x80ACAFBC; // type:func -EnRr_Retreat = 0x80ACB330; // type:func -EnRr_Stunned = 0x80ACB3C4; // type:func -EnRr_Update = 0x80ACB42C; // type:func -EnRr_Draw = 0x80ACB858; // type:func -func_80AEAC10 = 0x80ACC070; // type:func -func_80AEAC54 = 0x80ACC0B4; // type:func -func_80AEACDC = 0x80ACC13C; // type:func -func_80AEAD20 = 0x80ACC180; // type:func -EnRu1_DestroyColliders = 0x80ACC1F8; // type:func -func_80AEADD8 = 0x80ACC238; // type:func -func_80AEADE0 = 0x80ACC244; // type:func -func_80AEADF0 = 0x80ACC258; // type:func -EnRu1_Destroy = 0x80ACC268; // type:func -EnRu1_UpdateEyes = 0x80ACC288; // type:func -EnRu1_SetEyeIndex = 0x80ACC310; // type:func -EnRu1_SetMouthIndex = 0x80ACC328; // type:func -func_80AEAECC = 0x80ACC340; // type:func -EnRu1_IsCsStateIdle = 0x80ACC3A8; // type:func -EnRu1_GetCue = 0x80ACC3C8; // type:func -func_80AEAFA0 = 0x80ACC414; // type:func -func_80AEAFE0 = 0x80ACC454; // type:func -func_80AEB020 = 0x80ACC494; // type:func -EnRu1_FindSwitch = 0x80ACC4FC; // type:func -func_80AEB0EC = 0x80ACC544; // type:func -func_80AEB104 = 0x80ACC55C; // type:func -func_80AEB124 = 0x80ACC57C; // type:func -func_80AEB174 = 0x80ACC5CC; // type:func -func_80AEB1B4 = 0x80ACC610; // type:func -func_80AEB264 = 0x80ACC63C; // type:func -EnRu1_UpdateSkelAnime = 0x80ACC6F8; // type:func -func_80AEB364 = 0x80ACC73C; // type:func -func_80AEB3A4 = 0x80ACC77C; // type:func -func_80AEB3CC = 0x80ACC7A4; // type:func -func_80AEB3DC = 0x80ACC7B8; // type:func -EnRu1_GetCueChannel3 = 0x80ACC814; // type:func -func_80AEB458 = 0x80ACC834; // type:func -func_80AEB480 = 0x80ACC85C; // type:func -EnRu1_SpawnRipple = 0x80ACC884; // type:func -func_80AEB50C = 0x80ACC8EC; // type:func -func_80AEB59C = 0x80ACC97C; // type:func -EnRu1_SpawnSplash = 0x80ACCA68; // type:func -func_80AEB6E0 = 0x80ACCACC; // type:func -func_80AEB738 = 0x80ACCB28; // type:func -func_80AEB7D0 = 0x80ACCBC0; // type:func -func_80AEB7E0 = 0x80ACCBD4; // type:func -func_80AEB87C = 0x80ACCC70; // type:func -func_80AEB89C = 0x80ACCC94; // type:func -func_80AEB914 = 0x80ACCD0C; // type:func -func_80AEB934 = 0x80ACCD2C; // type:func -func_80AEB954 = 0x80ACCD4C; // type:func -func_80AEB974 = 0x80ACCD6C; // type:func -func_80AEBA0C = 0x80ACCE04; // type:func -func_80AEBA2C = 0x80ACCE24; // type:func -func_80AEBAFC = 0x80ACCEF4; // type:func -func_80AEBB3C = 0x80ACCF38; // type:func -func_80AEBB78 = 0x80ACCF78; // type:func -func_80AEBBF4 = 0x80ACCFF8; // type:func -func_80AEBC30 = 0x80ACD038; // type:func -func_80AEBC84 = 0x80ACD090; // type:func -func_80AEBCB8 = 0x80ACD0C8; // type:func -func_80AEBD1C = 0x80ACD12C; // type:func -func_80AEBD94 = 0x80ACD1A4; // type:func -func_80AEBE3C = 0x80ACD24C; // type:func -func_80AEBEC8 = 0x80ACD2DC; // type:func -func_80AEBF60 = 0x80ACD374; // type:func -func_80AEBFD8 = 0x80ACD3F0; // type:func -func_80AEC070 = 0x80ACD488; // type:func -func_80AEC0B4 = 0x80ACD4D0; // type:func -func_80AEC100 = 0x80ACD524; // type:func -func_80AEC130 = 0x80ACD558; // type:func -func_80AEC17C = 0x80ACD5A8; // type:func -func_80AEC1D4 = 0x80ACD608; // type:func -func_80AEC244 = 0x80ACD67C; // type:func -func_80AEC2C0 = 0x80ACD6FC; // type:func -func_80AEC320 = 0x80ACD760; // type:func -func_80AEC40C = 0x80ACD854; // type:func -func_80AEC4CC = 0x80ACD914; // type:func -func_80AEC4F4 = 0x80ACD93C; // type:func -func_80AEC5FC = 0x80ACDA44; // type:func -func_80AEC650 = 0x80ACDA98; // type:func -func_80AEC6B0 = 0x80ACDAFC; // type:func -func_80AEC6E4 = 0x80ACDB34; // type:func -func_80AEC780 = 0x80ACDBD4; // type:func -func_80AEC81C = 0x80ACDC74; // type:func -func_80AEC8B8 = 0x80ACDD10; // type:func -func_80AEC93C = 0x80ACDD98; // type:func -func_80AEC9C4 = 0x80ACDE20; // type:func -func_80AECA18 = 0x80ACDE74; // type:func -func_80AECA44 = 0x80ACDEA4; // type:func -func_80AECA94 = 0x80ACDEF8; // type:func -func_80AECAB4 = 0x80ACDF18; // type:func -func_80AECAD4 = 0x80ACDF38; // type:func -func_80AECB18 = 0x80ACDF80; // type:func -func_80AECB60 = 0x80ACDFCC; // type:func -func_80AECBB8 = 0x80ACE028; // type:func -func_80AECC1C = 0x80ACE090; // type:func -func_80AECC84 = 0x80ACE0FC; // type:func -func_80AECCB0 = 0x80ACE128; // type:func -func_80AECDA0 = 0x80ACE218; // type:func -func_80AECE04 = 0x80ACE27C; // type:func -func_80AECE20 = 0x80ACE29C; // type:func -func_80AECEB4 = 0x80ACE32C; // type:func -func_80AECF6C = 0x80ACE3E4; // type:func -func_80AED084 = 0x80ACE4FC; // type:func -func_80AED0B0 = 0x80ACE528; // type:func -func_80AED0C8 = 0x80ACE540; // type:func -func_80AED0D8 = 0x80ACE554; // type:func -func_80AED110 = 0x80ACE58C; // type:func -func_80AED154 = 0x80ACE5D0; // type:func -func_80AED19C = 0x80ACE618; // type:func -func_80AED218 = 0x80ACE694; // type:func -func_80AED304 = 0x80ACE784; // type:func -func_80AED324 = 0x80ACE7A4; // type:func -func_80AED344 = 0x80ACE7C4; // type:func -func_80AED374 = 0x80ACE7F8; // type:func -func_80AED3A4 = 0x80ACE82C; // type:func -func_80AED3E0 = 0x80ACE86C; // type:func -func_80AED414 = 0x80ACE8A4; // type:func -func_80AED44C = 0x80ACE8E4; // type:func -func_80AED4FC = 0x80ACE998; // type:func -func_80AED520 = 0x80ACE9C0; // type:func -func_80AED57C = 0x80ACEA20; // type:func -func_80AED5B8 = 0x80ACEA60; // type:func -func_80AED5DC = 0x80ACEA88; // type:func -func_80AED600 = 0x80ACEAB0; // type:func -func_80AED624 = 0x80ACEAD8; // type:func -func_80AED6DC = 0x80ACEB90; // type:func -func_80AED6F8 = 0x80ACEBB0; // type:func -func_80AED738 = 0x80ACEBF0; // type:func -func_80AED83C = 0x80ACECF8; // type:func -func_80AED8DC = 0x80ACED9C; // type:func -func_80AEDAE0 = 0x80ACEFA0; // type:func -func_80AEDB30 = 0x80ACEFF4; // type:func -func_80AEDEF4 = 0x80ACF3B4; // type:func -func_80AEDFF4 = 0x80ACF4B8; // type:func -func_80AEE02C = 0x80ACF4F8; // type:func -func_80AEE050 = 0x80ACF520; // type:func -func_80AEE264 = 0x80ACF73C; // type:func -func_80AEE2F8 = 0x80ACF7D0; // type:func -func_80AEE394 = 0x80ACF86C; // type:func -func_80AEE488 = 0x80ACF960; // type:func -func_80AEE568 = 0x80ACFA40; // type:func -func_80AEE628 = 0x80ACFB04; // type:func -func_80AEE6D0 = 0x80ACFBA8; // type:func -func_80AEE7C4 = 0x80ACFC9C; // type:func -func_80AEEAC8 = 0x80ACFFBC; // type:func -func_80AEEB24 = 0x80AD0018; // type:func -func_80AEEBB4 = 0x80AD00A8; // type:func -func_80AEEBD4 = 0x80AD00C8; // type:func -func_80AEEC5C = 0x80AD0154; // type:func -func_80AEECF0 = 0x80AD01EC; // type:func -func_80AEED58 = 0x80AD0258; // type:func -func_80AEEDCC = 0x80AD02D0; // type:func -func_80AEEE34 = 0x80AD033C; // type:func -func_80AEEE9C = 0x80AD03A8; // type:func -func_80AEEF08 = 0x80AD0418; // type:func -func_80AEEF5C = 0x80AD0470; // type:func -func_80AEEF68 = 0x80AD0480; // type:func -func_80AEEFEC = 0x80AD0508; // type:func -func_80AEF080 = 0x80AD059C; // type:func -func_80AEF0BC = 0x80AD05DC; // type:func -func_80AEF170 = 0x80AD0694; // type:func -func_80AEF188 = 0x80AD06AC; // type:func -func_80AEF1F0 = 0x80AD0714; // type:func -func_80AEF29C = 0x80AD07C0; // type:func -func_80AEF2AC = 0x80AD07D4; // type:func -func_80AEF2D0 = 0x80AD07FC; // type:func -func_80AEF354 = 0x80AD0888; // type:func -func_80AEF3A8 = 0x80AD08E4; // type:func -func_80AEF40C = 0x80AD094C; // type:func -func_80AEF4A8 = 0x80AD09EC; // type:func -func_80AEF4E0 = 0x80AD0A24; // type:func -func_80AEF51C = 0x80AD0A64; // type:func -func_80AEF540 = 0x80AD0A8C; // type:func -func_80AEF5B8 = 0x80AD0B08; // type:func -func_80AEF624 = 0x80AD0B78; // type:func -func_80AEF728 = 0x80AD0C7C; // type:func -func_80AEF79C = 0x80AD0CF0; // type:func -func_80AEF820 = 0x80AD0D78; // type:func -func_80AEF890 = 0x80AD0DE8; // type:func -func_80AEF930 = 0x80AD0E74; // type:func -func_80AEF99C = 0x80AD0EE4; // type:func -func_80AEF9D8 = 0x80AD0F20; // type:func -func_80AEFA2C = 0x80AD0F64; // type:func -func_80AEFAAC = 0x80AD0FDC; // type:func -func_80AEFB04 = 0x80AD1024; // type:func -func_80AEFB68 = 0x80AD1080; // type:func -func_80AEFBC8 = 0x80AD10D8; // type:func -func_80AEFC24 = 0x80AD1138; // type:func -func_80AEFC54 = 0x80AD116C; // type:func -func_80AEFCE8 = 0x80AD1208; // type:func -func_80AEFD38 = 0x80AD1258; // type:func -func_80AEFDC0 = 0x80AD12E4; // type:func -func_80AEFE38 = 0x80AD1368; // type:func -func_80AEFE84 = 0x80AD13B4; // type:func -func_80AEFE9C = 0x80AD13CC; // type:func -func_80AEFECC = 0x80AD1400; // type:func -func_80AEFF40 = 0x80AD147C; // type:func -func_80AEFF94 = 0x80AD14D8; // type:func -EnRu1_Update = 0x80AD1574; // type:func -EnRu1_Init = 0x80AD15BC; // type:func -func_80AF0278 = 0x80AD16F8; // type:func -EnRu1_OverrideLimbDraw = 0x80AD1768; // type:func -EnRu1_PostLimbDraw = 0x80AD17D4; // type:func -EnRu1_DrawNothing = 0x80AD1860; // type:func -EnRu1_DrawOpa = 0x80AD1870; // type:func -EnRu1_DrawXlu = 0x80AD1A14; // type:func -EnRu1_Draw = 0x80AD1BB4; // type:func -func_80AF2550 = 0x80AD3710; // type:func -func_80AF259C = 0x80AD375C; // type:func -EnRu2_Destroy = 0x80AD37A0; // type:func -func_80AF2608 = 0x80AD37CC; // type:func -func_80AF2690 = 0x80AD3854; // type:func -func_80AF26A0 = 0x80AD3868; // type:func -func_80AF2744 = 0x80AD3878; // type:func -EnRu2_UpdateSkelAnime = 0x80AD38C0; // type:func -EnRu2_GetCue = 0x80AD38E4; // type:func -func_80AF27D0 = 0x80AD390C; // type:func -func_80AF281C = 0x80AD3958; // type:func -func_80AF2868 = 0x80AD39A4; // type:func -func_80AF28E8 = 0x80AD3A24; // type:func -func_80AF2978 = 0x80AD3AB4; // type:func -func_80AF2994 = 0x80AD3AD4; // type:func -func_80AF29DC = 0x80AD3B1C; // type:func -func_80AF2A38 = 0x80AD3B78; // type:func -func_80AF2AB4 = 0x80AD3BF4; // type:func -func_80AF2B44 = 0x80AD3C90; // type:func -func_80AF2B94 = 0x80AD3CE0; // type:func -func_80AF2BC0 = 0x80AD3D0C; // type:func -func_80AF2C54 = 0x80AD3DA0; // type:func -func_80AF2C68 = 0x80AD3DB4; // type:func -func_80AF2CB4 = 0x80AD3E00; // type:func -func_80AF2CD4 = 0x80AD3E20; // type:func -func_80AF2CF4 = 0x80AD3E40; // type:func -func_80AF2D2C = 0x80AD3E7C; // type:func -func_80AF2D6C = 0x80AD3EC4; // type:func -func_80AF2DAC = 0x80AD3F08; // type:func -func_80AF2DEC = 0x80AD3F50; // type:func -func_80AF2E1C = 0x80AD3F84; // type:func -func_80AF2E64 = 0x80AD3FC8; // type:func -func_80AF2E84 = 0x80AD3FE8; // type:func -func_80AF2F04 = 0x80AD4068; // type:func -func_80AF2F58 = 0x80AD40BC; // type:func -func_80AF30AC = 0x80AD4210; // type:func -func_80AF3144 = 0x80AD42AC; // type:func -func_80AF3174 = 0x80AD42CC; // type:func -func_80AF31C8 = 0x80AD4314; // type:func -func_80AF321C = 0x80AD435C; // type:func -func_80AF3394 = 0x80AD44A4; // type:func -func_80AF33E0 = 0x80AD44EC; // type:func -func_80AF346C = 0x80AD4578; // type:func -func_80AF34A4 = 0x80AD45B0; // type:func -func_80AF34F0 = 0x80AD45FC; // type:func -func_80AF3530 = 0x80AD463C; // type:func -func_80AF3564 = 0x80AD4670; // type:func -func_80AF3604 = 0x80AD46FC; // type:func -func_80AF3624 = 0x80AD471C; // type:func -func_80AF366C = 0x80AD4768; // type:func -func_80AF36AC = 0x80AD47B0; // type:func -func_80AF36EC = 0x80AD47F4; // type:func -func_80AF3718 = 0x80AD4824; // type:func -func_80AF3744 = 0x80AD4854; // type:func -func_80AF37AC = 0x80AD48BC; // type:func -func_80AF37CC = 0x80AD48DC; // type:func -func_80AF383C = 0x80AD4948; // type:func -func_80AF3878 = 0x80AD4984; // type:func -func_80AF38D0 = 0x80AD49E4; // type:func -func_80AF390C = 0x80AD4A20; // type:func -func_80AF39DC = 0x80AD4AF0; // type:func -func_80AF3ADC = 0x80AD4BDC; // type:func -func_80AF3B74 = 0x80AD4C74; // type:func -func_80AF3BC8 = 0x80AD4CC8; // type:func -func_80AF3C04 = 0x80AD4D0C; // type:func -func_80AF3C64 = 0x80AD4D74; // type:func -func_80AF3CB8 = 0x80AD4DD0; // type:func -func_80AF3D0C = 0x80AD4E2C; // type:func -func_80AF3D60 = 0x80AD4E88; // type:func -EnRu2_Update = 0x80AD4EEC; // type:func -EnRu2_Init = 0x80AD4F34; // type:func -func_80AF3F14 = 0x80AD502C; // type:func -func_80AF3F20 = 0x80AD503C; // type:func -EnRu2_Draw = 0x80AD5170; // type:func -func_80AF5560 = 0x80AD6490; // type:func -EnSa_GetTextId = 0x80AD6510; // type:func -EnSa_UpdateTalkState = 0x80AD6624; // type:func -func_80AF57D8 = 0x80AD6708; // type:func -func_80AF5894 = 0x80AD67C8; // type:func -func_80AF58B8 = 0x80AD67F0; // type:func -func_80AF594C = 0x80AD6884; // type:func -func_80AF59E0 = 0x80AD6918; // type:func -func_80AF5A74 = 0x80AD69AC; // type:func -func_80AF5B10 = 0x80AD6A48; // type:func -func_80AF5BA4 = 0x80AD6ADC; // type:func -func_80AF5C40 = 0x80AD6B78; // type:func -func_80AF5CD4 = 0x80AD6C0C; // type:func -func_80AF5CE4 = 0x80AD6C24; // type:func -EnSa_ChangeAnim = 0x80AD6CCC; // type:func -func_80AF5DFC = 0x80AD6D3C; // type:func -func_80AF5F34 = 0x80AD6E74; // type:func -func_80AF603C = 0x80AD6F7C; // type:func -func_80AF609C = 0x80AD6FDC; // type:func -func_80AF6130 = 0x80AD7078; // type:func -func_80AF6170 = 0x80AD70BC; // type:func -EnSa_Init = 0x80AD7100; // type:func -EnSa_Destroy = 0x80AD7370; // type:func -func_80AF6448 = 0x80AD739C; // type:func -func_80AF67D0 = 0x80AD7728; // type:func -func_80AF683C = 0x80AD779C; // type:func -func_80AF68E4 = 0x80AD7844; // type:func -func_80AF6B20 = 0x80AD7A84; // type:func -EnSa_Update = 0x80AD7B44; // type:func -EnSa_OverrideLimbDraw = 0x80AD7CD4; // type:func -EnSa_PostLimbDraw = 0x80AD7E7C; // type:func -EnSa_Draw = 0x80AD7ED8; // type:func -EnSb_Init = 0x80AD8700; // type:func -EnSb_Destroy = 0x80AD87E8; // type:func -EnSb_SpawnBubbles = 0x80AD8828; // type:func -EnSb_SetupWaitClosed = 0x80AD88D8; // type:func -EnSb_SetupOpen = 0x80AD8950; // type:func -EnSb_SetupWaitOpen = 0x80AD89CC; // type:func -EnSb_SetupLunge = 0x80AD8A40; // type:func -EnSb_SetupBounce = 0x80AD8AE8; // type:func -EnSb_SetupCooldown = 0x80AD8B60; // type:func -EnSb_WaitClosed = 0x80AD8C64; // type:func -EnSb_Open = 0x80AD8CE4; // type:func -EnSb_WaitOpen = 0x80AD8DAC; // type:func -EnSb_TurnAround = 0x80AD8E60; // type:func -EnSb_Lunge = 0x80AD8F4C; // type:func -EnSb_Bounce = 0x80AD8FF4; // type:func -EnSb_Cooldown = 0x80AD9128; // type:func -EnSb_IsVulnerable = 0x80AD9190; // type:func -EnSb_UpdateDamage = 0x80AD92D8; // type:func -EnSb_Update = 0x80AD95B4; // type:func -EnSb_PostLimbDraw = 0x80AD9734; // type:func -EnSb_Draw = 0x80AD9784; // type:func -EnSceneChange_SetupAction = 0x80AD9B40; // type:func -EnSceneChange_Init = 0x80AD9B4C; // type:func -EnSceneChange_Destroy = 0x80AD9B74; // type:func -EnSceneChange_DoNothing = 0x80AD9B84; // type:func -EnSceneChange_Update = 0x80AD9B94; // type:func -EnSceneChange_Draw = 0x80AD9BB8; // type:func -EnSda_Init = 0x80AD9C70; // type:func -EnSda_Destroy = 0x80AD9C80; // type:func -EnSda_Update = 0x80AD9C90; // type:func -EnSda_Draw = 0x80AD9CCC; // type:func -func_80AF8F60 = 0x80AD9D60; // type:func -func_80AF95C4 = 0x80ADA3C4; // type:func -func_80AF9C70 = 0x80ADAA40; // type:func -EnShopnuts_Init = 0x80ADB360; // type:func -EnShopnuts_Destroy = 0x80ADB49C; // type:func -EnShopnuts_SetupIdle = 0x80ADB4C8; // type:func -EnShopnuts_SetupLookAround = 0x80ADB530; // type:func -EnShopnuts_SetupThrowNut = 0x80ADB578; // type:func -EnShopnuts_SetupPeek = 0x80ADB5B8; // type:func -EnShopnuts_SetupBurrow = 0x80ADB620; // type:func -EnShopnuts_SetupSpawnSalesman = 0x80ADB670; // type:func -EnShopnuts_Idle = 0x80ADB6C8; // type:func -EnShopnuts_LookAround = 0x80ADB92C; // type:func -EnShopnuts_Peek = 0x80ADB9B0; // type:func -EnShopnuts_ThrowNut = 0x80ADBA74; // type:func -EnShopnuts_Burrow = 0x80ADBBB0; // type:func -EnShopnuts_SpawnSalesman = 0x80ADBC74; // type:func -EnShopnuts_ColliderCheck = 0x80ADBD10; // type:func -EnShopnuts_Update = 0x80ADBD70; // type:func -EnShopnuts_OverrideLimbDraw = 0x80ADBEB0; // type:func -EnShopnuts_PostLimbDraw = 0x80ADBEE8; // type:func -EnShopnuts_Draw = 0x80ADC088; // type:func -EnSi_Init = 0x80ADC270; // type:func -EnSi_Destroy = 0x80ADC300; // type:func -func_80AFB748 = 0x80ADC32C; // type:func -func_80AFB768 = 0x80ADC350; // type:func -func_80AFB89C = 0x80ADC484; // type:func -func_80AFB950 = 0x80ADC53C; // type:func -EnSi_Update = 0x80ADC5D0; // type:func -EnSi_Draw = 0x80ADC644; // type:func -EnSiofuki_Init = 0x80ADC770; // type:func -EnSiofuki_Destroy = 0x80ADC98C; // type:func -func_80AFBDC8 = 0x80ADC9C0; // type:func -func_80AFBE8C = 0x80ADCA80; // type:func -func_80AFC1D0 = 0x80ADCDCC; // type:func -func_80AFC218 = 0x80ADCE14; // type:func -func_80AFC34C = 0x80ADCF50; // type:func -func_80AFC3C8 = 0x80ADCFD4; // type:func -func_80AFC478 = 0x80ADD08C; // type:func -func_80AFC544 = 0x80ADD160; // type:func -EnSiofuki_Update = 0x80ADD198; // type:func -EnSiofuki_Draw = 0x80ADD1BC; // type:func -EnSkb_SetupAction = 0x80ADD520; // type:func -EnSkb_SpawnDebris = 0x80ADD52C; // type:func -EnSkb_Init = 0x80ADD6DC; // type:func -EnSkb_Destroy = 0x80ADD894; // type:func -EnSkb_DecideNextAction = 0x80ADD8EC; // type:func -EnSkb_SetupRiseFromGround = 0x80ADD988; // type:func -EnSkb_RiseFromGround = 0x80ADD9EC; // type:func -EnSkb_SetupDespawn = 0x80ADDAD8; // type:func -EnSkb_Despawn = 0x80ADDB80; // type:func -EnSkb_SetupWalkForward = 0x80ADDC34; // type:func -EnSkb_WalkForward = 0x80ADDCCC; // type:func -EnSkb_SetupAttack = 0x80ADDECC; // type:func -EnSkb_Attack = 0x80ADDF64; // type:func -EnSkb_SetupRecoil = 0x80ADE010; // type:func -EnSkb_Recoil = 0x80ADE09C; // type:func -EnSkb_SetupStunned = 0x80ADE0D8; // type:func -EnSkb_Stunned = 0x80ADE134; // type:func -EnSkb_SetupTakeDamage = 0x80ADE1DC; // type:func -EnSkb_TakeDamage = 0x80ADE264; // type:func -EnSkb_SetupDeath = 0x80ADE350; // type:func -EnSkb_Death = 0x80ADE41C; // type:func -EnSkb_CheckDamage = 0x80ADE508; // type:func -EnSkb_Update = 0x80ADE7B8; // type:func -EnSkb_OverrideLimbDraw = 0x80ADE8E0; // type:func -EnSkb_PostLimbDraw = 0x80ADEAB0; // type:func -EnSkb_Draw = 0x80ADEB58; // type:func -EnSkj_ChangeAnim = 0x80ADEE10; // type:func -EnSkj_SetupAction = 0x80ADEE98; // type:func -EnSkj_CalculateCenter = 0x80ADEEF0; // type:func -EnSkj_SetNaviId = 0x80ADEF88; // type:func -EnSkj_Init = 0x80ADF00C; // type:func -EnSkj_Destroy = 0x80ADF358; // type:func -EnSkj_RangeCheck = 0x80ADF384; // type:func -EnSkj_GetItemXzRange = 0x80ADF400; // type:func -EnSkj_GetItemYRange = 0x80ADF448; // type:func -EnSkj_ShootNeedle = 0x80ADF474; // type:func -EnSkj_SpawnBlood = 0x80ADF58C; // type:func -EnSkj_CollisionCheck = 0x80ADF6E4; // type:func -func_80AFEDF8 = 0x80ADF8A0; // type:func -EnSkj_Backflip = 0x80ADF92C; // type:func -EnSkj_Fade = 0x80ADF974; // type:func -EnSkj_SetupWaitToShootNeedle = 0x80ADFA04; // type:func -EnSkj_WaitToShootNeedle = 0x80ADFA40; // type:func -EnSkj_SetupResetFight = 0x80ADFAE0; // type:func -EnSkj_SariasSongKidIdle = 0x80ADFB24; // type:func -EnSkj_SetupDie = 0x80ADFC1C; // type:func -EnSkj_WaitForDeathAnim = 0x80ADFC50; // type:func -func_80AFF1F0 = 0x80ADFCA4; // type:func -EnSkj_PickNextFightAction = 0x80ADFCD8; // type:func -func_80AFF2A0 = 0x80ADFD58; // type:func -EnSkj_WaitForLandAnim = 0x80ADFD9C; // type:func -func_80AFF334 = 0x80ADFDF0; // type:func -EnSkj_ResetFight = 0x80ADFE3C; // type:func -EnSkj_SetupStand = 0x80ADFE8C; // type:func -EnSkj_Fight = 0x80ADFEE0; // type:func -EnSkj_SetupNeedleRecover = 0x80AE00AC; // type:func -EnSkj_NeedleRecover = 0x80AE00E0; // type:func -EnSkj_SetupSpawnDeathEffect = 0x80AE011C; // type:func -EnSkj_SpawnDeathEffect = 0x80AE0144; // type:func -EnSkj_SetupWaitInRange = 0x80AE025C; // type:func -EnSkj_WaitInRange = 0x80AE0294; // type:func -EnSkj_SetupWaitForSong = 0x80AE04A8; // type:func -EnSkj_WaitForSong = 0x80AE04CC; // type:func -EnSkj_SetupAfterSong = 0x80AE07A0; // type:func -EnSkj_AfterSong = 0x80AE07D4; // type:func -EnSkj_SetupTalk = 0x80AE0828; // type:func -EnSkj_SariaSongTalk = 0x80AE0848; // type:func -func_80AFFE24 = 0x80AE08EC; // type:func -func_80AFFE44 = 0x80AE090C; // type:func -EnSkj_SetupPostSariasSong = 0x80AE0984; // type:func -EnSkj_ChangeModeAfterSong = 0x80AE09A4; // type:func -EnSkj_SetupMaskTrade = 0x80AE0A0C; // type:func -EnSkj_StartMaskTrade = 0x80AE0A2C; // type:func -EnSkj_JumpFromStump = 0x80AE0A94; // type:func -EnSkj_WaitForLanding = 0x80AE0AF8; // type:func -EnSkj_SetupWaitForLandAnimFinish = 0x80AE0B48; // type:func -EnSkj_WaitForLandAnimFinish = 0x80AE0B7C; // type:func -EnSkj_SetupWalkToPlayer = 0x80AE0BD0; // type:func -EnSkj_WalkToPlayer = 0x80AE0C14; // type:func -EnSkj_SetupAskForMask = 0x80AE0CB0; // type:func -EnSkj_AskForMask = 0x80AE0CF8; // type:func -EnSkj_SetupTakeMask = 0x80AE0D90; // type:func -EnSkj_TakeMask = 0x80AE0DC8; // type:func -EnSkj_SetupWaitForMaskTextClear = 0x80AE0E60; // type:func -EnSkj_WaitForMaskTextClear = 0x80AE0E80; // type:func -EnSkj_SetupWrongSong = 0x80AE0EE8; // type:func -EnSkj_WrongSong = 0x80AE0F20; // type:func -EnSkj_SetupWaitForTextClear = 0x80AE0F74; // type:func -EnSkj_SariasSongWaitForTextClear = 0x80AE0F94; // type:func -EnSkj_OcarinaGameSetupWaitForPlayer = 0x80AE100C; // type:func -EnSkj_OcarinaGameWaitForPlayer = 0x80AE104C; // type:func -EnSkj_IsLeavingGame = 0x80AE1088; // type:func -EnSkj_SetupIdle = 0x80AE10D8; // type:func -EnSkj_Appear = 0x80AE110C; // type:func -EnSkj_OcarinaGameIdle = 0x80AE1134; // type:func -EnSkj_SetupPlayOcarinaGame = 0x80AE1180; // type:func -EnSkj_PlayOcarinaGame = 0x80AE11B4; // type:func -EnSkj_SetupLeaveOcarinaGame = 0x80AE1200; // type:func -EnSkj_LeaveOcarinaGame = 0x80AE1248; // type:func -EnSkj_Update = 0x80AE1290; // type:func -EnSkj_SariasSongShortStumpUpdate = 0x80AE1474; // type:func -EnSkj_TurnPlayer = 0x80AE149C; // type:func -EnSkj_SetupWaitForOcarina = 0x80AE14E8; // type:func -EnSkj_WaitForOcarina = 0x80AE15A4; // type:func -EnSkj_StartOcarinaMinigame = 0x80AE164C; // type:func -EnSkj_WaitForPlayback = 0x80AE16D8; // type:func -EnSkj_FailedMiniGame = 0x80AE1948; // type:func -EnSkj_WaitForNextRound = 0x80AE1988; // type:func -EnSkj_OfferNextRound = 0x80AE19D8; // type:func -EnSkj_WaitForOfferResponse = 0x80AE1A14; // type:func -EnSkj_WonOcarinaMiniGame = 0x80AE1ABC; // type:func -EnSkj_WaitToGiveReward = 0x80AE1AFC; // type:func -EnSkj_GiveOcarinaGameReward = 0x80AE1B84; // type:func -EnSkj_FinishOcarinaGameRound = 0x80AE1BF8; // type:func -EnSkj_CleanupOcarinaGame = 0x80AE1C94; // type:func -EnSkj_OcarinaMinigameShortStumpUpdate = 0x80AE1D10; // type:func -EnSkj_OverrideLimbDraw = 0x80AE1D94; // type:func -EnSkj_PostLimbDraw = 0x80AE1DB0; // type:func -EnSkj_TranslucentDL = 0x80AE1E80; // type:func -EnSkj_OpaqueDL = 0x80AE1ED8; // type:func -EnSkj_Draw = 0x80AE1F10; // type:func -EnSkjneedle_Init = 0x80AE2760; // type:func -EnSkjneedle_Destroy = 0x80AE27F8; // type:func -EnSkjNeedle_CollisionCheck = 0x80AE2824; // type:func -EnSkjneedle_Update = 0x80AE2854; // type:func -EnSkjneedle_Draw = 0x80AE2944; // type:func -EnSsh_SetupAction = 0x80AE2A70; // type:func -EnSsh_SpawnShockwave = 0x80AE2A7C; // type:func -EnSsh_CreateBlureEffect = 0x80AE2B04; // type:func -EnSsh_CheckCeilingPos = 0x80AE2C00; // type:func -EnSsh_AddBlureVertex = 0x80AE2C98; // type:func -EnSsh_AddBlureSpace = 0x80AE2DA0; // type:func -EnSsh_InitColliders = 0x80AE2DCC; // type:func -EnSsh_SetAnimation = 0x80AE2F0C; // type:func -EnSsh_SetWaitAnimation = 0x80AE3040; // type:func -EnSsh_SetReturnAnimation = 0x80AE3060; // type:func -EnSsh_SetLandAnimation = 0x80AE3094; // type:func -EnSsh_SetDropAnimation = 0x80AE30D8; // type:func -EnSsh_SetStunned = 0x80AE3128; // type:func -EnSsh_SetColliderScale = 0x80AE3154; // type:func -EnSsh_Damaged = 0x80AE32C8; // type:func -EnSsh_Turn = 0x80AE33A4; // type:func -EnSsh_Stunned = 0x80AE3478; // type:func -EnSsh_UpdateYaw = 0x80AE3518; // type:func -EnSsh_Bob = 0x80AE3554; // type:func -EnSsh_IsCloseToLink = 0x80AE35C0; // type:func -EnSsh_IsCloseToHome = 0x80AE36A8; // type:func -EnSsh_IsCloseToGround = 0x80AE36E0; // type:func -EnSsh_Sway = 0x80AE3720; // type:func -EnSsh_CheckBodyStickHit = 0x80AE3864; // type:func -EnSsh_CheckHitPlayer = 0x80AE38D8; // type:func -EnSsh_CheckHitFront = 0x80AE39E0; // type:func -EnSsh_CheckHitBack = 0x80AE3A3C; // type:func -EnSsh_CollisionCheck = 0x80AE3B14; // type:func -EnSsh_SetBodyCylinderAC = 0x80AE3BC8; // type:func -EnSsh_SetLegsCylinderAC = 0x80AE3C0C; // type:func -EnSsh_SetCylinderOC = 0x80AE3CC4; // type:func -EnSsh_SetColliders = 0x80AE3E9C; // type:func -EnSsh_Init = 0x80AE3F64; // type:func -EnSsh_Destroy = 0x80AE40F8; // type:func -EnSsh_Wait = 0x80AE4178; // type:func -EnSsh_Talk = 0x80AE41D4; // type:func -EnSsh_Idle = 0x80AE4220; // type:func -EnSsh_Land = 0x80AE44B8; // type:func -EnSsh_Drop = 0x80AE45A0; // type:func -EnSsh_Return = 0x80AE46A0; // type:func -EnSsh_UpdateColliderScale = 0x80AE4774; // type:func -EnSsh_Start = 0x80AE481C; // type:func -EnSsh_Update = 0x80AE48A4; // type:func -EnSsh_OverrideLimbDraw = 0x80AE49C4; // type:func -EnSsh_PostLimbDraw = 0x80AE4AB4; // type:func -EnSsh_Draw = 0x80AE4AF0; // type:func -EnSt_SetupAction = 0x80AE5060; // type:func -EnSt_SpawnDust = 0x80AE506C; // type:func -EnSt_SpawnBlastEffect = 0x80AE528C; // type:func -EnSt_SpawnDeadEffect = 0x80AE5314; // type:func -EnSt_CreateBlureEffect = 0x80AE5450; // type:func -EnSt_CheckCeilingPos = 0x80AE554C; // type:func -EnSt_AddBlurVertex = 0x80AE561C; // type:func -EnSt_AddBlurSpace = 0x80AE5724; // type:func -EnSt_SetWaitingAnimation = 0x80AE5750; // type:func -EnSt_SetReturnToCeilingAnimation = 0x80AE5780; // type:func -EnSt_SetLandAnimation = 0x80AE57C0; // type:func -EnSt_SetDropAnimAndVel = 0x80AE581C; // type:func -EnSt_InitColliders = 0x80AE587C; // type:func -EnSt_CheckBodyStickHit = 0x80AE59BC; // type:func -EnSt_SetBodyCylinderAC = 0x80AE5A30; // type:func -EnSt_SetLegsCylinderAC = 0x80AE5A74; // type:func -EnSt_SetCylinderOC = 0x80AE5B2C; // type:func -EnSt_UpdateCylinders = 0x80AE5D04; // type:func -EnSt_CheckHitPlayer = 0x80AE5DC8; // type:func -EnSt_CheckHitFrontside = 0x80AE5EB4; // type:func -EnSt_CheckHitBackside = 0x80AE5EF4; // type:func -EnSt_CheckColliders = 0x80AE60E4; // type:func -EnSt_SetColliderScale = 0x80AE616C; // type:func -EnSt_SetTeethColor = 0x80AE62D8; // type:func -EnSt_DecrStunTimer = 0x80AE6408; // type:func -EnSt_UpdateYaw = 0x80AE6428; // type:func -EnSt_IsDoneBouncing = 0x80AE66C8; // type:func -EnSt_Bob = 0x80AE6790; // type:func -EnSt_IsCloseToPlayer = 0x80AE67FC; // type:func -EnSt_IsCloseToInitalPos = 0x80AE68A4; // type:func -EnSt_IsCloseToGround = 0x80AE68DC; // type:func -EnSt_Sway = 0x80AE691C; // type:func -EnSt_Init = 0x80AE6AEC; // type:func -EnSt_Destroy = 0x80AE6C10; // type:func -EnSt_WaitOnCeiling = 0x80AE6C90; // type:func -EnSt_WaitOnGround = 0x80AE6CEC; // type:func -EnSt_LandOnGround = 0x80AE6DE4; // type:func -EnSt_MoveToGround = 0x80AE6EE8; // type:func -EnSt_ReturnToCeiling = 0x80AE6FE0; // type:func -EnSt_BounceAround = 0x80AE70B4; // type:func -EnSt_FinishBouncing = 0x80AE7188; // type:func -EnSt_Die = 0x80AE72FC; // type:func -EnSt_StartOnCeilingOrGround = 0x80AE7374; // type:func -EnSt_Update = 0x80AE73F8; // type:func -EnSt_OverrideLimbDraw = 0x80AE7578; // type:func -EnSt_PostLimbDraw = 0x80AE7658; // type:func -EnSt_Draw = 0x80AE7694; // type:func -EnSth_SetupAction = 0x80AE7CD0; // type:func -EnSth_Init = 0x80AE7CDC; // type:func -EnSth_SetupShapeColliderUpdate2AndDraw = 0x80AE7DD8; // type:func -EnSth_SetupAfterObjectLoaded = 0x80AE7E5C; // type:func -EnSth_Destroy = 0x80AE7F80; // type:func -EnSth_WaitForObject = 0x80AE7FAC; // type:func -EnSth_FacePlayer = 0x80AE8000; // type:func -EnSth_LookAtPlayer = 0x80AE8118; // type:func -EnSth_RewardObtainedTalk = 0x80AE822C; // type:func -EnSth_ParentRewardObtainedWait = 0x80AE82A8; // type:func -EnSth_GivePlayerItem = 0x80AE8334; // type:func -EnSth_GiveReward = 0x80AE83D0; // type:func -EnSth_RewardUnobtainedTalk = 0x80AE8450; // type:func -EnSth_RewardUnobtainedWait = 0x80AE84CC; // type:func -EnSth_ChildRewardObtainedWait = 0x80AE8570; // type:func -EnSth_Update = 0x80AE861C; // type:func -EnSth_Update2 = 0x80AE8640; // type:func -EnSth_OverrideLimbDraw = 0x80AE8744; // type:func -EnSth_PostLimbDraw = 0x80AE88A0; // type:func -EnSth_AllocColorDList = 0x80AE8918; // type:func -EnSth_Draw = 0x80AE8984; // type:func -EnStream_SetupAction = 0x80AEBD90; // type:func -EnStream_Init = 0x80AEBD9C; // type:func -EnStream_Destroy = 0x80AEBE04; // type:func -func_80B0B81C = 0x80AEBE14; // type:func -EnStream_SuckPlayer = 0x80AEBF34; // type:func -EnStream_WaitForPlayer = 0x80AEC0CC; // type:func -EnStream_Update = 0x80AEC120; // type:func -EnStream_Draw = 0x80AEC154; // type:func -EnSw_CrossProduct = 0x80AEC320; // type:func -func_80B0BE20 = 0x80AEC394; // type:func -func_80B0C020 = 0x80AEC594; // type:func -func_80B0C0CC = 0x80AEC644; // type:func -EnSw_Init = 0x80AECA78; // type:func -EnSw_Destroy = 0x80AECF40; // type:func -func_80B0C9F0 = 0x80AECF6C; // type:func -func_80B0CBE8 = 0x80AED168; // type:func -func_80B0CCF4 = 0x80AED274; // type:func -func_80B0CEA8 = 0x80AED428; // type:func -func_80B0CF44 = 0x80AED4C8; // type:func -func_80B0D14C = 0x80AED6D0; // type:func -func_80B0D364 = 0x80AED8E8; // type:func -func_80B0D3AC = 0x80AED930; // type:func -func_80B0D590 = 0x80AEDB18; // type:func -func_80B0D878 = 0x80AEDE00; // type:func -func_80B0DB00 = 0x80AEE088; // type:func -func_80B0DC7C = 0x80AEE208; // type:func -func_80B0DE34 = 0x80AEE3C4; // type:func -func_80B0DEA8 = 0x80AEE440; // type:func -func_80B0DFFC = 0x80AEE594; // type:func -func_80B0E314 = 0x80AEE8AC; // type:func -func_80B0E430 = 0x80AEE9C4; // type:func -func_80B0E5E0 = 0x80AEEB74; // type:func -func_80B0E728 = 0x80AEECC0; // type:func -func_80B0E90C = 0x80AEEEA4; // type:func -func_80B0E9BC = 0x80AEEF54; // type:func -EnSw_Update = 0x80AEF004; // type:func -EnSw_OverrideLimbDraw = 0x80AEF060; // type:func -EnSw_PostLimbDraw = 0x80AEF304; // type:func -func_80B0EDB8 = 0x80AEF31C; // type:func -func_80B0EEA4 = 0x80AEF3D4; // type:func -EnSw_Draw = 0x80AEF400; // type:func -EnSyatekiItm_Init = 0x80AEFB10; // type:func -EnSyatekiItm_Destroy = 0x80AEFC74; // type:func -EnSyatekiItm_Idle = 0x80AEFC84; // type:func -EnSyatekiItm_StartRound = 0x80AEFD94; // type:func -EnSyatekiItm_SpawnTargets = 0x80AEFF10; // type:func -EnSyatekiItm_CheckTargets = 0x80AF0390; // type:func -EnSyatekiItm_CleanupGame = 0x80AF0434; // type:func -EnSyatekiItm_EndGame = 0x80AF04BC; // type:func -EnSyatekiItm_Update = 0x80AF0508; // type:func -EnSyatekiMan_Init = 0x80AF08B0; // type:func -EnSyatekiMan_Destroy = 0x80AF0964; // type:func -EnSyatekiMan_Start = 0x80AF0974; // type:func -EnSyatekiMan_SetupIdle = 0x80AF0A08; // type:func -EnSyatekiMan_Idle = 0x80AF0A60; // type:func -EnSyatekiMan_Talk = 0x80AF0ABC; // type:func -EnSyatekiMan_StopTalk = 0x80AF0C64; // type:func -EnSyatekiMan_StartGame = 0x80AF0D0C; // type:func -EnSyatekiMan_WaitForGame = 0x80AF0DCC; // type:func -EnSyatekiMan_EndGame = 0x80AF0EE8; // type:func -EnSyatekiMan_GivePrize = 0x80AF1138; // type:func -EnSyatekiMan_FinishPrize = 0x80AF11A8; // type:func -EnSyatekiMan_RestartGame = 0x80AF126C; // type:func -EnSyatekiMan_BlinkWait = 0x80AF12D4; // type:func -EnSyatekiMan_Blink = 0x80AF1308; // type:func -EnSyatekiMan_Update = 0x80AF13A8; // type:func -EnSyatekiMan_OverrideLimbDraw = 0x80AF1448; // type:func -EnSyatekiMan_Draw = 0x80AF14D8; // type:func -EnSyatekiNiw_Init = 0x80AF1670; // type:func -EnSyatekiNiw_Destroy = 0x80AF17B8; // type:func -EnSyatekiNiw_UpdateRotations = 0x80AF17E4; // type:func -EnSyatekiNiw_SetupDefault = 0x80AF1B40; // type:func -EnSyatekiNiw_Default = 0x80AF1BCC; // type:func -EnSyatekiNiw_SetupArchery = 0x80AF20FC; // type:func -EnSyatekiNiw_Archery = 0x80AF21B4; // type:func -EnSyatekiNiw_ExitArchery = 0x80AF2630; // type:func -EnSyatekiNiw_SetupRemove = 0x80AF2650; // type:func -EnSyatekiNiw_Remove = 0x80AF2748; // type:func -EnSyatekiNiw_CheckHit = 0x80AF2904; // type:func -EnSyatekiNiw_Update = 0x80AF29D4; // type:func -SyatekiNiw_OverrideLimbDraw = 0x80AF2D44; // type:func -EnSyatekiNiw_Draw = 0x80AF2E74; // type:func -EnSyatekiNiw_SpawnFeather = 0x80AF2F20; // type:func -EnSyatekiNiw_UpdateEffects = 0x80AF3010; // type:func -EnSyatekiNiw_DrawEffects = 0x80AF31CC; // type:func -EnTa_SetupAction = 0x80AF3700; // type:func -EnTa_SetTextForTalkInLonLonHouse = 0x80AF3710; // type:func -EnTa_Init = 0x80AF37F0; // type:func -EnTa_DecreaseShadowSize = 0x80AF3E74; // type:func -EnTa_Destroy = 0x80AF3EA8; // type:func -EnTa_RequestTalk = 0x80AF3F20; // type:func -EnTa_SleepTalkInKakariko = 0x80AF3FC8; // type:func -EnTa_SleepTalkInLonLonHouse = 0x80AF4008; // type:func -EnTa_SetupAwake = 0x80AF4048; // type:func -EnTa_TalkWakingUp2 = 0x80AF40C4; // type:func -EnTa_TalkWakingUp1 = 0x80AF4110; // type:func -EnTa_WakeUp = 0x80AF41AC; // type:func -EnTa_SleepTalkInCastle = 0x80AF4238; // type:func -EnTa_IdleAsleepInCastle = 0x80AF4278; // type:func -EnTa_IdleAsleepInLonLonHouse = 0x80AF4340; // type:func -EnTa_IdleAsleepInKakariko = 0x80AF43A4; // type:func -EnTa_RunWithAccelerationAndSfx = 0x80AF446C; // type:func -EnTa_RunAwayRunOutOfGate = 0x80AF44EC; // type:func -EnTa_RunAwayTurnTowardsGate = 0x80AF4560; // type:func -EnTa_RunAwayRunWest = 0x80AF45C0; // type:func -EnTa_RunAwayTurnWest = 0x80AF4648; // type:func -EnTa_RunAwayRunSouth = 0x80AF46A8; // type:func -EnTa_RunAwayStart = 0x80AF4748; // type:func -EnTa_TalkAwakeInCastle = 0x80AF47C0; // type:func -EnTa_IdleAwakeInCastle = 0x80AF486C; // type:func -EnTa_TalkAwakeInKakariko = 0x80AF48B8; // type:func -EnTa_IdleAwakeInKakariko = 0x80AF4904; // type:func -EnTa_TalkAtRanch = 0x80AF49AC; // type:func -EnTa_IdleAtRanch = 0x80AF49F8; // type:func -EnTa_CheckCanBuyMilk = 0x80AF4A3C; // type:func -EnTa_CreateFloorCamera = 0x80AF4A8C; // type:func -EnTa_RemoveFloorCamera = 0x80AF4B40; // type:func -EnTa_SetupActionWithSleepAnimation = 0x80AF4B84; // type:func -EnTa_SetupActionWithWakeUpAnimation = 0x80AF4C14; // type:func -EnTa_TalkNotEnoughRupees = 0x80AF4CA0; // type:func -EnTa_IsPlayerHoldingSuperCucco = 0x80AF4D18; // type:func -EnTa_TalkFoundSuperCucco = 0x80AF4D6C; // type:func -EnTa_IdleFoundSuperCucco = 0x80AF4ECC; // type:func -EnTa_GetSuperCuccosCount = 0x80AF4F3C; // type:func -EnTa_AnimateHandsUpDown = 0x80AF4F78; // type:func -EnTa_TransitionToPostCuccoGame = 0x80AF5044; // type:func -EnTa_TalkCuccoGameEnd = 0x80AF5094; // type:func -EnTa_RunCuccoGame = 0x80AF5170; // type:func -EnTa_ThrowSuperCuccos = 0x80AF54D0; // type:func -EnTa_StartingCuccoGame3 = 0x80AF5748; // type:func -EnTa_StartingCuccoGame2 = 0x80AF586C; // type:func -EnTa_StartingCuccoGame1 = 0x80AF593C; // type:func -EnTa_StartCuccoGame = 0x80AF5A04; // type:func -EnTa_TalkGeneralInLonLonHouse = 0x80AF5A9C; // type:func -EnTa_GiveItemInLonLonHouse = 0x80AF5AF8; // type:func -EnTa_TalkAfterCuccoGameFirstWon = 0x80AF5BCC; // type:func -EnTa_WaitBuyMilkOrPlayCuccoGameResponse = 0x80AF5C64; // type:func -EnTa_WaitForPlayCuccoGameResponse = 0x80AF5E40; // type:func -EnTa_WaitForMarryMalonResponse = 0x80AF5F68; // type:func -EnTa_ContinueTalkInLonLonHouse = 0x80AF5FE8; // type:func -EnTa_TalkAfterCuccoGameWon = 0x80AF60B4; // type:func -EnTa_IdleSittingInLonLonHouse = 0x80AF618C; // type:func -EnTa_IdleAfterCuccoGameFinished = 0x80AF628C; // type:func -EnTa_BlinkWaitUntilNext = 0x80AF6350; // type:func -EnTa_BlinkAdvanceState = 0x80AF6384; // type:func -EnTa_AnimRepeatCurrent = 0x80AF6444; // type:func -EnTa_AnimSleeping = 0x80AF6484; // type:func -EnTa_AnimSitSleeping = 0x80AF64D8; // type:func -EnTa_AnimRunToEnd = 0x80AF65B8; // type:func -EnTa_Update = 0x80AF6610; // type:func -EnTa_OverrideLimbDraw = 0x80AF67A0; // type:func -EnTa_PostLimbDraw = 0x80AF6924; // type:func -EnTa_Draw = 0x80AF6964; // type:func -EnTakaraMan_Destroy = 0x80AF70C0; // type:func -EnTakaraMan_Init = 0x80AF70D0; // type:func -func_80B176E0 = 0x80AF721C; // type:func -func_80B1778C = 0x80AF72C8; // type:func -func_80B17934 = 0x80AF7470; // type:func -func_80B17A6C = 0x80AF75A8; // type:func -func_80B17AC4 = 0x80AF7604; // type:func -func_80B17B14 = 0x80AF7658; // type:func -EnTakaraMan_Update = 0x80AF76BC; // type:func -EnTakaraMan_OverrideLimbDraw = 0x80AF7794; // type:func -EnTakaraMan_Draw = 0x80AF77FC; // type:func -EnTana_Init = 0x80AF7980; // type:func -EnTana_Destroy = 0x80AF79D0; // type:func -EnTana_Update = 0x80AF79E0; // type:func -EnTana_DrawWoodenShelves = 0x80AF79F0; // type:func -EnTana_DrawStoneShelves = 0x80AF7A88; // type:func -EnTg_GetTextId = 0x80AF7C30; // type:func -EnTg_UpdateTalkState = 0x80AF7CCC; // type:func -EnTg_Init = 0x80AF7D88; // type:func -EnTg_Destroy = 0x80AF7E5C; // type:func -EnTg_SpinIfNotTalking = 0x80AF7E9C; // type:func -EnTg_Update = 0x80AF7EC0; // type:func -EnTg_OverrideLimbDraw = 0x80AF7FE0; // type:func -EnTg_PostLimbDraw = 0x80AF7FFC; // type:func -EnTg_SetColor = 0x80AF8058; // type:func -EnTg_Draw = 0x80AF80C4; // type:func -EnTite_SetupAction = 0x80AF8310; // type:func -EnTite_Init = 0x80AF831C; // type:func -EnTite_Destroy = 0x80AF8474; // type:func -EnTite_SetupIdle = 0x80AF84BC; // type:func -EnTite_Idle = 0x80AF8524; // type:func -EnTite_SetupAttack = 0x80AF8668; // type:func -EnTite_Attack = 0x80AF86DC; // type:func -EnTite_SetupTurnTowardPlayer = 0x80AF8D84; // type:func -EnTite_TurnTowardPlayer = 0x80AF8E20; // type:func -EnTite_SetupMoveTowardPlayer = 0x80AF90BC; // type:func -EnTite_MoveTowardPlayer = 0x80AF9178; // type:func -EnTite_SetupRecoil = 0x80AF9688; // type:func -EnTite_Recoil = 0x80AF96F4; // type:func -EnTite_SetupStunned = 0x80AF9A4C; // type:func -EnTite_Stunned = 0x80AF9B00; // type:func -EnTite_SetupDeathCry = 0x80AF9E9C; // type:func -EnTite_DeathCry = 0x80AF9ED0; // type:func -EnTite_FallApart = 0x80AF9F44; // type:func -EnTite_SetupFlipOnBack = 0x80AF9FD0; // type:func -EnTite_FlipOnBack = 0x80AFA0EC; // type:func -EnTite_SetupFlipUpright = 0x80AFA2A8; // type:func -EnTite_FlipUpright = 0x80AFA2F8; // type:func -EnTite_CheckDamage = 0x80AFA420; // type:func -EnTite_Update = 0x80AFA5F8; // type:func -EnTite_PostLimbDraw = 0x80AFA9E4; // type:func -EnTite_Draw = 0x80AFAAD4; // type:func -EnTkEff_Create = 0x80AFB0B0; // type:func -EnTkEff_Update = 0x80AFB154; // type:func -EnTkEff_Draw = 0x80AFB260; // type:func -EnTkEff_CreateDflt = 0x80AFB558; // type:func -EnTk_RestAnim = 0x80AFB610; // type:func -EnTk_WalkAnim = 0x80AFB68C; // type:func -EnTk_DigAnim = 0x80AFB700; // type:func -EnTk_UpdateEyes = 0x80AFB780; // type:func -EnTk_CheckFacingPlayer = 0x80AFB844; // type:func -EnTk_CheckNextSpot = 0x80AFB8C8; // type:func -EnTk_CheckCurrentSpot = 0x80AFB9B0; // type:func -EnTk_Step = 0x80AFBA28; // type:func -EnTk_Orient = 0x80AFBB50; // type:func -EnTk_GetTextId = 0x80AFBCC0; // type:func -EnTk_UpdateTalkState = 0x80AFBD14; // type:func -EnTk_ChooseReward = 0x80AFBEB0; // type:func -EnTk_DigEff = 0x80AFC06C; // type:func -EnTk_Init = 0x80AFC1DC; // type:func -EnTk_Destroy = 0x80AFC358; // type:func -EnTk_Rest = 0x80AFC384; // type:func -EnTk_Walk = 0x80AFC5AC; // type:func -EnTk_Dig = 0x80AFC67C; // type:func -EnTk_Update = 0x80AFC8E0; // type:func -func_80B1D200 = 0x80AFC98C; // type:func -EnTk_OverrideLimbDraw = 0x80AFC9B8; // type:func -EnTk_PostLimbDraw = 0x80AFCA24; // type:func -EnTk_Draw = 0x80AFCAD8; // type:func -EnTorch_Init = 0x80AFCEE0; // type:func -EnTorch2_Init = 0x80AFCFD0; // type:func -EnTorch2_Destroy = 0x80AFD178; // type:func -EnTorch2_GetAttackItem = 0x80AFD1E8; // type:func -EnTorch2_SwingSword = 0x80AFD230; // type:func -EnTorch2_Backflip = 0x80AFD3C8; // type:func -EnTorch2_Update = 0x80AFD420; // type:func -EnTorch2_OverrideLimbDraw = 0x80AFEE08; // type:func -EnTorch2_PostLimbDraw = 0x80AFEE34; // type:func -EnTorch2_Draw = 0x80AFEE58; // type:func -EnToryo_Init = 0x80AFF770; // type:func -EnToryo_Destroy = 0x80AFF9B4; // type:func -EnToryo_TalkRespond = 0x80AFF9E0; // type:func -EnToryo_DoneTalking = 0x80AFFBD4; // type:func -EnToryo_ReactToExchangeItem = 0x80AFFC40; // type:func -EnToryo_GetTextId = 0x80AFFCAC; // type:func -EnToryo_HandleTalking = 0x80AFFD78; // type:func -EnToryo_Idle = 0x80AFFF28; // type:func -EnToryo_Update = 0x80AFFF8C; // type:func -EnToryo_Draw = 0x80B000C4; // type:func -EnToryo_OverrideLimbDraw = 0x80B00124; // type:func -EnToryo_PostLimbDraw = 0x80B001B4; // type:func -EnTp_SetupAction = 0x80B00400; // type:func -EnTp_Init = 0x80B0040C; // type:func -EnTp_Destroy = 0x80B00684; // type:func -EnTp_Tail_SetupFollowHead = 0x80B006B0; // type:func -EnTp_Tail_FollowHead = 0x80B006DC; // type:func -EnTp_Head_SetupApproachPlayer = 0x80B008B8; // type:func -EnTp_Head_ApproachPlayer = 0x80B008EC; // type:func -EnTp_SetupDie = 0x80B00A88; // type:func -EnTp_Die = 0x80B00B00; // type:func -EnTp_Fragment_SetupFade = 0x80B00E30; // type:func -EnTp_Fragment_Fade = 0x80B00F34; // type:func -EnTp_Head_SetupTakeOff = 0x80B00F80; // type:func -EnTp_Head_TakeOff = 0x80B00FDC; // type:func -EnTp_Head_SetupWait = 0x80B011C4; // type:func -EnTp_Head_Wait = 0x80B01210; // type:func -EnTp_Head_SetupBurrowReturnHome = 0x80B0151C; // type:func -EnTp_Head_BurrowReturnHome = 0x80B0154C; // type:func -EnTp_UpdateDamage = 0x80B0181C; // type:func -EnTp_Update = 0x80B01A74; // type:func -EnTp_Draw = 0x80B01DE0; // type:func -EnTr_SetupAction = 0x80B02270; // type:func -EnTr_Init = 0x80B0227C; // type:func -EnTr_Destroy = 0x80B023CC; // type:func -EnTr_CrySpellcast = 0x80B023DC; // type:func -EnTr_DoNothing = 0x80B0248C; // type:func -EnTr_ChooseAction2 = 0x80B0249C; // type:func -EnTr_FlyKidnapCutscene = 0x80B0264C; // type:func -func_80B23254 = 0x80B027C8; // type:func -EnTr_ShrinkVanish = 0x80B02A48; // type:func -EnTr_Reappear = 0x80B02C04; // type:func -EnTr_WaitToReappear = 0x80B02D9C; // type:func -EnTr_TakeOff = 0x80B02E5C; // type:func -EnTr_TurnLookOverShoulder = 0x80B02F24; // type:func -EnTr_ChooseAction1 = 0x80B03004; // type:func -EnTr_Update = 0x80B03138; // type:func -EnTr_OverrideLimbDraw = 0x80B032F0; // type:func -EnTr_Draw = 0x80B03420; // type:func -func_80B23FDC = 0x80B0352C; // type:func -func_80B24038 = 0x80B0358C; // type:func -EnTr_SetRotFromCue = 0x80B03788; // type:func -EnTr_SetStartPosRotFromCue = 0x80B03810; // type:func -EnTrap_Init = 0x80B03B70; // type:func -EnTrap_Destroy = 0x80B03F2C; // type:func -EnTrap_Update = 0x80B03F58; // type:func -EnTrap_Draw = 0x80B04CEC; // type:func -EnTuboTrap_Init = 0x80B04E10; // type:func -EnTuboTrap_Destroy = 0x80B04E94; // type:func -EnTuboTrap_DropCollectible = 0x80B04EC0; // type:func -EnTuboTrap_SpawnEffectsOnLand = 0x80B04F20; // type:func -EnTuboTrap_SpawnEffectsInWater = 0x80B05194; // type:func -EnTuboTrap_HandleImpact = 0x80B05414; // type:func -EnTuboTrap_WaitForProximity = 0x80B0563C; // type:func -EnTuboTrap_Levitate = 0x80B05748; // type:func -EnTuboTrap_Fly = 0x80B057D4; // type:func -EnTuboTrap_Update = 0x80B058A4; // type:func -EnTuboTrap_Draw = 0x80B05964; // type:func -EnVali_Init = 0x80B05AB0; // type:func -EnVali_Destroy = 0x80B05C2C; // type:func -EnVali_SetupLurk = 0x80B05C7C; // type:func -EnVali_SetupDropAppear = 0x80B05CCC; // type:func -EnVali_SetupFloatIdle = 0x80B05D04; // type:func -EnVali_SetupAttacked = 0x80B05F1C; // type:func -EnVali_SetupRetaliate = 0x80B05F54; // type:func -EnVali_SetupMoveArmsDown = 0x80B05FC4; // type:func -EnVali_SetupBurnt = 0x80B06004; // type:func -EnVali_SetupDivideAndDie = 0x80B0605C; // type:func -EnVali_SetupStunned = 0x80B06160; // type:func -EnVali_SetupFrozen = 0x80B061EC; // type:func -EnVali_SetupReturnToLurk = 0x80B0624C; // type:func -EnVali_DischargeLightning = 0x80B062A8; // type:func -EnVali_Lurk = 0x80B064A4; // type:func -EnVali_DropAppear = 0x80B064E4; // type:func -EnVali_FloatIdle = 0x80B06578; // type:func -EnVali_Attacked = 0x80B06724; // type:func -EnVali_Retaliate = 0x80B067DC; // type:func -EnVali_MoveArmsDown = 0x80B06838; // type:func -EnVali_Burnt = 0x80B06874; // type:func -EnVali_DivideAndDie = 0x80B068B0; // type:func -EnVali_Stunned = 0x80B06A64; // type:func -EnVali_Frozen = 0x80B06B20; // type:func -EnVali_ReturnToLurk = 0x80B06CB0; // type:func -EnVali_UpdateDamage = 0x80B06D20; // type:func -EnVali_Update = 0x80B06ED8; // type:func -EnVali_PulseOutside = 0x80B07034; // type:func -EnVali_PulseInsides = 0x80B07250; // type:func -EnVali_SetArmLength = 0x80B0746C; // type:func -EnVali_OverrideLimbDraw = 0x80B0760C; // type:func -EnVali_PostLimbDraw = 0x80B0769C; // type:func -EnVali_DrawBody = 0x80B07760; // type:func -EnVali_Draw = 0x80B07AC8; // type:func -EnVase_Init = 0x80B08170; // type:func -EnVase_Destroy = 0x80B081D4; // type:func -EnVase_Draw = 0x80B081E4; // type:func -EnVbBall_Init = 0x80B08270; // type:func -EnVbBall_Destroy = 0x80B083F0; // type:func -EnVbBall_SpawnDebris = 0x80B0842C; // type:func -EnVbBall_SpawnDust = 0x80B08504; // type:func -EnVbBall_UpdateBones = 0x80B085A4; // type:func -EnVbBall_Update = 0x80B08888; // type:func -EnVbBall_Draw = 0x80B09054; // type:func -EnViewer_SetupAction = 0x80B09420; // type:func -EnViewer_Init = 0x80B0942C; // type:func -EnViewer_Destroy = 0x80B09500; // type:func -EnViewer_InitAnimGanondorfOrZelda = 0x80B0952C; // type:func -EnViewer_InitAnimImpa = 0x80B09678; // type:func -EnViewer_InitAnimHorse = 0x80B09708; // type:func -EnViewer_InitImpl = 0x80B097A0; // type:func -EnViewer_UpdateImpl = 0x80B0995C; // type:func -EnViewer_Update = 0x80B0A4B4; // type:func -EnViewer_Ganondorf3OverrideLimbDraw = 0x80B0A508; // type:func -EnViewer_Ganondorf9PostLimbDraw = 0x80B0A578; // type:func -EnViewer_GanondorfPostLimbDrawUpdateCapeVec = 0x80B0A640; // type:func -EnViewer_DrawGanondorf = 0x80B0A680; // type:func -EnViewer_DrawHorse = 0x80B0AAAC; // type:func -EnViewer_ZeldaOverrideLimbDraw = 0x80B0AAD8; // type:func -EnViewer_ZeldaPostLimbDraw = 0x80B0AB58; // type:func -EnViewer_DrawZelda = 0x80B0ABA0; // type:func -EnViewer_ImpaOverrideLimbDraw = 0x80B0B244; // type:func -EnViewer_DrawImpa = 0x80B0B26C; // type:func -EnViewer_Draw = 0x80B0B380; // type:func -EnViewer_UpdatePosition = 0x80B0B470; // type:func -EnViewer_InitFireEffect = 0x80B0B840; // type:func -EnViewer_DrawFireEffects = 0x80B0B988; // type:func -EnViewer_UpdateGanondorfCape = 0x80B0BCCC; // type:func -EnVm_SetupAction = 0x80B0C2E0; // type:func -EnVm_Init = 0x80B0C2EC; // type:func -EnVm_Destroy = 0x80B0C45C; // type:func -EnVm_SetupWait = 0x80B0C488; // type:func -EnVm_Wait = 0x80B0C514; // type:func -EnVm_SetupAttack = 0x80B0C868; // type:func -EnVm_Attack = 0x80B0C90C; // type:func -EnVm_SetupStun = 0x80B0CB5C; // type:func -EnVm_Stun = 0x80B0CC04; // type:func -EnVm_SetupDie = 0x80B0CD10; // type:func -EnVm_Die = 0x80B0CE18; // type:func -EnVm_CheckHealth = 0x80B0CECC; // type:func -EnVm_Update = 0x80B0CFC8; // type:func -EnVm_OverrideLimbDraw = 0x80B0D15C; // type:func -EnVm_PostLimbDraw = 0x80B0D1C4; // type:func -EnVm_Draw = 0x80B0D49C; // type:func -EnWallTubo_Init = 0x80B0DBA0; // type:func -EnWallTubo_Destroy = 0x80B0DBD0; // type:func -EnWallTubo_FindGirl = 0x80B0DBE0; // type:func -EnWallTubo_DetectChu = 0x80B0DC24; // type:func -EnWallTubo_SetWallFall = 0x80B0DE40; // type:func -EnWallTubo_Update = 0x80B0DFAC; // type:func -EnWallmas_Init = 0x80B0E090; // type:func -EnWallmas_Destroy = 0x80B0E1D0; // type:func -EnWallmas_TimerInit = 0x80B0E1FC; // type:func -EnWallmas_SetupDrop = 0x80B0E258; // type:func -EnWallmas_SetupLand = 0x80B0E31C; // type:func -EnWallmas_SetupStand = 0x80B0E3E0; // type:func -EnWallmas_SetupWalk = 0x80B0E420; // type:func -EnWallmas_SetupJumpToCeiling = 0x80B0E470; // type:func -EnWallmas_SetupReturnToCeiling = 0x80B0E4B8; // type:func -EnWallmas_SetupTakeDamage = 0x80B0E53C; // type:func -EnWallmas_SetupCooldown = 0x80B0E5F8; // type:func -EnWallmas_SetupDie = 0x80B0E64C; // type:func -EnWallmas_SetupTakePlayer = 0x80B0E714; // type:func -EnWallmas_ProximityOrSwitchInit = 0x80B0E79C; // type:func -EnWallmas_SetupStun = 0x80B0E7E4; // type:func -EnWallmas_WaitToDrop = 0x80B0E8B4; // type:func -EnWallmas_Drop = 0x80B0E9C0; // type:func -EnWallmas_Land = 0x80B0EA8C; // type:func -EnWallmas_Stand = 0x80B0EAC8; // type:func -EnWallmas_Walk = 0x80B0EB28; // type:func -EnWallmas_JumpToCeiling = 0x80B0EBDC; // type:func -EnWallmas_ReturnToCeiling = 0x80B0EC18; // type:func -EnWallmas_TakeDamage = 0x80B0ED34; // type:func -EnWallmas_Cooldown = 0x80B0EDC8; // type:func -EnWallmas_Die = 0x80B0EE04; // type:func -EnWallmas_TakePlayer = 0x80B0EE78; // type:func -EnWallmas_WaitForProximity = 0x80B0F09C; // type:func -EnWallmas_WaitForSwitchFlag = 0x80B0F0F8; // type:func -EnWallmas_Stun = 0x80B0F144; // type:func -EnWallmas_ColUpdate = 0x80B0F1B8; // type:func -EnWallmas_Update = 0x80B0F2D4; // type:func -EnWallmas_DrawXlu = 0x80B0F49C; // type:func -EnWallMas_OverrideLimbDraw = 0x80B0F63C; // type:func -EnWallMas_PostLimbDraw = 0x80B0F6B0; // type:func -EnWallmas_Draw = 0x80B0F7A0; // type:func -EnWeatherTag_SetupAction = 0x80B0FAA0; // type:func -EnWeatherTag_Destroy = 0x80B0FAAC; // type:func -EnWeatherTag_Init = 0x80B0FABC; // type:func -WeatherTag_CheckEnableWeatherEffect = 0x80B0FC90; // type:func -WeatherTag_CheckRestoreWeather = 0x80B0FE68; // type:func -EnWeatherTag_DisabledCloudyHyruleMarket = 0x80B10028; // type:func -EnWeatherTag_EnabledCloudyHyruleMarket = 0x80B10084; // type:func -EnWeatherTag_DisabledCloudyLonLonRanch = 0x80B100D8; // type:func -EnWeatherTag_EnabledCloudyLonLonRanch = 0x80B10134; // type:func -EnWeatherTag_DisabledCloudyDeathMountain = 0x80B10188; // type:func -EnWeatherTag_EnabledCloudyDeathMountain = 0x80B101E4; // type:func -EnWeatherTag_DisabledCloudySnow = 0x80B10238; // type:func -EnWeatherTag_EnabledCloudySnow = 0x80B102B0; // type:func -EnWeatherTag_DisabledRainLakeHylia = 0x80B1031C; // type:func -EnWeatherTag_EnabledRainLakeHylia = 0x80B103A0; // type:func -EnWeatherTag_DisabledCloudyRainThunderKakariko = 0x80B10418; // type:func -EnWeatherTag_EnabledCloudyRainThunderKakariko = 0x80B104B0; // type:func -EnWeatherTag_SetSandstormIntensity = 0x80B1053C; // type:func -EnWeatherTag_DisabledRainThunder = 0x80B10638; // type:func -EnWeatherTag_EnabledRainThunder = 0x80B106DC; // type:func -EnWeatherTag_Update = 0x80B10790; // type:func -EnWeiyer_Init = 0x80B10990; // type:func -EnWeiyer_Destroy = 0x80B10A60; // type:func -func_80B32384 = 0x80B10A8C; // type:func -func_80B32434 = 0x80B10B40; // type:func -func_80B32494 = 0x80B10BA0; // type:func -func_80B32508 = 0x80B10C14; // type:func -func_80B32538 = 0x80B10C48; // type:func -func_80B325A0 = 0x80B10CB4; // type:func -func_80B32660 = 0x80B10D74; // type:func -func_80B32724 = 0x80B10E38; // type:func -func_80B327B0 = 0x80B10EC4; // type:func -func_80B327D8 = 0x80B10EF0; // type:func -func_80B32804 = 0x80B10F20; // type:func -func_80B328E8 = 0x80B11004; // type:func -func_80B32C2C = 0x80B11348; // type:func -func_80B32D30 = 0x80B1144C; // type:func -func_80B32DEC = 0x80B11508; // type:func -func_80B32E34 = 0x80B11554; // type:func -func_80B33018 = 0x80B1173C; // type:func -func_80B331CC = 0x80B118F0; // type:func -func_80B332B4 = 0x80B119D8; // type:func -func_80B33338 = 0x80B11A5C; // type:func -func_80B333B8 = 0x80B11ADC; // type:func -func_80B3349C = 0x80B11BC0; // type:func -func_80B3368C = 0x80B11DB4; // type:func -EnWeiyer_Update = 0x80B11E94; // type:func -EnWeiyer_OverrideLimbDraw = 0x80B12008; // type:func -EnWeiyer_Draw = 0x80B12038; // type:func -EnWf_SetupAction = 0x80B12390; // type:func -EnWf_Init = 0x80B1239C; // type:func -EnWf_Destroy = 0x80B125D0; // type:func -EnWf_ChangeAction = 0x80B1266C; // type:func -EnWf_SetupWaitToAppear = 0x80B12A3C; // type:func -EnWf_WaitToAppear = 0x80B12AE4; // type:func -EnWf_SetupWait = 0x80B12C18; // type:func -EnWf_Wait = 0x80B12CA0; // type:func -EnWf_SetupRunAtPlayer = 0x80B12EBC; // type:func -EnWf_RunAtPlayer = 0x80B12F3C; // type:func -EnWf_SetupSearchForPlayer = 0x80B133BC; // type:func -EnWf_SearchForPlayer = 0x80B13408; // type:func -EnWf_SetupRunAroundPlayer = 0x80B135E8; // type:func -EnWf_RunAroundPlayer = 0x80B136E4; // type:func -EnWf_SetupSlash = 0x80B13C04; // type:func -EnWf_Slash = 0x80B13C80; // type:func -EnWf_SetupRecoilFromBlockedSlash = 0x80B13FD4; // type:func -EnWf_RecoilFromBlockedSlash = 0x80B14070; // type:func -EnWf_SetupBackflipAway = 0x80B14268; // type:func -EnWf_BackflipAway = 0x80B142E4; // type:func -EnWf_SetupStunned = 0x80B143EC; // type:func -EnWf_Stunned = 0x80B14464; // type:func -EnWf_SetupDamaged = 0x80B14520; // type:func -EnWf_Damaged = 0x80B145B8; // type:func -EnWf_SetupSomersaultAndAttack = 0x80B147C0; // type:func -EnWf_SomersaultAndAttack = 0x80B14878; // type:func -EnWf_SetupBlocking = 0x80B14960; // type:func -EnWf_Blocking = 0x80B14A00; // type:func -EnWf_SetupSidestep = 0x80B14C84; // type:func -EnWf_Sidestep = 0x80B14E1C; // type:func -EnWf_SetupDie = 0x80B1536C; // type:func -EnWf_Die = 0x80B1541C; // type:func -func_80B36F40 = 0x80B15624; // type:func -EnWf_UpdateDamage = 0x80B1571C; // type:func -EnWf_Update = 0x80B158EC; // type:func -EnWf_OverrideLimbDraw = 0x80B15B40; // type:func -EnWf_PostLimbDraw = 0x80B15B84; // type:func -EnWf_Draw = 0x80B15D2C; // type:func -EnWf_DodgeRanged = 0x80B15EE8; // type:func -EnWonderItem_Destroy = 0x80B166A0; // type:func -EnWonderItem_DropCollectible = 0x80B166E4; // type:func -EnWonderItem_Init = 0x80B16840; // type:func -EnWonderItem_MultitagFree = 0x80B16B8C; // type:func -EnWonderItem_ProximityDrop = 0x80B16CD4; // type:func -EnWonderItem_InteractSwitch = 0x80B16D3C; // type:func -EnWonderItem_ProximitySwitch = 0x80B16D70; // type:func -EnWonderItem_MultitagOrdered = 0x80B16DFC; // type:func -EnWonderItem_BombSoldier = 0x80B16F58; // type:func -EnWonderItem_RollDrop = 0x80B16FE8; // type:func -EnWonderItem_Update = 0x80B1705C; // type:func -EnWonderTalk_Destroy = 0x80B173D0; // type:func -EnWonderTalk_Init = 0x80B173E0; // type:func -func_80B391CC = 0x80B17488; // type:func -func_80B3943C = 0x80B17618; // type:func -func_80B395F0 = 0x80B1776C; // type:func -EnWonderTalk_Update = 0x80B1795C; // type:func -EnWonderTalk2_Destroy = 0x80B17A60; // type:func -EnWonderTalk2_Init = 0x80B17A70; // type:func -func_80B3A10C = 0x80B17C00; // type:func -func_80B3A15C = 0x80B17C50; // type:func -func_80B3A3D4 = 0x80B17DD0; // type:func -func_80B3A4F8 = 0x80B17EB8; // type:func -EnWonderTalk2_DoNothing = 0x80B18008; // type:func -EnWonderTalk2_Update = 0x80B18018; // type:func -EnWood02_SpawnZoneCheck = 0x80B18100; // type:func -EnWood02_SpawnOffspring = 0x80B18228; // type:func -EnWood02_Init = 0x80B18440; // type:func -EnWood02_Destroy = 0x80B1887C; // type:func -EnWood02_Update = 0x80B188B8; // type:func -EnWood02_Draw = 0x80B18DB0; // type:func -EnXc_InitCollider = 0x80B192E0; // type:func -EnXc_UpdateCollider = 0x80B1932C; // type:func -EnXc_Destroy = 0x80B19370; // type:func -EnXc_CalculateHeadTurn = 0x80B1939C; // type:func -EnXc_SetEyePattern = 0x80B19424; // type:func -EnXc_SpawnNut = 0x80B194AC; // type:func -EnXc_BgCheck = 0x80B19574; // type:func -EnXc_AnimIsFinished = 0x80B195BC; // type:func -EnXc_GetCue = 0x80B195E0; // type:func -EnXc_CheckForCue = 0x80B19604; // type:func -EnXc_CheckForNoCue = 0x80B19650; // type:func -func_80B3C588 = 0x80B1969C; // type:func -func_80B3C620 = 0x80B19734; // type:func -EnXc_ChangeAnimation = 0x80B19814; // type:func -EnXc_CheckAndSetAction = 0x80B198D0; // type:func -func_80B3C7D4 = 0x80B198E8; // type:func -func_80B3C8CC = 0x80B19914; // type:func -func_80B3C924 = 0x80B19970; // type:func -func_80B3C964 = 0x80B199B0; // type:func -func_80B3C9DC = 0x80B19A28; // type:func -func_80B3C9EC = 0x80B19A3C; // type:func -func_80B3CA38 = 0x80B19A88; // type:func -EnXc_MinuetCS = 0x80B19ADC; // type:func -func_80B3CB58 = 0x80B19BB4; // type:func -EnXc_BoleroCS = 0x80B19C08; // type:func -EnXc_SetupSerenadeAction = 0x80B19D68; // type:func -EnXc_SerenadeCS = 0x80B19DC0; // type:func -EnXc_DoNothing = 0x80B19E88; // type:func -EnXc_SetWalkingSFX = 0x80B19E98; // type:func -EnXc_SetNutThrowSFX = 0x80B19F18; // type:func -EnXc_SetLandingSFX = 0x80B19FA4; // type:func -EnXc_SetColossusAppearSFX = 0x80B1A024; // type:func -func_80B3D118 = 0x80B1A130; // type:func -EnXc_SetColossusWindSFX = 0x80B1A174; // type:func -EnXc_SpawnFlame = 0x80B1A27C; // type:func -EnXc_SetupFlamePos = 0x80B1A320; // type:func -EnXc_DestroyFlame = 0x80B1A39C; // type:func -EnXc_InitFlame = 0x80B1A3DC; // type:func -func_80B3D48C = 0x80B1A478; // type:func -EnXc_GetCurrentHarpAnim = 0x80B1A4C8; // type:func -EnXc_CalcXZAccel = 0x80B1A55C; // type:func -func_80B3D644 = 0x80B1A634; // type:func -EnXc_CalcXZSpeed = 0x80B1A654; // type:func -func_80B3D6F0 = 0x80B1A6E0; // type:func -func_80B3D710 = 0x80B1A700; // type:func -func_80B3D730 = 0x80B1A720; // type:func -func_80B3D750 = 0x80B1A740; // type:func -EnXc_SetupFallFromSkyAction = 0x80B1A78C; // type:func -func_80B3D8A4 = 0x80B1A89C; // type:func -EnXc_SetupWalkAction = 0x80B1A98C; // type:func -EnXc_SetupHaltAction = 0x80B1A9FC; // type:func -EnXc_SetupStoppedAction = 0x80B1AAA8; // type:func -func_80B3DAF0 = 0x80B1AAF0; // type:func -EnXc_SetupInitialHarpAction = 0x80B1ABB0; // type:func -EnXc_SetupPlayingHarpAction = 0x80B1AC28; // type:func -func_80B3DCA8 = 0x80B1ACB0; // type:func -EnXc_SetupHarpPutawayAction = 0x80B1AD44; // type:func -func_80B3DE00 = 0x80B1AE14; // type:func -func_80B3DE78 = 0x80B1AE8C; // type:func -EnXc_SetupReverseAccel = 0x80B1AF08; // type:func -EnXc_SetupReverseWalkAction = 0x80B1AFB8; // type:func -EnXc_SetupReverseHaltAction = 0x80B1B028; // type:func -EnXc_SetupNutThrow = 0x80B1B0D4; // type:func -func_80B3E164 = 0x80B1B17C; // type:func -EnXc_SetupDisappear = 0x80B1B1D0; // type:func -EnXc_ActionFunc0 = 0x80B1B240; // type:func -EnXc_ActionFunc1 = 0x80B1B280; // type:func -EnXc_GracefulFall = 0x80B1B2C0; // type:func -EnXc_Accelerate = 0x80B1B33C; // type:func -EnXc_Walk = 0x80B1B39C; // type:func -EnXc_Stopped = 0x80B1B3FC; // type:func -EnXc_ActionFunc6 = 0x80B1B45C; // type:func -EnXc_ActionFunc7 = 0x80B1B4A4; // type:func -EnXc_ActionFunc8 = 0x80B1B4F0; // type:func -EnXc_ActionFunc9 = 0x80B1B540; // type:func -EnXc_ActionFunc10 = 0x80B1B588; // type:func -EnXc_ActionFunc11 = 0x80B1B5D0; // type:func -EnXc_ActionFunc12 = 0x80B1B61C; // type:func -EnXc_ActionFunc13 = 0x80B1B668; // type:func -EnXc_ReverseAccelerate = 0x80B1B6C4; // type:func -EnXc_ActionFunc15 = 0x80B1B730; // type:func -EnXc_HaltAndWaitToThrowNut = 0x80B1B79C; // type:func -EnXc_ThrowNut = 0x80B1B808; // type:func -EnXc_Delete = 0x80B1B870; // type:func -EnXc_Fade = 0x80B1B8CC; // type:func -func_80B3E87C = 0x80B1B8EC; // type:func -EnXc_PullingOutHarpOverrideLimbDraw = 0x80B1B91C; // type:func -EnXc_HarpOverrideLimbDraw = 0x80B1B958; // type:func -EnXc_DrawPullingOutHarp = 0x80B1B980; // type:func -EnXc_DrawHarp = 0x80B1BABC; // type:func -func_80B3EBF0 = 0x80B1BBF8; // type:func -func_80B3EC00 = 0x80B1BC0C; // type:func -func_80B3EC0C = 0x80B1BC1C; // type:func -func_80B3EC90 = 0x80B1BCA0; // type:func -func_80B3ECD8 = 0x80B1BCE8; // type:func -EnXc_ActionFunc20 = 0x80B1BD58; // type:func -EnXc_ActionFunc21 = 0x80B1BD7C; // type:func -EnXc_ActionFunc22 = 0x80B1BD9C; // type:func -EnXc_ActionFunc23 = 0x80B1BDE4; // type:func -EnXc_ActionFunc24 = 0x80B1BE44; // type:func -EnXc_ActionFunc25 = 0x80B1BE54; // type:func -EnXc_ActionFunc26 = 0x80B1BE64; // type:func -EnXc_ActionFunc27 = 0x80B1BE74; // type:func -EnXc_ActionFunc28 = 0x80B1BE84; // type:func -func_80B3EE64 = 0x80B1BE94; // type:func -func_80B3EE74 = 0x80B1BEA8; // type:func -func_80B3EEA4 = 0x80B1BEDC; // type:func -func_80B3EEC8 = 0x80B1BF00; // type:func -func_80B3EEEC = 0x80B1BF24; // type:func -func_80B3EF10 = 0x80B1BF48; // type:func -func_80B3EF34 = 0x80B1BF6C; // type:func -func_80B3EF58 = 0x80B1BF90; // type:func -func_80B3EF80 = 0x80B1BFB8; // type:func -func_80B3EFA4 = 0x80B1BFDC; // type:func -func_80B3EFC8 = 0x80B1C000; // type:func -func_80B3EFEC = 0x80B1C024; // type:func -func_80B3F010 = 0x80B1C048; // type:func -func_80B3F0B8 = 0x80B1C0F4; // type:func -func_80B3F0DC = 0x80B1C118; // type:func -func_80B3F100 = 0x80B1C13C; // type:func -EnXc_Serenade = 0x80B1C160; // type:func -EnXc_ActionFunc30 = 0x80B1C180; // type:func -EnXc_ActionFunc31 = 0x80B1C1AC; // type:func -EnXc_ActionFunc32 = 0x80B1C1F0; // type:func -EnXc_ActionFunc33 = 0x80B1C21C; // type:func -EnXc_ActionFunc34 = 0x80B1C248; // type:func -EnXc_ActionFunc35 = 0x80B1C274; // type:func -EnXc_ActionFunc36 = 0x80B1C2A0; // type:func -EnXc_ActionFunc37 = 0x80B1C2CC; // type:func -EnXc_ActionFunc38 = 0x80B1C2F8; // type:func -EnXc_ActionFunc39 = 0x80B1C324; // type:func -EnXc_ActionFunc40 = 0x80B1C350; // type:func -EnXc_ActionFunc41 = 0x80B1C3B0; // type:func -EnXc_ActionFunc42 = 0x80B1C3DC; // type:func -EnXc_ActionFunc43 = 0x80B1C408; // type:func -EnXc_ActionFunc44 = 0x80B1C434; // type:func -func_80B3F3C8 = 0x80B1C444; // type:func -func_80B3F3D8 = 0x80B1C458; // type:func -EnXc_PlayDiveSFX = 0x80B1C478; // type:func -EnXc_LakeHyliaDive = 0x80B1C4CC; // type:func -func_80B3F534 = 0x80B1C5B8; // type:func -func_80B3F59C = 0x80B1C620; // type:func -func_80B3F620 = 0x80B1C6A4; // type:func -func_80B3F644 = 0x80B1C6C8; // type:func -func_80B3F668 = 0x80B1C6EC; // type:func -func_80B3F6DC = 0x80B1C760; // type:func -EnXc_SetupKneelAction = 0x80B1C784; // type:func -func_80B3F754 = 0x80B1C7DC; // type:func -func_80B3F7BC = 0x80B1C84C; // type:func -EnXc_ActionFunc45 = 0x80B1C888; // type:func -EnXc_ActionFunc46 = 0x80B1C8B4; // type:func -EnXc_ActionFunc47 = 0x80B1C8E0; // type:func -EnXc_ActionFunc48 = 0x80B1C938; // type:func -EnXc_ActionFunc49 = 0x80B1C964; // type:func -EnXc_Kneel = 0x80B1C9C8; // type:func -EnXc_ActionFunc51 = 0x80B1CA2C; // type:func -EnXc_ActionFunc52 = 0x80B1CA90; // type:func -func_80B3FA08 = 0x80B1CAB0; // type:func -func_80B3FA2C = 0x80B1CAD8; // type:func -EnXc_PlayTriforceSFX = 0x80B1CAF8; // type:func -func_80B3FAE0 = 0x80B1CB90; // type:func -EnXc_CalcTriforce = 0x80B1CBD8; // type:func -func_80B3FF0C = 0x80B1CFD0; // type:func -EnXc_SetupShowTriforceAction = 0x80B1D078; // type:func -EnXc_SetupShowTriforceIdleAction = 0x80B1D108; // type:func -func_80B400AC = 0x80B1D174; // type:func -EnXc_ActionFunc53 = 0x80B1D1B0; // type:func -EnXc_ActionFunc54 = 0x80B1D1D0; // type:func -EnXc_ShowTriforce = 0x80B1D218; // type:func -EnXc_ShowTriforceIdle = 0x80B1D280; // type:func -EnXc_TriforceOverrideLimbDraw = 0x80B1D2DC; // type:func -EnXc_TriforcePostLimbDraw = 0x80B1D304; // type:func -EnXc_DrawTriforce = 0x80B1D380; // type:func -func_80B40590 = 0x80B1D614; // type:func -EnXc_SetThrownAroundSFX = 0x80B1D630; // type:func -EnXc_PlayLinkScreamSFX = 0x80B1D6F4; // type:func -EnXc_SetCrySFX = 0x80B1D728; // type:func -func_80B406F8 = 0x80B1D784; // type:func -EnXc_SetupIdleInNocturne = 0x80B1D79C; // type:func -EnXc_SetupDefenseStance = 0x80B1D838; // type:func -EnXc_SetupContortions = 0x80B1D8B0; // type:func -EnXc_SetupFallInNocturne = 0x80B1D94C; // type:func -EnXc_SetupHittingGroundInNocturne = 0x80B1DA28; // type:func -func_80B40A78 = 0x80B1DAC8; // type:func -EnXc_SetupKneelInNocturne = 0x80B1DB68; // type:func -func_80B40BB4 = 0x80B1DC04; // type:func -func_80B40C50 = 0x80B1DCA0; // type:func -func_80B40C74 = 0x80B1DCC4; // type:func -func_80B40C98 = 0x80B1DCE8; // type:func -func_80B40CBC = 0x80B1DD0C; // type:func -func_80B40CE0 = 0x80B1DD30; // type:func -func_80B40D08 = 0x80B1DD58; // type:func -func_80B40D2C = 0x80B1DD7C; // type:func -func_80B40D50 = 0x80B1DDA0; // type:func -func_80B40D74 = 0x80B1DDC4; // type:func -EnXc_SetupReverseHaltInNocturneCS = 0x80B1DDE8; // type:func -func_80B40E40 = 0x80B1DE94; // type:func -func_80B40E64 = 0x80B1DEB8; // type:func -func_80B40E88 = 0x80B1DEDC; // type:func -EnXc_SetupNocturneState = 0x80B1DF00; // type:func -EnXc_InitialNocturneAction = 0x80B1E040; // type:func -EnXc_IdleInNocturne = 0x80B1E060; // type:func -EnXc_DefenseStance = 0x80B1E0B0; // type:func -EnXc_Contort = 0x80B1E0F8; // type:func -EnXc_FallInNocturne = 0x80B1E164; // type:func -EnXc_HitGroundInNocturne = 0x80B1E1CC; // type:func -EnXc_ActionFunc63 = 0x80B1E20C; // type:func -EnXc_KneelInNocturneCS = 0x80B1E268; // type:func -EnXc_ActionFunc65 = 0x80B1E2B0; // type:func -EnXc_ActionFunc66 = 0x80B1E2F4; // type:func -EnXc_ActionFunc67 = 0x80B1E320; // type:func -EnXc_ActionFunc68 = 0x80B1E34C; // type:func -EnXc_ActionFunc69 = 0x80B1E378; // type:func -EnXc_ActionFunc70 = 0x80B1E3A4; // type:func -EnXc_ActionFunc71 = 0x80B1E3D0; // type:func -EnXc_ActionFunc72 = 0x80B1E3FC; // type:func -EnXc_ReverseAccelInNocturneCS = 0x80B1E428; // type:func -EnXc_ReverseWalkInNocturneCS = 0x80B1E454; // type:func -EnXc_ReverseHaltInNocturneCS = 0x80B1E4A8; // type:func -EnXc_ThrowNutInNocturneCS = 0x80B1E4D4; // type:func -EnXc_DeleteInNocturneCS = 0x80B1E500; // type:func -EnXc_KillInNocturneCS = 0x80B1E52C; // type:func -EnXc_DrawSquintingEyes = 0x80B1E550; // type:func -EnXc_InitTempleOfTime = 0x80B1E62C; // type:func -EnXc_SetupDialogueAction = 0x80B1E798; // type:func -func_80B41798 = 0x80B1E820; // type:func -EnXc_BlockingPedestalAction = 0x80B1E86C; // type:func -EnXc_ActionFunc80 = 0x80B1E8D4; // type:func -EnXc_Update = 0x80B1E93C; // type:func -EnXc_Init = 0x80B1E984; // type:func -EnXc_OverrideLimbDraw = 0x80B1EAF0; // type:func -EnXc_PostLimbDraw = 0x80B1EB78; // type:func -EnXc_DrawNothing = 0x80B1EC04; // type:func -EnXc_DrawDefault = 0x80B1EC14; // type:func -EnXc_Draw = 0x80B1ED1C; // type:func -EnYabusameMark_Destroy = 0x80B1FA70; // type:func -EnYabusameMark_Init = 0x80B1FA9C; // type:func -func_80B42F74 = 0x80B1FBDC; // type:func -EnYabusameMark_Update = 0x80B1FE20; // type:func -EnYukabyun_Init = 0x80B20140; // type:func -EnYukabyun_Destroy = 0x80B201F0; // type:func -func_80B43A94 = 0x80B2021C; // type:func -func_80B43AD4 = 0x80B2025C; // type:func -func_80B43B6C = 0x80B202F4; // type:func -EnYukabyun_Break = 0x80B20354; // type:func -EnYukabyun_Update = 0x80B203C8; // type:func -EnYukabyun_Draw = 0x80B20568; // type:func -EnZf_SetupAction = 0x80B20750; // type:func -EnZf_PrimaryFloorCheck = 0x80B2075C; // type:func -EnZf_SecondaryFloorCheck = 0x80B208CC; // type:func -EnZf_Init = 0x80B209FC; // type:func -EnZf_Destroy = 0x80B20D34; // type:func -EnZf_FindPlatform = 0x80B20DB8; // type:func -EnZf_FindNextPlatformAwayFromPlayer = 0x80B20F80; // type:func -EnZf_FindNextPlatformTowardsPlayer = 0x80B21224; // type:func -EnZf_CanAttack = 0x80B21400; // type:func -func_80B44DC4 = 0x80B214D4; // type:func -EnZf_ChooseAction = 0x80B215A0; // type:func -EnZf_SetupDropIn = 0x80B217C0; // type:func -EnZf_DropIn = 0x80B21888; // type:func -func_80B45384 = 0x80B21A98; // type:func -func_80B4543C = 0x80B21B50; // type:func -EnZf_SetupApproachPlayer = 0x80B21DCC; // type:func -EnZf_ApproachPlayer = 0x80B21E60; // type:func -EnZf_SetupJumpForward = 0x80B2254C; // type:func -EnZf_JumpForward = 0x80B2260C; // type:func -func_80B4604C = 0x80B22768; // type:func -func_80B46098 = 0x80B227B4; // type:func -func_80B462E4 = 0x80B22A00; // type:func -func_80B463E4 = 0x80B22B08; // type:func -EnZf_SetupSlash = 0x80B2314C; // type:func -EnZf_Slash = 0x80B23208; // type:func -EnZf_SetupRecoilFromBlockedSlash = 0x80B23494; // type:func -EnZf_RecoilFromBlockedSlash = 0x80B23508; // type:func -EnZf_SetupJumpBack = 0x80B235C0; // type:func -EnZf_JumpBack = 0x80B23660; // type:func -EnZf_SetupStunned = 0x80B23784; // type:func -EnZf_Stunned = 0x80B23854; // type:func -EnZf_SetupSheatheSword = 0x80B23A94; // type:func -EnZf_SheatheSword = 0x80B23B70; // type:func -EnZf_SetupHopAndTaunt = 0x80B23C1C; // type:func -EnZf_HopAndTaunt = 0x80B23C7C; // type:func -EnZf_SetupHopAway = 0x80B23ED4; // type:func -EnZf_HopAway = 0x80B23F54; // type:func -EnZf_SetupDrawSword = 0x80B243A0; // type:func -EnZf_DrawSword = 0x80B24434; // type:func -EnZf_SetupDamaged = 0x80B244E4; // type:func -EnZf_Damaged = 0x80B245F0; // type:func -EnZf_SetupJumpUp = 0x80B24950; // type:func -EnZf_JumpUp = 0x80B249F8; // type:func -func_80B483E4 = 0x80B24B24; // type:func -EnZf_CircleAroundPlayer = 0x80B24CC0; // type:func -EnZf_SetupDie = 0x80B25440; // type:func -EnZf_Die = 0x80B255A4; // type:func -EnZf_UpdateHeadRotation = 0x80B256E4; // type:func -EnZf_UpdateDamage = 0x80B25808; // type:func -EnZf_Update = 0x80B259A0; // type:func -EnZf_OverrideLimbDraw = 0x80B25D58; // type:func -EnZf_PostLimbDraw = 0x80B25DE4; // type:func -EnZf_Draw = 0x80B26038; // type:func -EnZf_SetupCircleAroundPlayer = 0x80B26284; // type:func -EnZf_DodgeRangedEngaging = 0x80B26350; // type:func -EnZf_DodgeRangedWaiting = 0x80B2657C; // type:func -func_80B4AB40 = 0x80B27240; // type:func -func_80B4AB48 = 0x80B27248; // type:func -EnZl1_Init = 0x80B27250; // type:func -EnZl1_Destroy = 0x80B274E0; // type:func -func_80B4AE18 = 0x80B27520; // type:func -func_80B4AF18 = 0x80B27620; // type:func -func_80B4B010 = 0x80B27718; // type:func -func_80B4B240 = 0x80B27950; // type:func -func_80B4B7F4 = 0x80B27F04; // type:func -func_80B4B834 = 0x80B27F48; // type:func -func_80B4B874 = 0x80B27F8C; // type:func -func_80B4B8B4 = 0x80B27FCC; // type:func -func_80B4BBC4 = 0x80B282DC; // type:func -func_80B4BC78 = 0x80B28390; // type:func -func_80B4BF2C = 0x80B28644; // type:func -EnZl1_Update = 0x80B28938; // type:func -EnZl1_OverrideLimbDraw = 0x80B28A5C; // type:func -EnZl1_PostLimbDraw = 0x80B28B1C; // type:func -EnZl1_Draw = 0x80B28B78; // type:func -EnZl2_Destroy = 0x80B2B050; // type:func -EnZl2_UpdateEyes = 0x80B2B074; // type:func -func_80B4EA40 = 0x80B2B104; // type:func -func_80B4EAF4 = 0x80B2B1B8; // type:func -func_80B4EBB8 = 0x80B2B27C; // type:func -func_80B4EC48 = 0x80B2B30C; // type:func -EnZl2_setEyesIndex = 0x80B2B3AC; // type:func -EnZl2_setEyeIndex2 = 0x80B2B3CC; // type:func -EnZl2_setMouthIndex = 0x80B2B3E4; // type:func -func_80B4ED2C = 0x80B2B3FC; // type:func -EnZl2_UpdateSkelAnime = 0x80B2B444; // type:func -EnZl2_GetCue = 0x80B2B468; // type:func -func_80B4EDB8 = 0x80B2B490; // type:func -func_80B4EE38 = 0x80B2B510; // type:func -func_80B4EF64 = 0x80B2B640; // type:func -func_80B4F230 = 0x80B2B910; // type:func -func_80B4F45C = 0x80B2BB40; // type:func -EnZl2_PostLimbDraw = 0x80B2C20C; // type:func -func_80B4FCCC = 0x80B2C358; // type:func -func_80B4FD00 = 0x80B2C390; // type:func -func_80B4FD90 = 0x80B2C420; // type:func -func_80B4FDD4 = 0x80B2C464; // type:func -func_80B4FE10 = 0x80B2C4A4; // type:func -func_80B4FE48 = 0x80B2C4DC; // type:func -func_80B4FE6C = 0x80B2C504; // type:func -func_80B4FE90 = 0x80B2C52C; // type:func -func_80B4FEB4 = 0x80B2C554; // type:func -func_80B4FED8 = 0x80B2C57C; // type:func -EnZl2_GiveLightArrows = 0x80B2C5A4; // type:func -func_80B4FF84 = 0x80B2C634; // type:func -func_80B4FFF0 = 0x80B2C6A0; // type:func -func_80B5008C = 0x80B2C740; // type:func -func_80B500E0 = 0x80B2C794; // type:func -func_80B501C4 = 0x80B2C878; // type:func -func_80B501E8 = 0x80B2C89C; // type:func -func_80B50260 = 0x80B2C914; // type:func -func_80B50278 = 0x80B2C930; // type:func -func_80B50304 = 0x80B2C9BC; // type:func -func_80B503DC = 0x80B2CA94; // type:func -func_80B5042C = 0x80B2CAE4; // type:func -func_80B50488 = 0x80B2CB40; // type:func -func_80B504D4 = 0x80B2CB8C; // type:func -func_80B5053C = 0x80B2CBF0; // type:func -func_80B50580 = 0x80B2CC38; // type:func -func_80B505D4 = 0x80B2CC8C; // type:func -func_80B50618 = 0x80B2CCD4; // type:func -func_80B50644 = 0x80B2CD00; // type:func -func_80B50670 = 0x80B2CD2C; // type:func -func_80B506C4 = 0x80B2CD80; // type:func -func_80B5073C = 0x80B2CDFC; // type:func -func_80B50780 = 0x80B2CE44; // type:func -func_80B507E8 = 0x80B2CEAC; // type:func -func_80B5082C = 0x80B2CEF4; // type:func -func_80B50880 = 0x80B2CF48; // type:func -func_80B508C8 = 0x80B2CF90; // type:func -func_80B50928 = 0x80B2CFEC; // type:func -func_80B50970 = 0x80B2D034; // type:func -func_80B50980 = 0x80B2D048; // type:func -func_80B509A0 = 0x80B2D06C; // type:func -func_80B50A04 = 0x80B2D0D0; // type:func -func_80B50BBC = 0x80B2D274; // type:func -func_80B50BEC = 0x80B2D2AC; // type:func -func_80B50C40 = 0x80B2D308; // type:func -func_80B50CA8 = 0x80B2D378; // type:func -func_80B50CFC = 0x80B2D3D4; // type:func -func_80B50D50 = 0x80B2D430; // type:func -func_80B50D94 = 0x80B2D47C; // type:func -func_80B50DE8 = 0x80B2D4D8; // type:func -func_80B50E3C = 0x80B2D534; // type:func -func_80B50E90 = 0x80B2D590; // type:func -func_80B50EE4 = 0x80B2D5EC; // type:func -func_80B50F38 = 0x80B2D648; // type:func -func_80B50F8C = 0x80B2D6A4; // type:func -func_80B50FE8 = 0x80B2D708; // type:func -func_80B51034 = 0x80B2D75C; // type:func -func_80B51080 = 0x80B2D7B0; // type:func -func_80B510CC = 0x80B2D804; // type:func -func_80B51118 = 0x80B2D858; // type:func -func_80B51164 = 0x80B2D8AC; // type:func -func_80B511B0 = 0x80B2D900; // type:func -func_80B511FC = 0x80B2D954; // type:func -func_80B51250 = 0x80B2D9B0; // type:func -func_80B512B8 = 0x80B2DA20; // type:func -func_80B51310 = 0x80B2DA80; // type:func -func_80B5135C = 0x80B2DAD0; // type:func -func_80B513A8 = 0x80B2DB1C; // type:func -func_80B51418 = 0x80B2DB90; // type:func -func_80B5146C = 0x80B2DBE4; // type:func -func_80B5149C = 0x80B2DC18; // type:func -func_80B514F8 = 0x80B2DC78; // type:func -func_80B5154C = 0x80B2DCCC; // type:func -func_80B515C4 = 0x80B2DD44; // type:func -func_80B515D8 = 0x80B2DD5C; // type:func -func_80B51644 = 0x80B2DDC8; // type:func -func_80B51678 = 0x80B2DDFC; // type:func -func_80B516D0 = 0x80B2DE54; // type:func -func_80B51704 = 0x80B2DE88; // type:func -func_80B5175C = 0x80B2DEE0; // type:func -func_80B51790 = 0x80B2DF14; // type:func -func_80B517E0 = 0x80B2DF64; // type:func -func_80B51824 = 0x80B2DFAC; // type:func -func_80B5187C = 0x80B2E004; // type:func -func_80B518C0 = 0x80B2E04C; // type:func -func_80B51948 = 0x80B2E0D4; // type:func -func_80B51A5C = 0x80B2E1D4; // type:func -func_80B51A8C = 0x80B2E20C; // type:func -func_80B51AE4 = 0x80B2E26C; // type:func -func_80B51B44 = 0x80B2E2D4; // type:func -func_80B51BA8 = 0x80B2E340; // type:func -func_80B51C0C = 0x80B2E3AC; // type:func -func_80B51C64 = 0x80B2E40C; // type:func -func_80B51CA8 = 0x80B2E458; // type:func -func_80B51D0C = 0x80B2E4C4; // type:func -func_80B51D24 = 0x80B2E4E0; // type:func -func_80B51DA4 = 0x80B2E560; // type:func -func_80B51EA8 = 0x80B2E664; // type:func -func_80B51EBC = 0x80B2E67C; // type:func -func_80B51F38 = 0x80B2E6FC; // type:func -func_80B51FA8 = 0x80B2E76C; // type:func -func_80B52068 = 0x80B2E818; // type:func -func_80B52098 = 0x80B2E850; // type:func -func_80B52108 = 0x80B2E8C8; // type:func -func_80B52114 = 0x80B2E8D8; // type:func -func_80B521A0 = 0x80B2E938; // type:func -EnZl2_Update = 0x80B2E9C4; // type:func -EnZl2_Init = 0x80B2EA0C; // type:func -EnZl2_OverrideLimbDraw = 0x80B2EAB8; // type:func -func_80B523BC = 0x80B2EB20; // type:func -func_80B523C8 = 0x80B2EB30; // type:func -func_80B525D4 = 0x80B2ED0C; // type:func -EnZl2_Draw = 0x80B2EEB4; // type:func -func_80B533B0 = 0x80B2F750; // type:func -func_80B533FC = 0x80B2F79C; // type:func -EnZl3_Destroy = 0x80B2F7E0; // type:func -func_80B53468 = 0x80B2F80C; // type:func -func_80B53488 = 0x80B2F82C; // type:func -EnZl3_UpdateEyes = 0x80B2F878; // type:func -EnZl3_setEyeIndex = 0x80B2F900; // type:func -EnZl3_setMouthIndex = 0x80B2F918; // type:func -func_80B5357C = 0x80B2F930; // type:func -func_80B53614 = 0x80B2F9CC; // type:func -func_80B5366C = 0x80B2FA24; // type:func -func_80B536B4 = 0x80B2FA6C; // type:func -func_80B536C4 = 0x80B2FA80; // type:func -func_80B53764 = 0x80B2FB24; // type:func -func_80B537E8 = 0x80B2FBAC; // type:func -func_80B538B0 = 0x80B2FC74; // type:func -EnZl3_UpdateSkelAnime = 0x80B2FD10; // type:func -func_80B5396C = 0x80B2FD34; // type:func -func_80B53974 = 0x80B2FD40; // type:func -func_80B53980 = 0x80B2FD54; // type:func -func_80B53B64 = 0x80B2FF3C; // type:func -func_80B54360 = 0x80B3074C; // type:func -func_80B5458C = 0x80B3097C; // type:func -EnZl3_PostLimbDraw = 0x80B31078; // type:func -func_80B54DB4 = 0x80B31144; // type:func -func_80B54DC4 = 0x80B31158; // type:func -func_80B54DD4 = 0x80B3116C; // type:func -func_80B54DE0 = 0x80B3117C; // type:func -func_80B54E14 = 0x80B311B4; // type:func -func_80B54EA4 = 0x80B31244; // type:func -func_80B54EF4 = 0x80B31298; // type:func -func_80B54F18 = 0x80B312C0; // type:func -func_80B54FB4 = 0x80B31360; // type:func -func_80B55054 = 0x80B313E4; // type:func -func_80B550F0 = 0x80B31484; // type:func -func_80B55144 = 0x80B314D8; // type:func -func_80B551E0 = 0x80B31578; // type:func -func_80B55220 = 0x80B315B8; // type:func -func_80B55268 = 0x80B31600; // type:func -func_80B552A8 = 0x80B31640; // type:func -func_80B552DC = 0x80B31674; // type:func -func_80B55334 = 0x80B316D0; // type:func -func_80B55368 = 0x80B31704; // type:func -func_80B553B4 = 0x80B31750; // type:func -func_80B553E8 = 0x80B31784; // type:func -func_80B55408 = 0x80B317A4; // type:func -func_80B55444 = 0x80B317E0; // type:func -func_80B55550 = 0x80B318E4; // type:func -func_80B555A4 = 0x80B31940; // type:func -func_80B55604 = 0x80B319A8; // type:func -func_80B5566C = 0x80B31A18; // type:func -func_80B556CC = 0x80B31A80; // type:func -func_80B5572C = 0x80B31AE8; // type:func -func_80B55780 = 0x80B31B44; // type:func -func_80B55808 = 0x80B31BA8; // type:func -func_80B5582C = 0x80B31BD0; // type:func -func_80B5585C = 0x80B31C00; // type:func -func_80B558A8 = 0x80B31C4C; // type:func -func_80B559C4 = 0x80B31D6C; // type:func -func_80B55A58 = 0x80B31DFC; // type:func -func_80B55A84 = 0x80B31E28; // type:func -func_80B55AC4 = 0x80B31E68; // type:func -func_80B55B04 = 0x80B31EA8; // type:func -func_80B55B38 = 0x80B31EDC; // type:func -func_80B55B78 = 0x80B31F1C; // type:func -func_80B55BAC = 0x80B31F50; // type:func -func_80B55C0C = 0x80B31FB4; // type:func -func_80B55C4C = 0x80B31FF4; // type:func -func_80B55C70 = 0x80B3201C; // type:func -func_80B55CCC = 0x80B32074; // type:func -func_80B55D00 = 0x80B320A8; // type:func -func_80B55DB0 = 0x80B3215C; // type:func -func_80B55E08 = 0x80B321B4; // type:func -func_80B55E48 = 0x80B321F4; // type:func -func_80B55E7C = 0x80B32228; // type:func -func_80B55EBC = 0x80B32268; // type:func -func_80B55EF0 = 0x80B3229C; // type:func -func_80B55F38 = 0x80B322E4; // type:func -func_80B55F6C = 0x80B32318; // type:func -func_80B5604C = 0x80B323FC; // type:func -func_80B56090 = 0x80B32440; // type:func -func_80B56108 = 0x80B324BC; // type:func -func_80B56160 = 0x80B32514; // type:func -func_80B561A0 = 0x80B32554; // type:func -func_80B561E0 = 0x80B32594; // type:func -func_80B56214 = 0x80B325C8; // type:func -func_80B562F4 = 0x80B326AC; // type:func -func_80B5634C = 0x80B32704; // type:func -func_80B5638C = 0x80B32744; // type:func -func_80B563C0 = 0x80B32778; // type:func -func_80B56400 = 0x80B327B8; // type:func -func_80B56434 = 0x80B327EC; // type:func -func_80B56474 = 0x80B3282C; // type:func -func_80B564A8 = 0x80B32860; // type:func -func_80B56658 = 0x80B32A00; // type:func -func_80B566AC = 0x80B32A5C; // type:func -func_80B5670C = 0x80B32AC4; // type:func -func_80B5676C = 0x80B32B2C; // type:func -func_80B567CC = 0x80B32B94; // type:func -func_80B5682C = 0x80B32BFC; // type:func -func_80B568B4 = 0x80B32C8C; // type:func -func_80B5691C = 0x80B32CFC; // type:func -func_80B5697C = 0x80B32D64; // type:func -func_80B569E4 = 0x80B32DD4; // type:func -func_80B56A68 = 0x80B32E60; // type:func -func_80B56AE0 = 0x80B32EE0; // type:func -func_80B56B54 = 0x80B32F5C; // type:func -func_80B56BA8 = 0x80B32FB8; // type:func -func_80B56C24 = 0x80B3303C; // type:func -func_80B56C84 = 0x80B330A4; // type:func -func_80B56CE4 = 0x80B3310C; // type:func -func_80B56D44 = 0x80B33174; // type:func -func_80B56DA4 = 0x80B331DC; // type:func -func_80B56DC8 = 0x80B33200; // type:func -func_80B56DEC = 0x80B33228; // type:func -func_80B56E38 = 0x80B33274; // type:func -func_80B56EB8 = 0x80B332F4; // type:func -func_80B56EE4 = 0x80B33324; // type:func -func_80B56F10 = 0x80B33354; // type:func -func_80B56F8C = 0x80B333A8; // type:func -func_80B56FAC = 0x80B333C8; // type:func -func_80B57034 = 0x80B33454; // type:func -func_80B57104 = 0x80B33528; // type:func -func_80B571A8 = 0x80B335D0; // type:func -func_80B571FC = 0x80B33624; // type:func -func_80B57240 = 0x80B33668; // type:func -func_80B57298 = 0x80B336C0; // type:func -func_80B572F0 = 0x80B33718; // type:func -func_80B57324 = 0x80B33750; // type:func -func_80B57350 = 0x80B3377C; // type:func -func_80B573C8 = 0x80B337F4; // type:func -func_80B573FC = 0x80B33828; // type:func -func_80B57458 = 0x80B33884; // type:func -func_80B57564 = 0x80B33994; // type:func -func_80B575B0 = 0x80B339E8; // type:func -func_80B575D0 = 0x80B33A08; // type:func -func_80B575F0 = 0x80B33A28; // type:func -func_80B5764C = 0x80B33A84; // type:func -func_80B576C8 = 0x80B33B04; // type:func -func_80B57704 = 0x80B33B48; // type:func -func_80B5772C = 0x80B33B74; // type:func -func_80B57754 = 0x80B33BA0; // type:func -func_80B577BC = 0x80B33C0C; // type:func -func_80B57858 = 0x80B33CAC; // type:func -func_80B57890 = 0x80B33CE8; // type:func -func_80B57A74 = 0x80B33ED0; // type:func -func_80B57AAC = 0x80B33F08; // type:func -func_80B57AE0 = 0x80B33F3C; // type:func -func_80B57C54 = 0x80B340B4; // type:func -func_80B57C7C = 0x80B340DC; // type:func -func_80B57C8C = 0x80B340F0; // type:func -func_80B57CB4 = 0x80B34118; // type:func -func_80B57D60 = 0x80B341C0; // type:func -func_80B57D80 = 0x80B341E4; // type:func -func_80B57EAC = 0x80B3431C; // type:func -func_80B57EEC = 0x80B34364; // type:func -func_80B57F1C = 0x80B34398; // type:func -func_80B57F84 = 0x80B34404; // type:func -func_80B58014 = 0x80B3449C; // type:func -func_80B58214 = 0x80B346A8; // type:func -func_80B58268 = 0x80B34700; // type:func -func_80B582C8 = 0x80B34760; // type:func -func_80B584B4 = 0x80B3494C; // type:func -func_80B58624 = 0x80B34ABC; // type:func -func_80B5884C = 0x80B34CEC; // type:func -func_80B58898 = 0x80B34D38; // type:func -func_80B588E8 = 0x80B34D88; // type:func -func_80B58938 = 0x80B34DD8; // type:func -func_80B5899C = 0x80B34E40; // type:func -func_80B58A1C = 0x80B34EC0; // type:func -func_80B58A50 = 0x80B34EFC; // type:func -func_80B58AAC = 0x80B34F5C; // type:func -func_80B58C08 = 0x80B350B8; // type:func -func_80B58D50 = 0x80B35200; // type:func -func_80B58DB0 = 0x80B35268; // type:func -func_80B58E10 = 0x80B352D0; // type:func -func_80B58E7C = 0x80B35344; // type:func -func_80B58EF4 = 0x80B353C4; // type:func -func_80B58F6C = 0x80B35444; // type:func -func_80B58FDC = 0x80B354BC; // type:func -func_80B5904C = 0x80B35534; // type:func -func_80B590BC = 0x80B355AC; // type:func -func_80B5912C = 0x80B35624; // type:func -func_80B591BC = 0x80B356BC; // type:func -func_80B5922C = 0x80B35734; // type:func -func_80B592A8 = 0x80B357B8; // type:func -func_80B59340 = 0x80B35858; // type:func -func_80B593D0 = 0x80B358F0; // type:func -func_80B5944C = 0x80B35974; // type:func -func_80B59698 = 0x80B35B70; // type:func -func_80B59768 = 0x80B35C40; // type:func -func_80B59828 = 0x80B35D00; // type:func -func_80B59A80 = 0x80B35F60; // type:func -func_80B59AD0 = 0x80B35FB0; // type:func -func_80B59B6C = 0x80B3604C; // type:func -func_80B59DB8 = 0x80B36294; // type:func -EnZl3_Update = 0x80B36304; // type:func -EnZl3_Init = 0x80B3634C; // type:func -EnZl3_OverrideLimbDraw = 0x80B3640C; // type:func -func_80B59FE8 = 0x80B36474; // type:func -func_80B59FF4 = 0x80B36484; // type:func -func_80B5A1D0 = 0x80B36630; // type:func -EnZl3_Draw = 0x80B367D8; // type:func -EnZl4_SetActiveCamDir = 0x80B375A0; // type:func -EnZl4_SetActiveCamMove = 0x80B37678; // type:func -EnZl4_GetTextId = 0x80B376FC; // type:func -EnZl4_UpdateTalkState = 0x80B377A0; // type:func -EnZl4_UpdateFace = 0x80B377DC; // type:func -EnZl4_SetMove = 0x80B3792C; // type:func -func_80B5BB78 = 0x80B3796C; // type:func -EnZl4_GetCueStartPos = 0x80B379B8; // type:func -EnZl4_SetupFromLegendCs = 0x80B379FC; // type:func -EnZl4_InMovingAnim = 0x80B37AD4; // type:func -EnZl4_Init = 0x80B37BA4; // type:func -EnZl4_Destroy = 0x80B37D60; // type:func -EnZl4_SetNextAnim = 0x80B37D8C; // type:func -EnZl4_ReverseAnimation = 0x80B37DE0; // type:func -EnZl4_CsWaitForPlayer = 0x80B37E08; // type:func -EnZl4_CsMeetPlayer = 0x80B37F68; // type:func -EnZl4_CsAskStone = 0x80B38260; // type:func -EnZl4_CsAskName = 0x80B3878C; // type:func -EnZl4_CsTellLegend = 0x80B38D78; // type:func -EnZl4_CsLookWindow = 0x80B391D4; // type:func -EnZl4_CsWarnAboutGanon = 0x80B39418; // type:func -EnZl4_CsMakePlan = 0x80B398E0; // type:func -EnZl4_Cutscene = 0x80B39C24; // type:func -EnZl4_Idle = 0x80B39E9C; // type:func -EnZl4_TheEnd = 0x80B39F14; // type:func -EnZl4_Update = 0x80B3A0C4; // type:func -EnZl4_OverrideLimbDraw = 0x80B3A174; // type:func -EnZl4_PostLimbDraw = 0x80B3A304; // type:func -EnZl4_Draw = 0x80B3A360; // type:func -EnZo_SpawnRipple = 0x80B3BFD0; // type:func -EnZo_SpawnBubble = 0x80B3C064; // type:func -EnZo_SpawnSplash = 0x80B3C194; // type:func -EnZo_UpdateEffectsRipples = 0x80B3C300; // type:func -EnZo_UpdateEffectsBubbles = 0x80B3C3BC; // type:func -EnZo_UpdateEffectsSplashes = 0x80B3C4EC; // type:func -EnZo_DrawEffectsRipples = 0x80B3C624; // type:func -EnZo_DrawEffectsBubbles = 0x80B3C7D4; // type:func -EnZo_DrawEffectsSplashes = 0x80B3C980; // type:func -EnZo_TreadWaterRipples = 0x80B3CB38; // type:func -EnZo_SpawnSplashes = 0x80B3CBB4; // type:func -EnZo_GetTextId = 0x80B3CD28; // type:func -EnZo_UpdateTalkState = 0x80B3CF9C; // type:func -EnZo_Blink = 0x80B3D100; // type:func -EnZo_Dialog = 0x80B3D178; // type:func -EnZo_PlayerInProximity = 0x80B3D258; // type:func -EnZo_SetAnimation = 0x80B3D2F8; // type:func -EnZo_Init = 0x80B3D3F0; // type:func -EnZo_Destroy = 0x80B3D5F8; // type:func -EnZo_Standing = 0x80B3D608; // type:func -EnZo_Submerged = 0x80B3D6EC; // type:func -EnZo_Surface = 0x80B3D72C; // type:func -EnZo_TreadWater = 0x80B3D810; // type:func -EnZo_Dive = 0x80B3D9C0; // type:func -EnZo_Update = 0x80B3DB08; // type:func -EnZo_OverrideLimbDraw = 0x80B3DCE8; // type:func -EnZo_PostLimbDraw = 0x80B3DF08; // type:func -EnZo_Draw = 0x80B3DF64; // type:func -EnfHG_Init = 0x80B3E590; // type:func -EnfHG_Destroy = 0x80B3E690; // type:func -EnfHG_SetupIntro = 0x80B3E6BC; // type:func -EnfHG_Intro = 0x80B3E720; // type:func -EnfHG_SetupApproach = 0x80B3F92C; // type:func -EnfHG_Approach = 0x80B3FB78; // type:func -EnfHG_Attack = 0x80B3FD1C; // type:func -EnfHG_Damage = 0x80B401A0; // type:func -EnfHG_Retreat = 0x80B404D0; // type:func -EnfHG_Done = 0x80B40704; // type:func -EnfHG_Update = 0x80B40714; // type:func -EnfHG_PostDraw = 0x80B408A8; // type:func -EnfHG_Draw = 0x80B408BC; // type:func -EndTitle_Init = 0x80B40EC0; // type:func -EndTitle_Destroy = 0x80B40EF0; // type:func -EndTitle_Update = 0x80B40F00; // type:func -EndTitle_DrawFull = 0x80B40F10; // type:func -EndTitle_DrawNintendoLogo = 0x80B414DC; // type:func -Fishing_SetColliderElement = 0x80B44FE0; // type:func -Fishing_SeedRand = 0x80B45090; // type:func -Fishing_RandZeroOne = 0x80B450B0; // type:func -Fishing_SmoothStepToS = 0x80B451D8; // type:func -Fishing_SpawnRipple = 0x80B45284; // type:func -Fishing_SpawnDustSplash = 0x80B453DC; // type:func -Fishing_SpawnWaterDust = 0x80B45524; // type:func -Fishing_SpawnBubble = 0x80B4565C; // type:func -Fishing_SpawnRainDrop = 0x80B4578C; // type:func -Fishing_InitPondProps = 0x80B45884; // type:func -Fishing_Init = 0x80B45B98; // type:func -Fishing_Destroy = 0x80B46460; // type:func -Fishing_UpdateEffects = 0x80B464D8; // type:func -Fishing_DrawEffects = 0x80B46C1C; // type:func -Fishing_DrawStreamSplash = 0x80B47648; // type:func -Fishing_IsAboveCounter = 0x80B477CC; // type:func -Fishing_UpdateLine = 0x80B478C0; // type:func -Fishing_UpdateLinePos = 0x80B47E4C; // type:func -Fishing_DrawLureHook = 0x80B47FE4; // type:func -Fishing_UpdateSinkingLure = 0x80B484E4; // type:func -Fishing_DrawSinkingLure = 0x80B487E8; // type:func -Fishing_DrawLureAndLine = 0x80B48AD4; // type:func -Fishing_DrawRod = 0x80B49324; // type:func -Fishing_UpdateLure = 0x80B49DAC; // type:func -Fishing_SplashBySize = 0x80B4BD78; // type:func -Fishing_SplashBySize2 = 0x80B4C040; // type:func -func_80B70ED4 = 0x80B4C224; // type:func -Fishing_FishLeapSfx = 0x80B4C5C8; // type:func -Fishing_HandleAquariumDialog = 0x80B4C788; // type:func -Fishing_UpdateFish = 0x80B4C948; // type:func -Fishing_FishOverrideLimbDraw = 0x80B50D90; // type:func -Fishing_FishPostLimbDraw = 0x80B50EB0; // type:func -Fishing_LoachOverrideLimbDraw = 0x80B50EF0; // type:func -Fishing_LoachPostLimbDraw = 0x80B50F70; // type:func -Fishing_DrawFish = 0x80B50FB0; // type:func -Fishing_HandleReedContact = 0x80B511F8; // type:func -Fishing_HandleLilyPadContact = 0x80B512A4; // type:func -Fishing_UpdatePondProps = 0x80B5138C; // type:func -Fishing_DrawPondProps = 0x80B51648; // type:func -Fishing_UpdateGroupFishes = 0x80B51A6C; // type:func -Fishing_DrawGroupFishes = 0x80B5233C; // type:func -Fishing_HandleOwnerDialog = 0x80B52530; // type:func -Fishing_UpdateOwner = 0x80B533B4; // type:func -Fishing_OwnerOverrideLimbDraw = 0x80B550BC; // type:func -Fishing_OwnerPostLimbDraw = 0x80B550F4; // type:func -Fishing_DrawOwner = 0x80B55204; // type:func -ItemBHeart_Init = 0x80B5FB80; // type:func -ItemBHeart_Destroy = 0x80B5FBEC; // type:func -ItemBHeart_Update = 0x80B5FBFC; // type:func -func_80B85264 = 0x80B5FCA4; // type:func -ItemBHeart_Draw = 0x80B5FD90; // type:func -ItemEtcetera_SetupAction = 0x80B5FF90; // type:func -ItemEtcetera_Init = 0x80B5FF9C; // type:func -ItemEtcetera_Destroy = 0x80B6011C; // type:func -ItemEtcetera_WaitForObject = 0x80B6012C; // type:func -func_80B85824 = 0x80B60184; // type:func -func_80B858B4 = 0x80B6021C; // type:func -ItemEtcetera_SpawnSparkles = 0x80B602FC; // type:func -ItemEtcetera_MoveFireArrowDown = 0x80B6040C; // type:func -func_80B85B28 = 0x80B6049C; // type:func -ItemEtcetera_UpdateFireArrow = 0x80B604E4; // type:func -ItemEtcetera_Update = 0x80B60564; // type:func -ItemEtcetera_DrawThroughLens = 0x80B60588; // type:func -ItemEtcetera_Draw = 0x80B605E0; // type:func -ItemInbox_Init = 0x80B60860; // type:func -ItemInbox_Destroy = 0x80B60894; // type:func -ItemInbox_Wait = 0x80B608A4; // type:func -ItemInbox_Update = 0x80B608EC; // type:func -ItemInbox_Draw = 0x80B60910; // type:func -ItemOcarina_SetupAction = 0x80B609C0; // type:func -ItemOcarina_Init = 0x80B609CC; // type:func -ItemOcarina_Destroy = 0x80B60B54; // type:func -ItemOcarina_Fly = 0x80B60B64; // type:func -ItemOcarina_GetThrown = 0x80B60D10; // type:func -func_80B864EC = 0x80B60D68; // type:func -func_80B865E0 = 0x80B60E5C; // type:func -ItemOcarina_DoNothing = 0x80B60EBC; // type:func -ItemOcarina_StartSoTCutscene = 0x80B60ECC; // type:func -ItemOcarina_WaitInWater = 0x80B60F40; // type:func -ItemOcarina_Update = 0x80B61014; // type:func -ItemOcarina_Draw = 0x80B61038; // type:func -ItemShield_SetupAction = 0x80B61190; // type:func -ItemShield_Init = 0x80B6119C; // type:func -ItemShield_Destroy = 0x80B61304; // type:func -func_80B86AC8 = 0x80B61330; // type:func -func_80B86BC8 = 0x80B61434; // type:func -func_80B86CA8 = 0x80B6151C; // type:func -func_80B86F68 = 0x80B617E0; // type:func -ItemShield_Update = 0x80B618EC; // type:func -ItemShield_Draw = 0x80B61910; // type:func -MagicDark_Init = 0x80B61BA0; // type:func -MagicDark_Destroy = 0x80B61C84; // type:func -MagicDark_DiamondUpdate = 0x80B61CBC; // type:func -MagicDark_DimLighting = 0x80B61F04; // type:func -MagicDark_OrbUpdate = 0x80B62050; // type:func -MagicDark_DiamondDraw = 0x80B621F8; // type:func -MagicDark_OrbDraw = 0x80B62460; // type:func -MagicFire_Init = 0x80B633F0; // type:func -MagicFire_Destroy = 0x80B6349C; // type:func -MagicFire_UpdateBeforeCast = 0x80B634C0; // type:func -MagicFire_Update = 0x80B63564; // type:func -MagicFire_Draw = 0x80B638F8; // type:func -MagicWind_SetupAction = 0x80B656F0; // type:func -MagicWind_Init = 0x80B656FC; // type:func -MagicWind_Destroy = 0x80B65808; // type:func -MagicWind_UpdateAlpha = 0x80B6583C; // type:func -MagicWind_WaitForTimer = 0x80B6595C; // type:func -MagicWind_Grow = 0x80B659D8; // type:func -MagicWind_WaitAtFullSize = 0x80B65A28; // type:func -MagicWind_FadeOut = 0x80B65A74; // type:func -MagicWind_Shrink = 0x80B65AD8; // type:func -MagicWind_Update = 0x80B65B18; // type:func -MagicWind_OverrideLimbDraw = 0x80B65B6C; // type:func -MagicWind_Draw = 0x80B65CF0; // type:func -MirRay_SetupCollider = 0x80B673F0; // type:func -MirRay_MakeShieldLight = 0x80B674B8; // type:func -MirRay_Init = 0x80B6765C; // type:func -MirRay_Destroy = 0x80B678F4; // type:func -MirRay_Update = 0x80B6796C; // type:func -MirRay_SetIntensity = 0x80B67A58; // type:func -MirRay_SetupReflectionPolys = 0x80B67C0C; // type:func -MirRay_RemoveSimilarReflections = 0x80B67DE8; // type:func -MirRay_ReflectedBeam = 0x80B67EEC; // type:func -MirRay_Draw = 0x80B6845C; // type:func -MirRay_CheckInFrustum = 0x80B68738; // type:func -ObjBean_InitCollider = 0x80B68CA0; // type:func -ObjBean_InitDynaPoly = 0x80B68CF8; // type:func -ObjBean_FindFloor = 0x80B68D50; // type:func -func_80B8EBC8 = 0x80B68DB8; // type:func -ObjBean_UpdatePosition = 0x80B68DD8; // type:func -func_80B8EDF4 = 0x80B68FE8; // type:func -func_80B8EE24 = 0x80B69018; // type:func -ObjBean_Move = 0x80B690F0; // type:func -ObjBean_SetDrawMode = 0x80B69120; // type:func -ObjBean_SetupPathCount = 0x80B69144; // type:func -ObjBean_SetupPath = 0x80B69184; // type:func -ObjBean_FollowPath = 0x80B69200; // type:func -ObjBean_CheckForHorseTrample = 0x80B694A8; // type:func -ObjBean_Break = 0x80B69538; // type:func -ObjBean_UpdateLeaves = 0x80B697B0; // type:func -ObjBean_SetupLeavesStill = 0x80B6986C; // type:func -ObjBean_LeavesStill = 0x80B698DC; // type:func -ObjBean_SetupShakeLeaves = 0x80B69920; // type:func -ObjBean_ShakeLeaves = 0x80B69998; // type:func -ObjBean_SetupShakeLeavesFast = 0x80B69A1C; // type:func -ObjBean_ShakeLeavesFast = 0x80B69A60; // type:func -ObjBean_SetupGrow = 0x80B69AE8; // type:func -ObjBean_Grow = 0x80B69AFC; // type:func -ObjBean_SetupFlattenLeaves = 0x80B69B60; // type:func -ObjBean_FlattenLeaves = 0x80B69B7C; // type:func -ObjBean_SetupGrown = 0x80B69BF8; // type:func -ObjBean_Grown = 0x80B69C3C; // type:func -ObjBean_Init = 0x80B69C98; // type:func -ObjBean_Destroy = 0x80B69E54; // type:func -ObjBean_SetupWaitForBean = 0x80B69ED0; // type:func -ObjBean_WaitForBean = 0x80B69F08; // type:func -func_80B8FE00 = 0x80B69F84; // type:func -func_80B8FE3C = 0x80B69FBC; // type:func -func_80B8FE6C = 0x80B69FEC; // type:func -func_80B8FEAC = 0x80B6A02C; // type:func -func_80B8FF50 = 0x80B6A0D0; // type:func -func_80B8FF8C = 0x80B6A108; // type:func -func_80B90010 = 0x80B6A18C; // type:func -func_80B90050 = 0x80B6A1C8; // type:func -ObjBean_SetupWaitForWater = 0x80B6A288; // type:func -ObjBean_WaitForWater = 0x80B6A2D0; // type:func -ObjBean_SetupGrowWaterPhase1 = 0x80B6A3C8; // type:func -ObjBean_GrowWaterPhase1 = 0x80B6A408; // type:func -ObjBean_SetupGrowWaterPhase2 = 0x80B6A44C; // type:func -ObjBean_GrowWaterPhase2 = 0x80B6A488; // type:func -ObjBean_SetupGrowWaterPhase3 = 0x80B6A538; // type:func -ObjBean_GrowWaterPhase3 = 0x80B6A570; // type:func -ObjBean_SetupGrowWaterPhase4 = 0x80B6A684; // type:func -ObjBean_GrowWaterPhase4 = 0x80B6A6BC; // type:func -ObjBean_SetupGrowWaterPhase5 = 0x80B6A758; // type:func -ObjBean_GrowWaterPhase5 = 0x80B6A790; // type:func -ObjBean_SetupWaitForPlayer = 0x80B6A7E8; // type:func -ObjBean_WaitForPlayer = 0x80B6A814; // type:func -ObjBean_SetupFly = 0x80B6A888; // type:func -ObjBean_Fly = 0x80B6A8CC; // type:func -ObjBean_SetupWaitForStepOff = 0x80B6A9FC; // type:func -ObjBean_WaitForStepOff = 0x80B6AA28; // type:func -func_80B908EC = 0x80B6AA68; // type:func -func_80B90918 = 0x80B6AA94; // type:func -func_80B90970 = 0x80B6AAF0; // type:func -func_80B909B0 = 0x80B6AB30; // type:func -func_80B909F8 = 0x80B6AB78; // type:func -func_80B90A34 = 0x80B6ABB0; // type:func -ObjBean_Update = 0x80B6AC50; // type:func -ObjBean_DrawSoftSoilSpot = 0x80B6ADE0; // type:func -ObjBean_DrawBeanstalk = 0x80B6AE68; // type:func -ObjBean_Draw = 0x80B6AEF4; // type:func -ObjBlockstop_Init = 0x80B6B430; // type:func -ObjBlockstop_Destroy = 0x80B6B48C; // type:func -ObjBlockstop_Update = 0x80B6B49C; // type:func -ObjBombiwa_InitCollision = 0x80B6B5D0; // type:func -ObjBombiwa_Init = 0x80B6B628; // type:func -ObjBombiwa_Destroy = 0x80B6B6F4; // type:func -ObjBombiwa_Break = 0x80B6B720; // type:func -ObjBombiwa_Update = 0x80B6B920; // type:func -ObjBombiwa_Draw = 0x80B6BA30; // type:func -ObjComb_Break = 0x80B6BB40; // type:func -ObjComb_ChooseItemDrop = 0x80B6BE30; // type:func -ObjComb_Init = 0x80B6BF00; // type:func -ObjComb_Destroy = 0x80B6BF70; // type:func -ObjComb_SetupWait = 0x80B6BF9C; // type:func -ObjComb_Wait = 0x80B6BFB0; // type:func -ObjComb_Update = 0x80B6C09C; // type:func -ObjComb_Draw = 0x80B6C114; // type:func -ObjDekujr_Init = 0x80B6C3A0; // type:func -ObjDekujr_Destroy = 0x80B6C4AC; // type:func -ObjDekujr_GetCueStartPos = 0x80B6C4BC; // type:func -ObjDekujr_GetCueEndPos = 0x80B6C500; // type:func -ObjDekujr_ComeUp = 0x80B6C544; // type:func -ObjDekujr_Update = 0x80B6C6F4; // type:func -ObjDekujr_Draw = 0x80B6C7E4; // type:func -ObjElevator_SetupAction = 0x80B6C9E0; // type:func -func_80B92B08 = 0x80B6C9EC; // type:func -ObjElevator_Init = 0x80B6CA44; // type:func -ObjElevator_Destroy = 0x80B6CAD4; // type:func -func_80B92C5C = 0x80B6CB08; // type:func -func_80B92C80 = 0x80B6CB2C; // type:func -func_80B92D20 = 0x80B6CBCC; // type:func -func_80B92D44 = 0x80B6CBF0; // type:func -ObjElevator_Update = 0x80B6CC74; // type:func -ObjElevator_Draw = 0x80B6CCA8; // type:func -ObjHamishi_InitCollision = 0x80B6CDA0; // type:func -ObjHamishi_Shake = 0x80B6CDF8; // type:func -ObjHamishi_Break = 0x80B6CF74; // type:func -ObjHamishi_Init = 0x80B6D220; // type:func -ObjHamishi_Destroy = 0x80B6D308; // type:func -ObjHamishi_Update = 0x80B6D334; // type:func -ObjHamishi_Draw = 0x80B6D464; // type:func -ObjHana_Init = 0x80B6D5F0; // type:func -ObjHana_Destroy = 0x80B6D6EC; // type:func -ObjHana_Update = 0x80B6D738; // type:func -ObjHana_Draw = 0x80B6D7A8; // type:func -ObjHsblock_SetupAction = 0x80B6D900; // type:func -func_80B93B68 = 0x80B6D90C; // type:func -func_80B93BF0 = 0x80B6D964; // type:func -ObjHsblock_Init = 0x80B6D9E8; // type:func -ObjHsblock_Destroy = 0x80B6DAB8; // type:func -func_80B93D90 = 0x80B6DAEC; // type:func -func_80B93DB0 = 0x80B6DB0C; // type:func -func_80B93DF4 = 0x80B6DB50; // type:func -func_80B93E38 = 0x80B6DB98; // type:func -func_80B93E5C = 0x80B6DBBC; // type:func -ObjHsblock_Update = 0x80B6DC64; // type:func -ObjHsblock_Draw = 0x80B6DCB0; // type:func -ObjIcePoly_Init = 0x80B6DED0; // type:func -ObjIcePoly_Destroy = 0x80B6E090; // type:func -ObjIcePoly_Idle = 0x80B6E0E0; // type:func -ObjIcePoly_Melt = 0x80B6E310; // type:func -ObjIcePoly_Update = 0x80B6E5C8; // type:func -ObjIcePoly_Draw = 0x80B6E5EC; // type:func -ObjKibako_SpawnCollectible = 0x80B6E880; // type:func -ObjKibako_ApplyGravity = 0x80B6E8E0; // type:func -ObjKibako_InitCollider = 0x80B6E914; // type:func -ObjKibako_Init = 0x80B6E96C; // type:func -ObjKibako_Destroy = 0x80B6E9E4; // type:func -ObjKibako_AirBreak = 0x80B6EA10; // type:func -ObjKibako_WaterBreak = 0x80B6EC90; // type:func -ObjKibako_SetupIdle = 0x80B6EF10; // type:func -ObjKibako_Idle = 0x80B6EF2C; // type:func -ObjKibako_SetupHeld = 0x80B6F128; // type:func -ObjKibako_Held = 0x80B6F15C; // type:func -ObjKibako_SetupThrown = 0x80B6F228; // type:func -ObjKibako_Thrown = 0x80B6F288; // type:func -ObjKibako_Update = 0x80B6F3C4; // type:func -ObjKibako_Draw = 0x80B6F3E8; // type:func -ObjKibako2_InitCollider = 0x80B6F580; // type:func -ObjKibako2_Break = 0x80B6F5D8; // type:func -ObjKibako2_SpawnCollectible = 0x80B6F854; // type:func -ObjKibako2_Init = 0x80B6F8A4; // type:func -ObjKibako2_Destroy = 0x80B6F950; // type:func -ObjKibako2_Idle = 0x80B6F998; // type:func -ObjKibako2_Kill = 0x80B6FA70; // type:func -ObjKibako2_Update = 0x80B6FAF4; // type:func -ObjKibako2_Draw = 0x80B6FB18; // type:func -ObjLift_SetupAction = 0x80B6FC40; // type:func -ObjLift_InitDynaPoly = 0x80B6FC4C; // type:func -ObjLift_SpawnFragments = 0x80B6FCA4; // type:func -ObjLift_Init = 0x80B6FF28; // type:func -ObjLift_Destroy = 0x80B70028; // type:func -ObjLift_SetupWait = 0x80B7005C; // type:func -ObjLift_Wait = 0x80B700A0; // type:func -ObjLift_SetupShake = 0x80B70190; // type:func -ObjLift_Shake = 0x80B701BC; // type:func -ObjLift_SetupFall = 0x80B70304; // type:func -ObjLift_Fall = 0x80B70388; // type:func -ObjLift_Update = 0x80B7048C; // type:func -ObjLift_Draw = 0x80B704C0; // type:func -ObjLightswitch_InitCollider = 0x80B70660; // type:func -ObjLightswitch_SetSwitchFlag = 0x80B706FC; // type:func -ObjLightswitch_ClearSwitchFlag = 0x80B707C0; // type:func -ObjLightswitch_SpawnDisappearEffects = 0x80B70840; // type:func -ObjLightswitch_Init = 0x80B70A68; // type:func -ObjLightswitch_Destroy = 0x80B70BFC; // type:func -ObjLightswitch_SetupOff = 0x80B70C28; // type:func -ObjLightswitch_Off = 0x80B70C5C; // type:func -ObjLightswitch_SetupTurnOn = 0x80B70D3C; // type:func -ObjLightswitch_TurnOn = 0x80B70D60; // type:func -ObjLightswitch_SetupOn = 0x80B70E54; // type:func -ObjLightswitch_On = 0x80B70E90; // type:func -ObjLightswitch_SetupTurnOff = 0x80B70FA4; // type:func -ObjLightswitch_TurnOff = 0x80B70FD0; // type:func -ObjLightswitch_SetupDisappearDelay = 0x80B710C0; // type:func -ObjLightswitch_DisappearDelay = 0x80B710DC; // type:func -ObjLightswitch_SetupDisappear = 0x80B71124; // type:func -ObjLightswitch_Disappear = 0x80B71140; // type:func -ObjLightswitch_Update = 0x80B71184; // type:func -ObjLightswitch_DrawOpa = 0x80B71268; // type:func -ObjLightswitch_DrawXlu = 0x80B71590; // type:func -ObjLightswitch_Draw = 0x80B71840; // type:func -ObjMakekinsuta_Init = 0x80B71A90; // type:func -func_80B98320 = 0x80B71AA8; // type:func -ObjMakekinsuta_DoNothing = 0x80B71B5C; // type:func -ObjMakekinsuta_Update = 0x80B71B6C; // type:func -ObjMakeoshihiki_Init = 0x80B71BE0; // type:func -ObjMakeoshihiki_Draw = 0x80B71D54; // type:func -ObjMure_SetCullingImpl = 0x80B72070; // type:func -ObjMure_SetCulling = 0x80B720C8; // type:func -ObjMure_Init = 0x80B720F4; // type:func -ObjMure_Destroy = 0x80B721A4; // type:func -ObjMure_GetMaxChildSpawns = 0x80B721B4; // type:func -ObjMure_GetSpawnPos = 0x80B721E0; // type:func -ObjMure_SpawnActors0 = 0x80B72208; // type:func -ObjMure_SpawnActors1 = 0x80B723D0; // type:func -ObjMure_SpawnActors = 0x80B7251C; // type:func -ObjMure_KillActorsImpl = 0x80B7256C; // type:func -ObjMure_KillActors = 0x80B72664; // type:func -ObjMure_CheckChildren = 0x80B72684; // type:func -ObjMure_InitialAction = 0x80B72748; // type:func -ObjMure_CulledState = 0x80B72760; // type:func -ObjMure_SetFollowTargets = 0x80B727C0; // type:func -ObjMure_SetChildToFollowPlayer = 0x80B72898; // type:func -ObjMure_GroupBehavior0 = 0x80B72A18; // type:func -ObjMure_GroupBehavior1 = 0x80B72C40; // type:func -ObjMure_ActiveState = 0x80B72DC4; // type:func -ObjMure_Update = 0x80B72E6C; // type:func -ObjMure2_SetPosShrubCircle = 0x80B73080; // type:func -ObjMure2_SetPosShrubScattered = 0x80B7319C; // type:func -ObjMure2_SetPosRockCircle = 0x80B7329C; // type:func -ObjMure2_SetActorSpawnParams = 0x80B733A8; // type:func -ObjMure2_SpawnActors = 0x80B733FC; // type:func -ObjMure2_CleanupAndDie = 0x80B73558; // type:func -func_80B9A534 = 0x80B73658; // type:func -ObjMure2_Init = 0x80B736EC; // type:func -ObjMure2_SetupWait = 0x80B7374C; // type:func -ObjMure2_Wait = 0x80B73760; // type:func -func_80B9A658 = 0x80B73784; // type:func -func_80B9A668 = 0x80B73798; // type:func -func_80B9A6E8 = 0x80B73818; // type:func -func_80B9A6F8 = 0x80B7382C; // type:func -ObjMure2_Update = 0x80B738BC; // type:func -func_80B9A9D0 = 0x80B73AA0; // type:func -func_80B9AA90 = 0x80B73B60; // type:func -func_80B9ABA0 = 0x80B73C70; // type:func -func_80B9ACE4 = 0x80B73DB4; // type:func -func_80B9ADCC = 0x80B73EA0; // type:func -ObjMure3_Init = 0x80B73F94; // type:func -ObjMure3_Destroy = 0x80B73FF4; // type:func -func_80B9AF24 = 0x80B74004; // type:func -func_80B9AF34 = 0x80B74018; // type:func -func_80B9AF54 = 0x80B7403C; // type:func -func_80B9AF64 = 0x80B74050; // type:func -func_80B9AFEC = 0x80B740D8; // type:func -func_80B9AFFC = 0x80B740EC; // type:func -ObjMure3_Update = 0x80B74168; // type:func -ObjOshihiki_InitDynapoly = 0x80B74270; // type:func -ObjOshihiki_RotateXZ = 0x80B742C8; // type:func -ObjOshihiki_StrongEnough = 0x80B7431C; // type:func -ObjOshihiki_ResetFloors = 0x80B743A0; // type:func -ObjOshihiki_GetBlockUnder = 0x80B743CC; // type:func -ObjOshihiki_UpdateInitPos = 0x80B7445C; // type:func -ObjOshihiki_NoSwitchPress = 0x80B7458C; // type:func -ObjOshihiki_CheckType = 0x80B74658; // type:func -ObjOshihiki_SetScale = 0x80B746A8; // type:func -ObjOshihiki_SetTexture = 0x80B746E0; // type:func -ObjOshihiki_SetColor = 0x80B74740; // type:func -ObjOshihiki_Init = 0x80B747E8; // type:func -ObjOshihiki_Destroy = 0x80B74910; // type:func -ObjOshihiki_SetFloors = 0x80B74944; // type:func -ObjOshihiki_GetHighestFloor = 0x80B74AA4; // type:func -ObjOshihiki_SetGround = 0x80B74BF0; // type:func -ObjOshihiki_CheckFloor = 0x80B74C48; // type:func -ObjOshihiki_CheckGround = 0x80B74CA0; // type:func -ObjOshihiki_CheckWall = 0x80B74D18; // type:func -ObjOshihiki_MoveWithBlockUnder = 0x80B74F6C; // type:func -ObjOshihiki_SetupOnScene = 0x80B75068; // type:func -ObjOshihiki_OnScene = 0x80B750A0; // type:func -ObjOshihiki_SetupOnActor = 0x80B7518C; // type:func -ObjOshihiki_OnActor = 0x80B751CC; // type:func -ObjOshihiki_SetupPush = 0x80B753C4; // type:func -ObjOshihiki_Push = 0x80B753F0; // type:func -ObjOshihiki_SetupFall = 0x80B7560C; // type:func -ObjOshihiki_Fall = 0x80B75664; // type:func -ObjOshihiki_Update = 0x80B75768; // type:func -ObjOshihiki_Draw = 0x80B757F0; // type:func -ObjRoomtimer_Init = 0x80B75D20; // type:func -ObjRoomtimer_Destroy = 0x80B75D74; // type:func -func_80B9D054 = 0x80B75DA8; // type:func -func_80B9D0B0 = 0x80B75E08; // type:func -ObjRoomtimer_Update = 0x80B75EE4; // type:func -ObjSwitch_RotateY = 0x80B75F70; // type:func -ObjSwitch_InitDynaPoly = 0x80B75FF0; // type:func -ObjSwitch_InitJntSphCollider = 0x80B76048; // type:func -ObjSwitch_InitTrisCollider = 0x80B760E4; // type:func -ObjSwitch_SpawnIce = 0x80B76204; // type:func -ObjSwitch_SetOn = 0x80B76278; // type:func -ObjSwitch_SetOff = 0x80B76324; // type:func -ObjSwitch_UpdateTwoTexScrollXY = 0x80B763AC; // type:func -ObjSwitch_Init = 0x80B763F4; // type:func -ObjSwitch_Destroy = 0x80B7668C; // type:func -ObjSwitch_FloorUpInit = 0x80B76730; // type:func -ObjSwitch_FloorUp = 0x80B76750; // type:func -ObjSwitch_FloorPressInit = 0x80B768C0; // type:func -ObjSwitch_FloorPress = 0x80B768DC; // type:func -ObjSwitch_FloorDownInit = 0x80B7699C; // type:func -ObjSwitch_FloorDown = 0x80B769C4; // type:func -ObjSwitch_FloorReleaseInit = 0x80B76B10; // type:func -ObjSwitch_FloorRelease = 0x80B76B2C; // type:func -ObjSwitch_EyeIsHit = 0x80B76C10; // type:func -ObjSwitch_EyeFrozenInit = 0x80B76C80; // type:func -ObjSwitch_EyeInit = 0x80B76C94; // type:func -ObjSwitch_EyeOpenInit = 0x80B76CEC; // type:func -ObjSwitch_EyeOpen = 0x80B76D04; // type:func -ObjSwitch_EyeClosingInit = 0x80B76D70; // type:func -ObjSwitch_EyeClosing = 0x80B76D8C; // type:func -ObjSwitch_EyeClosedInit = 0x80B76E08; // type:func -ObjSwitch_EyeClosed = 0x80B76E24; // type:func -ObjSwitch_EyeOpeningInit = 0x80B76EE4; // type:func -ObjSwitch_EyeOpening = 0x80B76F00; // type:func -ObjSwitch_CrystalOffInit = 0x80B76F90; // type:func -ObjSwitch_CrystalOff = 0x80B76FBC; // type:func -ObjSwitch_CrystalTurnOnInit = 0x80B770F4; // type:func -ObjSwitch_CrystalTurnOn = 0x80B77110; // type:func -ObjSwitch_CrystalOnInit = 0x80B77198; // type:func -ObjSwitch_CrystalOn = 0x80B771C8; // type:func -ObjSwitch_CrystalTurnOffInit = 0x80B77290; // type:func -ObjSwitch_CrystalTurnOff = 0x80B772AC; // type:func -ObjSwitch_Update = 0x80B77334; // type:func -ObjSwitch_DrawFloor = 0x80B77470; // type:func -ObjSwitch_DrawFloorRusty = 0x80B774B4; // type:func -ObjSwitch_DrawEye = 0x80B774E4; // type:func -ObjSwitch_DrawCrystal = 0x80B775F8; // type:func -ObjSwitch_Draw = 0x80B77854; // type:func -ObjSyokudai_Init = 0x80B77D50; // type:func -ObjSyokudai_Destroy = 0x80B77F14; // type:func -ObjSyokudai_Update = 0x80B77F68; // type:func -ObjSyokudai_Draw = 0x80B78584; // type:func -ObjTimeblock_CalculateIsVisible = 0x80B789A0; // type:func -ObjTimeblock_SpawnDemoEffect = 0x80B78A60; // type:func -ObjTimeblock_ToggleSwitchFlag = 0x80B78AD4; // type:func -ObjTimeblock_Init = 0x80B78B1C; // type:func -ObjTimeblock_Destroy = 0x80B78CD0; // type:func -ObjTimeblock_PlayerIsInRange = 0x80B78D04; // type:func -ObjTimeblock_WaitForOcarina = 0x80B78DE4; // type:func -ObjTimeblock_WaitForSong = 0x80B78E64; // type:func -ObjTimeblock_SetupDoNothing = 0x80B78EDC; // type:func -ObjTimeblock_DoNothing = 0x80B78EF0; // type:func -ObjTimeblock_SetupNormal = 0x80B78F00; // type:func -ObjTimeblock_Normal = 0x80B78F14; // type:func -func_80BA06AC = 0x80B79090; // type:func -ObjTimeblock_SetupAltBehaviorVisible = 0x80B79140; // type:func -ObjTimeblock_AltBehaviorVisible = 0x80B79154; // type:func -ObjTimeblock_SetupAltBehaviourNotVisible = 0x80B79220; // type:func -ObjTimeblock_AltBehaviourNotVisible = 0x80B79234; // type:func -ObjTimeblock_Update = 0x80B79304; // type:func -ObjTimeblock_Draw = 0x80B7938C; // type:func -ObjTsubo_SpawnCollectible = 0x80B795F0; // type:func -ObjTsubo_ApplyGravity = 0x80B79650; // type:func -ObjTsubo_SnapToFloor = 0x80B79684; // type:func -ObjTsubo_InitCollider = 0x80B79720; // type:func -ObjTsubo_Init = 0x80B79778; // type:func -ObjTsubo_Destroy = 0x80B79848; // type:func -ObjTsubo_AirBreak = 0x80B79874; // type:func -ObjTsubo_WaterBreak = 0x80B79AFC; // type:func -ObjTsubo_SetupWaitForObject = 0x80B79D94; // type:func -ObjTsubo_WaitForObject = 0x80B79DA8; // type:func -ObjTsubo_SetupIdle = 0x80B79E1C; // type:func -ObjTsubo_Idle = 0x80B79E30; // type:func -ObjTsubo_SetupLiftedUp = 0x80B7A040; // type:func -ObjTsubo_LiftedUp = 0x80B7A084; // type:func -ObjTsubo_SetupThrown = 0x80B7A10C; // type:func -ObjTsubo_Thrown = 0x80B7A1D4; // type:func -ObjTsubo_Update = 0x80B7A368; // type:func -ObjTsubo_Draw = 0x80B7A38C; // type:func -ObjWarp2block_Spawn = 0x80B7A5E0; // type:func -func_80BA1ECC = 0x80B7A6BC; // type:func -ObjWarp2block_SwapWithChild = 0x80B7A83C; // type:func -func_80BA2218 = 0x80B7AA0C; // type:func -func_80BA228C = 0x80B7AA8C; // type:func -func_80BA2304 = 0x80B7AB04; // type:func -ObjWarp2block_Init = 0x80B7AB48; // type:func -ObjWarp2block_Destroy = 0x80B7AC68; // type:func -ObjWarp2block_SetInactive = 0x80B7ACA8; // type:func -ObjWarp2block_DoNothing = 0x80B7ACC0; // type:func -func_80BA24E8 = 0x80B7ACD0; // type:func -func_80BA24F8 = 0x80B7ACE4; // type:func -func_80BA2600 = 0x80B7ADC8; // type:func -func_80BA2610 = 0x80B7ADDC; // type:func -ObjWarp2block_Update = 0x80B7AE8C; // type:func -ObjWarp2block_Draw = 0x80B7AEC8; // type:func -ObjectKankyo_SetupAction = 0x80B7B110; // type:func -ObjectKankyo_Init = 0x80B7B11C; // type:func -ObjectKankyo_Destroy = 0x80B7B41C; // type:func -ObjectKankyo_Snow = 0x80B7B440; // type:func -ObjectKankyo_Fairies = 0x80B7B450; // type:func -ObjectKankyo_Update = 0x80B7C268; // type:func -ObjectKankyo_Draw = 0x80B7C28C; // type:func -ObjectKankyo_DrawFairies = 0x80B7C310; // type:func -ObjectKankyo_DrawSnow = 0x80B7C798; // type:func -ObjectKankyo_Lightning = 0x80B7CF60; // type:func -ObjectKankyo_DrawLightning = 0x80B7D008; // type:func -ObjectKankyo_SunGraveSparkInit = 0x80B7D204; // type:func -ObjectKankyo_WaitForSunGraveSparkObject = 0x80B7D250; // type:func -ObjectKankyo_SunGraveSpark = 0x80B7D2C0; // type:func -ObjectKankyo_DrawSunGraveSpark = 0x80B7D36C; // type:func -ObjectKankyo_InitBeams = 0x80B7D8B4; // type:func -ObjectKankyo_WaitForBeamObject = 0x80B7D900; // type:func -ObjectKankyo_Beams = 0x80B7D960; // type:func -ObjectKankyo_DrawBeams = 0x80B7DA40; // type:func -OceffSpot_SetupAction = 0x80B7E390; // type:func -OceffSpot_Init = 0x80B7E39C; // type:func -OceffSpot_Destroy = 0x80B7E4F8; // type:func -OceffSpot_End = 0x80B7E588; // type:func -OceffSpot_Wait = 0x80B7E650; // type:func -OceffSpot_GrowCylinder = 0x80B7E68C; // type:func -OceffSpot_Update = 0x80B7E6F0; // type:func -OceffSpot_Draw = 0x80B7E9C8; // type:func -OceffStorm_SetupAction = 0x80B7F2C0; // type:func -OceffStorm_Init = 0x80B7F2CC; // type:func -OceffStorm_Destroy = 0x80B7F39C; // type:func -OceffStorm_DefaultAction = 0x80B7F3E8; // type:func -OceffStorm_UnkAction = 0x80B7F5AC; // type:func -OceffStorm_Update = 0x80B7F5CC; // type:func -OceffStorm_Draw2 = 0x80B7F638; // type:func -OceffStorm_Draw = 0x80B7F7E8; // type:func -OceffWipe_Init = 0x80B80E70; // type:func -OceffWipe_Destroy = 0x80B80ECC; // type:func -OceffWipe_Update = 0x80B80F18; // type:func -OceffWipe_Draw = 0x80B80F78; // type:func -OceffWipe2_Init = 0x80B81BF0; // type:func -OceffWipe2_Destroy = 0x80B81C4C; // type:func -OceffWipe2_Update = 0x80B81C98; // type:func -OceffWipe2_Draw = 0x80B81CF8; // type:func -OceffWipe3_Init = 0x80B83360; // type:func -OceffWipe3_Destroy = 0x80B833BC; // type:func -OceffWipe3_Update = 0x80B83408; // type:func -OceffWipe3_Draw = 0x80B83468; // type:func -OceffWipe4_Init = 0x80B84AB0; // type:func -OceffWipe4_Destroy = 0x80B84B0C; // type:func -OceffWipe4_Update = 0x80B84B30; // type:func -OceffWipe4_Draw = 0x80B84B90; // type:func -ShotSun_Init = 0x80B85A90; // type:func -ShotSun_Destroy = 0x80B85B4C; // type:func -ShotSun_SpawnFairy = 0x80B85B90; // type:func -ShotSun_TriggerFairy = 0x80B85C38; // type:func -ShotSun_UpdateFairySpawner = 0x80B85CD4; // type:func -ShotSun_UpdateHyliaSun = 0x80B85E24; // type:func -ShotSun_Update = 0x80B8605C; // type:func diff --git a/tools/disasm/gc-us/variables.txt b/tools/disasm/gc-us/variables.txt deleted file mode 100644 index 7be1569ab..000000000 --- a/tools/disasm/gc-us/variables.txt +++ /dev/null @@ -1 +0,0 @@ -gSaveContext = 0x8011B148; // size:0x1428 type:SaveContext

wcuEXRO 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 diff --git a/docs/tutorial/images/vbindiff_data_2.png b/docs/tutorial/images/vbindiff_data_2.png deleted file mode 100644 index 97d8a0feaa695c899d372b3b7bc555582a7d1064..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99541 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%0A^Gjo*NNAC#MABn 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 diff --git a/docs/tutorial/introduction.md b/docs/tutorial/introduction.md deleted file mode 100644 index b9a658d53..000000000 --- a/docs/tutorial/introduction.md +++ /dev/null @@ -1,74 +0,0 @@ -# Introduction to decomp - -In this project, we are decompiling The Legend of Zelda: Ocarina of Time. This means that we take the assembly language that is on the cartridge, - -``` -glabel func_80A13098 -/* 00028 80A13098 8482001C */ lh $v0, 0x001C($a0) ## 0000001C -/* 0002C 80A1309C 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004 -/* 00030 80A130A0 14410003 */ bne $v0, $at, .L80A130B0 -/* 00034 80A130A4 244EFFFE */ addiu $t6, $v0, 0xFFFE ## $t6 = FFFFFFFE -/* 00038 80A130A8 10000002 */ beq $zero, $zero, .L80A130B4 -/* 0003C 80A130AC A480001C */ sh $zero, 0x001C($a0) ## 0000001C -.L80A130B0: -/* 00040 80A130B0 A48E001C */ sh $t6, 0x001C($a0) ## 0000001C -.L80A130B4: -/* 00044 80A130B4 8C8F0330 */ lw $t7, 0x0330($a0) ## 00000330 -/* 00048 80A130B8 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001 -/* 0004C 80A130BC 24180011 */ addiu $t8, $zero, 0x0011 ## $t8 = 00000011 -/* 00050 80A130C0 A1E20004 */ sb $v0, 0x0004($t7) ## 00000004 -/* 00054 80A130C4 A08201B8 */ sb $v0, 0x01B8($a0) ## 000001B8 -/* 00058 80A130C8 A08201B9 */ sb $v0, 0x01B9($a0) ## 000001B9 -/* 0005C 80A130CC 03E00008 */ jr $ra -/* 00060 80A130D0 A0980117 */ sb $t8, 0x0117($a0) ## 00000117 -``` - -(the commented numbers on the left are the original machine code, the middle the translation into MIPS assembly, the right useful information about the numbers in the code) -and turn it into compilable C code: - -```C -void func_80A13098(EnFirefly* this) { - if (this->actor.params == 4) { - this->actor.params = 0; - } else { - this->actor.params -= 2; - } - this->collider.list->body.atDmgInfo.effect = 1; - this->auraType = 1; - this->onFire = 1; - this->actor.naviEnemyId = 0x11; -} -``` - -which is intended to be as close to the original code as possible. We are doing *matching* decomp: in the right context, and with the right compiler settings, the above C compiles into *precisely* the assembly code above, not just equivalent code. - -N.B. We are using only publicly available code. In particular, we are not looking at any of the recent Nintendo source code leaks. (These apparently contain very little Ocarina of Time material anyway.) - -Progress of the project can be found at [https://zelda64.dev]. The long-term goal of this project is to obtain a complete compilable version of the code for every publicly released version of Ocarina of Time (there are also sister projects for Majora's Mask and other Zelda games). *We are not working on a PC Port, and this project will not be making one*, although the resulting code will be very useful if someone does intend to make such a port. - -Most of the discussion on the project takes place on the Zelda Decompilation Discord (linked in the README.md). We are very welcoming to newcomers and are happy to help you with any problems you might have with the decompilation process. - -## What do I need to know to take part? - -Basic knowledge of C, particularly arrays and pointers, is extremely useful. Knowledge of MIPS is not required initially, but if you are serious about decompilation you will soon pick up a lot of it. - -Knowledge of the fundamentals of git and GitHub is required. There are a number of tutorials available online, and a later document in this tutorial describes how you contribute to this project outside the actual decompilation process. - -The most useful knowledge to have is a general understanding of how the game works. An afternoon of constructive mucking about in the [Practice Rom](http://practicerom.com) (aka GZ) will be very beneficial if you have not looked at the game's subsurface workings before. - -## Structure of the code - -A lot of work has already been done on the code to bring it into a format that is easy to decompile. I will discuss actors, since this is where the majority of new people should begin. - -An *actor* is any thing in the game that moves or performs actions or interactions: Link is an actor, enemies are actors, NPCs are actors, props like grass are actors (Fishing is also an actor, the largest one, but you don't need to know about it). The vast majority of actors are *overlays*, which means they are loaded only when the game needs them. - -In the code, each actor is associated to several files: there is -- the main .c file, e.g. `src/overlays/actors/ovl_En_Firefly/z_en_firefly.c` -- the actor's Header file, e.g. `src/overlays/actors/ovl_En_Firefly/z_en_firefly.h` -- various .o files that tell the `make` script how to incorporate it into building the ROM, - -and then for undecompiled actors, various assembly (.s) files, generally including: -- one for the actor's *data* (this usually includes things like its collision information about how to draw it, and various other stuff that is used in it), e.g. `data/overlays/actors/z_en_firefly.data.s` -- one for each function in the actor, e.g. `asm/non_matchings/overlays/actors/ovl_En_Firefly/func_80A13098.s` - -The basic process of decomp is to take one of the .s files, run it through a decompilation program (mips_to_c) that reads the ASM very literally, and then, through humen ingenuity, reshape it into code that not only compiles in the first place, but completely matches the original code (well-written or otherwise). diff --git a/docs/tutorial/merging.md b/docs/tutorial/merging.md deleted file mode 100644 index fb51b8d58..000000000 --- a/docs/tutorial/merging.md +++ /dev/null @@ -1,97 +0,0 @@ -# The merging process - -## Optional: Documentation - -It is helpful to document the functions and variables in the actor before you Pull Request it. The aim is to provide code that is sufficiently clear to be self-documenting, but it is worth leaving a comment on anything you find obscure or confusing. (Pull Request reviews will let you know if you are leaving too many comments.) Useful things to do documentation-wise: - -- Name all (or most) of the functions. -- Name all the variables in the actor struct. -- Create enums for params, and any other numbers that would benefit from that sort of clarity. - -You can test things using the practice rom for a retail version (watches and memory view is especially helpful), as well as the generated rom with Project 64 and something like Spectrum. The most important things to know if using a retail version to test are: - -- all the addresses will be different -- actor structs in debug have 10 bytes of padding at the end, so subtract `0x10` from any subsequent offsets. - -If you want to use `diff` after renaming anything, particularly functions, remember to copy the `build/` folder into `expected/` so use the correct symbols. *Make sure that `make` gives `OK` before doing this, or you're going to get very confused.* - -Finally, *if you are not sure what something does, either ask or leave it unnamed: it will be less confusing later if things are unnamed than if they are wrongly named* - -## Preparing to PR - -### Change the `spec` - -Specifically, to use the automatically generated reloc, rather than the original. In the case of an entirely matched actor, you find the section relating to the actor that you edited before: - -``` -beginseg - name "ovl_En_Jj" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Jj/z_en_jj.o" - //include "$(BUILD_DIR)/data/overlays/actors/z_en_jj.data.o" - include "$(BUILD_DIR)/data/overlays/actors/z_en_jj.reloc.o" -endseg -``` - -and change to use our reloc: - -``` -beginseg - name "ovl_En_Jj" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Jj/z_en_jj.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Jj/ovl_En_Jj_reloc.o" -endseg -``` - -(copy the path, then copy the directory name and put `_reloc.o` after it). - -### Delete the asm files. - -We have a script that will detect and delete unused asm files, `find_unused_asm.py`. Running it bare will output a list of all the unused files, while passing `-d` will delete them. - -This does not distinguish comments, so remove all commented references to the files themselves first. If you have left the `#pragma` lines in but commented out, the following regular expression will find them: -``` -\n//.*#pragma .*?\) -``` - -### Non-matchings - -If you can't match a function even with everyone's, don't worry overlong about it. Hopefully you can get it to do the same thing as the original (non-matching), and then you set it up to use the original asm for the matching build, and your code for the non-matching. You can look at the other partially-matched actors to see how to set this up with `#ifdef`s. - -### Format - -Run the formatting script `format.py`, to format the C files in the standard way we use. - -### Merge main - -To make sure the PR builds correctly with the current main, you need to merge `upstream/main` before you make the PR. This tends to break things, that you have to fix to get it to compile correctly again. - -## Pull Requests - -Push commits to your fork of the repository on GitHub, and then open a pull request. Name the PR something sensible, like - -- `EnJj OK and documented` (if all the functions match and your documentation is fairly complete) -- `EnJj OK` (if all the functions match) -- `EnJj (n nonmatching)` (if you couldn't get one or more functions to work, but to the best of your knowledge they are equivalent code) -- `EnJj (1 nonequivalent)` (if you couldn't get one or more functions to work, and do not believe the code has the same effect) - -and so on, although these four tend to cover most cases. Feel free to add a comment describing anything interesting you had to do or issues in non-matchings, - - -### Reviews - -Pull requests may be reviewed by anyone (who knows enough about the conventions of the project), but all are usually reviewed by Fig and Roman. - -To implement suggestions made in reviews, it is generally easier to be consistent if you push more commits from your local branch. It is quite possible that in the meantime some other PR has gone in, and git will ask you to merge main before you add more commits. This is normally fairly painless, although often you have to resolve merge conflicts. If in doubt, backup your work before doing anything, and ask in Discord before doing anything drastic, or if you don't understand what git is telling you. - -There is no need to wait for your PR to be approved and committed before working on your next actor. - - -## Trello - -It's helpful to use the labels on Trello. -- RESERVED is obvious. -- Work in Progress is for when you're actively working on something -- Matched for when it is totally decompiled and matching -- Documented if at least everything is named and odd code is commented. We'll likely wipe these and start over when proper documentation begins. - -We now have a PR label on the Trello that you can use to indicate your actor is in a PR. When the actor is committed to main, you can move the actor into the `Decompiled Files (Overlays)` column: it goes at the top if there is a non-matching, and below if not. diff --git a/docs/tutorial/object_decomp.md b/docs/tutorial/object_decomp.md deleted file mode 100644 index 325239313..000000000 --- a/docs/tutorial/object_decomp.md +++ /dev/null @@ -1,174 +0,0 @@ -# Object Decompilation - -Object decompilation is the process of taking an object file and writing instructions to extract the various assets from it in the correct format, with appropriate labelling to distinguish their nature and/or use. - -## What is an object file? - -An object file is generally where most of the information used by overlays is stored. Its contents can include - -- Vertices (positional/normal/color data used by displaylists) -- Textures -- DisplayLists (instructions to the graphics processor on how to put together textures and vertices) -- Skeleton (The underlying structure of an actor's shape, that can be manipulated to change its "pose") -- Animations -- Prerendered backgrounds - -## How we work with objects - -Because these are regarded as copyrighted, we do not want them in the repository. We instead extract them from the ROM. To do this we use a system called ZAPD (Zelda Asset Processor for Decompilation). The main aim of object decompilation is to give ZAPD an XML file that tells it what the assets it is supposed to be extracting actually are, so it can put them in the right format and name them. - - -## How to decomp an object - -Choose an object to decomp. As usual, some will be easier than others. For reasons explained shortly, it is much easier to decomp an object if all actors that use it are decompiled. - -### Files and folders - -Select the XML file of your selected object, which should be in `assets/xml/objects/object_name.xml`. - -The ZAPD output will go in the folder `assets/objects/object_name/`. You'll want this folder open later to check the output is correct. - -### Examining actor files - -Most objects are used by at least one actor. For those used by an actor, we can use the script `tools/xmlcreate.py` on the actor to separate all the blobs of data in the object that we already know about. (While it is possible to do this manually, it is much simpler to run the script first and sort it out afterwards, since it won't miss anything accidentally.) - -Many objects have been added in an automated way, so most constituent parts of each object are already identified, but will still need to be named and documented properly. Also, these objects usually have some blobs unreferenced by the object's own contents and hence not automatically extracted; most of the time these can be identified by looking at references in the actor which uses said object. - -### Extracting assets - -You can run `extract_assets.py` to extract the object's assets. Running it with no arguments extracts *everything* all over again, though. A better way is to run it with `-s` (for single file), and give it the location of the object you want to extract relative to `assets`, i.e. - -```bash -./extract_assets.py -s objects/object_name -``` - -This should populate the folder you created earlier. ZAPD produces a C file containing the extracted object data, which will be `assets/objects/object_name/object_name.c`. Any data that you have not specified the type of, or is not referenced elsewhere in the object, is extracted as unknown blobs (usually named `unaccounted_XXXXXX`). Open the C file to see if there are any such blobs. (Some are just padding with 0s and can be ignored.) - -You now have to try and decipher these blobs using the [list of tools given below](#tools) to work out what they might be. In the case of unused parts of the object, this can be very difficult. - -### Naming - -A significant question is how deep into the object you want to explicitly categorise and name things. - -1. As a minimum, you need to include every piece of data that is directly accessed by another part of the repo (generally, but not always, actors). This allows for elimination of entries in [`undefined_syms.txt`](../../undefined_syms.txt). For most objects, this includes several of a skeleton, animations, some textures, and collision information. - -2. Naming display lists that are associated to limbs in the skeleton. This is usually straightforward, providing Z64Utils or Hylian Toolbox can show the skeleton properly. - -3. The next level is to name and give a format to any texture files that are produced from the extraction that are so far unnamed. - -4. If you really want to you can name the limbs themselves. - -5. In very rare cases, you may also want to name a particular set of vertices. - -Current naming practice is to name each item in the xml using camelCase as usual, with the `g` prefix (for "global"), and the type of data last (Skel, Anim, DL, Tex), while output texture files are named in `snake_case`. - -Each pass of a successive level will require extracting the single asset again. - -### Textures - -Textures are especially troublesome due to the abundance of formats they can be in. Some are simple RGBA textures, while others use external palettes, and can look meaningless without. If the texture is used in a displaylist, it will tell you the format, but if not, you have to use your best judgement based on anything you know about its context. - -The order of operations is that palettes are loaded first, then the texture, and then the vertices to which it is applied. - -The first argument of `gsDPLoadTextureBlock` tells you the offset, the second the format, the third the bit depth, fourth the width and fifth the height - -The following is a list of the texture formats the Nintendo 64 supports, with their gfxdis names and ZAPD format names. - - -| Format name | Typing in `gsDPLoadTextureBlock` | "Format" in xml | -| ----------------------------------------------- | -------------------------------- | --------------- | -| 4-bit intensity (I) | `G_IM_FMT_I, G_IM_SIZ_4b` | i4 | -| 4-bit intensity with alpha (I/A) (3/1) | `G_IM_FMT_IA, G_IM_SIZ_4b` | ia4 | -| 4-bit color index (CI) | `G_IM_FMT_CI, G_IM_SIZ_4b` | ci4 | -| 8-bit I | `G_IM_FMT_I, G_IM_SIZ_8b` | i8 | -| 8-bit IA (4/4) | `G_IM_FMT_IA, G_IM_SIZ_8b` | ia8 | -| 8-bit CI | `G_IM_FMT_CI, G_IM_SIZ_8b` | ci8 | -| 16-bit red, green, blue, alpha (RGBA) (5/5/5/1) | `G_IM_FMT_RGBA, G_IM_SIZ_16b` | rgba16 | -| 16-bit IA (8/8) | `G_IM_FMT_IA, G_IM_SIZ_16b` | ia16 | -| 16-bit YUV (Luminance, Blue-Y, Red-Y) | `G_IM_FMT_YUV, G_IM_SIZ_16b` | (not used) | -| 32-bit RGBA (8/8/8/8) | `G_IM_FMT_RGBA, G_IM_SIZ_32b` | rgba32 | - -The 4-bit formats are loaded using `gDPLoadTextureBlock_4b`. The others use `gDPLoadTextureBlock`. - -For example, - -```c -gsDPLoadTextureBlock(D_06006110, G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 16, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, 4, 4, 0, 0), -``` - -says that there is a texture at offset `0x6110`, its Format is `rgba16`, Width is `16` and Height is `16`, so we can declare - -```XML - -``` - -See [this web page](http://n64devkit.square7.ch/tutorial/graphics/3/3_3.htm) for more information about these formats, and [gSP functions](http://n64devkit.square7.ch/n64man/gsp/gSP_INDEX.htm) and [gDP functions](http://n64devkit.square7.ch/n64man/gdp/gDP_INDEX.htm) for more about the graphics functions used. - -The `ci` formats use palettes, which are declared separately. The shape you give the palette does not matter, but to avoid overlap errors it needs to fit into a rectangle; choose the one you think looks best. - -If in doubt, look at completed objects in the repo, and if still in doubt, ask. - -### Telling the repo to use the new files - -Just as when you decomp an actor you have to change the `spec` to tell it to use the new files, you have to do a similar thing for the object. Find the appropriate section for the object you have decompiled, and replace the line - -```c -include "$(BUILD_DIR)/baserom/object_name.o" -``` - -by - -```c -include "$(BUILD_DIR)/assets/objects/object_name/object_name.o" -number 6 -``` - -(the second line tells it to assign the object to segment 6 for the actors that use it: some objects use other segments, but you'll know this from the generated XML already: the `Segment` argument in the `File` tag will be different). - -Now, add - -```c -#include "assets/objects/object_name/object_name.h" -``` - -to every actor that uses the file, to tell it about the new symbols you have defined. - -Finally, replace all the symbols in the actors that use the file by the new names you gave them, and remove the corresponding sections in `undefined_syms.txt` and any `extern`s to the object's data in the actor files. - -If you did everything correctly, you should still get OK when running `make`. - -## Tools - -Object decompilation is essentially a descriptive process, but it requires that we know what each blob of data in the object file actually is, and sometimes, the actor files that use an object are not sufficient to determine what everything is. Therefore it is useful to have a battery of romhacking and examination tools to bring to bear on the file to read its contents. - -- The state-of-the-art is random's [Z64Utils](https://github.com/Random06457/Z64Utils). This can find and analyze the displaylists, textures and vertices in an object file, and even has an skeleton and animation viewer. It is not perfect; the best model viewer remains the debug rom itself. -- The old solution to look at skeletons and animations is [Hylian Toolbox](http://wiki.maco64.com/Tools/Hylian_Toolbox). This suffers from numerous issues, but is usually suitable for looking at object files that contain one skeleton and a few animations. -- To look at textures that you know something about, a texture viewer such as [Texture64](https://github.com/queueRAM/Texture64) is often useful. You may have trouble determining things like the palette a texture uses, depending on the format. - -## Building and investigative modding - -Thankfully it is not necessary to do a full make from clean to check that a particular object file has been decompiled successfully. - -- With a valid xml file, run `extract_assets.py -s` on its object. -- `make` - -If you want to change a texture, for example to see precisely where it is used, the following steps ensure it will be used in the build - -- Make sure the `spec` is updated to use the generated assets (see above) -- Change and save the texture -- Touch the C file in the same directory (that includes it) -- make -- Ironically, ERROR 1 implies success (your new texture has changed the checksum). - -If you'd rather not have it tell you about the checksum, you can run `make COMPARE=0` instead. - ---- - -To revert to the original texture, you can just run `extract_assets.py -s` on the object again. - -N.B. doing this will overwrite every custom texture, as will running `make setup`. - - -## Example - -An example of decompiling a particular object is given [here](object_decomp_example.md). diff --git a/docs/tutorial/object_decomp_example.md b/docs/tutorial/object_decomp_example.md deleted file mode 100644 index f7317bbdd..000000000 --- a/docs/tutorial/object_decomp_example.md +++ /dev/null @@ -1,258 +0,0 @@ -# Object Decompilation Example - -A fairly typical example of an NPC's object is `object_bg`. It is used by one actor: `ovl_En_Bom_Bowl_Man`. - -## First pass: getting it to compile - -Running `tools/xmlcreate.py` gives - -```xml -$ python3 tools/xmlcreate.py src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c chuGirl -Unknown type at offset 004110 -Unknown type at offset 004910 -Unknown type at offset 005110 - - - - - - - - - - - -``` - -We have two issues here that need to be resolved: naming the animations and sorting out the unknown things. - -### Animations - -You have three choices to work out what the animations are: - -- Read the code and look at them in the game. -- Hylian Toolbox -- The latest versions of Z64Utils - -The first of these is probably simplest if you know the game and the actor well. In this case, we know that she is dozing when you first enter, wakes up when you talk to her, then leans on the counter with both hands. We can thus name them accordingly. - -Hylian Toolbox is terrible, but good for quick-and-dirty things like finding out what a particular animation does without booting up the game. - -Z64Utils is way better than Hylian Toolbox, but still in development. - -### Unknowns - -Looking in the actor, the unknowns are assigned to segment 8 using `SEGMENTED_TO_VIRTUAL`. This indicates textures. To find out what type they are, we can find the displaylist that uses them, and look at it in Z64Utils: if we look at the object in the object analyser, then find the right displaylist, it will not display correctly in the DList viewer, asking for a texture to put on 08000000. Giving it one of the textures, we discover that it is the head displaylist and the textures are eye textures. Hence we can name them `gChuGirlEyeOpen/Half/ClosedTex` (we equivocate on half-open/half-closed since many actors use the half texture for both opening and closing). From the code in the displaylist that loads it, we can also extract the texture's format, namely - -```c -06002FD8: gsDPLoadTextureBlock(D_08000000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, 5, 5, 0, 0), -``` - -So all three are `Format="rgba16" Width="32" Height="32"`. - -```xml - - - - - - - - - - - - - - - - - - -``` - -Having got this far, we can now run - -```bash -./extract_assets.py -s objects/object_bg -``` - -to extract the contents of the object into the new folder, change the spec to use our newly extracted assets: - -```txt -beginseg - name "object_bg" - romalign 0x1000 - include "$(BUILD_DIR)/baserom/object_bg.o" -endseg -``` - -to - -```txt -beginseg - name "object_bg" - romalign 0x1000 - include "$(BUILD_DIR)/assets/objects/object_bg/object_bg.o" - number 6 -endseg -``` - -and wipe the `z_en_bom_bowl_man` section from `undefined_syms.txt`: - -```txt -// z_en_bom_bowl_man -D_06006EB0 = 0x06006EB0; -D_06000710 = 0x06000710; -D_06000080 = 0x06000080; -D_060072AC = 0x060072AC; -``` - -Now `make` should give OK. - -## The displaylists - -For this step, we use Hylian Toolbox; if you have more than one skeleton in your actor, Hylian Toolbox will only show the first one. The others can be examined in the latest version of Z64Utils. Z64Utils can also give you a list of every displaylist in an object, be it just for cross-checking or to find extras. - -Opening the rom in Hylian Toolbox and looking at object_bg, we can note down the displaylist associated to each limb. -In this case naming is easy: we just have to note down the limb each is attached to. We only need a name and offset, and we end up with: - -```xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -``` - -Checking the C file, these are all of the displaylists in the actor, so we can move on. - -## The rest of the textures - -This is the difficult bit: we have to work out what each texture in the extracted pile is actually used for. A lot of this can be done in Z64Utils, but sometimes it is necessary to check in-game, especially for the weirder-looking ones. You can edit a texture file and compile the rom (which shouldn't match any more if you did it successfully) to make it easier to find. - -```xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -``` - - -## Final pass - -Therefore, we end up with the following: -```xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -``` - -This was an easier object to do, both because it's a fairly simple collection of stuff associated to a single actor, and because a lot of the typing was already known. diff --git a/docs/tutorial/other_functions.md b/docs/tutorial/other_functions.md deleted file mode 100644 index 9c1916ee6..000000000 --- a/docs/tutorial/other_functions.md +++ /dev/null @@ -1,830 +0,0 @@ -# The rest of the functions in the actor - -Up: [Contents](contents.md) -Previous: [Beginning decompilation: the Init function and the Actor struct](beginning_decomp.md) - -## Now what? - -Following the scheme we gave last time, we have three options: -- `func_80A87BEC` -- `func_80A87C30` -- `func_80A87F44` - -Another option is to look at `Destroy`, which for smaller actors can often be done straight after Init, since it usually just removes colliders and deallocates dynapoly. However, glancing at the three given functions' assembly, there is an obvious standout: -```MIPS -glabel func_80A87F44 -/* 00744 80A87F44 AFA40000 */ sw $a0, 0x0000($sp) -/* 00748 80A87F48 03E00008 */ jr $ra -/* 0074C 80A87F4C AFA50004 */ sw $a1, 0x0004($sp) - -``` -This is a classic "function with two arguments that does nothing". So we can simply comment out the appropriate pragma and put -```C -void func_80A87F44(Actor* thisx, PlayState* play) { - -} -``` -in the C file. - -## Destroy - -Destroy will be a dead end, but we might as well do it now. Remaking the context and using mips2c on it (main 4 function, so change the prototype to use `EnJj* this`!) gives -```C -void EnJj_Destroy(EnJj *this, PlayState *play) { - PlayState *temp_a3; - s16 temp_v0; - - temp_v0 = this->dyna.actor.params; - temp_a3 = play; - if (temp_v0 == -1) { - play = temp_a3; - DynaPoly_DeleteBgActor(temp_a3, &temp_a3->colCtx.dyna, (s32) this->dyna.bgId); - Collider_DestroyCylinder(play, &this->collider); - return; - } - if ((temp_v0 != 0) && (temp_v0 != 1)) { - return; - } - DynaPoly_DeleteBgActor(temp_a3, &temp_a3->colCtx.dyna, (s32) this->dyna.bgId); -} -``` - -Again remember to return the first argument to `Actor* this` and put `EnJj* this = THIS;` in the function body. Based on what we know about this actor already, we expect this to be another switch. Rearranging it as such, and removing the likely fake `temp_v0` gives -```C -void EnJj_Destroy(Actor* thisx, PlayState* play) { - EnJj* this = THIS; - PlayState* temp_a3; - temp_a3 = play; - - switch (this->dyna.actor.params) { - case -1: - DynaPoly_DeleteBgActor(play, &play->colCtx.dyna, this->dyna.bgId); - Collider_DestroyCylinder(play, &this->collider); - break; - case 0: - case 1: - DynaPoly_DeleteBgActor(temp_a3, &temp_a3->colCtx.dyna, this->dyna.bgId); - break; - } -} -``` -Using `./diff.py -mwo3 EnJj_Destroy` shows that this matches already, but it seems like the temp usage should be more consistent. A little experimentation shows that -```C -void EnJj_Destroy(Actor* thisx, PlayState* play) { - EnJj* this = THIS; - - switch (this->dyna.actor.params) { - case -1: - DynaPoly_DeleteBgActor(play, &play->colCtx.dyna, this->dyna.bgId); - Collider_DestroyCylinder(play, &this->collider); - break; - case 0: - case 1: - DynaPoly_DeleteBgActor(play, &play->colCtx.dyna, this->dyna.bgId); - break; - } -} -``` - -also matches, with no need for the `PlayState*` temp. - -## Action Functions - -### `func_80A87BEC` - -Of the two functions we have available, `func_80A87BEC` is shorter, so we do that next. Since we haven't changed any types or header file information, there is no need to remake the context. mips2c gives -```C -void func_80A87BEC(EnJj *this, PlayState *play) { - if (this->dyna.actor.xzDistToPlayer < 300.0f) { - func_80A87800(this, &func_80A87B9C); - } -} -``` - -We see that this function just sets another action function when Link is close enough to the actor. All we have to do to this is remove the `&`, and prototype `func_80A87B9C` to be an action function. Notably, this time it is not used before it is defined, so we don't need a prototype at the top: putting a placeholder one in at the function position will do, i.e. our total edits this time are -```C -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Jj/func_80A87B9C.s") -void func_80A87B9C(EnJj *this, PlayState *play); - -// #pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Jj/func_80A87BEC.s") -void func_80A87BEC(EnJj *this, PlayState *play) { - if (this->dyna.actor.xzDistToPlayer < 300.0f) { - func_80A87800(this, func_80A87B9C); - } -} -``` - -We can now either follow this chain of action functions down, or start with the other one. We will go down in this case: it is usually easier to keep track that way. - -### `func_80A87B9C` - -We can remake the context, but it's simpler to just stick the function prototype we made at the bottom of the context. Either way, mips2c gives us -```C -void func_80A87B9C(EnJj *this, PlayState *play) { - s16 temp_v0; - - temp_v0 = this->unk308; - if ((s32) temp_v0 >= -0x1450) { - this->unk308 = (s16) (temp_v0 - 0x66); - if ((s32) this->unk308 < -0xA28) { - func_8003EBF8(play, &play->colCtx.dyna, this->childActor->unk14C); - } - } -} -``` -Here's a new variable for our actor struct! Don't be deceived by the `s32` cast in the comparison: mips2c always does that if it's not sure. The reliable one is the `s16` cast lower down. (An `s32` doesn't fit in the space we have anyway). So the actor struct is now -```C -typedef struct EnJj { - /* 0x0000 */ DynaPolyActor dyna; - /* 0x0164 */ SkelAnime skelAnime; - /* 0x01A8 */ Vec3s jointTable[22]; - /* 0x022C */ Vec3s morphTable[22]; - /* 0x02B0 */ ColliderCylinder collider; - /* 0x02FC */ EnJjActionFunc actionFunc; - /* 0x0300 */ Actor* childActor; - /* 0x0304 */ char unk_304[0x4]; - /* 0x0308 */ s16 unk_308; - /* 0x030A */ s16 unk_30A; - /* 0x030C */ char unk_30C[0x2]; - /* 0x030E */ s8 unk_30E; - /* 0x030F */ s8 unk_30F; - /* 0x0310 */ s8 unk_310; - /* 0x0311 */ s8 unk_311; - /* 0x0312 */ char unk_312[0x2]; -} EnJj; // size = 0x0314 -``` - -We can eliminate the temp since it's used in a simple way one after the other. `this->unk308 = (s16) (this->unk308 - 0x66);` can be written as `this->unk308 -= 0x66;`. - -In the `func_8003EBF8` we see that we should have at least made `this->childActor` a `DynaPolyActor*`, so that the last argument is its `bgId`. To avoid compiler warnings, we also need to cast the `Actor_SpawnAsChild` as such in Init, -```C -this->childActor = (DynaPolyActor*)Actor_SpawnAsChild(...) -``` - -Doing so, we are left with -```C -void func_80A87B9C(EnJj *this, PlayState *play) { - if (this->unk_308 >= -0x1450) { - this->unk_308 -= 0x66; - if (this->unk_308 < -0xA28) { - func_8003EBF8(play, &play->colCtx.dyna, this->childActor->bgId); - } - } -} -``` - -The diff shows this doesn't match: - -![func_80A87B9C diff 1](images/func_80A87B9C_diff1.png) - -It's not obvious why this doesn't match: the branching is correct, but it's loading stuff in the wrong order. Now is therefore a good time to introduce the permuter. - -### The permuter - -The permuter is a useful program for when you run out of ideas: it assigns a function a score based on how much it differs from the original code, then does random stuff that is known to improve matching, keeping ones that give better scores. It is not going to fix your control flow, but it does reasonably well on instruction differences and regalloc. It also has an option to worry about stack differences as well (`--stack-diffs`). - -To use the permuter, clone the decomp-permuter repo from the link given in Discord. First, import the C file and MIPS of the function to compare using -```sh -./import.py -``` - -It will put it in a subdirectory of `nonmatchings`. You then run -```sh -./permuter.py nonmatchings// -``` -to produce suggestions. There are various arguments that can be used, of which the most important initially is `-j`: `-jN` tells it to use `N` CPU threads. - -Suggestions are saved in the directory it imported the function into. - -![Permuter console output](images/permuter_console_output.png) - -The first suggestion looks plausible: -```C ---- before -+++ after -@@ -1390,12 +1390,14 @@ - } EnJj; - void func_80A87B9C(EnJj *this, PlayState *play) - { -- if (this->unk_308 >= (-0x1450)) -+ DynaPolyActor *new_var; -+ new_var = this->childActor; -+ if (this->unk_308 > ((-0x1450) - 1)) - { - this->unk_308 -= 0x66; - if (this->unk_308 < (-0xA28)) - { -- func_8003EBF8(play, &play->colCtx.dyna, this->childActor->bgId); -+ func_8003EBF8(play, &play->colCtx.dyna, new_var->bgId); - } - - } -``` - -In particular, adding a temp for the actor. Some of the rest is rather puzzling, but let's just try the actor temp, -```C -void func_80A87B9C(EnJj *this, PlayState *play) { - DynaPolyActor* child = this->childActor; - - if (this->unk_308 >= -0x1450) { - this->unk_308 -= 0x66; - if (this->unk_308 < -0xA28) { - func_8003EBF8(play, &play->colCtx.dyna, child->bgId); - } - } -} -``` - -![func_80A87B9C diff 2](images/func_80A87B9C_diff2.png) - -Hooray, that worked. The function now matches (as you can check by running `make -j`). In this case we are lucky and got a couple of 0s almost immediately. This will often not be the case, and you may have to go through multiple iterations to improve things. Or you get more ideas for what to do without the permuter necessarily doing everything for you. - -However, the hex values look a bit strange, and it turns out the decimal equivalents look less strange, so it's a good idea to translate them: -```C -void func_80A87B9C(EnJj *this, PlayState *play) { - DynaPolyActor* child = this->childActor; - - if (this->unk_308 >= -5200) { - this->unk_308 -= 102; - if (this->unk_308 < -2600) { - func_8003EBF8(play, &play->colCtx.dyna, child->bgId); - } - } -} -``` - -With that, we have reached the end of this action function chain, and now have to look at `func_80A87C30` - -### `func_80A87C30` - -Remaking the context and running mips2c on the assembly gives -```C -void func_80A87C30(EnJj *this, PlayState *play) { - if ((Math_Vec3f_DistXZ(&D_80A88CF0, play->unk1C44 + 0x24) < 300.0f) && (play->isPlayerDroppingFish(play) != 0)) { - this->unk_30C = 0x64; - func_80A87800(this, &func_80A87CEC); - } - this->collider.dim.pos.x = -0x4DD; - this->collider.dim.pos.y = 0x14; - this->collider.dim.pos.z = -0x30; - CollisionCheck_SetOC(play, &play->colChkCtx, (Collider *) &this->collider); -} -``` - -If you know anything about this game, this is obviously the function that begins the process of the swallowing Link cutscene. Performing minor cleanups reduces us to -```C -void func_80A87C30(EnJj *this, PlayState *play) { - if ((Math_Vec3f_DistXZ(&D_80A88CF0, play->unk1C44 + 0x24) < 300.0f) && (play->isPlayerDroppingFish(play) != 0)) { - this->unk_30C = 100; - func_80A87800(this, func_80A87CEC); - } - this->collider.dim.pos.x = -1245; - this->collider.dim.pos.y = 20; - this->collider.dim.pos.z = -48; - CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider); -} -``` - -There are three things left to do to this function: -- prototype the new action function, `func_80A87CEC`. This one is used before its definition, so needs to be prototyped at the top of the file. -- extern `D_80A88CF0`, and since the arguments of `Math_Vec3f_DistXZ` are `Vec3f`s, convert it to floats. To do float conversion, either use an online converter, or get an extension for VSCode that can do it. The data becomes -```C -extern Vec3f D_80A88CF0; -// static Vec3f D_80A88CF0 = { -1589.0f, 53.0f, -43.0f }; -``` -(you must include the `.0f` parts even for integer floats: it can affect codegen, and as such it is part of our style). - -- replace the mysterious `play->unk1C44 + 0x24`. The first part is so common that most people on decomp know it by heart: it is the location of the Player actor. `+ 0x24` is obviously an offset that leats to a `Vec3f`, and if you look in the actor struct, you find that this is the location of `world.pos`. To use `Player`, we put `Player* player = GET_PLAYER(play)` at the top of the function. - -**NOTE:** mips_to_c will now output something like `&play->actorCtx.actorLists[2].head` for the Player pointer instead: this makes a lot more sense, but is not so easy to spot in the ASM without the characteristic `1C44`. - -After all this, the function becomes -```C -void func_80A87C30(EnJj *this, PlayState *play) { - Player* player = GET_PLAYER(play); - - if ((Math_Vec3f_DistXZ(&D_80A88CF0, &player->actor.world.pos) < 300.0f) && (play->isPlayerDroppingFish(play) != 0)) { - this->unk_30C = 100; - func_80A87800(this, func_80A87CEC); - } - this->collider.dim.pos.x = -1245; - this->collider.dim.pos.y = 20; - this->collider.dim.pos.z = -48; - CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider); -} -``` - -One issue we have swept under the carpet thus far is what `unk_30C` is: we still have it as padding. For this we have to look at the MIPS, since mips2c hasn't told us. Scanning through the file, we find -```MIPS -/* 00498 80A87C98 A60E030C */ sh $t6, 0x030C($s0) ## 0000030C -``` - -which tells us that `unk_30C` is an `s16`, filling another gap in the struct: -```C -typedef struct EnJj { - /* 0x0000 */ DynaPolyActor dyna; - /* 0x0164 */ SkelAnime skelAnime; - /* 0x01A8 */ Vec3s jointTable[22]; - /* 0x022C */ Vec3s morphTable[22]; - /* 0x02B0 */ ColliderCylinder collider; - /* 0x02FC */ EnJjActionFunc actionFunc; - /* 0x0300 */ DynaPolyActor* childActor; - /* 0x0304 */ char unk_304[0x4]; - /* 0x0308 */ s16 unk_308; - /* 0x030A */ s16 unk_30A; - /* 0x030C */ s16 unk_30C; - /* 0x030E */ s8 unk_30E; - /* 0x030F */ s8 unk_30F; - /* 0x0310 */ s8 unk_310; - /* 0x0311 */ s8 unk_311; - /* 0x0312 */ char unk_312[0x2]; -} EnJj; // size = 0x0314 -``` - -The diff now looks fine for this function, but it gives compiler warnings about `CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider);`: the last argument is the wrong type: we need to give it `&this->collider.base` instead, which points to the same address, but is the right type. So the matching function is -```C -void func_80A87C30(EnJj *this, PlayState *play) { - Player* player = GET_PLAYER(play); - - if ((Math_Vec3f_DistXZ(&D_80A88CF0, &player->actor.world.pos) < 300.0f) && (play->isPlayerDroppingFish(play) != 0)) { - this->unk_30C = 100; - func_80A87800(this, func_80A87CEC); - } - this->collider.dim.pos.x = -1245; - this->collider.dim.pos.y = 20; - this->collider.dim.pos.z = -48; - CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider.base); -} -``` - -Again we have only one choice for our next function, namely `func_80A87CEC`. - -### `func_80A87CEC` - -Remaking the context and running mips2c on the assembly gives -```C -void func_80A87CEC(EnJj *this, PlayState *play) { - DynaPolyActor *sp1C; - DynaPolyActor *temp_v1; - s16 temp_v0; - - temp_v0 = this->unk_30C; - temp_v1 = this->childActor; - if ((s32) temp_v0 > 0) { - this->unk_30C = temp_v0 - 1; - return; - } - sp1C = temp_v1; - play = play; - func_80A87800(this, &func_80A87EF0); - play->csCtx.script = &D_80A88164; - gSaveContext.cutsceneTrigger = (u8)1U; - func_8003EBF8(play, &play->colCtx.dyna, (s32) temp_v1->bgId); - Camera_SetFinishedFlag(play->cameraPtrs[play->activeCamId]); - gSaveContext.unkEDA = (u16) (gSaveContext.unkEDA | 0x400); - Sfx_PlaySfxCentered((u16)0x4802U); -} -``` - -Easy things to sort out: - -- `func_80A87EF0` is another action function. Again it is defined below, so needs a prototype at the top. - -- We have another unknown symbol, `D_80A88164`. This is the massive chunk of data that makes up the cutscene (of Jabu swallowing Link). We will worry about it when we have decompiled the rest of the actor. For now just extern it as `UNK_TYPE`. - -- We can remove the casts from `(u8)1U` and just leave `1`. - -- `play->cameraPtrs[play->activeCamId]` has a macro: it is `GET_ACTIVE_CAM(play)`, so this line can be written as -```C -Camera_SetFinishedFlag(GET_ACTIVE_CAM(play)); -``` - -- `gSaveContext.unkEDA` we have dealt with before: it is `gSaveContext.save.info.eventChkInf[3]`. This is a flag-setting function; it can be written more compactly as -```C -gSaveContext.unkEDA |= 0x400 -``` - -- The last function is an audio function: we can look up the argument in `sfx.h` and find it is `NA_SE_SY_CORRECT_CHIME` - -It remains to work out which, if any, of the temps are real. Based on our previous experience, we expect `temp_v1` to be real. `sp1C` is unused and hence unlikely to be real. `temp_v0` is only used in the short if and so probably not real. Checking the diff shows that our suspicions were correct: -```C -void func_80A87CEC(EnJj *this, PlayState *play) { - DynaPolyActor *child = this->childActor; - if (this->unk_30C > 0) { - this->unk_30C--; - return; - } - func_80A87800(this, func_80A87EF0); - play->csCtx.script = &D_80A88164; - gSaveContext.cutsceneTrigger = 1; - func_8003EBF8(play, &play->colCtx.dyna, child->bgId); - Camera_SetFinishedFlag(GET_ACTIVE_CAM(play)); - gSaveContext.save.info.eventChkInf[3] |= 0x400; - Sfx_PlaySfxCentered(NA_SE_SY_CORRECT_CHIME); -} -``` - -matches, but generates a complier warning for `Camera_SetFinishedFlag`, which it can't find. To fix this, add it to `functions.h`, in as near as possible the correct position in numerical order. Some detective work with VSCode's Search shows that this function lives in `z_camera.c`, and its prototype is `s16 Camera_SetFinishedFlag(Camera* camera)`, so add this line to `functions.h` at the bottom of the camera functions part. - -Lastly, we prefer to limit use of early `return`s, and use `else`s instead if possible. That applies here: the function can be rewritten as -```C -void func_80A87CEC(EnJj* this, PlayState* play) { - DynaPolyActor* child = this->childActor; - if (this->unk_30C > 0) { - this->unk_30C--; - } else { - func_80A87800(this, func_80A87EF0); - play->csCtx.script = &D_80A88164; - gSaveContext.cutsceneTrigger = 1; - func_8003EBF8(play, &play->colCtx.dyna, child->bgId); - Camera_SetFinishedFlag(GET_ACTIVE_CAM(play)); - gSaveContext.save.info.eventChkInf[3] |= 0x400; - Sfx_PlaySfxCentered(NA_SE_SY_CORRECT_CHIME); - } -} -``` - -and still match. (Early `return`s are used after an `Actor_Kill` and in a few other situations, but generally avoided for `else`s elsewhere if possible. Talking of which...) - -## `func_80A87EF0` - -mips2c with updated context gives -```C -void func_80A87EF0(EnJj *this, PlayState *play) { - char *temp_a0; - u16 temp_v0; - - temp_v0 = (u16) this->unk_30A; - if ((temp_v0 & 4) == 0) { - this->unk_30A = temp_v0 | 4; - temp_a0 = this->unk_304; - if (temp_a0 != 0) { - this = this; - Actor_Kill((Actor *) temp_a0); - this->dyna.actor.child = NULL; - } - } -} -``` - -Now we're a bit stuck: this tells us that `this->unk_304` is an `Actor*`, but we know nothing else about it. So just make it an actor for the time being. As before, `this->unk_304` is a pointer, so we should compare `temp_a0` to `NULL`. - -We also find in the MIPS -```MIPS -lhu $v0, 0x030A($a0) -``` -which at last tells us that `unk_30A` is actually a `u16`. We can now eliminate `temp_v0`, and replace the ` == 0` by a `!(...)`, which leaves -```C -void func_80A87EF0(EnJj *this, PlayState *play) { - Actor *temp_a0; - - if (!(this->unk_30A & 4)) { - this->unk_30A |= 4; - temp_a0 = this->unk_304; - if (temp_a0 != 0) { - Actor_Kill(temp_a0); - this->dyna.actor.child = NULL; - } - } -} -``` -although we are as yet none the wiser as to which actor `unk_304` actually points to. - -Again we have run out of action functions. The rules suggest that we now look at Update. - -## Update - -Update runs every frame and updates the properties of the actor, and usually runs the action functions once per frame. As before we change the first argument to `EnJj* this` to get it to use our actor's struct. mips2c gives -```C -void EnJj_Update(EnJj *this, PlayState *play) { - if ((play->csCtx.state != CS_STATE_IDLE) && (play->unk1D94 != 0)) { - func_80A87D94(); - } else { - this->actionFunc(this); - if (this->skelAnime.curFrame == 41.0f) { - Actor_PlaySfx((Actor *) this, (u16)0x28B6U); - } - } - func_80A87B1C(this); - SkelAnime_Update(&this->skelAnime); - Actor_SetScale((Actor *) this, 0.087f); - this->skelAnime.jointTable->unk40 = (s16) this->unk_308; -} -``` - -This has several problems: firstly, the action function is called with the wrong argument. We should thus be suspicious of previous functions this actor calls, and decompile them mith mips2c without context if necessary, if only to find out how many arguments they have. We find that `func_80A87D94` definitely takes `EnJj* this, PlayState* play` as arguments. Again, put this prototype at the function location above to avoid compiler warnings. - -`unk40` of an array of `Vec3s`s is `0x40 = 0x6 * 0xA + 0x4`, so is actually `this->skelAnime.jointTable[10].z` - -Lastly, what is `play->unk1D94`? It is at `play->csCtx + 0x30`, or `play->csCtx.actorCues + 0x8`, which is `play->csCtx.actorCues[2]` since this is an array of pointers. Hence it is a pointer, and so should be compared to `NULL`. Looking up the sfx Id again, we end up with -```C -void EnJj_Update(Actor *thisx, PlayState *play) { - EnJj* this = THIS; - - if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.actorCues[2] != NULL)) { - func_80A87D94(this, play); - } else { - this->actionFunc(this, play); - if (this->skelAnime.curFrame == 41.0f) { - Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_JABJAB_GROAN); - } - } - func_80A87B1C(this); - SkelAnime_Update(&this->skelAnime); - Actor_SetScale(&this->dyna.actor, 0.087f); - this->skelAnime.jointTable[10].z = this->unk_308; -} -``` -which matches. - - -3 more functions to go: the two functions called here, and Draw. - - -## `func_80A87B1C` - -Now our typing problems come home to roost: - -```C -void func_80A87B1C(EnJj *this) { - s8 temp_t8; - u8 temp_v0; - u8 temp_v0_2; - - temp_v0 = (u8) this->unk_30F; - if ((s32) temp_v0 > 0) { - this->unk_30F = temp_v0 - 1; - return; - } - temp_t8 = (u8) this->unk_30E + 1; - this->unk_30E = temp_t8; - if ((temp_t8 & 0xFF) >= 3) { - temp_v0_2 = (u8) this->unk_310; - this->unk_30E = 0; - if ((s32) temp_v0_2 > 0) { - this->unk_310 = temp_v0_2 - 1; - return; - } - this = this; - this->unk_30F = Rand_S16Offset((u16)0x14, (u16)0x14); - this->unk_310 = (s8) (u8) this->unk_311; - } -} -``` - -From this we can read off that `unk_30F` is a `u8`, `unk_30E` is a `u8`, `unk_310` is a `u8`, and `unk_311` is a `u8`. Giving mips2c new context and trying again, -```C -void func_80A87B1C(EnJj *this) { - u8 temp_t8; - u8 temp_v0; - u8 temp_v0_2; - - temp_v0 = this->unk_30F; - if ((s32) temp_v0 > 0) { - this->unk_30F = temp_v0 - 1; - return; - } - temp_t8 = this->unk_30E + 1; - this->unk_30E = temp_t8; - if ((temp_t8 & 0xFF) >= 3) { - temp_v0_2 = this->unk_310; - this->unk_30E = 0; - if ((s32) temp_v0_2 > 0) { - this->unk_310 = temp_v0_2 - 1; - return; - } - this = this; - this->unk_30F = Rand_S16Offset((u16)0x14, (u16)0x14); - this->unk_310 = this->unk_311; - } -} -``` -and all the weird casts are gone. Eliminating the temps, replacing the hex, discarding pointless definitions, and replacing early `return`s by `else`s, we end up with -```C -void func_80A87B1C(EnJj* this) { - if (this->unk_30F > 0) { - this->unk_30F--; - } else { - this->unk_30E++; - if ((this->unk_30E & 0xFF) >= 3) { - this->unk_30E = 0; - if (this->unk_310 > 0) { - this->unk_310--; - } else { - this->unk_30F = Rand_S16Offset(20, 20); - this->unk_310 = this->unk_311; - } - } - } -} -``` - -Sadly this doesn't match: - -![func_80A87B1C diff 1](images/func_80A87B1C_diff1.png) - -You will also find that the permuter is essentially useless here: most solutions it offers look very fake. But there's already something a bit weird in here: why does it do `this->unk_30E & 0xFF` explicitly in the comparison? It turns out if you remove this, the function matches: the compiler does this calculation automatically when doing comparisons with `u8`s anyway. - -![func_80A87B1C diff 2](images/func_80A87B1C_diff2.png) - -### `func_80A87D94` - -This is our last ordinary function. Unfortunately, even with new context, mips2c gives us a bit of a mess: -```C -void func_80A87D94(EnJj *this, PlayState *play) { - s16 temp_v0_2; - u16 temp_t1; - u16 temp_t4; - u16 temp_t7; - u16 temp_t9; - u16 temp_v0; - u16 temp_v1; - u16 temp_v1_2; - u16 temp_v1_3; - u16 phi_v1; - - temp_v0 = *play->unk1D94; - if (temp_v0 != 1) { - if (temp_v0 != 2) { - if (temp_v0 != 3) { - phi_v1 = this->unk_30A; - } else { - temp_v1 = this->unk_30A; - temp_t7 = temp_v1 | 2; - phi_v1 = temp_v1; - if ((temp_v1 & 2) == 0) { - this->unk_30E = 0; - this->unk_30F = 0; - this->unk_310 = 1; - this->unk_311 = 0; - this->unk_30A = temp_t7; - phi_v1 = temp_t7 & 0xFFFF; - } - } - } else { - temp_t1 = this->unk_30A | 1; - temp_v1_2 = temp_t1 & 0xFFFF; - this->unk_30A = temp_t1; - phi_v1 = temp_v1_2; - if ((temp_v1_2 & 8) == 0) { - this->unk_304 = Actor_SpawnAsChild(&play->actorCtx, (Actor *) this, play, (u16)0x101, -1100.0f, 105.0f, -27.0f, 0, 0, 0, 0); - temp_t4 = this->unk_30A | 8; - this->unk_30A = temp_t4; - phi_v1 = temp_t4 & 0xFFFF; - } - } - } else { - temp_v1_3 = this->unk_30A; - phi_v1 = temp_v1_3; - if ((temp_v1_3 & 2) != 0) { - this->unk_30E = 0; - this->unk_30F = Rand_S16Offset((u16)0x14, (u16)0x14); - this->unk_310 = 0; - temp_t9 = this->unk_30A ^ 2; - this->unk_311 = 0; - this->unk_30A = temp_t9; - phi_v1 = temp_t9 & 0xFFFF; - } - } - if ((phi_v1 & 1) != 0) { - Actor_PlaySfx((Actor *) this, (u16)0x206DU); - temp_v0_2 = this->unk_308; - if ((s32) temp_v0_2 >= -0x1450) { - this->unk_308 = temp_v0_2 - 0x66; - } - } -} -``` - -At the top we have -```C - temp_v0 = *play->unk1D94; - if (temp_v0 != 1) { - if (temp_v0 != 2) { - if (temp_v0 != 3) { -``` -Firstly, we are now comparing with the value of `play->unk1D94`, not just using a pointer, so we need the first thing in `play->csCtx.actorCues[2]`. This turns out to be `play->csCtx.actorCues[2]->id`. - -The if structure here is another classic indicator of a switch: nested, with the same variable compared multiple times. If you were to diff this as-is, you would find that the code is in completely the wrong order. Reading how the ifs work, we see that if `temp_v0` is `1`, it executes the outermost else block, if it is `2`, the middle, if `3`, the innermost, and if it is anything else, the contents of the innermost if. Hence this becomes -```C -void func_80A87D94(EnJj *this, PlayState *play) { - s16 temp_v0_2; - u16 temp_t1; - u16 temp_t4; - u16 temp_t7; - u16 temp_t9; - // u16 temp_v0; - u16 temp_v1; - u16 temp_v1_2; - u16 temp_v1_3; - u16 phi_v1; - - switch (play->csCtx.actorCues[2]->id) { - case 1: - temp_v1_3 = this->unk_30A; - phi_v1 = temp_v1_3; - if ((temp_v1_3 & 2) != 0) { - this->unk_30E = 0; - this->unk_30F = Rand_S16Offset((u16)0x14, (u16)0x14); - this->unk_310 = 0; - temp_t9 = this->unk_30A ^ 2; - this->unk_311 = 0; - this->unk_30A = temp_t9; - phi_v1 = temp_t9 & 0xFFFF; - } - break; - case 2: - temp_t1 = this->unk_30A | 1; - temp_v1_2 = temp_t1 & 0xFFFF; - this->unk_30A = temp_t1; - phi_v1 = temp_v1_2; - if ((temp_v1_2 & 8) == 0) { - this->unk_304 = Actor_SpawnAsChild(&play->actorCtx, (Actor *) this, play, (u16)0x101, -1100.0f, 105.0f, -27.0f, 0, 0, 0, 0); - temp_t4 = this->unk_30A | 8; - this->unk_30A = temp_t4; - phi_v1 = temp_t4 & 0xFFFF; - } - break; - case 3: - temp_v1 = this->unk_30A; - temp_t7 = temp_v1 | 2; - phi_v1 = temp_v1; - if ((temp_v1 & 2) == 0) { - this->unk_30E = 0; - this->unk_30F = 0; - this->unk_310 = 1; - this->unk_311 = 0; - this->unk_30A = temp_t7; - phi_v1 = temp_t7 & 0xFFFF; - } - break; - default: - phi_v1 = this->unk_30A; - break; - } - if ((phi_v1 & 1) != 0) { - Actor_PlaySfx((Actor *) this, (u16)0x206DU); - temp_v0_2 = this->unk_308; - if ((s32) temp_v0_2 >= -0x1450) { - this->unk_308 = temp_v0_2 - 0x66; - } - } -} -``` -(notice that this time we need a `default` to deal with the innermost if contents). If you try to replace `0x206D` in the `Actor_PlaySfx`, you will find there is no such sfxId in the list: this is because some sound effects have an extra offset of `0x800` to do with setting flags. Adding `0x800` to the sfxId shows that this sound effect is `NA_SE_EV_JABJAB_BREATHE`. To correct this to the id in the function, we have a macro `SFX_FLAG`, and it should therefore be -```C -Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_JABJAB_BREATHE - SFX_FLAG); -``` - -As usual, most of the remaining temps look fake. The only one that does not is possibly `phi_v1`. However, the way in which they are used here makes it hard to tell if they are fake, and if so, how to replace them. I encourage you to try this yourself, with the aid of the diff script; the final, matching result, with other cleanup, is hidden below - -

SK^%J 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