From 321388673b4a3e763d23dec16e08e9c513869de4 Mon Sep 17 00:00:00 2001 From: krimtonz <33664508+krimtonz@users.noreply.github.com> Date: Sun, 6 Dec 2020 16:39:47 -0600 Subject: [PATCH] decompile z_camera (#398) * cleanup * name camera action functions * decompile a few small functions, name a few Camera struct members * decompile camera data, decompile a few camera functions * Split ASM for code_800BB0A0 * removing code_800BB0A0.s * PR Requests, Camera WIP * remove #define NON_MATCHING from db_camera * rename code_8007BF90.c to z_olib.c, rename functions in z_olib.c * camera wip * rename some struct memebers, some decomp wip * pr updates * camera wip * name some fields in Camera Struct, being making sense of Camera_Update * Camera WIP * wip * wip * add z64camera.h header, begin creating CameraSetting macros * wip * wip * wip * wip * migrate camera bss to c * match a couple functions in db_camera * match some small db_camera functions * wip * migrate db_camera rodata, match a few functions * remote db_camera.rodata.s * match some of db_camera * identify types of some unknown data pieces * some small wip * Match Camera_Init, some function changes, some struct name changes. Change unk_C0 and unk_CC to floats from Vec3fs * add naming for a few more Camera struct members * wip * match func_80043F94 * Match Camera_Jump1 * document some of Camera_Jump1 * wip * match Camera_Jump3 * Match Camera_Update, FeelsAmazing * wip * wip * match Camera_SetParam * minor cleanup * wip * wip * match Camera_KeepOn0 * some documentation, modify some matching functions to match style of others. * match Camera_Demo1 * match camera_demo9 * document Camera_Demo1 and Camera_Demo9 * wip * Match camera_battle4 * match camera_unique2 * Match Camera_Unique3 * match camera_special6 * match Camera_Special5 * wip * document camera_special6 * naming updates * match camera_Unique1 * match Camera_Unique0 * wip * Match Camera_CalcUpFromPitchYawRoll * match func_80045508 * document Camera_Battle4 * document several camera functions, move camera data to separate file * rename phi/theta to pitch/yaw * wip * uniq9 wip * Camera_Unqiue9 OK * document Camera_Unique9 * name unk_160 in camera struct * wip * wip * minor updates * fix conflicts * wip * wip * Olib updates * wip * wip * rename most Math3D functions, few matches, documentation * wip * document most of math3d * wip * wip * wip * pr updates * Match Camera_Fixed4 * match func_80058E8C * pr updates * add missing comment block finalizer * Merge math3dupdates * match Camera_ChangeSetting * Match Camera_ChangeMode * match func_80058148 * Match Camera_Special9 * decompile the rest of camera data * match Camera_Demo5 * name a few camera functions in z_play * match func_80046CB4, some work on other fucntions * wip * impove some non matchings * fix function rename * match func_800588B4 * match Camera_Subj4 * wip * Camera_Demo3 matching, Camera_Battle1 big progress * Camera_Normal2 OK * wip * match Camera_Parallel1 * normalize some things across functions * match Camera_Normal1 * Match Camera_Normal3 * some cleanup * more cleanup * more cleanup , match Camera_CalcDefaultPitch * data formatting * Match Camera_Jump2 * document Camera_Jump2 * Match Camera_KeepOn3 * document some of Camera_KeepOn3 * improve some non_matchings * match func_80045C74 and func_800460A8 * code cleanup, documentation * match Camera_KeepOn1 * Match Camera_Subj3 * Match Camera_Battle1 * remove non_matching from func_80044adc and func_80046e20 * name several members of Battle1 * more documentation on Battle1 * cleanup * renaming Camera_Vec3fScaleXYZFactor to Camera_Vec3fTranslateByUnitVector * reorganize update structs, remove final references to params, remove CameraParams union * implement camera enums into player * Renaming Camera_GetDir to Camera_GetInputDir, Camera_GetRealDir to Camera_GetCamDir, etc, implement camera enum's into player * remove non-global camera variables from variables.h * clean up some variable declarations * finish pr comment updates * fix some warnings * data formatting * finish commenting on data * delete unused asm * remove asm Co-authored-by: fig --- .../{func_800B4E7C.s => DbgCamera_Update.s} | 126 +- .../code/db_camera/func_800B3B50.s | 35 - .../code/db_camera/func_800B3EBC.s | 18 - .../code/db_camera/func_800B3EFC.s | 17 - .../code/db_camera/func_800B3F38.s | 9 - .../code/db_camera/func_800B3F54.s | 18 - .../code/db_camera/func_800B3F94.s | 26 - .../code/db_camera/func_800B3FF4.s | 24 - .../code/db_camera/func_800B404C.s | 17 - .../code/db_camera/func_800B44E0.s | 218 + .../code/db_camera/func_800B4920.s | 86 - .../code/db_camera/func_800B4A68.s | 6 + .../code/db_camera/func_800B4AA8.s | 6 + .../code/db_camera/func_800B4AE4.s | 6 + .../code/db_camera/func_800B4B20.s | 106 + .../code/db_camera/func_800B4D58.s | 37 - .../code/db_camera/func_800B4DE4.s | 40 - .../code/db_camera/func_800B8730.s | 57 - .../code/db_camera/func_800B87D8.s | 40 +- .../code/db_camera/func_800B8978.s | 41 - .../code/db_camera/func_800B8A0C.s | 4 +- .../{func_800B8BA4.s => func_800B8BB0.s} | 165 +- .../code/db_camera/func_800B8DB0.s | 104 + .../code/db_camera/func_800B8F58.s | 4 +- .../code/db_camera/func_800B9060.s | 89 - .../code/db_camera/func_800B91B0.s | 4 +- .../code/db_camera/func_800B958C.s | 47 - .../code/db_camera/func_800B9638.s | 66 +- .../code/z_camera/Camera_Battle1.s | 1210 -- .../code/z_camera/Camera_Battle4.s | 299 - .../code/z_camera/Camera_ChangeMode.s | 361 - .../code/z_camera/Camera_ChangeSetting.s | 166 - .../code/z_camera/Camera_ChangeStatus.s | 125 - .../z_camera/Camera_CopyModeValuesToPREG.s | 91 - .../z_camera/Camera_CopyPREGToModeValues.s | 74 - .../code/z_camera/Camera_Data4.s | 236 - .../code/z_camera/Camera_Demo1.s | 209 - .../code/z_camera/Camera_Demo3.s | 800 -- .../code/z_camera/Camera_Demo5.s | 705 -- .../code/z_camera/Camera_Demo6.s | 204 - .../code/z_camera/Camera_Demo9.s | 329 - .../code/z_camera/Camera_Fixed1.s | 230 - .../code/z_camera/Camera_Fixed2.s | 282 - .../code/z_camera/Camera_Fixed3.s | 181 - .../code/z_camera/Camera_Fixed4.s | 260 - .../code/z_camera/Camera_Jump1.s | 576 - .../code/z_camera/Camera_Jump2.s | 747 -- .../code/z_camera/Camera_Jump3.s | 604 - .../code/z_camera/Camera_KeepOn0.s | 222 - .../code/z_camera/Camera_KeepOn1.s | 1097 -- .../code/z_camera/Camera_KeepOn3.s | 726 -- .../code/z_camera/Camera_KeepOn4.s | 78 +- .../code/z_camera/Camera_Normal1.s | 838 -- .../code/z_camera/Camera_Normal2.s | 617 - .../code/z_camera/Camera_Normal3.s | 545 - .../code/z_camera/Camera_Parallel1.s | 675 - ...func_800584E8.s => Camera_PrintSettings.s} | 6 +- .../code/z_camera/Camera_SetParam.s | 162 - .../code/z_camera/Camera_Special4.s | 109 - .../code/z_camera/Camera_Special5.s | 302 - .../code/z_camera/Camera_Special6.s | 326 - .../code/z_camera/Camera_Special7.s | 238 - .../code/z_camera/Camera_Special9.s | 509 - .../code/z_camera/Camera_Subj3.s | 444 - .../code/z_camera/Camera_Subj4.s | 439 - .../code/z_camera/Camera_Unique0.s | 377 - .../code/z_camera/Camera_Unique1.s | 398 - .../code/z_camera/Camera_Unique2.s | 296 - .../code/z_camera/Camera_Unique3.s | 361 - .../code/z_camera/Camera_Unique7.s | 163 - .../code/z_camera/Camera_Unique9.s | 1557 --- .../code/z_camera/func_80043F94.s | 252 - .../code/z_camera/func_80044568.s | 137 - .../code/z_camera/func_80044ADC.s | 256 - .../code/z_camera/func_80044E68.s | 145 - .../code/z_camera/func_80045350.s | 78 - .../code/z_camera/func_80045508.s | 143 - .../code/z_camera/func_80045714.s | 39 - .../code/z_camera/func_800458D4.s | 161 - .../code/z_camera/func_80045C74.s | 312 - .../code/z_camera/func_800460A8.s | 475 - .../code/z_camera/func_80046B44.s | 106 - .../code/z_camera/func_80046CB4.s | 107 - .../code/z_camera/func_80046E20.s | 377 - .../code/z_camera/func_80057C6C.s | 237 - .../code/z_camera/func_80058148.s | 143 - .../code/z_camera/func_800588B4.s | 312 - .../code/z_camera/func_80058E8C.s | 273 - .../code/z_camera/func_800591EC.s | 940 -- .../code/z_camera/func_8005A7A8.s | 87 - .../code/z_camera/func_8005A8C4.s | 38 - .../code/z_camera/func_8005A970.s | 27 - .../code/z_onepointdemo/func_8007C850.s | 88 +- .../code/z_onepointdemo/func_80080480.s | 6 +- asm/non_matchings/code/z_play/Gameplay_Draw.s | 6 +- asm/non_matchings/code/z_play/Gameplay_Init.s | 10 +- .../code/z_play/Gameplay_Update.s | 8 +- .../actors/ovl_Bg_Haka_Gate/func_8087C85C.s | 2 +- .../actors/ovl_Bg_Hidan_Rock/func_8088B634.s | 2 +- .../actors/ovl_Bg_Hidan_Rock/func_8088B79C.s | 70 +- .../actors/ovl_Bg_Hidan_Rock/func_8088B990.s | 98 +- .../actors/ovl_Bg_Hidan_Rock/func_8088BC40.s | 2 +- .../BgHidanSekizou_Draw.s | 4 +- .../ovl_Bg_Hidan_Sekizou/func_8088DC50.s | 2 +- .../actors/ovl_Bg_Hidan_Sima/func_8088E518.s | 2 +- .../ovl_Bg_Spot00_Hanebasi/func_808AA2B0.s | 2 +- .../ovl_Bg_Sst_Floor/BgSstFloor_Update.s | 184 +- .../actors/ovl_Boss_Dodongo/func_808C1D00.s | 2 +- .../actors/ovl_Boss_Dodongo/func_808C3704.s | 4 +- .../actors/ovl_Boss_Dodongo/func_808C5578.s | 4 +- .../actors/ovl_Boss_Fd/func_808CB198.s | 2 +- .../actors/ovl_Boss_Fd2/func_808D3F58.s | 2 +- .../actors/ovl_Boss_Ganon/func_808D7918.s | 4 +- .../actors/ovl_Boss_Ganon/func_808D933C.s | 2 +- .../actors/ovl_Boss_Ganon/func_808E3564.s | 2 +- .../actors/ovl_Boss_Ganon2/func_808FD5F4.s | 2 +- .../actors/ovl_Boss_Ganon2/func_80900890.s | 2 +- .../actors/ovl_Boss_Ganon2/func_8090120C.s | 2 +- .../actors/ovl_Boss_Ganondrof/func_80912D2C.s | 2 +- .../actors/ovl_Boss_Goma/func_80916C9C.s | 4 +- .../actors/ovl_Boss_Goma/func_80917D98.s | 2 +- .../actors/ovl_Boss_Mo/func_8091C538.s | 4 +- .../actors/ovl_Boss_Mo/func_8091F5A8.s | 4 +- .../actors/ovl_Boss_Mo/func_809206C4.s | 2 +- .../actors/ovl_Boss_Sst/func_8092CB0C.s | 2 +- .../actors/ovl_Boss_Sst/func_8092CC58.s | 6 +- .../actors/ovl_Boss_Sst/func_8092ED9C.s | 2 +- .../actors/ovl_Boss_Sst/func_8092EF28.s | 2 +- .../actors/ovl_Boss_Sst/func_8092F0BC.s | 2 +- .../actors/ovl_Boss_Sst/func_8092F8F0.s | 2 +- .../actors/ovl_Boss_Tw/func_8093C910.s | 4 +- .../actors/ovl_Boss_Tw/func_8093D5C0.s | 2 +- .../actors/ovl_Boss_Tw/func_8093F9E4.s | 2 +- .../overlays/actors/ovl_Boss_Va/BossVa_Init.s | 2 +- .../actors/ovl_Boss_Va/func_80950780.s | 2 +- .../actors/ovl_Boss_Va/func_809533F4.s | 2 +- .../actors/ovl_Boss_Va/func_8095438C.s | 2 +- .../actors/ovl_Demo_6K/func_809688C4.s | 2 +- .../actors/ovl_Door_Warp1/func_80999EE0.s | 4 +- .../actors/ovl_Door_Warp1/func_80999FE4.s | 2 +- .../overlays/actors/ovl_En_Bb/EnBb_Draw.s | 2 +- .../ovl_En_Bigokuta/EnBigokuta_Update.s | 78 +- .../actors/ovl_En_Bigokuta/func_809BE26C.s | 86 +- .../actors/ovl_En_Bili/func_809C13A8.s | 2 +- .../ovl_En_Clear_Tag/EnClearTag_Update.s | 2 +- .../actors/ovl_En_Diving_Game/func_809EE1F4.s | 4 +- .../actors/ovl_En_Diving_Game/func_809EE408.s | 2 +- .../overlays/actors/ovl_En_Go/func_80A3F15C.s | 64 +- .../actors/ovl_En_Go2/func_80A4561C.s | 74 +- .../actors/ovl_En_Go2/func_80A462D8.s | 2 +- .../actors/ovl_En_Holl/func_80A59014.s | 108 +- .../actors/ovl_En_Honotrap/func_80A5AD28.s | 2 +- .../actors/ovl_En_Horse/func_80A5F08C.s | 2 +- .../actors/ovl_En_Horse/func_80A5F414.s | 2 +- .../overlays/actors/ovl_En_In/func_80A79C78.s | 2 +- .../overlays/actors/ovl_En_In/func_80A7AA40.s | 2 +- .../overlays/actors/ovl_En_In/func_80A7ABD4.s | 2 +- .../overlays/actors/ovl_En_Ko/func_80A9877C.s | 84 +- .../overlays/actors/ovl_En_Ko/func_80A98DB4.s | 50 +- .../overlays/actors/ovl_En_Ta/func_80B14E28.s | 2 +- .../overlays/actors/ovl_En_Tr/func_80B23D74.s | 4 +- .../actors/ovl_En_Vali/func_80B26E9C.s | 4 +- .../actors/ovl_En_Zl4/func_80B5B7B0.s | 30 +- .../actors/ovl_En_Zl4/func_80B5B888.s | 40 +- .../actors/ovl_En_Zl4/func_80B5DAD8.s | 140 +- .../actors/ovl_En_fHG/func_80B62B6C.s | 2 +- .../actors/ovl_Fishing/func_80B7825C.s | 4 +- .../actors/ovl_Obj_Bean/func_80B906A4.s | 32 +- .../actors/ovl_Obj_Bean/func_80B9075C.s | 60 +- data/db_camera.bss.s | 4 +- data/db_camera.rodata.s | 625 - data/z_camera.bss.s | 106 - include/functions.h | 180 +- include/regs.h | 12 + include/variables.h | 43 +- include/z64.h | 180 +- include/z64camera.h | 950 ++ include/z64math.h | 21 +- include/z64scene.h | 24 +- spec | 2 - src/code/db_camera.c | 250 +- src/code/z_actor.c | 24 +- src/code/z_bgcheck.c | 8 +- src/code/z_camera.c | 10174 +++++++++++----- src/code/z_camera_data.c | 3573 ++++++ src/code/z_demo.c | 49 +- src/code/z_horse.c | 2 +- src/code/z_olib.c | 22 +- src/code/z_onepointdemo.c | 34 +- src/code/z_play.c | 100 +- src/code/z_player_lib.c | 2 +- src/code/z_quake.c | 44 +- src/code/z_room.c | 9 +- .../ovl_Bg_Bdan_Objects/z_bg_bdan_objects.c | 18 +- .../ovl_Bg_Bdan_Objects/z_bg_bdan_objects.h | 2 +- .../actors/ovl_Bg_Ddan_Kd/z_bg_ddan_kd.c | 2 +- .../ovl_Bg_Hidan_Fslift/z_bg_hidan_fslift.c | 4 +- .../z_bg_hidan_rsekizou.c | 2 +- .../ovl_Bg_Hidan_Syoku/z_bg_hidan_syoku.c | 4 +- .../ovl_Bg_Jya_1flift/z_bg_jya_1flift.c | 4 +- .../actors/ovl_Bg_Jya_Lift/z_bg_jya_lift.c | 4 +- .../ovl_Bg_Mori_Hineri/z_bg_mori_hineri.c | 10 +- .../z_bg_mori_rakkatenjo.c | 4 +- .../ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c | 2 +- .../ovl_Bg_Spot17_Funen/z_bg_spot17_funen.c | 3 +- src/overlays/actors/ovl_Door_Ana/z_door_ana.c | 2 +- .../actors/ovl_Door_Shutter/z_door_shutter.c | 2 +- src/overlays/actors/ovl_En_Bom/z_en_bom.c | 2 +- .../ovl_En_Bom_Bowl_Pit/z_en_bom_bowl_pit.c | 4 +- src/overlays/actors/ovl_En_Bombf/z_en_bombf.c | 2 +- src/overlays/actors/ovl_En_Butte/z_en_butte.c | 2 +- src/overlays/actors/ovl_En_Daiku/z_en_daiku.c | 6 +- .../actors/ovl_En_Fd_Fire/z_en_fd_fire.c | 4 +- .../actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c | 4 +- .../actors/ovl_En_Heishi1/z_en_heishi1.c | 2 +- .../actors/ovl_En_Heishi2/z_en_heishi2.c | 8 +- .../actors/ovl_En_Hintnuts/z_en_hintnuts.c | 7 +- src/overlays/actors/ovl_En_Holl/z_en_holl.c | 2 +- src/overlays/actors/ovl_En_Horse/z_en_horse.h | 5 + .../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_Kz/z_en_kz.c | 4 +- src/overlays/actors/ovl_En_Light/z_en_light.c | 4 +- src/overlays/actors/ovl_En_Mb/z_en_mb.c | 6 +- src/overlays/actors/ovl_En_Md/z_en_md.c | 2 +- .../actors/ovl_En_Po_Field/z_en_po_field.c | 12 +- .../actors/ovl_En_Po_Relay/z_en_po_relay.c | 8 +- .../ovl_En_Po_Sisters/z_en_po_sisters.c | 2 +- src/overlays/actors/ovl_En_Poh/z_en_poh.c | 10 +- src/overlays/actors/ovl_En_Ru1/z_en_ru1.c | 6 +- src/overlays/actors/ovl_En_Zl1/z_en_zl1.c | 24 +- .../actors/ovl_Magic_Dark/z_magic_dark.c | 12 +- .../actors/ovl_Obj_Syokudai/z_obj_syokudai.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 +- .../actors/ovl_player_actor/z_player.c | 106 +- .../ovl_Effect_Ss_En_Fire/z_eff_ss_en_fire.c | 2 +- .../z_eff_ss_fire_tail.c | 8 +- .../z_eff_ss_lightning.c | 4 +- .../ovl_Effect_Ss_Sibuki/z_eff_ss_sibuki.c | 2 +- 243 files changed, 13819 insertions(+), 28653 deletions(-) rename asm/non_matchings/code/db_camera/{func_800B4E7C.s => DbgCamera_Update.s} (99%) delete mode 100644 asm/non_matchings/code/db_camera/func_800B3B50.s delete mode 100644 asm/non_matchings/code/db_camera/func_800B3EBC.s delete mode 100644 asm/non_matchings/code/db_camera/func_800B3EFC.s delete mode 100644 asm/non_matchings/code/db_camera/func_800B3F38.s delete mode 100644 asm/non_matchings/code/db_camera/func_800B3F54.s delete mode 100644 asm/non_matchings/code/db_camera/func_800B3F94.s delete mode 100644 asm/non_matchings/code/db_camera/func_800B3FF4.s delete mode 100644 asm/non_matchings/code/db_camera/func_800B404C.s delete mode 100644 asm/non_matchings/code/db_camera/func_800B4920.s delete mode 100644 asm/non_matchings/code/db_camera/func_800B4D58.s delete mode 100644 asm/non_matchings/code/db_camera/func_800B4DE4.s delete mode 100644 asm/non_matchings/code/db_camera/func_800B8730.s delete mode 100644 asm/non_matchings/code/db_camera/func_800B8978.s rename asm/non_matchings/code/db_camera/{func_800B8BA4.s => func_800B8BB0.s} (50%) create mode 100644 asm/non_matchings/code/db_camera/func_800B8DB0.s delete mode 100644 asm/non_matchings/code/db_camera/func_800B9060.s delete mode 100644 asm/non_matchings/code/db_camera/func_800B958C.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Battle1.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Battle4.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_ChangeMode.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_ChangeSetting.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_ChangeStatus.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_CopyModeValuesToPREG.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_CopyPREGToModeValues.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Data4.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Demo1.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Demo3.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Demo5.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Demo6.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Demo9.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Fixed1.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Fixed2.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Fixed3.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Fixed4.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Jump1.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Jump2.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Jump3.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_KeepOn0.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_KeepOn1.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_KeepOn3.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Normal1.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Normal2.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Normal3.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Parallel1.s rename asm/non_matchings/code/z_camera/{func_800584E8.s => Camera_PrintSettings.s} (98%) delete mode 100644 asm/non_matchings/code/z_camera/Camera_SetParam.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Special4.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Special5.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Special6.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Special7.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Special9.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Subj3.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Subj4.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Unique0.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Unique1.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Unique2.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Unique3.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Unique7.s delete mode 100644 asm/non_matchings/code/z_camera/Camera_Unique9.s delete mode 100644 asm/non_matchings/code/z_camera/func_80043F94.s delete mode 100644 asm/non_matchings/code/z_camera/func_80044568.s delete mode 100644 asm/non_matchings/code/z_camera/func_80044ADC.s delete mode 100644 asm/non_matchings/code/z_camera/func_80044E68.s delete mode 100644 asm/non_matchings/code/z_camera/func_80045350.s delete mode 100644 asm/non_matchings/code/z_camera/func_80045508.s delete mode 100644 asm/non_matchings/code/z_camera/func_80045714.s delete mode 100644 asm/non_matchings/code/z_camera/func_800458D4.s delete mode 100644 asm/non_matchings/code/z_camera/func_80045C74.s delete mode 100644 asm/non_matchings/code/z_camera/func_800460A8.s delete mode 100644 asm/non_matchings/code/z_camera/func_80046B44.s delete mode 100644 asm/non_matchings/code/z_camera/func_80046CB4.s delete mode 100644 asm/non_matchings/code/z_camera/func_80046E20.s delete mode 100644 asm/non_matchings/code/z_camera/func_80057C6C.s delete mode 100644 asm/non_matchings/code/z_camera/func_80058148.s delete mode 100644 asm/non_matchings/code/z_camera/func_800588B4.s delete mode 100644 asm/non_matchings/code/z_camera/func_80058E8C.s delete mode 100644 asm/non_matchings/code/z_camera/func_800591EC.s delete mode 100644 asm/non_matchings/code/z_camera/func_8005A7A8.s delete mode 100644 asm/non_matchings/code/z_camera/func_8005A8C4.s delete mode 100644 asm/non_matchings/code/z_camera/func_8005A970.s delete mode 100644 data/db_camera.rodata.s delete mode 100644 data/z_camera.bss.s create mode 100644 include/z64camera.h create mode 100644 src/code/z_camera_data.c diff --git a/asm/non_matchings/code/db_camera/func_800B4E7C.s b/asm/non_matchings/code/db_camera/DbgCamera_Update.s similarity index 99% rename from asm/non_matchings/code/db_camera/func_800B4E7C.s rename to asm/non_matchings/code/db_camera/DbgCamera_Update.s index 14170034f2..1d12430d35 100644 --- a/asm/non_matchings/code/db_camera/func_800B4E7C.s +++ b/asm/non_matchings/code/db_camera/DbgCamera_Update.s @@ -1,4 +1,128 @@ -glabel func_800B4E7C +.rdata +glabel D_8014386C + .asciz "@@@\n@@@\n@@@/* *** spline point data ** start here *** */\n@@@\n" + .balign 4 + +glabel D_801438AC + .asciz "Lookat" + .balign 4 + +glabel D_801438B4 + .asciz "Position" + .balign 4 + +glabel D_801438C0 + .asciz "@@@static short nPoints = %d;\n@@@\n" + .balign 4 + +glabel D_801438E4 + .asciz "@@@static short nFrames = %d;\n@@@\n" + .balign 4 + +glabel D_80143908 + .asciz "@@@static short Mode = %d;\n@@@\n" + .balign 4 + +glabel D_8014392C + .asciz "@@@\n@@@\n@@@/* *** spline point data ** finish! *** */\n@@@\n" + .balign 4 + +.late_rodata +glabel D_80143C54 + .float 0.15 + +glabel D_80143C58 + .float 0.2 + +glabel D_80143C5C + .float 30000 + +glabel D_80143C60 + .float 30000 + +glabel D_80143C64 + .float 0.8 + +glabel D_80143C68 + .float 182.04167 + +glabel D_80143C6C + .float 0.8 + +glabel D_80143C70 + .float 182.04167 + +glabel D_80143C74 # unused + .float 182.04167 + +glabel D_80143C78 + .float 0.8 + +glabel D_80143C7C + .float 182.04167 + +glabel D_80143C80 + .float 0.8 + +glabel D_80143C84 + .float 182.04167 + +glabel D_80143C88 # unused + .float 182.04167 + +glabel D_80143C8C + .float 182.04167 + +glabel D_80143C90 + .float 0.00549325 + +glabel D_80143C94 + .float 0.00549325 + +glabel D_80143C98 + .float 0.2 + +glabel D_80143C9C + .float 0.2 + +glabel D_80143CA0 + .float 0.00549325 + +glabel D_80143CA4 + .float 0.00549325 + +glabel D_80143CA8 + .float 0.00549325 + +glabel D_80143CAC + .float 0.00549325 + +glabel D_80143CB0 + .float 0.02 + +glabel D_80143CB4 + .float 0.02 + +glabel D_80143CB8 + .float 0.02 + +glabel D_80143CBC + .float 0.00549325 + +glabel D_80143CC0 + .float 0.00549325 + +glabel D_80143CC4 + .float 0.02 + +glabel D_80143CC8 + .float 0.02 + +glabel D_80143CCC + .float 0.02 + +.text +glabel DbgCamera_Update /* B2C01C 800B4E7C 27BDFED8 */ addiu $sp, $sp, -0x128 /* B2C020 800B4E80 AFB60064 */ sw $s6, 0x64($sp) /* B2C024 800B4E84 248E0054 */ addiu $t6, $a0, 0x54 diff --git a/asm/non_matchings/code/db_camera/func_800B3B50.s b/asm/non_matchings/code/db_camera/func_800B3B50.s deleted file mode 100644 index 725b66c18f..0000000000 --- a/asm/non_matchings/code/db_camera/func_800B3B50.s +++ /dev/null @@ -1,35 +0,0 @@ -glabel func_800B3B50 -/* B2ACF0 800B3B50 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* B2ACF4 800B3B54 AFBF0014 */ sw $ra, 0x14($sp) -/* B2ACF8 800B3B58 AFA40030 */ sw $a0, 0x30($sp) -/* B2ACFC 800B3B5C 00A03825 */ move $a3, $a1 -/* B2AD00 800B3B60 AFA70034 */ sw $a3, 0x34($sp) -/* B2AD04 800B3B64 00C02825 */ move $a1, $a2 -/* B2AD08 800B3B68 0C01F097 */ jal OLib_VecSphGeoToVec3f -/* B2AD0C 800B3B6C 27A40018 */ addiu $a0, $sp, 0x18 -/* B2AD10 800B3B70 8FA70034 */ lw $a3, 0x34($sp) -/* B2AD14 800B3B74 C7A60018 */ lwc1 $f6, 0x18($sp) -/* B2AD18 800B3B78 C7B0001C */ lwc1 $f16, 0x1c($sp) -/* B2AD1C 800B3B7C C4E40000 */ lwc1 $f4, ($a3) -/* B2AD20 800B3B80 27AE0024 */ addiu $t6, $sp, 0x24 -/* B2AD24 800B3B84 8FA20030 */ lw $v0, 0x30($sp) -/* B2AD28 800B3B88 46062200 */ add.s $f8, $f4, $f6 -/* B2AD2C 800B3B8C C7A60020 */ lwc1 $f6, 0x20($sp) -/* B2AD30 800B3B90 E7A80024 */ swc1 $f8, 0x24($sp) -/* B2AD34 800B3B94 C4EA0004 */ lwc1 $f10, 4($a3) -/* B2AD38 800B3B98 46105480 */ add.s $f18, $f10, $f16 -/* B2AD3C 800B3B9C E7B20028 */ swc1 $f18, 0x28($sp) -/* B2AD40 800B3BA0 C4E40008 */ lwc1 $f4, 8($a3) -/* B2AD44 800B3BA4 46062200 */ add.s $f8, $f4, $f6 -/* B2AD48 800B3BA8 E7A8002C */ swc1 $f8, 0x2c($sp) -/* B2AD4C 800B3BAC 8DD80000 */ lw $t8, ($t6) -/* B2AD50 800B3BB0 AC580000 */ sw $t8, ($v0) -/* B2AD54 800B3BB4 8DCF0004 */ lw $t7, 4($t6) -/* B2AD58 800B3BB8 AC4F0004 */ sw $t7, 4($v0) -/* B2AD5C 800B3BBC 8DD80008 */ lw $t8, 8($t6) -/* B2AD60 800B3BC0 AC580008 */ sw $t8, 8($v0) -/* B2AD64 800B3BC4 8FBF0014 */ lw $ra, 0x14($sp) -/* B2AD68 800B3BC8 27BD0030 */ addiu $sp, $sp, 0x30 -/* B2AD6C 800B3BCC 03E00008 */ jr $ra -/* B2AD70 800B3BD0 00000000 */ nop - diff --git a/asm/non_matchings/code/db_camera/func_800B3EBC.s b/asm/non_matchings/code/db_camera/func_800B3EBC.s deleted file mode 100644 index 6b2436737a..0000000000 --- a/asm/non_matchings/code/db_camera/func_800B3EBC.s +++ /dev/null @@ -1,18 +0,0 @@ -glabel func_800B3EBC -/* B2B05C 800B3EBC 848E0000 */ lh $t6, ($a0) -/* B2B060 800B3EC0 448E2000 */ mtc1 $t6, $f4 -/* B2B064 800B3EC4 00000000 */ nop -/* B2B068 800B3EC8 468021A0 */ cvt.s.w $f6, $f4 -/* B2B06C 800B3ECC E4A60000 */ swc1 $f6, ($a1) -/* B2B070 800B3ED0 848F0002 */ lh $t7, 2($a0) -/* B2B074 800B3ED4 448F4000 */ mtc1 $t7, $f8 -/* B2B078 800B3ED8 00000000 */ nop -/* B2B07C 800B3EDC 468042A0 */ cvt.s.w $f10, $f8 -/* B2B080 800B3EE0 E4AA0004 */ swc1 $f10, 4($a1) -/* B2B084 800B3EE4 84980004 */ lh $t8, 4($a0) -/* B2B088 800B3EE8 44988000 */ mtc1 $t8, $f16 -/* B2B08C 800B3EEC 00000000 */ nop -/* B2B090 800B3EF0 468084A0 */ cvt.s.w $f18, $f16 -/* B2B094 800B3EF4 03E00008 */ jr $ra -/* B2B098 800B3EF8 E4B20008 */ swc1 $f18, 8($a1) - diff --git a/asm/non_matchings/code/db_camera/func_800B3EFC.s b/asm/non_matchings/code/db_camera/func_800B3EFC.s deleted file mode 100644 index 49d743b848..0000000000 --- a/asm/non_matchings/code/db_camera/func_800B3EFC.s +++ /dev/null @@ -1,17 +0,0 @@ -glabel func_800B3EFC -/* B2B09C 800B3EFC C4840000 */ lwc1 $f4, ($a0) -/* B2B0A0 800B3F00 4600218D */ trunc.w.s $f6, $f4 -/* B2B0A4 800B3F04 440F3000 */ mfc1 $t7, $f6 -/* B2B0A8 800B3F08 00000000 */ nop -/* B2B0AC 800B3F0C A4AF0000 */ sh $t7, ($a1) -/* B2B0B0 800B3F10 C4880004 */ lwc1 $f8, 4($a0) -/* B2B0B4 800B3F14 4600428D */ trunc.w.s $f10, $f8 -/* B2B0B8 800B3F18 44195000 */ mfc1 $t9, $f10 -/* B2B0BC 800B3F1C 00000000 */ nop -/* B2B0C0 800B3F20 A4B90002 */ sh $t9, 2($a1) -/* B2B0C4 800B3F24 C4900008 */ lwc1 $f16, 8($a0) -/* B2B0C8 800B3F28 4600848D */ trunc.w.s $f18, $f16 -/* B2B0CC 800B3F2C 44099000 */ mfc1 $t1, $f18 -/* B2B0D0 800B3F30 03E00008 */ jr $ra -/* B2B0D4 800B3F34 A4A90004 */ sh $t1, 4($a1) - diff --git a/asm/non_matchings/code/db_camera/func_800B3F38.s b/asm/non_matchings/code/db_camera/func_800B3F38.s deleted file mode 100644 index 59c96d526c..0000000000 --- a/asm/non_matchings/code/db_camera/func_800B3F38.s +++ /dev/null @@ -1,9 +0,0 @@ -glabel func_800B3F38 -/* B2B0D8 800B3F38 C4840000 */ lwc1 $f4, ($a0) -/* B2B0DC 800B3F3C E4A40000 */ swc1 $f4, ($a1) -/* B2B0E0 800B3F40 C4860004 */ lwc1 $f6, 4($a0) -/* B2B0E4 800B3F44 E4A60004 */ swc1 $f6, 4($a1) -/* B2B0E8 800B3F48 C4880008 */ lwc1 $f8, 8($a0) -/* B2B0EC 800B3F4C 03E00008 */ jr $ra -/* B2B0F0 800B3F50 E4A80008 */ swc1 $f8, 8($a1) - diff --git a/asm/non_matchings/code/db_camera/func_800B3F54.s b/asm/non_matchings/code/db_camera/func_800B3F54.s deleted file mode 100644 index b1fd74695f..0000000000 --- a/asm/non_matchings/code/db_camera/func_800B3F54.s +++ /dev/null @@ -1,18 +0,0 @@ -glabel func_800B3F54 -/* B2B0F4 800B3F54 848E0000 */ lh $t6, ($a0) -/* B2B0F8 800B3F58 448E2000 */ mtc1 $t6, $f4 -/* B2B0FC 800B3F5C 00000000 */ nop -/* B2B100 800B3F60 468021A0 */ cvt.s.w $f6, $f4 -/* B2B104 800B3F64 E4A60000 */ swc1 $f6, ($a1) -/* B2B108 800B3F68 848F0002 */ lh $t7, 2($a0) -/* B2B10C 800B3F6C 448F4000 */ mtc1 $t7, $f8 -/* B2B110 800B3F70 00000000 */ nop -/* B2B114 800B3F74 468042A0 */ cvt.s.w $f10, $f8 -/* B2B118 800B3F78 E4AA0004 */ swc1 $f10, 4($a1) -/* B2B11C 800B3F7C 84980004 */ lh $t8, 4($a0) -/* B2B120 800B3F80 44988000 */ mtc1 $t8, $f16 -/* B2B124 800B3F84 00000000 */ nop -/* B2B128 800B3F88 468084A0 */ cvt.s.w $f18, $f16 -/* B2B12C 800B3F8C 03E00008 */ jr $ra -/* B2B130 800B3F90 E4B20008 */ swc1 $f18, 8($a1) - diff --git a/asm/non_matchings/code/db_camera/func_800B3F94.s b/asm/non_matchings/code/db_camera/func_800B3F94.s deleted file mode 100644 index f961f8e41f..0000000000 --- a/asm/non_matchings/code/db_camera/func_800B3F94.s +++ /dev/null @@ -1,26 +0,0 @@ -glabel func_800B3F94 -/* B2B134 800B3F94 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* B2B138 800B3F98 AFA60038 */ sw $a2, 0x38($sp) -/* B2B13C 800B3F9C 00A03025 */ move $a2, $a1 -/* B2B140 800B3FA0 AFBF0014 */ sw $ra, 0x14($sp) -/* B2B144 800B3FA4 AFA40030 */ sw $a0, 0x30($sp) -/* B2B148 800B3FA8 AFA50034 */ sw $a1, 0x34($sp) -/* B2B14C 800B3FAC 8FA50030 */ lw $a1, 0x30($sp) -/* B2B150 800B3FB0 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* B2B154 800B3FB4 27A40028 */ addiu $a0, $sp, 0x28 -/* B2B158 800B3FB8 8FAF0030 */ lw $t7, 0x30($sp) -/* B2B15C 800B3FBC 87AE002E */ lh $t6, 0x2e($sp) -/* B2B160 800B3FC0 27A4001C */ addiu $a0, $sp, 0x1c -/* B2B164 800B3FC4 85F8000E */ lh $t8, 0xe($t7) -/* B2B168 800B3FC8 27A50028 */ addiu $a1, $sp, 0x28 -/* B2B16C 800B3FCC 01D8C823 */ subu $t9, $t6, $t8 -/* B2B170 800B3FD0 0C01F097 */ jal OLib_VecSphGeoToVec3f -/* B2B174 800B3FD4 A7B9002E */ sh $t9, 0x2e($sp) -/* B2B178 800B3FD8 27A4001C */ addiu $a0, $sp, 0x1c -/* B2B17C 800B3FDC 0C02CFBF */ jal func_800B3EFC -/* B2B180 800B3FE0 8FA50038 */ lw $a1, 0x38($sp) -/* B2B184 800B3FE4 8FBF0014 */ lw $ra, 0x14($sp) -/* B2B188 800B3FE8 27BD0030 */ addiu $sp, $sp, 0x30 -/* B2B18C 800B3FEC 03E00008 */ jr $ra -/* B2B190 800B3FF0 00000000 */ nop - diff --git a/asm/non_matchings/code/db_camera/func_800B3FF4.s b/asm/non_matchings/code/db_camera/func_800B3FF4.s deleted file mode 100644 index 5968b8f06a..0000000000 --- a/asm/non_matchings/code/db_camera/func_800B3FF4.s +++ /dev/null @@ -1,24 +0,0 @@ -glabel func_800B3FF4 -/* B2B194 800B3FF4 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* B2B198 800B3FF8 AFA40030 */ sw $a0, 0x30($sp) -/* B2B19C 800B3FFC AFBF0014 */ sw $ra, 0x14($sp) -/* B2B1A0 800B4000 00A02025 */ move $a0, $a1 -/* B2B1A4 800B4004 AFA60038 */ sw $a2, 0x38($sp) -/* B2B1A8 800B4008 0C02CFCE */ jal func_800B3F38 -/* B2B1AC 800B400C 27A5001C */ addiu $a1, $sp, 0x1c -/* B2B1B0 800B4010 27A40028 */ addiu $a0, $sp, 0x28 -/* B2B1B4 800B4014 0C01F0FD */ jal OLib_Vec3fToVecSphGeo -/* B2B1B8 800B4018 27A5001C */ addiu $a1, $sp, 0x1c -/* B2B1BC 800B401C 8FA50030 */ lw $a1, 0x30($sp) -/* B2B1C0 800B4020 87AE002E */ lh $t6, 0x2e($sp) -/* B2B1C4 800B4024 8FA40038 */ lw $a0, 0x38($sp) -/* B2B1C8 800B4028 84AF000E */ lh $t7, 0xe($a1) -/* B2B1CC 800B402C 27A60028 */ addiu $a2, $sp, 0x28 -/* B2B1D0 800B4030 01CFC021 */ addu $t8, $t6, $t7 -/* B2B1D4 800B4034 0C02CED4 */ jal func_800B3B50 -/* B2B1D8 800B4038 A7B8002E */ sh $t8, 0x2e($sp) -/* B2B1DC 800B403C 8FBF0014 */ lw $ra, 0x14($sp) -/* B2B1E0 800B4040 27BD0030 */ addiu $sp, $sp, 0x30 -/* B2B1E4 800B4044 03E00008 */ jr $ra -/* B2B1E8 800B4048 00000000 */ nop - diff --git a/asm/non_matchings/code/db_camera/func_800B404C.s b/asm/non_matchings/code/db_camera/func_800B404C.s deleted file mode 100644 index 29b727f4ac..0000000000 --- a/asm/non_matchings/code/db_camera/func_800B404C.s +++ /dev/null @@ -1,17 +0,0 @@ -glabel func_800B404C -/* B2B1EC 800B404C 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* B2B1F0 800B4050 AFA40028 */ sw $a0, 0x28($sp) -/* B2B1F4 800B4054 AFBF0014 */ sw $ra, 0x14($sp) -/* B2B1F8 800B4058 00A02025 */ move $a0, $a1 -/* B2B1FC 800B405C AFA60030 */ sw $a2, 0x30($sp) -/* B2B200 800B4060 0C02CFAF */ jal func_800B3EBC -/* B2B204 800B4064 27A5001C */ addiu $a1, $sp, 0x1c -/* B2B208 800B4068 8FA40028 */ lw $a0, 0x28($sp) -/* B2B20C 800B406C 27A5001C */ addiu $a1, $sp, 0x1c -/* B2B210 800B4070 0C02CFFD */ jal func_800B3FF4 -/* B2B214 800B4074 8FA60030 */ lw $a2, 0x30($sp) -/* B2B218 800B4078 8FBF0014 */ lw $ra, 0x14($sp) -/* B2B21C 800B407C 27BD0028 */ addiu $sp, $sp, 0x28 -/* B2B220 800B4080 03E00008 */ jr $ra -/* B2B224 800B4084 00000000 */ nop - diff --git a/asm/non_matchings/code/db_camera/func_800B44E0.s b/asm/non_matchings/code/db_camera/func_800B44E0.s index 4af795f9eb..bb62c5c916 100644 --- a/asm/non_matchings/code/db_camera/func_800B44E0.s +++ b/asm/non_matchings/code/db_camera/func_800B44E0.s @@ -1,3 +1,221 @@ +.rdata +glabel D_80143170 + .asciz "\x8Cキ-フレ-ム\x8Dガ" + .balign 4 + +glabel D_80143184 + .asciz "\x8Dタリマセン。" + .balign 4 + +glabel D_80143194 + .asciz "\x8Dサイセイデキマセン" + .balign 4 + +glabel D_801431AC + .asciz "\x8Dサイセイシュウリョウ" + .balign 4 + +glabel D_801431C4 + .asciz "\x8Dサイセイチュウ!" + .balign 4 + +glabel D_801431D8 + .asciz "DEMO CAMERA TOOL" + .balign 4 + +glabel D_801431EC + .asciz "\x8Dモウハイリマセン" + .balign 4 + +glabel D_80143200 + .asciz "\x8Dトウロク テンメ" + .balign 4 + +glabel D_80143214 + .asciz "\x8Dヘンコウ / " + .balign 4 + +glabel D_80143224 + .asciz "> >" + .balign 4 + +glabel D_80143234 + .asciz "< <" + .balign 4 + +glabel D_80143244 + .asciz "< >" + .balign 4 + +glabel D_80143254 + .asciz "\x8C*プレイヤ-*" + .balign 4 + +glabel D_80143264 + .asciz "\x8C\Eモ-ド\x8D ソウタイ" + .balign 4 + +glabel D_80143278 + .asciz "\x8C\Eモ-ド\x8Dゼッタイ" + .balign 4 + +glabel D_80143290 + .asciz "\x8Dガメン\x8C デモ" + .balign 4 + +glabel D_801432A4 + .asciz "\x8Dガメン フツウ" + .balign 4 + +glabel D_801432B8 + .asciz "\x8DPジカン MAX" + .balign 4 + +glabel D_801432C8 + .asciz "\x8Cリンク\x8D キオク" + .balign 4 + +glabel D_801432DC + .asciz "\x8Cリンク\x8D ムシ" + .balign 4 + +glabel D_801432F0 + .asciz "\x8D*ミテルイチ*" + .balign 4 + +glabel D_80143300 + .asciz "\x8C*カメラ\x8Dイチ*" + .balign 4 + +glabel D_80143310 + .asciz "DEBUG CAMERA" + .balign 4 + +glabel D_80143320 + .asciz "\x8Cセンタ-/ロック" + .balign 4 + +glabel D_80143330 + .asciz "\x8Cセンタ-/フリ-" + .balign 4 + +glabel D_80143340 + .asciz "DEMO CONTROL" + .balign 4 + +glabel D_80143350 + .asciz "\x8Cメモリ\x8Dガタリマセン" + .balign 4 + +glabel D_80143368 + .asciz "p" + .balign 4 + +glabel D_8014336C + .asciz "e" + .balign 4 + +glabel D_80143370 + .asciz "s" + .balign 4 + +glabel D_80143374 + .asciz "l" + .balign 4 + +glabel D_80143378 + .asciz "c" + .balign 4 + +glabel D_8014337C + .asciz "\x8Cメモリパック" + .balign 4 + +glabel D_8014338C + .asciz "\x8Cセーブ" + # Save + .balign 4 + +glabel D_80143398 + .asciz "\x8Cロード" + # Load + .balign 4 + +glabel D_801433A4 + .asciz "\x8Cクリア-" + # Clear + .balign 4 + +glabel D_801433B0 + .asciz "\x8Dヲヌカナイデネ" + .balign 4 + +glabel D_801433C4 + .asciz "FREE BYTE" + .balign 4 + +glabel D_801433D4 + .asciz "NEED BYTE" + .balign 4 + +glabel D_801433E4 + .asciz "\x8C*メモリ-パック*" + .balign 4 + +glabel D_801433F8 + .asciz "\x8Dヲミツケラレマセン" + .balign 4 + +glabel D_8014340C + .asciz "\x8Cファイル \x8Dヲ" + .balign 4 + +glabel D_8014341C + .asciz "\x8Dシテモイイデスカ?" + .balign 4 + +glabel D_80143434 + .asciz "\x8Dゲンザイヘンシュウチュウノ" + .balign 4 + +glabel D_80143454 + .asciz "\x8Cファイル\x8Dハハキサレマス" + .balign 4 + +glabel D_80143470 + .asciz "\x8Dハイ" + .balign 4 + +glabel D_80143478 + .asciz "\x8Dイイエ" + .balign 4 + +glabel D_80143480 + .asciz "\x8Dシテイマス" + .balign 4 + +glabel D_8014348C + .asciz "\x8Dウワガキ" + .balign 4 + +glabel D_80143498 + .asciz "\x8Dシマシタ" + .balign 4 + +glabel D_801434A4 + .asciz "USE BYTE" + .balign 4 + +glabel D_801434B4 + .asciz "\x8Dニシッパイ" + .balign 4 + +glabel D_801434C4 + .asciz "\x8C\Eモ-ド\x8D コテイ" + .balign 4 + + +.text glabel func_800B44E0 /* B2B680 800B44E0 27BDFFD0 */ addiu $sp, $sp, -0x30 /* B2B684 800B44E4 3C0E8016 */ lui $t6, %hi(D_80161100) diff --git a/asm/non_matchings/code/db_camera/func_800B4920.s b/asm/non_matchings/code/db_camera/func_800B4920.s deleted file mode 100644 index 24fe5f4400..0000000000 --- a/asm/non_matchings/code/db_camera/func_800B4920.s +++ /dev/null @@ -1,86 +0,0 @@ -glabel func_800B4920 -/* B2BAC0 800B4920 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* B2BAC4 800B4924 AFA50044 */ sw $a1, 0x44($sp) -/* B2BAC8 800B4928 00802825 */ move $a1, $a0 -/* B2BACC 800B492C AFA40040 */ sw $a0, 0x40($sp) -/* B2BAD0 800B4930 AFBF003C */ sw $ra, 0x3c($sp) -/* B2BAD4 800B4934 AFB20020 */ sw $s2, 0x20($sp) -/* B2BAD8 800B4938 3C048014 */ lui $a0, %hi(D_801434D8) # $a0, 0x8014 -/* B2BADC 800B493C 00C09025 */ move $s2, $a2 -/* B2BAE0 800B4940 AFBE0038 */ sw $fp, 0x38($sp) -/* B2BAE4 800B4944 AFB70034 */ sw $s7, 0x34($sp) -/* B2BAE8 800B4948 AFB60030 */ sw $s6, 0x30($sp) -/* B2BAEC 800B494C AFB5002C */ sw $s5, 0x2c($sp) -/* B2BAF0 800B4950 AFB40028 */ sw $s4, 0x28($sp) -/* B2BAF4 800B4954 AFB30024 */ sw $s3, 0x24($sp) -/* B2BAF8 800B4958 AFB1001C */ sw $s1, 0x1c($sp) -/* B2BAFC 800B495C AFB00018 */ sw $s0, 0x18($sp) -/* B2BB00 800B4960 0C00084C */ jal osSyncPrintf -/* B2BB04 800B4964 248434D8 */ addiu $a0, %lo(D_801434D8) # addiu $a0, $a0, 0x34d8 -/* B2BB08 800B4968 87AE0046 */ lh $t6, 0x46($sp) -/* B2BB0C 800B496C 00008825 */ move $s1, $zero -/* B2BB10 800B4970 02408025 */ move $s0, $s2 -/* B2BB14 800B4974 19C0002D */ blez $t6, .L800B4A2C -/* B2BB18 800B4978 3C178014 */ lui $s7, %hi(D_80143598) # $s7, 0x8014 -/* B2BB1C 800B497C 3C1E8014 */ lui $fp, %hi(D_801435C4) # $fp, 0x8014 -/* B2BB20 800B4980 3C168014 */ lui $s6, %hi(D_80143578) # $s6, 0x8014 -/* B2BB24 800B4984 3C158014 */ lui $s5, %hi(D_80143558) # $s5, 0x8014 -/* B2BB28 800B4988 3C148014 */ lui $s4, %hi(D_80143538) # $s4, 0x8014 -/* B2BB2C 800B498C 3C138014 */ lui $s3, %hi(D_80143518) # $s3, 0x8014 -/* B2BB30 800B4990 3C128014 */ lui $s2, %hi(D_801434F8) # $s2, 0x8014 -/* B2BB34 800B4994 265234F8 */ addiu $s2, %lo(D_801434F8) # addiu $s2, $s2, 0x34f8 -/* B2BB38 800B4998 26733518 */ addiu $s3, %lo(D_80143518) # addiu $s3, $s3, 0x3518 -/* B2BB3C 800B499C 26943538 */ addiu $s4, %lo(D_80143538) # addiu $s4, $s4, 0x3538 -/* B2BB40 800B49A0 26B53558 */ addiu $s5, %lo(D_80143558) # addiu $s5, $s5, 0x3558 -/* B2BB44 800B49A4 26D63578 */ addiu $s6, %lo(D_80143578) # addiu $s6, $s6, 0x3578 -/* B2BB48 800B49A8 27DE35C4 */ addiu $fp, %lo(D_801435C4) # addiu $fp, $fp, 0x35c4 -/* B2BB4C 800B49AC 26F73598 */ addiu $s7, %lo(D_80143598) # addiu $s7, $s7, 0x3598 -/* B2BB50 800B49B0 02402025 */ move $a0, $s2 -.L800B49B4: -/* B2BB54 800B49B4 0C00084C */ jal osSyncPrintf -/* B2BB58 800B49B8 02202825 */ move $a1, $s1 -/* B2BB5C 800B49BC 02602025 */ move $a0, $s3 -/* B2BB60 800B49C0 0C00084C */ jal osSyncPrintf -/* B2BB64 800B49C4 82050000 */ lb $a1, ($s0) -/* B2BB68 800B49C8 02802025 */ move $a0, $s4 -/* B2BB6C 800B49CC 0C00084C */ jal osSyncPrintf -/* B2BB70 800B49D0 82050001 */ lb $a1, 1($s0) -/* B2BB74 800B49D4 02A02025 */ move $a0, $s5 -/* B2BB78 800B49D8 0C00084C */ jal osSyncPrintf -/* B2BB7C 800B49DC 96050002 */ lhu $a1, 2($s0) -/* B2BB80 800B49E0 C6040004 */ lwc1 $f4, 4($s0) -/* B2BB84 800B49E4 02C02025 */ move $a0, $s6 -/* B2BB88 800B49E8 460021A1 */ cvt.d.s $f6, $f4 -/* B2BB8C 800B49EC 44073000 */ mfc1 $a3, $f6 -/* B2BB90 800B49F0 44063800 */ mfc1 $a2, $f7 -/* B2BB94 800B49F4 0C00084C */ jal osSyncPrintf -/* B2BB98 800B49F8 00000000 */ nop -/* B2BB9C 800B49FC 02E02025 */ move $a0, $s7 -/* B2BBA0 800B4A00 86050008 */ lh $a1, 8($s0) -/* B2BBA4 800B4A04 8606000A */ lh $a2, 0xa($s0) -/* B2BBA8 800B4A08 0C00084C */ jal osSyncPrintf -/* B2BBAC 800B4A0C 8607000C */ lh $a3, 0xc($s0) -/* B2BBB0 800B4A10 0C00084C */ jal osSyncPrintf -/* B2BBB4 800B4A14 03C02025 */ move $a0, $fp -/* B2BBB8 800B4A18 87AF0046 */ lh $t7, 0x46($sp) -/* B2BBBC 800B4A1C 26310001 */ addiu $s1, $s1, 1 -/* B2BBC0 800B4A20 26100010 */ addiu $s0, $s0, 0x10 -/* B2BBC4 800B4A24 562FFFE3 */ bnel $s1, $t7, .L800B49B4 -/* B2BBC8 800B4A28 02402025 */ move $a0, $s2 -.L800B4A2C: -/* B2BBCC 800B4A2C 3C048014 */ lui $a0, %hi(D_801435D0) # $a0, 0x8014 -/* B2BBD0 800B4A30 0C00084C */ jal osSyncPrintf -/* B2BBD4 800B4A34 248435D0 */ addiu $a0, %lo(D_801435D0) # addiu $a0, $a0, 0x35d0 -/* B2BBD8 800B4A38 8FBF003C */ lw $ra, 0x3c($sp) -/* B2BBDC 800B4A3C 8FB00018 */ lw $s0, 0x18($sp) -/* B2BBE0 800B4A40 8FB1001C */ lw $s1, 0x1c($sp) -/* B2BBE4 800B4A44 8FB20020 */ lw $s2, 0x20($sp) -/* B2BBE8 800B4A48 8FB30024 */ lw $s3, 0x24($sp) -/* B2BBEC 800B4A4C 8FB40028 */ lw $s4, 0x28($sp) -/* B2BBF0 800B4A50 8FB5002C */ lw $s5, 0x2c($sp) -/* B2BBF4 800B4A54 8FB60030 */ lw $s6, 0x30($sp) -/* B2BBF8 800B4A58 8FB70034 */ lw $s7, 0x34($sp) -/* B2BBFC 800B4A5C 8FBE0038 */ lw $fp, 0x38($sp) -/* B2BC00 800B4A60 03E00008 */ jr $ra -/* B2BC04 800B4A64 27BD0040 */ addiu $sp, $sp, 0x40 - diff --git a/asm/non_matchings/code/db_camera/func_800B4A68.s b/asm/non_matchings/code/db_camera/func_800B4A68.s index 9bdc08d208..36c3eddfdd 100644 --- a/asm/non_matchings/code/db_camera/func_800B4A68.s +++ b/asm/non_matchings/code/db_camera/func_800B4A68.s @@ -1,3 +1,9 @@ +.rdata +glabel D_801435DC + .asciz "\n@@@%d,%d,%d,%d," + .balign 4 + +.text glabel func_800B4A68 /* B2BC08 800B4A68 27BDFFD8 */ addiu $sp, $sp, -0x28 /* B2BC0C 800B4A6C AFBF001C */ sw $ra, 0x1c($sp) diff --git a/asm/non_matchings/code/db_camera/func_800B4AA8.s b/asm/non_matchings/code/db_camera/func_800B4AA8.s index 91fbfa675e..165c554dac 100644 --- a/asm/non_matchings/code/db_camera/func_800B4AA8.s +++ b/asm/non_matchings/code/db_camera/func_800B4AA8.s @@ -1,3 +1,9 @@ +.rdata +glabel D_801435F0 + .asciz "\n@@@%d,%d," + .balign 4 + +.text glabel func_800B4AA8 /* B2BC48 800B4AA8 27BDFFE0 */ addiu $sp, $sp, -0x20 /* B2BC4C 800B4AAC 00803825 */ move $a3, $a0 diff --git a/asm/non_matchings/code/db_camera/func_800B4AE4.s b/asm/non_matchings/code/db_camera/func_800B4AE4.s index 5a89d6eacd..bba5f07274 100644 --- a/asm/non_matchings/code/db_camera/func_800B4AE4.s +++ b/asm/non_matchings/code/db_camera/func_800B4AE4.s @@ -1,3 +1,9 @@ +.rdata +glabel D_801435FC + .asciz "\n@@@%d,%d," + .balign 4 + +.text glabel func_800B4AE4 /* B2BC84 800B4AE4 27BDFFE0 */ addiu $sp, $sp, -0x20 /* B2BC88 800B4AE8 00803825 */ move $a3, $a0 diff --git a/asm/non_matchings/code/db_camera/func_800B4B20.s b/asm/non_matchings/code/db_camera/func_800B4B20.s index 2d4da25e9e..bdde0e5f66 100644 --- a/asm/non_matchings/code/db_camera/func_800B4B20.s +++ b/asm/non_matchings/code/db_camera/func_800B4B20.s @@ -1,3 +1,109 @@ +.rdata +glabel D_80143608 + .asciz "\n@@@ 0,0,0,2, /* Look Camera */" + .balign 4 + +glabel D_80143628 + .asciz "\n@@@ 0,1, /* dousa */" + .balign 4 + +glabel D_80143640 + .asciz "\n@@@ 0,0, /* Start Flame */" + .balign 4 + +glabel D_8014365C + .asciz " /* End Flame */" + .balign 4 + +glabel D_80143670 + .asciz "\n@@@0,0, /* Dammy */\n@@@ " + .balign 4 + +glabel D_8014368C + .asciz "\n@@@ %d, /* code */" + .balign 4 + +glabel D_801436AC + .asciz "\n@@@ %d, /* z */" + .balign 4 + +glabel D_801436CC + .asciz " /* sokudo */" + .balign 4 + +glabel D_801436DC + .asciz " /* zoom */" + .balign 4 + +glabel D_801436EC + .asciz " /* x pos */" + .balign 4 + +glabel D_801436FC + .asciz " /* y pos */" + .balign 4 + +glabel D_8014370C + .asciz " /* z pos */\n" + .balign 4 + +glabel D_8014371C + .asciz "\n@@@0,0, /* Dammy */\n@@@ " + .balign 4 + +glabel D_80143738 + .asciz "\n@@@ 0,0,0,1, /* Position Camera */" + .balign 4 + +glabel D_8014375C + .asciz "\n@@@ 0,1, /* dousa */" + .balign 4 + +glabel D_80143774 + .asciz "\n@@@ 0,0, /* Start Flame */" + .balign 4 + +glabel D_80143790 + .asciz " /* End Flame */" + .balign 4 + +glabel D_801437A4 + .asciz "\n@@@0,0, /* Dammy */\n@@@ " + .balign 4 + +glabel D_801437C0 + .asciz "\n@@@ %d, /* code */" + .balign 4 + +glabel D_801437E0 + .asciz "\n@@@ %d, /* z */" + .balign 4 + +glabel D_80143800 + .asciz " /* sokudo */" + .balign 4 + +glabel D_80143810 + .asciz " /* zoom */" + .balign 4 + +glabel D_80143820 + .asciz " /* x pos */" + .balign 4 + +glabel D_80143830 + .asciz " /* y pos */" + .balign 4 + +glabel D_80143840 + .asciz " /* z pos */" + .balign 4 + +glabel D_80143850 + .asciz "\n@@@0,0, /* Dammy */\n@@@ " + .balign 4 + +.text glabel func_800B4B20 /* B2BCC0 800B4B20 27BDFFD0 */ addiu $sp, $sp, -0x30 /* B2BCC4 800B4B24 AFBF0024 */ sw $ra, 0x24($sp) diff --git a/asm/non_matchings/code/db_camera/func_800B4D58.s b/asm/non_matchings/code/db_camera/func_800B4D58.s deleted file mode 100644 index d468a85a62..0000000000 --- a/asm/non_matchings/code/db_camera/func_800B4D58.s +++ /dev/null @@ -1,37 +0,0 @@ -glabel func_800B4D58 -/* B2BEF8 800B4D58 A48010CA */ sh $zero, 0x10ca($a0) -/* B2BEFC 800B4D5C 44800000 */ mtc1 $zero, $f0 -/* B2BF00 800B4D60 848210CA */ lh $v0, 0x10ca($a0) -/* B2BF04 800B4D64 2403FFFF */ li $v1, -1 -/* B2BF08 800B4D68 AC800044 */ sw $zero, 0x44($a0) -/* B2BF0C 800B4D6C AC800000 */ sw $zero, ($a0) -/* B2BF10 800B4D70 AC800034 */ sw $zero, 0x34($a0) -/* B2BF14 800B4D74 AC80003C */ sw $zero, 0x3c($a0) -/* B2BF18 800B4D78 AC830038 */ sw $v1, 0x38($a0) -/* B2BF1C 800B4D7C AC830040 */ sw $v1, 0x40($a0) -/* B2BF20 800B4D80 A480004C */ sh $zero, 0x4c($a0) -/* B2BF24 800B4D84 A48210C8 */ sh $v0, 0x10c8($a0) -/* B2BF28 800B4D88 A48210C6 */ sh $v0, 0x10c6($a0) -/* B2BF2C 800B4D8C E4800048 */ swc1 $f0, 0x48($a0) -/* B2BF30 800B4D90 E4800050 */ swc1 $f0, 0x50($a0) -/* B2BF34 800B4D94 8CAE008C */ lw $t6, 0x8c($a1) -/* B2BF38 800B4D98 3C018016 */ lui $at, %hi(D_80161100) -/* B2BF3C 800B4D9C 44800000 */ mtc1 $zero, $f0 -/* B2BF40 800B4DA0 AC2E1100 */ sw $t6, %lo(D_80161100)($at) -/* B2BF44 800B4DA4 240F0001 */ li $t7, 1 -/* B2BF48 800B4DA8 A480007C */ sh $zero, 0x7c($a0) -/* B2BF4C 800B4DAC A483007E */ sh $v1, 0x7e($a0) -/* B2BF50 800B4DB0 A48F0080 */ sh $t7, 0x80($a0) -/* B2BF54 800B4DB4 A4800082 */ sh $zero, 0x82($a0) -/* B2BF58 800B4DB8 A4800084 */ sh $zero, 0x84($a0) -/* B2BF5C 800B4DBC A4800086 */ sh $zero, 0x86($a0) -/* B2BF60 800B4DC0 A4800078 */ sh $zero, 0x78($a0) -/* B2BF64 800B4DC4 A480007A */ sh $zero, 0x7a($a0) -/* B2BF68 800B4DC8 A48010C0 */ sh $zero, 0x10c0($a0) -/* B2BF6C 800B4DCC A48010C2 */ sh $zero, 0x10c2($a0) -/* B2BF70 800B4DD0 A48010C4 */ sh $zero, 0x10c4($a0) -/* B2BF74 800B4DD4 E480006C */ swc1 $f0, 0x6c($a0) -/* B2BF78 800B4DD8 E4800070 */ swc1 $f0, 0x70($a0) -/* B2BF7C 800B4DDC 03E00008 */ jr $ra -/* B2BF80 800B4DE0 E4800074 */ swc1 $f0, 0x74($a0) - diff --git a/asm/non_matchings/code/db_camera/func_800B4DE4.s b/asm/non_matchings/code/db_camera/func_800B4DE4.s deleted file mode 100644 index 70a9263ed1..0000000000 --- a/asm/non_matchings/code/db_camera/func_800B4DE4.s +++ /dev/null @@ -1,40 +0,0 @@ -glabel func_800B4DE4 -/* B2BF84 800B4DE4 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* B2BF88 800B4DE8 AFBF0014 */ sw $ra, 0x14($sp) -/* B2BF8C 800B4DEC 8CAF0050 */ lw $t7, 0x50($a1) -/* B2BF90 800B4DF0 44803000 */ mtc1 $zero, $f6 -/* B2BF94 800B4DF4 24020001 */ li $v0, 1 -/* B2BF98 800B4DF8 AC8F0004 */ sw $t7, 4($a0) -/* B2BF9C 800B4DFC 8CAE0054 */ lw $t6, 0x54($a1) -/* B2BFA0 800B4E00 AC8E0008 */ sw $t6, 8($a0) -/* B2BFA4 800B4E04 8CAF0058 */ lw $t7, 0x58($a1) -/* B2BFA8 800B4E08 AC8F000C */ sw $t7, 0xc($a0) -/* B2BFAC 800B4E0C 8CB9005C */ lw $t9, 0x5c($a1) -/* B2BFB0 800B4E10 AC990010 */ sw $t9, 0x10($a0) -/* B2BFB4 800B4E14 8CB80060 */ lw $t8, 0x60($a1) -/* B2BFB8 800B4E18 AC980014 */ sw $t8, 0x14($a0) -/* B2BFBC 800B4E1C 8CB90064 */ lw $t9, 0x64($a1) -/* B2BFC0 800B4E20 AC990018 */ sw $t9, 0x18($a0) -/* B2BFC4 800B4E24 8CA90068 */ lw $t1, 0x68($a1) -/* B2BFC8 800B4E28 AC89001C */ sw $t1, 0x1c($a0) -/* B2BFCC 800B4E2C 8CA8006C */ lw $t0, 0x6c($a1) -/* B2BFD0 800B4E30 AC880020 */ sw $t0, 0x20($a0) -/* B2BFD4 800B4E34 8CA90070 */ lw $t1, 0x70($a1) -/* B2BFD8 800B4E38 AC890024 */ sw $t1, 0x24($a0) -/* B2BFDC 800B4E3C C4A400FC */ lwc1 $f4, 0xfc($a1) -/* B2BFE0 800B4E40 A480004C */ sh $zero, 0x4c($a0) -/* B2BFE4 800B4E44 A4820080 */ sh $v0, 0x80($a0) -/* B2BFE8 800B4E48 A4800082 */ sh $zero, 0x82($a0) -/* B2BFEC 800B4E4C A4800084 */ sh $zero, 0x84($a0) -/* B2BFF0 800B4E50 A4820086 */ sh $v0, 0x86($a0) -/* B2BFF4 800B4E54 AC820088 */ sw $v0, 0x88($a0) -/* B2BFF8 800B4E58 A4800078 */ sh $zero, 0x78($a0) -/* B2BFFC 800B4E5C A480007A */ sh $zero, 0x7a($a0) -/* B2C000 800B4E60 E4860050 */ swc1 $f6, 0x50($a0) -/* B2C004 800B4E64 0C02D022 */ jal func_800B4088 -/* B2C008 800B4E68 E4840048 */ swc1 $f4, 0x48($a0) -/* B2C00C 800B4E6C 8FBF0014 */ lw $ra, 0x14($sp) -/* B2C010 800B4E70 27BD0018 */ addiu $sp, $sp, 0x18 -/* B2C014 800B4E74 03E00008 */ jr $ra -/* B2C018 800B4E78 00000000 */ nop - diff --git a/asm/non_matchings/code/db_camera/func_800B8730.s b/asm/non_matchings/code/db_camera/func_800B8730.s deleted file mode 100644 index 06e6c3e6bd..0000000000 --- a/asm/non_matchings/code/db_camera/func_800B8730.s +++ /dev/null @@ -1,57 +0,0 @@ -glabel func_800B8730 -/* B2F8D0 800B8730 3C0E8016 */ lui $t6, %hi(D_801612D0) # $t6, 0x8016 -/* B2F8D4 800B8734 91CE12D0 */ lbu $t6, %lo(D_801612D0)($t6) -/* B2F8D8 800B8738 2404004F */ li $a0, 79 -/* B2F8DC 800B873C 3C0F8016 */ lui $t7, %hi(D_801612D1) -/* B2F8E0 800B8740 108E0003 */ beq $a0, $t6, .L800B8750 -/* B2F8E4 800B8744 00000000 */ nop -/* B2F8E8 800B8748 03E00008 */ jr $ra -/* B2F8EC 800B874C 24020041 */ li $v0, 65 - -.L800B8750: -/* B2F8F0 800B8750 91EF12D1 */ lbu $t7, %lo(D_801612D1)($t7) -/* B2F8F4 800B8754 3C028016 */ lui $v0, %hi(D_801612D2) # $v0, 0x8016 -/* B2F8F8 800B8758 244212D2 */ addiu $v0, %lo(D_801612D2) # addiu $v0, $v0, 0x12d2 -/* B2F8FC 800B875C 108F0003 */ beq $a0, $t7, .L800B876C -/* B2F900 800B8760 24030002 */ li $v1, 2 -/* B2F904 800B8764 03E00008 */ jr $ra -/* B2F908 800B8768 24020042 */ li $v0, 66 - -.L800B876C: -/* B2F90C 800B876C 2405001A */ li $a1, 26 -.L800B8770: -/* B2F910 800B8770 90580000 */ lbu $t8, ($v0) -/* B2F914 800B8774 50980004 */ beql $a0, $t8, .L800B8788 -/* B2F918 800B8778 90590001 */ lbu $t9, 1($v0) -/* B2F91C 800B877C 03E00008 */ jr $ra -/* B2F920 800B8780 24620041 */ addiu $v0, $v1, 0x41 - -/* B2F924 800B8784 90590001 */ lbu $t9, 1($v0) -.L800B8788: -/* B2F928 800B8788 50990004 */ beql $a0, $t9, .L800B879C -/* B2F92C 800B878C 90480002 */ lbu $t0, 2($v0) -/* B2F930 800B8790 03E00008 */ jr $ra -/* B2F934 800B8794 24620042 */ addiu $v0, $v1, 0x42 - -/* B2F938 800B8798 90480002 */ lbu $t0, 2($v0) -.L800B879C: -/* B2F93C 800B879C 50880004 */ beql $a0, $t0, .L800B87B0 -/* B2F940 800B87A0 90490003 */ lbu $t1, 3($v0) -/* B2F944 800B87A4 03E00008 */ jr $ra -/* B2F948 800B87A8 24620043 */ addiu $v0, $v1, 0x43 - -/* B2F94C 800B87AC 90490003 */ lbu $t1, 3($v0) -.L800B87B0: -/* B2F950 800B87B0 50890004 */ beql $a0, $t1, .L800B87C4 -/* B2F954 800B87B4 24630004 */ addiu $v1, $v1, 4 -/* B2F958 800B87B8 03E00008 */ jr $ra -/* B2F95C 800B87BC 24620044 */ addiu $v0, $v1, 0x44 - -/* B2F960 800B87C0 24630004 */ addiu $v1, $v1, 4 -.L800B87C4: -/* B2F964 800B87C4 1465FFEA */ bne $v1, $a1, .L800B8770 -/* B2F968 800B87C8 24420004 */ addiu $v0, $v0, 4 -/* B2F96C 800B87CC 2402003F */ li $v0, 63 -/* B2F970 800B87D0 03E00008 */ jr $ra -/* B2F974 800B87D4 00000000 */ nop - diff --git a/asm/non_matchings/code/db_camera/func_800B87D8.s b/asm/non_matchings/code/db_camera/func_800B87D8.s index 6eb9a14763..f11aa7c07e 100644 --- a/asm/non_matchings/code/db_camera/func_800B87D8.s +++ b/asm/non_matchings/code/db_camera/func_800B87D8.s @@ -1,8 +1,40 @@ +.rdata +glabel D_80143968 + .asciz "../db_camera.c" + .balign 4 + +glabel D_80143978 + .asciz "%s: %d: デバッグカメラ メモリ確保失敗!!\n" + # EUC-JP: デバッグカメラ メモリ確保失敗!! | Debug camera memory allocation failure + .balign 4 + +glabel D_801439A4 + .asciz "../db_camera.c" + .balign 4 + +glabel D_801439B4 + .asciz "../db_camera.c" + .balign 4 + +glabel D_801439C4 + .asciz "%s: %d: デバッグカメラ メモリ確保失敗!!\n" + # EUC-JP: デバッグカメラ メモリ確保失敗!! | Debug camera memory allocation failure + .balign 4 + +glabel D_801439F0 + .asciz "../db_camera.c" + .balign 4 + +glabel D_80143A00 + .asciz "../db_camera.c" + .balign 4 + +.text glabel func_800B87D8 /* B2F978 800B87D8 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* B2F97C 800B87DC 3C0F8016 */ lui $t7, %hi(D_80161150) # $t7, 0x8016 +/* B2F97C 800B87DC 3C0F8016 */ lui $t7, %hi(sDbgEditorSlots) # $t7, 0x8016 /* B2F980 800B87E0 AFB00014 */ sw $s0, 0x14($sp) -/* B2F984 800B87E4 25EF1150 */ addiu $t7, %lo(D_80161150) # addiu $t7, $t7, 0x1150 +/* B2F984 800B87E4 25EF1150 */ addiu $t7, %lo(sDbgEditorSlots) # addiu $t7, $t7, 0x1150 /* B2F988 800B87E8 00047100 */ sll $t6, $a0, 4 /* B2F98C 800B87EC AFBF001C */ sw $ra, 0x1c($sp) /* B2F990 800B87F0 AFB10018 */ sw $s1, 0x18($sp) @@ -12,11 +44,11 @@ glabel func_800B87D8 /* B2F9A0 800B8800 0C02E1CC */ jal func_800B8730 /* B2F9A4 800B8804 A2180001 */ sb $t8, 1($s0) /* B2F9A8 800B8808 304800FF */ andi $t0, $v0, 0xff -/* B2F9AC 800B880C 3C018016 */ lui $at, %hi(D_8016128F) +/* B2F9AC 800B880C 3C018016 */ lui $at, %hi(sDbgEditorStates) /* B2F9B0 800B8810 A2020000 */ sb $v0, ($s0) /* B2F9B4 800B8814 00280821 */ addu $at, $at, $t0 /* B2F9B8 800B8818 2419004F */ li $t9, 79 -/* B2F9BC 800B881C A039128F */ sb $t9, %lo(D_8016128F)($at) +/* B2F9BC 800B881C A039128F */ sb $t9, %lo(sDbgEditorStates)($at) /* B2F9C0 800B8820 86270004 */ lh $a3, 4($s1) /* B2F9C4 800B8824 3C058014 */ lui $a1, %hi(D_80143968) # $a1, 0x8014 /* B2F9C8 800B8828 24A53968 */ addiu $a1, %lo(D_80143968) # addiu $a1, $a1, 0x3968 diff --git a/asm/non_matchings/code/db_camera/func_800B8978.s b/asm/non_matchings/code/db_camera/func_800B8978.s deleted file mode 100644 index fe00a490b1..0000000000 --- a/asm/non_matchings/code/db_camera/func_800B8978.s +++ /dev/null @@ -1,41 +0,0 @@ -glabel func_800B8978 -/* B2FB18 800B8978 3C0F8016 */ lui $t7, %hi(D_80161150) # $t7, 0x8016 -/* B2FB1C 800B897C 25EF1150 */ addiu $t7, %lo(D_80161150) # addiu $t7, $t7, 0x1150 -/* B2FB20 800B8980 00047100 */ sll $t6, $a0, 4 -/* B2FB24 800B8984 01CF1021 */ addu $v0, $t6, $t7 -/* B2FB28 800B8988 90430000 */ lbu $v1, ($v0) -/* B2FB2C 800B898C 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* B2FB30 800B8990 2401003F */ li $at, 63 -/* B2FB34 800B8994 10610005 */ beq $v1, $at, .L800B89AC -/* B2FB38 800B8998 AFBF0014 */ sw $ra, 0x14($sp) -/* B2FB3C 800B899C 3C018016 */ lui $at, %hi(D_8016128F) -/* B2FB40 800B89A0 00230821 */ addu $at, $at, $v1 -/* B2FB44 800B89A4 24180058 */ li $t8, 88 -/* B2FB48 800B89A8 A038128F */ sb $t8, %lo(D_8016128F)($at) -.L800B89AC: -/* B2FB4C 800B89AC 10A0000D */ beqz $a1, .L800B89E4 -/* B2FB50 800B89B0 24060AE0 */ li $a2, 2784 -/* B2FB54 800B89B4 3C058014 */ lui $a1, %hi(D_80143A10) # $a1, 0x8014 -/* B2FB58 800B89B8 24A53A10 */ addiu $a1, %lo(D_80143A10) # addiu $a1, $a1, 0x3a10 -/* B2FB5C 800B89BC 8C440008 */ lw $a0, 8($v0) -/* B2FB60 800B89C0 0C034F55 */ jal DebugArena_FreeDebug -/* B2FB64 800B89C4 AFA2001C */ sw $v0, 0x1c($sp) -/* B2FB68 800B89C8 8FA2001C */ lw $v0, 0x1c($sp) -/* B2FB6C 800B89CC 3C058014 */ lui $a1, %hi(D_80143A20) # $a1, 0x8014 -/* B2FB70 800B89D0 24A53A20 */ addiu $a1, %lo(D_80143A20) # addiu $a1, $a1, 0x3a20 -/* B2FB74 800B89D4 24060AE1 */ li $a2, 2785 -/* B2FB78 800B89D8 0C034F55 */ jal DebugArena_FreeDebug -/* B2FB7C 800B89DC 8C440004 */ lw $a0, 4($v0) -/* B2FB80 800B89E0 8FA2001C */ lw $v0, 0x1c($sp) -.L800B89E4: -/* B2FB84 800B89E4 8FBF0014 */ lw $ra, 0x14($sp) -/* B2FB88 800B89E8 2419003F */ li $t9, 63 -/* B2FB8C 800B89EC A0590000 */ sb $t9, ($v0) -/* B2FB90 800B89F0 AC400008 */ sw $zero, 8($v0) -/* B2FB94 800B89F4 AC400004 */ sw $zero, 4($v0) -/* B2FB98 800B89F8 A4400002 */ sh $zero, 2($v0) -/* B2FB9C 800B89FC A440000C */ sh $zero, 0xc($v0) -/* B2FBA0 800B8A00 A440000E */ sh $zero, 0xe($v0) -/* B2FBA4 800B8A04 03E00008 */ jr $ra -/* B2FBA8 800B8A08 27BD0020 */ addiu $sp, $sp, 0x20 - diff --git a/asm/non_matchings/code/db_camera/func_800B8A0C.s b/asm/non_matchings/code/db_camera/func_800B8A0C.s index ff742b502f..b405067a80 100644 --- a/asm/non_matchings/code/db_camera/func_800B8A0C.s +++ b/asm/non_matchings/code/db_camera/func_800B8A0C.s @@ -2,8 +2,8 @@ glabel func_800B8A0C /* B2FBAC 800B8A0C 3C048016 */ lui $a0, %hi(D_801612EC) # $a0, 0x8016 /* B2FBB0 800B8A10 248412EC */ addiu $a0, %lo(D_801612EC) # addiu $a0, $a0, 0x12ec /* B2FBB4 800B8A14 AC800000 */ sw $zero, ($a0) -/* B2FBB8 800B8A18 3C0E8016 */ lui $t6, %hi(D_80161150) # $t6, 0x8016 -/* B2FBBC 800B8A1C 91CE1150 */ lbu $t6, %lo(D_80161150)($t6) +/* B2FBB8 800B8A18 3C0E8016 */ lui $t6, %hi(sDbgEditorSlots) # $t6, 0x8016 +/* B2FBBC 800B8A1C 91CE1150 */ lbu $t6, %lo(sDbgEditorSlots)($t6) /* B2FBC0 800B8A20 2405003F */ li $a1, 63 /* B2FBC4 800B8A24 3C0C8016 */ lui $t4, %hi(D_80161160) # $t4, 0x8016 /* B2FBC8 800B8A28 10AE000A */ beq $a1, $t6, .L800B8A54 diff --git a/asm/non_matchings/code/db_camera/func_800B8BA4.s b/asm/non_matchings/code/db_camera/func_800B8BB0.s similarity index 50% rename from asm/non_matchings/code/db_camera/func_800B8BA4.s rename to asm/non_matchings/code/db_camera/func_800B8BB0.s index 6f130fbea1..419523d1d5 100644 --- a/asm/non_matchings/code/db_camera/func_800B8BA4.s +++ b/asm/non_matchings/code/db_camera/func_800B8BB0.s @@ -1,8 +1,31 @@ -glabel func_800B8BA4 -/* B2FD44 800B8BA4 3C028016 */ lui $v0, %hi(D_801612EC) -/* B2FD48 800B8BA8 03E00008 */ jr $ra -/* B2FD4C 800B8BAC 8C4212EC */ lw $v0, %lo(D_801612EC)($v0) +.rdata +glabel D_80143A30 + .asciz "../db_camera.c" + .balign 4 +glabel D_80143A40 + .asciz "%s: %d: デバッグカメラ メモリ確保失敗!!\n" + # EUC-JP: デバッグカメラ メモリ確保失敗!! | Debug camera memory allocation failure + .balign 4 + +glabel D_80143A6C + .asciz "../db_camera.c" + .balign 4 + +glabel D_80143A7C + .asciz "../db_camera.c" + .balign 4 + +glabel D_80143A8C + .asciz "%s: %d: デバッグカメラ メモリ確保失敗!!\n" + # EUC-JP: デバッグカメラ メモリ確保失敗!! | Debug camera memory allocation failure + .balign 4 + +glabel D_80143AB8 + .asciz "../db_camera.c" + .balign 4 + +.text glabel func_800B8BB0 /* B2FD50 800B8BB0 27BDFFB8 */ addiu $sp, $sp, -0x48 /* B2FD54 800B8BB4 AFB00020 */ sw $s0, 0x20($sp) @@ -10,14 +33,14 @@ glabel func_800B8BB0 /* B2FD5C 800B8BBC AFB40030 */ sw $s4, 0x30($sp) /* B2FD60 800B8BC0 AFB3002C */ sw $s3, 0x2c($sp) /* B2FD64 800B8BC4 AFB10024 */ sw $s1, 0x24($sp) -/* B2FD68 800B8BC8 3C108016 */ lui $s0, %hi(D_80161150) # $s0, 0x8016 +/* B2FD68 800B8BC8 3C108016 */ lui $s0, %hi(sDbgEditorSlots) # $s0, 0x8016 /* B2FD6C 800B8BCC 0080A025 */ move $s4, $a0 /* B2FD70 800B8BD0 AFBF0044 */ sw $ra, 0x44($sp) /* B2FD74 800B8BD4 AFBE0040 */ sw $fp, 0x40($sp) /* B2FD78 800B8BD8 AFB7003C */ sw $s7, 0x3c($sp) /* B2FD7C 800B8BDC AFB60038 */ sw $s6, 0x38($sp) /* B2FD80 800B8BE0 AFB20028 */ sw $s2, 0x28($sp) -/* B2FD84 800B8BE4 26101150 */ addiu $s0, %lo(D_80161150) # addiu $s0, $s0, 0x1150 +/* B2FD84 800B8BE4 26101150 */ addiu $s0, %lo(sDbgEditorSlots) # addiu $s0, $s0, 0x1150 /* B2FD88 800B8BE8 00008825 */ move $s1, $zero /* B2FD8C 800B8BEC 24130058 */ li $s3, 88 /* B2FD90 800B8BF0 2415003F */ li $s5, 63 @@ -37,10 +60,10 @@ glabel func_800B8BB0 /* B2FDC0 800B8C20 1420FFF4 */ bnez $at, .L800B8BF4 /* B2FDC4 800B8C24 26100010 */ addiu $s0, $s0, 0x10 /* B2FDC8 800B8C28 92850000 */ lbu $a1, ($s4) -/* B2FDCC 800B8C2C 3C068016 */ lui $a2, %hi(D_80161150) # $a2, 0x8016 +/* B2FDCC 800B8C2C 3C068016 */ lui $a2, %hi(sDbgEditorSlots) # $a2, 0x8016 /* B2FDD0 800B8C30 24180100 */ li $t8, 256 /* B2FDD4 800B8C34 AFB80010 */ sw $t8, 0x10($sp) -/* B2FDD8 800B8C38 24C61150 */ addiu $a2, %lo(D_80161150) # addiu $a2, $a2, 0x1150 +/* B2FDD8 800B8C38 24C61150 */ addiu $a2, %lo(sDbgEditorSlots) # addiu $a2, $a2, 0x1150 /* B2FDDC 800B8C3C 24040002 */ li $a0, 2 /* B2FDE0 800B8C40 0C02EE0E */ jal Mempak_Read /* B2FDE4 800B8C44 00003825 */ move $a3, $zero @@ -49,12 +72,12 @@ glabel func_800B8BB0 /* B2FDF0 800B8C50 1000004B */ b .L800B8D80 /* B2FDF4 800B8C54 00001025 */ move $v0, $zero .L800B8C58: -/* B2FDF8 800B8C58 3C108016 */ lui $s0, %hi(D_80161150) # $s0, 0x8016 +/* B2FDF8 800B8C58 3C108016 */ lui $s0, %hi(sDbgEditorSlots) # $s0, 0x8016 /* B2FDFC 800B8C5C 3C1E8014 */ lui $fp, %hi(D_80143A7C) # $fp, 0x8014 /* B2FE00 800B8C60 3C178014 */ lui $s7, %hi(D_80143A30) # $s7, 0x8014 /* B2FE04 800B8C64 26F73A30 */ addiu $s7, %lo(D_80143A30) # addiu $s7, $s7, 0x3a30 /* B2FE08 800B8C68 27DE3A7C */ addiu $fp, %lo(D_80143A7C) # addiu $fp, $fp, 0x3a7c -/* B2FE0C 800B8C6C 26101150 */ addiu $s0, %lo(D_80161150) # addiu $s0, $s0, 0x1150 +/* B2FE0C 800B8C6C 26101150 */ addiu $s0, %lo(sDbgEditorSlots) # addiu $s0, $s0, 0x1150 /* B2FE10 800B8C70 2416FFE0 */ li $s6, -32 /* B2FE14 800B8C74 92190000 */ lbu $t9, ($s0) .L800B8C78: @@ -118,10 +141,10 @@ glabel func_800B8BB0 /* B2FEF0 800B8D50 00001025 */ move $v0, $zero .L800B8D54: /* B2FEF4 800B8D54 920A0000 */ lbu $t2, ($s0) -/* B2FEF8 800B8D58 3C018016 */ lui $at, %hi(D_8016128F) +/* B2FEF8 800B8D58 3C018016 */ lui $at, %hi(sDbgEditorStates) /* B2FEFC 800B8D5C 2409004F */ li $t1, 79 /* B2FF00 800B8D60 002A0821 */ addu $at, $at, $t2 -/* B2FF04 800B8D64 A029128F */ sb $t1, %lo(D_8016128F)($at) +/* B2FF04 800B8D64 A029128F */ sb $t1, %lo(sDbgEditorStates)($at) .L800B8D68: /* B2FF08 800B8D68 3C0B8016 */ lui $t3, %hi(D_80161240) # $t3, 0x8016 /* B2FF0C 800B8D6C 256B1240 */ addiu $t3, %lo(D_80161240) # addiu $t3, $t3, 0x1240 @@ -142,121 +165,3 @@ glabel func_800B8BB0 /* B2FF44 800B8DA4 8FBE0040 */ lw $fp, 0x40($sp) /* B2FF48 800B8DA8 03E00008 */ jr $ra /* B2FF4C 800B8DAC 27BD0048 */ addiu $sp, $sp, 0x48 - -glabel func_800B8DB0 -/* B2FF50 800B8DB0 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* B2FF54 800B8DB4 AFB3002C */ sw $s3, 0x2c($sp) -/* B2FF58 800B8DB8 00809825 */ move $s3, $a0 -/* B2FF5C 800B8DBC AFBF003C */ sw $ra, 0x3c($sp) -/* B2FF60 800B8DC0 AFB60038 */ sw $s6, 0x38($sp) -/* B2FF64 800B8DC4 AFB50034 */ sw $s5, 0x34($sp) -/* B2FF68 800B8DC8 AFB40030 */ sw $s4, 0x30($sp) -/* B2FF6C 800B8DCC AFB20028 */ sw $s2, 0x28($sp) -/* B2FF70 800B8DD0 AFB10024 */ sw $s1, 0x24($sp) -/* B2FF74 800B8DD4 AFB00020 */ sw $s0, 0x20($sp) -/* B2FF78 800B8DD8 92650000 */ lbu $a1, ($s3) -/* B2FF7C 800B8DDC 0C02EF05 */ jal Mempak_GetFileSize -/* B2FF80 800B8DE0 24040002 */ li $a0, 2 -/* B2FF84 800B8DE4 24040002 */ li $a0, 2 -/* B2FF88 800B8DE8 0C02ED7A */ jal Mempak_GetFreeBytes -/* B2FF8C 800B8DEC AFA20044 */ sw $v0, 0x44($sp) -/* B2FF90 800B8DF0 8FA30044 */ lw $v1, 0x44($sp) -/* B2FF94 800B8DF4 3C068016 */ lui $a2, %hi(D_801612EC) # $a2, 0x8016 -/* B2FF98 800B8DF8 8CC612EC */ lw $a2, %lo(D_801612EC)($a2) -/* B2FF9C 800B8DFC 00437021 */ addu $t6, $v0, $v1 -/* B2FFA0 800B8E00 24040002 */ li $a0, 2 -/* B2FFA4 800B8E04 00CE082B */ sltu $at, $a2, $t6 -/* B2FFA8 800B8E08 1020003F */ beqz $at, .L800B8F08 -/* B2FFAC 800B8E0C 00001025 */ move $v0, $zero -/* B2FFB0 800B8E10 0C02EE43 */ jal Mempak_Alloc -/* B2FFB4 800B8E14 02602825 */ move $a1, $s3 -/* B2FFB8 800B8E18 14400003 */ bnez $v0, .L800B8E28 -/* B2FFBC 800B8E1C 24040002 */ li $a0, 2 -/* B2FFC0 800B8E20 10000039 */ b .L800B8F08 -/* B2FFC4 800B8E24 00001025 */ move $v0, $zero -.L800B8E28: -/* B2FFC8 800B8E28 92650000 */ lbu $a1, ($s3) -/* B2FFCC 800B8E2C 3C068016 */ lui $a2, %hi(D_80161150) # $a2, 0x8016 -/* B2FFD0 800B8E30 240F0100 */ li $t7, 256 -/* B2FFD4 800B8E34 AFAF0010 */ sw $t7, 0x10($sp) -/* B2FFD8 800B8E38 24C61150 */ addiu $a2, %lo(D_80161150) # addiu $a2, $a2, 0x1150 -/* B2FFDC 800B8E3C 0C02EDD9 */ jal Mempak_Write -/* B2FFE0 800B8E40 00003825 */ move $a3, $zero -/* B2FFE4 800B8E44 14400006 */ bnez $v0, .L800B8E60 -/* B2FFE8 800B8E48 24120100 */ li $s2, 256 -/* B2FFEC 800B8E4C 24040002 */ li $a0, 2 -/* B2FFF0 800B8E50 0C02EEDB */ jal Mempak_DeleteFile -/* B2FFF4 800B8E54 92650000 */ lbu $a1, ($s3) -/* B2FFF8 800B8E58 1000002B */ b .L800B8F08 -/* B2FFFC 800B8E5C 00001025 */ move $v0, $zero -.L800B8E60: -/* B30000 800B8E60 3C118016 */ lui $s1, %hi(D_80161150) # $s1, 0x8016 -/* B30004 800B8E64 3C168016 */ lui $s6, %hi(D_80161240) # $s6, 0x8016 -/* B30008 800B8E68 26D61240 */ addiu $s6, %lo(D_80161240) # addiu $s6, $s6, 0x1240 -/* B3000C 800B8E6C 26311150 */ addiu $s1, %lo(D_80161150) # addiu $s1, $s1, 0x1150 -/* B30010 800B8E70 2415FFE0 */ li $s5, -32 -/* B30014 800B8E74 2414003F */ li $s4, 63 -.L800B8E78: -/* B30018 800B8E78 92380000 */ lbu $t8, ($s1) -/* B3001C 800B8E7C 24040002 */ li $a0, 2 -/* B30020 800B8E80 02403825 */ move $a3, $s2 -/* B30024 800B8E84 52980016 */ beql $s4, $t8, .L800B8EE0 -/* B30028 800B8E88 26310010 */ addiu $s1, $s1, 0x10 -/* B3002C 800B8E8C 8622000E */ lh $v0, 0xe($s1) -/* B30030 800B8E90 92650000 */ lbu $a1, ($s3) -/* B30034 800B8E94 8E260008 */ lw $a2, 8($s1) -/* B30038 800B8E98 00021100 */ sll $v0, $v0, 4 -/* B3003C 800B8E9C 2459001F */ addiu $t9, $v0, 0x1f -/* B30040 800B8EA0 03358024 */ and $s0, $t9, $s5 -/* B30044 800B8EA4 0C02EDD9 */ jal Mempak_Write -/* B30048 800B8EA8 AFB00010 */ sw $s0, 0x10($sp) -/* B3004C 800B8EAC 1040000E */ beqz $v0, .L800B8EE8 -/* B30050 800B8EB0 00401825 */ move $v1, $v0 -/* B30054 800B8EB4 02509021 */ addu $s2, $s2, $s0 -/* B30058 800B8EB8 92650000 */ lbu $a1, ($s3) -/* B3005C 800B8EBC AFB00010 */ sw $s0, 0x10($sp) -/* B30060 800B8EC0 02403825 */ move $a3, $s2 -/* B30064 800B8EC4 24040002 */ li $a0, 2 -/* B30068 800B8EC8 0C02EDD9 */ jal Mempak_Write -/* B3006C 800B8ECC 8E260004 */ lw $a2, 4($s1) -/* B30070 800B8ED0 10400005 */ beqz $v0, .L800B8EE8 -/* B30074 800B8ED4 00401825 */ move $v1, $v0 -/* B30078 800B8ED8 02509021 */ addu $s2, $s2, $s0 -/* B3007C 800B8EDC 26310010 */ addiu $s1, $s1, 0x10 -.L800B8EE0: -/* B30080 800B8EE0 1636FFE5 */ bne $s1, $s6, .L800B8E78 -/* B30084 800B8EE4 24030001 */ li $v1, 1 -.L800B8EE8: -/* B30088 800B8EE8 10600003 */ beqz $v1, .L800B8EF8 -/* B3008C 800B8EEC 24040002 */ li $a0, 2 -/* B30090 800B8EF0 10000005 */ b .L800B8F08 -/* B30094 800B8EF4 92620000 */ lbu $v0, ($s3) -.L800B8EF8: -/* B30098 800B8EF8 0C02EEDB */ jal Mempak_DeleteFile -/* B3009C 800B8EFC 92650000 */ lbu $a1, ($s3) -/* B300A0 800B8F00 10000001 */ b .L800B8F08 -/* B300A4 800B8F04 00001025 */ move $v0, $zero -.L800B8F08: -/* B300A8 800B8F08 8FBF003C */ lw $ra, 0x3c($sp) -/* B300AC 800B8F0C 8FB00020 */ lw $s0, 0x20($sp) -/* B300B0 800B8F10 8FB10024 */ lw $s1, 0x24($sp) -/* B300B4 800B8F14 8FB20028 */ lw $s2, 0x28($sp) -/* B300B8 800B8F18 8FB3002C */ lw $s3, 0x2c($sp) -/* B300BC 800B8F1C 8FB40030 */ lw $s4, 0x30($sp) -/* B300C0 800B8F20 8FB50034 */ lw $s5, 0x34($sp) -/* B300C4 800B8F24 8FB60038 */ lw $s6, 0x38($sp) -/* B300C8 800B8F28 03E00008 */ jr $ra -/* B300CC 800B8F2C 27BD0050 */ addiu $sp, $sp, 0x50 - -glabel func_800B8F30 -/* B300D0 800B8F30 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* B300D4 800B8F34 AFBF0014 */ sw $ra, 0x14($sp) -/* B300D8 800B8F38 00803025 */ move $a2, $a0 -/* B300DC 800B8F3C 90C50000 */ lbu $a1, ($a2) -/* B300E0 800B8F40 0C02EEDB */ jal Mempak_DeleteFile -/* B300E4 800B8F44 24040002 */ li $a0, 2 -/* B300E8 800B8F48 8FBF0014 */ lw $ra, 0x14($sp) -/* B300EC 800B8F4C 27BD0018 */ addiu $sp, $sp, 0x18 -/* B300F0 800B8F50 03E00008 */ jr $ra -/* B300F4 800B8F54 00000000 */ nop - diff --git a/asm/non_matchings/code/db_camera/func_800B8DB0.s b/asm/non_matchings/code/db_camera/func_800B8DB0.s new file mode 100644 index 0000000000..4beb492bc3 --- /dev/null +++ b/asm/non_matchings/code/db_camera/func_800B8DB0.s @@ -0,0 +1,104 @@ +glabel func_800B8DB0 +/* B2FF50 800B8DB0 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* B2FF54 800B8DB4 AFB3002C */ sw $s3, 0x2c($sp) +/* B2FF58 800B8DB8 00809825 */ move $s3, $a0 +/* B2FF5C 800B8DBC AFBF003C */ sw $ra, 0x3c($sp) +/* B2FF60 800B8DC0 AFB60038 */ sw $s6, 0x38($sp) +/* B2FF64 800B8DC4 AFB50034 */ sw $s5, 0x34($sp) +/* B2FF68 800B8DC8 AFB40030 */ sw $s4, 0x30($sp) +/* B2FF6C 800B8DCC AFB20028 */ sw $s2, 0x28($sp) +/* B2FF70 800B8DD0 AFB10024 */ sw $s1, 0x24($sp) +/* B2FF74 800B8DD4 AFB00020 */ sw $s0, 0x20($sp) +/* B2FF78 800B8DD8 92650000 */ lbu $a1, ($s3) +/* B2FF7C 800B8DDC 0C02EF05 */ jal Mempak_GetFileSize +/* B2FF80 800B8DE0 24040002 */ li $a0, 2 +/* B2FF84 800B8DE4 24040002 */ li $a0, 2 +/* B2FF88 800B8DE8 0C02ED7A */ jal Mempak_GetFreeBytes +/* B2FF8C 800B8DEC AFA20044 */ sw $v0, 0x44($sp) +/* B2FF90 800B8DF0 8FA30044 */ lw $v1, 0x44($sp) +/* B2FF94 800B8DF4 3C068016 */ lui $a2, %hi(D_801612EC) # $a2, 0x8016 +/* B2FF98 800B8DF8 8CC612EC */ lw $a2, %lo(D_801612EC)($a2) +/* B2FF9C 800B8DFC 00437021 */ addu $t6, $v0, $v1 +/* B2FFA0 800B8E00 24040002 */ li $a0, 2 +/* B2FFA4 800B8E04 00CE082B */ sltu $at, $a2, $t6 +/* B2FFA8 800B8E08 1020003F */ beqz $at, .L800B8F08 +/* B2FFAC 800B8E0C 00001025 */ move $v0, $zero +/* B2FFB0 800B8E10 0C02EE43 */ jal Mempak_Alloc +/* B2FFB4 800B8E14 02602825 */ move $a1, $s3 +/* B2FFB8 800B8E18 14400003 */ bnez $v0, .L800B8E28 +/* B2FFBC 800B8E1C 24040002 */ li $a0, 2 +/* B2FFC0 800B8E20 10000039 */ b .L800B8F08 +/* B2FFC4 800B8E24 00001025 */ move $v0, $zero +.L800B8E28: +/* B2FFC8 800B8E28 92650000 */ lbu $a1, ($s3) +/* B2FFCC 800B8E2C 3C068016 */ lui $a2, %hi(sDbgEditorSlots) # $a2, 0x8016 +/* B2FFD0 800B8E30 240F0100 */ li $t7, 256 +/* B2FFD4 800B8E34 AFAF0010 */ sw $t7, 0x10($sp) +/* B2FFD8 800B8E38 24C61150 */ addiu $a2, %lo(sDbgEditorSlots) # addiu $a2, $a2, 0x1150 +/* B2FFDC 800B8E3C 0C02EDD9 */ jal Mempak_Write +/* B2FFE0 800B8E40 00003825 */ move $a3, $zero +/* B2FFE4 800B8E44 14400006 */ bnez $v0, .L800B8E60 +/* B2FFE8 800B8E48 24120100 */ li $s2, 256 +/* B2FFEC 800B8E4C 24040002 */ li $a0, 2 +/* B2FFF0 800B8E50 0C02EEDB */ jal Mempak_DeleteFile +/* B2FFF4 800B8E54 92650000 */ lbu $a1, ($s3) +/* B2FFF8 800B8E58 1000002B */ b .L800B8F08 +/* B2FFFC 800B8E5C 00001025 */ move $v0, $zero +.L800B8E60: +/* B30000 800B8E60 3C118016 */ lui $s1, %hi(sDbgEditorSlots) # $s1, 0x8016 +/* B30004 800B8E64 3C168016 */ lui $s6, %hi(D_80161240) # $s6, 0x8016 +/* B30008 800B8E68 26D61240 */ addiu $s6, %lo(D_80161240) # addiu $s6, $s6, 0x1240 +/* B3000C 800B8E6C 26311150 */ addiu $s1, %lo(sDbgEditorSlots) # addiu $s1, $s1, 0x1150 +/* B30010 800B8E70 2415FFE0 */ li $s5, -32 +/* B30014 800B8E74 2414003F */ li $s4, 63 +.L800B8E78: +/* B30018 800B8E78 92380000 */ lbu $t8, ($s1) +/* B3001C 800B8E7C 24040002 */ li $a0, 2 +/* B30020 800B8E80 02403825 */ move $a3, $s2 +/* B30024 800B8E84 52980016 */ beql $s4, $t8, .L800B8EE0 +/* B30028 800B8E88 26310010 */ addiu $s1, $s1, 0x10 +/* B3002C 800B8E8C 8622000E */ lh $v0, 0xe($s1) +/* B30030 800B8E90 92650000 */ lbu $a1, ($s3) +/* B30034 800B8E94 8E260008 */ lw $a2, 8($s1) +/* B30038 800B8E98 00021100 */ sll $v0, $v0, 4 +/* B3003C 800B8E9C 2459001F */ addiu $t9, $v0, 0x1f +/* B30040 800B8EA0 03358024 */ and $s0, $t9, $s5 +/* B30044 800B8EA4 0C02EDD9 */ jal Mempak_Write +/* B30048 800B8EA8 AFB00010 */ sw $s0, 0x10($sp) +/* B3004C 800B8EAC 1040000E */ beqz $v0, .L800B8EE8 +/* B30050 800B8EB0 00401825 */ move $v1, $v0 +/* B30054 800B8EB4 02509021 */ addu $s2, $s2, $s0 +/* B30058 800B8EB8 92650000 */ lbu $a1, ($s3) +/* B3005C 800B8EBC AFB00010 */ sw $s0, 0x10($sp) +/* B30060 800B8EC0 02403825 */ move $a3, $s2 +/* B30064 800B8EC4 24040002 */ li $a0, 2 +/* B30068 800B8EC8 0C02EDD9 */ jal Mempak_Write +/* B3006C 800B8ECC 8E260004 */ lw $a2, 4($s1) +/* B30070 800B8ED0 10400005 */ beqz $v0, .L800B8EE8 +/* B30074 800B8ED4 00401825 */ move $v1, $v0 +/* B30078 800B8ED8 02509021 */ addu $s2, $s2, $s0 +/* B3007C 800B8EDC 26310010 */ addiu $s1, $s1, 0x10 +.L800B8EE0: +/* B30080 800B8EE0 1636FFE5 */ bne $s1, $s6, .L800B8E78 +/* B30084 800B8EE4 24030001 */ li $v1, 1 +.L800B8EE8: +/* B30088 800B8EE8 10600003 */ beqz $v1, .L800B8EF8 +/* B3008C 800B8EEC 24040002 */ li $a0, 2 +/* B30090 800B8EF0 10000005 */ b .L800B8F08 +/* B30094 800B8EF4 92620000 */ lbu $v0, ($s3) +.L800B8EF8: +/* B30098 800B8EF8 0C02EEDB */ jal Mempak_DeleteFile +/* B3009C 800B8EFC 92650000 */ lbu $a1, ($s3) +/* B300A0 800B8F00 10000001 */ b .L800B8F08 +/* B300A4 800B8F04 00001025 */ move $v0, $zero +.L800B8F08: +/* B300A8 800B8F08 8FBF003C */ lw $ra, 0x3c($sp) +/* B300AC 800B8F0C 8FB00020 */ lw $s0, 0x20($sp) +/* B300B0 800B8F10 8FB10024 */ lw $s1, 0x24($sp) +/* B300B4 800B8F14 8FB20028 */ lw $s2, 0x28($sp) +/* B300B8 800B8F18 8FB3002C */ lw $s3, 0x2c($sp) +/* B300BC 800B8F1C 8FB40030 */ lw $s4, 0x30($sp) +/* B300C0 800B8F20 8FB50034 */ lw $s5, 0x34($sp) +/* B300C4 800B8F24 8FB60038 */ lw $s6, 0x38($sp) +/* B300C8 800B8F28 03E00008 */ jr $ra +/* B300CC 800B8F2C 27BD0050 */ addiu $sp, $sp, 0x50 \ No newline at end of file diff --git a/asm/non_matchings/code/db_camera/func_800B8F58.s b/asm/non_matchings/code/db_camera/func_800B8F58.s index 90087c8a5b..9871b21535 100644 --- a/asm/non_matchings/code/db_camera/func_800B8F58.s +++ b/asm/non_matchings/code/db_camera/func_800B8F58.s @@ -1,7 +1,7 @@ glabel func_800B8F58 /* B300F8 800B8F58 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* B300FC 800B8F5C 3C0E8016 */ lui $t6, %hi(D_80161150) # $t6, 0x8016 -/* B30100 800B8F60 91CE1150 */ lbu $t6, %lo(D_80161150)($t6) +/* B300FC 800B8F5C 3C0E8016 */ lui $t6, %hi(sDbgEditorSlots) # $t6, 0x8016 +/* B30100 800B8F60 91CE1150 */ lbu $t6, %lo(sDbgEditorSlots)($t6) /* B30104 800B8F64 AFBF001C */ sw $ra, 0x1c($sp) /* B30108 800B8F68 AFB00018 */ sw $s0, 0x18($sp) /* B3010C 800B8F6C AFA50034 */ sw $a1, 0x34($sp) diff --git a/asm/non_matchings/code/db_camera/func_800B9060.s b/asm/non_matchings/code/db_camera/func_800B9060.s deleted file mode 100644 index a6ae45fdb7..0000000000 --- a/asm/non_matchings/code/db_camera/func_800B9060.s +++ /dev/null @@ -1,89 +0,0 @@ -glabel func_800B9060 -/* B30200 800B9060 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* B30204 800B9064 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* B30208 800B9068 3C0E8013 */ lui $t6, %hi(D_801333E8) # $t6, 0x8013 -/* B3020C 800B906C 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* B30210 800B9070 AFBF0044 */ sw $ra, 0x44($sp) -/* B30214 800B9074 AFA40048 */ sw $a0, 0x48($sp) -/* B30218 800B9078 25CE33E8 */ addiu $t6, %lo(D_801333E8) # addiu $t6, $t6, 0x33e8 -/* B3021C 800B907C 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* B30220 800B9080 AFBE0040 */ sw $fp, 0x40($sp) -/* B30224 800B9084 AFB7003C */ sw $s7, 0x3c($sp) -/* B30228 800B9088 AFB60038 */ sw $s6, 0x38($sp) -/* B3022C 800B908C AFB50034 */ sw $s5, 0x34($sp) -/* B30230 800B9090 AFB40030 */ sw $s4, 0x30($sp) -/* B30234 800B9094 AFB3002C */ sw $s3, 0x2c($sp) -/* B30238 800B9098 AFB20028 */ sw $s2, 0x28($sp) -/* B3023C 800B909C AFB10024 */ sw $s1, 0x24($sp) -/* B30240 800B90A0 AFB00020 */ sw $s0, 0x20($sp) -/* B30244 800B90A4 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* B30248 800B90A8 AFAE0014 */ sw $t6, 0x14($sp) -/* B3024C 800B90AC 24044803 */ li $a0, 18435 -/* B30250 800B90B0 AFA70010 */ sw $a3, 0x10($sp) -/* B30254 800B90B4 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* B30258 800B90B8 24060004 */ li $a2, 4 -/* B3025C 800B90BC 3C048014 */ lui $a0, %hi(D_80143AC8) # $a0, 0x8014 -/* B30260 800B90C0 0C00084C */ jal osSyncPrintf -/* B30264 800B90C4 24843AC8 */ addiu $a0, %lo(D_80143AC8) # addiu $a0, $a0, 0x3ac8 -/* B30268 800B90C8 3C108016 */ lui $s0, %hi(D_80161150) # $s0, 0x8016 -/* B3026C 800B90CC 3C178014 */ lui $s7, %hi(D_80143B84) # $s7, 0x8014 -/* B30270 800B90D0 3C168014 */ lui $s6, %hi(D_80143B60) # $s6, 0x8014 -/* B30274 800B90D4 3C158014 */ lui $s5, %hi(D_80143B3C) # $s5, 0x8014 -/* B30278 800B90D8 3C148014 */ lui $s4, %hi(D_80143B30) # $s4, 0x8014 -/* B3027C 800B90DC 3C138014 */ lui $s3, %hi(D_80143B28) # $s3, 0x8014 -/* B30280 800B90E0 3C128014 */ lui $s2, %hi(D_80143B0C) # $s2, 0x8014 -/* B30284 800B90E4 26523B0C */ addiu $s2, %lo(D_80143B0C) # addiu $s2, $s2, 0x3b0c -/* B30288 800B90E8 26733B28 */ addiu $s3, %lo(D_80143B28) # addiu $s3, $s3, 0x3b28 -/* B3028C 800B90EC 26943B30 */ addiu $s4, %lo(D_80143B30) # addiu $s4, $s4, 0x3b30 -/* B30290 800B90F0 26B53B3C */ addiu $s5, %lo(D_80143B3C) # addiu $s5, $s5, 0x3b3c -/* B30294 800B90F4 26D63B60 */ addiu $s6, %lo(D_80143B60) # addiu $s6, $s6, 0x3b60 -/* B30298 800B90F8 26F73B84 */ addiu $s7, %lo(D_80143B84) # addiu $s7, $s7, 0x3b84 -/* B3029C 800B90FC 26101150 */ addiu $s0, %lo(D_80161150) # addiu $s0, $s0, 0x1150 -/* B302A0 800B9100 00008825 */ move $s1, $zero -/* B302A4 800B9104 241E000F */ li $fp, 15 -.L800B9108: -/* B302A8 800B9108 8605000E */ lh $a1, 0xe($s0) -/* B302AC 800B910C 50A00017 */ beql $a1, $zero, .L800B916C -/* B302B0 800B9110 26310001 */ addiu $s1, $s1, 1 -/* B302B4 800B9114 12200004 */ beqz $s1, .L800B9128 -/* B302B8 800B9118 02402025 */ move $a0, $s2 -/* B302BC 800B911C 0C00084C */ jal osSyncPrintf -/* B302C0 800B9120 02202825 */ move $a1, $s1 -/* B302C4 800B9124 8605000E */ lh $a1, 0xe($s0) -.L800B9128: -/* B302C8 800B9128 02602025 */ move $a0, $s3 -/* B302CC 800B912C 0C02D248 */ jal func_800B4920 -/* B302D0 800B9130 8E060008 */ lw $a2, 8($s0) -/* B302D4 800B9134 02802025 */ move $a0, $s4 -/* B302D8 800B9138 8605000E */ lh $a1, 0xe($s0) -/* B302DC 800B913C 0C02D248 */ jal func_800B4920 -/* B302E0 800B9140 8E060004 */ lw $a2, 4($s0) -/* B302E4 800B9144 02A02025 */ move $a0, $s5 -/* B302E8 800B9148 0C00084C */ jal osSyncPrintf -/* B302EC 800B914C 8605000E */ lh $a1, 0xe($s0) -/* B302F0 800B9150 02C02025 */ move $a0, $s6 -/* B302F4 800B9154 0C00084C */ jal osSyncPrintf -/* B302F8 800B9158 8605000C */ lh $a1, 0xc($s0) -/* B302FC 800B915C 02E02025 */ move $a0, $s7 -/* B30300 800B9160 0C00084C */ jal osSyncPrintf -/* B30304 800B9164 86050002 */ lh $a1, 2($s0) -/* B30308 800B9168 26310001 */ addiu $s1, $s1, 1 -.L800B916C: -/* B3030C 800B916C 163EFFE6 */ bne $s1, $fp, .L800B9108 -/* B30310 800B9170 26100010 */ addiu $s0, $s0, 0x10 -/* B30314 800B9174 3C048014 */ lui $a0, %hi(D_80143BA8) # $a0, 0x8014 -/* B30318 800B9178 0C00084C */ jal osSyncPrintf -/* B3031C 800B917C 24843BA8 */ addiu $a0, %lo(D_80143BA8) # addiu $a0, $a0, 0x3ba8 -/* B30320 800B9180 8FBF0044 */ lw $ra, 0x44($sp) -/* B30324 800B9184 8FB00020 */ lw $s0, 0x20($sp) -/* B30328 800B9188 8FB10024 */ lw $s1, 0x24($sp) -/* B3032C 800B918C 8FB20028 */ lw $s2, 0x28($sp) -/* B30330 800B9190 8FB3002C */ lw $s3, 0x2c($sp) -/* B30334 800B9194 8FB40030 */ lw $s4, 0x30($sp) -/* B30338 800B9198 8FB50034 */ lw $s5, 0x34($sp) -/* B3033C 800B919C 8FB60038 */ lw $s6, 0x38($sp) -/* B30340 800B91A0 8FB7003C */ lw $s7, 0x3c($sp) -/* B30344 800B91A4 8FBE0040 */ lw $fp, 0x40($sp) -/* B30348 800B91A8 03E00008 */ jr $ra -/* B3034C 800B91AC 27BD0048 */ addiu $sp, $sp, 0x48 - diff --git a/asm/non_matchings/code/db_camera/func_800B91B0.s b/asm/non_matchings/code/db_camera/func_800B91B0.s index 232ed5368d..8e352e426b 100644 --- a/asm/non_matchings/code/db_camera/func_800B91B0.s +++ b/asm/non_matchings/code/db_camera/func_800B91B0.s @@ -5,8 +5,8 @@ glabel func_800B91B0 /* B3035C 800B91BC 2610110C */ addiu $s0, %lo(D_8016110C) # addiu $s0, $s0, 0x110c /* B30360 800B91C0 86030000 */ lh $v1, ($s0) /* B30364 800B91C4 AFB20028 */ sw $s2, 0x28($sp) -/* B30368 800B91C8 3C128016 */ lui $s2, %hi(D_80161150) -/* B3036C 800B91CC 26521150 */ addiu $s2, %lo(D_80161150) # addiu $s2, $s2, 0x1150 +/* B30368 800B91C8 3C128016 */ lui $s2, %hi(sDbgEditorSlots) +/* B3036C 800B91CC 26521150 */ addiu $s2, %lo(sDbgEditorSlots) # addiu $s2, $s2, 0x1150 /* B30370 800B91D0 00037100 */ sll $t6, $v1, 4 /* B30374 800B91D4 024E1021 */ addu $v0, $s2, $t6 /* B30378 800B91D8 904F0000 */ lbu $t7, ($v0) diff --git a/asm/non_matchings/code/db_camera/func_800B958C.s b/asm/non_matchings/code/db_camera/func_800B958C.s deleted file mode 100644 index 0eaab99b61..0000000000 --- a/asm/non_matchings/code/db_camera/func_800B958C.s +++ /dev/null @@ -1,47 +0,0 @@ -glabel func_800B958C -/* B3072C 800B958C 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* B30730 800B9590 AFA40020 */ sw $a0, 0x20($sp) -/* B30734 800B9594 240E002A */ li $t6, 42 -/* B30738 800B9598 3C018016 */ lui $at, %hi(D_801612EA) # $at, 0x8016 -/* B3073C 800B959C 3C048016 */ lui $a0, %hi(D_801612EA) # $a0, 0x8016 -/* B30740 800B95A0 3C028016 */ lui $v0, %hi(D_801612D0) # $v0, 0x8016 -/* B30744 800B95A4 AFBF001C */ sw $ra, 0x1c($sp) -/* B30748 800B95A8 AFB10018 */ sw $s1, 0x18($sp) -/* B3074C 800B95AC AFB00014 */ sw $s0, 0x14($sp) -/* B30750 800B95B0 AFA50024 */ sw $a1, 0x24($sp) -/* B30754 800B95B4 A02E12EA */ sb $t6, %lo(D_801612EA)($at) -/* B30758 800B95B8 244212D0 */ addiu $v0, %lo(D_801612D0) # addiu $v0, $v0, 0x12d0 -/* B3075C 800B95BC 248412EA */ addiu $a0, %lo(D_801612EA) # addiu $a0, $a0, 0x12ea -/* B30760 800B95C0 24030058 */ li $v1, 88 -.L800B95C4: -/* B30764 800B95C4 24420001 */ addiu $v0, $v0, 1 -/* B30768 800B95C8 0044082B */ sltu $at, $v0, $a0 -/* B3076C 800B95CC 1420FFFD */ bnez $at, .L800B95C4 -/* B30770 800B95D0 A043FFFF */ sb $v1, -1($v0) -/* B30774 800B95D4 00008025 */ move $s0, $zero -/* B30778 800B95D8 2411000F */ li $s1, 15 -/* B3077C 800B95DC 02002025 */ move $a0, $s0 -.L800B95E0: -/* B30780 800B95E0 0C02E25E */ jal func_800B8978 -/* B30784 800B95E4 00002825 */ move $a1, $zero -/* B30788 800B95E8 26100001 */ addiu $s0, $s0, 1 -/* B3078C 800B95EC 5611FFFC */ bnel $s0, $s1, .L800B95E0 -/* B30790 800B95F0 02002025 */ move $a0, $s0 -/* B30794 800B95F4 8FAF0024 */ lw $t7, 0x24($sp) -/* B30798 800B95F8 3C018016 */ lui $at, %hi(D_80161108) # $at, 0x8016 -/* B3079C 800B95FC 8FBF001C */ lw $ra, 0x1c($sp) -/* B307A0 800B9600 AC2F1108 */ sw $t7, %lo(D_80161108)($at) -/* B307A4 800B9604 3C018016 */ lui $at, %hi(D_8016110C) # $at, 0x8016 -/* B307A8 800B9608 A420110C */ sh $zero, %lo(D_8016110C)($at) -/* B307AC 800B960C 3C018016 */ lui $at, %hi(D_80161148) # $at, 0x8016 -/* B307B0 800B9610 A4201148 */ sh $zero, %lo(D_80161148)($at) -/* B307B4 800B9614 3C018016 */ lui $at, %hi(D_8016114A) # $at, 0x8016 -/* B307B8 800B9618 2418FFFF */ li $t8, -1 -/* B307BC 800B961C A438114A */ sh $t8, %lo(D_8016114A)($at) -/* B307C0 800B9620 3C018016 */ lui $at, %hi(D_8016111A) # $at, 0x8016 -/* B307C4 800B9624 8FB00014 */ lw $s0, 0x14($sp) -/* B307C8 800B9628 8FB10018 */ lw $s1, 0x18($sp) -/* B307CC 800B962C A420111A */ sh $zero, %lo(D_8016111A)($at) -/* B307D0 800B9630 03E00008 */ jr $ra -/* B307D4 800B9634 27BD0020 */ addiu $sp, $sp, 0x20 - diff --git a/asm/non_matchings/code/db_camera/func_800B9638.s b/asm/non_matchings/code/db_camera/func_800B9638.s index e3b173a153..517251b86b 100644 --- a/asm/non_matchings/code/db_camera/func_800B9638.s +++ b/asm/non_matchings/code/db_camera/func_800B9638.s @@ -1,3 +1,37 @@ +.rdata +glabel D_80143BE8 + .asciz "PRESS B BUTTON" + .balign 4 + +glabel D_80143BF8 + .asciz "PRESS B BUTTON" + .balign 4 + +glabel D_80143C08 + .asciz "PRESS B BUTTON" + .balign 4 + +glabel D_80143C18 + .asciz "_" + .balign 4 + +glabel D_80143C1C + .asciz ">" + .balign 4 + +glabel D_80143C20 + .asciz "###%2d:(%c) (%d %d) %d %d %d\n" + .balign 4 + +glabel D_80143C40 + .asciz "\n@@@ /* CUT [%d] */" + .balign 4 + +.late_rodata +glabel D_80143CD0 + .float 182.04167 + +.text glabel func_800B9638 /* B307D8 800B9638 27BDFF58 */ addiu $sp, $sp, -0xa8 /* B307DC 800B963C 3C0E8013 */ lui $t6, %hi(D_8012D14C) # $t6, 0x8013 @@ -1131,10 +1165,10 @@ glabel func_800B9638 /* B31888 800BA6E8 3C088016 */ lui $t0, %hi(D_80161148) # $t0, 0x8016 /* B3188C 800BA6EC 85081148 */ lh $t0, %lo(D_80161148)($t0) /* B31890 800BA6F0 2411003F */ li $s1, 63 -/* B31894 800BA6F4 3C068016 */ lui $a2, %hi(D_80161150) # $a2, 0x8016 +/* B31894 800BA6F4 3C068016 */ lui $a2, %hi(sDbgEditorSlots) # $a2, 0x8016 /* B31898 800BA6F8 03A86821 */ addu $t5, $sp, $t0 /* B3189C 800BA6FC 91AD0074 */ lbu $t5, 0x74($t5) -/* B318A0 800BA700 24C61150 */ addiu $a2, %lo(D_80161150) # addiu $a2, $a2, 0x1150 +/* B318A0 800BA700 24C61150 */ addiu $a2, %lo(sDbgEditorSlots) # addiu $a2, $a2, 0x1150 /* B318A4 800BA704 3C018016 */ lui $at, %hi(D_8016114A) /* B318A8 800BA708 162D0008 */ bne $s1, $t5, .L800BA72C /* B318AC 800BA70C 0009C100 */ sll $t8, $t1, 4 @@ -1189,9 +1223,9 @@ glabel func_800B9638 /* B31964 800BA7C4 24044808 */ li $a0, 18440 /* B31968 800BA7C8 0C03DCE3 */ jal Audio_PlaySoundGeneral /* B3196C 800BA7CC 24060004 */ li $a2, 4 -/* B31970 800BA7D0 3C068016 */ lui $a2, %hi(D_80161150) # $a2, 0x8016 +/* B31970 800BA7D0 3C068016 */ lui $a2, %hi(sDbgEditorSlots) # $a2, 0x8016 /* B31974 800BA7D4 8FA900A0 */ lw $t1, 0xa0($sp) -/* B31978 800BA7D8 24C61150 */ addiu $a2, %lo(D_80161150) # addiu $a2, $a2, 0x1150 +/* B31978 800BA7D8 24C61150 */ addiu $a2, %lo(sDbgEditorSlots) # addiu $a2, $a2, 0x1150 /* B3197C 800BA7DC 00105100 */ sll $t2, $s0, 4 /* B31980 800BA7E0 00CA5821 */ addu $t3, $a2, $t2 /* B31984 800BA7E4 8D6D0000 */ lw $t5, ($t3) @@ -1223,8 +1257,8 @@ glabel func_800B9638 /* B319E8 800BA848 24060004 */ li $a2, 4 /* B319EC 800BA84C 0C03DCE3 */ jal Audio_PlaySoundGeneral /* B319F0 800BA850 AFA70010 */ sw $a3, 0x10($sp) -/* B319F4 800BA854 3C068016 */ lui $a2, %hi(D_80161150) # $a2, 0x8016 -/* B319F8 800BA858 24C61150 */ addiu $a2, %lo(D_80161150) # addiu $a2, $a2, 0x1150 +/* B319F4 800BA854 3C068016 */ lui $a2, %hi(sDbgEditorSlots) # $a2, 0x8016 +/* B319F8 800BA858 24C61150 */ addiu $a2, %lo(sDbgEditorSlots) # addiu $a2, $a2, 0x1150 /* B319FC 800BA85C 00105100 */ sll $t2, $s0, 4 /* B31A00 800BA860 00CAC821 */ addu $t9, $a2, $t2 /* B31A04 800BA864 8F2C0000 */ lw $t4, ($t9) @@ -1297,8 +1331,8 @@ glabel func_800B9638 /* B31B04 800BA964 27181140 */ addiu $t8, %lo(D_80161140) # addiu $t8, $t8, 0x1140 /* B31B08 800BA968 00CE8021 */ addu $s0, $a2, $t6 /* B31B0C 800BA96C 00097900 */ sll $t7, $t1, 4 -/* B31B10 800BA970 3C048016 */ lui $a0, %hi(D_80161150) # $a0, 0x8016 -/* B31B14 800BA974 24841150 */ addiu $a0, %lo(D_80161150) # addiu $a0, $a0, 0x1150 +/* B31B10 800BA970 3C048016 */ lui $a0, %hi(sDbgEditorSlots) # $a0, 0x8016 +/* B31B14 800BA974 24841150 */ addiu $a0, %lo(sDbgEditorSlots) # addiu $a0, $a0, 0x1150 /* B31B18 800BA978 01F81821 */ addu $v1, $t7, $t8 /* B31B1C 800BA97C 2602FFF0 */ addiu $v0, $s0, -0x10 /* B31B20 800BA980 8C590000 */ lw $t9, ($v0) @@ -1330,12 +1364,12 @@ glabel func_800B9638 /* B31B7C 800BA9DC 8CAD000C */ lw $t5, 0xc($a1) /* B31B80 800BA9E0 AD8D000C */ sw $t5, 0xc($t4) .L800BA9E4: -/* B31B84 800BA9E4 3C0F8016 */ lui $t7, %hi(D_80161150) # $t7, 0x8016 +/* B31B84 800BA9E4 3C0F8016 */ lui $t7, %hi(sDbgEditorSlots) # $t7, 0x8016 /* B31B88 800BA9E8 3C188016 */ lui $t8, %hi(D_80161160) # $t8, 0x8016 /* B31B8C 800BA9EC 3C0A8016 */ lui $t2, %hi(D_80161170) # $t2, 0x8016 /* B31B90 800BA9F0 914A1170 */ lbu $t2, %lo(D_80161170)($t2) /* B31B94 800BA9F4 93181160 */ lbu $t8, %lo(D_80161160)($t8) -/* B31B98 800BA9F8 91EF1150 */ lbu $t7, %lo(D_80161150)($t7) +/* B31B98 800BA9F8 91EF1150 */ lbu $t7, %lo(sDbgEditorSlots)($t7) /* B31B9C 800BA9FC 3C108016 */ lui $s0, %hi(D_80161180) # $s0, 0x8016 /* B31BA0 800BAA00 3C038016 */ lui $v1, %hi(D_80161240) # $v1, 0x8016 /* B31BA4 800BAA04 24631240 */ addiu $v1, %lo(D_80161240) # addiu $v1, $v1, 0x1240 @@ -1471,9 +1505,9 @@ glabel func_800B9638 /* B31D88 800BABE8 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 /* B31D8C 800BABEC 8FB800A0 */ lw $t8, 0xa0($sp) /* B31D90 800BABF0 3C0F8013 */ lui $t7, %hi(D_801333E8) # $t7, 0x8013 -/* B31D94 800BABF4 3C198016 */ lui $t9, %hi(D_80161150) # $t9, 0x8016 +/* B31D94 800BABF4 3C198016 */ lui $t9, %hi(sDbgEditorSlots) # $t9, 0x8016 /* B31D98 800BABF8 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* B31D9C 800BABFC 27391150 */ addiu $t9, %lo(D_80161150) # addiu $t9, $t9, 0x1150 +/* B31D9C 800BABFC 27391150 */ addiu $t9, %lo(sDbgEditorSlots) # addiu $t9, $t9, 0x1150 /* B31DA0 800BAC00 25EF33E8 */ addiu $t7, %lo(D_801333E8) # addiu $t7, $t7, 0x33e8 /* B31DA4 800BAC04 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 /* B31DA8 800BAC08 00185100 */ sll $t2, $t8, 4 @@ -1627,8 +1661,8 @@ glabel func_800B9638 /* B31FD0 800BAE30 00615027 */ nor $t2, $v1, $at /* B31FD4 800BAE34 15400019 */ bnez $t2, .L800BAE9C /* B31FD8 800BAE38 00008825 */ move $s1, $zero -/* B31FDC 800BAE3C 3C108016 */ lui $s0, %hi(D_80161150) # $s0, 0x8016 -/* B31FE0 800BAE40 26101150 */ addiu $s0, %lo(D_80161150) # addiu $s0, $s0, 0x1150 +/* B31FDC 800BAE3C 3C108016 */ lui $s0, %hi(sDbgEditorSlots) # $s0, 0x8016 +/* B31FE0 800BAE40 26101150 */ addiu $s0, %lo(sDbgEditorSlots) # addiu $s0, $s0, 0x1150 .L800BAE44: /* B31FE4 800BAE44 8E190008 */ lw $t9, 8($s0) /* B31FE8 800BAE48 860B000C */ lh $t3, 0xc($s0) @@ -1669,8 +1703,8 @@ glabel func_800B9638 /* B32070 800BAED0 24060004 */ li $a2, 4 /* B32074 800BAED4 0C03DCE3 */ jal Audio_PlaySoundGeneral /* B32078 800BAED8 00008825 */ move $s1, $zero -/* B3207C 800BAEDC 3C108016 */ lui $s0, %hi(D_80161150) # $s0, 0x8016 -/* B32080 800BAEE0 26101150 */ addiu $s0, %lo(D_80161150) # addiu $s0, $s0, 0x1150 +/* B3207C 800BAEDC 3C108016 */ lui $s0, %hi(sDbgEditorSlots) # $s0, 0x8016 +/* B32080 800BAEE0 26101150 */ addiu $s0, %lo(sDbgEditorSlots) # addiu $s0, $s0, 0x1150 .L800BAEE4: /* B32084 800BAEE4 8618000E */ lh $t8, 0xe($s0) /* B32088 800BAEE8 3C048014 */ lui $a0, %hi(D_80143C40) diff --git a/asm/non_matchings/code/z_camera/Camera_Battle1.s b/asm/non_matchings/code/z_camera/Camera_Battle1.s deleted file mode 100644 index 013d169db6..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Battle1.s +++ /dev/null @@ -1,1210 +0,0 @@ -.rdata -glabel D_80139168 - .asciz "\x1b[43;30mcamera: warning: battle: target is not valid, change parallel\n\x1b[m" - .balign 4 - -glabel D_801391B4 - .asciz "camera: battle: target actor name \x1b[34m%d\x1b[m\n" - .balign 4 - -glabel D_801391E4 - .asciz "camera: battle: target actor name \x1b[41;37m%d\x1b[m\n" - .balign 4 - -glabel D_80139218 - .asciz "camera: battle: change target %d -> \x1b[34m%d\x1b[m\n" - .balign 4 - -.late_rodata -glabel D_80139FD4 - .float 0.01 - -glabel D_80139FD8 - .float 0.01 - -glabel D_80139FDC - .float 0.01 - -glabel D_80139FE0 - .float 0.2 - -glabel D_80139FE4 - .float 0.01 - -glabel D_80139FE8 - .float 0.2 - -glabel D_80139FEC - .float 0.01 - -glabel D_80139FF0 - .float 0.01 - -glabel D_80139FF4 - .float 0.01 - -glabel D_80139FF8 - .float 0.01 - -glabel D_80139FFC - .float 0.01 - -glabel D_8013A000 - .float 0.01 - -glabel D_8013A004 - .float 0.01 - -glabel D_8013A008 - .float 0.05 - -glabel D_8013A00C - .float -0.1 - -glabel D_8013A010 - .float 1.1 - -glabel D_8013A014 - .float 0.01 - -glabel D_8013A018 - .float 0.01 - -glabel D_8013A01C - .float 0.01 - -glabel D_8013A020 - .float 0.01 - -glabel D_8013A024 - .float 182.041671753 - -glabel D_8013A028 - .float 0.00549325020984 - -glabel D_8013A02C - .float 182.041671753 - -glabel D_8013A030 - .float 182.041671753 - -glabel D_8013A034 - .float 0.05 - -glabel D_8013A038 - .float 182.041671753 - -glabel D_8013A03C - .float 0.01 - -glabel D_8013A040 - .float 182.041671753 - -glabel D_8013A044 - .float 0.8 - -glabel D_8013A048 - .float 0.8 - -glabel D_8013A04C - .float 0.05 - -.text -glabel Camera_Battle1 -/* AC2740 8004B5A0 27BDFEC0 */ addiu $sp, $sp, -0x140 -/* AC2744 8004B5A4 AFB00024 */ sw $s0, 0x24($sp) -/* AC2748 8004B5A8 00808025 */ move $s0, $a0 -/* AC274C 8004B5AC AFBF002C */ sw $ra, 0x2c($sp) -/* AC2750 8004B5B0 AFB10028 */ sw $s1, 0x28($sp) -/* AC2754 8004B5B4 AFA000E8 */ sw $zero, 0xe8($sp) -/* AC2758 8004B5B8 8C840090 */ lw $a0, 0x90($a0) -/* AC275C 8004B5BC 0C00B721 */ jal Player_GetCameraYOffset -/* AC2760 8004B5C0 AFA40088 */ sw $a0, 0x88($sp) -/* AC2764 8004B5C4 E7A00064 */ swc1 $f0, 0x64($sp) -/* AC2768 8004B5C8 8602015E */ lh $v0, 0x15e($s0) -/* AC276C 8004B5CC 2401000A */ li $at, 10 -/* AC2770 8004B5D0 1040000A */ beqz $v0, .L8004B5FC -/* AC2774 8004B5D4 00000000 */ nop -/* AC2778 8004B5D8 10410008 */ beq $v0, $at, .L8004B5FC -/* AC277C 8004B5DC 24010014 */ li $at, 20 -/* AC2780 8004B5E0 10410006 */ beq $v0, $at, .L8004B5FC -/* AC2784 8004B5E4 3C058016 */ lui $a1, %hi(gGameInfo) # $a1, 0x8016 -/* AC2788 8004B5E8 24A5FA90 */ addiu $a1, %lo(gGameInfo) # addiu $a1, $a1, -0x570 -/* AC278C 8004B5EC 8CAE0000 */ lw $t6, ($a1) -/* AC2790 8004B5F0 85C30314 */ lh $v1, 0x314($t6) -/* AC2794 8004B5F4 1060006C */ beqz $v1, .L8004B7A8 -/* AC2798 8004B5F8 00000000 */ nop -.L8004B5FC: -/* AC279C 8004B5FC 3C058016 */ lui $a1, %hi(gGameInfo) # $a1, 0x8016 -/* AC27A0 8004B600 24A5FA90 */ addiu $a1, %lo(gGameInfo) # addiu $a1, $a1, -0x570 -/* AC27A4 8004B604 8CAC0000 */ lw $t4, ($a1) -/* AC27A8 8004B608 3C018014 */ lui $at, %hi(D_80139FD4) -/* AC27AC 8004B60C C4309FD4 */ lwc1 $f16, %lo(D_80139FD4)($at) -/* AC27B0 8004B610 858D01F0 */ lh $t5, 0x1f0($t4) -/* AC27B4 8004B614 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC27B8 8004B618 44814000 */ mtc1 $at, $f8 -/* AC27BC 8004B61C 448D2000 */ mtc1 $t5, $f4 -/* AC27C0 8004B620 3C014288 */ li $at, 0x42880000 # 0.000000 -/* AC27C4 8004B624 860F0142 */ lh $t7, 0x142($s0) -/* AC27C8 8004B628 468021A0 */ cvt.s.w $f6, $f4 -/* AC27CC 8004B62C 44812000 */ mtc1 $at, $f4 -/* AC27D0 8004B630 3C198012 */ lui $t9, %hi(sCameraSettings+4) -/* AC27D4 8004B634 000FC0C0 */ sll $t8, $t7, 3 -/* AC27D8 8004B638 86090144 */ lh $t1, 0x144($s0) -/* AC27DC 8004B63C 0338C821 */ addu $t9, $t9, $t8 -/* AC27E0 8004B640 46103082 */ mul.s $f2, $f6, $f16 -/* AC27E4 8004B644 46002183 */ div.s $f6, $f4, $f0 -/* AC27E8 8004B648 8F39D068 */ lw $t9, %lo(sCameraSettings+4)($t9) -/* AC27EC 8004B64C 000950C0 */ sll $t2, $t1, 3 -/* AC27F0 8004B650 26110030 */ addiu $s1, $s0, 0x30 -/* AC27F4 8004B654 032A5821 */ addu $t3, $t9, $t2 -/* AC27F8 8004B658 8D620004 */ lw $v0, 4($t3) -/* AC27FC 8004B65C 46024280 */ add.s $f10, $f8, $f2 -/* AC2800 8004B660 844E0000 */ lh $t6, ($v0) -/* AC2804 8004B664 2442002C */ addiu $v0, $v0, 0x2c -/* AC2808 8004B668 448E2000 */ mtc1 $t6, $f4 -/* AC280C 8004B66C 46061202 */ mul.s $f8, $f2, $f6 -/* AC2810 8004B670 468021A0 */ cvt.s.w $f6, $f4 -/* AC2814 8004B674 46085301 */ sub.s $f12, $f10, $f8 -/* AC2818 8004B678 46103282 */ mul.s $f10, $f6, $f16 -/* AC281C 8004B67C 00000000 */ nop -/* AC2820 8004B680 46005202 */ mul.s $f8, $f10, $f0 -/* AC2824 8004B684 00000000 */ nop -/* AC2828 8004B688 460C4102 */ mul.s $f4, $f8, $f12 -/* AC282C 8004B68C E6040000 */ swc1 $f4, ($s0) -/* AC2830 8004B690 844FFFD8 */ lh $t7, -0x28($v0) -/* AC2834 8004B694 448F3000 */ mtc1 $t7, $f6 -/* AC2838 8004B698 00000000 */ nop -/* AC283C 8004B69C 468032A0 */ cvt.s.w $f10, $f6 -/* AC2840 8004B6A0 E60A0004 */ swc1 $f10, 4($s0) -/* AC2844 8004B6A4 8458FFDC */ lh $t8, -0x24($v0) -/* AC2848 8004B6A8 44984000 */ mtc1 $t8, $f8 -/* AC284C 8004B6AC 00000000 */ nop -/* AC2850 8004B6B0 46804120 */ cvt.s.w $f4, $f8 -/* AC2854 8004B6B4 E6040008 */ swc1 $f4, 8($s0) -/* AC2858 8004B6B8 8449FFE0 */ lh $t1, -0x20($v0) -/* AC285C 8004B6BC 44893000 */ mtc1 $t1, $f6 -/* AC2860 8004B6C0 24090028 */ li $t1, 40 -/* AC2864 8004B6C4 468032A0 */ cvt.s.w $f10, $f6 -/* AC2868 8004B6C8 E60A000C */ swc1 $f10, 0xc($s0) -/* AC286C 8004B6CC 8459FFE4 */ lh $t9, -0x1c($v0) -/* AC2870 8004B6D0 44994000 */ mtc1 $t9, $f8 -/* AC2874 8004B6D4 00000000 */ nop -/* AC2878 8004B6D8 46804120 */ cvt.s.w $f4, $f8 -/* AC287C 8004B6DC E6040010 */ swc1 $f4, 0x10($s0) -/* AC2880 8004B6E0 844AFFE8 */ lh $t2, -0x18($v0) -/* AC2884 8004B6E4 448A3000 */ mtc1 $t2, $f6 -/* AC2888 8004B6E8 00000000 */ nop -/* AC288C 8004B6EC 468032A0 */ cvt.s.w $f10, $f6 -/* AC2890 8004B6F0 E60A0014 */ swc1 $f10, 0x14($s0) -/* AC2894 8004B6F4 844BFFEC */ lh $t3, -0x14($v0) -/* AC2898 8004B6F8 448B4000 */ mtc1 $t3, $f8 -/* AC289C 8004B6FC 00000000 */ nop -/* AC28A0 8004B700 46804120 */ cvt.s.w $f4, $f8 -/* AC28A4 8004B704 46102182 */ mul.s $f6, $f4, $f16 -/* AC28A8 8004B708 E6060018 */ swc1 $f6, 0x18($s0) -/* AC28AC 8004B70C 844CFFF0 */ lh $t4, -0x10($v0) -/* AC28B0 8004B710 448C5000 */ mtc1 $t4, $f10 -/* AC28B4 8004B714 00000000 */ nop -/* AC28B8 8004B718 46805220 */ cvt.s.w $f8, $f10 -/* AC28BC 8004B71C E608001C */ swc1 $f8, 0x1c($s0) -/* AC28C0 8004B720 844DFFF4 */ lh $t5, -0xc($v0) -/* AC28C4 8004B724 448D2000 */ mtc1 $t5, $f4 -/* AC28C8 8004B728 00000000 */ nop -/* AC28CC 8004B72C 468021A0 */ cvt.s.w $f6, $f4 -/* AC28D0 8004B730 46103282 */ mul.s $f10, $f6, $f16 -/* AC28D4 8004B734 E60A0020 */ swc1 $f10, 0x20($s0) -/* AC28D8 8004B738 844EFFF8 */ lh $t6, -8($v0) -/* AC28DC 8004B73C A60E002C */ sh $t6, 0x2c($s0) -/* AC28E0 8004B740 844FFFFC */ lh $t7, -4($v0) -/* AC28E4 8004B744 448F4000 */ mtc1 $t7, $f8 -/* AC28E8 8004B748 00000000 */ nop -/* AC28EC 8004B74C 46804120 */ cvt.s.w $f4, $f8 -/* AC28F0 8004B750 46102182 */ mul.s $f6, $f4, $f16 -/* AC28F4 8004B754 00000000 */ nop -/* AC28F8 8004B758 46003282 */ mul.s $f10, $f6, $f0 -/* AC28FC 8004B75C 00000000 */ nop -/* AC2900 8004B760 460C5202 */ mul.s $f8, $f10, $f12 -/* AC2904 8004B764 E6080024 */ swc1 $f8, 0x24($s0) -/* AC2908 8004B768 84580000 */ lh $t8, ($v0) -/* AC290C 8004B76C 44982000 */ mtc1 $t8, $f4 -/* AC2910 8004B770 00000000 */ nop -/* AC2914 8004B774 468021A0 */ cvt.s.w $f6, $f4 -/* AC2918 8004B778 46103282 */ mul.s $f10, $f6, $f16 -/* AC291C 8004B77C E60A0028 */ swc1 $f10, 0x28($s0) -/* AC2920 8004B780 A629001C */ sh $t1, 0x1c($s1) -/* AC2924 8004B784 8CB90000 */ lw $t9, ($a1) -/* AC2928 8004B788 872A01AC */ lh $t2, 0x1ac($t9) -/* AC292C 8004B78C 448A4000 */ mtc1 $t2, $f8 -/* AC2930 8004B790 00000000 */ nop -/* AC2934 8004B794 46804120 */ cvt.s.w $f4, $f8 -/* AC2938 8004B798 46102182 */ mul.s $f6, $f4, $f16 -/* AC293C 8004B79C E6260010 */ swc1 $f6, 0x10($s1) -/* AC2940 8004B7A0 8CAB0000 */ lw $t3, ($a1) -/* AC2944 8004B7A4 85630314 */ lh $v1, 0x314($t3) -.L8004B7A8: -/* AC2948 8004B7A8 3C018014 */ lui $at, %hi(D_80139FD8) -/* AC294C 8004B7AC C4309FD8 */ lwc1 $f16, %lo(D_80139FD8)($at) -/* AC2950 8004B7B0 10600007 */ beqz $v1, .L8004B7D0 -/* AC2954 8004B7B4 26110030 */ addiu $s1, $s0, 0x30 -/* AC2958 8004B7B8 0C011495 */ jal Camera_CopyPREGToModeValues -/* AC295C 8004B7BC 02002025 */ move $a0, $s0 -/* AC2960 8004B7C0 3C018014 */ lui $at, %hi(D_80139FDC) -/* AC2964 8004B7C4 3C058016 */ lui $a1, %hi(gGameInfo) # $a1, 0x8016 -/* AC2968 8004B7C8 24A5FA90 */ addiu $a1, %lo(gGameInfo) # addiu $a1, $a1, -0x570 -/* AC296C 8004B7CC C4309FDC */ lwc1 $f16, %lo(D_80139FDC)($at) -.L8004B7D0: -/* AC2970 8004B7D0 C60A0004 */ lwc1 $f10, 4($s0) -/* AC2974 8004B7D4 E7AA0080 */ swc1 $f10, 0x80($sp) -/* AC2978 8004B7D8 C6080010 */ lwc1 $f8, 0x10($s0) -/* AC297C 8004B7DC E7A8007C */ swc1 $f8, 0x7c($sp) -/* AC2980 8004B7E0 C6040014 */ lwc1 $f4, 0x14($s0) -/* AC2984 8004B7E4 E7A40078 */ swc1 $f4, 0x78($sp) -/* AC2988 8004B7E8 C606001C */ lwc1 $f6, 0x1c($s0) -/* AC298C 8004B7EC E7A60074 */ swc1 $f6, 0x74($sp) -/* AC2990 8004B7F0 8E0C0090 */ lw $t4, 0x90($s0) -/* AC2994 8004B7F4 8D8D067C */ lw $t5, 0x67c($t4) -/* AC2998 8004B7F8 31AE1000 */ andi $t6, $t5, 0x1000 -/* AC299C 8004B7FC 51C0004F */ beql $t6, $zero, .L8004B93C -/* AC29A0 8004B800 8622001C */ lh $v0, 0x1c($s1) -/* AC29A4 8004B804 8CA30000 */ lw $v1, ($a1) -/* AC29A8 8004B808 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* AC29AC 8004B80C 44813000 */ mtc1 $at, $f6 -/* AC29B0 8004B810 846F01AC */ lh $t7, 0x1ac($v1) -/* AC29B4 8004B814 847801C6 */ lh $t8, 0x1c6($v1) -/* AC29B8 8004B818 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000 -/* AC29BC 8004B81C 448F5000 */ mtc1 $t7, $f10 -/* AC29C0 8004B820 34E7CCCD */ ori $a3, $a3, 0xcccd -/* AC29C4 8004B824 C62E0010 */ lwc1 $f14, 0x10($s1) -/* AC29C8 8004B828 46805220 */ cvt.s.w $f8, $f10 -/* AC29CC 8004B82C 44985000 */ mtc1 $t8, $f10 -/* AC29D0 8004B830 46104102 */ mul.s $f4, $f8, $f16 -/* AC29D4 8004B834 46805220 */ cvt.s.w $f8, $f10 -/* AC29D8 8004B838 46062302 */ mul.s $f12, $f4, $f6 -/* AC29DC 8004B83C 00000000 */ nop -/* AC29E0 8004B840 46104102 */ mul.s $f4, $f8, $f16 -/* AC29E4 8004B844 44062000 */ mfc1 $a2, $f4 -/* AC29E8 8004B848 0C010E27 */ jal func_8004389C -/* AC29EC 8004B84C 00000000 */ nop -/* AC29F0 8004B850 E6200010 */ swc1 $f0, 0x10($s1) -/* AC29F4 8004B854 3C098016 */ lui $t1, %hi(gGameInfo) # $t1, 0x8016 -/* AC29F8 8004B858 8D29FA90 */ lw $t1, %lo(gGameInfo)($t1) -/* AC29FC 8004B85C 3C018014 */ lui $at, %hi(D_80139FE0) -/* AC2A00 8004B860 C42C9FE0 */ lwc1 $f12, %lo(D_80139FE0)($at) -/* AC2A04 8004B864 853901C6 */ lh $t9, 0x1c6($t1) -/* AC2A08 8004B868 3C018014 */ lui $at, %hi(D_80139FE4) -/* AC2A0C 8004B86C C4289FE4 */ lwc1 $f8, %lo(D_80139FE4)($at) -/* AC2A10 8004B870 44993000 */ mtc1 $t9, $f6 -/* AC2A14 8004B874 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC2A18 8004B878 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC2A1C 8004B87C 468032A0 */ cvt.s.w $f10, $f6 -/* AC2A20 8004B880 C60E00CC */ lwc1 $f14, 0xcc($s0) -/* AC2A24 8004B884 46085102 */ mul.s $f4, $f10, $f8 -/* AC2A28 8004B888 44062000 */ mfc1 $a2, $f4 -/* AC2A2C 8004B88C 0C010E27 */ jal func_8004389C -/* AC2A30 8004B890 00000000 */ nop -/* AC2A34 8004B894 E60000CC */ swc1 $f0, 0xcc($s0) -/* AC2A38 8004B898 3C0A8016 */ lui $t2, %hi(gGameInfo) # $t2, 0x8016 -/* AC2A3C 8004B89C 8D4AFA90 */ lw $t2, %lo(gGameInfo)($t2) -/* AC2A40 8004B8A0 3C018014 */ lui $at, %hi(D_80139FE8) -/* AC2A44 8004B8A4 C42C9FE8 */ lwc1 $f12, %lo(D_80139FE8)($at) -/* AC2A48 8004B8A8 854B01C6 */ lh $t3, 0x1c6($t2) -/* AC2A4C 8004B8AC 3C018014 */ lui $at, %hi(D_80139FEC) -/* AC2A50 8004B8B0 C4289FEC */ lwc1 $f8, %lo(D_80139FEC)($at) -/* AC2A54 8004B8B4 448B3000 */ mtc1 $t3, $f6 -/* AC2A58 8004B8B8 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC2A5C 8004B8BC 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC2A60 8004B8C0 468032A0 */ cvt.s.w $f10, $f6 -/* AC2A64 8004B8C4 C60E00D0 */ lwc1 $f14, 0xd0($s0) -/* AC2A68 8004B8C8 46085102 */ mul.s $f4, $f10, $f8 -/* AC2A6C 8004B8CC 44062000 */ mfc1 $a2, $f4 -/* AC2A70 8004B8D0 0C010E27 */ jal func_8004389C -/* AC2A74 8004B8D4 00000000 */ nop -/* AC2A78 8004B8D8 E60000D0 */ swc1 $f0, 0xd0($s0) -/* AC2A7C 8004B8DC 8622001C */ lh $v0, 0x1c($s1) -/* AC2A80 8004B8E0 3C058016 */ lui $a1, %hi(gGameInfo) # $a1, 0x8016 -/* AC2A84 8004B8E4 24A5FA90 */ addiu $a1, %lo(gGameInfo) # addiu $a1, $a1, -0x570 -/* AC2A88 8004B8E8 2841FFED */ slti $at, $v0, -0x13 -/* AC2A8C 8004B8EC 14200003 */ bnez $at, .L8004B8FC -/* AC2A90 8004B8F0 244CFFFF */ addiu $t4, $v0, -1 -/* AC2A94 8004B8F4 1000000D */ b .L8004B92C -/* AC2A98 8004B8F8 A62C001C */ sh $t4, 0x1c($s1) -.L8004B8FC: -/* AC2A9C 8004B8FC 3C01437A */ li $at, 0x437A0000 # 0.000000 -/* AC2AA0 8004B900 44813000 */ mtc1 $at, $f6 -/* AC2AA4 8004B904 3C014248 */ li $at, 0x42480000 # 0.000000 -/* AC2AA8 8004B908 44815000 */ mtc1 $at, $f10 -/* AC2AAC 8004B90C 3C014220 */ li $at, 0x42200000 # 0.000000 -/* AC2AB0 8004B910 44814000 */ mtc1 $at, $f8 -/* AC2AB4 8004B914 3C014270 */ li $at, 0x42700000 # 0.000000 -/* AC2AB8 8004B918 44812000 */ mtc1 $at, $f4 -/* AC2ABC 8004B91C E7A60080 */ swc1 $f6, 0x80($sp) -/* AC2AC0 8004B920 E7AA007C */ swc1 $f10, 0x7c($sp) -/* AC2AC4 8004B924 E7A80078 */ swc1 $f8, 0x78($sp) -/* AC2AC8 8004B928 E7A40074 */ swc1 $f4, 0x74($sp) -.L8004B92C: -/* AC2ACC 8004B92C 3C018014 */ lui $at, %hi(D_80139FF0) -/* AC2AD0 8004B930 10000059 */ b .L8004BA98 -/* AC2AD4 8004B934 C4309FF0 */ lwc1 $f16, %lo(D_80139FF0)($at) -/* AC2AD8 8004B938 8622001C */ lh $v0, 0x1c($s1) -.L8004B93C: -/* AC2ADC 8004B93C 3C01437A */ li $at, 0x437A0000 # 0.000000 -/* AC2AE0 8004B940 240E0028 */ li $t6, 40 -/* AC2AE4 8004B944 0441000E */ bgez $v0, .L8004B980 -/* AC2AE8 8004B948 244D0001 */ addiu $t5, $v0, 1 -/* AC2AEC 8004B94C 44813000 */ mtc1 $at, $f6 -/* AC2AF0 8004B950 3C014248 */ li $at, 0x42480000 # 0.000000 -/* AC2AF4 8004B954 44815000 */ mtc1 $at, $f10 -/* AC2AF8 8004B958 3C014220 */ li $at, 0x42200000 # 0.000000 -/* AC2AFC 8004B95C 44814000 */ mtc1 $at, $f8 -/* AC2B00 8004B960 3C014270 */ li $at, 0x42700000 # 0.000000 -/* AC2B04 8004B964 44812000 */ mtc1 $at, $f4 -/* AC2B08 8004B968 E7A60080 */ swc1 $f6, 0x80($sp) -/* AC2B0C 8004B96C E7AA007C */ swc1 $f10, 0x7c($sp) -/* AC2B10 8004B970 E7A80078 */ swc1 $f8, 0x78($sp) -/* AC2B14 8004B974 E7A40074 */ swc1 $f4, 0x74($sp) -/* AC2B18 8004B978 10000047 */ b .L8004BA98 -/* AC2B1C 8004B97C A62D001C */ sh $t5, 0x1c($s1) -.L8004B980: -/* AC2B20 8004B980 A62E001C */ sh $t6, 0x1c($s1) -/* AC2B24 8004B984 8CA30000 */ lw $v1, ($a1) -/* AC2B28 8004B988 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC2B2C 8004B98C 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC2B30 8004B990 846F01AC */ lh $t7, 0x1ac($v1) -/* AC2B34 8004B994 847801C6 */ lh $t8, 0x1c6($v1) -/* AC2B38 8004B998 C62E0010 */ lwc1 $f14, 0x10($s1) -/* AC2B3C 8004B99C 448F3000 */ mtc1 $t7, $f6 -/* AC2B40 8004B9A0 44984000 */ mtc1 $t8, $f8 -/* AC2B44 8004B9A4 468032A0 */ cvt.s.w $f10, $f6 -/* AC2B48 8004B9A8 46804120 */ cvt.s.w $f4, $f8 -/* AC2B4C 8004B9AC 46105302 */ mul.s $f12, $f10, $f16 -/* AC2B50 8004B9B0 00000000 */ nop -/* AC2B54 8004B9B4 46102182 */ mul.s $f6, $f4, $f16 -/* AC2B58 8004B9B8 44063000 */ mfc1 $a2, $f6 -/* AC2B5C 8004B9BC 0C010E27 */ jal func_8004389C -/* AC2B60 8004B9C0 00000000 */ nop -/* AC2B64 8004B9C4 E6200010 */ swc1 $f0, 0x10($s1) -/* AC2B68 8004B9C8 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 -/* AC2B6C 8004B9CC 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1) -/* AC2B70 8004B9D0 3C018014 */ lui $at, %hi(D_80139FF4) -/* AC2B74 8004B9D4 C4249FF4 */ lwc1 $f4, %lo(D_80139FF4)($at) -/* AC2B78 8004B9D8 846901E4 */ lh $t1, 0x1e4($v1) -/* AC2B7C 8004B9DC 847901C6 */ lh $t9, 0x1c6($v1) -/* AC2B80 8004B9E0 3C018014 */ lui $at, %hi(D_80139FF8) -/* AC2B84 8004B9E4 44895000 */ mtc1 $t1, $f10 -/* AC2B88 8004B9E8 44993000 */ mtc1 $t9, $f6 -/* AC2B8C 8004B9EC 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC2B90 8004B9F0 46805220 */ cvt.s.w $f8, $f10 -/* AC2B94 8004B9F4 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC2B98 8004B9F8 C60E00CC */ lwc1 $f14, 0xcc($s0) -/* AC2B9C 8004B9FC 468032A0 */ cvt.s.w $f10, $f6 -/* AC2BA0 8004BA00 46044302 */ mul.s $f12, $f8, $f4 -/* AC2BA4 8004BA04 C4289FF8 */ lwc1 $f8, %lo(D_80139FF8)($at) -/* AC2BA8 8004BA08 C60600E0 */ lwc1 $f6, 0xe0($s0) -/* AC2BAC 8004BA0C 46085102 */ mul.s $f4, $f10, $f8 -/* AC2BB0 8004BA10 00000000 */ nop -/* AC2BB4 8004BA14 46062282 */ mul.s $f10, $f4, $f6 -/* AC2BB8 8004BA18 44065000 */ mfc1 $a2, $f10 -/* AC2BBC 8004BA1C 0C010E27 */ jal func_8004389C -/* AC2BC0 8004BA20 00000000 */ nop -/* AC2BC4 8004BA24 E60000CC */ swc1 $f0, 0xcc($s0) -/* AC2BC8 8004BA28 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 -/* AC2BCC 8004BA2C 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1) -/* AC2BD0 8004BA30 3C018014 */ lui $at, %hi(D_80139FFC) -/* AC2BD4 8004BA34 C4269FFC */ lwc1 $f6, %lo(D_80139FFC)($at) -/* AC2BD8 8004BA38 846A01E4 */ lh $t2, 0x1e4($v1) -/* AC2BDC 8004BA3C 846B01C8 */ lh $t3, 0x1c8($v1) -/* AC2BE0 8004BA40 3C018014 */ lui $at, %hi(D_8013A000) -/* AC2BE4 8004BA44 448A4000 */ mtc1 $t2, $f8 -/* AC2BE8 8004BA48 448B5000 */ mtc1 $t3, $f10 -/* AC2BEC 8004BA4C 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC2BF0 8004BA50 46804120 */ cvt.s.w $f4, $f8 -/* AC2BF4 8004BA54 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC2BF8 8004BA58 C60E00D0 */ lwc1 $f14, 0xd0($s0) -/* AC2BFC 8004BA5C 46805220 */ cvt.s.w $f8, $f10 -/* AC2C00 8004BA60 46062302 */ mul.s $f12, $f4, $f6 -/* AC2C04 8004BA64 C424A000 */ lwc1 $f4, %lo(D_8013A000)($at) -/* AC2C08 8004BA68 C60A00E0 */ lwc1 $f10, 0xe0($s0) -/* AC2C0C 8004BA6C 46044182 */ mul.s $f6, $f8, $f4 -/* AC2C10 8004BA70 00000000 */ nop -/* AC2C14 8004BA74 460A3202 */ mul.s $f8, $f6, $f10 -/* AC2C18 8004BA78 44064000 */ mfc1 $a2, $f8 -/* AC2C1C 8004BA7C 0C010E27 */ jal func_8004389C -/* AC2C20 8004BA80 00000000 */ nop -/* AC2C24 8004BA84 E60000D0 */ swc1 $f0, 0xd0($s0) -/* AC2C28 8004BA88 3C018014 */ lui $at, %hi(D_8013A004) -/* AC2C2C 8004BA8C 3C058016 */ lui $a1, %hi(gGameInfo) # $a1, 0x8016 -/* AC2C30 8004BA90 24A5FA90 */ addiu $a1, %lo(gGameInfo) # addiu $a1, $a1, -0x570 -/* AC2C34 8004BA94 C430A004 */ lwc1 $f16, %lo(D_8013A004)($at) -.L8004BA98: -/* AC2C38 8004BA98 8CAC0000 */ lw $t4, ($a1) -/* AC2C3C 8004BA9C 3C018014 */ lui $at, %hi(D_8013A008) -/* AC2C40 8004BAA0 C428A008 */ lwc1 $f8, %lo(D_8013A008)($at) -/* AC2C44 8004BAA4 858D019C */ lh $t5, 0x19c($t4) -/* AC2C48 8004BAA8 C60A00E0 */ lwc1 $f10, 0xe0($s0) -/* AC2C4C 8004BAAC 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000 -/* AC2C50 8004BAB0 448D2000 */ mtc1 $t5, $f4 -/* AC2C54 8004BAB4 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC2C58 8004BAB8 C60E00D4 */ lwc1 $f14, 0xd4($s0) -/* AC2C5C 8004BABC 468021A0 */ cvt.s.w $f6, $f4 -/* AC2C60 8004BAC0 46103302 */ mul.s $f12, $f6, $f16 -/* AC2C64 8004BAC4 00000000 */ nop -/* AC2C68 8004BAC8 46085102 */ mul.s $f4, $f10, $f8 -/* AC2C6C 8004BACC 44062000 */ mfc1 $a2, $f4 -/* AC2C70 8004BAD0 0C010E27 */ jal func_8004389C -/* AC2C74 8004BAD4 00000000 */ nop -/* AC2C78 8004BAD8 E60000D4 */ swc1 $f0, 0xd4($s0) -/* AC2C7C 8004BADC C7A60064 */ lwc1 $f6, 0x64($sp) -/* AC2C80 8004BAE0 C60A0000 */ lwc1 $f10, ($s0) -/* AC2C84 8004BAE4 26050050 */ addiu $a1, $s0, 0x50 -/* AC2C88 8004BAE8 2606005C */ addiu $a2, $s0, 0x5c -/* AC2C8C 8004BAEC 460A3200 */ add.s $f8, $f6, $f10 -/* AC2C90 8004BAF0 AFA6004C */ sw $a2, 0x4c($sp) -/* AC2C94 8004BAF4 AFA50048 */ sw $a1, 0x48($sp) -/* AC2C98 8004BAF8 27A4009C */ addiu $a0, $sp, 0x9c -/* AC2C9C 8004BAFC 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC2CA0 8004BB00 E7A80064 */ swc1 $f8, 0x64($sp) -/* AC2CA4 8004BB04 26060074 */ addiu $a2, $s0, 0x74 -/* AC2CA8 8004BB08 AFA60044 */ sw $a2, 0x44($sp) -/* AC2CAC 8004BB0C 27A40094 */ addiu $a0, $sp, 0x94 -/* AC2CB0 8004BB10 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC2CB4 8004BB14 8FA50048 */ lw $a1, 0x48($sp) -/* AC2CB8 8004BB18 8E0300A8 */ lw $v1, 0xa8($s0) -/* AC2CBC 8004BB1C 10600004 */ beqz $v1, .L8004BB30 -/* AC2CC0 8004BB20 00000000 */ nop -/* AC2CC4 8004BB24 8C6E0130 */ lw $t6, 0x130($v1) -/* AC2CC8 8004BB28 55C0000C */ bnezl $t6, .L8004BB5C -/* AC2CCC 8004BB2C 860F002C */ lh $t7, 0x2c($s0) -.L8004BB30: -/* AC2CD0 8004BB30 14600003 */ bnez $v1, .L8004BB40 -/* AC2CD4 8004BB34 3C048014 */ lui $a0, %hi(D_80139168) -/* AC2CD8 8004BB38 0C00084C */ jal osSyncPrintf -/* AC2CDC 8004BB3C 24849168 */ addiu $a0, %lo(D_80139168) # addiu $a0, $a0, -0x6e98 -.L8004BB40: -/* AC2CE0 8004BB40 AE0000A8 */ sw $zero, 0xa8($s0) -/* AC2CE4 8004BB44 02002025 */ move $a0, $s0 -/* AC2CE8 8004BB48 0C016911 */ jal func_8005A444 -/* AC2CEC 8004BB4C 24050001 */ li $a1, 1 -/* AC2CF0 8004BB50 100002A3 */ b .L8004C5E0 -/* AC2CF4 8004BB54 24020001 */ li $v0, 1 -/* AC2CF8 8004BB58 860F002C */ lh $t7, 0x2c($s0) -.L8004BB5C: -/* AC2CFC 8004BB5C 3C018012 */ lui $at, %hi(D_8011D3A0) -/* AC2D00 8004BB60 AC2FD3A0 */ sw $t7, %lo(D_8011D3A0)($at) -/* AC2D04 8004BB64 8602015E */ lh $v0, 0x15e($s0) -/* AC2D08 8004BB68 2401000A */ li $at, 10 -/* AC2D0C 8004BB6C 50400006 */ beql $v0, $zero, .L8004BB88 -/* AC2D10 8004BB70 44802000 */ mtc1 $zero, $f4 -/* AC2D14 8004BB74 10410003 */ beq $v0, $at, .L8004BB84 -/* AC2D18 8004BB78 24010014 */ li $at, 20 -/* AC2D1C 8004BB7C 5441002B */ bnel $v0, $at, .L8004BC2C -/* AC2D20 8004BB80 86180140 */ lh $t8, 0x140($s0) -.L8004BB84: -/* AC2D24 8004BB84 44802000 */ mtc1 $zero, $f4 -.L8004BB88: -/* AC2D28 8004BB88 A6200014 */ sh $zero, 0x14($s1) -/* AC2D2C 8004BB8C 3C048014 */ lui $a0, %hi(D_801391E4) -/* AC2D30 8004BB90 E6240004 */ swc1 $f4, 4($s1) -/* AC2D34 8004BB94 8E1800A8 */ lw $t8, 0xa8($s0) -/* AC2D38 8004BB98 AE38000C */ sw $t8, 0xc($s1) -/* AC2D3C 8004BB9C 8609015E */ lh $t1, 0x15e($s0) -/* AC2D40 8004BBA0 25390001 */ addiu $t9, $t1, 1 -/* AC2D44 8004BBA4 A619015E */ sh $t9, 0x15e($s0) -/* AC2D48 8004BBA8 8E2A000C */ lw $t2, 0xc($s1) -/* AC2D4C 8004BBAC 85450000 */ lh $a1, ($t2) -/* AC2D50 8004BBB0 18A00006 */ blez $a1, .L8004BBCC -/* AC2D54 8004BBB4 00000000 */ nop -/* AC2D58 8004BBB8 3C048014 */ lui $a0, %hi(D_801391B4) # $a0, 0x8014 -/* AC2D5C 8004BBBC 0C00084C */ jal osSyncPrintf -/* AC2D60 8004BBC0 248491B4 */ addiu $a0, %lo(D_801391B4) # addiu $a0, $a0, -0x6e4c -/* AC2D64 8004BBC4 10000009 */ b .L8004BBEC -/* AC2D68 8004BBC8 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 -.L8004BBCC: -/* AC2D6C 8004BBCC 0C00084C */ jal osSyncPrintf -/* AC2D70 8004BBD0 248491E4 */ addiu $a0, %lo(D_801391E4) -/* AC2D74 8004BBD4 AE0000A8 */ sw $zero, 0xa8($s0) -/* AC2D78 8004BBD8 02002025 */ move $a0, $s0 -/* AC2D7C 8004BBDC 0C016911 */ jal func_8005A444 -/* AC2D80 8004BBE0 24050001 */ li $a1, 1 -/* AC2D84 8004BBE4 1000027E */ b .L8004C5E0 -/* AC2D88 8004BBE8 24020001 */ li $v0, 1 -.L8004BBEC: -/* AC2D8C 8004BBEC 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1) -/* AC2D90 8004BBF0 846B01C4 */ lh $t3, 0x1c4($v1) -/* AC2D94 8004BBF4 846C01C2 */ lh $t4, 0x1c2($v1) -/* AC2D98 8004BBF8 016C6821 */ addu $t5, $t3, $t4 -/* AC2D9C 8004BBFC A62D001A */ sh $t5, 0x1a($s1) -/* AC2DA0 8004BC00 87AE00A2 */ lh $t6, 0xa2($sp) -/* AC2DA4 8004BC04 A62E0016 */ sh $t6, 0x16($s1) -/* AC2DA8 8004BC08 87AF00A0 */ lh $t7, 0xa0($sp) -/* AC2DAC 8004BC0C A62F0018 */ sh $t7, 0x18($s1) -/* AC2DB0 8004BC10 C7A6009C */ lwc1 $f6, 0x9c($sp) -/* AC2DB4 8004BC14 E6260000 */ swc1 $f6, ($s1) -/* AC2DB8 8004BC18 C60800F4 */ lwc1 $f8, 0xf4($s0) -/* AC2DBC 8004BC1C C60A0098 */ lwc1 $f10, 0x98($s0) -/* AC2DC0 8004BC20 46085101 */ sub.s $f4, $f10, $f8 -/* AC2DC4 8004BC24 E6240008 */ swc1 $f4, 8($s1) -/* AC2DC8 8004BC28 86180140 */ lh $t8, 0x140($s0) -.L8004BC2C: -/* AC2DCC 8004BC2C 24010007 */ li $at, 7 -/* AC2DD0 8004BC30 24090001 */ li $t1, 1 -/* AC2DD4 8004BC34 5701000B */ bnel $t8, $at, .L8004BC64 -/* AC2DD8 8004BC38 C6060098 */ lwc1 $f6, 0x98($s0) -/* AC2DDC 8004BC3C 87B900A0 */ lh $t9, 0xa0($sp) -/* AC2DE0 8004BC40 3C018012 */ lui $at, %hi(D_8011D3E8) # $at, 0x8012 -/* AC2DE4 8004BC44 AC29D3E8 */ sw $t1, %lo(D_8011D3E8)($at) -/* AC2DE8 8004BC48 00195023 */ negu $t2, $t9 -/* AC2DEC 8004BC4C A60A0134 */ sh $t2, 0x134($s0) -/* AC2DF0 8004BC50 87AB00A2 */ lh $t3, 0xa2($sp) -/* AC2DF4 8004BC54 A6000138 */ sh $zero, 0x138($s0) -/* AC2DF8 8004BC58 256C8001 */ addiu $t4, $t3, -0x7fff -/* AC2DFC 8004BC5C A60C0136 */ sh $t4, 0x136($s0) -/* AC2E00 8004BC60 C6060098 */ lwc1 $f6, 0x98($s0) -.L8004BC64: -/* AC2E04 8004BC64 C60A0104 */ lwc1 $f10, 0x104($s0) -/* AC2E08 8004BC68 460A3032 */ c.eq.s $f6, $f10 -/* AC2E0C 8004BC6C 00000000 */ nop -/* AC2E10 8004BC70 4503000F */ bc1tl .L8004BCB0 -/* AC2E14 8004BC74 C6060098 */ lwc1 $f6, 0x98($s0) -/* AC2E18 8004BC78 8E040090 */ lw $a0, 0x90($s0) -/* AC2E1C 8004BC7C 3C018014 */ lui $at, %hi(D_8013A00C) -/* AC2E20 8004BC80 C428A00C */ lwc1 $f8, %lo(D_8013A00C)($at) -/* AC2E24 8004BC84 C484006C */ lwc1 $f4, 0x6c($a0) -/* AC2E28 8004BC88 4604403C */ c.lt.s $f8, $f4 -/* AC2E2C 8004BC8C 00000000 */ nop -/* AC2E30 8004BC90 45030007 */ bc1tl .L8004BCB0 -/* AC2E34 8004BC94 C6060098 */ lwc1 $f6, 0x98($s0) -/* AC2E38 8004BC98 8C8D067C */ lw $t5, 0x67c($a0) -/* AC2E3C 8004BC9C 24060001 */ li $a2, 1 -/* AC2E40 8004BCA0 000D7280 */ sll $t6, $t5, 0xa -/* AC2E44 8004BCA4 05C10005 */ bgez $t6, .L8004BCBC -/* AC2E48 8004BCA8 00000000 */ nop -/* AC2E4C 8004BCAC C6060098 */ lwc1 $f6, 0x98($s0) -.L8004BCB0: -/* AC2E50 8004BCB0 00003025 */ move $a2, $zero -/* AC2E54 8004BCB4 10000001 */ b .L8004BCBC -/* AC2E58 8004BCB8 E6260008 */ swc1 $f6, 8($s1) -.L8004BCBC: -/* AC2E5C 8004BCBC 862F001A */ lh $t7, 0x1a($s1) -/* AC2E60 8004BCC0 02002025 */ move $a0, $s0 -/* AC2E64 8004BCC4 55E0000C */ bnezl $t7, .L8004BCF8 -/* AC2E68 8004BCC8 260400AC */ addiu $a0, $s0, 0xac -/* AC2E6C 8004BCCC 50C00004 */ beql $a2, $zero, .L8004BCE0 -/* AC2E70 8004BCD0 C6020020 */ lwc1 $f2, 0x20($s0) -/* AC2E74 8004BCD4 10000002 */ b .L8004BCE0 -/* AC2E78 8004BCD8 C6020028 */ lwc1 $f2, 0x28($s0) -/* AC2E7C 8004BCDC C6020020 */ lwc1 $f2, 0x20($s0) -.L8004BCE0: -/* AC2E80 8004BCE0 44051000 */ mfc1 $a1, $f2 -/* AC2E84 8004BCE4 0C011429 */ jal func_800450A4 -/* AC2E88 8004BCE8 A7A60084 */ sh $a2, 0x84($sp) -/* AC2E8C 8004BCEC 87A60084 */ lh $a2, 0x84($sp) -/* AC2E90 8004BCF0 E6000100 */ swc1 $f0, 0x100($s0) -/* AC2E94 8004BCF4 260400AC */ addiu $a0, $s0, 0xac -.L8004BCF8: -/* AC2E98 8004BCF8 8E0500A8 */ lw $a1, 0xa8($s0) -/* AC2E9C 8004BCFC A7A60084 */ sh $a2, 0x84($sp) -/* AC2EA0 8004BD00 0C00BBB9 */ jal func_8002EEE4 -/* AC2EA4 8004BD04 AFA40038 */ sw $a0, 0x38($sp) -/* AC2EA8 8004BD08 8E0300A8 */ lw $v1, 0xa8($s0) -/* AC2EAC 8004BD0C 8E27000C */ lw $a3, 0xc($s1) -/* AC2EB0 8004BD10 87A60084 */ lh $a2, 0x84($sp) -/* AC2EB4 8004BD14 02002025 */ move $a0, $s0 -/* AC2EB8 8004BD18 10670009 */ beq $v1, $a3, .L8004BD40 -/* AC2EBC 8004BD1C 27A50094 */ addiu $a1, $sp, 0x94 -/* AC2EC0 8004BD20 3C048014 */ lui $a0, %hi(D_80139218) # $a0, 0x8014 -/* AC2EC4 8004BD24 24849218 */ addiu $a0, %lo(D_80139218) # addiu $a0, $a0, -0x6de8 -/* AC2EC8 8004BD28 84E50000 */ lh $a1, ($a3) -/* AC2ECC 8004BD2C 0C00084C */ jal osSyncPrintf -/* AC2ED0 8004BD30 84660000 */ lh $a2, ($v1) -/* AC2ED4 8004BD34 A600015E */ sh $zero, 0x15e($s0) -/* AC2ED8 8004BD38 10000229 */ b .L8004C5E0 -/* AC2EDC 8004BD3C 24020001 */ li $v0, 1 -.L8004BD40: -/* AC2EE0 8004BD40 10C00003 */ beqz $a2, .L8004BD50 -/* AC2EE4 8004BD44 26030094 */ addiu $v1, $s0, 0x94 -/* AC2EE8 8004BD48 10000002 */ b .L8004BD54 -/* AC2EEC 8004BD4C C6020024 */ lwc1 $f2, 0x24($s0) -.L8004BD50: -/* AC2EF0 8004BD50 C6020000 */ lwc1 $f2, ($s0) -.L8004BD54: -/* AC2EF4 8004BD54 10C00003 */ beqz $a2, .L8004BD64 -/* AC2EF8 8004BD58 C7AA0080 */ lwc1 $f10, 0x80($sp) -/* AC2EFC 8004BD5C 10000002 */ b .L8004BD68 -/* AC2F00 8004BD60 24020081 */ li $v0, 129 -.L8004BD64: -/* AC2F04 8004BD64 24020001 */ li $v0, 1 -.L8004BD68: -/* AC2F08 8004BD68 26380008 */ addiu $t8, $s1, 8 -/* AC2F0C 8004BD6C 27A900A4 */ addiu $t1, $sp, 0xa4 -/* AC2F10 8004BD70 AFA90018 */ sw $t1, 0x18($sp) -/* AC2F14 8004BD74 AFB80014 */ sw $t8, 0x14($sp) -/* AC2F18 8004BD78 E7AA0010 */ swc1 $f10, 0x10($sp) -/* AC2F1C 8004BD7C 8619002C */ lh $t9, 0x2c($s0) -/* AC2F20 8004BD80 44071000 */ mfc1 $a3, $f2 -/* AC2F24 8004BD84 AFA30040 */ sw $v1, 0x40($sp) -/* AC2F28 8004BD88 00595025 */ or $t2, $v0, $t9 -/* AC2F2C 8004BD8C AFAA001C */ sw $t2, 0x1c($sp) -/* AC2F30 8004BD90 0C01182A */ jal func_800460A8 -/* AC2F34 8004BD94 8FA60038 */ lw $a2, 0x38($sp) -/* AC2F38 8004BD98 8FA30040 */ lw $v1, 0x40($sp) -/* AC2F3C 8004BD9C 87A800AA */ lh $t0, 0xaa($sp) -/* AC2F40 8004BDA0 27A5011C */ addiu $a1, $sp, 0x11c -/* AC2F44 8004BDA4 8C6C0000 */ lw $t4, ($v1) -/* AC2F48 8004BDA8 27A400A4 */ addiu $a0, $sp, 0xa4 -/* AC2F4C 8004BDAC ACAC0000 */ sw $t4, ($a1) -/* AC2F50 8004BDB0 8C6B0004 */ lw $t3, 4($v1) -/* AC2F54 8004BDB4 ACAB0004 */ sw $t3, 4($a1) -/* AC2F58 8004BDB8 8C6C0008 */ lw $t4, 8($v1) -/* AC2F5C 8004BDBC ACAC0008 */ sw $t4, 8($a1) -/* AC2F60 8004BDC0 C7A80120 */ lwc1 $f8, 0x120($sp) -/* AC2F64 8004BDC4 C7A40064 */ lwc1 $f4, 0x64($sp) -/* AC2F68 8004BDC8 8FA60038 */ lw $a2, 0x38($sp) -/* AC2F6C 8004BDCC A7A8008C */ sh $t0, 0x8c($sp) -/* AC2F70 8004BDD0 46044180 */ add.s $f6, $f8, $f4 -/* AC2F74 8004BDD4 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC2F78 8004BDD8 E7A60120 */ swc1 $f6, 0x120($sp) -/* AC2F7C 8004BDDC C7A000A4 */ lwc1 $f0, 0xa4($sp) -/* AC2F80 8004BDE0 C7A20080 */ lwc1 $f2, 0x80($sp) -/* AC2F84 8004BDE4 87A8008C */ lh $t0, 0x8c($sp) -/* AC2F88 8004BDE8 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC2F8C 8004BDEC 4600103C */ c.lt.s $f2, $f0 -/* AC2F90 8004BDF0 00000000 */ nop -/* AC2F94 8004BDF4 45020005 */ bc1fl .L8004BE0C -/* AC2F98 8004BDF8 46020203 */ div.s $f8, $f0, $f2 -/* AC2F9C 8004BDFC 44815000 */ mtc1 $at, $f10 -/* AC2FA0 8004BE00 10000003 */ b .L8004BE10 -/* AC2FA4 8004BE04 E7AA00E4 */ swc1 $f10, 0xe4($sp) -/* AC2FA8 8004BE08 46020203 */ div.s $f8, $f0, $f2 -.L8004BE0C: -/* AC2FAC 8004BE0C E7A800E4 */ swc1 $f8, 0xe4($sp) -.L8004BE10: -/* AC2FB0 8004BE10 8FAD0038 */ lw $t5, 0x38($sp) -/* AC2FB4 8004BE14 27A60110 */ addiu $a2, $sp, 0x110 -/* AC2FB8 8004BE18 27A400AC */ addiu $a0, $sp, 0xac -/* AC2FBC 8004BE1C 8DAF0000 */ lw $t7, ($t5) -/* AC2FC0 8004BE20 ACCF0000 */ sw $t7, ($a2) -/* AC2FC4 8004BE24 8DAE0004 */ lw $t6, 4($t5) -/* AC2FC8 8004BE28 ACCE0004 */ sw $t6, 4($a2) -/* AC2FCC 8004BE2C 8DAF0008 */ lw $t7, 8($t5) -/* AC2FD0 8004BE30 ACCF0008 */ sw $t7, 8($a2) -/* AC2FD4 8004BE34 A7A8008C */ sh $t0, 0x8c($sp) -/* AC2FD8 8004BE38 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC2FDC 8004BE3C 8FA50048 */ lw $a1, 0x48($sp) -/* AC2FE0 8004BE40 C7AC00AC */ lwc1 $f12, 0xac($sp) -/* AC2FE4 8004BE44 C7A40080 */ lwc1 $f4, 0x80($sp) -/* AC2FE8 8004BE48 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* AC2FEC 8004BE4C 44815000 */ mtc1 $at, $f10 -/* AC2FF0 8004BE50 4604603E */ c.le.s $f12, $f4 -/* AC2FF4 8004BE54 87A8008C */ lh $t0, 0x8c($sp) -/* AC2FF8 8004BE58 C7A20080 */ lwc1 $f2, 0x80($sp) -/* AC2FFC 8004BE5C 45000003 */ bc1f .L8004BE6C -/* AC3000 8004BE60 00000000 */ nop -/* AC3004 8004BE64 10000001 */ b .L8004BE6C -/* AC3008 8004BE68 46006086 */ mov.s $f2, $f12 -.L8004BE6C: -/* AC300C 8004BE6C 460A1202 */ mul.s $f8, $f2, $f10 -/* AC3010 8004BE70 C7AC0080 */ lwc1 $f12, 0x80($sp) -/* AC3014 8004BE74 3C018014 */ lui $at, %hi(D_8013A010) -/* AC3018 8004BE78 C42AA010 */ lwc1 $f10, %lo(D_8013A010)($at) -/* AC301C 8004BE7C 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 -/* AC3020 8004BE80 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1) -/* AC3024 8004BE84 3C018014 */ lui $at, %hi(D_8013A014) -/* AC3028 8004BE88 46086101 */ sub.s $f4, $f12, $f8 -/* AC302C 8004BE8C C7A800E4 */ lwc1 $f8, 0xe4($sp) -/* AC3030 8004BE90 3C074000 */ lui $a3, 0x4000 -/* AC3034 8004BE94 E7A400AC */ swc1 $f4, 0xac($sp) -/* AC3038 8004BE98 46085101 */ sub.s $f4, $f10, $f8 -/* AC303C 8004BE9C C60A000C */ lwc1 $f10, 0xc($s0) -/* AC3040 8004BEA0 C6000008 */ lwc1 $f0, 8($s0) -/* AC3044 8004BEA4 847801AE */ lh $t8, 0x1ae($v1) -/* AC3048 8004BEA8 46005201 */ sub.s $f8, $f10, $f0 -/* AC304C 8004BEAC 46044282 */ mul.s $f10, $f8, $f4 -/* AC3050 8004BEB0 44984000 */ mtc1 $t8, $f8 -/* AC3054 8004BEB4 00000000 */ nop -/* AC3058 8004BEB8 46804120 */ cvt.s.w $f4, $f8 -/* AC305C 8004BEBC 460A0480 */ add.s $f18, $f0, $f10 -/* AC3060 8004BEC0 46122280 */ add.s $f10, $f4, $f18 -/* AC3064 8004BEC4 E7AA00F8 */ swc1 $f10, 0xf8($sp) -/* AC3068 8004BEC8 846901AA */ lh $t1, 0x1aa($v1) -/* AC306C 8004BECC C42AA014 */ lwc1 $f10, %lo(D_8013A014)($at) -/* AC3070 8004BED0 C60E00DC */ lwc1 $f14, 0xdc($s0) -/* AC3074 8004BED4 44894000 */ mtc1 $t1, $f8 -/* AC3078 8004BED8 E7B200F4 */ swc1 $f18, 0xf4($sp) -/* AC307C 8004BEDC A7A8008C */ sh $t0, 0x8c($sp) -/* AC3080 8004BEE0 46804120 */ cvt.s.w $f4, $f8 -/* AC3084 8004BEE4 460A2182 */ mul.s $f6, $f4, $f10 -/* AC3088 8004BEE8 44063000 */ mfc1 $a2, $f6 -/* AC308C 8004BEEC 0C010E27 */ jal func_8004389C -/* AC3090 8004BEF0 00000000 */ nop -/* AC3094 8004BEF4 87A8008C */ lh $t0, 0x8c($sp) -/* AC3098 8004BEF8 C7B200F4 */ lwc1 $f18, 0xf4($sp) -/* AC309C 8004BEFC E60000DC */ swc1 $f0, 0xdc($s0) -/* AC30A0 8004BF00 87B9009A */ lh $t9, 0x9a($sp) -/* AC30A4 8004BF04 87AA00B2 */ lh $t2, 0xb2($sp) -/* AC30A8 8004BF08 E7A000B4 */ swc1 $f0, 0xb4($sp) -/* AC30AC 8004BF0C 272B8001 */ addiu $t3, $t9, -0x7fff -/* AC30B0 8004BF10 000B6400 */ sll $t4, $t3, 0x10 -/* AC30B4 8004BF14 A7B900BA */ sh $t9, 0xba($sp) -/* AC30B8 8004BF18 8623001A */ lh $v1, 0x1a($s1) -/* AC30BC 8004BF1C 000C6C03 */ sra $t5, $t4, 0x10 -/* AC30C0 8004BF20 014D1023 */ subu $v0, $t2, $t5 -/* AC30C4 8004BF24 00022C00 */ sll $a1, $v0, 0x10 -/* AC30C8 8004BF28 1060007B */ beqz $v1, .L8004C118 -/* AC30CC 8004BF2C 00052C03 */ sra $a1, $a1, 0x10 -/* AC30D0 8004BF30 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 -/* AC30D4 8004BF34 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* AC30D8 8004BF38 27A400A4 */ addiu $a0, $sp, 0xa4 -/* AC30DC 8004BF3C 24190001 */ li $t9, 1 -/* AC30E0 8004BF40 85C201C4 */ lh $v0, 0x1c4($t6) -/* AC30E4 8004BF44 0062082A */ slt $at, $v1, $v0 -/* AC30E8 8004BF48 1420006F */ bnez $at, .L8004C108 -/* AC30EC 8004BF4C 00627823 */ subu $t7, $v1, $v0 -/* AC30F0 8004BF50 A7AF0086 */ sh $t7, 0x86($sp) -/* AC30F4 8004BF54 8FA50048 */ lw $a1, 0x48($sp) -/* AC30F8 8004BF58 8FA6004C */ lw $a2, 0x4c($sp) -/* AC30FC 8004BF5C 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC3100 8004BF60 A7A8008C */ sh $t0, 0x8c($sp) -/* AC3104 8004BF64 87A8008C */ lh $t0, 0x8c($sp) -/* AC3108 8004BF68 3C038016 */ lui $v1, %hi(gGameInfo) -/* AC310C 8004BF6C 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1) -/* AC3110 8004BF70 25188001 */ addiu $t8, $t0, -0x7fff -/* AC3114 8004BF74 A7B800AA */ sh $t8, 0xaa($sp) -/* AC3118 8004BF78 846901C2 */ lh $t1, 0x1c2($v1) -/* AC311C 8004BF7C 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC3120 8004BF80 44818000 */ mtc1 $at, $f16 -/* AC3124 8004BF84 44894000 */ mtc1 $t1, $f8 -/* AC3128 8004BF88 87AB00AA */ lh $t3, 0xaa($sp) -/* AC312C 8004BF8C 86390016 */ lh $t9, 0x16($s1) -/* AC3130 8004BF90 46804120 */ cvt.s.w $f4, $f8 -/* AC3134 8004BF94 C62A0000 */ lwc1 $f10, ($s1) -/* AC3138 8004BF98 032B6023 */ subu $t4, $t9, $t3 -/* AC313C 8004BF9C C7A600A4 */ lwc1 $f6, 0xa4($sp) -/* AC3140 8004BFA0 000C5400 */ sll $t2, $t4, 0x10 -/* AC3144 8004BFA4 000A6C03 */ sra $t5, $t2, 0x10 -/* AC3148 8004BFA8 46048003 */ div.s $f0, $f16, $f4 -/* AC314C 8004BFAC 448D2000 */ mtc1 $t5, $f4 -/* AC3150 8004BFB0 87A900A8 */ lh $t1, 0xa8($sp) -/* AC3154 8004BFB4 87AD0086 */ lh $t5, 0x86($sp) -/* AC3158 8004BFB8 46065201 */ sub.s $f8, $f10, $f6 -/* AC315C 8004BFBC 3C018014 */ lui $at, %hi(D_8013A018) -/* AC3160 8004BFC0 44078000 */ mfc1 $a3, $f16 -/* AC3164 8004BFC4 468022A0 */ cvt.s.w $f10, $f4 -/* AC3168 8004BFC8 C7AE009C */ lwc1 $f14, 0x9c($sp) -/* AC316C 8004BFCC 46004082 */ mul.s $f2, $f8, $f0 -/* AC3170 8004BFD0 00000000 */ nop -/* AC3174 8004BFD4 46005202 */ mul.s $f8, $f10, $f0 -/* AC3178 8004BFD8 4600410D */ trunc.w.s $f4, $f8 -/* AC317C 8004BFDC 440F2000 */ mfc1 $t7, $f4 -/* AC3180 8004BFE0 00000000 */ nop -/* AC3184 8004BFE4 A7AF008E */ sh $t7, 0x8e($sp) -/* AC3188 8004BFE8 86380018 */ lh $t8, 0x18($s1) -/* AC318C 8004BFEC 846E01CC */ lh $t6, 0x1cc($v1) -/* AC3190 8004BFF0 0309C823 */ subu $t9, $t8, $t1 -/* AC3194 8004BFF4 00195C00 */ sll $t3, $t9, 0x10 -/* AC3198 8004BFF8 000B6403 */ sra $t4, $t3, 0x10 -/* AC319C 8004BFFC 448C5000 */ mtc1 $t4, $f10 -/* AC31A0 8004C000 00000000 */ nop -/* AC31A4 8004C004 46805220 */ cvt.s.w $f8, $f10 -/* AC31A8 8004C008 46004102 */ mul.s $f4, $f8, $f0 -/* AC31AC 8004C00C 448D4000 */ mtc1 $t5, $f8 -/* AC31B0 8004C010 4600228D */ trunc.w.s $f10, $f4 -/* AC31B4 8004C014 46804120 */ cvt.s.w $f4, $f8 -/* AC31B8 8004C018 44085000 */ mfc1 $t0, $f10 -/* AC31BC 8004C01C 448E4000 */ mtc1 $t6, $f8 -/* AC31C0 8004C020 00084400 */ sll $t0, $t0, 0x10 -/* AC31C4 8004C024 00084403 */ sra $t0, $t0, 0x10 -/* AC31C8 8004C028 46022282 */ mul.s $f10, $f4, $f2 -/* AC31CC 8004C02C A7A8008C */ sh $t0, 0x8c($sp) -/* AC31D0 8004C030 46804120 */ cvt.s.w $f4, $f8 -/* AC31D4 8004C034 46065300 */ add.s $f12, $f10, $f6 -/* AC31D8 8004C038 C42AA018 */ lwc1 $f10, %lo(D_8013A018)($at) -/* AC31DC 8004C03C 460A2182 */ mul.s $f6, $f4, $f10 -/* AC31E0 8004C040 44063000 */ mfc1 $a2, $f6 -/* AC31E4 8004C044 0C010E27 */ jal func_8004389C -/* AC31E8 8004C048 00000000 */ nop -/* AC31EC 8004C04C 3C0B8016 */ lui $t3, %hi(gGameInfo) # $t3, 0x8016 -/* AC31F0 8004C050 8D6BFA90 */ lw $t3, %lo(gGameInfo)($t3) -/* AC31F4 8004C054 E7A000B4 */ swc1 $f0, 0xb4($sp) -/* AC31F8 8004C058 87AF008E */ lh $t7, 0x8e($sp) -/* AC31FC 8004C05C 856C01CC */ lh $t4, 0x1cc($t3) -/* AC3200 8004C060 87B80086 */ lh $t8, 0x86($sp) -/* AC3204 8004C064 3C018014 */ lui $at, %hi(D_8013A01C) -/* AC3208 8004C068 448C4000 */ mtc1 $t4, $f8 -/* AC320C 8004C06C 01F80019 */ multu $t7, $t8 -/* AC3210 8004C070 C42AA01C */ lwc1 $f10, %lo(D_8013A01C)($at) -/* AC3214 8004C074 46804120 */ cvt.s.w $f4, $f8 -/* AC3218 8004C078 87B900AA */ lh $t9, 0xaa($sp) -/* AC321C 8004C07C 87A500A2 */ lh $a1, 0xa2($sp) -/* AC3220 8004C080 2407000A */ li $a3, 10 -/* AC3224 8004C084 460A2182 */ mul.s $f6, $f4, $f10 -/* AC3228 8004C088 00004812 */ mflo $t1 -/* AC322C 8004C08C 03292021 */ addu $a0, $t9, $t1 -/* AC3230 8004C090 00042400 */ sll $a0, $a0, 0x10 -/* AC3234 8004C094 00042403 */ sra $a0, $a0, 0x10 -/* AC3238 8004C098 44063000 */ mfc1 $a2, $f6 -/* AC323C 8004C09C 0C010E47 */ jal func_8004391C -/* AC3240 8004C0A0 00000000 */ nop -/* AC3244 8004C0A4 3C0F8016 */ lui $t7, %hi(gGameInfo) # $t7, 0x8016 -/* AC3248 8004C0A8 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7) -/* AC324C 8004C0AC A7A200BA */ sh $v0, 0xba($sp) -/* AC3250 8004C0B0 87A8008C */ lh $t0, 0x8c($sp) -/* AC3254 8004C0B4 85F801CC */ lh $t8, 0x1cc($t7) -/* AC3258 8004C0B8 87AD0086 */ lh $t5, 0x86($sp) -/* AC325C 8004C0BC 3C018014 */ lui $at, %hi(D_8013A020) -/* AC3260 8004C0C0 44984000 */ mtc1 $t8, $f8 -/* AC3264 8004C0C4 010D0019 */ multu $t0, $t5 -/* AC3268 8004C0C8 C42AA020 */ lwc1 $f10, %lo(D_8013A020)($at) -/* AC326C 8004C0CC 46804120 */ cvt.s.w $f4, $f8 -/* AC3270 8004C0D0 87AA00A8 */ lh $t2, 0xa8($sp) -/* AC3274 8004C0D4 87A500A0 */ lh $a1, 0xa0($sp) -/* AC3278 8004C0D8 2407000A */ li $a3, 10 -/* AC327C 8004C0DC 460A2182 */ mul.s $f6, $f4, $f10 -/* AC3280 8004C0E0 00007012 */ mflo $t6 -/* AC3284 8004C0E4 014E2021 */ addu $a0, $t2, $t6 -/* AC3288 8004C0E8 00042400 */ sll $a0, $a0, 0x10 -/* AC328C 8004C0EC 00042403 */ sra $a0, $a0, 0x10 -/* AC3290 8004C0F0 44063000 */ mfc1 $a2, $f6 -/* AC3294 8004C0F4 0C010E47 */ jal func_8004391C -/* AC3298 8004C0F8 00000000 */ nop -/* AC329C 8004C0FC A7A200B8 */ sh $v0, 0xb8($sp) -/* AC32A0 8004C100 10000002 */ b .L8004C10C -/* AC32A4 8004C104 8623001A */ lh $v1, 0x1a($s1) -.L8004C108: -/* AC32A8 8004C108 AFB900E8 */ sw $t9, 0xe8($sp) -.L8004C10C: -/* AC32AC 8004C10C 2469FFFF */ addiu $t1, $v1, -1 -/* AC32B0 8004C110 10000075 */ b .L8004C2E8 -/* AC32B4 8004C114 A629001A */ sh $t1, 0x1a($s1) -.L8004C118: -/* AC32B8 8004C118 00022400 */ sll $a0, $v0, 0x10 -/* AC32BC 8004C11C 00042403 */ sra $a0, $a0, 0x10 -/* AC32C0 8004C120 04800003 */ bltz $a0, .L8004C130 -/* AC32C4 8004C124 3C018014 */ lui $at, %hi(D_8013A024) -/* AC32C8 8004C128 10000002 */ b .L8004C134 -/* AC32CC 8004C12C 00801025 */ move $v0, $a0 -.L8004C130: -/* AC32D0 8004C130 00041023 */ negu $v0, $a0 -.L8004C134: -/* AC32D4 8004C134 C428A024 */ lwc1 $f8, %lo(D_8013A024)($at) -/* AC32D8 8004C138 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* AC32DC 8004C13C 44815000 */ mtc1 $at, $f10 -/* AC32E0 8004C140 46089102 */ mul.s $f4, $f18, $f8 -/* AC32E4 8004C144 460A2180 */ add.s $f6, $f4, $f10 -/* AC32E8 8004C148 4600320D */ trunc.w.s $f8, $f6 -/* AC32EC 8004C14C 44034000 */ mfc1 $v1, $f8 -/* AC32F0 8004C150 00000000 */ nop -/* AC32F4 8004C154 00031C00 */ sll $v1, $v1, 0x10 -/* AC32F8 8004C158 00031C03 */ sra $v1, $v1, 0x10 -/* AC32FC 8004C15C 0062082A */ slt $at, $v1, $v0 -/* AC3300 8004C160 50200049 */ beql $at, $zero, .L8004C288 -/* AC3304 8004C164 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC3308 8004C168 44852000 */ mtc1 $a1, $f4 -/* AC330C 8004C16C 3C018014 */ lui $at, %hi(D_8013A028) -/* AC3310 8004C170 C426A028 */ lwc1 $f6, %lo(D_8013A028)($at) -/* AC3314 8004C174 468022A0 */ cvt.s.w $f10, $f4 -/* AC3318 8004C178 C7AC00AC */ lwc1 $f12, 0xac($sp) -/* AC331C 8004C17C C7AE00B4 */ lwc1 $f14, 0xb4($sp) -/* AC3320 8004C180 A7A5008E */ sh $a1, 0x8e($sp) -/* AC3324 8004C184 E7B200F4 */ swc1 $f18, 0xf4($sp) -/* AC3328 8004C188 46065402 */ mul.s $f16, $f10, $f6 -/* AC332C 8004C18C 0C01F02A */ jal OLib_ClampMaxDist -/* AC3330 8004C190 E7B000FC */ swc1 $f16, 0xfc($sp) -/* AC3334 8004C194 C7A800B4 */ lwc1 $f8, 0xb4($sp) -/* AC3338 8004C198 C7B200F4 */ lwc1 $f18, 0xf4($sp) -/* AC333C 8004C19C C7AA00F8 */ lwc1 $f10, 0xf8($sp) -/* AC3340 8004C1A0 46080103 */ div.s $f4, $f0, $f8 -/* AC3344 8004C1A4 3C014000 */ li $at, 0x40000000 # 0.000000 -/* AC3348 8004C1A8 C7B000FC */ lwc1 $f16, 0xfc($sp) -/* AC334C 8004C1AC 87AC008E */ lh $t4, 0x8e($sp) -/* AC3350 8004C1B0 46125181 */ sub.s $f6, $f10, $f18 -/* AC3354 8004C1B4 87AE009A */ lh $t6, 0x9a($sp) -/* AC3358 8004C1B8 25D98001 */ addiu $t9, $t6, -0x7fff -/* AC335C 8004C1BC 46062202 */ mul.s $f8, $f4, $f6 -/* AC3360 8004C1C0 44812000 */ mtc1 $at, $f4 -/* AC3364 8004C1C4 3C0143B4 */ li $at, 0x43B40000 # 0.000000 -/* AC3368 8004C1C8 46124080 */ add.s $f2, $f8, $f18 -/* AC336C 8004C1CC 44814000 */ mtc1 $at, $f8 -/* AC3370 8004C1D0 3C014000 */ li $at, 0x40000000 # 0.000000 -/* AC3374 8004C1D4 46021282 */ mul.s $f10, $f2, $f2 -/* AC3378 8004C1D8 46045181 */ sub.s $f6, $f10, $f4 -/* AC337C 8004C1DC 44812000 */ mtc1 $at, $f4 -/* AC3380 8004C1E0 3C0143B4 */ li $at, 0x43B40000 # 0.000000 -/* AC3384 8004C1E4 46081281 */ sub.s $f10, $f2, $f8 -/* AC3388 8004C1E8 44814000 */ mtc1 $at, $f8 -/* AC338C 8004C1EC 3C018014 */ lui $at, %hi(D_8013A030) -/* AC3390 8004C1F0 460A3303 */ div.s $f12, $f6, $f10 -/* AC3394 8004C1F4 460C4182 */ mul.s $f6, $f8, $f12 -/* AC3398 8004C1F8 46062281 */ sub.s $f10, $f4, $f6 -/* AC339C 8004C1FC 46106202 */ mul.s $f8, $f12, $f16 -/* AC33A0 8004C200 460A4100 */ add.s $f4, $f8, $f10 -/* AC33A4 8004C204 46108182 */ mul.s $f6, $f16, $f16 -/* AC33A8 8004C208 0580000D */ bltz $t4, .L8004C240 -/* AC33AC 8004C20C 46043383 */ div.s $f14, $f6, $f4 -/* AC33B0 8004C210 3C018014 */ lui $at, %hi(D_8013A02C) -/* AC33B4 8004C214 C428A02C */ lwc1 $f8, %lo(D_8013A02C)($at) -/* AC33B8 8004C218 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* AC33BC 8004C21C 44813000 */ mtc1 $at, $f6 -/* AC33C0 8004C220 46087282 */ mul.s $f10, $f14, $f8 -/* AC33C4 8004C224 46065100 */ add.s $f4, $f10, $f6 -/* AC33C8 8004C228 4600220D */ trunc.w.s $f8, $f4 -/* AC33CC 8004C22C 44084000 */ mfc1 $t0, $f8 -/* AC33D0 8004C230 00000000 */ nop -/* AC33D4 8004C234 00084400 */ sll $t0, $t0, 0x10 -/* AC33D8 8004C238 1000000E */ b .L8004C274 -/* AC33DC 8004C23C 00084403 */ sra $t0, $t0, 0x10 -.L8004C240: -/* AC33E0 8004C240 C42AA030 */ lwc1 $f10, %lo(D_8013A030)($at) -/* AC33E4 8004C244 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* AC33E8 8004C248 44812000 */ mtc1 $at, $f4 -/* AC33EC 8004C24C 460A7182 */ mul.s $f6, $f14, $f10 -/* AC33F0 8004C250 46043200 */ add.s $f8, $f6, $f4 -/* AC33F4 8004C254 4600428D */ trunc.w.s $f10, $f8 -/* AC33F8 8004C258 44085000 */ mfc1 $t0, $f10 -/* AC33FC 8004C25C 00000000 */ nop -/* AC3400 8004C260 00084400 */ sll $t0, $t0, 0x10 -/* AC3404 8004C264 00084403 */ sra $t0, $t0, 0x10 -/* AC3408 8004C268 00084023 */ negu $t0, $t0 -/* AC340C 8004C26C 00084400 */ sll $t0, $t0, 0x10 -/* AC3410 8004C270 00084403 */ sra $t0, $t0, 0x10 -.L8004C274: -/* AC3414 8004C274 03286021 */ addu $t4, $t9, $t0 -/* AC3418 8004C278 258D8001 */ addiu $t5, $t4, -0x7fff -/* AC341C 8004C27C 1000001A */ b .L8004C2E8 -/* AC3420 8004C280 A7AD00BA */ sh $t5, 0xba($sp) -/* AC3424 8004C284 3C013F80 */ li $at, 0x3F800000 # 0.000000 -.L8004C288: -/* AC3428 8004C288 44813000 */ mtc1 $at, $f6 -/* AC342C 8004C28C C60400E0 */ lwc1 $f4, 0xe0($s0) -/* AC3430 8004C290 3C018014 */ lui $at, %hi(D_8013A034) -/* AC3434 8004C294 C42AA034 */ lwc1 $f10, %lo(D_8013A034)($at) -/* AC3438 8004C298 46043201 */ sub.s $f8, $f6, $f4 -/* AC343C 8004C29C 00034023 */ negu $t0, $v1 -/* AC3440 8004C2A0 00084400 */ sll $t0, $t0, 0x10 -/* AC3444 8004C2A4 00084403 */ sra $t0, $t0, 0x10 -/* AC3448 8004C2A8 460A4402 */ mul.s $f16, $f8, $f10 -/* AC344C 8004C2AC 04800004 */ bltz $a0, .L8004C2C0 -/* AC3450 8004C2B0 00000000 */ nop -/* AC3454 8004C2B4 00034400 */ sll $t0, $v1, 0x10 -/* AC3458 8004C2B8 10000001 */ b .L8004C2C0 -/* AC345C 8004C2BC 00084403 */ sra $t0, $t0, 0x10 -.L8004C2C0: -/* AC3460 8004C2C0 01047023 */ subu $t6, $t0, $a0 -/* AC3464 8004C2C4 448E3000 */ mtc1 $t6, $f6 -/* AC3468 8004C2C8 87AA009A */ lh $t2, 0x9a($sp) -/* AC346C 8004C2CC 46803120 */ cvt.s.w $f4, $f6 -/* AC3470 8004C2D0 46102202 */ mul.s $f8, $f4, $f16 -/* AC3474 8004C2D4 4600428D */ trunc.w.s $f10, $f8 -/* AC3478 8004C2D8 44095000 */ mfc1 $t1, $f10 -/* AC347C 8004C2DC 00000000 */ nop -/* AC3480 8004C2E0 01495823 */ subu $t3, $t2, $t1 -/* AC3484 8004C2E4 A7AB00BA */ sh $t3, 0xba($sp) -.L8004C2E8: -/* AC3488 8004C2E8 8FAC00E8 */ lw $t4, 0xe8($sp) -/* AC348C 8004C2EC 87AD00B0 */ lh $t5, 0xb0($sp) -/* AC3490 8004C2F0 87A50098 */ lh $a1, 0x98($sp) -/* AC3494 8004C2F4 15800076 */ bnez $t4, .L8004C4D0 -/* AC3498 8004C2F8 2407000A */ li $a3, 10 -/* AC349C 8004C2FC 448D3000 */ mtc1 $t5, $f6 -/* AC34A0 8004C300 C6080018 */ lwc1 $f8, 0x18($s0) -/* AC34A4 8004C304 C7AA0078 */ lwc1 $f10, 0x78($sp) -/* AC34A8 8004C308 46803120 */ cvt.s.w $f4, $f6 -/* AC34AC 8004C30C C7A6007C */ lwc1 $f6, 0x7c($sp) -/* AC34B0 8004C310 C7A000E4 */ lwc1 $f0, 0xe4($sp) -/* AC34B4 8004C314 3C018014 */ lui $at, %hi(D_8013A038) -/* AC34B8 8004C318 87AA00A8 */ lh $t2, 0xa8($sp) -/* AC34BC 8004C31C 46082082 */ mul.s $f2, $f4, $f8 -/* AC34C0 8004C320 46065101 */ sub.s $f4, $f10, $f6 -/* AC34C4 8004C324 46002202 */ mul.s $f8, $f4, $f0 -/* AC34C8 8004C328 C424A038 */ lwc1 $f4, %lo(D_8013A038)($at) -/* AC34CC 8004C32C 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* AC34D0 8004C330 46064280 */ add.s $f10, $f8, $f6 -/* AC34D4 8004C334 44813000 */ mtc1 $at, $f6 -/* AC34D8 8004C338 46045202 */ mul.s $f8, $f10, $f4 -/* AC34DC 8004C33C 46064280 */ add.s $f10, $f8, $f6 -/* AC34E0 8004C340 44813000 */ mtc1 $at, $f6 -/* AC34E4 8004C344 44814000 */ mtc1 $at, $f8 -/* AC34E8 8004C348 4600510D */ trunc.w.s $f4, $f10 -/* AC34EC 8004C34C 46060282 */ mul.s $f10, $f0, $f6 -/* AC34F0 8004C350 448A3000 */ mtc1 $t2, $f6 -/* AC34F4 8004C354 44192000 */ mfc1 $t9, $f4 -/* AC34F8 8004C358 460A4100 */ add.s $f4, $f8, $f10 -/* AC34FC 8004C35C 46803220 */ cvt.s.w $f8, $f6 -/* AC3500 8004C360 46044282 */ mul.s $f10, $f8, $f4 -/* AC3504 8004C364 4600120D */ trunc.w.s $f8, $f2 -/* AC3508 8004C368 440C4000 */ mfc1 $t4, $f8 -/* AC350C 8004C36C 4600518D */ trunc.w.s $f6, $f10 -/* AC3510 8004C370 440D3000 */ mfc1 $t5, $f6 -/* AC3514 8004C374 00000000 */ nop -/* AC3518 8004C378 032DC023 */ subu $t8, $t9, $t5 -/* AC351C 8004C37C 030C1021 */ addu $v0, $t8, $t4 -/* AC3520 8004C380 00021C00 */ sll $v1, $v0, 0x10 -/* AC3524 8004C384 00031C03 */ sra $v1, $v1, 0x10 -/* AC3528 8004C388 00022400 */ sll $a0, $v0, 0x10 -/* AC352C 8004C38C 2861D558 */ slti $at, $v1, -0x2aa8 -/* AC3530 8004C390 10200003 */ beqz $at, .L8004C3A0 -/* AC3534 8004C394 00042403 */ sra $a0, $a0, 0x10 -/* AC3538 8004C398 10000005 */ b .L8004C3B0 -/* AC353C 8004C39C 2404D558 */ li $a0, -10920 -.L8004C3A0: -/* AC3540 8004C3A0 28612AA9 */ slti $at, $v1, 0x2aa9 -/* AC3544 8004C3A4 14200002 */ bnez $at, .L8004C3B0 -/* AC3548 8004C3A8 00000000 */ nop -/* AC354C 8004C3AC 24042AA8 */ li $a0, 10920 -.L8004C3B0: -/* AC3550 8004C3B0 0C010E47 */ jal func_8004391C -/* AC3554 8004C3B4 8E260010 */ lw $a2, 0x10($s1) -/* AC3558 8004C3B8 A7A200B8 */ sh $v0, 0xb8($sp) -/* AC355C 8004C3BC 8FA40044 */ lw $a0, 0x44($sp) -/* AC3560 8004C3C0 8FA50048 */ lw $a1, 0x48($sp) -/* AC3564 8004C3C4 0C010F0A */ jal func_80043C28 -/* AC3568 8004C3C8 27A600B4 */ addiu $a2, $sp, 0xb4 -/* AC356C 8004C3CC 8FB90044 */ lw $t9, 0x44($sp) -/* AC3570 8004C3D0 27A600BC */ addiu $a2, $sp, 0xbc -/* AC3574 8004C3D4 24010007 */ li $at, 7 -/* AC3578 8004C3D8 8F2E0000 */ lw $t6, ($t9) -/* AC357C 8004C3DC ACCE0000 */ sw $t6, ($a2) -/* AC3580 8004C3E0 8F2D0004 */ lw $t5, 4($t9) -/* AC3584 8004C3E4 ACCD0004 */ sw $t5, 4($a2) -/* AC3588 8004C3E8 8F2E0008 */ lw $t6, 8($t9) -/* AC358C 8004C3EC ACCE0008 */ sw $t6, 8($a2) -/* AC3590 8004C3F0 860F0140 */ lh $t7, 0x140($s0) -/* AC3594 8004C3F4 8FAA0044 */ lw $t2, 0x44($sp) -/* AC3598 8004C3F8 55E1002F */ bnel $t7, $at, .L8004C4B8 -/* AC359C 8004C3FC 8FAF004C */ lw $t7, 0x4c($sp) -/* AC35A0 8004C400 8E0A008C */ lw $t2, 0x8c($s0) -/* AC35A4 8004C404 3C090001 */ lui $t1, 1 -/* AC35A8 8004C408 02002025 */ move $a0, $s0 -/* AC35AC 8004C40C 012A4821 */ addu $t1, $t1, $t2 -/* AC35B0 8004C410 91290A39 */ lbu $t1, 0xa39($t1) -/* AC35B4 8004C414 11200005 */ beqz $t1, .L8004C42C -/* AC35B8 8004C418 00000000 */ nop -/* AC35BC 8004C41C 8602002C */ lh $v0, 0x2c($s0) -/* AC35C0 8004C420 304B0001 */ andi $t3, $v0, 1 -/* AC35C4 8004C424 11600005 */ beqz $t3, .L8004C43C -/* AC35C8 8004C428 30580002 */ andi $t8, $v0, 2 -.L8004C42C: -/* AC35CC 8004C42C 0C010F46 */ jal func_80043D18 -/* AC35D0 8004C430 8FA50048 */ lw $a1, 0x48($sp) -/* AC35D4 8004C434 10000017 */ b .L8004C494 -/* AC35D8 8004C438 27B900BC */ addiu $t9, $sp, 0xbc -.L8004C43C: -/* AC35DC 8004C43C 13000006 */ beqz $t8, .L8004C458 -/* AC35E0 8004C440 27A40128 */ addiu $a0, $sp, 0x128 -/* AC35E4 8004C444 02002025 */ move $a0, $s0 -/* AC35E8 8004C448 0C010FE5 */ jal func_80043F94 -/* AC35EC 8004C44C 8FA50048 */ lw $a1, 0x48($sp) -/* AC35F0 8004C450 10000010 */ b .L8004C494 -/* AC35F4 8004C454 27B900BC */ addiu $t9, $sp, 0xbc -.L8004C458: -/* AC35F8 8004C458 0C01F03E */ jal OLib_Vec3fDistNormalize -/* AC35FC 8004C45C 8FA50048 */ lw $a1, 0x48($sp) -/* AC3600 8004C460 C7A400BC */ lwc1 $f4, 0xbc($sp) -/* AC3604 8004C464 C7AA0128 */ lwc1 $f10, 0x128($sp) -/* AC3608 8004C468 C7A800C0 */ lwc1 $f8, 0xc0($sp) -/* AC360C 8004C46C 460A2181 */ sub.s $f6, $f4, $f10 -/* AC3610 8004C470 C7A4012C */ lwc1 $f4, 0x12c($sp) -/* AC3614 8004C474 46044281 */ sub.s $f10, $f8, $f4 -/* AC3618 8004C478 E7A600BC */ swc1 $f6, 0xbc($sp) -/* AC361C 8004C47C C7A600C4 */ lwc1 $f6, 0xc4($sp) -/* AC3620 8004C480 C7A80130 */ lwc1 $f8, 0x130($sp) -/* AC3624 8004C484 E7AA00C0 */ swc1 $f10, 0xc0($sp) -/* AC3628 8004C488 46083101 */ sub.s $f4, $f6, $f8 -/* AC362C 8004C48C E7A400C4 */ swc1 $f4, 0xc4($sp) -/* AC3630 8004C490 27B900BC */ addiu $t9, $sp, 0xbc -.L8004C494: -/* AC3634 8004C494 8F2E0000 */ lw $t6, ($t9) -/* AC3638 8004C498 8FAC004C */ lw $t4, 0x4c($sp) -/* AC363C 8004C49C AD8E0000 */ sw $t6, ($t4) -/* AC3640 8004C4A0 8F2D0004 */ lw $t5, 4($t9) -/* AC3644 8004C4A4 AD8D0004 */ sw $t5, 4($t4) -/* AC3648 8004C4A8 8F2E0008 */ lw $t6, 8($t9) -/* AC364C 8004C4AC 10000008 */ b .L8004C4D0 -/* AC3650 8004C4B0 AD8E0008 */ sw $t6, 8($t4) -/* AC3654 8004C4B4 8FAF004C */ lw $t7, 0x4c($sp) -.L8004C4B8: -/* AC3658 8004C4B8 8D4B0000 */ lw $t3, ($t2) -/* AC365C 8004C4BC ADEB0000 */ sw $t3, ($t7) -/* AC3660 8004C4C0 8D490004 */ lw $t1, 4($t2) -/* AC3664 8004C4C4 ADE90004 */ sw $t1, 4($t7) -/* AC3668 8004C4C8 8D4B0008 */ lw $t3, 8($t2) -/* AC366C 8004C4CC ADEB0008 */ sw $t3, 8($t7) -.L8004C4D0: -/* AC3670 8004C4D0 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 -/* AC3674 8004C4D4 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1) -/* AC3678 8004C4D8 C60800E0 */ lwc1 $f8, 0xe0($s0) -/* AC367C 8004C4DC 3C013F80 */ lui $at, 0x3f80 -/* AC3680 8004C4E0 847801DC */ lh $t8, 0x1dc($v1) -/* AC3684 8004C4E4 846C01DE */ lh $t4, 0x1de($v1) -/* AC3688 8004C4E8 C6200004 */ lwc1 $f0, 4($s1) -/* AC368C 8004C4EC 44985000 */ mtc1 $t8, $f10 -/* AC3690 8004C4F0 3C0A8016 */ lui $t2, %hi(gSaveContext+0x30) -/* AC3694 8004C4F4 468051A0 */ cvt.s.w $f6, $f10 -/* AC3698 8004C4F8 44815000 */ mtc1 $at, $f10 -/* AC369C 8004C4FC 3C018014 */ lui $at, %hi(D_8013A03C) -/* AC36A0 8004C500 46083102 */ mul.s $f4, $f6, $f8 -/* AC36A4 8004C504 C7A600E4 */ lwc1 $f6, 0xe4($sp) -/* AC36A8 8004C508 46065201 */ sub.s $f8, $f10, $f6 -/* AC36AC 8004C50C 46082282 */ mul.s $f10, $f4, $f8 -/* AC36B0 8004C510 448C2000 */ mtc1 $t4, $f4 -/* AC36B4 8004C514 00000000 */ nop -/* AC36B8 8004C518 46802220 */ cvt.s.w $f8, $f4 -/* AC36BC 8004C51C 46005181 */ sub.s $f6, $f10, $f0 -/* AC36C0 8004C520 C42AA03C */ lwc1 $f10, %lo(D_8013A03C)($at) -/* AC36C4 8004C524 3C018014 */ lui $at, %hi(D_8013A040) -/* AC36C8 8004C528 460A4102 */ mul.s $f4, $f8, $f10 -/* AC36CC 8004C52C 00000000 */ nop -/* AC36D0 8004C530 46043202 */ mul.s $f8, $f6, $f4 -/* AC36D4 8004C534 46080280 */ add.s $f10, $f0, $f8 -/* AC36D8 8004C538 E62A0004 */ swc1 $f10, 4($s1) -/* AC36DC 8004C53C C424A040 */ lwc1 $f4, %lo(D_8013A040)($at) -/* AC36E0 8004C540 C6260004 */ lwc1 $f6, 4($s1) -/* AC36E4 8004C544 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* AC36E8 8004C548 44815000 */ mtc1 $at, $f10 -/* AC36EC 8004C54C 46043202 */ mul.s $f8, $f6, $f4 -/* AC36F0 8004C550 3C018014 */ lui $at, %hi(D_8013A044) -/* AC36F4 8004C554 460A4180 */ add.s $f6, $f8, $f10 -/* AC36F8 8004C558 4600310D */ trunc.w.s $f4, $f6 -/* AC36FC 8004C55C 440D2000 */ mfc1 $t5, $f4 -/* AC3700 8004C560 00000000 */ nop -/* AC3704 8004C564 A60D015A */ sh $t5, 0x15a($s0) -/* AC3708 8004C568 8FAE0088 */ lw $t6, 0x88($sp) -/* AC370C 8004C56C C7A80074 */ lwc1 $f8, 0x74($sp) -/* AC3710 8004C570 81CF0843 */ lb $t7, 0x843($t6) -/* AC3714 8004C574 11E00003 */ beqz $t7, .L8004C584 -/* AC3718 8004C578 00000000 */ nop -/* AC371C 8004C57C 1000000B */ b .L8004C5AC -/* AC3720 8004C580 C422A044 */ lwc1 $f2, %lo(D_8013A044)($at) -.L8004C584: -/* AC3724 8004C584 854AE690 */ lh $t2, %lo(gSaveContext+0x30)($t2) -/* AC3728 8004C588 29410011 */ slti $at, $t2, 0x11 -/* AC372C 8004C58C 10200003 */ beqz $at, .L8004C59C -/* AC3730 8004C590 3C018014 */ lui $at, %hi(D_8013A048) -/* AC3734 8004C594 10000004 */ b .L8004C5A8 -/* AC3738 8004C598 C420A048 */ lwc1 $f0, %lo(D_8013A048)($at) -.L8004C59C: -/* AC373C 8004C59C 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC3740 8004C5A0 44810000 */ mtc1 $at, $f0 -/* AC3744 8004C5A4 00000000 */ nop -.L8004C5A8: -/* AC3748 8004C5A8 46000086 */ mov.s $f2, $f0 -.L8004C5AC: -/* AC374C 8004C5AC 3C018014 */ lui $at, %hi(D_8013A04C) -/* AC3750 8004C5B0 C42AA04C */ lwc1 $f10, %lo(D_8013A04C)($at) -/* AC3754 8004C5B4 C7A400E4 */ lwc1 $f4, 0xe4($sp) -/* AC3758 8004C5B8 C60E00FC */ lwc1 $f14, 0xfc($s0) -/* AC375C 8004C5BC 460A4182 */ mul.s $f6, $f8, $f10 -/* AC3760 8004C5C0 8E0600D4 */ lw $a2, 0xd4($s0) -/* AC3764 8004C5C4 3C073F80 */ lui $a3, 0x3f80 -/* AC3768 8004C5C8 46043282 */ mul.s $f10, $f6, $f4 -/* AC376C 8004C5CC 460A4181 */ sub.s $f6, $f8, $f10 -/* AC3770 8004C5D0 46061302 */ mul.s $f12, $f2, $f6 -/* AC3774 8004C5D4 0C010E27 */ jal func_8004389C -/* AC3778 8004C5D8 00000000 */ nop -/* AC377C 8004C5DC E60000FC */ swc1 $f0, 0xfc($s0) -.L8004C5E0: -/* AC3780 8004C5E0 8FBF002C */ lw $ra, 0x2c($sp) -/* AC3784 8004C5E4 8FB00024 */ lw $s0, 0x24($sp) -/* AC3788 8004C5E8 8FB10028 */ lw $s1, 0x28($sp) -/* AC378C 8004C5EC 03E00008 */ jr $ra -/* AC3790 8004C5F0 27BD0140 */ addiu $sp, $sp, 0x140 diff --git a/asm/non_matchings/code/z_camera/Camera_Battle4.s b/asm/non_matchings/code/z_camera/Camera_Battle4.s deleted file mode 100644 index 26b4de5096..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Battle4.s +++ /dev/null @@ -1,299 +0,0 @@ -.late_rodata -glabel D_8013A050 - .float 0.01 - -glabel D_8013A054 - .float 182.041671753 - .float 0.01 - .float 0.01 - -glabel D_8013A060 - .float 0.01 - -glabel D_8013A064 - .float 0.025 - -glabel D_8013A068 - .float 0.01 - -glabel D_8013A06C - .float 0.01 - -glabel D_8013A070 - .float 0.01 - -glabel D_8013A074 - .float 9.99999974738e-05 - -.text -glabel Camera_Battle4 -/* AC37D4 8004C634 27BDFF88 */ addiu $sp, $sp, -0x78 -/* AC37D8 8004C638 AFB00018 */ sw $s0, 0x18($sp) -/* AC37DC 8004C63C 00808025 */ move $s0, $a0 -/* AC37E0 8004C640 AFBF001C */ sw $ra, 0x1c($sp) -/* AC37E4 8004C644 0C00B721 */ jal Player_GetCameraYOffset -/* AC37E8 8004C648 8C840090 */ lw $a0, 0x90($a0) -/* AC37EC 8004C64C 8602015E */ lh $v0, 0x15e($s0) -/* AC37F0 8004C650 10400008 */ beqz $v0, .L8004C674 -/* AC37F4 8004C654 2401000A */ li $at, 10 -/* AC37F8 8004C658 10410006 */ beq $v0, $at, .L8004C674 -/* AC37FC 8004C65C 24010014 */ li $at, 20 -/* AC3800 8004C660 10410004 */ beq $v0, $at, .L8004C674 -/* AC3804 8004C664 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 -/* AC3808 8004C668 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* AC380C 8004C66C 85C30314 */ lh $v1, 0x314($t6) -/* AC3810 8004C670 10600050 */ beqz $v1, .L8004C7B4 -.L8004C674: -/* AC3814 8004C674 3C018014 */ lui $at, %hi(D_8013A050) -/* AC3818 8004C678 C42EA050 */ lwc1 $f14, %lo(D_8013A050)($at) -/* AC381C 8004C67C 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC3820 8004C680 44814000 */ mtc1 $at, $f8 -/* AC3824 8004C684 3C014288 */ lui $at, 0x4288 -/* AC3828 8004C688 3C0B8016 */ lui $t3, %hi(gGameInfo) -/* AC382C 8004C68C 8D6BFA90 */ lw $t3, %lo(gGameInfo)($t3) -/* AC3830 8004C690 44818000 */ mtc1 $at, $f16 -/* AC3834 8004C694 860F0142 */ lh $t7, 0x142($s0) -/* AC3838 8004C698 856C01F0 */ lh $t4, 0x1f0($t3) -/* AC383C 8004C69C 46008483 */ div.s $f18, $f16, $f0 -/* AC3840 8004C6A0 3C198012 */ lui $t9, %hi(sCameraSettings+4) -/* AC3844 8004C6A4 448C2000 */ mtc1 $t4, $f4 -/* AC3848 8004C6A8 000FC0C0 */ sll $t8, $t7, 3 -/* AC384C 8004C6AC 86080144 */ lh $t0, 0x144($s0) -/* AC3850 8004C6B0 468021A0 */ cvt.s.w $f6, $f4 -/* AC3854 8004C6B4 0338C821 */ addu $t9, $t9, $t8 -/* AC3858 8004C6B8 8F39D068 */ lw $t9, %lo(sCameraSettings+4)($t9) -/* AC385C 8004C6BC 000848C0 */ sll $t1, $t0, 3 -/* AC3860 8004C6C0 3C018014 */ lui $at, %hi(D_8013A054) -/* AC3864 8004C6C4 03295021 */ addu $t2, $t9, $t1 -/* AC3868 8004C6C8 8D420004 */ lw $v0, 4($t2) -/* AC386C 8004C6CC 3C0C8016 */ lui $t4, %hi(gGameInfo) -/* AC3870 8004C6D0 844D0000 */ lh $t5, ($v0) -/* AC3874 8004C6D4 24420018 */ addiu $v0, $v0, 0x18 -/* AC3878 8004C6D8 460E3302 */ mul.s $f12, $f6, $f14 -/* AC387C 8004C6DC 448D3000 */ mtc1 $t5, $f6 -/* AC3880 8004C6E0 460C4280 */ add.s $f10, $f8, $f12 -/* AC3884 8004C6E4 46126102 */ mul.s $f4, $f12, $f18 -/* AC3888 8004C6E8 46803220 */ cvt.s.w $f8, $f6 -/* AC388C 8004C6EC 46045081 */ sub.s $f2, $f10, $f4 -/* AC3890 8004C6F0 460E4402 */ mul.s $f16, $f8, $f14 -/* AC3894 8004C6F4 00000000 */ nop -/* AC3898 8004C6F8 46008482 */ mul.s $f18, $f16, $f0 -/* AC389C 8004C6FC 00000000 */ nop -/* AC38A0 8004C700 46029282 */ mul.s $f10, $f18, $f2 -/* AC38A4 8004C704 E60A0000 */ swc1 $f10, ($s0) -/* AC38A8 8004C708 844EFFEC */ lh $t6, -0x14($v0) -/* AC38AC 8004C70C 448E2000 */ mtc1 $t6, $f4 -/* AC38B0 8004C710 00000000 */ nop -/* AC38B4 8004C714 468021A0 */ cvt.s.w $f6, $f4 -/* AC38B8 8004C718 460E3202 */ mul.s $f8, $f6, $f14 -/* AC38BC 8004C71C 00000000 */ nop -/* AC38C0 8004C720 46004402 */ mul.s $f16, $f8, $f0 -/* AC38C4 8004C724 00000000 */ nop -/* AC38C8 8004C728 46028482 */ mul.s $f18, $f16, $f2 -/* AC38CC 8004C72C E6120004 */ swc1 $f18, 4($s0) -/* AC38D0 8004C730 844FFFF0 */ lh $t7, -0x10($v0) -/* AC38D4 8004C734 C426A054 */ lwc1 $f6, %lo(D_8013A054)($at) -/* AC38D8 8004C738 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* AC38DC 8004C73C 448F5000 */ mtc1 $t7, $f10 -/* AC38E0 8004C740 44818000 */ mtc1 $at, $f16 -/* AC38E4 8004C744 46805120 */ cvt.s.w $f4, $f10 -/* AC38E8 8004C748 46062202 */ mul.s $f8, $f4, $f6 -/* AC38EC 8004C74C 46104480 */ add.s $f18, $f8, $f16 -/* AC38F0 8004C750 4600928D */ trunc.w.s $f10, $f18 -/* AC38F4 8004C754 44085000 */ mfc1 $t0, $f10 -/* AC38F8 8004C758 00000000 */ nop -/* AC38FC 8004C75C A6080008 */ sh $t0, 8($s0) -/* AC3900 8004C760 8459FFF4 */ lh $t9, -0xc($v0) -/* AC3904 8004C764 44992000 */ mtc1 $t9, $f4 -/* AC3908 8004C768 00000000 */ nop -/* AC390C 8004C76C 468021A0 */ cvt.s.w $f6, $f4 -/* AC3910 8004C770 460E3202 */ mul.s $f8, $f6, $f14 -/* AC3914 8004C774 E608000C */ swc1 $f8, 0xc($s0) -/* AC3918 8004C778 8449FFF8 */ lh $t1, -8($v0) -/* AC391C 8004C77C 44898000 */ mtc1 $t1, $f16 -/* AC3920 8004C780 00000000 */ nop -/* AC3924 8004C784 468084A0 */ cvt.s.w $f18, $f16 -/* AC3928 8004C788 E6120010 */ swc1 $f18, 0x10($s0) -/* AC392C 8004C78C 844AFFFC */ lh $t2, -4($v0) -/* AC3930 8004C790 448A5000 */ mtc1 $t2, $f10 -/* AC3934 8004C794 00000000 */ nop -/* AC3938 8004C798 46805120 */ cvt.s.w $f4, $f10 -/* AC393C 8004C79C 460E2182 */ mul.s $f6, $f4, $f14 -/* AC3940 8004C7A0 E6060014 */ swc1 $f6, 0x14($s0) -/* AC3944 8004C7A4 844B0000 */ lh $t3, ($v0) -/* AC3948 8004C7A8 A60B0018 */ sh $t3, 0x18($s0) -/* AC394C 8004C7AC 8D8CFA90 */ lw $t4, %lo(gGameInfo)($t4) -/* AC3950 8004C7B0 85830314 */ lh $v1, 0x314($t4) -.L8004C7B4: -/* AC3954 8004C7B4 50600004 */ beql $v1, $zero, .L8004C7C8 -/* AC3958 8004C7B8 26050050 */ addiu $a1, $s0, 0x50 -/* AC395C 8004C7BC 0C011495 */ jal Camera_CopyPREGToModeValues -/* AC3960 8004C7C0 02002025 */ move $a0, $s0 -/* AC3964 8004C7C4 26050050 */ addiu $a1, $s0, 0x50 -.L8004C7C8: -/* AC3968 8004C7C8 2606005C */ addiu $a2, $s0, 0x5c -/* AC396C 8004C7CC AFA60034 */ sw $a2, 0x34($sp) -/* AC3970 8004C7D0 AFA50030 */ sw $a1, 0x30($sp) -/* AC3974 8004C7D4 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC3978 8004C7D8 27A4005C */ addiu $a0, $sp, 0x5c -/* AC397C 8004C7DC 26060074 */ addiu $a2, $s0, 0x74 -/* AC3980 8004C7E0 AFA6002C */ sw $a2, 0x2c($sp) -/* AC3984 8004C7E4 27A40054 */ addiu $a0, $sp, 0x54 -/* AC3988 8004C7E8 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC398C 8004C7EC 8FA50030 */ lw $a1, 0x30($sp) -/* AC3990 8004C7F0 860D0018 */ lh $t5, 0x18($s0) -/* AC3994 8004C7F4 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 -/* AC3998 8004C7F8 240E0032 */ li $t6, 50 -/* AC399C 8004C7FC AC2DD3A0 */ sw $t5, %lo(D_8011D3A0)($at) -/* AC39A0 8004C800 8603015E */ lh $v1, 0x15e($s0) -/* AC39A4 8004C804 2401000A */ li $at, 10 -/* AC39A8 8004C808 3C088016 */ lui $t0, %hi(gGameInfo) # $t0, 0x8016 -/* AC39AC 8004C80C 50600008 */ beql $v1, $zero, .L8004C830 -/* AC39B0 8004C810 2603001C */ addiu $v1, $s0, 0x1c -/* AC39B4 8004C814 10610005 */ beq $v1, $at, .L8004C82C -/* AC39B8 8004C818 24010014 */ li $at, 20 -/* AC39BC 8004C81C 50610004 */ beql $v1, $at, .L8004C830 -/* AC39C0 8004C820 2603001C */ addiu $v1, $s0, 0x1c -/* AC39C4 8004C824 10000006 */ b .L8004C840 -/* AC39C8 8004C828 2603001C */ addiu $v1, $s0, 0x1c -.L8004C82C: -/* AC39CC 8004C82C 2603001C */ addiu $v1, $s0, 0x1c -.L8004C830: -/* AC39D0 8004C830 A46E0000 */ sh $t6, ($v1) -/* AC39D4 8004C834 860F015E */ lh $t7, 0x15e($s0) -/* AC39D8 8004C838 25F80001 */ addiu $t8, $t7, 1 -/* AC39DC 8004C83C A618015E */ sh $t8, 0x15e($s0) -.L8004C840: -/* AC39E0 8004C840 8D08FA90 */ lw $t0, %lo(gGameInfo)($t0) -/* AC39E4 8004C844 3C018014 */ lui $at, %hi(D_8013A060) -/* AC39E8 8004C848 C432A060 */ lwc1 $f18, %lo(D_8013A060)($at) -/* AC39EC 8004C84C 851901C6 */ lh $t9, 0x1c6($t0) -/* AC39F0 8004C850 C60400E0 */ lwc1 $f4, 0xe0($s0) -/* AC39F4 8004C854 C60C000C */ lwc1 $f12, 0xc($s0) -/* AC39F8 8004C858 44994000 */ mtc1 $t9, $f8 -/* AC39FC 8004C85C C60E00C8 */ lwc1 $f14, 0xc8($s0) -/* AC3A00 8004C860 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC3A04 8004C864 46804420 */ cvt.s.w $f16, $f8 -/* AC3A08 8004C868 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC3A0C 8004C86C AFA30028 */ sw $v1, 0x28($sp) -/* AC3A10 8004C870 46128282 */ mul.s $f10, $f16, $f18 -/* AC3A14 8004C874 00000000 */ nop -/* AC3A18 8004C878 46045182 */ mul.s $f6, $f10, $f4 -/* AC3A1C 8004C87C 44063000 */ mfc1 $a2, $f6 -/* AC3A20 8004C880 0C010E27 */ jal func_8004389C -/* AC3A24 8004C884 00000000 */ nop -/* AC3A28 8004C888 3C01447A */ li $at, 0x447A0000 # 0.000000 -/* AC3A2C 8004C88C 44811000 */ mtc1 $at, $f2 -/* AC3A30 8004C890 E60000C8 */ swc1 $f0, 0xc8($s0) -/* AC3A34 8004C894 3C098016 */ lui $t1, %hi(gGameInfo) # $t1, 0x8016 -/* AC3A38 8004C898 E60200C0 */ swc1 $f2, 0xc0($s0) -/* AC3A3C 8004C89C E60200C4 */ swc1 $f2, 0xc4($s0) -/* AC3A40 8004C8A0 8D29FA90 */ lw $t1, %lo(gGameInfo)($t1) -/* AC3A44 8004C8A4 3C018014 */ lui $at, %hi(D_8013A064) -/* AC3A48 8004C8A8 C42CA064 */ lwc1 $f12, %lo(D_8013A064)($at) -/* AC3A4C 8004C8AC 852A01C6 */ lh $t2, 0x1c6($t1) -/* AC3A50 8004C8B0 3C018014 */ lui $at, %hi(D_8013A068) -/* AC3A54 8004C8B4 C432A068 */ lwc1 $f18, %lo(D_8013A068)($at) -/* AC3A58 8004C8B8 448A4000 */ mtc1 $t2, $f8 -/* AC3A5C 8004C8BC 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC3A60 8004C8C0 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC3A64 8004C8C4 46804420 */ cvt.s.w $f16, $f8 -/* AC3A68 8004C8C8 C60E00CC */ lwc1 $f14, 0xcc($s0) -/* AC3A6C 8004C8CC 46128282 */ mul.s $f10, $f16, $f18 -/* AC3A70 8004C8D0 44065000 */ mfc1 $a2, $f10 -/* AC3A74 8004C8D4 0C010E27 */ jal func_8004389C -/* AC3A78 8004C8D8 00000000 */ nop -/* AC3A7C 8004C8DC E60000CC */ swc1 $f0, 0xcc($s0) -/* AC3A80 8004C8E0 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* AC3A84 8004C8E4 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* AC3A88 8004C8E8 3C018014 */ lui $at, %hi(D_8013A06C) -/* AC3A8C 8004C8EC C428A06C */ lwc1 $f8, %lo(D_8013A06C)($at) -/* AC3A90 8004C8F0 844B019A */ lh $t3, 0x19a($v0) -/* AC3A94 8004C8F4 844C01C8 */ lh $t4, 0x1c8($v0) -/* AC3A98 8004C8F8 3C018014 */ lui $at, %hi(D_8013A070) -/* AC3A9C 8004C8FC 448B2000 */ mtc1 $t3, $f4 -/* AC3AA0 8004C900 448C8000 */ mtc1 $t4, $f16 -/* AC3AA4 8004C904 C42AA070 */ lwc1 $f10, %lo(D_8013A070)($at) -/* AC3AA8 8004C908 468021A0 */ cvt.s.w $f6, $f4 -/* AC3AAC 8004C90C 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC3AB0 8004C910 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC3AB4 8004C914 C60E00D0 */ lwc1 $f14, 0xd0($s0) -/* AC3AB8 8004C918 468084A0 */ cvt.s.w $f18, $f16 -/* AC3ABC 8004C91C 46083302 */ mul.s $f12, $f6, $f8 -/* AC3AC0 8004C920 C60600E0 */ lwc1 $f6, 0xe0($s0) -/* AC3AC4 8004C924 460A9102 */ mul.s $f4, $f18, $f10 -/* AC3AC8 8004C928 00000000 */ nop -/* AC3ACC 8004C92C 46062202 */ mul.s $f8, $f4, $f6 -/* AC3AD0 8004C930 44064000 */ mfc1 $a2, $f8 -/* AC3AD4 8004C934 0C010E27 */ jal func_8004389C -/* AC3AD8 8004C938 00000000 */ nop -/* AC3ADC 8004C93C E60000D0 */ swc1 $f0, 0xd0($s0) -/* AC3AE0 8004C940 3C018014 */ lui $at, %hi(D_8013A074) -/* AC3AE4 8004C944 C430A074 */ lwc1 $f16, %lo(D_8013A074)($at) -/* AC3AE8 8004C948 02002025 */ move $a0, $s0 -/* AC3AEC 8004C94C 27A50054 */ addiu $a1, $sp, 0x54 -/* AC3AF0 8004C950 8E060000 */ lw $a2, ($s0) -/* AC3AF4 8004C954 24070001 */ li $a3, 1 -/* AC3AF8 8004C958 0C0115EA */ jal func_800457A8 -/* AC3AFC 8004C95C E61000D4 */ swc1 $f16, 0xd4($s0) -/* AC3B00 8004C960 8FA30028 */ lw $v1, 0x28($sp) -/* AC3B04 8004C964 87AE0062 */ lh $t6, 0x62($sp) -/* AC3B08 8004C968 87B90062 */ lh $t9, 0x62($sp) -/* AC3B0C 8004C96C 846D0000 */ lh $t5, ($v1) -/* AC3B10 8004C970 24070002 */ li $a3, 2 -/* AC3B14 8004C974 51A0000B */ beql $t5, $zero, .L8004C9A4 -/* AC3B18 8004C978 A7B9006A */ sh $t9, 0x6a($sp) -/* AC3B1C 8004C97C 87AF0060 */ lh $t7, 0x60($sp) -/* AC3B20 8004C980 C7B2005C */ lwc1 $f18, 0x5c($sp) -/* AC3B24 8004C984 A7AE006A */ sh $t6, 0x6a($sp) -/* AC3B28 8004C988 A7AF0068 */ sh $t7, 0x68($sp) -/* AC3B2C 8004C98C E7B20064 */ swc1 $f18, 0x64($sp) -/* AC3B30 8004C990 84780000 */ lh $t8, ($v1) -/* AC3B34 8004C994 2708FFFF */ addiu $t0, $t8, -1 -/* AC3B38 8004C998 1000000E */ b .L8004C9D4 -/* AC3B3C 8004C99C A4680000 */ sh $t0, ($v1) -/* AC3B40 8004C9A0 A7B9006A */ sh $t9, 0x6a($sp) -.L8004C9A4: -/* AC3B44 8004C9A4 8E06000C */ lw $a2, 0xc($s0) -/* AC3B48 8004C9A8 86040008 */ lh $a0, 8($s0) -/* AC3B4C 8004C9AC 0C010E47 */ jal func_8004391C -/* AC3B50 8004C9B0 87A50060 */ lh $a1, 0x60($sp) -/* AC3B54 8004C9B4 A7A20068 */ sh $v0, 0x68($sp) -/* AC3B58 8004C9B8 3C073A83 */ lui $a3, (0x3A83126F >> 16) # lui $a3, 0x3a83 -/* AC3B5C 8004C9BC 34E7126F */ ori $a3, (0x3A83126F & 0xFFFF) # ori $a3, $a3, 0x126f -/* AC3B60 8004C9C0 8E06000C */ lw $a2, 0xc($s0) -/* AC3B64 8004C9C4 C60C0004 */ lwc1 $f12, 4($s0) -/* AC3B68 8004C9C8 0C010E27 */ jal func_8004389C -/* AC3B6C 8004C9CC C7AE005C */ lwc1 $f14, 0x5c($sp) -/* AC3B70 8004C9D0 E7A00064 */ swc1 $f0, 0x64($sp) -.L8004C9D4: -/* AC3B74 8004C9D4 8FA4002C */ lw $a0, 0x2c($sp) -/* AC3B78 8004C9D8 8FA50030 */ lw $a1, 0x30($sp) -/* AC3B7C 8004C9DC 0C010F0A */ jal func_80043C28 -/* AC3B80 8004C9E0 27A60064 */ addiu $a2, $sp, 0x64 -/* AC3B84 8004C9E4 8FAA002C */ lw $t2, 0x2c($sp) -/* AC3B88 8004C9E8 8FA90034 */ lw $t1, 0x34($sp) -/* AC3B8C 8004C9EC 3C073F80 */ lui $a3, 0x3f80 -/* AC3B90 8004C9F0 8D4C0000 */ lw $t4, ($t2) -/* AC3B94 8004C9F4 AD2C0000 */ sw $t4, ($t1) -/* AC3B98 8004C9F8 8D4B0004 */ lw $t3, 4($t2) -/* AC3B9C 8004C9FC AD2B0004 */ sw $t3, 4($t1) -/* AC3BA0 8004CA00 8D4C0008 */ lw $t4, 8($t2) -/* AC3BA4 8004CA04 AD2C0008 */ sw $t4, 8($t1) -/* AC3BA8 8004CA08 C7AA0064 */ lwc1 $f10, 0x64($sp) -/* AC3BAC 8004CA0C 8E06000C */ lw $a2, 0xc($s0) -/* AC3BB0 8004CA10 C60E00FC */ lwc1 $f14, 0xfc($s0) -/* AC3BB4 8004CA14 C60C0010 */ lwc1 $f12, 0x10($s0) -/* AC3BB8 8004CA18 0C010E27 */ jal func_8004389C -/* AC3BBC 8004CA1C E60A00DC */ swc1 $f10, 0xdc($s0) -/* AC3BC0 8004CA20 E60000FC */ swc1 $f0, 0xfc($s0) -/* AC3BC4 8004CA24 A600015A */ sh $zero, 0x15a($s0) -/* AC3BC8 8004CA28 02002025 */ move $a0, $s0 -/* AC3BCC 8004CA2C 0C011429 */ jal func_800450A4 -/* AC3BD0 8004CA30 8E050014 */ lw $a1, 0x14($s0) -/* AC3BD4 8004CA34 E6000100 */ swc1 $f0, 0x100($s0) -/* AC3BD8 8004CA38 8FBF001C */ lw $ra, 0x1c($sp) -/* AC3BDC 8004CA3C 8FB00018 */ lw $s0, 0x18($sp) -/* AC3BE0 8004CA40 27BD0078 */ addiu $sp, $sp, 0x78 -/* AC3BE4 8004CA44 03E00008 */ jr $ra -/* AC3BE8 8004CA48 24020001 */ li $v0, 1 diff --git a/asm/non_matchings/code/z_camera/Camera_ChangeMode.s b/asm/non_matchings/code/z_camera/Camera_ChangeMode.s deleted file mode 100644 index 6a2edf7b7c..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_ChangeMode.s +++ /dev/null @@ -1,361 +0,0 @@ -.rdata -glabel D_80139BB4 - .asciz "+=+(%d)+=+ recive request -> %s\n" - .balign 4 - -glabel D_80139BD8 - .asciz "camera: error sound\n" - .balign 4 - -glabel D_80139BF0 - .asciz "\x1b[43;30mcamera: change camera mode: force NORMAL: %s %s refused\n\x1b[m" - .balign 4 - -.late_rodata -glabel jtbl_8013A450 - .word L8005A28C # 1 - .word L8005A268 # 2 - .word L8005A28C # 3 - .word L8005A260 # 4 - .word L8005A290 - .word L8005A258 # 6 - .word L8005A290 - .word L8005A28C # 8 - .word L8005A290 - .word L8005A290 - .word L8005A290 - .word L8005A290 - .word L8005A290 - .word L8005A290 - .word L8005A28C # 15 - .word L8005A290 - .word L8005A290 - .word L8005A290 - .word L8005A28C # 19 - -glabel jtbl_8013A49C - .word L8005A320 # 0 - .word L8005A2C8 # 1 - .word L8005A2E8 # 2 - .word L8005A330 - .word L8005A300 # 4 - .word L8005A330 - .word L8005A2B4 # 6 - .word L8005A330 - .word L8005A318 # 8 - .word L8005A330 - .word L8005A330 - .word L8005A330 - .word L8005A330 - .word L8005A330 - .word L8005A330 - .word L8005A318 # 15 - .word L8005A330 - .word L8005A2E0 # 17 - .word L8005A330 - .word L8005A318 # 19 - -.text -glabel Camera_ChangeMode -/* AD11EC 8005A04C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* AD11F0 8005A050 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 -/* AD11F4 8005A054 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* AD11F8 8005A058 AFBF0014 */ sw $ra, 0x14($sp) -/* AD11FC 8005A05C AFA5001C */ sw $a1, 0x1c($sp) -/* AD1200 8005A060 AFA60020 */ sw $a2, 0x20($sp) -/* AD1204 8005A064 85CF03C6 */ lh $t7, 0x3c6($t6) -/* AD1208 8005A068 00803825 */ move $a3, $a0 -/* AD120C 8005A06C 3C048014 */ lui $a0, %hi(D_80139BB4) # $a0, 0x8014 -/* AD1210 8005A070 11E0000D */ beqz $t7, .L8005A0A8 -/* AD1214 8005A074 24849BB4 */ addiu $a0, %lo(D_80139BB4) # addiu $a0, $a0, -0x644c -/* AD1218 8005A078 87B9001E */ lh $t9, 0x1e($sp) -/* AD121C 8005A07C 8CF8008C */ lw $t8, 0x8c($a3) -/* AD1220 8005A080 3C098012 */ lui $t1, %hi(sCameraModeNames) # $t1, 0x8012 -/* AD1224 8005A084 00194080 */ sll $t0, $t9, 2 -/* AD1228 8005A088 01194023 */ subu $t0, $t0, $t9 -/* AD122C 8005A08C 00084080 */ sll $t0, $t0, 2 -/* AD1230 8005A090 2529A2A4 */ addiu $t1, %lo(sCameraModeNames) # addiu $t1, $t1, -0x5d5c -/* AD1234 8005A094 8F05009C */ lw $a1, 0x9c($t8) -/* AD1238 8005A098 AFA70018 */ sw $a3, 0x18($sp) -/* AD123C 8005A09C 0C00084C */ jal osSyncPrintf -/* AD1240 8005A0A0 01093021 */ addu $a2, $t0, $t1 -/* AD1244 8005A0A4 8FA70018 */ lw $a3, 0x18($sp) -.L8005A0A8: -/* AD1248 8005A0A8 84EA014C */ lh $t2, 0x14c($a3) -/* AD124C 8005A0AC 93AC0023 */ lbu $t4, 0x23($sp) -/* AD1250 8005A0B0 3C198012 */ lui $t9, %hi(sCameraSettings) -/* AD1254 8005A0B4 314B0020 */ andi $t3, $t2, 0x20 -/* AD1258 8005A0B8 11600008 */ beqz $t3, .L8005A0DC -/* AD125C 8005A0BC 3C013FFF */ lui $at, (0x3FFFFFFF >> 16) # lui $at, 0x3fff -/* AD1260 8005A0C0 55800007 */ bnezl $t4, .L8005A0E0 -/* AD1264 8005A0C4 84EF0142 */ lh $t7, 0x142($a3) -/* AD1268 8005A0C8 84ED014A */ lh $t5, 0x14a($a3) -/* AD126C 8005A0CC 2402FFFF */ li $v0, -1 -/* AD1270 8005A0D0 35AE0020 */ ori $t6, $t5, 0x20 -/* AD1274 8005A0D4 100000D7 */ b .L8005A434 -/* AD1278 8005A0D8 A4EE014A */ sh $t6, 0x14a($a3) -.L8005A0DC: -/* AD127C 8005A0DC 84EF0142 */ lh $t7, 0x142($a3) -.L8005A0E0: -/* AD1280 8005A0E0 87A9001E */ lh $t1, 0x1e($sp) -/* AD1284 8005A0E4 3421FFFF */ ori $at, (0x3FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* AD1288 8005A0E8 000FC0C0 */ sll $t8, $t7, 3 -/* AD128C 8005A0EC 0338C821 */ addu $t9, $t9, $t8 -/* AD1290 8005A0F0 8F39D064 */ lw $t9, %lo(sCameraSettings)($t9) -/* AD1294 8005A0F4 240A0001 */ li $t2, 1 -/* AD1298 8005A0F8 012A5804 */ sllv $t3, $t2, $t1 -/* AD129C 8005A0FC 03214024 */ and $t0, $t9, $at -/* AD12A0 8005A100 010B6024 */ and $t4, $t0, $t3 -/* AD12A4 8005A104 15800030 */ bnez $t4, .L8005A1C8 -/* AD12A8 8005A108 87AE001E */ lh $t6, 0x1e($sp) -/* AD12AC 8005A10C 24010006 */ li $at, 6 -/* AD12B0 8005A110 15210007 */ bne $t1, $at, .L8005A130 -/* AD12B4 8005A114 3C048014 */ lui $a0, %hi(D_80139BD8) # $a0, 0x8014 -/* AD12B8 8005A118 24849BD8 */ addiu $a0, %lo(D_80139BD8) # addiu $a0, $a0, -0x6428 -/* AD12BC 8005A11C 0C00084C */ jal osSyncPrintf -/* AD12C0 8005A120 AFA70018 */ sw $a3, 0x18($sp) -/* AD12C4 8005A124 0C01E221 */ jal func_80078884 -/* AD12C8 8005A128 24044806 */ li $a0, 18438 -/* AD12CC 8005A12C 8FA70018 */ lw $a3, 0x18($sp) -.L8005A130: -/* AD12D0 8005A130 84ED0144 */ lh $t5, 0x144($a3) -/* AD12D4 8005A134 3C048014 */ lui $a0, %hi(D_80139BF0) # $a0, 0x8014 -/* AD12D8 8005A138 24849BF0 */ addiu $a0, %lo(D_80139BF0) # addiu $a0, $a0, -0x6410 -/* AD12DC 8005A13C 11A0001A */ beqz $t5, .L8005A1A8 -/* AD12E0 8005A140 3C188012 */ lui $t8, %hi(sCameraSettingNames) # $t8, 0x8012 -/* AD12E4 8005A144 84EE0142 */ lh $t6, 0x142($a3) -/* AD12E8 8005A148 87B9001E */ lh $t9, 0x1e($sp) -/* AD12EC 8005A14C 3C088012 */ lui $t0, %hi(sCameraModeNames) # $t0, 0x8012 -/* AD12F0 8005A150 000E7880 */ sll $t7, $t6, 2 -/* AD12F4 8005A154 00195080 */ sll $t2, $t9, 2 -/* AD12F8 8005A158 01EE7823 */ subu $t7, $t7, $t6 -/* AD12FC 8005A15C 01595023 */ subu $t2, $t2, $t9 -/* AD1300 8005A160 000A5080 */ sll $t2, $t2, 2 -/* AD1304 8005A164 000F7880 */ sll $t7, $t7, 2 -/* AD1308 8005A168 2508A2A4 */ addiu $t0, %lo(sCameraModeNames) # addiu $t0, $t0, -0x5d5c -/* AD130C 8005A16C 27189F8C */ addiu $t8, %lo(sCameraSettingNames) # addiu $t8, $t8, -0x6074 -/* AD1310 8005A170 01F82821 */ addu $a1, $t7, $t8 -/* AD1314 8005A174 01483021 */ addu $a2, $t2, $t0 -/* AD1318 8005A178 0C00084C */ jal osSyncPrintf -/* AD131C 8005A17C AFA70018 */ sw $a3, 0x18($sp) -/* AD1320 8005A180 8FA40018 */ lw $a0, 0x18($sp) -/* AD1324 8005A184 A4800144 */ sh $zero, 0x144($a0) -/* AD1328 8005A188 0C01144A */ jal Camera_CopyModeValuesToPREG -/* AD132C 8005A18C 84850144 */ lh $a1, 0x144($a0) -/* AD1330 8005A190 0C01680B */ jal func_8005A02C -/* AD1334 8005A194 8FA40018 */ lw $a0, 0x18($sp) -/* AD1338 8005A198 87A2001E */ lh $v0, 0x1e($sp) -/* AD133C 8005A19C 3C01C000 */ lui $at, 0xc000 -/* AD1340 8005A1A0 100000A4 */ b .L8005A434 -/* AD1344 8005A1A4 00411025 */ or $v0, $v0, $at -.L8005A1A8: -/* AD1348 8005A1A8 84EB014A */ lh $t3, 0x14a($a3) -/* AD134C 8005A1AC 00001025 */ move $v0, $zero -/* AD1350 8005A1B0 356C0020 */ ori $t4, $t3, 0x20 -/* AD1354 8005A1B4 A4EC014A */ sh $t4, 0x14a($a3) -/* AD1358 8005A1B8 84E9014A */ lh $t1, 0x14a($a3) -/* AD135C 8005A1BC 352D0002 */ ori $t5, $t1, 2 -/* AD1360 8005A1C0 1000009C */ b .L8005A434 -/* AD1364 8005A1C4 A4ED014A */ sh $t5, 0x14a($a3) -.L8005A1C8: -/* AD1368 8005A1C8 84EF0144 */ lh $t7, 0x144($a3) -/* AD136C 8005A1CC 93B80023 */ lbu $t8, 0x23($sp) -/* AD1370 8005A1D0 55CF000C */ bnel $t6, $t7, .L8005A204 -/* AD1374 8005A1D4 84EC014A */ lh $t4, 0x14a($a3) -/* AD1378 8005A1D8 5700000A */ bnezl $t8, .L8005A204 -/* AD137C 8005A1DC 84EC014A */ lh $t4, 0x14a($a3) -/* AD1380 8005A1E0 84F9014A */ lh $t9, 0x14a($a3) -/* AD1384 8005A1E4 2402FFFF */ li $v0, -1 -/* AD1388 8005A1E8 372A0020 */ ori $t2, $t9, 0x20 -/* AD138C 8005A1EC A4EA014A */ sh $t2, 0x14a($a3) -/* AD1390 8005A1F0 84E8014A */ lh $t0, 0x14a($a3) -/* AD1394 8005A1F4 350B0002 */ ori $t3, $t0, 2 -/* AD1398 8005A1F8 1000008E */ b .L8005A434 -/* AD139C 8005A1FC A4EB014A */ sh $t3, 0x14a($a3) -/* AD13A0 8005A200 84EC014A */ lh $t4, 0x14a($a3) -.L8005A204: -/* AD13A4 8005A204 00E02025 */ move $a0, $a3 -/* AD13A8 8005A208 35890020 */ ori $t1, $t4, 0x20 -/* AD13AC 8005A20C A4E9014A */ sh $t1, 0x14a($a3) -/* AD13B0 8005A210 84ED014A */ lh $t5, 0x14a($a3) -/* AD13B4 8005A214 35AE0002 */ ori $t6, $t5, 2 -/* AD13B8 8005A218 A4EE014A */ sh $t6, 0x14a($a3) -/* AD13BC 8005A21C AFA70018 */ sw $a3, 0x18($sp) -/* AD13C0 8005A220 0C01144A */ jal Camera_CopyModeValuesToPREG -/* AD13C4 8005A224 87A5001E */ lh $a1, 0x1e($sp) -/* AD13C8 8005A228 87AF001E */ lh $t7, 0x1e($sp) -/* AD13CC 8005A22C 8FA70018 */ lw $a3, 0x18($sp) -/* AD13D0 8005A230 00001025 */ move $v0, $zero -/* AD13D4 8005A234 25F8FFFF */ addiu $t8, $t7, -1 -/* AD13D8 8005A238 2F010013 */ sltiu $at, $t8, 0x13 -/* AD13DC 8005A23C 10200014 */ beqz $at, .L8005A290 -/* AD13E0 8005A240 0018C080 */ sll $t8, $t8, 2 -/* AD13E4 8005A244 3C018014 */ lui $at, %hi(jtbl_8013A450) -/* AD13E8 8005A248 00380821 */ addu $at, $at, $t8 -/* AD13EC 8005A24C 8C38A450 */ lw $t8, %lo(jtbl_8013A450)($at) -/* AD13F0 8005A250 03000008 */ jr $t8 -/* AD13F4 8005A254 00000000 */ nop - -glabel L8005A258 -/* AD13F8 8005A258 1000000D */ b .L8005A290 -/* AD13FC 8005A25C 24020020 */ li $v0, 32 - -glabel L8005A260 -/* AD1400 8005A260 1000000B */ b .L8005A290 -/* AD1404 8005A264 24020004 */ li $v0, 4 - -glabel L8005A268 -/* AD1408 8005A268 8CE300A8 */ lw $v1, 0xa8($a3) -/* AD140C 8005A26C 50600009 */ beql $v1, $zero, .L8005A294 -/* AD1410 8005A270 94EA0144 */ lhu $t2, 0x144($a3) -/* AD1414 8005A274 84790000 */ lh $t9, ($v1) -/* AD1418 8005A278 24010032 */ li $at, 50 -/* AD141C 8005A27C 53210005 */ beql $t9, $at, .L8005A294 -/* AD1420 8005A280 94EA0144 */ lhu $t2, 0x144($a3) -/* AD1424 8005A284 10000002 */ b .L8005A290 -/* AD1428 8005A288 24020008 */ li $v0, 8 - -glabel L8005A28C -/* AD142C 8005A28C 24020002 */ li $v0, 2 - -.L8005A290: -glabel L8005A290 -/* AD1430 8005A290 94EA0144 */ lhu $t2, 0x144($a3) -.L8005A294: -/* AD1434 8005A294 2D410014 */ sltiu $at, $t2, 0x14 -/* AD1438 8005A298 10200025 */ beqz $at, .L8005A330 -/* AD143C 8005A29C 000A5080 */ sll $t2, $t2, 2 -/* AD1440 8005A2A0 3C018014 */ lui $at, %hi(jtbl_8013A49C) -/* AD1444 8005A2A4 002A0821 */ addu $at, $at, $t2 -/* AD1448 8005A2A8 8C2AA49C */ lw $t2, %lo(jtbl_8013A49C)($at) -/* AD144C 8005A2AC 01400008 */ jr $t2 -/* AD1450 8005A2B0 00000000 */ nop - -glabel L8005A2B4 -/* AD1454 8005A2B4 30480020 */ andi $t0, $v0, 0x20 -/* AD1458 8005A2B8 1100001D */ beqz $t0, .L8005A330 -/* AD145C 8005A2BC 240B000A */ li $t3, 10 -/* AD1460 8005A2C0 1000001B */ b .L8005A330 -/* AD1464 8005A2C4 A4EB015E */ sh $t3, 0x15e($a3) - -glabel L8005A2C8 -/* AD1468 8005A2C8 304C0010 */ andi $t4, $v0, 0x10 -/* AD146C 8005A2CC 11800002 */ beqz $t4, .L8005A2D8 -/* AD1470 8005A2D0 2409000A */ li $t1, 10 -/* AD1474 8005A2D4 A4E9015E */ sh $t1, 0x15e($a3) -.L8005A2D8: -/* AD1478 8005A2D8 10000015 */ b .L8005A330 -/* AD147C 8005A2DC 34420001 */ ori $v0, $v0, 1 - -glabel L8005A2E0 -/* AD1480 8005A2E0 10000013 */ b .L8005A330 -/* AD1484 8005A2E4 34420001 */ ori $v0, $v0, 1 - -glabel L8005A2E8 -/* AD1488 8005A2E8 304D0008 */ andi $t5, $v0, 8 -/* AD148C 8005A2EC 11A00002 */ beqz $t5, .L8005A2F8 -/* AD1490 8005A2F0 240E000A */ li $t6, 10 -/* AD1494 8005A2F4 A4EE015E */ sh $t6, 0x15e($a3) -.L8005A2F8: -/* AD1498 8005A2F8 1000000D */ b .L8005A330 -/* AD149C 8005A2FC 34420001 */ ori $v0, $v0, 1 - -glabel L8005A300 -/* AD14A0 8005A300 304F0004 */ andi $t7, $v0, 4 -/* AD14A4 8005A304 11E00002 */ beqz $t7, .L8005A310 -/* AD14A8 8005A308 2418000A */ li $t8, 10 -/* AD14AC 8005A30C A4F8015E */ sh $t8, 0x15e($a3) -.L8005A310: -/* AD14B0 8005A310 10000007 */ b .L8005A330 -/* AD14B4 8005A314 34420001 */ ori $v0, $v0, 1 - -glabel L8005A318 -/* AD14B8 8005A318 10000005 */ b .L8005A330 -/* AD14BC 8005A31C 34420001 */ ori $v0, $v0, 1 - -glabel L8005A320 -/* AD14C0 8005A320 30590010 */ andi $t9, $v0, 0x10 -/* AD14C4 8005A324 13200002 */ beqz $t9, .L8005A330 -/* AD14C8 8005A328 240A000A */ li $t2, 10 -/* AD14CC 8005A32C A4EA015E */ sh $t2, 0x15e($a3) - -.L8005A330: -glabel L8005A330 -/* AD14D0 8005A330 2401FFEF */ li $at, -17 -/* AD14D4 8005A334 00411024 */ and $v0, $v0, $at -/* AD14D8 8005A338 3C018012 */ lui $at, %hi(D_8011DB14) # $at, 0x8012 -/* AD14DC 8005A33C AC22DB14 */ sw $v0, %lo(D_8011DB14)($at) -/* AD14E0 8005A340 84E80140 */ lh $t0, 0x140($a3) -/* AD14E4 8005A344 24010007 */ li $at, 7 -/* AD14E8 8005A348 24030001 */ li $v1, 1 -/* AD14EC 8005A34C 55010031 */ bnel $t0, $at, .L8005A414 -/* AD14F0 8005A350 00E02025 */ move $a0, $a3 -/* AD14F4 8005A354 1043000D */ beq $v0, $v1, .L8005A38C -/* AD14F8 8005A358 3C018012 */ lui $at, %hi(D_8011DB14) -/* AD14FC 8005A35C 24010002 */ li $at, 2 -/* AD1500 8005A360 10410010 */ beq $v0, $at, .L8005A3A4 -/* AD1504 8005A364 24010004 */ li $at, 4 -/* AD1508 8005A368 10410020 */ beq $v0, $at, .L8005A3EC -/* AD150C 8005A36C 24044837 */ li $a0, 18487 -/* AD1510 8005A370 3C018012 */ lui $at, %hi(D_8011DB14) # $at, 0x8012 -/* AD1514 8005A374 AC22DB14 */ sw $v0, %lo(D_8011DB14)($at) -/* AD1518 8005A378 24010008 */ li $at, 8 -/* AD151C 8005A37C 10410021 */ beq $v0, $at, .L8005A404 -/* AD1520 8005A380 2404480C */ li $a0, 18444 -/* AD1524 8005A384 10000023 */ b .L8005A414 -/* AD1528 8005A388 00E02025 */ move $a0, $a3 -.L8005A38C: -/* AD152C 8005A38C AC22DB14 */ sw $v0, %lo(D_8011DB14)($at) -/* AD1530 8005A390 00002025 */ move $a0, $zero -/* AD1534 8005A394 0C01E221 */ jal func_80078884 -/* AD1538 8005A398 AFA70018 */ sw $a3, 0x18($sp) -/* AD153C 8005A39C 1000001C */ b .L8005A410 -/* AD1540 8005A3A0 8FA70018 */ lw $a3, 0x18($sp) -.L8005A3A4: -/* AD1544 8005A3A4 3C018012 */ lui $at, %hi(D_8011DB14) # $at, 0x8012 -/* AD1548 8005A3A8 AC22DB14 */ sw $v0, %lo(D_8011DB14)($at) -/* AD154C 8005A3AC 8CEB008C */ lw $t3, 0x8c($a3) -/* AD1550 8005A3B0 3C0C0001 */ lui $t4, 1 -/* AD1554 8005A3B4 2404480C */ li $a0, 18444 -/* AD1558 8005A3B8 018B6021 */ addu $t4, $t4, $t3 -/* AD155C 8005A3BC 918C1CBF */ lbu $t4, 0x1cbf($t4) -/* AD1560 8005A3C0 146C0006 */ bne $v1, $t4, .L8005A3DC -/* AD1564 8005A3C4 00000000 */ nop -/* AD1568 8005A3C8 24044837 */ li $a0, 18487 -/* AD156C 8005A3CC 0C01E221 */ jal func_80078884 -/* AD1570 8005A3D0 AFA70018 */ sw $a3, 0x18($sp) -/* AD1574 8005A3D4 1000000E */ b .L8005A410 -/* AD1578 8005A3D8 8FA70018 */ lw $a3, 0x18($sp) -.L8005A3DC: -/* AD157C 8005A3DC 0C01E221 */ jal func_80078884 -/* AD1580 8005A3E0 AFA70018 */ sw $a3, 0x18($sp) -/* AD1584 8005A3E4 1000000A */ b .L8005A410 -/* AD1588 8005A3E8 8FA70018 */ lw $a3, 0x18($sp) -.L8005A3EC: -/* AD158C 8005A3EC 3C018012 */ lui $at, %hi(D_8011DB14) # $at, 0x8012 -/* AD1590 8005A3F0 AC22DB14 */ sw $v0, %lo(D_8011DB14)($at) -/* AD1594 8005A3F4 0C01E221 */ jal func_80078884 -/* AD1598 8005A3F8 AFA70018 */ sw $a3, 0x18($sp) -/* AD159C 8005A3FC 10000004 */ b .L8005A410 -/* AD15A0 8005A400 8FA70018 */ lw $a3, 0x18($sp) -.L8005A404: -/* AD15A4 8005A404 0C01E221 */ jal func_80078884 -/* AD15A8 8005A408 AFA70018 */ sw $a3, 0x18($sp) -/* AD15AC 8005A40C 8FA70018 */ lw $a3, 0x18($sp) -.L8005A410: -/* AD15B0 8005A410 00E02025 */ move $a0, $a3 -.L8005A414: -/* AD15B4 8005A414 0C01680B */ jal func_8005A02C -/* AD15B8 8005A418 AFA70018 */ sw $a3, 0x18($sp) -/* AD15BC 8005A41C 8FA70018 */ lw $a3, 0x18($sp) -/* AD15C0 8005A420 87A9001E */ lh $t1, 0x1e($sp) -/* AD15C4 8005A424 3C018000 */ lui $at, 0x8000 -/* AD15C8 8005A428 A4E90144 */ sh $t1, 0x144($a3) -/* AD15CC 8005A42C 87A2001E */ lh $v0, 0x1e($sp) -/* AD15D0 8005A430 00411025 */ or $v0, $v0, $at -.L8005A434: -/* AD15D4 8005A434 8FBF0014 */ lw $ra, 0x14($sp) -/* AD15D8 8005A438 27BD0018 */ addiu $sp, $sp, 0x18 -/* AD15DC 8005A43C 03E00008 */ jr $ra -/* AD15E0 8005A440 00000000 */ nop - diff --git a/asm/non_matchings/code/z_camera/Camera_ChangeSetting.s b/asm/non_matchings/code/z_camera/Camera_ChangeSetting.s deleted file mode 100644 index 7ef0d06065..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_ChangeSetting.s +++ /dev/null @@ -1,166 +0,0 @@ -.rdata -glabel D_80139C58 - .asciz "\x1b[41;37mcamera: error: illegal camera set (%d) !!!!\n\x1b[m" - .balign 4 - -glabel D_80139C90 - .asciz "\x1b[1m%06u:\x1b[m camera: change camera[%d] set %s\n" - .balign 4 - -.text -glabel Camera_ChangeSetting -/* AD16E8 8005A548 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* AD16EC 8005A54C AFBF001C */ sw $ra, 0x1c($sp) -/* AD16F0 8005A550 AFB00018 */ sw $s0, 0x18($sp) -/* AD16F4 8005A554 AFA50024 */ sw $a1, 0x24($sp) -/* AD16F8 8005A558 AFA60028 */ sw $a2, 0x28($sp) -/* AD16FC 8005A55C 8483014A */ lh $v1, 0x14a($a0) -/* AD1700 8005A560 00063400 */ sll $a2, $a2, 0x10 -/* AD1704 8005A564 00053C00 */ sll $a3, $a1, 0x10 -/* AD1708 8005A568 306E0001 */ andi $t6, $v1, 1 -/* AD170C 8005A56C 00073C03 */ sra $a3, $a3, 0x10 -/* AD1710 8005A570 00063403 */ sra $a2, $a2, 0x10 -/* AD1714 8005A574 11C00015 */ beqz $t6, .L8005A5CC -/* AD1718 8005A578 00808025 */ move $s0, $a0 -/* AD171C 8005A57C 848F0142 */ lh $t7, 0x142($a0) -/* AD1720 8005A580 3C058012 */ lui $a1, %hi(sCameraSettings) # $a1, 0x8012 -/* AD1724 8005A584 24A5D064 */ addiu $a1, %lo(sCameraSettings) # addiu $a1, $a1, -0x2f9c -/* AD1728 8005A588 000758C0 */ sll $t3, $a3, 3 -/* AD172C 8005A58C 000FC0C0 */ sll $t8, $t7, 3 -/* AD1730 8005A590 00B8C821 */ addu $t9, $a1, $t8 -/* AD1734 8005A594 00AB6021 */ addu $t4, $a1, $t3 -/* AD1738 8005A598 8D8D0000 */ lw $t5, ($t4) -/* AD173C 8005A59C 8F280000 */ lw $t0, ($t9) -/* AD1740 8005A5A0 3C020F00 */ lui $v0, 0xf00 -/* AD1744 8005A5A4 01A27024 */ and $t6, $t5, $v0 -/* AD1748 8005A5A8 01024824 */ and $t1, $t0, $v0 -/* AD174C 8005A5AC 00095602 */ srl $t2, $t1, 0x18 -/* AD1750 8005A5B0 000E7E02 */ srl $t7, $t6, 0x18 -/* AD1754 8005A5B4 014F082B */ sltu $at, $t2, $t7 -/* AD1758 8005A5B8 14200004 */ bnez $at, .L8005A5CC -/* AD175C 8005A5BC 34780010 */ ori $t8, $v1, 0x10 -/* AD1760 8005A5C0 A498014A */ sh $t8, 0x14a($a0) -/* AD1764 8005A5C4 10000068 */ b .L8005A768 -/* AD1768 8005A5C8 2402FFFE */ li $v0, -2 -.L8005A5CC: -/* AD176C 8005A5CC 3C058012 */ lui $a1, %hi(sCameraSettings) # $a1, 0x8012 -/* AD1770 8005A5D0 24010035 */ li $at, 53 -/* AD1774 8005A5D4 10E10003 */ beq $a3, $at, .L8005A5E4 -/* AD1778 8005A5D8 24A5D064 */ addiu $a1, %lo(sCameraSettings) # addiu $a1, $a1, -0x2f9c -/* AD177C 8005A5DC 24010036 */ li $at, 54 -/* AD1780 8005A5E0 14E1000D */ bne $a3, $at, .L8005A618 -.L8005A5E4: -/* AD1784 8005A5E4 3C198016 */ lui $t9, %hi(gSaveContext+4) # $t9, 0x8016 -/* AD1788 8005A5E8 8F39E664 */ lw $t9, %lo(gSaveContext+4)($t9) -/* AD178C 8005A5EC 1720000A */ bnez $t9, .L8005A618 -/* AD1790 8005A5F0 00000000 */ nop -/* AD1794 8005A5F4 8E08008C */ lw $t0, 0x8c($s0) -/* AD1798 8005A5F8 24010056 */ li $at, 86 -/* AD179C 8005A5FC 346B0010 */ ori $t3, $v1, 0x10 -/* AD17A0 8005A600 850900A4 */ lh $t1, 0xa4($t0) -/* AD17A4 8005A604 2402FFFB */ li $v0, -5 -/* AD17A8 8005A608 15210003 */ bne $t1, $at, .L8005A618 -/* AD17AC 8005A60C 00000000 */ nop -/* AD17B0 8005A610 10000055 */ b .L8005A768 -/* AD17B4 8005A614 A60B014A */ sh $t3, 0x14a($s0) -.L8005A618: -/* AD17B8 8005A618 10E00002 */ beqz $a3, .L8005A624 -/* AD17BC 8005A61C 28E10042 */ slti $at, $a3, 0x42 -/* AD17C0 8005A620 14200006 */ bnez $at, .L8005A63C -.L8005A624: -/* AD17C4 8005A624 3C048014 */ lui $a0, %hi(D_80139C58) # $a0, 0x8014 -/* AD17C8 8005A628 24849C58 */ addiu $a0, %lo(D_80139C58) # addiu $a0, $a0, -0x63a8 -/* AD17CC 8005A62C 0C00084C */ jal osSyncPrintf -/* AD17D0 8005A630 00E02825 */ move $a1, $a3 -/* AD17D4 8005A634 1000004C */ b .L8005A768 -/* AD17D8 8005A638 2402FF9D */ li $v0, -99 -.L8005A63C: -/* AD17DC 8005A63C 860C0142 */ lh $t4, 0x142($s0) -/* AD17E0 8005A640 30CD0001 */ andi $t5, $a2, 1 -/* AD17E4 8005A644 34790010 */ ori $t9, $v1, 0x10 -/* AD17E8 8005A648 14EC000B */ bne $a3, $t4, .L8005A678 -/* AD17EC 8005A64C 30C80002 */ andi $t0, $a2, 2 -/* AD17F0 8005A650 15A00009 */ bnez $t5, .L8005A678 -/* AD17F4 8005A654 346E0010 */ ori $t6, $v1, 0x10 -/* AD17F8 8005A658 30CA0002 */ andi $t2, $a2, 2 -/* AD17FC 8005A65C 15400004 */ bnez $t2, .L8005A670 -/* AD1800 8005A660 A60E014A */ sh $t6, 0x14a($s0) -/* AD1804 8005A664 860F014A */ lh $t7, 0x14a($s0) -/* AD1808 8005A668 35F80001 */ ori $t8, $t7, 1 -/* AD180C 8005A66C A618014A */ sh $t8, 0x14a($s0) -.L8005A670: -/* AD1810 8005A670 1000003D */ b .L8005A768 -/* AD1814 8005A674 2402FFFF */ li $v0, -1 -.L8005A678: -/* AD1818 8005A678 15000004 */ bnez $t0, .L8005A68C -/* AD181C 8005A67C A619014A */ sh $t9, 0x14a($s0) -/* AD1820 8005A680 8609014A */ lh $t1, 0x14a($s0) -/* AD1824 8005A684 352B0001 */ ori $t3, $t1, 1 -/* AD1828 8005A688 A60B014A */ sh $t3, 0x14a($s0) -.L8005A68C: -/* AD182C 8005A68C 860C014C */ lh $t4, 0x14c($s0) -/* AD1830 8005A690 86020142 */ lh $v0, 0x142($s0) -/* AD1834 8005A694 3C044000 */ lui $a0, 0x4000 -/* AD1838 8005A698 358D000C */ ori $t5, $t4, 0xc -/* AD183C 8005A69C A60D014C */ sh $t5, 0x14c($s0) -/* AD1840 8005A6A0 860E014C */ lh $t6, 0x14c($s0) -/* AD1844 8005A6A4 000278C0 */ sll $t7, $v0, 3 -/* AD1848 8005A6A8 00AF1821 */ addu $v1, $a1, $t7 -/* AD184C 8005A6AC 31CAEFF7 */ andi $t2, $t6, 0xeff7 -/* AD1850 8005A6B0 A60A014C */ sh $t2, 0x14c($s0) -/* AD1854 8005A6B4 8C780000 */ lw $t8, ($v1) -/* AD1858 8005A6B8 30C80008 */ andi $t0, $a2, 8 -/* AD185C 8005A6BC 240BFFFF */ li $t3, -1 -/* AD1860 8005A6C0 0018C840 */ sll $t9, $t8, 1 -/* AD1864 8005A6C4 07200002 */ bltz $t9, .L8005A6D0 -/* AD1868 8005A6C8 30CC0004 */ andi $t4, $a2, 4 -/* AD186C 8005A6CC A6020154 */ sh $v0, 0x154($s0) -.L8005A6D0: -/* AD1870 8005A6D0 11000005 */ beqz $t0, .L8005A6E8 -/* AD1874 8005A6D4 24060001 */ li $a2, 1 -/* AD1878 8005A6D8 86090166 */ lh $t1, 0x166($s0) -/* AD187C 8005A6DC A60B0166 */ sh $t3, 0x166($s0) -/* AD1880 8005A6E0 1000000A */ b .L8005A70C -/* AD1884 8005A6E4 A6090148 */ sh $t1, 0x148($s0) -.L8005A6E8: -/* AD1888 8005A6E8 15800008 */ bnez $t4, .L8005A70C -/* AD188C 8005A6EC 240FFFFF */ li $t7, -1 -/* AD1890 8005A6F0 8C6D0000 */ lw $t5, ($v1) -/* AD1894 8005A6F4 01A47024 */ and $t6, $t5, $a0 -/* AD1898 8005A6F8 55C00004 */ bnezl $t6, .L8005A70C -/* AD189C 8005A6FC A60F0148 */ sh $t7, 0x148($s0) -/* AD18A0 8005A700 860A0148 */ lh $t2, 0x148($s0) -/* AD18A4 8005A704 A60A0166 */ sh $t2, 0x166($s0) -/* AD18A8 8005A708 A60F0148 */ sh $t7, 0x148($s0) -.L8005A70C: -/* AD18AC 8005A70C A6070142 */ sh $a3, 0x142($s0) -/* AD18B0 8005A710 86050144 */ lh $a1, 0x144($s0) -/* AD18B4 8005A714 A7A70026 */ sh $a3, 0x26($sp) -/* AD18B8 8005A718 0C016813 */ jal Camera_ChangeMode -/* AD18BC 8005A71C 02002025 */ move $a0, $s0 -/* AD18C0 8005A720 04400003 */ bltz $v0, .L8005A730 -/* AD18C4 8005A724 02002025 */ move $a0, $s0 -/* AD18C8 8005A728 0C01144A */ jal Camera_CopyModeValuesToPREG -/* AD18CC 8005A72C 86050144 */ lh $a1, 0x144($s0) -.L8005A730: -/* AD18D0 8005A730 86190142 */ lh $t9, 0x142($s0) -/* AD18D4 8005A734 8E18008C */ lw $t8, 0x8c($s0) -/* AD18D8 8005A738 3C098012 */ lui $t1, %hi(sCameraSettingNames) # $t1, 0x8012 -/* AD18DC 8005A73C 00194080 */ sll $t0, $t9, 2 -/* AD18E0 8005A740 01194023 */ subu $t0, $t0, $t9 -/* AD18E4 8005A744 00084080 */ sll $t0, $t0, 2 -/* AD18E8 8005A748 25299F8C */ addiu $t1, %lo(sCameraSettingNames) # addiu $t1, $t1, -0x6074 -/* AD18EC 8005A74C 3C048014 */ lui $a0, %hi(D_80139C90) # $a0, 0x8014 -/* AD18F0 8005A750 24849C90 */ addiu $a0, %lo(D_80139C90) # addiu $a0, $a0, -0x6370 -/* AD18F4 8005A754 01093821 */ addu $a3, $t0, $t1 -/* AD18F8 8005A758 86060164 */ lh $a2, 0x164($s0) -/* AD18FC 8005A75C 0C00084C */ jal osSyncPrintf -/* AD1900 8005A760 8F05009C */ lw $a1, 0x9c($t8) -/* AD1904 8005A764 87A20026 */ lh $v0, 0x26($sp) -.L8005A768: -/* AD1908 8005A768 8FBF001C */ lw $ra, 0x1c($sp) -/* AD190C 8005A76C 8FB00018 */ lw $s0, 0x18($sp) -/* AD1910 8005A770 27BD0020 */ addiu $sp, $sp, 0x20 -/* AD1914 8005A774 03E00008 */ jr $ra -/* AD1918 8005A778 00000000 */ nop - diff --git a/asm/non_matchings/code/z_camera/Camera_ChangeStatus.s b/asm/non_matchings/code/z_camera/Camera_ChangeStatus.s deleted file mode 100644 index 8236fe76f9..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_ChangeStatus.s +++ /dev/null @@ -1,125 +0,0 @@ -.rdata -glabel D_801398E4 - .asciz "camera: change camera status: cond %c%c\n" - .balign 4 - -glabel D_80139910 - .asciz "camera: res: stat (%d/%d/%d)\n" - .balign 4 - -glabel D_80139930 - .asciz "camera: change camera status: PREG(%02d) = %d\n" - .balign 4 - -.text -glabel Camera_ChangeStatus -/* ACF4F4 80058354 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* ACF4F8 80058358 AFB40024 */ sw $s4, 0x24($sp) -/* ACF4FC 8005835C 3C148016 */ lui $s4, %hi(gGameInfo) # $s4, 0x8016 -/* ACF500 80058360 2694FA90 */ addiu $s4, %lo(gGameInfo) # addiu $s4, $s4, -0x570 -/* ACF504 80058364 8E8E0000 */ lw $t6, ($s4) -/* ACF508 80058368 AFBF002C */ sw $ra, 0x2c($sp) -/* ACF50C 8005836C AFB50028 */ sw $s5, 0x28($sp) -/* ACF510 80058370 AFB30020 */ sw $s3, 0x20($sp) -/* ACF514 80058374 AFB2001C */ sw $s2, 0x1c($sp) -/* ACF518 80058378 AFB10018 */ sw $s1, 0x18($sp) -/* ACF51C 8005837C AFB00014 */ sw $s0, 0x14($sp) -/* ACF520 80058380 AFA50034 */ sw $a1, 0x34($sp) -/* ACF524 80058384 85C202F8 */ lh $v0, 0x2f8($t6) -/* ACF528 80058388 00809825 */ move $s3, $a0 -/* ACF52C 8005838C 3C048014 */ lui $a0, %hi(D_801398E4) # $a0, 0x8014 -/* ACF530 80058390 10400010 */ beqz $v0, .L800583D4 -/* ACF534 80058394 87AF0036 */ lh $t7, 0x36($sp) -/* ACF538 80058398 24100007 */ li $s0, 7 -/* ACF53C 8005839C 15F00003 */ bne $t7, $s0, .L800583AC -/* ACF540 800583A0 24050078 */ li $a1, 120 -/* ACF544 800583A4 10000001 */ b .L800583AC -/* ACF548 800583A8 2405006F */ li $a1, 111 -.L800583AC: -/* ACF54C 800583AC 86780140 */ lh $t8, 0x140($s3) -/* ACF550 800583B0 24060078 */ li $a2, 120 -/* ACF554 800583B4 12180003 */ beq $s0, $t8, .L800583C4 -/* ACF558 800583B8 00000000 */ nop -/* ACF55C 800583BC 10000001 */ b .L800583C4 -/* ACF560 800583C0 2406006F */ li $a2, 111 -.L800583C4: -/* ACF564 800583C4 0C00084C */ jal osSyncPrintf -/* ACF568 800583C8 248498E4 */ addiu $a0, %lo(D_801398E4) # addiu $a0, $a0, -0x671c -/* ACF56C 800583CC 8E990000 */ lw $t9, ($s4) -/* ACF570 800583D0 872202F8 */ lh $v0, 0x2f8($t9) -.L800583D4: -/* ACF574 800583D4 10400007 */ beqz $v0, .L800583F4 -/* ACF578 800583D8 24100007 */ li $s0, 7 -/* ACF57C 800583DC 3C048014 */ lui $a0, %hi(D_80139910) # $a0, 0x8014 -/* ACF580 800583E0 24849910 */ addiu $a0, %lo(D_80139910) # addiu $a0, $a0, -0x66f0 -/* ACF584 800583E4 86650164 */ lh $a1, 0x164($s3) -/* ACF588 800583E8 86660142 */ lh $a2, 0x142($s3) -/* ACF58C 800583EC 0C00084C */ jal osSyncPrintf -/* ACF590 800583F0 86670144 */ lh $a3, 0x144($s3) -.L800583F4: -/* ACF594 800583F4 87A80036 */ lh $t0, 0x36($sp) -/* ACF598 800583F8 55100030 */ bnel $t0, $s0, .L800584BC -/* ACF59C 800583FC 87AC0036 */ lh $t4, 0x36($sp) -/* ACF5A0 80058400 86690140 */ lh $t1, 0x140($s3) -/* ACF5A4 80058404 3C158012 */ lui $s5, %hi(sCameraSettings) # $s5, 0x8012 -/* ACF5A8 80058408 5209002C */ beql $s0, $t1, .L800584BC -/* ACF5AC 8005840C 87AC0036 */ lh $t4, 0x36($sp) -/* ACF5B0 80058410 866A0142 */ lh $t2, 0x142($s3) -/* ACF5B4 80058414 26B5D064 */ addiu $s5, %lo(sCameraSettings) # addiu $s5, $s5, -0x2f9c -/* ACF5B8 80058418 866E0144 */ lh $t6, 0x144($s3) -/* ACF5BC 8005841C 000A58C0 */ sll $t3, $t2, 3 -/* ACF5C0 80058420 02AB6021 */ addu $t4, $s5, $t3 -/* ACF5C4 80058424 8D8D0004 */ lw $t5, 4($t4) -/* ACF5C8 80058428 000E78C0 */ sll $t7, $t6, 3 -/* ACF5CC 8005842C 00008825 */ move $s1, $zero -/* ACF5D0 80058430 01AF1021 */ addu $v0, $t5, $t7 -/* ACF5D4 80058434 84580002 */ lh $t8, 2($v0) -/* ACF5D8 80058438 8C430004 */ lw $v1, 4($v0) -/* ACF5DC 8005843C 3C128014 */ lui $s2, %hi(D_80139930) # $s2, 0x8014 -/* ACF5E0 80058440 1B00001D */ blez $t8, .L800584B8 -/* ACF5E4 80058444 00608025 */ move $s0, $v1 -/* ACF5E8 80058448 26529930 */ addiu $s2, %lo(D_80139930) # addiu $s2, $s2, -0x66d0 -/* ACF5EC 8005844C 86090002 */ lh $t1, 2($s0) -.L80058450: -/* ACF5F0 80058450 8E880000 */ lw $t0, ($s4) -/* ACF5F4 80058454 86190000 */ lh $t9, ($s0) -/* ACF5F8 80058458 00095040 */ sll $t2, $t1, 1 -/* ACF5FC 8005845C 010A5821 */ addu $t3, $t0, $t2 -/* ACF600 80058460 A5790254 */ sh $t9, 0x254($t3) -/* ACF604 80058464 8E8C0000 */ lw $t4, ($s4) -/* ACF608 80058468 02402025 */ move $a0, $s2 -/* ACF60C 8005846C 858E02F8 */ lh $t6, 0x2f8($t4) -/* ACF610 80058470 51C00005 */ beql $t6, $zero, .L80058488 -/* ACF614 80058474 866D0142 */ lh $t5, 0x142($s3) -/* ACF618 80058478 86050002 */ lh $a1, 2($s0) -/* ACF61C 8005847C 0C00084C */ jal osSyncPrintf -/* ACF620 80058480 86060000 */ lh $a2, ($s0) -/* ACF624 80058484 866D0142 */ lh $t5, 0x142($s3) -.L80058488: -/* ACF628 80058488 86680144 */ lh $t0, 0x144($s3) -/* ACF62C 8005848C 26310001 */ addiu $s1, $s1, 1 -/* ACF630 80058490 000D78C0 */ sll $t7, $t5, 3 -/* ACF634 80058494 02AFC021 */ addu $t8, $s5, $t7 -/* ACF638 80058498 8F090004 */ lw $t1, 4($t8) -/* ACF63C 8005849C 000850C0 */ sll $t2, $t0, 3 -/* ACF640 800584A0 26100004 */ addiu $s0, $s0, 4 -/* ACF644 800584A4 012AC821 */ addu $t9, $t1, $t2 -/* ACF648 800584A8 872B0002 */ lh $t3, 2($t9) -/* ACF64C 800584AC 022B082A */ slt $at, $s1, $t3 -/* ACF650 800584B0 5420FFE7 */ bnezl $at, .L80058450 -/* ACF654 800584B4 86090002 */ lh $t1, 2($s0) -.L800584B8: -/* ACF658 800584B8 87AC0036 */ lh $t4, 0x36($sp) -.L800584BC: -/* ACF65C 800584BC A66C0140 */ sh $t4, 0x140($s3) -/* ACF660 800584C0 8FBF002C */ lw $ra, 0x2c($sp) -/* ACF664 800584C4 86620140 */ lh $v0, 0x140($s3) -/* ACF668 800584C8 8FB30020 */ lw $s3, 0x20($sp) -/* ACF66C 800584CC 8FB50028 */ lw $s5, 0x28($sp) -/* ACF670 800584D0 8FB40024 */ lw $s4, 0x24($sp) -/* ACF674 800584D4 8FB2001C */ lw $s2, 0x1c($sp) -/* ACF678 800584D8 8FB10018 */ lw $s1, 0x18($sp) -/* ACF67C 800584DC 8FB00014 */ lw $s0, 0x14($sp) -/* ACF680 800584E0 03E00008 */ jr $ra -/* ACF684 800584E4 27BD0030 */ addiu $sp, $sp, 0x30 - diff --git a/asm/non_matchings/code/z_camera/Camera_CopyModeValuesToPREG.s b/asm/non_matchings/code/z_camera/Camera_CopyModeValuesToPREG.s deleted file mode 100644 index c72dd68b71..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_CopyModeValuesToPREG.s +++ /dev/null @@ -1,91 +0,0 @@ -.rdata -glabel D_80139094 - .asciz "camera: res: stat (%d/%d/%d)\n" - .balign 4 - -glabel D_801390B4 - .asciz "camera: res: PREG(%02d) = %d\n" - .balign 4 - -.text -glabel Camera_CopyModeValuesToPREG -/* ABC2C8 80045128 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* ABC2CC 8004512C AFB20020 */ sw $s2, 0x20($sp) -/* ABC2D0 80045130 3C128016 */ lui $s2, %hi(gGameInfo) # $s2, 0x8016 -/* ABC2D4 80045134 2652FA90 */ addiu $s2, %lo(gGameInfo) # addiu $s2, $s2, -0x570 -/* ABC2D8 80045138 8E4E0000 */ lw $t6, ($s2) -/* ABC2DC 8004513C AFBF0034 */ sw $ra, 0x34($sp) -/* ABC2E0 80045140 AFB60030 */ sw $s6, 0x30($sp) -/* ABC2E4 80045144 AFB5002C */ sw $s5, 0x2c($sp) -/* ABC2E8 80045148 AFB40028 */ sw $s4, 0x28($sp) -/* ABC2EC 8004514C AFB30024 */ sw $s3, 0x24($sp) -/* ABC2F0 80045150 AFB1001C */ sw $s1, 0x1c($sp) -/* ABC2F4 80045154 AFB00018 */ sw $s0, 0x18($sp) -/* ABC2F8 80045158 AFA5003C */ sw $a1, 0x3c($sp) -/* ABC2FC 8004515C 85CF02F8 */ lh $t7, 0x2f8($t6) -/* ABC300 80045160 00058400 */ sll $s0, $a1, 0x10 -/* ABC304 80045164 00108403 */ sra $s0, $s0, 0x10 -/* ABC308 80045168 11E00007 */ beqz $t7, .L80045188 -/* ABC30C 8004516C 0080A825 */ move $s5, $a0 -/* ABC310 80045170 3C048014 */ lui $a0, %hi(D_80139094) # $a0, 0x8014 -/* ABC314 80045174 24849094 */ addiu $a0, %lo(D_80139094) # addiu $a0, $a0, -0x6f6c -/* ABC318 80045178 86A50164 */ lh $a1, 0x164($s5) -/* ABC31C 8004517C 86A60142 */ lh $a2, 0x142($s5) -/* ABC320 80045180 0C00084C */ jal osSyncPrintf -/* ABC324 80045184 02003825 */ move $a3, $s0 -.L80045188: -/* ABC328 80045188 86B80142 */ lh $t8, 0x142($s5) -/* ABC32C 8004518C 3C168012 */ lui $s6, %hi(sCameraSettings) # $s6, 0x8012 -/* ABC330 80045190 26D6D064 */ addiu $s6, %lo(sCameraSettings) # addiu $s6, $s6, -0x2f9c -/* ABC334 80045194 0018C8C0 */ sll $t9, $t8, 3 -/* ABC338 80045198 02D94021 */ addu $t0, $s6, $t9 -/* ABC33C 8004519C 8D090004 */ lw $t1, 4($t0) -/* ABC340 800451A0 0010A0C0 */ sll $s4, $s0, 3 -/* ABC344 800451A4 00008825 */ move $s1, $zero -/* ABC348 800451A8 01341021 */ addu $v0, $t1, $s4 -/* ABC34C 800451AC 844A0002 */ lh $t2, 2($v0) -/* ABC350 800451B0 8C430004 */ lw $v1, 4($v0) -/* ABC354 800451B4 3C138014 */ lui $s3, %hi(D_801390B4) # $s3, 0x8014 -/* ABC358 800451B8 1940001B */ blez $t2, .L80045228 -/* ABC35C 800451BC 00608025 */ move $s0, $v1 -/* ABC360 800451C0 267390B4 */ addiu $s3, %lo(D_801390B4) # addiu $s3, $s3, -0x6f4c -/* ABC364 800451C4 860D0002 */ lh $t5, 2($s0) -.L800451C8: -/* ABC368 800451C8 8E4C0000 */ lw $t4, ($s2) -/* ABC36C 800451CC 860B0000 */ lh $t3, ($s0) -/* ABC370 800451D0 000D7040 */ sll $t6, $t5, 1 -/* ABC374 800451D4 018E7821 */ addu $t7, $t4, $t6 -/* ABC378 800451D8 A5EB0254 */ sh $t3, 0x254($t7) -/* ABC37C 800451DC 8E580000 */ lw $t8, ($s2) -/* ABC380 800451E0 02602025 */ move $a0, $s3 -/* ABC384 800451E4 871902F8 */ lh $t9, 0x2f8($t8) -/* ABC388 800451E8 53200005 */ beql $t9, $zero, .L80045200 -/* ABC38C 800451EC 86A80142 */ lh $t0, 0x142($s5) -/* ABC390 800451F0 86050002 */ lh $a1, 2($s0) -/* ABC394 800451F4 0C00084C */ jal osSyncPrintf -/* ABC398 800451F8 86060000 */ lh $a2, ($s0) -/* ABC39C 800451FC 86A80142 */ lh $t0, 0x142($s5) -.L80045200: -/* ABC3A0 80045200 26310001 */ addiu $s1, $s1, 1 -/* ABC3A4 80045204 26100004 */ addiu $s0, $s0, 4 -/* ABC3A8 80045208 000848C0 */ sll $t1, $t0, 3 -/* ABC3AC 8004520C 02C95021 */ addu $t2, $s6, $t1 -/* ABC3B0 80045210 8D4D0004 */ lw $t5, 4($t2) -/* ABC3B4 80045214 01B46021 */ addu $t4, $t5, $s4 -/* ABC3B8 80045218 858E0002 */ lh $t6, 2($t4) -/* ABC3BC 8004521C 022E082A */ slt $at, $s1, $t6 -/* ABC3C0 80045220 5420FFE9 */ bnezl $at, .L800451C8 -/* ABC3C4 80045224 860D0002 */ lh $t5, 2($s0) -.L80045228: -/* ABC3C8 80045228 A6A0015E */ sh $zero, 0x15e($s5) -/* ABC3CC 8004522C 8FBF0034 */ lw $ra, 0x34($sp) -/* ABC3D0 80045230 8FB60030 */ lw $s6, 0x30($sp) -/* ABC3D4 80045234 8FB5002C */ lw $s5, 0x2c($sp) -/* ABC3D8 80045238 8FB40028 */ lw $s4, 0x28($sp) -/* ABC3DC 8004523C 8FB30024 */ lw $s3, 0x24($sp) -/* ABC3E0 80045240 8FB20020 */ lw $s2, 0x20($sp) -/* ABC3E4 80045244 8FB1001C */ lw $s1, 0x1c($sp) -/* ABC3E8 80045248 8FB00018 */ lw $s0, 0x18($sp) -/* ABC3EC 8004524C 03E00008 */ jr $ra -/* ABC3F0 80045250 27BD0038 */ addiu $sp, $sp, 0x38 - diff --git a/asm/non_matchings/code/z_camera/Camera_CopyPREGToModeValues.s b/asm/non_matchings/code/z_camera/Camera_CopyPREGToModeValues.s deleted file mode 100644 index 95052d2d26..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_CopyPREGToModeValues.s +++ /dev/null @@ -1,74 +0,0 @@ -.rdata -glabel D_801390D4 - .asciz "camera: res: %d = PREG(%02d)\n" - .balign 4 - -.text -glabel Camera_CopyPREGToModeValues -/* ABC3F4 80045254 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* ABC3F8 80045258 AFBF002C */ sw $ra, 0x2c($sp) -/* ABC3FC 8004525C AFB50028 */ sw $s5, 0x28($sp) -/* ABC400 80045260 AFB40024 */ sw $s4, 0x24($sp) -/* ABC404 80045264 AFB30020 */ sw $s3, 0x20($sp) -/* ABC408 80045268 AFB2001C */ sw $s2, 0x1c($sp) -/* ABC40C 8004526C AFB10018 */ sw $s1, 0x18($sp) -/* ABC410 80045270 AFB00014 */ sw $s0, 0x14($sp) -/* ABC414 80045274 848E0142 */ lh $t6, 0x142($a0) -/* ABC418 80045278 3C158012 */ lui $s5, %hi(sCameraSettings) # $s5, 0x8012 -/* ABC41C 8004527C 26B5D064 */ addiu $s5, %lo(sCameraSettings) # addiu $s5, $s5, -0x2f9c -/* ABC420 80045280 000E78C0 */ sll $t7, $t6, 3 -/* ABC424 80045284 84880144 */ lh $t0, 0x144($a0) -/* ABC428 80045288 02AFC021 */ addu $t8, $s5, $t7 -/* ABC42C 8004528C 8F190004 */ lw $t9, 4($t8) -/* ABC430 80045290 000848C0 */ sll $t1, $t0, 3 -/* ABC434 80045294 00809825 */ move $s3, $a0 -/* ABC438 80045298 03291021 */ addu $v0, $t9, $t1 -/* ABC43C 8004529C 844A0002 */ lh $t2, 2($v0) -/* ABC440 800452A0 8C430004 */ lw $v1, 4($v0) -/* ABC444 800452A4 00008825 */ move $s1, $zero -/* ABC448 800452A8 1940001F */ blez $t2, .L80045328 -/* ABC44C 800452AC 00608025 */ move $s0, $v1 -/* ABC450 800452B0 3C148014 */ lui $s4, %hi(D_801390D4) # $s4, 0x8014 -/* ABC454 800452B4 3C128016 */ lui $s2, %hi(gGameInfo) # $s2, 0x8016 -/* ABC458 800452B8 2652FA90 */ addiu $s2, %lo(gGameInfo) # addiu $s2, $s2, -0x570 -/* ABC45C 800452BC 269490D4 */ addiu $s4, %lo(D_801390D4) # addiu $s4, $s4, -0x6f2c -/* ABC460 800452C0 86060002 */ lh $a2, 2($s0) -.L800452C4: -/* ABC464 800452C4 8E4B0000 */ lw $t3, ($s2) -/* ABC468 800452C8 02802025 */ move $a0, $s4 -/* ABC46C 800452CC 00066040 */ sll $t4, $a2, 1 -/* ABC470 800452D0 016C6821 */ addu $t5, $t3, $t4 -/* ABC474 800452D4 85AE0254 */ lh $t6, 0x254($t5) -/* ABC478 800452D8 A60E0000 */ sh $t6, ($s0) -/* ABC47C 800452DC 8E4F0000 */ lw $t7, ($s2) -/* ABC480 800452E0 85F802F8 */ lh $t8, 0x2f8($t7) -/* ABC484 800452E4 53000004 */ beql $t8, $zero, .L800452F8 -/* ABC488 800452E8 86680142 */ lh $t0, 0x142($s3) -/* ABC48C 800452EC 0C00084C */ jal osSyncPrintf -/* ABC490 800452F0 86050000 */ lh $a1, ($s0) -/* ABC494 800452F4 86680142 */ lh $t0, 0x142($s3) -.L800452F8: -/* ABC498 800452F8 866B0144 */ lh $t3, 0x144($s3) -/* ABC49C 800452FC 26310001 */ addiu $s1, $s1, 1 -/* ABC4A0 80045300 0008C8C0 */ sll $t9, $t0, 3 -/* ABC4A4 80045304 02B94821 */ addu $t1, $s5, $t9 -/* ABC4A8 80045308 8D2A0004 */ lw $t2, 4($t1) -/* ABC4AC 8004530C 000B60C0 */ sll $t4, $t3, 3 -/* ABC4B0 80045310 26100004 */ addiu $s0, $s0, 4 -/* ABC4B4 80045314 014C6821 */ addu $t5, $t2, $t4 -/* ABC4B8 80045318 85AE0002 */ lh $t6, 2($t5) -/* ABC4BC 8004531C 022E082A */ slt $at, $s1, $t6 -/* ABC4C0 80045320 5420FFE8 */ bnezl $at, .L800452C4 -/* ABC4C4 80045324 86060002 */ lh $a2, 2($s0) -.L80045328: -/* ABC4C8 80045328 8FBF002C */ lw $ra, 0x2c($sp) -/* ABC4CC 8004532C 8FB00014 */ lw $s0, 0x14($sp) -/* ABC4D0 80045330 8FB10018 */ lw $s1, 0x18($sp) -/* ABC4D4 80045334 8FB2001C */ lw $s2, 0x1c($sp) -/* ABC4D8 80045338 8FB30020 */ lw $s3, 0x20($sp) -/* ABC4DC 8004533C 8FB40024 */ lw $s4, 0x24($sp) -/* ABC4E0 80045340 8FB50028 */ lw $s5, 0x28($sp) -/* ABC4E4 80045344 27BD0030 */ addiu $sp, $sp, 0x30 -/* ABC4E8 80045348 03E00008 */ jr $ra -/* ABC4EC 8004534C 24020001 */ li $v0, 1 - diff --git a/asm/non_matchings/code/z_camera/Camera_Data4.s b/asm/non_matchings/code/z_camera/Camera_Data4.s deleted file mode 100644 index e250021eda..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Data4.s +++ /dev/null @@ -1,236 +0,0 @@ -.late_rodata -glabel D_8013A1B4 - .float 0.01 - -glabel D_8013A1B8 - .float 0.01 - -glabel D_8013A1BC - .float 182.04167 - -glabel D_8013A1C0 - .float 182.04167 - -.text -glabel Camera_Data4 -/* AC83F0 80051250 27BDFF78 */ addiu $sp, $sp, -0x88 -/* AC83F4 80051254 AFB00014 */ sw $s0, 0x14($sp) -/* AC83F8 80051258 00808025 */ move $s0, $a0 -/* AC83FC 8005125C AFBF001C */ sw $ra, 0x1c($sp) -/* AC8400 80051260 AFB10018 */ sw $s1, 0x18($sp) -/* AC8404 80051264 0C00B721 */ jal Player_GetCameraYOffset -/* AC8408 80051268 8C840090 */ lw $a0, 0x90($a0) -/* AC840C 8005126C E7A00038 */ swc1 $f0, 0x38($sp) -/* AC8410 80051270 8602015E */ lh $v0, 0x15e($s0) -/* AC8414 80051274 2401000A */ li $at, 10 -/* AC8418 80051278 10400008 */ beqz $v0, .L8005129C -/* AC841C 8005127C 00000000 */ nop -/* AC8420 80051280 10410006 */ beq $v0, $at, .L8005129C -/* AC8424 80051284 24010014 */ li $at, 20 -/* AC8428 80051288 10410004 */ beq $v0, $at, .L8005129C -/* AC842C 8005128C 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 -/* AC8430 80051290 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* AC8434 80051294 85C20314 */ lh $v0, 0x314($t6) -/* AC8438 80051298 10400058 */ beqz $v0, .L800513FC -.L8005129C: -/* AC843C 8005129C 3C018014 */ lui $at, %hi(D_8013A1B4) -/* AC8440 800512A0 C42CA1B4 */ lwc1 $f12, %lo(D_8013A1B4)($at) -/* AC8444 800512A4 3C014288 */ li $at, 0x42880000 # 0.000000 -/* AC8448 800512A8 44814000 */ mtc1 $at, $f8 -/* AC844C 800512AC C7AA0038 */ lwc1 $f10, 0x38($sp) -/* AC8450 800512B0 3C0B8016 */ lui $t3, %hi(gGameInfo) # $t3, 0x8016 -/* AC8454 800512B4 8D6BFA90 */ lw $t3, %lo(gGameInfo)($t3) -/* AC8458 800512B8 460A4403 */ div.s $f16, $f8, $f10 -/* AC845C 800512BC 860F0142 */ lh $t7, 0x142($s0) -/* AC8460 800512C0 856C01F0 */ lh $t4, 0x1f0($t3) -/* AC8464 800512C4 3C198012 */ lui $t9, %hi(sCameraSettings+4) -/* AC8468 800512C8 000FC0C0 */ sll $t8, $t7, 3 -/* AC846C 800512CC 448C2000 */ mtc1 $t4, $f4 -/* AC8470 800512D0 86080144 */ lh $t0, 0x144($s0) -/* AC8474 800512D4 0338C821 */ addu $t9, $t9, $t8 -/* AC8478 800512D8 468021A0 */ cvt.s.w $f6, $f4 -/* AC847C 800512DC 8F39D068 */ lw $t9, %lo(sCameraSettings+4)($t9) -/* AC8480 800512E0 000848C0 */ sll $t1, $t0, 3 -/* AC8484 800512E4 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC8488 800512E8 03295021 */ addu $t2, $t9, $t1 -/* AC848C 800512EC 8D420004 */ lw $v0, 4($t2) -/* AC8490 800512F0 44812000 */ mtc1 $at, $f4 -/* AC8494 800512F4 02002025 */ move $a0, $s0 -/* AC8498 800512F8 844D0000 */ lh $t5, ($v0) -/* AC849C 800512FC 24420008 */ addiu $v0, $v0, 8 -/* AC84A0 80051300 448D4000 */ mtc1 $t5, $f8 -/* AC84A4 80051304 460C3002 */ mul.s $f0, $f6, $f12 -/* AC84A8 80051308 00000000 */ nop -/* AC84AC 8005130C 46100482 */ mul.s $f18, $f0, $f16 -/* AC84B0 80051310 46002180 */ add.s $f6, $f4, $f0 -/* AC84B4 80051314 46804420 */ cvt.s.w $f16, $f8 -/* AC84B8 80051318 46123081 */ sub.s $f2, $f6, $f18 -/* AC84BC 8005131C 460C8102 */ mul.s $f4, $f16, $f12 -/* AC84C0 80051320 00000000 */ nop -/* AC84C4 80051324 460A2182 */ mul.s $f6, $f4, $f10 -/* AC84C8 80051328 00000000 */ nop -/* AC84CC 8005132C 46023482 */ mul.s $f18, $f6, $f2 -/* AC84D0 80051330 E6120000 */ swc1 $f18, ($s0) -/* AC84D4 80051334 844EFFFC */ lh $t6, -4($v0) -/* AC84D8 80051338 448E4000 */ mtc1 $t6, $f8 -/* AC84DC 8005133C 00000000 */ nop -/* AC84E0 80051340 46804420 */ cvt.s.w $f16, $f8 -/* AC84E4 80051344 E6100004 */ swc1 $f16, 4($s0) -/* AC84E8 80051348 844F0000 */ lh $t7, ($v0) -/* AC84EC 8005134C 0C0111DB */ jal func_8004476C -/* AC84F0 80051350 A60F0008 */ sh $t7, 8($s0) -/* AC84F4 80051354 2611000C */ addiu $s1, $s0, 0xc -/* AC84F8 80051358 02202025 */ move $a0, $s1 -/* AC84FC 8005135C 00402825 */ move $a1, $v0 -/* AC8500 80051360 0C010EF1 */ jal func_80043BC4 -/* AC8504 80051364 AFA20054 */ sw $v0, 0x54($sp) -/* AC8508 80051368 8FA60054 */ lw $a2, 0x54($sp) -/* AC850C 8005136C 2401FFFF */ li $at, -1 -/* AC8510 80051370 88C80006 */ lwl $t0, 6($a2) -/* AC8514 80051374 98C80009 */ lwr $t0, 9($a2) -/* AC8518 80051378 AA28000C */ swl $t0, 0xc($s1) -/* AC851C 8005137C BA28000F */ swr $t0, 0xf($s1) -/* AC8520 80051380 94C8000A */ lhu $t0, 0xa($a2) -/* AC8524 80051384 A6280010 */ sh $t0, 0x10($s1) -/* AC8528 80051388 84C3000C */ lh $v1, 0xc($a2) -/* AC852C 8005138C 10610010 */ beq $v1, $at, .L800513D0 -/* AC8530 80051390 A623001C */ sh $v1, 0x1c($s1) -/* AC8534 80051394 8622001C */ lh $v0, 0x1c($s1) -/* AC8538 80051398 28410169 */ slti $at, $v0, 0x169 -/* AC853C 8005139C 50200007 */ beql $at, $zero, .L800513BC -/* AC8540 800513A0 44823000 */ mtc1 $v0, $f6 -/* AC8544 800513A4 44822000 */ mtc1 $v0, $f4 -/* AC8548 800513A8 00000000 */ nop -/* AC854C 800513AC 468022A0 */ cvt.s.w $f10, $f4 -/* AC8550 800513B0 10000007 */ b .L800513D0 -/* AC8554 800513B4 E60A0004 */ swc1 $f10, 4($s0) -/* AC8558 800513B8 44823000 */ mtc1 $v0, $f6 -.L800513BC: -/* AC855C 800513BC 3C018014 */ lui $at, %hi(D_8013A1B8) -/* AC8560 800513C0 C428A1B8 */ lwc1 $f8, %lo(D_8013A1B8)($at) -/* AC8564 800513C4 468034A0 */ cvt.s.w $f18, $f6 -/* AC8568 800513C8 46089402 */ mul.s $f16, $f18, $f8 -/* AC856C 800513CC E6100004 */ swc1 $f16, 4($s0) -.L800513D0: -/* AC8570 800513D0 84D9000E */ lh $t9, 0xe($a2) -/* AC8574 800513D4 8E2A0000 */ lw $t2, ($s1) -/* AC8578 800513D8 3C0B8016 */ lui $t3, %hi(gGameInfo) -/* AC857C 800513DC A639001E */ sh $t9, 0x1e($s1) -/* AC8580 800513E0 AE0A005C */ sw $t2, 0x5c($s0) -/* AC8584 800513E4 8E290004 */ lw $t1, 4($s1) -/* AC8588 800513E8 AE090060 */ sw $t1, 0x60($s0) -/* AC858C 800513EC 8E2A0008 */ lw $t2, 8($s1) -/* AC8590 800513F0 AE0A0064 */ sw $t2, 0x64($s0) -/* AC8594 800513F4 8D6BFA90 */ lw $t3, %lo(gGameInfo)($t3) -/* AC8598 800513F8 85620314 */ lh $v0, 0x314($t3) -.L800513FC: -/* AC859C 800513FC 260C005C */ addiu $t4, $s0, 0x5c -/* AC85A0 80051400 AFAC0028 */ sw $t4, 0x28($sp) -/* AC85A4 80051404 10400003 */ beqz $v0, .L80051414 -/* AC85A8 80051408 2611000C */ addiu $s1, $s0, 0xc -/* AC85AC 8005140C 0C011495 */ jal Camera_CopyPREGToModeValues -/* AC85B0 80051410 02002025 */ move $a0, $s0 -.L80051414: -/* AC85B4 80051414 860D0008 */ lh $t5, 8($s0) -/* AC85B8 80051418 3C018012 */ lui $at, %hi(D_8011D3A0) -/* AC85BC 8005141C 02002025 */ move $a0, $s0 -/* AC85C0 80051420 AC2DD3A0 */ sw $t5, %lo(D_8011D3A0)($at) -/* AC85C4 80051424 8602015E */ lh $v0, 0x15e($s0) -/* AC85C8 80051428 14400003 */ bnez $v0, .L80051438 -/* AC85CC 8005142C 244E0001 */ addiu $t6, $v0, 1 -/* AC85D0 80051430 0C010ED8 */ jal func_80043B60 -/* AC85D4 80051434 A60E015E */ sh $t6, 0x15e($s0) -.L80051438: -/* AC85D8 80051438 26050050 */ addiu $a1, $s0, 0x50 -/* AC85DC 8005143C AFA50024 */ sw $a1, 0x24($sp) -/* AC85E0 80051440 27A40064 */ addiu $a0, $sp, 0x64 -/* AC85E4 80051444 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC85E8 80051448 26060074 */ addiu $a2, $s0, 0x74 -/* AC85EC 8005144C 02002025 */ move $a0, $s0 -/* AC85F0 80051450 27A50064 */ addiu $a1, $sp, 0x64 -/* AC85F4 80051454 8E060000 */ lw $a2, ($s0) -/* AC85F8 80051458 0C0115EA */ jal func_800457A8 -/* AC85FC 8005145C 00003825 */ move $a3, $zero -/* AC8600 80051460 27A40074 */ addiu $a0, $sp, 0x74 -/* AC8604 80051464 8FA50028 */ lw $a1, 0x28($sp) -/* AC8608 80051468 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC860C 8005146C 8FA60024 */ lw $a2, 0x24($sp) -/* AC8610 80051470 C7A40074 */ lwc1 $f4, 0x74($sp) -/* AC8614 80051474 87AE007A */ lh $t6, 0x7a($sp) -/* AC8618 80051478 27A6006C */ addiu $a2, $sp, 0x6c -/* AC861C 8005147C E7A4006C */ swc1 $f4, 0x6c($sp) -/* AC8620 80051480 862F001E */ lh $t7, 0x1e($s1) -/* AC8624 80051484 31F80001 */ andi $t8, $t7, 1 -/* AC8628 80051488 53000012 */ beql $t8, $zero, .L800514D4 -/* AC862C 8005148C A7AE0072 */ sh $t6, 0x72($sp) -/* AC8630 80051490 8608012C */ lh $t0, 0x12c($s0) -/* AC8634 80051494 3C018014 */ lui $at, %hi(D_8013A1BC) -/* AC8638 80051498 C432A1BC */ lwc1 $f18, %lo(D_8013A1BC)($at) -/* AC863C 8005149C 44885000 */ mtc1 $t0, $f10 -/* AC8640 800514A0 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* AC8644 800514A4 44818000 */ mtc1 $at, $f16 -/* AC8648 800514A8 468051A0 */ cvt.s.w $f6, $f10 -/* AC864C 800514AC 862C000E */ lh $t4, 0xe($s1) -/* AC8650 800514B0 46123202 */ mul.s $f8, $f6, $f18 -/* AC8654 800514B4 46104100 */ add.s $f4, $f8, $f16 -/* AC8658 800514B8 4600228D */ trunc.w.s $f10, $f4 -/* AC865C 800514BC 440B5000 */ mfc1 $t3, $f10 -/* AC8660 800514C0 00000000 */ nop -/* AC8664 800514C4 016C6821 */ addu $t5, $t3, $t4 -/* AC8668 800514C8 10000002 */ b .L800514D4 -/* AC866C 800514CC A7AD0072 */ sh $t5, 0x72($sp) -/* AC8670 800514D0 A7AE0072 */ sh $t6, 0x72($sp) -.L800514D4: -/* AC8674 800514D4 862F001E */ lh $t7, 0x1e($s1) -/* AC8678 800514D8 87AE0078 */ lh $t6, 0x78($sp) -/* AC867C 800514DC 31F80002 */ andi $t8, $t7, 2 -/* AC8680 800514E0 53000012 */ beql $t8, $zero, .L8005152C -/* AC8684 800514E4 A7AE0070 */ sh $t6, 0x70($sp) -/* AC8688 800514E8 8608012E */ lh $t0, 0x12e($s0) -/* AC868C 800514EC 3C018014 */ lui $at, %hi(D_8013A1C0) -/* AC8690 800514F0 C428A1C0 */ lwc1 $f8, %lo(D_8013A1C0)($at) -/* AC8694 800514F4 44883000 */ mtc1 $t0, $f6 -/* AC8698 800514F8 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* AC869C 800514FC 44812000 */ mtc1 $at, $f4 -/* AC86A0 80051500 468034A0 */ cvt.s.w $f18, $f6 -/* AC86A4 80051504 862C000C */ lh $t4, 0xc($s1) -/* AC86A8 80051508 46089402 */ mul.s $f16, $f18, $f8 -/* AC86AC 8005150C 46048280 */ add.s $f10, $f16, $f4 -/* AC86B0 80051510 4600518D */ trunc.w.s $f6, $f10 -/* AC86B4 80051514 440B3000 */ mfc1 $t3, $f6 -/* AC86B8 80051518 00000000 */ nop -/* AC86BC 8005151C 016C6821 */ addu $t5, $t3, $t4 -/* AC86C0 80051520 10000002 */ b .L8005152C -/* AC86C4 80051524 A7AD0070 */ sh $t5, 0x70($sp) -/* AC86C8 80051528 A7AE0070 */ sh $t6, 0x70($sp) -.L8005152C: -/* AC86CC 8005152C 8FA40024 */ lw $a0, 0x24($sp) -/* AC86D0 80051530 0C010F0A */ jal func_80043C28 -/* AC86D4 80051534 8FA50028 */ lw $a1, 0x28($sp) -/* AC86D8 80051538 8E180094 */ lw $t8, 0x94($s0) -/* AC86DC 8005153C 27A40048 */ addiu $a0, $sp, 0x48 -/* AC86E0 80051540 AC980000 */ sw $t8, ($a0) -/* AC86E4 80051544 8E0F0098 */ lw $t7, 0x98($s0) -/* AC86E8 80051548 AC8F0004 */ sw $t7, 4($a0) -/* AC86EC 8005154C 8E18009C */ lw $t8, 0x9c($s0) -/* AC86F0 80051550 AC980008 */ sw $t8, 8($a0) -/* AC86F4 80051554 C7B2004C */ lwc1 $f18, 0x4c($sp) -/* AC86F8 80051558 C7A80038 */ lwc1 $f8, 0x38($sp) -/* AC86FC 8005155C 8FA50028 */ lw $a1, 0x28($sp) -/* AC8700 80051560 46089400 */ add.s $f16, $f18, $f8 -/* AC8704 80051564 0C01EFE4 */ jal OLib_Vec3fDist -/* AC8708 80051568 E7B0004C */ swc1 $f16, 0x4c($sp) -/* AC870C 8005156C 44802000 */ mtc1 $zero, $f4 -/* AC8710 80051570 C60A0004 */ lwc1 $f10, 4($s0) -/* AC8714 80051574 44803000 */ mtc1 $zero, $f6 -/* AC8718 80051578 E60000DC */ swc1 $f0, 0xdc($s0) -/* AC871C 8005157C A600015A */ sh $zero, 0x15a($s0) -/* AC8720 80051580 E60400D8 */ swc1 $f4, 0xd8($s0) -/* AC8724 80051584 E60A00FC */ swc1 $f10, 0xfc($s0) -/* AC8728 80051588 E6060100 */ swc1 $f6, 0x100($s0) -/* AC872C 8005158C 8FBF001C */ lw $ra, 0x1c($sp) -/* AC8730 80051590 8FB10018 */ lw $s1, 0x18($sp) -/* AC8734 80051594 8FB00014 */ lw $s0, 0x14($sp) -/* AC8738 80051598 27BD0088 */ addiu $sp, $sp, 0x88 -/* AC873C 8005159C 03E00008 */ jr $ra -/* AC8740 800515A0 24020001 */ li $v0, 1 diff --git a/asm/non_matchings/code/z_camera/Camera_Demo1.s b/asm/non_matchings/code/z_camera/Camera_Demo1.s deleted file mode 100644 index 7da437cb57..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Demo1.s +++ /dev/null @@ -1,209 +0,0 @@ -.rdata -glabel D_80139614 - .asciz "\x1b[1m%06u:\x1b[m camera: spline demo: start %s \n" - .balign 4 - -glabel D_80139644 - .asciz "絶対" # actually japanese? - .balign 4 - -glabel D_8013964C - .asciz "相対" - .balign 4 - -glabel D_80139654 - .asciz "CENTER" - .balign 4 - -glabel D_8013965C - .asciz " EYE" - .balign 4 - -glabel D_80139664 - .asciz "\x1b[41;37mcamera: spline demo: owner dead\n\x1b[m" - .balign 4 - -.text -glabel Camera_Demo1 -/* ACB670 800544D0 27BDFF68 */ addiu $sp, $sp, -0x98 -/* ACB674 800544D4 AFBF0024 */ sw $ra, 0x24($sp) -/* ACB678 800544D8 AFB00020 */ sw $s0, 0x20($sp) -/* ACB67C 800544DC 8C8E0124 */ lw $t6, 0x124($a0) -/* ACB680 800544E0 00808025 */ move $s0, $a0 -/* ACB684 800544E4 2401000A */ li $at, 10 -/* ACB688 800544E8 AFAE0084 */ sw $t6, 0x84($sp) -/* ACB68C 800544EC 8C8F0128 */ lw $t7, 0x128($a0) -/* ACB690 800544F0 AFAF0080 */ sw $t7, 0x80($sp) -/* ACB694 800544F4 8482015E */ lh $v0, 0x15e($a0) -/* ACB698 800544F8 3C048014 */ lui $a0, %hi(D_80139614) # $a0, 0x8014 -/* ACB69C 800544FC 5040000A */ beql $v0, $zero, .L80054528 -/* ACB6A0 80054500 86090142 */ lh $t1, 0x142($s0) -/* ACB6A4 80054504 10410007 */ beq $v0, $at, .L80054524 -/* ACB6A8 80054508 24010014 */ li $at, 20 -/* ACB6AC 8005450C 10410005 */ beq $v0, $at, .L80054524 -/* ACB6B0 80054510 3C188016 */ lui $t8, %hi(gGameInfo) # $t8, 0x8016 -/* ACB6B4 80054514 8F18FA90 */ lw $t8, %lo(gGameInfo)($t8) -/* ACB6B8 80054518 87190314 */ lh $t9, 0x314($t8) -/* ACB6BC 8005451C 5320000D */ beql $t9, $zero, .L80054554 -/* ACB6C0 80054520 86180000 */ lh $t8, ($s0) -.L80054524: -/* ACB6C4 80054524 86090142 */ lh $t1, 0x142($s0) -.L80054528: -/* ACB6C8 80054528 3C0B8012 */ lui $t3, %hi(sCameraSettings+4) -/* ACB6CC 8005452C 860C0144 */ lh $t4, 0x144($s0) -/* ACB6D0 80054530 000950C0 */ sll $t2, $t1, 3 -/* ACB6D4 80054534 016A5821 */ addu $t3, $t3, $t2 -/* ACB6D8 80054538 8D6BD068 */ lw $t3, %lo(sCameraSettings+4)($t3) -/* ACB6DC 8005453C 000C68C0 */ sll $t5, $t4, 3 -/* ACB6E0 80054540 016D7021 */ addu $t6, $t3, $t5 -/* ACB6E4 80054544 8DC20004 */ lw $v0, 4($t6) -/* ACB6E8 80054548 844F0000 */ lh $t7, ($v0) -/* ACB6EC 8005454C A60F0000 */ sh $t7, ($s0) -/* ACB6F0 80054550 86180000 */ lh $t8, ($s0) -.L80054554: -/* ACB6F4 80054554 3C018012 */ lui $at, %hi(D_8011D3A0) -/* ACB6F8 80054558 AC38D3A0 */ sw $t8, %lo(D_8011D3A0)($at) -/* ACB6FC 8005455C 8606015E */ lh $a2, 0x15e($s0) -/* ACB700 80054560 24010001 */ li $at, 1 -/* ACB704 80054564 50C00006 */ beql $a2, $zero, .L80054580 -/* ACB708 80054568 44802000 */ mtc1 $zero, $f4 -/* ACB70C 8005456C 50C10025 */ beql $a2, $at, .L80054604 -/* ACB710 80054570 26030004 */ addiu $v1, $s0, 4 -/* ACB714 80054574 1000007B */ b .L80054764 -/* ACB718 80054578 8FBF0024 */ lw $ra, 0x24($sp) -/* ACB71C 8005457C 44802000 */ mtc1 $zero, $f4 -.L80054580: -/* ACB720 80054580 26030004 */ addiu $v1, $s0, 4 -/* ACB724 80054584 A4600004 */ sh $zero, 4($v1) -/* ACB728 80054588 E4640000 */ swc1 $f4, ($v1) -/* ACB72C 8005458C 8619015E */ lh $t9, 0x15e($s0) -/* ACB730 80054590 860A012C */ lh $t2, 0x12c($s0) -/* ACB734 80054594 3C068014 */ lui $a2, %hi(D_8013964C) -/* ACB738 80054598 27290001 */ addiu $t1, $t9, 1 -/* ACB73C 8005459C 15400004 */ bnez $t2, .L800545B0 -/* ACB740 800545A0 A609015E */ sh $t1, 0x15e($s0) -/* ACB744 800545A4 3C068014 */ lui $a2, %hi(D_80139644) # $a2, 0x8014 -/* ACB748 800545A8 10000002 */ b .L800545B4 -/* ACB74C 800545AC 24C69644 */ addiu $a2, %lo(D_80139644) # addiu $a2, $a2, -0x69bc -.L800545B0: -/* ACB750 800545B0 24C6964C */ addiu $a2, %lo(D_8013964C) -.L800545B4: -/* ACB754 800545B4 8E0C008C */ lw $t4, 0x8c($s0) -/* ACB758 800545B8 24849614 */ addiu $a0, %lo(D_80139614) # addiu $a0, $a0, -0x69ec -/* ACB75C 800545BC 0C00084C */ jal osSyncPrintf -/* ACB760 800545C0 8D85009C */ lw $a1, 0x9c($t4) -/* ACB764 800545C4 3C0B8016 */ lui $t3, %hi(gGameInfo) # $t3, 0x8016 -/* ACB768 800545C8 8D6BFA90 */ lw $t3, %lo(gGameInfo)($t3) -/* ACB76C 800545CC 3C048014 */ lui $a0, %hi(D_80139654) # $a0, 0x8014 -/* ACB770 800545D0 24849654 */ addiu $a0, %lo(D_80139654) # addiu $a0, $a0, -0x69ac -/* ACB774 800545D4 856D030E */ lh $t5, 0x30e($t3) -/* ACB778 800545D8 24050005 */ li $a1, 5 -/* ACB77C 800545DC 51A00009 */ beql $t5, $zero, .L80054604 -/* ACB780 800545E0 26030004 */ addiu $v1, $s0, 4 -/* ACB784 800545E4 0C0150C5 */ jal Camera_DebugPrintSplineArray -/* ACB788 800545E8 8FA60084 */ lw $a2, 0x84($sp) -/* ACB78C 800545EC 3C048014 */ lui $a0, %hi(D_8013965C) # $a0, 0x8014 -/* ACB790 800545F0 2484965C */ addiu $a0, %lo(D_8013965C) # addiu $a0, $a0, -0x69a4 -/* ACB794 800545F4 24050005 */ li $a1, 5 -/* ACB798 800545F8 0C0150C5 */ jal Camera_DebugPrintSplineArray -/* ACB79C 800545FC 8FA60080 */ lw $a2, 0x80($sp) -/* ACB7A0 80054600 26030004 */ addiu $v1, $s0, 4 -.L80054604: -/* ACB7A4 80054604 24680004 */ addiu $t0, $v1, 4 -/* ACB7A8 80054608 260600FC */ addiu $a2, $s0, 0xfc -/* ACB7AC 8005460C 260E012C */ addiu $t6, $s0, 0x12c -/* ACB7B0 80054610 AFAE0030 */ sw $t6, 0x30($sp) -/* ACB7B4 80054614 AFA60034 */ sw $a2, 0x34($sp) -/* ACB7B8 80054618 AFA80010 */ sw $t0, 0x10($sp) -/* ACB7BC 8005461C AFA80028 */ sw $t0, 0x28($sp) -/* ACB7C0 80054620 AFA30014 */ sw $v1, 0x14($sp) -/* ACB7C4 80054624 AFA3002C */ sw $v1, 0x2c($sp) -/* ACB7C8 80054628 27A4005C */ addiu $a0, $sp, 0x5c -/* ACB7CC 8005462C 27A5004C */ addiu $a1, $sp, 0x4c -/* ACB7D0 80054630 0C02ECAD */ jal func_800BB2B4 -/* ACB7D4 80054634 8FA70080 */ lw $a3, 0x80($sp) -/* ACB7D8 80054638 8FA3002C */ lw $v1, 0x2c($sp) -/* ACB7DC 8005463C 8FA60034 */ lw $a2, 0x34($sp) -/* ACB7E0 80054640 14400009 */ bnez $v0, .L80054668 -/* ACB7E4 80054644 8FA80028 */ lw $t0, 0x28($sp) -/* ACB7E8 80054648 27A40050 */ addiu $a0, $sp, 0x50 -/* ACB7EC 8005464C 27A5004C */ addiu $a1, $sp, 0x4c -/* ACB7F0 80054650 8FA70084 */ lw $a3, 0x84($sp) -/* ACB7F4 80054654 AFA80010 */ sw $t0, 0x10($sp) -/* ACB7F8 80054658 0C02ECAD */ jal func_800BB2B4 -/* ACB7FC 8005465C AFA30014 */ sw $v1, 0x14($sp) -/* ACB800 80054660 50400005 */ beql $v0, $zero, .L80054678 -/* ACB804 80054664 8FB90030 */ lw $t9, 0x30($sp) -.L80054668: -/* ACB808 80054668 860F015E */ lh $t7, 0x15e($s0) -/* ACB80C 8005466C 25F80001 */ addiu $t8, $t7, 1 -/* ACB810 80054670 A618015E */ sh $t8, 0x15e($s0) -/* ACB814 80054674 8FB90030 */ lw $t9, 0x30($sp) -.L80054678: -/* ACB818 80054678 27A4005C */ addiu $a0, $sp, 0x5c -/* ACB81C 8005467C 26050074 */ addiu $a1, $s0, 0x74 -/* ACB820 80054680 87290000 */ lh $t1, ($t9) -/* ACB824 80054684 1120001C */ beqz $t1, .L800546F8 -/* ACB828 80054688 00000000 */ nop -/* ACB82C 8005468C 8E050090 */ lw $a1, 0x90($s0) -/* ACB830 80054690 3C048014 */ lui $a0, %hi(D_80139664) -/* ACB834 80054694 10A00012 */ beqz $a1, .L800546E0 -/* ACB838 80054698 00000000 */ nop -/* ACB83C 8005469C 8CAA0130 */ lw $t2, 0x130($a1) -/* ACB840 800546A0 1140000F */ beqz $t2, .L800546E0 -/* ACB844 800546A4 00000000 */ nop -/* ACB848 800546A8 0C00BBC5 */ jal func_8002EF14 -/* ACB84C 800546AC 27A40068 */ addiu $a0, $sp, 0x68 -/* ACB850 800546B0 26060074 */ addiu $a2, $s0, 0x74 -/* ACB854 800546B4 AFA60030 */ sw $a2, 0x30($sp) -/* ACB858 800546B8 27A40068 */ addiu $a0, $sp, 0x68 -/* ACB85C 800546BC 0C01511E */ jal func_80054478 -/* ACB860 800546C0 27A5005C */ addiu $a1, $sp, 0x5c -/* ACB864 800546C4 26060050 */ addiu $a2, $s0, 0x50 -/* ACB868 800546C8 AFA60034 */ sw $a2, 0x34($sp) -/* ACB86C 800546CC 27A40068 */ addiu $a0, $sp, 0x68 -/* ACB870 800546D0 0C01511E */ jal func_80054478 -/* ACB874 800546D4 27A50050 */ addiu $a1, $sp, 0x50 -/* ACB878 800546D8 1000000F */ b .L80054718 -/* ACB87C 800546DC 8FA60034 */ lw $a2, 0x34($sp) -.L800546E0: -/* ACB880 800546E0 0C00084C */ jal osSyncPrintf -/* ACB884 800546E4 24849664 */ addiu $a0, %lo(D_80139664) -/* ACB888 800546E8 260C0074 */ addiu $t4, $s0, 0x74 -/* ACB88C 800546EC AFAC0030 */ sw $t4, 0x30($sp) -/* ACB890 800546F0 10000009 */ b .L80054718 -/* ACB894 800546F4 26060050 */ addiu $a2, $s0, 0x50 -.L800546F8: -/* ACB898 800546F8 0C015117 */ jal Camera_Vec3fCopy -/* ACB89C 800546FC AFA50030 */ sw $a1, 0x30($sp) -/* ACB8A0 80054700 26060050 */ addiu $a2, $s0, 0x50 -/* ACB8A4 80054704 00C02825 */ move $a1, $a2 -/* ACB8A8 80054708 AFA60034 */ sw $a2, 0x34($sp) -/* ACB8AC 8005470C 0C015117 */ jal Camera_Vec3fCopy -/* ACB8B0 80054710 27A40050 */ addiu $a0, $sp, 0x50 -/* ACB8B4 80054714 8FA60034 */ lw $a2, 0x34($sp) -.L80054718: -/* ACB8B8 80054718 8FAD0030 */ lw $t5, 0x30($sp) -/* ACB8BC 8005471C 2605005C */ addiu $a1, $s0, 0x5c -/* ACB8C0 80054720 3C014380 */ li $at, 0x43800000 # 0.000000 -/* ACB8C4 80054724 8DAF0000 */ lw $t7, ($t5) -/* ACB8C8 80054728 44814000 */ mtc1 $at, $f8 -/* ACB8CC 8005472C 00C02025 */ move $a0, $a2 -/* ACB8D0 80054730 ACAF0000 */ sw $t7, ($a1) -/* ACB8D4 80054734 8DAE0004 */ lw $t6, 4($t5) -/* ACB8D8 80054738 ACAE0004 */ sw $t6, 4($a1) -/* ACB8DC 8005473C 8DAF0008 */ lw $t7, 8($t5) -/* ACB8E0 80054740 ACAF0008 */ sw $t7, 8($a1) -/* ACB8E4 80054744 C7A6004C */ lwc1 $f6, 0x4c($sp) -/* ACB8E8 80054748 46083282 */ mul.s $f10, $f6, $f8 -/* ACB8EC 8005474C 4600540D */ trunc.w.s $f16, $f10 -/* ACB8F0 80054750 44198000 */ mfc1 $t9, $f16 -/* ACB8F4 80054754 0C01EFE4 */ jal OLib_Vec3fDist -/* ACB8F8 80054758 A619015A */ sh $t9, 0x15a($s0) -/* ACB8FC 8005475C E60000DC */ swc1 $f0, 0xdc($s0) -/* ACB900 80054760 8FBF0024 */ lw $ra, 0x24($sp) -.L80054764: -/* ACB904 80054764 8FB00020 */ lw $s0, 0x20($sp) -/* ACB908 80054768 27BD0098 */ addiu $sp, $sp, 0x98 -/* ACB90C 8005476C 03E00008 */ jr $ra -/* ACB910 80054770 24020001 */ li $v0, 1 diff --git a/asm/non_matchings/code/z_camera/Camera_Demo3.s b/asm/non_matchings/code/z_camera/Camera_Demo3.s deleted file mode 100644 index bde4c2f999..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Demo3.s +++ /dev/null @@ -1,800 +0,0 @@ -.late_rodata -glabel jtbl_8013A2B8 - .word L800548B8 - .word L80054AB4 - .word L80054C40 - .word L80054DD8 - .word L80054FAC - .word L8005508C - .word L8005508C - .word L8005508C - .word L8005508C - .word L8005508C - .word L80054F90 - .word L8005508C - .word L8005508C - .word L8005508C - .word L8005508C - .word L8005508C - .word L8005508C - .word L8005508C - .word L8005508C - .word L8005508C - .word L80054F90 - .word L8005508C - .word L8005508C - .word L8005508C - .word L8005508C - .word L8005508C - .word L8005508C - .word L8005508C - .word L8005508C - .word L8005508C - .word L80054F6C - -glabel D_8013A334 - .float 0.006849315 - -glabel D_8013A338 - .float 0.002739726 - -glabel D_8013A33C - .float 0.1 - -glabel D_8013A340 - .float 0.04 - -glabel D_8013A344 - .float 0.11111111 - -glabel D_8013A348 - .float 0.08888889 - -glabel D_8013A34C - .float 0.1 - -glabel D_8013A350 - .float 0.001 - -glabel D_8013A354 - .float 0.1 - -.text -glabel Camera_Demo3 -/* ACB934 80054794 27BDFF58 */ addiu $sp, $sp, -0xa8 -/* ACB938 80054798 AFB10018 */ sw $s1, 0x18($sp) -/* ACB93C 8005479C 00808825 */ move $s1, $a0 -/* ACB940 800547A0 AFBF001C */ sw $ra, 0x1c($sp) -/* ACB944 800547A4 AFB00014 */ sw $s0, 0x14($sp) -/* ACB948 800547A8 A3A00053 */ sb $zero, 0x53($sp) -/* ACB94C 800547AC 0C00B721 */ jal Player_GetCameraYOffset -/* ACB950 800547B0 8C840090 */ lw $a0, 0x90($a0) -/* ACB954 800547B4 862E014C */ lh $t6, 0x14c($s1) -/* ACB958 800547B8 8622015E */ lh $v0, 0x15e($s1) -/* ACB95C 800547BC 46000406 */ mov.s $f16, $f0 -/* ACB960 800547C0 31CFFFEF */ andi $t7, $t6, 0xffef -/* ACB964 800547C4 1040000A */ beqz $v0, .L800547F0 -/* ACB968 800547C8 A62F014C */ sh $t7, 0x14c($s1) -/* ACB96C 800547CC 2401000A */ li $at, 10 -/* ACB970 800547D0 10410007 */ beq $v0, $at, .L800547F0 -/* ACB974 800547D4 24010014 */ li $at, 20 -/* ACB978 800547D8 10410005 */ beq $v0, $at, .L800547F0 -/* ACB97C 800547DC 3C188016 */ lui $t8, %hi(gGameInfo) # $t8, 0x8016 -/* ACB980 800547E0 8F18FA90 */ lw $t8, %lo(gGameInfo)($t8) -/* ACB984 800547E4 87030314 */ lh $v1, 0x314($t8) -/* ACB988 800547E8 1060001A */ beqz $v1, .L80054854 -/* ACB98C 800547EC 00000000 */ nop -.L800547F0: -/* ACB990 800547F0 86390142 */ lh $t9, 0x142($s1) -/* ACB994 800547F4 3C098012 */ lui $t1, %hi(sCameraSettings+4) -/* ACB998 800547F8 862A0144 */ lh $t2, 0x144($s1) -/* ACB99C 800547FC 001940C0 */ sll $t0, $t9, 3 -/* ACB9A0 80054800 01284821 */ addu $t1, $t1, $t0 -/* ACB9A4 80054804 8D29D068 */ lw $t1, %lo(sCameraSettings+4)($t1) -/* ACB9A8 80054808 000A58C0 */ sll $t3, $t2, 3 -/* ACB9AC 8005480C 3C188016 */ lui $t8, %hi(gGameInfo) # $t8, 0x8016 -/* ACB9B0 80054810 012B6021 */ addu $t4, $t1, $t3 -/* ACB9B4 80054814 8D820004 */ lw $v0, 4($t4) -/* ACB9B8 80054818 844D0000 */ lh $t5, ($v0) -/* ACB9BC 8005481C 24420008 */ addiu $v0, $v0, 8 -/* ACB9C0 80054820 448D2000 */ mtc1 $t5, $f4 -/* ACB9C4 80054824 00000000 */ nop -/* ACB9C8 80054828 468021A0 */ cvt.s.w $f6, $f4 -/* ACB9CC 8005482C E6260000 */ swc1 $f6, ($s1) -/* ACB9D0 80054830 844EFFFC */ lh $t6, -4($v0) -/* ACB9D4 80054834 448E4000 */ mtc1 $t6, $f8 -/* ACB9D8 80054838 00000000 */ nop -/* ACB9DC 8005483C 468042A0 */ cvt.s.w $f10, $f8 -/* ACB9E0 80054840 E62A0004 */ swc1 $f10, 4($s1) -/* ACB9E4 80054844 844F0000 */ lh $t7, ($v0) -/* ACB9E8 80054848 A62F0008 */ sh $t7, 8($s1) -/* ACB9EC 8005484C 8F18FA90 */ lw $t8, %lo(gGameInfo)($t8) -/* ACB9F0 80054850 87030314 */ lh $v1, 0x314($t8) -.L80054854: -/* ACB9F4 80054854 10600004 */ beqz $v1, .L80054868 -/* ACB9F8 80054858 02202025 */ move $a0, $s1 -/* ACB9FC 8005485C 0C011495 */ jal Camera_CopyPREGToModeValues -/* ACBA00 80054860 E7B0004C */ swc1 $f16, 0x4c($sp) -/* ACBA04 80054864 C7B0004C */ lwc1 $f16, 0x4c($sp) -.L80054868: -/* ACBA08 80054868 26250050 */ addiu $a1, $s1, 0x50 -/* ACBA0C 8005486C 2626005C */ addiu $a2, $s1, 0x5c -/* ACBA10 80054870 AFA60034 */ sw $a2, 0x34($sp) -/* ACBA14 80054874 AFA50030 */ sw $a1, 0x30($sp) -/* ACBA18 80054878 27A40090 */ addiu $a0, $sp, 0x90 -/* ACBA1C 8005487C 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* ACBA20 80054880 E7B0004C */ swc1 $f16, 0x4c($sp) -/* ACBA24 80054884 86390008 */ lh $t9, 8($s1) -/* ACBA28 80054888 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 -/* ACBA2C 8005488C C7B0004C */ lwc1 $f16, 0x4c($sp) -/* ACBA30 80054890 AC39D3A0 */ sw $t9, %lo(D_8011D3A0)($at) -/* ACBA34 80054894 9628015E */ lhu $t0, 0x15e($s1) -/* ACBA38 80054898 2D01001F */ sltiu $at, $t0, 0x1f -/* ACBA3C 8005489C 102001FB */ beqz $at, .L8005508C -/* ACBA40 800548A0 00084080 */ sll $t0, $t0, 2 -/* ACBA44 800548A4 3C018014 */ lui $at, %hi(jtbl_8013A2B8) -/* ACBA48 800548A8 00280821 */ addu $at, $at, $t0 -/* ACBA4C 800548AC 8C28A2B8 */ lw $t0, %lo(jtbl_8013A2B8)($at) -/* ACBA50 800548B0 01000008 */ jr $t0 -/* ACBA54 800548B4 00000000 */ nop - -glabel L800548B8 -/* ACBA58 800548B8 862A014C */ lh $t2, 0x14c($s1) -/* ACBA5C 800548BC 02202025 */ move $a0, $s1 -/* ACBA60 800548C0 3149FFF3 */ andi $t1, $t2, 0xfff3 -/* ACBA64 800548C4 0C010ED8 */ jal func_80043B60 -/* ACBA68 800548C8 A629014C */ sh $t1, 0x14c($s1) -/* ACBA6C 800548CC C6320000 */ lwc1 $f18, ($s1) -/* ACBA70 800548D0 2630000C */ addiu $s0, $s1, 0xc -/* ACBA74 800548D4 26220094 */ addiu $v0, $s1, 0x94 -/* ACBA78 800548D8 E63200FC */ swc1 $f18, 0xfc($s1) -/* ACBA7C 800548DC A6000010 */ sh $zero, 0x10($s0) -/* ACBA80 800548E0 860B0010 */ lh $t3, 0x10($s0) -/* ACBA84 800548E4 3C01C6FA */ li $at, 0xC6FA0000 # 0.000000 -/* ACBA88 800548E8 44812000 */ mtc1 $at, $f4 -/* ACBA8C 800548EC A62B015A */ sh $t3, 0x15a($s1) -/* ACBA90 800548F0 8C4D0000 */ lw $t5, ($v0) -/* ACBA94 800548F4 AE0D0000 */ sw $t5, ($s0) -/* ACBA98 800548F8 8C4C0004 */ lw $t4, 4($v0) -/* ACBA9C 800548FC AE0C0004 */ sw $t4, 4($s0) -/* ACBAA0 80054900 8C4D0008 */ lw $t5, 8($v0) -/* ACBAA4 80054904 AE0D0008 */ sw $t5, 8($s0) -/* ACBAA8 80054908 C6200104 */ lwc1 $f0, 0x104($s1) -/* ACBAAC 8005490C 46002032 */ c.eq.s $f4, $f0 -/* ACBAB0 80054910 00000000 */ nop -/* ACBAB4 80054914 45030003 */ bc1tl .L80054924 -/* ACBAB8 80054918 8444000E */ lh $a0, 0xe($v0) -/* ACBABC 8005491C E6000004 */ swc1 $f0, 4($s0) -/* ACBAC0 80054920 8444000E */ lh $a0, 0xe($v0) -.L80054924: -/* ACBAC4 80054924 AFA20028 */ sw $v0, 0x28($sp) -/* ACBAC8 80054928 0C01DE1C */ jal Math_Sins -/* ACBACC 8005492C A7A4004A */ sh $a0, 0x4a($sp) -/* ACBAD0 80054930 3C014220 */ li $at, 0x42200000 # 0.000000 -/* ACBAD4 80054934 44811000 */ mtc1 $at, $f2 -/* ACBAD8 80054938 C6080000 */ lwc1 $f8, ($s0) -/* ACBADC 8005493C 87A4004A */ lh $a0, 0x4a($sp) -/* ACBAE0 80054940 46020182 */ mul.s $f6, $f0, $f2 -/* ACBAE4 80054944 46083280 */ add.s $f10, $f6, $f8 -/* ACBAE8 80054948 E7AA0068 */ swc1 $f10, 0x68($sp) -/* ACBAEC 8005494C C6120004 */ lwc1 $f18, 4($s0) -/* ACBAF0 80054950 46029100 */ add.s $f4, $f18, $f2 -/* ACBAF4 80054954 0C01DE0D */ jal Math_Coss -/* ACBAF8 80054958 E7A4006C */ swc1 $f4, 0x6c($sp) -/* ACBAFC 8005495C 3C014220 */ li $at, 0x42200000 # 0.000000 -/* ACBB00 80054960 44813000 */ mtc1 $at, $f6 -/* ACBB04 80054964 C60A0008 */ lwc1 $f10, 8($s0) -/* ACBB08 80054968 87A4004A */ lh $a0, 0x4a($sp) -/* ACBB0C 8005496C 46060202 */ mul.s $f8, $f0, $f6 -/* ACBB10 80054970 24190001 */ li $t9, 1 -/* ACBB14 80054974 2408FFFF */ li $t0, -1 -/* ACBB18 80054978 460A4480 */ add.s $f18, $f8, $f10 -/* ACBB1C 8005497C E7B20070 */ swc1 $f18, 0x70($sp) -/* ACBB20 80054980 8E2E008C */ lw $t6, 0x8c($s1) -/* ACBB24 80054984 8DCF009C */ lw $t7, 0x9c($t6) -/* ACBB28 80054988 31F80001 */ andi $t8, $t7, 1 -/* ACBB2C 8005498C 53000007 */ beql $t8, $zero, .L800549AC -/* ACBB30 80054990 24843FFF */ addiu $a0, $a0, 0x3fff -/* ACBB34 80054994 2484C001 */ addiu $a0, $a0, -0x3fff -/* ACBB38 80054998 00042400 */ sll $a0, $a0, 0x10 -/* ACBB3C 8005499C 00042403 */ sra $a0, $a0, 0x10 -/* ACBB40 800549A0 10000005 */ b .L800549B8 -/* ACBB44 800549A4 A6190012 */ sh $t9, 0x12($s0) -/* ACBB48 800549A8 24843FFF */ addiu $a0, $a0, 0x3fff -.L800549AC: -/* ACBB4C 800549AC 00042400 */ sll $a0, $a0, 0x10 -/* ACBB50 800549B0 00042403 */ sra $a0, $a0, 0x10 -/* ACBB54 800549B4 A6080012 */ sh $t0, 0x12($s0) -.L800549B8: -/* ACBB58 800549B8 0C01DE1C */ jal Math_Sins -/* ACBB5C 800549BC A7A4004A */ sh $a0, 0x4a($sp) -/* ACBB60 800549C0 3C038012 */ lui $v1, %hi(D_8011D658) # $v1, 0x8012 -/* ACBB64 800549C4 2463D658 */ addiu $v1, %lo(D_8011D658) # addiu $v1, $v1, -0x29a8 -/* ACBB68 800549C8 C4640008 */ lwc1 $f4, 8($v1) -/* ACBB6C 800549CC C7A80068 */ lwc1 $f8, 0x68($sp) -/* ACBB70 800549D0 3C0140A0 */ li $at, 0x40A00000 # 0.000000 -/* ACBB74 800549D4 46040182 */ mul.s $f6, $f0, $f4 -/* ACBB78 800549D8 44812000 */ mtc1 $at, $f4 -/* ACBB7C 800549DC 87A4004A */ lh $a0, 0x4a($sp) -/* ACBB80 800549E0 46083280 */ add.s $f10, $f6, $f8 -/* ACBB84 800549E4 E7AA0074 */ swc1 $f10, 0x74($sp) -/* ACBB88 800549E8 C6120004 */ lwc1 $f18, 4($s0) -/* ACBB8C 800549EC 46049180 */ add.s $f6, $f18, $f4 -/* ACBB90 800549F0 0C01DE0D */ jal Math_Coss -/* ACBB94 800549F4 E7A60078 */ swc1 $f6, 0x78($sp) -/* ACBB98 800549F8 3C038012 */ lui $v1, %hi(D_8011D658) # $v1, 0x8012 -/* ACBB9C 800549FC 2463D658 */ addiu $v1, %lo(D_8011D658) # addiu $v1, $v1, -0x29a8 -/* ACBBA0 80054A00 C4680008 */ lwc1 $f8, 8($v1) -/* ACBBA4 80054A04 C7B20070 */ lwc1 $f18, 0x70($sp) -/* ACBBA8 80054A08 02202025 */ move $a0, $s1 -/* ACBBAC 80054A0C 46080282 */ mul.s $f10, $f0, $f8 -/* ACBBB0 80054A10 27A50068 */ addiu $a1, $sp, 0x68 -/* ACBBB4 80054A14 27A60074 */ addiu $a2, $sp, 0x74 -/* ACBBB8 80054A18 46125100 */ add.s $f4, $f10, $f18 -/* ACBBBC 80054A1C 0C010FCD */ jal func_80043F34 -/* ACBBC0 80054A20 E7A4007C */ swc1 $f4, 0x7c($sp) -/* ACBBC4 80054A24 10400004 */ beqz $v0, .L80054A38 -/* ACBBC8 80054A28 3C068012 */ lui $a2, %hi(D_8011D678) -/* ACBBCC 80054A2C 860A0012 */ lh $t2, 0x12($s0) -/* ACBBD0 80054A30 000A4823 */ negu $t1, $t2 -/* ACBBD4 80054A34 A6090012 */ sh $t1, 0x12($s0) -.L80054A38: -/* ACBBD8 80054A38 24C5D678 */ addiu $a1, $a2, %lo(D_8011D678) -/* ACBBDC 80054A3C 0C01F0FD */ jal OLib_Vec3fToVecSphGeo -/* ACBBE0 80054A40 27A40080 */ addiu $a0, $sp, 0x80 -/* ACBBE4 80054A44 8FAC0028 */ lw $t4, 0x28($sp) -/* ACBBE8 80054A48 87AB0086 */ lh $t3, 0x86($sp) -/* ACBBEC 80054A4C 8FA40030 */ lw $a0, 0x30($sp) -/* ACBBF0 80054A50 858D000E */ lh $t5, 0xe($t4) -/* ACBBF4 80054A54 02002825 */ move $a1, $s0 -/* ACBBF8 80054A58 27A60080 */ addiu $a2, $sp, 0x80 -/* ACBBFC 80054A5C 016D7021 */ addu $t6, $t3, $t5 -/* ACBC00 80054A60 0C010F0A */ jal func_80043C28 -/* ACBC04 80054A64 A7AE0086 */ sh $t6, 0x86($sp) -/* ACBC08 80054A68 3C038012 */ lui $v1, %hi(D_8011D658) # $v1, 0x8012 -/* ACBC0C 80054A6C 2463D658 */ addiu $v1, %lo(D_8011D658) # addiu $v1, $v1, -0x29a8 -/* ACBC10 80054A70 C4660000 */ lwc1 $f6, ($v1) -/* ACBC14 80054A74 846F0004 */ lh $t7, 4($v1) -/* ACBC18 80054A78 84780006 */ lh $t8, 6($v1) -/* ACBC1C 80054A7C E7A60088 */ swc1 $f6, 0x88($sp) -/* ACBC20 80054A80 A7AF008C */ sh $t7, 0x8c($sp) -/* ACBC24 80054A84 86190012 */ lh $t9, 0x12($s0) -/* ACBC28 80054A88 8FAA0028 */ lw $t2, 0x28($sp) -/* ACBC2C 80054A8C 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ACBC30 80054A90 03190019 */ multu $t8, $t9 -/* ACBC34 80054A94 8549000E */ lh $t1, 0xe($t2) -/* ACBC38 80054A98 44814000 */ mtc1 $at, $f8 -/* ACBC3C 80054A9C 00004012 */ mflo $t0 -/* ACBC40 80054AA0 01096021 */ addu $t4, $t0, $t1 -/* ACBC44 80054AA4 A7AC008E */ sh $t4, 0x8e($sp) -/* ACBC48 80054AA8 86060010 */ lh $a2, 0x10($s0) -/* ACBC4C 80054AAC 10000191 */ b .L800550F4 -/* ACBC50 80054AB0 E608000C */ swc1 $f8, 0xc($s0) - -glabel L80054AB4 -/* ACBC54 80054AB4 2630000C */ addiu $s0, $s1, 0xc -/* ACBC58 80054AB8 860B0010 */ lh $t3, 0x10($s0) -/* ACBC5C 80054ABC 3C018014 */ lui $at, %hi(D_8013A334) -/* ACBC60 80054AC0 C424A334 */ lwc1 $f4, %lo(D_8013A334)($at) -/* ACBC64 80054AC4 256DFFFE */ addiu $t5, $t3, -2 -/* ACBC68 80054AC8 448D5000 */ mtc1 $t5, $f10 -/* ACBC6C 80054ACC 3C068012 */ lui $a2, %hi(D_8011D678) -/* ACBC70 80054AD0 24C6D678 */ addiu $a2, %lo(D_8011D678) # addiu $a2, $a2, -0x2988 -/* ACBC74 80054AD4 468054A0 */ cvt.s.w $f18, $f10 -/* ACBC78 80054AD8 C4C20000 */ lwc1 $f2, ($a2) -/* ACBC7C 80054ADC C4C6000C */ lwc1 $f6, 0xc($a2) -/* ACBC80 80054AE0 C4CC0004 */ lwc1 $f12, 4($a2) -/* ACBC84 80054AE4 C4CE0008 */ lwc1 $f14, 8($a2) -/* ACBC88 80054AE8 46023201 */ sub.s $f8, $f6, $f2 -/* ACBC8C 80054AEC 46049002 */ mul.s $f0, $f18, $f4 -/* ACBC90 80054AF0 C4C40010 */ lwc1 $f4, 0x10($a2) -/* ACBC94 80054AF4 27A40080 */ addiu $a0, $sp, 0x80 -/* ACBC98 80054AF8 27A5005C */ addiu $a1, $sp, 0x5c -/* ACBC9C 80054AFC 460C2181 */ sub.s $f6, $f4, $f12 -/* ACBCA0 80054B00 46004282 */ mul.s $f10, $f8, $f0 -/* ACBCA4 80054B04 E7A00058 */ swc1 $f0, 0x58($sp) -/* ACBCA8 80054B08 46003202 */ mul.s $f8, $f6, $f0 -/* ACBCAC 80054B0C 46025480 */ add.s $f18, $f10, $f2 -/* ACBCB0 80054B10 460C4280 */ add.s $f10, $f8, $f12 -/* ACBCB4 80054B14 E7B2005C */ swc1 $f18, 0x5c($sp) -/* ACBCB8 80054B18 C4D20014 */ lwc1 $f18, 0x14($a2) -/* ACBCBC 80054B1C E7AA0060 */ swc1 $f10, 0x60($sp) -/* ACBCC0 80054B20 460E9101 */ sub.s $f4, $f18, $f14 -/* ACBCC4 80054B24 46002182 */ mul.s $f6, $f4, $f0 -/* ACBCC8 80054B28 460E3200 */ add.s $f8, $f6, $f14 -/* ACBCCC 80054B2C 0C01F0FD */ jal OLib_Vec3fToVecSphGeo -/* ACBCD0 80054B30 E7A80064 */ swc1 $f8, 0x64($sp) -/* ACBCD4 80054B34 87AE0086 */ lh $t6, 0x86($sp) -/* ACBCD8 80054B38 860F0012 */ lh $t7, 0x12($s0) -/* ACBCDC 80054B3C 26230094 */ addiu $v1, $s1, 0x94 -/* ACBCE0 80054B40 8479000E */ lh $t9, 0xe($v1) -/* ACBCE4 80054B44 01CF0019 */ multu $t6, $t7 -/* ACBCE8 80054B48 AFA30028 */ sw $v1, 0x28($sp) -/* ACBCEC 80054B4C 8FA40030 */ lw $a0, 0x30($sp) -/* ACBCF0 80054B50 02002825 */ move $a1, $s0 -/* ACBCF4 80054B54 27A60080 */ addiu $a2, $sp, 0x80 -/* ACBCF8 80054B58 0000C012 */ mflo $t8 -/* ACBCFC 80054B5C 03195021 */ addu $t2, $t8, $t9 -/* ACBD00 80054B60 0C010F0A */ jal func_80043C28 -/* ACBD04 80054B64 A7AA0086 */ sh $t2, 0x86($sp) -/* ACBD08 80054B68 3C038012 */ lui $v1, %hi(D_8011D658) -/* ACBD0C 80054B6C 2463D658 */ addiu $v1, %lo(D_8011D658) # addiu $v1, $v1, -0x29a8 -/* ACBD10 80054B70 84640004 */ lh $a0, 4($v1) -/* ACBD14 80054B74 8468000C */ lh $t0, 0xc($v1) -/* ACBD18 80054B78 C4620000 */ lwc1 $f2, ($v1) -/* ACBD1C 80054B7C C46A0008 */ lwc1 $f10, 8($v1) -/* ACBD20 80054B80 01044823 */ subu $t1, $t0, $a0 -/* ACBD24 80054B84 00096400 */ sll $t4, $t1, 0x10 -/* ACBD28 80054B88 000C5C03 */ sra $t3, $t4, 0x10 -/* ACBD2C 80054B8C 448B4000 */ mtc1 $t3, $f8 -/* ACBD30 80054B90 46025481 */ sub.s $f18, $f10, $f2 -/* ACBD34 80054B94 84650006 */ lh $a1, 6($v1) -/* ACBD38 80054B98 846A000E */ lh $t2, 0xe($v1) -/* ACBD3C 80054B9C 468042A0 */ cvt.s.w $f10, $f8 -/* ACBD40 80054BA0 C7A00058 */ lwc1 $f0, 0x58($sp) -/* ACBD44 80054BA4 01454023 */ subu $t0, $t2, $a1 -/* ACBD48 80054BA8 00084C00 */ sll $t1, $t0, 0x10 -/* ACBD4C 80054BAC 46009102 */ mul.s $f4, $f18, $f0 -/* ACBD50 80054BB0 00096403 */ sra $t4, $t1, 0x10 -/* ACBD54 80054BB4 448C4000 */ mtc1 $t4, $f8 -/* ACBD58 80054BB8 46005482 */ mul.s $f18, $f10, $f0 -/* ACBD5C 80054BBC 8FAE0028 */ lw $t6, 0x28($sp) -/* ACBD60 80054BC0 3C018014 */ lui $at, %hi(D_8013A338) -/* ACBD64 80054BC4 46022180 */ add.s $f6, $f4, $f2 -/* ACBD68 80054BC8 468042A0 */ cvt.s.w $f10, $f8 -/* ACBD6C 80054BCC E7A60080 */ swc1 $f6, 0x80($sp) -/* ACBD70 80054BD0 E7A60088 */ swc1 $f6, 0x88($sp) -/* ACBD74 80054BD4 4600910D */ trunc.w.s $f4, $f18 -/* ACBD78 80054BD8 46005482 */ mul.s $f18, $f10, $f0 -/* ACBD7C 80054BDC C42AA338 */ lwc1 $f10, %lo(D_8013A338)($at) -/* ACBD80 80054BE0 44182000 */ mfc1 $t8, $f4 -/* ACBD84 80054BE4 00000000 */ nop -/* ACBD88 80054BE8 0304C821 */ addu $t9, $t8, $a0 -/* ACBD8C 80054BEC 4600910D */ trunc.w.s $f4, $f18 -/* ACBD90 80054BF0 03204025 */ move $t0, $t9 -/* ACBD94 80054BF4 A7B90084 */ sh $t9, 0x84($sp) -/* ACBD98 80054BF8 A7A8008C */ sh $t0, 0x8c($sp) -/* ACBD9C 80054BFC 440F2000 */ mfc1 $t7, $f4 -/* ACBDA0 80054C00 00000000 */ nop -/* ACBDA4 80054C04 01E5C021 */ addu $t8, $t7, $a1 -/* ACBDA8 80054C08 A7B80086 */ sh $t8, 0x86($sp) -/* ACBDAC 80054C0C 86090012 */ lh $t1, 0x12($s0) -/* ACBDB0 80054C10 00186400 */ sll $t4, $t8, 0x10 -/* ACBDB4 80054C14 000C5C03 */ sra $t3, $t4, 0x10 -/* ACBDB8 80054C18 01690019 */ multu $t3, $t1 -/* ACBDBC 80054C1C 85CF000E */ lh $t7, 0xe($t6) -/* ACBDC0 80054C20 00006812 */ mflo $t5 -/* ACBDC4 80054C24 01AFC821 */ addu $t9, $t5, $t7 -/* ACBDC8 80054C28 A7B9008E */ sh $t9, 0x8e($sp) -/* ACBDCC 80054C2C C608000C */ lwc1 $f8, 0xc($s0) -/* ACBDD0 80054C30 86060010 */ lh $a2, 0x10($s0) -/* ACBDD4 80054C34 460A4481 */ sub.s $f18, $f8, $f10 -/* ACBDD8 80054C38 1000012E */ b .L800550F4 -/* ACBDDC 80054C3C E612000C */ swc1 $f18, 0xc($s0) - -glabel L80054C40 -/* ACBDE0 80054C40 2630000C */ addiu $s0, $s1, 0xc -/* ACBDE4 80054C44 860A0010 */ lh $t2, 0x10($s0) -/* ACBDE8 80054C48 3C018014 */ lui $at, %hi(D_8013A33C) -/* ACBDEC 80054C4C C428A33C */ lwc1 $f8, %lo(D_8013A33C)($at) -/* ACBDF0 80054C50 2548FF6C */ addiu $t0, $t2, -0x94 -/* ACBDF4 80054C54 44882000 */ mtc1 $t0, $f4 -/* ACBDF8 80054C58 3C068012 */ lui $a2, %hi(D_8011D678) -/* ACBDFC 80054C5C 24C6D678 */ addiu $a2, %lo(D_8011D678) # addiu $a2, $a2, -0x2988 -/* ACBE00 80054C60 468021A0 */ cvt.s.w $f6, $f4 -/* ACBE04 80054C64 C4C2000C */ lwc1 $f2, 0xc($a2) -/* ACBE08 80054C68 C4CA0018 */ lwc1 $f10, 0x18($a2) -/* ACBE0C 80054C6C C4CC0014 */ lwc1 $f12, 0x14($a2) -/* ACBE10 80054C70 27A40080 */ addiu $a0, $sp, 0x80 -/* ACBE14 80054C74 46025481 */ sub.s $f18, $f10, $f2 -/* ACBE18 80054C78 46083002 */ mul.s $f0, $f6, $f8 -/* ACBE1C 80054C7C C4C80010 */ lwc1 $f8, 0x10($a2) -/* ACBE20 80054C80 C4CA001C */ lwc1 $f10, 0x1c($a2) -/* ACBE24 80054C84 27A5005C */ addiu $a1, $sp, 0x5c -/* ACBE28 80054C88 46104381 */ sub.s $f14, $f8, $f16 -/* ACBE2C 80054C8C 46009102 */ mul.s $f4, $f18, $f0 -/* ACBE30 80054C90 E7A00058 */ swc1 $f0, 0x58($sp) -/* ACBE34 80054C94 460E5481 */ sub.s $f18, $f10, $f14 -/* ACBE38 80054C98 C4CA0020 */ lwc1 $f10, 0x20($a2) -/* ACBE3C 80054C9C 46022180 */ add.s $f6, $f4, $f2 -/* ACBE40 80054CA0 46009102 */ mul.s $f4, $f18, $f0 -/* ACBE44 80054CA4 460C5481 */ sub.s $f18, $f10, $f12 -/* ACBE48 80054CA8 E7A6005C */ swc1 $f6, 0x5c($sp) -/* ACBE4C 80054CAC 460E2180 */ add.s $f6, $f4, $f14 -/* ACBE50 80054CB0 46009102 */ mul.s $f4, $f18, $f0 -/* ACBE54 80054CB4 E7A60060 */ swc1 $f6, 0x60($sp) -/* ACBE58 80054CB8 46103200 */ add.s $f8, $f6, $f16 -/* ACBE5C 80054CBC 460C2180 */ add.s $f6, $f4, $f12 -/* ACBE60 80054CC0 E7A80060 */ swc1 $f8, 0x60($sp) -/* ACBE64 80054CC4 0C01F0FD */ jal OLib_Vec3fToVecSphGeo -/* ACBE68 80054CC8 E7A60064 */ swc1 $f6, 0x64($sp) -/* ACBE6C 80054CCC 87B80086 */ lh $t8, 0x86($sp) -/* ACBE70 80054CD0 860C0012 */ lh $t4, 0x12($s0) -/* ACBE74 80054CD4 26230094 */ addiu $v1, $s1, 0x94 -/* ACBE78 80054CD8 8469000E */ lh $t1, 0xe($v1) -/* ACBE7C 80054CDC 030C0019 */ multu $t8, $t4 -/* ACBE80 80054CE0 AFA30028 */ sw $v1, 0x28($sp) -/* ACBE84 80054CE4 8FA40030 */ lw $a0, 0x30($sp) -/* ACBE88 80054CE8 02002825 */ move $a1, $s0 -/* ACBE8C 80054CEC 27A60080 */ addiu $a2, $sp, 0x80 -/* ACBE90 80054CF0 00005812 */ mflo $t3 -/* ACBE94 80054CF4 01697021 */ addu $t6, $t3, $t1 -/* ACBE98 80054CF8 0C010F0A */ jal func_80043C28 -/* ACBE9C 80054CFC A7AE0086 */ sh $t6, 0x86($sp) -/* ACBEA0 80054D00 3C038012 */ lui $v1, %hi(D_8011D658) -/* ACBEA4 80054D04 2463D658 */ addiu $v1, %lo(D_8011D658) # addiu $v1, $v1, -0x29a8 -/* ACBEA8 80054D08 8464000C */ lh $a0, 0xc($v1) -/* ACBEAC 80054D0C 846D0014 */ lh $t5, 0x14($v1) -/* ACBEB0 80054D10 C4620008 */ lwc1 $f2, 8($v1) -/* ACBEB4 80054D14 C4680010 */ lwc1 $f8, 0x10($v1) -/* ACBEB8 80054D18 01A47823 */ subu $t7, $t5, $a0 -/* ACBEBC 80054D1C 000FCC00 */ sll $t9, $t7, 0x10 -/* ACBEC0 80054D20 00195403 */ sra $t2, $t9, 0x10 -/* ACBEC4 80054D24 448A3000 */ mtc1 $t2, $f6 -/* ACBEC8 80054D28 46024281 */ sub.s $f10, $f8, $f2 -/* ACBECC 80054D2C 8465000E */ lh $a1, 0xe($v1) -/* ACBED0 80054D30 846E0016 */ lh $t6, 0x16($v1) -/* ACBED4 80054D34 46803220 */ cvt.s.w $f8, $f6 -/* ACBED8 80054D38 C7A00058 */ lwc1 $f0, 0x58($sp) -/* ACBEDC 80054D3C 01C56823 */ subu $t5, $t6, $a1 -/* ACBEE0 80054D40 000D7C00 */ sll $t7, $t5, 0x10 -/* ACBEE4 80054D44 46005482 */ mul.s $f18, $f10, $f0 -/* ACBEE8 80054D48 000FCC03 */ sra $t9, $t7, 0x10 -/* ACBEEC 80054D4C 44993000 */ mtc1 $t9, $f6 -/* ACBEF0 80054D50 46004282 */ mul.s $f10, $f8, $f0 -/* ACBEF4 80054D54 8FB80028 */ lw $t8, 0x28($sp) -/* ACBEF8 80054D58 3C018014 */ lui $at, %hi(D_8013A340) -/* ACBEFC 80054D5C 46029100 */ add.s $f4, $f18, $f2 -/* ACBF00 80054D60 46803220 */ cvt.s.w $f8, $f6 -/* ACBF04 80054D64 E7A40080 */ swc1 $f4, 0x80($sp) -/* ACBF08 80054D68 E7A40088 */ swc1 $f4, 0x88($sp) -/* ACBF0C 80054D6C 4600548D */ trunc.w.s $f18, $f10 -/* ACBF10 80054D70 46004282 */ mul.s $f10, $f8, $f0 -/* ACBF14 80054D74 C428A340 */ lwc1 $f8, %lo(D_8013A340)($at) -/* ACBF18 80054D78 440B9000 */ mfc1 $t3, $f18 -/* ACBF1C 80054D7C 00000000 */ nop -/* ACBF20 80054D80 01644821 */ addu $t1, $t3, $a0 -/* ACBF24 80054D84 4600548D */ trunc.w.s $f18, $f10 -/* ACBF28 80054D88 01206825 */ move $t5, $t1 -/* ACBF2C 80054D8C A7A90084 */ sh $t1, 0x84($sp) -/* ACBF30 80054D90 A7AD008C */ sh $t5, 0x8c($sp) -/* ACBF34 80054D94 440C9000 */ mfc1 $t4, $f18 -/* ACBF38 80054D98 00000000 */ nop -/* ACBF3C 80054D9C 01855821 */ addu $t3, $t4, $a1 -/* ACBF40 80054DA0 A7AB0086 */ sh $t3, 0x86($sp) -/* ACBF44 80054DA4 860F0012 */ lh $t7, 0x12($s0) -/* ACBF48 80054DA8 000BCC00 */ sll $t9, $t3, 0x10 -/* ACBF4C 80054DAC 00195403 */ sra $t2, $t9, 0x10 -/* ACBF50 80054DB0 014F0019 */ multu $t2, $t7 -/* ACBF54 80054DB4 870C000E */ lh $t4, 0xe($t8) -/* ACBF58 80054DB8 00004012 */ mflo $t0 -/* ACBF5C 80054DBC 010C4821 */ addu $t1, $t0, $t4 -/* ACBF60 80054DC0 A7A9008E */ sh $t1, 0x8e($sp) -/* ACBF64 80054DC4 C606000C */ lwc1 $f6, 0xc($s0) -/* ACBF68 80054DC8 86060010 */ lh $a2, 0x10($s0) -/* ACBF6C 80054DCC 46083281 */ sub.s $f10, $f6, $f8 -/* ACBF70 80054DD0 100000C8 */ b .L800550F4 -/* ACBF74 80054DD4 E60A000C */ swc1 $f10, 0xc($s0) - -glabel L80054DD8 -/* ACBF78 80054DD8 2630000C */ addiu $s0, $s1, 0xc -/* ACBF7C 80054DDC 860E0010 */ lh $t6, 0x10($s0) -/* ACBF80 80054DE0 3C018014 */ lui $at, %hi(D_8013A344) -/* ACBF84 80054DE4 C426A344 */ lwc1 $f6, %lo(D_8013A344)($at) -/* ACBF88 80054DE8 25CDFF61 */ addiu $t5, $t6, -0x9f -/* ACBF8C 80054DEC 448D9000 */ mtc1 $t5, $f18 -/* ACBF90 80054DF0 3C068012 */ lui $a2, %hi(D_8011D678) -/* ACBF94 80054DF4 24C6D678 */ addiu $a2, %lo(D_8011D678) # addiu $a2, $a2, -0x2988 -/* ACBF98 80054DF8 46809120 */ cvt.s.w $f4, $f18 -/* ACBF9C 80054DFC C4C20018 */ lwc1 $f2, 0x18($a2) -/* ACBFA0 80054E00 C4C80024 */ lwc1 $f8, 0x24($a2) -/* ACBFA4 80054E04 C4CC001C */ lwc1 $f12, 0x1c($a2) -/* ACBFA8 80054E08 C4CE0020 */ lwc1 $f14, 0x20($a2) -/* ACBFAC 80054E0C 46024281 */ sub.s $f10, $f8, $f2 -/* ACBFB0 80054E10 46062002 */ mul.s $f0, $f4, $f6 -/* ACBFB4 80054E14 C4C60028 */ lwc1 $f6, 0x28($a2) -/* ACBFB8 80054E18 27A40080 */ addiu $a0, $sp, 0x80 -/* ACBFBC 80054E1C 27A5005C */ addiu $a1, $sp, 0x5c -/* ACBFC0 80054E20 460C3201 */ sub.s $f8, $f6, $f12 -/* ACBFC4 80054E24 C4C6002C */ lwc1 $f6, 0x2c($a2) -/* ACBFC8 80054E28 46005482 */ mul.s $f18, $f10, $f0 -/* ACBFCC 80054E2C E7A00058 */ swc1 $f0, 0x58($sp) -/* ACBFD0 80054E30 46004282 */ mul.s $f10, $f8, $f0 -/* ACBFD4 80054E34 460E3201 */ sub.s $f8, $f6, $f14 -/* ACBFD8 80054E38 46029100 */ add.s $f4, $f18, $f2 -/* ACBFDC 80054E3C 460C5480 */ add.s $f18, $f10, $f12 -/* ACBFE0 80054E40 46004282 */ mul.s $f10, $f8, $f0 -/* ACBFE4 80054E44 E7A4005C */ swc1 $f4, 0x5c($sp) -/* ACBFE8 80054E48 E7B20060 */ swc1 $f18, 0x60($sp) -/* ACBFEC 80054E4C 46109100 */ add.s $f4, $f18, $f16 -/* ACBFF0 80054E50 460E5480 */ add.s $f18, $f10, $f14 -/* ACBFF4 80054E54 E7A40060 */ swc1 $f4, 0x60($sp) -/* ACBFF8 80054E58 0C01F0FD */ jal OLib_Vec3fToVecSphGeo -/* ACBFFC 80054E5C E7B20064 */ swc1 $f18, 0x64($sp) -/* ACC000 80054E60 87AB0086 */ lh $t3, 0x86($sp) -/* ACC004 80054E64 86190012 */ lh $t9, 0x12($s0) -/* ACC008 80054E68 26230094 */ addiu $v1, $s1, 0x94 -/* ACC00C 80054E6C 846F000E */ lh $t7, 0xe($v1) -/* ACC010 80054E70 01790019 */ multu $t3, $t9 -/* ACC014 80054E74 AFA30028 */ sw $v1, 0x28($sp) -/* ACC018 80054E78 8FA40030 */ lw $a0, 0x30($sp) -/* ACC01C 80054E7C 02002825 */ move $a1, $s0 -/* ACC020 80054E80 27A60080 */ addiu $a2, $sp, 0x80 -/* ACC024 80054E84 00005012 */ mflo $t2 -/* ACC028 80054E88 014FC021 */ addu $t8, $t2, $t7 -/* ACC02C 80054E8C 0C010F0A */ jal func_80043C28 -/* ACC030 80054E90 A7B80086 */ sh $t8, 0x86($sp) -/* ACC034 80054E94 3C038012 */ lui $v1, %hi(D_8011D658) -/* ACC038 80054E98 2463D658 */ addiu $v1, %lo(D_8011D658) # addiu $v1, $v1, -0x29a8 -/* ACC03C 80054E9C 84640014 */ lh $a0, 0x14($v1) -/* ACC040 80054EA0 8468001C */ lh $t0, 0x1c($v1) -/* ACC044 80054EA4 C4620010 */ lwc1 $f2, 0x10($v1) -/* ACC048 80054EA8 C4640018 */ lwc1 $f4, 0x18($v1) -/* ACC04C 80054EAC 01046023 */ subu $t4, $t0, $a0 -/* ACC050 80054EB0 000C4C00 */ sll $t1, $t4, 0x10 -/* ACC054 80054EB4 00097403 */ sra $t6, $t1, 0x10 -/* ACC058 80054EB8 448E9000 */ mtc1 $t6, $f18 -/* ACC05C 80054EBC 46022181 */ sub.s $f6, $f4, $f2 -/* ACC060 80054EC0 84650016 */ lh $a1, 0x16($v1) -/* ACC064 80054EC4 8478001E */ lh $t8, 0x1e($v1) -/* ACC068 80054EC8 46809120 */ cvt.s.w $f4, $f18 -/* ACC06C 80054ECC C7A00058 */ lwc1 $f0, 0x58($sp) -/* ACC070 80054ED0 03054023 */ subu $t0, $t8, $a1 -/* ACC074 80054ED4 00086400 */ sll $t4, $t0, 0x10 -/* ACC078 80054ED8 46003202 */ mul.s $f8, $f6, $f0 -/* ACC07C 80054EDC 000C4C03 */ sra $t1, $t4, 0x10 -/* ACC080 80054EE0 44899000 */ mtc1 $t1, $f18 -/* ACC084 80054EE4 46002182 */ mul.s $f6, $f4, $f0 -/* ACC088 80054EE8 8FAB0028 */ lw $t3, 0x28($sp) -/* ACC08C 80054EEC 3C018014 */ lui $at, %hi(D_8013A348) -/* ACC090 80054EF0 46024280 */ add.s $f10, $f8, $f2 -/* ACC094 80054EF4 46809120 */ cvt.s.w $f4, $f18 -/* ACC098 80054EF8 E7AA0080 */ swc1 $f10, 0x80($sp) -/* ACC09C 80054EFC E7AA0088 */ swc1 $f10, 0x88($sp) -/* ACC0A0 80054F00 4600320D */ trunc.w.s $f8, $f6 -/* ACC0A4 80054F04 46002182 */ mul.s $f6, $f4, $f0 -/* ACC0A8 80054F08 C424A348 */ lwc1 $f4, %lo(D_8013A348)($at) -/* ACC0AC 80054F0C 440A4000 */ mfc1 $t2, $f8 -/* ACC0B0 80054F10 00000000 */ nop -/* ACC0B4 80054F14 01447821 */ addu $t7, $t2, $a0 -/* ACC0B8 80054F18 4600320D */ trunc.w.s $f8, $f6 -/* ACC0BC 80054F1C 01E04025 */ move $t0, $t7 -/* ACC0C0 80054F20 A7AF0084 */ sh $t7, 0x84($sp) -/* ACC0C4 80054F24 A7A8008C */ sh $t0, 0x8c($sp) -/* ACC0C8 80054F28 44194000 */ mfc1 $t9, $f8 -/* ACC0CC 80054F2C 00000000 */ nop -/* ACC0D0 80054F30 03255021 */ addu $t2, $t9, $a1 -/* ACC0D4 80054F34 A7AA0086 */ sh $t2, 0x86($sp) -/* ACC0D8 80054F38 860C0012 */ lh $t4, 0x12($s0) -/* ACC0DC 80054F3C 000A4C00 */ sll $t1, $t2, 0x10 -/* ACC0E0 80054F40 00097403 */ sra $t6, $t1, 0x10 -/* ACC0E4 80054F44 01CC0019 */ multu $t6, $t4 -/* ACC0E8 80054F48 8579000E */ lh $t9, 0xe($t3) -/* ACC0EC 80054F4C 00006812 */ mflo $t5 -/* ACC0F0 80054F50 01B97821 */ addu $t7, $t5, $t9 -/* ACC0F4 80054F54 A7AF008E */ sh $t7, 0x8e($sp) -/* ACC0F8 80054F58 C612000C */ lwc1 $f18, 0xc($s0) -/* ACC0FC 80054F5C 86060010 */ lh $a2, 0x10($s0) -/* ACC100 80054F60 46049180 */ add.s $f6, $f18, $f4 -/* ACC104 80054F64 10000063 */ b .L800550F4 -/* ACC108 80054F68 E606000C */ swc1 $f6, 0xc($s0) - -glabel L80054F6C -/* ACC10C 80054F6C 8638014C */ lh $t8, 0x14c($s1) -/* ACC110 80054F70 240E0004 */ li $t6, 4 -/* ACC114 80054F74 37080400 */ ori $t0, $t8, 0x400 -/* ACC118 80054F78 A628014C */ sh $t0, 0x14c($s1) -/* ACC11C 80054F7C 862A014C */ lh $t2, 0x14c($s1) -/* ACC120 80054F80 31490008 */ andi $t1, $t2, 8 -/* ACC124 80054F84 51200003 */ beql $t1, $zero, .L80054F94 -/* ACC128 80054F88 240C0001 */ li $t4, 1 -/* ACC12C 80054F8C A62E015E */ sh $t6, 0x15e($s1) - -glabel L80054F90 -/* ACC130 80054F90 240C0001 */ li $t4, 1 -.L80054F94: -/* ACC134 80054F94 262B0094 */ addiu $t3, $s1, 0x94 -/* ACC138 80054F98 A3AC0053 */ sb $t4, 0x53($sp) -/* ACC13C 80054F9C AFAB0028 */ sw $t3, 0x28($sp) -/* ACC140 80054FA0 2630000C */ addiu $s0, $s1, 0xc -/* ACC144 80054FA4 10000053 */ b .L800550F4 -/* ACC148 80054FA8 86060010 */ lh $a2, 0x10($s0) - -glabel L80054FAC -/* ACC14C 80054FAC 3C0142A0 */ li $at, 0x42A00000 # 0.000000 -/* ACC150 80054FB0 44814000 */ mtc1 $at, $f8 -/* ACC154 80054FB4 87AD0096 */ lh $t5, 0x96($sp) -/* ACC158 80054FB8 3C018014 */ lui $at, %hi(D_8013A34C) -/* ACC15C 80054FBC C42AA34C */ lwc1 $f10, %lo(D_8013A34C)($at) -/* ACC160 80054FC0 A7A0008C */ sh $zero, 0x8c($sp) -/* ACC164 80054FC4 2630000C */ addiu $s0, $s1, 0xc -/* ACC168 80054FC8 E7A80088 */ swc1 $f8, 0x88($sp) -/* ACC16C 80054FCC A7AD008E */ sh $t5, 0x8e($sp) -/* ACC170 80054FD0 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 -/* ACC174 80054FD4 24193400 */ li $t9, 13312 -/* ACC178 80054FD8 E60A000C */ swc1 $f10, 0xc($s0) -/* ACC17C 80054FDC AC39D3A0 */ sw $t9, %lo(D_8011D3A0)($at) -/* ACC180 80054FE0 86060010 */ lh $a2, 0x10($s0) -/* ACC184 80054FE4 3C018014 */ lui $at, %hi(D_8013A350) -/* ACC188 80054FE8 04C20025 */ bltzl $a2, .L80055080 -/* ACC18C 80054FEC 8639014C */ lh $t9, 0x14c($s1) -/* ACC190 80054FF0 C432A350 */ lwc1 $f18, %lo(D_8013A350)($at) -/* ACC194 80054FF4 C62400D8 */ lwc1 $f4, 0xd8($s1) -/* ACC198 80054FF8 3C0F8016 */ lui $t7, %hi(D_8015BD7C) # $t7, 0x8016 -/* ACC19C 80054FFC 4604903C */ c.lt.s $f18, $f4 -/* ACC1A0 80055000 00000000 */ nop -/* ACC1A4 80055004 4503001E */ bc1tl .L80055080 -/* ACC1A8 80055008 8639014C */ lh $t9, 0x14c($s1) -/* ACC1AC 8005500C 8DEFBD7C */ lw $t7, %lo(D_8015BD7C)($t7) -/* ACC1B0 80055010 3C01FFFF */ lui $at, (0xFFFF7FFF >> 16) # lui $at, 0xffff -/* ACC1B4 80055014 34217FFF */ ori $at, (0xFFFF7FFF & 0xFFFF) # ori $at, $at, 0x7fff -/* ACC1B8 80055018 95E20020 */ lhu $v0, 0x20($t7) -/* ACC1BC 8005501C 0041C027 */ nor $t8, $v0, $at -/* ACC1C0 80055020 13000016 */ beqz $t8, .L8005507C -/* ACC1C4 80055024 2401BFFF */ li $at, -16385 -/* ACC1C8 80055028 00414027 */ nor $t0, $v0, $at -/* ACC1CC 8005502C 11000013 */ beqz $t0, .L8005507C -/* ACC1D0 80055030 2401FFFD */ li $at, -3 -/* ACC1D4 80055034 00415027 */ nor $t2, $v0, $at -/* ACC1D8 80055038 11400010 */ beqz $t2, .L8005507C -/* ACC1DC 8005503C 2401FFFB */ li $at, -5 -/* ACC1E0 80055040 00414827 */ nor $t1, $v0, $at -/* ACC1E4 80055044 1120000D */ beqz $t1, .L8005507C -/* ACC1E8 80055048 2401FFF7 */ li $at, -9 -/* ACC1EC 8005504C 00417027 */ nor $t6, $v0, $at -/* ACC1F0 80055050 11C0000A */ beqz $t6, .L8005507C -/* ACC1F4 80055054 2401FFFE */ li $at, -2 -/* ACC1F8 80055058 00416027 */ nor $t4, $v0, $at -/* ACC1FC 8005505C 11800007 */ beqz $t4, .L8005507C -/* ACC200 80055060 2401FFEF */ li $at, -17 -/* ACC204 80055064 00415827 */ nor $t3, $v0, $at -/* ACC208 80055068 11600004 */ beqz $t3, .L8005507C -/* ACC20C 8005506C 2401DFFF */ li $at, -8193 -/* ACC210 80055070 00416827 */ nor $t5, $v0, $at -/* ACC214 80055074 55A0001C */ bnezl $t5, .L800550E8 -/* ACC218 80055078 240C0001 */ li $t4, 1 -.L8005507C: -/* ACC21C 8005507C 8639014C */ lh $t9, 0x14c($s1) -.L80055080: -/* ACC220 80055080 332F0008 */ andi $t7, $t9, 8 -/* ACC224 80055084 51E00018 */ beql $t7, $zero, .L800550E8 -/* ACC228 80055088 240C0001 */ li $t4, 1 - -.L8005508C: -glabel L8005508C -/* ACC22C 8005508C 8638014C */ lh $t8, 0x14c($s1) -/* ACC230 80055090 86250166 */ lh $a1, 0x166($s1) -/* ACC234 80055094 2630000C */ addiu $s0, $s1, 0xc -/* ACC238 80055098 37080014 */ ori $t0, $t8, 0x14 -/* ACC23C 8005509C A628014C */ sh $t0, 0x14c($s1) -/* ACC240 800550A0 862A014C */ lh $t2, 0x14c($s1) -/* ACC244 800550A4 02202025 */ move $a0, $s1 -/* ACC248 800550A8 24060002 */ li $a2, 2 -/* ACC24C 800550AC 3149FFF7 */ andi $t1, $t2, 0xfff7 -/* ACC250 800550B0 04A10005 */ bgez $a1, .L800550C8 -/* ACC254 800550B4 A629014C */ sh $t1, 0x14c($s1) -/* ACC258 800550B8 0C016952 */ jal Camera_ChangeSetting -/* ACC25C 800550BC 86250154 */ lh $a1, 0x154($s1) -/* ACC260 800550C0 10000005 */ b .L800550D8 -/* ACC264 800550C4 00000000 */ nop -.L800550C8: -/* ACC268 800550C8 0C0169EA */ jal func_8005A7A8 -/* ACC26C 800550CC 02202025 */ move $a0, $s1 -/* ACC270 800550D0 240EFFFF */ li $t6, -1 -/* ACC274 800550D4 A62E0166 */ sh $t6, 0x166($s1) -.L800550D8: -/* ACC278 800550D8 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 -/* ACC27C 800550DC AC20D3A0 */ sw $zero, %lo(D_8011D3A0)($at) -/* ACC280 800550E0 86060010 */ lh $a2, 0x10($s0) -/* ACC284 800550E4 240C0001 */ li $t4, 1 -.L800550E8: -/* ACC288 800550E8 262B0094 */ addiu $t3, $s1, 0x94 -/* ACC28C 800550EC A3AC0053 */ sb $t4, 0x53($sp) -/* ACC290 800550F0 AFAB0028 */ sw $t3, 0x28($sp) -.L800550F4: -/* ACC294 800550F4 24CD0001 */ addiu $t5, $a2, 1 -/* ACC298 800550F8 A60D0010 */ sh $t5, 0x10($s0) -/* ACC29C 800550FC 86060010 */ lh $a2, 0x10($s0) -/* ACC2A0 80055100 24010001 */ li $at, 1 -/* ACC2A4 80055104 14C10003 */ bne $a2, $at, .L80055114 -/* ACC2A8 80055108 2419000A */ li $t9, 10 -/* ACC2AC 8005510C 1000001E */ b .L80055188 -/* ACC2B0 80055110 A639015E */ sh $t9, 0x15e($s1) -.L80055114: -/* ACC2B4 80055114 24020002 */ li $v0, 2 -/* ACC2B8 80055118 14460004 */ bne $v0, $a2, .L8005512C -/* ACC2BC 8005511C 24010094 */ li $at, 148 -/* ACC2C0 80055120 240F0001 */ li $t7, 1 -/* ACC2C4 80055124 10000018 */ b .L80055188 -/* ACC2C8 80055128 A62F015E */ sh $t7, 0x15e($s1) -.L8005512C: -/* ACC2CC 8005512C 54C10004 */ bnel $a2, $at, .L80055140 -/* ACC2D0 80055130 2401009E */ li $at, 158 -/* ACC2D4 80055134 10000014 */ b .L80055188 -/* ACC2D8 80055138 A622015E */ sh $v0, 0x15e($s1) -/* ACC2DC 8005513C 2401009E */ li $at, 158 -.L80055140: -/* ACC2E0 80055140 14C10003 */ bne $a2, $at, .L80055150 -/* ACC2E4 80055144 24180014 */ li $t8, 20 -/* ACC2E8 80055148 1000000F */ b .L80055188 -/* ACC2EC 8005514C A638015E */ sh $t8, 0x15e($s1) -.L80055150: -/* ACC2F0 80055150 2401009F */ li $at, 159 -/* ACC2F4 80055154 14C10003 */ bne $a2, $at, .L80055164 -/* ACC2F8 80055158 24080003 */ li $t0, 3 -/* ACC2FC 8005515C 1000000A */ b .L80055188 -/* ACC300 80055160 A628015E */ sh $t0, 0x15e($s1) -.L80055164: -/* ACC304 80055164 240100A8 */ li $at, 168 -/* ACC308 80055168 14C10003 */ bne $a2, $at, .L80055178 -/* ACC30C 8005516C 240A001E */ li $t2, 30 -/* ACC310 80055170 10000005 */ b .L80055188 -/* ACC314 80055174 A62A015E */ sh $t2, 0x15e($s1) -.L80055178: -/* ACC318 80055178 240100E4 */ li $at, 228 -/* ACC31C 8005517C 14C10002 */ bne $a2, $at, .L80055188 -/* ACC320 80055180 24090004 */ li $t1, 4 -/* ACC324 80055184 A629015E */ sh $t1, 0x15e($s1) -.L80055188: -/* ACC328 80055188 93AE0053 */ lbu $t6, 0x53($sp) -/* ACC32C 8005518C 55C00020 */ bnezl $t6, .L80055210 -/* ACC330 80055190 8FA40030 */ lw $a0, 0x30($sp) -/* ACC334 80055194 C7AC0088 */ lwc1 $f12, 0x88($sp) -/* ACC338 80055198 C7AE0090 */ lwc1 $f14, 0x90($sp) -/* ACC33C 8005519C 8E06000C */ lw $a2, 0xc($s0) -/* ACC340 800551A0 0C010E27 */ jal func_8004389C -/* ACC344 800551A4 3C074000 */ lui $a3, 0x4000 -/* ACC348 800551A8 E7A00088 */ swc1 $f0, 0x88($sp) -/* ACC34C 800551AC 8E06000C */ lw $a2, 0xc($s0) -/* ACC350 800551B0 87A4008C */ lh $a0, 0x8c($sp) -/* ACC354 800551B4 87A50094 */ lh $a1, 0x94($sp) -/* ACC358 800551B8 0C010E47 */ jal func_8004391C -/* ACC35C 800551BC 2407000A */ li $a3, 10 -/* ACC360 800551C0 A7A2008C */ sh $v0, 0x8c($sp) -/* ACC364 800551C4 8E06000C */ lw $a2, 0xc($s0) -/* ACC368 800551C8 87A4008E */ lh $a0, 0x8e($sp) -/* ACC36C 800551CC 87A50096 */ lh $a1, 0x96($sp) -/* ACC370 800551D0 0C010E47 */ jal func_8004391C -/* ACC374 800551D4 2407000A */ li $a3, 10 -/* ACC378 800551D8 26300074 */ addiu $s0, $s1, 0x74 -/* ACC37C 800551DC A7A2008E */ sh $v0, 0x8e($sp) -/* ACC380 800551E0 02002025 */ move $a0, $s0 -/* ACC384 800551E4 8FA50030 */ lw $a1, 0x30($sp) -/* ACC388 800551E8 0C010F0A */ jal func_80043C28 -/* ACC38C 800551EC 27A60088 */ addiu $a2, $sp, 0x88 -/* ACC390 800551F0 8FAC0034 */ lw $t4, 0x34($sp) -/* ACC394 800551F4 8E0D0000 */ lw $t5, ($s0) -/* ACC398 800551F8 AD8D0000 */ sw $t5, ($t4) -/* ACC39C 800551FC 8E0B0004 */ lw $t3, 4($s0) -/* ACC3A0 80055200 AD8B0004 */ sw $t3, 4($t4) -/* ACC3A4 80055204 8E0D0008 */ lw $t5, 8($s0) -/* ACC3A8 80055208 AD8D0008 */ sw $t5, 8($t4) -/* ACC3AC 8005520C 8FA40030 */ lw $a0, 0x30($sp) -.L80055210: -/* ACC3B0 80055210 0C01EFE4 */ jal OLib_Vec3fDist -/* ACC3B4 80055214 8FA50034 */ lw $a1, 0x34($sp) -/* ACC3B8 80055218 E62000DC */ swc1 $f0, 0xdc($s1) -/* ACC3BC 8005521C 3C018014 */ lui $at, %hi(D_8013A354) -/* ACC3C0 80055220 C426A354 */ lwc1 $f6, %lo(D_8013A354)($at) -/* ACC3C4 80055224 C6280050 */ lwc1 $f8, 0x50($s1) -/* ACC3C8 80055228 C6240054 */ lwc1 $f4, 0x54($s1) -/* ACC3CC 8005522C E6260100 */ swc1 $f6, 0x100($s1) -/* ACC3D0 80055230 8FB90028 */ lw $t9, 0x28($sp) -/* ACC3D4 80055234 24020001 */ li $v0, 1 -/* ACC3D8 80055238 C72A0000 */ lwc1 $f10, ($t9) -/* ACC3DC 8005523C 460A4481 */ sub.s $f18, $f8, $f10 -/* ACC3E0 80055240 C62A0058 */ lwc1 $f10, 0x58($s1) -/* ACC3E4 80055244 E63200E4 */ swc1 $f18, 0xe4($s1) -/* ACC3E8 80055248 8FAF0028 */ lw $t7, 0x28($sp) -/* ACC3EC 8005524C C5E60004 */ lwc1 $f6, 4($t7) -/* ACC3F0 80055250 46062201 */ sub.s $f8, $f4, $f6 -/* ACC3F4 80055254 E62800E8 */ swc1 $f8, 0xe8($s1) -/* ACC3F8 80055258 8FB80028 */ lw $t8, 0x28($sp) -/* ACC3FC 8005525C C7120008 */ lwc1 $f18, 8($t8) -/* ACC400 80055260 46125101 */ sub.s $f4, $f10, $f18 -/* ACC404 80055264 E62400EC */ swc1 $f4, 0xec($s1) -/* ACC408 80055268 8FBF001C */ lw $ra, 0x1c($sp) -/* ACC40C 8005526C 8FB10018 */ lw $s1, 0x18($sp) -/* ACC410 80055270 8FB00014 */ lw $s0, 0x14($sp) -/* ACC414 80055274 03E00008 */ jr $ra -/* ACC418 80055278 27BD00A8 */ addiu $sp, $sp, 0xa8 diff --git a/asm/non_matchings/code/z_camera/Camera_Demo5.s b/asm/non_matchings/code/z_camera/Camera_Demo5.s deleted file mode 100644 index 280c45474d..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Demo5.s +++ /dev/null @@ -1,705 +0,0 @@ -.rdata -glabel D_80139690 - .asciz "\x1b[43;30mcamera: warning: attention: target is not valid, stop!\n\x1b[m" - .balign 4 - -glabel D_801396D4 - .asciz "\x1b[43;30mcamera: attention demo: this door is dummy door!\n\x1b[m" - .balign 4 - -.late_rodata -glabel D_8013A358 - .float 0.6 - -glabel D_8013A35C - .float 0.005 - -glabel D_8013A360 - .float -0.2 - -glabel D_8013A364 - .float 0.004 - -glabel D_8013A368 - .float 0.005 - -.text -glabel Camera_Demo5 -/* ACC43C 8005529C 27BDFF68 */ addiu $sp, $sp, -0x98 -/* ACC440 800552A0 AFB00018 */ sw $s0, 0x18($sp) -/* ACC444 800552A4 00808025 */ move $s0, $a0 -/* ACC448 800552A8 AFBF001C */ sw $ra, 0x1c($sp) -/* ACC44C 800552AC 8E050090 */ lw $a1, 0x90($s0) -/* ACC450 800552B0 0C00BBB9 */ jal func_8002EEE4 -/* ACC454 800552B4 27A40064 */ addiu $a0, $sp, 0x64 -/* ACC458 800552B8 8E0E0090 */ lw $t6, 0x90($s0) -/* ACC45C 800552BC 240F3200 */ li $t7, 12800 -/* ACC460 800552C0 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 -/* ACC464 800552C4 AC2FD3A0 */ sw $t7, %lo(D_8011D3A0)($at) -/* ACC468 800552C8 AFAE004C */ sw $t6, 0x4c($sp) -/* ACC46C 800552CC 8E0500A8 */ lw $a1, 0xa8($s0) -/* ACC470 800552D0 10A00005 */ beqz $a1, .L800552E8 -/* ACC474 800552D4 00000000 */ nop -/* ACC478 800552D8 8CB80130 */ lw $t8, 0x130($a1) -/* ACC47C 800552DC 260400AC */ addiu $a0, $s0, 0xac -/* ACC480 800552E0 17000008 */ bnez $t8, .L80055304 -/* ACC484 800552E4 00000000 */ nop -.L800552E8: -/* ACC488 800552E8 14A00003 */ bnez $a1, .L800552F8 -/* ACC48C 800552EC 3C048014 */ lui $a0, %hi(D_80139690) # $a0, 0x8014 -/* ACC490 800552F0 0C00084C */ jal osSyncPrintf -/* ACC494 800552F4 24849690 */ addiu $a0, %lo(D_80139690) # addiu $a0, $a0, -0x6970 -.L800552F8: -/* ACC498 800552F8 AE0000A8 */ sw $zero, 0xa8($s0) -/* ACC49C 800552FC 10000259 */ b .L80055C64 -/* ACC4A0 80055300 24020001 */ li $v0, 1 -.L80055304: -/* ACC4A4 80055304 0C00BBB9 */ jal func_8002EEE4 -/* ACC4A8 80055308 AFA40020 */ sw $a0, 0x20($sp) -/* ACC4AC 8005530C 27A40088 */ addiu $a0, $sp, 0x88 -/* ACC4B0 80055310 8FA50020 */ lw $a1, 0x20($sp) -/* ACC4B4 80055314 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* ACC4B8 80055318 26060094 */ addiu $a2, $s0, 0x94 -/* ACC4BC 8005531C 8E1900A8 */ lw $t9, 0xa8($s0) -/* ACC4C0 80055320 3C018012 */ lui $at, %hi(D_8011D3AC) # $at, 0x8012 -/* ACC4C4 80055324 27A6007E */ addiu $a2, $sp, 0x7e -/* ACC4C8 80055328 93280002 */ lbu $t0, 2($t9) -/* ACC4CC 8005532C 27A7007C */ addiu $a3, $sp, 0x7c -/* ACC4D0 80055330 AC28D3AC */ sw $t0, %lo(D_8011D3AC)($at) -/* ACC4D4 80055334 8E0500A8 */ lw $a1, 0xa8($s0) -/* ACC4D8 80055338 0C00BCDD */ jal func_8002F374 -/* ACC4DC 8005533C 8E04008C */ lw $a0, 0x8c($s0) -/* ACC4E0 80055340 8FA40020 */ lw $a0, 0x20($sp) -/* ACC4E4 80055344 0C01EFE4 */ jal OLib_Vec3fDist -/* ACC4E8 80055348 2605005C */ addiu $a1, $s0, 0x5c -/* ACC4EC 8005534C E7A00094 */ swc1 $f0, 0x94($sp) -/* ACC4F0 80055350 27A40080 */ addiu $a0, $sp, 0x80 -/* ACC4F4 80055354 27A50064 */ addiu $a1, $sp, 0x64 -/* ACC4F8 80055358 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* ACC4FC 8005535C 26060074 */ addiu $a2, $s0, 0x74 -/* ACC500 80055360 87A90086 */ lh $t1, 0x86($sp) -/* ACC504 80055364 87AA008E */ lh $t2, 0x8e($sp) -/* ACC508 80055368 24010002 */ li $at, 2 -/* ACC50C 8005536C C7A40080 */ lwc1 $f4, 0x80($sp) -/* ACC510 80055370 012A5823 */ subu $t3, $t1, $t2 -/* ACC514 80055374 A7AB004A */ sh $t3, 0x4a($sp) -/* ACC518 80055378 8E0C00A8 */ lw $t4, 0xa8($s0) -/* ACC51C 8005537C C7A00088 */ lwc1 $f0, 0x88($sp) -/* ACC520 80055380 91830002 */ lbu $v1, 2($t4) -/* ACC524 80055384 14610040 */ bne $v1, $at, .L80055488 -/* ACC528 80055388 3C0141F0 */ li $at, 0x41F00000 # 0.000000 -/* ACC52C 8005538C 44811000 */ mtc1 $at, $f2 -/* ACC530 80055390 00000000 */ nop -/* ACC534 80055394 4604103C */ c.lt.s $f2, $f4 -/* ACC538 80055398 00000000 */ nop -/* ACC53C 8005539C 45000021 */ bc1f .L80055424 -/* ACC540 800553A0 00000000 */ nop -/* ACC544 800553A4 860D0160 */ lh $t5, 0x160($s0) -/* ACC548 800553A8 3C018012 */ lui $at, %hi(D_8011D6D8) # $at, 0x8012 -/* ACC54C 800553AC 25AEFFFF */ addiu $t6, $t5, -1 -/* ACC550 800553B0 0C03F66B */ jal Math_Rand_ZeroOne -/* ACC554 800553B4 A42ED6D8 */ sh $t6, %lo(D_8011D6D8)($at) -/* ACC558 800553B8 3C014120 */ li $at, 0x41200000 # 0.000000 -/* ACC55C 800553BC 44813000 */ mtc1 $at, $f6 -/* ACC560 800553C0 3C028012 */ lui $v0, %hi(D_8011D6AC) # $v0, 0x8012 -/* ACC564 800553C4 2442D6AC */ addiu $v0, %lo(D_8011D6AC) # addiu $v0, $v0, -0x2954 -/* ACC568 800553C8 46060202 */ mul.s $f8, $f0, $f6 -/* ACC56C 800553CC 0C03F66B */ jal Math_Rand_ZeroOne -/* ACC570 800553D0 E4480040 */ swc1 $f8, 0x40($v0) -/* ACC574 800553D4 3C014120 */ li $at, 0x41200000 # 0.000000 -/* ACC578 800553D8 44815000 */ mtc1 $at, $f10 -/* ACC57C 800553DC 3C028012 */ lui $v0, %hi(D_8011D6AC) -/* ACC580 800553E0 2442D6AC */ addiu $v0, %lo(D_8011D6AC) # addiu $v0, $v0, -0x2954 -/* ACC584 800553E4 460A0402 */ mul.s $f16, $f0, $f10 -/* ACC588 800553E8 240F0003 */ li $t7, 3 -/* ACC58C 800553EC 25E8FFFF */ addiu $t0, $t7, -1 -/* ACC590 800553F0 E4500044 */ swc1 $f16, 0x44($v0) -/* ACC594 800553F4 86180162 */ lh $t8, 0x162($s0) -/* ACC598 800553F8 AE020004 */ sw $v0, 4($s0) -/* ACC59C 800553FC AE0F0000 */ sw $t7, ($s0) -/* ACC5A0 80055400 53000004 */ beql $t8, $zero, .L80055414 -/* ACC5A4 80055404 86090160 */ lh $t1, 0x160($s0) -/* ACC5A8 80055408 100001C2 */ b .L80055B14 -/* ACC5AC 8005540C AE080000 */ sw $t0, ($s0) -/* ACC5B0 80055410 86090160 */ lh $t1, 0x160($s0) -.L80055414: -/* ACC5B4 80055414 844A0054 */ lh $t2, 0x54($v0) -/* ACC5B8 80055418 012A5821 */ addu $t3, $t1, $t2 -/* ACC5BC 8005541C 100001BD */ b .L80055B14 -/* ACC5C0 80055420 A60B0160 */ sh $t3, 0x160($s0) -.L80055424: -/* ACC5C4 80055424 0C03F66B */ jal Math_Rand_ZeroOne -/* ACC5C8 80055428 00000000 */ nop -/* ACC5CC 8005542C 3C014120 */ li $at, 0x41200000 # 0.000000 -/* ACC5D0 80055430 44819000 */ mtc1 $at, $f18 -/* ACC5D4 80055434 3C028012 */ lui $v0, %hi(D_8011D724) -/* ACC5D8 80055438 2442D724 */ addiu $v0, %lo(D_8011D724) # addiu $v0, $v0, -0x28dc -/* ACC5DC 8005543C 46120102 */ mul.s $f4, $f0, $f18 -/* ACC5E0 80055440 240E0003 */ li $t6, 3 -/* ACC5E4 80055444 25D9FFFF */ addiu $t9, $t6, -1 -/* ACC5E8 80055448 E4440044 */ swc1 $f4, 0x44($v0) -/* ACC5EC 8005544C 860C0160 */ lh $t4, 0x160($s0) -/* ACC5F0 80055450 258DFFFF */ addiu $t5, $t4, -1 -/* ACC5F4 80055454 A44D002C */ sh $t5, 0x2c($v0) -/* ACC5F8 80055458 860F0162 */ lh $t7, 0x162($s0) -/* ACC5FC 8005545C AE020004 */ sw $v0, 4($s0) -/* ACC600 80055460 AE0E0000 */ sw $t6, ($s0) -/* ACC604 80055464 51E00004 */ beql $t7, $zero, .L80055478 -/* ACC608 80055468 86080160 */ lh $t0, 0x160($s0) -/* ACC60C 8005546C 100001A9 */ b .L80055B14 -/* ACC610 80055470 AE190000 */ sw $t9, ($s0) -/* ACC614 80055474 86080160 */ lh $t0, 0x160($s0) -.L80055478: -/* ACC618 80055478 84490054 */ lh $t1, 0x54($v0) -/* ACC61C 8005547C 01095021 */ addu $t2, $t0, $t1 -/* ACC620 80055480 100001A4 */ b .L80055B14 -/* ACC624 80055484 A60A0160 */ sh $t2, 0x160($s0) -.L80055488: -/* ACC628 80055488 3C0141F0 */ li $at, 0x41F00000 # 0.000000 -/* ACC62C 8005548C 44811000 */ mtc1 $at, $f2 -/* ACC630 80055490 3C028012 */ lui $v0, %hi(D_8011D79C) -/* ACC634 80055494 2442D79C */ addiu $v0, %lo(D_8011D79C) # addiu $v0, $v0, -0x2864 -/* ACC638 80055498 4602003C */ c.lt.s $f0, $f2 -/* ACC63C 8005549C 240B0004 */ li $t3, 4 -/* ACC640 800554A0 C7AC0094 */ lwc1 $f12, 0x94($sp) -/* ACC644 800554A4 3C014396 */ li $at, 0x43960000 # 0.000000 -/* ACC648 800554A8 4502002E */ bc1fl .L80055564 -/* ACC64C 800554AC 44818000 */ mtc1 $at, $f16 -/* ACC650 800554B0 AE020004 */ sw $v0, 4($s0) -/* ACC654 800554B4 AE0B0000 */ sw $t3, ($s0) -/* ACC658 800554B8 87AC007E */ lh $t4, 0x7e($sp) -/* ACC65C 800554BC 240D0041 */ li $t5, 65 -/* ACC660 800554C0 29810015 */ slti $at, $t4, 0x15 -/* ACC664 800554C4 14200007 */ bnez $at, .L800554E4 -/* ACC668 800554C8 2981012C */ slti $at, $t4, 0x12c -/* ACC66C 800554CC 10200005 */ beqz $at, .L800554E4 -/* ACC670 800554D0 87A3007C */ lh $v1, 0x7c($sp) -/* ACC674 800554D4 28610029 */ slti $at, $v1, 0x29 -/* ACC678 800554D8 14200002 */ bnez $at, .L800554E4 -/* ACC67C 800554DC 286100C8 */ slti $at, $v1, 0xc8 -/* ACC680 800554E0 1420000E */ bnez $at, .L8005551C -.L800554E4: -/* ACC684 800554E4 3C01C1F0 */ li $at, 0xC1F00000 # 0.000000 -/* ACC688 800554E8 44813000 */ mtc1 $at, $f6 -/* ACC68C 800554EC 3C014120 */ li $at, 0x41200000 # 0.000000 -/* ACC690 800554F0 44801000 */ mtc1 $zero, $f2 -/* ACC694 800554F4 44814000 */ mtc1 $at, $f8 -/* ACC698 800554F8 3C01C248 */ li $at, 0xC2480000 # 0.000000 -/* ACC69C 800554FC 44815000 */ mtc1 $at, $f10 -/* ACC6A0 80055500 A04D0000 */ sb $t5, ($v0) -/* ACC6A4 80055504 E4460014 */ swc1 $f6, 0x14($v0) -/* ACC6A8 80055508 E4420010 */ swc1 $f2, 0x10($v0) -/* ACC6AC 8005550C E4420018 */ swc1 $f2, 0x18($v0) -/* ACC6B0 80055510 E4420020 */ swc1 $f2, 0x20($v0) -/* ACC6B4 80055514 E448001C */ swc1 $f8, 0x1c($v0) -/* ACC6B8 80055518 E44A0024 */ swc1 $f10, 0x24($v0) -.L8005551C: -/* ACC6BC 8005551C 860E0160 */ lh $t6, 0x160($s0) -/* ACC6C0 80055520 25CFFFFF */ addiu $t7, $t6, -1 -/* ACC6C4 80055524 A44F002C */ sh $t7, 0x2c($v0) -/* ACC6C8 80055528 86180162 */ lh $t8, 0x162($s0) -/* ACC6CC 8005552C 53000006 */ beql $t8, $zero, .L80055548 -/* ACC6D0 80055530 86090160 */ lh $t1, 0x160($s0) -/* ACC6D4 80055534 8E190000 */ lw $t9, ($s0) -/* ACC6D8 80055538 2728FFFE */ addiu $t0, $t9, -2 -/* ACC6DC 8005553C 10000175 */ b .L80055B14 -/* ACC6E0 80055540 AE080000 */ sw $t0, ($s0) -/* ACC6E4 80055544 86090160 */ lh $t1, 0x160($s0) -.L80055548: -/* ACC6E8 80055548 844A0054 */ lh $t2, 0x54($v0) -/* ACC6EC 8005554C 844C007C */ lh $t4, 0x7c($v0) -/* ACC6F0 80055550 012A5821 */ addu $t3, $t1, $t2 -/* ACC6F4 80055554 016C6821 */ addu $t5, $t3, $t4 -/* ACC6F8 80055558 1000016E */ b .L80055B14 -/* ACC6FC 8005555C A60D0160 */ sh $t5, 0x160($s0) -/* ACC700 80055560 44818000 */ mtc1 $at, $f16 -.L80055564: -/* ACC704 80055564 C7B20080 */ lwc1 $f18, 0x80($sp) -/* ACC708 80055568 3C01442F */ li $at, 0x442F0000 # 0.000000 -/* ACC70C 8005556C 4610603C */ c.lt.s $f12, $f16 -/* ACC710 80055570 00000000 */ nop -/* ACC714 80055574 45020017 */ bc1fl .L800555D4 -/* ACC718 80055578 44812000 */ mtc1 $at, $f4 -/* ACC71C 8005557C 4602903C */ c.lt.s $f18, $f2 -/* ACC720 80055580 00000000 */ nop -/* ACC724 80055584 45020013 */ bc1fl .L800555D4 -/* ACC728 80055588 44812000 */ mtc1 $at, $f4 -/* ACC72C 8005558C 860E0160 */ lh $t6, 0x160($s0) -/* ACC730 80055590 3C028012 */ lui $v0, %hi(D_8011D83C) -/* ACC734 80055594 2442D83C */ addiu $v0, %lo(D_8011D83C) # addiu $v0, $v0, -0x27c4 -/* ACC738 80055598 A44E0004 */ sh $t6, 4($v0) -/* ACC73C 8005559C 86180162 */ lh $t8, 0x162($s0) -/* ACC740 800555A0 240F0002 */ li $t7, 2 -/* ACC744 800555A4 AE020004 */ sw $v0, 4($s0) -/* ACC748 800555A8 13000004 */ beqz $t8, .L800555BC -/* ACC74C 800555AC AE0F0000 */ sw $t7, ($s0) -/* ACC750 800555B0 25E8FFFF */ addiu $t0, $t7, -1 -/* ACC754 800555B4 10000157 */ b .L80055B14 -/* ACC758 800555B8 AE080000 */ sw $t0, ($s0) -.L800555BC: -/* ACC75C 800555BC 86090160 */ lh $t1, 0x160($s0) -/* ACC760 800555C0 844A002C */ lh $t2, 0x2c($v0) -/* ACC764 800555C4 012A5821 */ addu $t3, $t1, $t2 -/* ACC768 800555C8 10000152 */ b .L80055B14 -/* ACC76C 800555CC A60B0160 */ sh $t3, 0x160($s0) -/* ACC770 800555D0 44812000 */ mtc1 $at, $f4 -.L800555D4: -/* ACC774 800555D4 87A5004A */ lh $a1, 0x4a($sp) -/* ACC778 800555D8 4604603C */ c.lt.s $f12, $f4 -/* ACC77C 800555DC 00000000 */ nop -/* ACC780 800555E0 45020064 */ bc1fl .L80055774 -/* ACC784 800555E4 2401000A */ li $at, 10 -/* ACC788 800555E8 04A00003 */ bltz $a1, .L800555F8 -/* ACC78C 800555EC 00051023 */ negu $v0, $a1 -/* ACC790 800555F0 10000001 */ b .L800555F8 -/* ACC794 800555F4 00A01025 */ move $v0, $a1 -.L800555F8: -/* ACC798 800555F8 284136B0 */ slti $at, $v0, 0x36b0 -/* ACC79C 800555FC 5020005D */ beql $at, $zero, .L80055774 -/* ACC7A0 80055600 2401000A */ li $at, 10 -/* ACC7A4 80055604 87A3007E */ lh $v1, 0x7e($sp) -/* ACC7A8 80055608 28610015 */ slti $at, $v1, 0x15 -/* ACC7AC 8005560C 1420001D */ bnez $at, .L80055684 -/* ACC7B0 80055610 2861012C */ slti $at, $v1, 0x12c -/* ACC7B4 80055614 1020001B */ beqz $at, .L80055684 -/* ACC7B8 80055618 87A3007C */ lh $v1, 0x7c($sp) -/* ACC7BC 8005561C 28610029 */ slti $at, $v1, 0x29 -/* ACC7C0 80055620 14200018 */ bnez $at, .L80055684 -/* ACC7C4 80055624 286100C8 */ slti $at, $v1, 0xc8 -/* ACC7C8 80055628 10200016 */ beqz $at, .L80055684 -/* ACC7CC 8005562C C7A60080 */ lwc1 $f6, 0x80($sp) -/* ACC7D0 80055630 4606103C */ c.lt.s $f2, $f6 -/* ACC7D4 80055634 00000000 */ nop -/* ACC7D8 80055638 45000012 */ bc1f .L80055684 -/* ACC7DC 8005563C 00000000 */ nop -/* ACC7E0 80055640 860C0160 */ lh $t4, 0x160($s0) -/* ACC7E4 80055644 3C028012 */ lui $v0, %hi(D_8011D88C) # $v0, 0x8012 -/* ACC7E8 80055648 2442D88C */ addiu $v0, %lo(D_8011D88C) # addiu $v0, $v0, -0x2774 -/* ACC7EC 8005564C A44C0004 */ sh $t4, 4($v0) -/* ACC7F0 80055650 860E0162 */ lh $t6, 0x162($s0) -/* ACC7F4 80055654 240D0002 */ li $t5, 2 -/* ACC7F8 80055658 AE020004 */ sw $v0, 4($s0) -/* ACC7FC 8005565C 11C00004 */ beqz $t6, .L80055670 -/* ACC800 80055660 AE0D0000 */ sw $t5, ($s0) -/* ACC804 80055664 25B8FFFF */ addiu $t8, $t5, -1 -/* ACC808 80055668 1000012A */ b .L80055B14 -/* ACC80C 8005566C AE180000 */ sw $t8, ($s0) -.L80055670: -/* ACC810 80055670 86190160 */ lh $t9, 0x160($s0) -/* ACC814 80055674 8448002C */ lh $t0, 0x2c($v0) -/* ACC818 80055678 03284821 */ addu $t1, $t9, $t0 -/* ACC81C 8005567C 10000125 */ b .L80055B14 -/* ACC820 80055680 A6090160 */ sh $t1, 0x160($s0) -.L80055684: -/* ACC824 80055684 3C018014 */ lui $at, %hi(D_8013A358) -/* ACC828 80055688 C428A358 */ lwc1 $f8, %lo(D_8013A358)($at) -/* ACC82C 8005568C 3C014248 */ li $at, 0x42480000 # 0.000000 -/* ACC830 80055690 44818000 */ mtc1 $at, $f16 -/* ACC834 80055694 46086282 */ mul.s $f10, $f12, $f8 -/* ACC838 80055698 3C028012 */ lui $v0, %hi(D_8011D8DC) # $v0, 0x8012 -/* ACC83C 8005569C 46106480 */ add.s $f18, $f12, $f16 -/* ACC840 800556A0 2442D8DC */ addiu $v0, %lo(D_8011D8DC) # addiu $v0, $v0, -0x2724 -/* ACC844 800556A4 E4520024 */ swc1 $f18, 0x24($v0) -/* ACC848 800556A8 0C03F66B */ jal Math_Rand_ZeroOne -/* ACC84C 800556AC E44A0018 */ swc1 $f10, 0x18($v0) -/* ACC850 800556B0 3C014120 */ li $at, 0x41200000 # 0.000000 -/* ACC854 800556B4 44812000 */ mtc1 $at, $f4 -/* ACC858 800556B8 87AA0086 */ lh $t2, 0x86($sp) -/* ACC85C 800556BC 87AB008E */ lh $t3, 0x8e($sp) -/* ACC860 800556C0 46040182 */ mul.s $f6, $f0, $f4 -/* ACC864 800556C4 3C028012 */ lui $v0, %hi(D_8011D8DC) # $v0, 0x8012 -/* ACC868 800556C8 014B6023 */ subu $t4, $t2, $t3 -/* ACC86C 800556CC 000C6C00 */ sll $t5, $t4, 0x10 -/* ACC870 800556D0 2442D8DC */ addiu $v0, %lo(D_8011D8DC) # addiu $v0, $v0, -0x2724 -/* ACC874 800556D4 000D7403 */ sra $t6, $t5, 0x10 -/* ACC878 800556D8 19C0000A */ blez $t6, .L80055704 -/* ACC87C 800556DC E446001C */ swc1 $f6, 0x1c($v0) -/* ACC880 800556E0 C4480010 */ lwc1 $f8, 0x10($v0) -/* ACC884 800556E4 C450001C */ lwc1 $f16, 0x1c($v0) -/* ACC888 800556E8 844F0006 */ lh $t7, 6($v0) -/* ACC88C 800556EC 46004287 */ neg.s $f10, $f8 -/* ACC890 800556F0 46008487 */ neg.s $f18, $f16 -/* ACC894 800556F4 000FC023 */ negu $t8, $t7 -/* ACC898 800556F8 E44A0010 */ swc1 $f10, 0x10($v0) -/* ACC89C 800556FC E452001C */ swc1 $f18, 0x1c($v0) -/* ACC8A0 80055700 A4580006 */ sh $t8, 6($v0) -.L80055704: -/* ACC8A4 80055704 86190160 */ lh $t9, 0x160($s0) -/* ACC8A8 80055708 3C018014 */ lui $at, %hi(D_8013A35C) -/* ACC8AC 8005570C C7A40094 */ lwc1 $f4, 0x94($sp) -/* ACC8B0 80055710 A4590004 */ sh $t9, 4($v0) -/* ACC8B4 80055714 C426A35C */ lwc1 $f6, %lo(D_8013A35C)($at) -/* ACC8B8 80055718 240D0003 */ li $t5, 3 -/* ACC8BC 8005571C 25B8FFFE */ addiu $t8, $t5, -2 -/* ACC8C0 80055720 46062202 */ mul.s $f8, $f4, $f6 -/* ACC8C4 80055724 4600428D */ trunc.w.s $f10, $f8 -/* ACC8C8 80055728 440B5000 */ mfc1 $t3, $f10 -/* ACC8CC 8005572C 00000000 */ nop -/* ACC8D0 80055730 256C0008 */ addiu $t4, $t3, 8 -/* ACC8D4 80055734 A44C002C */ sh $t4, 0x2c($v0) -/* ACC8D8 80055738 860E0162 */ lh $t6, 0x162($s0) -/* ACC8DC 8005573C AE020004 */ sw $v0, 4($s0) -/* ACC8E0 80055740 AE0D0000 */ sw $t5, ($s0) -/* ACC8E4 80055744 51C00004 */ beql $t6, $zero, .L80055758 -/* ACC8E8 80055748 86190160 */ lh $t9, 0x160($s0) -/* ACC8EC 8005574C 100000F1 */ b .L80055B14 -/* ACC8F0 80055750 AE180000 */ sw $t8, ($s0) -/* ACC8F4 80055754 86190160 */ lh $t9, 0x160($s0) -.L80055758: -/* ACC8F8 80055758 8448002C */ lh $t0, 0x2c($v0) -/* ACC8FC 8005575C 844A0054 */ lh $t2, 0x54($v0) -/* ACC900 80055760 03284821 */ addu $t1, $t9, $t0 -/* ACC904 80055764 012A5821 */ addu $t3, $t1, $t2 -/* ACC908 80055768 100000EA */ b .L80055B14 -/* ACC90C 8005576C A60B0160 */ sh $t3, 0x160($s0) -/* ACC910 80055770 2401000A */ li $at, 10 -.L80055774: -/* ACC914 80055774 14610090 */ bne $v1, $at, .L800559B8 -/* ACC918 80055778 C7A00088 */ lwc1 $f0, 0x88($sp) -/* ACC91C 8005577C 860C0160 */ lh $t4, 0x160($s0) -/* ACC920 80055780 3C078012 */ lui $a3, %hi(D_8011D954) # $a3, 0x8012 -/* ACC924 80055784 24E7D954 */ addiu $a3, %lo(D_8011D954) # addiu $a3, $a3, -0x26ac -/* ACC928 80055788 258DFFFB */ addiu $t5, $t4, -5 -/* ACC92C 8005578C A4ED0004 */ sh $t5, 4($a3) -/* ACC930 80055790 A7A0004A */ sh $zero, 0x4a($sp) -/* ACC934 80055794 8E0500A8 */ lw $a1, 0xa8($s0) -/* ACC938 80055798 8E04008C */ lw $a0, 0x8c($s0) -/* ACC93C 8005579C 0C03034D */ jal func_800C0D34 -/* ACC940 800557A0 27A6004A */ addiu $a2, $sp, 0x4a -/* ACC944 800557A4 3C078012 */ lui $a3, %hi(D_8011D954) # $a3, 0x8012 -/* ACC948 800557A8 14400014 */ bnez $v0, .L800557FC -/* ACC94C 800557AC 24E7D954 */ addiu $a3, %lo(D_8011D954) # addiu $a3, $a3, -0x26ac -/* ACC950 800557B0 3C048014 */ lui $a0, %hi(D_801396D4) -/* ACC954 800557B4 0C00084C */ jal osSyncPrintf -/* ACC958 800557B8 248496D4 */ addiu $a0, %lo(D_801396D4) # addiu $a0, $a0, -0x692c -/* ACC95C 800557BC 8E0E00A8 */ lw $t6, 0xa8($s0) -/* ACC960 800557C0 87AF008E */ lh $t7, 0x8e($sp) -/* ACC964 800557C4 3C078012 */ lui $a3, %hi(D_8011D954) -/* ACC968 800557C8 85C400B6 */ lh $a0, 0xb6($t6) -/* ACC96C 800557CC 24E7D954 */ addiu $a3, %lo(D_8011D954) # addiu $a3, $a3, -0x26ac -/* ACC970 800557D0 01E41823 */ subu $v1, $t7, $a0 -/* ACC974 800557D4 04600003 */ bltz $v1, .L800557E4 -/* ACC978 800557D8 00031023 */ negu $v0, $v1 -/* ACC97C 800557DC 10000001 */ b .L800557E4 -/* ACC980 800557E0 00601025 */ move $v0, $v1 -.L800557E4: -/* ACC984 800557E4 28414000 */ slti $at, $v0, 0x4000 -/* ACC988 800557E8 14200003 */ bnez $at, .L800557F8 -/* ACC98C 800557EC 24988001 */ addiu $t8, $a0, -0x7fff -/* ACC990 800557F0 10000002 */ b .L800557FC -/* ACC994 800557F4 A7A4004A */ sh $a0, 0x4a($sp) -.L800557F8: -/* ACC998 800557F8 A7B8004A */ sh $t8, 0x4a($sp) -.L800557FC: -/* ACC99C 800557FC 8E0800A8 */ lw $t0, 0xa8($s0) -/* ACC9A0 80055800 87B9004A */ lh $t9, 0x4a($sp) -/* ACC9A4 80055804 87A5004A */ lh $a1, 0x4a($sp) -/* ACC9A8 80055808 850900B6 */ lh $t1, 0xb6($t0) -/* ACC9AC 8005580C 3C014334 */ li $at, 0x43340000 # 0.000000 -/* ACC9B0 80055810 57290005 */ bnel $t9, $t1, .L80055828 -/* ACC9B4 80055814 44800000 */ mtc1 $zero, $f0 -/* ACC9B8 80055818 44810000 */ mtc1 $at, $f0 -/* ACC9BC 8005581C 10000004 */ b .L80055830 -/* ACC9C0 80055820 87AA008E */ lh $t2, 0x8e($sp) -/* ACC9C4 80055824 44800000 */ mtc1 $zero, $f0 -.L80055828: -/* ACC9C8 80055828 00000000 */ nop -/* ACC9CC 8005582C 87AA008E */ lh $t2, 0x8e($sp) -.L80055830: -/* ACC9D0 80055830 E4E0003C */ swc1 $f0, 0x3c($a3) -/* ACC9D4 80055834 E4E00020 */ swc1 $f0, 0x20($a3) -/* ACC9D8 80055838 01455823 */ subu $t3, $t2, $a1 -/* ACC9DC 8005583C 000B6400 */ sll $t4, $t3, 0x10 -/* ACC9E0 80055840 000C6C03 */ sra $t5, $t4, 0x10 -/* ACC9E4 80055844 05A10005 */ bgez $t5, .L8005585C -/* ACC9E8 80055848 E4E00014 */ swc1 $f0, 0x14($a3) -/* ACC9EC 8005584C 3C0141A0 */ li $at, 0x41A00000 # 0.000000 -/* ACC9F0 80055850 44816000 */ mtc1 $at, $f12 -/* ACC9F4 80055854 10000004 */ b .L80055868 -/* ACC9F8 80055858 00000000 */ nop -.L8005585C: -/* ACC9FC 8005585C 3C01C1A0 */ li $at, 0xC1A00000 # 0.000000 -/* ACCA00 80055860 44816000 */ mtc1 $at, $f12 -/* ACCA04 80055864 00000000 */ nop -.L80055868: -/* ACCA08 80055868 0C03F66B */ jal Math_Rand_ZeroOne -/* ACCA0C 8005586C E7AC0030 */ swc1 $f12, 0x30($sp) -/* ACCA10 80055870 C7AC0030 */ lwc1 $f12, 0x30($sp) -/* ACCA14 80055874 3C078012 */ lui $a3, %hi(D_8011D954) # $a3, 0x8012 -/* ACCA18 80055878 24E7D954 */ addiu $a3, %lo(D_8011D954) # addiu $a3, $a3, -0x26ac -/* ACCA1C 8005587C 460C0082 */ mul.s $f2, $f0, $f12 -/* ACCA20 80055880 C4F00020 */ lwc1 $f16, 0x20($a3) -/* ACCA24 80055884 46028480 */ add.s $f18, $f16, $f2 -/* ACCA28 80055888 E7A20090 */ swc1 $f2, 0x90($sp) -/* ACCA2C 8005588C 0C03F66B */ jal Math_Rand_ZeroOne -/* ACCA30 80055890 E4F20020 */ swc1 $f18, 0x20($a3) -/* ACCA34 80055894 3C018014 */ lui $at, %hi(D_8013A360) -/* ACCA38 80055898 C426A360 */ lwc1 $f6, %lo(D_8013A360)($at) -/* ACCA3C 8005589C C7A40090 */ lwc1 $f4, 0x90($sp) -/* ACCA40 800558A0 3C078012 */ lui $a3, %hi(D_8011D954) # $a3, 0x8012 -/* ACCA44 800558A4 24E7D954 */ addiu $a3, %lo(D_8011D954) # addiu $a3, $a3, -0x26ac -/* ACCA48 800558A8 46062202 */ mul.s $f8, $f4, $f6 -/* ACCA4C 800558AC 27A40050 */ addiu $a0, $sp, 0x50 -/* ACCA50 800558B0 46080282 */ mul.s $f10, $f0, $f8 -/* ACCA54 800558B4 4600540D */ trunc.w.s $f16, $f10 -/* ACCA58 800558B8 44028000 */ mfc1 $v0, $f16 -/* ACCA5C 800558BC 00000000 */ nop -/* ACCA60 800558C0 A4E2002E */ sh $v0, 0x2e($a3) -/* ACCA64 800558C4 A4E20006 */ sh $v0, 6($a3) -/* ACCA68 800558C8 0C00BBB9 */ jal func_8002EEE4 -/* ACCA6C 800558CC 8E0500A8 */ lw $a1, 0xa8($s0) -/* ACCA70 800558D0 87A5004A */ lh $a1, 0x4a($sp) -/* ACCA74 800558D4 24A48001 */ addiu $a0, $a1, -0x7fff -/* ACCA78 800558D8 00042400 */ sll $a0, $a0, 0x10 -/* ACCA7C 800558DC 0C01DE1C */ jal Math_Sins -/* ACCA80 800558E0 00042403 */ sra $a0, $a0, 0x10 -/* ACCA84 800558E4 3C014248 */ li $at, 0x42480000 # 0.000000 -/* ACCA88 800558E8 44812000 */ mtc1 $at, $f4 -/* ACCA8C 800558EC C7B20050 */ lwc1 $f18, 0x50($sp) -/* ACCA90 800558F0 87A5004A */ lh $a1, 0x4a($sp) -/* ACCA94 800558F4 46002182 */ mul.s $f6, $f4, $f0 -/* ACCA98 800558F8 24A48001 */ addiu $a0, $a1, -0x7fff -/* ACCA9C 800558FC 00042400 */ sll $a0, $a0, 0x10 -/* ACCAA0 80055900 00042403 */ sra $a0, $a0, 0x10 -/* ACCAA4 80055904 46069200 */ add.s $f8, $f18, $f6 -/* ACCAA8 80055908 0C01DE0D */ jal Math_Coss -/* ACCAAC 8005590C E7A80050 */ swc1 $f8, 0x50($sp) -/* ACCAB0 80055910 3C014248 */ li $at, 0x42480000 # 0.000000 -/* ACCAB4 80055914 44818000 */ mtc1 $at, $f16 -/* ACCAB8 80055918 C7AA0058 */ lwc1 $f10, 0x58($sp) -/* ACCABC 8005591C 02002025 */ move $a0, $s0 -/* ACCAC0 80055920 46008102 */ mul.s $f4, $f16, $f0 -/* ACCAC4 80055924 27A50064 */ addiu $a1, $sp, 0x64 -/* ACCAC8 80055928 27A60050 */ addiu $a2, $sp, 0x50 -/* ACCACC 8005592C 46045480 */ add.s $f18, $f10, $f4 -/* ACCAD0 80055930 0C010FCD */ jal func_80043F34 -/* ACCAD4 80055934 E7B20058 */ swc1 $f18, 0x58($sp) -/* ACCAD8 80055938 3C078012 */ lui $a3, %hi(D_8011D954) # $a3, 0x8012 -/* ACCADC 8005593C 10400006 */ beqz $v0, .L80055958 -/* ACCAE0 80055940 24E7D954 */ addiu $a3, %lo(D_8011D954) # addiu $a3, $a3, -0x26ac -/* ACCAE4 80055944 240F00C1 */ li $t7, 193 -/* ACCAE8 80055948 2418008F */ li $t8, 143 -/* ACCAEC 8005594C A0EF0028 */ sb $t7, 0x28($a3) -/* ACCAF0 80055950 1000000A */ b .L8005597C -/* ACCAF4 80055954 A0F80050 */ sb $t8, 0x50($a3) -.L80055958: -/* ACCAF8 80055958 3C018014 */ lui $at, %hi(D_8013A364) -/* ACCAFC 8005595C C428A364 */ lwc1 $f8, %lo(D_8013A364)($at) -/* ACCB00 80055960 C7A60094 */ lwc1 $f6, 0x94($sp) -/* ACCB04 80055964 46083402 */ mul.s $f16, $f6, $f8 -/* ACCB08 80055968 4600828D */ trunc.w.s $f10, $f16 -/* ACCB0C 8005596C 440A5000 */ mfc1 $t2, $f10 -/* ACCB10 80055970 00000000 */ nop -/* ACCB14 80055974 254B0006 */ addiu $t3, $t2, 6 -/* ACCB18 80055978 A4EB0054 */ sh $t3, 0x54($a3) -.L8005597C: -/* ACCB1C 8005597C 860D0162 */ lh $t5, 0x162($s0) -/* ACCB20 80055980 240C0004 */ li $t4, 4 -/* ACCB24 80055984 AE070004 */ sw $a3, 4($s0) -/* ACCB28 80055988 11A00004 */ beqz $t5, .L8005599C -/* ACCB2C 8005598C AE0C0000 */ sw $t4, ($s0) -/* ACCB30 80055990 258FFFFE */ addiu $t7, $t4, -2 -/* ACCB34 80055994 1000005F */ b .L80055B14 -/* ACCB38 80055998 AE0F0000 */ sw $t7, ($s0) -.L8005599C: -/* ACCB3C 8005599C 86180160 */ lh $t8, 0x160($s0) -/* ACCB40 800559A0 84E80054 */ lh $t0, 0x54($a3) -/* ACCB44 800559A4 84E9007C */ lh $t1, 0x7c($a3) -/* ACCB48 800559A8 0308C821 */ addu $t9, $t8, $t0 -/* ACCB4C 800559AC 03295021 */ addu $t2, $t9, $t1 -/* ACCB50 800559B0 10000058 */ b .L80055B14 -/* ACCB54 800559B4 A60A0160 */ sh $t2, 0x160($s0) -.L800559B8: -/* ACCB58 800559B8 3C014348 */ li $at, 0x43480000 # 0.000000 -/* ACCB5C 800559BC 44812000 */ mtc1 $at, $f4 -/* ACCB60 800559C0 3C013E80 */ lui $at, 0x3e80 -/* ACCB64 800559C4 4604003C */ c.lt.s $f0, $f4 -/* ACCB68 800559C8 00000000 */ nop -/* ACCB6C 800559CC 45020008 */ bc1fl .L800559F0 -/* ACCB70 800559D0 3C0143C8 */ li $at, 0x43C80000 # 0.000000 -/* ACCB74 800559D4 44819000 */ mtc1 $at, $f18 -/* ACCB78 800559D8 3C038012 */ lui $v1, %hi(D_8011D9F4) # $v1, 0x8012 -/* ACCB7C 800559DC 2463D9F4 */ addiu $v1, %lo(D_8011D9F4) # addiu $v1, $v1, -0x260c -/* ACCB80 800559E0 46120182 */ mul.s $f6, $f0, $f18 -/* ACCB84 800559E4 E4600024 */ swc1 $f0, 0x24($v1) -/* ACCB88 800559E8 E4660018 */ swc1 $f6, 0x18($v1) -/* ACCB8C 800559EC 3C0143C8 */ li $at, 0x43C80000 # 0.000000 -.L800559F0: -/* ACCB90 800559F0 44814000 */ mtc1 $at, $f8 -/* ACCB94 800559F4 00000000 */ nop -/* ACCB98 800559F8 4608003C */ c.lt.s $f0, $f8 -/* ACCB9C 800559FC 00000000 */ nop -/* ACCBA0 80055A00 45000009 */ bc1f .L80055A28 -/* ACCBA4 80055A04 00000000 */ nop -/* ACCBA8 80055A08 0C03F66B */ jal Math_Rand_ZeroOne -/* ACCBAC 80055A0C 00000000 */ nop -/* ACCBB0 80055A10 3C0141C8 */ li $at, 0x41C80000 # 0.000000 -/* ACCBB4 80055A14 44818000 */ mtc1 $at, $f16 -/* ACCBB8 80055A18 3C038012 */ lui $v1, %hi(D_8011D9F4) # $v1, 0x8012 -/* ACCBBC 80055A1C 2463D9F4 */ addiu $v1, %lo(D_8011D9F4) # addiu $v1, $v1, -0x260c -/* ACCBC0 80055A20 46100282 */ mul.s $f10, $f0, $f16 -/* ACCBC4 80055A24 E46A001C */ swc1 $f10, 0x1c($v1) -.L80055A28: -/* ACCBC8 80055A28 0C00B721 */ jal Player_GetCameraYOffset -/* ACCBCC 80055A2C 8E040090 */ lw $a0, 0x90($s0) -/* ACCBD0 80055A30 860B0160 */ lh $t3, 0x160($s0) -/* ACCBD4 80055A34 3C038012 */ lui $v1, %hi(D_8011D9F4) # $v1, 0x8012 -/* ACCBD8 80055A38 2463D9F4 */ addiu $v1, %lo(D_8011D9F4) # addiu $v1, $v1, -0x260c -/* ACCBDC 80055A3C A46B0004 */ sh $t3, 4($v1) -/* ACCBE0 80055A40 8E0500A8 */ lw $a1, 0xa8($s0) -/* ACCBE4 80055A44 0C00BBB9 */ jal func_8002EEE4 -/* ACCBE8 80055A48 27A40050 */ addiu $a0, $sp, 0x50 -/* ACCBEC 80055A4C 02002025 */ move $a0, $s0 -/* ACCBF0 80055A50 27A50064 */ addiu $a1, $sp, 0x64 -/* ACCBF4 80055A54 0C010FCD */ jal func_80043F34 -/* ACCBF8 80055A58 27A60050 */ addiu $a2, $sp, 0x50 -/* ACCBFC 80055A5C 3C038012 */ lui $v1, %hi(D_8011D9F4) # $v1, 0x8012 -/* ACCC00 80055A60 10400006 */ beqz $v0, .L80055A7C -/* ACCC04 80055A64 2463D9F4 */ addiu $v1, %lo(D_8011D9F4) # addiu $v1, $v1, -0x260c -/* ACCC08 80055A68 240C0004 */ li $t4, 4 -/* ACCC0C 80055A6C 240D008F */ li $t5, 143 -/* ACCC10 80055A70 A46C002C */ sh $t4, 0x2c($v1) -/* ACCC14 80055A74 1000000A */ b .L80055AA0 -/* ACCC18 80055A78 A06D0028 */ sb $t5, 0x28($v1) -.L80055A7C: -/* ACCC1C 80055A7C 3C018014 */ lui $at, %hi(D_8013A368) -/* ACCC20 80055A80 C432A368 */ lwc1 $f18, %lo(D_8013A368)($at) -/* ACCC24 80055A84 C7A40094 */ lwc1 $f4, 0x94($sp) -/* ACCC28 80055A88 46122182 */ mul.s $f6, $f4, $f18 -/* ACCC2C 80055A8C 4600320D */ trunc.w.s $f8, $f6 -/* ACCC30 80055A90 44084000 */ mfc1 $t0, $f8 -/* ACCC34 80055A94 00000000 */ nop -/* ACCC38 80055A98 25190008 */ addiu $t9, $t0, 8 -/* ACCC3C 80055A9C A479002C */ sh $t9, 0x2c($v1) -.L80055AA0: -/* ACCC40 80055AA0 860A0162 */ lh $t2, 0x162($s0) -/* ACCC44 80055AA4 24090003 */ li $t1, 3 -/* ACCC48 80055AA8 AE030004 */ sw $v1, 4($s0) -/* ACCC4C 80055AAC 11400010 */ beqz $t2, .L80055AF0 -/* ACCC50 80055AB0 AE090000 */ sw $t1, ($s0) -/* ACCC54 80055AB4 8E0B008C */ lw $t3, 0x8c($s0) -/* ACCC58 80055AB8 8D6C009C */ lw $t4, 0x9c($t3) -/* ACCC5C 80055ABC 318D0001 */ andi $t5, $t4, 1 -/* ACCC60 80055AC0 51A00008 */ beql $t5, $zero, .L80055AE4 -/* ACCC64 80055AC4 8E190000 */ lw $t9, ($s0) -/* ACCC68 80055AC8 846E0006 */ lh $t6, 6($v1) -/* ACCC6C 80055ACC 8478002E */ lh $t8, 0x2e($v1) -/* ACCC70 80055AD0 000E7823 */ negu $t7, $t6 -/* ACCC74 80055AD4 00184023 */ negu $t0, $t8 -/* ACCC78 80055AD8 A46F0006 */ sh $t7, 6($v1) -/* ACCC7C 80055ADC A468002E */ sh $t0, 0x2e($v1) -/* ACCC80 80055AE0 8E190000 */ lw $t9, ($s0) -.L80055AE4: -/* ACCC84 80055AE4 2729FFFE */ addiu $t1, $t9, -2 -/* ACCC88 80055AE8 1000000A */ b .L80055B14 -/* ACCC8C 80055AEC AE090000 */ sw $t1, ($s0) -.L80055AF0: -/* ACCC90 80055AF0 860A0160 */ lh $t2, 0x160($s0) -/* ACCC94 80055AF4 846B002C */ lh $t3, 0x2c($v1) -/* ACCC98 80055AF8 846D0054 */ lh $t5, 0x54($v1) -/* ACCC9C 80055AFC 014B6021 */ addu $t4, $t2, $t3 -/* ACCCA0 80055B00 018D7021 */ addu $t6, $t4, $t5 -/* ACCCA4 80055B04 A60E0160 */ sh $t6, 0x160($s0) -/* ACCCA8 80055B08 A460002E */ sh $zero, 0x2e($v1) -/* ACCCAC 80055B0C 846F002E */ lh $t7, 0x2e($v1) -/* ACCCB0 80055B10 A46F0006 */ sh $t7, 6($v1) -.L80055B14: -/* ACCCB4 80055B14 8E18008C */ lw $t8, 0x8c($s0) -/* ACCCB8 80055B18 3C088012 */ lui $t0, %hi(D_8011D6A8) # $t0, 0x8012 -/* ACCCBC 80055B1C 8D08D6A8 */ lw $t0, %lo(D_8011D6A8)($t0) -/* ACCCC0 80055B20 8F02009C */ lw $v0, 0x9c($t8) -/* ACCCC4 80055B24 01021823 */ subu $v1, $t0, $v0 -/* ACCCC8 80055B28 28610033 */ slti $at, $v1, 0x33 -/* ACCCCC 80055B2C 10200003 */ beqz $at, .L80055B3C -/* ACCCD0 80055B30 2861FFCE */ slti $at, $v1, -0x32 -/* ACCCD4 80055B34 10200005 */ beqz $at, .L80055B4C -/* ACCCD8 80055B38 00000000 */ nop -.L80055B3C: -/* ACCCDC 80055B3C 0C01E221 */ jal func_80078884 -/* ACCCE0 80055B40 9604012A */ lhu $a0, 0x12a($s0) -/* ACCCE4 80055B44 8E19008C */ lw $t9, 0x8c($s0) -/* ACCCE8 80055B48 8F22009C */ lw $v0, 0x9c($t9) -.L80055B4C: -/* ACCCEC 80055B4C 3C018012 */ lui $at, %hi(D_8011D6A8) # $at, 0x8012 -/* ACCCF0 80055B50 AC22D6A8 */ sw $v0, %lo(D_8011D6A8)($at) -/* ACCCF4 80055B54 8E090090 */ lw $t1, 0x90($s0) -/* ACCCF8 80055B58 87B80072 */ lh $t8, 0x72($sp) -/* ACCCFC 80055B5C 87A8008E */ lh $t0, 0x8e($sp) -/* ACCD00 80055B60 8D2A067C */ lw $t2, 0x67c($t1) -/* ACCD04 80055B64 8FA2004C */ lw $v0, 0x4c($sp) -/* ACCD08 80055B68 0308C823 */ subu $t9, $t8, $t0 -/* ACCD0C 80055B6C 000A5900 */ sll $t3, $t2, 4 -/* ACCD10 80055B70 0563000D */ bgezl $t3, .L80055BA8 -/* ACCD14 80055B74 A7B9004A */ sh $t9, 0x4a($sp) -/* ACCD18 80055B78 804C014F */ lb $t4, 0x14f($v0) -/* ACCD1C 80055B7C 24010001 */ li $at, 1 -/* ACCD20 80055B80 51810009 */ beql $t4, $at, .L80055BA8 -/* ACCD24 80055B84 A7B9004A */ sh $t9, 0x4a($sp) -/* ACCD28 80055B88 8C4D067C */ lw $t5, 0x67c($v0) -/* ACCD2C 80055B8C 3C012000 */ lui $at, 0x2000 -/* ACCD30 80055B90 01A17025 */ or $t6, $t5, $at -/* ACCD34 80055B94 AC4E067C */ sw $t6, 0x67c($v0) -/* ACCD38 80055B98 860F0160 */ lh $t7, 0x160($s0) -/* ACCD3C 80055B9C 10000026 */ b .L80055C38 -/* ACCD40 80055BA0 A44F0110 */ sh $t7, 0x110($v0) -/* ACCD44 80055BA4 A7B9004A */ sh $t9, 0x4a($sp) -.L80055BA8: -/* ACCD48 80055BA8 8E0500A8 */ lw $a1, 0xa8($s0) -/* ACCD4C 80055BAC 24010002 */ li $at, 2 -/* ACCD50 80055BB0 8FA2004C */ lw $v0, 0x4c($sp) -/* ACCD54 80055BB4 90A90002 */ lbu $t1, 2($a1) -/* ACCD58 80055BB8 3C0B8012 */ lui $t3, %hi(D_8011D3F4) # $t3, 0x8012 -/* ACCD5C 80055BBC 24060001 */ li $a2, 1 -/* ACCD60 80055BC0 1521001B */ bne $t1, $at, .L80055C30 -/* ACCD64 80055BC4 00000000 */ nop -/* ACCD68 80055BC8 8E04008C */ lw $a0, 0x8c($s0) -/* ACCD6C 80055BCC 8C4C067C */ lw $t4, 0x67c($v0) -/* ACCD70 80055BD0 8D6BD3F4 */ lw $t3, %lo(D_8011D3F4)($t3) -/* ACCD74 80055BD4 8C8A009C */ lw $t2, 0x9c($a0) -/* ACCD78 80055BD8 318D0800 */ andi $t5, $t4, 0x800 -/* ACCD7C 80055BDC 11A00005 */ beqz $t5, .L80055BF4 -/* ACCD80 80055BE0 014B1823 */ subu $v1, $t2, $t3 -/* ACCD84 80055BE4 0C00B7D5 */ jal func_8002DF54 -/* ACCD88 80055BE8 24060008 */ li $a2, 8 -/* ACCD8C 80055BEC 10000013 */ b .L80055C3C -/* ACCD90 80055BF0 8E0E008C */ lw $t6, 0x8c($s0) -.L80055BF4: -/* ACCD94 80055BF4 04600003 */ bltz $v1, .L80055C04 -/* ACCD98 80055BF8 00031023 */ negu $v0, $v1 -/* ACCD9C 80055BFC 10000001 */ b .L80055C04 -/* ACCDA0 80055C00 00601025 */ move $v0, $v1 -.L80055C04: -/* ACCDA4 80055C04 28410BB9 */ slti $at, $v0, 0xbb9 -/* ACCDA8 80055C08 14200005 */ bnez $at, .L80055C20 -/* ACCDAC 80055C0C 00000000 */ nop -/* ACCDB0 80055C10 0C00B7D5 */ jal func_8002DF54 -/* ACCDB4 80055C14 2406000C */ li $a2, 12 -/* ACCDB8 80055C18 10000008 */ b .L80055C3C -/* ACCDBC 80055C1C 8E0E008C */ lw $t6, 0x8c($s0) -.L80055C20: -/* ACCDC0 80055C20 0C00B7D5 */ jal func_8002DF54 -/* ACCDC4 80055C24 24060045 */ li $a2, 69 -/* ACCDC8 80055C28 10000004 */ b .L80055C3C -/* ACCDCC 80055C2C 8E0E008C */ lw $t6, 0x8c($s0) -.L80055C30: -/* ACCDD0 80055C30 0C00B7D5 */ jal func_8002DF54 -/* ACCDD4 80055C34 8E04008C */ lw $a0, 0x8c($s0) -.L80055C38: -/* ACCDD8 80055C38 8E0E008C */ lw $t6, 0x8c($s0) -.L80055C3C: -/* ACCDDC 80055C3C 3C018012 */ lui $at, %hi(D_8011D3F4) # $at, 0x8012 -/* ACCDE0 80055C40 02002025 */ move $a0, $s0 -/* ACCDE4 80055C44 8DCF009C */ lw $t7, 0x9c($t6) -/* ACCDE8 80055C48 2405003C */ li $a1, 60 -/* ACCDEC 80055C4C 24060005 */ li $a2, 5 -/* ACCDF0 80055C50 0C016952 */ jal Camera_ChangeSetting -/* ACCDF4 80055C54 AC2FD3F4 */ sw $t7, %lo(D_8011D3F4)($at) -/* ACCDF8 80055C58 0C014B83 */ jal Camera_Unique9 -/* ACCDFC 80055C5C 02002025 */ move $a0, $s0 -/* ACCE00 80055C60 24020001 */ li $v0, 1 -.L80055C64: -/* ACCE04 80055C64 8FBF001C */ lw $ra, 0x1c($sp) -/* ACCE08 80055C68 8FB00018 */ lw $s0, 0x18($sp) -/* ACCE0C 80055C6C 27BD0098 */ addiu $sp, $sp, 0x98 -/* ACCE10 80055C70 03E00008 */ jr $ra -/* ACCE14 80055C74 00000000 */ nop diff --git a/asm/non_matchings/code/z_camera/Camera_Demo6.s b/asm/non_matchings/code/z_camera/Camera_Demo6.s deleted file mode 100644 index 9c45ec2560..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Demo6.s +++ /dev/null @@ -1,204 +0,0 @@ -.late_rodata -glabel D_8013A36C - .float 0.1 - -.text -glabel Camera_Demo6 -/* ACCE18 80055C78 27BDFF88 */ addiu $sp, $sp, -0x78 -/* ACCE1C 80055C7C AFB00020 */ sw $s0, 0x20($sp) -/* ACCE20 80055C80 00808025 */ move $s0, $a0 -/* ACCE24 80055C84 AFBF0024 */ sw $ra, 0x24($sp) -/* ACCE28 80055C88 8C84008C */ lw $a0, 0x8c($a0) -/* ACCE2C 80055C8C 0C030129 */ jal Gameplay_GetCamera -/* ACCE30 80055C90 00002825 */ move $a1, $zero -/* ACCE34 80055C94 AFA20074 */ sw $v0, 0x74($sp) -/* ACCE38 80055C98 8E0E00A8 */ lw $t6, 0xa8($s0) -/* ACCE3C 80055C9C 240F0037 */ li $t7, 55 -/* ACCE40 80055CA0 24180046 */ li $t8, 70 -/* ACCE44 80055CA4 2419005A */ li $t9, 90 -/* ACCE48 80055CA8 A7AF0042 */ sh $t7, 0x42($sp) -/* ACCE4C 80055CAC A7B80044 */ sh $t8, 0x44($sp) -/* ACCE50 80055CB0 A7B90046 */ sh $t9, 0x46($sp) -/* ACCE54 80055CB4 AFAE005C */ sw $t6, 0x5c($sp) -/* ACCE58 80055CB8 8603015E */ lh $v1, 0x15e($s0) -/* ACCE5C 80055CBC 2401000A */ li $at, 10 -/* ACCE60 80055CC0 5060000A */ beql $v1, $zero, .L80055CEC -/* ACCE64 80055CC4 860A0142 */ lh $t2, 0x142($s0) -/* ACCE68 80055CC8 10610007 */ beq $v1, $at, .L80055CE8 -/* ACCE6C 80055CCC 24010014 */ li $at, 20 -/* ACCE70 80055CD0 10610005 */ beq $v1, $at, .L80055CE8 -/* ACCE74 80055CD4 3C098016 */ lui $t1, %hi(gGameInfo) # $t1, 0x8016 -/* ACCE78 80055CD8 8D29FA90 */ lw $t1, %lo(gGameInfo)($t1) -/* ACCE7C 80055CDC 85220314 */ lh $v0, 0x314($t1) -/* ACCE80 80055CE0 1040000F */ beqz $v0, .L80055D20 -/* ACCE84 80055CE4 00000000 */ nop -.L80055CE8: -/* ACCE88 80055CE8 860A0142 */ lh $t2, 0x142($s0) -.L80055CEC: -/* ACCE8C 80055CEC 3C0C8012 */ lui $t4, %hi(sCameraSettings+4) -/* ACCE90 80055CF0 860D0144 */ lh $t5, 0x144($s0) -/* ACCE94 80055CF4 000A58C0 */ sll $t3, $t2, 3 -/* ACCE98 80055CF8 018B6021 */ addu $t4, $t4, $t3 -/* ACCE9C 80055CFC 8D8CD068 */ lw $t4, %lo(sCameraSettings+4)($t4) -/* ACCEA0 80055D00 000D70C0 */ sll $t6, $t5, 3 -/* ACCEA4 80055D04 3C198016 */ lui $t9, %hi(gGameInfo) # $t9, 0x8016 -/* ACCEA8 80055D08 018E7821 */ addu $t7, $t4, $t6 -/* ACCEAC 80055D0C 8DE30004 */ lw $v1, 4($t7) -/* ACCEB0 80055D10 84780000 */ lh $t8, ($v1) -/* ACCEB4 80055D14 A6180000 */ sh $t8, ($s0) -/* ACCEB8 80055D18 8F39FA90 */ lw $t9, %lo(gGameInfo)($t9) -/* ACCEBC 80055D1C 87220314 */ lh $v0, 0x314($t9) -.L80055D20: -/* ACCEC0 80055D20 50400004 */ beql $v0, $zero, .L80055D34 -/* ACCEC4 80055D24 8603015E */ lh $v1, 0x15e($s0) -/* ACCEC8 80055D28 0C011495 */ jal Camera_CopyPREGToModeValues -/* ACCECC 80055D2C 02002025 */ move $a0, $s0 -/* ACCED0 80055D30 8603015E */ lh $v1, 0x15e($s0) -.L80055D34: -/* ACCED4 80055D34 3C014270 */ li $at, 0x42700000 # 0.000000 -/* ACCED8 80055D38 1060000A */ beqz $v1, .L80055D64 -/* ACCEDC 80055D3C 00601025 */ move $v0, $v1 -/* ACCEE0 80055D40 24010001 */ li $at, 1 -/* ACCEE4 80055D44 10610031 */ beq $v1, $at, .L80055E0C -/* ACCEE8 80055D48 24010002 */ li $at, 2 -/* ACCEEC 80055D4C 1041004C */ beq $v0, $at, .L80055E80 -/* ACCEF0 80055D50 24010003 */ li $at, 3 -/* ACCEF4 80055D54 10410061 */ beq $v0, $at, .L80055EDC -/* ACCEF8 80055D58 26080004 */ addiu $t0, $s0, 4 -/* ACCEFC 80055D5C 10000076 */ b .L80055F38 -/* ACCF00 80055D60 85020000 */ lh $v0, ($t0) -.L80055D64: -/* ACCF04 80055D64 44812000 */ mtc1 $at, $f4 -/* ACCF08 80055D68 A6000004 */ sh $zero, 4($s0) -/* ACCF0C 80055D6C 27A40048 */ addiu $a0, $sp, 0x48 -/* ACCF10 80055D70 E60400FC */ swc1 $f4, 0xfc($s0) -/* ACCF14 80055D74 0C00BBC5 */ jal func_8002EF14 -/* ACCF18 80055D78 8FA5005C */ lw $a1, 0x5c($sp) -/* ACCF1C 80055D7C C7A60048 */ lwc1 $f6, 0x48($sp) -/* ACCF20 80055D80 3C0141A0 */ li $at, 0x41A00000 # 0.000000 -/* ACCF24 80055D84 44815000 */ mtc1 $at, $f10 -/* ACCF28 80055D88 E6060050 */ swc1 $f6, 0x50($s0) -/* ACCF2C 80055D8C C7A8004C */ lwc1 $f8, 0x4c($sp) -/* ACCF30 80055D90 3C014348 */ li $at, 0x43480000 # 0.000000 -/* ACCF34 80055D94 44812000 */ mtc1 $at, $f4 -/* ACCF38 80055D98 460A4400 */ add.s $f16, $f8, $f10 -/* ACCF3C 80055D9C 27A40048 */ addiu $a0, $sp, 0x48 -/* ACCF40 80055DA0 E6100054 */ swc1 $f16, 0x54($s0) -/* ACCF44 80055DA4 C7B20050 */ lwc1 $f18, 0x50($sp) -/* ACCF48 80055DA8 E6120058 */ swc1 $f18, 0x58($s0) -/* ACCF4C 80055DAC 8FA50074 */ lw $a1, 0x74($sp) -/* ACCF50 80055DB0 E7A40060 */ swc1 $f4, 0x60($sp) -/* ACCF54 80055DB4 0C01129D */ jal func_80044A74 -/* ACCF58 80055DB8 24A50094 */ addiu $a1, $a1, 0x94 -/* ACCF5C 80055DBC 244907D0 */ addiu $t1, $v0, 0x7d0 -/* ACCF60 80055DC0 240AFC18 */ li $t2, -1000 -/* ACCF64 80055DC4 26040074 */ addiu $a0, $s0, 0x74 -/* ACCF68 80055DC8 A7A90066 */ sh $t1, 0x66($sp) -/* ACCF6C 80055DCC A7AA0064 */ sh $t2, 0x64($sp) -/* ACCF70 80055DD0 AFA40034 */ sw $a0, 0x34($sp) -/* ACCF74 80055DD4 26050050 */ addiu $a1, $s0, 0x50 -/* ACCF78 80055DD8 0C010F0A */ jal func_80043C28 -/* ACCF7C 80055DDC 27A60060 */ addiu $a2, $sp, 0x60 -/* ACCF80 80055DE0 8FA40034 */ lw $a0, 0x34($sp) -/* ACCF84 80055DE4 860C015E */ lh $t4, 0x15e($s0) -/* ACCF88 80055DE8 8C8D0000 */ lw $t5, ($a0) -/* ACCF8C 80055DEC 258E0001 */ addiu $t6, $t4, 1 -/* ACCF90 80055DF0 AE0D005C */ sw $t5, 0x5c($s0) -/* ACCF94 80055DF4 8C8B0004 */ lw $t3, 4($a0) -/* ACCF98 80055DF8 AE0B0060 */ sw $t3, 0x60($s0) -/* ACCF9C 80055DFC 8C8D0008 */ lw $t5, 8($a0) -/* ACCFA0 80055E00 A60E015E */ sh $t6, 0x15e($s0) -/* ACCFA4 80055E04 8603015E */ lh $v1, 0x15e($s0) -/* ACCFA8 80055E08 AE0D0064 */ sw $t5, 0x64($s0) -.L80055E0C: -/* ACCFAC 80055E0C 00037840 */ sll $t7, $v1, 1 -/* ACCFB0 80055E10 03AFC021 */ addu $t8, $sp, $t7 -/* ACCFB4 80055E14 26080004 */ addiu $t0, $s0, 4 -/* ACCFB8 80055E18 85020000 */ lh $v0, ($t0) -/* ACCFBC 80055E1C 87180040 */ lh $t8, 0x40($t8) -/* ACCFC0 80055E20 24060008 */ li $a2, 8 -/* ACCFC4 80055E24 0302082A */ slt $at, $t8, $v0 -/* ACCFC8 80055E28 50200044 */ beql $at, $zero, .L80055F3C -/* ACCFCC 80055E2C 24580001 */ addiu $t8, $v0, 1 -/* ACCFD0 80055E30 8E04008C */ lw $a0, 0x8c($s0) -/* ACCFD4 80055E34 8E050090 */ lw $a1, 0x90($s0) -/* ACCFD8 80055E38 0C00B7D5 */ jal func_8002DF54 -/* ACCFDC 80055E3C AFA80034 */ sw $t0, 0x34($sp) -/* ACCFE0 80055E40 27A40048 */ addiu $a0, $sp, 0x48 -/* ACCFE4 80055E44 0C00BBC5 */ jal func_8002EF14 -/* ACCFE8 80055E48 8FA5005C */ lw $a1, 0x5c($sp) -/* ACCFEC 80055E4C 8FA80034 */ lw $t0, 0x34($sp) -/* ACCFF0 80055E50 C7A60048 */ lwc1 $f6, 0x48($sp) -/* ACCFF4 80055E54 3C0141A0 */ li $at, 0x41A00000 # 0.000000 -/* ACCFF8 80055E58 44815000 */ mtc1 $at, $f10 -/* ACCFFC 80055E5C E5060004 */ swc1 $f6, 4($t0) -/* ACD000 80055E60 C7A8004C */ lwc1 $f8, 0x4c($sp) -/* ACD004 80055E64 460A4401 */ sub.s $f16, $f8, $f10 -/* ACD008 80055E68 E5100008 */ swc1 $f16, 8($t0) -/* ACD00C 80055E6C C7B20050 */ lwc1 $f18, 0x50($sp) -/* ACD010 80055E70 E512000C */ swc1 $f18, 0xc($t0) -/* ACD014 80055E74 8619015E */ lh $t9, 0x15e($s0) -/* ACD018 80055E78 27290001 */ addiu $t1, $t9, 1 -/* ACD01C 80055E7C A609015E */ sh $t1, 0x15e($s0) -.L80055E80: -/* ACD020 80055E80 3C018014 */ lui $at, %hi(D_8013A36C) -/* ACD024 80055E84 C420A36C */ lwc1 $f0, %lo(D_8013A36C)($at) -/* ACD028 80055E88 3C014100 */ li $at, 0x41000000 # 0.000000 -/* ACD02C 80055E8C 44812000 */ mtc1 $at, $f4 -/* ACD030 80055E90 26080004 */ addiu $t0, $s0, 4 -/* ACD034 80055E94 44060000 */ mfc1 $a2, $f0 -/* ACD038 80055E98 44070000 */ mfc1 $a3, $f0 -/* ACD03C 80055E9C 25040004 */ addiu $a0, $t0, 4 -/* ACD040 80055EA0 AFA80034 */ sw $t0, 0x34($sp) -/* ACD044 80055EA4 26050050 */ addiu $a1, $s0, 0x50 -/* ACD048 80055EA8 0C010E8F */ jal func_80043A3C -/* ACD04C 80055EAC E7A40010 */ swc1 $f4, 0x10($sp) -/* ACD050 80055EB0 8603015E */ lh $v1, 0x15e($s0) -/* ACD054 80055EB4 8FA80034 */ lw $t0, 0x34($sp) -/* ACD058 80055EB8 00035040 */ sll $t2, $v1, 1 -/* ACD05C 80055EBC 03AA5821 */ addu $t3, $sp, $t2 -/* ACD060 80055EC0 856B0040 */ lh $t3, 0x40($t3) -/* ACD064 80055EC4 85020000 */ lh $v0, ($t0) -/* ACD068 80055EC8 246D0001 */ addiu $t5, $v1, 1 -/* ACD06C 80055ECC 0162082A */ slt $at, $t3, $v0 -/* ACD070 80055ED0 5020001A */ beql $at, $zero, .L80055F3C -/* ACD074 80055ED4 24580001 */ addiu $t8, $v0, 1 -/* ACD078 80055ED8 A60D015E */ sh $t5, 0x15e($s0) -.L80055EDC: -/* ACD07C 80055EDC 3C014248 */ li $at, 0x42480000 # 0.000000 -/* ACD080 80055EE0 44816000 */ mtc1 $at, $f12 -/* ACD084 80055EE4 C60E00FC */ lwc1 $f14, 0xfc($s0) -/* ACD088 80055EE8 3C063E4C */ lui $a2, (0x3E4CCCCD >> 16) # lui $a2, 0x3e4c -/* ACD08C 80055EEC 3C073C23 */ lui $a3, (0x3C23D70A >> 16) # lui $a3, 0x3c23 -/* ACD090 80055EF0 26080004 */ addiu $t0, $s0, 4 -/* ACD094 80055EF4 AFA80034 */ sw $t0, 0x34($sp) -/* ACD098 80055EF8 34E7D70A */ ori $a3, (0x3C23D70A & 0xFFFF) # ori $a3, $a3, 0xd70a -/* ACD09C 80055EFC 0C010E27 */ jal func_8004389C -/* ACD0A0 80055F00 34C6CCCD */ ori $a2, (0x3E4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd -/* ACD0A4 80055F04 860C015E */ lh $t4, 0x15e($s0) -/* ACD0A8 80055F08 8FA80034 */ lw $t0, 0x34($sp) -/* ACD0AC 80055F0C E60000FC */ swc1 $f0, 0xfc($s0) -/* ACD0B0 80055F10 000C7040 */ sll $t6, $t4, 1 -/* ACD0B4 80055F14 03AE7821 */ addu $t7, $sp, $t6 -/* ACD0B8 80055F18 85EF0040 */ lh $t7, 0x40($t7) -/* ACD0BC 80055F1C 85020000 */ lh $v0, ($t0) -/* ACD0C0 80055F20 01E2082A */ slt $at, $t7, $v0 -/* ACD0C4 80055F24 50200005 */ beql $at, $zero, .L80055F3C -/* ACD0C8 80055F28 24580001 */ addiu $t8, $v0, 1 -/* ACD0CC 80055F2C A6000160 */ sh $zero, 0x160($s0) -/* ACD0D0 80055F30 10000007 */ b .L80055F50 -/* ACD0D4 80055F34 24020001 */ li $v0, 1 -.L80055F38: -/* ACD0D8 80055F38 24580001 */ addiu $t8, $v0, 1 -.L80055F3C: -/* ACD0DC 80055F3C A5180000 */ sh $t8, ($t0) -/* ACD0E0 80055F40 8FA5005C */ lw $a1, 0x5c($sp) -/* ACD0E4 80055F44 0C00BBC5 */ jal func_8002EF14 -/* ACD0E8 80055F48 27A40048 */ addiu $a0, $sp, 0x48 -/* ACD0EC 80055F4C 24020001 */ li $v0, 1 -.L80055F50: -/* ACD0F0 80055F50 8FBF0024 */ lw $ra, 0x24($sp) -/* ACD0F4 80055F54 8FB00020 */ lw $s0, 0x20($sp) -/* ACD0F8 80055F58 27BD0078 */ addiu $sp, $sp, 0x78 -/* ACD0FC 80055F5C 03E00008 */ jr $ra -/* ACD100 80055F60 00000000 */ nop diff --git a/asm/non_matchings/code/z_camera/Camera_Demo9.s b/asm/non_matchings/code/z_camera/Camera_Demo9.s deleted file mode 100644 index 59d3710231..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Demo9.s +++ /dev/null @@ -1,329 +0,0 @@ -.late_rodata -glabel jtbl_8013A370 - .word L80056098 - .word L800560E4 - .word L800563F4 - .word L80056374 - .word L8005641C - -glabel D_8013A384 - .float 0.1 - -.text -glabel Camera_Demo9 -/* ACD158 80055FB8 27BDFF48 */ addiu $sp, $sp, -0xb8 -/* ACD15C 80055FBC AFB00020 */ sw $s0, 0x20($sp) -/* ACD160 80055FC0 00808025 */ move $s0, $a0 -/* ACD164 80055FC4 AFBF0024 */ sw $ra, 0x24($sp) -/* ACD168 80055FC8 8C84008C */ lw $a0, 0x8c($a0) -/* ACD16C 80055FCC 0C030129 */ jal Gameplay_GetCamera -/* ACD170 80055FD0 00002825 */ move $a1, $zero -/* ACD174 80055FD4 244E0094 */ addiu $t6, $v0, 0x94 -/* ACD178 80055FD8 AFAE0064 */ sw $t6, 0x64($sp) -/* ACD17C 80055FDC 8603015E */ lh $v1, 0x15e($s0) -/* ACD180 80055FE0 00403025 */ move $a2, $v0 -/* ACD184 80055FE4 2401000A */ li $at, 10 -/* ACD188 80055FE8 5060000A */ beql $v1, $zero, .L80056014 -/* ACD18C 80055FEC 86180142 */ lh $t8, 0x142($s0) -/* ACD190 80055FF0 10610007 */ beq $v1, $at, .L80056010 -/* ACD194 80055FF4 24010014 */ li $at, 20 -/* ACD198 80055FF8 10610005 */ beq $v1, $at, .L80056010 -/* ACD19C 80055FFC 3C0F8016 */ lui $t7, %hi(gGameInfo) # $t7, 0x8016 -/* ACD1A0 80056000 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7) -/* ACD1A4 80056004 85E20314 */ lh $v0, 0x314($t7) -/* ACD1A8 80056008 1040000F */ beqz $v0, .L80056048 -/* ACD1AC 8005600C 00000000 */ nop -.L80056010: -/* ACD1B0 80056010 86180142 */ lh $t8, 0x142($s0) -.L80056014: -/* ACD1B4 80056014 3C098012 */ lui $t1, %hi(sCameraSettings+4) -/* ACD1B8 80056018 860A0144 */ lh $t2, 0x144($s0) -/* ACD1BC 8005601C 0018C8C0 */ sll $t9, $t8, 3 -/* ACD1C0 80056020 01394821 */ addu $t1, $t1, $t9 -/* ACD1C4 80056024 8D29D068 */ lw $t1, %lo(sCameraSettings+4)($t1) -/* ACD1C8 80056028 000A58C0 */ sll $t3, $t2, 3 -/* ACD1CC 8005602C 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 -/* ACD1D0 80056030 012B6021 */ addu $t4, $t1, $t3 -/* ACD1D4 80056034 8D830004 */ lw $v1, 4($t4) -/* ACD1D8 80056038 846D0000 */ lh $t5, ($v1) -/* ACD1DC 8005603C A60D000C */ sh $t5, 0xc($s0) -/* ACD1E0 80056040 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* ACD1E4 80056044 85C20314 */ lh $v0, 0x314($t6) -.L80056048: -/* ACD1E8 80056048 10400007 */ beqz $v0, .L80056068 -/* ACD1EC 8005604C 2603000C */ addiu $v1, $s0, 0xc -/* ACD1F0 80056050 02002025 */ move $a0, $s0 -/* ACD1F4 80056054 AFA30034 */ sw $v1, 0x34($sp) -/* ACD1F8 80056058 0C011495 */ jal Camera_CopyPREGToModeValues -/* ACD1FC 8005605C AFA6006C */ sw $a2, 0x6c($sp) -/* ACD200 80056060 8FA30034 */ lw $v1, 0x34($sp) -/* ACD204 80056064 8FA6006C */ lw $a2, 0x6c($sp) -.L80056068: -/* ACD208 80056068 846F0000 */ lh $t7, ($v1) -/* ACD20C 8005606C 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 -/* ACD210 80056070 AC2FD3A0 */ sw $t7, %lo(D_8011D3A0)($at) -/* ACD214 80056074 9618015E */ lhu $t8, 0x15e($s0) -/* ACD218 80056078 2F010005 */ sltiu $at, $t8, 5 -/* ACD21C 8005607C 102000E7 */ beqz $at, .L8005641C -/* ACD220 80056080 0018C080 */ sll $t8, $t8, 2 -/* ACD224 80056084 3C018014 */ lui $at, %hi(jtbl_8013A370) -/* ACD228 80056088 00380821 */ addu $at, $at, $t8 -/* ACD22C 8005608C 8C38A370 */ lw $t8, %lo(jtbl_8013A370)($at) -/* ACD230 80056090 03000008 */ jr $t8 -/* ACD234 80056094 00000000 */ nop - -glabel L80056098 -/* ACD238 80056098 44802000 */ mtc1 $zero, $f4 -/* ACD23C 8005609C 26080010 */ addiu $t0, $s0, 0x10 -/* ACD240 800560A0 A5000004 */ sh $zero, 4($t0) -/* ACD244 800560A4 A5000008 */ sh $zero, 8($t0) -/* ACD248 800560A8 E5040000 */ swc1 $f4, ($t0) -/* ACD24C 800560AC 8619015E */ lh $t9, 0x15e($s0) -/* ACD250 800560B0 272A0001 */ addiu $t2, $t9, 1 -/* ACD254 800560B4 A60A015E */ sh $t2, 0x15e($s0) -/* ACD258 800560B8 A5000006 */ sh $zero, 6($t0) -/* ACD25C 800560BC 86020008 */ lh $v0, 8($s0) -/* ACD260 800560C0 3042F000 */ andi $v0, $v0, 0xf000 -/* ACD264 800560C4 50400006 */ beql $v0, $zero, .L800560E0 -/* ACD268 800560C8 860C000A */ lh $t4, 0xa($s0) -/* ACD26C 800560CC A5020008 */ sh $v0, 8($t0) -/* ACD270 800560D0 86090008 */ lh $t1, 8($s0) -/* ACD274 800560D4 312B0FFF */ andi $t3, $t1, 0xfff -/* ACD278 800560D8 A60B0008 */ sh $t3, 8($s0) -/* ACD27C 800560DC 860C000A */ lh $t4, 0xa($s0) -.L800560E0: -/* ACD280 800560E0 A50C000A */ sh $t4, 0xa($t0) - -glabel L800560E4 -/* ACD284 800560E4 26080010 */ addiu $t0, $s0, 0x10 -/* ACD288 800560E8 850D000A */ lh $t5, 0xa($t0) -/* ACD28C 800560EC 25030004 */ addiu $v1, $t0, 4 -/* ACD290 800560F0 27A4009C */ addiu $a0, $sp, 0x9c -/* ACD294 800560F4 19A0009F */ blez $t5, .L80056374 -/* ACD298 800560F8 27A50074 */ addiu $a1, $sp, 0x74 -/* ACD29C 800560FC 8E070004 */ lw $a3, 4($s0) -/* ACD2A0 80056100 260600FC */ addiu $a2, $s0, 0xfc -/* ACD2A4 80056104 AFA60034 */ sw $a2, 0x34($sp) -/* ACD2A8 80056108 AFA8002C */ sw $t0, 0x2c($sp) -/* ACD2AC 8005610C AFA30030 */ sw $v1, 0x30($sp) -/* ACD2B0 80056110 AFA80014 */ sw $t0, 0x14($sp) -/* ACD2B4 80056114 0C02ECAD */ jal func_800BB2B4 -/* ACD2B8 80056118 AFA30010 */ sw $v1, 0x10($sp) -/* ACD2BC 8005611C 8FA30030 */ lw $v1, 0x30($sp) -/* ACD2C0 80056120 8FA60034 */ lw $a2, 0x34($sp) -/* ACD2C4 80056124 1440000A */ bnez $v0, .L80056150 -/* ACD2C8 80056128 8FA8002C */ lw $t0, 0x2c($sp) -/* ACD2CC 8005612C 8E070000 */ lw $a3, ($s0) -/* ACD2D0 80056130 AFA8002C */ sw $t0, 0x2c($sp) -/* ACD2D4 80056134 AFA80014 */ sw $t0, 0x14($sp) -/* ACD2D8 80056138 AFA30010 */ sw $v1, 0x10($sp) -/* ACD2DC 8005613C 27A40090 */ addiu $a0, $sp, 0x90 -/* ACD2E0 80056140 0C02ECAD */ jal func_800BB2B4 -/* ACD2E4 80056144 27A50074 */ addiu $a1, $sp, 0x74 -/* ACD2E8 80056148 10400003 */ beqz $v0, .L80056158 -/* ACD2EC 8005614C 8FA8002C */ lw $t0, 0x2c($sp) -.L80056150: -/* ACD2F0 80056150 240E0002 */ li $t6, 2 -/* ACD2F4 80056154 A60E015E */ sh $t6, 0x15e($s0) -.L80056158: -/* ACD2F8 80056158 86020008 */ lh $v0, 8($s0) -/* ACD2FC 8005615C 24010001 */ li $at, 1 -/* ACD300 80056160 8FA40064 */ lw $a0, 0x64($sp) -/* ACD304 80056164 1441000C */ bne $v0, $at, .L80056198 -/* ACD308 80056168 27A5009C */ addiu $a1, $sp, 0x9c -/* ACD30C 8005616C 27A60084 */ addiu $a2, $sp, 0x84 -/* ACD310 80056170 0C01511E */ jal func_80054478 -/* ACD314 80056174 AFA8002C */ sw $t0, 0x2c($sp) -/* ACD318 80056178 8FA40064 */ lw $a0, 0x64($sp) -/* ACD31C 8005617C 27A50090 */ addiu $a1, $sp, 0x90 -/* ACD320 80056180 0C01511E */ jal func_80054478 -/* ACD324 80056184 27A60078 */ addiu $a2, $sp, 0x78 -/* ACD328 80056188 8FA8002C */ lw $t0, 0x2c($sp) -/* ACD32C 8005618C 2603005C */ addiu $v1, $s0, 0x5c -/* ACD330 80056190 10000046 */ b .L800562AC -/* ACD334 80056194 26050050 */ addiu $a1, $s0, 0x50 -.L80056198: -/* ACD338 80056198 24010004 */ li $at, 4 -/* ACD33C 8005619C 14410010 */ bne $v0, $at, .L800561E0 -/* ACD340 800561A0 27A40050 */ addiu $a0, $sp, 0x50 -/* ACD344 800561A4 8E050090 */ lw $a1, 0x90($s0) -/* ACD348 800561A8 0C00BBC5 */ jal func_8002EF14 -/* ACD34C 800561AC AFA8002C */ sw $t0, 0x2c($sp) -/* ACD350 800561B0 27A40050 */ addiu $a0, $sp, 0x50 -/* ACD354 800561B4 27A5009C */ addiu $a1, $sp, 0x9c -/* ACD358 800561B8 0C01511E */ jal func_80054478 -/* ACD35C 800561BC 27A60084 */ addiu $a2, $sp, 0x84 -/* ACD360 800561C0 27A40050 */ addiu $a0, $sp, 0x50 -/* ACD364 800561C4 27A50090 */ addiu $a1, $sp, 0x90 -/* ACD368 800561C8 0C01511E */ jal func_80054478 -/* ACD36C 800561CC 27A60078 */ addiu $a2, $sp, 0x78 -/* ACD370 800561D0 8FA8002C */ lw $t0, 0x2c($sp) -/* ACD374 800561D4 2603005C */ addiu $v1, $s0, 0x5c -/* ACD378 800561D8 10000034 */ b .L800562AC -/* ACD37C 800561DC 26050050 */ addiu $a1, $s0, 0x50 -.L800561E0: -/* ACD380 800561E0 24010008 */ li $at, 8 -/* ACD384 800561E4 14410028 */ bne $v0, $at, .L80056288 -/* ACD388 800561E8 27A4009C */ addiu $a0, $sp, 0x9c -/* ACD38C 800561EC 8E0500A8 */ lw $a1, 0xa8($s0) -/* ACD390 800561F0 2603005C */ addiu $v1, $s0, 0x5c -/* ACD394 800561F4 50A00014 */ beql $a1, $zero, .L80056248 -/* ACD398 800561F8 AE0000A8 */ sw $zero, 0xa8($s0) -/* ACD39C 800561FC 8CAF0130 */ lw $t7, 0x130($a1) -/* ACD3A0 80056200 27A40050 */ addiu $a0, $sp, 0x50 -/* ACD3A4 80056204 51E00010 */ beql $t7, $zero, .L80056248 -/* ACD3A8 80056208 AE0000A8 */ sw $zero, 0xa8($s0) -/* ACD3AC 8005620C 0C00BBC5 */ jal func_8002EF14 -/* ACD3B0 80056210 AFA8002C */ sw $t0, 0x2c($sp) -/* ACD3B4 80056214 27A40050 */ addiu $a0, $sp, 0x50 -/* ACD3B8 80056218 27A5009C */ addiu $a1, $sp, 0x9c -/* ACD3BC 8005621C 0C01511E */ jal func_80054478 -/* ACD3C0 80056220 27A60084 */ addiu $a2, $sp, 0x84 -/* ACD3C4 80056224 27A40050 */ addiu $a0, $sp, 0x50 -/* ACD3C8 80056228 27A50090 */ addiu $a1, $sp, 0x90 -/* ACD3CC 8005622C 0C01511E */ jal func_80054478 -/* ACD3D0 80056230 27A60078 */ addiu $a2, $sp, 0x78 -/* ACD3D4 80056234 8FA8002C */ lw $t0, 0x2c($sp) -/* ACD3D8 80056238 2603005C */ addiu $v1, $s0, 0x5c -/* ACD3DC 8005623C 1000001B */ b .L800562AC -/* ACD3E0 80056240 26050050 */ addiu $a1, $s0, 0x50 -/* ACD3E4 80056244 AE0000A8 */ sw $zero, 0xa8($s0) -.L80056248: -/* ACD3E8 80056248 8C6A0000 */ lw $t2, ($v1) -/* ACD3EC 8005624C 27B80084 */ addiu $t8, $sp, 0x84 -/* ACD3F0 80056250 26050050 */ addiu $a1, $s0, 0x50 -/* ACD3F4 80056254 AF0A0000 */ sw $t2, ($t8) -/* ACD3F8 80056258 8C790004 */ lw $t9, 4($v1) -/* ACD3FC 8005625C 27A90078 */ addiu $t1, $sp, 0x78 -/* ACD400 80056260 AF190004 */ sw $t9, 4($t8) -/* ACD404 80056264 8C6A0008 */ lw $t2, 8($v1) -/* ACD408 80056268 AF0A0008 */ sw $t2, 8($t8) -/* ACD40C 8005626C 8CAC0000 */ lw $t4, ($a1) -/* ACD410 80056270 AD2C0000 */ sw $t4, ($t1) -/* ACD414 80056274 8CAB0004 */ lw $t3, 4($a1) -/* ACD418 80056278 AD2B0004 */ sw $t3, 4($t1) -/* ACD41C 8005627C 8CAC0008 */ lw $t4, 8($a1) -/* ACD420 80056280 1000000A */ b .L800562AC -/* ACD424 80056284 AD2C0008 */ sw $t4, 8($t1) -.L80056288: -/* ACD428 80056288 27A50084 */ addiu $a1, $sp, 0x84 -/* ACD42C 8005628C 0C015117 */ jal Camera_Vec3fCopy -/* ACD430 80056290 AFA8002C */ sw $t0, 0x2c($sp) -/* ACD434 80056294 27A40090 */ addiu $a0, $sp, 0x90 -/* ACD438 80056298 0C015117 */ jal Camera_Vec3fCopy -/* ACD43C 8005629C 27A50078 */ addiu $a1, $sp, 0x78 -/* ACD440 800562A0 8FA8002C */ lw $t0, 0x2c($sp) -/* ACD444 800562A4 2603005C */ addiu $v1, $s0, 0x5c -/* ACD448 800562A8 26050050 */ addiu $a1, $s0, 0x50 -.L800562AC: -/* ACD44C 800562AC 27AD0084 */ addiu $t5, $sp, 0x84 -/* ACD450 800562B0 8DAF0000 */ lw $t7, ($t5) -/* ACD454 800562B4 26020074 */ addiu $v0, $s0, 0x74 -/* ACD458 800562B8 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* ACD45C 800562BC AC4F0000 */ sw $t7, ($v0) -/* ACD460 800562C0 8DAE0004 */ lw $t6, 4($t5) -/* ACD464 800562C4 8C590000 */ lw $t9, ($v0) -/* ACD468 800562C8 27A40078 */ addiu $a0, $sp, 0x78 -/* ACD46C 800562CC AC4E0004 */ sw $t6, 4($v0) -/* ACD470 800562D0 8DAF0008 */ lw $t7, 8($t5) -/* ACD474 800562D4 27A90078 */ addiu $t1, $sp, 0x78 -/* ACD478 800562D8 AC4F0008 */ sw $t7, 8($v0) -/* ACD47C 800562DC AC790000 */ sw $t9, ($v1) -/* ACD480 800562E0 8C580004 */ lw $t8, 4($v0) -/* ACD484 800562E4 AC780004 */ sw $t8, 4($v1) -/* ACD488 800562E8 8C590008 */ lw $t9, 8($v0) -/* ACD48C 800562EC AC790008 */ sw $t9, 8($v1) -/* ACD490 800562F0 850A0006 */ lh $t2, 6($t0) -/* ACD494 800562F4 5140000C */ beql $t2, $zero, .L80056328 -/* ACD498 800562F8 8D2C0000 */ lw $t4, ($t1) -/* ACD49C 800562FC 44810000 */ mtc1 $at, $f0 -/* ACD4A0 80056300 3C018014 */ lui $at, %hi(D_8013A384) -/* ACD4A4 80056304 C426A384 */ lwc1 $f6, %lo(D_8013A384)($at) -/* ACD4A8 80056308 44060000 */ mfc1 $a2, $f0 -/* ACD4AC 8005630C 44070000 */ mfc1 $a3, $f0 -/* ACD4B0 80056310 AFA8002C */ sw $t0, 0x2c($sp) -/* ACD4B4 80056314 0C010E8F */ jal func_80043A3C -/* ACD4B8 80056318 E7A60010 */ swc1 $f6, 0x10($sp) -/* ACD4BC 8005631C 10000009 */ b .L80056344 -/* ACD4C0 80056320 8FA8002C */ lw $t0, 0x2c($sp) -/* ACD4C4 80056324 8D2C0000 */ lw $t4, ($t1) -.L80056328: -/* ACD4C8 80056328 240D0001 */ li $t5, 1 -/* ACD4CC 8005632C ACAC0000 */ sw $t4, ($a1) -/* ACD4D0 80056330 8D2B0004 */ lw $t3, 4($t1) -/* ACD4D4 80056334 ACAB0004 */ sw $t3, 4($a1) -/* ACD4D8 80056338 8D2C0008 */ lw $t4, 8($t1) -/* ACD4DC 8005633C ACAC0008 */ sw $t4, 8($a1) -/* ACD4E0 80056340 A50D0006 */ sh $t5, 6($t0) -.L80056344: -/* ACD4E4 80056344 3C014380 */ li $at, 0x43800000 # 0.000000 -/* ACD4E8 80056348 44815000 */ mtc1 $at, $f10 -/* ACD4EC 8005634C C7A80074 */ lwc1 $f8, 0x74($sp) -/* ACD4F0 80056350 460A4402 */ mul.s $f16, $f8, $f10 -/* ACD4F4 80056354 4600848D */ trunc.w.s $f18, $f16 -/* ACD4F8 80056358 440F9000 */ mfc1 $t7, $f18 -/* ACD4FC 8005635C 00000000 */ nop -/* ACD500 80056360 A60F015A */ sh $t7, 0x15a($s0) -/* ACD504 80056364 8518000A */ lh $t8, 0xa($t0) -/* ACD508 80056368 2719FFFF */ addiu $t9, $t8, -1 -/* ACD50C 8005636C 1000002B */ b .L8005641C -/* ACD510 80056370 A519000A */ sh $t9, 0xa($t0) - -.L80056374: -glabel L80056374 -/* ACD514 80056374 86020018 */ lh $v0, 0x18($s0) -/* ACD518 80056378 A6000160 */ sh $zero, 0x160($s0) -/* ACD51C 8005637C 24011000 */ li $at, 4096 -/* ACD520 80056380 50400027 */ beql $v0, $zero, .L80056420 -/* ACD524 80056384 8FBF0024 */ lw $ra, 0x24($sp) -/* ACD528 80056388 10410016 */ beq $v0, $at, .L800563E4 -/* ACD52C 8005638C 00C02025 */ move $a0, $a2 -/* ACD530 80056390 24012000 */ li $at, 8192 -/* ACD534 80056394 14410021 */ bne $v0, $at, .L8005641C -/* ACD538 80056398 240503FC */ li $a1, 1020 -/* ACD53C 8005639C 8602000A */ lh $v0, 0xa($s0) -/* ACD540 800563A0 00003825 */ move $a3, $zero -/* ACD544 800563A4 28410032 */ slti $at, $v0, 0x32 -/* ACD548 800563A8 50200004 */ beql $at, $zero, .L800563BC -/* ACD54C 800563AC 24010005 */ li $at, 5 -/* ACD550 800563B0 10000006 */ b .L800563CC -/* ACD554 800563B4 24060005 */ li $a2, 5 -/* ACD558 800563B8 24010005 */ li $at, 5 -.L800563BC: -/* ACD55C 800563BC 0041001A */ div $zero, $v0, $at -/* ACD560 800563C0 00003012 */ mflo $a2 -/* ACD564 800563C4 00063400 */ sll $a2, $a2, 0x10 -/* ACD568 800563C8 00063403 */ sra $a2, $a2, 0x10 -.L800563CC: -/* ACD56C 800563CC 860A0162 */ lh $t2, 0x162($s0) -/* ACD570 800563D0 8E04008C */ lw $a0, 0x8c($s0) -/* ACD574 800563D4 0C02003E */ jal func_800800F8 -/* ACD578 800563D8 AFAA0010 */ sw $t2, 0x10($sp) -/* ACD57C 800563DC 10000010 */ b .L80056420 -/* ACD580 800563E0 8FBF0024 */ lw $ra, 0x24($sp) -.L800563E4: -/* ACD584 800563E4 0C016B99 */ jal func_8005AE64 -/* ACD588 800563E8 02002825 */ move $a1, $s0 -/* ACD58C 800563EC 1000000C */ b .L80056420 -/* ACD590 800563F0 8FBF0024 */ lw $ra, 0x24($sp) - -glabel L800563F4 -/* ACD594 800563F4 26080010 */ addiu $t0, $s0, 0x10 -/* ACD598 800563F8 8509000A */ lh $t1, 0xa($t0) -/* ACD59C 800563FC 252BFFFF */ addiu $t3, $t1, -1 -/* ACD5A0 80056400 A50B000A */ sh $t3, 0xa($t0) -/* ACD5A4 80056404 850C000A */ lh $t4, 0xa($t0) -/* ACD5A8 80056408 05830005 */ bgezl $t4, .L80056420 -/* ACD5AC 8005640C 8FBF0024 */ lw $ra, 0x24($sp) -/* ACD5B0 80056410 860D015E */ lh $t5, 0x15e($s0) -/* ACD5B4 80056414 25AE0001 */ addiu $t6, $t5, 1 -/* ACD5B8 80056418 A60E015E */ sh $t6, 0x15e($s0) - -.L8005641C: -glabel L8005641C -/* ACD5BC 8005641C 8FBF0024 */ lw $ra, 0x24($sp) -.L80056420: -/* ACD5C0 80056420 8FB00020 */ lw $s0, 0x20($sp) -/* ACD5C4 80056424 27BD00B8 */ addiu $sp, $sp, 0xb8 -/* ACD5C8 80056428 03E00008 */ jr $ra -/* ACD5CC 8005642C 24020001 */ li $v0, 1 diff --git a/asm/non_matchings/code/z_camera/Camera_Fixed1.s b/asm/non_matchings/code/z_camera/Camera_Fixed1.s deleted file mode 100644 index 03715de7c6..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Fixed1.s +++ /dev/null @@ -1,230 +0,0 @@ -.late_rodata -glabel D_8013A16C - .float 0.01 - -glabel D_8013A170 - .float 0.01 - -glabel D_8013A174 - .float 0.01 - -glabel D_8013A178 - .float 0.1 - -glabel D_8013A17C - .float 0.2 - -.text -glabel Camera_Fixed1 -/* AC6844 8004F6A4 27BDFF80 */ addiu $sp, $sp, -0x80 -/* AC6848 8004F6A8 AFB0001C */ sw $s0, 0x1c($sp) -/* AC684C 8004F6AC 00808025 */ move $s0, $a0 -/* AC6850 8004F6B0 AFBF0024 */ sw $ra, 0x24($sp) -/* AC6854 8004F6B4 AFB10020 */ sw $s1, 0x20($sp) -/* AC6858 8004F6B8 0C00B721 */ jal Player_GetCameraYOffset -/* AC685C 8004F6BC 8C840090 */ lw $a0, 0x90($a0) -/* AC6860 8004F6C0 E7A00040 */ swc1 $f0, 0x40($sp) -/* AC6864 8004F6C4 8602015E */ lh $v0, 0x15e($s0) -/* AC6868 8004F6C8 10400009 */ beqz $v0, .L8004F6F0 -/* AC686C 8004F6CC 2401000A */ li $at, 10 -/* AC6870 8004F6D0 10410007 */ beq $v0, $at, .L8004F6F0 -/* AC6874 8004F6D4 24010014 */ li $at, 20 -/* AC6878 8004F6D8 10410005 */ beq $v0, $at, .L8004F6F0 -/* AC687C 8004F6DC 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 -/* AC6880 8004F6E0 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* AC6884 8004F6E4 85C40314 */ lh $a0, 0x314($t6) -/* AC6888 8004F6E8 10800039 */ beqz $a0, .L8004F7D0 -/* AC688C 8004F6EC 00000000 */ nop -.L8004F6F0: -/* AC6890 8004F6F0 860F0142 */ lh $t7, 0x142($s0) -/* AC6894 8004F6F4 3C198012 */ lui $t9, %hi(sCameraSettings+4) -/* AC6898 8004F6F8 86080144 */ lh $t0, 0x144($s0) -/* AC689C 8004F6FC 000FC0C0 */ sll $t8, $t7, 3 -/* AC68A0 8004F700 0338C821 */ addu $t9, $t9, $t8 -/* AC68A4 8004F704 8F39D068 */ lw $t9, %lo(sCameraSettings+4)($t9) -/* AC68A8 8004F708 000848C0 */ sll $t1, $t0, 3 -/* AC68AC 8004F70C 02002025 */ move $a0, $s0 -/* AC68B0 8004F710 03295021 */ addu $t2, $t9, $t1 -/* AC68B4 8004F714 8D430004 */ lw $v1, 4($t2) -/* AC68B8 8004F718 0C0111DB */ jal func_8004476C -/* AC68BC 8004F71C AFA3003C */ sw $v1, 0x3c($sp) -/* AC68C0 8004F720 26110010 */ addiu $s1, $s0, 0x10 -/* AC68C4 8004F724 02202025 */ move $a0, $s1 -/* AC68C8 8004F728 00402825 */ move $a1, $v0 -/* AC68CC 8004F72C 0C010EF1 */ jal func_80043BC4 -/* AC68D0 8004F730 AFA20050 */ sw $v0, 0x50($sp) -/* AC68D4 8004F734 8FA60050 */ lw $a2, 0x50($sp) -/* AC68D8 8004F738 8FA3003C */ lw $v1, 0x3c($sp) -/* AC68DC 8004F73C 3C018014 */ lui $at, %hi(D_8013A16C) -/* AC68E0 8004F740 88CC0006 */ lwl $t4, 6($a2) -/* AC68E4 8004F744 98CC0009 */ lwr $t4, 9($a2) -/* AC68E8 8004F748 3C198016 */ lui $t9, %hi(gGameInfo) # $t9, 0x8016 -/* AC68EC 8004F74C 2463000C */ addiu $v1, $v1, 0xc -/* AC68F0 8004F750 AA2C000C */ swl $t4, 0xc($s1) -/* AC68F4 8004F754 BA2C000F */ swr $t4, 0xf($s1) -/* AC68F8 8004F758 94CC000A */ lhu $t4, 0xa($a2) -/* AC68FC 8004F75C A62C0010 */ sh $t4, 0x10($s1) -/* AC6900 8004F760 84CD000C */ lh $t5, 0xc($a2) -/* AC6904 8004F764 A62D0014 */ sh $t5, 0x14($s1) -/* AC6908 8004F768 846EFFF4 */ lh $t6, -0xc($v1) -/* AC690C 8004F76C C428A16C */ lwc1 $f8, %lo(D_8013A16C)($at) -/* AC6910 8004F770 C7B00040 */ lwc1 $f16, 0x40($sp) -/* AC6914 8004F774 448E2000 */ mtc1 $t6, $f4 -/* AC6918 8004F778 3C018014 */ lui $at, %hi(D_8013A170) -/* AC691C 8004F77C 468021A0 */ cvt.s.w $f6, $f4 -/* AC6920 8004F780 46083282 */ mul.s $f10, $f6, $f8 -/* AC6924 8004F784 00000000 */ nop -/* AC6928 8004F788 46105482 */ mul.s $f18, $f10, $f16 -/* AC692C 8004F78C E6120000 */ swc1 $f18, ($s0) -/* AC6930 8004F790 846FFFF8 */ lh $t7, -8($v1) -/* AC6934 8004F794 C428A170 */ lwc1 $f8, %lo(D_8013A170)($at) -/* AC6938 8004F798 448F2000 */ mtc1 $t7, $f4 -/* AC693C 8004F79C 00000000 */ nop -/* AC6940 8004F7A0 468021A0 */ cvt.s.w $f6, $f4 -/* AC6944 8004F7A4 46083282 */ mul.s $f10, $f6, $f8 -/* AC6948 8004F7A8 E60A0004 */ swc1 $f10, 4($s0) -/* AC694C 8004F7AC 8478FFFC */ lh $t8, -4($v1) -/* AC6950 8004F7B0 44988000 */ mtc1 $t8, $f16 -/* AC6954 8004F7B4 00000000 */ nop -/* AC6958 8004F7B8 468084A0 */ cvt.s.w $f18, $f16 -/* AC695C 8004F7BC E6120008 */ swc1 $f18, 8($s0) -/* AC6960 8004F7C0 84680000 */ lh $t0, ($v1) -/* AC6964 8004F7C4 A608000C */ sh $t0, 0xc($s0) -/* AC6968 8004F7C8 8F39FA90 */ lw $t9, %lo(gGameInfo)($t9) -/* AC696C 8004F7CC 87240314 */ lh $a0, 0x314($t9) -.L8004F7D0: -/* AC6970 8004F7D0 10800003 */ beqz $a0, .L8004F7E0 -/* AC6974 8004F7D4 26110010 */ addiu $s1, $s0, 0x10 -/* AC6978 8004F7D8 0C011495 */ jal Camera_CopyPREGToModeValues -/* AC697C 8004F7DC 02002025 */ move $a0, $s0 -.L8004F7E0: -/* AC6980 8004F7E0 86220014 */ lh $v0, 0x14($s1) -/* AC6984 8004F7E4 2401FFFF */ li $at, -1 -/* AC6988 8004F7E8 14410008 */ bne $v0, $at, .L8004F80C -/* AC698C 8004F7EC 3C0142C8 */ li $at, 0x42C80000 # 0.000000 -/* AC6990 8004F7F0 44813000 */ mtc1 $at, $f6 -/* AC6994 8004F7F4 C6040008 */ lwc1 $f4, 8($s0) -/* AC6998 8004F7F8 46062202 */ mul.s $f8, $f4, $f6 -/* AC699C 8004F7FC 4600428D */ trunc.w.s $f10, $f8 -/* AC69A0 8004F800 440A5000 */ mfc1 $t2, $f10 -/* AC69A4 8004F804 10000009 */ b .L8004F82C -/* AC69A8 8004F808 A62A0014 */ sh $t2, 0x14($s1) -.L8004F80C: -/* AC69AC 8004F80C 28410169 */ slti $at, $v0, 0x169 -/* AC69B0 8004F810 10200006 */ beqz $at, .L8004F82C -/* AC69B4 8004F814 00025880 */ sll $t3, $v0, 2 -/* AC69B8 8004F818 01625823 */ subu $t3, $t3, $v0 -/* AC69BC 8004F81C 000B58C0 */ sll $t3, $t3, 3 -/* AC69C0 8004F820 01625821 */ addu $t3, $t3, $v0 -/* AC69C4 8004F824 000B5880 */ sll $t3, $t3, 2 -/* AC69C8 8004F828 A62B0014 */ sh $t3, 0x14($s1) -.L8004F82C: -/* AC69CC 8004F82C 860C000C */ lh $t4, 0xc($s0) -/* AC69D0 8004F830 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 -/* AC69D4 8004F834 02002025 */ move $a0, $s0 -/* AC69D8 8004F838 AC2CD3A0 */ sw $t4, %lo(D_8011D3A0)($at) -/* AC69DC 8004F83C 8602015E */ lh $v0, 0x15e($s0) -/* AC69E0 8004F840 1440000D */ bnez $v0, .L8004F878 -/* AC69E4 8004F844 244D0001 */ addiu $t5, $v0, 1 -/* AC69E8 8004F848 0C010ED8 */ jal func_80043B60 -/* AC69EC 8004F84C A60D015E */ sh $t5, 0x15e($s0) -/* AC69F0 8004F850 86220014 */ lh $v0, 0x14($s1) -/* AC69F4 8004F854 2401FFFF */ li $at, -1 -/* AC69F8 8004F858 50410008 */ beql $v0, $at, .L8004F87C -/* AC69FC 8004F85C 2605005C */ addiu $a1, $s0, 0x5c -/* AC6A00 8004F860 44828000 */ mtc1 $v0, $f16 -/* AC6A04 8004F864 3C018014 */ lui $at, %hi(D_8013A174) -/* AC6A08 8004F868 C424A174 */ lwc1 $f4, %lo(D_8013A174)($at) -/* AC6A0C 8004F86C 468084A0 */ cvt.s.w $f18, $f16 -/* AC6A10 8004F870 46049182 */ mul.s $f6, $f18, $f4 -/* AC6A14 8004F874 E6060008 */ swc1 $f6, 8($s0) -.L8004F878: -/* AC6A18 8004F878 2605005C */ addiu $a1, $s0, 0x5c -.L8004F87C: -/* AC6A1C 8004F87C 26060050 */ addiu $a2, $s0, 0x50 -/* AC6A20 8004F880 AFA60030 */ sw $a2, 0x30($sp) -/* AC6A24 8004F884 AFA50034 */ sw $a1, 0x34($sp) -/* AC6A28 8004F888 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC6A2C 8004F88C 27A40064 */ addiu $a0, $sp, 0x64 -/* AC6A30 8004F890 3C018014 */ lui $at, %hi(D_8013A178) -/* AC6A34 8004F894 C420A178 */ lwc1 $f0, %lo(D_8013A178)($at) -/* AC6A38 8004F898 3C018014 */ lui $at, %hi(D_8013A17C) -/* AC6A3C 8004F89C C428A17C */ lwc1 $f8, %lo(D_8013A17C)($at) -/* AC6A40 8004F8A0 44060000 */ mfc1 $a2, $f0 -/* AC6A44 8004F8A4 44070000 */ mfc1 $a3, $f0 -/* AC6A48 8004F8A8 02202025 */ move $a0, $s1 -/* AC6A4C 8004F8AC 8FA50034 */ lw $a1, 0x34($sp) -/* AC6A50 8004F8B0 0C010E8F */ jal func_80043A3C -/* AC6A54 8004F8B4 E7A80010 */ swc1 $f8, 0x10($sp) -/* AC6A58 8004F8B8 26020094 */ addiu $v0, $s0, 0x94 -/* AC6A5C 8004F8BC 8C4F0000 */ lw $t7, ($v0) -/* AC6A60 8004F8C0 27A40054 */ addiu $a0, $sp, 0x54 -/* AC6A64 8004F8C4 AC8F0000 */ sw $t7, ($a0) -/* AC6A68 8004F8C8 8C4E0004 */ lw $t6, 4($v0) -/* AC6A6C 8004F8CC AC8E0004 */ sw $t6, 4($a0) -/* AC6A70 8004F8D0 8C4F0008 */ lw $t7, 8($v0) -/* AC6A74 8004F8D4 AC8F0008 */ sw $t7, 8($a0) -/* AC6A78 8004F8D8 C7AA0058 */ lwc1 $f10, 0x58($sp) -/* AC6A7C 8004F8DC C7B00040 */ lwc1 $f16, 0x40($sp) -/* AC6A80 8004F8E0 AFA2002C */ sw $v0, 0x2c($sp) -/* AC6A84 8004F8E4 8FA50034 */ lw $a1, 0x34($sp) -/* AC6A88 8004F8E8 46105480 */ add.s $f18, $f10, $f16 -/* AC6A8C 8004F8EC 0C01EFE4 */ jal OLib_Vec3fDist -/* AC6A90 8004F8F0 E7B20058 */ swc1 $f18, 0x58($sp) -/* AC6A94 8004F8F4 E60000DC */ swc1 $f0, 0xdc($s0) -/* AC6A98 8004F8F8 E7A0006C */ swc1 $f0, 0x6c($sp) -/* AC6A9C 8004F8FC 8624000C */ lh $a0, 0xc($s1) -/* AC6AA0 8004F900 8E060004 */ lw $a2, 4($s0) -/* AC6AA4 8004F904 87A50068 */ lh $a1, 0x68($sp) -/* AC6AA8 8004F908 00042023 */ negu $a0, $a0 -/* AC6AAC 8004F90C 00042400 */ sll $a0, $a0, 0x10 -/* AC6AB0 8004F910 00042403 */ sra $a0, $a0, 0x10 -/* AC6AB4 8004F914 0C010E47 */ jal func_8004391C -/* AC6AB8 8004F918 24070005 */ li $a3, 5 -/* AC6ABC 8004F91C A7A20070 */ sh $v0, 0x70($sp) -/* AC6AC0 8004F920 8E060004 */ lw $a2, 4($s0) -/* AC6AC4 8004F924 8624000E */ lh $a0, 0xe($s1) -/* AC6AC8 8004F928 87A5006A */ lh $a1, 0x6a($sp) -/* AC6ACC 8004F92C 0C010E47 */ jal func_8004391C -/* AC6AD0 8004F930 24070005 */ li $a3, 5 -/* AC6AD4 8004F934 A7A20072 */ sh $v0, 0x72($sp) -/* AC6AD8 8004F938 8FA40030 */ lw $a0, 0x30($sp) -/* AC6ADC 8004F93C 8FA50034 */ lw $a1, 0x34($sp) -/* AC6AE0 8004F940 0C010F0A */ jal func_80043C28 -/* AC6AE4 8004F944 27A6006C */ addiu $a2, $sp, 0x6c -/* AC6AE8 8004F948 8FB80034 */ lw $t8, 0x34($sp) -/* AC6AEC 8004F94C 3C073C23 */ li $a3, 0x3C230000 # 0.000000 -/* AC6AF0 8004F950 34E7D70A */ ori $a3, (0x3C23D70A & 0xFFFF) # ori $a3, $a3, 0xd70a -/* AC6AF4 8004F954 8F190000 */ lw $t9, ($t8) -/* AC6AF8 8004F958 C60C0008 */ lwc1 $f12, 8($s0) -/* AC6AFC 8004F95C C60E00FC */ lwc1 $f14, 0xfc($s0) -/* AC6B00 8004F960 AE190074 */ sw $t9, 0x74($s0) -/* AC6B04 8004F964 8F080004 */ lw $t0, 4($t8) -/* AC6B08 8004F968 8E060004 */ lw $a2, 4($s0) -/* AC6B0C 8004F96C AE080078 */ sw $t0, 0x78($s0) -/* AC6B10 8004F970 8F190008 */ lw $t9, 8($t8) -/* AC6B14 8004F974 0C010E27 */ jal func_8004389C -/* AC6B18 8004F978 AE19007C */ sw $t9, 0x7c($s0) -/* AC6B1C 8004F97C 8FA3002C */ lw $v1, 0x2c($sp) -/* AC6B20 8004F980 44802000 */ mtc1 $zero, $f4 -/* AC6B24 8004F984 E60000FC */ swc1 $f0, 0xfc($s0) -/* AC6B28 8004F988 A600015A */ sh $zero, 0x15a($s0) -/* AC6B2C 8004F98C E6040100 */ swc1 $f4, 0x100($s0) -/* AC6B30 8004F990 C6060050 */ lwc1 $f6, 0x50($s0) -/* AC6B34 8004F994 C4680000 */ lwc1 $f8, ($v1) -/* AC6B38 8004F998 C6100054 */ lwc1 $f16, 0x54($s0) -/* AC6B3C 8004F99C 24020001 */ li $v0, 1 -/* AC6B40 8004F9A0 46083281 */ sub.s $f10, $f6, $f8 -/* AC6B44 8004F9A4 C6060058 */ lwc1 $f6, 0x58($s0) -/* AC6B48 8004F9A8 E60A00E4 */ swc1 $f10, 0xe4($s0) -/* AC6B4C 8004F9AC C4720004 */ lwc1 $f18, 4($v1) -/* AC6B50 8004F9B0 46128101 */ sub.s $f4, $f16, $f18 -/* AC6B54 8004F9B4 E60400E8 */ swc1 $f4, 0xe8($s0) -/* AC6B58 8004F9B8 C4680008 */ lwc1 $f8, 8($v1) -/* AC6B5C 8004F9BC 46083281 */ sub.s $f10, $f6, $f8 -/* AC6B60 8004F9C0 E60A00EC */ swc1 $f10, 0xec($s0) -/* AC6B64 8004F9C4 8FBF0024 */ lw $ra, 0x24($sp) -/* AC6B68 8004F9C8 8FB10020 */ lw $s1, 0x20($sp) -/* AC6B6C 8004F9CC 8FB0001C */ lw $s0, 0x1c($sp) -/* AC6B70 8004F9D0 03E00008 */ jr $ra -/* AC6B74 8004F9D4 27BD0080 */ addiu $sp, $sp, 0x80 diff --git a/asm/non_matchings/code/z_camera/Camera_Fixed2.s b/asm/non_matchings/code/z_camera/Camera_Fixed2.s deleted file mode 100644 index ac867be46a..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Fixed2.s +++ /dev/null @@ -1,282 +0,0 @@ -.late_rodata -glabel D_8013A180 - .float 0.01 - -glabel D_8013A184 - .float 0.1 - -glabel D_8013A188 - .float 0.1 - -glabel D_8013A18C - .float 0.01 - -.text -glabel Camera_Fixed2 -/* AC6B78 8004F9D8 27BDFF70 */ addiu $sp, $sp, -0x90 -/* AC6B7C 8004F9DC AFB0001C */ sw $s0, 0x1c($sp) -/* AC6B80 8004F9E0 00808025 */ move $s0, $a0 -/* AC6B84 8004F9E4 AFBF0024 */ sw $ra, 0x24($sp) -/* AC6B88 8004F9E8 AFB10020 */ sw $s1, 0x20($sp) -/* AC6B8C 8004F9EC 0C00B721 */ jal Player_GetCameraYOffset -/* AC6B90 8004F9F0 8C840090 */ lw $a0, 0x90($a0) -/* AC6B94 8004F9F4 E7A00054 */ swc1 $f0, 0x54($sp) -/* AC6B98 8004F9F8 8602015E */ lh $v0, 0x15e($s0) -/* AC6B9C 8004F9FC 2401000A */ li $at, 10 -/* AC6BA0 8004FA00 3C0C8016 */ lui $t4, %hi(gGameInfo) # $t4, 0x8016 -/* AC6BA4 8004FA04 10400008 */ beqz $v0, .L8004FA28 -/* AC6BA8 8004FA08 00000000 */ nop -/* AC6BAC 8004FA0C 10410006 */ beq $v0, $at, .L8004FA28 -/* AC6BB0 8004FA10 24010014 */ li $at, 20 -/* AC6BB4 8004FA14 10410004 */ beq $v0, $at, .L8004FA28 -/* AC6BB8 8004FA18 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 -/* AC6BBC 8004FA1C 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* AC6BC0 8004FA20 85CF0314 */ lh $t7, 0x314($t6) -/* AC6BC4 8004FA24 11E0005A */ beqz $t7, .L8004FB90 -.L8004FA28: -/* AC6BC8 8004FA28 3C018014 */ lui $at, %hi(D_8013A180) -/* AC6BCC 8004FA2C C42EA180 */ lwc1 $f14, %lo(D_8013A180)($at) -/* AC6BD0 8004FA30 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC6BD4 8004FA34 44814000 */ mtc1 $at, $f8 -/* AC6BD8 8004FA38 3C014288 */ li $at, 0x42880000 # 0.000000 -/* AC6BDC 8004FA3C 44818000 */ mtc1 $at, $f16 -/* AC6BE0 8004FA40 8D8CFA90 */ lw $t4, %lo(gGameInfo)($t4) -/* AC6BE4 8004FA44 86180142 */ lh $t8, 0x142($s0) -/* AC6BE8 8004FA48 46008483 */ div.s $f18, $f16, $f0 -/* AC6BEC 8004FA4C 858D01F0 */ lh $t5, 0x1f0($t4) -/* AC6BF0 8004FA50 3C088012 */ lui $t0, %hi(sCameraSettings+4) -/* AC6BF4 8004FA54 0018C8C0 */ sll $t9, $t8, 3 -/* AC6BF8 8004FA58 448D2000 */ mtc1 $t5, $f4 -/* AC6BFC 8004FA5C 86090144 */ lh $t1, 0x144($s0) -/* AC6C00 8004FA60 01194021 */ addu $t0, $t0, $t9 -/* AC6C04 8004FA64 468021A0 */ cvt.s.w $f6, $f4 -/* AC6C08 8004FA68 8D08D068 */ lw $t0, %lo(sCameraSettings+4)($t0) -/* AC6C0C 8004FA6C 000950C0 */ sll $t2, $t1, 3 -/* AC6C10 8004FA70 3C0142C8 */ li $at, 0x42C80000 # 0.000000 -/* AC6C14 8004FA74 010A5821 */ addu $t3, $t0, $t2 -/* AC6C18 8004FA78 8D620004 */ lw $v0, 4($t3) -/* AC6C1C 8004FA7C 26110014 */ addiu $s1, $s0, 0x14 -/* AC6C20 8004FA80 02002025 */ move $a0, $s0 -/* AC6C24 8004FA84 844E0000 */ lh $t6, ($v0) -/* AC6C28 8004FA88 24420010 */ addiu $v0, $v0, 0x10 -/* AC6C2C 8004FA8C 460E3082 */ mul.s $f2, $f6, $f14 -/* AC6C30 8004FA90 448E3000 */ mtc1 $t6, $f6 -/* AC6C34 8004FA94 46024280 */ add.s $f10, $f8, $f2 -/* AC6C38 8004FA98 46121102 */ mul.s $f4, $f2, $f18 -/* AC6C3C 8004FA9C 46803220 */ cvt.s.w $f8, $f6 -/* AC6C40 8004FAA0 46045301 */ sub.s $f12, $f10, $f4 -/* AC6C44 8004FAA4 460E4402 */ mul.s $f16, $f8, $f14 -/* AC6C48 8004FAA8 00000000 */ nop -/* AC6C4C 8004FAAC 46008482 */ mul.s $f18, $f16, $f0 -/* AC6C50 8004FAB0 00000000 */ nop -/* AC6C54 8004FAB4 460C9282 */ mul.s $f10, $f18, $f12 -/* AC6C58 8004FAB8 E60A0000 */ swc1 $f10, ($s0) -/* AC6C5C 8004FABC 844FFFF4 */ lh $t7, -0xc($v0) -/* AC6C60 8004FAC0 448F2000 */ mtc1 $t7, $f4 -/* AC6C64 8004FAC4 00000000 */ nop -/* AC6C68 8004FAC8 468021A0 */ cvt.s.w $f6, $f4 -/* AC6C6C 8004FACC 460E3202 */ mul.s $f8, $f6, $f14 -/* AC6C70 8004FAD0 E6080004 */ swc1 $f8, 4($s0) -/* AC6C74 8004FAD4 8458FFF8 */ lh $t8, -8($v0) -/* AC6C78 8004FAD8 44988000 */ mtc1 $t8, $f16 -/* AC6C7C 8004FADC 00000000 */ nop -/* AC6C80 8004FAE0 468084A0 */ cvt.s.w $f18, $f16 -/* AC6C84 8004FAE4 44818000 */ mtc1 $at, $f16 -/* AC6C88 8004FAE8 460E9282 */ mul.s $f10, $f18, $f14 -/* AC6C8C 8004FAEC E60A0008 */ swc1 $f10, 8($s0) -/* AC6C90 8004FAF0 8459FFFC */ lh $t9, -4($v0) -/* AC6C94 8004FAF4 44992000 */ mtc1 $t9, $f4 -/* AC6C98 8004FAF8 00000000 */ nop -/* AC6C9C 8004FAFC 468021A0 */ cvt.s.w $f6, $f4 -/* AC6CA0 8004FB00 E606000C */ swc1 $f6, 0xc($s0) -/* AC6CA4 8004FB04 C608000C */ lwc1 $f8, 0xc($s0) -/* AC6CA8 8004FB08 84490000 */ lh $t1, ($v0) -/* AC6CAC 8004FB0C 46104482 */ mul.s $f18, $f8, $f16 -/* AC6CB0 8004FB10 A6090010 */ sh $t1, 0x10($s0) -/* AC6CB4 8004FB14 4600928D */ trunc.w.s $f10, $f18 -/* AC6CB8 8004FB18 440A5000 */ mfc1 $t2, $f10 -/* AC6CBC 8004FB1C 0C0111DB */ jal func_8004476C -/* AC6CC0 8004FB20 A62A000C */ sh $t2, 0xc($s1) -/* AC6CC4 8004FB24 1040000B */ beqz $v0, .L8004FB54 -/* AC6CC8 8004FB28 00402825 */ move $a1, $v0 -/* AC6CCC 8004FB2C 02202025 */ move $a0, $s1 -/* AC6CD0 8004FB30 0C010EF1 */ jal func_80043BC4 -/* AC6CD4 8004FB34 AFA20064 */ sw $v0, 0x64($sp) -/* AC6CD8 8004FB38 8FA50064 */ lw $a1, 0x64($sp) -/* AC6CDC 8004FB3C 2401FFFF */ li $at, -1 -/* AC6CE0 8004FB40 84A3000C */ lh $v1, 0xc($a1) -/* AC6CE4 8004FB44 5061000A */ beql $v1, $at, .L8004FB70 -/* AC6CE8 8004FB48 8622000C */ lh $v0, 0xc($s1) -/* AC6CEC 8004FB4C 10000007 */ b .L8004FB6C -/* AC6CF0 8004FB50 A623000C */ sh $v1, 0xc($s1) -.L8004FB54: -/* AC6CF4 8004FB54 8E0C005C */ lw $t4, 0x5c($s0) -/* AC6CF8 8004FB58 AE2C0000 */ sw $t4, ($s1) -/* AC6CFC 8004FB5C 8E0B0060 */ lw $t3, 0x60($s0) -/* AC6D00 8004FB60 AE2B0004 */ sw $t3, 4($s1) -/* AC6D04 8004FB64 8E0C0064 */ lw $t4, 0x64($s0) -/* AC6D08 8004FB68 AE2C0008 */ sw $t4, 8($s1) -.L8004FB6C: -/* AC6D0C 8004FB6C 8622000C */ lh $v0, 0xc($s1) -.L8004FB70: -/* AC6D10 8004FB70 28410169 */ slti $at, $v0, 0x169 -/* AC6D14 8004FB74 10200006 */ beqz $at, .L8004FB90 -/* AC6D18 8004FB78 00026880 */ sll $t5, $v0, 2 -/* AC6D1C 8004FB7C 01A26823 */ subu $t5, $t5, $v0 -/* AC6D20 8004FB80 000D68C0 */ sll $t5, $t5, 3 -/* AC6D24 8004FB84 01A26821 */ addu $t5, $t5, $v0 -/* AC6D28 8004FB88 000D6880 */ sll $t5, $t5, 2 -/* AC6D2C 8004FB8C A62D000C */ sh $t5, 0xc($s1) -.L8004FB90: -/* AC6D30 8004FB90 3C0F8016 */ lui $t7, %hi(gGameInfo) -/* AC6D34 8004FB94 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7) -/* AC6D38 8004FB98 260E005C */ addiu $t6, $s0, 0x5c -/* AC6D3C 8004FB9C AFAE003C */ sw $t6, 0x3c($sp) -/* AC6D40 8004FBA0 85F80314 */ lh $t8, 0x314($t7) -/* AC6D44 8004FBA4 26110014 */ addiu $s1, $s0, 0x14 -/* AC6D48 8004FBA8 53000004 */ beql $t8, $zero, .L8004FBBC -/* AC6D4C 8004FBAC 44801000 */ mtc1 $zero, $f2 -/* AC6D50 8004FBB0 0C011495 */ jal Camera_CopyPREGToModeValues -/* AC6D54 8004FBB4 02002025 */ move $a0, $s0 -/* AC6D58 8004FBB8 44801000 */ mtc1 $zero, $f2 -.L8004FBBC: -/* AC6D5C 8004FBBC 86190010 */ lh $t9, 0x10($s0) -/* AC6D60 8004FBC0 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 -/* AC6D64 8004FBC4 E7A2006C */ swc1 $f2, 0x6c($sp) -/* AC6D68 8004FBC8 AC39D3A0 */ sw $t9, %lo(D_8011D3A0)($at) -/* AC6D6C 8004FBCC C6040000 */ lwc1 $f4, ($s0) -/* AC6D70 8004FBD0 C7A60054 */ lwc1 $f6, 0x54($sp) -/* AC6D74 8004FBD4 E7A20074 */ swc1 $f2, 0x74($sp) -/* AC6D78 8004FBD8 3C018014 */ lui $at, %hi(D_8013A184) -/* AC6D7C 8004FBDC 46062200 */ add.s $f8, $f4, $f6 -/* AC6D80 8004FBE0 C430A184 */ lwc1 $f16, %lo(D_8013A184)($at) -/* AC6D84 8004FBE4 27A4006C */ addiu $a0, $sp, 0x6c -/* AC6D88 8004FBE8 260500E4 */ addiu $a1, $s0, 0xe4 -/* AC6D8C 8004FBEC E7A80070 */ swc1 $f8, 0x70($sp) -/* AC6D90 8004FBF0 C6000008 */ lwc1 $f0, 8($s0) -/* AC6D94 8004FBF4 E7B00010 */ swc1 $f16, 0x10($sp) -/* AC6D98 8004FBF8 44060000 */ mfc1 $a2, $f0 -/* AC6D9C 8004FBFC 44070000 */ mfc1 $a3, $f0 -/* AC6DA0 8004FC00 0C010E8F */ jal func_80043A3C -/* AC6DA4 8004FC04 00000000 */ nop -/* AC6DA8 8004FC08 26030094 */ addiu $v1, $s0, 0x94 -/* AC6DAC 8004FC0C C4720000 */ lwc1 $f18, ($v1) -/* AC6DB0 8004FC10 C60A00E4 */ lwc1 $f10, 0xe4($s0) -/* AC6DB4 8004FC14 02002025 */ move $a0, $s0 -/* AC6DB8 8004FC18 460A9100 */ add.s $f4, $f18, $f10 -/* AC6DBC 8004FC1C E7A40078 */ swc1 $f4, 0x78($sp) -/* AC6DC0 8004FC20 C60800E8 */ lwc1 $f8, 0xe8($s0) -/* AC6DC4 8004FC24 C4660004 */ lwc1 $f6, 4($v1) -/* AC6DC8 8004FC28 46083400 */ add.s $f16, $f6, $f8 -/* AC6DCC 8004FC2C E7B0007C */ swc1 $f16, 0x7c($sp) -/* AC6DD0 8004FC30 C60A00EC */ lwc1 $f10, 0xec($s0) -/* AC6DD4 8004FC34 C4720008 */ lwc1 $f18, 8($v1) -/* AC6DD8 8004FC38 460A9100 */ add.s $f4, $f18, $f10 -/* AC6DDC 8004FC3C E7A40080 */ swc1 $f4, 0x80($sp) -/* AC6DE0 8004FC40 8602015E */ lh $v0, 0x15e($s0) -/* AC6DE4 8004FC44 14400024 */ bnez $v0, .L8004FCD8 -/* AC6DE8 8004FC48 24490001 */ addiu $t1, $v0, 1 -/* AC6DEC 8004FC4C A609015E */ sh $t1, 0x15e($s0) -/* AC6DF0 8004FC50 0C010ED8 */ jal func_80043B60 -/* AC6DF4 8004FC54 AFA30030 */ sw $v1, 0x30($sp) -/* AC6DF8 8004FC58 86080010 */ lh $t0, 0x10($s0) -/* AC6DFC 8004FC5C 8FA30030 */ lw $v1, 0x30($sp) -/* AC6E00 8004FC60 310A0001 */ andi $t2, $t0, 1 -/* AC6E04 8004FC64 5540001D */ bnezl $t2, .L8004FCDC -/* AC6E08 8004FC68 C6000008 */ lwc1 $f0, 8($s0) -/* AC6E0C 8004FC6C 8E2C0000 */ lw $t4, ($s1) -/* AC6E10 8004FC70 27A20040 */ addiu $v0, $sp, 0x40 -/* AC6E14 8004FC74 27A90078 */ addiu $t1, $sp, 0x78 -/* AC6E18 8004FC78 AC4C0000 */ sw $t4, ($v0) -/* AC6E1C 8004FC7C 8E2B0004 */ lw $t3, 4($s1) -/* AC6E20 8004FC80 8C4E0000 */ lw $t6, ($v0) -/* AC6E24 8004FC84 AC4B0004 */ sw $t3, 4($v0) -/* AC6E28 8004FC88 8E2C0008 */ lw $t4, 8($s1) -/* AC6E2C 8004FC8C AC4C0008 */ sw $t4, 8($v0) -/* AC6E30 8004FC90 AE0E0074 */ sw $t6, 0x74($s0) -/* AC6E34 8004FC94 8C4D0004 */ lw $t5, 4($v0) -/* AC6E38 8004FC98 AE0D0078 */ sw $t5, 0x78($s0) -/* AC6E3C 8004FC9C 8C4E0008 */ lw $t6, 8($v0) -/* AC6E40 8004FCA0 AE0E007C */ sw $t6, 0x7c($s0) -/* AC6E44 8004FCA4 8C590000 */ lw $t9, ($v0) -/* AC6E48 8004FCA8 8FAF003C */ lw $t7, 0x3c($sp) -/* AC6E4C 8004FCAC ADF90000 */ sw $t9, ($t7) -/* AC6E50 8004FCB0 8C580004 */ lw $t8, 4($v0) -/* AC6E54 8004FCB4 ADF80004 */ sw $t8, 4($t7) -/* AC6E58 8004FCB8 8C590008 */ lw $t9, 8($v0) -/* AC6E5C 8004FCBC ADF90008 */ sw $t9, 8($t7) -/* AC6E60 8004FCC0 8D2A0000 */ lw $t2, ($t1) -/* AC6E64 8004FCC4 AE0A0050 */ sw $t2, 0x50($s0) -/* AC6E68 8004FCC8 8D280004 */ lw $t0, 4($t1) -/* AC6E6C 8004FCCC AE080054 */ sw $t0, 0x54($s0) -/* AC6E70 8004FCD0 8D2A0008 */ lw $t2, 8($t1) -/* AC6E74 8004FCD4 AE0A0058 */ sw $t2, 0x58($s0) -.L8004FCD8: -/* AC6E78 8004FCD8 C6000008 */ lwc1 $f0, 8($s0) -.L8004FCDC: -/* AC6E7C 8004FCDC 3C014120 */ li $at, 0x41200000 # 0.000000 -/* AC6E80 8004FCE0 44813000 */ mtc1 $at, $f6 -/* AC6E84 8004FCE4 26050050 */ addiu $a1, $s0, 0x50 -/* AC6E88 8004FCE8 260B0074 */ addiu $t3, $s0, 0x74 -/* AC6E8C 8004FCEC 44060000 */ mfc1 $a2, $f0 -/* AC6E90 8004FCF0 44070000 */ mfc1 $a3, $f0 -/* AC6E94 8004FCF4 AFAB0034 */ sw $t3, 0x34($sp) -/* AC6E98 8004FCF8 AFA50038 */ sw $a1, 0x38($sp) -/* AC6E9C 8004FCFC AFA30030 */ sw $v1, 0x30($sp) -/* AC6EA0 8004FD00 27A40078 */ addiu $a0, $sp, 0x78 -/* AC6EA4 8004FD04 0C010E8F */ jal func_80043A3C -/* AC6EA8 8004FD08 E7A60010 */ swc1 $f6, 0x10($sp) -/* AC6EAC 8004FD0C C6000004 */ lwc1 $f0, 4($s0) -/* AC6EB0 8004FD10 3C018014 */ lui $at, %hi(D_8013A188) -/* AC6EB4 8004FD14 C428A188 */ lwc1 $f8, %lo(D_8013A188)($at) -/* AC6EB8 8004FD18 44060000 */ mfc1 $a2, $f0 -/* AC6EBC 8004FD1C 44070000 */ mfc1 $a3, $f0 -/* AC6EC0 8004FD20 02202025 */ move $a0, $s1 -/* AC6EC4 8004FD24 8FA50034 */ lw $a1, 0x34($sp) -/* AC6EC8 8004FD28 0C010E8F */ jal func_80043A3C -/* AC6ECC 8004FD2C E7A80010 */ swc1 $f8, 0x10($sp) -/* AC6ED0 8004FD30 8FAD0034 */ lw $t5, 0x34($sp) -/* AC6ED4 8004FD34 8FAC003C */ lw $t4, 0x3c($sp) -/* AC6ED8 8004FD38 8DAF0000 */ lw $t7, ($t5) -/* AC6EDC 8004FD3C AD8F0000 */ sw $t7, ($t4) -/* AC6EE0 8004FD40 8DAE0004 */ lw $t6, 4($t5) -/* AC6EE4 8004FD44 AD8E0004 */ sw $t6, 4($t4) -/* AC6EE8 8004FD48 8DAF0008 */ lw $t7, 8($t5) -/* AC6EEC 8004FD4C AD8F0008 */ sw $t7, 8($t4) -/* AC6EF0 8004FD50 8FA5003C */ lw $a1, 0x3c($sp) -/* AC6EF4 8004FD54 0C01EFE4 */ jal OLib_Vec3fDist -/* AC6EF8 8004FD58 8FA40038 */ lw $a0, 0x38($sp) -/* AC6EFC 8004FD5C 44808000 */ mtc1 $zero, $f16 -/* AC6F00 8004FD60 E60000DC */ swc1 $f0, 0xdc($s0) -/* AC6F04 8004FD64 A600015A */ sh $zero, 0x15a($s0) -/* AC6F08 8004FD68 E61000D8 */ swc1 $f16, 0xd8($s0) -/* AC6F0C 8004FD6C 8638000C */ lh $t8, 0xc($s1) -/* AC6F10 8004FD70 3C018014 */ lui $at, %hi(D_8013A18C) -/* AC6F14 8004FD74 C424A18C */ lwc1 $f4, %lo(D_8013A18C)($at) -/* AC6F18 8004FD78 44989000 */ mtc1 $t8, $f18 -/* AC6F1C 8004FD7C 02002025 */ move $a0, $s0 -/* AC6F20 8004FD80 3C053F80 */ lui $a1, 0x3f80 -/* AC6F24 8004FD84 468092A0 */ cvt.s.w $f10, $f18 -/* AC6F28 8004FD88 46045182 */ mul.s $f6, $f10, $f4 -/* AC6F2C 8004FD8C 0C011429 */ jal func_800450A4 -/* AC6F30 8004FD90 E60600FC */ swc1 $f6, 0xfc($s0) -/* AC6F34 8004FD94 8FA30030 */ lw $v1, 0x30($sp) -/* AC6F38 8004FD98 E6000100 */ swc1 $f0, 0x100($s0) -/* AC6F3C 8004FD9C C6080050 */ lwc1 $f8, 0x50($s0) -/* AC6F40 8004FDA0 C4700000 */ lwc1 $f16, ($v1) -/* AC6F44 8004FDA4 C60A0054 */ lwc1 $f10, 0x54($s0) -/* AC6F48 8004FDA8 24020001 */ li $v0, 1 -/* AC6F4C 8004FDAC 46104481 */ sub.s $f18, $f8, $f16 -/* AC6F50 8004FDB0 C6080058 */ lwc1 $f8, 0x58($s0) -/* AC6F54 8004FDB4 E61200E4 */ swc1 $f18, 0xe4($s0) -/* AC6F58 8004FDB8 C4640004 */ lwc1 $f4, 4($v1) -/* AC6F5C 8004FDBC 46045181 */ sub.s $f6, $f10, $f4 -/* AC6F60 8004FDC0 E60600E8 */ swc1 $f6, 0xe8($s0) -/* AC6F64 8004FDC4 C4700008 */ lwc1 $f16, 8($v1) -/* AC6F68 8004FDC8 46104481 */ sub.s $f18, $f8, $f16 -/* AC6F6C 8004FDCC E61200EC */ swc1 $f18, 0xec($s0) -/* AC6F70 8004FDD0 8FBF0024 */ lw $ra, 0x24($sp) -/* AC6F74 8004FDD4 8FB10020 */ lw $s1, 0x20($sp) -/* AC6F78 8004FDD8 8FB0001C */ lw $s0, 0x1c($sp) -/* AC6F7C 8004FDDC 03E00008 */ jr $ra -/* AC6F80 8004FDE0 27BD0090 */ addiu $sp, $sp, 0x90 diff --git a/asm/non_matchings/code/z_camera/Camera_Fixed3.s b/asm/non_matchings/code/z_camera/Camera_Fixed3.s deleted file mode 100644 index 832c6fe268..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Fixed3.s +++ /dev/null @@ -1,181 +0,0 @@ -.rdata -glabel D_801393DC - .asciz "camera: position change %d \n" - .balign 4 - -.late_rodata -glabel D_8013A190 - .float 0.01 - -.text -glabel Camera_Fixed3 -/* AC6F84 8004FDE4 27BDFF98 */ addiu $sp, $sp, -0x68 -/* AC6F88 8004FDE8 AFBF001C */ sw $ra, 0x1c($sp) -/* AC6F8C 8004FDEC AFB00018 */ sw $s0, 0x18($sp) -/* AC6F90 8004FDF0 0C0111DB */ jal func_8004476C -/* AC6F94 8004FDF4 00808025 */ move $s0, $a0 -/* AC6F98 8004FDF8 2605005C */ addiu $a1, $s0, 0x5c -/* AC6F9C 8004FDFC 26060050 */ addiu $a2, $s0, 0x50 -/* AC6FA0 8004FE00 AFA60030 */ sw $a2, 0x30($sp) -/* AC6FA4 8004FE04 AFA50034 */ sw $a1, 0x34($sp) -/* AC6FA8 8004FE08 27A40048 */ addiu $a0, $sp, 0x48 -/* AC6FAC 8004FE0C 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC6FB0 8004FE10 AFA20050 */ sw $v0, 0x50($sp) -/* AC6FB4 8004FE14 8603015E */ lh $v1, 0x15e($s0) -/* AC6FB8 8004FE18 8FA70050 */ lw $a3, 0x50($sp) -/* AC6FBC 8004FE1C 2401000A */ li $at, 10 -/* AC6FC0 8004FE20 5060000A */ beql $v1, $zero, .L8004FE4C -/* AC6FC4 8004FE24 86180142 */ lh $t8, 0x142($s0) -/* AC6FC8 8004FE28 10610007 */ beq $v1, $at, .L8004FE48 -/* AC6FCC 8004FE2C 24010014 */ li $at, 20 -/* AC6FD0 8004FE30 10610005 */ beq $v1, $at, .L8004FE48 -/* AC6FD4 8004FE34 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 -/* AC6FD8 8004FE38 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* AC6FDC 8004FE3C 85CF0314 */ lh $t7, 0x314($t6) -/* AC6FE0 8004FE40 11E00034 */ beqz $t7, .L8004FF14 -/* AC6FE4 8004FE44 00000000 */ nop -.L8004FE48: -/* AC6FE8 8004FE48 86180142 */ lh $t8, 0x142($s0) -.L8004FE4C: -/* AC6FEC 8004FE4C 3C088012 */ lui $t0, %hi(sCameraSettings+4) -/* AC6FF0 8004FE50 86090144 */ lh $t1, 0x144($s0) -/* AC6FF4 8004FE54 0018C8C0 */ sll $t9, $t8, 3 -/* AC6FF8 8004FE58 01194021 */ addu $t0, $t0, $t9 -/* AC6FFC 8004FE5C 8D08D068 */ lw $t0, %lo(sCameraSettings+4)($t0) -/* AC7000 8004FE60 000950C0 */ sll $t2, $t1, 3 -/* AC7004 8004FE64 26060074 */ addiu $a2, $s0, 0x74 -/* AC7008 8004FE68 010A5821 */ addu $t3, $t0, $t2 -/* AC700C 8004FE6C 8D620004 */ lw $v0, 4($t3) -/* AC7010 8004FE70 00C02025 */ move $a0, $a2 -/* AC7014 8004FE74 00E02825 */ move $a1, $a3 -/* AC7018 8004FE78 844C0000 */ lh $t4, ($v0) -/* AC701C 8004FE7C A60C0000 */ sh $t4, ($s0) -/* AC7020 8004FE80 AFA70050 */ sw $a3, 0x50($sp) -/* AC7024 8004FE84 0C010EF1 */ jal func_80043BC4 -/* AC7028 8004FE88 AFA6002C */ sw $a2, 0x2c($sp) -/* AC702C 8004FE8C 8FA6002C */ lw $a2, 0x2c($sp) -/* AC7030 8004FE90 8FAD0034 */ lw $t5, 0x34($sp) -/* AC7034 8004FE94 8FA70050 */ lw $a3, 0x50($sp) -/* AC7038 8004FE98 8CCF0000 */ lw $t7, ($a2) -/* AC703C 8004FE9C 26030002 */ addiu $v1, $s0, 2 -/* AC7040 8004FEA0 2401FFFF */ li $at, -1 -/* AC7044 8004FEA4 ADAF0000 */ sw $t7, ($t5) -/* AC7048 8004FEA8 8CCE0004 */ lw $t6, 4($a2) -/* AC704C 8004FEAC 240A1770 */ li $t2, 6000 -/* AC7050 8004FEB0 ADAE0004 */ sw $t6, 4($t5) -/* AC7054 8004FEB4 8CCF0008 */ lw $t7, 8($a2) -/* AC7058 8004FEB8 ADAF0008 */ sw $t7, 8($t5) -/* AC705C 8004FEBC 88F90006 */ lwl $t9, 6($a3) -/* AC7060 8004FEC0 98F90009 */ lwr $t9, 9($a3) -/* AC7064 8004FEC4 A8790000 */ swl $t9, ($v1) -/* AC7068 8004FEC8 B8790003 */ swr $t9, 3($v1) -/* AC706C 8004FECC 94F9000A */ lhu $t9, 0xa($a3) -/* AC7070 8004FED0 A4790004 */ sh $t9, 4($v1) -/* AC7074 8004FED4 84E9000C */ lh $t1, 0xc($a3) -/* AC7078 8004FED8 A4690006 */ sh $t1, 6($v1) -/* AC707C 8004FEDC 84640006 */ lh $a0, 6($v1) -/* AC7080 8004FEE0 84E8000E */ lh $t0, 0xe($a3) -/* AC7084 8004FEE4 14810003 */ bne $a0, $at, .L8004FEF4 -/* AC7088 8004FEE8 A468000A */ sh $t0, 0xa($v1) -/* AC708C 8004FEEC A46A0006 */ sh $t2, 6($v1) -/* AC7090 8004FEF0 84640006 */ lh $a0, 6($v1) -.L8004FEF4: -/* AC7094 8004FEF4 28810169 */ slti $at, $a0, 0x169 -/* AC7098 8004FEF8 10200006 */ beqz $at, .L8004FF14 -/* AC709C 8004FEFC 00045880 */ sll $t3, $a0, 2 -/* AC70A0 8004FF00 01645823 */ subu $t3, $t3, $a0 -/* AC70A4 8004FF04 000B58C0 */ sll $t3, $t3, 3 -/* AC70A8 8004FF08 01645821 */ addu $t3, $t3, $a0 -/* AC70AC 8004FF0C 000B5880 */ sll $t3, $t3, 2 -/* AC70B0 8004FF10 A46B0006 */ sh $t3, 6($v1) -.L8004FF14: -/* AC70B4 8004FF14 3C0C8016 */ lui $t4, %hi(gGameInfo) # $t4, 0x8016 -/* AC70B8 8004FF18 8D8CFA90 */ lw $t4, %lo(gGameInfo)($t4) -/* AC70BC 8004FF1C 26030002 */ addiu $v1, $s0, 2 -/* AC70C0 8004FF20 02002025 */ move $a0, $s0 -/* AC70C4 8004FF24 858D0314 */ lh $t5, 0x314($t4) -/* AC70C8 8004FF28 51A00007 */ beql $t5, $zero, .L8004FF48 -/* AC70CC 8004FF2C 860E015E */ lh $t6, 0x15e($s0) -/* AC70D0 8004FF30 AFA30028 */ sw $v1, 0x28($sp) -/* AC70D4 8004FF34 0C011495 */ jal Camera_CopyPREGToModeValues -/* AC70D8 8004FF38 AFA70050 */ sw $a3, 0x50($sp) -/* AC70DC 8004FF3C 8FA30028 */ lw $v1, 0x28($sp) -/* AC70E0 8004FF40 8FA70050 */ lw $a3, 0x50($sp) -/* AC70E4 8004FF44 860E015E */ lh $t6, 0x15e($s0) -.L8004FF48: -/* AC70E8 8004FF48 240F0005 */ li $t7, 5 -/* AC70EC 8004FF4C 3C198016 */ lui $t9, %hi(gGameInfo) # $t9, 0x8016 -/* AC70F0 8004FF50 15C00008 */ bnez $t6, .L8004FF74 -/* AC70F4 8004FF54 3C048014 */ lui $a0, %hi(D_801393DC) # $a0, 0x8014 -/* AC70F8 8004FF58 A46F0008 */ sh $t7, 8($v1) -/* AC70FC 8004FF5C 8F39FA90 */ lw $t9, %lo(gGameInfo)($t9) -/* AC7100 8004FF60 84780006 */ lh $t8, 6($v1) -/* AC7104 8004FF64 A7380262 */ sh $t8, 0x262($t9) -/* AC7108 8004FF68 8609015E */ lh $t1, 0x15e($s0) -/* AC710C 8004FF6C 25280001 */ addiu $t0, $t1, 1 -/* AC7110 8004FF70 A608015E */ sh $t0, 0x15e($s0) -.L8004FF74: -/* AC7114 8004FF74 8465000A */ lh $a1, 0xa($v1) -/* AC7118 8004FF78 84EA000E */ lh $t2, 0xe($a3) -/* AC711C 8004FF7C 248493DC */ addiu $a0, %lo(D_801393DC) # addiu $a0, $a0, -0x6c24 -/* AC7120 8004FF80 50AA000B */ beql $a1, $t2, .L8004FFB0 -/* AC7124 8004FF84 84620008 */ lh $v0, 8($v1) -/* AC7128 8004FF88 AFA30028 */ sw $v1, 0x28($sp) -/* AC712C 8004FF8C 0C00084C */ jal osSyncPrintf -/* AC7130 8004FF90 AFA70050 */ sw $a3, 0x50($sp) -/* AC7134 8004FF94 8FA70050 */ lw $a3, 0x50($sp) -/* AC7138 8004FF98 8FA30028 */ lw $v1, 0x28($sp) -/* AC713C 8004FF9C 240C0005 */ li $t4, 5 -/* AC7140 8004FFA0 84EB000E */ lh $t3, 0xe($a3) -/* AC7144 8004FFA4 A46C0008 */ sh $t4, 8($v1) -/* AC7148 8004FFA8 A46B000A */ sh $t3, 0xa($v1) -/* AC714C 8004FFAC 84620008 */ lh $v0, 8($v1) -.L8004FFB0: -/* AC7150 8004FFB0 240E0001 */ li $t6, 1 -/* AC7154 8004FFB4 3C018012 */ lui $at, %hi(D_8011D3E8) -/* AC7158 8004FFB8 18400005 */ blez $v0, .L8004FFD0 -/* AC715C 8004FFBC 244DFFFF */ addiu $t5, $v0, -1 -/* AC7160 8004FFC0 A46D0008 */ sh $t5, 8($v1) -/* AC7164 8004FFC4 3C018012 */ lui $at, %hi(D_8011D3E8) # $at, 0x8012 -/* AC7168 8004FFC8 10000002 */ b .L8004FFD4 -/* AC716C 8004FFCC AC2ED3E8 */ sw $t6, %lo(D_8011D3E8)($at) -.L8004FFD0: -/* AC7170 8004FFD0 AC20D3E8 */ sw $zero, %lo(D_8011D3E8)($at) -.L8004FFD4: -/* AC7174 8004FFD4 3C014316 */ li $at, 0x43160000 # 0.000000 -/* AC7178 8004FFD8 44812000 */ mtc1 $at, $f4 -/* AC717C 8004FFDC 8FA40030 */ lw $a0, 0x30($sp) -/* AC7180 8004FFE0 8FA50034 */ lw $a1, 0x34($sp) -/* AC7184 8004FFE4 E7A40054 */ swc1 $f4, 0x54($sp) -/* AC7188 8004FFE8 846F0002 */ lh $t7, 2($v1) -/* AC718C 8004FFEC 27A60054 */ addiu $a2, $sp, 0x54 -/* AC7190 8004FFF0 A7AF005A */ sh $t7, 0x5a($sp) -/* AC7194 8004FFF4 84780000 */ lh $t8, ($v1) -/* AC7198 8004FFF8 AFA30028 */ sw $v1, 0x28($sp) -/* AC719C 8004FFFC 0018C823 */ negu $t9, $t8 -/* AC71A0 80050000 0C010F0A */ jal func_80043C28 -/* AC71A4 80050004 A7B90058 */ sh $t9, 0x58($sp) -/* AC71A8 80050008 86090000 */ lh $t1, ($s0) -/* AC71AC 8005000C 3C088016 */ lui $t0, %hi(gGameInfo) # $t0, 0x8016 -/* AC71B0 80050010 8D08FA90 */ lw $t0, %lo(gGameInfo)($t0) -/* AC71B4 80050014 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 -/* AC71B8 80050018 AC29D3A0 */ sw $t1, %lo(D_8011D3A0)($at) -/* AC71BC 8005001C 8FA30028 */ lw $v1, 0x28($sp) -/* AC71C0 80050020 850A0262 */ lh $t2, 0x262($t0) -/* AC71C4 80050024 3C018014 */ lui $at, %hi(D_8013A190) -/* AC71C8 80050028 44809000 */ mtc1 $zero, $f18 -/* AC71CC 8005002C A46A0006 */ sh $t2, 6($v1) -/* AC71D0 80050030 A600015A */ sh $zero, 0x15a($s0) -/* AC71D4 80050034 846B0006 */ lh $t3, 6($v1) -/* AC71D8 80050038 C42AA190 */ lwc1 $f10, %lo(D_8013A190)($at) -/* AC71DC 8005003C E6120100 */ swc1 $f18, 0x100($s0) -/* AC71E0 80050040 448B3000 */ mtc1 $t3, $f6 -/* AC71E4 80050044 24020001 */ li $v0, 1 -/* AC71E8 80050048 46803220 */ cvt.s.w $f8, $f6 -/* AC71EC 8005004C 460A4402 */ mul.s $f16, $f8, $f10 -/* AC71F0 80050050 E61000FC */ swc1 $f16, 0xfc($s0) -/* AC71F4 80050054 8FBF001C */ lw $ra, 0x1c($sp) -/* AC71F8 80050058 8FB00018 */ lw $s0, 0x18($sp) -/* AC71FC 8005005C 27BD0068 */ addiu $sp, $sp, 0x68 -/* AC7200 80050060 03E00008 */ jr $ra -/* AC7204 80050064 00000000 */ nop diff --git a/asm/non_matchings/code/z_camera/Camera_Fixed4.s b/asm/non_matchings/code/z_camera/Camera_Fixed4.s deleted file mode 100644 index c616baaf3d..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Fixed4.s +++ /dev/null @@ -1,260 +0,0 @@ -.late_rodata -glabel D_8013A194 - .float 0.01 - -glabel D_8013A198 - .float 0.1 - -.text -glabel Camera_Fixed4 -/* AC7208 80050068 27BDFF58 */ addiu $sp, $sp, -0xa8 -/* AC720C 8005006C AFB00020 */ sw $s0, 0x20($sp) -/* AC7210 80050070 00808025 */ move $s0, $a0 -/* AC7214 80050074 AFBF002C */ sw $ra, 0x2c($sp) -/* AC7218 80050078 AFB20028 */ sw $s2, 0x28($sp) -/* AC721C 8005007C AFB10024 */ sw $s1, 0x24($sp) -/* AC7220 80050080 0C00B721 */ jal Player_GetCameraYOffset -/* AC7224 80050084 8C840090 */ lw $a0, 0x90($a0) -/* AC7228 80050088 E7A00050 */ swc1 $f0, 0x50($sp) -/* AC722C 8005008C 8602015E */ lh $v0, 0x15e($s0) -/* AC7230 80050090 10400008 */ beqz $v0, .L800500B4 -/* AC7234 80050094 2401000A */ li $at, 10 -/* AC7238 80050098 10410006 */ beq $v0, $at, .L800500B4 -/* AC723C 8005009C 24010014 */ li $at, 20 -/* AC7240 800500A0 10410004 */ beq $v0, $at, .L800500B4 -/* AC7244 800500A4 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 -/* AC7248 800500A8 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* AC724C 800500AC 85C30314 */ lh $v1, 0x314($t6) -/* AC7250 800500B0 10600049 */ beqz $v1, .L800501D8 -.L800500B4: -/* AC7254 800500B4 3C0B8016 */ lui $t3, %hi(gGameInfo) # $t3, 0x8016 -/* AC7258 800500B8 8D6BFA90 */ lw $t3, %lo(gGameInfo)($t3) -/* AC725C 800500BC 3C018014 */ lui $at, %hi(D_8013A194) -/* AC7260 800500C0 C42CA194 */ lwc1 $f12, %lo(D_8013A194)($at) -/* AC7264 800500C4 856C01F0 */ lh $t4, 0x1f0($t3) -/* AC7268 800500C8 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC726C 800500CC 44814000 */ mtc1 $at, $f8 -/* AC7270 800500D0 448C2000 */ mtc1 $t4, $f4 -/* AC7274 800500D4 3C014288 */ li $at, 0x42880000 # 0.000000 -/* AC7278 800500D8 860F0142 */ lh $t7, 0x142($s0) -/* AC727C 800500DC 468021A0 */ cvt.s.w $f6, $f4 -/* AC7280 800500E0 44812000 */ mtc1 $at, $f4 -/* AC7284 800500E4 3C198012 */ lui $t9, %hi(sCameraSettings+4) -/* AC7288 800500E8 000FC0C0 */ sll $t8, $t7, 3 -/* AC728C 800500EC 86080144 */ lh $t0, 0x144($s0) -/* AC7290 800500F0 0338C821 */ addu $t9, $t9, $t8 -/* AC7294 800500F4 460C3082 */ mul.s $f2, $f6, $f12 -/* AC7298 800500F8 46002183 */ div.s $f6, $f4, $f0 -/* AC729C 800500FC 8F39D068 */ lw $t9, %lo(sCameraSettings+4)($t9) -/* AC72A0 80050100 000848C0 */ sll $t1, $t0, 3 -/* AC72A4 80050104 02002025 */ move $a0, $s0 -/* AC72A8 80050108 03295021 */ addu $t2, $t9, $t1 -/* AC72AC 8005010C 8D420004 */ lw $v0, 4($t2) -/* AC72B0 80050110 46024280 */ add.s $f10, $f8, $f2 -/* AC72B4 80050114 844D0000 */ lh $t5, ($v0) -/* AC72B8 80050118 24420010 */ addiu $v0, $v0, 0x10 -/* AC72BC 8005011C 448D2000 */ mtc1 $t5, $f4 -/* AC72C0 80050120 46061202 */ mul.s $f8, $f2, $f6 -/* AC72C4 80050124 468021A0 */ cvt.s.w $f6, $f4 -/* AC72C8 80050128 46085381 */ sub.s $f14, $f10, $f8 -/* AC72CC 8005012C 460C3282 */ mul.s $f10, $f6, $f12 -/* AC72D0 80050130 00000000 */ nop -/* AC72D4 80050134 46005202 */ mul.s $f8, $f10, $f0 -/* AC72D8 80050138 00000000 */ nop -/* AC72DC 8005013C 460E4102 */ mul.s $f4, $f8, $f14 -/* AC72E0 80050140 E6040000 */ swc1 $f4, ($s0) -/* AC72E4 80050144 844EFFF4 */ lh $t6, -0xc($v0) -/* AC72E8 80050148 448E3000 */ mtc1 $t6, $f6 -/* AC72EC 8005014C 00000000 */ nop -/* AC72F0 80050150 468032A0 */ cvt.s.w $f10, $f6 -/* AC72F4 80050154 460C5202 */ mul.s $f8, $f10, $f12 -/* AC72F8 80050158 E6080004 */ swc1 $f8, 4($s0) -/* AC72FC 8005015C 844FFFF8 */ lh $t7, -8($v0) -/* AC7300 80050160 448F2000 */ mtc1 $t7, $f4 -/* AC7304 80050164 00000000 */ nop -/* AC7308 80050168 468021A0 */ cvt.s.w $f6, $f4 -/* AC730C 8005016C 460C3282 */ mul.s $f10, $f6, $f12 -/* AC7310 80050170 E60A0008 */ swc1 $f10, 8($s0) -/* AC7314 80050174 8458FFFC */ lh $t8, -4($v0) -/* AC7318 80050178 44984000 */ mtc1 $t8, $f8 -/* AC731C 8005017C 00000000 */ nop -/* AC7320 80050180 46804120 */ cvt.s.w $f4, $f8 -/* AC7324 80050184 E604000C */ swc1 $f4, 0xc($s0) -/* AC7328 80050188 84480000 */ lh $t0, ($v0) -/* AC732C 8005018C 0C0111DB */ jal func_8004476C -/* AC7330 80050190 A6080010 */ sh $t0, 0x10($s0) -/* AC7334 80050194 10400007 */ beqz $v0, .L800501B4 -/* AC7338 80050198 00402825 */ move $a1, $v0 -/* AC733C 8005019C 0C010EF1 */ jal func_80043BC4 -/* AC7340 800501A0 26040014 */ addiu $a0, $s0, 0x14 -/* AC7344 800501A4 3C198016 */ lui $t9, %hi(gGameInfo) # $t9, 0x8016 -/* AC7348 800501A8 8F39FA90 */ lw $t9, %lo(gGameInfo)($t9) -/* AC734C 800501AC 1000000A */ b .L800501D8 -/* AC7350 800501B0 87230314 */ lh $v1, 0x314($t9) -.L800501B4: -/* AC7354 800501B4 8E0A005C */ lw $t2, 0x5c($s0) -/* AC7358 800501B8 8E090060 */ lw $t1, 0x60($s0) -/* AC735C 800501BC 3C0B8016 */ lui $t3, %hi(gGameInfo) -/* AC7360 800501C0 AE0A0014 */ sw $t2, 0x14($s0) -/* AC7364 800501C4 8E0A0064 */ lw $t2, 0x64($s0) -/* AC7368 800501C8 AE090018 */ sw $t1, 0x18($s0) -/* AC736C 800501CC AE0A001C */ sw $t2, 0x1c($s0) -/* AC7370 800501D0 8D6BFA90 */ lw $t3, %lo(gGameInfo)($t3) -/* AC7374 800501D4 85630314 */ lh $v1, 0x314($t3) -.L800501D8: -/* AC7378 800501D8 260C005C */ addiu $t4, $s0, 0x5c -/* AC737C 800501DC AFAC0044 */ sw $t4, 0x44($sp) -/* AC7380 800501E0 10600003 */ beqz $v1, .L800501F0 -/* AC7384 800501E4 26120014 */ addiu $s2, $s0, 0x14 -/* AC7388 800501E8 0C011495 */ jal Camera_CopyPREGToModeValues -/* AC738C 800501EC 02002025 */ move $a0, $s0 -.L800501F0: -/* AC7390 800501F0 860D0010 */ lh $t5, 0x10($s0) -/* AC7394 800501F4 3C018012 */ lui $at, %hi(D_8011D3A0) -/* AC7398 800501F8 AC2DD3A0 */ sw $t5, %lo(D_8011D3A0)($at) -/* AC739C 800501FC 8602015E */ lh $v0, 0x15e($s0) -/* AC73A0 80050200 5440000C */ bnezl $v0, .L80050234 -/* AC73A4 80050204 26110074 */ addiu $s1, $s0, 0x74 -/* AC73A8 80050208 860F0010 */ lh $t7, 0x10($s0) -/* AC73AC 8005020C 244E0001 */ addiu $t6, $v0, 1 -/* AC73B0 80050210 A60E015E */ sh $t6, 0x15e($s0) -/* AC73B4 80050214 31F80004 */ andi $t8, $t7, 4 -/* AC73B8 80050218 57000004 */ bnezl $t8, .L8005022C -/* AC73BC 8005021C C6060008 */ lwc1 $f6, 8($s0) -/* AC73C0 80050220 0C010ED8 */ jal func_80043B60 -/* AC73C4 80050224 02002025 */ move $a0, $s0 -/* AC73C8 80050228 C6060008 */ lwc1 $f6, 8($s0) -.L8005022C: -/* AC73CC 8005022C E646000C */ swc1 $f6, 0xc($s2) -/* AC73D0 80050230 26110074 */ addiu $s1, $s0, 0x74 -.L80050234: -/* AC73D4 80050234 C6200000 */ lwc1 $f0, ($s1) -/* AC73D8 80050238 C64A0000 */ lwc1 $f10, ($s2) -/* AC73DC 8005023C C6040004 */ lwc1 $f4, 4($s0) -/* AC73E0 80050240 3C018014 */ lui $at, %hi(D_8013A198) -/* AC73E4 80050244 46005201 */ sub.s $f8, $f10, $f0 -/* AC73E8 80050248 C42EA198 */ lwc1 $f14, %lo(D_8013A198)($at) -/* AC73EC 8005024C C6220004 */ lwc1 $f2, 4($s1) -/* AC73F0 80050250 C62C0008 */ lwc1 $f12, 8($s1) -/* AC73F4 80050254 46044182 */ mul.s $f6, $f8, $f4 -/* AC73F8 80050258 44808000 */ mtc1 $zero, $f16 -/* AC73FC 8005025C 44067000 */ mfc1 $a2, $f14 -/* AC7400 80050260 44077000 */ mfc1 $a3, $f14 -/* AC7404 80050264 27A40078 */ addiu $a0, $sp, 0x78 -/* AC7408 80050268 260500E4 */ addiu $a1, $s0, 0xe4 -/* AC740C 8005026C 46060280 */ add.s $f10, $f0, $f6 -/* AC7410 80050270 E62A0000 */ swc1 $f10, ($s1) -/* AC7414 80050274 C6480004 */ lwc1 $f8, 4($s2) -/* AC7418 80050278 C6060004 */ lwc1 $f6, 4($s0) -/* AC741C 8005027C 8E290000 */ lw $t1, ($s1) -/* AC7420 80050280 46024101 */ sub.s $f4, $f8, $f2 -/* AC7424 80050284 46062282 */ mul.s $f10, $f4, $f6 -/* AC7428 80050288 460A1200 */ add.s $f8, $f2, $f10 -/* AC742C 8005028C E6280004 */ swc1 $f8, 4($s1) -/* AC7430 80050290 C6440008 */ lwc1 $f4, 8($s2) -/* AC7434 80050294 C60A0004 */ lwc1 $f10, 4($s0) -/* AC7438 80050298 460C2181 */ sub.s $f6, $f4, $f12 -/* AC743C 8005029C 460A3202 */ mul.s $f8, $f6, $f10 -/* AC7440 800502A0 46086100 */ add.s $f4, $f12, $f8 -/* AC7444 800502A4 E6240008 */ swc1 $f4, 8($s1) -/* AC7448 800502A8 8FA80044 */ lw $t0, 0x44($sp) -/* AC744C 800502AC AD090000 */ sw $t1, ($t0) -/* AC7450 800502B0 8E390004 */ lw $t9, 4($s1) -/* AC7454 800502B4 AD190004 */ sw $t9, 4($t0) -/* AC7458 800502B8 8E290008 */ lw $t1, 8($s1) -/* AC745C 800502BC AD090008 */ sw $t1, 8($t0) -/* AC7460 800502C0 E7B00078 */ swc1 $f16, 0x78($sp) -/* AC7464 800502C4 C6060000 */ lwc1 $f6, ($s0) -/* AC7468 800502C8 C7AA0050 */ lwc1 $f10, 0x50($sp) -/* AC746C 800502CC E7AE0010 */ swc1 $f14, 0x10($sp) -/* AC7470 800502D0 E7B00080 */ swc1 $f16, 0x80($sp) -/* AC7474 800502D4 460A3200 */ add.s $f8, $f6, $f10 -/* AC7478 800502D8 0C010E8F */ jal func_80043A3C -/* AC747C 800502DC E7A8007C */ swc1 $f8, 0x7c($sp) -/* AC7480 800502E0 26020094 */ addiu $v0, $s0, 0x94 -/* AC7484 800502E4 C4440000 */ lwc1 $f4, ($v0) -/* AC7488 800502E8 C60600E4 */ lwc1 $f6, 0xe4($s0) -/* AC748C 800502EC C44A0004 */ lwc1 $f10, 4($v0) -/* AC7490 800502F0 C60800E8 */ lwc1 $f8, 0xe8($s0) -/* AC7494 800502F4 46062380 */ add.s $f14, $f4, $f6 -/* AC7498 800502F8 26060050 */ addiu $a2, $s0, 0x50 -/* AC749C 800502FC C4C00000 */ lwc1 $f0, ($a2) -/* AC74A0 80050300 46085400 */ add.s $f16, $f10, $f8 -/* AC74A4 80050304 C60600EC */ lwc1 $f6, 0xec($s0) -/* AC74A8 80050308 C4440008 */ lwc1 $f4, 8($v0) -/* AC74AC 8005030C 46007281 */ sub.s $f10, $f14, $f0 -/* AC74B0 80050310 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* AC74B4 80050314 44814000 */ mtc1 $at, $f8 -/* AC74B8 80050318 46062480 */ add.s $f18, $f4, $f6 -/* AC74BC 8005031C 27A40070 */ addiu $a0, $sp, 0x70 -/* AC74C0 80050320 46085102 */ mul.s $f4, $f10, $f8 -/* AC74C4 80050324 44814000 */ mtc1 $at, $f8 -/* AC74C8 80050328 02202825 */ move $a1, $s1 -/* AC74CC 8005032C 46040180 */ add.s $f6, $f0, $f4 -/* AC74D0 80050330 E7A60084 */ swc1 $f6, 0x84($sp) -/* AC74D4 80050334 C4C20004 */ lwc1 $f2, 4($a2) -/* AC74D8 80050338 46028281 */ sub.s $f10, $f16, $f2 -/* AC74DC 8005033C 46085102 */ mul.s $f4, $f10, $f8 -/* AC74E0 80050340 44814000 */ mtc1 $at, $f8 -/* AC74E4 80050344 46041180 */ add.s $f6, $f2, $f4 -/* AC74E8 80050348 E7A60088 */ swc1 $f6, 0x88($sp) -/* AC74EC 8005034C C4CC0008 */ lwc1 $f12, 8($a2) -/* AC74F0 80050350 AFA60040 */ sw $a2, 0x40($sp) -/* AC74F4 80050354 460C9281 */ sub.s $f10, $f18, $f12 -/* AC74F8 80050358 46085102 */ mul.s $f4, $f10, $f8 -/* AC74FC 8005035C 46046180 */ add.s $f6, $f12, $f4 -/* AC7500 80050360 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC7504 80050364 E7A6008C */ swc1 $f6, 0x8c($sp) -/* AC7508 80050368 27A40068 */ addiu $a0, $sp, 0x68 -/* AC750C 8005036C 02202825 */ move $a1, $s1 -/* AC7510 80050370 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC7514 80050374 27A60084 */ addiu $a2, $sp, 0x84 -/* AC7518 80050378 C7AA0068 */ lwc1 $f10, 0x68($sp) -/* AC751C 8005037C C7A80070 */ lwc1 $f8, 0x70($sp) -/* AC7520 80050380 C646000C */ lwc1 $f6, 0xc($s2) -/* AC7524 80050384 87A4006C */ lh $a0, 0x6c($sp) -/* AC7528 80050388 46085101 */ sub.s $f4, $f10, $f8 -/* AC752C 8005038C 87A50074 */ lh $a1, 0x74($sp) -/* AC7530 80050390 2407000A */ li $a3, 10 -/* AC7534 80050394 46062282 */ mul.s $f10, $f4, $f6 -/* AC7538 80050398 460A4100 */ add.s $f4, $f8, $f10 -/* AC753C 8005039C E7A40070 */ swc1 $f4, 0x70($sp) -/* AC7540 800503A0 C60800E0 */ lwc1 $f8, 0xe0($s0) -/* AC7544 800503A4 C646000C */ lwc1 $f6, 0xc($s2) -/* AC7548 800503A8 46083282 */ mul.s $f10, $f6, $f8 -/* AC754C 800503AC 44065000 */ mfc1 $a2, $f10 -/* AC7550 800503B0 0C010E47 */ jal func_8004391C -/* AC7554 800503B4 00000000 */ nop -/* AC7558 800503B8 A7A20074 */ sh $v0, 0x74($sp) -/* AC755C 800503BC C60600E0 */ lwc1 $f6, 0xe0($s0) -/* AC7560 800503C0 C644000C */ lwc1 $f4, 0xc($s2) -/* AC7564 800503C4 87A4006E */ lh $a0, 0x6e($sp) -/* AC7568 800503C8 87A50076 */ lh $a1, 0x76($sp) -/* AC756C 800503CC 46062202 */ mul.s $f8, $f4, $f6 -/* AC7570 800503D0 2407000A */ li $a3, 10 -/* AC7574 800503D4 44064000 */ mfc1 $a2, $f8 -/* AC7578 800503D8 0C010E47 */ jal func_8004391C -/* AC757C 800503DC 00000000 */ nop -/* AC7580 800503E0 A7A20076 */ sh $v0, 0x76($sp) -/* AC7584 800503E4 8FA40040 */ lw $a0, 0x40($sp) -/* AC7588 800503E8 02202825 */ move $a1, $s1 -/* AC758C 800503EC 0C010F0A */ jal func_80043C28 -/* AC7590 800503F0 27A60070 */ addiu $a2, $sp, 0x70 -/* AC7594 800503F4 8FA40040 */ lw $a0, 0x40($sp) -/* AC7598 800503F8 0C01EFE4 */ jal OLib_Vec3fDist -/* AC759C 800503FC 8FA50044 */ lw $a1, 0x44($sp) -/* AC75A0 80050400 C60A000C */ lwc1 $f10, 0xc($s0) -/* AC75A4 80050404 E60000DC */ swc1 $f0, 0xdc($s0) -/* AC75A8 80050408 A600015A */ sh $zero, 0x15a($s0) -/* AC75AC 8005040C 02002025 */ move $a0, $s0 -/* AC75B0 80050410 3C053F80 */ lui $a1, 0x3f80 -/* AC75B4 80050414 0C011429 */ jal func_800450A4 -/* AC75B8 80050418 E60A00FC */ swc1 $f10, 0xfc($s0) -/* AC75BC 8005041C E6000100 */ swc1 $f0, 0x100($s0) -/* AC75C0 80050420 8FBF002C */ lw $ra, 0x2c($sp) -/* AC75C4 80050424 8FB20028 */ lw $s2, 0x28($sp) -/* AC75C8 80050428 8FB10024 */ lw $s1, 0x24($sp) -/* AC75CC 8005042C 8FB00020 */ lw $s0, 0x20($sp) -/* AC75D0 80050430 27BD00A8 */ addiu $sp, $sp, 0xa8 -/* AC75D4 80050434 03E00008 */ jr $ra -/* AC75D8 80050438 24020001 */ li $v0, 1 diff --git a/asm/non_matchings/code/z_camera/Camera_Jump1.s b/asm/non_matchings/code/z_camera/Camera_Jump1.s deleted file mode 100644 index 58e42ef40d..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Jump1.s +++ /dev/null @@ -1,576 +0,0 @@ -.late_rodata -glabel D_80139F44 - .float 0.01 - .float 0.01 - .float 0.01 - -glabel D_80139F50 - .float 0.0001 - -glabel D_80139F54 - .float 0.01 - -glabel D_80139F58 - .float 0.01 - -glabel D_80139F5C - .float 0.01 - -glabel D_80139F60 - .float 0.01 - -glabel D_80139F64 - .float 0.01 - -glabel D_80139F68 - .float 0.01 - -glabel D_80139F6C - .float 0.01 - -glabel D_80139F70 - .float 0.01 - -glabel D_80139F74 - .float 0.01 - -glabel D_80139F78 - .float 0.01 - -glabel D_80139F7C - .float 0.99 - -.text -glabel Camera_Jump1 -/* AC0BE8 80049A48 27BDFF48 */ addiu $sp, $sp, -0xb8 -/* AC0BEC 80049A4C AFB0001C */ sw $s0, 0x1c($sp) -/* AC0BF0 80049A50 00808025 */ move $s0, $a0 -/* AC0BF4 80049A54 AFBF0024 */ sw $ra, 0x24($sp) -/* AC0BF8 80049A58 AFB10020 */ sw $s1, 0x20($sp) -/* AC0BFC 80049A5C 0C00B721 */ jal Player_GetCameraYOffset -/* AC0C00 80049A60 8C840090 */ lw $a0, 0x90($a0) -/* AC0C04 80049A64 8603015E */ lh $v1, 0x15e($s0) -/* AC0C08 80049A68 10600008 */ beqz $v1, .L80049A8C -/* AC0C0C 80049A6C 2401000A */ li $at, 10 -/* AC0C10 80049A70 10610006 */ beq $v1, $at, .L80049A8C -/* AC0C14 80049A74 24010014 */ li $at, 20 -/* AC0C18 80049A78 10610004 */ beq $v1, $at, .L80049A8C -/* AC0C1C 80049A7C 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 -/* AC0C20 80049A80 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* AC0C24 80049A84 85C30314 */ lh $v1, 0x314($t6) -/* AC0C28 80049A88 10600052 */ beqz $v1, .L80049BD4 -.L80049A8C: -/* AC0C2C 80049A8C 3C018014 */ lui $at, %hi(D_80139F44) -/* AC0C30 80049A90 C42E9F44 */ lwc1 $f14, %lo(D_80139F44)($at) -/* AC0C34 80049A94 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC0C38 80049A98 44814000 */ mtc1 $at, $f8 -/* AC0C3C 80049A9C 3C014288 */ lui $at, 0x4288 -/* AC0C40 80049AA0 3C0B8016 */ lui $t3, %hi(gGameInfo) -/* AC0C44 80049AA4 8D6BFA90 */ lw $t3, %lo(gGameInfo)($t3) -/* AC0C48 80049AA8 44818000 */ mtc1 $at, $f16 -/* AC0C4C 80049AAC 860F0142 */ lh $t7, 0x142($s0) -/* AC0C50 80049AB0 856C01F0 */ lh $t4, 0x1f0($t3) -/* AC0C54 80049AB4 46008483 */ div.s $f18, $f16, $f0 -/* AC0C58 80049AB8 3C198012 */ lui $t9, %hi(sCameraSettings+4) -/* AC0C5C 80049ABC 448C2000 */ mtc1 $t4, $f4 -/* AC0C60 80049AC0 000FC0C0 */ sll $t8, $t7, 3 -/* AC0C64 80049AC4 86080144 */ lh $t0, 0x144($s0) -/* AC0C68 80049AC8 468021A0 */ cvt.s.w $f6, $f4 -/* AC0C6C 80049ACC 0338C821 */ addu $t9, $t9, $t8 -/* AC0C70 80049AD0 8F39D068 */ lw $t9, %lo(sCameraSettings+4)($t9) -/* AC0C74 80049AD4 000848C0 */ sll $t1, $t0, 3 -/* AC0C78 80049AD8 3C0B8016 */ lui $t3, %hi(gGameInfo) # $t3, 0x8016 -/* AC0C7C 80049ADC 03295021 */ addu $t2, $t9, $t1 -/* AC0C80 80049AE0 8D420004 */ lw $v0, 4($t2) -/* AC0C84 80049AE4 844D0000 */ lh $t5, ($v0) -/* AC0C88 80049AE8 2442001C */ addiu $v0, $v0, 0x1c -/* AC0C8C 80049AEC 460E3302 */ mul.s $f12, $f6, $f14 -/* AC0C90 80049AF0 448D3000 */ mtc1 $t5, $f6 -/* AC0C94 80049AF4 460C4280 */ add.s $f10, $f8, $f12 -/* AC0C98 80049AF8 46126102 */ mul.s $f4, $f12, $f18 -/* AC0C9C 80049AFC 46803220 */ cvt.s.w $f8, $f6 -/* AC0CA0 80049B00 46045081 */ sub.s $f2, $f10, $f4 -/* AC0CA4 80049B04 460E4402 */ mul.s $f16, $f8, $f14 -/* AC0CA8 80049B08 00000000 */ nop -/* AC0CAC 80049B0C 46008482 */ mul.s $f18, $f16, $f0 -/* AC0CB0 80049B10 00000000 */ nop -/* AC0CB4 80049B14 46029282 */ mul.s $f10, $f18, $f2 -/* AC0CB8 80049B18 E60A0000 */ swc1 $f10, ($s0) -/* AC0CBC 80049B1C 844EFFE8 */ lh $t6, -0x18($v0) -/* AC0CC0 80049B20 448E2000 */ mtc1 $t6, $f4 -/* AC0CC4 80049B24 00000000 */ nop -/* AC0CC8 80049B28 468021A0 */ cvt.s.w $f6, $f4 -/* AC0CCC 80049B2C 460E3202 */ mul.s $f8, $f6, $f14 -/* AC0CD0 80049B30 00000000 */ nop -/* AC0CD4 80049B34 46004402 */ mul.s $f16, $f8, $f0 -/* AC0CD8 80049B38 00000000 */ nop -/* AC0CDC 80049B3C 46028482 */ mul.s $f18, $f16, $f2 -/* AC0CE0 80049B40 E6120004 */ swc1 $f18, 4($s0) -/* AC0CE4 80049B44 844FFFEC */ lh $t7, -0x14($v0) -/* AC0CE8 80049B48 448F5000 */ mtc1 $t7, $f10 -/* AC0CEC 80049B4C 00000000 */ nop -/* AC0CF0 80049B50 46805120 */ cvt.s.w $f4, $f10 -/* AC0CF4 80049B54 460E2182 */ mul.s $f6, $f4, $f14 -/* AC0CF8 80049B58 00000000 */ nop -/* AC0CFC 80049B5C 46003202 */ mul.s $f8, $f6, $f0 -/* AC0D00 80049B60 00000000 */ nop -/* AC0D04 80049B64 46024402 */ mul.s $f16, $f8, $f2 -/* AC0D08 80049B68 E6100008 */ swc1 $f16, 8($s0) -/* AC0D0C 80049B6C 8458FFF0 */ lh $t8, -0x10($v0) -/* AC0D10 80049B70 44989000 */ mtc1 $t8, $f18 -/* AC0D14 80049B74 00000000 */ nop -/* AC0D18 80049B78 468092A0 */ cvt.s.w $f10, $f18 -/* AC0D1C 80049B7C E60A000C */ swc1 $f10, 0xc($s0) -/* AC0D20 80049B80 8448FFF4 */ lh $t0, -0xc($v0) -/* AC0D24 80049B84 44882000 */ mtc1 $t0, $f4 -/* AC0D28 80049B88 00000000 */ nop -/* AC0D2C 80049B8C 468021A0 */ cvt.s.w $f6, $f4 -/* AC0D30 80049B90 460E3202 */ mul.s $f8, $f6, $f14 -/* AC0D34 80049B94 E6080010 */ swc1 $f8, 0x10($s0) -/* AC0D38 80049B98 8459FFF8 */ lh $t9, -8($v0) -/* AC0D3C 80049B9C 44998000 */ mtc1 $t9, $f16 -/* AC0D40 80049BA0 00000000 */ nop -/* AC0D44 80049BA4 468084A0 */ cvt.s.w $f18, $f16 -/* AC0D48 80049BA8 E6120014 */ swc1 $f18, 0x14($s0) -/* AC0D4C 80049BAC 8449FFFC */ lh $t1, -4($v0) -/* AC0D50 80049BB0 44895000 */ mtc1 $t1, $f10 -/* AC0D54 80049BB4 00000000 */ nop -/* AC0D58 80049BB8 46805120 */ cvt.s.w $f4, $f10 -/* AC0D5C 80049BBC 460E2182 */ mul.s $f6, $f4, $f14 -/* AC0D60 80049BC0 E6060018 */ swc1 $f6, 0x18($s0) -/* AC0D64 80049BC4 844A0000 */ lh $t2, ($v0) -/* AC0D68 80049BC8 A60A001C */ sh $t2, 0x1c($s0) -/* AC0D6C 80049BCC 8D6BFA90 */ lw $t3, %lo(gGameInfo)($t3) -/* AC0D70 80049BD0 85630314 */ lh $v1, 0x314($t3) -.L80049BD4: -/* AC0D74 80049BD4 50600004 */ beql $v1, $zero, .L80049BE8 -/* AC0D78 80049BD8 27A40060 */ addiu $a0, $sp, 0x60 -/* AC0D7C 80049BDC 0C011495 */ jal Camera_CopyPREGToModeValues -/* AC0D80 80049BE0 02002025 */ move $a0, $s0 -/* AC0D84 80049BE4 27A40060 */ addiu $a0, $sp, 0x60 -.L80049BE8: -/* AC0D88 80049BE8 0C00BBB9 */ jal func_8002EEE4 -/* AC0D8C 80049BEC 8E050090 */ lw $a1, 0x90($s0) -/* AC0D90 80049BF0 26050050 */ addiu $a1, $s0, 0x50 -/* AC0D94 80049BF4 2606005C */ addiu $a2, $s0, 0x5c -/* AC0D98 80049BF8 AFA60040 */ sw $a2, 0x40($sp) -/* AC0D9C 80049BFC AFA5003C */ sw $a1, 0x3c($sp) -/* AC0DA0 80049C00 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC0DA4 80049C04 27A40090 */ addiu $a0, $sp, 0x90 -/* AC0DA8 80049C08 26060074 */ addiu $a2, $s0, 0x74 -/* AC0DAC 80049C0C AFA60038 */ sw $a2, 0x38($sp) -/* AC0DB0 80049C10 27A40088 */ addiu $a0, $sp, 0x88 -/* AC0DB4 80049C14 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC0DB8 80049C18 8FA5003C */ lw $a1, 0x3c($sp) -/* AC0DBC 80049C1C 860C001C */ lh $t4, 0x1c($s0) -/* AC0DC0 80049C20 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 -/* AC0DC4 80049C24 AC2CD3A0 */ sw $t4, %lo(D_8011D3A0)($at) -/* AC0DC8 80049C28 8603015E */ lh $v1, 0x15e($s0) -/* AC0DCC 80049C2C 10600004 */ beqz $v1, .L80049C40 -/* AC0DD0 80049C30 2401000A */ li $at, 10 -/* AC0DD4 80049C34 10610002 */ beq $v1, $at, .L80049C40 -/* AC0DD8 80049C38 24010014 */ li $at, 20 -/* AC0DDC 80049C3C 1461001B */ bne $v1, $at, .L80049CAC -.L80049C40: -/* AC0DE0 80049C40 26110020 */ addiu $s1, $s0, 0x20 -/* AC0DE4 80049C44 A6200018 */ sh $zero, 0x18($s1) -/* AC0DE8 80049C48 862D0018 */ lh $t5, 0x18($s1) -/* AC0DEC 80049C4C 240E00C8 */ li $t6, 200 -/* AC0DF0 80049C50 AE20000C */ sw $zero, 0xc($s1) -/* AC0DF4 80049C54 A6200024 */ sh $zero, 0x24($s1) -/* AC0DF8 80049C58 A62E0026 */ sh $t6, 0x26($s1) -/* AC0DFC 80049C5C A620001A */ sh $zero, 0x1a($s1) -/* AC0E00 80049C60 A62D0016 */ sh $t5, 0x16($s1) -/* AC0E04 80049C64 C608000C */ lwc1 $f8, 0xc($s0) -/* AC0E08 80049C68 3C018014 */ lui $at, %hi(D_80139F50) -/* AC0E0C 80049C6C E6280010 */ swc1 $f8, 0x10($s1) -/* AC0E10 80049C70 C61200F4 */ lwc1 $f18, 0xf4($s0) -/* AC0E14 80049C74 C6100098 */ lwc1 $f16, 0x98($s0) -/* AC0E18 80049C78 46128281 */ sub.s $f10, $f16, $f18 -/* AC0E1C 80049C7C E62A001C */ swc1 $f10, 0x1c($s1) -/* AC0E20 80049C80 C7A40090 */ lwc1 $f4, 0x90($sp) -/* AC0E24 80049C84 E6240020 */ swc1 $f4, 0x20($s1) -/* AC0E28 80049C88 C60600E8 */ lwc1 $f6, 0xe8($s0) -/* AC0E2C 80049C8C C60800F4 */ lwc1 $f8, 0xf4($s0) -/* AC0E30 80049C90 860F015E */ lh $t7, 0x15e($s0) -/* AC0E34 80049C94 46083401 */ sub.s $f16, $f6, $f8 -/* AC0E38 80049C98 25F80001 */ addiu $t8, $t7, 1 -/* AC0E3C 80049C9C E61000E8 */ swc1 $f16, 0xe8($s0) -/* AC0E40 80049CA0 C4329F50 */ lwc1 $f18, %lo(D_80139F50)($at) -/* AC0E44 80049CA4 A618015E */ sh $t8, 0x15e($s0) -/* AC0E48 80049CA8 E61200CC */ swc1 $f18, 0xcc($s0) -.L80049CAC: -/* AC0E4C 80049CAC 26110020 */ addiu $s1, $s0, 0x20 -/* AC0E50 80049CB0 8622001A */ lh $v0, 0x1a($s1) -/* AC0E54 80049CB4 1040002D */ beqz $v0, .L80049D6C -/* AC0E58 80049CB8 3C088016 */ lui $t0, %hi(gGameInfo) -/* AC0E5C 80049CBC 8D08FA90 */ lw $t0, %lo(gGameInfo)($t0) -/* AC0E60 80049CC0 44822000 */ mtc1 $v0, $f4 -/* AC0E64 80049CC4 3C018014 */ lui $at, %hi(D_80139F54) -/* AC0E68 80049CC8 851901C8 */ lh $t9, 0x1c8($t0) -/* AC0E6C 80049CCC C4329F54 */ lwc1 $f18, %lo(D_80139F54)($at) -/* AC0E70 80049CD0 468021A0 */ cvt.s.w $f6, $f4 -/* AC0E74 80049CD4 44994000 */ mtc1 $t9, $f8 -/* AC0E78 80049CD8 C60A000C */ lwc1 $f10, 0xc($s0) -/* AC0E7C 80049CDC 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC0E80 80049CE0 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC0E84 80049CE4 46804420 */ cvt.s.w $f16, $f8 -/* AC0E88 80049CE8 C60E00C8 */ lwc1 $f14, 0xc8($s0) -/* AC0E8C 80049CEC 46065300 */ add.s $f12, $f10, $f6 -/* AC0E90 80049CF0 46128102 */ mul.s $f4, $f16, $f18 -/* AC0E94 80049CF4 44062000 */ mfc1 $a2, $f4 -/* AC0E98 80049CF8 0C010E27 */ jal func_8004389C -/* AC0E9C 80049CFC 00000000 */ nop -/* AC0EA0 80049D00 E60000C8 */ swc1 $f0, 0xc8($s0) -/* AC0EA4 80049D04 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* AC0EA8 80049D08 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* AC0EAC 80049D0C 862A001A */ lh $t2, 0x1a($s1) -/* AC0EB0 80049D10 3C018014 */ lui $at, %hi(D_80139F58) -/* AC0EB4 80049D14 844B01C8 */ lh $t3, 0x1c8($v0) -/* AC0EB8 80049D18 844901A2 */ lh $t1, 0x1a2($v0) -/* AC0EBC 80049D1C 448A4000 */ mtc1 $t2, $f8 -/* AC0EC0 80049D20 448B9000 */ mtc1 $t3, $f18 -/* AC0EC4 80049D24 44895000 */ mtc1 $t1, $f10 -/* AC0EC8 80049D28 46804420 */ cvt.s.w $f16, $f8 -/* AC0ECC 80049D2C 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC0ED0 80049D30 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC0ED4 80049D34 C60E00C4 */ lwc1 $f14, 0xc4($s0) -/* AC0ED8 80049D38 46809120 */ cvt.s.w $f4, $f18 -/* AC0EDC 80049D3C 468051A0 */ cvt.s.w $f6, $f10 -/* AC0EE0 80049D40 C42A9F58 */ lwc1 $f10, %lo(D_80139F58)($at) -/* AC0EE4 80049D44 460A2202 */ mul.s $f8, $f4, $f10 -/* AC0EE8 80049D48 46103300 */ add.s $f12, $f6, $f16 -/* AC0EEC 80049D4C 44064000 */ mfc1 $a2, $f8 -/* AC0EF0 80049D50 0C010E27 */ jal func_8004389C -/* AC0EF4 80049D54 00000000 */ nop -/* AC0EF8 80049D58 E60000C4 */ swc1 $f0, 0xc4($s0) -/* AC0EFC 80049D5C 862C001A */ lh $t4, 0x1a($s1) -/* AC0F00 80049D60 258DFFFF */ addiu $t5, $t4, -1 -/* AC0F04 80049D64 10000023 */ b .L80049DF4 -/* AC0F08 80049D68 A62D001A */ sh $t5, 0x1a($s1) -.L80049D6C: -/* AC0F0C 80049D6C 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 -/* AC0F10 80049D70 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* AC0F14 80049D74 3C018014 */ lui $at, %hi(D_80139F5C) -/* AC0F18 80049D78 C4329F5C */ lwc1 $f18, %lo(D_80139F5C)($at) -/* AC0F1C 80049D7C 85CF01C8 */ lh $t7, 0x1c8($t6) -/* AC0F20 80049D80 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000 -/* AC0F24 80049D84 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC0F28 80049D88 448F3000 */ mtc1 $t7, $f6 -/* AC0F2C 80049D8C C60C000C */ lwc1 $f12, 0xc($s0) -/* AC0F30 80049D90 C60E00C8 */ lwc1 $f14, 0xc8($s0) -/* AC0F34 80049D94 46803420 */ cvt.s.w $f16, $f6 -/* AC0F38 80049D98 46128102 */ mul.s $f4, $f16, $f18 -/* AC0F3C 80049D9C 44062000 */ mfc1 $a2, $f4 -/* AC0F40 80049DA0 0C010E27 */ jal func_8004389C -/* AC0F44 80049DA4 00000000 */ nop -/* AC0F48 80049DA8 E60000C8 */ swc1 $f0, 0xc8($s0) -/* AC0F4C 80049DAC 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* AC0F50 80049DB0 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* AC0F54 80049DB4 3C018014 */ lui $at, %hi(D_80139F60) -/* AC0F58 80049DB8 C4309F60 */ lwc1 $f16, %lo(D_80139F60)($at) -/* AC0F5C 80049DBC 844801C8 */ lh $t0, 0x1c8($v0) -/* AC0F60 80049DC0 845801A2 */ lh $t8, 0x1a2($v0) -/* AC0F64 80049DC4 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000 -/* AC0F68 80049DC8 44884000 */ mtc1 $t0, $f8 -/* AC0F6C 80049DCC 44985000 */ mtc1 $t8, $f10 -/* AC0F70 80049DD0 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC0F74 80049DD4 468041A0 */ cvt.s.w $f6, $f8 -/* AC0F78 80049DD8 C60E00C4 */ lwc1 $f14, 0xc4($s0) -/* AC0F7C 80049DDC 46805320 */ cvt.s.w $f12, $f10 -/* AC0F80 80049DE0 46103482 */ mul.s $f18, $f6, $f16 -/* AC0F84 80049DE4 44069000 */ mfc1 $a2, $f18 -/* AC0F88 80049DE8 0C010E27 */ jal func_8004389C -/* AC0F8C 80049DEC 00000000 */ nop -/* AC0F90 80049DF0 E60000C4 */ swc1 $f0, 0xc4($s0) -.L80049DF4: -/* AC0F94 80049DF4 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* AC0F98 80049DF8 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* AC0F9C 80049DFC 3C018014 */ lui $at, %hi(D_80139F64) -/* AC0FA0 80049E00 C4209F64 */ lwc1 $f0, %lo(D_80139F64)($at) -/* AC0FA4 80049E04 84590198 */ lh $t9, 0x198($v0) -/* AC0FA8 80049E08 844901C6 */ lh $t1, 0x1c6($v0) -/* AC0FAC 80049E0C 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000 -/* AC0FB0 80049E10 44992000 */ mtc1 $t9, $f4 -/* AC0FB4 80049E14 44894000 */ mtc1 $t1, $f8 -/* AC0FB8 80049E18 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC0FBC 80049E1C 468022A0 */ cvt.s.w $f10, $f4 -/* AC0FC0 80049E20 C60E00CC */ lwc1 $f14, 0xcc($s0) -/* AC0FC4 80049E24 468041A0 */ cvt.s.w $f6, $f8 -/* AC0FC8 80049E28 46005302 */ mul.s $f12, $f10, $f0 -/* AC0FCC 80049E2C 00000000 */ nop -/* AC0FD0 80049E30 46003402 */ mul.s $f16, $f6, $f0 -/* AC0FD4 80049E34 44068000 */ mfc1 $a2, $f16 -/* AC0FD8 80049E38 0C010E27 */ jal func_8004389C -/* AC0FDC 80049E3C 00000000 */ nop -/* AC0FE0 80049E40 3C018014 */ lui $at, %hi(D_80139F68) -/* AC0FE4 80049E44 C4229F68 */ lwc1 $f2, %lo(D_80139F68)($at) -/* AC0FE8 80049E48 E60000CC */ swc1 $f0, 0xcc($s0) -/* AC0FEC 80049E4C 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* AC0FF0 80049E50 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* AC0FF4 80049E54 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC0FF8 80049E58 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC0FFC 80049E5C 844A019A */ lh $t2, 0x19a($v0) -/* AC1000 80049E60 844B01C8 */ lh $t3, 0x1c8($v0) -/* AC1004 80049E64 C60E00D0 */ lwc1 $f14, 0xd0($s0) -/* AC1008 80049E68 448A9000 */ mtc1 $t2, $f18 -/* AC100C 80049E6C 448B5000 */ mtc1 $t3, $f10 -/* AC1010 80049E70 46809120 */ cvt.s.w $f4, $f18 -/* AC1014 80049E74 46805220 */ cvt.s.w $f8, $f10 -/* AC1018 80049E78 46022302 */ mul.s $f12, $f4, $f2 -/* AC101C 80049E7C 00000000 */ nop -/* AC1020 80049E80 46024182 */ mul.s $f6, $f8, $f2 -/* AC1024 80049E84 44063000 */ mfc1 $a2, $f6 -/* AC1028 80049E88 0C010E27 */ jal func_8004389C -/* AC102C 80049E8C 00000000 */ nop -/* AC1030 80049E90 E60000D0 */ swc1 $f0, 0xd0($s0) -/* AC1034 80049E94 3C0C8016 */ lui $t4, %hi(gGameInfo) # $t4, 0x8016 -/* AC1038 80049E98 8D8CFA90 */ lw $t4, %lo(gGameInfo)($t4) -/* AC103C 80049E9C 3C018014 */ lui $at, %hi(D_80139F6C) -/* AC1040 80049EA0 C4249F6C */ lwc1 $f4, %lo(D_80139F6C)($at) -/* AC1044 80049EA4 858D019C */ lh $t5, 0x19c($t4) -/* AC1048 80049EA8 3C063D4C */ lui $a2, (0x3D4CCCCD >> 16) # lui $a2, 0x3d4c -/* AC104C 80049EAC 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000 -/* AC1050 80049EB0 448D8000 */ mtc1 $t5, $f16 -/* AC1054 80049EB4 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC1058 80049EB8 34C6CCCD */ ori $a2, (0x3D4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd -/* AC105C 80049EBC 468084A0 */ cvt.s.w $f18, $f16 -/* AC1060 80049EC0 46000386 */ mov.s $f14, $f0 -/* AC1064 80049EC4 46049302 */ mul.s $f12, $f18, $f4 -/* AC1068 80049EC8 0C010E27 */ jal func_8004389C -/* AC106C 80049ECC 00000000 */ nop -/* AC1070 80049ED0 E60000D4 */ swc1 $f0, 0xd4($s0) -/* AC1074 80049ED4 8E060000 */ lw $a2, ($s0) -/* AC1078 80049ED8 AFA00010 */ sw $zero, 0x10($sp) -/* AC107C 80049EDC 02002025 */ move $a0, $s0 -/* AC1080 80049EE0 27A50088 */ addiu $a1, $sp, 0x88 -/* AC1084 80049EE4 0C011635 */ jal func_800458D4 -/* AC1088 80049EE8 2627001C */ addiu $a3, $s1, 0x1c -/* AC108C 80049EEC 27AF0090 */ addiu $t7, $sp, 0x90 -/* AC1090 80049EF0 8DE80000 */ lw $t0, ($t7) -/* AC1094 80049EF4 27AE0080 */ addiu $t6, $sp, 0x80 -/* AC1098 80049EF8 27A40078 */ addiu $a0, $sp, 0x78 -/* AC109C 80049EFC ADC80000 */ sw $t0, ($t6) -/* AC10A0 80049F00 8DF80004 */ lw $t8, 4($t7) -/* AC10A4 80049F04 ADD80004 */ sw $t8, 4($t6) -/* AC10A8 80049F08 8FA60040 */ lw $a2, 0x40($sp) -/* AC10AC 80049F0C 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC10B0 80049F10 8FA5003C */ lw $a1, 0x3c($sp) -/* AC10B4 80049F14 3C198016 */ lui $t9, %hi(gGameInfo) # $t9, 0x8016 -/* AC10B8 80049F18 8F39FA90 */ lw $t9, %lo(gGameInfo)($t9) -/* AC10BC 80049F1C 3C018014 */ lui $at, %hi(D_80139F70) -/* AC10C0 80049F20 C4269F70 */ lwc1 $f6, %lo(D_80139F70)($at) -/* AC10C4 80049F24 872901CE */ lh $t1, 0x1ce($t9) -/* AC10C8 80049F28 C7AC0078 */ lwc1 $f12, 0x78($sp) -/* AC10CC 80049F2C C7AE0090 */ lwc1 $f14, 0x90($sp) -/* AC10D0 80049F30 44895000 */ mtc1 $t1, $f10 -/* AC10D4 80049F34 3C073F80 */ lui $a3, 0x3f80 -/* AC10D8 80049F38 46805220 */ cvt.s.w $f8, $f10 -/* AC10DC 80049F3C 46064402 */ mul.s $f16, $f8, $f6 -/* AC10E0 80049F40 44068000 */ mfc1 $a2, $f16 -/* AC10E4 80049F44 0C010E27 */ jal func_8004389C -/* AC10E8 80049F48 00000000 */ nop -/* AC10EC 80049F4C 3C0A8016 */ lui $t2, %hi(gGameInfo) # $t2, 0x8016 -/* AC10F0 80049F50 8D4AFA90 */ lw $t2, %lo(gGameInfo)($t2) -/* AC10F4 80049F54 E7A00080 */ swc1 $f0, 0x80($sp) -/* AC10F8 80049F58 3C018014 */ lui $at, %hi(D_80139F74) -/* AC10FC 80049F5C 854B01CE */ lh $t3, 0x1ce($t2) -/* AC1100 80049F60 C42A9F74 */ lwc1 $f10, %lo(D_80139F74)($at) -/* AC1104 80049F64 87A4007C */ lh $a0, 0x7c($sp) -/* AC1108 80049F68 448B9000 */ mtc1 $t3, $f18 -/* AC110C 80049F6C 87A50094 */ lh $a1, 0x94($sp) -/* AC1110 80049F70 2407000A */ li $a3, 10 -/* AC1114 80049F74 46809120 */ cvt.s.w $f4, $f18 -/* AC1118 80049F78 460A2202 */ mul.s $f8, $f4, $f10 -/* AC111C 80049F7C 44064000 */ mfc1 $a2, $f8 -/* AC1120 80049F80 0C010E47 */ jal func_8004391C -/* AC1124 80049F84 00000000 */ nop -/* AC1128 80049F88 A7A20084 */ sh $v0, 0x84($sp) -/* AC112C 80049F8C 862C0018 */ lh $t4, 0x18($s1) -/* AC1130 80049F90 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC1134 80049F94 02002025 */ move $a0, $s0 -/* AC1138 80049F98 11800017 */ beqz $t4, .L80049FF8 -/* AC113C 80049F9C 87A5008E */ lh $a1, 0x8e($sp) -/* AC1140 80049FA0 44813000 */ mtc1 $at, $f6 -/* AC1144 80049FA4 C61000C8 */ lwc1 $f16, 0xc8($s0) -/* AC1148 80049FA8 86240016 */ lh $a0, 0x16($s1) -/* AC114C 80049FAC 87A5008E */ lh $a1, 0x8e($sp) -/* AC1150 80049FB0 46103483 */ div.s $f18, $f6, $f16 -/* AC1154 80049FB4 2407000A */ li $a3, 10 -/* AC1158 80049FB8 44069000 */ mfc1 $a2, $f18 -/* AC115C 80049FBC 0C010E47 */ jal func_8004391C -/* AC1160 80049FC0 00000000 */ nop -/* AC1164 80049FC4 A7A20086 */ sh $v0, 0x86($sp) -/* AC1168 80049FC8 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC116C 80049FCC 44812000 */ mtc1 $at, $f4 -/* AC1170 80049FD0 C60A00C8 */ lwc1 $f10, 0xc8($s0) -/* AC1174 80049FD4 86240014 */ lh $a0, 0x14($s1) -/* AC1178 80049FD8 87A5008C */ lh $a1, 0x8c($sp) -/* AC117C 80049FDC 460A2203 */ div.s $f8, $f4, $f10 -/* AC1180 80049FE0 2407000A */ li $a3, 10 -/* AC1184 80049FE4 44064000 */ mfc1 $a2, $f8 -/* AC1188 80049FE8 0C010E47 */ jal func_8004391C -/* AC118C 80049FEC 00000000 */ nop -/* AC1190 80049FF0 10000007 */ b .L8004A010 -/* AC1194 80049FF4 A7A20084 */ sh $v0, 0x84($sp) -.L80049FF8: -/* AC1198 80049FF8 44803000 */ mtc1 $zero, $f6 -/* AC119C 80049FFC 860600A2 */ lh $a2, 0xa2($s0) -/* AC11A0 8004A000 8E070010 */ lw $a3, 0x10($s0) -/* AC11A4 8004A004 0C011B2D */ jal func_80046CB4 -/* AC11A8 8004A008 E7A60010 */ swc1 $f6, 0x10($sp) -/* AC11AC 8004A00C A7A20086 */ sh $v0, 0x86($sp) -.L8004A010: -/* AC11B0 8004A010 C6000004 */ lwc1 $f0, 4($s0) -/* AC11B4 8004A014 C7B00080 */ lwc1 $f16, 0x80($sp) -/* AC11B8 8004A018 C7B20080 */ lwc1 $f18, 0x80($sp) -/* AC11BC 8004A01C 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* AC11C0 8004A020 4600803C */ c.lt.s $f16, $f0 -/* AC11C4 8004A024 27A40098 */ addiu $a0, $sp, 0x98 -/* AC11C8 8004A028 27A60080 */ addiu $a2, $sp, 0x80 -/* AC11CC 8004A02C 45020004 */ bc1fl .L8004A040 -/* AC11D0 8004A030 C6000008 */ lwc1 $f0, 8($s0) -/* AC11D4 8004A034 10000007 */ b .L8004A054 -/* AC11D8 8004A038 E7A00080 */ swc1 $f0, 0x80($sp) -/* AC11DC 8004A03C C6000008 */ lwc1 $f0, 8($s0) -.L8004A040: -/* AC11E0 8004A040 4612003C */ c.lt.s $f0, $f18 -/* AC11E4 8004A044 00000000 */ nop -/* AC11E8 8004A048 45000002 */ bc1f .L8004A054 -/* AC11EC 8004A04C 00000000 */ nop -/* AC11F0 8004A050 E7A00080 */ swc1 $f0, 0x80($sp) -.L8004A054: -/* AC11F4 8004A054 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* AC11F8 8004A058 87AD0084 */ lh $t5, 0x84($sp) -/* AC11FC 8004A05C 87AE0084 */ lh $t6, 0x84($sp) -/* AC1200 8004A060 8443019E */ lh $v1, 0x19e($v0) -/* AC1204 8004A064 006D082A */ slt $at, $v1, $t5 -/* AC1208 8004A068 50200004 */ beql $at, $zero, .L8004A07C -/* AC120C 8004A06C 844301DA */ lh $v1, 0x1da($v0) -/* AC1210 8004A070 10000006 */ b .L8004A08C -/* AC1214 8004A074 A7A30084 */ sh $v1, 0x84($sp) -/* AC1218 8004A078 844301DA */ lh $v1, 0x1da($v0) -.L8004A07C: -/* AC121C 8004A07C 01C3082A */ slt $at, $t6, $v1 -/* AC1220 8004A080 10200002 */ beqz $at, .L8004A08C -/* AC1224 8004A084 00000000 */ nop -/* AC1228 8004A088 A7A30084 */ sh $v1, 0x84($sp) -.L8004A08C: -/* AC122C 8004A08C 0C010F0A */ jal func_80043C28 -/* AC1230 8004A090 8FA5003C */ lw $a1, 0x3c($sp) -/* AC1234 8004A094 8FA30038 */ lw $v1, 0x38($sp) -/* AC1238 8004A098 C7A40098 */ lwc1 $f4, 0x98($sp) -/* AC123C 8004A09C 3C0F8016 */ lui $t7, %hi(gGameInfo) # $t7, 0x8016 -/* AC1240 8004A0A0 3C018014 */ lui $at, %hi(D_80139F78) -/* AC1244 8004A0A4 E4640000 */ swc1 $f4, ($v1) -/* AC1248 8004A0A8 C7AA00A0 */ lwc1 $f10, 0xa0($sp) -/* AC124C 8004A0AC C4600004 */ lwc1 $f0, 4($v1) -/* AC1250 8004A0B0 E46A0008 */ swc1 $f10, 8($v1) -/* AC1254 8004A0B4 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7) -/* AC1258 8004A0B8 C4309F78 */ lwc1 $f16, %lo(D_80139F78)($at) -/* AC125C 8004A0BC C7A4009C */ lwc1 $f4, 0x9c($sp) -/* AC1260 8004A0C0 85F801D2 */ lh $t8, 0x1d2($t7) -/* AC1264 8004A0C4 24010007 */ li $at, 7 -/* AC1268 8004A0C8 46002281 */ sub.s $f10, $f4, $f0 -/* AC126C 8004A0CC 44984000 */ mtc1 $t8, $f8 -/* AC1270 8004A0D0 00000000 */ nop -/* AC1274 8004A0D4 468041A0 */ cvt.s.w $f6, $f8 -/* AC1278 8004A0D8 46103482 */ mul.s $f18, $f6, $f16 -/* AC127C 8004A0DC 00000000 */ nop -/* AC1280 8004A0E0 46125202 */ mul.s $f8, $f10, $f18 -/* AC1284 8004A0E4 46080180 */ add.s $f6, $f0, $f8 -/* AC1288 8004A0E8 E4660004 */ swc1 $f6, 4($v1) -/* AC128C 8004A0EC 86080140 */ lh $t0, 0x140($s0) -/* AC1290 8004A0F0 15010037 */ bne $t0, $at, .L8004A1D0 -/* AC1294 8004A0F4 00000000 */ nop -/* AC1298 8004A0F8 8619001C */ lh $t9, 0x1c($s0) -/* AC129C 8004A0FC 02002025 */ move $a0, $s0 -/* AC12A0 8004A100 27A50080 */ addiu $a1, $sp, 0x80 -/* AC12A4 8004A104 33290010 */ andi $t1, $t9, 0x10 -/* AC12A8 8004A108 15200031 */ bnez $t1, .L8004A1D0 -/* AC12AC 8004A10C 27AA00A4 */ addiu $t2, $sp, 0xa4 -/* AC12B0 8004A110 8E060004 */ lw $a2, 4($s0) -/* AC12B4 8004A114 8E07000C */ lw $a3, 0xc($s0) -/* AC12B8 8004A118 AFB10014 */ sw $s1, 0x14($sp) -/* AC12BC 8004A11C 0C011B88 */ jal func_80046E20 -/* AC12C0 8004A120 AFAA0010 */ sw $t2, 0x10($sp) -/* AC12C4 8004A124 860B001C */ lh $t3, 0x1c($s0) -/* AC12C8 8004A128 87AD0094 */ lh $t5, 0x94($sp) -/* AC12CC 8004A12C 27A40080 */ addiu $a0, $sp, 0x80 -/* AC12D0 8004A130 316C0004 */ andi $t4, $t3, 4 -/* AC12D4 8004A134 11800008 */ beqz $t4, .L8004A158 -/* AC12D8 8004A138 8FA50040 */ lw $a1, 0x40($sp) -/* AC12DC 8004A13C 000D7023 */ negu $t6, $t5 -/* AC12E0 8004A140 A60E0134 */ sh $t6, 0x134($s0) -/* AC12E4 8004A144 87AF0096 */ lh $t7, 0x96($sp) -/* AC12E8 8004A148 A6000138 */ sh $zero, 0x138($s0) -/* AC12EC 8004A14C 25F88001 */ addiu $t8, $t7, -0x7fff -/* AC12F0 8004A150 10000008 */ b .L8004A174 -/* AC12F4 8004A154 A6180136 */ sh $t8, 0x136($s0) -.L8004A158: -/* AC12F8 8004A158 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC12FC 8004A15C 8FA6003C */ lw $a2, 0x3c($sp) -/* AC1300 8004A160 87A80084 */ lh $t0, 0x84($sp) -/* AC1304 8004A164 A6080134 */ sh $t0, 0x134($s0) -/* AC1308 8004A168 87B90086 */ lh $t9, 0x86($sp) -/* AC130C 8004A16C A6000138 */ sh $zero, 0x138($s0) -/* AC1310 8004A170 A6190136 */ sh $t9, 0x136($s0) -.L8004A174: -/* AC1314 8004A174 86290018 */ lh $t1, 0x18($s1) -/* AC1318 8004A178 3C018014 */ lui $at, %hi(D_80139F7C) -/* AC131C 8004A17C C7A400A4 */ lwc1 $f4, 0xa4($sp) -/* AC1320 8004A180 51200020 */ beql $t1, $zero, .L8004A204 -/* AC1324 8004A184 8FA4003C */ lw $a0, 0x3c($sp) -/* AC1328 8004A188 C4309F7C */ lwc1 $f16, %lo(D_80139F7C)($at) -/* AC132C 8004A18C 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC1330 8004A190 44819000 */ mtc1 $at, $f18 -/* AC1334 8004A194 46048282 */ mul.s $f10, $f16, $f4 -/* AC1338 8004A198 862A0016 */ lh $t2, 0x16($s1) -/* AC133C 8004A19C 86050136 */ lh $a1, 0x136($s0) -/* AC1340 8004A1A0 2407000A */ li $a3, 10 -/* AC1344 8004A1A4 254D8001 */ addiu $t5, $t2, -0x7fff -/* AC1348 8004A1A8 01A5C023 */ subu $t8, $t5, $a1 -/* AC134C 8004A1AC 00B82021 */ addu $a0, $a1, $t8 -/* AC1350 8004A1B0 460A9201 */ sub.s $f8, $f18, $f10 -/* AC1354 8004A1B4 00042400 */ sll $a0, $a0, 0x10 -/* AC1358 8004A1B8 00042403 */ sra $a0, $a0, 0x10 -/* AC135C 8004A1BC 44064000 */ mfc1 $a2, $f8 -/* AC1360 8004A1C0 0C010E47 */ jal func_8004391C -/* AC1364 8004A1C4 00000000 */ nop -/* AC1368 8004A1C8 1000000D */ b .L8004A200 -/* AC136C 8004A1CC A6020136 */ sh $v0, 0x136($s0) -.L8004A1D0: -/* AC1370 8004A1D0 C606000C */ lwc1 $f6, 0xc($s0) -/* AC1374 8004A1D4 A6200018 */ sh $zero, 0x18($s1) -/* AC1378 8004A1D8 3C018012 */ lui $at, %hi(D_8011D3E8) # $at, 0x8012 -/* AC137C 8004A1DC E6260010 */ swc1 $f6, 0x10($s1) -/* AC1380 8004A1E0 AC20D3E8 */ sw $zero, %lo(D_8011D3E8)($at) -/* AC1384 8004A1E4 8C690000 */ lw $t1, ($v1) -/* AC1388 8004A1E8 8FA80040 */ lw $t0, 0x40($sp) -/* AC138C 8004A1EC AD090000 */ sw $t1, ($t0) -/* AC1390 8004A1F0 8C790004 */ lw $t9, 4($v1) -/* AC1394 8004A1F4 AD190004 */ sw $t9, 4($t0) -/* AC1398 8004A1F8 8C690008 */ lw $t1, 8($v1) -/* AC139C 8004A1FC AD090008 */ sw $t1, 8($t0) -.L8004A200: -/* AC13A0 8004A200 8FA4003C */ lw $a0, 0x3c($sp) -.L8004A204: -/* AC13A4 8004A204 0C01EFE4 */ jal OLib_Vec3fDist -/* AC13A8 8004A208 8FA50040 */ lw $a1, 0x40($sp) -/* AC13AC 8004A20C E60000DC */ swc1 $f0, 0xdc($s0) -/* AC13B0 8004A210 00002025 */ move $a0, $zero -/* AC13B4 8004A214 8605015A */ lh $a1, 0x15a($s0) -/* AC13B8 8004A218 3C063F00 */ lui $a2, 0x3f00 -/* AC13BC 8004A21C 0C010E47 */ jal func_8004391C -/* AC13C0 8004A220 2407000A */ li $a3, 10 -/* AC13C4 8004A224 A602015A */ sh $v0, 0x15a($s0) -/* AC13C8 8004A228 02002025 */ move $a0, $s0 -/* AC13CC 8004A22C 0C011429 */ jal func_800450A4 -/* AC13D0 8004A230 8E050018 */ lw $a1, 0x18($s0) -/* AC13D4 8004A234 E6000100 */ swc1 $f0, 0x100($s0) -/* AC13D8 8004A238 8FBF0024 */ lw $ra, 0x24($sp) -/* AC13DC 8004A23C 8FB10020 */ lw $s1, 0x20($sp) -/* AC13E0 8004A240 8FB0001C */ lw $s0, 0x1c($sp) -/* AC13E4 8004A244 27BD00B8 */ addiu $sp, $sp, 0xb8 -/* AC13E8 8004A248 03E00008 */ jr $ra -/* AC13EC 8004A24C 24020001 */ li $v0, 1 diff --git a/asm/non_matchings/code/z_camera/Camera_Jump2.s b/asm/non_matchings/code/z_camera/Camera_Jump2.s deleted file mode 100644 index bae679c61c..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Jump2.s +++ /dev/null @@ -1,747 +0,0 @@ -.rdata -glabel D_80139140 - .asciz "\x1b[43;30mcamera: climb: no floor \n\x1b[m" - .balign 4 - -.late_rodata -glabel D_80139F80 - .float 0.01 - .float 0.01 - .float 0.01 - -glabel D_80139F8C - .float 0.01 - -glabel D_80139F90 - .float 0.01 - -glabel D_80139F94 - .float 0.01 - -glabel D_80139F98 - .float 0.05 - -glabel D_80139F9C - .float 2.2 - -glabel D_80139FA0 - .float 0.01 - -glabel D_80139FA4 - .float 0.01 - -glabel D_80139FA8 - .float 0.01 - -glabel D_80139FAC - .float 0.01 - -.text -glabel Camera_Jump2 -/* AC13F0 8004A250 27BDFF20 */ addiu $sp, $sp, -0xe0 -/* AC13F4 8004A254 AFB00018 */ sw $s0, 0x18($sp) -/* AC13F8 8004A258 00808025 */ move $s0, $a0 -/* AC13FC 8004A25C AFBF001C */ sw $ra, 0x1c($sp) -/* AC1400 8004A260 0C00B721 */ jal Player_GetCameraYOffset -/* AC1404 8004A264 8C840090 */ lw $a0, 0x90($a0) -/* AC1408 8004A268 E7A00048 */ swc1 $f0, 0x48($sp) -/* AC140C 8004A26C 8603015E */ lh $v1, 0x15e($s0) -/* AC1410 8004A270 10600009 */ beqz $v1, .L8004A298 -/* AC1414 8004A274 2401000A */ li $at, 10 -/* AC1418 8004A278 10610007 */ beq $v1, $at, .L8004A298 -/* AC141C 8004A27C 24010014 */ li $at, 20 -/* AC1420 8004A280 10610005 */ beq $v1, $at, .L8004A298 -/* AC1424 8004A284 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 -/* AC1428 8004A288 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* AC142C 8004A28C 85C30314 */ lh $v1, 0x314($t6) -/* AC1430 8004A290 10600066 */ beqz $v1, .L8004A42C -/* AC1434 8004A294 00000000 */ nop -.L8004A298: -/* AC1438 8004A298 860F0142 */ lh $t7, 0x142($s0) -/* AC143C 8004A29C 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 -/* AC1440 8004A2A0 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* AC1444 8004A2A4 3C018014 */ lui $at, %hi(D_80139F80) -/* AC1448 8004A2A8 000FC0C0 */ sll $t8, $t7, 3 -/* AC144C 8004A2AC C42E9F80 */ lwc1 $f14, %lo(D_80139F80)($at) -/* AC1450 8004A2B0 85CF01F0 */ lh $t7, 0x1f0($t6) -/* AC1454 8004A2B4 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC1458 8004A2B8 44814000 */ mtc1 $at, $f8 -/* AC145C 8004A2BC 448F2000 */ mtc1 $t7, $f4 -/* AC1460 8004A2C0 3C014288 */ li $at, 0x42880000 # 0.000000 -/* AC1464 8004A2C4 44819000 */ mtc1 $at, $f18 -/* AC1468 8004A2C8 468021A0 */ cvt.s.w $f6, $f4 -/* AC146C 8004A2CC 3C198012 */ lui $t9, %hi(sCameraSettings+4) -/* AC1470 8004A2D0 860B0144 */ lh $t3, 0x144($s0) -/* AC1474 8004A2D4 0338C821 */ addu $t9, $t9, $t8 -/* AC1478 8004A2D8 8F39D068 */ lw $t9, %lo(sCameraSettings+4)($t9) -/* AC147C 8004A2DC 46009103 */ div.s $f4, $f18, $f0 -/* AC1480 8004A2E0 C61200F4 */ lwc1 $f18, 0xf4($s0) -/* AC1484 8004A2E4 000B60C0 */ sll $t4, $t3, 3 -/* AC1488 8004A2E8 032C6821 */ addu $t5, $t9, $t4 -/* AC148C 8004A2EC 460E3082 */ mul.s $f2, $f6, $f14 -/* AC1490 8004A2F0 8DA20004 */ lw $v0, 4($t5) -/* AC1494 8004A2F4 3C014120 */ li $at, 0x41200000 # 0.000000 -/* AC1498 8004A2F8 46024280 */ add.s $f10, $f8, $f2 -/* AC149C 8004A2FC 44804000 */ mtc1 $zero, $f8 -/* AC14A0 8004A300 46041182 */ mul.s $f6, $f2, $f4 -/* AC14A4 8004A304 4612403C */ c.lt.s $f8, $f18 -/* AC14A8 8004A308 00000000 */ nop -/* AC14AC 8004A30C 45000005 */ bc1f .L8004A324 -/* AC14B0 8004A310 46065301 */ sub.s $f12, $f10, $f6 -/* AC14B4 8004A314 3C01C120 */ li $at, 0xC1200000 # 0.000000 -/* AC14B8 8004A318 44811000 */ mtc1 $at, $f2 -/* AC14BC 8004A31C 10000004 */ b .L8004A330 -/* AC14C0 8004A320 84580000 */ lh $t8, ($v0) -.L8004A324: -/* AC14C4 8004A324 44811000 */ mtc1 $at, $f2 -/* AC14C8 8004A328 00000000 */ nop -/* AC14CC 8004A32C 84580000 */ lh $t8, ($v0) -.L8004A330: -/* AC14D0 8004A330 24420020 */ addiu $v0, $v0, 0x20 -/* AC14D4 8004A334 44982000 */ mtc1 $t8, $f4 -/* AC14D8 8004A338 00000000 */ nop -/* AC14DC 8004A33C 468022A0 */ cvt.s.w $f10, $f4 -/* AC14E0 8004A340 46025180 */ add.s $f6, $f10, $f2 -/* AC14E4 8004A344 460E3202 */ mul.s $f8, $f6, $f14 -/* AC14E8 8004A348 00000000 */ nop -/* AC14EC 8004A34C 46004482 */ mul.s $f18, $f8, $f0 -/* AC14F0 8004A350 00000000 */ nop -/* AC14F4 8004A354 460C9102 */ mul.s $f4, $f18, $f12 -/* AC14F8 8004A358 E6040000 */ swc1 $f4, ($s0) -/* AC14FC 8004A35C 844BFFE4 */ lh $t3, -0x1c($v0) -/* AC1500 8004A360 448B5000 */ mtc1 $t3, $f10 -/* AC1504 8004A364 00000000 */ nop -/* AC1508 8004A368 468051A0 */ cvt.s.w $f6, $f10 -/* AC150C 8004A36C 460E3202 */ mul.s $f8, $f6, $f14 -/* AC1510 8004A370 00000000 */ nop -/* AC1514 8004A374 46004482 */ mul.s $f18, $f8, $f0 -/* AC1518 8004A378 00000000 */ nop -/* AC151C 8004A37C 460C9102 */ mul.s $f4, $f18, $f12 -/* AC1520 8004A380 E6040004 */ swc1 $f4, 4($s0) -/* AC1524 8004A384 8459FFE8 */ lh $t9, -0x18($v0) -/* AC1528 8004A388 44995000 */ mtc1 $t9, $f10 -/* AC152C 8004A38C 3C198016 */ lui $t9, %hi(gGameInfo) # $t9, 0x8016 -/* AC1530 8004A390 468051A0 */ cvt.s.w $f6, $f10 -/* AC1534 8004A394 460E3202 */ mul.s $f8, $f6, $f14 -/* AC1538 8004A398 00000000 */ nop -/* AC153C 8004A39C 46004482 */ mul.s $f18, $f8, $f0 -/* AC1540 8004A3A0 00000000 */ nop -/* AC1544 8004A3A4 460C9102 */ mul.s $f4, $f18, $f12 -/* AC1548 8004A3A8 E6040008 */ swc1 $f4, 8($s0) -/* AC154C 8004A3AC 844CFFEC */ lh $t4, -0x14($v0) -/* AC1550 8004A3B0 448C5000 */ mtc1 $t4, $f10 -/* AC1554 8004A3B4 00000000 */ nop -/* AC1558 8004A3B8 468051A0 */ cvt.s.w $f6, $f10 -/* AC155C 8004A3BC 460E3202 */ mul.s $f8, $f6, $f14 -/* AC1560 8004A3C0 E608000C */ swc1 $f8, 0xc($s0) -/* AC1564 8004A3C4 844DFFF0 */ lh $t5, -0x10($v0) -/* AC1568 8004A3C8 448D9000 */ mtc1 $t5, $f18 -/* AC156C 8004A3CC 00000000 */ nop -/* AC1570 8004A3D0 46809120 */ cvt.s.w $f4, $f18 -/* AC1574 8004A3D4 E6040010 */ swc1 $f4, 0x10($s0) -/* AC1578 8004A3D8 844EFFF4 */ lh $t6, -0xc($v0) -/* AC157C 8004A3DC 448E5000 */ mtc1 $t6, $f10 -/* AC1580 8004A3E0 00000000 */ nop -/* AC1584 8004A3E4 468051A0 */ cvt.s.w $f6, $f10 -/* AC1588 8004A3E8 460E3202 */ mul.s $f8, $f6, $f14 -/* AC158C 8004A3EC E6080014 */ swc1 $f8, 0x14($s0) -/* AC1590 8004A3F0 844FFFF8 */ lh $t7, -8($v0) -/* AC1594 8004A3F4 448F9000 */ mtc1 $t7, $f18 -/* AC1598 8004A3F8 00000000 */ nop -/* AC159C 8004A3FC 46809120 */ cvt.s.w $f4, $f18 -/* AC15A0 8004A400 E6040018 */ swc1 $f4, 0x18($s0) -/* AC15A4 8004A404 8458FFFC */ lh $t8, -4($v0) -/* AC15A8 8004A408 44985000 */ mtc1 $t8, $f10 -/* AC15AC 8004A40C 00000000 */ nop -/* AC15B0 8004A410 468051A0 */ cvt.s.w $f6, $f10 -/* AC15B4 8004A414 460E3202 */ mul.s $f8, $f6, $f14 -/* AC15B8 8004A418 E608001C */ swc1 $f8, 0x1c($s0) -/* AC15BC 8004A41C 844B0000 */ lh $t3, ($v0) -/* AC15C0 8004A420 A60B0020 */ sh $t3, 0x20($s0) -/* AC15C4 8004A424 8F39FA90 */ lw $t9, %lo(gGameInfo)($t9) -/* AC15C8 8004A428 87230314 */ lh $v1, 0x314($t9) -.L8004A42C: -/* AC15CC 8004A42C 50600004 */ beql $v1, $zero, .L8004A440 -/* AC15D0 8004A430 26050050 */ addiu $a1, $s0, 0x50 -/* AC15D4 8004A434 0C011495 */ jal Camera_CopyPREGToModeValues -/* AC15D8 8004A438 02002025 */ move $a0, $s0 -/* AC15DC 8004A43C 26050050 */ addiu $a1, $s0, 0x50 -.L8004A440: -/* AC15E0 8004A440 2606005C */ addiu $a2, $s0, 0x5c -/* AC15E4 8004A444 AFA60038 */ sw $a2, 0x38($sp) -/* AC15E8 8004A448 AFA50034 */ sw $a1, 0x34($sp) -/* AC15EC 8004A44C 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC15F0 8004A450 27A4009C */ addiu $a0, $sp, 0x9c -/* AC15F4 8004A454 26060074 */ addiu $a2, $s0, 0x74 -/* AC15F8 8004A458 AFA60030 */ sw $a2, 0x30($sp) -/* AC15FC 8004A45C 27A400A4 */ addiu $a0, $sp, 0xa4 -/* AC1600 8004A460 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC1604 8004A464 8FA50034 */ lw $a1, 0x34($sp) -/* AC1608 8004A468 860C0020 */ lh $t4, 0x20($s0) -/* AC160C 8004A46C 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 -/* AC1610 8004A470 AC2CD3A0 */ sw $t4, %lo(D_8011D3A0)($at) -/* AC1614 8004A474 8603015E */ lh $v1, 0x15e($s0) -/* AC1618 8004A478 10600004 */ beqz $v1, .L8004A48C -/* AC161C 8004A47C 2401000A */ li $at, 10 -/* AC1620 8004A480 10610002 */ beq $v1, $at, .L8004A48C -/* AC1624 8004A484 24010014 */ li $at, 20 -/* AC1628 8004A488 1461006C */ bne $v1, $at, .L8004A63C -.L8004A48C: -/* AC162C 8004A48C 26080094 */ addiu $t0, $s0, 0x94 -/* AC1630 8004A490 8D0E0000 */ lw $t6, ($t0) -/* AC1634 8004A494 27A500C8 */ addiu $a1, $sp, 0xc8 -/* AC1638 8004A498 02002025 */ move $a0, $s0 -/* AC163C 8004A49C ACAE0000 */ sw $t6, ($a1) -/* AC1640 8004A4A0 8D0D0004 */ lw $t5, 4($t0) -/* AC1644 8004A4A4 ACAD0004 */ sw $t5, 4($a1) -/* AC1648 8004A4A8 8D0E0008 */ lw $t6, 8($t0) -/* AC164C 8004A4AC ACAE0008 */ sw $t6, 8($a1) -/* AC1650 8004A4B0 0C011144 */ jal func_80044510 -/* AC1654 8004A4B4 AFA8002C */ sw $t0, 0x2c($sp) -/* AC1658 8004A4B8 3C01C6FA */ li $at, 0xC6FA0000 # 0.000000 -/* AC165C 8004A4BC 44819000 */ mtc1 $at, $f18 -/* AC1660 8004A4C0 8FA8002C */ lw $t0, 0x2c($sp) -/* AC1664 8004A4C4 26090024 */ addiu $t1, $s0, 0x24 -/* AC1668 8004A4C8 46120032 */ c.eq.s $f0, $f18 -/* AC166C 8004A4CC E5200000 */ swc1 $f0, ($t1) -/* AC1670 8004A4D0 87AF00AA */ lh $t7, 0xaa($sp) -/* AC1674 8004A4D4 A5200006 */ sh $zero, 6($t1) -/* AC1678 8004A4D8 45000010 */ bc1f .L8004A51C -/* AC167C 8004A4DC A52F0004 */ sh $t7, 4($t1) -/* AC1680 8004A4E0 3C048014 */ lui $a0, %hi(D_80139140) # $a0, 0x8014 -/* AC1684 8004A4E4 24849140 */ addiu $a0, %lo(D_80139140) # addiu $a0, $a0, -0x6ec0 -/* AC1688 8004A4E8 AFA8002C */ sw $t0, 0x2c($sp) -/* AC168C 8004A4EC 0C00084C */ jal osSyncPrintf -/* AC1690 8004A4F0 AFA90028 */ sw $t1, 0x28($sp) -/* AC1694 8004A4F4 8FA90028 */ lw $t1, 0x28($sp) -/* AC1698 8004A4F8 8FA8002C */ lw $t0, 0x2c($sp) -/* AC169C 8004A4FC 2418FFFF */ li $t8, -1 -/* AC16A0 8004A500 3C01447A */ li $at, 0x447A0000 # 0.000000 -/* AC16A4 8004A504 A538000A */ sh $t8, 0xa($t1) -/* AC16A8 8004A508 44815000 */ mtc1 $at, $f10 -/* AC16AC 8004A50C C5040004 */ lwc1 $f4, 4($t0) -/* AC16B0 8004A510 460A2181 */ sub.s $f6, $f4, $f10 -/* AC16B4 8004A514 1000000E */ b .L8004A550 -/* AC16B8 8004A518 E5260000 */ swc1 $f6, ($t1) -.L8004A51C: -/* AC16BC 8004A51C C5080004 */ lwc1 $f8, 4($t0) -/* AC16C0 8004A520 C5320000 */ lwc1 $f18, ($t1) -/* AC16C4 8004A524 C7AA0048 */ lwc1 $f10, 0x48($sp) -/* AC16C8 8004A528 240B0001 */ li $t3, 1 -/* AC16CC 8004A52C 46124101 */ sub.s $f4, $f8, $f18 -/* AC16D0 8004A530 2419FFFF */ li $t9, -1 -/* AC16D4 8004A534 460A203C */ c.lt.s $f4, $f10 -/* AC16D8 8004A538 00000000 */ nop -/* AC16DC 8004A53C 45020004 */ bc1fl .L8004A550 -/* AC16E0 8004A540 A539000A */ sh $t9, 0xa($t1) -/* AC16E4 8004A544 10000002 */ b .L8004A550 -/* AC16E8 8004A548 A52B000A */ sh $t3, 0xa($t1) -/* AC16EC 8004A54C A539000A */ sh $t9, 0xa($t1) -.L8004A550: -/* AC16F0 8004A550 850C000E */ lh $t4, 0xe($t0) -/* AC16F4 8004A554 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 -/* AC16F8 8004A558 2463FA90 */ addiu $v1, %lo(gGameInfo) # addiu $v1, $v1, -0x570 -/* AC16FC 8004A55C 87B800AA */ lh $t8, 0xaa($sp) -/* AC1700 8004A560 8C6B0000 */ lw $t3, ($v1) -/* AC1704 8004A564 258D8001 */ addiu $t5, $t4, -0x7fff -/* AC1708 8004A568 000D7400 */ sll $t6, $t5, 0x10 -/* AC170C 8004A56C 000E7C03 */ sra $t7, $t6, 0x10 -/* AC1710 8004A570 857901C2 */ lh $t9, 0x1c2($t3) -/* AC1714 8004A574 01F81023 */ subu $v0, $t7, $t8 -/* AC1718 8004A578 00021400 */ sll $v0, $v0, 0x10 -/* AC171C 8004A57C 00021403 */ sra $v0, $v0, 0x10 -/* AC1720 8004A580 0059001A */ div $zero, $v0, $t9 -/* AC1724 8004A584 17200002 */ bnez $t9, .L8004A590 -/* AC1728 8004A588 00000000 */ nop -/* AC172C 8004A58C 0007000D */ break 7 -.L8004A590: -/* AC1730 8004A590 2401FFFF */ li $at, -1 -/* AC1734 8004A594 17210004 */ bne $t9, $at, .L8004A5A8 -/* AC1738 8004A598 3C018000 */ lui $at, 0x8000 -/* AC173C 8004A59C 14410002 */ bne $v0, $at, .L8004A5A8 -/* AC1740 8004A5A0 00000000 */ nop -/* AC1744 8004A5A4 0006000D */ break 6 -.L8004A5A8: -/* AC1748 8004A5A8 00006012 */ mflo $t4 -/* AC174C 8004A5AC 240B000A */ li $t3, 10 -/* AC1750 8004A5B0 05810003 */ bgez $t4, .L8004A5C0 -/* AC1754 8004A5B4 000C6883 */ sra $t5, $t4, 2 -/* AC1758 8004A5B8 25810003 */ addiu $at, $t4, 3 -/* AC175C 8004A5BC 00016883 */ sra $t5, $at, 2 -.L8004A5C0: -/* AC1760 8004A5C0 000D7080 */ sll $t6, $t5, 2 -/* AC1764 8004A5C4 01CD7023 */ subu $t6, $t6, $t5 -/* AC1768 8004A5C8 A52E0006 */ sh $t6, 6($t1) -/* AC176C 8004A5CC 860F0020 */ lh $t7, 0x20($s0) -/* AC1770 8004A5D0 24192710 */ li $t9, 10000 -/* AC1774 8004A5D4 31F80002 */ andi $t8, $t7, 2 -/* AC1778 8004A5D8 53000004 */ beql $t8, $zero, .L8004A5EC -/* AC177C 8004A5DC A5390008 */ sh $t9, 8($t1) -/* AC1780 8004A5E0 10000002 */ b .L8004A5EC -/* AC1784 8004A5E4 A52B0008 */ sh $t3, 8($t1) -/* AC1788 8004A5E8 A5390008 */ sh $t9, 8($t1) -.L8004A5EC: -/* AC178C 8004A5EC C5060000 */ lwc1 $f6, ($t0) -/* AC1790 8004A5F0 C60800F0 */ lwc1 $f8, 0xf0($s0) -/* AC1794 8004A5F4 C5040004 */ lwc1 $f4, 4($t0) -/* AC1798 8004A5F8 46083481 */ sub.s $f18, $f6, $f8 -/* AC179C 8004A5FC C5080008 */ lwc1 $f8, 8($t0) -/* AC17A0 8004A600 E5120000 */ swc1 $f18, ($t0) -/* AC17A4 8004A604 C60A00F4 */ lwc1 $f10, 0xf4($s0) -/* AC17A8 8004A608 460A2181 */ sub.s $f6, $f4, $f10 -/* AC17AC 8004A60C E5060004 */ swc1 $f6, 4($t0) -/* AC17B0 8004A610 C61200F8 */ lwc1 $f18, 0xf8($s0) -/* AC17B4 8004A614 46124101 */ sub.s $f4, $f8, $f18 -/* AC17B8 8004A618 E5040008 */ swc1 $f4, 8($t0) -/* AC17BC 8004A61C 8C6C0000 */ lw $t4, ($v1) -/* AC17C0 8004A620 858D01C2 */ lh $t5, 0x1c2($t4) -/* AC17C4 8004A624 A52D000C */ sh $t5, 0xc($t1) -/* AC17C8 8004A628 860E015E */ lh $t6, 0x15e($s0) -/* AC17CC 8004A62C C60A001C */ lwc1 $f10, 0x1c($s0) -/* AC17D0 8004A630 25CF0001 */ addiu $t7, $t6, 1 -/* AC17D4 8004A634 A60F015E */ sh $t7, 0x15e($s0) -/* AC17D8 8004A638 E60A0100 */ swc1 $f10, 0x100($s0) -.L8004A63C: -/* AC17DC 8004A63C 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 -/* AC17E0 8004A640 2463FA90 */ addiu $v1, %lo(gGameInfo) # addiu $v1, $v1, -0x570 -/* AC17E4 8004A644 8C620000 */ lw $v0, ($v1) -/* AC17E8 8004A648 3C018014 */ lui $at, %hi(D_80139F8C) -/* AC17EC 8004A64C C4309F8C */ lwc1 $f16, %lo(D_80139F8C)($at) -/* AC17F0 8004A650 845801C6 */ lh $t8, 0x1c6($v0) -/* AC17F4 8004A654 844B01C8 */ lh $t3, 0x1c8($v0) -/* AC17F8 8004A658 C60000E0 */ lwc1 $f0, 0xe0($s0) -/* AC17FC 8004A65C 44983000 */ mtc1 $t8, $f6 -/* AC1800 8004A660 448B2000 */ mtc1 $t3, $f4 -/* AC1804 8004A664 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC1808 8004A668 46803220 */ cvt.s.w $f8, $f6 -/* AC180C 8004A66C 26080094 */ addiu $t0, $s0, 0x94 -/* AC1810 8004A670 26090024 */ addiu $t1, $s0, 0x24 -/* AC1814 8004A674 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC1818 8004A678 468022A0 */ cvt.s.w $f10, $f4 -/* AC181C 8004A67C 46104482 */ mul.s $f18, $f8, $f16 -/* AC1820 8004A680 00000000 */ nop -/* AC1824 8004A684 46009082 */ mul.s $f2, $f18, $f0 -/* AC1828 8004A688 00000000 */ nop -/* AC182C 8004A68C 46105182 */ mul.s $f6, $f10, $f16 -/* AC1830 8004A690 44061000 */ mfc1 $a2, $f2 -/* AC1834 8004A694 46003202 */ mul.s $f8, $f6, $f0 -/* AC1838 8004A698 E7A8008C */ swc1 $f8, 0x8c($sp) -/* AC183C 8004A69C C60E00C8 */ lwc1 $f14, 0xc8($s0) -/* AC1840 8004A6A0 C60C0010 */ lwc1 $f12, 0x10($s0) -/* AC1844 8004A6A4 E7A20090 */ swc1 $f2, 0x90($sp) -/* AC1848 8004A6A8 AFA90028 */ sw $t1, 0x28($sp) -/* AC184C 8004A6AC 0C010E27 */ jal func_8004389C -/* AC1850 8004A6B0 AFA8002C */ sw $t0, 0x2c($sp) -/* AC1854 8004A6B4 C7A20090 */ lwc1 $f2, 0x90($sp) -/* AC1858 8004A6B8 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC185C 8004A6BC E60000C8 */ swc1 $f0, 0xc8($s0) -/* AC1860 8004A6C0 44061000 */ mfc1 $a2, $f2 -/* AC1864 8004A6C4 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC1868 8004A6C8 C60C0014 */ lwc1 $f12, 0x14($s0) -/* AC186C 8004A6CC 0C010E27 */ jal func_8004389C -/* AC1870 8004A6D0 C60E00CC */ lwc1 $f14, 0xcc($s0) -/* AC1874 8004A6D4 E60000CC */ swc1 $f0, 0xcc($s0) -/* AC1878 8004A6D8 3C198016 */ lui $t9, %hi(gGameInfo) # $t9, 0x8016 -/* AC187C 8004A6DC 8F39FA90 */ lw $t9, %lo(gGameInfo)($t9) -/* AC1880 8004A6E0 3C018014 */ lui $at, %hi(D_80139F90) -/* AC1884 8004A6E4 C42A9F90 */ lwc1 $f10, %lo(D_80139F90)($at) -/* AC1888 8004A6E8 872C019A */ lh $t4, 0x19a($t9) -/* AC188C 8004A6EC 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000 -/* AC1890 8004A6F0 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC1894 8004A6F4 448C9000 */ mtc1 $t4, $f18 -/* AC1898 8004A6F8 8FA6008C */ lw $a2, 0x8c($sp) -/* AC189C 8004A6FC C60E00D0 */ lwc1 $f14, 0xd0($s0) -/* AC18A0 8004A700 46809120 */ cvt.s.w $f4, $f18 -/* AC18A4 8004A704 460A2302 */ mul.s $f12, $f4, $f10 -/* AC18A8 8004A708 0C010E27 */ jal func_8004389C -/* AC18AC 8004A70C 00000000 */ nop -/* AC18B0 8004A710 E60000D0 */ swc1 $f0, 0xd0($s0) -/* AC18B4 8004A714 3C0D8016 */ lui $t5, %hi(gGameInfo) # $t5, 0x8016 -/* AC18B8 8004A718 8DADFA90 */ lw $t5, %lo(gGameInfo)($t5) -/* AC18BC 8004A71C 3C018014 */ lui $at, %hi(D_80139F94) -/* AC18C0 8004A720 C4329F94 */ lwc1 $f18, %lo(D_80139F94)($at) -/* AC18C4 8004A724 85AE019C */ lh $t6, 0x19c($t5) -/* AC18C8 8004A728 3C018014 */ lui $at, %hi(D_80139F98) -/* AC18CC 8004A72C C42A9F98 */ lwc1 $f10, %lo(D_80139F98)($at) -/* AC18D0 8004A730 448E3000 */ mtc1 $t6, $f6 -/* AC18D4 8004A734 C60400E0 */ lwc1 $f4, 0xe0($s0) -/* AC18D8 8004A738 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC18DC 8004A73C 46803220 */ cvt.s.w $f8, $f6 -/* AC18E0 8004A740 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC18E4 8004A744 46000386 */ mov.s $f14, $f0 -/* AC18E8 8004A748 46124302 */ mul.s $f12, $f8, $f18 -/* AC18EC 8004A74C 00000000 */ nop -/* AC18F0 8004A750 460A2182 */ mul.s $f6, $f4, $f10 -/* AC18F4 8004A754 44063000 */ mfc1 $a2, $f6 -/* AC18F8 8004A758 0C010E27 */ jal func_8004389C -/* AC18FC 8004A75C 00000000 */ nop -/* AC1900 8004A760 E60000D4 */ swc1 $f0, 0xd4($s0) -/* AC1904 8004A764 3C0F8016 */ lui $t7, %hi(gGameInfo) # $t7, 0x8016 -/* AC1908 8004A768 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7) -/* AC190C 8004A76C 02002025 */ move $a0, $s0 -/* AC1910 8004A770 27A500A4 */ addiu $a1, $sp, 0xa4 -/* AC1914 8004A774 85F801CA */ lh $t8, 0x1ca($t7) -/* AC1918 8004A778 8E060000 */ lw $a2, ($s0) -/* AC191C 8004A77C 00003825 */ move $a3, $zero -/* AC1920 8004A780 44984000 */ mtc1 $t8, $f8 -/* AC1924 8004A784 00000000 */ nop -/* AC1928 8004A788 468044A0 */ cvt.s.w $f18, $f8 -/* AC192C 8004A78C 0C0115EA */ jal func_800457A8 -/* AC1930 8004A790 E61200C0 */ swc1 $f18, 0xc0($s0) -/* AC1934 8004A794 27A400B4 */ addiu $a0, $sp, 0xb4 -/* AC1938 8004A798 8FA50034 */ lw $a1, 0x34($sp) -/* AC193C 8004A79C 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC1940 8004A7A0 8FA60038 */ lw $a2, 0x38($sp) -/* AC1944 8004A7A4 C60C0008 */ lwc1 $f12, 8($s0) -/* AC1948 8004A7A8 C60E000C */ lwc1 $f14, 0xc($s0) -/* AC194C 8004A7AC C6000004 */ lwc1 $f0, 4($s0) -/* AC1950 8004A7B0 C7A600B4 */ lwc1 $f6, 0xb4($sp) -/* AC1954 8004A7B4 460E6102 */ mul.s $f4, $f12, $f14 -/* AC1958 8004A7B8 8FA8002C */ lw $t0, 0x2c($sp) -/* AC195C 8004A7BC 8FA90028 */ lw $t1, 0x28($sp) -/* AC1960 8004A7C0 460E0282 */ mul.s $f10, $f0, $f14 -/* AC1964 8004A7C4 46046080 */ add.s $f2, $f12, $f4 -/* AC1968 8004A7C8 460A0401 */ sub.s $f16, $f0, $f10 -/* AC196C 8004A7CC 4606103C */ c.lt.s $f2, $f6 -/* AC1970 8004A7D0 00000000 */ nop -/* AC1974 8004A7D4 45020004 */ bc1fl .L8004A7E8 -/* AC1978 8004A7D8 C7A800B4 */ lwc1 $f8, 0xb4($sp) -/* AC197C 8004A7DC 10000007 */ b .L8004A7FC -/* AC1980 8004A7E0 E7A200B4 */ swc1 $f2, 0xb4($sp) -/* AC1984 8004A7E4 C7A800B4 */ lwc1 $f8, 0xb4($sp) -.L8004A7E8: -/* AC1988 8004A7E8 4610403C */ c.lt.s $f8, $f16 -/* AC198C 8004A7EC 00000000 */ nop -/* AC1990 8004A7F0 45020003 */ bc1fl .L8004A800 -/* AC1994 8004A7F4 850A000E */ lh $t2, 0xe($t0) -/* AC1998 8004A7F8 E7B000B4 */ swc1 $f16, 0xb4($sp) -.L8004A7FC: -/* AC199C 8004A7FC 850A000E */ lh $t2, 0xe($t0) -.L8004A800: -/* AC19A0 8004A800 87AC00BA */ lh $t4, 0xba($sp) -/* AC19A4 8004A804 8523000C */ lh $v1, 0xc($t1) -/* AC19A8 8004A808 254A8001 */ addiu $t2, $t2, -0x7fff -/* AC19AC 8004A80C 014C1023 */ subu $v0, $t2, $t4 -/* AC19B0 8004A810 00021400 */ sll $v0, $v0, 0x10 -/* AC19B4 8004A814 1060000F */ beqz $v1, .L8004A854 -/* AC19B8 8004A818 00021403 */ sra $v0, $v0, 0x10 -/* AC19BC 8004A81C A52A0004 */ sh $t2, 4($t1) -/* AC19C0 8004A820 246DFFFF */ addiu $t5, $v1, -1 -/* AC19C4 8004A824 A52D000C */ sh $t5, 0xc($t1) -/* AC19C8 8004A828 85240004 */ lh $a0, 4($t1) -/* AC19CC 8004A82C AFA90028 */ sw $t1, 0x28($sp) -/* AC19D0 8004A830 AFA8002C */ sw $t0, 0x2c($sp) -/* AC19D4 8004A834 87A500AA */ lh $a1, 0xaa($sp) -/* AC19D8 8004A838 3C063F00 */ lui $a2, 0x3f00 -/* AC19DC 8004A83C 0C010E47 */ jal func_8004391C -/* AC19E0 8004A840 2407000A */ li $a3, 10 -/* AC19E4 8004A844 8FA8002C */ lw $t0, 0x2c($sp) -/* AC19E8 8004A848 8FA90028 */ lw $t1, 0x28($sp) -/* AC19EC 8004A84C 10000029 */ b .L8004A8F4 -/* AC19F0 8004A850 A7A200BA */ sh $v0, 0xba($sp) -.L8004A854: -/* AC19F4 8004A854 04400003 */ bltz $v0, .L8004A864 -/* AC19F8 8004A858 00021823 */ negu $v1, $v0 -/* AC19FC 8004A85C 10000001 */ b .L8004A864 -/* AC1A00 8004A860 00401825 */ move $v1, $v0 -.L8004A864: -/* AC1A04 8004A864 85240008 */ lh $a0, 8($t1) -/* AC1A08 8004A868 87A500AA */ lh $a1, 0xaa($sp) -/* AC1A0C 8004A86C 3C063E80 */ lui $a2, 0x3e80 -/* AC1A10 8004A870 0083082A */ slt $at, $a0, $v1 -/* AC1A14 8004A874 10200018 */ beqz $at, .L8004A8D8 -/* AC1A18 8004A878 2407000A */ li $a3, 10 -/* AC1A1C 8004A87C 000A2C00 */ sll $a1, $t2, 0x10 -/* AC1A20 8004A880 04410005 */ bgez $v0, .L8004A898 -/* AC1A24 8004A884 00052C03 */ sra $a1, $a1, 0x10 -/* AC1A28 8004A888 00A41821 */ addu $v1, $a1, $a0 -/* AC1A2C 8004A88C 00031C00 */ sll $v1, $v1, 0x10 -/* AC1A30 8004A890 10000004 */ b .L8004A8A4 -/* AC1A34 8004A894 00031C03 */ sra $v1, $v1, 0x10 -.L8004A898: -/* AC1A38 8004A898 00A41823 */ subu $v1, $a1, $a0 -/* AC1A3C 8004A89C 00031C00 */ sll $v1, $v1, 0x10 -/* AC1A40 8004A8A0 00031C03 */ sra $v1, $v1, 0x10 -.L8004A8A4: -/* AC1A44 8004A8A4 00032400 */ sll $a0, $v1, 0x10 -/* AC1A48 8004A8A8 3C063DCC */ lui $a2, (0x3DCCCCCD >> 16) # lui $a2, 0x3dcc -/* AC1A4C 8004A8AC 34C6CCCD */ ori $a2, (0x3DCCCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd -/* AC1A50 8004A8B0 00042403 */ sra $a0, $a0, 0x10 -/* AC1A54 8004A8B4 87A500AA */ lh $a1, 0xaa($sp) -/* AC1A58 8004A8B8 2407000A */ li $a3, 10 -/* AC1A5C 8004A8BC AFA8002C */ sw $t0, 0x2c($sp) -/* AC1A60 8004A8C0 0C010E6B */ jal func_800439AC -/* AC1A64 8004A8C4 AFA90028 */ sw $t1, 0x28($sp) -/* AC1A68 8004A8C8 8FA8002C */ lw $t0, 0x2c($sp) -/* AC1A6C 8004A8CC 8FA90028 */ lw $t1, 0x28($sp) -/* AC1A70 8004A8D0 10000008 */ b .L8004A8F4 -/* AC1A74 8004A8D4 A7A200BA */ sh $v0, 0xba($sp) -.L8004A8D8: -/* AC1A78 8004A8D8 87A400BA */ lh $a0, 0xba($sp) -/* AC1A7C 8004A8DC AFA8002C */ sw $t0, 0x2c($sp) -/* AC1A80 8004A8E0 0C010E47 */ jal func_8004391C -/* AC1A84 8004A8E4 AFA90028 */ sw $t1, 0x28($sp) -/* AC1A88 8004A8E8 8FA8002C */ lw $t0, 0x2c($sp) -/* AC1A8C 8004A8EC 8FA90028 */ lw $t1, 0x28($sp) -/* AC1A90 8004A8F0 A7A200BA */ sh $v0, 0xba($sp) -.L8004A8F4: -/* AC1A94 8004A8F4 8504000E */ lh $a0, 0xe($t0) -/* AC1A98 8004A8F8 AFA90028 */ sw $t1, 0x28($sp) -/* AC1A9C 8004A8FC 0C01DE1C */ jal Math_Sins -/* AC1AA0 8004A900 AFA8002C */ sw $t0, 0x2c($sp) -/* AC1AA4 8004A904 3C0141C8 */ li $at, 0x41C80000 # 0.000000 -/* AC1AA8 8004A908 44819000 */ mtc1 $at, $f18 -/* AC1AAC 8004A90C 8FA8002C */ lw $t0, 0x2c($sp) -/* AC1AB0 8004A910 3C018014 */ lui $at, %hi(D_80139F9C) -/* AC1AB4 8004A914 46120102 */ mul.s $f4, $f0, $f18 -/* AC1AB8 8004A918 C50A0000 */ lwc1 $f10, ($t0) -/* AC1ABC 8004A91C C4329F9C */ lwc1 $f18, %lo(D_80139F9C)($at) -/* AC1AC0 8004A920 C7A80048 */ lwc1 $f8, 0x48($sp) -/* AC1AC4 8004A924 460A2180 */ add.s $f6, $f4, $f10 -/* AC1AC8 8004A928 46124102 */ mul.s $f4, $f8, $f18 -/* AC1ACC 8004A92C E7A600C8 */ swc1 $f6, 0xc8($sp) -/* AC1AD0 8004A930 C50A0004 */ lwc1 $f10, 4($t0) -/* AC1AD4 8004A934 46045180 */ add.s $f6, $f10, $f4 -/* AC1AD8 8004A938 E7A600CC */ swc1 $f6, 0xcc($sp) -/* AC1ADC 8004A93C 0C01DE0D */ jal Math_Coss -/* AC1AE0 8004A940 8504000E */ lh $a0, 0xe($t0) -/* AC1AE4 8004A944 3C0141C8 */ li $at, 0x41C80000 # 0.000000 -/* AC1AE8 8004A948 44814000 */ mtc1 $at, $f8 -/* AC1AEC 8004A94C 8FA8002C */ lw $t0, 0x2c($sp) -/* AC1AF0 8004A950 02002025 */ move $a0, $s0 -/* AC1AF4 8004A954 46080482 */ mul.s $f18, $f0, $f8 -/* AC1AF8 8004A958 C50A0008 */ lwc1 $f10, 8($t0) -/* AC1AFC 8004A95C 27A500BC */ addiu $a1, $sp, 0xbc -/* AC1B00 8004A960 27A600C8 */ addiu $a2, $sp, 0xc8 -/* AC1B04 8004A964 27A70088 */ addiu $a3, $sp, 0x88 -/* AC1B08 8004A968 460A9100 */ add.s $f4, $f18, $f10 -/* AC1B0C 8004A96C 0C01110D */ jal func_80044434 -/* AC1B10 8004A970 E7A400D0 */ swc1 $f4, 0xd0($sp) -/* AC1B14 8004A974 3C01C6FA */ li $at, 0xC6FA0000 # 0.000000 -/* AC1B18 8004A978 44813000 */ mtc1 $at, $f6 -/* AC1B1C 8004A97C 8FA8002C */ lw $t0, 0x2c($sp) -/* AC1B20 8004A980 8FA90028 */ lw $t1, 0x28($sp) -/* AC1B24 8004A984 46060032 */ c.eq.s $f0, $f6 -/* AC1B28 8004A988 00000000 */ nop -/* AC1B2C 8004A98C 45030036 */ bc1tl .L8004AA68 -/* AC1B30 8004A990 C50A0004 */ lwc1 $f10, 4($t0) -/* AC1B34 8004A994 C5080004 */ lwc1 $f8, 4($t0) -/* AC1B38 8004A998 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 -/* AC1B3C 8004A99C 4600403C */ c.lt.s $f8, $f0 -/* AC1B40 8004A9A0 00000000 */ nop -/* AC1B44 8004A9A4 45020030 */ bc1fl .L8004AA68 -/* AC1B48 8004A9A8 C50A0004 */ lwc1 $f10, 4($t0) -/* AC1B4C 8004A9AC 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* AC1B50 8004A9B0 3C0141A0 */ li $at, 0x41A00000 # 0.000000 -/* AC1B54 8004A9B4 44816000 */ mtc1 $at, $f12 -/* AC1B58 8004A9B8 85CF01C8 */ lh $t7, 0x1c8($t6) -/* AC1B5C 8004A9BC 3C018014 */ lui $at, %hi(D_80139FA0) -/* AC1B60 8004A9C0 C4249FA0 */ lwc1 $f4, %lo(D_80139FA0)($at) -/* AC1B64 8004A9C4 448F9000 */ mtc1 $t7, $f18 -/* AC1B68 8004A9C8 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC1B6C 8004A9CC 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC1B70 8004A9D0 468092A0 */ cvt.s.w $f10, $f18 -/* AC1B74 8004A9D4 C60E00C4 */ lwc1 $f14, 0xc4($s0) -/* AC1B78 8004A9D8 46045182 */ mul.s $f6, $f10, $f4 -/* AC1B7C 8004A9DC 44063000 */ mfc1 $a2, $f6 -/* AC1B80 8004A9E0 0C010E27 */ jal func_8004389C -/* AC1B84 8004A9E4 00000000 */ nop -/* AC1B88 8004A9E8 E60000C4 */ swc1 $f0, 0xc4($s0) -/* AC1B8C 8004A9EC 3C188016 */ lui $t8, %hi(gGameInfo) # $t8, 0x8016 -/* AC1B90 8004A9F0 8F18FA90 */ lw $t8, %lo(gGameInfo)($t8) -/* AC1B94 8004A9F4 3C0141A0 */ li $at, 0x41A00000 # 0.000000 -/* AC1B98 8004A9F8 44816000 */ mtc1 $at, $f12 -/* AC1B9C 8004A9FC 870B01C8 */ lh $t3, 0x1c8($t8) -/* AC1BA0 8004AA00 3C018014 */ lui $at, %hi(D_80139FA4) -/* AC1BA4 8004AA04 C42A9FA4 */ lwc1 $f10, %lo(D_80139FA4)($at) -/* AC1BA8 8004AA08 448B4000 */ mtc1 $t3, $f8 -/* AC1BAC 8004AA0C 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC1BB0 8004AA10 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC1BB4 8004AA14 468044A0 */ cvt.s.w $f18, $f8 -/* AC1BB8 8004AA18 C60E00C0 */ lwc1 $f14, 0xc0($s0) -/* AC1BBC 8004AA1C 460A9102 */ mul.s $f4, $f18, $f10 -/* AC1BC0 8004AA20 44062000 */ mfc1 $a2, $f4 -/* AC1BC4 8004AA24 0C010E27 */ jal func_8004389C -/* AC1BC8 8004AA28 00000000 */ nop -/* AC1BCC 8004AA2C 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC1BD0 8004AA30 44813000 */ mtc1 $at, $f6 -/* AC1BD4 8004AA34 C60800C4 */ lwc1 $f8, 0xc4($s0) -/* AC1BD8 8004AA38 E60000C0 */ swc1 $f0, 0xc0($s0) -/* AC1BDC 8004AA3C 87A500A8 */ lh $a1, 0xa8($sp) -/* AC1BE0 8004AA40 46083483 */ div.s $f18, $f6, $f8 -/* AC1BE4 8004AA44 240401F4 */ li $a0, 500 -/* AC1BE8 8004AA48 2407000A */ li $a3, 10 -/* AC1BEC 8004AA4C 44069000 */ mfc1 $a2, $f18 -/* AC1BF0 8004AA50 0C010E47 */ jal func_8004391C -/* AC1BF4 8004AA54 00000000 */ nop -/* AC1BF8 8004AA58 00021C00 */ sll $v1, $v0, 0x10 -/* AC1BFC 8004AA5C 1000003E */ b .L8004AB58 -/* AC1C00 8004AA60 00031C03 */ sra $v1, $v1, 0x10 -/* AC1C04 8004AA64 C50A0004 */ lwc1 $f10, 4($t0) -.L8004AA68: -/* AC1C08 8004AA68 C5240000 */ lwc1 $f4, ($t1) -/* AC1C0C 8004AA6C C7A80048 */ lwc1 $f8, 0x48($sp) -/* AC1C10 8004AA70 3C198016 */ lui $t9, %hi(gGameInfo) # $t9, 0x8016 -/* AC1C14 8004AA74 46045181 */ sub.s $f6, $f10, $f4 -/* AC1C18 8004AA78 3C0142C8 */ li $at, 0x42C80000 # 0.000000 -/* AC1C1C 8004AA7C 4608303C */ c.lt.s $f6, $f8 -/* AC1C20 8004AA80 00000000 */ nop -/* AC1C24 8004AA84 45020030 */ bc1fl .L8004AB48 -/* AC1C28 8004AA88 44810000 */ mtc1 $at, $f0 -/* AC1C2C 8004AA8C 8F39FA90 */ lw $t9, %lo(gGameInfo)($t9) -/* AC1C30 8004AA90 3C0141A0 */ li $at, 0x41A00000 # 0.000000 -/* AC1C34 8004AA94 44816000 */ mtc1 $at, $f12 -/* AC1C38 8004AA98 872C01C8 */ lh $t4, 0x1c8($t9) -/* AC1C3C 8004AA9C 3C018014 */ lui $at, %hi(D_80139FA8) -/* AC1C40 8004AAA0 C4249FA8 */ lwc1 $f4, %lo(D_80139FA8)($at) -/* AC1C44 8004AAA4 448C9000 */ mtc1 $t4, $f18 -/* AC1C48 8004AAA8 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC1C4C 8004AAAC 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC1C50 8004AAB0 468092A0 */ cvt.s.w $f10, $f18 -/* AC1C54 8004AAB4 C60E00C4 */ lwc1 $f14, 0xc4($s0) -/* AC1C58 8004AAB8 46045182 */ mul.s $f6, $f10, $f4 -/* AC1C5C 8004AABC 44063000 */ mfc1 $a2, $f6 -/* AC1C60 8004AAC0 0C010E27 */ jal func_8004389C -/* AC1C64 8004AAC4 00000000 */ nop -/* AC1C68 8004AAC8 E60000C4 */ swc1 $f0, 0xc4($s0) -/* AC1C6C 8004AACC 3C0D8016 */ lui $t5, %hi(gGameInfo) # $t5, 0x8016 -/* AC1C70 8004AAD0 8DADFA90 */ lw $t5, %lo(gGameInfo)($t5) -/* AC1C74 8004AAD4 3C0141A0 */ li $at, 0x41A00000 # 0.000000 -/* AC1C78 8004AAD8 44816000 */ mtc1 $at, $f12 -/* AC1C7C 8004AADC 85AE01C8 */ lh $t6, 0x1c8($t5) -/* AC1C80 8004AAE0 3C018014 */ lui $at, %hi(D_80139FAC) -/* AC1C84 8004AAE4 C42A9FAC */ lwc1 $f10, %lo(D_80139FAC)($at) -/* AC1C88 8004AAE8 448E4000 */ mtc1 $t6, $f8 -/* AC1C8C 8004AAEC 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000 -/* AC1C90 8004AAF0 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC1C94 8004AAF4 468044A0 */ cvt.s.w $f18, $f8 -/* AC1C98 8004AAF8 C60E00C0 */ lwc1 $f14, 0xc0($s0) -/* AC1C9C 8004AAFC 460A9102 */ mul.s $f4, $f18, $f10 -/* AC1CA0 8004AB00 44062000 */ mfc1 $a2, $f4 -/* AC1CA4 8004AB04 0C010E27 */ jal func_8004389C -/* AC1CA8 8004AB08 00000000 */ nop -/* AC1CAC 8004AB0C 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC1CB0 8004AB10 44813000 */ mtc1 $at, $f6 -/* AC1CB4 8004AB14 C60800C4 */ lwc1 $f8, 0xc4($s0) -/* AC1CB8 8004AB18 E60000C0 */ swc1 $f0, 0xc0($s0) -/* AC1CBC 8004AB1C 87A500A8 */ lh $a1, 0xa8($sp) -/* AC1CC0 8004AB20 46083483 */ div.s $f18, $f6, $f8 -/* AC1CC4 8004AB24 240401F4 */ li $a0, 500 -/* AC1CC8 8004AB28 2407000A */ li $a3, 10 -/* AC1CCC 8004AB2C 44069000 */ mfc1 $a2, $f18 -/* AC1CD0 8004AB30 0C010E47 */ jal func_8004391C -/* AC1CD4 8004AB34 00000000 */ nop -/* AC1CD8 8004AB38 A7A200B8 */ sh $v0, 0xb8($sp) -/* AC1CDC 8004AB3C 10000006 */ b .L8004AB58 -/* AC1CE0 8004AB40 87A300B8 */ lh $v1, 0xb8($sp) -/* AC1CE4 8004AB44 44810000 */ mtc1 $at, $f0 -.L8004AB48: -/* AC1CE8 8004AB48 00000000 */ nop -/* AC1CEC 8004AB4C E60000C4 */ swc1 $f0, 0xc4($s0) -/* AC1CF0 8004AB50 E60000C0 */ swc1 $f0, 0xc0($s0) -/* AC1CF4 8004AB54 87A300B8 */ lh $v1, 0xb8($sp) -.L8004AB58: -/* AC1CF8 8004AB58 28612AF9 */ slti $at, $v1, 0x2af9 -/* AC1CFC 8004AB5C 14200002 */ bnez $at, .L8004AB68 -/* AC1D00 8004AB60 27A600B4 */ addiu $a2, $sp, 0xb4 -/* AC1D04 8004AB64 24032AF8 */ li $v1, 11000 -.L8004AB68: -/* AC1D08 8004AB68 2861D508 */ slti $at, $v1, -0x2af8 -/* AC1D0C 8004AB6C 10200003 */ beqz $at, .L8004AB7C -/* AC1D10 8004AB70 A7A300B8 */ sh $v1, 0xb8($sp) -/* AC1D14 8004AB74 2403D508 */ li $v1, -11000 -/* AC1D18 8004AB78 A7A300B8 */ sh $v1, 0xb8($sp) -.L8004AB7C: -/* AC1D1C 8004AB7C 8FA40030 */ lw $a0, 0x30($sp) -/* AC1D20 8004AB80 0C010F0A */ jal func_80043C28 -/* AC1D24 8004AB84 8FA50034 */ lw $a1, 0x34($sp) -/* AC1D28 8004AB88 8FAF0030 */ lw $t7, 0x30($sp) -/* AC1D2C 8004AB8C 27A60060 */ addiu $a2, $sp, 0x60 -/* AC1D30 8004AB90 02002025 */ move $a0, $s0 -/* AC1D34 8004AB94 8DEB0000 */ lw $t3, ($t7) -/* AC1D38 8004AB98 ACCB0000 */ sw $t3, ($a2) -/* AC1D3C 8004AB9C 8DF80004 */ lw $t8, 4($t7) -/* AC1D40 8004ABA0 ACD80004 */ sw $t8, 4($a2) -/* AC1D44 8004ABA4 8DEB0008 */ lw $t3, 8($t7) -/* AC1D48 8004ABA8 ACCB0008 */ sw $t3, 8($a2) -/* AC1D4C 8004ABAC 0C010F46 */ jal func_80043D18 -/* AC1D50 8004ABB0 8FA50034 */ lw $a1, 0x34($sp) -/* AC1D54 8004ABB4 10400030 */ beqz $v0, .L8004AC78 -/* AC1D58 8004ABB8 8FAD0030 */ lw $t5, 0x30($sp) -/* AC1D5C 8004ABBC 27A40060 */ addiu $a0, $sp, 0x60 -/* AC1D60 8004ABC0 8C8D0000 */ lw $t5, ($a0) -/* AC1D64 8004ABC4 27B900C8 */ addiu $t9, $sp, 0xc8 -/* AC1D68 8004ABC8 27A600AC */ addiu $a2, $sp, 0xac -/* AC1D6C 8004ABCC AF2D0000 */ sw $t5, ($t9) -/* AC1D70 8004ABD0 8C8C0004 */ lw $t4, 4($a0) -/* AC1D74 8004ABD4 AF2C0004 */ sw $t4, 4($t9) -/* AC1D78 8004ABD8 8C8D0008 */ lw $t5, 8($a0) -/* AC1D7C 8004ABDC AF2D0008 */ sw $t5, 8($t9) -/* AC1D80 8004ABE0 C7AA00B4 */ lwc1 $f10, 0xb4($sp) -/* AC1D84 8004ABE4 87AE00BA */ lh $t6, 0xba($sp) -/* AC1D88 8004ABE8 A7A000B0 */ sh $zero, 0xb0($sp) -/* AC1D8C 8004ABEC 8FA50034 */ lw $a1, 0x34($sp) -/* AC1D90 8004ABF0 E7AA00AC */ swc1 $f10, 0xac($sp) -/* AC1D94 8004ABF4 0C010F0A */ jal func_80043C28 -/* AC1D98 8004ABF8 A7AE00B2 */ sh $t6, 0xb2($sp) -/* AC1D9C 8004ABFC 02002025 */ move $a0, $s0 -/* AC1DA0 8004AC00 8FA50034 */ lw $a1, 0x34($sp) -/* AC1DA4 8004AC04 0C010F46 */ jal func_80043D18 -/* AC1DA8 8004AC08 27A60060 */ addiu $a2, $sp, 0x60 -/* AC1DAC 8004AC0C 1040000A */ beqz $v0, .L8004AC38 -/* AC1DB0 8004AC10 00002025 */ move $a0, $zero -/* AC1DB4 8004AC14 27B800C8 */ addiu $t8, $sp, 0xc8 -/* AC1DB8 8004AC18 8F190000 */ lw $t9, ($t8) -/* AC1DBC 8004AC1C 8FAF0038 */ lw $t7, 0x38($sp) -/* AC1DC0 8004AC20 ADF90000 */ sw $t9, ($t7) -/* AC1DC4 8004AC24 8F0B0004 */ lw $t3, 4($t8) -/* AC1DC8 8004AC28 ADEB0004 */ sw $t3, 4($t7) -/* AC1DCC 8004AC2C 8F190008 */ lw $t9, 8($t8) -/* AC1DD0 8004AC30 10000018 */ b .L8004AC94 -/* AC1DD4 8004AC34 ADF90008 */ sw $t9, 8($t7) -.L8004AC38: -/* AC1DD8 8004AC38 3C063E4C */ lui $a2, (0x3E4CCCCD >> 16) # lui $a2, 0x3e4c -/* AC1DDC 8004AC3C 34C6CCCD */ ori $a2, (0x3E4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd -/* AC1DE0 8004AC40 87A500B8 */ lh $a1, 0xb8($sp) -/* AC1DE4 8004AC44 0C010E47 */ jal func_8004391C -/* AC1DE8 8004AC48 2407000A */ li $a3, 10 -/* AC1DEC 8004AC4C A7A200B8 */ sh $v0, 0xb8($sp) -/* AC1DF0 8004AC50 8FA40038 */ lw $a0, 0x38($sp) -/* AC1DF4 8004AC54 8FA50034 */ lw $a1, 0x34($sp) -/* AC1DF8 8004AC58 0C010F0A */ jal func_80043C28 -/* AC1DFC 8004AC5C 27A600B4 */ addiu $a2, $sp, 0xb4 -/* AC1E00 8004AC60 02002025 */ move $a0, $s0 -/* AC1E04 8004AC64 8FA50034 */ lw $a1, 0x34($sp) -/* AC1E08 8004AC68 0C010FCD */ jal func_80043F34 -/* AC1E0C 8004AC6C 8FA60038 */ lw $a2, 0x38($sp) -/* AC1E10 8004AC70 10000009 */ b .L8004AC98 -/* AC1E14 8004AC74 C7A400B4 */ lwc1 $f4, 0xb4($sp) -.L8004AC78: -/* AC1E18 8004AC78 8FAC0038 */ lw $t4, 0x38($sp) -/* AC1E1C 8004AC7C 8DAF0000 */ lw $t7, ($t5) -/* AC1E20 8004AC80 AD8F0000 */ sw $t7, ($t4) -/* AC1E24 8004AC84 8DAE0004 */ lw $t6, 4($t5) -/* AC1E28 8004AC88 AD8E0004 */ sw $t6, 4($t4) -/* AC1E2C 8004AC8C 8DAF0008 */ lw $t7, 8($t5) -/* AC1E30 8004AC90 AD8F0008 */ sw $t7, 8($t4) -.L8004AC94: -/* AC1E34 8004AC94 C7A400B4 */ lwc1 $f4, 0xb4($sp) -.L8004AC98: -/* AC1E38 8004AC98 C60C0018 */ lwc1 $f12, 0x18($s0) -/* AC1E3C 8004AC9C C60E00FC */ lwc1 $f14, 0xfc($s0) -/* AC1E40 8004ACA0 8E0600D4 */ lw $a2, 0xd4($s0) -/* AC1E44 8004ACA4 3C073F80 */ lui $a3, 0x3f80 -/* AC1E48 8004ACA8 0C010E27 */ jal func_8004389C -/* AC1E4C 8004ACAC E60400DC */ swc1 $f4, 0xdc($s0) -/* AC1E50 8004ACB0 E60000FC */ swc1 $f0, 0xfc($s0) -/* AC1E54 8004ACB4 00002025 */ move $a0, $zero -/* AC1E58 8004ACB8 8605015A */ lh $a1, 0x15a($s0) -/* AC1E5C 8004ACBC 3C063F00 */ lui $a2, 0x3f00 -/* AC1E60 8004ACC0 0C010E47 */ jal func_8004391C -/* AC1E64 8004ACC4 2407000A */ li $a3, 10 -/* AC1E68 8004ACC8 A602015A */ sh $v0, 0x15a($s0) -/* AC1E6C 8004ACCC 8FBF001C */ lw $ra, 0x1c($sp) -/* AC1E70 8004ACD0 8FB00018 */ lw $s0, 0x18($sp) -/* AC1E74 8004ACD4 27BD00E0 */ addiu $sp, $sp, 0xe0 -/* AC1E78 8004ACD8 03E00008 */ jr $ra -/* AC1E7C 8004ACDC 24020001 */ li $v0, 1 diff --git a/asm/non_matchings/code/z_camera/Camera_Jump3.s b/asm/non_matchings/code/z_camera/Camera_Jump3.s deleted file mode 100644 index 3e252998f7..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Jump3.s +++ /dev/null @@ -1,604 +0,0 @@ -.late_rodata -glabel D_80139FB0 - .float 0.01 - -glabel D_80139FB4 - .float 182.04167 - -glabel D_80139FB8 - .float 0.01 - -glabel D_80139FBC - .float 0.01 - -glabel D_80139FC0 - .float 0.01 - -glabel D_80139FC4 - .float 0.01 - -glabel D_80139FC8 - .float 0.01 - -glabel D_80139FCC - .float 0.05 - -glabel D_80139FD0 - .float 0.99 - -.text -glabel Camera_Jump3 -/* AC1E80 8004ACE0 27BDFF28 */ addiu $sp, $sp, -0xd8 -/* AC1E84 8004ACE4 AFB0001C */ sw $s0, 0x1c($sp) -/* AC1E88 8004ACE8 00808025 */ move $s0, $a0 -/* AC1E8C 8004ACEC AFBF0024 */ sw $ra, 0x24($sp) -/* AC1E90 8004ACF0 AFB10020 */ sw $s1, 0x20($sp) -/* AC1E94 8004ACF4 0C00B721 */ jal Player_GetCameraYOffset -/* AC1E98 8004ACF8 8C840090 */ lw $a0, 0x90($a0) -/* AC1E9C 8004ACFC E7A00074 */ swc1 $f0, 0x74($sp) -/* AC1EA0 8004AD00 8E050090 */ lw $a1, 0x90($s0) -/* AC1EA4 8004AD04 0C00BBB9 */ jal func_8002EEE4 -/* AC1EA8 8004AD08 27A40060 */ addiu $a0, $sp, 0x60 -/* AC1EAC 8004AD0C 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 -/* AC1EB0 8004AD10 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1) -/* AC1EB4 8004AD14 2606005C */ addiu $a2, $s0, 0x5c -/* AC1EB8 8004AD18 C4C60004 */ lwc1 $f6, 4($a2) -/* AC1EBC 8004AD1C 846E01EC */ lh $t6, 0x1ec($v1) -/* AC1EC0 8004AD20 C6040114 */ lwc1 $f4, 0x114($s0) -/* AC1EC4 8004AD24 00003825 */ move $a3, $zero -/* AC1EC8 8004AD28 448E4000 */ mtc1 $t6, $f8 -/* AC1ECC 8004AD2C 46062001 */ sub.s $f0, $f4, $f6 -/* AC1ED0 8004AD30 27A40098 */ addiu $a0, $sp, 0x98 -/* AC1ED4 8004AD34 26050050 */ addiu $a1, $s0, 0x50 -/* AC1ED8 8004AD38 468042A0 */ cvt.s.w $f10, $f8 -/* AC1EDC 8004AD3C 460A003C */ c.lt.s $f0, $f10 -/* AC1EE0 8004AD40 00000000 */ nop -/* AC1EE4 8004AD44 45030004 */ bc1tl .L8004AD58 -/* AC1EE8 8004AD48 26110024 */ addiu $s1, $s0, 0x24 -/* AC1EEC 8004AD4C 860F015E */ lh $t7, 0x15e($s0) -/* AC1EF0 8004AD50 15E00007 */ bnez $t7, .L8004AD70 -/* AC1EF4 8004AD54 26110024 */ addiu $s1, $s0, 0x24 -.L8004AD58: -/* AC1EF8 8004AD58 86380022 */ lh $t8, 0x22($s1) -/* AC1EFC 8004AD5C 53000015 */ beql $t8, $zero, .L8004ADB4 -/* AC1F00 8004AD60 26110024 */ addiu $s1, $s0, 0x24 -/* AC1F04 8004AD64 A6200022 */ sh $zero, 0x22($s1) -/* AC1F08 8004AD68 10000011 */ b .L8004ADB0 -/* AC1F0C 8004AD6C 24070001 */ li $a3, 1 -.L8004AD70: -/* AC1F10 8004AD70 847901EE */ lh $t9, 0x1ee($v1) -/* AC1F14 8004AD74 26110024 */ addiu $s1, $s0, 0x24 -/* AC1F18 8004AD78 44992000 */ mtc1 $t9, $f4 -/* AC1F1C 8004AD7C 00000000 */ nop -/* AC1F20 8004AD80 468021A0 */ cvt.s.w $f6, $f4 -/* AC1F24 8004AD84 4600303C */ c.lt.s $f6, $f0 -/* AC1F28 8004AD88 00000000 */ nop -/* AC1F2C 8004AD8C 45020009 */ bc1fl .L8004ADB4 -/* AC1F30 8004AD90 26110024 */ addiu $s1, $s0, 0x24 -/* AC1F34 8004AD94 86280022 */ lh $t0, 0x22($s1) -/* AC1F38 8004AD98 2401000A */ li $at, 10 -/* AC1F3C 8004AD9C 2409000A */ li $t1, 10 -/* AC1F40 8004ADA0 51010004 */ beql $t0, $at, .L8004ADB4 -/* AC1F44 8004ADA4 26110024 */ addiu $s1, $s0, 0x24 -/* AC1F48 8004ADA8 A6290022 */ sh $t1, 0x22($s1) -/* AC1F4C 8004ADAC 24070001 */ li $a3, 1 -.L8004ADB0: -/* AC1F50 8004ADB0 26110024 */ addiu $s1, $s0, 0x24 -.L8004ADB4: -/* AC1F54 8004ADB4 AFA5003C */ sw $a1, 0x3c($sp) -/* AC1F58 8004ADB8 AFA60040 */ sw $a2, 0x40($sp) -/* AC1F5C 8004ADBC 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC1F60 8004ADC0 AFA70054 */ sw $a3, 0x54($sp) -/* AC1F64 8004ADC4 26060074 */ addiu $a2, $s0, 0x74 -/* AC1F68 8004ADC8 AFA60038 */ sw $a2, 0x38($sp) -/* AC1F6C 8004ADCC 27A40090 */ addiu $a0, $sp, 0x90 -/* AC1F70 8004ADD0 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC1F74 8004ADD4 8FA5003C */ lw $a1, 0x3c($sp) -/* AC1F78 8004ADD8 8603015E */ lh $v1, 0x15e($s0) -/* AC1F7C 8004ADDC 8FA70054 */ lw $a3, 0x54($sp) -/* AC1F80 8004ADE0 1060000A */ beqz $v1, .L8004AE0C -/* AC1F84 8004ADE4 2401000A */ li $at, 10 -/* AC1F88 8004ADE8 10610008 */ beq $v1, $at, .L8004AE0C -/* AC1F8C 8004ADEC 24010014 */ li $at, 20 -/* AC1F90 8004ADF0 10610006 */ beq $v1, $at, .L8004AE0C -/* AC1F94 8004ADF4 00000000 */ nop -/* AC1F98 8004ADF8 14E00004 */ bnez $a3, .L8004AE0C -/* AC1F9C 8004ADFC 3C0A8016 */ lui $t2, %hi(gGameInfo) # $t2, 0x8016 -/* AC1FA0 8004AE00 8D4AFA90 */ lw $t2, %lo(gGameInfo)($t2) -/* AC1FA4 8004AE04 85430314 */ lh $v1, 0x314($t2) -/* AC1FA8 8004AE08 1060005C */ beqz $v1, .L8004AF7C -.L8004AE0C: -/* AC1FAC 8004AE0C 3C198016 */ lui $t9, %hi(gGameInfo) # $t9, 0x8016 -/* AC1FB0 8004AE10 8F39FA90 */ lw $t9, %lo(gGameInfo)($t9) -/* AC1FB4 8004AE14 3C018014 */ lui $at, %hi(D_80139FB0) -/* AC1FB8 8004AE18 C4309FB0 */ lwc1 $f16, %lo(D_80139FB0)($at) -/* AC1FBC 8004AE1C 872801F0 */ lh $t0, 0x1f0($t9) -/* AC1FC0 8004AE20 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC1FC4 8004AE24 44812000 */ mtc1 $at, $f4 -/* AC1FC8 8004AE28 44884000 */ mtc1 $t0, $f8 -/* AC1FCC 8004AE2C 3C014288 */ li $at, 0x42880000 # 0.000000 -/* AC1FD0 8004AE30 C7AE0074 */ lwc1 $f14, 0x74($sp) -/* AC1FD4 8004AE34 468042A0 */ cvt.s.w $f10, $f8 -/* AC1FD8 8004AE38 44814000 */ mtc1 $at, $f8 -/* AC1FDC 8004AE3C 860B0142 */ lh $t3, 0x142($s0) -/* AC1FE0 8004AE40 3C0D8012 */ lui $t5, %hi(sCameraSettings+4) -/* AC1FE4 8004AE44 862E0022 */ lh $t6, 0x22($s1) -/* AC1FE8 8004AE48 000B60C0 */ sll $t4, $t3, 3 -/* AC1FEC 8004AE4C 46105082 */ mul.s $f2, $f10, $f16 -/* AC1FF0 8004AE50 460E4283 */ div.s $f10, $f8, $f14 -/* AC1FF4 8004AE54 01AC6821 */ addu $t5, $t5, $t4 -/* AC1FF8 8004AE58 8DADD068 */ lw $t5, %lo(sCameraSettings+4)($t5) -/* AC1FFC 8004AE5C 000E78C0 */ sll $t7, $t6, 3 -/* AC2000 8004AE60 3C018014 */ lui $at, %hi(D_80139FB4) -/* AC2004 8004AE64 01AFC021 */ addu $t8, $t5, $t7 -/* AC2008 8004AE68 46022180 */ add.s $f6, $f4, $f2 -/* AC200C 8004AE6C 8F020004 */ lw $v0, 4($t8) -/* AC2010 8004AE70 84490000 */ lh $t1, ($v0) -/* AC2014 8004AE74 24420024 */ addiu $v0, $v0, 0x24 -/* AC2018 8004AE78 460A1102 */ mul.s $f4, $f2, $f10 -/* AC201C 8004AE7C 44895000 */ mtc1 $t1, $f10 -/* AC2020 8004AE80 46107202 */ mul.s $f8, $f14, $f16 -/* AC2024 8004AE84 46043301 */ sub.s $f12, $f6, $f4 -/* AC2028 8004AE88 468051A0 */ cvt.s.w $f6, $f10 -/* AC202C 8004AE8C 460C4002 */ mul.s $f0, $f8, $f12 -/* AC2030 8004AE90 00000000 */ nop -/* AC2034 8004AE94 46003102 */ mul.s $f4, $f6, $f0 -/* AC2038 8004AE98 E6040000 */ swc1 $f4, ($s0) -/* AC203C 8004AE9C 844AFFE0 */ lh $t2, -0x20($v0) -/* AC2040 8004AEA0 448A4000 */ mtc1 $t2, $f8 -/* AC2044 8004AEA4 00000000 */ nop -/* AC2048 8004AEA8 468042A0 */ cvt.s.w $f10, $f8 -/* AC204C 8004AEAC 46005182 */ mul.s $f6, $f10, $f0 -/* AC2050 8004AEB0 E6060004 */ swc1 $f6, 4($s0) -/* AC2054 8004AEB4 844BFFE4 */ lh $t3, -0x1c($v0) -/* AC2058 8004AEB8 448B2000 */ mtc1 $t3, $f4 -/* AC205C 8004AEBC 3C0B8016 */ lui $t3, %hi(gGameInfo) -/* AC2060 8004AEC0 46802220 */ cvt.s.w $f8, $f4 -/* AC2064 8004AEC4 46004282 */ mul.s $f10, $f8, $f0 -/* AC2068 8004AEC8 E60A0008 */ swc1 $f10, 8($s0) -/* AC206C 8004AECC 844CFFE8 */ lh $t4, -0x18($v0) -/* AC2070 8004AED0 C4289FB4 */ lwc1 $f8, %lo(D_80139FB4)($at) -/* AC2074 8004AED4 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* AC2078 8004AED8 448C3000 */ mtc1 $t4, $f6 -/* AC207C 8004AEDC 00000000 */ nop -/* AC2080 8004AEE0 46803120 */ cvt.s.w $f4, $f6 -/* AC2084 8004AEE4 44813000 */ mtc1 $at, $f6 -/* AC2088 8004AEE8 46082282 */ mul.s $f10, $f4, $f8 -/* AC208C 8004AEEC 46065100 */ add.s $f4, $f10, $f6 -/* AC2090 8004AEF0 4600220D */ trunc.w.s $f8, $f4 -/* AC2094 8004AEF4 440D4000 */ mfc1 $t5, $f8 -/* AC2098 8004AEF8 00000000 */ nop -/* AC209C 8004AEFC A60D0020 */ sh $t5, 0x20($s0) -/* AC20A0 8004AF00 844FFFEC */ lh $t7, -0x14($v0) -/* AC20A4 8004AF04 448F5000 */ mtc1 $t7, $f10 -/* AC20A8 8004AF08 00000000 */ nop -/* AC20AC 8004AF0C 468051A0 */ cvt.s.w $f6, $f10 -/* AC20B0 8004AF10 E606000C */ swc1 $f6, 0xc($s0) -/* AC20B4 8004AF14 8458FFF0 */ lh $t8, -0x10($v0) -/* AC20B8 8004AF18 44982000 */ mtc1 $t8, $f4 -/* AC20BC 8004AF1C 00000000 */ nop -/* AC20C0 8004AF20 46802220 */ cvt.s.w $f8, $f4 -/* AC20C4 8004AF24 E6080010 */ swc1 $f8, 0x10($s0) -/* AC20C8 8004AF28 8459FFF4 */ lh $t9, -0xc($v0) -/* AC20CC 8004AF2C 44995000 */ mtc1 $t9, $f10 -/* AC20D0 8004AF30 00000000 */ nop -/* AC20D4 8004AF34 468051A0 */ cvt.s.w $f6, $f10 -/* AC20D8 8004AF38 46103102 */ mul.s $f4, $f6, $f16 -/* AC20DC 8004AF3C E6040014 */ swc1 $f4, 0x14($s0) -/* AC20E0 8004AF40 8448FFF8 */ lh $t0, -8($v0) -/* AC20E4 8004AF44 44884000 */ mtc1 $t0, $f8 -/* AC20E8 8004AF48 00000000 */ nop -/* AC20EC 8004AF4C 468042A0 */ cvt.s.w $f10, $f8 -/* AC20F0 8004AF50 E60A0018 */ swc1 $f10, 0x18($s0) -/* AC20F4 8004AF54 8449FFFC */ lh $t1, -4($v0) -/* AC20F8 8004AF58 44893000 */ mtc1 $t1, $f6 -/* AC20FC 8004AF5C 00000000 */ nop -/* AC2100 8004AF60 46803120 */ cvt.s.w $f4, $f6 -/* AC2104 8004AF64 46102202 */ mul.s $f8, $f4, $f16 -/* AC2108 8004AF68 E608001C */ swc1 $f8, 0x1c($s0) -/* AC210C 8004AF6C 844A0000 */ lh $t2, ($v0) -/* AC2110 8004AF70 A60A0022 */ sh $t2, 0x22($s0) -/* AC2114 8004AF74 8D6BFA90 */ lw $t3, %lo(gGameInfo)($t3) -/* AC2118 8004AF78 85630314 */ lh $v1, 0x314($t3) -.L8004AF7C: -/* AC211C 8004AF7C 3C018014 */ lui $at, %hi(D_80139FB8) -/* AC2120 8004AF80 1060000B */ beqz $v1, .L8004AFB0 -/* AC2124 8004AF84 C4309FB8 */ lwc1 $f16, %lo(D_80139FB8)($at) -/* AC2128 8004AF88 860C0144 */ lh $t4, 0x144($s0) -/* AC212C 8004AF8C 02002025 */ move $a0, $s0 -/* AC2130 8004AF90 AFAC00C8 */ sw $t4, 0xc8($sp) -/* AC2134 8004AF94 862E0022 */ lh $t6, 0x22($s1) -/* AC2138 8004AF98 0C011495 */ jal Camera_CopyPREGToModeValues -/* AC213C 8004AF9C A60E0144 */ sh $t6, 0x144($s0) -/* AC2140 8004AFA0 8FAD00C8 */ lw $t5, 0xc8($sp) -/* AC2144 8004AFA4 3C018014 */ lui $at, %hi(D_80139FBC) -/* AC2148 8004AFA8 A60D0144 */ sh $t5, 0x144($s0) -/* AC214C 8004AFAC C4309FBC */ lwc1 $f16, %lo(D_80139FBC)($at) -.L8004AFB0: -/* AC2150 8004AFB0 860F0022 */ lh $t7, 0x22($s0) -/* AC2154 8004AFB4 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 -/* AC2158 8004AFB8 AC2FD3A0 */ sw $t7, %lo(D_8011D3A0)($at) -/* AC215C 8004AFBC 8602015E */ lh $v0, 0x15e($s0) -/* AC2160 8004AFC0 10400007 */ beqz $v0, .L8004AFE0 -/* AC2164 8004AFC4 2401000A */ li $at, 10 -/* AC2168 8004AFC8 10410005 */ beq $v0, $at, .L8004AFE0 -/* AC216C 8004AFCC 24010014 */ li $at, 20 -/* AC2170 8004AFD0 10410003 */ beq $v0, $at, .L8004AFE0 -/* AC2174 8004AFD4 24010019 */ li $at, 25 -/* AC2178 8004AFD8 14410013 */ bne $v0, $at, .L8004B028 -/* AC217C 8004AFDC 3C038016 */ lui $v1, %hi(gGameInfo) -.L8004AFE0: -/* AC2180 8004AFE0 AE20000C */ sw $zero, 0xc($s1) -/* AC2184 8004AFE4 C60A0104 */ lwc1 $f10, 0x104($s0) -/* AC2188 8004AFE8 A6200018 */ sh $zero, 0x18($s1) -/* AC218C 8004AFEC 86220018 */ lh $v0, 0x18($s1) -/* AC2190 8004AFF0 2418000A */ li $t8, 10 -/* AC2194 8004AFF4 A6380020 */ sh $t8, 0x20($s1) -/* AC2198 8004AFF8 E62A001C */ swc1 $f10, 0x1c($s1) -/* AC219C 8004AFFC A6220014 */ sh $v0, 0x14($s1) -/* AC21A0 8004B000 A6220016 */ sh $v0, 0x16($s1) -/* AC21A4 8004B004 C606000C */ lwc1 $f6, 0xc($s0) -/* AC21A8 8004B008 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 -/* AC21AC 8004B00C E6260010 */ swc1 $f6, 0x10($s1) -/* AC21B0 8004B010 8619015E */ lh $t9, 0x15e($s0) -/* AC21B4 8004B014 27280001 */ addiu $t0, $t9, 1 -/* AC21B8 8004B018 A608015E */ sh $t0, 0x15e($s0) -/* AC21BC 8004B01C A620001A */ sh $zero, 0x1a($s1) -/* AC21C0 8004B020 10000006 */ b .L8004B03C -/* AC21C4 8004B024 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1) -.L8004B028: -/* AC21C8 8004B028 86220020 */ lh $v0, 0x20($s1) -/* AC21CC 8004B02C 10400002 */ beqz $v0, .L8004B038 -/* AC21D0 8004B030 2449FFFF */ addiu $t1, $v0, -1 -/* AC21D4 8004B034 A6290020 */ sh $t1, 0x20($s1) -.L8004B038: -/* AC21D8 8004B038 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1) -.L8004B03C: -/* AC21DC 8004B03C 8FAB0040 */ lw $t3, 0x40($sp) -/* AC21E0 8004B040 27AA00B0 */ addiu $t2, $sp, 0xb0 -/* AC21E4 8004B044 8D6E0000 */ lw $t6, ($t3) -/* AC21E8 8004B048 AD4E0000 */ sw $t6, ($t2) -/* AC21EC 8004B04C 8D6C0004 */ lw $t4, 4($t3) -/* AC21F0 8004B050 AD4C0004 */ sw $t4, 4($t2) -/* AC21F4 8004B054 8D6E0008 */ lw $t6, 8($t3) -/* AC21F8 8004B058 AD4E0008 */ sw $t6, 8($t2) -/* AC21FC 8004B05C 846D01C6 */ lh $t5, 0x1c6($v1) -/* AC2200 8004B060 846F01C8 */ lh $t7, 0x1c8($v1) -/* AC2204 8004B064 C60000E0 */ lwc1 $f0, 0xe0($s0) -/* AC2208 8004B068 448D2000 */ mtc1 $t5, $f4 -/* AC220C 8004B06C 448F5000 */ mtc1 $t7, $f10 -/* AC2210 8004B070 46802220 */ cvt.s.w $f8, $f4 -/* AC2214 8004B074 468051A0 */ cvt.s.w $f6, $f10 -/* AC2218 8004B078 46104082 */ mul.s $f2, $f8, $f16 -/* AC221C 8004B07C 00000000 */ nop -/* AC2220 8004B080 46001482 */ mul.s $f18, $f2, $f0 -/* AC2224 8004B084 00000000 */ nop -/* AC2228 8004B088 46103102 */ mul.s $f4, $f6, $f16 -/* AC222C 8004B08C 00000000 */ nop -/* AC2230 8004B090 46002202 */ mul.s $f8, $f4, $f0 -/* AC2234 8004B094 E7A800C0 */ swc1 $f8, 0xc0($sp) -/* AC2238 8004B098 86380018 */ lh $t8, 0x18($s1) -/* AC223C 8004B09C 13000003 */ beqz $t8, .L8004B0AC -/* AC2240 8004B0A0 00000000 */ nop -/* AC2244 8004B0A4 10000002 */ b .L8004B0B0 -/* AC2248 8004B0A8 E7A200BC */ swc1 $f2, 0xbc($sp) -.L8004B0AC: -/* AC224C 8004B0AC E7B200BC */ swc1 $f18, 0xbc($sp) -.L8004B0B0: -/* AC2250 8004B0B0 8622001A */ lh $v0, 0x1a($s1) -/* AC2254 8004B0B4 1040001D */ beqz $v0, .L8004B12C -/* AC2258 8004B0B8 0002C840 */ sll $t9, $v0, 1 -/* AC225C 8004B0BC 44993000 */ mtc1 $t9, $f6 -/* AC2260 8004B0C0 C62A0010 */ lwc1 $f10, 0x10($s1) -/* AC2264 8004B0C4 C60E00C8 */ lwc1 $f14, 0xc8($s0) -/* AC2268 8004B0C8 46803120 */ cvt.s.w $f4, $f6 -/* AC226C 8004B0CC 44069000 */ mfc1 $a2, $f18 -/* AC2270 8004B0D0 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000 -/* AC2274 8004B0D4 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC2278 8004B0D8 E7B200C4 */ swc1 $f18, 0xc4($sp) -/* AC227C 8004B0DC 0C010E27 */ jal func_8004389C -/* AC2280 8004B0E0 46045300 */ add.s $f12, $f10, $f4 -/* AC2284 8004B0E4 E60000C8 */ swc1 $f0, 0xc8($s0) -/* AC2288 8004B0E8 8628001A */ lh $t0, 0x1a($s1) -/* AC228C 8004B0EC 3C014220 */ li $at, 0x42200000 # 0.000000 -/* AC2290 8004B0F0 44815000 */ mtc1 $at, $f10 -/* AC2294 8004B0F4 00084840 */ sll $t1, $t0, 1 -/* AC2298 8004B0F8 44894000 */ mtc1 $t1, $f8 -/* AC229C 8004B0FC 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC22A0 8004B100 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC22A4 8004B104 468041A0 */ cvt.s.w $f6, $f8 -/* AC22A8 8004B108 8FA600C0 */ lw $a2, 0xc0($sp) -/* AC22AC 8004B10C C60E00C4 */ lwc1 $f14, 0xc4($s0) -/* AC22B0 8004B110 0C010E27 */ jal func_8004389C -/* AC22B4 8004B114 460A3300 */ add.s $f12, $f6, $f10 -/* AC22B8 8004B118 E60000C4 */ swc1 $f0, 0xc4($s0) -/* AC22BC 8004B11C 862A001A */ lh $t2, 0x1a($s1) -/* AC22C0 8004B120 254BFFFF */ addiu $t3, $t2, -1 -/* AC22C4 8004B124 10000011 */ b .L8004B16C -/* AC22C8 8004B128 A62B001A */ sh $t3, 0x1a($s1) -.L8004B12C: -/* AC22CC 8004B12C C62C0010 */ lwc1 $f12, 0x10($s1) -/* AC22D0 8004B130 C60E00C8 */ lwc1 $f14, 0xc8($s0) -/* AC22D4 8004B134 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC22D8 8004B138 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC22DC 8004B13C E7B200C4 */ swc1 $f18, 0xc4($sp) -/* AC22E0 8004B140 0C010E27 */ jal func_8004389C -/* AC22E4 8004B144 8FA600BC */ lw $a2, 0xbc($sp) -/* AC22E8 8004B148 3C014220 */ li $at, 0x42200000 # 0.000000 -/* AC22EC 8004B14C E60000C8 */ swc1 $f0, 0xc8($s0) -/* AC22F0 8004B150 44816000 */ mtc1 $at, $f12 -/* AC22F4 8004B154 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC22F8 8004B158 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC22FC 8004B15C 8FA600C0 */ lw $a2, 0xc0($sp) -/* AC2300 8004B160 0C010E27 */ jal func_8004389C -/* AC2304 8004B164 C60E00C4 */ lwc1 $f14, 0xc4($s0) -/* AC2308 8004B168 E60000C4 */ swc1 $f0, 0xc4($s0) -.L8004B16C: -/* AC230C 8004B16C 3C0C8016 */ lui $t4, %hi(gGameInfo) # $t4, 0x8016 -/* AC2310 8004B170 8D8CFA90 */ lw $t4, %lo(gGameInfo)($t4) -/* AC2314 8004B174 3C018014 */ lui $at, %hi(D_80139FC0) -/* AC2318 8004B178 C4269FC0 */ lwc1 $f6, %lo(D_80139FC0)($at) -/* AC231C 8004B17C 858E0198 */ lh $t6, 0x198($t4) -/* AC2320 8004B180 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000 -/* AC2324 8004B184 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC2328 8004B188 448E2000 */ mtc1 $t6, $f4 -/* AC232C 8004B18C C60E00CC */ lwc1 $f14, 0xcc($s0) -/* AC2330 8004B190 8FA600C4 */ lw $a2, 0xc4($sp) -/* AC2334 8004B194 46802220 */ cvt.s.w $f8, $f4 -/* AC2338 8004B198 46064302 */ mul.s $f12, $f8, $f6 -/* AC233C 8004B19C 0C010E27 */ jal func_8004389C -/* AC2340 8004B1A0 00000000 */ nop -/* AC2344 8004B1A4 E60000CC */ swc1 $f0, 0xcc($s0) -/* AC2348 8004B1A8 3C0D8016 */ lui $t5, %hi(gGameInfo) # $t5, 0x8016 -/* AC234C 8004B1AC 8DADFA90 */ lw $t5, %lo(gGameInfo)($t5) -/* AC2350 8004B1B0 3C018014 */ lui $at, %hi(D_80139FC4) -/* AC2354 8004B1B4 C4289FC4 */ lwc1 $f8, %lo(D_80139FC4)($at) -/* AC2358 8004B1B8 85AF019A */ lh $t7, 0x19a($t5) -/* AC235C 8004B1BC 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000 -/* AC2360 8004B1C0 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC2364 8004B1C4 448F5000 */ mtc1 $t7, $f10 -/* AC2368 8004B1C8 8FA600C0 */ lw $a2, 0xc0($sp) -/* AC236C 8004B1CC C60E00D0 */ lwc1 $f14, 0xd0($s0) -/* AC2370 8004B1D0 46805120 */ cvt.s.w $f4, $f10 -/* AC2374 8004B1D4 46082302 */ mul.s $f12, $f4, $f8 -/* AC2378 8004B1D8 0C010E27 */ jal func_8004389C -/* AC237C 8004B1DC 00000000 */ nop -/* AC2380 8004B1E0 E60000D0 */ swc1 $f0, 0xd0($s0) -/* AC2384 8004B1E4 3C188016 */ lui $t8, %hi(gGameInfo) # $t8, 0x8016 -/* AC2388 8004B1E8 8F18FA90 */ lw $t8, %lo(gGameInfo)($t8) -/* AC238C 8004B1EC 3C018014 */ lui $at, %hi(D_80139FC8) -/* AC2390 8004B1F0 C4249FC8 */ lwc1 $f4, %lo(D_80139FC8)($at) -/* AC2394 8004B1F4 8719019C */ lh $t9, 0x19c($t8) -/* AC2398 8004B1F8 3C018014 */ lui $at, %hi(D_80139FCC) -/* AC239C 8004B1FC C60800E0 */ lwc1 $f8, 0xe0($s0) -/* AC23A0 8004B200 44993000 */ mtc1 $t9, $f6 -/* AC23A4 8004B204 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000 -/* AC23A8 8004B208 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC23AC 8004B20C 468032A0 */ cvt.s.w $f10, $f6 -/* AC23B0 8004B210 C4269FCC */ lwc1 $f6, %lo(D_80139FCC)($at) -/* AC23B4 8004B214 46000386 */ mov.s $f14, $f0 -/* AC23B8 8004B218 46045302 */ mul.s $f12, $f10, $f4 -/* AC23BC 8004B21C 00000000 */ nop -/* AC23C0 8004B220 46064282 */ mul.s $f10, $f8, $f6 -/* AC23C4 8004B224 44065000 */ mfc1 $a2, $f10 -/* AC23C8 8004B228 0C010E27 */ jal func_8004389C -/* AC23CC 8004B22C 00000000 */ nop -/* AC23D0 8004B230 E60000D4 */ swc1 $f0, 0xd4($s0) -/* AC23D4 8004B234 02002025 */ move $a0, $s0 -/* AC23D8 8004B238 27A50090 */ addiu $a1, $sp, 0x90 -/* AC23DC 8004B23C 8E060000 */ lw $a2, ($s0) -/* AC23E0 8004B240 0C0115EA */ jal func_800457A8 -/* AC23E4 8004B244 86070022 */ lh $a3, 0x22($s0) -/* AC23E8 8004B248 27A400A8 */ addiu $a0, $sp, 0xa8 -/* AC23EC 8004B24C 8FA5003C */ lw $a1, 0x3c($sp) -/* AC23F0 8004B250 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC23F4 8004B254 8FA60038 */ lw $a2, 0x38($sp) -/* AC23F8 8004B258 86280020 */ lh $t0, 0x20($s1) -/* AC23FC 8004B25C 8E060004 */ lw $a2, 4($s0) -/* AC2400 8004B260 8E070008 */ lw $a3, 8($s0) -/* AC2404 8004B264 02002025 */ move $a0, $s0 -/* AC2408 8004B268 8FA500A8 */ lw $a1, 0xa8($sp) -/* AC240C 8004B26C 0C011A70 */ jal func_800469C0 -/* AC2410 8004B270 AFA80010 */ sw $t0, 0x10($sp) -/* AC2414 8004B274 E7A000A8 */ swc1 $f0, 0xa8($sp) -/* AC2418 8004B278 E60000DC */ swc1 $f0, 0xdc($s0) -/* AC241C 8004B27C 26020094 */ addiu $v0, $s0, 0x94 -/* AC2420 8004B280 C44C0004 */ lwc1 $f12, 4($v0) -/* AC2424 8004B284 C6020104 */ lwc1 $f2, 0x104($s0) -/* AC2428 8004B288 3C014120 */ li $at, 0x41200000 # 0.000000 -/* AC242C 8004B28C 44812000 */ mtc1 $at, $f4 -/* AC2430 8004B290 460C103E */ c.le.s $f2, $f12 -/* AC2434 8004B294 00000000 */ nop -/* AC2438 8004B298 45020004 */ bc1fl .L8004B2AC -/* AC243C 8004B29C 46026001 */ sub.s $f0, $f12, $f2 -/* AC2440 8004B2A0 10000003 */ b .L8004B2B0 -/* AC2444 8004B2A4 46026001 */ sub.s $f0, $f12, $f2 -/* AC2448 8004B2A8 46026001 */ sub.s $f0, $f12, $f2 -.L8004B2AC: -/* AC244C 8004B2AC 46000007 */ neg.s $f0, $f0 -.L8004B2B0: -/* AC2450 8004B2B0 4604003C */ c.lt.s $f0, $f4 -/* AC2454 8004B2B4 C7A80064 */ lwc1 $f8, 0x64($sp) -/* AC2458 8004B2B8 3C014248 */ li $at, 0x42480000 # 0.000000 -/* AC245C 8004B2BC 45030014 */ bc1tl .L8004B310 -/* AC2460 8004B2C0 86290018 */ lh $t1, 0x18($s1) -/* AC2464 8004B2C4 C6000114 */ lwc1 $f0, 0x114($s0) -/* AC2468 8004B2C8 44815000 */ mtc1 $at, $f10 -/* AC246C 8004B2CC C7A60064 */ lwc1 $f6, 0x64($sp) -/* AC2470 8004B2D0 4608003E */ c.le.s $f0, $f8 -/* AC2474 8004B2D4 3C0142C8 */ li $at, 0x42C80000 # 0.000000 -/* AC2478 8004B2D8 45020004 */ bc1fl .L8004B2EC -/* AC247C 8004B2DC 46003081 */ sub.s $f2, $f6, $f0 -/* AC2480 8004B2E0 10000003 */ b .L8004B2F0 -/* AC2484 8004B2E4 46004081 */ sub.s $f2, $f8, $f0 -/* AC2488 8004B2E8 46003081 */ sub.s $f2, $f6, $f0 -.L8004B2EC: -/* AC248C 8004B2EC 46001087 */ neg.s $f2, $f2 -.L8004B2F0: -/* AC2490 8004B2F0 460A103C */ c.lt.s $f2, $f10 -/* AC2494 8004B2F4 00000000 */ nop -/* AC2498 8004B2F8 45030005 */ bc1tl .L8004B310 -/* AC249C 8004B2FC 86290018 */ lh $t1, 0x18($s1) -/* AC24A0 8004B300 44812000 */ mtc1 $at, $f4 -/* AC24A4 8004B304 00000000 */ nop -/* AC24A8 8004B308 E60400C4 */ swc1 $f4, 0xc4($s0) -/* AC24AC 8004B30C 86290018 */ lh $t1, 0x18($s1) -.L8004B310: -/* AC24B0 8004B310 02002025 */ move $a0, $s0 -/* AC24B4 8004B314 87A50096 */ lh $a1, 0x96($sp) -/* AC24B8 8004B318 11200017 */ beqz $t1, .L8004B378 -/* AC24BC 8004B31C 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC24C0 8004B320 44814000 */ mtc1 $at, $f8 -/* AC24C4 8004B324 C60600C8 */ lwc1 $f6, 0xc8($s0) -/* AC24C8 8004B328 86240016 */ lh $a0, 0x16($s1) -/* AC24CC 8004B32C 87A50096 */ lh $a1, 0x96($sp) -/* AC24D0 8004B330 46064283 */ div.s $f10, $f8, $f6 -/* AC24D4 8004B334 2407000A */ li $a3, 10 -/* AC24D8 8004B338 44065000 */ mfc1 $a2, $f10 -/* AC24DC 8004B33C 0C010E47 */ jal func_8004391C -/* AC24E0 8004B340 00000000 */ nop -/* AC24E4 8004B344 A7A200AE */ sh $v0, 0xae($sp) -/* AC24E8 8004B348 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC24EC 8004B34C 44812000 */ mtc1 $at, $f4 -/* AC24F0 8004B350 C60800C8 */ lwc1 $f8, 0xc8($s0) -/* AC24F4 8004B354 86240014 */ lh $a0, 0x14($s1) -/* AC24F8 8004B358 87A50094 */ lh $a1, 0x94($sp) -/* AC24FC 8004B35C 46082183 */ div.s $f6, $f4, $f8 -/* AC2500 8004B360 2407000A */ li $a3, 10 -/* AC2504 8004B364 44063000 */ mfc1 $a2, $f6 -/* AC2508 8004B368 0C010E47 */ jal func_8004391C -/* AC250C 8004B36C 00000000 */ nop -/* AC2510 8004B370 1000000D */ b .L8004B3A8 -/* AC2514 8004B374 A7A200AC */ sh $v0, 0xac($sp) -.L8004B378: -/* AC2518 8004B378 44805000 */ mtc1 $zero, $f10 -/* AC251C 8004B37C 8446000E */ lh $a2, 0xe($v0) -/* AC2520 8004B380 8E070014 */ lw $a3, 0x14($s0) -/* AC2524 8004B384 0C011B2D */ jal func_80046CB4 -/* AC2528 8004B388 E7AA0010 */ swc1 $f10, 0x10($sp) -/* AC252C 8004B38C A7A200AE */ sh $v0, 0xae($sp) -/* AC2530 8004B390 86060020 */ lh $a2, 0x20($s0) -/* AC2534 8004B394 02002025 */ move $a0, $s0 -/* AC2538 8004B398 87A50094 */ lh $a1, 0x94($sp) -/* AC253C 8004B39C 0C011AD1 */ jal func_80046B44 -/* AC2540 8004B3A0 00003825 */ move $a3, $zero -/* AC2544 8004B3A4 A7A200AC */ sh $v0, 0xac($sp) -.L8004B3A8: -/* AC2548 8004B3A8 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 -/* AC254C 8004B3AC 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1) -/* AC2550 8004B3B0 27A600A8 */ addiu $a2, $sp, 0xa8 -/* AC2554 8004B3B4 8464019E */ lh $a0, 0x19e($v1) -/* AC2558 8004B3B8 0082082A */ slt $at, $a0, $v0 -/* AC255C 8004B3BC 50200003 */ beql $at, $zero, .L8004B3CC -/* AC2560 8004B3C0 846201D8 */ lh $v0, 0x1d8($v1) -/* AC2564 8004B3C4 A7A400AC */ sh $a0, 0xac($sp) -/* AC2568 8004B3C8 846201D8 */ lh $v0, 0x1d8($v1) -.L8004B3CC: -/* AC256C 8004B3CC 87AA00AC */ lh $t2, 0xac($sp) -/* AC2570 8004B3D0 0142082A */ slt $at, $t2, $v0 -/* AC2574 8004B3D4 50200003 */ beql $at, $zero, .L8004B3E4 -/* AC2578 8004B3D8 8FA40038 */ lw $a0, 0x38($sp) -/* AC257C 8004B3DC A7A200AC */ sh $v0, 0xac($sp) -/* AC2580 8004B3E0 8FA40038 */ lw $a0, 0x38($sp) -.L8004B3E4: -/* AC2584 8004B3E4 0C010F0A */ jal func_80043C28 -/* AC2588 8004B3E8 8FA5003C */ lw $a1, 0x3c($sp) -/* AC258C 8004B3EC 860B0140 */ lh $t3, 0x140($s0) -/* AC2590 8004B3F0 24010007 */ li $at, 7 -/* AC2594 8004B3F4 55610038 */ bnel $t3, $at, .L8004B4D8 -/* AC2598 8004B3F8 C608000C */ lwc1 $f8, 0xc($s0) -/* AC259C 8004B3FC 860C0022 */ lh $t4, 0x22($s0) -/* AC25A0 8004B400 02002025 */ move $a0, $s0 -/* AC25A4 8004B404 27A500A8 */ addiu $a1, $sp, 0xa8 -/* AC25A8 8004B408 318E0010 */ andi $t6, $t4, 0x10 -/* AC25AC 8004B40C 15C00031 */ bnez $t6, .L8004B4D4 -/* AC25B0 8004B410 27AD00BC */ addiu $t5, $sp, 0xbc -/* AC25B4 8004B414 8E060004 */ lw $a2, 4($s0) -/* AC25B8 8004B418 8E07000C */ lw $a3, 0xc($s0) -/* AC25BC 8004B41C AFB10014 */ sw $s1, 0x14($sp) -/* AC25C0 8004B420 0C011B88 */ jal func_80046E20 -/* AC25C4 8004B424 AFAD0010 */ sw $t5, 0x10($sp) -/* AC25C8 8004B428 860F0022 */ lh $t7, 0x22($s0) -/* AC25CC 8004B42C 87B9009C */ lh $t9, 0x9c($sp) -/* AC25D0 8004B430 27A400A8 */ addiu $a0, $sp, 0xa8 -/* AC25D4 8004B434 31F80004 */ andi $t8, $t7, 4 -/* AC25D8 8004B438 13000008 */ beqz $t8, .L8004B45C -/* AC25DC 8004B43C 8FA50040 */ lw $a1, 0x40($sp) -/* AC25E0 8004B440 00194023 */ negu $t0, $t9 -/* AC25E4 8004B444 A6080134 */ sh $t0, 0x134($s0) -/* AC25E8 8004B448 87A9009E */ lh $t1, 0x9e($sp) -/* AC25EC 8004B44C A6000138 */ sh $zero, 0x138($s0) -/* AC25F0 8004B450 252A8001 */ addiu $t2, $t1, -0x7fff -/* AC25F4 8004B454 10000008 */ b .L8004B478 -/* AC25F8 8004B458 A60A0136 */ sh $t2, 0x136($s0) -.L8004B45C: -/* AC25FC 8004B45C 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC2600 8004B460 8FA6003C */ lw $a2, 0x3c($sp) -/* AC2604 8004B464 87AB00AC */ lh $t3, 0xac($sp) -/* AC2608 8004B468 A60B0134 */ sh $t3, 0x134($s0) -/* AC260C 8004B46C 87AC00AE */ lh $t4, 0xae($sp) -/* AC2610 8004B470 A6000138 */ sh $zero, 0x138($s0) -/* AC2614 8004B474 A60C0136 */ sh $t4, 0x136($s0) -.L8004B478: -/* AC2618 8004B478 862E0018 */ lh $t6, 0x18($s1) -/* AC261C 8004B47C 3C018014 */ lui $at, %hi(D_80139FD0) -/* AC2620 8004B480 C7A800BC */ lwc1 $f8, 0xbc($sp) -/* AC2624 8004B484 51C00021 */ beql $t6, $zero, .L8004B50C -/* AC2628 8004B488 C60C0018 */ lwc1 $f12, 0x18($s0) -/* AC262C 8004B48C C4249FD0 */ lwc1 $f4, %lo(D_80139FD0)($at) -/* AC2630 8004B490 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC2634 8004B494 44815000 */ mtc1 $at, $f10 -/* AC2638 8004B498 46082182 */ mul.s $f6, $f4, $f8 -/* AC263C 8004B49C 862D0016 */ lh $t5, 0x16($s1) -/* AC2640 8004B4A0 86050136 */ lh $a1, 0x136($s0) -/* AC2644 8004B4A4 2407000A */ li $a3, 10 -/* AC2648 8004B4A8 25B98001 */ addiu $t9, $t5, -0x7fff -/* AC264C 8004B4AC 03255023 */ subu $t2, $t9, $a1 -/* AC2650 8004B4B0 00AA2021 */ addu $a0, $a1, $t2 -/* AC2654 8004B4B4 46065101 */ sub.s $f4, $f10, $f6 -/* AC2658 8004B4B8 00042400 */ sll $a0, $a0, 0x10 -/* AC265C 8004B4BC 00042403 */ sra $a0, $a0, 0x10 -/* AC2660 8004B4C0 44062000 */ mfc1 $a2, $f4 -/* AC2664 8004B4C4 0C010E47 */ jal func_8004391C -/* AC2668 8004B4C8 00000000 */ nop -/* AC266C 8004B4CC 1000000E */ b .L8004B508 -/* AC2670 8004B4D0 A6020136 */ sh $v0, 0x136($s0) -.L8004B4D4: -/* AC2674 8004B4D4 C608000C */ lwc1 $f8, 0xc($s0) -.L8004B4D8: -/* AC2678 8004B4D8 A6200018 */ sh $zero, 0x18($s1) -/* AC267C 8004B4DC 3C018012 */ lui $at, %hi(D_8011D3E8) # $at, 0x8012 -/* AC2680 8004B4E0 E6280010 */ swc1 $f8, 0x10($s1) -/* AC2684 8004B4E4 8FAC0038 */ lw $t4, 0x38($sp) -/* AC2688 8004B4E8 AC20D3E8 */ sw $zero, %lo(D_8011D3E8)($at) -/* AC268C 8004B4EC 8FAB0040 */ lw $t3, 0x40($sp) -/* AC2690 8004B4F0 8D8D0000 */ lw $t5, ($t4) -/* AC2694 8004B4F4 AD6D0000 */ sw $t5, ($t3) -/* AC2698 8004B4F8 8D8E0004 */ lw $t6, 4($t4) -/* AC269C 8004B4FC AD6E0004 */ sw $t6, 4($t3) -/* AC26A0 8004B500 8D8D0008 */ lw $t5, 8($t4) -/* AC26A4 8004B504 AD6D0008 */ sw $t5, 8($t3) -.L8004B508: -/* AC26A8 8004B508 C60C0018 */ lwc1 $f12, 0x18($s0) -.L8004B50C: -/* AC26AC 8004B50C C60E00FC */ lwc1 $f14, 0xfc($s0) -/* AC26B0 8004B510 8E0600D4 */ lw $a2, 0xd4($s0) -/* AC26B4 8004B514 0C010E27 */ jal func_8004389C -/* AC26B8 8004B518 3C073F80 */ lui $a3, 0x3f80 -/* AC26BC 8004B51C E60000FC */ swc1 $f0, 0xfc($s0) -/* AC26C0 8004B520 00002025 */ move $a0, $zero -/* AC26C4 8004B524 8605015A */ lh $a1, 0x15a($s0) -/* AC26C8 8004B528 3C063F00 */ lui $a2, 0x3f00 -/* AC26CC 8004B52C 0C010E47 */ jal func_8004391C -/* AC26D0 8004B530 2407000A */ li $a3, 10 -/* AC26D4 8004B534 A602015A */ sh $v0, 0x15a($s0) -/* AC26D8 8004B538 02002025 */ move $a0, $s0 -/* AC26DC 8004B53C 0C011429 */ jal func_800450A4 -/* AC26E0 8004B540 8E05001C */ lw $a1, 0x1c($s0) -/* AC26E4 8004B544 E6000100 */ swc1 $f0, 0x100($s0) -/* AC26E8 8004B548 8FBF0024 */ lw $ra, 0x24($sp) -/* AC26EC 8004B54C 8FB10020 */ lw $s1, 0x20($sp) -/* AC26F0 8004B550 8FB0001C */ lw $s0, 0x1c($sp) -/* AC26F4 8004B554 27BD00D8 */ addiu $sp, $sp, 0xd8 -/* AC26F8 8004B558 03E00008 */ jr $ra -/* AC26FC 8004B55C 24020001 */ li $v0, 1 diff --git a/asm/non_matchings/code/z_camera/Camera_KeepOn0.s b/asm/non_matchings/code/z_camera/Camera_KeepOn0.s deleted file mode 100644 index f2cbbb70a0..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_KeepOn0.s +++ /dev/null @@ -1,222 +0,0 @@ -.rdata -glabel D_8013938C - .asciz "\x1b[43;30mcamera: warning: talk: target is not valid, change normal camera\n\x1b[m" - .balign 4 - -.late_rodata -glabel D_8013A160 - .float 0.01 - -glabel D_8013A164 - .float 0.01 - -glabel D_8013A168 - .float 0.01 - -.text -glabel Camera_KeepOn0 -/* AC6544 8004F3A4 27BDFF90 */ addiu $sp, $sp, -0x70 -/* AC6548 8004F3A8 AFBF001C */ sw $ra, 0x1c($sp) -/* AC654C 8004F3AC AFB00018 */ sw $s0, 0x18($sp) -/* AC6550 8004F3B0 848E014C */ lh $t6, 0x14c($a0) -/* AC6554 8004F3B4 8483015E */ lh $v1, 0x15e($a0) -/* AC6558 8004F3B8 00808025 */ move $s0, $a0 -/* AC655C 8004F3BC 31CFFFEF */ andi $t7, $t6, 0xffef -/* AC6560 8004F3C0 1060000A */ beqz $v1, .L8004F3EC -/* AC6564 8004F3C4 A48F014C */ sh $t7, 0x14c($a0) -/* AC6568 8004F3C8 2401000A */ li $at, 10 -/* AC656C 8004F3CC 10610007 */ beq $v1, $at, .L8004F3EC -/* AC6570 8004F3D0 24010014 */ li $at, 20 -/* AC6574 8004F3D4 10610005 */ beq $v1, $at, .L8004F3EC -/* AC6578 8004F3D8 3C188016 */ lui $t8, %hi(gGameInfo) # $t8, 0x8016 -/* AC657C 8004F3DC 8F18FA90 */ lw $t8, %lo(gGameInfo)($t8) -/* AC6580 8004F3E0 87030314 */ lh $v1, 0x314($t8) -/* AC6584 8004F3E4 10600022 */ beqz $v1, .L8004F470 -/* AC6588 8004F3E8 00000000 */ nop -.L8004F3EC: -/* AC658C 8004F3EC 86190142 */ lh $t9, 0x142($s0) -/* AC6590 8004F3F0 3C0A8012 */ lui $t2, %hi(sCameraSettings+4) -/* AC6594 8004F3F4 860B0144 */ lh $t3, 0x144($s0) -/* AC6598 8004F3F8 001948C0 */ sll $t1, $t9, 3 -/* AC659C 8004F3FC 01495021 */ addu $t2, $t2, $t1 -/* AC65A0 8004F400 8D4AD068 */ lw $t2, %lo(sCameraSettings+4)($t2) -/* AC65A4 8004F404 000B60C0 */ sll $t4, $t3, 3 -/* AC65A8 8004F408 3C018014 */ lui $at, %hi(D_8013A160) -/* AC65AC 8004F40C 014C6821 */ addu $t5, $t2, $t4 -/* AC65B0 8004F410 8DA20004 */ lw $v0, 4($t5) -/* AC65B4 8004F414 C428A160 */ lwc1 $f8, %lo(D_8013A160)($at) -/* AC65B8 8004F418 3C018014 */ lui $at, %hi(D_8013A164) -/* AC65BC 8004F41C 844E0000 */ lh $t6, ($v0) -/* AC65C0 8004F420 3C098016 */ lui $t1, %hi(gGameInfo) -/* AC65C4 8004F424 2442000C */ addiu $v0, $v0, 0xc -/* AC65C8 8004F428 448E2000 */ mtc1 $t6, $f4 -/* AC65CC 8004F42C 00000000 */ nop -/* AC65D0 8004F430 468021A0 */ cvt.s.w $f6, $f4 -/* AC65D4 8004F434 46083282 */ mul.s $f10, $f6, $f8 -/* AC65D8 8004F438 E60A0000 */ swc1 $f10, ($s0) -/* AC65DC 8004F43C 844FFFF8 */ lh $t7, -8($v0) -/* AC65E0 8004F440 C424A164 */ lwc1 $f4, %lo(D_8013A164)($at) -/* AC65E4 8004F444 448F8000 */ mtc1 $t7, $f16 -/* AC65E8 8004F448 00000000 */ nop -/* AC65EC 8004F44C 468084A0 */ cvt.s.w $f18, $f16 -/* AC65F0 8004F450 46049182 */ mul.s $f6, $f18, $f4 -/* AC65F4 8004F454 E6060004 */ swc1 $f6, 4($s0) -/* AC65F8 8004F458 8458FFFC */ lh $t8, -4($v0) -/* AC65FC 8004F45C A6180008 */ sh $t8, 8($s0) -/* AC6600 8004F460 84590000 */ lh $t9, ($v0) -/* AC6604 8004F464 A619000A */ sh $t9, 0xa($s0) -/* AC6608 8004F468 8D29FA90 */ lw $t1, %lo(gGameInfo)($t1) -/* AC660C 8004F46C 85230314 */ lh $v1, 0x314($t1) -.L8004F470: -/* AC6610 8004F470 10600003 */ beqz $v1, .L8004F480 -/* AC6614 8004F474 00000000 */ nop -/* AC6618 8004F478 0C011495 */ jal Camera_CopyPREGToModeValues -/* AC661C 8004F47C 02002025 */ move $a0, $s0 -.L8004F480: -/* AC6620 8004F480 0C0111DB */ jal func_8004476C -/* AC6624 8004F484 02002025 */ move $a0, $s0 -/* AC6628 8004F488 26040074 */ addiu $a0, $s0, 0x74 -/* AC662C 8004F48C AFA4002C */ sw $a0, 0x2c($sp) -/* AC6630 8004F490 00402825 */ move $a1, $v0 -/* AC6634 8004F494 0C010EF1 */ jal func_80043BC4 -/* AC6638 8004F498 AFA20044 */ sw $v0, 0x44($sp) -/* AC663C 8004F49C 8FA4002C */ lw $a0, 0x2c($sp) -/* AC6640 8004F4A0 8FA30044 */ lw $v1, 0x44($sp) -/* AC6644 8004F4A4 2606005C */ addiu $a2, $s0, 0x5c -/* AC6648 8004F4A8 8C8A0000 */ lw $t2, ($a0) -/* AC664C 8004F4AC 27AC003C */ addiu $t4, $sp, 0x3c -/* AC6650 8004F4B0 2401FFFF */ li $at, -1 -/* AC6654 8004F4B4 ACCA0000 */ sw $t2, ($a2) -/* AC6658 8004F4B8 8C8B0004 */ lw $t3, 4($a0) -/* AC665C 8004F4BC ACCB0004 */ sw $t3, 4($a2) -/* AC6660 8004F4C0 8C8A0008 */ lw $t2, 8($a0) -/* AC6664 8004F4C4 ACCA0008 */ sw $t2, 8($a2) -/* AC6668 8004F4C8 886E0006 */ lwl $t6, 6($v1) -/* AC666C 8004F4CC 986E0009 */ lwr $t6, 9($v1) -/* AC6670 8004F4D0 AD8E0000 */ sw $t6, ($t4) -/* AC6674 8004F4D4 946E000A */ lhu $t6, 0xa($v1) -/* AC6678 8004F4D8 A58E0004 */ sh $t6, 4($t4) -/* AC667C 8004F4DC 8467000C */ lh $a3, 0xc($v1) -/* AC6680 8004F4E0 54E10003 */ bnel $a3, $at, .L8004F4F0 -/* AC6684 8004F4E4 8E0500A8 */ lw $a1, 0xa8($s0) -/* AC6688 8004F4E8 24071770 */ li $a3, 6000 -/* AC668C 8004F4EC 8E0500A8 */ lw $a1, 0xa8($s0) -.L8004F4F0: -/* AC6690 8004F4F0 10A00005 */ beqz $a1, .L8004F508 -/* AC6694 8004F4F4 00000000 */ nop -/* AC6698 8004F4F8 8CAF0130 */ lw $t7, 0x130($a1) -/* AC669C 8004F4FC 260400AC */ addiu $a0, $s0, 0xac -/* AC66A0 8004F500 55E0000C */ bnezl $t7, .L8004F534 -/* AC66A4 8004F504 AFA40028 */ sw $a0, 0x28($sp) -.L8004F508: -/* AC66A8 8004F508 14A00003 */ bnez $a1, .L8004F518 -/* AC66AC 8004F50C 3C048014 */ lui $a0, %hi(D_8013938C) # $a0, 0x8014 -/* AC66B0 8004F510 0C00084C */ jal osSyncPrintf -/* AC66B4 8004F514 2484938C */ addiu $a0, %lo(D_8013938C) # addiu $a0, $a0, -0x6c74 -.L8004F518: -/* AC66B8 8004F518 AE0000A8 */ sw $zero, 0xa8($s0) -/* AC66BC 8004F51C 02002025 */ move $a0, $s0 -/* AC66C0 8004F520 0C016911 */ jal func_8005A444 -/* AC66C4 8004F524 00002825 */ move $a1, $zero -/* AC66C8 8004F528 10000059 */ b .L8004F690 -/* AC66CC 8004F52C 24020001 */ li $v0, 1 -/* AC66D0 8004F530 AFA40028 */ sw $a0, 0x28($sp) -.L8004F534: -/* AC66D4 8004F534 AFA60030 */ sw $a2, 0x30($sp) -/* AC66D8 8004F538 0C00BBB9 */ jal func_8002EEE4 -/* AC66DC 8004F53C A7A7003A */ sh $a3, 0x3a($sp) -/* AC66E0 8004F540 26060050 */ addiu $a2, $s0, 0x50 -/* AC66E4 8004F544 AFA6002C */ sw $a2, 0x2c($sp) -/* AC66E8 8004F548 27A40054 */ addiu $a0, $sp, 0x54 -/* AC66EC 8004F54C 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC66F0 8004F550 8FA50030 */ lw $a1, 0x30($sp) -/* AC66F4 8004F554 27A4005C */ addiu $a0, $sp, 0x5c -/* AC66F8 8004F558 8FA50030 */ lw $a1, 0x30($sp) -/* AC66FC 8004F55C 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC6700 8004F560 8FA60028 */ lw $a2, 0x28($sp) -/* AC6704 8004F564 8618000A */ lh $t8, 0xa($s0) -/* AC6708 8004F568 3C018012 */ lui $at, %hi(D_8011D3A0) -/* AC670C 8004F56C 87A7003A */ lh $a3, 0x3a($sp) -/* AC6710 8004F570 AC38D3A0 */ sw $t8, %lo(D_8011D3A0)($at) -/* AC6714 8004F574 8603015E */ lh $v1, 0x15e($s0) -/* AC6718 8004F578 54600015 */ bnezl $v1, .L8004F5D0 -/* AC671C 8004F57C 2608000C */ addiu $t0, $s0, 0xc -/* AC6720 8004F580 44874000 */ mtc1 $a3, $f8 -/* AC6724 8004F584 24790001 */ addiu $t9, $v1, 1 -/* AC6728 8004F588 A619015E */ sh $t9, 0x15e($s0) -/* AC672C 8004F58C 468042A0 */ cvt.s.w $f10, $f8 -/* AC6730 8004F590 3C018014 */ lui $at, %hi(D_8013A168) -/* AC6734 8004F594 C430A168 */ lwc1 $f16, %lo(D_8013A168)($at) -/* AC6738 8004F598 44802000 */ mtc1 $zero, $f4 -/* AC673C 8004F59C 86090008 */ lh $t1, 8($s0) -/* AC6740 8004F5A0 A600015A */ sh $zero, 0x15a($s0) -/* AC6744 8004F5A4 46105482 */ mul.s $f18, $f10, $f16 -/* AC6748 8004F5A8 2608000C */ addiu $t0, $s0, 0xc -/* AC674C 8004F5AC E6040100 */ swc1 $f4, 0x100($s0) -/* AC6750 8004F5B0 E61200FC */ swc1 $f18, 0xfc($s0) -/* AC6754 8004F5B4 A5090004 */ sh $t1, 4($t0) -/* AC6758 8004F5B8 C6060000 */ lwc1 $f6, ($s0) -/* AC675C 8004F5BC C60000FC */ lwc1 $f0, 0xfc($s0) -/* AC6760 8004F5C0 46060202 */ mul.s $f8, $f0, $f6 -/* AC6764 8004F5C4 46080281 */ sub.s $f10, $f0, $f8 -/* AC6768 8004F5C8 E50A0000 */ swc1 $f10, ($t0) -/* AC676C 8004F5CC 2608000C */ addiu $t0, $s0, 0xc -.L8004F5D0: -/* AC6770 8004F5D0 85020004 */ lh $v0, 4($t0) -/* AC6774 8004F5D4 87AB0062 */ lh $t3, 0x62($sp) -/* AC6778 8004F5D8 87AA005A */ lh $t2, 0x5a($sp) -/* AC677C 8004F5DC 10400022 */ beqz $v0, .L8004F668 -/* AC6780 8004F5E0 016A6023 */ subu $t4, $t3, $t2 -/* AC6784 8004F5E4 000C6C00 */ sll $t5, $t4, 0x10 -/* AC6788 8004F5E8 000D7403 */ sra $t6, $t5, 0x10 -/* AC678C 8004F5EC 01C2001A */ div $zero, $t6, $v0 -/* AC6790 8004F5F0 00007812 */ mflo $t7 -/* AC6794 8004F5F4 448F8000 */ mtc1 $t7, $f16 -/* AC6798 8004F5F8 C6040004 */ lwc1 $f4, 4($s0) -/* AC679C 8004F5FC 448A4000 */ mtc1 $t2, $f8 -/* AC67A0 8004F600 468084A0 */ cvt.s.w $f18, $f16 -/* AC67A4 8004F604 14400002 */ bnez $v0, .L8004F610 -/* AC67A8 8004F608 00000000 */ nop -/* AC67AC 8004F60C 0007000D */ break 7 -.L8004F610: -/* AC67B0 8004F610 2401FFFF */ li $at, -1 -/* AC67B4 8004F614 14410004 */ bne $v0, $at, .L8004F628 -/* AC67B8 8004F618 3C018000 */ lui $at, 0x8000 -/* AC67BC 8004F61C 15C10002 */ bne $t6, $at, .L8004F628 -/* AC67C0 8004F620 00000000 */ nop -/* AC67C4 8004F624 0006000D */ break 6 -.L8004F628: -/* AC67C8 8004F628 46049182 */ mul.s $f6, $f18, $f4 -/* AC67CC 8004F62C AFA80028 */ sw $t0, 0x28($sp) -/* AC67D0 8004F630 8FA4002C */ lw $a0, 0x2c($sp) -/* AC67D4 8004F634 8FA50030 */ lw $a1, 0x30($sp) -/* AC67D8 8004F638 27A60054 */ addiu $a2, $sp, 0x54 -/* AC67DC 8004F63C 468042A0 */ cvt.s.w $f10, $f8 -/* AC67E0 8004F640 46065400 */ add.s $f16, $f10, $f6 -/* AC67E4 8004F644 4600848D */ trunc.w.s $f18, $f16 -/* AC67E8 8004F648 44199000 */ mfc1 $t9, $f18 -/* AC67EC 8004F64C 0C010F0A */ jal func_80043C28 -/* AC67F0 8004F650 A7B9005A */ sh $t9, 0x5a($sp) -/* AC67F4 8004F654 8FA80028 */ lw $t0, 0x28($sp) -/* AC67F8 8004F658 85090004 */ lh $t1, 4($t0) -/* AC67FC 8004F65C 252BFFFF */ addiu $t3, $t1, -1 -/* AC6800 8004F660 10000004 */ b .L8004F674 -/* AC6804 8004F664 A50B0004 */ sh $t3, 4($t0) -.L8004F668: -/* AC6808 8004F668 860C014C */ lh $t4, 0x14c($s0) -/* AC680C 8004F66C 358D0410 */ ori $t5, $t4, 0x410 -/* AC6810 8004F670 A60D014C */ sh $t5, 0x14c($s0) -.L8004F674: -/* AC6814 8004F674 C50C0000 */ lwc1 $f12, ($t0) -/* AC6818 8004F678 C60E00FC */ lwc1 $f14, 0xfc($s0) -/* AC681C 8004F67C 3C063F00 */ lui $a2, 0x3f00 -/* AC6820 8004F680 0C010E27 */ jal func_8004389C -/* AC6824 8004F684 3C074120 */ lui $a3, 0x4120 -/* AC6828 8004F688 E60000FC */ swc1 $f0, 0xfc($s0) -/* AC682C 8004F68C 24020001 */ li $v0, 1 -.L8004F690: -/* AC6830 8004F690 8FBF001C */ lw $ra, 0x1c($sp) -/* AC6834 8004F694 8FB00018 */ lw $s0, 0x18($sp) -/* AC6838 8004F698 27BD0070 */ addiu $sp, $sp, 0x70 -/* AC683C 8004F69C 03E00008 */ jr $ra -/* AC6840 8004F6A0 00000000 */ nop diff --git a/asm/non_matchings/code/z_camera/Camera_KeepOn1.s b/asm/non_matchings/code/z_camera/Camera_KeepOn1.s deleted file mode 100644 index 1fa5ed3418..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_KeepOn1.s +++ /dev/null @@ -1,1097 +0,0 @@ -.rdata -glabel D_80139248 - .asciz "\x1b[43;30mcamera: warning: keepon: target is not valid, change parallel\n\x1b[m" - .balign 4 - -.late_rodata -glabel D_8013A078 - .float 0.01 - .float 0.01 - .float 0.01 - -glabel D_8013A084 - .float 0.01 - -glabel D_8013A088 - .float 0.01 - -glabel D_8013A08C - .float 0.01 - -glabel D_8013A090 - .float 0.05 - -glabel D_8013A094 - .float -0.1 - -glabel D_8013A098 - .float 0.01 - -glabel D_8013A09C - .float 1.1 - -glabel D_8013A0A0 - .float 0.01 - -glabel D_8013A0A4 - .float 0.01 - -glabel D_8013A0A8 - .float 0.01 - -glabel D_8013A0AC - .float 0.01 - -glabel D_8013A0B0 - .float 182.04167 - -glabel D_8013A0B4 - .float 0.00549325 - -glabel D_8013A0B8 - .float 182.04167 - -glabel D_8013A0BC - .float 182.04167 - -glabel D_8013A0C0 - .float 0.02 - -glabel D_8013A0C4 - .float 182.04167 - -glabel D_8013A0C8 - .float 0.01 - -.text -glabel Camera_KeepOn1 -/* AC3C0C 8004CA6C 27BDFEC8 */ addiu $sp, $sp, -0x138 -/* AC3C10 8004CA70 AFB00028 */ sw $s0, 0x28($sp) -/* AC3C14 8004CA74 00808025 */ move $s0, $a0 -/* AC3C18 8004CA78 AFBF002C */ sw $ra, 0x2c($sp) -/* AC3C1C 8004CA7C AFA00088 */ sw $zero, 0x88($sp) -/* AC3C20 8004CA80 0C00B721 */ jal Player_GetCameraYOffset -/* AC3C24 8004CA84 8C840090 */ lw $a0, 0x90($a0) -/* AC3C28 8004CA88 E7A00070 */ swc1 $f0, 0x70($sp) -/* AC3C2C 8004CA8C 8E0300A8 */ lw $v1, 0xa8($s0) -/* AC3C30 8004CA90 10600004 */ beqz $v1, .L8004CAA4 -/* AC3C34 8004CA94 00000000 */ nop -/* AC3C38 8004CA98 8C6E0130 */ lw $t6, 0x130($v1) -/* AC3C3C 8004CA9C 55C0000C */ bnezl $t6, .L8004CAD0 -/* AC3C40 8004CAA0 8604015E */ lh $a0, 0x15e($s0) -.L8004CAA4: -/* AC3C44 8004CAA4 14600003 */ bnez $v1, .L8004CAB4 -/* AC3C48 8004CAA8 3C048014 */ lui $a0, %hi(D_80139248) # $a0, 0x8014 -/* AC3C4C 8004CAAC 0C00084C */ jal osSyncPrintf -/* AC3C50 8004CAB0 24849248 */ addiu $a0, %lo(D_80139248) # addiu $a0, $a0, -0x6db8 -.L8004CAB4: -/* AC3C54 8004CAB4 AE0000A8 */ sw $zero, 0xa8($s0) -/* AC3C58 8004CAB8 02002025 */ move $a0, $s0 -/* AC3C5C 8004CABC 0C016911 */ jal func_8005A444 -/* AC3C60 8004CAC0 24050001 */ li $a1, 1 -/* AC3C64 8004CAC4 100003BA */ b .L8004D9B0 -/* AC3C68 8004CAC8 24020001 */ li $v0, 1 -/* AC3C6C 8004CACC 8604015E */ lh $a0, 0x15e($s0) -.L8004CAD0: -/* AC3C70 8004CAD0 10800008 */ beqz $a0, .L8004CAF4 -/* AC3C74 8004CAD4 2401000A */ li $at, 10 -/* AC3C78 8004CAD8 10810006 */ beq $a0, $at, .L8004CAF4 -/* AC3C7C 8004CADC 24010014 */ li $at, 20 -/* AC3C80 8004CAE0 10810004 */ beq $a0, $at, .L8004CAF4 -/* AC3C84 8004CAE4 3C0F8016 */ lui $t7, %hi(gGameInfo) # $t7, 0x8016 -/* AC3C88 8004CAE8 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7) -/* AC3C8C 8004CAEC 85E30314 */ lh $v1, 0x314($t7) -/* AC3C90 8004CAF0 10600066 */ beqz $v1, .L8004CC8C -.L8004CAF4: -/* AC3C94 8004CAF4 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 -/* AC3C98 8004CAF8 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* AC3C9C 8004CAFC 3C018014 */ lui $at, %hi(D_8013A078) -/* AC3CA0 8004CB00 C42EA078 */ lwc1 $f14, %lo(D_8013A078)($at) -/* AC3CA4 8004CB04 85CF01F0 */ lh $t7, 0x1f0($t6) -/* AC3CA8 8004CB08 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC3CAC 8004CB0C 44814000 */ mtc1 $at, $f8 -/* AC3CB0 8004CB10 448F2000 */ mtc1 $t7, $f4 -/* AC3CB4 8004CB14 3C014288 */ li $at, 0x42880000 # 0.000000 -/* AC3CB8 8004CB18 86180142 */ lh $t8, 0x142($s0) -/* AC3CBC 8004CB1C 468021A0 */ cvt.s.w $f6, $f4 -/* AC3CC0 8004CB20 44812000 */ mtc1 $at, $f4 -/* AC3CC4 8004CB24 3C0A8012 */ lui $t2, %hi(sCameraSettings+4) -/* AC3CC8 8004CB28 0018C8C0 */ sll $t9, $t8, 3 -/* AC3CCC 8004CB2C 860B0144 */ lh $t3, 0x144($s0) -/* AC3CD0 8004CB30 01595021 */ addu $t2, $t2, $t9 -/* AC3CD4 8004CB34 460E3082 */ mul.s $f2, $f6, $f14 -/* AC3CD8 8004CB38 46002183 */ div.s $f6, $f4, $f0 -/* AC3CDC 8004CB3C 8D4AD068 */ lw $t2, %lo(sCameraSettings+4)($t2) -/* AC3CE0 8004CB40 000B60C0 */ sll $t4, $t3, 3 -/* AC3CE4 8004CB44 014C6821 */ addu $t5, $t2, $t4 -/* AC3CE8 8004CB48 8DA20004 */ lw $v0, 4($t5) -/* AC3CEC 8004CB4C 46024280 */ add.s $f10, $f8, $f2 -/* AC3CF0 8004CB50 84580000 */ lh $t8, ($v0) -/* AC3CF4 8004CB54 24420030 */ addiu $v0, $v0, 0x30 -/* AC3CF8 8004CB58 44982000 */ mtc1 $t8, $f4 -/* AC3CFC 8004CB5C 46061202 */ mul.s $f8, $f2, $f6 -/* AC3D00 8004CB60 468021A0 */ cvt.s.w $f6, $f4 -/* AC3D04 8004CB64 46085301 */ sub.s $f12, $f10, $f8 -/* AC3D08 8004CB68 460E3282 */ mul.s $f10, $f6, $f14 -/* AC3D0C 8004CB6C 00000000 */ nop -/* AC3D10 8004CB70 46005202 */ mul.s $f8, $f10, $f0 -/* AC3D14 8004CB74 00000000 */ nop -/* AC3D18 8004CB78 460C4102 */ mul.s $f4, $f8, $f12 -/* AC3D1C 8004CB7C E6040000 */ swc1 $f4, ($s0) -/* AC3D20 8004CB80 8459FFD4 */ lh $t9, -0x2c($v0) -/* AC3D24 8004CB84 44993000 */ mtc1 $t9, $f6 -/* AC3D28 8004CB88 00000000 */ nop -/* AC3D2C 8004CB8C 468032A0 */ cvt.s.w $f10, $f6 -/* AC3D30 8004CB90 E60A0004 */ swc1 $f10, 4($s0) -/* AC3D34 8004CB94 844BFFD8 */ lh $t3, -0x28($v0) -/* AC3D38 8004CB98 448B4000 */ mtc1 $t3, $f8 -/* AC3D3C 8004CB9C 00000000 */ nop -/* AC3D40 8004CBA0 46804120 */ cvt.s.w $f4, $f8 -/* AC3D44 8004CBA4 E6040008 */ swc1 $f4, 8($s0) -/* AC3D48 8004CBA8 844AFFDC */ lh $t2, -0x24($v0) -/* AC3D4C 8004CBAC 448A3000 */ mtc1 $t2, $f6 -/* AC3D50 8004CBB0 00000000 */ nop -/* AC3D54 8004CBB4 468032A0 */ cvt.s.w $f10, $f6 -/* AC3D58 8004CBB8 E60A000C */ swc1 $f10, 0xc($s0) -/* AC3D5C 8004CBBC 844CFFE0 */ lh $t4, -0x20($v0) -/* AC3D60 8004CBC0 448C4000 */ mtc1 $t4, $f8 -/* AC3D64 8004CBC4 00000000 */ nop -/* AC3D68 8004CBC8 46804120 */ cvt.s.w $f4, $f8 -/* AC3D6C 8004CBCC E6040010 */ swc1 $f4, 0x10($s0) -/* AC3D70 8004CBD0 844DFFE4 */ lh $t5, -0x1c($v0) -/* AC3D74 8004CBD4 448D3000 */ mtc1 $t5, $f6 -/* AC3D78 8004CBD8 3C0D8016 */ lui $t5, %hi(gGameInfo) # $t5, 0x8016 -/* AC3D7C 8004CBDC 468032A0 */ cvt.s.w $f10, $f6 -/* AC3D80 8004CBE0 E60A0014 */ swc1 $f10, 0x14($s0) -/* AC3D84 8004CBE4 844EFFE8 */ lh $t6, -0x18($v0) -/* AC3D88 8004CBE8 448E4000 */ mtc1 $t6, $f8 -/* AC3D8C 8004CBEC 00000000 */ nop -/* AC3D90 8004CBF0 46804120 */ cvt.s.w $f4, $f8 -/* AC3D94 8004CBF4 E6040018 */ swc1 $f4, 0x18($s0) -/* AC3D98 8004CBF8 844FFFEC */ lh $t7, -0x14($v0) -/* AC3D9C 8004CBFC 448F3000 */ mtc1 $t7, $f6 -/* AC3DA0 8004CC00 00000000 */ nop -/* AC3DA4 8004CC04 468032A0 */ cvt.s.w $f10, $f6 -/* AC3DA8 8004CC08 460E5202 */ mul.s $f8, $f10, $f14 -/* AC3DAC 8004CC0C E608001C */ swc1 $f8, 0x1c($s0) -/* AC3DB0 8004CC10 8458FFF0 */ lh $t8, -0x10($v0) -/* AC3DB4 8004CC14 44982000 */ mtc1 $t8, $f4 -/* AC3DB8 8004CC18 00000000 */ nop -/* AC3DBC 8004CC1C 468021A0 */ cvt.s.w $f6, $f4 -/* AC3DC0 8004CC20 E6060020 */ swc1 $f6, 0x20($s0) -/* AC3DC4 8004CC24 8459FFF4 */ lh $t9, -0xc($v0) -/* AC3DC8 8004CC28 44995000 */ mtc1 $t9, $f10 -/* AC3DCC 8004CC2C 00000000 */ nop -/* AC3DD0 8004CC30 46805220 */ cvt.s.w $f8, $f10 -/* AC3DD4 8004CC34 460E4102 */ mul.s $f4, $f8, $f14 -/* AC3DD8 8004CC38 E6040024 */ swc1 $f4, 0x24($s0) -/* AC3DDC 8004CC3C 844BFFF8 */ lh $t3, -8($v0) -/* AC3DE0 8004CC40 A60B0030 */ sh $t3, 0x30($s0) -/* AC3DE4 8004CC44 844AFFFC */ lh $t2, -4($v0) -/* AC3DE8 8004CC48 448A3000 */ mtc1 $t2, $f6 -/* AC3DEC 8004CC4C 00000000 */ nop -/* AC3DF0 8004CC50 468032A0 */ cvt.s.w $f10, $f6 -/* AC3DF4 8004CC54 460E5202 */ mul.s $f8, $f10, $f14 -/* AC3DF8 8004CC58 00000000 */ nop -/* AC3DFC 8004CC5C 46004102 */ mul.s $f4, $f8, $f0 -/* AC3E00 8004CC60 00000000 */ nop -/* AC3E04 8004CC64 460C2182 */ mul.s $f6, $f4, $f12 -/* AC3E08 8004CC68 E6060028 */ swc1 $f6, 0x28($s0) -/* AC3E0C 8004CC6C 844C0000 */ lh $t4, ($v0) -/* AC3E10 8004CC70 448C5000 */ mtc1 $t4, $f10 -/* AC3E14 8004CC74 00000000 */ nop -/* AC3E18 8004CC78 46805220 */ cvt.s.w $f8, $f10 -/* AC3E1C 8004CC7C 460E4102 */ mul.s $f4, $f8, $f14 -/* AC3E20 8004CC80 E604002C */ swc1 $f4, 0x2c($s0) -/* AC3E24 8004CC84 8DADFA90 */ lw $t5, %lo(gGameInfo)($t5) -/* AC3E28 8004CC88 85A30314 */ lh $v1, 0x314($t5) -.L8004CC8C: -/* AC3E2C 8004CC8C 50600004 */ beql $v1, $zero, .L8004CCA0 -/* AC3E30 8004CC90 C7A60070 */ lwc1 $f6, 0x70($sp) -/* AC3E34 8004CC94 0C011495 */ jal Camera_CopyPREGToModeValues -/* AC3E38 8004CC98 02002025 */ move $a0, $s0 -/* AC3E3C 8004CC9C C7A60070 */ lwc1 $f6, 0x70($sp) -.L8004CCA0: -/* AC3E40 8004CCA0 C60A0000 */ lwc1 $f10, ($s0) -/* AC3E44 8004CCA4 26050050 */ addiu $a1, $s0, 0x50 -/* AC3E48 8004CCA8 2606005C */ addiu $a2, $s0, 0x5c -/* AC3E4C 8004CCAC 460A3200 */ add.s $f8, $f6, $f10 -/* AC3E50 8004CCB0 AFA60048 */ sw $a2, 0x48($sp) -/* AC3E54 8004CCB4 AFA50044 */ sw $a1, 0x44($sp) -/* AC3E58 8004CCB8 27A400C0 */ addiu $a0, $sp, 0xc0 -/* AC3E5C 8004CCBC 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC3E60 8004CCC0 E7A80070 */ swc1 $f8, 0x70($sp) -/* AC3E64 8004CCC4 26060074 */ addiu $a2, $s0, 0x74 -/* AC3E68 8004CCC8 AFA60040 */ sw $a2, 0x40($sp) -/* AC3E6C 8004CCCC 27A400B8 */ addiu $a0, $sp, 0xb8 -/* AC3E70 8004CCD0 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC3E74 8004CCD4 8FA50044 */ lw $a1, 0x44($sp) -/* AC3E78 8004CCD8 860E0030 */ lh $t6, 0x30($s0) -/* AC3E7C 8004CCDC 3C018012 */ lui $at, %hi(D_8011D3A0) -/* AC3E80 8004CCE0 AC2ED3A0 */ sw $t6, %lo(D_8011D3A0)($at) -/* AC3E84 8004CCE4 8604015E */ lh $a0, 0x15e($s0) -/* AC3E88 8004CCE8 260E0094 */ addiu $t6, $s0, 0x94 -/* AC3E8C 8004CCEC 10800005 */ beqz $a0, .L8004CD04 -/* AC3E90 8004CCF0 2401000A */ li $at, 10 -/* AC3E94 8004CCF4 10810003 */ beq $a0, $at, .L8004CD04 -/* AC3E98 8004CCF8 24010014 */ li $at, 20 -/* AC3E9C 8004CCFC 5481001A */ bnel $a0, $at, .L8004CD68 -/* AC3EA0 8004CD00 AFAE003C */ sw $t6, 0x3c($sp) -.L8004CD04: -/* AC3EA4 8004CD04 44802000 */ mtc1 $zero, $f4 -/* AC3EA8 8004CD08 248F0001 */ addiu $t7, $a0, 1 -/* AC3EAC 8004CD0C A60F015E */ sh $t7, 0x15e($s0) -/* AC3EB0 8004CD10 26090034 */ addiu $t1, $s0, 0x34 -/* AC3EB4 8004CD14 A5200010 */ sh $zero, 0x10($t1) -/* AC3EB8 8004CD18 E5240004 */ swc1 $f4, 4($t1) -/* AC3EBC 8004CD1C 8E1800A8 */ lw $t8, 0xa8($s0) -/* AC3EC0 8004CD20 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 -/* AC3EC4 8004CD24 AD38000C */ sw $t8, 0xc($t1) -/* AC3EC8 8004CD28 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1) -/* AC3ECC 8004CD2C 847901C4 */ lh $t9, 0x1c4($v1) -/* AC3ED0 8004CD30 846B01C2 */ lh $t3, 0x1c2($v1) -/* AC3ED4 8004CD34 032B5021 */ addu $t2, $t9, $t3 -/* AC3ED8 8004CD38 A52A0016 */ sh $t2, 0x16($t1) -/* AC3EDC 8004CD3C 87AC00C6 */ lh $t4, 0xc6($sp) -/* AC3EE0 8004CD40 A52C0012 */ sh $t4, 0x12($t1) -/* AC3EE4 8004CD44 87AD00C4 */ lh $t5, 0xc4($sp) -/* AC3EE8 8004CD48 A52D0014 */ sh $t5, 0x14($t1) -/* AC3EEC 8004CD4C C7A600C0 */ lwc1 $f6, 0xc0($sp) -/* AC3EF0 8004CD50 E5260000 */ swc1 $f6, ($t1) -/* AC3EF4 8004CD54 C60800F4 */ lwc1 $f8, 0xf4($s0) -/* AC3EF8 8004CD58 C60A0098 */ lwc1 $f10, 0x98($s0) -/* AC3EFC 8004CD5C 46085101 */ sub.s $f4, $f10, $f8 -/* AC3F00 8004CD60 E5240008 */ swc1 $f4, 8($t1) -/* AC3F04 8004CD64 AFAE003C */ sw $t6, 0x3c($sp) -.L8004CD68: -/* AC3F08 8004CD68 860F0140 */ lh $t7, 0x140($s0) -/* AC3F0C 8004CD6C 24010007 */ li $at, 7 -/* AC3F10 8004CD70 26090034 */ addiu $t1, $s0, 0x34 -/* AC3F14 8004CD74 55E1000C */ bnel $t7, $at, .L8004CDA8 -/* AC3F18 8004CD78 3C013F80 */ lui $at, 0x3f80 -/* AC3F1C 8004CD7C 87B900C4 */ lh $t9, 0xc4($sp) -/* AC3F20 8004CD80 24180001 */ li $t8, 1 -/* AC3F24 8004CD84 3C018012 */ lui $at, %hi(D_8011D3E8) # $at, 0x8012 -/* AC3F28 8004CD88 AC38D3E8 */ sw $t8, %lo(D_8011D3E8)($at) -/* AC3F2C 8004CD8C 00195823 */ negu $t3, $t9 -/* AC3F30 8004CD90 A60B0134 */ sh $t3, 0x134($s0) -/* AC3F34 8004CD94 87AA00C6 */ lh $t2, 0xc6($sp) -/* AC3F38 8004CD98 A6000138 */ sh $zero, 0x138($s0) -/* AC3F3C 8004CD9C 254C8001 */ addiu $t4, $t2, -0x7fff -/* AC3F40 8004CDA0 A60C0136 */ sh $t4, 0x136($s0) -/* AC3F44 8004CDA4 3C013F80 */ li $at, 0x3F800000 # 0.000000 -.L8004CDA8: -/* AC3F48 8004CDA8 C6060004 */ lwc1 $f6, 4($s0) -/* AC3F4C 8004CDAC 44815000 */ mtc1 $at, $f10 -/* AC3F50 8004CDB0 24010008 */ li $at, 8 -/* AC3F54 8004CDB4 E7A60104 */ swc1 $f6, 0x104($sp) -/* AC3F58 8004CDB8 E7AA0084 */ swc1 $f10, 0x84($sp) -/* AC3F5C 8004CDBC 8602015C */ lh $v0, 0x15c($s0) -/* AC3F60 8004CDC0 30420018 */ andi $v0, $v0, 0x18 -/* AC3F64 8004CDC4 10410013 */ beq $v0, $at, .L8004CE14 -/* AC3F68 8004CDC8 24010010 */ li $at, 16 -/* AC3F6C 8004CDCC 1041007C */ beq $v0, $at, .L8004CFC0 -/* AC3F70 8004CDD0 260E00AC */ addiu $t6, $s0, 0xac -/* AC3F74 8004CDD4 8FAD003C */ lw $t5, 0x3c($sp) -/* AC3F78 8004CDD8 8FA50044 */ lw $a1, 0x44($sp) -/* AC3F7C 8004CDDC 261800AC */ addiu $t8, $s0, 0xac -/* AC3F80 8004CDE0 8DAF0000 */ lw $t7, ($t5) -/* AC3F84 8004CDE4 ACAF0000 */ sw $t7, ($a1) -/* AC3F88 8004CDE8 8DAE0004 */ lw $t6, 4($t5) -/* AC3F8C 8004CDEC ACAE0004 */ sw $t6, 4($a1) -/* AC3F90 8004CDF0 8DAF0008 */ lw $t7, 8($t5) -/* AC3F94 8004CDF4 C4A80004 */ lwc1 $f8, 4($a1) -/* AC3F98 8004CDF8 ACAF0008 */ sw $t7, 8($a1) -/* AC3F9C 8004CDFC C7A40070 */ lwc1 $f4, 0x70($sp) -/* AC3FA0 8004CE00 46044180 */ add.s $f6, $f8, $f4 -/* AC3FA4 8004CE04 E4A60004 */ swc1 $f6, 4($a1) -/* AC3FA8 8004CE08 AD20000C */ sw $zero, 0xc($t1) -/* AC3FAC 8004CE0C 100000BC */ b .L8004D100 -/* AC3FB0 8004CE10 AFB80030 */ sw $t8, 0x30($sp) -.L8004CE14: -/* AC3FB4 8004CE14 8E050090 */ lw $a1, 0x90($s0) -/* AC3FB8 8004CE18 24010002 */ li $at, 2 -/* AC3FBC 8004CE1C 260400AC */ addiu $a0, $s0, 0xac -/* AC3FC0 8004CE20 90B90002 */ lbu $t9, 2($a1) -/* AC3FC4 8004CE24 57210017 */ bnel $t9, $at, .L8004CE84 -/* AC3FC8 8004CE28 AFA40030 */ sw $a0, 0x30($sp) -/* AC3FCC 8004CE2C 8E0B00A8 */ lw $t3, 0xa8($s0) -/* AC3FD0 8004CE30 8CAA0438 */ lw $t2, 0x438($a1) -/* AC3FD4 8004CE34 556A0013 */ bnel $t3, $t2, .L8004CE84 -/* AC3FD8 8004CE38 AFA40030 */ sw $a0, 0x30($sp) -/* AC3FDC 8004CE3C 27A40054 */ addiu $a0, $sp, 0x54 -/* AC3FE0 8004CE40 0C00BBB9 */ jal func_8002EEE4 -/* AC3FE4 8004CE44 AFA90038 */ sw $t1, 0x38($sp) -/* AC3FE8 8004CE48 3C014270 */ li $at, 0x42700000 # 0.000000 -/* AC3FEC 8004CE4C 44815000 */ mtc1 $at, $f10 -/* AC3FF0 8004CE50 240D2EE0 */ li $t5, 12000 -/* AC3FF4 8004CE54 260400AC */ addiu $a0, $s0, 0xac -/* AC3FF8 8004CE58 E7AA00C8 */ swc1 $f10, 0xc8($sp) -/* AC3FFC 8004CE5C 860C00A2 */ lh $t4, 0xa2($s0) -/* AC4000 8004CE60 A7AD00CC */ sh $t5, 0xcc($sp) -/* AC4004 8004CE64 AFA40030 */ sw $a0, 0x30($sp) -/* AC4008 8004CE68 27A50054 */ addiu $a1, $sp, 0x54 -/* AC400C 8004CE6C 27A600C8 */ addiu $a2, $sp, 0xc8 -/* AC4010 8004CE70 0C010F0A */ jal func_80043C28 -/* AC4014 8004CE74 A7AC00CE */ sh $t4, 0xce($sp) -/* AC4018 8004CE78 10000006 */ b .L8004CE94 -/* AC401C 8004CE7C 8FA90038 */ lw $t1, 0x38($sp) -/* AC4020 8004CE80 AFA40030 */ sw $a0, 0x30($sp) -.L8004CE84: -/* AC4024 8004CE84 8E0500A8 */ lw $a1, 0xa8($s0) -/* AC4028 8004CE88 0C00BBB9 */ jal func_8002EEE4 -/* AC402C 8004CE8C AFA90038 */ sw $t1, 0x38($sp) -/* AC4030 8004CE90 8FA90038 */ lw $t1, 0x38($sp) -.L8004CE94: -/* AC4034 8004CE94 8E0500A8 */ lw $a1, 0xa8($s0) -/* AC4038 8004CE98 AFA90038 */ sw $t1, 0x38($sp) -/* AC403C 8004CE9C 0C00BBB9 */ jal func_8002EEE4 -/* AC4040 8004CEA0 8FA40030 */ lw $a0, 0x30($sp) -/* AC4044 8004CEA4 8FA90038 */ lw $t1, 0x38($sp) -/* AC4048 8004CEA8 8E0300A8 */ lw $v1, 0xa8($s0) -/* AC404C 8004CEAC 3C188016 */ lui $t8, %hi(gGameInfo) -/* AC4050 8004CEB0 8D2F000C */ lw $t7, 0xc($t1) -/* AC4054 8004CEB4 106F0004 */ beq $v1, $t7, .L8004CEC8 -/* AC4058 8004CEB8 00000000 */ nop -/* AC405C 8004CEBC 44804000 */ mtc1 $zero, $f8 -/* AC4060 8004CEC0 AD23000C */ sw $v1, 0xc($t1) -/* AC4064 8004CEC4 E6080100 */ swc1 $f8, 0x100($s0) -.L8004CEC8: -/* AC4068 8004CEC8 8F18FA90 */ lw $t8, %lo(gGameInfo)($t8) -/* AC406C 8004CECC 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC4070 8004CED0 44816000 */ mtc1 $at, $f12 -/* AC4074 8004CED4 871901C6 */ lh $t9, 0x1c6($t8) -/* AC4078 8004CED8 3C018014 */ lui $at, %hi(D_8013A084) -/* AC407C 8004CEDC C42AA084 */ lwc1 $f10, %lo(D_8013A084)($at) -/* AC4080 8004CEE0 44992000 */ mtc1 $t9, $f4 -/* AC4084 8004CEE4 C60E00CC */ lwc1 $f14, 0xcc($s0) -/* AC4088 8004CEE8 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC408C 8004CEEC 468021A0 */ cvt.s.w $f6, $f4 -/* AC4090 8004CEF0 C60400E0 */ lwc1 $f4, 0xe0($s0) -/* AC4094 8004CEF4 AFA90038 */ sw $t1, 0x38($sp) -/* AC4098 8004CEF8 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC409C 8004CEFC 460A3202 */ mul.s $f8, $f6, $f10 -/* AC40A0 8004CF00 00000000 */ nop -/* AC40A4 8004CF04 46044182 */ mul.s $f6, $f8, $f4 -/* AC40A8 8004CF08 44063000 */ mfc1 $a2, $f6 -/* AC40AC 8004CF0C 0C010E27 */ jal func_8004389C -/* AC40B0 8004CF10 00000000 */ nop -/* AC40B4 8004CF14 E60000CC */ swc1 $f0, 0xcc($s0) -/* AC40B8 8004CF18 3C0B8016 */ lui $t3, %hi(gGameInfo) # $t3, 0x8016 -/* AC40BC 8004CF1C 8D6BFA90 */ lw $t3, %lo(gGameInfo)($t3) -/* AC40C0 8004CF20 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC40C4 8004CF24 44816000 */ mtc1 $at, $f12 -/* AC40C8 8004CF28 856A01C8 */ lh $t2, 0x1c8($t3) -/* AC40CC 8004CF2C 3C018014 */ lui $at, %hi(D_8013A088) -/* AC40D0 8004CF30 C424A088 */ lwc1 $f4, %lo(D_8013A088)($at) -/* AC40D4 8004CF34 448A5000 */ mtc1 $t2, $f10 -/* AC40D8 8004CF38 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC40DC 8004CF3C 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC40E0 8004CF40 46805220 */ cvt.s.w $f8, $f10 -/* AC40E4 8004CF44 C60A00E0 */ lwc1 $f10, 0xe0($s0) -/* AC40E8 8004CF48 C60E00D0 */ lwc1 $f14, 0xd0($s0) -/* AC40EC 8004CF4C 46044182 */ mul.s $f6, $f8, $f4 -/* AC40F0 8004CF50 00000000 */ nop -/* AC40F4 8004CF54 460A3202 */ mul.s $f8, $f6, $f10 -/* AC40F8 8004CF58 44064000 */ mfc1 $a2, $f8 -/* AC40FC 8004CF5C 0C010E27 */ jal func_8004389C -/* AC4100 8004CF60 00000000 */ nop -/* AC4104 8004CF64 E60000D0 */ swc1 $f0, 0xd0($s0) -/* AC4108 8004CF68 3C0C8016 */ lui $t4, %hi(gGameInfo) # $t4, 0x8016 -/* AC410C 8004CF6C 8D8CFA90 */ lw $t4, %lo(gGameInfo)($t4) -/* AC4110 8004CF70 3C018014 */ lui $at, %hi(D_8013A08C) -/* AC4114 8004CF74 C42AA08C */ lwc1 $f10, %lo(D_8013A08C)($at) -/* AC4118 8004CF78 858D019C */ lh $t5, 0x19c($t4) -/* AC411C 8004CF7C 3C018014 */ lui $at, %hi(D_8013A090) -/* AC4120 8004CF80 C60800E0 */ lwc1 $f8, 0xe0($s0) -/* AC4124 8004CF84 448D2000 */ mtc1 $t5, $f4 -/* AC4128 8004CF88 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC412C 8004CF8C 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC4130 8004CF90 468021A0 */ cvt.s.w $f6, $f4 -/* AC4134 8004CF94 C424A090 */ lwc1 $f4, %lo(D_8013A090)($at) -/* AC4138 8004CF98 C60E00D4 */ lwc1 $f14, 0xd4($s0) -/* AC413C 8004CF9C 460A3302 */ mul.s $f12, $f6, $f10 -/* AC4140 8004CFA0 00000000 */ nop -/* AC4144 8004CFA4 46044182 */ mul.s $f6, $f8, $f4 -/* AC4148 8004CFA8 44063000 */ mfc1 $a2, $f6 -/* AC414C 8004CFAC 0C010E27 */ jal func_8004389C -/* AC4150 8004CFB0 00000000 */ nop -/* AC4154 8004CFB4 8FA90038 */ lw $t1, 0x38($sp) -/* AC4158 8004CFB8 10000003 */ b .L8004CFC8 -/* AC415C 8004CFBC E60000D4 */ swc1 $f0, 0xd4($s0) -.L8004CFC0: -/* AC4160 8004CFC0 AD20000C */ sw $zero, 0xc($t1) -/* AC4164 8004CFC4 AFAE0030 */ sw $t6, 0x30($sp) -.L8004CFC8: -/* AC4168 8004CFC8 C60A0098 */ lwc1 $f10, 0x98($s0) -/* AC416C 8004CFCC C6080104 */ lwc1 $f8, 0x104($s0) -/* AC4170 8004CFD0 8FB9003C */ lw $t9, 0x3c($sp) -/* AC4174 8004CFD4 02002025 */ move $a0, $s0 -/* AC4178 8004CFD8 46085032 */ c.eq.s $f10, $f8 -/* AC417C 8004CFDC 252D0008 */ addiu $t5, $t1, 8 -/* AC4180 8004CFE0 27AE00C8 */ addiu $t6, $sp, 0xc8 -/* AC4184 8004CFE4 00001025 */ move $v0, $zero -/* AC4188 8004CFE8 4503000F */ bc1tl .L8004D028 -/* AC418C 8004CFEC C72A0004 */ lwc1 $f10, 4($t9) -/* AC4190 8004CFF0 8E050090 */ lw $a1, 0x90($s0) -/* AC4194 8004CFF4 3C018014 */ lui $at, %hi(D_8013A094) -/* AC4198 8004CFF8 C424A094 */ lwc1 $f4, %lo(D_8013A094)($at) -/* AC419C 8004CFFC C4A6006C */ lwc1 $f6, 0x6c($a1) -/* AC41A0 8004D000 4606203C */ c.lt.s $f4, $f6 -/* AC41A4 8004D004 00000000 */ nop -/* AC41A8 8004D008 45030007 */ bc1tl .L8004D028 -/* AC41AC 8004D00C C72A0004 */ lwc1 $f10, 4($t9) -/* AC41B0 8004D010 8CAF067C */ lw $t7, 0x67c($a1) -/* AC41B4 8004D014 240B0001 */ li $t3, 1 -/* AC41B8 8004D018 000FC280 */ sll $t8, $t7, 0xa -/* AC41BC 8004D01C 07030006 */ bgezl $t8, .L8004D038 -/* AC41C0 8004D020 A7AB0080 */ sh $t3, 0x80($sp) -/* AC41C4 8004D024 C72A0004 */ lwc1 $f10, 4($t9) -.L8004D028: -/* AC41C8 8004D028 E52A0008 */ swc1 $f10, 8($t1) -/* AC41CC 8004D02C 10000002 */ b .L8004D038 -/* AC41D0 8004D030 A7A00080 */ sh $zero, 0x80($sp) -/* AC41D4 8004D034 A7AB0080 */ sh $t3, 0x80($sp) -.L8004D038: -/* AC41D8 8004D038 87AA0080 */ lh $t2, 0x80($sp) -/* AC41DC 8004D03C 87AC0080 */ lh $t4, 0x80($sp) -/* AC41E0 8004D040 27A500B8 */ addiu $a1, $sp, 0xb8 -/* AC41E4 8004D044 11400003 */ beqz $t2, .L8004D054 -/* AC41E8 8004D048 8FA60030 */ lw $a2, 0x30($sp) -/* AC41EC 8004D04C 10000002 */ b .L8004D058 -/* AC41F0 8004D050 C6020028 */ lwc1 $f2, 0x28($s0) -.L8004D054: -/* AC41F4 8004D054 C6020000 */ lwc1 $f2, ($s0) -.L8004D058: -/* AC41F8 8004D058 11800003 */ beqz $t4, .L8004D068 -/* AC41FC 8004D05C C7A80104 */ lwc1 $f8, 0x104($sp) -/* AC4200 8004D060 10000001 */ b .L8004D068 -/* AC4204 8004D064 24020080 */ li $v0, 128 -.L8004D068: -/* AC4208 8004D068 E7A80010 */ swc1 $f8, 0x10($sp) -/* AC420C 8004D06C AFAD0014 */ sw $t5, 0x14($sp) -/* AC4210 8004D070 AFAE0018 */ sw $t6, 0x18($sp) -/* AC4214 8004D074 860F0030 */ lh $t7, 0x30($s0) -/* AC4218 8004D078 44071000 */ mfc1 $a3, $f2 -/* AC421C 8004D07C AFA90038 */ sw $t1, 0x38($sp) -/* AC4220 8004D080 004FC025 */ or $t8, $v0, $t7 -/* AC4224 8004D084 0C01182A */ jal func_800460A8 -/* AC4228 8004D088 AFB8001C */ sw $t8, 0x1c($sp) -/* AC422C 8004D08C 8FB9003C */ lw $t9, 0x3c($sp) -/* AC4230 8004D090 27A50114 */ addiu $a1, $sp, 0x114 -/* AC4234 8004D094 27A400C8 */ addiu $a0, $sp, 0xc8 -/* AC4238 8004D098 8F2A0000 */ lw $t2, ($t9) -/* AC423C 8004D09C ACAA0000 */ sw $t2, ($a1) -/* AC4240 8004D0A0 8F2B0004 */ lw $t3, 4($t9) -/* AC4244 8004D0A4 ACAB0004 */ sw $t3, 4($a1) -/* AC4248 8004D0A8 8F2A0008 */ lw $t2, 8($t9) -/* AC424C 8004D0AC ACAA0008 */ sw $t2, 8($a1) -/* AC4250 8004D0B0 C7A40118 */ lwc1 $f4, 0x118($sp) -/* AC4254 8004D0B4 C7A60070 */ lwc1 $f6, 0x70($sp) -/* AC4258 8004D0B8 8FA60030 */ lw $a2, 0x30($sp) -/* AC425C 8004D0BC 46062280 */ add.s $f10, $f4, $f6 -/* AC4260 8004D0C0 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC4264 8004D0C4 E7AA0118 */ swc1 $f10, 0x118($sp) -/* AC4268 8004D0C8 C7A000C8 */ lwc1 $f0, 0xc8($sp) -/* AC426C 8004D0CC C7A80104 */ lwc1 $f8, 0x104($sp) -/* AC4270 8004D0D0 8FA90038 */ lw $t1, 0x38($sp) -/* AC4274 8004D0D4 C7A60104 */ lwc1 $f6, 0x104($sp) -/* AC4278 8004D0D8 4600403C */ c.lt.s $f8, $f0 -/* AC427C 8004D0DC 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC4280 8004D0E0 45020005 */ bc1fl .L8004D0F8 -/* AC4284 8004D0E4 46060283 */ div.s $f10, $f0, $f6 -/* AC4288 8004D0E8 44812000 */ mtc1 $at, $f4 -/* AC428C 8004D0EC 10000003 */ b .L8004D0FC -/* AC4290 8004D0F0 E7A40084 */ swc1 $f4, 0x84($sp) -/* AC4294 8004D0F4 46060283 */ div.s $f10, $f0, $f6 -.L8004D0F8: -/* AC4298 8004D0F8 E7AA0084 */ swc1 $f10, 0x84($sp) -.L8004D0FC: -/* AC429C 8004D0FC 8FA50044 */ lw $a1, 0x44($sp) -.L8004D100: -/* AC42A0 8004D100 27A400D8 */ addiu $a0, $sp, 0xd8 -/* AC42A4 8004D104 8FA60040 */ lw $a2, 0x40($sp) -/* AC42A8 8004D108 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC42AC 8004D10C AFA90038 */ sw $t1, 0x38($sp) -/* AC42B0 8004D110 C6000004 */ lwc1 $f0, 4($s0) -/* AC42B4 8004D114 C7A800D8 */ lwc1 $f8, 0xd8($sp) -/* AC42B8 8004D118 8FA90038 */ lw $t1, 0x38($sp) -/* AC42BC 8004D11C 4600403C */ c.lt.s $f8, $f0 -/* AC42C0 8004D120 00000000 */ nop -/* AC42C4 8004D124 45000009 */ bc1f .L8004D14C -/* AC42C8 8004D128 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 -/* AC42CC 8004D12C 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1) -/* AC42D0 8004D130 E7A00104 */ swc1 $f0, 0x104($sp) -/* AC42D4 8004D134 846C01A0 */ lh $t4, 0x1a0($v1) -/* AC42D8 8004D138 448C2000 */ mtc1 $t4, $f4 -/* AC42DC 8004D13C 00000000 */ nop -/* AC42E0 8004D140 468021A0 */ cvt.s.w $f6, $f4 -/* AC42E4 8004D144 10000016 */ b .L8004D1A0 -/* AC42E8 8004D148 E7A600E8 */ swc1 $f6, 0xe8($sp) -.L8004D14C: -/* AC42EC 8004D14C C6000008 */ lwc1 $f0, 8($s0) -/* AC42F0 8004D150 C7AA00D8 */ lwc1 $f10, 0xd8($sp) -/* AC42F4 8004D154 C7A400D8 */ lwc1 $f4, 0xd8($sp) -/* AC42F8 8004D158 3C013F80 */ lui $at, 0x3f80 -/* AC42FC 8004D15C 460A003C */ c.lt.s $f0, $f10 -/* AC4300 8004D160 3C038016 */ lui $v1, %hi(gGameInfo) -/* AC4304 8004D164 4502000B */ bc1fl .L8004D194 -/* AC4308 8004D168 44816000 */ mtc1 $at, $f12 -/* AC430C 8004D16C 3C038016 */ lui $v1, %hi(gGameInfo) -/* AC4310 8004D170 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1) -/* AC4314 8004D174 E7A00104 */ swc1 $f0, 0x104($sp) -/* AC4318 8004D178 846D01A0 */ lh $t5, 0x1a0($v1) -/* AC431C 8004D17C 448D4000 */ mtc1 $t5, $f8 -/* AC4320 8004D180 00000000 */ nop -/* AC4324 8004D184 46804320 */ cvt.s.w $f12, $f8 -/* AC4328 8004D188 10000005 */ b .L8004D1A0 -/* AC432C 8004D18C E7AC00E8 */ swc1 $f12, 0xe8($sp) -/* AC4330 8004D190 44816000 */ mtc1 $at, $f12 -.L8004D194: -/* AC4334 8004D194 E7A40104 */ swc1 $f4, 0x104($sp) -/* AC4338 8004D198 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1) -/* AC433C 8004D19C E7AC00E8 */ swc1 $f12, 0xe8($sp) -.L8004D1A0: -/* AC4340 8004D1A0 846E01C6 */ lh $t6, 0x1c6($v1) -/* AC4344 8004D1A4 3C018014 */ lui $at, %hi(D_8013A098) -/* AC4348 8004D1A8 C428A098 */ lwc1 $f8, %lo(D_8013A098)($at) -/* AC434C 8004D1AC 448E3000 */ mtc1 $t6, $f6 -/* AC4350 8004D1B0 C60E00C0 */ lwc1 $f14, 0xc0($s0) -/* AC4354 8004D1B4 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC4358 8004D1B8 468032A0 */ cvt.s.w $f10, $f6 -/* AC435C 8004D1BC 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC4360 8004D1C0 AFA90038 */ sw $t1, 0x38($sp) -/* AC4364 8004D1C4 C7AC00E8 */ lwc1 $f12, 0xe8($sp) -/* AC4368 8004D1C8 46085102 */ mul.s $f4, $f10, $f8 -/* AC436C 8004D1CC 44062000 */ mfc1 $a2, $f4 -/* AC4370 8004D1D0 0C010E27 */ jal func_8004389C -/* AC4374 8004D1D4 00000000 */ nop -/* AC4378 8004D1D8 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC437C 8004D1DC 44813000 */ mtc1 $at, $f6 -/* AC4380 8004D1E0 E60000C0 */ swc1 $f0, 0xc0($s0) -/* AC4384 8004D1E4 3C073E4C */ lui $a3, (0x3E4CCCCD >> 16) # lui $a3, 0x3e4c -/* AC4388 8004D1E8 46003283 */ div.s $f10, $f6, $f0 -/* AC438C 8004D1EC 34E7CCCD */ ori $a3, (0x3E4CCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC4390 8004D1F0 C7AC0104 */ lwc1 $f12, 0x104($sp) -/* AC4394 8004D1F4 C60E00DC */ lwc1 $f14, 0xdc($s0) -/* AC4398 8004D1F8 44065000 */ mfc1 $a2, $f10 -/* AC439C 8004D1FC 0C010E27 */ jal func_8004389C -/* AC43A0 8004D200 00000000 */ nop -/* AC43A4 8004D204 E60000DC */ swc1 $f0, 0xdc($s0) -/* AC43A8 8004D208 8FAF0030 */ lw $t7, 0x30($sp) -/* AC43AC 8004D20C E7A000D8 */ swc1 $f0, 0xd8($sp) -/* AC43B0 8004D210 E7A000E8 */ swc1 $f0, 0xe8($sp) -/* AC43B4 8004D214 8DF90000 */ lw $t9, ($t7) -/* AC43B8 8004D218 27A60108 */ addiu $a2, $sp, 0x108 -/* AC43BC 8004D21C 27A400D0 */ addiu $a0, $sp, 0xd0 -/* AC43C0 8004D220 ACD90000 */ sw $t9, ($a2) -/* AC43C4 8004D224 8DF80004 */ lw $t8, 4($t7) -/* AC43C8 8004D228 ACD80004 */ sw $t8, 4($a2) -/* AC43CC 8004D22C 8DF90008 */ lw $t9, 8($t7) -/* AC43D0 8004D230 ACD90008 */ sw $t9, 8($a2) -/* AC43D4 8004D234 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC43D8 8004D238 8FA50044 */ lw $a1, 0x44($sp) -/* AC43DC 8004D23C C7A000D0 */ lwc1 $f0, 0xd0($sp) -/* AC43E0 8004D240 C7AC00E8 */ lwc1 $f12, 0xe8($sp) -/* AC43E4 8004D244 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* AC43E8 8004D248 44814000 */ mtc1 $at, $f8 -/* AC43EC 8004D24C 460C003E */ c.le.s $f0, $f12 -/* AC43F0 8004D250 8FA90038 */ lw $t1, 0x38($sp) -/* AC43F4 8004D254 45020004 */ bc1fl .L8004D268 -/* AC43F8 8004D258 46006086 */ mov.s $f2, $f12 -/* AC43FC 8004D25C 10000002 */ b .L8004D268 -/* AC4400 8004D260 46000086 */ mov.s $f2, $f0 -/* AC4404 8004D264 46006086 */ mov.s $f2, $f12 -.L8004D268: -/* AC4408 8004D268 46081102 */ mul.s $f4, $f2, $f8 -/* AC440C 8004D26C 3C018014 */ lui $at, %hi(D_8013A09C) -/* AC4410 8004D270 C42AA09C */ lwc1 $f10, %lo(D_8013A09C)($at) -/* AC4414 8004D274 C7A80084 */ lwc1 $f8, 0x84($sp) -/* AC4418 8004D278 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 -/* AC441C 8004D27C 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1) -/* AC4420 8004D280 3C018014 */ lui $at, %hi(D_8013A0A0) -/* AC4424 8004D284 46046181 */ sub.s $f6, $f12, $f4 -/* AC4428 8004D288 3C074000 */ lui $a3, 0x4000 -/* AC442C 8004D28C 46085101 */ sub.s $f4, $f10, $f8 -/* AC4430 8004D290 E7A600D0 */ swc1 $f6, 0xd0($sp) -/* AC4434 8004D294 C6060010 */ lwc1 $f6, 0x10($s0) -/* AC4438 8004D298 C600000C */ lwc1 $f0, 0xc($s0) -/* AC443C 8004D29C 846B01AE */ lh $t3, 0x1ae($v1) -/* AC4440 8004D2A0 46003281 */ sub.s $f10, $f6, $f0 -/* AC4444 8004D2A4 448B3000 */ mtc1 $t3, $f6 -/* AC4448 8004D2A8 46045202 */ mul.s $f8, $f10, $f4 -/* AC444C 8004D2AC 468032A0 */ cvt.s.w $f10, $f6 -/* AC4450 8004D2B0 46080480 */ add.s $f18, $f0, $f8 -/* AC4454 8004D2B4 46125100 */ add.s $f4, $f10, $f18 -/* AC4458 8004D2B8 C42AA0A0 */ lwc1 $f10, %lo(D_8013A0A0)($at) -/* AC445C 8004D2BC E7A400F0 */ swc1 $f4, 0xf0($sp) -/* AC4460 8004D2C0 846A01AA */ lh $t2, 0x1aa($v1) -/* AC4464 8004D2C4 C60E00DC */ lwc1 $f14, 0xdc($s0) -/* AC4468 8004D2C8 E7B200EC */ swc1 $f18, 0xec($sp) -/* AC446C 8004D2CC 448A4000 */ mtc1 $t2, $f8 -/* AC4470 8004D2D0 AFA90038 */ sw $t1, 0x38($sp) -/* AC4474 8004D2D4 468041A0 */ cvt.s.w $f6, $f8 -/* AC4478 8004D2D8 460A3102 */ mul.s $f4, $f6, $f10 -/* AC447C 8004D2DC 44062000 */ mfc1 $a2, $f4 -/* AC4480 8004D2E0 0C010E27 */ jal func_8004389C -/* AC4484 8004D2E4 00000000 */ nop -/* AC4488 8004D2E8 8FA90038 */ lw $t1, 0x38($sp) -/* AC448C 8004D2EC C7B200EC */ lwc1 $f18, 0xec($sp) -/* AC4490 8004D2F0 E60000DC */ swc1 $f0, 0xdc($s0) -/* AC4494 8004D2F4 87AC00BE */ lh $t4, 0xbe($sp) -/* AC4498 8004D2F8 87AD00D6 */ lh $t5, 0xd6($sp) -/* AC449C 8004D2FC E7A000D8 */ swc1 $f0, 0xd8($sp) -/* AC44A0 8004D300 258E8001 */ addiu $t6, $t4, -0x7fff -/* AC44A4 8004D304 000E7C00 */ sll $t7, $t6, 0x10 -/* AC44A8 8004D308 A7AC00DE */ sh $t4, 0xde($sp) -/* AC44AC 8004D30C 85230016 */ lh $v1, 0x16($t1) -/* AC44B0 8004D310 000FC403 */ sra $t8, $t7, 0x10 -/* AC44B4 8004D314 01B81023 */ subu $v0, $t5, $t8 -/* AC44B8 8004D318 00022C00 */ sll $a1, $v0, 0x10 -/* AC44BC 8004D31C 1060007E */ beqz $v1, .L8004D518 -/* AC44C0 8004D320 00052C03 */ sra $a1, $a1, 0x10 -/* AC44C4 8004D324 3C198016 */ lui $t9, %hi(gGameInfo) # $t9, 0x8016 -/* AC44C8 8004D328 8F39FA90 */ lw $t9, %lo(gGameInfo)($t9) -/* AC44CC 8004D32C 27A400C8 */ addiu $a0, $sp, 0xc8 -/* AC44D0 8004D330 872201C4 */ lh $v0, 0x1c4($t9) -/* AC44D4 8004D334 24190001 */ li $t9, 1 -/* AC44D8 8004D338 0062082A */ slt $at, $v1, $v0 -/* AC44DC 8004D33C 14200072 */ bnez $at, .L8004D508 -/* AC44E0 8004D340 00625823 */ subu $t3, $v1, $v0 -/* AC44E4 8004D344 87AA00CE */ lh $t2, 0xce($sp) -/* AC44E8 8004D348 A7AB0082 */ sh $t3, 0x82($sp) -/* AC44EC 8004D34C 8FA50044 */ lw $a1, 0x44($sp) -/* AC44F0 8004D350 8FA60048 */ lw $a2, 0x48($sp) -/* AC44F4 8004D354 AFA90038 */ sw $t1, 0x38($sp) -/* AC44F8 8004D358 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC44FC 8004D35C A7AA00E2 */ sh $t2, 0xe2($sp) -/* AC4500 8004D360 87AC00E2 */ lh $t4, 0xe2($sp) -/* AC4504 8004D364 3C038016 */ lui $v1, %hi(gGameInfo) -/* AC4508 8004D368 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1) -/* AC450C 8004D36C 25998001 */ addiu $t9, $t4, -0x7fff -/* AC4510 8004D370 A7B900CE */ sh $t9, 0xce($sp) -/* AC4514 8004D374 846F01C2 */ lh $t7, 0x1c2($v1) -/* AC4518 8004D378 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC451C 8004D37C 44818000 */ mtc1 $at, $f16 -/* AC4520 8004D380 448F4000 */ mtc1 $t7, $f8 -/* AC4524 8004D384 8FA90038 */ lw $t1, 0x38($sp) -/* AC4528 8004D388 C7A400C8 */ lwc1 $f4, 0xc8($sp) -/* AC452C 8004D38C 468041A0 */ cvt.s.w $f6, $f8 -/* AC4530 8004D390 852D0012 */ lh $t5, 0x12($t1) -/* AC4534 8004D394 C52A0000 */ lwc1 $f10, ($t1) -/* AC4538 8004D398 87AF0082 */ lh $t7, 0x82($sp) -/* AC453C 8004D39C 01B95823 */ subu $t3, $t5, $t9 -/* AC4540 8004D3A0 000B5400 */ sll $t2, $t3, 0x10 -/* AC4544 8004D3A4 46068003 */ div.s $f0, $f16, $f6 -/* AC4548 8004D3A8 000A6403 */ sra $t4, $t2, 0x10 -/* AC454C 8004D3AC 448C3000 */ mtc1 $t4, $f6 -/* AC4550 8004D3B0 87AD00CC */ lh $t5, 0xcc($sp) -/* AC4554 8004D3B4 46045201 */ sub.s $f8, $f10, $f4 -/* AC4558 8004D3B8 3C018014 */ lui $at, %hi(D_8013A0A4) -/* AC455C 8004D3BC 44078000 */ mfc1 $a3, $f16 -/* AC4560 8004D3C0 468032A0 */ cvt.s.w $f10, $f6 -/* AC4564 8004D3C4 C7AE00C0 */ lwc1 $f14, 0xc0($sp) -/* AC4568 8004D3C8 46004082 */ mul.s $f2, $f8, $f0 -/* AC456C 8004D3CC 00000000 */ nop -/* AC4570 8004D3D0 46005202 */ mul.s $f8, $f10, $f0 -/* AC4574 8004D3D4 4600418D */ trunc.w.s $f6, $f8 -/* AC4578 8004D3D8 440E3000 */ mfc1 $t6, $f6 -/* AC457C 8004D3DC 00000000 */ nop -/* AC4580 8004D3E0 A7AE00E2 */ sh $t6, 0xe2($sp) -/* AC4584 8004D3E4 85380014 */ lh $t8, 0x14($t1) -/* AC4588 8004D3E8 846E01CC */ lh $t6, 0x1cc($v1) -/* AC458C 8004D3EC 030DC823 */ subu $t9, $t8, $t5 -/* AC4590 8004D3F0 00195C00 */ sll $t3, $t9, 0x10 -/* AC4594 8004D3F4 000B5403 */ sra $t2, $t3, 0x10 -/* AC4598 8004D3F8 448A5000 */ mtc1 $t2, $f10 -/* AC459C 8004D3FC 00000000 */ nop -/* AC45A0 8004D400 46805220 */ cvt.s.w $f8, $f10 -/* AC45A4 8004D404 46004182 */ mul.s $f6, $f8, $f0 -/* AC45A8 8004D408 448F4000 */ mtc1 $t7, $f8 -/* AC45AC 8004D40C 4600328D */ trunc.w.s $f10, $f6 -/* AC45B0 8004D410 468041A0 */ cvt.s.w $f6, $f8 -/* AC45B4 8004D414 44085000 */ mfc1 $t0, $f10 -/* AC45B8 8004D418 448E4000 */ mtc1 $t6, $f8 -/* AC45BC 8004D41C 00084400 */ sll $t0, $t0, 0x10 -/* AC45C0 8004D420 00084403 */ sra $t0, $t0, 0x10 -/* AC45C4 8004D424 46023282 */ mul.s $f10, $f6, $f2 -/* AC45C8 8004D428 A7A800E0 */ sh $t0, 0xe0($sp) -/* AC45CC 8004D42C 468041A0 */ cvt.s.w $f6, $f8 -/* AC45D0 8004D430 46045300 */ add.s $f12, $f10, $f4 -/* AC45D4 8004D434 C42AA0A4 */ lwc1 $f10, %lo(D_8013A0A4)($at) -/* AC45D8 8004D438 460A3102 */ mul.s $f4, $f6, $f10 -/* AC45DC 8004D43C 44062000 */ mfc1 $a2, $f4 -/* AC45E0 8004D440 0C010E27 */ jal func_8004389C -/* AC45E4 8004D444 00000000 */ nop -/* AC45E8 8004D448 3C0A8016 */ lui $t2, %hi(gGameInfo) # $t2, 0x8016 -/* AC45EC 8004D44C 8D4AFA90 */ lw $t2, %lo(gGameInfo)($t2) -/* AC45F0 8004D450 E7A000D8 */ swc1 $f0, 0xd8($sp) -/* AC45F4 8004D454 87B800E2 */ lh $t8, 0xe2($sp) -/* AC45F8 8004D458 854C01CC */ lh $t4, 0x1cc($t2) -/* AC45FC 8004D45C 87AD0082 */ lh $t5, 0x82($sp) -/* AC4600 8004D460 3C018014 */ lui $at, %hi(D_8013A0A8) -/* AC4604 8004D464 448C4000 */ mtc1 $t4, $f8 -/* AC4608 8004D468 030D0019 */ multu $t8, $t5 -/* AC460C 8004D46C C42AA0A8 */ lwc1 $f10, %lo(D_8013A0A8)($at) -/* AC4610 8004D470 468041A0 */ cvt.s.w $f6, $f8 -/* AC4614 8004D474 87AB00CE */ lh $t3, 0xce($sp) -/* AC4618 8004D478 87A500C6 */ lh $a1, 0xc6($sp) -/* AC461C 8004D47C 2407000A */ li $a3, 10 -/* AC4620 8004D480 460A3102 */ mul.s $f4, $f6, $f10 -/* AC4624 8004D484 0000C812 */ mflo $t9 -/* AC4628 8004D488 01792021 */ addu $a0, $t3, $t9 -/* AC462C 8004D48C 00042400 */ sll $a0, $a0, 0x10 -/* AC4630 8004D490 00042403 */ sra $a0, $a0, 0x10 -/* AC4634 8004D494 44062000 */ mfc1 $a2, $f4 -/* AC4638 8004D498 0C010E47 */ jal func_8004391C -/* AC463C 8004D49C 00000000 */ nop -/* AC4640 8004D4A0 3C0D8016 */ lui $t5, %hi(gGameInfo) # $t5, 0x8016 -/* AC4644 8004D4A4 8DADFA90 */ lw $t5, %lo(gGameInfo)($t5) -/* AC4648 8004D4A8 A7A200DE */ sh $v0, 0xde($sp) -/* AC464C 8004D4AC 87A800E0 */ lh $t0, 0xe0($sp) -/* AC4650 8004D4B0 85AB01CC */ lh $t3, 0x1cc($t5) -/* AC4654 8004D4B4 87AE0082 */ lh $t6, 0x82($sp) -/* AC4658 8004D4B8 3C018014 */ lui $at, %hi(D_8013A0AC) -/* AC465C 8004D4BC 448B4000 */ mtc1 $t3, $f8 -/* AC4660 8004D4C0 010E0019 */ multu $t0, $t6 -/* AC4664 8004D4C4 C42AA0AC */ lwc1 $f10, %lo(D_8013A0AC)($at) -/* AC4668 8004D4C8 468041A0 */ cvt.s.w $f6, $f8 -/* AC466C 8004D4CC 87AF00CC */ lh $t7, 0xcc($sp) -/* AC4670 8004D4D0 87A500C4 */ lh $a1, 0xc4($sp) -/* AC4674 8004D4D4 2407000A */ li $a3, 10 -/* AC4678 8004D4D8 460A3102 */ mul.s $f4, $f6, $f10 -/* AC467C 8004D4DC 0000C012 */ mflo $t8 -/* AC4680 8004D4E0 01F82021 */ addu $a0, $t7, $t8 -/* AC4684 8004D4E4 00042400 */ sll $a0, $a0, 0x10 -/* AC4688 8004D4E8 00042403 */ sra $a0, $a0, 0x10 -/* AC468C 8004D4EC 44062000 */ mfc1 $a2, $f4 -/* AC4690 8004D4F0 0C010E47 */ jal func_8004391C -/* AC4694 8004D4F4 00000000 */ nop -/* AC4698 8004D4F8 8FA90038 */ lw $t1, 0x38($sp) -/* AC469C 8004D4FC A7A200DC */ sh $v0, 0xdc($sp) -/* AC46A0 8004D500 10000002 */ b .L8004D50C -/* AC46A4 8004D504 85230016 */ lh $v1, 0x16($t1) -.L8004D508: -/* AC46A8 8004D508 AFB90088 */ sw $t9, 0x88($sp) -.L8004D50C: -/* AC46AC 8004D50C 246AFFFF */ addiu $t2, $v1, -1 -/* AC46B0 8004D510 10000075 */ b .L8004D6E8 -/* AC46B4 8004D514 A52A0016 */ sh $t2, 0x16($t1) -.L8004D518: -/* AC46B8 8004D518 00022400 */ sll $a0, $v0, 0x10 -/* AC46BC 8004D51C 00042403 */ sra $a0, $a0, 0x10 -/* AC46C0 8004D520 04800003 */ bltz $a0, .L8004D530 -/* AC46C4 8004D524 3C018014 */ lui $at, %hi(D_8013A0B0) -/* AC46C8 8004D528 10000002 */ b .L8004D534 -/* AC46CC 8004D52C 00801025 */ move $v0, $a0 -.L8004D530: -/* AC46D0 8004D530 00041023 */ negu $v0, $a0 -.L8004D534: -/* AC46D4 8004D534 C428A0B0 */ lwc1 $f8, %lo(D_8013A0B0)($at) -/* AC46D8 8004D538 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* AC46DC 8004D53C 44815000 */ mtc1 $at, $f10 -/* AC46E0 8004D540 46089182 */ mul.s $f6, $f18, $f8 -/* AC46E4 8004D544 460A3100 */ add.s $f4, $f6, $f10 -/* AC46E8 8004D548 4600220D */ trunc.w.s $f8, $f4 -/* AC46EC 8004D54C 44034000 */ mfc1 $v1, $f8 -/* AC46F0 8004D550 00000000 */ nop -/* AC46F4 8004D554 00031C00 */ sll $v1, $v1, 0x10 -/* AC46F8 8004D558 00031C03 */ sra $v1, $v1, 0x10 -/* AC46FC 8004D55C 0062082A */ slt $at, $v1, $v0 -/* AC4700 8004D560 50200049 */ beql $at, $zero, .L8004D688 -/* AC4704 8004D564 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC4708 8004D568 44853000 */ mtc1 $a1, $f6 -/* AC470C 8004D56C 3C018014 */ lui $at, %hi(D_8013A0B4) -/* AC4710 8004D570 C424A0B4 */ lwc1 $f4, %lo(D_8013A0B4)($at) -/* AC4714 8004D574 468032A0 */ cvt.s.w $f10, $f6 -/* AC4718 8004D578 C7AC00D0 */ lwc1 $f12, 0xd0($sp) -/* AC471C 8004D57C C7AE00D8 */ lwc1 $f14, 0xd8($sp) -/* AC4720 8004D580 A7A500E2 */ sh $a1, 0xe2($sp) -/* AC4724 8004D584 E7B200EC */ swc1 $f18, 0xec($sp) -/* AC4728 8004D588 46045402 */ mul.s $f16, $f10, $f4 -/* AC472C 8004D58C 0C01F02A */ jal OLib_ClampMaxDist -/* AC4730 8004D590 E7B000F4 */ swc1 $f16, 0xf4($sp) -/* AC4734 8004D594 C7A800D8 */ lwc1 $f8, 0xd8($sp) -/* AC4738 8004D598 C7B200EC */ lwc1 $f18, 0xec($sp) -/* AC473C 8004D59C C7AA00F0 */ lwc1 $f10, 0xf0($sp) -/* AC4740 8004D5A0 46080183 */ div.s $f6, $f0, $f8 -/* AC4744 8004D5A4 3C014000 */ li $at, 0x40000000 # 0.000000 -/* AC4748 8004D5A8 C7B000F4 */ lwc1 $f16, 0xf4($sp) -/* AC474C 8004D5AC 87AE00E2 */ lh $t6, 0xe2($sp) -/* AC4750 8004D5B0 46125101 */ sub.s $f4, $f10, $f18 -/* AC4754 8004D5B4 87AD00BE */ lh $t5, 0xbe($sp) -/* AC4758 8004D5B8 25AA8001 */ addiu $t2, $t5, -0x7fff -/* AC475C 8004D5BC 46043202 */ mul.s $f8, $f6, $f4 -/* AC4760 8004D5C0 44813000 */ mtc1 $at, $f6 -/* AC4764 8004D5C4 3C0143B4 */ li $at, 0x43B40000 # 0.000000 -/* AC4768 8004D5C8 46124080 */ add.s $f2, $f8, $f18 -/* AC476C 8004D5CC 44814000 */ mtc1 $at, $f8 -/* AC4770 8004D5D0 3C014000 */ li $at, 0x40000000 # 0.000000 -/* AC4774 8004D5D4 46021282 */ mul.s $f10, $f2, $f2 -/* AC4778 8004D5D8 46065101 */ sub.s $f4, $f10, $f6 -/* AC477C 8004D5DC 44813000 */ mtc1 $at, $f6 -/* AC4780 8004D5E0 3C0143B4 */ li $at, 0x43B40000 # 0.000000 -/* AC4784 8004D5E4 46081281 */ sub.s $f10, $f2, $f8 -/* AC4788 8004D5E8 44814000 */ mtc1 $at, $f8 -/* AC478C 8004D5EC 3C018014 */ lui $at, %hi(D_8013A0BC) -/* AC4790 8004D5F0 460A2303 */ div.s $f12, $f4, $f10 -/* AC4794 8004D5F4 460C4102 */ mul.s $f4, $f8, $f12 -/* AC4798 8004D5F8 46043281 */ sub.s $f10, $f6, $f4 -/* AC479C 8004D5FC 46106202 */ mul.s $f8, $f12, $f16 -/* AC47A0 8004D600 460A4180 */ add.s $f6, $f8, $f10 -/* AC47A4 8004D604 46108102 */ mul.s $f4, $f16, $f16 -/* AC47A8 8004D608 05C0000D */ bltz $t6, .L8004D640 -/* AC47AC 8004D60C 46062383 */ div.s $f14, $f4, $f6 -/* AC47B0 8004D610 3C018014 */ lui $at, %hi(D_8013A0B8) -/* AC47B4 8004D614 C428A0B8 */ lwc1 $f8, %lo(D_8013A0B8)($at) -/* AC47B8 8004D618 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* AC47BC 8004D61C 44812000 */ mtc1 $at, $f4 -/* AC47C0 8004D620 46087282 */ mul.s $f10, $f14, $f8 -/* AC47C4 8004D624 46045180 */ add.s $f6, $f10, $f4 -/* AC47C8 8004D628 4600320D */ trunc.w.s $f8, $f6 -/* AC47CC 8004D62C 44084000 */ mfc1 $t0, $f8 -/* AC47D0 8004D630 00000000 */ nop -/* AC47D4 8004D634 00084400 */ sll $t0, $t0, 0x10 -/* AC47D8 8004D638 1000000E */ b .L8004D674 -/* AC47DC 8004D63C 00084403 */ sra $t0, $t0, 0x10 -.L8004D640: -/* AC47E0 8004D640 C42AA0BC */ lwc1 $f10, %lo(D_8013A0BC)($at) -/* AC47E4 8004D644 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* AC47E8 8004D648 44813000 */ mtc1 $at, $f6 -/* AC47EC 8004D64C 460A7102 */ mul.s $f4, $f14, $f10 -/* AC47F0 8004D650 46062200 */ add.s $f8, $f4, $f6 -/* AC47F4 8004D654 4600428D */ trunc.w.s $f10, $f8 -/* AC47F8 8004D658 44085000 */ mfc1 $t0, $f10 -/* AC47FC 8004D65C 00000000 */ nop -/* AC4800 8004D660 00084400 */ sll $t0, $t0, 0x10 -/* AC4804 8004D664 00084403 */ sra $t0, $t0, 0x10 -/* AC4808 8004D668 00084023 */ negu $t0, $t0 -/* AC480C 8004D66C 00084400 */ sll $t0, $t0, 0x10 -/* AC4810 8004D670 00084403 */ sra $t0, $t0, 0x10 -.L8004D674: -/* AC4814 8004D674 01487821 */ addu $t7, $t2, $t0 -/* AC4818 8004D678 25F88001 */ addiu $t8, $t7, -0x7fff -/* AC481C 8004D67C 1000001A */ b .L8004D6E8 -/* AC4820 8004D680 A7B800DE */ sh $t8, 0xde($sp) -/* AC4824 8004D684 3C013F80 */ li $at, 0x3F800000 # 0.000000 -.L8004D688: -/* AC4828 8004D688 44812000 */ mtc1 $at, $f4 -/* AC482C 8004D68C C60600E0 */ lwc1 $f6, 0xe0($s0) -/* AC4830 8004D690 3C018014 */ lui $at, %hi(D_8013A0C0) -/* AC4834 8004D694 C42AA0C0 */ lwc1 $f10, %lo(D_8013A0C0)($at) -/* AC4838 8004D698 46062201 */ sub.s $f8, $f4, $f6 -/* AC483C 8004D69C 00034023 */ negu $t0, $v1 -/* AC4840 8004D6A0 00084400 */ sll $t0, $t0, 0x10 -/* AC4844 8004D6A4 00084403 */ sra $t0, $t0, 0x10 -/* AC4848 8004D6A8 460A4402 */ mul.s $f16, $f8, $f10 -/* AC484C 8004D6AC 04800004 */ bltz $a0, .L8004D6C0 -/* AC4850 8004D6B0 00000000 */ nop -/* AC4854 8004D6B4 00034400 */ sll $t0, $v1, 0x10 -/* AC4858 8004D6B8 10000001 */ b .L8004D6C0 -/* AC485C 8004D6BC 00084403 */ sra $t0, $t0, 0x10 -.L8004D6C0: -/* AC4860 8004D6C0 01045823 */ subu $t3, $t0, $a0 -/* AC4864 8004D6C4 448B2000 */ mtc1 $t3, $f4 -/* AC4868 8004D6C8 87AD00BE */ lh $t5, 0xbe($sp) -/* AC486C 8004D6CC 468021A0 */ cvt.s.w $f6, $f4 -/* AC4870 8004D6D0 46103202 */ mul.s $f8, $f6, $f16 -/* AC4874 8004D6D4 4600428D */ trunc.w.s $f10, $f8 -/* AC4878 8004D6D8 440E5000 */ mfc1 $t6, $f10 -/* AC487C 8004D6DC 00000000 */ nop -/* AC4880 8004D6E0 01AE7823 */ subu $t7, $t5, $t6 -/* AC4884 8004D6E4 A7AF00DE */ sh $t7, 0xde($sp) -.L8004D6E8: -/* AC4888 8004D6E8 8FB80088 */ lw $t8, 0x88($sp) -/* AC488C 8004D6EC 3C0C8016 */ lui $t4, %hi(gGameInfo) # $t4, 0x8016 -/* AC4890 8004D6F0 57000099 */ bnezl $t8, .L8004D958 -/* AC4894 8004D6F4 C60C0020 */ lwc1 $f12, 0x20($s0) -/* AC4898 8004D6F8 C6000014 */ lwc1 $f0, 0x14($s0) -/* AC489C 8004D6FC C6040018 */ lwc1 $f4, 0x18($s0) -/* AC48A0 8004D700 C7A80084 */ lwc1 $f8, 0x84($sp) -/* AC48A4 8004D704 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* AC48A8 8004D708 46002181 */ sub.s $f6, $f4, $f0 -/* AC48AC 8004D70C 44811000 */ mtc1 $at, $f2 -/* AC48B0 8004D710 3C018014 */ lui $at, %hi(D_8013A0C4) -/* AC48B4 8004D714 87B900CC */ lh $t9, 0xcc($sp) -/* AC48B8 8004D718 46083282 */ mul.s $f10, $f6, $f8 -/* AC48BC 8004D71C C426A0C4 */ lwc1 $f6, %lo(D_8013A0C4)($at) -/* AC48C0 8004D720 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* AC48C4 8004D724 87AF00D4 */ lh $t7, 0xd4($sp) -/* AC48C8 8004D728 460A0100 */ add.s $f4, $f0, $f10 -/* AC48CC 8004D72C 46062282 */ mul.s $f10, $f4, $f6 -/* AC48D0 8004D730 44812000 */ mtc1 $at, $f4 -/* AC48D4 8004D734 00000000 */ nop -/* AC48D8 8004D738 46045180 */ add.s $f6, $f10, $f4 -/* AC48DC 8004D73C 44992000 */ mtc1 $t9, $f4 -/* AC48E0 8004D740 4600328D */ trunc.w.s $f10, $f6 -/* AC48E4 8004D744 468021A0 */ cvt.s.w $f6, $f4 -/* AC48E8 8004D748 44045000 */ mfc1 $a0, $f10 -/* AC48EC 8004D74C 46024282 */ mul.s $f10, $f8, $f2 -/* AC48F0 8004D750 00042400 */ sll $a0, $a0, 0x10 -/* AC48F4 8004D754 00042403 */ sra $a0, $a0, 0x10 -/* AC48F8 8004D758 460A1100 */ add.s $f4, $f2, $f10 -/* AC48FC 8004D75C 46043202 */ mul.s $f8, $f6, $f4 -/* AC4900 8004D760 448F3000 */ mtc1 $t7, $f6 -/* AC4904 8004D764 00000000 */ nop -/* AC4908 8004D768 46803120 */ cvt.s.w $f4, $f6 -/* AC490C 8004D76C 4600428D */ trunc.w.s $f10, $f8 -/* AC4910 8004D770 C608001C */ lwc1 $f8, 0x1c($s0) -/* AC4914 8004D774 46082302 */ mul.s $f12, $f4, $f8 -/* AC4918 8004D778 440E5000 */ mfc1 $t6, $f10 -/* AC491C 8004D77C 00000000 */ nop -/* AC4920 8004D780 008E2023 */ subu $a0, $a0, $t6 -/* AC4924 8004D784 00042400 */ sll $a0, $a0, 0x10 -/* AC4928 8004D788 00042403 */ sra $a0, $a0, 0x10 -/* AC492C 8004D78C 4600628D */ trunc.w.s $f10, $f12 -/* AC4930 8004D790 440A5000 */ mfc1 $t2, $f10 -/* AC4934 8004D794 00000000 */ nop -/* AC4938 8004D798 008A2021 */ addu $a0, $a0, $t2 -/* AC493C 8004D79C 00042400 */ sll $a0, $a0, 0x10 -/* AC4940 8004D7A0 00042403 */ sra $a0, $a0, 0x10 -/* AC4944 8004D7A4 2881CE00 */ slti $at, $a0, -0x3200 -/* AC4948 8004D7A8 50200004 */ beql $at, $zero, .L8004D7BC -/* AC494C 8004D7AC 28813201 */ slti $at, $a0, 0x3201 -/* AC4950 8004D7B0 10000005 */ b .L8004D7C8 -/* AC4954 8004D7B4 2404CE00 */ li $a0, -12800 -/* AC4958 8004D7B8 28813201 */ slti $at, $a0, 0x3201 -.L8004D7BC: -/* AC495C 8004D7BC 14200002 */ bnez $at, .L8004D7C8 -/* AC4960 8004D7C0 00000000 */ nop -/* AC4964 8004D7C4 24043200 */ li $a0, 12800 -.L8004D7C8: -/* AC4968 8004D7C8 8D8CFA90 */ lw $t4, %lo(gGameInfo)($t4) -/* AC496C 8004D7CC 3C018014 */ lui $at, %hi(D_8013A0C8) -/* AC4970 8004D7D0 C428A0C8 */ lwc1 $f8, %lo(D_8013A0C8)($at) -/* AC4974 8004D7D4 858D01AC */ lh $t5, 0x1ac($t4) -/* AC4978 8004D7D8 87A500BC */ lh $a1, 0xbc($sp) -/* AC497C 8004D7DC 2407000A */ li $a3, 10 -/* AC4980 8004D7E0 448D3000 */ mtc1 $t5, $f6 -/* AC4984 8004D7E4 00000000 */ nop -/* AC4988 8004D7E8 46803120 */ cvt.s.w $f4, $f6 -/* AC498C 8004D7EC 46082282 */ mul.s $f10, $f4, $f8 -/* AC4990 8004D7F0 44065000 */ mfc1 $a2, $f10 -/* AC4994 8004D7F4 0C010E47 */ jal func_8004391C -/* AC4998 8004D7F8 00000000 */ nop -/* AC499C 8004D7FC A7A200DC */ sh $v0, 0xdc($sp) -/* AC49A0 8004D800 8FA40040 */ lw $a0, 0x40($sp) -/* AC49A4 8004D804 8FA50044 */ lw $a1, 0x44($sp) -/* AC49A8 8004D808 0C010F0A */ jal func_80043C28 -/* AC49AC 8004D80C 27A600D8 */ addiu $a2, $sp, 0xd8 -/* AC49B0 8004D810 8FAE0040 */ lw $t6, 0x40($sp) -/* AC49B4 8004D814 27A6008C */ addiu $a2, $sp, 0x8c -/* AC49B8 8004D818 24010007 */ li $at, 7 -/* AC49BC 8004D81C 8DD80000 */ lw $t8, ($t6) -/* AC49C0 8004D820 ACD80000 */ sw $t8, ($a2) -/* AC49C4 8004D824 8DCF0004 */ lw $t7, 4($t6) -/* AC49C8 8004D828 ACCF0004 */ sw $t7, 4($a2) -/* AC49CC 8004D82C 8DD80008 */ lw $t8, 8($t6) -/* AC49D0 8004D830 ACD80008 */ sw $t8, 8($a2) -/* AC49D4 8004D834 860B0140 */ lh $t3, 0x140($s0) -/* AC49D8 8004D838 8FAA0040 */ lw $t2, 0x40($sp) -/* AC49DC 8004D83C 5561002F */ bnel $t3, $at, .L8004D8FC -/* AC49E0 8004D840 8FB90048 */ lw $t9, 0x48($sp) -/* AC49E4 8004D844 8E19008C */ lw $t9, 0x8c($s0) -/* AC49E8 8004D848 3C0A0001 */ lui $t2, 1 -/* AC49EC 8004D84C 02002025 */ move $a0, $s0 -/* AC49F0 8004D850 01595021 */ addu $t2, $t2, $t9 -/* AC49F4 8004D854 914A0A39 */ lbu $t2, 0xa39($t2) -/* AC49F8 8004D858 11400005 */ beqz $t2, .L8004D870 -/* AC49FC 8004D85C 00000000 */ nop -/* AC4A00 8004D860 86020030 */ lh $v0, 0x30($s0) -/* AC4A04 8004D864 304C0001 */ andi $t4, $v0, 1 -/* AC4A08 8004D868 11800005 */ beqz $t4, .L8004D880 -/* AC4A0C 8004D86C 304D0002 */ andi $t5, $v0, 2 -.L8004D870: -/* AC4A10 8004D870 0C010F46 */ jal func_80043D18 -/* AC4A14 8004D874 8FA50044 */ lw $a1, 0x44($sp) -/* AC4A18 8004D878 10000017 */ b .L8004D8D8 -/* AC4A1C 8004D87C 27AF008C */ addiu $t7, $sp, 0x8c -.L8004D880: -/* AC4A20 8004D880 11A00006 */ beqz $t5, .L8004D89C -/* AC4A24 8004D884 27A40120 */ addiu $a0, $sp, 0x120 -/* AC4A28 8004D888 02002025 */ move $a0, $s0 -/* AC4A2C 8004D88C 0C010FE5 */ jal func_80043F94 -/* AC4A30 8004D890 8FA50044 */ lw $a1, 0x44($sp) -/* AC4A34 8004D894 10000010 */ b .L8004D8D8 -/* AC4A38 8004D898 27AF008C */ addiu $t7, $sp, 0x8c -.L8004D89C: -/* AC4A3C 8004D89C 0C01F03E */ jal OLib_Vec3fDistNormalize -/* AC4A40 8004D8A0 8FA50044 */ lw $a1, 0x44($sp) -/* AC4A44 8004D8A4 C7A6008C */ lwc1 $f6, 0x8c($sp) -/* AC4A48 8004D8A8 C7A40120 */ lwc1 $f4, 0x120($sp) -/* AC4A4C 8004D8AC C7AA0090 */ lwc1 $f10, 0x90($sp) -/* AC4A50 8004D8B0 46043201 */ sub.s $f8, $f6, $f4 -/* AC4A54 8004D8B4 C7A60124 */ lwc1 $f6, 0x124($sp) -/* AC4A58 8004D8B8 46065101 */ sub.s $f4, $f10, $f6 -/* AC4A5C 8004D8BC E7A8008C */ swc1 $f8, 0x8c($sp) -/* AC4A60 8004D8C0 C7A80094 */ lwc1 $f8, 0x94($sp) -/* AC4A64 8004D8C4 C7AA0128 */ lwc1 $f10, 0x128($sp) -/* AC4A68 8004D8C8 E7A40090 */ swc1 $f4, 0x90($sp) -/* AC4A6C 8004D8CC 460A4181 */ sub.s $f6, $f8, $f10 -/* AC4A70 8004D8D0 E7A60094 */ swc1 $f6, 0x94($sp) -/* AC4A74 8004D8D4 27AF008C */ addiu $t7, $sp, 0x8c -.L8004D8D8: -/* AC4A78 8004D8D8 8DEB0000 */ lw $t3, ($t7) -/* AC4A7C 8004D8DC 8FAE0048 */ lw $t6, 0x48($sp) -/* AC4A80 8004D8E0 ADCB0000 */ sw $t3, ($t6) -/* AC4A84 8004D8E4 8DF80004 */ lw $t8, 4($t7) -/* AC4A88 8004D8E8 ADD80004 */ sw $t8, 4($t6) -/* AC4A8C 8004D8EC 8DEB0008 */ lw $t3, 8($t7) -/* AC4A90 8004D8F0 10000008 */ b .L8004D914 -/* AC4A94 8004D8F4 ADCB0008 */ sw $t3, 8($t6) -/* AC4A98 8004D8F8 8FB90048 */ lw $t9, 0x48($sp) -.L8004D8FC: -/* AC4A9C 8004D8FC 8D4D0000 */ lw $t5, ($t2) -/* AC4AA0 8004D900 AF2D0000 */ sw $t5, ($t9) -/* AC4AA4 8004D904 8D4C0004 */ lw $t4, 4($t2) -/* AC4AA8 8004D908 AF2C0004 */ sw $t4, 4($t9) -/* AC4AAC 8004D90C 8D4D0008 */ lw $t5, 8($t2) -/* AC4AB0 8004D910 AF2D0008 */ sw $t5, 8($t9) -.L8004D914: -/* AC4AB4 8004D914 27A40120 */ addiu $a0, $sp, 0x120 -/* AC4AB8 8004D918 8FA50048 */ lw $a1, 0x48($sp) -/* AC4ABC 8004D91C 0C01F03E */ jal OLib_Vec3fDistNormalize -/* AC4AC0 8004D920 8FA60044 */ lw $a2, 0x44($sp) -/* AC4AC4 8004D924 3C0F8016 */ lui $t7, %hi(gGameInfo) # $t7, 0x8016 -/* AC4AC8 8004D928 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7) -/* AC4ACC 8004D92C 8FA50048 */ lw $a1, 0x48($sp) -/* AC4AD0 8004D930 27A60120 */ addiu $a2, $sp, 0x120 -/* AC4AD4 8004D934 85F80196 */ lh $t8, 0x196($t7) -/* AC4AD8 8004D938 00A02025 */ move $a0, $a1 -/* AC4ADC 8004D93C 44982000 */ mtc1 $t8, $f4 -/* AC4AE0 8004D940 00000000 */ nop -/* AC4AE4 8004D944 46802120 */ cvt.s.w $f4, $f4 -/* AC4AE8 8004D948 44072000 */ mfc1 $a3, $f4 -/* AC4AEC 8004D94C 0C010F2B */ jal func_80043CAC -/* AC4AF0 8004D950 00000000 */ nop -/* AC4AF4 8004D954 C60C0020 */ lwc1 $f12, 0x20($s0) -.L8004D958: -/* AC4AF8 8004D958 C60E00FC */ lwc1 $f14, 0xfc($s0) -/* AC4AFC 8004D95C 8E0600D4 */ lw $a2, 0xd4($s0) -/* AC4B00 8004D960 0C010E27 */ jal func_8004389C -/* AC4B04 8004D964 3C073F80 */ lui $a3, 0x3f80 -/* AC4B08 8004D968 E60000FC */ swc1 $f0, 0xfc($s0) -/* AC4B0C 8004D96C 00002025 */ move $a0, $zero -/* AC4B10 8004D970 8605015A */ lh $a1, 0x15a($s0) -/* AC4B14 8004D974 3C063F00 */ lui $a2, 0x3f00 -/* AC4B18 8004D978 0C010E47 */ jal func_8004391C -/* AC4B1C 8004D97C 2407000A */ li $a3, 10 -/* AC4B20 8004D980 A602015A */ sh $v0, 0x15a($s0) -/* AC4B24 8004D984 87AB0080 */ lh $t3, 0x80($sp) -/* AC4B28 8004D988 51600004 */ beql $t3, $zero, .L8004D99C -/* AC4B2C 8004D98C C6020024 */ lwc1 $f2, 0x24($s0) -/* AC4B30 8004D990 10000002 */ b .L8004D99C -/* AC4B34 8004D994 C602002C */ lwc1 $f2, 0x2c($s0) -/* AC4B38 8004D998 C6020024 */ lwc1 $f2, 0x24($s0) -.L8004D99C: -/* AC4B3C 8004D99C 44051000 */ mfc1 $a1, $f2 -/* AC4B40 8004D9A0 0C011429 */ jal func_800450A4 -/* AC4B44 8004D9A4 02002025 */ move $a0, $s0 -/* AC4B48 8004D9A8 E6000100 */ swc1 $f0, 0x100($s0) -/* AC4B4C 8004D9AC 24020001 */ li $v0, 1 -.L8004D9B0: -/* AC4B50 8004D9B0 8FBF002C */ lw $ra, 0x2c($sp) -/* AC4B54 8004D9B4 8FB00028 */ lw $s0, 0x28($sp) -/* AC4B58 8004D9B8 27BD0138 */ addiu $sp, $sp, 0x138 -/* AC4B5C 8004D9BC 03E00008 */ jr $ra -/* AC4B60 8004D9C0 00000000 */ nop diff --git a/asm/non_matchings/code/z_camera/Camera_KeepOn3.s b/asm/non_matchings/code/z_camera/Camera_KeepOn3.s deleted file mode 100644 index 8083495595..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_KeepOn3.s +++ /dev/null @@ -1,726 +0,0 @@ -.rdata -glabel D_80139294 - .asciz "\x1b[43;30mcamera: warning: talk: target is not valid, change parallel\n\x1b[m" - .balign 4 - -glabel D_801392DC - .asciz "camera: talk: BG&collision check %d time(s)\n" - .balign 4 - -.late_rodata -glabel D_8013A0CC - .float 0.01 - -glabel D_8013A0D0 - .float 182.04167 - -glabel D_8013A0D4 - .float 0.6 - -glabel D_8013A0D8 - .float 0.001 - -.text -glabel Camera_KeepOn3 -/* AC4B84 8004D9E4 27BDFF18 */ addiu $sp, $sp, -0xe8 -/* AC4B88 8004D9E8 AFB30028 */ sw $s3, 0x28($sp) -/* AC4B8C 8004D9EC 00809825 */ move $s3, $a0 -/* AC4B90 8004D9F0 AFBF002C */ sw $ra, 0x2c($sp) -/* AC4B94 8004D9F4 AFB20024 */ sw $s2, 0x24($sp) -/* AC4B98 8004D9F8 AFB10020 */ sw $s1, 0x20($sp) -/* AC4B9C 8004D9FC AFB0001C */ sw $s0, 0x1c($sp) -/* AC4BA0 8004DA00 0C00B721 */ jal Player_GetCameraYOffset -/* AC4BA4 8004DA04 8C840090 */ lw $a0, 0x90($a0) -/* AC4BA8 8004DA08 E7A00058 */ swc1 $f0, 0x58($sp) -/* AC4BAC 8004DA0C 8E6200A8 */ lw $v0, 0xa8($s3) -/* AC4BB0 8004DA10 10400004 */ beqz $v0, .L8004DA24 -/* AC4BB4 8004DA14 00000000 */ nop -/* AC4BB8 8004DA18 8C4E0130 */ lw $t6, 0x130($v0) -/* AC4BBC 8004DA1C 55C0000C */ bnezl $t6, .L8004DA50 -/* AC4BC0 8004DA20 8663015E */ lh $v1, 0x15e($s3) -.L8004DA24: -/* AC4BC4 8004DA24 14400003 */ bnez $v0, .L8004DA34 -/* AC4BC8 8004DA28 3C048014 */ lui $a0, %hi(D_80139294) # $a0, 0x8014 -/* AC4BCC 8004DA2C 0C00084C */ jal osSyncPrintf -/* AC4BD0 8004DA30 24849294 */ addiu $a0, %lo(D_80139294) # addiu $a0, $a0, -0x6d6c -.L8004DA34: -/* AC4BD4 8004DA34 AE6000A8 */ sw $zero, 0xa8($s3) -/* AC4BD8 8004DA38 02602025 */ move $a0, $s3 -/* AC4BDC 8004DA3C 0C016911 */ jal func_8005A444 -/* AC4BE0 8004DA40 24050001 */ li $a1, 1 -/* AC4BE4 8004DA44 1000027F */ b .L8004E444 -/* AC4BE8 8004DA48 24020001 */ li $v0, 1 -/* AC4BEC 8004DA4C 8663015E */ lh $v1, 0x15e($s3) -.L8004DA50: -/* AC4BF0 8004DA50 2401000A */ li $at, 10 -/* AC4BF4 8004DA54 50600006 */ beql $v1, $zero, .L8004DA70 -/* AC4BF8 8004DA58 8E64008C */ lw $a0, 0x8c($s3) -/* AC4BFC 8004DA5C 10610003 */ beq $v1, $at, .L8004DA6C -/* AC4C00 8004DA60 24010014 */ li $at, 20 -/* AC4C04 8004DA64 54610012 */ bnel $v1, $at, .L8004DAB0 -/* AC4C08 8004DA68 866D014C */ lh $t5, 0x14c($s3) -.L8004DA6C: -/* AC4C0C 8004DA6C 8E64008C */ lw $a0, 0x8c($s3) -.L8004DA70: -/* AC4C10 8004DA70 8C8F01DC */ lw $t7, 0x1dc($a0) -/* AC4C14 8004DA74 55E0000A */ bnezl $t7, .L8004DAA0 -/* AC4C18 8004DA78 866B014C */ lh $t3, 0x14c($s3) -/* AC4C1C 8004DA7C 8678014C */ lh $t8, 0x14c($s3) -/* AC4C20 8004DA80 86690164 */ lh $t1, 0x164($s3) -/* AC4C24 8004DA84 24020001 */ li $v0, 1 -/* AC4C28 8004DA88 37190020 */ ori $t9, $t8, 0x20 -/* AC4C2C 8004DA8C A679014C */ sh $t9, 0x14c($s3) -/* AC4C30 8004DA90 352A0050 */ ori $t2, $t1, 0x50 -/* AC4C34 8004DA94 1000026B */ b .L8004E444 -/* AC4C38 8004DA98 AC8A01DC */ sw $t2, 0x1dc($a0) -/* AC4C3C 8004DA9C 866B014C */ lh $t3, 0x14c($s3) -.L8004DAA0: -/* AC4C40 8004DAA0 8663015E */ lh $v1, 0x15e($s3) -/* AC4C44 8004DAA4 316CFFDF */ andi $t4, $t3, 0xffdf -/* AC4C48 8004DAA8 A66C014C */ sh $t4, 0x14c($s3) -/* AC4C4C 8004DAAC 866D014C */ lh $t5, 0x14c($s3) -.L8004DAB0: -/* AC4C50 8004DAB0 2401000A */ li $at, 10 -/* AC4C54 8004DAB4 31AEFFEF */ andi $t6, $t5, 0xffef -/* AC4C58 8004DAB8 10600008 */ beqz $v1, .L8004DADC -/* AC4C5C 8004DABC A66E014C */ sh $t6, 0x14c($s3) -/* AC4C60 8004DAC0 10610006 */ beq $v1, $at, .L8004DADC -/* AC4C64 8004DAC4 24010014 */ li $at, 20 -/* AC4C68 8004DAC8 10610004 */ beq $v1, $at, .L8004DADC -/* AC4C6C 8004DACC 3C0F8016 */ lui $t7, %hi(gGameInfo) # $t7, 0x8016 -/* AC4C70 8004DAD0 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7) -/* AC4C74 8004DAD4 85E20314 */ lh $v0, 0x314($t7) -/* AC4C78 8004DAD8 10400058 */ beqz $v0, .L8004DC3C -.L8004DADC: -/* AC4C7C 8004DADC 3C0D8016 */ lui $t5, %hi(gGameInfo) # $t5, 0x8016 -/* AC4C80 8004DAE0 8DADFA90 */ lw $t5, %lo(gGameInfo)($t5) -/* AC4C84 8004DAE4 3C018014 */ lui $at, %hi(D_8013A0CC) -/* AC4C88 8004DAE8 C42EA0CC */ lwc1 $f14, %lo(D_8013A0CC)($at) -/* AC4C8C 8004DAEC 85AE01F0 */ lh $t6, 0x1f0($t5) -/* AC4C90 8004DAF0 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC4C94 8004DAF4 44814000 */ mtc1 $at, $f8 -/* AC4C98 8004DAF8 448E2000 */ mtc1 $t6, $f4 -/* AC4C9C 8004DAFC 3C014288 */ li $at, 0x42880000 # 0.000000 -/* AC4CA0 8004DB00 86780142 */ lh $t8, 0x142($s3) -/* AC4CA4 8004DB04 468021A0 */ cvt.s.w $f6, $f4 -/* AC4CA8 8004DB08 44812000 */ mtc1 $at, $f4 -/* AC4CAC 8004DB0C 3C098012 */ lui $t1, %hi(sCameraSettings+4) -/* AC4CB0 8004DB10 0018C8C0 */ sll $t9, $t8, 3 -/* AC4CB4 8004DB14 866A0144 */ lh $t2, 0x144($s3) -/* AC4CB8 8004DB18 01394821 */ addu $t1, $t1, $t9 -/* AC4CBC 8004DB1C 460E3082 */ mul.s $f2, $f6, $f14 -/* AC4CC0 8004DB20 46002183 */ div.s $f6, $f4, $f0 -/* AC4CC4 8004DB24 8D29D068 */ lw $t1, %lo(sCameraSettings+4)($t1) -/* AC4CC8 8004DB28 000A58C0 */ sll $t3, $t2, 3 -/* AC4CCC 8004DB2C 012B6021 */ addu $t4, $t1, $t3 -/* AC4CD0 8004DB30 8D820004 */ lw $v0, 4($t4) -/* AC4CD4 8004DB34 46024280 */ add.s $f10, $f8, $f2 -/* AC4CD8 8004DB38 844F0000 */ lh $t7, ($v0) -/* AC4CDC 8004DB3C 2442002C */ addiu $v0, $v0, 0x2c -/* AC4CE0 8004DB40 448F2000 */ mtc1 $t7, $f4 -/* AC4CE4 8004DB44 46061202 */ mul.s $f8, $f2, $f6 -/* AC4CE8 8004DB48 468021A0 */ cvt.s.w $f6, $f4 -/* AC4CEC 8004DB4C 46085301 */ sub.s $f12, $f10, $f8 -/* AC4CF0 8004DB50 460E3282 */ mul.s $f10, $f6, $f14 -/* AC4CF4 8004DB54 00000000 */ nop -/* AC4CF8 8004DB58 46005202 */ mul.s $f8, $f10, $f0 -/* AC4CFC 8004DB5C 00000000 */ nop -/* AC4D00 8004DB60 460C4102 */ mul.s $f4, $f8, $f12 -/* AC4D04 8004DB64 E6640000 */ swc1 $f4, ($s3) -/* AC4D08 8004DB68 8458FFD8 */ lh $t8, -0x28($v0) -/* AC4D0C 8004DB6C 44983000 */ mtc1 $t8, $f6 -/* AC4D10 8004DB70 00000000 */ nop -/* AC4D14 8004DB74 468032A0 */ cvt.s.w $f10, $f6 -/* AC4D18 8004DB78 E66A0004 */ swc1 $f10, 4($s3) -/* AC4D1C 8004DB7C 8459FFDC */ lh $t9, -0x24($v0) -/* AC4D20 8004DB80 44994000 */ mtc1 $t9, $f8 -/* AC4D24 8004DB84 00000000 */ nop -/* AC4D28 8004DB88 46804120 */ cvt.s.w $f4, $f8 -/* AC4D2C 8004DB8C E6640008 */ swc1 $f4, 8($s3) -/* AC4D30 8004DB90 844AFFE0 */ lh $t2, -0x20($v0) -/* AC4D34 8004DB94 448A3000 */ mtc1 $t2, $f6 -/* AC4D38 8004DB98 3C0A8016 */ lui $t2, %hi(gGameInfo) # $t2, 0x8016 -/* AC4D3C 8004DB9C 468032A0 */ cvt.s.w $f10, $f6 -/* AC4D40 8004DBA0 E66A000C */ swc1 $f10, 0xc($s3) -/* AC4D44 8004DBA4 8449FFE4 */ lh $t1, -0x1c($v0) -/* AC4D48 8004DBA8 44894000 */ mtc1 $t1, $f8 -/* AC4D4C 8004DBAC 00000000 */ nop -/* AC4D50 8004DBB0 46804120 */ cvt.s.w $f4, $f8 -/* AC4D54 8004DBB4 E6640010 */ swc1 $f4, 0x10($s3) -/* AC4D58 8004DBB8 844BFFE8 */ lh $t3, -0x18($v0) -/* AC4D5C 8004DBBC 448B3000 */ mtc1 $t3, $f6 -/* AC4D60 8004DBC0 00000000 */ nop -/* AC4D64 8004DBC4 468032A0 */ cvt.s.w $f10, $f6 -/* AC4D68 8004DBC8 E66A0014 */ swc1 $f10, 0x14($s3) -/* AC4D6C 8004DBCC 844CFFEC */ lh $t4, -0x14($v0) -/* AC4D70 8004DBD0 448C4000 */ mtc1 $t4, $f8 -/* AC4D74 8004DBD4 00000000 */ nop -/* AC4D78 8004DBD8 46804120 */ cvt.s.w $f4, $f8 -/* AC4D7C 8004DBDC E6640018 */ swc1 $f4, 0x18($s3) -/* AC4D80 8004DBE0 844DFFF0 */ lh $t5, -0x10($v0) -/* AC4D84 8004DBE4 448D3000 */ mtc1 $t5, $f6 -/* AC4D88 8004DBE8 00000000 */ nop -/* AC4D8C 8004DBEC 468032A0 */ cvt.s.w $f10, $f6 -/* AC4D90 8004DBF0 460E5202 */ mul.s $f8, $f10, $f14 -/* AC4D94 8004DBF4 E668001C */ swc1 $f8, 0x1c($s3) -/* AC4D98 8004DBF8 844EFFF4 */ lh $t6, -0xc($v0) -/* AC4D9C 8004DBFC 448E2000 */ mtc1 $t6, $f4 -/* AC4DA0 8004DC00 00000000 */ nop -/* AC4DA4 8004DC04 468021A0 */ cvt.s.w $f6, $f4 -/* AC4DA8 8004DC08 E6660020 */ swc1 $f6, 0x20($s3) -/* AC4DAC 8004DC0C 844FFFF8 */ lh $t7, -8($v0) -/* AC4DB0 8004DC10 448F5000 */ mtc1 $t7, $f10 -/* AC4DB4 8004DC14 00000000 */ nop -/* AC4DB8 8004DC18 46805220 */ cvt.s.w $f8, $f10 -/* AC4DBC 8004DC1C 460E4102 */ mul.s $f4, $f8, $f14 -/* AC4DC0 8004DC20 E6640024 */ swc1 $f4, 0x24($s3) -/* AC4DC4 8004DC24 8458FFFC */ lh $t8, -4($v0) -/* AC4DC8 8004DC28 A6780028 */ sh $t8, 0x28($s3) -/* AC4DCC 8004DC2C 84590000 */ lh $t9, ($v0) -/* AC4DD0 8004DC30 A679002A */ sh $t9, 0x2a($s3) -/* AC4DD4 8004DC34 8D4AFA90 */ lw $t2, %lo(gGameInfo)($t2) -/* AC4DD8 8004DC38 85420314 */ lh $v0, 0x314($t2) -.L8004DC3C: -/* AC4DDC 8004DC3C 50400004 */ beql $v0, $zero, .L8004DC50 -/* AC4DE0 8004DC40 C7A60058 */ lwc1 $f6, 0x58($sp) -/* AC4DE4 8004DC44 0C011495 */ jal Camera_CopyPREGToModeValues -/* AC4DE8 8004DC48 02602025 */ move $a0, $s3 -/* AC4DEC 8004DC4C C7A60058 */ lwc1 $f6, 0x58($sp) -.L8004DC50: -/* AC4DF0 8004DC50 C66A0000 */ lwc1 $f10, ($s3) -/* AC4DF4 8004DC54 26700050 */ addiu $s0, $s3, 0x50 -/* AC4DF8 8004DC58 2666005C */ addiu $a2, $s3, 0x5c -/* AC4DFC 8004DC5C 460A3200 */ add.s $f8, $f6, $f10 -/* AC4E00 8004DC60 AFA60048 */ sw $a2, 0x48($sp) -/* AC4E04 8004DC64 02002825 */ move $a1, $s0 -/* AC4E08 8004DC68 27A40094 */ addiu $a0, $sp, 0x94 -/* AC4E0C 8004DC6C 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC4E10 8004DC70 E7A80058 */ swc1 $f8, 0x58($sp) -/* AC4E14 8004DC74 26720074 */ addiu $s2, $s3, 0x74 -/* AC4E18 8004DC78 02403025 */ move $a2, $s2 -/* AC4E1C 8004DC7C 27A4008C */ addiu $a0, $sp, 0x8c -/* AC4E20 8004DC80 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC4E24 8004DC84 02002825 */ move $a1, $s0 -/* AC4E28 8004DC88 267100AC */ addiu $s1, $s3, 0xac -/* AC4E2C 8004DC8C 02202025 */ move $a0, $s1 -/* AC4E30 8004DC90 0C00BBB9 */ jal func_8002EEE4 -/* AC4E34 8004DC94 8E6500A8 */ lw $a1, 0xa8($s3) -/* AC4E38 8004DC98 27A4006C */ addiu $a0, $sp, 0x6c -/* AC4E3C 8004DC9C 0C00BBB9 */ jal func_8002EEE4 -/* AC4E40 8004DCA0 8E650090 */ lw $a1, 0x90($s3) -/* AC4E44 8004DCA4 26680094 */ addiu $t0, $s3, 0x94 -/* AC4E48 8004DCA8 8D0B0000 */ lw $t3, ($t0) -/* AC4E4C 8004DCAC 27A500D0 */ addiu $a1, $sp, 0xd0 -/* AC4E50 8004DCB0 27A400A4 */ addiu $a0, $sp, 0xa4 -/* AC4E54 8004DCB4 ACAB0000 */ sw $t3, ($a1) -/* AC4E58 8004DCB8 8D090004 */ lw $t1, 4($t0) -/* AC4E5C 8004DCBC 02203025 */ move $a2, $s1 -/* AC4E60 8004DCC0 ACA90004 */ sw $t1, 4($a1) -/* AC4E64 8004DCC4 8D0B0008 */ lw $t3, 8($t0) -/* AC4E68 8004DCC8 ACAB0008 */ sw $t3, 8($a1) -/* AC4E6C 8004DCCC C7A400D4 */ lwc1 $f4, 0xd4($sp) -/* AC4E70 8004DCD0 C7A60058 */ lwc1 $f6, 0x58($sp) -/* AC4E74 8004DCD4 AFA8003C */ sw $t0, 0x3c($sp) -/* AC4E78 8004DCD8 46062280 */ add.s $f10, $f4, $f6 -/* AC4E7C 8004DCDC 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC4E80 8004DCE0 E7AA00D4 */ swc1 $f10, 0xd4($sp) -/* AC4E84 8004DCE4 866C002A */ lh $t4, 0x2a($s3) -/* AC4E88 8004DCE8 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 -/* AC4E8C 8004DCEC 27A500D0 */ addiu $a1, $sp, 0xd0 -/* AC4E90 8004DCF0 AC2CD3A0 */ sw $t4, %lo(D_8011D3A0)($at) -/* AC4E94 8004DCF4 8663015E */ lh $v1, 0x15e($s3) -/* AC4E98 8004DCF8 8FA8003C */ lw $t0, 0x3c($sp) -/* AC4E9C 8004DCFC 2401000A */ li $at, 10 -/* AC4EA0 8004DD00 50600006 */ beql $v1, $zero, .L8004DD1C -/* AC4EA4 8004DD04 8E6D00A8 */ lw $t5, 0xa8($s3) -/* AC4EA8 8004DD08 10610003 */ beq $v1, $at, .L8004DD18 -/* AC4EAC 8004DD0C 24010014 */ li $at, 20 -/* AC4EB0 8004DD10 1461012F */ bne $v1, $at, .L8004E1D0 -/* AC4EB4 8004DD14 2662002C */ addiu $v0, $s3, 0x2c -.L8004DD18: -/* AC4EB8 8004DD18 8E6D00A8 */ lw $t5, 0xa8($s3) -.L8004DD1C: -/* AC4EBC 8004DD1C 2667002C */ addiu $a3, $s3, 0x2c -/* AC4EC0 8004DD20 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC4EC4 8004DD24 AFAD00AC */ sw $t5, 0xac($sp) -/* AC4EC8 8004DD28 8E6E0090 */ lw $t6, 0x90($s3) -/* AC4ECC 8004DD2C AFAE00B0 */ sw $t6, 0xb0($sp) -/* AC4ED0 8004DD30 866F015E */ lh $t7, 0x15e($s3) -/* AC4ED4 8004DD34 8E7900A8 */ lw $t9, 0xa8($s3) -/* AC4ED8 8004DD38 25F80001 */ addiu $t8, $t7, 1 -/* AC4EDC 8004DD3C A678015E */ sh $t8, 0x15e($s3) -/* AC4EE0 8004DD40 ACF9000C */ sw $t9, 0xc($a3) -/* AC4EE4 8004DD44 C7A800A4 */ lwc1 $f8, 0xa4($sp) -/* AC4EE8 8004DD48 C6600008 */ lwc1 $f0, 8($s3) -/* AC4EEC 8004DD4C C7A400A4 */ lwc1 $f4, 0xa4($sp) -/* AC4EF0 8004DD50 4608003C */ c.lt.s $f0, $f8 -/* AC4EF4 8004DD54 00000000 */ nop -/* AC4EF8 8004DD58 45020005 */ bc1fl .L8004DD70 -/* AC4EFC 8004DD5C 46002303 */ div.s $f12, $f4, $f0 -/* AC4F00 8004DD60 44816000 */ mtc1 $at, $f12 -/* AC4F04 8004DD64 10000002 */ b .L8004DD70 -/* AC4F08 8004DD68 00000000 */ nop -/* AC4F0C 8004DD6C 46002303 */ div.s $f12, $f4, $f0 -.L8004DD70: -/* AC4F10 8004DD70 3C018014 */ lui $at, %hi(D_8013A0D0) -/* AC4F14 8004DD74 C430A0D0 */ lwc1 $f16, %lo(D_8013A0D0)($at) -/* AC4F18 8004DD78 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* AC4F1C 8004DD7C 44819000 */ mtc1 $at, $f18 -/* AC4F20 8004DD80 866A0028 */ lh $t2, 0x28($s3) -/* AC4F24 8004DD84 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC4F28 8004DD88 44813000 */ mtc1 $at, $f6 -/* AC4F2C 8004DD8C A4EA001C */ sh $t2, 0x1c($a3) -/* AC4F30 8004DD90 84E9001C */ lh $t1, 0x1c($a3) -/* AC4F34 8004DD94 460C3281 */ sub.s $f10, $f6, $f12 -/* AC4F38 8004DD98 C7A800A4 */ lwc1 $f8, 0xa4($sp) -/* AC4F3C 8004DD9C 44893000 */ mtc1 $t1, $f6 -/* AC4F40 8004DDA0 87AB00A8 */ lh $t3, 0xa8($sp) -/* AC4F44 8004DDA4 46085102 */ mul.s $f4, $f10, $f8 -/* AC4F48 8004DDA8 87A300AA */ lh $v1, 0xaa($sp) -/* AC4F4C 8004DDAC 87AD0092 */ lh $t5, 0x92($sp) -/* AC4F50 8004DDB0 006D7023 */ subu $t6, $v1, $t5 -/* AC4F54 8004DDB4 468032A0 */ cvt.s.w $f10, $f6 -/* AC4F58 8004DDB8 000EC400 */ sll $t8, $t6, 0x10 -/* AC4F5C 8004DDBC 0018CC03 */ sra $t9, $t8, 0x10 -/* AC4F60 8004DDC0 460A2203 */ div.s $f8, $f4, $f10 -/* AC4F64 8004DDC4 E7A800BC */ swc1 $f8, 0xbc($sp) -/* AC4F68 8004DDC8 C6660018 */ lwc1 $f6, 0x18($s3) -/* AC4F6C 8004DDCC C6600014 */ lwc1 $f0, 0x14($s3) -/* AC4F70 8004DDD0 448B4000 */ mtc1 $t3, $f8 -/* AC4F74 8004DDD4 46003101 */ sub.s $f4, $f6, $f0 -/* AC4F78 8004DDD8 468041A0 */ cvt.s.w $f6, $f8 -/* AC4F7C 8004DDDC 460C2282 */ mul.s $f10, $f4, $f12 -/* AC4F80 8004DDE0 C664001C */ lwc1 $f4, 0x1c($s3) -/* AC4F84 8004DDE4 460A0380 */ add.s $f14, $f0, $f10 -/* AC4F88 8004DDE8 46043282 */ mul.s $f10, $f6, $f4 -/* AC4F8C 8004DDEC 00000000 */ nop -/* AC4F90 8004DDF0 46107102 */ mul.s $f4, $f14, $f16 -/* AC4F94 8004DDF4 46005207 */ neg.s $f8, $f10 -/* AC4F98 8004DDF8 4600418D */ trunc.w.s $f6, $f8 -/* AC4F9C 8004DDFC 46122280 */ add.s $f10, $f4, $f18 -/* AC4FA0 8004DE00 440F3000 */ mfc1 $t7, $f6 -/* AC4FA4 8004DE04 4600520D */ trunc.w.s $f8, $f10 -/* AC4FA8 8004DE08 44094000 */ mfc1 $t1, $f8 -/* AC4FAC 8004DE0C 00000000 */ nop -/* AC4FB0 8004DE10 012F5821 */ addu $t3, $t1, $t7 -/* AC4FB4 8004DE14 A7AB00A0 */ sh $t3, 0xa0($sp) -/* AC4FB8 8004DE18 C6660010 */ lwc1 $f6, 0x10($s3) -/* AC4FBC 8004DE1C C662000C */ lwc1 $f2, 0xc($s3) -/* AC4FC0 8004DE20 8662002A */ lh $v0, 0x2a($s3) -/* AC4FC4 8004DE24 46023101 */ sub.s $f4, $f6, $f2 -/* AC4FC8 8004DE28 304C0010 */ andi $t4, $v0, 0x10 -/* AC4FCC 8004DE2C 30490020 */ andi $t1, $v0, 0x20 -/* AC4FD0 8004DE30 460C2282 */ mul.s $f10, $f4, $f12 -/* AC4FD4 8004DE34 11800013 */ beqz $t4, .L8004DE84 -/* AC4FD8 8004DE38 460A1380 */ add.s $f14, $f2, $f10 -/* AC4FDC 8004DE3C 07210009 */ bgez $t9, .L8004DE64 -/* AC4FE0 8004DE40 00000000 */ nop -/* AC4FE4 8004DE44 46107202 */ mul.s $f8, $f14, $f16 -/* AC4FE8 8004DE48 46124180 */ add.s $f6, $f8, $f18 -/* AC4FEC 8004DE4C 4600310D */ trunc.w.s $f4, $f6 -/* AC4FF0 8004DE50 440B2000 */ mfc1 $t3, $f4 -/* AC4FF4 8004DE54 00000000 */ nop -/* AC4FF8 8004DE58 006B6021 */ addu $t4, $v1, $t3 -/* AC4FFC 8004DE5C 10000054 */ b .L8004DFB0 -/* AC5000 8004DE60 A7AC00A2 */ sh $t4, 0xa2($sp) -.L8004DE64: -/* AC5004 8004DE64 46107282 */ mul.s $f10, $f14, $f16 -/* AC5008 8004DE68 46125200 */ add.s $f8, $f10, $f18 -/* AC500C 8004DE6C 4600418D */ trunc.w.s $f6, $f8 -/* AC5010 8004DE70 44193000 */ mfc1 $t9, $f6 -/* AC5014 8004DE74 00000000 */ nop -/* AC5018 8004DE78 00795023 */ subu $t2, $v1, $t9 -/* AC501C 8004DE7C 1000004C */ b .L8004DFB0 -/* AC5020 8004DE80 A7AA00A2 */ sh $t2, 0xa2($sp) -.L8004DE84: -/* AC5024 8004DE84 1120001A */ beqz $t1, .L8004DEF0 -/* AC5028 8004DE88 87A300AA */ lh $v1, 0xaa($sp) -/* AC502C 8004DE8C 87A300AA */ lh $v1, 0xaa($sp) -/* AC5030 8004DE90 87AF0092 */ lh $t7, 0x92($sp) -/* AC5034 8004DE94 006F5823 */ subu $t3, $v1, $t7 -/* AC5038 8004DE98 000B6400 */ sll $t4, $t3, 0x10 -/* AC503C 8004DE9C 000C6C03 */ sra $t5, $t4, 0x10 -/* AC5040 8004DEA0 05A1000A */ bgez $t5, .L8004DECC -/* AC5044 8004DEA4 00000000 */ nop -/* AC5048 8004DEA8 46107102 */ mul.s $f4, $f14, $f16 -/* AC504C 8004DEAC 24798001 */ addiu $t9, $v1, -0x7fff -/* AC5050 8004DEB0 46122280 */ add.s $f10, $f4, $f18 -/* AC5054 8004DEB4 4600520D */ trunc.w.s $f8, $f10 -/* AC5058 8004DEB8 440B4000 */ mfc1 $t3, $f8 -/* AC505C 8004DEBC 00000000 */ nop -/* AC5060 8004DEC0 032B6023 */ subu $t4, $t9, $t3 -/* AC5064 8004DEC4 1000003A */ b .L8004DFB0 -/* AC5068 8004DEC8 A7AC00A2 */ sh $t4, 0xa2($sp) -.L8004DECC: -/* AC506C 8004DECC 46107182 */ mul.s $f6, $f14, $f16 -/* AC5070 8004DED0 24788001 */ addiu $t8, $v1, -0x7fff -/* AC5074 8004DED4 46123100 */ add.s $f4, $f6, $f18 -/* AC5078 8004DED8 4600228D */ trunc.w.s $f10, $f4 -/* AC507C 8004DEDC 44195000 */ mfc1 $t9, $f10 -/* AC5080 8004DEE0 00000000 */ nop -/* AC5084 8004DEE4 03195821 */ addu $t3, $t8, $t9 -/* AC5088 8004DEE8 10000031 */ b .L8004DFB0 -/* AC508C 8004DEEC A7AB00A2 */ sh $t3, 0xa2($sp) -.L8004DEF0: -/* AC5090 8004DEF0 87AC0092 */ lh $t4, 0x92($sp) -/* AC5094 8004DEF4 006C1023 */ subu $v0, $v1, $t4 -/* AC5098 8004DEF8 00021400 */ sll $v0, $v0, 0x10 -/* AC509C 8004DEFC 00021403 */ sra $v0, $v0, 0x10 -/* AC50A0 8004DF00 04400003 */ bltz $v0, .L8004DF10 -/* AC50A4 8004DF04 00022023 */ negu $a0, $v0 -/* AC50A8 8004DF08 10000001 */ b .L8004DF10 -/* AC50AC 8004DF0C 00402025 */ move $a0, $v0 -.L8004DF10: -/* AC50B0 8004DF10 28813FFF */ slti $at, $a0, 0x3fff -/* AC50B4 8004DF14 10200013 */ beqz $at, .L8004DF64 -/* AC50B8 8004DF18 00000000 */ nop -/* AC50BC 8004DF1C 04410009 */ bgez $v0, .L8004DF44 -/* AC50C0 8004DF20 00000000 */ nop -/* AC50C4 8004DF24 46107202 */ mul.s $f8, $f14, $f16 -/* AC50C8 8004DF28 46124180 */ add.s $f6, $f8, $f18 -/* AC50CC 8004DF2C 4600310D */ trunc.w.s $f4, $f6 -/* AC50D0 8004DF30 44092000 */ mfc1 $t1, $f4 -/* AC50D4 8004DF34 00000000 */ nop -/* AC50D8 8004DF38 00697821 */ addu $t7, $v1, $t1 -/* AC50DC 8004DF3C 1000001C */ b .L8004DFB0 -/* AC50E0 8004DF40 A7AF00A2 */ sh $t7, 0xa2($sp) -.L8004DF44: -/* AC50E4 8004DF44 46107282 */ mul.s $f10, $f14, $f16 -/* AC50E8 8004DF48 46125200 */ add.s $f8, $f10, $f18 -/* AC50EC 8004DF4C 4600418D */ trunc.w.s $f6, $f8 -/* AC50F0 8004DF50 440C3000 */ mfc1 $t4, $f6 -/* AC50F4 8004DF54 00000000 */ nop -/* AC50F8 8004DF58 006C6823 */ subu $t5, $v1, $t4 -/* AC50FC 8004DF5C 10000014 */ b .L8004DFB0 -/* AC5100 8004DF60 A7AD00A2 */ sh $t5, 0xa2($sp) -.L8004DF64: -/* AC5104 8004DF64 0441000A */ bgez $v0, .L8004DF90 -/* AC5108 8004DF68 00000000 */ nop -/* AC510C 8004DF6C 46107102 */ mul.s $f4, $f14, $f16 -/* AC5110 8004DF70 24698001 */ addiu $t1, $v1, -0x7fff -/* AC5114 8004DF74 46122280 */ add.s $f10, $f4, $f18 -/* AC5118 8004DF78 4600520D */ trunc.w.s $f8, $f10 -/* AC511C 8004DF7C 440B4000 */ mfc1 $t3, $f8 -/* AC5120 8004DF80 00000000 */ nop -/* AC5124 8004DF84 012B6023 */ subu $t4, $t1, $t3 -/* AC5128 8004DF88 10000009 */ b .L8004DFB0 -/* AC512C 8004DF8C A7AC00A2 */ sh $t4, 0xa2($sp) -.L8004DF90: -/* AC5130 8004DF90 46107182 */ mul.s $f6, $f14, $f16 -/* AC5134 8004DF94 246A8001 */ addiu $t2, $v1, -0x7fff -/* AC5138 8004DF98 46123100 */ add.s $f4, $f6, $f18 -/* AC513C 8004DF9C 4600228D */ trunc.w.s $f10, $f4 -/* AC5140 8004DFA0 44095000 */ mfc1 $t1, $f10 -/* AC5144 8004DFA4 00000000 */ nop -/* AC5148 8004DFA8 01495821 */ addu $t3, $t2, $t1 -/* AC514C 8004DFAC A7AB00A2 */ sh $t3, 0xa2($sp) -.L8004DFB0: -/* AC5150 8004DFB0 3C018014 */ lui $at, %hi(D_8013A0D4) -/* AC5154 8004DFB4 C420A0D4 */ lwc1 $f0, %lo(D_8013A0D4)($at) -/* AC5158 8004DFB8 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC515C 8004DFBC 44813000 */ mtc1 $at, $f6 -/* AC5160 8004DFC0 C7AE00A4 */ lwc1 $f14, 0xa4($sp) -/* AC5164 8004DFC4 87AC00A2 */ lh $t4, 0xa2($sp) -/* AC5168 8004DFC8 46003101 */ sub.s $f4, $f6, $f0 -/* AC516C 8004DFCC C7A600BC */ lwc1 $f6, 0xbc($sp) -/* AC5170 8004DFD0 87AD00A0 */ lh $t5, 0xa0($sp) -/* AC5174 8004DFD4 A7AC0080 */ sh $t4, 0x80($sp) -/* AC5178 8004DFD8 46047282 */ mul.s $f10, $f14, $f4 -/* AC517C 8004DFDC A7AD0082 */ sh $t5, 0x82($sp) -/* AC5180 8004DFE0 24F10010 */ addiu $s1, $a3, 0x10 -/* AC5184 8004DFE4 46003202 */ mul.s $f8, $f6, $f0 -/* AC5188 8004DFE8 02202025 */ move $a0, $s1 -/* AC518C 8004DFEC 27A600A4 */ addiu $a2, $sp, 0xa4 -/* AC5190 8004DFF0 460A4100 */ add.s $f4, $f8, $f10 -/* AC5194 8004DFF4 E7A400A4 */ swc1 $f4, 0xa4($sp) -/* AC5198 8004DFF8 8D0F0000 */ lw $t7, ($t0) -/* AC519C 8004DFFC ACAF0000 */ sw $t7, ($a1) -/* AC51A0 8004E000 8D0E0004 */ lw $t6, 4($t0) -/* AC51A4 8004E004 ACAE0004 */ sw $t6, 4($a1) -/* AC51A8 8004E008 8D0F0008 */ lw $t7, 8($t0) -/* AC51AC 8004E00C ACAF0008 */ sw $t7, 8($a1) -/* AC51B0 8004E010 C7A600D4 */ lwc1 $f6, 0xd4($sp) -/* AC51B4 8004E014 C7A80058 */ lwc1 $f8, 0x58($sp) -/* AC51B8 8004E018 AFA70038 */ sw $a3, 0x38($sp) -/* AC51BC 8004E01C E7AE00B8 */ swc1 $f14, 0xb8($sp) -/* AC51C0 8004E020 46083280 */ add.s $f10, $f6, $f8 -/* AC51C4 8004E024 0C010F0A */ jal func_80043C28 -/* AC51C8 8004E028 E7AA00D4 */ swc1 $f10, 0xd4($sp) -/* AC51CC 8004E02C 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* AC51D0 8004E030 C7AE00B8 */ lwc1 $f14, 0xb8($sp) -/* AC51D4 8004E034 44813000 */ mtc1 $at, $f6 -/* AC51D8 8004E038 2418000E */ li $t8, 14 -/* AC51DC 8004E03C AFB80084 */ sw $t8, 0x84($sp) -/* AC51E0 8004E040 46067202 */ mul.s $f8, $f14, $f6 -/* AC51E4 8004E044 E7AE00A4 */ swc1 $f14, 0xa4($sp) -/* AC51E8 8004E048 C6640004 */ lwc1 $f4, 4($s3) -/* AC51EC 8004E04C C7A6008C */ lwc1 $f6, 0x8c($sp) -/* AC51F0 8004E050 27B200C4 */ addiu $s2, $sp, 0xc4 -/* AC51F4 8004E054 00008025 */ move $s0, $zero -/* AC51F8 8004E058 02402025 */ move $a0, $s2 -/* AC51FC 8004E05C 46082280 */ add.s $f10, $f4, $f8 -/* AC5200 8004E060 02202825 */ move $a1, $s1 -/* AC5204 8004E064 27A6009C */ addiu $a2, $sp, 0x9c -/* AC5208 8004E068 46065101 */ sub.s $f4, $f10, $f6 -/* AC520C 8004E06C 46062200 */ add.s $f8, $f4, $f6 -/* AC5210 8004E070 0C010F0A */ jal func_80043C28 -/* AC5214 8004E074 E7A8009C */ swc1 $f8, 0x9c($sp) -/* AC5218 8004E078 8679002A */ lh $t9, 0x2a($s3) -/* AC521C 8004E07C 332A0080 */ andi $t2, $t9, 0x80 -/* AC5220 8004E080 15400028 */ bnez $t2, .L8004E124 -/* AC5224 8004E084 00000000 */ nop -/* AC5228 8004E088 8E64008C */ lw $a0, 0x8c($s3) -.L8004E08C: -/* AC522C 8004E08C 3C010001 */ lui $at, (0x00011E60 >> 16) # lui $at, 1 -/* AC5230 8004E090 34211E60 */ ori $at, (0x00011E60 & 0xFFFF) # ori $at, $at, 0x1e60 -/* AC5234 8004E094 27A900AC */ addiu $t1, $sp, 0xac -/* AC5238 8004E098 240B0002 */ li $t3, 2 -/* AC523C 8004E09C AFAB0014 */ sw $t3, 0x14($sp) -/* AC5240 8004E0A0 AFA90010 */ sw $t1, 0x10($sp) -/* AC5244 8004E0A4 02203025 */ move $a2, $s1 -/* AC5248 8004E0A8 02403825 */ move $a3, $s2 -/* AC524C 8004E0AC 0C0189AC */ jal func_800626B0 -/* AC5250 8004E0B0 00812821 */ addu $a1, $a0, $at -/* AC5254 8004E0B4 14400005 */ bnez $v0, .L8004E0CC -/* AC5258 8004E0B8 02602025 */ move $a0, $s3 -/* AC525C 8004E0BC 02202825 */ move $a1, $s1 -/* AC5260 8004E0C0 0C010FCD */ jal func_80043F34 -/* AC5264 8004E0C4 02403025 */ move $a2, $s2 -/* AC5268 8004E0C8 10400016 */ beqz $v0, .L8004E124 -.L8004E0CC: -/* AC526C 8004E0CC 00101040 */ sll $v0, $s0, 1 -/* AC5270 8004E0D0 3C0C8012 */ lui $t4, %hi(D_8011D3B0) -/* AC5274 8004E0D4 3C0F8012 */ lui $t7, %hi(D_8011D3CC) -/* AC5278 8004E0D8 01826021 */ addu $t4, $t4, $v0 -/* AC527C 8004E0DC 01E27821 */ addu $t7, $t7, $v0 -/* AC5280 8004E0E0 858CD3B0 */ lh $t4, %lo(D_8011D3B0)($t4) -/* AC5284 8004E0E4 87AD0080 */ lh $t5, 0x80($sp) -/* AC5288 8004E0E8 85EFD3CC */ lh $t7, %lo(D_8011D3CC)($t7) -/* AC528C 8004E0EC 87B80082 */ lh $t8, 0x82($sp) -/* AC5290 8004E0F0 018D7021 */ addu $t6, $t4, $t5 -/* AC5294 8004E0F4 A7AE00A2 */ sh $t6, 0xa2($sp) -/* AC5298 8004E0F8 01F8C821 */ addu $t9, $t7, $t8 -/* AC529C 8004E0FC A7B900A0 */ sh $t9, 0xa0($sp) -/* AC52A0 8004E100 02402025 */ move $a0, $s2 -/* AC52A4 8004E104 02202825 */ move $a1, $s1 -/* AC52A8 8004E108 0C010F0A */ jal func_80043C28 -/* AC52AC 8004E10C 27A6009C */ addiu $a2, $sp, 0x9c -/* AC52B0 8004E110 8FAA0084 */ lw $t2, 0x84($sp) -/* AC52B4 8004E114 26100001 */ addiu $s0, $s0, 1 -/* AC52B8 8004E118 020A082A */ slt $at, $s0, $t2 -/* AC52BC 8004E11C 5420FFDB */ bnezl $at, .L8004E08C -/* AC52C0 8004E120 8E64008C */ lw $a0, 0x8c($s3) -.L8004E124: -/* AC52C4 8004E124 3C048014 */ lui $a0, %hi(D_801392DC) -/* AC52C8 8004E128 248492DC */ addiu $a0, %lo(D_801392DC) # addiu $a0, $a0, -0x6d24 -/* AC52CC 8004E12C 0C00084C */ jal osSyncPrintf -/* AC52D0 8004E130 02002825 */ move $a1, $s0 -/* AC52D4 8004E134 8669014C */ lh $t1, 0x14c($s3) -/* AC52D8 8004E138 8FA50038 */ lw $a1, 0x38($sp) -/* AC52DC 8004E13C 24020001 */ li $v0, 1 -/* AC52E0 8004E140 312BFFF3 */ andi $t3, $t1, 0xfff3 -/* AC52E4 8004E144 A66B014C */ sh $t3, 0x14c($s3) -/* AC52E8 8004E148 84A3001C */ lh $v1, 0x1c($a1) -/* AC52EC 8004E14C 87AE0092 */ lh $t6, 0x92($sp) -/* AC52F0 8004E150 87AD00A2 */ lh $t5, 0xa2($sp) -/* AC52F4 8004E154 246C0001 */ addiu $t4, $v1, 1 -/* AC52F8 8004E158 01830019 */ multu $t4, $v1 -/* AC52FC 8004E15C 01AE7823 */ subu $t7, $t5, $t6 -/* AC5300 8004E160 000FC400 */ sll $t8, $t7, 0x10 -/* AC5304 8004E164 0018CC03 */ sra $t9, $t8, 0x10 -/* AC5308 8004E168 44992000 */ mtc1 $t9, $f4 -/* AC530C 8004E16C 00000000 */ nop -/* AC5310 8004E170 468021A0 */ cvt.s.w $f6, $f4 -/* AC5314 8004E174 00002012 */ mflo $a0 -/* AC5318 8004E178 00042043 */ sra $a0, $a0, 1 -/* AC531C 8004E17C 44845000 */ mtc1 $a0, $f10 -/* AC5320 8004E180 00000000 */ nop -/* AC5324 8004E184 46805020 */ cvt.s.w $f0, $f10 -/* AC5328 8004E188 46003203 */ div.s $f8, $f6, $f0 -/* AC532C 8004E18C E4A80004 */ swc1 $f8, 4($a1) -/* AC5330 8004E190 87A90090 */ lh $t1, 0x90($sp) -/* AC5334 8004E194 87AA00A0 */ lh $t2, 0xa0($sp) -/* AC5338 8004E198 01495823 */ subu $t3, $t2, $t1 -/* AC533C 8004E19C 000B6400 */ sll $t4, $t3, 0x10 -/* AC5340 8004E1A0 000C6C03 */ sra $t5, $t4, 0x10 -/* AC5344 8004E1A4 448D5000 */ mtc1 $t5, $f10 -/* AC5348 8004E1A8 00000000 */ nop -/* AC534C 8004E1AC 46805120 */ cvt.s.w $f4, $f10 -/* AC5350 8004E1B0 46002183 */ div.s $f6, $f4, $f0 -/* AC5354 8004E1B4 E4A60008 */ swc1 $f6, 8($a1) -/* AC5358 8004E1B8 C7AA008C */ lwc1 $f10, 0x8c($sp) -/* AC535C 8004E1BC C7A8009C */ lwc1 $f8, 0x9c($sp) -/* AC5360 8004E1C0 460A4101 */ sub.s $f4, $f8, $f10 -/* AC5364 8004E1C4 46002183 */ div.s $f6, $f4, $f0 -/* AC5368 8004E1C8 1000009E */ b .L8004E444 -/* AC536C 8004E1CC E4A60000 */ swc1 $f6, ($a1) -.L8004E1D0: -/* AC5370 8004E1D0 8443001C */ lh $v1, 0x1c($v0) -/* AC5374 8004E1D4 50600064 */ beql $v1, $zero, .L8004E368 -/* AC5378 8004E1D8 866B014C */ lh $t3, 0x14c($s3) -/* AC537C 8004E1DC 44832000 */ mtc1 $v1, $f4 -/* AC5380 8004E1E0 C6000000 */ lwc1 $f0, ($s0) -/* AC5384 8004E1E4 C4480010 */ lwc1 $f8, 0x10($v0) -/* AC5388 8004E1E8 468021A0 */ cvt.s.w $f6, $f4 -/* AC538C 8004E1EC C6020004 */ lwc1 $f2, 4($s0) -/* AC5390 8004E1F0 C60C0008 */ lwc1 $f12, 8($s0) -/* AC5394 8004E1F4 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC5398 8004E1F8 02402025 */ move $a0, $s2 -/* AC539C 8004E1FC 46004281 */ sub.s $f10, $f8, $f0 -/* AC53A0 8004E200 02002825 */ move $a1, $s0 -/* AC53A4 8004E204 27A6009C */ addiu $a2, $sp, 0x9c -/* AC53A8 8004E208 46065203 */ div.s $f8, $f10, $f6 -/* AC53AC 8004E20C 46080100 */ add.s $f4, $f0, $f8 -/* AC53B0 8004E210 E6040000 */ swc1 $f4, ($s0) -/* AC53B4 8004E214 844E001C */ lh $t6, 0x1c($v0) -/* AC53B8 8004E218 C44A0014 */ lwc1 $f10, 0x14($v0) -/* AC53BC 8004E21C 448E4000 */ mtc1 $t6, $f8 -/* AC53C0 8004E220 46025181 */ sub.s $f6, $f10, $f2 -/* AC53C4 8004E224 46804120 */ cvt.s.w $f4, $f8 -/* AC53C8 8004E228 46043283 */ div.s $f10, $f6, $f4 -/* AC53CC 8004E22C 460A1200 */ add.s $f8, $f2, $f10 -/* AC53D0 8004E230 E6080004 */ swc1 $f8, 4($s0) -/* AC53D4 8004E234 844F001C */ lh $t7, 0x1c($v0) -/* AC53D8 8004E238 C4460018 */ lwc1 $f6, 0x18($v0) -/* AC53DC 8004E23C 448F5000 */ mtc1 $t7, $f10 -/* AC53E0 8004E240 460C3101 */ sub.s $f4, $f6, $f12 -/* AC53E4 8004E244 46805220 */ cvt.s.w $f8, $f10 -/* AC53E8 8004E248 46082183 */ div.s $f6, $f4, $f8 -/* AC53EC 8004E24C 46066280 */ add.s $f10, $f12, $f6 -/* AC53F0 8004E250 E60A0008 */ swc1 $f10, 8($s0) -/* AC53F4 8004E254 8458001C */ lh $t8, 0x1c($v0) -/* AC53F8 8004E258 C4440000 */ lwc1 $f4, ($v0) -/* AC53FC 8004E25C 87AD0092 */ lh $t5, 0x92($sp) -/* AC5400 8004E260 44984000 */ mtc1 $t8, $f8 -/* AC5404 8004E264 87AB0090 */ lh $t3, 0x90($sp) -/* AC5408 8004E268 468041A0 */ cvt.s.w $f6, $f8 -/* AC540C 8004E26C C7A8008C */ lwc1 $f8, 0x8c($sp) -/* AC5410 8004E270 46062282 */ mul.s $f10, $f4, $f6 -/* AC5414 8004E274 44813000 */ mtc1 $at, $f6 -/* AC5418 8004E278 46085100 */ add.s $f4, $f10, $f8 -/* AC541C 8004E27C 46062280 */ add.s $f10, $f4, $f6 -/* AC5420 8004E280 E7AA009C */ swc1 $f10, 0x9c($sp) -/* AC5424 8004E284 8459001C */ lh $t9, 0x1c($v0) -/* AC5428 8004E288 C4480004 */ lwc1 $f8, 4($v0) -/* AC542C 8004E28C 44992000 */ mtc1 $t9, $f4 -/* AC5430 8004E290 00000000 */ nop -/* AC5434 8004E294 468021A0 */ cvt.s.w $f6, $f4 -/* AC5438 8004E298 46064282 */ mul.s $f10, $f8, $f6 -/* AC543C 8004E29C 4600510D */ trunc.w.s $f4, $f10 -/* AC5440 8004E2A0 440C2000 */ mfc1 $t4, $f4 -/* AC5444 8004E2A4 00000000 */ nop -/* AC5448 8004E2A8 01AC7021 */ addu $t6, $t5, $t4 -/* AC544C 8004E2AC A7AE00A2 */ sh $t6, 0xa2($sp) -/* AC5450 8004E2B0 844F001C */ lh $t7, 0x1c($v0) -/* AC5454 8004E2B4 C4480008 */ lwc1 $f8, 8($v0) -/* AC5458 8004E2B8 AFA20038 */ sw $v0, 0x38($sp) -/* AC545C 8004E2BC 448F3000 */ mtc1 $t7, $f6 -/* AC5460 8004E2C0 00000000 */ nop -/* AC5464 8004E2C4 468032A0 */ cvt.s.w $f10, $f6 -/* AC5468 8004E2C8 460A4102 */ mul.s $f4, $f8, $f10 -/* AC546C 8004E2CC 4600218D */ trunc.w.s $f6, $f4 -/* AC5470 8004E2D0 44093000 */ mfc1 $t1, $f6 -/* AC5474 8004E2D4 00000000 */ nop -/* AC5478 8004E2D8 01696821 */ addu $t5, $t3, $t1 -/* AC547C 8004E2DC 0C010F0A */ jal func_80043C28 -/* AC5480 8004E2E0 A7AD00A0 */ sh $t5, 0xa0($sp) -/* AC5484 8004E2E4 8FAC0048 */ lw $t4, 0x48($sp) -/* AC5488 8004E2E8 8E4F0000 */ lw $t7, ($s2) -/* AC548C 8004E2EC 3C063F00 */ lui $a2, 0x3f00 -/* AC5490 8004E2F0 3C073F80 */ lui $a3, 0x3f80 -/* AC5494 8004E2F4 AD8F0000 */ sw $t7, ($t4) -/* AC5498 8004E2F8 8E4E0004 */ lw $t6, 4($s2) -/* AC549C 8004E2FC AD8E0004 */ sw $t6, 4($t4) -/* AC54A0 8004E300 8E4F0008 */ lw $t7, 8($s2) -/* AC54A4 8004E304 AD8F0008 */ sw $t7, 8($t4) -/* AC54A8 8004E308 C66E00FC */ lwc1 $f14, 0xfc($s3) -/* AC54AC 8004E30C 0C010E27 */ jal func_8004389C -/* AC54B0 8004E310 C66C0020 */ lwc1 $f12, 0x20($s3) -/* AC54B4 8004E314 E66000FC */ swc1 $f0, 0xfc($s3) -/* AC54B8 8004E318 00002025 */ move $a0, $zero -/* AC54BC 8004E31C 8665015A */ lh $a1, 0x15a($s3) -/* AC54C0 8004E320 3C063F00 */ lui $a2, 0x3f00 -/* AC54C4 8004E324 0C010E47 */ jal func_8004391C -/* AC54C8 8004E328 2407000A */ li $a3, 10 -/* AC54CC 8004E32C A662015A */ sh $v0, 0x15a($s3) -/* AC54D0 8004E330 02602025 */ move $a0, $s3 -/* AC54D4 8004E334 0C011429 */ jal func_800450A4 -/* AC54D8 8004E338 8E650024 */ lw $a1, 0x24($s3) -/* AC54DC 8004E33C E6600100 */ swc1 $f0, 0x100($s3) -/* AC54E0 8004E340 8FA60048 */ lw $a2, 0x48($sp) -/* AC54E4 8004E344 02602025 */ move $a0, $s3 -/* AC54E8 8004E348 0C010FCD */ jal func_80043F34 -/* AC54EC 8004E34C 02002825 */ move $a1, $s0 -/* AC54F0 8004E350 8FB80038 */ lw $t8, 0x38($sp) -/* AC54F4 8004E354 8719001C */ lh $t9, 0x1c($t8) -/* AC54F8 8004E358 272AFFFF */ addiu $t2, $t9, -1 -/* AC54FC 8004E35C 10000004 */ b .L8004E370 -/* AC5500 8004E360 A70A001C */ sh $t2, 0x1c($t8) -/* AC5504 8004E364 866B014C */ lh $t3, 0x14c($s3) -.L8004E368: -/* AC5508 8004E368 35690410 */ ori $t1, $t3, 0x410 -/* AC550C 8004E36C A669014C */ sh $t1, 0x14c($s3) -.L8004E370: -/* AC5510 8004E370 866D014C */ lh $t5, 0x14c($s3) -/* AC5514 8004E374 3C018012 */ lui $at, %hi(D_8011D3A0) -/* AC5518 8004E378 02602025 */ move $a0, $s3 -/* AC551C 8004E37C 31AC0008 */ andi $t4, $t5, 8 -/* AC5520 8004E380 51800030 */ beql $t4, $zero, .L8004E444 -/* AC5524 8004E384 24020001 */ li $v0, 1 -/* AC5528 8004E388 0C010ED8 */ jal func_80043B60 -/* AC552C 8004E38C AC20D3A0 */ sw $zero, %lo(D_8011D3A0)($at) -/* AC5530 8004E390 44804000 */ mtc1 $zero, $f8 -/* AC5534 8004E394 3C018014 */ lui $at, %hi(D_8013A0D8) -/* AC5538 8004E398 C66400D8 */ lwc1 $f4, 0xd8($s3) -/* AC553C 8004E39C E6680100 */ swc1 $f8, 0x100($s3) -/* AC5540 8004E3A0 C42AA0D8 */ lwc1 $f10, %lo(D_8013A0D8)($at) -/* AC5544 8004E3A4 3C0E8016 */ lui $t6, %hi(D_8015BD7C) # $t6, 0x8016 -/* AC5548 8004E3A8 4604503C */ c.lt.s $f10, $f4 -/* AC554C 8004E3AC 00000000 */ nop -/* AC5550 8004E3B0 4503001E */ bc1tl .L8004E42C -/* AC5554 8004E3B4 866E014C */ lh $t6, 0x14c($s3) -/* AC5558 8004E3B8 8DCEBD7C */ lw $t6, %lo(D_8015BD7C)($t6) -/* AC555C 8004E3BC 3C01FFFF */ lui $at, (0xFFFF7FFF >> 16) # lui $at, 0xffff -/* AC5560 8004E3C0 34217FFF */ ori $at, (0xFFFF7FFF & 0xFFFF) # ori $at, $at, 0x7fff -/* AC5564 8004E3C4 95C20020 */ lhu $v0, 0x20($t6) -/* AC5568 8004E3C8 00417827 */ nor $t7, $v0, $at -/* AC556C 8004E3CC 11E00016 */ beqz $t7, .L8004E428 -/* AC5570 8004E3D0 2401BFFF */ li $at, -16385 -/* AC5574 8004E3D4 0041C827 */ nor $t9, $v0, $at -/* AC5578 8004E3D8 13200013 */ beqz $t9, .L8004E428 -/* AC557C 8004E3DC 2401FFFD */ li $at, -3 -/* AC5580 8004E3E0 00415027 */ nor $t2, $v0, $at -/* AC5584 8004E3E4 11400010 */ beqz $t2, .L8004E428 -/* AC5588 8004E3E8 2401FFFB */ li $at, -5 -/* AC558C 8004E3EC 0041C027 */ nor $t8, $v0, $at -/* AC5590 8004E3F0 1300000D */ beqz $t8, .L8004E428 -/* AC5594 8004E3F4 2401FFF7 */ li $at, -9 -/* AC5598 8004E3F8 00415827 */ nor $t3, $v0, $at -/* AC559C 8004E3FC 1160000A */ beqz $t3, .L8004E428 -/* AC55A0 8004E400 2401FFFE */ li $at, -2 -/* AC55A4 8004E404 00414827 */ nor $t1, $v0, $at -/* AC55A8 8004E408 11200007 */ beqz $t1, .L8004E428 -/* AC55AC 8004E40C 2401FFEF */ li $at, -17 -/* AC55B0 8004E410 00416827 */ nor $t5, $v0, $at -/* AC55B4 8004E414 11A00004 */ beqz $t5, .L8004E428 -/* AC55B8 8004E418 2401DFFF */ li $at, -8193 -/* AC55BC 8004E41C 00416027 */ nor $t4, $v0, $at -/* AC55C0 8004E420 55800008 */ bnezl $t4, .L8004E444 -/* AC55C4 8004E424 24020001 */ li $v0, 1 -.L8004E428: -/* AC55C8 8004E428 866E014C */ lh $t6, 0x14c($s3) -.L8004E42C: -/* AC55CC 8004E42C 35CF0004 */ ori $t7, $t6, 4 -/* AC55D0 8004E430 A66F014C */ sh $t7, 0x14c($s3) -/* AC55D4 8004E434 8679014C */ lh $t9, 0x14c($s3) -/* AC55D8 8004E438 332AFFF7 */ andi $t2, $t9, 0xfff7 -/* AC55DC 8004E43C A66A014C */ sh $t2, 0x14c($s3) -/* AC55E0 8004E440 24020001 */ li $v0, 1 -.L8004E444: -/* AC55E4 8004E444 8FBF002C */ lw $ra, 0x2c($sp) -/* AC55E8 8004E448 8FB0001C */ lw $s0, 0x1c($sp) -/* AC55EC 8004E44C 8FB10020 */ lw $s1, 0x20($sp) -/* AC55F0 8004E450 8FB20024 */ lw $s2, 0x24($sp) -/* AC55F4 8004E454 8FB30028 */ lw $s3, 0x28($sp) -/* AC55F8 8004E458 03E00008 */ jr $ra -/* AC55FC 8004E45C 27BD00E8 */ addiu $sp, $sp, 0xe8 diff --git a/asm/non_matchings/code/z_camera/Camera_KeepOn4.s b/asm/non_matchings/code/z_camera/Camera_KeepOn4.s index 2a3fd67c3a..3acb4bcfa8 100644 --- a/asm/non_matchings/code/z_camera/Camera_KeepOn4.s +++ b/asm/non_matchings/code/z_camera/Camera_KeepOn4.s @@ -154,7 +154,7 @@ glabel Camera_KeepOn4 /* AC56E0 8004E540 AD8B01DC */ sw $t3, 0x1dc($t4) .L8004E544: /* AC56E4 8004E544 8E240090 */ lw $a0, 0x90($s1) -/* AC56E8 8004E548 0C00B721 */ jal Player_GetCameraYOffset +/* AC56E8 8004E548 0C00B721 */ jal Player_GetHeight /* AC56EC 8004E54C AFA20034 */ sw $v0, 0x34($sp) /* AC56F0 8004E550 862D014C */ lh $t5, 0x14c($s1) /* AC56F4 8004E554 8622015E */ lh $v0, 0x15e($s1) @@ -568,10 +568,10 @@ glabel L8004EB20 /* AC5CDC 8004EB3C C7AE0088 */ lwc1 $f14, 0x88($sp) .L8004EB40: /* AC5CE0 8004EB40 24080001 */ li $t0, 1 -/* AC5CE4 8004EB44 3C018012 */ lui $at, %hi(D_8011D3E8) # $at, 0x8012 -/* AC5CE8 8004EB48 AC28D3E8 */ sw $t0, %lo(D_8011D3E8)($at) +/* AC5CE4 8004EB44 3C018012 */ lui $at, %hi(sUpdateCameraDirection) # $at, 0x8012 +/* AC5CE8 8004EB48 AC28D3E8 */ sw $t0, %lo(sUpdateCameraDirection)($at) /* AC5CEC 8004EB4C 862A001C */ lh $t2, 0x1c($s1) -/* AC5CF0 8004EB50 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 +/* AC5CF0 8004EB50 3C018012 */ lui $at, %hi(sCameraInterfaceFlags) # $at, 0x8012 /* AC5CF4 8004EB54 26250050 */ addiu $a1, $s1, 0x50 /* AC5CF8 8004EB58 2626005C */ addiu $a2, $s1, 0x5c /* AC5CFC 8004EB5C AFA60044 */ sw $a2, 0x44($sp) @@ -579,7 +579,7 @@ glabel L8004EB20 /* AC5D04 8004EB64 E7AE0088 */ swc1 $f14, 0x88($sp) /* AC5D08 8004EB68 27A400B0 */ addiu $a0, $sp, 0xb0 /* AC5D0C 8004EB6C 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC5D10 8004EB70 AC2AD3A0 */ sw $t2, %lo(D_8011D3A0)($at) +/* AC5D10 8004EB70 AC2AD3A0 */ sw $t2, %lo(sCameraInterfaceFlags)($at) /* AC5D14 8004EB74 26260074 */ addiu $a2, $s1, 0x74 /* AC5D18 8004EB78 AFA6003C */ sw $a2, 0x3c($sp) /* AC5D1C 8004EB7C 27A400A8 */ addiu $a0, $sp, 0xa8 @@ -591,22 +591,22 @@ glabel L8004EB20 /* AC5D34 8004EB94 24E7BD50 */ addiu $a3, %lo(D_8015BD50) # addiu $a3, $a3, -0x42b0 /* AC5D38 8004EB98 ACEC0000 */ sw $t4, ($a3) /* AC5D3C 8004EB9C 8C6B0004 */ lw $t3, 4($v1) -/* AC5D40 8004EBA0 3C018016 */ lui $at, %hi(D_8015BD54) +/* AC5D40 8004EBA0 3C018016 */ lui $at, %hi(D_8015BD50) /* AC5D44 8004EBA4 C7AE0088 */ lwc1 $f14, 0x88($sp) /* AC5D48 8004EBA8 ACEB0004 */ sw $t3, 4($a3) /* AC5D4C 8004EBAC 8C6C0008 */ lw $t4, 8($v1) /* AC5D50 8004EBB0 27A500C0 */ addiu $a1, $sp, 0xc0 /* AC5D54 8004EBB4 27A6007C */ addiu $a2, $sp, 0x7c /* AC5D58 8004EBB8 ACEC0008 */ sw $t4, 8($a3) -/* AC5D5C 8004EBBC C42ABD54 */ lwc1 $f10, %lo(D_8015BD54)($at) +/* AC5D5C 8004EBBC C42ABD54 */ lwc1 $f10, %lo(D_8015BD50+0x4)($at) /* AC5D60 8004EBC0 460E5180 */ add.s $f6, $f10, $f14 -/* AC5D64 8004EBC4 E426BD54 */ swc1 $f6, %lo(D_8015BD54)($at) +/* AC5D64 8004EBC4 E426BD54 */ swc1 $f6, %lo(D_8015BD50+0x4)($at) /* AC5D68 8004EBC8 8E24008C */ lw $a0, 0x8c($s1) /* AC5D6C 8004EBCC AFA30038 */ sw $v1, 0x38($sp) /* AC5D70 8004EBD0 0C00F329 */ jal func_8003CCA4 /* AC5D74 8004EBD4 248407C0 */ addiu $a0, $a0, 0x7c0 -/* AC5D78 8004EBD8 3C018016 */ lui $at, %hi(D_8015BD54) -/* AC5D7C 8004EBDC C428BD54 */ lwc1 $f8, %lo(D_8015BD54)($at) +/* AC5D78 8004EBD8 3C018016 */ lui $at, %hi(D_8015BD50) +/* AC5D7C 8004EBDC C428BD54 */ lwc1 $f8, %lo(D_8015BD50+0x4)($at) /* AC5D80 8004EBE0 C6240000 */ lwc1 $f4, ($s1) /* AC5D84 8004EBE4 46082080 */ add.s $f2, $f4, $f8 /* AC5D88 8004EBE8 4600103C */ c.lt.s $f2, $f0 @@ -614,13 +614,13 @@ glabel L8004EB20 /* AC5D90 8004EBF0 45000006 */ bc1f .L8004EC0C /* AC5D94 8004EBF4 3C014120 */ li $at, 0x41200000 # 0.000000 /* AC5D98 8004EBF8 44815000 */ mtc1 $at, $f10 -/* AC5D9C 8004EBFC 3C018016 */ lui $at, %hi(D_8015BD54) +/* AC5D9C 8004EBFC 3C018016 */ lui $at, %hi(D_8015BD50) /* AC5DA0 8004EC00 460A0180 */ add.s $f6, $f0, $f10 /* AC5DA4 8004EC04 10000003 */ b .L8004EC14 -/* AC5DA8 8004EC08 E426BD54 */ swc1 $f6, %lo(D_8015BD54)($at) +/* AC5DA8 8004EC08 E426BD54 */ swc1 $f6, %lo(D_8015BD50+0x4)($at) .L8004EC0C: -/* AC5DAC 8004EC0C 3C018016 */ lui $at, %hi(D_8015BD54) -/* AC5DB0 8004EC10 E422BD54 */ swc1 $f2, %lo(D_8015BD54)($at) +/* AC5DAC 8004EC0C 3C018016 */ lui $at, %hi(D_8015BD50) +/* AC5DB0 8004EC10 E422BD54 */ swc1 $f2, %lo(D_8015BD50+0x4)($at) .L8004EC14: /* AC5DB4 8004EC14 8622015E */ lh $v0, 0x15e($s1) /* AC5DB8 8004EC18 10400006 */ beqz $v0, .L8004EC34 @@ -790,7 +790,7 @@ glabel L8004EB20 /* AC602C 8004EE8C 46022200 */ add.s $f8, $f4, $f2 /* AC6030 8004EE90 4600428D */ trunc.w.s $f10, $f8 /* AC6034 8004EE94 440A5000 */ mfc1 $t2, $f10 -/* AC6038 8004EE98 0C01129D */ jal func_80044A74 +/* AC6038 8004EE98 0C01129D */ jal Camera_XZAngle /* AC603C 8004EE9C A7AA00A2 */ sh $t2, 0xa2($sp) /* AC6040 8004EEA0 87AB00AE */ lh $t3, 0xae($sp) /* AC6044 8004EEA4 3C018014 */ lui $at, %hi(D_8013A154) @@ -850,15 +850,15 @@ glabel L8004EB20 .L8004EF6C: /* AC610C 8004EF6C 87A800A2 */ lh $t0, 0xa2($sp) /* AC6110 8004EF70 87B800A0 */ lh $t8, 0xa0($sp) -/* AC6114 8004EF74 3C048016 */ lui $a0, %hi(D_8015BD70) # $a0, 0x8016 +/* AC6114 8004EF74 3C048016 */ lui $a0, %hi(D_8015BD50) # $a0, 0x8016 /* AC6118 8004EF78 A7A800BC */ sh $t0, 0xbc($sp) /* AC611C 8004EF7C A7B800BE */ sh $t8, 0xbe($sp) /* AC6120 8004EF80 C6260004 */ lwc1 $f6, 4($s1) /* AC6124 8004EF84 3C058016 */ lui $a1, %hi(D_8015BD50) # $a1, 0x8016 /* AC6128 8004EF88 24A5BD50 */ addiu $a1, %lo(D_8015BD50) # addiu $a1, $a1, -0x42b0 -/* AC612C 8004EF8C 2484BD70 */ addiu $a0, %lo(D_8015BD70) # addiu $a0, $a0, -0x4290 +/* AC612C 8004EF8C 2484BD70 */ addiu $a0, %lo(D_8015BD50+0x20) # addiu $a0, $a0, -0x4290 /* AC6130 8004EF90 27A600B8 */ addiu $a2, $sp, 0xb8 -/* AC6134 8004EF94 0C010F0A */ jal func_80043C28 +/* AC6134 8004EF94 0C010F0A */ jal Camera_Vec3fVecSphGeoAdd /* AC6138 8004EF98 E7A600B8 */ swc1 $f6, 0xb8($sp) /* AC613C 8004EF9C 862A001C */ lh $t2, 0x1c($s1) /* AC6140 8004EFA0 240C000E */ li $t4, 14 @@ -873,10 +873,10 @@ glabel L8004EB20 /* AC6160 8004EFC0 3C010001 */ lui $at, (0x00011E60 >> 16) # lui $at, 1 /* AC6164 8004EFC4 34211E60 */ ori $at, (0x00011E60 & 0xFFFF) # ori $at, $at, 0x1e60 /* AC6168 8004EFC8 3C068016 */ lui $a2, %hi(D_8015BD50) # $a2, 0x8016 -/* AC616C 8004EFCC 3C078016 */ lui $a3, %hi(D_8015BD70) # $a3, 0x8016 +/* AC616C 8004EFCC 3C078016 */ lui $a3, %hi(D_8015BD50) # $a3, 0x8016 /* AC6170 8004EFD0 27AE00CC */ addiu $t6, $sp, 0xcc /* AC6174 8004EFD4 AFAE0010 */ sw $t6, 0x10($sp) -/* AC6178 8004EFD8 24E7BD70 */ addiu $a3, %lo(D_8015BD70) # addiu $a3, $a3, -0x4290 +/* AC6178 8004EFD8 24E7BD70 */ addiu $a3, %lo(D_8015BD50+0x20) # addiu $a3, $a3, -0x4290 /* AC617C 8004EFDC 24C6BD50 */ addiu $a2, %lo(D_8015BD50) # addiu $a2, $a2, -0x42b0 /* AC6180 8004EFE0 02012821 */ addu $a1, $s0, $at /* AC6184 8004EFE4 02002025 */ move $a0, $s0 @@ -885,9 +885,9 @@ glabel L8004EB20 /* AC6190 8004EFF0 14400008 */ bnez $v0, .L8004F014 /* AC6194 8004EFF4 02202025 */ move $a0, $s1 /* AC6198 8004EFF8 3C058016 */ lui $a1, %hi(D_8015BD50) # $a1, 0x8016 -/* AC619C 8004EFFC 3C068016 */ lui $a2, %hi(D_8015BD70) # $a2, 0x8016 -/* AC61A0 8004F000 24C6BD70 */ addiu $a2, %lo(D_8015BD70) # addiu $a2, $a2, -0x4290 -/* AC61A4 8004F004 0C010FCD */ jal func_80043F34 +/* AC619C 8004EFFC 3C068016 */ lui $a2, %hi(D_8015BD50) # $a2, 0x8016 +/* AC61A0 8004F000 24C6BD70 */ addiu $a2, %lo(D_8015BD50+0x20) # addiu $a2, $a2, -0x4290 +/* AC61A4 8004F004 0C010FCD */ jal Camera_BGCheck /* AC61A8 8004F008 24A5BD50 */ addiu $a1, %lo(D_8015BD50) # addiu $a1, $a1, -0x42b0 /* AC61AC 8004F00C 1040001C */ beqz $v0, .L8004F080 /* AC61B0 8004F010 00000000 */ nop @@ -902,15 +902,15 @@ glabel L8004EB20 /* AC61D0 8004F030 87AD00A0 */ lh $t5, 0xa0($sp) /* AC61D4 8004F034 8508D3CC */ lh $t0, %lo(D_8011D3CC)($t0) /* AC61D8 8004F038 87B800A2 */ lh $t8, 0xa2($sp) -/* AC61DC 8004F03C 3C048016 */ lui $a0, %hi(D_8015BD70) # $a0, 0x8016 +/* AC61DC 8004F03C 3C048016 */ lui $a0, %hi(D_8015BD50) # $a0, 0x8016 /* AC61E0 8004F040 3C058016 */ lui $a1, %hi(D_8015BD50) /* AC61E4 8004F044 032D4821 */ addu $t1, $t9, $t5 /* AC61E8 8004F048 01185021 */ addu $t2, $t0, $t8 /* AC61EC 8004F04C A7A900BE */ sh $t1, 0xbe($sp) /* AC61F0 8004F050 A7AA00BC */ sh $t2, 0xbc($sp) /* AC61F4 8004F054 24A5BD50 */ addiu $a1, %lo(D_8015BD50) # addiu $a1, $a1, -0x42b0 -/* AC61F8 8004F058 2484BD70 */ addiu $a0, %lo(D_8015BD70) # addiu $a0, $a0, -0x4290 -/* AC61FC 8004F05C 0C010F0A */ jal func_80043C28 +/* AC61F8 8004F058 2484BD70 */ addiu $a0, %lo(D_8015BD50+0x20) # addiu $a0, $a0, -0x4290 +/* AC61FC 8004F05C 0C010F0A */ jal Camera_Vec3fVecSphGeoAdd /* AC6200 8004F060 27A600B8 */ addiu $a2, $sp, 0xb8 /* AC6204 8004F064 8FB0007C */ lw $s0, 0x7c($sp) /* AC6208 8004F068 87AB0082 */ lh $t3, 0x82($sp) @@ -981,7 +981,7 @@ glabel L8004EB20 /* AC62FC 8004F15C 44071000 */ mfc1 $a3, $f2 /* AC6300 8004F160 2484BD50 */ addiu $a0, %lo(D_8015BD50) # addiu $a0, $a0, -0x42b0 /* AC6304 8004F164 8FA50040 */ lw $a1, 0x40($sp) -/* AC6308 8004F168 0C010E8F */ jal func_80043A3C +/* AC6308 8004F168 0C010E8F */ jal Camera_LERPCeilVec3f /* AC630C 8004F16C E7A60010 */ swc1 $f6, 0x10($sp) /* AC6310 8004F170 C6200010 */ lwc1 $f0, 0x10($s1) /* AC6314 8004F174 44802000 */ mtc1 $zero, $f4 @@ -995,7 +995,7 @@ glabel L8004EB20 /* AC6334 8004F194 A7A000BC */ sh $zero, 0xbc($sp) /* AC6338 8004F198 854B000E */ lh $t3, 0xe($t2) /* AC633C 8004F19C 27A600B8 */ addiu $a2, $sp, 0xb8 -/* AC6340 8004F1A0 0C010F0A */ jal func_80043C28 +/* AC6340 8004F1A0 0C010F0A */ jal Camera_Vec3fVecSphGeoAdd /* AC6344 8004F1A4 A7AB00BE */ sh $t3, 0xbe($sp) /* AC6348 8004F1A8 44804000 */ mtc1 $zero, $f8 .L8004F1AC: @@ -1003,7 +1003,7 @@ glabel L8004EB20 /* AC6350 8004F1B0 C62E00DC */ lwc1 $f14, 0xdc($s1) /* AC6354 8004F1B4 3C063E80 */ lui $a2, 0x3e80 /* AC6358 8004F1B8 3C074000 */ lui $a3, 0x4000 -/* AC635C 8004F1BC 0C010E27 */ jal func_8004389C +/* AC635C 8004F1BC 0C010E27 */ jal Camera_LERPCeilF /* AC6360 8004F1C0 E6280100 */ swc1 $f8, 0x100($s1) /* AC6364 8004F1C4 8FA30034 */ lw $v1, 0x34($sp) /* AC6368 8004F1C8 E62000DC */ swc1 $f0, 0xdc($s1) @@ -1051,7 +1051,7 @@ glabel L8004EB20 /* AC640C 8004F26C A6280160 */ sh $t0, 0x160($s1) /* AC6410 8004F270 8639014C */ lh $t9, 0x14c($s1) .L8004F274: -/* AC6414 8004F274 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 +/* AC6414 8004F274 3C018012 */ lui $at, %hi(sCameraInterfaceFlags) # $at, 0x8012 /* AC6418 8004F278 37380410 */ ori $t8, $t9, 0x410 /* AC641C 8004F27C A638014C */ sh $t8, 0x14c($s1) /* AC6420 8004F280 862A014C */ lh $t2, 0x14c($s1) @@ -1063,7 +1063,7 @@ glabel L8004EB20 /* AC6438 8004F298 51E00016 */ beql $t7, $zero, .L8004F2F4 /* AC643C 8004F29C 8464000C */ lh $a0, 0xc($v1) .L8004F2A0: -/* AC6440 8004F2A0 AC20D3A0 */ sw $zero, %lo(D_8011D3A0)($at) +/* AC6440 8004F2A0 AC20D3A0 */ sw $zero, %lo(sCameraInterfaceFlags)($at) /* AC6444 8004F2A4 862B014C */ lh $t3, 0x14c($s1) /* AC6448 8004F2A8 86250166 */ lh $a1, 0x166($s1) /* AC644C 8004F2AC 02202025 */ move $a0, $s1 @@ -1074,12 +1074,12 @@ glabel L8004EB20 /* AC6460 8004F2C0 3128FFF7 */ andi $t0, $t1, 0xfff7 /* AC6464 8004F2C4 04A10005 */ bgez $a1, .L8004F2DC /* AC6468 8004F2C8 A628014C */ sh $t0, 0x14c($s1) -/* AC646C 8004F2CC 0C016952 */ jal Camera_ChangeSetting +/* AC646C 8004F2CC 0C016952 */ jal Camera_ChangeSettingFlags /* AC6470 8004F2D0 86250154 */ lh $a1, 0x154($s1) /* AC6474 8004F2D4 10000006 */ b .L8004F2F0 /* AC6478 8004F2D8 8FA30034 */ lw $v1, 0x34($sp) .L8004F2DC: -/* AC647C 8004F2DC 0C0169EA */ jal func_8005A7A8 +/* AC647C 8004F2DC 0C0169EA */ jal Camera_ChangeDataIdx /* AC6480 8004F2E0 02202025 */ move $a0, $s1 /* AC6484 8004F2E4 2419FFFF */ li $t9, -1 /* AC6488 8004F2E8 A6390166 */ sh $t9, 0x166($s1) @@ -1089,19 +1089,19 @@ glabel L8004EB20 .L8004F2F4: /* AC6494 8004F2F4 87A500AE */ lh $a1, 0xae($sp) /* AC6498 8004F2F8 8E260014 */ lw $a2, 0x14($s1) -/* AC649C 8004F2FC 0C010E47 */ jal func_8004391C +/* AC649C 8004F2FC 0C010E47 */ jal Camera_LERPCeilS /* AC64A0 8004F300 24070004 */ li $a3, 4 /* AC64A4 8004F304 8FB80034 */ lw $t8, 0x34($sp) /* AC64A8 8004F308 A7A200BE */ sh $v0, 0xbe($sp) /* AC64AC 8004F30C 8E260014 */ lw $a2, 0x14($s1) /* AC64B0 8004F310 87A500AC */ lh $a1, 0xac($sp) /* AC64B4 8004F314 24070004 */ li $a3, 4 -/* AC64B8 8004F318 0C010E47 */ jal func_8004391C +/* AC64B8 8004F318 0C010E47 */ jal Camera_LERPCeilS /* AC64BC 8004F31C 8704000E */ lh $a0, 0xe($t8) /* AC64C0 8004F320 A7A200BC */ sh $v0, 0xbc($sp) /* AC64C4 8004F324 8FA4003C */ lw $a0, 0x3c($sp) /* AC64C8 8004F328 8FA50040 */ lw $a1, 0x40($sp) -/* AC64CC 8004F32C 0C010F0A */ jal func_80043C28 +/* AC64CC 8004F32C 0C010F0A */ jal Camera_Vec3fVecSphGeoAdd /* AC64D0 8004F330 27A600B8 */ addiu $a2, $sp, 0xb8 /* AC64D4 8004F334 8FAA003C */ lw $t2, 0x3c($sp) /* AC64D8 8004F338 8FA60044 */ lw $a2, 0x44($sp) @@ -1112,18 +1112,18 @@ glabel L8004EB20 /* AC64EC 8004F34C ACCC0004 */ sw $t4, 4($a2) /* AC64F0 8004F350 8D4E0008 */ lw $t6, 8($t2) /* AC64F4 8004F354 ACCE0008 */ sw $t6, 8($a2) -/* AC64F8 8004F358 0C010FCD */ jal func_80043F34 +/* AC64F8 8004F358 0C010FCD */ jal Camera_BGCheck /* AC64FC 8004F35C 8FA50040 */ lw $a1, 0x40($sp) /* AC6500 8004F360 C62C0018 */ lwc1 $f12, 0x18($s1) /* AC6504 8004F364 C62E00FC */ lwc1 $f14, 0xfc($s1) /* AC6508 8004F368 8E2600D4 */ lw $a2, 0xd4($s1) -/* AC650C 8004F36C 0C010E27 */ jal func_8004389C +/* AC650C 8004F36C 0C010E27 */ jal Camera_LERPCeilF /* AC6510 8004F370 3C073F80 */ lui $a3, 0x3f80 /* AC6514 8004F374 E62000FC */ swc1 $f0, 0xfc($s1) /* AC6518 8004F378 00002025 */ move $a0, $zero /* AC651C 8004F37C 8625015A */ lh $a1, 0x15a($s1) /* AC6520 8004F380 3C063F00 */ lui $a2, 0x3f00 -/* AC6524 8004F384 0C010E47 */ jal func_8004391C +/* AC6524 8004F384 0C010E47 */ jal Camera_LERPCeilS /* AC6528 8004F388 2407000A */ li $a3, 10 /* AC652C 8004F38C A622015A */ sh $v0, 0x15a($s1) .L8004F390: diff --git a/asm/non_matchings/code/z_camera/Camera_Normal1.s b/asm/non_matchings/code/z_camera/Camera_Normal1.s deleted file mode 100644 index f8592eb44e..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Normal1.s +++ /dev/null @@ -1,838 +0,0 @@ -.late_rodata -glabel D_80139E8C - .float 0.01 - -glabel D_80139E90 - .float 182.041672 # 32768 / PI - .float 0.01 - .float 0.01 - -glabel D_80139E9C - .float 0.001 - -glabel D_80139EA0 - .float 0.01 - -glabel D_80139EA4 - .float 0.3333329856395721435546875 - -glabel D_80139EA8 - .float 0.01 - -glabel D_80139EAC - .float 0.01 - -glabel D_80139EB0 - .float 0.01 - -glabel D_80139EB4 - .float 0.05 - -glabel D_80139EB8 - .float 0.99 - -glabel D_80139EBC - .float 10000.0 - -glabel D_80139EC0 - .float 0.80 - -.text -glabel Camera_Normal1 -/* ABE540 800473A0 27BDFF50 */ addiu $sp, $sp, -0xb0 -/* ABE544 800473A4 AFB0001C */ sw $s0, 0x1c($sp) -/* ABE548 800473A8 00808025 */ move $s0, $a0 -/* ABE54C 800473AC AFBF0024 */ sw $ra, 0x24($sp) -/* ABE550 800473B0 AFB10020 */ sw $s1, 0x20($sp) -/* ABE554 800473B4 0C00B721 */ jal Player_GetCameraYOffset -/* ABE558 800473B8 8C840090 */ lw $a0, 0x90($a0) -/* ABE55C 800473BC 8602015E */ lh $v0, 0x15e($s0) -/* ABE560 800473C0 2401000A */ li $at, 10 -/* ABE564 800473C4 3C0B8016 */ lui $t3, %hi(gGameInfo) # $t3, 0x8016 -/* ABE568 800473C8 10400009 */ beqz $v0, .L800473F0 -/* ABE56C 800473CC 00000000 */ nop -/* ABE570 800473D0 10410007 */ beq $v0, $at, .L800473F0 -/* ABE574 800473D4 24010014 */ li $at, 20 -/* ABE578 800473D8 10410005 */ beq $v0, $at, .L800473F0 -/* ABE57C 800473DC 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 -/* ABE580 800473E0 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* ABE584 800473E4 85C30314 */ lh $v1, 0x314($t6) -/* ABE588 800473E8 1060005B */ beqz $v1, .L80047558 -/* ABE58C 800473EC 00000000 */ nop -.L800473F0: -/* ABE590 800473F0 8D6BFA90 */ lw $t3, %lo(gGameInfo)($t3) -/* ABE594 800473F4 3C018014 */ lui $at, %hi(D_80139E8C) -/* ABE598 800473F8 C4309E8C */ lwc1 $f16, %lo(D_80139E8C)($at) -/* ABE59C 800473FC 856C01F0 */ lh $t4, 0x1f0($t3) -/* ABE5A0 80047400 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABE5A4 80047404 44814000 */ mtc1 $at, $f8 -/* ABE5A8 80047408 448C2000 */ mtc1 $t4, $f4 -/* ABE5AC 8004740C 3C014288 */ li $at, 0x42880000 # 0.000000 -/* ABE5B0 80047410 860F0142 */ lh $t7, 0x142($s0) -/* ABE5B4 80047414 468021A0 */ cvt.s.w $f6, $f4 -/* ABE5B8 80047418 44812000 */ mtc1 $at, $f4 -/* ABE5BC 8004741C 3C198012 */ lui $t9, %hi(sCameraSettings+4) -/* ABE5C0 80047420 000FC0C0 */ sll $t8, $t7, 3 -/* ABE5C4 80047424 86080144 */ lh $t0, 0x144($s0) -/* ABE5C8 80047428 0338C821 */ addu $t9, $t9, $t8 -/* ABE5CC 8004742C 46103302 */ mul.s $f12, $f6, $f16 -/* ABE5D0 80047430 46002183 */ div.s $f6, $f4, $f0 -/* ABE5D4 80047434 8F39D068 */ lw $t9, %lo(sCameraSettings+4)($t9) -/* ABE5D8 80047438 000848C0 */ sll $t1, $t0, 3 -/* ABE5DC 8004743C 3C018014 */ lui $at, %hi(D_80139E90) -/* ABE5E0 80047440 03295021 */ addu $t2, $t9, $t1 -/* ABE5E4 80047444 8D420004 */ lw $v0, 4($t2) -/* ABE5E8 80047448 460C4280 */ add.s $f10, $f8, $f12 -/* ABE5EC 8004744C 844D0000 */ lh $t5, ($v0) -/* ABE5F0 80047450 24420024 */ addiu $v0, $v0, 0x24 -/* ABE5F4 80047454 46066202 */ mul.s $f8, $f12, $f6 -/* ABE5F8 80047458 448D3000 */ mtc1 $t5, $f6 -/* ABE5FC 8004745C 46100102 */ mul.s $f4, $f0, $f16 -/* ABE600 80047460 46085381 */ sub.s $f14, $f10, $f8 -/* ABE604 80047464 468032A0 */ cvt.s.w $f10, $f6 -/* ABE608 80047468 460E2082 */ mul.s $f2, $f4, $f14 -/* ABE60C 8004746C 00000000 */ nop -/* ABE610 80047470 46025202 */ mul.s $f8, $f10, $f2 -/* ABE614 80047474 E6080000 */ swc1 $f8, ($s0) -/* ABE618 80047478 844EFFE0 */ lh $t6, -0x20($v0) -/* ABE61C 8004747C 448E2000 */ mtc1 $t6, $f4 -/* ABE620 80047480 00000000 */ nop -/* ABE624 80047484 468021A0 */ cvt.s.w $f6, $f4 -/* ABE628 80047488 46023282 */ mul.s $f10, $f6, $f2 -/* ABE62C 8004748C E60A0004 */ swc1 $f10, 4($s0) -/* ABE630 80047490 844FFFE4 */ lh $t7, -0x1c($v0) -/* ABE634 80047494 448F4000 */ mtc1 $t7, $f8 -/* ABE638 80047498 3C0F8016 */ lui $t7, %hi(gGameInfo) -/* ABE63C 8004749C 46804120 */ cvt.s.w $f4, $f8 -/* ABE640 800474A0 46022182 */ mul.s $f6, $f4, $f2 -/* ABE644 800474A4 E6060008 */ swc1 $f6, 8($s0) -/* ABE648 800474A8 8458FFE8 */ lh $t8, -0x18($v0) -/* ABE64C 800474AC C4249E90 */ lwc1 $f4, %lo(D_80139E90)($at) -/* ABE650 800474B0 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* ABE654 800474B4 44985000 */ mtc1 $t8, $f10 -/* ABE658 800474B8 00000000 */ nop -/* ABE65C 800474BC 46805220 */ cvt.s.w $f8, $f10 -/* ABE660 800474C0 44815000 */ mtc1 $at, $f10 -/* ABE664 800474C4 46044182 */ mul.s $f6, $f8, $f4 -/* ABE668 800474C8 460A3200 */ add.s $f8, $f6, $f10 -/* ABE66C 800474CC 4600410D */ trunc.w.s $f4, $f8 -/* ABE670 800474D0 44192000 */ mfc1 $t9, $f4 -/* ABE674 800474D4 00000000 */ nop -/* ABE678 800474D8 A6190020 */ sh $t9, 0x20($s0) -/* ABE67C 800474DC 8449FFEC */ lh $t1, -0x14($v0) -/* ABE680 800474E0 44893000 */ mtc1 $t1, $f6 -/* ABE684 800474E4 00000000 */ nop -/* ABE688 800474E8 468032A0 */ cvt.s.w $f10, $f6 -/* ABE68C 800474EC E60A000C */ swc1 $f10, 0xc($s0) -/* ABE690 800474F0 844AFFF0 */ lh $t2, -0x10($v0) -/* ABE694 800474F4 448A4000 */ mtc1 $t2, $f8 -/* ABE698 800474F8 00000000 */ nop -/* ABE69C 800474FC 46804120 */ cvt.s.w $f4, $f8 -/* ABE6A0 80047500 E6040010 */ swc1 $f4, 0x10($s0) -/* ABE6A4 80047504 844BFFF4 */ lh $t3, -0xc($v0) -/* ABE6A8 80047508 448B3000 */ mtc1 $t3, $f6 -/* ABE6AC 8004750C 00000000 */ nop -/* ABE6B0 80047510 468032A0 */ cvt.s.w $f10, $f6 -/* ABE6B4 80047514 46105202 */ mul.s $f8, $f10, $f16 -/* ABE6B8 80047518 E6080014 */ swc1 $f8, 0x14($s0) -/* ABE6BC 8004751C 844CFFF8 */ lh $t4, -8($v0) -/* ABE6C0 80047520 448C2000 */ mtc1 $t4, $f4 -/* ABE6C4 80047524 00000000 */ nop -/* ABE6C8 80047528 468021A0 */ cvt.s.w $f6, $f4 -/* ABE6CC 8004752C E6060018 */ swc1 $f6, 0x18($s0) -/* ABE6D0 80047530 844DFFFC */ lh $t5, -4($v0) -/* ABE6D4 80047534 448D5000 */ mtc1 $t5, $f10 -/* ABE6D8 80047538 00000000 */ nop -/* ABE6DC 8004753C 46805220 */ cvt.s.w $f8, $f10 -/* ABE6E0 80047540 46104102 */ mul.s $f4, $f8, $f16 -/* ABE6E4 80047544 E604001C */ swc1 $f4, 0x1c($s0) -/* ABE6E8 80047548 844E0000 */ lh $t6, ($v0) -/* ABE6EC 8004754C A60E0022 */ sh $t6, 0x22($s0) -/* ABE6F0 80047550 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7) -/* ABE6F4 80047554 85E30314 */ lh $v1, 0x314($t7) -.L80047558: -/* ABE6F8 80047558 50600004 */ beql $v1, $zero, .L8004756C -/* ABE6FC 8004755C 86180022 */ lh $t8, 0x22($s0) -/* ABE700 80047560 0C011495 */ jal Camera_CopyPREGToModeValues -/* ABE704 80047564 02002025 */ move $a0, $s0 -/* ABE708 80047568 86180022 */ lh $t8, 0x22($s0) -.L8004756C: -/* ABE70C 8004756C 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 -/* ABE710 80047570 26050050 */ addiu $a1, $s0, 0x50 -/* ABE714 80047574 2606005C */ addiu $a2, $s0, 0x5c -/* ABE718 80047578 AFA60040 */ sw $a2, 0x40($sp) -/* ABE71C 8004757C AFA5003C */ sw $a1, 0x3c($sp) -/* ABE720 80047580 27A40074 */ addiu $a0, $sp, 0x74 -/* ABE724 80047584 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* ABE728 80047588 AC38D3A0 */ sw $t8, %lo(D_8011D3A0)($at) -/* ABE72C 8004758C 26060074 */ addiu $a2, $s0, 0x74 -/* ABE730 80047590 AFA60038 */ sw $a2, 0x38($sp) -/* ABE734 80047594 27A4006C */ addiu $a0, $sp, 0x6c -/* ABE738 80047598 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* ABE73C 8004759C 8FA5003C */ lw $a1, 0x3c($sp) -/* ABE740 800475A0 8603015E */ lh $v1, 0x15e($s0) -/* ABE744 800475A4 2401000A */ li $at, 10 -/* ABE748 800475A8 26110024 */ addiu $s1, $s0, 0x24 -/* ABE74C 800475AC 10600017 */ beqz $v1, .L8004760C -/* ABE750 800475B0 240B000A */ li $t3, 10 -/* ABE754 800475B4 10610015 */ beq $v1, $at, .L8004760C -/* ABE758 800475B8 24010014 */ li $at, 20 -/* ABE75C 800475BC 10610006 */ beq $v1, $at, .L800475D8 -/* ABE760 800475C0 3C088016 */ lui $t0, %hi(gGameInfo) # $t0, 0x8016 -/* ABE764 800475C4 24010019 */ li $at, 25 -/* ABE768 800475C8 50610011 */ beql $v1, $at, .L80047610 -/* ABE76C 800475CC A6200018 */ sh $zero, 0x18($s1) -/* ABE770 800475D0 10000026 */ b .L8004766C -/* ABE774 800475D4 26110024 */ addiu $s1, $s0, 0x24 -.L800475D8: -/* ABE778 800475D8 8D08FA90 */ lw $t0, %lo(gGameInfo)($t0) -/* ABE77C 800475DC 3C098016 */ lui $t1, %hi(gGameInfo) # $t1, 0x8016 -/* ABE780 800475E0 851901CA */ lh $t9, 0x1ca($t0) -/* ABE784 800475E4 44993000 */ mtc1 $t9, $f6 -/* ABE788 800475E8 00000000 */ nop -/* ABE78C 800475EC 468032A0 */ cvt.s.w $f10, $f6 -/* ABE790 800475F0 E60A00C8 */ swc1 $f10, 0xc8($s0) -/* ABE794 800475F4 8D29FA90 */ lw $t1, %lo(gGameInfo)($t1) -/* ABE798 800475F8 852A01CA */ lh $t2, 0x1ca($t1) -/* ABE79C 800475FC 448A4000 */ mtc1 $t2, $f8 -/* ABE7A0 80047600 00000000 */ nop -/* ABE7A4 80047604 46804120 */ cvt.s.w $f4, $f8 -/* ABE7A8 80047608 E60400C4 */ swc1 $f4, 0xc4($s0) -.L8004760C: -/* ABE7AC 8004760C A6200018 */ sh $zero, 0x18($s1) -.L80047610: -/* ABE7B0 80047610 86230018 */ lh $v1, 0x18($s1) -/* ABE7B4 80047614 AE20000C */ sw $zero, 0xc($s1) -/* ABE7B8 80047618 A6200024 */ sh $zero, 0x24($s1) -/* ABE7BC 8004761C A62B0028 */ sh $t3, 0x28($s1) -/* ABE7C0 80047620 A6230014 */ sh $v1, 0x14($s1) -/* ABE7C4 80047624 A6230016 */ sh $v1, 0x16($s1) -/* ABE7C8 80047628 C606000C */ lwc1 $f6, 0xc($s0) -/* ABE7CC 8004762C 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* ABE7D0 80047630 3C018012 */ lui $at, %hi(D_8011D3E8) # $at, 0x8012 -/* ABE7D4 80047634 E6260010 */ swc1 $f6, 0x10($s1) -/* ABE7D8 80047638 C60A0098 */ lwc1 $f10, 0x98($s0) -/* ABE7DC 8004763C E62A001C */ swc1 $f10, 0x1c($s1) -/* ABE7E0 80047640 C60800D8 */ lwc1 $f8, 0xd8($s0) -/* ABE7E4 80047644 A620001A */ sh $zero, 0x1a($s1) -/* ABE7E8 80047648 E6280020 */ swc1 $f8, 0x20($s1) -/* ABE7EC 8004764C 87AC007A */ lh $t4, 0x7a($sp) -/* ABE7F0 80047650 A62C0026 */ sh $t4, 0x26($s1) -/* ABE7F4 80047654 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* ABE7F8 80047658 AC20D3E8 */ sw $zero, %lo(D_8011D3E8)($at) -/* ABE7FC 8004765C 844E01F8 */ lh $t6, 0x1f8($v0) -/* ABE800 80047660 844D01FA */ lh $t5, 0x1fa($v0) -/* ABE804 80047664 01AE7821 */ addu $t7, $t5, $t6 -/* ABE808 80047668 A62F002A */ sh $t7, 0x2a($s1) -.L8004766C: -/* ABE80C 8004766C 24030001 */ li $v1, 1 -/* ABE810 80047670 A603015E */ sh $v1, 0x15e($s0) -/* ABE814 80047674 3C018012 */ lui $at, %hi(D_8011D3E8) # $at, 0x8012 -/* ABE818 80047678 AC23D3E8 */ sw $v1, %lo(D_8011D3E8)($at) -/* ABE81C 8004767C 86220028 */ lh $v0, 0x28($s1) -/* ABE820 80047680 3C018014 */ lui $at, %hi(D_80139E9C) -/* ABE824 80047684 10400002 */ beqz $v0, .L80047690 -/* ABE828 80047688 2458FFFF */ addiu $t8, $v0, -1 -/* ABE82C 8004768C A6380028 */ sh $t8, 0x28($s1) -.L80047690: -/* ABE830 80047690 C4249E9C */ lwc1 $f4, %lo(D_80139E9C)($at) -/* ABE834 80047694 C60600D8 */ lwc1 $f6, 0xd8($s0) -/* ABE838 80047698 4606203C */ c.lt.s $f4, $f6 -/* ABE83C 8004769C 00000000 */ nop -/* ABE840 800476A0 4502000A */ bc1fl .L800476CC -/* ABE844 800476A4 8622002A */ lh $v0, 0x2a($s1) -/* ABE848 800476A8 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 -/* ABE84C 800476AC 2463FA90 */ addiu $v1, %lo(gGameInfo) # addiu $v1, $v1, -0x570 -/* ABE850 800476B0 8C620000 */ lw $v0, ($v1) -/* ABE854 800476B4 844801FA */ lh $t0, 0x1fa($v0) -/* ABE858 800476B8 845901F8 */ lh $t9, 0x1f8($v0) -/* ABE85C 800476BC 01194821 */ addu $t1, $t0, $t9 -/* ABE860 800476C0 10000020 */ b .L80047744 -/* ABE864 800476C4 A629002A */ sh $t1, 0x2a($s1) -/* ABE868 800476C8 8622002A */ lh $v0, 0x2a($s1) -.L800476CC: -/* ABE86C 800476CC 1840001D */ blez $v0, .L80047744 -/* ABE870 800476D0 3C0A8016 */ lui $t2, %hi(gGameInfo) # $t2, 0x8016 -/* ABE874 800476D4 8D4AFA90 */ lw $t2, %lo(gGameInfo)($t2) -/* ABE878 800476D8 854B01F8 */ lh $t3, 0x1f8($t2) -/* ABE87C 800476DC 0162082A */ slt $at, $t3, $v0 -/* ABE880 800476E0 50200017 */ beql $at, $zero, .L80047740 -/* ABE884 800476E4 244CFFFF */ addiu $t4, $v0, -1 -/* ABE888 800476E8 860C00A2 */ lh $t4, 0xa2($s0) -/* ABE88C 800476EC 87B8007A */ lh $t8, 0x7a($sp) -/* ABE890 800476F0 258D8001 */ addiu $t5, $t4, -0x7fff -/* ABE894 800476F4 000D7400 */ sll $t6, $t5, 0x10 -/* ABE898 800476F8 000E7C03 */ sra $t7, $t6, 0x10 -/* ABE89C 800476FC 01F84023 */ subu $t0, $t7, $t8 -/* ABE8A0 80047700 0008CC00 */ sll $t9, $t0, 0x10 -/* ABE8A4 80047704 00194C03 */ sra $t1, $t9, 0x10 -/* ABE8A8 80047708 0122001A */ div $zero, $t1, $v0 -/* ABE8AC 8004770C 00005012 */ mflo $t2 -/* ABE8B0 80047710 030A5821 */ addu $t3, $t8, $t2 -/* ABE8B4 80047714 A62B0026 */ sh $t3, 0x26($s1) -/* ABE8B8 80047718 14400002 */ bnez $v0, .L80047724 -/* ABE8BC 8004771C 00000000 */ nop -/* ABE8C0 80047720 0007000D */ break 7 -.L80047724: -/* ABE8C4 80047724 2401FFFF */ li $at, -1 -/* ABE8C8 80047728 14410004 */ bne $v0, $at, .L8004773C -/* ABE8CC 8004772C 3C018000 */ lui $at, 0x8000 -/* ABE8D0 80047730 15210002 */ bne $t1, $at, .L8004773C -/* ABE8D4 80047734 00000000 */ nop -/* ABE8D8 80047738 0006000D */ break 6 -.L8004773C: -/* ABE8DC 8004773C 244CFFFF */ addiu $t4, $v0, -1 -.L80047740: -/* ABE8E0 80047740 A62C002A */ sh $t4, 0x2a($s1) -.L80047744: -/* ABE8E4 80047744 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 -/* ABE8E8 80047748 2463FA90 */ addiu $v1, %lo(gGameInfo) # addiu $v1, $v1, -0x570 -/* ABE8EC 8004774C 8C620000 */ lw $v0, ($v1) -/* ABE8F0 80047750 3C018014 */ lui $at, %hi(D_80139EA0) -/* ABE8F4 80047754 C4329EA0 */ lwc1 $f18, %lo(D_80139EA0)($at) -/* ABE8F8 80047758 844D01C6 */ lh $t5, 0x1c6($v0) -/* ABE8FC 8004775C 844E01C8 */ lh $t6, 0x1c8($v0) -/* ABE900 80047760 C60000E0 */ lwc1 $f0, 0xe0($s0) -/* ABE904 80047764 448D5000 */ mtc1 $t5, $f10 -/* ABE908 80047768 448E2000 */ mtc1 $t6, $f4 -/* ABE90C 8004776C 46805220 */ cvt.s.w $f8, $f10 -/* ABE910 80047770 468021A0 */ cvt.s.w $f6, $f4 -/* ABE914 80047774 46124082 */ mul.s $f2, $f8, $f18 -/* ABE918 80047778 00000000 */ nop -/* ABE91C 8004777C 46001402 */ mul.s $f16, $f2, $f0 -/* ABE920 80047780 00000000 */ nop -/* ABE924 80047784 46123282 */ mul.s $f10, $f6, $f18 -/* ABE928 80047788 00000000 */ nop -/* ABE92C 8004778C 46005202 */ mul.s $f8, $f10, $f0 -/* ABE930 80047790 E7A8009C */ swc1 $f8, 0x9c($sp) -/* ABE934 80047794 862F0018 */ lh $t7, 0x18($s1) -/* ABE938 80047798 11E00003 */ beqz $t7, .L800477A8 -/* ABE93C 8004779C 00000000 */ nop -/* ABE940 800477A0 10000002 */ b .L800477AC -/* ABE944 800477A4 E7A20098 */ swc1 $f2, 0x98($sp) -.L800477A8: -/* ABE948 800477A8 E7B00098 */ swc1 $f16, 0x98($sp) -.L800477AC: -/* ABE94C 800477AC C60000D8 */ lwc1 $f0, 0xd8($s0) -/* ABE950 800477B0 C6240020 */ lwc1 $f4, 0x20($s1) -/* ABE954 800477B4 3C018014 */ lui $at, %hi(D_80139EA4) -/* ABE958 800477B8 C42A9EA4 */ lwc1 $f10, %lo(D_80139EA4)($at) -/* ABE95C 800477BC 46040181 */ sub.s $f6, $f0, $f4 -/* ABE960 800477C0 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABE964 800477C4 44814000 */ mtc1 $at, $f8 -/* ABE968 800477C8 460A3082 */ mul.s $f2, $f6, $f10 -/* ABE96C 800477CC 4602403C */ c.lt.s $f8, $f2 -/* ABE970 800477D0 00000000 */ nop -/* ABE974 800477D4 45000003 */ bc1f .L800477E4 -/* ABE978 800477D8 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABE97C 800477DC 44811000 */ mtc1 $at, $f2 -/* ABE980 800477E0 00000000 */ nop -.L800477E4: -/* ABE984 800477E4 3C01BF80 */ li $at, 0xBF800000 # 0.000000 -/* ABE988 800477E8 44816000 */ mtc1 $at, $f12 -/* ABE98C 800477EC 00000000 */ nop -/* ABE990 800477F0 4602603C */ c.lt.s $f12, $f2 -/* ABE994 800477F4 00000000 */ nop -/* ABE998 800477F8 45020003 */ bc1fl .L80047808 -/* ABE99C 800477FC 8622001A */ lh $v0, 0x1a($s1) -/* ABE9A0 80047800 46006086 */ mov.s $f2, $f12 -/* ABE9A4 80047804 8622001A */ lh $v0, 0x1a($s1) -.L80047808: -/* ABE9A8 80047808 E6200020 */ swc1 $f0, 0x20($s1) -/* ABE9AC 8004780C 10400022 */ beqz $v0, .L80047898 -/* ABE9B0 80047810 00024040 */ sll $t0, $v0, 1 -/* ABE9B4 80047814 44883000 */ mtc1 $t0, $f6 -/* ABE9B8 80047818 C6240010 */ lwc1 $f4, 0x10($s1) -/* ABE9BC 8004781C C60E00C8 */ lwc1 $f14, 0xc8($s0) -/* ABE9C0 80047820 468032A0 */ cvt.s.w $f10, $f6 -/* ABE9C4 80047824 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* ABE9C8 80047828 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* ABE9CC 8004782C E7B000A0 */ swc1 $f16, 0xa0($sp) -/* ABE9D0 80047830 E7A20094 */ swc1 $f2, 0x94($sp) -/* ABE9D4 80047834 8FA60098 */ lw $a2, 0x98($sp) -/* ABE9D8 80047838 0C010E27 */ jal func_8004389C -/* ABE9DC 8004783C 460A2300 */ add.s $f12, $f4, $f10 -/* ABE9E0 80047840 E60000C8 */ swc1 $f0, 0xc8($s0) -/* ABE9E4 80047844 3C198016 */ lui $t9, %hi(gGameInfo) # $t9, 0x8016 -/* ABE9E8 80047848 8F39FA90 */ lw $t9, %lo(gGameInfo)($t9) -/* ABE9EC 8004784C 8638001A */ lh $t8, 0x1a($s1) -/* ABE9F0 80047850 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000 -/* ABE9F4 80047854 872901A2 */ lh $t1, 0x1a2($t9) -/* ABE9F8 80047858 00185040 */ sll $t2, $t8, 1 -/* ABE9FC 8004785C 448A2000 */ mtc1 $t2, $f4 -/* ABEA00 80047860 44894000 */ mtc1 $t1, $f8 -/* ABEA04 80047864 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* ABEA08 80047868 468022A0 */ cvt.s.w $f10, $f4 -/* ABEA0C 8004786C 8FA6009C */ lw $a2, 0x9c($sp) -/* ABEA10 80047870 C60E00C4 */ lwc1 $f14, 0xc4($s0) -/* ABEA14 80047874 468041A0 */ cvt.s.w $f6, $f8 -/* ABEA18 80047878 0C010E27 */ jal func_8004389C -/* ABEA1C 8004787C 460A3300 */ add.s $f12, $f6, $f10 -/* ABEA20 80047880 C7B000A0 */ lwc1 $f16, 0xa0($sp) -/* ABEA24 80047884 E60000C4 */ swc1 $f0, 0xc4($s0) -/* ABEA28 80047888 862B001A */ lh $t3, 0x1a($s1) -/* ABEA2C 8004788C 256CFFFF */ addiu $t4, $t3, -1 -/* ABEA30 80047890 10000020 */ b .L80047914 -/* ABEA34 80047894 A62C001A */ sh $t4, 0x1a($s1) -.L80047898: -/* ABEA38 80047898 8C6D0000 */ lw $t5, ($v1) -/* ABEA3C 8004789C C6200010 */ lwc1 $f0, 0x10($s1) -/* ABEA40 800478A0 C60E00C8 */ lwc1 $f14, 0xc8($s0) -/* ABEA44 800478A4 85AE01F6 */ lh $t6, 0x1f6($t5) -/* ABEA48 800478A8 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000 -/* ABEA4C 800478AC 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* ABEA50 800478B0 448E4000 */ mtc1 $t6, $f8 -/* ABEA54 800478B4 E7B000A0 */ swc1 $f16, 0xa0($sp) -/* ABEA58 800478B8 E7A20094 */ swc1 $f2, 0x94($sp) -/* ABEA5C 800478BC 46804120 */ cvt.s.w $f4, $f8 -/* ABEA60 800478C0 8FA60098 */ lw $a2, 0x98($sp) -/* ABEA64 800478C4 46122182 */ mul.s $f6, $f4, $f18 -/* ABEA68 800478C8 00000000 */ nop -/* ABEA6C 800478CC 46003282 */ mul.s $f10, $f6, $f0 -/* ABEA70 800478D0 00000000 */ nop -/* ABEA74 800478D4 46025202 */ mul.s $f8, $f10, $f2 -/* ABEA78 800478D8 0C010E27 */ jal func_8004389C -/* ABEA7C 800478DC 46080301 */ sub.s $f12, $f0, $f8 -/* ABEA80 800478E0 E60000C8 */ swc1 $f0, 0xc8($s0) -/* ABEA84 800478E4 3C0F8016 */ lui $t7, %hi(gGameInfo) # $t7, 0x8016 -/* ABEA88 800478E8 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7) -/* ABEA8C 800478EC 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* ABEA90 800478F0 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* ABEA94 800478F4 85E801A2 */ lh $t0, 0x1a2($t7) -/* ABEA98 800478F8 8FA6009C */ lw $a2, 0x9c($sp) -/* ABEA9C 800478FC C60E00C4 */ lwc1 $f14, 0xc4($s0) -/* ABEAA0 80047900 44882000 */ mtc1 $t0, $f4 -/* ABEAA4 80047904 0C010E27 */ jal func_8004389C -/* ABEAA8 80047908 46802320 */ cvt.s.w $f12, $f4 -/* ABEAAC 8004790C C7B000A0 */ lwc1 $f16, 0xa0($sp) -/* ABEAB0 80047910 E60000C4 */ swc1 $f0, 0xc4($s0) -.L80047914: -/* ABEAB4 80047914 3C198016 */ lui $t9, %hi(gGameInfo) # $t9, 0x8016 -/* ABEAB8 80047918 8F39FA90 */ lw $t9, %lo(gGameInfo)($t9) -/* ABEABC 8004791C C60E00C4 */ lwc1 $f14, 0xc4($s0) -/* ABEAC0 80047920 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* ABEAC4 80047924 872901A2 */ lh $t1, 0x1a2($t9) -/* ABEAC8 80047928 E7B000A0 */ swc1 $f16, 0xa0($sp) -/* ABEACC 8004792C 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* ABEAD0 80047930 44893000 */ mtc1 $t1, $f6 -/* ABEAD4 80047934 8FA6009C */ lw $a2, 0x9c($sp) -/* ABEAD8 80047938 0C010E27 */ jal func_8004389C -/* ABEADC 8004793C 46803320 */ cvt.s.w $f12, $f6 -/* ABEAE0 80047940 C7B000A0 */ lwc1 $f16, 0xa0($sp) -/* ABEAE4 80047944 E60000C4 */ swc1 $f0, 0xc4($s0) -/* ABEAE8 80047948 3C188016 */ lui $t8, %hi(gGameInfo) # $t8, 0x8016 -/* ABEAEC 8004794C 8F18FA90 */ lw $t8, %lo(gGameInfo)($t8) -/* ABEAF0 80047950 3C018014 */ lui $at, %hi(D_80139EA8) -/* ABEAF4 80047954 C4249EA8 */ lwc1 $f4, %lo(D_80139EA8)($at) -/* ABEAF8 80047958 870A0198 */ lh $t2, 0x198($t8) -/* ABEAFC 8004795C 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000 -/* ABEB00 80047960 44068000 */ mfc1 $a2, $f16 -/* ABEB04 80047964 448A5000 */ mtc1 $t2, $f10 -/* ABEB08 80047968 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* ABEB0C 8004796C C60E00CC */ lwc1 $f14, 0xcc($s0) -/* ABEB10 80047970 46805220 */ cvt.s.w $f8, $f10 -/* ABEB14 80047974 46044302 */ mul.s $f12, $f8, $f4 -/* ABEB18 80047978 0C010E27 */ jal func_8004389C -/* ABEB1C 8004797C 00000000 */ nop -/* ABEB20 80047980 E60000CC */ swc1 $f0, 0xcc($s0) -/* ABEB24 80047984 3C0B8016 */ lui $t3, %hi(gGameInfo) # $t3, 0x8016 -/* ABEB28 80047988 8D6BFA90 */ lw $t3, %lo(gGameInfo)($t3) -/* ABEB2C 8004798C 3C018014 */ lui $at, %hi(D_80139EAC) -/* ABEB30 80047990 C4289EAC */ lwc1 $f8, %lo(D_80139EAC)($at) -/* ABEB34 80047994 856C019A */ lh $t4, 0x19a($t3) -/* ABEB38 80047998 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000 -/* ABEB3C 8004799C 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* ABEB40 800479A0 448C3000 */ mtc1 $t4, $f6 -/* ABEB44 800479A4 8FA6009C */ lw $a2, 0x9c($sp) -/* ABEB48 800479A8 C60E00D0 */ lwc1 $f14, 0xd0($s0) -/* ABEB4C 800479AC 468032A0 */ cvt.s.w $f10, $f6 -/* ABEB50 800479B0 46085302 */ mul.s $f12, $f10, $f8 -/* ABEB54 800479B4 0C010E27 */ jal func_8004389C -/* ABEB58 800479B8 00000000 */ nop -/* ABEB5C 800479BC E60000D0 */ swc1 $f0, 0xd0($s0) -/* ABEB60 800479C0 3C0D8016 */ lui $t5, %hi(gGameInfo) # $t5, 0x8016 -/* ABEB64 800479C4 8DADFA90 */ lw $t5, %lo(gGameInfo)($t5) -/* ABEB68 800479C8 3C018014 */ lui $at, %hi(D_80139EB0) -/* ABEB6C 800479CC C42A9EB0 */ lwc1 $f10, %lo(D_80139EB0)($at) -/* ABEB70 800479D0 85AE019C */ lh $t6, 0x19c($t5) -/* ABEB74 800479D4 3C018014 */ lui $at, %hi(D_80139EB4) -/* ABEB78 800479D8 C60800E0 */ lwc1 $f8, 0xe0($s0) -/* ABEB7C 800479DC 448E2000 */ mtc1 $t6, $f4 -/* ABEB80 800479E0 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* ABEB84 800479E4 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* ABEB88 800479E8 468021A0 */ cvt.s.w $f6, $f4 -/* ABEB8C 800479EC C4249EB4 */ lwc1 $f4, %lo(D_80139EB4)($at) -/* ABEB90 800479F0 46000386 */ mov.s $f14, $f0 -/* ABEB94 800479F4 460A3302 */ mul.s $f12, $f6, $f10 -/* ABEB98 800479F8 00000000 */ nop -/* ABEB9C 800479FC 46044182 */ mul.s $f6, $f8, $f4 -/* ABEBA0 80047A00 44063000 */ mfc1 $a2, $f6 -/* ABEBA4 80047A04 0C010E27 */ jal func_8004389C -/* ABEBA8 80047A08 00000000 */ nop -/* ABEBAC 80047A0C 860F0022 */ lh $t7, 0x22($s0) -/* ABEBB0 80047A10 E60000D4 */ swc1 $f0, 0xd4($s0) -/* ABEBB4 80047A14 31E80001 */ andi $t0, $t7, 1 -/* ABEBB8 80047A18 5100001E */ beql $t0, $zero, .L80047A94 -/* ABEBBC 80047A1C A6200024 */ sh $zero, 0x24($s1) -/* ABEBC0 80047A20 87A5007A */ lh $a1, 0x7a($sp) -/* ABEBC4 80047A24 02002025 */ move $a0, $s0 -/* ABEBC8 80047A28 00003025 */ move $a2, $zero -/* ABEBCC 80047A2C 24A58001 */ addiu $a1, $a1, -0x7fff -/* ABEBD0 80047A30 00052C00 */ sll $a1, $a1, 0x10 -/* ABEBD4 80047A34 0C0112B7 */ jal func_80044ADC -/* ABEBD8 80047A38 00052C03 */ sra $a1, $a1, 0x10 -/* ABEBDC 80047A3C 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABEBE0 80047A40 44816000 */ mtc1 $at, $f12 -/* ABEBE4 80047A44 C60A0010 */ lwc1 $f10, 0x10($s0) -/* ABEBE8 80047A48 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* ABEBEC 80047A4C 44812000 */ mtc1 $at, $f4 -/* ABEBF0 80047A50 460A6203 */ div.s $f8, $f12, $f10 -/* ABEBF4 80047A54 C60600E0 */ lwc1 $f6, 0xe0($s0) -/* ABEBF8 80047A58 00022400 */ sll $a0, $v0, 0x10 -/* ABEBFC 80047A5C 00042403 */ sra $a0, $a0, 0x10 -/* ABEC00 80047A60 46066281 */ sub.s $f10, $f12, $f6 -/* ABEC04 80047A64 86250024 */ lh $a1, 0x24($s1) -/* ABEC08 80047A68 2407000F */ li $a3, 15 -/* ABEC0C 80047A6C 46044002 */ mul.s $f0, $f8, $f4 -/* ABEC10 80047A70 00000000 */ nop -/* ABEC14 80047A74 460A0082 */ mul.s $f2, $f0, $f10 -/* ABEC18 80047A78 46020200 */ add.s $f8, $f0, $f2 -/* ABEC1C 80047A7C 44064000 */ mfc1 $a2, $f8 -/* ABEC20 80047A80 0C010E47 */ jal func_8004391C -/* ABEC24 80047A84 00000000 */ nop -/* ABEC28 80047A88 10000009 */ b .L80047AB0 -/* ABEC2C 80047A8C A6220024 */ sh $v0, 0x24($s1) -/* ABEC30 80047A90 A6200024 */ sh $zero, 0x24($s1) -.L80047A94: -/* ABEC34 80047A94 C6040104 */ lwc1 $f4, 0x104($s0) -/* ABEC38 80047A98 C6000098 */ lwc1 $f0, 0x98($s0) -/* ABEC3C 80047A9C 46040032 */ c.eq.s $f0, $f4 -/* ABEC40 80047AA0 00000000 */ nop -/* ABEC44 80047AA4 45020003 */ bc1fl .L80047AB4 -/* ABEC48 80047AA8 86390018 */ lh $t9, 0x18($s1) -/* ABEC4C 80047AAC E620001C */ swc1 $f0, 0x1c($s1) -.L80047AB0: -/* ABEC50 80047AB0 86390018 */ lh $t9, 0x18($s1) -.L80047AB4: -/* ABEC54 80047AB4 13200014 */ beqz $t9, .L80047B08 -/* ABEC58 80047AB8 3C01C220 */ li $at, 0xC2200000 # 0.000000 -/* ABEC5C 80047ABC 44813000 */ mtc1 $at, $f6 -/* ABEC60 80047AC0 C60A0000 */ lwc1 $f10, ($s0) -/* ABEC64 80047AC4 460A303C */ c.lt.s $f6, $f10 -/* ABEC68 80047AC8 00000000 */ nop -/* ABEC6C 80047ACC 4502000F */ bc1fl .L80047B0C -/* ABEC70 80047AD0 C6100000 */ lwc1 $f16, ($s0) -/* ABEC74 80047AD4 0C01DE1C */ jal Math_Sins -/* ABEC78 80047AD8 86240014 */ lh $a0, 0x14($s1) -/* ABEC7C 80047ADC 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABEC80 80047AE0 44812000 */ mtc1 $at, $f4 -/* ABEC84 80047AE4 C6080000 */ lwc1 $f8, ($s0) -/* ABEC88 80047AE8 3C01C220 */ li $at, 0xC2200000 # 0.000000 -/* ABEC8C 80047AEC 46002181 */ sub.s $f6, $f4, $f0 -/* ABEC90 80047AF0 44812000 */ mtc1 $at, $f4 -/* ABEC94 80047AF4 46064282 */ mul.s $f10, $f8, $f6 -/* ABEC98 80047AF8 00000000 */ nop -/* ABEC9C 80047AFC 46002202 */ mul.s $f8, $f4, $f0 -/* ABECA0 80047B00 10000002 */ b .L80047B0C -/* ABECA4 80047B04 460A4400 */ add.s $f16, $f8, $f10 -.L80047B08: -/* ABECA8 80047B08 C6100000 */ lwc1 $f16, ($s0) -.L80047B0C: -/* ABECAC 80047B0C 86020022 */ lh $v0, 0x22($s0) -/* ABECB0 80047B10 30490080 */ andi $t1, $v0, 0x80 -/* ABECB4 80047B14 5120000B */ beql $t1, $zero, .L80047B44 -/* ABECB8 80047B18 304A0020 */ andi $t2, $v0, 0x20 -/* ABECBC 80047B1C 44068000 */ mfc1 $a2, $f16 -/* ABECC0 80047B20 30580001 */ andi $t8, $v0, 1 -/* ABECC4 80047B24 AFB80010 */ sw $t8, 0x10($sp) -/* ABECC8 80047B28 02002025 */ move $a0, $s0 -/* ABECCC 80047B2C 27A5006C */ addiu $a1, $sp, 0x6c -/* ABECD0 80047B30 0C011635 */ jal func_800458D4 -/* ABECD4 80047B34 2627001C */ addiu $a3, $s1, 0x1c -/* ABECD8 80047B38 10000012 */ b .L80047B84 -/* ABECDC 80047B3C 27A4007C */ addiu $a0, $sp, 0x7c -/* ABECE0 80047B40 304A0020 */ andi $t2, $v0, 0x20 -.L80047B44: -/* ABECE4 80047B44 11400008 */ beqz $t2, .L80047B68 -/* ABECE8 80047B48 02002025 */ move $a0, $s0 -/* ABECEC 80047B4C 44068000 */ mfc1 $a2, $f16 -/* ABECF0 80047B50 02002025 */ move $a0, $s0 -/* ABECF4 80047B54 27A5006C */ addiu $a1, $sp, 0x6c -/* ABECF8 80047B58 0C0116C2 */ jal func_80045B08 -/* ABECFC 80047B5C 86270024 */ lh $a3, 0x24($s1) -/* ABED00 80047B60 10000008 */ b .L80047B84 -/* ABED04 80047B64 27A4007C */ addiu $a0, $sp, 0x7c -.L80047B68: -/* ABED08 80047B68 30470001 */ andi $a3, $v0, 1 -/* ABED0C 80047B6C 00073C00 */ sll $a3, $a3, 0x10 -/* ABED10 80047B70 44068000 */ mfc1 $a2, $f16 -/* ABED14 80047B74 00073C03 */ sra $a3, $a3, 0x10 -/* ABED18 80047B78 0C0115EA */ jal func_800457A8 -/* ABED1C 80047B7C 27A5006C */ addiu $a1, $sp, 0x6c -/* ABED20 80047B80 27A4007C */ addiu $a0, $sp, 0x7c -.L80047B84: -/* ABED24 80047B84 8FA5003C */ lw $a1, 0x3c($sp) -/* ABED28 80047B88 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* ABED2C 80047B8C 8FA60038 */ lw $a2, 0x38($sp) -/* ABED30 80047B90 862B0028 */ lh $t3, 0x28($s1) -/* ABED34 80047B94 8E060004 */ lw $a2, 4($s0) -/* ABED38 80047B98 8E070008 */ lw $a3, 8($s0) -/* ABED3C 80047B9C 02002025 */ move $a0, $s0 -/* ABED40 80047BA0 8FA5007C */ lw $a1, 0x7c($sp) -/* ABED44 80047BA4 0C011A70 */ jal func_800469C0 -/* ABED48 80047BA8 AFAB0010 */ sw $t3, 0x10($sp) -/* ABED4C 80047BAC E7A0007C */ swc1 $f0, 0x7c($sp) -/* ABED50 80047BB0 E60000DC */ swc1 $f0, 0xdc($s0) -/* ABED54 80047BB4 862C002A */ lh $t4, 0x2a($s1) -/* ABED58 80047BB8 5D800011 */ bgtzl $t4, .L80047C00 -/* ABED5C 80047BBC 862E0018 */ lh $t6, 0x18($s1) -/* ABED60 80047BC0 87AD0070 */ lh $t5, 0x70($sp) -/* ABED64 80047BC4 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABED68 80047BC8 44813000 */ mtc1 $at, $f6 -/* ABED6C 80047BCC A7AD0080 */ sh $t5, 0x80($sp) -/* ABED70 80047BD0 C60400C8 */ lwc1 $f4, 0xc8($s0) -/* ABED74 80047BD4 86240026 */ lh $a0, 0x26($s1) -/* ABED78 80047BD8 87A50072 */ lh $a1, 0x72($sp) -/* ABED7C 80047BDC 46043203 */ div.s $f8, $f6, $f4 -/* ABED80 80047BE0 2407000A */ li $a3, 10 -/* ABED84 80047BE4 44064000 */ mfc1 $a2, $f8 -/* ABED88 80047BE8 0C010E47 */ jal func_8004391C -/* ABED8C 80047BEC 00000000 */ nop -/* ABED90 80047BF0 A7A20082 */ sh $v0, 0x82($sp) -/* ABED94 80047BF4 1000002A */ b .L80047CA0 -/* ABED98 80047BF8 87A30080 */ lh $v1, 0x80($sp) -/* ABED9C 80047BFC 862E0018 */ lh $t6, 0x18($s1) -.L80047C00: -/* ABEDA0 80047C00 02002025 */ move $a0, $s0 -/* ABEDA4 80047C04 87A50072 */ lh $a1, 0x72($sp) -/* ABEDA8 80047C08 11C00019 */ beqz $t6, .L80047C70 -/* ABEDAC 80047C0C C7A40094 */ lwc1 $f4, 0x94($sp) -/* ABEDB0 80047C10 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABEDB4 80047C14 44815000 */ mtc1 $at, $f10 -/* ABEDB8 80047C18 C60600C8 */ lwc1 $f6, 0xc8($s0) -/* ABEDBC 80047C1C 86240016 */ lh $a0, 0x16($s1) -/* ABEDC0 80047C20 87A50072 */ lh $a1, 0x72($sp) -/* ABEDC4 80047C24 46065103 */ div.s $f4, $f10, $f6 -/* ABEDC8 80047C28 2407000A */ li $a3, 10 -/* ABEDCC 80047C2C 44062000 */ mfc1 $a2, $f4 -/* ABEDD0 80047C30 0C010E47 */ jal func_8004391C -/* ABEDD4 80047C34 00000000 */ nop -/* ABEDD8 80047C38 A7A20082 */ sh $v0, 0x82($sp) -/* ABEDDC 80047C3C 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABEDE0 80047C40 44814000 */ mtc1 $at, $f8 -/* ABEDE4 80047C44 C60A00C8 */ lwc1 $f10, 0xc8($s0) -/* ABEDE8 80047C48 86240014 */ lh $a0, 0x14($s1) -/* ABEDEC 80047C4C 87A50070 */ lh $a1, 0x70($sp) -/* ABEDF0 80047C50 460A4183 */ div.s $f6, $f8, $f10 -/* ABEDF4 80047C54 2407000A */ li $a3, 10 -/* ABEDF8 80047C58 44063000 */ mfc1 $a2, $f6 -/* ABEDFC 80047C5C 0C010E47 */ jal func_8004391C -/* ABEE00 80047C60 00000000 */ nop -/* ABEE04 80047C64 00021C00 */ sll $v1, $v0, 0x10 -/* ABEE08 80047C68 1000000D */ b .L80047CA0 -/* ABEE0C 80047C6C 00031C03 */ sra $v1, $v1, 0x10 -.L80047C70: -/* ABEE10 80047C70 860600A2 */ lh $a2, 0xa2($s0) -/* ABEE14 80047C74 8E070014 */ lw $a3, 0x14($s0) -/* ABEE18 80047C78 0C011B2D */ jal func_80046CB4 -/* ABEE1C 80047C7C E7A40010 */ swc1 $f4, 0x10($sp) -/* ABEE20 80047C80 A7A20082 */ sh $v0, 0x82($sp) -/* ABEE24 80047C84 86270024 */ lh $a3, 0x24($s1) -/* ABEE28 80047C88 86060020 */ lh $a2, 0x20($s0) -/* ABEE2C 80047C8C 02002025 */ move $a0, $s0 -/* ABEE30 80047C90 0C011AD1 */ jal func_80046B44 -/* ABEE34 80047C94 87A50070 */ lh $a1, 0x70($sp) -/* ABEE38 80047C98 00021C00 */ sll $v1, $v0, 0x10 -/* ABEE3C 80047C9C 00031C03 */ sra $v1, $v1, 0x10 -.L80047CA0: -/* ABEE40 80047CA0 286138A5 */ slti $at, $v1, 0x38a5 -/* ABEE44 80047CA4 14200002 */ bnez $at, .L80047CB0 -/* ABEE48 80047CA8 27A6007C */ addiu $a2, $sp, 0x7c -/* ABEE4C 80047CAC 240338A4 */ li $v1, 14500 -.L80047CB0: -/* ABEE50 80047CB0 2861C374 */ slti $at, $v1, -0x3c8c -/* ABEE54 80047CB4 10200003 */ beqz $at, .L80047CC4 -/* ABEE58 80047CB8 A7A30080 */ sh $v1, 0x80($sp) -/* ABEE5C 80047CBC 2403C374 */ li $v1, -15500 -/* ABEE60 80047CC0 A7A30080 */ sh $v1, 0x80($sp) -.L80047CC4: -/* ABEE64 80047CC4 8FA40038 */ lw $a0, 0x38($sp) -/* ABEE68 80047CC8 0C010F0A */ jal func_80043C28 -/* ABEE6C 80047CCC 8FA5003C */ lw $a1, 0x3c($sp) -/* ABEE70 80047CD0 860F0140 */ lh $t7, 0x140($s0) -/* ABEE74 80047CD4 24010007 */ li $at, 7 -/* ABEE78 80047CD8 55E10075 */ bnel $t7, $at, .L80047EB0 -/* ABEE7C 80047CDC C608000C */ lwc1 $f8, 0xc($s0) -/* ABEE80 80047CE0 86080022 */ lh $t0, 0x22($s0) -/* ABEE84 80047CE4 31190010 */ andi $t9, $t0, 0x10 -/* ABEE88 80047CE8 57200071 */ bnezl $t9, .L80047EB0 -/* ABEE8C 80047CEC C608000C */ lwc1 $f8, 0xc($s0) -/* ABEE90 80047CF0 860900A2 */ lh $t1, 0xa2($s0) -/* ABEE94 80047CF4 862A002A */ lh $t2, 0x2a($s1) -/* ABEE98 80047CF8 02002025 */ move $a0, $s0 -/* ABEE9C 80047CFC 25388001 */ addiu $t8, $t1, -0x7fff -/* ABEEA0 80047D00 1940000A */ blez $t2, .L80047D2C -/* ABEEA4 80047D04 A6380026 */ sh $t8, 0x26($s1) -/* ABEEA8 80047D08 8E060004 */ lw $a2, 4($s0) -/* ABEEAC 80047D0C 8E07000C */ lw $a3, 0xc($s0) -/* ABEEB0 80047D10 27AB0098 */ addiu $t3, $sp, 0x98 -/* ABEEB4 80047D14 AFAB0010 */ sw $t3, 0x10($sp) -/* ABEEB8 80047D18 AFB10014 */ sw $s1, 0x14($sp) -/* ABEEBC 80047D1C 0C011B88 */ jal func_80046E20 -/* ABEEC0 80047D20 27A5007C */ addiu $a1, $sp, 0x7c -/* ABEEC4 80047D24 10000020 */ b .L80047DA8 -/* ABEEC8 80047D28 862B0018 */ lh $t3, 0x18($s1) -.L80047D2C: -/* ABEECC 80047D2C 8FAC0038 */ lw $t4, 0x38($sp) -/* ABEED0 80047D30 27A60088 */ addiu $a2, $sp, 0x88 -/* ABEED4 80047D34 02002025 */ move $a0, $s0 -/* ABEED8 80047D38 8D8E0000 */ lw $t6, ($t4) -/* ABEEDC 80047D3C ACCE0000 */ sw $t6, ($a2) -/* ABEEE0 80047D40 8D8D0004 */ lw $t5, 4($t4) -/* ABEEE4 80047D44 ACCD0004 */ sw $t5, 4($a2) -/* ABEEE8 80047D48 8D8E0008 */ lw $t6, 8($t4) -/* ABEEEC 80047D4C ACCE0008 */ sw $t6, 8($a2) -/* ABEEF0 80047D50 C602000C */ lwc1 $f2, 0xc($s0) -/* ABEEF4 80047D54 46021000 */ add.s $f0, $f2, $f2 -/* ABEEF8 80047D58 E60000C8 */ swc1 $f0, 0xc8($s0) -/* ABEEFC 80047D5C E6200010 */ swc1 $f0, 0x10($s1) -/* ABEF00 80047D60 0C010FCD */ jal func_80043F34 -/* ABEF04 80047D64 8FA5003C */ lw $a1, 0x3c($sp) -/* ABEF08 80047D68 10400006 */ beqz $v0, .L80047D84 -/* ABEF0C 80047D6C 8FA90038 */ lw $t1, 0x38($sp) -/* ABEF10 80047D70 87AF0072 */ lh $t7, 0x72($sp) -/* ABEF14 80047D74 2408FFFF */ li $t0, -1 -/* ABEF18 80047D78 A628002A */ sh $t0, 0x2a($s1) -/* ABEF1C 80047D7C 10000008 */ b .L80047DA0 -/* ABEF20 80047D80 A62F0026 */ sh $t7, 0x26($s1) -.L80047D84: -/* ABEF24 80047D84 8FB90040 */ lw $t9, 0x40($sp) -/* ABEF28 80047D88 8D2A0000 */ lw $t2, ($t1) -/* ABEF2C 80047D8C AF2A0000 */ sw $t2, ($t9) -/* ABEF30 80047D90 8D380004 */ lw $t8, 4($t1) -/* ABEF34 80047D94 AF380004 */ sw $t8, 4($t9) -/* ABEF38 80047D98 8D2A0008 */ lw $t2, 8($t1) -/* ABEF3C 80047D9C AF2A0008 */ sw $t2, 8($t9) -.L80047DA0: -/* ABEF40 80047DA0 A6200018 */ sh $zero, 0x18($s1) -/* ABEF44 80047DA4 862B0018 */ lh $t3, 0x18($s1) -.L80047DA8: -/* ABEF48 80047DA8 3C018014 */ lui $at, %hi(D_80139EB8) -/* ABEF4C 80047DAC C7AA0098 */ lwc1 $f10, 0x98($sp) -/* ABEF50 80047DB0 51600013 */ beql $t3, $zero, .L80047E00 -/* ABEF54 80047DB4 86180022 */ lh $t8, 0x22($s0) -/* ABEF58 80047DB8 C4289EB8 */ lwc1 $f8, %lo(D_80139EB8)($at) -/* ABEF5C 80047DBC 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABEF60 80047DC0 44812000 */ mtc1 $at, $f4 -/* ABEF64 80047DC4 460A4182 */ mul.s $f6, $f8, $f10 -/* ABEF68 80047DC8 862C0016 */ lh $t4, 0x16($s1) -/* ABEF6C 80047DCC 86050136 */ lh $a1, 0x136($s0) -/* ABEF70 80047DD0 2407000A */ li $a3, 10 -/* ABEF74 80047DD4 258F8001 */ addiu $t7, $t4, -0x7fff -/* ABEF78 80047DD8 01E54823 */ subu $t1, $t7, $a1 -/* ABEF7C 80047DDC 00A92021 */ addu $a0, $a1, $t1 -/* ABEF80 80047DE0 46062201 */ sub.s $f8, $f4, $f6 -/* ABEF84 80047DE4 00042400 */ sll $a0, $a0, 0x10 -/* ABEF88 80047DE8 00042403 */ sra $a0, $a0, 0x10 -/* ABEF8C 80047DEC 44064000 */ mfc1 $a2, $f8 -/* ABEF90 80047DF0 0C010E47 */ jal func_8004391C -/* ABEF94 80047DF4 00000000 */ nop -/* ABEF98 80047DF8 A6020136 */ sh $v0, 0x136($s0) -/* ABEF9C 80047DFC 86180022 */ lh $t8, 0x22($s0) -.L80047E00: -/* ABEFA0 80047E00 87AB0078 */ lh $t3, 0x78($sp) -/* ABEFA4 80047E04 27A4007C */ addiu $a0, $sp, 0x7c -/* ABEFA8 80047E08 330A0004 */ andi $t2, $t8, 4 -/* ABEFAC 80047E0C 11400008 */ beqz $t2, .L80047E30 -/* ABEFB0 80047E10 8FA50040 */ lw $a1, 0x40($sp) -/* ABEFB4 80047E14 000B6023 */ negu $t4, $t3 -/* ABEFB8 80047E18 A60C0134 */ sh $t4, 0x134($s0) -/* ABEFBC 80047E1C 87AD007A */ lh $t5, 0x7a($sp) -/* ABEFC0 80047E20 A6000138 */ sh $zero, 0x138($s0) -/* ABEFC4 80047E24 25AE8001 */ addiu $t6, $t5, -0x7fff -/* ABEFC8 80047E28 10000008 */ b .L80047E4C -/* ABEFCC 80047E2C A60E0136 */ sh $t6, 0x136($s0) -.L80047E30: -/* ABEFD0 80047E30 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* ABEFD4 80047E34 8FA6003C */ lw $a2, 0x3c($sp) -/* ABEFD8 80047E38 87AF0080 */ lh $t7, 0x80($sp) -/* ABEFDC 80047E3C A60F0134 */ sh $t7, 0x134($s0) -/* ABEFE0 80047E40 87A80082 */ lh $t0, 0x82($sp) -/* ABEFE4 80047E44 A6000138 */ sh $zero, 0x138($s0) -/* ABEFE8 80047E48 A6080136 */ sh $t0, 0x136($s0) -.L80047E4C: -/* ABEFEC 80047E4C 3C028016 */ lui $v0, %hi(gSaveContext+0x30) # $v0, 0x8016 -/* ABEFF0 80047E50 8442E690 */ lh $v0, %lo(gSaveContext+0x30)($v0) -/* ABEFF4 80047E54 28410011 */ slti $at, $v0, 0x11 -/* ABEFF8 80047E58 50200024 */ beql $at, $zero, .L80047EEC -/* ABEFFC 80047E5C 28410011 */ slti $at, $v0, 0x11 -/* ABF000 80047E60 8E19008C */ lw $t9, 0x8c($s0) -/* ABF004 80047E64 8F29009C */ lw $t1, 0x9c($t9) -/* ABF008 80047E68 313800FF */ andi $t8, $t1, 0xff -/* ABF00C 80047E6C 5700001F */ bnezl $t8, .L80047EEC -/* ABF010 80047E70 28410011 */ slti $at, $v0, 0x11 -/* ABF014 80047E74 0C03F66B */ jal Math_Rand_ZeroOne -/* ABF018 80047E78 00000000 */ nop -/* ABF01C 80047E7C 3C018014 */ lui $at, %hi(D_80139EBC) -/* ABF020 80047E80 C42A9EBC */ lwc1 $f10, %lo(D_80139EBC)($at) -/* ABF024 80047E84 860E0136 */ lh $t6, 0x136($s0) -/* ABF028 80047E88 3C028016 */ lui $v0, %hi(gSaveContext+0x30) # $v0, 0x8016 -/* ABF02C 80047E8C 460A0102 */ mul.s $f4, $f0, $f10 -/* ABF030 80047E90 4600218D */ trunc.w.s $f6, $f4 -/* ABF034 80047E94 440D3000 */ mfc1 $t5, $f6 -/* ABF038 80047E98 00000000 */ nop -/* ABF03C 80047E9C 01AE7821 */ addu $t7, $t5, $t6 -/* ABF040 80047EA0 A60F0136 */ sh $t7, 0x136($s0) -/* ABF044 80047EA4 10000010 */ b .L80047EE8 -/* ABF048 80047EA8 8442E690 */ lh $v0, %lo(gSaveContext+0x30)($v0) -/* ABF04C 80047EAC C608000C */ lwc1 $f8, 0xc($s0) -.L80047EB0: -/* ABF050 80047EB0 A6200018 */ sh $zero, 0x18($s1) -/* ABF054 80047EB4 3C018012 */ lui $at, %hi(D_8011D3E8) # $at, 0x8012 -/* ABF058 80047EB8 E6280010 */ swc1 $f8, 0x10($s1) -/* ABF05C 80047EBC 8FB90038 */ lw $t9, 0x38($sp) -/* ABF060 80047EC0 AC20D3E8 */ sw $zero, %lo(D_8011D3E8)($at) -/* ABF064 80047EC4 8FA80040 */ lw $t0, 0x40($sp) -/* ABF068 80047EC8 8F380000 */ lw $t8, ($t9) -/* ABF06C 80047ECC 3C028016 */ lui $v0, %hi(gSaveContext+0x30) # $v0, 0x8016 -/* ABF070 80047ED0 AD180000 */ sw $t8, ($t0) -/* ABF074 80047ED4 8F290004 */ lw $t1, 4($t9) -/* ABF078 80047ED8 AD090004 */ sw $t1, 4($t0) -/* ABF07C 80047EDC 8F380008 */ lw $t8, 8($t9) -/* ABF080 80047EE0 AD180008 */ sw $t8, 8($t0) -/* ABF084 80047EE4 8442E690 */ lh $v0, %lo(gSaveContext+0x30)($v0) -.L80047EE8: -/* ABF088 80047EE8 28410011 */ slti $at, $v0, 0x11 -.L80047EEC: -/* ABF08C 80047EEC 10200003 */ beqz $at, .L80047EFC -/* ABF090 80047EF0 3C018014 */ lui $at, %hi(D_80139EC0) -/* ABF094 80047EF4 10000004 */ b .L80047F08 -/* ABF098 80047EF8 C4309EC0 */ lwc1 $f16, %lo(D_80139EC0)($at) -.L80047EFC: -/* ABF09C 80047EFC 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABF0A0 80047F00 44818000 */ mtc1 $at, $f16 -/* ABF0A4 80047F04 00000000 */ nop -.L80047F08: -/* ABF0A8 80047F08 C60A0018 */ lwc1 $f10, 0x18($s0) -/* ABF0AC 80047F0C C60E00FC */ lwc1 $f14, 0xfc($s0) -/* ABF0B0 80047F10 8E0600D4 */ lw $a2, 0xd4($s0) -/* ABF0B4 80047F14 46105302 */ mul.s $f12, $f10, $f16 -/* ABF0B8 80047F18 0C010E27 */ jal func_8004389C -/* ABF0BC 80047F1C 3C073F80 */ lui $a3, 0x3f80 -/* ABF0C0 80047F20 E60000FC */ swc1 $f0, 0xfc($s0) -/* ABF0C4 80047F24 00002025 */ move $a0, $zero -/* ABF0C8 80047F28 8605015A */ lh $a1, 0x15a($s0) -/* ABF0CC 80047F2C 3C063F00 */ lui $a2, 0x3f00 -/* ABF0D0 80047F30 0C010E47 */ jal func_8004391C -/* ABF0D4 80047F34 2407000A */ li $a3, 10 -/* ABF0D8 80047F38 A602015A */ sh $v0, 0x15a($s0) -/* ABF0DC 80047F3C 02002025 */ move $a0, $s0 -/* ABF0E0 80047F40 0C011429 */ jal func_800450A4 -/* ABF0E4 80047F44 8E05001C */ lw $a1, 0x1c($s0) -/* ABF0E8 80047F48 E6000100 */ swc1 $f0, 0x100($s0) -/* ABF0EC 80047F4C 8FBF0024 */ lw $ra, 0x24($sp) -/* ABF0F0 80047F50 8FB10020 */ lw $s1, 0x20($sp) -/* ABF0F4 80047F54 8FB0001C */ lw $s0, 0x1c($sp) -/* ABF0F8 80047F58 27BD00B0 */ addiu $sp, $sp, 0xb0 -/* ABF0FC 80047F5C 03E00008 */ jr $ra -/* ABF100 80047F60 24020001 */ li $v0, 1 diff --git a/asm/non_matchings/code/z_camera/Camera_Normal2.s b/asm/non_matchings/code/z_camera/Camera_Normal2.s deleted file mode 100644 index e8dfb61bc1..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Normal2.s +++ /dev/null @@ -1,617 +0,0 @@ -.late_rodata -glabel D_80139EC4 - .float 0.01 - -glabel D_80139EC8 - .float 0.01 - -glabel D_80139ECC - .float 182.041671753 - .float 0.01 - - -glabel D_80139ED4 - .float 0.01 - .float 0.01 - -glabel D_80139EDC - .float 0.01 - -glabel D_80139EE0 - .float 0.01 - -glabel D_80139EE4 - .float 0.01 - -glabel D_80139EE8 - .float 0.01 - -glabel D_80139EEC - .float 0.05 - -.text -glabel Camera_Normal2 -/* ABF104 80047F64 27BDFF20 */ addiu $sp, $sp, -0xe0 -/* ABF108 80047F68 AFB0001C */ sw $s0, 0x1c($sp) -/* ABF10C 80047F6C 00808025 */ move $s0, $a0 -/* ABF110 80047F70 AFBF0024 */ sw $ra, 0x24($sp) -/* ABF114 80047F74 AFB10020 */ sw $s1, 0x20($sp) -/* ABF118 80047F78 0C00B721 */ jal Player_GetCameraYOffset -/* ABF11C 80047F7C 8C840090 */ lw $a0, 0x90($a0) -/* ABF120 80047F80 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 -/* ABF124 80047F84 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1) -/* ABF128 80047F88 3C018014 */ lui $at, %hi(D_80139EC4) -/* ABF12C 80047F8C C4309EC4 */ lwc1 $f16, %lo(D_80139EC4)($at) -/* ABF130 80047F90 846E01F0 */ lh $t6, 0x1f0($v1) -/* ABF134 80047F94 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABF138 80047F98 44814000 */ mtc1 $at, $f8 -/* ABF13C 80047F9C 448E2000 */ mtc1 $t6, $f4 -/* ABF140 80047FA0 3C014288 */ li $at, 0x42880000 # 0.000000 -/* ABF144 80047FA4 44819000 */ mtc1 $at, $f18 -/* ABF148 80047FA8 468021A0 */ cvt.s.w $f6, $f4 -/* ABF14C 80047FAC 846F0314 */ lh $t7, 0x314($v1) -/* ABF150 80047FB0 46000306 */ mov.s $f12, $f0 -/* ABF154 80047FB4 46009103 */ div.s $f4, $f18, $f0 -/* ABF158 80047FB8 46103082 */ mul.s $f2, $f6, $f16 -/* ABF15C 80047FBC 46024280 */ add.s $f10, $f8, $f2 -/* ABF160 80047FC0 46041182 */ mul.s $f6, $f2, $f4 -/* ABF164 80047FC4 11E00009 */ beqz $t7, .L80047FEC -/* ABF168 80047FC8 46065381 */ sub.s $f14, $f10, $f6 -/* ABF16C 80047FCC 02002025 */ move $a0, $s0 -/* ABF170 80047FD0 E7AC0060 */ swc1 $f12, 0x60($sp) -/* ABF174 80047FD4 0C011495 */ jal Camera_CopyPREGToModeValues -/* ABF178 80047FD8 E7AE005C */ swc1 $f14, 0x5c($sp) -/* ABF17C 80047FDC 3C018014 */ lui $at, %hi(D_80139EC8) -/* ABF180 80047FE0 C4309EC8 */ lwc1 $f16, %lo(D_80139EC8)($at) -/* ABF184 80047FE4 C7AC0060 */ lwc1 $f12, 0x60($sp) -/* ABF188 80047FE8 C7AE005C */ lwc1 $f14, 0x5c($sp) -.L80047FEC: -/* ABF18C 80047FEC 8602015E */ lh $v0, 0x15e($s0) -/* ABF190 80047FF0 10400009 */ beqz $v0, .L80048018 -/* ABF194 80047FF4 2401000A */ li $at, 10 -/* ABF198 80047FF8 10410007 */ beq $v0, $at, .L80048018 -/* ABF19C 80047FFC 24010014 */ li $at, 20 -/* ABF1A0 80048000 10410005 */ beq $v0, $at, .L80048018 -/* ABF1A4 80048004 3C188016 */ lui $t8, %hi(gGameInfo) # $t8, 0x8016 -/* ABF1A8 80048008 8F18FA90 */ lw $t8, %lo(gGameInfo)($t8) -/* ABF1AC 8004800C 87030314 */ lh $v1, 0x314($t8) -/* ABF1B0 80048010 10600050 */ beqz $v1, .L80048154 -/* ABF1B4 80048014 00000000 */ nop -.L80048018: -/* ABF1B8 80048018 86190142 */ lh $t9, 0x142($s0) -/* ABF1BC 8004801C 3C098012 */ lui $t1, %hi(sCameraSettings+4) -/* ABF1C0 80048020 860A0144 */ lh $t2, 0x144($s0) -/* ABF1C4 80048024 001940C0 */ sll $t0, $t9, 3 -/* ABF1C8 80048028 01284821 */ addu $t1, $t1, $t0 -/* ABF1CC 8004802C 8D29D068 */ lw $t1, %lo(sCameraSettings+4)($t1) -/* ABF1D0 80048030 000A58C0 */ sll $t3, $t2, 3 -/* ABF1D4 80048034 3C018014 */ lui $at, %hi(D_80139ECC) -/* ABF1D8 80048038 012B6021 */ addu $t4, $t1, $t3 -/* ABF1DC 8004803C 8D820004 */ lw $v0, 4($t4) -/* ABF1E0 80048040 844D0000 */ lh $t5, ($v0) -/* ABF1E4 80048044 24420020 */ addiu $v0, $v0, 0x20 -/* ABF1E8 80048048 448D4000 */ mtc1 $t5, $f8 -/* ABF1EC 8004804C 00000000 */ nop -/* ABF1F0 80048050 468044A0 */ cvt.s.w $f18, $f8 -/* ABF1F4 80048054 46109102 */ mul.s $f4, $f18, $f16 -/* ABF1F8 80048058 00000000 */ nop -/* ABF1FC 8004805C 460C2282 */ mul.s $f10, $f4, $f12 -/* ABF200 80048060 00000000 */ nop -/* ABF204 80048064 460E5182 */ mul.s $f6, $f10, $f14 -/* ABF208 80048068 E6060000 */ swc1 $f6, ($s0) -/* ABF20C 8004806C 844EFFE4 */ lh $t6, -0x1c($v0) -/* ABF210 80048070 448E4000 */ mtc1 $t6, $f8 -/* ABF214 80048074 3C0E8016 */ lui $t6, %hi(gGameInfo) -/* ABF218 80048078 468044A0 */ cvt.s.w $f18, $f8 -/* ABF21C 8004807C 46109102 */ mul.s $f4, $f18, $f16 -/* ABF220 80048080 00000000 */ nop -/* ABF224 80048084 460C2282 */ mul.s $f10, $f4, $f12 -/* ABF228 80048088 00000000 */ nop -/* ABF22C 8004808C 460E5182 */ mul.s $f6, $f10, $f14 -/* ABF230 80048090 E6060004 */ swc1 $f6, 4($s0) -/* ABF234 80048094 844FFFE8 */ lh $t7, -0x18($v0) -/* ABF238 80048098 448F4000 */ mtc1 $t7, $f8 -/* ABF23C 8004809C 00000000 */ nop -/* ABF240 800480A0 468044A0 */ cvt.s.w $f18, $f8 -/* ABF244 800480A4 46109102 */ mul.s $f4, $f18, $f16 -/* ABF248 800480A8 00000000 */ nop -/* ABF24C 800480AC 460C2282 */ mul.s $f10, $f4, $f12 -/* ABF250 800480B0 00000000 */ nop -/* ABF254 800480B4 460E5182 */ mul.s $f6, $f10, $f14 -/* ABF258 800480B8 E6060008 */ swc1 $f6, 8($s0) -/* ABF25C 800480BC 8458FFEC */ lh $t8, -0x14($v0) -/* ABF260 800480C0 C4249ECC */ lwc1 $f4, %lo(D_80139ECC)($at) -/* ABF264 800480C4 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* ABF268 800480C8 44984000 */ mtc1 $t8, $f8 -/* ABF26C 800480CC 44813000 */ mtc1 $at, $f6 -/* ABF270 800480D0 468044A0 */ cvt.s.w $f18, $f8 -/* ABF274 800480D4 46049282 */ mul.s $f10, $f18, $f4 -/* ABF278 800480D8 46065200 */ add.s $f8, $f10, $f6 -/* ABF27C 800480DC 4600448D */ trunc.w.s $f18, $f8 -/* ABF280 800480E0 44089000 */ mfc1 $t0, $f18 -/* ABF284 800480E4 00000000 */ nop -/* ABF288 800480E8 A608001C */ sh $t0, 0x1c($s0) -/* ABF28C 800480EC 844AFFF0 */ lh $t2, -0x10($v0) -/* ABF290 800480F0 448A2000 */ mtc1 $t2, $f4 -/* ABF294 800480F4 00000000 */ nop -/* ABF298 800480F8 468022A0 */ cvt.s.w $f10, $f4 -/* ABF29C 800480FC E60A000C */ swc1 $f10, 0xc($s0) -/* ABF2A0 80048100 8449FFF4 */ lh $t1, -0xc($v0) -/* ABF2A4 80048104 44893000 */ mtc1 $t1, $f6 -/* ABF2A8 80048108 00000000 */ nop -/* ABF2AC 8004810C 46803220 */ cvt.s.w $f8, $f6 -/* ABF2B0 80048110 46104482 */ mul.s $f18, $f8, $f16 -/* ABF2B4 80048114 E6120010 */ swc1 $f18, 0x10($s0) -/* ABF2B8 80048118 844BFFF8 */ lh $t3, -8($v0) -/* ABF2BC 8004811C 448B2000 */ mtc1 $t3, $f4 -/* ABF2C0 80048120 00000000 */ nop -/* ABF2C4 80048124 468022A0 */ cvt.s.w $f10, $f4 -/* ABF2C8 80048128 E60A0014 */ swc1 $f10, 0x14($s0) -/* ABF2CC 8004812C 844CFFFC */ lh $t4, -4($v0) -/* ABF2D0 80048130 448C3000 */ mtc1 $t4, $f6 -/* ABF2D4 80048134 00000000 */ nop -/* ABF2D8 80048138 46803220 */ cvt.s.w $f8, $f6 -/* ABF2DC 8004813C 46104482 */ mul.s $f18, $f8, $f16 -/* ABF2E0 80048140 E6120018 */ swc1 $f18, 0x18($s0) -/* ABF2E4 80048144 844D0000 */ lh $t5, ($v0) -/* ABF2E8 80048148 A60D001E */ sh $t5, 0x1e($s0) -/* ABF2EC 8004814C 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* ABF2F0 80048150 85C30314 */ lh $v1, 0x314($t6) -.L80048154: -/* ABF2F4 80048154 50600004 */ beql $v1, $zero, .L80048168 -/* ABF2F8 80048158 860F001E */ lh $t7, 0x1e($s0) -/* ABF2FC 8004815C 0C011495 */ jal Camera_CopyPREGToModeValues -/* ABF300 80048160 02002025 */ move $a0, $s0 -/* ABF304 80048164 860F001E */ lh $t7, 0x1e($s0) -.L80048168: -/* ABF308 80048168 3C018012 */ lui $at, %hi(D_8011D3A0) -/* ABF30C 8004816C AC2FD3A0 */ sw $t7, %lo(D_8011D3A0)($at) -/* ABF310 80048170 8602015E */ lh $v0, 0x15e($s0) -/* ABF314 80048174 10400007 */ beqz $v0, .L80048194 -/* ABF318 80048178 2401000A */ li $at, 10 -/* ABF31C 8004817C 10410005 */ beq $v0, $at, .L80048194 -/* ABF320 80048180 24010014 */ li $at, 20 -/* ABF324 80048184 10410003 */ beq $v0, $at, .L80048194 -/* ABF328 80048188 24010019 */ li $at, 25 -/* ABF32C 8004818C 14410042 */ bne $v0, $at, .L80048298 -/* ABF330 80048190 26180094 */ addiu $t8, $s0, 0x94 -.L80048194: -/* ABF334 80048194 0C0111DB */ jal func_8004476C -/* ABF338 80048198 02002025 */ move $a0, $s0 -/* ABF33C 8004819C 26110020 */ addiu $s1, $s0, 0x20 -/* ABF340 800481A0 02202025 */ move $a0, $s1 -/* ABF344 800481A4 00402825 */ move $a1, $v0 -/* ABF348 800481A8 0C010EF1 */ jal func_80043BC4 -/* ABF34C 800481AC AFA20064 */ sw $v0, 0x64($sp) -/* ABF350 800481B0 8FA60064 */ lw $a2, 0x64($sp) -/* ABF354 800481B4 26080094 */ addiu $t0, $s0, 0x94 -/* ABF358 800481B8 2404FFFF */ li $a0, -1 -/* ABF35C 800481BC 84D80006 */ lh $t8, 6($a2) -/* ABF360 800481C0 27A50088 */ addiu $a1, $sp, 0x88 -/* ABF364 800481C4 A6380020 */ sh $t8, 0x20($s1) -/* ABF368 800481C8 84D90008 */ lh $t9, 8($a2) -/* ABF36C 800481CC A6390022 */ sh $t9, 0x22($s1) -/* ABF370 800481D0 AFA8003C */ sw $t0, 0x3c($sp) -/* ABF374 800481D4 C5040004 */ lwc1 $f4, 4($t0) -/* ABF378 800481D8 E6240024 */ swc1 $f4, 0x24($s1) -/* ABF37C 800481DC 84C3000C */ lh $v1, 0xc($a2) -/* ABF380 800481E0 14830004 */ bne $a0, $v1, .L800481F4 -/* ABF384 800481E4 28610169 */ slti $at, $v1, 0x169 -/* ABF388 800481E8 C60A0014 */ lwc1 $f10, 0x14($s0) -/* ABF38C 800481EC 1000000E */ b .L80048228 -/* ABF390 800481F0 E62A001C */ swc1 $f10, 0x1c($s1) -.L800481F4: -/* ABF394 800481F4 54200009 */ bnezl $at, .L8004821C -/* ABF398 800481F8 44832000 */ mtc1 $v1, $f4 -/* ABF39C 800481FC 44833000 */ mtc1 $v1, $f6 -/* ABF3A0 80048200 3C018014 */ lui $at, %hi(D_80139ED4) -/* ABF3A4 80048204 C4329ED4 */ lwc1 $f18, %lo(D_80139ED4)($at) -/* ABF3A8 80048208 46803220 */ cvt.s.w $f8, $f6 -/* ABF3AC 8004820C 46124002 */ mul.s $f0, $f8, $f18 -/* ABF3B0 80048210 10000005 */ b .L80048228 -/* ABF3B4 80048214 E620001C */ swc1 $f0, 0x1c($s1) -/* ABF3B8 80048218 44832000 */ mtc1 $v1, $f4 -.L8004821C: -/* ABF3BC 8004821C 00000000 */ nop -/* ABF3C0 80048220 46802020 */ cvt.s.w $f0, $f4 -/* ABF3C4 80048224 E620001C */ swc1 $f0, 0x1c($s1) -.L80048228: -/* ABF3C8 80048228 84C2000E */ lh $v0, 0xe($a2) -/* ABF3CC 8004822C 44805000 */ mtc1 $zero, $f10 -/* ABF3D0 80048230 54820004 */ bnel $a0, $v0, .L80048244 -/* ABF3D4 80048234 A6220028 */ sh $v0, 0x28($s1) -/* ABF3D8 80048238 10000002 */ b .L80048244 -/* ABF3DC 8004823C A6200028 */ sh $zero, 0x28($s1) -/* ABF3E0 80048240 A6220028 */ sh $v0, 0x28($s1) -.L80048244: -/* ABF3E4 80048244 E62A0018 */ swc1 $f10, 0x18($s1) -/* ABF3E8 80048248 8609001E */ lh $t1, 0x1e($s0) -/* ABF3EC 8004824C 312B0004 */ andi $t3, $t1, 4 -/* ABF3F0 80048250 5160000C */ beql $t3, $zero, .L80048284 -/* ABF3F4 80048254 3C014248 */ lui $at, 0x4248 -/* ABF3F8 80048258 862C0020 */ lh $t4, 0x20($s1) -/* ABF3FC 8004825C 3C0142C8 */ li $at, 0x42C80000 # 0.000000 -/* ABF400 80048260 44813000 */ mtc1 $at, $f6 -/* ABF404 80048264 A7AC008C */ sh $t4, 0x8c($sp) -/* ABF408 80048268 862D0022 */ lh $t5, 0x22($s1) -/* ABF40C 8004826C 2624000C */ addiu $a0, $s1, 0xc -/* ABF410 80048270 E7A60088 */ swc1 $f6, 0x88($sp) -/* ABF414 80048274 25AE3FFF */ addiu $t6, $t5, 0x3fff -/* ABF418 80048278 0C01F097 */ jal OLib_VecSphGeoToVec3f -/* ABF41C 8004827C A7AE008E */ sh $t6, 0x8e($sp) -/* ABF420 80048280 3C014248 */ li $at, 0x42480000 # 0.000000 -.L80048284: -/* ABF424 80048284 44814000 */ mtc1 $at, $f8 -/* ABF428 80048288 240F0001 */ li $t7, 1 -/* ABF42C 8004828C A60F015E */ sh $t7, 0x15e($s0) -/* ABF430 80048290 1000000A */ b .L800482BC -/* ABF434 80048294 E60800C8 */ swc1 $f8, 0xc8($s0) -.L80048298: -/* ABF438 80048298 AFB8003C */ sw $t8, 0x3c($sp) -/* ABF43C 8004829C C6120104 */ lwc1 $f18, 0x104($s0) -/* ABF440 800482A0 C7000004 */ lwc1 $f0, 4($t8) -/* ABF444 800482A4 26110020 */ addiu $s1, $s0, 0x20 -/* ABF448 800482A8 46120032 */ c.eq.s $f0, $f18 -/* ABF44C 800482AC 00000000 */ nop -/* ABF450 800482B0 45000002 */ bc1f .L800482BC -/* ABF454 800482B4 00000000 */ nop -/* ABF458 800482B8 E6000044 */ swc1 $f0, 0x44($s0) -.L800482BC: -/* ABF45C 800482BC 26050050 */ addiu $a1, $s0, 0x50 -/* ABF460 800482C0 2606005C */ addiu $a2, $s0, 0x5c -/* ABF464 800482C4 AFA60048 */ sw $a2, 0x48($sp) -/* ABF468 800482C8 AFA50044 */ sw $a1, 0x44($sp) -/* ABF46C 800482CC 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* ABF470 800482D0 27A40080 */ addiu $a0, $sp, 0x80 -/* ABF474 800482D4 26060074 */ addiu $a2, $s0, 0x74 -/* ABF478 800482D8 AFA60040 */ sw $a2, 0x40($sp) -/* ABF47C 800482DC 27A40078 */ addiu $a0, $sp, 0x78 -/* ABF480 800482E0 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* ABF484 800482E4 8FA50044 */ lw $a1, 0x44($sp) -/* ABF488 800482E8 3C018014 */ lui $at, %hi(D_80139EDC) -/* ABF48C 800482EC C4309EDC */ lwc1 $f16, %lo(D_80139EDC)($at) -/* ABF490 800482F0 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* ABF494 800482F4 44815000 */ mtc1 $at, $f10 -/* ABF498 800482F8 C60400E0 */ lwc1 $f4, 0xe0($s0) -/* ABF49C 800482FC 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 -/* ABF4A0 80048300 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* ABF4A4 80048304 460A2182 */ mul.s $f6, $f4, $f10 -/* ABF4A8 80048308 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* ABF4AC 8004830C E60600E0 */ swc1 $f6, 0xe0($s0) -/* ABF4B0 80048310 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1) -/* ABF4B4 80048314 C60000E0 */ lwc1 $f0, 0xe0($s0) -/* ABF4B8 80048318 846801C6 */ lh $t0, 0x1c6($v1) -/* ABF4BC 8004831C 44884000 */ mtc1 $t0, $f8 -/* ABF4C0 80048320 00000000 */ nop -/* ABF4C4 80048324 468044A0 */ cvt.s.w $f18, $f8 -/* ABF4C8 80048328 46109082 */ mul.s $f2, $f18, $f16 -/* ABF4CC 8004832C 00000000 */ nop -/* ABF4D0 80048330 46001102 */ mul.s $f4, $f2, $f0 -/* ABF4D4 80048334 44061000 */ mfc1 $a2, $f2 -/* ABF4D8 80048338 E7A400A4 */ swc1 $f4, 0xa4($sp) -/* ABF4DC 8004833C 846A01C8 */ lh $t2, 0x1c8($v1) -/* ABF4E0 80048340 448A5000 */ mtc1 $t2, $f10 -/* ABF4E4 80048344 00000000 */ nop -/* ABF4E8 80048348 468051A0 */ cvt.s.w $f6, $f10 -/* ABF4EC 8004834C 46103202 */ mul.s $f8, $f6, $f16 -/* ABF4F0 80048350 00000000 */ nop -/* ABF4F4 80048354 46004482 */ mul.s $f18, $f8, $f0 -/* ABF4F8 80048358 E7B200A0 */ swc1 $f18, 0xa0($sp) -/* ABF4FC 8004835C C60400C8 */ lwc1 $f4, 0xc8($s0) -/* ABF500 80048360 C60C000C */ lwc1 $f12, 0xc($s0) -/* ABF504 80048364 46002382 */ mul.s $f14, $f4, $f0 -/* ABF508 80048368 0C010E27 */ jal func_8004389C -/* ABF50C 8004836C 00000000 */ nop -/* ABF510 80048370 E60000C8 */ swc1 $f0, 0xc8($s0) -/* ABF514 80048374 3C098016 */ lui $t1, %hi(gGameInfo) # $t1, 0x8016 -/* ABF518 80048378 8D29FA90 */ lw $t1, %lo(gGameInfo)($t1) -/* ABF51C 8004837C 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* ABF520 80048380 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* ABF524 80048384 852B01A2 */ lh $t3, 0x1a2($t1) -/* ABF528 80048388 8FA600A0 */ lw $a2, 0xa0($sp) -/* ABF52C 8004838C C60E00C4 */ lwc1 $f14, 0xc4($s0) -/* ABF530 80048390 448B5000 */ mtc1 $t3, $f10 -/* ABF534 80048394 0C010E27 */ jal func_8004389C -/* ABF538 80048398 46805320 */ cvt.s.w $f12, $f10 -/* ABF53C 8004839C E60000C4 */ swc1 $f0, 0xc4($s0) -/* ABF540 800483A0 3C0C8016 */ lui $t4, %hi(gGameInfo) # $t4, 0x8016 -/* ABF544 800483A4 8D8CFA90 */ lw $t4, %lo(gGameInfo)($t4) -/* ABF548 800483A8 3C018014 */ lui $at, %hi(D_80139EE0) -/* ABF54C 800483AC C4329EE0 */ lwc1 $f18, %lo(D_80139EE0)($at) -/* ABF550 800483B0 858D0198 */ lh $t5, 0x198($t4) -/* ABF554 800483B4 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000 -/* ABF558 800483B8 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* ABF55C 800483BC 448D3000 */ mtc1 $t5, $f6 -/* ABF560 800483C0 8FA600A4 */ lw $a2, 0xa4($sp) -/* ABF564 800483C4 C60E00CC */ lwc1 $f14, 0xcc($s0) -/* ABF568 800483C8 46803220 */ cvt.s.w $f8, $f6 -/* ABF56C 800483CC 46124302 */ mul.s $f12, $f8, $f18 -/* ABF570 800483D0 0C010E27 */ jal func_8004389C -/* ABF574 800483D4 00000000 */ nop -/* ABF578 800483D8 E60000CC */ swc1 $f0, 0xcc($s0) -/* ABF57C 800483DC 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 -/* ABF580 800483E0 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* ABF584 800483E4 3C018014 */ lui $at, %hi(D_80139EE4) -/* ABF588 800483E8 C4269EE4 */ lwc1 $f6, %lo(D_80139EE4)($at) -/* ABF58C 800483EC 85CF019A */ lh $t7, 0x19a($t6) -/* ABF590 800483F0 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000 -/* ABF594 800483F4 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* ABF598 800483F8 448F2000 */ mtc1 $t7, $f4 -/* ABF59C 800483FC 8FA600A0 */ lw $a2, 0xa0($sp) -/* ABF5A0 80048400 C60E00D0 */ lwc1 $f14, 0xd0($s0) -/* ABF5A4 80048404 468022A0 */ cvt.s.w $f10, $f4 -/* ABF5A8 80048408 46065302 */ mul.s $f12, $f10, $f6 -/* ABF5AC 8004840C 0C010E27 */ jal func_8004389C -/* ABF5B0 80048410 00000000 */ nop -/* ABF5B4 80048414 E60000D0 */ swc1 $f0, 0xd0($s0) -/* ABF5B8 80048418 3C188016 */ lui $t8, %hi(gGameInfo) # $t8, 0x8016 -/* ABF5BC 8004841C 8F18FA90 */ lw $t8, %lo(gGameInfo)($t8) -/* ABF5C0 80048420 3C018014 */ lui $at, %hi(D_80139EE8) -/* ABF5C4 80048424 C4249EE8 */ lwc1 $f4, %lo(D_80139EE8)($at) -/* ABF5C8 80048428 8719019C */ lh $t9, 0x19c($t8) -/* ABF5CC 8004842C 3C018014 */ lui $at, %hi(D_80139EEC) -/* ABF5D0 80048430 C4269EEC */ lwc1 $f6, %lo(D_80139EEC)($at) -/* ABF5D4 80048434 44994000 */ mtc1 $t9, $f8 -/* ABF5D8 80048438 C60A00E0 */ lwc1 $f10, 0xe0($s0) -/* ABF5DC 8004843C 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* ABF5E0 80048440 468044A0 */ cvt.s.w $f18, $f8 -/* ABF5E4 80048444 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* ABF5E8 80048448 46000386 */ mov.s $f14, $f0 -/* ABF5EC 8004844C 46049302 */ mul.s $f12, $f18, $f4 -/* ABF5F0 80048450 00000000 */ nop -/* ABF5F4 80048454 46065202 */ mul.s $f8, $f10, $f6 -/* ABF5F8 80048458 44064000 */ mfc1 $a2, $f8 -/* ABF5FC 8004845C 0C010E27 */ jal func_8004389C -/* ABF600 80048460 00000000 */ nop -/* ABF604 80048464 8602001E */ lh $v0, 0x1e($s0) -/* ABF608 80048468 E60000D4 */ swc1 $f0, 0xd4($s0) -/* ABF60C 8004846C 30480080 */ andi $t0, $v0, 0x80 -/* ABF610 80048470 15000009 */ bnez $t0, .L80048498 -/* ABF614 80048474 30470001 */ andi $a3, $v0, 1 -/* ABF618 80048478 00073C00 */ sll $a3, $a3, 0x10 -/* ABF61C 8004847C 00073C03 */ sra $a3, $a3, 0x10 -/* ABF620 80048480 02002025 */ move $a0, $s0 -/* ABF624 80048484 27A50078 */ addiu $a1, $sp, 0x78 -/* ABF628 80048488 0C0115EA */ jal func_800457A8 -/* ABF62C 8004848C 8E060000 */ lw $a2, ($s0) -/* ABF630 80048490 10000009 */ b .L800484B8 -/* ABF634 80048494 8609001E */ lh $t1, 0x1e($s0) -.L80048498: -/* ABF638 80048498 8E060000 */ lw $a2, ($s0) -/* ABF63C 8004849C 304A0001 */ andi $t2, $v0, 1 -/* ABF640 800484A0 AFAA0010 */ sw $t2, 0x10($sp) -/* ABF644 800484A4 02002025 */ move $a0, $s0 -/* ABF648 800484A8 27A50078 */ addiu $a1, $sp, 0x78 -/* ABF64C 800484AC 0C011635 */ jal func_800458D4 -/* ABF650 800484B0 26270024 */ addiu $a3, $s1, 0x24 -/* ABF654 800484B4 8609001E */ lh $t1, 0x1e($s0) -.L800484B8: -/* ABF658 800484B8 312B0004 */ andi $t3, $t1, 4 -/* ABF65C 800484BC 5160000B */ beql $t3, $zero, .L800484EC -/* ABF660 800484C0 8FA2003C */ lw $v0, 0x3c($sp) -/* ABF664 800484C4 8FA2003C */ lw $v0, 0x3c($sp) -/* ABF668 800484C8 C624000C */ lwc1 $f4, 0xc($s1) -/* ABF66C 800484CC C6280014 */ lwc1 $f8, 0x14($s1) -/* ABF670 800484D0 C4520000 */ lwc1 $f18, ($v0) -/* ABF674 800484D4 46049280 */ add.s $f10, $f18, $f4 -/* ABF678 800484D8 E62A0000 */ swc1 $f10, ($s1) -/* ABF67C 800484DC C4460008 */ lwc1 $f6, 8($v0) -/* ABF680 800484E0 46083480 */ add.s $f18, $f6, $f8 -/* ABF684 800484E4 E6320008 */ swc1 $f18, 8($s1) -/* ABF688 800484E8 8FA2003C */ lw $v0, 0x3c($sp) -.L800484EC: -/* ABF68C 800484EC 27A40088 */ addiu $a0, $sp, 0x88 -/* ABF690 800484F0 02202825 */ move $a1, $s1 -/* ABF694 800484F4 C4440004 */ lwc1 $f4, 4($v0) -/* ABF698 800484F8 E6240004 */ swc1 $f4, 4($s1) -/* ABF69C 800484FC 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* ABF6A0 80048500 8FA60044 */ lw $a2, 0x44($sp) -/* ABF6A4 80048504 27A40090 */ addiu $a0, $sp, 0x90 -/* ABF6A8 80048508 8FA50044 */ lw $a1, 0x44($sp) -/* ABF6AC 8004850C 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* ABF6B0 80048510 8FA60040 */ lw $a2, 0x40($sp) -/* ABF6B4 80048514 862C0028 */ lh $t4, 0x28($s1) -/* ABF6B8 80048518 318D0002 */ andi $t5, $t4, 2 -/* ABF6BC 8004851C 51A00004 */ beql $t5, $zero, .L80048530 -/* ABF6C0 80048520 8605001C */ lh $a1, 0x1c($s0) -/* ABF6C4 80048524 10000002 */ b .L80048530 -/* ABF6C8 80048528 86250022 */ lh $a1, 0x22($s1) -/* ABF6CC 8004852C 8605001C */ lh $a1, 0x1c($s0) -.L80048530: -/* ABF6D0 80048530 28A14000 */ slti $at, $a1, 0x4000 -/* ABF6D4 80048534 1020000B */ beqz $at, .L80048564 -/* ABF6D8 80048538 87AE0096 */ lh $t6, 0x96($sp) -/* ABF6DC 8004853C 87AF008E */ lh $t7, 0x8e($sp) -/* ABF6E0 80048540 01CF1823 */ subu $v1, $t6, $t7 -/* ABF6E4 80048544 00031C00 */ sll $v1, $v1, 0x10 -/* ABF6E8 80048548 00031C03 */ sra $v1, $v1, 0x10 -/* ABF6EC 8004854C 04600003 */ bltz $v1, .L8004855C -/* ABF6F0 80048550 00031023 */ negu $v0, $v1 -/* ABF6F4 80048554 10000001 */ b .L8004855C -/* ABF6F8 80048558 00601025 */ move $v0, $v1 -.L8004855C: -/* ABF6FC 8004855C 00A2082A */ slt $at, $a1, $v0 -/* ABF700 80048560 1420000E */ bnez $at, .L8004859C -.L80048564: -/* ABF704 80048564 28A14000 */ slti $at, $a1, 0x4000 -/* ABF708 80048568 14200030 */ bnez $at, .L8004862C -/* ABF70C 8004856C 87B80096 */ lh $t8, 0x96($sp) -/* ABF710 80048570 87B9008E */ lh $t9, 0x8e($sp) -/* ABF714 80048574 03191823 */ subu $v1, $t8, $t9 -/* ABF718 80048578 00031C00 */ sll $v1, $v1, 0x10 -/* ABF71C 8004857C 00031C03 */ sra $v1, $v1, 0x10 -/* ABF720 80048580 04600003 */ bltz $v1, .L80048590 -/* ABF724 80048584 00031023 */ negu $v0, $v1 -/* ABF728 80048588 10000001 */ b .L80048590 -/* ABF72C 8004858C 00601025 */ move $v0, $v1 -.L80048590: -/* ABF730 80048590 0045082A */ slt $at, $v0, $a1 -/* ABF734 80048594 50200026 */ beql $at, $zero, .L80048630 -/* ABF738 80048598 27AC0090 */ addiu $t4, $sp, 0x90 -.L8004859C: -/* ABF73C 8004859C 04610005 */ bgez $v1, .L800485B4 -/* ABF740 800485A0 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABF744 800485A4 00052023 */ negu $a0, $a1 -/* ABF748 800485A8 00042400 */ sll $a0, $a0, 0x10 -/* ABF74C 800485AC 10000003 */ b .L800485BC -/* ABF750 800485B0 00042403 */ sra $a0, $a0, 0x10 -.L800485B4: -/* ABF754 800485B4 00052400 */ sll $a0, $a1, 0x10 -/* ABF758 800485B8 00042403 */ sra $a0, $a0, 0x10 -.L800485BC: -/* ABF75C 800485BC 44815000 */ mtc1 $at, $f10 -/* ABF760 800485C0 C60600C8 */ lwc1 $f6, 0xc8($s0) -/* ABF764 800485C4 C61200E0 */ lwc1 $f18, 0xe0($s0) -/* ABF768 800485C8 87A8008E */ lh $t0, 0x8e($sp) -/* ABF76C 800485CC 46065203 */ div.s $f8, $f10, $f6 -/* ABF770 800485D0 87A50086 */ lh $a1, 0x86($sp) -/* ABF774 800485D4 00882021 */ addu $a0, $a0, $t0 -/* ABF778 800485D8 00042400 */ sll $a0, $a0, 0x10 -/* ABF77C 800485DC 00042403 */ sra $a0, $a0, 0x10 -/* ABF780 800485E0 2407000A */ li $a3, 10 -/* ABF784 800485E4 46124102 */ mul.s $f4, $f8, $f18 -/* ABF788 800485E8 44062000 */ mfc1 $a2, $f4 -/* ABF78C 800485EC 0C010E47 */ jal func_8004391C -/* ABF790 800485F0 00000000 */ nop -/* ABF794 800485F4 A7A2009E */ sh $v0, 0x9e($sp) -/* ABF798 800485F8 862A0028 */ lh $t2, 0x28($s1) -/* ABF79C 800485FC 02002025 */ move $a0, $s0 -/* ABF7A0 80048600 87A5007C */ lh $a1, 0x7c($sp) -/* ABF7A4 80048604 31490001 */ andi $t1, $t2, 1 -/* ABF7A8 80048608 11200006 */ beqz $t1, .L80048624 -/* ABF7AC 8004860C 87A30084 */ lh $v1, 0x84($sp) -/* ABF7B0 80048610 86260020 */ lh $a2, 0x20($s1) -/* ABF7B4 80048614 0C011AD1 */ jal func_80046B44 -/* ABF7B8 80048618 00003825 */ move $a3, $zero -/* ABF7BC 8004861C 10000009 */ b .L80048644 -/* ABF7C0 80048620 A7A2009C */ sh $v0, 0x9c($sp) -.L80048624: -/* ABF7C4 80048624 10000007 */ b .L80048644 -/* ABF7C8 80048628 A7A3009C */ sh $v1, 0x9c($sp) -.L8004862C: -/* ABF7CC 8004862C 27AC0090 */ addiu $t4, $sp, 0x90 -.L80048630: -/* ABF7D0 80048630 8D8E0000 */ lw $t6, ($t4) -/* ABF7D4 80048634 27AB0098 */ addiu $t3, $sp, 0x98 -/* ABF7D8 80048638 AD6E0000 */ sw $t6, ($t3) -/* ABF7DC 8004863C 8D8D0004 */ lw $t5, 4($t4) -/* ABF7E0 80048640 AD6D0004 */ sw $t5, 4($t3) -.L80048644: -/* ABF7E4 80048644 8E060004 */ lw $a2, 4($s0) -/* ABF7E8 80048648 8E070008 */ lw $a3, 8($s0) -/* ABF7EC 8004864C AFA00010 */ sw $zero, 0x10($sp) -/* ABF7F0 80048650 02002025 */ move $a0, $s0 -/* ABF7F4 80048654 0C011A70 */ jal func_800469C0 -/* ABF7F8 80048658 8FA50090 */ lw $a1, 0x90($sp) -/* ABF7FC 8004865C E7A00098 */ swc1 $f0, 0x98($sp) -/* ABF800 80048660 E60000DC */ swc1 $f0, 0xdc($s0) -/* ABF804 80048664 862F0028 */ lh $t7, 0x28($s1) -/* ABF808 80048668 87A3009C */ lh $v1, 0x9c($sp) -/* ABF80C 8004866C 27A60098 */ addiu $a2, $sp, 0x98 -/* ABF810 80048670 31F80001 */ andi $t8, $t7, 1 -/* ABF814 80048674 17000015 */ bnez $t8, .L800486CC -/* ABF818 80048678 28610E39 */ slti $at, $v1, 0xe39 -/* ABF81C 8004867C 14200008 */ bnez $at, .L800486A0 -/* ABF820 80048680 24190E38 */ li $t9, 3640 -/* ABF824 80048684 03234023 */ subu $t0, $t9, $v1 -/* ABF828 80048688 00085400 */ sll $t2, $t0, 0x10 -/* ABF82C 8004868C 000A4C03 */ sra $t1, $t2, 0x10 -/* ABF830 80048690 00095883 */ sra $t3, $t1, 2 -/* ABF834 80048694 006B1821 */ addu $v1, $v1, $t3 -/* ABF838 80048698 00031C00 */ sll $v1, $v1, 0x10 -/* ABF83C 8004869C 00031C03 */ sra $v1, $v1, 0x10 -.L800486A0: -/* ABF840 800486A0 0461000A */ bgez $v1, .L800486CC -/* ABF844 800486A4 A7A3009C */ sh $v1, 0x9c($sp) -/* ABF848 800486A8 240CFC72 */ li $t4, -910 -/* ABF84C 800486AC 01836823 */ subu $t5, $t4, $v1 -/* ABF850 800486B0 000D7400 */ sll $t6, $t5, 0x10 -/* ABF854 800486B4 000E7C03 */ sra $t7, $t6, 0x10 -/* ABF858 800486B8 000FC083 */ sra $t8, $t7, 2 -/* ABF85C 800486BC 00781821 */ addu $v1, $v1, $t8 -/* ABF860 800486C0 00031C00 */ sll $v1, $v1, 0x10 -/* ABF864 800486C4 00031C03 */ sra $v1, $v1, 0x10 -/* ABF868 800486C8 A7A3009C */ sh $v1, 0x9c($sp) -.L800486CC: -/* ABF86C 800486CC 8FA40040 */ lw $a0, 0x40($sp) -/* ABF870 800486D0 0C010F0A */ jal func_80043C28 -/* ABF874 800486D4 8FA50044 */ lw $a1, 0x44($sp) -/* ABF878 800486D8 86190140 */ lh $t9, 0x140($s0) -/* ABF87C 800486DC 24010007 */ li $at, 7 -/* ABF880 800486E0 8FA80040 */ lw $t0, 0x40($sp) -/* ABF884 800486E4 57210032 */ bnel $t9, $at, .L800487B0 -/* ABF888 800486E8 C62C001C */ lwc1 $f12, 0x1c($s1) -/* ABF88C 800486EC 8D090000 */ lw $t1, ($t0) -/* ABF890 800486F0 27A600AC */ addiu $a2, $sp, 0xac -/* ABF894 800486F4 3C0C0001 */ lui $t4, 1 -/* ABF898 800486F8 ACC90000 */ sw $t1, ($a2) -/* ABF89C 800486FC 8D0A0004 */ lw $t2, 4($t0) -/* ABF8A0 80048700 02002025 */ move $a0, $s0 -/* ABF8A4 80048704 ACCA0004 */ sw $t2, 4($a2) -/* ABF8A8 80048708 8D090008 */ lw $t1, 8($t0) -/* ABF8AC 8004870C ACC90008 */ sw $t1, 8($a2) -/* ABF8B0 80048710 8E0B008C */ lw $t3, 0x8c($s0) -/* ABF8B4 80048714 018B6021 */ addu $t4, $t4, $t3 -/* ABF8B8 80048718 918C0A39 */ lbu $t4, 0xa39($t4) -/* ABF8BC 8004871C 11800006 */ beqz $t4, .L80048738 -/* ABF8C0 80048720 00000000 */ nop -/* ABF8C4 80048724 860D001E */ lh $t5, 0x1e($s0) -/* ABF8C8 80048728 8FA50044 */ lw $a1, 0x44($sp) -/* ABF8CC 8004872C 31AE0010 */ andi $t6, $t5, 0x10 -/* ABF8D0 80048730 11C0000C */ beqz $t6, .L80048764 -/* ABF8D4 80048734 00000000 */ nop -.L80048738: -/* ABF8D8 80048738 0C010F46 */ jal func_80043D18 -/* ABF8DC 8004873C 8FA50044 */ lw $a1, 0x44($sp) -/* ABF8E0 80048740 27B800AC */ addiu $t8, $sp, 0xac -/* ABF8E4 80048744 8F080000 */ lw $t0, ($t8) -/* ABF8E8 80048748 8FAF0048 */ lw $t7, 0x48($sp) -/* ABF8EC 8004874C ADE80000 */ sw $t0, ($t7) -/* ABF8F0 80048750 8F190004 */ lw $t9, 4($t8) -/* ABF8F4 80048754 ADF90004 */ sw $t9, 4($t7) -/* ABF8F8 80048758 8F080008 */ lw $t0, 8($t8) -/* ABF8FC 8004875C 10000013 */ b .L800487AC -/* ABF900 80048760 ADE80008 */ sw $t0, 8($t7) -.L80048764: -/* ABF904 80048764 0C010FE5 */ jal func_80043F94 -/* ABF908 80048768 02002025 */ move $a0, $s0 -/* ABF90C 8004876C 27AA00AC */ addiu $t2, $sp, 0xac -/* ABF910 80048770 8FA50048 */ lw $a1, 0x48($sp) -/* ABF914 80048774 8D4B0000 */ lw $t3, ($t2) -/* ABF918 80048778 27A40098 */ addiu $a0, $sp, 0x98 -/* ABF91C 8004877C ACAB0000 */ sw $t3, ($a1) -/* ABF920 80048780 8D490004 */ lw $t1, 4($t2) -/* ABF924 80048784 ACA90004 */ sw $t1, 4($a1) -/* ABF928 80048788 8D4B0008 */ lw $t3, 8($t2) -/* ABF92C 8004878C ACAB0008 */ sw $t3, 8($a1) -/* ABF930 80048790 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* ABF934 80048794 8FA60044 */ lw $a2, 0x44($sp) -/* ABF938 80048798 87AC009C */ lh $t4, 0x9c($sp) -/* ABF93C 8004879C A60C0134 */ sh $t4, 0x134($s0) -/* ABF940 800487A0 87AD009E */ lh $t5, 0x9e($sp) -/* ABF944 800487A4 A6000138 */ sh $zero, 0x138($s0) -/* ABF948 800487A8 A60D0136 */ sh $t5, 0x136($s0) -.L800487AC: -/* ABF94C 800487AC C62C001C */ lwc1 $f12, 0x1c($s1) -.L800487B0: -/* ABF950 800487B0 C60E00FC */ lwc1 $f14, 0xfc($s0) -/* ABF954 800487B4 8E0600D4 */ lw $a2, 0xd4($s0) -/* ABF958 800487B8 0C010E27 */ jal func_8004389C -/* ABF95C 800487BC 3C073F80 */ lui $a3, 0x3f80 -/* ABF960 800487C0 E60000FC */ swc1 $f0, 0xfc($s0) -/* ABF964 800487C4 00002025 */ move $a0, $zero -/* ABF968 800487C8 8605015A */ lh $a1, 0x15a($s0) -/* ABF96C 800487CC 3C063F00 */ lui $a2, 0x3f00 -/* ABF970 800487D0 0C010E47 */ jal func_8004391C -/* ABF974 800487D4 2407000A */ li $a3, 10 -/* ABF978 800487D8 A602015A */ sh $v0, 0x15a($s0) -/* ABF97C 800487DC 02002025 */ move $a0, $s0 -/* ABF980 800487E0 0C011429 */ jal func_800450A4 -/* ABF984 800487E4 8E050018 */ lw $a1, 0x18($s0) -/* ABF988 800487E8 E6000100 */ swc1 $f0, 0x100($s0) -/* ABF98C 800487EC 8FBF0024 */ lw $ra, 0x24($sp) -/* ABF990 800487F0 8FB10020 */ lw $s1, 0x20($sp) -/* ABF994 800487F4 8FB0001C */ lw $s0, 0x1c($sp) -/* ABF998 800487F8 27BD00E0 */ addiu $sp, $sp, 0xe0 -/* ABF99C 800487FC 03E00008 */ jr $ra -/* ABF9A0 80048800 24020001 */ li $v0, 1 diff --git a/asm/non_matchings/code/z_camera/Camera_Normal3.s b/asm/non_matchings/code/z_camera/Camera_Normal3.s deleted file mode 100644 index fea922d4bf..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Normal3.s +++ /dev/null @@ -1,545 +0,0 @@ -.late_rodata -glabel D_80139EF0 - .float 0.01 - -glabel D_80139EF4 - .float 182.04167 - -glabel D_80139EF8 - .float 0.01 - -glabel D_80139EFC - .float 0.01 - -glabel D_80139F00 - .float 0.01 - -glabel D_80139F04 - .float 0.01 - -glabel D_80139F08 - .float 0.01 - -glabel D_80139F0C - .float 0.001 - -glabel D_80139F10 - .float 0.002 - -.text -glabel Camera_Normal3 -/* ABF9A4 80048804 27BDFF58 */ addiu $sp, $sp, -0xa8 -/* ABF9A8 80048808 AFB0001C */ sw $s0, 0x1c($sp) -/* ABF9AC 8004880C 00808025 */ move $s0, $a0 -/* ABF9B0 80048810 AFBF0024 */ sw $ra, 0x24($sp) -/* ABF9B4 80048814 AFB10020 */ sw $s1, 0x20($sp) -/* ABF9B8 80048818 0C00B721 */ jal Player_GetCameraYOffset -/* ABF9BC 8004881C 8C840090 */ lw $a0, 0x90($a0) -/* ABF9C0 80048820 8602015E */ lh $v0, 0x15e($s0) -/* ABF9C4 80048824 10400009 */ beqz $v0, .L8004884C -/* ABF9C8 80048828 2401000A */ li $at, 10 -/* ABF9CC 8004882C 10410007 */ beq $v0, $at, .L8004884C -/* ABF9D0 80048830 24010014 */ li $at, 20 -/* ABF9D4 80048834 10410005 */ beq $v0, $at, .L8004884C -/* ABF9D8 80048838 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 -/* ABF9DC 8004883C 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* ABF9E0 80048840 85C30314 */ lh $v1, 0x314($t6) -/* ABF9E4 80048844 10600048 */ beqz $v1, .L80048968 -/* ABF9E8 80048848 00000000 */ nop -.L8004884C: -/* ABF9EC 8004884C 860F0142 */ lh $t7, 0x142($s0) -/* ABF9F0 80048850 3C198012 */ lui $t9, %hi(sCameraSettings+4) -/* ABF9F4 80048854 86080144 */ lh $t0, 0x144($s0) -/* ABF9F8 80048858 000FC0C0 */ sll $t8, $t7, 3 -/* ABF9FC 8004885C 0338C821 */ addu $t9, $t9, $t8 -/* ABFA00 80048860 8F39D068 */ lw $t9, %lo(sCameraSettings+4)($t9) -/* ABFA04 80048864 000848C0 */ sll $t1, $t0, 3 -/* ABFA08 80048868 3C018014 */ lui $at, %hi(D_80139EF0) -/* ABFA0C 8004886C 03295021 */ addu $t2, $t9, $t1 -/* ABFA10 80048870 8D420004 */ lw $v0, 4($t2) -/* ABFA14 80048874 C4249EF0 */ lwc1 $f4, %lo(D_80139EF0)($at) -/* ABFA18 80048878 3C018014 */ lui $at, %hi(D_80139EF4) -/* ABFA1C 8004887C 844B0000 */ lh $t3, ($v0) -/* ABFA20 80048880 46040082 */ mul.s $f2, $f0, $f4 -/* ABFA24 80048884 24420020 */ addiu $v0, $v0, 0x20 -/* ABFA28 80048888 448B3000 */ mtc1 $t3, $f6 -/* ABFA2C 8004888C 00000000 */ nop -/* ABFA30 80048890 46803220 */ cvt.s.w $f8, $f6 -/* ABFA34 80048894 46024282 */ mul.s $f10, $f8, $f2 -/* ABFA38 80048898 E60A0000 */ swc1 $f10, ($s0) -/* ABFA3C 8004889C 844CFFE4 */ lh $t4, -0x1c($v0) -/* ABFA40 800488A0 448C9000 */ mtc1 $t4, $f18 -/* ABFA44 800488A4 3C0C8016 */ lui $t4, %hi(gGameInfo) -/* ABFA48 800488A8 46809120 */ cvt.s.w $f4, $f18 -/* ABFA4C 800488AC 46022182 */ mul.s $f6, $f4, $f2 -/* ABFA50 800488B0 E6060004 */ swc1 $f6, 4($s0) -/* ABFA54 800488B4 844DFFE8 */ lh $t5, -0x18($v0) -/* ABFA58 800488B8 448D4000 */ mtc1 $t5, $f8 -/* ABFA5C 800488BC 00000000 */ nop -/* ABFA60 800488C0 468042A0 */ cvt.s.w $f10, $f8 -/* ABFA64 800488C4 46025482 */ mul.s $f18, $f10, $f2 -/* ABFA68 800488C8 E6120008 */ swc1 $f18, 8($s0) -/* ABFA6C 800488CC 844EFFEC */ lh $t6, -0x14($v0) -/* ABFA70 800488D0 C4289EF4 */ lwc1 $f8, %lo(D_80139EF4)($at) -/* ABFA74 800488D4 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* ABFA78 800488D8 448E2000 */ mtc1 $t6, $f4 -/* ABFA7C 800488DC 44819000 */ mtc1 $at, $f18 -/* ABFA80 800488E0 3C018014 */ lui $at, %hi(D_80139EF8) -/* ABFA84 800488E4 468021A0 */ cvt.s.w $f6, $f4 -/* ABFA88 800488E8 46083282 */ mul.s $f10, $f6, $f8 -/* ABFA8C 800488EC 46125100 */ add.s $f4, $f10, $f18 -/* ABFA90 800488F0 4600218D */ trunc.w.s $f6, $f4 -/* ABFA94 800488F4 44183000 */ mfc1 $t8, $f6 -/* ABFA98 800488F8 00000000 */ nop -/* ABFA9C 800488FC A618001C */ sh $t8, 0x1c($s0) -/* ABFAA0 80048900 8448FFF0 */ lh $t0, -0x10($v0) -/* ABFAA4 80048904 44884000 */ mtc1 $t0, $f8 -/* ABFAA8 80048908 00000000 */ nop -/* ABFAAC 8004890C 468042A0 */ cvt.s.w $f10, $f8 -/* ABFAB0 80048910 E60A000C */ swc1 $f10, 0xc($s0) -/* ABFAB4 80048914 8459FFF4 */ lh $t9, -0xc($v0) -/* ABFAB8 80048918 44999000 */ mtc1 $t9, $f18 -/* ABFABC 8004891C 00000000 */ nop -/* ABFAC0 80048920 46809120 */ cvt.s.w $f4, $f18 -/* ABFAC4 80048924 E6040010 */ swc1 $f4, 0x10($s0) -/* ABFAC8 80048928 8449FFF8 */ lh $t1, -8($v0) -/* ABFACC 8004892C 44893000 */ mtc1 $t1, $f6 -/* ABFAD0 80048930 00000000 */ nop -/* ABFAD4 80048934 46803220 */ cvt.s.w $f8, $f6 -/* ABFAD8 80048938 E6080014 */ swc1 $f8, 0x14($s0) -/* ABFADC 8004893C 844AFFFC */ lh $t2, -4($v0) -/* ABFAE0 80048940 C4249EF8 */ lwc1 $f4, %lo(D_80139EF8)($at) -/* ABFAE4 80048944 448A5000 */ mtc1 $t2, $f10 -/* ABFAE8 80048948 00000000 */ nop -/* ABFAEC 8004894C 468054A0 */ cvt.s.w $f18, $f10 -/* ABFAF0 80048950 46049182 */ mul.s $f6, $f18, $f4 -/* ABFAF4 80048954 E6060018 */ swc1 $f6, 0x18($s0) -/* ABFAF8 80048958 844B0000 */ lh $t3, ($v0) -/* ABFAFC 8004895C A60B001E */ sh $t3, 0x1e($s0) -/* ABFB00 80048960 8D8CFA90 */ lw $t4, %lo(gGameInfo)($t4) -/* ABFB04 80048964 85830314 */ lh $v1, 0x314($t4) -.L80048968: -/* ABFB08 80048968 50600004 */ beql $v1, $zero, .L8004897C -/* ABFB0C 8004896C 26050050 */ addiu $a1, $s0, 0x50 -/* ABFB10 80048970 0C011495 */ jal Camera_CopyPREGToModeValues -/* ABFB14 80048974 02002025 */ move $a0, $s0 -/* ABFB18 80048978 26050050 */ addiu $a1, $s0, 0x50 -.L8004897C: -/* ABFB1C 8004897C 2606005C */ addiu $a2, $s0, 0x5c -/* ABFB20 80048980 AFA60048 */ sw $a2, 0x48($sp) -/* ABFB24 80048984 AFA50044 */ sw $a1, 0x44($sp) -/* ABFB28 80048988 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* ABFB2C 8004898C 27A4007C */ addiu $a0, $sp, 0x7c -/* ABFB30 80048990 26060074 */ addiu $a2, $s0, 0x74 -/* ABFB34 80048994 AFA60040 */ sw $a2, 0x40($sp) -/* ABFB38 80048998 27A40074 */ addiu $a0, $sp, 0x74 -/* ABFB3C 8004899C 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* ABFB40 800489A0 8FA50044 */ lw $a1, 0x44($sp) -/* ABFB44 800489A4 24040001 */ li $a0, 1 -/* ABFB48 800489A8 3C018012 */ lui $at, %hi(D_8011D3E8) # $at, 0x8012 -/* ABFB4C 800489AC AC24D3E8 */ sw $a0, %lo(D_8011D3E8)($at) -/* ABFB50 800489B0 860D001E */ lh $t5, 0x1e($s0) -/* ABFB54 800489B4 3C018012 */ lui $at, %hi(D_8011D3A0) -/* ABFB58 800489B8 AC2DD3A0 */ sw $t5, %lo(D_8011D3A0)($at) -/* ABFB5C 800489BC 8603015E */ lh $v1, 0x15e($s0) -/* ABFB60 800489C0 1060000A */ beqz $v1, .L800489EC -/* ABFB64 800489C4 2401000A */ li $at, 10 -/* ABFB68 800489C8 10610008 */ beq $v1, $at, .L800489EC -/* ABFB6C 800489CC 24010014 */ li $at, 20 -/* ABFB70 800489D0 10610006 */ beq $v1, $at, .L800489EC -/* ABFB74 800489D4 24010019 */ li $at, 25 -/* ABFB78 800489D8 10610004 */ beq $v1, $at, .L800489EC -/* ABFB7C 800489DC 260E0094 */ addiu $t6, $s0, 0x94 -/* ABFB80 800489E0 AFAE003C */ sw $t6, 0x3c($sp) -/* ABFB84 800489E4 1000002D */ b .L80048A9C -/* ABFB88 800489E8 26110020 */ addiu $s1, $s0, 0x20 -.L800489EC: -/* ABFB8C 800489EC 44804000 */ mtc1 $zero, $f8 -/* ABFB90 800489F0 26110020 */ addiu $s1, $s0, 0x20 -/* ABFB94 800489F4 AE20000C */ sw $zero, 0xc($s1) -/* ABFB98 800489F8 A6200024 */ sh $zero, 0x24($s1) -/* ABFB9C 800489FC E628001C */ swc1 $f8, 0x1c($s1) -/* ABFBA0 80048A00 C60A0104 */ lwc1 $f10, 0x104($s0) -/* ABFBA4 80048A04 A6200018 */ sh $zero, 0x18($s1) -/* ABFBA8 80048A08 86220018 */ lh $v0, 0x18($s1) -/* ABFBAC 80048A0C E62A0020 */ swc1 $f10, 0x20($s1) -/* ABFBB0 80048A10 3C188016 */ lui $t8, %hi(gGameInfo) # $t8, 0x8016 -/* ABFBB4 80048A14 A6220014 */ sh $v0, 0x14($s1) -/* ABFBB8 80048A18 A6220016 */ sh $v0, 0x16($s1) -/* ABFBBC 80048A1C C612000C */ lwc1 $f18, 0xc($s0) -/* ABFBC0 80048A20 260F0094 */ addiu $t7, $s0, 0x94 -/* ABFBC4 80048A24 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABFBC8 80048A28 E6320010 */ swc1 $f18, 0x10($s1) -/* ABFBCC 80048A2C 8F18FA90 */ lw $t8, %lo(gGameInfo)($t8) -/* ABFBD0 80048A30 AFAF003C */ sw $t7, 0x3c($sp) -/* ABFBD4 80048A34 44812000 */ mtc1 $at, $f4 -/* ABFBD8 80048A38 870801C2 */ lh $t0, 0x1c2($t8) -/* ABFBDC 80048A3C 85E9000E */ lh $t1, 0xe($t7) -/* ABFBE0 80048A40 87AD0082 */ lh $t5, 0x82($sp) -/* ABFBE4 80048A44 44883000 */ mtc1 $t0, $f6 -/* ABFBE8 80048A48 252C8001 */ addiu $t4, $t1, -0x7fff -/* ABFBEC 80048A4C 018D7023 */ subu $t6, $t4, $t5 -/* ABFBF0 80048A50 46803220 */ cvt.s.w $f8, $f6 -/* ABFBF4 80048A54 000E7C00 */ sll $t7, $t6, 0x10 -/* ABFBF8 80048A58 000FC403 */ sra $t8, $t7, 0x10 -/* ABFBFC 80048A5C 44989000 */ mtc1 $t8, $f18 -/* ABFC00 80048A60 2409000A */ li $t1, 10 -/* ABFC04 80048A64 A629002A */ sh $t1, 0x2a($s1) -/* ABFC08 80048A68 46082283 */ div.s $f10, $f4, $f8 -/* ABFC0C 80048A6C 3C0A8016 */ lui $t2, %hi(gGameInfo) # $t2, 0x8016 -/* ABFC10 80048A70 468091A0 */ cvt.s.w $f6, $f18 -/* ABFC14 80048A74 46065102 */ mul.s $f4, $f10, $f6 -/* ABFC18 80048A78 4600220D */ trunc.w.s $f8, $f4 -/* ABFC1C 80048A7C 44194000 */ mfc1 $t9, $f8 -/* ABFC20 80048A80 00000000 */ nop -/* ABFC24 80048A84 A6390026 */ sh $t9, 0x26($s1) -/* ABFC28 80048A88 8D4AFA90 */ lw $t2, %lo(gGameInfo)($t2) -/* ABFC2C 80048A8C 854B01C2 */ lh $t3, 0x1c2($t2) -/* ABFC30 80048A90 A62B0028 */ sh $t3, 0x28($s1) -/* ABFC34 80048A94 A604015E */ sh $a0, 0x15e($s0) -/* ABFC38 80048A98 A620001A */ sh $zero, 0x1a($s1) -.L80048A9C: -/* ABFC3C 80048A9C 8622002A */ lh $v0, 0x2a($s1) -/* ABFC40 80048AA0 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 -/* ABFC44 80048AA4 10400002 */ beqz $v0, .L80048AB0 -/* ABFC48 80048AA8 244CFFFF */ addiu $t4, $v0, -1 -/* ABFC4C 80048AAC A62C002A */ sh $t4, 0x2a($s1) -.L80048AB0: -/* ABFC50 80048AB0 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1) -/* ABFC54 80048AB4 3C018014 */ lui $at, %hi(D_80139EFC) -/* ABFC58 80048AB8 C4209EFC */ lwc1 $f0, %lo(D_80139EFC)($at) -/* ABFC5C 80048ABC 846D01C6 */ lh $t5, 0x1c6($v1) -/* ABFC60 80048AC0 846E01C8 */ lh $t6, 0x1c8($v1) -/* ABFC64 80048AC4 C60200E0 */ lwc1 $f2, 0xe0($s0) -/* ABFC68 80048AC8 448D9000 */ mtc1 $t5, $f18 -/* ABFC6C 80048ACC 448E2000 */ mtc1 $t6, $f4 -/* ABFC70 80048AD0 468092A0 */ cvt.s.w $f10, $f18 -/* ABFC74 80048AD4 46802220 */ cvt.s.w $f8, $f4 -/* ABFC78 80048AD8 46005182 */ mul.s $f6, $f10, $f0 -/* ABFC7C 80048ADC 00000000 */ nop -/* ABFC80 80048AE0 46023402 */ mul.s $f16, $f6, $f2 -/* ABFC84 80048AE4 00000000 */ nop -/* ABFC88 80048AE8 46004482 */ mul.s $f18, $f8, $f0 -/* ABFC8C 80048AEC 00000000 */ nop -/* ABFC90 80048AF0 46029282 */ mul.s $f10, $f18, $f2 -/* ABFC94 80048AF4 E7AA0094 */ swc1 $f10, 0x94($sp) -/* ABFC98 80048AF8 8622001A */ lh $v0, 0x1a($s1) -/* ABFC9C 80048AFC 10400022 */ beqz $v0, .L80048B88 -/* ABFCA0 80048B00 00000000 */ nop -/* ABFCA4 80048B04 00027840 */ sll $t7, $v0, 1 -/* ABFCA8 80048B08 448F2000 */ mtc1 $t7, $f4 -/* ABFCAC 80048B0C C606000C */ lwc1 $f6, 0xc($s0) -/* ABFCB0 80048B10 C60E00C8 */ lwc1 $f14, 0xc8($s0) -/* ABFCB4 80048B14 46802220 */ cvt.s.w $f8, $f4 -/* ABFCB8 80048B18 44068000 */ mfc1 $a2, $f16 -/* ABFCBC 80048B1C 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* ABFCC0 80048B20 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* ABFCC4 80048B24 E7B00098 */ swc1 $f16, 0x98($sp) -/* ABFCC8 80048B28 0C010E27 */ jal func_8004389C -/* ABFCCC 80048B2C 46083300 */ add.s $f12, $f6, $f8 -/* ABFCD0 80048B30 E60000C8 */ swc1 $f0, 0xc8($s0) -/* ABFCD4 80048B34 3C188016 */ lui $t8, %hi(gGameInfo) # $t8, 0x8016 -/* ABFCD8 80048B38 8F18FA90 */ lw $t8, %lo(gGameInfo)($t8) -/* ABFCDC 80048B3C 8639001A */ lh $t9, 0x1a($s1) -/* ABFCE0 80048B40 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000 -/* ABFCE4 80048B44 870801A2 */ lh $t0, 0x1a2($t8) -/* ABFCE8 80048B48 00194840 */ sll $t1, $t9, 1 -/* ABFCEC 80048B4C 44892000 */ mtc1 $t1, $f4 -/* ABFCF0 80048B50 44889000 */ mtc1 $t0, $f18 -/* ABFCF4 80048B54 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* ABFCF8 80048B58 468021A0 */ cvt.s.w $f6, $f4 -/* ABFCFC 80048B5C 8FA60094 */ lw $a2, 0x94($sp) -/* ABFD00 80048B60 C60E00C4 */ lwc1 $f14, 0xc4($s0) -/* ABFD04 80048B64 468092A0 */ cvt.s.w $f10, $f18 -/* ABFD08 80048B68 0C010E27 */ jal func_8004389C -/* ABFD0C 80048B6C 46065300 */ add.s $f12, $f10, $f6 -/* ABFD10 80048B70 C7B00098 */ lwc1 $f16, 0x98($sp) -/* ABFD14 80048B74 E60000C4 */ swc1 $f0, 0xc4($s0) -/* ABFD18 80048B78 862A001A */ lh $t2, 0x1a($s1) -/* ABFD1C 80048B7C 254BFFFF */ addiu $t3, $t2, -1 -/* ABFD20 80048B80 10000015 */ b .L80048BD8 -/* ABFD24 80048B84 A62B001A */ sh $t3, 0x1a($s1) -.L80048B88: -/* ABFD28 80048B88 C60C000C */ lwc1 $f12, 0xc($s0) -/* ABFD2C 80048B8C C60E00C8 */ lwc1 $f14, 0xc8($s0) -/* ABFD30 80048B90 44068000 */ mfc1 $a2, $f16 -/* ABFD34 80048B94 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* ABFD38 80048B98 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* ABFD3C 80048B9C 0C010E27 */ jal func_8004389C -/* ABFD40 80048BA0 E7B00098 */ swc1 $f16, 0x98($sp) -/* ABFD44 80048BA4 E60000C8 */ swc1 $f0, 0xc8($s0) -/* ABFD48 80048BA8 3C0C8016 */ lui $t4, %hi(gGameInfo) # $t4, 0x8016 -/* ABFD4C 80048BAC 8D8CFA90 */ lw $t4, %lo(gGameInfo)($t4) -/* ABFD50 80048BB0 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* ABFD54 80048BB4 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* ABFD58 80048BB8 858D01A2 */ lh $t5, 0x1a2($t4) -/* ABFD5C 80048BBC 8FA60094 */ lw $a2, 0x94($sp) -/* ABFD60 80048BC0 C60E00C4 */ lwc1 $f14, 0xc4($s0) -/* ABFD64 80048BC4 448D4000 */ mtc1 $t5, $f8 -/* ABFD68 80048BC8 0C010E27 */ jal func_8004389C -/* ABFD6C 80048BCC 46804320 */ cvt.s.w $f12, $f8 -/* ABFD70 80048BD0 C7B00098 */ lwc1 $f16, 0x98($sp) -/* ABFD74 80048BD4 E60000C4 */ swc1 $f0, 0xc4($s0) -.L80048BD8: -/* ABFD78 80048BD8 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 -/* ABFD7C 80048BDC 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* ABFD80 80048BE0 3C018014 */ lui $at, %hi(D_80139F00) -/* ABFD84 80048BE4 C42A9F00 */ lwc1 $f10, %lo(D_80139F00)($at) -/* ABFD88 80048BE8 85CF0198 */ lh $t7, 0x198($t6) -/* ABFD8C 80048BEC 44068000 */ mfc1 $a2, $f16 -/* ABFD90 80048BF0 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000 -/* ABFD94 80048BF4 448F9000 */ mtc1 $t7, $f18 -/* ABFD98 80048BF8 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* ABFD9C 80048BFC C60E00CC */ lwc1 $f14, 0xcc($s0) -/* ABFDA0 80048C00 46809120 */ cvt.s.w $f4, $f18 -/* ABFDA4 80048C04 460A2302 */ mul.s $f12, $f4, $f10 -/* ABFDA8 80048C08 0C010E27 */ jal func_8004389C -/* ABFDAC 80048C0C 00000000 */ nop -/* ABFDB0 80048C10 E60000CC */ swc1 $f0, 0xcc($s0) -/* ABFDB4 80048C14 3C188016 */ lui $t8, %hi(gGameInfo) # $t8, 0x8016 -/* ABFDB8 80048C18 8F18FA90 */ lw $t8, %lo(gGameInfo)($t8) -/* ABFDBC 80048C1C 3C018014 */ lui $at, %hi(D_80139F04) -/* ABFDC0 80048C20 C4329F04 */ lwc1 $f18, %lo(D_80139F04)($at) -/* ABFDC4 80048C24 8708019A */ lh $t0, 0x19a($t8) -/* ABFDC8 80048C28 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000 -/* ABFDCC 80048C2C 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* ABFDD0 80048C30 44883000 */ mtc1 $t0, $f6 -/* ABFDD4 80048C34 8FA60094 */ lw $a2, 0x94($sp) -/* ABFDD8 80048C38 C60E00D0 */ lwc1 $f14, 0xd0($s0) -/* ABFDDC 80048C3C 46803220 */ cvt.s.w $f8, $f6 -/* ABFDE0 80048C40 46124302 */ mul.s $f12, $f8, $f18 -/* ABFDE4 80048C44 0C010E27 */ jal func_8004389C -/* ABFDE8 80048C48 00000000 */ nop -/* ABFDEC 80048C4C E60000D0 */ swc1 $f0, 0xd0($s0) -/* ABFDF0 80048C50 3C198016 */ lui $t9, %hi(gGameInfo) # $t9, 0x8016 -/* ABFDF4 80048C54 8F39FA90 */ lw $t9, %lo(gGameInfo)($t9) -/* ABFDF8 80048C58 3C018014 */ lui $at, %hi(D_80139F08) -/* ABFDFC 80048C5C C4269F08 */ lwc1 $f6, %lo(D_80139F08)($at) -/* ABFE00 80048C60 8729019C */ lh $t1, 0x19c($t9) -/* ABFE04 80048C64 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000 -/* ABFE08 80048C68 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* ABFE0C 80048C6C 44892000 */ mtc1 $t1, $f4 -/* ABFE10 80048C70 8FA60094 */ lw $a2, 0x94($sp) -/* ABFE14 80048C74 C60E00D4 */ lwc1 $f14, 0xd4($s0) -/* ABFE18 80048C78 468022A0 */ cvt.s.w $f10, $f4 -/* ABFE1C 80048C7C 46065302 */ mul.s $f12, $f10, $f6 -/* ABFE20 80048C80 0C010E27 */ jal func_8004389C -/* ABFE24 80048C84 00000000 */ nop -/* ABFE28 80048C88 E60000D4 */ swc1 $f0, 0xd4($s0) -/* ABFE2C 80048C8C 87A50082 */ lh $a1, 0x82($sp) -/* ABFE30 80048C90 02002025 */ move $a0, $s0 -/* ABFE34 80048C94 24060001 */ li $a2, 1 -/* ABFE38 80048C98 24A58001 */ addiu $a1, $a1, -0x7fff -/* ABFE3C 80048C9C 00052C00 */ sll $a1, $a1, 0x10 -/* ABFE40 80048CA0 0C0112B7 */ jal func_80044ADC -/* ABFE44 80048CA4 00052C03 */ sra $a1, $a1, 0x10 -/* ABFE48 80048CA8 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABFE4C 80048CAC 44816000 */ mtc1 $at, $f12 -/* ABFE50 80048CB0 C6080010 */ lwc1 $f8, 0x10($s0) -/* ABFE54 80048CB4 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* ABFE58 80048CB8 44812000 */ mtc1 $at, $f4 -/* ABFE5C 80048CBC 46086483 */ div.s $f18, $f12, $f8 -/* ABFE60 80048CC0 C60A00E0 */ lwc1 $f10, 0xe0($s0) -/* ABFE64 80048CC4 00022400 */ sll $a0, $v0, 0x10 -/* ABFE68 80048CC8 00042403 */ sra $a0, $a0, 0x10 -/* ABFE6C 80048CCC 460A6181 */ sub.s $f6, $f12, $f10 -/* ABFE70 80048CD0 86250024 */ lh $a1, 0x24($s1) -/* ABFE74 80048CD4 2407000F */ li $a3, 15 -/* ABFE78 80048CD8 46049002 */ mul.s $f0, $f18, $f4 -/* ABFE7C 80048CDC 00000000 */ nop -/* ABFE80 80048CE0 46060082 */ mul.s $f2, $f0, $f6 -/* ABFE84 80048CE4 46020200 */ add.s $f8, $f0, $f2 -/* ABFE88 80048CE8 44064000 */ mfc1 $a2, $f8 -/* ABFE8C 80048CEC 0C010E47 */ jal func_8004391C -/* ABFE90 80048CF0 00000000 */ nop -/* ABFE94 80048CF4 A6220024 */ sh $v0, 0x24($s1) -/* ABFE98 80048CF8 8E060000 */ lw $a2, ($s0) -/* ABFE9C 80048CFC 240A0001 */ li $t2, 1 -/* ABFEA0 80048D00 AFAA0010 */ sw $t2, 0x10($sp) -/* ABFEA4 80048D04 02002025 */ move $a0, $s0 -/* ABFEA8 80048D08 27A50074 */ addiu $a1, $sp, 0x74 -/* ABFEAC 80048D0C 0C0119BE */ jal func_800466F8 -/* ABFEB0 80048D10 26270020 */ addiu $a3, $s1, 0x20 -/* ABFEB4 80048D14 C6120008 */ lwc1 $f18, 8($s0) -/* ABFEB8 80048D18 C6040004 */ lwc1 $f4, 4($s0) -/* ABFEBC 80048D1C 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* ABFEC0 80048D20 44813000 */ mtc1 $at, $f6 -/* ABFEC4 80048D24 46049280 */ add.s $f10, $f18, $f4 -/* ABFEC8 80048D28 27A40084 */ addiu $a0, $sp, 0x84 -/* ABFECC 80048D2C 8FA50044 */ lw $a1, 0x44($sp) -/* ABFED0 80048D30 8FA60040 */ lw $a2, 0x40($sp) -/* ABFED4 80048D34 46065202 */ mul.s $f8, $f10, $f6 -/* ABFED8 80048D38 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* ABFEDC 80048D3C E7A80090 */ swc1 $f8, 0x90($sp) -/* ABFEE0 80048D40 862B002A */ lh $t3, 0x2a($s1) -/* ABFEE4 80048D44 8E060004 */ lw $a2, 4($s0) -/* ABFEE8 80048D48 8E070008 */ lw $a3, 8($s0) -/* ABFEEC 80048D4C 02002025 */ move $a0, $s0 -/* ABFEF0 80048D50 8FA50084 */ lw $a1, 0x84($sp) -/* ABFEF4 80048D54 0C011A70 */ jal func_800469C0 -/* ABFEF8 80048D58 AFAB0010 */ sw $t3, 0x10($sp) -/* ABFEFC 80048D5C E7A00084 */ swc1 $f0, 0x84($sp) -/* ABFF00 80048D60 E60000DC */ swc1 $f0, 0xdc($s0) -/* ABFF04 80048D64 3C018014 */ lui $at, %hi(D_80139F0C) -/* ABFF08 80048D68 C4329F0C */ lwc1 $f18, %lo(D_80139F0C)($at) -/* ABFF0C 80048D6C C60400D8 */ lwc1 $f4, 0xd8($s0) -/* ABFF10 80048D70 4604903C */ c.lt.s $f18, $f4 -/* ABFF14 80048D74 00000000 */ nop -/* ABFF18 80048D78 4502000A */ bc1fl .L80048DA4 -/* ABFF1C 80048D7C 3C013F80 */ lui $at, 0x3f80 -/* ABFF20 80048D80 C7A00084 */ lwc1 $f0, 0x84($sp) -/* ABFF24 80048D84 C7AA0090 */ lwc1 $f10, 0x90($sp) -/* ABFF28 80048D88 3C018014 */ lui $at, %hi(D_80139F10) -/* ABFF2C 80048D8C C4289F10 */ lwc1 $f8, %lo(D_80139F10)($at) -/* ABFF30 80048D90 46005181 */ sub.s $f6, $f10, $f0 -/* ABFF34 80048D94 46083482 */ mul.s $f18, $f6, $f8 -/* ABFF38 80048D98 46120000 */ add.s $f0, $f0, $f18 -/* ABFF3C 80048D9C E7A00084 */ swc1 $f0, 0x84($sp) -/* ABFF40 80048DA0 3C013F80 */ li $at, 0x3F800000 # 0.000000 -.L80048DA4: -/* ABFF44 80048DA4 44812000 */ mtc1 $at, $f4 -/* ABFF48 80048DA8 C60A00C4 */ lwc1 $f10, 0xc4($s0) -/* ABFF4C 80048DAC 860C001C */ lh $t4, 0x1c($s0) -/* ABFF50 80048DB0 862D0024 */ lh $t5, 0x24($s1) -/* ABFF54 80048DB4 460A2183 */ div.s $f6, $f4, $f10 -/* ABFF58 80048DB8 87A50078 */ lh $a1, 0x78($sp) -/* ABFF5C 80048DBC 018D2023 */ subu $a0, $t4, $t5 -/* ABFF60 80048DC0 00042400 */ sll $a0, $a0, 0x10 -/* ABFF64 80048DC4 00042403 */ sra $a0, $a0, 0x10 -/* ABFF68 80048DC8 2407000A */ li $a3, 10 -/* ABFF6C 80048DCC 44063000 */ mfc1 $a2, $f6 -/* ABFF70 80048DD0 0C010E47 */ jal func_8004391C -/* ABFF74 80048DD4 00000000 */ nop -/* ABFF78 80048DD8 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 -/* ABFF7C 80048DDC 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1) -/* ABFF80 80048DE0 A7A20088 */ sh $v0, 0x88($sp) -/* ABFF84 80048DE4 27A60084 */ addiu $a2, $sp, 0x84 -/* ABFF88 80048DE8 8464019E */ lh $a0, 0x19e($v1) -/* ABFF8C 80048DEC 0082082A */ slt $at, $a0, $v0 -/* ABFF90 80048DF0 50200003 */ beql $at, $zero, .L80048E00 -/* ABFF94 80048DF4 846201D8 */ lh $v0, 0x1d8($v1) -/* ABFF98 80048DF8 A7A40088 */ sh $a0, 0x88($sp) -/* ABFF9C 80048DFC 846201D8 */ lh $v0, 0x1d8($v1) -.L80048E00: -/* ABFFA0 80048E00 87AE0088 */ lh $t6, 0x88($sp) -/* ABFFA4 80048E04 01C2082A */ slt $at, $t6, $v0 -/* ABFFA8 80048E08 50200003 */ beql $at, $zero, .L80048E18 -/* ABFFAC 80048E0C 8FAF003C */ lw $t7, 0x3c($sp) -/* ABFFB0 80048E10 A7A20088 */ sh $v0, 0x88($sp) -/* ABFFB4 80048E14 8FAF003C */ lw $t7, 0x3c($sp) -.L80048E18: -/* ABFFB8 80048E18 87A8007A */ lh $t0, 0x7a($sp) -/* ABFFBC 80048E1C 85F8000E */ lh $t8, 0xe($t7) -/* ABFFC0 80048E20 250A8001 */ addiu $t2, $t0, -0x7fff -/* ABFFC4 80048E24 030A2023 */ subu $a0, $t8, $t2 -/* ABFFC8 80048E28 00042400 */ sll $a0, $a0, 0x10 -/* ABFFCC 80048E2C 00042403 */ sra $a0, $a0, 0x10 -/* ABFFD0 80048E30 04800003 */ bltz $a0, .L80048E40 -/* ABFFD4 80048E34 00041823 */ negu $v1, $a0 -/* ABFFD8 80048E38 10000001 */ b .L80048E40 -/* ABFFDC 80048E3C 00801825 */ move $v1, $a0 -.L80048E40: -/* ABFFE0 80048E40 28612AF9 */ slti $at, $v1, 0x2af9 -/* ABFFE4 80048E44 14200006 */ bnez $at, .L80048E60 -/* ABFFE8 80048E48 87AE007A */ lh $t6, 0x7a($sp) -/* ABFFEC 80048E4C 58800004 */ blezl $a0, .L80048E60 -/* ABFFF0 80048E50 2404D508 */ li $a0, -11000 -/* ABFFF4 80048E54 10000002 */ b .L80048E60 -/* ABFFF8 80048E58 24042AF8 */ li $a0, 11000 -/* ABFFFC 80048E5C 2404D508 */ li $a0, -11000 -.L80048E60: -/* AC0000 80048E60 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* AC0004 80048E64 44816000 */ mtc1 $at, $f12 -/* AC0008 80048E68 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC000C 80048E6C 44812000 */ mtc1 $at, $f4 -/* AC0010 80048E70 C60200E0 */ lwc1 $f2, 0xe0($s0) -/* AC0014 80048E74 44844000 */ mtc1 $a0, $f8 -/* AC0018 80048E78 460C2281 */ sub.s $f10, $f4, $f12 -/* AC001C 80048E7C 3C014316 */ li $at, 0x43160000 # 0.000000 -/* AC0020 80048E80 87AB007A */ lh $t3, 0x7a($sp) -/* AC0024 80048E84 468044A0 */ cvt.s.w $f18, $f8 -/* AC0028 80048E88 460A1182 */ mul.s $f6, $f2, $f10 -/* AC002C 80048E8C C60A00C8 */ lwc1 $f10, 0xc8($s0) -/* AC0030 80048E90 460C3200 */ add.s $f8, $f6, $f12 -/* AC0034 80048E94 44813000 */ mtc1 $at, $f6 -/* AC0038 80048E98 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC003C 80048E9C 46089102 */ mul.s $f4, $f18, $f8 -/* AC0040 80048EA0 44819000 */ mtc1 $at, $f18 -/* AC0044 80048EA4 00000000 */ nop -/* AC0048 80048EA8 46029201 */ sub.s $f8, $f18, $f2 -/* AC004C 80048EAC 460A2403 */ div.s $f16, $f4, $f10 -/* AC0050 80048EB0 46083102 */ mul.s $f4, $f6, $f8 -/* AC0054 80048EB4 46008005 */ abs.s $f0, $f16 -/* AC0058 80048EB8 4600203C */ c.lt.s $f4, $f0 -/* AC005C 80048EBC 00000000 */ nop -/* AC0060 80048EC0 4502000A */ bc1fl .L80048EEC -/* AC0064 80048EC4 A7AE008A */ sh $t6, 0x8a($sp) -/* AC0068 80048EC8 448B5000 */ mtc1 $t3, $f10 -/* AC006C 80048ECC 00000000 */ nop -/* AC0070 80048ED0 468054A0 */ cvt.s.w $f18, $f10 -/* AC0074 80048ED4 46109180 */ add.s $f6, $f18, $f16 -/* AC0078 80048ED8 4600320D */ trunc.w.s $f8, $f6 -/* AC007C 80048EDC 440D4000 */ mfc1 $t5, $f8 -/* AC0080 80048EE0 10000002 */ b .L80048EEC -/* AC0084 80048EE4 A7AD008A */ sh $t5, 0x8a($sp) -/* AC0088 80048EE8 A7AE008A */ sh $t6, 0x8a($sp) -.L80048EEC: -/* AC008C 80048EEC 862F0028 */ lh $t7, 0x28($s1) -/* AC0090 80048EF0 87A8008A */ lh $t0, 0x8a($sp) -/* AC0094 80048EF4 59E00008 */ blezl $t7, .L80048F18 -/* AC0098 80048EF8 8FA40040 */ lw $a0, 0x40($sp) -/* AC009C 80048EFC 86390026 */ lh $t9, 0x26($s1) -/* AC00A0 80048F00 01194821 */ addu $t1, $t0, $t9 -/* AC00A4 80048F04 A7A9008A */ sh $t1, 0x8a($sp) -/* AC00A8 80048F08 86380028 */ lh $t8, 0x28($s1) -/* AC00AC 80048F0C 270AFFFF */ addiu $t2, $t8, -1 -/* AC00B0 80048F10 A62A0028 */ sh $t2, 0x28($s1) -/* AC00B4 80048F14 8FA40040 */ lw $a0, 0x40($sp) -.L80048F18: -/* AC00B8 80048F18 0C010F0A */ jal func_80043C28 -/* AC00BC 80048F1C 8FA50044 */ lw $a1, 0x44($sp) -/* AC00C0 80048F20 860B0140 */ lh $t3, 0x140($s0) -/* AC00C4 80048F24 24010007 */ li $at, 7 -/* AC00C8 80048F28 02002025 */ move $a0, $s0 -/* AC00CC 80048F2C 1561000A */ bne $t3, $at, .L80048F58 -/* AC00D0 80048F30 8FAE0040 */ lw $t6, 0x40($sp) -/* AC00D4 80048F34 8E060004 */ lw $a2, 4($s0) -/* AC00D8 80048F38 8E07000C */ lw $a3, 0xc($s0) -/* AC00DC 80048F3C 27AC008C */ addiu $t4, $sp, 0x8c -/* AC00E0 80048F40 AFAC0010 */ sw $t4, 0x10($sp) -/* AC00E4 80048F44 AFB10014 */ sw $s1, 0x14($sp) -/* AC00E8 80048F48 0C011B88 */ jal func_80046E20 -/* AC00EC 80048F4C 27A50084 */ addiu $a1, $sp, 0x84 -/* AC00F0 80048F50 10000009 */ b .L80048F78 -/* AC00F4 80048F54 C60C0014 */ lwc1 $f12, 0x14($s0) -.L80048F58: -/* AC00F8 80048F58 8FAD0048 */ lw $t5, 0x48($sp) -/* AC00FC 80048F5C 8DC80000 */ lw $t0, ($t6) -/* AC0100 80048F60 ADA80000 */ sw $t0, ($t5) -/* AC0104 80048F64 8DCF0004 */ lw $t7, 4($t6) -/* AC0108 80048F68 ADAF0004 */ sw $t7, 4($t5) -/* AC010C 80048F6C 8DC80008 */ lw $t0, 8($t6) -/* AC0110 80048F70 ADA80008 */ sw $t0, 8($t5) -/* AC0114 80048F74 C60C0014 */ lwc1 $f12, 0x14($s0) -.L80048F78: -/* AC0118 80048F78 C60E00FC */ lwc1 $f14, 0xfc($s0) -/* AC011C 80048F7C 8E0600D4 */ lw $a2, 0xd4($s0) -/* AC0120 80048F80 0C010E27 */ jal func_8004389C -/* AC0124 80048F84 3C073F80 */ lui $a3, 0x3f80 -/* AC0128 80048F88 E60000FC */ swc1 $f0, 0xfc($s0) -/* AC012C 80048F8C 00002025 */ move $a0, $zero -/* AC0130 80048F90 8605015A */ lh $a1, 0x15a($s0) -/* AC0134 80048F94 3C063F00 */ lui $a2, 0x3f00 -/* AC0138 80048F98 0C010E47 */ jal func_8004391C -/* AC013C 80048F9C 2407000A */ li $a3, 10 -/* AC0140 80048FA0 A602015A */ sh $v0, 0x15a($s0) -/* AC0144 80048FA4 02002025 */ move $a0, $s0 -/* AC0148 80048FA8 0C011429 */ jal func_800450A4 -/* AC014C 80048FAC 8E050018 */ lw $a1, 0x18($s0) -/* AC0150 80048FB0 E6000100 */ swc1 $f0, 0x100($s0) -/* AC0154 80048FB4 8FBF0024 */ lw $ra, 0x24($sp) -/* AC0158 80048FB8 8FB10020 */ lw $s1, 0x20($sp) -/* AC015C 80048FBC 8FB0001C */ lw $s0, 0x1c($sp) -/* AC0160 80048FC0 27BD00A8 */ addiu $sp, $sp, 0xa8 -/* AC0164 80048FC4 03E00008 */ jr $ra -/* AC0168 80048FC8 24020001 */ li $v0, 1 diff --git a/asm/non_matchings/code/z_camera/Camera_Parallel1.s b/asm/non_matchings/code/z_camera/Camera_Parallel1.s deleted file mode 100644 index 3d4d404573..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Parallel1.s +++ /dev/null @@ -1,675 +0,0 @@ -.late_rodata -glabel D_80139F14 - .float 182.04167 - -glabel D_80139F18 - .float 0.01 - .float 0.01 - .float 0.01 - -glabel D_80139F24 - .float 0.01 - -glabel D_80139F28 - .float 0.01 - -glabel D_80139F2C - .float 0.01 - -glabel D_80139F30 - .float 0.01 - -glabel D_80139F34 - .float 0.05 - -glabel D_80139F38 - .float 0.3 - -glabel D_80139F3C - .float 0.7 - -glabel D_80139F40 - .float -0.1 - -.text -glabel Camera_Parallel1 -/* AC01AC 8004900C 27BDFF38 */ addiu $sp, $sp, -0xc8 -/* AC01B0 80049010 AFB00020 */ sw $s0, 0x20($sp) -/* AC01B4 80049014 00808025 */ move $s0, $a0 -/* AC01B8 80049018 AFBF0024 */ sw $ra, 0x24($sp) -/* AC01BC 8004901C 0C00B721 */ jal Player_GetCameraYOffset -/* AC01C0 80049020 8C840090 */ lw $a0, 0x90($a0) -/* AC01C4 80049024 8602015E */ lh $v0, 0x15e($s0) -/* AC01C8 80049028 10400008 */ beqz $v0, .L8004904C -/* AC01CC 8004902C 2401000A */ li $at, 10 -/* AC01D0 80049030 10410006 */ beq $v0, $at, .L8004904C -/* AC01D4 80049034 24010014 */ li $at, 20 -/* AC01D8 80049038 10410004 */ beq $v0, $at, .L8004904C -/* AC01DC 8004903C 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 -/* AC01E0 80049040 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* AC01E4 80049044 85C20314 */ lh $v0, 0x314($t6) -/* AC01E8 80049048 1040006F */ beqz $v0, .L80049208 -.L8004904C: -/* AC01EC 8004904C 3C0C8016 */ lui $t4, %hi(gGameInfo) # $t4, 0x8016 -/* AC01F0 80049050 8D8CFA90 */ lw $t4, %lo(gGameInfo)($t4) -/* AC01F4 80049054 3C018014 */ lui $at, %hi(D_80139F14) -/* AC01F8 80049058 C42E9F14 */ lwc1 $f14, %lo(D_80139F14)($at) -/* AC01FC 8004905C 858D01F0 */ lh $t5, 0x1f0($t4) -/* AC0200 80049060 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* AC0204 80049064 44818000 */ mtc1 $at, $f16 -/* AC0208 80049068 448D2000 */ mtc1 $t5, $f4 -/* AC020C 8004906C 3C018014 */ lui $at, %hi(D_80139F18) -/* AC0210 80049070 C4329F18 */ lwc1 $f18, %lo(D_80139F18)($at) -/* AC0214 80049074 468021A0 */ cvt.s.w $f6, $f4 -/* AC0218 80049078 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC021C 8004907C 44814000 */ mtc1 $at, $f8 -/* AC0220 80049080 3C014288 */ li $at, 0x42880000 # 0.000000 -/* AC0224 80049084 44812000 */ mtc1 $at, $f4 -/* AC0228 80049088 860F0142 */ lh $t7, 0x142($s0) -/* AC022C 8004908C 46123082 */ mul.s $f2, $f6, $f18 -/* AC0230 80049090 46002183 */ div.s $f6, $f4, $f0 -/* AC0234 80049094 3C198012 */ lui $t9, %hi(sCameraSettings+4) -/* AC0238 80049098 000FC0C0 */ sll $t8, $t7, 3 -/* AC023C 8004909C 86090144 */ lh $t1, 0x144($s0) -/* AC0240 800490A0 0338C821 */ addu $t9, $t9, $t8 -/* AC0244 800490A4 8F39D068 */ lw $t9, %lo(sCameraSettings+4)($t9) -/* AC0248 800490A8 000950C0 */ sll $t2, $t1, 3 -/* AC024C 800490AC 46024280 */ add.s $f10, $f8, $f2 -/* AC0250 800490B0 032A5821 */ addu $t3, $t9, $t2 -/* AC0254 800490B4 8D620004 */ lw $v0, 4($t3) -/* AC0258 800490B8 3C0B8016 */ lui $t3, %hi(gGameInfo) -/* AC025C 800490BC 844E0000 */ lh $t6, ($v0) -/* AC0260 800490C0 24420028 */ addiu $v0, $v0, 0x28 -/* AC0264 800490C4 448E2000 */ mtc1 $t6, $f4 -/* AC0268 800490C8 46061202 */ mul.s $f8, $f2, $f6 -/* AC026C 800490CC 468021A0 */ cvt.s.w $f6, $f4 -/* AC0270 800490D0 46085301 */ sub.s $f12, $f10, $f8 -/* AC0274 800490D4 46123282 */ mul.s $f10, $f6, $f18 -/* AC0278 800490D8 00000000 */ nop -/* AC027C 800490DC 46005202 */ mul.s $f8, $f10, $f0 -/* AC0280 800490E0 00000000 */ nop -/* AC0284 800490E4 460C4102 */ mul.s $f4, $f8, $f12 -/* AC0288 800490E8 E6040000 */ swc1 $f4, ($s0) -/* AC028C 800490EC 844FFFDC */ lh $t7, -0x24($v0) -/* AC0290 800490F0 448F3000 */ mtc1 $t7, $f6 -/* AC0294 800490F4 00000000 */ nop -/* AC0298 800490F8 468032A0 */ cvt.s.w $f10, $f6 -/* AC029C 800490FC 46125202 */ mul.s $f8, $f10, $f18 -/* AC02A0 80049100 00000000 */ nop -/* AC02A4 80049104 46004102 */ mul.s $f4, $f8, $f0 -/* AC02A8 80049108 00000000 */ nop -/* AC02AC 8004910C 460C2182 */ mul.s $f6, $f4, $f12 -/* AC02B0 80049110 E6060004 */ swc1 $f6, 4($s0) -/* AC02B4 80049114 8458FFE0 */ lh $t8, -0x20($v0) -/* AC02B8 80049118 44985000 */ mtc1 $t8, $f10 -/* AC02BC 8004911C 00000000 */ nop -/* AC02C0 80049120 46805220 */ cvt.s.w $f8, $f10 -/* AC02C4 80049124 460E4102 */ mul.s $f4, $f8, $f14 -/* AC02C8 80049128 46102180 */ add.s $f6, $f4, $f16 -/* AC02CC 8004912C 4600328D */ trunc.w.s $f10, $f6 -/* AC02D0 80049130 44195000 */ mfc1 $t9, $f10 -/* AC02D4 80049134 00000000 */ nop -/* AC02D8 80049138 A6190020 */ sh $t9, 0x20($s0) -/* AC02DC 8004913C 844AFFE4 */ lh $t2, -0x1c($v0) -/* AC02E0 80049140 448A4000 */ mtc1 $t2, $f8 -/* AC02E4 80049144 00000000 */ nop -/* AC02E8 80049148 46804120 */ cvt.s.w $f4, $f8 -/* AC02EC 8004914C 460E2182 */ mul.s $f6, $f4, $f14 -/* AC02F0 80049150 46103280 */ add.s $f10, $f6, $f16 -/* AC02F4 80049154 4600520D */ trunc.w.s $f8, $f10 -/* AC02F8 80049158 440C4000 */ mfc1 $t4, $f8 -/* AC02FC 8004915C 00000000 */ nop -/* AC0300 80049160 A60C0022 */ sh $t4, 0x22($s0) -/* AC0304 80049164 844DFFE8 */ lh $t5, -0x18($v0) -/* AC0308 80049168 448D2000 */ mtc1 $t5, $f4 -/* AC030C 8004916C 00000000 */ nop -/* AC0310 80049170 468021A0 */ cvt.s.w $f6, $f4 -/* AC0314 80049174 E6060008 */ swc1 $f6, 8($s0) -/* AC0318 80049178 844EFFEC */ lh $t6, -0x14($v0) -/* AC031C 8004917C 448E5000 */ mtc1 $t6, $f10 -/* AC0320 80049180 00000000 */ nop -/* AC0324 80049184 46805220 */ cvt.s.w $f8, $f10 -/* AC0328 80049188 E608000C */ swc1 $f8, 0xc($s0) -/* AC032C 8004918C 844FFFF0 */ lh $t7, -0x10($v0) -/* AC0330 80049190 448F2000 */ mtc1 $t7, $f4 -/* AC0334 80049194 00000000 */ nop -/* AC0338 80049198 468021A0 */ cvt.s.w $f6, $f4 -/* AC033C 8004919C E6060010 */ swc1 $f6, 0x10($s0) -/* AC0340 800491A0 8458FFF4 */ lh $t8, -0xc($v0) -/* AC0344 800491A4 44985000 */ mtc1 $t8, $f10 -/* AC0348 800491A8 00000000 */ nop -/* AC034C 800491AC 46805220 */ cvt.s.w $f8, $f10 -/* AC0350 800491B0 46124102 */ mul.s $f4, $f8, $f18 -/* AC0354 800491B4 E6040014 */ swc1 $f4, 0x14($s0) -/* AC0358 800491B8 8449FFF8 */ lh $t1, -8($v0) -/* AC035C 800491BC A6090024 */ sh $t1, 0x24($s0) -/* AC0360 800491C0 8459FFFC */ lh $t9, -4($v0) -/* AC0364 800491C4 44993000 */ mtc1 $t9, $f6 -/* AC0368 800491C8 00000000 */ nop -/* AC036C 800491CC 468032A0 */ cvt.s.w $f10, $f6 -/* AC0370 800491D0 46125202 */ mul.s $f8, $f10, $f18 -/* AC0374 800491D4 00000000 */ nop -/* AC0378 800491D8 46004102 */ mul.s $f4, $f8, $f0 -/* AC037C 800491DC 00000000 */ nop -/* AC0380 800491E0 460C2182 */ mul.s $f6, $f4, $f12 -/* AC0384 800491E4 E6060018 */ swc1 $f6, 0x18($s0) -/* AC0388 800491E8 844A0000 */ lh $t2, ($v0) -/* AC038C 800491EC 448A5000 */ mtc1 $t2, $f10 -/* AC0390 800491F0 00000000 */ nop -/* AC0394 800491F4 46805220 */ cvt.s.w $f8, $f10 -/* AC0398 800491F8 46124102 */ mul.s $f4, $f8, $f18 -/* AC039C 800491FC E604001C */ swc1 $f4, 0x1c($s0) -/* AC03A0 80049200 8D6BFA90 */ lw $t3, %lo(gGameInfo)($t3) -/* AC03A4 80049204 85620314 */ lh $v0, 0x314($t3) -.L80049208: -/* AC03A8 80049208 50400004 */ beql $v0, $zero, .L8004921C -/* AC03AC 8004920C 26050050 */ addiu $a1, $s0, 0x50 -/* AC03B0 80049210 0C011495 */ jal Camera_CopyPREGToModeValues -/* AC03B4 80049214 02002025 */ move $a0, $s0 -/* AC03B8 80049218 26050050 */ addiu $a1, $s0, 0x50 -.L8004921C: -/* AC03BC 8004921C 2606005C */ addiu $a2, $s0, 0x5c -/* AC03C0 80049220 AFA60040 */ sw $a2, 0x40($sp) -/* AC03C4 80049224 AFA5003C */ sw $a1, 0x3c($sp) -/* AC03C8 80049228 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC03CC 8004922C 27A400A0 */ addiu $a0, $sp, 0xa0 -/* AC03D0 80049230 26060074 */ addiu $a2, $s0, 0x74 -/* AC03D4 80049234 AFA60038 */ sw $a2, 0x38($sp) -/* AC03D8 80049238 27A40098 */ addiu $a0, $sp, 0x98 -/* AC03DC 8004923C 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC03E0 80049240 8FA5003C */ lw $a1, 0x3c($sp) -/* AC03E4 80049244 8603015E */ lh $v1, 0x15e($s0) -/* AC03E8 80049248 10600009 */ beqz $v1, .L80049270 -/* AC03EC 8004924C 2401000A */ li $at, 10 -/* AC03F0 80049250 10610007 */ beq $v1, $at, .L80049270 -/* AC03F4 80049254 24010014 */ li $at, 20 -/* AC03F8 80049258 10610005 */ beq $v1, $at, .L80049270 -/* AC03FC 8004925C 24010019 */ li $at, 25 -/* AC0400 80049260 50610004 */ beql $v1, $at, .L80049274 -/* AC0404 80049264 26080028 */ addiu $t0, $s0, 0x28 -/* AC0408 80049268 10000017 */ b .L800492C8 -/* AC040C 8004926C 26080028 */ addiu $t0, $s0, 0x28 -.L80049270: -/* AC0410 80049270 26080028 */ addiu $t0, $s0, 0x28 -.L80049274: -/* AC0414 80049274 A5000016 */ sh $zero, 0x16($t0) -/* AC0418 80049278 A5000010 */ sh $zero, 0x10($t0) -/* AC041C 8004927C 860C0024 */ lh $t4, 0x24($s0) -/* AC0420 80049280 44803000 */ mtc1 $zero, $f6 -/* AC0424 80049284 240E0014 */ li $t6, 20 -/* AC0428 80049288 318D0004 */ andi $t5, $t4, 4 -/* AC042C 8004928C 11A00003 */ beqz $t5, .L8004929C -/* AC0430 80049290 3C0F8016 */ lui $t7, %hi(gGameInfo) # $t7, 0x8016 -/* AC0434 80049294 10000004 */ b .L800492A8 -/* AC0438 80049298 A50E0018 */ sh $t6, 0x18($t0) -.L8004929C: -/* AC043C 8004929C 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7) -/* AC0440 800492A0 85F801C2 */ lh $t8, 0x1c2($t7) -/* AC0444 800492A4 A5180018 */ sh $t8, 0x18($t0) -.L800492A8: -/* AC0448 800492A8 E5060000 */ swc1 $f6, ($t0) -/* AC044C 800492AC C60800F4 */ lwc1 $f8, 0xf4($s0) -/* AC0450 800492B0 C60A0098 */ lwc1 $f10, 0x98($s0) -/* AC0454 800492B4 46085101 */ sub.s $f4, $f10, $f8 -/* AC0458 800492B8 E504000C */ swc1 $f4, 0xc($t0) -/* AC045C 800492BC 8609015E */ lh $t1, 0x15e($s0) -/* AC0460 800492C0 25390001 */ addiu $t9, $t1, 1 -/* AC0464 800492C4 A619015E */ sh $t9, 0x15e($s0) -.L800492C8: -/* AC0468 800492C8 850A0018 */ lh $t2, 0x18($t0) -/* AC046C 800492CC 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 -/* AC0470 800492D0 51400013 */ beql $t2, $zero, .L80049320 -/* AC0474 800492D4 86020024 */ lh $v0, 0x24($s0) -/* AC0478 800492D8 86020024 */ lh $v0, 0x24($s0) -/* AC047C 800492DC 304B0002 */ andi $t3, $v0, 2 -/* AC0480 800492E0 11600007 */ beqz $t3, .L80049300 -/* AC0484 800492E4 30590004 */ andi $t9, $v0, 4 -/* AC0488 800492E8 860C00A2 */ lh $t4, 0xa2($s0) -/* AC048C 800492EC 86180022 */ lh $t8, 0x22($s0) -/* AC0490 800492F0 258F8001 */ addiu $t7, $t4, -0x7fff -/* AC0494 800492F4 01F84821 */ addu $t1, $t7, $t8 -/* AC0498 800492F8 10000014 */ b .L8004934C -/* AC049C 800492FC A5090012 */ sh $t1, 0x12($t0) -.L80049300: -/* AC04A0 80049300 13200004 */ beqz $t9, .L80049314 -/* AC04A4 80049304 87AB009E */ lh $t3, 0x9e($sp) -/* AC04A8 80049308 860A0022 */ lh $t2, 0x22($s0) -/* AC04AC 8004930C 1000000F */ b .L8004934C -/* AC04B0 80049310 A50A0012 */ sh $t2, 0x12($t0) -.L80049314: -/* AC04B4 80049314 1000000D */ b .L8004934C -/* AC04B8 80049318 A50B0012 */ sh $t3, 0x12($t0) -/* AC04BC 8004931C 86020024 */ lh $v0, 0x24($s0) -.L80049320: -/* AC04C0 80049320 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 -/* AC04C4 80049324 304C0020 */ andi $t4, $v0, 0x20 -/* AC04C8 80049328 11800007 */ beqz $t4, .L80049348 -/* AC04CC 8004932C 00000000 */ nop -/* AC04D0 80049330 860D00A2 */ lh $t5, 0xa2($s0) -/* AC04D4 80049334 86090022 */ lh $t1, 0x22($s0) -/* AC04D8 80049338 25B88001 */ addiu $t8, $t5, -0x7fff -/* AC04DC 8004933C 0309C821 */ addu $t9, $t8, $t1 -/* AC04E0 80049340 A5190012 */ sh $t9, 0x12($t0) -/* AC04E4 80049344 86020024 */ lh $v0, 0x24($s0) -.L80049348: -/* AC04E8 80049348 AC22D3A0 */ sw $v0, %lo(D_8011D3A0)($at) -.L8004934C: -/* AC04EC 8004934C 860A0020 */ lh $t2, 0x20($s0) -/* AC04F0 80049350 24010015 */ li $at, 21 -/* AC04F4 80049354 A50A0014 */ sh $t2, 0x14($t0) -/* AC04F8 80049358 8602015E */ lh $v0, 0x15e($s0) -/* AC04FC 8004935C 54410006 */ bnel $v0, $at, .L80049378 -/* AC0500 80049360 2401000B */ li $at, 11 -/* AC0504 80049364 24020001 */ li $v0, 1 -/* AC0508 80049368 A5020016 */ sh $v0, 0x16($t0) -/* AC050C 8004936C 10000005 */ b .L80049384 -/* AC0510 80049370 A602015E */ sh $v0, 0x15e($s0) -/* AC0514 80049374 2401000B */ li $at, 11 -.L80049378: -/* AC0518 80049378 14410002 */ bne $v0, $at, .L80049384 -/* AC051C 8004937C 24020001 */ li $v0, 1 -/* AC0520 80049380 A602015E */ sh $v0, 0x15e($s0) -.L80049384: -/* AC0524 80049384 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1) -/* AC0528 80049388 3C018014 */ lui $at, %hi(D_80139F24) -/* AC052C 8004938C C4309F24 */ lwc1 $f16, %lo(D_80139F24)($at) -/* AC0530 80049390 846B01C6 */ lh $t3, 0x1c6($v1) -/* AC0534 80049394 846C01C8 */ lh $t4, 0x1c8($v1) -/* AC0538 80049398 C60000E0 */ lwc1 $f0, 0xe0($s0) -/* AC053C 8004939C 448B3000 */ mtc1 $t3, $f6 -/* AC0540 800493A0 448C2000 */ mtc1 $t4, $f4 -/* AC0544 800493A4 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC0548 800493A8 468032A0 */ cvt.s.w $f10, $f6 -/* AC054C 800493AC 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC0550 800493B0 468021A0 */ cvt.s.w $f6, $f4 -/* AC0554 800493B4 46105202 */ mul.s $f8, $f10, $f16 -/* AC0558 800493B8 00000000 */ nop -/* AC055C 800493BC 46004082 */ mul.s $f2, $f8, $f0 -/* AC0560 800493C0 00000000 */ nop -/* AC0564 800493C4 46103282 */ mul.s $f10, $f6, $f16 -/* AC0568 800493C8 44061000 */ mfc1 $a2, $f2 -/* AC056C 800493CC 46005202 */ mul.s $f8, $f10, $f0 -/* AC0570 800493D0 E7A800B4 */ swc1 $f8, 0xb4($sp) -/* AC0574 800493D4 846D01A0 */ lh $t5, 0x1a0($v1) -/* AC0578 800493D8 C60E00C0 */ lwc1 $f14, 0xc0($s0) -/* AC057C 800493DC E7A200B8 */ swc1 $f2, 0xb8($sp) -/* AC0580 800493E0 448D2000 */ mtc1 $t5, $f4 -/* AC0584 800493E4 AFA80034 */ sw $t0, 0x34($sp) -/* AC0588 800493E8 0C010E27 */ jal func_8004389C -/* AC058C 800493EC 46802320 */ cvt.s.w $f12, $f4 -/* AC0590 800493F0 C7A200B8 */ lwc1 $f2, 0xb8($sp) -/* AC0594 800493F4 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC0598 800493F8 E60000C0 */ swc1 $f0, 0xc0($s0) -/* AC059C 800493FC 44061000 */ mfc1 $a2, $f2 -/* AC05A0 80049400 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC05A4 80049404 C60C0008 */ lwc1 $f12, 8($s0) -/* AC05A8 80049408 0C010E27 */ jal func_8004389C -/* AC05AC 8004940C C60E00C8 */ lwc1 $f14, 0xc8($s0) -/* AC05B0 80049410 3C014000 */ li $at, 0x40000000 # 0.000000 -/* AC05B4 80049414 E60000C8 */ swc1 $f0, 0xc8($s0) -/* AC05B8 80049418 44816000 */ mtc1 $at, $f12 -/* AC05BC 8004941C 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC05C0 80049420 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC05C4 80049424 8FA600B4 */ lw $a2, 0xb4($sp) -/* AC05C8 80049428 0C010E27 */ jal func_8004389C -/* AC05CC 8004942C C60E00C4 */ lwc1 $f14, 0xc4($s0) -/* AC05D0 80049430 C7A200B8 */ lwc1 $f2, 0xb8($sp) -/* AC05D4 80049434 E60000C4 */ swc1 $f0, 0xc4($s0) -/* AC05D8 80049438 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 -/* AC05DC 8004943C 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* AC05E0 80049440 3C018014 */ lui $at, %hi(D_80139F28) -/* AC05E4 80049444 C4289F28 */ lwc1 $f8, %lo(D_80139F28)($at) -/* AC05E8 80049448 85CF0198 */ lh $t7, 0x198($t6) -/* AC05EC 8004944C 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000 -/* AC05F0 80049450 44061000 */ mfc1 $a2, $f2 -/* AC05F4 80049454 448F3000 */ mtc1 $t7, $f6 -/* AC05F8 80049458 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC05FC 8004945C C60E00CC */ lwc1 $f14, 0xcc($s0) -/* AC0600 80049460 468032A0 */ cvt.s.w $f10, $f6 -/* AC0604 80049464 46085302 */ mul.s $f12, $f10, $f8 -/* AC0608 80049468 0C010E27 */ jal func_8004389C -/* AC060C 8004946C 00000000 */ nop -/* AC0610 80049470 E60000CC */ swc1 $f0, 0xcc($s0) -/* AC0614 80049474 3C188016 */ lui $t8, %hi(gGameInfo) # $t8, 0x8016 -/* AC0618 80049478 8F18FA90 */ lw $t8, %lo(gGameInfo)($t8) -/* AC061C 8004947C 3C018014 */ lui $at, %hi(D_80139F2C) -/* AC0620 80049480 C42A9F2C */ lwc1 $f10, %lo(D_80139F2C)($at) -/* AC0624 80049484 8709019A */ lh $t1, 0x19a($t8) -/* AC0628 80049488 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000 -/* AC062C 8004948C 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC0630 80049490 44892000 */ mtc1 $t1, $f4 -/* AC0634 80049494 8FA600B4 */ lw $a2, 0xb4($sp) -/* AC0638 80049498 C60E00D0 */ lwc1 $f14, 0xd0($s0) -/* AC063C 8004949C 468021A0 */ cvt.s.w $f6, $f4 -/* AC0640 800494A0 460A3302 */ mul.s $f12, $f6, $f10 -/* AC0644 800494A4 0C010E27 */ jal func_8004389C -/* AC0648 800494A8 00000000 */ nop -/* AC064C 800494AC E60000D0 */ swc1 $f0, 0xd0($s0) -/* AC0650 800494B0 3C198016 */ lui $t9, %hi(gGameInfo) # $t9, 0x8016 -/* AC0654 800494B4 8F39FA90 */ lw $t9, %lo(gGameInfo)($t9) -/* AC0658 800494B8 3C018014 */ lui $at, %hi(D_80139F30) -/* AC065C 800494BC C4269F30 */ lwc1 $f6, %lo(D_80139F30)($at) -/* AC0660 800494C0 872A019C */ lh $t2, 0x19c($t9) -/* AC0664 800494C4 3C018014 */ lui $at, %hi(D_80139F34) -/* AC0668 800494C8 C60A00E0 */ lwc1 $f10, 0xe0($s0) -/* AC066C 800494CC 448A4000 */ mtc1 $t2, $f8 -/* AC0670 800494D0 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC0674 800494D4 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC0678 800494D8 46804120 */ cvt.s.w $f4, $f8 -/* AC067C 800494DC C4289F34 */ lwc1 $f8, %lo(D_80139F34)($at) -/* AC0680 800494E0 C60E00D4 */ lwc1 $f14, 0xd4($s0) -/* AC0684 800494E4 46062302 */ mul.s $f12, $f4, $f6 -/* AC0688 800494E8 00000000 */ nop -/* AC068C 800494EC 46085102 */ mul.s $f4, $f10, $f8 -/* AC0690 800494F0 44062000 */ mfc1 $a2, $f4 -/* AC0694 800494F4 0C010E27 */ jal func_8004389C -/* AC0698 800494F8 00000000 */ nop -/* AC069C 800494FC 860B0024 */ lh $t3, 0x24($s0) -/* AC06A0 80049500 8FA80034 */ lw $t0, 0x34($sp) -/* AC06A4 80049504 E60000D4 */ swc1 $f0, 0xd4($s0) -/* AC06A8 80049508 316C0001 */ andi $t4, $t3, 1 -/* AC06AC 8004950C 51800024 */ beql $t4, $zero, .L800495A0 -/* AC06B0 80049510 A5000010 */ sh $zero, 0x10($t0) -/* AC06B4 80049514 87A500A6 */ lh $a1, 0xa6($sp) -/* AC06B8 80049518 02002025 */ move $a0, $s0 -/* AC06BC 8004951C 24060001 */ li $a2, 1 -/* AC06C0 80049520 24A58001 */ addiu $a1, $a1, -0x7fff -/* AC06C4 80049524 00052C00 */ sll $a1, $a1, 0x10 -/* AC06C8 80049528 00052C03 */ sra $a1, $a1, 0x10 -/* AC06CC 8004952C 0C0112B7 */ jal func_80044ADC -/* AC06D0 80049530 AFA80034 */ sw $t0, 0x34($sp) -/* AC06D4 80049534 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC06D8 80049538 44817000 */ mtc1 $at, $f14 -/* AC06DC 8004953C C606000C */ lwc1 $f6, 0xc($s0) -/* AC06E0 80049540 3C018014 */ lui $at, %hi(D_80139F38) -/* AC06E4 80049544 C42A9F38 */ lwc1 $f10, %lo(D_80139F38)($at) -/* AC06E8 80049548 46067003 */ div.s $f0, $f14, $f6 -/* AC06EC 8004954C 3C018014 */ lui $at, %hi(D_80139F3C) -/* AC06F0 80049550 C4289F3C */ lwc1 $f8, %lo(D_80139F3C)($at) -/* AC06F4 80049554 C60600E0 */ lwc1 $f6, 0xe0($s0) -/* AC06F8 80049558 8FA80034 */ lw $t0, 0x34($sp) -/* AC06FC 8004955C 00022400 */ sll $a0, $v0, 0x10 -/* AC0700 80049560 00042403 */ sra $a0, $a0, 0x10 -/* AC0704 80049564 2407000F */ li $a3, 15 -/* AC0708 80049568 85050010 */ lh $a1, 0x10($t0) -/* AC070C 8004956C 460A0082 */ mul.s $f2, $f0, $f10 -/* AC0710 80049570 46067281 */ sub.s $f10, $f14, $f6 -/* AC0714 80049574 46080102 */ mul.s $f4, $f0, $f8 -/* AC0718 80049578 00000000 */ nop -/* AC071C 8004957C 460A2302 */ mul.s $f12, $f4, $f10 -/* AC0720 80049580 460C1200 */ add.s $f8, $f2, $f12 -/* AC0724 80049584 44064000 */ mfc1 $a2, $f8 -/* AC0728 80049588 0C010E47 */ jal func_8004391C -/* AC072C 8004958C 00000000 */ nop -/* AC0730 80049590 8FA80034 */ lw $t0, 0x34($sp) -/* AC0734 80049594 10000002 */ b .L800495A0 -/* AC0738 80049598 A5020010 */ sh $v0, 0x10($t0) -/* AC073C 8004959C A5000010 */ sh $zero, 0x10($t0) -.L800495A0: -/* AC0740 800495A0 C6060098 */ lwc1 $f6, 0x98($s0) -/* AC0744 800495A4 C6040104 */ lwc1 $f4, 0x104($s0) -/* AC0748 800495A8 46043032 */ c.eq.s $f6, $f4 -/* AC074C 800495AC 00000000 */ nop -/* AC0750 800495B0 4503000F */ bc1tl .L800495F0 -/* AC0754 800495B4 C6060098 */ lwc1 $f6, 0x98($s0) -/* AC0758 800495B8 8E020090 */ lw $v0, 0x90($s0) -/* AC075C 800495BC 3C018014 */ lui $at, %hi(D_80139F40) -/* AC0760 800495C0 C42A9F40 */ lwc1 $f10, %lo(D_80139F40)($at) -/* AC0764 800495C4 C448006C */ lwc1 $f8, 0x6c($v0) -/* AC0768 800495C8 4608503C */ c.lt.s $f10, $f8 -/* AC076C 800495CC 00000000 */ nop -/* AC0770 800495D0 45030007 */ bc1tl .L800495F0 -/* AC0774 800495D4 C6060098 */ lwc1 $f6, 0x98($s0) -/* AC0778 800495D8 8C4D067C */ lw $t5, 0x67c($v0) -/* AC077C 800495DC 240F0001 */ li $t7, 1 -/* AC0780 800495E0 000D7280 */ sll $t6, $t5, 0xa -/* AC0784 800495E4 05C30006 */ bgezl $t6, .L80049600 -/* AC0788 800495E8 A7AF006A */ sh $t7, 0x6a($sp) -/* AC078C 800495EC C6060098 */ lwc1 $f6, 0x98($s0) -.L800495F0: -/* AC0790 800495F0 E506000C */ swc1 $f6, 0xc($t0) -/* AC0794 800495F4 10000002 */ b .L80049600 -/* AC0798 800495F8 A7A0006A */ sh $zero, 0x6a($sp) -/* AC079C 800495FC A7AF006A */ sh $t7, 0x6a($sp) -.L80049600: -/* AC07A0 80049600 86020024 */ lh $v0, 0x24($s0) -/* AC07A4 80049604 87A9006A */ lh $t1, 0x6a($sp) -/* AC07A8 80049608 02002025 */ move $a0, $s0 -/* AC07AC 8004960C 30580080 */ andi $t8, $v0, 0x80 -/* AC07B0 80049610 1700000C */ bnez $t8, .L80049644 -/* AC07B4 80049614 27A50098 */ addiu $a1, $sp, 0x98 -/* AC07B8 80049618 1520000A */ bnez $t1, .L80049644 -/* AC07BC 8004961C 2507000C */ addiu $a3, $t0, 0xc -/* AC07C0 80049620 8E060000 */ lw $a2, ($s0) -/* AC07C4 80049624 30590001 */ andi $t9, $v0, 1 -/* AC07C8 80049628 AFB90010 */ sw $t9, 0x10($sp) -/* AC07CC 8004962C AFA80034 */ sw $t0, 0x34($sp) -/* AC07D0 80049630 02002025 */ move $a0, $s0 -/* AC07D4 80049634 0C01171D */ jal func_80045C74 -/* AC07D8 80049638 27A50098 */ addiu $a1, $sp, 0x98 -/* AC07DC 8004963C 10000008 */ b .L80049660 -/* AC07E0 80049640 8FA80034 */ lw $t0, 0x34($sp) -.L80049644: -/* AC07E4 80049644 8E060018 */ lw $a2, 0x18($s0) -/* AC07E8 80049648 304A0001 */ andi $t2, $v0, 1 -/* AC07EC 8004964C AFAA0010 */ sw $t2, 0x10($sp) -/* AC07F0 80049650 AFA80034 */ sw $t0, 0x34($sp) -/* AC07F4 80049654 0C011635 */ jal func_800458D4 -/* AC07F8 80049658 2507000C */ addiu $a3, $t0, 0xc -/* AC07FC 8004965C 8FA80034 */ lw $t0, 0x34($sp) -.L80049660: -/* AC0800 80049660 850B0018 */ lh $t3, 0x18($t0) -/* AC0804 80049664 51600028 */ beql $t3, $zero, .L80049708 -/* AC0808 80049668 A5000016 */ sh $zero, 0x16($t0) -/* AC080C 8004966C 860C014C */ lh $t4, 0x14c($s0) -/* AC0810 80049670 358D0020 */ ori $t5, $t4, 0x20 -/* AC0814 80049674 A60D014C */ sh $t5, 0x14c($s0) -/* AC0818 80049678 85020018 */ lh $v0, 0x18($t0) -/* AC081C 8004967C 87B800A6 */ lh $t8, 0xa6($sp) -/* AC0820 80049680 850F0012 */ lh $t7, 0x12($t0) -/* AC0824 80049684 244E0001 */ addiu $t6, $v0, 1 -/* AC0828 80049688 01C20019 */ multu $t6, $v0 -/* AC082C 8004968C 01F84823 */ subu $t1, $t7, $t8 -/* AC0830 80049690 0009CC00 */ sll $t9, $t1, 0x10 -/* AC0834 80049694 00195403 */ sra $t2, $t9, 0x10 -/* AC0838 80049698 87AE00A4 */ lh $t6, 0xa4($sp) -/* AC083C 8004969C C7A400A0 */ lwc1 $f4, 0xa0($sp) -/* AC0840 800496A0 A7AE00AC */ sh $t6, 0xac($sp) -/* AC0844 800496A4 E7A400A8 */ swc1 $f4, 0xa8($sp) -/* AC0848 800496A8 00001812 */ mflo $v1 -/* AC084C 800496AC 00031843 */ sra $v1, $v1, 1 -/* AC0850 800496B0 00031C00 */ sll $v1, $v1, 0x10 -/* AC0854 800496B4 00031C03 */ sra $v1, $v1, 0x10 -/* AC0858 800496B8 0143001A */ div $zero, $t2, $v1 -/* AC085C 800496BC 00005812 */ mflo $t3 -/* AC0860 800496C0 14600002 */ bnez $v1, .L800496CC -/* AC0864 800496C4 00000000 */ nop -/* AC0868 800496C8 0007000D */ break 7 -.L800496CC: -/* AC086C 800496CC 2401FFFF */ li $at, -1 -/* AC0870 800496D0 14610004 */ bne $v1, $at, .L800496E4 -/* AC0874 800496D4 3C018000 */ lui $at, 0x8000 -/* AC0878 800496D8 15410002 */ bne $t2, $at, .L800496E4 -/* AC087C 800496DC 00000000 */ nop -/* AC0880 800496E0 0006000D */ break 6 -.L800496E4: -/* AC0884 800496E4 01620019 */ multu $t3, $v0 -/* AC0888 800496E8 00006012 */ mflo $t4 -/* AC088C 800496EC 030C6821 */ addu $t5, $t8, $t4 -/* AC0890 800496F0 A7AD00AE */ sh $t5, 0xae($sp) -/* AC0894 800496F4 850F0018 */ lh $t7, 0x18($t0) -/* AC0898 800496F8 25E9FFFF */ addiu $t1, $t7, -1 -/* AC089C 800496FC 1000004D */ b .L80049834 -/* AC08A0 80049700 A5090018 */ sh $t1, 0x18($t0) -/* AC08A4 80049704 A5000016 */ sh $zero, 0x16($t0) -.L80049708: -/* AC08A8 80049708 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC08AC 8004970C 44815000 */ mtc1 $at, $f10 -/* AC08B0 80049710 C60800C0 */ lwc1 $f8, 0xc0($s0) -/* AC08B4 80049714 C60E00DC */ lwc1 $f14, 0xdc($s0) -/* AC08B8 80049718 C60C0004 */ lwc1 $f12, 4($s0) -/* AC08BC 8004971C 46085183 */ div.s $f6, $f10, $f8 -/* AC08C0 80049720 AFA80034 */ sw $t0, 0x34($sp) -/* AC08C4 80049724 3C074000 */ lui $a3, 0x4000 -/* AC08C8 80049728 44063000 */ mfc1 $a2, $f6 -/* AC08CC 8004972C 0C010E27 */ jal func_8004389C -/* AC08D0 80049730 00000000 */ nop -/* AC08D4 80049734 E60000DC */ swc1 $f0, 0xdc($s0) -/* AC08D8 80049738 8FA60038 */ lw $a2, 0x38($sp) -/* AC08DC 8004973C 8FA5003C */ lw $a1, 0x3c($sp) -/* AC08E0 80049740 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC08E4 80049744 27A400A8 */ addiu $a0, $sp, 0xa8 -/* AC08E8 80049748 C60400DC */ lwc1 $f4, 0xdc($s0) -/* AC08EC 8004974C 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c -/* AC08F0 80049750 8FA80034 */ lw $t0, 0x34($sp) -/* AC08F4 80049754 E7A400A8 */ swc1 $f4, 0xa8($sp) -/* AC08F8 80049758 86190024 */ lh $t9, 0x24($s0) -/* AC08FC 8004975C 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd -/* AC0900 80049760 87A5009E */ lh $a1, 0x9e($sp) -/* AC0904 80049764 332A0040 */ andi $t2, $t9, 0x40 -/* AC0908 80049768 1140000B */ beqz $t2, .L80049798 -/* AC090C 8004976C 2407000A */ li $a3, 10 -/* AC0910 80049770 85040012 */ lh $a0, 0x12($t0) -/* AC0914 80049774 3C063F19 */ lui $a2, (0x3F19999A >> 16) # lui $a2, 0x3f19 -/* AC0918 80049778 34C6999A */ ori $a2, (0x3F19999A & 0xFFFF) # ori $a2, $a2, 0x999a -/* AC091C 8004977C AFA80034 */ sw $t0, 0x34($sp) -/* AC0920 80049780 87A5009E */ lh $a1, 0x9e($sp) -/* AC0924 80049784 0C010E47 */ jal func_8004391C -/* AC0928 80049788 2407000A */ li $a3, 10 -/* AC092C 8004978C 8FA80034 */ lw $t0, 0x34($sp) -/* AC0930 80049790 10000006 */ b .L800497AC -/* AC0934 80049794 A7A200AE */ sh $v0, 0xae($sp) -.L80049798: -/* AC0938 80049798 85040012 */ lh $a0, 0x12($t0) -/* AC093C 8004979C 0C010E47 */ jal func_8004391C -/* AC0940 800497A0 AFA80034 */ sw $t0, 0x34($sp) -/* AC0944 800497A4 8FA80034 */ lw $t0, 0x34($sp) -/* AC0948 800497A8 A7A200AE */ sh $v0, 0xae($sp) -.L800497AC: -/* AC094C 800497AC 860B0024 */ lh $t3, 0x24($s0) -/* AC0950 800497B0 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC0954 800497B4 44815000 */ mtc1 $at, $f10 -/* AC0958 800497B8 31780001 */ andi $t8, $t3, 1 -/* AC095C 800497BC 53000008 */ beql $t8, $zero, .L800497E0 -/* AC0960 800497C0 85040014 */ lh $a0, 0x14($t0) -/* AC0964 800497C4 850C0014 */ lh $t4, 0x14($t0) -/* AC0968 800497C8 850D0010 */ lh $t5, 0x10($t0) -/* AC096C 800497CC 018D2023 */ subu $a0, $t4, $t5 -/* AC0970 800497D0 00042400 */ sll $a0, $a0, 0x10 -/* AC0974 800497D4 10000002 */ b .L800497E0 -/* AC0978 800497D8 00042403 */ sra $a0, $a0, 0x10 -/* AC097C 800497DC 85040014 */ lh $a0, 0x14($t0) -.L800497E0: -/* AC0980 800497E0 C60800C4 */ lwc1 $f8, 0xc4($s0) -/* AC0984 800497E4 87A5009C */ lh $a1, 0x9c($sp) -/* AC0988 800497E8 24070004 */ li $a3, 4 -/* AC098C 800497EC 46085183 */ div.s $f6, $f10, $f8 -/* AC0990 800497F0 44063000 */ mfc1 $a2, $f6 -/* AC0994 800497F4 0C010E47 */ jal func_8004391C -/* AC0998 800497F8 00000000 */ nop -/* AC099C 800497FC 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 -/* AC09A0 80049800 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1) -/* AC09A4 80049804 A7A200AC */ sh $v0, 0xac($sp) -/* AC09A8 80049808 8464019E */ lh $a0, 0x19e($v1) -/* AC09AC 8004980C 0082082A */ slt $at, $a0, $v0 -/* AC09B0 80049810 50200003 */ beql $at, $zero, .L80049820 -/* AC09B4 80049814 846201D8 */ lh $v0, 0x1d8($v1) -/* AC09B8 80049818 A7A400AC */ sh $a0, 0xac($sp) -/* AC09BC 8004981C 846201D8 */ lh $v0, 0x1d8($v1) -.L80049820: -/* AC09C0 80049820 87AE00AC */ lh $t6, 0xac($sp) -/* AC09C4 80049824 01C2082A */ slt $at, $t6, $v0 -/* AC09C8 80049828 50200003 */ beql $at, $zero, .L80049838 -/* AC09CC 8004982C 8FA40038 */ lw $a0, 0x38($sp) -/* AC09D0 80049830 A7A200AC */ sh $v0, 0xac($sp) -.L80049834: -/* AC09D4 80049834 8FA40038 */ lw $a0, 0x38($sp) -.L80049838: -/* AC09D8 80049838 8FA5003C */ lw $a1, 0x3c($sp) -/* AC09DC 8004983C 0C010F0A */ jal func_80043C28 -/* AC09E0 80049840 27A600A8 */ addiu $a2, $sp, 0xa8 -/* AC09E4 80049844 860F0140 */ lh $t7, 0x140($s0) -/* AC09E8 80049848 24010007 */ li $at, 7 -/* AC09EC 8004984C 8FA90038 */ lw $t1, 0x38($sp) -/* AC09F0 80049850 55E10032 */ bnel $t7, $at, .L8004991C -/* AC09F4 80049854 C60C0010 */ lwc1 $f12, 0x10($s0) -/* AC09F8 80049858 8D2A0000 */ lw $t2, ($t1) -/* AC09FC 8004985C 27A6006C */ addiu $a2, $sp, 0x6c -/* AC0A00 80049860 3C180001 */ lui $t8, 1 -/* AC0A04 80049864 ACCA0000 */ sw $t2, ($a2) -/* AC0A08 80049868 8D390004 */ lw $t9, 4($t1) -/* AC0A0C 8004986C 02002025 */ move $a0, $s0 -/* AC0A10 80049870 ACD90004 */ sw $t9, 4($a2) -/* AC0A14 80049874 8D2A0008 */ lw $t2, 8($t1) -/* AC0A18 80049878 ACCA0008 */ sw $t2, 8($a2) -/* AC0A1C 8004987C 8E0B008C */ lw $t3, 0x8c($s0) -/* AC0A20 80049880 030BC021 */ addu $t8, $t8, $t3 -/* AC0A24 80049884 93180A39 */ lbu $t8, 0xa39($t8) -/* AC0A28 80049888 13000006 */ beqz $t8, .L800498A4 -/* AC0A2C 8004988C 00000000 */ nop -/* AC0A30 80049890 860C0024 */ lh $t4, 0x24($s0) -/* AC0A34 80049894 8FA5003C */ lw $a1, 0x3c($sp) -/* AC0A38 80049898 318D0010 */ andi $t5, $t4, 0x10 -/* AC0A3C 8004989C 11A0000C */ beqz $t5, .L800498D0 -/* AC0A40 800498A0 00000000 */ nop -.L800498A4: -/* AC0A44 800498A4 0C010F46 */ jal func_80043D18 -/* AC0A48 800498A8 8FA5003C */ lw $a1, 0x3c($sp) -/* AC0A4C 800498AC 27AF006C */ addiu $t7, $sp, 0x6c -/* AC0A50 800498B0 8DF90000 */ lw $t9, ($t7) -/* AC0A54 800498B4 8FAE0040 */ lw $t6, 0x40($sp) -/* AC0A58 800498B8 ADD90000 */ sw $t9, ($t6) -/* AC0A5C 800498BC 8DE90004 */ lw $t1, 4($t7) -/* AC0A60 800498C0 ADC90004 */ sw $t1, 4($t6) -/* AC0A64 800498C4 8DF90008 */ lw $t9, 8($t7) -/* AC0A68 800498C8 10000013 */ b .L80049918 -/* AC0A6C 800498CC ADD90008 */ sw $t9, 8($t6) -.L800498D0: -/* AC0A70 800498D0 0C010FE5 */ jal func_80043F94 -/* AC0A74 800498D4 02002025 */ move $a0, $s0 -/* AC0A78 800498D8 27AA006C */ addiu $t2, $sp, 0x6c -/* AC0A7C 800498DC 8FA50040 */ lw $a1, 0x40($sp) -/* AC0A80 800498E0 8D580000 */ lw $t8, ($t2) -/* AC0A84 800498E4 27A400A8 */ addiu $a0, $sp, 0xa8 -/* AC0A88 800498E8 ACB80000 */ sw $t8, ($a1) -/* AC0A8C 800498EC 8D4B0004 */ lw $t3, 4($t2) -/* AC0A90 800498F0 ACAB0004 */ sw $t3, 4($a1) -/* AC0A94 800498F4 8D580008 */ lw $t8, 8($t2) -/* AC0A98 800498F8 ACB80008 */ sw $t8, 8($a1) -/* AC0A9C 800498FC 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC0AA0 80049900 8FA6003C */ lw $a2, 0x3c($sp) -/* AC0AA4 80049904 87AC00AC */ lh $t4, 0xac($sp) -/* AC0AA8 80049908 A60C0134 */ sh $t4, 0x134($s0) -/* AC0AAC 8004990C 87AD00AE */ lh $t5, 0xae($sp) -/* AC0AB0 80049910 A6000138 */ sh $zero, 0x138($s0) -/* AC0AB4 80049914 A60D0136 */ sh $t5, 0x136($s0) -.L80049918: -/* AC0AB8 80049918 C60C0010 */ lwc1 $f12, 0x10($s0) -.L8004991C: -/* AC0ABC 8004991C C60E00FC */ lwc1 $f14, 0xfc($s0) -/* AC0AC0 80049920 8E0600D4 */ lw $a2, 0xd4($s0) -/* AC0AC4 80049924 0C010E27 */ jal func_8004389C -/* AC0AC8 80049928 3C073F80 */ lui $a3, 0x3f80 -/* AC0ACC 8004992C E60000FC */ swc1 $f0, 0xfc($s0) -/* AC0AD0 80049930 00002025 */ move $a0, $zero -/* AC0AD4 80049934 8605015A */ lh $a1, 0x15a($s0) -/* AC0AD8 80049938 3C063F00 */ lui $a2, 0x3f00 -/* AC0ADC 8004993C 0C010E47 */ jal func_8004391C -/* AC0AE0 80049940 2407000A */ li $a3, 10 -/* AC0AE4 80049944 A602015A */ sh $v0, 0x15a($s0) -/* AC0AE8 80049948 87AE006A */ lh $t6, 0x6a($sp) -/* AC0AEC 8004994C 51C00004 */ beql $t6, $zero, .L80049960 -/* AC0AF0 80049950 C6000014 */ lwc1 $f0, 0x14($s0) -/* AC0AF4 80049954 10000002 */ b .L80049960 -/* AC0AF8 80049958 C600001C */ lwc1 $f0, 0x1c($s0) -/* AC0AFC 8004995C C6000014 */ lwc1 $f0, 0x14($s0) -.L80049960: -/* AC0B00 80049960 44050000 */ mfc1 $a1, $f0 -/* AC0B04 80049964 0C011429 */ jal func_800450A4 -/* AC0B08 80049968 02002025 */ move $a0, $s0 -/* AC0B0C 8004996C E6000100 */ swc1 $f0, 0x100($s0) -/* AC0B10 80049970 8FBF0024 */ lw $ra, 0x24($sp) -/* AC0B14 80049974 8FB00020 */ lw $s0, 0x20($sp) -/* AC0B18 80049978 27BD00C8 */ addiu $sp, $sp, 0xc8 -/* AC0B1C 8004997C 03E00008 */ jr $ra -/* AC0B20 80049980 00000000 */ nop diff --git a/asm/non_matchings/code/z_camera/func_800584E8.s b/asm/non_matchings/code/z_camera/Camera_PrintSettings.s similarity index 98% rename from asm/non_matchings/code/z_camera/func_800584E8.s rename to asm/non_matchings/code/z_camera/Camera_PrintSettings.s index 64c6d31215..35957e91fc 100644 --- a/asm/non_matchings/code/z_camera/func_800584E8.s +++ b/asm/non_matchings/code/z_camera/Camera_PrintSettings.s @@ -16,7 +16,7 @@ glabel D_8013996C .balign 4 .text -glabel func_800584E8 +glabel Camera_PrintSettings /* ACF688 800584E8 27BDFFA0 */ addiu $sp, $sp, -0x60 /* ACF68C 800584EC 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 /* ACF690 800584F0 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) @@ -34,11 +34,11 @@ glabel func_800584E8 /* ACF6C0 80058520 8FBF002C */ lw $ra, 0x2c($sp) /* ACF6C4 80058524 8C8E008C */ lw $t6, 0x8c($a0) /* ACF6C8 80058528 84990164 */ lh $t9, 0x164($a0) -/* ACF6CC 8005852C 3C188012 */ lui $t8, %hi(D_8011D394) # $t8, 0x8012 +/* ACF6CC 8005852C 3C188012 */ lui $t8, %hi(gDbgCamEnabled) # $t8, 0x8012 /* ACF6D0 80058530 85CF07A0 */ lh $t7, 0x7a0($t6) /* ACF6D4 80058534 572F00D7 */ bnel $t9, $t7, .L80058894 /* ACF6D8 80058538 8FBF002C */ lw $ra, 0x2c($sp) -/* ACF6DC 8005853C 8F18D394 */ lw $t8, %lo(D_8011D394)($t8) +/* ACF6DC 8005853C 8F18D394 */ lw $t8, %lo(gDbgCamEnabled)($t8) /* ACF6E0 80058540 00002825 */ move $a1, $zero /* ACF6E4 80058544 27A30058 */ addiu $v1, $sp, 0x58 /* ACF6E8 80058548 170000D1 */ bnez $t8, .L80058890 diff --git a/asm/non_matchings/code/z_camera/Camera_SetParam.s b/asm/non_matchings/code/z_camera/Camera_SetParam.s deleted file mode 100644 index bac176628f..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_SetParam.s +++ /dev/null @@ -1,162 +0,0 @@ -.late_rodata -glabel jtbl_8013A4EC - .word L8005AAD8 # 1 - .word L8005AB68 # 2 - .word L8005AC0C - .word L8005ABB8 # 4 - .word L8005AC0C - .word L8005AC0C - .word L8005AC0C - .word L8005AB38 # 8 - .word L8005AC0C - .word L8005AC0C - .word L8005AC0C - .word L8005AC0C - .word L8005AC0C - .word L8005AC0C - .word L8005AC0C - .word L8005AB10 # 16 - .word L8005AC0C - .word L8005AC0C - .word L8005AC0C - .word L8005AC0C - .word L8005AC0C - .word L8005AC0C - .word L8005AC0C - .word L8005AC0C - .word L8005AC0C - .word L8005AC0C - .word L8005AC0C - .word L8005AC0C - .word L8005AC0C - .word L8005AC0C - .word L8005AC0C - .word L8005AC00 # 32 - -glabel D_8013A56C - .float 182.041672 # 32768 / PI - -.text -glabel Camera_SetParam -/* AD1C30 8005AA90 10C00060 */ beqz $a2, .L8005AC14 -/* AD1C34 8005AA94 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* AD1C38 8005AA98 28A10021 */ slti $at, $a1, 0x21 -/* AD1C3C 8005AA9C 14200006 */ bnez $at, .L8005AAB8 -/* AD1C40 8005AAA0 24AEFFFF */ addiu $t6, $a1, -1 -/* AD1C44 8005AAA4 24010040 */ li $at, 64 -/* AD1C48 8005AAA8 10A1004A */ beq $a1, $at, .L8005ABD4 -/* AD1C4C 8005AAAC 00000000 */ nop -/* AD1C50 8005AAB0 1000005A */ b .L8005AC1C -/* AD1C54 8005AAB4 00001025 */ move $v0, $zero -.L8005AAB8: -/* AD1C58 8005AAB8 2DC10020 */ sltiu $at, $t6, 0x20 -/* AD1C5C 8005AABC 10200053 */ beqz $at, .L8005AC0C -/* AD1C60 8005AAC0 000E7080 */ sll $t6, $t6, 2 -/* AD1C64 8005AAC4 3C018014 */ lui $at, %hi(jtbl_8013A4EC) -/* AD1C68 8005AAC8 002E0821 */ addu $at, $at, $t6 -/* AD1C6C 8005AACC 8C2EA4EC */ lw $t6, %lo(jtbl_8013A4EC)($at) -/* AD1C70 8005AAD0 01C00008 */ jr $t6 -/* AD1C74 8005AAD4 00000000 */ nop - -glabel L8005AAD8 -/* AD1C78 8005AAD8 848F015C */ lh $t7, 0x15c($a0) -/* AD1C7C 8005AADC 31F8FFE6 */ andi $t8, $t7, 0xffe6 -/* AD1C80 8005AAE0 A498015C */ sh $t8, 0x15c($a0) -/* AD1C84 8005AAE4 8CC80000 */ lw $t0, ($a2) -/* AD1C88 8005AAE8 AC880050 */ sw $t0, 0x50($a0) -/* AD1C8C 8005AAEC 8CD90004 */ lw $t9, 4($a2) -/* AD1C90 8005AAF0 AC990054 */ sw $t9, 0x54($a0) -/* AD1C94 8005AAF4 8CC80008 */ lw $t0, 8($a2) -/* AD1C98 8005AAF8 AC880058 */ sw $t0, 0x58($a0) -.L8005AAFC: -/* AD1C9C 8005AAFC 8489015C */ lh $t1, 0x15c($a0) -.L8005AB00: -/* AD1CA0 8005AB00 24020001 */ li $v0, 1 -/* AD1CA4 8005AB04 01255025 */ or $t2, $t1, $a1 -/* AD1CA8 8005AB08 10000044 */ b .L8005AC1C -/* AD1CAC 8005AB0C A48A015C */ sh $t2, 0x15c($a0) - -glabel L8005AB10 -/* AD1CB0 8005AB10 848B015C */ lh $t3, 0x15c($a0) -/* AD1CB4 8005AB14 316CFFE6 */ andi $t4, $t3, 0xffe6 -/* AD1CB8 8005AB18 A48C015C */ sh $t4, 0x15c($a0) -/* AD1CBC 8005AB1C 8CCE0000 */ lw $t6, ($a2) -/* AD1CC0 8005AB20 AC8E00AC */ sw $t6, 0xac($a0) -/* AD1CC4 8005AB24 8CCD0004 */ lw $t5, 4($a2) -/* AD1CC8 8005AB28 AC8D00B0 */ sw $t5, 0xb0($a0) -/* AD1CCC 8005AB2C 8CCE0008 */ lw $t6, 8($a2) -/* AD1CD0 8005AB30 1000FFF2 */ b .L8005AAFC -/* AD1CD4 8005AB34 AC8E00B4 */ sw $t6, 0xb4($a0) - -glabel L8005AB38 -/* AD1CD8 8005AB38 84820142 */ lh $v0, 0x142($a0) -/* AD1CDC 8005AB3C 2401003C */ li $at, 60 -/* AD1CE0 8005AB40 5041FFEF */ beql $v0, $at, .L8005AB00 -/* AD1CE4 8005AB44 8489015C */ lh $t1, 0x15c($a0) -/* AD1CE8 8005AB48 2401002B */ li $at, 43 -/* AD1CEC 8005AB4C 5041FFEC */ beql $v0, $at, .L8005AB00 -/* AD1CF0 8005AB50 8489015C */ lh $t1, 0x15c($a0) -/* AD1CF4 8005AB54 848F015C */ lh $t7, 0x15c($a0) -/* AD1CF8 8005AB58 AC8600A8 */ sw $a2, 0xa8($a0) -/* AD1CFC 8005AB5C 31F8FFE6 */ andi $t8, $t7, 0xffe6 -/* AD1D00 8005AB60 1000FFE6 */ b .L8005AAFC -/* AD1D04 8005AB64 A498015C */ sh $t8, 0x15c($a0) - -glabel L8005AB68 -/* AD1D08 8005AB68 8CC80000 */ lw $t0, ($a2) -/* AD1D0C 8005AB6C 27A20004 */ addiu $v0, $sp, 4 -/* AD1D10 8005AB70 AC480000 */ sw $t0, ($v0) -/* AD1D14 8005AB74 8CD90004 */ lw $t9, 4($a2) -/* AD1D18 8005AB78 8C4A0000 */ lw $t2, ($v0) -/* AD1D1C 8005AB7C AC590004 */ sw $t9, 4($v0) -/* AD1D20 8005AB80 8CC80008 */ lw $t0, 8($a2) -/* AD1D24 8005AB84 AC480008 */ sw $t0, 8($v0) -/* AD1D28 8005AB88 AC8A0074 */ sw $t2, 0x74($a0) -/* AD1D2C 8005AB8C 8C490004 */ lw $t1, 4($v0) -/* AD1D30 8005AB90 AC890078 */ sw $t1, 0x78($a0) -/* AD1D34 8005AB94 8C4A0008 */ lw $t2, 8($v0) -/* AD1D38 8005AB98 AC8A007C */ sw $t2, 0x7c($a0) -/* AD1D3C 8005AB9C 8C4C0000 */ lw $t4, ($v0) -/* AD1D40 8005ABA0 AC8C005C */ sw $t4, 0x5c($a0) -/* AD1D44 8005ABA4 8C4B0004 */ lw $t3, 4($v0) -/* AD1D48 8005ABA8 AC8B0060 */ sw $t3, 0x60($a0) -/* AD1D4C 8005ABAC 8C4C0008 */ lw $t4, 8($v0) -/* AD1D50 8005ABB0 1000FFD2 */ b .L8005AAFC -/* AD1D54 8005ABB4 AC8C0064 */ sw $t4, 0x64($a0) - -glabel L8005ABB8 -/* AD1D58 8005ABB8 8CCE0000 */ lw $t6, ($a2) -/* AD1D5C 8005ABBC AC8E0068 */ sw $t6, 0x68($a0) -/* AD1D60 8005ABC0 8CCD0004 */ lw $t5, 4($a2) -/* AD1D64 8005ABC4 AC8D006C */ sw $t5, 0x6c($a0) -/* AD1D68 8005ABC8 8CCE0008 */ lw $t6, 8($a2) -/* AD1D6C 8005ABCC 1000FFCB */ b .L8005AAFC -/* AD1D70 8005ABD0 AC8E0070 */ sw $t6, 0x70($a0) -.L8005ABD4: -/* AD1D74 8005ABD4 3C018014 */ lui $at, %hi(D_8013A56C) -/* AD1D78 8005ABD8 C426A56C */ lwc1 $f6, %lo(D_8013A56C)($at) -/* AD1D7C 8005ABDC C4C40000 */ lwc1 $f4, ($a2) -/* AD1D80 8005ABE0 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* AD1D84 8005ABE4 44815000 */ mtc1 $at, $f10 -/* AD1D88 8005ABE8 46062202 */ mul.s $f8, $f4, $f6 -/* AD1D8C 8005ABEC 460A4400 */ add.s $f16, $f8, $f10 -/* AD1D90 8005ABF0 4600848D */ trunc.w.s $f18, $f16 -/* AD1D94 8005ABF4 44189000 */ mfc1 $t8, $f18 -/* AD1D98 8005ABF8 1000FFC0 */ b .L8005AAFC -/* AD1D9C 8005ABFC A498015A */ sh $t8, 0x15a($a0) - -glabel L8005AC00 -/* AD1DA0 8005AC00 C4C40000 */ lwc1 $f4, ($a2) -/* AD1DA4 8005AC04 1000FFBD */ b .L8005AAFC -/* AD1DA8 8005AC08 E48400FC */ swc1 $f4, 0xfc($a0) - -.L8005AC0C: -glabel L8005AC0C -/* AD1DAC 8005AC0C 10000003 */ b .L8005AC1C -/* AD1DB0 8005AC10 00001025 */ move $v0, $zero -.L8005AC14: -/* AD1DB4 8005AC14 10000001 */ b .L8005AC1C -/* AD1DB8 8005AC18 00001025 */ move $v0, $zero -.L8005AC1C: -/* AD1DBC 8005AC1C 03E00008 */ jr $ra -/* AD1DC0 8005AC20 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/non_matchings/code/z_camera/Camera_Special4.s b/asm/non_matchings/code/z_camera/Camera_Special4.s deleted file mode 100644 index abdd009794..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Special4.s +++ /dev/null @@ -1,109 +0,0 @@ -glabel Camera_Special4 -/* ACD7F4 80056654 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* ACD7F8 80056658 AFBF001C */ sw $ra, 0x1c($sp) -/* ACD7FC 8005665C AFB10018 */ sw $s1, 0x18($sp) -/* ACD800 80056660 AFB00014 */ sw $s0, 0x14($sp) -/* ACD804 80056664 848E015E */ lh $t6, 0x15e($a0) -/* ACD808 80056668 00808025 */ move $s0, $a0 -/* ACD80C 8005666C 240F3200 */ li $t7, 12800 -/* ACD810 80056670 15C0000B */ bnez $t6, .L800566A0 -/* ACD814 80056674 26110160 */ addiu $s1, $s0, 0x160 -/* ACD818 80056678 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 -/* ACD81C 8005667C AC2FD3A0 */ sw $t7, %lo(D_8011D3A0)($at) -/* ACD820 80056680 8498015E */ lh $t8, 0x15e($a0) -/* ACD824 80056684 3C014220 */ li $at, 0x42200000 # 0.000000 -/* ACD828 80056688 44812000 */ mtc1 $at, $f4 -/* ACD82C 8005668C 84880160 */ lh $t0, 0x160($a0) -/* ACD830 80056690 27190001 */ addiu $t9, $t8, 1 -/* ACD834 80056694 A499015E */ sh $t9, 0x15e($a0) -/* ACD838 80056698 E48400FC */ swc1 $f4, 0xfc($a0) -/* ACD83C 8005669C A4880000 */ sh $t0, ($a0) -.L800566A0: -/* ACD840 800566A0 86290000 */ lh $t1, ($s1) -/* ACD844 800566A4 3C0142A0 */ li $at, 0x42A00000 # 0.000000 -/* ACD848 800566A8 44816000 */ mtc1 $at, $f12 -/* ACD84C 800566AC 44894000 */ mtc1 $t1, $f8 -/* ACD850 800566B0 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ACD854 800566B4 44813000 */ mtc1 $at, $f6 -/* ACD858 800566B8 468042A0 */ cvt.s.w $f10, $f8 -/* ACD85C 800566BC 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* ACD860 800566C0 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* ACD864 800566C4 C60E00FC */ lwc1 $f14, 0xfc($s0) -/* ACD868 800566C8 460A3403 */ div.s $f16, $f6, $f10 -/* ACD86C 800566CC 44068000 */ mfc1 $a2, $f16 -/* ACD870 800566D0 0C010E27 */ jal func_8004389C -/* ACD874 800566D4 00000000 */ nop -/* ACD878 800566D8 E60000FC */ swc1 $f0, 0xfc($s0) -/* ACD87C 800566DC 86230000 */ lh $v1, ($s1) -/* ACD880 800566E0 860A0000 */ lh $t2, ($s0) -/* ACD884 800566E4 240DFE0C */ li $t5, -500 -/* ACD888 800566E8 27A4003C */ addiu $a0, $sp, 0x3c -/* ACD88C 800566EC 01435823 */ subu $t3, $t2, $v1 -/* ACD890 800566F0 2961000F */ slti $at, $t3, 0xf -/* ACD894 800566F4 10200004 */ beqz $at, .L80056708 -/* ACD898 800566F8 246CFFFF */ addiu $t4, $v1, -1 -/* ACD89C 800566FC A62C0000 */ sh $t4, ($s1) -/* ACD8A0 80056700 10000038 */ b .L800567E4 -/* ACD8A4 80056704 00001025 */ move $v0, $zero -.L80056708: -/* ACD8A8 80056708 A60D015A */ sh $t5, 0x15a($s0) -/* ACD8AC 8005670C 0C00BBC5 */ jal func_8002EF14 -/* ACD8B0 80056710 8E0500A8 */ lw $a1, 0xa8($s0) -/* ACD8B4 80056714 27AE003C */ addiu $t6, $sp, 0x3c -/* ACD8B8 80056718 8DD80000 */ lw $t8, ($t6) -/* ACD8BC 8005671C 3C014316 */ li $at, 0x43160000 # 0.000000 -/* ACD8C0 80056720 44812000 */ mtc1 $at, $f4 -/* ACD8C4 80056724 AE180050 */ sw $t8, 0x50($s0) -/* ACD8C8 80056728 8DCF0004 */ lw $t7, 4($t6) -/* ACD8CC 8005672C AE0F0054 */ sw $t7, 0x54($s0) -/* ACD8D0 80056730 C6120054 */ lwc1 $f18, 0x54($s0) -/* ACD8D4 80056734 8DD80008 */ lw $t8, 8($t6) -/* ACD8D8 80056738 46049201 */ sub.s $f8, $f18, $f4 -/* ACD8DC 8005673C AE180058 */ sw $t8, 0x58($s0) -/* ACD8E0 80056740 E6080054 */ swc1 $f8, 0x54($s0) -/* ACD8E4 80056744 87A2004A */ lh $v0, 0x4a($sp) -/* ACD8E8 80056748 24428001 */ addiu $v0, $v0, -0x7fff -/* ACD8EC 8005674C 00021400 */ sll $v0, $v0, 0x10 -/* ACD8F0 80056750 00021403 */ sra $v0, $v0, 0x10 -/* ACD8F4 80056754 244203E8 */ addiu $v0, $v0, 0x3e8 -/* ACD8F8 80056758 00022400 */ sll $a0, $v0, 0x10 -/* ACD8FC 8005675C A7A2003A */ sh $v0, 0x3a($sp) -/* ACD900 80056760 0C01DE1C */ jal Math_Sins -/* ACD904 80056764 00042403 */ sra $a0, $a0, 0x10 -/* ACD908 80056768 3C014443 */ li $at, 0x44430000 # 0.000000 -/* ACD90C 8005676C 44813000 */ mtc1 $at, $f6 -/* ACD910 80056770 C6100050 */ lwc1 $f16, 0x50($s0) -/* ACD914 80056774 C6120054 */ lwc1 $f18, 0x54($s0) -/* ACD918 80056778 46060282 */ mul.s $f10, $f0, $f6 -/* ACD91C 8005677C E6120078 */ swc1 $f18, 0x78($s0) -/* ACD920 80056780 46105080 */ add.s $f2, $f10, $f16 -/* ACD924 80056784 E6020074 */ swc1 $f2, 0x74($s0) -/* ACD928 80056788 E602005C */ swc1 $f2, 0x5c($s0) -/* ACD92C 8005678C 0C01DE0D */ jal Math_Coss -/* ACD930 80056790 87A4003A */ lh $a0, 0x3a($sp) -/* ACD934 80056794 3C014443 */ li $at, 0x44430000 # 0.000000 -/* ACD938 80056798 44812000 */ mtc1 $at, $f4 -/* ACD93C 8005679C C6060058 */ lwc1 $f6, 0x58($s0) -/* ACD940 800567A0 02002025 */ move $a0, $s0 -/* ACD944 800567A4 46040202 */ mul.s $f8, $f0, $f4 -/* ACD948 800567A8 2605005C */ addiu $a1, $s0, 0x5c -/* ACD94C 800567AC 46064080 */ add.s $f2, $f8, $f6 -/* ACD950 800567B0 E602007C */ swc1 $f2, 0x7c($s0) -/* ACD954 800567B4 E6020064 */ swc1 $f2, 0x64($s0) -/* ACD958 800567B8 C7AA0040 */ lwc1 $f10, 0x40($sp) -/* ACD95C 800567BC 0C011144 */ jal func_80044510 -/* ACD960 800567C0 E60A0060 */ swc1 $f10, 0x60($s0) -/* ACD964 800567C4 3C0141A0 */ li $at, 0x41A00000 # 0.000000 -/* ACD968 800567C8 44818000 */ mtc1 $at, $f16 -/* ACD96C 800567CC 24020001 */ li $v0, 1 -/* ACD970 800567D0 46100480 */ add.s $f18, $f0, $f16 -/* ACD974 800567D4 E6120060 */ swc1 $f18, 0x60($s0) -/* ACD978 800567D8 86390000 */ lh $t9, ($s1) -/* ACD97C 800567DC 2728FFFF */ addiu $t0, $t9, -1 -/* ACD980 800567E0 A6280000 */ sh $t0, ($s1) -.L800567E4: -/* ACD984 800567E4 8FBF001C */ lw $ra, 0x1c($sp) -/* ACD988 800567E8 8FB00014 */ lw $s0, 0x14($sp) -/* ACD98C 800567EC 8FB10018 */ lw $s1, 0x18($sp) -/* ACD990 800567F0 03E00008 */ jr $ra -/* ACD994 800567F4 27BD0050 */ addiu $sp, $sp, 0x50 diff --git a/asm/non_matchings/code/z_camera/Camera_Special5.s b/asm/non_matchings/code/z_camera/Camera_Special5.s deleted file mode 100644 index 111d1954cd..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Special5.s +++ /dev/null @@ -1,302 +0,0 @@ -.late_rodata -glabel D_8013A390 - .float 0.01 - -glabel D_8013A394 - .float 0.01 - -glabel D_8013A398 - .float 182.04167 - -glabel D_8013A39C - .float 0.01 - -glabel D_8013A3A0 - .float 2730.0 - -glabel D_8013A3A4 - .float 2730.0 - -glabel D_8013A3A8 - .float 0.01 - -.text -glabel Camera_Special5 -/* ACD998 800567F8 27BDFF38 */ addiu $sp, $sp, -0xc8 -/* ACD99C 800567FC AFB00018 */ sw $s0, 0x18($sp) -/* ACD9A0 80056800 00808025 */ move $s0, $a0 -/* ACD9A4 80056804 AFBF001C */ sw $ra, 0x1c($sp) -/* ACD9A8 80056808 0C00B721 */ jal Player_GetCameraYOffset -/* ACD9AC 8005680C 8C840090 */ lw $a0, 0x90($a0) -/* ACD9B0 80056810 8603015E */ lh $v1, 0x15e($s0) -/* ACD9B4 80056814 10600008 */ beqz $v1, .L80056838 -/* ACD9B8 80056818 2401000A */ li $at, 10 -/* ACD9BC 8005681C 10610006 */ beq $v1, $at, .L80056838 -/* ACD9C0 80056820 24010014 */ li $at, 20 -/* ACD9C4 80056824 10610004 */ beq $v1, $at, .L80056838 -/* ACD9C8 80056828 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 -/* ACD9CC 8005682C 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* ACD9D0 80056830 85C30314 */ lh $v1, 0x314($t6) -/* ACD9D4 80056834 10600050 */ beqz $v1, .L80056978 -.L80056838: -/* ACD9D8 80056838 3C0B8016 */ lui $t3, %hi(gGameInfo) # $t3, 0x8016 -/* ACD9DC 8005683C 8D6BFA90 */ lw $t3, %lo(gGameInfo)($t3) -/* ACD9E0 80056840 3C018014 */ lui $at, %hi(D_8013A390) -/* ACD9E4 80056844 C428A390 */ lwc1 $f8, %lo(D_8013A390)($at) -/* ACD9E8 80056848 856C01F0 */ lh $t4, 0x1f0($t3) -/* ACD9EC 8005684C 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ACD9F0 80056850 44815000 */ mtc1 $at, $f10 -/* ACD9F4 80056854 448C2000 */ mtc1 $t4, $f4 -/* ACD9F8 80056858 3C014288 */ li $at, 0x42880000 # 0.000000 -/* ACD9FC 8005685C 44819000 */ mtc1 $at, $f18 -/* ACDA00 80056860 468021A0 */ cvt.s.w $f6, $f4 -/* ACDA04 80056864 860F0142 */ lh $t7, 0x142($s0) -/* ACDA08 80056868 3C198012 */ lui $t9, %hi(sCameraSettings+4) -/* ACDA0C 8005686C 86080144 */ lh $t0, 0x144($s0) -/* ACDA10 80056870 000FC0C0 */ sll $t8, $t7, 3 -/* ACDA14 80056874 46009103 */ div.s $f4, $f18, $f0 -/* ACDA18 80056878 0338C821 */ addu $t9, $t9, $t8 -/* ACDA1C 8005687C 8F39D068 */ lw $t9, %lo(sCameraSettings+4)($t9) -/* ACDA20 80056880 000848C0 */ sll $t1, $t0, 3 -/* ACDA24 80056884 46083082 */ mul.s $f2, $f6, $f8 -/* ACDA28 80056888 03295021 */ addu $t2, $t9, $t1 -/* ACDA2C 8005688C 8D420004 */ lw $v0, 4($t2) -/* ACDA30 80056890 3C018014 */ lui $at, %hi(D_8013A394) -/* ACDA34 80056894 C432A394 */ lwc1 $f18, %lo(D_8013A394)($at) -/* ACDA38 80056898 844D0000 */ lh $t5, ($v0) -/* ACDA3C 8005689C 3C018014 */ lui $at, %hi(D_8013A398) -/* ACDA40 800568A0 2442001C */ addiu $v0, $v0, 0x1c -/* ACDA44 800568A4 448D4000 */ mtc1 $t5, $f8 -/* ACDA48 800568A8 3C0D8016 */ lui $t5, %hi(gGameInfo) -/* ACDA4C 800568AC 46025400 */ add.s $f16, $f10, $f2 -/* ACDA50 800568B0 46041182 */ mul.s $f6, $f2, $f4 -/* ACDA54 800568B4 468042A0 */ cvt.s.w $f10, $f8 -/* ACDA58 800568B8 46068301 */ sub.s $f12, $f16, $f6 -/* ACDA5C 800568BC 46125102 */ mul.s $f4, $f10, $f18 -/* ACDA60 800568C0 00000000 */ nop -/* ACDA64 800568C4 46002402 */ mul.s $f16, $f4, $f0 -/* ACDA68 800568C8 00000000 */ nop -/* ACDA6C 800568CC 460C8182 */ mul.s $f6, $f16, $f12 -/* ACDA70 800568D0 E6060000 */ swc1 $f6, ($s0) -/* ACDA74 800568D4 844EFFE8 */ lh $t6, -0x18($v0) -/* ACDA78 800568D8 448E4000 */ mtc1 $t6, $f8 -/* ACDA7C 800568DC 00000000 */ nop -/* ACDA80 800568E0 468042A0 */ cvt.s.w $f10, $f8 -/* ACDA84 800568E4 E60A0004 */ swc1 $f10, 4($s0) -/* ACDA88 800568E8 844FFFEC */ lh $t7, -0x14($v0) -/* ACDA8C 800568EC 448F9000 */ mtc1 $t7, $f18 -/* ACDA90 800568F0 00000000 */ nop -/* ACDA94 800568F4 46809120 */ cvt.s.w $f4, $f18 -/* ACDA98 800568F8 E6040008 */ swc1 $f4, 8($s0) -/* ACDA9C 800568FC 8458FFF0 */ lh $t8, -0x10($v0) -/* ACDAA0 80056900 A6180014 */ sh $t8, 0x14($s0) -/* ACDAA4 80056904 8448FFF4 */ lh $t0, -0xc($v0) -/* ACDAA8 80056908 C428A398 */ lwc1 $f8, %lo(D_8013A398)($at) -/* ACDAAC 8005690C 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* ACDAB0 80056910 44888000 */ mtc1 $t0, $f16 -/* ACDAB4 80056914 44819000 */ mtc1 $at, $f18 -/* ACDAB8 80056918 3C018014 */ lui $at, %hi(D_8013A39C) -/* ACDABC 8005691C 468081A0 */ cvt.s.w $f6, $f16 -/* ACDAC0 80056920 46083282 */ mul.s $f10, $f6, $f8 -/* ACDAC4 80056924 46125100 */ add.s $f4, $f10, $f18 -/* ACDAC8 80056928 4600240D */ trunc.w.s $f16, $f4 -/* ACDACC 8005692C 44098000 */ mfc1 $t1, $f16 -/* ACDAD0 80056930 00000000 */ nop -/* ACDAD4 80056934 A6090016 */ sh $t1, 0x16($s0) -/* ACDAD8 80056938 844AFFF8 */ lh $t2, -8($v0) -/* ACDADC 8005693C 448A3000 */ mtc1 $t2, $f6 -/* ACDAE0 80056940 00000000 */ nop -/* ACDAE4 80056944 46803220 */ cvt.s.w $f8, $f6 -/* ACDAE8 80056948 E608000C */ swc1 $f8, 0xc($s0) -/* ACDAEC 8005694C 844BFFFC */ lh $t3, -4($v0) -/* ACDAF0 80056950 C424A39C */ lwc1 $f4, %lo(D_8013A39C)($at) -/* ACDAF4 80056954 448B5000 */ mtc1 $t3, $f10 -/* ACDAF8 80056958 00000000 */ nop -/* ACDAFC 8005695C 468054A0 */ cvt.s.w $f18, $f10 -/* ACDB00 80056960 46049402 */ mul.s $f16, $f18, $f4 -/* ACDB04 80056964 E6100010 */ swc1 $f16, 0x10($s0) -/* ACDB08 80056968 844C0000 */ lh $t4, ($v0) -/* ACDB0C 8005696C A60C0018 */ sh $t4, 0x18($s0) -/* ACDB10 80056970 8DADFA90 */ lw $t5, %lo(gGameInfo)($t5) -/* ACDB14 80056974 85A30314 */ lh $v1, 0x314($t5) -.L80056978: -/* ACDB18 80056978 50600004 */ beql $v1, $zero, .L8005698C -/* ACDB1C 8005697C 26050050 */ addiu $a1, $s0, 0x50 -/* ACDB20 80056980 0C011495 */ jal Camera_CopyPREGToModeValues -/* ACDB24 80056984 02002025 */ move $a0, $s0 -/* ACDB28 80056988 26050050 */ addiu $a1, $s0, 0x50 -.L8005698C: -/* ACDB2C 8005698C 2606005C */ addiu $a2, $s0, 0x5c -/* ACDB30 80056990 AFA60038 */ sw $a2, 0x38($sp) -/* ACDB34 80056994 AFA50034 */ sw $a1, 0x34($sp) -/* ACDB38 80056998 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* ACDB3C 8005699C 27A40064 */ addiu $a0, $sp, 0x64 -/* ACDB40 800569A0 26060074 */ addiu $a2, $s0, 0x74 -/* ACDB44 800569A4 AFA60030 */ sw $a2, 0x30($sp) -/* ACDB48 800569A8 27A4005C */ addiu $a0, $sp, 0x5c -/* ACDB4C 800569AC 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* ACDB50 800569B0 8FA50034 */ lw $a1, 0x34($sp) -/* ACDB54 800569B4 27A400A8 */ addiu $a0, $sp, 0xa8 -/* ACDB58 800569B8 0C00BBC5 */ jal func_8002EF14 -/* ACDB5C 800569BC 8E0500A8 */ lw $a1, 0xa8($s0) -/* ACDB60 800569C0 860E0018 */ lh $t6, 0x18($s0) -/* ACDB64 800569C4 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 -/* ACDB68 800569C8 2606001C */ addiu $a2, $s0, 0x1c -/* ACDB6C 800569CC AC2ED3A0 */ sw $t6, %lo(D_8011D3A0)($at) -/* ACDB70 800569D0 8603015E */ lh $v1, 0x15e($s0) -/* ACDB74 800569D4 54600006 */ bnezl $v1, .L800569F0 -/* ACDB78 800569D8 84C20000 */ lh $v0, ($a2) -/* ACDB7C 800569DC 86180014 */ lh $t8, 0x14($s0) -/* ACDB80 800569E0 246F0001 */ addiu $t7, $v1, 1 -/* ACDB84 800569E4 A60F015E */ sh $t7, 0x15e($s0) -/* ACDB88 800569E8 A618001C */ sh $t8, 0x1c($s0) -/* ACDB8C 800569EC 84C20000 */ lh $v0, ($a2) -.L800569F0: -/* ACDB90 800569F0 18400003 */ blez $v0, .L80056A00 -/* ACDB94 800569F4 2448FFFF */ addiu $t0, $v0, -1 -/* ACDB98 800569F8 10000062 */ b .L80056B84 -/* ACDB9C 800569FC A4C80000 */ sh $t0, ($a2) -.L80056A00: -/* ACDBA0 80056A00 54400061 */ bnezl $v0, .L80056B88 -/* ACDBA4 80056A04 02002025 */ move $a0, $s0 -/* ACDBA8 80056A08 8E0300A8 */ lw $v1, 0xa8($s0) -/* ACDBAC 80056A0C 50600007 */ beql $v1, $zero, .L80056A2C -/* ACDBB0 80056A10 AE0000A8 */ sw $zero, 0xa8($s0) -/* ACDBB4 80056A14 8C790130 */ lw $t9, 0x130($v1) -/* ACDBB8 80056A18 2449FFFF */ addiu $t1, $v0, -1 -/* ACDBBC 80056A1C 27A400A8 */ addiu $a0, $sp, 0xa8 -/* ACDBC0 80056A20 17200004 */ bnez $t9, .L80056A34 -/* ACDBC4 80056A24 26050094 */ addiu $a1, $s0, 0x94 -/* ACDBC8 80056A28 AE0000A8 */ sw $zero, 0xa8($s0) -.L80056A2C: -/* ACDBCC 80056A2C 10000077 */ b .L80056C0C -/* ACDBD0 80056A30 24020001 */ li $v0, 1 -.L80056A34: -/* ACDBD4 80056A34 A4C90000 */ sh $t1, ($a2) -/* ACDBD8 80056A38 0C01EFE4 */ jal OLib_Vec3fDist -/* ACDBDC 80056A3C AFA5002C */ sw $a1, 0x2c($sp) -/* ACDBE0 80056A40 C6060008 */ lwc1 $f6, 8($s0) -/* ACDBE4 80056A44 8FA2002C */ lw $v0, 0x2c($sp) -/* ACDBE8 80056A48 3C0141A0 */ li $at, 0x41A00000 # 0.000000 -/* ACDBEC 80056A4C 4600303C */ c.lt.s $f6, $f0 -/* ACDBF0 80056A50 27A4007C */ addiu $a0, $sp, 0x7c -/* ACDBF4 80056A54 4502004C */ bc1fl .L80056B88 -/* ACDBF8 80056A58 02002025 */ move $a0, $s0 -/* ACDBFC 80056A5C 844A000E */ lh $t2, 0xe($v0) -/* ACDC00 80056A60 44814000 */ mtc1 $at, $f8 -/* ACDC04 80056A64 27A500A8 */ addiu $a1, $sp, 0xa8 -/* ACDC08 80056A68 A7AA0072 */ sh $t2, 0x72($sp) -/* ACDC0C 80056A6C 844B000C */ lh $t3, 0xc($v0) -/* ACDC10 80056A70 27A6006C */ addiu $a2, $sp, 0x6c -/* ACDC14 80056A74 E7A8006C */ swc1 $f8, 0x6c($sp) -/* ACDC18 80056A78 000B6023 */ negu $t4, $t3 -/* ACDC1C 80056A7C 0C010F0A */ jal func_80043C28 -/* ACDC20 80056A80 A7AC0070 */ sh $t4, 0x70($sp) -/* ACDC24 80056A84 02002025 */ move $a0, $s0 -/* ACDC28 80056A88 8FA50034 */ lw $a1, 0x34($sp) -/* ACDC2C 80056A8C 0C010F46 */ jal func_80043D18 -/* ACDC30 80056A90 27A6007C */ addiu $a2, $sp, 0x7c -/* ACDC34 80056A94 27A4006C */ addiu $a0, $sp, 0x6c -/* ACDC38 80056A98 0C01F0FD */ jal OLib_Vec3fToVecSphGeo -/* ACDC3C 80056A9C 27A50088 */ addiu $a1, $sp, 0x88 -/* ACDC40 80056AA0 8FAD002C */ lw $t5, 0x2c($sp) -/* ACDC44 80056AA4 87AF0072 */ lh $t7, 0x72($sp) -/* ACDC48 80056AA8 85AE000E */ lh $t6, 0xe($t5) -/* ACDC4C 80056AAC 01CFC023 */ subu $t8, $t6, $t7 -/* ACDC50 80056AB0 A7B800A4 */ sh $t8, 0xa4($sp) -/* ACDC54 80056AB4 C60A0004 */ lwc1 $f10, 4($s0) -/* ACDC58 80056AB8 0C03F66B */ jal Math_Rand_ZeroOne -/* ACDC5C 80056ABC E7AA0074 */ swc1 $f10, 0x74($sp) -/* ACDC60 80056AC0 87A800A4 */ lh $t0, 0xa4($sp) -/* ACDC64 80056AC4 8FAC002C */ lw $t4, 0x2c($sp) -/* ACDC68 80056AC8 3C018014 */ lui $at, %hi(D_8013A3A4) -/* ACDC6C 80056ACC 0501000E */ bgez $t0, .L80056B08 -/* ACDC70 80056AD0 00000000 */ nop -/* ACDC74 80056AD4 3C018014 */ lui $at, %hi(D_8013A3A0) -/* ACDC78 80056AD8 C432A3A0 */ lwc1 $f18, %lo(D_8013A3A0)($at) -/* ACDC7C 80056ADC 46120102 */ mul.s $f4, $f0, $f18 -/* ACDC80 80056AE0 4600240D */ trunc.w.s $f16, $f4 -/* ACDC84 80056AE4 44028000 */ mfc1 $v0, $f16 -/* ACDC88 80056AE8 00000000 */ nop -/* ACDC8C 80056AEC 00021400 */ sll $v0, $v0, 0x10 -/* ACDC90 80056AF0 00021403 */ sra $v0, $v0, 0x10 -/* ACDC94 80056AF4 24421553 */ addiu $v0, $v0, 0x1553 -/* ACDC98 80056AF8 00021400 */ sll $v0, $v0, 0x10 -/* ACDC9C 80056AFC 00021403 */ sra $v0, $v0, 0x10 -/* ACDCA0 80056B00 1000000B */ b .L80056B30 -/* ACDCA4 80056B04 00021023 */ negu $v0, $v0 -.L80056B08: -/* ACDCA8 80056B08 C426A3A4 */ lwc1 $f6, %lo(D_8013A3A4)($at) -/* ACDCAC 80056B0C 46060202 */ mul.s $f8, $f0, $f6 -/* ACDCB0 80056B10 4600428D */ trunc.w.s $f10, $f8 -/* ACDCB4 80056B14 44025000 */ mfc1 $v0, $f10 -/* ACDCB8 80056B18 00000000 */ nop -/* ACDCBC 80056B1C 00021400 */ sll $v0, $v0, 0x10 -/* ACDCC0 80056B20 00021403 */ sra $v0, $v0, 0x10 -/* ACDCC4 80056B24 24421553 */ addiu $v0, $v0, 0x1553 -/* ACDCC8 80056B28 00021400 */ sll $v0, $v0, 0x10 -/* ACDCCC 80056B2C 00021403 */ sra $v0, $v0, 0x10 -.L80056B30: -/* ACDCD0 80056B30 858D000E */ lh $t5, 0xe($t4) -/* ACDCD4 80056B34 8FA40030 */ lw $a0, 0x30($sp) -/* ACDCD8 80056B38 27A500A8 */ addiu $a1, $sp, 0xa8 -/* ACDCDC 80056B3C 25B88001 */ addiu $t8, $t5, -0x7fff -/* ACDCE0 80056B40 00584021 */ addu $t0, $v0, $t8 -/* ACDCE4 80056B44 A7A8007A */ sh $t0, 0x7a($sp) -/* ACDCE8 80056B48 86190016 */ lh $t9, 0x16($s0) -/* ACDCEC 80056B4C 27A60074 */ addiu $a2, $sp, 0x74 -/* ACDCF0 80056B50 0C010F0A */ jal func_80043C28 -/* ACDCF4 80056B54 A7B90078 */ sh $t9, 0x78($sp) -/* ACDCF8 80056B58 8FA90030 */ lw $t1, 0x30($sp) -/* ACDCFC 80056B5C 8FA60038 */ lw $a2, 0x38($sp) -/* ACDD00 80056B60 02002025 */ move $a0, $s0 -/* ACDD04 80056B64 8D2C0000 */ lw $t4, ($t1) -/* ACDD08 80056B68 27A500A8 */ addiu $a1, $sp, 0xa8 -/* ACDD0C 80056B6C ACCC0000 */ sw $t4, ($a2) -/* ACDD10 80056B70 8D2A0004 */ lw $t2, 4($t1) -/* ACDD14 80056B74 ACCA0004 */ sw $t2, 4($a2) -/* ACDD18 80056B78 8D2C0008 */ lw $t4, 8($t1) -/* ACDD1C 80056B7C 0C010FCD */ jal func_80043F34 -/* ACDD20 80056B80 ACCC0008 */ sw $t4, 8($a2) -.L80056B84: -/* ACDD24 80056B84 02002025 */ move $a0, $s0 -.L80056B88: -/* ACDD28 80056B88 27A5005C */ addiu $a1, $sp, 0x5c -/* ACDD2C 80056B8C 8E060000 */ lw $a2, ($s0) -/* ACDD30 80056B90 0C0115EA */ jal func_800457A8 -/* ACDD34 80056B94 00003825 */ move $a3, $zero -/* ACDD38 80056B98 3C0D8016 */ lui $t5, %hi(gGameInfo) # $t5, 0x8016 -/* ACDD3C 80056B9C 8DADFA90 */ lw $t5, %lo(gGameInfo)($t5) -/* ACDD40 80056BA0 3C018014 */ lui $at, %hi(D_8013A3A8) -/* ACDD44 80056BA4 C430A3A8 */ lwc1 $f16, %lo(D_8013A3A8)($at) -/* ACDD48 80056BA8 85AE019C */ lh $t6, 0x19c($t5) -/* ACDD4C 80056BAC C6080100 */ lwc1 $f8, 0x100($s0) -/* ACDD50 80056BB0 C60C000C */ lwc1 $f12, 0xc($s0) -/* ACDD54 80056BB4 448E9000 */ mtc1 $t6, $f18 -/* ACDD58 80056BB8 C60E00FC */ lwc1 $f14, 0xfc($s0) -/* ACDD5C 80056BBC 3C073F80 */ lui $a3, 0x3f80 -/* ACDD60 80056BC0 46809120 */ cvt.s.w $f4, $f18 -/* ACDD64 80056BC4 46102182 */ mul.s $f6, $f4, $f16 -/* ACDD68 80056BC8 00000000 */ nop -/* ACDD6C 80056BCC 46083282 */ mul.s $f10, $f6, $f8 -/* ACDD70 80056BD0 44065000 */ mfc1 $a2, $f10 -/* ACDD74 80056BD4 0C010E27 */ jal func_8004389C -/* ACDD78 80056BD8 00000000 */ nop -/* ACDD7C 80056BDC E60000FC */ swc1 $f0, 0xfc($s0) -/* ACDD80 80056BE0 00002025 */ move $a0, $zero -/* ACDD84 80056BE4 8605015A */ lh $a1, 0x15a($s0) -/* ACDD88 80056BE8 3C063F00 */ lui $a2, 0x3f00 -/* ACDD8C 80056BEC 0C010E47 */ jal func_8004391C -/* ACDD90 80056BF0 2407000A */ li $a3, 10 -/* ACDD94 80056BF4 A602015A */ sh $v0, 0x15a($s0) -/* ACDD98 80056BF8 02002025 */ move $a0, $s0 -/* ACDD9C 80056BFC 0C011429 */ jal func_800450A4 -/* ACDDA0 80056C00 8E050010 */ lw $a1, 0x10($s0) -/* ACDDA4 80056C04 E6000100 */ swc1 $f0, 0x100($s0) -/* ACDDA8 80056C08 24020001 */ li $v0, 1 -.L80056C0C: -/* ACDDAC 80056C0C 8FBF001C */ lw $ra, 0x1c($sp) -/* ACDDB0 80056C10 8FB00018 */ lw $s0, 0x18($sp) -/* ACDDB4 80056C14 27BD00C8 */ addiu $sp, $sp, 0xc8 -/* ACDDB8 80056C18 03E00008 */ jr $ra -/* ACDDBC 80056C1C 00000000 */ nop diff --git a/asm/non_matchings/code/z_camera/Camera_Special6.s b/asm/non_matchings/code/z_camera/Camera_Special6.s deleted file mode 100644 index aa466668cb..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Special6.s +++ /dev/null @@ -1,326 +0,0 @@ -.late_rodata -glabel D_8013A3C4 - .float 0.2 - -glabel D_8013A3C8 - .float 0.01 - -glabel D_8013A3CC - .float 0.2 - -.text -glabel Camera_Special6 -/* ACE10C 80056F6C 27BDFF40 */ addiu $sp, $sp, -0xc0 -/* ACE110 80056F70 AFBF0024 */ sw $ra, 0x24($sp) -/* ACE114 80056F74 AFB20020 */ sw $s2, 0x20($sp) -/* ACE118 80056F78 AFB1001C */ sw $s1, 0x1c($sp) -/* ACE11C 80056F7C AFB00018 */ sw $s0, 0x18($sp) -/* ACE120 80056F80 8482015E */ lh $v0, 0x15e($a0) -/* ACE124 80056F84 00808025 */ move $s0, $a0 -/* ACE128 80056F88 2401000A */ li $at, 10 -/* ACE12C 80056F8C 5040000A */ beql $v0, $zero, .L80056FB8 -/* ACE130 80056F90 860F0142 */ lh $t7, 0x142($s0) -/* ACE134 80056F94 10410007 */ beq $v0, $at, .L80056FB4 -/* ACE138 80056F98 24010014 */ li $at, 20 -/* ACE13C 80056F9C 10410005 */ beq $v0, $at, .L80056FB4 -/* ACE140 80056FA0 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 -/* ACE144 80056FA4 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* ACE148 80056FA8 85C20314 */ lh $v0, 0x314($t6) -/* ACE14C 80056FAC 1040000F */ beqz $v0, .L80056FEC -/* ACE150 80056FB0 00000000 */ nop -.L80056FB4: -/* ACE154 80056FB4 860F0142 */ lh $t7, 0x142($s0) -.L80056FB8: -/* ACE158 80056FB8 3C198012 */ lui $t9, %hi(sCameraSettings+4) -/* ACE15C 80056FBC 860B0144 */ lh $t3, 0x144($s0) -/* ACE160 80056FC0 000FC0C0 */ sll $t8, $t7, 3 -/* ACE164 80056FC4 0338C821 */ addu $t9, $t9, $t8 -/* ACE168 80056FC8 8F39D068 */ lw $t9, %lo(sCameraSettings+4)($t9) -/* ACE16C 80056FCC 000B60C0 */ sll $t4, $t3, 3 -/* ACE170 80056FD0 3C0F8016 */ lui $t7, %hi(gGameInfo) # $t7, 0x8016 -/* ACE174 80056FD4 032C6821 */ addu $t5, $t9, $t4 -/* ACE178 80056FD8 8DA30004 */ lw $v1, 4($t5) -/* ACE17C 80056FDC 846E0000 */ lh $t6, ($v1) -/* ACE180 80056FE0 A60E0000 */ sh $t6, ($s0) -/* ACE184 80056FE4 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7) -/* ACE188 80056FE8 85E20314 */ lh $v0, 0x314($t7) -.L80056FEC: -/* ACE18C 80056FEC 50400004 */ beql $v0, $zero, .L80057000 -/* ACE190 80056FF0 2611005C */ addiu $s1, $s0, 0x5c -/* ACE194 80056FF4 0C011495 */ jal Camera_CopyPREGToModeValues -/* ACE198 80056FF8 02002025 */ move $a0, $s0 -/* ACE19C 80056FFC 2611005C */ addiu $s1, $s0, 0x5c -.L80057000: -/* ACE1A0 80057000 26120050 */ addiu $s2, $s0, 0x50 -/* ACE1A4 80057004 02403025 */ move $a2, $s2 -/* ACE1A8 80057008 02202825 */ move $a1, $s1 -/* ACE1AC 8005700C 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* ACE1B0 80057010 27A40074 */ addiu $a0, $sp, 0x74 -/* ACE1B4 80057014 0C0111DB */ jal func_8004476C -/* ACE1B8 80057018 02002025 */ move $a0, $s0 -/* ACE1BC 8005701C 27A400A0 */ addiu $a0, $sp, 0xa0 -/* ACE1C0 80057020 00402825 */ move $a1, $v0 -/* ACE1C4 80057024 0C010EF1 */ jal func_80043BC4 -/* ACE1C8 80057028 AFA2006C */ sw $v0, 0x6c($sp) -/* ACE1CC 8005702C 8FA3006C */ lw $v1, 0x6c($sp) -/* ACE1D0 80057030 27B80064 */ addiu $t8, $sp, 0x64 -/* ACE1D4 80057034 2401FFFF */ li $at, -1 -/* ACE1D8 80057038 88790006 */ lwl $t9, 6($v1) -/* ACE1DC 8005703C 98790009 */ lwr $t9, 9($v1) -/* ACE1E0 80057040 26040074 */ addiu $a0, $s0, 0x74 -/* ACE1E4 80057044 3C098012 */ lui $t1, %hi(D_8011D3A0) # $t1, 0x8012 -/* ACE1E8 80057048 AF190000 */ sw $t9, ($t8) -/* ACE1EC 8005704C 9479000A */ lhu $t9, 0xa($v1) -/* ACE1F0 80057050 A7190004 */ sh $t9, 4($t8) -/* ACE1F4 80057054 8468000C */ lh $t0, 0xc($v1) -/* ACE1F8 80057058 55010003 */ bnel $t0, $at, .L80057068 -/* ACE1FC 8005705C 29010169 */ slti $at, $t0, 0x169 -/* ACE200 80057060 24081770 */ li $t0, 6000 -/* ACE204 80057064 29010169 */ slti $at, $t0, 0x169 -.L80057068: -/* ACE208 80057068 10200008 */ beqz $at, .L8005708C -/* ACE20C 8005706C 01000821 */ addu $at, $t0, $zero -/* ACE210 80057070 00084080 */ sll $t0, $t0, 2 -/* ACE214 80057074 01014023 */ subu $t0, $t0, $at -/* ACE218 80057078 000840C0 */ sll $t0, $t0, 3 -/* ACE21C 8005707C 01014021 */ addu $t0, $t0, $at -/* ACE220 80057080 00084080 */ sll $t0, $t0, 2 -/* ACE224 80057084 00084400 */ sll $t0, $t0, 0x10 -/* ACE228 80057088 00084403 */ sra $t0, $t0, 0x10 -.L8005708C: -/* ACE22C 8005708C 860C0000 */ lh $t4, ($s0) -/* ACE230 80057090 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 -/* ACE234 80057094 C7A400A0 */ lwc1 $f4, 0xa0($sp) -/* ACE238 80057098 AC2CD3A0 */ sw $t4, %lo(D_8011D3A0)($at) -/* ACE23C 8005709C C4860000 */ lwc1 $f6, ($a0) -/* ACE240 800570A0 C7A800A4 */ lwc1 $f8, 0xa4($sp) -/* ACE244 800570A4 46062032 */ c.eq.s $f4, $f6 -/* ACE248 800570A8 00000000 */ nop -/* ACE24C 800570AC 45020010 */ bc1fl .L800570F0 -/* ACE250 800570B0 8E0F0090 */ lw $t7, 0x90($s0) -/* ACE254 800570B4 C48A0004 */ lwc1 $f10, 4($a0) -/* ACE258 800570B8 C7A400A8 */ lwc1 $f4, 0xa8($sp) -/* ACE25C 800570BC 460A4032 */ c.eq.s $f8, $f10 -/* ACE260 800570C0 00000000 */ nop -/* ACE264 800570C4 4502000A */ bc1fl .L800570F0 -/* ACE268 800570C8 8E0F0090 */ lw $t7, 0x90($s0) -/* ACE26C 800570CC C4860008 */ lwc1 $f6, 8($a0) -/* ACE270 800570D0 46062032 */ c.eq.s $f4, $f6 -/* ACE274 800570D4 00000000 */ nop -/* ACE278 800570D8 45020005 */ bc1fl .L800570F0 -/* ACE27C 800570DC 8E0F0090 */ lw $t7, 0x90($s0) -/* ACE280 800570E0 860D015E */ lh $t5, 0x15e($s0) -/* ACE284 800570E4 55A0001A */ bnezl $t5, .L80057150 -/* ACE288 800570E8 26030004 */ addiu $v1, $s0, 4 -/* ACE28C 800570EC 8E0F0090 */ lw $t7, 0x90($s0) -.L800570F0: -/* ACE290 800570F0 240E000C */ li $t6, 12 -/* ACE294 800570F4 2529D3A0 */ addiu $t1, %lo(D_8011D3A0) # addiu $t1, $t1, -0x2c60 -/* ACE298 800570F8 A5EE0110 */ sh $t6, 0x110($t7) -/* ACE29C 800570FC 8D380000 */ lw $t8, ($t1) -/* ACE2A0 80057100 26030004 */ addiu $v1, $s0, 4 -/* ACE2A4 80057104 240C000C */ li $t4, 12 -/* ACE2A8 80057108 330BF0FF */ andi $t3, $t8, 0xf0ff -/* ACE2AC 8005710C 35790300 */ ori $t9, $t3, 0x300 -/* ACE2B0 80057110 AD390000 */ sw $t9, ($t1) -/* ACE2B4 80057114 C6080098 */ lwc1 $f8, 0x98($s0) -/* ACE2B8 80057118 A46C0004 */ sh $t4, 4($v1) -/* ACE2BC 8005711C 27AD00A0 */ addiu $t5, $sp, 0xa0 -/* ACE2C0 80057120 E4680000 */ swc1 $f8, ($v1) -/* ACE2C4 80057124 8DAF0000 */ lw $t7, ($t5) -/* ACE2C8 80057128 AC8F0000 */ sw $t7, ($a0) -/* ACE2CC 8005712C 8DAE0004 */ lw $t6, 4($t5) -/* ACE2D0 80057130 AC8E0004 */ sw $t6, 4($a0) -/* ACE2D4 80057134 8DAF0008 */ lw $t7, 8($t5) -/* ACE2D8 80057138 AC8F0008 */ sw $t7, 8($a0) -/* ACE2DC 8005713C 8602015E */ lh $v0, 0x15e($s0) -/* ACE2E0 80057140 14400002 */ bnez $v0, .L8005714C -/* ACE2E4 80057144 24580001 */ addiu $t8, $v0, 1 -/* ACE2E8 80057148 A618015E */ sh $t8, 0x15e($s0) -.L8005714C: -/* ACE2EC 8005714C 26030004 */ addiu $v1, $s0, 4 -.L80057150: -/* ACE2F0 80057150 84650004 */ lh $a1, 4($v1) -/* ACE2F4 80057154 3C098012 */ lui $t1, %hi(D_8011D3A0) -/* ACE2F8 80057158 2529D3A0 */ addiu $t1, %lo(D_8011D3A0) # addiu $t1, $t1, -0x2c60 -/* ACE2FC 8005715C 18A00077 */ blez $a1, .L8005733C -/* ACE300 80057160 26020094 */ addiu $v0, $s0, 0x94 -/* ACE304 80057164 44855000 */ mtc1 $a1, $f10 -/* ACE308 80057168 27AA0094 */ addiu $t2, $sp, 0x94 -/* ACE30C 8005716C 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* ACE310 80057170 46805120 */ cvt.s.w $f4, $f10 -/* ACE314 80057174 44810000 */ mtc1 $at, $f0 -/* ACE318 80057178 3C018014 */ lui $at, %hi(D_8013A3C4) -/* ACE31C 8005717C 27AC0088 */ addiu $t4, $sp, 0x88 -/* ACE320 80057180 3C073C23 */ lui $a3, (0x3C23D70A >> 16) # lui $a3, 0x3c23 -/* ACE324 80057184 44060000 */ mfc1 $a2, $f0 -/* ACE328 80057188 E7A40058 */ swc1 $f4, 0x58($sp) -/* ACE32C 8005718C 8C990000 */ lw $t9, ($a0) -/* ACE330 80057190 34E7D70A */ ori $a3, (0x3C23D70A & 0xFFFF) # ori $a3, $a3, 0xd70a -/* ACE334 80057194 AD590000 */ sw $t9, ($t2) -/* ACE338 80057198 8C8B0004 */ lw $t3, 4($a0) -/* ACE33C 8005719C AD4B0004 */ sw $t3, 4($t2) -/* ACE340 800571A0 8C990008 */ lw $t9, 8($a0) -/* ACE344 800571A4 AD590008 */ sw $t9, 8($t2) -/* ACE348 800571A8 C7A80094 */ lwc1 $f8, 0x94($sp) -/* ACE34C 800571AC C4460000 */ lwc1 $f6, ($v0) -/* ACE350 800571B0 46083281 */ sub.s $f10, $f6, $f8 -/* ACE354 800571B4 46005102 */ mul.s $f4, $f10, $f0 -/* ACE358 800571B8 46044180 */ add.s $f6, $f8, $f4 -/* ACE35C 800571BC E7A60094 */ swc1 $f6, 0x94($sp) -/* ACE360 800571C0 C4680000 */ lwc1 $f8, ($v1) -/* ACE364 800571C4 C44A0004 */ lwc1 $f10, 4($v0) -/* ACE368 800571C8 C426A3C4 */ lwc1 $f6, %lo(D_8013A3C4)($at) -/* ACE36C 800571CC 46085101 */ sub.s $f4, $f10, $f8 -/* ACE370 800571D0 C7A80098 */ lwc1 $f8, 0x98($sp) -/* ACE374 800571D4 46062282 */ mul.s $f10, $f4, $f6 -/* ACE378 800571D8 460A4100 */ add.s $f4, $f8, $f10 -/* ACE37C 800571DC E7A40098 */ swc1 $f4, 0x98($sp) -/* ACE380 800571E0 8D4E0000 */ lw $t6, ($t2) -/* ACE384 800571E4 AD8E0000 */ sw $t6, ($t4) -/* ACE388 800571E8 8D4D0004 */ lw $t5, 4($t2) -/* ACE38C 800571EC AD8D0004 */ sw $t5, 4($t4) -/* ACE390 800571F0 8D4E0008 */ lw $t6, 8($t2) -/* ACE394 800571F4 AD8E0008 */ sw $t6, 8($t4) -/* ACE398 800571F8 C62E0004 */ lwc1 $f14, 4($s1) -/* ACE39C 800571FC A7A80062 */ sh $t0, 0x62($sp) -/* ACE3A0 80057200 AFA30030 */ sw $v1, 0x30($sp) -/* ACE3A4 80057204 0C010E27 */ jal func_8004389C -/* ACE3A8 80057208 C7AC0098 */ lwc1 $f12, 0x98($sp) -/* ACE3AC 8005720C 87B80064 */ lh $t8, 0x64($sp) -/* ACE3B0 80057210 3C0142C8 */ li $at, 0x42C80000 # 0.000000 -/* ACE3B4 80057214 44813000 */ mtc1 $at, $f6 -/* ACE3B8 80057218 87AF0066 */ lh $t7, 0x66($sp) -/* ACE3BC 8005721C 00185823 */ negu $t3, $t8 -/* ACE3C0 80057220 E7A0008C */ swc1 $f0, 0x8c($sp) -/* ACE3C4 80057224 A7AB00B0 */ sh $t3, 0xb0($sp) -/* ACE3C8 80057228 27A4007C */ addiu $a0, $sp, 0x7c -/* ACE3CC 8005722C 27A50088 */ addiu $a1, $sp, 0x88 -/* ACE3D0 80057230 27A600AC */ addiu $a2, $sp, 0xac -/* ACE3D4 80057234 E7A600AC */ swc1 $f6, 0xac($sp) -/* ACE3D8 80057238 0C010F0A */ jal func_80043C28 -/* ACE3DC 8005723C A7AF00B2 */ sh $t7, 0xb2($sp) -/* ACE3E0 80057240 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ACE3E4 80057244 44814000 */ mtc1 $at, $f8 -/* ACE3E8 80057248 C7AA0058 */ lwc1 $f10, 0x58($sp) -/* ACE3EC 8005724C C7A40088 */ lwc1 $f4, 0x88($sp) -/* ACE3F0 80057250 8FA30030 */ lw $v1, 0x30($sp) -/* ACE3F4 80057254 460A4003 */ div.s $f0, $f8, $f10 -/* ACE3F8 80057258 87A80062 */ lh $t0, 0x62($sp) -/* ACE3FC 8005725C 3C018014 */ lui $at, %hi(D_8013A3C8) -/* ACE400 80057260 E7A00054 */ swc1 $f0, 0x54($sp) -/* ACE404 80057264 C62C0000 */ lwc1 $f12, ($s1) -/* ACE408 80057268 C6220004 */ lwc1 $f2, 4($s1) -/* ACE40C 8005726C C62E0008 */ lwc1 $f14, 8($s1) -/* ACE410 80057270 460C2181 */ sub.s $f6, $f4, $f12 -/* ACE414 80057274 46003202 */ mul.s $f8, $f6, $f0 -/* ACE418 80057278 46086280 */ add.s $f10, $f12, $f8 -/* ACE41C 8005727C E62A0000 */ swc1 $f10, ($s1) -/* ACE420 80057280 C7A4008C */ lwc1 $f4, 0x8c($sp) -/* ACE424 80057284 46022181 */ sub.s $f6, $f4, $f2 -/* ACE428 80057288 46003202 */ mul.s $f8, $f6, $f0 -/* ACE42C 8005728C 46081280 */ add.s $f10, $f2, $f8 -/* ACE430 80057290 E62A0004 */ swc1 $f10, 4($s1) -/* ACE434 80057294 C7A40090 */ lwc1 $f4, 0x90($sp) -/* ACE438 80057298 460E2181 */ sub.s $f6, $f4, $f14 -/* ACE43C 8005729C 46003202 */ mul.s $f8, $f6, $f0 -/* ACE440 800572A0 46087280 */ add.s $f10, $f14, $f8 -/* ACE444 800572A4 E62A0008 */ swc1 $f10, 8($s1) -/* ACE448 800572A8 C6500000 */ lwc1 $f16, ($s2) -/* ACE44C 800572AC C7A4007C */ lwc1 $f4, 0x7c($sp) -/* ACE450 800572B0 C6520004 */ lwc1 $f18, 4($s2) -/* ACE454 800572B4 C6420008 */ lwc1 $f2, 8($s2) -/* ACE458 800572B8 46102181 */ sub.s $f6, $f4, $f16 -/* ACE45C 800572BC 46003202 */ mul.s $f8, $f6, $f0 -/* ACE460 800572C0 46088280 */ add.s $f10, $f16, $f8 -/* ACE464 800572C4 E64A0000 */ swc1 $f10, ($s2) -/* ACE468 800572C8 C7A40080 */ lwc1 $f4, 0x80($sp) -/* ACE46C 800572CC 46122181 */ sub.s $f6, $f4, $f18 -/* ACE470 800572D0 46003202 */ mul.s $f8, $f6, $f0 -/* ACE474 800572D4 46089280 */ add.s $f10, $f18, $f8 -/* ACE478 800572D8 E64A0004 */ swc1 $f10, 4($s2) -/* ACE47C 800572DC C7A40084 */ lwc1 $f4, 0x84($sp) -/* ACE480 800572E0 C7A80054 */ lwc1 $f8, 0x54($sp) -/* ACE484 800572E4 46022181 */ sub.s $f6, $f4, $f2 -/* ACE488 800572E8 46083282 */ mul.s $f10, $f6, $f8 -/* ACE48C 800572EC 44883000 */ mtc1 $t0, $f6 -/* ACE490 800572F0 00000000 */ nop -/* ACE494 800572F4 46803220 */ cvt.s.w $f8, $f6 -/* ACE498 800572F8 460A1100 */ add.s $f4, $f2, $f10 -/* ACE49C 800572FC E6440008 */ swc1 $f4, 8($s2) -/* ACE4A0 80057300 C42AA3C8 */ lwc1 $f10, %lo(D_8013A3C8)($at) -/* ACE4A4 80057304 84790004 */ lh $t9, 4($v1) -/* ACE4A8 80057308 C60000FC */ lwc1 $f0, 0xfc($s0) -/* ACE4AC 8005730C 460A4102 */ mul.s $f4, $f8, $f10 -/* ACE4B0 80057310 44994000 */ mtc1 $t9, $f8 -/* ACE4B4 80057314 00000000 */ nop -/* ACE4B8 80057318 468042A0 */ cvt.s.w $f10, $f8 -/* ACE4BC 8005731C 46002181 */ sub.s $f6, $f4, $f0 -/* ACE4C0 80057320 460A3103 */ div.s $f4, $f6, $f10 -/* ACE4C4 80057324 46040200 */ add.s $f8, $f0, $f4 -/* ACE4C8 80057328 E60800FC */ swc1 $f8, 0xfc($s0) -/* ACE4CC 8005732C 846C0004 */ lh $t4, 4($v1) -/* ACE4D0 80057330 258DFFFF */ addiu $t5, $t4, -1 -/* ACE4D4 80057334 10000035 */ b .L8005740C -/* ACE4D8 80057338 A46D0004 */ sh $t5, 4($v1) -.L8005733C: -/* ACE4DC 8005733C 8D2E0000 */ lw $t6, ($t1) -/* ACE4E0 80057340 27AA0094 */ addiu $t2, $sp, 0x94 -/* ACE4E4 80057344 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* ACE4E8 80057348 31CFF0FF */ andi $t7, $t6, 0xf0ff -/* ACE4EC 8005734C AD2F0000 */ sw $t7, ($t1) -/* ACE4F0 80057350 8C8B0000 */ lw $t3, ($a0) -/* ACE4F4 80057354 44810000 */ mtc1 $at, $f0 -/* ACE4F8 80057358 3C018014 */ lui $at, %hi(D_8013A3CC) -/* ACE4FC 8005735C AD4B0000 */ sw $t3, ($t2) -/* ACE500 80057360 8C980004 */ lw $t8, 4($a0) -/* ACE504 80057364 3C073C23 */ lui $a3, (0x3C23D70A >> 16) # lui $a3, 0x3c23 -/* ACE508 80057368 44060000 */ mfc1 $a2, $f0 -/* ACE50C 8005736C AD580004 */ sw $t8, 4($t2) -/* ACE510 80057370 8C8B0008 */ lw $t3, 8($a0) -/* ACE514 80057374 34E7D70A */ ori $a3, (0x3C23D70A & 0xFFFF) # ori $a3, $a3, 0xd70a -/* ACE518 80057378 AD4B0008 */ sw $t3, 8($t2) -/* ACE51C 8005737C C7AA0094 */ lwc1 $f10, 0x94($sp) -/* ACE520 80057380 C4460000 */ lwc1 $f6, ($v0) -/* ACE524 80057384 460A3101 */ sub.s $f4, $f6, $f10 -/* ACE528 80057388 46002202 */ mul.s $f8, $f4, $f0 -/* ACE52C 8005738C 46085180 */ add.s $f6, $f10, $f8 -/* ACE530 80057390 E7A60094 */ swc1 $f6, 0x94($sp) -/* ACE534 80057394 C46A0000 */ lwc1 $f10, ($v1) -/* ACE538 80057398 C4440004 */ lwc1 $f4, 4($v0) -/* ACE53C 8005739C C426A3CC */ lwc1 $f6, %lo(D_8013A3CC)($at) -/* ACE540 800573A0 460A2201 */ sub.s $f8, $f4, $f10 -/* ACE544 800573A4 C7AA0098 */ lwc1 $f10, 0x98($sp) -/* ACE548 800573A8 46064102 */ mul.s $f4, $f8, $f6 -/* ACE54C 800573AC 46045200 */ add.s $f8, $f10, $f4 -/* ACE550 800573B0 E7A80098 */ swc1 $f8, 0x98($sp) -/* ACE554 800573B4 8D4C0000 */ lw $t4, ($t2) -/* ACE558 800573B8 AE2C0000 */ sw $t4, ($s1) -/* ACE55C 800573BC 8D590004 */ lw $t9, 4($t2) -/* ACE560 800573C0 AE390004 */ sw $t9, 4($s1) -/* ACE564 800573C4 8D4C0008 */ lw $t4, 8($t2) -/* ACE568 800573C8 C62E0004 */ lwc1 $f14, 4($s1) -/* ACE56C 800573CC AE2C0008 */ sw $t4, 8($s1) -/* ACE570 800573D0 0C010E27 */ jal func_8004389C -/* ACE574 800573D4 C7AC0098 */ lwc1 $f12, 0x98($sp) -/* ACE578 800573D8 E6200004 */ swc1 $f0, 4($s1) -/* ACE57C 800573DC 87AE0064 */ lh $t6, 0x64($sp) -/* ACE580 800573E0 3C0142C8 */ li $at, 0x42C80000 # 0.000000 -/* ACE584 800573E4 44813000 */ mtc1 $at, $f6 -/* ACE588 800573E8 87AD0066 */ lh $t5, 0x66($sp) -/* ACE58C 800573EC 000E7823 */ negu $t7, $t6 -/* ACE590 800573F0 A7AF00B0 */ sh $t7, 0xb0($sp) -/* ACE594 800573F4 02402025 */ move $a0, $s2 -/* ACE598 800573F8 02202825 */ move $a1, $s1 -/* ACE59C 800573FC 27A600AC */ addiu $a2, $sp, 0xac -/* ACE5A0 80057400 E7A600AC */ swc1 $f6, 0xac($sp) -/* ACE5A4 80057404 0C010F0A */ jal func_80043C28 -/* ACE5A8 80057408 A7AD00B2 */ sh $t5, 0xb2($sp) -.L8005740C: -/* ACE5AC 8005740C 8FBF0024 */ lw $ra, 0x24($sp) -/* ACE5B0 80057410 8FB00018 */ lw $s0, 0x18($sp) -/* ACE5B4 80057414 8FB1001C */ lw $s1, 0x1c($sp) -/* ACE5B8 80057418 8FB20020 */ lw $s2, 0x20($sp) -/* ACE5BC 8005741C 27BD00C0 */ addiu $sp, $sp, 0xc0 -/* ACE5C0 80057420 03E00008 */ jr $ra -/* ACE5C4 80057424 24020001 */ li $v0, 1 diff --git a/asm/non_matchings/code/z_camera/Camera_Special7.s b/asm/non_matchings/code/z_camera/Camera_Special7.s deleted file mode 100644 index de74aa0fcd..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Special7.s +++ /dev/null @@ -1,238 +0,0 @@ -.late_rodata -glabel D_8013A3AC - .float 1500.0 - -glabel D_8013A3B0 - .float 3000.0 - -glabel D_8013A3B4 - .float 0.4 - -glabel D_8013A3B8 - .float 0.1 - -glabel D_8013A3BC - .float 0.4 - -glabel D_8013A3C0 - .float 0.1 - -.text -glabel Camera_Special7 -/* ACDDC0 80056C20 27BDFF90 */ addiu $sp, $sp, -0x70 -/* ACDDC4 80056C24 AFB00020 */ sw $s0, 0x20($sp) -/* ACDDC8 80056C28 00808025 */ move $s0, $a0 -/* ACDDCC 80056C2C AFBF002C */ sw $ra, 0x2c($sp) -/* ACDDD0 80056C30 AFB20028 */ sw $s2, 0x28($sp) -/* ACDDD4 80056C34 AFB10024 */ sw $s1, 0x24($sp) -/* ACDDD8 80056C38 0C00B721 */ jal Player_GetCameraYOffset -/* ACDDDC 80056C3C 8C840090 */ lw $a0, 0x90($a0) -/* ACDDE0 80056C40 860E015E */ lh $t6, 0x15e($s0) -/* ACDDE4 80056C44 46000086 */ mov.s $f2, $f0 -/* ACDDE8 80056C48 27A4005C */ addiu $a0, $sp, 0x5c -/* ACDDEC 80056C4C 15C00023 */ bnez $t6, .L80056CDC -/* ACDDF0 80056C50 26120050 */ addiu $s2, $s0, 0x50 -/* ACDDF4 80056C54 8E0F008C */ lw $t7, 0x8c($s0) -/* ACDDF8 80056C58 24010006 */ li $at, 6 -/* ACDDFC 80056C5C 24190003 */ li $t9, 3 -/* ACDE00 80056C60 85F800A4 */ lh $t8, 0xa4($t7) -/* ACDE04 80056C64 26110094 */ addiu $s1, $s0, 0x94 -/* ACDE08 80056C68 17010003 */ bne $t8, $at, .L80056C78 -/* ACDE0C 80056C6C 00000000 */ nop -/* ACDE10 80056C70 10000016 */ b .L80056CCC -/* ACDE14 80056C74 A6190000 */ sh $t9, ($s0) -.L80056C78: -/* ACDE18 80056C78 3C018014 */ lui $at, %hi(D_8013A3AC) -/* ACDE1C 80056C7C C426A3AC */ lwc1 $f6, %lo(D_8013A3AC)($at) -/* ACDE20 80056C80 C6240000 */ lwc1 $f4, ($s1) -/* ACDE24 80056C84 24080002 */ li $t0, 2 -/* ACDE28 80056C88 3C018014 */ lui $at, %hi(D_8013A3B0) -/* ACDE2C 80056C8C 4606203C */ c.lt.s $f4, $f6 -/* ACDE30 80056C90 00000000 */ nop -/* ACDE34 80056C94 45020004 */ bc1fl .L80056CA8 -/* ACDE38 80056C98 C6280004 */ lwc1 $f8, 4($s1) -/* ACDE3C 80056C9C 1000000B */ b .L80056CCC -/* ACDE40 80056CA0 A6080000 */ sh $t0, ($s0) -/* ACDE44 80056CA4 C6280004 */ lwc1 $f8, 4($s1) -.L80056CA8: -/* ACDE48 80056CA8 C42AA3B0 */ lwc1 $f10, %lo(D_8013A3B0)($at) -/* ACDE4C 80056CAC 24090001 */ li $t1, 1 -/* ACDE50 80056CB0 460A403C */ c.lt.s $f8, $f10 -/* ACDE54 80056CB4 00000000 */ nop -/* ACDE58 80056CB8 45020004 */ bc1fl .L80056CCC -/* ACDE5C 80056CBC A6090000 */ sh $t1, ($s0) -/* ACDE60 80056CC0 10000002 */ b .L80056CCC -/* ACDE64 80056CC4 A6000000 */ sh $zero, ($s0) -/* ACDE68 80056CC8 A6090000 */ sh $t1, ($s0) -.L80056CCC: -/* ACDE6C 80056CCC 860A015E */ lh $t2, 0x15e($s0) -/* ACDE70 80056CD0 A600015A */ sh $zero, 0x15a($s0) -/* ACDE74 80056CD4 254B0001 */ addiu $t3, $t2, 1 -/* ACDE78 80056CD8 A60B015E */ sh $t3, 0x15e($s0) -.L80056CDC: -/* ACDE7C 80056CDC 860C0000 */ lh $t4, ($s0) -/* ACDE80 80056CE0 3C018012 */ lui $at, %hi(D_8011DACC) -/* ACDE84 80056CE4 C6100054 */ lwc1 $f16, 0x54($s0) -/* ACDE88 80056CE8 000C6880 */ sll $t5, $t4, 2 -/* ACDE8C 80056CEC 002D0821 */ addu $at, $at, $t5 -/* ACDE90 80056CF0 C432DACC */ lwc1 $f18, %lo(D_8011DACC)($at) -/* ACDE94 80056CF4 26110094 */ addiu $s1, $s0, 0x94 -/* ACDE98 80056CF8 4612803C */ c.lt.s $f16, $f18 -/* ACDE9C 80056CFC 00000000 */ nop -/* ACDEA0 80056D00 45020050 */ bc1fl .L80056E44 -/* ACDEA4 80056D04 8E2B0000 */ lw $t3, ($s1) -/* ACDEA8 80056D08 8E2F0000 */ lw $t7, ($s1) -/* ACDEAC 80056D0C 3C018014 */ lui $at, %hi(D_8013A3B4) -/* ACDEB0 80056D10 C420A3B4 */ lwc1 $f0, %lo(D_8013A3B4)($at) -/* ACDEB4 80056D14 AC8F0000 */ sw $t7, ($a0) -/* ACDEB8 80056D18 8E2E0004 */ lw $t6, 4($s1) -/* ACDEBC 80056D1C 3C0141A0 */ li $at, 0x41A00000 # 0.000000 -/* ACDEC0 80056D20 44813000 */ mtc1 $at, $f6 -/* ACDEC4 80056D24 AC8E0004 */ sw $t6, 4($a0) -/* ACDEC8 80056D28 8E2F0008 */ lw $t7, 8($s1) -/* ACDECC 80056D2C 3C018014 */ lui $at, %hi(D_8013A3B8) -/* ACDED0 80056D30 44060000 */ mfc1 $a2, $f0 -/* ACDED4 80056D34 AC8F0008 */ sw $t7, 8($a0) -/* ACDED8 80056D38 C7A40060 */ lwc1 $f4, 0x60($sp) -/* ACDEDC 80056D3C C42AA3B8 */ lwc1 $f10, %lo(D_8013A3B8)($at) -/* ACDEE0 80056D40 44070000 */ mfc1 $a3, $f0 -/* ACDEE4 80056D44 46062201 */ sub.s $f8, $f4, $f6 -/* ACDEE8 80056D48 02402825 */ move $a1, $s2 -/* ACDEEC 80056D4C E7AA0010 */ swc1 $f10, 0x10($sp) -/* ACDEF0 80056D50 0C010E8F */ jal func_80043A3C -/* ACDEF4 80056D54 E7A80060 */ swc1 $f8, 0x60($sp) -/* ACDEF8 80056D58 86180000 */ lh $t8, ($s0) -/* ACDEFC 80056D5C 3C088012 */ lui $t0, %hi(D_8011DA6C) # $t0, 0x8012 -/* ACDF00 80056D60 2508DA6C */ addiu $t0, %lo(D_8011DA6C) # addiu $t0, $t0, -0x2594 -/* ACDF04 80056D64 0018C880 */ sll $t9, $t8, 2 -/* ACDF08 80056D68 0338C823 */ subu $t9, $t9, $t8 -/* ACDF0C 80056D6C 0019C880 */ sll $t9, $t9, 2 -/* ACDF10 80056D70 03284821 */ addu $t1, $t9, $t0 -/* ACDF14 80056D74 8D2B0000 */ lw $t3, ($t1) -/* ACDF18 80056D78 27A40048 */ addiu $a0, $sp, 0x48 -/* ACDF1C 80056D7C 2605005C */ addiu $a1, $s0, 0x5c -/* ACDF20 80056D80 AC8B0000 */ sw $t3, ($a0) -/* ACDF24 80056D84 8D2A0004 */ lw $t2, 4($t1) -/* ACDF28 80056D88 8C8D0000 */ lw $t5, ($a0) -/* ACDF2C 80056D8C 3C018012 */ lui $at, %hi(D_8011DADC) -/* ACDF30 80056D90 AC8A0004 */ sw $t2, 4($a0) -/* ACDF34 80056D94 8D2B0008 */ lw $t3, 8($t1) -/* ACDF38 80056D98 3C198012 */ lui $t9, %hi(D_8011DAEC) -/* ACDF3C 80056D9C AC8B0008 */ sw $t3, 8($a0) -/* ACDF40 80056DA0 AE0D0074 */ sw $t5, 0x74($s0) -/* ACDF44 80056DA4 8C8C0004 */ lw $t4, 4($a0) -/* ACDF48 80056DA8 AE0C0078 */ sw $t4, 0x78($s0) -/* ACDF4C 80056DAC 8C8D0008 */ lw $t5, 8($a0) -/* ACDF50 80056DB0 AE0D007C */ sw $t5, 0x7c($s0) -/* ACDF54 80056DB4 8C8F0000 */ lw $t7, ($a0) -/* ACDF58 80056DB8 ACAF0000 */ sw $t7, ($a1) -/* ACDF5C 80056DBC 8C8E0004 */ lw $t6, 4($a0) -/* ACDF60 80056DC0 ACAE0004 */ sw $t6, 4($a1) -/* ACDF64 80056DC4 8C8F0008 */ lw $t7, 8($a0) -/* ACDF68 80056DC8 ACAF0008 */ sw $t7, 8($a1) -/* ACDF6C 80056DCC 86020000 */ lh $v0, ($s0) -/* ACDF70 80056DD0 C6300004 */ lwc1 $f16, 4($s1) -/* ACDF74 80056DD4 00021880 */ sll $v1, $v0, 2 -/* ACDF78 80056DD8 00230821 */ addu $at, $at, $v1 -/* ACDF7C 80056DDC C422DADC */ lwc1 $f2, %lo(D_8011DADC)($at) -/* ACDF80 80056DE0 3C018012 */ lui $at, %hi(D_8011DACC) -/* ACDF84 80056DE4 00230821 */ addu $at, $at, $v1 -/* ACDF88 80056DE8 C424DACC */ lwc1 $f4, %lo(D_8011DACC)($at) -/* ACDF8C 80056DEC 46028481 */ sub.s $f18, $f16, $f2 -/* ACDF90 80056DF0 0002C040 */ sll $t8, $v0, 1 -/* ACDF94 80056DF4 0338C821 */ addu $t9, $t9, $t8 -/* ACDF98 80056DF8 46022181 */ sub.s $f6, $f4, $f2 -/* ACDF9C 80056DFC 8739DAEC */ lh $t9, %lo(D_8011DAEC)($t9) -/* ACDFA0 80056E00 3C0141A0 */ li $at, 0x41A00000 # 0.000000 -/* ACDFA4 80056E04 46069003 */ div.s $f0, $f18, $f6 -/* ACDFA8 80056E08 44994000 */ mtc1 $t9, $f8 -/* ACDFAC 80056E0C 44819000 */ mtc1 $at, $f18 -/* ACDFB0 80056E10 3C014270 */ li $at, 0x42700000 # 0.000000 -/* ACDFB4 80056E14 468042A0 */ cvt.s.w $f10, $f8 -/* ACDFB8 80056E18 44814000 */ mtc1 $at, $f8 -/* ACDFBC 80056E1C 46005402 */ mul.s $f16, $f10, $f0 -/* ACDFC0 80056E20 4600810D */ trunc.w.s $f4, $f16 -/* ACDFC4 80056E24 46009182 */ mul.s $f6, $f18, $f0 -/* ACDFC8 80056E28 44092000 */ mfc1 $t1, $f4 -/* ACDFCC 80056E2C 00000000 */ nop -/* ACDFD0 80056E30 A609015A */ sh $t1, 0x15a($s0) -/* ACDFD4 80056E34 46083280 */ add.s $f10, $f6, $f8 -/* ACDFD8 80056E38 10000034 */ b .L80056F0C -/* ACDFDC 80056E3C E60A00FC */ swc1 $f10, 0xfc($s0) -/* ACDFE0 80056E40 8E2B0000 */ lw $t3, ($s1) -.L80056E44: -/* ACDFE4 80056E44 3C018014 */ lui $at, %hi(D_8013A3BC) -/* ACDFE8 80056E48 C420A3BC */ lwc1 $f0, %lo(D_8013A3BC)($at) -/* ACDFEC 80056E4C 27A4005C */ addiu $a0, $sp, 0x5c -/* ACDFF0 80056E50 AC8B0000 */ sw $t3, ($a0) -/* ACDFF4 80056E54 8E2A0004 */ lw $t2, 4($s1) -/* ACDFF8 80056E58 3C018014 */ lui $at, %hi(D_8013A3C0) -/* ACDFFC 80056E5C 26120050 */ addiu $s2, $s0, 0x50 -/* ACE000 80056E60 AC8A0004 */ sw $t2, 4($a0) -/* ACE004 80056E64 8E2B0008 */ lw $t3, 8($s1) -/* ACE008 80056E68 44060000 */ mfc1 $a2, $f0 -/* ACE00C 80056E6C 44070000 */ mfc1 $a3, $f0 -/* ACE010 80056E70 AC8B0008 */ sw $t3, 8($a0) -/* ACE014 80056E74 C7B00060 */ lwc1 $f16, 0x60($sp) -/* ACE018 80056E78 C432A3C0 */ lwc1 $f18, %lo(D_8013A3C0)($at) -/* ACE01C 80056E7C 02402825 */ move $a1, $s2 -/* ACE020 80056E80 46028100 */ add.s $f4, $f16, $f2 -/* ACE024 80056E84 E7B20010 */ swc1 $f18, 0x10($sp) -/* ACE028 80056E88 0C010E8F */ jal func_80043A3C -/* ACE02C 80056E8C E7A40060 */ swc1 $f4, 0x60($sp) -/* ACE030 80056E90 860C0000 */ lh $t4, ($s0) -/* ACE034 80056E94 3C0E8012 */ lui $t6, %hi(D_8011DA9C) -/* ACE038 80056E98 25CEDA9C */ addiu $t6, %lo(D_8011DA9C) # addiu $t6, $t6, -0x2564 -/* ACE03C 80056E9C 000C6880 */ sll $t5, $t4, 2 -/* ACE040 80056EA0 01AC6823 */ subu $t5, $t5, $t4 -/* ACE044 80056EA4 000D6880 */ sll $t5, $t5, 2 -/* ACE048 80056EA8 A600015A */ sh $zero, 0x15a($s0) -/* ACE04C 80056EAC 01AE7821 */ addu $t7, $t5, $t6 -/* ACE050 80056EB0 8DF90000 */ lw $t9, ($t7) -/* ACE054 80056EB4 27A40048 */ addiu $a0, $sp, 0x48 -/* ACE058 80056EB8 2605005C */ addiu $a1, $s0, 0x5c -/* ACE05C 80056EBC AC990000 */ sw $t9, ($a0) -/* ACE060 80056EC0 8DF80004 */ lw $t8, 4($t7) -/* ACE064 80056EC4 8C890000 */ lw $t1, ($a0) -/* ACE068 80056EC8 3C01428C */ li $at, 0x428C0000 # 0.000000 -/* ACE06C 80056ECC AC980004 */ sw $t8, 4($a0) -/* ACE070 80056ED0 8DF90008 */ lw $t9, 8($t7) -/* ACE074 80056ED4 44813000 */ mtc1 $at, $f6 -/* ACE078 80056ED8 AC990008 */ sw $t9, 8($a0) -/* ACE07C 80056EDC AE090074 */ sw $t1, 0x74($s0) -/* ACE080 80056EE0 8C880004 */ lw $t0, 4($a0) -/* ACE084 80056EE4 AE080078 */ sw $t0, 0x78($s0) -/* ACE088 80056EE8 8C890008 */ lw $t1, 8($a0) -/* ACE08C 80056EEC AE09007C */ sw $t1, 0x7c($s0) -/* ACE090 80056EF0 8C8B0000 */ lw $t3, ($a0) -/* ACE094 80056EF4 ACAB0000 */ sw $t3, ($a1) -/* ACE098 80056EF8 8C8A0004 */ lw $t2, 4($a0) -/* ACE09C 80056EFC ACAA0004 */ sw $t2, 4($a1) -/* ACE0A0 80056F00 8C8B0008 */ lw $t3, 8($a0) -/* ACE0A4 80056F04 ACAB0008 */ sw $t3, 8($a1) -/* ACE0A8 80056F08 E60600FC */ swc1 $f6, 0xfc($s0) -.L80056F0C: -/* ACE0AC 80056F0C 0C01EFE4 */ jal OLib_Vec3fDist -/* ACE0B0 80056F10 02402025 */ move $a0, $s2 -/* ACE0B4 80056F14 44804000 */ mtc1 $zero, $f8 -/* ACE0B8 80056F18 E60000DC */ swc1 $f0, 0xdc($s0) -/* ACE0BC 80056F1C C60A0050 */ lwc1 $f10, 0x50($s0) -/* ACE0C0 80056F20 E6080100 */ swc1 $f8, 0x100($s0) -/* ACE0C4 80056F24 C6300000 */ lwc1 $f16, ($s1) -/* ACE0C8 80056F28 C6120054 */ lwc1 $f18, 0x54($s0) -/* ACE0CC 80056F2C 24020001 */ li $v0, 1 -/* ACE0D0 80056F30 46105101 */ sub.s $f4, $f10, $f16 -/* ACE0D4 80056F34 C60A0058 */ lwc1 $f10, 0x58($s0) -/* ACE0D8 80056F38 E60400E4 */ swc1 $f4, 0xe4($s0) -/* ACE0DC 80056F3C C6260004 */ lwc1 $f6, 4($s1) -/* ACE0E0 80056F40 46069201 */ sub.s $f8, $f18, $f6 -/* ACE0E4 80056F44 E60800E8 */ swc1 $f8, 0xe8($s0) -/* ACE0E8 80056F48 C6300008 */ lwc1 $f16, 8($s1) -/* ACE0EC 80056F4C 46105101 */ sub.s $f4, $f10, $f16 -/* ACE0F0 80056F50 E60400EC */ swc1 $f4, 0xec($s0) -/* ACE0F4 80056F54 8FBF002C */ lw $ra, 0x2c($sp) -/* ACE0F8 80056F58 8FB20028 */ lw $s2, 0x28($sp) -/* ACE0FC 80056F5C 8FB10024 */ lw $s1, 0x24($sp) -/* ACE100 80056F60 8FB00020 */ lw $s0, 0x20($sp) -/* ACE104 80056F64 03E00008 */ jr $ra -/* ACE108 80056F68 27BD0070 */ addiu $sp, $sp, 0x70 diff --git a/asm/non_matchings/code/z_camera/Camera_Special9.s b/asm/non_matchings/code/z_camera/Camera_Special9.s deleted file mode 100644 index 1cfe8a1958..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Special9.s +++ /dev/null @@ -1,509 +0,0 @@ -.late_rodata -glabel D_8013A3D0 - .float 0.01 - -glabel jtbl_8013A3D4 -.word L8005763C -.word L80057694 -.word L80057878 -.word L80057910 -.word L80057A38 - -glabel D_8013A3E8 - .float 0.1 - -glabel D_8013A3EC - .float 0.1 - -glabel D_8013A3F0 - .float 0.001 - -.text -glabel Camera_Special9 -/* ACE5E8 80057448 27BDFF38 */ addiu $sp, $sp, -0xc8 -/* ACE5EC 8005744C AFB00020 */ sw $s0, 0x20($sp) -/* ACE5F0 80057450 00808025 */ move $s0, $a0 -/* ACE5F4 80057454 AFBF0024 */ sw $ra, 0x24($sp) -/* ACE5F8 80057458 0C00B721 */ jal Player_GetCameraYOffset -/* ACE5FC 8005745C 8C840090 */ lw $a0, 0x90($a0) -/* ACE600 80057460 3C018014 */ lui $at, %hi(D_8013A3D0) -/* ACE604 80057464 C42CA3D0 */ lwc1 $f12, %lo(D_8013A3D0)($at) -/* ACE608 80057468 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ACE60C 8005746C 44814000 */ mtc1 $at, $f8 -/* ACE610 80057470 E7A00098 */ swc1 $f0, 0x98($sp) -/* ACE614 80057474 860E014C */ lh $t6, 0x14c($s0) -/* ACE618 80057478 3C014288 */ li $at, 0x42880000 # 0.000000 -/* ACE61C 8005747C 44818000 */ mtc1 $at, $f16 -/* ACE620 80057480 31CFFFEF */ andi $t7, $t6, 0xffef -/* ACE624 80057484 A60F014C */ sh $t7, 0x14c($s0) -/* ACE628 80057488 46008483 */ div.s $f18, $f16, $f0 -/* ACE62C 8005748C 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* ACE630 80057490 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* ACE634 80057494 2401000A */ li $at, 10 -/* ACE638 80057498 845801F0 */ lh $t8, 0x1f0($v0) -/* ACE63C 8005749C 44982000 */ mtc1 $t8, $f4 -/* ACE640 800574A0 00000000 */ nop -/* ACE644 800574A4 468021A0 */ cvt.s.w $f6, $f4 -/* ACE648 800574A8 460C3082 */ mul.s $f2, $f6, $f12 -/* ACE64C 800574AC 00000000 */ nop -/* ACE650 800574B0 46121102 */ mul.s $f4, $f2, $f18 -/* ACE654 800574B4 46024280 */ add.s $f10, $f8, $f2 -/* ACE658 800574B8 46045181 */ sub.s $f6, $f10, $f4 -/* ACE65C 800574BC E7A60078 */ swc1 $f6, 0x78($sp) -/* ACE660 800574C0 8603015E */ lh $v1, 0x15e($s0) -/* ACE664 800574C4 10600008 */ beqz $v1, .L800574E8 -/* ACE668 800574C8 00000000 */ nop -/* ACE66C 800574CC 10610006 */ beq $v1, $at, .L800574E8 -/* ACE670 800574D0 24010014 */ li $at, 20 -/* ACE674 800574D4 50610005 */ beql $v1, $at, .L800574EC -/* ACE678 800574D8 86190142 */ lh $t9, 0x142($s0) -/* ACE67C 800574DC 84430314 */ lh $v1, 0x314($v0) -/* ACE680 800574E0 50600022 */ beql $v1, $zero, .L8005756C -/* ACE684 800574E4 260C000C */ addiu $t4, $s0, 0xc -.L800574E8: -/* ACE688 800574E8 86190142 */ lh $t9, 0x142($s0) -.L800574EC: -/* ACE68C 800574EC 3C0C8012 */ lui $t4, %hi(sCameraSettings+4) -/* ACE690 800574F0 860D0144 */ lh $t5, 0x144($s0) -/* ACE694 800574F4 001958C0 */ sll $t3, $t9, 3 -/* ACE698 800574F8 018B6021 */ addu $t4, $t4, $t3 -/* ACE69C 800574FC 8D8CD068 */ lw $t4, %lo(sCameraSettings+4)($t4) -/* ACE6A0 80057500 000D70C0 */ sll $t6, $t5, 3 -/* ACE6A4 80057504 C7A40078 */ lwc1 $f4, 0x78($sp) -/* ACE6A8 80057508 018E7821 */ addu $t7, $t4, $t6 -/* ACE6AC 8005750C 8DE20004 */ lw $v0, 4($t7) -/* ACE6B0 80057510 2604000C */ addiu $a0, $s0, 0xc -/* ACE6B4 80057514 3C0D8016 */ lui $t5, %hi(gGameInfo) # $t5, 0x8016 -/* ACE6B8 80057518 84580000 */ lh $t8, ($v0) -/* ACE6BC 8005751C 24420008 */ addiu $v0, $v0, 8 -/* ACE6C0 80057520 44984000 */ mtc1 $t8, $f8 -/* ACE6C4 80057524 00000000 */ nop -/* ACE6C8 80057528 46804420 */ cvt.s.w $f16, $f8 -/* ACE6CC 8005752C 460C8482 */ mul.s $f18, $f16, $f12 -/* ACE6D0 80057530 00000000 */ nop -/* ACE6D4 80057534 46009282 */ mul.s $f10, $f18, $f0 -/* ACE6D8 80057538 00000000 */ nop -/* ACE6DC 8005753C 46045182 */ mul.s $f6, $f10, $f4 -/* ACE6E0 80057540 E4860000 */ swc1 $f6, ($a0) -/* ACE6E4 80057544 8459FFFC */ lh $t9, -4($v0) -/* ACE6E8 80057548 44994000 */ mtc1 $t9, $f8 -/* ACE6EC 8005754C 00000000 */ nop -/* ACE6F0 80057550 46804420 */ cvt.s.w $f16, $f8 -/* ACE6F4 80057554 E4900004 */ swc1 $f16, 4($a0) -/* ACE6F8 80057558 844B0000 */ lh $t3, ($v0) -/* ACE6FC 8005755C A48B0008 */ sh $t3, 8($a0) -/* ACE700 80057560 8DADFA90 */ lw $t5, %lo(gGameInfo)($t5) -/* ACE704 80057564 85A30314 */ lh $v1, 0x314($t5) -/* ACE708 80057568 260C000C */ addiu $t4, $s0, 0xc -.L8005756C: -/* ACE70C 8005756C 10600003 */ beqz $v1, .L8005757C -/* ACE710 80057570 AFAC0038 */ sw $t4, 0x38($sp) -/* ACE714 80057574 0C011495 */ jal Camera_CopyPREGToModeValues -/* ACE718 80057578 02002025 */ move $a0, $s0 -.L8005757C: -/* ACE71C 8005757C 8E050000 */ lw $a1, ($s0) -/* ACE720 80057580 26020094 */ addiu $v0, $s0, 0x94 -/* ACE724 80057584 50A00007 */ beql $a1, $zero, .L800575A4 -/* ACE728 80057588 8C590000 */ lw $t9, ($v0) -/* ACE72C 8005758C 0C00BBD1 */ jal func_8002EF44 -/* ACE730 80057590 27A4007C */ addiu $a0, $sp, 0x7c -/* ACE734 80057594 260E0094 */ addiu $t6, $s0, 0x94 -/* ACE738 80057598 10000015 */ b .L800575F0 -/* ACE73C 8005759C AFAE003C */ sw $t6, 0x3c($sp) -/* ACE740 800575A0 8C590000 */ lw $t9, ($v0) -.L800575A4: -/* ACE744 800575A4 27AF007C */ addiu $t7, $sp, 0x7c -/* ACE748 800575A8 ADF90000 */ sw $t9, ($t7) -/* ACE74C 800575AC 8C580004 */ lw $t8, 4($v0) -/* ACE750 800575B0 ADF80004 */ sw $t8, 4($t7) -/* ACE754 800575B4 8C590008 */ lw $t9, 8($v0) -/* ACE758 800575B8 ADF90008 */ sw $t9, 8($t7) -/* ACE75C 800575BC 8C58000C */ lw $t8, 0xc($v0) -/* ACE760 800575C0 ADF8000C */ sw $t8, 0xc($t7) -/* ACE764 800575C4 8C590010 */ lw $t9, 0x10($v0) -/* ACE768 800575C8 ADF90010 */ sw $t9, 0x10($t7) -/* ACE76C 800575CC 8FAB0038 */ lw $t3, 0x38($sp) -/* ACE770 800575D0 C7B20098 */ lwc1 $f18, 0x98($sp) -/* ACE774 800575D4 C7A60080 */ lwc1 $f6, 0x80($sp) -/* ACE778 800575D8 C56A0000 */ lwc1 $f10, ($t3) -/* ACE77C 800575DC AFA2003C */ sw $v0, 0x3c($sp) -/* ACE780 800575E0 A7A00088 */ sh $zero, 0x88($sp) -/* ACE784 800575E4 460A9100 */ add.s $f4, $f18, $f10 -/* ACE788 800575E8 46043200 */ add.s $f8, $f6, $f4 -/* ACE78C 800575EC E7A80080 */ swc1 $f8, 0x80($sp) -.L800575F0: -/* ACE790 800575F0 26050050 */ addiu $a1, $s0, 0x50 -/* ACE794 800575F4 2606005C */ addiu $a2, $s0, 0x5c -/* ACE798 800575F8 AFA60048 */ sw $a2, 0x48($sp) -/* ACE79C 800575FC AFA50044 */ sw $a1, 0x44($sp) -/* ACE7A0 80057600 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* ACE7A4 80057604 27A4009C */ addiu $a0, $sp, 0x9c -/* ACE7A8 80057608 8FAA0038 */ lw $t2, 0x38($sp) -/* ACE7AC 8005760C 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 -/* ACE7B0 80057610 854D0008 */ lh $t5, 8($t2) -/* ACE7B4 80057614 AC2DD3A0 */ sw $t5, %lo(D_8011D3A0)($at) -/* ACE7B8 80057618 8603015E */ lh $v1, 0x15e($s0) -/* ACE7BC 8005761C 2C610005 */ sltiu $at, $v1, 5 -/* ACE7C0 80057620 10200107 */ beqz $at, .L80057A40 -/* ACE7C4 80057624 00036080 */ sll $t4, $v1, 2 -/* ACE7C8 80057628 3C018014 */ lui $at, %hi(jtbl_8013A3D4) -/* ACE7CC 8005762C 002C0821 */ addu $at, $at, $t4 -/* ACE7D0 80057630 8C2CA3D4 */ lw $t4, %lo(jtbl_8013A3D4)($at) -/* ACE7D4 80057634 01800008 */ jr $t4 -/* ACE7D8 80057638 00000000 */ nop -glabel L8005763C -/* ACE7DC 8005763C 860E014C */ lh $t6, 0x14c($s0) -/* ACE7E0 80057640 24780001 */ addiu $t8, $v1, 1 -/* ACE7E4 80057644 A618015E */ sh $t8, 0x15e($s0) -/* ACE7E8 80057648 31CFFFF9 */ andi $t7, $t6, 0xfff9 -/* ACE7EC 8005764C A60F014C */ sh $t7, 0x14c($s0) -/* ACE7F0 80057650 8FB9003C */ lw $t9, 0x3c($sp) -/* ACE7F4 80057654 87AD008A */ lh $t5, 0x8a($sp) -/* ACE7F8 80057658 87AC008A */ lh $t4, 0x8a($sp) -/* ACE7FC 8005765C 872B000E */ lh $t3, 0xe($t9) -/* ACE800 80057660 87AF008A */ lh $t7, 0x8a($sp) -/* ACE804 80057664 258E8001 */ addiu $t6, $t4, -0x7fff -/* ACE808 80057668 016D1023 */ subu $v0, $t3, $t5 -/* ACE80C 8005766C 04400003 */ bltz $v0, .L8005767C -/* ACE810 80057670 00023823 */ negu $a3, $v0 -/* ACE814 80057674 10000001 */ b .L8005767C -/* ACE818 80057678 00403825 */ move $a3, $v0 -.L8005767C: -/* ACE81C 8005767C 28E14000 */ slti $at, $a3, 0x4000 -/* ACE820 80057680 54200004 */ bnezl $at, .L80057694 -/* ACE824 80057684 A60F0018 */ sh $t7, 0x18($s0) -/* ACE828 80057688 10000002 */ b .L80057694 -/* ACE82C 8005768C A60E0018 */ sh $t6, 0x18($s0) -/* ACE830 80057690 A60F0018 */ sh $t7, 0x18($s0) -.L80057694: -glabel L80057694 -/* ACE834 80057694 86180006 */ lh $t8, 6($s0) -/* ACE838 80057698 2719FFFF */ addiu $t9, $t8, -1 -/* ACE83C 8005769C A6190006 */ sh $t9, 6($s0) -/* ACE840 800576A0 860B0006 */ lh $t3, 6($s0) -/* ACE844 800576A4 5D60011B */ bgtzl $t3, .L80057B14 -/* ACE848 800576A8 8FB9003C */ lw $t9, 0x3c($sp) -/* ACE84C 800576AC 860D015E */ lh $t5, 0x15e($s0) -/* ACE850 800576B0 25AC0001 */ addiu $t4, $t5, 1 -/* ACE854 800576B4 A60C015E */ sh $t4, 0x15e($s0) -/* ACE858 800576B8 854E0008 */ lh $t6, 8($t2) -/* ACE85C 800576BC 31CF0001 */ andi $t7, $t6, 1 -/* ACE860 800576C0 51E0001F */ beql $t7, $zero, .L80057740 -/* ACE864 800576C4 240B0E38 */ li $t3, 3640 -/* ACE868 800576C8 0C0111DB */ jal func_8004476C -/* ACE86C 800576CC 02002025 */ move $a0, $s0 -/* ACE870 800576D0 26040074 */ addiu $a0, $s0, 0x74 -/* ACE874 800576D4 AFA40040 */ sw $a0, 0x40($sp) -/* ACE878 800576D8 0C010EF1 */ jal func_80043BC4 -/* ACE87C 800576DC 00402825 */ move $a1, $v0 -/* ACE880 800576E0 8FB80040 */ lw $t8, 0x40($sp) -/* ACE884 800576E4 27A7004C */ addiu $a3, $sp, 0x4c -/* ACE888 800576E8 27AF00AC */ addiu $t7, $sp, 0xac -/* ACE88C 800576EC 8F0B0000 */ lw $t3, ($t8) -/* ACE890 800576F0 ACEB0000 */ sw $t3, ($a3) -/* ACE894 800576F4 8F190004 */ lw $t9, 4($t8) -/* ACE898 800576F8 8CEE0000 */ lw $t6, ($a3) -/* ACE89C 800576FC ACF90004 */ sw $t9, 4($a3) -/* ACE8A0 80057700 8F0B0008 */ lw $t3, 8($t8) -/* ACE8A4 80057704 ACEB0008 */ sw $t3, 8($a3) -/* ACE8A8 80057708 8FAD0048 */ lw $t5, 0x48($sp) -/* ACE8AC 8005770C ADAE0000 */ sw $t6, ($t5) -/* ACE8B0 80057710 8CEC0004 */ lw $t4, 4($a3) -/* ACE8B4 80057714 ADAC0004 */ sw $t4, 4($t5) -/* ACE8B8 80057718 8CEE0008 */ lw $t6, 8($a3) -/* ACE8BC 8005771C ADAE0008 */ sw $t6, 8($t5) -/* ACE8C0 80057720 8CF90000 */ lw $t9, ($a3) -/* ACE8C4 80057724 ADF90000 */ sw $t9, ($t7) -/* ACE8C8 80057728 8CF80004 */ lw $t8, 4($a3) -/* ACE8CC 8005772C ADF80004 */ sw $t8, 4($t7) -/* ACE8D0 80057730 8CF90008 */ lw $t9, 8($a3) -/* ACE8D4 80057734 1000004F */ b .L80057874 -/* ACE8D8 80057738 ADF90008 */ sw $t9, 8($t7) -/* ACE8DC 8005773C 240B0E38 */ li $t3, 3640 -.L80057740: -/* ACE8E0 80057740 A7AB00A8 */ sh $t3, 0xa8($sp) -/* ACE8E4 80057744 8E0D008C */ lw $t5, 0x8c($s0) -/* ACE8E8 80057748 26030018 */ addiu $v1, $s0, 0x18 -/* ACE8EC 8005774C 24010AAA */ li $at, 2730 -/* ACE8F0 80057750 8DAC009C */ lw $t4, 0x9c($t5) -/* ACE8F4 80057754 26040074 */ addiu $a0, $s0, 0x74 -/* ACE8F8 80057758 318E0001 */ andi $t6, $t4, 1 -/* ACE8FC 8005775C 51C00004 */ beql $t6, $zero, .L80057770 -/* ACE900 80057760 2407FFFF */ li $a3, -1 -/* ACE904 80057764 10000002 */ b .L80057770 -/* ACE908 80057768 24070001 */ li $a3, 1 -/* ACE90C 8005776C 2407FFFF */ li $a3, -1 -.L80057770: -/* ACE910 80057770 00E10019 */ multu $a3, $at -/* ACE914 80057774 3C014348 */ li $at, 0x43480000 # 0.000000 -/* ACE918 80057778 44818000 */ mtc1 $at, $f16 -/* ACE91C 8005777C C7B20078 */ lwc1 $f18, 0x78($sp) -/* ACE920 80057780 846F0000 */ lh $t7, ($v1) -/* ACE924 80057784 AFA40040 */ sw $a0, 0x40($sp) -/* ACE928 80057788 46128282 */ mul.s $f10, $f16, $f18 -/* ACE92C 8005778C AFA30034 */ sw $v1, 0x34($sp) -/* ACE930 80057790 8FA50044 */ lw $a1, 0x44($sp) -/* ACE934 80057794 27A600A4 */ addiu $a2, $sp, 0xa4 -/* ACE938 80057798 00001012 */ mflo $v0 -/* ACE93C 8005779C 00024C00 */ sll $t1, $v0, 0x10 -/* ACE940 800577A0 00094C03 */ sra $t1, $t1, 0x10 -/* ACE944 800577A4 01E9C021 */ addu $t8, $t7, $t1 -/* ACE948 800577A8 A7B800AA */ sh $t8, 0xaa($sp) -/* ACE94C 800577AC E7AA00A4 */ swc1 $f10, 0xa4($sp) -/* ACE950 800577B0 0C010F0A */ jal func_80043C28 -/* ACE954 800577B4 AFA90030 */ sw $t1, 0x30($sp) -/* ACE958 800577B8 8FB90040 */ lw $t9, 0x40($sp) -/* ACE95C 800577BC 27A7004C */ addiu $a3, $sp, 0x4c -/* ACE960 800577C0 27B800AC */ addiu $t8, $sp, 0xac -/* ACE964 800577C4 8F2D0000 */ lw $t5, ($t9) -/* ACE968 800577C8 02002025 */ move $a0, $s0 -/* ACE96C 800577CC 27A500AC */ addiu $a1, $sp, 0xac -/* ACE970 800577D0 ACED0000 */ sw $t5, ($a3) -/* ACE974 800577D4 8F2B0004 */ lw $t3, 4($t9) -/* ACE978 800577D8 8CEF0000 */ lw $t7, ($a3) -/* ACE97C 800577DC ACEB0004 */ sw $t3, 4($a3) -/* ACE980 800577E0 8F2D0008 */ lw $t5, 8($t9) -/* ACE984 800577E4 ACED0008 */ sw $t5, 8($a3) -/* ACE988 800577E8 8FAC0048 */ lw $t4, 0x48($sp) -/* ACE98C 800577EC AD8F0000 */ sw $t7, ($t4) -/* ACE990 800577F0 8CEE0004 */ lw $t6, 4($a3) -/* ACE994 800577F4 AD8E0004 */ sw $t6, 4($t4) -/* ACE998 800577F8 8CEF0008 */ lw $t7, 8($a3) -/* ACE99C 800577FC AD8F0008 */ sw $t7, 8($t4) -/* ACE9A0 80057800 8CEB0000 */ lw $t3, ($a3) -/* ACE9A4 80057804 AF0B0000 */ sw $t3, ($t8) -/* ACE9A8 80057808 8CF90004 */ lw $t9, 4($a3) -/* ACE9AC 8005780C AF190004 */ sw $t9, 4($t8) -/* ACE9B0 80057810 8CEB0008 */ lw $t3, 8($a3) -/* ACE9B4 80057814 AF0B0008 */ sw $t3, 8($t8) -/* ACE9B8 80057818 0C0110E8 */ jal func_800443A0 -/* ACE9BC 8005781C 8FA6003C */ lw $a2, 0x3c($sp) -/* ACE9C0 80057820 10400014 */ beqz $v0, .L80057874 -/* ACE9C4 80057824 8FA30034 */ lw $v1, 0x34($sp) -/* ACE9C8 80057828 8FA80030 */ lw $t0, 0x30($sp) -/* ACE9CC 8005782C 846D0000 */ lh $t5, ($v1) -/* ACE9D0 80057830 8FA40040 */ lw $a0, 0x40($sp) -/* ACE9D4 80057834 00084023 */ negu $t0, $t0 -/* ACE9D8 80057838 00084400 */ sll $t0, $t0, 0x10 -/* ACE9DC 8005783C 00084403 */ sra $t0, $t0, 0x10 -/* ACE9E0 80057840 01A86021 */ addu $t4, $t5, $t0 -/* ACE9E4 80057844 A7AC00AA */ sh $t4, 0xaa($sp) -/* ACE9E8 80057848 8FA50044 */ lw $a1, 0x44($sp) -/* ACE9EC 8005784C 0C010F0A */ jal func_80043C28 -/* ACE9F0 80057850 27A600A4 */ addiu $a2, $sp, 0xa4 -/* ACE9F4 80057854 8FAF0040 */ lw $t7, 0x40($sp) -/* ACE9F8 80057858 8FAE0048 */ lw $t6, 0x48($sp) -/* ACE9FC 8005785C 8DF90000 */ lw $t9, ($t7) -/* ACEA00 80057860 ADD90000 */ sw $t9, ($t6) -/* ACEA04 80057864 8DF80004 */ lw $t8, 4($t7) -/* ACEA08 80057868 ADD80004 */ sw $t8, 4($t6) -/* ACEA0C 8005786C 8DF90008 */ lw $t9, 8($t7) -/* ACEA10 80057870 ADD90008 */ sw $t9, 8($t6) -.L80057874: -/* ACEA14 80057874 8FAA0038 */ lw $t2, 0x38($sp) -glabel L80057878 -/* ACEA18 80057878 8FAD003C */ lw $t5, 0x3c($sp) -/* ACEA1C 8005787C 27AB00AC */ addiu $t3, $sp, 0xac -/* ACEA20 80057880 3C013E80 */ li $at, 0x3E800000 # 0.000000 -/* ACEA24 80057884 8DAE0000 */ lw $t6, ($t5) -/* ACEA28 80057888 44810000 */ mtc1 $at, $f0 -/* ACEA2C 8005788C 3C018014 */ lui $at, %hi(D_8013A3E8) -/* ACEA30 80057890 AD6E0000 */ sw $t6, ($t3) -/* ACEA34 80057894 8DAC0004 */ lw $t4, 4($t5) -/* ACEA38 80057898 44060000 */ mfc1 $a2, $f0 -/* ACEA3C 8005789C 44070000 */ mfc1 $a3, $f0 -/* ACEA40 800578A0 AD6C0004 */ sw $t4, 4($t3) -/* ACEA44 800578A4 8DAE0008 */ lw $t6, 8($t5) -/* ACEA48 800578A8 27A400AC */ addiu $a0, $sp, 0xac -/* ACEA4C 800578AC AD6E0008 */ sw $t6, 8($t3) -/* ACEA50 800578B0 C5440000 */ lwc1 $f4, ($t2) -/* ACEA54 800578B4 C7A60098 */ lwc1 $f6, 0x98($sp) -/* ACEA58 800578B8 C7B000B0 */ lwc1 $f16, 0xb0($sp) -/* ACEA5C 800578BC C42AA3E8 */ lwc1 $f10, %lo(D_8013A3E8)($at) -/* ACEA60 800578C0 46043200 */ add.s $f8, $f6, $f4 -/* ACEA64 800578C4 8FA50044 */ lw $a1, 0x44($sp) -/* ACEA68 800578C8 E7AA0010 */ swc1 $f10, 0x10($sp) -/* ACEA6C 800578CC 46088480 */ add.s $f18, $f16, $f8 -/* ACEA70 800578D0 0C010E8F */ jal func_80043A3C -/* ACEA74 800578D4 E7B200B0 */ swc1 $f18, 0xb0($sp) -/* ACEA78 800578D8 860F0008 */ lh $t7, 8($s0) -/* ACEA7C 800578DC 25F8FFFF */ addiu $t8, $t7, -1 -/* ACEA80 800578E0 A6180008 */ sh $t8, 8($s0) -/* ACEA84 800578E4 86190008 */ lh $t9, 8($s0) -/* ACEA88 800578E8 5F20008A */ bgtzl $t9, .L80057B14 -/* ACEA8C 800578EC 8FB9003C */ lw $t9, 0x3c($sp) -/* ACEA90 800578F0 860B015E */ lh $t3, 0x15e($s0) -/* ACEA94 800578F4 26030018 */ addiu $v1, $s0, 0x18 -/* ACEA98 800578F8 256D0001 */ addiu $t5, $t3, 1 -/* ACEA9C 800578FC A60D015E */ sh $t5, 0x15e($s0) -/* ACEAA0 80057900 846C0000 */ lh $t4, ($v1) -/* ACEAA4 80057904 258E8001 */ addiu $t6, $t4, -0x7fff -/* ACEAA8 80057908 A46E0000 */ sh $t6, ($v1) -/* ACEAAC 8005790C 8FAA0038 */ lw $t2, 0x38($sp) -glabel L80057910 -/* ACEAB0 80057910 8FB8003C */ lw $t8, 0x3c($sp) -/* ACEAB4 80057914 27AF00AC */ addiu $t7, $sp, 0xac -/* ACEAB8 80057918 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* ACEABC 8005791C 8F0B0000 */ lw $t3, ($t8) -/* ACEAC0 80057920 44810000 */ mtc1 $at, $f0 -/* ACEAC4 80057924 3C018014 */ lui $at, %hi(D_8013A3EC) -/* ACEAC8 80057928 ADEB0000 */ sw $t3, ($t7) -/* ACEACC 8005792C 8F190004 */ lw $t9, 4($t8) -/* ACEAD0 80057930 260D0074 */ addiu $t5, $s0, 0x74 -/* ACEAD4 80057934 26030018 */ addiu $v1, $s0, 0x18 -/* ACEAD8 80057938 ADF90004 */ sw $t9, 4($t7) -/* ACEADC 8005793C 8F0B0008 */ lw $t3, 8($t8) -/* ACEAE0 80057940 44060000 */ mfc1 $a2, $f0 -/* ACEAE4 80057944 44070000 */ mfc1 $a3, $f0 -/* ACEAE8 80057948 ADEB0008 */ sw $t3, 8($t7) -/* ACEAEC 8005794C C5440000 */ lwc1 $f4, ($t2) -/* ACEAF0 80057950 C7A60098 */ lwc1 $f6, 0x98($sp) -/* ACEAF4 80057954 C7A800B0 */ lwc1 $f8, 0xb0($sp) -/* ACEAF8 80057958 C42AA3EC */ lwc1 $f10, %lo(D_8013A3EC)($at) -/* ACEAFC 8005795C 46043400 */ add.s $f16, $f6, $f4 -/* ACEB00 80057960 AFA30034 */ sw $v1, 0x34($sp) -/* ACEB04 80057964 AFAD0040 */ sw $t5, 0x40($sp) -/* ACEB08 80057968 8FA50044 */ lw $a1, 0x44($sp) -/* ACEB0C 8005796C 46104480 */ add.s $f18, $f8, $f16 -/* ACEB10 80057970 27A400AC */ addiu $a0, $sp, 0xac -/* ACEB14 80057974 E7AA0010 */ swc1 $f10, 0x10($sp) -/* ACEB18 80057978 0C010E8F */ jal func_80043A3C -/* ACEB1C 8005797C E7B200B0 */ swc1 $f18, 0xb0($sp) -/* ACEB20 80057980 3C063E99 */ lui $a2, (0x3E99999A >> 16) # lui $a2, 0x3e99 -/* ACEB24 80057984 34C6999A */ ori $a2, (0x3E99999A & 0xFFFF) # ori $a2, $a2, 0x999a -/* ACEB28 80057988 24040AAA */ li $a0, 2730 -/* ACEB2C 8005798C 87A500A0 */ lh $a1, 0xa0($sp) -/* ACEB30 80057990 0C010E47 */ jal func_8004391C -/* ACEB34 80057994 2407000A */ li $a3, 10 -/* ACEB38 80057998 8FA30034 */ lw $v1, 0x34($sp) -/* ACEB3C 8005799C A7A200A8 */ sh $v0, 0xa8($sp) -/* ACEB40 800579A0 3C063E99 */ lui $a2, (0x3E99999A >> 16) # lui $a2, 0x3e99 -/* ACEB44 800579A4 34C6999A */ ori $a2, (0x3E99999A & 0xFFFF) # ori $a2, $a2, 0x999a -/* ACEB48 800579A8 87A500A2 */ lh $a1, 0xa2($sp) -/* ACEB4C 800579AC 2407000A */ li $a3, 10 -/* ACEB50 800579B0 0C010E47 */ jal func_8004391C -/* ACEB54 800579B4 84640000 */ lh $a0, ($v1) -/* ACEB58 800579B8 3C014270 */ li $at, 0x42700000 # 0.000000 -/* ACEB5C 800579BC 44816000 */ mtc1 $at, $f12 -/* ACEB60 800579C0 3C063E99 */ lui $a2, (0x3E99999A >> 16) # lui $a2, 0x3e99 -/* ACEB64 800579C4 A7A200AA */ sh $v0, 0xaa($sp) -/* ACEB68 800579C8 34C6999A */ ori $a2, (0x3E99999A & 0xFFFF) # ori $a2, $a2, 0x999a -/* ACEB6C 800579CC C7AE009C */ lwc1 $f14, 0x9c($sp) -/* ACEB70 800579D0 0C010E27 */ jal func_8004389C -/* ACEB74 800579D4 3C073F80 */ lui $a3, 0x3f80 -/* ACEB78 800579D8 E7A000A4 */ swc1 $f0, 0xa4($sp) -/* ACEB7C 800579DC 8FA40040 */ lw $a0, 0x40($sp) -/* ACEB80 800579E0 8FA50044 */ lw $a1, 0x44($sp) -/* ACEB84 800579E4 0C010F0A */ jal func_80043C28 -/* ACEB88 800579E8 27A600A4 */ addiu $a2, $sp, 0xa4 -/* ACEB8C 800579EC 8FAE0040 */ lw $t6, 0x40($sp) -/* ACEB90 800579F0 8FAC0048 */ lw $t4, 0x48($sp) -/* ACEB94 800579F4 8DD80000 */ lw $t8, ($t6) -/* ACEB98 800579F8 AD980000 */ sw $t8, ($t4) -/* ACEB9C 800579FC 8DCF0004 */ lw $t7, 4($t6) -/* ACEBA0 80057A00 AD8F0004 */ sw $t7, 4($t4) -/* ACEBA4 80057A04 8DD80008 */ lw $t8, 8($t6) -/* ACEBA8 80057A08 AD980008 */ sw $t8, 8($t4) -/* ACEBAC 80057A0C 8619000A */ lh $t9, 0xa($s0) -/* ACEBB0 80057A10 272BFFFF */ addiu $t3, $t9, -1 -/* ACEBB4 80057A14 A60B000A */ sh $t3, 0xa($s0) -/* ACEBB8 80057A18 860D000A */ lh $t5, 0xa($s0) -/* ACEBBC 80057A1C 5DA0003D */ bgtzl $t5, .L80057B14 -/* ACEBC0 80057A20 8FB9003C */ lw $t9, 0x3c($sp) -/* ACEBC4 80057A24 860C015E */ lh $t4, 0x15e($s0) -/* ACEBC8 80057A28 258E0001 */ addiu $t6, $t4, 1 -/* ACEBCC 80057A2C A60E015E */ sh $t6, 0x15e($s0) -/* ACEBD0 80057A30 8FAA0038 */ lw $t2, 0x38($sp) -/* ACEBD4 80057A34 8603015E */ lh $v1, 0x15e($s0) -glabel L80057A38 -/* ACEBD8 80057A38 246F0001 */ addiu $t7, $v1, 1 -/* ACEBDC 80057A3C A60F015E */ sh $t7, 0x15e($s0) -.L80057A40: -/* ACEBE0 80057A40 8618014C */ lh $t8, 0x14c($s0) -/* ACEBE4 80057A44 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 -/* ACEBE8 80057A48 3C0B8016 */ lui $t3, %hi(D_8015BD7C) # $t3, 0x8016 -/* ACEBEC 80057A4C 37190410 */ ori $t9, $t8, 0x410 -/* ACEBF0 80057A50 A619014C */ sh $t9, 0x14c($s0) -/* ACEBF4 80057A54 AC20D3A0 */ sw $zero, %lo(D_8011D3A0)($at) -/* ACEBF8 80057A58 3C018014 */ lui $at, %hi(D_8013A3F0) -/* ACEBFC 80057A5C C426A3F0 */ lwc1 $f6, %lo(D_8013A3F0)($at) -/* ACEC00 80057A60 C60400D8 */ lwc1 $f4, 0xd8($s0) -/* ACEC04 80057A64 02002025 */ move $a0, $s0 -/* ACEC08 80057A68 24060002 */ li $a2, 2 -/* ACEC0C 80057A6C 4604303C */ c.lt.s $f6, $f4 -/* ACEC10 80057A70 00000000 */ nop -/* ACEC14 80057A74 45010021 */ bc1t .L80057AFC -/* ACEC18 80057A78 00000000 */ nop -/* ACEC1C 80057A7C 8D6BBD7C */ lw $t3, %lo(D_8015BD7C)($t3) -/* ACEC20 80057A80 3C01FFFF */ lui $at, (0xFFFF7FFF >> 16) # lui $at, 0xffff -/* ACEC24 80057A84 34217FFF */ ori $at, (0xFFFF7FFF & 0xFFFF) # ori $at, $at, 0x7fff -/* ACEC28 80057A88 95620020 */ lhu $v0, 0x20($t3) -/* ACEC2C 80057A8C 00416827 */ nor $t5, $v0, $at -/* ACEC30 80057A90 11A0001A */ beqz $t5, .L80057AFC -/* ACEC34 80057A94 2401BFFF */ li $at, -16385 -/* ACEC38 80057A98 00416027 */ nor $t4, $v0, $at -/* ACEC3C 80057A9C 11800017 */ beqz $t4, .L80057AFC -/* ACEC40 80057AA0 2401FFFD */ li $at, -3 -/* ACEC44 80057AA4 00417027 */ nor $t6, $v0, $at -/* ACEC48 80057AA8 11C00014 */ beqz $t6, .L80057AFC -/* ACEC4C 80057AAC 2401FFFB */ li $at, -5 -/* ACEC50 80057AB0 00417827 */ nor $t7, $v0, $at -/* ACEC54 80057AB4 11E00011 */ beqz $t7, .L80057AFC -/* ACEC58 80057AB8 2401FFF7 */ li $at, -9 -/* ACEC5C 80057ABC 0041C027 */ nor $t8, $v0, $at -/* ACEC60 80057AC0 1300000E */ beqz $t8, .L80057AFC -/* ACEC64 80057AC4 2401FFFE */ li $at, -2 -/* ACEC68 80057AC8 0041C827 */ nor $t9, $v0, $at -/* ACEC6C 80057ACC 1320000B */ beqz $t9, .L80057AFC -/* ACEC70 80057AD0 2401FFEF */ li $at, -17 -/* ACEC74 80057AD4 00415827 */ nor $t3, $v0, $at -/* ACEC78 80057AD8 11600008 */ beqz $t3, .L80057AFC -/* ACEC7C 80057ADC 2401DFFF */ li $at, -8193 -/* ACEC80 80057AE0 00416827 */ nor $t5, $v0, $at -/* ACEC84 80057AE4 11A00005 */ beqz $t5, .L80057AFC -/* ACEC88 80057AE8 00000000 */ nop -/* ACEC8C 80057AEC 854C0008 */ lh $t4, 8($t2) -/* ACEC90 80057AF0 318E0008 */ andi $t6, $t4, 8 -/* ACEC94 80057AF4 51C00007 */ beql $t6, $zero, .L80057B14 -/* ACEC98 80057AF8 8FB9003C */ lw $t9, 0x3c($sp) -.L80057AFC: -/* ACEC9C 80057AFC 0C016952 */ jal Camera_ChangeSetting -/* ACECA0 80057B00 86050154 */ lh $a1, 0x154($s0) -/* ACECA4 80057B04 860F014C */ lh $t7, 0x14c($s0) -/* ACECA8 80057B08 35F80006 */ ori $t8, $t7, 6 -/* ACECAC 80057B0C A618014C */ sh $t8, 0x14c($s0) -/* ACECB0 80057B10 8FB9003C */ lw $t9, 0x3c($sp) -.L80057B14: -/* ACECB4 80057B14 27A400AC */ addiu $a0, $sp, 0xac -/* ACECB8 80057B18 8F2D0000 */ lw $t5, ($t9) -/* ACECBC 80057B1C AC8D0000 */ sw $t5, ($a0) -/* ACECC0 80057B20 8F2B0004 */ lw $t3, 4($t9) -/* ACECC4 80057B24 AC8B0004 */ sw $t3, 4($a0) -/* ACECC8 80057B28 8F2D0008 */ lw $t5, 8($t9) -/* ACECCC 80057B2C AC8D0008 */ sw $t5, 8($a0) -/* ACECD0 80057B30 C7A800B0 */ lwc1 $f8, 0xb0($sp) -/* ACECD4 80057B34 C7B00098 */ lwc1 $f16, 0x98($sp) -/* ACECD8 80057B38 8FA50048 */ lw $a1, 0x48($sp) -/* ACECDC 80057B3C 46104480 */ add.s $f18, $f8, $f16 -/* ACECE0 80057B40 0C01EFE4 */ jal OLib_Vec3fDist -/* ACECE4 80057B44 E7B200B0 */ swc1 $f18, 0xb0($sp) -/* ACECE8 80057B48 8FA3003C */ lw $v1, 0x3c($sp) -/* ACECEC 80057B4C E60000DC */ swc1 $f0, 0xdc($s0) -/* ACECF0 80057B50 C60A0050 */ lwc1 $f10, 0x50($s0) -/* ACECF4 80057B54 C4660000 */ lwc1 $f6, ($v1) -/* ACECF8 80057B58 C6080054 */ lwc1 $f8, 0x54($s0) -/* ACECFC 80057B5C 24020001 */ li $v0, 1 -/* ACED00 80057B60 46065101 */ sub.s $f4, $f10, $f6 -/* ACED04 80057B64 C60A0058 */ lwc1 $f10, 0x58($s0) -/* ACED08 80057B68 E60400E4 */ swc1 $f4, 0xe4($s0) -/* ACED0C 80057B6C C4700004 */ lwc1 $f16, 4($v1) -/* ACED10 80057B70 46104481 */ sub.s $f18, $f8, $f16 -/* ACED14 80057B74 E61200E8 */ swc1 $f18, 0xe8($s0) -/* ACED18 80057B78 C4660008 */ lwc1 $f6, 8($v1) -/* ACED1C 80057B7C 46065101 */ sub.s $f4, $f10, $f6 -/* ACED20 80057B80 E60400EC */ swc1 $f4, 0xec($s0) -/* ACED24 80057B84 8FBF0024 */ lw $ra, 0x24($sp) -/* ACED28 80057B88 8FB00020 */ lw $s0, 0x20($sp) -/* ACED2C 80057B8C 27BD00C8 */ addiu $sp, $sp, 0xc8 -/* ACED30 80057B90 03E00008 */ jr $ra -/* ACED34 80057B94 00000000 */ nop diff --git a/asm/non_matchings/code/z_camera/Camera_Subj3.s b/asm/non_matchings/code/z_camera/Camera_Subj3.s deleted file mode 100644 index eefd495f70..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Subj3.s +++ /dev/null @@ -1,444 +0,0 @@ -.late_rodata -glabel D_8013A19C - .float 0.1 - -glabel D_8013A1A0 - .float 0.01 - -glabel D_8013A1A4 - .float 0.01 - -glabel D_8013A1A8 - .float 0.01 - -glabel D_8013A1AC - .float 0.01 - -.text -glabel Camera_Subj3 -/* AC763C 8005049C 27BDFF50 */ addiu $sp, $sp, -0xb0 -/* AC7640 800504A0 AFB10018 */ sw $s1, 0x18($sp) -/* AC7644 800504A4 AFB00014 */ sw $s0, 0x14($sp) -/* AC7648 800504A8 00808025 */ move $s0, $a0 -/* AC764C 800504AC 27B10060 */ addiu $s1, $sp, 0x60 -/* AC7650 800504B0 AFBF001C */ sw $ra, 0x1c($sp) -/* AC7654 800504B4 8E050090 */ lw $a1, 0x90($s0) -/* AC7658 800504B8 0C00BBB9 */ jal func_8002EEE4 -/* AC765C 800504BC 02202025 */ move $a0, $s1 -/* AC7660 800504C0 0C00B721 */ jal Player_GetCameraYOffset -/* AC7664 800504C4 8E040090 */ lw $a0, 0x90($s0) -/* AC7668 800504C8 E7A0003C */ swc1 $f0, 0x3c($sp) -/* AC766C 800504CC 8E03008C */ lw $v1, 0x8c($s0) -/* AC7670 800504D0 8C6E01DC */ lw $t6, 0x1dc($v1) -/* AC7674 800504D4 15C00006 */ bnez $t6, .L800504F0 -/* AC7678 800504D8 00000000 */ nop -/* AC767C 800504DC 860F0164 */ lh $t7, 0x164($s0) -/* AC7680 800504E0 24020001 */ li $v0, 1 -/* AC7684 800504E4 35F80050 */ ori $t8, $t7, 0x50 -/* AC7688 800504E8 10000189 */ b .L80050B10 -/* AC768C 800504EC AC7801DC */ sw $t8, 0x1dc($v1) -.L800504F0: -/* AC7690 800504F0 0C010EAF */ jal func_80043ABC -/* AC7694 800504F4 02002025 */ move $a0, $s0 -/* AC7698 800504F8 0C011495 */ jal Camera_CopyPREGToModeValues -/* AC769C 800504FC 02002025 */ move $a0, $s0 -/* AC76A0 80050500 86190142 */ lh $t9, 0x142($s0) -/* AC76A4 80050504 3C0B8012 */ lui $t3, %hi(sCameraSettings+4) -/* AC76A8 80050508 860C0144 */ lh $t4, 0x144($s0) -/* AC76AC 8005050C 001950C0 */ sll $t2, $t9, 3 -/* AC76B0 80050510 016A5821 */ addu $t3, $t3, $t2 -/* AC76B4 80050514 8D6BD068 */ lw $t3, %lo(sCameraSettings+4)($t3) -/* AC76B8 80050518 000C68C0 */ sll $t5, $t4, 3 -/* AC76BC 8005051C 3C018014 */ lui $at, %hi(D_8013A19C) -/* AC76C0 80050520 016D7021 */ addu $t6, $t3, $t5 -/* AC76C4 80050524 8DC30004 */ lw $v1, 4($t6) -/* AC76C8 80050528 C420A19C */ lwc1 $f0, %lo(D_8013A19C)($at) -/* AC76CC 8005052C 3C018014 */ lui $at, %hi(D_8013A1A0) -/* AC76D0 80050530 846F0000 */ lh $t7, ($v1) -/* AC76D4 80050534 C428A1A0 */ lwc1 $f8, %lo(D_8013A1A0)($at) -/* AC76D8 80050538 27A50098 */ addiu $a1, $sp, 0x98 -/* AC76DC 8005053C 448F2000 */ mtc1 $t7, $f4 -/* AC76E0 80050540 27A4008C */ addiu $a0, $sp, 0x8c -/* AC76E4 80050544 27A60084 */ addiu $a2, $sp, 0x84 -/* AC76E8 80050548 468021A0 */ cvt.s.w $f6, $f4 -/* AC76EC 8005054C C7A4003C */ lwc1 $f4, 0x3c($sp) -/* AC76F0 80050550 24630020 */ addiu $v1, $v1, 0x20 -/* AC76F4 80050554 46083282 */ mul.s $f10, $f6, $f8 -/* AC76F8 80050558 00000000 */ nop -/* AC76FC 8005055C 46045182 */ mul.s $f6, $f10, $f4 -/* AC7700 80050560 E6060000 */ swc1 $f6, ($s0) -/* AC7704 80050564 8478FFE4 */ lh $t8, -0x1c($v1) -/* AC7708 80050568 44984000 */ mtc1 $t8, $f8 -/* AC770C 8005056C 00000000 */ nop -/* AC7710 80050570 468042A0 */ cvt.s.w $f10, $f8 -/* AC7714 80050574 E60A0004 */ swc1 $f10, 4($s0) -/* AC7718 80050578 8479FFE8 */ lh $t9, -0x18($v1) -/* AC771C 8005057C 44992000 */ mtc1 $t9, $f4 -/* AC7720 80050580 00000000 */ nop -/* AC7724 80050584 468021A0 */ cvt.s.w $f6, $f4 -/* AC7728 80050588 E6060008 */ swc1 $f6, 8($s0) -/* AC772C 8005058C 846AFFEC */ lh $t2, -0x14($v1) -/* AC7730 80050590 448A4000 */ mtc1 $t2, $f8 -/* AC7734 80050594 00000000 */ nop -/* AC7738 80050598 468042A0 */ cvt.s.w $f10, $f8 -/* AC773C 8005059C E60A000C */ swc1 $f10, 0xc($s0) -/* AC7740 800505A0 846CFFF0 */ lh $t4, -0x10($v1) -/* AC7744 800505A4 448C2000 */ mtc1 $t4, $f4 -/* AC7748 800505A8 00000000 */ nop -/* AC774C 800505AC 468021A0 */ cvt.s.w $f6, $f4 -/* AC7750 800505B0 46003202 */ mul.s $f8, $f6, $f0 -/* AC7754 800505B4 E6080010 */ swc1 $f8, 0x10($s0) -/* AC7758 800505B8 846BFFF4 */ lh $t3, -0xc($v1) -/* AC775C 800505BC 448B5000 */ mtc1 $t3, $f10 -/* AC7760 800505C0 00000000 */ nop -/* AC7764 800505C4 46805120 */ cvt.s.w $f4, $f10 -/* AC7768 800505C8 46002182 */ mul.s $f6, $f4, $f0 -/* AC776C 800505CC E6060014 */ swc1 $f6, 0x14($s0) -/* AC7770 800505D0 846DFFF8 */ lh $t5, -8($v1) -/* AC7774 800505D4 448D4000 */ mtc1 $t5, $f8 -/* AC7778 800505D8 00000000 */ nop -/* AC777C 800505DC 468042A0 */ cvt.s.w $f10, $f8 -/* AC7780 800505E0 46005102 */ mul.s $f4, $f10, $f0 -/* AC7784 800505E4 C60A0008 */ lwc1 $f10, 8($s0) -/* AC7788 800505E8 E6040018 */ swc1 $f4, 0x18($s0) -/* AC778C 800505EC 846EFFFC */ lh $t6, -4($v1) -/* AC7790 800505F0 448E3000 */ mtc1 $t6, $f6 -/* AC7794 800505F4 00000000 */ nop -/* AC7798 800505F8 46803220 */ cvt.s.w $f8, $f6 -/* AC779C 800505FC E608001C */ swc1 $f8, 0x1c($s0) -/* AC77A0 80050600 846F0000 */ lh $t7, ($v1) -/* AC77A4 80050604 A60F0020 */ sh $t7, 0x20($s0) -/* AC77A8 80050608 87B8006E */ lh $t8, 0x6e($sp) -/* AC77AC 8005060C 87AA006C */ lh $t2, 0x6c($sp) -/* AC77B0 80050610 E7AA0084 */ swc1 $f10, 0x84($sp) -/* AC77B4 80050614 27198001 */ addiu $t9, $t8, -0x7fff -/* AC77B8 80050618 A7B9008A */ sh $t9, 0x8a($sp) -/* AC77BC 8005061C A7AA0088 */ sh $t2, 0x88($sp) -/* AC77C0 80050620 8E2B0000 */ lw $t3, ($s1) -/* AC77C4 80050624 8E2C0004 */ lw $t4, 4($s1) -/* AC77C8 80050628 ACAB0000 */ sw $t3, ($a1) -/* AC77CC 8005062C 8E2B0008 */ lw $t3, 8($s1) -/* AC77D0 80050630 ACAC0004 */ sw $t4, 4($a1) -/* AC77D4 80050634 ACAB0008 */ sw $t3, 8($a1) -/* AC77D8 80050638 C7A4009C */ lwc1 $f4, 0x9c($sp) -/* AC77DC 8005063C C6060000 */ lwc1 $f6, ($s0) -/* AC77E0 80050640 46062200 */ add.s $f8, $f4, $f6 -/* AC77E4 80050644 0C010F0A */ jal func_80043C28 -/* AC77E8 80050648 E7A8009C */ swc1 $f8, 0x9c($sp) -/* AC77EC 8005064C 26110050 */ addiu $s1, $s0, 0x50 -/* AC77F0 80050650 2606005C */ addiu $a2, $s0, 0x5c -/* AC77F4 80050654 AFA60038 */ sw $a2, 0x38($sp) -/* AC77F8 80050658 02202825 */ move $a1, $s1 -/* AC77FC 8005065C 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC7800 80050660 27A4007C */ addiu $a0, $sp, 0x7c -/* AC7804 80050664 860D0020 */ lh $t5, 0x20($s0) -/* AC7808 80050668 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 -/* AC780C 8005066C C7AA007C */ lwc1 $f10, 0x7c($sp) -/* AC7810 80050670 AC2DD3A0 */ sw $t5, %lo(D_8011D3A0)($at) -/* AC7814 80050674 8603015E */ lh $v1, 0x15e($s0) -/* AC7818 80050678 2401000A */ li $at, 10 -/* AC781C 8005067C 50600005 */ beql $v1, $zero, .L80050694 -/* AC7820 80050680 26030024 */ addiu $v1, $s0, 0x24 -/* AC7824 80050684 10610002 */ beq $v1, $at, .L80050690 -/* AC7828 80050688 24010014 */ li $at, 20 -/* AC782C 8005068C 14610014 */ bne $v1, $at, .L800506E0 -.L80050690: -/* AC7830 80050690 26030024 */ addiu $v1, $s0, 0x24 -.L80050694: -/* AC7834 80050694 E46A0000 */ swc1 $f10, ($v1) -/* AC7838 80050698 87AE0082 */ lh $t6, 0x82($sp) -/* AC783C 8005069C 3C188016 */ lui $t8, %hi(gGameInfo) # $t8, 0x8016 -/* AC7840 800506A0 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC7844 800506A4 A46E0004 */ sh $t6, 4($v1) -/* AC7848 800506A8 87AF0080 */ lh $t7, 0x80($sp) -/* AC784C 800506AC 44813000 */ mtc1 $at, $f6 -/* AC7850 800506B0 A46F0006 */ sh $t7, 6($v1) -/* AC7854 800506B4 8F18FA90 */ lw $t8, %lo(gGameInfo)($t8) -/* AC7858 800506B8 871901C2 */ lh $t9, 0x1c2($t8) -/* AC785C 800506BC A4790008 */ sh $t9, 8($v1) -/* AC7860 800506C0 C6040008 */ lwc1 $f4, 8($s0) -/* AC7864 800506C4 860A015E */ lh $t2, 0x15e($s0) -/* AC7868 800506C8 C6080008 */ lwc1 $f8, 8($s0) -/* AC786C 800506CC E60400DC */ swc1 $f4, 0xdc($s0) -/* AC7870 800506D0 254C0001 */ addiu $t4, $t2, 1 -/* AC7874 800506D4 A60C015E */ sh $t4, 0x15e($s0) -/* AC7878 800506D8 E60600C0 */ swc1 $f6, 0xc0($s0) -/* AC787C 800506DC E60800DC */ swc1 $f8, 0xdc($s0) -.L800506E0: -/* AC7880 800506E0 26030024 */ addiu $v1, $s0, 0x24 -/* AC7884 800506E4 84640008 */ lh $a0, 8($v1) -/* AC7888 800506E8 C4720000 */ lwc1 $f18, ($v1) -/* AC788C 800506EC 84650004 */ lh $a1, 4($v1) -/* AC7890 800506F0 1080009D */ beqz $a0, .L80050968 -/* AC7894 800506F4 84680006 */ lh $t0, 6($v1) -/* AC7898 800506F8 44842000 */ mtc1 $a0, $f4 -/* AC789C 800506FC 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC78A0 80050700 44815000 */ mtc1 $at, $f10 -/* AC78A4 80050704 468021A0 */ cvt.s.w $f6, $f4 -/* AC78A8 80050708 C6220000 */ lwc1 $f2, ($s1) -/* AC78AC 8005070C C7A80098 */ lwc1 $f8, 0x98($sp) -/* AC78B0 80050710 C62C0004 */ lwc1 $f12, 4($s1) -/* AC78B4 80050714 C62E0008 */ lwc1 $f14, 8($s1) -/* AC78B8 80050718 46024101 */ sub.s $f4, $f8, $f2 -/* AC78BC 8005071C 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* AC78C0 80050720 3C073F80 */ li $a3, 0x3F800000 # 0.000000 -/* AC78C4 80050724 46065003 */ div.s $f0, $f10, $f6 -/* AC78C8 80050728 46002282 */ mul.s $f10, $f4, $f0 -/* AC78CC 8005072C 460A1180 */ add.s $f6, $f2, $f10 -/* AC78D0 80050730 E6260000 */ swc1 $f6, ($s1) -/* AC78D4 80050734 C7A8009C */ lwc1 $f8, 0x9c($sp) -/* AC78D8 80050738 460C4101 */ sub.s $f4, $f8, $f12 -/* AC78DC 8005073C 46002282 */ mul.s $f10, $f4, $f0 -/* AC78E0 80050740 460A6180 */ add.s $f6, $f12, $f10 -/* AC78E4 80050744 E6260004 */ swc1 $f6, 4($s1) -/* AC78E8 80050748 C7A800A0 */ lwc1 $f8, 0xa0($sp) -/* AC78EC 8005074C 460E4101 */ sub.s $f4, $f8, $f14 -/* AC78F0 80050750 44814000 */ mtc1 $at, $f8 -/* AC78F4 80050754 3C018014 */ lui $at, %hi(D_8013A1A4) -/* AC78F8 80050758 46002282 */ mul.s $f10, $f4, $f0 -/* AC78FC 8005075C 460A7180 */ add.s $f6, $f14, $f10 -/* AC7900 80050760 E6260008 */ swc1 $f6, 8($s1) -/* AC7904 80050764 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* AC7908 80050768 87AD008A */ lh $t5, 0x8a($sp) -/* AC790C 8005076C C7A60084 */ lwc1 $f6, 0x84($sp) -/* AC7910 80050770 844B01C2 */ lh $t3, 0x1c2($v0) -/* AC7914 80050774 00AD7023 */ subu $t6, $a1, $t5 -/* AC7918 80050778 000E7C00 */ sll $t7, $t6, 0x10 -/* AC791C 8005077C 448B2000 */ mtc1 $t3, $f4 -/* AC7920 80050780 000FC403 */ sra $t8, $t7, 0x10 -/* AC7924 80050784 87AA0088 */ lh $t2, 0x88($sp) -/* AC7928 80050788 468022A0 */ cvt.s.w $f10, $f4 -/* AC792C 8005078C C7AE007C */ lwc1 $f14, 0x7c($sp) -/* AC7930 80050790 010A6023 */ subu $t4, $t0, $t2 -/* AC7934 80050794 000C5C00 */ sll $t3, $t4, 0x10 -/* AC7938 80050798 000B6C03 */ sra $t5, $t3, 0x10 -/* AC793C 8005079C 46069101 */ sub.s $f4, $f18, $f6 -/* AC7940 800507A0 460A4003 */ div.s $f0, $f8, $f10 -/* AC7944 800507A4 44984000 */ mtc1 $t8, $f8 -/* AC7948 800507A8 00000000 */ nop -/* AC794C 800507AC 468042A0 */ cvt.s.w $f10, $f8 -/* AC7950 800507B0 46002402 */ mul.s $f16, $f4, $f0 -/* AC7954 800507B4 00000000 */ nop -/* AC7958 800507B8 46005102 */ mul.s $f4, $f10, $f0 -/* AC795C 800507BC 448D5000 */ mtc1 $t5, $f10 -/* AC7960 800507C0 4600220D */ trunc.w.s $f8, $f4 -/* AC7964 800507C4 46805120 */ cvt.s.w $f4, $f10 -/* AC7968 800507C8 44094000 */ mfc1 $t1, $f8 -/* AC796C 800507CC 00000000 */ nop -/* AC7970 800507D0 00094C00 */ sll $t1, $t1, 0x10 -/* AC7974 800507D4 00094C03 */ sra $t1, $t1, 0x10 -/* AC7978 800507D8 46002202 */ mul.s $f8, $f4, $f0 -/* AC797C 800507DC 4600428D */ trunc.w.s $f10, $f8 -/* AC7980 800507E0 440F5000 */ mfc1 $t7, $f10 -/* AC7984 800507E4 00000000 */ nop -/* AC7988 800507E8 A7AF0050 */ sh $t7, 0x50($sp) -/* AC798C 800507EC 84780008 */ lh $t8, 8($v1) -/* AC7990 800507F0 845901CC */ lh $t9, 0x1cc($v0) -/* AC7994 800507F4 A7A90052 */ sh $t1, 0x52($sp) -/* AC7998 800507F8 44982000 */ mtc1 $t8, $f4 -/* AC799C 800507FC AFA3002C */ sw $v1, 0x2c($sp) -/* AC79A0 80050800 46802220 */ cvt.s.w $f8, $f4 -/* AC79A4 80050804 44992000 */ mtc1 $t9, $f4 -/* AC79A8 80050808 46104282 */ mul.s $f10, $f8, $f16 -/* AC79AC 8005080C 46802220 */ cvt.s.w $f8, $f4 -/* AC79B0 80050810 46065300 */ add.s $f12, $f10, $f6 -/* AC79B4 80050814 C42AA1A4 */ lwc1 $f10, %lo(D_8013A1A4)($at) -/* AC79B8 80050818 460A4182 */ mul.s $f6, $f8, $f10 -/* AC79BC 8005081C 44063000 */ mfc1 $a2, $f6 -/* AC79C0 80050820 0C010E27 */ jal func_8004389C -/* AC79C4 80050824 00000000 */ nop -/* AC79C8 80050828 3C0D8016 */ lui $t5, %hi(gGameInfo) # $t5, 0x8016 -/* AC79CC 8005082C 8DADFA90 */ lw $t5, %lo(gGameInfo)($t5) -/* AC79D0 80050830 E7A0007C */ swc1 $f0, 0x7c($sp) -/* AC79D4 80050834 8FA3002C */ lw $v1, 0x2c($sp) -/* AC79D8 80050838 85AE01CC */ lh $t6, 0x1cc($t5) -/* AC79DC 8005083C 87A90052 */ lh $t1, 0x52($sp) -/* AC79E0 80050840 846C0008 */ lh $t4, 8($v1) -/* AC79E4 80050844 448E2000 */ mtc1 $t6, $f4 -/* AC79E8 80050848 3C018014 */ lui $at, %hi(D_8013A1A8) -/* AC79EC 8005084C 012C0019 */ multu $t1, $t4 -/* AC79F0 80050850 46802220 */ cvt.s.w $f8, $f4 -/* AC79F4 80050854 C42AA1A8 */ lwc1 $f10, %lo(D_8013A1A8)($at) -/* AC79F8 80050858 87AA008A */ lh $t2, 0x8a($sp) -/* AC79FC 8005085C 87A50082 */ lh $a1, 0x82($sp) -/* AC7A00 80050860 2407000A */ li $a3, 10 -/* AC7A04 80050864 460A4182 */ mul.s $f6, $f8, $f10 -/* AC7A08 80050868 00005812 */ mflo $t3 -/* AC7A0C 8005086C 014B2021 */ addu $a0, $t2, $t3 -/* AC7A10 80050870 00042400 */ sll $a0, $a0, 0x10 -/* AC7A14 80050874 00042403 */ sra $a0, $a0, 0x10 -/* AC7A18 80050878 44063000 */ mfc1 $a2, $f6 -/* AC7A1C 8005087C 0C010E47 */ jal func_8004391C -/* AC7A20 80050880 00000000 */ nop -/* AC7A24 80050884 3C0A8016 */ lui $t2, %hi(gGameInfo) # $t2, 0x8016 -/* AC7A28 80050888 8D4AFA90 */ lw $t2, %lo(gGameInfo)($t2) -/* AC7A2C 8005088C A7A20082 */ sh $v0, 0x82($sp) -/* AC7A30 80050890 8FA3002C */ lw $v1, 0x2c($sp) -/* AC7A34 80050894 854B01CC */ lh $t3, 0x1cc($t2) -/* AC7A38 80050898 87AF0050 */ lh $t7, 0x50($sp) -/* AC7A3C 8005089C 84780008 */ lh $t8, 8($v1) -/* AC7A40 800508A0 448B2000 */ mtc1 $t3, $f4 -/* AC7A44 800508A4 3C018014 */ lui $at, %hi(D_8013A1AC) -/* AC7A48 800508A8 01F80019 */ multu $t7, $t8 -/* AC7A4C 800508AC 46802220 */ cvt.s.w $f8, $f4 -/* AC7A50 800508B0 C42AA1AC */ lwc1 $f10, %lo(D_8013A1AC)($at) -/* AC7A54 800508B4 87AC0088 */ lh $t4, 0x88($sp) -/* AC7A58 800508B8 87A50080 */ lh $a1, 0x80($sp) -/* AC7A5C 800508BC 2407000A */ li $a3, 10 -/* AC7A60 800508C0 460A4182 */ mul.s $f6, $f8, $f10 -/* AC7A64 800508C4 0000C812 */ mflo $t9 -/* AC7A68 800508C8 01992021 */ addu $a0, $t4, $t9 -/* AC7A6C 800508CC 00042400 */ sll $a0, $a0, 0x10 -/* AC7A70 800508D0 00042403 */ sra $a0, $a0, 0x10 -/* AC7A74 800508D4 44063000 */ mfc1 $a2, $f6 -/* AC7A78 800508D8 0C010E47 */ jal func_8004391C -/* AC7A7C 800508DC 00000000 */ nop -/* AC7A80 800508E0 26040074 */ addiu $a0, $s0, 0x74 -/* AC7A84 800508E4 A7A20080 */ sh $v0, 0x80($sp) -/* AC7A88 800508E8 AFA40030 */ sw $a0, 0x30($sp) -/* AC7A8C 800508EC 02202825 */ move $a1, $s1 -/* AC7A90 800508F0 0C010F0A */ jal func_80043C28 -/* AC7A94 800508F4 27A6007C */ addiu $a2, $sp, 0x7c -/* AC7A98 800508F8 8FA40030 */ lw $a0, 0x30($sp) -/* AC7A9C 800508FC 8FA60038 */ lw $a2, 0x38($sp) -/* AC7AA0 80050900 8FA3002C */ lw $v1, 0x2c($sp) -/* AC7AA4 80050904 8C8E0000 */ lw $t6, ($a0) -/* AC7AA8 80050908 3C190001 */ lui $t9, 1 -/* AC7AAC 8005090C 02202825 */ move $a1, $s1 -/* AC7AB0 80050910 ACCE0000 */ sw $t6, ($a2) -/* AC7AB4 80050914 8C8D0004 */ lw $t5, 4($a0) -/* AC7AB8 80050918 ACCD0004 */ sw $t5, 4($a2) -/* AC7ABC 8005091C 8C8E0008 */ lw $t6, 8($a0) -/* AC7AC0 80050920 02002025 */ move $a0, $s0 -/* AC7AC4 80050924 ACCE0008 */ sw $t6, 8($a2) -/* AC7AC8 80050928 846F0008 */ lh $t7, 8($v1) -/* AC7ACC 8005092C 25F8FFFF */ addiu $t8, $t7, -1 -/* AC7AD0 80050930 A4780008 */ sh $t8, 8($v1) -/* AC7AD4 80050934 8E0C008C */ lw $t4, 0x8c($s0) -/* AC7AD8 80050938 032CC821 */ addu $t9, $t9, $t4 -/* AC7ADC 8005093C 93390A39 */ lbu $t9, 0xa39($t9) -/* AC7AE0 80050940 17200005 */ bnez $t9, .L80050958 -/* AC7AE4 80050944 00000000 */ nop -/* AC7AE8 80050948 0C010FCD */ jal func_80043F34 -/* AC7AEC 8005094C 02002025 */ move $a0, $s0 -/* AC7AF0 80050950 10000059 */ b .L80050AB8 -/* AC7AF4 80050954 26020094 */ addiu $v0, $s0, 0x94 -.L80050958: -/* AC7AF8 80050958 0C0110D0 */ jal func_80044340 -/* AC7AFC 8005095C 02202825 */ move $a1, $s1 -/* AC7B00 80050960 10000055 */ b .L80050AB8 -/* AC7B04 80050964 26020094 */ addiu $v0, $s0, 0x94 -.L80050968: -/* AC7B08 80050968 87A4006C */ lh $a0, 0x6c($sp) -/* AC7B0C 8005096C 00042023 */ negu $a0, $a0 -/* AC7B10 80050970 00042400 */ sll $a0, $a0, 0x10 -/* AC7B14 80050974 0C01DE1C */ jal Math_Sins -/* AC7B18 80050978 00042403 */ sra $a0, $a0, 0x10 -/* AC7B1C 8005097C 87A4006C */ lh $a0, 0x6c($sp) -/* AC7B20 80050980 E7A00058 */ swc1 $f0, 0x58($sp) -/* AC7B24 80050984 00042023 */ negu $a0, $a0 -/* AC7B28 80050988 00042400 */ sll $a0, $a0, 0x10 -/* AC7B2C 8005098C 0C01DE0D */ jal Math_Coss -/* AC7B30 80050990 00042403 */ sra $a0, $a0, 0x10 -/* AC7B34 80050994 C6040010 */ lwc1 $f4, 0x10($s0) -/* AC7B38 80050998 C7B00058 */ lwc1 $f16, 0x58($sp) -/* AC7B3C 8005099C 87A4006E */ lh $a0, 0x6e($sp) -/* AC7B40 800509A0 E7A40098 */ swc1 $f4, 0x98($sp) -/* AC7B44 800509A4 C6080014 */ lwc1 $f8, 0x14($s0) -/* AC7B48 800509A8 C6060018 */ lwc1 $f6, 0x18($s0) -/* AC7B4C 800509AC 24848001 */ addiu $a0, $a0, -0x7fff -/* AC7B50 800509B0 46004282 */ mul.s $f10, $f8, $f0 -/* AC7B54 800509B4 00042400 */ sll $a0, $a0, 0x10 -/* AC7B58 800509B8 00042403 */ sra $a0, $a0, 0x10 -/* AC7B5C 800509BC 46103102 */ mul.s $f4, $f6, $f16 -/* AC7B60 800509C0 46045201 */ sub.s $f8, $f10, $f4 -/* AC7B64 800509C4 E7A8009C */ swc1 $f8, 0x9c($sp) -/* AC7B68 800509C8 C6060014 */ lwc1 $f6, 0x14($s0) -/* AC7B6C 800509CC C6040018 */ lwc1 $f4, 0x18($s0) -/* AC7B70 800509D0 46103282 */ mul.s $f10, $f6, $f16 -/* AC7B74 800509D4 00000000 */ nop -/* AC7B78 800509D8 46002202 */ mul.s $f8, $f4, $f0 -/* AC7B7C 800509DC 46085180 */ add.s $f6, $f10, $f8 -/* AC7B80 800509E0 0C01DE1C */ jal Math_Sins -/* AC7B84 800509E4 E7A600A0 */ swc1 $f6, 0xa0($sp) -/* AC7B88 800509E8 87A4006E */ lh $a0, 0x6e($sp) -/* AC7B8C 800509EC E7A00058 */ swc1 $f0, 0x58($sp) -/* AC7B90 800509F0 24848001 */ addiu $a0, $a0, -0x7fff -/* AC7B94 800509F4 00042400 */ sll $a0, $a0, 0x10 -/* AC7B98 800509F8 0C01DE0D */ jal Math_Coss -/* AC7B9C 800509FC 00042403 */ sra $a0, $a0, 0x10 -/* AC7BA0 80050A00 C7B00058 */ lwc1 $f16, 0x58($sp) -/* AC7BA4 80050A04 C7A400A0 */ lwc1 $f4, 0xa0($sp) -/* AC7BA8 80050A08 C7A80098 */ lwc1 $f8, 0x98($sp) -/* AC7BAC 80050A0C 26040074 */ addiu $a0, $s0, 0x74 -/* AC7BB0 80050A10 46102282 */ mul.s $f10, $f4, $f16 -/* AC7BB4 80050A14 02202825 */ move $a1, $s1 -/* AC7BB8 80050A18 27A6007C */ addiu $a2, $sp, 0x7c -/* AC7BBC 80050A1C 46004182 */ mul.s $f6, $f8, $f0 -/* AC7BC0 80050A20 46065100 */ add.s $f4, $f10, $f6 -/* AC7BC4 80050A24 E6040010 */ swc1 $f4, 0x10($s0) -/* AC7BC8 80050A28 C7A8009C */ lwc1 $f8, 0x9c($sp) -/* AC7BCC 80050A2C E6080014 */ swc1 $f8, 0x14($s0) -/* AC7BD0 80050A30 C7AA00A0 */ lwc1 $f10, 0xa0($sp) -/* AC7BD4 80050A34 C7A40098 */ lwc1 $f4, 0x98($sp) -/* AC7BD8 80050A38 46005182 */ mul.s $f6, $f10, $f0 -/* AC7BDC 80050A3C 00000000 */ nop -/* AC7BE0 80050A40 46102202 */ mul.s $f8, $f4, $f16 -/* AC7BE4 80050A44 C6040010 */ lwc1 $f4, 0x10($s0) -/* AC7BE8 80050A48 46083281 */ sub.s $f10, $f6, $f8 -/* AC7BEC 80050A4C E60A0018 */ swc1 $f10, 0x18($s0) -/* AC7BF0 80050A50 C7A60060 */ lwc1 $f6, 0x60($sp) -/* AC7BF4 80050A54 46062200 */ add.s $f8, $f4, $f6 -/* AC7BF8 80050A58 E6280000 */ swc1 $f8, ($s1) -/* AC7BFC 80050A5C C7A40064 */ lwc1 $f4, 0x64($sp) -/* AC7C00 80050A60 C60A0014 */ lwc1 $f10, 0x14($s0) -/* AC7C04 80050A64 46045180 */ add.s $f6, $f10, $f4 -/* AC7C08 80050A68 E6260004 */ swc1 $f6, 4($s1) -/* AC7C0C 80050A6C C7AA0068 */ lwc1 $f10, 0x68($sp) -/* AC7C10 80050A70 C6080018 */ lwc1 $f8, 0x18($s0) -/* AC7C14 80050A74 460A4100 */ add.s $f4, $f8, $f10 -/* AC7C18 80050A78 E6240008 */ swc1 $f4, 8($s1) -/* AC7C1C 80050A7C 87AA006E */ lh $t2, 0x6e($sp) -/* AC7C20 80050A80 C6060008 */ lwc1 $f6, 8($s0) -/* AC7C24 80050A84 87AD006C */ lh $t5, 0x6c($sp) -/* AC7C28 80050A88 254B8001 */ addiu $t3, $t2, -0x7fff -/* AC7C2C 80050A8C A7AB0082 */ sh $t3, 0x82($sp) -/* AC7C30 80050A90 E7A6007C */ swc1 $f6, 0x7c($sp) -/* AC7C34 80050A94 0C010F0A */ jal func_80043C28 -/* AC7C38 80050A98 A7AD0080 */ sh $t5, 0x80($sp) -/* AC7C3C 80050A9C C6080004 */ lwc1 $f8, 4($s0) -/* AC7C40 80050AA0 8FA40038 */ lw $a0, 0x38($sp) -/* AC7C44 80050AA4 02202825 */ move $a1, $s1 -/* AC7C48 80050AA8 27A6007C */ addiu $a2, $sp, 0x7c -/* AC7C4C 80050AAC 0C010F0A */ jal func_80043C28 -/* AC7C50 80050AB0 E7A8007C */ swc1 $f8, 0x7c($sp) -/* AC7C54 80050AB4 26020094 */ addiu $v0, $s0, 0x94 -.L80050AB8: -/* AC7C58 80050AB8 C4440000 */ lwc1 $f4, ($v0) -/* AC7C5C 80050ABC C60A0050 */ lwc1 $f10, 0x50($s0) -/* AC7C60 80050AC0 C6080054 */ lwc1 $f8, 0x54($s0) -/* AC7C64 80050AC4 C60C001C */ lwc1 $f12, 0x1c($s0) -/* AC7C68 80050AC8 46045181 */ sub.s $f6, $f10, $f4 -/* AC7C6C 80050ACC C60E00FC */ lwc1 $f14, 0xfc($s0) -/* AC7C70 80050AD0 3C063E80 */ lui $a2, 0x3e80 -/* AC7C74 80050AD4 3C073F80 */ li $a3, 0x3F800000 # 0.000000 -/* AC7C78 80050AD8 E60600E4 */ swc1 $f6, 0xe4($s0) -/* AC7C7C 80050ADC C44A0004 */ lwc1 $f10, 4($v0) -/* AC7C80 80050AE0 C6060058 */ lwc1 $f6, 0x58($s0) -/* AC7C84 80050AE4 460A4101 */ sub.s $f4, $f8, $f10 -/* AC7C88 80050AE8 E60400E8 */ swc1 $f4, 0xe8($s0) -/* AC7C8C 80050AEC C4480008 */ lwc1 $f8, 8($v0) -/* AC7C90 80050AF0 46083281 */ sub.s $f10, $f6, $f8 -/* AC7C94 80050AF4 0C010E27 */ jal func_8004389C -/* AC7C98 80050AF8 E60A00EC */ swc1 $f10, 0xec($s0) -/* AC7C9C 80050AFC 44802000 */ mtc1 $zero, $f4 -/* AC7CA0 80050B00 E60000FC */ swc1 $f0, 0xfc($s0) -/* AC7CA4 80050B04 A600015A */ sh $zero, 0x15a($s0) -/* AC7CA8 80050B08 24020001 */ li $v0, 1 -/* AC7CAC 80050B0C E6040100 */ swc1 $f4, 0x100($s0) -.L80050B10: -/* AC7CB0 80050B10 8FBF001C */ lw $ra, 0x1c($sp) -/* AC7CB4 80050B14 8FB00014 */ lw $s0, 0x14($sp) -/* AC7CB8 80050B18 8FB10018 */ lw $s1, 0x18($sp) -/* AC7CBC 80050B1C 03E00008 */ jr $ra -/* AC7CC0 80050B20 27BD00B0 */ addiu $sp, $sp, 0xb0 diff --git a/asm/non_matchings/code/z_camera/Camera_Subj4.s b/asm/non_matchings/code/z_camera/Camera_Subj4.s deleted file mode 100644 index e97e506c3c..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Subj4.s +++ /dev/null @@ -1,439 +0,0 @@ -.late_rodata -glabel D_8013A1B0 - .float 0.416667 - -.text -glabel Camera_Subj4 -/* AC7CC4 80050B24 27BDFF48 */ addiu $sp, $sp, -0xb8 -/* AC7CC8 80050B28 AFBF0024 */ sw $ra, 0x24($sp) -/* AC7CCC 80050B2C AFB30020 */ sw $s3, 0x20($sp) -/* AC7CD0 80050B30 AFB2001C */ sw $s2, 0x1c($sp) -/* AC7CD4 80050B34 AFB10018 */ sw $s1, 0x18($sp) -/* AC7CD8 80050B38 AFB00014 */ sw $s0, 0x14($sp) -/* AC7CDC 80050B3C 8482015E */ lh $v0, 0x15e($a0) -/* AC7CE0 80050B40 00808825 */ move $s1, $a0 -/* AC7CE4 80050B44 2401000A */ li $at, 10 -/* AC7CE8 80050B48 5040000A */ beql $v0, $zero, .L80050B74 -/* AC7CEC 80050B4C 862F0142 */ lh $t7, 0x142($s1) -/* AC7CF0 80050B50 10410007 */ beq $v0, $at, .L80050B70 -/* AC7CF4 80050B54 24010014 */ li $at, 20 -/* AC7CF8 80050B58 10410005 */ beq $v0, $at, .L80050B70 -/* AC7CFC 80050B5C 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 -/* AC7D00 80050B60 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* AC7D04 80050B64 85C20314 */ lh $v0, 0x314($t6) -/* AC7D08 80050B68 1040000F */ beqz $v0, .L80050BA8 -/* AC7D0C 80050B6C 00000000 */ nop -.L80050B70: -/* AC7D10 80050B70 862F0142 */ lh $t7, 0x142($s1) -.L80050B74: -/* AC7D14 80050B74 3C198012 */ lui $t9, %hi(sCameraSettings+4) -/* AC7D18 80050B78 86280144 */ lh $t0, 0x144($s1) -/* AC7D1C 80050B7C 000FC0C0 */ sll $t8, $t7, 3 -/* AC7D20 80050B80 0338C821 */ addu $t9, $t9, $t8 -/* AC7D24 80050B84 8F39D068 */ lw $t9, %lo(sCameraSettings+4)($t9) -/* AC7D28 80050B88 000848C0 */ sll $t1, $t0, 3 -/* AC7D2C 80050B8C 3C0C8016 */ lui $t4, %hi(gGameInfo) # $t4, 0x8016 -/* AC7D30 80050B90 03295021 */ addu $t2, $t9, $t1 -/* AC7D34 80050B94 8D430004 */ lw $v1, 4($t2) -/* AC7D38 80050B98 846B0000 */ lh $t3, ($v1) -/* AC7D3C 80050B9C A62B0000 */ sh $t3, ($s1) -/* AC7D40 80050BA0 8D8CFA90 */ lw $t4, %lo(gGameInfo)($t4) -/* AC7D44 80050BA4 85820314 */ lh $v0, 0x314($t4) -.L80050BA8: -/* AC7D48 80050BA8 50400004 */ beql $v0, $zero, .L80050BBC -/* AC7D4C 80050BAC 8E23008C */ lw $v1, 0x8c($s1) -/* AC7D50 80050BB0 0C011495 */ jal Camera_CopyPREGToModeValues -/* AC7D54 80050BB4 02202025 */ move $a0, $s1 -/* AC7D58 80050BB8 8E23008C */ lw $v1, 0x8c($s1) -.L80050BBC: -/* AC7D5C 80050BBC 27A4006C */ addiu $a0, $sp, 0x6c -/* AC7D60 80050BC0 8C6D01DC */ lw $t5, 0x1dc($v1) -/* AC7D64 80050BC4 15A00008 */ bnez $t5, .L80050BE8 -/* AC7D68 80050BC8 00000000 */ nop -/* AC7D6C 80050BCC 862E0164 */ lh $t6, 0x164($s1) -/* AC7D70 80050BD0 24020001 */ li $v0, 1 -/* AC7D74 80050BD4 35CF0050 */ ori $t7, $t6, 0x50 -/* AC7D78 80050BD8 AC6F01DC */ sw $t7, 0x1dc($v1) -/* AC7D7C 80050BDC C62400D8 */ lwc1 $f4, 0xd8($s1) -/* AC7D80 80050BE0 10000168 */ b .L80051184 -/* AC7D84 80050BE4 E6240028 */ swc1 $f4, 0x28($s1) -.L80050BE8: -/* AC7D88 80050BE8 0C00BBD1 */ jal func_8002EF44 -/* AC7D8C 80050BEC 8E250090 */ lw $a1, 0x90($s1) -/* AC7D90 80050BF0 26320050 */ addiu $s2, $s1, 0x50 -/* AC7D94 80050BF4 2633005C */ addiu $s3, $s1, 0x5c -/* AC7D98 80050BF8 02603025 */ move $a2, $s3 -/* AC7D9C 80050BFC 02402825 */ move $a1, $s2 -/* AC7DA0 80050C00 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC7DA4 80050C04 27A4005C */ addiu $a0, $sp, 0x5c -/* AC7DA8 80050C08 86380000 */ lh $t8, ($s1) -/* AC7DAC 80050C0C 3C018012 */ lui $at, %hi(D_8011D3A0) -/* AC7DB0 80050C10 02202025 */ move $a0, $s1 -/* AC7DB4 80050C14 AC38D3A0 */ sw $t8, %lo(D_8011D3A0)($at) -/* AC7DB8 80050C18 8628015E */ lh $t0, 0x15e($s1) -/* AC7DBC 80050C1C 55000056 */ bnezl $t0, .L80050D78 -/* AC7DC0 80050C20 26300004 */ addiu $s0, $s1, 4 -/* AC7DC4 80050C24 0C011207 */ jal func_8004481C -/* AC7DC8 80050C28 27A500AA */ addiu $a1, $sp, 0xaa -/* AC7DCC 80050C2C 26300004 */ addiu $s0, $s1, 4 -/* AC7DD0 80050C30 AFA200A4 */ sw $v0, 0xa4($sp) -/* AC7DD4 80050C34 02002025 */ move $a0, $s0 -/* AC7DD8 80050C38 0C010EF1 */ jal func_80043BC4 -/* AC7DDC 80050C3C 24450006 */ addiu $a1, $v0, 6 -/* AC7DE0 80050C40 97B900AA */ lhu $t9, 0xaa($sp) -/* AC7DE4 80050C44 8FAA00A4 */ lw $t2, 0xa4($sp) -/* AC7DE8 80050C48 27A40098 */ addiu $a0, $sp, 0x98 -/* AC7DEC 80050C4C 00194880 */ sll $t1, $t9, 2 -/* AC7DF0 80050C50 01394823 */ subu $t1, $t1, $t9 -/* AC7DF4 80050C54 00094840 */ sll $t1, $t1, 1 -/* AC7DF8 80050C58 012A2821 */ addu $a1, $t1, $t2 -/* AC7DFC 80050C5C 0C010EF1 */ jal func_80043BC4 -/* AC7E00 80050C60 24A5FFF4 */ addiu $a1, $a1, -0xc -/* AC7E04 80050C64 3C014120 */ li $at, 0x41200000 # 0.000000 -/* AC7E08 80050C68 44813000 */ mtc1 $at, $f6 -/* AC7E0C 80050C6C 240B238C */ li $t3, 9100 -/* AC7E10 80050C70 A7AB0068 */ sh $t3, 0x68($sp) -/* AC7E14 80050C74 27A40098 */ addiu $a0, $sp, 0x98 -/* AC7E18 80050C78 02002825 */ move $a1, $s0 -/* AC7E1C 80050C7C 0C01129D */ jal func_80044A74 -/* AC7E20 80050C80 E7A60064 */ swc1 $f6, 0x64($sp) -/* AC7E24 80050C84 26240094 */ addiu $a0, $s1, 0x94 -/* AC7E28 80050C88 A7A2006A */ sh $v0, 0x6a($sp) -/* AC7E2C 80050C8C AFA40034 */ sw $a0, 0x34($sp) -/* AC7E30 80050C90 0C01EFE4 */ jal OLib_Vec3fDist -/* AC7E34 80050C94 02002825 */ move $a1, $s0 -/* AC7E38 80050C98 8FA40034 */ lw $a0, 0x34($sp) -/* AC7E3C 80050C9C 27A50098 */ addiu $a1, $sp, 0x98 -/* AC7E40 80050CA0 0C01EFE4 */ jal OLib_Vec3fDist -/* AC7E44 80050CA4 E7A00088 */ swc1 $f0, 0x88($sp) -/* AC7E48 80050CA8 C7A20088 */ lwc1 $f2, 0x88($sp) -/* AC7E4C 80050CAC C7AA0098 */ lwc1 $f10, 0x98($sp) -/* AC7E50 80050CB0 2419000A */ li $t9, 10 -/* AC7E54 80050CB4 4602003C */ c.lt.s $f0, $f2 -/* AC7E58 80050CB8 00000000 */ nop -/* AC7E5C 80050CBC 45020016 */ bc1fl .L80050D18 -/* AC7E60 80050CC0 C6040000 */ lwc1 $f4, ($s0) -/* AC7E64 80050CC4 C6080000 */ lwc1 $f8, ($s0) -/* AC7E68 80050CC8 C7AA0098 */ lwc1 $f10, 0x98($sp) -/* AC7E6C 80050CCC C6060004 */ lwc1 $f6, 4($s0) -/* AC7E70 80050CD0 27AC0098 */ addiu $t4, $sp, 0x98 -/* AC7E74 80050CD4 460A4101 */ sub.s $f4, $f8, $f10 -/* AC7E78 80050CD8 E604000C */ swc1 $f4, 0xc($s0) -/* AC7E7C 80050CDC C7A8009C */ lwc1 $f8, 0x9c($sp) -/* AC7E80 80050CE0 C6040008 */ lwc1 $f4, 8($s0) -/* AC7E84 80050CE4 46083281 */ sub.s $f10, $f6, $f8 -/* AC7E88 80050CE8 E60A0010 */ swc1 $f10, 0x10($s0) -/* AC7E8C 80050CEC C7A600A0 */ lwc1 $f6, 0xa0($sp) -/* AC7E90 80050CF0 46062201 */ sub.s $f8, $f4, $f6 -/* AC7E94 80050CF4 E6080014 */ swc1 $f8, 0x14($s0) -/* AC7E98 80050CF8 8D8E0000 */ lw $t6, ($t4) -/* AC7E9C 80050CFC AE0E0000 */ sw $t6, ($s0) -/* AC7EA0 80050D00 8D8D0004 */ lw $t5, 4($t4) -/* AC7EA4 80050D04 AE0D0004 */ sw $t5, 4($s0) -/* AC7EA8 80050D08 8D8E0008 */ lw $t6, 8($t4) -/* AC7EAC 80050D0C 1000000F */ b .L80050D4C -/* AC7EB0 80050D10 AE0E0008 */ sw $t6, 8($s0) -/* AC7EB4 80050D14 C6040000 */ lwc1 $f4, ($s0) -.L80050D18: -/* AC7EB8 80050D18 46045181 */ sub.s $f6, $f10, $f4 -/* AC7EBC 80050D1C C60A0004 */ lwc1 $f10, 4($s0) -/* AC7EC0 80050D20 E606000C */ swc1 $f6, 0xc($s0) -/* AC7EC4 80050D24 C7A8009C */ lwc1 $f8, 0x9c($sp) -/* AC7EC8 80050D28 460A4101 */ sub.s $f4, $f8, $f10 -/* AC7ECC 80050D2C C6080008 */ lwc1 $f8, 8($s0) -/* AC7ED0 80050D30 E6040010 */ swc1 $f4, 0x10($s0) -/* AC7ED4 80050D34 C7A600A0 */ lwc1 $f6, 0xa0($sp) -/* AC7ED8 80050D38 46083281 */ sub.s $f10, $f6, $f8 -/* AC7EDC 80050D3C E60A0014 */ swc1 $f10, 0x14($s0) -/* AC7EE0 80050D40 87AF006A */ lh $t7, 0x6a($sp) -/* AC7EE4 80050D44 25F88001 */ addiu $t8, $t7, -0x7fff -/* AC7EE8 80050D48 A7B8006A */ sh $t8, 0x6a($sp) -.L80050D4C: -/* AC7EEC 80050D4C 87A8006A */ lh $t0, 0x6a($sp) -/* AC7EF0 80050D50 44802000 */ mtc1 $zero, $f4 -/* AC7EF4 80050D54 A6190032 */ sh $t9, 0x32($s0) -/* AC7EF8 80050D58 A600002C */ sh $zero, 0x2c($s0) -/* AC7EFC 80050D5C A600002E */ sh $zero, 0x2e($s0) -/* AC7F00 80050D60 A6080030 */ sh $t0, 0x30($s0) -/* AC7F04 80050D64 E6040028 */ swc1 $f4, 0x28($s0) -/* AC7F08 80050D68 8629015E */ lh $t1, 0x15e($s1) -/* AC7F0C 80050D6C 252A0001 */ addiu $t2, $t1, 1 -/* AC7F10 80050D70 A62A015E */ sh $t2, 0x15e($s1) -/* AC7F14 80050D74 26300004 */ addiu $s0, $s1, 4 -.L80050D78: -/* AC7F18 80050D78 860B0032 */ lh $t3, 0x32($s0) -/* AC7F1C 80050D7C 240C238C */ li $t4, 9100 -/* AC7F20 80050D80 27A4008C */ addiu $a0, $sp, 0x8c -/* AC7F24 80050D84 11600062 */ beqz $t3, .L80050F10 -/* AC7F28 80050D88 3C013F00 */ lui $at, 0x3f00 -/* AC7F2C 80050D8C 3C014120 */ li $at, 0x41200000 # 0.000000 -/* AC7F30 80050D90 44813000 */ mtc1 $at, $f6 -/* AC7F34 80050D94 A7AC0068 */ sh $t4, 0x68($sp) -/* AC7F38 80050D98 27A5006C */ addiu $a1, $sp, 0x6c -/* AC7F3C 80050D9C E7A60064 */ swc1 $f6, 0x64($sp) -/* AC7F40 80050DA0 860D0030 */ lh $t5, 0x30($s0) -/* AC7F44 80050DA4 27A60064 */ addiu $a2, $sp, 0x64 -/* AC7F48 80050DA8 0C010F0A */ jal func_80043C28 -/* AC7F4C 80050DAC A7AD006A */ sh $t5, 0x6a($sp) -/* AC7F50 80050DB0 860E0032 */ lh $t6, 0x32($s0) -/* AC7F54 80050DB4 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC7F58 80050DB8 44812000 */ mtc1 $at, $f4 -/* AC7F5C 80050DBC 448E4000 */ mtc1 $t6, $f8 -/* AC7F60 80050DC0 C6400000 */ lwc1 $f0, ($s2) -/* AC7F64 80050DC4 C7A6008C */ lwc1 $f6, 0x8c($sp) -/* AC7F68 80050DC8 468042A0 */ cvt.s.w $f10, $f8 -/* AC7F6C 80050DCC C64C0004 */ lwc1 $f12, 4($s2) -/* AC7F70 80050DD0 C64E0008 */ lwc1 $f14, 8($s2) -/* AC7F74 80050DD4 26270074 */ addiu $a3, $s1, 0x74 -/* AC7F78 80050DD8 00E02025 */ move $a0, $a3 -/* AC7F7C 80050DDC 46003201 */ sub.s $f8, $f6, $f0 -/* AC7F80 80050DE0 02402825 */ move $a1, $s2 -/* AC7F84 80050DE4 27A6005C */ addiu $a2, $sp, 0x5c -/* AC7F88 80050DE8 46045080 */ add.s $f2, $f10, $f4 -/* AC7F8C 80050DEC 46024283 */ div.s $f10, $f8, $f2 -/* AC7F90 80050DF0 460A0100 */ add.s $f4, $f0, $f10 -/* AC7F94 80050DF4 E6440000 */ swc1 $f4, ($s2) -/* AC7F98 80050DF8 C7A60090 */ lwc1 $f6, 0x90($sp) -/* AC7F9C 80050DFC 460C3201 */ sub.s $f8, $f6, $f12 -/* AC7FA0 80050E00 46024283 */ div.s $f10, $f8, $f2 -/* AC7FA4 80050E04 460A6100 */ add.s $f4, $f12, $f10 -/* AC7FA8 80050E08 E6440004 */ swc1 $f4, 4($s2) -/* AC7FAC 80050E0C C7A60094 */ lwc1 $f6, 0x94($sp) -/* AC7FB0 80050E10 460E3201 */ sub.s $f8, $f6, $f14 -/* AC7FB4 80050E14 46024283 */ div.s $f10, $f8, $f2 -/* AC7FB8 80050E18 460A7100 */ add.s $f4, $f14, $f10 -/* AC7FBC 80050E1C E6440008 */ swc1 $f4, 8($s2) -/* AC7FC0 80050E20 C7A6005C */ lwc1 $f6, 0x5c($sp) -/* AC7FC4 80050E24 87AF007A */ lh $t7, 0x7a($sp) -/* AC7FC8 80050E28 87A90062 */ lh $t1, 0x62($sp) -/* AC7FCC 80050E2C 46023203 */ div.s $f8, $f6, $f2 -/* AC7FD0 80050E30 25F88001 */ addiu $t8, $t7, -0x7fff -/* AC7FD4 80050E34 00184400 */ sll $t0, $t8, 0x10 -/* AC7FD8 80050E38 0008CC03 */ sra $t9, $t0, 0x10 -/* AC7FDC 80050E3C 03295023 */ subu $t2, $t9, $t1 -/* AC7FE0 80050E40 000A5C00 */ sll $t3, $t2, 0x10 -/* AC7FE4 80050E44 000B6403 */ sra $t4, $t3, 0x10 -/* AC7FE8 80050E48 87A80060 */ lh $t0, 0x60($sp) -/* AC7FEC 80050E4C 87B80078 */ lh $t8, 0x78($sp) -/* AC7FF0 80050E50 0308C823 */ subu $t9, $t8, $t0 -/* AC7FF4 80050E54 00195400 */ sll $t2, $t9, 0x10 -/* AC7FF8 80050E58 000A5C03 */ sra $t3, $t2, 0x10 -/* AC7FFC 80050E5C 46083281 */ sub.s $f10, $f6, $f8 -/* AC8000 80050E60 E7AA005C */ swc1 $f10, 0x5c($sp) -/* AC8004 80050E64 860D0032 */ lh $t5, 0x32($s0) -/* AC8008 80050E68 018D001A */ div $zero, $t4, $t5 -/* AC800C 80050E6C 00007012 */ mflo $t6 -/* AC8010 80050E70 012E7821 */ addu $t7, $t1, $t6 -/* AC8014 80050E74 15A00002 */ bnez $t5, .L80050E80 -/* AC8018 80050E78 00000000 */ nop -/* AC801C 80050E7C 0007000D */ break 7 -.L80050E80: -/* AC8020 80050E80 2401FFFF */ li $at, -1 -/* AC8024 80050E84 15A10004 */ bne $t5, $at, .L80050E98 -/* AC8028 80050E88 3C018000 */ lui $at, 0x8000 -/* AC802C 80050E8C 15810002 */ bne $t4, $at, .L80050E98 -/* AC8030 80050E90 00000000 */ nop -/* AC8034 80050E94 0006000D */ break 6 -.L80050E98: -/* AC8038 80050E98 A7AF0062 */ sh $t7, 0x62($sp) -/* AC803C 80050E9C 860C0032 */ lh $t4, 0x32($s0) -/* AC8040 80050EA0 AFA70034 */ sw $a3, 0x34($sp) -/* AC8044 80050EA4 016C001A */ div $zero, $t3, $t4 -/* AC8048 80050EA8 00006812 */ mflo $t5 -/* AC804C 80050EAC 010D4821 */ addu $t1, $t0, $t5 -/* AC8050 80050EB0 15800002 */ bnez $t4, .L80050EBC -/* AC8054 80050EB4 00000000 */ nop -/* AC8058 80050EB8 0007000D */ break 7 -.L80050EBC: -/* AC805C 80050EBC 2401FFFF */ li $at, -1 -/* AC8060 80050EC0 15810004 */ bne $t4, $at, .L80050ED4 -/* AC8064 80050EC4 3C018000 */ li $at, 0x80000000 # 0.000000 -/* AC8068 80050EC8 15610002 */ bne $t3, $at, .L80050ED4 -/* AC806C 80050ECC 00000000 */ nop -/* AC8070 80050ED0 0006000D */ break 6 -.L80050ED4: -/* AC8074 80050ED4 A7A90060 */ sh $t1, 0x60($sp) -/* AC8078 80050ED8 0C010F0A */ jal func_80043C28 -/* AC807C 80050EDC 00000000 */ nop -/* AC8080 80050EE0 8FA70034 */ lw $a3, 0x34($sp) -/* AC8084 80050EE4 00001025 */ move $v0, $zero -/* AC8088 80050EE8 8CEF0000 */ lw $t7, ($a3) -/* AC808C 80050EEC AE6F0000 */ sw $t7, ($s3) -/* AC8090 80050EF0 8CEE0004 */ lw $t6, 4($a3) -/* AC8094 80050EF4 AE6E0004 */ sw $t6, 4($s3) -/* AC8098 80050EF8 8CEF0008 */ lw $t7, 8($a3) -/* AC809C 80050EFC AE6F0008 */ sw $t7, 8($s3) -/* AC80A0 80050F00 86180032 */ lh $t8, 0x32($s0) -/* AC80A4 80050F04 2719FFFF */ addiu $t9, $t8, -1 -/* AC80A8 80050F08 1000009E */ b .L80051184 -/* AC80AC 80050F0C A6190032 */ sh $t9, 0x32($s0) -.L80050F10: -/* AC80B0 80050F10 C6040024 */ lwc1 $f4, 0x24($s0) -/* AC80B4 80050F14 44813000 */ mtc1 $at, $f6 -/* AC80B8 80050F18 27A4006C */ addiu $a0, $sp, 0x6c -/* AC80BC 80050F1C 4606203C */ c.lt.s $f4, $f6 -/* AC80C0 80050F20 00000000 */ nop -/* AC80C4 80050F24 45000003 */ bc1f .L80050F34 -/* AC80C8 80050F28 00000000 */ nop -/* AC80CC 80050F2C 10000095 */ b .L80051184 -/* AC80D0 80050F30 00001025 */ move $v0, $zero -.L80050F34: -/* AC80D4 80050F34 0C00BBD1 */ jal func_8002EF44 -/* AC80D8 80050F38 8E250090 */ lw $a1, 0x90($s1) -/* AC80DC 80050F3C 26270074 */ addiu $a3, $s1, 0x74 -/* AC80E0 80050F40 00E03025 */ move $a2, $a3 -/* AC80E4 80050F44 AFA70034 */ sw $a3, 0x34($sp) -/* AC80E8 80050F48 02002025 */ move $a0, $s0 -/* AC80EC 80050F4C 0C032AE5 */ jal Math3D_LineClosestToPoint -/* AC80F0 80050F50 27A5006C */ addiu $a1, $sp, 0x6c -/* AC80F4 80050F54 8FA50034 */ lw $a1, 0x34($sp) -/* AC80F8 80050F58 C60A000C */ lwc1 $f10, 0xc($s0) -/* AC80FC 80050F5C 3C0140A0 */ li $at, 0x40A00000 # 0.000000 -/* AC8100 80050F60 C4A80000 */ lwc1 $f8, ($a1) -/* AC8104 80050F64 2408238C */ li $t0, 9100 -/* AC8108 80050F68 27A40098 */ addiu $a0, $sp, 0x98 -/* AC810C 80050F6C 460A4100 */ add.s $f4, $f8, $f10 -/* AC8110 80050F70 27A60064 */ addiu $a2, $sp, 0x64 -/* AC8114 80050F74 E6440000 */ swc1 $f4, ($s2) -/* AC8118 80050F78 C6080010 */ lwc1 $f8, 0x10($s0) -/* AC811C 80050F7C C4A60004 */ lwc1 $f6, 4($a1) -/* AC8120 80050F80 46083280 */ add.s $f10, $f6, $f8 -/* AC8124 80050F84 E64A0004 */ swc1 $f10, 4($s2) -/* AC8128 80050F88 C6060014 */ lwc1 $f6, 0x14($s0) -/* AC812C 80050F8C C4A40008 */ lwc1 $f4, 8($a1) -/* AC8130 80050F90 44815000 */ mtc1 $at, $f10 -/* AC8134 80050F94 46062200 */ add.s $f8, $f4, $f6 -/* AC8138 80050F98 E6480008 */ swc1 $f8, 8($s2) -/* AC813C 80050F9C 8CAB0000 */ lw $t3, ($a1) -/* AC8140 80050FA0 AE6B0000 */ sw $t3, ($s3) -/* AC8144 80050FA4 8CAA0004 */ lw $t2, 4($a1) -/* AC8148 80050FA8 AE6A0004 */ sw $t2, 4($s3) -/* AC814C 80050FAC 8CAB0008 */ lw $t3, 8($a1) -/* AC8150 80050FB0 AE6B0008 */ sw $t3, 8($s3) -/* AC8154 80050FB4 860C0030 */ lh $t4, 0x30($s0) -/* AC8158 80050FB8 A7A80068 */ sh $t0, 0x68($sp) -/* AC815C 80050FBC E7AA0064 */ swc1 $f10, 0x64($sp) -/* AC8160 80050FC0 0C010F0A */ jal func_80043C28 -/* AC8164 80050FC4 A7AC006A */ sh $t4, 0x6a($sp) -/* AC8168 80050FC8 860D002C */ lh $t5, 0x2c($s0) -/* AC816C 80050FCC 25A90BB8 */ addiu $t1, $t5, 0xbb8 -/* AC8170 80050FD0 A609002C */ sh $t1, 0x2c($s0) -/* AC8174 80050FD4 0C01DE0D */ jal Math_Coss -/* AC8178 80050FD8 8604002C */ lh $a0, 0x2c($s0) -/* AC817C 80050FDC C66C0000 */ lwc1 $f12, ($s3) -/* AC8180 80050FE0 C7A40098 */ lwc1 $f4, 0x98($sp) -/* AC8184 80050FE4 46000406 */ mov.s $f16, $f0 -/* AC8188 80050FE8 46000005 */ abs.s $f0, $f0 -/* AC818C 80050FEC 460C2181 */ sub.s $f6, $f4, $f12 -/* AC8190 80050FF0 8FA70034 */ lw $a3, 0x34($sp) -/* AC8194 80050FF4 C66E0004 */ lwc1 $f14, 4($s3) -/* AC8198 80050FF8 C6620008 */ lwc1 $f2, 8($s3) -/* AC819C 80050FFC 46003202 */ mul.s $f8, $f6, $f0 -/* AC81A0 80051000 46008005 */ abs.s $f0, $f16 -/* AC81A4 80051004 46086280 */ add.s $f10, $f12, $f8 -/* AC81A8 80051008 E66A0000 */ swc1 $f10, ($s3) -/* AC81AC 8005100C C7A4009C */ lwc1 $f4, 0x9c($sp) -/* AC81B0 80051010 460E2181 */ sub.s $f6, $f4, $f14 -/* AC81B4 80051014 46003202 */ mul.s $f8, $f6, $f0 -/* AC81B8 80051018 46087280 */ add.s $f10, $f14, $f8 -/* AC81BC 8005101C E66A0004 */ swc1 $f10, 4($s3) -/* AC81C0 80051020 C7A400A0 */ lwc1 $f4, 0xa0($sp) -/* AC81C4 80051024 46022181 */ sub.s $f6, $f4, $f2 -/* AC81C8 80051028 46003202 */ mul.s $f8, $f6, $f0 -/* AC81CC 8005102C 46081280 */ add.s $f10, $f2, $f8 -/* AC81D0 80051030 E66A0008 */ swc1 $f10, 8($s3) -/* AC81D4 80051034 C6120028 */ lwc1 $f18, 0x28($s0) -/* AC81D8 80051038 4610903C */ c.lt.s $f18, $f16 -/* AC81DC 8005103C 00000000 */ nop -/* AC81E0 80051040 45020013 */ bc1fl .L80051090 -/* AC81E4 80051044 4612803C */ c.lt.s $f16, $f18 -/* AC81E8 80051048 860E002E */ lh $t6, 0x2e($s0) -/* AC81EC 8005104C 240F0001 */ li $t7, 1 -/* AC81F0 80051050 55C0000F */ bnezl $t6, .L80051090 -/* AC81F4 80051054 4612803C */ c.lt.s $f16, $f18 -/* AC81F8 80051058 8E220090 */ lw $v0, 0x90($s1) -/* AC81FC 8005105C A60F002E */ sh $t7, 0x2e($s0) -/* AC8200 80051060 3C064080 */ lui $a2, 0x4080 -/* AC8204 80051064 9445089E */ lhu $a1, 0x89e($v0) -/* AC8208 80051068 E7B00080 */ swc1 $f16, 0x80($sp) -/* AC820C 8005106C AFA70034 */ sw $a3, 0x34($sp) -/* AC8210 80051070 24A508B0 */ addiu $a1, $a1, 0x8b0 -/* AC8214 80051074 30A5FFFF */ andi $a1, $a1, 0xffff -/* AC8218 80051078 0C03D004 */ jal func_800F4010 -/* AC821C 8005107C 244400E4 */ addiu $a0, $v0, 0xe4 -/* AC8220 80051080 8FA70034 */ lw $a3, 0x34($sp) -/* AC8224 80051084 10000006 */ b .L800510A0 -/* AC8228 80051088 C7B00080 */ lwc1 $f16, 0x80($sp) -/* AC822C 8005108C 4612803C */ c.lt.s $f16, $f18 -.L80051090: -/* AC8230 80051090 00000000 */ nop -/* AC8234 80051094 45020003 */ bc1fl .L800510A4 -/* AC8238 80051098 E6100028 */ swc1 $f16, 0x28($s0) -/* AC823C 8005109C A600002E */ sh $zero, 0x2e($s0) -.L800510A0: -/* AC8240 800510A0 E6100028 */ swc1 $f16, 0x28($s0) -.L800510A4: -/* AC8244 800510A4 8E380090 */ lw $t8, 0x90($s1) -/* AC8248 800510A8 8CEA0000 */ lw $t2, ($a3) -/* AC824C 800510AC 3C018014 */ lui $at, %hi(D_8013A1B0) -/* AC8250 800510B0 AF0A0024 */ sw $t2, 0x24($t8) -/* AC8254 800510B4 8CF90004 */ lw $t9, 4($a3) -/* AC8258 800510B8 AF190028 */ sw $t9, 0x28($t8) -/* AC825C 800510BC 8CEA0008 */ lw $t2, 8($a3) -/* AC8260 800510C0 AF0A002C */ sw $t2, 0x2c($t8) -/* AC8264 800510C4 8E2B0090 */ lw $t3, 0x90($s1) -/* AC8268 800510C8 C6240104 */ lwc1 $f4, 0x104($s1) -/* AC826C 800510CC E5640028 */ swc1 $f4, 0x28($t3) -/* AC8270 800510D0 8E280090 */ lw $t0, 0x90($s1) -/* AC8274 800510D4 87AC006A */ lh $t4, 0x6a($sp) -/* AC8278 800510D8 A50C00B6 */ sh $t4, 0xb6($t0) -/* AC827C 800510DC C428A1B0 */ lwc1 $f8, %lo(D_8013A1B0)($at) -/* AC8280 800510E0 C6060024 */ lwc1 $f6, 0x24($s0) -/* AC8284 800510E4 3C014370 */ li $at, 0x43700000 # 0.000000 -/* AC8288 800510E8 44812000 */ mtc1 $at, $f4 -/* AC828C 800510EC 46083282 */ mul.s $f10, $f6, $f8 -/* AC8290 800510F0 860D0030 */ lh $t5, 0x30($s0) -/* AC8294 800510F4 46102182 */ mul.s $f6, $f4, $f16 -/* AC8298 800510F8 448D4000 */ mtc1 $t5, $f8 -/* AC829C 800510FC 00000000 */ nop -/* AC82A0 80051100 46804120 */ cvt.s.w $f4, $f8 -/* AC82A4 80051104 460A3402 */ mul.s $f16, $f6, $f10 -/* AC82A8 80051108 46102180 */ add.s $f6, $f4, $f16 -/* AC82AC 8005110C 4600328D */ trunc.w.s $f10, $f6 -/* AC82B0 80051110 44045000 */ mfc1 $a0, $f10 -/* AC82B4 80051114 00000000 */ nop -/* AC82B8 80051118 00042400 */ sll $a0, $a0, 0x10 -/* AC82BC 8005111C 00042403 */ sra $a0, $a0, 0x10 -/* AC82C0 80051120 0C01DE1C */ jal Math_Sins -/* AC82C4 80051124 A7A4005A */ sh $a0, 0x5a($sp) -/* AC82C8 80051128 3C014120 */ li $at, 0x41200000 # 0.000000 -/* AC82CC 8005112C 44814000 */ mtc1 $at, $f8 -/* AC82D0 80051130 C6660000 */ lwc1 $f6, ($s3) -/* AC82D4 80051134 87A4005A */ lh $a0, 0x5a($sp) -/* AC82D8 80051138 46080102 */ mul.s $f4, $f0, $f8 -/* AC82DC 8005113C 46062280 */ add.s $f10, $f4, $f6 -/* AC82E0 80051140 E64A0000 */ swc1 $f10, ($s2) -/* AC82E4 80051144 C6680004 */ lwc1 $f8, 4($s3) -/* AC82E8 80051148 0C01DE0D */ jal Math_Coss -/* AC82EC 8005114C E6480004 */ swc1 $f8, 4($s2) -/* AC82F0 80051150 3C014120 */ li $at, 0x41200000 # 0.000000 -/* AC82F4 80051154 44812000 */ mtc1 $at, $f4 -/* AC82F8 80051158 C66A0008 */ lwc1 $f10, 8($s3) -/* AC82FC 8005115C 00002025 */ move $a0, $zero -/* AC8300 80051160 46040182 */ mul.s $f6, $f0, $f4 -/* AC8304 80051164 3C063F00 */ lui $a2, 0x3f00 -/* AC8308 80051168 2407000A */ li $a3, 10 -/* AC830C 8005116C 460A3200 */ add.s $f8, $f6, $f10 -/* AC8310 80051170 E6480008 */ swc1 $f8, 8($s2) -/* AC8314 80051174 0C010E47 */ jal func_8004391C -/* AC8318 80051178 8625015A */ lh $a1, 0x15a($s1) -/* AC831C 8005117C A622015A */ sh $v0, 0x15a($s1) -/* AC8320 80051180 24020001 */ li $v0, 1 -.L80051184: -/* AC8324 80051184 8FBF0024 */ lw $ra, 0x24($sp) -/* AC8328 80051188 8FB00014 */ lw $s0, 0x14($sp) -/* AC832C 8005118C 8FB10018 */ lw $s1, 0x18($sp) -/* AC8330 80051190 8FB2001C */ lw $s2, 0x1c($sp) -/* AC8334 80051194 8FB30020 */ lw $s3, 0x20($sp) -/* AC8338 80051198 03E00008 */ jr $ra -/* AC833C 8005119C 27BD00B8 */ addiu $sp, $sp, 0xb8 diff --git a/asm/non_matchings/code/z_camera/Camera_Unique0.s b/asm/non_matchings/code/z_camera/Camera_Unique0.s deleted file mode 100644 index 25481cbaa2..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Unique0.s +++ /dev/null @@ -1,377 +0,0 @@ -.late_rodata -glabel D_8013A224 - .float 0.01 - -glabel D_8013A228 - .float 0.001 - -.text -glabel Camera_Unique0 -/* AC9600 80052460 27BDFF78 */ addiu $sp, $sp, -0x88 -/* AC9604 80052464 AFB00018 */ sw $s0, 0x18($sp) -/* AC9608 80052468 00808025 */ move $s0, $a0 -/* AC960C 8005246C AFBF001C */ sw $ra, 0x1c($sp) -/* AC9610 80052470 0C00B721 */ jal Player_GetCameraYOffset -/* AC9614 80052474 8C840090 */ lw $a0, 0x90($a0) -/* AC9618 80052478 8E0E0090 */ lw $t6, 0x90($s0) -/* AC961C 8005247C 46000086 */ mov.s $f2, $f0 -/* AC9620 80052480 2401000A */ li $at, 10 -/* AC9624 80052484 AFAE007C */ sw $t6, 0x7c($sp) -/* AC9628 80052488 8602015E */ lh $v0, 0x15e($s0) -/* AC962C 8005248C 02002025 */ move $a0, $s0 -/* AC9630 80052490 5040000A */ beql $v0, $zero, .L800524BC -/* AC9634 80052494 86180142 */ lh $t8, 0x142($s0) -/* AC9638 80052498 10410007 */ beq $v0, $at, .L800524B8 -/* AC963C 8005249C 24010014 */ li $at, 20 -/* AC9640 800524A0 10410005 */ beq $v0, $at, .L800524B8 -/* AC9644 800524A4 3C0F8016 */ lui $t7, %hi(gGameInfo) # $t7, 0x8016 -/* AC9648 800524A8 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7) -/* AC964C 800524AC 85E20314 */ lh $v0, 0x314($t7) -/* AC9650 800524B0 50400010 */ beql $v0, $zero, .L800524F4 -/* AC9654 800524B4 260F000C */ addiu $t7, $s0, 0xc -.L800524B8: -/* AC9658 800524B8 86180142 */ lh $t8, 0x142($s0) -.L800524BC: -/* AC965C 800524BC 3C098012 */ lui $t1, %hi(sCameraSettings+4) -/* AC9660 800524C0 860A0144 */ lh $t2, 0x144($s0) -/* AC9664 800524C4 0018C8C0 */ sll $t9, $t8, 3 -/* AC9668 800524C8 01394821 */ addu $t1, $t1, $t9 -/* AC966C 800524CC 8D29D068 */ lw $t1, %lo(sCameraSettings+4)($t1) -/* AC9670 800524D0 000A58C0 */ sll $t3, $t2, 3 -/* AC9674 800524D4 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 -/* AC9678 800524D8 012B6021 */ addu $t4, $t1, $t3 -/* AC967C 800524DC 8D830004 */ lw $v1, 4($t4) -/* AC9680 800524E0 846D0000 */ lh $t5, ($v1) -/* AC9684 800524E4 A60D000C */ sh $t5, 0xc($s0) -/* AC9688 800524E8 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* AC968C 800524EC 85C20314 */ lh $v0, 0x314($t6) -/* AC9690 800524F0 260F000C */ addiu $t7, $s0, 0xc -.L800524F4: -/* AC9694 800524F4 10400004 */ beqz $v0, .L80052508 -/* AC9698 800524F8 AFAF0030 */ sw $t7, 0x30($sp) -/* AC969C 800524FC 0C011495 */ jal Camera_CopyPREGToModeValues -/* AC96A0 80052500 E7A20084 */ swc1 $f2, 0x84($sp) -/* AC96A4 80052504 C7A20084 */ lwc1 $f2, 0x84($sp) -.L80052508: -/* AC96A8 80052508 26060094 */ addiu $a2, $s0, 0x94 -/* AC96AC 8005250C 8CCA0000 */ lw $t2, ($a2) -/* AC96B0 80052510 27B80070 */ addiu $t8, $sp, 0x70 -/* AC96B4 80052514 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 -/* AC96B8 80052518 AF0A0000 */ sw $t2, ($t8) -/* AC96BC 8005251C 8CD90004 */ lw $t9, 4($a2) -/* AC96C0 80052520 02002025 */ move $a0, $s0 -/* AC96C4 80052524 AF190004 */ sw $t9, 4($t8) -/* AC96C8 80052528 8CCA0008 */ lw $t2, 8($a2) -/* AC96CC 8005252C AF0A0008 */ sw $t2, 8($t8) -/* AC96D0 80052530 C7A40074 */ lwc1 $f4, 0x74($sp) -/* AC96D4 80052534 8FA90030 */ lw $t1, 0x30($sp) -/* AC96D8 80052538 46022180 */ add.s $f6, $f4, $f2 -/* AC96DC 8005253C E7A60074 */ swc1 $f6, 0x74($sp) -/* AC96E0 80052540 852B0000 */ lh $t3, ($t1) -/* AC96E4 80052544 AC2BD3A0 */ sw $t3, %lo(D_8011D3A0)($at) -/* AC96E8 80052548 860C015E */ lh $t4, 0x15e($s0) -/* AC96EC 8005254C 55800064 */ bnezl $t4, .L800526E0 -/* AC96F0 80052550 8FAB007C */ lw $t3, 0x7c($sp) -/* AC96F4 80052554 0C010ED8 */ jal func_80043B60 -/* AC96F8 80052558 AFA60034 */ sw $a2, 0x34($sp) -/* AC96FC 8005255C 860D014C */ lh $t5, 0x14c($s0) -/* AC9700 80052560 02002025 */ move $a0, $s0 -/* AC9704 80052564 31AEFFFB */ andi $t6, $t5, 0xfffb -/* AC9708 80052568 0C0111DB */ jal func_8004476C -/* AC970C 8005256C A60E014C */ sh $t6, 0x14c($s0) -/* AC9710 80052570 26070010 */ addiu $a3, $s0, 0x10 -/* AC9714 80052574 24E40010 */ addiu $a0, $a3, 0x10 -/* AC9718 80052578 AFA40024 */ sw $a0, 0x24($sp) -/* AC971C 8005257C AFA7002C */ sw $a3, 0x2c($sp) -/* AC9720 80052580 00402825 */ move $a1, $v0 -/* AC9724 80052584 0C010EF1 */ jal func_80043BC4 -/* AC9728 80052588 AFA20064 */ sw $v0, 0x64($sp) -/* AC972C 8005258C 8FAF0024 */ lw $t7, 0x24($sp) -/* AC9730 80052590 8FA60064 */ lw $a2, 0x64($sp) -/* AC9734 80052594 27A40038 */ addiu $a0, $sp, 0x38 -/* AC9738 80052598 8DF90000 */ lw $t9, ($t7) -/* AC973C 8005259C 8FA7002C */ lw $a3, 0x2c($sp) -/* AC9740 800525A0 2605005C */ addiu $a1, $s0, 0x5c -/* AC9744 800525A4 AC990000 */ sw $t9, ($a0) -/* AC9748 800525A8 8DF80004 */ lw $t8, 4($t7) -/* AC974C 800525AC 8C890000 */ lw $t1, ($a0) -/* AC9750 800525B0 27AD005C */ addiu $t5, $sp, 0x5c -/* AC9754 800525B4 AC980004 */ sw $t8, 4($a0) -/* AC9758 800525B8 8DF90008 */ lw $t9, 8($t7) -/* AC975C 800525BC 2408FFFF */ li $t0, -1 -/* AC9760 800525C0 AC990008 */ sw $t9, 8($a0) -/* AC9764 800525C4 AE090074 */ sw $t1, 0x74($s0) -/* AC9768 800525C8 8C8A0004 */ lw $t2, 4($a0) -/* AC976C 800525CC AE0A0078 */ sw $t2, 0x78($s0) -/* AC9770 800525D0 8C890008 */ lw $t1, 8($a0) -/* AC9774 800525D4 AE09007C */ sw $t1, 0x7c($s0) -/* AC9778 800525D8 8C8C0000 */ lw $t4, ($a0) -/* AC977C 800525DC ACAC0000 */ sw $t4, ($a1) -/* AC9780 800525E0 8C8B0004 */ lw $t3, 4($a0) -/* AC9784 800525E4 ACAB0004 */ sw $t3, 4($a1) -/* AC9788 800525E8 8C8C0008 */ lw $t4, 8($a0) -/* AC978C 800525EC 27A40070 */ addiu $a0, $sp, 0x70 -/* AC9790 800525F0 ACAC0008 */ sw $t4, 8($a1) -/* AC9794 800525F4 88CF0006 */ lwl $t7, 6($a2) -/* AC9798 800525F8 98CF0009 */ lwr $t7, 9($a2) -/* AC979C 800525FC ADAF0000 */ sw $t7, ($t5) -/* AC97A0 80052600 94CF000A */ lhu $t7, 0xa($a2) -/* AC97A4 80052604 A5AF0004 */ sh $t7, 4($t5) -/* AC97A8 80052608 84C3000C */ lh $v1, 0xc($a2) -/* AC97AC 8005260C 1068000E */ beq $v1, $t0, .L80052648 -/* AC97B0 80052610 28610169 */ slti $at, $v1, 0x169 -/* AC97B4 80052614 50200007 */ beql $at, $zero, .L80052634 -/* AC97B8 80052618 44838000 */ mtc1 $v1, $f16 -/* AC97BC 8005261C 44834000 */ mtc1 $v1, $f8 -/* AC97C0 80052620 00000000 */ nop -/* AC97C4 80052624 468042A0 */ cvt.s.w $f10, $f8 -/* AC97C8 80052628 10000007 */ b .L80052648 -/* AC97CC 8005262C E60A00FC */ swc1 $f10, 0xfc($s0) -/* AC97D0 80052630 44838000 */ mtc1 $v1, $f16 -.L80052634: -/* AC97D4 80052634 3C018014 */ lui $at, %hi(D_8013A224) -/* AC97D8 80052638 C424A224 */ lwc1 $f4, %lo(D_8013A224)($at) -/* AC97DC 8005263C 468084A0 */ cvt.s.w $f18, $f16 -/* AC97E0 80052640 46049182 */ mul.s $f6, $f18, $f4 -/* AC97E4 80052644 E60600FC */ swc1 $f6, 0xfc($s0) -.L80052648: -/* AC97E8 80052648 84D8000E */ lh $t8, 0xe($a2) -/* AC97EC 8005264C A4F8000C */ sh $t8, 0xc($a3) -/* AC97F0 80052650 84F9000C */ lh $t9, 0xc($a3) -/* AC97F4 80052654 15190005 */ bne $t0, $t9, .L8005266C -/* AC97F8 80052658 00000000 */ nop -/* AC97FC 8005265C 860A0006 */ lh $t2, 6($s0) -/* AC9800 80052660 86090008 */ lh $t1, 8($s0) -/* AC9804 80052664 01495821 */ addu $t3, $t2, $t1 -/* AC9808 80052668 A4EB000C */ sh $t3, 0xc($a3) -.L8005266C: -/* AC980C 8005266C 0C01EFE4 */ jal OLib_Vec3fDist -/* AC9810 80052670 AFA7002C */ sw $a3, 0x2c($sp) -/* AC9814 80052674 87AD005C */ lh $t5, 0x5c($sp) -/* AC9818 80052678 8FA7002C */ lw $a3, 0x2c($sp) -/* AC981C 8005267C 87AC005E */ lh $t4, 0x5e($sp) -/* AC9820 80052680 000D7023 */ negu $t6, $t5 -/* AC9824 80052684 E7A00068 */ swc1 $f0, 0x68($sp) -/* AC9828 80052688 A7AE006C */ sh $t6, 0x6c($sp) -/* AC982C 8005268C 27A50068 */ addiu $a1, $sp, 0x68 -/* AC9830 80052690 24E4001C */ addiu $a0, $a3, 0x1c -/* AC9834 80052694 0C01F097 */ jal OLib_VecSphGeoToVec3f -/* AC9838 80052698 A7AC006E */ sh $t4, 0x6e($sp) -/* AC983C 8005269C 8FA40024 */ lw $a0, 0x24($sp) -/* AC9840 800526A0 8FA50034 */ lw $a1, 0x34($sp) -/* AC9844 800526A4 0C032AE5 */ jal Math3D_LineClosestToPoint -/* AC9848 800526A8 26060050 */ addiu $a2, $s0, 0x50 -/* AC984C 800526AC 8FAF0034 */ lw $t7, 0x34($sp) -/* AC9850 800526B0 8FA7002C */ lw $a3, 0x2c($sp) -/* AC9854 800526B4 8DF90000 */ lw $t9, ($t7) -/* AC9858 800526B8 ACF90000 */ sw $t9, ($a3) -/* AC985C 800526BC 8DF80004 */ lw $t8, 4($t7) -/* AC9860 800526C0 ACF80004 */ sw $t8, 4($a3) -/* AC9864 800526C4 8DF90008 */ lw $t9, 8($t7) -/* AC9868 800526C8 ACF90008 */ sw $t9, 8($a3) -/* AC986C 800526CC 860A015E */ lh $t2, 0x15e($s0) -/* AC9870 800526D0 25490001 */ addiu $t1, $t2, 1 -/* AC9874 800526D4 A609015E */ sh $t1, 0x15e($s0) -/* AC9878 800526D8 8FA60034 */ lw $a2, 0x34($sp) -/* AC987C 800526DC 8FAB007C */ lw $t3, 0x7c($sp) -.L800526E0: -/* AC9880 800526E0 3C032000 */ lui $v1, 0x2000 -/* AC9884 800526E4 26070010 */ addiu $a3, $s0, 0x10 -/* AC9888 800526E8 8D6C067C */ lw $t4, 0x67c($t3) -/* AC988C 800526EC 000C6880 */ sll $t5, $t4, 2 -/* AC9890 800526F0 05A30008 */ bgezl $t5, .L80052714 -/* AC9894 800526F4 8FB80030 */ lw $t8, 0x30($sp) -/* AC9898 800526F8 8CCF0000 */ lw $t7, ($a2) -/* AC989C 800526FC ACEF0000 */ sw $t7, ($a3) -/* AC98A0 80052700 8CCE0004 */ lw $t6, 4($a2) -/* AC98A4 80052704 ACEE0004 */ sw $t6, 4($a3) -/* AC98A8 80052708 8CCF0008 */ lw $t7, 8($a2) -/* AC98AC 8005270C ACEF0008 */ sw $t7, 8($a3) -/* AC98B0 80052710 8FB80030 */ lw $t8, 0x30($sp) -.L80052714: -/* AC98B4 80052714 87190000 */ lh $t9, ($t8) -/* AC98B8 80052718 332A0001 */ andi $t2, $t9, 1 -/* AC98BC 8005271C 51400055 */ beql $t2, $zero, .L80052874 -/* AC98C0 80052720 84E2000C */ lh $v0, 0xc($a3) -/* AC98C4 80052724 84E2000C */ lh $v0, 0xc($a3) -/* AC98C8 80052728 8FAD007C */ lw $t5, 0x7c($sp) -/* AC98CC 8005272C 18400009 */ blez $v0, .L80052754 -/* AC98D0 80052730 2449FFFF */ addiu $t1, $v0, -1 -/* AC98D4 80052734 A4E9000C */ sh $t1, 0xc($a3) -/* AC98D8 80052738 8CCC0000 */ lw $t4, ($a2) -/* AC98DC 8005273C ACEC0000 */ sw $t4, ($a3) -/* AC98E0 80052740 8CCB0004 */ lw $t3, 4($a2) -/* AC98E4 80052744 ACEB0004 */ sw $t3, 4($a3) -/* AC98E8 80052748 8CCC0008 */ lw $t4, 8($a2) -/* AC98EC 8005274C 1000009D */ b .L800529C4 -/* AC98F0 80052750 ACEC0008 */ sw $t4, 8($a3) -.L80052754: -/* AC98F4 80052754 8DAE067C */ lw $t6, 0x67c($t5) -/* AC98F8 80052758 00C02025 */ move $a0, $a2 -/* AC98FC 8005275C 00E02825 */ move $a1, $a3 -/* AC9900 80052760 01C37824 */ and $t7, $t6, $v1 -/* AC9904 80052764 55E00098 */ bnezl $t7, .L800529C8 -/* AC9908 80052768 8FBF001C */ lw $ra, 0x1c($sp) -/* AC990C 8005276C 0C01F00A */ jal OLib_Vec3fDistXZ -/* AC9910 80052770 AFA60034 */ sw $a2, 0x34($sp) -/* AC9914 80052774 3C014120 */ li $at, 0x41200000 # 0.000000 -/* AC9918 80052778 44814000 */ mtc1 $at, $f8 -/* AC991C 8005277C 3C188016 */ lui $t8, %hi(D_8015BD7C) # $t8, 0x8016 -/* AC9920 80052780 26040050 */ addiu $a0, $s0, 0x50 -/* AC9924 80052784 4600403E */ c.le.s $f8, $f0 -/* AC9928 80052788 00000000 */ nop -/* AC992C 8005278C 4501001D */ bc1t .L80052804 -/* AC9930 80052790 00000000 */ nop -/* AC9934 80052794 8F18BD7C */ lw $t8, %lo(D_8015BD7C)($t8) -/* AC9938 80052798 3C01FFFF */ li $at, 0xFFFF0000 # 0.000000 -/* AC993C 8005279C 34217FFF */ ori $at, (0xFFFF7FFF & 0xFFFF) # ori $at, $at, 0x7fff -/* AC9940 800527A0 97020020 */ lhu $v0, 0x20($t8) -/* AC9944 800527A4 0041C827 */ nor $t9, $v0, $at -/* AC9948 800527A8 13200016 */ beqz $t9, .L80052804 -/* AC994C 800527AC 2401BFFF */ li $at, -16385 -/* AC9950 800527B0 00415027 */ nor $t2, $v0, $at -/* AC9954 800527B4 11400013 */ beqz $t2, .L80052804 -/* AC9958 800527B8 2401FFFD */ li $at, -3 -/* AC995C 800527BC 00414827 */ nor $t1, $v0, $at -/* AC9960 800527C0 11200010 */ beqz $t1, .L80052804 -/* AC9964 800527C4 2401FFFB */ li $at, -5 -/* AC9968 800527C8 00415827 */ nor $t3, $v0, $at -/* AC996C 800527CC 1160000D */ beqz $t3, .L80052804 -/* AC9970 800527D0 2401FFF7 */ li $at, -9 -/* AC9974 800527D4 00416027 */ nor $t4, $v0, $at -/* AC9978 800527D8 1180000A */ beqz $t4, .L80052804 -/* AC997C 800527DC 2401FFFE */ li $at, -2 -/* AC9980 800527E0 00416827 */ nor $t5, $v0, $at -/* AC9984 800527E4 11A00007 */ beqz $t5, .L80052804 -/* AC9988 800527E8 2401FFEF */ li $at, -17 -/* AC998C 800527EC 00417027 */ nor $t6, $v0, $at -/* AC9990 800527F0 11C00004 */ beqz $t6, .L80052804 -/* AC9994 800527F4 2401DFFF */ li $at, -8193 -/* AC9998 800527F8 00417827 */ nor $t7, $v0, $at -/* AC999C 800527FC 55E00072 */ bnezl $t7, .L800529C8 -/* AC99A0 80052800 8FBF001C */ lw $ra, 0x1c($sp) -.L80052804: -/* AC99A4 80052804 0C01EFE4 */ jal OLib_Vec3fDist -/* AC99A8 80052808 2605005C */ addiu $a1, $s0, 0x5c -/* AC99AC 8005280C 8FA20034 */ lw $v0, 0x34($sp) -/* AC99B0 80052810 E60000DC */ swc1 $f0, 0xdc($s0) -/* AC99B4 80052814 C60A0050 */ lwc1 $f10, 0x50($s0) -/* AC99B8 80052818 C4500000 */ lwc1 $f16, ($v0) -/* AC99BC 8005281C C6040054 */ lwc1 $f4, 0x54($s0) -/* AC99C0 80052820 8618014C */ lh $t8, 0x14c($s0) -/* AC99C4 80052824 46105481 */ sub.s $f18, $f10, $f16 -/* AC99C8 80052828 C60A0058 */ lwc1 $f10, 0x58($s0) -/* AC99CC 8005282C 37190004 */ ori $t9, $t8, 4 -/* AC99D0 80052830 02002025 */ move $a0, $s0 -/* AC99D4 80052834 E61200E4 */ swc1 $f18, 0xe4($s0) -/* AC99D8 80052838 C4460004 */ lwc1 $f6, 4($v0) -/* AC99DC 8005283C 86050154 */ lh $a1, 0x154($s0) -/* AC99E0 80052840 24060002 */ li $a2, 2 -/* AC99E4 80052844 46062201 */ sub.s $f8, $f4, $f6 -/* AC99E8 80052848 44802000 */ mtc1 $zero, $f4 -/* AC99EC 8005284C E60800E8 */ swc1 $f8, 0xe8($s0) -/* AC99F0 80052850 C4500008 */ lwc1 $f16, 8($v0) -/* AC99F4 80052854 A619014C */ sh $t9, 0x14c($s0) -/* AC99F8 80052858 E6040100 */ swc1 $f4, 0x100($s0) -/* AC99FC 8005285C 46105481 */ sub.s $f18, $f10, $f16 -/* AC9A00 80052860 0C016952 */ jal Camera_ChangeSetting -/* AC9A04 80052864 E61200EC */ swc1 $f18, 0xec($s0) -/* AC9A08 80052868 10000057 */ b .L800529C8 -/* AC9A0C 8005286C 8FBF001C */ lw $ra, 0x1c($sp) -/* AC9A10 80052870 84E2000C */ lh $v0, 0xc($a3) -.L80052874: -/* AC9A14 80052874 18400008 */ blez $v0, .L80052898 -/* AC9A18 80052878 244AFFFF */ addiu $t2, $v0, -1 -/* AC9A1C 8005287C A4EA000C */ sh $t2, 0xc($a3) -/* AC9A20 80052880 84E9000C */ lh $t1, 0xc($a3) -/* AC9A24 80052884 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 -/* AC9A28 80052888 5520000A */ bnezl $t1, .L800528B4 -/* AC9A2C 8005288C 8FAD007C */ lw $t5, 0x7c($sp) -/* AC9A30 80052890 10000007 */ b .L800528B0 -/* AC9A34 80052894 AC20D3A0 */ sw $zero, %lo(D_8011D3A0)($at) -.L80052898: -/* AC9A38 80052898 8CCC0000 */ lw $t4, ($a2) -/* AC9A3C 8005289C ACEC0000 */ sw $t4, ($a3) -/* AC9A40 800528A0 8CCB0004 */ lw $t3, 4($a2) -/* AC9A44 800528A4 ACEB0004 */ sw $t3, 4($a3) -/* AC9A48 800528A8 8CCC0008 */ lw $t4, 8($a2) -/* AC9A4C 800528AC ACEC0008 */ sw $t4, 8($a3) -.L800528B0: -/* AC9A50 800528B0 8FAD007C */ lw $t5, 0x7c($sp) -.L800528B4: -/* AC9A54 800528B4 3C018014 */ lui $at, %hi(D_8013A228) -/* AC9A58 800528B8 8DAE067C */ lw $t6, 0x67c($t5) -/* AC9A5C 800528BC 01C37824 */ and $t7, $t6, $v1 -/* AC9A60 800528C0 55E00041 */ bnezl $t7, .L800529C8 -/* AC9A64 800528C4 8FBF001C */ lw $ra, 0x1c($sp) -/* AC9A68 800528C8 C426A228 */ lwc1 $f6, %lo(D_8013A228)($at) -/* AC9A6C 800528CC C60800D8 */ lwc1 $f8, 0xd8($s0) -/* AC9A70 800528D0 3C188016 */ lui $t8, %hi(D_8015BD7C) # $t8, 0x8016 -/* AC9A74 800528D4 26040050 */ addiu $a0, $s0, 0x50 -/* AC9A78 800528D8 4608303C */ c.lt.s $f6, $f8 -/* AC9A7C 800528DC 2605005C */ addiu $a1, $s0, 0x5c -/* AC9A80 800528E0 4501001D */ bc1t .L80052958 -/* AC9A84 800528E4 00000000 */ nop -/* AC9A88 800528E8 8F18BD7C */ lw $t8, %lo(D_8015BD7C)($t8) -/* AC9A8C 800528EC 3C01FFFF */ li $at, 0xFFFF0000 # 0.000000 -/* AC9A90 800528F0 34217FFF */ ori $at, (0xFFFF7FFF & 0xFFFF) # ori $at, $at, 0x7fff -/* AC9A94 800528F4 97020020 */ lhu $v0, 0x20($t8) -/* AC9A98 800528F8 0041C827 */ nor $t9, $v0, $at -/* AC9A9C 800528FC 13200016 */ beqz $t9, .L80052958 -/* AC9AA0 80052900 2401BFFF */ li $at, -16385 -/* AC9AA4 80052904 00415027 */ nor $t2, $v0, $at -/* AC9AA8 80052908 11400013 */ beqz $t2, .L80052958 -/* AC9AAC 8005290C 2401FFFD */ li $at, -3 -/* AC9AB0 80052910 00414827 */ nor $t1, $v0, $at -/* AC9AB4 80052914 11200010 */ beqz $t1, .L80052958 -/* AC9AB8 80052918 2401FFFB */ li $at, -5 -/* AC9ABC 8005291C 00415827 */ nor $t3, $v0, $at -/* AC9AC0 80052920 1160000D */ beqz $t3, .L80052958 -/* AC9AC4 80052924 2401FFF7 */ li $at, -9 -/* AC9AC8 80052928 00416027 */ nor $t4, $v0, $at -/* AC9ACC 8005292C 1180000A */ beqz $t4, .L80052958 -/* AC9AD0 80052930 2401FFFE */ li $at, -2 -/* AC9AD4 80052934 00416827 */ nor $t5, $v0, $at -/* AC9AD8 80052938 11A00007 */ beqz $t5, .L80052958 -/* AC9ADC 8005293C 2401FFEF */ li $at, -17 -/* AC9AE0 80052940 00417027 */ nor $t6, $v0, $at -/* AC9AE4 80052944 11C00004 */ beqz $t6, .L80052958 -/* AC9AE8 80052948 2401DFFF */ li $at, -8193 -/* AC9AEC 8005294C 00417827 */ nor $t7, $v0, $at -/* AC9AF0 80052950 55E0001D */ bnezl $t7, .L800529C8 -/* AC9AF4 80052954 8FBF001C */ lw $ra, 0x1c($sp) -.L80052958: -/* AC9AF8 80052958 0C01EFE4 */ jal OLib_Vec3fDist -/* AC9AFC 8005295C AFA60034 */ sw $a2, 0x34($sp) -/* AC9B00 80052960 E60000DC */ swc1 $f0, 0xdc($s0) -/* AC9B04 80052964 8FB80034 */ lw $t8, 0x34($sp) -/* AC9B08 80052968 C60A0050 */ lwc1 $f10, 0x50($s0) -/* AC9B0C 8005296C C6040054 */ lwc1 $f4, 0x54($s0) -/* AC9B10 80052970 C7100000 */ lwc1 $f16, ($t8) -/* AC9B14 80052974 02002025 */ move $a0, $s0 -/* AC9B18 80052978 86050154 */ lh $a1, 0x154($s0) -/* AC9B1C 8005297C 46105481 */ sub.s $f18, $f10, $f16 -/* AC9B20 80052980 C60A0058 */ lwc1 $f10, 0x58($s0) -/* AC9B24 80052984 24060002 */ li $a2, 2 -/* AC9B28 80052988 E61200E4 */ swc1 $f18, 0xe4($s0) -/* AC9B2C 8005298C 8FB90034 */ lw $t9, 0x34($sp) -/* AC9B30 80052990 C7260004 */ lwc1 $f6, 4($t9) -/* AC9B34 80052994 46062201 */ sub.s $f8, $f4, $f6 -/* AC9B38 80052998 44802000 */ mtc1 $zero, $f4 -/* AC9B3C 8005299C E60800E8 */ swc1 $f8, 0xe8($s0) -/* AC9B40 800529A0 8FAA0034 */ lw $t2, 0x34($sp) -/* AC9B44 800529A4 C5500008 */ lwc1 $f16, 8($t2) -/* AC9B48 800529A8 E6040100 */ swc1 $f4, 0x100($s0) -/* AC9B4C 800529AC 46105481 */ sub.s $f18, $f10, $f16 -/* AC9B50 800529B0 0C016952 */ jal Camera_ChangeSetting -/* AC9B54 800529B4 E61200EC */ swc1 $f18, 0xec($s0) -/* AC9B58 800529B8 8609014C */ lh $t1, 0x14c($s0) -/* AC9B5C 800529BC 352B0004 */ ori $t3, $t1, 4 -/* AC9B60 800529C0 A60B014C */ sh $t3, 0x14c($s0) -.L800529C4: -/* AC9B64 800529C4 8FBF001C */ lw $ra, 0x1c($sp) -.L800529C8: -/* AC9B68 800529C8 8FB00018 */ lw $s0, 0x18($sp) -/* AC9B6C 800529CC 27BD0088 */ addiu $sp, $sp, 0x88 -/* AC9B70 800529D0 03E00008 */ jr $ra -/* AC9B74 800529D4 24020001 */ li $v0, 1 diff --git a/asm/non_matchings/code/z_camera/Camera_Unique1.s b/asm/non_matchings/code/z_camera/Camera_Unique1.s deleted file mode 100644 index 75bc49cd84..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Unique1.s +++ /dev/null @@ -1,398 +0,0 @@ -.late_rodata -glabel D_8013A1C4 - .float 0.01 - -glabel D_8013A1C8 - .incbin "baserom.z64", 0xBB1368, 0xC - -glabel D_8013A1D4 - .float 0.01 - -glabel D_8013A1D8 - .float 0.01 - -glabel D_8013A1DC - .float 0.01 - -glabel D_8013A1E0 - .float 0.005 - -glabel D_8013A1E4 - .float 0.01 - -glabel D_8013A1E8 - .float 0.01 - -.text -glabel Camera_Unique1 -/* AC8744 800515A4 27BDFF50 */ addiu $sp, $sp, -0xb0 -/* AC8748 800515A8 AFB00014 */ sw $s0, 0x14($sp) -/* AC874C 800515AC 00808025 */ move $s0, $a0 -/* AC8750 800515B0 AFBF001C */ sw $ra, 0x1c($sp) -/* AC8754 800515B4 AFB10018 */ sw $s1, 0x18($sp) -/* AC8758 800515B8 0C00B721 */ jal Player_GetCameraYOffset -/* AC875C 800515BC 8C840090 */ lw $a0, 0x90($a0) -/* AC8760 800515C0 8602015E */ lh $v0, 0x15e($s0) -/* AC8764 800515C4 10400008 */ beqz $v0, .L800515E8 -/* AC8768 800515C8 2401000A */ li $at, 10 -/* AC876C 800515CC 10410006 */ beq $v0, $at, .L800515E8 -/* AC8770 800515D0 24010014 */ li $at, 20 -/* AC8774 800515D4 10410004 */ beq $v0, $at, .L800515E8 -/* AC8778 800515D8 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 -/* AC877C 800515DC 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* AC8780 800515E0 85C30314 */ lh $v1, 0x314($t6) -/* AC8784 800515E4 10600054 */ beqz $v1, .L80051738 -.L800515E8: -/* AC8788 800515E8 3C018014 */ lui $at, %hi(D_8013A1C4) -/* AC878C 800515EC C42EA1C4 */ lwc1 $f14, %lo(D_8013A1C4)($at) -/* AC8790 800515F0 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC8794 800515F4 44814000 */ mtc1 $at, $f8 -/* AC8798 800515F8 3C014288 */ lui $at, 0x4288 -/* AC879C 800515FC 3C0B8016 */ lui $t3, %hi(gGameInfo) -/* AC87A0 80051600 8D6BFA90 */ lw $t3, %lo(gGameInfo)($t3) -/* AC87A4 80051604 44818000 */ mtc1 $at, $f16 -/* AC87A8 80051608 860F0142 */ lh $t7, 0x142($s0) -/* AC87AC 8005160C 856C01F0 */ lh $t4, 0x1f0($t3) -/* AC87B0 80051610 46008483 */ div.s $f18, $f16, $f0 -/* AC87B4 80051614 3C198012 */ lui $t9, %hi(sCameraSettings+4) -/* AC87B8 80051618 448C2000 */ mtc1 $t4, $f4 -/* AC87BC 8005161C 000FC0C0 */ sll $t8, $t7, 3 -/* AC87C0 80051620 86080144 */ lh $t0, 0x144($s0) -/* AC87C4 80051624 468021A0 */ cvt.s.w $f6, $f4 -/* AC87C8 80051628 0338C821 */ addu $t9, $t9, $t8 -/* AC87CC 8005162C 8F39D068 */ lw $t9, %lo(sCameraSettings+4)($t9) -/* AC87D0 80051630 000848C0 */ sll $t1, $t0, 3 -/* AC87D4 80051634 3C018014 */ lui $at, %hi(D_8013A1C8) -/* AC87D8 80051638 03295021 */ addu $t2, $t9, $t1 -/* AC87DC 8005163C 8D420004 */ lw $v0, 4($t2) -/* AC87E0 80051640 3C0C8016 */ lui $t4, %hi(gGameInfo) -/* AC87E4 80051644 844D0000 */ lh $t5, ($v0) -/* AC87E8 80051648 24420018 */ addiu $v0, $v0, 0x18 -/* AC87EC 8005164C 460E3302 */ mul.s $f12, $f6, $f14 -/* AC87F0 80051650 448D3000 */ mtc1 $t5, $f6 -/* AC87F4 80051654 460C4280 */ add.s $f10, $f8, $f12 -/* AC87F8 80051658 46126102 */ mul.s $f4, $f12, $f18 -/* AC87FC 8005165C 46803220 */ cvt.s.w $f8, $f6 -/* AC8800 80051660 46045081 */ sub.s $f2, $f10, $f4 -/* AC8804 80051664 460E4402 */ mul.s $f16, $f8, $f14 -/* AC8808 80051668 00000000 */ nop -/* AC880C 8005166C 46008482 */ mul.s $f18, $f16, $f0 -/* AC8810 80051670 00000000 */ nop -/* AC8814 80051674 46029282 */ mul.s $f10, $f18, $f2 -/* AC8818 80051678 E60A0000 */ swc1 $f10, ($s0) -/* AC881C 8005167C 844EFFEC */ lh $t6, -0x14($v0) -/* AC8820 80051680 448E2000 */ mtc1 $t6, $f4 -/* AC8824 80051684 00000000 */ nop -/* AC8828 80051688 468021A0 */ cvt.s.w $f6, $f4 -/* AC882C 8005168C 460E3202 */ mul.s $f8, $f6, $f14 -/* AC8830 80051690 00000000 */ nop -/* AC8834 80051694 46004402 */ mul.s $f16, $f8, $f0 -/* AC8838 80051698 00000000 */ nop -/* AC883C 8005169C 46028482 */ mul.s $f18, $f16, $f2 -/* AC8840 800516A0 E6120004 */ swc1 $f18, 4($s0) -/* AC8844 800516A4 844FFFF0 */ lh $t7, -0x10($v0) -/* AC8848 800516A8 448F5000 */ mtc1 $t7, $f10 -/* AC884C 800516AC 00000000 */ nop -/* AC8850 800516B0 46805120 */ cvt.s.w $f4, $f10 -/* AC8854 800516B4 460E2182 */ mul.s $f6, $f4, $f14 -/* AC8858 800516B8 00000000 */ nop -/* AC885C 800516BC 46003202 */ mul.s $f8, $f6, $f0 -/* AC8860 800516C0 00000000 */ nop -/* AC8864 800516C4 46024402 */ mul.s $f16, $f8, $f2 -/* AC8868 800516C8 E6100008 */ swc1 $f16, 8($s0) -/* AC886C 800516CC 8458FFF4 */ lh $t8, -0xc($v0) -/* AC8870 800516D0 C424A1C8 */ lwc1 $f4, %lo(D_8013A1C8)($at) -/* AC8874 800516D4 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* AC8878 800516D8 44989000 */ mtc1 $t8, $f18 -/* AC887C 800516DC 44814000 */ mtc1 $at, $f8 -/* AC8880 800516E0 468092A0 */ cvt.s.w $f10, $f18 -/* AC8884 800516E4 46045182 */ mul.s $f6, $f10, $f4 -/* AC8888 800516E8 46083400 */ add.s $f16, $f6, $f8 -/* AC888C 800516EC 4600848D */ trunc.w.s $f18, $f16 -/* AC8890 800516F0 44199000 */ mfc1 $t9, $f18 -/* AC8894 800516F4 00000000 */ nop -/* AC8898 800516F8 A6190018 */ sh $t9, 0x18($s0) -/* AC889C 800516FC 8449FFF8 */ lh $t1, -8($v0) -/* AC88A0 80051700 44895000 */ mtc1 $t1, $f10 -/* AC88A4 80051704 00000000 */ nop -/* AC88A8 80051708 46805120 */ cvt.s.w $f4, $f10 -/* AC88AC 8005170C E6040010 */ swc1 $f4, 0x10($s0) -/* AC88B0 80051710 844AFFFC */ lh $t2, -4($v0) -/* AC88B4 80051714 448A3000 */ mtc1 $t2, $f6 -/* AC88B8 80051718 00000000 */ nop -/* AC88BC 8005171C 46803220 */ cvt.s.w $f8, $f6 -/* AC88C0 80051720 460E4402 */ mul.s $f16, $f8, $f14 -/* AC88C4 80051724 E6100014 */ swc1 $f16, 0x14($s0) -/* AC88C8 80051728 844B0000 */ lh $t3, ($v0) -/* AC88CC 8005172C A60B001A */ sh $t3, 0x1a($s0) -/* AC88D0 80051730 8D8CFA90 */ lw $t4, %lo(gGameInfo)($t4) -/* AC88D4 80051734 85830314 */ lh $v1, 0x314($t4) -.L80051738: -/* AC88D8 80051738 50600004 */ beql $v1, $zero, .L8005174C -/* AC88DC 8005173C 240D0001 */ li $t5, 1 -/* AC88E0 80051740 0C011495 */ jal Camera_CopyPREGToModeValues -/* AC88E4 80051744 02002025 */ move $a0, $s0 -/* AC88E8 80051748 240D0001 */ li $t5, 1 -.L8005174C: -/* AC88EC 8005174C 3C018012 */ lui $at, %hi(D_8011D3E8) # $at, 0x8012 -/* AC88F0 80051750 26050050 */ addiu $a1, $s0, 0x50 -/* AC88F4 80051754 2606005C */ addiu $a2, $s0, 0x5c -/* AC88F8 80051758 AC2DD3E8 */ sw $t5, %lo(D_8011D3E8)($at) -/* AC88FC 8005175C AFA60038 */ sw $a2, 0x38($sp) -/* AC8900 80051760 AFA50034 */ sw $a1, 0x34($sp) -/* AC8904 80051764 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC8908 80051768 27A4007C */ addiu $a0, $sp, 0x7c -/* AC890C 8005176C 26060074 */ addiu $a2, $s0, 0x74 -/* AC8910 80051770 AFA60030 */ sw $a2, 0x30($sp) -/* AC8914 80051774 27A40074 */ addiu $a0, $sp, 0x74 -/* AC8918 80051778 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC891C 8005177C 8FA50034 */ lw $a1, 0x34($sp) -/* AC8920 80051780 860E001A */ lh $t6, 0x1a($s0) -/* AC8924 80051784 3C018012 */ lui $at, %hi(D_8011D3A0) -/* AC8928 80051788 AC2ED3A0 */ sw $t6, %lo(D_8011D3A0)($at) -/* AC892C 8005178C 860F015E */ lh $t7, 0x15e($s0) -/* AC8930 80051790 55E0003E */ bnezl $t7, .L8005188C -/* AC8934 80051794 27A4005C */ addiu $a0, $sp, 0x5c -/* AC8938 80051798 C61200E8 */ lwc1 $f18, 0xe8($s0) -/* AC893C 8005179C C60A00F4 */ lwc1 $f10, 0xf4($s0) -/* AC8940 800517A0 44803000 */ mtc1 $zero, $f6 -/* AC8944 800517A4 2611001C */ addiu $s1, $s0, 0x1c -/* AC8948 800517A8 460A9101 */ sub.s $f4, $f18, $f10 -/* AC894C 800517AC 27A60098 */ addiu $a2, $sp, 0x98 -/* AC8950 800517B0 27A40084 */ addiu $a0, $sp, 0x84 -/* AC8954 800517B4 26050094 */ addiu $a1, $s0, 0x94 -/* AC8958 800517B8 E60400E8 */ swc1 $f4, 0xe8($s0) -/* AC895C 800517BC 87B8007A */ lh $t8, 0x7a($sp) -/* AC8960 800517C0 E6260000 */ swc1 $f6, ($s1) -/* AC8964 800517C4 A6380004 */ sh $t8, 4($s1) -/* AC8968 800517C8 8E080090 */ lw $t0, 0x90($s0) -/* AC896C 800517CC 8D090908 */ lw $t1, 0x908($t0) -/* AC8970 800517D0 ACC90000 */ sw $t1, ($a2) -/* AC8974 800517D4 8D19090C */ lw $t9, 0x90c($t0) -/* AC8978 800517D8 ACD90004 */ sw $t9, 4($a2) -/* AC897C 800517DC 8D090910 */ lw $t1, 0x910($t0) -/* AC8980 800517E0 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC8984 800517E4 ACC90008 */ sw $t1, 8($a2) -/* AC8988 800517E8 3C0A8016 */ lui $t2, %hi(gGameInfo) # $t2, 0x8016 -/* AC898C 800517EC 8D4AFA90 */ lw $t2, %lo(gGameInfo)($t2) -/* AC8990 800517F0 854B01C2 */ lh $t3, 0x1c2($t2) -/* AC8994 800517F4 A62B0008 */ sh $t3, 8($s1) -/* AC8998 800517F8 87AD0082 */ lh $t5, 0x82($sp) -/* AC899C 800517FC 87AC008A */ lh $t4, 0x8a($sp) -/* AC89A0 80051800 018D1823 */ subu $v1, $t4, $t5 -/* AC89A4 80051804 00031C00 */ sll $v1, $v1, 0x10 -/* AC89A8 80051808 00031C03 */ sra $v1, $v1, 0x10 -/* AC89AC 8005180C 04600003 */ bltz $v1, .L8005181C -/* AC89B0 80051810 00031023 */ negu $v0, $v1 -/* AC89B4 80051814 10000001 */ b .L8005181C -/* AC89B8 80051818 00601025 */ move $v0, $v1 -.L8005181C: -/* AC89BC 8005181C 28413A98 */ slti $at, $v0, 0x3a98 -/* AC89C0 80051820 50200004 */ beql $at, $zero, .L80051834 -/* AC89C4 80051824 862E0008 */ lh $t6, 8($s1) -/* AC89C8 80051828 10000014 */ b .L8005187C -/* AC89CC 8005182C A6200006 */ sh $zero, 6($s1) -/* AC89D0 80051830 862E0008 */ lh $t6, 8($s1) -.L80051834: -/* AC89D4 80051834 006E001A */ div $zero, $v1, $t6 -/* AC89D8 80051838 15C00002 */ bnez $t6, .L80051844 -/* AC89DC 8005183C 00000000 */ nop -/* AC89E0 80051840 0007000D */ break 7 -.L80051844: -/* AC89E4 80051844 2401FFFF */ li $at, -1 -/* AC89E8 80051848 15C10004 */ bne $t6, $at, .L8005185C -/* AC89EC 8005184C 3C018000 */ lui $at, 0x8000 -/* AC89F0 80051850 14610002 */ bne $v1, $at, .L8005185C -/* AC89F4 80051854 00000000 */ nop -/* AC89F8 80051858 0006000D */ break 6 -.L8005185C: -/* AC89FC 8005185C 00007812 */ mflo $t7 -/* AC8A00 80051860 05E10003 */ bgez $t7, .L80051870 -/* AC8A04 80051864 000FC083 */ sra $t8, $t7, 2 -/* AC8A08 80051868 25E10003 */ addiu $at, $t7, 3 -/* AC8A0C 8005186C 0001C083 */ sra $t8, $at, 2 -.L80051870: -/* AC8A10 80051870 00184080 */ sll $t0, $t8, 2 -/* AC8A14 80051874 01184023 */ subu $t0, $t0, $t8 -/* AC8A18 80051878 A6280006 */ sh $t0, 6($s1) -.L8005187C: -/* AC8A1C 8005187C 8619015E */ lh $t9, 0x15e($s0) -/* AC8A20 80051880 27290001 */ addiu $t1, $t9, 1 -/* AC8A24 80051884 A609015E */ sh $t1, 0x15e($s0) -/* AC8A28 80051888 27A4005C */ addiu $a0, $sp, 0x5c -.L8005188C: -/* AC8A2C 8005188C 8E050090 */ lw $a1, 0x90($s0) -/* AC8A30 80051890 0C00BBB9 */ jal func_8002EEE4 -/* AC8A34 80051894 2611001C */ addiu $s1, $s0, 0x1c -/* AC8A38 80051898 3C0A8016 */ lui $t2, %hi(gGameInfo) # $t2, 0x8016 -/* AC8A3C 8005189C 8D4AFA90 */ lw $t2, %lo(gGameInfo)($t2) -/* AC8A40 800518A0 3C0142C8 */ li $at, 0x42C80000 # 0.000000 -/* AC8A44 800518A4 44816000 */ mtc1 $at, $f12 -/* AC8A48 800518A8 854B01C6 */ lh $t3, 0x1c6($t2) -/* AC8A4C 800518AC 3C018014 */ lui $at, %hi(D_8013A1D4) -/* AC8A50 800518B0 C432A1D4 */ lwc1 $f18, %lo(D_8013A1D4)($at) -/* AC8A54 800518B4 448B4000 */ mtc1 $t3, $f8 -/* AC8A58 800518B8 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC8A5C 800518BC 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC8A60 800518C0 46804420 */ cvt.s.w $f16, $f8 -/* AC8A64 800518C4 C60E00C8 */ lwc1 $f14, 0xc8($s0) -/* AC8A68 800518C8 46128282 */ mul.s $f10, $f16, $f18 -/* AC8A6C 800518CC 44065000 */ mfc1 $a2, $f10 -/* AC8A70 800518D0 0C010E27 */ jal func_8004389C -/* AC8A74 800518D4 00000000 */ nop -/* AC8A78 800518D8 E60000C8 */ swc1 $f0, 0xc8($s0) -/* AC8A7C 800518DC 3C0C8016 */ lui $t4, %hi(gGameInfo) # $t4, 0x8016 -/* AC8A80 800518E0 8D8CFA90 */ lw $t4, %lo(gGameInfo)($t4) -/* AC8A84 800518E4 3C0142C8 */ li $at, 0x42C80000 # 0.000000 -/* AC8A88 800518E8 44816000 */ mtc1 $at, $f12 -/* AC8A8C 800518EC 858D01C6 */ lh $t5, 0x1c6($t4) -/* AC8A90 800518F0 3C018014 */ lui $at, %hi(D_8013A1D8) -/* AC8A94 800518F4 C428A1D8 */ lwc1 $f8, %lo(D_8013A1D8)($at) -/* AC8A98 800518F8 448D2000 */ mtc1 $t5, $f4 -/* AC8A9C 800518FC 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC8AA0 80051900 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC8AA4 80051904 468021A0 */ cvt.s.w $f6, $f4 -/* AC8AA8 80051908 C60E00C4 */ lwc1 $f14, 0xc4($s0) -/* AC8AAC 8005190C 46083402 */ mul.s $f16, $f6, $f8 -/* AC8AB0 80051910 44068000 */ mfc1 $a2, $f16 -/* AC8AB4 80051914 0C010E27 */ jal func_8004389C -/* AC8AB8 80051918 00000000 */ nop -/* AC8ABC 8005191C 3C018014 */ lui $at, %hi(D_8013A1DC) -/* AC8AC0 80051920 C422A1DC */ lwc1 $f2, %lo(D_8013A1DC)($at) -/* AC8AC4 80051924 E60000C4 */ swc1 $f0, 0xc4($s0) -/* AC8AC8 80051928 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 -/* AC8ACC 8005192C 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* AC8AD0 80051930 3C018014 */ lui $at, %hi(D_8013A1E0) -/* AC8AD4 80051934 44071000 */ mfc1 $a3, $f2 -/* AC8AD8 80051938 85CF01C6 */ lh $t7, 0x1c6($t6) -/* AC8ADC 8005193C C42CA1E0 */ lwc1 $f12, %lo(D_8013A1E0)($at) -/* AC8AE0 80051940 C60E00CC */ lwc1 $f14, 0xcc($s0) -/* AC8AE4 80051944 448F9000 */ mtc1 $t7, $f18 -/* AC8AE8 80051948 00000000 */ nop -/* AC8AEC 8005194C 468092A0 */ cvt.s.w $f10, $f18 -/* AC8AF0 80051950 46025102 */ mul.s $f4, $f10, $f2 -/* AC8AF4 80051954 44062000 */ mfc1 $a2, $f4 -/* AC8AF8 80051958 0C010E27 */ jal func_8004389C -/* AC8AFC 8005195C 00000000 */ nop -/* AC8B00 80051960 3C018014 */ lui $at, %hi(D_8013A1E4) -/* AC8B04 80051964 C42CA1E4 */ lwc1 $f12, %lo(D_8013A1E4)($at) -/* AC8B08 80051968 E60000CC */ swc1 $f0, 0xcc($s0) -/* AC8B0C 8005196C 3C188016 */ lui $t8, %hi(gGameInfo) # $t8, 0x8016 -/* AC8B10 80051970 8F18FA90 */ lw $t8, %lo(gGameInfo)($t8) -/* AC8B14 80051974 44076000 */ mfc1 $a3, $f12 -/* AC8B18 80051978 C60E00D0 */ lwc1 $f14, 0xd0($s0) -/* AC8B1C 8005197C 870801C8 */ lh $t0, 0x1c8($t8) -/* AC8B20 80051980 44883000 */ mtc1 $t0, $f6 -/* AC8B24 80051984 00000000 */ nop -/* AC8B28 80051988 46803220 */ cvt.s.w $f8, $f6 -/* AC8B2C 8005198C 460C4402 */ mul.s $f16, $f8, $f12 -/* AC8B30 80051990 44068000 */ mfc1 $a2, $f16 -/* AC8B34 80051994 0C010E27 */ jal func_8004389C -/* AC8B38 80051998 00000000 */ nop -/* AC8B3C 8005199C E60000D0 */ swc1 $f0, 0xd0($s0) -/* AC8B40 800519A0 3C198016 */ lui $t9, %hi(gGameInfo) # $t9, 0x8016 -/* AC8B44 800519A4 8F39FA90 */ lw $t9, %lo(gGameInfo)($t9) -/* AC8B48 800519A8 3C018014 */ lui $at, %hi(D_8013A1E8) -/* AC8B4C 800519AC C424A1E8 */ lwc1 $f4, %lo(D_8013A1E8)($at) -/* AC8B50 800519B0 8729019C */ lh $t1, 0x19c($t9) -/* AC8B54 800519B4 3C063D4C */ lui $a2, (0x3D4CCCCD >> 16) # lui $a2, 0x3d4c -/* AC8B58 800519B8 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000 -/* AC8B5C 800519BC 44899000 */ mtc1 $t1, $f18 -/* AC8B60 800519C0 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC8B64 800519C4 34C6CCCD */ ori $a2, (0x3D4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd -/* AC8B68 800519C8 468092A0 */ cvt.s.w $f10, $f18 -/* AC8B6C 800519CC C60E00D4 */ lwc1 $f14, 0xd4($s0) -/* AC8B70 800519D0 46045302 */ mul.s $f12, $f10, $f4 -/* AC8B74 800519D4 0C010E27 */ jal func_8004389C -/* AC8B78 800519D8 00000000 */ nop -/* AC8B7C 800519DC E60000D4 */ swc1 $f0, 0xd4($s0) -/* AC8B80 800519E0 02002025 */ move $a0, $s0 -/* AC8B84 800519E4 27A50074 */ addiu $a1, $sp, 0x74 -/* AC8B88 800519E8 8E060000 */ lw $a2, ($s0) -/* AC8B8C 800519EC 0C0115EA */ jal func_800457A8 -/* AC8B90 800519F0 24070001 */ li $a3, 1 -/* AC8B94 800519F4 27A4008C */ addiu $a0, $sp, 0x8c -/* AC8B98 800519F8 8FA50034 */ lw $a1, 0x34($sp) -/* AC8B9C 800519FC 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC8BA0 80051A00 8FA60030 */ lw $a2, 0x30($sp) -/* AC8BA4 80051A04 02002025 */ move $a0, $s0 -/* AC8BA8 80051A08 8FA5008C */ lw $a1, 0x8c($sp) -/* AC8BAC 80051A0C 8E060004 */ lw $a2, 4($s0) -/* AC8BB0 80051A10 0C011A33 */ jal func_800468CC -/* AC8BB4 80051A14 8E070008 */ lw $a3, 8($s0) -/* AC8BB8 80051A18 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC8BBC 80051A1C 44813000 */ mtc1 $at, $f6 -/* AC8BC0 80051A20 C60800C4 */ lwc1 $f8, 0xc4($s0) -/* AC8BC4 80051A24 E60000DC */ swc1 $f0, 0xdc($s0) -/* AC8BC8 80051A28 86040018 */ lh $a0, 0x18($s0) -/* AC8BCC 80051A2C 46083403 */ div.s $f16, $f6, $f8 -/* AC8BD0 80051A30 87A50078 */ lh $a1, 0x78($sp) -/* AC8BD4 80051A34 2407000A */ li $a3, 10 -/* AC8BD8 80051A38 44068000 */ mfc1 $a2, $f16 -/* AC8BDC 80051A3C 0C010E47 */ jal func_8004391C -/* AC8BE0 80051A40 00000000 */ nop -/* AC8BE4 80051A44 3C048016 */ lui $a0, %hi(gGameInfo) # $a0, 0x8016 -/* AC8BE8 80051A48 8C84FA90 */ lw $a0, %lo(gGameInfo)($a0) -/* AC8BEC 80051A4C A7A20090 */ sh $v0, 0x90($sp) -/* AC8BF0 80051A50 3C063F00 */ lui $a2, 0x3f00 -/* AC8BF4 80051A54 8483019E */ lh $v1, 0x19e($a0) -/* AC8BF8 80051A58 24072710 */ li $a3, 10000 -/* AC8BFC 80051A5C 0062082A */ slt $at, $v1, $v0 -/* AC8C00 80051A60 50200004 */ beql $at, $zero, .L80051A74 -/* AC8C04 80051A64 87AA0090 */ lh $t2, 0x90($sp) -/* AC8C08 80051A68 A7A30090 */ sh $v1, 0x90($sp) -/* AC8C0C 80051A6C 8483019E */ lh $v1, 0x19e($a0) -/* AC8C10 80051A70 87AA0090 */ lh $t2, 0x90($sp) -.L80051A74: -/* AC8C14 80051A74 00031023 */ negu $v0, $v1 -/* AC8C18 80051A78 0142082A */ slt $at, $t2, $v0 -/* AC8C1C 80051A7C 50200003 */ beql $at, $zero, .L80051A8C -/* AC8C20 80051A80 86220008 */ lh $v0, 8($s1) -/* AC8C24 80051A84 A7A20090 */ sh $v0, 0x90($sp) -/* AC8C28 80051A88 86220008 */ lh $v0, 8($s1) -.L80051A8C: -/* AC8C2C 80051A8C 50400008 */ beql $v0, $zero, .L80051AB0 -/* AC8C30 80051A90 86240004 */ lh $a0, 4($s1) -/* AC8C34 80051A94 862B0004 */ lh $t3, 4($s1) -/* AC8C38 80051A98 862C0006 */ lh $t4, 6($s1) -/* AC8C3C 80051A9C 244EFFFF */ addiu $t6, $v0, -1 -/* AC8C40 80051AA0 A62E0008 */ sh $t6, 8($s1) -/* AC8C44 80051AA4 016C6821 */ addu $t5, $t3, $t4 -/* AC8C48 80051AA8 A62D0004 */ sh $t5, 4($s1) -/* AC8C4C 80051AAC 86240004 */ lh $a0, 4($s1) -.L80051AB0: -/* AC8C50 80051AB0 0C010E6B */ jal func_800439AC -/* AC8C54 80051AB4 87A5007A */ lh $a1, 0x7a($sp) -/* AC8C58 80051AB8 A7A20092 */ sh $v0, 0x92($sp) -/* AC8C5C 80051ABC 8FA40030 */ lw $a0, 0x30($sp) -/* AC8C60 80051AC0 8FA50034 */ lw $a1, 0x34($sp) -/* AC8C64 80051AC4 0C010F0A */ jal func_80043C28 -/* AC8C68 80051AC8 27A6008C */ addiu $a2, $sp, 0x8c -/* AC8C6C 80051ACC 8FAF0030 */ lw $t7, 0x30($sp) -/* AC8C70 80051AD0 8FA60038 */ lw $a2, 0x38($sp) -/* AC8C74 80051AD4 02002025 */ move $a0, $s0 -/* AC8C78 80051AD8 8DE80000 */ lw $t0, ($t7) -/* AC8C7C 80051ADC ACC80000 */ sw $t0, ($a2) -/* AC8C80 80051AE0 8DF80004 */ lw $t8, 4($t7) -/* AC8C84 80051AE4 ACD80004 */ sw $t8, 4($a2) -/* AC8C88 80051AE8 8DE80008 */ lw $t0, 8($t7) -/* AC8C8C 80051AEC ACC80008 */ sw $t0, 8($a2) -/* AC8C90 80051AF0 0C010FCD */ jal func_80043F34 -/* AC8C94 80051AF4 8FA50034 */ lw $a1, 0x34($sp) -/* AC8C98 80051AF8 C60C0010 */ lwc1 $f12, 0x10($s0) -/* AC8C9C 80051AFC C60E00FC */ lwc1 $f14, 0xfc($s0) -/* AC8CA0 80051B00 8E0600D4 */ lw $a2, 0xd4($s0) -/* AC8CA4 80051B04 0C010E27 */ jal func_8004389C -/* AC8CA8 80051B08 3C073F80 */ lui $a3, 0x3f80 -/* AC8CAC 80051B0C E60000FC */ swc1 $f0, 0xfc($s0) -/* AC8CB0 80051B10 A600015A */ sh $zero, 0x15a($s0) -/* AC8CB4 80051B14 02002025 */ move $a0, $s0 -/* AC8CB8 80051B18 0C011429 */ jal func_800450A4 -/* AC8CBC 80051B1C 8E050014 */ lw $a1, 0x14($s0) -/* AC8CC0 80051B20 E6000100 */ swc1 $f0, 0x100($s0) -/* AC8CC4 80051B24 8FBF001C */ lw $ra, 0x1c($sp) -/* AC8CC8 80051B28 8FB10018 */ lw $s1, 0x18($sp) -/* AC8CCC 80051B2C 8FB00014 */ lw $s0, 0x14($sp) -/* AC8CD0 80051B30 27BD00B0 */ addiu $sp, $sp, 0xb0 -/* AC8CD4 80051B34 03E00008 */ jr $ra -/* AC8CD8 80051B38 24020001 */ li $v0, 1 diff --git a/asm/non_matchings/code/z_camera/Camera_Unique2.s b/asm/non_matchings/code/z_camera/Camera_Unique2.s deleted file mode 100644 index e857d21b0c..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Unique2.s +++ /dev/null @@ -1,296 +0,0 @@ -.late_rodata -glabel D_8013A1EC - .float 0.01 - -glabel D_8013A1F0 - .float 0.6 - -glabel D_8013A1F4 - .float 0.4 - -glabel D_8013A1F8 - .float 0.05 - -glabel D_8013A1FC - .float 0.2 - -glabel D_8013A200 - .float 0.2 - -.text -glabel Camera_Unique2 -/* AC8CDC 80051B3C 27BDFF78 */ addiu $sp, $sp, -0x88 -/* AC8CE0 80051B40 AFB0001C */ sw $s0, 0x1c($sp) -/* AC8CE4 80051B44 00808025 */ move $s0, $a0 -/* AC8CE8 80051B48 AFBF0024 */ sw $ra, 0x24($sp) -/* AC8CEC 80051B4C AFB10020 */ sw $s1, 0x20($sp) -/* AC8CF0 80051B50 0C00B721 */ jal Player_GetCameraYOffset -/* AC8CF4 80051B54 8C840090 */ lw $a0, 0x90($a0) -/* AC8CF8 80051B58 26110050 */ addiu $s1, $s0, 0x50 -/* AC8CFC 80051B5C 2606005C */ addiu $a2, $s0, 0x5c -/* AC8D00 80051B60 E7A00048 */ swc1 $f0, 0x48($sp) -/* AC8D04 80051B64 AFA6003C */ sw $a2, 0x3c($sp) -/* AC8D08 80051B68 02202825 */ move $a1, $s1 -/* AC8D0C 80051B6C 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC8D10 80051B70 27A40060 */ addiu $a0, $sp, 0x60 -/* AC8D14 80051B74 8603015E */ lh $v1, 0x15e($s0) -/* AC8D18 80051B78 2401000A */ li $at, 10 -/* AC8D1C 80051B7C 10600008 */ beqz $v1, .L80051BA0 -/* AC8D20 80051B80 00000000 */ nop -/* AC8D24 80051B84 10610006 */ beq $v1, $at, .L80051BA0 -/* AC8D28 80051B88 24010014 */ li $at, 20 -/* AC8D2C 80051B8C 10610004 */ beq $v1, $at, .L80051BA0 -/* AC8D30 80051B90 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 -/* AC8D34 80051B94 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* AC8D38 80051B98 85C30314 */ lh $v1, 0x314($t6) -/* AC8D3C 80051B9C 10600033 */ beqz $v1, .L80051C6C -.L80051BA0: -/* AC8D40 80051BA0 3C0B8016 */ lui $t3, %hi(gGameInfo) # $t3, 0x8016 -/* AC8D44 80051BA4 8D6BFA90 */ lw $t3, %lo(gGameInfo)($t3) -/* AC8D48 80051BA8 3C018014 */ lui $at, %hi(D_8013A1EC) -/* AC8D4C 80051BAC C42CA1EC */ lwc1 $f12, %lo(D_8013A1EC)($at) -/* AC8D50 80051BB0 856C01F0 */ lh $t4, 0x1f0($t3) -/* AC8D54 80051BB4 3C014288 */ li $at, 0x42880000 # 0.000000 -/* AC8D58 80051BB8 44814000 */ mtc1 $at, $f8 -/* AC8D5C 80051BBC 448C2000 */ mtc1 $t4, $f4 -/* AC8D60 80051BC0 C7AA0048 */ lwc1 $f10, 0x48($sp) -/* AC8D64 80051BC4 860F0142 */ lh $t7, 0x142($s0) -/* AC8D68 80051BC8 468021A0 */ cvt.s.w $f6, $f4 -/* AC8D6C 80051BCC 3C198012 */ lui $t9, %hi(sCameraSettings+4) -/* AC8D70 80051BD0 000FC0C0 */ sll $t8, $t7, 3 -/* AC8D74 80051BD4 86080144 */ lh $t0, 0x144($s0) -/* AC8D78 80051BD8 0338C821 */ addu $t9, $t9, $t8 -/* AC8D7C 80051BDC 460A4103 */ div.s $f4, $f8, $f10 -/* AC8D80 80051BE0 8F39D068 */ lw $t9, %lo(sCameraSettings+4)($t9) -/* AC8D84 80051BE4 000848C0 */ sll $t1, $t0, 3 -/* AC8D88 80051BE8 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC8D8C 80051BEC 460C3002 */ mul.s $f0, $f6, $f12 -/* AC8D90 80051BF0 03295021 */ addu $t2, $t9, $t1 -/* AC8D94 80051BF4 8D420004 */ lw $v0, 4($t2) -/* AC8D98 80051BF8 44814000 */ mtc1 $at, $f8 -/* AC8D9C 80051BFC 3C088016 */ lui $t0, %hi(gGameInfo) # $t0, 0x8016 -/* AC8DA0 80051C00 844D0000 */ lh $t5, ($v0) -/* AC8DA4 80051C04 2442000C */ addiu $v0, $v0, 0xc -/* AC8DA8 80051C08 46040182 */ mul.s $f6, $f0, $f4 -/* AC8DAC 80051C0C 46004100 */ add.s $f4, $f8, $f0 -/* AC8DB0 80051C10 448D4000 */ mtc1 $t5, $f8 -/* AC8DB4 80051C14 46062081 */ sub.s $f2, $f4, $f6 -/* AC8DB8 80051C18 46804120 */ cvt.s.w $f4, $f8 -/* AC8DBC 80051C1C 460C2182 */ mul.s $f6, $f4, $f12 -/* AC8DC0 80051C20 00000000 */ nop -/* AC8DC4 80051C24 460A3202 */ mul.s $f8, $f6, $f10 -/* AC8DC8 80051C28 00000000 */ nop -/* AC8DCC 80051C2C 46024102 */ mul.s $f4, $f8, $f2 -/* AC8DD0 80051C30 E6040000 */ swc1 $f4, ($s0) -/* AC8DD4 80051C34 844EFFF8 */ lh $t6, -8($v0) -/* AC8DD8 80051C38 448E3000 */ mtc1 $t6, $f6 -/* AC8DDC 80051C3C 00000000 */ nop -/* AC8DE0 80051C40 468032A0 */ cvt.s.w $f10, $f6 -/* AC8DE4 80051C44 E60A0004 */ swc1 $f10, 4($s0) -/* AC8DE8 80051C48 844FFFFC */ lh $t7, -4($v0) -/* AC8DEC 80051C4C 448F4000 */ mtc1 $t7, $f8 -/* AC8DF0 80051C50 00000000 */ nop -/* AC8DF4 80051C54 46804120 */ cvt.s.w $f4, $f8 -/* AC8DF8 80051C58 E6040008 */ swc1 $f4, 8($s0) -/* AC8DFC 80051C5C 84580000 */ lh $t8, ($v0) -/* AC8E00 80051C60 A618000C */ sh $t8, 0xc($s0) -/* AC8E04 80051C64 8D08FA90 */ lw $t0, %lo(gGameInfo)($t0) -/* AC8E08 80051C68 85030314 */ lh $v1, 0x314($t0) -.L80051C6C: -/* AC8E0C 80051C6C 50600004 */ beql $v1, $zero, .L80051C80 -/* AC8E10 80051C70 8619000C */ lh $t9, 0xc($s0) -/* AC8E14 80051C74 0C011495 */ jal Camera_CopyPREGToModeValues -/* AC8E18 80051C78 02002025 */ move $a0, $s0 -/* AC8E1C 80051C7C 8619000C */ lh $t9, 0xc($s0) -.L80051C80: -/* AC8E20 80051C80 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 -/* AC8E24 80051C84 26020010 */ addiu $v0, $s0, 0x10 -/* AC8E28 80051C88 AC39D3A0 */ sw $t9, %lo(D_8011D3A0)($at) -/* AC8E2C 80051C8C 8603015E */ lh $v1, 0x15e($s0) -/* AC8E30 80051C90 240C0001 */ li $t4, 1 -/* AC8E34 80051C94 02002025 */ move $a0, $s0 -/* AC8E38 80051C98 50600006 */ beql $v1, $zero, .L80051CB4 -/* AC8E3C 80051C9C 860B000C */ lh $t3, 0xc($s0) -/* AC8E40 80051CA0 8609000C */ lh $t1, 0xc($s0) -/* AC8E44 80051CA4 844A0004 */ lh $t2, 4($v0) -/* AC8E48 80051CA8 112A0005 */ beq $t1, $t2, .L80051CC0 -/* AC8E4C 80051CAC 00000000 */ nop -/* AC8E50 80051CB0 860B000C */ lh $t3, 0xc($s0) -.L80051CB4: -/* AC8E54 80051CB4 26020010 */ addiu $v0, $s0, 0x10 -/* AC8E58 80051CB8 A44B0004 */ sh $t3, 4($v0) -/* AC8E5C 80051CBC 8603015E */ lh $v1, 0x15e($s0) -.L80051CC0: -/* AC8E60 80051CC0 54600011 */ bnezl $v1, .L80051D08 -/* AC8E64 80051CC4 8E090094 */ lw $t1, 0x94($s0) -/* AC8E68 80051CC8 A60C015E */ sh $t4, 0x15e($s0) -/* AC8E6C 80051CCC 0C010ED8 */ jal func_80043B60 -/* AC8E70 80051CD0 AFA20034 */ sw $v0, 0x34($sp) -/* AC8E74 80051CD4 3C014348 */ li $at, 0x43480000 # 0.000000 -/* AC8E78 80051CD8 8FA20034 */ lw $v0, 0x34($sp) -/* AC8E7C 80051CDC 44813000 */ mtc1 $at, $f6 -/* AC8E80 80051CE0 00000000 */ nop -/* AC8E84 80051CE4 E4460000 */ swc1 $f6, ($v0) -/* AC8E88 80051CE8 860D000C */ lh $t5, 0xc($s0) -/* AC8E8C 80051CEC 31AE0010 */ andi $t6, $t5, 0x10 -/* AC8E90 80051CF0 51C00005 */ beql $t6, $zero, .L80051D08 -/* AC8E94 80051CF4 8E090094 */ lw $t1, 0x94($s0) -/* AC8E98 80051CF8 860F014C */ lh $t7, 0x14c($s0) -/* AC8E9C 80051CFC 31F8FFFB */ andi $t8, $t7, 0xfffb -/* AC8EA0 80051D00 A618014C */ sh $t8, 0x14c($s0) -/* AC8EA4 80051D04 8E090094 */ lw $t1, 0x94($s0) -.L80051D08: -/* AC8EA8 80051D08 27A80070 */ addiu $t0, $sp, 0x70 -/* AC8EAC 80051D0C 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC8EB0 80051D10 AD090000 */ sw $t1, ($t0) -/* AC8EB4 80051D14 8E190098 */ lw $t9, 0x98($s0) -/* AC8EB8 80051D18 27A40068 */ addiu $a0, $sp, 0x68 -/* AC8EBC 80051D1C 02202825 */ move $a1, $s1 -/* AC8EC0 80051D20 AD190004 */ sw $t9, 4($t0) -/* AC8EC4 80051D24 8E09009C */ lw $t1, 0x9c($s0) -/* AC8EC8 80051D28 AD090008 */ sw $t1, 8($t0) -/* AC8ECC 80051D2C 860A000C */ lh $t2, 0xc($s0) -/* AC8ED0 80051D30 C7AA0070 */ lwc1 $f10, 0x70($sp) -/* AC8ED4 80051D34 314B0001 */ andi $t3, $t2, 1 -/* AC8ED8 80051D38 51600005 */ beql $t3, $zero, .L80051D50 -/* AC8EDC 80051D3C C61000E0 */ lwc1 $f16, 0xe0($s0) -/* AC8EE0 80051D40 44818000 */ mtc1 $at, $f16 -/* AC8EE4 80051D44 10000003 */ b .L80051D54 -/* AC8EE8 80051D48 C6200000 */ lwc1 $f0, ($s1) -/* AC8EEC 80051D4C C61000E0 */ lwc1 $f16, 0xe0($s0) -.L80051D50: -/* AC8EF0 80051D50 C6200000 */ lwc1 $f0, ($s1) -.L80051D54: -/* AC8EF4 80051D54 3C018014 */ lui $at, %hi(D_8013A1F0) -/* AC8EF8 80051D58 C432A1F0 */ lwc1 $f18, %lo(D_8013A1F0)($at) -/* AC8EFC 80051D5C 46005201 */ sub.s $f8, $f10, $f0 -/* AC8F00 80051D60 C6220004 */ lwc1 $f2, 4($s1) -/* AC8F04 80051D64 3C018014 */ lui $at, %hi(D_8013A1F4) -/* AC8F08 80051D68 C62C0008 */ lwc1 $f12, 8($s1) -/* AC8F0C 80051D6C 46104102 */ mul.s $f4, $f8, $f16 -/* AC8F10 80051D70 00000000 */ nop -/* AC8F14 80051D74 46122182 */ mul.s $f6, $f4, $f18 -/* AC8F18 80051D78 46060280 */ add.s $f10, $f0, $f6 -/* AC8F1C 80051D7C E62A0000 */ swc1 $f10, ($s1) -/* AC8F20 80051D80 C7A40048 */ lwc1 $f4, 0x48($sp) -/* AC8F24 80051D84 C7A80074 */ lwc1 $f8, 0x74($sp) -/* AC8F28 80051D88 C60A0000 */ lwc1 $f10, ($s0) -/* AC8F2C 80051D8C 46044180 */ add.s $f6, $f8, $f4 -/* AC8F30 80051D90 460A3200 */ add.s $f8, $f6, $f10 -/* AC8F34 80051D94 C426A1F4 */ lwc1 $f6, %lo(D_8013A1F4)($at) -/* AC8F38 80051D98 3C014000 */ li $at, 0x40000000 # 0.000000 -/* AC8F3C 80051D9C 46024101 */ sub.s $f4, $f8, $f2 -/* AC8F40 80051DA0 46062282 */ mul.s $f10, $f4, $f6 -/* AC8F44 80051DA4 460A1200 */ add.s $f8, $f2, $f10 -/* AC8F48 80051DA8 E6280004 */ swc1 $f8, 4($s1) -/* AC8F4C 80051DAC C7A40078 */ lwc1 $f4, 0x78($sp) -/* AC8F50 80051DB0 460C2181 */ sub.s $f6, $f4, $f12 -/* AC8F54 80051DB4 46103282 */ mul.s $f10, $f6, $f16 -/* AC8F58 80051DB8 44813000 */ mtc1 $at, $f6 -/* AC8F5C 80051DBC 3C018014 */ lui $at, %hi(D_8013A1F8) -/* AC8F60 80051DC0 46125202 */ mul.s $f8, $f10, $f18 -/* AC8F64 80051DC4 46086100 */ add.s $f4, $f12, $f8 -/* AC8F68 80051DC8 E6240008 */ swc1 $f4, 8($s1) -/* AC8F6C 80051DCC C44E0000 */ lwc1 $f14, ($v0) -/* AC8F70 80051DD0 C428A1F8 */ lwc1 $f8, %lo(D_8013A1F8)($at) -/* AC8F74 80051DD4 460E3281 */ sub.s $f10, $f6, $f14 -/* AC8F78 80051DD8 46085102 */ mul.s $f4, $f10, $f8 -/* AC8F7C 80051DDC 46047180 */ add.s $f6, $f14, $f4 -/* AC8F80 80051DE0 E4460000 */ swc1 $f6, ($v0) -/* AC8F84 80051DE4 8603000C */ lh $v1, 0xc($s0) -/* AC8F88 80051DE8 306C0001 */ andi $t4, $v1, 1 -/* AC8F8C 80051DEC 11800015 */ beqz $t4, .L80051E44 -/* AC8F90 80051DF0 306D0002 */ andi $t5, $v1, 2 -/* AC8F94 80051DF4 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC8F98 80051DF8 26060074 */ addiu $a2, $s0, 0x74 -/* AC8F9C 80051DFC C60A0004 */ lwc1 $f10, 4($s0) -/* AC8FA0 80051E00 27A40070 */ addiu $a0, $sp, 0x70 -/* AC8FA4 80051E04 02202825 */ move $a1, $s1 -/* AC8FA8 80051E08 27A60068 */ addiu $a2, $sp, 0x68 -/* AC8FAC 80051E0C 0C010F0A */ jal func_80043C28 -/* AC8FB0 80051E10 E7AA0068 */ swc1 $f10, 0x68($sp) -/* AC8FB4 80051E14 3C013E80 */ li $at, 0x3E800000 # 0.000000 -/* AC8FB8 80051E18 44810000 */ mtc1 $at, $f0 -/* AC8FBC 80051E1C 3C018014 */ lui $at, %hi(D_8013A1FC) -/* AC8FC0 80051E20 C428A1FC */ lwc1 $f8, %lo(D_8013A1FC)($at) -/* AC8FC4 80051E24 44060000 */ mfc1 $a2, $f0 -/* AC8FC8 80051E28 44070000 */ mfc1 $a3, $f0 -/* AC8FCC 80051E2C 27A40070 */ addiu $a0, $sp, 0x70 -/* AC8FD0 80051E30 8FA5003C */ lw $a1, 0x3c($sp) -/* AC8FD4 80051E34 0C010E8F */ jal func_80043A3C -/* AC8FD8 80051E38 E7A80010 */ swc1 $f8, 0x10($sp) -/* AC8FDC 80051E3C 1000002C */ b .L80051EF0 -/* AC8FE0 80051E40 02002025 */ move $a0, $s0 -.L80051E44: -/* AC8FE4 80051E44 11A00029 */ beqz $t5, .L80051EEC -/* AC8FE8 80051E48 02202025 */ move $a0, $s1 -/* AC8FEC 80051E4C 26050074 */ addiu $a1, $s0, 0x74 -/* AC8FF0 80051E50 0C01F00A */ jal OLib_Vec3fDistXZ -/* AC8FF4 80051E54 AFA50034 */ sw $a1, 0x34($sp) -/* AC8FF8 80051E58 C6040004 */ lwc1 $f4, 4($s0) -/* AC8FFC 80051E5C 8FA60034 */ lw $a2, 0x34($sp) -/* AC9000 80051E60 3C013E80 */ li $at, 0x3E800000 # 0.000000 -/* AC9004 80051E64 4604003C */ c.lt.s $f0, $f4 -/* AC9008 80051E68 8FA40034 */ lw $a0, 0x34($sp) -/* AC900C 80051E6C 8FA5003C */ lw $a1, 0x3c($sp) -/* AC9010 80051E70 45020018 */ bc1fl .L80051ED4 -/* AC9014 80051E74 44810000 */ mtc1 $at, $f0 -/* AC9018 80051E78 27A40068 */ addiu $a0, $sp, 0x68 -/* AC901C 80051E7C 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC9020 80051E80 02202825 */ move $a1, $s1 -/* AC9024 80051E84 3C063DCC */ li $a2, 0x3DCC0000 # 0.000000 -/* AC9028 80051E88 34C6CCCD */ ori $a2, (0x3DCCCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd -/* AC902C 80051E8C 87A4006E */ lh $a0, 0x6e($sp) -/* AC9030 80051E90 87A50066 */ lh $a1, 0x66($sp) -/* AC9034 80051E94 0C010E47 */ jal func_8004391C -/* AC9038 80051E98 2407000A */ li $a3, 10 -/* AC903C 80051E9C A7A2006E */ sh $v0, 0x6e($sp) -/* AC9040 80051EA0 C6060004 */ lwc1 $f6, 4($s0) -/* AC9044 80051EA4 A7A0006C */ sh $zero, 0x6c($sp) -/* AC9048 80051EA8 8FA4003C */ lw $a0, 0x3c($sp) -/* AC904C 80051EAC 02202825 */ move $a1, $s1 -/* AC9050 80051EB0 27A60068 */ addiu $a2, $sp, 0x68 -/* AC9054 80051EB4 0C010F0A */ jal func_80043C28 -/* AC9058 80051EB8 E7A60068 */ swc1 $f6, 0x68($sp) -/* AC905C 80051EBC 8FAE0034 */ lw $t6, 0x34($sp) -/* AC9060 80051EC0 8FAF003C */ lw $t7, 0x3c($sp) -/* AC9064 80051EC4 C5CA0004 */ lwc1 $f10, 4($t6) -/* AC9068 80051EC8 10000008 */ b .L80051EEC -/* AC906C 80051ECC E5EA0004 */ swc1 $f10, 4($t7) -/* AC9070 80051ED0 44810000 */ mtc1 $at, $f0 -.L80051ED4: -/* AC9074 80051ED4 3C018014 */ lui $at, %hi(D_8013A200) -/* AC9078 80051ED8 C428A200 */ lwc1 $f8, %lo(D_8013A200)($at) -/* AC907C 80051EDC 44060000 */ mfc1 $a2, $f0 -/* AC9080 80051EE0 44070000 */ mfc1 $a3, $f0 -/* AC9084 80051EE4 0C010E8F */ jal func_80043A3C -/* AC9088 80051EE8 E7A80010 */ swc1 $f8, 0x10($sp) -.L80051EEC: -/* AC908C 80051EEC 02002025 */ move $a0, $s0 -.L80051EF0: -/* AC9090 80051EF0 02202825 */ move $a1, $s1 -/* AC9094 80051EF4 0C010FCD */ jal func_80043F34 -/* AC9098 80051EF8 8FA6003C */ lw $a2, 0x3c($sp) -/* AC909C 80051EFC 02202025 */ move $a0, $s1 -/* AC90A0 80051F00 0C01EFE4 */ jal OLib_Vec3fDist -/* AC90A4 80051F04 8FA5003C */ lw $a1, 0x3c($sp) -/* AC90A8 80051F08 3C063E4C */ lui $a2, (0x3E4CCCCD >> 16) # lui $a2, 0x3e4c -/* AC90AC 80051F0C 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC90B0 80051F10 E60000DC */ swc1 $f0, 0xdc($s0) -/* AC90B4 80051F14 A600015A */ sh $zero, 0x15a($s0) -/* AC90B8 80051F18 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC90BC 80051F1C 34C6CCCD */ ori $a2, (0x3E4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd -/* AC90C0 80051F20 C60C0008 */ lwc1 $f12, 8($s0) -/* AC90C4 80051F24 0C010E27 */ jal func_8004389C -/* AC90C8 80051F28 C60E00FC */ lwc1 $f14, 0xfc($s0) -/* AC90CC 80051F2C E60000FC */ swc1 $f0, 0xfc($s0) -/* AC90D0 80051F30 02002025 */ move $a0, $s0 -/* AC90D4 80051F34 0C011429 */ jal func_800450A4 -/* AC90D8 80051F38 3C053F80 */ lui $a1, 0x3f80 -/* AC90DC 80051F3C E6000100 */ swc1 $f0, 0x100($s0) -/* AC90E0 80051F40 8FBF0024 */ lw $ra, 0x24($sp) -/* AC90E4 80051F44 8FB10020 */ lw $s1, 0x20($sp) -/* AC90E8 80051F48 8FB0001C */ lw $s0, 0x1c($sp) -/* AC90EC 80051F4C 27BD0088 */ addiu $sp, $sp, 0x88 -/* AC90F0 80051F50 03E00008 */ jr $ra -/* AC90F4 80051F54 24020001 */ li $v0, 1 diff --git a/asm/non_matchings/code/z_camera/Camera_Unique3.s b/asm/non_matchings/code/z_camera/Camera_Unique3.s deleted file mode 100644 index d702e7dbf0..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Unique3.s +++ /dev/null @@ -1,361 +0,0 @@ -.late_rodata -glabel D_8013A204 - .float 0.01 - -glabel jtbl_8013A208 - .word L800520A8 - .word L800520EC - .word L800521A0 - .word L80052208 - .word L80052230 - .word L80052318 - -glabel D_8013A220 - .float 0.001 - -.text -glabel Camera_Unique3 -/* AC90F8 80051F58 27BDFF98 */ addiu $sp, $sp, -0x68 -/* AC90FC 80051F5C AFB00018 */ sw $s0, 0x18($sp) -/* AC9100 80051F60 00808025 */ move $s0, $a0 -/* AC9104 80051F64 AFBF001C */ sw $ra, 0x1c($sp) -/* AC9108 80051F68 0C00B721 */ jal Player_GetCameraYOffset -/* AC910C 80051F6C 8C840090 */ lw $a0, 0x90($a0) -/* AC9110 80051F70 E7A0005C */ swc1 $f0, 0x5c($sp) -/* AC9114 80051F74 860E014C */ lh $t6, 0x14c($s0) -/* AC9118 80051F78 8602015E */ lh $v0, 0x15e($s0) -/* AC911C 80051F7C 2401000A */ li $at, 10 -/* AC9120 80051F80 31CFFFEF */ andi $t7, $t6, 0xffef -/* AC9124 80051F84 10400008 */ beqz $v0, .L80051FA8 -/* AC9128 80051F88 A60F014C */ sh $t7, 0x14c($s0) -/* AC912C 80051F8C 10410006 */ beq $v0, $at, .L80051FA8 -/* AC9130 80051F90 24010014 */ li $at, 20 -/* AC9134 80051F94 10410004 */ beq $v0, $at, .L80051FA8 -/* AC9138 80051F98 3C188016 */ lui $t8, %hi(gGameInfo) # $t8, 0x8016 -/* AC913C 80051F9C 8F18FA90 */ lw $t8, %lo(gGameInfo)($t8) -/* AC9140 80051FA0 87030314 */ lh $v1, 0x314($t8) -/* AC9144 80051FA4 1060002E */ beqz $v1, .L80052060 -.L80051FA8: -/* AC9148 80051FA8 3C018014 */ lui $at, %hi(D_8013A204) -/* AC914C 80051FAC C42EA204 */ lwc1 $f14, %lo(D_8013A204)($at) -/* AC9150 80051FB0 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AC9154 80051FB4 44814000 */ mtc1 $at, $f8 -/* AC9158 80051FB8 3C014288 */ lui $at, 0x4288 -/* AC915C 80051FBC 3C0D8016 */ lui $t5, %hi(gGameInfo) -/* AC9160 80051FC0 8DADFA90 */ lw $t5, %lo(gGameInfo)($t5) -/* AC9164 80051FC4 44818000 */ mtc1 $at, $f16 -/* AC9168 80051FC8 86190142 */ lh $t9, 0x142($s0) -/* AC916C 80051FCC 85AE01F0 */ lh $t6, 0x1f0($t5) -/* AC9170 80051FD0 46008483 */ div.s $f18, $f16, $f0 -/* AC9174 80051FD4 3C098012 */ lui $t1, %hi(sCameraSettings+4) -/* AC9178 80051FD8 448E2000 */ mtc1 $t6, $f4 -/* AC917C 80051FDC 001940C0 */ sll $t0, $t9, 3 -/* AC9180 80051FE0 860A0144 */ lh $t2, 0x144($s0) -/* AC9184 80051FE4 468021A0 */ cvt.s.w $f6, $f4 -/* AC9188 80051FE8 01284821 */ addu $t1, $t1, $t0 -/* AC918C 80051FEC 8D29D068 */ lw $t1, %lo(sCameraSettings+4)($t1) -/* AC9190 80051FF0 000A58C0 */ sll $t3, $t2, 3 -/* AC9194 80051FF4 2604000C */ addiu $a0, $s0, 0xc -/* AC9198 80051FF8 012B6021 */ addu $t4, $t1, $t3 -/* AC919C 80051FFC 8D820004 */ lw $v0, 4($t4) -/* AC91A0 80052000 3C088016 */ lui $t0, %hi(gGameInfo) # $t0, 0x8016 -/* AC91A4 80052004 844F0000 */ lh $t7, ($v0) -/* AC91A8 80052008 24420008 */ addiu $v0, $v0, 8 -/* AC91AC 8005200C 460E3082 */ mul.s $f2, $f6, $f14 -/* AC91B0 80052010 448F3000 */ mtc1 $t7, $f6 -/* AC91B4 80052014 46024280 */ add.s $f10, $f8, $f2 -/* AC91B8 80052018 46121102 */ mul.s $f4, $f2, $f18 -/* AC91BC 8005201C 46803220 */ cvt.s.w $f8, $f6 -/* AC91C0 80052020 46045301 */ sub.s $f12, $f10, $f4 -/* AC91C4 80052024 460E4402 */ mul.s $f16, $f8, $f14 -/* AC91C8 80052028 00000000 */ nop -/* AC91CC 8005202C 46008482 */ mul.s $f18, $f16, $f0 -/* AC91D0 80052030 00000000 */ nop -/* AC91D4 80052034 460C9282 */ mul.s $f10, $f18, $f12 -/* AC91D8 80052038 E48A0000 */ swc1 $f10, ($a0) -/* AC91DC 8005203C 8458FFFC */ lh $t8, -4($v0) -/* AC91E0 80052040 44982000 */ mtc1 $t8, $f4 -/* AC91E4 80052044 00000000 */ nop -/* AC91E8 80052048 468021A0 */ cvt.s.w $f6, $f4 -/* AC91EC 8005204C E4860004 */ swc1 $f6, 4($a0) -/* AC91F0 80052050 84590000 */ lh $t9, ($v0) -/* AC91F4 80052054 A4990008 */ sh $t9, 8($a0) -/* AC91F8 80052058 8D08FA90 */ lw $t0, %lo(gGameInfo)($t0) -/* AC91FC 8005205C 85030314 */ lh $v1, 0x314($t0) -.L80052060: -/* AC9200 80052060 260A000C */ addiu $t2, $s0, 0xc -/* AC9204 80052064 10600003 */ beqz $v1, .L80052074 -/* AC9208 80052068 AFAA0028 */ sw $t2, 0x28($sp) -/* AC920C 8005206C 0C011495 */ jal Camera_CopyPREGToModeValues -/* AC9210 80052070 02002025 */ move $a0, $s0 -.L80052074: -/* AC9214 80052074 8FA90028 */ lw $t1, 0x28($sp) -/* AC9218 80052078 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 -/* AC921C 8005207C 852B0008 */ lh $t3, 8($t1) -/* AC9220 80052080 AC2BD3A0 */ sw $t3, %lo(D_8011D3A0)($at) -/* AC9224 80052084 960C015E */ lhu $t4, 0x15e($s0) -/* AC9228 80052088 2D810006 */ sltiu $at, $t4, 6 -/* AC922C 8005208C 102000D1 */ beqz $at, .L800523D4 -/* AC9230 80052090 000C6080 */ sll $t4, $t4, 2 -/* AC9234 80052094 3C018014 */ lui $at, %hi(jtbl_8013A208) -/* AC9238 80052098 002C0821 */ addu $at, $at, $t4 -/* AC923C 8005209C 8C2CA208 */ lw $t4, %lo(jtbl_8013A208)($at) -/* AC9240 800520A0 01800008 */ jr $t4 -/* AC9244 800520A4 00000000 */ nop - -glabel L800520A8 -/* AC9248 800520A8 0C010ED8 */ jal func_80043B60 -/* AC924C 800520AC 02002025 */ move $a0, $s0 -/* AC9250 800520B0 860D014C */ lh $t5, 0x14c($s0) -/* AC9254 800520B4 C60800FC */ lwc1 $f8, 0xfc($s0) -/* AC9258 800520B8 26020018 */ addiu $v0, $s0, 0x18 -/* AC925C 800520BC 31AEFFF3 */ andi $t6, $t5, 0xfff3 -/* AC9260 800520C0 A60E014C */ sh $t6, 0x14c($s0) -/* AC9264 800520C4 E4480000 */ swc1 $f8, ($v0) -/* AC9268 800520C8 AFA2002C */ sw $v0, 0x2c($sp) -/* AC926C 800520CC 26040050 */ addiu $a0, $s0, 0x50 -/* AC9270 800520D0 0C01EFE4 */ jal OLib_Vec3fDist -/* AC9274 800520D4 2605005C */ addiu $a1, $s0, 0x5c -/* AC9278 800520D8 8FA2002C */ lw $v0, 0x2c($sp) -/* AC927C 800520DC E4400004 */ swc1 $f0, 4($v0) -/* AC9280 800520E0 860F015E */ lh $t7, 0x15e($s0) -/* AC9284 800520E4 25F80001 */ addiu $t8, $t7, 1 -/* AC9288 800520E8 A618015E */ sh $t8, 0x15e($s0) - -glabel L800520EC -/* AC928C 800520EC 86020006 */ lh $v0, 6($s0) -/* AC9290 800520F0 02002025 */ move $a0, $s0 -/* AC9294 800520F4 26080050 */ addiu $t0, $s0, 0x50 -/* AC9298 800520F8 0002182A */ slt $v1, $zero, $v0 -/* AC929C 800520FC 2459FFFF */ addiu $t9, $v0, -1 -/* AC92A0 80052100 146000D2 */ bnez $v1, .L8005244C -/* AC92A4 80052104 A6190006 */ sh $t9, 6($s0) -/* AC92A8 80052108 260A005C */ addiu $t2, $s0, 0x5c -/* AC92AC 8005210C AFAA0024 */ sw $t2, 0x24($sp) -/* AC92B0 80052110 0C0111DB */ jal func_8004476C -/* AC92B4 80052114 AFA8002C */ sw $t0, 0x2c($sp) -/* AC92B8 80052118 26040074 */ addiu $a0, $s0, 0x74 -/* AC92BC 8005211C AFA20054 */ sw $v0, 0x54($sp) -/* AC92C0 80052120 AFA40020 */ sw $a0, 0x20($sp) -/* AC92C4 80052124 0C010EF1 */ jal func_80043BC4 -/* AC92C8 80052128 00402825 */ move $a1, $v0 -/* AC92CC 8005212C 8FA90020 */ lw $t1, 0x20($sp) -/* AC92D0 80052130 8FA50024 */ lw $a1, 0x24($sp) -/* AC92D4 80052134 27AD004C */ addiu $t5, $sp, 0x4c -/* AC92D8 80052138 8D2C0000 */ lw $t4, ($t1) -/* AC92DC 8005213C 3C0142C8 */ li $at, 0x42C80000 # 0.000000 -/* AC92E0 80052140 44818000 */ mtc1 $at, $f16 -/* AC92E4 80052144 ACAC0000 */ sw $t4, ($a1) -/* AC92E8 80052148 8D2B0004 */ lw $t3, 4($t1) -/* AC92EC 8005214C 27A60060 */ addiu $a2, $sp, 0x60 -/* AC92F0 80052150 ACAB0004 */ sw $t3, 4($a1) -/* AC92F4 80052154 8D2C0008 */ lw $t4, 8($t1) -/* AC92F8 80052158 ACAC0008 */ sw $t4, 8($a1) -/* AC92FC 8005215C 8FAE0054 */ lw $t6, 0x54($sp) -/* AC9300 80052160 89D80006 */ lwl $t8, 6($t6) -/* AC9304 80052164 99D80009 */ lwr $t8, 9($t6) -/* AC9308 80052168 ADB80000 */ sw $t8, ($t5) -/* AC930C 8005216C 95D8000A */ lhu $t8, 0xa($t6) -/* AC9310 80052170 A5B80004 */ sh $t8, 4($t5) -/* AC9314 80052174 87A8004C */ lh $t0, 0x4c($sp) -/* AC9318 80052178 87B9004E */ lh $t9, 0x4e($sp) -/* AC931C 8005217C 8FA4002C */ lw $a0, 0x2c($sp) -/* AC9320 80052180 00085023 */ negu $t2, $t0 -/* AC9324 80052184 A7AA0064 */ sh $t2, 0x64($sp) -/* AC9328 80052188 E7B00060 */ swc1 $f16, 0x60($sp) -/* AC932C 8005218C 0C010F0A */ jal func_80043C28 -/* AC9330 80052190 A7B90066 */ sh $t9, 0x66($sp) -/* AC9334 80052194 8609015E */ lh $t1, 0x15e($s0) -/* AC9338 80052198 252B0001 */ addiu $t3, $t1, 1 -/* AC933C 8005219C A60B015E */ sh $t3, 0x15e($s0) - -glabel L800521A0 -/* AC9340 800521A0 8FAC0028 */ lw $t4, 0x28($sp) -/* AC9344 800521A4 858D0008 */ lh $t5, 8($t4) -/* AC9348 800521A8 31AE0004 */ andi $t6, $t5, 4 -/* AC934C 800521AC 51C0000F */ beql $t6, $zero, .L800521EC -/* AC9350 800521B0 86020008 */ lh $v0, 8($s0) -/* AC9354 800521B4 8E180094 */ lw $t8, 0x94($s0) -/* AC9358 800521B8 8E0F0098 */ lw $t7, 0x98($s0) -/* AC935C 800521BC AE180050 */ sw $t8, 0x50($s0) -/* AC9360 800521C0 8E18009C */ lw $t8, 0x9c($s0) -/* AC9364 800521C4 AE0F0054 */ sw $t7, 0x54($s0) -/* AC9368 800521C8 C6060054 */ lwc1 $f6, 0x54($s0) -/* AC936C 800521CC AE180058 */ sw $t8, 0x58($s0) -/* AC9370 800521D0 8FB90028 */ lw $t9, 0x28($sp) -/* AC9374 800521D4 C7B2005C */ lwc1 $f18, 0x5c($sp) -/* AC9378 800521D8 C72A0000 */ lwc1 $f10, ($t9) -/* AC937C 800521DC 460A9100 */ add.s $f4, $f18, $f10 -/* AC9380 800521E0 46043200 */ add.s $f8, $f6, $f4 -/* AC9384 800521E4 E6080054 */ swc1 $f8, 0x54($s0) -/* AC9388 800521E8 86020008 */ lh $v0, 8($s0) -.L800521EC: -/* AC938C 800521EC 0002182A */ slt $v1, $zero, $v0 -/* AC9390 800521F0 2448FFFF */ addiu $t0, $v0, -1 -/* AC9394 800521F4 14600095 */ bnez $v1, .L8005244C -/* AC9398 800521F8 A6080008 */ sh $t0, 8($s0) -/* AC939C 800521FC 860A015E */ lh $t2, 0x15e($s0) -/* AC93A0 80052200 25490001 */ addiu $t1, $t2, 1 -/* AC93A4 80052204 A609015E */ sh $t1, 0x15e($s0) - -glabel L80052208 -/* AC93A8 80052208 860B014C */ lh $t3, 0x14c($s0) -/* AC93AC 8005220C 356C0410 */ ori $t4, $t3, 0x410 -/* AC93B0 80052210 A60C014C */ sh $t4, 0x14c($s0) -/* AC93B4 80052214 860D014C */ lh $t5, 0x14c($s0) -/* AC93B8 80052218 31AE0008 */ andi $t6, $t5, 8 -/* AC93BC 8005221C 51C0008C */ beql $t6, $zero, .L80052450 -/* AC93C0 80052220 8FBF001C */ lw $ra, 0x1c($sp) -/* AC93C4 80052224 860F015E */ lh $t7, 0x15e($s0) -/* AC93C8 80052228 25F80001 */ addiu $t8, $t7, 1 -/* AC93CC 8005222C A618015E */ sh $t8, 0x15e($s0) - -glabel L80052230 -/* AC93D0 80052230 8FB90028 */ lw $t9, 0x28($sp) -/* AC93D4 80052234 240E0005 */ li $t6, 5 -/* AC93D8 80052238 3C018014 */ lui $at, %hi(D_8013A220) -/* AC93DC 8005223C 87280008 */ lh $t0, 8($t9) -/* AC93E0 80052240 310A0002 */ andi $t2, $t0, 2 -/* AC93E4 80052244 5140000E */ beql $t2, $zero, .L80052280 -/* AC93E8 80052248 A60E000A */ sh $t6, 0xa($s0) -/* AC93EC 8005224C 8609014C */ lh $t1, 0x14c($s0) -/* AC93F0 80052250 02002025 */ move $a0, $s0 -/* AC93F4 80052254 24050018 */ li $a1, 24 -/* AC93F8 80052258 352B0004 */ ori $t3, $t1, 4 -/* AC93FC 8005225C A60B014C */ sh $t3, 0x14c($s0) -/* AC9400 80052260 860C014C */ lh $t4, 0x14c($s0) -/* AC9404 80052264 24060002 */ li $a2, 2 -/* AC9408 80052268 318DFFF7 */ andi $t5, $t4, 0xfff7 -/* AC940C 8005226C 0C016952 */ jal Camera_ChangeSetting -/* AC9410 80052270 A60D014C */ sh $t5, 0x14c($s0) -/* AC9414 80052274 10000076 */ b .L80052450 -/* AC9418 80052278 8FBF001C */ lw $ra, 0x1c($sp) -/* AC941C 8005227C A60E000A */ sh $t6, 0xa($s0) -.L80052280: -/* AC9420 80052280 C430A220 */ lwc1 $f16, %lo(D_8013A220)($at) -/* AC9424 80052284 C61200D8 */ lwc1 $f18, 0xd8($s0) -/* AC9428 80052288 3C0F8016 */ lui $t7, %hi(D_8015BD7C) # $t7, 0x8016 -/* AC942C 8005228C 4612803C */ c.lt.s $f16, $f18 -/* AC9430 80052290 00000000 */ nop -/* AC9434 80052294 4503001E */ bc1tl .L80052310 -/* AC9438 80052298 860E015E */ lh $t6, 0x15e($s0) -/* AC943C 8005229C 8DEFBD7C */ lw $t7, %lo(D_8015BD7C)($t7) -/* AC9440 800522A0 3C01FFFF */ lui $at, (0xFFFF7FFF >> 16) # lui $at, 0xffff -/* AC9444 800522A4 34217FFF */ ori $at, (0xFFFF7FFF & 0xFFFF) # ori $at, $at, 0x7fff -/* AC9448 800522A8 95E20020 */ lhu $v0, 0x20($t7) -/* AC944C 800522AC 0041C027 */ nor $t8, $v0, $at -/* AC9450 800522B0 13000016 */ beqz $t8, .L8005230C -/* AC9454 800522B4 2401BFFF */ li $at, -16385 -/* AC9458 800522B8 0041C827 */ nor $t9, $v0, $at -/* AC945C 800522BC 13200013 */ beqz $t9, .L8005230C -/* AC9460 800522C0 2401FFFD */ li $at, -3 -/* AC9464 800522C4 00414027 */ nor $t0, $v0, $at -/* AC9468 800522C8 11000010 */ beqz $t0, .L8005230C -/* AC946C 800522CC 2401FFFB */ li $at, -5 -/* AC9470 800522D0 00415027 */ nor $t2, $v0, $at -/* AC9474 800522D4 1140000D */ beqz $t2, .L8005230C -/* AC9478 800522D8 2401FFF7 */ li $at, -9 -/* AC947C 800522DC 00414827 */ nor $t1, $v0, $at -/* AC9480 800522E0 1120000A */ beqz $t1, .L8005230C -/* AC9484 800522E4 2401FFFE */ li $at, -2 -/* AC9488 800522E8 00415827 */ nor $t3, $v0, $at -/* AC948C 800522EC 11600007 */ beqz $t3, .L8005230C -/* AC9490 800522F0 2401FFEF */ li $at, -17 -/* AC9494 800522F4 00416027 */ nor $t4, $v0, $at -/* AC9498 800522F8 11800004 */ beqz $t4, .L8005230C -/* AC949C 800522FC 2401DFFF */ li $at, -8193 -/* AC94A0 80052300 00416827 */ nor $t5, $v0, $at -/* AC94A4 80052304 55A00052 */ bnezl $t5, .L80052450 -/* AC94A8 80052308 8FBF001C */ lw $ra, 0x1c($sp) -.L8005230C: -/* AC94AC 8005230C 860E015E */ lh $t6, 0x15e($s0) -.L80052310: -/* AC94B0 80052310 25CF0001 */ addiu $t7, $t6, 1 -/* AC94B4 80052314 A60F015E */ sh $t7, 0x15e($s0) - -glabel L80052318 -/* AC94B8 80052318 C60C0018 */ lwc1 $f12, 0x18($s0) -/* AC94BC 8005231C C60E00FC */ lwc1 $f14, 0xfc($s0) -/* AC94C0 80052320 3C063ECC */ lui $a2, (0x3ECCCCCD >> 16) # lui $a2, 0x3ecc -/* AC94C4 80052324 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* AC94C8 80052328 26180050 */ addiu $t8, $s0, 0x50 -/* AC94CC 8005232C 2619005C */ addiu $t9, $s0, 0x5c -/* AC94D0 80052330 26080074 */ addiu $t0, $s0, 0x74 -/* AC94D4 80052334 AFA80020 */ sw $t0, 0x20($sp) -/* AC94D8 80052338 AFB90024 */ sw $t9, 0x24($sp) -/* AC94DC 8005233C AFB8002C */ sw $t8, 0x2c($sp) -/* AC94E0 80052340 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC94E4 80052344 0C010E27 */ jal func_8004389C -/* AC94E8 80052348 34C6CCCD */ ori $a2, (0x3ECCCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd -/* AC94EC 8005234C E60000FC */ swc1 $f0, 0xfc($s0) -/* AC94F0 80052350 8FA60024 */ lw $a2, 0x24($sp) -/* AC94F4 80052354 8FA5002C */ lw $a1, 0x2c($sp) -/* AC94F8 80052358 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC94FC 8005235C 27A40060 */ addiu $a0, $sp, 0x60 -/* AC9500 80052360 3C0142C8 */ li $at, 0x42C80000 # 0.000000 -/* AC9504 80052364 44816000 */ mtc1 $at, $f12 -/* AC9508 80052368 3C063ECC */ lui $a2, (0x3ECCCCCD >> 16) # lui $a2, 0x3ecc -/* AC950C 8005236C 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000 -/* AC9510 80052370 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* AC9514 80052374 34C6CCCD */ ori $a2, (0x3ECCCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd -/* AC9518 80052378 0C010E27 */ jal func_8004389C -/* AC951C 8005237C C7AE0060 */ lwc1 $f14, 0x60($sp) -/* AC9520 80052380 E7A00060 */ swc1 $f0, 0x60($sp) -/* AC9524 80052384 8FA40020 */ lw $a0, 0x20($sp) -/* AC9528 80052388 8FA5002C */ lw $a1, 0x2c($sp) -/* AC952C 8005238C 0C010F0A */ jal func_80043C28 -/* AC9530 80052390 27A60060 */ addiu $a2, $sp, 0x60 -/* AC9534 80052394 8FA90020 */ lw $t1, 0x20($sp) -/* AC9538 80052398 8FAA0024 */ lw $t2, 0x24($sp) -/* AC953C 8005239C 8D2C0000 */ lw $t4, ($t1) -/* AC9540 800523A0 AD4C0000 */ sw $t4, ($t2) -/* AC9544 800523A4 8D2B0004 */ lw $t3, 4($t1) -/* AC9548 800523A8 AD4B0004 */ sw $t3, 4($t2) -/* AC954C 800523AC 8D2C0008 */ lw $t4, 8($t1) -/* AC9550 800523B0 AD4C0008 */ sw $t4, 8($t2) -/* AC9554 800523B4 8604000A */ lh $a0, 0xa($s0) -/* AC9558 800523B8 0004182A */ slt $v1, $zero, $a0 -/* AC955C 800523BC 248DFFFF */ addiu $t5, $a0, -1 -/* AC9560 800523C0 14600022 */ bnez $v1, .L8005244C -/* AC9564 800523C4 A60D000A */ sh $t5, 0xa($s0) -/* AC9568 800523C8 860E015E */ lh $t6, 0x15e($s0) -/* AC956C 800523CC 25CF0001 */ addiu $t7, $t6, 1 -/* AC9570 800523D0 A60F015E */ sh $t7, 0x15e($s0) -.L800523D4: -/* AC9574 800523D4 8618014C */ lh $t8, 0x14c($s0) -/* AC9578 800523D8 86050154 */ lh $a1, 0x154($s0) -/* AC957C 800523DC 26030094 */ addiu $v1, $s0, 0x94 -/* AC9580 800523E0 37190004 */ ori $t9, $t8, 4 -/* AC9584 800523E4 A619014C */ sh $t9, 0x14c($s0) -/* AC9588 800523E8 8608014C */ lh $t0, 0x14c($s0) -/* AC958C 800523EC 02002025 */ move $a0, $s0 -/* AC9590 800523F0 24060002 */ li $a2, 2 -/* AC9594 800523F4 310AFFF7 */ andi $t2, $t0, 0xfff7 -/* AC9598 800523F8 A60A014C */ sh $t2, 0x14c($s0) -/* AC959C 800523FC 8FA90028 */ lw $t1, 0x28($sp) -/* AC95A0 80052400 C52A0004 */ lwc1 $f10, 4($t1) -/* AC95A4 80052404 E60A00FC */ swc1 $f10, 0xfc($s0) -/* AC95A8 80052408 0C016952 */ jal Camera_ChangeSetting -/* AC95AC 8005240C AFA3002C */ sw $v1, 0x2c($sp) -/* AC95B0 80052410 44803000 */ mtc1 $zero, $f6 -/* AC95B4 80052414 8FA3002C */ lw $v1, 0x2c($sp) -/* AC95B8 80052418 C6040050 */ lwc1 $f4, 0x50($s0) -/* AC95BC 8005241C E6060100 */ swc1 $f6, 0x100($s0) -/* AC95C0 80052420 C4680000 */ lwc1 $f8, ($v1) -/* AC95C4 80052424 C6120054 */ lwc1 $f18, 0x54($s0) -/* AC95C8 80052428 46082401 */ sub.s $f16, $f4, $f8 -/* AC95CC 8005242C C6040058 */ lwc1 $f4, 0x58($s0) -/* AC95D0 80052430 E61000E4 */ swc1 $f16, 0xe4($s0) -/* AC95D4 80052434 C46A0004 */ lwc1 $f10, 4($v1) -/* AC95D8 80052438 460A9181 */ sub.s $f6, $f18, $f10 -/* AC95DC 8005243C E60600E8 */ swc1 $f6, 0xe8($s0) -/* AC95E0 80052440 C4680008 */ lwc1 $f8, 8($v1) -/* AC95E4 80052444 46082401 */ sub.s $f16, $f4, $f8 -/* AC95E8 80052448 E61000EC */ swc1 $f16, 0xec($s0) -.L8005244C: -/* AC95EC 8005244C 8FBF001C */ lw $ra, 0x1c($sp) -.L80052450: -/* AC95F0 80052450 8FB00018 */ lw $s0, 0x18($sp) -/* AC95F4 80052454 27BD0068 */ addiu $sp, $sp, 0x68 -/* AC95F8 80052458 03E00008 */ jr $ra -/* AC95FC 8005245C 24020001 */ li $v0, 1 diff --git a/asm/non_matchings/code/z_camera/Camera_Unique7.s b/asm/non_matchings/code/z_camera/Camera_Unique7.s deleted file mode 100644 index 0f5de726db..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Unique7.s +++ /dev/null @@ -1,163 +0,0 @@ -.late_rodata -glabel D_8013A22C - .float 0.01 - -.text -glabel Camera_Unique7 -/* AC9D30 80052B90 27BDFFA0 */ addiu $sp, $sp, -0x60 -/* AC9D34 80052B94 AFBF001C */ sw $ra, 0x1c($sp) -/* AC9D38 80052B98 AFB00018 */ sw $s0, 0x18($sp) -/* AC9D3C 80052B9C 8482015E */ lh $v0, 0x15e($a0) -/* AC9D40 80052BA0 00808025 */ move $s0, $a0 -/* AC9D44 80052BA4 10400009 */ beqz $v0, .L80052BCC -/* AC9D48 80052BA8 2401000A */ li $at, 10 -/* AC9D4C 80052BAC 10410007 */ beq $v0, $at, .L80052BCC -/* AC9D50 80052BB0 24010014 */ li $at, 20 -/* AC9D54 80052BB4 10410005 */ beq $v0, $at, .L80052BCC -/* AC9D58 80052BB8 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 -/* AC9D5C 80052BBC 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* AC9D60 80052BC0 85C30314 */ lh $v1, 0x314($t6) -/* AC9D64 80052BC4 10600015 */ beqz $v1, .L80052C1C -/* AC9D68 80052BC8 00000000 */ nop -.L80052BCC: -/* AC9D6C 80052BCC 860F0142 */ lh $t7, 0x142($s0) -/* AC9D70 80052BD0 3C198012 */ lui $t9, %hi(sCameraSettings+4) -/* AC9D74 80052BD4 86080144 */ lh $t0, 0x144($s0) -/* AC9D78 80052BD8 000FC0C0 */ sll $t8, $t7, 3 -/* AC9D7C 80052BDC 0338C821 */ addu $t9, $t9, $t8 -/* AC9D80 80052BE0 8F39D068 */ lw $t9, %lo(sCameraSettings+4)($t9) -/* AC9D84 80052BE4 000848C0 */ sll $t1, $t0, 3 -/* AC9D88 80052BE8 3C0D8016 */ lui $t5, %hi(gGameInfo) # $t5, 0x8016 -/* AC9D8C 80052BEC 03295021 */ addu $t2, $t9, $t1 -/* AC9D90 80052BF0 8D420004 */ lw $v0, 4($t2) -/* AC9D94 80052BF4 844B0000 */ lh $t3, ($v0) -/* AC9D98 80052BF8 24420004 */ addiu $v0, $v0, 4 -/* AC9D9C 80052BFC 448B2000 */ mtc1 $t3, $f4 -/* AC9DA0 80052C00 00000000 */ nop -/* AC9DA4 80052C04 468021A0 */ cvt.s.w $f6, $f4 -/* AC9DA8 80052C08 E6060000 */ swc1 $f6, ($s0) -/* AC9DAC 80052C0C 844C0000 */ lh $t4, ($v0) -/* AC9DB0 80052C10 A60C0004 */ sh $t4, 4($s0) -/* AC9DB4 80052C14 8DADFA90 */ lw $t5, %lo(gGameInfo)($t5) -/* AC9DB8 80052C18 85A30314 */ lh $v1, 0x314($t5) -.L80052C1C: -/* AC9DBC 80052C1C 10600003 */ beqz $v1, .L80052C2C -/* AC9DC0 80052C20 00000000 */ nop -/* AC9DC4 80052C24 0C011495 */ jal Camera_CopyPREGToModeValues -/* AC9DC8 80052C28 02002025 */ move $a0, $s0 -.L80052C2C: -/* AC9DCC 80052C2C 0C0111DB */ jal func_8004476C -/* AC9DD0 80052C30 02002025 */ move $a0, $s0 -/* AC9DD4 80052C34 26070074 */ addiu $a3, $s0, 0x74 -/* AC9DD8 80052C38 AFA20044 */ sw $v0, 0x44($sp) -/* AC9DDC 80052C3C 00E02025 */ move $a0, $a3 -/* AC9DE0 80052C40 AFA70020 */ sw $a3, 0x20($sp) -/* AC9DE4 80052C44 0C010EF1 */ jal func_80043BC4 -/* AC9DE8 80052C48 00402825 */ move $a1, $v0 -/* AC9DEC 80052C4C 8FA70020 */ lw $a3, 0x20($sp) -/* AC9DF0 80052C50 2605005C */ addiu $a1, $s0, 0x5c -/* AC9DF4 80052C54 27B8003C */ addiu $t8, $sp, 0x3c -/* AC9DF8 80052C58 8CEF0000 */ lw $t7, ($a3) -/* AC9DFC 80052C5C 27A4004C */ addiu $a0, $sp, 0x4c -/* AC9E00 80052C60 26060094 */ addiu $a2, $s0, 0x94 -/* AC9E04 80052C64 ACAF0000 */ sw $t7, ($a1) -/* AC9E08 80052C68 8CEE0004 */ lw $t6, 4($a3) -/* AC9E0C 80052C6C ACAE0004 */ sw $t6, 4($a1) -/* AC9E10 80052C70 8CEF0008 */ lw $t7, 8($a3) -/* AC9E14 80052C74 ACAF0008 */ sw $t7, 8($a1) -/* AC9E18 80052C78 8FA80044 */ lw $t0, 0x44($sp) -/* AC9E1C 80052C7C 89090006 */ lwl $t1, 6($t0) -/* AC9E20 80052C80 99090009 */ lwr $t1, 9($t0) -/* AC9E24 80052C84 AF090000 */ sw $t1, ($t8) -/* AC9E28 80052C88 9509000A */ lhu $t1, 0xa($t0) -/* AC9E2C 80052C8C A7090004 */ sh $t1, 4($t8) -/* AC9E30 80052C90 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AC9E34 80052C94 AFA50024 */ sw $a1, 0x24($sp) -/* AC9E38 80052C98 8FAA0044 */ lw $t2, 0x44($sp) -/* AC9E3C 80052C9C 2401FFFF */ li $at, -1 -/* AC9E40 80052CA0 3C063ECC */ lui $a2, (0x3ECCCCCD >> 16) # lui $a2, 0x3ecc -/* AC9E44 80052CA4 8543000C */ lh $v1, 0xc($t2) -/* AC9E48 80052CA8 34C6CCCD */ ori $a2, (0x3ECCCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd -/* AC9E4C 80052CAC 14610009 */ bne $v1, $at, .L80052CD4 -/* AC9E50 80052CB0 3C0142C8 */ li $at, 0x42C80000 # 0.000000 -/* AC9E54 80052CB4 44815000 */ mtc1 $at, $f10 -/* AC9E58 80052CB8 C6080000 */ lwc1 $f8, ($s0) -/* AC9E5C 80052CBC 460A4402 */ mul.s $f16, $f8, $f10 -/* AC9E60 80052CC0 4600848D */ trunc.w.s $f18, $f16 -/* AC9E64 80052CC4 44039000 */ mfc1 $v1, $f18 -/* AC9E68 80052CC8 00000000 */ nop -/* AC9E6C 80052CCC 00031C00 */ sll $v1, $v1, 0x10 -/* AC9E70 80052CD0 00031C03 */ sra $v1, $v1, 0x10 -.L80052CD4: -/* AC9E74 80052CD4 28610169 */ slti $at, $v1, 0x169 -/* AC9E78 80052CD8 10200008 */ beqz $at, .L80052CFC -/* AC9E7C 80052CDC 00600821 */ addu $at, $v1, $zero -/* AC9E80 80052CE0 00031880 */ sll $v1, $v1, 2 -/* AC9E84 80052CE4 00611823 */ subu $v1, $v1, $at -/* AC9E88 80052CE8 000318C0 */ sll $v1, $v1, 3 -/* AC9E8C 80052CEC 00611821 */ addu $v1, $v1, $at -/* AC9E90 80052CF0 00031880 */ sll $v1, $v1, 2 -/* AC9E94 80052CF4 00031C00 */ sll $v1, $v1, 0x10 -/* AC9E98 80052CF8 00031C03 */ sra $v1, $v1, 0x10 -.L80052CFC: -/* AC9E9C 80052CFC 860C0004 */ lh $t4, 4($s0) -/* AC9EA0 80052D00 3C018012 */ lui $at, %hi(D_8011D3A0) -/* AC9EA4 80052D04 AC2CD3A0 */ sw $t4, %lo(D_8011D3A0)($at) -/* AC9EA8 80052D08 8602015E */ lh $v0, 0x15e($s0) -/* AC9EAC 80052D0C 5440000F */ bnezl $v0, .L80052D4C -/* AC9EB0 80052D10 3C014270 */ li $at, 0x42700000 # 0.000000 -/* AC9EB4 80052D14 44832000 */ mtc1 $v1, $f4 -/* AC9EB8 80052D18 244D0001 */ addiu $t5, $v0, 1 -/* AC9EBC 80052D1C A60D015E */ sh $t5, 0x15e($s0) -/* AC9EC0 80052D20 468021A0 */ cvt.s.w $f6, $f4 -/* AC9EC4 80052D24 3C018014 */ lui $at, %hi(D_8013A22C) -/* AC9EC8 80052D28 C428A22C */ lwc1 $f8, %lo(D_8013A22C)($at) -/* AC9ECC 80052D2C 44808000 */ mtc1 $zero, $f16 -/* AC9ED0 80052D30 A600015A */ sh $zero, 0x15a($s0) -/* AC9ED4 80052D34 46083282 */ mul.s $f10, $f6, $f8 -/* AC9ED8 80052D38 E6100100 */ swc1 $f16, 0x100($s0) -/* AC9EDC 80052D3C E60A00FC */ swc1 $f10, 0xfc($s0) -/* AC9EE0 80052D40 87AE0052 */ lh $t6, 0x52($sp) -/* AC9EE4 80052D44 A60E0008 */ sh $t6, 8($s0) -/* AC9EE8 80052D48 3C014270 */ li $at, 0x42700000 # 0.000000 -.L80052D4C: -/* AC9EEC 80052D4C 44819000 */ mtc1 $at, $f18 -/* AC9EF0 80052D50 26030008 */ addiu $v1, $s0, 8 -/* AC9EF4 80052D54 240707D0 */ li $a3, 2000 -/* AC9EF8 80052D58 E61200FC */ swc1 $f18, 0xfc($s0) -/* AC9EFC 80052D5C 84650000 */ lh $a1, ($v1) -/* AC9F00 80052D60 AFA30020 */ sw $v1, 0x20($sp) -/* AC9F04 80052D64 0C010E6B */ jal func_800439AC -/* AC9F08 80052D68 87A40052 */ lh $a0, 0x52($sp) -/* AC9F0C 80052D6C 8FA30020 */ lw $v1, 0x20($sp) -/* AC9F10 80052D70 A4620000 */ sh $v0, ($v1) -/* AC9F14 80052D74 8FB80044 */ lw $t8, 0x44($sp) -/* AC9F18 80052D78 87AF0052 */ lh $t7, 0x52($sp) -/* AC9F1C 80052D7C 87080008 */ lh $t0, 8($t8) -/* AC9F20 80052D80 01E82023 */ subu $a0, $t7, $t0 -/* AC9F24 80052D84 00042400 */ sll $a0, $a0, 0x10 -/* AC9F28 80052D88 0C01DE0D */ jal Math_Coss -/* AC9F2C 80052D8C 00042403 */ sra $a0, $a0, 0x10 -/* AC9F30 80052D90 8FB90044 */ lw $t9, 0x44($sp) -/* AC9F34 80052D94 26040050 */ addiu $a0, $s0, 0x50 -/* AC9F38 80052D98 8FA50024 */ lw $a1, 0x24($sp) -/* AC9F3C 80052D9C 87290006 */ lh $t1, 6($t9) -/* AC9F40 80052DA0 27A6004C */ addiu $a2, $sp, 0x4c -/* AC9F44 80052DA4 00095023 */ negu $t2, $t1 -/* AC9F48 80052DA8 448A2000 */ mtc1 $t2, $f4 -/* AC9F4C 80052DAC 00000000 */ nop -/* AC9F50 80052DB0 468021A0 */ cvt.s.w $f6, $f4 -/* AC9F54 80052DB4 46060202 */ mul.s $f8, $f0, $f6 -/* AC9F58 80052DB8 4600428D */ trunc.w.s $f10, $f8 -/* AC9F5C 80052DBC 440C5000 */ mfc1 $t4, $f10 -/* AC9F60 80052DC0 0C010F0A */ jal func_80043C28 -/* AC9F64 80052DC4 A7AC0050 */ sh $t4, 0x50($sp) -/* AC9F68 80052DC8 860D014C */ lh $t5, 0x14c($s0) -/* AC9F6C 80052DCC 24020001 */ li $v0, 1 -/* AC9F70 80052DD0 35AE0400 */ ori $t6, $t5, 0x400 -/* AC9F74 80052DD4 A60E014C */ sh $t6, 0x14c($s0) -/* AC9F78 80052DD8 8FBF001C */ lw $ra, 0x1c($sp) -/* AC9F7C 80052DDC 8FB00018 */ lw $s0, 0x18($sp) -/* AC9F80 80052DE0 27BD0060 */ addiu $sp, $sp, 0x60 -/* AC9F84 80052DE4 03E00008 */ jr $ra -/* AC9F88 80052DE8 00000000 */ nop diff --git a/asm/non_matchings/code/z_camera/Camera_Unique9.s b/asm/non_matchings/code/z_camera/Camera_Unique9.s deleted file mode 100644 index 67e0792e57..0000000000 --- a/asm/non_matchings/code/z_camera/Camera_Unique9.s +++ /dev/null @@ -1,1557 +0,0 @@ -.rdata -glabel D_80139408 - .asciz "camera: demo: player demo set WAIT\n" - .balign 4 - -glabel D_8013942C - .asciz "camera: demo: player demo set %d\n" - .balign 4 - -glabel D_80139450 - .asciz "\x1b[43;30mcamera: warning: demo C: actor is not valid\n\x1b[m" - .balign 4 - -glabel D_80139488 - .asciz "\x1b[43;30mcamera: warning: demo C: actor is not valid\n\x1b[m" - .balign 4 - -glabel D_801394C0 - .asciz "\x1b[43;30mcamera: warning: demo C: actor is not valid\n\x1b[m" - .balign 4 - -glabel D_801394F8 - .asciz "\x1b[43;30mcamera: warning: demo C: actor is not valid\n\x1b[m" - .balign 4 - -.late_rodata -glabel D_8013A230 - .float 182.041672 # 32768 / PI - -glabel D_8013A234 - .float 182.041672 # 32768 / PI - -glabel D_8013A238 - .float 182.041672 # 32768 / PI - -glabel D_8013A23C - .float 182.041672 # 32768 / PI - -glabel D_8013A240 - .float 182.041672 # 32768 / PI - -glabel D_8013A244 - .float 182.041672 # 32768 / PI - -glabel D_8013A248 - .float 182.041672 # 32768 / PI - -glabel D_8013A24C - .float 182.041672 # 32768 / PI - -glabel D_8013A250 - .float 182.041672 # 32768 / PI - -glabel jtbl_8013A254 - .word L80053B74 # 1 - .word L80053C60 # 2 - .word L80053F00 # 3 - .word L80053E60 # 4 - .word L800541C8 - .word L800541C8 - .word L800541C8 - .word L800541C8 - .word L80053D18 # 9 - .word L80053D18 # 10 - .word L80053F54 # 11 - .word L80053F54 # 12 - .word L80053FE4 # 13 - .word L800541C8 - .word L80053A0C # 15 - .word L80053AF4 # 16 - .word L800541C8 - .word L80054180 # 17 - .word L80054150 # 18 - .word L800541C8 - .word L80053A68 # 20 - .word L800541C8 - .word L800541C8 - .word L80054140 # 23 - -glabel D_8013A2B4 - .float 182.041672 # 32768 / PI - -.text -glabel Camera_Unique9 -/* AC9FAC 80052E0C 27BDFEE8 */ addiu $sp, $sp, -0x118 -/* AC9FB0 80052E10 AFBF001C */ sw $ra, 0x1c($sp) -/* AC9FB4 80052E14 AFB10018 */ sw $s1, 0x18($sp) -/* AC9FB8 80052E18 AFB00014 */ sw $s0, 0x14($sp) -/* AC9FBC 80052E1C 8C8E0090 */ lw $t6, 0x90($a0) -/* AC9FC0 80052E20 00808825 */ move $s1, $a0 -/* AC9FC4 80052E24 2401000A */ li $at, 10 -/* AC9FC8 80052E28 AFAE0088 */ sw $t6, 0x88($sp) -/* AC9FCC 80052E2C 8483015E */ lh $v1, 0x15e($a0) -/* AC9FD0 80052E30 5060000A */ beql $v1, $zero, .L80052E5C -/* AC9FD4 80052E34 86380142 */ lh $t8, 0x142($s1) -/* AC9FD8 80052E38 10610007 */ beq $v1, $at, .L80052E58 -/* AC9FDC 80052E3C 24010014 */ li $at, 20 -/* AC9FE0 80052E40 10610005 */ beq $v1, $at, .L80052E58 -/* AC9FE4 80052E44 3C0F8016 */ lui $t7, %hi(gGameInfo) # $t7, 0x8016 -/* AC9FE8 80052E48 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7) -/* AC9FEC 80052E4C 85E20314 */ lh $v0, 0x314($t7) -/* AC9FF0 80052E50 1040000F */ beqz $v0, .L80052E90 -/* AC9FF4 80052E54 00000000 */ nop -.L80052E58: -/* AC9FF8 80052E58 86380142 */ lh $t8, 0x142($s1) -.L80052E5C: -/* AC9FFC 80052E5C 3C0A8012 */ lui $t2, %hi(sCameraSettings+4) -/* ACA000 80052E60 862B0144 */ lh $t3, 0x144($s1) -/* ACA004 80052E64 0018C8C0 */ sll $t9, $t8, 3 -/* ACA008 80052E68 01595021 */ addu $t2, $t2, $t9 -/* ACA00C 80052E6C 8D4AD068 */ lw $t2, %lo(sCameraSettings+4)($t2) -/* ACA010 80052E70 000B60C0 */ sll $t4, $t3, 3 -/* ACA014 80052E74 3C0F8016 */ lui $t7, %hi(gGameInfo) # $t7, 0x8016 -/* ACA018 80052E78 014C6821 */ addu $t5, $t2, $t4 -/* ACA01C 80052E7C 8DA30004 */ lw $v1, 4($t5) -/* ACA020 80052E80 846E0000 */ lh $t6, ($v1) -/* ACA024 80052E84 A62E0008 */ sh $t6, 8($s1) -/* ACA028 80052E88 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7) -/* ACA02C 80052E8C 85E20314 */ lh $v0, 0x314($t7) -.L80052E90: -/* ACA030 80052E90 10400003 */ beqz $v0, .L80052EA0 -/* ACA034 80052E94 26300008 */ addiu $s0, $s1, 8 -/* ACA038 80052E98 0C011495 */ jal Camera_CopyPREGToModeValues -/* ACA03C 80052E9C 02202025 */ move $a0, $s1 -.L80052EA0: -/* ACA040 80052EA0 86180000 */ lh $t8, ($s0) -/* ACA044 80052EA4 3C018012 */ lui $at, %hi(D_8011D3A0) -/* ACA048 80052EA8 27A40098 */ addiu $a0, $sp, 0x98 -/* ACA04C 80052EAC AC38D3A0 */ sw $t8, %lo(D_8011D3A0)($at) -/* ACA050 80052EB0 0C00BBC5 */ jal func_8002EF14 -/* ACA054 80052EB4 8E250090 */ lw $a1, 0x90($s1) -/* ACA058 80052EB8 8623015E */ lh $v1, 0x15e($s1) -/* ACA05C 80052EBC 2630000C */ addiu $s0, $s1, 0xc -/* ACA060 80052EC0 240BFFFF */ li $t3, -1 -/* ACA064 80052EC4 14600010 */ bnez $v1, .L80052F08 -/* ACA068 80052EC8 24790001 */ addiu $t9, $v1, 1 -/* ACA06C 80052ECC A639015E */ sh $t9, 0x15e($s1) -/* ACA070 80052ED0 240A0001 */ li $t2, 1 -/* ACA074 80052ED4 A60B0036 */ sh $t3, 0x36($s0) -/* ACA078 80052ED8 A60A003C */ sh $t2, 0x3c($s0) -/* ACA07C 80052EDC A6000038 */ sh $zero, 0x38($s0) -/* ACA080 80052EE0 C7A40098 */ lwc1 $f4, 0x98($sp) -/* ACA084 80052EE4 44805000 */ mtc1 $zero, $f10 -/* ACA088 80052EE8 02202025 */ move $a0, $s1 -/* ACA08C 80052EEC E604001C */ swc1 $f4, 0x1c($s0) -/* ACA090 80052EF0 C7A6009C */ lwc1 $f6, 0x9c($sp) -/* ACA094 80052EF4 E6060020 */ swc1 $f6, 0x20($s0) -/* ACA098 80052EF8 C7A800A0 */ lwc1 $f8, 0xa0($sp) -/* ACA09C 80052EFC E6080024 */ swc1 $f8, 0x24($s0) -/* ACA0A0 80052F00 0C010ED8 */ jal func_80043B60 -/* ACA0A4 80052F04 E62A0100 */ swc1 $f10, 0x100($s1) -.L80052F08: -/* ACA0A8 80052F08 2630000C */ addiu $s0, $s1, 0xc -/* ACA0AC 80052F0C 860C0038 */ lh $t4, 0x38($s0) -/* ACA0B0 80052F10 55800006 */ bnezl $t4, .L80052F2C -/* ACA0B4 80052F14 860E003C */ lh $t6, 0x3c($s0) -/* ACA0B8 80052F18 8602003C */ lh $v0, 0x3c($s0) -/* ACA0BC 80052F1C 18400002 */ blez $v0, .L80052F28 -/* ACA0C0 80052F20 244DFFFF */ addiu $t5, $v0, -1 -/* ACA0C4 80052F24 A60D003C */ sh $t5, 0x3c($s0) -.L80052F28: -/* ACA0C8 80052F28 860E003C */ lh $t6, 0x3c($s0) -.L80052F2C: -/* ACA0CC 80052F2C 55C0004B */ bnezl $t6, .L8005305C -/* ACA0D0 80052F30 A600003A */ sh $zero, 0x3a($s0) -/* ACA0D4 80052F34 86180036 */ lh $t8, 0x36($s0) -/* ACA0D8 80052F38 240F0001 */ li $t7, 1 -/* ACA0DC 80052F3C A60F003A */ sh $t7, 0x3a($s0) -/* ACA0E0 80052F40 27190001 */ addiu $t9, $t8, 1 -/* ACA0E4 80052F44 A6190036 */ sh $t9, 0x36($s0) -/* ACA0E8 80052F48 8E2B0000 */ lw $t3, ($s1) -/* ACA0EC 80052F4C 86020036 */ lh $v0, 0x36($s0) -/* ACA0F0 80052F50 004B082A */ slt $at, $v0, $t3 -/* ACA0F4 80052F54 1020003A */ beqz $at, .L80053040 -/* ACA0F8 80052F58 00026080 */ sll $t4, $v0, 2 -/* ACA0FC 80052F5C 8E2A0004 */ lw $t2, 4($s1) -/* ACA100 80052F60 01826021 */ addu $t4, $t4, $v0 -/* ACA104 80052F64 000C60C0 */ sll $t4, $t4, 3 -/* ACA108 80052F68 014C1821 */ addu $v1, $t2, $t4 -/* ACA10C 80052F6C AE030000 */ sw $v1, ($s0) -/* ACA110 80052F70 846E0004 */ lh $t6, 4($v1) -/* ACA114 80052F74 240100FF */ li $at, 255 -/* ACA118 80052F78 A60E003C */ sh $t6, 0x3c($s0) -/* ACA11C 80052F7C 90650001 */ lbu $a1, 1($v1) -/* ACA120 80052F80 10A10037 */ beq $a1, $at, .L80053060 -/* ACA124 80052F84 30A200F0 */ andi $v0, $a1, 0xf0 -/* ACA128 80052F88 24010080 */ li $at, 128 -/* ACA12C 80052F8C 14410005 */ bne $v0, $at, .L80052FA4 -/* ACA130 80052F90 30AF000F */ andi $t7, $a1, 0xf -/* ACA134 80052F94 3C018012 */ lui $at, %hi(D_8011D3AC) # $at, 0x8012 -/* ACA138 80052F98 AC2FD3AC */ sw $t7, %lo(D_8011D3AC)($at) -/* ACA13C 80052F9C 10000030 */ b .L80053060 -/* ACA140 80052FA0 8E030000 */ lw $v1, ($s0) -.L80052FA4: -/* ACA144 80052FA4 240100C0 */ li $at, 192 -/* ACA148 80052FA8 14410008 */ bne $v0, $at, .L80052FCC -/* ACA14C 80052FAC 30A4000F */ andi $a0, $a1, 0xf -/* ACA150 80052FB0 00042200 */ sll $a0, $a0, 8 -/* ACA154 80052FB4 3484F000 */ ori $a0, $a0, 0xf000 -/* ACA158 80052FB8 00042400 */ sll $a0, $a0, 0x10 -/* ACA15C 80052FBC 0C0114D4 */ jal func_80045350 -/* ACA160 80052FC0 00042403 */ sra $a0, $a0, 0x10 -/* ACA164 80052FC4 10000026 */ b .L80053060 -/* ACA168 80052FC8 8E030000 */ lw $v1, ($s0) -.L80052FCC: -/* ACA16C 80052FCC 8E380090 */ lw $t8, 0x90($s1) -/* ACA170 80052FD0 8FAA0088 */ lw $t2, 0x88($sp) -/* ACA174 80052FD4 3C048014 */ lui $a0, %hi(D_8013942C) -/* ACA178 80052FD8 8F19067C */ lw $t9, 0x67c($t8) -/* ACA17C 80052FDC 00195900 */ sll $t3, $t9, 4 -/* ACA180 80052FE0 0561000E */ bgez $t3, .L8005301C -/* ACA184 80052FE4 00000000 */ nop -/* ACA188 80052FE8 814C014F */ lb $t4, 0x14f($t2) -/* ACA18C 80052FEC 24010001 */ li $at, 1 -/* ACA190 80052FF0 24060008 */ li $a2, 8 -/* ACA194 80052FF4 11810009 */ beq $t4, $at, .L8005301C -/* ACA198 80052FF8 00000000 */ nop -/* ACA19C 80052FFC 8E24008C */ lw $a0, 0x8c($s1) -/* ACA1A0 80053000 0C00B7CE */ jal func_8002DF38 -/* ACA1A4 80053004 8E2500A8 */ lw $a1, 0xa8($s1) -/* ACA1A8 80053008 3C048014 */ lui $a0, %hi(D_80139408) # $a0, 0x8014 -/* ACA1AC 8005300C 0C00084C */ jal osSyncPrintf -/* ACA1B0 80053010 24849408 */ addiu $a0, %lo(D_80139408) # addiu $a0, $a0, -0x6bf8 -/* ACA1B4 80053014 10000012 */ b .L80053060 -/* ACA1B8 80053018 8E030000 */ lw $v1, ($s0) -.L8005301C: -/* ACA1BC 8005301C 0C00084C */ jal osSyncPrintf -/* ACA1C0 80053020 2484942C */ addiu $a0, %lo(D_8013942C) -/* ACA1C4 80053024 8E0D0000 */ lw $t5, ($s0) -/* ACA1C8 80053028 8E24008C */ lw $a0, 0x8c($s1) -/* ACA1CC 8005302C 8E2500A8 */ lw $a1, 0xa8($s1) -/* ACA1D0 80053030 0C00B7CE */ jal func_8002DF38 -/* ACA1D4 80053034 91A60001 */ lbu $a2, 1($t5) -/* ACA1D8 80053038 10000009 */ b .L80053060 -/* ACA1DC 8005303C 8E030000 */ lw $v1, ($s0) -.L80053040: -/* ACA1E0 80053040 862E0164 */ lh $t6, 0x164($s1) -/* ACA1E4 80053044 11C00002 */ beqz $t6, .L80053050 -/* ACA1E8 80053048 00000000 */ nop -/* ACA1EC 8005304C A6200160 */ sh $zero, 0x160($s1) -.L80053050: -/* ACA1F0 80053050 100004AB */ b .L80054300 -/* ACA1F4 80053054 24020001 */ li $v0, 1 -/* ACA1F8 80053058 A600003A */ sh $zero, 0x3a($s0) -.L8005305C: -/* ACA1FC 8005305C 8E030000 */ lw $v1, ($s0) -.L80053060: -/* ACA200 80053060 84640002 */ lh $a0, 2($v1) -/* ACA204 80053064 24010001 */ li $at, 1 -/* ACA208 80053068 308700FF */ andi $a3, $a0, 0xff -/* ACA20C 8005306C 00073C00 */ sll $a3, $a3, 0x10 -/* ACA210 80053070 00073C03 */ sra $a3, $a3, 0x10 -/* ACA214 80053074 54E1000D */ bnel $a3, $at, .L800530AC -/* ACA218 80053078 24010002 */ li $at, 2 -/* ACA21C 8005307C 8C780010 */ lw $t8, 0x10($v1) -/* ACA220 80053080 26390050 */ addiu $t9, $s1, 0x50 -/* ACA224 80053084 AE180004 */ sw $t8, 4($s0) -/* ACA228 80053088 8C6F0014 */ lw $t7, 0x14($v1) -/* ACA22C 8005308C AE0F0008 */ sw $t7, 8($s0) -/* ACA230 80053090 8C780018 */ lw $t8, 0x18($v1) -/* ACA234 80053094 AE18000C */ sw $t8, 0xc($s0) -/* ACA238 80053098 AFB90030 */ sw $t9, 0x30($sp) -/* ACA23C 8005309C 8E030000 */ lw $v1, ($s0) -/* ACA240 800530A0 10000102 */ b .L800534AC -/* ACA244 800530A4 84640002 */ lh $a0, 2($v1) -/* ACA248 800530A8 24010002 */ li $at, 2 -.L800530AC: -/* ACA24C 800530AC 14E10016 */ bne $a3, $at, .L80053108 -/* ACA250 800530B0 262E0050 */ addiu $t6, $s1, 0x50 -/* ACA254 800530B4 860B003A */ lh $t3, 0x3a($s0) -/* ACA258 800530B8 11600011 */ beqz $t3, .L80053100 -/* ACA25C 800530BC 00000000 */ nop -/* ACA260 800530C0 8E2A008C */ lw $t2, 0x8c($s1) -/* ACA264 800530C4 C4660010 */ lwc1 $f6, 0x10($v1) -/* ACA268 800530C8 C54400EC */ lwc1 $f4, 0xec($t2) -/* ACA26C 800530CC 46062200 */ add.s $f8, $f4, $f6 -/* ACA270 800530D0 E6080004 */ swc1 $f8, 4($s0) -/* ACA274 800530D4 8E2C008C */ lw $t4, 0x8c($s1) -/* ACA278 800530D8 C4640014 */ lwc1 $f4, 0x14($v1) -/* ACA27C 800530DC C58A00F0 */ lwc1 $f10, 0xf0($t4) -/* ACA280 800530E0 46045180 */ add.s $f6, $f10, $f4 -/* ACA284 800530E4 E6060008 */ swc1 $f6, 8($s0) -/* ACA288 800530E8 8E2D008C */ lw $t5, 0x8c($s1) -/* ACA28C 800530EC C46A0018 */ lwc1 $f10, 0x18($v1) -/* ACA290 800530F0 C5A800F4 */ lwc1 $f8, 0xf4($t5) -/* ACA294 800530F4 460A4100 */ add.s $f4, $f8, $f10 -/* ACA298 800530F8 E604000C */ swc1 $f4, 0xc($s0) -/* ACA29C 800530FC 84640002 */ lh $a0, 2($v1) -.L80053100: -/* ACA2A0 80053100 100000EA */ b .L800534AC -/* ACA2A4 80053104 AFAE0030 */ sw $t6, 0x30($sp) -.L80053108: -/* ACA2A8 80053108 24010003 */ li $at, 3 -/* ACA2AC 8005310C 14E10013 */ bne $a3, $at, .L8005315C -/* ACA2B0 80053110 26380050 */ addiu $t8, $s1, 0x50 -/* ACA2B4 80053114 860F003A */ lh $t7, 0x3a($s0) -/* ACA2B8 80053118 11E0000E */ beqz $t7, .L80053154 -/* ACA2BC 8005311C 00000000 */ nop -/* ACA2C0 80053120 C6260050 */ lwc1 $f6, 0x50($s1) -/* ACA2C4 80053124 C4680010 */ lwc1 $f8, 0x10($v1) -/* ACA2C8 80053128 46083280 */ add.s $f10, $f6, $f8 -/* ACA2CC 8005312C E60A0004 */ swc1 $f10, 4($s0) -/* ACA2D0 80053130 C4660014 */ lwc1 $f6, 0x14($v1) -/* ACA2D4 80053134 C6240054 */ lwc1 $f4, 0x54($s1) -/* ACA2D8 80053138 46062200 */ add.s $f8, $f4, $f6 -/* ACA2DC 8005313C E6080008 */ swc1 $f8, 8($s0) -/* ACA2E0 80053140 C4640018 */ lwc1 $f4, 0x18($v1) -/* ACA2E4 80053144 C62A0058 */ lwc1 $f10, 0x58($s1) -/* ACA2E8 80053148 46045180 */ add.s $f6, $f10, $f4 -/* ACA2EC 8005314C E606000C */ swc1 $f6, 0xc($s0) -/* ACA2F0 80053150 84640002 */ lh $a0, 2($v1) -.L80053154: -/* ACA2F4 80053154 100000D5 */ b .L800534AC -/* ACA2F8 80053158 AFB80030 */ sw $t8, 0x30($sp) -.L8005315C: -/* ACA2FC 8005315C 24010004 */ li $at, 4 -/* ACA300 80053160 10E10003 */ beq $a3, $at, .L80053170 -/* ACA304 80053164 24010084 */ li $at, 132 -/* ACA308 80053168 14E10058 */ bne $a3, $at, .L800532CC -/* ACA30C 8005316C 30ED6060 */ andi $t5, $a3, 0x6060 -.L80053170: -/* ACA310 80053170 8E2500A8 */ lw $a1, 0xa8($s1) -/* ACA314 80053174 10A00045 */ beqz $a1, .L8005328C -/* ACA318 80053178 00000000 */ nop -/* ACA31C 8005317C 8CB90130 */ lw $t9, 0x130($a1) -/* ACA320 80053180 27A400C0 */ addiu $a0, $sp, 0xc0 -/* ACA324 80053184 13200041 */ beqz $t9, .L8005328C -/* ACA328 80053188 00000000 */ nop -/* ACA32C 8005318C 0C00BBB9 */ jal func_8002EEE4 -/* ACA330 80053190 A7A700D8 */ sh $a3, 0xd8($sp) -/* ACA334 80053194 27A400AC */ addiu $a0, $sp, 0xac -/* ACA338 80053198 0C00BBB9 */ jal func_8002EEE4 -/* ACA33C 8005319C 8E250090 */ lw $a1, 0x90($s1) -/* ACA340 800531A0 C7A80098 */ lwc1 $f8, 0x98($sp) -/* ACA344 800531A4 C7AA00A0 */ lwc1 $f10, 0xa0($sp) -/* ACA348 800531A8 27A400DC */ addiu $a0, $sp, 0xdc -/* ACA34C 800531AC 27A500C0 */ addiu $a1, $sp, 0xc0 -/* ACA350 800531B0 27A600AC */ addiu $a2, $sp, 0xac -/* ACA354 800531B4 E7A800AC */ swc1 $f8, 0xac($sp) -/* ACA358 800531B8 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* ACA35C 800531BC E7AA00B4 */ swc1 $f10, 0xb4($sp) -/* ACA360 800531C0 87A700D8 */ lh $a3, 0xd8($sp) -/* ACA364 800531C4 24018080 */ li $at, -32640 -/* ACA368 800531C8 00E15824 */ and $t3, $a3, $at -/* ACA36C 800531CC 5160001D */ beql $t3, $zero, .L80053244 -/* ACA370 800531D0 8E050000 */ lw $a1, ($s0) -/* ACA374 800531D4 8E0A0000 */ lw $t2, ($s0) -/* ACA378 800531D8 3C018014 */ lui $at, %hi(D_8013A230) -/* ACA37C 800531DC C426A230 */ lwc1 $f6, %lo(D_8013A230)($at) -/* ACA380 800531E0 C5440010 */ lwc1 $f4, 0x10($t2) -/* ACA384 800531E4 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* ACA388 800531E8 44815000 */ mtc1 $at, $f10 -/* ACA38C 800531EC 46062202 */ mul.s $f8, $f4, $f6 -/* ACA390 800531F0 3C018014 */ lui $at, %hi(D_8013A234) -/* ACA394 800531F4 460A4100 */ add.s $f4, $f8, $f10 -/* ACA398 800531F8 C42AA234 */ lwc1 $f10, %lo(D_8013A234)($at) -/* ACA39C 800531FC 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* ACA3A0 80053200 4600218D */ trunc.w.s $f6, $f4 -/* ACA3A4 80053204 440D3000 */ mfc1 $t5, $f6 -/* ACA3A8 80053208 44813000 */ mtc1 $at, $f6 -/* ACA3AC 8005320C A7AD00E8 */ sh $t5, 0xe8($sp) -/* ACA3B0 80053210 8E0E0000 */ lw $t6, ($s0) -/* ACA3B4 80053214 C5C80014 */ lwc1 $f8, 0x14($t6) -/* ACA3B8 80053218 460A4102 */ mul.s $f4, $f8, $f10 -/* ACA3BC 8005321C 46062200 */ add.s $f8, $f4, $f6 -/* ACA3C0 80053220 4600428D */ trunc.w.s $f10, $f8 -/* ACA3C4 80053224 44185000 */ mfc1 $t8, $f10 -/* ACA3C8 80053228 00000000 */ nop -/* ACA3CC 8005322C A7B800EA */ sh $t8, 0xea($sp) -/* ACA3D0 80053230 8E190000 */ lw $t9, ($s0) -/* ACA3D4 80053234 C7240018 */ lwc1 $f4, 0x18($t9) -/* ACA3D8 80053238 10000005 */ b .L80053250 -/* ACA3DC 8005323C E7A400E4 */ swc1 $f4, 0xe4($sp) -/* ACA3E0 80053240 8E050000 */ lw $a1, ($s0) -.L80053244: -/* ACA3E4 80053244 27A400E4 */ addiu $a0, $sp, 0xe4 -/* ACA3E8 80053248 0C01F0FD */ jal OLib_Vec3fToVecSphGeo -/* ACA3EC 8005324C 24A50010 */ addiu $a1, $a1, 0x10 -.L80053250: -/* ACA3F0 80053250 87AB00EA */ lh $t3, 0xea($sp) -/* ACA3F4 80053254 87AA00E2 */ lh $t2, 0xe2($sp) -/* ACA3F8 80053258 87AD00E8 */ lh $t5, 0xe8($sp) -/* ACA3FC 8005325C 87AE00E0 */ lh $t6, 0xe0($sp) -/* ACA400 80053260 016A6021 */ addu $t4, $t3, $t2 -/* ACA404 80053264 A7AC00EA */ sh $t4, 0xea($sp) -/* ACA408 80053268 01AE7821 */ addu $t7, $t5, $t6 -/* ACA40C 8005326C A7AF00E8 */ sh $t7, 0xe8($sp) -/* ACA410 80053270 26040004 */ addiu $a0, $s0, 4 -/* ACA414 80053274 27A500C0 */ addiu $a1, $sp, 0xc0 -/* ACA418 80053278 0C010F0A */ jal func_80043C28 -/* ACA41C 8005327C 27A600E4 */ addiu $a2, $sp, 0xe4 -/* ACA420 80053280 26380050 */ addiu $t8, $s1, 0x50 -/* ACA424 80053284 1000000E */ b .L800532C0 -/* ACA428 80053288 AFB80030 */ sw $t8, 0x30($sp) -.L8005328C: -/* ACA42C 8005328C 14A00003 */ bnez $a1, .L8005329C -/* ACA430 80053290 3C048014 */ lui $a0, %hi(D_80139450) # $a0, 0x8014 -/* ACA434 80053294 0C00084C */ jal osSyncPrintf -/* ACA438 80053298 24849450 */ addiu $a0, %lo(D_80139450) # addiu $a0, $a0, -0x6bb0 -.L8005329C: -/* ACA43C 8005329C AE2000A8 */ sw $zero, 0xa8($s1) -/* ACA440 800532A0 26390050 */ addiu $t9, $s1, 0x50 -/* ACA444 800532A4 AFB90030 */ sw $t9, 0x30($sp) -/* ACA448 800532A8 8F2C0000 */ lw $t4, ($t9) -/* ACA44C 800532AC AE0C0004 */ sw $t4, 4($s0) -/* ACA450 800532B0 8F2A0004 */ lw $t2, 4($t9) -/* ACA454 800532B4 AE0A0008 */ sw $t2, 8($s0) -/* ACA458 800532B8 8F2C0008 */ lw $t4, 8($t9) -/* ACA45C 800532BC AE0C000C */ sw $t4, 0xc($s0) -.L800532C0: -/* ACA460 800532C0 8E030000 */ lw $v1, ($s0) -/* ACA464 800532C4 10000079 */ b .L800534AC -/* ACA468 800532C8 84640002 */ lh $a0, 2($v1) -.L800532CC: -/* ACA46C 800532CC 11A0006E */ beqz $t5, .L80053488 -/* ACA470 800532D0 262C0050 */ addiu $t4, $s1, 0x50 -/* ACA474 800532D4 30EE0004 */ andi $t6, $a3, 4 -/* ACA478 800532D8 11C00004 */ beqz $t6, .L800532EC -/* ACA47C 800532DC 30F82020 */ andi $t8, $a3, 0x2020 -/* ACA480 800532E0 860F003A */ lh $t7, 0x3a($s0) -/* ACA484 800532E4 51E00066 */ beql $t7, $zero, .L80053480 -/* ACA488 800532E8 262A0050 */ addiu $t2, $s1, 0x50 -.L800532EC: -/* ACA48C 800532EC 13000003 */ beqz $t8, .L800532FC -/* ACA490 800532F0 30E2000F */ andi $v0, $a3, 0xf -/* ACA494 800532F4 1000000B */ b .L80053324 -/* ACA498 800532F8 8E260090 */ lw $a2, 0x90($s1) -.L800532FC: -/* ACA49C 800532FC 8E2500A8 */ lw $a1, 0xa8($s1) -/* ACA4A0 80053300 00003025 */ move $a2, $zero -/* ACA4A4 80053304 50A00007 */ beql $a1, $zero, .L80053324 -/* ACA4A8 80053308 AE2000A8 */ sw $zero, 0xa8($s1) -/* ACA4AC 8005330C 8CB90130 */ lw $t9, 0x130($a1) -/* ACA4B0 80053310 53200004 */ beql $t9, $zero, .L80053324 -/* ACA4B4 80053314 AE2000A8 */ sw $zero, 0xa8($s1) -/* ACA4B8 80053318 10000002 */ b .L80053324 -/* ACA4BC 8005331C 00A03025 */ move $a2, $a1 -/* ACA4C0 80053320 AE2000A8 */ sw $zero, 0xa8($s1) -.L80053324: -/* ACA4C4 80053324 10C00047 */ beqz $a2, .L80053444 -/* ACA4C8 80053328 24010001 */ li $at, 1 -/* ACA4CC 8005332C 14410006 */ bne $v0, $at, .L80053348 -/* ACA4D0 80053330 27A4006C */ addiu $a0, $sp, 0x6c -/* ACA4D4 80053334 00C02825 */ move $a1, $a2 -/* ACA4D8 80053338 0C00BBB9 */ jal func_8002EEE4 -/* ACA4DC 8005333C A7A700D8 */ sh $a3, 0xd8($sp) -/* ACA4E0 80053340 1000000E */ b .L8005337C -/* ACA4E4 80053344 87A700D8 */ lh $a3, 0xd8($sp) -.L80053348: -/* ACA4E8 80053348 24010002 */ li $at, 2 -/* ACA4EC 8005334C 14410007 */ bne $v0, $at, .L8005336C -/* ACA4F0 80053350 27A4006C */ addiu $a0, $sp, 0x6c -/* ACA4F4 80053354 27A4006C */ addiu $a0, $sp, 0x6c -/* ACA4F8 80053358 00C02825 */ move $a1, $a2 -/* ACA4FC 8005335C 0C00BBC5 */ jal func_8002EF14 -/* ACA500 80053360 A7A700D8 */ sh $a3, 0xd8($sp) -/* ACA504 80053364 10000005 */ b .L8005337C -/* ACA508 80053368 87A700D8 */ lh $a3, 0xd8($sp) -.L8005336C: -/* ACA50C 8005336C 00C02825 */ move $a1, $a2 -/* ACA510 80053370 0C00BBD1 */ jal func_8002EF44 -/* ACA514 80053374 A7A700D8 */ sh $a3, 0xd8($sp) -/* ACA518 80053378 87A700D8 */ lh $a3, 0xd8($sp) -.L8005337C: -/* ACA51C 8005337C 24018080 */ li $at, -32640 -/* ACA520 80053380 00E15824 */ and $t3, $a3, $at -/* ACA524 80053384 5160001D */ beql $t3, $zero, .L800533FC -/* ACA528 80053388 8E050000 */ lw $a1, ($s0) -/* ACA52C 8005338C 8E0A0000 */ lw $t2, ($s0) -/* ACA530 80053390 3C018014 */ lui $at, %hi(D_8013A238) -/* ACA534 80053394 C428A238 */ lwc1 $f8, %lo(D_8013A238)($at) -/* ACA538 80053398 C5460010 */ lwc1 $f6, 0x10($t2) -/* ACA53C 8005339C 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* ACA540 800533A0 44812000 */ mtc1 $at, $f4 -/* ACA544 800533A4 46083282 */ mul.s $f10, $f6, $f8 -/* ACA548 800533A8 3C018014 */ lui $at, %hi(D_8013A23C) -/* ACA54C 800533AC 46045180 */ add.s $f6, $f10, $f4 -/* ACA550 800533B0 C424A23C */ lwc1 $f4, %lo(D_8013A23C)($at) -/* ACA554 800533B4 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* ACA558 800533B8 4600320D */ trunc.w.s $f8, $f6 -/* ACA55C 800533BC 440D4000 */ mfc1 $t5, $f8 -/* ACA560 800533C0 44814000 */ mtc1 $at, $f8 -/* ACA564 800533C4 A7AD00E8 */ sh $t5, 0xe8($sp) -/* ACA568 800533C8 8E0E0000 */ lw $t6, ($s0) -/* ACA56C 800533CC C5CA0014 */ lwc1 $f10, 0x14($t6) -/* ACA570 800533D0 46045182 */ mul.s $f6, $f10, $f4 -/* ACA574 800533D4 46083280 */ add.s $f10, $f6, $f8 -/* ACA578 800533D8 4600510D */ trunc.w.s $f4, $f10 -/* ACA57C 800533DC 44182000 */ mfc1 $t8, $f4 -/* ACA580 800533E0 00000000 */ nop -/* ACA584 800533E4 A7B800EA */ sh $t8, 0xea($sp) -/* ACA588 800533E8 8E190000 */ lw $t9, ($s0) -/* ACA58C 800533EC C7260018 */ lwc1 $f6, 0x18($t9) -/* ACA590 800533F0 10000005 */ b .L80053408 -/* ACA594 800533F4 E7A600E4 */ swc1 $f6, 0xe4($sp) -/* ACA598 800533F8 8E050000 */ lw $a1, ($s0) -.L800533FC: -/* ACA59C 800533FC 27A400E4 */ addiu $a0, $sp, 0xe4 -/* ACA5A0 80053400 0C01F0FD */ jal OLib_Vec3fToVecSphGeo -/* ACA5A4 80053404 24A50010 */ addiu $a1, $a1, 0x10 -.L80053408: -/* ACA5A8 80053408 87AB00EA */ lh $t3, 0xea($sp) -/* ACA5AC 8005340C 87AA007A */ lh $t2, 0x7a($sp) -/* ACA5B0 80053410 87AD00E8 */ lh $t5, 0xe8($sp) -/* ACA5B4 80053414 87AE0078 */ lh $t6, 0x78($sp) -/* ACA5B8 80053418 016A6021 */ addu $t4, $t3, $t2 -/* ACA5BC 8005341C A7AC00EA */ sh $t4, 0xea($sp) -/* ACA5C0 80053420 01AE7823 */ subu $t7, $t5, $t6 -/* ACA5C4 80053424 A7AF00E8 */ sh $t7, 0xe8($sp) -/* ACA5C8 80053428 26040004 */ addiu $a0, $s0, 4 -/* ACA5CC 8005342C 27A5006C */ addiu $a1, $sp, 0x6c -/* ACA5D0 80053430 0C010F0A */ jal func_80043C28 -/* ACA5D4 80053434 27A600E4 */ addiu $a2, $sp, 0xe4 -/* ACA5D8 80053438 8E030000 */ lw $v1, ($s0) -/* ACA5DC 8005343C 1000000F */ b .L8005347C -/* ACA5E0 80053440 84640002 */ lh $a0, 2($v1) -.L80053444: -/* ACA5E4 80053444 8E3800A8 */ lw $t8, 0xa8($s1) -/* ACA5E8 80053448 3C048014 */ lui $a0, %hi(D_80139488) # $a0, 0x8014 -/* ACA5EC 8005344C 57000004 */ bnezl $t8, .L80053460 -/* ACA5F0 80053450 8E2B0050 */ lw $t3, 0x50($s1) -/* ACA5F4 80053454 0C00084C */ jal osSyncPrintf -/* ACA5F8 80053458 24849488 */ addiu $a0, %lo(D_80139488) # addiu $a0, $a0, -0x6b78 -/* ACA5FC 8005345C 8E2B0050 */ lw $t3, 0x50($s1) -.L80053460: -/* ACA600 80053460 8E030000 */ lw $v1, ($s0) -/* ACA604 80053464 AE0B0004 */ sw $t3, 4($s0) -/* ACA608 80053468 8E390054 */ lw $t9, 0x54($s1) -/* ACA60C 8005346C AE190008 */ sw $t9, 8($s0) -/* ACA610 80053470 8E2B0058 */ lw $t3, 0x58($s1) -/* ACA614 80053474 AE0B000C */ sw $t3, 0xc($s0) -/* ACA618 80053478 84640002 */ lh $a0, 2($v1) -.L8005347C: -/* ACA61C 8005347C 262A0050 */ addiu $t2, $s1, 0x50 -.L80053480: -/* ACA620 80053480 1000000A */ b .L800534AC -/* ACA624 80053484 AFAA0030 */ sw $t2, 0x30($sp) -.L80053488: -/* ACA628 80053488 AFAC0030 */ sw $t4, 0x30($sp) -/* ACA62C 8005348C 8D8F0000 */ lw $t7, ($t4) -/* ACA630 80053490 8E030000 */ lw $v1, ($s0) -/* ACA634 80053494 AE0F0004 */ sw $t7, 4($s0) -/* ACA638 80053498 8D8E0004 */ lw $t6, 4($t4) -/* ACA63C 8005349C AE0E0008 */ sw $t6, 8($s0) -/* ACA640 800534A0 8D8F0008 */ lw $t7, 8($t4) -/* ACA644 800534A4 AE0F000C */ sw $t7, 0xc($s0) -/* ACA648 800534A8 84640002 */ lh $a0, 2($v1) -.L800534AC: -/* ACA64C 800534AC 3087FF00 */ andi $a3, $a0, 0xff00 -/* ACA650 800534B0 00073C00 */ sll $a3, $a3, 0x10 -/* ACA654 800534B4 24080100 */ li $t0, 256 -/* ACA658 800534B8 00073C03 */ sra $a3, $a3, 0x10 -/* ACA65C 800534BC 14E8000C */ bne $a3, $t0, .L800534F0 -/* ACA660 800534C0 24090200 */ li $t1, 512 -/* ACA664 800534C4 8C79001C */ lw $t9, 0x1c($v1) -/* ACA668 800534C8 262B0074 */ addiu $t3, $s1, 0x74 -/* ACA66C 800534CC AE190010 */ sw $t9, 0x10($s0) -/* ACA670 800534D0 8C780020 */ lw $t8, 0x20($v1) -/* ACA674 800534D4 AE180014 */ sw $t8, 0x14($s0) -/* ACA678 800534D8 8C790024 */ lw $t9, 0x24($v1) -/* ACA67C 800534DC AE190018 */ sw $t9, 0x18($s0) -/* ACA680 800534E0 AFAB0034 */ sw $t3, 0x34($sp) -/* ACA684 800534E4 8E030000 */ lw $v1, ($s0) -/* ACA688 800534E8 1000011A */ b .L80053954 -/* ACA68C 800534EC 84640002 */ lh $a0, 2($v1) -.L800534F0: -/* ACA690 800534F0 14E90017 */ bne $a3, $t1, .L80053550 -/* ACA694 800534F4 24010300 */ li $at, 768 -/* ACA698 800534F8 860A003A */ lh $t2, 0x3a($s0) -/* ACA69C 800534FC 262F0074 */ addiu $t7, $s1, 0x74 -/* ACA6A0 80053500 11400011 */ beqz $t2, .L80053548 -/* ACA6A4 80053504 00000000 */ nop -/* ACA6A8 80053508 8E2C008C */ lw $t4, 0x8c($s1) -/* ACA6AC 8005350C C46A001C */ lwc1 $f10, 0x1c($v1) -/* ACA6B0 80053510 C58800E0 */ lwc1 $f8, 0xe0($t4) -/* ACA6B4 80053514 460A4100 */ add.s $f4, $f8, $f10 -/* ACA6B8 80053518 E6040010 */ swc1 $f4, 0x10($s0) -/* ACA6BC 8005351C 8E2D008C */ lw $t5, 0x8c($s1) -/* ACA6C0 80053520 C4680020 */ lwc1 $f8, 0x20($v1) -/* ACA6C4 80053524 C5A600E4 */ lwc1 $f6, 0xe4($t5) -/* ACA6C8 80053528 46083280 */ add.s $f10, $f6, $f8 -/* ACA6CC 8005352C E60A0014 */ swc1 $f10, 0x14($s0) -/* ACA6D0 80053530 8E2E008C */ lw $t6, 0x8c($s1) -/* ACA6D4 80053534 C4660024 */ lwc1 $f6, 0x24($v1) -/* ACA6D8 80053538 C5C400E8 */ lwc1 $f4, 0xe8($t6) -/* ACA6DC 8005353C 46062200 */ add.s $f8, $f4, $f6 -/* ACA6E0 80053540 E6080018 */ swc1 $f8, 0x18($s0) -/* ACA6E4 80053544 84640002 */ lh $a0, 2($v1) -.L80053548: -/* ACA6E8 80053548 10000102 */ b .L80053954 -/* ACA6EC 8005354C AFAF0034 */ sw $t7, 0x34($sp) -.L80053550: -/* ACA6F0 80053550 14E10013 */ bne $a3, $at, .L800535A0 -/* ACA6F4 80053554 26390074 */ addiu $t9, $s1, 0x74 -/* ACA6F8 80053558 8618003A */ lh $t8, 0x3a($s0) -/* ACA6FC 8005355C 1300000E */ beqz $t8, .L80053598 -/* ACA700 80053560 00000000 */ nop -/* ACA704 80053564 C62A0074 */ lwc1 $f10, 0x74($s1) -/* ACA708 80053568 C464001C */ lwc1 $f4, 0x1c($v1) -/* ACA70C 8005356C 46045180 */ add.s $f6, $f10, $f4 -/* ACA710 80053570 E6060010 */ swc1 $f6, 0x10($s0) -/* ACA714 80053574 C46A0020 */ lwc1 $f10, 0x20($v1) -/* ACA718 80053578 C6280078 */ lwc1 $f8, 0x78($s1) -/* ACA71C 8005357C 460A4100 */ add.s $f4, $f8, $f10 -/* ACA720 80053580 E6040014 */ swc1 $f4, 0x14($s0) -/* ACA724 80053584 C4680024 */ lwc1 $f8, 0x24($v1) -/* ACA728 80053588 C626007C */ lwc1 $f6, 0x7c($s1) -/* ACA72C 8005358C 46083280 */ add.s $f10, $f6, $f8 -/* ACA730 80053590 E60A0018 */ swc1 $f10, 0x18($s0) -/* ACA734 80053594 84640002 */ lh $a0, 2($v1) -.L80053598: -/* ACA738 80053598 100000EE */ b .L80053954 -/* ACA73C 8005359C AFB90034 */ sw $t9, 0x34($sp) -.L800535A0: -/* ACA740 800535A0 24010400 */ li $at, 1024 -/* ACA744 800535A4 10E10007 */ beq $a3, $at, .L800535C4 -/* ACA748 800535A8 24018400 */ li $at, -31744 -/* ACA74C 800535AC 10E10005 */ beq $a3, $at, .L800535C4 -/* ACA750 800535B0 24010500 */ li $at, 1280 -/* ACA754 800535B4 10E10003 */ beq $a3, $at, .L800535C4 -/* ACA758 800535B8 24018500 */ li $at, -31488 -/* ACA75C 800535BC 14E1006D */ bne $a3, $at, .L80053774 -/* ACA760 800535C0 30ED6060 */ andi $t5, $a3, 0x6060 -.L800535C4: -/* ACA764 800535C4 8E2500A8 */ lw $a1, 0xa8($s1) -/* ACA768 800535C8 10A0005A */ beqz $a1, .L80053734 -/* ACA76C 800535CC 00000000 */ nop -/* ACA770 800535D0 8CAB0130 */ lw $t3, 0x130($a1) -/* ACA774 800535D4 27A400C0 */ addiu $a0, $sp, 0xc0 -/* ACA778 800535D8 11600056 */ beqz $t3, .L80053734 -/* ACA77C 800535DC 00000000 */ nop -/* ACA780 800535E0 0C00BBB9 */ jal func_8002EEE4 -/* ACA784 800535E4 A7A700D6 */ sh $a3, 0xd6($sp) -/* ACA788 800535E8 27A400AC */ addiu $a0, $sp, 0xac -/* ACA78C 800535EC 0C00BBB9 */ jal func_8002EEE4 -/* ACA790 800535F0 8E250090 */ lw $a1, 0x90($s1) -/* ACA794 800535F4 C7A40098 */ lwc1 $f4, 0x98($sp) -/* ACA798 800535F8 C7A600A0 */ lwc1 $f6, 0xa0($sp) -/* ACA79C 800535FC 27A400DC */ addiu $a0, $sp, 0xdc -/* ACA7A0 80053600 27A500C0 */ addiu $a1, $sp, 0xc0 -/* ACA7A4 80053604 27A600AC */ addiu $a2, $sp, 0xac -/* ACA7A8 80053608 E7A400AC */ swc1 $f4, 0xac($sp) -/* ACA7AC 8005360C 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* ACA7B0 80053610 E7A600B4 */ swc1 $f6, 0xb4($sp) -/* ACA7B4 80053614 87A700D6 */ lh $a3, 0xd6($sp) -/* ACA7B8 80053618 24010400 */ li $at, 1024 -/* ACA7BC 8005361C 27AC00C0 */ addiu $t4, $sp, 0xc0 -/* ACA7C0 80053620 10E10003 */ beq $a3, $at, .L80053630 -/* ACA7C4 80053624 24018400 */ li $at, -31744 -/* ACA7C8 80053628 54E1000A */ bnel $a3, $at, .L80053654 -/* ACA7CC 8005362C 8E190004 */ lw $t9, 4($s0) -.L80053630: -/* ACA7D0 80053630 8D8E0000 */ lw $t6, ($t4) -/* ACA7D4 80053634 27AA0060 */ addiu $t2, $sp, 0x60 -/* ACA7D8 80053638 AD4E0000 */ sw $t6, ($t2) -/* ACA7DC 8005363C 8D8D0004 */ lw $t5, 4($t4) -/* ACA7E0 80053640 AD4D0004 */ sw $t5, 4($t2) -/* ACA7E4 80053644 8D8E0008 */ lw $t6, 8($t4) -/* ACA7E8 80053648 10000008 */ b .L8005366C -/* ACA7EC 8005364C AD4E0008 */ sw $t6, 8($t2) -/* ACA7F0 80053650 8E190004 */ lw $t9, 4($s0) -.L80053654: -/* ACA7F4 80053654 27AF0060 */ addiu $t7, $sp, 0x60 -/* ACA7F8 80053658 ADF90000 */ sw $t9, ($t7) -/* ACA7FC 8005365C 8E180008 */ lw $t8, 8($s0) -/* ACA800 80053660 ADF80004 */ sw $t8, 4($t7) -/* ACA804 80053664 8E19000C */ lw $t9, 0xc($s0) -/* ACA808 80053668 ADF90008 */ sw $t9, 8($t7) -.L8005366C: -/* ACA80C 8005366C 24018080 */ li $at, -32640 -/* ACA810 80053670 00E15824 */ and $t3, $a3, $at -/* ACA814 80053674 5160001D */ beql $t3, $zero, .L800536EC -/* ACA818 80053678 8E050000 */ lw $a1, ($s0) -/* ACA81C 8005367C 8E0A0000 */ lw $t2, ($s0) -/* ACA820 80053680 3C018014 */ lui $at, %hi(D_8013A240) -/* ACA824 80053684 C42AA240 */ lwc1 $f10, %lo(D_8013A240)($at) -/* ACA828 80053688 C548001C */ lwc1 $f8, 0x1c($t2) -/* ACA82C 8005368C 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* ACA830 80053690 44813000 */ mtc1 $at, $f6 -/* ACA834 80053694 460A4102 */ mul.s $f4, $f8, $f10 -/* ACA838 80053698 3C018014 */ lui $at, %hi(D_8013A244) -/* ACA83C 8005369C 46062200 */ add.s $f8, $f4, $f6 -/* ACA840 800536A0 C426A244 */ lwc1 $f6, %lo(D_8013A244)($at) -/* ACA844 800536A4 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* ACA848 800536A8 4600428D */ trunc.w.s $f10, $f8 -/* ACA84C 800536AC 440D5000 */ mfc1 $t5, $f10 -/* ACA850 800536B0 44815000 */ mtc1 $at, $f10 -/* ACA854 800536B4 A7AD00E8 */ sh $t5, 0xe8($sp) -/* ACA858 800536B8 8E0E0000 */ lw $t6, ($s0) -/* ACA85C 800536BC C5C40020 */ lwc1 $f4, 0x20($t6) -/* ACA860 800536C0 46062202 */ mul.s $f8, $f4, $f6 -/* ACA864 800536C4 460A4100 */ add.s $f4, $f8, $f10 -/* ACA868 800536C8 4600218D */ trunc.w.s $f6, $f4 -/* ACA86C 800536CC 44183000 */ mfc1 $t8, $f6 -/* ACA870 800536D0 00000000 */ nop -/* ACA874 800536D4 A7B800EA */ sh $t8, 0xea($sp) -/* ACA878 800536D8 8E190000 */ lw $t9, ($s0) -/* ACA87C 800536DC C7280024 */ lwc1 $f8, 0x24($t9) -/* ACA880 800536E0 10000005 */ b .L800536F8 -/* ACA884 800536E4 E7A800E4 */ swc1 $f8, 0xe4($sp) -/* ACA888 800536E8 8E050000 */ lw $a1, ($s0) -.L800536EC: -/* ACA88C 800536EC 27A400E4 */ addiu $a0, $sp, 0xe4 -/* ACA890 800536F0 0C01F0FD */ jal OLib_Vec3fToVecSphGeo -/* ACA894 800536F4 24A5001C */ addiu $a1, $a1, 0x1c -.L800536F8: -/* ACA898 800536F8 87AB00EA */ lh $t3, 0xea($sp) -/* ACA89C 800536FC 87AA00E2 */ lh $t2, 0xe2($sp) -/* ACA8A0 80053700 87AD00E8 */ lh $t5, 0xe8($sp) -/* ACA8A4 80053704 87AE00E0 */ lh $t6, 0xe0($sp) -/* ACA8A8 80053708 016A6021 */ addu $t4, $t3, $t2 -/* ACA8AC 8005370C A7AC00EA */ sh $t4, 0xea($sp) -/* ACA8B0 80053710 01AE7821 */ addu $t7, $t5, $t6 -/* ACA8B4 80053714 A7AF00E8 */ sh $t7, 0xe8($sp) -/* ACA8B8 80053718 26040010 */ addiu $a0, $s0, 0x10 -/* ACA8BC 8005371C 27A50060 */ addiu $a1, $sp, 0x60 -/* ACA8C0 80053720 0C010F0A */ jal func_80043C28 -/* ACA8C4 80053724 27A600E4 */ addiu $a2, $sp, 0xe4 -/* ACA8C8 80053728 26380074 */ addiu $t8, $s1, 0x74 -/* ACA8CC 8005372C 1000000E */ b .L80053768 -/* ACA8D0 80053730 AFB80034 */ sw $t8, 0x34($sp) -.L80053734: -/* ACA8D4 80053734 14A00003 */ bnez $a1, .L80053744 -/* ACA8D8 80053738 3C048014 */ lui $a0, %hi(D_801394C0) # $a0, 0x8014 -/* ACA8DC 8005373C 0C00084C */ jal osSyncPrintf -/* ACA8E0 80053740 248494C0 */ addiu $a0, %lo(D_801394C0) # addiu $a0, $a0, -0x6b40 -.L80053744: -/* ACA8E4 80053744 AE2000A8 */ sw $zero, 0xa8($s1) -/* ACA8E8 80053748 26390074 */ addiu $t9, $s1, 0x74 -/* ACA8EC 8005374C AFB90034 */ sw $t9, 0x34($sp) -/* ACA8F0 80053750 8F2C0000 */ lw $t4, ($t9) -/* ACA8F4 80053754 AE0C0010 */ sw $t4, 0x10($s0) -/* ACA8F8 80053758 8F2A0004 */ lw $t2, 4($t9) -/* ACA8FC 8005375C AE0A0014 */ sw $t2, 0x14($s0) -/* ACA900 80053760 8F2C0008 */ lw $t4, 8($t9) -/* ACA904 80053764 AE0C0018 */ sw $t4, 0x18($s0) -.L80053768: -/* ACA908 80053768 8E030000 */ lw $v1, ($s0) -/* ACA90C 8005376C 10000079 */ b .L80053954 -/* ACA910 80053770 84640002 */ lh $a0, 2($v1) -.L80053774: -/* ACA914 80053774 11A0006E */ beqz $t5, .L80053930 -/* ACA918 80053778 262C0074 */ addiu $t4, $s1, 0x74 -/* ACA91C 8005377C 30EE0400 */ andi $t6, $a3, 0x400 -/* ACA920 80053780 11C00004 */ beqz $t6, .L80053794 -/* ACA924 80053784 30F82020 */ andi $t8, $a3, 0x2020 -/* ACA928 80053788 860F003A */ lh $t7, 0x3a($s0) -/* ACA92C 8005378C 51E00066 */ beql $t7, $zero, .L80053928 -/* ACA930 80053790 262A0074 */ addiu $t2, $s1, 0x74 -.L80053794: -/* ACA934 80053794 13000003 */ beqz $t8, .L800537A4 -/* ACA938 80053798 30E20F00 */ andi $v0, $a3, 0xf00 -/* ACA93C 8005379C 1000000B */ b .L800537CC -/* ACA940 800537A0 8E260090 */ lw $a2, 0x90($s1) -.L800537A4: -/* ACA944 800537A4 8E2500A8 */ lw $a1, 0xa8($s1) -/* ACA948 800537A8 00003025 */ move $a2, $zero -/* ACA94C 800537AC 50A00007 */ beql $a1, $zero, .L800537CC -/* ACA950 800537B0 AE2000A8 */ sw $zero, 0xa8($s1) -/* ACA954 800537B4 8CB90130 */ lw $t9, 0x130($a1) -/* ACA958 800537B8 53200004 */ beql $t9, $zero, .L800537CC -/* ACA95C 800537BC AE2000A8 */ sw $zero, 0xa8($s1) -/* ACA960 800537C0 10000002 */ b .L800537CC -/* ACA964 800537C4 00A03025 */ move $a2, $a1 -/* ACA968 800537C8 AE2000A8 */ sw $zero, 0xa8($s1) -.L800537CC: -/* ACA96C 800537CC 50C00047 */ beql $a2, $zero, .L800538EC -/* ACA970 800537D0 8E3800A8 */ lw $t8, 0xa8($s1) -/* ACA974 800537D4 15020006 */ bne $t0, $v0, .L800537F0 -/* ACA978 800537D8 27A40048 */ addiu $a0, $sp, 0x48 -/* ACA97C 800537DC 00C02825 */ move $a1, $a2 -/* ACA980 800537E0 0C00BBB9 */ jal func_8002EEE4 -/* ACA984 800537E4 A7A700D6 */ sh $a3, 0xd6($sp) -/* ACA988 800537E8 1000000D */ b .L80053820 -/* ACA98C 800537EC 87A700D6 */ lh $a3, 0xd6($sp) -.L800537F0: -/* ACA990 800537F0 15220007 */ bne $t1, $v0, .L80053810 -/* ACA994 800537F4 27A40048 */ addiu $a0, $sp, 0x48 -/* ACA998 800537F8 27A40048 */ addiu $a0, $sp, 0x48 -/* ACA99C 800537FC 00C02825 */ move $a1, $a2 -/* ACA9A0 80053800 0C00BBC5 */ jal func_8002EF14 -/* ACA9A4 80053804 A7A700D6 */ sh $a3, 0xd6($sp) -/* ACA9A8 80053808 10000005 */ b .L80053820 -/* ACA9AC 8005380C 87A700D6 */ lh $a3, 0xd6($sp) -.L80053810: -/* ACA9B0 80053810 00C02825 */ move $a1, $a2 -/* ACA9B4 80053814 0C00BBD1 */ jal func_8002EF44 -/* ACA9B8 80053818 A7A700D6 */ sh $a3, 0xd6($sp) -/* ACA9BC 8005381C 87A700D6 */ lh $a3, 0xd6($sp) -.L80053820: -/* ACA9C0 80053820 24018080 */ li $at, -32640 -/* ACA9C4 80053824 00E15824 */ and $t3, $a3, $at -/* ACA9C8 80053828 5160001D */ beql $t3, $zero, .L800538A0 -/* ACA9CC 8005382C 8E050000 */ lw $a1, ($s0) -/* ACA9D0 80053830 8E0A0000 */ lw $t2, ($s0) -/* ACA9D4 80053834 3C018014 */ lui $at, %hi(D_8013A248) -/* ACA9D8 80053838 C424A248 */ lwc1 $f4, %lo(D_8013A248)($at) -/* ACA9DC 8005383C C54A001C */ lwc1 $f10, 0x1c($t2) -/* ACA9E0 80053840 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* ACA9E4 80053844 44814000 */ mtc1 $at, $f8 -/* ACA9E8 80053848 46045182 */ mul.s $f6, $f10, $f4 -/* ACA9EC 8005384C 3C018014 */ lui $at, %hi(D_8013A24C) -/* ACA9F0 80053850 46083280 */ add.s $f10, $f6, $f8 -/* ACA9F4 80053854 C428A24C */ lwc1 $f8, %lo(D_8013A24C)($at) -/* ACA9F8 80053858 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* ACA9FC 8005385C 4600510D */ trunc.w.s $f4, $f10 -/* ACAA00 80053860 440D2000 */ mfc1 $t5, $f4 -/* ACAA04 80053864 44812000 */ mtc1 $at, $f4 -/* ACAA08 80053868 A7AD00E8 */ sh $t5, 0xe8($sp) -/* ACAA0C 8005386C 8E0E0000 */ lw $t6, ($s0) -/* ACAA10 80053870 C5C60020 */ lwc1 $f6, 0x20($t6) -/* ACAA14 80053874 46083282 */ mul.s $f10, $f6, $f8 -/* ACAA18 80053878 46045180 */ add.s $f6, $f10, $f4 -/* ACAA1C 8005387C 4600320D */ trunc.w.s $f8, $f6 -/* ACAA20 80053880 44184000 */ mfc1 $t8, $f8 -/* ACAA24 80053884 00000000 */ nop -/* ACAA28 80053888 A7B800EA */ sh $t8, 0xea($sp) -/* ACAA2C 8005388C 8E190000 */ lw $t9, ($s0) -/* ACAA30 80053890 C72A0024 */ lwc1 $f10, 0x24($t9) -/* ACAA34 80053894 10000005 */ b .L800538AC -/* ACAA38 80053898 E7AA00E4 */ swc1 $f10, 0xe4($sp) -/* ACAA3C 8005389C 8E050000 */ lw $a1, ($s0) -.L800538A0: -/* ACAA40 800538A0 27A400E4 */ addiu $a0, $sp, 0xe4 -/* ACAA44 800538A4 0C01F0FD */ jal OLib_Vec3fToVecSphGeo -/* ACAA48 800538A8 24A5001C */ addiu $a1, $a1, 0x1c -.L800538AC: -/* ACAA4C 800538AC 87AB00EA */ lh $t3, 0xea($sp) -/* ACAA50 800538B0 87AA0056 */ lh $t2, 0x56($sp) -/* ACAA54 800538B4 87AD00E8 */ lh $t5, 0xe8($sp) -/* ACAA58 800538B8 87AE0054 */ lh $t6, 0x54($sp) -/* ACAA5C 800538BC 016A6021 */ addu $t4, $t3, $t2 -/* ACAA60 800538C0 A7AC00EA */ sh $t4, 0xea($sp) -/* ACAA64 800538C4 01AE7823 */ subu $t7, $t5, $t6 -/* ACAA68 800538C8 A7AF00E8 */ sh $t7, 0xe8($sp) -/* ACAA6C 800538CC 26040010 */ addiu $a0, $s0, 0x10 -/* ACAA70 800538D0 27A50048 */ addiu $a1, $sp, 0x48 -/* ACAA74 800538D4 0C010F0A */ jal func_80043C28 -/* ACAA78 800538D8 27A600E4 */ addiu $a2, $sp, 0xe4 -/* ACAA7C 800538DC 8E030000 */ lw $v1, ($s0) -/* ACAA80 800538E0 10000010 */ b .L80053924 -/* ACAA84 800538E4 84640002 */ lh $a0, 2($v1) -/* ACAA88 800538E8 8E3800A8 */ lw $t8, 0xa8($s1) -.L800538EC: -/* ACAA8C 800538EC 3C048014 */ lui $a0, %hi(D_801394F8) # $a0, 0x8014 -/* ACAA90 800538F0 57000004 */ bnezl $t8, .L80053904 -/* ACAA94 800538F4 8E2B0074 */ lw $t3, 0x74($s1) -/* ACAA98 800538F8 0C00084C */ jal osSyncPrintf -/* ACAA9C 800538FC 248494F8 */ addiu $a0, %lo(D_801394F8) # addiu $a0, $a0, -0x6b08 -/* ACAAA0 80053900 8E2B0074 */ lw $t3, 0x74($s1) -.L80053904: -/* ACAAA4 80053904 AE2000A8 */ sw $zero, 0xa8($s1) -/* ACAAA8 80053908 8E030000 */ lw $v1, ($s0) -/* ACAAAC 8005390C AE0B0010 */ sw $t3, 0x10($s0) -/* ACAAB0 80053910 8E390078 */ lw $t9, 0x78($s1) -/* ACAAB4 80053914 AE190014 */ sw $t9, 0x14($s0) -/* ACAAB8 80053918 8E2B007C */ lw $t3, 0x7c($s1) -/* ACAABC 8005391C AE0B0018 */ sw $t3, 0x18($s0) -/* ACAAC0 80053920 84640002 */ lh $a0, 2($v1) -.L80053924: -/* ACAAC4 80053924 262A0074 */ addiu $t2, $s1, 0x74 -.L80053928: -/* ACAAC8 80053928 1000000A */ b .L80053954 -/* ACAACC 8005392C AFAA0034 */ sw $t2, 0x34($sp) -.L80053930: -/* ACAAD0 80053930 AFAC0034 */ sw $t4, 0x34($sp) -/* ACAAD4 80053934 8D8F0000 */ lw $t7, ($t4) -/* ACAAD8 80053938 8E030000 */ lw $v1, ($s0) -/* ACAADC 8005393C AE0F0010 */ sw $t7, 0x10($s0) -/* ACAAE0 80053940 8D8E0004 */ lw $t6, 4($t4) -/* ACAAE4 80053944 AE0E0014 */ sw $t6, 0x14($s0) -/* ACAAE8 80053948 8D8F0008 */ lw $t7, 8($t4) -/* ACAAEC 8005394C AE0F0018 */ sw $t7, 0x18($s0) -/* ACAAF0 80053950 84640002 */ lh $a0, 2($v1) -.L80053954: -/* ACAAF4 80053954 24010002 */ li $at, 2 -/* ACAAF8 80053958 14810007 */ bne $a0, $at, .L80053978 -/* ACAAFC 8005395C 00000000 */ nop -/* ACAB00 80053960 8E38008C */ lw $t8, 0x8c($s1) -/* ACAB04 80053964 8E030000 */ lw $v1, ($s0) -/* ACAB08 80053968 C70400D0 */ lwc1 $f4, 0xd0($t8) -/* ACAB0C 8005396C A6000034 */ sh $zero, 0x34($s0) -/* ACAB10 80053970 10000019 */ b .L800539D8 -/* ACAB14 80053974 E6040028 */ swc1 $f4, 0x28($s0) -.L80053978: -/* ACAB18 80053978 54800008 */ bnezl $a0, .L8005399C -/* ACAB1C 8005397C C4680008 */ lwc1 $f8, 8($v1) -/* ACAB20 80053980 C62600FC */ lwc1 $f6, 0xfc($s1) -/* ACAB24 80053984 8E030000 */ lw $v1, ($s0) -/* ACAB28 80053988 E6060028 */ swc1 $f6, 0x28($s0) -/* ACAB2C 8005398C 8639015A */ lh $t9, 0x15a($s1) -/* ACAB30 80053990 10000011 */ b .L800539D8 -/* ACAB34 80053994 A6190034 */ sh $t9, 0x34($s0) -/* ACAB38 80053998 C4680008 */ lwc1 $f8, 8($v1) -.L8005399C: -/* ACAB3C 8005399C 3C018014 */ lui $at, %hi(D_8013A250) -/* ACAB40 800539A0 E6080028 */ swc1 $f8, 0x28($s0) -/* ACAB44 800539A4 846B0006 */ lh $t3, 6($v1) -/* ACAB48 800539A8 C426A250 */ lwc1 $f6, %lo(D_8013A250)($at) -/* ACAB4C 800539AC 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* ACAB50 800539B0 448B5000 */ mtc1 $t3, $f10 -/* ACAB54 800539B4 00000000 */ nop -/* ACAB58 800539B8 46805120 */ cvt.s.w $f4, $f10 -/* ACAB5C 800539BC 44815000 */ mtc1 $at, $f10 -/* ACAB60 800539C0 46062202 */ mul.s $f8, $f4, $f6 -/* ACAB64 800539C4 460A4100 */ add.s $f4, $f8, $f10 -/* ACAB68 800539C8 4600218D */ trunc.w.s $f6, $f4 -/* ACAB6C 800539CC 440C3000 */ mfc1 $t4, $f6 -/* ACAB70 800539D0 00000000 */ nop -/* ACAB74 800539D4 A60C0034 */ sh $t4, 0x34($s0) -.L800539D8: -/* ACAB78 800539D8 90620000 */ lbu $v0, ($v1) -/* ACAB7C 800539DC 3042001F */ andi $v0, $v0, 0x1f -/* ACAB80 800539E0 00021400 */ sll $v0, $v0, 0x10 -/* ACAB84 800539E4 00021403 */ sra $v0, $v0, 0x10 -/* ACAB88 800539E8 244DFFFF */ addiu $t5, $v0, -1 -/* ACAB8C 800539EC 2DA10018 */ sltiu $at, $t5, 0x18 -/* ACAB90 800539F0 102001F5 */ beqz $at, .L800541C8 -/* ACAB94 800539F4 000D6880 */ sll $t5, $t5, 2 -/* ACAB98 800539F8 3C018014 */ lui $at, %hi(jtbl_8013A254) -/* ACAB9C 800539FC 002D0821 */ addu $at, $at, $t5 -/* ACABA0 80053A00 8C2DA254 */ lw $t5, %lo(jtbl_8013A254)($at) -/* ACABA4 80053A04 01A00008 */ jr $t5 -/* ACABA8 80053A08 00000000 */ nop - -glabel L80053A0C -/* ACABAC 80053A0C 8FAE0030 */ lw $t6, 0x30($sp) -/* ACABB0 80053A10 8E180004 */ lw $t8, 4($s0) -/* ACABB4 80053A14 2626005C */ addiu $a2, $s1, 0x5c -/* ACABB8 80053A18 ADD80000 */ sw $t8, ($t6) -/* ACABBC 80053A1C 8E0F0008 */ lw $t7, 8($s0) -/* ACABC0 80053A20 ADCF0004 */ sw $t7, 4($t6) -/* ACABC4 80053A24 8E18000C */ lw $t8, 0xc($s0) -/* ACABC8 80053A28 ADD80008 */ sw $t8, 8($t6) -/* ACABCC 80053A2C 8E0A0010 */ lw $t2, 0x10($s0) -/* ACABD0 80053A30 8FB90034 */ lw $t9, 0x34($sp) -/* ACABD4 80053A34 AF2A0000 */ sw $t2, ($t9) -/* ACABD8 80053A38 8E0B0014 */ lw $t3, 0x14($s0) -/* ACABDC 80053A3C AF2B0004 */ sw $t3, 4($t9) -/* ACABE0 80053A40 8E0A0018 */ lw $t2, 0x18($s0) -/* ACABE4 80053A44 AF2A0008 */ sw $t2, 8($t9) -/* ACABE8 80053A48 C6080028 */ lwc1 $f8, 0x28($s0) -/* ACABEC 80053A4C 862D014C */ lh $t5, 0x14c($s1) -/* ACABF0 80053A50 E62800FC */ swc1 $f8, 0xfc($s1) -/* ACABF4 80053A54 860C0034 */ lh $t4, 0x34($s0) -/* ACABF8 80053A58 35AE0400 */ ori $t6, $t5, 0x400 -/* ACABFC 80053A5C A62E014C */ sh $t6, 0x14c($s1) -/* ACAC00 80053A60 100001DE */ b .L800541DC -/* ACAC04 80053A64 A62C015A */ sh $t4, 0x15a($s1) - -glabel L80053A68 -/* ACAC08 80053A68 860F0038 */ lh $t7, 0x38($s0) -/* ACAC0C 80053A6C 26070004 */ addiu $a3, $s0, 4 -/* ACAC10 80053A70 26020010 */ addiu $v0, $s0, 0x10 -/* ACAC14 80053A74 15E00003 */ bnez $t7, .L80053A84 -/* ACAC18 80053A78 24180001 */ li $t8, 1 -/* ACAC1C 80053A7C 10000009 */ b .L80053AA4 -/* ACAC20 80053A80 A6180038 */ sh $t8, 0x38($s0) -.L80053A84: -/* ACAC24 80053A84 8639014C */ lh $t9, 0x14c($s1) -/* ACAC28 80053A88 332B0008 */ andi $t3, $t9, 8 -/* ACAC2C 80053A8C 51600006 */ beql $t3, $zero, .L80053AA8 -/* ACAC30 80053A90 8FAD0030 */ lw $t5, 0x30($sp) -/* ACAC34 80053A94 A6000038 */ sh $zero, 0x38($s0) -/* ACAC38 80053A98 862A014C */ lh $t2, 0x14c($s1) -/* ACAC3C 80053A9C 314CFFF7 */ andi $t4, $t2, 0xfff7 -/* ACAC40 80053AA0 A62C014C */ sh $t4, 0x14c($s1) -.L80053AA4: -/* ACAC44 80053AA4 8FAD0030 */ lw $t5, 0x30($sp) -.L80053AA8: -/* ACAC48 80053AA8 8CEF0000 */ lw $t7, ($a3) -/* ACAC4C 80053AAC 2626005C */ addiu $a2, $s1, 0x5c -/* ACAC50 80053AB0 ADAF0000 */ sw $t7, ($t5) -/* ACAC54 80053AB4 8CEE0004 */ lw $t6, 4($a3) -/* ACAC58 80053AB8 ADAE0004 */ sw $t6, 4($t5) -/* ACAC5C 80053ABC 8CEF0008 */ lw $t7, 8($a3) -/* ACAC60 80053AC0 ADAF0008 */ sw $t7, 8($t5) -/* ACAC64 80053AC4 8C4B0000 */ lw $t3, ($v0) -/* ACAC68 80053AC8 8FB80034 */ lw $t8, 0x34($sp) -/* ACAC6C 80053ACC AF0B0000 */ sw $t3, ($t8) -/* ACAC70 80053AD0 8C590004 */ lw $t9, 4($v0) -/* ACAC74 80053AD4 AF190004 */ sw $t9, 4($t8) -/* ACAC78 80053AD8 8C4B0008 */ lw $t3, 8($v0) -/* ACAC7C 80053ADC AF0B0008 */ sw $t3, 8($t8) -/* ACAC80 80053AE0 C60A0028 */ lwc1 $f10, 0x28($s0) -/* ACAC84 80053AE4 E62A00FC */ swc1 $f10, 0xfc($s1) -/* ACAC88 80053AE8 860A0034 */ lh $t2, 0x34($s0) -/* ACAC8C 80053AEC 100001BB */ b .L800541DC -/* ACAC90 80053AF0 A62A015A */ sh $t2, 0x15a($s1) - -glabel L80053AF4 -/* ACAC94 80053AF4 860C0038 */ lh $t4, 0x38($s0) -/* ACAC98 80053AF8 26070004 */ addiu $a3, $s0, 4 -/* ACAC9C 80053AFC 26020010 */ addiu $v0, $s0, 0x10 -/* ACACA0 80053B00 15800003 */ bnez $t4, .L80053B10 -/* ACACA4 80053B04 240D0001 */ li $t5, 1 -/* ACACA8 80053B08 10000006 */ b .L80053B24 -/* ACACAC 80053B0C A60D0038 */ sh $t5, 0x38($s0) -.L80053B10: -/* ACACB0 80053B10 862E014C */ lh $t6, 0x14c($s1) -/* ACACB4 80053B14 31CF0008 */ andi $t7, $t6, 8 -/* ACACB8 80053B18 51E00003 */ beql $t7, $zero, .L80053B28 -/* ACACBC 80053B1C 8FB80030 */ lw $t8, 0x30($sp) -/* ACACC0 80053B20 A6000038 */ sh $zero, 0x38($s0) -.L80053B24: -/* ACACC4 80053B24 8FB80030 */ lw $t8, 0x30($sp) -.L80053B28: -/* ACACC8 80053B28 8CEB0000 */ lw $t3, ($a3) -/* ACACCC 80053B2C 2626005C */ addiu $a2, $s1, 0x5c -/* ACACD0 80053B30 AF0B0000 */ sw $t3, ($t8) -/* ACACD4 80053B34 8CF90004 */ lw $t9, 4($a3) -/* ACACD8 80053B38 AF190004 */ sw $t9, 4($t8) -/* ACACDC 80053B3C 8CEB0008 */ lw $t3, 8($a3) -/* ACACE0 80053B40 AF0B0008 */ sw $t3, 8($t8) -/* ACACE4 80053B44 8C4D0000 */ lw $t5, ($v0) -/* ACACE8 80053B48 8FAA0034 */ lw $t2, 0x34($sp) -/* ACACEC 80053B4C AD4D0000 */ sw $t5, ($t2) -/* ACACF0 80053B50 8C4C0004 */ lw $t4, 4($v0) -/* ACACF4 80053B54 AD4C0004 */ sw $t4, 4($t2) -/* ACACF8 80053B58 8C4D0008 */ lw $t5, 8($v0) -/* ACACFC 80053B5C AD4D0008 */ sw $t5, 8($t2) -/* ACAD00 80053B60 C6040028 */ lwc1 $f4, 0x28($s0) -/* ACAD04 80053B64 E62400FC */ swc1 $f4, 0xfc($s1) -/* ACAD08 80053B68 860E0034 */ lh $t6, 0x34($s0) -/* ACAD0C 80053B6C 1000019B */ b .L800541DC -/* ACAD10 80053B70 A62E015A */ sh $t6, 0x15a($s1) - -glabel L80053B74 -/* ACAD14 80053B74 26070004 */ addiu $a3, $s0, 4 -/* ACAD18 80053B78 260F0010 */ addiu $t7, $s0, 0x10 -/* ACAD1C 80053B7C AFAF0024 */ sw $t7, 0x24($sp) -/* ACAD20 80053B80 AFA70028 */ sw $a3, 0x28($sp) -/* ACAD24 80053B84 27A400EC */ addiu $a0, $sp, 0xec -/* ACAD28 80053B88 8FA50030 */ lw $a1, 0x30($sp) -/* ACAD2C 80053B8C 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* ACAD30 80053B90 8FA60034 */ lw $a2, 0x34($sp) -/* ACAD34 80053B94 8FA50028 */ lw $a1, 0x28($sp) -/* ACAD38 80053B98 2604002C */ addiu $a0, $s0, 0x2c -/* ACAD3C 80053B9C 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* ACAD40 80053BA0 8FA60024 */ lw $a2, 0x24($sp) -/* ACAD44 80053BA4 8618003C */ lh $t8, 0x3c($s0) -/* ACAD48 80053BA8 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ACAD4C 80053BAC 44813000 */ mtc1 $at, $f6 -/* ACAD50 80053BB0 44984000 */ mtc1 $t8, $f8 -/* ACAD54 80053BB4 C604002C */ lwc1 $f4, 0x2c($s0) -/* ACAD58 80053BB8 87AB00F0 */ lh $t3, 0xf0($sp) -/* ACAD5C 80053BBC 468042A0 */ cvt.s.w $f10, $f8 -/* ACAD60 80053BC0 C7A800EC */ lwc1 $f8, 0xec($sp) -/* ACAD64 80053BC4 27A40100 */ addiu $a0, $sp, 0x100 -/* ACAD68 80053BC8 8FA50030 */ lw $a1, 0x30($sp) -/* ACAD6C 80053BCC 27A600E4 */ addiu $a2, $sp, 0xe4 -/* ACAD70 80053BD0 460A3083 */ div.s $f2, $f6, $f10 -/* ACAD74 80053BD4 46082181 */ sub.s $f6, $f4, $f8 -/* ACAD78 80053BD8 46023282 */ mul.s $f10, $f6, $f2 -/* ACAD7C 80053BDC 46085100 */ add.s $f4, $f10, $f8 -/* ACAD80 80053BE0 E7A400E4 */ swc1 $f4, 0xe4($sp) -/* ACAD84 80053BE4 86190030 */ lh $t9, 0x30($s0) -/* ACAD88 80053BE8 448B2000 */ mtc1 $t3, $f4 -/* ACAD8C 80053BEC 032B5023 */ subu $t2, $t9, $t3 -/* ACAD90 80053BF0 000A6400 */ sll $t4, $t2, 0x10 -/* ACAD94 80053BF4 000C6C03 */ sra $t5, $t4, 0x10 -/* ACAD98 80053BF8 448D3000 */ mtc1 $t5, $f6 -/* ACAD9C 80053BFC 87B900F2 */ lh $t9, 0xf2($sp) -/* ACADA0 80053C00 468032A0 */ cvt.s.w $f10, $f6 -/* ACADA4 80053C04 468021A0 */ cvt.s.w $f6, $f4 -/* ACADA8 80053C08 46025202 */ mul.s $f8, $f10, $f2 -/* ACADAC 80053C0C 46083280 */ add.s $f10, $f6, $f8 -/* ACADB0 80053C10 4600510D */ trunc.w.s $f4, $f10 -/* ACADB4 80053C14 440F2000 */ mfc1 $t7, $f4 -/* ACADB8 80053C18 44992000 */ mtc1 $t9, $f4 -/* ACADBC 80053C1C A7AF00E8 */ sh $t7, 0xe8($sp) -/* ACADC0 80053C20 86180032 */ lh $t8, 0x32($s0) -/* ACADC4 80053C24 03195023 */ subu $t2, $t8, $t9 -/* ACADC8 80053C28 000A6400 */ sll $t4, $t2, 0x10 -/* ACADCC 80053C2C 000C6C03 */ sra $t5, $t4, 0x10 -/* ACADD0 80053C30 448D3000 */ mtc1 $t5, $f6 -/* ACADD4 80053C34 00000000 */ nop -/* ACADD8 80053C38 46803220 */ cvt.s.w $f8, $f6 -/* ACADDC 80053C3C 468021A0 */ cvt.s.w $f6, $f4 -/* ACADE0 80053C40 46024282 */ mul.s $f10, $f8, $f2 -/* ACADE4 80053C44 460A3200 */ add.s $f8, $f6, $f10 -/* ACADE8 80053C48 4600410D */ trunc.w.s $f4, $f8 -/* ACADEC 80053C4C 440E2000 */ mfc1 $t6, $f4 -/* ACADF0 80053C50 0C010F0A */ jal func_80043C28 -/* ACADF4 80053C54 A7AE00EA */ sh $t6, 0xea($sp) -/* ACADF8 80053C58 1000001A */ b .L80053CC4 -/* ACADFC 80053C5C 8E180000 */ lw $t8, ($s0) - -glabel L80053C60 -/* ACAE00 80053C60 860F003C */ lh $t7, 0x3c($s0) -/* ACAE04 80053C64 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ACAE08 80053C68 44813000 */ mtc1 $at, $f6 -/* ACAE0C 80053C6C 448F5000 */ mtc1 $t7, $f10 -/* ACAE10 80053C70 C6200074 */ lwc1 $f0, 0x74($s1) -/* ACAE14 80053C74 C6040010 */ lwc1 $f4, 0x10($s0) -/* ACAE18 80053C78 46805220 */ cvt.s.w $f8, $f10 -/* ACAE1C 80053C7C 46002281 */ sub.s $f10, $f4, $f0 -/* ACAE20 80053C80 46083083 */ div.s $f2, $f6, $f8 -/* ACAE24 80053C84 46025182 */ mul.s $f6, $f10, $f2 -/* ACAE28 80053C88 46060200 */ add.s $f8, $f0, $f6 -/* ACAE2C 80053C8C E7A80100 */ swc1 $f8, 0x100($sp) -/* ACAE30 80053C90 C6040014 */ lwc1 $f4, 0x14($s0) -/* ACAE34 80053C94 C62C0078 */ lwc1 $f12, 0x78($s1) -/* ACAE38 80053C98 460C2281 */ sub.s $f10, $f4, $f12 -/* ACAE3C 80053C9C 46025182 */ mul.s $f6, $f10, $f2 -/* ACAE40 80053CA0 46066200 */ add.s $f8, $f12, $f6 -/* ACAE44 80053CA4 E7A80104 */ swc1 $f8, 0x104($sp) -/* ACAE48 80053CA8 C6040018 */ lwc1 $f4, 0x18($s0) -/* ACAE4C 80053CAC C62E007C */ lwc1 $f14, 0x7c($s1) -/* ACAE50 80053CB0 460E2281 */ sub.s $f10, $f4, $f14 -/* ACAE54 80053CB4 46025182 */ mul.s $f6, $f10, $f2 -/* ACAE58 80053CB8 46067200 */ add.s $f8, $f14, $f6 -/* ACAE5C 80053CBC E7A80108 */ swc1 $f8, 0x108($sp) -/* ACAE60 80053CC0 8E180000 */ lw $t8, ($s0) -.L80053CC4: -/* ACAE64 80053CC4 C7AC0100 */ lwc1 $f12, 0x100($sp) -/* ACAE68 80053CC8 C62E0074 */ lwc1 $f14, 0x74($s1) -/* ACAE6C 80053CCC 3C073F80 */ lui $a3, 0x3f80 -/* ACAE70 80053CD0 0C010E37 */ jal func_800438DC -/* ACAE74 80053CD4 8F06000C */ lw $a2, 0xc($t8) -/* ACAE78 80053CD8 E6200074 */ swc1 $f0, 0x74($s1) -/* ACAE7C 80053CDC 8E0A0000 */ lw $t2, ($s0) -/* ACAE80 80053CE0 C7AC0104 */ lwc1 $f12, 0x104($sp) -/* ACAE84 80053CE4 C62E0078 */ lwc1 $f14, 0x78($s1) -/* ACAE88 80053CE8 3C073F80 */ lui $a3, 0x3f80 -/* ACAE8C 80053CEC 0C010E37 */ jal func_800438DC -/* ACAE90 80053CF0 8D46000C */ lw $a2, 0xc($t2) -/* ACAE94 80053CF4 E6200078 */ swc1 $f0, 0x78($s1) -/* ACAE98 80053CF8 8E0C0000 */ lw $t4, ($s0) -/* ACAE9C 80053CFC C7AC0108 */ lwc1 $f12, 0x108($sp) -/* ACAEA0 80053D00 C62E007C */ lwc1 $f14, 0x7c($s1) -/* ACAEA4 80053D04 3C073F80 */ lui $a3, 0x3f80 -/* ACAEA8 80053D08 0C010E37 */ jal func_800438DC -/* ACAEAC 80053D0C 8D86000C */ lw $a2, 0xc($t4) -/* ACAEB0 80053D10 E620007C */ swc1 $f0, 0x7c($s1) -/* ACAEB4 80053D14 8E030000 */ lw $v1, ($s0) - -glabel L80053D18 -/* ACAEB8 80053D18 860D003C */ lh $t5, 0x3c($s0) -/* ACAEBC 80053D1C 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ACAEC0 80053D20 44819000 */ mtc1 $at, $f18 -/* ACAEC4 80053D24 448D2000 */ mtc1 $t5, $f4 -/* ACAEC8 80053D28 C62E0050 */ lwc1 $f14, 0x50($s1) -/* ACAECC 80053D2C C6060004 */ lwc1 $f6, 4($s0) -/* ACAED0 80053D30 468022A0 */ cvt.s.w $f10, $f4 -/* ACAED4 80053D34 C6200054 */ lwc1 $f0, 0x54($s1) -/* ACAED8 80053D38 44079000 */ mfc1 $a3, $f18 -/* ACAEDC 80053D3C 460E3201 */ sub.s $f8, $f6, $f14 -/* ACAEE0 80053D40 460A9083 */ div.s $f2, $f18, $f10 -/* ACAEE4 80053D44 C60A0008 */ lwc1 $f10, 8($s0) -/* ACAEE8 80053D48 46005181 */ sub.s $f6, $f10, $f0 -/* ACAEEC 80053D4C 46024102 */ mul.s $f4, $f8, $f2 -/* ACAEF0 80053D50 00000000 */ nop -/* ACAEF4 80053D54 46023202 */ mul.s $f8, $f6, $f2 -/* ACAEF8 80053D58 46047300 */ add.s $f12, $f14, $f4 -/* ACAEFC 80053D5C 46080100 */ add.s $f4, $f0, $f8 -/* ACAF00 80053D60 E7A40110 */ swc1 $f4, 0x110($sp) -/* ACAF04 80053D64 C60A000C */ lwc1 $f10, 0xc($s0) -/* ACAF08 80053D68 C6300058 */ lwc1 $f16, 0x58($s1) -/* ACAF0C 80053D6C 46105181 */ sub.s $f6, $f10, $f16 -/* ACAF10 80053D70 46023202 */ mul.s $f8, $f6, $f2 -/* ACAF14 80053D74 46088100 */ add.s $f4, $f16, $f8 -/* ACAF18 80053D78 E7A40114 */ swc1 $f4, 0x114($sp) -/* ACAF1C 80053D7C 8C66000C */ lw $a2, 0xc($v1) -/* ACAF20 80053D80 0C010E37 */ jal func_800438DC -/* ACAF24 80053D84 E7A200F4 */ swc1 $f2, 0xf4($sp) -/* ACAF28 80053D88 E6200050 */ swc1 $f0, 0x50($s1) -/* ACAF2C 80053D8C 8E190000 */ lw $t9, ($s0) -/* ACAF30 80053D90 C7AC0110 */ lwc1 $f12, 0x110($sp) -/* ACAF34 80053D94 C62E0054 */ lwc1 $f14, 0x54($s1) -/* ACAF38 80053D98 3C073F80 */ lui $a3, 0x3f80 -/* ACAF3C 80053D9C 0C010E37 */ jal func_800438DC -/* ACAF40 80053DA0 8F26000C */ lw $a2, 0xc($t9) -/* ACAF44 80053DA4 E6200054 */ swc1 $f0, 0x54($s1) -/* ACAF48 80053DA8 8E0B0000 */ lw $t3, ($s0) -/* ACAF4C 80053DAC C7AC0114 */ lwc1 $f12, 0x114($sp) -/* ACAF50 80053DB0 C62E0058 */ lwc1 $f14, 0x58($s1) -/* ACAF54 80053DB4 3C073F80 */ lui $a3, 0x3f80 -/* ACAF58 80053DB8 0C010E37 */ jal func_800438DC -/* ACAF5C 80053DBC 8D66000C */ lw $a2, 0xc($t3) -/* ACAF60 80053DC0 C7A200F4 */ lwc1 $f2, 0xf4($sp) -/* ACAF64 80053DC4 E6200058 */ swc1 $f0, 0x58($s1) -/* ACAF68 80053DC8 C60A0028 */ lwc1 $f10, 0x28($s0) -/* ACAF6C 80053DCC C62E00FC */ lwc1 $f14, 0xfc($s1) -/* ACAF70 80053DD0 8E0E0000 */ lw $t6, ($s0) -/* ACAF74 80053DD4 3C073C23 */ lui $a3, (0x3C23D70A >> 16) # lui $a3, 0x3c23 -/* ACAF78 80053DD8 460E5181 */ sub.s $f6, $f10, $f14 -/* ACAF7C 80053DDC 34E7D70A */ ori $a3, (0x3C23D70A & 0xFFFF) # ori $a3, $a3, 0xd70a -/* ACAF80 80053DE0 8DC6000C */ lw $a2, 0xc($t6) -/* ACAF84 80053DE4 46023202 */ mul.s $f8, $f6, $f2 -/* ACAF88 80053DE8 0C010E37 */ jal func_800438DC -/* ACAF8C 80053DEC 46087300 */ add.s $f12, $f14, $f8 -/* ACAF90 80053DF0 E62000FC */ swc1 $f0, 0xfc($s1) -/* ACAF94 80053DF4 860F0034 */ lh $t7, 0x34($s0) -/* ACAF98 80053DF8 8625015A */ lh $a1, 0x15a($s1) -/* ACAF9C 80053DFC 860D003C */ lh $t5, 0x3c($s0) -/* ACAFA0 80053E00 8E0B0000 */ lw $t3, ($s0) -/* ACAFA4 80053E04 01E5C023 */ subu $t8, $t7, $a1 -/* ACAFA8 80053E08 00185400 */ sll $t2, $t8, 0x10 -/* ACAFAC 80053E0C 000A6403 */ sra $t4, $t2, 0x10 -/* ACAFB0 80053E10 018D001A */ div $zero, $t4, $t5 -/* ACAFB4 80053E14 0000C812 */ mflo $t9 -/* ACAFB8 80053E18 00B92021 */ addu $a0, $a1, $t9 -/* ACAFBC 80053E1C 00042400 */ sll $a0, $a0, 0x10 -/* ACAFC0 80053E20 15A00002 */ bnez $t5, .L80053E2C -/* ACAFC4 80053E24 00000000 */ nop -/* ACAFC8 80053E28 0007000D */ break 7 -.L80053E2C: -/* ACAFCC 80053E2C 2401FFFF */ li $at, -1 -/* ACAFD0 80053E30 15A10004 */ bne $t5, $at, .L80053E44 -/* ACAFD4 80053E34 3C018000 */ lui $at, 0x8000 -/* ACAFD8 80053E38 15810002 */ bne $t4, $at, .L80053E44 -/* ACAFDC 80053E3C 00000000 */ nop -/* ACAFE0 80053E40 0006000D */ break 6 -.L80053E44: -/* ACAFE4 80053E44 00042403 */ sra $a0, $a0, 0x10 -/* ACAFE8 80053E48 2407000A */ li $a3, 10 -/* ACAFEC 80053E4C 0C010E6B */ jal func_800439AC -/* ACAFF0 80053E50 8D66000C */ lw $a2, 0xc($t3) -/* ACAFF4 80053E54 A622015A */ sh $v0, 0x15a($s1) -/* ACAFF8 80053E58 100000E0 */ b .L800541DC -/* ACAFFC 80053E5C 2626005C */ addiu $a2, $s1, 0x5c - -glabel L80053E60 -/* ACB000 80053E60 26070004 */ addiu $a3, $s0, 4 -/* ACB004 80053E64 260E0010 */ addiu $t6, $s0, 0x10 -/* ACB008 80053E68 AFAE0024 */ sw $t6, 0x24($sp) -/* ACB00C 80053E6C AFA70028 */ sw $a3, 0x28($sp) -/* ACB010 80053E70 27A400EC */ addiu $a0, $sp, 0xec -/* ACB014 80053E74 8FA50030 */ lw $a1, 0x30($sp) -/* ACB018 80053E78 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* ACB01C 80053E7C 8FA60034 */ lw $a2, 0x34($sp) -/* ACB020 80053E80 8FA50028 */ lw $a1, 0x28($sp) -/* ACB024 80053E84 2604002C */ addiu $a0, $s0, 0x2c -/* ACB028 80053E88 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* ACB02C 80053E8C 8FA60024 */ lw $a2, 0x24($sp) -/* ACB030 80053E90 8E0F0000 */ lw $t7, ($s0) -/* ACB034 80053E94 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* ACB038 80053E98 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* ACB03C 80053E9C C60C002C */ lwc1 $f12, 0x2c($s0) -/* ACB040 80053EA0 C7AE00EC */ lwc1 $f14, 0xec($sp) -/* ACB044 80053EA4 0C010E27 */ jal func_8004389C -/* ACB048 80053EA8 8DE6000C */ lw $a2, 0xc($t7) -/* ACB04C 80053EAC E7A000E4 */ swc1 $f0, 0xe4($sp) -/* ACB050 80053EB0 8E180000 */ lw $t8, ($s0) -/* ACB054 80053EB4 86040030 */ lh $a0, 0x30($s0) -/* ACB058 80053EB8 87A500F0 */ lh $a1, 0xf0($sp) -/* ACB05C 80053EBC 24070001 */ li $a3, 1 -/* ACB060 80053EC0 0C010E47 */ jal func_8004391C -/* ACB064 80053EC4 8F06000C */ lw $a2, 0xc($t8) -/* ACB068 80053EC8 A7A200E8 */ sh $v0, 0xe8($sp) -/* ACB06C 80053ECC 8E0A0000 */ lw $t2, ($s0) -/* ACB070 80053ED0 86040032 */ lh $a0, 0x32($s0) -/* ACB074 80053ED4 87A500F2 */ lh $a1, 0xf2($sp) -/* ACB078 80053ED8 24070001 */ li $a3, 1 -/* ACB07C 80053EDC 0C010E47 */ jal func_8004391C -/* ACB080 80053EE0 8D46000C */ lw $a2, 0xc($t2) -/* ACB084 80053EE4 A7A200EA */ sh $v0, 0xea($sp) -/* ACB088 80053EE8 8FA40034 */ lw $a0, 0x34($sp) -/* ACB08C 80053EEC 8FA50030 */ lw $a1, 0x30($sp) -/* ACB090 80053EF0 0C010F0A */ jal func_80043C28 -/* ACB094 80053EF4 27A600E4 */ addiu $a2, $sp, 0xe4 -/* ACB098 80053EF8 10000016 */ b .L80053F54 -/* ACB09C 80053EFC 8E030000 */ lw $v1, ($s0) - -glabel L80053F00 -/* ACB0A0 80053F00 C60C0010 */ lwc1 $f12, 0x10($s0) -/* ACB0A4 80053F04 C62E0074 */ lwc1 $f14, 0x74($s1) -/* ACB0A8 80053F08 8C66000C */ lw $a2, 0xc($v1) -/* ACB0AC 80053F0C 0C010E27 */ jal func_8004389C -/* ACB0B0 80053F10 3C073F80 */ lui $a3, 0x3f80 -/* ACB0B4 80053F14 E6200074 */ swc1 $f0, 0x74($s1) -/* ACB0B8 80053F18 8E0C0000 */ lw $t4, ($s0) -/* ACB0BC 80053F1C C60C0014 */ lwc1 $f12, 0x14($s0) -/* ACB0C0 80053F20 C62E0078 */ lwc1 $f14, 0x78($s1) -/* ACB0C4 80053F24 3C073F80 */ lui $a3, 0x3f80 -/* ACB0C8 80053F28 0C010E27 */ jal func_8004389C -/* ACB0CC 80053F2C 8D86000C */ lw $a2, 0xc($t4) -/* ACB0D0 80053F30 E6200078 */ swc1 $f0, 0x78($s1) -/* ACB0D4 80053F34 8E0D0000 */ lw $t5, ($s0) -/* ACB0D8 80053F38 C60C0018 */ lwc1 $f12, 0x18($s0) -/* ACB0DC 80053F3C C62E007C */ lwc1 $f14, 0x7c($s1) -/* ACB0E0 80053F40 3C073F80 */ lui $a3, 0x3f80 -/* ACB0E4 80053F44 0C010E27 */ jal func_8004389C -/* ACB0E8 80053F48 8DA6000C */ lw $a2, 0xc($t5) -/* ACB0EC 80053F4C E620007C */ swc1 $f0, 0x7c($s1) -/* ACB0F0 80053F50 8E030000 */ lw $v1, ($s0) - -glabel L80053F54 -.L80053F54: -/* ACB0F4 80053F54 C60C0004 */ lwc1 $f12, 4($s0) -/* ACB0F8 80053F58 C62E0050 */ lwc1 $f14, 0x50($s1) -/* ACB0FC 80053F5C 8C66000C */ lw $a2, 0xc($v1) -/* ACB100 80053F60 0C010E27 */ jal func_8004389C -/* ACB104 80053F64 3C073F80 */ lui $a3, 0x3f80 -/* ACB108 80053F68 E6200050 */ swc1 $f0, 0x50($s1) -/* ACB10C 80053F6C 8E190000 */ lw $t9, ($s0) -/* ACB110 80053F70 C60C0008 */ lwc1 $f12, 8($s0) -/* ACB114 80053F74 C62E0054 */ lwc1 $f14, 0x54($s1) -/* ACB118 80053F78 3C073F80 */ lui $a3, 0x3f80 -/* ACB11C 80053F7C 0C010E27 */ jal func_8004389C -/* ACB120 80053F80 8F26000C */ lw $a2, 0xc($t9) -/* ACB124 80053F84 E6200054 */ swc1 $f0, 0x54($s1) -/* ACB128 80053F88 8E0B0000 */ lw $t3, ($s0) -/* ACB12C 80053F8C C60C000C */ lwc1 $f12, 0xc($s0) -/* ACB130 80053F90 C62E0058 */ lwc1 $f14, 0x58($s1) -/* ACB134 80053F94 3C073F80 */ lui $a3, 0x3f80 -/* ACB138 80053F98 0C010E27 */ jal func_8004389C -/* ACB13C 80053F9C 8D66000C */ lw $a2, 0xc($t3) -/* ACB140 80053FA0 E6200058 */ swc1 $f0, 0x58($s1) -/* ACB144 80053FA4 8E0E0000 */ lw $t6, ($s0) -/* ACB148 80053FA8 C60C0028 */ lwc1 $f12, 0x28($s0) -/* ACB14C 80053FAC C62E00FC */ lwc1 $f14, 0xfc($s1) -/* ACB150 80053FB0 3C073F80 */ lui $a3, 0x3f80 -/* ACB154 80053FB4 0C010E27 */ jal func_8004389C -/* ACB158 80053FB8 8DC6000C */ lw $a2, 0xc($t6) -/* ACB15C 80053FBC E62000FC */ swc1 $f0, 0xfc($s1) -/* ACB160 80053FC0 8E0F0000 */ lw $t7, ($s0) -/* ACB164 80053FC4 86040034 */ lh $a0, 0x34($s0) -/* ACB168 80053FC8 8625015A */ lh $a1, 0x15a($s1) -/* ACB16C 80053FCC 24070001 */ li $a3, 1 -/* ACB170 80053FD0 0C010E47 */ jal func_8004391C -/* ACB174 80053FD4 8DE6000C */ lw $a2, 0xc($t7) -/* ACB178 80053FD8 A622015A */ sh $v0, 0x15a($s1) -/* ACB17C 80053FDC 1000007F */ b .L800541DC -/* ACB180 80053FE0 2626005C */ addiu $a2, $s1, 0x5c - -glabel L80053FE4 -/* ACB184 80053FE4 C60C0004 */ lwc1 $f12, 4($s0) -/* ACB188 80053FE8 C62E0050 */ lwc1 $f14, 0x50($s1) -/* ACB18C 80053FEC 8C66000C */ lw $a2, 0xc($v1) -/* ACB190 80053FF0 0C010E27 */ jal func_8004389C -/* ACB194 80053FF4 3C073F80 */ lui $a3, 0x3f80 -/* ACB198 80053FF8 E6200050 */ swc1 $f0, 0x50($s1) -/* ACB19C 80053FFC 8E180000 */ lw $t8, ($s0) -/* ACB1A0 80054000 C62400F4 */ lwc1 $f4, 0xf4($s1) -/* ACB1A4 80054004 C6280054 */ lwc1 $f8, 0x54($s1) -/* ACB1A8 80054008 C70A000C */ lwc1 $f10, 0xc($t8) -/* ACB1AC 8005400C C62E0058 */ lwc1 $f14, 0x58($s1) -/* ACB1B0 80054010 3C073F80 */ lui $a3, 0x3f80 -/* ACB1B4 80054014 460A2182 */ mul.s $f6, $f4, $f10 -/* ACB1B8 80054018 46064100 */ add.s $f4, $f8, $f6 -/* ACB1BC 8005401C E6240054 */ swc1 $f4, 0x54($s1) -/* ACB1C0 80054020 8E0A0000 */ lw $t2, ($s0) -/* ACB1C4 80054024 C60C000C */ lwc1 $f12, 0xc($s0) -/* ACB1C8 80054028 0C010E27 */ jal func_8004389C -/* ACB1CC 8005402C 8D46000C */ lw $a2, 0xc($t2) -/* ACB1D0 80054030 E6200058 */ swc1 $f0, 0x58($s1) -/* ACB1D4 80054034 8FA60034 */ lw $a2, 0x34($sp) -/* ACB1D8 80054038 8FA50030 */ lw $a1, 0x30($sp) -/* ACB1DC 8005403C 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* ACB1E0 80054040 27A400E4 */ addiu $a0, $sp, 0xe4 -/* ACB1E4 80054044 8E0C0000 */ lw $t4, ($s0) -/* ACB1E8 80054048 3C018014 */ lui $at, %hi(D_8013A2B4) -/* ACB1EC 8005404C C428A2B4 */ lwc1 $f8, %lo(D_8013A2B4)($at) -/* ACB1F0 80054050 C58A0020 */ lwc1 $f10, 0x20($t4) -/* ACB1F4 80054054 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* ACB1F8 80054058 44812000 */ mtc1 $at, $f4 -/* ACB1FC 8005405C 46085182 */ mul.s $f6, $f10, $f8 -/* ACB200 80054060 87AF00EA */ lh $t7, 0xea($sp) -/* ACB204 80054064 87AA00E8 */ lh $t2, 0xe8($sp) -/* ACB208 80054068 240C3A98 */ li $t4, 15000 -/* ACB20C 8005406C 2419C568 */ li $t9, -15000 -/* ACB210 80054070 29413A99 */ slti $at, $t2, 0x3a99 -/* ACB214 80054074 3C073F80 */ lui $a3, 0x3f80 -/* ACB218 80054078 46043280 */ add.s $f10, $f6, $f4 -/* ACB21C 8005407C 4600520D */ trunc.w.s $f8, $f10 -/* ACB220 80054080 440E4000 */ mfc1 $t6, $f8 -/* ACB224 80054084 00000000 */ nop -/* ACB228 80054088 01EEC021 */ addu $t8, $t7, $t6 -/* ACB22C 8005408C 14200002 */ bnez $at, .L80054098 -/* ACB230 80054090 A7B800EA */ sh $t8, 0xea($sp) -/* ACB234 80054094 A7AC00E8 */ sh $t4, 0xe8($sp) -.L80054098: -/* ACB238 80054098 87AD00E8 */ lh $t5, 0xe8($sp) -/* ACB23C 8005409C 29A1C568 */ slti $at, $t5, -0x3a98 -/* ACB240 800540A0 50200003 */ beql $at, $zero, .L800540B0 -/* ACB244 800540A4 8E030000 */ lw $v1, ($s0) -/* ACB248 800540A8 A7B900E8 */ sh $t9, 0xe8($sp) -/* ACB24C 800540AC 8E030000 */ lw $v1, ($s0) -.L800540B0: -/* ACB250 800540B0 C7A600E4 */ lwc1 $f6, 0xe4($sp) -/* ACB254 800540B4 C7AE00E4 */ lwc1 $f14, 0xe4($sp) -/* ACB258 800540B8 C46C0024 */ lwc1 $f12, 0x24($v1) -/* ACB25C 800540BC 460C303C */ c.lt.s $f6, $f12 -/* ACB260 800540C0 00000000 */ nop -/* ACB264 800540C4 45030005 */ bc1tl .L800540DC -/* ACB268 800540C8 8FA40034 */ lw $a0, 0x34($sp) -/* ACB26C 800540CC 0C010E27 */ jal func_8004389C -/* ACB270 800540D0 8C66000C */ lw $a2, 0xc($v1) -/* ACB274 800540D4 E7A000E4 */ swc1 $f0, 0xe4($sp) -/* ACB278 800540D8 8FA40034 */ lw $a0, 0x34($sp) -.L800540DC: -/* ACB27C 800540DC 8FA50030 */ lw $a1, 0x30($sp) -/* ACB280 800540E0 0C010F0A */ jal func_80043C28 -/* ACB284 800540E4 27A600E4 */ addiu $a2, $sp, 0xe4 -/* ACB288 800540E8 860B003C */ lh $t3, 0x3c($s0) -/* ACB28C 800540EC 8E030000 */ lw $v1, ($s0) -/* ACB290 800540F0 C62E00FC */ lwc1 $f14, 0xfc($s1) -/* ACB294 800540F4 448B4000 */ mtc1 $t3, $f8 -/* ACB298 800540F8 C4640008 */ lwc1 $f4, 8($v1) -/* ACB29C 800540FC 3C073F80 */ lui $a3, 0x3f80 -/* ACB2A0 80054100 468041A0 */ cvt.s.w $f6, $f8 -/* ACB2A4 80054104 8C66000C */ lw $a2, 0xc($v1) -/* ACB2A8 80054108 460E2281 */ sub.s $f10, $f4, $f14 -/* ACB2AC 8005410C 46065103 */ div.s $f4, $f10, $f6 -/* ACB2B0 80054110 0C010E27 */ jal func_8004389C -/* ACB2B4 80054114 46047300 */ add.s $f12, $f14, $f4 -/* ACB2B8 80054118 E62000FC */ swc1 $f0, 0xfc($s1) -/* ACB2BC 8005411C 8E0F0000 */ lw $t7, ($s0) -/* ACB2C0 80054120 86040034 */ lh $a0, 0x34($s0) -/* ACB2C4 80054124 8625015A */ lh $a1, 0x15a($s1) -/* ACB2C8 80054128 24070001 */ li $a3, 1 -/* ACB2CC 8005412C 0C010E47 */ jal func_8004391C -/* ACB2D0 80054130 8DE6000C */ lw $a2, 0xc($t7) -/* ACB2D4 80054134 A622015A */ sh $v0, 0x15a($s1) -/* ACB2D8 80054138 10000028 */ b .L800541DC -/* ACB2DC 8005413C 2626005C */ addiu $a2, $s1, 0x5c - -glabel L80054140 -/* ACB2E0 80054140 860E0034 */ lh $t6, 0x34($s0) -/* ACB2E4 80054144 2626005C */ addiu $a2, $s1, 0x5c -/* ACB2E8 80054148 10000024 */ b .L800541DC -/* ACB2EC 8005414C A60E0036 */ sh $t6, 0x36($s0) - -glabel L80054150 -/* ACB2F0 80054150 86220162 */ lh $v0, 0x162($s1) -/* ACB2F4 80054154 00002825 */ move $a1, $zero -/* ACB2F8 80054158 04410003 */ bgez $v0, .L80054168 -/* ACB2FC 8005415C 00401825 */ move $v1, $v0 -/* ACB300 80054160 10000001 */ b .L80054168 -/* ACB304 80054164 00001825 */ move $v1, $zero -.L80054168: -/* ACB308 80054168 8E38008C */ lw $t8, 0x8c($s1) -/* ACB30C 8005416C 00035080 */ sll $t2, $v1, 2 -/* ACB310 80054170 24060001 */ li $a2, 1 -/* ACB314 80054174 030A6021 */ addu $t4, $t8, $t2 -/* ACB318 80054178 0C016813 */ jal Camera_ChangeMode -/* ACB31C 8005417C 8D840790 */ lw $a0, 0x790($t4) - -glabel L80054180 -/* ACB320 80054180 86220162 */ lh $v0, 0x162($s1) -/* ACB324 80054184 8FAF0034 */ lw $t7, 0x34($sp) -/* ACB328 80054188 04410003 */ bgez $v0, .L80054198 -/* ACB32C 8005418C 00401825 */ move $v1, $v0 -/* ACB330 80054190 10000001 */ b .L80054198 -/* ACB334 80054194 00001825 */ move $v1, $zero -.L80054198: -/* ACB338 80054198 8E2D008C */ lw $t5, 0x8c($s1) -/* ACB33C 8005419C 8DF80000 */ lw $t8, ($t7) -/* ACB340 800541A0 0003C880 */ sll $t9, $v1, 2 -/* ACB344 800541A4 01B95821 */ addu $t3, $t5, $t9 -/* ACB348 800541A8 8D640790 */ lw $a0, 0x790($t3) -/* ACB34C 800541AC AE38005C */ sw $t8, 0x5c($s1) -/* ACB350 800541B0 8DEE0004 */ lw $t6, 4($t7) -/* ACB354 800541B4 02202825 */ move $a1, $s1 -/* ACB358 800541B8 AE2E0060 */ sw $t6, 0x60($s1) -/* ACB35C 800541BC 8DF80008 */ lw $t8, 8($t7) -/* ACB360 800541C0 0C016B99 */ jal func_8005AE64 -/* ACB364 800541C4 AE380064 */ sw $t8, 0x64($s1) - -glabel L800541C8 -.L800541C8: -/* ACB368 800541C8 862A0164 */ lh $t2, 0x164($s1) -/* ACB36C 800541CC 2626005C */ addiu $a2, $s1, 0x5c -/* ACB370 800541D0 51400003 */ beql $t2, $zero, .L800541E0 -/* ACB374 800541D4 8FAC0034 */ lw $t4, 0x34($sp) -/* ACB378 800541D8 A6200160 */ sh $zero, 0x160($s1) -.L800541DC: -/* ACB37C 800541DC 8FAC0034 */ lw $t4, 0x34($sp) -.L800541E0: -/* ACB380 800541E0 02202025 */ move $a0, $s1 -/* ACB384 800541E4 8D990000 */ lw $t9, ($t4) -/* ACB388 800541E8 ACD90000 */ sw $t9, ($a2) -/* ACB38C 800541EC 8D8D0004 */ lw $t5, 4($t4) -/* ACB390 800541F0 ACCD0004 */ sw $t5, 4($a2) -/* ACB394 800541F4 8D990008 */ lw $t9, 8($t4) -/* ACB398 800541F8 ACD90008 */ sw $t9, 8($a2) -/* ACB39C 800541FC 8E0B0000 */ lw $t3, ($s0) -/* ACB3A0 80054200 8FA50030 */ lw $a1, 0x30($sp) -/* ACB3A4 80054204 91630000 */ lbu $v1, ($t3) -/* ACB3A8 80054208 306F0080 */ andi $t7, $v1, 0x80 -/* ACB3AC 8005420C 51E00007 */ beql $t7, $zero, .L8005422C -/* ACB3B0 80054210 30780040 */ andi $t8, $v1, 0x40 -/* ACB3B4 80054214 0C010FCD */ jal func_80043F34 -/* ACB3B8 80054218 AFA6002C */ sw $a2, 0x2c($sp) -/* ACB3BC 8005421C 8E0E0000 */ lw $t6, ($s0) -/* ACB3C0 80054220 8FA6002C */ lw $a2, 0x2c($sp) -/* ACB3C4 80054224 91C30000 */ lbu $v1, ($t6) -/* ACB3C8 80054228 30780040 */ andi $t8, $v1, 0x40 -.L8005422C: -/* ACB3CC 8005422C 13000014 */ beqz $t8, .L80054280 -/* ACB3D0 80054230 00C02825 */ move $a1, $a2 -/* ACB3D4 80054234 C608001C */ lwc1 $f8, 0x1c($s0) -/* ACB3D8 80054238 8E2A0090 */ lw $t2, 0x90($s1) -/* ACB3DC 8005423C E5480024 */ swc1 $f8, 0x24($t2) -/* ACB3E0 80054240 8E2C0090 */ lw $t4, 0x90($s1) -/* ACB3E4 80054244 C60A0024 */ lwc1 $f10, 0x24($s0) -/* ACB3E8 80054248 E58A002C */ swc1 $f10, 0x2c($t4) -/* ACB3EC 8005424C 8E220090 */ lw $v0, 0x90($s1) -/* ACB3F0 80054250 8FAB0088 */ lw $t3, 0x88($sp) -/* ACB3F4 80054254 8C4D067C */ lw $t5, 0x67c($v0) -/* ACB3F8 80054258 000DC900 */ sll $t9, $t5, 4 -/* ACB3FC 8005425C 0723000F */ bgezl $t9, .L8005429C -/* ACB400 80054260 860E0038 */ lh $t6, 0x38($s0) -/* ACB404 80054264 816F014F */ lb $t7, 0x14f($t3) -/* ACB408 80054268 24010001 */ li $at, 1 -/* ACB40C 8005426C 51E1000B */ beql $t7, $at, .L8005429C -/* ACB410 80054270 860E0038 */ lh $t6, 0x38($s0) -/* ACB414 80054274 C6060020 */ lwc1 $f6, 0x20($s0) -/* ACB418 80054278 10000007 */ b .L80054298 -/* ACB41C 8005427C E4460028 */ swc1 $f6, 0x28($v0) -.L80054280: -/* ACB420 80054280 C7A40098 */ lwc1 $f4, 0x98($sp) -/* ACB424 80054284 E604001C */ swc1 $f4, 0x1c($s0) -/* ACB428 80054288 C7A8009C */ lwc1 $f8, 0x9c($sp) -/* ACB42C 8005428C E6080020 */ swc1 $f8, 0x20($s0) -/* ACB430 80054290 C7AA00A0 */ lwc1 $f10, 0xa0($sp) -/* ACB434 80054294 E60A0024 */ swc1 $f10, 0x24($s0) -.L80054298: -/* ACB438 80054298 860E0038 */ lh $t6, 0x38($s0) -.L8005429C: -/* ACB43C 8005429C 55C00006 */ bnezl $t6, .L800542B8 -/* ACB440 800542A0 8E2A0090 */ lw $t2, 0x90($s1) -/* ACB444 800542A4 86220160 */ lh $v0, 0x160($s1) -/* ACB448 800542A8 18400002 */ blez $v0, .L800542B4 -/* ACB44C 800542AC 2458FFFF */ addiu $t8, $v0, -1 -/* ACB450 800542B0 A6380160 */ sh $t8, 0x160($s1) -.L800542B4: -/* ACB454 800542B4 8E2A0090 */ lw $t2, 0x90($s1) -.L800542B8: -/* ACB458 800542B8 1140000D */ beqz $t2, .L800542F0 -/* ACB45C 800542BC 00000000 */ nop -/* ACB460 800542C0 C6260050 */ lwc1 $f6, 0x50($s1) -/* ACB464 800542C4 C6240094 */ lwc1 $f4, 0x94($s1) -/* ACB468 800542C8 C62A0054 */ lwc1 $f10, 0x54($s1) -/* ACB46C 800542CC 46043201 */ sub.s $f8, $f6, $f4 -/* ACB470 800542D0 C6260098 */ lwc1 $f6, 0x98($s1) -/* ACB474 800542D4 46065101 */ sub.s $f4, $f10, $f6 -/* ACB478 800542D8 E62800E4 */ swc1 $f8, 0xe4($s1) -/* ACB47C 800542DC C6280058 */ lwc1 $f8, 0x58($s1) -/* ACB480 800542E0 C62A009C */ lwc1 $f10, 0x9c($s1) -/* ACB484 800542E4 E62400E8 */ swc1 $f4, 0xe8($s1) -/* ACB488 800542E8 460A4181 */ sub.s $f6, $f8, $f10 -/* ACB48C 800542EC E62600EC */ swc1 $f6, 0xec($s1) -.L800542F0: -/* ACB490 800542F0 0C01EFE4 */ jal OLib_Vec3fDist -/* ACB494 800542F4 8FA40030 */ lw $a0, 0x30($sp) -/* ACB498 800542F8 E62000DC */ swc1 $f0, 0xdc($s1) -/* ACB49C 800542FC 24020001 */ li $v0, 1 -.L80054300: -/* ACB4A0 80054300 8FBF001C */ lw $ra, 0x1c($sp) -/* ACB4A4 80054304 8FB00014 */ lw $s0, 0x14($sp) -/* ACB4A8 80054308 8FB10018 */ lw $s1, 0x18($sp) -/* ACB4AC 8005430C 03E00008 */ jr $ra -/* ACB4B0 80054310 27BD0118 */ addiu $sp, $sp, 0x118 - diff --git a/asm/non_matchings/code/z_camera/func_80043F94.s b/asm/non_matchings/code/z_camera/func_80043F94.s deleted file mode 100644 index 79cffa3c22..0000000000 --- a/asm/non_matchings/code/z_camera/func_80043F94.s +++ /dev/null @@ -1,252 +0,0 @@ -.late_rodata -glabel D_80139DA8 - .float 0.00003051851 # (1.0f / 32767.0f) - -glabel D_80139DAC - .float -0.8 - -.text -glabel func_80043F94 -/* ABB134 80043F94 27BDFF78 */ addiu $sp, $sp, -0x88 -/* ABB138 80043F98 AFBF0034 */ sw $ra, 0x34($sp) -/* ABB13C 80043F9C AFB10030 */ sw $s1, 0x30($sp) -/* ABB140 80043FA0 AFB0002C */ sw $s0, 0x2c($sp) -/* ABB144 80043FA4 AFA40088 */ sw $a0, 0x88($sp) -/* ABB148 80043FA8 8C8F008C */ lw $t7, 0x8c($a0) -/* ABB14C 80043FAC 00C08025 */ move $s0, $a2 -/* ABB150 80043FB0 00A08825 */ move $s1, $a1 -/* ABB154 80043FB4 25F807C0 */ addiu $t8, $t7, 0x7c0 -/* ABB158 80043FB8 AFB80084 */ sw $t8, 0x84($sp) -/* ABB15C 80043FBC 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* ABB160 80043FC0 27A40040 */ addiu $a0, $sp, 0x40 -/* ABB164 80043FC4 3C014100 */ li $at, 0x41000000 # 0.000000 -/* ABB168 80043FC8 44813000 */ mtc1 $at, $f6 -/* ABB16C 80043FCC C7A40040 */ lwc1 $f4, 0x40($sp) -/* ABB170 80043FD0 27A4006C */ addiu $a0, $sp, 0x6c -/* ABB174 80043FD4 02202825 */ move $a1, $s1 -/* ABB178 80043FD8 46062200 */ add.s $f8, $f4, $f6 -/* ABB17C 80043FDC 27A60040 */ addiu $a2, $sp, 0x40 -/* ABB180 80043FE0 0C010F0A */ jal func_80043C28 -/* ABB184 80043FE4 E7A80040 */ swc1 $f8, 0x40($sp) -/* ABB188 80043FE8 26190018 */ addiu $t9, $s0, 0x18 -/* ABB18C 80043FEC 24080001 */ li $t0, 1 -/* ABB190 80043FF0 24090001 */ li $t1, 1 -/* ABB194 80043FF4 240A0001 */ li $t2, 1 -/* ABB198 80043FF8 240BFFFF */ li $t3, -1 -/* ABB19C 80043FFC 260C0024 */ addiu $t4, $s0, 0x24 -/* ABB1A0 80044000 AFAC0024 */ sw $t4, 0x24($sp) -/* ABB1A4 80044004 AFAB0020 */ sw $t3, 0x20($sp) -/* ABB1A8 80044008 AFAA001C */ sw $t2, 0x1c($sp) -/* ABB1AC 8004400C AFA90018 */ sw $t1, 0x18($sp) -/* ABB1B0 80044010 AFA80014 */ sw $t0, 0x14($sp) -/* ABB1B4 80044014 AFB90010 */ sw $t9, 0x10($sp) -/* ABB1B8 80044018 8FA40084 */ lw $a0, 0x84($sp) -/* ABB1BC 8004401C 02202825 */ move $a1, $s1 -/* ABB1C0 80044020 27A6006C */ addiu $a2, $sp, 0x6c -/* ABB1C4 80044024 0C00F75B */ jal func_8003DD6C -/* ABB1C8 80044028 27A70078 */ addiu $a3, $sp, 0x78 -/* ABB1CC 8004402C 1440003A */ bnez $v0, .L80044118 -/* ABB1D0 80044030 27A40060 */ addiu $a0, $sp, 0x60 -/* ABB1D4 80044034 02202825 */ move $a1, $s1 -/* ABB1D8 80044038 0C01F03E */ jal OLib_Vec3fDistNormalize -/* ABB1DC 8004403C 02003025 */ move $a2, $s0 -/* ABB1E0 80044040 C7AA0060 */ lwc1 $f10, 0x60($sp) -/* ABB1E4 80044044 8E0E0000 */ lw $t6, ($s0) -/* ABB1E8 80044048 27A70078 */ addiu $a3, $sp, 0x78 -/* ABB1EC 8004404C 46005407 */ neg.s $f16, $f10 -/* ABB1F0 80044050 3C0140A0 */ li $at, 0x40A00000 # 0.000000 -/* ABB1F4 80044054 E610000C */ swc1 $f16, 0xc($s0) -/* ABB1F8 80044058 C7B20064 */ lwc1 $f18, 0x64($sp) -/* ABB1FC 8004405C 44818000 */ mtc1 $at, $f16 -/* ABB200 80044060 27A5004C */ addiu $a1, $sp, 0x4c -/* ABB204 80044064 46009107 */ neg.s $f4, $f18 -/* ABB208 80044068 27A60048 */ addiu $a2, $sp, 0x48 -/* ABB20C 8004406C E6040010 */ swc1 $f4, 0x10($s0) -/* ABB210 80044070 C7A60068 */ lwc1 $f6, 0x68($sp) -/* ABB214 80044074 46003207 */ neg.s $f8, $f6 -/* ABB218 80044078 E6080014 */ swc1 $f8, 0x14($s0) -/* ABB21C 8004407C ACEE0000 */ sw $t6, ($a3) -/* ABB220 80044080 8E0D0004 */ lw $t5, 4($s0) -/* ABB224 80044084 ACED0004 */ sw $t5, 4($a3) -/* ABB228 80044088 8E0E0008 */ lw $t6, 8($s0) -/* ABB22C 8004408C ACEE0008 */ sw $t6, 8($a3) -/* ABB230 80044090 C7AA007C */ lwc1 $f10, 0x7c($sp) -/* ABB234 80044094 8FA40084 */ lw $a0, 0x84($sp) -/* ABB238 80044098 46105480 */ add.s $f18, $f10, $f16 -/* ABB23C 8004409C 0C00F329 */ jal func_8003CCA4 -/* ABB240 800440A0 E7B2007C */ swc1 $f18, 0x7c($sp) -/* ABB244 800440A4 C6020004 */ lwc1 $f2, 4($s0) -/* ABB248 800440A8 3C0140A0 */ li $at, 0x40A00000 # 0.000000 -/* ABB24C 800440AC 44812000 */ mtc1 $at, $f4 -/* ABB250 800440B0 46001181 */ sub.s $f6, $f2, $f0 -/* ABB254 800440B4 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABB258 800440B8 4606203C */ c.lt.s $f4, $f6 -/* ABB25C 800440BC 00000000 */ nop -/* ABB260 800440C0 4502000F */ bc1fl .L80044100 -/* ABB264 800440C4 44818000 */ mtc1 $at, $f16 -/* ABB268 800440C8 C6080000 */ lwc1 $f8, ($s0) -/* ABB26C 800440CC C60A000C */ lwc1 $f10, 0xc($s0) -/* ABB270 800440D0 C6120010 */ lwc1 $f18, 0x10($s0) -/* ABB274 800440D4 C6060008 */ lwc1 $f6, 8($s0) -/* ABB278 800440D8 460A4400 */ add.s $f16, $f8, $f10 -/* ABB27C 800440DC C6080014 */ lwc1 $f8, 0x14($s0) -/* ABB280 800440E0 00001025 */ move $v0, $zero -/* ABB284 800440E4 46121100 */ add.s $f4, $f2, $f18 -/* ABB288 800440E8 E6100000 */ swc1 $f16, ($s0) -/* ABB28C 800440EC 46083280 */ add.s $f10, $f6, $f8 -/* ABB290 800440F0 E6040004 */ swc1 $f4, 4($s0) -/* ABB294 800440F4 1000008D */ b .L8004432C -/* ABB298 800440F8 E60A0008 */ swc1 $f10, 8($s0) -/* ABB29C 800440FC 44818000 */ mtc1 $at, $f16 -.L80044100: -/* ABB2A0 80044100 8FAF004C */ lw $t7, 0x4c($sp) -/* ABB2A4 80044104 46100480 */ add.s $f18, $f0, $f16 -/* ABB2A8 80044108 AE0F0018 */ sw $t7, 0x18($s0) -/* ABB2AC 8004410C 8FB80048 */ lw $t8, 0x48($sp) -/* ABB2B0 80044110 E7B2007C */ swc1 $f18, 0x7c($sp) -/* ABB2B4 80044114 AE180024 */ sw $t8, 0x24($s0) -.L80044118: -/* ABB2B8 80044118 8E020018 */ lw $v0, 0x18($s0) -/* ABB2BC 8004411C 3C018014 */ lui $at, %hi(D_80139DA8) -/* ABB2C0 80044120 C4209DA8 */ lwc1 $f0, %lo(D_80139DA8)($at) -/* ABB2C4 80044124 84590008 */ lh $t9, 8($v0) -/* ABB2C8 80044128 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* ABB2CC 8004412C 44992000 */ mtc1 $t9, $f4 -/* ABB2D0 80044130 00000000 */ nop -/* ABB2D4 80044134 468021A0 */ cvt.s.w $f6, $f4 -/* ABB2D8 80044138 46003202 */ mul.s $f8, $f6, $f0 -/* ABB2DC 8004413C E608000C */ swc1 $f8, 0xc($s0) -/* ABB2E0 80044140 8448000A */ lh $t0, 0xa($v0) -/* ABB2E4 80044144 44885000 */ mtc1 $t0, $f10 -/* ABB2E8 80044148 00000000 */ nop -/* ABB2EC 8004414C 46805420 */ cvt.s.w $f16, $f10 -/* ABB2F0 80044150 44815000 */ mtc1 $at, $f10 -/* ABB2F4 80044154 3C018014 */ lui $at, %hi(D_80139DAC) -/* ABB2F8 80044158 46008482 */ mul.s $f18, $f16, $f0 -/* ABB2FC 8004415C E6120010 */ swc1 $f18, 0x10($s0) -/* ABB300 80044160 8449000C */ lh $t1, 0xc($v0) -/* ABB304 80044164 C6020010 */ lwc1 $f2, 0x10($s0) -/* ABB308 80044168 44892000 */ mtc1 $t1, $f4 -/* ABB30C 8004416C 4602503C */ c.lt.s $f10, $f2 -/* ABB310 80044170 468021A0 */ cvt.s.w $f6, $f4 -/* ABB314 80044174 46003202 */ mul.s $f8, $f6, $f0 -/* ABB318 80044178 45010007 */ bc1t .L80044198 -/* ABB31C 8004417C E6080014 */ swc1 $f8, 0x14($s0) -/* ABB320 80044180 C4309DAC */ lwc1 $f16, %lo(D_80139DAC)($at) -/* ABB324 80044184 3C028016 */ lui $v0, %hi(D_8015CE4C) # $v0, 0x8016 -/* ABB328 80044188 4610103C */ c.lt.s $f2, $f16 -/* ABB32C 8004418C 00000000 */ nop -/* ABB330 80044190 4500000D */ bc1f .L800441C8 -/* ABB334 80044194 00000000 */ nop -.L80044198: -/* ABB338 80044198 C612000C */ lwc1 $f18, 0xc($s0) -/* ABB33C 8004419C C7A40078 */ lwc1 $f4, 0x78($sp) -/* ABB340 800441A0 C6100014 */ lwc1 $f16, 0x14($s0) -/* ABB344 800441A4 46049180 */ add.s $f6, $f18, $f4 -/* ABB348 800441A8 E6060000 */ swc1 $f6, ($s0) -/* ABB34C 800441AC C7A8007C */ lwc1 $f8, 0x7c($sp) -/* ABB350 800441B0 46081280 */ add.s $f10, $f2, $f8 -/* ABB354 800441B4 E60A0004 */ swc1 $f10, 4($s0) -/* ABB358 800441B8 C7B20080 */ lwc1 $f18, 0x80($sp) -/* ABB35C 800441BC 46128100 */ add.s $f4, $f16, $f18 -/* ABB360 800441C0 10000059 */ b .L80044328 -/* ABB364 800441C4 E6040008 */ swc1 $f4, 8($s0) -.L800441C8: -/* ABB368 800441C8 8C42CE4C */ lw $v0, %lo(D_8015CE4C)($v0) -/* ABB36C 800441CC 50400057 */ beql $v0, $zero, .L8004432C -/* ABB370 800441D0 24020001 */ li $v0, 1 -/* ABB374 800441D4 844A0008 */ lh $t2, 8($v0) -/* ABB378 800441D8 27AE006C */ addiu $t6, $sp, 0x6c -/* ABB37C 800441DC 27AF0078 */ addiu $t7, $sp, 0x78 -/* ABB380 800441E0 448A3000 */ mtc1 $t2, $f6 -/* ABB384 800441E4 24180001 */ li $t8, 1 -/* ABB388 800441E8 46803220 */ cvt.s.w $f8, $f6 -/* ABB38C 800441EC 46004302 */ mul.s $f12, $f8, $f0 -/* ABB390 800441F0 E7AC0054 */ swc1 $f12, 0x54($sp) -/* ABB394 800441F4 844B000A */ lh $t3, 0xa($v0) -/* ABB398 800441F8 448B8000 */ mtc1 $t3, $f16 -/* ABB39C 800441FC 00000000 */ nop -/* ABB3A0 80044200 468084A0 */ cvt.s.w $f18, $f16 -/* ABB3A4 80044204 46009382 */ mul.s $f14, $f18, $f0 -/* ABB3A8 80044208 E7AE0058 */ swc1 $f14, 0x58($sp) -/* ABB3AC 8004420C 844C000C */ lh $t4, 0xc($v0) -/* ABB3B0 80044210 448C3000 */ mtc1 $t4, $f6 -/* ABB3B4 80044214 00000000 */ nop -/* ABB3B8 80044218 46803220 */ cvt.s.w $f8, $f6 -/* ABB3BC 8004421C 46004402 */ mul.s $f16, $f8, $f0 -/* ABB3C0 80044220 E7B0005C */ swc1 $f16, 0x5c($sp) -/* ABB3C4 80044224 844D000E */ lh $t5, 0xe($v0) -/* ABB3C8 80044228 44068000 */ mfc1 $a2, $f16 -/* ABB3CC 8004422C AFB8001C */ sw $t8, 0x1c($sp) -/* ABB3D0 80044230 448D9000 */ mtc1 $t5, $f18 -/* ABB3D4 80044234 AFAF0018 */ sw $t7, 0x18($sp) -/* ABB3D8 80044238 AFAE0014 */ sw $t6, 0x14($sp) -/* ABB3DC 8004423C 468094A0 */ cvt.s.w $f18, $f18 -/* ABB3E0 80044240 AFB10010 */ sw $s1, 0x10($sp) -/* ABB3E4 80044244 44079000 */ mfc1 $a3, $f18 -/* ABB3E8 80044248 0C033857 */ jal Math3D_LineSegVsPlane -/* ABB3EC 8004424C 00000000 */ nop -/* ABB3F0 80044250 1040001B */ beqz $v0, .L800442C0 -/* ABB3F4 80044254 27A40060 */ addiu $a0, $sp, 0x60 -/* ABB3F8 80044258 27B90054 */ addiu $t9, $sp, 0x54 -/* ABB3FC 8004425C 8F290000 */ lw $t1, ($t9) -/* ABB400 80044260 3C0A8016 */ lui $t2, %hi(D_8015CE4C) # $t2, 0x8016 -/* ABB404 80044264 AE09000C */ sw $t1, 0xc($s0) -/* ABB408 80044268 8F280004 */ lw $t0, 4($t9) -/* ABB40C 8004426C C606000C */ lwc1 $f6, 0xc($s0) -/* ABB410 80044270 AE080010 */ sw $t0, 0x10($s0) -/* ABB414 80044274 8F290008 */ lw $t1, 8($t9) -/* ABB418 80044278 C6040010 */ lwc1 $f4, 0x10($s0) -/* ABB41C 8004427C AE090014 */ sw $t1, 0x14($s0) -/* ABB420 80044280 8D4ACE4C */ lw $t2, %lo(D_8015CE4C)($t2) -/* ABB424 80044284 AE0A0018 */ sw $t2, 0x18($s0) -/* ABB428 80044288 8FAB0088 */ lw $t3, 0x88($sp) -/* ABB42C 8004428C 856C0146 */ lh $t4, 0x146($t3) -/* ABB430 80044290 AE0C0024 */ sw $t4, 0x24($s0) -/* ABB434 80044294 C7A80078 */ lwc1 $f8, 0x78($sp) -/* ABB438 80044298 46083280 */ add.s $f10, $f6, $f8 -/* ABB43C 8004429C C6060014 */ lwc1 $f6, 0x14($s0) -/* ABB440 800442A0 E60A0000 */ swc1 $f10, ($s0) -/* ABB444 800442A4 C7B0007C */ lwc1 $f16, 0x7c($sp) -/* ABB448 800442A8 46102480 */ add.s $f18, $f4, $f16 -/* ABB44C 800442AC E6120004 */ swc1 $f18, 4($s0) -/* ABB450 800442B0 C7A80080 */ lwc1 $f8, 0x80($sp) -/* ABB454 800442B4 46083280 */ add.s $f10, $f6, $f8 -/* ABB458 800442B8 1000001B */ b .L80044328 -/* ABB45C 800442BC E60A0008 */ swc1 $f10, 8($s0) -.L800442C0: -/* ABB460 800442C0 02202825 */ move $a1, $s1 -/* ABB464 800442C4 0C01F03E */ jal OLib_Vec3fDistNormalize -/* ABB468 800442C8 02003025 */ move $a2, $s0 -/* ABB46C 800442CC C7A40060 */ lwc1 $f4, 0x60($sp) -/* ABB470 800442D0 00001025 */ move $v0, $zero -/* ABB474 800442D4 46002407 */ neg.s $f16, $f4 -/* ABB478 800442D8 C6040000 */ lwc1 $f4, ($s0) -/* ABB47C 800442DC E610000C */ swc1 $f16, 0xc($s0) -/* ABB480 800442E0 C7B20064 */ lwc1 $f18, 0x64($sp) -/* ABB484 800442E4 C610000C */ lwc1 $f16, 0xc($s0) -/* ABB488 800442E8 46009187 */ neg.s $f6, $f18 -/* ABB48C 800442EC 46102480 */ add.s $f18, $f4, $f16 -/* ABB490 800442F0 E6060010 */ swc1 $f6, 0x10($s0) -/* ABB494 800442F4 C7A80068 */ lwc1 $f8, 0x68($sp) -/* ABB498 800442F8 C6060004 */ lwc1 $f6, 4($s0) -/* ABB49C 800442FC C6040008 */ lwc1 $f4, 8($s0) -/* ABB4A0 80044300 46004287 */ neg.s $f10, $f8 -/* ABB4A4 80044304 C6080010 */ lwc1 $f8, 0x10($s0) -/* ABB4A8 80044308 E60A0014 */ swc1 $f10, 0x14($s0) -/* ABB4AC 8004430C C6100014 */ lwc1 $f16, 0x14($s0) -/* ABB4B0 80044310 E6120000 */ swc1 $f18, ($s0) -/* ABB4B4 80044314 46083280 */ add.s $f10, $f6, $f8 -/* ABB4B8 80044318 46102480 */ add.s $f18, $f4, $f16 -/* ABB4BC 8004431C E60A0004 */ swc1 $f10, 4($s0) -/* ABB4C0 80044320 10000002 */ b .L8004432C -/* ABB4C4 80044324 E6120008 */ swc1 $f18, 8($s0) -.L80044328: -/* ABB4C8 80044328 24020001 */ li $v0, 1 -.L8004432C: -/* ABB4CC 8004432C 8FBF0034 */ lw $ra, 0x34($sp) -/* ABB4D0 80044330 8FB0002C */ lw $s0, 0x2c($sp) -/* ABB4D4 80044334 8FB10030 */ lw $s1, 0x30($sp) -/* ABB4D8 80044338 03E00008 */ jr $ra -/* ABB4DC 8004433C 27BD0088 */ addiu $sp, $sp, 0x88 - diff --git a/asm/non_matchings/code/z_camera/func_80044568.s b/asm/non_matchings/code/z_camera/func_80044568.s deleted file mode 100644 index d59bba5a6c..0000000000 --- a/asm/non_matchings/code/z_camera/func_80044568.s +++ /dev/null @@ -1,137 +0,0 @@ -.rdata -glabel D_80139060 - .asciz "\x1b[43;30mcamera: foward check: too many layer!\n\x1b[m" - .balign 4 - -.late_rodata -glabel D_80139DB4 - .float 0.00003051851 # (1.0f / 32767.0f) - -.text -glabel func_80044568 -/* ABB708 80044568 27BDFF90 */ addiu $sp, $sp, -0x70 -/* ABB70C 8004456C F7BC0030 */ sdc1 $f28, 0x30($sp) -/* ABB710 80044570 3C01C6FA */ li $at, 0xC6FA0000 # 0.000000 -/* ABB714 80044574 4481E000 */ mtc1 $at, $f28 -/* ABB718 80044578 F7BA0028 */ sdc1 $f26, 0x28($sp) -/* ABB71C 8004457C 3C014120 */ li $at, 0x41200000 # 0.000000 -/* ABB720 80044580 AFBF005C */ sw $ra, 0x5c($sp) -/* ABB724 80044584 AFB70058 */ sw $s7, 0x58($sp) -/* ABB728 80044588 AFB60054 */ sw $s6, 0x54($sp) -/* ABB72C 8004458C AFB50050 */ sw $s5, 0x50($sp) -/* ABB730 80044590 AFB4004C */ sw $s4, 0x4c($sp) -/* ABB734 80044594 AFB30048 */ sw $s3, 0x48($sp) -/* ABB738 80044598 AFB20044 */ sw $s2, 0x44($sp) -/* ABB73C 8004459C AFB10040 */ sw $s1, 0x40($sp) -/* ABB740 800445A0 AFB0003C */ sw $s0, 0x3c($sp) -/* ABB744 800445A4 F7B80020 */ sdc1 $f24, 0x20($sp) -/* ABB748 800445A8 F7B60018 */ sdc1 $f22, 0x18($sp) -/* ABB74C 800445AC F7B40010 */ sdc1 $f20, 0x10($sp) -/* ABB750 800445B0 4481D000 */ mtc1 $at, $f26 -/* ABB754 800445B4 8C90008C */ lw $s0, 0x8c($a0) -/* ABB758 800445B8 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* ABB75C 800445BC 4481C000 */ mtc1 $at, $f24 -/* ABB760 800445C0 3C018014 */ lui $at, %hi(D_80139DB4) -/* ABB764 800445C4 00E08825 */ move $s1, $a3 -/* ABB768 800445C8 00C09025 */ move $s2, $a2 -/* ABB76C 800445CC 0080A025 */ move $s4, $a0 -/* ABB770 800445D0 00A0B825 */ move $s7, $a1 -/* ABB774 800445D4 C4369DB4 */ lwc1 $f22, %lo(D_80139DB4)($at) -/* ABB778 800445D8 24130003 */ li $s3, 3 -/* ABB77C 800445DC 27B5006C */ addiu $s5, $sp, 0x6c -/* ABB780 800445E0 24160001 */ li $s6, 1 -/* ABB784 800445E4 261007C0 */ addiu $s0, $s0, 0x7c0 -/* ABB788 800445E8 02002025 */ move $a0, $s0 -.L800445EC: -/* ABB78C 800445EC 02A02825 */ move $a1, $s5 -/* ABB790 800445F0 02203025 */ move $a2, $s1 -/* ABB794 800445F4 0C00F329 */ jal func_8003CCA4 -/* ABB798 800445F8 02403825 */ move $a3, $s2 -/* ABB79C 800445FC 461C0032 */ c.eq.s $f0, $f28 -/* ABB7A0 80044600 46000506 */ mov.s $f20, $f0 -/* ABB7A4 80044604 8FAE006C */ lw $t6, 0x6c($sp) -/* ABB7A8 80044608 02002025 */ move $a0, $s0 -/* ABB7AC 8004460C 4501000F */ bc1t .L8004464C -/* ABB7B0 80044610 8FA5006C */ lw $a1, 0x6c($sp) -/* ABB7B4 80044614 C6840104 */ lwc1 $f4, 0x104($s4) -/* ABB7B8 80044618 4600203C */ c.lt.s $f4, $f0 -/* ABB7BC 8004461C 00000000 */ nop -/* ABB7C0 80044620 45000012 */ bc1f .L8004466C -/* ABB7C4 80044624 00000000 */ nop -/* ABB7C8 80044628 85CF000A */ lh $t7, 0xa($t6) -/* ABB7CC 8004462C 448F3000 */ mtc1 $t7, $f6 -/* ABB7D0 80044630 00000000 */ nop -/* ABB7D4 80044634 46803220 */ cvt.s.w $f8, $f6 -/* ABB7D8 80044638 46164282 */ mul.s $f10, $f8, $f22 -/* ABB7DC 8004463C 460AC03C */ c.lt.s $f24, $f10 -/* ABB7E0 80044640 00000000 */ nop -/* ABB7E4 80044644 45010009 */ bc1t .L8004466C -/* ABB7E8 80044648 00000000 */ nop -.L8004464C: -/* ABB7EC 8004464C 44800000 */ mtc1 $zero, $f0 -/* ABB7F0 80044650 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABB7F4 80044654 44818000 */ mtc1 $at, $f16 -/* ABB7F8 80044658 4600E506 */ mov.s $f20, $f28 -/* ABB7FC 8004465C E6E00000 */ swc1 $f0, ($s7) -/* ABB800 80044660 E6E00008 */ swc1 $f0, 8($s7) -/* ABB804 80044664 10000021 */ b .L800446EC -/* ABB808 80044668 E6F00004 */ swc1 $f16, 4($s7) -.L8004466C: -/* ABB80C 8004466C 0C010753 */ jal func_80041D4C -/* ABB810 80044670 8E260000 */ lw $a2, ($s1) -/* ABB814 80044674 54560006 */ bnel $v0, $s6, .L80044690 -/* ABB818 80044678 8FB8006C */ lw $t8, 0x6c($sp) -/* ABB81C 8004467C 461AA481 */ sub.s $f18, $f20, $f26 -/* ABB820 80044680 2673FFFF */ addiu $s3, $s3, -1 -/* ABB824 80044684 10000017 */ b .L800446E4 -/* ABB828 80044688 E6520004 */ swc1 $f18, 4($s2) -/* ABB82C 8004468C 8FB8006C */ lw $t8, 0x6c($sp) -.L80044690: -/* ABB830 80044690 87190008 */ lh $t9, 8($t8) -/* ABB834 80044694 44992000 */ mtc1 $t9, $f4 -/* ABB838 80044698 00000000 */ nop -/* ABB83C 8004469C 468021A0 */ cvt.s.w $f6, $f4 -/* ABB840 800446A0 46163202 */ mul.s $f8, $f6, $f22 -/* ABB844 800446A4 E6E80000 */ swc1 $f8, ($s7) -/* ABB848 800446A8 8FA8006C */ lw $t0, 0x6c($sp) -/* ABB84C 800446AC 8509000A */ lh $t1, 0xa($t0) -/* ABB850 800446B0 44895000 */ mtc1 $t1, $f10 -/* ABB854 800446B4 00000000 */ nop -/* ABB858 800446B8 46805420 */ cvt.s.w $f16, $f10 -/* ABB85C 800446BC 46168482 */ mul.s $f18, $f16, $f22 -/* ABB860 800446C0 E6F20004 */ swc1 $f18, 4($s7) -/* ABB864 800446C4 8FAA006C */ lw $t2, 0x6c($sp) -/* ABB868 800446C8 854B000C */ lh $t3, 0xc($t2) -/* ABB86C 800446CC 448B2000 */ mtc1 $t3, $f4 -/* ABB870 800446D0 00000000 */ nop -/* ABB874 800446D4 468021A0 */ cvt.s.w $f6, $f4 -/* ABB878 800446D8 46163202 */ mul.s $f8, $f6, $f22 -/* ABB87C 800446DC 10000003 */ b .L800446EC -/* ABB880 800446E0 E6E80008 */ swc1 $f8, 8($s7) -.L800446E4: -/* ABB884 800446E4 5660FFC1 */ bnezl $s3, .L800445EC -/* ABB888 800446E8 02002025 */ move $a0, $s0 -.L800446EC: -/* ABB88C 800446EC 16600003 */ bnez $s3, .L800446FC -/* ABB890 800446F0 3C048014 */ lui $a0, %hi(D_80139060) # $a0, 0x8014 -/* ABB894 800446F4 0C00084C */ jal osSyncPrintf -/* ABB898 800446F8 24849060 */ addiu $a0, %lo(D_80139060) # addiu $a0, $a0, -0x6fa0 -.L800446FC: -/* ABB89C 800446FC 8FBF005C */ lw $ra, 0x5c($sp) -/* ABB8A0 80044700 4600A006 */ mov.s $f0, $f20 -/* ABB8A4 80044704 D7B40010 */ ldc1 $f20, 0x10($sp) -/* ABB8A8 80044708 D7B60018 */ ldc1 $f22, 0x18($sp) -/* ABB8AC 8004470C D7B80020 */ ldc1 $f24, 0x20($sp) -/* ABB8B0 80044710 D7BA0028 */ ldc1 $f26, 0x28($sp) -/* ABB8B4 80044714 D7BC0030 */ ldc1 $f28, 0x30($sp) -/* ABB8B8 80044718 8FB0003C */ lw $s0, 0x3c($sp) -/* ABB8BC 8004471C 8FB10040 */ lw $s1, 0x40($sp) -/* ABB8C0 80044720 8FB20044 */ lw $s2, 0x44($sp) -/* ABB8C4 80044724 8FB30048 */ lw $s3, 0x48($sp) -/* ABB8C8 80044728 8FB4004C */ lw $s4, 0x4c($sp) -/* ABB8CC 8004472C 8FB50050 */ lw $s5, 0x50($sp) -/* ABB8D0 80044730 8FB60054 */ lw $s6, 0x54($sp) -/* ABB8D4 80044734 8FB70058 */ lw $s7, 0x58($sp) -/* ABB8D8 80044738 03E00008 */ jr $ra -/* ABB8DC 8004473C 27BD0070 */ addiu $sp, $sp, 0x70 - diff --git a/asm/non_matchings/code/z_camera/func_80044ADC.s b/asm/non_matchings/code/z_camera/func_80044ADC.s deleted file mode 100644 index 54f209099a..0000000000 --- a/asm/non_matchings/code/z_camera/func_80044ADC.s +++ /dev/null @@ -1,256 +0,0 @@ -.late_rodata -glabel D_80139DC0 - .float 0.01 - -glabel D_80139DC4 - .float 0.01 - -glabel D_80139DC8 - .float 57.295776 - -glabel D_80139DCC - .float 182.041672 - -glabel D_80139DD0 - .float 57.295776 - -glabel D_80139DD4 - .float 182.041672 - -.text -glabel func_80044ADC -/* ABBC7C 80044ADC 27BDFF90 */ addiu $sp, $sp, -0x70 -/* ABBC80 80044AE0 AFB00018 */ sw $s0, 0x18($sp) -/* ABBC84 80044AE4 00808025 */ move $s0, $a0 -/* ABBC88 80044AE8 AFBF001C */ sw $ra, 0x1c($sp) -/* ABBC8C 80044AEC AFA50074 */ sw $a1, 0x74($sp) -/* ABBC90 80044AF0 AFA60078 */ sw $a2, 0x78($sp) -/* ABBC94 80044AF4 0C01DE1C */ jal Math_Sins -/* ABBC98 80044AF8 87A40076 */ lh $a0, 0x76($sp) -/* ABBC9C 80044AFC E7A0003C */ swc1 $f0, 0x3c($sp) -/* ABBCA0 80044B00 0C01DE0D */ jal Math_Coss -/* ABBCA4 80044B04 87A40076 */ lh $a0, 0x76($sp) -/* ABBCA8 80044B08 8E040090 */ lw $a0, 0x90($s0) -/* ABBCAC 80044B0C 0C00B721 */ jal Player_GetCameraYOffset -/* ABBCB0 80044B10 E7A00038 */ swc1 $f0, 0x38($sp) -/* ABBCB4 80044B14 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* ABBCB8 80044B18 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* ABBCBC 80044B1C 3C018014 */ lui $at, %hi(D_80139DC0) -/* ABBCC0 80044B20 C4329DC0 */ lwc1 $f18, %lo(D_80139DC0)($at) -/* ABBCC4 80044B24 844E01BA */ lh $t6, 0x1ba($v0) -/* ABBCC8 80044B28 844F01B6 */ lh $t7, 0x1b6($v0) -/* ABBCCC 80044B2C 845801B8 */ lh $t8, 0x1b8($v0) -/* ABBCD0 80044B30 448E2000 */ mtc1 $t6, $f4 -/* ABBCD4 80044B34 448F5000 */ mtc1 $t7, $f10 -/* ABBCD8 80044B38 C7AC0038 */ lwc1 $f12, 0x38($sp) -/* ABBCDC 80044B3C 468021A0 */ cvt.s.w $f6, $f4 -/* ABBCE0 80044B40 87B9007A */ lh $t9, 0x7a($sp) -/* ABBCE4 80044B44 3C018016 */ lui $at, %hi(D_8015CE5C) -/* ABBCE8 80044B48 46805120 */ cvt.s.w $f4, $f10 -/* ABBCEC 80044B4C 46123202 */ mul.s $f8, $f6, $f18 -/* ABBCF0 80044B50 00000000 */ nop -/* ABBCF4 80044B54 46004082 */ mul.s $f2, $f8, $f0 -/* ABBCF8 80044B58 44984000 */ mtc1 $t8, $f8 -/* ABBCFC 80044B5C 46122182 */ mul.s $f6, $f4, $f18 -/* ABBD00 80044B60 468042A0 */ cvt.s.w $f10, $f8 -/* ABBD04 80044B64 46003402 */ mul.s $f16, $f6, $f0 -/* ABBD08 80044B68 C6060094 */ lwc1 $f6, 0x94($s0) -/* ABBD0C 80044B6C E7A60064 */ swc1 $f6, 0x64($sp) -/* ABBD10 80044B70 46125102 */ mul.s $f4, $f10, $f18 -/* ABBD14 80044B74 C6080104 */ lwc1 $f8, 0x104($s0) -/* ABBD18 80044B78 C7A6003C */ lwc1 $f6, 0x3c($sp) -/* ABBD1C 80044B7C 46024280 */ add.s $f10, $f8, $f2 -/* ABBD20 80044B80 46002382 */ mul.s $f14, $f4, $f0 -/* ABBD24 80044B84 E7AA0068 */ swc1 $f10, 0x68($sp) -/* ABBD28 80044B88 46068202 */ mul.s $f8, $f16, $f6 -/* ABBD2C 80044B8C C604009C */ lwc1 $f4, 0x9c($s0) -/* ABBD30 80044B90 C7AA0064 */ lwc1 $f10, 0x64($sp) -/* ABBD34 80044B94 C7A60068 */ lwc1 $f6, 0x68($sp) -/* ABBD38 80044B98 E7A4006C */ swc1 $f4, 0x6c($sp) -/* ABBD3C 80044B9C E7A6005C */ swc1 $f6, 0x5c($sp) -/* ABBD40 80044BA0 460A4100 */ add.s $f4, $f8, $f10 -/* ABBD44 80044BA4 460C8202 */ mul.s $f8, $f16, $f12 -/* ABBD48 80044BA8 C7AA006C */ lwc1 $f10, 0x6c($sp) -/* ABBD4C 80044BAC E7A40058 */ swc1 $f4, 0x58($sp) -/* ABBD50 80044BB0 460A4100 */ add.s $f4, $f8, $f10 -/* ABBD54 80044BB4 17200009 */ bnez $t9, .L80044BDC -/* ABBD58 80044BB8 E7A40060 */ swc1 $f4, 0x60($sp) -/* ABBD5C 80044BBC 8E08008C */ lw $t0, 0x8c($s0) -/* ABBD60 80044BC0 3C058016 */ lui $a1, %hi(D_8015CE58) # $a1, 0x8016 -/* ABBD64 80044BC4 24A5CE58 */ addiu $a1, %lo(D_8015CE58) # addiu $a1, $a1, -0x31a8 -/* ABBD68 80044BC8 8D09009C */ lw $t1, 0x9c($t0) -/* ABBD6C 80044BCC 27A40064 */ addiu $a0, $sp, 0x64 -/* ABBD70 80044BD0 312A0001 */ andi $t2, $t1, 1 -/* ABBD74 80044BD4 15400022 */ bnez $t2, .L80044C60 -/* ABBD78 80044BD8 00000000 */ nop -.L80044BDC: -/* ABBD7C 80044BDC C7B2003C */ lwc1 $f18, 0x3c($sp) -/* ABBD80 80044BE0 C7AA0064 */ lwc1 $f10, 0x64($sp) -/* ABBD84 80044BE4 C7A8006C */ lwc1 $f8, 0x6c($sp) -/* ABBD88 80044BE8 46127482 */ mul.s $f18, $f14, $f18 -/* ABBD8C 80044BEC C7A60068 */ lwc1 $f6, 0x68($sp) -/* ABBD90 80044BF0 3C068016 */ lui $a2, %hi(D_8015CE58) # $a2, 0x8016 -/* ABBD94 80044BF4 460C7102 */ mul.s $f4, $f14, $f12 -/* ABBD98 80044BF8 E426CE5C */ swc1 $f6, %lo(D_8015CE5C)($at) -/* ABBD9C 80044BFC 02002025 */ move $a0, $s0 -/* ABBDA0 80044C00 27A50064 */ addiu $a1, $sp, 0x64 -/* ABBDA4 80044C04 24C6CE58 */ addiu $a2, %lo(D_8015CE58) # addiu $a2, $a2, -0x31a8 -/* ABBDA8 80044C08 460A9280 */ add.s $f10, $f18, $f10 -/* ABBDAC 80044C0C E7AE002C */ swc1 $f14, 0x2c($sp) -/* ABBDB0 80044C10 E7B00030 */ swc1 $f16, 0x30($sp) -/* ABBDB4 80044C14 46082200 */ add.s $f8, $f4, $f8 -/* ABBDB8 80044C18 E42ACE58 */ swc1 $f10, %lo(D_8015CE58)($at) -/* ABBDBC 80044C1C 3C018016 */ lui $at, %hi(D_8015CE60) -/* ABBDC0 80044C20 0C010F46 */ jal func_80043D18 -/* ABBDC4 80044C24 E428CE60 */ swc1 $f8, %lo(D_8015CE60)($at) -/* ABBDC8 80044C28 87AB007A */ lh $t3, 0x7a($sp) -/* ABBDCC 80044C2C 11600006 */ beqz $t3, .L80044C48 -/* ABBDD0 80044C30 00000000 */ nop -/* ABBDD4 80044C34 C6120104 */ lwc1 $f18, 0x104($s0) -/* ABBDD8 80044C38 3C018016 */ lui $at, %hi(D_8015CE54) -/* ABBDDC 80044C3C E432CE54 */ swc1 $f18, %lo(D_8015CE54)($at) -/* ABBDE0 80044C40 3C018016 */ lui $at, %hi(D_8015CE50) -/* ABBDE4 80044C44 E432CE50 */ swc1 $f18, %lo(D_8015CE50)($at) -.L80044C48: -/* ABBDE8 80044C48 3C018016 */ lui $at, %hi(D_8015CE54) -/* ABBDEC 80044C4C C430CE54 */ lwc1 $f16, %lo(D_8015CE54)($at) -/* ABBDF0 80044C50 3C018016 */ lui $at, %hi(D_8015CE50) -/* ABBDF4 80044C54 C432CE50 */ lwc1 $f18, %lo(D_8015CE50)($at) -/* ABBDF8 80044C58 10000048 */ b .L80044D7C -/* ABBDFC 80044C5C C6020104 */ lwc1 $f2, 0x104($s0) -.L80044C60: -/* ABBE00 80044C60 0C01F00A */ jal OLib_Vec3fDistXZ -/* ABBE04 80044C64 E7B00030 */ swc1 $f16, 0x30($sp) -/* ABBE08 80044C68 3C0140A0 */ li $at, 0x40A00000 # 0.000000 -/* ABBE0C 80044C6C 44811000 */ mtc1 $at, $f2 -/* ABBE10 80044C70 3C018016 */ lui $at, %hi(D_8015CE58) -/* ABBE14 80044C74 C426CE58 */ lwc1 $f6, %lo(D_8015CE58)($at) -/* ABBE18 80044C78 3C018016 */ lui $at, %hi(D_8015CE64) -/* ABBE1C 80044C7C C428CE64 */ lwc1 $f8, %lo(D_8015CE64)($at) -/* ABBE20 80044C80 3C018016 */ lui $at, %hi(D_8015CE5C) -/* ABBE24 80044C84 E7A0002C */ swc1 $f0, 0x2c($sp) -/* ABBE28 80044C88 46024282 */ mul.s $f10, $f8, $f2 -/* ABBE2C 80044C8C C428CE5C */ lwc1 $f8, %lo(D_8015CE5C)($at) -/* ABBE30 80044C90 27A70034 */ addiu $a3, $sp, 0x34 -/* ABBE34 80044C94 02002025 */ move $a0, $s0 -/* ABBE38 80044C98 27A5004C */ addiu $a1, $sp, 0x4c -/* ABBE3C 80044C9C 27A60058 */ addiu $a2, $sp, 0x58 -/* ABBE40 80044CA0 460A3100 */ add.s $f4, $f6, $f10 -/* ABBE44 80044CA4 E424CE58 */ swc1 $f4, %lo(D_8015CE58)($at) -/* ABBE48 80044CA8 3C018016 */ lui $at, %hi(D_8015CE68) -/* ABBE4C 80044CAC C426CE68 */ lwc1 $f6, %lo(D_8015CE68)($at) -/* ABBE50 80044CB0 3C018016 */ lui $at, %hi(D_8015CE5C) -/* ABBE54 80044CB4 46023282 */ mul.s $f10, $f6, $f2 -/* ABBE58 80044CB8 460A4100 */ add.s $f4, $f8, $f10 -/* ABBE5C 80044CBC E424CE5C */ swc1 $f4, %lo(D_8015CE5C)($at) -/* ABBE60 80044CC0 3C018016 */ lui $at, %hi(D_8015CE60) -/* ABBE64 80044CC4 C426CE60 */ lwc1 $f6, %lo(D_8015CE60)($at) -/* ABBE68 80044CC8 3C018016 */ lui $at, %hi(D_8015CE6C) -/* ABBE6C 80044CCC C428CE6C */ lwc1 $f8, %lo(D_8015CE6C)($at) -/* ABBE70 80044CD0 3C018016 */ lui $at, %hi(D_8015CE60) -/* ABBE74 80044CD4 46024282 */ mul.s $f10, $f8, $f2 -/* ABBE78 80044CD8 C7A80030 */ lwc1 $f8, 0x30($sp) -/* ABBE7C 80044CDC 4608003C */ c.lt.s $f0, $f8 -/* ABBE80 80044CE0 460A3100 */ add.s $f4, $f6, $f10 -/* ABBE84 80044CE4 C7A6002C */ lwc1 $f6, 0x2c($sp) -/* ABBE88 80044CE8 4500000A */ bc1f .L80044D14 -/* ABBE8C 80044CEC E424CE60 */ swc1 $f4, %lo(D_8015CE60)($at) -/* ABBE90 80044CF0 3C068016 */ lui $a2, %hi(D_8015CE58) # $a2, 0x8016 -/* ABBE94 80044CF4 E7A60030 */ swc1 $f6, 0x30($sp) -/* ABBE98 80044CF8 24C6CE58 */ addiu $a2, %lo(D_8015CE58) # addiu $a2, $a2, -0x31a8 -/* ABBE9C 80044CFC 02002025 */ move $a0, $s0 -/* ABBEA0 80044D00 0C01115A */ jal func_80044568 -/* ABBEA4 80044D04 27A5004C */ addiu $a1, $sp, 0x4c -/* ABBEA8 80044D08 46000406 */ mov.s $f16, $f0 -/* ABBEAC 80044D0C 1000000E */ b .L80044D48 -/* ABBEB0 80044D10 46000486 */ mov.s $f18, $f0 -.L80044D14: -/* ABBEB4 80044D14 0C01115A */ jal func_80044568 -/* ABBEB8 80044D18 27A70034 */ addiu $a3, $sp, 0x34 -/* ABBEBC 80044D1C 3C068016 */ lui $a2, %hi(D_8015CE58) # $a2, 0x8016 -/* ABBEC0 80044D20 3C018016 */ lui $at, %hi(D_8015CE50) -/* ABBEC4 80044D24 E420CE50 */ swc1 $f0, %lo(D_8015CE50)($at) -/* ABBEC8 80044D28 24C6CE58 */ addiu $a2, %lo(D_8015CE58) # addiu $a2, $a2, -0x31a8 -/* ABBECC 80044D2C 02002025 */ move $a0, $s0 -/* ABBED0 80044D30 27A5004C */ addiu $a1, $sp, 0x4c -/* ABBED4 80044D34 0C01115A */ jal func_80044568 -/* ABBED8 80044D38 27A70034 */ addiu $a3, $sp, 0x34 -/* ABBEDC 80044D3C 3C018016 */ lui $at, %hi(D_8015CE50) -/* ABBEE0 80044D40 C432CE50 */ lwc1 $f18, %lo(D_8015CE50)($at) -/* ABBEE4 80044D44 46000406 */ mov.s $f16, $f0 -.L80044D48: -/* ABBEE8 80044D48 3C01C6FA */ li $at, 0xC6FA0000 # 0.000000 -/* ABBEEC 80044D4C 44816000 */ mtc1 $at, $f12 -/* ABBEF0 80044D50 00000000 */ nop -/* ABBEF4 80044D54 460C9032 */ c.eq.s $f18, $f12 -/* ABBEF8 80044D58 00000000 */ nop -/* ABBEFC 80044D5C 45020003 */ bc1fl .L80044D6C -/* ABBF00 80044D60 460C0032 */ c.eq.s $f0, $f12 -/* ABBF04 80044D64 C6120104 */ lwc1 $f18, 0x104($s0) -/* ABBF08 80044D68 460C0032 */ c.eq.s $f0, $f12 -.L80044D6C: -/* ABBF0C 80044D6C C6020104 */ lwc1 $f2, 0x104($s0) -/* ABBF10 80044D70 45000002 */ bc1f .L80044D7C -/* ABBF14 80044D74 00000000 */ nop -/* ABBF18 80044D78 46009406 */ mov.s $f16, $f18 -.L80044D7C: -/* ABBF1C 80044D7C 3C0C8016 */ lui $t4, %hi(gGameInfo) # $t4, 0x8016 -/* ABBF20 80044D80 8D8CFA90 */ lw $t4, %lo(gGameInfo)($t4) -/* ABBF24 80044D84 3C018014 */ lui $at, %hi(D_80139DC4) -/* ABBF28 80044D88 C4289DC4 */ lwc1 $f8, %lo(D_80139DC4)($at) -/* ABBF2C 80044D8C 858D01BC */ lh $t5, 0x1bc($t4) -/* ABBF30 80044D90 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABBF34 80044D94 46029181 */ sub.s $f6, $f18, $f2 -/* ABBF38 80044D98 448D5000 */ mtc1 $t5, $f10 -/* ABBF3C 80044D9C C7AE0030 */ lwc1 $f14, 0x30($sp) -/* ABBF40 80044DA0 46805120 */ cvt.s.w $f4, $f10 -/* ABBF44 80044DA4 44815000 */ mtc1 $at, $f10 -/* ABBF48 80044DA8 3C018016 */ lui $at, %hi(D_8015CE54) -/* ABBF4C 80044DAC E430CE54 */ swc1 $f16, %lo(D_8015CE54)($at) -/* ABBF50 80044DB0 3C018016 */ lui $at, %hi(D_8015CE50) -/* ABBF54 80044DB4 E432CE50 */ swc1 $f18, %lo(D_8015CE50)($at) -/* ABBF58 80044DB8 46082002 */ mul.s $f0, $f4, $f8 -/* ABBF5C 80044DBC 46028201 */ sub.s $f8, $f16, $f2 -/* ABBF60 80044DC0 46005101 */ sub.s $f4, $f10, $f0 -/* ABBF64 80044DC4 46060302 */ mul.s $f12, $f0, $f6 -/* ABBF68 80044DC8 00000000 */ nop -/* ABBF6C 80044DCC 46082182 */ mul.s $f6, $f4, $f8 -/* ABBF70 80044DD0 0C03F494 */ jal Math_atan2f -/* ABBF74 80044DD4 E7A60040 */ swc1 $f6, 0x40($sp) -/* ABBF78 80044DD8 3C018014 */ lui $at, %hi(D_80139DC8) -/* ABBF7C 80044DDC C42A9DC8 */ lwc1 $f10, %lo(D_80139DC8)($at) -/* ABBF80 80044DE0 3C018014 */ lui $at, %hi(D_80139DCC) -/* ABBF84 80044DE4 C4289DCC */ lwc1 $f8, %lo(D_80139DCC)($at) -/* ABBF88 80044DE8 460A0102 */ mul.s $f4, $f0, $f10 -/* ABBF8C 80044DEC 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* ABBF90 80044DF0 44815000 */ mtc1 $at, $f10 -/* ABBF94 80044DF4 C7AC0040 */ lwc1 $f12, 0x40($sp) -/* ABBF98 80044DF8 C7AE002C */ lwc1 $f14, 0x2c($sp) -/* ABBF9C 80044DFC 46082182 */ mul.s $f6, $f4, $f8 -/* ABBFA0 80044E00 460A3100 */ add.s $f4, $f6, $f10 -/* ABBFA4 80044E04 4600220D */ trunc.w.s $f8, $f4 -/* ABBFA8 80044E08 44104000 */ mfc1 $s0, $f8 -/* ABBFAC 80044E0C 00000000 */ nop -/* ABBFB0 80044E10 00108400 */ sll $s0, $s0, 0x10 -/* ABBFB4 80044E14 0C03F494 */ jal Math_atan2f -/* ABBFB8 80044E18 00108403 */ sra $s0, $s0, 0x10 -/* ABBFBC 80044E1C 3C018014 */ lui $at, %hi(D_80139DD0) -/* ABBFC0 80044E20 C4269DD0 */ lwc1 $f6, %lo(D_80139DD0)($at) -/* ABBFC4 80044E24 3C018014 */ lui $at, %hi(D_80139DD4) -/* ABBFC8 80044E28 C4249DD4 */ lwc1 $f4, %lo(D_80139DD4)($at) -/* ABBFCC 80044E2C 46060282 */ mul.s $f10, $f0, $f6 -/* ABBFD0 80044E30 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* ABBFD4 80044E34 44813000 */ mtc1 $at, $f6 -/* ABBFD8 80044E38 8FBF001C */ lw $ra, 0x1c($sp) -/* ABBFDC 80044E3C 46045202 */ mul.s $f8, $f10, $f4 -/* ABBFE0 80044E40 46064280 */ add.s $f10, $f8, $f6 -/* ABBFE4 80044E44 4600510D */ trunc.w.s $f4, $f10 -/* ABBFE8 80044E48 44082000 */ mfc1 $t0, $f4 -/* ABBFEC 80044E4C 00000000 */ nop -/* ABBFF0 80044E50 02081021 */ addu $v0, $s0, $t0 -/* ABBFF4 80044E54 00021400 */ sll $v0, $v0, 0x10 -/* ABBFF8 80044E58 8FB00018 */ lw $s0, 0x18($sp) -/* ABBFFC 80044E5C 27BD0070 */ addiu $sp, $sp, 0x70 -/* ABC000 80044E60 03E00008 */ jr $ra -/* ABC004 80044E64 00021403 */ sra $v0, $v0, 0x10 - diff --git a/asm/non_matchings/code/z_camera/func_80044E68.s b/asm/non_matchings/code/z_camera/func_80044E68.s deleted file mode 100644 index bb74aae438..0000000000 --- a/asm/non_matchings/code/z_camera/func_80044E68.s +++ /dev/null @@ -1,145 +0,0 @@ -glabel func_80044E68 -/* ABC008 80044E68 27BDFF38 */ addiu $sp, $sp, -0xc8 -/* ABC00C 80044E6C AFBF0024 */ sw $ra, 0x24($sp) -/* ABC010 80044E70 AFA400C8 */ sw $a0, 0xc8($sp) -/* ABC014 80044E74 AFA500CC */ sw $a1, 0xcc($sp) -/* ABC018 80044E78 F7B60018 */ sdc1 $f22, 0x18($sp) -/* ABC01C 80044E7C F7B40010 */ sdc1 $f20, 0x10($sp) -/* ABC020 80044E80 AFA600D0 */ sw $a2, 0xd0($sp) -/* ABC024 80044E84 AFA700D4 */ sw $a3, 0xd4($sp) -/* ABC028 80044E88 0C01DE1C */ jal Math_Sins -/* ABC02C 80044E8C 87A400CE */ lh $a0, 0xce($sp) -/* ABC030 80044E90 46000586 */ mov.s $f22, $f0 -/* ABC034 80044E94 0C01DE0D */ jal Math_Coss -/* ABC038 80044E98 87A400CE */ lh $a0, 0xce($sp) -/* ABC03C 80044E9C 46000506 */ mov.s $f20, $f0 -/* ABC040 80044EA0 0C01DE1C */ jal Math_Sins -/* ABC044 80044EA4 87A400D2 */ lh $a0, 0xd2($sp) -/* ABC048 80044EA8 E7A000BC */ swc1 $f0, 0xbc($sp) -/* ABC04C 80044EAC 0C01DE0D */ jal Math_Coss -/* ABC050 80044EB0 87A400D2 */ lh $a0, 0xd2($sp) -/* ABC054 80044EB4 87A400D6 */ lh $a0, 0xd6($sp) -/* ABC058 80044EB8 E7A000B8 */ swc1 $f0, 0xb8($sp) -/* ABC05C 80044EBC 00042023 */ negu $a0, $a0 -/* ABC060 80044EC0 00042400 */ sll $a0, $a0, 0x10 -/* ABC064 80044EC4 00042403 */ sra $a0, $a0, 0x10 -/* ABC068 80044EC8 0C01DE1C */ jal Math_Sins -/* ABC06C 80044ECC AFA40060 */ sw $a0, 0x60($sp) -/* ABC070 80044ED0 8FA40060 */ lw $a0, 0x60($sp) -/* ABC074 80044ED4 0C01DE0D */ jal Math_Coss -/* ABC078 80044ED8 E7A000B4 */ swc1 $f0, 0xb4($sp) -/* ABC07C 80044EDC 4600B107 */ neg.s $f4, $f22 -/* ABC080 80044EE0 C7A600BC */ lwc1 $f6, 0xbc($sp) -/* ABC084 80044EE4 E7A40060 */ swc1 $f4, 0x60($sp) -/* ABC088 80044EE8 C7AA0060 */ lwc1 $f10, 0x60($sp) -/* ABC08C 80044EEC 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABC090 80044EF0 44812000 */ mtc1 $at, $f4 -/* ABC094 80044EF4 46065402 */ mul.s $f16, $f10, $f6 -/* ABC098 80044EF8 E7AA0028 */ swc1 $f10, 0x28($sp) -/* ABC09C 80044EFC 46002381 */ sub.s $f14, $f4, $f0 -/* ABC0A0 80044F00 4606A082 */ mul.s $f2, $f20, $f6 -/* ABC0A4 80044F04 C7A400B8 */ lwc1 $f4, 0xb8($sp) -/* ABC0A8 80044F08 27B900A4 */ addiu $t9, $sp, 0xa4 -/* ABC0AC 80044F0C 8FA200C8 */ lw $v0, 0xc8($sp) -/* ABC0B0 80044F10 46021202 */ mul.s $f8, $f2, $f2 -/* ABC0B4 80044F14 00000000 */ nop -/* ABC0B8 80044F18 46161182 */ mul.s $f6, $f2, $f22 -/* ABC0BC 80044F1C E7A80054 */ swc1 $f8, 0x54($sp) -/* ABC0C0 80044F20 460E3202 */ mul.s $f8, $f6, $f14 -/* ABC0C4 80044F24 C7A600B4 */ lwc1 $f6, 0xb4($sp) -/* ABC0C8 80044F28 4604A302 */ mul.s $f12, $f20, $f4 -/* ABC0CC 80044F2C E7A6002C */ swc1 $f6, 0x2c($sp) -/* ABC0D0 80044F30 E7A8004C */ swc1 $f8, 0x4c($sp) -/* ABC0D4 80044F34 46066282 */ mul.s $f10, $f12, $f6 -/* ABC0D8 80044F38 E7AA0044 */ swc1 $f10, 0x44($sp) -/* ABC0DC 80044F3C C7AA0028 */ lwc1 $f10, 0x28($sp) -/* ABC0E0 80044F40 E7A80028 */ swc1 $f8, 0x28($sp) -/* ABC0E4 80044F44 C7A80054 */ lwc1 $f8, 0x54($sp) -/* ABC0E8 80044F48 46045482 */ mul.s $f18, $f10, $f4 -/* ABC0EC 80044F4C 00000000 */ nop -/* ABC0F0 80044F50 46026282 */ mul.s $f10, $f12, $f2 -/* ABC0F4 80044F54 00000000 */ nop -/* ABC0F8 80044F58 460E5102 */ mul.s $f4, $f10, $f14 -/* ABC0FC 80044F5C 00000000 */ nop -/* ABC100 80044F60 4606B282 */ mul.s $f10, $f22, $f6 -/* ABC104 80044F64 E7A40040 */ swc1 $f4, 0x40($sp) -/* ABC108 80044F68 E7AA003C */ swc1 $f10, 0x3c($sp) -/* ABC10C 80044F6C 44815000 */ mtc1 $at, $f10 -/* ABC110 80044F70 00000000 */ nop -/* ABC114 80044F74 46085281 */ sub.s $f10, $f10, $f8 -/* ABC118 80044F78 46005282 */ mul.s $f10, $f10, $f0 -/* ABC11C 80044F7C 46085280 */ add.s $f10, $f10, $f8 -/* ABC120 80044F80 460A8202 */ mul.s $f8, $f16, $f10 -/* ABC124 80044F84 C7AA0028 */ lwc1 $f10, 0x28($sp) -/* ABC128 80044F88 E7A40028 */ swc1 $f4, 0x28($sp) -/* ABC12C 80044F8C C7A40044 */ lwc1 $f4, 0x44($sp) -/* ABC130 80044F90 46045181 */ sub.s $f6, $f10, $f4 -/* ABC134 80044F94 E7A40030 */ swc1 $f4, 0x30($sp) -/* ABC138 80044F98 4606A182 */ mul.s $f6, $f20, $f6 -/* ABC13C 80044F9C 46064200 */ add.s $f8, $f8, $f6 -/* ABC140 80044FA0 C7A60028 */ lwc1 $f6, 0x28($sp) -/* ABC144 80044FA4 E7AA0028 */ swc1 $f10, 0x28($sp) -/* ABC148 80044FA8 C7AA003C */ lwc1 $f10, 0x3c($sp) -/* ABC14C 80044FAC 460A3100 */ add.s $f4, $f6, $f10 -/* ABC150 80044FB0 46049102 */ mul.s $f4, $f18, $f4 -/* ABC154 80044FB4 46044200 */ add.s $f8, $f8, $f4 -/* ABC158 80044FB8 4616B102 */ mul.s $f4, $f22, $f22 -/* ABC15C 80044FBC E7A800A4 */ swc1 $f8, 0xa4($sp) -/* ABC160 80044FC0 460CB202 */ mul.s $f8, $f22, $f12 -/* ABC164 80044FC4 E7A40054 */ swc1 $f4, 0x54($sp) -/* ABC168 80044FC8 460E4102 */ mul.s $f4, $f8, $f14 -/* ABC16C 80044FCC C7A8002C */ lwc1 $f8, 0x2c($sp) -/* ABC170 80044FD0 E7A6002C */ swc1 $f6, 0x2c($sp) -/* ABC174 80044FD4 C7A60030 */ lwc1 $f6, 0x30($sp) -/* ABC178 80044FD8 46081202 */ mul.s $f8, $f2, $f8 -/* ABC17C 80044FDC E7AA0030 */ swc1 $f10, 0x30($sp) -/* ABC180 80044FE0 C7AA0054 */ lwc1 $f10, 0x54($sp) -/* ABC184 80044FE4 E7A40050 */ swc1 $f4, 0x50($sp) -/* ABC188 80044FE8 E7A80058 */ swc1 $f8, 0x58($sp) -/* ABC18C 80044FEC C7A80028 */ lwc1 $f8, 0x28($sp) -/* ABC190 80044FF0 46064200 */ add.s $f8, $f8, $f6 -/* ABC194 80044FF4 46088182 */ mul.s $f6, $f16, $f8 -/* ABC198 80044FF8 44814000 */ mtc1 $at, $f8 -/* ABC19C 80044FFC 00000000 */ nop -/* ABC1A0 80045000 460A4201 */ sub.s $f8, $f8, $f10 -/* ABC1A4 80045004 46004282 */ mul.s $f10, $f8, $f0 -/* ABC1A8 80045008 C7A80054 */ lwc1 $f8, 0x54($sp) -/* ABC1AC 8004500C 46085280 */ add.s $f10, $f10, $f8 -/* ABC1B0 80045010 460AA202 */ mul.s $f8, $f20, $f10 -/* ABC1B4 80045014 46083280 */ add.s $f10, $f6, $f8 -/* ABC1B8 80045018 C7A60058 */ lwc1 $f6, 0x58($sp) -/* ABC1BC 8004501C 46062201 */ sub.s $f8, $f4, $f6 -/* ABC1C0 80045020 46089182 */ mul.s $f6, $f18, $f8 -/* ABC1C4 80045024 46065200 */ add.s $f8, $f10, $f6 -/* ABC1C8 80045028 460C6282 */ mul.s $f10, $f12, $f12 -/* ABC1CC 8004502C C7A6002C */ lwc1 $f6, 0x2c($sp) -/* ABC1D0 80045030 E7A800A8 */ swc1 $f8, 0xa8($sp) -/* ABC1D4 80045034 C7A80030 */ lwc1 $f8, 0x30($sp) -/* ABC1D8 80045038 E7AA0054 */ swc1 $f10, 0x54($sp) -/* ABC1DC 8004503C 46083281 */ sub.s $f10, $f6, $f8 -/* ABC1E0 80045040 C7A80058 */ lwc1 $f8, 0x58($sp) -/* ABC1E4 80045044 460A8182 */ mul.s $f6, $f16, $f10 -/* ABC1E8 80045048 46082280 */ add.s $f10, $f4, $f8 -/* ABC1EC 8004504C 460AA102 */ mul.s $f4, $f20, $f10 -/* ABC1F0 80045050 44815000 */ mtc1 $at, $f10 -/* ABC1F4 80045054 46043200 */ add.s $f8, $f6, $f4 -/* ABC1F8 80045058 C7A60054 */ lwc1 $f6, 0x54($sp) -/* ABC1FC 8004505C 46065101 */ sub.s $f4, $f10, $f6 -/* ABC200 80045060 C7A60054 */ lwc1 $f6, 0x54($sp) -/* ABC204 80045064 46002282 */ mul.s $f10, $f4, $f0 -/* ABC208 80045068 46065100 */ add.s $f4, $f10, $f6 -/* ABC20C 8004506C 46049282 */ mul.s $f10, $f18, $f4 -/* ABC210 80045070 460A4180 */ add.s $f6, $f8, $f10 -/* ABC214 80045074 E7A600AC */ swc1 $f6, 0xac($sp) -/* ABC218 80045078 8F290000 */ lw $t1, ($t9) -/* ABC21C 8004507C AC490000 */ sw $t1, ($v0) -/* ABC220 80045080 8F280004 */ lw $t0, 4($t9) -/* ABC224 80045084 AC480004 */ sw $t0, 4($v0) -/* ABC228 80045088 8F290008 */ lw $t1, 8($t9) -/* ABC22C 8004508C AC490008 */ sw $t1, 8($v0) -/* ABC230 80045090 8FBF0024 */ lw $ra, 0x24($sp) -/* ABC234 80045094 D7B60018 */ ldc1 $f22, 0x18($sp) -/* ABC238 80045098 D7B40010 */ ldc1 $f20, 0x10($sp) -/* ABC23C 8004509C 03E00008 */ jr $ra -/* ABC240 800450A0 27BD00C8 */ addiu $sp, $sp, 0xc8 - diff --git a/asm/non_matchings/code/z_camera/func_80045350.s b/asm/non_matchings/code/z_camera/func_80045350.s deleted file mode 100644 index 7b89c781c5..0000000000 --- a/asm/non_matchings/code/z_camera/func_80045350.s +++ /dev/null @@ -1,78 +0,0 @@ -glabel func_80045350 -/* ABC4F0 80045350 00042C00 */ sll $a1, $a0, 0x10 -/* ABC4F4 80045354 00052C03 */ sra $a1, $a1, 0x10 -/* ABC4F8 80045358 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* ABC4FC 8004535C 30AEF000 */ andi $t6, $a1, 0xf000 -/* ABC500 80045360 3401F000 */ li $at, 61440 -/* ABC504 80045364 AFBF0014 */ sw $ra, 0x14($sp) -/* ABC508 80045368 11C10026 */ beq $t6, $at, .L80045404 -/* ABC50C 8004536C AFA40018 */ sw $a0, 0x18($sp) -/* ABC510 80045370 30A27000 */ andi $v0, $a1, 0x7000 -/* ABC514 80045374 24011000 */ li $at, 4096 -/* ABC518 80045378 1041000B */ beq $v0, $at, .L800453A8 -/* ABC51C 8004537C 30A88000 */ andi $t0, $a1, 0x8000 -/* ABC520 80045380 24012000 */ li $at, 8192 -/* ABC524 80045384 1041000D */ beq $v0, $at, .L800453BC -/* ABC528 80045388 2418001B */ li $t8, 27 -/* ABC52C 8004538C 24013000 */ li $at, 12288 -/* ABC530 80045390 1041000E */ beq $v0, $at, .L800453CC -/* ABC534 80045394 24190020 */ li $t9, 32 -/* ABC538 80045398 3C028012 */ lui $v0, %hi(D_8011D3A8) # $v0, 0x8012 -/* ABC53C 8004539C 2442D3A8 */ addiu $v0, %lo(D_8011D3A8) # addiu $v0, $v0, -0x2c58 -/* ABC540 800453A0 1000000D */ b .L800453D8 -/* ABC544 800453A4 AC400000 */ sw $zero, ($v0) -.L800453A8: -/* ABC548 800453A8 3C028012 */ lui $v0, %hi(D_8011D3A8) # $v0, 0x8012 -/* ABC54C 800453AC 2442D3A8 */ addiu $v0, %lo(D_8011D3A8) # addiu $v0, $v0, -0x2c58 -/* ABC550 800453B0 240F001A */ li $t7, 26 -/* ABC554 800453B4 10000008 */ b .L800453D8 -/* ABC558 800453B8 AC4F0000 */ sw $t7, ($v0) -.L800453BC: -/* ABC55C 800453BC 3C028012 */ lui $v0, %hi(D_8011D3A8) # $v0, 0x8012 -/* ABC560 800453C0 2442D3A8 */ addiu $v0, %lo(D_8011D3A8) # addiu $v0, $v0, -0x2c58 -/* ABC564 800453C4 10000004 */ b .L800453D8 -/* ABC568 800453C8 AC580000 */ sw $t8, ($v0) -.L800453CC: -/* ABC56C 800453CC 3C028012 */ lui $v0, %hi(D_8011D3A8) # $v0, 0x8012 -/* ABC570 800453D0 2442D3A8 */ addiu $v0, %lo(D_8011D3A8) # addiu $v0, $v0, -0x2c58 -/* ABC574 800453D4 AC590000 */ sw $t9, ($v0) -.L800453D8: -/* ABC578 800453D8 51000007 */ beql $t0, $zero, .L800453F8 -/* ABC57C 800453DC 8C440000 */ lw $a0, ($v0) -/* ABC580 800453E0 8C440000 */ lw $a0, ($v0) -/* ABC584 800453E4 0C02CE29 */ jal ShrinkWindow_SetCurrentVal -/* ABC588 800453E8 A7A5001A */ sh $a1, 0x1a($sp) -/* ABC58C 800453EC 10000005 */ b .L80045404 -/* ABC590 800453F0 87A5001A */ lh $a1, 0x1a($sp) -/* ABC594 800453F4 8C440000 */ lw $a0, ($v0) -.L800453F8: -/* ABC598 800453F8 0C02CE10 */ jal ShrinkWindow_SetVal -/* ABC59C 800453FC A7A5001A */ sh $a1, 0x1a($sp) -/* ABC5A0 80045400 87A5001A */ lh $a1, 0x1a($sp) -.L80045404: -/* ABC5A4 80045404 30A40F00 */ andi $a0, $a1, 0xf00 -/* ABC5A8 80045408 24010F00 */ li $at, 3840 -/* ABC5AC 8004540C 1081000F */ beq $a0, $at, .L8004544C -/* ABC5B0 80045410 00041203 */ sra $v0, $a0, 8 -/* ABC5B4 80045414 00024C00 */ sll $t1, $v0, 0x10 -/* ABC5B8 80045418 00021C00 */ sll $v1, $v0, 0x10 -/* ABC5BC 8004541C 00095403 */ sra $t2, $t1, 0x10 -/* ABC5C0 80045420 15400002 */ bnez $t2, .L8004542C -/* ABC5C4 80045424 00031C03 */ sra $v1, $v1, 0x10 -/* ABC5C8 80045428 24030032 */ li $v1, 50 -.L8004542C: -/* ABC5CC 8004542C 3C028012 */ lui $v0, %hi(D_8011D3A4) # $v0, 0x8012 -/* ABC5D0 80045430 2442D3A4 */ addiu $v0, %lo(D_8011D3A4) # addiu $v0, $v0, -0x2c5c -/* ABC5D4 80045434 8C4B0000 */ lw $t3, ($v0) -/* ABC5D8 80045438 506B0005 */ beql $v1, $t3, .L80045450 -/* ABC5DC 8004543C 8FBF0014 */ lw $ra, 0x14($sp) -/* ABC5E0 80045440 AC430000 */ sw $v1, ($v0) -/* ABC5E4 80045444 0C020978 */ jal Interface_ChangeAlpha -/* ABC5E8 80045448 94440002 */ lhu $a0, 2($v0) -.L8004544C: -/* ABC5EC 8004544C 8FBF0014 */ lw $ra, 0x14($sp) -.L80045450: -/* ABC5F0 80045450 27BD0018 */ addiu $sp, $sp, 0x18 -/* ABC5F4 80045454 03E00008 */ jr $ra -/* ABC5F8 80045458 00000000 */ nop - diff --git a/asm/non_matchings/code/z_camera/func_80045508.s b/asm/non_matchings/code/z_camera/func_80045508.s deleted file mode 100644 index b42c13bc58..0000000000 --- a/asm/non_matchings/code/z_camera/func_80045508.s +++ /dev/null @@ -1,143 +0,0 @@ -glabel func_80045508 -/* ABC6A8 80045508 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* ABC6AC 8004550C AFBF001C */ sw $ra, 0x1c($sp) -/* ABC6B0 80045510 AFB10018 */ sw $s1, 0x18($sp) -/* ABC6B4 80045514 AFB00014 */ sw $s0, 0x14($sp) -/* ABC6B8 80045518 AFA5005C */ sw $a1, 0x5c($sp) -/* ABC6BC 8004551C 24820074 */ addiu $v0, $a0, 0x74 -/* ABC6C0 80045520 8C4F0000 */ lw $t7, ($v0) -/* ABC6C4 80045524 24850050 */ addiu $a1, $a0, 0x50 -/* ABC6C8 80045528 00C08025 */ move $s0, $a2 -/* ABC6CC 8004552C ACCF0000 */ sw $t7, ($a2) -/* ABC6D0 80045530 8C4E0004 */ lw $t6, 4($v0) -/* ABC6D4 80045534 00E08825 */ move $s1, $a3 -/* ABC6D8 80045538 ACCE0004 */ sw $t6, 4($a2) -/* ABC6DC 8004553C 8C4F0008 */ lw $t7, 8($v0) -/* ABC6E0 80045540 ACCF0008 */ sw $t7, 8($a2) -/* ABC6E4 80045544 AFA5002C */ sw $a1, 0x2c($sp) -/* ABC6E8 80045548 AFA40058 */ sw $a0, 0x58($sp) -/* ABC6EC 8004554C AFA00034 */ sw $zero, 0x34($sp) -/* ABC6F0 80045550 0C010F46 */ jal func_80043D18 -/* ABC6F4 80045554 AFA20028 */ sw $v0, 0x28($sp) -/* ABC6F8 80045558 8FA30034 */ lw $v1, 0x34($sp) -/* ABC6FC 8004555C 10400067 */ beqz $v0, .L800456FC -/* ABC700 80045560 AFA2003C */ sw $v0, 0x3c($sp) -/* ABC704 80045564 8FB8002C */ lw $t8, 0x2c($sp) -/* ABC708 80045568 2605000C */ addiu $a1, $s0, 0xc -/* ABC70C 8004556C 2604001C */ addiu $a0, $s0, 0x1c -/* ABC710 80045570 8F080000 */ lw $t0, ($t8) -/* ABC714 80045574 AE280000 */ sw $t0, ($s1) -/* ABC718 80045578 8F190004 */ lw $t9, 4($t8) -/* ABC71C 8004557C AE390004 */ sw $t9, 4($s1) -/* ABC720 80045580 8F080008 */ lw $t0, 8($t8) -/* ABC724 80045584 AE280008 */ sw $t0, 8($s1) -/* ABC728 80045588 0C01F0FD */ jal OLib_Vec3fToVecSphGeo -/* ABC72C 8004558C AFA50024 */ sw $a1, 0x24($sp) -/* ABC730 80045590 86090020 */ lh $t1, 0x20($s0) -/* ABC734 80045594 8FAA005C */ lw $t2, 0x5c($sp) -/* ABC738 80045598 02203025 */ move $a2, $s1 -/* ABC73C 8004559C 29212EE1 */ slti $at, $t1, 0x2ee1 -/* ABC740 800455A0 54200004 */ bnezl $at, .L800455B4 -/* ABC744 800455A4 8FA40058 */ lw $a0, 0x58($sp) -/* ABC748 800455A8 854B0006 */ lh $t3, 6($t2) -/* ABC74C 800455AC A60B0022 */ sh $t3, 0x22($s0) -/* ABC750 800455B0 8FA40058 */ lw $a0, 0x58($sp) -.L800455B4: -/* ABC754 800455B4 0C010F46 */ jal func_80043D18 -/* ABC758 800455B8 8FA50028 */ lw $a1, 0x28($sp) -/* ABC75C 800455BC 14400023 */ bnez $v0, .L8004564C -/* ABC760 800455C0 AFA20038 */ sw $v0, 0x38($sp) -/* ABC764 800455C4 87AC006A */ lh $t4, 0x6a($sp) -/* ABC768 800455C8 8FAE002C */ lw $t6, 0x2c($sp) -/* ABC76C 800455CC 318D0001 */ andi $t5, $t4, 1 -/* ABC770 800455D0 11A0001C */ beqz $t5, .L80045644 -/* ABC774 800455D4 00000000 */ nop -/* ABC778 800455D8 8DD80000 */ lw $t8, ($t6) -/* ABC77C 800455DC 27A50040 */ addiu $a1, $sp, 0x40 -/* ABC780 800455E0 02203025 */ move $a2, $s1 -/* ABC784 800455E4 AE380000 */ sw $t8, ($s1) -/* ABC788 800455E8 8DCF0004 */ lw $t7, 4($t6) -/* ABC78C 800455EC AE2F0004 */ sw $t7, 4($s1) -/* ABC790 800455F0 8DD80008 */ lw $t8, 8($t6) -/* ABC794 800455F4 AE380008 */ sw $t8, 8($s1) -/* ABC798 800455F8 8FB90058 */ lw $t9, 0x58($sp) -/* ABC79C 800455FC 8F29005C */ lw $t1, 0x5c($t9) -/* ABC7A0 80045600 ACA90000 */ sw $t1, ($a1) -/* ABC7A4 80045604 8F280060 */ lw $t0, 0x60($t9) -/* ABC7A8 80045608 ACA80004 */ sw $t0, 4($a1) -/* ABC7AC 8004560C 8F290064 */ lw $t1, 0x64($t9) -/* ABC7B0 80045610 ACA90008 */ sw $t1, 8($a1) -/* ABC7B4 80045614 0C010F46 */ jal func_80043D18 -/* ABC7B8 80045618 8FA40058 */ lw $a0, 0x58($sp) -/* ABC7BC 8004561C 54400004 */ bnezl $v0, .L80045630 -/* ABC7C0 80045620 8E2A0018 */ lw $t2, 0x18($s1) -/* ABC7C4 80045624 10000036 */ b .L80045700 -/* ABC7C8 80045628 24020003 */ li $v0, 3 -/* ABC7CC 8004562C 8E2A0018 */ lw $t2, 0x18($s1) -.L80045630: -/* ABC7D0 80045630 8E0B0018 */ lw $t3, 0x18($s0) -/* ABC7D4 80045634 554B000C */ bnel $t2, $t3, .L80045668 -/* ABC7D8 80045638 2630000C */ addiu $s0, $s1, 0xc -/* ABC7DC 8004563C 10000030 */ b .L80045700 -/* ABC7E0 80045640 24020003 */ li $v0, 3 -.L80045644: -/* ABC7E4 80045644 1000002E */ b .L80045700 -/* ABC7E8 80045648 24020003 */ li $v0, 3 -.L8004564C: -/* ABC7EC 8004564C 8E2C0018 */ lw $t4, 0x18($s1) -/* ABC7F0 80045650 8E0D0018 */ lw $t5, 0x18($s0) -/* ABC7F4 80045654 558D0004 */ bnel $t4, $t5, .L80045668 -/* ABC7F8 80045658 2630000C */ addiu $s0, $s1, 0xc -/* ABC7FC 8004565C 10000028 */ b .L80045700 -/* ABC800 80045660 24020003 */ li $v0, 3 -/* ABC804 80045664 2630000C */ addiu $s0, $s1, 0xc -.L80045668: -/* ABC808 80045668 02002825 */ move $a1, $s0 -/* ABC80C 8004566C 0C01F0FD */ jal OLib_Vec3fToVecSphGeo -/* ABC810 80045670 2624001C */ addiu $a0, $s1, 0x1c -/* ABC814 80045674 862E0020 */ lh $t6, 0x20($s1) -/* ABC818 80045678 8FAF005C */ lw $t7, 0x5c($sp) -/* ABC81C 8004567C 02002825 */ move $a1, $s0 -/* ABC820 80045680 29C12EE1 */ slti $at, $t6, 0x2ee1 -/* ABC824 80045684 54200005 */ bnezl $at, .L8004569C -/* ABC828 80045688 8FA8003C */ lw $t0, 0x3c($sp) -/* ABC82C 8004568C 85F80006 */ lh $t8, 6($t7) -/* ABC830 80045690 27198001 */ addiu $t9, $t8, -0x7fff -/* ABC834 80045694 A6390022 */ sh $t9, 0x22($s1) -/* ABC838 80045698 8FA8003C */ lw $t0, 0x3c($sp) -.L8004569C: -/* ABC83C 8004569C 8FA90038 */ lw $t1, 0x38($sp) -/* ABC840 800456A0 11090003 */ beq $t0, $t1, .L800456B0 -/* ABC844 800456A4 00000000 */ nop -/* ABC848 800456A8 10000014 */ b .L800456FC -/* ABC84C 800456AC 24030003 */ li $v1, 3 -.L800456B0: -/* ABC850 800456B0 0C032BFB */ jal Math3D_Cos -/* ABC854 800456B4 8FA40024 */ lw $a0, 0x24($sp) -/* ABC858 800456B8 3C01BF00 */ li $at, 0xBF000000 # 0.000000 -/* ABC85C 800456BC 44812000 */ mtc1 $at, $f4 -/* ABC860 800456C0 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* ABC864 800456C4 4604003C */ c.lt.s $f0, $f4 -/* ABC868 800456C8 00000000 */ nop -/* ABC86C 800456CC 45020004 */ bc1fl .L800456E0 -/* ABC870 800456D0 44813000 */ mtc1 $at, $f6 -/* ABC874 800456D4 10000009 */ b .L800456FC -/* ABC878 800456D8 24030006 */ li $v1, 6 -/* ABC87C 800456DC 44813000 */ mtc1 $at, $f6 -.L800456E0: -/* ABC880 800456E0 24030002 */ li $v1, 2 -/* ABC884 800456E4 4600303C */ c.lt.s $f6, $f0 -/* ABC888 800456E8 00000000 */ nop -/* ABC88C 800456EC 45000003 */ bc1f .L800456FC -/* ABC890 800456F0 00000000 */ nop -/* ABC894 800456F4 10000001 */ b .L800456FC -/* ABC898 800456F8 24030003 */ li $v1, 3 -.L800456FC: -/* ABC89C 800456FC 00601025 */ move $v0, $v1 -.L80045700: -/* ABC8A0 80045700 8FBF001C */ lw $ra, 0x1c($sp) -/* ABC8A4 80045704 8FB00014 */ lw $s0, 0x14($sp) -/* ABC8A8 80045708 8FB10018 */ lw $s1, 0x18($sp) -/* ABC8AC 8004570C 03E00008 */ jr $ra -/* ABC8B0 80045710 27BD0058 */ addiu $sp, $sp, 0x58 - diff --git a/asm/non_matchings/code/z_camera/func_80045714.s b/asm/non_matchings/code/z_camera/func_80045714.s deleted file mode 100644 index a75d9b00bd..0000000000 --- a/asm/non_matchings/code/z_camera/func_80045714.s +++ /dev/null @@ -1,39 +0,0 @@ -glabel func_80045714 -/* ABC8B4 80045714 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* ABC8B8 80045718 AFA5002C */ sw $a1, 0x2c($sp) -/* ABC8BC 8004571C 00802825 */ move $a1, $a0 -/* ABC8C0 80045720 AFBF0014 */ sw $ra, 0x14($sp) -/* ABC8C4 80045724 AFA40028 */ sw $a0, 0x28($sp) -/* ABC8C8 80045728 AFA60030 */ sw $a2, 0x30($sp) -/* ABC8CC 8004572C AFA70034 */ sw $a3, 0x34($sp) -/* ABC8D0 80045730 0C01F0FD */ jal OLib_Vec3fToVecSphGeo -/* ABC8D4 80045734 27A4001C */ addiu $a0, $sp, 0x1c -/* ABC8D8 80045738 0C01DE0D */ jal Math_Coss -/* ABC8DC 8004573C 87A40020 */ lh $a0, 0x20($sp) -/* ABC8E0 80045740 87AE002E */ lh $t6, 0x2e($sp) -/* ABC8E4 80045744 87AF0022 */ lh $t7, 0x22($sp) -/* ABC8E8 80045748 E7A00018 */ swc1 $f0, 0x18($sp) -/* ABC8EC 8004574C 01CF2023 */ subu $a0, $t6, $t7 -/* ABC8F0 80045750 00042400 */ sll $a0, $a0, 0x10 -/* ABC8F4 80045754 0C01DE0D */ jal Math_Coss -/* ABC8F8 80045758 00042403 */ sra $a0, $a0, 0x10 -/* ABC8FC 8004575C C7A40018 */ lwc1 $f4, 0x18($sp) -/* ABC900 80045760 87B8002E */ lh $t8, 0x2e($sp) -/* ABC904 80045764 87B90032 */ lh $t9, 0x32($sp) -/* ABC908 80045768 46040002 */ mul.s $f0, $f0, $f4 -/* ABC90C 8004576C 03192023 */ subu $a0, $t8, $t9 -/* ABC910 80045770 00042400 */ sll $a0, $a0, 0x10 -/* ABC914 80045774 00042403 */ sra $a0, $a0, 0x10 -/* ABC918 80045778 46000005 */ abs.s $f0, $f0 -/* ABC91C 8004577C 0C01DE0D */ jal Math_Coss -/* ABC920 80045780 E7A00018 */ swc1 $f0, 0x18($sp) -/* ABC924 80045784 C7A60018 */ lwc1 $f6, 0x18($sp) -/* ABC928 80045788 C7A80034 */ lwc1 $f8, 0x34($sp) -/* ABC92C 8004578C 8FBF0014 */ lw $ra, 0x14($sp) -/* ABC930 80045790 27BD0028 */ addiu $sp, $sp, 0x28 -/* ABC934 80045794 46083282 */ mul.s $f10, $f6, $f8 -/* ABC938 80045798 00000000 */ nop -/* ABC93C 8004579C 460A0002 */ mul.s $f0, $f0, $f10 -/* ABC940 800457A0 03E00008 */ jr $ra -/* ABC944 800457A4 00000000 */ nop - diff --git a/asm/non_matchings/code/z_camera/func_800458D4.s b/asm/non_matchings/code/z_camera/func_800458D4.s deleted file mode 100644 index 36a42c68ae..0000000000 --- a/asm/non_matchings/code/z_camera/func_800458D4.s +++ /dev/null @@ -1,161 +0,0 @@ -.late_rodata -glabel D_80139DE4 - .float 0.017453292 # pi / 180 - -glabel D_80139DE8 - .float 0.01 - -glabel D_80139DEC - .float 0.1 - -glabel D_80139DF0 - .float 0.2 - -.text -glabel func_800458D4 -/* ABCA74 800458D4 27BDFF90 */ addiu $sp, $sp, -0x70 -/* ABCA78 800458D8 AFB0001C */ sw $s0, 0x1c($sp) -/* ABCA7C 800458DC 00808025 */ move $s0, $a0 -/* ABCA80 800458E0 AFBF0024 */ sw $ra, 0x24($sp) -/* ABCA84 800458E4 AFB10020 */ sw $s1, 0x20($sp) -/* ABCA88 800458E8 AFA60078 */ sw $a2, 0x78($sp) -/* ABCA8C 800458EC AFA7007C */ sw $a3, 0x7c($sp) -/* ABCA90 800458F0 00A08825 */ move $s1, $a1 -/* ABCA94 800458F4 0C00B721 */ jal Player_GetCameraYOffset -/* ABCA98 800458F8 8C840090 */ lw $a0, 0x90($a0) -/* ABCA9C 800458FC C7A40078 */ lwc1 $f4, 0x78($sp) -/* ABCAA0 80045900 44801000 */ mtc1 $zero, $f2 -/* ABCAA4 80045904 87AE0082 */ lh $t6, 0x82($sp) -/* ABCAA8 80045908 46040180 */ add.s $f6, $f0, $f4 -/* ABCAAC 8004590C E7A20060 */ swc1 $f2, 0x60($sp) -/* ABCAB0 80045910 E7A20068 */ swc1 $f2, 0x68($sp) -/* ABCAB4 80045914 11C00010 */ beqz $t6, .L80045958 -/* ABCAB8 80045918 E7A60064 */ swc1 $f6, 0x64($sp) -/* ABCABC 8004591C 3C0F8016 */ lui $t7, %hi(gGameInfo) # $t7, 0x8016 -/* ABCAC0 80045920 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7) -/* ABCAC4 80045924 26040108 */ addiu $a0, $s0, 0x108 -/* ABCAC8 80045928 860500A2 */ lh $a1, 0xa2($s0) -/* ABCACC 8004592C 85F801A6 */ lh $t8, 0x1a6($t7) -/* ABCAD0 80045930 86260006 */ lh $a2, 6($s1) -/* ABCAD4 80045934 44984000 */ mtc1 $t8, $f8 -/* ABCAD8 80045938 00000000 */ nop -/* ABCADC 8004593C 46804220 */ cvt.s.w $f8, $f8 -/* ABCAE0 80045940 44074000 */ mfc1 $a3, $f8 -/* ABCAE4 80045944 0C0115C5 */ jal func_80045714 -/* ABCAE8 80045948 00000000 */ nop -/* ABCAEC 8004594C C7AA0064 */ lwc1 $f10, 0x64($sp) -/* ABCAF0 80045950 46005401 */ sub.s $f16, $f10, $f0 -/* ABCAF4 80045954 E7B00064 */ swc1 $f16, 0x64($sp) -.L80045958: -/* ABCAF8 80045958 8FB9007C */ lw $t9, 0x7c($sp) -/* ABCAFC 8004595C 26110094 */ addiu $s1, $s0, 0x94 -/* ABCB00 80045960 C6320004 */ lwc1 $f18, 4($s1) -/* ABCB04 80045964 C7240000 */ lwc1 $f4, ($t9) -/* ABCB08 80045968 26040050 */ addiu $a0, $s0, 0x50 -/* ABCB0C 8004596C AFA40030 */ sw $a0, 0x30($sp) -/* ABCB10 80045970 46049181 */ sub.s $f6, $f18, $f4 -/* ABCB14 80045974 2605005C */ addiu $a1, $s0, 0x5c -/* ABCB18 80045978 0C01F00A */ jal OLib_Vec3fDistXZ -/* ABCB1C 8004597C E7A60048 */ swc1 $f6, 0x48($sp) -/* ABCB20 80045980 C7AC0048 */ lwc1 $f12, 0x48($sp) -/* ABCB24 80045984 0C03F494 */ jal Math_atan2f -/* ABCB28 80045988 46000386 */ mov.s $f14, $f0 -/* ABCB2C 8004598C 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* ABCB30 80045990 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* ABCB34 80045994 3C018014 */ lui $at, %hi(D_80139DE4) -/* ABCB38 80045998 C42C9DE4 */ lwc1 $f12, %lo(D_80139DE4)($at) -/* ABCB3C 8004599C 844801D4 */ lh $t0, 0x1d4($v0) -/* ABCB40 800459A0 46000386 */ mov.s $f14, $f0 -/* ABCB44 800459A4 44884000 */ mtc1 $t0, $f8 -/* ABCB48 800459A8 00000000 */ nop -/* ABCB4C 800459AC 468042A0 */ cvt.s.w $f10, $f8 -/* ABCB50 800459B0 460C5082 */ mul.s $f2, $f10, $f12 -/* ABCB54 800459B4 4600103C */ c.lt.s $f2, $f0 -/* ABCB58 800459B8 00000000 */ nop -/* ABCB5C 800459BC 4502000A */ bc1fl .L800459E8 -/* ABCB60 800459C0 844901D6 */ lh $t1, 0x1d6($v0) -/* ABCB64 800459C4 0C0400A4 */ jal sinf -/* ABCB68 800459C8 46027301 */ sub.s $f12, $f14, $f2 -/* ABCB6C 800459CC 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABCB70 800459D0 44818000 */ mtc1 $at, $f16 -/* ABCB74 800459D4 3C028016 */ lui $v0, %hi(gGameInfo) -/* ABCB78 800459D8 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* ABCB7C 800459DC 10000015 */ b .L80045A34 -/* ABCB80 800459E0 46008081 */ sub.s $f2, $f16, $f0 -/* ABCB84 800459E4 844901D6 */ lh $t1, 0x1d6($v0) -.L800459E8: -/* ABCB88 800459E8 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABCB8C 800459EC 44899000 */ mtc1 $t1, $f18 -/* ABCB90 800459F0 00000000 */ nop -/* ABCB94 800459F4 46809120 */ cvt.s.w $f4, $f18 -/* ABCB98 800459F8 460C2082 */ mul.s $f2, $f4, $f12 -/* ABCB9C 800459FC 4602003C */ c.lt.s $f0, $f2 -/* ABCBA0 80045A00 00000000 */ nop -/* ABCBA4 80045A04 4502000A */ bc1fl .L80045A30 -/* ABCBA8 80045A08 44811000 */ mtc1 $at, $f2 -/* ABCBAC 80045A0C 0C0400A4 */ jal sinf -/* ABCBB0 80045A10 460E1301 */ sub.s $f12, $f2, $f14 -/* ABCBB4 80045A14 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABCBB8 80045A18 44813000 */ mtc1 $at, $f6 -/* ABCBBC 80045A1C 3C028016 */ lui $v0, %hi(gGameInfo) -/* ABCBC0 80045A20 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* ABCBC4 80045A24 10000003 */ b .L80045A34 -/* ABCBC8 80045A28 46003081 */ sub.s $f2, $f6, $f0 -/* ABCBCC 80045A2C 44811000 */ mtc1 $at, $f2 -.L80045A30: -/* ABCBD0 80045A30 00000000 */ nop -.L80045A34: -/* ABCBD4 80045A34 C7AA0048 */ lwc1 $f10, 0x48($sp) -/* ABCBD8 80045A38 C7A80064 */ lwc1 $f8, 0x64($sp) -/* ABCBDC 80045A3C 3C018014 */ lui $at, %hi(D_80139DE8) -/* ABCBE0 80045A40 46025402 */ mul.s $f16, $f10, $f2 -/* ABCBE4 80045A44 C4209DE8 */ lwc1 $f0, %lo(D_80139DE8)($at) -/* ABCBE8 80045A48 3C018014 */ lui $at, %hi(D_80139DEC) -/* ABCBEC 80045A4C 27A40060 */ addiu $a0, $sp, 0x60 -/* ABCBF0 80045A50 260500E4 */ addiu $a1, $s0, 0xe4 -/* ABCBF4 80045A54 46104481 */ sub.s $f18, $f8, $f16 -/* ABCBF8 80045A58 E7B20064 */ swc1 $f18, 0x64($sp) -/* ABCBFC 80045A5C 844A01CE */ lh $t2, 0x1ce($v0) -/* ABCC00 80045A60 844B01D0 */ lh $t3, 0x1d0($v0) -/* ABCC04 80045A64 448A2000 */ mtc1 $t2, $f4 -/* ABCC08 80045A68 448B4000 */ mtc1 $t3, $f8 -/* ABCC0C 80045A6C 468021A0 */ cvt.s.w $f6, $f4 -/* ABCC10 80045A70 C4249DEC */ lwc1 $f4, %lo(D_80139DEC)($at) -/* ABCC14 80045A74 E7A40010 */ swc1 $f4, 0x10($sp) -/* ABCC18 80045A78 46804420 */ cvt.s.w $f16, $f8 -/* ABCC1C 80045A7C 46003282 */ mul.s $f10, $f6, $f0 -/* ABCC20 80045A80 00000000 */ nop -/* ABCC24 80045A84 46008482 */ mul.s $f18, $f16, $f0 -/* ABCC28 80045A88 44065000 */ mfc1 $a2, $f10 -/* ABCC2C 80045A8C 44079000 */ mfc1 $a3, $f18 -/* ABCC30 80045A90 0C010E8F */ jal func_80043A3C -/* ABCC34 80045A94 00000000 */ nop -/* ABCC38 80045A98 C6260000 */ lwc1 $f6, ($s1) -/* ABCC3C 80045A9C C60A00E4 */ lwc1 $f10, 0xe4($s0) -/* ABCC40 80045AA0 3C018014 */ lui $at, %hi(D_80139DF0) -/* ABCC44 80045AA4 27A40054 */ addiu $a0, $sp, 0x54 -/* ABCC48 80045AA8 460A3200 */ add.s $f8, $f6, $f10 -/* ABCC4C 80045AAC 8FA50030 */ lw $a1, 0x30($sp) -/* ABCC50 80045AB0 E7A80054 */ swc1 $f8, 0x54($sp) -/* ABCC54 80045AB4 C61200E8 */ lwc1 $f18, 0xe8($s0) -/* ABCC58 80045AB8 C6300004 */ lwc1 $f16, 4($s1) -/* ABCC5C 80045ABC 46128100 */ add.s $f4, $f16, $f18 -/* ABCC60 80045AC0 C4309DF0 */ lwc1 $f16, %lo(D_80139DF0)($at) -/* ABCC64 80045AC4 E7A40058 */ swc1 $f4, 0x58($sp) -/* ABCC68 80045AC8 C60A00EC */ lwc1 $f10, 0xec($s0) -/* ABCC6C 80045ACC C6260008 */ lwc1 $f6, 8($s1) -/* ABCC70 80045AD0 460A3200 */ add.s $f8, $f6, $f10 -/* ABCC74 80045AD4 E7A8005C */ swc1 $f8, 0x5c($sp) -/* ABCC78 80045AD8 C6000100 */ lwc1 $f0, 0x100($s0) -/* ABCC7C 80045ADC E7B00010 */ swc1 $f16, 0x10($sp) -/* ABCC80 80045AE0 44060000 */ mfc1 $a2, $f0 -/* ABCC84 80045AE4 44070000 */ mfc1 $a3, $f0 -/* ABCC88 80045AE8 0C010E8F */ jal func_80043A3C -/* ABCC8C 80045AEC 00000000 */ nop -/* ABCC90 80045AF0 8FBF0024 */ lw $ra, 0x24($sp) -/* ABCC94 80045AF4 8FB0001C */ lw $s0, 0x1c($sp) -/* ABCC98 80045AF8 8FB10020 */ lw $s1, 0x20($sp) -/* ABCC9C 80045AFC 27BD0070 */ addiu $sp, $sp, 0x70 -/* ABCCA0 80045B00 03E00008 */ jr $ra -/* ABCCA4 80045B04 24020001 */ li $v0, 1 - diff --git a/asm/non_matchings/code/z_camera/func_80045C74.s b/asm/non_matchings/code/z_camera/func_80045C74.s deleted file mode 100644 index 46a70fcbec..0000000000 --- a/asm/non_matchings/code/z_camera/func_80045C74.s +++ /dev/null @@ -1,312 +0,0 @@ -.late_rodata -glabel D_80139DFC - .float -0.1 - -glabel D_80139E00 - .float 0.01 - -glabel D_80139E04 - .float 0.1 - -glabel D_80139E08 - .float 0.017453292 - -glabel D_80139E0C - .float 0.4 - -glabel D_80139E10 - .float 0.017453292 - -glabel D_80139E14 - .float 0.01 - -glabel D_80139E18 - .float 0.1 - -glabel D_80139E1C - .float 0.2 - -.text -glabel func_80045C74 -/* ABCE14 80045C74 27BDFF80 */ addiu $sp, $sp, -0x80 -/* ABCE18 80045C78 AFB00028 */ sw $s0, 0x28($sp) -/* ABCE1C 80045C7C F7B40020 */ sdc1 $f20, 0x20($sp) -/* ABCE20 80045C80 4486A000 */ mtc1 $a2, $f20 -/* ABCE24 80045C84 00808025 */ move $s0, $a0 -/* ABCE28 80045C88 AFBF002C */ sw $ra, 0x2c($sp) -/* ABCE2C 80045C8C AFA50084 */ sw $a1, 0x84($sp) -/* ABCE30 80045C90 AFA7008C */ sw $a3, 0x8c($sp) -/* ABCE34 80045C94 0C00B721 */ jal Player_GetCameraYOffset -/* ABCE38 80045C98 8C840090 */ lw $a0, 0x90($a0) -/* ABCE3C 80045C9C 46140100 */ add.s $f4, $f0, $f20 -/* ABCE40 80045CA0 44801000 */ mtc1 $zero, $f2 -/* ABCE44 80045CA4 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* ABCE48 80045CA8 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* ABCE4C 80045CAC E7A40074 */ swc1 $f4, 0x74($sp) -/* ABCE50 80045CB0 E7A20070 */ swc1 $f2, 0x70($sp) -/* ABCE54 80045CB4 E7A20078 */ swc1 $f2, 0x78($sp) -/* ABCE58 80045CB8 844E02EC */ lh $t6, 0x2ec($v0) -/* ABCE5C 80045CBC 87AF0092 */ lh $t7, 0x92($sp) -/* ABCE60 80045CC0 51C00013 */ beql $t6, $zero, .L80045D10 -/* ABCE64 80045CC4 C6040098 */ lwc1 $f4, 0x98($s0) -/* ABCE68 80045CC8 51E00011 */ beql $t7, $zero, .L80045D10 -/* ABCE6C 80045CCC C6040098 */ lwc1 $f4, 0x98($s0) -/* ABCE70 80045CD0 845901A6 */ lh $t9, 0x1a6($v0) -/* ABCE74 80045CD4 8FB80084 */ lw $t8, 0x84($sp) -/* ABCE78 80045CD8 26040108 */ addiu $a0, $s0, 0x108 -/* ABCE7C 80045CDC 44993000 */ mtc1 $t9, $f6 -/* ABCE80 80045CE0 860500A2 */ lh $a1, 0xa2($s0) -/* ABCE84 80045CE4 87060006 */ lh $a2, 6($t8) -/* ABCE88 80045CE8 468031A0 */ cvt.s.w $f6, $f6 -/* ABCE8C 80045CEC 44073000 */ mfc1 $a3, $f6 -/* ABCE90 80045CF0 0C0115C5 */ jal func_80045714 -/* ABCE94 80045CF4 00000000 */ nop -/* ABCE98 80045CF8 C7A80074 */ lwc1 $f8, 0x74($sp) -/* ABCE9C 80045CFC 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* ABCEA0 80045D00 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* ABCEA4 80045D04 46004281 */ sub.s $f10, $f8, $f0 -/* ABCEA8 80045D08 E7AA0074 */ swc1 $f10, 0x74($sp) -/* ABCEAC 80045D0C C6040098 */ lwc1 $f4, 0x98($s0) -.L80045D10: -/* ABCEB0 80045D10 C6060104 */ lwc1 $f6, 0x104($s0) -/* ABCEB4 80045D14 26080094 */ addiu $t0, $s0, 0x94 -/* ABCEB8 80045D18 46062032 */ c.eq.s $f4, $f6 -/* ABCEBC 80045D1C 00000000 */ nop -/* ABCEC0 80045D20 4503000E */ bc1tl .L80045D5C -/* ABCEC4 80045D24 844C01EA */ lh $t4, 0x1ea($v0) -/* ABCEC8 80045D28 8E030090 */ lw $v1, 0x90($s0) -/* ABCECC 80045D2C 3C018014 */ lui $at, %hi(D_80139DFC) -/* ABCED0 80045D30 C4289DFC */ lwc1 $f8, %lo(D_80139DFC)($at) -/* ABCED4 80045D34 C46A006C */ lwc1 $f10, 0x6c($v1) -/* ABCED8 80045D38 460A403C */ c.lt.s $f8, $f10 -/* ABCEDC 80045D3C 00000000 */ nop -/* ABCEE0 80045D40 45030006 */ bc1tl .L80045D5C -/* ABCEE4 80045D44 844C01EA */ lh $t4, 0x1ea($v0) -/* ABCEE8 80045D48 8C69067C */ lw $t1, 0x67c($v1) -/* ABCEEC 80045D4C 00095280 */ sll $t2, $t1, 0xa -/* ABCEF0 80045D50 05430024 */ bgezl $t2, .L80045DE4 -/* ABCEF4 80045D54 845802EA */ lh $t8, 0x2ea($v0) -/* ABCEF8 80045D58 844C01EA */ lh $t4, 0x1ea($v0) -.L80045D5C: -/* ABCEFC 80045D5C 3C018014 */ lui $at, %hi(D_80139E00) -/* ABCF00 80045D60 C4349E00 */ lwc1 $f20, %lo(D_80139E00)($at) -/* ABCF04 80045D64 448C2000 */ mtc1 $t4, $f4 -/* ABCF08 80045D68 8FAB008C */ lw $t3, 0x8c($sp) -/* ABCF0C 80045D6C C50C0004 */ lwc1 $f12, 4($t0) -/* ABCF10 80045D70 468021A0 */ cvt.s.w $f6, $f4 -/* ABCF14 80045D74 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* ABCF18 80045D78 C56E0000 */ lwc1 $f14, ($t3) -/* ABCF1C 80045D7C AFA8003C */ sw $t0, 0x3c($sp) -/* ABCF20 80045D80 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* ABCF24 80045D84 46143202 */ mul.s $f8, $f6, $f20 -/* ABCF28 80045D88 44064000 */ mfc1 $a2, $f8 -/* ABCF2C 80045D8C 0C010E27 */ jal func_8004389C -/* ABCF30 80045D90 00000000 */ nop -/* ABCF34 80045D94 8FAD008C */ lw $t5, 0x8c($sp) -/* ABCF38 80045D98 3C018014 */ lui $at, %hi(D_80139E04) -/* ABCF3C 80045D9C 27A40070 */ addiu $a0, $sp, 0x70 -/* ABCF40 80045DA0 E5A00000 */ swc1 $f0, ($t5) -/* ABCF44 80045DA4 8FAE003C */ lw $t6, 0x3c($sp) -/* ABCF48 80045DA8 C7A40074 */ lwc1 $f4, 0x74($sp) -/* ABCF4C 80045DAC C4289E04 */ lwc1 $f8, %lo(D_80139E04)($at) -/* ABCF50 80045DB0 C5CA0004 */ lwc1 $f10, 4($t6) -/* ABCF54 80045DB4 260500E4 */ addiu $a1, $s0, 0xe4 -/* ABCF58 80045DB8 46005501 */ sub.s $f20, $f10, $f0 -/* ABCF5C 80045DBC 46142181 */ sub.s $f6, $f4, $f20 -/* ABCF60 80045DC0 E7A60074 */ swc1 $f6, 0x74($sp) -/* ABCF64 80045DC4 8E0700CC */ lw $a3, 0xcc($s0) -/* ABCF68 80045DC8 8E0600D0 */ lw $a2, 0xd0($s0) -/* ABCF6C 80045DCC 0C010E8F */ jal func_80043A3C -/* ABCF70 80045DD0 E7A80010 */ swc1 $f8, 0x10($sp) -/* ABCF74 80045DD4 260F0050 */ addiu $t7, $s0, 0x50 -/* ABCF78 80045DD8 10000096 */ b .L80046034 -/* ABCF7C 80045DDC AFAF0040 */ sw $t7, 0x40($sp) -/* ABCF80 80045DE0 845802EA */ lh $t8, 0x2ea($v0) -.L80045DE4: -/* ABCF84 80045DE4 8FA9008C */ lw $t1, 0x8c($sp) -/* ABCF88 80045DE8 26040050 */ addiu $a0, $s0, 0x50 -/* ABCF8C 80045DEC 17000036 */ bnez $t8, .L80045EC8 -/* ABCF90 80045DF0 2605005C */ addiu $a1, $s0, 0x5c -/* ABCF94 80045DF4 8FB9008C */ lw $t9, 0x8c($sp) -/* ABCF98 80045DF8 C50A0004 */ lwc1 $f10, 4($t0) -/* ABCF9C 80045DFC 26040050 */ addiu $a0, $s0, 0x50 -/* ABCFA0 80045E00 C7240000 */ lwc1 $f4, ($t9) -/* ABCFA4 80045E04 AFA8003C */ sw $t0, 0x3c($sp) -/* ABCFA8 80045E08 AFA40040 */ sw $a0, 0x40($sp) -/* ABCFAC 80045E0C 2605005C */ addiu $a1, $s0, 0x5c -/* ABCFB0 80045E10 0C01F00A */ jal OLib_Vec3fDistXZ -/* ABCFB4 80045E14 46045501 */ sub.s $f20, $f10, $f4 -/* ABCFB8 80045E18 4600A306 */ mov.s $f12, $f20 -/* ABCFBC 80045E1C 46000386 */ mov.s $f14, $f0 -/* ABCFC0 80045E20 0C03F494 */ jal Math_atan2f -/* ABCFC4 80045E24 E7A00054 */ swc1 $f0, 0x54($sp) -/* ABCFC8 80045E28 3C018014 */ lui $at, %hi(D_80139E08) -/* ABCFCC 80045E2C C4329E08 */ lwc1 $f18, %lo(D_80139E08)($at) -/* ABCFD0 80045E30 3C018014 */ lui $at, %hi(D_80139E0C) -/* ABCFD4 80045E34 C4289E0C */ lwc1 $f8, %lo(D_80139E0C)($at) -/* ABCFD8 80045E38 C60600FC */ lwc1 $f6, 0xfc($s0) -/* ABCFDC 80045E3C 46083282 */ mul.s $f10, $f6, $f8 -/* ABCFE0 80045E40 00000000 */ nop -/* ABCFE4 80045E44 46125302 */ mul.s $f12, $f10, $f18 -/* ABCFE8 80045E48 0C03F3A0 */ jal Math_tanf -/* ABCFEC 80045E4C 00000000 */ nop -/* ABCFF0 80045E50 C7B00054 */ lwc1 $f16, 0x54($sp) -/* ABCFF4 80045E54 8FA2008C */ lw $v0, 0x8c($sp) -/* ABCFF8 80045E58 46100082 */ mul.s $f2, $f0, $f16 -/* ABCFFC 80045E5C 4614103C */ c.lt.s $f2, $f20 -/* ABD000 80045E60 00000000 */ nop -/* ABD004 80045E64 45020008 */ bc1fl .L80045E88 -/* ABD008 80045E68 46001007 */ neg.s $f0, $f2 -/* ABD00C 80045E6C 4602A181 */ sub.s $f6, $f20, $f2 -/* ABD010 80045E70 C4440000 */ lwc1 $f4, ($v0) -/* ABD014 80045E74 46001506 */ mov.s $f20, $f2 -/* ABD018 80045E78 46062200 */ add.s $f8, $f4, $f6 -/* ABD01C 80045E7C 1000000C */ b .L80045EB0 -/* ABD020 80045E80 E4480000 */ swc1 $f8, ($v0) -/* ABD024 80045E84 46001007 */ neg.s $f0, $f2 -.L80045E88: -/* ABD028 80045E88 8FA2008C */ lw $v0, 0x8c($sp) -/* ABD02C 80045E8C 4600A03C */ c.lt.s $f20, $f0 -/* ABD030 80045E90 00000000 */ nop -/* ABD034 80045E94 45020007 */ bc1fl .L80045EB4 -/* ABD038 80045E98 C7A80074 */ lwc1 $f8, 0x74($sp) -/* ABD03C 80045E9C 4602A100 */ add.s $f4, $f20, $f2 -/* ABD040 80045EA0 C44A0000 */ lwc1 $f10, ($v0) -/* ABD044 80045EA4 46000506 */ mov.s $f20, $f0 -/* ABD048 80045EA8 46045180 */ add.s $f6, $f10, $f4 -/* ABD04C 80045EAC E4460000 */ swc1 $f6, ($v0) -.L80045EB0: -/* ABD050 80045EB0 C7A80074 */ lwc1 $f8, 0x74($sp) -.L80045EB4: -/* ABD054 80045EB4 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* ABD058 80045EB8 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* ABD05C 80045EBC 46144281 */ sub.s $f10, $f8, $f20 -/* ABD060 80045EC0 10000038 */ b .L80045FA4 -/* ABD064 80045EC4 E7AA0074 */ swc1 $f10, 0x74($sp) -.L80045EC8: -/* ABD068 80045EC8 C5040004 */ lwc1 $f4, 4($t0) -/* ABD06C 80045ECC C5260000 */ lwc1 $f6, ($t1) -/* ABD070 80045ED0 AFA8003C */ sw $t0, 0x3c($sp) -/* ABD074 80045ED4 AFA40040 */ sw $a0, 0x40($sp) -/* ABD078 80045ED8 0C01F00A */ jal OLib_Vec3fDistXZ -/* ABD07C 80045EDC 46062501 */ sub.s $f20, $f4, $f6 -/* ABD080 80045EE0 4600A306 */ mov.s $f12, $f20 -/* ABD084 80045EE4 0C03F494 */ jal Math_atan2f -/* ABD088 80045EE8 46000386 */ mov.s $f14, $f0 -/* ABD08C 80045EEC 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* ABD090 80045EF0 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* ABD094 80045EF4 3C018014 */ lui $at, %hi(D_80139E10) -/* ABD098 80045EF8 C4329E10 */ lwc1 $f18, %lo(D_80139E10)($at) -/* ABD09C 80045EFC 844B01D4 */ lh $t3, 0x1d4($v0) -/* ABD0A0 80045F00 46000086 */ mov.s $f2, $f0 -/* ABD0A4 80045F04 448B4000 */ mtc1 $t3, $f8 -/* ABD0A8 80045F08 00000000 */ nop -/* ABD0AC 80045F0C 468042A0 */ cvt.s.w $f10, $f8 -/* ABD0B0 80045F10 46125382 */ mul.s $f14, $f10, $f18 -/* ABD0B4 80045F14 4600703C */ c.lt.s $f14, $f0 -/* ABD0B8 80045F18 00000000 */ nop -/* ABD0BC 80045F1C 4502000A */ bc1fl .L80045F48 -/* ABD0C0 80045F20 844C01D6 */ lh $t4, 0x1d6($v0) -/* ABD0C4 80045F24 0C0400A4 */ jal sinf -/* ABD0C8 80045F28 460E1301 */ sub.s $f12, $f2, $f14 -/* ABD0CC 80045F2C 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABD0D0 80045F30 44812000 */ mtc1 $at, $f4 -/* ABD0D4 80045F34 3C028016 */ lui $v0, %hi(gGameInfo) -/* ABD0D8 80045F38 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* ABD0DC 80045F3C 10000015 */ b .L80045F94 -/* ABD0E0 80045F40 46002401 */ sub.s $f16, $f4, $f0 -/* ABD0E4 80045F44 844C01D6 */ lh $t4, 0x1d6($v0) -.L80045F48: -/* ABD0E8 80045F48 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABD0EC 80045F4C 448C3000 */ mtc1 $t4, $f6 -/* ABD0F0 80045F50 00000000 */ nop -/* ABD0F4 80045F54 46803220 */ cvt.s.w $f8, $f6 -/* ABD0F8 80045F58 46124382 */ mul.s $f14, $f8, $f18 -/* ABD0FC 80045F5C 460E003C */ c.lt.s $f0, $f14 -/* ABD100 80045F60 00000000 */ nop -/* ABD104 80045F64 4502000A */ bc1fl .L80045F90 -/* ABD108 80045F68 44818000 */ mtc1 $at, $f16 -/* ABD10C 80045F6C 0C0400A4 */ jal sinf -/* ABD110 80045F70 46027301 */ sub.s $f12, $f14, $f2 -/* ABD114 80045F74 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABD118 80045F78 44815000 */ mtc1 $at, $f10 -/* ABD11C 80045F7C 3C028016 */ lui $v0, %hi(gGameInfo) -/* ABD120 80045F80 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* ABD124 80045F84 10000003 */ b .L80045F94 -/* ABD128 80045F88 46005401 */ sub.s $f16, $f10, $f0 -/* ABD12C 80045F8C 44818000 */ mtc1 $at, $f16 -.L80045F90: -/* ABD130 80045F90 00000000 */ nop -.L80045F94: -/* ABD134 80045F94 4610A182 */ mul.s $f6, $f20, $f16 -/* ABD138 80045F98 C7A40074 */ lwc1 $f4, 0x74($sp) -/* ABD13C 80045F9C 46062201 */ sub.s $f8, $f4, $f6 -/* ABD140 80045FA0 E7A80074 */ swc1 $f8, 0x74($sp) -.L80045FA4: -/* ABD144 80045FA4 844D01CE */ lh $t5, 0x1ce($v0) -/* ABD148 80045FA8 844E01D0 */ lh $t6, 0x1d0($v0) -/* ABD14C 80045FAC 3C018014 */ lui $at, %hi(D_80139E14) -/* ABD150 80045FB0 448D5000 */ mtc1 $t5, $f10 -/* ABD154 80045FB4 448E4000 */ mtc1 $t6, $f8 -/* ABD158 80045FB8 C4349E14 */ lwc1 $f20, %lo(D_80139E14)($at) -/* ABD15C 80045FBC 46805120 */ cvt.s.w $f4, $f10 -/* ABD160 80045FC0 3C018014 */ lui $at, %hi(D_80139E18) -/* ABD164 80045FC4 27A40070 */ addiu $a0, $sp, 0x70 -/* ABD168 80045FC8 260500E4 */ addiu $a1, $s0, 0xe4 -/* ABD16C 80045FCC 468042A0 */ cvt.s.w $f10, $f8 -/* ABD170 80045FD0 46142182 */ mul.s $f6, $f4, $f20 -/* ABD174 80045FD4 00000000 */ nop -/* ABD178 80045FD8 46145102 */ mul.s $f4, $f10, $f20 -/* ABD17C 80045FDC 44063000 */ mfc1 $a2, $f6 -/* ABD180 80045FE0 C4269E18 */ lwc1 $f6, %lo(D_80139E18)($at) -/* ABD184 80045FE4 E7A60010 */ swc1 $f6, 0x10($sp) -/* ABD188 80045FE8 44072000 */ mfc1 $a3, $f4 -/* ABD18C 80045FEC 0C010E8F */ jal func_80043A3C -/* ABD190 80045FF0 00000000 */ nop -/* ABD194 80045FF4 3C0F8016 */ lui $t7, %hi(gGameInfo) # $t7, 0x8016 -/* ABD198 80045FF8 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7) -/* ABD19C 80045FFC 3C198016 */ lui $t9, %hi(gGameInfo) # $t9, 0x8016 -/* ABD1A0 80046000 85F801CE */ lh $t8, 0x1ce($t7) -/* ABD1A4 80046004 44984000 */ mtc1 $t8, $f8 -/* ABD1A8 80046008 00000000 */ nop -/* ABD1AC 8004600C 468042A0 */ cvt.s.w $f10, $f8 -/* ABD1B0 80046010 46145102 */ mul.s $f4, $f10, $f20 -/* ABD1B4 80046014 E60400D0 */ swc1 $f4, 0xd0($s0) -/* ABD1B8 80046018 8F39FA90 */ lw $t9, %lo(gGameInfo)($t9) -/* ABD1BC 8004601C 872901D0 */ lh $t1, 0x1d0($t9) -/* ABD1C0 80046020 44893000 */ mtc1 $t1, $f6 -/* ABD1C4 80046024 00000000 */ nop -/* ABD1C8 80046028 46803220 */ cvt.s.w $f8, $f6 -/* ABD1CC 8004602C 46144282 */ mul.s $f10, $f8, $f20 -/* ABD1D0 80046030 E60A00CC */ swc1 $f10, 0xcc($s0) -.L80046034: -/* ABD1D4 80046034 8FAA003C */ lw $t2, 0x3c($sp) -/* ABD1D8 80046038 C60600E4 */ lwc1 $f6, 0xe4($s0) -/* ABD1DC 8004603C 3C018014 */ lui $at, %hi(D_80139E1C) -/* ABD1E0 80046040 C5440000 */ lwc1 $f4, ($t2) -/* ABD1E4 80046044 27A40064 */ addiu $a0, $sp, 0x64 -/* ABD1E8 80046048 8FA50040 */ lw $a1, 0x40($sp) -/* ABD1EC 8004604C 46062200 */ add.s $f8, $f4, $f6 -/* ABD1F0 80046050 E7A80064 */ swc1 $f8, 0x64($sp) -/* ABD1F4 80046054 C60400E8 */ lwc1 $f4, 0xe8($s0) -/* ABD1F8 80046058 C54A0004 */ lwc1 $f10, 4($t2) -/* ABD1FC 8004605C 46045180 */ add.s $f6, $f10, $f4 -/* ABD200 80046060 E7A60068 */ swc1 $f6, 0x68($sp) -/* ABD204 80046064 C60A00EC */ lwc1 $f10, 0xec($s0) -/* ABD208 80046068 C5480008 */ lwc1 $f8, 8($t2) -/* ABD20C 8004606C C4269E1C */ lwc1 $f6, %lo(D_80139E1C)($at) -/* ABD210 80046070 460A4100 */ add.s $f4, $f8, $f10 -/* ABD214 80046074 E7A4006C */ swc1 $f4, 0x6c($sp) -/* ABD218 80046078 C6000100 */ lwc1 $f0, 0x100($s0) -/* ABD21C 8004607C E7A60010 */ swc1 $f6, 0x10($sp) -/* ABD220 80046080 44060000 */ mfc1 $a2, $f0 -/* ABD224 80046084 44070000 */ mfc1 $a3, $f0 -/* ABD228 80046088 0C010E8F */ jal func_80043A3C -/* ABD22C 8004608C 00000000 */ nop -/* ABD230 80046090 8FBF002C */ lw $ra, 0x2c($sp) -/* ABD234 80046094 D7B40020 */ ldc1 $f20, 0x20($sp) -/* ABD238 80046098 8FB00028 */ lw $s0, 0x28($sp) -/* ABD23C 8004609C 27BD0080 */ addiu $sp, $sp, 0x80 -/* ABD240 800460A0 03E00008 */ jr $ra -/* ABD244 800460A4 24020001 */ li $v0, 1 - diff --git a/asm/non_matchings/code/z_camera/func_800460A8.s b/asm/non_matchings/code/z_camera/func_800460A8.s deleted file mode 100644 index 8e11628a6c..0000000000 --- a/asm/non_matchings/code/z_camera/func_800460A8.s +++ /dev/null @@ -1,475 +0,0 @@ -.rdata -glabel D_8013912C - .asciz "%f (%f %f %f) %f\n" - .balign 4 - -.late_rodata -glabel D_80139E20 - .float 0.01 - -glabel D_80139E24 - .float 0.01 - -glabel D_80139E28 - .float 0.01 - -glabel D_80139E2C - .float 0.01 - -glabel D_80139E30 - .float 0.2 - -glabel D_80139E34 - .float -0.1 - -glabel D_80139E38 - .float 0.01 - -glabel D_80139E3C - .float 0.1 - -glabel D_80139E40 - .float 0.017453293 # pi / 180 - -glabel D_80139E44 - .float 0.4 - -glabel D_80139E48 - .float 0.017453293 # pi / 180 - -glabel D_80139E4C - .float 0.01 - -glabel D_80139E50 - .float 0.1 - -glabel D_80139E54 - .float 0.01 - -glabel D_80139E58 - .float 0.2 - -.text -glabel func_800460A8 -/* ABD248 800460A8 27BDFF58 */ addiu $sp, $sp, -0xa8 -/* ABD24C 800460AC AFB00040 */ sw $s0, 0x40($sp) -/* ABD250 800460B0 00808025 */ move $s0, $a0 -/* ABD254 800460B4 AFBF0044 */ sw $ra, 0x44($sp) -/* ABD258 800460B8 F7B40038 */ sdc1 $f20, 0x38($sp) -/* ABD25C 800460BC AFA500AC */ sw $a1, 0xac($sp) -/* ABD260 800460C0 AFA600B0 */ sw $a2, 0xb0($sp) -/* ABD264 800460C4 AFA700B4 */ sw $a3, 0xb4($sp) -/* ABD268 800460C8 0C00B721 */ jal Player_GetCameraYOffset -/* ABD26C 800460CC 8C840090 */ lw $a0, 0x90($a0) -/* ABD270 800460D0 C7A400B4 */ lwc1 $f4, 0xb4($sp) -/* ABD274 800460D4 44801000 */ mtc1 $zero, $f2 -/* ABD278 800460D8 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* ABD27C 800460DC 46040180 */ add.s $f6, $f0, $f4 -/* ABD280 800460E0 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* ABD284 800460E4 E7A20098 */ swc1 $f2, 0x98($sp) -/* ABD288 800460E8 E7A200A0 */ swc1 $f2, 0xa0($sp) -/* ABD28C 800460EC E7A6009C */ swc1 $f6, 0x9c($sp) -/* ABD290 800460F0 844E02EC */ lh $t6, 0x2ec($v0) -/* ABD294 800460F4 87AF00C6 */ lh $t7, 0xc6($sp) -/* ABD298 800460F8 46000506 */ mov.s $f20, $f0 -/* ABD29C 800460FC 11C00010 */ beqz $t6, .L80046140 -/* ABD2A0 80046100 31F80001 */ andi $t8, $t7, 1 -/* ABD2A4 80046104 5300000F */ beql $t8, $zero, .L80046144 -/* ABD2A8 80046108 26020094 */ addiu $v0, $s0, 0x94 -/* ABD2AC 8004610C 844801A6 */ lh $t0, 0x1a6($v0) -/* ABD2B0 80046110 8FB900AC */ lw $t9, 0xac($sp) -/* ABD2B4 80046114 26040108 */ addiu $a0, $s0, 0x108 -/* ABD2B8 80046118 44884000 */ mtc1 $t0, $f8 -/* ABD2BC 8004611C 860500A2 */ lh $a1, 0xa2($s0) -/* ABD2C0 80046120 87260006 */ lh $a2, 6($t9) -/* ABD2C4 80046124 46804220 */ cvt.s.w $f8, $f8 -/* ABD2C8 80046128 44074000 */ mfc1 $a3, $f8 -/* ABD2CC 8004612C 0C0115C5 */ jal func_80045714 -/* ABD2D0 80046130 00000000 */ nop -/* ABD2D4 80046134 C7AA009C */ lwc1 $f10, 0x9c($sp) -/* ABD2D8 80046138 46005101 */ sub.s $f4, $f10, $f0 -/* ABD2DC 8004613C E7A4009C */ swc1 $f4, 0x9c($sp) -.L80046140: -/* ABD2E0 80046140 26020094 */ addiu $v0, $s0, 0x94 -.L80046144: -/* ABD2E4 80046144 8C4A0000 */ lw $t2, ($v0) -/* ABD2E8 80046148 27A5008C */ addiu $a1, $sp, 0x8c -/* ABD2EC 8004614C ACAA0000 */ sw $t2, ($a1) -/* ABD2F0 80046150 8C490004 */ lw $t1, 4($v0) -/* ABD2F4 80046154 ACA90004 */ sw $t1, 4($a1) -/* ABD2F8 80046158 8C4A0008 */ lw $t2, 8($v0) -/* ABD2FC 8004615C ACAA0008 */ sw $t2, 8($a1) -/* ABD300 80046160 C7A60090 */ lwc1 $f6, 0x90($sp) -/* ABD304 80046164 AFA20050 */ sw $v0, 0x50($sp) -/* ABD308 80046168 8FA600B0 */ lw $a2, 0xb0($sp) -/* ABD30C 8004616C 46143200 */ add.s $f8, $f6, $f20 -/* ABD310 80046170 8FA400C0 */ lw $a0, 0xc0($sp) -/* ABD314 80046174 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* ABD318 80046178 E7A80090 */ swc1 $f8, 0x90($sp) -/* ABD31C 8004617C 8FAC00C0 */ lw $t4, 0xc0($sp) -/* ABD320 80046180 27AB0074 */ addiu $t3, $sp, 0x74 -/* ABD324 80046184 3C0F8016 */ lui $t7, %hi(gGameInfo) # $t7, 0x8016 -/* ABD328 80046188 8D8E0000 */ lw $t6, ($t4) -/* ABD32C 8004618C AD6E0000 */ sw $t6, ($t3) -/* ABD330 80046190 8D8D0004 */ lw $t5, 4($t4) -/* ABD334 80046194 AD6D0004 */ sw $t5, 4($t3) -/* ABD338 80046198 C7A40074 */ lwc1 $f4, 0x74($sp) -/* ABD33C 8004619C C7AA00B8 */ lwc1 $f10, 0xb8($sp) -/* ABD340 800461A0 8FB90050 */ lw $t9, 0x50($sp) -/* ABD344 800461A4 4604503C */ c.lt.s $f10, $f4 -/* ABD348 800461A8 00000000 */ nop -/* ABD34C 800461AC 4502000E */ bc1fl .L800461E8 -/* ABD350 800461B0 C72A0004 */ lwc1 $f10, 4($t9) -/* ABD354 800461B4 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7) -/* ABD358 800461B8 3C018014 */ lui $at, %hi(D_80139E20) -/* ABD35C 800461BC C42A9E20 */ lwc1 $f10, %lo(D_80139E20)($at) -/* ABD360 800461C0 85F801E0 */ lh $t8, 0x1e0($t7) -/* ABD364 800461C4 44983000 */ mtc1 $t8, $f6 -/* ABD368 800461C8 00000000 */ nop -/* ABD36C 800461CC 46803220 */ cvt.s.w $f8, $f6 -/* ABD370 800461D0 460A4182 */ mul.s $f6, $f8, $f10 -/* ABD374 800461D4 00000000 */ nop -/* ABD378 800461D8 46043202 */ mul.s $f8, $f6, $f4 -/* ABD37C 800461DC 10000024 */ b .L80046270 -/* ABD380 800461E0 E7A80074 */ swc1 $f8, 0x74($sp) -/* ABD384 800461E4 C72A0004 */ lwc1 $f10, 4($t9) -.L800461E8: -/* ABD388 800461E8 C6060104 */ lwc1 $f6, 0x104($s0) -/* ABD38C 800461EC 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABD390 800461F0 44817000 */ mtc1 $at, $f14 -/* ABD394 800461F4 46065101 */ sub.s $f4, $f10, $f6 -/* ABD398 800461F8 0C01F02A */ jal OLib_ClampMaxDist -/* ABD39C 800461FC 46142303 */ div.s $f12, $f4, $f20 -/* ABD3A0 80046200 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* ABD3A4 80046204 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* ABD3A8 80046208 3C018014 */ lui $at, %hi(D_80139E24) -/* ABD3AC 8004620C C4269E24 */ lwc1 $f6, %lo(D_80139E24)($at) -/* ABD3B0 80046210 844801E2 */ lh $t0, 0x1e2($v0) -/* ABD3B4 80046214 844901E0 */ lh $t1, 0x1e0($v0) -/* ABD3B8 80046218 3C018014 */ lui $at, %hi(D_80139E28) -/* ABD3BC 8004621C 44884000 */ mtc1 $t0, $f8 -/* ABD3C0 80046220 44892000 */ mtc1 $t1, $f4 -/* ABD3C4 80046224 468042A0 */ cvt.s.w $f10, $f8 -/* ABD3C8 80046228 46802220 */ cvt.s.w $f8, $f4 -/* ABD3CC 8004622C 46065082 */ mul.s $f2, $f10, $f6 -/* ABD3D0 80046230 C42A9E28 */ lwc1 $f10, %lo(D_80139E28)($at) -/* ABD3D4 80046234 460A4182 */ mul.s $f6, $f8, $f10 -/* ABD3D8 80046238 C7A80074 */ lwc1 $f8, 0x74($sp) -/* ABD3DC 8004623C 46061101 */ sub.s $f4, $f2, $f6 -/* ABD3E0 80046240 C7A600B8 */ lwc1 $f6, 0xb8($sp) -/* ABD3E4 80046244 46082282 */ mul.s $f10, $f4, $f8 -/* ABD3E8 80046248 46064103 */ div.s $f4, $f8, $f6 -/* ABD3EC 8004624C 46045182 */ mul.s $f6, $f10, $f4 -/* ABD3F0 80046250 00000000 */ nop -/* ABD3F4 80046254 46024282 */ mul.s $f10, $f8, $f2 -/* ABD3F8 80046258 46065101 */ sub.s $f4, $f10, $f6 -/* ABD3FC 8004625C 46002202 */ mul.s $f8, $f4, $f0 -/* ABD400 80046260 E7A40074 */ swc1 $f4, 0x74($sp) -/* ABD404 80046264 46004282 */ mul.s $f10, $f8, $f0 -/* ABD408 80046268 460A2181 */ sub.s $f6, $f4, $f10 -/* ABD40C 8004626C E7A60074 */ swc1 $f6, 0x74($sp) -.L80046270: -/* ABD410 80046270 87A300C6 */ lh $v1, 0xc6($sp) -/* ABD414 80046274 3C018014 */ lui $at, %hi(D_80139E2C) -/* ABD418 80046278 27A40080 */ addiu $a0, $sp, 0x80 -/* ABD41C 8004627C 30630080 */ andi $v1, $v1, 0x80 -/* ABD420 80046280 10600009 */ beqz $v1, .L800462A8 -/* ABD424 80046284 27A50074 */ addiu $a1, $sp, 0x74 -/* ABD428 80046288 C4209E2C */ lwc1 $f0, %lo(D_80139E2C)($at) -/* ABD42C 8004628C 3C018014 */ lui $at, %hi(D_80139E30) -/* ABD430 80046290 C4249E30 */ lwc1 $f4, %lo(D_80139E30)($at) -/* ABD434 80046294 C7A80074 */ lwc1 $f8, 0x74($sp) -/* ABD438 80046298 46044282 */ mul.s $f10, $f8, $f4 -/* ABD43C 8004629C E7AA0074 */ swc1 $f10, 0x74($sp) -/* ABD440 800462A0 E60000CC */ swc1 $f0, 0xcc($s0) -/* ABD444 800462A4 E60000D0 */ swc1 $f0, 0xd0($s0) -.L800462A8: -/* ABD448 800462A8 0C01F097 */ jal OLib_VecSphGeoToVec3f -/* ABD44C 800462AC AFA3004C */ sw $v1, 0x4c($sp) -/* ABD450 800462B0 3C0A8016 */ lui $t2, %hi(gGameInfo) # $t2, 0x8016 -/* ABD454 800462B4 8D4AFA90 */ lw $t2, %lo(gGameInfo)($t2) -/* ABD458 800462B8 8FA3004C */ lw $v1, 0x4c($sp) -/* ABD45C 800462BC C7A60074 */ lwc1 $f6, 0x74($sp) -/* ABD460 800462C0 854B0306 */ lh $t3, 0x306($t2) -/* ABD464 800462C4 C7A800B8 */ lwc1 $f8, 0xb8($sp) -/* ABD468 800462C8 51600017 */ beql $t3, $zero, .L80046328 -/* ABD46C 800462CC C7A60098 */ lwc1 $f6, 0x98($sp) -/* ABD470 800462D0 46083103 */ div.s $f4, $f6, $f8 -/* ABD474 800462D4 C7A60080 */ lwc1 $f6, 0x80($sp) -/* ABD478 800462D8 3C048014 */ lui $a0, %hi(D_8013912C) # $a0, 0x8014 -/* ABD47C 800462DC 2484912C */ addiu $a0, %lo(D_8013912C) # addiu $a0, $a0, -0x6ed4 -/* ABD480 800462E0 46003221 */ cvt.d.s $f8, $f6 -/* ABD484 800462E4 C7A60088 */ lwc1 $f6, 0x88($sp) -/* ABD488 800462E8 F7A80010 */ sdc1 $f8, 0x10($sp) -/* ABD48C 800462EC 46003221 */ cvt.d.s $f8, $f6 -/* ABD490 800462F0 F7A80020 */ sdc1 $f8, 0x20($sp) -/* ABD494 800462F4 460022A1 */ cvt.d.s $f10, $f4 -/* ABD498 800462F8 C7A40084 */ lwc1 $f4, 0x84($sp) -/* ABD49C 800462FC 44075000 */ mfc1 $a3, $f10 -/* ABD4A0 80046300 44065800 */ mfc1 $a2, $f11 -/* ABD4A4 80046304 460022A1 */ cvt.d.s $f10, $f4 -/* ABD4A8 80046308 F7AA0018 */ sdc1 $f10, 0x18($sp) -/* ABD4AC 8004630C C6040100 */ lwc1 $f4, 0x100($s0) -/* ABD4B0 80046310 AFA3004C */ sw $v1, 0x4c($sp) -/* ABD4B4 80046314 460022A1 */ cvt.d.s $f10, $f4 -/* ABD4B8 80046318 0C00084C */ jal osSyncPrintf -/* ABD4BC 8004631C F7AA0028 */ sdc1 $f10, 0x28($sp) -/* ABD4C0 80046320 8FA3004C */ lw $v1, 0x4c($sp) -/* ABD4C4 80046324 C7A60098 */ lwc1 $f6, 0x98($sp) -.L80046328: -/* ABD4C8 80046328 C7A80080 */ lwc1 $f8, 0x80($sp) -/* ABD4CC 8004632C C7AA009C */ lwc1 $f10, 0x9c($sp) -/* ABD4D0 80046330 3C188016 */ lui $t8, %hi(gGameInfo) # $t8, 0x8016 -/* ABD4D4 80046334 46083100 */ add.s $f4, $f6, $f8 -/* ABD4D8 80046338 C7A60084 */ lwc1 $f6, 0x84($sp) -/* ABD4DC 8004633C 46065200 */ add.s $f8, $f10, $f6 -/* ABD4E0 80046340 E7A40098 */ swc1 $f4, 0x98($sp) -/* ABD4E4 80046344 C7A400A0 */ lwc1 $f4, 0xa0($sp) -/* ABD4E8 80046348 C7AA0088 */ lwc1 $f10, 0x88($sp) -/* ABD4EC 8004634C E7A8009C */ swc1 $f8, 0x9c($sp) -/* ABD4F0 80046350 460A2180 */ add.s $f6, $f4, $f10 -/* ABD4F4 80046354 E7A600A0 */ swc1 $f6, 0xa0($sp) -/* ABD4F8 80046358 C6040104 */ lwc1 $f4, 0x104($s0) -/* ABD4FC 8004635C C6080098 */ lwc1 $f8, 0x98($s0) -/* ABD500 80046360 46044032 */ c.eq.s $f8, $f4 -/* ABD504 80046364 00000000 */ nop -/* ABD508 80046368 4501000D */ bc1t .L800463A0 -/* ABD50C 8004636C 00000000 */ nop -/* ABD510 80046370 8E020090 */ lw $v0, 0x90($s0) -/* ABD514 80046374 3C018014 */ lui $at, %hi(D_80139E34) -/* ABD518 80046378 C42A9E34 */ lwc1 $f10, %lo(D_80139E34)($at) -/* ABD51C 8004637C C446006C */ lwc1 $f6, 0x6c($v0) -/* ABD520 80046380 4606503C */ c.lt.s $f10, $f6 -/* ABD524 80046384 00000000 */ nop -/* ABD528 80046388 45010005 */ bc1t .L800463A0 -/* ABD52C 8004638C 00000000 */ nop -/* ABD530 80046390 8C4C067C */ lw $t4, 0x67c($v0) -/* ABD534 80046394 000C6A80 */ sll $t5, $t4, 0xa -/* ABD538 80046398 05A10024 */ bgez $t5, .L8004642C -/* ABD53C 8004639C 00000000 */ nop -.L800463A0: -/* ABD540 800463A0 8F18FA90 */ lw $t8, %lo(gGameInfo)($t8) -/* ABD544 800463A4 3C018014 */ lui $at, %hi(D_80139E38) -/* ABD548 800463A8 C42A9E38 */ lwc1 $f10, %lo(D_80139E38)($at) -/* ABD54C 800463AC 871901EA */ lh $t9, 0x1ea($t8) -/* ABD550 800463B0 8FAE0050 */ lw $t6, 0x50($sp) -/* ABD554 800463B4 8FAF00BC */ lw $t7, 0xbc($sp) -/* ABD558 800463B8 44994000 */ mtc1 $t9, $f8 -/* ABD55C 800463BC 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc -/* ABD560 800463C0 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd -/* ABD564 800463C4 46804120 */ cvt.s.w $f4, $f8 -/* ABD568 800463C8 C5CC0004 */ lwc1 $f12, 4($t6) -/* ABD56C 800463CC C5EE0000 */ lwc1 $f14, ($t7) -/* ABD570 800463D0 460A2182 */ mul.s $f6, $f4, $f10 -/* ABD574 800463D4 44063000 */ mfc1 $a2, $f6 -/* ABD578 800463D8 0C010E27 */ jal func_8004389C -/* ABD57C 800463DC 00000000 */ nop -/* ABD580 800463E0 8FA800BC */ lw $t0, 0xbc($sp) -/* ABD584 800463E4 3C018014 */ lui $at, %hi(D_80139E3C) -/* ABD588 800463E8 27A40098 */ addiu $a0, $sp, 0x98 -/* ABD58C 800463EC E5000000 */ swc1 $f0, ($t0) -/* ABD590 800463F0 8FA90050 */ lw $t1, 0x50($sp) -/* ABD594 800463F4 C7A4009C */ lwc1 $f4, 0x9c($sp) -/* ABD598 800463F8 C4269E3C */ lwc1 $f6, %lo(D_80139E3C)($at) -/* ABD59C 800463FC C5280004 */ lwc1 $f8, 4($t1) -/* ABD5A0 80046400 260500E4 */ addiu $a1, $s0, 0xe4 -/* ABD5A4 80046404 46004501 */ sub.s $f20, $f8, $f0 -/* ABD5A8 80046408 46142281 */ sub.s $f10, $f4, $f20 -/* ABD5AC 8004640C E7AA009C */ swc1 $f10, 0x9c($sp) -/* ABD5B0 80046410 8E0700CC */ lw $a3, 0xcc($s0) -/* ABD5B4 80046414 8E0600D0 */ lw $a2, 0xd0($s0) -/* ABD5B8 80046418 0C010E8F */ jal func_80043A3C -/* ABD5BC 8004641C E7A60010 */ swc1 $f6, 0x10($sp) -/* ABD5C0 80046420 260A0050 */ addiu $t2, $s0, 0x50 -/* ABD5C4 80046424 10000097 */ b .L80046684 -/* ABD5C8 80046428 AFAA0054 */ sw $t2, 0x54($sp) -.L8004642C: -/* ABD5CC 8004642C 14600036 */ bnez $v1, .L80046508 -/* ABD5D0 80046430 8FAD0050 */ lw $t5, 0x50($sp) -/* ABD5D4 80046434 8FAB0050 */ lw $t3, 0x50($sp) -/* ABD5D8 80046438 8FAC00BC */ lw $t4, 0xbc($sp) -/* ABD5DC 8004643C 26040050 */ addiu $a0, $s0, 0x50 -/* ABD5E0 80046440 C5680004 */ lwc1 $f8, 4($t3) -/* ABD5E4 80046444 C5840000 */ lwc1 $f4, ($t4) -/* ABD5E8 80046448 AFA40054 */ sw $a0, 0x54($sp) -/* ABD5EC 8004644C 2605005C */ addiu $a1, $s0, 0x5c -/* ABD5F0 80046450 0C01F00A */ jal OLib_Vec3fDistXZ -/* ABD5F4 80046454 46044501 */ sub.s $f20, $f8, $f4 -/* ABD5F8 80046458 4600A306 */ mov.s $f12, $f20 -/* ABD5FC 8004645C 46000386 */ mov.s $f14, $f0 -/* ABD600 80046460 0C03F494 */ jal Math_atan2f -/* ABD604 80046464 E7A00068 */ swc1 $f0, 0x68($sp) -/* ABD608 80046468 3C018014 */ lui $at, %hi(D_80139E40) -/* ABD60C 8004646C C4329E40 */ lwc1 $f18, %lo(D_80139E40)($at) -/* ABD610 80046470 3C018014 */ lui $at, %hi(D_80139E44) -/* ABD614 80046474 C4269E44 */ lwc1 $f6, %lo(D_80139E44)($at) -/* ABD618 80046478 C60A00FC */ lwc1 $f10, 0xfc($s0) -/* ABD61C 8004647C 46065202 */ mul.s $f8, $f10, $f6 -/* ABD620 80046480 00000000 */ nop -/* ABD624 80046484 46124302 */ mul.s $f12, $f8, $f18 -/* ABD628 80046488 0C03F3A0 */ jal Math_tanf -/* ABD62C 8004648C 00000000 */ nop -/* ABD630 80046490 C7B00068 */ lwc1 $f16, 0x68($sp) -/* ABD634 80046494 8FA200BC */ lw $v0, 0xbc($sp) -/* ABD638 80046498 46100082 */ mul.s $f2, $f0, $f16 -/* ABD63C 8004649C 4614103C */ c.lt.s $f2, $f20 -/* ABD640 800464A0 00000000 */ nop -/* ABD644 800464A4 45020008 */ bc1fl .L800464C8 -/* ABD648 800464A8 46001007 */ neg.s $f0, $f2 -/* ABD64C 800464AC 4602A281 */ sub.s $f10, $f20, $f2 -/* ABD650 800464B0 C4440000 */ lwc1 $f4, ($v0) -/* ABD654 800464B4 46001506 */ mov.s $f20, $f2 -/* ABD658 800464B8 460A2180 */ add.s $f6, $f4, $f10 -/* ABD65C 800464BC 1000000C */ b .L800464F0 -/* ABD660 800464C0 E4460000 */ swc1 $f6, ($v0) -/* ABD664 800464C4 46001007 */ neg.s $f0, $f2 -.L800464C8: -/* ABD668 800464C8 8FA200BC */ lw $v0, 0xbc($sp) -/* ABD66C 800464CC 4600A03C */ c.lt.s $f20, $f0 -/* ABD670 800464D0 00000000 */ nop -/* ABD674 800464D4 45020007 */ bc1fl .L800464F4 -/* ABD678 800464D8 C7A6009C */ lwc1 $f6, 0x9c($sp) -/* ABD67C 800464DC 4602A100 */ add.s $f4, $f20, $f2 -/* ABD680 800464E0 C4480000 */ lwc1 $f8, ($v0) -/* ABD684 800464E4 46000506 */ mov.s $f20, $f0 -/* ABD688 800464E8 46044280 */ add.s $f10, $f8, $f4 -/* ABD68C 800464EC E44A0000 */ swc1 $f10, ($v0) -.L800464F0: -/* ABD690 800464F0 C7A6009C */ lwc1 $f6, 0x9c($sp) -.L800464F4: -/* ABD694 800464F4 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* ABD698 800464F8 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* ABD69C 800464FC 46143201 */ sub.s $f8, $f6, $f20 -/* ABD6A0 80046500 1000003A */ b .L800465EC -/* ABD6A4 80046504 E7A8009C */ swc1 $f8, 0x9c($sp) -.L80046508: -/* ABD6A8 80046508 8FAE00BC */ lw $t6, 0xbc($sp) -/* ABD6AC 8004650C C5A40004 */ lwc1 $f4, 4($t5) -/* ABD6B0 80046510 26040050 */ addiu $a0, $s0, 0x50 -/* ABD6B4 80046514 C5CA0000 */ lwc1 $f10, ($t6) -/* ABD6B8 80046518 AFA40054 */ sw $a0, 0x54($sp) -/* ABD6BC 8004651C 2605005C */ addiu $a1, $s0, 0x5c -/* ABD6C0 80046520 0C01F00A */ jal OLib_Vec3fDistXZ -/* ABD6C4 80046524 460A2501 */ sub.s $f20, $f4, $f10 -/* ABD6C8 80046528 4600A306 */ mov.s $f12, $f20 -/* ABD6CC 8004652C 0C03F494 */ jal Math_atan2f -/* ABD6D0 80046530 46000386 */ mov.s $f14, $f0 -/* ABD6D4 80046534 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* ABD6D8 80046538 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* ABD6DC 8004653C 3C018014 */ lui $at, %hi(D_80139E48) -/* ABD6E0 80046540 C4329E48 */ lwc1 $f18, %lo(D_80139E48)($at) -/* ABD6E4 80046544 845801D4 */ lh $t8, 0x1d4($v0) -/* ABD6E8 80046548 46000086 */ mov.s $f2, $f0 -/* ABD6EC 8004654C 44983000 */ mtc1 $t8, $f6 -/* ABD6F0 80046550 00000000 */ nop -/* ABD6F4 80046554 46803220 */ cvt.s.w $f8, $f6 -/* ABD6F8 80046558 46124382 */ mul.s $f14, $f8, $f18 -/* ABD6FC 8004655C 4600703C */ c.lt.s $f14, $f0 -/* ABD700 80046560 00000000 */ nop -/* ABD704 80046564 4502000A */ bc1fl .L80046590 -/* ABD708 80046568 845901D6 */ lh $t9, 0x1d6($v0) -/* ABD70C 8004656C 0C0400A4 */ jal sinf -/* ABD710 80046570 460E1301 */ sub.s $f12, $f2, $f14 -/* ABD714 80046574 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABD718 80046578 44812000 */ mtc1 $at, $f4 -/* ABD71C 8004657C 3C028016 */ lui $v0, %hi(gGameInfo) -/* ABD720 80046580 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* ABD724 80046584 10000015 */ b .L800465DC -/* ABD728 80046588 46002401 */ sub.s $f16, $f4, $f0 -/* ABD72C 8004658C 845901D6 */ lh $t9, 0x1d6($v0) -.L80046590: -/* ABD730 80046590 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABD734 80046594 44995000 */ mtc1 $t9, $f10 -/* ABD738 80046598 00000000 */ nop -/* ABD73C 8004659C 468051A0 */ cvt.s.w $f6, $f10 -/* ABD740 800465A0 46123382 */ mul.s $f14, $f6, $f18 -/* ABD744 800465A4 460E003C */ c.lt.s $f0, $f14 -/* ABD748 800465A8 00000000 */ nop -/* ABD74C 800465AC 4502000A */ bc1fl .L800465D8 -/* ABD750 800465B0 44818000 */ mtc1 $at, $f16 -/* ABD754 800465B4 0C0400A4 */ jal sinf -/* ABD758 800465B8 46027301 */ sub.s $f12, $f14, $f2 -/* ABD75C 800465BC 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABD760 800465C0 44814000 */ mtc1 $at, $f8 -/* ABD764 800465C4 3C028016 */ lui $v0, %hi(gGameInfo) -/* ABD768 800465C8 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* ABD76C 800465CC 10000003 */ b .L800465DC -/* ABD770 800465D0 46004401 */ sub.s $f16, $f8, $f0 -/* ABD774 800465D4 44818000 */ mtc1 $at, $f16 -.L800465D8: -/* ABD778 800465D8 00000000 */ nop -.L800465DC: -/* ABD77C 800465DC 4610A282 */ mul.s $f10, $f20, $f16 -/* ABD780 800465E0 C7A4009C */ lwc1 $f4, 0x9c($sp) -/* ABD784 800465E4 460A2181 */ sub.s $f6, $f4, $f10 -/* ABD788 800465E8 E7A6009C */ swc1 $f6, 0x9c($sp) -.L800465EC: -/* ABD78C 800465EC 844801CE */ lh $t0, 0x1ce($v0) -/* ABD790 800465F0 844901D0 */ lh $t1, 0x1d0($v0) -/* ABD794 800465F4 3C018014 */ lui $at, %hi(D_80139E4C) -/* ABD798 800465F8 44884000 */ mtc1 $t0, $f8 -/* ABD79C 800465FC 44893000 */ mtc1 $t1, $f6 -/* ABD7A0 80046600 C4209E4C */ lwc1 $f0, %lo(D_80139E4C)($at) -/* ABD7A4 80046604 46804120 */ cvt.s.w $f4, $f8 -/* ABD7A8 80046608 3C018014 */ lui $at, %hi(D_80139E50) -/* ABD7AC 8004660C 27A40098 */ addiu $a0, $sp, 0x98 -/* ABD7B0 80046610 260500E4 */ addiu $a1, $s0, 0xe4 -/* ABD7B4 80046614 46803220 */ cvt.s.w $f8, $f6 -/* ABD7B8 80046618 46002282 */ mul.s $f10, $f4, $f0 -/* ABD7BC 8004661C 00000000 */ nop -/* ABD7C0 80046620 46004102 */ mul.s $f4, $f8, $f0 -/* ABD7C4 80046624 44065000 */ mfc1 $a2, $f10 -/* ABD7C8 80046628 C42A9E50 */ lwc1 $f10, %lo(D_80139E50)($at) -/* ABD7CC 8004662C E7AA0010 */ swc1 $f10, 0x10($sp) -/* ABD7D0 80046630 44072000 */ mfc1 $a3, $f4 -/* ABD7D4 80046634 0C010E8F */ jal func_80043A3C -/* ABD7D8 80046638 00000000 */ nop -/* ABD7DC 8004663C 3C0A8016 */ lui $t2, %hi(gGameInfo) # $t2, 0x8016 -/* ABD7E0 80046640 8D4AFA90 */ lw $t2, %lo(gGameInfo)($t2) -/* ABD7E4 80046644 3C018014 */ lui $at, %hi(D_80139E54) -/* ABD7E8 80046648 C4209E54 */ lwc1 $f0, %lo(D_80139E54)($at) -/* ABD7EC 8004664C 854B01CE */ lh $t3, 0x1ce($t2) -/* ABD7F0 80046650 3C0C8016 */ lui $t4, %hi(gGameInfo) -/* ABD7F4 80046654 448B3000 */ mtc1 $t3, $f6 -/* ABD7F8 80046658 00000000 */ nop -/* ABD7FC 8004665C 46803220 */ cvt.s.w $f8, $f6 -/* ABD800 80046660 46004102 */ mul.s $f4, $f8, $f0 -/* ABD804 80046664 E60400D0 */ swc1 $f4, 0xd0($s0) -/* ABD808 80046668 8D8CFA90 */ lw $t4, %lo(gGameInfo)($t4) -/* ABD80C 8004666C 858D01D0 */ lh $t5, 0x1d0($t4) -/* ABD810 80046670 448D5000 */ mtc1 $t5, $f10 -/* ABD814 80046674 00000000 */ nop -/* ABD818 80046678 468051A0 */ cvt.s.w $f6, $f10 -/* ABD81C 8004667C 46003202 */ mul.s $f8, $f6, $f0 -/* ABD820 80046680 E60800CC */ swc1 $f8, 0xcc($s0) -.L80046684: -/* ABD824 80046684 8FA20050 */ lw $v0, 0x50($sp) -/* ABD828 80046688 C60A00E4 */ lwc1 $f10, 0xe4($s0) -/* ABD82C 8004668C 3C018014 */ lui $at, %hi(D_80139E58) -/* ABD830 80046690 C4440000 */ lwc1 $f4, ($v0) -/* ABD834 80046694 27A4008C */ addiu $a0, $sp, 0x8c -/* ABD838 80046698 8FA50054 */ lw $a1, 0x54($sp) -/* ABD83C 8004669C 460A2180 */ add.s $f6, $f4, $f10 -/* ABD840 800466A0 E7A6008C */ swc1 $f6, 0x8c($sp) -/* ABD844 800466A4 C60400E8 */ lwc1 $f4, 0xe8($s0) -/* ABD848 800466A8 C4480004 */ lwc1 $f8, 4($v0) -/* ABD84C 800466AC 46044280 */ add.s $f10, $f8, $f4 -/* ABD850 800466B0 E7AA0090 */ swc1 $f10, 0x90($sp) -/* ABD854 800466B4 C60800EC */ lwc1 $f8, 0xec($s0) -/* ABD858 800466B8 C4460008 */ lwc1 $f6, 8($v0) -/* ABD85C 800466BC C42A9E58 */ lwc1 $f10, %lo(D_80139E58)($at) -/* ABD860 800466C0 46083100 */ add.s $f4, $f6, $f8 -/* ABD864 800466C4 E7A40094 */ swc1 $f4, 0x94($sp) -/* ABD868 800466C8 C6000100 */ lwc1 $f0, 0x100($s0) -/* ABD86C 800466CC E7AA0010 */ swc1 $f10, 0x10($sp) -/* ABD870 800466D0 44060000 */ mfc1 $a2, $f0 -/* ABD874 800466D4 44070000 */ mfc1 $a3, $f0 -/* ABD878 800466D8 0C010E8F */ jal func_80043A3C -/* ABD87C 800466DC 00000000 */ nop -/* ABD880 800466E0 8FBF0044 */ lw $ra, 0x44($sp) -/* ABD884 800466E4 D7B40038 */ ldc1 $f20, 0x38($sp) -/* ABD888 800466E8 8FB00040 */ lw $s0, 0x40($sp) -/* ABD88C 800466EC 27BD00A8 */ addiu $sp, $sp, 0xa8 -/* ABD890 800466F0 03E00008 */ jr $ra -/* ABD894 800466F4 24020001 */ li $v0, 1 - diff --git a/asm/non_matchings/code/z_camera/func_80046B44.s b/asm/non_matchings/code/z_camera/func_80046B44.s deleted file mode 100644 index 7c62a0911e..0000000000 --- a/asm/non_matchings/code/z_camera/func_80046B44.s +++ /dev/null @@ -1,106 +0,0 @@ -.late_rodata -glabel D_80139E70 - .float 0.8 - -.text -glabel func_80046B44 -/* ABDCE4 80046B44 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* ABDCE8 80046B48 AFA5003C */ sw $a1, 0x3c($sp) -/* ABDCEC 80046B4C 00052C00 */ sll $a1, $a1, 0x10 -/* ABDCF0 80046B50 AFA70044 */ sw $a3, 0x44($sp) -/* ABDCF4 80046B54 00073C00 */ sll $a3, $a3, 0x10 -/* ABDCF8 80046B58 00052C03 */ sra $a1, $a1, 0x10 -/* ABDCFC 80046B5C 00073C03 */ sra $a3, $a3, 0x10 -/* ABDD00 80046B60 AFBF0014 */ sw $ra, 0x14($sp) -/* ABDD04 80046B64 AFA40038 */ sw $a0, 0x38($sp) -/* ABDD08 80046B68 04A00004 */ bltz $a1, .L80046B7C -/* ABDD0C 80046B6C AFA60040 */ sw $a2, 0x40($sp) -/* ABDD10 80046B70 00051C00 */ sll $v1, $a1, 0x10 -/* ABDD14 80046B74 10000004 */ b .L80046B88 -/* ABDD18 80046B78 00031C03 */ sra $v1, $v1, 0x10 -.L80046B7C: -/* ABDD1C 80046B7C 00051823 */ negu $v1, $a1 -/* ABDD20 80046B80 00031C00 */ sll $v1, $v1, 0x10 -/* ABDD24 80046B84 00031C03 */ sra $v1, $v1, 0x10 -.L80046B88: -/* ABDD28 80046B88 18E00014 */ blez $a3, .L80046BDC -/* ABDD2C 80046B8C 00071400 */ sll $v0, $a3, 0x10 -/* ABDD30 80046B90 00072400 */ sll $a0, $a3, 0x10 -/* ABDD34 80046B94 00042403 */ sra $a0, $a0, 0x10 -/* ABDD38 80046B98 A7A30028 */ sh $v1, 0x28($sp) -/* ABDD3C 80046B9C A7A5003E */ sh $a1, 0x3e($sp) -/* ABDD40 80046BA0 0C01DE0D */ jal Math_Coss -/* ABDD44 80046BA4 A7A70046 */ sh $a3, 0x46($sp) -/* ABDD48 80046BA8 87A70046 */ lh $a3, 0x46($sp) -/* ABDD4C 80046BAC 87A30028 */ lh $v1, 0x28($sp) -/* ABDD50 80046BB0 87A5003E */ lh $a1, 0x3e($sp) -/* ABDD54 80046BB4 44872000 */ mtc1 $a3, $f4 -/* ABDD58 80046BB8 00000000 */ nop -/* ABDD5C 80046BBC 468021A0 */ cvt.s.w $f6, $f4 -/* ABDD60 80046BC0 46060202 */ mul.s $f8, $f0, $f6 -/* ABDD64 80046BC4 4600428D */ trunc.w.s $f10, $f8 -/* ABDD68 80046BC8 44025000 */ mfc1 $v0, $f10 -/* ABDD6C 80046BCC 00000000 */ nop -/* ABDD70 80046BD0 00021400 */ sll $v0, $v0, 0x10 -/* ABDD74 80046BD4 10000002 */ b .L80046BE0 -/* ABDD78 80046BD8 00021403 */ sra $v0, $v0, 0x10 -.L80046BDC: -/* ABDD7C 80046BDC 00021403 */ sra $v0, $v0, 0x10 -.L80046BE0: -/* ABDD80 80046BE0 87AF0042 */ lh $t7, 0x42($sp) -/* ABDD84 80046BE4 8FB80038 */ lw $t8, 0x38($sp) -/* ABDD88 80046BE8 3C198016 */ lui $t9, %hi(gGameInfo) -/* ABDD8C 80046BEC 01E22023 */ subu $a0, $t7, $v0 -/* ABDD90 80046BF0 00042400 */ sll $a0, $a0, 0x10 -/* ABDD94 80046BF4 00042403 */ sra $a0, $a0, 0x10 -/* ABDD98 80046BF8 04800003 */ bltz $a0, .L80046C08 -/* ABDD9C 80046BFC 00041023 */ negu $v0, $a0 -/* ABDDA0 80046C00 10000001 */ b .L80046C08 -/* ABDDA4 80046C04 00801025 */ move $v0, $a0 -.L80046C08: -/* ABDDA8 80046C08 0043082A */ slt $at, $v0, $v1 -/* ABDDAC 80046C0C 10200009 */ beqz $at, .L80046C34 -/* ABDDB0 80046C10 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABDDB4 80046C14 44818000 */ mtc1 $at, $f16 -/* ABDDB8 80046C18 C71200C4 */ lwc1 $f18, 0xc4($t8) -/* ABDDBC 80046C1C 3C014040 */ li $at, 0x40400000 # 0.000000 -/* ABDDC0 80046C20 44813000 */ mtc1 $at, $f6 -/* ABDDC4 80046C24 46128103 */ div.s $f4, $f16, $f18 -/* ABDDC8 80046C28 46062082 */ mul.s $f2, $f4, $f6 -/* ABDDCC 80046C2C 1000001B */ b .L80046C9C -/* ABDDD0 80046C30 44061000 */ mfc1 $a2, $f2 -.L80046C34: -/* ABDDD4 80046C34 8F39FA90 */ lw $t9, %lo(gGameInfo)($t9) -/* ABDDD8 80046C38 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABDDDC 80046C3C 44811000 */ mtc1 $at, $f2 -/* ABDDE0 80046C40 8728019E */ lh $t0, 0x19e($t9) -/* ABDDE4 80046C44 44839000 */ mtc1 $v1, $f18 -/* ABDDE8 80046C48 3C018014 */ lui $at, %hi(D_80139E70) -/* ABDDEC 80046C4C 44884000 */ mtc1 $t0, $f8 -/* ABDDF0 80046C50 46809120 */ cvt.s.w $f4, $f18 -/* ABDDF4 80046C54 C42C9E70 */ lwc1 $f12, %lo(D_80139E70)($at) -/* ABDDF8 80046C58 A7A5003E */ sh $a1, 0x3e($sp) -/* ABDDFC 80046C5C AFA4001C */ sw $a0, 0x1c($sp) -/* ABDE00 80046C60 468042A0 */ cvt.s.w $f10, $f8 -/* ABDE04 80046C64 460A1403 */ div.s $f16, $f2, $f10 -/* ABDE08 80046C68 46048002 */ mul.s $f0, $f16, $f4 -/* ABDE0C 80046C6C 0C010DFC */ jal func_800437F0 -/* ABDE10 80046C70 46001381 */ sub.s $f14, $f2, $f0 -/* ABDE14 80046C74 8FA90038 */ lw $t1, 0x38($sp) -/* ABDE18 80046C78 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABDE1C 80046C7C 44813000 */ mtc1 $at, $f6 -/* ABDE20 80046C80 C52800C4 */ lwc1 $f8, 0xc4($t1) -/* ABDE24 80046C84 8FA4001C */ lw $a0, 0x1c($sp) -/* ABDE28 80046C88 87A5003E */ lh $a1, 0x3e($sp) -/* ABDE2C 80046C8C 46083283 */ div.s $f10, $f6, $f8 -/* ABDE30 80046C90 46005082 */ mul.s $f2, $f10, $f0 -/* ABDE34 80046C94 00000000 */ nop -/* ABDE38 80046C98 44061000 */ mfc1 $a2, $f2 -.L80046C9C: -/* ABDE3C 80046C9C 0C010E47 */ jal func_8004391C -/* ABDE40 80046CA0 2407000A */ li $a3, 10 -/* ABDE44 80046CA4 8FBF0014 */ lw $ra, 0x14($sp) -/* ABDE48 80046CA8 27BD0038 */ addiu $sp, $sp, 0x38 -/* ABDE4C 80046CAC 03E00008 */ jr $ra -/* ABDE50 80046CB0 00000000 */ nop - diff --git a/asm/non_matchings/code/z_camera/func_80046CB4.s b/asm/non_matchings/code/z_camera/func_80046CB4.s deleted file mode 100644 index 77eb8e9ec0..0000000000 --- a/asm/non_matchings/code/z_camera/func_80046CB4.s +++ /dev/null @@ -1,107 +0,0 @@ -.late_rodata -glabel D_80139E74 - .float 0.001 - -glabel D_80139E78 - .float 0.00003051851 # (1.0f / 32767.0f) - -glabel D_80139E7C - .float 0.01 - -.text -glabel func_80046CB4 -/* ABDE54 80046CB4 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* ABDE58 80046CB8 AFBF0014 */ sw $ra, 0x14($sp) -/* ABDE5C 80046CBC AFA40038 */ sw $a0, 0x38($sp) -/* ABDE60 80046CC0 AFA5003C */ sw $a1, 0x3c($sp) -/* ABDE64 80046CC4 AFA60040 */ sw $a2, 0x40($sp) -/* ABDE68 80046CC8 3C018014 */ lui $at, %hi(D_80139E74) -/* ABDE6C 80046CCC C4249E74 */ lwc1 $f4, %lo(D_80139E74)($at) -/* ABDE70 80046CD0 C48600D8 */ lwc1 $f6, 0xd8($a0) -/* ABDE74 80046CD4 00063400 */ sll $a2, $a2, 0x10 -/* ABDE78 80046CD8 00052C00 */ sll $a1, $a1, 0x10 -/* ABDE7C 80046CDC 4606203C */ c.lt.s $f4, $f6 -/* ABDE80 80046CE0 44876000 */ mtc1 $a3, $f12 -/* ABDE84 80046CE4 00052C03 */ sra $a1, $a1, 0x10 -/* ABDE88 80046CE8 00063403 */ sra $a2, $a2, 0x10 -/* ABDE8C 80046CEC 4500000F */ bc1f .L80046D2C -/* ABDE90 80046CF0 3C0B8016 */ lui $t3, %hi(gGameInfo) -/* ABDE94 80046CF4 24B98001 */ addiu $t9, $a1, -0x7fff -/* ABDE98 80046CF8 00D91823 */ subu $v1, $a2, $t9 -/* ABDE9C 80046CFC 00031C00 */ sll $v1, $v1, 0x10 -/* ABDEA0 80046D00 00031C03 */ sra $v1, $v1, 0x10 -/* ABDEA4 80046D04 24688001 */ addiu $t0, $v1, -0x7fff -/* ABDEA8 80046D08 00084C00 */ sll $t1, $t0, 0x10 -/* ABDEAC 80046D0C 00095403 */ sra $t2, $t1, 0x10 -/* ABDEB0 80046D10 448A4000 */ mtc1 $t2, $f8 -/* ABDEB4 80046D14 3C018014 */ lui $at, %hi(D_80139E78) -/* ABDEB8 80046D18 C4329E78 */ lwc1 $f18, %lo(D_80139E78)($at) -/* ABDEBC 80046D1C 468042A0 */ cvt.s.w $f10, $f8 -/* ABDEC0 80046D20 46125382 */ mul.s $f14, $f10, $f18 -/* ABDEC4 80046D24 1000000E */ b .L80046D60 -/* ABDEC8 80046D28 AFA3001C */ sw $v1, 0x1c($sp) -.L80046D2C: -/* ABDECC 80046D2C 8D6BFA90 */ lw $t3, %lo(gGameInfo)($t3) -/* ABDED0 80046D30 3C018014 */ lui $at, %hi(D_80139E7C) -/* ABDED4 80046D34 C4289E7C */ lwc1 $f8, %lo(D_80139E7C)($at) -/* ABDED8 80046D38 856C01F4 */ lh $t4, 0x1f4($t3) -/* ABDEDC 80046D3C 24AF8001 */ addiu $t7, $a1, -0x7fff -/* ABDEE0 80046D40 00CF1823 */ subu $v1, $a2, $t7 -/* ABDEE4 80046D44 448C2000 */ mtc1 $t4, $f4 -/* ABDEE8 80046D48 00031C00 */ sll $v1, $v1, 0x10 -/* ABDEEC 80046D4C 00031C03 */ sra $v1, $v1, 0x10 -/* ABDEF0 80046D50 468021A0 */ cvt.s.w $f6, $f4 -/* ABDEF4 80046D54 46083382 */ mul.s $f14, $f6, $f8 -/* ABDEF8 80046D58 00000000 */ nop -/* ABDEFC 80046D5C AFA3001C */ sw $v1, 0x1c($sp) -.L80046D60: -/* ABDF00 80046D60 0C010DFC */ jal func_800437F0 -/* ABDF04 80046D64 A7A5003E */ sh $a1, 0x3e($sp) -/* ABDF08 80046D68 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABDF0C 80046D6C 44815000 */ mtc1 $at, $f10 -/* ABDF10 80046D70 C7A40048 */ lwc1 $f4, 0x48($sp) -/* ABDF14 80046D74 44806000 */ mtc1 $zero, $f12 -/* ABDF18 80046D78 46005481 */ sub.s $f18, $f10, $f0 -/* ABDF1C 80046D7C 8FA3001C */ lw $v1, 0x1c($sp) -/* ABDF20 80046D80 87A5003E */ lh $a1, 0x3e($sp) -/* ABDF24 80046D84 8FB80038 */ lw $t8, 0x38($sp) -/* ABDF28 80046D88 46049182 */ mul.s $f6, $f18, $f4 -/* ABDF2C 80046D8C 46003400 */ add.s $f16, $f6, $f0 -/* ABDF30 80046D90 460C803C */ c.lt.s $f16, $f12 -/* ABDF34 80046D94 00000000 */ nop -/* ABDF38 80046D98 45020003 */ bc1fl .L80046DA8 -/* ABDF3C 80046D9C 3C013F00 */ lui $at, 0x3f00 -/* ABDF40 80046DA0 46006406 */ mov.s $f16, $f12 -/* ABDF44 80046DA4 3C013F00 */ li $at, 0x3F000000 # 0.000000 -.L80046DA8: -/* ABDF48 80046DA8 C70E00E0 */ lwc1 $f14, 0xe0($t8) -/* ABDF4C 80046DAC 44816000 */ mtc1 $at, $f12 -/* ABDF50 80046DB0 E7B00034 */ swc1 $f16, 0x34($sp) -/* ABDF54 80046DB4 A7A5003E */ sh $a1, 0x3e($sp) -/* ABDF58 80046DB8 0C010DFC */ jal func_800437F0 -/* ABDF5C 80046DBC AFA3001C */ sw $v1, 0x1c($sp) -/* ABDF60 80046DC0 8FB90038 */ lw $t9, 0x38($sp) -/* ABDF64 80046DC4 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABDF68 80046DC8 8FA3001C */ lw $v1, 0x1c($sp) -/* ABDF6C 80046DCC 44814000 */ mtc1 $at, $f8 -/* ABDF70 80046DD0 C72A00C8 */ lwc1 $f10, 0xc8($t9) -/* ABDF74 80046DD4 44839000 */ mtc1 $v1, $f18 -/* ABDF78 80046DD8 C7B00034 */ lwc1 $f16, 0x34($sp) -/* ABDF7C 80046DDC 460A4083 */ div.s $f2, $f8, $f10 -/* ABDF80 80046DE0 87A5003E */ lh $a1, 0x3e($sp) -/* ABDF84 80046DE4 8FBF0014 */ lw $ra, 0x14($sp) -/* ABDF88 80046DE8 27BD0038 */ addiu $sp, $sp, 0x38 -/* ABDF8C 80046DEC 46809120 */ cvt.s.w $f4, $f18 -/* ABDF90 80046DF0 46102182 */ mul.s $f6, $f4, $f16 -/* ABDF94 80046DF4 00000000 */ nop -/* ABDF98 80046DF8 46003202 */ mul.s $f8, $f6, $f0 -/* ABDF9C 80046DFC 00000000 */ nop -/* ABDFA0 80046E00 46024282 */ mul.s $f10, $f8, $f2 -/* ABDFA4 80046E04 4600548D */ trunc.w.s $f18, $f10 -/* ABDFA8 80046E08 440B9000 */ mfc1 $t3, $f18 -/* ABDFAC 80046E0C 00000000 */ nop -/* ABDFB0 80046E10 00AB1021 */ addu $v0, $a1, $t3 -/* ABDFB4 80046E14 00021400 */ sll $v0, $v0, 0x10 -/* ABDFB8 80046E18 03E00008 */ jr $ra -/* ABDFBC 80046E1C 00021403 */ sra $v0, $v0, 0x10 - diff --git a/asm/non_matchings/code/z_camera/func_80046E20.s b/asm/non_matchings/code/z_camera/func_80046E20.s deleted file mode 100644 index 3476cfe82f..0000000000 --- a/asm/non_matchings/code/z_camera/func_80046E20.s +++ /dev/null @@ -1,377 +0,0 @@ -.late_rodata -glabel D_80139E80 - .float 0.01 - -glabel D_80139E84 - .float 16380 - -glabel D_80139E88 - .float 0.01 - -.text -glabel func_80046E20 -/* ABDFC0 80046E20 27BDFF90 */ addiu $sp, $sp, -0x70 -/* ABDFC4 80046E24 AFB10024 */ sw $s1, 0x24($sp) -/* ABDFC8 80046E28 8FB10084 */ lw $s1, 0x84($sp) -/* ABDFCC 80046E2C AFBF002C */ sw $ra, 0x2c($sp) -/* ABDFD0 80046E30 AFB20028 */ sw $s2, 0x28($sp) -/* ABDFD4 80046E34 AFB00020 */ sw $s0, 0x20($sp) -/* ABDFD8 80046E38 AFA50074 */ sw $a1, 0x74($sp) -/* ABDFDC 80046E3C AFA60078 */ sw $a2, 0x78($sp) -/* ABDFE0 80046E40 AFA7007C */ sw $a3, 0x7c($sp) -/* ABDFE4 80046E44 86220018 */ lh $v0, 0x18($s1) -/* ABDFE8 80046E48 3C108016 */ lui $s0, %hi(D_8015CEA8) # $s0, 0x8016 -/* ABDFEC 80046E4C 2610CEA8 */ addiu $s0, %lo(D_8015CEA8) # addiu $s0, $s0, -0x3158 -/* ABDFF0 80046E50 3C068016 */ lui $a2, %hi(D_8015CE80) # $a2, 0x8016 -/* ABDFF4 80046E54 2C420001 */ sltiu $v0, $v0, 1 -/* ABDFF8 80046E58 00809025 */ move $s2, $a0 -/* ABDFFC 80046E5C AFA20010 */ sw $v0, 0x10($sp) -/* ABE000 80046E60 24C6CE80 */ addiu $a2, %lo(D_8015CE80) # addiu $a2, $a2, -0x3180 -/* ABE004 80046E64 0C011542 */ jal func_80045508 -/* ABE008 80046E68 02003825 */ move $a3, $s0 -/* ABE00C 80046E6C 24010001 */ li $at, 1 -/* ABE010 80046E70 1041000A */ beq $v0, $at, .L80046E9C -/* ABE014 80046E74 02202025 */ move $a0, $s1 -/* ABE018 80046E78 24010002 */ li $at, 2 -/* ABE01C 80046E7C 10410007 */ beq $v0, $at, .L80046E9C -/* ABE020 80046E80 24010003 */ li $at, 3 -/* ABE024 80046E84 104100BC */ beq $v0, $at, .L80047178 -/* ABE028 80046E88 24010006 */ li $at, 6 -/* ABE02C 80046E8C 504100BB */ beql $v0, $at, .L8004717C -/* ABE030 80046E90 862D0018 */ lh $t5, 0x18($s1) -/* ABE034 80046E94 10000116 */ b .L800472F0 -/* ABE038 80046E98 3C0E8016 */ lui $t6, %hi(gGameInfo) -.L80046E9C: -/* ABE03C 80046E9C 26450050 */ addiu $a1, $s2, 0x50 -/* ABE040 80046EA0 26460074 */ addiu $a2, $s2, 0x74 -/* ABE044 80046EA4 3C078016 */ lui $a3, %hi(D_8015CE80) # $a3, 0x8016 -/* ABE048 80046EA8 24E7CE80 */ addiu $a3, %lo(D_8015CE80) # addiu $a3, $a3, -0x3180 -/* ABE04C 80046EAC AFA60030 */ sw $a2, 0x30($sp) -/* ABE050 80046EB0 AFA50034 */ sw $a1, 0x34($sp) -/* ABE054 80046EB4 0C011517 */ jal func_8004545C -/* ABE058 80046EB8 AFB00010 */ sw $s0, 0x10($sp) -/* ABE05C 80046EBC 3C018016 */ lui $at, %hi(D_8015CE8C) -/* ABE060 80046EC0 C424CE8C */ lwc1 $f4, %lo(D_8015CE8C)($at) -/* ABE064 80046EC4 3C018016 */ lui $at, %hi(D_8015CEB4) -/* ABE068 80046EC8 C426CEB4 */ lwc1 $f6, %lo(D_8015CEB4)($at) -/* ABE06C 80046ECC C62A0000 */ lwc1 $f10, ($s1) -/* ABE070 80046ED0 3C018016 */ lui $at, %hi(D_8015CE90) -/* ABE074 80046ED4 46062200 */ add.s $f8, $f4, $f6 -/* ABE078 80046ED8 C432CE90 */ lwc1 $f18, %lo(D_8015CE90)($at) -/* ABE07C 80046EDC 3C018016 */ lui $at, %hi(D_8015CEB8) -/* ABE080 80046EE0 C424CEB8 */ lwc1 $f4, %lo(D_8015CEB8)($at) -/* ABE084 80046EE4 46085400 */ add.s $f16, $f10, $f8 -/* ABE088 80046EE8 3C018016 */ lui $at, %hi(D_8015CE94) -/* ABE08C 80046EEC 3C058016 */ lui $a1, %hi(D_8015CE80) # $a1, 0x8016 -/* ABE090 80046EF0 46049180 */ add.s $f6, $f18, $f4 -/* ABE094 80046EF4 E7B00058 */ swc1 $f16, 0x58($sp) -/* ABE098 80046EF8 C62A0004 */ lwc1 $f10, 4($s1) -/* ABE09C 80046EFC C430CE94 */ lwc1 $f16, %lo(D_8015CE94)($at) -/* ABE0A0 80046F00 3C018016 */ lui $at, %hi(D_8015CEBC) -/* ABE0A4 80046F04 46065200 */ add.s $f8, $f10, $f6 -/* ABE0A8 80046F08 C432CEBC */ lwc1 $f18, %lo(D_8015CEBC)($at) -/* ABE0AC 80046F0C 24A5CE80 */ addiu $a1, %lo(D_8015CE80) # addiu $a1, $a1, -0x3180 -/* ABE0B0 80046F10 8FA40034 */ lw $a0, 0x34($sp) -/* ABE0B4 80046F14 46128100 */ add.s $f4, $f16, $f18 -/* ABE0B8 80046F18 E7A8005C */ swc1 $f8, 0x5c($sp) -/* ABE0BC 80046F1C C62A0008 */ lwc1 $f10, 8($s1) -/* ABE0C0 80046F20 46045180 */ add.s $f6, $f10, $f4 -/* ABE0C4 80046F24 0C01EFE4 */ jal OLib_Vec3fDist -/* ABE0C8 80046F28 E7A60060 */ swc1 $f6, 0x60($sp) -/* ABE0CC 80046F2C C7A20078 */ lwc1 $f2, 0x78($sp) -/* ABE0D0 80046F30 3C013F80 */ lui $at, 0x3f80 -/* ABE0D4 80046F34 8FAE0080 */ lw $t6, 0x80($sp) -/* ABE0D8 80046F38 4600103C */ c.lt.s $f2, $f0 -/* ABE0DC 80046F3C 3C188016 */ lui $t8, %hi(gGameInfo) -/* ABE0E0 80046F40 45020005 */ bc1fl .L80046F58 -/* ABE0E4 80046F44 46020403 */ div.s $f16, $f0, $f2 -/* ABE0E8 80046F48 44814000 */ mtc1 $at, $f8 -/* ABE0EC 80046F4C 10000004 */ b .L80046F60 -/* ABE0F0 80046F50 E5C80000 */ swc1 $f8, ($t6) -/* ABE0F4 80046F54 46020403 */ div.s $f16, $f0, $f2 -.L80046F58: -/* ABE0F8 80046F58 8FAF0080 */ lw $t7, 0x80($sp) -/* ABE0FC 80046F5C E5F00000 */ swc1 $f16, ($t7) -.L80046F60: -/* ABE100 80046F60 8F18FA90 */ lw $t8, %lo(gGameInfo)($t8) -/* ABE104 80046F64 3C018014 */ lui $at, %hi(D_80139E80) -/* ABE108 80046F68 C4249E80 */ lwc1 $f4, %lo(D_80139E80)($at) -/* ABE10C 80046F6C 871901A8 */ lh $t9, 0x1a8($t8) -/* ABE110 80046F70 24080001 */ li $t0, 1 -/* ABE114 80046F74 A6280018 */ sh $t0, 0x18($s1) -/* ABE118 80046F78 44999000 */ mtc1 $t9, $f18 -/* ABE11C 80046F7C 3C098016 */ lui $t1, %hi(D_8015CEC0) # $t1, 0x8016 -/* ABE120 80046F80 27A40048 */ addiu $a0, $sp, 0x48 -/* ABE124 80046F84 468092A0 */ cvt.s.w $f10, $f18 -/* ABE128 80046F88 27A60058 */ addiu $a2, $sp, 0x58 -/* ABE12C 80046F8C 46045182 */ mul.s $f6, $f10, $f4 -/* ABE130 80046F90 E6260010 */ swc1 $f6, 0x10($s1) -/* ABE134 80046F94 8D29CEC0 */ lw $t1, %lo(D_8015CEC0)($t1) -/* ABE138 80046F98 AE29000C */ sw $t1, 0xc($s1) -/* ABE13C 80046F9C 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* ABE140 80046FA0 8FA50034 */ lw $a1, 0x34($sp) -/* ABE144 80046FA4 8FAA0074 */ lw $t2, 0x74($sp) -/* ABE148 80046FA8 2650005C */ addiu $s0, $s2, 0x5c -/* ABE14C 80046FAC 02002025 */ move $a0, $s0 -/* ABE150 80046FB0 C5480000 */ lwc1 $f8, ($t2) -/* ABE154 80046FB4 8FA50034 */ lw $a1, 0x34($sp) -/* ABE158 80046FB8 27A60048 */ addiu $a2, $sp, 0x48 -/* ABE15C 80046FBC 0C010F0A */ jal func_80043C28 -/* ABE160 80046FC0 E7A80048 */ swc1 $f8, 0x48($sp) -/* ABE164 80046FC4 8E0C0000 */ lw $t4, ($s0) -/* ABE168 80046FC8 3C068016 */ lui $a2, %hi(D_8015CED0) # $a2, 0x8016 -/* ABE16C 80046FCC 24C6CED0 */ addiu $a2, %lo(D_8015CED0) # addiu $a2, $a2, -0x3130 -/* ABE170 80046FD0 ACCC0000 */ sw $t4, ($a2) -/* ABE174 80046FD4 8E0B0004 */ lw $t3, 4($s0) -/* ABE178 80046FD8 02402025 */ move $a0, $s2 -/* ABE17C 80046FDC 8FA50034 */ lw $a1, 0x34($sp) -/* ABE180 80046FE0 ACCB0004 */ sw $t3, 4($a2) -/* ABE184 80046FE4 8E0C0008 */ lw $t4, 8($s0) -/* ABE188 80046FE8 0C010F46 */ jal func_80043D18 -/* ABE18C 80046FEC ACCC0008 */ sw $t4, 8($a2) -/* ABE190 80046FF0 3C068016 */ lui $a2, %hi(D_8015CED0) # $a2, 0x8016 -/* ABE194 80046FF4 1440004B */ bnez $v0, .L80047124 -/* ABE198 80046FF8 24C6CED0 */ addiu $a2, %lo(D_8015CED0) # addiu $a2, $a2, -0x3130 -/* ABE19C 80046FFC 8FA20074 */ lw $v0, 0x74($sp) -/* ABE1A0 80047000 87AE004E */ lh $t6, 0x4e($sp) -/* ABE1A4 80047004 87AB004C */ lh $t3, 0x4c($sp) -/* ABE1A8 80047008 844D0006 */ lh $t5, 6($v0) -/* ABE1AC 8004700C 02002025 */ move $a0, $s0 -/* ABE1B0 80047010 8FA50034 */ lw $a1, 0x34($sp) -/* ABE1B4 80047014 01AE7823 */ subu $t7, $t5, $t6 -/* ABE1B8 80047018 000FC400 */ sll $t8, $t7, 0x10 -/* ABE1BC 8004701C 0018CC03 */ sra $t9, $t8, 0x10 -/* ABE1C0 80047020 00194043 */ sra $t0, $t9, 1 -/* ABE1C4 80047024 01C84821 */ addu $t1, $t6, $t0 -/* ABE1C8 80047028 A7A9004E */ sh $t1, 0x4e($sp) -/* ABE1CC 8004702C 844A0004 */ lh $t2, 4($v0) -/* ABE1D0 80047030 27A60048 */ addiu $a2, $sp, 0x48 -/* ABE1D4 80047034 014B6023 */ subu $t4, $t2, $t3 -/* ABE1D8 80047038 000C6C00 */ sll $t5, $t4, 0x10 -/* ABE1DC 8004703C 000D7C03 */ sra $t7, $t5, 0x10 -/* ABE1E0 80047040 000FC043 */ sra $t8, $t7, 1 -/* ABE1E4 80047044 0178C821 */ addu $t9, $t3, $t8 -/* ABE1E8 80047048 0C010F0A */ jal func_80043C28 -/* ABE1EC 8004704C A7B9004C */ sh $t9, 0x4c($sp) -/* ABE1F0 80047050 3C0E8016 */ lui $t6, %hi(D_8015CEA0) # $t6, 0x8016 -/* ABE1F4 80047054 85CECEA0 */ lh $t6, %lo(D_8015CEA0)($t6) -/* ABE1F8 80047058 87A8004E */ lh $t0, 0x4e($sp) -/* ABE1FC 8004705C 8FAA0074 */ lw $t2, 0x74($sp) -/* ABE200 80047060 29C12AA8 */ slti $at, $t6, 0x2aa8 -/* ABE204 80047064 50200006 */ beql $at, $zero, .L80047080 -/* ABE208 80047068 854C0006 */ lh $t4, 6($t2) -/* ABE20C 8004706C A6280016 */ sh $t0, 0x16($s1) -/* ABE210 80047070 87A9004C */ lh $t1, 0x4c($sp) -/* ABE214 80047074 10000006 */ b .L80047090 -/* ABE218 80047078 A6290014 */ sh $t1, 0x14($s1) -/* ABE21C 8004707C 854C0006 */ lh $t4, 6($t2) -.L80047080: -/* ABE220 80047080 A62C0016 */ sh $t4, 0x16($s1) -/* ABE224 80047084 8FAD0074 */ lw $t5, 0x74($sp) -/* ABE228 80047088 85AF0004 */ lh $t7, 4($t5) -/* ABE22C 8004708C A62F0014 */ sh $t7, 0x14($s1) -.L80047090: -/* ABE230 80047090 3C018016 */ lui $at, %hi(D_8015CE8C) -/* ABE234 80047094 C430CE8C */ lwc1 $f16, %lo(D_8015CE8C)($at) -/* ABE238 80047098 3C018016 */ lui $at, %hi(D_8015CEB4) -/* ABE23C 8004709C C432CEB4 */ lwc1 $f18, %lo(D_8015CEB4)($at) -/* ABE240 800470A0 C6240000 */ lwc1 $f4, ($s1) -/* ABE244 800470A4 3C018016 */ lui $at, %hi(D_8015CE90) -/* ABE248 800470A8 46128280 */ add.s $f10, $f16, $f18 -/* ABE24C 800470AC C428CE90 */ lwc1 $f8, %lo(D_8015CE90)($at) -/* ABE250 800470B0 3C018016 */ lui $at, %hi(D_8015CEB8) -/* ABE254 800470B4 C430CEB8 */ lwc1 $f16, %lo(D_8015CEB8)($at) -/* ABE258 800470B8 460A2181 */ sub.s $f6, $f4, $f10 -/* ABE25C 800470BC 3C018016 */ lui $at, %hi(D_8015CE94) -/* ABE260 800470C0 27A40048 */ addiu $a0, $sp, 0x48 -/* ABE264 800470C4 46104480 */ add.s $f18, $f8, $f16 -/* ABE268 800470C8 E7A60058 */ swc1 $f6, 0x58($sp) -/* ABE26C 800470CC C6240004 */ lwc1 $f4, 4($s1) -/* ABE270 800470D0 C426CE94 */ lwc1 $f6, %lo(D_8015CE94)($at) -/* ABE274 800470D4 3C018016 */ lui $at, %hi(D_8015CEBC) -/* ABE278 800470D8 46122281 */ sub.s $f10, $f4, $f18 -/* ABE27C 800470DC C428CEBC */ lwc1 $f8, %lo(D_8015CEBC)($at) -/* ABE280 800470E0 8FA50034 */ lw $a1, 0x34($sp) -/* ABE284 800470E4 27A60058 */ addiu $a2, $sp, 0x58 -/* ABE288 800470E8 46083400 */ add.s $f16, $f6, $f8 -/* ABE28C 800470EC E7AA005C */ swc1 $f10, 0x5c($sp) -/* ABE290 800470F0 C6240008 */ lwc1 $f4, 8($s1) -/* ABE294 800470F4 46102481 */ sub.s $f18, $f4, $f16 -/* ABE298 800470F8 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* ABE29C 800470FC E7B20060 */ swc1 $f18, 0x60($sp) -/* ABE2A0 80047100 8FAB0074 */ lw $t3, 0x74($sp) -/* ABE2A4 80047104 8FA40030 */ lw $a0, 0x30($sp) -/* ABE2A8 80047108 8FA50034 */ lw $a1, 0x34($sp) -/* ABE2AC 8004710C C56A0000 */ lwc1 $f10, ($t3) -/* ABE2B0 80047110 27A60048 */ addiu $a2, $sp, 0x48 -/* ABE2B4 80047114 0C010F0A */ jal func_80043C28 -/* ABE2B8 80047118 E7AA0048 */ swc1 $f10, 0x48($sp) -/* ABE2BC 8004711C 10000098 */ b .L80047380 -/* ABE2C0 80047120 8FBF002C */ lw $ra, 0x2c($sp) -.L80047124: -/* ABE2C4 80047124 8CD90000 */ lw $t9, ($a2) -/* ABE2C8 80047128 3C0E8016 */ lui $t6, %hi(D_8015CE80) # $t6, 0x8016 -/* ABE2CC 8004712C 25CECE80 */ addiu $t6, %lo(D_8015CE80) # addiu $t6, $t6, -0x3180 -/* ABE2D0 80047130 AE190000 */ sw $t9, ($s0) -/* ABE2D4 80047134 8CD80004 */ lw $t8, 4($a2) -/* ABE2D8 80047138 00C05025 */ move $t2, $a2 -/* ABE2DC 8004713C 24CC0024 */ addiu $t4, $a2, 0x24 -/* ABE2E0 80047140 AE180004 */ sw $t8, 4($s0) -/* ABE2E4 80047144 8CD90008 */ lw $t9, 8($a2) -/* ABE2E8 80047148 AE190008 */ sw $t9, 8($s0) -.L8004714C: -/* ABE2EC 8004714C 8D490000 */ lw $t1, ($t2) -/* ABE2F0 80047150 254A000C */ addiu $t2, $t2, 0xc -/* ABE2F4 80047154 25CE000C */ addiu $t6, $t6, 0xc -/* ABE2F8 80047158 ADC9FFF4 */ sw $t1, -0xc($t6) -/* ABE2FC 8004715C 8D48FFF8 */ lw $t0, -8($t2) -/* ABE300 80047160 ADC8FFF8 */ sw $t0, -8($t6) -/* ABE304 80047164 8D49FFFC */ lw $t1, -4($t2) -/* ABE308 80047168 154CFFF8 */ bne $t2, $t4, .L8004714C -/* ABE30C 8004716C ADC9FFFC */ sw $t1, -4($t6) -/* ABE310 80047170 8D490000 */ lw $t1, ($t2) -/* ABE314 80047174 ADC90000 */ sw $t1, ($t6) -.L80047178: -/* ABE318 80047178 862D0018 */ lh $t5, 0x18($s1) -.L8004717C: -/* ABE31C 8004717C 2650005C */ addiu $s0, $s2, 0x5c -/* ABE320 80047180 26440050 */ addiu $a0, $s2, 0x50 -/* ABE324 80047184 11A0000C */ beqz $t5, .L800471B8 -/* ABE328 80047188 3C058016 */ lui $a1, %hi(D_8015CE80) # $a1, 0x8016 -/* ABE32C 8004718C 3C0F8016 */ lui $t7, %hi(gGameInfo) # $t7, 0x8016 -/* ABE330 80047190 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7) -/* ABE334 80047194 85EB01FC */ lh $t3, 0x1fc($t7) -/* ABE338 80047198 A6200018 */ sh $zero, 0x18($s1) -/* ABE33C 8004719C A62B001A */ sh $t3, 0x1a($s1) -/* ABE340 800471A0 8E190000 */ lw $t9, ($s0) -/* ABE344 800471A4 AE590074 */ sw $t9, 0x74($s2) -/* ABE348 800471A8 8E180004 */ lw $t8, 4($s0) -/* ABE34C 800471AC AE580078 */ sw $t8, 0x78($s2) -/* ABE350 800471B0 8E190008 */ lw $t9, 8($s0) -/* ABE354 800471B4 AE59007C */ sw $t9, 0x7c($s2) -.L800471B8: -/* ABE358 800471B8 0C01EFE4 */ jal OLib_Vec3fDist -/* ABE35C 800471BC 24A5CE80 */ addiu $a1, %lo(D_8015CE80) # addiu $a1, $a1, -0x3180 -/* ABE360 800471C0 C7AC0078 */ lwc1 $f12, 0x78($sp) -/* ABE364 800471C4 46000086 */ mov.s $f2, $f0 -/* ABE368 800471C8 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ABE36C 800471CC 4600603C */ c.lt.s $f12, $f0 -/* ABE370 800471D0 8FAC0080 */ lw $t4, 0x80($sp) -/* ABE374 800471D4 45020005 */ bc1fl .L800471EC -/* ABE378 800471D8 460C0203 */ div.s $f8, $f0, $f12 -/* ABE37C 800471DC 44813000 */ mtc1 $at, $f6 -/* ABE380 800471E0 10000004 */ b .L800471F4 -/* ABE384 800471E4 E5860000 */ swc1 $f6, ($t4) -/* ABE388 800471E8 460C0203 */ div.s $f8, $f0, $f12 -.L800471EC: -/* ABE38C 800471EC 8FAA0080 */ lw $t2, 0x80($sp) -/* ABE390 800471F0 E5480000 */ swc1 $f8, ($t2) -.L800471F4: -/* ABE394 800471F4 8FAE0080 */ lw $t6, 0x80($sp) -/* ABE398 800471F8 C7B0007C */ lwc1 $f16, 0x7c($sp) -/* ABE39C 800471FC 3C058016 */ lui $a1, %hi(D_8015CE80) # $a1, 0x8016 -/* ABE3A0 80047200 C5C40000 */ lwc1 $f4, ($t6) -/* ABE3A4 80047204 3C068016 */ lui $a2, %hi(D_8015CE8C) # $a2, 0x8016 -/* ABE3A8 80047208 24C6CE8C */ addiu $a2, %lo(D_8015CE8C) # addiu $a2, $a2, -0x3174 -/* ABE3AC 8004720C 46102482 */ mul.s $f18, $f4, $f16 -/* ABE3B0 80047210 24A5CE80 */ addiu $a1, %lo(D_8015CE80) # addiu $a1, $a1, -0x3180 -/* ABE3B4 80047214 02002025 */ move $a0, $s0 -/* ABE3B8 80047218 3C073F80 */ lui $a3, 0x3f80 -/* ABE3BC 8004721C E6320010 */ swc1 $f18, 0x10($s1) -/* ABE3C0 80047220 0C010F2B */ jal func_80043CAC -/* ABE3C4 80047224 E7A20050 */ swc1 $f2, 0x50($sp) -/* ABE3C8 80047228 C7A20050 */ lwc1 $f2, 0x50($sp) -/* ABE3CC 8004722C AE20000C */ sw $zero, 0xc($s1) -/* ABE3D0 80047230 3C088016 */ lui $t0, %hi(gGameInfo) # $t0, 0x8016 -/* ABE3D4 80047234 8D08FA90 */ lw $t0, %lo(gGameInfo)($t0) -/* ABE3D8 80047238 8FAD0074 */ lw $t5, 0x74($sp) -/* ABE3DC 8004723C 3C048016 */ lui $a0, %hi(D_8015CEA0) # $a0, 0x8016 -/* ABE3E0 80047240 850901BE */ lh $t1, 0x1be($t0) -/* ABE3E4 80047244 44895000 */ mtc1 $t1, $f10 -/* ABE3E8 80047248 00000000 */ nop -/* ABE3EC 8004724C 468051A0 */ cvt.s.w $f6, $f10 -/* ABE3F0 80047250 4606103C */ c.lt.s $f2, $f6 -/* ABE3F4 80047254 00000000 */ nop -/* ABE3F8 80047258 45020049 */ bc1fl .L80047380 -/* ABE3FC 8004725C 8FBF002C */ lw $ra, 0x2c($sp) -/* ABE400 80047260 8484CEA0 */ lh $a0, %lo(D_8015CEA0)($a0) -/* ABE404 80047264 85AF0006 */ lh $t7, 6($t5) -/* ABE408 80047268 E7A20050 */ swc1 $f2, 0x50($sp) -/* ABE40C 8004726C 24843FFF */ addiu $a0, $a0, 0x3fff -/* ABE410 80047270 00042400 */ sll $a0, $a0, 0x10 -/* ABE414 80047274 00042403 */ sra $a0, $a0, 0x10 -/* ABE418 80047278 0C01DE1C */ jal Math_Sins -/* ABE41C 8004727C A7AF0046 */ sh $t7, 0x46($sp) -/* ABE420 80047280 3C018014 */ lui $at, %hi(D_80139E84) -/* ABE424 80047284 C4289E84 */ lwc1 $f8, %lo(D_80139E84)($at) -/* ABE428 80047288 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* ABE42C 8004728C 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* ABE430 80047290 46080102 */ mul.s $f4, $f0, $f8 -/* ABE434 80047294 3C018014 */ lui $at, %hi(D_80139E88) -/* ABE438 80047298 C4269E88 */ lwc1 $f6, %lo(D_80139E88)($at) -/* ABE43C 8004729C C7A20050 */ lwc1 $f2, 0x50($sp) -/* ABE440 800472A0 02002025 */ move $a0, $s0 -/* ABE444 800472A4 02002825 */ move $a1, $s0 -/* ABE448 800472A8 27A60040 */ addiu $a2, $sp, 0x40 -/* ABE44C 800472AC 4600240D */ trunc.w.s $f16, $f4 -/* ABE450 800472B0 44188000 */ mfc1 $t8, $f16 -/* ABE454 800472B4 00000000 */ nop -/* ABE458 800472B8 A7B80044 */ sh $t8, 0x44($sp) -/* ABE45C 800472BC 845901C0 */ lh $t9, 0x1c0($v0) -/* ABE460 800472C0 844C01BE */ lh $t4, 0x1be($v0) -/* ABE464 800472C4 44999000 */ mtc1 $t9, $f18 -/* ABE468 800472C8 448C2000 */ mtc1 $t4, $f4 -/* ABE46C 800472CC 468092A0 */ cvt.s.w $f10, $f18 -/* ABE470 800472D0 46802420 */ cvt.s.w $f16, $f4 -/* ABE474 800472D4 46065202 */ mul.s $f8, $f10, $f6 -/* ABE478 800472D8 46028481 */ sub.s $f18, $f16, $f2 -/* ABE47C 800472DC 46124282 */ mul.s $f10, $f8, $f18 -/* ABE480 800472E0 0C010F0A */ jal func_80043C28 -/* ABE484 800472E4 E7AA0040 */ swc1 $f10, 0x40($sp) -/* ABE488 800472E8 10000025 */ b .L80047380 -/* ABE48C 800472EC 8FBF002C */ lw $ra, 0x2c($sp) -.L800472F0: -/* ABE490 800472F0 862A0018 */ lh $t2, 0x18($s1) -/* ABE494 800472F4 5140000C */ beql $t2, $zero, .L80047328 -/* ABE498 800472F8 C7A6007C */ lwc1 $f6, 0x7c($sp) -/* ABE49C 800472FC 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* ABE4A0 80047300 85C801FC */ lh $t0, 0x1fc($t6) -/* ABE4A4 80047304 A628001A */ sh $t0, 0x1a($s1) -/* ABE4A8 80047308 8E4D005C */ lw $t5, 0x5c($s2) -/* ABE4AC 8004730C 8E490060 */ lw $t1, 0x60($s2) -/* ABE4B0 80047310 AE4D0074 */ sw $t5, 0x74($s2) -/* ABE4B4 80047314 8E4D0064 */ lw $t5, 0x64($s2) -/* ABE4B8 80047318 AE490078 */ sw $t1, 0x78($s2) -/* ABE4BC 8004731C AE4D007C */ sw $t5, 0x7c($s2) -/* ABE4C0 80047320 A6200018 */ sh $zero, 0x18($s1) -/* ABE4C4 80047324 C7A6007C */ lwc1 $f6, 0x7c($sp) -.L80047328: -/* ABE4C8 80047328 AE20000C */ sw $zero, 0xc($s1) -/* ABE4CC 8004732C 3C018016 */ lui $at, %hi(D_8015CE80) -/* ABE4D0 80047330 E6260010 */ swc1 $f6, 0x10($s1) -/* ABE4D4 80047334 C424CE80 */ lwc1 $f4, %lo(D_8015CE80)($at) -/* ABE4D8 80047338 3C018016 */ lui $at, %hi(D_8015CE8C) -/* ABE4DC 8004733C C430CE8C */ lwc1 $f16, %lo(D_8015CE8C)($at) -/* ABE4E0 80047340 2650005C */ addiu $s0, $s2, 0x5c -/* ABE4E4 80047344 3C018016 */ lui $at, %hi(D_8015CE84) -/* ABE4E8 80047348 46102200 */ add.s $f8, $f4, $f16 -/* ABE4EC 8004734C E6080000 */ swc1 $f8, ($s0) -/* ABE4F0 80047350 C432CE84 */ lwc1 $f18, %lo(D_8015CE84)($at) -/* ABE4F4 80047354 3C018016 */ lui $at, %hi(D_8015CE90) -/* ABE4F8 80047358 C42ACE90 */ lwc1 $f10, %lo(D_8015CE90)($at) -/* ABE4FC 8004735C 3C018016 */ lui $at, %hi(D_8015CE88) -/* ABE500 80047360 460A9180 */ add.s $f6, $f18, $f10 -/* ABE504 80047364 E6060004 */ swc1 $f6, 4($s0) -/* ABE508 80047368 C424CE88 */ lwc1 $f4, %lo(D_8015CE88)($at) -/* ABE50C 8004736C 3C018016 */ lui $at, %hi(D_8015CE94) -/* ABE510 80047370 C430CE94 */ lwc1 $f16, %lo(D_8015CE94)($at) -/* ABE514 80047374 46102200 */ add.s $f8, $f4, $f16 -/* ABE518 80047378 E6080008 */ swc1 $f8, 8($s0) -/* ABE51C 8004737C 8FBF002C */ lw $ra, 0x2c($sp) -.L80047380: -/* ABE520 80047380 8FB00020 */ lw $s0, 0x20($sp) -/* ABE524 80047384 8FB10024 */ lw $s1, 0x24($sp) -/* ABE528 80047388 8FB20028 */ lw $s2, 0x28($sp) -/* ABE52C 8004738C 03E00008 */ jr $ra -/* ABE530 80047390 27BD0070 */ addiu $sp, $sp, 0x70 - diff --git a/asm/non_matchings/code/z_camera/func_80057C6C.s b/asm/non_matchings/code/z_camera/func_80057C6C.s deleted file mode 100644 index 3d3dfab4b8..0000000000 --- a/asm/non_matchings/code/z_camera/func_80057C6C.s +++ /dev/null @@ -1,237 +0,0 @@ -.rdata -glabel D_80139824 - .asciz "\x1b[34mcamera: initialize --- \x1b[m UID %d\n" - .balign 4 - -.late_rodata -glabel D_8013A3F4 - .float 0.01 - -.text -glabel func_80057C6C -/* ACEE0C 80057C6C 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* ACEE10 80057C70 AFBF001C */ sw $ra, 0x1c($sp) -/* ACEE14 80057C74 AFB00018 */ sw $s0, 0x18($sp) -/* ACEE18 80057C78 AFA50024 */ sw $a1, 0x24($sp) -/* ACEE1C 80057C7C AFA60028 */ sw $a2, 0x28($sp) -/* ACEE20 80057C80 00808025 */ move $s0, $a0 -/* ACEE24 80057C84 AFA7002C */ sw $a3, 0x2c($sp) -/* ACEE28 80057C88 2406016C */ li $a2, 364 -/* ACEE2C 80057C8C 0C041A18 */ jal func_80106860 -/* ACEE30 80057C90 00002825 */ move $a1, $zero -/* ACEE34 80057C94 3C0E8012 */ lui $t6, %hi(sInitRegs) # $t6, 0x8012 -/* ACEE38 80057C98 8DCED390 */ lw $t6, %lo(sInitRegs)($t6) -/* ACEE3C 80057C9C 3C058012 */ lui $a1, %hi(sOREGInitCnt) # $a1, 0x8012 -/* ACEE40 80057CA0 24A59F4C */ addiu $a1, %lo(sOREGInitCnt) # addiu $a1, $a1, -0x60b4 -/* ACEE44 80057CA4 51C00035 */ beql $t6, $zero, .L80057D7C -/* ACEE48 80057CA8 8FAB002C */ lw $t3, 0x2c($sp) -/* ACEE4C 80057CAC 84AF0000 */ lh $t7, ($a1) -/* ACEE50 80057CB0 00001825 */ move $v1, $zero -/* ACEE54 80057CB4 00001025 */ move $v0, $zero -/* ACEE58 80057CB8 19E00010 */ blez $t7, .L80057CFC -/* ACEE5C 80057CBC 3C048012 */ lui $a0, %hi(sOREGInit) # $a0, 0x8012 -/* ACEE60 80057CC0 3C078016 */ lui $a3, %hi(gGameInfo) # $a3, 0x8016 -/* ACEE64 80057CC4 24E7FA90 */ addiu $a3, %lo(gGameInfo) # addiu $a3, $a3, -0x570 -/* ACEE68 80057CC8 24849EE0 */ addiu $a0, %lo(sOREGInit) # addiu $a0, $a0, -0x6120 -/* ACEE6C 80057CCC 8CF90000 */ lw $t9, ($a3) -.L80057CD0: -/* ACEE70 80057CD0 84980000 */ lh $t8, ($a0) -/* ACEE74 80057CD4 24630001 */ addiu $v1, $v1, 1 -/* ACEE78 80057CD8 03225021 */ addu $t2, $t9, $v0 -/* ACEE7C 80057CDC A5580194 */ sh $t8, 0x194($t2) -/* ACEE80 80057CE0 84AB0000 */ lh $t3, ($a1) -/* ACEE84 80057CE4 24420002 */ addiu $v0, $v0, 2 -/* ACEE88 80057CE8 24840002 */ addiu $a0, $a0, 2 -/* ACEE8C 80057CEC 006B082A */ slt $at, $v1, $t3 -/* ACEE90 80057CF0 5420FFF7 */ bnezl $at, .L80057CD0 -/* ACEE94 80057CF4 8CF90000 */ lw $t9, ($a3) -/* ACEE98 80057CF8 00001825 */ move $v1, $zero -.L80057CFC: -/* ACEE9C 80057CFC 3C058012 */ lui $a1, %hi(sPREGInitCnt) # $a1, 0x8012 -/* ACEEA0 80057D00 24A59F88 */ addiu $a1, %lo(sPREGInitCnt) # addiu $a1, $a1, -0x6078 -/* ACEEA4 80057D04 84AC0000 */ lh $t4, ($a1) -/* ACEEA8 80057D08 3C078016 */ lui $a3, %hi(gGameInfo) # $a3, 0x8016 -/* ACEEAC 80057D0C 24E7FA90 */ addiu $a3, %lo(gGameInfo) # addiu $a3, $a3, -0x570 -/* ACEEB0 80057D10 1980000E */ blez $t4, .L80057D4C -/* ACEEB4 80057D14 00001025 */ move $v0, $zero -/* ACEEB8 80057D18 3C048012 */ lui $a0, %hi(sPREGInit) # $a0, 0x8012 -/* ACEEBC 80057D1C 24849F50 */ addiu $a0, %lo(sPREGInit) # addiu $a0, $a0, -0x60b0 -/* ACEEC0 80057D20 8CEE0000 */ lw $t6, ($a3) -.L80057D24: -/* ACEEC4 80057D24 848D0000 */ lh $t5, ($a0) -/* ACEEC8 80057D28 24630001 */ addiu $v1, $v1, 1 -/* ACEECC 80057D2C 01C27821 */ addu $t7, $t6, $v0 -/* ACEED0 80057D30 A5ED0254 */ sh $t5, 0x254($t7) -/* ACEED4 80057D34 84B90000 */ lh $t9, ($a1) -/* ACEED8 80057D38 24420002 */ addiu $v0, $v0, 2 -/* ACEEDC 80057D3C 24840002 */ addiu $a0, $a0, 2 -/* ACEEE0 80057D40 0079082A */ slt $at, $v1, $t9 -/* ACEEE4 80057D44 5420FFF7 */ bnezl $at, .L80057D24 -/* ACEEE8 80057D48 8CEE0000 */ lw $t6, ($a3) -.L80057D4C: -/* ACEEEC 80057D4C 3C058016 */ lui $a1, %hi(D_8015BD80) # $a1, 0x8016 -/* ACEEF0 80057D50 24A5BD80 */ addiu $a1, %lo(D_8015BD80) # addiu $a1, $a1, -0x4280 -/* ACEEF4 80057D54 0C02E563 */ jal func_800B958C -/* ACEEF8 80057D58 02002025 */ move $a0, $s0 -/* ACEEFC 80057D5C 3C078016 */ lui $a3, %hi(gGameInfo) # $a3, 0x8016 -/* ACEF00 80057D60 3C018012 */ lui $at, %hi(sInitRegs) # $at, 0x8012 -/* ACEF04 80057D64 24E7FA90 */ addiu $a3, %lo(gGameInfo) # addiu $a3, $a3, -0x570 -/* ACEF08 80057D68 AC20D390 */ sw $zero, %lo(sInitRegs)($at) -/* ACEF0C 80057D6C 8CEA0000 */ lw $t2, ($a3) -/* ACEF10 80057D70 2418FFFF */ li $t8, -1 -/* ACEF14 80057D74 A5580304 */ sh $t8, 0x304($t2) -/* ACEF18 80057D78 8FAB002C */ lw $t3, 0x2c($sp) -.L80057D7C: -/* ACEF1C 80057D7C 3C028016 */ lui $v0, %hi(D_8015BD7C) # $v0, 0x8016 -/* ACEF20 80057D80 2442BD7C */ addiu $v0, %lo(D_8015BD7C) # addiu $v0, $v0, -0x4284 -/* ACEF24 80057D84 3C048016 */ lui $a0, %hi(D_8015BD80) # $a0, 0x8016 -/* ACEF28 80057D88 AC4B0000 */ sw $t3, ($v0) -/* ACEF2C 80057D8C 2484BD80 */ addiu $a0, %lo(D_8015BD80) # addiu $a0, $a0, -0x4280 -/* ACEF30 80057D90 02002825 */ move $a1, $s0 -/* ACEF34 80057D94 0C02D356 */ jal func_800B4D58 -/* ACEF38 80057D98 AE0B008C */ sw $t3, 0x8c($s0) -/* ACEF3C 80057D9C 3C068012 */ lui $a2, %hi(D_8011D39C) # $a2, 0x8012 -/* ACEF40 80057DA0 24C6D39C */ addiu $a2, %lo(D_8011D39C) # addiu $a2, $a2, -0x2c64 -/* ACEF44 80057DA4 84C20000 */ lh $v0, ($a2) -/* ACEF48 80057DA8 3C078016 */ lui $a3, %hi(gGameInfo) # $a3, 0x8016 -/* ACEF4C 80057DAC 24E7FA90 */ addiu $a3, %lo(gGameInfo) # addiu $a3, $a3, -0x570 -/* ACEF50 80057DB0 00022C00 */ sll $a1, $v0, 0x10 -/* ACEF54 80057DB4 00052C03 */ sra $a1, $a1, 0x10 -/* ACEF58 80057DB8 244E0001 */ addiu $t6, $v0, 1 -/* ACEF5C 80057DBC 2409FFFF */ li $t1, -1 -/* ACEF60 80057DC0 10A0001E */ beqz $a1, .L80057E3C -/* ACEF64 80057DC4 A4CE0000 */ sh $t6, ($a2) -/* ACEF68 80057DC8 24080004 */ li $t0, 4 -.L80057DCC: -/* ACEF6C 80057DCC 14A00004 */ bnez $a1, .L80057DE0 -/* ACEF70 80057DD0 00001825 */ move $v1, $zero -/* ACEF74 80057DD4 84CD0000 */ lh $t5, ($a2) -/* ACEF78 80057DD8 25AF0001 */ addiu $t7, $t5, 1 -/* ACEF7C 80057DDC A4CF0000 */ sh $t7, ($a2) -.L80057DE0: -/* ACEF80 80057DE0 8E04008C */ lw $a0, 0x8c($s0) -/* ACEF84 80057DE4 0003C880 */ sll $t9, $v1, 2 -.L80057DE8: -/* ACEF88 80057DE8 0099C021 */ addu $t8, $a0, $t9 -/* ACEF8C 80057DEC 8F020790 */ lw $v0, 0x790($t8) -/* ACEF90 80057DF0 50400005 */ beql $v0, $zero, .L80057E08 -/* ACEF94 80057DF4 24630001 */ addiu $v1, $v1, 1 -/* ACEF98 80057DF8 844A0130 */ lh $t2, 0x130($v0) -/* ACEF9C 80057DFC 10AA0007 */ beq $a1, $t2, .L80057E1C -/* ACEFA0 80057E00 00000000 */ nop -/* ACEFA4 80057E04 24630001 */ addiu $v1, $v1, 1 -.L80057E08: -/* ACEFA8 80057E08 00031C00 */ sll $v1, $v1, 0x10 -/* ACEFAC 80057E0C 00031C03 */ sra $v1, $v1, 0x10 -/* ACEFB0 80057E10 28610004 */ slti $at, $v1, 4 -/* ACEFB4 80057E14 5420FFF4 */ bnezl $at, .L80057DE8 -/* ACEFB8 80057E18 0003C880 */ sll $t9, $v1, 2 -.L80057E1C: -/* ACEFBC 80057E1C 10680007 */ beq $v1, $t0, .L80057E3C -/* ACEFC0 80057E20 00000000 */ nop -/* ACEFC4 80057E24 84C20000 */ lh $v0, ($a2) -/* ACEFC8 80057E28 00022C00 */ sll $a1, $v0, 0x10 -/* ACEFCC 80057E2C 00052C03 */ sra $a1, $a1, 0x10 -/* ACEFD0 80057E30 244B0001 */ addiu $t3, $v0, 1 -/* ACEFD4 80057E34 14A0FFE5 */ bnez $a1, .L80057DCC -/* ACEFD8 80057E38 A4CB0000 */ sh $t3, ($a2) -.L80057E3C: -/* ACEFDC 80057E3C 3C018014 */ lui $at, %hi(D_8013A3F4) -/* ACEFE0 80057E40 C420A3F4 */ lwc1 $f0, %lo(D_8013A3F4)($at) -/* ACEFE4 80057E44 240C3FFF */ li $t4, 16383 -/* ACEFE8 80057E48 A60C0136 */ sh $t4, 0x136($s0) -/* ACEFEC 80057E4C 8A0D0134 */ lwl $t5, 0x134($s0) -/* ACEFF0 80057E50 9A0D0137 */ lwr $t5, 0x137($s0) -/* ACEFF4 80057E54 3C014120 */ li $at, 0x41200000 # 0.000000 -/* ACEFF8 80057E58 44816000 */ mtc1 $at, $f12 -/* ACEFFC 80057E5C 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ACF000 80057E60 44817000 */ mtc1 $at, $f14 -/* ACF004 80057E64 AA0D013A */ swl $t5, 0x13a($s0) -/* ACF008 80057E68 44801000 */ mtc1 $zero, $f2 -/* ACF00C 80057E6C 3C014270 */ li $at, 0x42700000 # 0.000000 -/* ACF010 80057E70 BA0D013D */ swr $t5, 0x13d($s0) -/* ACF014 80057E74 960D0138 */ lhu $t5, 0x138($s0) -/* ACF018 80057E78 44812000 */ mtc1 $at, $f4 -/* ACF01C 80057E7C A6050130 */ sh $a1, 0x130($s0) -/* ACF020 80057E80 E60C00C0 */ swc1 $f12, 0xc0($s0) -/* ACF024 80057E84 E60C00C8 */ swc1 $f12, 0xc8($s0) -/* ACF028 80057E88 E60E006C */ swc1 $f14, 0x6c($s0) -/* ACF02C 80057E8C E6020068 */ swc1 $f2, 0x68($s0) -/* ACF030 80057E90 E6020070 */ swc1 $f2, 0x70($s0) -/* ACF034 80057E94 A60D013E */ sh $t5, 0x13e($s0) -/* ACF038 80057E98 E60400FC */ swc1 $f4, 0xfc($s0) -/* ACF03C 80057E9C 8CEF0000 */ lw $t7, ($a3) -/* ACF040 80057EA0 3C018012 */ lui $at, %hi(D_8011D3A8) # $at, 0x8012 -/* ACF044 80057EA4 3C048014 */ lui $a0, %hi(D_80139824) -/* ACF048 80057EA8 85F901A2 */ lh $t9, 0x1a2($t7) -/* ACF04C 80057EAC 240F0020 */ li $t7, 32 -/* ACF050 80057EB0 24849824 */ addiu $a0, %lo(D_80139824) # addiu $a0, $a0, -0x67dc -/* ACF054 80057EB4 44993000 */ mtc1 $t9, $f6 -/* ACF058 80057EB8 24190021 */ li $t9, 33 -/* ACF05C 80057EBC 46803220 */ cvt.s.w $f8, $f6 -/* ACF060 80057EC0 E60800C4 */ swc1 $f8, 0xc4($s0) -/* ACF064 80057EC4 8CF80000 */ lw $t8, ($a3) -/* ACF068 80057EC8 870A0198 */ lh $t2, 0x198($t8) -/* ACF06C 80057ECC 448A5000 */ mtc1 $t2, $f10 -/* ACF070 80057ED0 00000000 */ nop -/* ACF074 80057ED4 46805420 */ cvt.s.w $f16, $f10 -/* ACF078 80057ED8 46008482 */ mul.s $f18, $f16, $f0 -/* ACF07C 80057EDC E61200CC */ swc1 $f18, 0xcc($s0) -/* ACF080 80057EE0 8CEB0000 */ lw $t3, ($a3) -/* ACF084 80057EE4 856C019A */ lh $t4, 0x19a($t3) -/* ACF088 80057EE8 240B0032 */ li $t3, 50 -/* ACF08C 80057EEC 448C2000 */ mtc1 $t4, $f4 -/* ACF090 80057EF0 240C7FFF */ li $t4, 32767 -/* ACF094 80057EF4 468021A0 */ cvt.s.w $f6, $f4 -/* ACF098 80057EF8 46003202 */ mul.s $f8, $f6, $f0 -/* ACF09C 80057EFC E60800D0 */ swc1 $f8, 0xd0($s0) -/* ACF0A0 80057F00 8CEE0000 */ lw $t6, ($a3) -/* ACF0A4 80057F04 85CD019C */ lh $t5, 0x19c($t6) -/* ACF0A8 80057F08 448D5000 */ mtc1 $t5, $f10 -/* ACF0AC 80057F0C 00000000 */ nop -/* ACF0B0 80057F10 46805420 */ cvt.s.w $f16, $f10 -/* ACF0B4 80057F14 46008482 */ mul.s $f18, $f16, $f0 -/* ACF0B8 80057F18 44800000 */ mtc1 $zero, $f0 -/* ACF0BC 80057F1C E61200D4 */ swc1 $f18, 0xd4($s0) -/* ACF0C0 80057F20 AC2FD3A8 */ sw $t7, %lo(D_8011D3A8)($at) -/* ACF0C4 80057F24 3C018012 */ lui $at, %hi(D_8011D3A4) # $at, 0x8012 -/* ACF0C8 80057F28 AC20D3A4 */ sw $zero, %lo(D_8011D3A4)($at) -/* ACF0CC 80057F2C A600014C */ sh $zero, 0x14c($s0) -/* ACF0D0 80057F30 860E014C */ lh $t6, 0x14c($s0) -/* ACF0D4 80057F34 A6190154 */ sh $t9, 0x154($s0) -/* ACF0D8 80057F38 A6090166 */ sh $t1, 0x166($s0) -/* ACF0DC 80057F3C 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ACF0E0 80057F40 86180154 */ lh $t8, 0x154($s0) -/* ACF0E4 80057F44 860A0166 */ lh $t2, 0x166($s0) -/* ACF0E8 80057F48 44812000 */ mtc1 $at, $f4 -/* ACF0EC 80057F4C 35CD4000 */ ori $t5, $t6, 0x4000 -/* ACF0F0 80057F50 A6000144 */ sh $zero, 0x144($s0) -/* ACF0F4 80057F54 A60B0146 */ sh $t3, 0x146($s0) -/* ACF0F8 80057F58 A60C0168 */ sh $t4, 0x168($s0) -/* ACF0FC 80057F5C A6090160 */ sh $t1, 0x160($s0) -/* ACF100 80057F60 A60D014C */ sh $t5, 0x14c($s0) -/* ACF104 80057F64 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 -/* ACF108 80057F68 340FFF00 */ li $t7, 65280 -/* ACF10C 80057F6C E60E006C */ swc1 $f14, 0x6c($s0) -/* ACF110 80057F70 E6020070 */ swc1 $f2, 0x70($s0) -/* ACF114 80057F74 E6020068 */ swc1 $f2, 0x68($s0) -/* ACF118 80057F78 E6000080 */ swc1 $f0, 0x80($s0) -/* ACF11C 80057F7C E6000084 */ swc1 $f0, 0x84($s0) -/* ACF120 80057F80 E6000088 */ swc1 $f0, 0x88($s0) -/* ACF124 80057F84 A6180142 */ sh $t8, 0x142($s0) -/* ACF128 80057F88 A60A0148 */ sh $t2, 0x148($s0) -/* ACF12C 80057F8C E6040100 */ swc1 $f4, 0x100($s0) -/* ACF130 80057F90 AC2FD3A0 */ sw $t7, %lo(D_8011D3A0)($at) -/* ACF134 80057F94 3C018012 */ lui $at, %hi(D_8011D398) # $at, 0x8012 -/* ACF138 80057F98 AC29D398 */ sw $t1, %lo(D_8011D398)($at) -/* ACF13C 80057F9C 3C018012 */ lui $at, %hi(D_8011D3F0) # $at, 0x8012 -/* ACF140 80057FA0 24190003 */ li $t9, 3 -/* ACF144 80057FA4 AC39D3F0 */ sw $t9, %lo(D_8011D3F0)($at) -/* ACF148 80057FA8 0C00084C */ jal osSyncPrintf -/* ACF14C 80057FAC 86050130 */ lh $a1, 0x130($s0) -/* ACF150 80057FB0 8FBF001C */ lw $ra, 0x1c($sp) -/* ACF154 80057FB4 8FB00018 */ lw $s0, 0x18($sp) -/* ACF158 80057FB8 27BD0020 */ addiu $sp, $sp, 0x20 -/* ACF15C 80057FBC 03E00008 */ jr $ra -/* ACF160 80057FC0 00000000 */ nop - diff --git a/asm/non_matchings/code/z_camera/func_80058148.s b/asm/non_matchings/code/z_camera/func_80058148.s deleted file mode 100644 index 8563de70b9..0000000000 --- a/asm/non_matchings/code/z_camera/func_80058148.s +++ /dev/null @@ -1,143 +0,0 @@ -.rdata -glabel D_801398C0 - .asciz "\x1b[34mcamera: personalize ---\x1b[m\n" - .balign 4 - -.text -glabel func_80058148 -/* ACF2E8 80058148 27BDFF98 */ addiu $sp, $sp, -0x68 -/* ACF2EC 8005814C AFB00018 */ sw $s0, 0x18($sp) -/* ACF2F0 80058150 00808025 */ move $s0, $a0 -/* ACF2F4 80058154 AFBF001C */ sw $ra, 0x1c($sp) -/* ACF2F8 80058158 AFA5006C */ sw $a1, 0x6c($sp) -/* ACF2FC 8005815C 0C00BBD1 */ jal func_8002EF44 -/* ACF300 80058160 27A40054 */ addiu $a0, $sp, 0x54 -/* ACF304 80058164 0C00B721 */ jal Player_GetCameraYOffset -/* ACF308 80058168 8FA4006C */ lw $a0, 0x6c($sp) -/* ACF30C 8005816C 8FAE006C */ lw $t6, 0x6c($sp) -/* ACF310 80058170 27A20054 */ addiu $v0, $sp, 0x54 -/* ACF314 80058174 3C014334 */ li $at, 0x43340000 # 0.000000 -/* ACF318 80058178 AE0E0090 */ sw $t6, 0x90($s0) -/* ACF31C 8005817C 8C580000 */ lw $t8, ($v0) -/* ACF320 80058180 44816000 */ mtc1 $at, $f12 -/* ACF324 80058184 240A071C */ li $t2, 1820 -/* ACF328 80058188 AE180094 */ sw $t8, 0x94($s0) -/* ACF32C 8005818C 8C4F0004 */ lw $t7, 4($v0) -/* ACF330 80058190 240B071C */ li $t3, 1820 -/* ACF334 80058194 44801000 */ mtc1 $zero, $f2 -/* ACF338 80058198 AE0F0098 */ sw $t7, 0x98($s0) -/* ACF33C 8005819C 8C580008 */ lw $t8, 8($v0) -/* ACF340 800581A0 26050050 */ addiu $a1, $s0, 0x50 -/* ACF344 800581A4 44807000 */ mtc1 $zero, $f14 -/* ACF348 800581A8 AE18009C */ sw $t8, 0x9c($s0) -/* ACF34C 800581AC 8C4F000C */ lw $t7, 0xc($v0) -/* ACF350 800581B0 26040074 */ addiu $a0, $s0, 0x74 -/* ACF354 800581B4 27A6004C */ addiu $a2, $sp, 0x4c -/* ACF358 800581B8 AE0F00A0 */ sw $t7, 0xa0($s0) -/* ACF35C 800581BC 8C580010 */ lw $t8, 0x10($v0) -/* ACF360 800581C0 AE1800A4 */ sw $t8, 0xa4($s0) -/* ACF364 800581C4 E7AC004C */ swc1 $f12, 0x4c($sp) -/* ACF368 800581C8 E60C00DC */ swc1 $f12, 0xdc($s0) -/* ACF36C 800581CC 87B90062 */ lh $t9, 0x62($sp) -/* ACF370 800581D0 A6190136 */ sh $t9, 0x136($s0) -/* ACF374 800581D4 86080136 */ lh $t0, 0x136($s0) -/* ACF378 800581D8 A7AA0050 */ sh $t2, 0x50($sp) -/* ACF37C 800581DC 25098001 */ addiu $t1, $t0, -0x7fff -/* ACF380 800581E0 A7A90052 */ sh $t1, 0x52($sp) -/* ACF384 800581E4 A60B0134 */ sh $t3, 0x134($s0) -/* ACF388 800581E8 8A0D0134 */ lwl $t5, 0x134($s0) -/* ACF38C 800581EC 9A0D0137 */ lwr $t5, 0x137($s0) -/* ACF390 800581F0 A6000138 */ sh $zero, 0x138($s0) -/* ACF394 800581F4 A600013E */ sh $zero, 0x13e($s0) -/* ACF398 800581F8 AA0D013A */ swl $t5, 0x13a($s0) -/* ACF39C 800581FC E60200D8 */ swc1 $f2, 0xd8($s0) -/* ACF3A0 80058200 E60200F4 */ swc1 $f2, 0xf4($s0) -/* ACF3A4 80058204 BA0D013D */ swr $t5, 0x13d($s0) -/* ACF3A8 80058208 8C4F0000 */ lw $t7, ($v0) -/* ACF3AC 8005820C ACAF0000 */ sw $t7, ($a1) -/* ACF3B0 80058210 8C4E0004 */ lw $t6, 4($v0) -/* ACF3B4 80058214 ACAE0004 */ sw $t6, 4($a1) -/* ACF3B8 80058218 8C4F0008 */ lw $t7, 8($v0) -/* ACF3BC 8005821C ACAF0008 */ sw $t7, 8($a1) -/* ACF3C0 80058220 C6040054 */ lwc1 $f4, 0x54($s0) -/* ACF3C4 80058224 E60000E8 */ swc1 $f0, 0xe8($s0) -/* ACF3C8 80058228 E60E00E4 */ swc1 $f14, 0xe4($s0) -/* ACF3CC 8005822C 46002180 */ add.s $f6, $f4, $f0 -/* ACF3D0 80058230 E60E00EC */ swc1 $f14, 0xec($s0) -/* ACF3D4 80058234 E6060054 */ swc1 $f6, 0x54($s0) -/* ACF3D8 80058238 AFA50024 */ sw $a1, 0x24($sp) -/* ACF3DC 8005823C 0C010F0A */ jal func_80043C28 -/* ACF3E0 80058240 AFA40020 */ sw $a0, 0x20($sp) -/* ACF3E4 80058244 8FB80020 */ lw $t8, 0x20($sp) -/* ACF3E8 80058248 44801000 */ mtc1 $zero, $f2 -/* ACF3EC 8005824C 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ACF3F0 80058250 8F080000 */ lw $t0, ($t8) -/* ACF3F4 80058254 44814000 */ mtc1 $at, $f8 -/* ACF3F8 80058258 02002025 */ move $a0, $s0 -/* ACF3FC 8005825C AE08005C */ sw $t0, 0x5c($s0) -/* ACF400 80058260 8F190004 */ lw $t9, 4($t8) -/* ACF404 80058264 27A5003C */ addiu $a1, $sp, 0x3c -/* ACF408 80058268 27A70048 */ addiu $a3, $sp, 0x48 -/* ACF40C 8005826C AE190060 */ sw $t9, 0x60($s0) -/* ACF410 80058270 8F080008 */ lw $t0, 8($t8) -/* ACF414 80058274 A600015A */ sh $zero, 0x15a($s0) -/* ACF418 80058278 E6020070 */ swc1 $f2, 0x70($s0) -/* ACF41C 8005827C E6020068 */ swc1 $f2, 0x68($s0) -/* ACF420 80058280 E608006C */ swc1 $f8, 0x6c($s0) -/* ACF424 80058284 AE080064 */ sw $t0, 0x64($s0) -/* ACF428 80058288 0C01110D */ jal func_80044434 -/* ACF42C 8005828C 8FA60024 */ lw $a2, 0x24($sp) -/* ACF430 80058290 3C01C6FA */ li $at, 0xC6FA0000 # 0.000000 -/* ACF434 80058294 44815000 */ mtc1 $at, $f10 -/* ACF438 80058298 2402FFFF */ li $v0, -1 -/* ACF43C 8005829C 8FA90048 */ lw $t1, 0x48($sp) -/* ACF440 800582A0 460A0032 */ c.eq.s $f0, $f10 -/* ACF444 800582A4 340EB200 */ li $t6, 45568 -/* ACF448 800582A8 3C018012 */ lui $at, %hi(D_8011D3A0) -/* ACF44C 800582AC 45030003 */ bc1tl .L800582BC -/* ACF450 800582B0 860A014C */ lh $t2, 0x14c($s0) -/* ACF454 800582B4 A6090146 */ sh $t1, 0x146($s0) -/* ACF458 800582B8 860A014C */ lh $t2, 0x14c($s0) -.L800582BC: -/* ACF45C 800582BC 8E0C008C */ lw $t4, 0x8c($s0) -/* ACF460 800582C0 AE020118 */ sw $v0, 0x118($s0) -/* ACF464 800582C4 354B0004 */ ori $t3, $t2, 4 -/* ACF468 800582C8 258D01E0 */ addiu $t5, $t4, 0x1e0 -/* ACF46C 800582CC AE02011C */ sw $v0, 0x11c($s0) -/* ACF470 800582D0 160D0004 */ bne $s0, $t5, .L800582E4 -/* ACF474 800582D4 A60B014C */ sh $t3, 0x14c($s0) -/* ACF478 800582D8 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 -/* ACF47C 800582DC 10000002 */ b .L800582E8 -/* ACF480 800582E0 AC2ED3A0 */ sw $t6, %lo(D_8011D3A0)($at) -.L800582E4: -/* ACF484 800582E4 AC20D3A0 */ sw $zero, %lo(D_8011D3A0)($at) -.L800582E8: -/* ACF488 800582E8 0C015FF1 */ jal func_80057FC4 -/* ACF48C 800582EC 02002025 */ move $a0, $s0 -/* ACF490 800582F0 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* ACF494 800582F4 44818000 */ mtc1 $at, $f16 -/* ACF498 800582F8 2402FFFF */ li $v0, -1 -/* ACF49C 800582FC A600014A */ sh $zero, 0x14a($s0) -/* ACF4A0 80058300 A600015C */ sh $zero, 0x15c($s0) -/* ACF4A4 80058304 A6020156 */ sh $v0, 0x156($s0) -/* ACF4A8 80058308 02002025 */ move $a0, $s0 -/* ACF4AC 8005830C 86050144 */ lh $a1, 0x144($s0) -/* ACF4B0 80058310 0C01144A */ jal Camera_CopyModeValuesToPREG -/* ACF4B4 80058314 E6100100 */ swc1 $f16, 0x100($s0) -/* ACF4B8 80058318 0C016C11 */ jal func_8005B044 -/* ACF4BC 8005831C 00000000 */ nop -/* ACF4C0 80058320 3C048014 */ lui $a0, %hi(D_801398C0) # $a0, 0x8014 -/* ACF4C4 80058324 0C00084C */ jal osSyncPrintf -/* ACF4C8 80058328 248498C0 */ addiu $a0, %lo(D_801398C0) # addiu $a0, $a0, -0x6740 -/* ACF4CC 8005832C 860F0164 */ lh $t7, 0x164($s0) -/* ACF4D0 80058330 55E00004 */ bnezl $t7, .L80058344 -/* ACF4D4 80058334 8FBF001C */ lw $ra, 0x1c($sp) -/* ACF4D8 80058338 0C01622D */ jal func_800588B4 -/* ACF4DC 8005833C 02002025 */ move $a0, $s0 -/* ACF4E0 80058340 8FBF001C */ lw $ra, 0x1c($sp) -.L80058344: -/* ACF4E4 80058344 8FB00018 */ lw $s0, 0x18($sp) -/* ACF4E8 80058348 27BD0068 */ addiu $sp, $sp, 0x68 -/* ACF4EC 8005834C 03E00008 */ jr $ra -/* ACF4F0 80058350 00000000 */ nop - diff --git a/asm/non_matchings/code/z_camera/func_800588B4.s b/asm/non_matchings/code/z_camera/func_800588B4.s deleted file mode 100644 index edc099fd66..0000000000 --- a/asm/non_matchings/code/z_camera/func_800588B4.s +++ /dev/null @@ -1,312 +0,0 @@ -.rdata -glabel D_80139970 - .asciz "camera: water: off\n" - .balign 4 - -glabel D_80139984 - .asciz "kankyo changed water, sound on\n" - .balign 4 - -glabel D_801399A4 - .asciz "kankyo changed water off, sound off\n" - .balign 4 - -.text -glabel func_800588B4 -/* ACFA54 800588B4 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* ACFA58 800588B8 AFBF0024 */ sw $ra, 0x24($sp) -/* ACFA5C 800588BC AFB00020 */ sw $s0, 0x20($sp) -/* ACFA60 800588C0 8483014C */ lh $v1, 0x14c($a0) -/* ACFA64 800588C4 00808025 */ move $s0, $a0 -/* ACFA68 800588C8 8C820090 */ lw $v0, 0x90($a0) -/* ACFA6C 800588CC 306E0002 */ andi $t6, $v1, 2 -/* ACFA70 800588D0 11C0000A */ beqz $t6, .L800588FC -/* ACFA74 800588D4 00000000 */ nop -/* ACFA78 800588D8 848F0142 */ lh $t7, 0x142($a0) -/* ACFA7C 800588DC 3C198012 */ lui $t9, %hi(sCameraSettings) -/* ACFA80 800588E0 30690200 */ andi $t1, $v1, 0x200 -/* ACFA84 800588E4 000FC0C0 */ sll $t8, $t7, 3 -/* ACFA88 800588E8 0338C821 */ addu $t9, $t9, $t8 -/* ACFA8C 800588EC 8F39D064 */ lw $t9, %lo(sCameraSettings)($t9) -/* ACFA90 800588F0 00194040 */ sll $t0, $t9, 1 -/* ACFA94 800588F4 05010003 */ bgez $t0, .L80058904 -/* ACFA98 800588F8 00000000 */ nop -.L800588FC: -/* ACFA9C 800588FC 100000F9 */ b .L80058CE4 -/* ACFAA0 80058900 00001025 */ move $v0, $zero -.L80058904: -/* ACFAA4 80058904 51200019 */ beql $t1, $zero, .L8005896C -/* ACFAA8 80058908 0003CBC2 */ srl $t9, $v1, 0xf -/* ACFAAC 8005890C 8C4A0680 */ lw $t2, 0x680($v0) -/* ACFAB0 80058910 02002025 */ move $a0, $s0 -/* ACFAB4 80058914 24050024 */ li $a1, 36 -/* ACFAB8 80058918 314B0800 */ andi $t3, $t2, 0x800 -/* ACFABC 8005891C 11600009 */ beqz $t3, .L80058944 -/* ACFAC0 80058920 000373C2 */ srl $t6, $v1, 0xf -/* ACFAC4 80058924 0C016952 */ jal Camera_ChangeSetting -/* ACFAC8 80058928 24060006 */ li $a2, 6 -/* ACFACC 8005892C 860C014C */ lh $t4, 0x14c($s0) -/* ACFAD0 80058930 24018000 */ li $at, -32768 -/* ACFAD4 80058934 01816825 */ or $t5, $t4, $at -/* ACFAD8 80058938 A60D014C */ sh $t5, 0x14c($s0) -/* ACFADC 8005893C 1000000A */ b .L80058968 -/* ACFAE0 80058940 8603014C */ lh $v1, 0x14c($s0) -.L80058944: -/* ACFAE4 80058944 11C00008 */ beqz $t6, .L80058968 -/* ACFAE8 80058948 02002025 */ move $a0, $s0 -/* ACFAEC 8005894C 8605011E */ lh $a1, 0x11e($s0) -/* ACFAF0 80058950 0C016952 */ jal Camera_ChangeSetting -/* ACFAF4 80058954 24060006 */ li $a2, 6 -/* ACFAF8 80058958 860F014C */ lh $t7, 0x14c($s0) -/* ACFAFC 8005895C 31F87FFF */ andi $t8, $t7, 0x7fff -/* ACFB00 80058960 A618014C */ sh $t8, 0x14c($s0) -/* ACFB04 80058964 8603014C */ lh $v1, 0x14c($s0) -.L80058968: -/* ACFB08 80058968 0003CBC2 */ srl $t9, $v1, 0xf -.L8005896C: -/* ACFB0C 8005896C 17200068 */ bnez $t9, .L80058B10 -/* ACFB10 80058970 02002025 */ move $a0, $s0 -/* ACFB14 80058974 0C011233 */ jal func_800448CC -/* ACFB18 80058978 27A5004C */ addiu $a1, $sp, 0x4c -/* ACFB1C 8005897C 00021C00 */ sll $v1, $v0, 0x10 -/* ACFB20 80058980 00031C03 */ sra $v1, $v1, 0x10 -/* ACFB24 80058984 00022C00 */ sll $a1, $v0, 0x10 -/* ACFB28 80058988 2401FFFE */ li $at, -2 -/* ACFB2C 8005898C 14610024 */ bne $v1, $at, .L80058A20 -/* ACFB30 80058990 00052C03 */ sra $a1, $a1, 0x10 -/* ACFB34 80058994 8603014C */ lh $v1, 0x14c($s0) -/* ACFB38 80058998 240BFFFF */ li $t3, -1 -/* ACFB3C 8005899C 240D0032 */ li $t5, 50 -/* ACFB40 800589A0 30680200 */ andi $t0, $v1, 0x200 -/* ACFB44 800589A4 15000007 */ bnez $t0, .L800589C4 -/* ACFB48 800589A8 34690200 */ ori $t1, $v1, 0x200 -/* ACFB4C 800589AC A609014C */ sh $t1, 0x14c($s0) -/* ACFB50 800589B0 C7A4004C */ lwc1 $f4, 0x4c($sp) -/* ACFB54 800589B4 860A0148 */ lh $t2, 0x148($s0) -/* ACFB58 800589B8 A60B0120 */ sh $t3, 0x120($s0) -/* ACFB5C 800589BC E6040114 */ swc1 $f4, 0x114($s0) -/* ACFB60 800589C0 AE0A0118 */ sw $t2, 0x118($s0) -.L800589C4: -/* ACFB64 800589C4 C6060098 */ lwc1 $f6, 0x98($s0) -/* ACFB68 800589C8 C6080104 */ lwc1 $f8, 0x104($s0) -/* ACFB6C 800589CC 02002025 */ move $a0, $s0 -/* ACFB70 800589D0 24050005 */ li $a1, 5 -/* ACFB74 800589D4 46083032 */ c.eq.s $f6, $f8 -/* ACFB78 800589D8 00000000 */ nop -/* ACFB7C 800589DC 4503004D */ bc1tl .L80058B14 -/* ACFB80 800589E0 02002025 */ move $a0, $s0 -/* ACFB84 800589E4 860C0146 */ lh $t4, 0x146($s0) -/* ACFB88 800589E8 260E011C */ addiu $t6, $s0, 0x11c -/* ACFB8C 800589EC 24060002 */ li $a2, 2 -/* ACFB90 800589F0 A7AC0032 */ sh $t4, 0x32($sp) -/* ACFB94 800589F4 A60D0146 */ sh $t5, 0x146($s0) -/* ACFB98 800589F8 0C016952 */ jal Camera_ChangeSetting -/* ACFB9C 800589FC AFAE002C */ sw $t6, 0x2c($sp) -/* ACFBA0 80058A00 860F0142 */ lh $t7, 0x142($s0) -/* ACFBA4 80058A04 8FB8002C */ lw $t8, 0x2c($sp) -/* ACFBA8 80058A08 2408FFFE */ li $t0, -2 -/* ACFBAC 80058A0C AF0F0000 */ sw $t7, ($t8) -/* ACFBB0 80058A10 87B90032 */ lh $t9, 0x32($sp) -/* ACFBB4 80058A14 A6080148 */ sh $t0, 0x148($s0) -/* ACFBB8 80058A18 1000003D */ b .L80058B10 -/* ACFBBC 80058A1C A6190146 */ sh $t9, 0x146($s0) -.L80058A20: -/* ACFBC0 80058A20 2401FFFF */ li $at, -1 -/* ACFBC4 80058A24 50610021 */ beql $v1, $at, .L80058AAC -/* ACFBC8 80058A28 8609014C */ lh $t1, 0x14c($s0) -/* ACFBCC 80058A2C 8603014C */ lh $v1, 0x14c($s0) -/* ACFBD0 80058A30 240CFFFF */ li $t4, -1 -/* ACFBD4 80058A34 240E0032 */ li $t6, 50 -/* ACFBD8 80058A38 30690200 */ andi $t1, $v1, 0x200 -/* ACFBDC 80058A3C 15200007 */ bnez $t1, .L80058A5C -/* ACFBE0 80058A40 346A0200 */ ori $t2, $v1, 0x200 -/* ACFBE4 80058A44 A60A014C */ sh $t2, 0x14c($s0) -/* ACFBE8 80058A48 C7AA004C */ lwc1 $f10, 0x4c($sp) -/* ACFBEC 80058A4C 860B0148 */ lh $t3, 0x148($s0) -/* ACFBF0 80058A50 A60C0120 */ sh $t4, 0x120($s0) -/* ACFBF4 80058A54 E60A0114 */ swc1 $f10, 0x114($s0) -/* ACFBF8 80058A58 AE0B0118 */ sw $t3, 0x118($s0) -.L80058A5C: -/* ACFBFC 80058A5C C6100098 */ lwc1 $f16, 0x98($s0) -/* ACFC00 80058A60 C6120104 */ lwc1 $f18, 0x104($s0) -/* ACFC04 80058A64 46128032 */ c.eq.s $f16, $f18 -/* ACFC08 80058A68 00000000 */ nop -/* ACFC0C 80058A6C 45030029 */ bc1tl .L80058B14 -/* ACFC10 80058A70 02002025 */ move $a0, $s0 -/* ACFC14 80058A74 860D0146 */ lh $t5, 0x146($s0) -/* ACFC18 80058A78 260F011C */ addiu $t7, $s0, 0x11c -/* ACFC1C 80058A7C 02002025 */ move $a0, $s0 -/* ACFC20 80058A80 A7AD0032 */ sh $t5, 0x32($sp) -/* ACFC24 80058A84 A60E0146 */ sh $t6, 0x146($s0) -/* ACFC28 80058A88 0C0169EA */ jal func_8005A7A8 -/* ACFC2C 80058A8C AFAF002C */ sw $t7, 0x2c($sp) -/* ACFC30 80058A90 86180142 */ lh $t8, 0x142($s0) -/* ACFC34 80058A94 8FB9002C */ lw $t9, 0x2c($sp) -/* ACFC38 80058A98 AF380000 */ sw $t8, ($t9) -/* ACFC3C 80058A9C 87A80032 */ lh $t0, 0x32($sp) -/* ACFC40 80058AA0 1000001B */ b .L80058B10 -/* ACFC44 80058AA4 A6080146 */ sh $t0, 0x146($s0) -/* ACFC48 80058AA8 8609014C */ lh $t1, 0x14c($s0) -.L80058AAC: -/* ACFC4C 80058AAC 3C048014 */ lui $a0, %hi(D_80139970) # $a0, 0x8014 -/* ACFC50 80058AB0 312A0200 */ andi $t2, $t1, 0x200 -/* ACFC54 80058AB4 51400017 */ beql $t2, $zero, .L80058B14 -/* ACFC58 80058AB8 02002025 */ move $a0, $s0 -/* ACFC5C 80058ABC 0C00084C */ jal osSyncPrintf -/* ACFC60 80058AC0 24849970 */ addiu $a0, %lo(D_80139970) # addiu $a0, $a0, -0x6690 -/* ACFC64 80058AC4 860B014C */ lh $t3, 0x14c($s0) -/* ACFC68 80058AC8 860D0146 */ lh $t5, 0x146($s0) -/* ACFC6C 80058ACC 240E0032 */ li $t6, 50 -/* ACFC70 80058AD0 316CFDFF */ andi $t4, $t3, 0xfdff -/* ACFC74 80058AD4 A60C014C */ sh $t4, 0x14c($s0) -/* ACFC78 80058AD8 A7AD0032 */ sh $t5, 0x32($sp) -/* ACFC7C 80058ADC 8E050118 */ lw $a1, 0x118($s0) -/* ACFC80 80058AE0 A60E0146 */ sh $t6, 0x146($s0) -/* ACFC84 80058AE4 04A10006 */ bgez $a1, .L80058B00 -/* ACFC88 80058AE8 00000000 */ nop -/* ACFC8C 80058AEC 0C015FF1 */ jal func_80057FC4 -/* ACFC90 80058AF0 02002025 */ move $a0, $s0 -/* ACFC94 80058AF4 240FFFFF */ li $t7, -1 -/* ACFC98 80058AF8 10000003 */ b .L80058B08 -/* ACFC9C 80058AFC A60F0148 */ sh $t7, 0x148($s0) -.L80058B00: -/* ACFCA0 80058B00 0C0169EA */ jal func_8005A7A8 -/* ACFCA4 80058B04 02002025 */ move $a0, $s0 -.L80058B08: -/* ACFCA8 80058B08 87B80032 */ lh $t8, 0x32($sp) -/* ACFCAC 80058B0C A6180146 */ sh $t8, 0x146($s0) -.L80058B10: -/* ACFCB0 80058B10 02002025 */ move $a0, $s0 -.L80058B14: -/* ACFCB4 80058B14 2605005C */ addiu $a1, $s0, 0x5c -/* ACFCB8 80058B18 0C01126B */ jal func_800449AC -/* ACFCBC 80058B1C 27A60044 */ addiu $a2, $sp, 0x44 -/* ACFCC0 80058B20 3C01C6FA */ li $at, 0xC6FA0000 # 0.000000 -/* ACFCC4 80058B24 44812000 */ mtc1 $at, $f4 -/* ACFCC8 80058B28 E7A0004C */ swc1 $f0, 0x4c($sp) -/* ACFCCC 80058B2C 46040032 */ c.eq.s $f0, $f4 -/* ACFCD0 80058B30 00000000 */ nop -/* ACFCD4 80058B34 45030056 */ bc1tl .L80058C90 -/* ACFCD8 80058B38 8603014C */ lh $v1, 0x14c($s0) -/* ACFCDC 80058B3C 8603014C */ lh $v1, 0x14c($s0) -/* ACFCE0 80058B40 E6000114 */ swc1 $f0, 0x114($s0) -/* ACFCE4 80058B44 26190120 */ addiu $t9, $s0, 0x120 -/* ACFCE8 80058B48 30680100 */ andi $t0, $v1, 0x100 -/* ACFCEC 80058B4C 1500000B */ bnez $t0, .L80058B7C -/* ACFCF0 80058B50 AFB9002C */ sw $t9, 0x2c($sp) -/* ACFCF4 80058B54 34690100 */ ori $t1, $v1, 0x100 -/* ACFCF8 80058B58 3C048014 */ lui $a0, %hi(D_80139984) # $a0, 0x8014 -/* ACFCFC 80058B5C A609014C */ sh $t1, 0x14c($s0) -/* ACFD00 80058B60 0C00084C */ jal osSyncPrintf -/* ACFD04 80058B64 24849984 */ addiu $a0, %lo(D_80139984) # addiu $a0, $a0, -0x667c -/* ACFD08 80058B68 8E04008C */ lw $a0, 0x8c($s0) -/* ACFD0C 80058B6C 0C01C180 */ jal func_80070600 -/* ACFD10 80058B70 8FA50044 */ lw $a1, 0x44($sp) -/* ACFD14 80058B74 240A0050 */ li $t2, 80 -/* ACFD18 80058B78 A60A0150 */ sh $t2, 0x150($s0) -.L80058B7C: -/* ACFD1C 80058B7C 0C03DA0A */ jal func_800F6828 -/* ACFD20 80058B80 24040020 */ li $a0, 32 -/* ACFD24 80058B84 3C0B8016 */ lui $t3, %hi(gGameInfo) # $t3, 0x8016 -/* ACFD28 80058B88 8D6BFA90 */ lw $t3, %lo(gGameInfo)($t3) -/* ACFD2C 80058B8C 8FAD002C */ lw $t5, 0x2c($sp) -/* ACFD30 80058B90 856C02F6 */ lh $t4, 0x2f6($t3) -/* ACFD34 80058B94 5180000A */ beql $t4, $zero, .L80058BC0 -/* ACFD38 80058B98 8FB9002C */ lw $t9, 0x2c($sp) -/* ACFD3C 80058B9C 0C024BEB */ jal Quake_RemoveFromIdx -/* ACFD40 80058BA0 85A40000 */ lh $a0, ($t5) -/* ACFD44 80058BA4 8FAF002C */ lw $t7, 0x2c($sp) -/* ACFD48 80058BA8 240EFFFF */ li $t6, -1 -/* ACFD4C 80058BAC 3C188016 */ lui $t8, %hi(gGameInfo) # $t8, 0x8016 -/* ACFD50 80058BB0 A5EE0000 */ sh $t6, ($t7) -/* ACFD54 80058BB4 8F18FA90 */ lw $t8, %lo(gGameInfo)($t8) -/* ACFD58 80058BB8 A70002F6 */ sh $zero, 0x2f6($t8) -/* ACFD5C 80058BBC 8FB9002C */ lw $t9, 0x2c($sp) -.L80058BC0: -/* ACFD60 80058BC0 2401FFFF */ li $at, -1 -/* ACFD64 80058BC4 87240000 */ lh $a0, ($t9) -/* ACFD68 80058BC8 50810006 */ beql $a0, $at, .L80058BE4 -/* ACFD6C 80058BCC 02002025 */ move $a0, $s0 -/* ACFD70 80058BD0 0C024B8F */ jal Quake_GetCountdown -/* ACFD74 80058BD4 00000000 */ nop -/* ACFD78 80058BD8 2401000A */ li $at, 10 -/* ACFD7C 80058BDC 14410015 */ bne $v0, $at, .L80058C34 -/* ACFD80 80058BE0 02002025 */ move $a0, $s0 -.L80058BE4: -/* ACFD84 80058BE4 0C024BE2 */ jal Quake_Add -/* ACFD88 80058BE8 24050005 */ li $a1, 5 -/* ACFD8C 80058BEC 8FA8002C */ lw $t0, 0x2c($sp) -/* ACFD90 80058BF0 10400010 */ beqz $v0, .L80058C34 -/* ACFD94 80058BF4 A5020000 */ sh $v0, ($t0) -/* ACFD98 80058BF8 8FA9002C */ lw $t1, 0x2c($sp) -/* ACFD9C 80058BFC 24050226 */ li $a1, 550 -/* ACFDA0 80058C00 0C024B6B */ jal Quake_SetSpeed -/* ACFDA4 80058C04 85240000 */ lh $a0, ($t1) -/* ACFDA8 80058C08 8FAA002C */ lw $t2, 0x2c($sp) -/* ACFDAC 80058C0C 24050001 */ li $a1, 1 -/* ACFDB0 80058C10 24060001 */ li $a2, 1 -/* ACFDB4 80058C14 85440000 */ lh $a0, ($t2) -/* ACFDB8 80058C18 AFA00010 */ sw $zero, 0x10($sp) -/* ACFDBC 80058C1C 0C024B9C */ jal Quake_SetQuakeValues -/* ACFDC0 80058C20 240700B4 */ li $a3, 180 -/* ACFDC4 80058C24 8FAB002C */ lw $t3, 0x2c($sp) -/* ACFDC8 80058C28 240503E8 */ li $a1, 1000 -/* ACFDCC 80058C2C 0C024B7C */ jal Quake_SetCountdown -/* ACFDD0 80058C30 85640000 */ lh $a0, ($t3) -.L80058C34: -/* ACFDD4 80058C34 86020150 */ lh $v0, 0x150($s0) -/* ACFDD8 80058C38 58400008 */ blezl $v0, .L80058C5C -/* ACFDDC 80058C3C 8E0F008C */ lw $t7, 0x8c($s0) -/* ACFDE0 80058C40 860D0152 */ lh $t5, 0x152($s0) -/* ACFDE4 80058C44 244CFFFF */ addiu $t4, $v0, -1 -/* ACFDE8 80058C48 A60C0150 */ sh $t4, 0x150($s0) -/* ACFDEC 80058C4C 35AE0008 */ ori $t6, $t5, 8 -/* ACFDF0 80058C50 10000024 */ b .L80058CE4 -/* ACFDF4 80058C54 A60E0152 */ sh $t6, 0x152($s0) -/* ACFDF8 80058C58 8E0F008C */ lw $t7, 0x8c($s0) -.L80058C5C: -/* ACFDFC 80058C5C 24010049 */ li $at, 73 -/* ACFE00 80058C60 85F800A4 */ lh $t8, 0xa4($t7) -/* ACFE04 80058C64 57010006 */ bnel $t8, $at, .L80058C80 -/* ACFE08 80058C68 86090152 */ lh $t1, 0x152($s0) -/* ACFE0C 80058C6C 86190152 */ lh $t9, 0x152($s0) -/* ACFE10 80058C70 37280010 */ ori $t0, $t9, 0x10 -/* ACFE14 80058C74 1000001B */ b .L80058CE4 -/* ACFE18 80058C78 A6080152 */ sh $t0, 0x152($s0) -/* ACFE1C 80058C7C 86090152 */ lh $t1, 0x152($s0) -.L80058C80: -/* ACFE20 80058C80 352A0002 */ ori $t2, $t1, 2 -/* ACFE24 80058C84 10000017 */ b .L80058CE4 -/* ACFE28 80058C88 A60A0152 */ sh $t2, 0x152($s0) -/* ACFE2C 80058C8C 8603014C */ lh $v1, 0x14c($s0) -.L80058C90: -/* ACFE30 80058C90 3C048014 */ lui $a0, %hi(D_801399A4) # $a0, 0x8014 -/* ACFE34 80058C94 248499A4 */ addiu $a0, %lo(D_801399A4) # addiu $a0, $a0, -0x665c -/* ACFE38 80058C98 306B0100 */ andi $t3, $v1, 0x100 -/* ACFE3C 80058C9C 1160000F */ beqz $t3, .L80058CDC -/* ACFE40 80058CA0 306CFEFF */ andi $t4, $v1, 0xfeff -/* ACFE44 80058CA4 A60C014C */ sh $t4, 0x14c($s0) -/* ACFE48 80058CA8 260D0120 */ addiu $t5, $s0, 0x120 -/* ACFE4C 80058CAC 0C00084C */ jal osSyncPrintf -/* ACFE50 80058CB0 AFAD002C */ sw $t5, 0x2c($sp) -/* ACFE54 80058CB4 0C01C1A8 */ jal func_800706A0 -/* ACFE58 80058CB8 8E04008C */ lw $a0, 0x8c($s0) -/* ACFE5C 80058CBC 8FAE002C */ lw $t6, 0x2c($sp) -/* ACFE60 80058CC0 85C40000 */ lh $a0, ($t6) -/* ACFE64 80058CC4 50800004 */ beql $a0, $zero, .L80058CD8 -/* ACFE68 80058CC8 A6000150 */ sh $zero, 0x150($s0) -/* ACFE6C 80058CCC 0C024BEB */ jal Quake_RemoveFromIdx -/* ACFE70 80058CD0 00000000 */ nop -/* ACFE74 80058CD4 A6000150 */ sh $zero, 0x150($s0) -.L80058CD8: -/* ACFE78 80058CD8 A6000152 */ sh $zero, 0x152($s0) -.L80058CDC: -/* ACFE7C 80058CDC 0C03DA0A */ jal func_800F6828 -/* ACFE80 80058CE0 00002025 */ move $a0, $zero -.L80058CE4: -/* ACFE84 80058CE4 8FBF0024 */ lw $ra, 0x24($sp) -/* ACFE88 80058CE8 8FB00020 */ lw $s0, 0x20($sp) -/* ACFE8C 80058CEC 27BD0050 */ addiu $sp, $sp, 0x50 -/* ACFE90 80058CF0 03E00008 */ jr $ra -/* ACFE94 80058CF4 00000000 */ nop - diff --git a/asm/non_matchings/code/z_camera/func_80058E8C.s b/asm/non_matchings/code/z_camera/func_80058E8C.s deleted file mode 100644 index d530ff7fd1..0000000000 --- a/asm/non_matchings/code/z_camera/func_80058E8C.s +++ /dev/null @@ -1,273 +0,0 @@ -.late_rodata -glabel D_8013A3F8 - .float 0.01 - -glabel D_8013A3FC - .float -0.01 - -glabel D_8013A400 - .float 0.6 - -glabel D_8013A404 - .float 0.2 - -glabel D_8013A408 - .float -0.3 - -glabel D_8013A40C - .float 0.3 - -glabel D_8013A410 - .float 0.09 - -glabel D_8013A414 - .float 0.01 - -glabel D_8013A418 - .float 359.2 - -glabel D_8013A41C - .float 0.08 - -glabel D_8013A420 - .float 0.45 - -glabel D_8013A424 - .float 0.01 - -glabel D_8013A428 - .float -0.01 - -glabel D_8013A42C - .float 0.6 - -glabel D_8013A430 - .float 182.041672 # 32768 / PI - -.text -glabel func_80058E8C -/* AD002C 80058E8C 27BDFF98 */ addiu $sp, $sp, -0x68 -/* AD0030 80058E90 AFBF0024 */ sw $ra, 0x24($sp) -/* AD0034 80058E94 AFB00020 */ sw $s0, 0x20($sp) -/* AD0038 80058E98 F7B40018 */ sdc1 $f20, 0x18($sp) -/* AD003C 80058E9C 84820152 */ lh $v0, 0x152($a0) -/* AD0040 80058EA0 00808025 */ move $s0, $a0 -/* AD0044 80058EA4 104000C2 */ beqz $v0, .L800591B0 -/* AD0048 80058EA8 304E0004 */ andi $t6, $v0, 4 -/* AD004C 80058EAC 11C00019 */ beqz $t6, .L80058F14 -/* AD0050 80058EB0 30580008 */ andi $t8, $v0, 8 -/* AD0054 80058EB4 3C018014 */ lui $at, %hi(D_8013A3F8) -/* AD0058 80058EB8 C430A3F8 */ lwc1 $f16, %lo(D_8013A3F8)($at) -/* AD005C 80058EBC 3C01432A */ li $at, 0x432A0000 # 0.000000 -/* AD0060 80058EC0 44811000 */ mtc1 $at, $f2 -/* AD0064 80058EC4 3C018014 */ lui $at, %hi(D_8013A3FC) -/* AD0068 80058EC8 C424A3FC */ lwc1 $f4, %lo(D_8013A3FC)($at) -/* AD006C 80058ECC 3C018014 */ lui $at, %hi(D_8013A400) -/* AD0070 80058ED0 44803000 */ mtc1 $zero, $f6 -/* AD0074 80058ED4 C428A400 */ lwc1 $f8, %lo(D_8013A400)($at) -/* AD0078 80058ED8 E7B0003C */ swc1 $f16, 0x3c($sp) -/* AD007C 80058EDC E7A40040 */ swc1 $f4, 0x40($sp) -/* AD0080 80058EE0 E7A60038 */ swc1 $f6, 0x38($sp) -/* AD0084 80058EE4 E7A80034 */ swc1 $f8, 0x34($sp) -/* AD0088 80058EE8 848F0150 */ lh $t7, 0x150($a0) -/* AD008C 80058EEC 3C014270 */ li $at, 0x42700000 # 0.000000 -/* AD0090 80058EF0 44813000 */ mtc1 $at, $f6 -/* AD0094 80058EF4 448F5000 */ mtc1 $t7, $f10 -/* AD0098 80058EF8 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AD009C 80058EFC 44814000 */ mtc1 $at, $f8 -/* AD00A0 80058F00 46805120 */ cvt.s.w $f4, $f10 -/* AD00A4 80058F04 44800000 */ mtc1 $zero, $f0 -/* AD00A8 80058F08 E7A80060 */ swc1 $f8, 0x60($sp) -/* AD00AC 80058F0C 10000054 */ b .L80059060 -/* AD00B0 80058F10 46062503 */ div.s $f20, $f4, $f6 -.L80058F14: -/* AD00B4 80058F14 13000019 */ beqz $t8, .L80058F7C -/* AD00B8 80058F18 30480002 */ andi $t0, $v0, 2 -/* AD00BC 80058F1C 3C018014 */ lui $at, %hi(D_8013A404) -/* AD00C0 80058F20 C42CA404 */ lwc1 $f12, %lo(D_8013A404)($at) -/* AD00C4 80058F24 3C014378 */ li $at, 0x43780000 # 0.000000 -/* AD00C8 80058F28 44810000 */ mtc1 $at, $f0 -/* AD00CC 80058F2C 3C01C2B4 */ li $at, 0xC2B40000 # 0.000000 -/* AD00D0 80058F30 44811000 */ mtc1 $at, $f2 -/* AD00D4 80058F34 3C018014 */ lui $at, %hi(D_8013A408) -/* AD00D8 80058F38 C42AA408 */ lwc1 $f10, %lo(D_8013A408)($at) -/* AD00DC 80058F3C 3C018014 */ lui $at, %hi(D_8013A40C) -/* AD00E0 80058F40 C424A40C */ lwc1 $f4, %lo(D_8013A40C)($at) -/* AD00E4 80058F44 E7AC0038 */ swc1 $f12, 0x38($sp) -/* AD00E8 80058F48 E7AC0034 */ swc1 $f12, 0x34($sp) -/* AD00EC 80058F4C E7AA0040 */ swc1 $f10, 0x40($sp) -/* AD00F0 80058F50 E7A4003C */ swc1 $f4, 0x3c($sp) -/* AD00F4 80058F54 86190150 */ lh $t9, 0x150($s0) -/* AD00F8 80058F58 3C0142A0 */ li $at, 0x42A00000 # 0.000000 -/* AD00FC 80058F5C 44815000 */ mtc1 $at, $f10 -/* AD0100 80058F60 44993000 */ mtc1 $t9, $f6 -/* AD0104 80058F64 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AD0108 80058F68 44812000 */ mtc1 $at, $f4 -/* AD010C 80058F6C 46803220 */ cvt.s.w $f8, $f6 -/* AD0110 80058F70 E7A40060 */ swc1 $f4, 0x60($sp) -/* AD0114 80058F74 1000003A */ b .L80059060 -/* AD0118 80058F78 460A4503 */ div.s $f20, $f8, $f10 -.L80058F7C: -/* AD011C 80058F7C 11000026 */ beqz $t0, .L80059018 -/* AD0120 80058F80 30490001 */ andi $t1, $v0, 1 -/* AD0124 80058F84 3C018014 */ lui $at, %hi(D_8013A410) -/* AD0128 80058F88 C42EA410 */ lwc1 $f14, %lo(D_8013A410)($at) -/* AD012C 80058F8C 3C018014 */ lui $at, %hi(D_8013A414) -/* AD0130 80058F90 C430A414 */ lwc1 $f16, %lo(D_8013A414)($at) -/* AD0134 80058F94 3C014316 */ li $at, 0x43160000 # 0.000000 -/* AD0138 80058F98 44819000 */ mtc1 $at, $f18 -/* AD013C 80058F9C 3C018014 */ lui $at, %hi(D_8013A418) -/* AD0140 80058FA0 C420A418 */ lwc1 $f0, %lo(D_8013A418)($at) -/* AD0144 80058FA4 3C01C194 */ li $at, 0xC1940000 # 0.000000 -/* AD0148 80058FA8 44811000 */ mtc1 $at, $f2 -/* AD014C 80058FAC 3C018014 */ lui $at, %hi(D_8013A41C) -/* AD0150 80058FB0 C426A41C */ lwc1 $f6, %lo(D_8013A41C)($at) -/* AD0154 80058FB4 E7AE0040 */ swc1 $f14, 0x40($sp) -/* AD0158 80058FB8 E7AE003C */ swc1 $f14, 0x3c($sp) -/* AD015C 80058FBC E7B00038 */ swc1 $f16, 0x38($sp) -/* AD0160 80058FC0 E7A60034 */ swc1 $f6, 0x34($sp) -/* AD0164 80058FC4 C60A0060 */ lwc1 $f10, 0x60($s0) -/* AD0168 80058FC8 C6080114 */ lwc1 $f8, 0x114($s0) -/* AD016C 80058FCC 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AD0170 80058FD0 460A4301 */ sub.s $f12, $f8, $f10 -/* AD0174 80058FD4 460C903C */ c.lt.s $f18, $f12 -/* AD0178 80058FD8 00000000 */ nop -/* AD017C 80058FDC 45020005 */ bc1fl .L80058FF4 -/* AD0180 80058FE0 46126383 */ div.s $f14, $f12, $f18 -/* AD0184 80058FE4 44817000 */ mtc1 $at, $f14 -/* AD0188 80058FE8 10000002 */ b .L80058FF4 -/* AD018C 80058FEC 00000000 */ nop -/* AD0190 80058FF0 46126383 */ div.s $f14, $f12, $f18 -.L80058FF4: -/* AD0194 80058FF4 3C018014 */ lui $at, %hi(D_8013A420) -/* AD0198 80058FF8 C42CA420 */ lwc1 $f12, %lo(D_8013A420)($at) -/* AD019C 80058FFC C60600E0 */ lwc1 $f6, 0xe0($s0) -/* AD01A0 80059000 460C7102 */ mul.s $f4, $f14, $f12 -/* AD01A4 80059004 00000000 */ nop -/* AD01A8 80059008 460C3202 */ mul.s $f8, $f6, $f12 -/* AD01AC 8005900C 46082500 */ add.s $f20, $f4, $f8 -/* AD01B0 80059010 10000013 */ b .L80059060 -/* AD01B4 80059014 E7B40060 */ swc1 $f20, 0x60($sp) -.L80059018: -/* AD01B8 80059018 1120006F */ beqz $t1, .L800591D8 -/* AD01BC 8005901C 3C018014 */ lui $at, %hi(D_8013A424) -/* AD01C0 80059020 C430A424 */ lwc1 $f16, %lo(D_8013A424)($at) -/* AD01C4 80059024 3C014316 */ li $at, 0x43160000 # 0.000000 -/* AD01C8 80059028 44811000 */ mtc1 $at, $f2 -/* AD01CC 8005902C 3C018014 */ lui $at, %hi(D_8013A428) -/* AD01D0 80059030 C42AA428 */ lwc1 $f10, %lo(D_8013A428)($at) -/* AD01D4 80059034 3C018014 */ lui $at, %hi(D_8013A42C) -/* AD01D8 80059038 C426A42C */ lwc1 $f6, %lo(D_8013A42C)($at) -/* AD01DC 8005903C 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AD01E0 80059040 44812000 */ mtc1 $at, $f4 -/* AD01E4 80059044 44800000 */ mtc1 $zero, $f0 -/* AD01E8 80059048 4481A000 */ mtc1 $at, $f20 -/* AD01EC 8005904C E7B0003C */ swc1 $f16, 0x3c($sp) -/* AD01F0 80059050 E7B00038 */ swc1 $f16, 0x38($sp) -/* AD01F4 80059054 E7AA0040 */ swc1 $f10, 0x40($sp) -/* AD01F8 80059058 E7A60034 */ swc1 $f6, 0x34($sp) -/* AD01FC 8005905C E7A40060 */ swc1 $f4, 0x60($sp) -.L80059060: -/* AD0200 80059060 3C018014 */ lui $at, %hi(D_8013A430) -/* AD0204 80059064 C42CA430 */ lwc1 $f12, %lo(D_8013A430)($at) -/* AD0208 80059068 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* AD020C 8005906C 44817000 */ mtc1 $at, $f14 -/* AD0210 80059070 460C0202 */ mul.s $f8, $f0, $f12 -/* AD0214 80059074 3C048012 */ lui $a0, %hi(D_8011DB08) # $a0, 0x8012 -/* AD0218 80059078 3C0E8012 */ lui $t6, %hi(D_8011DB0C) # $t6, 0x8012 -/* AD021C 8005907C 460C1102 */ mul.s $f4, $f2, $f12 -/* AD0220 80059080 8484DB08 */ lh $a0, %lo(D_8011DB08)($a0) -/* AD0224 80059084 85CEDB0C */ lh $t6, %lo(D_8011DB0C)($t6) -/* AD0228 80059088 3C018012 */ lui $at, %hi(D_8011DB0C) # $at, 0x8012 -/* AD022C 8005908C 460E4280 */ add.s $f10, $f8, $f14 -/* AD0230 80059090 460E2200 */ add.s $f8, $f4, $f14 -/* AD0234 80059094 4600518D */ trunc.w.s $f6, $f10 -/* AD0238 80059098 4600428D */ trunc.w.s $f10, $f8 -/* AD023C 8005909C 440D3000 */ mfc1 $t5, $f6 -/* AD0240 800590A0 44085000 */ mfc1 $t0, $f10 -/* AD0244 800590A4 008D2021 */ addu $a0, $a0, $t5 -/* AD0248 800590A8 00042400 */ sll $a0, $a0, 0x10 -/* AD024C 800590AC 01C84821 */ addu $t1, $t6, $t0 -/* AD0250 800590B0 A429DB0C */ sh $t1, %lo(D_8011DB0C)($at) -/* AD0254 800590B4 00042403 */ sra $a0, $a0, 0x10 -/* AD0258 800590B8 3C018012 */ lui $at, %hi(D_8011DB08) # $at, 0x8012 -/* AD025C 800590BC 0C01DE0D */ jal Math_Coss -/* AD0260 800590C0 A424DB08 */ sh $a0, %lo(D_8011DB08)($at) -/* AD0264 800590C4 3C048012 */ lui $a0, %hi(D_8011DB08) # $a0, 0x8012 -/* AD0268 800590C8 0C01DE1C */ jal Math_Sins -/* AD026C 800590CC 8484DB08 */ lh $a0, %lo(D_8011DB08)($a0) -/* AD0270 800590D0 3C048012 */ lui $a0, %hi(D_8011DB0C) -/* AD0274 800590D4 0C01DE1C */ jal Math_Sins -/* AD0278 800590D8 8484DB0C */ lh $a0, %lo(D_8011DB0C)($a0) -/* AD027C 800590DC 44801000 */ mtc1 $zero, $f2 -/* AD0280 800590E0 8E04008C */ lw $a0, 0x8c($s0) -/* AD0284 800590E4 44051000 */ mfc1 $a1, $f2 -/* AD0288 800590E8 44061000 */ mfc1 $a2, $f2 -/* AD028C 800590EC 44071000 */ mfc1 $a3, $f2 -/* AD0290 800590F0 0C02A9DB */ jal func_800AA76C -/* AD0294 800590F4 248400B8 */ addiu $a0, $a0, 0xb8 -/* AD0298 800590F8 3C048012 */ lui $a0, %hi(D_8011DB0C) # $a0, 0x8012 -/* AD029C 800590FC 0C01DE1C */ jal Math_Sins -/* AD02A0 80059100 8484DB0C */ lh $a0, %lo(D_8011DB0C)($a0) -/* AD02A4 80059104 3C048012 */ lui $a0, %hi(D_8011DB0C) # $a0, 0x8012 -/* AD02A8 80059108 8484DB0C */ lh $a0, %lo(D_8011DB0C)($a0) -/* AD02AC 8005910C 0C01DE0D */ jal Math_Coss -/* AD02B0 80059110 E7A00028 */ swc1 $f0, 0x28($sp) -/* AD02B4 80059114 3C048012 */ lui $a0, %hi(D_8011DB08) # $a0, 0x8012 -/* AD02B8 80059118 8484DB08 */ lh $a0, %lo(D_8011DB08)($a0) -/* AD02BC 8005911C 0C01DE0D */ jal Math_Coss -/* AD02C0 80059120 E7A0002C */ swc1 $f0, 0x2c($sp) -/* AD02C4 80059124 C7A40040 */ lwc1 $f4, 0x40($sp) -/* AD02C8 80059128 C7A60028 */ lwc1 $f6, 0x28($sp) -/* AD02CC 8005912C 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AD02D0 80059130 46142202 */ mul.s $f8, $f4, $f20 -/* AD02D4 80059134 44811000 */ mtc1 $at, $f2 -/* AD02D8 80059138 8E04008C */ lw $a0, 0x8c($s0) -/* AD02DC 8005913C 248400B8 */ addiu $a0, $a0, 0xb8 -/* AD02E0 80059140 46083282 */ mul.s $f10, $f6, $f8 -/* AD02E4 80059144 C7A8003C */ lwc1 $f8, 0x3c($sp) -/* AD02E8 80059148 C7A6002C */ lwc1 $f6, 0x2c($sp) -/* AD02EC 8005914C 46025100 */ add.s $f4, $f10, $f2 -/* AD02F0 80059150 46144282 */ mul.s $f10, $f8, $f20 -/* AD02F4 80059154 44052000 */ mfc1 $a1, $f4 -/* AD02F8 80059158 460A3102 */ mul.s $f4, $f6, $f10 -/* AD02FC 8005915C C7A60038 */ lwc1 $f6, 0x38($sp) -/* AD0300 80059160 46143282 */ mul.s $f10, $f6, $f20 -/* AD0304 80059164 46022200 */ add.s $f8, $f4, $f2 -/* AD0308 80059168 460A0102 */ mul.s $f4, $f0, $f10 -/* AD030C 8005916C 44064000 */ mfc1 $a2, $f8 -/* AD0310 80059170 46022200 */ add.s $f8, $f4, $f2 -/* AD0314 80059174 44074000 */ mfc1 $a3, $f8 -/* AD0318 80059178 0C02A9E3 */ jal func_800AA78C -/* AD031C 8005917C 00000000 */ nop -/* AD0320 80059180 C7A60034 */ lwc1 $f6, 0x34($sp) -/* AD0324 80059184 C7AA0060 */ lwc1 $f10, 0x60($sp) -/* AD0328 80059188 8E04008C */ lw $a0, 0x8c($s0) -/* AD032C 8005918C 460A3102 */ mul.s $f4, $f6, $f10 -/* AD0330 80059190 248400B8 */ addiu $a0, $a0, 0xb8 -/* AD0334 80059194 44052000 */ mfc1 $a1, $f4 -/* AD0338 80059198 0C02A9EB */ jal func_800AA7AC -/* AD033C 8005919C 00000000 */ nop -/* AD0340 800591A0 860A014C */ lh $t2, 0x14c($s0) -/* AD0344 800591A4 354B0040 */ ori $t3, $t2, 0x40 -/* AD0348 800591A8 1000000B */ b .L800591D8 -/* AD034C 800591AC A60B014C */ sh $t3, 0x14c($s0) -.L800591B0: -/* AD0350 800591B0 860C014C */ lh $t4, 0x14c($s0) -/* AD0354 800591B4 318D0040 */ andi $t5, $t4, 0x40 -/* AD0358 800591B8 51A00008 */ beql $t5, $zero, .L800591DC -/* AD035C 800591BC 8FBF0024 */ lw $ra, 0x24($sp) -/* AD0360 800591C0 8E04008C */ lw $a0, 0x8c($s0) -/* AD0364 800591C4 0C02AA05 */ jal func_800AA814 -/* AD0368 800591C8 248400B8 */ addiu $a0, $a0, 0xb8 -/* AD036C 800591CC 860F014C */ lh $t7, 0x14c($s0) -/* AD0370 800591D0 31F8FFBF */ andi $t8, $t7, 0xffbf -/* AD0374 800591D4 A618014C */ sh $t8, 0x14c($s0) -.L800591D8: -/* AD0378 800591D8 8FBF0024 */ lw $ra, 0x24($sp) -.L800591DC: -/* AD037C 800591DC D7B40018 */ ldc1 $f20, 0x18($sp) -/* AD0380 800591E0 8FB00020 */ lw $s0, 0x20($sp) -/* AD0384 800591E4 03E00008 */ jr $ra -/* AD0388 800591E8 27BD0068 */ addiu $sp, $sp, 0x68 - diff --git a/asm/non_matchings/code/z_camera/func_800591EC.s b/asm/non_matchings/code/z_camera/func_800591EC.s deleted file mode 100644 index 8486dfd05a..0000000000 --- a/asm/non_matchings/code/z_camera/func_800591EC.s +++ /dev/null @@ -1,940 +0,0 @@ -.rdata -glabel D_80139A24 - .asciz "camera: in %x\n" - .balign 4 - -glabel D_80139A34 - .asciz "camera: cut out %x\n" - .balign 4 - -glabel D_80139A48 - .asciz "camera: wait out %x\n" - .balign 4 - -glabel D_80139A60 - .asciz "camera: engine (%d %d %d) %04x \n" - .balign 4 - -glabel D_80139A84 - .asciz "camera: shrink_and_bitem %x(%d)\n" - .balign 4 - -glabel D_80139AA8 - .asciz "camera: engine (%s(%d) %s(%d) %s(%d)) ok!\n" - .balign 4 - -glabel D_80139AD4 - .asciz "camera: debug out\n" - .balign 4 - -glabel D_80139AE8 - .asciz "dir (%d) %d(%f) %d(%f) 0(0) \n" - .balign 4 - -glabel D_80139B08 - .asciz "real (%d) %d(%f) %d(%f) 0(0) \n" - .balign 4 - -glabel D_80139B28 - .asciz "camera: out (%f %f %f) (%f %f %f)\n" - .balign 4 - -glabel D_80139B4C - .asciz "camera: dir (%f %d(%f) %d(%f)) (%f)\n" - .balign 4 - -glabel D_80139B74 - .asciz "camera: foot(%f %f %f) dist (%f)\n" - .balign 4 - -.late_rodata -glabel D_8013A434 - .float 0.01 - -glabel D_8013A438 - .float 0.00003051851 # (1.0f / 32767.0f) - -glabel D_8013A43C - .float 0.00549325 # (180 / 32767.5f) - -glabel D_8013A440 - .float 0.00549325 # (180 / 32767.5f) - -glabel D_8013A444 - .float 0.00549325 # (180 / 32767.5f) - -glabel D_8013A448 - .float 0.00549325 # (180 / 32767.5f) - -glabel D_8013A44C - .float 0.00549325 # (180 / 32767.5f) - -.text -glabel func_800591EC -/* AD038C 800591EC 27BDFF20 */ addiu $sp, $sp, -0xe0 -/* AD0390 800591F0 AFBF0044 */ sw $ra, 0x44($sp) -/* AD0394 800591F4 AFB00040 */ sw $s0, 0x40($sp) -/* AD0398 800591F8 AFA400E0 */ sw $a0, 0xe0($sp) -/* AD039C 800591FC 8CAE008C */ lw $t6, 0x8c($a1) -/* AD03A0 80059200 3C198016 */ lui $t9, %hi(gGameInfo) # $t9, 0x8016 -/* AD03A4 80059204 8F39FA90 */ lw $t9, %lo(gGameInfo)($t9) -/* AD03A8 80059208 8DCF0790 */ lw $t7, 0x790($t6) -/* AD03AC 8005920C 00A08025 */ move $s0, $a1 -/* AD03B0 80059210 3C048014 */ lui $a0, %hi(D_80139A24) # $a0, 0x8014 -/* AD03B4 80059214 8DF80090 */ lw $t8, 0x90($t7) -/* AD03B8 80059218 AFB80058 */ sw $t8, 0x58($sp) -/* AD03BC 8005921C 872902F4 */ lh $t1, 0x2f4($t9) -/* AD03C0 80059220 51200004 */ beql $t1, $zero, .L80059234 -/* AD03C4 80059224 860A0140 */ lh $t2, 0x140($s0) -/* AD03C8 80059228 0C00084C */ jal osSyncPrintf -/* AD03CC 8005922C 24849A24 */ addiu $a0, %lo(D_80139A24) # addiu $a0, $a0, -0x65dc -/* AD03D0 80059230 860A0140 */ lh $t2, 0x140($s0) -.L80059234: -/* AD03D4 80059234 3C0B8016 */ lui $t3, %hi(gGameInfo) # $t3, 0x8016 -/* AD03D8 80059238 3C018012 */ lui $at, %hi(D_8011D3E8) # $at, 0x8012 -/* AD03DC 8005923C 15400012 */ bnez $t2, .L80059288 -/* AD03E0 80059240 00000000 */ nop -/* AD03E4 80059244 8D6BFA90 */ lw $t3, %lo(gGameInfo)($t3) -/* AD03E8 80059248 3C048014 */ lui $a0, %hi(D_80139A34) # $a0, 0x8014 -/* AD03EC 8005924C 24849A34 */ addiu $a0, %lo(D_80139A34) # addiu $a0, $a0, -0x65cc -/* AD03F0 80059250 856C02F4 */ lh $t4, 0x2f4($t3) -/* AD03F4 80059254 51800004 */ beql $t4, $zero, .L80059268 -/* AD03F8 80059258 8A0F0134 */ lwl $t7, 0x134($s0) -/* AD03FC 8005925C 0C00084C */ jal osSyncPrintf -/* AD0400 80059260 02002825 */ move $a1, $s0 -/* AD0404 80059264 8A0F0134 */ lwl $t7, 0x134($s0) -.L80059268: -/* AD0408 80059268 8FAD00E0 */ lw $t5, 0xe0($sp) -/* AD040C 8005926C 9A0F0137 */ lwr $t7, 0x137($s0) -/* AD0410 80059270 A9AF0000 */ swl $t7, ($t5) -/* AD0414 80059274 B9AF0003 */ swr $t7, 3($t5) -/* AD0418 80059278 960F0138 */ lhu $t7, 0x138($s0) -/* AD041C 8005927C A5AF0004 */ sh $t7, 4($t5) -/* AD0420 80059280 1000030C */ b .L80059EB4 -/* AD0424 80059284 8FA200E0 */ lw $v0, 0xe0($sp) -.L80059288: -/* AD0428 80059288 AC20D3E8 */ sw $zero, %lo(D_8011D3E8)($at) -/* AD042C 8005928C 8E050090 */ lw $a1, 0x90($s0) -/* AD0430 80059290 10A000CC */ beqz $a1, .L800595C4 -/* AD0434 80059294 00000000 */ nop -/* AD0438 80059298 0C00BBD1 */ jal func_8002EF44 -/* AD043C 8005929C 27A40080 */ addiu $a0, $sp, 0x80 -/* AD0440 800592A0 26050094 */ addiu $a1, $s0, 0x94 -/* AD0444 800592A4 AFA50050 */ sw $a1, 0x50($sp) -/* AD0448 800592A8 0C01F00A */ jal OLib_Vec3fDistXZ -/* AD044C 800592AC 27A40080 */ addiu $a0, $sp, 0x80 -/* AD0450 800592B0 E7A000A0 */ swc1 $f0, 0xa0($sp) -/* AD0454 800592B4 E60000D8 */ swc1 $f0, 0xd8($s0) -/* AD0458 800592B8 0C00B739 */ jal func_8002DCE4 -/* AD045C 800592BC 8E040090 */ lw $a0, 0x90($s0) -/* AD0460 800592C0 3C188016 */ lui $t8, %hi(gGameInfo) # $t8, 0x8016 -/* AD0464 800592C4 8F18FA90 */ lw $t8, %lo(gGameInfo)($t8) -/* AD0468 800592C8 3C018014 */ lui $at, %hi(D_8013A434) -/* AD046C 800592CC C428A434 */ lwc1 $f8, %lo(D_8013A434)($at) -/* AD0470 800592D0 871901A4 */ lh $t9, 0x1a4($t8) -/* AD0474 800592D4 C7B200A0 */ lwc1 $f18, 0xa0($sp) -/* AD0478 800592D8 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AD047C 800592DC 44992000 */ mtc1 $t9, $f4 -/* AD0480 800592E0 44817000 */ mtc1 $at, $f14 -/* AD0484 800592E4 468021A0 */ cvt.s.w $f6, $f4 -/* AD0488 800592E8 46083282 */ mul.s $f10, $f6, $f8 -/* AD048C 800592EC 00000000 */ nop -/* AD0490 800592F0 46005402 */ mul.s $f16, $f10, $f0 -/* AD0494 800592F4 0C01F02A */ jal OLib_ClampMaxDist -/* AD0498 800592F8 46109303 */ div.s $f12, $f18, $f16 -/* AD049C 800592FC E60000E0 */ swc1 $f0, 0xe0($s0) -/* AD04A0 80059300 C7A40080 */ lwc1 $f4, 0x80($sp) -/* AD04A4 80059304 C6060094 */ lwc1 $f6, 0x94($s0) -/* AD04A8 80059308 C6120098 */ lwc1 $f18, 0x98($s0) -/* AD04AC 8005930C 27AA0080 */ addiu $t2, $sp, 0x80 -/* AD04B0 80059310 46062201 */ sub.s $f8, $f4, $f6 -/* AD04B4 80059314 C606009C */ lwc1 $f6, 0x9c($s0) -/* AD04B8 80059318 27A900AC */ addiu $t1, $sp, 0xac -/* AD04BC 8005931C E60800F0 */ swc1 $f8, 0xf0($s0) -/* AD04C0 80059320 C7AA0084 */ lwc1 $f10, 0x84($sp) -/* AD04C4 80059324 46125401 */ sub.s $f16, $f10, $f18 -/* AD04C8 80059328 E61000F4 */ swc1 $f16, 0xf4($s0) -/* AD04CC 8005932C C7A40088 */ lwc1 $f4, 0x88($sp) -/* AD04D0 80059330 46062201 */ sub.s $f8, $f4, $f6 -/* AD04D4 80059334 E60800F8 */ swc1 $f8, 0xf8($s0) -/* AD04D8 80059338 8D4C0000 */ lw $t4, ($t2) -/* AD04DC 8005933C AD2C0000 */ sw $t4, ($t1) -/* AD04E0 80059340 8D4B0004 */ lw $t3, 4($t2) -/* AD04E4 80059344 AD2B0004 */ sw $t3, 4($t1) -/* AD04E8 80059348 8D4C0008 */ lw $t4, 8($t2) -/* AD04EC 8005934C AD2C0008 */ sw $t4, 8($t1) -/* AD04F0 80059350 0C00B721 */ jal Player_GetCameraYOffset -/* AD04F4 80059354 8E040090 */ lw $a0, 0x90($s0) -/* AD04F8 80059358 C7AA00B0 */ lwc1 $f10, 0xb0($sp) -/* AD04FC 8005935C 3C068016 */ lui $a2, %hi(D_8015CE4C) # $a2, 0x8016 -/* AD0500 80059360 27AE00AC */ addiu $t6, $sp, 0xac -/* AD0504 80059364 46005480 */ add.s $f18, $f10, $f0 -/* AD0508 80059368 24C6CE4C */ addiu $a2, %lo(D_8015CE4C) # addiu $a2, $a2, -0x31b4 -/* AD050C 8005936C 27A700A8 */ addiu $a3, $sp, 0xa8 -/* AD0510 80059370 E7B200B0 */ swc1 $f18, 0xb0($sp) -/* AD0514 80059374 8E0D0090 */ lw $t5, 0x90($s0) -/* AD0518 80059378 8E04008C */ lw $a0, 0x8c($s0) -/* AD051C 8005937C AFAE0014 */ sw $t6, 0x14($sp) -/* AD0520 80059380 AFAD0010 */ sw $t5, 0x10($sp) -/* AD0524 80059384 0C00F283 */ jal func_8003CA0C -/* AD0528 80059388 248507C0 */ addiu $a1, $a0, 0x7c0 -/* AD052C 8005938C 3C01C6FA */ li $at, 0xC6FA0000 # 0.000000 -/* AD0530 80059390 44818000 */ mtc1 $at, $f16 -/* AD0534 80059394 3C038016 */ lui $v1, %hi(D_8015CE4C) # $v1, 0x8016 -/* AD0538 80059398 2463CE4C */ addiu $v1, %lo(D_8015CE4C) # addiu $v1, $v1, -0x31b4 -/* AD053C 8005939C 46100032 */ c.eq.s $f0, $f16 -/* AD0540 800593A0 E7A000A4 */ swc1 $f0, 0xa4($sp) -/* AD0544 800593A4 3C028012 */ lui $v0, %hi(D_8011DB10) # $v0, 0x8012 -/* AD0548 800593A8 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* AD054C 800593AC 4501001D */ bc1t .L80059424 -/* AD0550 800593B0 27AE0080 */ addiu $t6, $sp, 0x80 -/* AD0554 800593B4 8C6F0000 */ lw $t7, ($v1) -/* AD0558 800593B8 3C018014 */ lui $at, %hi(D_8013A438) -/* AD055C 800593BC C422A438 */ lwc1 $f2, %lo(D_8013A438)($at) -/* AD0560 800593C0 85F80008 */ lh $t8, 8($t7) -/* AD0564 800593C4 00001025 */ move $v0, $zero -/* AD0568 800593C8 44982000 */ mtc1 $t8, $f4 -/* AD056C 800593CC 00000000 */ nop -/* AD0570 800593D0 468021A0 */ cvt.s.w $f6, $f4 -/* AD0574 800593D4 46023202 */ mul.s $f8, $f6, $f2 -/* AD0578 800593D8 E6080108 */ swc1 $f8, 0x108($s0) -/* AD057C 800593DC 8C790000 */ lw $t9, ($v1) -/* AD0580 800593E0 8729000A */ lh $t1, 0xa($t9) -/* AD0584 800593E4 44895000 */ mtc1 $t1, $f10 -/* AD0588 800593E8 00000000 */ nop -/* AD058C 800593EC 468054A0 */ cvt.s.w $f18, $f10 -/* AD0590 800593F0 46029402 */ mul.s $f16, $f18, $f2 -/* AD0594 800593F4 E610010C */ swc1 $f16, 0x10c($s0) -/* AD0598 800593F8 8C6A0000 */ lw $t2, ($v1) -/* AD059C 800593FC 854B000C */ lh $t3, 0xc($t2) -/* AD05A0 80059400 448B2000 */ mtc1 $t3, $f4 -/* AD05A4 80059404 00000000 */ nop -/* AD05A8 80059408 468021A0 */ cvt.s.w $f6, $f4 -/* AD05AC 8005940C 46023202 */ mul.s $f8, $f6, $f2 -/* AD05B0 80059410 E6080110 */ swc1 $f8, 0x110($s0) -/* AD05B4 80059414 8FAC00A8 */ lw $t4, 0xa8($sp) -/* AD05B8 80059418 E6000104 */ swc1 $f0, 0x104($s0) -/* AD05BC 8005941C 10000008 */ b .L80059440 -/* AD05C0 80059420 A60C0146 */ sh $t4, 0x146($s0) -.L80059424: -/* AD05C4 80059424 8C42DB10 */ lw $v0, %lo(D_8011DB10)($v0) -/* AD05C8 80059428 44800000 */ mtc1 $zero, $f0 -/* AD05CC 8005942C 44815000 */ mtc1 $at, $f10 -/* AD05D0 80059430 24420001 */ addiu $v0, $v0, 1 -/* AD05D4 80059434 E6000108 */ swc1 $f0, 0x108($s0) -/* AD05D8 80059438 E6000110 */ swc1 $f0, 0x110($s0) -/* AD05DC 8005943C E60A010C */ swc1 $f10, 0x10c($s0) -.L80059440: -/* AD05E0 80059440 8FAD0050 */ lw $t5, 0x50($sp) -/* AD05E4 80059444 8DD80000 */ lw $t8, ($t6) -/* AD05E8 80059448 3C018012 */ lui $at, %hi(D_8011DB10) # $at, 0x8012 -/* AD05EC 8005944C ADB80000 */ sw $t8, ($t5) -/* AD05F0 80059450 8DCF0004 */ lw $t7, 4($t6) -/* AD05F4 80059454 ADAF0004 */ sw $t7, 4($t5) -/* AD05F8 80059458 8DD80008 */ lw $t8, 8($t6) -/* AD05FC 8005945C ADB80008 */ sw $t8, 8($t5) -/* AD0600 80059460 8DCF000C */ lw $t7, 0xc($t6) -/* AD0604 80059464 ADAF000C */ sw $t7, 0xc($t5) -/* AD0608 80059468 8DD80010 */ lw $t8, 0x10($t6) -/* AD060C 8005946C ADB80010 */ sw $t8, 0x10($t5) -/* AD0610 80059470 AC22DB10 */ sw $v0, %lo(D_8011DB10)($at) -/* AD0614 80059474 284100C8 */ slti $at, $v0, 0xc8 -/* AD0618 80059478 10200052 */ beqz $at, .L800595C4 -/* AD061C 8005947C 00000000 */ nop -/* AD0620 80059480 86190140 */ lh $t9, 0x140($s0) -/* AD0624 80059484 24010007 */ li $at, 7 -/* AD0628 80059488 57210008 */ bnel $t9, $at, .L800594AC -/* AD062C 8005948C 8602014C */ lh $v0, 0x14c($s0) -/* AD0630 80059490 0C01622D */ jal func_800588B4 -/* AD0634 80059494 02002025 */ move $a0, $s0 -/* AD0638 80059498 0C01633E */ jal func_80058CF8 -/* AD063C 8005949C 02002025 */ move $a0, $s0 -/* AD0640 800594A0 3C038016 */ lui $v1, %hi(D_8015CE4C) # $v1, 0x8016 -/* AD0644 800594A4 2463CE4C */ addiu $v1, %lo(D_8015CE4C) # addiu $v1, $v1, -0x31b4 -/* AD0648 800594A8 8602014C */ lh $v0, 0x14c($s0) -.L800594AC: -/* AD064C 800594AC 240AFFFF */ li $t2, -1 -/* AD0650 800594B0 30490004 */ andi $t1, $v0, 4 -/* AD0654 800594B4 55200004 */ bnezl $t1, .L800594C8 -/* AD0658 800594B8 304B0001 */ andi $t3, $v0, 1 -/* AD065C 800594BC A60A0156 */ sh $t2, 0x156($s0) -/* AD0660 800594C0 8602014C */ lh $v0, 0x14c($s0) -/* AD0664 800594C4 304B0001 */ andi $t3, $v0, 1 -.L800594C8: -/* AD0668 800594C8 11600022 */ beqz $t3, .L80059554 -/* AD066C 800594CC 304C0004 */ andi $t4, $v0, 4 -/* AD0670 800594D0 11800020 */ beqz $t4, .L80059554 -/* AD0674 800594D4 304D0400 */ andi $t5, $v0, 0x400 -/* AD0678 800594D8 15A0001E */ bnez $t5, .L80059554 -/* AD067C 800594DC 304E0200 */ andi $t6, $v0, 0x200 -/* AD0680 800594E0 11C00004 */ beqz $t6, .L800594F4 -/* AD0684 800594E4 8FAF0058 */ lw $t7, 0x58($sp) -/* AD0688 800594E8 81F8014F */ lb $t8, 0x14f($t7) -/* AD068C 800594EC 24010001 */ li $at, 1 -/* AD0690 800594F0 17010018 */ bne $t8, $at, .L80059554 -.L800594F4: -/* AD0694 800594F4 0002CBC2 */ srl $t9, $v0, 0xf -/* AD0698 800594F8 17200016 */ bnez $t9, .L80059554 -/* AD069C 800594FC C7B200A4 */ lwc1 $f18, 0xa4($sp) -/* AD06A0 80059500 3C01C6FA */ li $at, 0xC6FA0000 # 0.000000 -/* AD06A4 80059504 44818000 */ mtc1 $at, $f16 -/* AD06A8 80059508 02002025 */ move $a0, $s0 -/* AD06AC 8005950C 27A500A8 */ addiu $a1, $sp, 0xa8 -/* AD06B0 80059510 46109032 */ c.eq.s $f18, $f16 -/* AD06B4 80059514 00000000 */ nop -/* AD06B8 80059518 4503000F */ bc1tl .L80059558 -/* AD06BC 8005951C 86050156 */ lh $a1, 0x156($s0) -/* AD06C0 80059520 0C0111E7 */ jal func_8004479C -/* AD06C4 80059524 8C660000 */ lw $a2, ($v1) -/* AD06C8 80059528 00021C00 */ sll $v1, $v0, 0x10 -/* AD06CC 8005952C 00031C03 */ sra $v1, $v1, 0x10 -/* AD06D0 80059530 2401FFFF */ li $at, -1 -/* AD06D4 80059534 10610007 */ beq $v1, $at, .L80059554 -/* AD06D8 80059538 8FA900A8 */ lw $t1, 0xa8($sp) -/* AD06DC 8005953C A6090158 */ sh $t1, 0x158($s0) -/* AD06E0 80059540 8FAA00A8 */ lw $t2, 0xa8($sp) -/* AD06E4 80059544 24010032 */ li $at, 50 -/* AD06E8 80059548 55410003 */ bnel $t2, $at, .L80059558 -/* AD06EC 8005954C 86050156 */ lh $a1, 0x156($s0) -/* AD06F0 80059550 A6030156 */ sh $v1, 0x156($s0) -.L80059554: -/* AD06F4 80059554 86050156 */ lh $a1, 0x156($s0) -.L80059558: -/* AD06F8 80059558 2401FFFF */ li $at, -1 -/* AD06FC 8005955C C7A40084 */ lwc1 $f4, 0x84($sp) -/* AD0700 80059560 10A10018 */ beq $a1, $at, .L800595C4 -/* AD0704 80059564 C7A600A4 */ lwc1 $f6, 0xa4($sp) -/* AD0708 80059568 46062001 */ sub.s $f0, $f4, $f6 -/* AD070C 8005956C 3C014000 */ li $at, 0x40000000 # 0.000000 -/* AD0710 80059570 44814000 */ mtc1 $at, $f8 -/* AD0714 80059574 46000005 */ abs.s $f0, $f0 -/* AD0718 80059578 4608003C */ c.lt.s $f0, $f8 -/* AD071C 8005957C 00000000 */ nop -/* AD0720 80059580 45000010 */ bc1f .L800595C4 -/* AD0724 80059584 00000000 */ nop -/* AD0728 80059588 860B014C */ lh $t3, 0x14c($s0) -/* AD072C 8005958C 8FAD0058 */ lw $t5, 0x58($sp) -/* AD0730 80059590 316C0200 */ andi $t4, $t3, 0x200 -/* AD0734 80059594 51800006 */ beql $t4, $zero, .L800595B0 -/* AD0738 80059598 860F0158 */ lh $t7, 0x158($s0) -/* AD073C 8005959C 81AE014F */ lb $t6, 0x14f($t5) -/* AD0740 800595A0 24010001 */ li $at, 1 -/* AD0744 800595A4 15C10007 */ bne $t6, $at, .L800595C4 -/* AD0748 800595A8 00000000 */ nop -/* AD074C 800595AC 860F0158 */ lh $t7, 0x158($s0) -.L800595B0: -/* AD0750 800595B0 02002025 */ move $a0, $s0 -/* AD0754 800595B4 0C0169EA */ jal func_8005A7A8 -/* AD0758 800595B8 A60F0146 */ sh $t7, 0x146($s0) -/* AD075C 800595BC 2418FFFF */ li $t8, -1 -/* AD0760 800595C0 A6180156 */ sh $t8, 0x156($s0) -.L800595C4: -/* AD0764 800595C4 0C01613A */ jal func_800584E8 -/* AD0768 800595C8 02002025 */ move $a0, $s0 -/* AD076C 800595CC 0C01634D */ jal func_80058D34 -/* AD0770 800595D0 02002025 */ move $a0, $s0 -/* AD0774 800595D4 86190140 */ lh $t9, 0x140($s0) -/* AD0778 800595D8 24010001 */ li $at, 1 -/* AD077C 800595DC 3C098016 */ lui $t1, %hi(gGameInfo) # $t1, 0x8016 -/* AD0780 800595E0 57210012 */ bnel $t9, $at, .L8005962C -/* AD0784 800595E4 860D014C */ lh $t5, 0x14c($s0) -/* AD0788 800595E8 8D29FA90 */ lw $t1, %lo(gGameInfo)($t1) -/* AD078C 800595EC 3C048014 */ lui $a0, %hi(D_80139A48) # $a0, 0x8014 -/* AD0790 800595F0 24849A48 */ addiu $a0, %lo(D_80139A48) # addiu $a0, $a0, -0x65b8 -/* AD0794 800595F4 852A02F4 */ lh $t2, 0x2f4($t1) -/* AD0798 800595F8 51400004 */ beql $t2, $zero, .L8005960C -/* AD079C 800595FC 8A0C0134 */ lwl $t4, 0x134($s0) -/* AD07A0 80059600 0C00084C */ jal osSyncPrintf -/* AD07A4 80059604 02002825 */ move $a1, $s0 -/* AD07A8 80059608 8A0C0134 */ lwl $t4, 0x134($s0) -.L8005960C: -/* AD07AC 8005960C 8FA200E0 */ lw $v0, 0xe0($sp) -/* AD07B0 80059610 9A0C0137 */ lwr $t4, 0x137($s0) -/* AD07B4 80059614 A84C0000 */ swl $t4, ($v0) -/* AD07B8 80059618 B84C0003 */ swr $t4, 3($v0) -/* AD07BC 8005961C 960C0138 */ lhu $t4, 0x138($s0) -/* AD07C0 80059620 10000224 */ b .L80059EB4 -/* AD07C4 80059624 A44C0004 */ sh $t4, 4($v0) -/* AD07C8 80059628 860D014C */ lh $t5, 0x14c($s0) -.L8005962C: -/* AD07CC 8005962C A600014A */ sh $zero, 0x14a($s0) -/* AD07D0 80059630 3C198016 */ lui $t9, %hi(gGameInfo) # $t9, 0x8016 -/* AD07D4 80059634 31AEFBDF */ andi $t6, $t5, 0xfbdf -/* AD07D8 80059638 A60E014C */ sh $t6, 0x14c($s0) -/* AD07DC 8005963C 860F014C */ lh $t7, 0x14c($s0) -/* AD07E0 80059640 3C048014 */ lui $a0, %hi(D_80139A60) # $a0, 0x8014 -/* AD07E4 80059644 24849A60 */ addiu $a0, %lo(D_80139A60) # addiu $a0, $a0, -0x65a0 -/* AD07E8 80059648 35F80010 */ ori $t8, $t7, 0x10 -/* AD07EC 8005964C A618014C */ sh $t8, 0x14c($s0) -/* AD07F0 80059650 8F39FA90 */ lw $t9, %lo(gGameInfo)($t9) -/* AD07F4 80059654 872902F4 */ lh $t1, 0x2f4($t9) -/* AD07F8 80059658 1120000D */ beqz $t1, .L80059690 -/* AD07FC 8005965C 00000000 */ nop -/* AD0800 80059660 86050142 */ lh $a1, 0x142($s0) -/* AD0804 80059664 3C0B8012 */ lui $t3, %hi(sCameraSettings+4) -/* AD0808 80059668 86060144 */ lh $a2, 0x144($s0) -/* AD080C 8005966C 000550C0 */ sll $t2, $a1, 3 -/* AD0810 80059670 016A5821 */ addu $t3, $t3, $t2 -/* AD0814 80059674 8D6BD068 */ lw $t3, %lo(sCameraSettings+4)($t3) -/* AD0818 80059678 000660C0 */ sll $t4, $a2, 3 -/* AD081C 8005967C 860E014C */ lh $t6, 0x14c($s0) -/* AD0820 80059680 016C6821 */ addu $t5, $t3, $t4 -/* AD0824 80059684 85A70000 */ lh $a3, ($t5) -/* AD0828 80059688 0C00084C */ jal osSyncPrintf -/* AD082C 8005968C AFAE0010 */ sw $t6, 0x10($sp) -.L80059690: -/* AD0830 80059690 3C028012 */ lui $v0, %hi(D_8011DB10) # $v0, 0x8012 -/* AD0834 80059694 8C42DB10 */ lw $v0, %lo(D_8011DB10)($v0) -/* AD0838 80059698 284100C8 */ slti $at, $v0, 0xc8 -/* AD083C 8005969C 50200014 */ beql $at, $zero, .L800596F0 -/* AD0840 800596A0 8E0E0090 */ lw $t6, 0x90($s0) -/* AD0844 800596A4 860F0142 */ lh $t7, 0x142($s0) -/* AD0848 800596A8 3C198012 */ lui $t9, %hi(sCameraSettings+4) -/* AD084C 800596AC 86090144 */ lh $t1, 0x144($s0) -/* AD0850 800596B0 000FC0C0 */ sll $t8, $t7, 3 -/* AD0854 800596B4 0338C821 */ addu $t9, $t9, $t8 -/* AD0858 800596B8 8F39D068 */ lw $t9, %lo(sCameraSettings+4)($t9) -/* AD085C 800596BC 000950C0 */ sll $t2, $t1, 3 -/* AD0860 800596C0 02002025 */ move $a0, $s0 -/* AD0864 800596C4 032A5821 */ addu $t3, $t9, $t2 -/* AD0868 800596C8 856C0000 */ lh $t4, ($t3) -/* AD086C 800596CC 3C198012 */ lui $t9, %hi(sCameraFunctions) -/* AD0870 800596D0 000C6880 */ sll $t5, $t4, 2 -/* AD0874 800596D4 032DC821 */ addu $t9, $t9, $t5 -/* AD0878 800596D8 8F39D274 */ lw $t9, %lo(sCameraFunctions)($t9) -/* AD087C 800596DC 0320F809 */ jalr $t9 -/* AD0880 800596E0 00000000 */ nop -/* AD0884 800596E4 1000000E */ b .L80059720 -/* AD0888 800596E8 860F0140 */ lh $t7, 0x140($s0) -/* AD088C 800596EC 8E0E0090 */ lw $t6, 0x90($s0) -.L800596F0: -/* AD0890 800596F0 27A40098 */ addiu $a0, $sp, 0x98 -/* AD0894 800596F4 26050050 */ addiu $a1, $s0, 0x50 -/* AD0898 800596F8 51C00009 */ beql $t6, $zero, .L80059720 -/* AD089C 800596FC 860F0140 */ lh $t7, 0x140($s0) -/* AD08A0 80059700 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AD08A4 80059704 2606005C */ addiu $a2, $s0, 0x5c -/* AD08A8 80059708 02002025 */ move $a0, $s0 -/* AD08AC 8005970C 27A50098 */ addiu $a1, $sp, 0x98 -/* AD08B0 80059710 24060000 */ li $a2, 0 -/* AD08B4 80059714 0C0115EA */ jal func_800457A8 -/* AD08B8 80059718 00003825 */ move $a3, $zero -/* AD08BC 8005971C 860F0140 */ lh $t7, 0x140($s0) -.L80059720: -/* AD08C0 80059720 24010007 */ li $at, 7 -/* AD08C4 80059724 3C028016 */ lui $v0, %hi(gSaveContext+0x135c) # $v0, 0x8016 -/* AD08C8 80059728 15E10038 */ bne $t7, $at, .L8005980C -/* AD08CC 8005972C 00000000 */ nop -/* AD08D0 80059730 8C42F9BC */ lw $v0, %lo(gSaveContext+0x135c)($v0) -/* AD08D4 80059734 3C038012 */ lui $v1, %hi(D_8011D3F0) # $v1, 0x8012 -/* AD08D8 80059738 24010003 */ li $at, 3 -/* AD08DC 8005973C 10400009 */ beqz $v0, .L80059764 -/* AD08E0 80059740 2463D3F0 */ addiu $v1, %lo(D_8011D3F0) # addiu $v1, $v1, -0x2c10 -/* AD08E4 80059744 10410007 */ beq $v0, $at, .L80059764 -/* AD08E8 80059748 3C028012 */ lui $v0, %hi(D_8011D3A0) # $v0, 0x8012 -/* AD08EC 8005974C 2442D3A0 */ addiu $v0, %lo(D_8011D3A0) # addiu $v0, $v0, -0x2c60 -/* AD08F0 80059750 AC400000 */ sw $zero, ($v0) -/* AD08F4 80059754 0C0114D4 */ jal func_80045350 -/* AD08F8 80059758 84440002 */ lh $a0, 2($v0) -/* AD08FC 8005975C 1000002B */ b .L8005980C -/* AD0900 80059760 00000000 */ nop -.L80059764: -/* AD0904 80059764 8C620000 */ lw $v0, ($v1) -/* AD0908 80059768 5040000E */ beql $v0, $zero, .L800597A4 -/* AD090C 8005976C 8E06008C */ lw $a2, 0x8c($s0) -/* AD0910 80059770 86180164 */ lh $t8, 0x164($s0) -/* AD0914 80059774 3C058012 */ lui $a1, %hi(D_8011D3A0) # $a1, 0x8012 -/* AD0918 80059778 24A5D3A0 */ addiu $a1, %lo(D_8011D3A0) # addiu $a1, $a1, -0x2c60 -/* AD091C 8005977C 17000008 */ bnez $t8, .L800597A0 -/* AD0920 80059780 2449FFFF */ addiu $t1, $v0, -1 -/* AD0924 80059784 240A3200 */ li $t2, 12800 -/* AD0928 80059788 ACAA0000 */ sw $t2, ($a1) -/* AD092C 8005978C AC690000 */ sw $t1, ($v1) -/* AD0930 80059790 0C0114D4 */ jal func_80045350 -/* AD0934 80059794 84A40002 */ lh $a0, 2($a1) -/* AD0938 80059798 1000001C */ b .L8005980C -/* AD093C 8005979C 00000000 */ nop -.L800597A0: -/* AD0940 800597A0 8E06008C */ lw $a2, 0x8c($s0) -.L800597A4: -/* AD0944 800597A4 3C0B0001 */ lui $t3, 1 -/* AD0948 800597A8 340CF200 */ li $t4, 61952 -/* AD094C 800597AC 01665821 */ addu $t3, $t3, $a2 -/* AD0950 800597B0 916B241B */ lbu $t3, 0x241b($t3) -/* AD0954 800597B4 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 -/* AD0958 800597B8 3C048012 */ lui $a0, %hi(D_8011D3A0+2) # $a0, 0x8012 -/* AD095C 800597BC 51600007 */ beql $t3, $zero, .L800597DC -/* AD0960 800597C0 90CD1D6C */ lbu $t5, 0x1d6c($a2) -/* AD0964 800597C4 AC2CD3A0 */ sw $t4, %lo(D_8011D3A0)($at) -/* AD0968 800597C8 0C0114D4 */ jal func_80045350 -/* AD096C 800597CC 8484D3A2 */ lh $a0,%lo(D_8011D3A0+2)($a0) -/* AD0970 800597D0 1000000E */ b .L8005980C -/* AD0974 800597D4 00000000 */ nop -/* AD0978 800597D8 90CD1D6C */ lbu $t5, 0x1d6c($a2) -.L800597DC: -/* AD097C 800597DC 24193200 */ li $t9, 12800 -/* AD0980 800597E0 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012 -/* AD0984 800597E4 11A00007 */ beqz $t5, .L80059804 -/* AD0988 800597E8 3C048012 */ lui $a0, %hi(D_8011D3A0+2) -/* AD098C 800597EC AC39D3A0 */ sw $t9, %lo(D_8011D3A0)($at) -/* AD0990 800597F0 3C048012 */ lui $a0, %hi(D_8011D3A0+2) # $a0, 0x8012 -/* AD0994 800597F4 0C0114D4 */ jal func_80045350 -/* AD0998 800597F8 8484D3A2 */ lh $a0,%lo(D_8011D3A0+2)($a0) -/* AD099C 800597FC 10000003 */ b .L8005980C -/* AD09A0 80059800 00000000 */ nop -.L80059804: -/* AD09A4 80059804 0C0114D4 */ jal func_80045350 -/* AD09A8 80059808 8484D3A2 */ lh $a0,%lo(D_8011D3A0+2)($a0) -.L8005980C: -/* AD09AC 8005980C 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 -/* AD09B0 80059810 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* AD09B4 80059814 3C048014 */ lui $a0, %hi(D_80139A84) # $a0, 0x8014 -/* AD09B8 80059818 24849A84 */ addiu $a0, %lo(D_80139A84) # addiu $a0, $a0, -0x657c -/* AD09BC 8005981C 85C202F4 */ lh $v0, 0x2f4($t6) -/* AD09C0 80059820 3C058012 */ lui $a1, %hi(D_8011D3A0) # $a1, 0x8012 -/* AD09C4 80059824 1040000A */ beqz $v0, .L80059850 -/* AD09C8 80059828 00000000 */ nop -/* AD09CC 8005982C 8E0F008C */ lw $t7, 0x8c($s0) -/* AD09D0 80059830 3C060001 */ lui $a2, 1 -/* AD09D4 80059834 8CA5D3A0 */ lw $a1, %lo(D_8011D3A0)($a1) -/* AD09D8 80059838 00CF3021 */ addu $a2, $a2, $t7 -/* AD09DC 8005983C 0C00084C */ jal osSyncPrintf -/* AD09E0 80059840 90C6241B */ lbu $a2, 0x241b($a2) -/* AD09E4 80059844 3C188016 */ lui $t8, %hi(gGameInfo) # $t8, 0x8016 -/* AD09E8 80059848 8F18FA90 */ lw $t8, %lo(gGameInfo)($t8) -/* AD09EC 8005984C 870202F4 */ lh $v0, 0x2f4($t8) -.L80059850: -/* AD09F0 80059850 1040001F */ beqz $v0, .L800598D0 -/* AD09F4 80059854 00000000 */ nop -/* AD09F8 80059858 86060142 */ lh $a2, 0x142($s0) -/* AD09FC 8005985C 2408000C */ li $t0, 12 -/* AD0A00 80059860 86020144 */ lh $v0, 0x144($s0) -/* AD0A04 80059864 00C80019 */ multu $a2, $t0 -/* AD0A08 80059868 3C198012 */ lui $t9, %hi(sCameraSettings+4) -/* AD0A0C 8005986C 000668C0 */ sll $t5, $a2, 3 -/* AD0A10 80059870 032DC821 */ addu $t9, $t9, $t5 -/* AD0A14 80059874 8F39D068 */ lw $t9, %lo(sCameraSettings+4)($t9) -/* AD0A18 80059878 000270C0 */ sll $t6, $v0, 3 -/* AD0A1C 8005987C 3C0A8012 */ lui $t2, %hi(sCameraSettingNames) # $t2, 0x8012 -/* AD0A20 80059880 AFA20010 */ sw $v0, 0x10($sp) -/* AD0A24 80059884 032E7821 */ addu $t7, $t9, $t6 -/* AD0A28 80059888 85E30000 */ lh $v1, ($t7) -/* AD0A2C 8005988C 00004812 */ mflo $t1 -/* AD0A30 80059890 254A9F8C */ addiu $t2, %lo(sCameraSettingNames) # addiu $t2, $t2, -0x6074 -/* AD0A34 80059894 012A2821 */ addu $a1, $t1, $t2 -/* AD0A38 80059898 00480019 */ multu $v0, $t0 -/* AD0A3C 8005989C 3C098012 */ lui $t1, %hi(sCameraFunctionNames) # $t1, 0x8012 -/* AD0A40 800598A0 2529D3F8 */ addiu $t1, %lo(sCameraFunctionNames) # addiu $t1, $t1, -0x2c08 -/* AD0A44 800598A4 3C0C8012 */ lui $t4, %hi(sCameraModeNames) # $t4, 0x8012 -/* AD0A48 800598A8 0003C0C0 */ sll $t8, $v1, 3 -/* AD0A4C 800598AC 03095021 */ addu $t2, $t8, $t1 -/* AD0A50 800598B0 258CA2A4 */ addiu $t4, %lo(sCameraModeNames) # addiu $t4, $t4, -0x5d5c -/* AD0A54 800598B4 3C048014 */ lui $a0, %hi(D_80139AA8) # $a0, 0x8014 -/* AD0A58 800598B8 24849AA8 */ addiu $a0, %lo(D_80139AA8) # addiu $a0, $a0, -0x6558 -/* AD0A5C 800598BC AFAA0014 */ sw $t2, 0x14($sp) -/* AD0A60 800598C0 00005812 */ mflo $t3 -/* AD0A64 800598C4 016C3821 */ addu $a3, $t3, $t4 -/* AD0A68 800598C8 0C00084C */ jal osSyncPrintf -/* AD0A6C 800598CC AFA30018 */ sw $v1, 0x18($sp) -.L800598D0: -/* AD0A70 800598D0 3C0B8016 */ lui $t3, %hi(D_8015BD7C) # $t3, 0x8016 -/* AD0A74 800598D4 8D6BBD7C */ lw $t3, %lo(D_8015BD7C)($t3) -/* AD0A78 800598D8 2401EFFF */ li $at, -4097 -/* AD0A7C 800598DC 3C028012 */ lui $v0, %hi(D_8011D394) # $v0, 0x8012 -/* AD0A80 800598E0 956C0050 */ lhu $t4, 0x50($t3) -/* AD0A84 800598E4 2442D394 */ addiu $v0, %lo(D_8011D394) # addiu $v0, $v0, -0x2c6c -/* AD0A88 800598E8 01816827 */ nor $t5, $t4, $at -/* AD0A8C 800598EC 15A00012 */ bnez $t5, .L80059938 -/* AD0A90 800598F0 00000000 */ nop -/* AD0A94 800598F4 8C590000 */ lw $t9, ($v0) -/* AD0A98 800598F8 3C048016 */ lui $a0, %hi(D_8015BD80) # $a0, 0x8016 -/* AD0A9C 800598FC 2484BD80 */ addiu $a0, %lo(D_8015BD80) # addiu $a0, $a0, -0x4280 -/* AD0AA0 80059900 3B2E0001 */ xori $t6, $t9, 1 -/* AD0AA4 80059904 11C00005 */ beqz $t6, .L8005991C -/* AD0AA8 80059908 AC4E0000 */ sw $t6, ($v0) -/* AD0AAC 8005990C 0C02D379 */ jal func_800B4DE4 -/* AD0AB0 80059910 02002825 */ move $a1, $s0 -/* AD0AB4 80059914 10000008 */ b .L80059938 -/* AD0AB8 80059918 00000000 */ nop -.L8005991C: -/* AD0ABC 8005991C 8E06008C */ lw $a2, 0x8c($s0) -/* AD0AC0 80059920 90D81D6C */ lbu $t8, 0x1d6c($a2) -/* AD0AC4 80059924 00C02025 */ move $a0, $a2 -/* AD0AC8 80059928 13000003 */ beqz $t8, .L80059938 -/* AD0ACC 8005992C 00000000 */ nop -/* AD0AD0 80059930 0C01914D */ jal func_80064534 -/* AD0AD4 80059934 24C51D64 */ addiu $a1, $a2, 0x1d64 -.L80059938: -/* AD0AD8 80059938 3C028012 */ lui $v0, %hi(D_8011D394) # $v0, 0x8012 -/* AD0ADC 8005993C 2442D394 */ addiu $v0, %lo(D_8011D394) # addiu $v0, $v0, -0x2c6c -/* AD0AE0 80059940 8C490000 */ lw $t1, ($v0) -/* AD0AE4 80059944 3C018016 */ lui $at, %hi(D_8015BDC8) -/* AD0AE8 80059948 3C048016 */ lui $a0, %hi(D_8015BD80) # $a0, 0x8016 -/* AD0AEC 8005994C 11200022 */ beqz $t1, .L800599D8 -/* AD0AF0 80059950 3C028016 */ lui $v0, %hi(gGameInfo) -/* AD0AF4 80059954 C42ABDC8 */ lwc1 $f10, %lo(D_8015BDC8)($at) -/* AD0AF8 80059958 8E0A008C */ lw $t2, 0x8c($s0) -/* AD0AFC 8005995C 2484BD80 */ addiu $a0, %lo(D_8015BD80) # addiu $a0, $a0, -0x4280 -/* AD0B00 80059960 02002825 */ move $a1, $s0 -/* AD0B04 80059964 0C02D39F */ jal func_800B4E7C -/* AD0B08 80059968 E54A00D0 */ swc1 $f10, 0xd0($t2) -/* AD0B0C 8005996C 8E04008C */ lw $a0, 0x8c($s0) -/* AD0B10 80059970 3C058016 */ lui $a1, %hi(D_8015BD90) # $a1, 0x8016 -/* AD0B14 80059974 3C068016 */ lui $a2, %hi(D_8015BD84) # $a2, 0x8016 -/* AD0B18 80059978 3C078016 */ lui $a3, %hi(D_8015BD9C) # $a3, 0x8016 -/* AD0B1C 8005997C 24E7BD9C */ addiu $a3, %lo(D_8015BD9C) # addiu $a3, $a3, -0x4264 -/* AD0B20 80059980 24C6BD84 */ addiu $a2, %lo(D_8015BD84) # addiu $a2, $a2, -0x427c -/* AD0B24 80059984 24A5BD90 */ addiu $a1, %lo(D_8015BD90) # addiu $a1, $a1, -0x4270 -/* AD0B28 80059988 0C02A8D6 */ jal func_800AA358 -/* AD0B2C 8005998C 248400B8 */ addiu $a0, $a0, 0xb8 -/* AD0B30 80059990 3C0B8016 */ lui $t3, %hi(gGameInfo) # $t3, 0x8016 -/* AD0B34 80059994 8D6BFA90 */ lw $t3, %lo(gGameInfo)($t3) -/* AD0B38 80059998 3C048014 */ lui $a0, %hi(D_80139AD4) # $a0, 0x8014 -/* AD0B3C 8005999C 856C02F4 */ lh $t4, 0x2f4($t3) -/* AD0B40 800599A0 11800003 */ beqz $t4, .L800599B0 -/* AD0B44 800599A4 00000000 */ nop -/* AD0B48 800599A8 0C00084C */ jal osSyncPrintf -/* AD0B4C 800599AC 24849AD4 */ addiu $a0, %lo(D_80139AD4) # addiu $a0, $a0, -0x652c -.L800599B0: -/* AD0B50 800599B0 3C0D8016 */ lui $t5, %hi(D_8015CE46) # $t5, 0x8016 -/* AD0B54 800599B4 25ADCE46 */ addiu $t5, %lo(D_8015CE46) # addiu $t5, $t5, -0x31ba -/* AD0B58 800599B8 89AE0000 */ lwl $t6, ($t5) -/* AD0B5C 800599BC 8FA200E0 */ lw $v0, 0xe0($sp) -/* AD0B60 800599C0 99AE0003 */ lwr $t6, 3($t5) -/* AD0B64 800599C4 A84E0000 */ swl $t6, ($v0) -/* AD0B68 800599C8 B84E0003 */ swr $t6, 3($v0) -/* AD0B6C 800599CC 95AE0004 */ lhu $t6, 4($t5) -/* AD0B70 800599D0 10000138 */ b .L80059EB4 -/* AD0B74 800599D4 A44E0004 */ sh $t6, 4($v0) -.L800599D8: -/* AD0B78 800599D8 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* AD0B7C 800599DC 24010003 */ li $at, 3 -/* AD0B80 800599E0 02002025 */ move $a0, $s0 -/* AD0B84 800599E4 844F0194 */ lh $t7, 0x194($v0) -/* AD0B88 800599E8 31F8FFF7 */ andi $t8, $t7, 0xfff7 -/* AD0B8C 800599EC A4580194 */ sh $t8, 0x194($v0) -/* AD0B90 800599F0 86090140 */ lh $t1, 0x140($s0) -/* AD0B94 800599F4 1521000A */ bne $t1, $at, .L80059A20 -/* AD0B98 800599F8 00000000 */ nop -/* AD0B9C 800599FC 8A0C0134 */ lwl $t4, 0x134($s0) -/* AD0BA0 80059A00 8FAA00E0 */ lw $t2, 0xe0($sp) -/* AD0BA4 80059A04 9A0C0137 */ lwr $t4, 0x137($s0) -/* AD0BA8 80059A08 A94C0000 */ swl $t4, ($t2) -/* AD0BAC 80059A0C B94C0003 */ swr $t4, 3($t2) -/* AD0BB0 80059A10 960C0138 */ lhu $t4, 0x138($s0) -/* AD0BB4 80059A14 A54C0004 */ sh $t4, 4($t2) -/* AD0BB8 80059A18 10000126 */ b .L80059EB4 -/* AD0BBC 80059A1C 8FA200E0 */ lw $v0, 0xe0($sp) -.L80059A20: -/* AD0BC0 80059A20 0C024BFC */ jal Quake_Calc -/* AD0BC4 80059A24 27A5005C */ addiu $a1, $sp, 0x5c -/* AD0BC8 80059A28 10400038 */ beqz $v0, .L80059B0C -/* AD0BCC 80059A2C AFA200A8 */ sw $v0, 0xa8($sp) -/* AD0BD0 80059A30 860D0142 */ lh $t5, 0x142($s0) -/* AD0BD4 80059A34 24010038 */ li $at, 56 -/* AD0BD8 80059A38 C7B0005C */ lwc1 $f16, 0x5c($sp) -/* AD0BDC 80059A3C 51A10034 */ beql $t5, $at, .L80059B10 -/* AD0BE0 80059A40 8E0C0050 */ lw $t4, 0x50($s0) -/* AD0BE4 80059A44 C6120050 */ lwc1 $f18, 0x50($s0) -/* AD0BE8 80059A48 C7A80060 */ lwc1 $f8, 0x60($sp) -/* AD0BEC 80059A4C 27A40098 */ addiu $a0, $sp, 0x98 -/* AD0BF0 80059A50 46109100 */ add.s $f4, $f18, $f16 -/* AD0BF4 80059A54 C7B00064 */ lwc1 $f16, 0x64($sp) -/* AD0BF8 80059A58 27A500C8 */ addiu $a1, $sp, 0xc8 -/* AD0BFC 80059A5C 27A600D4 */ addiu $a2, $sp, 0xd4 -/* AD0C00 80059A60 E7A400D4 */ swc1 $f4, 0xd4($sp) -/* AD0C04 80059A64 C6060054 */ lwc1 $f6, 0x54($s0) -/* AD0C08 80059A68 46083280 */ add.s $f10, $f6, $f8 -/* AD0C0C 80059A6C C7A80068 */ lwc1 $f8, 0x68($sp) -/* AD0C10 80059A70 E7AA00D8 */ swc1 $f10, 0xd8($sp) -/* AD0C14 80059A74 C6120058 */ lwc1 $f18, 0x58($s0) -/* AD0C18 80059A78 46109100 */ add.s $f4, $f18, $f16 -/* AD0C1C 80059A7C C7B0006C */ lwc1 $f16, 0x6c($sp) -/* AD0C20 80059A80 E7A400DC */ swc1 $f4, 0xdc($sp) -/* AD0C24 80059A84 C606005C */ lwc1 $f6, 0x5c($s0) -/* AD0C28 80059A88 46083280 */ add.s $f10, $f6, $f8 -/* AD0C2C 80059A8C C7A80070 */ lwc1 $f8, 0x70($sp) -/* AD0C30 80059A90 E7AA00C8 */ swc1 $f10, 0xc8($sp) -/* AD0C34 80059A94 C6120060 */ lwc1 $f18, 0x60($s0) -/* AD0C38 80059A98 46109100 */ add.s $f4, $f18, $f16 -/* AD0C3C 80059A9C E7A400CC */ swc1 $f4, 0xcc($sp) -/* AD0C40 80059AA0 C6060064 */ lwc1 $f6, 0x64($s0) -/* AD0C44 80059AA4 46083280 */ add.s $f10, $f6, $f8 -/* AD0C48 80059AA8 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AD0C4C 80059AAC E7AA00D0 */ swc1 $f10, 0xd0($sp) -/* AD0C50 80059AB0 87B9009C */ lh $t9, 0x9c($sp) -/* AD0C54 80059AB4 87AE0074 */ lh $t6, 0x74($sp) -/* AD0C58 80059AB8 87AF009E */ lh $t7, 0x9e($sp) -/* AD0C5C 80059ABC 87B80076 */ lh $t8, 0x76($sp) -/* AD0C60 80059AC0 032E2821 */ addu $a1, $t9, $t6 -/* AD0C64 80059AC4 00052C00 */ sll $a1, $a1, 0x10 -/* AD0C68 80059AC8 01F83021 */ addu $a2, $t7, $t8 -/* AD0C6C 80059ACC 00063400 */ sll $a2, $a2, 0x10 -/* AD0C70 80059AD0 00063403 */ sra $a2, $a2, 0x10 -/* AD0C74 80059AD4 00052C03 */ sra $a1, $a1, 0x10 -/* AD0C78 80059AD8 27A400BC */ addiu $a0, $sp, 0xbc -/* AD0C7C 80059ADC 0C01139A */ jal func_80044E68 -/* AD0C80 80059AE0 8607015A */ lh $a3, 0x15a($s0) -/* AD0C84 80059AE4 87A90078 */ lh $t1, 0x78($sp) -/* AD0C88 80059AE8 3C018014 */ lui $at, %hi(D_8013A43C) -/* AD0C8C 80059AEC C424A43C */ lwc1 $f4, %lo(D_8013A43C)($at) -/* AD0C90 80059AF0 44899000 */ mtc1 $t1, $f18 -/* AD0C94 80059AF4 C60800FC */ lwc1 $f8, 0xfc($s0) -/* AD0C98 80059AF8 46809420 */ cvt.s.w $f16, $f18 -/* AD0C9C 80059AFC 46048182 */ mul.s $f6, $f16, $f4 -/* AD0CA0 80059B00 46064280 */ add.s $f10, $f8, $f6 -/* AD0CA4 80059B04 1000001A */ b .L80059B70 -/* AD0CA8 80059B08 E7AA00B8 */ swc1 $f10, 0xb8($sp) -.L80059B0C: -/* AD0CAC 80059B0C 8E0C0050 */ lw $t4, 0x50($s0) -.L80059B10: -/* AD0CB0 80059B10 27AA00D4 */ addiu $t2, $sp, 0xd4 -/* AD0CB4 80059B14 27AD00C8 */ addiu $t5, $sp, 0xc8 -/* AD0CB8 80059B18 AD4C0000 */ sw $t4, ($t2) -/* AD0CBC 80059B1C 8E0B0054 */ lw $t3, 0x54($s0) -/* AD0CC0 80059B20 27A40098 */ addiu $a0, $sp, 0x98 -/* AD0CC4 80059B24 27A500C8 */ addiu $a1, $sp, 0xc8 -/* AD0CC8 80059B28 AD4B0004 */ sw $t3, 4($t2) -/* AD0CCC 80059B2C 8E0C0058 */ lw $t4, 0x58($s0) -/* AD0CD0 80059B30 27A600D4 */ addiu $a2, $sp, 0xd4 -/* AD0CD4 80059B34 AD4C0008 */ sw $t4, 8($t2) -/* AD0CD8 80059B38 8E0E005C */ lw $t6, 0x5c($s0) -/* AD0CDC 80059B3C ADAE0000 */ sw $t6, ($t5) -/* AD0CE0 80059B40 8E190060 */ lw $t9, 0x60($s0) -/* AD0CE4 80059B44 ADB90004 */ sw $t9, 4($t5) -/* AD0CE8 80059B48 8E0E0064 */ lw $t6, 0x64($s0) -/* AD0CEC 80059B4C 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo -/* AD0CF0 80059B50 ADAE0008 */ sw $t6, 8($t5) -/* AD0CF4 80059B54 27A400BC */ addiu $a0, $sp, 0xbc -/* AD0CF8 80059B58 87A5009C */ lh $a1, 0x9c($sp) -/* AD0CFC 80059B5C 87A6009E */ lh $a2, 0x9e($sp) -/* AD0D00 80059B60 0C01139A */ jal func_80044E68 -/* AD0D04 80059B64 8607015A */ lh $a3, 0x15a($s0) -/* AD0D08 80059B68 C61200FC */ lwc1 $f18, 0xfc($s0) -/* AD0D0C 80059B6C E7B200B8 */ swc1 $f18, 0xb8($sp) -.L80059B70: -/* AD0D10 80059B70 8602015C */ lh $v0, 0x15c($s0) -/* AD0D14 80059B74 27AC00BC */ addiu $t4, $sp, 0xbc -/* AD0D18 80059B78 27AE0068 */ addiu $t6, $sp, 0x68 -/* AD0D1C 80059B7C 304F0004 */ andi $t7, $v0, 4 -/* AD0D20 80059B80 11E0000A */ beqz $t7, .L80059BAC -/* AD0D24 80059B84 3058FFFB */ andi $t8, $v0, 0xfffb -/* AD0D28 80059B88 8E0B0068 */ lw $t3, 0x68($s0) -/* AD0D2C 80059B8C A618015C */ sh $t8, 0x15c($s0) -/* AD0D30 80059B90 27A900BC */ addiu $t1, $sp, 0xbc -/* AD0D34 80059B94 AD2B0000 */ sw $t3, ($t1) -/* AD0D38 80059B98 8E0A006C */ lw $t2, 0x6c($s0) -/* AD0D3C 80059B9C AD2A0004 */ sw $t2, 4($t1) -/* AD0D40 80059BA0 8E0B0070 */ lw $t3, 0x70($s0) -/* AD0D44 80059BA4 10000007 */ b .L80059BC4 -/* AD0D48 80059BA8 AD2B0008 */ sw $t3, 8($t1) -.L80059BAC: -/* AD0D4C 80059BAC 8D990000 */ lw $t9, ($t4) -/* AD0D50 80059BB0 AE190068 */ sw $t9, 0x68($s0) -/* AD0D54 80059BB4 8D8D0004 */ lw $t5, 4($t4) -/* AD0D58 80059BB8 AE0D006C */ sw $t5, 0x6c($s0) -/* AD0D5C 80059BBC 8D990008 */ lw $t9, 8($t4) -/* AD0D60 80059BC0 AE190070 */ sw $t9, 0x70($s0) -.L80059BC4: -/* AD0D64 80059BC4 8DD80000 */ lw $t8, ($t6) -/* AD0D68 80059BC8 02002025 */ move $a0, $s0 -/* AD0D6C 80059BCC AE180080 */ sw $t8, 0x80($s0) -/* AD0D70 80059BD0 8DCF0004 */ lw $t7, 4($t6) -/* AD0D74 80059BD4 AE0F0084 */ sw $t7, 0x84($s0) -/* AD0D78 80059BD8 8DD80008 */ lw $t8, 8($t6) -/* AD0D7C 80059BDC 0C0163A3 */ jal func_80058E8C -/* AD0D80 80059BE0 AE180088 */ sw $t8, 0x88($s0) -/* AD0D84 80059BE4 8E06008C */ lw $a2, 0x8c($s0) -/* AD0D88 80059BE8 24010051 */ li $at, 81 -/* AD0D8C 80059BEC 84C900A4 */ lh $t1, 0xa4($a2) -/* AD0D90 80059BF0 24C400B8 */ addiu $a0, $a2, 0xb8 -/* AD0D94 80059BF4 1521000D */ bne $t1, $at, .L80059C2C -/* AD0D98 80059BF8 3C01426C */ li $at, 0x426C0000 # 0.000000 -/* AD0D9C 80059BFC 44812000 */ mtc1 $at, $f4 -/* AD0DA0 80059C00 C61000FC */ lwc1 $f16, 0xfc($s0) -/* AD0DA4 80059C04 3C053F4A */ lui $a1, (0x3F4A3D71 >> 16) # lui $a1, 0x3f4a -/* AD0DA8 80059C08 34A53D71 */ ori $a1, (0x3F4A3D71 & 0xFFFF) # ori $a1, $a1, 0x3d71 -/* AD0DAC 80059C0C 4604803C */ c.lt.s $f16, $f4 -/* AD0DB0 80059C10 00000000 */ nop -/* AD0DB4 80059C14 45000005 */ bc1f .L80059C2C -/* AD0DB8 80059C18 00000000 */ nop -/* AD0DBC 80059C1C 0C02A90F */ jal View_SetScale -/* AD0DC0 80059C20 24C400B8 */ addiu $a0, $a2, 0xb8 -/* AD0DC4 80059C24 10000004 */ b .L80059C38 -/* AD0DC8 80059C28 C7A800B8 */ lwc1 $f8, 0xb8($sp) -.L80059C2C: -/* AD0DCC 80059C2C 0C02A90F */ jal View_SetScale -/* AD0DD0 80059C30 3C053F80 */ lui $a1, 0x3f80 -/* AD0DD4 80059C34 C7A800B8 */ lwc1 $f8, 0xb8($sp) -.L80059C38: -/* AD0DD8 80059C38 8E0A008C */ lw $t2, 0x8c($s0) -/* AD0DDC 80059C3C 27A500C8 */ addiu $a1, $sp, 0xc8 -/* AD0DE0 80059C40 27A600D4 */ addiu $a2, $sp, 0xd4 -/* AD0DE4 80059C44 E54800D0 */ swc1 $f8, 0xd0($t2) -/* AD0DE8 80059C48 8E04008C */ lw $a0, 0x8c($s0) -/* AD0DEC 80059C4C 27A700BC */ addiu $a3, $sp, 0xbc -/* AD0DF0 80059C50 0C02A8D6 */ jal func_800AA358 -/* AD0DF4 80059C54 248400B8 */ addiu $a0, $a0, 0xb8 -/* AD0DF8 80059C58 87AB009C */ lh $t3, 0x9c($sp) -/* AD0DFC 80059C5C 3C038012 */ lui $v1, %hi(D_8011D3E8) # $v1, 0x8012 -/* AD0E00 80059C60 2463D3E8 */ addiu $v1, %lo(D_8011D3E8) # addiu $v1, $v1, -0x2c18 -/* AD0E04 80059C64 A60B013A */ sh $t3, 0x13a($s0) -/* AD0E08 80059C68 87AC009E */ lh $t4, 0x9e($sp) -/* AD0E0C 80059C6C A600013E */ sh $zero, 0x13e($s0) -/* AD0E10 80059C70 3C0F8016 */ lui $t7, %hi(gGameInfo) # $t7, 0x8016 -/* AD0E14 80059C74 A60C013C */ sh $t4, 0x13c($s0) -/* AD0E18 80059C78 8C6D0000 */ lw $t5, ($v1) -/* AD0E1C 80059C7C 87B9009C */ lh $t9, 0x9c($sp) -/* AD0E20 80059C80 15A00005 */ bnez $t5, .L80059C98 -/* AD0E24 80059C84 00000000 */ nop -/* AD0E28 80059C88 A6190134 */ sh $t9, 0x134($s0) -/* AD0E2C 80059C8C 87AE009E */ lh $t6, 0x9e($sp) -/* AD0E30 80059C90 A6000138 */ sh $zero, 0x138($s0) -/* AD0E34 80059C94 A60E0136 */ sh $t6, 0x136($s0) -.L80059C98: -/* AD0E38 80059C98 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7) -/* AD0E3C 80059C9C 85F802F6 */ lh $t8, 0x2f6($t7) -/* AD0E40 80059CA0 53000029 */ beql $t8, $zero, .L80059D48 -/* AD0E44 80059CA4 86090160 */ lh $t1, 0x160($s0) -/* AD0E48 80059CA8 86060134 */ lh $a2, 0x134($s0) -/* AD0E4C 80059CAC 3C018014 */ lui $at, %hi(D_8013A440) -/* AD0E50 80059CB0 C420A440 */ lwc1 $f0, %lo(D_8013A440)($at) -/* AD0E54 80059CB4 44863000 */ mtc1 $a2, $f6 -/* AD0E58 80059CB8 3C048014 */ lui $a0, %hi(D_80139AE8) # $a0, 0x8014 -/* AD0E5C 80059CBC 24849AE8 */ addiu $a0, %lo(D_80139AE8) # addiu $a0, $a0, -0x6518 -/* AD0E60 80059CC0 468032A0 */ cvt.s.w $f10, $f6 -/* AD0E64 80059CC4 8C650000 */ lw $a1, ($v1) -/* AD0E68 80059CC8 46005482 */ mul.s $f18, $f10, $f0 -/* AD0E6C 80059CCC 46009421 */ cvt.d.s $f16, $f18 -/* AD0E70 80059CD0 F7B00010 */ sdc1 $f16, 0x10($sp) -/* AD0E74 80059CD4 86020136 */ lh $v0, 0x136($s0) -/* AD0E78 80059CD8 44822000 */ mtc1 $v0, $f4 -/* AD0E7C 80059CDC AFA20018 */ sw $v0, 0x18($sp) -/* AD0E80 80059CE0 46802220 */ cvt.s.w $f8, $f4 -/* AD0E84 80059CE4 46004182 */ mul.s $f6, $f8, $f0 -/* AD0E88 80059CE8 460032A1 */ cvt.d.s $f10, $f6 -/* AD0E8C 80059CEC 0C00084C */ jal osSyncPrintf -/* AD0E90 80059CF0 F7AA0020 */ sdc1 $f10, 0x20($sp) -/* AD0E94 80059CF4 8606013A */ lh $a2, 0x13a($s0) -/* AD0E98 80059CF8 3C018014 */ lui $at, %hi(D_8013A444) -/* AD0E9C 80059CFC C420A444 */ lwc1 $f0, %lo(D_8013A444)($at) -/* AD0EA0 80059D00 44869000 */ mtc1 $a2, $f18 -/* AD0EA4 80059D04 3C048014 */ lui $a0, %hi(D_80139B08) # $a0, 0x8014 -/* AD0EA8 80059D08 3C058012 */ lui $a1, %hi(D_8011D3E8) # $a1, 0x8012 -/* AD0EAC 80059D0C 46809420 */ cvt.s.w $f16, $f18 -/* AD0EB0 80059D10 8CA5D3E8 */ lw $a1, %lo(D_8011D3E8)($a1) -/* AD0EB4 80059D14 24849B08 */ addiu $a0, %lo(D_80139B08) # addiu $a0, $a0, -0x64f8 -/* AD0EB8 80059D18 46008102 */ mul.s $f4, $f16, $f0 -/* AD0EBC 80059D1C 46002221 */ cvt.d.s $f8, $f4 -/* AD0EC0 80059D20 F7A80010 */ sdc1 $f8, 0x10($sp) -/* AD0EC4 80059D24 8602013C */ lh $v0, 0x13c($s0) -/* AD0EC8 80059D28 44823000 */ mtc1 $v0, $f6 -/* AD0ECC 80059D2C AFA20018 */ sw $v0, 0x18($sp) -/* AD0ED0 80059D30 468032A0 */ cvt.s.w $f10, $f6 -/* AD0ED4 80059D34 46005482 */ mul.s $f18, $f10, $f0 -/* AD0ED8 80059D38 46009421 */ cvt.d.s $f16, $f18 -/* AD0EDC 80059D3C 0C00084C */ jal osSyncPrintf -/* AD0EE0 80059D40 F7B00020 */ sdc1 $f16, 0x20($sp) -/* AD0EE4 80059D44 86090160 */ lh $t1, 0x160($s0) -.L80059D48: -/* AD0EE8 80059D48 2401FFFF */ li $at, -1 -/* AD0EEC 80059D4C 3C0A8016 */ lui $t2, %hi(D_8015BD7C) # $t2, 0x8016 -/* AD0EF0 80059D50 11210008 */ beq $t1, $at, .L80059D74 -/* AD0EF4 80059D54 3C0D8016 */ lui $t5, %hi(gGameInfo) # $t5, 0x8016 -/* AD0EF8 80059D58 8D4ABD7C */ lw $t2, %lo(D_8015BD7C)($t2) -/* AD0EFC 80059D5C 2401FEFF */ li $at, -257 -/* AD0F00 80059D60 954B0020 */ lhu $t3, 0x20($t2) -/* AD0F04 80059D64 01616027 */ nor $t4, $t3, $at -/* AD0F08 80059D68 15800002 */ bnez $t4, .L80059D74 -/* AD0F0C 80059D6C 00000000 */ nop -/* AD0F10 80059D70 A6000160 */ sh $zero, 0x160($s0) -.L80059D74: -/* AD0F14 80059D74 8DADFA90 */ lw $t5, %lo(gGameInfo)($t5) -/* AD0F18 80059D78 85B902F4 */ lh $t9, 0x2f4($t5) -/* AD0F1C 80059D7C 53200046 */ beql $t9, $zero, .L80059E98 -/* AD0F20 80059D80 8A0B0134 */ lwl $t3, 0x134($s0) -/* AD0F24 80059D84 C6060054 */ lwc1 $f6, 0x54($s0) -/* AD0F28 80059D88 C6040050 */ lwc1 $f4, 0x50($s0) -/* AD0F2C 80059D8C 3C048014 */ lui $a0, %hi(D_80139B28) # $a0, 0x8014 -/* AD0F30 80059D90 460032A1 */ cvt.d.s $f10, $f6 -/* AD0F34 80059D94 46002221 */ cvt.d.s $f8, $f4 -/* AD0F38 80059D98 F7AA0010 */ sdc1 $f10, 0x10($sp) -/* AD0F3C 80059D9C C6120058 */ lwc1 $f18, 0x58($s0) -/* AD0F40 80059DA0 44074000 */ mfc1 $a3, $f8 -/* AD0F44 80059DA4 44064800 */ mfc1 $a2, $f9 -/* AD0F48 80059DA8 46009421 */ cvt.d.s $f16, $f18 -/* AD0F4C 80059DAC 24849B28 */ addiu $a0, %lo(D_80139B28) # addiu $a0, $a0, -0x64d8 -/* AD0F50 80059DB0 F7B00018 */ sdc1 $f16, 0x18($sp) -/* AD0F54 80059DB4 C604005C */ lwc1 $f4, 0x5c($s0) -/* AD0F58 80059DB8 46002221 */ cvt.d.s $f8, $f4 -/* AD0F5C 80059DBC F7A80020 */ sdc1 $f8, 0x20($sp) -/* AD0F60 80059DC0 C6060060 */ lwc1 $f6, 0x60($s0) -/* AD0F64 80059DC4 460032A1 */ cvt.d.s $f10, $f6 -/* AD0F68 80059DC8 F7AA0028 */ sdc1 $f10, 0x28($sp) -/* AD0F6C 80059DCC C6120064 */ lwc1 $f18, 0x64($s0) -/* AD0F70 80059DD0 46009421 */ cvt.d.s $f16, $f18 -/* AD0F74 80059DD4 0C00084C */ jal osSyncPrintf -/* AD0F78 80059DD8 F7B00030 */ sdc1 $f16, 0x30($sp) -/* AD0F7C 80059DDC 87AE009C */ lh $t6, 0x9c($sp) -/* AD0F80 80059DE0 C7A40098 */ lwc1 $f4, 0x98($sp) -/* AD0F84 80059DE4 87AF009E */ lh $t7, 0x9e($sp) -/* AD0F88 80059DE8 448E3000 */ mtc1 $t6, $f6 -/* AD0F8C 80059DEC 46002221 */ cvt.d.s $f8, $f4 -/* AD0F90 80059DF0 3C018014 */ lui $at, %hi(D_8013A448) -/* AD0F94 80059DF4 468032A0 */ cvt.s.w $f10, $f6 -/* AD0F98 80059DF8 44074000 */ mfc1 $a3, $f8 -/* AD0F9C 80059DFC 448F4000 */ mtc1 $t7, $f8 -/* AD0FA0 80059E00 C432A448 */ lwc1 $f18, %lo(D_8013A448)($at) -/* AD0FA4 80059E04 3C018014 */ lui $at, %hi(D_8013A44C) -/* AD0FA8 80059E08 468041A0 */ cvt.s.w $f6, $f8 -/* AD0FAC 80059E0C 46125402 */ mul.s $f16, $f10, $f18 -/* AD0FB0 80059E10 C42AA44C */ lwc1 $f10, %lo(D_8013A44C)($at) -/* AD0FB4 80059E14 AFAE0010 */ sw $t6, 0x10($sp) -/* AD0FB8 80059E18 AFAF0020 */ sw $t7, 0x20($sp) -/* AD0FBC 80059E1C 44064800 */ mfc1 $a2, $f9 -/* AD0FC0 80059E20 460A3482 */ mul.s $f18, $f6, $f10 -/* AD0FC4 80059E24 3C048014 */ lui $a0, %hi(D_80139B4C) # $a0, 0x8014 -/* AD0FC8 80059E28 46008121 */ cvt.d.s $f4, $f16 -/* AD0FCC 80059E2C 24849B4C */ addiu $a0, %lo(D_80139B4C) # addiu $a0, $a0, -0x64b4 -/* AD0FD0 80059E30 F7A40018 */ sdc1 $f4, 0x18($sp) -/* AD0FD4 80059E34 46009421 */ cvt.d.s $f16, $f18 -/* AD0FD8 80059E38 F7B00028 */ sdc1 $f16, 0x28($sp) -/* AD0FDC 80059E3C C60400FC */ lwc1 $f4, 0xfc($s0) -/* AD0FE0 80059E40 46002221 */ cvt.d.s $f8, $f4 -/* AD0FE4 80059E44 0C00084C */ jal osSyncPrintf -/* AD0FE8 80059E48 F7A80030 */ sdc1 $f8, 0x30($sp) -/* AD0FEC 80059E4C 8E180090 */ lw $t8, 0x90($s0) -/* AD0FF0 80059E50 3C048014 */ lui $a0, %hi(D_80139B74) # $a0, 0x8014 -/* AD0FF4 80059E54 24849B74 */ addiu $a0, %lo(D_80139B74) # addiu $a0, $a0, -0x648c -/* AD0FF8 80059E58 1300000E */ beqz $t8, .L80059E94 -/* AD0FFC 80059E5C C7A60080 */ lwc1 $f6, 0x80($sp) -/* AD1000 80059E60 C7B20084 */ lwc1 $f18, 0x84($sp) -/* AD1004 80059E64 C7A40088 */ lwc1 $f4, 0x88($sp) -/* AD1008 80059E68 460032A1 */ cvt.d.s $f10, $f6 -/* AD100C 80059E6C 46009421 */ cvt.d.s $f16, $f18 -/* AD1010 80059E70 46002221 */ cvt.d.s $f8, $f4 -/* AD1014 80059E74 F7B00010 */ sdc1 $f16, 0x10($sp) -/* AD1018 80059E78 F7A80018 */ sdc1 $f8, 0x18($sp) -/* AD101C 80059E7C C60600DC */ lwc1 $f6, 0xdc($s0) -/* AD1020 80059E80 44075000 */ mfc1 $a3, $f10 -/* AD1024 80059E84 44065800 */ mfc1 $a2, $f11 -/* AD1028 80059E88 460032A1 */ cvt.d.s $f10, $f6 -/* AD102C 80059E8C 0C00084C */ jal osSyncPrintf -/* AD1030 80059E90 F7AA0020 */ sdc1 $f10, 0x20($sp) -.L80059E94: -/* AD1034 80059E94 8A0B0134 */ lwl $t3, 0x134($s0) -.L80059E98: -/* AD1038 80059E98 8FA900E0 */ lw $t1, 0xe0($sp) -/* AD103C 80059E9C 9A0B0137 */ lwr $t3, 0x137($s0) -/* AD1040 80059EA0 A92B0000 */ swl $t3, ($t1) -/* AD1044 80059EA4 B92B0003 */ swr $t3, 3($t1) -/* AD1048 80059EA8 960B0138 */ lhu $t3, 0x138($s0) -/* AD104C 80059EAC A52B0004 */ sh $t3, 4($t1) -/* AD1050 80059EB0 8FA200E0 */ lw $v0, 0xe0($sp) -.L80059EB4: -/* AD1054 80059EB4 8FBF0044 */ lw $ra, 0x44($sp) -/* AD1058 80059EB8 8FB00040 */ lw $s0, 0x40($sp) -/* AD105C 80059EBC 27BD00E0 */ addiu $sp, $sp, 0xe0 -/* AD1060 80059EC0 03E00008 */ jr $ra -/* AD1064 80059EC4 00000000 */ nop - diff --git a/asm/non_matchings/code/z_camera/func_8005A7A8.s b/asm/non_matchings/code/z_camera/func_8005A7A8.s deleted file mode 100644 index f23ec5cb29..0000000000 --- a/asm/non_matchings/code/z_camera/func_8005A7A8.s +++ /dev/null @@ -1,87 +0,0 @@ -.rdata -glabel D_80139CC0 - .asciz "\x1b[41;37mcamera: error: illegal camera ID (%d) !! (%d|%d|%d)\n\x1b[m" - .balign 4 - -.text -glabel func_8005A7A8 -/* AD1948 8005A7A8 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* AD194C 8005A7AC AFB10020 */ sw $s1, 0x20($sp) -/* AD1950 8005A7B0 AFB0001C */ sw $s0, 0x1c($sp) -/* AD1954 8005A7B4 2401FFFF */ li $at, -1 -/* AD1958 8005A7B8 00808025 */ move $s0, $a0 -/* AD195C 8005A7BC 00A08825 */ move $s1, $a1 -/* AD1960 8005A7C0 10A10004 */ beq $a1, $at, .L8005A7D4 -/* AD1964 8005A7C4 AFBF0024 */ sw $ra, 0x24($sp) -/* AD1968 8005A7C8 848E0148 */ lh $t6, 0x148($a0) -/* AD196C 8005A7CC 54AE0007 */ bnel $a1, $t6, .L8005A7EC -/* AD1970 8005A7D0 8619014A */ lh $t9, 0x14a($s0) -.L8005A7D4: -/* AD1974 8005A7D4 860F014A */ lh $t7, 0x14a($s0) -/* AD1978 8005A7D8 2402FFFF */ li $v0, -1 -/* AD197C 8005A7DC 35F80040 */ ori $t8, $t7, 0x40 -/* AD1980 8005A7E0 10000033 */ b .L8005A8B0 -/* AD1984 8005A7E4 A618014A */ sh $t8, 0x14a($s0) -/* AD1988 8005A7E8 8619014A */ lh $t9, 0x14a($s0) -.L8005A7EC: -/* AD198C 8005A7EC 02002025 */ move $a0, $s0 -/* AD1990 8005A7F0 33280040 */ andi $t0, $t9, 0x40 -/* AD1994 8005A7F4 5500002F */ bnezl $t0, .L8005A8B4 -/* AD1998 8005A7F8 8FBF0024 */ lw $ra, 0x24($sp) -/* AD199C 8005A7FC 0C0111D0 */ jal func_80044740 -/* AD19A0 8005A800 02202825 */ move $a1, $s1 -/* AD19A4 8005A804 A7A2002E */ sh $v0, 0x2e($sp) -/* AD19A8 8005A808 8609014A */ lh $t1, 0x14a($s0) -/* AD19AC 8005A80C 00022C00 */ sll $a1, $v0, 0x10 -/* AD19B0 8005A810 00052C03 */ sra $a1, $a1, 0x10 -/* AD19B4 8005A814 352A0040 */ ori $t2, $t1, 0x40 -/* AD19B8 8005A818 A60A014A */ sh $t2, 0x14a($s0) -/* AD19BC 8005A81C 02002025 */ move $a0, $s0 -/* AD19C0 8005A820 0C016952 */ jal Camera_ChangeSetting -/* AD19C4 8005A824 24060005 */ li $a2, 5 -/* AD19C8 8005A828 28430000 */ slti $v1, $v0, 0 -/* AD19CC 8005A82C 38630001 */ xori $v1, $v1, 1 -/* AD19D0 8005A830 00031C00 */ sll $v1, $v1, 0x10 -/* AD19D4 8005A834 00031C03 */ sra $v1, $v1, 0x10 -/* AD19D8 8005A838 1460000A */ bnez $v1, .L8005A864 -/* AD19DC 8005A83C 02002025 */ move $a0, $s0 -/* AD19E0 8005A840 860B0142 */ lh $t3, 0x142($s0) -/* AD19E4 8005A844 3C0D8012 */ lui $t5, %hi(sCameraSettings) -/* AD19E8 8005A848 2861FFFF */ slti $at, $v1, -1 -/* AD19EC 8005A84C 000B60C0 */ sll $t4, $t3, 3 -/* AD19F0 8005A850 01AC6821 */ addu $t5, $t5, $t4 -/* AD19F4 8005A854 8DADD064 */ lw $t5, %lo(sCameraSettings)($t5) -/* AD19F8 8005A858 000D7000 */ sll $t6, $t5, 0 -/* AD19FC 8005A85C 05C10009 */ bgez $t6, .L8005A884 -/* AD1A00 8005A860 00000000 */ nop -.L8005A864: -/* AD1A04 8005A864 860F014A */ lh $t7, 0x14a($s0) -/* AD1A08 8005A868 A6110148 */ sh $s1, 0x148($s0) -/* AD1A0C 8005A86C 86050144 */ lh $a1, 0x144($s0) -/* AD1A10 8005A870 35F80004 */ ori $t8, $t7, 4 -/* AD1A14 8005A874 0C01144A */ jal Camera_CopyModeValuesToPREG -/* AD1A18 8005A878 A618014A */ sh $t8, 0x14a($s0) -/* AD1A1C 8005A87C 1000000B */ b .L8005A8AC -/* AD1A20 8005A880 3C018000 */ lui $at, 0x8000 -.L8005A884: -/* AD1A24 8005A884 10200008 */ beqz $at, .L8005A8A8 -/* AD1A28 8005A888 3C048014 */ lui $a0, %hi(D_80139CC0) # $a0, 0x8014 -/* AD1A2C 8005A88C 87B9002E */ lh $t9, 0x2e($sp) -/* AD1A30 8005A890 86060164 */ lh $a2, 0x164($s0) -/* AD1A34 8005A894 24849CC0 */ addiu $a0, %lo(D_80139CC0) # addiu $a0, $a0, -0x6340 -/* AD1A38 8005A898 02202825 */ move $a1, $s1 -/* AD1A3C 8005A89C 24070032 */ li $a3, 50 -/* AD1A40 8005A8A0 0C00084C */ jal osSyncPrintf -/* AD1A44 8005A8A4 AFB90010 */ sw $t9, 0x10($sp) -.L8005A8A8: -/* AD1A48 8005A8A8 3C018000 */ lui $at, 0x8000 -.L8005A8AC: -/* AD1A4C 8005A8AC 02211025 */ or $v0, $s1, $at -.L8005A8B0: -/* AD1A50 8005A8B0 8FBF0024 */ lw $ra, 0x24($sp) -.L8005A8B4: -/* AD1A54 8005A8B4 8FB0001C */ lw $s0, 0x1c($sp) -/* AD1A58 8005A8B8 8FB10020 */ lw $s1, 0x20($sp) -/* AD1A5C 8005A8BC 03E00008 */ jr $ra -/* AD1A60 8005A8C0 27BD0030 */ addiu $sp, $sp, 0x30 - diff --git a/asm/non_matchings/code/z_camera/func_8005A8C4.s b/asm/non_matchings/code/z_camera/func_8005A8C4.s deleted file mode 100644 index 50b7060c9a..0000000000 --- a/asm/non_matchings/code/z_camera/func_8005A8C4.s +++ /dev/null @@ -1,38 +0,0 @@ -glabel func_8005A8C4 -/* AD1A64 8005A8C4 3C0E8012 */ lui $t6, %hi(D_8011D394) # $t6, 0x8012 -/* AD1A68 8005A8C8 8DCED394 */ lw $t6, %lo(D_8011D394)($t6) -/* AD1A6C 8005A8CC 3C0F8016 */ lui $t7, %hi(D_8015CE46) # $t7, 0x8016 -/* AD1A70 8005A8D0 25EFCE46 */ addiu $t7, %lo(D_8015CE46) # addiu $t7, $t7, -0x31ba -/* AD1A74 8005A8D4 51C0000A */ beql $t6, $zero, .L8005A900 -/* AD1A78 8005A8D8 88A90134 */ lwl $t1, 0x134($a1) -/* AD1A7C 8005A8DC 89F90000 */ lwl $t9, ($t7) -/* AD1A80 8005A8E0 99F90003 */ lwr $t9, 3($t7) -/* AD1A84 8005A8E4 00801025 */ move $v0, $a0 -/* AD1A88 8005A8E8 A8990000 */ swl $t9, ($a0) -/* AD1A8C 8005A8EC B8990003 */ swr $t9, 3($a0) -/* AD1A90 8005A8F0 95F90004 */ lhu $t9, 4($t7) -/* AD1A94 8005A8F4 03E00008 */ jr $ra -/* AD1A98 8005A8F8 A4990004 */ sh $t9, 4($a0) - -/* AD1A9C 8005A8FC 88A90134 */ lwl $t1, 0x134($a1) -.L8005A900: -/* AD1AA0 8005A900 98A90137 */ lwr $t1, 0x137($a1) -/* AD1AA4 8005A904 00801025 */ move $v0, $a0 -/* AD1AA8 8005A908 A8890000 */ swl $t1, ($a0) -/* AD1AAC 8005A90C B8890003 */ swr $t1, 3($a0) -/* AD1AB0 8005A910 94A90138 */ lhu $t1, 0x138($a1) -/* AD1AB4 8005A914 A4890004 */ sh $t1, 4($a0) -/* AD1AB8 8005A918 03E00008 */ jr $ra -/* AD1ABC 8005A91C 00000000 */ nop - -/* AD1AC0 8005A920 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* AD1AC4 8005A924 AFBF0014 */ sw $ra, 0x14($sp) -/* AD1AC8 8005A928 00802825 */ move $a1, $a0 -/* AD1ACC 8005A92C 0C016A31 */ jal func_8005A8C4 -/* AD1AD0 8005A930 27A40018 */ addiu $a0, $sp, 0x18 -/* AD1AD4 8005A934 8FBF0014 */ lw $ra, 0x14($sp) -/* AD1AD8 8005A938 87A20018 */ lh $v0, 0x18($sp) -/* AD1ADC 8005A93C 27BD0020 */ addiu $sp, $sp, 0x20 -/* AD1AE0 8005A940 03E00008 */ jr $ra -/* AD1AE4 8005A944 00000000 */ nop - diff --git a/asm/non_matchings/code/z_camera/func_8005A970.s b/asm/non_matchings/code/z_camera/func_8005A970.s deleted file mode 100644 index 6036d57d8d..0000000000 --- a/asm/non_matchings/code/z_camera/func_8005A970.s +++ /dev/null @@ -1,27 +0,0 @@ -glabel func_8005A970 -/* AD1B10 8005A970 3C0E8012 */ lui $t6, %hi(D_8011D394) # $t6, 0x8012 -/* AD1B14 8005A974 8DCED394 */ lw $t6, %lo(D_8011D394)($t6) -/* AD1B18 8005A978 3C0F8016 */ lui $t7, %hi(D_8015CE46) # $t7, 0x8016 -/* AD1B1C 8005A97C 25EFCE46 */ addiu $t7, %lo(D_8015CE46) # addiu $t7, $t7, -0x31ba -/* AD1B20 8005A980 51C0000A */ beql $t6, $zero, .L8005A9AC -/* AD1B24 8005A984 88A9013A */ lwl $t1, 0x13a($a1) -/* AD1B28 8005A988 89F90000 */ lwl $t9, ($t7) -/* AD1B2C 8005A98C 99F90003 */ lwr $t9, 3($t7) -/* AD1B30 8005A990 00801025 */ move $v0, $a0 -/* AD1B34 8005A994 A8990000 */ swl $t9, ($a0) -/* AD1B38 8005A998 B8990003 */ swr $t9, 3($a0) -/* AD1B3C 8005A99C 95F90004 */ lhu $t9, 4($t7) -/* AD1B40 8005A9A0 03E00008 */ jr $ra -/* AD1B44 8005A9A4 A4990004 */ sh $t9, 4($a0) - -/* AD1B48 8005A9A8 88A9013A */ lwl $t1, 0x13a($a1) -.L8005A9AC: -/* AD1B4C 8005A9AC 98A9013D */ lwr $t1, 0x13d($a1) -/* AD1B50 8005A9B0 00801025 */ move $v0, $a0 -/* AD1B54 8005A9B4 A8890000 */ swl $t1, ($a0) -/* AD1B58 8005A9B8 B8890003 */ swr $t1, 3($a0) -/* AD1B5C 8005A9BC 94A9013E */ lhu $t1, 0x13e($a1) -/* AD1B60 8005A9C0 A4890004 */ sh $t1, 4($a0) -/* AD1B64 8005A9C4 03E00008 */ jr $ra -/* AD1B68 8005A9C8 00000000 */ nop - diff --git a/asm/non_matchings/code/z_onepointdemo/func_8007C850.s b/asm/non_matchings/code/z_onepointdemo/func_8007C850.s index 63856f460e..14b6a06583 100644 --- a/asm/non_matchings/code/z_onepointdemo/func_8007C850.s +++ b/asm/non_matchings/code/z_onepointdemo/func_8007C850.s @@ -1017,7 +1017,7 @@ glabel func_8007C850 /* AF4000 8007CE60 00052C03 */ sra $a1, $a1, 0x10 /* AF4004 8007CE64 02402025 */ move $a0, $s2 /* AF4008 8007CE68 25C60050 */ addiu $a2, $t6, 0x50 -/* AF400C 8007CE6C 0C030136 */ jal func_800C04D8 +/* AF400C 8007CE6C 0C030136 */ jal Gameplay_CameraSetAtEye /* AF4010 8007CE70 25C7005C */ addiu $a3, $t6, 0x5c /* AF4014 8007CE74 10000C50 */ b .L8007FFB8 /* AF4018 8007CE78 A660015A */ sh $zero, 0x15a($s3) @@ -1703,13 +1703,13 @@ glabel func_8007C850 /* AF4A40 8007D8A0 00152C00 */ sll $a1, $s5, 0x10 /* AF4A44 8007D8A4 00052C03 */ sra $a1, $a1, 0x10 /* AF4A48 8007D8A8 02402025 */ move $a0, $s2 -/* AF4A4C 8007D8AC 0C03021D */ jal func_800C0874 +/* AF4A4C 8007D8AC 0C03021D */ jal Gameplay_CameraChangeSetting /* AF4A50 8007D8B0 24060022 */ li $a2, 34 /* AF4A54 8007D8B4 00152C00 */ sll $a1, $s5, 0x10 /* AF4A58 8007D8B8 00052C03 */ sra $a1, $a1, 0x10 /* AF4A5C 8007D8BC 02402025 */ move $a0, $s2 /* AF4A60 8007D8C0 02203025 */ move $a2, $s1 -/* AF4A64 8007D8C4 0C030136 */ jal func_800C04D8 +/* AF4A64 8007D8C4 0C030136 */ jal Gameplay_CameraSetAtEye /* AF4A68 8007D8C8 27A700B4 */ addiu $a3, $sp, 0xb4 /* AF4A6C 8007D8CC 02402025 */ move $a0, $s2 /* AF4A70 8007D8D0 00002825 */ move $a1, $zero @@ -1772,23 +1772,23 @@ glabel func_8007C850 /* AF4B48 8007D9A8 00152C00 */ sll $a1, $s5, 0x10 /* AF4B4C 8007D9AC 00052C03 */ sra $a1, $a1, 0x10 /* AF4B50 8007D9B0 02402025 */ move $a0, $s2 -/* AF4B54 8007D9B4 0C03021D */ jal func_800C0874 +/* AF4B54 8007D9B4 0C03021D */ jal Gameplay_CameraChangeSetting /* AF4B58 8007D9B8 24060022 */ li $a2, 34 /* AF4B5C 8007D9BC 00152C00 */ sll $a1, $s5, 0x10 /* AF4B60 8007D9C0 00052C03 */ sra $a1, $a1, 0x10 /* AF4B64 8007D9C4 02402025 */ move $a0, $s2 /* AF4B68 8007D9C8 26060050 */ addiu $a2, $s0, 0x50 -/* AF4B6C 8007D9CC 0C030136 */ jal func_800C04D8 +/* AF4B6C 8007D9CC 0C030136 */ jal Gameplay_CameraSetAtEye /* AF4B70 8007D9D0 2607005C */ addiu $a3, $s0, 0x5c /* AF4B74 8007D9D4 00152C00 */ sll $a1, $s5, 0x10 /* AF4B78 8007D9D8 00052C03 */ sra $a1, $a1, 0x10 /* AF4B7C 8007D9DC 02402025 */ move $a0, $s2 -/* AF4B80 8007D9E0 0C0301C1 */ jal func_800C0704 +/* AF4B80 8007D9E0 0C0301C1 */ jal Gameplay_CameraSetFov /* AF4B84 8007D9E4 8E0600FC */ lw $a2, 0xfc($s0) /* AF4B88 8007D9E8 00152C00 */ sll $a1, $s5, 0x10 /* AF4B8C 8007D9EC 00052C03 */ sra $a1, $a1, 0x10 /* AF4B90 8007D9F0 02402025 */ move $a0, $s2 -/* AF4B94 8007D9F4 0C0301D1 */ jal func_800C0744 +/* AF4B94 8007D9F4 0C0301D1 */ jal Gameplay_SetCameraRoll /* AF4B98 8007D9F8 8606015A */ lh $a2, 0x15a($s0) /* AF4B9C 8007D9FC 1000096F */ b .L8007FFBC /* AF4BA0 8007DA00 8FBF0044 */ lw $ra, 0x44($sp) @@ -1796,12 +1796,12 @@ glabel func_8007C850 /* AF4BA4 8007DA04 00152C00 */ sll $a1, $s5, 0x10 /* AF4BA8 8007DA08 00052C03 */ sra $a1, $a1, 0x10 /* AF4BAC 8007DA0C 02402025 */ move $a0, $s2 -/* AF4BB0 8007DA10 0C03021D */ jal func_800C0874 +/* AF4BB0 8007DA10 0C03021D */ jal Gameplay_CameraChangeSetting /* AF4BB4 8007DA14 2406002A */ li $a2, 42 /* AF4BB8 8007DA18 8FB900DC */ lw $t9, 0xdc($sp) /* AF4BBC 8007DA1C 02402025 */ move $a0, $s2 /* AF4BC0 8007DA20 00002825 */ move $a1, $zero -/* AF4BC4 8007DA24 0C03021D */ jal func_800C0874 +/* AF4BC4 8007DA24 0C03021D */ jal Gameplay_CameraChangeSetting /* AF4BC8 8007DA28 87260154 */ lh $a2, 0x154($t9) /* AF4BCC 8007DA2C 3C058012 */ lui $a1, %hi(D_80120430) # $a1, 0x8012 /* AF4BD0 8007DA30 84A50430 */ lh $a1, %lo(D_80120430)($a1) @@ -1823,12 +1823,12 @@ glabel func_8007C850 .L8007DA70: /* AF4C10 8007DA70 00052C03 */ sra $a1, $a1, 0x10 /* AF4C14 8007DA74 02402025 */ move $a0, $s2 -/* AF4C18 8007DA78 0C03021D */ jal func_800C0874 +/* AF4C18 8007DA78 0C03021D */ jal Gameplay_CameraChangeSetting /* AF4C1C 8007DA7C 2406002A */ li $a2, 42 /* AF4C20 8007DA80 8FAE00DC */ lw $t6, 0xdc($sp) /* AF4C24 8007DA84 02402025 */ move $a0, $s2 /* AF4C28 8007DA88 00002825 */ move $a1, $zero -/* AF4C2C 8007DA8C 0C03021D */ jal func_800C0874 +/* AF4C2C 8007DA8C 0C03021D */ jal Gameplay_CameraChangeSetting /* AF4C30 8007DA90 85C60154 */ lh $a2, 0x154($t6) /* AF4C34 8007DA94 3C058012 */ lui $a1, %hi(D_80120430) # $a1, 0x8012 /* AF4C38 8007DA98 84A50430 */ lh $a1, %lo(D_80120430)($a1) @@ -1882,13 +1882,13 @@ glabel L8007DB08 /* AF4CF0 8007DB50 E7A400C8 */ swc1 $f4, 0xc8($sp) /* AF4CF4 8007DB54 E7B000B4 */ swc1 $f16, 0xb4($sp) /* AF4CF8 8007DB58 E7A600B8 */ swc1 $f6, 0xb8($sp) -/* AF4CFC 8007DB5C 0C03021D */ jal func_800C0874 +/* AF4CFC 8007DB5C 0C03021D */ jal Gameplay_CameraChangeSetting /* AF4D00 8007DB60 E7A800BC */ swc1 $f8, 0xbc($sp) /* AF4D04 8007DB64 00152C00 */ sll $a1, $s5, 0x10 /* AF4D08 8007DB68 27A600C0 */ addiu $a2, $sp, 0xc0 /* AF4D0C 8007DB6C 00052C03 */ sra $a1, $a1, 0x10 /* AF4D10 8007DB70 02402025 */ move $a0, $s2 -/* AF4D14 8007DB74 0C030136 */ jal func_800C04D8 +/* AF4D14 8007DB74 0C030136 */ jal Gameplay_CameraSetAtEye /* AF4D18 8007DB78 27A700B4 */ addiu $a3, $sp, 0xb4 /* AF4D1C 8007DB7C 3C014296 */ li $at, 0x42960000 # 0.000000 /* AF4D20 8007DB80 44819000 */ mtc1 $at, $f18 @@ -2086,7 +2086,7 @@ glabel L8007DDF8 /* AF5000 8007DE60 00052C03 */ sra $a1, $a1, 0x10 /* AF5004 8007DE64 02402025 */ move $a0, $s2 /* AF5008 8007DE68 02203025 */ move $a2, $s1 -/* AF500C 8007DE6C 0C030136 */ jal func_800C04D8 +/* AF500C 8007DE6C 0C030136 */ jal Gameplay_CameraSetAtEye /* AF5010 8007DE70 27A700B4 */ addiu $a3, $sp, 0xb4 /* AF5014 8007DE74 3C01428C */ li $at, 0x428C0000 # 0.000000 /* AF5018 8007DE78 44814000 */ mtc1 $at, $f8 @@ -2159,7 +2159,7 @@ glabel L8007DF78 /* AF5118 8007DF78 00152C00 */ sll $a1, $s5, 0x10 /* AF511C 8007DF7C 00052C03 */ sra $a1, $a1, 0x10 /* AF5120 8007DF80 02402025 */ move $a0, $s2 -/* AF5124 8007DF84 0C03021D */ jal func_800C0874 +/* AF5124 8007DF84 0C03021D */ jal Gameplay_CameraChangeSetting /* AF5128 8007DF88 2406002A */ li $a2, 42 /* AF512C 8007DF8C 02402025 */ move $a0, $s2 /* AF5130 8007DF90 02802825 */ move $a1, $s4 @@ -2389,13 +2389,13 @@ glabel L8007E2A0 /* AF5488 8007E2E8 E7B000C8 */ swc1 $f16, 0xc8($sp) /* AF548C 8007E2EC E7A600B4 */ swc1 $f6, 0xb4($sp) /* AF5490 8007E2F0 E7A800B8 */ swc1 $f8, 0xb8($sp) -/* AF5494 8007E2F4 0C03021D */ jal func_800C0874 +/* AF5494 8007E2F4 0C03021D */ jal Gameplay_CameraChangeSetting /* AF5498 8007E2F8 E7B200BC */ swc1 $f18, 0xbc($sp) /* AF549C 8007E2FC 00152C00 */ sll $a1, $s5, 0x10 /* AF54A0 8007E300 27A600C0 */ addiu $a2, $sp, 0xc0 /* AF54A4 8007E304 00052C03 */ sra $a1, $a1, 0x10 /* AF54A8 8007E308 02402025 */ move $a0, $s2 -/* AF54AC 8007E30C 0C030136 */ jal func_800C04D8 +/* AF54AC 8007E30C 0C030136 */ jal Gameplay_CameraSetAtEye /* AF54B0 8007E310 27A700B4 */ addiu $a3, $sp, 0xb4 /* AF54B4 8007E314 3C01425C */ li $at, 0x425C0000 # 0.000000 /* AF54B8 8007E318 44815000 */ mtc1 $at, $f10 @@ -2446,18 +2446,18 @@ glabel L8007E340 /* AF5568 8007E3C8 00152C00 */ sll $a1, $s5, 0x10 /* AF556C 8007E3CC 00052C03 */ sra $a1, $a1, 0x10 /* AF5570 8007E3D0 02402025 */ move $a0, $s2 -/* AF5574 8007E3D4 0C03021D */ jal func_800C0874 +/* AF5574 8007E3D4 0C03021D */ jal Gameplay_CameraChangeSetting /* AF5578 8007E3D8 24060022 */ li $a2, 34 /* AF557C 8007E3DC 00152C00 */ sll $a1, $s5, 0x10 /* AF5580 8007E3E0 00052C03 */ sra $a1, $a1, 0x10 /* AF5584 8007E3E4 02402025 */ move $a0, $s2 /* AF5588 8007E3E8 02203025 */ move $a2, $s1 -/* AF558C 8007E3EC 0C030136 */ jal func_800C04D8 +/* AF558C 8007E3EC 0C030136 */ jal Gameplay_CameraSetAtEye /* AF5590 8007E3F0 27A700B4 */ addiu $a3, $sp, 0xb4 /* AF5594 8007E3F4 00153400 */ sll $a2, $s5, 0x10 /* AF5598 8007E3F8 00063403 */ sra $a2, $a2, 0x10 /* AF559C 8007E3FC 02402025 */ move $a0, $s2 -/* AF55A0 8007E400 0C0301E3 */ jal func_800C078C +/* AF55A0 8007E400 0C0301E3 */ jal Gameplay_CopyCamera /* AF55A4 8007E404 00002825 */ move $a1, $zero /* AF55A8 8007E408 3C01425C */ li $at, 0x425C0000 # 0.000000 /* AF55AC 8007E40C 44819000 */ mtc1 $at, $f18 @@ -2495,13 +2495,13 @@ glabel L8007E434 /* AF5628 8007E488 00152C00 */ sll $a1, $s5, 0x10 /* AF562C 8007E48C 00052C03 */ sra $a1, $a1, 0x10 /* AF5630 8007E490 02402025 */ move $a0, $s2 -/* AF5634 8007E494 0C03021D */ jal func_800C0874 +/* AF5634 8007E494 0C03021D */ jal Gameplay_CameraChangeSetting /* AF5638 8007E498 24060022 */ li $a2, 34 /* AF563C 8007E49C 00152C00 */ sll $a1, $s5, 0x10 /* AF5640 8007E4A0 00052C03 */ sra $a1, $a1, 0x10 /* AF5644 8007E4A4 02402025 */ move $a0, $s2 /* AF5648 8007E4A8 02203025 */ move $a2, $s1 -/* AF564C 8007E4AC 0C030136 */ jal func_800C04D8 +/* AF564C 8007E4AC 0C030136 */ jal Gameplay_CameraSetAtEye /* AF5650 8007E4B0 27A700B4 */ addiu $a3, $sp, 0xb4 /* AF5654 8007E4B4 3C01425C */ li $at, 0x425C0000 # 0.000000 /* AF5658 8007E4B8 44812000 */ mtc1 $at, $f4 @@ -2545,13 +2545,13 @@ glabel L8007E4DC /* AF56EC 8007E54C 00152C00 */ sll $a1, $s5, 0x10 /* AF56F0 8007E550 00052C03 */ sra $a1, $a1, 0x10 /* AF56F4 8007E554 02402025 */ move $a0, $s2 -/* AF56F8 8007E558 0C03021D */ jal func_800C0874 +/* AF56F8 8007E558 0C03021D */ jal Gameplay_CameraChangeSetting /* AF56FC 8007E55C 24060022 */ li $a2, 34 /* AF5700 8007E560 00152C00 */ sll $a1, $s5, 0x10 /* AF5704 8007E564 00052C03 */ sra $a1, $a1, 0x10 /* AF5708 8007E568 02402025 */ move $a0, $s2 /* AF570C 8007E56C 02203025 */ move $a2, $s1 -/* AF5710 8007E570 0C030136 */ jal func_800C04D8 +/* AF5710 8007E570 0C030136 */ jal Gameplay_CameraSetAtEye /* AF5714 8007E574 27A700B4 */ addiu $a3, $sp, 0xb4 /* AF5718 8007E578 3C014270 */ li $at, 0x42700000 # 0.000000 /* AF571C 8007E57C 44815000 */ mtc1 $at, $f10 @@ -2568,10 +2568,10 @@ glabel L8007E5A0 /* AF5744 8007E5A4 00052C03 */ sra $a1, $a1, 0x10 /* AF5748 8007E5A8 02402025 */ move $a0, $s2 /* AF574C 8007E5AC 24060033 */ li $a2, 51 -/* AF5750 8007E5B0 0C03021D */ jal func_800C0874 +/* AF5750 8007E5B0 0C03021D */ jal Gameplay_CameraChangeSetting /* AF5754 8007E5B4 AFB100F4 */ sw $s1, 0xf4($sp) /* AF5758 8007E5B8 8FA400DC */ lw $a0, 0xdc($sp) -/* AF575C 8007E5BC 0C016911 */ jal func_8005A444 +/* AF575C 8007E5BC 0C016911 */ jal Camera_ChangeMode /* AF5760 8007E5C0 00002825 */ move $a1, $zero /* AF5764 8007E5C4 02402025 */ move $a0, $s2 /* AF5768 8007E5C8 8FA500F4 */ lw $a1, 0xf4($sp) @@ -2602,14 +2602,14 @@ glabel L8007E5DC /* AF57C8 8007E628 E7A600C8 */ swc1 $f6, 0xc8($sp) /* AF57CC 8007E62C E7A800B4 */ swc1 $f8, 0xb4($sp) /* AF57D0 8007E630 E7B200B8 */ swc1 $f18, 0xb8($sp) -/* AF57D4 8007E634 0C03021D */ jal func_800C0874 +/* AF57D4 8007E634 0C03021D */ jal Gameplay_CameraChangeSetting /* AF57D8 8007E638 E7AA00BC */ swc1 $f10, 0xbc($sp) /* AF57DC 8007E63C 27B100C0 */ addiu $s1, $sp, 0xc0 /* AF57E0 8007E640 00152C00 */ sll $a1, $s5, 0x10 /* AF57E4 8007E644 00052C03 */ sra $a1, $a1, 0x10 /* AF57E8 8007E648 02203025 */ move $a2, $s1 /* AF57EC 8007E64C 02402025 */ move $a0, $s2 -/* AF57F0 8007E650 0C030136 */ jal func_800C04D8 +/* AF57F0 8007E650 0C030136 */ jal Gameplay_CameraSetAtEye /* AF57F4 8007E654 27A700B4 */ addiu $a3, $sp, 0xb4 /* AF57F8 8007E658 3C014296 */ li $at, 0x42960000 # 0.000000 /* AF57FC 8007E65C 44812000 */ mtc1 $at, $f4 @@ -2653,7 +2653,7 @@ glabel L8007E5DC /* AF5894 8007E6F4 02402025 */ move $a0, $s2 /* AF5898 8007E6F8 00002825 */ move $a1, $zero /* AF589C 8007E6FC 02203025 */ move $a2, $s1 -/* AF58A0 8007E700 0C030136 */ jal func_800C04D8 +/* AF58A0 8007E700 0C030136 */ jal Gameplay_CameraSetAtEye /* AF58A4 8007E704 27A700B4 */ addiu $a3, $sp, 0xb4 /* AF58A8 8007E708 02602025 */ move $a0, $s3 /* AF58AC 8007E70C 0C024BE2 */ jal Quake_Add @@ -2709,13 +2709,13 @@ glabel L8007E5DC /* AF5970 8007E7D0 00152C00 */ sll $a1, $s5, 0x10 /* AF5974 8007E7D4 00052C03 */ sra $a1, $a1, 0x10 /* AF5978 8007E7D8 02402025 */ move $a0, $s2 -/* AF597C 8007E7DC 0C03021D */ jal func_800C0874 +/* AF597C 8007E7DC 0C03021D */ jal Gameplay_CameraChangeSetting /* AF5980 8007E7E0 24060022 */ li $a2, 34 /* AF5984 8007E7E4 00152C00 */ sll $a1, $s5, 0x10 /* AF5988 8007E7E8 00052C03 */ sra $a1, $a1, 0x10 /* AF598C 8007E7EC 02402025 */ move $a0, $s2 /* AF5990 8007E7F0 02203025 */ move $a2, $s1 -/* AF5994 8007E7F4 0C030136 */ jal func_800C04D8 +/* AF5994 8007E7F4 0C030136 */ jal Gameplay_CameraSetAtEye /* AF5998 8007E7F8 27A700B4 */ addiu $a3, $sp, 0xb4 /* AF599C 8007E7FC 3C014234 */ li $at, 0x42340000 # 0.000000 /* AF59A0 8007E800 44815000 */ mtc1 $at, $f10 @@ -2771,7 +2771,7 @@ glabel L8007E824 /* AF5A64 8007E8C4 02402025 */ move $a0, $s2 /* AF5A68 8007E8C8 02203025 */ move $a2, $s1 /* AF5A6C 8007E8CC 27A700B4 */ addiu $a3, $sp, 0xb4 -/* AF5A70 8007E8D0 0C030136 */ jal func_800C04D8 +/* AF5A70 8007E8D0 0C030136 */ jal Gameplay_CameraSetAtEye /* AF5A74 8007E8D4 E7A800B8 */ swc1 $f8, 0xb8($sp) /* AF5A78 8007E8D8 3C014296 */ li $at, 0x42960000 # 0.000000 /* AF5A7C 8007E8DC 44819000 */ mtc1 $at, $f18 @@ -2814,7 +2814,7 @@ glabel L8007E914 /* AF5B08 8007E968 00052C03 */ sra $a1, $a1, 0x10 /* AF5B0C 8007E96C 02402025 */ move $a0, $s2 /* AF5B10 8007E970 2406002A */ li $a2, 42 -/* AF5B14 8007E974 0C03021D */ jal func_800C0874 +/* AF5B14 8007E974 0C03021D */ jal Gameplay_CameraChangeSetting /* AF5B18 8007E978 AFB100F4 */ sw $s1, 0xf4($sp) /* AF5B1C 8007E97C 02402025 */ move $a0, $s2 /* AF5B20 8007E980 00002825 */ move $a1, $zero @@ -2887,7 +2887,7 @@ glabel L8007EA80 /* AF5C20 8007EA80 00152C00 */ sll $a1, $s5, 0x10 /* AF5C24 8007EA84 00052C03 */ sra $a1, $a1, 0x10 /* AF5C28 8007EA88 02402025 */ move $a0, $s2 -/* AF5C2C 8007EA8C 0C03021D */ jal func_800C0874 +/* AF5C2C 8007EA8C 0C03021D */ jal Gameplay_CameraChangeSetting /* AF5C30 8007EA90 2406002A */ li $a2, 42 /* AF5C34 8007EA94 02402025 */ move $a0, $s2 /* AF5C38 8007EA98 02802825 */ move $a1, $s4 @@ -2978,7 +2978,7 @@ glabel L8007EBE4 /* AF5D84 8007EBE4 00152C00 */ sll $a1, $s5, 0x10 /* AF5D88 8007EBE8 00052C03 */ sra $a1, $a1, 0x10 /* AF5D8C 8007EBEC 02402025 */ move $a0, $s2 -/* AF5D90 8007EBF0 0C03021D */ jal func_800C0874 +/* AF5D90 8007EBF0 0C03021D */ jal Gameplay_CameraChangeSetting /* AF5D94 8007EBF4 24060031 */ li $a2, 49 /* AF5D98 8007EBF8 02402025 */ move $a0, $s2 /* AF5D9C 8007EBFC 00002825 */ move $a1, $zero @@ -2987,7 +2987,7 @@ glabel L8007EBE4 /* AF5DA8 8007EC08 00152C00 */ sll $a1, $s5, 0x10 /* AF5DAC 8007EC0C 00052C03 */ sra $a1, $a1, 0x10 /* AF5DB0 8007EC10 02402025 */ move $a0, $s2 -/* AF5DB4 8007EC14 0C0301E3 */ jal func_800C078C +/* AF5DB4 8007EC14 0C0301E3 */ jal Gameplay_CopyCamera /* AF5DB8 8007EC18 00003025 */ move $a2, $zero /* AF5DBC 8007EC1C 02602025 */ move $a0, $s3 /* AF5DC0 8007EC20 0C024BE2 */ jal Quake_Add @@ -3463,7 +3463,7 @@ glabel L8007F31C /* AF64E0 8007F340 0C030202 */ jal func_800C0808 /* AF64E4 8007F344 2407003C */ li $a3, 60 /* AF64E8 8007F348 8FA400DC */ lw $a0, 0xdc($sp) -/* AF64EC 8007F34C 0C016911 */ jal func_8005A444 +/* AF64EC 8007F34C 0C016911 */ jal Camera_ChangeMode /* AF64F0 8007F350 00002825 */ move $a1, $zero /* AF64F4 8007F354 10000319 */ b .L8007FFBC /* AF64F8 8007F358 8FBF0044 */ lw $ra, 0x44($sp) @@ -3478,7 +3478,7 @@ glabel L8007F35C /* AF6518 8007F378 0C00B7D5 */ jal func_8002DF54 /* AF651C 8007F37C 24060008 */ li $a2, 8 /* AF6520 8007F380 8FA400DC */ lw $a0, 0xdc($sp) -/* AF6524 8007F384 0C016911 */ jal func_8005A444 +/* AF6524 8007F384 0C016911 */ jal Camera_ChangeMode /* AF6528 8007F388 00002825 */ move $a1, $zero /* AF652C 8007F38C 00152C00 */ sll $a1, $s5, 0x10 /* AF6530 8007F390 00052C03 */ sra $a1, $a1, 0x10 @@ -3499,7 +3499,7 @@ glabel L8007F3AC /* AF6568 8007F3C8 0C00B7D5 */ jal func_8002DF54 /* AF656C 8007F3CC 24060008 */ li $a2, 8 /* AF6570 8007F3D0 8FA400DC */ lw $a0, 0xdc($sp) -/* AF6574 8007F3D4 0C016911 */ jal func_8005A444 +/* AF6574 8007F3D4 0C016911 */ jal Camera_ChangeMode /* AF6578 8007F3D8 00002825 */ move $a1, $zero /* AF657C 8007F3DC 00152C00 */ sll $a1, $s5, 0x10 /* AF6580 8007F3E0 00052C03 */ sra $a1, $a1, 0x10 @@ -3520,7 +3520,7 @@ glabel L8007F3FC /* AF65B8 8007F418 0C00B7D5 */ jal func_8002DF54 /* AF65BC 8007F41C 24060008 */ li $a2, 8 /* AF65C0 8007F420 8FA400DC */ lw $a0, 0xdc($sp) -/* AF65C4 8007F424 0C016911 */ jal func_8005A444 +/* AF65C4 8007F424 0C016911 */ jal Camera_ChangeMode /* AF65C8 8007F428 00002825 */ move $a1, $zero /* AF65CC 8007F42C 00152C00 */ sll $a1, $s5, 0x10 /* AF65D0 8007F430 00052C03 */ sra $a1, $a1, 0x10 @@ -3541,7 +3541,7 @@ glabel L8007F44C /* AF6608 8007F468 0C00B7CE */ jal func_8002DF38 /* AF660C 8007F46C 24060008 */ li $a2, 8 /* AF6610 8007F470 8FA400DC */ lw $a0, 0xdc($sp) -/* AF6614 8007F474 0C016911 */ jal func_8005A444 +/* AF6614 8007F474 0C016911 */ jal Camera_ChangeMode /* AF6618 8007F478 00002825 */ move $a1, $zero /* AF661C 8007F47C 00152C00 */ sll $a1, $s5, 0x10 /* AF6620 8007F480 00052C03 */ sra $a1, $a1, 0x10 @@ -3562,7 +3562,7 @@ glabel L8007F49C /* AF6658 8007F4B8 0C00B7CE */ jal func_8002DF38 /* AF665C 8007F4BC 24060008 */ li $a2, 8 /* AF6660 8007F4C0 8FA400DC */ lw $a0, 0xdc($sp) -/* AF6664 8007F4C4 0C016911 */ jal func_8005A444 +/* AF6664 8007F4C4 0C016911 */ jal Camera_ChangeMode /* AF6668 8007F4C8 00002825 */ move $a1, $zero /* AF666C 8007F4CC 00152C00 */ sll $a1, $s5, 0x10 /* AF6670 8007F4D0 00052C03 */ sra $a1, $a1, 0x10 @@ -3868,12 +3868,12 @@ glabel L8007F6E8 /* AF6ADC 8007F93C 00152C00 */ sll $a1, $s5, 0x10 /* AF6AE0 8007F940 00052C03 */ sra $a1, $a1, 0x10 /* AF6AE4 8007F944 02402025 */ move $a0, $s2 -/* AF6AE8 8007F948 0C0301E3 */ jal func_800C078C +/* AF6AE8 8007F948 0C0301E3 */ jal Gameplay_CopyCamera /* AF6AEC 8007F94C 00003025 */ move $a2, $zero /* AF6AF0 8007F950 00152C00 */ sll $a1, $s5, 0x10 /* AF6AF4 8007F954 00052C03 */ sra $a1, $a1, 0x10 /* AF6AF8 8007F958 02402025 */ move $a0, $s2 -/* AF6AFC 8007F95C 0C03021D */ jal func_800C0874 +/* AF6AFC 8007F95C 0C03021D */ jal Gameplay_CameraChangeSetting /* AF6B00 8007F960 24060022 */ li $a2, 34 /* AF6B04 8007F964 10000195 */ b .L8007FFBC /* AF6B08 8007F968 8FBF0044 */ lw $ra, 0x44($sp) diff --git a/asm/non_matchings/code/z_onepointdemo/func_80080480.s b/asm/non_matchings/code/z_onepointdemo/func_80080480.s index 3c207e140f..05494fb700 100644 --- a/asm/non_matchings/code/z_onepointdemo/func_80080480.s +++ b/asm/non_matchings/code/z_onepointdemo/func_80080480.s @@ -10,7 +10,7 @@ glabel D_8013CD20 glabel D_8013CD6C .asciz "\x1b[43;30mactor attention demo camera: %d: unkown part of actor %d\n\x1b[m" .balign 4 - + glabel D_8013CDB4 .asciz "\x1b[36m%06u:\x1b[m actor attention demo camera: request %d " .balign 4 @@ -74,7 +74,7 @@ glabel func_80080480 /* AF7680 800804E0 0C00084C */ jal osSyncPrintf /* AF7684 800804E4 AFA6003C */ sw $a2, 0x3c($sp) /* AF7688 800804E8 8FA4003C */ lw $a0, 0x3c($sp) -/* AF768C 800804EC 0C016911 */ jal func_8005A444 +/* AF768C 800804EC 0C016911 */ jal Camera_ChangeMode /* AF7690 800804F0 00002825 */ move $a1, $zero /* AF7694 800804F4 8FA6003C */ lw $a2, 0x3c($sp) /* AF7698 800804F8 2408FFFF */ li $t0, -1 @@ -126,7 +126,7 @@ glabel func_80080480 /* AF7730 80080590 002D0821 */ addu $at, $at, $t5 /* AF7734 80080594 8C2DD6D0 */ lw $t5, %lo(jtbl_8013D6D0)($at) /* AF7738 80080598 01A00008 */ jr $t5 -/* AF773C 8008059C 00000000 */ nop +/* AF773C 8008059C 00000000 */ nop glabel L800805A0 /* AF7740 800805A0 1000000F */ b .L800805E0 /* AF7744 800805A4 2403001E */ li $v1, 30 diff --git a/asm/non_matchings/code/z_play/Gameplay_Draw.s b/asm/non_matchings/code/z_play/Gameplay_Draw.s index a59d4d0522..8b5d8484ed 100644 --- a/asm/non_matchings/code/z_play/Gameplay_Draw.s +++ b/asm/non_matchings/code/z_play/Gameplay_Draw.s @@ -602,7 +602,7 @@ glabel Gameplay_Draw /* B36830 800BF690 84AA0142 */ lh $t2, 0x142($a1) /* B36834 800BF694 51410016 */ beql $t2, $at, .L800BF6F0 /* B36838 800BF698 8FAD004C */ lw $t5, 0x4c($sp) -/* B3683C 800BF69C 0C016BED */ jal func_8005AFB4 +/* B3683C 800BF69C 0C016BED */ jal Camera_GetSkyboxOffset /* B36840 800BF6A0 AFAB0048 */ sw $t3, 0x48($sp) /* B36844 800BF6A4 C60600E0 */ lwc1 $f6, 0xe0($s0) /* B36848 800BF6A8 C7A80074 */ lwc1 $f8, 0x74($sp) @@ -865,7 +865,7 @@ glabel Gameplay_Draw /* B36BE8 800BFA48 000A5880 */ sll $t3, $t2, 2 /* B36BEC 800BFA4C 020B6821 */ addu $t5, $s0, $t3 /* B36BF0 800BFA50 8DA50790 */ lw $a1, 0x790($t5) -/* B36BF4 800BFA54 0C01647B */ jal func_800591EC +/* B36BF4 800BFA54 0C01647B */ jal Camera_Update /* B36BF8 800BFA58 AFAC0040 */ sw $t4, 0x40($sp) /* B36BFC 800BFA5C 0C02AE51 */ jal func_800AB944 /* B36C00 800BFA60 8FA40040 */ lw $a0, 0x40($sp) @@ -889,7 +889,7 @@ glabel Gameplay_Draw .L800BFAA8: /* B36C48 800BFAA8 000FC080 */ sll $t8, $t7, 2 /* B36C4C 800BFAAC 02184821 */ addu $t1, $s0, $t8 -/* B36C50 800BFAB0 0C0167B2 */ jal func_80059EC8 +/* B36C50 800BFAB0 0C0167B2 */ jal Camera_Finish /* B36C54 800BFAB4 8D240790 */ lw $a0, 0x790($t1) /* B36C58 800BFAB8 3C068014 */ lui $a2, %hi(D_80144738) # $a2, 0x8014 /* B36C5C 800BFABC 24C64738 */ addiu $a2, %lo(D_80144738) # addiu $a2, $a2, 0x4738 diff --git a/asm/non_matchings/code/z_play/Gameplay_Init.s b/asm/non_matchings/code/z_play/Gameplay_Init.s index 19a19e9d4f..87d53b67ed 100644 --- a/asm/non_matchings/code/z_play/Gameplay_Init.s +++ b/asm/non_matchings/code/z_play/Gameplay_Init.s @@ -86,7 +86,7 @@ glabel Gameplay_Init /* B33CB8 800BCB18 AFA60034 */ sw $a2, 0x34($sp) /* B33CBC 800BCB1C AFA40038 */ sw $a0, 0x38($sp) /* B33CC0 800BCB20 8FA5003C */ lw $a1, 0x3c($sp) -/* B33CC4 800BCB24 0C015F1B */ jal func_80057C6C +/* B33CC4 800BCB24 0C015F1B */ jal Camera_Init /* B33CC8 800BCB28 02203825 */ move $a3, $s1 /* B33CCC 800BCB2C 8FA40038 */ lw $a0, 0x38($sp) /* B33CD0 800BCB30 0C0160D5 */ jal Camera_ChangeStatus @@ -98,7 +98,7 @@ glabel Gameplay_Init /* B33CE4 800BCB44 8FA5003C */ lw $a1, 0x3c($sp) /* B33CE8 800BCB48 8FA60034 */ lw $a2, 0x34($sp) /* B33CEC 800BCB4C 02203825 */ move $a3, $s1 -/* B33CF0 800BCB50 0C015F1B */ jal func_80057C6C +/* B33CF0 800BCB50 0C015F1B */ jal Camera_Init /* B33CF4 800BCB54 AFA80044 */ sw $t0, 0x44($sp) /* B33CF8 800BCB58 02002025 */ move $a0, $s0 /* B33CFC 800BCB5C 0C0160D5 */ jal Camera_ChangeStatus @@ -544,10 +544,10 @@ glabel Gameplay_Init .L800BD1D4: /* B34374 800BD1D4 8E251C44 */ lw $a1, 0x1c44($s1) /* B34378 800BD1D8 8FA40038 */ lw $a0, 0x38($sp) -/* B3437C 800BD1DC 0C016052 */ jal func_80058148 +/* B3437C 800BD1DC 0C016052 */ jal Camera_InitPlayerSettings /* B34380 800BD1E0 AFA50078 */ sw $a1, 0x78($sp) /* B34384 800BD1E4 8FA40038 */ lw $a0, 0x38($sp) -/* B34388 800BD1E8 0C016911 */ jal func_8005A444 +/* B34388 800BD1E8 0C016911 */ jal Camera_ChangeMode /* B3438C 800BD1EC 00002825 */ move $a1, $zero /* B34390 800BD1F0 8FAD0078 */ lw $t5, 0x78($sp) /* B34394 800BD1F4 240100FF */ li $at, 255 @@ -560,7 +560,7 @@ glabel Gameplay_Init /* B343B0 800BD210 0C00084C */ jal osSyncPrintf /* B343B4 800BD214 02002825 */ move $a1, $s0 /* B343B8 800BD218 8FA40038 */ lw $a0, 0x38($sp) -/* B343BC 800BD21C 0C0169EA */ jal func_8005A7A8 +/* B343BC 800BD21C 0C0169EA */ jal Camera_ChangeDataIdx /* B343C0 800BD220 02002825 */ move $a1, $s0 .L800BD224: /* B343C4 800BD224 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 diff --git a/asm/non_matchings/code/z_play/Gameplay_Update.s b/asm/non_matchings/code/z_play/Gameplay_Update.s index 41fd7a6107..6f27b863d7 100644 --- a/asm/non_matchings/code/z_play/Gameplay_Update.s +++ b/asm/non_matchings/code/z_play/Gameplay_Update.s @@ -2077,8 +2077,8 @@ glabel L800BE148 .L800BEB94: /* B35D34 800BEB94 8FAB0080 */ lw $t3, 0x80($sp) /* B35D38 800BEB98 11600004 */ beqz $t3, .L800BEBAC -/* B35D3C 800BEB9C 3C0C8012 */ lui $t4, %hi(D_8011D394) # $t4, 0x8012 -/* B35D40 800BEBA0 8D8CD394 */ lw $t4, %lo(D_8011D394)($t4) +/* B35D3C 800BEB9C 3C0C8012 */ lui $t4, %hi(gDbgCamEnabled) # $t4, 0x8012 +/* B35D40 800BEBA0 8D8CD394 */ lw $t4, %lo(gDbgCamEnabled)($t4) /* B35D44 800BEBA4 11800044 */ beqz $t4, .L800BECB8 /* B35D48 800BEBA8 00000000 */ nop .L800BEBAC: @@ -2126,7 +2126,7 @@ glabel L800BE148 /* B35DE8 800BEC48 8C450790 */ lw $a1, 0x790($v0) .L800BEC4C: /* B35DEC 800BEC4C 27A40048 */ addiu $a0, $sp, 0x48 -/* B35DF0 800BEC50 0C01647B */ jal func_800591EC +/* B35DF0 800BEC50 0C01647B */ jal Camera_Update /* B35DF4 800BEC54 AFA30054 */ sw $v1, 0x54($sp) /* B35DF8 800BEC58 8FA30054 */ lw $v1, 0x54($sp) /* B35DFC 800BEC5C 860607A2 */ lh $a2, 0x7a2($s0) @@ -2139,7 +2139,7 @@ glabel L800BE148 /* B35E10 800BEC70 0006C880 */ sll $t9, $a2, 2 /* B35E14 800BEC74 02195021 */ addu $t2, $s0, $t9 /* B35E18 800BEC78 8D450790 */ lw $a1, 0x790($t2) -/* B35E1C 800BEC7C 0C01647B */ jal func_800591EC +/* B35E1C 800BEC7C 0C01647B */ jal Camera_Update /* B35E20 800BEC80 27A40048 */ addiu $a0, $sp, 0x48 /* B35E24 800BEC84 3C0B8016 */ lui $t3, %hi(gGameInfo) # $t3, 0x8016 /* B35E28 800BEC88 8D6BFA90 */ lw $t3, %lo(gGameInfo)($t3) diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Haka_Gate/func_8087C85C.s b/asm/non_matchings/overlays/actors/ovl_Bg_Haka_Gate/func_8087C85C.s index e2404b6a08..7008d8c6a4 100644 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Haka_Gate/func_8087C85C.s +++ b/asm/non_matchings/overlays/actors/ovl_Bg_Haka_Gate/func_8087C85C.s @@ -98,7 +98,7 @@ glabel func_8087C85C /* 00B98 8087C988 862D07A0 */ lh $t5, 0x07A0($s1) ## 000007A0 /* 00B9C 8087C98C 000D7080 */ sll $t6, $t5, 2 /* 00BA0 8087C990 022E7821 */ addu $t7, $s1, $t6 -/* 00BA4 8087C994 0C016A7D */ jal func_8005A9F4 +/* 00BA4 8087C994 0C016A7D */ jal Camera_GetCamDirYaw /* 00BA8 8087C998 8DE40790 */ lw $a0, 0x0790($t7) ## 00000790 /* 00BAC 8087C99C 44824000 */ mtc1 $v0, $f8 ## $f8 = 0.00 /* 00BB0 8087C9A0 3C018088 */ lui $at, %hi(D_8087CDA4) ## $at = 80880000 diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Rock/func_8088B634.s b/asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Rock/func_8088B634.s index e413d7ba20..a331ae6041 100644 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Rock/func_8088B634.s +++ b/asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Rock/func_8088B634.s @@ -12,7 +12,7 @@ glabel func_8088B634 /* 005DC 8088B65C 847807A0 */ lh $t8, 0x07A0($v1) ## 000007A0 /* 005E0 8088B660 0018C880 */ sll $t9, $t8, 2 /* 005E4 8088B664 00794021 */ addu $t0, $v1, $t9 -/* 005E8 8088B668 0C016A7D */ jal func_8005A9F4 +/* 005E8 8088B668 0C016A7D */ jal Camera_GetCamDirYaw /* 005EC 8088B66C 8D040790 */ lw $a0, 0x0790($t0) ## 00000790 /* 005F0 8088B670 8FAA0018 */ lw $t2, 0x0018($sp) /* 005F4 8088B674 24494000 */ addiu $t1, $v0, 0x4000 ## $t1 = 00004000 diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Rock/func_8088B79C.s b/asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Rock/func_8088B79C.s index a53f78708b..ec81719da3 100644 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Rock/func_8088B79C.s +++ b/asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Rock/func_8088B79C.s @@ -1,103 +1,103 @@ glabel func_8088B79C /* 0071C 8088B79C 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 00720 8088B7A0 AFBF001C */ sw $ra, 0x001C($sp) -/* 00724 8088B7A4 AFB00018 */ sw $s0, 0x0018($sp) -/* 00728 8088B7A8 AFA50024 */ sw $a1, 0x0024($sp) +/* 00720 8088B7A0 AFBF001C */ sw $ra, 0x001C($sp) +/* 00724 8088B7A4 AFB00018 */ sw $s0, 0x0018($sp) +/* 00728 8088B7A8 AFA50024 */ sw $a1, 0x0024($sp) /* 0072C 8088B7AC 848E016A */ lh $t6, 0x016A($a0) ## 0000016A /* 00730 8088B7B0 94980088 */ lhu $t8, 0x0088($a0) ## 00000088 /* 00734 8088B7B4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 /* 00738 8088B7B8 25CFFFFF */ addiu $t7, $t6, 0xFFFF ## $t7 = FFFFFFFF /* 0073C 8088B7BC 33190002 */ andi $t9, $t8, 0x0002 ## $t9 = 00000000 -/* 00740 8088B7C0 13200021 */ beq $t9, $zero, .L8088B848 +/* 00740 8088B7C0 13200021 */ beq $t9, $zero, .L8088B848 /* 00744 8088B7C4 A48F016A */ sh $t7, 0x016A($a0) ## 0000016A /* 00748 8088B7C8 90880168 */ lbu $t0, 0x0168($a0) ## 00000168 /* 0074C 8088B7CC 3C014170 */ lui $at, 0x4170 ## $at = 41700000 /* 00750 8088B7D0 3C0B8089 */ lui $t3, %hi(func_8088B90C) ## $t3 = 80890000 -/* 00754 8088B7D4 15000007 */ bne $t0, $zero, .L8088B7F4 +/* 00754 8088B7D4 15000007 */ bne $t0, $zero, .L8088B7F4 /* 00758 8088B7D8 24052835 */ addiu $a1, $zero, 0x2835 ## $a1 = 00002835 /* 0075C 8088B7DC 3C0A8089 */ lui $t2, %hi(func_8088B5F4) ## $t2 = 80890000 /* 00760 8088B7E0 2409003C */ addiu $t1, $zero, 0x003C ## $t1 = 0000003C /* 00764 8088B7E4 254AB5F4 */ addiu $t2, $t2, %lo(func_8088B5F4) ## $t2 = 8088B5F4 /* 00768 8088B7E8 A489016A */ sh $t1, 0x016A($a0) ## 0000016A -/* 0076C 8088B7EC 1000000B */ beq $zero, $zero, .L8088B81C +/* 0076C 8088B7EC 1000000B */ beq $zero, $zero, .L8088B81C /* 00770 8088B7F0 AC8A0164 */ sw $t2, 0x0164($a0) ## 00000164 .L8088B7F4: /* 00774 8088B7F4 C604000C */ lwc1 $f4, 0x000C($s0) ## 0000000C /* 00778 8088B7F8 44813000 */ mtc1 $at, $f6 ## $f6 = 15.00 /* 0077C 8088B7FC 8E0C0004 */ lw $t4, 0x0004($s0) ## 00000004 /* 00780 8088B800 2401FFCF */ addiu $at, $zero, 0xFFCF ## $at = FFFFFFCF -/* 00784 8088B804 46062201 */ sub.s $f8, $f4, $f6 +/* 00784 8088B804 46062201 */ sub.s $f8, $f4, $f6 /* 00788 8088B808 256BB90C */ addiu $t3, $t3, %lo(func_8088B90C) ## $t3 = 8088B90C -/* 0078C 8088B80C 01816824 */ and $t5, $t4, $at +/* 0078C 8088B80C 01816824 */ and $t5, $t4, $at /* 00790 8088B810 AE0B0164 */ sw $t3, 0x0164($s0) ## 00000164 /* 00794 8088B814 E6080028 */ swc1 $f8, 0x0028($s0) ## 00000028 /* 00798 8088B818 AE0D0004 */ sw $t5, 0x0004($s0) ## 00000004 .L8088B81C: /* 0079C 8088B81C 0C00BE0A */ jal Audio_PlayActorSound2 - + /* 007A0 8088B820 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 007A4 8088B824 8FA40024 */ lw $a0, 0x0024($sp) +/* 007A4 8088B824 8FA40024 */ lw $a0, 0x0024($sp) /* 007A8 8088B828 8E050078 */ lw $a1, 0x0078($s0) ## 00000078 /* 007AC 8088B82C 9206007D */ lbu $a2, 0x007D($s0) ## 0000007D -/* 007B0 8088B830 0C0107CD */ jal func_80041F34 +/* 007B0 8088B830 0C0107CD */ jal func_80041F34 /* 007B4 8088B834 248407C0 */ addiu $a0, $a0, 0x07C0 ## $a0 = 000007C0 /* 007B8 8088B838 24450800 */ addiu $a1, $v0, 0x0800 ## $a1 = 00000800 /* 007BC 8088B83C 30A5FFFF */ andi $a1, $a1, 0xFFFF ## $a1 = 00000800 /* 007C0 8088B840 0C00BE0A */ jal Audio_PlayActorSound2 - + /* 007C4 8088B844 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 .L8088B848: /* 007C8 8088B848 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000 /* 007CC 8088B84C 44818000 */ mtc1 $at, $f16 ## $f16 = 0.50 /* 007D0 8088B850 C60A016C */ lwc1 $f10, 0x016C($s0) ## 0000016C /* 007D4 8088B854 44801000 */ mtc1 $zero, $f2 ## $f2 = 0.00 -/* 007D8 8088B858 46105481 */ sub.s $f18, $f10, $f16 +/* 007D8 8088B858 46105481 */ sub.s $f18, $f10, $f16 /* 007DC 8088B85C E612016C */ swc1 $f18, 0x016C($s0) ## 0000016C /* 007E0 8088B860 C600016C */ lwc1 $f0, 0x016C($s0) ## 0000016C -/* 007E4 8088B864 4602003C */ c.lt.s $f0, $f2 +/* 007E4 8088B864 4602003C */ c.lt.s $f0, $f2 /* 007E8 8088B868 00000000 */ nop -/* 007EC 8088B86C 45020004 */ bc1fl .L8088B880 +/* 007EC 8088B86C 45020004 */ bc1fl .L8088B880 /* 007F0 8088B870 E600016C */ swc1 $f0, 0x016C($s0) ## 0000016C -/* 007F4 8088B874 10000002 */ beq $zero, $zero, .L8088B880 +/* 007F4 8088B874 10000002 */ beq $zero, $zero, .L8088B880 /* 007F8 8088B878 E602016C */ swc1 $f2, 0x016C($s0) ## 0000016C /* 007FC 8088B87C E600016C */ swc1 $f0, 0x016C($s0) ## 0000016C .L8088B880: /* 00800 8088B880 920E0168 */ lbu $t6, 0x0168($s0) ## 00000168 -/* 00804 8088B884 55C0001D */ bnel $t6, $zero, .L8088B8FC -/* 00808 8088B888 8FBF001C */ lw $ra, 0x001C($sp) -/* 0080C 8088B88C 0C010D5B */ jal func_8004356C +/* 00804 8088B884 55C0001D */ bnel $t6, $zero, .L8088B8FC +/* 00808 8088B888 8FBF001C */ lw $ra, 0x001C($sp) +/* 0080C 8088B88C 0C010D5B */ jal func_8004356C /* 00810 8088B890 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00814 8088B894 1040000C */ beq $v0, $zero, .L8088B8C8 +/* 00814 8088B894 1040000C */ beq $v0, $zero, .L8088B8C8 /* 00818 8088B898 00000000 */ nop /* 0081C 8088B89C 920F0169 */ lbu $t7, 0x0169($s0) ## 00000169 /* 00820 8088B8A0 24180003 */ addiu $t8, $zero, 0x0003 ## $t8 = 00000003 -/* 00824 8088B8A4 55E00003 */ bnel $t7, $zero, .L8088B8B4 -/* 00828 8088B8A8 8FB90024 */ lw $t9, 0x0024($sp) +/* 00824 8088B8A4 55E00003 */ bnel $t7, $zero, .L8088B8B4 +/* 00828 8088B8A8 8FB90024 */ lw $t9, 0x0024($sp) /* 0082C 8088B8AC A2180169 */ sb $t8, 0x0169($s0) ## 00000169 -/* 00830 8088B8B0 8FB90024 */ lw $t9, 0x0024($sp) +/* 00830 8088B8B0 8FB90024 */ lw $t9, 0x0024($sp) .L8088B8B4: /* 00834 8088B8B4 24050030 */ addiu $a1, $zero, 0x0030 ## $a1 = 00000030 -/* 00838 8088B8B8 0C0169DF */ jal func_8005A77C +/* 00838 8088B8B8 0C0169DF */ jal Camera_ChangeSetting /* 0083C 8088B8BC 8F240790 */ lw $a0, 0x0790($t9) ## 00000790 -/* 00840 8088B8C0 1000000E */ beq $zero, $zero, .L8088B8FC -/* 00844 8088B8C4 8FBF001C */ lw $ra, 0x001C($sp) +/* 00840 8088B8C0 1000000E */ beq $zero, $zero, .L8088B8FC +/* 00844 8088B8C4 8FBF001C */ lw $ra, 0x001C($sp) .L8088B8C8: -/* 00848 8088B8C8 0C010D5B */ jal func_8004356C +/* 00848 8088B8C8 0C010D5B */ jal func_8004356C /* 0084C 8088B8CC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00850 8088B8D0 5440000A */ bnel $v0, $zero, .L8088B8FC -/* 00854 8088B8D4 8FBF001C */ lw $ra, 0x001C($sp) +/* 00850 8088B8D0 5440000A */ bnel $v0, $zero, .L8088B8FC +/* 00854 8088B8D4 8FBF001C */ lw $ra, 0x001C($sp) /* 00858 8088B8D8 92080169 */ lbu $t0, 0x0169($s0) ## 00000169 -/* 0085C 8088B8DC 8FA90024 */ lw $t1, 0x0024($sp) +/* 0085C 8088B8DC 8FA90024 */ lw $t1, 0x0024($sp) /* 00860 8088B8E0 24050003 */ addiu $a1, $zero, 0x0003 ## $a1 = 00000003 -/* 00864 8088B8E4 51000004 */ beql $t0, $zero, .L8088B8F8 +/* 00864 8088B8E4 51000004 */ beql $t0, $zero, .L8088B8F8 /* 00868 8088B8E8 A2000169 */ sb $zero, 0x0169($s0) ## 00000169 -/* 0086C 8088B8EC 0C0169DF */ jal func_8005A77C +/* 0086C 8088B8EC 0C0169DF */ jal Camera_ChangeSetting /* 00870 8088B8F0 8D240790 */ lw $a0, 0x0790($t1) ## 00000790 /* 00874 8088B8F4 A2000169 */ sb $zero, 0x0169($s0) ## 00000169 .L8088B8F8: -/* 00878 8088B8F8 8FBF001C */ lw $ra, 0x001C($sp) +/* 00878 8088B8F8 8FBF001C */ lw $ra, 0x001C($sp) .L8088B8FC: -/* 0087C 8088B8FC 8FB00018 */ lw $s0, 0x0018($sp) +/* 0087C 8088B8FC 8FB00018 */ lw $s0, 0x0018($sp) /* 00880 8088B900 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 -/* 00884 8088B904 03E00008 */ jr $ra +/* 00884 8088B904 03E00008 */ jr $ra /* 00888 8088B908 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Rock/func_8088B990.s b/asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Rock/func_8088B990.s index e82b347c25..4c6d0ebfc6 100644 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Rock/func_8088B990.s +++ b/asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Rock/func_8088B990.s @@ -10,80 +10,80 @@ glabel D_8088C050 .text glabel func_8088B990 /* 00910 8088B990 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8 -/* 00914 8088B994 AFBF0024 */ sw $ra, 0x0024($sp) -/* 00918 8088B998 AFB00020 */ sw $s0, 0x0020($sp) -/* 0091C 8088B99C AFA5002C */ sw $a1, 0x002C($sp) +/* 00914 8088B994 AFBF0024 */ sw $ra, 0x0024($sp) +/* 00918 8088B998 AFB00020 */ sw $s0, 0x0020($sp) +/* 0091C 8088B99C AFA5002C */ sw $a1, 0x002C($sp) /* 00920 8088B9A0 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00 /* 00924 8088B9A4 C4840150 */ lwc1 $f4, 0x0150($a0) ## 00000150 /* 00928 8088B9A8 848F016A */ lh $t7, 0x016A($a0) ## 0000016A /* 0092C 8088B9AC 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44 -/* 00930 8088B9B0 46040032 */ c.eq.s $f0, $f4 +/* 00930 8088B9B0 46040032 */ c.eq.s $f0, $f4 /* 00934 8088B9B4 25F80001 */ addiu $t8, $t7, 0x0001 ## $t8 = 00000001 /* 00938 8088B9B8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 /* 0093C 8088B9BC A498016A */ sh $t8, 0x016A($a0) ## 0000016A -/* 00940 8088B9C0 45030007 */ bc1tl .L8088B9E0 +/* 00940 8088B9C0 45030007 */ bc1tl .L8088B9E0 /* 00944 8088B9C4 92020168 */ lbu $v0, 0x0168($s0) ## 00000168 /* 00948 8088B9C8 E4800068 */ swc1 $f0, 0x0068($a0) ## 00000068 /* 0094C 8088B9CC 8C590680 */ lw $t9, 0x0680($v0) ## 00000680 /* 00950 8088B9D0 2401FFEF */ addiu $at, $zero, 0xFFEF ## $at = FFFFFFEF -/* 00954 8088B9D4 03214024 */ and $t0, $t9, $at +/* 00954 8088B9D4 03214024 */ and $t0, $t9, $at /* 00958 8088B9D8 AC480680 */ sw $t0, 0x0680($v0) ## 00000680 /* 0095C 8088B9DC 92020168 */ lbu $v0, 0x0168($s0) ## 00000168 .L8088B9E0: /* 00960 8088B9E0 3C018089 */ lui $at, %hi(D_8088C048) ## $at = 80890000 -/* 00964 8088B9E4 14400013 */ bne $v0, $zero, .L8088BA34 +/* 00964 8088B9E4 14400013 */ bne $v0, $zero, .L8088BA34 /* 00968 8088B9E8 00000000 */ nop /* 0096C 8088B9EC C606000C */ lwc1 $f6, 0x000C($s0) ## 0000000C -/* 00970 8088B9F0 C428C048 */ lwc1 $f8, %lo(D_8088C048)($at) +/* 00970 8088B9F0 C428C048 */ lwc1 $f8, %lo(D_8088C048)($at) /* 00974 8088B9F4 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000 /* 00978 8088B9F8 44818000 */ mtc1 $at, $f16 ## $f16 = 0.50 -/* 0097C 8088B9FC 46083280 */ add.s $f10, $f6, $f8 +/* 0097C 8088B9FC 46083280 */ add.s $f10, $f6, $f8 /* 00980 8088BA00 26040028 */ addiu $a0, $s0, 0x0028 ## $a0 = 00000028 /* 00984 8088BA04 3C063E80 */ lui $a2, 0x3E80 ## $a2 = 3E800000 /* 00988 8088BA08 3C0741A0 */ lui $a3, 0x41A0 ## $a3 = 41A00000 -/* 0098C 8088BA0C 44055000 */ mfc1 $a1, $f10 +/* 0098C 8088BA0C 44055000 */ mfc1 $a1, $f10 /* 00990 8088BA10 0C01E0C4 */ jal Math_SmoothScaleMaxMinF - -/* 00994 8088BA14 E7B00010 */ swc1 $f16, 0x0010($sp) + +/* 00994 8088BA14 E7B00010 */ swc1 $f16, 0x0010($sp) /* 00998 8088BA18 3C018089 */ lui $at, %hi(D_8088C04C) ## $at = 80890000 -/* 0099C 8088BA1C C432C04C */ lwc1 $f18, %lo(D_8088C04C)($at) -/* 009A0 8088BA20 4612003C */ c.lt.s $f0, $f18 +/* 0099C 8088BA1C C432C04C */ lwc1 $f18, %lo(D_8088C04C)($at) +/* 009A0 8088BA20 4612003C */ c.lt.s $f0, $f18 /* 009A4 8088BA24 00000000 */ nop -/* 009A8 8088BA28 4503001A */ bc1tl .L8088BA94 +/* 009A8 8088BA28 4503001A */ bc1tl .L8088BA94 /* 009AC 8088BA2C 92090168 */ lbu $t1, 0x0168($s0) ## 00000168 /* 009B0 8088BA30 92020168 */ lbu $v0, 0x0168($s0) ## 00000168 .L8088BA34: -/* 009B4 8088BA34 10400021 */ beq $v0, $zero, .L8088BABC +/* 009B4 8088BA34 10400021 */ beq $v0, $zero, .L8088BABC /* 009B8 8088BA38 3C01407E */ lui $at, 0x407E ## $at = 407E0000 /* 009BC 8088BA3C C604000C */ lwc1 $f4, 0x000C($s0) ## 0000000C /* 009C0 8088BA40 44814800 */ mtc1 $at, $f9 ## $f9 = 3.97 /* 009C4 8088BA44 44804000 */ mtc1 $zero, $f8 ## $f8 = 0.00 -/* 009C8 8088BA48 460021A1 */ cvt.d.s $f6, $f4 +/* 009C8 8088BA48 460021A1 */ cvt.d.s $f6, $f4 /* 009CC 8088BA4C 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000 -/* 009D0 8088BA50 46283280 */ add.d $f10, $f6, $f8 +/* 009D0 8088BA50 46283280 */ add.d $f10, $f6, $f8 /* 009D4 8088BA54 44819000 */ mtc1 $at, $f18 ## $f18 = 0.50 /* 009D8 8088BA58 26040028 */ addiu $a0, $s0, 0x0028 ## $a0 = 00000028 /* 009DC 8088BA5C 3C063E80 */ lui $a2, 0x3E80 ## $a2 = 3E800000 -/* 009E0 8088BA60 46205420 */ cvt.s.d $f16, $f10 +/* 009E0 8088BA60 46205420 */ cvt.s.d $f16, $f10 /* 009E4 8088BA64 3C0741A0 */ lui $a3, 0x41A0 ## $a3 = 41A00000 -/* 009E8 8088BA68 E7B20010 */ swc1 $f18, 0x0010($sp) -/* 009EC 8088BA6C 44058000 */ mfc1 $a1, $f16 +/* 009E8 8088BA68 E7B20010 */ swc1 $f18, 0x0010($sp) +/* 009EC 8088BA6C 44058000 */ mfc1 $a1, $f16 /* 009F0 8088BA70 0C01E0C4 */ jal Math_SmoothScaleMaxMinF - + /* 009F4 8088BA74 00000000 */ nop /* 009F8 8088BA78 3C018089 */ lui $at, %hi(D_8088C050) ## $at = 80890000 -/* 009FC 8088BA7C C424C050 */ lwc1 $f4, %lo(D_8088C050)($at) -/* 00A00 8088BA80 4604003C */ c.lt.s $f0, $f4 +/* 009FC 8088BA7C C424C050 */ lwc1 $f4, %lo(D_8088C050)($at) +/* 00A00 8088BA80 4604003C */ c.lt.s $f0, $f4 /* 00A04 8088BA84 00000000 */ nop -/* 00A08 8088BA88 4502000D */ bc1fl .L8088BAC0 +/* 00A08 8088BA88 4502000D */ bc1fl .L8088BAC0 /* 00A0C 8088BA8C 3C014248 */ lui $at, 0x4248 ## $at = 42480000 /* 00A10 8088BA90 92090168 */ lbu $t1, 0x0168($s0) ## 00000168 .L8088BA94: /* 00A14 8088BA94 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00A18 8088BA98 15200003 */ bne $t1, $zero, .L8088BAA8 +/* 00A18 8088BA98 15200003 */ bne $t1, $zero, .L8088BAA8 /* 00A1C 8088BA9C 00000000 */ nop /* 00A20 8088BAA0 0C00BE0A */ jal Audio_PlayActorSound2 - + /* 00A24 8088BAA4 24052835 */ addiu $a1, $zero, 0x2835 ## $a1 = 00002835 .L8088BAA8: /* 00A28 8088BAA8 3C0B8089 */ lui $t3, %hi(func_8088B954) ## $t3 = 80890000 @@ -98,49 +98,49 @@ glabel func_8088B990 /* 00A44 8088BAC4 C6060028 */ lwc1 $f6, 0x0028($s0) ## 00000028 /* 00A48 8088BAC8 C610000C */ lwc1 $f16, 0x000C($s0) ## 0000000C /* 00A4C 8088BACC 3C014220 */ lui $at, 0x4220 ## $at = 42200000 -/* 00A50 8088BAD0 46083280 */ add.s $f10, $f6, $f8 +/* 00A50 8088BAD0 46083280 */ add.s $f10, $f6, $f8 /* 00A54 8088BAD4 44812000 */ mtc1 $at, $f4 ## $f4 = 40.00 /* 00A58 8088BAD8 3C0142A0 */ lui $at, 0x42A0 ## $at = 42A00000 /* 00A5C 8088BADC 44814000 */ mtc1 $at, $f8 ## $f8 = 80.00 -/* 00A60 8088BAE0 46105481 */ sub.s $f18, $f10, $f16 +/* 00A60 8088BAE0 46105481 */ sub.s $f18, $f10, $f16 /* 00A64 8088BAE4 920C0168 */ lbu $t4, 0x0168($s0) ## 00000168 -/* 00A68 8088BAE8 46049180 */ add.s $f6, $f18, $f4 -/* 00A6C 8088BAEC 46083283 */ div.s $f10, $f6, $f8 -/* 00A70 8088BAF0 1580001C */ bne $t4, $zero, .L8088BB64 +/* 00A68 8088BAE8 46049180 */ add.s $f6, $f18, $f4 +/* 00A6C 8088BAEC 46083283 */ div.s $f10, $f6, $f8 +/* 00A70 8088BAF0 1580001C */ bne $t4, $zero, .L8088BB64 /* 00A74 8088BAF4 E60A016C */ swc1 $f10, 0x016C($s0) ## 0000016C -/* 00A78 8088BAF8 0C010D5B */ jal func_8004356C +/* 00A78 8088BAF8 0C010D5B */ jal func_8004356C /* 00A7C 8088BAFC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00A80 8088BB00 1040000C */ beq $v0, $zero, .L8088BB34 +/* 00A80 8088BB00 1040000C */ beq $v0, $zero, .L8088BB34 /* 00A84 8088BB04 00000000 */ nop /* 00A88 8088BB08 920D0169 */ lbu $t5, 0x0169($s0) ## 00000169 /* 00A8C 8088BB0C 240E0003 */ addiu $t6, $zero, 0x0003 ## $t6 = 00000003 -/* 00A90 8088BB10 55A00003 */ bnel $t5, $zero, .L8088BB20 -/* 00A94 8088BB14 8FAF002C */ lw $t7, 0x002C($sp) +/* 00A90 8088BB10 55A00003 */ bnel $t5, $zero, .L8088BB20 +/* 00A94 8088BB14 8FAF002C */ lw $t7, 0x002C($sp) /* 00A98 8088BB18 A20E0169 */ sb $t6, 0x0169($s0) ## 00000169 -/* 00A9C 8088BB1C 8FAF002C */ lw $t7, 0x002C($sp) +/* 00A9C 8088BB1C 8FAF002C */ lw $t7, 0x002C($sp) .L8088BB20: /* 00AA0 8088BB20 24050030 */ addiu $a1, $zero, 0x0030 ## $a1 = 00000030 -/* 00AA4 8088BB24 0C0169DF */ jal func_8005A77C +/* 00AA4 8088BB24 0C0169DF */ jal Camera_ChangeSetting /* 00AA8 8088BB28 8DE40790 */ lw $a0, 0x0790($t7) ## 00000790 -/* 00AAC 8088BB2C 1000000E */ beq $zero, $zero, .L8088BB68 -/* 00AB0 8088BB30 8FBF0024 */ lw $ra, 0x0024($sp) +/* 00AAC 8088BB2C 1000000E */ beq $zero, $zero, .L8088BB68 +/* 00AB0 8088BB30 8FBF0024 */ lw $ra, 0x0024($sp) .L8088BB34: -/* 00AB4 8088BB34 0C010D5B */ jal func_8004356C +/* 00AB4 8088BB34 0C010D5B */ jal func_8004356C /* 00AB8 8088BB38 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00ABC 8088BB3C 5440000A */ bnel $v0, $zero, .L8088BB68 -/* 00AC0 8088BB40 8FBF0024 */ lw $ra, 0x0024($sp) +/* 00ABC 8088BB3C 5440000A */ bnel $v0, $zero, .L8088BB68 +/* 00AC0 8088BB40 8FBF0024 */ lw $ra, 0x0024($sp) /* 00AC4 8088BB44 92180169 */ lbu $t8, 0x0169($s0) ## 00000169 -/* 00AC8 8088BB48 8FB9002C */ lw $t9, 0x002C($sp) +/* 00AC8 8088BB48 8FB9002C */ lw $t9, 0x002C($sp) /* 00ACC 8088BB4C 24050003 */ addiu $a1, $zero, 0x0003 ## $a1 = 00000003 -/* 00AD0 8088BB50 53000004 */ beql $t8, $zero, .L8088BB64 +/* 00AD0 8088BB50 53000004 */ beql $t8, $zero, .L8088BB64 /* 00AD4 8088BB54 A2000169 */ sb $zero, 0x0169($s0) ## 00000169 -/* 00AD8 8088BB58 0C0169DF */ jal func_8005A77C +/* 00AD8 8088BB58 0C0169DF */ jal Camera_ChangeSetting /* 00ADC 8088BB5C 8F240790 */ lw $a0, 0x0790($t9) ## 00000790 /* 00AE0 8088BB60 A2000169 */ sb $zero, 0x0169($s0) ## 00000169 .L8088BB64: -/* 00AE4 8088BB64 8FBF0024 */ lw $ra, 0x0024($sp) +/* 00AE4 8088BB64 8FBF0024 */ lw $ra, 0x0024($sp) .L8088BB68: -/* 00AE8 8088BB68 8FB00020 */ lw $s0, 0x0020($sp) +/* 00AE8 8088BB68 8FB00020 */ lw $s0, 0x0020($sp) /* 00AEC 8088BB6C 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000 -/* 00AF0 8088BB70 03E00008 */ jr $ra +/* 00AF0 8088BB70 03E00008 */ jr $ra /* 00AF4 8088BB74 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Rock/func_8088BC40.s b/asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Rock/func_8088BC40.s index c0423c44bf..142b51e992 100644 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Rock/func_8088BC40.s +++ b/asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Rock/func_8088BC40.s @@ -75,7 +75,7 @@ glabel func_8088BC40 /* 00CA4 8088BD24 844C07A0 */ lh $t4, 0x07A0($v0) ## 000007A0 /* 00CA8 8088BD28 000C6880 */ sll $t5, $t4, 2 /* 00CAC 8088BD2C 004D7021 */ addu $t6, $v0, $t5 -/* 00CB0 8088BD30 0C016A7D */ jal func_8005A9F4 +/* 00CB0 8088BD30 0C016A7D */ jal Camera_GetCamDirYaw /* 00CB4 8088BD34 8DC40790 */ lw $a0, 0x0790($t6) ## 00000790 /* 00CB8 8088BD38 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000 /* 00CBC 8088BD3C 00412821 */ addu $a1, $v0, $at diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Sekizou/BgHidanSekizou_Draw.s b/asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Sekizou/BgHidanSekizou_Draw.s index 699d1ff05b..5950eb3759 100644 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Sekizou/BgHidanSekizou_Draw.s +++ b/asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Sekizou/BgHidanSekizou_Draw.s @@ -78,7 +78,7 @@ glabel BgHidanSekizou_Draw /* 01118 8088DFD8 868F07A0 */ lh $t7, 0x07A0($s4) ## 000007A0 /* 0111C 8088DFDC 000FC080 */ sll $t8, $t7, 2 /* 01120 8088DFE0 0298C821 */ addu $t9, $s4, $t8 -/* 01124 8088DFE4 0C016A7D */ jal func_8005A9F4 +/* 01124 8088DFE4 0C016A7D */ jal Camera_GetCamDirYaw /* 01128 8088DFE8 8F240790 */ lw $a0, 0x0790($t9) ## 00000790 /* 0112C 8088DFEC 862300B6 */ lh $v1, 0x00B6($s1) ## 000000B6 /* 01130 8088DFF0 02802025 */ or $a0, $s4, $zero ## $a0 = 00000000 @@ -132,7 +132,7 @@ glabel BgHidanSekizou_Draw .L8088E0AC: /* 011EC 8088E0AC 000D7080 */ sll $t6, $t5, 2 /* 011F0 8088E0B0 028E7821 */ addu $t7, $s4, $t6 -/* 011F4 8088E0B4 0C016A7D */ jal func_8005A9F4 +/* 011F4 8088E0B4 0C016A7D */ jal Camera_GetCamDirYaw /* 011F8 8088E0B8 8DE40790 */ lw $a0, 0x0790($t7) ## 00000790 /* 011FC 8088E0BC 00022400 */ sll $a0, $v0, 16 /* 01200 8088E0C0 00042403 */ sra $a0, $a0, 16 diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Sekizou/func_8088DC50.s b/asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Sekizou/func_8088DC50.s index b1d724eb76..27b3af2d27 100644 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Sekizou/func_8088DC50.s +++ b/asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Sekizou/func_8088DC50.s @@ -50,7 +50,7 @@ glabel func_8088DC50 /* 00E40 8088DD00 86B807A0 */ lh $t8, 0x07A0($s5) ## 000007A0 /* 00E44 8088DD04 0018C880 */ sll $t9, $t8, 2 /* 00E48 8088DD08 02B94021 */ addu $t0, $s5, $t9 -/* 00E4C 8088DD0C 0C016A7D */ jal func_8005A9F4 +/* 00E4C 8088DD0C 0C016A7D */ jal Camera_GetCamDirYaw /* 00E50 8088DD10 8D040790 */ lw $a0, 0x0790($t0) ## 00000790 /* 00E54 8088DD14 00501823 */ subu $v1, $v0, $s0 /* 00E58 8088DD18 00031C00 */ sll $v1, $v1, 16 diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Sima/func_8088E518.s b/asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Sima/func_8088E518.s index cf01392e36..ac06aa9c87 100644 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Sima/func_8088E518.s +++ b/asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Sima/func_8088E518.s @@ -26,7 +26,7 @@ glabel func_8088E518 /* 001A4 8088E574 844A07A0 */ lh $t2, 0x07A0($v0) ## 000007A0 /* 001A8 8088E578 000A5880 */ sll $t3, $t2, 2 /* 001AC 8088E57C 004B6021 */ addu $t4, $v0, $t3 -/* 001B0 8088E580 0C016A7D */ jal func_8005A9F4 +/* 001B0 8088E580 0C016A7D */ jal Camera_GetCamDirYaw /* 001B4 8088E584 8D840790 */ lw $a0, 0x0790($t4) ## 00000790 /* 001B8 8088E588 C6040028 */ lwc1 $f4, 0x0028($s0) ## 00000028 /* 001BC 8088E58C C606000C */ lwc1 $f6, 0x000C($s0) ## 0000000C diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Spot00_Hanebasi/func_808AA2B0.s b/asm/non_matchings/overlays/actors/ovl_Bg_Spot00_Hanebasi/func_808AA2B0.s index 2f6a872a15..54f9bde4cd 100644 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Spot00_Hanebasi/func_808AA2B0.s +++ b/asm/non_matchings/overlays/actors/ovl_Bg_Spot00_Hanebasi/func_808AA2B0.s @@ -76,7 +76,7 @@ glabel func_808AA2B0 /* 00BE8 808AA368 866807A0 */ lh $t0, 0x07A0($s3) ## 000007A0 /* 00BEC 808AA36C 00084880 */ sll $t1, $t0, 2 /* 00BF0 808AA370 02695021 */ addu $t2, $s3, $t1 -/* 00BF4 808AA374 0C016A7D */ jal func_8005A9F4 +/* 00BF4 808AA374 0C016A7D */ jal Camera_GetCamDirYaw /* 00BF8 808AA378 8D440790 */ lw $a0, 0x0790($t2) ## 00000790 /* 00BFC 808AA37C 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000 /* 00C00 808AA380 00415821 */ addu $t3, $v0, $at diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Sst_Floor/BgSstFloor_Update.s b/asm/non_matchings/overlays/actors/ovl_Bg_Sst_Floor/BgSstFloor_Update.s index 2aa50550ed..7450b86f8f 100644 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Sst_Floor/BgSstFloor_Update.s +++ b/asm/non_matchings/overlays/actors/ovl_Bg_Sst_Floor/BgSstFloor_Update.s @@ -11,208 +11,208 @@ glabel BgSstFloor_Update /* 00098 808B99A8 3C020602 */ lui $v0, 0x0602 ## $v0 = 06020000 /* 0009C 808B99AC 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8 /* 000A0 808B99B0 244294F8 */ addiu $v0, $v0, 0x94F8 ## $v0 = 060194F8 -/* 000A4 808B99B4 0002C100 */ sll $t8, $v0, 4 +/* 000A4 808B99B4 0002C100 */ sll $t8, $v0, 4 /* 000A8 808B99B8 3C068016 */ lui $a2, %hi(gSegments) -/* 000AC 808B99BC 0018CF02 */ srl $t9, $t8, 28 +/* 000AC 808B99BC 0018CF02 */ srl $t9, $t8, 28 /* 000B0 808B99C0 24C66FA8 */ addiu $a2, %lo(gSegments) -/* 000B4 808B99C4 00194880 */ sll $t1, $t9, 2 -/* 000B8 808B99C8 00C95021 */ addu $t2, $a2, $t1 +/* 000B4 808B99C4 00194880 */ sll $t1, $t9, 2 +/* 000B8 808B99C8 00C95021 */ addu $t2, $a2, $t1 /* 000BC 808B99CC 8D4B0000 */ lw $t3, 0x0000($t2) ## 00000000 -/* 000C0 808B99D0 AFBF0024 */ sw $ra, 0x0024($sp) -/* 000C4 808B99D4 AFB20020 */ sw $s2, 0x0020($sp) -/* 000C8 808B99D8 AFB1001C */ sw $s1, 0x001C($sp) -/* 000CC 808B99DC AFB00018 */ sw $s0, 0x0018($sp) -/* 000D0 808B99E0 AFA5003C */ sw $a1, 0x003C($sp) +/* 000C0 808B99D0 AFBF0024 */ sw $ra, 0x0024($sp) +/* 000C4 808B99D4 AFB20020 */ sw $s2, 0x0020($sp) +/* 000C8 808B99D8 AFB1001C */ sw $s1, 0x001C($sp) +/* 000CC 808B99DC AFB00018 */ sw $s0, 0x0018($sp) +/* 000D0 808B99E0 AFA5003C */ sw $a1, 0x003C($sp) /* 000D4 808B99E4 3C0700FF */ lui $a3, 0x00FF ## $a3 = 00FF0000 /* 000D8 808B99E8 8CAF1C44 */ lw $t7, 0x1C44($a1) ## 00001C44 /* 000DC 808B99EC 34E7FFFF */ ori $a3, $a3, 0xFFFF ## $a3 = 00FFFFFF -/* 000E0 808B99F0 00476024 */ and $t4, $v0, $a3 +/* 000E0 808B99F0 00476024 */ and $t4, $v0, $a3 /* 000E4 808B99F4 3C088000 */ lui $t0, 0x8000 ## $t0 = 80000000 -/* 000E8 808B99F8 016C6821 */ addu $t5, $t3, $t4 -/* 000EC 808B99FC 01A89021 */ addu $s2, $t5, $t0 -/* 000F0 808B9A00 AFAF002C */ sw $t7, 0x002C($sp) +/* 000E8 808B99F8 016C6821 */ addu $t5, $t3, $t4 +/* 000EC 808B99FC 01A89021 */ addu $s2, $t5, $t0 +/* 000F0 808B9A00 AFAF002C */ sw $t7, 0x002C($sp) /* 000F4 808B9A04 8E430010 */ lw $v1, 0x0010($s2) ## 00000010 /* 000F8 808B9A08 00808825 */ or $s1, $a0, $zero ## $s1 = 00000000 -/* 000FC 808B9A0C 00037100 */ sll $t6, $v1, 4 -/* 00100 808B9A10 000E7F02 */ srl $t7, $t6, 28 -/* 00104 808B9A14 000FC080 */ sll $t8, $t7, 2 -/* 00108 808B9A18 00D8C821 */ addu $t9, $a2, $t8 +/* 000FC 808B9A0C 00037100 */ sll $t6, $v1, 4 +/* 00100 808B9A10 000E7F02 */ srl $t7, $t6, 28 +/* 00104 808B9A14 000FC080 */ sll $t8, $t7, 2 +/* 00108 808B9A18 00D8C821 */ addu $t9, $a2, $t8 /* 0010C 808B9A1C 8F290000 */ lw $t1, 0x0000($t9) ## 00000000 -/* 00110 808B9A20 00675024 */ and $t2, $v1, $a3 -/* 00114 808B9A24 012A5821 */ addu $t3, $t1, $t2 -/* 00118 808B9A28 01686021 */ addu $t4, $t3, $t0 -/* 0011C 808B9A2C 0C010D64 */ jal func_80043590 +/* 00110 808B9A20 00675024 */ and $t2, $v1, $a3 +/* 00114 808B9A24 012A5821 */ addu $t3, $t1, $t2 +/* 00118 808B9A28 01686021 */ addu $t4, $t3, $t0 +/* 0011C 808B9A2C 0C010D64 */ jal func_80043590 /* 00120 808B9A30 AE4C0010 */ sw $t4, 0x0010($s2) ## 00000010 -/* 00124 808B9A34 1040000D */ beq $v0, $zero, .L808B9A6C +/* 00124 808B9A34 1040000D */ beq $v0, $zero, .L808B9A6C /* 00128 808B9A38 3C01447A */ lui $at, 0x447A ## $at = 447A0000 /* 0012C 808B9A3C C6240094 */ lwc1 $f4, 0x0094($s1) ## 00000094 /* 00130 808B9A40 44813000 */ mtc1 $at, $f6 ## $f6 = 1000.00 -/* 00134 808B9A44 8FAD003C */ lw $t5, 0x003C($sp) +/* 00134 808B9A44 8FAD003C */ lw $t5, 0x003C($sp) /* 00138 808B9A48 2405000C */ addiu $a1, $zero, 0x000C ## $a1 = 0000000C -/* 0013C 808B9A4C 4606203C */ c.lt.s $f4, $f6 +/* 0013C 808B9A4C 4606203C */ c.lt.s $f4, $f6 /* 00140 808B9A50 00000000 */ nop -/* 00144 808B9A54 45020006 */ bc1fl .L808B9A70 -/* 00148 808B9A58 8FAE003C */ lw $t6, 0x003C($sp) -/* 0014C 808B9A5C 0C0169DF */ jal func_8005A77C +/* 00144 808B9A54 45020006 */ bc1fl .L808B9A70 +/* 00148 808B9A58 8FAE003C */ lw $t6, 0x003C($sp) +/* 0014C 808B9A5C 0C0169DF */ jal Camera_ChangeSetting /* 00150 808B9A60 8DA40790 */ lw $a0, 0x0790($t5) ## 00000790 -/* 00154 808B9A64 10000005 */ beq $zero, $zero, .L808B9A7C +/* 00154 808B9A64 10000005 */ beq $zero, $zero, .L808B9A7C /* 00158 808B9A68 00000000 */ nop .L808B9A6C: -/* 0015C 808B9A6C 8FAE003C */ lw $t6, 0x003C($sp) +/* 0015C 808B9A6C 8FAE003C */ lw $t6, 0x003C($sp) .L808B9A70: /* 00160 808B9A70 24050003 */ addiu $a1, $zero, 0x0003 ## $a1 = 00000003 -/* 00164 808B9A74 0C0169DF */ jal func_8005A77C +/* 00164 808B9A74 0C0169DF */ jal Camera_ChangeSetting /* 00168 808B9A78 8DC40790 */ lw $a0, 0x0790($t6) ## 00000790 .L808B9A7C: -/* 0016C 808B9A7C 0C010D5B */ jal func_8004356C +/* 0016C 808B9A7C 0C010D5B */ jal func_8004356C /* 00170 808B9A80 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00174 808B9A84 1040000F */ beq $v0, $zero, .L808B9AC4 -/* 00178 808B9A88 8FAF002C */ lw $t7, 0x002C($sp) +/* 00174 808B9A84 1040000F */ beq $v0, $zero, .L808B9AC4 +/* 00178 808B9A88 8FAF002C */ lw $t7, 0x002C($sp) /* 0017C 808B9A8C 85F80896 */ lh $t8, 0x0896($t7) ## 00000896 /* 00180 808B9A90 3C01447A */ lui $at, 0x447A ## $at = 447A0000 /* 00184 808B9A94 44814000 */ mtc1 $at, $f8 ## $f8 = 1000.00 /* 00188 808B9A98 44985000 */ mtc1 $t8, $f10 ## $f10 = 0.00 /* 0018C 808B9A9C 24190001 */ addiu $t9, $zero, 0x0001 ## $t9 = 00000001 /* 00190 808B9AA0 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00194 808B9AA4 468054A0 */ cvt.s.w $f18, $f10 +/* 00194 808B9AA4 468054A0 */ cvt.s.w $f18, $f10 /* 00198 808B9AA8 24053951 */ addiu $a1, $zero, 0x3951 ## $a1 = 00003951 -/* 0019C 808B9AAC 4612403C */ c.lt.s $f8, $f18 +/* 0019C 808B9AAC 4612403C */ c.lt.s $f8, $f18 /* 001A0 808B9AB0 00000000 */ nop -/* 001A4 808B9AB4 45020004 */ bc1fl .L808B9AC8 +/* 001A4 808B9AB4 45020004 */ bc1fl .L808B9AC8 /* 001A8 808B9AB8 8629001C */ lh $t1, 0x001C($s1) ## 0000001C /* 001AC 808B9ABC 0C00BE0A */ jal Audio_PlayActorSound2 - + /* 001B0 808B9AC0 A639001C */ sh $t9, 0x001C($s1) ## 0000001C .L808B9AC4: /* 001B4 808B9AC4 8629001C */ lh $t1, 0x001C($s1) ## 0000001C .L808B9AC8: /* 001B8 808B9AC8 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001 -/* 001BC 808B9ACC 8FAA003C */ lw $t2, 0x003C($sp) -/* 001C0 808B9AD0 15210051 */ bne $t1, $at, .L808B9C18 +/* 001BC 808B9ACC 8FAA003C */ lw $t2, 0x003C($sp) +/* 001C0 808B9AD0 15210051 */ bne $t1, $at, .L808B9C18 /* 001C4 808B9AD4 240B0050 */ addiu $t3, $zero, 0x0050 ## $t3 = 00000050 /* 001C8 808B9AD8 8D501C74 */ lw $s0, 0x1C74($t2) ## 00001C74 /* 001CC 808B9ADC 240C001C */ addiu $t4, $zero, 0x001C ## $t4 = 0000001C /* 001D0 808B9AE0 A62B0166 */ sh $t3, 0x0166($s1) ## 00000166 /* 001D4 808B9AE4 A620001C */ sh $zero, 0x001C($s1) ## 0000001C /* 001D8 808B9AE8 A62C0164 */ sh $t4, 0x0164($s1) ## 00000164 -/* 001DC 808B9AEC 0C010D5B */ jal func_8004356C +/* 001DC 808B9AEC 0C010D5B */ jal func_8004356C /* 001E0 808B9AF0 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 001E4 808B9AF4 10400020 */ beq $v0, $zero, .L808B9B78 +/* 001E4 808B9AF4 10400020 */ beq $v0, $zero, .L808B9B78 /* 001E8 808B9AF8 00000000 */ nop -/* 001EC 808B9AFC 8FA2002C */ lw $v0, 0x002C($sp) +/* 001EC 808B9AFC 8FA2002C */ lw $v0, 0x002C($sp) /* 001F0 808B9B00 3C014416 */ lui $at, 0x4416 ## $at = 44160000 /* 001F4 808B9B04 8C4D067C */ lw $t5, 0x067C($v0) ## 0000067C /* 001F8 808B9B08 31AE6000 */ andi $t6, $t5, 0x6000 ## $t6 = 00000000 -/* 001FC 808B9B0C 15C0001A */ bne $t6, $zero, .L808B9B78 +/* 001FC 808B9B0C 15C0001A */ bne $t6, $zero, .L808B9B78 /* 00200 808B9B10 00000000 */ nop /* 00204 808B9B14 44818000 */ mtc1 $at, $f16 ## $f16 = 600.00 /* 00208 808B9B18 C6240090 */ lwc1 $f4, 0x0090($s1) ## 00000090 /* 0020C 808B9B1C 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00 /* 00210 808B9B20 3C0143AF */ lui $at, 0x43AF ## $at = 43AF0000 -/* 00214 808B9B24 46048301 */ sub.s $f12, $f16, $f4 -/* 00218 808B9B28 460C303C */ c.lt.s $f6, $f12 +/* 00214 808B9B24 46048301 */ sub.s $f12, $f16, $f4 +/* 00218 808B9B28 460C303C */ c.lt.s $f6, $f12 /* 0021C 808B9B2C 00000000 */ nop -/* 00220 808B9B30 45000011 */ bc1f .L808B9B78 +/* 00220 808B9B30 45000011 */ bc1f .L808B9B78 /* 00224 808B9B34 00000000 */ nop /* 00228 808B9B38 44817000 */ mtc1 $at, $f14 ## $f14 = 350.00 /* 0022C 808B9B3C 3C014110 */ lui $at, 0x4110 ## $at = 41100000 /* 00230 808B9B40 44815000 */ mtc1 $at, $f10 ## $f10 = 9.00 -/* 00234 808B9B44 460C703C */ c.lt.s $f14, $f12 +/* 00234 808B9B44 460C703C */ c.lt.s $f14, $f12 /* 00238 808B9B48 00000000 */ nop -/* 0023C 808B9B4C 45020003 */ bc1fl .L808B9B5C +/* 0023C 808B9B4C 45020003 */ bc1fl .L808B9B5C /* 00240 808B9B50 944F0088 */ lhu $t7, 0x0088($v0) ## 00000088 -/* 00244 808B9B54 46007306 */ mov.s $f12, $f14 +/* 00244 808B9B54 46007306 */ mov.s $f12, $f14 /* 00248 808B9B58 944F0088 */ lhu $t7, 0x0088($v0) ## 00000088 .L808B9B5C: -/* 0024C 808B9B5C 460C5202 */ mul.s $f8, $f10, $f12 +/* 0024C 808B9B5C 460C5202 */ mul.s $f8, $f10, $f12 /* 00250 808B9B60 3C01808C */ lui $at, %hi(D_808B9E7C) ## $at = 808C0000 /* 00254 808B9B64 31F8FFFE */ andi $t8, $t7, 0xFFFE ## $t8 = 00000000 /* 00258 808B9B68 A4580088 */ sh $t8, 0x0088($v0) ## 00000088 -/* 0025C 808B9B6C C4329E7C */ lwc1 $f18, %lo(D_808B9E7C)($at) -/* 00260 808B9B70 46124102 */ mul.s $f4, $f8, $f18 +/* 0025C 808B9B6C C4329E7C */ lwc1 $f18, %lo(D_808B9E7C)($at) +/* 00260 808B9B70 46124102 */ mul.s $f4, $f8, $f18 /* 00264 808B9B74 E4440060 */ swc1 $f4, 0x0060($v0) ## 00000060 .L808B9B78: -/* 00268 808B9B78 52000028 */ beql $s0, $zero, .L808B9C1C +/* 00268 808B9B78 52000028 */ beql $s0, $zero, .L808B9C1C /* 0026C 808B9B7C 862B0164 */ lh $t3, 0x0164($s1) ## 00000164 /* 00270 808B9B80 86190000 */ lh $t9, 0x0000($s0) ## 00000000 .L808B9B84: /* 00274 808B9B84 24010015 */ addiu $at, $zero, 0x0015 ## $at = 00000015 -/* 00278 808B9B88 57210021 */ bnel $t9, $at, .L808B9C10 +/* 00278 808B9B88 57210021 */ bnel $t9, $at, .L808B9C10 /* 0027C 808B9B8C 8E100124 */ lw $s0, 0x0124($s0) ## 00000124 /* 00280 808B9B90 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00 /* 00284 808B9B94 C60A0028 */ lwc1 $f10, 0x0028($s0) ## 00000028 /* 00288 808B9B98 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 0028C 808B9B9C 460A3032 */ c.eq.s $f6, $f10 +/* 0028C 808B9B9C 460A3032 */ c.eq.s $f6, $f10 /* 00290 808B9BA0 00000000 */ nop -/* 00294 808B9BA4 4502001A */ bc1fl .L808B9C10 +/* 00294 808B9BA4 4502001A */ bc1fl .L808B9C10 /* 00298 808B9BA8 8E100124 */ lw $s0, 0x0124($s0) ## 00000124 -/* 0029C 808B9BAC 0C00B6E3 */ jal func_8002DB8C +/* 0029C 808B9BAC 0C00B6E3 */ jal func_8002DB8C /* 002A0 808B9BB0 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 /* 002A4 808B9BB4 3C0143AF */ lui $at, 0x43AF ## $at = 43AF0000 /* 002A8 808B9BB8 44817000 */ mtc1 $at, $f14 ## $f14 = 350.00 /* 002AC 808B9BBC 3C014416 */ lui $at, 0x4416 ## $at = 44160000 /* 002B0 808B9BC0 44818000 */ mtc1 $at, $f16 ## $f16 = 600.00 /* 002B4 808B9BC4 3C014110 */ lui $at, 0x4110 ## $at = 41100000 -/* 002B8 808B9BC8 4610003C */ c.lt.s $f0, $f16 -/* 002BC 808B9BCC 46008081 */ sub.s $f2, $f16, $f0 -/* 002C0 808B9BD0 4500000E */ bc1f .L808B9C0C -/* 002C4 808B9BD4 46001306 */ mov.s $f12, $f2 -/* 002C8 808B9BD8 4602703C */ c.lt.s $f14, $f2 +/* 002B8 808B9BC8 4610003C */ c.lt.s $f0, $f16 +/* 002BC 808B9BCC 46008081 */ sub.s $f2, $f16, $f0 +/* 002C0 808B9BD0 4500000E */ bc1f .L808B9C0C +/* 002C4 808B9BD4 46001306 */ mov.s $f12, $f2 +/* 002C8 808B9BD8 4602703C */ c.lt.s $f14, $f2 /* 002CC 808B9BDC 44814000 */ mtc1 $at, $f8 ## $f8 = 9.00 -/* 002D0 808B9BE0 45020003 */ bc1fl .L808B9BF0 +/* 002D0 808B9BE0 45020003 */ bc1fl .L808B9BF0 /* 002D4 808B9BE4 96090088 */ lhu $t1, 0x0088($s0) ## 00000088 -/* 002D8 808B9BE8 46007306 */ mov.s $f12, $f14 +/* 002D8 808B9BE8 46007306 */ mov.s $f12, $f14 /* 002DC 808B9BEC 96090088 */ lhu $t1, 0x0088($s0) ## 00000088 .L808B9BF0: -/* 002E0 808B9BF0 460C4482 */ mul.s $f18, $f8, $f12 +/* 002E0 808B9BF0 460C4482 */ mul.s $f18, $f8, $f12 /* 002E4 808B9BF4 3C01808C */ lui $at, %hi(D_808B9E80) ## $at = 808C0000 /* 002E8 808B9BF8 312AFFFC */ andi $t2, $t1, 0xFFFC ## $t2 = 00000000 /* 002EC 808B9BFC A60A0088 */ sh $t2, 0x0088($s0) ## 00000088 -/* 002F0 808B9C00 C4249E80 */ lwc1 $f4, %lo(D_808B9E80)($at) -/* 002F4 808B9C04 46049182 */ mul.s $f6, $f18, $f4 +/* 002F0 808B9C00 C4249E80 */ lwc1 $f4, %lo(D_808B9E80)($at) +/* 002F4 808B9C04 46049182 */ mul.s $f6, $f18, $f4 /* 002F8 808B9C08 E6060060 */ swc1 $f6, 0x0060($s0) ## 00000060 .L808B9C0C: /* 002FC 808B9C0C 8E100124 */ lw $s0, 0x0124($s0) ## 00000124 .L808B9C10: -/* 00300 808B9C10 5600FFDC */ bnel $s0, $zero, .L808B9B84 +/* 00300 808B9C10 5600FFDC */ bnel $s0, $zero, .L808B9B84 /* 00304 808B9C14 86190000 */ lh $t9, 0x0000($s0) ## 00000000 .L808B9C18: /* 00308 808B9C18 862B0164 */ lh $t3, 0x0164($s1) ## 00000164 .L808B9C1C: /* 0030C 808B9C1C 3C01808C */ lui $at, %hi(D_808B9E84) ## $at = 808C0000 -/* 00310 808B9C20 C4329E84 */ lwc1 $f18, %lo(D_808B9E84)($at) +/* 00310 808B9C20 C4329E84 */ lwc1 $f18, %lo(D_808B9E84)($at) /* 00314 808B9C24 448B5000 */ mtc1 $t3, $f10 ## $f10 = 0.00 /* 00318 808B9C28 00000000 */ nop -/* 0031C 808B9C2C 46805220 */ cvt.s.w $f8, $f10 -/* 00320 808B9C30 46124302 */ mul.s $f12, $f8, $f18 +/* 0031C 808B9C2C 46805220 */ cvt.s.w $f8, $f10 +/* 00320 808B9C30 46124302 */ mul.s $f12, $f8, $f18 /* 00324 808B9C34 0C0400A4 */ jal sinf - + /* 00328 808B9C38 00000000 */ nop /* 0032C 808B9C3C 862C0166 */ lh $t4, 0x0166($s1) ## 00000166 /* 00330 808B9C40 26240166 */ addiu $a0, $s1, 0x0166 ## $a0 = 00000166 /* 00334 808B9C44 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 00338 808B9C48 000C6823 */ subu $t5, $zero, $t4 +/* 00338 808B9C48 000C6823 */ subu $t5, $zero, $t4 /* 0033C 808B9C4C 448D2000 */ mtc1 $t5, $f4 ## $f4 = 0.00 /* 00340 808B9C50 24060005 */ addiu $a2, $zero, 0x0005 ## $a2 = 00000005 -/* 00344 808B9C54 468021A0 */ cvt.s.w $f6, $f4 -/* 00348 808B9C58 46060282 */ mul.s $f10, $f0, $f6 -/* 0034C 808B9C5C 4600520D */ trunc.w.s $f8, $f10 -/* 00350 808B9C60 440F4000 */ mfc1 $t7, $f8 +/* 00344 808B9C54 468021A0 */ cvt.s.w $f6, $f4 +/* 00348 808B9C58 46060282 */ mul.s $f10, $f0, $f6 +/* 0034C 808B9C5C 4600520D */ trunc.w.s $f8, $f10 +/* 00350 808B9C60 440F4000 */ mfc1 $t7, $f8 /* 00354 808B9C64 0C01DE5F */ jal Math_ApproxS - + /* 00358 808B9C68 A62F0168 */ sh $t7, 0x0168($s1) ## 00000168 /* 0035C 808B9C6C 86380168 */ lh $t8, 0x0168($s1) ## 00000168 /* 00360 808B9C70 C632000C */ lwc1 $f18, 0x000C($s1) ## 0000000C /* 00364 808B9C74 8E490010 */ lw $t1, 0x0010($s2) ## 00000010 /* 00368 808B9C78 44982000 */ mtc1 $t8, $f4 ## $f4 = 0.00 /* 0036C 808B9C7C 00000000 */ nop -/* 00370 808B9C80 468021A0 */ cvt.s.w $f6, $f4 -/* 00374 808B9C84 46069280 */ add.s $f10, $f18, $f6 -/* 00378 808B9C88 4600520D */ trunc.w.s $f8, $f10 -/* 0037C 808B9C8C 44034000 */ mfc1 $v1, $f8 +/* 00370 808B9C80 468021A0 */ cvt.s.w $f6, $f4 +/* 00374 808B9C84 46069280 */ add.s $f10, $f18, $f6 +/* 00378 808B9C88 4600520D */ trunc.w.s $f8, $f10 +/* 0037C 808B9C8C 44034000 */ mfc1 $v1, $f8 /* 00380 808B9C90 00000000 */ nop -/* 00384 808B9C94 00031C00 */ sll $v1, $v1, 16 -/* 00388 808B9C98 00031C03 */ sra $v1, $v1, 16 +/* 00384 808B9C94 00031C00 */ sll $v1, $v1, 16 +/* 00388 808B9C98 00031C03 */ sra $v1, $v1, 16 /* 0038C 808B9C9C A5230050 */ sh $v1, 0x0050($t1) ## 00000050 /* 00390 808B9CA0 8E4A0010 */ lw $t2, 0x0010($s2) ## 00000010 /* 00394 808B9CA4 A5430044 */ sh $v1, 0x0044($t2) ## 00000044 @@ -231,16 +231,16 @@ glabel BgSstFloor_Update /* 003C8 808B9CD8 8E590010 */ lw $t9, 0x0010($s2) ## 00000010 /* 003CC 808B9CDC A7230008 */ sh $v1, 0x0008($t9) ## 00000008 /* 003D0 808B9CE0 86240164 */ lh $a0, 0x0164($s1) ## 00000164 -/* 003D4 808B9CE4 10800002 */ beq $a0, $zero, .L808B9CF0 +/* 003D4 808B9CE4 10800002 */ beq $a0, $zero, .L808B9CF0 /* 003D8 808B9CE8 2489FFFF */ addiu $t1, $a0, 0xFFFF ## $t1 = FFFFFFFF /* 003DC 808B9CEC A6290164 */ sh $t1, 0x0164($s1) ## 00000164 .L808B9CF0: -/* 003E0 808B9CF0 8FA4003C */ lw $a0, 0x003C($sp) -/* 003E4 808B9CF4 0C00FB9B */ jal func_8003EE6C +/* 003E0 808B9CF0 8FA4003C */ lw $a0, 0x003C($sp) +/* 003E4 808B9CF4 0C00FB9B */ jal func_8003EE6C /* 003E8 808B9CF8 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810 -/* 003EC 808B9CFC 8FBF0024 */ lw $ra, 0x0024($sp) -/* 003F0 808B9D00 8FB00018 */ lw $s0, 0x0018($sp) -/* 003F4 808B9D04 8FB1001C */ lw $s1, 0x001C($sp) -/* 003F8 808B9D08 8FB20020 */ lw $s2, 0x0020($sp) -/* 003FC 808B9D0C 03E00008 */ jr $ra +/* 003EC 808B9CFC 8FBF0024 */ lw $ra, 0x0024($sp) +/* 003F0 808B9D00 8FB00018 */ lw $s0, 0x0018($sp) +/* 003F4 808B9D04 8FB1001C */ lw $s1, 0x001C($sp) +/* 003F8 808B9D08 8FB20020 */ lw $s2, 0x0020($sp) +/* 003FC 808B9D0C 03E00008 */ jr $ra /* 00400 808B9D10 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Dodongo/func_808C1D00.s b/asm/non_matchings/overlays/actors/ovl_Boss_Dodongo/func_808C1D00.s index ec9aa2649f..a476a87337 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Dodongo/func_808C1D00.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Dodongo/func_808C1D00.s @@ -826,7 +826,7 @@ glabel L808C23A8 /* 016C4 808C2854 C608020C */ lwc1 $f8, 0x020C($s0) ## 0000020C /* 016C8 808C2858 E7A80050 */ swc1 $f8, 0x0050($sp) /* 016CC 808C285C 860501B4 */ lh $a1, 0x01B4($s0) ## 000001B4 -/* 016D0 808C2860 0C030179 */ jal func_800C05E4 +/* 016D0 808C2860 0C030179 */ jal Gameplay_CameraSetAtEyeUp /* 016D4 808C2864 AFB90010 */ sw $t9, 0x0010($sp) /* 016D8 808C2868 8FBF002C */ lw $ra, 0x002C($sp) .L808C286C: diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Dodongo/func_808C3704.s b/asm/non_matchings/overlays/actors/ovl_Boss_Dodongo/func_808C3704.s index 1babe357bf..b872791246 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Dodongo/func_808C3704.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Dodongo/func_808C3704.s @@ -107,7 +107,7 @@ glabel func_808C3704 /* 026D0 808C3860 17000005 */ bne $t8, $zero, .L808C3878 /* 026D4 808C3864 248401E0 */ addiu $a0, $a0, 0x01E0 ## $a0 = 000001E0 /* 026D8 808C3868 24060001 */ addiu $a2, $zero, 0x0001 ## $a2 = 00000001 -/* 026DC 808C386C 0C016A87 */ jal func_8005AA1C +/* 026DC 808C386C 0C016A87 */ jal Camera_AddQuake /* 026E0 808C3870 24070008 */ addiu $a3, $zero, 0x0008 ## $a3 = 00000008 /* 026E4 808C3874 8602019E */ lh $v0, 0x019E($s0) ## 0000019E .L808C3878: @@ -223,7 +223,7 @@ glabel func_808C3704 /* 02888 808C3A18 8FA40040 */ lw $a0, 0x0040($sp) /* 0288C 808C3A1C 24050002 */ addiu $a1, $zero, 0x0002 ## $a1 = 00000002 /* 02890 808C3A20 24060006 */ addiu $a2, $zero, 0x0006 ## $a2 = 00000006 -/* 02894 808C3A24 0C016A87 */ jal func_8005AA1C +/* 02894 808C3A24 0C016A87 */ jal Camera_AddQuake /* 02898 808C3A28 24070008 */ addiu $a3, $zero, 0x0008 ## $a3 = 00000008 /* 0289C 808C3A2C C6080024 */ lwc1 $f8, 0x0024($s0) ## 00000024 /* 028A0 808C3A30 3C014270 */ lui $at, 0x4270 ## $at = 42700000 diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Dodongo/func_808C5578.s b/asm/non_matchings/overlays/actors/ovl_Boss_Dodongo/func_808C5578.s index 9a4b75b119..7bdb368701 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Dodongo/func_808C5578.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Dodongo/func_808C5578.s @@ -676,7 +676,7 @@ glabel L808C5A4C /* 04C60 808C5DF0 15000005 */ bne $t0, $zero, .L808C5E08 /* 04C64 808C5DF4 248401E0 */ addiu $a0, $a0, 0x01E0 ## $a0 = 000001E0 /* 04C68 808C5DF8 24060001 */ addiu $a2, $zero, 0x0001 ## $a2 = 00000001 -/* 04C6C 808C5DFC 0C016A87 */ jal func_8005AA1C +/* 04C6C 808C5DFC 0C016A87 */ jal Camera_AddQuake /* 04C70 808C5E00 24070008 */ addiu $a3, $zero, 0x0008 ## $a3 = 00000008 /* 04C74 808C5E04 8603019E */ lh $v1, 0x019E($s0) ## 0000019E .L808C5E08: @@ -1709,7 +1709,7 @@ glabel L808C6C84 /* 05AFC 808C6C8C 26060434 */ addiu $a2, $s0, 0x0434 ## $a2 = 00000434 /* 05B00 808C6C90 50A00004 */ beql $a1, $zero, .L808C6CA4 /* 05B04 808C6C94 8FBF003C */ lw $ra, 0x003C($sp) -/* 05B08 808C6C98 0C030136 */ jal func_800C04D8 +/* 05B08 808C6C98 0C030136 */ jal Gameplay_CameraSetAtEye /* 05B0C 808C6C9C 26070428 */ addiu $a3, $s0, 0x0428 ## $a3 = 00000428 /* 05B10 808C6CA0 8FBF003C */ lw $ra, 0x003C($sp) .L808C6CA4: diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Fd/func_808CB198.s b/asm/non_matchings/overlays/actors/ovl_Boss_Fd/func_808CB198.s index 7ba213f78b..16bb25cc81 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Fd/func_808CB198.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Fd/func_808CB198.s @@ -85,7 +85,7 @@ glabel func_808CB198 /* 00508 808CB2C8 E6081418 */ swc1 $f8, 0x1418($s0) ## 00001418 /* 0050C 808CB2CC 8FA70024 */ lw $a3, 0x0024($sp) /* 00510 808CB2D0 8FA60020 */ lw $a2, 0x0020($sp) -/* 00514 808CB2D4 0C030136 */ jal func_800C04D8 +/* 00514 808CB2D4 0C030136 */ jal Gameplay_CameraSetAtEye /* 00518 808CB2D8 8FA4002C */ lw $a0, 0x002C($sp) /* 0051C 808CB2DC 3C063DCC */ lui $a2, 0x3DCC ## $a2 = 3DCC0000 /* 00520 808CB2E0 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3DCCCCCD diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Fd2/func_808D3F58.s b/asm/non_matchings/overlays/actors/ovl_Boss_Fd2/func_808D3F58.s index 4333bb9807..a2ceb6b7d2 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Fd2/func_808D3F58.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Fd2/func_808D3F58.s @@ -85,7 +85,7 @@ glabel func_808D3F58 /* 01A18 808D4088 E60813A4 */ swc1 $f8, 0x13A4($s0) ## 000013A4 /* 01A1C 808D408C 8FA70024 */ lw $a3, 0x0024($sp) /* 01A20 808D4090 8FA60020 */ lw $a2, 0x0020($sp) -/* 01A24 808D4094 0C030136 */ jal func_800C04D8 +/* 01A24 808D4094 0C030136 */ jal Gameplay_CameraSetAtEye /* 01A28 808D4098 8FA4002C */ lw $a0, 0x002C($sp) /* 01A2C 808D409C 3C073DCC */ lui $a3, 0x3DCC ## $a3 = 3DCC0000 /* 01A30 808D40A0 34E7CCCD */ ori $a3, $a3, 0xCCCD ## $a3 = 3DCCCCCD diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808D7918.s b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808D7918.s index 789a2c68fd..d482144c8d 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808D7918.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808D7918.s @@ -1640,11 +1640,11 @@ glabel L808D8ED4 .L808D8FE4: /* 02774 808D8FE4 8FA40074 */ lw $a0, 0x0074($sp) /* 02778 808D8FE8 8FA60048 */ lw $a2, 0x0048($sp) -/* 0277C 808D8FEC 0C030136 */ jal func_800C04D8 +/* 0277C 808D8FEC 0C030136 */ jal Gameplay_CameraSetAtEye /* 02780 808D8FF0 8FA70044 */ lw $a3, 0x0044($sp) /* 02784 808D8FF4 8FA40074 */ lw $a0, 0x0074($sp) /* 02788 808D8FF8 8605067A */ lh $a1, 0x067A($s0) ## 0000067A -/* 0278C 808D8FFC 0C0301C1 */ jal func_800C0704 +/* 0278C 808D8FFC 0C0301C1 */ jal Gameplay_CameraSetFov /* 02790 808D9000 8E0606F4 */ lw $a2, 0x06F4($s0) ## 000006F4 /* 02794 808D9004 8FBF003C */ lw $ra, 0x003C($sp) .L808D9008: diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808D933C.s b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808D933C.s index ed18bb66f5..aca60f832d 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808D933C.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808D933C.s @@ -1878,7 +1878,7 @@ glabel L808DAB60 /* 04450 808DACC0 8FA400B4 */ lw $a0, 0x00B4($sp) /* 04454 808DACC4 46083280 */ add.s $f10, $f6, $f8 /* 04458 808DACC8 E7AA0068 */ swc1 $f10, 0x0068($sp) -/* 0445C 808DACCC 0C030136 */ jal func_800C04D8 +/* 0445C 808DACCC 0C030136 */ jal Gameplay_CameraSetAtEye /* 04460 808DACD0 8605067A */ lh $a1, 0x067A($s0) ## 0000067A /* 04464 808DACD4 8FBF003C */ lw $ra, 0x003C($sp) .L808DACD8: diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808E3564.s b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808E3564.s index 9d10c334ce..6229a5b782 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808E3564.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon/func_808E3564.s @@ -371,7 +371,7 @@ glabel func_808E3564 /* 0D1C4 808E3A34 00000000 */ nop /* 0D1C8 808E3A38 0C030129 */ jal Gameplay_GetCamera /* 0D1CC 808E3A3C 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 0D1D0 808E3A40 0C016A52 */ jal func_8005A948 +/* 0D1D0 808E3A40 0C016A52 */ jal Camera_GetInputDirYaw /* 0D1D4 808E3A44 00402025 */ or $a0, $v0, $zero ## $a0 = 00000000 /* 0D1D8 808E3A48 44824000 */ mtc1 $v0, $f8 ## $f8 = 0.00 /* 0D1DC 808E3A4C 3C014700 */ lui $at, 0x4700 ## $at = 47000000 diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon2/func_808FD5F4.s b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon2/func_808FD5F4.s index 10a3ab5466..5f1bfb3213 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon2/func_808FD5F4.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon2/func_808FD5F4.s @@ -2449,7 +2449,7 @@ glabel L808FF810 /* 02930 808FF870 E60A03B4 */ swc1 $f10, 0x03B4($s0) ## 000003B4 /* 02934 808FF874 AFAE0010 */ sw $t6, 0x0010($sp) /* 02938 808FF878 8FA7004C */ lw $a3, 0x004C($sp) -/* 0293C 808FF87C 0C030179 */ jal func_800C05E4 +/* 0293C 808FF87C 0C030179 */ jal Gameplay_CameraSetAtEyeUp /* 02940 808FF880 8FA60050 */ lw $a2, 0x0050($sp) /* 02944 808FF884 8FBF003C */ lw $ra, 0x003C($sp) .L808FF888: diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon2/func_80900890.s b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon2/func_80900890.s index afbf817e39..53b2324ce1 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon2/func_80900890.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon2/func_80900890.s @@ -411,7 +411,7 @@ glabel L80900E4C /* 03F14 80900E54 260603B0 */ addiu $a2, $s0, 0x03B0 ## $a2 = 000003B0 /* 03F18 80900E58 50A00004 */ beql $a1, $zero, .L80900E6C /* 03F1C 80900E5C 860201AC */ lh $v0, 0x01AC($s0) ## 000001AC -/* 03F20 80900E60 0C030136 */ jal func_800C04D8 +/* 03F20 80900E60 0C030136 */ jal Gameplay_CameraSetAtEye /* 03F24 80900E64 260703A4 */ addiu $a3, $s0, 0x03A4 ## $a3 = 000003A4 /* 03F28 80900E68 860201AC */ lh $v0, 0x01AC($s0) ## 000001AC .L80900E6C: diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon2/func_8090120C.s b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon2/func_8090120C.s index bd41e25b30..0075aaa32a 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Ganon2/func_8090120C.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Ganon2/func_8090120C.s @@ -1196,7 +1196,7 @@ glabel L80902290 /* 0535C 8090229C 10A00004 */ beq $a1, $zero, .L809022B0 /* 05360 809022A0 260703A4 */ addiu $a3, $s0, 0x03A4 ## $a3 = 000003A4 /* 05364 809022A4 260B03BC */ addiu $t3, $s0, 0x03BC ## $t3 = 000003BC -/* 05368 809022A8 0C030179 */ jal func_800C05E4 +/* 05368 809022A8 0C030179 */ jal Gameplay_CameraSetAtEyeUp /* 0536C 809022AC AFAB0010 */ sw $t3, 0x0010($sp) .L809022B0: /* 05370 809022B0 860301AC */ lh $v1, 0x01AC($s0) ## 000001AC diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Ganondrof/func_80912D2C.s b/asm/non_matchings/overlays/actors/ovl_Boss_Ganondrof/func_80912D2C.s index 479df7ba06..471898dfa5 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Ganondrof/func_80912D2C.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Ganondrof/func_80912D2C.s @@ -1127,7 +1127,7 @@ glabel L8091352C .L80913C24: /* 035E4 80913C24 02802025 */ or $a0, $s4, $zero ## $a0 = 00000000 /* 035E8 80913C28 8FA60058 */ lw $a2, 0x0058($sp) -/* 035EC 80913C2C 0C030136 */ jal func_800C04D8 +/* 035EC 80913C2C 0C030136 */ jal Gameplay_CameraSetAtEye /* 035F0 80913C30 02203825 */ or $a3, $s1, $zero ## $a3 = 00000360 /* 035F4 80913C34 8FBF004C */ lw $ra, 0x004C($sp) .L80913C38: diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Goma/func_80916C9C.s b/asm/non_matchings/overlays/actors/ovl_Boss_Goma/func_80916C9C.s index 45e5d4af42..1d20bd3b26 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Goma/func_80916C9C.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Goma/func_80916C9C.s @@ -312,7 +312,7 @@ glabel L80916F0C /* 0167C 8091708C AFA70044 */ sw $a3, 0x0044($sp) /* 01680 80917090 AFA60040 */ sw $a2, 0x0040($sp) /* 01684 80917094 8FA4006C */ lw $a0, 0x006C($sp) -/* 01688 80917098 0C030136 */ jal func_800C04D8 +/* 01688 80917098 0C030136 */ jal Gameplay_CameraSetAtEye /* 0168C 8091709C 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 /* 01690 809170A0 86030194 */ lh $v1, 0x0194($s0) ## 00000194 /* 01694 809170A4 8FA6006C */ lw $a2, 0x006C($sp) @@ -1215,7 +1215,7 @@ glabel L80917D68 /* 02360 80917D70 2606029C */ addiu $a2, $s0, 0x029C ## $a2 = 0000029C /* 02364 80917D74 50A00004 */ beql $a1, $zero, .L80917D88 /* 02368 80917D78 8FBF003C */ lw $ra, 0x003C($sp) -/* 0236C 80917D7C 0C030136 */ jal func_800C04D8 +/* 0236C 80917D7C 0C030136 */ jal Gameplay_CameraSetAtEye /* 02370 80917D80 26070290 */ addiu $a3, $s0, 0x0290 ## $a3 = 00000290 /* 02374 80917D84 8FBF003C */ lw $ra, 0x003C($sp) .L80917D88: diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Goma/func_80917D98.s b/asm/non_matchings/overlays/actors/ovl_Boss_Goma/func_80917D98.s index 955be6b278..e454c2534f 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Goma/func_80917D98.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Goma/func_80917D98.s @@ -940,7 +940,7 @@ glabel func_80917D98 /* 03038 80918A48 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000 /* 0303C 80918A4C 2646029C */ addiu $a2, $s2, 0x029C ## $a2 = 0000029C /* 03040 80918A50 26470290 */ addiu $a3, $s2, 0x0290 ## $a3 = 00000290 -/* 03044 80918A54 0C030136 */ jal func_800C04D8 +/* 03044 80918A54 0C030136 */ jal Gameplay_CameraSetAtEye /* 03048 80918A58 AFA30048 */ sw $v1, 0x0048($sp) /* 0304C 80918A5C 8FA30048 */ lw $v1, 0x0048($sp) .L80918A60: diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Mo/func_8091C538.s b/asm/non_matchings/overlays/actors/ovl_Boss_Mo/func_8091C538.s index 41fe2f3846..d009b52b8f 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Mo/func_8091C538.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Mo/func_8091C538.s @@ -1963,7 +1963,7 @@ glabel L8091D918 /* 0230C 8091DE0C 8FA401BC */ lw $a0, 0x01BC($sp) /* 02310 8091DE10 86450F62 */ lh $a1, 0x0F62($s2) ## 00000F62 /* 02314 8091DE14 02203025 */ or $a2, $s1, $zero ## $a2 = 00000F74 -/* 02318 8091DE18 0C030136 */ jal func_800C04D8 +/* 02318 8091DE18 0C030136 */ jal Gameplay_CameraSetAtEye /* 0231C 8091DE1C 02003825 */ or $a3, $s0, $zero ## $a3 = 00000F68 .L8091DE20: /* 02320 8091DE20 100004BD */ beq $zero, $zero, .L8091F118 @@ -2110,7 +2110,7 @@ glabel L8091D918 /* 02514 8091E014 02003825 */ or $a3, $s0, $zero ## $a3 = 00000F68 /* 02518 8091E018 8FA401BC */ lw $a0, 0x01BC($sp) /* 0251C 8091E01C 86450F62 */ lh $a1, 0x0F62($s2) ## 00000F62 -/* 02520 8091E020 0C030136 */ jal func_800C04D8 +/* 02520 8091E020 0C030136 */ jal Gameplay_CameraSetAtEye /* 02524 8091E024 02203025 */ or $a2, $s1, $zero ## $a2 = 00000F74 /* 02528 8091E028 3C014228 */ lui $at, 0x4228 ## $at = 42280000 /* 0252C 8091E02C 44814000 */ mtc1 $at, $f8 ## $f8 = 42.00 diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Mo/func_8091F5A8.s b/asm/non_matchings/overlays/actors/ovl_Boss_Mo/func_8091F5A8.s index 75f4c594c4..6efa32460c 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Mo/func_8091F5A8.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Mo/func_8091F5A8.s @@ -1169,7 +1169,7 @@ glabel L80920280 /* 04AD4 809205D4 AFAF0010 */ sw $t7, 0x0010($sp) /* 04AD8 809205D8 8FA70030 */ lw $a3, 0x0030($sp) /* 04ADC 809205DC 8FA60040 */ lw $a2, 0x0040($sp) -/* 04AE0 809205E0 0C030179 */ jal func_800C05E4 +/* 04AE0 809205E0 0C030179 */ jal Gameplay_CameraSetAtEyeUp /* 04AE4 809205E4 8FA400A4 */ lw $a0, 0x00A4($sp) /* 04AE8 809205E8 8FB90030 */ lw $t9, 0x0030($sp) /* 04AEC 809205EC 8FB80070 */ lw $t8, 0x0070($sp) @@ -1197,7 +1197,7 @@ glabel L80920280 /* 04B44 80920644 ADD90058 */ sw $t9, 0x0058($t6) ## 00000058 /* 04B48 80920648 8E060F5C */ lw $a2, 0x0F5C($s0) ## 00000F5C /* 04B4C 8092064C 86050F62 */ lh $a1, 0x0F62($s0) ## 00000F62 -/* 04B50 80920650 0C0301C1 */ jal func_800C0704 +/* 04B50 80920650 0C0301C1 */ jal Gameplay_CameraSetFov /* 04B54 80920654 8FA400A4 */ lw $a0, 0x00A4($sp) /* 04B58 80920658 3C028092 */ lui $v0, %hi(D_80925CD4) ## $v0 = 80920000 /* 04B5C 8092065C 24425CD4 */ addiu $v0, $v0, %lo(D_80925CD4) ## $v0 = 80925CD4 diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Mo/func_809206C4.s b/asm/non_matchings/overlays/actors/ovl_Boss_Mo/func_809206C4.s index 93fa4a3044..9eb908fd2d 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Mo/func_809206C4.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Mo/func_809206C4.s @@ -854,7 +854,7 @@ glabel L8092107C /* 05758 80921258 86250F62 */ lh $a1, 0x0F62($s1) ## 00000F62 /* 0575C 8092125C 8FA40094 */ lw $a0, 0x0094($sp) /* 05760 80921260 8FA60028 */ lw $a2, 0x0028($sp) -/* 05764 80921264 0C030136 */ jal func_800C04D8 +/* 05764 80921264 0C030136 */ jal Gameplay_CameraSetAtEye /* 05768 80921268 02003825 */ or $a3, $s0, $zero ## $a3 = 00000F68 .L8092126C: /* 0576C 8092126C 8FBF0024 */ lw $ra, 0x0024($sp) diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Sst/func_8092CB0C.s b/asm/non_matchings/overlays/actors/ovl_Boss_Sst/func_8092CB0C.s index efc8a4c891..79758a21e3 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Sst/func_8092CB0C.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Sst/func_8092CB0C.s @@ -70,7 +70,7 @@ glabel func_8092CB0C /* 00644 8092CC14 3C078093 */ lui $a3, %hi(D_80937358) ## $a3 = 80930000 /* 00648 8092CC18 24E77358 */ addiu $a3, $a3, %lo(D_80937358) ## $a3 = 80937358 /* 0064C 8092CC1C 84A58CC4 */ lh $a1, %lo(D_80938CC4)($a1) -/* 00650 8092CC20 0C030136 */ jal func_800C04D8 +/* 00650 8092CC20 0C030136 */ jal Gameplay_CameraSetAtEye /* 00654 8092CC24 24C6734C */ addiu $a2, $a2, %lo(D_8093734C) ## $a2 = 8093734C /* 00658 8092CC28 3C041001 */ lui $a0, 0x1001 ## $a0 = 10010000 /* 0065C 8092CC2C 0C03E803 */ jal Audio_SetBGM diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Sst/func_8092CC58.s b/asm/non_matchings/overlays/actors/ovl_Boss_Sst/func_8092CC58.s index fc9a6e07e3..ad18b2790b 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Sst/func_8092CC58.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Sst/func_8092CC58.s @@ -78,12 +78,12 @@ glabel func_8092CC58 /* 00788 8092CD58 E6320008 */ swc1 $f18, 0x0008($s1) ## 80937354 /* 0078C 8092CD5C 84A58CC4 */ lh $a1, %lo(D_80938CC4)($a1) /* 00790 8092CD60 02203025 */ or $a2, $s1, $zero ## $a2 = 8093734C -/* 00794 8092CD64 0C030136 */ jal func_800C04D8 +/* 00794 8092CD64 0C030136 */ jal Gameplay_CameraSetAtEye /* 00798 8092CD68 8FA40054 */ lw $a0, 0x0054($sp) /* 0079C 8092CD6C 3C068094 */ lui $a2, %hi(D_80938CC4) ## $a2 = 80940000 /* 007A0 8092CD70 84C68CC4 */ lh $a2, %lo(D_80938CC4)($a2) /* 007A4 8092CD74 8FA40054 */ lw $a0, 0x0054($sp) -/* 007A8 8092CD78 0C0301E3 */ jal func_800C078C +/* 007A8 8092CD78 0C0301E3 */ jal Gameplay_CopyCamera /* 007AC 8092CD7C 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 /* 007B0 8092CD80 3C058094 */ lui $a1, %hi(D_80938CC4) ## $a1 = 80940000 /* 007B4 8092CD84 84A58CC4 */ lh $a1, %lo(D_80938CC4)($a1) @@ -947,7 +947,7 @@ glabel func_8092CC58 /* 01470 8092DA40 84A58CC4 */ lh $a1, %lo(D_80938CC4)($a1) /* 01474 8092DA44 8FA40054 */ lw $a0, 0x0054($sp) /* 01478 8092DA48 02203025 */ or $a2, $s1, $zero ## $a2 = 8093734C -/* 0147C 8092DA4C 0C030136 */ jal func_800C04D8 +/* 0147C 8092DA4C 0C030136 */ jal Gameplay_CameraSetAtEye /* 01480 8092DA50 02003825 */ or $a3, $s0, $zero ## $a3 = 80937358 .L8092DA54: /* 01484 8092DA54 8FBF0034 */ lw $ra, 0x0034($sp) diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Sst/func_8092ED9C.s b/asm/non_matchings/overlays/actors/ovl_Boss_Sst/func_8092ED9C.s index 5b0d97aa1f..edc8c760bd 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Sst/func_8092ED9C.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Sst/func_8092ED9C.s @@ -93,7 +93,7 @@ glabel func_8092ED9C /* 02930 8092EF00 C60A002C */ lwc1 $f10, 0x002C($s0) ## 0000002C /* 02934 8092EF04 46045180 */ add.s $f6, $f10, $f4 /* 02938 8092EF08 46083281 */ sub.s $f10, $f6, $f8 -/* 0293C 8092EF0C 0C030136 */ jal func_800C04D8 +/* 0293C 8092EF0C 0C030136 */ jal Gameplay_CameraSetAtEye /* 02940 8092EF10 E7AA0038 */ swc1 $f10, 0x0038($sp) /* 02944 8092EF14 8FBF001C */ lw $ra, 0x001C($sp) /* 02948 8092EF18 8FB00018 */ lw $s0, 0x0018($sp) diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Sst/func_8092EF28.s b/asm/non_matchings/overlays/actors/ovl_Boss_Sst/func_8092EF28.s index d0d039a507..e6a5570208 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Sst/func_8092EF28.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Sst/func_8092EF28.s @@ -76,7 +76,7 @@ glabel func_8092EF28 /* 02A7C 8092F04C 3C058094 */ lui $a1, %hi(D_80938CC4) ## $a1 = 80940000 /* 02A80 8092F050 84A58CC4 */ lh $a1, %lo(D_80938CC4)($a1) /* 02A84 8092F054 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 02A88 8092F058 0C0301E3 */ jal func_800C078C +/* 02A88 8092F058 0C0301E3 */ jal Gameplay_CopyCamera /* 02A8C 8092F05C 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000 /* 02A90 8092F060 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 /* 02A94 8092F064 8FA5002C */ lw $a1, 0x002C($sp) diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Sst/func_8092F0BC.s b/asm/non_matchings/overlays/actors/ovl_Boss_Sst/func_8092F0BC.s index 0cbb5d99f3..2f81172dc8 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Sst/func_8092F0BC.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Sst/func_8092F0BC.s @@ -48,7 +48,7 @@ glabel func_8092F0BC /* 02B80 8092F150 3C078093 */ lui $a3, %hi(D_80937358) ## $a3 = 80930000 /* 02B84 8092F154 24E77358 */ addiu $a3, $a3, %lo(D_80937358) ## $a3 = 80937358 /* 02B88 8092F158 84A58CC4 */ lh $a1, %lo(D_80938CC4)($a1) -/* 02B8C 8092F15C 0C030136 */ jal func_800C04D8 +/* 02B8C 8092F15C 0C030136 */ jal Gameplay_CameraSetAtEye /* 02B90 8092F160 26060038 */ addiu $a2, $s0, 0x0038 ## $a2 = 00000038 /* 02B94 8092F164 260403C4 */ addiu $a0, $s0, 0x03C4 ## $a0 = 000003C4 /* 02B98 8092F168 3C05C3AF */ lui $a1, 0xC3AF ## $a1 = C3AF0000 diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Sst/func_8092F8F0.s b/asm/non_matchings/overlays/actors/ovl_Boss_Sst/func_8092F8F0.s index d06cbc5c5a..8220c4be3d 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Sst/func_8092F8F0.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Sst/func_8092F8F0.s @@ -28,7 +28,7 @@ glabel func_8092F8F0 /* 03388 8092F958 26318CC4 */ addiu $s1, $s1, %lo(D_80938CC4) ## $s1 = 80938CC4 /* 0338C 8092F95C 86260000 */ lh $a2, 0x0000($s1) ## 80938CC4 /* 03390 8092F960 02C02025 */ or $a0, $s6, $zero ## $a0 = 00000000 -/* 03394 8092F964 0C0301E3 */ jal func_800C078C +/* 03394 8092F964 0C0301E3 */ jal Gameplay_CopyCamera /* 03398 8092F968 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 /* 0339C 8092F96C 02C02025 */ or $a0, $s6, $zero ## $a0 = 00000000 /* 033A0 8092F970 86250000 */ lh $a1, 0x0000($s1) ## 80938CC4 diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Tw/func_8093C910.s b/asm/non_matchings/overlays/actors/ovl_Boss_Tw/func_8093C910.s index 08598a1cfc..fc8986d7c4 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Tw/func_8093C910.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Tw/func_8093C910.s @@ -234,12 +234,12 @@ glabel func_8093C910 /* 03F4C 8093CC1C 15400006 */ bne $t2, $zero, .L8093CC38 /* 03F50 8093CC20 26260630 */ addiu $a2, $s1, 0x0630 ## $a2 = 00000630 /* 03F54 8093CC24 02402025 */ or $a0, $s2, $zero ## $a0 = 00000000 -/* 03F58 8093CC28 0C030136 */ jal func_800C04D8 +/* 03F58 8093CC28 0C030136 */ jal Gameplay_CameraSetAtEye /* 03F5C 8093CC2C 2626060C */ addiu $a2, $s1, 0x060C ## $a2 = 0000060C /* 03F60 8093CC30 10000004 */ beq $zero, $zero, .L8093CC44 /* 03F64 8093CC34 86220440 */ lh $v0, 0x0440($s1) ## 00000440 .L8093CC38: -/* 03F68 8093CC38 0C030136 */ jal func_800C04D8 +/* 03F68 8093CC38 0C030136 */ jal Gameplay_CameraSetAtEye /* 03F6C 8093CC3C 26270624 */ addiu $a3, $s1, 0x0624 ## $a3 = 00000624 /* 03F70 8093CC40 86220440 */ lh $v0, 0x0440($s1) ## 00000440 .L8093CC44: diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Tw/func_8093D5C0.s b/asm/non_matchings/overlays/actors/ovl_Boss_Tw/func_8093D5C0.s index a9972a989c..a3579c4ecc 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Tw/func_8093D5C0.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Tw/func_8093D5C0.s @@ -1754,7 +1754,7 @@ glabel L8093ECEC .L8093EDE4: /* 06114 8093EDE4 8FA400A4 */ lw $a0, 0x00A4($sp) /* 06118 8093EDE8 02603025 */ or $a2, $s3, $zero ## $a2 = 0000060C -/* 0611C 8093EDEC 0C030136 */ jal func_800C04D8 +/* 0611C 8093EDEC 0C030136 */ jal Gameplay_CameraSetAtEye /* 06120 8093EDF0 02003825 */ or $a3, $s0, $zero ## $a3 = 00000600 .L8093EDF4: /* 06124 8093EDF4 8FBF0034 */ lw $ra, 0x0034($sp) diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Tw/func_8093F9E4.s b/asm/non_matchings/overlays/actors/ovl_Boss_Tw/func_8093F9E4.s index 8d4be961e2..7708ad06c2 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Tw/func_8093F9E4.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Tw/func_8093F9E4.s @@ -904,7 +904,7 @@ glabel L80940690 /* 079D0 809406A0 2646060C */ addiu $a2, $s2, 0x060C ## $a2 = 0000060C /* 079D4 809406A4 50A00004 */ beql $a1, $zero, .L809406B8 /* 079D8 809406A8 8FBF004C */ lw $ra, 0x004C($sp) -/* 079DC 809406AC 0C030136 */ jal func_800C04D8 +/* 079DC 809406AC 0C030136 */ jal Gameplay_CameraSetAtEye /* 079E0 809406B0 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000 /* 079E4 809406B4 8FBF004C */ lw $ra, 0x004C($sp) .L809406B8: diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Va/BossVa_Init.s b/asm/non_matchings/overlays/actors/ovl_Boss_Va/BossVa_Init.s index 424b39dbed..f67cb22a0b 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Va/BossVa_Init.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Va/BossVa_Init.s @@ -330,7 +330,7 @@ glabel L80950024 /* 00FB0 80950270 86050000 */ lh $a1, 0x0000($s0) ## 8095C23C /* 00FB4 80950274 E5040000 */ swc1 $f4, 0x0000($t0) ## 80966908 /* 00FB8 80950278 E5080004 */ swc1 $f8, 0x0004($t0) ## 8096690C -/* 00FBC 8095027C 0C030136 */ jal func_800C04D8 +/* 00FBC 8095027C 0C030136 */ jal Gameplay_CameraSetAtEye /* 00FC0 80950280 E5100008 */ swc1 $f16, 0x0008($t0) ## 80966910 /* 00FC4 80950284 240C0014 */ addiu $t4, $zero, 0x0014 ## $t4 = 00000014 /* 00FC8 80950288 3C108096 */ lui $s0, %hi(D_8095C0F8) ## $s0 = 80960000 diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Va/func_80950780.s b/asm/non_matchings/overlays/actors/ovl_Boss_Va/func_80950780.s index f7fee7b158..a4b0dd54b4 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Va/func_80950780.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Va/func_80950780.s @@ -1154,7 +1154,7 @@ glabel L80951578 /* 024B0 80951770 24E768D8 */ addiu $a3, $a3, %lo(D_809668D8) ## $a3 = 809668D8 /* 024B4 80951774 24C668E8 */ addiu $a2, $a2, %lo(D_809668E8) ## $a2 = 809668E8 /* 024B8 80951778 84A5C23C */ lh $a1, %lo(D_8095C23C)($a1) -/* 024BC 8095177C 0C030136 */ jal func_800C04D8 +/* 024BC 8095177C 0C030136 */ jal Gameplay_CameraSetAtEye /* 024C0 80951780 02402025 */ or $a0, $s2, $zero ## $a0 = 00000000 .L80951784: /* 024C4 80951784 8FBF0044 */ lw $ra, 0x0044($sp) diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Va/func_809533F4.s b/asm/non_matchings/overlays/actors/ovl_Boss_Va/func_809533F4.s index 6a23c5cf19..5404b97b23 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Va/func_809533F4.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Va/func_809533F4.s @@ -738,7 +738,7 @@ glabel L80953CD8 /* 04B5C 80953E1C 24E768D8 */ addiu $a3, $a3, %lo(D_809668D8) ## $a3 = 809668D8 /* 04B60 80953E20 24C668E8 */ addiu $a2, $a2, %lo(D_809668E8) ## $a2 = 809668E8 /* 04B64 80953E24 84A5C23C */ lh $a1, %lo(D_8095C23C)($a1) -/* 04B68 80953E28 0C030136 */ jal func_800C04D8 +/* 04B68 80953E28 0C030136 */ jal Gameplay_CameraSetAtEye /* 04B6C 80953E2C 02802025 */ or $a0, $s4, $zero ## $a0 = 00000000 .L80953E30: /* 04B70 80953E30 0C02927F */ jal SkelAnime_FrameUpdateMatrix diff --git a/asm/non_matchings/overlays/actors/ovl_Boss_Va/func_8095438C.s b/asm/non_matchings/overlays/actors/ovl_Boss_Va/func_8095438C.s index 5e5595a180..0cc5eb66dc 100644 --- a/asm/non_matchings/overlays/actors/ovl_Boss_Va/func_8095438C.s +++ b/asm/non_matchings/overlays/actors/ovl_Boss_Va/func_8095438C.s @@ -37,7 +37,7 @@ glabel func_8095438C /* 05154 80954414 24050002 */ addiu $a1, $zero, 0x0002 ## $a1 = 00000002 /* 05158 80954418 2406000B */ addiu $a2, $zero, 0x000B ## $a2 = 0000000B /* 0515C 8095441C 24070008 */ addiu $a3, $zero, 0x0008 ## $a3 = 00000008 -/* 05160 80954420 0C016A87 */ jal func_8005AA1C +/* 05160 80954420 0C016A87 */ jal Camera_AddQuake /* 05164 80954424 248401E0 */ addiu $a0, $a0, 0x01E0 ## $a0 = 000001E0 /* 05168 80954428 3C058095 */ lui $a1, %hi(func_80954454) ## $a1 = 80950000 /* 0516C 8095442C A2000195 */ sb $zero, 0x0195($s0) ## 00000195 diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_6K/func_809688C4.s b/asm/non_matchings/overlays/actors/ovl_Demo_6K/func_809688C4.s index a6678c6967..ca1bbe1ad7 100644 --- a/asm/non_matchings/overlays/actors/ovl_Demo_6K/func_809688C4.s +++ b/asm/non_matchings/overlays/actors/ovl_Demo_6K/func_809688C4.s @@ -65,7 +65,7 @@ glabel func_809688C4 /* 02024 80968974 86E907A0 */ lh $t1, 0x07A0($s7) ## 000007A0 /* 02028 80968978 00095080 */ sll $t2, $t1, 2 /* 0202C 8096897C 02EA5821 */ addu $t3, $s7, $t2 -/* 02030 80968980 0C016A7D */ jal func_8005A9F4 +/* 02030 80968980 0C016A7D */ jal Camera_GetCamDirYaw /* 02034 80968984 8D640790 */ lw $a0, 0x0790($t3) ## 00000790 /* 02038 80968988 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000 /* 0203C 8096898C 00416021 */ addu $t4, $v0, $at diff --git a/asm/non_matchings/overlays/actors/ovl_Door_Warp1/func_80999EE0.s b/asm/non_matchings/overlays/actors/ovl_Door_Warp1/func_80999EE0.s index 071547fea0..a12da06745 100644 --- a/asm/non_matchings/overlays/actors/ovl_Door_Warp1/func_80999EE0.s +++ b/asm/non_matchings/overlays/actors/ovl_Door_Warp1/func_80999EE0.s @@ -42,12 +42,12 @@ glabel func_80999EE0 /* 01800 80999F80 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 /* 01804 80999F84 27A60034 */ addiu $a2, $sp, 0x0034 ## $a2 = FFFFFFF4 /* 01808 80999F88 27A70028 */ addiu $a3, $sp, 0x0028 ## $a3 = FFFFFFE8 -/* 0180C 80999F8C 0C030136 */ jal func_800C04D8 +/* 0180C 80999F8C 0C030136 */ jal Gameplay_CameraSetAtEye /* 01810 80999F90 E7B20030 */ swc1 $f18, 0x0030($sp) /* 01814 80999F94 3C05809A */ lui $a1, %hi(D_8099CCA2) ## $a1 = 809A0000 /* 01818 80999F98 84A5CCA2 */ lh $a1, %lo(D_8099CCA2)($a1) /* 0181C 80999F9C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 01820 80999FA0 0C0301C1 */ jal func_800C0704 +/* 01820 80999FA0 0C0301C1 */ jal Gameplay_CameraSetFov /* 01824 80999FA4 3C0642B4 */ lui $a2, 0x42B4 ## $a2 = 42B40000 /* 01828 80999FA8 24180004 */ addiu $t8, $zero, 0x0004 ## $t8 = 00000004 /* 0182C 80999FAC AE3801EC */ sw $t8, 0x01EC($s1) ## 000001EC diff --git a/asm/non_matchings/overlays/actors/ovl_Door_Warp1/func_80999FE4.s b/asm/non_matchings/overlays/actors/ovl_Door_Warp1/func_80999FE4.s index 0900c52280..76cf4a1329 100644 --- a/asm/non_matchings/overlays/actors/ovl_Door_Warp1/func_80999FE4.s +++ b/asm/non_matchings/overlays/actors/ovl_Door_Warp1/func_80999FE4.s @@ -27,7 +27,7 @@ glabel func_80999FE4 /* 018C4 8099A044 3C06809A */ lui $a2, %hi(D_8099CCA2) ## $a2 = 809A0000 /* 018C8 8099A048 84C6CCA2 */ lh $a2, %lo(D_8099CCA2)($a2) /* 018CC 8099A04C 8FA40024 */ lw $a0, 0x0024($sp) -/* 018D0 8099A050 0C0301E3 */ jal func_800C078C +/* 018D0 8099A050 0C0301E3 */ jal Gameplay_CopyCamera /* 018D4 8099A054 2405FFFF */ addiu $a1, $zero, 0xFFFF ## $a1 = FFFFFFFF /* 018D8 8099A058 3C05809A */ lui $a1, %hi(D_8099CCA2) ## $a1 = 809A0000 /* 018DC 8099A05C 84A5CCA2 */ lh $a1, %lo(D_8099CCA2)($a1) diff --git a/asm/non_matchings/overlays/actors/ovl_En_Bb/EnBb_Draw.s b/asm/non_matchings/overlays/actors/ovl_En_Bb/EnBb_Draw.s index cea7e77987..4e0e4839c7 100644 --- a/asm/non_matchings/overlays/actors/ovl_En_Bb/EnBb_Draw.s +++ b/asm/non_matchings/overlays/actors/ovl_En_Bb/EnBb_Draw.s @@ -256,7 +256,7 @@ glabel EnBb_Draw /* 035EC 809BB8CC 845807A0 */ lh $t8, 0x07A0($v0) ## 000007A0 /* 035F0 809BB8D0 00186880 */ sll $t5, $t8, 2 /* 035F4 809BB8D4 004D7821 */ addu $t7, $v0, $t5 -/* 035F8 809BB8D8 0C016A7D */ jal func_8005A9F4 +/* 035F8 809BB8D8 0C016A7D */ jal Camera_GetCamDirYaw /* 035FC 809BB8DC 8DE40790 */ lw $a0, 0x0790($t7) ## 00000790 /* 03600 809BB8E0 860C00B6 */ lh $t4, 0x00B6($s0) ## 000000B6 /* 03604 809BB8E4 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Bigokuta/EnBigokuta_Update.s b/asm/non_matchings/overlays/actors/ovl_En_Bigokuta/EnBigokuta_Update.s index 332d1f1814..62b3f6ac46 100644 --- a/asm/non_matchings/overlays/actors/ovl_En_Bigokuta/EnBigokuta_Update.s +++ b/asm/non_matchings/overlays/actors/ovl_En_Bigokuta/EnBigokuta_Update.s @@ -1,45 +1,45 @@ glabel EnBigokuta_Update /* 01D6C 809BE9CC 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0 -/* 01D70 809BE9D0 AFBF002C */ sw $ra, 0x002C($sp) -/* 01D74 809BE9D4 AFB40024 */ sw $s4, 0x0024($sp) -/* 01D78 809BE9D8 AFB2001C */ sw $s2, 0x001C($sp) +/* 01D70 809BE9D0 AFBF002C */ sw $ra, 0x002C($sp) +/* 01D74 809BE9D4 AFB40024 */ sw $s4, 0x0024($sp) +/* 01D78 809BE9D8 AFB2001C */ sw $s2, 0x001C($sp) /* 01D7C 809BE9DC 00A09025 */ or $s2, $a1, $zero ## $s2 = 00000000 /* 01D80 809BE9E0 0080A025 */ or $s4, $a0, $zero ## $s4 = 00000000 -/* 01D84 809BE9E4 AFB50028 */ sw $s5, 0x0028($sp) -/* 01D88 809BE9E8 AFB30020 */ sw $s3, 0x0020($sp) -/* 01D8C 809BE9EC AFB10018 */ sw $s1, 0x0018($sp) -/* 01D90 809BE9F0 0C26F9E6 */ jal func_809BE798 -/* 01D94 809BE9F4 AFB00014 */ sw $s0, 0x0014($sp) +/* 01D84 809BE9E4 AFB50028 */ sw $s5, 0x0028($sp) +/* 01D88 809BE9E8 AFB30020 */ sw $s3, 0x0020($sp) +/* 01D8C 809BE9EC AFB10018 */ sw $s1, 0x0018($sp) +/* 01D90 809BE9F0 0C26F9E6 */ jal func_809BE798 +/* 01D94 809BE9F4 AFB00014 */ sw $s0, 0x0014($sp) /* 01D98 809BE9F8 02802025 */ or $a0, $s4, $zero ## $a0 = 00000000 -/* 01D9C 809BE9FC 0C26FA37 */ jal func_809BE8DC +/* 01D9C 809BE9FC 0C26FA37 */ jal func_809BE8DC /* 01DA0 809BEA00 02402825 */ or $a1, $s2, $zero ## $a1 = 00000000 /* 01DA4 809BEA04 8E990190 */ lw $t9, 0x0190($s4) ## 00000190 /* 01DA8 809BEA08 02802025 */ or $a0, $s4, $zero ## $a0 = 00000000 /* 01DAC 809BEA0C 02402825 */ or $a1, $s2, $zero ## $a1 = 00000000 -/* 01DB0 809BEA10 0320F809 */ jalr $ra, $t9 +/* 01DB0 809BEA10 0320F809 */ jalr $ra, $t9 /* 01DB4 809BEA14 00000000 */ nop -/* 01DB8 809BEA18 0C26F4B9 */ jal func_809BD2E4 +/* 01DB8 809BEA18 0C26F4B9 */ jal func_809BD2E4 /* 01DBC 809BEA1C 02802025 */ or $a0, $s4, $zero ## $a0 = 00000000 -/* 01DC0 809BEA20 0C26F95A */ jal func_809BE568 +/* 01DC0 809BEA20 0C26F95A */ jal func_809BE568 /* 01DC4 809BEA24 02802025 */ or $a0, $s4, $zero ## $a0 = 00000000 /* 01DC8 809BEA28 8E440790 */ lw $a0, 0x0790($s2) ## 00000790 -/* 01DCC 809BEA2C 0C0169DF */ jal func_8005A77C +/* 01DCC 809BEA2C 0C0169DF */ jal Camera_ChangeSetting /* 01DD0 809BEA30 24050034 */ addiu $a1, $zero, 0x0034 ## $a1 = 00000034 /* 01DD4 809BEA34 8E440790 */ lw $a0, 0x0790($s2) ## 00000790 -/* 01DD8 809BEA38 0C016B47 */ jal func_8005AD1C +/* 01DD8 809BEA38 0C016B47 */ jal func_8005AD1C /* 01DDC 809BEA3C 24050004 */ addiu $a1, $zero, 0x0004 ## $a1 = 00000004 /* 01DE0 809BEA40 928E02FC */ lbu $t6, 0x02FC($s4) ## 000002FC /* 01DE4 809BEA44 31CF0001 */ andi $t7, $t6, 0x0001 ## $t7 = 00000000 -/* 01DE8 809BEA48 51E00037 */ beql $t7, $zero, .L809BEB28 +/* 01DE8 809BEA48 51E00037 */ beql $t7, $zero, .L809BEB28 /* 01DEC 809BEA4C 928D029D */ lbu $t5, 0x029D($s4) ## 0000029D /* 01DF0 809BEA50 8E880190 */ lw $t0, 0x0190($s4) ## 00000190 /* 01DF4 809BEA54 3C18809C */ lui $t8, %hi(func_809BE058) ## $t8 = 809C0000 /* 01DF8 809BEA58 2718E058 */ addiu $t8, $t8, %lo(func_809BE058) ## $t8 = 809BE058 -/* 01DFC 809BEA5C 13080013 */ beq $t8, $t0, .L809BEAAC +/* 01DFC 809BEA5C 13080013 */ beq $t8, $t0, .L809BEAAC /* 01E00 809BEA60 00008025 */ or $s0, $zero, $zero ## $s0 = 00000000 /* 01E04 809BEA64 3C010001 */ lui $at, 0x0001 ## $at = 00010000 /* 01E08 809BEA68 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60 -/* 01E0C 809BEA6C 02419821 */ addu $s3, $s2, $at +/* 01E0C 809BEA6C 02419821 */ addu $s3, $s2, $at /* 01E10 809BEA70 00008025 */ or $s0, $zero, $zero ## $s0 = 00000000 /* 01E14 809BEA74 269102EC */ addiu $s1, $s4, 0x02EC ## $s1 = 000002EC /* 01E18 809BEA78 24150098 */ addiu $s5, $zero, 0x0098 ## $s5 = 00000098 @@ -50,17 +50,17 @@ glabel EnBigokuta_Update ## CollisionCheck_setAT /* 01E28 809BEA88 02203025 */ or $a2, $s1, $zero ## $a2 = 000002EC /* 01E2C 809BEA8C 2610004C */ addiu $s0, $s0, 0x004C ## $s0 = 0000004C -/* 01E30 809BEA90 1615FFFA */ bne $s0, $s5, .L809BEA7C +/* 01E30 809BEA90 1615FFFA */ bne $s0, $s5, .L809BEA7C /* 01E34 809BEA94 2631004C */ addiu $s1, $s1, 0x004C ## $s1 = 00000338 /* 01E38 809BEA98 8E890004 */ lw $t1, 0x0004($s4) ## 00000004 /* 01E3C 809BEA9C 3C010100 */ lui $at, 0x0100 ## $at = 01000000 /* 01E40 809BEAA0 01215025 */ or $t2, $t1, $at ## $t2 = 01000000 -/* 01E44 809BEAA4 1000000D */ beq $zero, $zero, .L809BEADC +/* 01E44 809BEAA4 1000000D */ beq $zero, $zero, .L809BEADC /* 01E48 809BEAA8 AE8A0004 */ sw $t2, 0x0004($s4) ## 00000004 .L809BEAAC: /* 01E4C 809BEAAC 3C010001 */ lui $at, 0x0001 ## $at = 00010000 /* 01E50 809BEAB0 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60 -/* 01E54 809BEAB4 02419821 */ addu $s3, $s2, $at +/* 01E54 809BEAB4 02419821 */ addu $s3, $s2, $at /* 01E58 809BEAB8 269102EC */ addiu $s1, $s4, 0x02EC ## $s1 = 000002EC /* 01E5C 809BEABC 24150098 */ addiu $s5, $zero, 0x0098 ## $s5 = 00000098 .L809BEAC0: @@ -70,7 +70,7 @@ glabel EnBigokuta_Update ## CollisionCheck_setOT /* 01E6C 809BEACC 02203025 */ or $a2, $s1, $zero ## $a2 = 000002EC /* 01E70 809BEAD0 2610004C */ addiu $s0, $s0, 0x004C ## $s0 = 00000098 -/* 01E74 809BEAD4 1615FFFA */ bne $s0, $s5, .L809BEAC0 +/* 01E74 809BEAD4 1615FFFA */ bne $s0, $s5, .L809BEAC0 /* 01E78 809BEAD8 2631004C */ addiu $s1, $s1, 0x004C ## $s1 = 00000338 .L809BEADC: /* 01E7C 809BEADC 00008025 */ or $s0, $zero, $zero ## $s0 = 00000000 @@ -83,13 +83,13 @@ glabel EnBigokuta_Update ## CollisionCheck_setAC /* 01E94 809BEAF4 02203025 */ or $a2, $s1, $zero ## $a2 = 000002EC /* 01E98 809BEAF8 2610004C */ addiu $s0, $s0, 0x004C ## $s0 = 0000004C -/* 01E9C 809BEAFC 1615FFFA */ bne $s0, $s5, .L809BEAE8 +/* 01E9C 809BEAFC 1615FFFA */ bne $s0, $s5, .L809BEAE8 /* 01EA0 809BEB00 2631004C */ addiu $s1, $s1, 0x004C ## $s1 = 00000338 /* 01EA4 809BEB04 928B029D */ lbu $t3, 0x029D($s4) ## 0000029D /* 01EA8 809BEB08 02402025 */ or $a0, $s2, $zero ## $a0 = 00000000 /* 01EAC 809BEB0C 02602825 */ or $a1, $s3, $zero ## $a1 = 00000000 /* 01EB0 809BEB10 316C0001 */ andi $t4, $t3, 0x0001 ## $t4 = 00000000 -/* 01EB4 809BEB14 51800004 */ beql $t4, $zero, .L809BEB28 +/* 01EB4 809BEB14 51800004 */ beql $t4, $zero, .L809BEB28 /* 01EB8 809BEB18 928D029D */ lbu $t5, 0x029D($s4) ## 0000029D /* 01EBC 809BEB1C 0C01767D */ jal CollisionCheck_SetAC ## CollisionCheck_setAC @@ -99,14 +99,14 @@ glabel EnBigokuta_Update /* 01EC8 809BEB28 3C010001 */ lui $at, 0x0001 ## $at = 00010000 /* 01ECC 809BEB2C 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60 /* 01ED0 809BEB30 31B90001 */ andi $t9, $t5, 0x0001 ## $t9 = 00000000 -/* 01ED4 809BEB34 02419821 */ addu $s3, $s2, $at -/* 01ED8 809BEB38 13200006 */ beq $t9, $zero, .L809BEB54 +/* 01ED4 809BEB34 02419821 */ addu $s3, $s2, $at +/* 01ED8 809BEB38 13200006 */ beq $t9, $zero, .L809BEB54 /* 01EDC 809BEB3C 2686028C */ addiu $a2, $s4, 0x028C ## $a2 = 0000028C /* 01EE0 809BEB40 02402025 */ or $a0, $s2, $zero ## $a0 = 00000000 /* 01EE4 809BEB44 0C017713 */ jal CollisionCheck_SetOC ## CollisionCheck_setOT /* 01EE8 809BEB48 02602825 */ or $a1, $s3, $zero ## $a1 = 00000000 -/* 01EEC 809BEB4C 10000005 */ beq $zero, $zero, .L809BEB64 +/* 01EEC 809BEB4C 10000005 */ beq $zero, $zero, .L809BEB64 /* 01EF0 809BEB50 3C0141C8 */ lui $at, 0x41C8 ## $at = 41C80000 .L809BEB54: /* 01EF4 809BEB54 02402025 */ or $a0, $s2, $zero ## $a0 = 00000000 @@ -119,22 +119,22 @@ glabel EnBigokuta_Update /* 01F08 809BEB68 C6840054 */ lwc1 $f4, 0x0054($s4) ## 00000054 /* 01F0C 809BEB6C 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000 /* 01F10 809BEB70 44815000 */ mtc1 $at, $f10 ## $f10 = 100.00 -/* 01F14 809BEB74 46062202 */ mul.s $f8, $f4, $f6 +/* 01F14 809BEB74 46062202 */ mul.s $f8, $f4, $f6 /* 01F18 809BEB78 02802025 */ or $a0, $s4, $zero ## $a0 = 00000000 -/* 01F1C 809BEB7C 460A4402 */ mul.s $f16, $f8, $f10 -/* 01F20 809BEB80 44058000 */ mfc1 $a1, $f16 +/* 01F1C 809BEB7C 460A4402 */ mul.s $f16, $f8, $f10 +/* 01F20 809BEB80 44058000 */ mfc1 $a1, $f16 /* 01F24 809BEB84 0C00B56E */ jal Actor_SetHeight - + /* 01F28 809BEB88 00000000 */ nop /* 01F2C 809BEB8C 02802025 */ or $a0, $s4, $zero ## $a0 = 00000000 -/* 01F30 809BEB90 0C26F3AF */ jal func_809BCEBC +/* 01F30 809BEB90 0C26F3AF */ jal func_809BCEBC /* 01F34 809BEB94 02402825 */ or $a1, $s2, $zero ## $a1 = 00000000 -/* 01F38 809BEB98 8FBF002C */ lw $ra, 0x002C($sp) -/* 01F3C 809BEB9C 8FB00014 */ lw $s0, 0x0014($sp) -/* 01F40 809BEBA0 8FB10018 */ lw $s1, 0x0018($sp) -/* 01F44 809BEBA4 8FB2001C */ lw $s2, 0x001C($sp) -/* 01F48 809BEBA8 8FB30020 */ lw $s3, 0x0020($sp) -/* 01F4C 809BEBAC 8FB40024 */ lw $s4, 0x0024($sp) -/* 01F50 809BEBB0 8FB50028 */ lw $s5, 0x0028($sp) -/* 01F54 809BEBB4 03E00008 */ jr $ra +/* 01F38 809BEB98 8FBF002C */ lw $ra, 0x002C($sp) +/* 01F3C 809BEB9C 8FB00014 */ lw $s0, 0x0014($sp) +/* 01F40 809BEBA0 8FB10018 */ lw $s1, 0x0018($sp) +/* 01F44 809BEBA4 8FB2001C */ lw $s2, 0x001C($sp) +/* 01F48 809BEBA8 8FB30020 */ lw $s3, 0x0020($sp) +/* 01F4C 809BEBAC 8FB40024 */ lw $s4, 0x0024($sp) +/* 01F50 809BEBB0 8FB50028 */ lw $s5, 0x0028($sp) +/* 01F54 809BEBB4 03E00008 */ jr $ra /* 01F58 809BEBB8 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Bigokuta/func_809BE26C.s b/asm/non_matchings/overlays/actors/ovl_En_Bigokuta/func_809BE26C.s index dcc378b835..b8de82b9c0 100644 --- a/asm/non_matchings/overlays/actors/ovl_En_Bigokuta/func_809BE26C.s +++ b/asm/non_matchings/overlays/actors/ovl_En_Bigokuta/func_809BE26C.s @@ -1,108 +1,108 @@ glabel func_809BE26C /* 0160C 809BE26C 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0 -/* 01610 809BE270 AFBF002C */ sw $ra, 0x002C($sp) -/* 01614 809BE274 AFB00028 */ sw $s0, 0x0028($sp) -/* 01618 809BE278 AFA50044 */ sw $a1, 0x0044($sp) +/* 01610 809BE270 AFBF002C */ sw $ra, 0x002C($sp) +/* 01614 809BE274 AFB00028 */ sw $s0, 0x0028($sp) +/* 01618 809BE278 AFA50044 */ sw $a1, 0x0044($sp) /* 0161C 809BE27C 84820196 */ lh $v0, 0x0196($a0) ## 00000196 /* 01620 809BE280 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 01624 809BE284 1040000C */ beq $v0, $zero, .L809BE2B8 +/* 01624 809BE284 1040000C */ beq $v0, $zero, .L809BE2B8 /* 01628 809BE288 00000000 */ nop -/* 0162C 809BE28C 10400003 */ beq $v0, $zero, .L809BE29C +/* 0162C 809BE28C 10400003 */ beq $v0, $zero, .L809BE29C /* 01630 809BE290 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF /* 01634 809BE294 A48E0196 */ sh $t6, 0x0196($a0) ## 00000196 /* 01638 809BE298 84820196 */ lh $v0, 0x0196($a0) ## 00000196 .L809BE29C: -/* 0163C 809BE29C 2841000A */ slti $at, $v0, 0x000A -/* 01640 809BE2A0 5420004C */ bnel $at, $zero, .L809BE3D4 -/* 01644 809BE2A4 8FBF002C */ lw $ra, 0x002C($sp) +/* 0163C 809BE29C 2841000A */ slti $at, $v0, 0x000A +/* 01640 809BE2A0 5420004C */ bnel $at, $zero, .L809BE3D4 +/* 01644 809BE2A4 8FBF002C */ lw $ra, 0x002C($sp) /* 01648 809BE2A8 860F00B6 */ lh $t7, 0x00B6($s0) ## 000000B6 /* 0164C 809BE2AC 25F82000 */ addiu $t8, $t7, 0x2000 ## $t8 = 00002000 -/* 01650 809BE2B0 10000047 */ beq $zero, $zero, .L809BE3D0 +/* 01650 809BE2B0 10000047 */ beq $zero, $zero, .L809BE3D0 /* 01654 809BE2B4 A61800B6 */ sh $t8, 0x00B6($s0) ## 000000B6 .L809BE2B8: /* 01658 809BE2B8 0C02927F */ jal SkelAnime_FrameUpdateMatrix - + /* 0165C 809BE2BC 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C -/* 01660 809BE2C0 10400043 */ beq $v0, $zero, .L809BE3D0 +/* 01660 809BE2C0 10400043 */ beq $v0, $zero, .L809BE3D0 /* 01664 809BE2C4 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006 /* 01668 809BE2C8 86020198 */ lh $v0, 0x0198($s0) ## 00000198 /* 0166C 809BE2CC 3C06809C */ lui $a2, %hi(D_809BF3A8) ## $a2 = 809C0000 /* 01670 809BE2D0 24C6F3A8 */ addiu $a2, $a2, %lo(D_809BF3A8) ## $a2 = 809BF3A8 -/* 01674 809BE2D4 10400003 */ beq $v0, $zero, .L809BE2E4 +/* 01674 809BE2D4 10400003 */ beq $v0, $zero, .L809BE2E4 /* 01678 809BE2D8 2459FFFF */ addiu $t9, $v0, 0xFFFF ## $t9 = FFFFFFFF /* 0167C 809BE2DC A6190198 */ sh $t9, 0x0198($s0) ## 00000198 /* 01680 809BE2E0 86020198 */ lh $v0, 0x0198($s0) ## 00000198 .L809BE2E4: -/* 01684 809BE2E4 1441001B */ bne $v0, $at, .L809BE354 +/* 01684 809BE2E4 1441001B */ bne $v0, $at, .L809BE354 /* 01688 809BE2E8 27A50034 */ addiu $a1, $sp, 0x0034 ## $a1 = FFFFFFF4 /* 0168C 809BE2EC C6040024 */ lwc1 $f4, 0x0024($s0) ## 00000024 /* 01690 809BE2F0 3C014316 */ lui $at, 0x4316 ## $at = 43160000 /* 01694 809BE2F4 44814000 */ mtc1 $at, $f8 ## $f8 = 150.00 -/* 01698 809BE2F8 E7A40034 */ swc1 $f4, 0x0034($sp) +/* 01698 809BE2F8 E7A40034 */ swc1 $f4, 0x0034($sp) /* 0169C 809BE2FC C6060028 */ lwc1 $f6, 0x0028($s0) ## 00000028 /* 016A0 809BE300 3C08809C */ lui $t0, %hi(D_809BF3A0) ## $t0 = 809C0000 /* 016A4 809BE304 3C09809C */ lui $t1, %hi(D_809BF3A4) ## $t1 = 809C0000 -/* 016A8 809BE308 46083280 */ add.s $f10, $f6, $f8 +/* 016A8 809BE308 46083280 */ add.s $f10, $f6, $f8 /* 016AC 809BE30C 2529F3A4 */ addiu $t1, $t1, %lo(D_809BF3A4) ## $t1 = 809BF3A4 /* 016B0 809BE310 2508F3A0 */ addiu $t0, $t0, %lo(D_809BF3A0) ## $t0 = 809BF3A0 /* 016B4 809BE314 240A04B0 */ addiu $t2, $zero, 0x04B0 ## $t2 = 000004B0 -/* 016B8 809BE318 E7AA0038 */ swc1 $f10, 0x0038($sp) +/* 016B8 809BE318 E7AA0038 */ swc1 $f10, 0x0038($sp) /* 016BC 809BE31C C610002C */ lwc1 $f16, 0x002C($s0) ## 0000002C /* 016C0 809BE320 240B0014 */ addiu $t3, $zero, 0x0014 ## $t3 = 00000014 -/* 016C4 809BE324 AFAB001C */ sw $t3, 0x001C($sp) -/* 016C8 809BE328 AFAA0018 */ sw $t2, 0x0018($sp) -/* 016CC 809BE32C AFA90014 */ sw $t1, 0x0014($sp) -/* 016D0 809BE330 AFA80010 */ sw $t0, 0x0010($sp) -/* 016D4 809BE334 8FA40044 */ lw $a0, 0x0044($sp) +/* 016C4 809BE324 AFAB001C */ sw $t3, 0x001C($sp) +/* 016C8 809BE328 AFAA0018 */ sw $t2, 0x0018($sp) +/* 016CC 809BE32C AFA90014 */ sw $t1, 0x0014($sp) +/* 016D0 809BE330 AFA80010 */ sw $t0, 0x0010($sp) +/* 016D4 809BE334 8FA40044 */ lw $a0, 0x0044($sp) /* 016D8 809BE338 00C03825 */ or $a3, $a2, $zero ## $a3 = 809BF3A8 -/* 016DC 809BE33C 0C00A0A7 */ jal func_8002829C -/* 016E0 809BE340 E7B0003C */ swc1 $f16, 0x003C($sp) +/* 016DC 809BE33C 0C00A0A7 */ jal func_8002829C +/* 016E0 809BE340 E7B0003C */ swc1 $f16, 0x003C($sp) /* 016E4 809BE344 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 /* 016E8 809BE348 0C00BE0A */ jal Audio_PlayActorSound2 - + /* 016EC 809BE34C 240538C7 */ addiu $a1, $zero, 0x38C7 ## $a1 = 000038C7 /* 016F0 809BE350 86020198 */ lh $v0, 0x0198($s0) ## 00000198 .L809BE354: -/* 016F4 809BE354 1440001E */ bne $v0, $zero, .L809BE3D0 +/* 016F4 809BE354 1440001E */ bne $v0, $zero, .L809BE3D0 /* 016F8 809BE358 26040054 */ addiu $a0, $s0, 0x0054 ## $a0 = 00000054 /* 016FC 809BE35C 3C063A83 */ lui $a2, 0x3A83 ## $a2 = 3A830000 /* 01700 809BE360 34C6126F */ ori $a2, $a2, 0x126F ## $a2 = 3A83126F /* 01704 809BE364 0C01DE80 */ jal Math_ApproxF - + /* 01708 809BE368 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000 -/* 0170C 809BE36C 10400018 */ beq $v0, $zero, .L809BE3D0 -/* 01710 809BE370 8FA40044 */ lw $a0, 0x0044($sp) +/* 0170C 809BE36C 10400018 */ beq $v0, $zero, .L809BE3D0 +/* 01710 809BE370 8FA40044 */ lw $a0, 0x0044($sp) /* 01714 809BE374 0C00B33C */ jal Flags_SetClear - + /* 01718 809BE378 82050003 */ lb $a1, 0x0003($s0) ## 00000003 -/* 0171C 809BE37C 8FAC0044 */ lw $t4, 0x0044($sp) +/* 0171C 809BE37C 8FAC0044 */ lw $t4, 0x0044($sp) /* 01720 809BE380 24050003 */ addiu $a1, $zero, 0x0003 ## $a1 = 00000003 -/* 01724 809BE384 0C0169DF */ jal func_8005A77C +/* 01724 809BE384 0C0169DF */ jal Camera_ChangeSetting /* 01728 809BE388 8D840790 */ lw $a0, 0x0790($t4) ## 00000790 -/* 0172C 809BE38C 8FAD0044 */ lw $t5, 0x0044($sp) +/* 0172C 809BE38C 8FAD0044 */ lw $t5, 0x0044($sp) /* 01730 809BE390 24050004 */ addiu $a1, $zero, 0x0004 ## $a1 = 00000004 -/* 01734 809BE394 0C016B3F */ jal func_8005ACFC +/* 01734 809BE394 0C016B3F */ jal func_8005ACFC /* 01738 809BE398 8DA40790 */ lw $a0, 0x0790($t5) ## 00000790 /* 0173C 809BE39C 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024 -/* 01740 809BE3A0 AFA50030 */ sw $a1, 0x0030($sp) -/* 01744 809BE3A4 8FA40044 */ lw $a0, 0x0044($sp) +/* 01740 809BE3A0 AFA50030 */ sw $a1, 0x0030($sp) +/* 01744 809BE3A4 8FA40044 */ lw $a0, 0x0044($sp) /* 01748 809BE3A8 24060032 */ addiu $a2, $zero, 0x0032 ## $a2 = 00000032 /* 0174C 809BE3AC 0C01AEB6 */ jal Audio_PlaySoundAtPosition - + /* 01750 809BE3B0 240738C5 */ addiu $a3, $zero, 0x38C5 ## $a3 = 000038C5 -/* 01754 809BE3B4 8FA40044 */ lw $a0, 0x0044($sp) +/* 01754 809BE3B4 8FA40044 */ lw $a0, 0x0044($sp) /* 01758 809BE3B8 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 0175C 809BE3BC 8FA60030 */ lw $a2, 0x0030($sp) +/* 0175C 809BE3BC 8FA60030 */ lw $a2, 0x0030($sp) /* 01760 809BE3C0 0C007E50 */ jal Item_DropCollectibleRandom - + /* 01764 809BE3C4 240700B0 */ addiu $a3, $zero, 0x00B0 ## $a3 = 000000B0 /* 01768 809BE3C8 0C00B55C */ jal Actor_Kill - + /* 0176C 809BE3CC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 .L809BE3D0: -/* 01770 809BE3D0 8FBF002C */ lw $ra, 0x002C($sp) +/* 01770 809BE3D0 8FBF002C */ lw $ra, 0x002C($sp) .L809BE3D4: -/* 01774 809BE3D4 8FB00028 */ lw $s0, 0x0028($sp) +/* 01774 809BE3D4 8FB00028 */ lw $s0, 0x0028($sp) /* 01778 809BE3D8 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000 -/* 0177C 809BE3DC 03E00008 */ jr $ra +/* 0177C 809BE3DC 03E00008 */ jr $ra /* 01780 809BE3E0 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Bili/func_809C13A8.s b/asm/non_matchings/overlays/actors/ovl_En_Bili/func_809C13A8.s index 3a6029a19c..76a3aaed66 100644 --- a/asm/non_matchings/overlays/actors/ovl_En_Bili/func_809C13A8.s +++ b/asm/non_matchings/overlays/actors/ovl_En_Bili/func_809C13A8.s @@ -42,7 +42,7 @@ glabel func_809C13A8 /* 01BA0 809C1440 845907A0 */ lh $t9, 0x07A0($v0) ## 000007A0 /* 01BA4 809C1444 00194080 */ sll $t0, $t9, 2 /* 01BA8 809C1448 00484821 */ addu $t1, $v0, $t0 -/* 01BAC 809C144C 0C016A7D */ jal func_8005A9F4 +/* 01BAC 809C144C 0C016A7D */ jal Camera_GetCamDirYaw /* 01BB0 809C1450 8D240790 */ lw $a0, 0x0790($t1) ## 00000790 /* 01BB4 809C1454 8FA70044 */ lw $a3, 0x0044($sp) /* 01BB8 809C1458 8FAD0040 */ lw $t5, 0x0040($sp) diff --git a/asm/non_matchings/overlays/actors/ovl_En_Clear_Tag/EnClearTag_Update.s b/asm/non_matchings/overlays/actors/ovl_En_Clear_Tag/EnClearTag_Update.s index 570378f708..5c3b826ad6 100644 --- a/asm/non_matchings/overlays/actors/ovl_En_Clear_Tag/EnClearTag_Update.s +++ b/asm/non_matchings/overlays/actors/ovl_En_Clear_Tag/EnClearTag_Update.s @@ -854,7 +854,7 @@ glabel EnClearTag_Update /* 011F0 809D47A0 8FA400CC */ lw $a0, 0x00CC($sp) /* 011F4 809D47A4 862501E2 */ lh $a1, 0x01E2($s1) ## 000001E2 /* 011F8 809D47A8 02003025 */ or $a2, $s0, $zero ## $a2 = 000001F0 -/* 011FC 809D47AC 0C030136 */ jal func_800C04D8 +/* 011FC 809D47AC 0C030136 */ jal Gameplay_CameraSetAtEye /* 01200 809D47B0 8FA70038 */ lw $a3, 0x0038($sp) .L809D47B4: /* 01204 809D47B4 862D01FC */ lh $t5, 0x01FC($s1) ## 000001FC diff --git a/asm/non_matchings/overlays/actors/ovl_En_Diving_Game/func_809EE1F4.s b/asm/non_matchings/overlays/actors/ovl_En_Diving_Game/func_809EE1F4.s index 68f80668c8..fd837d7cb1 100644 --- a/asm/non_matchings/overlays/actors/ovl_En_Diving_Game/func_809EE1F4.s +++ b/asm/non_matchings/overlays/actors/ovl_En_Diving_Game/func_809EE1F4.s @@ -124,11 +124,11 @@ glabel func_809EE1F4 /* 00B44 809EE3B4 46000005 */ abs.s $f0, $f0 /* 00B48 809EE3B8 E6040310 */ swc1 $f4, 0x0310($s0) ## 00000310 /* 00B4C 809EE3BC 46020282 */ mul.s $f10, $f0, $f2 -/* 00B50 809EE3C0 0C030136 */ jal func_800C04D8 +/* 00B50 809EE3C0 0C030136 */ jal Gameplay_CameraSetAtEye /* 00B54 809EE3C4 E60A0314 */ swc1 $f10, 0x0314($s0) ## 00000314 /* 00B58 809EE3C8 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 /* 00B5C 809EE3CC 860502A0 */ lh $a1, 0x02A0($s0) ## 000002A0 -/* 00B60 809EE3D0 0C0301C1 */ jal func_800C0704 +/* 00B60 809EE3D0 0C0301C1 */ jal Gameplay_CameraSetFov /* 00B64 809EE3D4 8E2602DC */ lw $a2, 0x02DC($s1) ## 000002DC /* 00B68 809EE3D8 44808000 */ mtc1 $zero, $f16 ## $f16 = 0.00 /* 00B6C 809EE3DC 3C08809F */ lui $t0, %hi(func_809EE408) ## $t0 = 809F0000 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Diving_Game/func_809EE408.s b/asm/non_matchings/overlays/actors/ovl_En_Diving_Game/func_809EE408.s index bacd6ac4f8..ae905cfbfa 100644 --- a/asm/non_matchings/overlays/actors/ovl_En_Diving_Game/func_809EE408.s +++ b/asm/non_matchings/overlays/actors/ovl_En_Diving_Game/func_809EE408.s @@ -81,7 +81,7 @@ glabel func_809EE408 /* 00CB4 809EE524 8FA40024 */ lw $a0, 0x0024($sp) .L809EE528: /* 00CB8 809EE528 260602B8 */ addiu $a2, $s0, 0x02B8 ## $a2 = 000002B8 -/* 00CBC 809EE52C 0C030136 */ jal func_800C04D8 +/* 00CBC 809EE52C 0C030136 */ jal Gameplay_CameraSetAtEye /* 00CC0 809EE530 260702C4 */ addiu $a3, $s0, 0x02C4 ## $a3 = 000002C4 /* 00CC4 809EE534 920E031E */ lbu $t6, 0x031E($s0) ## 0000031E /* 00CC8 809EE538 55C0001D */ bnel $t6, $zero, .L809EE5B0 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Go/func_80A3F15C.s b/asm/non_matchings/overlays/actors/ovl_En_Go/func_80A3F15C.s index d450b054ea..089036b73f 100644 --- a/asm/non_matchings/overlays/actors/ovl_En_Go/func_80A3F15C.s +++ b/asm/non_matchings/overlays/actors/ovl_En_Go/func_80A3F15C.s @@ -1,70 +1,70 @@ glabel func_80A3F15C /* 00BEC 80A3F15C 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8 -/* 00BF0 80A3F160 AFBF0014 */ sw $ra, 0x0014($sp) +/* 00BF0 80A3F160 AFBF0014 */ sw $ra, 0x0014($sp) /* 00BF4 80A3F164 848F00B6 */ lh $t7, 0x00B6($a0) ## 000000B6 /* 00BF8 80A3F168 848E008A */ lh $t6, 0x008A($a0) ## 0000008A /* 00BFC 80A3F16C 3C0180A4 */ lui $at, %hi(D_80A420C8) ## $at = 80A40000 -/* 00C00 80A3F170 C42620C8 */ lwc1 $f6, %lo(D_80A420C8)($at) -/* 00C04 80A3F174 01CF1023 */ subu $v0, $t6, $t7 -/* 00C08 80A3F178 00021400 */ sll $v0, $v0, 16 -/* 00C0C 80A3F17C 00021403 */ sra $v0, $v0, 16 +/* 00C00 80A3F170 C42620C8 */ lwc1 $f6, %lo(D_80A420C8)($at) +/* 00C04 80A3F174 01CF1023 */ subu $v0, $t6, $t7 +/* 00C08 80A3F178 00021400 */ sll $v0, $v0, 16 +/* 00C0C 80A3F17C 00021403 */ sra $v0, $v0, 16 /* 00C10 80A3F180 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00 /* 00C14 80A3F184 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000 /* 00C18 80A3F188 8CA70790 */ lw $a3, 0x0790($a1) ## 00000790 -/* 00C1C 80A3F18C 46802020 */ cvt.s.w $f0, $f4 +/* 00C1C 80A3F18C 46802020 */ cvt.s.w $f0, $f4 /* 00C20 80A3F190 3C0180A4 */ lui $at, %hi(D_80A420CC) ## $at = 80A40000 -/* 00C24 80A3F194 46000005 */ abs.s $f0, $f0 -/* 00C28 80A3F198 4600303C */ c.lt.s $f6, $f0 +/* 00C24 80A3F194 46000005 */ abs.s $f0, $f0 +/* 00C28 80A3F198 4600303C */ c.lt.s $f6, $f0 /* 00C2C 80A3F19C 00000000 */ nop -/* 00C30 80A3F1A0 45020004 */ bc1fl .L80A3F1B4 +/* 00C30 80A3F1A0 45020004 */ bc1fl .L80A3F1B4 /* 00C34 80A3F1A4 C4C80050 */ lwc1 $f8, 0x0050($a2) ## 00000050 -/* 00C38 80A3F1A8 10000029 */ beq $zero, $zero, .L80A3F250 +/* 00C38 80A3F1A8 10000029 */ beq $zero, $zero, .L80A3F250 /* 00C3C 80A3F1AC 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000 /* 00C40 80A3F1B0 C4C80050 */ lwc1 $f8, 0x0050($a2) ## 00000050 .L80A3F1B4: -/* 00C44 80A3F1B4 C42A20CC */ lwc1 $f10, %lo(D_80A420CC)($at) +/* 00C44 80A3F1B4 C42A20CC */ lwc1 $f10, %lo(D_80A420CC)($at) /* 00C48 80A3F1B8 3C0180A4 */ lui $at, %hi(D_80A420D0) ## $at = 80A40000 -/* 00C4C 80A3F1BC C43220D0 */ lwc1 $f18, %lo(D_80A420D0)($at) -/* 00C50 80A3F1C0 460A4403 */ div.s $f16, $f8, $f10 +/* 00C4C 80A3F1BC C43220D0 */ lwc1 $f18, %lo(D_80A420D0)($at) +/* 00C50 80A3F1C0 460A4403 */ div.s $f16, $f8, $f10 /* 00C54 80A3F1C4 84D8001C */ lh $t8, 0x001C($a2) ## 0000001C /* 00C58 80A3F1C8 24010090 */ addiu $at, $zero, 0x0090 ## $at = 00000090 /* 00C5C 80A3F1CC 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000 /* 00C60 80A3F1D0 331900F0 */ andi $t9, $t8, 0x00F0 ## $t9 = 00000000 /* 00C64 80A3F1D4 2405003F */ addiu $a1, $zero, 0x003F ## $a1 = 0000003F -/* 00C68 80A3F1D8 46128082 */ mul.s $f2, $f16, $f18 -/* 00C6C 80A3F1DC 5721000D */ bnel $t9, $at, .L80A3F214 +/* 00C68 80A3F1D8 46128082 */ mul.s $f2, $f16, $f18 +/* 00C6C 80A3F1DC 5721000D */ bnel $t9, $at, .L80A3F214 /* 00C70 80A3F1E0 C4C0008C */ lwc1 $f0, 0x008C($a2) ## 0000008C -/* 00C74 80A3F1E4 AFA60028 */ sw $a2, 0x0028($sp) -/* 00C78 80A3F1E8 AFA7001C */ sw $a3, 0x001C($sp) -/* 00C7C 80A3F1EC 0C0169DF */ jal func_8005A77C -/* 00C80 80A3F1F0 E7A20024 */ swc1 $f2, 0x0024($sp) +/* 00C74 80A3F1E4 AFA60028 */ sw $a2, 0x0028($sp) +/* 00C78 80A3F1E8 AFA7001C */ sw $a3, 0x001C($sp) +/* 00C7C 80A3F1EC 0C0169DF */ jal Camera_ChangeSetting +/* 00C80 80A3F1F0 E7A20024 */ swc1 $f2, 0x0024($sp) /* 00C84 80A3F1F4 3C0180A4 */ lui $at, %hi(D_80A420D4) ## $at = 80A40000 -/* 00C88 80A3F1F8 C7A20024 */ lwc1 $f2, 0x0024($sp) -/* 00C8C 80A3F1FC C42420D4 */ lwc1 $f4, %lo(D_80A420D4)($at) -/* 00C90 80A3F200 8FA60028 */ lw $a2, 0x0028($sp) -/* 00C94 80A3F204 8FA7001C */ lw $a3, 0x001C($sp) -/* 00C98 80A3F208 46041082 */ mul.s $f2, $f2, $f4 +/* 00C88 80A3F1F8 C7A20024 */ lwc1 $f2, 0x0024($sp) +/* 00C8C 80A3F1FC C42420D4 */ lwc1 $f4, %lo(D_80A420D4)($at) +/* 00C90 80A3F200 8FA60028 */ lw $a2, 0x0028($sp) +/* 00C94 80A3F204 8FA7001C */ lw $a3, 0x001C($sp) +/* 00C98 80A3F208 46041082 */ mul.s $f2, $f2, $f4 /* 00C9C 80A3F20C 00000000 */ nop /* 00CA0 80A3F210 C4C0008C */ lwc1 $f0, 0x008C($a2) ## 0000008C .L80A3F214: /* 00CA4 80A3F214 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001 -/* 00CA8 80A3F218 46000005 */ abs.s $f0, $f0 -/* 00CAC 80A3F21C 4600103C */ c.lt.s $f2, $f0 +/* 00CA8 80A3F218 46000005 */ abs.s $f0, $f0 +/* 00CAC 80A3F21C 4600103C */ c.lt.s $f2, $f0 /* 00CB0 80A3F220 00000000 */ nop -/* 00CB4 80A3F224 4500000A */ bc1f .L80A3F250 +/* 00CB4 80A3F224 4500000A */ bc1f .L80A3F250 /* 00CB8 80A3F228 00000000 */ nop /* 00CBC 80A3F22C 84E80142 */ lh $t0, 0x0142($a3) ## 00000142 /* 00CC0 80A3F230 2401003F */ addiu $at, $zero, 0x003F ## $at = 0000003F /* 00CC4 80A3F234 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000 -/* 00CC8 80A3F238 15010003 */ bne $t0, $at, .L80A3F248 +/* 00CC8 80A3F238 15010003 */ bne $t0, $at, .L80A3F248 /* 00CCC 80A3F23C 00000000 */ nop -/* 00CD0 80A3F240 0C0169DF */ jal func_8005A77C +/* 00CD0 80A3F240 0C0169DF */ jal Camera_ChangeSetting /* 00CD4 80A3F244 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001 .L80A3F248: -/* 00CD8 80A3F248 10000001 */ beq $zero, $zero, .L80A3F250 +/* 00CD8 80A3F248 10000001 */ beq $zero, $zero, .L80A3F250 /* 00CDC 80A3F24C 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000 .L80A3F250: -/* 00CE0 80A3F250 8FBF0014 */ lw $ra, 0x0014($sp) +/* 00CE0 80A3F250 8FBF0014 */ lw $ra, 0x0014($sp) /* 00CE4 80A3F254 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000 -/* 00CE8 80A3F258 03E00008 */ jr $ra +/* 00CE8 80A3F258 03E00008 */ jr $ra /* 00CEC 80A3F25C 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Go2/func_80A4561C.s b/asm/non_matchings/overlays/actors/ovl_En_Go2/func_80A4561C.s index 7c96885c7c..dee100db86 100644 --- a/asm/non_matchings/overlays/actors/ovl_En_Go2/func_80A4561C.s +++ b/asm/non_matchings/overlays/actors/ovl_En_Go2/func_80A4561C.s @@ -1,58 +1,58 @@ glabel func_80A4561C /* 028EC 80A4561C 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 028F0 80A45620 AFBF0014 */ sw $ra, 0x0014($sp) -/* 028F4 80A45624 AFA40020 */ sw $a0, 0x0020($sp) +/* 028F0 80A45620 AFBF0014 */ sw $ra, 0x0014($sp) +/* 028F4 80A45624 AFA40020 */ sw $a0, 0x0020($sp) /* 028F8 80A45628 8CAE0790 */ lw $t6, 0x0790($a1) ## 00000790 /* 028FC 80A4562C 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002 -/* 02900 80A45630 AFAE001C */ sw $t6, 0x001C($sp) +/* 02900 80A45630 AFAE001C */ sw $t6, 0x001C($sp) /* 02904 80A45634 8498001C */ lh $t8, 0x001C($a0) ## 0000001C /* 02908 80A45638 3319001F */ andi $t9, $t8, 0x001F ## $t9 = 00000000 -/* 0290C 80A4563C 5721001A */ bnel $t9, $at, .L80A456A8 -/* 02910 80A45640 8FA90020 */ lw $t1, 0x0020($sp) -/* 02914 80A45644 0C291370 */ jal func_80A44DC0 +/* 0290C 80A4563C 5721001A */ bnel $t9, $at, .L80A456A8 +/* 02910 80A45640 8FA90020 */ lw $t1, 0x0020($sp) +/* 02914 80A45644 0C291370 */ jal func_80A44DC0 /* 02918 80A45648 00000000 */ nop -/* 0291C 80A4564C 10400008 */ beq $v0, $zero, .L80A45670 -/* 02920 80A45650 8FA4001C */ lw $a0, 0x001C($sp) -/* 02924 80A45654 0C0169DF */ jal func_8005A77C +/* 0291C 80A4564C 10400008 */ beq $v0, $zero, .L80A45670 +/* 02920 80A45650 8FA4001C */ lw $a0, 0x001C($sp) +/* 02924 80A45654 0C0169DF */ jal Camera_ChangeSetting /* 02928 80A45658 2405003F */ addiu $a1, $zero, 0x003F ## $a1 = 0000003F -/* 0292C 80A4565C 8FA4001C */ lw $a0, 0x001C($sp) -/* 02930 80A45660 0C016B47 */ jal func_8005AD1C +/* 0292C 80A4565C 8FA4001C */ lw $a0, 0x001C($sp) +/* 02930 80A45660 0C016B47 */ jal func_8005AD1C /* 02934 80A45664 24050004 */ addiu $a1, $zero, 0x0004 ## $a1 = 00000004 -/* 02938 80A45668 1000000F */ beq $zero, $zero, .L80A456A8 -/* 0293C 80A4566C 8FA90020 */ lw $t1, 0x0020($sp) +/* 02938 80A45668 1000000F */ beq $zero, $zero, .L80A456A8 +/* 0293C 80A4566C 8FA90020 */ lw $t1, 0x0020($sp) .L80A45670: -/* 02940 80A45670 0C291370 */ jal func_80A44DC0 -/* 02944 80A45674 8FA40020 */ lw $a0, 0x0020($sp) -/* 02948 80A45678 1440000A */ bne $v0, $zero, .L80A456A4 -/* 0294C 80A4567C 8FA4001C */ lw $a0, 0x001C($sp) +/* 02940 80A45670 0C291370 */ jal func_80A44DC0 +/* 02944 80A45674 8FA40020 */ lw $a0, 0x0020($sp) +/* 02948 80A45678 1440000A */ bne $v0, $zero, .L80A456A4 +/* 0294C 80A4567C 8FA4001C */ lw $a0, 0x001C($sp) /* 02950 80A45680 84880142 */ lh $t0, 0x0142($a0) ## 00000142 /* 02954 80A45684 2401003F */ addiu $at, $zero, 0x003F ## $at = 0000003F -/* 02958 80A45688 55010007 */ bnel $t0, $at, .L80A456A8 -/* 0295C 80A4568C 8FA90020 */ lw $t1, 0x0020($sp) -/* 02960 80A45690 0C0169DF */ jal func_8005A77C +/* 02958 80A45688 55010007 */ bnel $t0, $at, .L80A456A8 +/* 0295C 80A4568C 8FA90020 */ lw $t1, 0x0020($sp) +/* 02960 80A45690 0C0169DF */ jal Camera_ChangeSetting /* 02964 80A45694 24050004 */ addiu $a1, $zero, 0x0004 ## $a1 = 00000004 -/* 02968 80A45698 8FA4001C */ lw $a0, 0x001C($sp) -/* 0296C 80A4569C 0C016B3F */ jal func_8005ACFC +/* 02968 80A45698 8FA4001C */ lw $a0, 0x001C($sp) +/* 0296C 80A4569C 0C016B3F */ jal func_8005ACFC /* 02970 80A456A0 24050004 */ addiu $a1, $zero, 0x0004 ## $a1 = 00000004 .L80A456A4: -/* 02974 80A456A4 8FA90020 */ lw $t1, 0x0020($sp) +/* 02974 80A456A4 8FA90020 */ lw $t1, 0x0020($sp) .L80A456A8: /* 02978 80A456A8 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003 -/* 0297C 80A456AC 8FBF0014 */ lw $ra, 0x0014($sp) +/* 0297C 80A456AC 8FBF0014 */ lw $ra, 0x0014($sp) /* 02980 80A456B0 8522001C */ lh $v0, 0x001C($t1) ## 0000001C /* 02984 80A456B4 3042001F */ andi $v0, $v0, 0x001F ## $v0 = 00000000 -/* 02988 80A456B8 10410009 */ beq $v0, $at, .L80A456E0 +/* 02988 80A456B8 10410009 */ beq $v0, $at, .L80A456E0 /* 0298C 80A456BC 00000000 */ nop -/* 02990 80A456C0 10400007 */ beq $v0, $zero, .L80A456E0 +/* 02990 80A456C0 10400007 */ beq $v0, $zero, .L80A456E0 /* 02994 80A456C4 2401000A */ addiu $at, $zero, 0x000A ## $at = 0000000A -/* 02998 80A456C8 10410005 */ beq $v0, $at, .L80A456E0 +/* 02998 80A456C8 10410005 */ beq $v0, $at, .L80A456E0 /* 0299C 80A456CC 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002 -/* 029A0 80A456D0 10410003 */ beq $v0, $at, .L80A456E0 +/* 029A0 80A456D0 10410003 */ beq $v0, $at, .L80A456E0 /* 029A4 80A456D4 2401000D */ addiu $at, $zero, 0x000D ## $at = 0000000D -/* 029A8 80A456D8 14410003 */ bne $v0, $at, .L80A456E8 +/* 029A8 80A456D8 14410003 */ bne $v0, $at, .L80A456E8 /* 029AC 80A456DC 3C038016 */ lui $v1, %hi(gSaveContext) .L80A456E0: -/* 029B0 80A456E0 10000012 */ beq $zero, $zero, .L80A4572C +/* 029B0 80A456E0 10000012 */ beq $zero, $zero, .L80A4572C /* 029B4 80A456E4 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001 .L80A456E8: /* 029B8 80A456E8 2463E660 */ addiu $v1, %lo(gSaveContext) @@ -60,18 +60,18 @@ glabel func_80A4561C /* 029C0 80A456F0 8C427124 */ lw $v0, %lo(gBitFlags+4)($v0) /* 029C4 80A456F4 8C6A00A4 */ lw $t2, 0x00A4($v1) ## 8015E704 /* 029C8 80A456F8 3C0C8012 */ lui $t4, %hi(gEquipShifts+2) -/* 029CC 80A456FC 004A5824 */ and $t3, $v0, $t2 -/* 029D0 80A45700 5560000A */ bnel $t3, $zero, .L80A4572C +/* 029CC 80A456FC 004A5824 */ and $t3, $v0, $t2 +/* 029D0 80A45700 5560000A */ bnel $t3, $zero, .L80A4572C /* 029D4 80A45704 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000 /* 029D8 80A45708 918C71F2 */ lbu $t4, %lo(gEquipShifts+2)($t4) /* 029DC 80A4570C 946E009C */ lhu $t6, 0x009C($v1) ## 8015E6FC -/* 029E0 80A45710 01826804 */ sllv $t5, $v0, $t4 -/* 029E4 80A45714 01AEC024 */ and $t8, $t5, $t6 -/* 029E8 80A45718 53000004 */ beql $t8, $zero, .L80A4572C +/* 029E0 80A45710 01826804 */ sllv $t5, $v0, $t4 +/* 029E4 80A45714 01AEC024 */ and $t8, $t5, $t6 +/* 029E8 80A45718 53000004 */ beql $t8, $zero, .L80A4572C /* 029EC 80A4571C 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000 -/* 029F0 80A45720 10000002 */ beq $zero, $zero, .L80A4572C +/* 029F0 80A45720 10000002 */ beq $zero, $zero, .L80A4572C /* 029F4 80A45724 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001 /* 029F8 80A45728 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000 .L80A4572C: -/* 029FC 80A4572C 03E00008 */ jr $ra +/* 029FC 80A4572C 03E00008 */ jr $ra /* 02A00 80A45730 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Go2/func_80A462D8.s b/asm/non_matchings/overlays/actors/ovl_En_Go2/func_80A462D8.s index 619738bc21..c07950a160 100644 --- a/asm/non_matchings/overlays/actors/ovl_En_Go2/func_80A462D8.s +++ b/asm/non_matchings/overlays/actors/ovl_En_Go2/func_80A462D8.s @@ -59,7 +59,7 @@ glabel func_80A462D8 /* 03680 80A463B0 260704A0 */ addiu $a3, $s0, 0x04A0 ## $a3 = 000004A0 /* 03684 80A463B4 E61204B0 */ swc1 $f18, 0x04B0($s0) ## 000004B0 /* 03688 80A463B8 8FA60020 */ lw $a2, 0x0020($sp) -/* 0368C 80A463BC 0C030136 */ jal func_800C04D8 +/* 0368C 80A463BC 0C030136 */ jal Gameplay_CameraSetAtEye /* 03690 80A463C0 8FA4002C */ lw $a0, 0x002C($sp) /* 03694 80A463C4 8FBF001C */ lw $ra, 0x001C($sp) /* 03698 80A463C8 8FB00018 */ lw $s0, 0x0018($sp) diff --git a/asm/non_matchings/overlays/actors/ovl_En_Holl/func_80A59014.s b/asm/non_matchings/overlays/actors/ovl_En_Holl/func_80A59014.s index d4da2ac21d..5a550f009c 100644 --- a/asm/non_matchings/overlays/actors/ovl_En_Holl/func_80A59014.s +++ b/asm/non_matchings/overlays/actors/ovl_En_Holl/func_80A59014.s @@ -1,35 +1,35 @@ glabel func_80A59014 -/* 00404 80A59014 3C068012 */ lui $a2, %hi(D_8011D394) -/* 00408 80A59018 8CC6D394 */ lw $a2, %lo(D_8011D394)($a2) +/* 00404 80A59014 3C068012 */ lui $a2, %hi(gDbgCamEnabled) +/* 00408 80A59018 8CC6D394 */ lw $a2, %lo(gDbgCamEnabled)($a2) /* 0040C 80A5901C 27BDFFA8 */ addiu $sp, $sp, 0xFFA8 ## $sp = FFFFFFA8 -/* 00410 80A59020 AFBF0014 */ sw $ra, 0x0014($sp) -/* 00414 80A59024 AFA40058 */ sw $a0, 0x0058($sp) -/* 00418 80A59028 0006302B */ sltu $a2, $zero, $a2 +/* 00410 80A59020 AFBF0014 */ sw $ra, 0x0014($sp) +/* 00414 80A59024 AFA40058 */ sw $a0, 0x0058($sp) +/* 00418 80A59028 0006302B */ sltu $a2, $zero, $a2 /* 0041C 80A5902C 00A03825 */ or $a3, $a1, $zero ## $a3 = 00000000 -/* 00420 80A59030 14C00003 */ bne $a2, $zero, .L80A59040 +/* 00420 80A59030 14C00003 */ bne $a2, $zero, .L80A59040 /* 00424 80A59034 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44 /* 00428 80A59038 90A61D6C */ lbu $a2, 0x1D6C($a1) ## 00001D6C -/* 0042C 80A5903C 0006302B */ sltu $a2, $zero, $a2 +/* 0042C 80A5903C 0006302B */ sltu $a2, $zero, $a2 .L80A59040: -/* 00430 80A59040 10C00003 */ beq $a2, $zero, .L80A59050 -/* 00434 80A59044 8FA40058 */ lw $a0, 0x0058($sp) -/* 00438 80A59048 10000002 */ beq $zero, $zero, .L80A59054 +/* 00430 80A59040 10C00003 */ beq $a2, $zero, .L80A59050 +/* 00434 80A59044 8FA40058 */ lw $a0, 0x0058($sp) +/* 00438 80A59048 10000002 */ beq $zero, $zero, .L80A59054 /* 0043C 80A5904C 24E600E0 */ addiu $a2, $a3, 0x00E0 ## $a2 = 000000E0 .L80A59050: /* 00440 80A59050 24460024 */ addiu $a2, $v0, 0x0024 ## $a2 = 00000024 .L80A59054: /* 00444 80A59054 27A50044 */ addiu $a1, $sp, 0x0044 ## $a1 = FFFFFFEC -/* 00448 80A59058 0C00B6F4 */ jal func_8002DBD0 -/* 0044C 80A5905C AFA7005C */ sw $a3, 0x005C($sp) -/* 00450 80A59060 8FAE0058 */ lw $t6, 0x0058($sp) +/* 00448 80A59058 0C00B6F4 */ jal func_8002DBD0 +/* 0044C 80A5905C AFA7005C */ sw $a3, 0x005C($sp) +/* 00450 80A59060 8FAE0058 */ lw $t6, 0x0058($sp) /* 00454 80A59064 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006 /* 00458 80A59068 85CF001C */ lh $t7, 0x001C($t6) ## 0000001C -/* 0045C 80A5906C 000FC183 */ sra $t8, $t7, 6 +/* 0045C 80A5906C 000FC183 */ sra $t8, $t7, 6 /* 00460 80A59070 33190007 */ andi $t9, $t8, 0x0007 ## $t9 = 00000000 -/* 00464 80A59074 17210004 */ bne $t9, $at, .L80A59088 +/* 00464 80A59074 17210004 */ bne $t9, $at, .L80A59088 /* 00468 80A59078 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000 /* 0046C 80A5907C 44811000 */ mtc1 $at, $f2 ## $f2 = 100.00 -/* 00470 80A59080 10000004 */ beq $zero, $zero, .L80A59094 +/* 00470 80A59080 10000004 */ beq $zero, $zero, .L80A59094 /* 00474 80A59084 00000000 */ nop .L80A59088: /* 00478 80A59088 3C014348 */ lui $at, 0x4348 ## $at = 43480000 @@ -42,68 +42,68 @@ glabel func_80A59014 /* 00490 80A590A0 C7A2003C */ lwc1 $f2, 0x003C($sp) /* 00494 80A590A4 3C01C248 */ lui $at, 0xC248 ## $at = C2480000 /* 00498 80A590A8 44812000 */ mtc1 $at, $f4 ## $f4 = -50.00 -/* 0049C 80A590AC C7A00048 */ lwc1 $f0, 0x0048($sp) +/* 0049C 80A590AC C7A00048 */ lwc1 $f0, 0x0048($sp) /* 004A0 80A590B0 3C014348 */ lui $at, 0x4348 ## $at = 43480000 -/* 004A4 80A590B4 4600203C */ c.lt.s $f4, $f0 +/* 004A4 80A590B4 4600203C */ c.lt.s $f4, $f0 /* 004A8 80A590B8 00000000 */ nop -/* 004AC 80A590BC 4502003D */ bc1fl .L80A591B4 -/* 004B0 80A590C0 8FBF0014 */ lw $ra, 0x0014($sp) +/* 004AC 80A590BC 4502003D */ bc1fl .L80A591B4 +/* 004B0 80A590C0 8FBF0014 */ lw $ra, 0x0014($sp) /* 004B4 80A590C4 44813000 */ mtc1 $at, $f6 ## $f6 = 200.00 /* 004B8 80A590C8 00000000 */ nop -/* 004BC 80A590CC 4606003C */ c.lt.s $f0, $f6 -/* 004C0 80A590D0 C7A00044 */ lwc1 $f0, 0x0044($sp) -/* 004C4 80A590D4 45020037 */ bc1fl .L80A591B4 -/* 004C8 80A590D8 8FBF0014 */ lw $ra, 0x0014($sp) -/* 004CC 80A590DC 46000005 */ abs.s $f0, $f0 +/* 004BC 80A590CC 4606003C */ c.lt.s $f0, $f6 +/* 004C0 80A590D0 C7A00044 */ lwc1 $f0, 0x0044($sp) +/* 004C4 80A590D4 45020037 */ bc1fl .L80A591B4 +/* 004C8 80A590D8 8FBF0014 */ lw $ra, 0x0014($sp) +/* 004CC 80A590DC 46000005 */ abs.s $f0, $f0 /* 004D0 80A590E0 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000 -/* 004D4 80A590E4 4602003C */ c.lt.s $f0, $f2 -/* 004D8 80A590E8 C7A0004C */ lwc1 $f0, 0x004C($sp) -/* 004DC 80A590EC 45020031 */ bc1fl .L80A591B4 -/* 004E0 80A590F0 8FBF0014 */ lw $ra, 0x0014($sp) +/* 004D4 80A590E4 4602003C */ c.lt.s $f0, $f2 +/* 004D8 80A590E8 C7A0004C */ lwc1 $f0, 0x004C($sp) +/* 004DC 80A590EC 45020031 */ bc1fl .L80A591B4 +/* 004E0 80A590F0 8FBF0014 */ lw $ra, 0x0014($sp) /* 004E4 80A590F4 44814000 */ mtc1 $at, $f8 ## $f8 = 100.00 -/* 004E8 80A590F8 46000005 */ abs.s $f0, $f0 +/* 004E8 80A590F8 46000005 */ abs.s $f0, $f0 /* 004EC 80A590FC 3C014248 */ lui $at, 0x4248 ## $at = 42480000 -/* 004F0 80A59100 4608003C */ c.lt.s $f0, $f8 +/* 004F0 80A59100 4608003C */ c.lt.s $f0, $f8 /* 004F4 80A59104 00000000 */ nop -/* 004F8 80A59108 4502002A */ bc1fl .L80A591B4 -/* 004FC 80A5910C 8FBF0014 */ lw $ra, 0x0014($sp) +/* 004F8 80A59108 4502002A */ bc1fl .L80A591B4 +/* 004FC 80A5910C 8FBF0014 */ lw $ra, 0x0014($sp) /* 00500 80A59110 44815000 */ mtc1 $at, $f10 ## $f10 = 50.00 /* 00504 80A59114 00000000 */ nop -/* 00508 80A59118 4600503C */ c.lt.s $f10, $f0 +/* 00508 80A59118 4600503C */ c.lt.s $f10, $f0 /* 0050C 80A5911C 00000000 */ nop -/* 00510 80A59120 45020024 */ bc1fl .L80A591B4 -/* 00514 80A59124 8FBF0014 */ lw $ra, 0x0014($sp) +/* 00510 80A59120 45020024 */ bc1fl .L80A591B4 +/* 00514 80A59124 8FBF0014 */ lw $ra, 0x0014($sp) .L80A59128: -/* 00518 80A59128 C7B0004C */ lwc1 $f16, 0x004C($sp) +/* 00518 80A59128 C7B0004C */ lwc1 $f16, 0x004C($sp) /* 0051C 80A5912C 44809000 */ mtc1 $zero, $f18 ## $f18 = 0.00 -/* 00520 80A59130 8FA80058 */ lw $t0, 0x0058($sp) -/* 00524 80A59134 8FA5005C */ lw $a1, 0x005C($sp) -/* 00528 80A59138 4612803C */ c.lt.s $f16, $f18 +/* 00520 80A59130 8FA80058 */ lw $t0, 0x0058($sp) +/* 00524 80A59134 8FA5005C */ lw $a1, 0x005C($sp) +/* 00528 80A59138 4612803C */ c.lt.s $f16, $f18 /* 0052C 80A5913C 9507001C */ lhu $a3, 0x001C($t0) ## 0000001C /* 00530 80A59140 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 00534 80A59144 00A12821 */ addu $a1, $a1, $at -/* 00538 80A59148 45000003 */ bc1f .L80A59158 -/* 0053C 80A5914C 00073A83 */ sra $a3, $a3, 10 -/* 00540 80A59150 10000002 */ beq $zero, $zero, .L80A5915C +/* 00534 80A59144 00A12821 */ addu $a1, $a1, $at +/* 00538 80A59148 45000003 */ bc1f .L80A59158 +/* 0053C 80A5914C 00073A83 */ sra $a3, $a3, 10 +/* 00540 80A59150 10000002 */ beq $zero, $zero, .L80A5915C /* 00544 80A59154 00002025 */ or $a0, $zero, $zero ## $a0 = 00000000 .L80A59158: /* 00548 80A59158 24040001 */ addiu $a0, $zero, 0x0001 ## $a0 = 00000001 .L80A5915C: /* 0054C 80A5915C 8CA91D38 */ lw $t1, 0x1D38($a1) ## 00001D38 -/* 00550 80A59160 00075100 */ sll $t2, $a3, 4 -/* 00554 80A59164 00045840 */ sll $t3, $a0, 1 -/* 00558 80A59168 012A1821 */ addu $v1, $t1, $t2 -/* 0055C 80A5916C 006B6021 */ addu $t4, $v1, $t3 +/* 00550 80A59160 00075100 */ sll $t2, $a3, 4 +/* 00554 80A59164 00045840 */ sll $t3, $a0, 1 +/* 00558 80A59168 012A1821 */ addu $v1, $t1, $t2 +/* 0055C 80A5916C 006B6021 */ addu $t4, $v1, $t3 /* 00560 80A59170 81860000 */ lb $a2, 0x0000($t4) ## 00000000 /* 00564 80A59174 3C010001 */ lui $at, 0x0001 ## $at = 00010000 /* 00568 80A59178 34211CBC */ ori $at, $at, 0x1CBC ## $at = 00011CBC /* 0056C 80A5917C A1060003 */ sb $a2, 0x0003($t0) ## 00000003 /* 00570 80A59180 80AD1CBC */ lb $t5, 0x1CBC($a1) ## 00001CBC /* 00574 80A59184 81070003 */ lb $a3, 0x0003($t0) ## 00000003 -/* 00578 80A59188 8FA4005C */ lw $a0, 0x005C($sp) -/* 0057C 80A5918C 11A70008 */ beq $t5, $a3, .L80A591B0 -/* 00580 80A59190 00812821 */ addu $a1, $a0, $at -/* 00584 80A59194 0C025CA3 */ jal func_8009728C +/* 00578 80A59188 8FA4005C */ lw $a0, 0x005C($sp) +/* 0057C 80A5918C 11A70008 */ beq $t5, $a3, .L80A591B0 +/* 00580 80A59190 00812821 */ addu $a1, $a0, $at +/* 00584 80A59194 0C025CA3 */ jal func_8009728C /* 00588 80A59198 00E03025 */ or $a2, $a3, $zero ## $a2 = 00000000 /* 0058C 80A5919C 10400004 */ beq $v0, $zero, .L80A591B0 /* 00590 80A591A0 8FA40058 */ lw $a0, 0x0058($sp) @@ -111,8 +111,8 @@ glabel func_80A59014 /* 00598 80A591A8 0C296304 */ jal EnHoll_SetupAction /* 0059C 80A591AC 24A59828 */ addiu $a1, $a1, %lo(EnHoll_NextAction) ## $a1 = 80A59828 .L80A591B0: -/* 005A0 80A591B0 8FBF0014 */ lw $ra, 0x0014($sp) +/* 005A0 80A591B0 8FBF0014 */ lw $ra, 0x0014($sp) .L80A591B4: /* 005A4 80A591B4 27BD0058 */ addiu $sp, $sp, 0x0058 ## $sp = 00000000 -/* 005A8 80A591B8 03E00008 */ jr $ra +/* 005A8 80A591B8 03E00008 */ jr $ra /* 005AC 80A591BC 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Honotrap/func_80A5AD28.s b/asm/non_matchings/overlays/actors/ovl_En_Honotrap/func_80A5AD28.s index 12995790f5..e698fabf7f 100644 --- a/asm/non_matchings/overlays/actors/ovl_En_Honotrap/func_80A5AD28.s +++ b/asm/non_matchings/overlays/actors/ovl_En_Honotrap/func_80A5AD28.s @@ -85,7 +85,7 @@ glabel func_80A5AD28 /* 011FC 80A5AE2C 864C07A0 */ lh $t4, 0x07A0($s2) ## 000007A0 /* 01200 80A5AE30 000C6880 */ sll $t5, $t4, 2 /* 01204 80A5AE34 024D7021 */ addu $t6, $s2, $t5 -/* 01208 80A5AE38 0C016A7D */ jal func_8005A9F4 +/* 01208 80A5AE38 0C016A7D */ jal Camera_GetCamDirYaw /* 0120C 80A5AE3C 8DC40790 */ lw $a0, 0x0790($t6) ## 00000790 /* 01210 80A5AE40 862F00B6 */ lh $t7, 0x00B6($s1) ## 000000B6 /* 01214 80A5AE44 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Horse/func_80A5F08C.s b/asm/non_matchings/overlays/actors/ovl_En_Horse/func_80A5F08C.s index f7e975a2e3..2c4a9e473c 100644 --- a/asm/non_matchings/overlays/actors/ovl_En_Horse/func_80A5F08C.s +++ b/asm/non_matchings/overlays/actors/ovl_En_Horse/func_80A5F08C.s @@ -39,7 +39,7 @@ glabel func_80A5F08C /* 03E2C 80A5F11C 0C016AA4 */ jal Camera_SetParam /* 03E30 80A5F120 8E240790 */ lw $a0, 0x0790($s1) ## 00000790 /* 03E34 80A5F124 8E240790 */ lw $a0, 0x0790($s1) ## 00000790 -/* 03E38 80A5F128 0C0169DF */ jal func_8005A77C +/* 03E38 80A5F128 0C0169DF */ jal Camera_ChangeSetting /* 03E3C 80A5F12C 24050038 */ addiu $a1, $zero, 0x0038 ## $a1 = 00000038 /* 03E40 80A5F130 8E240790 */ lw $a0, 0x0790($s1) ## 00000790 /* 03E44 80A5F134 240A0051 */ addiu $t2, $zero, 0x0051 ## $t2 = 00000051 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Horse/func_80A5F414.s b/asm/non_matchings/overlays/actors/ovl_En_Horse/func_80A5F414.s index e2df6e2412..2635bfb589 100644 --- a/asm/non_matchings/overlays/actors/ovl_En_Horse/func_80A5F414.s +++ b/asm/non_matchings/overlays/actors/ovl_En_Horse/func_80A5F414.s @@ -49,7 +49,7 @@ glabel func_80A5F414 /* 041DC 80A5F4CC 8F240790 */ lw $a0, 0x0790($t9) ## 00000790 /* 041E0 80A5F4D0 8FA8003C */ lw $t0, 0x003C($sp) /* 041E4 80A5F4D4 24050038 */ addiu $a1, $zero, 0x0038 ## $a1 = 00000038 -/* 041E8 80A5F4D8 0C0169DF */ jal func_8005A77C +/* 041E8 80A5F4D8 0C0169DF */ jal Camera_ChangeSetting /* 041EC 80A5F4DC 8D040790 */ lw $a0, 0x0790($t0) ## 00000790 /* 041F0 80A5F4E0 8FA9003C */ lw $t1, 0x003C($sp) /* 041F4 80A5F4E4 240A0051 */ addiu $t2, $zero, 0x0051 ## $t2 = 00000051 diff --git a/asm/non_matchings/overlays/actors/ovl_En_In/func_80A79C78.s b/asm/non_matchings/overlays/actors/ovl_En_In/func_80A79C78.s index d552452569..912da11b7b 100644 --- a/asm/non_matchings/overlays/actors/ovl_En_In/func_80A79C78.s +++ b/asm/non_matchings/overlays/actors/ovl_En_In/func_80A79C78.s @@ -49,7 +49,7 @@ glabel func_80A79C78 /* 00D84 80A79D34 46105480 */ add.s $f18, $f10, $f16 /* 00D88 80A79D38 E7A80040 */ swc1 $f8, 0x0040($sp) /* 00D8C 80A79D3C E7B20044 */ swc1 $f18, 0x0044($sp) -/* 00D90 80A79D40 0C030136 */ jal func_800C04D8 +/* 00D90 80A79D40 0C030136 */ jal Gameplay_CameraSetAtEye /* 00D94 80A79D44 860501F0 */ lh $a1, 0x01F0($s0) ## 000001F0 /* 00D98 80A79D48 26040024 */ addiu $a0, $s0, 0x0024 ## $a0 = 00000024 /* 00D9C 80A79D4C AFA4002C */ sw $a0, 0x002C($sp) diff --git a/asm/non_matchings/overlays/actors/ovl_En_In/func_80A7AA40.s b/asm/non_matchings/overlays/actors/ovl_En_In/func_80A7AA40.s index e5e4f3d469..26d7cb3171 100644 --- a/asm/non_matchings/overlays/actors/ovl_En_In/func_80A7AA40.s +++ b/asm/non_matchings/overlays/actors/ovl_En_In/func_80A7AA40.s @@ -76,7 +76,7 @@ glabel func_80A7AA40 /* 01BB8 80A7AB68 C6100304 */ lwc1 $f16, 0x0304($s0) ## 00000304 /* 01BBC 80A7AB6C 46105480 */ add.s $f18, $f10, $f16 /* 01BC0 80A7AB70 E7B2002C */ swc1 $f18, 0x002C($sp) -/* 01BC4 80A7AB74 0C030136 */ jal func_800C04D8 +/* 01BC4 80A7AB74 0C030136 */ jal Gameplay_CameraSetAtEye /* 01BC8 80A7AB78 860501F0 */ lh $a1, 0x01F0($s0) ## 000001F0 /* 01BCC 80A7AB7C 240D203B */ addiu $t5, $zero, 0x203B ## $t5 = 0000203B /* 01BD0 80A7AB80 A60D010E */ sh $t5, 0x010E($s0) ## 0000010E diff --git a/asm/non_matchings/overlays/actors/ovl_En_In/func_80A7ABD4.s b/asm/non_matchings/overlays/actors/ovl_En_In/func_80A7ABD4.s index 40a4453508..b93d52d4b8 100644 --- a/asm/non_matchings/overlays/actors/ovl_En_In/func_80A7ABD4.s +++ b/asm/non_matchings/overlays/actors/ovl_En_In/func_80A7ABD4.s @@ -179,7 +179,7 @@ glabel func_80A7ABD4 /* 01EAC 80A7AE5C C6100304 */ lwc1 $f16, 0x0304($s0) ## 00000304 /* 01EB0 80A7AE60 46105480 */ add.s $f18, $f10, $f16 /* 01EB4 80A7AE64 E7B20044 */ swc1 $f18, 0x0044($sp) -/* 01EB8 80A7AE68 0C030136 */ jal func_800C04D8 +/* 01EB8 80A7AE68 0C030136 */ jal Gameplay_CameraSetAtEye /* 01EBC 80A7AE6C 860501F0 */ lh $a1, 0x01F0($s0) ## 000001F0 .L80A7AE70: /* 01EC0 80A7AE70 8FBF002C */ lw $ra, 0x002C($sp) diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ko/func_80A9877C.s b/asm/non_matchings/overlays/actors/ovl_En_Ko/func_80A9877C.s index ad3e253fe9..56c549de2b 100644 --- a/asm/non_matchings/overlays/actors/ovl_En_Ko/func_80A9877C.s +++ b/asm/non_matchings/overlays/actors/ovl_En_Ko/func_80A9877C.s @@ -1,19 +1,19 @@ glabel func_80A9877C /* 019CC 80A9877C 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0 -/* 019D0 80A98780 AFBF0024 */ sw $ra, 0x0024($sp) -/* 019D4 80A98784 AFB00020 */ sw $s0, 0x0020($sp) -/* 019D8 80A98788 AFA50034 */ sw $a1, 0x0034($sp) +/* 019D0 80A98780 AFBF0024 */ sw $ra, 0x0024($sp) +/* 019D4 80A98784 AFB00020 */ sw $s0, 0x0020($sp) +/* 019D8 80A98788 AFA50034 */ sw $a1, 0x0034($sp) /* 019DC 80A9878C 8CAF1C44 */ lw $t7, 0x1C44($a1) ## 00001C44 /* 019E0 80A98790 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 019E4 80A98794 3C198012 */ lui $t9, %hi(D_8011D394) -/* 019E8 80A98798 AFAF002C */ sw $t7, 0x002C($sp) +/* 019E4 80A98794 3C198012 */ lui $t9, %hi(gDbgCamEnabled) +/* 019E8 80A98798 AFAF002C */ sw $t7, 0x002C($sp) /* 019EC 80A9879C 90B81D6C */ lbu $t8, 0x1D6C($a1) ## 00001D6C -/* 019F0 80A987A0 8FA80034 */ lw $t0, 0x0034($sp) -/* 019F4 80A987A4 57000006 */ bnel $t8, $zero, .L80A987C0 +/* 019F0 80A987A0 8FA80034 */ lw $t0, 0x0034($sp) +/* 019F4 80A987A4 57000006 */ bnel $t8, $zero, .L80A987C0 /* 019F8 80A987A8 8D0A00E0 */ lw $t2, 0x00E0($t0) ## 000000E0 -/* 019FC 80A987AC 8F39D394 */ lw $t9, %lo(D_8011D394)($t9) -/* 01A00 80A987B0 8FAD002C */ lw $t5, 0x002C($sp) -/* 01A04 80A987B4 53200015 */ beql $t9, $zero, .L80A9880C +/* 019FC 80A987AC 8F39D394 */ lw $t9, %lo(gDbgCamEnabled)($t9) +/* 01A00 80A987B0 8FAD002C */ lw $t5, 0x002C($sp) +/* 01A04 80A987B4 53200015 */ beql $t9, $zero, .L80A9880C /* 01A08 80A987B8 8DAE0024 */ lw $t6, 0x0024($t5) ## 00000024 /* 01A0C 80A987BC 8D0A00E0 */ lw $t2, 0x00E0($t0) ## 000000E0 .L80A987C0: @@ -26,14 +26,14 @@ glabel func_80A9877C /* 01A28 80A987D8 AE090204 */ sw $t1, 0x0204($s0) ## 00000204 /* 01A2C 80A987DC 8D0A00E8 */ lw $t2, 0x00E8($t0) ## 000000E8 /* 01A30 80A987E0 E60401FC */ swc1 $f4, 0x01FC($s0) ## 000001FC -/* 01A34 80A987E4 11800018 */ beq $t4, $zero, .L80A98848 +/* 01A34 80A987E4 11800018 */ beq $t4, $zero, .L80A98848 /* 01A38 80A987E8 AE0A0208 */ sw $t2, 0x0208($s0) ## 00000208 /* 01A3C 80A987EC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 /* 01A40 80A987F0 260501E8 */ addiu $a1, $s0, 0x01E8 ## $a1 = 000001E8 /* 01A44 80A987F4 24060002 */ addiu $a2, $zero, 0x0002 ## $a2 = 00000002 -/* 01A48 80A987F8 0C00D285 */ jal func_80034A14 +/* 01A48 80A987F8 0C00D285 */ jal func_80034A14 /* 01A4C 80A987FC 24070002 */ addiu $a3, $zero, 0x0002 ## $a3 = 00000002 -/* 01A50 80A98800 10000011 */ beq $zero, $zero, .L80A98848 +/* 01A50 80A98800 10000011 */ beq $zero, $zero, .L80A98848 /* 01A54 80A98804 00000000 */ nop /* 01A58 80A98808 8DAE0024 */ lw $t6, 0x0024($t5) ## 00000024 .L80A9880C: @@ -42,78 +42,78 @@ glabel func_80A9877C /* 01A64 80A98814 8DAF0028 */ lw $t7, 0x0028($t5) ## 00000028 /* 01A68 80A98818 AE0F0204 */ sw $t7, 0x0204($s0) ## 00000204 /* 01A6C 80A9881C 8DAE002C */ lw $t6, 0x002C($t5) ## 0000002C -/* 01A70 80A98820 0C2A5EF0 */ jal func_80A97BC0 +/* 01A70 80A98820 0C2A5EF0 */ jal func_80A97BC0 /* 01A74 80A98824 AE0E0208 */ sw $t6, 0x0208($s0) ## 00000208 /* 01A78 80A98828 E60001FC */ swc1 $f0, 0x01FC($s0) ## 000001FC -/* 01A7C 80A9882C 8FA50034 */ lw $a1, 0x0034($sp) -/* 01A80 80A98830 0C2A63B3 */ jal func_80A98ECC +/* 01A7C 80A9882C 8FA50034 */ lw $a1, 0x0034($sp) +/* 01A80 80A98830 0C2A63B3 */ jal func_80A98ECC /* 01A84 80A98834 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 01A88 80A98838 14400003 */ bne $v0, $zero, .L80A98848 +/* 01A88 80A98838 14400003 */ bne $v0, $zero, .L80A98848 /* 01A8C 80A9883C 00000000 */ nop /* 01A90 80A98840 861801E8 */ lh $t8, 0x01E8($s0) ## 000001E8 -/* 01A94 80A98844 13000036 */ beq $t8, $zero, .L80A98920 +/* 01A94 80A98844 13000036 */ beq $t8, $zero, .L80A98920 .L80A98848: /* 01A98 80A98848 3C1980A9 */ lui $t9, %hi(func_80A97610) ## $t9 = 80A90000 /* 01A9C 80A9884C 3C0880A9 */ lui $t0, %hi(func_80A97738) ## $t0 = 80A90000 /* 01AA0 80A98850 25087738 */ addiu $t0, $t0, %lo(func_80A97738) ## $t0 = 80A97738 /* 01AA4 80A98854 27397610 */ addiu $t9, $t9, %lo(func_80A97610) ## $t9 = 80A97610 /* 01AA8 80A98858 8E07021C */ lw $a3, 0x021C($s0) ## 0000021C -/* 01AAC 80A9885C AFA80014 */ sw $t0, 0x0014($sp) -/* 01AB0 80A98860 AFB90010 */ sw $t9, 0x0010($sp) -/* 01AB4 80A98864 8FA40034 */ lw $a0, 0x0034($sp) +/* 01AAC 80A9885C AFA80014 */ sw $t0, 0x0014($sp) +/* 01AB0 80A98860 AFB90010 */ sw $t9, 0x0010($sp) +/* 01AB4 80A98864 8FA40034 */ lw $a0, 0x0034($sp) /* 01AB8 80A98868 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 01ABC 80A9886C 0C00D0F3 */ jal func_800343CC +/* 01ABC 80A9886C 0C00D0F3 */ jal func_800343CC /* 01AC0 80A98870 260601E8 */ addiu $a2, $s0, 0x01E8 ## $a2 = 000001E8 -/* 01AC4 80A98874 5040002B */ beql $v0, $zero, .L80A98924 -/* 01AC8 80A98878 8FBF0024 */ lw $ra, 0x0024($sp) +/* 01AC4 80A98874 5040002B */ beql $v0, $zero, .L80A98924 +/* 01AC8 80A98878 8FBF0024 */ lw $ra, 0x0024($sp) /* 01ACC 80A9887C 8609001C */ lh $t1, 0x001C($s0) ## 0000001C /* 01AD0 80A98880 2401000C */ addiu $at, $zero, 0x000C ## $at = 0000000C -/* 01AD4 80A98884 8FAB0034 */ lw $t3, 0x0034($sp) +/* 01AD4 80A98884 8FAB0034 */ lw $t3, 0x0034($sp) /* 01AD8 80A98888 312A00FF */ andi $t2, $t1, 0x00FF ## $t2 = 00000000 -/* 01ADC 80A9888C 55410025 */ bnel $t2, $at, .L80A98924 -/* 01AE0 80A98890 8FBF0024 */ lw $ra, 0x0024($sp) +/* 01ADC 80A9888C 55410025 */ bnel $t2, $at, .L80A98924 +/* 01AE0 80A98890 8FBF0024 */ lw $ra, 0x0024($sp) /* 01AE4 80A98894 856C00A4 */ lh $t4, 0x00A4($t3) ## 000000A4 /* 01AE8 80A98898 2401005B */ addiu $at, $zero, 0x005B ## $at = 0000005B /* 01AEC 80A9889C 3C0D8012 */ lui $t5, %hi(gItemSlots+0x2d) -/* 01AF0 80A988A0 55810020 */ bnel $t4, $at, .L80A98924 -/* 01AF4 80A988A4 8FBF0024 */ lw $ra, 0x0024($sp) +/* 01AF0 80A988A0 55810020 */ bnel $t4, $at, .L80A98924 +/* 01AF4 80A988A4 8FBF0024 */ lw $ra, 0x0024($sp) /* 01AF8 80A988A8 91AD7491 */ lbu $t5, %lo(gItemSlots+0x2d)($t5) /* 01AFC 80A988AC 3C0F8016 */ lui $t7, %hi(gSaveContext+0x74) /* 01B00 80A988B0 241810DF */ addiu $t8, $zero, 0x10DF ## $t8 = 000010DF -/* 01B04 80A988B4 01ED7821 */ addu $t7, $t7, $t5 +/* 01B04 80A988B4 01ED7821 */ addu $t7, $t7, $t5 /* 01B08 80A988B8 91EFE6D4 */ lbu $t7, %lo(gSaveContext+0x74)($t7) /* 01B0C 80A988BC 240E10B9 */ addiu $t6, $zero, 0x10B9 ## $t6 = 000010B9 -/* 01B10 80A988C0 29E10032 */ slti $at, $t7, 0x0032 -/* 01B14 80A988C4 54200004 */ bnel $at, $zero, .L80A988D8 +/* 01B10 80A988C0 29E10032 */ slti $at, $t7, 0x0032 +/* 01B14 80A988C4 54200004 */ bnel $at, $zero, .L80A988D8 /* 01B18 80A988C8 A618010E */ sh $t8, 0x010E($s0) ## 0000010E -/* 01B1C 80A988CC 10000002 */ beq $zero, $zero, .L80A988D8 +/* 01B1C 80A988CC 10000002 */ beq $zero, $zero, .L80A988D8 /* 01B20 80A988D0 A60E010E */ sh $t6, 0x010E($s0) ## 0000010E /* 01B24 80A988D4 A618010E */ sh $t8, 0x010E($s0) ## 0000010E .L80A988D8: -/* 01B28 80A988D8 0C00BCDA */ jal func_8002F368 -/* 01B2C 80A988DC 8FA40034 */ lw $a0, 0x0034($sp) +/* 01B28 80A988D8 0C00BCDA */ jal func_8002F368 +/* 01B2C 80A988DC 8FA40034 */ lw $a0, 0x0034($sp) /* 01B30 80A988E0 24010009 */ addiu $at, $zero, 0x0009 ## $at = 00000009 -/* 01B34 80A988E4 1441000B */ bne $v0, $at, .L80A98914 +/* 01B34 80A988E4 1441000B */ bne $v0, $at, .L80A98914 /* 01B38 80A988E8 3C198016 */ lui $t9, %hi(gSaveContext+0xf0e) /* 01B3C 80A988EC 9739F56E */ lhu $t9, %lo(gSaveContext+0xf0e)($t9) /* 01B40 80A988F0 240A10B7 */ addiu $t2, $zero, 0x10B7 ## $t2 = 000010B7 /* 01B44 80A988F4 240910B8 */ addiu $t1, $zero, 0x10B8 ## $t1 = 000010B8 /* 01B48 80A988F8 33281000 */ andi $t0, $t9, 0x1000 ## $t0 = 00000000 -/* 01B4C 80A988FC 51000004 */ beql $t0, $zero, .L80A98910 +/* 01B4C 80A988FC 51000004 */ beql $t0, $zero, .L80A98910 /* 01B50 80A98900 A60A010E */ sh $t2, 0x010E($s0) ## 0000010E -/* 01B54 80A98904 10000002 */ beq $zero, $zero, .L80A98910 +/* 01B54 80A98904 10000002 */ beq $zero, $zero, .L80A98910 /* 01B58 80A98908 A609010E */ sh $t1, 0x010E($s0) ## 0000010E /* 01B5C 80A9890C A60A010E */ sh $t2, 0x010E($s0) ## 0000010E .L80A98910: /* 01B60 80A98910 A2000210 */ sb $zero, 0x0210($s0) ## 00000210 .L80A98914: /* 01B64 80A98914 960B010E */ lhu $t3, 0x010E($s0) ## 0000010E -/* 01B68 80A98918 8FAC002C */ lw $t4, 0x002C($sp) +/* 01B68 80A98918 8FAC002C */ lw $t4, 0x002C($sp) /* 01B6C 80A9891C A58B010E */ sh $t3, 0x010E($t4) ## 0000010E .L80A98920: -/* 01B70 80A98920 8FBF0024 */ lw $ra, 0x0024($sp) +/* 01B70 80A98920 8FBF0024 */ lw $ra, 0x0024($sp) .L80A98924: -/* 01B74 80A98924 8FB00020 */ lw $s0, 0x0020($sp) +/* 01B74 80A98924 8FB00020 */ lw $s0, 0x0020($sp) /* 01B78 80A98928 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000 -/* 01B7C 80A9892C 03E00008 */ jr $ra +/* 01B7C 80A9892C 03E00008 */ jr $ra /* 01B80 80A98930 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ko/func_80A98DB4.s b/asm/non_matchings/overlays/actors/ovl_En_Ko/func_80A98DB4.s index 13ee479545..b40c1e6e75 100644 --- a/asm/non_matchings/overlays/actors/ovl_En_Ko/func_80A98DB4.s +++ b/asm/non_matchings/overlays/actors/ovl_En_Ko/func_80A98DB4.s @@ -1,36 +1,36 @@ glabel func_80A98DB4 /* 02004 80A98DB4 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8 -/* 02008 80A98DB8 AFBF0024 */ sw $ra, 0x0024($sp) -/* 0200C 80A98DBC AFB00020 */ sw $s0, 0x0020($sp) +/* 02008 80A98DB8 AFBF0024 */ sw $ra, 0x0024($sp) +/* 0200C 80A98DBC AFB00020 */ sw $s0, 0x0020($sp) /* 02010 80A98DC0 84A200A4 */ lh $v0, 0x00A4($a1) ## 000000A4 /* 02014 80A98DC4 2401005B */ addiu $at, $zero, 0x005B ## $at = 0000005B /* 02018 80A98DC8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 0201C 80A98DCC 10410007 */ beq $v0, $at, .L80A98DEC +/* 0201C 80A98DCC 10410007 */ beq $v0, $at, .L80A98DEC /* 02020 80A98DD0 00A03025 */ or $a2, $a1, $zero ## $a2 = 00000000 /* 02024 80A98DD4 24010055 */ addiu $at, $zero, 0x0055 ## $at = 00000055 -/* 02028 80A98DD8 10410004 */ beq $v0, $at, .L80A98DEC +/* 02028 80A98DD8 10410004 */ beq $v0, $at, .L80A98DEC /* 0202C 80A98DDC 3C01437F */ lui $at, 0x437F ## $at = 437F0000 /* 02030 80A98DE0 44812000 */ mtc1 $at, $f4 ## $f4 = 255.00 -/* 02034 80A98DE4 10000034 */ beq $zero, $zero, .L80A98EB8 +/* 02034 80A98DE4 10000034 */ beq $zero, $zero, .L80A98EB8 /* 02038 80A98DE8 E4840220 */ swc1 $f4, 0x0220($a0) ## 00000220 .L80A98DEC: /* 0203C 80A98DEC 90CE1D6C */ lbu $t6, 0x1D6C($a2) ## 00001D6C -/* 02040 80A98DF0 3C0F8012 */ lui $t7, %hi(D_8011D394) +/* 02040 80A98DF0 3C0F8012 */ lui $t7, %hi(gDbgCamEnabled) /* 02044 80A98DF4 26040024 */ addiu $a0, $s0, 0x0024 ## $a0 = 00000024 -/* 02048 80A98DF8 15C00004 */ bne $t6, $zero, .L80A98E0C +/* 02048 80A98DF8 15C00004 */ bne $t6, $zero, .L80A98E0C /* 0204C 80A98DFC 00000000 */ nop -/* 02050 80A98E00 8DEFD394 */ lw $t7, %lo(D_8011D394)($t7) -/* 02054 80A98E04 51E0000A */ beql $t7, $zero, .L80A98E30 +/* 02050 80A98E00 8DEFD394 */ lw $t7, %lo(gDbgCamEnabled)($t7) +/* 02054 80A98E04 51E0000A */ beql $t7, $zero, .L80A98E30 /* 02058 80A98E08 C6020090 */ lwc1 $f2, 0x0090($s0) ## 00000090 .L80A98E0C: /* 0205C 80A98E0C 0C01DFE4 */ jal Math_Vec3f_DistXYZ - + /* 02060 80A98E10 24C500E0 */ addiu $a1, $a2, 0x00E0 ## $a1 = 000000E0 /* 02064 80A98E14 3C013E80 */ lui $at, 0x3E80 ## $at = 3E800000 /* 02068 80A98E18 44813000 */ mtc1 $at, $f6 ## $f6 = 0.25 /* 0206C 80A98E1C 00000000 */ nop -/* 02070 80A98E20 46060082 */ mul.s $f2, $f0, $f6 -/* 02074 80A98E24 10000003 */ beq $zero, $zero, .L80A98E34 +/* 02070 80A98E20 46060082 */ mul.s $f2, $f0, $f6 +/* 02074 80A98E24 10000003 */ beq $zero, $zero, .L80A98E34 /* 02078 80A98E28 C6080218 */ lwc1 $f8, 0x0218($s0) ## 00000218 /* 0207C 80A98E2C C6020090 */ lwc1 $f2, 0x0090($s0) ## 00000090 .L80A98E30: @@ -38,14 +38,14 @@ glabel func_80A98DB4 .L80A98E34: /* 02084 80A98E34 3C063E99 */ lui $a2, 0x3E99 ## $a2 = 3E990000 /* 02088 80A98E38 34C6999A */ ori $a2, $a2, 0x999A ## $a2 = 3E99999A -/* 0208C 80A98E3C 4602403C */ c.lt.s $f8, $f2 +/* 0208C 80A98E3C 4602403C */ c.lt.s $f8, $f2 /* 02090 80A98E40 26040220 */ addiu $a0, $s0, 0x0220 ## $a0 = 00000220 /* 02094 80A98E44 3C074220 */ lui $a3, 0x4220 ## $a3 = 42200000 /* 02098 80A98E48 3C01437F */ lui $at, 0x437F ## $at = 437F0000 -/* 0209C 80A98E4C 45020005 */ bc1fl .L80A98E64 +/* 0209C 80A98E4C 45020005 */ bc1fl .L80A98E64 /* 020A0 80A98E50 44810000 */ mtc1 $at, $f0 ## $f0 = 255.00 /* 020A4 80A98E54 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00 -/* 020A8 80A98E58 10000004 */ beq $zero, $zero, .L80A98E6C +/* 020A8 80A98E58 10000004 */ beq $zero, $zero, .L80A98E6C /* 020AC 80A98E5C 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 /* 020B0 80A98E60 44810000 */ mtc1 $at, $f0 ## $f0 = 1.00 .L80A98E64: @@ -53,29 +53,29 @@ glabel func_80A98DB4 /* 020B8 80A98E68 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 .L80A98E6C: /* 020BC 80A98E6C 44815000 */ mtc1 $at, $f10 ## $f10 = 1.00 -/* 020C0 80A98E70 44050000 */ mfc1 $a1, $f0 +/* 020C0 80A98E70 44050000 */ mfc1 $a1, $f0 /* 020C4 80A98E74 0C01E0C4 */ jal Math_SmoothScaleMaxMinF - -/* 020C8 80A98E78 E7AA0010 */ swc1 $f10, 0x0010($sp) + +/* 020C8 80A98E78 E7AA0010 */ swc1 $f10, 0x0010($sp) /* 020CC 80A98E7C 3C014120 */ lui $at, 0x4120 ## $at = 41200000 /* 020D0 80A98E80 44819000 */ mtc1 $at, $f18 ## $f18 = 10.00 /* 020D4 80A98E84 C6100220 */ lwc1 $f16, 0x0220($s0) ## 00000220 -/* 020D8 80A98E88 4612803C */ c.lt.s $f16, $f18 +/* 020D8 80A98E88 4612803C */ c.lt.s $f16, $f18 /* 020DC 80A98E8C 00000000 */ nop -/* 020E0 80A98E90 45020007 */ bc1fl .L80A98EB0 +/* 020E0 80A98E90 45020007 */ bc1fl .L80A98EB0 /* 020E4 80A98E94 8E080004 */ lw $t0, 0x0004($s0) ## 00000004 /* 020E8 80A98E98 8E180004 */ lw $t8, 0x0004($s0) ## 00000004 /* 020EC 80A98E9C 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE -/* 020F0 80A98EA0 0301C824 */ and $t9, $t8, $at -/* 020F4 80A98EA4 10000004 */ beq $zero, $zero, .L80A98EB8 +/* 020F0 80A98EA0 0301C824 */ and $t9, $t8, $at +/* 020F4 80A98EA4 10000004 */ beq $zero, $zero, .L80A98EB8 /* 020F8 80A98EA8 AE190004 */ sw $t9, 0x0004($s0) ## 00000004 /* 020FC 80A98EAC 8E080004 */ lw $t0, 0x0004($s0) ## 00000004 .L80A98EB0: /* 02100 80A98EB0 35090001 */ ori $t1, $t0, 0x0001 ## $t1 = 00000001 /* 02104 80A98EB4 AE090004 */ sw $t1, 0x0004($s0) ## 00000004 .L80A98EB8: -/* 02108 80A98EB8 8FBF0024 */ lw $ra, 0x0024($sp) -/* 0210C 80A98EBC 8FB00020 */ lw $s0, 0x0020($sp) +/* 02108 80A98EB8 8FBF0024 */ lw $ra, 0x0024($sp) +/* 0210C 80A98EBC 8FB00020 */ lw $s0, 0x0020($sp) /* 02110 80A98EC0 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000 -/* 02114 80A98EC4 03E00008 */ jr $ra +/* 02114 80A98EC4 03E00008 */ jr $ra /* 02118 80A98EC8 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ta/func_80B14E28.s b/asm/non_matchings/overlays/actors/ovl_En_Ta/func_80B14E28.s index 0d43808ad2..3e3700f539 100644 --- a/asm/non_matchings/overlays/actors/ovl_En_Ta/func_80B14E28.s +++ b/asm/non_matchings/overlays/actors/ovl_En_Ta/func_80B14E28.s @@ -42,7 +42,7 @@ glabel func_80B14E28 /* 01414 80B14EB4 862502D0 */ lh $a1, 0x02D0($s1) ## 000002D0 /* 01418 80B14EB8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 /* 0141C 80B14EBC 27A60020 */ addiu $a2, $sp, 0x0020 ## $a2 = FFFFFFE8 -/* 01420 80B14EC0 0C030136 */ jal func_800C04D8 +/* 01420 80B14EC0 0C030136 */ jal Gameplay_CameraSetAtEye /* 01424 80B14EC4 27A7002C */ addiu $a3, $sp, 0x002C ## $a3 = FFFFFFF4 /* 01428 80B14EC8 8FBF001C */ lw $ra, 0x001C($sp) /* 0142C 80B14ECC 8FB00014 */ lw $s0, 0x0014($sp) diff --git a/asm/non_matchings/overlays/actors/ovl_En_Tr/func_80B23D74.s b/asm/non_matchings/overlays/actors/ovl_En_Tr/func_80B23D74.s index b82c091792..45e7425b3b 100644 --- a/asm/non_matchings/overlays/actors/ovl_En_Tr/func_80B23D74.s +++ b/asm/non_matchings/overlays/actors/ovl_En_Tr/func_80B23D74.s @@ -36,7 +36,7 @@ glabel func_80B23D74 /* 0110C 80B23DFC 844B07A0 */ lh $t3, 0x07A0($v0) ## 000007A0 /* 01110 80B23E00 000B6080 */ sll $t4, $t3, 2 /* 01114 80B23E04 004C6821 */ addu $t5, $v0, $t4 -/* 01118 80B23E08 0C016A7D */ jal func_8005A9F4 +/* 01118 80B23E08 0C016A7D */ jal Camera_GetCamDirYaw /* 0111C 80B23E0C 8DA40790 */ lw $a0, 0x0790($t5) ## 00000790 /* 01120 80B23E10 00022400 */ sll $a0, $v0, 16 /* 01124 80B23E14 0C01DE1C */ jal Math_Sins @@ -52,7 +52,7 @@ glabel func_80B23D74 /* 01148 80B23E38 844E07A0 */ lh $t6, 0x07A0($v0) ## 000007A0 /* 0114C 80B23E3C 000E7880 */ sll $t7, $t6, 2 /* 01150 80B23E40 004FC021 */ addu $t8, $v0, $t7 -/* 01154 80B23E44 0C016A7D */ jal func_8005A9F4 +/* 01154 80B23E44 0C016A7D */ jal Camera_GetCamDirYaw /* 01158 80B23E48 8F040790 */ lw $a0, 0x0790($t8) ## 00000790 /* 0115C 80B23E4C 00022400 */ sll $a0, $v0, 16 /* 01160 80B23E50 0C01DE0D */ jal Math_Coss diff --git a/asm/non_matchings/overlays/actors/ovl_En_Vali/func_80B26E9C.s b/asm/non_matchings/overlays/actors/ovl_En_Vali/func_80B26E9C.s index dc811236bd..e654500609 100644 --- a/asm/non_matchings/overlays/actors/ovl_En_Vali/func_80B26E9C.s +++ b/asm/non_matchings/overlays/actors/ovl_En_Vali/func_80B26E9C.s @@ -34,7 +34,7 @@ glabel func_80B26E9C .L80B26F1C: /* 0086C 80B26F1C 000E7880 */ sll $t7, $t6, 2 /* 00870 80B26F20 024FC021 */ addu $t8, $s2, $t7 -/* 00874 80B26F24 0C016A7D */ jal func_8005A9F4 +/* 00874 80B26F24 0C016A7D */ jal Camera_GetCamDirYaw /* 00878 80B26F28 8F040790 */ lw $a0, 0x0790($t8) ## 00000790 /* 0087C 80B26F2C 00022400 */ sll $a0, $v0, 16 /* 00880 80B26F30 0C01DE0D */ jal Math_Coss @@ -44,7 +44,7 @@ glabel func_80B26E9C /* 0088C 80B26F3C 46000587 */ neg.s $f22, $f0 /* 00890 80B26F40 00194080 */ sll $t0, $t9, 2 /* 00894 80B26F44 02484821 */ addu $t1, $s2, $t0 -/* 00898 80B26F48 0C016A7D */ jal func_8005A9F4 +/* 00898 80B26F48 0C016A7D */ jal Camera_GetCamDirYaw /* 0089C 80B26F4C 8D240790 */ lw $a0, 0x0790($t1) ## 00000790 /* 008A0 80B26F50 00022400 */ sll $a0, $v0, 16 /* 008A4 80B26F54 0C01DE1C */ jal Math_Sins diff --git a/asm/non_matchings/overlays/actors/ovl_En_Zl4/func_80B5B7B0.s b/asm/non_matchings/overlays/actors/ovl_En_Zl4/func_80B5B7B0.s index d125292de8..6d45f8d401 100644 --- a/asm/non_matchings/overlays/actors/ovl_En_Zl4/func_80B5B7B0.s +++ b/asm/non_matchings/overlays/actors/ovl_En_Zl4/func_80B5B7B0.s @@ -1,22 +1,22 @@ glabel func_80B5B7B0 /* 00000 80B5B7B0 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8 -/* 00004 80B5B7B4 AFBF0014 */ sw $ra, 0x0014($sp) -/* 00008 80B5B7B8 AFA5002C */ sw $a1, 0x002C($sp) +/* 00004 80B5B7B4 AFBF0014 */ sw $ra, 0x0014($sp) +/* 00008 80B5B7B8 AFA5002C */ sw $a1, 0x002C($sp) /* 0000C 80B5B7BC 848E07A0 */ lh $t6, 0x07A0($a0) ## 000007A0 /* 00010 80B5B7C0 24050021 */ addiu $a1, $zero, 0x0021 ## $a1 = 00000021 -/* 00014 80B5B7C4 000E7880 */ sll $t7, $t6, 2 -/* 00018 80B5B7C8 008FC021 */ addu $t8, $a0, $t7 +/* 00014 80B5B7C4 000E7880 */ sll $t7, $t6, 2 +/* 00018 80B5B7C8 008FC021 */ addu $t8, $a0, $t7 /* 0001C 80B5B7CC 8F040790 */ lw $a0, 0x0790($t8) ## 00000790 -/* 00020 80B5B7D0 0C0169DF */ jal func_8005A77C -/* 00024 80B5B7D4 AFA40024 */ sw $a0, 0x0024($sp) -/* 00028 80B5B7D8 87B9002E */ lh $t9, 0x002E($sp) +/* 00020 80B5B7D0 0C0169DF */ jal Camera_ChangeSetting +/* 00024 80B5B7D4 AFA40024 */ sw $a0, 0x0024($sp) +/* 00028 80B5B7D8 87B9002E */ lh $t9, 0x002E($sp) /* 0002C 80B5B7DC 3C0980B6 */ lui $t1, %hi(D_80B5EAE8) ## $t1 = 80B60000 /* 00030 80B5B7E0 2529EAE8 */ addiu $t1, $t1, %lo(D_80B5EAE8) ## $t1 = 80B5EAE8 -/* 00034 80B5B7E4 001940C0 */ sll $t0, $t9, 3 -/* 00038 80B5B7E8 01194023 */ subu $t0, $t0, $t9 -/* 0003C 80B5B7EC 00084080 */ sll $t0, $t0, 2 -/* 00040 80B5B7F0 01091021 */ addu $v0, $t0, $t1 -/* 00044 80B5B7F4 8FA40024 */ lw $a0, 0x0024($sp) +/* 00034 80B5B7E4 001940C0 */ sll $t0, $t9, 3 +/* 00038 80B5B7E8 01194023 */ subu $t0, $t0, $t9 +/* 0003C 80B5B7EC 00084080 */ sll $t0, $t0, 2 +/* 00040 80B5B7F0 01091021 */ addu $v0, $t0, $t1 +/* 00044 80B5B7F4 8FA40024 */ lw $a0, 0x0024($sp) /* 00048 80B5B7F8 8C4B0000 */ lw $t3, 0x0000($v0) ## 00000000 /* 0004C 80B5B7FC 27A30018 */ addiu $v1, $sp, 0x0018 ## $v1 = FFFFFFF0 /* 00050 80B5B800 AC8B0050 */ sw $t3, 0x0050($a0) ## 00000050 @@ -47,9 +47,9 @@ glabel func_80B5B7B0 /* 000B4 80B5B864 8449001A */ lh $t1, 0x001A($v0) ## 0000001A /* 000B8 80B5B868 44892000 */ mtc1 $t1, $f4 ## $f4 = -0.00 /* 000BC 80B5B86C 00000000 */ nop -/* 000C0 80B5B870 468021A0 */ cvt.s.w $f6, $f4 +/* 000C0 80B5B870 468021A0 */ cvt.s.w $f6, $f4 /* 000C4 80B5B874 E48600FC */ swc1 $f6, 0x00FC($a0) ## 000000FC -/* 000C8 80B5B878 8FBF0014 */ lw $ra, 0x0014($sp) +/* 000C8 80B5B878 8FBF0014 */ lw $ra, 0x0014($sp) /* 000CC 80B5B87C 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000 -/* 000D0 80B5B880 03E00008 */ jr $ra +/* 000D0 80B5B880 03E00008 */ jr $ra /* 000D4 80B5B884 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Zl4/func_80B5B888.s b/asm/non_matchings/overlays/actors/ovl_En_Zl4/func_80B5B888.s index def67f6466..e94076f910 100644 --- a/asm/non_matchings/overlays/actors/ovl_En_Zl4/func_80B5B888.s +++ b/asm/non_matchings/overlays/actors/ovl_En_Zl4/func_80B5B888.s @@ -1,34 +1,34 @@ glabel func_80B5B888 /* 000D8 80B5B888 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8 -/* 000DC 80B5B88C AFBF001C */ sw $ra, 0x001C($sp) -/* 000E0 80B5B890 AFA5002C */ sw $a1, 0x002C($sp) +/* 000DC 80B5B88C AFBF001C */ sw $ra, 0x001C($sp) +/* 000E0 80B5B890 AFA5002C */ sw $a1, 0x002C($sp) /* 000E4 80B5B894 848E07A0 */ lh $t6, 0x07A0($a0) ## 000007A0 /* 000E8 80B5B898 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000 /* 000EC 80B5B89C 8CD91C44 */ lw $t9, 0x1C44($a2) ## 00001C44 -/* 000F0 80B5B8A0 000E7880 */ sll $t7, $t6, 2 -/* 000F4 80B5B8A4 008FC021 */ addu $t8, $a0, $t7 +/* 000F0 80B5B8A0 000E7880 */ sll $t7, $t6, 2 +/* 000F4 80B5B8A4 008FC021 */ addu $t8, $a0, $t7 /* 000F8 80B5B8A8 8F040790 */ lw $a0, 0x0790($t8) ## 00000790 /* 000FC 80B5B8AC 24050025 */ addiu $a1, $zero, 0x0025 ## $a1 = 00000025 -/* 00100 80B5B8B0 AFB90020 */ sw $t9, 0x0020($sp) -/* 00104 80B5B8B4 0C0169DF */ jal func_8005A77C -/* 00108 80B5B8B8 AFA40024 */ sw $a0, 0x0024($sp) -/* 0010C 80B5B8BC 0C016B18 */ jal func_8005AC60 -/* 00110 80B5B8C0 8FA40024 */ lw $a0, 0x0024($sp) -/* 00114 80B5B8C4 87A8002E */ lh $t0, 0x002E($sp) +/* 00100 80B5B8B0 AFB90020 */ sw $t9, 0x0020($sp) +/* 00104 80B5B8B4 0C0169DF */ jal Camera_ChangeSetting +/* 00108 80B5B8B8 AFA40024 */ sw $a0, 0x0024($sp) +/* 0010C 80B5B8BC 0C016B18 */ jal Camera_ResetAnim +/* 00110 80B5B8C0 8FA40024 */ lw $a0, 0x0024($sp) +/* 00114 80B5B8C4 87A8002E */ lh $t0, 0x002E($sp) /* 00118 80B5B8C8 3C0A80B6 */ lui $t2, %hi(D_80B5FA90) ## $t2 = 80B60000 /* 0011C 80B5B8CC 254AFA90 */ addiu $t2, $t2, %lo(D_80B5FA90) ## $t2 = 80B5FA90 -/* 00120 80B5B8D0 00084880 */ sll $t1, $t0, 2 -/* 00124 80B5B8D4 01284823 */ subu $t1, $t1, $t0 -/* 00128 80B5B8D8 00094880 */ sll $t1, $t1, 2 -/* 0012C 80B5B8DC 012A1021 */ addu $v0, $t1, $t2 +/* 00120 80B5B8D0 00084880 */ sll $t1, $t0, 2 +/* 00124 80B5B8D4 01284823 */ subu $t1, $t1, $t0 +/* 00128 80B5B8D8 00094880 */ sll $t1, $t1, 2 +/* 0012C 80B5B8DC 012A1021 */ addu $v0, $t1, $t2 /* 00130 80B5B8E0 844B0008 */ lh $t3, 0x0008($v0) ## 00000008 /* 00134 80B5B8E4 8C450000 */ lw $a1, 0x0000($v0) ## 00000000 /* 00138 80B5B8E8 8C460004 */ lw $a2, 0x0004($v0) ## 00000004 -/* 0013C 80B5B8EC 8FA40024 */ lw $a0, 0x0024($sp) -/* 00140 80B5B8F0 8FA70020 */ lw $a3, 0x0020($sp) -/* 00144 80B5B8F4 0C016B1B */ jal func_8005AC6C -/* 00148 80B5B8F8 AFAB0010 */ sw $t3, 0x0010($sp) -/* 0014C 80B5B8FC 8FBF001C */ lw $ra, 0x001C($sp) +/* 0013C 80B5B8EC 8FA40024 */ lw $a0, 0x0024($sp) +/* 00140 80B5B8F0 8FA70020 */ lw $a3, 0x0020($sp) +/* 00144 80B5B8F4 0C016B1B */ jal Camera_SetCSParams +/* 00148 80B5B8F8 AFAB0010 */ sw $t3, 0x0010($sp) +/* 0014C 80B5B8FC 8FBF001C */ lw $ra, 0x001C($sp) /* 00150 80B5B900 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000 -/* 00154 80B5B904 03E00008 */ jr $ra +/* 00154 80B5B904 03E00008 */ jr $ra /* 00158 80B5B908 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Zl4/func_80B5DAD8.s b/asm/non_matchings/overlays/actors/ovl_En_Zl4/func_80B5DAD8.s index 3cdf270cec..244557c8a0 100644 --- a/asm/non_matchings/overlays/actors/ovl_En_Zl4/func_80B5DAD8.s +++ b/asm/non_matchings/overlays/actors/ovl_En_Zl4/func_80B5DAD8.s @@ -12,32 +12,32 @@ glabel jtbl_80B5FCC0 .text glabel func_80B5DAD8 /* 02328 80B5DAD8 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8 -/* 0232C 80B5DADC AFBF0024 */ sw $ra, 0x0024($sp) -/* 02330 80B5DAE0 AFB10020 */ sw $s1, 0x0020($sp) -/* 02334 80B5DAE4 AFB0001C */ sw $s0, 0x001C($sp) +/* 0232C 80B5DADC AFBF0024 */ sw $ra, 0x0024($sp) +/* 02330 80B5DAE0 AFB10020 */ sw $s1, 0x0020($sp) +/* 02334 80B5DAE4 AFB0001C */ sw $s0, 0x001C($sp) /* 02338 80B5DAE8 90830208 */ lbu $v1, 0x0208($a0) ## 00000208 /* 0233C 80B5DAEC 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 /* 02340 80B5DAF0 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000 -/* 02344 80B5DAF4 2C610008 */ sltiu $at, $v1, 0x0008 -/* 02348 80B5DAF8 102000BD */ beq $at, $zero, .L80B5DDF0 -/* 0234C 80B5DAFC 00037080 */ sll $t6, $v1, 2 +/* 02344 80B5DAF4 2C610008 */ sltiu $at, $v1, 0x0008 +/* 02348 80B5DAF8 102000BD */ beq $at, $zero, .L80B5DDF0 +/* 0234C 80B5DAFC 00037080 */ sll $t6, $v1, 2 /* 02350 80B5DB00 3C0180B6 */ lui $at, %hi(jtbl_80B5FCC0) ## $at = 80B60000 -/* 02354 80B5DB04 002E0821 */ addu $at, $at, $t6 -/* 02358 80B5DB08 8C2EFCC0 */ lw $t6, %lo(jtbl_80B5FCC0)($at) -/* 0235C 80B5DB0C 01C00008 */ jr $t6 +/* 02354 80B5DB04 002E0821 */ addu $at, $at, $t6 +/* 02358 80B5DB08 8C2EFCC0 */ lw $t6, %lo(jtbl_80B5FCC0)($at) +/* 0235C 80B5DB0C 01C00008 */ jr $t6 /* 02360 80B5DB10 00000000 */ nop glabel L80B5DB14 /* 02364 80B5DB14 3C0580B6 */ lui $a1, %hi(D_80B5E7B8) ## $a1 = 80B60000 /* 02368 80B5DB18 24A5E7B8 */ addiu $a1, $a1, %lo(D_80B5E7B8) ## $a1 = 80B5E7B8 /* 0236C 80B5DB1C 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C -/* 02370 80B5DB20 0C00D3B0 */ jal func_80034EC0 +/* 02370 80B5DB20 0C00D3B0 */ jal func_80034EC0 /* 02374 80B5DB24 24060012 */ addiu $a2, $zero, 0x0012 ## $a2 = 00000012 /* 02378 80B5DB28 240F0002 */ addiu $t7, $zero, 0x0002 ## $t7 = 00000002 /* 0237C 80B5DB2C A6000210 */ sh $zero, 0x0210($s0) ## 00000210 /* 02380 80B5DB30 A200020D */ sb $zero, 0x020D($s0) ## 0000020D /* 02384 80B5DB34 A20F020E */ sb $t7, 0x020E($s0) ## 0000020E /* 02388 80B5DB38 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 0238C 80B5DB3C 0C2D6E22 */ jal func_80B5B888 +/* 0238C 80B5DB3C 0C2D6E22 */ jal func_80B5B888 /* 02390 80B5DB40 2405000A */ addiu $a1, $zero, 0x000A ## $a1 = 0000000A /* 02394 80B5DB44 92180208 */ lbu $t8, 0x0208($s0) ## 00000208 /* 02398 80B5DB48 A6000214 */ sh $zero, 0x0214($s0) ## 00000214 @@ -50,33 +50,33 @@ glabel L80B5DB54 /* 023B0 80B5DB60 25090001 */ addiu $t1, $t0, 0x0001 ## $t1 = 00000001 /* 023B4 80B5DB64 A6090214 */ sh $t1, 0x0214($s0) ## 00000214 /* 023B8 80B5DB68 860A0214 */ lh $t2, 0x0214($s0) ## 00000214 -/* 023BC 80B5DB6C 2941000A */ slti $at, $t2, 0x000A -/* 023C0 80B5DB70 14200006 */ bne $at, $zero, .L80B5DB8C +/* 023BC 80B5DB6C 2941000A */ slti $at, $t2, 0x000A +/* 023C0 80B5DB70 14200006 */ bne $at, $zero, .L80B5DB8C /* 023C4 80B5DB74 00000000 */ nop -/* 023C8 80B5DB78 0C042DA0 */ jal func_8010B680 +/* 023C8 80B5DB78 0C042DA0 */ jal func_8010B680 /* 023CC 80B5DB7C 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000 /* 023D0 80B5DB80 920B0208 */ lbu $t3, 0x0208($s0) ## 00000208 /* 023D4 80B5DB84 256C0001 */ addiu $t4, $t3, 0x0001 ## $t4 = 00000001 /* 023D8 80B5DB88 A20C0208 */ sb $t4, 0x0208($s0) ## 00000208 .L80B5DB8C: -/* 023DC 80B5DB8C 10000098 */ beq $zero, $zero, .L80B5DDF0 +/* 023DC 80B5DB8C 10000098 */ beq $zero, $zero, .L80B5DDF0 /* 023E0 80B5DB90 92030208 */ lbu $v1, 0x0208($s0) ## 00000208 glabel L80B5DB94 -/* 023E4 80B5DB94 0C042F6F */ jal func_8010BDBC +/* 023E4 80B5DB94 0C042F6F */ jal func_8010BDBC /* 023E8 80B5DB98 262420D8 */ addiu $a0, $s1, 0x20D8 ## $a0 = 000020D8 /* 023EC 80B5DB9C 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005 -/* 023F0 80B5DBA0 14410017 */ bne $v0, $at, .L80B5DC00 +/* 023F0 80B5DBA0 14410017 */ bne $v0, $at, .L80B5DC00 /* 023F4 80B5DBA4 00000000 */ nop -/* 023F8 80B5DBA8 0C041AF2 */ jal func_80106BC8 +/* 023F8 80B5DBA8 0C041AF2 */ jal func_80106BC8 /* 023FC 80B5DBAC 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 02400 80B5DBB0 10400013 */ beq $v0, $zero, .L80B5DC00 +/* 02400 80B5DBB0 10400013 */ beq $v0, $zero, .L80B5DC00 /* 02404 80B5DBB4 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 02408 80B5DBB8 0C2D6DEC */ jal func_80B5B7B0 +/* 02408 80B5DBB8 0C2D6DEC */ jal func_80B5B7B0 /* 0240C 80B5DBBC 2405000D */ addiu $a1, $zero, 0x000D ## $a1 = 0000000D /* 02410 80B5DBC0 3C0580B6 */ lui $a1, %hi(D_80B5E7B8) ## $a1 = 80B60000 /* 02414 80B5DBC4 24A5E7B8 */ addiu $a1, $a1, %lo(D_80B5E7B8) ## $a1 = 80B5E7B8 /* 02418 80B5DBC8 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C -/* 0241C 80B5DBCC 0C00D3B0 */ jal func_80034EC0 +/* 0241C 80B5DBCC 0C00D3B0 */ jal func_80034EC0 /* 02420 80B5DBD0 24060013 */ addiu $a2, $zero, 0x0013 ## $a2 = 00000013 /* 02424 80B5DBD4 240D0003 */ addiu $t5, $zero, 0x0003 ## $t5 = 00000003 /* 02428 80B5DBD8 A6000210 */ sh $zero, 0x0210($s0) ## 00000210 @@ -84,41 +84,41 @@ glabel L80B5DB94 /* 02430 80B5DBE0 A20D020E */ sb $t5, 0x020E($s0) ## 0000020E /* 02434 80B5DBE4 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 /* 02438 80B5DBE8 2405207C */ addiu $a1, $zero, 0x207C ## $a1 = 0000207C -/* 0243C 80B5DBEC 0C042DA0 */ jal func_8010B680 +/* 0243C 80B5DBEC 0C042DA0 */ jal func_8010B680 /* 02440 80B5DBF0 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000 /* 02444 80B5DBF4 920E0208 */ lbu $t6, 0x0208($s0) ## 00000208 /* 02448 80B5DBF8 25CF0001 */ addiu $t7, $t6, 0x0001 ## $t7 = 00000001 /* 0244C 80B5DBFC A20F0208 */ sb $t7, 0x0208($s0) ## 00000208 .L80B5DC00: -/* 02450 80B5DC00 1000007B */ beq $zero, $zero, .L80B5DDF0 +/* 02450 80B5DC00 1000007B */ beq $zero, $zero, .L80B5DDF0 /* 02454 80B5DC04 92030208 */ lbu $v1, 0x0208($s0) ## 00000208 glabel L80B5DC08 /* 02458 80B5DC08 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 0245C 80B5DC0C 0C2D6FE4 */ jal func_80B5BF90 +/* 0245C 80B5DC0C 0C2D6FE4 */ jal func_80B5BF90 /* 02460 80B5DC10 24050014 */ addiu $a1, $zero, 0x0014 ## $a1 = 00000014 -/* 02464 80B5DC14 10400004 */ beq $v0, $zero, .L80B5DC28 +/* 02464 80B5DC14 10400004 */ beq $v0, $zero, .L80B5DC28 /* 02468 80B5DC18 00000000 */ nop /* 0246C 80B5DC1C 92180208 */ lbu $t8, 0x0208($s0) ## 00000208 /* 02470 80B5DC20 27190001 */ addiu $t9, $t8, 0x0001 ## $t9 = 00000001 /* 02474 80B5DC24 A2190208 */ sb $t9, 0x0208($s0) ## 00000208 glabel L80B5DC28 .L80B5DC28: -/* 02478 80B5DC28 0C042F6F */ jal func_8010BDBC +/* 02478 80B5DC28 0C042F6F */ jal func_8010BDBC /* 0247C 80B5DC2C 262420D8 */ addiu $a0, $s1, 0x20D8 ## $a0 = 000020D8 /* 02480 80B5DC30 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005 -/* 02484 80B5DC34 14410015 */ bne $v0, $at, .L80B5DC8C +/* 02484 80B5DC34 14410015 */ bne $v0, $at, .L80B5DC8C /* 02488 80B5DC38 00000000 */ nop -/* 0248C 80B5DC3C 0C041AF2 */ jal func_80106BC8 +/* 0248C 80B5DC3C 0C041AF2 */ jal func_80106BC8 /* 02490 80B5DC40 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 02494 80B5DC44 10400011 */ beq $v0, $zero, .L80B5DC8C +/* 02494 80B5DC44 10400011 */ beq $v0, $zero, .L80B5DC8C /* 02498 80B5DC48 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 /* 0249C 80B5DC4C 2405207D */ addiu $a1, $zero, 0x207D ## $a1 = 0000207D -/* 024A0 80B5DC50 0C042DA0 */ jal func_8010B680 +/* 024A0 80B5DC50 0C042DA0 */ jal func_8010B680 /* 024A4 80B5DC54 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000 /* 024A8 80B5DC58 3C0580B6 */ lui $a1, %hi(D_80B5E7B8) ## $a1 = 80B60000 /* 024AC 80B5DC5C 24A5E7B8 */ addiu $a1, $a1, %lo(D_80B5E7B8) ## $a1 = 80B5E7B8 /* 024B0 80B5DC60 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C -/* 024B4 80B5DC64 0C00D3B0 */ jal func_80034EC0 +/* 024B4 80B5DC64 0C00D3B0 */ jal func_80034EC0 /* 024B8 80B5DC68 24060007 */ addiu $a2, $zero, 0x0007 ## $a2 = 00000007 /* 024BC 80B5DC6C A6000216 */ sh $zero, 0x0216($s0) ## 00000216 /* 024C0 80B5DC70 86090216 */ lh $t1, 0x0216($s0) ## 00000216 @@ -129,113 +129,113 @@ glabel L80B5DC28 /* 024D4 80B5DC84 A2080208 */ sb $t0, 0x0208($s0) ## 00000208 /* 024D8 80B5DC88 A209020F */ sb $t1, 0x020F($s0) ## 0000020F .L80B5DC8C: -/* 024DC 80B5DC8C 10000058 */ beq $zero, $zero, .L80B5DDF0 +/* 024DC 80B5DC8C 10000058 */ beq $zero, $zero, .L80B5DDF0 /* 024E0 80B5DC90 92030208 */ lbu $v1, 0x0208($s0) ## 00000208 glabel L80B5DC94 /* 024E4 80B5DC94 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 024E8 80B5DC98 0C2D6FE4 */ jal func_80B5BF90 +/* 024E8 80B5DC98 0C2D6FE4 */ jal func_80B5BF90 /* 024EC 80B5DC9C 24050008 */ addiu $a1, $zero, 0x0008 ## $a1 = 00000008 -/* 024F0 80B5DCA0 10400004 */ beq $v0, $zero, .L80B5DCB4 +/* 024F0 80B5DCA0 10400004 */ beq $v0, $zero, .L80B5DCB4 /* 024F4 80B5DCA4 00000000 */ nop /* 024F8 80B5DCA8 920A0208 */ lbu $t2, 0x0208($s0) ## 00000208 /* 024FC 80B5DCAC 254B0001 */ addiu $t3, $t2, 0x0001 ## $t3 = 00000001 /* 02500 80B5DCB0 A20B0208 */ sb $t3, 0x0208($s0) ## 00000208 glabel L80B5DCB4 .L80B5DCB4: -/* 02504 80B5DCB4 0C042F6F */ jal func_8010BDBC +/* 02504 80B5DCB4 0C042F6F */ jal func_8010BDBC /* 02508 80B5DCB8 262420D8 */ addiu $a0, $s1, 0x20D8 ## $a0 = 000020D8 /* 0250C 80B5DCBC 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005 -/* 02510 80B5DCC0 14410005 */ bne $v0, $at, .L80B5DCD8 +/* 02510 80B5DCC0 14410005 */ bne $v0, $at, .L80B5DCD8 /* 02514 80B5DCC4 00000000 */ nop -/* 02518 80B5DCC8 0C041AF2 */ jal func_80106BC8 +/* 02518 80B5DCC8 0C041AF2 */ jal func_80106BC8 /* 0251C 80B5DCCC 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 02520 80B5DCD0 54400004 */ bnel $v0, $zero, .L80B5DCE4 +/* 02520 80B5DCD0 54400004 */ bnel $v0, $zero, .L80B5DCE4 /* 02524 80B5DCD4 862C07A0 */ lh $t4, 0x07A0($s1) ## 000007A0 .L80B5DCD8: -/* 02528 80B5DCD8 10000045 */ beq $zero, $zero, .L80B5DDF0 +/* 02528 80B5DCD8 10000045 */ beq $zero, $zero, .L80B5DDF0 /* 0252C 80B5DCDC 92030208 */ lbu $v1, 0x0208($s0) ## 00000208 /* 02530 80B5DCE0 862C07A0 */ lh $t4, 0x07A0($s1) ## 000007A0 .L80B5DCE4: /* 02534 80B5DCE4 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001 -/* 02538 80B5DCE8 000C6880 */ sll $t5, $t4, 2 -/* 0253C 80B5DCEC 022D7021 */ addu $t6, $s1, $t5 -/* 02540 80B5DCF0 0C0169DF */ jal func_8005A77C +/* 02538 80B5DCE8 000C6880 */ sll $t5, $t4, 2 +/* 0253C 80B5DCEC 022D7021 */ addu $t6, $s1, $t5 +/* 02540 80B5DCF0 0C0169DF */ jal Camera_ChangeSetting /* 02544 80B5DCF4 8DC40790 */ lw $a0, 0x0790($t6) ## 00000790 /* 02548 80B5DCF8 240F0007 */ addiu $t7, $zero, 0x0007 ## $t7 = 00000007 /* 0254C 80B5DCFC 3C190001 */ lui $t9, 0x0001 ## $t9 = 00010000 /* 02550 80B5DD00 A20F0208 */ sb $t7, 0x0208($s0) ## 00000208 -/* 02554 80B5DD04 0331C821 */ addu $t9, $t9, $s1 +/* 02554 80B5DD04 0331C821 */ addu $t9, $t9, $s1 /* 02558 80B5DD08 8F391D5C */ lw $t9, 0x1D5C($t9) ## 00011D5C /* 0255C 80B5DD0C 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 /* 02560 80B5DD10 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 02564 80B5DD14 0320F809 */ jalr $ra, $t9 +/* 02564 80B5DD14 0320F809 */ jalr $ra, $t9 /* 02568 80B5DD18 00000000 */ nop /* 0256C 80B5DD1C C6120090 */ lwc1 $f18, 0x0090($s0) ## 00000090 /* 02570 80B5DD20 C6100094 */ lwc1 $f16, 0x0094($s0) ## 00000094 /* 02574 80B5DD24 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 /* 02578 80B5DD28 44817000 */ mtc1 $at, $f14 ## $f14 = 1.00 -/* 0257C 80B5DD2C 46009485 */ abs.s $f18, $f18 -/* 02580 80B5DD30 46008405 */ abs.s $f16, $f16 -/* 02584 80B5DD34 460E9480 */ add.s $f18, $f18, $f14 +/* 0257C 80B5DD2C 46009485 */ abs.s $f18, $f18 +/* 02580 80B5DD30 46008405 */ abs.s $f16, $f16 +/* 02584 80B5DD34 460E9480 */ add.s $f18, $f18, $f14 /* 02588 80B5DD38 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 /* 0258C 80B5DD3C 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 02590 80B5DD40 460E8380 */ add.s $f14, $f16, $f14 -/* 02594 80B5DD44 44079000 */ mfc1 $a3, $f18 +/* 02590 80B5DD40 460E8380 */ add.s $f14, $f16, $f14 +/* 02594 80B5DD44 44079000 */ mfc1 $a3, $f18 /* 02598 80B5DD48 2406000B */ addiu $a2, $zero, 0x000B ## $a2 = 0000000B -/* 0259C 80B5DD4C 0C00BD0D */ jal func_8002F434 -/* 025A0 80B5DD50 E7AE0010 */ swc1 $f14, 0x0010($sp) +/* 0259C 80B5DD4C 0C00BD0D */ jal func_8002F434 +/* 025A0 80B5DD50 E7AE0010 */ swc1 $f14, 0x0010($sp) /* 025A4 80B5DD54 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 025A8 80B5DD58 00310821 */ addu $at, $at, $s1 +/* 025A8 80B5DD58 00310821 */ addu $at, $at, $s1 /* 025AC 80B5DD5C 24180004 */ addiu $t8, $zero, 0x0004 ## $t8 = 00000004 /* 025B0 80B5DD60 A03804BF */ sb $t8, 0x04BF($at) ## 000104BF /* 025B4 80B5DD64 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 025B8 80B5DD68 00310821 */ addu $at, $at, $s1 +/* 025B8 80B5DD68 00310821 */ addu $at, $at, $s1 /* 025BC 80B5DD6C 24080036 */ addiu $t0, $zero, 0x0036 ## $t0 = 00000036 /* 025C0 80B5DD70 A02803DC */ sb $t0, 0x03DC($at) ## 000103DC -/* 025C4 80B5DD74 1000001E */ beq $zero, $zero, .L80B5DDF0 +/* 025C4 80B5DD74 1000001E */ beq $zero, $zero, .L80B5DDF0 /* 025C8 80B5DD78 92030208 */ lbu $v1, 0x0208($s0) ## 00000208 glabel L80B5DD7C /* 025CC 80B5DD7C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 /* 025D0 80B5DD80 0C00BD04 */ jal Actor_HasParent /* 025D4 80B5DD84 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 025D8 80B5DD88 1040000A */ beq $v0, $zero, .L80B5DDB4 +/* 025D8 80B5DD88 1040000A */ beq $v0, $zero, .L80B5DDB4 /* 025DC 80B5DD8C 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C /* 025E0 80B5DD90 3C0580B6 */ lui $a1, %hi(D_80B5E7B8) ## $a1 = 80B60000 /* 025E4 80B5DD94 24A5E7B8 */ addiu $a1, $a1, %lo(D_80B5E7B8) ## $a1 = 80B5E7B8 -/* 025E8 80B5DD98 0C00D3B0 */ jal func_80034EC0 +/* 025E8 80B5DD98 0C00D3B0 */ jal func_80034EC0 /* 025EC 80B5DD9C 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000 /* 025F0 80B5DDA0 92090208 */ lbu $t1, 0x0208($s0) ## 00000208 /* 025F4 80B5DDA4 252A0001 */ addiu $t2, $t1, 0x0001 ## $t2 = 00000001 /* 025F8 80B5DDA8 A20A0208 */ sb $t2, 0x0208($s0) ## 00000208 -/* 025FC 80B5DDAC 10000010 */ beq $zero, $zero, .L80B5DDF0 +/* 025FC 80B5DDAC 10000010 */ beq $zero, $zero, .L80B5DDF0 /* 02600 80B5DDB0 314300FF */ andi $v1, $t2, 0x00FF ## $v1 = 00000001 .L80B5DDB4: /* 02604 80B5DDB4 C6120090 */ lwc1 $f18, 0x0090($s0) ## 00000090 /* 02608 80B5DDB8 C6100094 */ lwc1 $f16, 0x0094($s0) ## 00000094 /* 0260C 80B5DDBC 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 /* 02610 80B5DDC0 44817000 */ mtc1 $at, $f14 ## $f14 = 1.00 -/* 02614 80B5DDC4 46009485 */ abs.s $f18, $f18 -/* 02618 80B5DDC8 46008405 */ abs.s $f16, $f16 -/* 0261C 80B5DDCC 460E9480 */ add.s $f18, $f18, $f14 +/* 02614 80B5DDC4 46009485 */ abs.s $f18, $f18 +/* 02618 80B5DDC8 46008405 */ abs.s $f16, $f16 +/* 0261C 80B5DDCC 460E9480 */ add.s $f18, $f18, $f14 /* 02620 80B5DDD0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 /* 02624 80B5DDD4 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 02628 80B5DDD8 460E8380 */ add.s $f14, $f16, $f14 -/* 0262C 80B5DDDC 44079000 */ mfc1 $a3, $f18 +/* 02628 80B5DDD8 460E8380 */ add.s $f14, $f16, $f14 +/* 0262C 80B5DDDC 44079000 */ mfc1 $a3, $f18 /* 02630 80B5DDE0 2406000B */ addiu $a2, $zero, 0x000B ## $a2 = 0000000B -/* 02634 80B5DDE4 0C00BD0D */ jal func_8002F434 -/* 02638 80B5DDE8 E7AE0010 */ swc1 $f14, 0x0010($sp) +/* 02634 80B5DDE4 0C00BD0D */ jal func_8002F434 +/* 02638 80B5DDE8 E7AE0010 */ swc1 $f14, 0x0010($sp) /* 0263C 80B5DDEC 92030208 */ lbu $v1, 0x0208($s0) ## 00000208 .L80B5DDF0: /* 02640 80B5DDF0 24010008 */ addiu $at, $zero, 0x0008 ## $at = 00000008 -/* 02644 80B5DDF4 14610003 */ bne $v1, $at, .L80B5DE04 -/* 02648 80B5DDF8 8FB0001C */ lw $s0, 0x001C($sp) -/* 0264C 80B5DDFC 10000002 */ beq $zero, $zero, .L80B5DE08 +/* 02644 80B5DDF4 14610003 */ bne $v1, $at, .L80B5DE04 +/* 02648 80B5DDF8 8FB0001C */ lw $s0, 0x001C($sp) +/* 0264C 80B5DDFC 10000002 */ beq $zero, $zero, .L80B5DE08 /* 02650 80B5DE00 24030001 */ addiu $v1, $zero, 0x0001 ## $v1 = 00000001 .L80B5DE04: /* 02654 80B5DE04 00001825 */ or $v1, $zero, $zero ## $v1 = 00000000 .L80B5DE08: -/* 02658 80B5DE08 8FBF0024 */ lw $ra, 0x0024($sp) -/* 0265C 80B5DE0C 8FB10020 */ lw $s1, 0x0020($sp) +/* 02658 80B5DE08 8FBF0024 */ lw $ra, 0x0024($sp) +/* 0265C 80B5DE0C 8FB10020 */ lw $s1, 0x0020($sp) /* 02660 80B5DE10 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000 -/* 02664 80B5DE14 03E00008 */ jr $ra +/* 02664 80B5DE14 03E00008 */ jr $ra /* 02668 80B5DE18 00601025 */ or $v0, $v1, $zero ## $v0 = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_En_fHG/func_80B62B6C.s b/asm/non_matchings/overlays/actors/ovl_En_fHG/func_80B62B6C.s index ea1e9ba871..cf31e6d243 100644 --- a/asm/non_matchings/overlays/actors/ovl_En_fHG/func_80B62B6C.s +++ b/asm/non_matchings/overlays/actors/ovl_En_fHG/func_80B62B6C.s @@ -1327,7 +1327,7 @@ glabel L80B63D54 /* 0139C 80B63D5C 2606015C */ addiu $a2, $s0, 0x015C ## $a2 = 0000015C /* 013A0 80B63D60 50A00004 */ beql $a1, $zero, .L80B63D74 /* 013A4 80B63D64 8FBF003C */ lw $ra, 0x003C($sp) -/* 013A8 80B63D68 0C030136 */ jal func_800C04D8 +/* 013A8 80B63D68 0C030136 */ jal Gameplay_CameraSetAtEye /* 013AC 80B63D6C 26070150 */ addiu $a3, $s0, 0x0150 ## $a3 = 00000150 /* 013B0 80B63D70 8FBF003C */ lw $ra, 0x003C($sp) .L80B63D74: diff --git a/asm/non_matchings/overlays/actors/ovl_Fishing/func_80B7825C.s b/asm/non_matchings/overlays/actors/ovl_Fishing/func_80B7825C.s index e1f13e2fe1..9b60771ec2 100644 --- a/asm/non_matchings/overlays/actors/ovl_Fishing/func_80B7825C.s +++ b/asm/non_matchings/overlays/actors/ovl_Fishing/func_80B7825C.s @@ -1438,7 +1438,7 @@ glabel L80B7955C /* 0FBCC 80B7956C 3C0780B8 */ lui $a3, %hi(D_80B7FEA8) ## $a3 = 80B80000 /* 0FBD0 80B79570 24E7FEA8 */ addiu $a3, $a3, %lo(D_80B7FEA8) ## $a3 = 80B7FEA8 /* 0FBD4 80B79574 24C6FEB8 */ addiu $a2, $a2, %lo(D_80B7FEB8) ## $a2 = 80B7FEB8 -/* 0FBD8 80B79578 0C030136 */ jal func_800C04D8 +/* 0FBD8 80B79578 0C030136 */ jal Gameplay_CameraSetAtEye /* 0FBDC 80B7957C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 /* 0FBE0 80B79580 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 /* 0FBE4 80B79584 44810000 */ mtc1 $at, $f0 ## $f0 = 1.00 @@ -1994,7 +1994,7 @@ glabel L80B7955C /* 103BC 80B79D5C 44815000 */ mtc1 $at, $f10 ## $f10 = 1.00 /* 103C0 80B79D60 00402025 */ or $a0, $v0, $zero ## $a0 = 00000000 /* 103C4 80B79D64 E7A40058 */ swc1 $f4, 0x0058($sp) -/* 103C8 80B79D68 0C016A52 */ jal func_8005A948 +/* 103C8 80B79D68 0C016A52 */ jal Camera_GetInputDirYaw /* 103CC 80B79D6C E7AA005C */ swc1 $f10, 0x005C($sp) /* 103D0 80B79D70 44823000 */ mtc1 $v0, $f6 ## $f6 = 0.00 /* 103D4 80B79D74 3C0180B8 */ lui $at, %hi(D_80B7B8DC) ## $at = 80B80000 diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Bean/func_80B906A4.s b/asm/non_matchings/overlays/actors/ovl_Obj_Bean/func_80B906A4.s index 95ab402008..a67606135c 100644 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Bean/func_80B906A4.s +++ b/asm/non_matchings/overlays/actors/ovl_Obj_Bean/func_80B906A4.s @@ -1,31 +1,31 @@ glabel func_80B906A4 /* 01C24 80B906A4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 01C28 80B906A8 AFBF0014 */ sw $ra, 0x0014($sp) -/* 01C2C 80B906AC AFA40018 */ sw $a0, 0x0018($sp) -/* 01C30 80B906B0 0C010D5B */ jal func_8004356C -/* 01C34 80B906B4 AFA5001C */ sw $a1, 0x001C($sp) -/* 01C38 80B906B8 10400010 */ beq $v0, $zero, .L80B906FC +/* 01C28 80B906A8 AFBF0014 */ sw $ra, 0x0014($sp) +/* 01C2C 80B906AC AFA40018 */ sw $a0, 0x0018($sp) +/* 01C30 80B906B0 0C010D5B */ jal func_8004356C +/* 01C34 80B906B4 AFA5001C */ sw $a1, 0x001C($sp) +/* 01C38 80B906B8 10400010 */ beq $v0, $zero, .L80B906FC /* 01C3C 80B906BC 00000000 */ nop -/* 01C40 80B906C0 0C2E41C5 */ jal func_80B90714 -/* 01C44 80B906C4 8FA40018 */ lw $a0, 0x0018($sp) -/* 01C48 80B906C8 8FA3001C */ lw $v1, 0x001C($sp) +/* 01C40 80B906C0 0C2E41C5 */ jal func_80B90714 +/* 01C44 80B906C4 8FA40018 */ lw $a0, 0x0018($sp) +/* 01C48 80B906C8 8FA3001C */ lw $v1, 0x001C($sp) /* 01C4C 80B906CC 2401005B */ addiu $at, $zero, 0x005B ## $at = 0000005B /* 01C50 80B906D0 2405002C */ addiu $a1, $zero, 0x002C ## $a1 = 0000002C /* 01C54 80B906D4 846E00A4 */ lh $t6, 0x00A4($v1) ## 000000A4 -/* 01C58 80B906D8 15C10006 */ bne $t6, $at, .L80B906F4 +/* 01C58 80B906D8 15C10006 */ bne $t6, $at, .L80B906F4 /* 01C5C 80B906DC 00000000 */ nop /* 01C60 80B906E0 8C640790 */ lw $a0, 0x0790($v1) ## 00000790 -/* 01C64 80B906E4 0C0169DF */ jal func_8005A77C +/* 01C64 80B906E4 0C0169DF */ jal Camera_ChangeSetting /* 01C68 80B906E8 2405002D */ addiu $a1, $zero, 0x002D ## $a1 = 0000002D -/* 01C6C 80B906EC 10000003 */ beq $zero, $zero, .L80B906FC +/* 01C6C 80B906EC 10000003 */ beq $zero, $zero, .L80B906FC /* 01C70 80B906F0 00000000 */ nop .L80B906F4: -/* 01C74 80B906F4 0C0169DF */ jal func_8005A77C +/* 01C74 80B906F4 0C0169DF */ jal Camera_ChangeSetting /* 01C78 80B906F8 8C640790 */ lw $a0, 0x0790($v1) ## 00000790 .L80B906FC: -/* 01C7C 80B906FC 0C2E3AF9 */ jal func_80B8EBE4 -/* 01C80 80B90700 8FA40018 */ lw $a0, 0x0018($sp) -/* 01C84 80B90704 8FBF0014 */ lw $ra, 0x0014($sp) +/* 01C7C 80B906FC 0C2E3AF9 */ jal func_80B8EBE4 +/* 01C80 80B90700 8FA40018 */ lw $a0, 0x0018($sp) +/* 01C84 80B90704 8FBF0014 */ lw $ra, 0x0014($sp) /* 01C88 80B90708 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 01C8C 80B9070C 03E00008 */ jr $ra +/* 01C8C 80B9070C 03E00008 */ jr $ra /* 01C90 80B90710 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Bean/func_80B9075C.s b/asm/non_matchings/overlays/actors/ovl_Obj_Bean/func_80B9075C.s index cbb5081f47..49542809e7 100644 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Bean/func_80B9075C.s +++ b/asm/non_matchings/overlays/actors/ovl_Obj_Bean/func_80B9075C.s @@ -1,81 +1,81 @@ glabel func_80B9075C /* 01CDC 80B9075C 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 01CE0 80B90760 AFBF001C */ sw $ra, 0x001C($sp) -/* 01CE4 80B90764 AFB10018 */ sw $s1, 0x0018($sp) -/* 01CE8 80B90768 AFB00014 */ sw $s0, 0x0014($sp) +/* 01CE0 80B90760 AFBF001C */ sw $ra, 0x001C($sp) +/* 01CE4 80B90764 AFB10018 */ sw $s1, 0x0018($sp) +/* 01CE8 80B90768 AFB00014 */ sw $s0, 0x0014($sp) /* 01CEC 80B9076C 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000 -/* 01CF0 80B90770 0C2E3BFD */ jal func_80B8EFF4 +/* 01CF0 80B90770 0C2E3BFD */ jal func_80B8EFF4 /* 01CF4 80B90774 00808825 */ or $s1, $a0, $zero ## $s1 = 00000000 /* 01CF8 80B90778 862E01F0 */ lh $t6, 0x01F0($s1) ## 000001F0 /* 01CFC 80B9077C 862F01F2 */ lh $t7, 0x01F2($s1) ## 000001F2 /* 01D00 80B90780 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 01D04 80B90784 15CF0017 */ bne $t6, $t7, .L80B907E4 +/* 01D04 80B90784 15CF0017 */ bne $t6, $t7, .L80B907E4 /* 01D08 80B90788 00000000 */ nop -/* 01D0C 80B9078C 0C2E3BD1 */ jal func_80B8EF44 +/* 01D0C 80B9078C 0C2E3BD1 */ jal func_80B8EF44 /* 01D10 80B90790 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 /* 01D14 80B90794 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 01D18 80B90798 0C2E3BE0 */ jal func_80B8EF80 +/* 01D18 80B90798 0C2E3BE0 */ jal func_80B8EF80 /* 01D1C 80B9079C 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 01D20 80B907A0 0C2E4221 */ jal func_80B90884 +/* 01D20 80B907A0 0C2E4221 */ jal func_80B90884 /* 01D24 80B907A4 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 /* 01D28 80B907A8 8E380004 */ lw $t8, 0x0004($s1) ## 00000004 /* 01D2C 80B907AC 2401FFEF */ addiu $at, $zero, 0xFFEF ## $at = FFFFFFEF -/* 01D30 80B907B0 0301C824 */ and $t9, $t8, $at +/* 01D30 80B907B0 0301C824 */ and $t9, $t8, $at /* 01D34 80B907B4 AE390004 */ sw $t9, 0x0004($s1) ## 00000004 /* 01D38 80B907B8 8E040790 */ lw $a0, 0x0790($s0) ## 00000790 /* 01D3C 80B907BC 2401002D */ addiu $at, $zero, 0x002D ## $at = 0000002D /* 01D40 80B907C0 84820142 */ lh $v0, 0x0142($a0) ## 00000142 -/* 01D44 80B907C4 10410003 */ beq $v0, $at, .L80B907D4 +/* 01D44 80B907C4 10410003 */ beq $v0, $at, .L80B907D4 /* 01D48 80B907C8 2401002C */ addiu $at, $zero, 0x002C ## $at = 0000002C -/* 01D4C 80B907CC 14410026 */ bne $v0, $at, .L80B90868 +/* 01D4C 80B907CC 14410026 */ bne $v0, $at, .L80B90868 /* 01D50 80B907D0 00000000 */ nop .L80B907D4: -/* 01D54 80B907D4 0C0169DF */ jal func_8005A77C +/* 01D54 80B907D4 0C0169DF */ jal Camera_ChangeSetting /* 01D58 80B907D8 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001 -/* 01D5C 80B907DC 10000022 */ beq $zero, $zero, .L80B90868 +/* 01D5C 80B907DC 10000022 */ beq $zero, $zero, .L80B90868 /* 01D60 80B907E0 00000000 */ nop .L80B907E4: -/* 01D64 80B907E4 0C010D5B */ jal func_8004356C +/* 01D64 80B907E4 0C010D5B */ jal func_8004356C /* 01D68 80B907E8 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 01D6C 80B907EC 10400011 */ beq $v0, $zero, .L80B90834 +/* 01D6C 80B907EC 10400011 */ beq $v0, $zero, .L80B90834 /* 01D70 80B907F0 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 01D74 80B907F4 0C00BE5D */ jal func_8002F974 +/* 01D74 80B907F4 0C00BE5D */ jal func_8002F974 /* 01D78 80B907F8 240500CA */ addiu $a1, $zero, 0x00CA ## $a1 = 000000CA /* 01D7C 80B907FC 860800A4 */ lh $t0, 0x00A4($s0) ## 000000A4 /* 01D80 80B90800 2401005B */ addiu $at, $zero, 0x005B ## $at = 0000005B /* 01D84 80B90804 2405002C */ addiu $a1, $zero, 0x002C ## $a1 = 0000002C -/* 01D88 80B90808 15010006 */ bne $t0, $at, .L80B90824 +/* 01D88 80B90808 15010006 */ bne $t0, $at, .L80B90824 /* 01D8C 80B9080C 00000000 */ nop /* 01D90 80B90810 8E040790 */ lw $a0, 0x0790($s0) ## 00000790 -/* 01D94 80B90814 0C0169DF */ jal func_8005A77C +/* 01D94 80B90814 0C0169DF */ jal Camera_ChangeSetting /* 01D98 80B90818 2405002D */ addiu $a1, $zero, 0x002D ## $a1 = 0000002D -/* 01D9C 80B9081C 10000012 */ beq $zero, $zero, .L80B90868 +/* 01D9C 80B9081C 10000012 */ beq $zero, $zero, .L80B90868 /* 01DA0 80B90820 00000000 */ nop .L80B90824: -/* 01DA4 80B90824 0C0169DF */ jal func_8005A77C +/* 01DA4 80B90824 0C0169DF */ jal Camera_ChangeSetting /* 01DA8 80B90828 8E040790 */ lw $a0, 0x0790($s0) ## 00000790 -/* 01DAC 80B9082C 1000000E */ beq $zero, $zero, .L80B90868 +/* 01DAC 80B9082C 1000000E */ beq $zero, $zero, .L80B90868 /* 01DB0 80B90830 00000000 */ nop .L80B90834: /* 01DB4 80B90834 922901F7 */ lbu $t1, 0x01F7($s1) ## 000001F7 /* 01DB8 80B90838 312A0080 */ andi $t2, $t1, 0x0080 ## $t2 = 00000000 -/* 01DBC 80B9083C 1140000A */ beq $t2, $zero, .L80B90868 +/* 01DBC 80B9083C 1140000A */ beq $t2, $zero, .L80B90868 /* 01DC0 80B90840 00000000 */ nop /* 01DC4 80B90844 8E040790 */ lw $a0, 0x0790($s0) ## 00000790 /* 01DC8 80B90848 2401002D */ addiu $at, $zero, 0x002D ## $at = 0000002D /* 01DCC 80B9084C 84820142 */ lh $v0, 0x0142($a0) ## 00000142 -/* 01DD0 80B90850 10410003 */ beq $v0, $at, .L80B90860 +/* 01DD0 80B90850 10410003 */ beq $v0, $at, .L80B90860 /* 01DD4 80B90854 2401002C */ addiu $at, $zero, 0x002C ## $at = 0000002C -/* 01DD8 80B90858 14410003 */ bne $v0, $at, .L80B90868 +/* 01DD8 80B90858 14410003 */ bne $v0, $at, .L80B90868 /* 01DDC 80B9085C 00000000 */ nop .L80B90860: -/* 01DE0 80B90860 0C0169DF */ jal func_8005A77C +/* 01DE0 80B90860 0C0169DF */ jal Camera_ChangeSetting /* 01DE4 80B90864 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001 .L80B90868: -/* 01DE8 80B90868 0C2E3AF9 */ jal func_80B8EBE4 +/* 01DE8 80B90868 0C2E3AF9 */ jal func_80B8EBE4 /* 01DEC 80B9086C 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 01DF0 80B90870 8FBF001C */ lw $ra, 0x001C($sp) -/* 01DF4 80B90874 8FB00014 */ lw $s0, 0x0014($sp) -/* 01DF8 80B90878 8FB10018 */ lw $s1, 0x0018($sp) -/* 01DFC 80B9087C 03E00008 */ jr $ra +/* 01DF0 80B90870 8FBF001C */ lw $ra, 0x001C($sp) +/* 01DF4 80B90874 8FB00014 */ lw $s0, 0x0014($sp) +/* 01DF8 80B90878 8FB10018 */ lw $s1, 0x0018($sp) +/* 01DFC 80B9087C 03E00008 */ jr $ra /* 01E00 80B90880 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 diff --git a/data/db_camera.bss.s b/data/db_camera.bss.s index 577f0ae963..cd17626eed 100644 --- a/data/db_camera.bss.s +++ b/data/db_camera.bss.s @@ -60,7 +60,7 @@ glabel D_80161148 glabel D_8016114A .space 0x6 -glabel D_80161150 +glabel sDbgEditorSlots .space 0xE glabel D_8016115E @@ -90,7 +90,7 @@ glabel D_80161250 glabel D_8016125C .space 0x33 -glabel D_8016128F +glabel sDbgEditorStates .space 0x41 glabel D_801612D0 diff --git a/data/db_camera.rodata.s b/data/db_camera.rodata.s deleted file mode 100644 index 99f87e7584..0000000000 --- a/data/db_camera.rodata.s +++ /dev/null @@ -1,625 +0,0 @@ -.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 .rodata - -.balign 16 - -glabel D_80143170 - .asciz "\x8Cキ-フレ-ム\x8Dガ" - .balign 4 - -glabel D_80143184 - .asciz "\x8Dタリマセン。" - .balign 4 - -glabel D_80143194 - .asciz "\x8Dサイセイデキマセン" - .balign 4 - -glabel D_801431AC - .asciz "\x8Dサイセイシュウリョウ" - .balign 4 - -glabel D_801431C4 - .asciz "\x8Dサイセイチュウ!" - .balign 4 - -glabel D_801431D8 - .asciz "DEMO CAMERA TOOL" - .balign 4 - -glabel D_801431EC - .asciz "\x8Dモウハイリマセン" - .balign 4 - -glabel D_80143200 - .asciz "\x8Dトウロク テンメ" - .balign 4 - -glabel D_80143214 - .asciz "\x8Dヘンコウ / " - .balign 4 - -glabel D_80143224 - .asciz "> >" - .balign 4 - -glabel D_80143234 - .asciz "< <" - .balign 4 - -glabel D_80143244 - .asciz "< >" - .balign 4 - -glabel D_80143254 - .asciz "\x8C*プレイヤ-*" - .balign 4 - -glabel D_80143264 - .asciz "\x8C\Eモ-ド\x8D ソウタイ" - .balign 4 - -glabel D_80143278 - .asciz "\x8C\Eモ-ド\x8Dゼッタイ" - .balign 4 - -glabel D_80143290 - .asciz "\x8Dガメン\x8C デモ" - .balign 4 - -glabel D_801432A4 - .asciz "\x8Dガメン フツウ" - .balign 4 - -glabel D_801432B8 - .asciz "\x8DPジカン MAX" - .balign 4 - -glabel D_801432C8 - .asciz "\x8Cリンク\x8D キオク" - .balign 4 - -glabel D_801432DC - .asciz "\x8Cリンク\x8D ムシ" - .balign 4 - -glabel D_801432F0 - .asciz "\x8D*ミテルイチ*" - .balign 4 - -glabel D_80143300 - .asciz "\x8C*カメラ\x8Dイチ*" - .balign 4 - -glabel D_80143310 - .asciz "DEBUG CAMERA" - .balign 4 - -glabel D_80143320 - .asciz "\x8Cセンタ-/ロック" - .balign 4 - -glabel D_80143330 - .asciz "\x8Cセンタ-/フリ-" - .balign 4 - -glabel D_80143340 - .asciz "DEMO CONTROL" - .balign 4 - -glabel D_80143350 - .asciz "\x8Cメモリ\x8Dガタリマセン" - .balign 4 - -glabel D_80143368 - .asciz "p" - .balign 4 - -glabel D_8014336C - .asciz "e" - .balign 4 - -glabel D_80143370 - .asciz "s" - .balign 4 - -glabel D_80143374 - .asciz "l" - .balign 4 - -glabel D_80143378 - .asciz "c" - .balign 4 - -glabel D_8014337C - .asciz "\x8Cメモリパック" - .balign 4 - -glabel D_8014338C - .asciz "\x8Cセーブ" - # Save - .balign 4 - -glabel D_80143398 - .asciz "\x8Cロード" - # Load - .balign 4 - -glabel D_801433A4 - .asciz "\x8Cクリア-" - # Clear - .balign 4 - -glabel D_801433B0 - .asciz "\x8Dヲヌカナイデネ" - .balign 4 - -glabel D_801433C4 - .asciz "FREE BYTE" - .balign 4 - -glabel D_801433D4 - .asciz "NEED BYTE" - .balign 4 - -glabel D_801433E4 - .asciz "\x8C*メモリ-パック*" - .balign 4 - -glabel D_801433F8 - .asciz "\x8Dヲミツケラレマセン" - .balign 4 - -glabel D_8014340C - .asciz "\x8Cファイル \x8Dヲ" - .balign 4 - -glabel D_8014341C - .asciz "\x8Dシテモイイデスカ?" - .balign 4 - -glabel D_80143434 - .asciz "\x8Dゲンザイヘンシュウチュウノ" - .balign 4 - -glabel D_80143454 - .asciz "\x8Cファイル\x8Dハハキサレマス" - .balign 4 - -glabel D_80143470 - .asciz "\x8Dハイ" - .balign 4 - -glabel D_80143478 - .asciz "\x8Dイイエ" - .balign 4 - -glabel D_80143480 - .asciz "\x8Dシテイマス" - .balign 4 - -glabel D_8014348C - .asciz "\x8Dウワガキ" - .balign 4 - -glabel D_80143498 - .asciz "\x8Dシマシタ" - .balign 4 - -glabel D_801434A4 - .asciz "USE BYTE" - .balign 4 - -glabel D_801434B4 - .asciz "\x8Dニシッパイ" - .balign 4 - -glabel D_801434C4 - .asciz "\x8C\Eモ-ド\x8D コテイ" - .balign 4 - -glabel D_801434D8 - .asciz "@@@static SplinedatZ %s[] = {\n" - .balign 4 - -glabel D_801434F8 - .asciz "@@@ /* key frame %2d */ {\n" - .balign 4 - -glabel D_80143518 - .asciz "@@@ /* code */ %d,\n" - .balign 4 - -glabel D_80143538 - .asciz "@@@ /* z */ %d,\n" - .balign 4 - -glabel D_80143558 - .asciz "@@@ /* T */ %d,\n" - .balign 4 - -glabel D_80143578 - .asciz "@@@ /* zoom */ %f,\n" - .balign 4 - -glabel D_80143598 - .asciz "@@@ /* pos */ { %d, %d, %d }\n" - .balign 4 - -glabel D_801435C4 - .asciz "@@@ },\n" - .balign 4 - -glabel D_801435D0 - .asciz "@@@};\n@@@\n" - .balign 4 - -glabel D_801435DC - .asciz "\n@@@%d,%d,%d,%d," - .balign 4 - -glabel D_801435F0 - .asciz "\n@@@%d,%d," - .balign 4 - -glabel D_801435FC - .asciz "\n@@@%d,%d," - .balign 4 - -glabel D_80143608 - .asciz "\n@@@ 0,0,0,2, /* Look Camera */" - .balign 4 - -glabel D_80143628 - .asciz "\n@@@ 0,1, /* dousa */" - .balign 4 - -glabel D_80143640 - .asciz "\n@@@ 0,0, /* Start Flame */" - .balign 4 - -glabel D_8014365C - .asciz " /* End Flame */" - .balign 4 - -glabel D_80143670 - .asciz "\n@@@0,0, /* Dammy */\n@@@ " - .balign 4 - -glabel D_8014368C - .asciz "\n@@@ %d, /* code */" - .balign 4 - -glabel D_801436AC - .asciz "\n@@@ %d, /* z */" - .balign 4 - -glabel D_801436CC - .asciz " /* sokudo */" - .balign 4 - -glabel D_801436DC - .asciz " /* zoom */" - .balign 4 - -glabel D_801436EC - .asciz " /* x pos */" - .balign 4 - -glabel D_801436FC - .asciz " /* y pos */" - .balign 4 - -glabel D_8014370C - .asciz " /* z pos */\n" - .balign 4 - -glabel D_8014371C - .asciz "\n@@@0,0, /* Dammy */\n@@@ " - .balign 4 - -glabel D_80143738 - .asciz "\n@@@ 0,0,0,1, /* Position Camera */" - .balign 4 - -glabel D_8014375C - .asciz "\n@@@ 0,1, /* dousa */" - .balign 4 - -glabel D_80143774 - .asciz "\n@@@ 0,0, /* Start Flame */" - .balign 4 - -glabel D_80143790 - .asciz " /* End Flame */" - .balign 4 - -glabel D_801437A4 - .asciz "\n@@@0,0, /* Dammy */\n@@@ " - .balign 4 - -glabel D_801437C0 - .asciz "\n@@@ %d, /* code */" - .balign 4 - -glabel D_801437E0 - .asciz "\n@@@ %d, /* z */" - .balign 4 - -glabel D_80143800 - .asciz " /* sokudo */" - .balign 4 - -glabel D_80143810 - .asciz " /* zoom */" - .balign 4 - -glabel D_80143820 - .asciz " /* x pos */" - .balign 4 - -glabel D_80143830 - .asciz " /* y pos */" - .balign 4 - -glabel D_80143840 - .asciz " /* z pos */" - .balign 4 - -glabel D_80143850 - .asciz "\n@@@0,0, /* Dammy */\n@@@ " - .balign 4 - -glabel D_8014386C - .asciz "@@@\n@@@\n@@@/* *** spline point data ** start here *** */\n@@@\n" - .balign 4 - -glabel D_801438AC - .asciz "Lookat" - .balign 4 - -glabel D_801438B4 - .asciz "Position" - .balign 4 - -glabel D_801438C0 - .asciz "@@@static short nPoints = %d;\n@@@\n" - .balign 4 - -glabel D_801438E4 - .asciz "@@@static short nFrames = %d;\n@@@\n" - .balign 4 - -glabel D_80143908 - .asciz "@@@static short Mode = %d;\n@@@\n" - .balign 4 - -glabel D_8014392C - .asciz "@@@\n@@@\n@@@/* *** spline point data ** finish! *** */\n@@@\n" - .balign 4 - -glabel D_80143968 - .asciz "../db_camera.c" - .balign 4 - -glabel D_80143978 - .asciz "%s: %d: デバッグカメラ メモリ確保失敗!!\n" - # EUC-JP: デバッグカメラ メモリ確保失敗!! | Debug camera memory allocation failure - .balign 4 - -glabel D_801439A4 - .asciz "../db_camera.c" - .balign 4 - -glabel D_801439B4 - .asciz "../db_camera.c" - .balign 4 - -glabel D_801439C4 - .asciz "%s: %d: デバッグカメラ メモリ確保失敗!!\n" - # EUC-JP: デバッグカメラ メモリ確保失敗!! | Debug camera memory allocation failure - .balign 4 - -glabel D_801439F0 - .asciz "../db_camera.c" - .balign 4 - -glabel D_80143A00 - .asciz "../db_camera.c" - .balign 4 - -glabel D_80143A10 - .asciz "../db_camera.c" - .balign 4 - -glabel D_80143A20 - .asciz "../db_camera.c" - .balign 4 - -glabel D_80143A30 - .asciz "../db_camera.c" - .balign 4 - -glabel D_80143A40 - .asciz "%s: %d: デバッグカメラ メモリ確保失敗!!\n" - # EUC-JP: デバッグカメラ メモリ確保失敗!! | Debug camera memory allocation failure - .balign 4 - -glabel D_80143A6C - .asciz "../db_camera.c" - .balign 4 - -glabel D_80143A7C - .asciz "../db_camera.c" - .balign 4 - -glabel D_80143A8C - .asciz "%s: %d: デバッグカメラ メモリ確保失敗!!\n" - # EUC-JP: デバッグカメラ メモリ確保失敗!! | Debug camera memory allocation failure - .balign 4 - -glabel D_80143AB8 - .asciz "../db_camera.c" - .balign 4 - -glabel D_80143AC8 - .asciz "@@@\n@@@\n@@@/* ****** spline point data ** start here ***** */\n@@@\n" - .balign 4 - -glabel D_80143B0C - .asciz "@@@\n@@@/* ** %d ** */\n@@@\n" - .balign 4 - -glabel D_80143B28 - .asciz "Lookat" - .balign 4 - -glabel D_80143B30 - .asciz "Position" - .balign 4 - -glabel D_80143B3C - .asciz "@@@static short nPoints = %d;\n@@@\n" - .balign 4 - -glabel D_80143B60 - .asciz "@@@static short nFrames = %d;\n@@@\n" - .balign 4 - -glabel D_80143B84 - .asciz "@@@static short Mode = %d;\n@@@\n" - .balign 4 - -glabel D_80143BA8 - .asciz "@@@\n@@@\n@@@/* ****** spline point data ** finish! ***** */\n@@@\n" - .balign 4 - -glabel D_80143BE8 - .asciz "PRESS B BUTTON" - .balign 4 - -glabel D_80143BF8 - .asciz "PRESS B BUTTON" - .balign 4 - -glabel D_80143C08 - .asciz "PRESS B BUTTON" - .balign 4 - -glabel D_80143C18 - .asciz "_" - .balign 4 - -glabel D_80143C1C - .asciz ">" - .balign 4 - -glabel D_80143C20 - .asciz "###%2d:(%c) (%d %d) %d %d %d\n" - .balign 4 - -glabel D_80143C40 - .asciz "\n@@@ /* CUT [%d] */" - .balign 4 - -glabel D_80143C54 - .float 0.15 - -glabel D_80143C58 - .float 0.2 - -glabel D_80143C5C - .float 30000 - -glabel D_80143C60 - .float 30000 - -glabel D_80143C64 - .float 0.8 - -glabel D_80143C68 - .float 182.04167 - -glabel D_80143C6C - .float 0.8 - -glabel D_80143C70 - .float 182.04167 - -glabel D_80143C74 # unused - .float 182.04167 - -glabel D_80143C78 - .float 0.8 - -glabel D_80143C7C - .float 182.04167 - -glabel D_80143C80 - .float 0.8 - -glabel D_80143C84 - .float 182.04167 - -glabel D_80143C88 # unused - .float 182.04167 - -glabel D_80143C8C - .float 182.04167 - -glabel D_80143C90 - .float 0.00549325 - -glabel D_80143C94 - .float 0.00549325 - -glabel D_80143C98 - .float 0.2 - -glabel D_80143C9C - .float 0.2 - -glabel D_80143CA0 - .float 0.00549325 - -glabel D_80143CA4 - .float 0.00549325 - -glabel D_80143CA8 - .float 0.00549325 - -glabel D_80143CAC - .float 0.00549325 - -glabel D_80143CB0 - .float 0.02 - -glabel D_80143CB4 - .float 0.02 - -glabel D_80143CB8 - .float 0.02 - -glabel D_80143CBC - .float 0.00549325 - -glabel D_80143CC0 - .float 0.00549325 - -glabel D_80143CC4 - .float 0.02 - -glabel D_80143CC8 - .float 0.02 - -glabel D_80143CCC - .float 0.02 - -glabel D_80143CD0 - .float 182.04167 diff --git a/data/z_camera.bss.s b/data/z_camera.bss.s deleted file mode 100644 index 8d56a9a4b2..0000000000 --- a/data/z_camera.bss.s +++ /dev/null @@ -1,106 +0,0 @@ -.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 .bss - -.balign 16 - -glabel D_8015BD50 - .space 0x4 - -glabel D_8015BD54 - .space 0x1C - -glabel D_8015BD70 - .space 0xC - -glabel D_8015BD7C - .space 0x4 - -glabel D_8015BD80 - .space 0x4 - -glabel D_8015BD84 - .space 0xC - -glabel D_8015BD90 - .space 0xC - -glabel D_8015BD9C - .space 0x2C - -glabel D_8015BDC8 - .space 0x107E - -glabel D_8015CE46 - .space 0x6 - -glabel D_8015CE4C - .space 0x4 - -glabel D_8015CE50 - .space 0x4 - -glabel D_8015CE54 - .space 0x4 - -glabel D_8015CE58 - .space 0x4 - -glabel D_8015CE5C - .space 0x4 - -glabel D_8015CE60 - .space 0x4 - -glabel D_8015CE64 - .space 0x4 - -glabel D_8015CE68 - .space 0x4 - -glabel D_8015CE6C - .space 0x14 - -glabel D_8015CE80 - .space 0x4 - -glabel D_8015CE84 - .space 0x4 - -glabel D_8015CE88 - .space 0x4 - -glabel D_8015CE8C - .space 0x4 - -glabel D_8015CE90 - .space 0x4 - -glabel D_8015CE94 - .space 0xC - -glabel D_8015CEA0 - .space 0x8 - -glabel D_8015CEA8 - .space 0xC - -glabel D_8015CEB4 - .space 0x4 - -glabel D_8015CEB8 - .space 0x4 - -glabel D_8015CEBC - .space 0x4 - -glabel D_8015CEC0 - .space 0x10 - -glabel D_8015CED0 - .space 0x30 diff --git a/include/functions.h b/include/functions.h index efa26611e0..7ce5813bd2 100644 --- a/include/functions.h +++ b/include/functions.h @@ -395,7 +395,7 @@ f32 func_8002DB8C(Actor* actorA, Actor* actorB); f32 func_8002DBB0(Actor* actor, Vec3f* arg1); void func_8002DBD0(Actor* actor, Vec3f* result, Vec3f* arg2); f32 Actor_HeightDiff(Actor* actorA, Actor* actorB); -f32 Player_GetCameraYOffset(Player* player); +f32 Player_GetHeight(Player* player); f32 func_8002DCE4(Player* player); s32 func_8002DD6C(Player* player); s32 func_8002DD78(Player* player); @@ -597,7 +597,8 @@ s32 func_8003D594(CollisionContext*, Vec3f*, Vec3f*, Vec3f*, f32, CollisionPoly* s32 func_8003D7A0(CollisionContext*, f32*, Vec3f*, f32, UNK_PTR, u32*, Actor*); // ? func_8003D7F0(?); // ? func_8003DD28(?); -// ? func_8003DD6C(?); +s32 func_8003DD6C(CollisionContext*, Vec3f*, Vec3f*, Vec3f*, CollisionPoly**, UNK_TYPE, UNK_TYPE, UNK_TYPE, UNK_TYPE, + UNK_PTR); s32 func_8003DE84(CollisionContext*, Vec3f*, Vec3f*, Vec3f*, CollisionPoly**, u32, u32, u32, u32, u32*); s32 func_8003DF10(CollisionContext*, Vec3f*, Vec3f*, Vec3f*, CollisionPoly**, u32, u32, u32, u32, u32*, Actor*); s32 func_8003DFA0(CollisionContext*, Vec3f*, Vec3f*, Vec3f*, CollisionPoly**, u32, u32, u32, u32, u32*, Actor*, f32); @@ -651,13 +652,13 @@ void DynaPolyInfo_Free(GlobalContext* globalCtx, DynaCollisionContext* dynaColCt void DynaPolyInfo_Alloc(UNK_PTR arg0, UNK_PTR arg1); // ? func_80041978(?); // ? func_800419B0(?); -// ? func_80041A28(?); -// ? func_80041A4C(?); +s32 func_80041A28(CollisionContext* colCtx, CollisionPoly*, u32); +s32 func_80041A4C(CollisionContext* colCtx, s32 camDataIdx, s32 arg2); // ? func_80041B24(?); -// ? func_80041B80(?); -struct_80041C10_ret* func_80041C10(CollisionContext* colCtx, s32, s32); -// ? func_80041C98(?); -UNK_TYPE func_80041D4C(CollisionContext*, CollisionPoly*, CollisionPoly*); +u16 func_80041B80(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId); +Vec3s* func_80041C10(CollisionContext* colCtx, s32, s32); +Vec3s* func_80041C98(CollisionContext* colCtx, CollisionPoly*, s32); +u32 func_80041D4C(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId); // ? func_80041D94(?); // ? func_80041DB8(?); // ? func_80041EC8(?); @@ -665,15 +666,14 @@ UNK_TYPE func_80041D4C(CollisionContext*, CollisionPoly*, CollisionPoly*); u16 func_80041F34(CollisionContext*, CollisionPoly*, u32); s32 func_80041FA0(CollisionContext*, CollisionPoly*, u32); s32 func_80042048(CollisionContext*, CollisionPoly*, s32); -s32 func_80042108(CollisionContext*, CollisionPoly*, u32); -s32 func_8004213C(GlobalContext*, CollisionContext*, f32, f32, f32*, UNK_PTR); +// ? func_80042108(?); +s32 func_8004213C(GlobalContext*, CollisionContext*, f32, f32, f32*, WaterBox**); s32 func_8004239C(GlobalContext* globalCtx, CollisionContext* colCtx, Vec3f* arg2, f32 arg3, WaterBox** arg4); -s32 func_80042244(GlobalContext* globalCtx, CollisionContext* colCtx, f32 x, f32 z, f32* ySurface, - WaterBox** outWaterBox); -// ? func_80042538(?); -// ? func_80042548(?); -// ? func_8004259C(?); -s32 func_800427B4(CollisionPoly*, CollisionPoly*, s32, s32, Vec3f*); +s32 func_80042244(GlobalContext* globalCtx, CollisionContext* colCtx, f32 x, f32 z, f32* ySurface, WaterBox** outWaterBox); +u32 func_80042538(CollisionContext* colCtx, WaterBox* waterBox); +u16 func_80042548(CollisionContext* colCtx, WaterBox* waterBox); +u32 func_8004259C(CollisionContext* colCtx, WaterBox* waterBox); +s32 func_800427B4(CollisionPoly*, CollisionPoly*, Vec3f*, Vec3f*, Vec3f*); // ? func_80042868(?); // ? func_80042B2C(?); void func_80042C3C(GlobalContext*, CollisionContext*); @@ -695,94 +695,30 @@ s32 func_8004356C(DynaPolyActor* dynaActor); s32 func_80043590(DynaPolyActor* dynaActor); s32 func_800435B4(DynaPolyActor* dynaActor); s32 func_800435D8(GlobalContext* globalCtx, DynaPolyActor* dyna, s16 arg2, s16 arg3, s16 arg4); -f32 func_800437F0(f32, f32); -// ? func_8004389C(?); -// ? func_800438DC(?); -// ? func_8004391C(?); -// ? func_800439AC(?); -// ? func_80043A3C(?); -// ? func_80043ABC(?); -// ? func_80043B60(?); -// ? func_80043BC4(?); -// ? func_80043C28(?); -// ? func_80043CAC(?); -// ? func_80043D18(?); -// ? func_80043F34(?); -// ? func_80043F94(?); -// ? func_80044340(?); -// ? func_800443A0(?); -// ? func_80044434(?); -// ? func_80044510(?); -// ? func_80044568(?); -// ? func_80044740(?); -// ? func_8004476C(?); -// ? func_8004479C(?); -// ? func_8004481C(?); -// ? func_800448CC(?); -// ? func_800449AC(?); -// ? func_80044A74(?); -// ? func_80044ADC(?); -// ? func_80044E68(?); -// ? func_800450A4(?); -// ? Camera_CopyModeValuesToPREG(?); -// ? Camera_CopyPREGToModeValues(?); -// ? func_80045350(?); -// ? func_8004545C(?); -// ? func_80045508(?); -// ? func_80045714(?); -// ? func_800457A8(?); -// ? func_800458D4(?); -// ? func_80045B08(?); -// ? func_80045C74(?); -// ? func_800460A8(?); -// ? func_800466F8(?); -// ? func_800468CC(?); -// ? func_800469C0(?); -// ? func_80046B44(?); -// ? func_80046CB4(?); -// ? func_80046E20(?); -// ? func_80047394(?); -// ? Camera_Normal1(?); -// ? Camera_Unique2(?); -// ? Camera_Unique9(?); -// ? func_80054314(?); -// ? func_8005445C(?); -// ? func_80054478(?); -void func_80057C6C(Camera* camera, View* view, CollisionContext* colCtx, GlobalContext* globalCtx); -// ? func_80057FC4(?); -// ? func_80058148(?); -void Camera_ChangeStatus(Camera* camera, s16 status); -// ? func_800584E8(?); -// ? func_800588B4(?); -// ? func_80058CF8(?); -// ? func_80058D34(?); -// ? func_80058E8C(?); -// ? func_800591EC(?); -void func_80059EC8(Camera* camera); -// ? func_8005A02C(?); -// ? Camera_ChangeMode(?); -s32 func_8005A444(Camera* camera, s16 arg1); -s32 func_8005A470(Camera* camera, s16 arg1); -// ? Camera_ChangeSetting(?); -s32 func_8005A77C(Camera* camera, s16 button); -// ? func_8005A7A8(?); -// ? func_8005A8C4(?); -s16 func_8005A948(Camera* camera); -Vec3s* func_8005A970(Vec3s*, Camera*); -s16 func_8005A9CC(s32 arg0); -s16 func_8005A9F4(Camera* camera); -s32 func_8005AA1C(Camera* camera, s32, s16, s32); -s32 Camera_SetParam(Camera*, s32, void*); -// ? func_8005AC48(?); -// ? func_8005AC60(?); -// ? func_8005AC6C(?); -s32 func_8005AD40(Camera* camera, Actor* doorActor, s16 arg2, f32 arg3, s16 arg4, s16 arg5, s16 arg6); -// ? func_8005AE64(?); -Vec3f* func_8005AFB4(Vec3f* dst, Camera* camera); -void Camera_SetCameraData(Camera*, s16, CutsceneCameraPoint*, CutsceneCameraPoint*, s16, s16, s32); -// ? func_8005B044(?); -s32 func_8005B198(); -s16 func_8005B1A4(Camera* camera); +void Camera_Init(Camera* camera, View* view, CollisionContext* colCtx, GlobalContext* globalCtx); +void Camera_InitPlayerSettings(Camera* camera, Player* player); +s16 Camera_ChangeStatus(Camera* camera, s16 status); +Vec3s* Camera_Update(Vec3s* outDir, Camera* camera); +void Camera_Finish(Camera* camera); +s32 Camera_ChangeMode(Camera* camera, s16 mode); +s32 Camera_ChangeSetting(Camera* camera, s16 setting); +s32 Camera_ChangeDataIdx(Camera* camera, s32 camDataIdx); +s16 Camera_GetInputDirYaw(Camera* camera); +Vec3s* Camera_GetCamDir(Vec3s* dir, Camera* camera); +s16 Camera_GetCamDirPitch(Camera* camera); +s16 Camera_GetCamDirYaw(Camera* camera); +s32 Camera_AddQuake(Camera* camera, s32 arg1, s16 y, s32 countdown); +s32 Camera_SetParam(Camera* camera, s32 param, void* value); +s32 func_8005AC48(Camera* camera, s16 arg1); +s32 Camera_ResetAnim(Camera* camera); +s32 Camera_SetCSParams(Camera* camera, CutsceneCameraPoint* atPoints, CutsceneCameraPoint* eyePoints, Player* player, + s16 relativeToPlayer); +s32 Camera_ChangeDoorCam(Camera* camera, Actor* doorActor, s16 camDataIdx, f32 arg3, s16 timer1, s16 timer2, + s16 timer3); +s32 Camera_Copy(Camera* dstCamera, Camera* srcCamera); +Vec3f* Camera_GetSkyboxOffset(Vec3f* dst, Camera* camera); +void Camera_SetCameraData(Camera* camera, s16 setDataFlags, void* data0, + void* data1, s16 data2, s16 data3, UNK_TYPE arg6); DamageTable* DamageTable_Get(s32 index); // ? func_8005B280(?); void func_8005B2AC(GraphicsContext* gfx, Vec3f* vA, Vec3f* vB, Vec3f* vC, u8 r, u8 g, u8 b); @@ -906,7 +842,8 @@ void func_80061EFC(CollisionCheckInfo* info, DamageTable* damageTable, Collision // ? func_800622E4(?); s32 CollisionCheck_GeneralLineOcCheck(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx, Vec3f* camera_3C, Vec3f* arg3, Actor** arg4, s32 arg5); -// ? func_800626B0(?); +s32 func_800626B0(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx, Vec3f* camera_3C, Vec3f* arg3, + Actor** arg4, s32 arg5); void Collider_CylinderUpdate(Actor* actor, ColliderCylinder* collider); void func_80062718(ColliderCylinder* collider, Vec3s* pos); void func_80062734(ColliderQuad* collider, Vec3f* a, Vec3f* b, Vec3f* c, Vec3f* d); @@ -923,6 +860,7 @@ s32 func_80062ECC(f32, f32, f32, Vec3f*, Vec3f*, Vec3f*, Vec3f*, Vec3f*); void SaveContext_Init(void); // ? func_800636C0(?); void func_8006375C(s32 arg0, s32 arg1, const char* text); +void func_8006376C(u8 x, u8 y, u8 colorId, const char* text); // ? func_8006376C(?); // ? func_80063828(?); void func_8006390C(Input* input); @@ -988,8 +926,8 @@ f32 func_8006F93C(u16, u16, u16); f32 func_8006F9BC(u16 endFrame, u16 startFrame, u16 frames, u16, u16); // ? func_8006FB94(?); // ? func_8006FC88(?); -// ? func_80070600(?); -// ? func_800706A0(?); +void func_80070600(GlobalContext* globalCtx, s32 waterboxProperties); +void func_800706A0(GlobalContext* globalCtx); // ? func_80070718(?); // ? func_80070C24(?); // ? func_800730DC(?); @@ -1119,7 +1057,7 @@ Vec3f* OLib_Vec3fDiffRad(Vec3f* dest, Vec3f* a, Vec3f* b); // ? func_8007C850(?); // ? func_8007FFE0(?); // ? func_80080024(?); -s16 func_800800F8(GlobalContext* globalCtx, s16 arg1, s16 arg2, Actor* actor, s16 arg4); +s16 func_800800F8(GlobalContext* globalCtx, s16 csID, s16 timer, Actor* actor, s16 camIdx); void func_800803F0(GlobalContext* globalCtx, s16 camId); s16 func_80080480(GlobalContext* globalCtx, Actor* actor); void func_800806BC(GlobalContext* globalCtx, Actor* actor, u16 sfxId); @@ -1238,7 +1176,7 @@ u32 Quake_SetUnkValues(s16 idx, s16 arg1, SubQuakeRequest14 arg2); void Quake_Init(); s16 Quake_Add(Camera* cam, u32 callbackIdx); u32 Quake_RemoveFromIdx(s16 idx); -s16 Quake_Calc(Camera* camera, UnkQuakeCalcStruct* camData); +s16 Quake_Calc(Camera* camera, QuakeCamCalc* camData); Gfx* Gfx_SetFog(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f); Gfx* Gfx_SetFogWithSync(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f); Gfx* Gfx_SetFog2(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f); @@ -1557,9 +1495,9 @@ void ShrinkWindow_Update(s32 updateRate); // ? func_800B4AA8(?); // ? func_800B4AE4(?); // ? func_800B4B20(?); -// ? func_800B4D58(?); -// ? func_800B4DE4(?); -// ? func_800B4E7C(?); +void DbgCamera_Init(DBCamera* dbCamera, Camera* camera); +void DbgCamera_Enable(DBCamera* dbCamera, Camera* camera); +void DbgCamera_Update(DBCamera* dbCamera, Camera* camera); // ? func_800B8730(?); // ? func_800B87D8(?); // ? func_800B8978(?); @@ -1568,10 +1506,10 @@ void ShrinkWindow_Update(s32 updateRate); // ? func_800B8F58(?); // ? func_800B9060(?); // ? func_800B91B0(?); -// ? func_800B958C(?); +void DbgCamera_FirstInit(Camera* camera, DBCamera* dbCamera); // ? func_800B9638(?); // ? func_800BB0A0(?); -// ? func_800BB2B4(?); +s32 func_800BB2B4(Vec3f* pos, f32* roll, f32* fov, CutsceneCameraPoint* point, s16* keyframe, f32* curFrame); s32 Mempak_Init(s32 controllerNb); s32 Mempak_GetFreeBytes(s32 controllerNb); s32 Mempak_FindFile(s32 controllerNb, char start, char end); @@ -1609,13 +1547,13 @@ s16 Gameplay_ChangeCameraStatus(GlobalContext* globalCtx, s16 camId, s16 status) void Gameplay_ClearCamera(GlobalContext* globalCtx, s16 camId); void Gameplay_ClearAllSubCameras(GlobalContext* globalCtx); Camera* Gameplay_GetCamera(GlobalContext* globalCtx, s16 camId); -s32 func_800C04D8(GlobalContext* globalCtx, s16 camId, Vec3f* arg2, Vec3f* arg3); -s32 func_800C05E4(GlobalContext* globalCtx, s16 camId, Vec3f* arg2, Vec3f* arg3, Vec3f* arg4); -s32 func_800C0704(GlobalContext* globalCtx, s16 camId, f32 arg2); -s32 func_800C0744(GlobalContext* globalCtx, s16 camId, s16 arg2); -void func_800C078C(GlobalContext* globalCtx, s16 camId1, s16 camId2); +s32 Gameplay_CameraSetAtEye(GlobalContext* globalCtx, s16 camId, Vec3f* arg2, Vec3f* arg3); +s32 Gameplay_CameraSetAtEyeUp(GlobalContext* globalCtx, s16 camId, Vec3f* at, Vec3f* eye, Vec3f* up); +s32 Gameplay_CameraSetFov(GlobalContext* globalCtx, s16 camId, f32 fov); +s32 Gameplay_SetCameraRoll(GlobalContext* globalCtx, s16 camId, s16 roll); +void Gameplay_CopyCamera(GlobalContext* globalCtx, s16 camId1, s16 camId2); s32 func_800C0808(GlobalContext* globalCtx, s16 camId, Player* player, s16 arg3); -void func_800C0874(GlobalContext* globalCtx, s16 camId, s16 arg2); +s32 Gameplay_CameraChangeSetting(GlobalContext* globalCtx, s16 camId, s16 arg2); void func_800C08AC(GlobalContext* globalCtx, s16 camId, s16 arg2); void Gameplay_SaveSceneFlags(GlobalContext* globalCtx); void Gameplay_SetupRespawnPoint(GlobalContext* globalCtx, s32 respawnMode, s32 playerParams); @@ -2307,7 +2245,7 @@ void func_800F6584(UNK_TYPE); void func_800F66DC(s8); void func_800F6700(s8 outputMode); void func_800F67A0(u8); -// ? func_800F6828(?); +void func_800F6828(u8); void func_800F68BC(s8); // ? func_800F68D4(?); // ? func_800F691C(?); diff --git a/include/regs.h b/include/regs.h index f34d3fc5bc..3b7b24dec7 100644 --- a/include/regs.h +++ b/include/regs.h @@ -48,6 +48,18 @@ #define R_FB_FILTER_ENV_COLOR(c) SREG(85 + c) #define R_ENABLE_FB_FILTER SREG(88) #define R_PAUSE_MENU_MODE SREG(94) +#define R_CAM_MAX_PHI OREG(5) +#define R_CAM_DEFA_PHI_UPDRATE OREG(7) +#define R_DEFA_CAM_ANIM_TIME OREG(23) +#define R_CAM_MIN_PHI OREG(34) +#define R_CAM_MIN_PHI2 OREG(35) +#define R_AT_LERP_MIN OREG(41) +#define R_AT_LERP_SCALE OREG(42) +#define R_CAM_YOFFSET_NORM OREG(46) +#define R_CAM_FIXED3_FOV PREG(7) +#define R_DBG_CAM_UPDATE PREG(80) +#define R_DBG_REG_UPDATE PREG(82) +#define R_RELOAD_CAM_PARAMS QREG(0) #define R_C_UP_ICON_X YREG(88) #define R_C_UP_ICON_Y YREG(89) #define R_MAGIC_FILL_COLOR(i) ZREG(0 + i) diff --git a/include/variables.h b/include/variables.h index d7fe256548..275700eaf5 100644 --- a/include/variables.h +++ b/include/variables.h @@ -183,44 +183,7 @@ extern s32 gMaxActorId; // original name: "MaxProfile" //extern ? D_80119E54; //extern ? D_80119E94; //extern ? D_80119EAC; -//extern ? sOREGInit; -//extern ? sOREGInitCnt; -//extern ? sPREGInit; -//extern ? sPREGInitCnt; -//extern ? sCameraSettingNames; -//extern ? sCameraModeNames; -//extern ? sCameraSettings; -//extern ? sInitRegs; -extern s32 D_8011D394; -//extern ? D_8011D398; -//extern ? D_8011D39C; -//extern ? D_8011D3A0; -//extern ? D_8011D3A2; -//extern ? D_8011D3A4; -//extern ? D_8011D3A8; -extern s32 D_8011D3AC; -//extern ? D_8011D3E8; -//extern ? D_8011D3F0; -//extern ? D_8011D3F4; -//extern ? sCameraFunctionNames; -//extern ? D_8011D658; -//extern ? D_8011D678; -//extern ? D_8011D6A8; -//extern ? D_8011D6AC; -//extern ? D_8011D6D8; -//extern ? D_8011D724; -//extern ? D_8011D79C; -//extern ? D_8011D83C; -//extern ? D_8011D88C; -//extern ? D_8011D8DC; -//extern ? D_8011D954; -//extern ? D_8011D9F4; -//extern ? D_8011DA6C; -//extern ? D_8011DA9C; -//extern ? D_8011DB08; -//extern ? D_8011DB0C; -//extern ? D_8011DB10; -//extern ? D_8011DB14; +extern s32 gDbgCamEnabled; //extern ? D_8011DB20; //extern ? D_8011DE00; //extern ? D_8011DE18; @@ -3268,7 +3231,7 @@ extern u8 D_80157D30[]; //extern ? D_8015BD90; //extern ? D_8015BD9C; //extern ? D_8015CE46; -//extern ? D_8015CE4C; +//extern ? playerFloorPoly; //extern ? D_8015CE58; //extern ? D_8015CE80; //extern ? D_8015CE8C; @@ -3385,7 +3348,7 @@ extern u8 D_801610DA; //extern ? D_80161144; //extern ? D_80161148; //extern ? D_8016114A; -//extern ? D_80161150; +//extern ? sDbgEditorSlots; //extern ? D_8016115E; //extern ? D_80161160; //extern ? D_8016116E; diff --git a/include/z64.h b/include/z64.h index 6397088383..3c59f619df 100644 --- a/include/z64.h +++ b/include/z64.h @@ -9,6 +9,7 @@ #include "z64player.h" #include "z64audio.h" #include "z64object.h" +#include "z64camera.h" #include "z64cutscene.h" #include "z64collision_check.h" #include "z64scene.h" @@ -176,176 +177,6 @@ typedef struct { /* 0x0124 */ s32 unk_124; } View; // size = 0x128 -typedef struct { - /* 0x0000 */ f32 unk_00; - /* 0x0004 */ f32 unk_04; - /* 0x0008 */ s16 unk_08; -} Special9; // size = 0xC - -typedef struct { - /* 0x0000 */ Actor* door; - /* 0x0004 */ s16 unk_04; - /* 0x0006 */ s16 unk_06; - /* 0x0008 */ s16 unk_08; - /* 0x000A */ s16 unk_0A; - /* 0x000C */ Special9 spec9; - /* 0x0018 */ s16 unk_18; -} DoorCamera; // size = 0x1C - -typedef struct { - f32 unk_00; - s16 unk_04; -} Special0; - -typedef struct { - /* 0x0000 */ f32 unk_00; - /* 0x0004 */ s16 unk_04; -} Demo1_unk_04; // size = 0x14 - -typedef struct { - /* 0x0000 */ s16 unk_00; - /* 0x0002 */ s16 unk_02; - /* 0x0004 */ Demo1_unk_04 unk_04; -} Demo1; // size = 0x18 - -typedef struct { - char unk_00[0xC]; - s32 unk_0C; - f32 unk_10; - s16 unk_14; - s16 unk_16; - s16 unk_18; - s16 unk_1A; - f32 unk_1C; - f32 unk_20; - s16 unk_24; - s16 unk_26; - s16 unk_28; - s16 unk_2A; -} Normal3_Unk20; - -typedef struct { - f32 unk_00; - f32 unk_04; // distance - f32 unk_08; - f32 unk_0C; - f32 unk_10; - f32 unk_14; // fov - f32 unk_18; - s16 unk_1C; // theta - s16 unk_1E; - Normal3_Unk20 unk_20; -} Normal3; - -typedef union { - char data[0x50]; - s16 sh[2]; - s32 w; - f32 f; - DoorCamera doorCam; - Special0 spec0; - Demo1 demo1; - Normal3 normal3; -} camera_unk_00; - -typedef struct { - Vec3s unk_00; - Vec3s unk_06; - s16 unk_0C; - s16 unk_0E; -} struct_80041C10_ret; - -typedef struct { - /* 0x0000 */ camera_unk_00 unk_00; - /* 0x0050 */ Vec3f at; - /* 0x005C */ Vec3f eye; - /* 0x0068 */ Vec3f unk_68; - /* 0x0074 */ Vec3f eyeNext; - /* 0x0080 */ Vec3f unk_80; - /* 0x008C */ struct GlobalContext* globalCtx; - /* 0x0090 */ Player* player; - /* 0x0094 */ PosRot playerPosRot; - /* 0x00A8 */ Actor* target; - /* 0x00AC */ PosRot targetPosRot; - /* 0x00C0 */ Vec3f unk_C0; // has to do with how quickly the camera rotates link. - /* 0x00CC */ Vec3f unk_CC; // has to do with how quickly the camera zooms - /* 0x00D8 */ f32 unk_D8; - /* 0x00DC */ f32 dist; // possibly a Vec3f - /* 0x00E0 */ f32 unk_E0; - /* 0x00E4 */ Vec3f unk_E4; - /* 0x00F0 */ Vec3f unk_F0; - /* 0x00FC */ f32 fov; - /* 0x0100 */ f32 unk_100; // update rate of distance from link? - /* 0x0104 */ f32 unk_104; - /* 0x0108 */ Vec3f unk_108; - /* 0x0114 */ char unk_114[0x4]; - /* 0x0118 */ s32 unk_118; - /* 0x011C */ s32 unk_11C; - /* 0x0120 */ char unk_120[0x4]; - /* 0x0124 */ CutsceneCameraPoint* atPoints; - /* 0x0128 */ CutsceneCameraPoint* eyePoints; - /* 0x012C */ s16 relativeToPlayer; // camera Cutscene points are relative to player's position - /* 0x012E */ s16 unk_12E; - /* 0x0130 */ s16 uid; // Unique identifier of the camera. - /* 0x0132 */ char unk_132[0x02]; - /* 0x0134 */ Vec3s unk_134; - /* 0x013A */ Vec3s unk_13A; // seems to be a copy of unk_134, but unused for anything different? - /* 0x0140 */ s16 status; - /* 0x0142 */ s16 setting; // referred to as set - /* 0x0144 */ s16 mode; - /* 0x0146 */ s16 unk_146; // unknown if used - /* 0x0148 */ s16 unk_148; // ID for door camera? (see func_8005AD40) - /* 0x014A */ s16 unk_14A; // unknown if used - /* 0x014C */ s16 unk_14C; - /* 0x014E */ s16 unk_14E; - /* 0x0150 */ s16 unk_150; // unknown if used - /* 0x0152 */ s16 unk_152; - /* 0x0154 */ u16 unk_154; // appears to be some clone of setting? - /* 0x0156 */ s16 unk_156; - /* 0x0158 */ s16 unk_158; // unknown if used - /* 0x015A */ s16 roll; - /* 0x015C */ s16 unk_15C; // unknown if used - /* 0x015E */ s16 unk_15E; - /* 0x0160 */ s16 unk_160; - /* 0x0162 */ s16 unk_162; - /* 0x0164 */ s16 unk_164; - /* 0x0166 */ s16 unk_166; // unknown if used - /* 0x0168 */ s16 unk_168; - /* 0x016A */ s16 unk_16A; // unknown if used -} Camera; // size = 0x16C - -typedef struct { - s32 unk_00; - char unk_04[0x30]; - s32 unk_34; - s32 unk_38; - s32 unk_3C; - s32 unk_40; - s32 unk_44; - f32 unk_48; - s16 unk_4C; - f32 unk_50; - char unk_54[0x18]; - f32 unk_6C; - f32 unk_70; - f32 unk_74; - s16 unk_78; - s16 unk_7A; - s16 unk_7C; - s16 unk_7E; - s16 unk_80; - s16 unk_82; - s16 unk_84; - s16 unk_86; - char unk_88[0x1038]; - s16 unk_10C0; - s16 unk_10C2; - s16 unk_10C4; - s16 unk_10C6; - s16 unk_10C8; - s16 unk_10CA; -} DbgCamera; // size = 0x10CC; - typedef struct { /* 0x00 */ u8 seqIndex; /* 0x01 */ u8 nightSeqIndex; @@ -360,7 +191,8 @@ typedef struct { typedef struct { /* 0x00 */ char unk_00[0x2]; /* 0x02 */ s16 unk_02; - /* 0x04 */ char unk_04[0xC]; + /* 0x04 */ char unk_04[0x8]; + /* 0x0C */ u32 unk_0C; } WaterBox; // size = 0x10 typedef struct { @@ -1723,13 +1555,13 @@ typedef struct { } ShakeInfo; // size = 0x1E typedef struct { - /* 0x00 */ Vec3f vec1; - /* 0x0C */ Vec3f vec2; + /* 0x00 */ Vec3f atOffset; + /* 0x0C */ Vec3f eyeOffset; /* 0x18 */ s16 rotZ; /* 0x1A */ s16 unk_1A; /* 0x1C */ s16 zoom; /* 0x20 */ f32 unk_20; -} UnkQuakeCalcStruct; // size = 0x24 +} QuakeCamCalc; // size = 0x24 #define UCODE_NULL 0 diff --git a/include/z64camera.h b/include/z64camera.h new file mode 100644 index 0000000000..71ff853f57 --- /dev/null +++ b/include/z64camera.h @@ -0,0 +1,950 @@ +#ifndef _Z64CAMERA_H_ +#define _Z64CAMERA_H_ + +#include +#include + +#define CAM_STAT_CUT 0 +#define CAM_STAT_WAIT 1 +#define CAM_STAT_UNK3 3 +#define CAM_STAT_ACTIVE 7 +#define CAM_STAT_UNK100 0x100 + +typedef enum { + /* 0x00 */ CAM_SET_NONE, + /* 0x01 */ CAM_SET_NORMAL0, + /* 0x02 */ CAM_SET_NORMAL1, + /* 0x03 */ CAM_SET_DUNGEON0, + /* 0x04 */ CAM_SET_DUNGEON1, + /* 0x05 */ CAM_SET_NORMAL3, + /* 0x06 */ CAM_SET_HORSE0, + /* 0x07 */ CAM_SET_BOSS_GOMA, + /* 0x08 */ CAM_SET_BOSS_DODO, + /* 0x09 */ CAM_SET_BOSS_BARI, + /* 0x0A */ CAM_SET_BOSS_FGANON, + /* 0x0B */ CAM_SET_BOSS_BAL, + /* 0x0C */ CAM_SET_BOSS_SHADES, + /* 0x0D */ CAM_SET_BOSS_MOFA, + /* 0x0E */ CAM_SET_TWIN0, + /* 0x0F */ CAM_SET_TWIN1, + /* 0x10 */ CAM_SET_BOSS_GANON1, + /* 0x11 */ CAM_SET_BOSS_GANON2, + /* 0x12 */ CAM_SET_TOWER0, + /* 0x13 */ CAM_SET_TOWER1, + /* 0x14 */ CAM_SET_FIXED0, + /* 0x15 */ CAM_SET_FIXED1, + /* 0x16 */ CAM_SET_CIRCLE0, + /* 0x17 */ CAM_SET_CIRCLE2, + /* 0x18 */ CAM_SET_CIRCLE3, + /* 0x19 */ CAM_SET_PREREND0, + /* 0x1A */ CAM_SET_PREREND1, + /* 0x1B */ CAM_SET_PREREND3, + /* 0x1C */ CAM_SET_DOOR0, + /* 0x1D */ CAM_SET_DOORC, + /* 0x1E */ CAM_SET_RAIL3, + /* 0x1F */ CAM_SET_START0, + /* 0x20 */ CAM_SET_START1, + /* 0x21 */ CAM_SET_FREE0, + /* 0x22 */ CAM_SET_FREE2, + /* 0x23 */ CAM_SET_CIRCLE4, + /* 0x24 */ CAM_SET_CIRCLE5, + /* 0x25 */ CAM_SET_DEMO0, + /* 0x26 */ CAM_SET_DEMO1, + /* 0x27 */ CAM_SET_MORI1, + /* 0x28 */ CAM_SET_ITEM0, + /* 0x29 */ CAM_SET_ITEM1, + /* 0x2A */ CAM_SET_DEMO3, + /* 0x2B */ CAM_SET_DEMO4, + /* 0x2C */ CAM_SET_UFOBEAN, + /* 0x2D */ CAM_SET_LIFTBEAN, + /* 0x2E */ CAM_SET_SCENE0, + /* 0x2F */ CAM_SET_SCENE1, + /* 0x30 */ CAM_SET_HIDAN1, + /* 0x31 */ CAM_SET_HIDAN2, + /* 0x32 */ CAM_SET_MORI2, + /* 0x33 */ CAM_SET_MORI3, + /* 0x34 */ CAM_SET_TAKO, + /* 0x35 */ CAM_SET_SPOT05A, + /* 0x36 */ CAM_SET_SPOT05B, + /* 0x37 */ CAM_SET_HIDAN3, + /* 0x38 */ CAM_SET_ITEM2, + /* 0x39 */ CAM_SET_CIRCLE6, + /* 0x3A */ CAM_SET_NORMAL2, + /* 0x3B */ CAM_SET_FISHING, + /* 0x3C */ CAM_SET_DEMOC, + /* 0x3D */ CAM_SET_UO_FIBER, + /* 0x3E */ CAM_SET_DUNGEON2, + /* 0x3F */ CAM_SET_TEPPEN, + /* 0x40 */ CAM_SET_CIRCLE7, + /* 0x41 */ CAM_SET_NORMAL4, + /* 0x42 */ CAM_SET_MAX +} CameraSettingType; + +typedef enum { + /* 0x00 */ CAM_MODE_NORMAL, + /* 0x01 */ CAM_MODE_TARGET, // Original: CAM_MODE_PARALLEL + /* 0x02 */ CAM_MODE_FOLLOWTARGET, // Original: CAM_MODE_KEEPON + /* 0x03 */ CAM_MODE_TALK, + /* 0x04 */ CAM_MODE_BATTLE, + /* 0x05 */ CAM_MODE_CLIMB, + /* 0x06 */ CAM_MODE_FIRSTPERSON, // Original: CAM_MODE_SUBJECT + /* 0x07 */ CAM_MODE_BOWARROW, + /* 0x08 */ CAM_MODE_BOWARROWZ, + /* 0x09 */ CAM_MODE_FOOKSHOT, + /* 0x0A */ CAM_MODE_BOOMERANG, + /* 0x0B */ CAM_MODE_SLINGSHOT, // Original: CasdfsAM_MODE_PACHINCO + /* 0x0C */ CAM_MODE_CLIMBZ, + /* 0x0D */ CAM_MODE_JUMP, + /* 0x0E */ CAM_MODE_HANG, + /* 0x0F */ CAM_MODE_HANGZ, + /* 0x10 */ CAM_MODE_FREEFALL, + /* 0x11 */ CAM_MODE_CHARGE, + /* 0x12 */ CAM_MODE_STILL, + /* 0x13 */ CAM_MODE_PUSHPULL, + /* 0x14 */ CAM_MODE_BOOMFOLLLOW, // Original: CAM_MODE_BOOKEEPON + /* 0x15 */ CAM_MODE_MAX +} CameraModeType; + +typedef enum { + /* 0x00 */ CAM_FUNC_NONE, + /* 0x01 */ CAM_FUNC_NORM0, + /* 0x02 */ CAM_FUNC_NORM1, + /* 0x03 */ CAM_FUNC_NORM2, + /* 0x04 */ CAM_FUNC_NORM3, + /* 0x05 */ CAM_FUNC_NORM4, + /* 0x06 */ CAM_FUNC_PARA0, + /* 0x07 */ CAM_FUNC_PARA1, + /* 0x08 */ CAM_FUNC_PARA2, + /* 0x09 */ CAM_FUNC_PARA3, + /* 0x0A */ CAM_FUNC_PARA4, + /* 0x0B */ CAM_FUNC_KEEP0, + /* 0x0C */ CAM_FUNC_KEEP1, + /* 0x0D */ CAM_FUNC_KEEP2, + /* 0x0E */ CAM_FUNC_KEEP3, + /* 0x0F */ CAM_FUNC_KEEP4, + /* 0x10 */ CAM_FUNC_SUBJ0, + /* 0x11 */ CAM_FUNC_SUBJ1, + /* 0x12 */ CAM_FUNC_SUBJ2, + /* 0x13 */ CAM_FUNC_SUBJ3, + /* 0x14 */ CAM_FUNC_SUBJ4, + /* 0x15 */ CAM_FUNC_JUMP0, + /* 0x16 */ CAM_FUNC_JUMP1, + /* 0x17 */ CAM_FUNC_JUMP2, + /* 0x18 */ CAM_FUNC_JUMP3, + /* 0x19 */ CAM_FUNC_JUMP4, + /* 0x1A */ CAM_FUNC_BATT0, + /* 0x1B */ CAM_FUNC_BATT1, + /* 0x1C */ CAM_FUNC_BATT2, + /* 0x1D */ CAM_FUNC_BATT3, + /* 0x1E */ CAM_FUNC_BATT4, + /* 0x1F */ CAM_FUNC_FIXD0, + /* 0x20 */ CAM_FUNC_FIXD1, + /* 0x21 */ CAM_FUNC_FIXD2, + /* 0x22 */ CAM_FUNC_FIXD3, + /* 0x23 */ CAM_FUNC_FIXD4, + /* 0x24 */ CAM_FUNC_DATA0, + /* 0x25 */ CAM_FUNC_DATA1, + /* 0x26 */ CAM_FUNC_DATA2, + /* 0x27 */ CAM_FUNC_DATA3, + /* 0x28 */ CAM_FUNC_DATA4, + /* 0x29 */ CAM_FUNC_UNIQ0, + /* 0x2A */ CAM_FUNC_UNIQ1, + /* 0x2B */ CAM_FUNC_UNIQ2, + /* 0x2C */ CAM_FUNC_UNIQ3, + /* 0x2D */ CAM_FUNC_UNIQ4, + /* 0x2E */ CAM_FUNC_UNIQ5, + /* 0x2F */ CAM_FUNC_UNIQ6, + /* 0x30 */ CAM_FUNC_UNIQ7, + /* 0x31 */ CAM_FUNC_UNIQ8, + /* 0x32 */ CAM_FUNC_UNIQ9, + /* 0x33 */ CAM_FUNC_DEMO0, + /* 0x34 */ CAM_FUNC_DEMO1, + /* 0x35 */ CAM_FUNC_DEMO2, + /* 0x36 */ CAM_FUNC_DEMO3, + /* 0x37 */ CAM_FUNC_DEMO4, + /* 0x38 */ CAM_FUNC_DEMO5, + /* 0x39 */ CAM_FUNC_DEMO6, + /* 0x3A */ CAM_FUNC_DEMO7, + /* 0x3B */ CAM_FUNC_DEMO8, + /* 0x3C */ CAM_FUNC_DEMO9, + /* 0x3D */ CAM_FUNC_SPEC0, + /* 0x3E */ CAM_FUNC_SPEC1, + /* 0x3F */ CAM_FUNC_SPEC2, + /* 0x40 */ CAM_FUNC_SPEC3, + /* 0x41 */ CAM_FUNC_SPEC4, + /* 0x42 */ CAM_FUNC_SPEC5, + /* 0x43 */ CAM_FUNC_SPEC6, + /* 0x44 */ CAM_FUNC_SPEC7, + /* 0x45 */ CAM_FUNC_SPEC8, + /* 0x46 */ CAM_FUNC_SPEC9, + /* 0x47 */ CAM_FUNC_MAX +} CameraFuncType; + +typedef struct { + /* 0x0000 */ Vec3f collisionClosePoint; + /* 0x000C */ CollisionPoly* atEyePoly; + /* 0x0010 */ f32 swingUpdateRate; + /* 0x0014 */ s16 unk_14; + /* 0x0016 */ s16 unk_16; + /* 0x0018 */ s16 unk_18; + /* 0x001A */ s16 swingUpdateRateTimer; +} SwingAnimation; // size = 0x1C + +typedef struct { + /* 0x0000 */ SwingAnimation swing; + /* 0x001C */ f32 yOffset; + /* 0x0020 */ f32 unk_20; + /* 0x0024 */ s16 slopePitchAdj; + /* 0x0026 */ s16 swingYawTarget; + /* 0x0028 */ s16 unk_28; + /* 0x002A */ s16 startSwingTimer; +} Normal1Anim; // size = 0x2C + +typedef struct { + /* 0x0000 */ f32 yOffset; + /* 0x0004 */ f32 distMin; + /* 0x0008 */ f32 distMax; + /* 0x000C */ f32 unk_0C; + /* 0x0010 */ f32 unk_10; + /* 0x0014 */ f32 unk_14; + /* 0x0018 */ f32 fovTarget; + /* 0x001C */ f32 atLERPScaleMax; + /* 0x0020 */ s16 pitchTarget; + /* 0x0022 */ s16 interfaceFlags; + /* 0x0024 */ Normal1Anim anim; +} Normal1; // size = 0x50 + +typedef struct { + /* 0x0000 */ Vec3f unk_00; + /* 0x000C */ Vec3f unk_0C; + /* 0x0018 */ f32 unk_18; + /* 0x001C */ f32 unk_1C; + /* 0x0020 */ s16 unk_20; + /* 0x0022 */ s16 unk_22; + /* 0x0024 */ f32 unk_24; + /* 0x0028 */ s16 unk_28; +} Normal2Anim; // size = 0x2A + +typedef struct { + /* 0x0000 */ f32 unk_00; + /* 0x0004 */ f32 unk_04; + /* 0x0008 */ f32 unk_08; + /* 0x000C */ f32 unk_0C; + /* 0x0010 */ f32 unk_10; + /* 0x0014 */ f32 unk_14; + /* 0x0018 */ f32 unk_18; + /* 0x001C */ s16 unk_1C; + /* 0x001E */ s16 interfaceFlags; + /* 0x0020 */ Normal2Anim anim; +} Normal2; // size = 0x4A + +typedef struct { + /* 0x0000 */ SwingAnimation swing; + /* 0x001C */ f32 unk_1C; + /* 0x0020 */ f32 unk_20; + /* 0x0024 */ s16 curPitch; + /* 0x0026 */ s16 yawUpdAmt; + /* 0x0028 */ s16 yawTimer; + /* 0x002A */ s16 distTimer; +} Normal3Anim; // size = 0x2C + +typedef struct { + /* 0x0000 */ f32 yOffset; + /* 0x0004 */ f32 distMin; + /* 0x0008 */ f32 distMax; + /* 0x000C */ f32 yawUpdateSpeed; + /* 0x0010 */ f32 unk_10; + /* 0x0014 */ f32 fovTarget; + /* 0x0018 */ f32 maxAtLERPScale; + /* 0x001C */ s16 pitchTarget; + /* 0x001E */ s16 interfaceFlags; + /* 0x0020 */ Normal3Anim anim; +} Normal3; // size = 0x4C + +typedef struct { + /* 0x0000 */ Vec3f unk_00; + /* 0x000C */ f32 yTarget; + /* 0x0010 */ s16 unk_10; + /* 0x0012 */ s16 yawTarget; + /* 0x0014 */ s16 pitchTarget; + /* 0x0016 */ s16 unk_16; + /* 0x0018 */ s16 animTimer; +} Parallel1Anim; // size = 0x1A + +typedef struct { + /* 0x0000 */ f32 unk_00; + /* 0x0004 */ f32 distTarget; + /* 0x0008 */ f32 unk_08; + /* 0x000C */ f32 unk_0C; + /* 0x0010 */ f32 fovTarget; + /* 0x0014 */ f32 unk_14; + /* 0x0018 */ f32 unk_18; + /* 0x001C */ f32 unk_1C; + /* 0x0020 */ s16 pitchTarget; + /* 0x0022 */ s16 yawTarget; + /* 0x0024 */ s16 interfaceFlags; + /* 0x0028 */ Parallel1Anim anim; +} Parallel1; + +typedef struct { + + /* 0x0000 */ SwingAnimation swing; + /* 0x001C */ f32 unk_1C; + /* 0x0020 */ VecSph unk_20; +} Jump1Anim; // size = 0x28 + +typedef struct { + /* 0x0000 */ f32 atYOffset; + /* 0x0004 */ f32 distMin; + /* 0x0008 */ f32 distMax; + /* 0x000C */ f32 yawUpateRateTarget; + /* 0x0010 */ f32 maxYawUpdate; + /* 0x0014 */ f32 unk_14; // never used. + /* 0x0018 */ f32 atLERPScaleMax; + /* 0x001C */ s16 interfaceFlags; + /* 0x0020 */ Jump1Anim anim; +} Jump1; // size 0x48 + +typedef struct { + /* 0x0000 */ f32 floorY; + /* 0x0004 */ s16 yawTarget; + /* 0x0006 */ s16 initYawDiff; // unused, set but not read. + /* 0x0008 */ s16 yawAdj; + /* 0x000A */ s16 onFloor; // unused, set but not read + /* 0x000C */ s16 animTimer; +} Jump2Anim; // size = 0x10 + +typedef struct { + /* 0x0000 */ f32 atYOffset; + /* 0x0004 */ f32 minDist; + /* 0x0008 */ f32 maxDist; + /* 0x000C */ f32 minMaxDistFactor; + /* 0x0010 */ f32 yawUpdRateTarget; + /* 0x0014 */ f32 xzUpdRateTarget; + /* 0x0018 */ f32 fovTarget; + /* 0x001C */ f32 atLERPStepScale; + /* 0x0020 */ s16 interfaceFlags; + /* 0x0024 */ Jump2Anim anim; +} Jump2; // size = 0x34 + +typedef struct { + /* 0x0000 */ SwingAnimation swing; + /* 0x001C */ f32 unk_1C; + /* 0x0020 */ s16 animTimer; + /* 0x0022 */ s16 mode; +} Jump3Anim; // size = 0x24 + +typedef struct { + /* 0x0000 */ f32 yOffset; + /* 0x0004 */ f32 distMin; + /* 0x0008 */ f32 distMax; + /* 0x000C */ f32 swingUpdateRate; + /* 0x0010 */ f32 unk_10; + /* 0x0014 */ f32 unk_14; + /* 0x0018 */ f32 fovTarget; + /* 0x001C */ f32 unk_1C; + /* 0x0020 */ s16 pitchTarget; + /* 0x0022 */ s16 interfaceFlags; + /* 0x0024 */ Jump3Anim anim; +} Jump3; // size = 0x48 + +typedef struct { + /* 0x0000 */ f32 initialEyeToAtDist; + /* 0x0004 */ f32 roll; + /* 0x0008 */ f32 yPosOffset; + /* 0x000C */ Actor* target; + /* 0x0010 */ f32 unk_10; + /* 0x0014 */ s16 unk_14; // unused + /* 0x0016 */ s16 initialEyeToAtYaw; + /* 0x0018 */ s16 initialEyeToAtPitch; + /* 0x001A */ s16 animTimer; + /* 0x001C */ s16 chargeTimer; +} Battle1Anim; // size = 0x1E + +typedef struct { + /* 0x0000 */ f32 yOffset; + /* 0x0004 */ f32 distance; + /* 0x0008 */ f32 swingYawInitial; + /* 0x000C */ f32 swingYawFinal; + /* 0x0010 */ f32 swingPitchInitial; + /* 0x0014 */ f32 swingPitchFinal; + /* 0x0018 */ f32 swingPitchAdj; + /* 0x001C */ f32 fov; + /* 0x0020 */ f32 atLERPScaleOnGround; + /* 0x0024 */ f32 yOffsetOffGround; + /* 0x0028 */ f32 atLERPScaleOffGround; + /* 0x002C */ s16 flags; + /* 0x0030 */ Battle1Anim anim; +} Battle1; // size = 0x50 + +typedef struct { + /* 0x0000 */ s16 animTimer; +} Battle4Anim; // size = 0x2 + +typedef struct { + /* 0x0000 */ f32 yOffset; + /* 0x0004 */ f32 rTarget; + /* 0x0008 */ s16 pitchTarget; + /* 0x000C */ f32 lerpUpdateRate; + /* 0x0010 */ f32 fovTarget; + /* 0x0014 */ f32 atLERPTarget; + /* 0x0018 */ s16 interfaceFlags; + /* 0x001A */ s16 unk_1A; + /* 0x001C */ Battle4Anim anim; +} Battle4; // size = 0x20 + +typedef struct { + /* 0x0000 */ f32 unk_00; + /* 0x0004 */ f32 unk_04; + /* 0x0008 */ f32 unk_08; + /* 0x000C */ Actor* unk_0C; + /* 0x0010 */ s16 unk_10; + /* 0x0012 */ s16 unk_12; + /* 0x0014 */ s16 unk_14; + /* 0x0016 */ s16 unk_16; +} Keep1Anim; // size = 0x18 + +typedef struct { + /* 0x0000 */ f32 unk_00; + /* 0x0004 */ f32 unk_04; + /* 0x0008 */ f32 unk_08; + /* 0x000C */ f32 unk_0C; + /* 0x0010 */ f32 unk_10; + /* 0x0014 */ f32 unk_14; + /* 0x0018 */ f32 unk_18; + /* 0x001C */ f32 unk_1C; + /* 0x0020 */ f32 unk_20; + /* 0x0024 */ f32 unk_24; + /* 0x0028 */ f32 unk_28; + /* 0x002C */ f32 unk_2C; + /* 0x0030 */ s16 interfaceFlags; + /* 0x0034 */ Keep1Anim anim; +} KeepOn1; // size = 0x4C + +typedef struct { + /* 0x0000 */ Vec3f eyeToAtTarget; // esentially a VecSph, but all floats. + /* 0x000C */ Actor* target; + /* 0x0010 */ Vec3f atTarget; + /* 0x001C */ s16 animTimer; +} Keep3Anim; // size = 0x20 + +typedef struct { + /* 0x0000 */ f32 yOffset; + /* 0x0004 */ f32 minDist; + /* 0x0008 */ f32 maxDist; + /* 0x000C */ f32 swingYawInital; + /* 0x0010 */ f32 swingYawFinal; + /* 0x0014 */ f32 swingPitchInitial; + /* 0x0018 */ f32 swingPitchFinal; + /* 0x001C */ f32 swingPitchAdj; + /* 0x0020 */ f32 fovTarget; + /* 0x0024 */ f32 atLERPScaleMax; + /* 0x0028 */ s16 initTimer; + /* 0x002A */ s16 flags; + /* 0x002C */ Keep3Anim anim; +} KeepOn3; // size = 0x4C + +typedef struct { + /* 0x0000 */ f32 unk_00; + /* 0x0004 */ f32 unk_04; + /* 0x0008 */ f32 unk_08; + /* 0x000C */ s16 unk_0C; + /* 0x000E */ s16 unk_0E; + /* 0x0010 */ s16 unk_10; + /* 0x0012 */ s16 unk_12; + /* 0x0014 */ s16 unk_14; +} KeepOn4_Unk20; // size = 0x14 + +typedef struct { + /* 0x0000 */ f32 unk_00; + /* 0x0004 */ f32 unk_04; + /* 0x0008 */ f32 unk_08; + /* 0x000C */ f32 unk_0C; + /* 0x0010 */ f32 unk_10; + /* 0x0014 */ f32 unk_14; + /* 0x0018 */ f32 unk_18; + /* 0x001C */ s16 unk_1C; + /* 0x001E */ s16 unk_1E; + /* 0x0020 */ KeepOn4_Unk20 unk_20; +} KeepOn4; // size = 0x34 + +typedef struct { + /* 0x0000 */ f32 fovTarget; + /* 0x0004 */ s16 animTimer; +} KeepOn0Anim; // size = 0x8 + +typedef struct { + /* 0x0000 */ f32 fovScale; + /* 0x0004 */ f32 yawScale; + /* 0x0008 */ s16 timerInit; + /* 0x000A */ s16 interfaceFlags; + /* 0x000C */ KeepOn0Anim anim; +} KeepOn0; // size = 0x14 + +typedef struct { + /* 0x0000 */ PosRot eyePosRotTarget; + /* 0x0014 */ s16 fov; +} Fixed1Anim; // size = 0x18 + +typedef struct { + /* 0x0000 */ f32 unk_00; // seems to be unused? + /* 0x0004 */ f32 lerpStep; + /* 0x0008 */ f32 fov; + /* 0x000C */ s16 interfaceFlags; + /* 0x0010 */ Fixed1Anim anim; +} Fixed1; // size = 0x28 + +typedef struct { + /* 0x0000 */ Vec3f eye; + /* 0x000C */ s16 fov; +} Fixed2InitParams; // size = 0x10 + +typedef struct { + /* 0x0000 */ f32 yOffset; + /* 0x0004 */ f32 eyeStepScale; + /* 0x0008 */ f32 posStepScale; + /* 0x000C */ f32 fov; + /* 0x0010 */ s16 interfaceFlags; + /* 0x0014 */ Fixed2InitParams initParams; +} Fixed2; // size = 0x24 + +typedef struct { + /* 0x0000 */ Vec3s rot; + /* 0x0006 */ s16 fov; + /* 0x0008 */ s16 updDirTimer; + /* 0x000A */ s16 jfifId; +} Fixed3Anim; // size = 0xC + +typedef struct { + /* 0x000 */ s16 interfaceFlags; + /* 0x0004 */ Fixed3Anim anim; +} Fixed3; // size = 0x10 + +typedef struct { + /* 0x0000 */ Vec3f eyeTarget; + /* 0x000C */ f32 followSpeed; +} Fixed4Anim; // size = 0x10 + +typedef struct { + /* 0x0000 */ f32 yOffset; + /* 0x0004 */ f32 speedToEyePos; + /* 0x0008 */ f32 followSpeed; + /* 0x000C */ f32 fov; + /* 0x0010 */ s16 interfaceFlags; + /* 0x0014 */ Fixed4Anim anim; +} Fixed4; // size = 0x24 + +typedef struct { + /* 0x0000 */ f32 r; + /* 0x0004 */ s16 yaw; + /* 0x0006 */ s16 pitch; + /* 0x0008 */ s16 animTimer; +} Subj3Anim; // size = 0xC + +typedef struct { + /* 0x0000 */ f32 eyeNextYOffset; + /* 0x0004 */ f32 eyeDist; + /* 0x0008 */ f32 eyeNextDist; + /* 0x000C */ f32 unk_0C; // unused + /* 0x0010 */ Vec3f atOffset; + /* 0x001C */ f32 fovTarget; + /* 0x0020 */ s16 interfaceFlags; + /* 0x0024 */ Subj3Anim anim; +} Subj3; // size = 0x30 + +typedef struct { + /* 0x0000 */ Linef unk_00; + /* 0x0018 */ f32 unk_18; + /* 0x001C */ f32 unk_1C; + /* 0x0020 */ f32 unk_20; + /* 0x0024 */ f32 unk_24; + /* 0x0028 */ f32 unk_28; + /* 0x002C */ s16 unk_2C; + /* 0x002E */ s16 unk_2E; + /* 0x0030 */ s16 unk_30; + /* 0x0032 */ s16 unk_32; +} Subj4Anim; // size = 0x34 + +typedef struct { + /* 0x0000 */ s16 interfaceFlags; + /* 0x0004 */ Subj4Anim anim; +} Subj4; // size = 0x38 + +typedef struct { + /* 0x0000 */ PosRot eyePosRot; + /* 0x0014 */ char unk_14[0x8]; + /* 0x001C */ s16 fov; + /* 0x001E */ s16 jfifId; +} Data4InitParams; // size = 0x20 + +typedef struct { + /* 0x0000 */ f32 yOffset; + /* 0x0004 */ f32 fov; + /* 0x0008 */ s16 interfaceFlags; + /* 0x000C */ Data4InitParams initParams; +} Data4; // size = 0x2C + +typedef struct { + /* 0x0000 */ f32 unk_00; // unused + /* 0x0004 */ s16 yawTarget; + /* 0x0006 */ s16 yawTargetAdj; + /* 0x0008 */ s16 timer; +} Unique1Anim; // size = 0xC + +typedef struct { + /* 0x0000 */ f32 yOffset; + /* 0x0004 */ f32 distMin; + /* 0x0008 */ f32 distMax; + /* 0x000C */ char unk_0C[4]; // unused + /* 0x0010 */ f32 fovTarget; + /* 0x0014 */ f32 atLERPScaleMax; + /* 0x0018 */ s16 pitchTarget; + /* 0x001A */ s16 interfaceFlags; + /* 0x001C */ Unique1Anim anim; +} Unique1; // size = 0x28 + +typedef struct { + /* 0x0000 */ f32 unk_00; + /* 0x0004 */ s16 unk_04; +} Unique2Unk10; // size = 0x8 + +typedef struct { + /* 0x0000 */ f32 yOffset; + /* 0x0004 */ f32 distTarget; + /* 0x0008 */ f32 fovTarget; + /* 0x000C */ s16 interfaceFlags; + /* 0x0010 */ Unique2Unk10 unk_10; // unused, values set but not read. +} Unique2; // size = 0x18 + +typedef struct { + /* 0x0000 */ f32 initialFov; + /* 0x0004 */ f32 initialDist; +} Unique3Anim; // size = 0x8 + +typedef struct { + /* 0x0000 */ f32 yOffset; + /* 0x0004 */ f32 fov; + /* 0x0008 */ s16 interfaceFlags; +} Unique3Params; // size = 0xC + +typedef struct { + /* 0x0000 */ struct Actor* doorActor; + /* 0x0004 */ s16 camDataIdx; + /* 0x0006 */ s16 timer1; + /* 0x0008 */ s16 timer2; + /* 0x000A */ s16 timer3; +} DoorParams; // size = 0xC + +typedef struct { + /* 0x0000 */ DoorParams doorParams; + /* 0x000C */ Unique3Params params; + /* 0x0018 */ Unique3Anim anim; +} Unique3; // size = 0x20 + +typedef struct { + /* 0x0000 */ Vec3f initalPos; + /* 0x000C */ s16 animTimer; + /* 0x0010 */ Linef sceneCamPosPlayerLine; +} Unique0Anim; // size = 0x28 + +typedef struct { + /* 0x0000 */ s16 interfaceFlags; + /* 0x0004 */ Unique0Anim anim; +} Unique0Params; // size = 0x2C + +typedef struct { + /* 0x0000 */ DoorParams doorParams; + /* 0x000C */ Unique0Params uniq0; +} Unique0; // size = 0x38 + +typedef struct { + /* 0x0000 */ s16 interfaceFlags; +} Unique6; // size = 0x4 + +typedef union { + /* 0x0000 */ Vec3s unk_00; +} Unique7Unk8; // size = 0x8 + +typedef struct { + /* 0x0000 */ f32 fov; + /* 0x0004 */ s16 interfaceFlags; + /* 0x0006 */ s16 align; + // unk_08 goes unused. + /* 0x0008 */ Unique7Unk8 unk_08; +} Unique7; // size = 0x10 + +/** initFlags + * & 0x00FF = atInitFlags + * & 0xFF00 = eyeInitFlags + * 0x1: Direct Copy of atTargetInit + * if initFlags & 0x6060: use posRot2 for focus point + * 0x2: Add atTargetInit to view's lookAt + * if initFlags & 0x6060: use posRot for focus point + * 0x3: Add atTargetInit to camera's at + * 0x4: Don't update targets? + * 0x8: flag to use atTagetInit as f32 pitch, yaw, r + * 0x10: ? unused + * 0x20: focus on player +*/ +typedef struct { + /* 0x0000 */ u8 actionFlags; + /* 0x0001 */ u8 unk_01; + /* 0x0002 */ s16 initFlags; + /* 0x0004 */ s16 timerInit; + /* 0x0006 */ s16 rollTargetInit; + /* 0x0008 */ f32 fovTargetInit; + /* 0x000C */ f32 lerpStepScale; + /* 0x0010 */ Vec3f atTargetInit; + /* 0x001C */ Vec3f eyeTargetInit; +} OnePointDemoFull; /* size = 0x28 */ + +typedef struct { + /* 0x0000 */ OnePointDemoFull* curKeyFrame; + /* 0x0004 */ Vec3f atTarget; + /* 0x0010 */ Vec3f eyeTarget; + /* 0x001C */ Vec3f playerPos; + /* 0x0028 */ f32 fovTarget; + /* 0x002C */ VecSph atEyeOffsetTarget; + /* 0x0034 */ s16 rollTarget; + /* 0x0036 */ s16 curKeyFrameIdx; + /* 0x0038 */ s16 unk_38; + /* 0x003A */ s16 isNewKeyFrame; + /* 0x003C */ s16 keyFrameTimer; +} Unique9Anim; // size = 0x3E + +typedef struct { + /* 0x0000 */ s16 interfaceFlags; + /* 0x0004 */ Unique9Anim anim; +} Unique9; // size = 0x40 + +typedef struct { + /* 0x0000 */ s32 keyFrameCnt; + /* 0x0004 */ OnePointDemoFull* keyFrames; + /* 0x0008 */ Unique9 uniq9; +} Unique9OnePointDemo; // size = 0x48 + +typedef struct { + /* 0x0000 */ f32 curFrame; + /* 0x0004 */ s16 keyframe; +} Demo1Anim; // size = 0x14 + +typedef struct { + /* 0x0000 */ s16 interfaceFlags; + /* 0x0004 */ Demo1Anim anim; +} Demo1; // size = 0x18 + +typedef struct { + /* 0x0000 */ Vec3f initialAt; + /* 0x000C */ f32 unk_0C; + /* 0x0010 */ s16 animFrame; + /* 0x0012 */ s16 yawDir; +} Demo3Anim; // size = 0x14 + +typedef struct { + /* 0x0000 */ f32 fov; + /* 0x0004 */ f32 unk_04; // unused + /* 0x0008 */ s16 interfaceFlags; + /* 0x000C */ Demo3Anim anim; +} Demo3; // size = 0x20 + +typedef struct { + /* 0x0000 */ s16 animTimer; + /* 0x0004 */ Vec3f atTarget; +} Demo6Anim; // size = 0x10 + +typedef struct { + /* 0x0000 */ s16 interfaceFlags; + /* 0x0002 */ s16 unk_02; + /* 0x0004 */ Demo6Anim anim; +} Demo6; // size = 0x14 + +typedef struct { + /* 0x0000 */ f32 curFrame; + /* 0x0004 */ s16 keyframe; + /* 0x0006 */ s16 doLERPAt; + /* 0x0008 */ s16 finishAction; + /* 0x000A */ s16 animTimer; +} Demo9Anim; // size = 0xC + +typedef struct { + /* 0x0000 */ s16 interfaceFlags; + /* 0x0004 */ Demo9Anim anim; +} Demo9; + +typedef struct { + /* 0x0000 */ CutsceneCameraPoint* atPoints; + /* 0x0004 */ CutsceneCameraPoint* eyePoints; + /* 0x0008 */ s16 actionParameters; + /* 0x000A */ s16 initTimer; +} OnePointDemoCamera; // size = 0xC + +typedef struct { + /* 0x0000 */ OnePointDemoCamera onePointDemo; + /* 0x000C */ Demo9 demo9; +} Demo9OnePointDemo; // size = 0x1C + +typedef struct { + /* 0x0000 */ f32 lerpAtScale; + /* 0x0004 */ s16 interfaceFlags; +} Special0; // size = 0x8 + +typedef struct { + /* 0x0000 */ s16 initalTimer; +} Special4; // size = 0x4 + +typedef struct { + /* 0x0000 */ s16 animTimer; +} Special5Anim; // size = 0x2 + +typedef struct { + /* 0x0000 */ f32 yOffset; + /* 0x0004 */ f32 eyeDist; + /* 0x0008 */ f32 minDistForRot; + /* 0x000C */ f32 fovTarget; + /* 0x0010 */ f32 atMaxLERPScale; + /* 0x0014 */ s16 timerInit; + /* 0x0016 */ s16 pitch; + /* 0x0018 */ s16 interfaceFlags; + /* 0x001A */ s16 unk_1A; + /* 0x001C */ Special5Anim anim; +} Special5; // size = 0x20 + +typedef struct { + /* 0x0000 */ s16 idx; +} Special7; // size = 0x4 + +typedef struct { + /* 0x0000 */ f32 initalPlayerY; + /* 0x0004 */ s16 animTimer; +} Special6Anim; // size = 0x8 + +typedef struct { + /* 0x0000 */ s16 interfaceFlags; + /* 0x0004 */ Special6Anim anim; +} Special6; // size = 0xC + +typedef struct { + /* 0x0000 */ s16 targetYaw; +} Special9Anim; // size = 0x2 + +typedef struct { + /* 0x0000 */ f32 yOffset; + /* 0x0004 */ f32 unk_04; + /* 0x0008 */ s16 interfaceFlags; + /* 0x000A */ s16 unk_0A; + /* 0x000C */ Special9Anim anim; +} Special9Params; // size = 0x10 + +typedef struct { + /* 0x0000 */ DoorParams doorParams; + /* 0x000C */ Special9Params params; +} Special9; // size = 0x1C + +typedef struct { + /* 0x0000 */ Vec3f pos; + /* 0x000C */ Vec3f norm; + /* 0x0018 */ CollisionPoly* poly; + /* 0x001C */ VecSph sphNorm; + /* 0x0024 */ u32 bgId; +} CamColChk; // size = 0x28 + +typedef struct { + char paramData[0x50]; + /* 0x0050 */ Vec3f at; + /* 0x005C */ Vec3f eye; + /* 0x0068 */ Vec3f up; + /* 0x0074 */ Vec3f eyeNext; + /* 0x0080 */ Vec3f skyboxOffset; + /* 0x008C */ struct GlobalContext* globalCtx; + /* 0x0090 */ struct Player* player; + /* 0x0094 */ PosRot playerPosRot; + /* 0x00A8 */ struct Actor* target; + /* 0x00AC */ PosRot targetPosRot; + /* 0x00C0 */ f32 rUpdateRateInv; + /* 0x00C4 */ f32 pitchUpdateRateInv; + /* 0x00C8 */ f32 yawUpdateRateInv; + /* 0x00CC */ f32 xzOffsetUpdateRate; + /* 0x00D0 */ f32 yOffsetUpdateRate; + /* 0x00D4 */ f32 fovUpdateRate; + /* 0x00D8 */ f32 xzSpeed; + /* 0x00DC */ f32 dist; + /* 0x00E0 */ f32 speedRatio; + /* 0x00E4 */ Vec3f posOffset; + /* 0x00F0 */ Vec3f playerPosDelta; + /* 0x00FC */ f32 fov; + /* 0x0100 */ f32 atLERPStepScale; + /* 0x0104 */ f32 playerGroundY; + /* 0x0108 */ Vec3f floorNorm; + /* 0x0114 */ f32 waterYPos; + /* 0x0118 */ s32 waterPrevCamIdx; + /* 0x011C */ s32 waterPrevCamSetting; + /* 0x0120 */ s32 waterQuakeId; + /* 0x0124 */ void* data0; + /* 0x0128 */ void* data1; + /* 0x012C */ s16 data2; + /* 0x012E */ s16 data3; + /* 0x0130 */ s16 uid; + /* 0x0132 */ char unk_132[0x02]; + /* 0x0134 */ Vec3s inputDir; + /* 0x013A */ Vec3s camDir; + /* 0x0140 */ s16 status; + /* 0x0142 */ s16 setting; + /* 0x0144 */ s16 mode; + /* 0x0146 */ s16 bgCheckId; + /* 0x0148 */ s16 camDataIdx; + /* 0x014A */ s16 unk_14A; + /* 0x014C */ s16 unk_14C; + /* 0x014E */ s16 childCamIdx; + /* 0x0150 */ s16 unk_150; + /* 0x0152 */ s16 unk_152; + /* 0x0154 */ s16 prevSetting; + /* 0x0156 */ s16 nextCamDataIdx; + /* 0x0158 */ s16 nextBGCheckId; + /* 0x015A */ s16 roll; + /* 0x015C */ s16 paramFlags; + /* 0x015E */ s16 animState; + /* 0x0160 */ s16 timer; + /* 0x0162 */ s16 parentCamIdx; + /* 0x0164 */ s16 thisIdx; + /* 0x0166 */ s16 prevCamDataIdx; + /* 0x0168 */ s16 unk_168; + /* 0x016A */ s16 unk_16A; +} Camera; // size = 0x16C + +/** + * Debug Camera +*/ +typedef struct { + /* 0x0000 */ UNK_TYPE unk_00; + /* 0x0004 */ Vec3f at; + /* 0x0010 */ Vec3f eye; + /* 0x001C */ Vec3f up; + /* 0x0028 */ Vec3f unk_28; + /* 0x0034 */ UNK_TYPE unk_34; + /* 0x0038 */ UNK_TYPE unk_38; + /* 0x003C */ UNK_TYPE unk_3C; + /* 0x0040 */ UNK_TYPE unk_40; + /* 0x0044 */ UNK_TYPE unk_44; + /* 0x0048 */ f32 fov; + /* 0x004C */ s16 unk_4C; + /* 0x0050 */ f32 unk_50; + /* 0x0054 */ Vec3f unk_54; + /* 0x0054 */ Vec3f unk_60; + /* 0x006C */ f32 unk_6C; + /* 0x0070 */ f32 unk_70; + /* 0x0074 */ f32 unk_74; + /* 0x0078 */ s16 unk_78; + /* 0x007A */ s16 unk_7A; + /* 0x007C */ s16 unk_7C; + /* 0x007E */ s16 unk_7E; + /* 0x0080 */ s16 unk_80; + /* 0x0082 */ s16 unk_82; + /* 0x0084 */ s16 unk_84; + /* 0x0086 */ s16 unk_86; + /* 0x0088 */ s32 unk_88; + /* 0x008A */ char unk_8C[0x1034]; + /* 0x10C0 */ Vec3s unk_10C0; + /* 0x10C6 */ Vec3s unk_10C6; +} DBCamera; // size = 0x10CC + +#endif diff --git a/include/z64math.h b/include/z64math.h index a34647a2da..76600d7e17 100644 --- a/include/z64math.h +++ b/include/z64math.h @@ -35,7 +35,6 @@ typedef struct { f32 radius; } Spheref; // size = 0x10 - typedef struct { Vec3f normal; f32 originDist; @@ -77,13 +76,31 @@ typedef struct { /* 0x06 */ s16 yaw; // azimuthal angle } VecSph; // size = 0x08 +#define F32_LERP(v0,v1,t) ((1.0f - (t)) * (v0) + (t) * (v1)) +#define F32_LERPIMP(v0, v1, t) (v0 + ((v1 - v0) * t)) +#define F32_LERPIMPINV(v0, v1, t) ((v0) + (((v1) - (v0)) / (t))) +#define BINANG_LERPIMP(v0, v1, t) ((v0) + (s16)(BINANG_SUB((v1), (v0)) * (t))) +#define BINANG_LERPIMPINV(v0, v1, t) ((v0) + BINANG_SUB((v1), (v0)) / (t)) + +#define VEC3F_LERPIMPDST(dst, v0, v1, t){ \ + (dst)->x = (v0)->x + (((v1)->x - (v0)->x) * t); \ + (dst)->y = (v0)->y + (((v1)->y - (v0)->y) * t); \ + (dst)->z = (v0)->z + (((v1)->z - (v0)->z) * t); \ +} + #define IS_ZERO(f) (fabsf(f) < 0.008f) +#define COLPOLY_NORM_FRAC (1.0f / 32767) +#define BGCHECK_Y_MIN -32000.0f /** * Trig macros */ -#define DEGF_TO_BINANG(degreesf) ((s16)(degreesf * (65535.0f / 360.0f) + 0.5f)) +#define DEGF_TO_BINANG(degreesf) (s16)(degreesf * 182.04167f + 0.5f) #define RADF_TO_DEGF(radf) (radf * (180.0f / M_PI)) #define DEGF_TO_RADF(degf) (degf * (M_PI / 180.0f)) +#define BINANG_ROT180(angle) ((s16)(angle - 0x7FFF)) +#define BINANG_SUB(a, b) ((s16)(a - b)) +#define DEG_TO_RAD(degrees) ((degrees) * (M_PI / 180.0f)) +#define BINANG_TO_DEGF(binang) ((f32)binang * (360.0001525f / 65535.0f)) #endif diff --git a/include/z64scene.h b/include/z64scene.h index 068808eafe..f37a6e5e5a 100644 --- a/include/z64scene.h +++ b/include/z64scene.h @@ -282,10 +282,18 @@ typedef struct { } ColHeader; typedef struct { - s16 cameraSType; // 0x00 - s16 numCameras; // 0x02 - s32 camPosDataSeg; // 0x04 -} CamData; + /* 0x0000 */ Vec3s pos; + /* 0x0006 */ Vec3s rot; + /* 0x000C */ s16 fov; + /* 0x000E */ s16 jfifId; + /* 0x0010 */ s16 unk_10; +} CamPosData; // size = 0x12 + +typedef struct { + /* 0x0000 */ s16 cameraSType; + /* 0x0002 */ s16 numCameras; + /* 0x0004 */ CamPosData* camPosDataSeg; +} CamData; // size = 0x08 typedef struct { u32 unknown; @@ -300,14 +308,6 @@ typedef union { } CamData; */ -typedef struct { - s16 posX, posY, posZ; - s16 rotX, rotY, rotZ; - s16 fov; - s16 jfifId; - s16 unk; -} CamPosData; - /* typedef union { _CamPosData data; diff --git a/spec b/spec index 97a6b23a17..fd56795a55 100644 --- a/spec +++ b/spec @@ -291,7 +291,6 @@ beginseg include "build/src/code/code_800430A0.o" include "build/src/code/code_80043480.o" include "build/src/code/z_camera.o" - include "build/data/z_camera.bss.o" include "build/src/code/z_collision_btltbls.o" include "build/src/code/z_collision_check.o" include "build/src/code/z_common_data.o" @@ -365,7 +364,6 @@ beginseg include "build/src/code/z_fbdemo_fade.o" include "build/src/code/shrink_window.o" include "build/src/code/db_camera.o" - include "build/data/db_camera.rodata.o" include "build/data/db_camera.data.o" include "build/data/db_camera.bss.o" include "build/src/code/code_800BB0A0.o" diff --git a/src/code/db_camera.c b/src/code/db_camera.c index fc97d1ebd6..d290935838 100644 --- a/src/code/db_camera.c +++ b/src/code/db_camera.c @@ -1,24 +1,96 @@ #include "global.h" -#pragma GLOBAL_ASM("asm/non_matchings/code/db_camera/func_800B3B50.s") +extern GlobalContext* D_80161100; +extern s32 D_8012CED8; +extern s32 D_8012CED4; +extern s32 D_8012CED0; +extern char D_801612D0[0x1A]; +extern char D_801612EA; +extern DBCamera* D_80161108; +extern s16 D_80161148; +extern s16 D_8016114A; +extern s16 D_8016111A; +extern s16 D_8016110C; + +typedef struct { + char state; + s16 mode; + CutsceneCameraPoint* eyePoints; + CutsceneCameraPoint* atPoints; + s16 frameCnt; + s16 csPointsCnt; +} DBCSEditorSlot; + +extern DBCSEditorSlot sDbgEditorSlots[]; +extern char sDbgEditorStates[]; + +// DbgCamera_Vec3fVecSphGeoAdd +Vec3f* func_800B3B50(Vec3f* dest, Vec3f* a, VecSph* b) { + Vec3f copy, vecB; + OLib_VecSphGeoToVec3f(&vecB, b); + + copy.x = a->x + vecB.x; + copy.y = a->y + vecB.y; + copy.z = a->z + vecB.z; + + *dest = copy; + return dest; +} #pragma GLOBAL_ASM("asm/non_matchings/code/db_camera/func_800B3BD4.s") #pragma GLOBAL_ASM("asm/non_matchings/code/db_camera/func_800B3DF8.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/db_camera/func_800B3EBC.s") +void func_800B3EBC(Vec3s* src, Vec3f* dest) { + dest->x = src->x; + dest->y = src->y; + dest->z = src->z; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/db_camera/func_800B3EFC.s") +void func_800B3EFC(Vec3f* src, Vec3s* dest) { + dest->x = src->x; + dest->y = src->y; + dest->z = src->z; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/db_camera/func_800B3F38.s") +void func_800B3F38(Vec3f* src, Vec3f* dest) { + dest->x = src->x; + dest->y = src->y; + dest->z = src->z; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/db_camera/func_800B3F54.s") +void func_800B3F54(Vec3s* src, Vec3f* dest) { + dest->x = src->x; + dest->y = src->y; + dest->z = src->z; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/db_camera/func_800B3F94.s") +void func_800B3F94(PosRot* arg0, Vec3f* arg1, Vec3s* arg2) { + VecSph sp28; + Vec3f sp1C; -#pragma GLOBAL_ASM("asm/non_matchings/code/db_camera/func_800B3FF4.s") + OLib_Vec3fDiffToVecSphGeo(&sp28, &arg0->pos, arg1); + sp28.yaw -= arg0->rot.y; + OLib_VecSphGeoToVec3f((Vec3f*)&sp1C, &sp28); + func_800B3EFC(&sp1C, arg2); +} -#pragma GLOBAL_ASM("asm/non_matchings/code/db_camera/func_800B404C.s") +void func_800B3FF4(PosRot* arg0, Vec3f* arg1, Vec3f* arg2) { + VecSph sp28; + Vec3f sp1C; + + func_800B3F38(arg1, &sp1C); + OLib_Vec3fToVecSphGeo(&sp28, &sp1C); + sp28.yaw += arg0->rot.y; + func_800B3B50(arg2, arg0, &sp28); +} + +void func_800B404C(s32 arg0, Vec3s* arg1, Vec3f* arg2) { + Vec3f sp1C; + + func_800B3EBC(arg1, &sp1C); + func_800B3FF4(arg0, &sp1C, arg2); +} #pragma GLOBAL_ASM("asm/non_matchings/code/db_camera/func_800B4088.s") @@ -30,7 +102,25 @@ #pragma GLOBAL_ASM("asm/non_matchings/code/db_camera/func_800B44E0.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/db_camera/func_800B4920.s") +/** + * Prints individual csSlot point information + */ +void func_800B4920(char* varName, s16 pointCnt, CutsceneCameraPoint* csPoints) { + s32 i; + CutsceneCameraPoint* csPoint; + + osSyncPrintf("@@@static SplinedatZ %s[] = {\n", varName); + for (i = 0, csPoint = csPoints; i < pointCnt; i++, csPoint++) { + osSyncPrintf("@@@ /* key frame %2d */ {\n", i); + osSyncPrintf("@@@ /* code */ %d,\n", csPoint->continueFlag); + osSyncPrintf("@@@ /* z */ %d,\n", csPoint->cameraRoll); + osSyncPrintf("@@@ /* T */ %d,\n", csPoint->nextPointFrame); + osSyncPrintf("@@@ /* zoom */ %f,\n", csPoint->viewAngle); + osSyncPrintf("@@@ /* pos */ { %d, %d, %d }\n", csPoint->pos.x, csPoint->pos.y, csPoint->pos.z); + osSyncPrintf("@@@ },\n"); + } + osSyncPrintf("@@@};\n@@@\n"); +} #pragma GLOBAL_ASM("asm/non_matchings/code/db_camera/func_800B4A68.s") @@ -40,28 +130,154 @@ #pragma GLOBAL_ASM("asm/non_matchings/code/db_camera/func_800B4B20.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/db_camera/func_800B4D58.s") +void DbgCamera_Init(DBCamera* dbCamera, Camera* camera) { + dbCamera->unk_10C6.x = dbCamera->unk_10C6.y = dbCamera->unk_10C6.z = 0; + dbCamera->unk_44 = 0; + dbCamera->unk_00 = 0; + dbCamera->unk_34 = 0; + dbCamera->unk_3C = 0; + dbCamera->unk_38 = -1; + dbCamera->unk_40 = -1; + dbCamera->unk_4C = 0; + dbCamera->fov = 0.0f; + dbCamera->unk_50 = 0.0f; + D_80161100 = camera->globalCtx; + dbCamera->unk_7C = 0; + dbCamera->unk_7E = -1; + dbCamera->unk_80 = 1; + dbCamera->unk_82 = 0; + dbCamera->unk_84 = 0; + dbCamera->unk_86 = 0; + dbCamera->unk_78 = 0; + dbCamera->unk_7A = 0; + dbCamera->unk_10C0.x = 0; + dbCamera->unk_10C0.y = 0; + dbCamera->unk_10C0.z = 0; + dbCamera->unk_6C = dbCamera->unk_70 = dbCamera->unk_74 = 0; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/db_camera/func_800B4DE4.s") +void DbgCamera_Enable(DBCamera* dbCamera, Camera* camera) { + dbCamera->at = camera->at; + dbCamera->eye = camera->eye; + dbCamera->up = camera->up; + dbCamera->fov = camera->fov; + dbCamera->unk_4C = 0; + dbCamera->unk_80 = 1; + dbCamera->unk_82 = 0; + dbCamera->unk_84 = 0; + dbCamera->unk_86 = 1; + dbCamera->unk_88 = 1; + dbCamera->unk_78 = 0; + dbCamera->unk_7A = 0; + dbCamera->unk_50 = 0.0f; + func_800B4088(dbCamera, camera); +} -#pragma GLOBAL_ASM("asm/non_matchings/code/db_camera/func_800B4E7C.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/db_camera/DbgCamera_Update.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/db_camera/func_800B8730.s") +s32 func_800B8730(void) { + s32 temp_v1; + void* phi_v0; + s32 phi_v1; + + for (phi_v1 = 0; phi_v1 < 0x1A; phi_v1++) { + if (D_801612D0[phi_v1] != 'O') { + return phi_v1 + 'A'; + } + } + return '?'; +} #pragma GLOBAL_ASM("asm/non_matchings/code/db_camera/func_800B87D8.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/db_camera/func_800B8978.s") +/** + * Clears a DBCSEditorSlot + */ +void func_800B8978(s32 editorSlot, s32 free) { + + if (sDbgEditorSlots[editorSlot].state != '?') { + sDbgEditorStates[sDbgEditorSlots[editorSlot].state] = 'X'; + } + if (free) { + DebugArena_FreeDebug(sDbgEditorSlots[editorSlot].atPoints, "../db_camera.c", 2784); + DebugArena_FreeDebug(sDbgEditorSlots[editorSlot].eyePoints, "../db_camera.c", 2785); + } + sDbgEditorSlots[editorSlot].state = '?'; + sDbgEditorSlots[editorSlot].atPoints = NULL; + sDbgEditorSlots[editorSlot].eyePoints = NULL; + sDbgEditorSlots[editorSlot].mode = 0; + sDbgEditorSlots[editorSlot].frameCnt = 0; + sDbgEditorSlots[editorSlot].csPointsCnt = 0; +} #pragma GLOBAL_ASM("asm/non_matchings/code/db_camera/func_800B8A0C.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/db_camera/func_800B8BA4.s") +extern s32 D_801612EC; + +s32 func_800B8BA4(void) { + return D_801612EC; +} + +#pragma GLOBAL_ASM("asm/non_matchings/code/db_camera/func_800B8BB0.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/db_camera/func_800B8DB0.s") + +void func_800B8F30(char* arg0) { + Mempak_DeleteFile(2, *arg0); +} #pragma GLOBAL_ASM("asm/non_matchings/code/db_camera/func_800B8F58.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/db_camera/func_800B9060.s") +/** + * Prints cs editor slot inforation + */ +void func_800B9060(s32 arg0) { + DBCSEditorSlot* csSlot; + s32 i; + + Audio_PlaySoundGeneral(NA_SE_SY_GET_RUPY, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); + osSyncPrintf("@@@\n@@@\n@@@/* ****** spline point data ** start here ***** */\n@@@\n"); + for (i = 0, csSlot = sDbgEditorSlots; i < 0xF; i++, csSlot++) { + if (csSlot->csPointsCnt != 0) { + if (i != 0) { + osSyncPrintf("@@@\n@@@/* ** %d ** */\n@@@\n", i); + } + func_800B4920("Lookat", csSlot->csPointsCnt, csSlot->atPoints); + func_800B4920("Position", csSlot->csPointsCnt, csSlot->eyePoints); + osSyncPrintf("@@@static short nPoints = %d;\n@@@\n", csSlot->csPointsCnt); + osSyncPrintf("@@@static short nFrames = %d;\n@@@\n", csSlot->frameCnt); + osSyncPrintf("@@@static short Mode = %d;\n@@@\n", csSlot->mode); + } + } + osSyncPrintf("@@@\n@@@\n@@@/* ****** spline point data ** finish! ***** */\n@@@\n"); +} #pragma GLOBAL_ASM("asm/non_matchings/code/db_camera/func_800B91B0.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/db_camera/func_800B958C.s") +/** + * Initalizes the custscene editor + */ +void DbgCamera_FirstInit(Camera* camera, DBCamera* dbCamera) { + s32 temp_s0; + u32 temp_v0; + u32 phi_v0; + s32 i; + char* p; + + D_801612EA = '*'; + for (p = D_801612D0; p < &D_801612D0[0x1A]; p++) { + *p = 'X'; + } + + for (i = 0; i < 0xF; i++) { + func_800B8978(i, 0); + } + + D_80161108 = dbCamera; + D_8016110C = 0; + D_80161148 = 0; + D_8016114A = -1; + D_8016111A = 0; +} #pragma GLOBAL_ASM("asm/non_matchings/code/db_camera/func_800B9638.s") diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 0595228cd0..e10b677838 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -952,7 +952,7 @@ f32 Actor_HeightDiff(Actor* actorA, Actor* actorB) { return actorB->posRot.pos.y - actorA->posRot.pos.y; } -f32 Player_GetCameraYOffset(Player* player) { +f32 Player_GetHeight(Player* player) { f32 offset = (player->stateFlags1 & 0x800000) ? 32.0f : 0.0f; if (LINK_IS_ADULT) { @@ -1012,7 +1012,7 @@ void func_8002DE04(GlobalContext* globalCtx, Actor* actorA, Actor* actorB) { void func_8002DE74(GlobalContext* globalCtx, Player* player) { if ((globalCtx->roomCtx.curRoom.unk_03 != 4) && func_800C0CB8(globalCtx)) { - func_8005A77C(Gameplay_GetCamera(globalCtx, 0), 6); + Camera_ChangeSetting(Gameplay_GetCamera(globalCtx, 0), CAM_SET_HORSE0); } } @@ -1206,7 +1206,7 @@ void func_8002E4B4(GlobalContext* globalCtx, Actor* actor, f32 arg2, f32 arg3, f u32 sp60; CollisionPoly* sp5C; f32 sp58; - UNK_TYPE sp54; + WaterBox* sp54; f32 sp50; Vec3f ripplePos; @@ -2166,10 +2166,10 @@ void Actor_Draw(GlobalContext* globalCtx, Actor* actor) { Lights_Draw(lights, globalCtx->state.gfxCtx); if (actor->flags & 0x1000) { - func_800D1694(actor->posRot.pos.x + globalCtx->mainCamera.unk_80.x, + func_800D1694(actor->posRot.pos.x + globalCtx->mainCamera.skyboxOffset.x, actor->posRot.pos.y + - (f32)((actor->shape.unk_08 * actor->scale.y) + globalCtx->mainCamera.unk_80.y), - actor->posRot.pos.z + globalCtx->mainCamera.unk_80.z, &actor->shape.rot); + (f32)((actor->shape.unk_08 * actor->scale.y) + globalCtx->mainCamera.skyboxOffset.y), + actor->posRot.pos.z + globalCtx->mainCamera.skyboxOffset.z, &actor->shape.rot); } else { func_800D1694(actor->posRot.pos.x, actor->posRot.pos.y + (actor->shape.unk_08 * actor->scale.y), actor->posRot.pos.z, &actor->shape.rot); @@ -2846,7 +2846,7 @@ Actor* Actor_Delete(ActorContext* actorCtx, Actor* actor, GlobalContext* globalC if ((player != NULL) && (actor == player->unk_664)) { func_8008EDF0(player); - func_8005A444(Gameplay_GetCamera(globalCtx, Gameplay_GetActiveCamId(globalCtx)), 0); + Camera_ChangeMode(Gameplay_GetCamera(globalCtx, Gameplay_GetActiveCamId(globalCtx)), 0); } if (actor == actorCtx->targetCtx.arrowPointedActor) { @@ -3831,7 +3831,7 @@ s16 func_80034DD4(Actor* actor, GlobalContext* globalCtx, s16 arg2, f32 arg3) { Player* player = PLAYER; f32 var; - if ((globalCtx->csCtx.state != 0) || (D_8011D394 != 0)) { + if ((globalCtx->csCtx.state != 0) || (gDbgCamEnabled != 0)) { var = Math_Vec3f_DistXYZ(&actor->posRot.pos, &globalCtx->view.eye) * 0.25f; } else { var = Math_Vec3f_DistXYZ(&actor->posRot.pos, &player->actor.posRot.pos); @@ -5474,7 +5474,7 @@ s32 func_80038154(GlobalContext* globalCtx, Actor* actor, Vec3s* arg2, Vec3s* ar actor->posRot2.pos = actor->posRot.pos; actor->posRot2.pos.y += arg4; - if (!(((globalCtx->csCtx.state != 0) || (D_8011D394 != 0)) && (gSaveContext.entranceIndex == 0x00EE))) { + if (!(((globalCtx->csCtx.state != 0) || (gDbgCamEnabled != 0)) && (gSaveContext.entranceIndex == 0x00EE))) { var = actor->yawTowardsLink - actor->shape.rot.y; abs_var = ABS(var); if (abs_var >= 0x4300) { @@ -5483,7 +5483,7 @@ s32 func_80038154(GlobalContext* globalCtx, Actor* actor, Vec3s* arg2, Vec3s* ar } } - if (((globalCtx->csCtx.state != 0) || (D_8011D394 != 0)) && (gSaveContext.entranceIndex == 0x00EE)) { + if (((globalCtx->csCtx.state != 0) || (gDbgCamEnabled != 0)) && (gSaveContext.entranceIndex == 0x00EE)) { sp2C = globalCtx->view.eye; } else { sp2C = player->actor.posRot2.pos; @@ -5503,7 +5503,7 @@ s32 func_80038290(GlobalContext* globalCtx, Actor* actor, Vec3s* arg2, Vec3s* ar actor->posRot2.pos = arg4; - if (!(((globalCtx->csCtx.state != 0) || (D_8011D394 != 0)) && (gSaveContext.entranceIndex == 0x00EE))) { + if (!(((globalCtx->csCtx.state != 0) || (gDbgCamEnabled != 0)) && (gSaveContext.entranceIndex == 0x00EE))) { var = actor->yawTowardsLink - actor->shape.rot.y; abs_var = ABS(var); if (abs_var >= 0x4300) { @@ -5512,7 +5512,7 @@ s32 func_80038290(GlobalContext* globalCtx, Actor* actor, Vec3s* arg2, Vec3s* ar } } - if (((globalCtx->csCtx.state != 0) || (D_8011D394 != 0)) && (gSaveContext.entranceIndex == 0x00EE)) { + if (((globalCtx->csCtx.state != 0) || (gDbgCamEnabled != 0)) && (gSaveContext.entranceIndex == 0x00EE)) { sp24 = globalCtx->view.eye; } else { sp24 = player->actor.posRot2.pos; diff --git a/src/code/z_bgcheck.c b/src/code/z_bgcheck.c index 8dc88a5ac8..f92940126b 100644 --- a/src/code/z_bgcheck.c +++ b/src/code/z_bgcheck.c @@ -354,7 +354,7 @@ void func_80041978(s32 iParm1, s32 iParm2) { #pragma GLOBAL_ASM("asm/non_matchings/code/z_bgcheck/func_800419B0.s") -u32 func_80041A28(CollisionContext* a0, u32 a1, u32 a2) { +s32 func_80041A28(CollisionContext* a0, CollisionPoly* a1, u32 a2) { u32 uVar1; uVar1 = func_800419B0(a0, a1, a2, 0); @@ -436,9 +436,9 @@ s32 func_80042108(CollisionContext* a0, CollisionPoly* a1, u32 a2) { #pragma GLOBAL_ASM("asm/non_matchings/code/z_bgcheck/func_80042244.s") -u8 func_80042538(CollisionContext* colCtx, s32 iParm2) { - u32 var1 = *(u32*)(iParm2 + 0xc); - return var1; +u32 func_80042538(CollisionContext* colCtx, WaterBox* arg1) { + u32 unk0C = arg1->unk_0C; + return unk0C & 0xFF; } #pragma GLOBAL_ASM("asm/non_matchings/code/z_bgcheck/func_80042548.s") diff --git a/src/code/z_camera.c b/src/code/z_camera.c index c0822b1ab5..2a7d058d35 100644 --- a/src/code/z_camera.c +++ b/src/code/z_camera.c @@ -1,2441 +1,1806 @@ +#include "ultra64.h" #include "global.h" #include "vt.h" +#include "overlays/actors/ovl_En_Horse/z_en_horse.h" -typedef struct { - s16 val; - s16 param; -} CameraModeValue; +s16 Camera_ChangeSettingFlags(Camera* camera, s16 setting, s16 flags); +s32 Camera_ChangeModeFlags(Camera* camera, s16 mode, u8 flags); +s32 Camera_QRegInit(void); +s32 Camera_CheckWater(Camera* camera); -typedef struct { - s16 funcIdx; - s16 valueCnt; - CameraModeValue* values; -} CameraMode; +#define RELOAD_PARAMS \ + (camera->animState == 0 || camera->animState == 0xA || camera->animState == 0x14 || R_RELOAD_CAM_PARAMS) -typedef struct { - union { - u32 unk_00; - struct { - u32 unk_bit0 : 1; - u32 unk_bit1 : 1; - u32 validModes : 30; - }; - }; - CameraMode* cameraModes; -} CameraSetting; +#define PCT(x) ((x)*0.01f) +#define NEXTSETTING ((values++)->val) +#define NEXTPCT PCT(NEXTSETTING) -typedef union { - s16 sh[2]; - s32 w; -} u_D_8011D3A0; +#define ONEPOINTDEMO ((Unique9OnePointDemo*)camera->paramData) -typedef enum { - CAM_SET_NONE, - CAM_SET_NORMAL0, - CAM_SET_NORMAL1, - CAM_SET_DUNGEON0, - CAM_SET_DUNGEON1, - CAM_SET_NORMAL3, - CAM_SET_HORSE0, - CAM_SET_BOSS_GOMA, - CAM_SET_BOSS_DODO, - CAM_SET_BOSS_BARI, - CAM_SET_BOSS_FGANON, - CAM_SET_BOSS_BAL, - CAM_SET_BOSS_SHADES, - CAM_SET_BOSS_MOFA, - CAM_SET_TWIN0, - CAM_SET_TWIN1, - CAM_SET_BOSS_GANON1, - CAM_SET_BOSS_GANON2, - CAM_SET_TOWER0, - CAM_SET_TOWER1, - CAM_SET_FIXED0, - CAM_SET_FIXED1, - CAM_SET_CIRCLE0, - CAM_SET_CIRCLE2, - CAM_SET_CIRCLE3, - CAM_SET_PREREND0, - CAM_SET_PREREND1, - CAM_SET_PREREND3, - CAM_SET_DOOR0, - CAM_SET_DOORC, - CAM_SET_RAIL3, - CAM_SET_START0, - CAM_SET_START1, - CAM_SET_FREE0, - CAM_SET_FREE2, - CAM_SET_CIRCLE4, - CAM_SET_CIRCLE5, - CAM_SET_DEMO0, - CAM_SET_DEMO1, - CAM_SET_MORI1, - CAM_SET_ITEM0, - CAM_SET_ITEM1, - CAM_SET_DEMO3, - CAM_SET_DEMO4, - CAM_SET_UFOBEAN, - CAM_SET_LIFTBEAN, - CAM_SET_SCENE0, - CAM_SET_SCENE1, - CAM_SET_HIDAN1, - CAM_SET_HIDAN2, - CAM_SET_MORI2, - CAM_SET_MORI3, - CAM_SET_TAKO, - CAM_SET_SPOT05A, - CAM_SET_SPOT05B, - CAM_SET_HIDAN3, - CAM_SET_ITEM2, - CAM_SET_CIRCLE6, - CAM_SET_NORMAL2, - CAM_SET_FISHING, - CAM_SET_DEMOC, - CAM_SET_UO_FIBER, - CAM_SET_DUNGEON2, - CAM_SET_TEPPEN, - CAM_SET_CIRCLE7, - CAM_SET_NORMAL4, - CAM_SET_MAX -} CameraSettingType; +#define BGCAM_POS(v) ((v)[0]) +#define BGCAM_ROT(v) ((v)[1]) +#define BGCAM_FOV(v) ((v)[2].x) +#define BGCAM_JFIFID(v) ((v)[2].y) -typedef enum { - CAM_MODE_NORMAL, - CAM_MODE_PARALLEL, - CAM_MODE_KEEPON, - CAM_MODE_TALK, - CAM_MODE_BATTLE, - CAM_MODE_CLIMB, - CAM_MODE_SUBJECT, - CAM_MODE_BOWARROW, - CAM_MODE_BOWARROWZ, - CAM_MODE_FOOKSHOT, - CAM_MODE_BOOMERANG, - CAM_MODE_PACHINCO, - CAM_MODE_CLIMBZ, - CAM_MODE_JUMP, - CAM_MODE_HANG, - CAM_MODE_HANGZ, - CAM_MODE_FREEFALL, - CAM_MODE_CHARGE, - CAM_MODE_STILL, - CAM_MODE_PUSHPULL, - CAM_MODE_BOOKEEPON -} CameraModeType; +#define FLG_ADJSLOPE (1 << 0) +#define FLG_OFFGROUND (1 << 7) -/*==================================================================*/ -// Data -s16 sOREGInit[] = { - 0, 1, 5, 5, 5, 14500, 20, 16, 150, 25, 150, 6, 10, 10, 0, 0, 1, 100, - 250, 120, 80, 30, 120, 4, 1, 50, 20, 1800, 50, 50, 50, 20, 20, -10, -5460, -9100, - -6, 8, 15, 75, 60, 12, 110, 40, 50, 250, -10, 30, 30, 70, 20, 20, 20, -}; - -s16 sOREGInitCnt = 53; - -s16 sPREGInit[] = { - -20, 200, 300, 10, 12, 10, 35, 60, 60, 3, 0, -40, 20, 25, 45, -5, 15, 15, 20, 0, 0, 0, 6, 60, 30, 0, 5, -}; - -s16 sPREGInitCnt = 27; - -char sCameraSettingNames[][12] = { - "NONE ", "NORMAL0 ", "NORMAL1 ", "DUNGEON0 ", "DUNGEON1 ", "NORMAL3 ", "HORSE0 ", - "BOSS_GOMA ", "BOSS_DODO ", "BOSS_BARI ", "BOSS_FGANON", "BOSS_BAL ", "BOSS_SHADES", "BOSS_MOFA ", - "BOSS_TWIN0 ", "BOSS_TWIN1 ", "BOSS_GANON1", "BOSS_GANON2", "TOWER0 ", "TOWER1 ", "FIXED0 ", - "FIXED1 ", "CIRCLE0 ", "CIRCLE2 ", "CIRCLE3 ", "PREREND0 ", "PREREND1 ", "PREREND3 ", - "DOOR0 ", "DOORC ", "RAIL3 ", "START0 ", "START1 ", "FREE0 ", "FREE2 ", - "CIRCLE4 ", "CIRCLE5 ", "DEMO0 ", "DEMO1 ", "MORI1 ", "ITEM0 ", "ITEM1 ", - "DEMO3 ", "DEMO4 ", "UFOBEAN ", "LIFTBEAN ", "SCENE0 ", "SCENE1 ", "HIDAN1 ", - "HIDAN2 ", "MORI2 ", "MORI3 ", "TAKO ", "SPOT05A ", "SPOT05B ", "HIDAN3 ", - "ITEM2 ", "CIRCLE6 ", "NORMAL2 ", "FISHING ", "DEMOC ", "UO_FIBER ", "DUNGEON2 ", - "TEPPEN ", "CIRCLE7 ", "NORMAL4 ", -}; - -char sCameraModeNames[][12] = { - "NORMAL ", "PARALLEL ", "KEEPON ", "TALK ", "BATTLE ", "CLIMB ", "SUBJECT ", - "BOWARROW ", "BOWARROWZ ", "FOOKSHOT ", "BOOMERANG ", "PACHINCO ", "CLIMBZ ", "JUMP ", - "HANG ", "HANGZ ", "FREEFALL ", "CHARGE ", "STILL ", "PUSHPULL ", "BOOKEEPON ", -}; - -CameraModeValue D_8011A3A0[] = { - { -20, 0 }, { 200, 1 }, { 300, 2 }, { 10, 3 }, { 12, 4 }, { 10, 5 }, { 35, 6 }, { 60, 7 }, { 60, 8 }, { 3, 9 }, -}; - -CameraModeValue D_8011A3C8[] = { - { -20, 0 }, { 250, 1 }, { 0, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 }, - { 45, 7 }, { 50, 8 }, { 8202, 9 }, { -40, 11 }, { 20, 12 }, -}; - -CameraModeValue D_8011A3F4[] = { - { -20, 0 }, { 120, 1 }, { 140, 2 }, { 25, 13 }, { 45, 14 }, { -5, 15 }, { 15, 16 }, - { 15, 17 }, { 45, 7 }, { 50, 8 }, { 8193, 9 }, { -50, 11 }, { 30, 12 }, -}; - -CameraModeValue D_8011A428[] = { - { -30, 0 }, { 70, 1 }, { 200, 2 }, { 40, 13 }, { 10, 14 }, { 0, 15 }, - { 5, 16 }, { 70, 17 }, { 45, 7 }, { 50, 8 }, { 10, 4 }, { 13568, 9 }, -}; - -CameraModeValue D_8011A458[] = { - { -20, 0 }, { 180, 1 }, { 10, 13 }, { 80, 14 }, { 0, 15 }, { 10, 16 }, - { 25, 17 }, { 50, 7 }, { 80, 8 }, { 8194, 9 }, { -40, 11 }, { 25, 12 }, -}; - -CameraModeValue D_8011A488[] = { - { -20, 0 }, { 200, 1 }, { 300, 2 }, { 20, 18 }, { 5, 4 }, { 5, 5 }, { 60, 7 }, { 40, 8 }, { 0, 9 }, -}; - -CameraModeValue D_8011A4AC[] = { - { 0, 0 }, { 5, 1 }, { 50, 2 }, { 10, 4 }, { 0, 19 }, { 0, 20 }, { 0, 21 }, { 45, 7 }, { 0, 9 }, -}; - -CameraModeValue D_8011A4D0[] = { - { -7, 0 }, { 14, 1 }, { 50, 2 }, { 10, 4 }, { 0, 19 }, { -30, 20 }, { -5, 21 }, { 45, 7 }, { 8192, 9 }, -}; - -CameraModeValue D_8011A4F4[] = { - { 20, 0 }, { 70, 1 }, { 70, 2 }, { 10, 4 }, { -120, 19 }, { 20, 20 }, { 0, 21 }, { 45, 7 }, { 8192, 9 }, -}; - -CameraModeValue D_8011A518[] = { - { -20, 0 }, { 80, 1 }, { 250, 2 }, { 45, 3 }, { 60, 7 }, { 40, 8 }, { 6, 22 }, { 8192, 9 }, -}; - -CameraModeValue D_8011A538[] = { - { 5, 0 }, { 50, 1 }, { 50, 2 }, { 10, 4 }, { 0, 19 }, { 0, 20 }, { 0, 21 }, { 45, 7 }, { 8192, 9 }, -}; - -CameraModeValue D_8011A55C[] = { - { -7, 0 }, { 14, 1 }, { 50, 2 }, { 10, 4 }, { -9, 19 }, { -63, 20 }, { -30, 21 }, { 45, 7 }, { 8192, 9 }, -}; - -CameraModeValue D_8011A580[] = { - { -20, 0 }, { 200, 1 }, { 300, 2 }, { 20, 18 }, { 999, 4 }, { 5, 5 }, { 60, 7 }, { 40, 8 }, { 8198, 9 }, -}; - -CameraModeValue D_8011A5A4[] = { - { -20, 0 }, { 200, 1 }, { 300, 2 }, { 12, 4 }, { 35, 6 }, { 60, 7 }, { 40, 8 }, { 0, 9 }, -}; - -CameraModeValue D_8011A5C4[] = { - { -80, 0 }, { 200, 1 }, { 300, 2 }, { 40, 3 }, { 60, 7 }, { 10, 8 }, { 0, 9 }, -}; - -CameraModeValue D_8011A5E0[] = { - { -120, 0 }, { 300, 1 }, { 300, 2 }, { 70, 3 }, { 45, 7 }, { 10, 8 }, { 8192, 9 }, -}; - -CameraModeValue D_8011A5FC[] = { - { -20, 0 }, { 200, 1 }, { 300, 2 }, { 15, 4 }, { 80, 6 }, { 60, 7 }, { 20, 8 }, { 0, 9 }, -}; - -CameraModeValue D_8011A61C[] = { - { -20, 0 }, { 300, 1 }, { 50, 3 }, { 2, 4 }, { 80, 7 }, { 20, 8 }, { -4096, 9 }, -}; - -CameraModeValue D_8011A638[] = { - { -20, 0 }, { 200, 1 }, { 300, 2 }, { 10, 3 }, { 100, 4 }, { 10, 5 }, { 100, 6 }, { 60, 7 }, { 5, 8 }, { -4093, 9 }, -}; - -CameraModeValue D_8011A660[] = { - { 0, 0 }, { 250, 1 }, { 25, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 }, - { 70, 7 }, { 30, 8 }, { 8298, 9 }, { -20, 11 }, { 30, 12 }, -}; - -CameraModeValue D_8011A68C[] = { - { -5, 0 }, { 120, 1 }, { 140, 2 }, { 5, 13 }, { 85, 14 }, { 10, 15 }, { 5, 16 }, - { 25, 17 }, { 45, 7 }, { 50, 8 }, { 8193, 9 }, { -15, 11 }, { 30, 12 }, -}; - -CameraModeValue D_8011A6C0[] = { - { 0, 0 }, { 200, 1 }, { 400, 2 }, { 10, 3 }, { 12, 4 }, { 20, 5 }, { 40, 6 }, { 60, 7 }, { 60, 8 }, { 3, 9 }, -}; - -CameraModeValue D_8011A6E8[] = { - { 0, 0 }, { 250, 1 }, { 0, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 }, - { 45, 7 }, { 50, 8 }, { 8194, 9 }, { -40, 11 }, { 20, 12 }, -}; - -CameraModeValue D_8011A714[] = { - { -20, 0 }, { 120, 1 }, { 140, 2 }, { 25, 13 }, { 45, 14 }, { -5, 15 }, { 15, 16 }, - { 15, 17 }, { 45, 7 }, { 50, 8 }, { 8193, 9 }, { -50, 11 }, { 20, 12 }, -}; - -CameraModeValue D_8011A748[] = { - { -20, 0 }, { 250, 1 }, { 10, 13 }, { 80, 14 }, { 0, 15 }, { 10, 16 }, - { 25, 17 }, { 50, 7 }, { 65, 8 }, { 8194, 9 }, { -40, 11 }, { 25, 12 }, -}; - -CameraModeValue D_8011A778[] = { - { -20, 0 }, { 80, 1 }, { 250, 2 }, { 6, 22 }, { 45, 3 }, { 60, 7 }, { 40, 8 }, { 8192, 9 }, -}; - -CameraModeValue D_8011A798[] = { - { 0, 0 }, { 250, 1 }, { 400, 2 }, { 15, 4 }, { 50, 6 }, { 60, 7 }, { 30, 8 }, { 0, 9 }, -}; - -CameraModeValue D_8011A7B8[] = { - { 0, 0 }, { 200, 1 }, { 400, 2 }, { 30, 4 }, { 80, 6 }, { 60, 7 }, { 20, 8 }, { 0, 9 }, -}; - -CameraModeValue D_8011A7D8[] = { - { -20, 0 }, { 200, 1 }, { 400, 2 }, { 20, 18 }, { 5, 4 }, { 5, 5 }, { 60, 7 }, { 40, 8 }, { 0, 9 }, -}; - -CameraModeValue D_8011A7FC[] = { - { -20, 0 }, { 250, 1 }, { 400, 2 }, { 20, 18 }, { 999, 4 }, { 5, 5 }, { 60, 7 }, { 40, 8 }, { 8198, 9 }, -}; - -CameraModeValue D_8011A820[] = { - { 0, 0 }, { 300, 1 }, { 50, 3 }, { 2, 4 }, { 80, 7 }, { 20, 8 }, { -4096, 9 }, -}; - -CameraModeValue D_8011A83C[] = { - { -80, 0 }, { 200, 1 }, { 400, 2 }, { 40, 3 }, { 60, 7 }, { 10, 8 }, { 0, 9 }, -}; - -CameraModeValue D_8011A858[] = { - { -120, 0 }, { 400, 1 }, { 400, 2 }, { 70, 3 }, { 45, 7 }, { 10, 8 }, { 8192, 9 }, -}; - -CameraModeValue D_8011A874[] = { - { 0, 0 }, { 200, 1 }, { 400, 2 }, { 10, 3 }, { 100, 4 }, { 20, 5 }, { 100, 6 }, { 60, 7 }, { 5, 8 }, { -4093, 9 }, -}; - -CameraModeValue D_8011A89C[] = { - { -10, 0 }, { 150, 1 }, { 250, 2 }, { 5, 3 }, { 10, 4 }, { 5, 5 }, { 30, 6 }, { 60, 7 }, { 60, 8 }, { 3, 9 }, -}; - -CameraModeValue D_8011A8C4[] = { - { -20, 0 }, { 150, 1 }, { 0, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 }, - { 45, 7 }, { 50, 8 }, { 8202, 9 }, { -40, 11 }, { 20, 12 }, -}; - -CameraModeValue D_8011A8F0[] = { - { -20, 0 }, { 120, 1 }, { 140, 2 }, { 25, 13 }, { 45, 14 }, { -5, 15 }, { 15, 16 }, - { 15, 17 }, { 45, 7 }, { 50, 8 }, { 8193, 9 }, { -40, 11 }, { 20, 12 }, -}; - -CameraModeValue D_8011A924[] = { - { -20, 0 }, { 180, 1 }, { 10, 13 }, { 80, 14 }, { 0, 15 }, { 10, 16 }, - { 25, 17 }, { 45, 7 }, { 80, 8 }, { 8194, 9 }, { -40, 11 }, { 25, 12 }, -}; - -CameraModeValue D_8011A954[] = { - { -10, 0 }, { 150, 1 }, { 250, 2 }, { 10, 4 }, { 50, 6 }, { 60, 7 }, { 40, 8 }, { 0, 9 }, -}; - -CameraModeValue D_8011A974[] = { - { -10, 0 }, { 150, 1 }, { 250, 2 }, { 10, 4 }, { 80, 6 }, { 60, 7 }, { 20, 8 }, { 0, 9 }, -}; - -CameraModeValue D_8011A994[] = { - { -40, 0 }, { 150, 1 }, { 250, 2 }, { 20, 18 }, { 5, 4 }, { 5, 5 }, { 60, 7 }, { 40, 8 }, { 0, 9 }, -}; - -CameraModeValue D_8011A9B8[] = { - { -40, 0 }, { 250, 1 }, { 250, 2 }, { 20, 18 }, { 999, 4 }, { 5, 5 }, { 60, 7 }, { 40, 8 }, { 8198, 9 }, -}; - -CameraModeValue D_8011A9DC[] = { - { -10, 0 }, { 300, 1 }, { 50, 3 }, { 2, 4 }, { 80, 7 }, { 20, 8 }, { -4096, 9 }, -}; - -CameraModeValue D_8011A9F8[] = { - { -80, 0 }, { 150, 1 }, { 250, 2 }, { 40, 3 }, { 60, 7 }, { 10, 8 }, { 0, 9 }, -}; - -CameraModeValue D_8011AA14[] = { - { -120, 0 }, { 250, 1 }, { 250, 2 }, { 70, 3 }, { 45, 7 }, { 10, 8 }, { 8192, 9 }, -}; - -CameraModeValue D_8011AA30[] = { - { -10, 0 }, { 150, 1 }, { 250, 2 }, { 5, 3 }, { 100, 4 }, { 5, 5 }, { 100, 6 }, { 60, 7 }, { 5, 8 }, { -4093, 9 }, -}; - -CameraModeValue D_8011AA58[] = { - { -40, 0 }, { 150, 1 }, { 150, 2 }, { 0, 3 }, { 10, 4 }, { 5, 5 }, { 30, 6 }, { 60, 7 }, { 60, 8 }, { 3, 9 }, -}; - -CameraModeValue D_8011AA80[] = { - { -20, 0 }, { 70, 1 }, { 200, 2 }, { 40, 13 }, { 10, 14 }, { 0, 15 }, - { 5, 16 }, { 70, 17 }, { 45, 7 }, { 50, 8 }, { 10, 4 }, { 13568, 9 }, -}; - -CameraModeValue D_8011AAB0[] = { - { -40, 0 }, { 150, 1 }, { 150, 2 }, { 10, 4 }, { 50, 6 }, { 60, 7 }, { 40, 8 }, { 0, 9 }, -}; - -CameraModeValue D_8011AAD0[] = { - { -40, 0 }, { 150, 1 }, { 180, 2 }, { 12, 4 }, { 80, 6 }, { 60, 7 }, { 20, 8 }, { 0, 9 }, -}; - -CameraModeValue D_8011AAF0[] = { - { -40, 0 }, { 150, 1 }, { 150, 2 }, { 20, 18 }, { 5, 4 }, { 5, 5 }, { 60, 7 }, { 40, 8 }, { 0, 9 }, -}; - -CameraModeValue D_8011AB14[] = { - { -40, 0 }, { 150, 1 }, { 150, 2 }, { 20, 18 }, { 999, 4 }, { 5, 5 }, { 60, 7 }, { 40, 8 }, { 8198, 9 }, -}; - -CameraModeValue D_8011AB38[] = { - { -40, 0 }, { 200, 1 }, { 50, 3 }, { 2, 4 }, { 80, 7 }, { 20, 8 }, { -4096, 9 }, -}; - -CameraModeValue D_8011AB54[] = { - { -80, 0 }, { 150, 1 }, { 150, 2 }, { 40, 3 }, { 60, 7 }, { 10, 8 }, { 0, 9 }, -}; - -CameraModeValue D_8011AB70[] = { - { -120, 0 }, { 150, 1 }, { 150, 2 }, { 70, 3 }, { 45, 7 }, { 10, 8 }, { 8192, 9 }, -}; - -CameraModeValue D_8011AB8C[] = { - { -40, 0 }, { 150, 1 }, { 150, 2 }, { 0, 3 }, { 100, 4 }, { 5, 5 }, { 100, 6 }, { 60, 7 }, { 5, 8 }, { -4093, 9 }, -}; - -CameraModeValue D_8011ABB4[] = { - { -40, 0 }, { 180, 1 }, { 25, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 }, - { 60, 7 }, { 50, 8 }, { 8298, 9 }, { -20, 11 }, { 30, 12 }, -}; - -CameraModeValue D_8011ABE0[] = { - { -20, 0 }, { 280, 1 }, { 300, 2 }, { 20, 3 }, { 15, 4 }, { 5, 5 }, { 40, 6 }, { 60, 7 }, { 100, 8 }, { 4, 9 }, -}; - -CameraModeValue D_8011AC08[] = { - { -50, 0 }, { 250, 1 }, { 70, 3 }, { 0, 10 }, { 15, 4 }, { 5, 5 }, - { 60, 7 }, { 100, 8 }, { 8202, 9 }, { -50, 11 }, { 20, 12 }, -}; - -CameraModeValue D_8011AC34[] = { - { -30, 0 }, { 70, 1 }, { 200, 2 }, { 40, 13 }, { 10, 14 }, { 10, 15 }, - { 20, 16 }, { 70, 17 }, { 45, 7 }, { 10, 8 }, { 10, 4 }, { 13568, 9 }, -}; - -CameraModeValue D_8011AC64[] = { - { -40, 0 }, { 150, 1 }, { 250, 2 }, { -5, 3 }, { 18, 4 }, { 5, 5 }, { 60, 6 }, { 60, 7 }, { 40, 8 }, { 5, 9 }, -}; - -CameraModeValue D_8011AC8C[] = { - { -50, 0 }, { 220, 1 }, { 250, 2 }, { 10, 3 }, { 16, 4 }, { 20, 5 }, { 60, 7 }, { 100, 8 }, { 1536, 9 }, -}; - -CameraModeValue D_8011ACB0[] = { - { -40, 0 }, { 180, 1 }, { 220, 2 }, { -2, 3 }, { 12, 4 }, { 100, 5 }, { 45, 7 }, { 100, 8 }, { 9728, 9 }, -}; - -CameraModeValue D_8011ACD4[] = { - { -7, 0 }, { 14, 1 }, { 100, 2 }, { 10, 4 }, { 0, 19 }, { -30, 20 }, { -5, 21 }, { 40, 7 }, { 9728, 9 }, -}; - -CameraModeValue D_8011ACF8[] = { - { -60, 0 }, { 180, 1 }, { 220, 2 }, { 25, 13 }, { 45, 14 }, { -5, 15 }, { 15, 16 }, - { 15, 17 }, { 45, 7 }, { 50, 8 }, { 9729, 9 }, { -60, 11 }, { 20, 12 }, -}; - -CameraModeValue D_8011AD2C[] = { - { -60, 0 }, { 140, 1 }, { 200, 2 }, { 40, 13 }, { 10, 14 }, { 0, 15 }, - { 5, 16 }, { 70, 17 }, { 45, 7 }, { 50, 8 }, { 10, 4 }, { 13568, 9 }, -}; - -CameraModeValue D_8011AD5C[] = { - { -20, 0 }, { 150, 1 }, { 250, 2 }, { 0, 3 }, { 15, 4 }, { 5, 5 }, { 40, 6 }, { 60, 7 }, { 60, 8 }, { 1, 9 }, -}; - -CameraModeValue D_8011AD84[] = { - { -30, 0 }, { 150, 1 }, { 10, 13 }, { 40, 14 }, { -10, 15 }, { 0, 16 }, - { 25, 17 }, { 60, 7 }, { 40, 8 }, { 8194, 9 }, { -50, 11 }, { 20, 12 }, -}; - -CameraModeValue D_8011ADB4[] = { - { 0, 0 }, { 150, 1 }, { 300, 2 }, { 0, 3 }, { 12, 4 }, { 5, 5 }, { 70, 6 }, { 70, 7 }, { 40, 8 }, { 3, 9 }, -}; - -CameraModeValue D_8011ADDC[] = { - { -20, 0 }, { 160, 1 }, { 10, 13 }, { 60, 14 }, { -5, 15 }, { 0, 16 }, - { 25, 17 }, { 70, 7 }, { 50, 8 }, { 8194, 9 }, { -40, 11 }, { 20, 12 }, -}; - -CameraModeValue D_8011AE0C[] = { - { -20, 0 }, { 150, 1 }, { 300, 2 }, { -5, 3 }, { 15, 4 }, { 5, 5 }, { 40, 6 }, { 70, 7 }, { 70, 8 }, { 3, 9 }, -}; - -CameraModeValue D_8011AE34[] = { - { -30, 0 }, { 125, 1 }, { 10, 13 }, { 10, 14 }, { 0, 15 }, { 0, 16 }, - { 50, 17 }, { 60, 7 }, { 50, 8 }, { 8194, 9 }, { -50, 11 }, { 20, 12 }, -}; - -CameraModeValue D_8011AE64[] = { - { 10, 0 }, { 150, 1 }, { 250, 2 }, { 0, 3 }, { 15, 4 }, { 15, 5 }, { 40, 6 }, { 60, 7 }, { 100, 8 }, { 3, 9 }, -}; - -CameraModeValue D_8011AE8C[] = { - { -20, 0 }, { 200, 1 }, { 45, 13 }, { 40, 14 }, { 5, 15 }, { -5, 16 }, - { 35, 17 }, { 60, 7 }, { 100, 8 }, { 8194, 9 }, { -40, 11 }, { 60, 12 }, -}; - -CameraModeValue D_8011AEBC[] = { - { -20, 0 }, { 500, 1 }, { 500, 2 }, { 10, 3 }, { 16, 4 }, { 10, 5 }, { 40, 6 }, { 60, 7 }, { 80, 8 }, { 3, 9 }, -}; - -CameraModeValue D_8011AEE4[] = { - { -20, 0 }, { 200, 1 }, { 20, 13 }, { 60, 14 }, { 0, 15 }, { 10, 16 }, - { 15, 17 }, { 45, 7 }, { 50, 8 }, { 8194, 9 }, { -40, 11 }, { 20, 12 }, -}; - -CameraModeValue D_8011AF14[] = { - { -20, 0 }, { 500, 1 }, { 500, 2 }, { 10, 3 }, { 20, 4 }, { 10, 5 }, { 40, 6 }, { 60, 7 }, { 80, 8 }, { 131, 9 }, -}; - -CameraModeValue D_8011AF3C[] = { - { -20, 0 }, { 200, 1 }, { 20, 13 }, { 60, 14 }, { 0, 15 }, { 10, 16 }, - { 15, 17 }, { 45, 7 }, { 50, 8 }, { 8322, 9 }, { -40, 11 }, { 20, 12 }, -}; - -CameraModeValue D_8011AF6C[] = { - { -20, 0 }, { 500, 1 }, { 500, 2 }, { 10, 3 }, { 20, 4 }, { 10, 5 }, { 80, 6 }, { 60, 7 }, { 80, 8 }, { 131, 9 }, -}; - -CameraModeValue D_8011AF94[] = { - { -20, 0 }, { 100, 1 }, { 150, 2 }, { -10, 3 }, { 15, 4 }, { 10, 5 }, { 40, 6 }, { 80, 7 }, { 60, 8 }, { 3, 9 }, -}; - -CameraModeValue D_8011AFBC[] = { - { -20, 0 }, { 200, 1 }, { 10, 13 }, { 80, 14 }, { -10, 15 }, { 10, 16 }, - { 25, 17 }, { 70, 7 }, { 40, 8 }, { 8194, 9 }, { -40, 11 }, { 20, 12 }, -}; - -CameraModeValue D_8011AFEC[] = { - { -20, 0 }, { 150, 1 }, { 300, 2 }, { 0, 3 }, { 20, 4 }, { 10, 5 }, { 40, 6 }, { 60, 7 }, { 80, 8 }, { 3, 9 }, -}; - -CameraModeValue D_8011B014[] = { - { 0, 0 }, { 400, 1 }, { 0, 13 }, { 60, 14 }, { -10, 15 }, { 5, 16 }, - { 25, 17 }, { 45, 7 }, { 40, 8 }, { 8194, 9 }, { -20, 11 }, { 20, 12 }, -}; - -CameraModeValue D_8011B044[] = { - { -10, 0 }, { 150, 1 }, { 200, 2 }, { -10, 3 }, { 12, 4 }, { 10, 5 }, { 40, 6 }, { 60, 7 }, { 50, 8 }, { 3, 9 }, -}; - -CameraModeValue D_8011B06C[] = { - { 40, 0 }, { 330, 1 }, { 330, 2 }, { -5, 3 }, { 15, 4 }, { 15, 5 }, { 40, 6 }, { 60, 7 }, { 100, 8 }, { 0, 9 }, -}; - -CameraModeValue D_8011B094[] = { - { -40, 0 }, { 250, 1 }, { 0, 3 }, { 2, 4 }, { 80, 7 }, { 20, 8 }, { -4096, 9 }, -}; - -CameraModeValue D_8011B0B0[] = { - { -20, 0 }, { 500, 1 }, { 500, 2 }, { 10, 3 }, { 20, 4 }, { 10, 5 }, { 40, 6 }, { 60, 7 }, { 80, 8 }, { 3, 9 }, -}; - -CameraModeValue D_8011B0D8[] = { - { -20, 0 }, { 180, 1 }, { 20, 13 }, { 60, 14 }, { 0, 15 }, { 10, 16 }, - { 25, 17 }, { 45, 7 }, { 50, 8 }, { 8194, 9 }, { -40, 11 }, { 20, 12 }, -}; - -CameraModeValue D_8011B108[] = { - { 0, 0 }, { 120, 1 }, { 280, 2 }, { 60, 23 }, { 8, 4 }, { 40, 6 }, { 60, 7 }, { 50, 8 }, { 0, 9 }, -}; - -CameraModeValue D_8011B12C[] = { - { 0, 0 }, { 120, 1 }, { 280, 2 }, { 60, 23 }, { 8, 4 }, { 40, 6 }, { 60, 7 }, { 50, 8 }, { 128, 9 }, -}; - -CameraModeValue D_8011B150[] = { - { 0, 0 }, { 270, 1 }, { 300, 2 }, { 120, 23 }, { 8, 4 }, { 60, 6 }, { 60, 7 }, { 100, 8 }, { 0, 9 }, -}; - -CameraModeValue D_8011B174[] = { - { 0, 0 }, { 270, 1 }, { 300, 2 }, { 120, 23 }, { 6, 4 }, { 60, 6 }, { 60, 7 }, { 100, 8 }, { 0, 9 }, -}; - -CameraModeValue D_8011B198[] = { - { -40, 0 }, - { 100, 4 }, - { 60, 7 }, - { 0, 9 }, -}; - -CameraModeValue D_8011B1A8[] = { - { -40, 0 }, - { 100, 4 }, - { 60, 7 }, - { 8192, 9 }, -}; - -CameraModeValue D_8011B1B8[] = { - { -40, 0 }, - { 100, 4 }, - { 60, 7 }, - { 13568, 9 }, -}; - -CameraModeValue D_8011B1C8[] = { - { -40, 0 }, - { 25, 4 }, - { 60, 7 }, - { 0, 9 }, -}; - -CameraModeValue D_8011B1D8[] = { - { -40, 0 }, { 50, 4 }, { 80, 5 }, { 60, 7 }, { 1, 9 }, -}; - -CameraModeValue D_8011B1EC[] = { - { -40, 0 }, - { 60, 7 }, - { 16128, 9 }, -}; - -CameraModeValue D_8011B1F8[] = { - { -40, 0 }, { 50, 4 }, { 80, 5 }, { 60, 7 }, { 4, 9 }, -}; - -CameraModeValue D_8011B20C[] = { - { 0, 9 }, -}; - -CameraModeValue D_8011B210[] = { - { 8192, 9 }, -}; - -CameraModeValue D_8011B214[] = { - { 60, 7 }, - { 0, 9 }, -}; - -CameraModeValue D_8011B21C[] = { - { 60, 7 }, - { 8192, 9 }, -}; - -CameraModeValue D_8011B224[] = { - { 30, 24 }, - { 0, 25 }, - { 4, 4 }, - { 13568, 9 }, -}; - -CameraModeValue D_8011B234[] = { - { -40, 0 }, - { 60, 7 }, - { 12800, 9 }, -}; - -CameraModeValue D_8011B240[] = { - { -5, 0 }, - { 60, 7 }, - { 12802, 9 }, -}; - -CameraModeValue D_8011B24C[] = { - { -5, 0 }, - { 60, 7 }, - { 12810, 9 }, -}; - -CameraModeValue D_8011B258[] = { - { 0, 0 }, { 2, 1 }, { 30, 2 }, { 10, 4 }, { 45, 7 }, { 12800, 9 }, -}; - -CameraModeValue D_8011B270[] = { - { 1, 9 }, -}; - -CameraModeValue D_8011B274[] = { - { -256, 9 }, -}; - -CameraModeValue D_8011B278[] = { - { -255, 9 }, -}; - -CameraModeValue D_8011B27C[] = { - { -40, 0 }, { 100, 4 }, { 80, 5 }, { 60, 7 }, { 0, 9 }, -}; - -CameraModeValue D_8011B290[] = { - { -40, 0 }, - { 60, 1 }, - { 60, 7 }, - { 2, 9 }, -}; - -CameraModeValue D_8011B2A0[] = { - { -30, 0 }, - { 45, 1 }, - { 100, 7 }, - { 8193, 9 }, -}; - -CameraModeValue D_8011B2B0[] = { - { 12800, 9 }, -}; - -CameraModeValue D_8011B2B4[] = { - { -50, 0 }, { 450, 1 }, { 40, 3 }, { 180, 10 }, { 5, 4 }, { 5, 5 }, - { 70, 7 }, { 30, 8 }, { 12, 9 }, { -50, 11 }, { 20, 12 }, -}; - -CameraModeValue D_8011B2E0[] = { - { 13569, 9 }, -}; - -CameraModeValue D_8011B2E4[] = { - { 60, 7 }, - { 30, 8 }, - { 12800, 9 }, -}; - -CameraModeValue D_8011B2F0[] = { - { 12818, 9 }, -}; - -CameraModeValue D_8011B2F4[] = { - { -50, 0 }, { 300, 1 }, { 300, 2 }, { 50, 3 }, { 20, 4 }, { 10, 5 }, { 50, 6 }, { 70, 7 }, { 40, 8 }, { 2, 9 }, -}; - -CameraModeValue D_8011B31C[] = { - { -50, 0 }, { 300, 1 }, { 10, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 }, - { 45, 7 }, { 50, 8 }, { 8202, 9 }, { -40, 11 }, { 20, 12 }, -}; - -CameraModeValue D_8011B348[] = { - { -50, 0 }, { 300, 1 }, { 300, 2 }, { 12, 4 }, { 35, 6 }, { 60, 7 }, { 40, 8 }, { 0, 9 }, -}; - -CameraModeValue D_8011B368[] = { - { -80, 0 }, { 300, 1 }, { 300, 2 }, { 60, 3 }, { 70, 7 }, { 30, 8 }, { 0, 9 }, -}; - -CameraModeValue D_8011B384[] = { - { -120, 0 }, { 300, 1 }, { 300, 2 }, { 70, 3 }, { 50, 7 }, { 30, 8 }, { 8192, 9 }, -}; - -CameraModeValue D_8011B3A0[] = { - { -20, 0 }, { 300, 1 }, { 350, 2 }, { 50, 3 }, { 100, 4 }, - { 10, 5 }, { 100, 6 }, { 70, 7 }, { 30, 8 }, { -4094, 9 }, -}; - -CameraModeValue D_8011B3C8[] = { - { -50, 0 }, { 200, 1 }, { 200, 2 }, { 20, 3 }, { 16, 4 }, { 10, 5 }, { 50, 6 }, { 60, 7 }, { 50, 8 }, { 2, 9 }, -}; - -CameraModeValue D_8011B3F0[] = { - { -50, 0 }, { 200, 1 }, { 40, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 }, - { 45, 7 }, { 50, 8 }, { 8202, 9 }, { -40, 11 }, { 20, 12 }, -}; - -CameraModeValue D_8011B41C[] = { - { -50, 0 }, { 150, 1 }, { 250, 2 }, { 12, 4 }, { 35, 6 }, { 60, 7 }, { 40, 8 }, { 0, 9 }, -}; - -CameraModeValue D_8011B43C[] = { - { -80, 0 }, { 200, 1 }, { 200, 2 }, { 40, 3 }, { 60, 7 }, { 30, 8 }, { 0, 9 }, -}; - -CameraModeValue D_8011B458[] = { - { -120, 0 }, { 200, 1 }, { 200, 2 }, { 60, 3 }, { 50, 7 }, { 30, 8 }, { 8192, 9 }, -}; - -CameraModeValue D_8011B474[] = { - { -20, 0 }, { 200, 1 }, { 250, 2 }, { 20, 3 }, { 100, 4 }, - { 10, 5 }, { 100, 6 }, { 60, 7 }, { 30, 8 }, { -4094, 9 }, -}; - -CameraModeValue D_8011B49C[] = { - { -30, 0 }, - { 60, 7 }, - { 266, 9 }, -}; - -CameraModeValue D_8011B4A8[] = { - { -20, 0 }, - { 150, 1 }, - { 60, 7 }, - { 528, 9 }, -}; - -CameraModeValue D_8011B4B8[] = { - { 0, 0 }, { 400, 1 }, { 500, 2 }, { 35, 3 }, { 14, 4 }, { 5, 5 }, { 20, 6 }, { 60, 7 }, { 40, 8 }, { 18, 9 }, -}; - -CameraModeValue D_8011B4E0[] = { - { -20, 0 }, { 250, 1 }, { 5, 13 }, { 10, 14 }, { 30, 15 }, { 20, 16 }, - { 25, 17 }, { 45, 7 }, { 60, 8 }, { 8194, 9 }, { -40, 11 }, { 25, 12 }, -}; - -CameraModeValue D_8011B510[] = { - { 0, 0 }, { 300, 1 }, { 500, 2 }, { 60, 3 }, { 8, 4 }, { 5, 5 }, { 60, 6 }, { 60, 7 }, { 30, 8 }, { 18, 9 }, -}; - -CameraModeValue D_8011B538[] = { - { -20, 0 }, { 500, 1 }, { 500, 2 }, { 80, 3 }, { 20, 4 }, { 10, 5 }, { 70, 6 }, { 70, 7 }, { 80, 8 }, { 18, 9 }, -}; - -CameraModeValue D_8011B560[] = { - { -20, 0 }, { 500, 1 }, { 80, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 }, - { 70, 7 }, { 80, 8 }, { 8218, 9 }, { -40, 11 }, { 40, 12 }, -}; - -CameraModeValue D_8011B58C[] = { - { -20, 0 }, { 500, 1 }, { 80, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 }, - { 60, 7 }, { 80, 8 }, { 8218, 9 }, { -40, 11 }, { 40, 12 }, -}; - -CameraModeValue D_8011B5B8[] = { - { -20, 0 }, { 500, 1 }, { 500, 2 }, { 80, 3 }, { 20, 4 }, { 10, 5 }, { 80, 6 }, { 60, 7 }, { 20, 8 }, { 18, 9 }, -}; - -CameraModeValue D_8011B5E0[] = { - { -20, 0 }, { 750, 1 }, { 750, 2 }, { 80, 3 }, { 20, 4 }, { 10, 5 }, { 70, 6 }, { 70, 7 }, { 80, 8 }, { 18, 9 }, -}; - -CameraModeValue D_8011B608[] = { - { -20, 0 }, { 750, 1 }, { 80, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 }, - { 70, 7 }, { 80, 8 }, { 8218, 9 }, { -40, 11 }, { 40, 12 }, -}; - -CameraModeValue D_8011B634[] = { - { -20, 0 }, { 750, 1 }, { 80, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 }, - { 70, 7 }, { 80, 8 }, { 8202, 9 }, { -40, 11 }, { 40, 12 }, -}; - -CameraModeValue D_8011B660[] = { - { -20, 0 }, { 750, 1 }, { 750, 2 }, { 80, 3 }, { 20, 4 }, { 10, 5 }, { 80, 6 }, { 70, 7 }, { 20, 8 }, { 18, 9 }, -}; - -CameraModeValue D_8011B688[] = { - { -20, 0 }, { 500, 1 }, { 500, 2 }, { 80, 3 }, { 20, 4 }, { 10, 5 }, { 70, 6 }, { 70, 7 }, { 80, 8 }, { 2, 9 }, -}; - -CameraModeValue D_8011B6B0[] = { - { -20, 0 }, { 500, 1 }, { 80, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 }, - { 70, 7 }, { 80, 8 }, { 8202, 9 }, { -40, 11 }, { 40, 12 }, -}; - -CameraModeValue D_8011B6DC[] = { - { -20, 0 }, { 500, 1 }, { 80, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 }, - { 60, 7 }, { 80, 8 }, { 8202, 9 }, { -40, 11 }, { 40, 12 }, -}; - -CameraModeValue D_8011B708[] = { - { -20, 0 }, { 500, 1 }, { 500, 2 }, { 80, 3 }, { 20, 4 }, { 10, 5 }, { 80, 6 }, { 60, 7 }, { 20, 8 }, { 2, 9 }, -}; - -CameraModeValue D_8011B730[] = { - { -30, 0 }, { 120, 1 }, { -10, 3 }, { 170, 10 }, { 0, 21 }, { 60, 7 }, { 9474, 9 }, { 25, 4 }, { 6, 22 }, -}; - -CameraModeValue D_8011B754[] = { - { 20, 4 }, - { 12800, 9 }, -}; - -CameraModeValue D_8011B75C[] = { - { -20, 0 }, { 200, 1 }, { 300, 2 }, { 10, 3 }, { 12, 4 }, { 10, 5 }, { 35, 6 }, { 60, 7 }, { 60, 8 }, { 2, 9 }, -}; - -CameraModeValue D_8011B784[] = { - { 0, 0 }, { 200, 1 }, { 300, 2 }, { 20, 3 }, { 12, 4 }, { 10, 5 }, { 35, 6 }, { 55, 7 }, { 60, 8 }, { 3842, 9 }, -}; - -CameraModeValue D_8011B7AC[] = { - { -20, 0 }, { 250, 1 }, { 0, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 }, - { 45, 7 }, { 50, 8 }, { 12042, 9 }, { -40, 11 }, { 20, 12 }, -}; - -CameraModeValue D_8011B7D8[] = { - { -20, 0 }, { 250, 1 }, { 0, 13 }, { 80, 14 }, { 0, 15 }, { 0, 16 }, - { 25, 17 }, { 55, 7 }, { 80, 8 }, { 12034, 9 }, { -40, 11 }, { 25, 12 }, -}; - -CameraModeValue D_8011B808[] = { - { -30, 0 }, { 70, 1 }, { 200, 2 }, { 40, 13 }, { 10, 14 }, { 0, 15 }, - { 5, 16 }, { 70, 17 }, { 45, 7 }, { 50, 8 }, { 10, 4 }, { 16160, 9 }, -}; - -CameraModeValue D_8011B838[] = { - { 0, 0 }, { 5, 1 }, { 50, 2 }, { 10, 4 }, { 0, 19 }, { 0, 20 }, { 0, 21 }, { 45, 7 }, { 3840, 9 }, -}; - -CameraModeValue D_8011B85C[] = { - { -20, 0 }, { 200, 1 }, { 300, 2 }, { 12, 4 }, { 35, 6 }, { 60, 7 }, { 40, 8 }, { 3840, 9 }, -}; - -CameraModeValue D_8011B87C[] = { - { -20, 0 }, { 200, 1 }, { 300, 2 }, { 15, 4 }, { 80, 6 }, { 60, 7 }, { 20, 8 }, { 3840, 9 }, -}; - -CameraModeValue D_8011B89C[] = { - { -80, 0 }, { 200, 1 }, { 300, 2 }, { 40, 3 }, { 60, 7 }, { 10, 8 }, { 3840, 9 }, -}; - -CameraModeValue D_8011B8B8[] = { - { -120, 0 }, { 300, 1 }, { 300, 2 }, { 70, 3 }, { 45, 7 }, { 10, 8 }, { 12032, 9 }, -}; - -CameraModeValue D_8011B8D4[] = { - { 16128, 9 }, -}; - -CameraModeValue D_8011B8D8[] = { - { 30, 0 }, { 200, 1 }, { 300, 2 }, { -20, 3 }, { 15, 4 }, { 5, 26 }, { 50, 6 }, { 70, 7 }, { 70, 8 }, { 3, 9 }, -}; - -CameraModeValue D_8011B900[] = { - { -30, 0 }, { 160, 1 }, { 10, 13 }, { 10, 14 }, { 0, 15 }, { 0, 16 }, - { 70, 17 }, { 60, 7 }, { 40, 8 }, { 8194, 9 }, { -50, 11 }, { 20, 12 }, -}; - -CameraModeValue D_8011B930[] = { - { -20, 0 }, { 350, 1 }, { 350, 2 }, { 20, 3 }, { 15, 4 }, { 5, 5 }, { 30, 6 }, { 60, 7 }, { 60, 8 }, { 3, 9 }, -}; - -CameraModeValue D_8011B958[] = { - { -20, 0 }, { 200, 1 }, { 0, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 }, - { 45, 7 }, { 50, 8 }, { 8202, 9 }, { -40, 11 }, { 20, 12 }, -}; - -CameraModeValue D_8011B984[] = { - { -20, 0 }, { 180, 1 }, { 10, 13 }, { 80, 14 }, { -10, 15 }, { 10, 16 }, - { 25, 17 }, { 45, 7 }, { 80, 8 }, { 8194, 9 }, { -40, 11 }, { 25, 12 }, -}; - -CameraModeValue D_8011B9B4[] = { - { -20, 0 }, { 350, 1 }, { 350, 2 }, { 10, 4 }, { 50, 6 }, { 60, 7 }, { 40, 8 }, { 0, 9 }, -}; - -CameraModeValue D_8011B9D4[] = { - { -20, 0 }, { 350, 1 }, { 350, 2 }, { 15, 4 }, { 80, 6 }, { 60, 7 }, { 20, 8 }, { 0, 9 }, -}; - -CameraModeValue D_8011B9F4[] = { - { -40, 0 }, { 350, 1 }, { 350, 2 }, { 20, 18 }, { 5, 4 }, { 5, 5 }, { 60, 7 }, { 40, 8 }, { 0, 9 }, -}; - -CameraModeValue D_8011BA18[] = { - { -40, 0 }, { 350, 1 }, { 350, 2 }, { 20, 18 }, { 999, 4 }, { 5, 5 }, { 60, 7 }, { 40, 8 }, { 8198, 9 }, -}; - -CameraModeValue D_8011BA3C[] = { - { -50, 0 }, { 350, 1 }, { 350, 2 }, { 40, 3 }, { 60, 7 }, { 10, 8 }, { 0, 9 }, -}; - -CameraModeValue D_8011BA58[] = { - { -100, 0 }, { 350, 1 }, { 350, 2 }, { 70, 3 }, { 45, 7 }, { 10, 8 }, { 8192, 9 }, -}; - -CameraModeValue D_8011BA74[] = { - { -10, 0 }, { 350, 1 }, { 350, 2 }, { 20, 3 }, { 100, 4 }, { 5, 5 }, { 100, 6 }, { 60, 7 }, { 5, 8 }, { -4093, 9 }, -}; - -CameraModeValue D_8011BA9C[] = { - { 0, 0 }, { 280, 1 }, { 25, 3 }, { 0, 10 }, { 5, 4 }, { 5, 5 }, - { 70, 7 }, { 30, 8 }, { 8298, 9 }, { -20, 11 }, { 30, 12 }, -}; - -CameraModeValue D_8011BAC8[] = { - { -10, 0 }, { 280, 1 }, { 320, 2 }, { -8, 3 }, { 20, 4 }, { 10, 5 }, { 80, 6 }, { 60, 7 }, { 80, 8 }, { 2, 9 }, -}; - -CameraModeValue D_8011BAF0[] = { - { -20, 0 }, { 180, 1 }, { 200, 2 }, { 35, 13 }, { 45, 14 }, { 0, 15 }, { -5, 16 }, - { 20, 17 }, { 50, 7 }, { 50, 8 }, { 8193, 9 }, { -50, 11 }, { 30, 12 }, -}; - -CameraModeValue D_8011BB24[] = { - { -80, 0 }, { 200, 1 }, { 250, 2 }, { 30, 13 }, { 10, 14 }, { -8, 15 }, - { -8, 16 }, { 30, 17 }, { 50, 7 }, { 50, 8 }, { 10, 4 }, { 13600, 9 }, -}; - -CameraModeValue D_8011BB54[] = { - { -30, 0 }, { 70, 1 }, { 200, 2 }, { 40, 13 }, { 10, 14 }, { 0, 15 }, - { 5, 16 }, { 70, 17 }, { 45, 7 }, { 50, 8 }, { 10, 4 }, { 13728, 9 }, -}; - -CameraMode D_8011BB84[] = { - { 2, 10, D_8011A3A0 }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 }, - { 27, 12, D_8011A458 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 }, - { 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C }, - { 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 }, - { 22, 8, D_8011A5FC }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 }, - { 12, 13, D_8011A68C }, -}; - -CameraMode D_8011BC2C[] = { - { 2, 10, D_8011A6C0 }, { 7, 11, D_8011A6E8 }, { 12, 13, D_8011A714 }, { 14, 12, D_8011A428 }, - { 27, 12, D_8011A748 }, { 23, 9, D_8011A7D8 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 }, - { 19, 9, D_8011A4F4 }, { 66, 8, D_8011A778 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C }, - { 23, 9, D_8011A7FC }, { 22, 8, D_8011A798 }, { 42, 7, D_8011A83C }, { 42, 7, D_8011A858 }, - { 22, 8, D_8011A7B8 }, { 30, 7, D_8011A820 }, { 2, 10, D_8011A874 }, { 7, 11, D_8011A660 }, - { 12, 13, D_8011A68C }, -}; - -CameraMode D_8011BCD4[] = { - { 2, 10, D_8011A89C }, { 7, 11, D_8011A8C4 }, { 12, 13, D_8011A8F0 }, { 14, 12, D_8011A428 }, - { 27, 12, D_8011A924 }, { 23, 9, D_8011A994 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 }, - { 19, 9, D_8011A4F4 }, { 66, 8, D_8011A778 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C }, - { 23, 9, D_8011A9B8 }, { 22, 8, D_8011A954 }, { 42, 7, D_8011A9F8 }, { 42, 7, D_8011AA14 }, - { 22, 8, D_8011A974 }, { 30, 7, D_8011A9DC }, { 2, 10, D_8011AA30 }, { 7, 11, D_8011A660 }, - { 12, 13, D_8011A68C }, -}; - -CameraMode D_8011BD7C[] = { - { 2, 10, D_8011AA58 }, { 7, 11, D_8011A8C4 }, { 12, 13, D_8011A714 }, { 14, 12, D_8011AA80 }, - { 27, 12, D_8011A924 }, { 23, 9, D_8011AAF0 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 }, - { 19, 9, D_8011A4F4 }, { 66, 8, D_8011A778 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C }, - { 23, 9, D_8011AB14 }, { 22, 8, D_8011AAB0 }, { 42, 7, D_8011AB54 }, { 42, 7, D_8011AB70 }, - { 22, 8, D_8011AAD0 }, { 30, 7, D_8011AB38 }, { 2, 10, D_8011AB8C }, { 7, 11, D_8011ABB4 }, - { 12, 13, D_8011A68C }, -}; - -CameraMode D_8011BE24[] = { - { 24, 10, D_8011ABE0 }, { 7, 11, D_8011AC08 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011AC34 }, - { 27, 12, D_8011A458 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 }, - { 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 24, 10, D_8011AC64 }, { 0, 0, NULL }, - { 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 }, - { 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 }, -}; - -// HORSE0 0x8500018F (10000101000000000000000110001111) -CameraMode D_8011BEC4[] = { - { 4, 9, D_8011AC8C }, { 4, 9, D_8011ACB0 }, { 12, 13, D_8011ACF8 }, { 14, 12, D_8011AD2C }, { 0, 0, NULL }, - { 0, 0, NULL }, { 0, 0, NULL }, { 19, 9, D_8011ACD4 }, { 19, 9, D_8011A4F4 }, -}; - -CameraMode D_8011BF0C[] = { - { 2, 10, D_8011AD5C }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 }, - { 27, 12, D_8011AD84 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 }, - { 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C }, - { 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 }, - { 22, 8, D_8011A5A4 }, { 30, 7, D_8011A9DC }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 }, - { 12, 13, D_8011A68C }, -}; - -CameraMode D_8011BFB4[] = { - { 2, 10, D_8011ADB4 }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 }, - { 27, 12, D_8011ADDC }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 }, - { 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C }, - { 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 }, - { 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 }, - { 12, 13, D_8011A68C }, -}; - -CameraMode D_8011C05C[] = { - { 2, 10, D_8011AE0C }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 }, - { 27, 12, D_8011AE34 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 }, - { 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C }, - { 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 }, - { 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 }, - { 12, 13, D_8011A68C }, -}; - -CameraMode D_8011C104[] = { - { 2, 10, D_8011AE64 }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 }, - { 27, 12, D_8011AE8C }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 }, - { 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C }, - { 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 }, - { 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 }, - { 12, 13, D_8011A68C }, -}; - -CameraMode D_8011C1AC[] = { - { 2, 10, D_8011AEBC }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 }, - { 27, 12, D_8011AEE4 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 }, - { 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C }, - { 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 }, - { 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 }, - { 12, 13, D_8011A68C }, -}; - -CameraMode D_8011C254[] = { - { 2, 10, D_8011AF14 }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 }, - { 27, 12, D_8011AF3C }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 }, - { 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C }, - { 23, 9, D_8011A580 }, { 2, 10, D_8011AF6C }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 }, - { 2, 10, D_8011AF6C }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 }, - { 12, 13, D_8011A68C }, -}; - -CameraMode D_8011C2FC[] = { - { 2, 10, D_8011AF94 }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 }, - { 27, 12, D_8011AFBC }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 }, - { 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C }, - { 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 }, - { 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 }, - { 12, 13, D_8011A68C }, -}; - -CameraMode D_8011C3A4[] = { - { 2, 10, D_8011AFEC }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 }, - { 27, 12, D_8011B014 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 }, - { 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C }, - { 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 }, - { 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 }, - { 12, 13, D_8011A68C }, -}; - -CameraMode D_8011C44C[] = { - { 2, 10, D_8011B044 }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 }, - { 27, 12, D_8011B014 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 }, - { 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C }, - { 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 }, - { 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 }, - { 12, 13, D_8011A68C }, -}; - -CameraMode D_8011C4F4[] = { - { 2, 10, D_8011B06C }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 }, - { 27, 12, D_8011AE8C }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 }, - { 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C }, - { 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 }, - { 22, 8, D_8011A5A4 }, { 30, 7, D_8011B094 }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 }, - { 12, 13, D_8011A68C }, -}; - -CameraMode D_8011C59C[] = { - { 2, 10, D_8011B0B0 }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 }, - { 27, 12, D_8011B0D8 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 }, - { 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C }, - { 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 }, - { 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 }, - { 12, 13, D_8011A68C }, -}; - -CameraMode D_8011C644[] = { - { 3, 9, D_8011B108 }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 }, - { 27, 12, D_8011A458 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 }, - { 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C }, - { 23, 9, D_8011A580 }, { 3, 9, D_8011B12C }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 }, - { 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 }, - { 12, 13, D_8011A68C }, -}; - -CameraMode D_8011C6EC[] = { - { 3, 9, D_8011B150 }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 }, - { 27, 12, D_8011A458 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 }, - { 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C }, - { 23, 9, D_8011A580 }, { 3, 9, D_8011B174 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 }, - { 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 }, - { 12, 13, D_8011A68C }, -}; - -CameraMode D_8011C794[] = { - { 32, 4, D_8011B198 }, - { 0, 0, NULL }, - { 32, 4, D_8011B1A8 }, - { 32, 4, D_8011B1B8 }, -}; - -CameraMode D_8011C7B4[] = { - { 32, 4, D_8011B1C8 }, -}; - -CameraMode D_8011C7BC[] = { - { 33, 5, D_8011B1D8 }, -}; - -CameraMode D_8011C7C4[] = { - { 40, 3, D_8011B1EC }, -}; - -CameraMode D_8011C7CC[] = { - { 35, 5, D_8011B1F8 }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 }, - { 27, 12, D_8011A748 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 }, - { 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C }, - { 23, 9, D_8011A580 }, { 0, 0, NULL }, { 0, 0, NULL }, { 0, 0, NULL }, - { 0, 0, NULL }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 }, - { 12, 13, D_8011A68C }, -}; - -CameraMode D_8011C874[] = { - { 34, 1, D_8011B20C }, - { 0, 0, NULL }, - { 34, 1, D_8011B210 }, - { 34, 1, D_8011B210 }, -}; - -CameraMode D_8011C894[] = { - { 48, 2, D_8011B214 }, - { 0, 0, NULL }, - { 48, 2, D_8011B21C }, - { 11, 4, D_8011B224 }, -}; - -CameraMode D_8011C8B4[] = { - { 67, 1, D_8011B20C }, -}; - -CameraMode D_8011C8BC[] = { - { 44, 3, D_8011B234 }, -}; - -CameraMode D_8011C8C4[] = { - { 70, 3, D_8011B240 }, - { 70, 3, D_8011B24C }, -}; - -CameraMode D_8011C8D4[] = { - { 20, 6, D_8011B258 }, -}; - -CameraMode D_8011C8DC[] = { - { 41, 1, D_8011B20C }, -}; - -CameraMode D_8011C8E4[] = { - { 41, 1, D_8011B270 }, -}; - -CameraMode D_8011C8EC[] = { - { 47, 1, D_8011B274 }, -}; - -CameraMode D_8011C8F4[] = { - { 47, 1, D_8011B278 }, -}; - -CameraMode D_8011C8FC[] = { - { 33, 5, D_8011B27C }, -}; - -CameraMode D_8011C904[] = { - { 43, 4, D_8011B290 }, - { 43, 4, D_8011B2A0 }, -}; - -CameraMode D_8011C914[] = { - { 52, 1, D_8011B2B0 }, -}; - -CameraMode D_8011C91C[] = { - { 53, 1, D_8011B2B0 }, -}; - -CameraMode D_8011C924[] = { - { 7, 11, D_8011B2B4 }, - { 0, 0, NULL }, - { 0, 0, NULL }, - { 9, 1, D_8011B2E0 }, -}; - -CameraMode D_8011C944[] = { - { 54, 3, D_8011B2E4 }, -}; - -CameraMode D_8011C94C[] = { - { 55, 3, D_8011B2E4 }, -}; - -CameraMode D_8011C954[] = { - { 60, 1, D_8011B2F0 }, -}; - -CameraMode D_8011C95C[] = { - { 56, 1, D_8011B2B0 }, -}; - -CameraMode D_8011C964[] = { - { 2, 10, D_8011B2F4 }, { 7, 11, D_8011B31C }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 }, - { 27, 12, D_8011A748 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 }, - { 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C }, - { 23, 9, D_8011A580 }, { 22, 8, D_8011B348 }, { 42, 7, D_8011B368 }, { 42, 7, D_8011B384 }, - { 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011B3A0 }, { 7, 11, D_8011A660 }, - { 12, 13, D_8011A68C }, -}; - -CameraMode D_8011CA0C[] = { - { 2, 10, D_8011B3C8 }, { 7, 11, D_8011B3F0 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 }, - { 27, 12, D_8011A748 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 }, - { 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C }, - { 23, 9, D_8011A580 }, { 22, 8, D_8011B41C }, { 42, 7, D_8011B43C }, { 42, 7, D_8011B458 }, - { 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011B474 }, { 7, 11, D_8011A660 }, - { 12, 13, D_8011A68C }, -}; - -CameraMode D_8011CAB4[] = { - { 70, 3, D_8011B49C }, -}; - -CameraMode D_8011CABC[] = { - { 43, 4, D_8011B4A8 }, -}; - -CameraMode D_8011CAC4[] = { - { 68, 1, D_8011B20C }, -}; - -CameraMode D_8011CACC[] = { - { 65, 1, D_8011B2B0 }, -}; - -CameraMode D_8011CAD4[] = { - { 46, 1, D_8011B2B0 }, -}; - -CameraMode D_8011CADC[] = { - { 57, 1, D_8011B2B0 }, -}; - -CameraMode D_8011CAE4[] = { - { 2, 10, D_8011B4B8 }, { 7, 11, D_8011A8C4 }, { 12, 13, D_8011A8F0 }, { 14, 12, D_8011A428 }, - { 27, 12, D_8011B4E0 }, { 23, 9, D_8011A994 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 }, - { 19, 9, D_8011A4F4 }, { 66, 8, D_8011A778 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C }, - { 23, 9, D_8011A9B8 }, { 22, 8, D_8011A954 }, { 42, 7, D_8011A9F8 }, { 42, 7, D_8011AA14 }, - { 22, 8, D_8011A974 }, { 30, 7, D_8011A9DC }, { 2, 10, D_8011B510 }, { 7, 11, D_8011A660 }, - { 12, 13, D_8011A68C }, -}; - -CameraMode D_8011CB8C[] = { - { 2, 10, D_8011B538 }, { 7, 11, D_8011B560 }, { 0, 0, NULL }, - { 0, 0, NULL }, { 7, 11, D_8011B58C }, { 2, 10, D_8011B5B8 }, -}; - -CameraMode D_8011CBBC[] = { - { 2, 10, D_8011B5E0 }, { 7, 11, D_8011B608 }, { 0, 0, NULL }, - { 0, 0, NULL }, { 7, 11, D_8011B634 }, { 2, 10, D_8011B660 }, -}; - -CameraMode D_8011CBEC[] = { - { 2, 10, D_8011B688 }, { 7, 11, D_8011B6B0 }, { 0, 0, NULL }, - { 0, 0, NULL }, { 7, 11, D_8011B6DC }, { 2, 10, D_8011B708 }, -}; - -CameraMode D_8011CC1C[] = { - { 15, 9, D_8011B730 }, -}; - -CameraMode D_8011CC24[] = { - { 61, 2, D_8011B754 }, -}; - -CameraMode D_8011CC2C[] = { - { 2, 10, D_8011B75C }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 }, - { 27, 12, D_8011A748 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 }, - { 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C }, - { 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 }, - { 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 }, - { 12, 13, D_8011A68C }, -}; - -CameraMode D_8011CCD4[] = { - { 2, 10, D_8011B784 }, { 7, 11, D_8011B7AC }, { 27, 12, D_8011B7D8 }, { 14, 12, D_8011B808 }, - { 27, 12, D_8011B7D8 }, { 0, 0, NULL }, { 19, 9, D_8011B838 }, { 0, 0, NULL }, - { 0, 0, NULL }, { 0, 0, NULL }, { 0, 0, NULL }, { 0, 0, NULL }, - { 0, 0, NULL }, { 22, 8, D_8011B85C }, { 42, 7, D_8011B89C }, { 42, 7, D_8011B8B8 }, - { 22, 8, D_8011B87C }, -}; - -CameraMode D_8011CD5C[] = { - { 50, 1, D_8011B8D4 }, -}; - -CameraMode D_8011CD64[] = { - { 2, 10, D_8011B8D8 }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011A428 }, - { 27, 12, D_8011B900 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 }, - { 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C }, - { 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 }, - { 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 }, - { 12, 13, D_8011A68C }, -}; - -CameraMode D_8011CE0C[] = { - { 2, 10, D_8011B930 }, { 7, 11, D_8011B958 }, { 12, 13, D_8011A8F0 }, { 14, 12, D_8011A428 }, - { 27, 12, D_8011B984 }, { 23, 9, D_8011B9F4 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 }, - { 19, 9, D_8011A4F4 }, { 66, 8, D_8011A778 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C }, - { 23, 9, D_8011BA18 }, { 22, 8, D_8011B9B4 }, { 42, 7, D_8011BA3C }, { 42, 7, D_8011BA58 }, - { 22, 8, D_8011B9D4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011BA74 }, { 7, 11, D_8011BA9C }, - { 12, 13, D_8011A68C }, -}; - -CameraMode D_8011CEB4[] = { - { 2, 10, D_8011BAC8 }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011BAF0 }, { 14, 12, D_8011BB24 }, - { 27, 12, D_8011A458 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 }, - { 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C }, - { 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 }, - { 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 }, - { 12, 13, D_8011A68C }, -}; - -CameraMode D_8011CF5C[] = { - { 35, 5, D_8011B1F8 }, { 0, 0, NULL }, { 35, 5, D_8011B1F8 }, { 14, 12, D_8011A428 }, - { 0, 0, NULL }, { 0, 0, NULL }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 }, - { 0, 0, NULL }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C }, -}; - -CameraMode D_8011CFBC[] = { - { 2, 10, D_8011B75C }, { 7, 11, D_8011A3C8 }, { 12, 13, D_8011A3F4 }, { 14, 12, D_8011BB54 }, - { 27, 12, D_8011A748 }, { 23, 9, D_8011A488 }, { 19, 9, D_8011A4AC }, { 19, 9, D_8011A4D0 }, - { 19, 9, D_8011A4F4 }, { 66, 8, D_8011A518 }, { 19, 9, D_8011A538 }, { 19, 9, D_8011A55C }, - { 23, 9, D_8011A580 }, { 22, 8, D_8011A5A4 }, { 42, 7, D_8011A5C4 }, { 42, 7, D_8011A5E0 }, - { 22, 8, D_8011A5A4 }, { 30, 7, D_8011A61C }, { 2, 10, D_8011A638 }, { 7, 11, D_8011A660 }, - { 12, 13, D_8011A68C }, -}; - -CameraSetting sCameraSettings[] = { - { { 0x00000000 }, NULL }, { { 0x051FFFFF }, D_8011BB84 }, { { 0x051FFFFF }, D_8011BC2C }, - { { 0x051FFFFF }, D_8011BCD4 }, { { 0x051FFFFF }, D_8011BD7C }, { { 0x050FF7FF }, D_8011BE24 }, - { { 0x8500018F }, D_8011BEC4 }, { { 0x051FFFFF }, D_8011BF0C }, { { 0x051FFFFF }, D_8011BFB4 }, - { { 0x051FFFFF }, D_8011C05C }, { { 0x051FFFFF }, D_8011C104 }, { { 0x051FFFFF }, D_8011C1AC }, - { { 0x051FFFFF }, D_8011C254 }, { { 0x051FFFFF }, D_8011C2FC }, { { 0x051FFFFF }, D_8011C3A4 }, - { { 0x051FFFFF }, D_8011C44C }, { { 0x051FFFFF }, D_8011C4F4 }, { { 0x051FFFFF }, D_8011C59C }, - { { 0x851FFFFF }, D_8011C644 }, { { 0x851FFFFF }, D_8011C6EC }, { { 0x8500000D }, D_8011C794 }, - { { 0x85000001 }, D_8011C7B4 }, { { 0x85000001 }, D_8011C7BC }, { { 0x85000001 }, D_8011C7C4 }, - { { 0x851E1FFF }, D_8011C7CC }, { { 0x8C00000D }, D_8011C874 }, { { 0x8C00000D }, D_8011C894 }, - { { 0x8C000001 }, D_8011C8B4 }, { { 0xC5000001 }, D_8011C8BC }, { { 0xC5000003 }, D_8011C8C4 }, - { { 0xC5000001 }, D_8011C8D4 }, { { 0xC5000001 }, D_8011C8DC }, { { 0xC5000001 }, D_8011C8E4 }, - { { 0x05000001 }, D_8011C8EC }, { { 0x05000001 }, D_8011C8F4 }, { { 0x85000001 }, D_8011C8FC }, - { { 0x05000003 }, D_8011C904 }, { { 0xCE000001 }, D_8011C914 }, { { 0x4E000001 }, D_8011C91C }, - { { 0x05000009 }, D_8011C924 }, { { 0x45000001 }, D_8011C944 }, { { 0x45000001 }, D_8011C94C }, - { { 0x45000001 }, D_8011C954 }, { { 0x45000001 }, D_8011C95C }, { { 0x451FFFFF }, D_8011C964 }, - { { 0x451FFFFF }, D_8011CA0C }, { { 0xC5000001 }, D_8011CAB4 }, { { 0x45000001 }, D_8011CABC }, - { { 0x05000001 }, D_8011CAC4 }, { { 0x45000001 }, D_8011CACC }, { { 0x45000001 }, D_8011CAD4 }, - { { 0x45000001 }, D_8011CADC }, { { 0x451FFFFF }, D_8011CAE4 }, { { 0x05000033 }, D_8011CB8C }, - { { 0x05000033 }, D_8011CBBC }, { { 0x05000033 }, D_8011CBEC }, { { 0x4A000001 }, D_8011CC1C }, - { { 0x05000001 }, D_8011CC24 }, { { 0x051FFFFF }, D_8011CC2C }, { { 0x0501E05F }, D_8011CCD4 }, - { { 0x45000001 }, D_8011CD5C }, { { 0x051FFFFF }, D_8011CD64 }, { { 0x051FFFFF }, D_8011CE0C }, - { { 0x051FFFFF }, D_8011CEB4 }, { { 0xC5000ECD }, D_8011CF5C }, { { 0x051FFFFF }, D_8011CFBC }, -}; - -s32 Camera_Normal0(Camera* camera); -s32 Camera_Normal1(Camera* camera); -s32 Camera_Normal2(Camera* camera); -s32 Camera_Normal3(Camera* camera); -s32 Camera_Normal4(Camera* camera); -s32 Camera_Parallel0(Camera* camera); -s32 Camera_Parallel1(Camera* camera); -s32 Camera_Parallel2(Camera* camera); -void Camera_Parallel3(Camera* camera); -s32 Camera_Parallel4(Camera* camera); -s32 Camera_KeepOn0(Camera* camera); -s32 Camera_KeepOn1(Camera* camera); -s32 Camera_KeepOn2(Camera* camera); -s32 Camera_KeepOn3(Camera* camera); -s32 Camera_KeepOn4(Camera* camera); -s32 Camera_Subj0(Camera* camera); -s32 Camera_Subj1(Camera* camera); -s32 Camera_Subj2(Camera* camera); -s32 Camera_Subj3(Camera* camera); -s32 Camera_Subj4(Camera* camera); -s32 Camera_Jump0(Camera* camera); -s32 Camera_Jump1(Camera* camera); -s32 Camera_Jump2(Camera* camera); -s32 Camera_Jump3(Camera* camera); -s32 Camera_Jump4(Camera* camera); -s32 Camera_Battle0(Camera* camera); -s32 Camera_Battle1(Camera* camera); -s32 Camera_Battle2(Camera* camera); -s32 Camera_Battle3(Camera* camera); -s32 Camera_Battle4(Camera* camera); -s32 Camera_Fixed0(Camera* camera); -s32 Camera_Fixed1(Camera* camera); -s32 Camera_Fixed2(Camera* camera); -s32 Camera_Fixed3(Camera* camera); -s32 Camera_Fixed4(Camera* camera); -s32 Camera_Data0(Camera* camera); -s32 Camera_Data1(Camera* camera); -s32 Camera_Data2(Camera* camera); -s32 Camera_Data3(Camera* camera); -s32 Camera_Data4(Camera* camera); -s32 Camera_Unique0(Camera* camera); -s32 Camera_Unique1(Camera* camera); -s32 Camera_Unique2(Camera* camera); -s32 Camera_Unique3(Camera* camera); -s32 Camera_Unique4(Camera* camera); -s32 Camera_Unique5(Camera* camera); -s32 Camera_Unique6(Camera* camera); -s32 Camera_Unique7(Camera* camera); -s32 Camera_Unique8(Camera* camera); -s32 Camera_Unique9(Camera* camera); -s32 Camera_Demo0(Camera* camera); -s32 Camera_Demo1(Camera* camera); -s32 Camera_Demo2(Camera* camera); -s32 Camera_Demo3(Camera* camera); -s32 Camera_Demo4(Camera* camera); -s32 Camera_Demo5(Camera* camera); -s32 Camera_Demo6(Camera* camera); -void Camera_Demo7(Camera* camera); -s32 Camera_Demo8(Camera* camera); -s32 Camera_Demo9(Camera* camera); -s32 Camera_Special0(Camera* camera); -s32 Camera_Special1(Camera* camera); -s32 Camera_Special2(Camera* camera); -s32 Camera_Special3(Camera* camera); -s32 Camera_Special4(Camera* camera); -s32 Camera_Special5(Camera* camera); -s32 Camera_Special6(Camera* camera); -s32 Camera_Special7(Camera* camera); -s32 Camera_Special8(Camera* camera); -s32 Camera_Special9(Camera* camera); - -void* sCameraFunctions[] = { - NULL, - Camera_Normal0, - Camera_Normal1, - Camera_Normal2, - Camera_Normal3, - Camera_Normal4, - Camera_Parallel0, - Camera_Parallel1, - Camera_Parallel2, - Camera_Parallel3, - Camera_Parallel4, - Camera_KeepOn0, - Camera_KeepOn1, - Camera_KeepOn2, - Camera_KeepOn3, - Camera_KeepOn4, - Camera_Subj0, - Camera_Subj1, - Camera_Subj2, - Camera_Subj3, - Camera_Subj4, - Camera_Jump0, - Camera_Jump1, - Camera_Jump2, - Camera_Jump3, - Camera_Jump4, - Camera_Battle0, - Camera_Battle1, - Camera_Battle2, - Camera_Battle3, - Camera_Battle4, - Camera_Fixed0, - Camera_Fixed1, - Camera_Fixed2, - Camera_Fixed3, - Camera_Fixed4, - Camera_Data0, - Camera_Data1, - Camera_Data2, - Camera_Data3, - Camera_Data4, - Camera_Unique0, - Camera_Unique1, - Camera_Unique2, - Camera_Unique3, - Camera_Unique4, - Camera_Unique5, - Camera_Unique6, - Camera_Unique7, - Camera_Unique8, - Camera_Unique9, - Camera_Demo0, - Camera_Demo1, - Camera_Demo2, - Camera_Demo3, - Camera_Demo4, - Camera_Demo5, - Camera_Demo6, - Camera_Demo7, - Camera_Demo8, - Camera_Demo9, - Camera_Special0, - Camera_Special1, - Camera_Special2, - Camera_Special3, - Camera_Special4, - Camera_Special5, - Camera_Special6, - Camera_Special7, - Camera_Special8, - Camera_Special9, -}; - -s32 sInitRegs = 1; // 8011D390 - -UNK_TYPE D_8011D394 = 0; -s32 D_8011D398 = -1; -s16 D_8011D39C = 0; // size = 4 ? -u_D_8011D3A0 D_8011D3A0 = { { - 0x0000, - 0x0001, -} }; - -s32 D_8011D3A4 = 0x02; -s32 D_8011D3A8 = 0x20; -s32 D_8011D3AC = -1; - -s16 D_8011D3B0[] = { - 0x0AAA, 0xF556, 0x1555, 0xEAAB, 0x2AAA, 0xD556, 0x3FFF, 0xC001, 0x5555, 0xAAAB, 0x6AAA, 0x9556, 0x7FFF, 0x0000, -}; - -s16 D_8011D3CC[] = { - 0x0000, 0x02C6, 0x058C, 0x0000, 0x0000, 0xFD3A, 0x0000, 0x0852, 0x0000, 0x0000, 0x0B18, 0x02C6, 0xFA74, 0x0000, -}; - -s32 D_8011D3E8 = 0; // size = 8? -s32 D_8011D3EC = 0; -s32 D_8011D3F0 = 0; - -s32 D_8011D3F4 = -16; - -char sCameraFunctionNames[][8] = { - "NONE ", "NORM0()", "NORM1()", "NORM2()", "NORM3()", "NORM4()", "PARA0()", "PARA1()", "PARA2()", "PARA3()", - "PARA4()", "KEEP0()", "KEEP1()", "KEEP2()", "KEEP3()", "KEEP4()", "SUBJ0()", "SUBJ1()", "SUBJ2()", "SUBJ3()", - "SUBJ4()", "JUMP0()", "JUMP1()", "JUMP2()", "JUMP3()", "JUMP4()", "BATT0()", "BATT1()", "BATT2()", "BATT3()", - "BATT4()", "FIXD0()", "FIXD1()", "FIXD2()", "FIXD3()", "FIXD4()", "DATA0()", "DATA1()", "DATA2()", "DATA3()", - "DATA4()", "UNIQ0()", "UNIQ1()", "UNIQ2()", "UNIQ3()", "UNIQ4()", "UNIQ5()", "UNIQ6()", "UNIQ7()", "UNIQ8()", - "UNIQ9()", "DEMO0()", "DEMO1()", "DEMO2()", "DEMO3()", "DEMO4()", "DEMO5()", "DEMO6()", "DEMO7()", "DEMO8()", - "DEMO9()", "SPEC0()", "SPEC1()", "SPEC2()", "SPEC3()", "SPEC4()", "SPEC5()", "SPEC6()", "SPEC7()", "SPEC8()", - "SPEC9()", "", "", "", "", "", -}; - -u8 D_8011D658[] = { - 0x42, 0x48, 0x00, 0x00, 0xEE, 0x3A, 0xD5, 0x58, 0x42, 0x96, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08, - 0x42, 0xA0, 0x00, 0x00, 0xEE, 0x3A, 0x80, 0x08, 0x41, 0x70, 0x00, 0x00, 0xEE, 0x3A, 0x80, 0x08, -}; - -u8 D_8011D678[] = { - 0x00, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x42, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, - 0xC0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0xC0, 0x40, 0x00, 0x00, -}; - -s32 D_8011D6A8 = -200; - -u8 D_8011D6AC[] = { - 0x8F, 0xFF, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x42, 0x70, 0x00, 0x00, 0x3F, 0x80, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0xFF, 0x03, 0x03, -}; - -u8 D_8011D6D8[] = { - 0x00, 0x13, 0x00, 0x00, 0x42, 0x34, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xA0, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0xFF, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x42, 0x70, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, - 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, -}; - -u8 D_8011D724[] = { - 0x8F, 0xFF, 0x24, 0x24, 0x00, 0x01, 0x00, 0x00, 0x42, 0x70, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, - 0xC1, 0xA0, 0x00, 0x00, 0x81, 0xFF, 0x21, 0x21, 0x00, 0x13, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, 0x3F, 0x80, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x42, 0x70, 0x00, 0x00, 0x12, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x42, 0x70, - 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, - 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, -}; - -u8 D_8011D79C[] = { - 0xCF, 0xFF, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x42, 0x70, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xC1, 0xFF, 0x03, 0x03, 0x00, 0x13, 0x00, 0x00, 0x42, 0x34, 0x00, 0x00, 0x3F, 0x80, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xC1, 0x20, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0xC1, 0xFF, 0x03, 0x03, 0x00, 0x09, 0x00, 0x00, 0x42, 0x70, - 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0xFF, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x42, 0x70, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, - 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, -}; - -u8 D_8011D83C[] = { - 0x83, 0xFF, 0x21, 0x41, 0x00, 0x14, 0x00, 0x00, 0x42, 0x34, 0x00, 0x00, 0x3E, 0x4C, 0xCC, 0xCD, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x12, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x42, 0x70, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, - 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, -}; - -u8 D_8011D88C[] = { - 0x81, 0xFF, 0x03, 0x03, 0x00, 0x14, 0x00, 0x00, 0x42, 0x34, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x42, 0x70, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, - 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, -}; - -u8 D_8011D8DC[] = { - 0x8F, 0xFF, 0x04, 0x04, 0x00, 0x14, 0x00, 0x01, 0x42, 0x48, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, - 0xC2, 0xA0, 0x00, 0x00, 0x82, 0xFF, 0x21, 0x21, 0x00, 0x05, 0x00, 0x00, 0x42, 0x70, 0x00, 0x00, 0x3F, 0x80, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, - 0x40, 0xA0, 0x00, 0x00, 0xC3, 0x48, 0x00, 0x00, 0x12, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x42, 0x70, - 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, - 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, -}; - -u8 D_8011D954[] = { - 0x0F, 0xFF, 0xC1, 0xC1, 0x00, 0x14, 0x00, 0x00, 0x42, 0x70, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x7A, 0x00, 0x00, 0x83, 0xFF, 0x05, 0xB1, 0x00, 0x05, 0x00, 0x00, 0x42, 0x70, 0x00, 0x00, 0x3D, 0xCC, - 0xCC, 0xCD, 0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x41, 0x20, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, 0x82, 0xFF, 0x21, 0x21, 0x00, 0x05, 0x00, 0x02, 0x42, 0x70, - 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00, 0xC3, 0x16, 0x00, 0x00, 0x12, 0xFF, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x42, 0x70, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, - 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, -}; - -u8 D_8011D9F4[] = { - 0x8F, 0xFF, 0x05, 0x04, 0x00, 0x14, 0x00, 0x02, 0x42, 0x70, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0x82, 0xFF, 0x21, 0x21, 0x00, 0x05, 0x00, 0x02, 0x42, 0x70, 0x00, 0x00, 0x3F, 0x80, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x41, 0xA0, 0x00, 0x00, 0xC3, 0x16, 0x00, 0x00, 0x12, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x42, 0x70, - 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, - 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, -}; - -u8 D_8011DA6C[] = { - 0x45, 0x3E, 0xA0, 0x00, 0x44, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0xDB, 0x60, 0x00, - 0x45, 0x55, 0x70, 0x00, 0xC3, 0xBE, 0x00, 0x00, 0xC5, 0x43, 0x00, 0x00, 0x45, 0x45, 0x80, 0x00, - 0x43, 0x75, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x20, 0x00, 0x00, 0x43, 0x70, 0x00, 0x00, -}; - -u8 D_8011DA9C[] = { - 0x45, 0x45, 0x80, 0x00, 0x45, 0x06, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0xBD, 0x60, 0x00, - 0x45, 0x81, 0x10, 0x00, 0xC4, 0x50, 0xC0, 0x00, 0xC5, 0x3E, 0x00, 0x00, 0x45, 0x81, 0x38, 0x00, - 0x43, 0x66, 0x00, 0x00, 0xC2, 0x48, 0x00, 0x00, 0x44, 0x16, 0x00, 0x00, 0xC2, 0x96, 0x00, 0x00, -}; - -u8 D_8011DACC[] = { - 0x44, 0xC4, 0x40, 0x00, 0x45, 0x66, 0x00, 0x00, 0x45, 0x67, 0x40, 0x00, 0x43, 0xC5, 0x80, 0x00, -}; - -u8 D_8011DADC[] = { - 0x43, 0xA0, 0x00, 0x00, 0x43, 0xA0, 0x00, 0x00, 0x43, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -u8 D_8011DAEC[] = { - 0xF8, 0x30, 0xFC, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -s16 D_8011DAFC[] = { - 1, 2, 58, 3, 4, 62, -}; - -s16 D_8011DB08 = 1008; - -s16 D_8011DB0C = 342; - -s32 D_8011DB10 = 0; - -s32 D_8011DB14 = 0; - -// BSS -extern GlobalContext* D_8015BD7C; -extern DbgCamera D_8015BD80; -extern Vec3f D_8015BD84; -extern Vec3f D_8015BD90; -extern Vec3f D_8015BD9C; -extern f32 D_8015BDC8; -extern Vec3s D_8015CE46; -extern CollisionPoly* D_8015CE4C; +#include "z_camera_data.c" /*===============================================================*/ -typedef struct { - Vec3f unk_00; - Vec3f unk_0C; - CollisionPoly* unk_18; - char unk_1C[0x8]; - s32 unk_24; -} struct_80043D18; -f32 func_800437F0(f32 arg0, f32 arg1) { - f32 percent = 0.4f; - f32 ret = fabsf(arg1); +/** + * Interpolates along a curve between 0 and 1 with a period of + * -a <= p <= a at time `b` + */ +f32 Camera_InterpolateCurve(f32 a, f32 b) { + f32 ret; + f32 absB; + f32 t = 0.4f; + f32 t2; + f32 t3; + f32 t4; - if (arg0 < ret) { - ret = 1; - } else if (ret < (f32)arg0 * (1 - percent)) { //! float cast needed to match - ret = (SQ(arg1) * (1 - percent)) / SQ((1 - percent) * arg0); + absB = fabsf(b); + if (a < absB) { + ret = 1.0f; } else { - ret = 1 - (0.4f * SQ(arg0 - ret)) / SQ(0.4f * arg0); + t2 = 1.0f - t; + if ((a * t2) > absB) { + t3 = SQ(b) * (1.0f - t); + t4 = SQ(a * t2); + ret = t3 / t4; + } else { + t3 = SQ(a - absB) * t; + t4 = SQ(0.4f * a); + ret = 1.0f - (t3 / t4); + } } - return ret; } -f32 func_8004389C(f32 arg0, f32 arg1, f32 arg2, f32 arg3) { - f32 temp1 = arg0 - arg1; - f32 temp2; +/* + * Performs linear interpoloation between `cur` and `target`. If `cur` is within + * `minDiff` units, The result is rounded up to `target` + */ +f32 Camera_LERPCeilF(f32 target, f32 cur, f32 stepScale, f32 minDiff) { + f32 diff = target - cur; + f32 step; f32 ret; - if (fabsf(temp1) >= arg3) { - temp2 = temp1 * arg2; - ret = arg1 + temp2; + if (fabsf(diff) >= minDiff) { + step = diff * stepScale; + ret = cur + step; } else { - ret = arg0; + ret = target; } return ret; } -f32 func_800438DC(f32 arg0, f32 arg1, f32 arg2, f32 arg3) { - f32 temp1 = arg0 - arg1; - f32 temp2; +/* + * Performs linear interpoloation between `cur` and `target`. If `cur` is within + * `minDiff` units, The result is rounded down to `cur` + */ +f32 Camera_LERPFloorF(f32 target, f32 cur, f32 stepScale, f32 minDiff) { + f32 diff = target - cur; + f32 step; f32 ret; - if (fabsf(temp1) >= arg3) { - temp2 = temp1 * arg2; - ret = arg1 + temp2; + if (fabsf(diff) >= minDiff) { + step = diff * stepScale; + ret = cur + step; } else { - ret = arg1; + ret = cur; } return ret; } -s16 func_8004391C(s16 arg0, s16 arg1, f32 arg2, s16 arg3) { - s16 temp1 = arg0 - arg1; - s16 temp2; +/* + * Performs linear interpoloation between `cur` and `target`. If `cur` is within + * `minDiff` units, The result is rounded up to `target` + */ +s16 Camera_LERPCeilS(s16 target, s16 cur, f32 stepScale, s16 minDiff) { + s16 diff = target - cur; + s16 step; s32 ret; - if (ABS(temp1) >= arg3) { - temp2 = temp1 * arg2 + 0.5f; - ret = arg1 + temp2; + if (ABS(diff) >= minDiff) { + step = diff * stepScale + 0.5f; + ret = cur + step; } else { - ret = arg0; + ret = target; } return ret; } -s16 func_800439AC(s16 arg0, s16 arg1, f32 arg2, s16 arg3) { - s16 temp1 = arg0 - arg1; - s16 temp2; +/* + * Performs linear interpoloation between `cur` and `target`. If `cur` is within + * `minDiff` units, The result is rounded down to `cur` + */ +s16 Camera_LERPFloorS(s16 target, s16 cur, f32 stepScale, s16 minDiff) { + s16 diff = target - cur; + s16 step; s32 ret; - if (ABS(temp1) >= arg3) { - temp2 = temp1 * arg2 + 0.5f; - ret = arg1 + temp2; + if (ABS(diff) >= minDiff) { + step = diff * stepScale + 0.5f; + ret = cur + step; } else { - ret = arg1; + ret = cur; } return ret; } -void func_80043A3C(Vec3f* arg0, Vec3f* arg1, f32 arg2, f32 arg3, f32 arg4) { - arg1->x = func_8004389C(arg0->x, arg1->x, arg3, arg4); - arg1->y = func_8004389C(arg0->y, arg1->y, arg2, arg4); - arg1->z = func_8004389C(arg0->z, arg1->z, arg3, arg4); +/* + * Performs linear interpoloation between `cur` and `target`. If `cur` is within + * `minDiff` units, The result is rounded up to `target` + */ +void Camera_LERPCeilVec3f(Vec3f* target, Vec3f* cur, f32 yStepScale, f32 xzStepScale, f32 minDiff) { + cur->x = Camera_LERPCeilF(target->x, cur->x, xzStepScale, minDiff); + cur->y = Camera_LERPCeilF(target->y, cur->y, yStepScale, minDiff); + cur->z = Camera_LERPCeilF(target->z, cur->z, xzStepScale, minDiff); } void func_80043ABC(Camera* camera) { - camera->unk_C0.z = 100.0f; - camera->unk_C0.y = OREG(7); - camera->unk_C0.x = OREG(6); - camera->unk_CC.x = OREG(2) * 0.01f; - camera->unk_CC.y = OREG(3) * 0.01f; - camera->unk_CC.z = OREG(4) * 0.01f; + camera->yawUpdateRateInv = 100.0f; + camera->pitchUpdateRateInv = R_CAM_DEFA_PHI_UPDRATE; + camera->rUpdateRateInv = OREG(6); + camera->xzOffsetUpdateRate = PCT(OREG(2)); + camera->yOffsetUpdateRate = PCT(OREG(3)); + camera->fovUpdateRate = PCT(OREG(4)); } void func_80043B60(Camera* camera) { - camera->unk_C0.x = OREG(27); - camera->unk_C0.z = OREG(27); - camera->unk_C0.y = OREG(27); - camera->unk_CC.x = 0.001f; - camera->unk_CC.y = 0.001f; - camera->unk_CC.z = 0.001f; + camera->rUpdateRateInv = OREG(27); + camera->yawUpdateRateInv = OREG(27); + camera->pitchUpdateRateInv = OREG(27); + camera->xzOffsetUpdateRate = 0.001f; + camera->yOffsetUpdateRate = 0.001f; + camera->fovUpdateRate = 0.001f; } -Vec3f* func_80043BC4(Vec3f* arg0, Vec3s* arg1) { - Vec3f sp4; +Vec3f* Camera_Vec3sToVec3f(Vec3f* dest, Vec3s* src) { + Vec3f copy; - sp4.x = arg1->x; - sp4.y = arg1->y; - sp4.z = arg1->z; + copy.x = src->x; + copy.y = src->y; + copy.z = src->z; - *arg0 = sp4; - return arg0; + *dest = copy; + return dest; } -Vec3f* func_80043C28(Vec3f* arg0, Vec3f* arg1, VecSph* arg2) { - Vec3f sp24, sp18; - OLib_VecSphGeoToVec3f(&sp18, arg2); +Vec3f* Camera_Vec3fVecSphGeoAdd(Vec3f* dest, Vec3f* a, VecSph* b) { + Vec3f copy; + Vec3f vecB; + OLib_VecSphGeoToVec3f(&vecB, b); - sp24.x = arg1->x + sp18.x; - sp24.y = arg1->y + sp18.y; - sp24.z = arg1->z + sp18.z; + copy.x = a->x + vecB.x; + copy.y = a->y + vecB.y; + copy.z = a->z + vecB.z; - *arg0 = sp24; - return arg0; + *dest = copy; + return dest; } -Vec3f* func_80043CAC(Vec3f* arg0, Vec3f* arg1, Vec3f* arg2, f32 arg3) { - Vec3f sp4; +Vec3f* Camera_Vec3fTranslateByUnitVector(Vec3f* dest, Vec3f* src, Vec3f* unitVector, f32 uvScale) { + Vec3f copy; - sp4.x = arg1->x + (arg2->x * arg3); - sp4.y = arg1->y + (arg2->y * arg3); - sp4.z = arg1->z + (arg2->z * arg3); + copy.x = src->x + (unitVector->x * uvScale); + copy.y = src->y + (unitVector->y * uvScale); + copy.z = src->z + (unitVector->z * uvScale); - *arg0 = sp4; - return arg0; + *dest = copy; + return dest; } -s32 func_80043D18(Camera* camera, Vec3f* arg1, struct_80043D18* arg2) { - CollisionContext* colCtx; - Vec3f sp68, sp5C, sp50; - f32 temp_ret; - CollisionPoly* sp48; - s32 sp44; - VecSph sp3C; +/** + * Detects the collision poly between `from` and `to`, places collision info in `to` + */ +s32 Camera_BGCheckInfo(Camera* camera, Vec3f* from, CamColChk* to) { + CollisionContext* colCtx = &camera->globalCtx->colCtx; + Vec3f toNewPos; + Vec3f toPoint; + Vec3f fromToNorm; + f32 floorPolyY; + CollisionPoly* floorPoly; + s32 floorBgId; + VecSph fromToOffset; - colCtx = &camera->globalCtx->colCtx; - OLib_Vec3fDiffToVecSphGeo(&sp3C, arg1, &arg2->unk_00); - sp3C.r += 8.0f; - func_80043C28(&sp5C, arg1, &sp3C); + OLib_Vec3fDiffToVecSphGeo(&fromToOffset, from, &to->pos); + fromToOffset.r += 8.0f; + Camera_Vec3fVecSphGeoAdd(&toPoint, from, &fromToOffset); - if (func_8003DD6C(colCtx, arg1, &sp5C, &sp68, &arg2->unk_18, 1, 1, 1, -1, &arg2->unk_24) == 0) { - OLib_Vec3fDistNormalize(&sp50, arg1, &arg2->unk_00); + if (!func_8003DD6C(colCtx, from, &toPoint, &toNewPos, &to->poly, 1, 1, 1, -1, &to->bgId)) { + // no poly in path. + OLib_Vec3fDistNormalize(&fromToNorm, from, &to->pos); - arg2->unk_0C.x = -sp50.x; - arg2->unk_0C.y = -sp50.y; - arg2->unk_0C.z = -sp50.z; + to->norm.x = -fromToNorm.x; + to->norm.y = -fromToNorm.y; + to->norm.z = -fromToNorm.z; - sp68 = arg2->unk_00; - sp68.y += 5.0f; - temp_ret = func_8003CCA4(colCtx, &sp48, &sp44, &sp68); + toNewPos = to->pos; + toNewPos.y += 5.0f; + floorPolyY = func_8003CCA4(colCtx, &floorPoly, &floorBgId, &toNewPos); - if ((arg2->unk_00.y - temp_ret) > 5.0f) { - arg2->unk_00.x += arg2->unk_0C.x; - arg2->unk_00.y += arg2->unk_0C.y; - arg2->unk_00.z += arg2->unk_0C.z; + if ((to->pos.y - floorPolyY) > 5.0f) { + // if the y distance from the check point to the floor is more than 5 units + // the point is not colliding with any collision. + to->pos.x += to->norm.x; + to->pos.y += to->norm.y; + to->pos.z += to->norm.z; return 0; } - arg2->unk_18 = sp48; - sp68.y = temp_ret + 1.0f; - arg2->unk_24 = sp44; + to->poly = floorPoly; + toNewPos.y = floorPolyY + 1.0f; + to->bgId = floorBgId; } - arg2->unk_0C.x = arg2->unk_18->norm.x * (1.0f / 32767.0f); - arg2->unk_0C.y = arg2->unk_18->norm.y * (1.0f / 32767.0f); - arg2->unk_0C.z = arg2->unk_18->norm.z * (1.0f / 32767.0f); - arg2->unk_00.x = arg2->unk_0C.x + sp68.x; - arg2->unk_00.y = arg2->unk_0C.y + sp68.y; - arg2->unk_00.z = arg2->unk_0C.z + sp68.z; + to->norm.x = to->poly->norm.x * COLPOLY_NORM_FRAC; + to->norm.y = to->poly->norm.y * COLPOLY_NORM_FRAC; + to->norm.z = to->poly->norm.z * COLPOLY_NORM_FRAC; + to->pos.x = to->norm.x + toNewPos.x; + to->pos.y = to->norm.y + toNewPos.y; + to->pos.z = to->norm.z + toNewPos.z; - return sp44 + 1; + return floorBgId + 1; } -void func_80043F34(Camera* camera, Vec3f* arg1, Vec3f* arg2) { - struct_80043D18 sp20; - Vec3s unused; +/** + * Detects if there is collision between `from` and `to` + */ +s32 Camera_BGCheck(Camera* camera, Vec3f* from, Vec3f* to) { + CamColChk toCol; + s32 bgId; - sp20.unk_00 = *arg2; - func_80043D18(camera, arg1, &sp20); - *arg2 = sp20.unk_00; + toCol.pos = *to; + bgId = Camera_BGCheckInfo(camera, from, &toCol); + *to = toCol.pos; + return bgId; } -// 242 lines -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_80043F94.s") +s32 func_80043F94(Camera* camera, Vec3f* from, CamColChk* to) { + CollisionContext* colCtx = &camera->globalCtx->colCtx; + Vec3f toNewPos; + Vec3f toPos; + Vec3f fromToNorm; + Vec3f playerFloorNormF; + f32 floorY; + CollisionPoly* floorPoly; + s32 bgId; + VecSph fromToGeo; + + OLib_Vec3fDiffToVecSphGeo(&fromToGeo, from, &to->pos); + fromToGeo.r += 8.0f; + Camera_Vec3fVecSphGeoAdd(&toPos, from, &fromToGeo); + if (!func_8003DD6C(colCtx, from, &toPos, &toNewPos, &to->poly, 1, 1, 1, -1, &to->bgId)) { + OLib_Vec3fDistNormalize(&fromToNorm, from, &to->pos); + to->norm.x = -fromToNorm.x; + to->norm.y = -fromToNorm.y; + to->norm.z = -fromToNorm.z; + toNewPos = to->pos; + toNewPos.y += 5.0f; + floorY = func_8003CCA4(colCtx, &floorPoly, &bgId, &toNewPos); + if ((to->pos.y - floorY) > 5.0f) { + // to is not on the ground or below it. + to->pos.x += to->norm.x; + to->pos.y += to->norm.y; + to->pos.z += to->norm.z; + return 0; + } + // to is touching the ground, move it up 1 unit. + to->poly = floorPoly; + toNewPos.y = floorY + 1.0f; + to->bgId = bgId; + } + to->norm.x = to->poly->norm.x * COLPOLY_NORM_FRAC; + to->norm.y = to->poly->norm.y * COLPOLY_NORM_FRAC; + to->norm.z = to->poly->norm.z * COLPOLY_NORM_FRAC; + if ((to->norm.y > 0.5f) || (to->norm.y < -0.8f)) { + to->pos.x = to->norm.x + toNewPos.x; + to->pos.y = to->norm.y + toNewPos.y; + to->pos.z = to->norm.z + toNewPos.z; + } else if (playerFloorPoly != NULL) { + playerFloorNormF.x = playerFloorPoly->norm.x * COLPOLY_NORM_FRAC; + playerFloorNormF.y = playerFloorPoly->norm.y * COLPOLY_NORM_FRAC; + playerFloorNormF.z = playerFloorPoly->norm.z * COLPOLY_NORM_FRAC; + if (Math3D_LineSegVsPlane(playerFloorNormF.x, playerFloorNormF.y, playerFloorNormF.z, playerFloorPoly->dist, + from, &toPos, &toNewPos, 1)) { + // line is from->to is touching the poly the player is on. + to->norm = playerFloorNormF; + to->poly = playerFloorPoly; + to->bgId = camera->bgCheckId; + to->pos.x = to->norm.x + toNewPos.x; + to->pos.y = to->norm.y + toNewPos.y; + to->pos.z = to->norm.z + toNewPos.z; + } else { + OLib_Vec3fDistNormalize(&fromToNorm, from, &to->pos); + to->norm.x = -fromToNorm.x; + to->norm.y = -fromToNorm.y; + to->norm.z = -fromToNorm.z; + to->pos.x += to->norm.x; + to->pos.y += to->norm.y; + to->pos.z += to->norm.z; + return 0; + } + } + return 1; +} void func_80044340(Camera* camera, Vec3f* arg1, Vec3f* arg2) { - struct_80043D18 sp20; + CamColChk sp20; Vec3s unused; - sp20.unk_00 = *arg2; + sp20.pos = *arg2; func_80043F94(camera, arg1, &sp20); - *arg2 = sp20.unk_00; + *arg2 = sp20.pos; } -s32 func_800443A0(Camera* camera, Vec3f* arg1, Vec3f* arg2) { +/** + * Checks if `from` to `to` is looking from the outside of a poly towards the front + */ +s32 Camera_CheckOOB(Camera* camera, Vec3f* from, Vec3f* to) { s32 pad; - Vec3f sp40; + Vec3f intersect; s32 pad2; - s32 sp38; - CollisionPoly* sp34; - CollisionContext* colCtx; - colCtx = &camera->globalCtx->colCtx; + s32 bgId; + CollisionPoly* poly; + CollisionContext* colCtx = &camera->globalCtx->colCtx; - sp34 = NULL; - if (func_8003DD6C(colCtx, arg1, arg2, &sp40, &sp34, 1, 1, 1, 0, &sp38) && (func_80038B7C(sp34, arg1) < 0.0f)) { + poly = NULL; + if (func_8003DD6C(colCtx, from, to, &intersect, &poly, 1, 1, 1, 0, &bgId) && (func_80038B7C(poly, from) < 0.0f)) { + // if there is a poly between `from` and `to` and the `from` is behind the poly. return true; } return false; } -f32 func_80044434(Camera* camera, Vec3f* arg1, Vec3f* arg2, s32* arg3) { - s32 sp2C; // unused - CollisionPoly* sp28; - f32 temp_ret = func_8003C940(&camera->globalCtx->colCtx, &sp28, arg3, arg2); +/** + * Gets the floor position underneath `chkPos`, and returns the normal of the floor to `floorNorm`, + * and bgId to `bgId`. If no floor is found, then the normal is a flat surface pointing upwards. + */ +f32 Camera_GetFloorYNorm(Camera* camera, Vec3f* floorNorm, Vec3f* chkPos, s32* bgId) { + s32 pad; + CollisionPoly* floorPoly; + f32 floorY = func_8003C940(&camera->globalCtx->colCtx, &floorPoly, bgId, chkPos); - if (temp_ret == -32000.0f) { - arg1->x = 0.0f; - arg1->z = 0.0f; - arg1->y = 1.0f; + if (floorY == BGCHECK_Y_MIN) { + // no floor + floorNorm->x = 0.0f; + floorNorm->y = 1.0f; + floorNorm->z = 0.0f; } else { - arg1->x = sp28->norm.x * (1.f / 32767.0f); - arg1->y = sp28->norm.y * (1.f / 32767.0f); - arg1->z = sp28->norm.z * (1.f / 32767.0f); + floorNorm->x = floorPoly->norm.x * COLPOLY_NORM_FRAC; + floorNorm->y = floorPoly->norm.y * COLPOLY_NORM_FRAC; + floorNorm->z = floorPoly->norm.z * COLPOLY_NORM_FRAC; } - return temp_ret; + return floorY; } -f32 func_80044510(Camera* camera, Vec3f* arg1) { - Vec3f sp2C, sp20; - s32 sp1C; +/** + * Gets the position of the floor from `pos` + */ +f32 Camera_GetFloorY(Camera* camera, Vec3f* pos) { + Vec3f posCheck; + Vec3f floorNorm; + s32 bgId; - sp2C = *arg1; - sp2C.y += 80.0f; + posCheck = *pos; + posCheck.y += 80.0f; - return func_80044434(camera, &sp20, &sp2C, &sp1C); + return Camera_GetFloorYNorm(camera, &floorNorm, &posCheck, &bgId); } -// 125 lines (loop) -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_80044568.s") +/** + * Gets the position of the floor from `pos`, and if the floor is considered not solid, + * it checks the next floor below that up to 3 times. Returns the normal of the floor into `norm` + */ +f32 Camera_GetFloorYLayer(Camera* camera, Vec3f* norm, Vec3f* pos, u32* bgId) { + CollisionPoly* floorPoly; + CollisionContext* colCtx = &camera->globalCtx->colCtx; + f32 floorY; + s32 i; -s16 func_80044740(Camera* camera, s32 arg1) { - return func_80041A4C(&camera->globalCtx->colCtx, arg1, 50); + for (i = 3; i > 0; i--) { + floorY = func_8003CCA4(colCtx, &floorPoly, bgId, pos); + if (floorY == BGCHECK_Y_MIN || + (camera->playerGroundY < floorY && !((floorPoly->norm.y * COLPOLY_NORM_FRAC) > 0.5f))) { + // no floor, or player is below the floor and floor is not considered steep + norm->x = 0.0f; + norm->y = 1.0f; + norm->z = 0.0f; + floorY = BGCHECK_Y_MIN; + break; + } else if (func_80041D4C(colCtx, floorPoly, *bgId) == 1) { + // floor is not solid, check below that floor. + pos->y = floorY - 10.0f; + continue; + } else { + norm->x = floorPoly->norm.x * COLPOLY_NORM_FRAC; + norm->y = floorPoly->norm.y * COLPOLY_NORM_FRAC; + norm->z = floorPoly->norm.z * COLPOLY_NORM_FRAC; + break; + } + } + if (i == 0) { + osSyncPrintf(VT_COL(YELLOW, BLACK) "camera: foward check: too many layer!\n" VT_RST); + } + return floorY; } -struct_80041C10_ret* func_8004476C(Camera* camera) { - return func_80041C10(&camera->globalCtx->colCtx, camera->unk_148, 50); +/** + * Returns the CameraSettingType of the camera at index `camDataIdx` + */ +s16 Camera_GetCamDataSetting(Camera* camera, s32 camDataIdx) { + return func_80041A4C(&camera->globalCtx->colCtx, camDataIdx, 50); } -s32 func_8004479C(Camera* camera, s32* arg1, Vec3f* arg2) { - s32 temp_ret; - PosRot sp20; +/** + * Returns the scene camera info for the current camera data index + */ +Vec3s* Camera_GetCamBGData(Camera* camera) { + return func_80041C10(&camera->globalCtx->colCtx, camera->camDataIdx, 50); +} + +/** + * Gets the scene's camera index for the poly `poly`, returns -1 if + * there is no camera data for that poly. + */ +s32 Camera_GetDataIdxForPoly(Camera* camera, u32* bgId, CollisionPoly* poly) { + s32 camDataIdx; + PosRot playerPosRot; s32 ret; - func_8002EF44(&sp20, &camera->player->actor); - temp_ret = func_80041A28(&camera->globalCtx->colCtx, arg2, *arg1); + func_8002EF44(&playerPosRot, &camera->player->actor); // unused. + camDataIdx = func_80041A28(&camera->globalCtx->colCtx, poly, *bgId); - if (func_80041A4C(&camera->globalCtx->colCtx, temp_ret, *arg1) == 0) { + if (func_80041A4C(&camera->globalCtx->colCtx, camDataIdx, *bgId) == CAM_SET_NONE) { ret = -1; } else { - ret = temp_ret; + ret = camDataIdx; } return ret; } -s32 func_8004481C(Camera* camera, s16* arg1) { - CollisionPoly* sp44; - s32 sp40; // unused - s32 sp3C; - PosRot sp28; +/** + * Returns the scene camera info for the floor under the player. + * If there is no floor then there is no camera data, returns the number of + * pieces of data there are in `dataCnt` + */ +Vec3s* Camera_GetCamBgDataUnderPlayer(Camera* camera, u16* dataCnt) { + CollisionPoly* floorPoly; + s32 pad; + s32 bgId; + PosRot playerPosShape; - func_8002EF44(&sp28, &camera->player->actor); - sp28.pos.y += Player_GetCameraYOffset(camera->player); - if (func_8003C940(&camera->globalCtx->colCtx, &sp44, &sp3C, &sp28.pos) == -32000.0f) { - return 0; + func_8002EF44(&playerPosShape, &camera->player->actor); + playerPosShape.pos.y += Player_GetHeight(camera->player); + if (func_8003C940(&camera->globalCtx->colCtx, &floorPoly, &bgId, &playerPosShape.pos) == BGCHECK_Y_MIN) { + // no floor + return NULL; } - *arg1 = func_80041B80(&camera->globalCtx->colCtx, sp44, sp3C); - return func_80041C98(&camera->globalCtx->colCtx, sp44, sp3C); + *dataCnt = func_80041B80(&camera->globalCtx->colCtx, floorPoly, bgId); + return func_80041C98(&camera->globalCtx->colCtx, floorPoly, bgId); } -s32 func_800448CC(Camera* camera, f32* arg1) { - PosRot sp34; - s32 sp30; - s32 temp_ret; +/** + * Gets the Camera information for the water box the player is in. + * Returns -1 if the player is not in a water box, or does not have a swimming state. + * Returns -2 if there is no camera index for the water box. + * Returns the camera data index otherwise. + */ +s32 Camera_GetWaterBoxDataIdx(Camera* camera, f32* waterY) { + PosRot playerPosShape; + WaterBox* waterBox; + s32 ret; - func_8002EF44(&sp34, &camera->player->actor); - *arg1 = sp34.pos.y; + func_8002EF44(&playerPosShape, &camera->player->actor); + *waterY = playerPosShape.pos.y; - if (func_8004213C(camera->globalCtx, &camera->globalCtx->colCtx, sp34.pos.x, sp34.pos.z, arg1, &sp30) == 0) { - *arg1 = -32000.0f; + if (!func_8004213C(camera->globalCtx, &camera->globalCtx->colCtx, playerPosShape.pos.x, playerPosShape.pos.z, + waterY, &waterBox)) { + // player's position is not in a water box. + *waterY = BGCHECK_Y_MIN; return -1; } + if (!(camera->player->stateFlags1 & 0x8000000)) { - *arg1 = -32000.0f; + // player is not swimming + *waterY = BGCHECK_Y_MIN; return -1; } - temp_ret = func_80042538(&camera->globalCtx->colCtx, sp30); - if ((temp_ret <= 0) || (func_80042548(&camera->globalCtx->colCtx, sp30) <= 0)) { + ret = func_80042538(&camera->globalCtx->colCtx, waterBox); + if ((ret <= 0) || (func_80042548(&camera->globalCtx->colCtx, waterBox) <= 0)) { + // no camera data idx, or no CameraSettingType return -2; } - return temp_ret; + return ret; } -f32 func_800449AC(Camera* camera, Vec3f* arg1, s32* arg2) { - PosRot sp2C; - f32 sp28; - s32 sp24; +/** + * Checks if `chkPos` is inside a waterbox. If there is no water box below `chkPos` + * or if `chkPos` is above the water surface, return BGCHECK_Y_MIN, output + * environment properites to `envProp` if `chkPos` is inside the waterbox. + */ +f32 Camera_GetWaterSurface(Camera* camera, Vec3f* chkPos, s32* envProp) { + PosRot playerPosRot; + f32 waterY; + WaterBox* waterBox; - func_8002EF44(&sp2C, &camera->player->actor); - sp28 = sp2C.pos.y; + func_8002EF44(&playerPosRot, &camera->player->actor); + waterY = playerPosRot.pos.y; - if (func_8004213C(camera->globalCtx, &camera->globalCtx->colCtx, arg1->x, arg1->z, &sp28, &sp24) == 0) { - return -32000.f; - } - if (sp28 < arg1->y) { - return -32000.f; + if (!func_8004213C(camera->globalCtx, &camera->globalCtx->colCtx, chkPos->x, chkPos->z, &waterY, &waterBox)) { + // chkPos is not within the x/z boundaries of a water box. + return BGCHECK_Y_MIN; } - *arg2 = func_8004259C(&camera->globalCtx->colCtx, sp24); - return sp28; + if (waterY < chkPos->y) { + // the water's y position is below the check position + // the aka the position is NOT in the water. + return BGCHECK_Y_MIN; + } + + *envProp = func_8004259C(&camera->globalCtx->colCtx, waterBox); + return waterY; } -s16 func_80044A74(Vec3f* arg0, Vec3f* arg1) { - return Math_atan2f(arg1->x - arg0->x, arg1->z - arg0->z) * (180.0f / M_PI) * (32767.5f / 180.0f) + 0.5f; +/** + * Calculates the angle between points `from` and `to` + */ +s16 Camera_XZAngle(Vec3f* to, Vec3f* from) { + return DEGF_TO_BINANG(RADF_TO_DEGF(Math_atan2f(from->x - to->x, from->z - to->z))); } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_80044ADC.s") +s16 func_80044ADC(Camera* camera, s16 yaw, s16 arg2) { + static f32 D_8015CE50; + static f32 D_8015CE54; + static CamColChk D_8015CE58; + Vec3f playerPos; + Vec3f rotatedPos; + Vec3f floorNorm; + f32 temp_f2; + s16 temp_s0; + s16 temp_s1; + f32 phi_f18; + f32 sinYaw; + f32 cosYaw; + u32 bgId; + f32 sp30; + f32 sp2C; + f32 phi_f16; + f32 playerHeight; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_80044E68.s") + sinYaw = Math_Sins(yaw); + cosYaw = Math_Coss(yaw); + playerHeight = Player_GetHeight(camera->player); + temp_f2 = PCT(OREG(19)) * playerHeight; + sp30 = PCT(OREG(17)) * playerHeight; + sp2C = PCT(OREG(18)) * playerHeight; + playerPos.x = camera->playerPosRot.pos.x; + playerPos.y = camera->playerGroundY + temp_f2; + playerPos.z = camera->playerPosRot.pos.z; + rotatedPos.x = playerPos.x + (sp30 * sinYaw); + rotatedPos.y = playerPos.y; + rotatedPos.z = playerPos.z + (sp30 * cosYaw); + if (arg2 || (camera->globalCtx->state.frames % 2) == 0) { + D_8015CE58.pos.x = playerPos.x + (sp2C * sinYaw); + D_8015CE58.pos.y = playerPos.y; + D_8015CE58.pos.z = playerPos.z + (sp2C * cosYaw); + Camera_BGCheckInfo(camera, &playerPos, &D_8015CE58); + if (arg2) { + D_8015CE50 = D_8015CE54 = camera->playerGroundY; + } + } else { + sp2C = OLib_Vec3fDistXZ(&playerPos, &D_8015CE58.pos); + D_8015CE58.pos.x += D_8015CE58.norm.x * 5.0f; + D_8015CE58.pos.y += D_8015CE58.norm.y * 5.0f; + D_8015CE58.pos.z += D_8015CE58.norm.z * 5.0f; + if (sp2C < sp30) { + sp30 = sp2C; + D_8015CE50 = D_8015CE54 = Camera_GetFloorYLayer(camera, &floorNorm, &D_8015CE58.pos, &bgId); + } else { + D_8015CE50 = Camera_GetFloorYLayer(camera, &floorNorm, &rotatedPos, &bgId); + D_8015CE54 = Camera_GetFloorYLayer(camera, &floorNorm, &D_8015CE58.pos, &bgId); + } -f32 func_800450A4(Camera* camera, f32 arg1) { + if (D_8015CE50 == BGCHECK_Y_MIN) { + D_8015CE50 = camera->playerGroundY; + } + + if (D_8015CE54 == BGCHECK_Y_MIN) { + D_8015CE54 = D_8015CE50; + } + } + phi_f16 = PCT(OREG(20)) * (D_8015CE50 - camera->playerGroundY); + phi_f18 = (1.0f - PCT(OREG(20))) * (D_8015CE54 - camera->playerGroundY); + temp_s0 = DEGF_TO_BINANG(RADF_TO_DEGF(Math_atan2f(phi_f16, sp30))); + temp_s1 = DEGF_TO_BINANG(RADF_TO_DEGF(Math_atan2f(phi_f18, sp2C))); + return temp_s0 + temp_s1; +} + +Vec3f* Camera_CalcUpFromPitchYawRoll(Vec3f* dest, s16 pitch, s16 yaw, s16 roll) { + f32 sinPitch; + f32 cosPitch; + f32 sinYaw; + f32 cosYaw; + f32 sinNegRoll; + f32 cosNegRoll; + Vec3f spA4; + f32 pad; + f32 sp54; + f32 sp4C; + f32 cosPitchCosYawSinRoll; + f32 negSinPitch; + f32 temp_f10_2; + f32 cosPitchcosYaw; + f32 temp_f14; + f32 negSinPitchSinYaw; + f32 negSinPitchCosYaw; + f32 cosPitchSinYaw; + f32 temp_f4_2; + f32 temp_f6; + f32 temp_f8; + f32 temp_f8_2; + f32 temp_f8_3; + + sinPitch = Math_Sins(pitch); + cosPitch = Math_Coss(pitch); + sinYaw = Math_Sins(yaw); + cosYaw = Math_Coss(yaw); + negSinPitch = -sinPitch; + sinNegRoll = Math_Sins(-roll); + cosNegRoll = Math_Coss(-roll); + negSinPitchSinYaw = negSinPitch * sinYaw; + temp_f14 = 1.0f - cosNegRoll; + cosPitchSinYaw = cosPitch * sinYaw; + sp54 = SQ(cosPitchSinYaw); + sp4C = (cosPitchSinYaw * sinPitch) * temp_f14; + cosPitchcosYaw = cosPitch * cosYaw; + temp_f4_2 = ((1.0f - sp54) * cosNegRoll) + sp54; + cosPitchCosYawSinRoll = cosPitchcosYaw * sinNegRoll; + negSinPitchCosYaw = negSinPitch * cosYaw; + temp_f6 = (cosPitchcosYaw * cosPitchSinYaw) * temp_f14; + temp_f10_2 = sinPitch * sinNegRoll; + spA4.x = ((negSinPitchSinYaw * temp_f4_2) + (cosPitch * (sp4C - cosPitchCosYawSinRoll))) + + (negSinPitchCosYaw * (temp_f6 + temp_f10_2)); + sp54 = SQ(sinPitch); + temp_f4_2 = (sinPitch * cosPitchcosYaw) * temp_f14; + temp_f8_3 = cosPitchSinYaw * sinNegRoll; + temp_f8 = sp4C + cosPitchCosYawSinRoll; + spA4.y = ((negSinPitchSinYaw * temp_f8) + (cosPitch * (((1.0f - sp54) * cosNegRoll) + sp54))) + + (negSinPitchCosYaw * (temp_f4_2 - temp_f8_3)); + temp_f8_2 = temp_f6 - temp_f10_2; + spA4.z = ((negSinPitchSinYaw * temp_f8_2) + (cosPitch * (temp_f4_2 + temp_f8_3))) + + (negSinPitchCosYaw * (((1.0f - SQ(cosPitchcosYaw)) * cosNegRoll) + SQ(cosPitchcosYaw))); + *dest = spA4; + return dest; +} + +f32 Camera_ClampLERPScale(Camera* camera, f32 maxLERPScale) { f32 ret; - if (camera->unk_100 < (OREG(41) * 0.01f)) { - ret = OREG(41) * 0.01f; - } else if (arg1 <= camera->unk_100) { - ret = arg1; + if (camera->atLERPStepScale < PCT(R_AT_LERP_MIN)) { + ret = PCT(R_AT_LERP_MIN); + } else if (camera->atLERPStepScale >= maxLERPScale) { + ret = maxLERPScale; } else { - ret = OREG(42) * 0.01f * camera->unk_100; + ret = PCT(R_AT_LERP_SCALE) * camera->atLERPStepScale; } return ret; } -#ifdef NON_MATCHING void Camera_CopyModeValuesToPREG(Camera* camera, s16 mode) { + CameraModeValue* values; + CameraModeValue* valueP; s32 i; if (PREG(82)) { - osSyncPrintf("camera: res: stat (%d/%d/%d)\n", camera->unk_164, camera->setting, mode); + osSyncPrintf("camera: res: stat (%d/%d/%d)\n", camera->thisIdx, camera->setting, mode); } + + values = sCameraSettings[camera->setting].cameraModes[mode].values; + for (i = 0; i < sCameraSettings[camera->setting].cameraModes[mode].valueCnt; i++) { - CameraModeValue* phi_s0 = &sCameraSettings[camera->setting].cameraModes[mode].values[i]; - PREG(phi_s0->param) = phi_s0->val; + valueP = &values[i]; + PREG(valueP->param) = valueP->val; if (PREG(82)) { - osSyncPrintf("camera: res: PREG(%02d) = %d\n", phi_s0->param, phi_s0->val); + osSyncPrintf("camera: res: PREG(%02d) = %d\n", valueP->param, valueP->val); } } - camera->unk_15E = 0; + camera->animState = 0; } -#else -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_CopyModeValuesToPREG.s") -#endif -#ifdef NON_MATCHING s32 Camera_CopyPREGToModeValues(Camera* camera) { - CameraModeValue* phi_s0; + CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + CameraModeValue* valueP; s32 i; for (i = 0; i < sCameraSettings[camera->setting].cameraModes[camera->mode].valueCnt; i++) { - phi_s0 = &sCameraSettings[camera->setting].cameraModes[camera->mode].values[i]; - phi_s0->val = PREG(phi_s0->param); + valueP = &values[i]; + valueP->val = PREG(valueP->param); if (PREG(82)) { - osSyncPrintf("camera: res: %d = PREG(%02d)\n", phi_s0->val, phi_s0->param); + osSyncPrintf("camera: res: %d = PREG(%02d)\n", valueP->val, valueP->param); } } return true; } -#else -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_CopyPREGToModeValues.s") -#endif -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_80045350.s") +#define SHRINKWIN_MASK (0xF000) +#define SHRINKWINVAL_MASK (0x7000) +#define SHRINKWIN_CURVAL (0x8000) +#define IFACE_ALPHA_MASK (0x0F00) -void* func_8004545C(Vec3f* arg0, s32 arg1, s32 arg2, struct_80043D18* arg3, struct_80043D18* arg4) { - Vec3f sp24; +void Camera_UpdateInterface(s16 flags) { + s16 interfaceAlpha; - if (func_800427B4(arg3->unk_18, arg4->unk_18, arg1, arg2, &sp24) == 0) { - osSyncPrintf(VT_COL(YELLOW, BLACK) "camera: corner check no cross point %x %x\n" VT_RST, arg3, arg4); - *arg0 = arg3->unk_00; - return arg0; + if ((flags & SHRINKWIN_MASK) != SHRINKWIN_MASK) { + switch (flags & SHRINKWINVAL_MASK) { + case 0x1000: + sCameraShrinkWindowVal = 0x1A; + break; + case 0x2000: + sCameraShrinkWindowVal = 0x1B; + break; + case 0x3000: + sCameraShrinkWindowVal = 0x20; + break; + default: + sCameraShrinkWindowVal = 0; + break; + } + + if (flags & SHRINKWIN_CURVAL) { + ShrinkWindow_SetCurrentVal(sCameraShrinkWindowVal); + } else { + ShrinkWindow_SetVal(sCameraShrinkWindowVal); + } } - *arg0 = sp24; - return arg0; -} - -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_80045508.s") - -#ifdef NON_MATCHING -// CLOSE: stack is 4 bytes too big -f32 func_80045714(Vec3f* arg0, s16 arg1, s16 arg2, f32 arg3) { - VecSph sp1C; - f32 sp18; - - OLib_Vec3fToVecSphGeo(&sp1C, arg0); - sp18 = Math_Coss(sp1C.pitch); - sp18 = fabsf(Math_Coss(arg1 - sp1C.yaw) * sp18); - return Math_Coss(arg1 - arg2) * (sp18 * arg3); -} -#else -f32 func_80045714(Vec3f* a, s16 b, s16 c, f32 arg3); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_80045714.s") -#endif - -f32 OLib_ClampMaxDist(f32, f32); - -s32 func_800457A8(Camera* camera, VecSph* arg1, f32 arg2, s16 arg3) { - f32 unused; - Vec3f sp50; - Vec3f sp44; - s32 unused2; - PosRot* sp2C; - f32 temp_ret; - - temp_ret = Player_GetCameraYOffset(camera->player); - - sp50.x = 0.f; - sp50.z = 0.f; - sp50.y = temp_ret + arg2; - - sp2C = &camera->playerPosRot; - if (arg3 != 0) { - sp50.y -= OLib_ClampMaxDist(func_80045714(&camera->unk_108, sp2C->rot.y, arg1->yaw, OREG(9)), temp_ret); + if ((flags & IFACE_ALPHA_MASK) != IFACE_ALPHA_MASK) { + interfaceAlpha = (flags & IFACE_ALPHA_MASK) >> 8; + if (interfaceAlpha == 0) { + interfaceAlpha = 0x32; + } + if (interfaceAlpha != sCameraInterfaceAlpha) { + sCameraInterfaceAlpha = interfaceAlpha; + Interface_ChangeAlpha(sCameraInterfaceAlpha); + } } - func_80043A3C(&sp50, &camera->unk_E4, camera->unk_CC.y, camera->unk_CC.x, 0.1f); - - sp44.x = sp2C->pos.x + camera->unk_E4.x; - sp44.y = sp2C->pos.y + camera->unk_E4.y; - sp44.z = sp2C->pos.z + camera->unk_E4.z; - func_80043A3C(&sp44, &camera->at, camera->unk_100, camera->unk_100, 0.2f); - - return 1; } -#ifdef NON_MATCHING -// CLOSE: regalloc -s32 func_800458D4(Camera* camera, VecSph* arg1, f32 arg2, f32* arg3, s16 arg4) { +Vec3f* Camera_BGCheckCorner(Vec3f* dst, Vec3f* linePointA, Vec3f* linePointB, CamColChk* pointAColChk, + CamColChk* pointBColChk) { + Vec3f closestPoint; + + if (!func_800427B4(pointAColChk->poly, pointBColChk->poly, linePointA, linePointB, &closestPoint)) { + osSyncPrintf(VT_COL(YELLOW, BLACK) "camera: corner check no cross point %x %x\n" VT_RST, pointAColChk, + pointBColChk); + *dst = pointAColChk->pos; + return dst; + } + + *dst = closestPoint; + return dst; +} + +/** + * Checks collision between at and eyeNext, if `checkEye` is set, if there is no collsion between + * eyeNext->at, then eye->at is also checked. + * Returns: + * 0 if no collsion is found between at->eyeNext + * 2 if the angle between the polys is between 60 degrees and 120 degrees + * 3 ? + * 6 if the angle between the polys is greater than 120 degrees + */ +s32 func_80045508(Camera* camera, VecSph* diffSph, CamColChk* eyeChk, CamColChk* atChk, s16 checkEye) { + Vec3f* at = &camera->at; + Vec3f* eye = &camera->eye; + Vec3f* eyeNext = &camera->eyeNext; + Vec3f eyePos; + s32 atEyeBgId; + s32 eyeAtBgId; + s32 ret; + f32 cosEyeAt; + + eyeChk->pos = camera->eyeNext; + + ret = 0; + + atEyeBgId = Camera_BGCheckInfo(camera, at, eyeChk); + if (atEyeBgId != 0) { + // collision found between at->eye + atChk->pos = camera->at; + + OLib_Vec3fToVecSphGeo(&eyeChk->sphNorm, &eyeChk->norm); + + if (eyeChk->sphNorm.pitch >= 0x2EE1) { + eyeChk->sphNorm.yaw = diffSph->yaw; + } + + eyeAtBgId = Camera_BGCheckInfo(camera, eyeNext, atChk); + + if (eyeAtBgId == 0) { + // no collision from eyeNext->at + if (checkEye & 1) { + + atChk->pos = *at; + eyePos = *eye; + + if (Camera_BGCheckInfo(camera, &eyePos, atChk) == 0) { + // no collision from eye->at + return 3; + } else if (eyeChk->poly == atChk->poly) { + // at->eye and eye->at is the same poly + return 3; + } + } else { + return 3; + } + } else if (eyeChk->poly == atChk->poly) { + // at->eyeNext and eyeNext->at is the same poly + return 3; + } + + OLib_Vec3fToVecSphGeo(&atChk->sphNorm, &atChk->norm); + + if (atChk->sphNorm.pitch >= 0x2EE1) { + atChk->sphNorm.yaw = BINANG_ROT180(diffSph->yaw); + } + + if (atEyeBgId != eyeAtBgId) { + // different bgIds for at->eye[Next] and eye[Next]->at + ret = 3; + } else { + cosEyeAt = Math3D_Cos(&eyeChk->norm, &atChk->norm); + if (cosEyeAt < -0.5f) { + ret = 6; + } else if (cosEyeAt > 0.5f) { + ret = 3; + } else { + ret = 2; + } + } + } + return ret; +} + +/** + * Calculates how much to adjust the camera at's y value when on a slope. + */ +f32 Camera_CalcSlopeYAdj(Vec3f* floorNorm, s16 playerYRot, s16 eyeAtYaw, f32 adjAmt) { + f32 tmp; + VecSph floorNormSph; + + OLib_Vec3fToVecSphGeo(&floorNormSph, floorNorm); + + tmp = Math_Coss(floorNormSph.pitch) * Math_Coss(playerYRot - floorNormSph.yaw); + return (fabsf(tmp) * adjAmt) * Math_Coss(playerYRot - eyeAtYaw); +} + +/** + * Calculates new at vector for the camera pointing in `eyeAtDir` + */ +s32 Camera_CalcAtDefault(Camera* camera, VecSph* eyeAtDir, f32 extraYOffset, s16 calcSlope) { + Vec3f* at = &camera->at; + Vec3f posOffsetTarget; + Vec3f atTarget; + s32 pad2; + PosRot* playerPosRot = &camera->playerPosRot; + f32 yOffset; + + yOffset = Player_GetHeight(camera->player); + + posOffsetTarget.x = 0.f; + posOffsetTarget.y = yOffset + extraYOffset; + posOffsetTarget.z = 0.f; + + if (calcSlope) { + posOffsetTarget.y -= OLib_ClampMaxDist( + Camera_CalcSlopeYAdj(&camera->floorNorm, playerPosRot->rot.y, eyeAtDir->yaw, OREG(9)), yOffset); + } + + Camera_LERPCeilVec3f(&posOffsetTarget, &camera->posOffset, camera->yOffsetUpdateRate, camera->xzOffsetUpdateRate, + 0.1f); + + atTarget.x = playerPosRot->pos.x + camera->posOffset.x; + atTarget.y = playerPosRot->pos.y + camera->posOffset.y; + atTarget.z = playerPosRot->pos.z + camera->posOffset.z; + + Camera_LERPCeilVec3f(&atTarget, at, camera->atLERPStepScale, camera->atLERPStepScale, 0.2f); + + return true; +} + +s32 func_800458D4(Camera* camera, VecSph* eyeAtDir, f32 arg2, f32* arg3, s16 arg4) { f32 phi_f2; - Vec3f sp60; - Vec3f sp54; - f32 temp_ret; - PosRot* temp_s1; - f32 sp48; + Vec3f posOffsetTarget; + Vec3f atTarget; + f32 eyeAtAngle; + PosRot* playerPosRot = &camera->playerPosRot; + f32 deltaY; s32 pad[2]; - sp60.y = Player_GetCameraYOffset(camera->player) + arg2; - sp60.x = 0.0f; - sp60.z = 0.0f; + posOffsetTarget.y = Player_GetHeight(camera->player) + arg2; + posOffsetTarget.x = 0.0f; + posOffsetTarget.z = 0.0f; - temp_s1 = &camera->playerPosRot; - if (arg4 != 0) { - sp60.y -= func_80045714(&camera->unk_108, temp_s1->rot.y, arg1->yaw, OREG(9)); + if (arg4) { + posOffsetTarget.y -= Camera_CalcSlopeYAdj(&camera->floorNorm, playerPosRot->rot.y, eyeAtDir->yaw, OREG(9)); } - sp48 = temp_s1->pos.y - *arg3; - temp_ret = Math_atan2f(sp48, OLib_Vec3fDistXZ(&camera->at, &camera->eye)); // f2 and f14 are swapped + deltaY = playerPosRot->pos.y - *arg3; + eyeAtAngle = Math_atan2f(deltaY, OLib_Vec3fDistXZ(&camera->at, &camera->eye)); - if (OREG(32) * (M_PI / 180) < temp_ret) { - phi_f2 = 1.0f - sinf(temp_ret - OREG(32) * (M_PI / 180)); - } else if (OREG(33) * (M_PI / 180) > temp_ret) { - phi_f2 = 1.0f - sinf(OREG(33) * (M_PI / 180) - temp_ret); + if (eyeAtAngle > DEGF_TO_RADF(OREG(32))) { + if (1) {} + phi_f2 = 1.0f - sinf(DEGF_TO_RADF(eyeAtAngle - OREG(32))); + } else if (eyeAtAngle < DEGF_TO_RADF(OREG(33))) { + phi_f2 = 1.0f - sinf(DEGF_TO_RADF(OREG(33)) - eyeAtAngle); } else { phi_f2 = 1.0f; } - sp60.y -= sp48 * phi_f2; - func_80043A3C(&sp60, &camera->unk_E4, OREG(29) * 0.01f, OREG(30) * 0.01f, 0.1f); + posOffsetTarget.y -= deltaY * phi_f2; + Camera_LERPCeilVec3f(&posOffsetTarget, &camera->posOffset, PCT(OREG(29)), PCT(OREG(30)), 0.1f); - sp54.x = temp_s1->pos.x + camera->unk_E4.x; - sp54.y = temp_s1->pos.y + camera->unk_E4.y; - sp54.z = temp_s1->pos.z + camera->unk_E4.z; - func_80043A3C(&sp54, &camera->at, camera->unk_100, camera->unk_100, 0.2f); + atTarget.x = playerPosRot->pos.x + camera->posOffset.x; + atTarget.y = playerPosRot->pos.y + camera->posOffset.y; + atTarget.z = playerPosRot->pos.z + camera->posOffset.z; + + Camera_LERPCeilVec3f(&atTarget, &camera->at, camera->atLERPStepScale, camera->atLERPStepScale, 0.2f); return 1; } -#else -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_800458D4.s") -#endif -s32 func_80045B08(Camera* camera, VecSph* arg1, f32 arg2, s16 arg3) { +s32 func_80045B08(Camera* camera, VecSph* eyeAtDir, f32 yExtra, s16 arg3) { f32 phi_f2; - Vec3f sp48; - Vec3f sp3C; + Vec3f posOffsetTarget; + Vec3f atTarget; f32 sp38; // unused f32 temp_ret; - PosRot* temp_s1; + PosRot* playerPosRot = &camera->playerPosRot; - sp48.y = Player_GetCameraYOffset(camera->player) + arg2; - sp48.x = 0.0f; - sp48.z = 0.0f; + posOffsetTarget.y = Player_GetHeight(camera->player) + yExtra; + posOffsetTarget.x = 0.0f; + posOffsetTarget.z = 0.0f; temp_ret = Math_Sins(arg3); - temp_s1 = &camera->playerPosRot; if (temp_ret < 0.0f) { - phi_f2 = Math_Coss(temp_s1->rot.y - arg1->yaw); + phi_f2 = Math_Coss(playerPosRot->rot.y - eyeAtDir->yaw); } else { - phi_f2 = -Math_Coss(temp_s1->rot.y - arg1->yaw); + phi_f2 = -Math_Coss(playerPosRot->rot.y - eyeAtDir->yaw); } - sp48.y -= temp_ret * phi_f2 * OREG(9); - func_80043A3C(&sp48, &camera->unk_E4, camera->unk_CC.y, camera->unk_CC.x, 0.1f); + posOffsetTarget.y -= temp_ret * phi_f2 * OREG(9); + Camera_LERPCeilVec3f(&posOffsetTarget, &camera->posOffset, camera->yOffsetUpdateRate, camera->xzOffsetUpdateRate, + 0.1f); - sp3C.x = temp_s1->pos.x + camera->unk_E4.x; - sp3C.y = temp_s1->pos.y + camera->unk_E4.y; - sp3C.z = temp_s1->pos.z + camera->unk_E4.z; - func_80043A3C(&sp3C, &camera->at, camera->unk_100, camera->unk_100, 0.2f); + atTarget.x = playerPosRot->pos.x + camera->posOffset.x; + atTarget.y = playerPosRot->pos.y + camera->posOffset.y; + atTarget.z = playerPosRot->pos.z + camera->posOffset.z; + Camera_LERPCeilVec3f(&atTarget, &camera->at, camera->atLERPStepScale, camera->atLERPStepScale, 0.2f); return 1; } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_80045C74.s") +/** + * Adjusts the camera's at position for Camera_Parallel1 + */ +s32 Camera_CalcAtForParallel(Camera* camera, VecSph* arg1, f32 arg2, f32* arg3, s16 arg4) { + Vec3f* at = &camera->at; + Vec3f posOffsetTarget; + Vec3f atTarget; + Vec3f* eye = &camera->eye; + PosRot* playerPosRot = &camera->playerPosRot; + f32 temp_f2; + f32 phi_f16; + f32 sp54; + f32 phi_f20; + f32 temp_f0_4; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_800460A8.s") + temp_f0_4 = Player_GetHeight(camera->player); + posOffsetTarget.x = 0.0f; + posOffsetTarget.y = temp_f0_4 + arg2; + posOffsetTarget.z = 0.0f; -s32 func_800466F8(Camera* camera, VecSph* arg1, f32 arg2, f32* arg3, s16 arg4) { - s32 phi_v0; - Vec3f sp60; - Vec3f sp54; - f32 sp50; // unused - f32 sp4C; // unused - f32 sp48; // I doubt this is a Vec3f - Player* sp44; - PosRot sp30; + if (PREG(76) && arg4) { + posOffsetTarget.y -= Camera_CalcSlopeYAdj(&camera->floorNorm, playerPosRot->rot.y, arg1->yaw, OREG(9)); + } - sp48 = Player_GetCameraYOffset(camera->player); - sp44 = camera->player; - func_8002EF44(&sp30, sp44->rideActor); - - if ((*(s32*)((s32)(sp44->rideActor) + 0x1F0) & 4) != 0) { // actors aren't this big, is rideActor a different type? - phi_v0 = 1; + if (camera->playerGroundY == camera->playerPosRot.pos.y || camera->player->actor.gravity > -0.1f || + camera->player->stateFlags1 & 0x200000) { + *arg3 = Camera_LERPCeilF(playerPosRot->pos.y, *arg3, PCT(OREG(43)), 0.1f); + phi_f20 = playerPosRot->pos.y - *arg3; + posOffsetTarget.y -= phi_f20; + Camera_LERPCeilVec3f(&posOffsetTarget, &camera->posOffset, camera->yOffsetUpdateRate, + camera->xzOffsetUpdateRate, 0.1f); } else { - phi_v0 = 0; + if (!PREG(75)) { + phi_f20 = playerPosRot->pos.y - *arg3; + sp54 = OLib_Vec3fDistXZ(at, &camera->eye); + phi_f16 = sp54; + Math_atan2f(phi_f20, sp54); + temp_f2 = Math_tanf(DEG_TO_RAD(camera->fov * 0.4f)) * phi_f16; + if (temp_f2 < phi_f20) { + *arg3 += phi_f20 - temp_f2; + phi_f20 = temp_f2; + } else if (phi_f20 < -temp_f2) { + *arg3 += phi_f20 + temp_f2; + phi_f20 = -temp_f2; + } + posOffsetTarget.y -= phi_f20; + } else { + phi_f20 = playerPosRot->pos.y - *arg3; + temp_f2 = Math_atan2f(phi_f20, OLib_Vec3fDistXZ(at, eye)); + if (DEG_TO_RAD(OREG(32)) < temp_f2) { + phi_f16 = 1 - sinf(temp_f2 - DEG_TO_RAD(OREG(32))); + } else if (temp_f2 < DEG_TO_RAD(OREG(33))) { + phi_f16 = 1 - sinf(DEG_TO_RAD(OREG(33)) - temp_f2); + } else { + phi_f16 = 1; + } + posOffsetTarget.y -= phi_f20 * phi_f16; + } + Camera_LERPCeilVec3f(&posOffsetTarget, &camera->posOffset, PCT(OREG(29)), PCT(OREG(30)), 0.1f); + camera->yOffsetUpdateRate = PCT(OREG(29)); + camera->xzOffsetUpdateRate = PCT(OREG(30)); + } + atTarget.x = playerPosRot->pos.x + camera->posOffset.x; + atTarget.y = playerPosRot->pos.y + camera->posOffset.y; + atTarget.z = playerPosRot->pos.z + camera->posOffset.z; + Camera_LERPCeilVec3f(&atTarget, at, camera->atLERPStepScale, camera->atLERPStepScale, 0.2f); + return 1; +} + +/** + * Adjusts at position for Camera_Battle1 and Camera_KeepOn1 + */ +s32 Camera_CalcAtForLockOn(Camera* camera, VecSph* eyeAtDir, Vec3f* targetPos, f32 yOffset, f32 distance, + f32* yPosOffset, VecSph* outPlayerToTargetDir, s16 flags) { + Vec3f* at = &camera->at; + Vec3f tmpPos0; + Vec3f tmpPos1; + Vec3f lookFromOffset; + Vec3f* floorNorm = &camera->floorNorm; + VecSph playerToTargetDir; + PosRot* playerPosRot = &camera->playerPosRot; + f32 yPosDelta; + f32 phi_f16; + f32 eyeAtDist; + f32 temp_f0_2; + f32 playerHeight; + + playerHeight = Player_GetHeight(camera->player); + tmpPos0.x = 0.0f; + tmpPos0.y = playerHeight + yOffset; + tmpPos0.z = 0.0f; + if (PREG(76) && (flags & FLG_ADJSLOPE)) { + tmpPos0.y -= Camera_CalcSlopeYAdj(floorNorm, playerPosRot->rot.y, eyeAtDir->yaw, OREG(9)); } - if (phi_v0 != 0) { - sp30.pos.y -= 49.f; - *arg3 = func_8004389C(sp30.pos.y, *arg3, 0.1f, 0.2f); - camera->unk_100 = func_8004389C(0.4f, camera->unk_100, 0.2f, 0.02f); + // tmpPos1 is player's head + tmpPos1 = playerPosRot->pos; + tmpPos1.y += playerHeight; + OLib_Vec3fDiffToVecSphGeo(outPlayerToTargetDir, &tmpPos1, targetPos); + playerToTargetDir = *outPlayerToTargetDir; + if (distance < playerToTargetDir.r) { + playerToTargetDir.r = playerToTargetDir.r * PCT(OREG(38)); } else { - *arg3 = func_8004389C(sp30.pos.y, *arg3, 0.5f, 0.2f); + // ratio of player's height off ground to player's height. + temp_f0_2 = OLib_ClampMaxDist((playerPosRot->pos.y - camera->playerGroundY) / playerHeight, 1.0f); + playerToTargetDir.r = + (playerToTargetDir.r * PCT(OREG(39))) - + (((PCT(OREG(39)) - PCT(OREG(38))) * playerToTargetDir.r) * (playerToTargetDir.r / distance)); + playerToTargetDir.r = playerToTargetDir.r - (playerToTargetDir.r * temp_f0_2) * temp_f0_2; } - sp60.x = 0.0f; - sp60.z = 0.0f; - sp60.y = sp48 + arg2; - - if (arg4 != 0) { - sp60.y -= func_80045714(&camera->unk_108, camera->playerPosRot.rot.y, arg1->yaw, OREG(9)); + if (flags & FLG_OFFGROUND) { + playerToTargetDir.r *= 0.2f; + camera->xzOffsetUpdateRate = camera->yOffsetUpdateRate = .01f; } - func_80043A3C(&sp60, &camera->unk_E4, camera->unk_CC.y, camera->unk_CC.x, 0.1f); + OLib_VecSphGeoToVec3f(&lookFromOffset, &playerToTargetDir); - sp54.x = camera->unk_E4.x + sp30.pos.x; - sp54.y = camera->unk_E4.y + sp30.pos.y; - sp54.z = camera->unk_E4.z + sp30.pos.z; - func_80043A3C(&sp54, &camera->at, camera->unk_100, camera->unk_100, 0.2f); + if (PREG(89)) { + osSyncPrintf("%f (%f %f %f) %f\n", playerToTargetDir.r / distance, lookFromOffset.x, lookFromOffset.y, + lookFromOffset.z, camera->atLERPStepScale); + } + + tmpPos0.x = tmpPos0.x + lookFromOffset.x; + tmpPos0.y = tmpPos0.y + lookFromOffset.y; + tmpPos0.z = tmpPos0.z + lookFromOffset.z; + + if (camera->playerGroundY == camera->playerPosRot.pos.y || camera->player->actor.gravity > -0.1f || + camera->player->stateFlags1 & 0x200000) { + *yPosOffset = Camera_LERPCeilF(playerPosRot->pos.y, *yPosOffset, PCT(OREG(43)), 0.1f); + yPosDelta = playerPosRot->pos.y - *yPosOffset; + tmpPos0.y -= yPosDelta; + Camera_LERPCeilVec3f(&tmpPos0, &camera->posOffset, camera->yOffsetUpdateRate, camera->xzOffsetUpdateRate, 0.1f); + } else { + if (!(flags & FLG_OFFGROUND)) { + yPosDelta = playerPosRot->pos.y - *yPosOffset; + eyeAtDist = OLib_Vec3fDistXZ(at, &camera->eye); + phi_f16 = eyeAtDist; + Math_atan2f(yPosDelta, eyeAtDist); + temp_f0_2 = Math_tanf(DEG_TO_RAD(camera->fov * 0.4f)) * phi_f16; + if (temp_f0_2 < yPosDelta) { + *yPosOffset = *yPosOffset + (yPosDelta - temp_f0_2); + yPosDelta = temp_f0_2; + } else if (yPosDelta < -temp_f0_2) { + *yPosOffset = *yPosOffset + (yPosDelta + temp_f0_2); + yPosDelta = -temp_f0_2; + } + tmpPos0.y = tmpPos0.y - yPosDelta; + } else { + yPosDelta = playerPosRot->pos.y - *yPosOffset; + temp_f0_2 = Math_atan2f(yPosDelta, OLib_Vec3fDistXZ(at, &camera->eye)); + + if (temp_f0_2 > DEG_TO_RAD(OREG(32))) { + phi_f16 = 1.0f - sinf(temp_f0_2 - DEG_TO_RAD(OREG(32))); + } else if (temp_f0_2 < DEG_TO_RAD(OREG(33))) { + phi_f16 = 1.0f - sinf(DEG_TO_RAD(OREG(33)) - temp_f0_2); + } else { + phi_f16 = 1.0f; + } + tmpPos0.y -= (yPosDelta * phi_f16); + } + + Camera_LERPCeilVec3f(&tmpPos0, &camera->posOffset, PCT(OREG(29)), PCT(OREG(30)), 0.1f); + camera->yOffsetUpdateRate = PCT(OREG(29)); + camera->xzOffsetUpdateRate = PCT(OREG(30)); + } + + tmpPos1.x = playerPosRot->pos.x + camera->posOffset.x; + tmpPos1.y = playerPosRot->pos.y + camera->posOffset.y; + tmpPos1.z = playerPosRot->pos.z + camera->posOffset.z; + Camera_LERPCeilVec3f(&tmpPos1, at, camera->atLERPStepScale, camera->atLERPStepScale, 0.2f); + return 1; +} + +s32 Camera_CalcAtForHorse(Camera* camera, VecSph* eyeAtDir, f32 yOffset, f32* yPosOffset, s16 calcSlope) { + Vec3f* at = &camera->at; + Vec3f posOffsetTarget; + Vec3f atTarget; + s32 pad; + s32 pad2; + f32 playerHeight; + Player* player; + PosRot horsePosRot; + + playerHeight = Player_GetHeight(camera->player); + player = camera->player; + func_8002EF44(&horsePosRot, player->rideActor); + + if (EN_HORSE_CHECK_5((EnHorse*)player->rideActor)) { + horsePosRot.pos.y -= 49.f; + *yPosOffset = Camera_LERPCeilF(horsePosRot.pos.y, *yPosOffset, 0.1f, 0.2f); + camera->atLERPStepScale = Camera_LERPCeilF(0.4f, camera->atLERPStepScale, 0.2f, 0.02f); + } else { + *yPosOffset = Camera_LERPCeilF(horsePosRot.pos.y, *yPosOffset, 0.5f, 0.2f); + } + + posOffsetTarget.x = 0.0f; + posOffsetTarget.y = playerHeight + yOffset; + posOffsetTarget.z = 0.0f; + + if (calcSlope != 0) { + posOffsetTarget.y -= + Camera_CalcSlopeYAdj(&camera->floorNorm, camera->playerPosRot.rot.y, eyeAtDir->yaw, OREG(9)); + } + + Camera_LERPCeilVec3f(&posOffsetTarget, &camera->posOffset, camera->yOffsetUpdateRate, camera->xzOffsetUpdateRate, + 0.1f); + + atTarget.x = camera->posOffset.x + horsePosRot.pos.x; + atTarget.y = camera->posOffset.y + horsePosRot.pos.y; + atTarget.z = camera->posOffset.z + horsePosRot.pos.z; + Camera_LERPCeilVec3f(&atTarget, at, camera->atLERPStepScale, camera->atLERPStepScale, 0.2f); return 1; } -void func_800468CC(Camera* camera, f32 arg1, f32 arg2, f32 arg3) { - f32 sp1C; - f32 phi_f12; +f32 Camera_LERPClampDist(Camera* camera, f32 dist, f32 min, f32 max) { + f32 distTarget; + f32 rUpdateRateInvTarget; - if (arg1 < arg2) { - sp1C = arg2; - phi_f12 = OREG(6); - } else if (arg3 < arg1) { - sp1C = arg3; - phi_f12 = OREG(6); + if (dist < min) { + distTarget = min; + rUpdateRateInvTarget = OREG(6); + } else if (dist > max) { + distTarget = max; + rUpdateRateInvTarget = OREG(6); } else { - sp1C = arg1; - phi_f12 = 1.0f; + distTarget = dist; + rUpdateRateInvTarget = 1.0f; } - camera->unk_C0.x = func_8004389C(phi_f12, camera->unk_C0.x, OREG(25) * 0.01f, 0.1f); - func_8004389C(sp1C, camera->dist, 1.f / camera->unk_C0.x, 0.2f); + camera->rUpdateRateInv = Camera_LERPCeilF(rUpdateRateInvTarget, camera->rUpdateRateInv, PCT(OREG(25)), 0.1f); + return Camera_LERPCeilF(distTarget, camera->dist, 1.f / camera->rUpdateRateInv, 0.2f); } -f32 func_800469C0(Camera* camera, f32 arg1, f32 arg2, f32 arg3, s16 arg4) { - f32 sp1C; - f32 phi_f12; +f32 Camera_ClampDist(Camera* camera, f32 dist, f32 minDist, f32 maxDist, s16 timer) { + f32 distTarget; + f32 rUpdateRateInvTarget; - if (arg1 < arg2) { - sp1C = arg2; + if (dist < minDist) { + distTarget = minDist; - if (arg4 != 0) { - phi_f12 = OREG(6) * 0.5f; - } else { - phi_f12 = OREG(6); - } - } else if (arg3 < arg1) { - sp1C = arg3; + rUpdateRateInvTarget = timer != 0 ? OREG(6) * 0.5f : OREG(6); + } else if (maxDist < dist) { + distTarget = maxDist; - if (arg4 != 0) { - phi_f12 = OREG(6) * 0.5f; - } else { - phi_f12 = OREG(6); - } + rUpdateRateInvTarget = timer != 0 ? OREG(6) * 0.5f : OREG(6); } else { - sp1C = arg1; + distTarget = dist; - if (arg4 != 0) { - phi_f12 = OREG(6); - } else { - phi_f12 = 1.0f; - } + rUpdateRateInvTarget = timer != 0 ? OREG(6) : 1.0f; } - camera->unk_C0.x = func_8004389C(phi_f12, camera->unk_C0.x, OREG(25) * 0.01f, 0.1f); - return func_8004389C(sp1C, camera->dist, 1.f / camera->unk_C0.x, 0.2f); + camera->rUpdateRateInv = Camera_LERPCeilF(rUpdateRateInvTarget, camera->rUpdateRateInv, PCT(OREG(25)), 0.1f); + return Camera_LERPCeilF(distTarget, camera->dist, 1.0f / camera->rUpdateRateInv, 0.2f); } -#ifdef NON_MATCHING -// lots of regalloc and stack issues, but that's it -void func_80046B44(Camera* camera, s16 arg1, s16 arg2, s16 arg3) { - s32 pad[2]; - s16 sp1C; - s16 phi_v1; - s16 phi_v0; +s16 Camera_CalcDefaultPitch(Camera* camera, s16 arg1, s16 arg2, s16 arg3) { + f32 pad; f32 phi_a2; + f32 t; + s16 phi_v0; + s16 phi_v1; + s16 sp1C; phi_v1 = ABS(arg1); phi_v0 = arg3 > 0 ? (s16)(Math_Coss(arg3) * arg3) : arg3; sp1C = arg2 - phi_v0; + if (ABS(sp1C) < phi_v1) { - phi_a2 = (1.0f / camera->unk_C0.y) * 3.0f; + phi_a2 = (1.0f / camera->pitchUpdateRateInv) * 3.0f; } else { - phi_a2 = (1.0f / camera->unk_C0.y) * func_800437F0(0.8f, 1.0f - phi_v0 * (1.0f / OREG(5))); + t = phi_v1 * (1.0f / R_CAM_MAX_PHI); + pad = Camera_InterpolateCurve(0.8f, 1.0f - t); + phi_a2 = (1.0f / camera->pitchUpdateRateInv) * pad; } - func_8004391C(sp1C, arg1, phi_a2, 0xa); + return Camera_LERPCeilS(sp1C, arg1, phi_a2, 0xA); } -#else -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_80046B44.s") -#endif -#ifdef NON_MATCHING -// stack, regalloc, tiny bit of ordering -s16 func_80046CB4(Camera* camera, s16 arg1, s16 arg2, f32 arg3, f32 arg4) { - f32 sp34; - s16 sp1C; - f32 temp_ret; - f32 phi_f14; - s16 temp; +s16 Camera_CalcDefaultYaw(Camera* camera, s16 cur, s16 target, f32 arg3, f32 accel) { + f32 velocity; + s16 angDelta; + f32 updSpeed; + f32 speedT; + f32 velFactor; + f32 yawUpdRate; - if (camera->unk_D8 > 0.001f) { - temp = arg1 - 0x7FFF; - sp1C = arg2 - temp; - phi_f14 = (s16)(sp1C - 0x7FFF) * (1.0f / 32767.0f); + if (camera->xzSpeed > 0.001f) { + angDelta = target - BINANG_ROT180(cur); + speedT = BINANG_ROT180(angDelta) * COLPOLY_NORM_FRAC; } else { - temp = arg1 - 0x7FFF; - sp1C = arg2 - temp; - phi_f14 = OREG(48) * 0.01f; + angDelta = target - BINANG_ROT180(cur); + speedT = PCT(OREG(48)); } - temp_ret = func_800437F0(arg3, phi_f14); - sp34 = ((1.0f - temp_ret) * arg4) + temp_ret; - if (sp34 < 0.0f) { - sp34 = 0.0f; + + updSpeed = Camera_InterpolateCurve(arg3, speedT); + + velocity = updSpeed + (1.0f - updSpeed) * accel; + + if (velocity < 0.0f) { + velocity = 0.0f; } - // ordering stuff here - return arg1 + (s16)(sp1C * sp34 * (1.0f / camera->unk_C0.z) * func_800437F0(0.5f, camera->unk_E0)) + arg1; + + velFactor = Camera_InterpolateCurve(0.5f, camera->speedRatio); + yawUpdRate = 1.0f / camera->yawUpdateRateInv; + return cur + (s16)(angDelta * velocity * velFactor * yawUpdRate); } -#else -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_80046CB4.s") -#endif -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_80046E20.s") +void func_80046E20(Camera* camera, VecSph* eyeAdjustment, f32 minDist, f32 arg3, f32* arg4, SwingAnimation* anim) { + static CamColChk atEyeColChk; + static CamColChk eyeAtColChk; + static CamColChk newEyeColChk; + Vec3f* eye = &camera->eye; + s32 temp_v0; + Vec3f* at = &camera->at; + Vec3f peekAroundPoint; + Vec3f* eyeNext = &camera->eyeNext; + f32 temp_f0; + VecSph newEyeAdjustment; + VecSph sp40; -s32 func_80047394(Camera* camera) { + temp_v0 = func_80045508(camera, eyeAdjustment, &atEyeColChk, &eyeAtColChk, !anim->unk_18); + + switch (temp_v0) { + case 1: + case 2: + // angle between polys is between 60 and 120 degrees. + Camera_BGCheckCorner(&anim->collisionClosePoint, at, eyeNext, &atEyeColChk, &eyeAtColChk); + peekAroundPoint.x = anim->collisionClosePoint.x + (atEyeColChk.norm.x + eyeAtColChk.norm.x); + peekAroundPoint.y = anim->collisionClosePoint.y + (atEyeColChk.norm.y + eyeAtColChk.norm.y); + peekAroundPoint.z = anim->collisionClosePoint.z + (atEyeColChk.norm.z + eyeAtColChk.norm.z); + + temp_f0 = OLib_Vec3fDist(at, &atEyeColChk.pos); + *arg4 = temp_f0 > minDist ? 1.0f : temp_f0 / minDist; + + anim->swingUpdateRate = PCT(OREG(10)); + anim->unk_18 = 1; + anim->atEyePoly = eyeAtColChk.poly; + OLib_Vec3fDiffToVecSphGeo(&newEyeAdjustment, at, &peekAroundPoint); + + newEyeAdjustment.r = eyeAdjustment->r; + Camera_Vec3fVecSphGeoAdd(eye, at, &newEyeAdjustment); + newEyeColChk.pos = *eye; + if (Camera_BGCheckInfo(camera, at, &newEyeColChk) == 0) { + // no collision found between at->newEyePos + newEyeAdjustment.yaw += BINANG_SUB(eyeAdjustment->yaw, newEyeAdjustment.yaw) >> 1; + newEyeAdjustment.pitch += BINANG_SUB(eyeAdjustment->pitch, newEyeAdjustment.pitch) >> 1; + Camera_Vec3fVecSphGeoAdd(eye, at, &newEyeAdjustment); + if (atEyeColChk.sphNorm.pitch < 0x2AA8) { + // ~ 60 degrees + anim->unk_16 = newEyeAdjustment.yaw; + anim->unk_14 = newEyeAdjustment.pitch; + } else { + anim->unk_16 = eyeAdjustment->yaw; + anim->unk_14 = eyeAdjustment->pitch; + } + peekAroundPoint.x = anim->collisionClosePoint.x - (atEyeColChk.norm.x + eyeAtColChk.norm.x); + peekAroundPoint.y = anim->collisionClosePoint.y - (atEyeColChk.norm.y + eyeAtColChk.norm.y); + peekAroundPoint.z = anim->collisionClosePoint.z - (atEyeColChk.norm.z + eyeAtColChk.norm.z); + OLib_Vec3fDiffToVecSphGeo(&newEyeAdjustment, at, &peekAroundPoint); + newEyeAdjustment.r = eyeAdjustment->r; + Camera_Vec3fVecSphGeoAdd(eyeNext, at, &newEyeAdjustment); + break; + } + + camera->eye = newEyeColChk.pos; + atEyeColChk = newEyeColChk; + + case 3: + case 6: + if (anim->unk_18 != 0) { + anim->swingUpdateRateTimer = OREG(52); + anim->unk_18 = 0; + *eyeNext = *eye; + } + + temp_f0 = OLib_Vec3fDist(at, &atEyeColChk.pos); + *arg4 = temp_f0 > minDist ? 1.0f : temp_f0 / minDist; + + anim->swingUpdateRate = *arg4 * arg3; + + Camera_Vec3fTranslateByUnitVector(eye, &atEyeColChk.pos, &atEyeColChk.norm, 1.0f); + anim->atEyePoly = NULL; + if (temp_f0 < OREG(21)) { + sp40.yaw = eyeAdjustment->yaw; + sp40.pitch = Math_Sins(atEyeColChk.sphNorm.pitch + 0x3FFF) * 16380.0f; + sp40.r = (OREG(21) - temp_f0) * PCT(OREG(22)); + Camera_Vec3fVecSphGeoAdd(eye, eye, &sp40); + } + break; + default: + if (anim->unk_18 != 0) { + anim->swingUpdateRateTimer = OREG(52); + *eyeNext = *eye; + anim->unk_18 = 0; + } + anim->swingUpdateRate = arg3; + anim->atEyePoly = NULL; + eye->x = atEyeColChk.pos.x + atEyeColChk.norm.x; + eye->y = atEyeColChk.pos.y + atEyeColChk.norm.y; + eye->z = atEyeColChk.pos.z + atEyeColChk.norm.z; + break; + } +} + +s32 Camera_Noop(Camera* camera) { + return true; +} + +s32 Camera_Normal1(Camera* camera) { + Vec3f* eye = &camera->eye; + Vec3f* at = &camera->at; + Vec3f* eyeNext = &camera->eyeNext; + f32 spA0; + f32 sp9C; + f32 sp98; + f32 sp94; + Vec3f sp88; + s16 wiggleAdj; + s16 t; + VecSph eyeAdjustment; + VecSph atEyeGeo; + VecSph atEyeNextGeo; + PosRot* playerPosRot = &camera->playerPosRot; + Normal1* norm1 = (Normal1*)camera->paramData; + Normal1Anim* anim = &norm1->anim; + f32 playerHeight; + f32 rate = 0.1f; + + playerHeight = Player_GetHeight(camera->player); + if (RELOAD_PARAMS) { + CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + f32 yNormal = (1.0f + PCT(R_CAM_YOFFSET_NORM) - PCT(R_CAM_YOFFSET_NORM) * (68.0f / playerHeight)); + sp94 = yNormal * PCT(playerHeight); + + norm1->yOffset = NEXTSETTING * sp94; + norm1->distMin = NEXTSETTING * sp94; + norm1->distMax = NEXTSETTING * sp94; + norm1->pitchTarget = DEGF_TO_BINANG(NEXTSETTING); + norm1->unk_0C = NEXTSETTING; + norm1->unk_10 = NEXTSETTING; + norm1->unk_14 = NEXTPCT; + norm1->fovTarget = NEXTSETTING; + norm1->atLERPScaleMax = NEXTPCT; + norm1->interfaceFlags = NEXTSETTING; + } + + if (R_RELOAD_CAM_PARAMS) { + Camera_CopyPREGToModeValues(camera); + } + + sCameraInterfaceFlags = norm1->interfaceFlags; + + OLib_Vec3fDiffToVecSphGeo(&atEyeGeo, at, eye); + OLib_Vec3fDiffToVecSphGeo(&atEyeNextGeo, at, eyeNext); + + switch (camera->animState) { + case 0x14: + camera->yawUpdateRateInv = OREG(27); + camera->pitchUpdateRateInv = OREG(27); + case 0: + case 0xA: + case 0x19: + anim->swing.atEyePoly = NULL; + anim->slopePitchAdj = 0; + anim->unk_28 = 0xA; + anim->swing.unk_16 = anim->swing.unk_14 = anim->swing.unk_18 = 0; + anim->swing.swingUpdateRate = norm1->unk_0C; + anim->yOffset = camera->playerPosRot.pos.y; + anim->unk_20 = camera->xzSpeed; + anim->swing.swingUpdateRateTimer = 0; + anim->swingYawTarget = atEyeGeo.yaw; + sUpdateCameraDirection = 0; + anim->startSwingTimer = OREG(50) + OREG(51); + break; + default: + break; + } + + camera->animState = 1; + sUpdateCameraDirection = 1; + + if (anim->unk_28 != 0) { + anim->unk_28--; + } + + if (camera->xzSpeed > 0.001f) { + anim->startSwingTimer = OREG(50) + OREG(51); + } else if (anim->startSwingTimer > 0) { + if (anim->startSwingTimer > OREG(50)) { + anim->swingYawTarget = atEyeGeo.yaw + (BINANG_SUB(BINANG_ROT180(camera->playerPosRot.rot.y), atEyeGeo.yaw) / + anim->startSwingTimer); + } + anim->startSwingTimer--; + } + + spA0 = camera->speedRatio * PCT(OREG(25)); + sp9C = camera->speedRatio * PCT(OREG(26)); + sp98 = anim->swing.unk_18 != 0 ? PCT(OREG(25)) : spA0; + + sp94 = (camera->xzSpeed - anim->unk_20) * (0.3333329856395721435546875f); + if (sp94 > 1.0f) { + sp94 = 1.0f; + } + if (sp94 > -1.0f) { + sp94 = -1.0f; + } + + anim->unk_20 = camera->xzSpeed; + + if (anim->swing.swingUpdateRateTimer != 0) { + camera->yawUpdateRateInv = + Camera_LERPCeilF(anim->swing.swingUpdateRate + (f32)(anim->swing.swingUpdateRateTimer * 2), + camera->yawUpdateRateInv, sp98, rate); + camera->pitchUpdateRateInv = + Camera_LERPCeilF((f32)R_CAM_DEFA_PHI_UPDRATE + (f32)(anim->swing.swingUpdateRateTimer * 2), + camera->pitchUpdateRateInv, sp9C, rate); + anim->swing.swingUpdateRateTimer--; + } else { + camera->yawUpdateRateInv = + Camera_LERPCeilF(anim->swing.swingUpdateRate - ((OREG(49) * 0.01f) * anim->swing.swingUpdateRate * sp94), + camera->yawUpdateRateInv, sp98, rate); + camera->pitchUpdateRateInv = Camera_LERPCeilF(R_CAM_DEFA_PHI_UPDRATE, camera->pitchUpdateRateInv, sp9C, rate); + } + + camera->pitchUpdateRateInv = Camera_LERPCeilF(R_CAM_DEFA_PHI_UPDRATE, camera->pitchUpdateRateInv, sp9C, rate); + camera->xzOffsetUpdateRate = Camera_LERPCeilF(PCT(OREG(2)), camera->xzOffsetUpdateRate, spA0, rate); + camera->yOffsetUpdateRate = Camera_LERPCeilF(PCT(OREG(3)), camera->yOffsetUpdateRate, sp9C, rate); + camera->fovUpdateRate = Camera_LERPCeilF(PCT(OREG(4)), camera->yOffsetUpdateRate, camera->speedRatio * 0.05f, rate); + + if (norm1->interfaceFlags & 1) { + t = func_80044ADC(camera, BINANG_ROT180(atEyeGeo.yaw), 0); + sp9C = ((1.0f / norm1->unk_10) * 0.5f) * (1.0f - camera->speedRatio); + anim->slopePitchAdj = Camera_LERPCeilS(t, anim->slopePitchAdj, ((1.0f / norm1->unk_10) * 0.5f) + sp9C, 0xF); + } else { + anim->slopePitchAdj = 0; + if (camera->playerGroundY == camera->playerPosRot.pos.y) { + anim->yOffset = camera->playerPosRot.pos.y; + } + } + + spA0 = ((anim->swing.unk_18 != 0) && (norm1->yOffset > -40.0f)) + ? (sp9C = Math_Sins(anim->swing.unk_14), ((-40.0f * sp9C) + (norm1->yOffset * (1.0f - sp9C)))) + : norm1->yOffset; + + if (norm1->interfaceFlags & 0x80) { + func_800458D4(camera, &atEyeNextGeo, spA0, &anim->yOffset, norm1->interfaceFlags & 1); + } else if (norm1->interfaceFlags & 0x20) { + func_80045B08(camera, &atEyeNextGeo, spA0, anim->slopePitchAdj); + } else { + Camera_CalcAtDefault(camera, &atEyeNextGeo, spA0, norm1->interfaceFlags & 1); + } + + OLib_Vec3fDiffToVecSphGeo(&eyeAdjustment, at, eyeNext); + + camera->dist = eyeAdjustment.r = + Camera_ClampDist(camera, eyeAdjustment.r, norm1->distMin, norm1->distMax, anim->unk_28); + + if (anim->startSwingTimer <= 0) { + eyeAdjustment.pitch = atEyeNextGeo.pitch; + eyeAdjustment.yaw = + Camera_LERPCeilS(anim->swingYawTarget, atEyeNextGeo.yaw, 1.0f / camera->yawUpdateRateInv, 0xA); + } else if (anim->swing.unk_18 != 0) { + eyeAdjustment.yaw = + Camera_LERPCeilS(anim->swing.unk_16, atEyeNextGeo.yaw, 1.0f / camera->yawUpdateRateInv, 0xA); + eyeAdjustment.pitch = + Camera_LERPCeilS(anim->swing.unk_14, atEyeNextGeo.pitch, 1.0f / camera->yawUpdateRateInv, 0xA); + } else { + // rotate yaw to follow player. + eyeAdjustment.yaw = + Camera_CalcDefaultYaw(camera, atEyeNextGeo.yaw, camera->playerPosRot.rot.y, norm1->unk_14, sp94); + eyeAdjustment.pitch = + Camera_CalcDefaultPitch(camera, atEyeNextGeo.pitch, norm1->pitchTarget, anim->slopePitchAdj); + } + + // set eyeAdjustment pitch from 79.65 degrees to -85 degrees + if (eyeAdjustment.pitch > 0x38A4) { + eyeAdjustment.pitch = 0x38A4; + } + if (eyeAdjustment.pitch < -0x3C8C) { + eyeAdjustment.pitch = -0x3C8C; + } + + Camera_Vec3fVecSphGeoAdd(eyeNext, at, &eyeAdjustment); + if ((camera->status == CAM_STAT_ACTIVE) && (!(norm1->interfaceFlags & 0x10))) { + anim->swingYawTarget = BINANG_ROT180(camera->playerPosRot.rot.y); + if (anim->startSwingTimer > 0) { + func_80046E20(camera, &eyeAdjustment, norm1->distMin, norm1->unk_0C, &sp98, &anim->swing); + } else { + sp88 = *eyeNext; + anim->swing.swingUpdateRate = camera->yawUpdateRateInv = norm1->unk_0C * 2.0f; + if (Camera_BGCheck(camera, at, &sp88)) { + anim->swingYawTarget = atEyeNextGeo.yaw; + anim->startSwingTimer = -1; + } else { + *eye = *eyeNext; + } + anim->swing.unk_18 = 0; + } + + if (anim->swing.unk_18 != 0) { + camera->inputDir.y = + Camera_LERPCeilS(camera->inputDir.y + BINANG_SUB(BINANG_ROT180(anim->swing.unk_16), camera->inputDir.y), + camera->inputDir.y, 1.0f - (0.99f * sp98), 0xA); + } + + if (norm1->interfaceFlags & 4) { + camera->inputDir.x = -atEyeGeo.pitch; + camera->inputDir.y = BINANG_ROT180(atEyeGeo.yaw); + camera->inputDir.z = 0; + } else { + OLib_Vec3fDiffToVecSphGeo(&eyeAdjustment, eye, at); + camera->inputDir.x = eyeAdjustment.pitch; + camera->inputDir.y = eyeAdjustment.yaw; + camera->inputDir.z = 0; + } + + // crit wiggle + if (gSaveContext.health <= 16 && ((camera->globalCtx->state.frames % 256) == 0)) { + wiggleAdj = Math_Rand_ZeroOne() * 10000.0f; + camera->inputDir.y = wiggleAdj + camera->inputDir.y; + } + } else { + anim->swing.swingUpdateRate = norm1->unk_0C; + anim->swing.unk_18 = 0; + sUpdateCameraDirection = 0; + *eye = *eyeNext; + } + + spA0 = (gSaveContext.health <= 16 ? 0.8f : 1.0f); + camera->fov = Camera_LERPCeilF(norm1->fovTarget * spA0, camera->fov, camera->fovUpdateRate, 1.0f); + camera->roll = Camera_LERPCeilS(0, camera->roll, 0.5f, 0xA); + camera->atLERPStepScale = Camera_ClampLERPScale(camera, norm1->atLERPScaleMax); return 1; } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Normal1.s") +s32 Camera_Normal2(Camera* camera) { + Vec3f* eye = &camera->eye; + Vec3f* at = &camera->at; + Vec3f* eyeNext = &camera->eyeNext; + CamColChk bgChk; + s16 phi_a0; + s16 phi_a1; + f32 spA4; + f32 spA0; + VecSph adjSph; + VecSph sp90; + VecSph sp88; + VecSph atToEyeDir; + VecSph atToEyeNextDir; + PosRot* playerPosRot = &camera->playerPosRot; + Normal2* norm2 = (Normal2*)camera->paramData; + Normal2Anim* anim = &norm2->anim; + s32 pad; + Vec3s* bgData; + f32 playerHeight; + f32 yNormal; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Normal2.s") -#define NEXTSETTING ((values++)->val) -#ifdef NON_MATCHING + playerHeight = Player_GetHeight(camera->player); + yNormal = (1.0f + PCT(R_CAM_YOFFSET_NORM)) - (PCT(R_CAM_YOFFSET_NORM) * (68.0f / playerHeight)); + + if (R_RELOAD_CAM_PARAMS) { + Camera_CopyPREGToModeValues(camera); + } + + if (RELOAD_PARAMS) { + CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + norm2->unk_00 = NEXTPCT * playerHeight * yNormal; + norm2->unk_04 = NEXTPCT * playerHeight * yNormal; + norm2->unk_08 = NEXTPCT * playerHeight * yNormal; + norm2->unk_1C = DEGF_TO_BINANG(NEXTSETTING); + norm2->unk_0C = NEXTSETTING; + norm2->unk_10 = NEXTPCT; + norm2->unk_14 = NEXTSETTING; + norm2->unk_18 = NEXTPCT; + norm2->interfaceFlags = NEXTSETTING; + } + + if (R_RELOAD_CAM_PARAMS) { + Camera_CopyPREGToModeValues(camera); + } + + sCameraInterfaceFlags = norm2->interfaceFlags; + + switch (camera->animState) { + case 0: + case 0xA: + case 0x14: + case 0x19: + bgData = Camera_GetCamBGData(camera); + Camera_Vec3sToVec3f(&anim->unk_00, &BGCAM_POS(bgData)); + anim->unk_20 = BGCAM_ROT(bgData).x; + anim->unk_22 = BGCAM_ROT(bgData).y; + anim->unk_24 = playerPosRot->pos.y; + anim->unk_1C = BGCAM_FOV(bgData) == -1 + ? norm2->unk_14 + : BGCAM_FOV(bgData) >= 0x169 ? PCT(BGCAM_FOV(bgData)) : BGCAM_FOV(bgData); + + anim->unk_28 = BGCAM_JFIFID(bgData) == -1 ? 0 : BGCAM_JFIFID(bgData); + + anim->unk_18 = 0.0f; + + if (norm2->interfaceFlags & 4) { + sp88.pitch = anim->unk_20; + sp88.yaw = anim->unk_22 + 0x3FFF; + sp88.r = 100.0f; + OLib_VecSphGeoToVec3f(&anim->unk_0C, &sp88); + } + + camera->animState = 1; + camera->yawUpdateRateInv = 50.0f; + break; + default: + if (camera->playerGroundY == playerPosRot->pos.y) { + anim->unk_24 = playerPosRot->pos.y; + } + break; + } + + OLib_Vec3fDiffToVecSphGeo(&atToEyeDir, at, eye); + OLib_Vec3fDiffToVecSphGeo(&atToEyeNextDir, at, eyeNext); + + camera->speedRatio *= 0.5f; + spA4 = PCT(OREG(25)) * camera->speedRatio; + spA0 = PCT(OREG(26)) * camera->speedRatio; + + camera->yawUpdateRateInv = + Camera_LERPCeilF(norm2->unk_0C, camera->yawUpdateRateInv * camera->speedRatio, PCT(OREG(25)), 0.1f); + camera->pitchUpdateRateInv = Camera_LERPCeilF(OREG(7), camera->pitchUpdateRateInv, spA0, 0.1f); + camera->xzOffsetUpdateRate = Camera_LERPCeilF(PCT(OREG(2)), camera->xzOffsetUpdateRate, spA4, 0.1f); + camera->yOffsetUpdateRate = Camera_LERPCeilF(PCT(OREG(3)), camera->yOffsetUpdateRate, spA0, 0.1f); + camera->fovUpdateRate = Camera_LERPCeilF(PCT(OREG(4)), camera->yOffsetUpdateRate, camera->speedRatio * 0.05f, 0.1f); + + if (!(norm2->interfaceFlags & 0x80)) { + Camera_CalcAtDefault(camera, &atToEyeNextDir, norm2->unk_00, norm2->interfaceFlags & 1); + } else { + func_800458D4(camera, &atToEyeNextDir, norm2->unk_00, &anim->unk_24, norm2->interfaceFlags & 1); + } + + if (norm2->interfaceFlags & 4) { + anim->unk_00.x = playerPosRot->pos.x + anim->unk_0C.x; + anim->unk_00.z = playerPosRot->pos.z + anim->unk_0C.z; + } + + anim->unk_00.y = playerPosRot->pos.y; + + OLib_Vec3fDiffToVecSphGeo(&sp88, &anim->unk_00, at); + OLib_Vec3fDiffToVecSphGeo(&sp90, at, eyeNext); + + phi_a1 = (anim->unk_28 & 2 ? anim->unk_22 : norm2->unk_1C); + phi_a0 = BINANG_SUB(sp90.yaw, sp88.yaw); + if ((phi_a1 < 0x4000 && ABS(phi_a0) > phi_a1) || (phi_a1 >= 0x4000 && ABS(phi_a0) < phi_a1)) { + + phi_a0 = (phi_a0 < 0 ? -phi_a1 : phi_a1); + phi_a0 += sp88.yaw; + adjSph.yaw = + Camera_LERPCeilS(phi_a0, atToEyeDir.yaw, (1.0f / camera->yawUpdateRateInv) * camera->speedRatio, 0xA); + if (anim->unk_28 & 1) { + adjSph.pitch = Camera_CalcDefaultPitch(camera, atToEyeNextDir.pitch, anim->unk_20, 0); + } else { + adjSph.pitch = atToEyeDir.pitch; + } + } else { + adjSph = sp90; + } + + camera->dist = adjSph.r = Camera_ClampDist(camera, sp90.r, norm2->unk_04, norm2->unk_08, 0); + + if (!(anim->unk_28 & 1)) { + if (adjSph.pitch >= 0xE39) { + adjSph.pitch += (BINANG_SUB(0xE38, adjSph.pitch) >> 2); + } + + if (adjSph.pitch < 0) { + adjSph.pitch += (BINANG_SUB(-0x38E, adjSph.pitch) >> 2); + } + } + + Camera_Vec3fVecSphGeoAdd(eyeNext, at, &adjSph); + + if (camera->status == CAM_STAT_ACTIVE) { + bgChk.pos = *eyeNext; + if ((camera->globalCtx->envCtx.skyDisabled == 0) || norm2->interfaceFlags & 0x10) { + Camera_BGCheckInfo(camera, at, &bgChk); + *eye = bgChk.pos; + } else { + func_80043F94(camera, at, &bgChk); + *eye = bgChk.pos; + OLib_Vec3fDiffToVecSphGeo(&adjSph, eye, at); + camera->inputDir.x = adjSph.pitch; + camera->inputDir.y = adjSph.yaw; + camera->inputDir.z = 0; + } + } + + camera->fov = Camera_LERPCeilF(anim->unk_1C, camera->fov, camera->fovUpdateRate, 1.0f); + camera->roll = Camera_LERPCeilS(0, camera->roll, 0.5f, 0xA); + camera->atLERPStepScale = Camera_ClampLERPScale(camera, norm2->unk_18); + return 1; +} + +// riding epona s32 Camera_Normal3(Camera* camera) { + Vec3f* eye = &camera->eye; + Vec3f* at = &camera->at; + Vec3f* eyeNext = &camera->eyeNext; f32 sp98; f32 sp94; f32 sp90; @@ -2443,134 +1808,94 @@ s32 Camera_Normal3(Camera* camera) { VecSph sp84; VecSph sp7C; VecSph sp74; - Vec3f* sp48; - Vec3f* sp44; - Vec3f* sp40; + PosRot* playerPosRot = &camera->playerPosRot; f32 temp_f0; - f32 temp_f0_3; - f32 temp_f16; - f32 temp_f16_2; - f32 temp_f2; f32 temp_f6; - s16 temp_t3; - s16 temp_v0_2; - s16 temp_v0_3; - s16 temp_v0_4; - s32 temp_a0; - s16 phi_v1; - s32 phi_v1_2; - s32 phi_a0; - CameraModeValue* values; - Normal3* normal3 = &camera->unk_00.normal3; - Normal3_Unk20* unk20; - PosRot* playerPostRot; + s16 phi_a0; + s16 t2; + Normal3* norm3 = (Normal3*)camera->paramData; + Normal3Anim* anim = &norm3->anim; + f32 playerHeight; - temp_f2 = Player_GetCameraYOffset(camera->player); - if ((((camera->unk_15E == 0) || (camera->unk_15E == 0xA)) || (camera->unk_15E == 0x14)) || QREG(0)) { - temp_f2 *= 0.01f; - values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; - // temp_t2 = sCameraSettings[camera->setting].unk_00 + (camera->mode * 8); - // temp_t3 = *temp_t2->unk4; - // temp_v0 = temp_t2->unk4 + 0x20; - normal3->unk_00 = temp_f2 * NEXTSETTING; - // normal3->unk_00 = (f32) ((f32) temp_t3 * temp_f2); - - normal3->unk_04 = temp_f2 * NEXTSETTING; - // normal3->unk_04 = (f32) ((f32) temp_v0->unk-1C * temp_f2); - - normal3->unk_08 = temp_f2 * NEXTSETTING; - // normal3->unk_08 = (f32) ((f32) temp_v0->unk-18 * temp_f2); - - normal3->unk_1C = (65535.0f / 360.0f) * NEXTSETTING + 0.5f; - // normal3->unk_1C = (s16) (s32) (((f32) temp_v0->unk-14 * 182.0416717529297f) + 0.5f); - - normal3->unk_0C = NEXTSETTING; - // normal3->unk_0C = (f32) temp_v0->unk-10; - - normal3->unk_10 = NEXTSETTING; - // normal3->unk_10 = (f32) temp_v0->unk-C; - - normal3->unk_14 = NEXTSETTING; - // normal3->unk_14 = (f32) temp_v0->unk-8; - - normal3->unk_18 = NEXTSETTING * 0.01f; - // normal3->unk_18 = (f32) ((f32) temp_v0->unk-4 * 0.009999999776482582f); - - normal3->unk_1E = NEXTSETTING; - // normal3->unk_1E = (s16) temp_v0->unk0; + playerHeight = Player_GetHeight(camera->player); + if (RELOAD_PARAMS) { + CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + norm3->yOffset = NEXTSETTING * PCT(playerHeight); + norm3->distMin = NEXTSETTING * PCT(playerHeight); + norm3->distMax = NEXTSETTING * PCT(playerHeight); + norm3->pitchTarget = DEGF_TO_BINANG(NEXTSETTING); + norm3->yawUpdateSpeed = NEXTSETTING; + norm3->unk_10 = NEXTSETTING; + norm3->fovTarget = NEXTSETTING; + norm3->maxAtLERPScale = NEXTPCT; + norm3->interfaceFlags = NEXTSETTING; } - if (QREG(0)) { + if (R_RELOAD_CAM_PARAMS) { Camera_CopyPREGToModeValues(camera); } - sp48 = &camera->eye; - sp44 = &camera->at; - sp40 = &camera->eyeNext; - playerPostRot = &camera->playerPosRot; - OLib_Vec3fDiffToVecSphGeo(&sp7C, sp44, sp48); - OLib_Vec3fDiffToVecSphGeo(&sp74, sp44, sp40); - D_8011D3E8 = 1; - D_8011D3A0.w = normal3->unk_1E; - unk20 = &normal3->unk_20; + OLib_Vec3fDiffToVecSphGeo(&sp7C, at, eye); + OLib_Vec3fDiffToVecSphGeo(&sp74, at, eyeNext); - // ordering here. - switch (camera->unk_15E) { + sUpdateCameraDirection = true; + sCameraInterfaceFlags = norm3->interfaceFlags; + switch (camera->animState) { case 0: case 0xA: case 0x14: case 0x19: - unk20->unk_0C = 0; - unk20->unk_24 = 0; - unk20->unk_1C = 0; - unk20->unk_14 = unk20->unk_16 = unk20->unk_18 = 0; - // unk20->unk_14 = (s16) unk20->unk_18; - // unk20->unk_16 = (s16) unk20->unk_18; + anim->swing.atEyePoly = NULL; + anim->curPitch = 0; + anim->unk_1C = 0.0f; + anim->unk_20 = camera->playerGroundY; + anim->swing.unk_16 = anim->swing.unk_14 = anim->swing.unk_18 = 0; + anim->swing.swingUpdateRate = norm3->yawUpdateSpeed; + anim->yawUpdAmt = BINANG_SUB(BINANG_ROT180(playerPosRot->rot.y), sp7C.yaw) * (1.0f / OREG(23)); + anim->distTimer = 10; + anim->yawTimer = OREG(23); + camera->animState = 1; + anim->swing.swingUpdateRateTimer = 0; + } - unk20->unk_20 = camera->unk_104; - unk20->unk_10 = normal3->unk_0C; - unk20->unk_2A = 0xA; - unk20->unk_26 = (1.0f / OREG(23)) * (s16)(playerPostRot->rot.y - 0x7FFF - sp7C.yaw); - unk20->unk_28 = OREG(23); - camera->unk_15E = 1; - unk20->unk_1A = 0; - break; - default: - break; + if (anim->distTimer != 0) { + anim->distTimer--; } - DECR(unk20->unk_2A); - /*temp_v0_2 = unk20->unk_2A; - if (temp_v0_2 != 0) { - unk20->unk_2A = (s16) (temp_v0_2 - 1); - } - */ - temp_f6 = OREG(25) * 0.01f; - temp_f16 = temp_f6 * camera->unk_E0; - sp94 = (OREG(26) * 0.01f) * camera->unk_E0; - temp_v0_3 = unk20->unk_1A; - if (temp_v0_3 != 0) { - camera->unk_C0.z = func_8004389C(normal3->unk_0C + (temp_v0_3 * 2), camera->unk_C0.z, temp_f16, 0.1f); - camera->unk_C0.y = func_8004389C((f32)OREG(7) + (unk20->unk_1A * 2), camera->unk_C0.y, sp94, 0.1f); - unk20->unk_1A--; + + sp98 = PCT(OREG(25)) * camera->speedRatio; + sp94 = PCT(OREG(26)) * camera->speedRatio; + + if (anim->swing.swingUpdateRateTimer != 0) { + camera->yawUpdateRateInv = Camera_LERPCeilF(norm3->yawUpdateSpeed + (anim->swing.swingUpdateRateTimer * 2), + camera->yawUpdateRateInv, sp98, 0.1f); + camera->pitchUpdateRateInv = Camera_LERPCeilF((f32)OREG(7) + (anim->swing.swingUpdateRateTimer * 2), + camera->pitchUpdateRateInv, sp94, 0.1f); + if (!sp98) {} + anim->swing.swingUpdateRateTimer--; } else { - camera->unk_C0.z = func_8004389C(normal3->unk_0C, camera->unk_C0.z, temp_f16, 0.1f); - camera->unk_C0.y = func_8004389C(OREG(7), camera->unk_C0.y, sp94, 0.1f); + camera->yawUpdateRateInv = Camera_LERPCeilF(norm3->yawUpdateSpeed, camera->yawUpdateRateInv, sp98, 0.1f); + camera->pitchUpdateRateInv = Camera_LERPCeilF(OREG(7), camera->pitchUpdateRateInv, sp94, 0.1f); } - camera->unk_CC.x = func_8004389C(OREG(2) * 0.01f, camera->unk_CC.x, temp_f16, 0.1f); - camera->unk_CC.y = func_8004389C(OREG(3) * 0.01f, camera->unk_CC.y, sp94, 0.1f); - camera->unk_CC.z = func_8004389C(OREG(4) * 0.01f, camera->unk_CC.z, sp94, 0.1f); - temp_f0 = (1.0f / normal3->unk_10) * 0.5f; - unk20->unk_24 = func_8004391C(func_80044ADC(camera, sp7C.yaw - 0x7FFF, 1), unk20->unk_24, - temp_f0 + (temp_f0 * (1.0f - camera->unk_E0)), 0xF); - func_800466F8(camera, &sp74, normal3->unk_00, &unk20->unk_20, 1); - sp90 = (normal3->unk_08 + normal3->unk_04) * 0.5f; - OLib_Vec3fDiffToVecSphGeo(&sp84, sp44, sp40); - sp84.r = func_800469C0(camera, sp84.r, normal3->unk_04, normal3->unk_08, unk20->unk_2A); - camera->dist = sp84.r; - if (0.001f < camera->unk_D8) { + + camera->xzOffsetUpdateRate = Camera_LERPCeilF(PCT(OREG(2)), camera->xzOffsetUpdateRate, sp98, 0.1f); + camera->yOffsetUpdateRate = Camera_LERPCeilF(PCT(OREG(3)), camera->yOffsetUpdateRate, sp94, 0.1f); + camera->fovUpdateRate = Camera_LERPCeilF(PCT(OREG(4)), camera->fovUpdateRate, sp94, 0.1f); + + t2 = func_80044ADC(camera, BINANG_ROT180(sp7C.yaw), 1); + sp94 = ((1.0f / norm3->unk_10) * 0.5f); + temp_f0 = (((1.0f / norm3->unk_10) * 0.5f) * (1.0f - camera->speedRatio)); + anim->curPitch = Camera_LERPCeilS(t2, anim->curPitch, sp94 + temp_f0, 0xF); + + Camera_CalcAtForHorse(camera, &sp74, norm3->yOffset, &anim->unk_20, 1); + sp90 = (norm3->distMax + norm3->distMin) * 0.5f; + OLib_Vec3fDiffToVecSphGeo(&sp84, at, eyeNext); + camera->dist = sp84.r = Camera_ClampDist(camera, sp84.r, norm3->distMin, norm3->distMax, anim->distTimer); + if (camera->xzSpeed > 0.001f) { sp84.r += (sp90 - sp84.r) * 0.002f; } - sp84.pitch = func_8004391C(normal3->unk_1C - unk20->unk_24, sp74.pitch, 1.0f / camera->unk_C0.y, 0xA); + phi_a0 = BINANG_SUB(norm3->pitchTarget, anim->curPitch); + sp84.pitch = Camera_LERPCeilS(phi_a0, sp74.pitch, 1.0f / camera->pitchUpdateRateInv, 0xA); + if (OREG(5) < sp84.pitch) { sp84.pitch = OREG(5); } @@ -2578,156 +1903,2483 @@ s32 Camera_Normal3(Camera* camera) { sp84.pitch = OREG(34); } - // Probably some type of abs/clamp. - temp_a0 = playerPostRot->rot.y - (sp74.yaw - 0x7FFF); - phi_v1_2 = -temp_a0; - if (temp_a0 >= 0) { - phi_v1_2 = temp_a0; - } - phi_a0 = temp_a0; - if (phi_v1_2 >= 0x2AF9) { - if (temp_a0 > 0) { + phi_a0 = BINANG_SUB(playerPosRot->rot.y, BINANG_ROT180(sp74.yaw)); + if (ABS(phi_a0) > 0x2AF8) { + if (phi_a0 > 0) { phi_a0 = 0x2AF8; } else { phi_a0 = -0x2AF8; } } - temp_f16_2 = (phi_a0 * ((camera->unk_E0 * (1.0f - 0.5f)) + 0.5f)) / camera->unk_C0.z; - if ((150.0f * (1.0f - camera->unk_E0)) < fabsf(temp_f16_2)) { - sp84.yaw = sp74.yaw + temp_f16_2; - // sp8A = sp74.yaw + temp_f16_2; - } else { - sp84.yaw = sp74.yaw; - // sp8A = sp7A; - } - if (unk20->unk_28 > 0) { - sp84.yaw += unk20->unk_26; - // sp8A = sp8A + unk20->unk_26; - unk20->unk_28--; + sp90 = 1.0f; + sp98 = 0.5; + sp94 = camera->speedRatio; + sp90 -= sp98; + sp98 = sp98 + (sp94 * sp90); + sp98 = (sp98 * phi_a0) / camera->yawUpdateRateInv; + + sp84.yaw = fabsf(sp98) > (150.0f * (1.0f - camera->speedRatio)) ? (s16)(sp74.yaw + sp98) : sp74.yaw; + + if (anim->yawTimer > 0) { + sp84.yaw += anim->yawUpdAmt; + anim->yawTimer--; } - func_80043C28(sp40, sp44, &sp84); - if (camera->status == 7) { - func_80046E20(camera, &sp84, normal3->unk_04, normal3->unk_0C, &sp8C, &normal3->unk_20); + + Camera_Vec3fVecSphGeoAdd(eyeNext, at, &sp84); + + if (camera->status == CAM_STAT_ACTIVE) { + func_80046E20(camera, &sp84, norm3->distMin, norm3->yawUpdateSpeed, &sp8C, &anim->swing); } else { - *sp48 = *sp40; + *eye = *eyeNext; } - camera->fov = func_8004389C(normal3->unk_14, camera->fov, camera->unk_CC.z, 1.0f); - camera->roll = func_8004391C(0, camera->roll, 0.5f, 0xA); - camera->unk_100 = func_800450A4(camera, normal3->unk_18); + + camera->fov = Camera_LERPCeilF(norm3->fovTarget, camera->fov, camera->fovUpdateRate, 1.0f); + camera->roll = Camera_LERPCeilS(0, camera->roll, 0.5f, 0xA); + camera->atLERPStepScale = Camera_ClampLERPScale(camera, norm3->maxAtLERPScale); return 1; } -#else -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Normal3.s") -#endif s32 Camera_Normal4(Camera* camera) { - return func_80047394(camera); + return Camera_Noop(camera); } s32 Camera_Normal0(Camera* camera) { - return func_80047394(camera); + return Camera_Noop(camera); } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Parallel1.s") +s32 Camera_Parallel1(Camera* camera) { + Vec3f* eye = &camera->eye; + Vec3f* at = &camera->at; + Vec3f* eyeNext = &camera->eyeNext; + f32 spB8; + f32 spB4; + s16 tangle; + VecSph spA8; + VecSph atToEyeDir; + VecSph atToEyeNextDir; + PosRot* playerPosRot = &camera->playerPosRot; + CamColChk sp6C; + s16 sp6A; + s16 phi_a0; + Parallel1* para1 = (Parallel1*)camera->paramData; + Parallel1Anim* anim = ¶1->anim; + f32 pad2; + f32 playerHeight; + s32 pad3; + + playerHeight = Player_GetHeight(camera->player); + if (RELOAD_PARAMS) { + CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + f32 yNormal = (1.0f + PCT(OREG(46))) - (PCT(OREG(46)) * (68.0f / playerHeight)); + para1->unk_00 = NEXTPCT * playerHeight * yNormal; + ; + para1->distTarget = NEXTPCT * playerHeight * yNormal; + para1->pitchTarget = DEGF_TO_BINANG(NEXTSETTING); + para1->yawTarget = DEGF_TO_BINANG(NEXTSETTING); + para1->unk_08 = NEXTSETTING; + para1->unk_0C = NEXTSETTING; + para1->fovTarget = NEXTSETTING; + para1->unk_14 = NEXTPCT; + para1->interfaceFlags = NEXTSETTING; + para1->unk_18 = NEXTPCT * playerHeight * yNormal; + para1->unk_1C = NEXTPCT; + } + + if (R_RELOAD_CAM_PARAMS) { + Camera_CopyPREGToModeValues(camera); + } + + OLib_Vec3fDiffToVecSphGeo(&atToEyeDir, at, eye); + OLib_Vec3fDiffToVecSphGeo(&atToEyeNextDir, at, eyeNext); + + switch (camera->animState) { + case 0: + case 0xA: + case 0x14: + case 0x19: + anim->unk_16 = 0; + anim->unk_10 = 0; + if (para1->interfaceFlags & 4) { + anim->animTimer = 20; + } else { + anim->animTimer = OREG(23); + } + anim->unk_00.x = 0.0f; + anim->yTarget = playerPosRot->pos.y - camera->playerPosDelta.y; + camera->animState++; + } + + if (anim->animTimer != 0) { + if (para1->interfaceFlags & 2) { + // Rotate para1->yawTarget degrees from behind the player. + anim->yawTarget = BINANG_ROT180(playerPosRot->rot.y) + para1->yawTarget; + } else if (para1->interfaceFlags & 4) { + // rotate to para1->yawTarget + anim->yawTarget = para1->yawTarget; + } else { + // leave the rotation alone. + anim->yawTarget = atToEyeNextDir.yaw; + } + } else { + if (para1->interfaceFlags & 0x20) { + anim->yawTarget = BINANG_ROT180(playerPosRot->rot.y) + para1->yawTarget; + } + sCameraInterfaceFlags = para1->interfaceFlags; + } + + anim->pitchTarget = para1->pitchTarget; + + if (camera->animState == 0x15) { + anim->unk_16 = 1; + camera->animState = 1; + } else if (camera->animState == 0xB) { + camera->animState = 1; + } + + spB8 = PCT(OREG(25)) * camera->speedRatio; + spB4 = PCT(OREG(26)) * camera->speedRatio; + + camera->rUpdateRateInv = Camera_LERPCeilF(OREG(6), camera->rUpdateRateInv, spB8, 0.1f); + camera->yawUpdateRateInv = Camera_LERPCeilF(para1->unk_08, camera->yawUpdateRateInv, spB8, 0.1f); + camera->pitchUpdateRateInv = Camera_LERPCeilF(2.0f, camera->pitchUpdateRateInv, spB4, 0.1f); + camera->xzOffsetUpdateRate = Camera_LERPCeilF(PCT(OREG(2)), camera->xzOffsetUpdateRate, spB8, 0.1f); + camera->yOffsetUpdateRate = Camera_LERPCeilF(PCT(OREG(3)), camera->yOffsetUpdateRate, spB4, 0.1f); + camera->fovUpdateRate = Camera_LERPCeilF(PCT(OREG(4)), camera->fovUpdateRate, camera->speedRatio * 0.05f, 0.1f); + + if (para1->interfaceFlags & 1) { + tangle = func_80044ADC(camera, BINANG_ROT180(atToEyeDir.yaw), 1); + + spB8 = ((1.0f / para1->unk_0C) * 0.3f); + pad2 = (((1.0f / para1->unk_0C) * 0.7f) * (1.0f - camera->speedRatio)); + anim->unk_10 = Camera_LERPCeilS(tangle, anim->unk_10, spB8 + pad2, 0xF); + } else { + anim->unk_10 = 0; + } + + if (camera->playerGroundY == camera->playerPosRot.pos.y || camera->player->actor.gravity > -0.1f || + camera->player->stateFlags1 & 0x200000) { + anim->yTarget = playerPosRot->pos.y; + sp6A = 0; + } else { + sp6A = 1; + } + + if (!(para1->interfaceFlags & 0x80) && !sp6A) { + Camera_CalcAtForParallel(camera, &atToEyeNextDir, para1->unk_00, &anim->yTarget, para1->interfaceFlags & 1); + } else { + func_800458D4(camera, &atToEyeNextDir, para1->unk_18, &anim->yTarget, para1->interfaceFlags & 1); + } + + if (anim->animTimer != 0) { + camera->unk_14C |= 0x20; + tangle = (((anim->animTimer + 1) * anim->animTimer) >> 1); + spA8.yaw = atToEyeDir.yaw + ((BINANG_SUB(anim->yawTarget, atToEyeDir.yaw) / tangle) * anim->animTimer); + spA8.pitch = atToEyeDir.pitch; + spA8.r = atToEyeDir.r; + anim->animTimer--; + } else { + anim->unk_16 = 0; + camera->dist = Camera_LERPCeilF(para1->distTarget, camera->dist, 1.0f / camera->rUpdateRateInv, 2.0f); + OLib_Vec3fDiffToVecSphGeo(&spA8, at, eyeNext); + spA8.r = camera->dist; + + if (para1->interfaceFlags & 0x40) { + spA8.yaw = Camera_LERPCeilS(anim->yawTarget, atToEyeNextDir.yaw, 0.6f, 0xA); + } else { + spA8.yaw = Camera_LERPCeilS(anim->yawTarget, atToEyeNextDir.yaw, 0.8f, 0xA); + } + + if (para1->interfaceFlags & 1) { + phi_a0 = BINANG_SUB(anim->pitchTarget, anim->unk_10); + } else { + phi_a0 = anim->pitchTarget; + } + + spA8.pitch = Camera_LERPCeilS(phi_a0, atToEyeNextDir.pitch, 1.0f / camera->pitchUpdateRateInv, 4); + + if (spA8.pitch > OREG(5)) { + spA8.pitch = OREG(5); + } + + if (spA8.pitch < OREG(34)) { + spA8.pitch = OREG(34); + } + } + Camera_Vec3fVecSphGeoAdd(eyeNext, at, &spA8); + if (camera->status == CAM_STAT_ACTIVE) { + sp6C.pos = *eyeNext; + if (camera->globalCtx->envCtx.skyDisabled == 0 || para1->interfaceFlags & 0x10) { + Camera_BGCheckInfo(camera, at, &sp6C); + *eye = sp6C.pos; + } else { + func_80043F94(camera, at, &sp6C); + *eye = sp6C.pos; + OLib_Vec3fDiffToVecSphGeo(&spA8, eye, at); + camera->inputDir.x = spA8.pitch; + camera->inputDir.y = spA8.yaw; + camera->inputDir.z = 0; + } + } + camera->fov = Camera_LERPCeilF(para1->fovTarget, camera->fov, camera->fovUpdateRate, 1.0f); + camera->roll = Camera_LERPCeilS(0, camera->roll, 0.5, 0xA); + camera->atLERPStepScale = Camera_ClampLERPScale(camera, sp6A ? para1->unk_1C : para1->unk_14); +} s32 Camera_Parallel2(Camera* camera) { - return func_80047394(camera); + return Camera_Noop(camera); } -void Camera_Parallel3(Camera* camera) { - CameraModeValue* reg = &sCameraSettings[camera->setting].cameraModes[camera->mode].values[0]; - s16 val = reg->val; +s32 Camera_Parallel3(Camera* camera) { + CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + s16 val = NEXTSETTING; + + sCameraInterfaceFlags = val; - D_8011D3A0.w = val; if (val & 1) { camera->unk_14C |= 0x400; } if (val & 2) { camera->unk_14C |= 0x10; } + // @bug doesn't return } s32 Camera_Parallel4(Camera* camera) { - return func_80047394(camera); + return Camera_Noop(camera); } s32 Camera_Parallel0(Camera* camera) { - return func_80047394(camera); + return Camera_Noop(camera); } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Jump1.s") +/** + * Generic jump, jumping off ledges + */ +s32 Camera_Jump1(Camera* camera) { + Vec3f* eye = &camera->eye; + Vec3f* at = &camera->at; + Vec3f* eyeNext = &camera->eyeNext; + s32 pad2; + f32 spA4; + Vec3f newEye; + VecSph eyeAtOffset; + VecSph eyeNextAtOffset; + VecSph eyeDiffSph; + VecSph eyeDiffTarget; + PosRot* playerPosRot = &camera->playerPosRot; + PosRot playerPosRot2; + s16 tangle; + Jump1* jump1 = (Jump1*)camera->paramData; + Jump1Anim* anim = &jump1->anim; + s32 pad; + f32 playerHeight; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Jump2.s") + playerHeight = Player_GetHeight(camera->player); + if (RELOAD_PARAMS) { + CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + f32 yNormal = (1.0f + PCT(R_CAM_YOFFSET_NORM)) - (PCT(R_CAM_YOFFSET_NORM) * (68.0f / playerHeight)); + jump1->atYOffset = PCT(NEXTSETTING) * playerHeight * yNormal; + jump1->distMin = PCT(NEXTSETTING) * playerHeight * yNormal; + jump1->distMax = PCT(NEXTSETTING) * playerHeight * yNormal; + jump1->yawUpateRateTarget = NEXTSETTING; + jump1->maxYawUpdate = PCT(NEXTSETTING); + jump1->unk_14 = NEXTSETTING; + jump1->atLERPScaleMax = PCT(NEXTSETTING); + jump1->interfaceFlags = NEXTSETTING; + } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Jump3.s") + if (R_RELOAD_CAM_PARAMS) { + Camera_CopyPREGToModeValues(camera); + } + + // playerPosRot2 never gets used. + func_8002EEE4(&playerPosRot2, &camera->player->actor); + + OLib_Vec3fDiffToVecSphGeo(&eyeAtOffset, at, eye); + OLib_Vec3fDiffToVecSphGeo(&eyeNextAtOffset, at, eyeNext); + + sCameraInterfaceFlags = jump1->interfaceFlags; + + if (camera->animState == 0 || camera->animState == 0xA || camera->animState == 0x14) { + anim->swing.unk_16 = anim->swing.unk_18 = 0; + anim->swing.atEyePoly = NULL; + anim->unk_20.pitch = 0; + anim->unk_20.yaw = 0xC8; + anim->swing.swingUpdateRateTimer = 0; + anim->swing.swingUpdateRate = jump1->yawUpateRateTarget; + anim->unk_1C = playerPosRot->pos.y - camera->playerPosDelta.y; + anim->unk_20.r = eyeAtOffset.r; + camera->posOffset.y -= camera->playerPosDelta.y; + camera->xzOffsetUpdateRate = (1.0f / 10000.0f); + camera->animState++; + } + + if (anim->swing.swingUpdateRateTimer != 0) { + camera->yawUpdateRateInv = Camera_LERPCeilF(jump1->yawUpateRateTarget + anim->swing.swingUpdateRateTimer, + camera->yawUpdateRateInv, PCT(OREG(26)), 0.1f); + camera->pitchUpdateRateInv = Camera_LERPCeilF((f32)R_CAM_DEFA_PHI_UPDRATE + anim->swing.swingUpdateRateTimer, + camera->pitchUpdateRateInv, PCT(OREG(26)), 0.1f); + anim->swing.swingUpdateRateTimer--; + } else { + camera->yawUpdateRateInv = + Camera_LERPCeilF(jump1->yawUpateRateTarget, camera->yawUpdateRateInv, PCT(OREG(26)), 0.1f); + camera->pitchUpdateRateInv = + Camera_LERPCeilF((f32)R_CAM_DEFA_PHI_UPDRATE, camera->pitchUpdateRateInv, PCT(OREG(26)), 0.1f); + } + + camera->xzOffsetUpdateRate = Camera_LERPCeilF(PCT(OREG(2)), camera->xzOffsetUpdateRate, PCT(OREG(25)), 0.1f); + camera->yOffsetUpdateRate = Camera_LERPCeilF(PCT(OREG(3)), camera->yOffsetUpdateRate, PCT(OREG(26)), 0.1f); + camera->fovUpdateRate = Camera_LERPCeilF(PCT(OREG(4)), camera->yOffsetUpdateRate, 0.05f, 0.1f); + + func_800458D4(camera, &eyeNextAtOffset, jump1->atYOffset, &anim->unk_1C, 0); + + eyeDiffSph = eyeAtOffset; + + OLib_Vec3fDiffToVecSphGeo(&eyeDiffTarget, at, eye); + + eyeDiffSph.r = Camera_LERPCeilF(eyeDiffTarget.r, eyeAtOffset.r, PCT(OREG(29)), 1.0f); + eyeDiffSph.pitch = Camera_LERPCeilS(eyeDiffTarget.pitch, eyeAtOffset.pitch, PCT(OREG(29)), 0xA); + + if (anim->swing.unk_18) { + eyeDiffSph.yaw = + Camera_LERPCeilS(anim->swing.unk_16, eyeNextAtOffset.yaw, 1.0f / camera->yawUpdateRateInv, 0xA); + eyeDiffSph.pitch = + Camera_LERPCeilS(anim->swing.unk_14, eyeNextAtOffset.pitch, 1.0f / camera->yawUpdateRateInv, 0xA); + } else { + eyeDiffSph.yaw = + Camera_CalcDefaultYaw(camera, eyeNextAtOffset.yaw, camera->playerPosRot.rot.y, jump1->maxYawUpdate, 0.0f); + } + + // Clamp the eye->at distance to jump1->distMin < eyeDiffSph.r < jump1->distMax + if (eyeDiffSph.r < jump1->distMin) { + eyeDiffSph.r = jump1->distMin; + } else if (eyeDiffSph.r > jump1->distMax) { + eyeDiffSph.r = jump1->distMax; + } + + // Clamp the phi rotation at R_CAM_MAX_PHI AND R_CAM_MIN_PHI2 + if (eyeDiffSph.pitch > R_CAM_MAX_PHI) { + eyeDiffSph.pitch = R_CAM_MAX_PHI; + } else if (eyeDiffSph.pitch < R_CAM_MIN_PHI2) { + eyeDiffSph.pitch = R_CAM_MIN_PHI2; + } + + Camera_Vec3fVecSphGeoAdd(&newEye, at, &eyeDiffSph); + eyeNext->x = newEye.x; + eyeNext->z = newEye.z; + eyeNext->y += (newEye.y - eyeNext->y) * PCT(OREG(31)); + if ((camera->status == CAM_STAT_ACTIVE) && !(jump1->interfaceFlags & 0x10)) { + func_80046E20(camera, &eyeDiffSph, jump1->distMin, jump1->yawUpateRateTarget, &spA4, &anim->swing); + if (jump1->interfaceFlags & 4) { + camera->inputDir.x = -eyeAtOffset.pitch; + camera->inputDir.y = BINANG_ROT180(eyeAtOffset.yaw); + camera->inputDir.z = 0; + } else { + OLib_Vec3fDiffToVecSphGeo(&eyeDiffSph, eye, at); + camera->inputDir.x = eyeDiffSph.pitch; + camera->inputDir.y = eyeDiffSph.yaw; + camera->inputDir.z = 0; + } + if (anim->swing.unk_18) { + camera->inputDir.y = + Camera_LERPCeilS(camera->inputDir.y + BINANG_SUB(BINANG_ROT180(anim->swing.unk_16), camera->inputDir.y), + camera->inputDir.y, 1.0f - (0.99f * spA4), 0xA); + } + } else { + anim->swing.swingUpdateRate = jump1->yawUpateRateTarget; + anim->swing.unk_18 = 0; + sUpdateCameraDirection = 0; + *eye = *eyeNext; + } + + camera->dist = OLib_Vec3fDist(at, eye); + camera->roll = Camera_LERPCeilS(0, camera->roll, 0.5f, 0xA); + camera->atLERPStepScale = Camera_ClampLERPScale(camera, jump1->atLERPScaleMax); + return true; +} + +// Climbing ladders/vines +s32 Camera_Jump2(Camera* camera) { + Vec3f* eye = &camera->eye; + Vec3f* at = &camera->at; + Vec3f* eyeNext = &camera->eyeNext; + Vec3f bgChkPos; + Vec3f floorNorm; + VecSph adjAtToEyeDir; + VecSph bgChkPara; + VecSph atToEyeNextDir; + VecSph atToEyeDir; + f32 temp_f14; + f32 temp_f16; + f32 sp90; + f32 sp8C; + s32 bgId; + CamColChk camBgChk; + PosRot* playerPosRot = &camera->playerPosRot; + s16 yawDiff; + s16 playerYawRot180; + Jump2* jump2 = (Jump2*)camera->paramData; + Jump2Anim* anim = &jump2->anim; + CameraModeValue* values; + f32 playerHeight; + f32 yNormal; + + playerHeight = Player_GetHeight(camera->player); + + if (RELOAD_PARAMS) { + values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + yNormal = (1.0f + PCT(OREG(46))) - (PCT(OREG(46)) * (68.0f / playerHeight)); + jump2->atYOffset = + PCT((camera->playerPosDelta.y > 0.0f ? -10.0f : 10.0f) + NEXTSETTING) * playerHeight * yNormal; + jump2->minDist = NEXTPCT * playerHeight * yNormal; + jump2->maxDist = NEXTPCT * playerHeight * yNormal; + jump2->minMaxDistFactor = NEXTPCT; + jump2->yawUpdRateTarget = NEXTSETTING; + jump2->xzUpdRateTarget = NEXTPCT; + jump2->fovTarget = NEXTSETTING; + jump2->atLERPStepScale = NEXTPCT; + jump2->interfaceFlags = NEXTSETTING; + } + + if (R_RELOAD_CAM_PARAMS) { + Camera_CopyPREGToModeValues(camera); + } + + OLib_Vec3fDiffToVecSphGeo(&atToEyeDir, at, eye); + OLib_Vec3fDiffToVecSphGeo(&atToEyeNextDir, at, eyeNext); + + sCameraInterfaceFlags = jump2->interfaceFlags; + + if (camera->animState == 0 || camera->animState == 0xA || camera->animState == 0x14) { + bgChkPos = playerPosRot->pos; + anim->floorY = Camera_GetFloorY(camera, &bgChkPos); + anim->yawTarget = atToEyeNextDir.yaw; + anim->initYawDiff = 0; + if (anim->floorY == BGCHECK_Y_MIN) { + osSyncPrintf(VT_COL(YELLOW, BLACK) "camera: climb: no floor \n" VT_RST); + anim->onFloor = -1; + anim->floorY = playerPosRot->pos.y - 1000.0f; + } else if (playerPosRot->pos.y - anim->floorY < playerHeight) { + // player's model is within the height of the floor. + anim->onFloor = 1; + } else { + anim->onFloor = -1; + } + + yawDiff = BINANG_SUB(BINANG_ROT180(playerPosRot->rot.y), atToEyeNextDir.yaw); + anim->initYawDiff = ((yawDiff / OREG(23)) / 4) * 3; + if (jump2->interfaceFlags & 2) { + anim->yawAdj = 0xA; + } else { + anim->yawAdj = 0x2710; + } + + playerPosRot->pos.x -= camera->playerPosDelta.x; + playerPosRot->pos.y -= camera->playerPosDelta.y; + playerPosRot->pos.z -= camera->playerPosDelta.z; + anim->animTimer = OREG(23); + camera->animState++; + camera->atLERPStepScale = jump2->atLERPStepScale; + } + + sp90 = PCT(OREG(25)) * camera->speedRatio; + sp8C = PCT(OREG(26)) * camera->speedRatio; + camera->yawUpdateRateInv = Camera_LERPCeilF(jump2->yawUpdRateTarget, camera->yawUpdateRateInv, sp90, 0.1f); + camera->xzOffsetUpdateRate = Camera_LERPCeilF(jump2->xzUpdRateTarget, camera->xzOffsetUpdateRate, sp90, 0.1f); + camera->yOffsetUpdateRate = Camera_LERPCeilF(PCT(OREG(3)), camera->yOffsetUpdateRate, sp8C, 0.1f); + + camera->fovUpdateRate = Camera_LERPCeilF(PCT(OREG(4)), camera->yOffsetUpdateRate, camera->speedRatio * 0.05f, 0.1f); + camera->rUpdateRateInv = OREG(27); + + Camera_CalcAtDefault(camera, &atToEyeNextDir, jump2->atYOffset, 0); + OLib_Vec3fDiffToVecSphGeo(&adjAtToEyeDir, at, eye); + + temp_f16 = jump2->minDist; + sp90 = jump2->maxDist + (jump2->maxDist * jump2->minMaxDistFactor); + temp_f14 = temp_f16 - (jump2->minDist * jump2->minMaxDistFactor); + + if (adjAtToEyeDir.r > sp90) { + adjAtToEyeDir.r = sp90; + } else if (adjAtToEyeDir.r < temp_f14) { + adjAtToEyeDir.r = temp_f14; + } + + yawDiff = BINANG_SUB(BINANG_ROT180(playerPosRot->rot.y), adjAtToEyeDir.yaw); + if (anim->animTimer != 0) { + anim->yawTarget = BINANG_ROT180(playerPosRot->rot.y); + anim->animTimer--; + adjAtToEyeDir.yaw = Camera_LERPCeilS(anim->yawTarget, atToEyeNextDir.yaw, 0.5f, 0xA); + } else if (anim->yawAdj < ABS(yawDiff)) { + playerYawRot180 = BINANG_ROT180(playerPosRot->rot.y); + adjAtToEyeDir.yaw = Camera_LERPFloorS( + ((yawDiff < 0) ? (s16)(playerYawRot180 + anim->yawAdj) : (s16)(playerYawRot180 - anim->yawAdj)), + atToEyeNextDir.yaw, 0.1f, 0xA); + } else { + adjAtToEyeDir.yaw = Camera_LERPCeilS(adjAtToEyeDir.yaw, atToEyeNextDir.yaw, 0.25f, 0xA); + } + + // Check the floor at the top of the climb + bgChkPos.x = playerPosRot->pos.x + (Math_Sins(playerPosRot->rot.y) * 25.0f); + bgChkPos.y = playerPosRot->pos.y + (playerHeight * 2.2f); + bgChkPos.z = playerPosRot->pos.z + (Math_Coss(playerPosRot->rot.y) * 25.0f); + + sp90 = Camera_GetFloorYNorm(camera, &floorNorm, &bgChkPos, &bgId); + if ((sp90 != BGCHECK_Y_MIN) && (playerPosRot->pos.y < sp90)) { + // top of the climb is within 2.2x of the player's height. + camera->pitchUpdateRateInv = Camera_LERPCeilF(20.0f, camera->pitchUpdateRateInv, PCT(OREG(26)), 0.1f); + camera->rUpdateRateInv = Camera_LERPCeilF(20.0f, camera->rUpdateRateInv, PCT(OREG(26)), 0.1f); + adjAtToEyeDir.pitch = Camera_LERPCeilS(0x1F4, atToEyeNextDir.pitch, 1.0f / camera->pitchUpdateRateInv, 0xA); + } else if ((playerPosRot->pos.y - anim->floorY) < playerHeight) { + // player is within his height of the ground. + camera->pitchUpdateRateInv = Camera_LERPCeilF(20.0f, camera->pitchUpdateRateInv, PCT(OREG(26)), 0.1f); + camera->rUpdateRateInv = Camera_LERPCeilF(20.0f, camera->rUpdateRateInv, PCT(OREG(26)), 0.1f); + adjAtToEyeDir.pitch = Camera_LERPCeilS(0x1F4, atToEyeNextDir.pitch, 1.0f / camera->pitchUpdateRateInv, 0xA); + } else { + camera->pitchUpdateRateInv = 100.0f; + camera->rUpdateRateInv = 100.0f; + } + + // max pitch to +/- ~ 60 degrees + if (adjAtToEyeDir.pitch > 0x2AF8) { + adjAtToEyeDir.pitch = 0x2AF8; + } + + if (adjAtToEyeDir.pitch < -0x2AF8) { + adjAtToEyeDir.pitch = -0x2AF8; + } + + Camera_Vec3fVecSphGeoAdd(eyeNext, at, &adjAtToEyeDir); + camBgChk.pos = *eyeNext; + if (Camera_BGCheckInfo(camera, at, &camBgChk)) { + // Collision detected between at->eyeNext, Check if collision between + // at->eyeNext, but parallel to at (pitch = 0). + bgChkPos = camBgChk.pos; + bgChkPara.r = adjAtToEyeDir.r; + bgChkPara.pitch = 0; + bgChkPara.yaw = adjAtToEyeDir.yaw; + Camera_Vec3fVecSphGeoAdd(&camBgChk.pos, at, &bgChkPara); + if (Camera_BGCheckInfo(camera, at, &camBgChk)) { + // Collision found between parallel at->eyeNext, set eye position to + // first collsion point. + *eye = bgChkPos; + } else { + // no collision found with the parallel at->eye, animate to be parallel + adjAtToEyeDir.pitch = Camera_LERPCeilS(0, adjAtToEyeDir.pitch, 0.2f, 0xA); + Camera_Vec3fVecSphGeoAdd(eye, at, &adjAtToEyeDir); + // useless? + Camera_BGCheck(camera, at, eye); + } + } else { + // no collision detected. + *eye = *eyeNext; + } + + camera->dist = adjAtToEyeDir.r; + camera->fov = Camera_LERPCeilF(jump2->fovTarget, camera->fov, camera->fovUpdateRate, 1.0f); + camera->roll = Camera_LERPCeilS(0, camera->roll, 0.5f, 0xA); + return true; +} + +// swimming +s32 Camera_Jump3(Camera* camera) { + Vec3f* eye = &camera->eye; + Vec3f* at = &camera->at; + Vec3f* eyeNext = &camera->eyeNext; + s32 prevMode; + f32 spC4; + f32 spC0; + f32 spBC; + Vec3f spB0; // unused + VecSph eyeDiffSph; + PosRot* playerPosRot = &camera->playerPosRot; + Jump3* jump3 = (Jump3*)camera->paramData; + VecSph eyeAtOffset; + VecSph eyeNextAtOffset; + s32 pad; + s32 pad2; + CameraModeValue* values; + f32 t2; + f32 phi_f0; + f32 phi_f2; + f32 playerHeight; + PosRot playerPosRot2; + f32 yNormal; + f32 temp_f18; + s32 modeSwitch; + f32 temp_f2_2; + Jump3Anim* anim = &jump3->anim; + + playerHeight = Player_GetHeight(camera->player); + func_8002EEE4(&playerPosRot2, &camera->player->actor); + + modeSwitch = false; + if (((camera->waterYPos - eye->y) < OREG(44) || (camera->animState == 0))) { + if (anim->mode != CAM_MODE_NORMAL) { + anim->mode = CAM_MODE_NORMAL; + modeSwitch = true; + } + } else if (((camera->waterYPos - eye->y) > OREG(45)) && (anim->mode != CAM_MODE_BOOMERANG)) { + anim->mode = CAM_MODE_BOOMERANG; + modeSwitch = true; + } + + OLib_Vec3fDiffToVecSphGeo(&eyeAtOffset, at, eye); + OLib_Vec3fDiffToVecSphGeo(&eyeNextAtOffset, at, eyeNext); + + if (camera->animState == 0 || camera->animState == 0xA || camera->animState == 0x14 || modeSwitch || + R_RELOAD_CAM_PARAMS) { + values = sCameraSettings[camera->setting].cameraModes[anim->mode].values; + yNormal = ((1.0f + PCT(R_CAM_YOFFSET_NORM)) - (PCT(R_CAM_YOFFSET_NORM) * (68.0f / playerHeight))); + t2 = PCT(playerHeight) * yNormal; + jump3->yOffset = NEXTSETTING * t2; + jump3->distMin = NEXTSETTING * t2; + jump3->distMax = NEXTSETTING * t2; + jump3->pitchTarget = DEGF_TO_BINANG(NEXTSETTING); + jump3->swingUpdateRate = NEXTSETTING; + jump3->unk_10 = NEXTSETTING; + jump3->unk_14 = NEXTPCT; + jump3->fovTarget = NEXTSETTING; + jump3->unk_1C = NEXTPCT; + jump3->interfaceFlags = NEXTSETTING; + } + + if (R_RELOAD_CAM_PARAMS) { + prevMode = camera->mode; + camera->mode = anim->mode; + Camera_CopyPREGToModeValues(camera); + camera->mode = prevMode; + } + + sCameraInterfaceFlags = jump3->interfaceFlags; + + switch (camera->animState) { + case 0: + case 0xA: + case 0x14: + case 0x19: + anim->swing.atEyePoly = NULL; + anim->unk_1C = camera->playerGroundY; + anim->swing.unk_16 = anim->swing.unk_14 = anim->swing.unk_18 = 0; + anim->animTimer = 0xA; + anim->swing.swingUpdateRate = jump3->swingUpdateRate; + camera->animState++; + anim->swing.swingUpdateRateTimer = 0; + break; + default: + if (anim->animTimer != 0) { + anim->animTimer--; + } + break; + } + + // unused + spB0 = *eye; + + spC4 = PCT(OREG(25)) * camera->speedRatio; + spC0 = camera->speedRatio * PCT(OREG(26)); + spBC = anim->swing.unk_18 != 0 ? PCT(OREG(25)) : spC4; + + if (anim->swing.swingUpdateRateTimer != 0) { + camera->yawUpdateRateInv = Camera_LERPCeilF( + anim->swing.swingUpdateRate + (anim->swing.swingUpdateRateTimer * 2), camera->yawUpdateRateInv, spC4, 0.1f); + camera->pitchUpdateRateInv = + Camera_LERPCeilF((anim->swing.swingUpdateRateTimer * 2) + 40.0f, camera->pitchUpdateRateInv, spC0, 0.1f); + anim->swing.swingUpdateRateTimer--; + } else { + camera->yawUpdateRateInv = Camera_LERPCeilF(anim->swing.swingUpdateRate, camera->yawUpdateRateInv, spBC, 0.1f); + camera->pitchUpdateRateInv = Camera_LERPCeilF(40.0f, camera->pitchUpdateRateInv, spC0, 0.1f); + } + + camera->xzOffsetUpdateRate = Camera_LERPCeilF(PCT(OREG(2)), camera->xzOffsetUpdateRate, spC4, 0.1f); + camera->yOffsetUpdateRate = Camera_LERPCeilF(PCT(OREG(3)), camera->yOffsetUpdateRate, spC0, 0.1f); + camera->fovUpdateRate = Camera_LERPCeilF(PCT(OREG(4)), camera->yOffsetUpdateRate, camera->speedRatio * 0.05f, 0.1f); + + Camera_CalcAtDefault(camera, &eyeNextAtOffset, jump3->yOffset, jump3->interfaceFlags); + OLib_Vec3fDiffToVecSphGeo(&eyeDiffSph, at, eyeNext); + + camera->dist = eyeDiffSph.r = + Camera_ClampDist(camera, eyeDiffSph.r, jump3->distMin, jump3->distMax, anim->animTimer); + + if (camera->playerGroundY <= playerPosRot->pos.y) { + phi_f0 = playerPosRot->pos.y - camera->playerGroundY; + } else { + phi_f0 = -(playerPosRot->pos.y - camera->playerGroundY); + } + + if (!(phi_f0 < 10.0f)) { + if (camera->waterYPos <= playerPosRot2.pos.y) { + phi_f2 = playerPosRot2.pos.y - camera->waterYPos; + } else { + phi_f2 = -(playerPosRot2.pos.y - camera->waterYPos); + } + if (!(phi_f2 < 50.0f)) { + camera->pitchUpdateRateInv = 100.0f; + } + } + if (anim->swing.unk_18 != 0) { + eyeDiffSph.yaw = + Camera_LERPCeilS(anim->swing.unk_16, eyeNextAtOffset.yaw, 1.0f / camera->yawUpdateRateInv, 0xA); + eyeDiffSph.pitch = + Camera_LERPCeilS(anim->swing.unk_14, eyeNextAtOffset.pitch, 1.0f / camera->yawUpdateRateInv, 0xA); + } else { + eyeDiffSph.yaw = Camera_CalcDefaultYaw(camera, eyeNextAtOffset.yaw, playerPosRot->rot.y, jump3->unk_14, 0.0f); + eyeDiffSph.pitch = Camera_CalcDefaultPitch(camera, eyeNextAtOffset.pitch, jump3->pitchTarget, 0); + } + + if (eyeDiffSph.pitch > OREG(5)) { + eyeDiffSph.pitch = OREG(5); + } + + if (eyeDiffSph.pitch < OREG(34)) { + eyeDiffSph.pitch = OREG(34); + } + + Camera_Vec3fVecSphGeoAdd(eyeNext, at, &eyeDiffSph); + if ((camera->status == CAM_STAT_ACTIVE) && !(jump3->interfaceFlags & 0x10)) { + func_80046E20(camera, &eyeDiffSph, jump3->distMin, jump3->swingUpdateRate, &spBC, &anim->swing); + if (jump3->interfaceFlags & 4) { + camera->inputDir.x = -eyeAtOffset.pitch; + camera->inputDir.y = BINANG_ROT180(eyeAtOffset.yaw); + camera->inputDir.z = 0; + } else { + OLib_Vec3fDiffToVecSphGeo(&eyeDiffSph, eye, at); + camera->inputDir.x = eyeDiffSph.pitch; + camera->inputDir.y = eyeDiffSph.yaw; + camera->inputDir.z = 0; + } + + if (anim->swing.unk_18 != 0) { + camera->inputDir.y = + Camera_LERPCeilS(camera->inputDir.y + BINANG_SUB(BINANG_ROT180(anim->swing.unk_16), camera->inputDir.y), + camera->inputDir.y, 1.0f - (0.99f * spBC), 0xA); + } + } else { + anim->swing.swingUpdateRate = jump3->swingUpdateRate; + anim->swing.unk_18 = 0; + sUpdateCameraDirection = 0; + *eye = *eyeNext; + } + camera->fov = Camera_LERPCeilF(jump3->fovTarget, camera->fov, camera->fovUpdateRate, 1.0f); + camera->roll = Camera_LERPCeilS(0, camera->roll, 0.5f, 0xA); + camera->atLERPStepScale = Camera_ClampLERPScale(camera, jump3->unk_1C); + return true; +} s32 Camera_Jump4(Camera* camera) { - return func_80047394(camera); + return Camera_Noop(camera); } s32 Camera_Jump0(Camera* camera) { - return func_80047394(camera); + return Camera_Noop(camera); } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Battle1.s") +s32 Camera_Battle1(Camera* camera) { + Vec3f* eye = &camera->eye; + Vec3f* at = &camera->at; + Vec3f* eyeNext = &camera->eyeNext; + Vec3f sp128; + Vec3f playerHead; + Vec3f targetPos; + f32 var3; + f32 var2; + f32 temp_f0_2; + f32 temp_f12_2; + f32 spFC; + f32 spF8; + f32 swingAngle; + f32 temp_f2_2; + f32 temp_f14; + s32 skipEyeAtCalc; + f32 distRatio; + CamColChk spBC; + VecSph spB4; + VecSph atToTargetDir; + VecSph playerToTargetDir; + VecSph atToEyeDir; + VecSph atToEyeNextDir; + PosRot* playerPosRot = &camera->playerPosRot; + s16 tmpAng1; + s16 tmpAng2; + Player* player; + s16 sp86; + s16 isOffGround; + f32 distance; + f32 sp7C; + f32 sp78; + f32 fov; + Battle1* batt1 = (Battle1*)camera->paramData; + Battle1Anim* anim = &batt1->anim; + s32 pad; + f32 playerHeight; + + skipEyeAtCalc = false; + player = camera->player; + playerHeight = Player_GetHeight(camera->player); + if (RELOAD_PARAMS) { + CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + f32 yNormal = (1.0f + PCT(OREG(46))) - (PCT(OREG(46)) * (68.0f / playerHeight)); + batt1->yOffset = NEXTPCT * playerHeight * yNormal; + batt1->distance = NEXTSETTING; + batt1->swingYawInitial = NEXTSETTING; + batt1->swingYawFinal = NEXTSETTING; + batt1->swingPitchInitial = NEXTSETTING; + batt1->swingPitchFinal = NEXTSETTING; + batt1->swingPitchAdj = NEXTPCT; + batt1->fov = NEXTSETTING; + batt1->atLERPScaleOnGround = NEXTPCT; + batt1->flags = NEXTSETTING; + batt1->yOffsetOffGround = NEXTPCT * playerHeight * yNormal; + batt1->atLERPScaleOffGround = NEXTPCT; + anim->chargeTimer = 40; + anim->unk_10 = PCT(OREG(12)); + } + + if (R_RELOAD_CAM_PARAMS) { + Camera_CopyPREGToModeValues(camera); + } + + distance = batt1->distance; + sp7C = batt1->swingPitchInitial; + sp78 = batt1->swingPitchFinal; + fov = batt1->fov; + + if (camera->player->stateFlags1 & 0x1000) { + // charging sword. + anim->unk_10 = Camera_LERPCeilF(PCT(OREG(12)) * 0.5f, anim->unk_10, PCT(OREG(25)), 0.1f); + camera->xzOffsetUpdateRate = Camera_LERPCeilF(0.2f, camera->xzOffsetUpdateRate, PCT(OREG(25)), 0.1f); + camera->yOffsetUpdateRate = Camera_LERPCeilF(0.2f, camera->yOffsetUpdateRate, PCT(OREG(25)), 0.1f); + if (anim->chargeTimer >= -19) { + anim->chargeTimer--; + } else { + distance = 250.0f; + sp7C = 50.0f; + sp78 = 40.0f; + fov = 60.0f; + } + } else if (anim->chargeTimer < 0) { + distance = 250.0f; + sp7C = 50.0f; + sp78 = 40.0f; + fov = 60.0f; + anim->chargeTimer++; + } else { + anim->chargeTimer = 40; + anim->unk_10 = Camera_LERPCeilF(PCT(OREG(12)), anim->unk_10, PCT(OREG(25)), 0.1f); + camera->xzOffsetUpdateRate = + Camera_LERPCeilF(PCT(OREG(40)), camera->xzOffsetUpdateRate, PCT(OREG(25)) * camera->speedRatio, 0.1f); + camera->yOffsetUpdateRate = + Camera_LERPCeilF(PCT(OREG(40)), camera->yOffsetUpdateRate, PCT(OREG(26)) * camera->speedRatio, 0.1f); + } + camera->fovUpdateRate = Camera_LERPCeilF(PCT(OREG(4)), camera->fovUpdateRate, camera->speedRatio * 0.05f, 0.1f); + playerHeight += batt1->yOffset; + OLib_Vec3fDiffToVecSphGeo(&atToEyeDir, at, eye); + OLib_Vec3fDiffToVecSphGeo(&atToEyeNextDir, at, eyeNext); + if (camera->target == NULL || camera->target->update == NULL) { + if (camera->target == NULL) { + osSyncPrintf( + VT_COL(YELLOW, BLACK) "camera: warning: battle: target is not valid, change parallel\n" VT_RST); + } + camera->target = NULL; + Camera_ChangeMode(camera, CAM_MODE_TARGET); + return true; + } + + sCameraInterfaceFlags = batt1->flags; + + if (camera->animState == 0 || camera->animState == 0xA || camera->animState == 0x14) { + anim->unk_14 = 0; + anim->roll = 0.0f; + anim->target = camera->target; + camera->animState++; + if (anim->target->id > 0) { + osSyncPrintf("camera: battle: target actor name " VT_FGCOL(BLUE) "%d" VT_RST "\n", anim->target->id); + } else { + osSyncPrintf("camera: battle: target actor name " VT_COL(RED, WHITE) "%d" VT_RST "\n", anim->target->id); + camera->target = NULL; + Camera_ChangeMode(camera, CAM_MODE_TARGET); + return true; + } + anim->animTimer = OREG(23) + OREG(24); + anim->initialEyeToAtYaw = atToEyeDir.yaw; + anim->initialEyeToAtPitch = atToEyeDir.pitch; + anim->initialEyeToAtDist = atToEyeDir.r; + anim->yPosOffset = playerPosRot->pos.y - camera->playerPosDelta.y; + } + + if (camera->status == CAM_STAT_ACTIVE) { + sUpdateCameraDirection = 1; + camera->inputDir.x = -atToEyeDir.pitch; + camera->inputDir.y = BINANG_ROT180(atToEyeDir.yaw); + camera->inputDir.z = 0; + } + + if (camera->playerGroundY == camera->playerPosRot.pos.y || camera->player->actor.gravity > -0.1f || + camera->player->stateFlags1 & 0x200000) { + isOffGround = false; + anim->yPosOffset = playerPosRot->pos.y; + } else { + isOffGround = true; + } + + if (anim->animTimer == 0) { + camera->atLERPStepScale = + Camera_ClampLERPScale(camera, isOffGround ? batt1->atLERPScaleOffGround : batt1->atLERPScaleOnGround); + } + func_8002EEE4(&camera->targetPosRot, camera->target); + if (anim->target != camera->target) { + osSyncPrintf("camera: battle: change target %d -> " VT_FGCOL(BLUE) "%d" VT_RST "\n", anim->target->id, + camera->target->id); + camera->animState = 0; + return true; + } + + Camera_CalcAtForLockOn(camera, &atToEyeNextDir, &camera->targetPosRot.pos, + isOffGround ? batt1->yOffsetOffGround : batt1->yOffset, distance, &anim->yPosOffset, + &playerToTargetDir, (isOffGround ? 0x81 : 1) | batt1->flags); + tmpAng2 = playerToTargetDir.yaw; + playerHead = playerPosRot->pos; + playerHead.y += playerHeight; + OLib_Vec3fDiffToVecSphGeo(&playerToTargetDir, &playerHead, &camera->targetPosRot.pos); + distRatio = playerToTargetDir.r > distance ? 1 : playerToTargetDir.r / distance; + targetPos = camera->targetPosRot.pos; + OLib_Vec3fDiffToVecSphGeo(&atToTargetDir, at, &targetPos); + atToTargetDir.r = distance - ((atToTargetDir.r <= distance ? atToTargetDir.r : distance) * 0.5f); + swingAngle = batt1->swingYawInitial + ((batt1->swingYawFinal - batt1->swingYawInitial) * (1.1f - distRatio)); + spF8 = OREG(13) + swingAngle; + + spB4.r = camera->dist = Camera_LERPCeilF(distance, camera->dist, PCT(OREG(11)), 2.0f); + spB4.yaw = atToEyeNextDir.yaw; + tmpAng1 = BINANG_SUB(atToTargetDir.yaw, BINANG_ROT180(atToEyeNextDir.yaw)); + if (anim->animTimer != 0) { + if (anim->animTimer >= OREG(24)) { + sp86 = anim->animTimer - OREG(24); + OLib_Vec3fDiffToVecSphGeo(&playerToTargetDir, at, eye); + playerToTargetDir.yaw = BINANG_ROT180(tmpAng2); + + var2 = 1.0f / OREG(23); + var3 = (anim->initialEyeToAtDist - playerToTargetDir.r) * var2; + tmpAng1 = BINANG_SUB(anim->initialEyeToAtYaw, playerToTargetDir.yaw) * var2; + tmpAng2 = BINANG_SUB(anim->initialEyeToAtPitch, playerToTargetDir.pitch) * var2; + + spB4.r = Camera_LERPCeilF(playerToTargetDir.r + (var3 * sp86), atToEyeDir.r, PCT(OREG(28)), 1.0f); + spB4.yaw = Camera_LERPCeilS(playerToTargetDir.yaw + (tmpAng1 * sp86), atToEyeDir.yaw, PCT(OREG(28)), 0xA); + spB4.pitch = + Camera_LERPCeilS(playerToTargetDir.pitch + (tmpAng2 * sp86), atToEyeDir.pitch, PCT(OREG(28)), 0xA); + } else { + skipEyeAtCalc = true; + } + anim->animTimer--; + } else if (ABS(tmpAng1) > DEGF_TO_BINANG(swingAngle)) { + spFC = BINANG_TO_DEGF(tmpAng1); + temp_f2_2 = swingAngle + (spF8 - swingAngle) * (OLib_ClampMaxDist(atToTargetDir.r, spB4.r) / spB4.r); + temp_f12_2 = ((temp_f2_2 * temp_f2_2) - 2.0f) / (temp_f2_2 - 360.0f); + var2 = ((temp_f12_2 * spFC) + (2.0f - (360.0f * temp_f12_2))); + temp_f14 = SQ(spFC) / var2; + tmpAng2 = tmpAng1 >= 0 ? DEGF_TO_BINANG(temp_f14) : (-DEGF_TO_BINANG(temp_f14)); + spB4.yaw = BINANG_ROT180((s16)(BINANG_ROT180(atToEyeNextDir.yaw) + tmpAng2)); + } else { + spFC = 0.05f; + spFC = (1 - camera->speedRatio) * spFC; + tmpAng2 = tmpAng1 >= 0 ? DEGF_TO_BINANG(swingAngle) : -DEGF_TO_BINANG(swingAngle); + spB4.yaw = atToEyeNextDir.yaw - (s16)((tmpAng2 - tmpAng1) * spFC); + } + + if (!skipEyeAtCalc) { + var3 = atToTargetDir.pitch * batt1->swingPitchAdj; + var2 = F32_LERPIMP(sp7C, sp78, distRatio); + tmpAng1 = DEGF_TO_BINANG(var2) - (s16)(playerToTargetDir.pitch * (.5f + distRatio * (1.0f - .5f))); + tmpAng1 += (s16)(var3); + + if (tmpAng1 < -0x2AA8) { + tmpAng1 = -0x2AA8; + } else if (tmpAng1 > 0x2AA8) { + tmpAng1 = 0x2AA8; + } + + spB4.pitch = Camera_LERPCeilS(tmpAng1, atToEyeNextDir.pitch, anim->unk_10, 0xA); + Camera_Vec3fVecSphGeoAdd(eyeNext, at, &spB4); + spBC.pos = *eyeNext; + if (camera->status == CAM_STAT_ACTIVE) { + if (camera->globalCtx->envCtx.skyDisabled == 0 || batt1->flags & 1) { + Camera_BGCheckInfo(camera, at, &spBC); + } else if (batt1->flags & 2) { + func_80043F94(camera, at, &spBC); + } else { + OLib_Vec3fDistNormalize(&sp128, at, &spBC.pos); + spBC.pos.x -= sp128.x; + spBC.pos.y -= sp128.y; + spBC.pos.z -= sp128.z; + } + *eye = spBC.pos; + } else { + *eye = *eyeNext; + } + } + anim->roll += (((OREG(36) * camera->speedRatio) * (1.0f - distRatio)) - anim->roll) * PCT(OREG(37)); + camera->roll = DEGF_TO_BINANG(anim->roll); + camera->fov = Camera_LERPCeilF((player->swordState != 0 ? 0.8f : gSaveContext.health <= 0x10 ? 0.8f : 1.0f) * + (fov - ((fov * 0.05f) * distRatio)), + camera->fov, camera->fovUpdateRate, 1.0f); +} s32 Camera_Battle2(Camera* camera) { - return func_80047394(camera); + return Camera_Noop(camera); } s32 Camera_Battle3(Camera* camera) { - func_80047394(camera); + Camera_Noop(camera); } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Battle4.s") +/** + * Charging spin attack + * Camera zooms out slowly for 50 frames, then tilts up to a specified + * setting value. + */ +s32 Camera_Battle4(Camera* camera) { + Vec3f* eye = &camera->eye; + Vec3f* at = &camera->at; + Vec3f* eyeNext = &camera->eyeNext; + VecSph eyeNextOffset; + VecSph eyeAtOffset; + VecSph eyeNextAtOffset; + Battle4* batt4 = (Battle4*)camera->paramData; + Battle4Anim* anim = &batt4->anim; + s32 pad; + f32 playerHeight; + + playerHeight = Player_GetHeight(camera->player); + if (RELOAD_PARAMS) { + CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + f32 yNormal = (1.0f + PCT(R_CAM_YOFFSET_NORM)) - (PCT(R_CAM_YOFFSET_NORM) * (68.0f / playerHeight)); + batt4->yOffset = NEXTPCT * playerHeight * yNormal; + batt4->rTarget = NEXTPCT * playerHeight * yNormal; + batt4->pitchTarget = DEGF_TO_BINANG(NEXTSETTING); + batt4->lerpUpdateRate = NEXTPCT; + batt4->fovTarget = NEXTSETTING; + batt4->atLERPTarget = NEXTPCT; + batt4->interfaceFlags = NEXTSETTING; + } + + if (R_RELOAD_CAM_PARAMS) { + Camera_CopyPREGToModeValues(camera); + } + + OLib_Vec3fDiffToVecSphGeo(&eyeAtOffset, at, eye); + OLib_Vec3fDiffToVecSphGeo(&eyeNextAtOffset, at, eyeNext); + + sCameraInterfaceFlags = batt4->interfaceFlags; + + switch (camera->animState) { + case 0: + case 0xA: + case 0x14: + anim->animTimer = 50; + camera->animState++; + } + + camera->yawUpdateRateInv = + Camera_LERPCeilF(batt4->lerpUpdateRate, camera->yawUpdateRateInv, PCT(OREG(25)) * camera->speedRatio, 0.1f); + camera->rUpdateRateInv = 1000.0f; + camera->pitchUpdateRateInv = 1000.0f; + camera->xzOffsetUpdateRate = Camera_LERPCeilF(0.025f, camera->xzOffsetUpdateRate, PCT(OREG(25)), 0.1f); + camera->yOffsetUpdateRate = + Camera_LERPCeilF(PCT(OREG(3)), camera->yOffsetUpdateRate, PCT(OREG(26)) * camera->speedRatio, 0.1f); + camera->fovUpdateRate = 0.0001f; + Camera_CalcAtDefault(camera, &eyeNextAtOffset, batt4->yOffset, 1); + if (anim->animTimer != 0) { + eyeNextOffset.yaw = eyeAtOffset.yaw; + eyeNextOffset.pitch = eyeAtOffset.pitch; + eyeNextOffset.r = eyeAtOffset.r; + anim->animTimer--; + } else { + eyeNextOffset.yaw = eyeAtOffset.yaw; + eyeNextOffset.pitch = Camera_LERPCeilS(batt4->pitchTarget, eyeAtOffset.pitch, batt4->lerpUpdateRate, 2); + eyeNextOffset.r = Camera_LERPCeilF(batt4->rTarget, eyeAtOffset.r, batt4->lerpUpdateRate, 0.001f); + } + Camera_Vec3fVecSphGeoAdd(eyeNext, at, &eyeNextOffset); + *eye = *eyeNext; + camera->dist = eyeNextOffset.r; + camera->fov = Camera_LERPCeilF(batt4->fovTarget, camera->fov, batt4->lerpUpdateRate, 1.0f); + camera->roll = 0; + camera->atLERPStepScale = Camera_ClampLERPScale(camera, batt4->atLERPTarget); + return true; +} s32 Camera_Battle0(Camera* camera) { - return func_80047394(camera); + return Camera_Noop(camera); } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_KeepOn1.s") +// Targeting non-enemy +s32 Camera_KeepOn1(Camera* camera) { + Vec3f* eye = &camera->eye; + Vec3f* at = &camera->at; + Vec3f* eyeNext = &camera->eyeNext; + Vec3f sp120; + Vec3f sp114; + Vec3f sp108; + f32 sp104; + f32 temp_f12_2; + f32 temp_f14; + f32 t1; + f32 spF4; + f32 spF0; + f32 spEC; + f32 spE8; + f32 t2; + s16 spE2; + s16 spE0; + VecSph spD8; + VecSph spD0; + VecSph spC8; + VecSph spC0; + VecSph spB8; + PosRot* playerPosRot = &camera->playerPosRot; + CamColChk sp8C; + s32 sp88; + f32 sp84; + s16 sp82; + s16 sp80; + KeepOn1* keep1 = (KeepOn1*)camera->paramData; + Keep1Anim* anim = &keep1->anim; + s16 t3; + f32 playerHeight; + + sp88 = 0; + playerHeight = Player_GetHeight(camera->player); + if ((camera->target == NULL) || (camera->target->update == NULL)) { + if (camera->target == NULL) { + osSyncPrintf( + VT_COL(YELLOW, BLACK) "camera: warning: keepon: target is not valid, change parallel\n" VT_RST); + } + camera->target = NULL; + Camera_ChangeMode(camera, CAM_MODE_TARGET); + return 1; + } + + if (RELOAD_PARAMS) { + CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + f32 yNormal = (1.0f + PCT(OREG(46))) - (PCT(OREG(46)) * (68.0f / playerHeight)); + keep1->unk_00 = NEXTPCT * playerHeight * yNormal; + keep1->unk_04 = NEXTSETTING; + keep1->unk_08 = NEXTSETTING; + keep1->unk_0C = NEXTSETTING; + keep1->unk_10 = NEXTSETTING; + keep1->unk_14 = NEXTSETTING; + keep1->unk_18 = NEXTSETTING; + keep1->unk_1C = NEXTPCT; + keep1->unk_20 = NEXTSETTING; + keep1->unk_24 = NEXTPCT; + keep1->interfaceFlags = NEXTSETTING; + keep1->unk_28 = NEXTPCT * playerHeight * yNormal; + keep1->unk_2C = NEXTPCT; + } + if (R_RELOAD_CAM_PARAMS) { + Camera_CopyPREGToModeValues(camera); + } + + playerHeight += keep1->unk_00; + OLib_Vec3fDiffToVecSphGeo(&spC0, at, eye); + OLib_Vec3fDiffToVecSphGeo(&spB8, at, eyeNext); + sCameraInterfaceFlags = keep1->interfaceFlags; + if (camera->animState == 0 || camera->animState == 0xA || camera->animState == 0x14) { + camera->animState++; + anim->unk_10 = 0; + anim->unk_04 = 0.0f; + anim->unk_0C = camera->target; + anim->unk_16 = OREG(23) + OREG(24); + anim->unk_12 = spC0.yaw; + anim->unk_14 = spC0.pitch; + anim->unk_00 = spC0.r; + anim->unk_08 = playerPosRot->pos.y - camera->playerPosDelta.y; + } + if (camera->status == 7) { + sUpdateCameraDirection = 1; + camera->inputDir.x = -spC0.pitch; + camera->inputDir.y = BINANG_ROT180(spC0.yaw); + camera->inputDir.z = 0; + } + + sp104 = keep1->unk_04; + sp84 = 1; + + switch (camera->paramFlags & 0x18) { + case 8: + if ((camera->player->actor.type == 2) && (camera->player->interactRangeActor == camera->target)) { + PosRot sp54; + func_8002EEE4(&sp54, &camera->player->actor); + spC8.r = 60.0f; + spC8.yaw = camera->playerPosRot.rot.y; + spC8.pitch = 0x2EE0; + Camera_Vec3fVecSphGeoAdd(&camera->targetPosRot.pos, &sp54.pos, &spC8); + } else { + func_8002EEE4(&camera->targetPosRot, camera->target); + } + func_8002EEE4(&camera->targetPosRot, camera->target); + if (anim->unk_0C != camera->target) { + anim->unk_0C = camera->target; + camera->atLERPStepScale = 0.0f; + } + camera->xzOffsetUpdateRate = + Camera_LERPCeilF(1.0f, camera->xzOffsetUpdateRate, PCT(OREG(25)) * camera->speedRatio, 0.1f); + camera->yOffsetUpdateRate = + Camera_LERPCeilF(1.0f, camera->yOffsetUpdateRate, PCT(OREG(26)) * camera->speedRatio, 0.1f); + camera->fovUpdateRate = + Camera_LERPCeilF(PCT(OREG(4)), camera->fovUpdateRate, camera->speedRatio * 0.05f, 0.1f); + goto cont; + case 0x10: + anim->unk_0C = NULL; + cont: + if (camera->playerGroundY == camera->playerPosRot.pos.y || camera->player->actor.gravity > -0.1f || + camera->player->stateFlags1 & 0x200000) { + anim->unk_08 = playerPosRot->pos.y; + sp80 = 0; + } else { + sp80 = 1; + } + + Camera_CalcAtForLockOn(camera, &spB8, &camera->targetPosRot.pos, sp80 ? keep1->unk_28 : keep1->unk_00, + sp104, &anim->unk_08, &spC8, (sp80 ? 0x80 : 0) | keep1->interfaceFlags); + sp114 = playerPosRot->pos; + sp114.y += playerHeight; + OLib_Vec3fDiffToVecSphGeo(&spC8, &sp114, &camera->targetPosRot.pos); + sp84 = spC8.r > sp104 ? 1.0f : spC8.r / sp104; + break; + default: + *at = playerPosRot->pos; + at->y += playerHeight; + anim->unk_0C = NULL; + break; + } + OLib_Vec3fDiffToVecSphGeo(&spD8, at, eyeNext); + if (spD8.r < keep1->unk_04) { + sp104 = keep1->unk_04; + spE8 = OREG(6); + } else if (keep1->unk_08 < spD8.r) { + sp104 = keep1->unk_08; + spE8 = OREG(6); + } else { + sp104 = spD8.r; + spE8 = 1.0f; + } + + camera->rUpdateRateInv = Camera_LERPCeilF(spE8, camera->rUpdateRateInv, PCT(OREG(25)), 0.1f); + spD8.r = spE8 = camera->dist = Camera_LERPCeilF(sp104, camera->dist, 1.0f / camera->rUpdateRateInv, 0.2f); + sp108 = camera->targetPosRot.pos; + OLib_Vec3fDiffToVecSphGeo(&spD0, at, &sp108); + spD0.r = spE8 - ((spD0.r <= spE8 ? spD0.r : spE8) * 0.5f); + spEC = keep1->unk_0C + ((keep1->unk_10 - keep1->unk_0C) * (1.1f - sp84)); + spF0 = OREG(13) + spEC; + spD8.r = camera->dist = Camera_LERPCeilF(spE8, camera->dist, PCT(OREG(11)), 2.0f); + spD8.yaw = spB8.yaw; + spE2 = BINANG_SUB(spD0.yaw, BINANG_ROT180(spB8.yaw)); + if (anim->unk_16 != 0) { + if (anim->unk_16 >= OREG(24)) { + sp82 = anim->unk_16 - OREG(24); + spE2 = spC8.yaw; + OLib_Vec3fDiffToVecSphGeo(&spC8, at, eye); + spC8.yaw = BINANG_ROT180(spE2); + + t2 = 1.0f / OREG(23); + spE8 = (anim->unk_00 - spC8.r) * t2; + spE2 = BINANG_SUB(anim->unk_12, spC8.yaw) * t2; + spE0 = BINANG_SUB(anim->unk_14, spC8.pitch) * t2; + + spD8.r = Camera_LERPCeilF(spC8.r + (spE8 * sp82), spC0.r, PCT(OREG(28)), 1.0f); + spD8.yaw = Camera_LERPCeilS(spC8.yaw + (spE2 * sp82), spC0.yaw, PCT(OREG(28)), 0xA); + spD8.pitch = Camera_LERPCeilS(spC8.pitch + (spE0 * sp82), spC0.pitch, PCT(OREG(28)), 0xA); + } else { + sp88 = 1; + } + anim->unk_16--; + } else if (ABS(spE2) > DEGF_TO_BINANG(spEC)) { + spF4 = BINANG_TO_DEGF(spE2); + t2 = spEC + (spF0 - spEC) * (OLib_ClampMaxDist(spD0.r, spD8.r) / spD8.r); + temp_f12_2 = ((SQ(t2) - 2.0f) / (t2 - 360.0f)); + t1 = (temp_f12_2 * spF4) + (2.0f - (360.0f * temp_f12_2)); + temp_f14 = SQ(spF4) / t1; + spE0 = spE2 >= 0 ? (DEGF_TO_BINANG(temp_f14)) : (-DEGF_TO_BINANG(temp_f14)); + spD8.yaw = BINANG_ROT180((s16)(BINANG_ROT180(spB8.yaw) + spE0)); + } else { + spF4 = 0.02f; + spF4 = (1.0f - camera->speedRatio) * spF4; + spE0 = spE2 >= 0 ? DEGF_TO_BINANG(spEC) : -DEGF_TO_BINANG(spEC); + spD8.yaw = spB8.yaw - (s16)((spE0 - spE2) * spF4); + } + + if (sp88 == 0) { + spE2 = DEGF_TO_BINANG((f32)(keep1->unk_14 + ((keep1->unk_18 - keep1->unk_14) * sp84))); + spE2 -= (s16)(spC8.pitch * (.5f + (sp84 * .5f))); + + spE8 = spD0.pitch * keep1->unk_1C; + spE2 += (s16)spE8; + if (spE2 < -0x3200) { + spE2 = -0x3200; + } else if (spE2 > 0x3200) { + spE2 = 0x3200; + } + + spD8.pitch = Camera_LERPCeilS(spE2, spB8.pitch, PCT(OREG(12)), 0xA); + Camera_Vec3fVecSphGeoAdd(eyeNext, at, &spD8); + sp8C.pos = *eyeNext; + if (camera->status == CAM_STAT_ACTIVE) { + if ((camera->globalCtx->envCtx.skyDisabled == 0) || keep1->interfaceFlags & 1) { + Camera_BGCheckInfo(camera, at, &sp8C); + } else if (keep1->interfaceFlags & 2) { + func_80043F94(camera, at, &sp8C); + } else { + OLib_Vec3fDistNormalize(&sp120, at, &sp8C.pos); + sp8C.pos.x -= sp120.x; + sp8C.pos.y -= sp120.y; + sp8C.pos.z -= sp120.z; + } + *eye = sp8C.pos; + } else { + *eye = *eyeNext; + } + OLib_Vec3fDistNormalize(&sp120, eye, at); + Camera_Vec3fTranslateByUnitVector(eye, eye, &sp120, OREG(1)); + } + camera->fov = Camera_LERPCeilF(keep1->unk_20, camera->fov, camera->fovUpdateRate, 1.0f); + camera->roll = Camera_LERPCeilS(0, camera->roll, 0.5f, 0xA); + camera->atLERPStepScale = Camera_ClampLERPScale(camera, sp80 ? keep1->unk_2C : keep1->unk_24); + return 1; +} s32 Camera_KeepOn2(Camera* camera) { - return func_80047394(camera); + return Camera_Noop(camera); } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_KeepOn3.s") +/** + * Talking to an NPC + */ +s32 Camera_KeepOn3(Camera* camera) { + Vec3f* eye = &camera->eye; + Vec3f* at = &camera->at; + Vec3f* eyeNext = &camera->eyeNext; + Vec3f playerHeadPos; + Vec3f lineChkPointB; + f32 temp_f0; + f32 spBC; + f32 prevTargetPlayerDist; + f32 swingAngle; + Actor* colChkActors[2]; + VecSph targetToPlayerDir; + VecSph atToEyeAdj; + VecSph atToEyeDir; + VecSph atToEyeNextDir; + s32 i; + s32 angleCnt; + s16 sp82; + s16 sp80; + PosRot playerPosRot; + PosRot* camPlayerPosRot = &camera->playerPosRot; + KeepOn3* keep3 = (KeepOn3*)camera->paramData; + Keep3Anim* anim = &keep3->anim; + s32 pad; + f32 playerHeight; + playerHeight = Player_GetHeight(camera->player); + if (camera->target == NULL || camera->target->update == NULL) { + if (camera->target == NULL) { + osSyncPrintf(VT_COL(YELLOW, BLACK) "camera: warning: talk: target is not valid, change parallel\n" VT_RST); + } + camera->target = NULL; + Camera_ChangeMode(camera, CAM_MODE_TARGET); + return 1; + } + if (camera->animState == 0 || camera->animState == 0xA || camera->animState == 0x14) { + if (camera->globalCtx->view.unk_124 == 0) { + camera->unk_14C |= 0x20; + camera->globalCtx->view.unk_124 = camera->thisIdx | 0x50; + return 1; + } + camera->unk_14C &= ~0x20; + } + camera->unk_14C &= ~0x10; + if (RELOAD_PARAMS) { + CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + f32 yNormal = (1.0f + PCT(OREG(46))) - (PCT(OREG(46)) * (68.0f / playerHeight)); + keep3->yOffset = NEXTPCT * playerHeight * yNormal; + keep3->minDist = NEXTSETTING; + keep3->maxDist = NEXTSETTING; + keep3->swingYawInital = NEXTSETTING; + keep3->swingYawFinal = NEXTSETTING; + keep3->swingPitchInitial = NEXTSETTING; + keep3->swingPitchFinal = NEXTSETTING; + keep3->swingPitchAdj = NEXTPCT; + keep3->fovTarget = NEXTSETTING; + keep3->atLERPScaleMax = NEXTPCT; + keep3->initTimer = NEXTSETTING; + keep3->flags = NEXTSETTING; + } + + if (R_RELOAD_CAM_PARAMS) { + Camera_CopyPREGToModeValues(camera); + } + + playerHeight += keep3->yOffset; + OLib_Vec3fDiffToVecSphGeo(&atToEyeDir, at, eye); + OLib_Vec3fDiffToVecSphGeo(&atToEyeNextDir, at, eyeNext); + func_8002EEE4(&camera->targetPosRot, camera->target); + func_8002EEE4(&playerPosRot, &camera->player->actor); + playerHeadPos = camPlayerPosRot->pos; + playerHeadPos.y += playerHeight; + OLib_Vec3fDiffToVecSphGeo(&targetToPlayerDir, &playerHeadPos, &camera->targetPosRot.pos); + sCameraInterfaceFlags = keep3->flags; + if (camera->animState == 0 || camera->animState == 0xA || camera->animState == 0x14) { + colChkActors[0] = camera->target; + colChkActors[1] = camera->player; + camera->animState++; + anim->target = camera->target; + temp_f0 = (keep3->maxDist < targetToPlayerDir.r ? 1.0f : targetToPlayerDir.r / keep3->maxDist); + anim->animTimer = keep3->initTimer; + spBC = ((1.0f - temp_f0) * targetToPlayerDir.r) / anim->animTimer; + swingAngle = F32_LERPIMP(keep3->swingPitchInitial, keep3->swingPitchFinal, temp_f0); + atToEyeAdj.pitch = DEGF_TO_BINANG(swingAngle) + ((s16)(-(targetToPlayerDir.pitch * keep3->swingPitchAdj))); + swingAngle = F32_LERPIMP(keep3->swingYawInital, keep3->swingYawFinal, temp_f0); + if (keep3->flags & 0x10) { + if (BINANG_SUB(targetToPlayerDir.yaw, atToEyeNextDir.yaw) < 0) { + atToEyeAdj.yaw = targetToPlayerDir.yaw + DEGF_TO_BINANG(swingAngle); + } else { + atToEyeAdj.yaw = targetToPlayerDir.yaw - DEGF_TO_BINANG(swingAngle); + } + } else if (keep3->flags & 0x20) { + if (BINANG_SUB(targetToPlayerDir.yaw, atToEyeNextDir.yaw) < 0) { + atToEyeAdj.yaw = BINANG_ROT180(targetToPlayerDir.yaw) - DEGF_TO_BINANG(swingAngle); + } else { + atToEyeAdj.yaw = BINANG_ROT180(targetToPlayerDir.yaw) + DEGF_TO_BINANG(swingAngle); + } + } else if (ABS(BINANG_SUB(targetToPlayerDir.yaw, atToEyeNextDir.yaw)) < 0x3FFF) { + if (BINANG_SUB(targetToPlayerDir.yaw, atToEyeNextDir.yaw) < 0) { + atToEyeAdj.yaw = targetToPlayerDir.yaw + DEGF_TO_BINANG(swingAngle); + } else { + atToEyeAdj.yaw = targetToPlayerDir.yaw - DEGF_TO_BINANG(swingAngle); + } + } else { + if (BINANG_SUB(targetToPlayerDir.yaw, atToEyeNextDir.yaw) < 0) { + atToEyeAdj.yaw = BINANG_ROT180(targetToPlayerDir.yaw) - DEGF_TO_BINANG(swingAngle); + } else { + atToEyeAdj.yaw = BINANG_ROT180(targetToPlayerDir.yaw) + DEGF_TO_BINANG(swingAngle); + } + } + prevTargetPlayerDist = targetToPlayerDir.r; + temp_f0 = 0.6f; + targetToPlayerDir.r = (spBC * 0.6f) + (prevTargetPlayerDist * (1.0f - temp_f0)); + sp80 = atToEyeAdj.yaw; + sp82 = atToEyeAdj.pitch; + playerHeadPos = camPlayerPosRot->pos; + playerHeadPos.y += playerHeight; + if (!temp_f0) {} + Camera_Vec3fVecSphGeoAdd(&anim->atTarget, &playerHeadPos, &targetToPlayerDir); + angleCnt = ARRAY_COUNT(D_8011D3B0); + i = 0; + targetToPlayerDir.r = prevTargetPlayerDist; + atToEyeAdj.r = ((keep3->minDist + (targetToPlayerDir.r * (1 - 0.5f))) - atToEyeNextDir.r) + atToEyeNextDir.r; + Camera_Vec3fVecSphGeoAdd(&lineChkPointB, &anim->atTarget, &atToEyeAdj); + if (!(keep3->flags & 0x80)) { + while (i < angleCnt) { + if (!func_800626B0(camera->globalCtx, &camera->globalCtx->colChkCtx, &anim->atTarget, &lineChkPointB, + &colChkActors, 2) && + !Camera_BGCheck(camera, &anim->atTarget, &lineChkPointB)) { + break; + } + atToEyeAdj.yaw = sp80 + D_8011D3B0[i]; + atToEyeAdj.pitch = sp82 + D_8011D3CC[i]; + Camera_Vec3fVecSphGeoAdd(&lineChkPointB, &anim->atTarget, &atToEyeAdj); + i++; + } + } + osSyncPrintf("camera: talk: BG&collision check %d time(s)\n", i); + camera->unk_14C &= ~0xC; + pad = ((anim->animTimer + 1) * anim->animTimer) >> 1; + anim->eyeToAtTarget.y = (f32)BINANG_SUB(atToEyeAdj.yaw, atToEyeNextDir.yaw) / pad; + anim->eyeToAtTarget.z = (f32)BINANG_SUB(atToEyeAdj.pitch, atToEyeNextDir.pitch) / pad; + anim->eyeToAtTarget.x = (atToEyeAdj.r - atToEyeNextDir.r) / pad; + return 1; + } + + if (anim->animTimer != 0) { + at->x += (anim->atTarget.x - at->x) / anim->animTimer; + at->y += (anim->atTarget.y - at->y) / anim->animTimer; + at->z += (anim->atTarget.z - at->z) / anim->animTimer; + // needed to match + if (!prevTargetPlayerDist) {} + atToEyeAdj.r = ((anim->eyeToAtTarget.x * anim->animTimer) + atToEyeNextDir.r) + 1.0f; + atToEyeAdj.yaw = atToEyeNextDir.yaw + (s16)(anim->eyeToAtTarget.y * anim->animTimer); + atToEyeAdj.pitch = atToEyeNextDir.pitch + (s16)(anim->eyeToAtTarget.z * anim->animTimer); + Camera_Vec3fVecSphGeoAdd(eyeNext, at, &atToEyeAdj); + *eye = *eyeNext; + camera->fov = Camera_LERPCeilF(keep3->fovTarget, camera->fov, 0.5, 1.0f); + camera->roll = Camera_LERPCeilS(0, camera->roll, 0.5, 0xA); + camera->atLERPStepScale = Camera_ClampLERPScale(camera, keep3->atLERPScaleMax); + Camera_BGCheck(camera, at, eye); + anim->animTimer--; + } else { + camera->unk_14C |= 0x410; + } + + if (camera->unk_14C & 8) { + sCameraInterfaceFlags = 0; + func_80043B60(camera); + camera->atLERPStepScale = 0.0f; + + if (camera->xzSpeed > 0.001f || CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_A) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_B) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_CLEFT) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_CDOWN) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_CUP) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_CRIGHT) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_R) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_Z)) { + camera->unk_14C |= 4; + camera->unk_14C &= ~8; + } + } + return 1; +} + +#ifdef NON_MATCHING +s32 Camera_KeepOn4(Camera* camera) { + static Vec3f D_8015BD50; + static Vec3f D_8015BD60; + static Vec3f D_8015BD70; + Vec3f* eye = &camera->eye; + Vec3f* at = &camera->at; + Vec3f* eyeNext = &camera->eyeNext; + Actor* spCC[2]; + f32 t = -0.5f; + f32 temp_f0_2; + CollisionPoly* spC0; + VecSph spB8; + VecSph spB0; + VecSph spA8; + s16* temp_s0 = &camera->data2; + s16 spA2; + s16 spA0; + s16 sp9E; + s16 sp9C; + PosRot* playerPosRot = &camera->playerPosRot; + KeepOn4* keep4 = (KeepOn4*)camera->paramData; + KeepOn4_Unk20* unk20 = &keep4->unk_20; + s32 pad; + f32 playerHeight; + Player* player; + s16 angleCnt; + s32 i; + + player = (Player*)camera->globalCtx->actorCtx.actorList[ACTORTYPE_PLAYER].first; + + if (camera->animState == 0 || camera->animState == 0xA || camera->animState == 0x14) { + if (camera->globalCtx->view.unk_124 == 0) { + camera->unk_14C |= 0x20; + camera->unk_14C &= ~(0x4 | 0x2); + camera->globalCtx->view.unk_124 = camera->thisIdx | 0x50; + return 1; + } + camera->unk_14C &= ~0x20; + unk20->unk_14 = *temp_s0; + } + + if (unk20->unk_14 != *temp_s0) { + osSyncPrintf(VT_COL(YELLOW, BLACK) "camera: item: item type changed %d -> %d\n" VT_RST, unk20->unk_14, + *temp_s0); + camera->unk_14C |= 0x20; + camera->animState = 0x14; + camera->unk_14C &= ~(0x4 | 0x2); + camera->globalCtx->view.unk_124 = camera->thisIdx | 0x50; + return 1; + } + + playerHeight = Player_GetHeight(camera->player); + camera->unk_14C &= ~0x10; + if (RELOAD_PARAMS) { + CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + f32 yNormal = (1.0f + t) - ((68.0f / playerHeight) * t); + keep4->unk_00 = NEXTPCT * playerHeight * yNormal; + keep4->unk_04 = NEXTPCT * playerHeight * yNormal; + keep4->unk_08 = NEXTSETTING; + keep4->unk_0C = NEXTSETTING; + keep4->unk_10 = NEXTSETTING; + keep4->unk_18 = NEXTSETTING; + keep4->unk_1C = NEXTSETTING; + keep4->unk_14 = NEXTPCT; + keep4->unk_1E = NEXTSETTING; + osSyncPrintf("camera: item: type %d\n", *temp_s0); + switch (*temp_s0) { + case 1: + keep4->unk_00 = playerHeight * -0.6f * yNormal; + keep4->unk_04 = playerHeight * 2.0f * yNormal; + keep4->unk_08 = 10.0f; + break; + case 2: + case 3: + keep4->unk_08 = -20.0f; + keep4->unk_18 = 80.0f; + break; + case 4: + keep4->unk_00 = playerHeight * -0.2f * yNormal; + keep4->unk_08 = 25.0f; + break; + case 8: + keep4->unk_00 = playerHeight * -0.2f * yNormal; + keep4->unk_04 = playerHeight * 0.8f * yNormal; + keep4->unk_08 = 50.0f; + keep4->unk_18 = 70.0f; + break; + case 9: + keep4->unk_00 = playerHeight * 0.1f * yNormal; + keep4->unk_04 = playerHeight * 0.5f * yNormal; + keep4->unk_08 = -20.0f; + keep4->unk_0C = 0.0f; + keep4->unk_1C = 0x2540; + break; + case 5: + keep4->unk_00 = playerHeight * -0.4f * yNormal; + keep4->unk_08 = -10.0f; + keep4->unk_0C = 45.0f; + keep4->unk_1C = 0x2002; + break; + case 10: + keep4->unk_00 = playerHeight * -0.5f * yNormal; + keep4->unk_04 = playerHeight * 1.5f * yNormal; + keep4->unk_08 = -15.0f; + keep4->unk_0C = 175.0f; + keep4->unk_18 = 70.0f; + keep4->unk_1C = 0x2202; + keep4->unk_1E = 0x3C; + break; + case 12: + keep4->unk_00 = playerHeight * -0.6f * yNormal; + keep4->unk_04 = playerHeight * 1.6f * yNormal; + keep4->unk_08 = -2.0f; + keep4->unk_0C = 120.0f; + keep4->unk_10 = player->stateFlags1 & 0x8000000 ? 0.0f : 20.0f; + keep4->unk_1C = 0x3212; + keep4->unk_1E = 0x1E; + keep4->unk_18 = 50.0f; + break; + case 0x5A: + keep4->unk_00 = playerHeight * -0.3f * yNormal; + keep4->unk_18 = 45.0f; + keep4->unk_1C = 0x2F02; + break; + case 0x5B: + keep4->unk_00 = playerHeight * -0.1f * yNormal; + keep4->unk_04 = playerHeight * 1.5f * yNormal; + keep4->unk_08 = -3.0f; + keep4->unk_0C = 10.0f; + keep4->unk_18 = 55.0f; + keep4->unk_1C = 0x2F08; + break; + case 0x51: + keep4->unk_00 = playerHeight * -0.3f * yNormal; + keep4->unk_04 = playerHeight * 1.5f * yNormal; + keep4->unk_08 = 2.0f; + keep4->unk_0C = 20.0f; + keep4->unk_10 = 20.0f; + keep4->unk_1C = 0x2280; + keep4->unk_1E = 0x1E; + keep4->unk_18 = 45.0f; + break; + case 11: + keep4->unk_00 = playerHeight * -0.19f * yNormal; + keep4->unk_04 = playerHeight * 0.7f * yNormal; + keep4->unk_0C = 130.0f; + keep4->unk_10 = 10.0f; + keep4->unk_1C = 0x2522; + break; + default: + break; + } + } + + if (R_RELOAD_CAM_PARAMS) { + Camera_CopyPREGToModeValues(camera); + } + + sUpdateCameraDirection = 1; + sCameraInterfaceFlags = keep4->unk_1C; + OLib_Vec3fDiffToVecSphGeo(&spB0, at, eye); + OLib_Vec3fDiffToVecSphGeo(&spA8, at, eyeNext); + D_8015BD50 = playerPosRot->pos; + D_8015BD50.y += playerHeight; + temp_f0_2 = func_8003CCA4(&camera->globalCtx->colCtx, &spC0, &i, &D_8015BD50); + if (temp_f0_2 > (keep4->unk_00 + D_8015BD50.y)) { + D_8015BD50.y = temp_f0_2 + 10.0f; + } else { + D_8015BD50.y += keep4->unk_00; + } + + sp9C = 0; + switch (camera->animState) { + case 0: + case 0x14: + spCC[sp9C] = &camera->player->actor; + sp9C++; + func_80043ABC(camera); + camera->unk_14C &= ~(0x4 | 0x2); + unk20->unk_10 = keep4->unk_1E; + unk20->unk_08 = playerPosRot->pos.y - camera->playerPosDelta.y; + if (keep4->unk_1C & 2) { + spA2 = DEGF_TO_BINANG(keep4->unk_08); + spA0 = BINANG_SUB(BINANG_ROT180(playerPosRot->rot.y), spA8.yaw) > 0 + ? BINANG_ROT180(playerPosRot->rot.y) + DEGF_TO_BINANG(keep4->unk_0C) + : BINANG_ROT180(playerPosRot->rot.y) - DEGF_TO_BINANG(keep4->unk_0C); + } else if (keep4->unk_1C & 4) { + spA2 = DEGF_TO_BINANG(keep4->unk_08); + spA0 = DEGF_TO_BINANG(keep4->unk_0C); + } else if ((keep4->unk_1C & 8) && camera->target != NULL) { + PosRot sp60; + func_8002EF44(&sp60, camera->target); + spA2 = DEGF_TO_BINANG(keep4->unk_08) - sp60.rot.x; + spA0 = BINANG_SUB(BINANG_ROT180(sp60.rot.y), spA8.yaw) > 0 + ? BINANG_ROT180(sp60.rot.y) + DEGF_TO_BINANG(keep4->unk_0C) + : BINANG_ROT180(sp60.rot.y) - DEGF_TO_BINANG(keep4->unk_0C); + spCC[1] = camera->target; + sp9C++; + } else if ((keep4->unk_1C & 0x80) && camera->target != NULL) { + PosRot sp4C; + func_8002EF14(&sp4C, camera->target); + spA2 = ((s16)((keep4->unk_08) * (182.04167f) + .5f)); + if (1) { + sp9E = Camera_XZAngle(&sp4C.pos, &playerPosRot->pos); + spA0 = (BINANG_SUB(sp9E, spA8.yaw) > 0) ? sp9E + ((s16)((keep4->unk_0C) * (182.04167f) + .5f)) + : sp9E - ((s16)((keep4->unk_0C) * (182.04167f) + .5f)); + } + spCC[1] = camera->target; + sp9C++; + } else if (keep4->unk_1C & 0x40) { + spA2 = DEGF_TO_BINANG(keep4->unk_08); + spA0 = spA8.yaw; + } else { + spA2 = spA8.pitch; + spA0 = spA8.yaw; + } + + spB8.pitch = spA2; + spB8.yaw = spA0; + spB8.r = keep4->unk_04; + Camera_Vec3fVecSphGeoAdd(&D_8015BD70, &D_8015BD50, &spB8); + if (!(keep4->unk_1C & 1)) { + angleCnt = ARRAY_COUNT(D_8011D3B0); + for (i = 0; i < angleCnt; i++) { + if (!func_800626B0(camera->globalCtx, &camera->globalCtx->colChkCtx, &D_8015BD50, &D_8015BD70, spCC, + sp9C) && + !Camera_BGCheck(camera, &D_8015BD50, &D_8015BD70)) { + break; + } + spB8.yaw = D_8011D3B0[i] + spA0; + spB8.pitch = D_8011D3CC[i] + spA2; + Camera_Vec3fVecSphGeoAdd(&D_8015BD70, &D_8015BD50, &spB8); + } + osSyncPrintf("camera: item: BG&collision check %d time(s)\n", i); + } + temp_f0_2 = BINANG_SUB(spB8.pitch, spA8.pitch) / (f32)unk20->unk_10; + unk20->unk_04 = temp_f0_2; + unk20->unk_00 = BINANG_SUB(spB8.yaw, spA8.yaw) / (f32)unk20->unk_10; + unk20->unk_0C = spA8.yaw; + unk20->unk_0E = spA8.pitch; + camera->animState++; + unk20->unk_12 = 1; + break; + case 0xA: + unk20->unk_08 = playerPosRot->pos.y - camera->playerPosDelta.y; + default: + break; + } + camera->xzOffsetUpdateRate = 0.25f; + camera->yOffsetUpdateRate = 0.25f; + camera->atLERPStepScale = 0.75f; + Camera_LERPCeilVec3f(&D_8015BD50, at, 0.5f, 0.5f, 0.2f); + if (keep4->unk_10 != 0.0f) { + spB8.r = keep4->unk_10; + spB8.pitch = 0; + spB8.yaw = playerPosRot->rot.y; + Camera_Vec3fVecSphGeoAdd(at, at, &spB8); + } + camera->atLERPStepScale = 0.0f; + spB8.r = camera->dist = Camera_LERPCeilF(keep4->unk_04, camera->dist, 0.25f, 2.0f); + if (unk20->unk_10 != 0) { + camera->unk_14C |= 0x20; + unk20->unk_0C += (s16)unk20->unk_00; + unk20->unk_0E += (s16)unk20->unk_04; + unk20->unk_10--; + } else if (keep4->unk_1C & 0x10) { + camera->unk_14C |= (0x400 | 0x10); + camera->unk_14C |= (0x4 | 0x2); + camera->unk_14C &= ~8; + if (camera->timer > 0) { + camera->timer--; + } + } else { + camera->unk_14C |= (0x400 | 0x10); + if (camera->unk_14C & 8 || keep4->unk_1C & 0x80) { + sCameraInterfaceFlags = 0; + camera->unk_14C |= (0x4 | 0x2); + camera->unk_14C &= ~8; + if (camera->prevCamDataIdx < 0) { + Camera_ChangeSettingFlags(camera, camera->prevSetting, 2); + } else { + Camera_ChangeDataIdx(camera, camera->prevCamDataIdx); + camera->prevCamDataIdx = -1; + } + } + } + spB8.yaw = Camera_LERPCeilS(unk20->unk_0C, spA8.yaw, keep4->unk_14, 4); + spB8.pitch = Camera_LERPCeilS(unk20->unk_0E, spA8.pitch, keep4->unk_14, 4); + Camera_Vec3fVecSphGeoAdd(eyeNext, at, &spB8); + *eye = *eyeNext; + Camera_BGCheck(camera, at, eye); + camera->fov = Camera_LERPCeilF(keep4->unk_18, camera->fov, camera->fovUpdateRate, 1.0f); + camera->roll = Camera_LERPCeilS(0, camera->roll, 0.5f, 0xA); +} +#else +Vec3f D_8015BD50; +Vec3f D_8015BD60; +Vec3f D_8015BD70; #pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_KeepOn4.s") +#endif -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_KeepOn0.s") +/** + * Talking in a pre-rendered room + */ +s32 Camera_KeepOn0(Camera* camera) { + Vec3f* eye = &camera->eye; + Vec3f* eyeNext = &camera->eyeNext; + Vec3f* at = &camera->at; + VecSph eyeTargetPosOffset; + VecSph eyeAtOffset; + KeepOn0* keep0 = (KeepOn0*)camera->paramData; + KeepOn0Anim* anim = &keep0->anim; + s32 pad; + Vec3s* sceneCamData; + Vec3s sceneCamRot; + s16 fov; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Fixed1.s") + camera->unk_14C &= ~0x10; + if (RELOAD_PARAMS) { + CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + keep0->fovScale = NEXTPCT; + keep0->yawScale = NEXTPCT; + keep0->timerInit = NEXTSETTING; + keep0->interfaceFlags = NEXTSETTING; + } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Fixed2.s") + if (R_RELOAD_CAM_PARAMS) { + Camera_CopyPREGToModeValues(camera); + } + sceneCamData = Camera_GetCamBGData(camera); + Camera_Vec3sToVec3f(eyeNext, &BGCAM_POS(sceneCamData)); + *eye = *eyeNext; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Fixed3.s") + sceneCamRot = BGCAM_ROT(sceneCamData); // unused -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Fixed4.s") + fov = BGCAM_FOV(sceneCamData); + if (fov == -1) { + fov = 6000; + } + + if (camera->target == NULL || camera->target->update == NULL) { + if (camera->target == NULL) { + osSyncPrintf( + VT_COL(YELLOW, BLACK) "camera: warning: talk: target is not valid, change normal camera\n" VT_RST); + } + camera->target = NULL; + Camera_ChangeMode(camera, CAM_MODE_NORMAL); + return true; + } + + func_8002EEE4(&camera->targetPosRot, camera->target); + + OLib_Vec3fDiffToVecSphGeo(&eyeAtOffset, eye, at); + OLib_Vec3fDiffToVecSphGeo(&eyeTargetPosOffset, eye, &camera->targetPosRot.pos); + + sCameraInterfaceFlags = keep0->interfaceFlags; + + if (camera->animState == 0) { + camera->animState++; + camera->fov = PCT(fov); + camera->roll = 0; + camera->atLERPStepScale = 0.0f; + anim->animTimer = keep0->timerInit; + anim->fovTarget = camera->fov - (camera->fov * keep0->fovScale); + } + + if (anim->animTimer != 0) { + eyeAtOffset.yaw += (BINANG_SUB(eyeTargetPosOffset.yaw, eyeAtOffset.yaw) / anim->animTimer) * keep0->yawScale; + Camera_Vec3fVecSphGeoAdd(at, eye, &eyeAtOffset); + anim->animTimer--; + } else { + camera->unk_14C |= (0x400 | 0x10); + } + camera->fov = Camera_LERPCeilF(anim->fovTarget, camera->fov, 0.5f, 10.0f); + return true; +} + +s32 Camera_Fixed1(Camera* camera) { + Fixed1* fixd1 = (Fixed1*)camera->paramData; + Fixed1Anim* anim = &fixd1->anim; + s32 pad; + VecSph eyeOffset; + VecSph eyeAtOffset; + s32 pad2; + Vec3f adjustedPos; + Vec3s* scenePosData; + Vec3f* eye = &camera->eye; + Vec3f* at = &camera->at; + PosRot* playerPosRot = &camera->playerPosRot; + f32 playerHeight; + + playerHeight = Player_GetHeight(camera->player); + if (RELOAD_PARAMS) { + CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + scenePosData = Camera_GetCamBGData(camera); + Camera_Vec3sToVec3f(&anim->eyePosRotTarget.pos, &BGCAM_POS(scenePosData)); + anim->eyePosRotTarget.rot = BGCAM_ROT(scenePosData); + anim->fov = BGCAM_FOV(scenePosData); + fixd1->unk_00 = NEXTPCT * playerHeight; + fixd1->lerpStep = NEXTPCT; + fixd1->fov = NEXTSETTING; + fixd1->interfaceFlags = NEXTSETTING; + } + + if (R_RELOAD_CAM_PARAMS) { + Camera_CopyPREGToModeValues(camera); + } + if (anim->fov == -1) { + anim->fov = fixd1->fov * 100.0f; + } else if (anim->fov < 361) { + anim->fov *= 100; + } + + sCameraInterfaceFlags = fixd1->interfaceFlags; + + if (camera->animState == 0) { + camera->animState++; + func_80043B60(camera); + if (anim->fov != -1) { + fixd1->fov = PCT(anim->fov); + } + } + + OLib_Vec3fDiffToVecSphGeo(&eyeAtOffset, eye, at); + + Camera_LERPCeilVec3f(&anim->eyePosRotTarget.pos, eye, 0.1f, 0.1f, 0.2f); + adjustedPos = playerPosRot->pos; + adjustedPos.y += playerHeight; + camera->dist = OLib_Vec3fDist(&adjustedPos, eye); + + eyeOffset.r = camera->dist; + eyeOffset.pitch = Camera_LERPCeilS(-anim->eyePosRotTarget.rot.x, eyeAtOffset.pitch, fixd1->lerpStep, 5); + eyeOffset.yaw = Camera_LERPCeilS(anim->eyePosRotTarget.rot.y, eyeAtOffset.yaw, fixd1->lerpStep, 5); + + Camera_Vec3fVecSphGeoAdd(at, eye, &eyeOffset); + + camera->eyeNext = *eye; + + camera->fov = Camera_LERPCeilF(fixd1->fov, camera->fov, fixd1->lerpStep, 0.01f); + camera->roll = 0; + camera->atLERPStepScale = 0.0f; + + camera->posOffset.x = camera->at.x - playerPosRot->pos.x; + camera->posOffset.y = camera->at.y - playerPosRot->pos.y; + camera->posOffset.z = camera->at.z - playerPosRot->pos.z; + + return true; +} + +s32 Camera_Fixed2(Camera* camera) { + Vec3f* eye = &camera->eye; + Vec3f* at = &camera->at; + Vec3f* eyeNext = &camera->eyeNext; + Vec3f atTarget; + Vec3f posOffsetTarget; + PosRot* playerPosRot = &camera->playerPosRot; + Vec3s* scenePosData; + Fixed2* fixd2 = (Fixed2*)camera->paramData; + Fixed2InitParams* initParams = &fixd2->initParams; + s32 pad; + f32 playerHeight; + + playerHeight = Player_GetHeight(camera->player); + + if (RELOAD_PARAMS) { + CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + f32 yNormal = (1.0f + PCT(R_CAM_YOFFSET_NORM)) - (PCT(R_CAM_YOFFSET_NORM) * (68.0f / playerHeight)); + fixd2->yOffset = (NEXTPCT * playerHeight) * yNormal; + fixd2->eyeStepScale = NEXTPCT; + fixd2->posStepScale = NEXTPCT; + fixd2->fov = NEXTSETTING; + fixd2->interfaceFlags = NEXTSETTING; + initParams->fov = fixd2->fov * 100.0f; + scenePosData = Camera_GetCamBGData(camera); + if (scenePosData != NULL) { + Camera_Vec3sToVec3f(&initParams->eye, &BGCAM_POS(scenePosData)); + if (BGCAM_FOV(scenePosData) != -1) { + initParams->fov = BGCAM_FOV(scenePosData); + } + } else { + initParams->eye = *eye; + } + if (initParams->fov < 361) { + initParams->fov *= 100; + } + } + + if (R_RELOAD_CAM_PARAMS) { + Camera_CopyPREGToModeValues(camera); + } + + sCameraInterfaceFlags = fixd2->interfaceFlags; + + posOffsetTarget.x = 0.0f; + posOffsetTarget.y = fixd2->yOffset + playerHeight; + posOffsetTarget.z = 0.0f; + + Camera_LERPCeilVec3f(&posOffsetTarget, &camera->posOffset, fixd2->posStepScale, fixd2->posStepScale, 0.1f); + atTarget.x = playerPosRot->pos.x + camera->posOffset.x; + atTarget.y = playerPosRot->pos.y + camera->posOffset.y; + atTarget.z = playerPosRot->pos.z + camera->posOffset.z; + if (camera->animState == 0) { + camera->animState++; + func_80043B60(camera); + if (!(fixd2->interfaceFlags & 1)) { + *eye = *eyeNext = initParams->eye; + camera->at = atTarget; + } + } + + Camera_LERPCeilVec3f(&atTarget, &camera->at, fixd2->posStepScale, fixd2->posStepScale, 10.0f); + Camera_LERPCeilVec3f(&initParams->eye, eyeNext, fixd2->eyeStepScale, fixd2->eyeStepScale, 0.1f); + + *eye = *eyeNext; + camera->dist = OLib_Vec3fDist(at, eye); + camera->roll = 0; + camera->xzSpeed = 0.0f; + camera->fov = PCT(initParams->fov); + camera->atLERPStepScale = Camera_ClampLERPScale(camera, 1.0f); + camera->posOffset.x = camera->at.x - playerPosRot->pos.x; + camera->posOffset.y = camera->at.y - playerPosRot->pos.y; + camera->posOffset.z = camera->at.z - playerPosRot->pos.z; + return true; +} + +/** + * Camera's position is fixed, does not move, or rotate + */ +s32 Camera_Fixed3(Camera* camera) { + Vec3f* eye = &camera->eye; + Vec3f* at = &camera->at; + Vec3f* eyeNext = &camera->eyeNext; + VecSph atSph; + Vec3s* sceneCamData; + VecSph eyeAtOffset; + Fixed3* fixd3 = (Fixed3*)camera->paramData; + Fixed3Anim* anim = &fixd3->anim; + s32 pad; + + sceneCamData = Camera_GetCamBGData(camera); + + OLib_Vec3fDiffToVecSphGeo(&eyeAtOffset, eye, at); + + if (RELOAD_PARAMS) { + CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + fixd3->interfaceFlags = NEXTSETTING; + Camera_Vec3sToVec3f(eyeNext, &BGCAM_POS(sceneCamData)); + *eye = *eyeNext; + anim->rot = BGCAM_ROT(sceneCamData); + anim->fov = BGCAM_FOV(sceneCamData); + anim->jfifId = BGCAM_JFIFID(sceneCamData); + if (anim->fov == -1) { + anim->fov = 6000; + } + if (anim->fov <= 360) { + anim->fov *= 100; + } + } + + if (R_RELOAD_CAM_PARAMS) { + Camera_CopyPREGToModeValues(camera); + } + + if (camera->animState == 0) { + anim->updDirTimer = 5; + R_CAM_FIXED3_FOV = anim->fov; + camera->animState++; + } + + if (BGCAM_JFIFID(sceneCamData) != anim->jfifId) { + osSyncPrintf("camera: position change %d \n", anim->jfifId); + anim->jfifId = BGCAM_JFIFID(sceneCamData); + anim->updDirTimer = 5; + } + + if (anim->updDirTimer > 0) { + anim->updDirTimer--; + sUpdateCameraDirection = true; + } else { + sUpdateCameraDirection = false; + } + + atSph.r = 150.0f; + atSph.yaw = anim->rot.y; + atSph.pitch = -anim->rot.x; + + Camera_Vec3fVecSphGeoAdd(at, eye, &atSph); + sCameraInterfaceFlags = fixd3->interfaceFlags; + anim->fov = R_CAM_FIXED3_FOV; + camera->roll = 0; + camera->fov = anim->fov * 0.01f; + camera->atLERPStepScale = 0.0f; + return true; +} + +/** + * camera follow player, eye is in a fixed offset of the previous eye, and a value + * specified in the scene. + */ +s32 Camera_Fixed4(Camera* camera) { + Vec3f* eye = &camera->eye; + Vec3f* at = &camera->at; + Vec3f* eyeNext = &camera->eyeNext; + Vec3f playerPosWithCamOffset; + Vec3f atTarget; + Vec3f posOffsetTarget; + VecSph atEyeNextOffset; + VecSph atTargetEyeNextOffset; + PosRot* playerPosRot = &camera->playerPosRot; + Vec3s* camPosData; + Vec3f* posOffset = &camera->posOffset; + Fixed4* fixed4 = (Fixed4*)camera->paramData; + Fixed4Anim* anim = &fixed4->anim; + f32 playerYOffset; + + playerYOffset = Player_GetHeight(camera->player); + if (RELOAD_PARAMS) { + CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + f32 yNormal = ((1.0f + PCT(OREG(46))) - (PCT(OREG(46)) * (68.0f / playerYOffset))); + fixed4->yOffset = NEXTPCT * playerYOffset * yNormal; + fixed4->speedToEyePos = NEXTPCT; + fixed4->followSpeed = NEXTPCT; + fixed4->fov = NEXTSETTING; + fixed4->interfaceFlags = NEXTSETTING; + camPosData = Camera_GetCamBGData(camera); + if (camPosData != NULL) { + Camera_Vec3sToVec3f(&anim->eyeTarget, &BGCAM_POS(camPosData)); + } else { + anim->eyeTarget = *eye; + } + } + if (R_RELOAD_CAM_PARAMS) { + Camera_CopyPREGToModeValues(camera); + } + sCameraInterfaceFlags = fixed4->interfaceFlags; + if (camera->animState == 0) { + camera->animState++; + if (!(fixed4->interfaceFlags & 4)) { + func_80043B60(camera); + } + anim->followSpeed = fixed4->followSpeed; + } + + VEC3F_LERPIMPDST(eyeNext, eyeNext, &anim->eyeTarget, fixed4->speedToEyePos); + *eye = *eyeNext; + + posOffsetTarget.x = 0.0f; + posOffsetTarget.y = fixed4->yOffset + playerYOffset; + posOffsetTarget.z = 0.0f; + Camera_LERPCeilVec3f(&posOffsetTarget, &camera->posOffset, 0.1f, 0.1f, 0.1f); + + playerPosWithCamOffset.x = playerPosRot->pos.x + camera->posOffset.x; + playerPosWithCamOffset.y = playerPosRot->pos.y + camera->posOffset.y; + playerPosWithCamOffset.z = playerPosRot->pos.z + camera->posOffset.z; + VEC3F_LERPIMPDST(&atTarget, at, &playerPosWithCamOffset, 0.5f); + + OLib_Vec3fDiffToVecSphGeo(&atEyeNextOffset, eyeNext, at); + OLib_Vec3fDiffToVecSphGeo(&atTargetEyeNextOffset, eyeNext, &atTarget); + + atEyeNextOffset.r += (atTargetEyeNextOffset.r - atEyeNextOffset.r) * anim->followSpeed; + atEyeNextOffset.pitch = Camera_LERPCeilS(atTargetEyeNextOffset.pitch, atEyeNextOffset.pitch, + anim->followSpeed * camera->speedRatio, 0xA); + atEyeNextOffset.yaw = + Camera_LERPCeilS(atTargetEyeNextOffset.yaw, atEyeNextOffset.yaw, anim->followSpeed * camera->speedRatio, 0xA); + Camera_Vec3fVecSphGeoAdd(at, eyeNext, &atEyeNextOffset); + camera->dist = OLib_Vec3fDist(at, eye); + camera->roll = 0; + camera->fov = fixed4->fov; + camera->atLERPStepScale = Camera_ClampLERPScale(camera, 1.0f); + return true; +} s32 Camera_Fixed0(Camera* camera) { - return func_80047394(camera); + return Camera_Noop(camera); } s32 Camera_Subj1(Camera* camera) { - return func_80047394(camera); + return Camera_Noop(camera); } s32 Camera_Subj2(Camera* camera) { - return func_80047394(camera); + return Camera_Noop(camera); } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Subj3.s") +/** + * First person view + */ +s32 Camera_Subj3(Camera* camera) { + Vec3f* eye = &camera->eye; + Vec3f* at = &camera->at; + Vec3f* eyeNext = &camera->eyeNext; + Vec3f sp98; + Vec3f sp8C; + VecSph sp84; + VecSph sp7C; + VecSph tsph; + PosRot sp60; + PosRot* playerPosRot = &camera->playerPosRot; + f32 sp58; + f32 temp_f0_3; + s16 sp52; + s16 sp50; + Subj3* subj3 = (Subj3*)camera->paramData; + Subj3Anim* anim = &subj3->anim; + CameraModeValue* values; + Vec3f* pad2; + f32 playerHeight; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Subj4.s") + func_8002EEE4(&sp60, &camera->player->actor); + playerHeight = Player_GetHeight(camera->player); + + if (camera->globalCtx->view.unk_124 == 0) { + camera->globalCtx->view.unk_124 = camera->thisIdx | 0x50; + return true; + } + + func_80043ABC(camera); + Camera_CopyPREGToModeValues(camera); + values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + subj3->eyeNextYOffset = NEXTPCT * playerHeight; + subj3->eyeDist = NEXTSETTING; + subj3->eyeNextDist = NEXTSETTING; + subj3->unk_0C = NEXTSETTING; + subj3->atOffset.x = NEXTSETTING * 0.1f; + subj3->atOffset.y = NEXTSETTING * 0.1f; + subj3->atOffset.z = NEXTSETTING * 0.1f; + subj3->fovTarget = NEXTSETTING; + subj3->interfaceFlags = NEXTSETTING; + sp84.r = subj3->eyeNextDist; + sp84.yaw = BINANG_ROT180(sp60.rot.y); + sp84.pitch = sp60.rot.x; + sp98 = sp60.pos; + sp98.y += subj3->eyeNextYOffset; + + Camera_Vec3fVecSphGeoAdd(&sp8C, &sp98, &sp84); + OLib_Vec3fDiffToVecSphGeo(&sp7C, at, eye); + + sCameraInterfaceFlags = subj3->interfaceFlags; + if (camera->animState == 0 || camera->animState == 0xA || camera->animState == 0x14) { + anim->r = sp7C.r; + anim->yaw = sp7C.yaw; + anim->pitch = sp7C.pitch; + anim->animTimer = OREG(23); + camera->dist = subj3->eyeNextDist; + camera->animState++; + camera->rUpdateRateInv = 1.0f; + camera->dist = subj3->eyeNextDist; + } + + tsph.r = anim->r; + tsph.yaw = anim->yaw; + tsph.pitch = anim->pitch; + if (anim->animTimer != 0) { + temp_f0_3 = (1.0f / anim->animTimer); + pad2 = at; + at->x = at->x + (sp98.x - pad2->x) * temp_f0_3; + at->y = at->y + (sp98.y - pad2->y) * temp_f0_3; + at->z = at->z + (sp98.z - pad2->z) * temp_f0_3; + + temp_f0_3 = (1.0f / OREG(23)); + sp58 = (tsph.r - sp84.r) * temp_f0_3; + sp52 = BINANG_SUB(tsph.yaw, sp84.yaw) * temp_f0_3; + sp50 = BINANG_SUB(tsph.pitch, sp84.pitch) * temp_f0_3; + + sp7C.r = Camera_LERPCeilF(sp84.r + (sp58 * anim->animTimer), sp7C.r, PCT(OREG(28)), 1.0f); + sp7C.yaw = Camera_LERPCeilS(sp84.yaw + (sp52 * anim->animTimer), sp7C.yaw, PCT(OREG(28)), 0xA); + sp7C.pitch = Camera_LERPCeilS(sp84.pitch + (sp50 * anim->animTimer), sp7C.pitch, PCT(OREG(28)), 0xA); + Camera_Vec3fVecSphGeoAdd(eyeNext, at, &sp7C); + + *eye = *eyeNext; + anim->animTimer--; + + if (camera->globalCtx->envCtx.skyDisabled == 0) { + Camera_BGCheck(camera, at, eye); + } else { + func_80044340(camera, at, eye); + } + } else { + sp58 = Math_Sins(-sp60.rot.x); + temp_f0_3 = Math_Coss(-sp60.rot.x); + sp98.x = subj3->atOffset.x; + sp98.y = (subj3->atOffset.y * temp_f0_3) - (subj3->atOffset.z * sp58); + sp98.z = (subj3->atOffset.y * sp58) + (subj3->atOffset.z * temp_f0_3); + sp58 = Math_Sins(BINANG_ROT180(sp60.rot.y)); + temp_f0_3 = Math_Coss(BINANG_ROT180(sp60.rot.y)); + subj3->atOffset.x = (sp98.z * sp58) + (sp98.x * temp_f0_3); + subj3->atOffset.y = sp98.y; + subj3->atOffset.z = (sp98.z * temp_f0_3) - (sp98.x * sp58); + at->x = subj3->atOffset.x + sp60.pos.x; + at->y = subj3->atOffset.y + sp60.pos.y; + at->z = subj3->atOffset.z + sp60.pos.z; + sp7C.r = subj3->eyeNextDist; + sp7C.yaw = BINANG_ROT180(sp60.rot.y); + sp7C.pitch = sp60.rot.x; + Camera_Vec3fVecSphGeoAdd(eyeNext, at, &sp7C); + sp7C.r = subj3->eyeDist; + Camera_Vec3fVecSphGeoAdd(eye, at, &sp7C); + } + + camera->posOffset.x = camera->at.x - playerPosRot->pos.x; + camera->posOffset.y = camera->at.y - playerPosRot->pos.y; + camera->posOffset.z = camera->at.z - playerPosRot->pos.z; + camera->fov = Camera_LERPCeilF(subj3->fovTarget, camera->fov, 0.25f, 1.0f); + camera->roll = 0; + camera->atLERPStepScale = 0.0f; + return 1; +} + +s32 Camera_Subj4(Camera* camera) { + Vec3f* eye = &camera->eye; + Vec3f* eyeNext = &camera->eyeNext; + Vec3f* at = &camera->at; + u16 spAA; + Vec3s* spA4; + Vec3f sp98; + Vec3f sp8C; + f32 sp88; + s16 pad2; + f32 temp_f16; + PosRot sp6C; + VecSph sp64; + VecSph sp5C; + s16 temp_a0; + f32 tx; + Player* player; + PosRot* playerPosRot = &camera->playerPosRot; + Subj4* subj4 = (Subj4*)camera->paramData; + Subj4Anim* anim = &subj4->anim; + + if (RELOAD_PARAMS) { + CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + subj4->interfaceFlags = NEXTSETTING; + } + + if (R_RELOAD_CAM_PARAMS) { + Camera_CopyPREGToModeValues(camera); + } + + if (camera->globalCtx->view.unk_124 == 0) { + camera->globalCtx->view.unk_124 = (camera->thisIdx | 0x50); + anim->unk_24 = camera->xzSpeed; + return true; + } + + func_8002EF44(&sp6C, &camera->player->actor); + + OLib_Vec3fDiffToVecSphGeo(&sp5C, at, eye); + sCameraInterfaceFlags = subj4->interfaceFlags; + if (camera->animState == 0) { + spA4 = Camera_GetCamBgDataUnderPlayer(camera, &spAA); + Camera_Vec3sToVec3f(&anim->unk_00.a, &spA4[1]); + Camera_Vec3sToVec3f(&sp98, &spA4[spAA - 2]); + + sp64.r = 10.0f; + // 0x238C ~ 50 degrees + sp64.pitch = 0x238C; + sp64.yaw = Camera_XZAngle(&sp98, &anim->unk_00.a); + sp88 = OLib_Vec3fDist(&playerPosRot->pos, &anim->unk_00.a); + if (OLib_Vec3fDist(&playerPosRot->pos, &sp98) < sp88) { + anim->unk_00.b.x = anim->unk_00.a.x - sp98.x; + anim->unk_00.b.y = anim->unk_00.a.y - sp98.y; + anim->unk_00.b.z = anim->unk_00.a.z - sp98.z; + anim->unk_00.a = sp98; + } else { + anim->unk_00.b.x = sp98.x - anim->unk_00.a.x; + anim->unk_00.b.y = sp98.y - anim->unk_00.a.y; + anim->unk_00.b.z = sp98.z - anim->unk_00.a.z; + sp64.yaw = BINANG_ROT180(sp64.yaw); + } + anim->unk_30 = sp64.yaw; + anim->unk_32 = 0xA; + anim->unk_2C = 0; + anim->unk_2E = false; + anim->unk_28 = 0.0f; + camera->animState++; + } + + if (anim->unk_32 != 0) { + sp64.r = 10.0f; + sp64.pitch = 0x238C; + sp64.yaw = anim->unk_30; + Camera_Vec3fVecSphGeoAdd(&sp8C, &sp6C.pos, &sp64); + sp88 = (anim->unk_32 + 1.0f); + at->x += (sp8C.x - at->x) / sp88; + at->y += (sp8C.y - at->y) / sp88; + at->z += (sp8C.z - at->z) / sp88; + sp5C.r -= (sp5C.r / sp88); + sp5C.yaw = BINANG_LERPIMPINV(sp5C.yaw, BINANG_ROT180(sp6C.rot.y), anim->unk_32); + sp5C.pitch = BINANG_LERPIMPINV(sp5C.pitch, sp6C.rot.x, anim->unk_32); + Camera_Vec3fVecSphGeoAdd(eyeNext, at, &sp5C); + *eye = *eyeNext; + anim->unk_32--; + return false; + } else if (anim->unk_24 < 0.5f) { + return false; + } + + func_8002EF44(&sp6C, &camera->player->actor); + Math3D_LineClosestToPoint(&anim->unk_00, &sp6C.pos, eyeNext); + at->x = eyeNext->x + anim->unk_00.b.x; + at->y = eyeNext->y + anim->unk_00.b.y; + at->z = eyeNext->z + anim->unk_00.b.z; + *eye = *eyeNext; + sp64.yaw = anim->unk_30; + sp64.r = 5.0f; + sp64.pitch = 0x238C; + Camera_Vec3fVecSphGeoAdd(&sp98, eyeNext, &sp64); + anim->unk_2C += 0xBB8; + temp_f16 = Math_Coss(anim->unk_2C); + eye->x += (sp98.x - eye->x) * fabsf(temp_f16); + eye->y += (sp98.y - eye->y) * fabsf(temp_f16); + eye->z += (sp98.z - eye->z) * fabsf(temp_f16); + + if ((anim->unk_28 < temp_f16) && !anim->unk_2E) { + player = camera->player; + anim->unk_2E = true; + func_800F4010(&player->actor.projectedPos, player->unk_89E + 0x8B0, 4.0f); + } else if (anim->unk_28 > temp_f16) { + anim->unk_2E = false; + } + + anim->unk_28 = temp_f16; + camera->player->actor.posRot.pos = *eyeNext; + camera->player->actor.posRot.pos.y = camera->playerGroundY; + camera->player->actor.shape.rot.y = sp64.yaw; + temp_f16 = ((240.0f * temp_f16) * (anim->unk_24 * 0.416667f)); + temp_a0 = temp_f16 + anim->unk_30; + at->x = eye->x + (Math_Sins(temp_a0) * 10.0f); + at->y = eye->y; + at->z = eye->z + (Math_Coss(temp_a0) * 10.0f); + camera->roll = Camera_LERPCeilS(0, camera->roll, 0.5f, 0xA); + return 1; +} s32 Camera_Subj0(Camera* camera) { - return func_80047394(camera); + return Camera_Noop(camera); } s32 Camera_Data0(Camera* camera) { - return func_80047394(camera); + return Camera_Noop(camera); } s32 Camera_Data1(Camera* camera) { @@ -2736,77 +4388,1082 @@ s32 Camera_Data1(Camera* camera) { } s32 Camera_Data2(Camera* camera) { - return func_80047394(camera); + return Camera_Noop(camera); } s32 Camera_Data3(Camera* camera) { - return func_80047394(camera); + return Camera_Noop(camera); } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Data4.s") +s32 Camera_Data4(Camera* camera) { + s32 pad2[2]; + Data4* data4 = (Data4*)camera->paramData; + VecSph eyeAtOffset; + VecSph atOffset; + VecSph eyeNextAtOffset; + f32 yNormal; + s16 fov; + Vec3f* eyeNext = &camera->eyeNext; + Vec3s* sceneCamData; + Vec3f lookAt; + CameraModeValue* values; + Data4InitParams* initParams = &data4->initParams; + Vec3f* eye = &camera->eye; + f32 playerHeight; + Vec3f* at = &camera->at; + s32 pad; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Unique1.s") + playerHeight = Player_GetHeight(camera->player); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Unique2.s") + if (RELOAD_PARAMS) { + values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + yNormal = (1.0f + PCT(R_CAM_YOFFSET_NORM)) - (PCT(R_CAM_YOFFSET_NORM) * (68.0f / playerHeight)); + data4->yOffset = NEXTPCT * playerHeight * yNormal; + data4->fov = NEXTSETTING; + data4->interfaceFlags = NEXTSETTING; + sceneCamData = Camera_GetCamBGData(camera); + Camera_Vec3sToVec3f(&initParams->eyePosRot.pos, &BGCAM_POS(sceneCamData)); + initParams->eyePosRot.rot = BGCAM_ROT(sceneCamData); + fov = BGCAM_FOV(sceneCamData); + initParams->fov = fov; + if (fov != -1) { + data4->fov = initParams->fov < 361 ? initParams->fov : PCT(initParams->fov); + } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Unique3.s") + initParams->jfifId = BGCAM_JFIFID(sceneCamData); + *eye = initParams->eyePosRot.pos; + } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Unique0.s") + if (R_RELOAD_CAM_PARAMS) { + Camera_CopyPREGToModeValues(camera); + } + + sCameraInterfaceFlags = data4->interfaceFlags; + + if (camera->animState == 0) { + camera->animState++; + func_80043B60(camera); + } + + OLib_Vec3fDiffToVecSphGeo(&eyeNextAtOffset, at, eyeNext); + Camera_CalcAtDefault(camera, &eyeNextAtOffset, data4->yOffset, false); + OLib_Vec3fDiffToVecSphGeo(&eyeAtOffset, eye, at); + + atOffset.r = eyeAtOffset.r; + atOffset.yaw = + (initParams->jfifId & 1) ? (DEGF_TO_BINANG(camera->data2) + initParams->eyePosRot.rot.y) : eyeAtOffset.yaw; + atOffset.pitch = + (initParams->jfifId & 2) ? (DEGF_TO_BINANG(camera->data3) + initParams->eyePosRot.rot.x) : eyeAtOffset.pitch; + + Camera_Vec3fVecSphGeoAdd(at, eye, &atOffset); + + lookAt = camera->playerPosRot.pos; + lookAt.y += playerHeight; + + camera->dist = OLib_Vec3fDist(&lookAt, eye); + camera->roll = 0; + camera->xzSpeed = 0.0f; + camera->fov = data4->fov; + camera->atLERPStepScale = 0; + return true; +} + +/** + * Hanging off of a ledge + */ +s32 Camera_Unique1(Camera* camera) { + Vec3f* eye = &camera->eye; + Vec3f* at = &camera->at; + Vec3f* eyeNext = &camera->eyeNext; + Vec3f playerBodyPart0; + s16 phiTarget; + VecSph sp8C; + VecSph unk908PlayerPosOffset; + VecSph eyeAtOffset; + VecSph eyeNextAtOffset; + PosRot* playerPosRot = &camera->playerPosRot; + PosRot playerPosRot2; + Unique1* uniq1 = (Unique1*)camera->paramData; + Unique1Anim* anim = &uniq1->anim; + s32 pad; + f32 playerHeight; + s32 pad2; + + playerHeight = Player_GetHeight(camera->player); + if (RELOAD_PARAMS) { + CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + f32 yNormal = (1.0f + PCT(R_CAM_YOFFSET_NORM)) - (PCT(R_CAM_YOFFSET_NORM) * (68.0f / playerHeight)); + uniq1->yOffset = NEXTPCT * playerHeight * yNormal; + uniq1->distMin = NEXTPCT * playerHeight * yNormal; + uniq1->distMax = NEXTPCT * playerHeight * yNormal; + uniq1->pitchTarget = DEGF_TO_BINANG(NEXTSETTING); + uniq1->fovTarget = NEXTSETTING; + uniq1->atLERPScaleMax = NEXTPCT; + uniq1->interfaceFlags = NEXTSETTING; + } + + if (R_RELOAD_CAM_PARAMS != 0) { + Camera_CopyPREGToModeValues(camera); + } + + sUpdateCameraDirection = 1; + + OLib_Vec3fDiffToVecSphGeo(&eyeAtOffset, at, eye); + OLib_Vec3fDiffToVecSphGeo(&eyeNextAtOffset, at, eyeNext); + + sCameraInterfaceFlags = uniq1->interfaceFlags; + + if (camera->animState == 0) { + camera->posOffset.y = camera->posOffset.y - camera->playerPosDelta.y; + anim->yawTarget = eyeNextAtOffset.yaw; + anim->unk_00 = 0.0f; + playerBodyPart0 = camera->player->bodyPartsPos[0]; + OLib_Vec3fDiffToVecSphGeo(&unk908PlayerPosOffset, &playerPosRot->pos, &playerBodyPart0); + anim->timer = R_DEFA_CAM_ANIM_TIME; + anim->yawTargetAdj = ABS(BINANG_SUB(unk908PlayerPosOffset.yaw, eyeAtOffset.yaw)) < 0x3A98 + ? 0 + : ((BINANG_SUB(unk908PlayerPosOffset.yaw, eyeAtOffset.yaw) / anim->timer) / 4) * 3; + camera->animState++; + } + + func_8002EEE4(&playerPosRot2, &camera->player->actor); // unused + + camera->yawUpdateRateInv = Camera_LERPCeilF(100.0f, camera->yawUpdateRateInv, OREG(25) * 0.01f, 0.1f); + camera->pitchUpdateRateInv = Camera_LERPCeilF(100.0f, camera->pitchUpdateRateInv, OREG(25) * 0.01f, 0.1f); + camera->xzOffsetUpdateRate = Camera_LERPCeilF(0.005f, camera->xzOffsetUpdateRate, OREG(25) * 0.01f, 0.01f); + camera->yOffsetUpdateRate = Camera_LERPCeilF(0.01f, camera->yOffsetUpdateRate, OREG(26) * 0.01f, 0.01f); + camera->fovUpdateRate = Camera_LERPCeilF(OREG(4) * 0.01f, camera->fovUpdateRate, 0.05f, 0.1f); + + Camera_CalcAtDefault(camera, &eyeNextAtOffset, uniq1->yOffset, 1); + OLib_Vec3fDiffToVecSphGeo(&sp8C, at, eyeNext); + + camera->dist = Camera_LERPClampDist(camera, sp8C.r, uniq1->distMin, uniq1->distMax); + + phiTarget = uniq1->pitchTarget; + sp8C.pitch = Camera_LERPCeilS(phiTarget, eyeNextAtOffset.pitch, 1.0f / camera->pitchUpdateRateInv, 0xA); + + if (sp8C.pitch > OREG(5)) { + sp8C.pitch = OREG(5); + } + if (sp8C.pitch < -OREG(5)) { + sp8C.pitch = -OREG(5); + } + + if (anim->timer != 0) { + anim->yawTarget += anim->yawTargetAdj; + anim->timer--; + } + + sp8C.yaw = Camera_LERPFloorS(anim->yawTarget, eyeNextAtOffset.yaw, 0.5f, 0x2710); + Camera_Vec3fVecSphGeoAdd(eyeNext, at, &sp8C); + *eye = *eyeNext; + Camera_BGCheck(camera, at, eye); + camera->fov = Camera_LERPCeilF(uniq1->fovTarget, camera->fov, camera->fovUpdateRate, 1.0f); + camera->roll = 0; + camera->atLERPStepScale = Camera_ClampLERPScale(camera, uniq1->atLERPScaleMax); + return true; +} + +s32 Camera_Unique2(Camera* camera) { + Vec3f* eye = &camera->eye; + Vec3f* at = &camera->at; + Vec3f* eyeNext = &camera->eyeNext; + Vec3f playerPos; + VecSph eyeOffset; + VecSph eyeAtOffset; + s32 pad; + f32 lerpRateFactor; + Unique2* uniq2 = (Unique2*)camera->paramData; + Unique2Unk10* unk10 = &uniq2->unk_10; + s32 pad2; + f32 playerHeight; + + playerHeight = Player_GetHeight(camera->player); + + OLib_Vec3fDiffToVecSphGeo(&eyeAtOffset, at, eye); + + if (RELOAD_PARAMS) { + CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + f32 yNormal = ((1.0f + PCT(R_CAM_YOFFSET_NORM)) - (PCT(R_CAM_YOFFSET_NORM) * (68.0f / playerHeight))); + uniq2->yOffset = NEXTPCT * playerHeight * yNormal; + uniq2->distTarget = NEXTSETTING; + uniq2->fovTarget = NEXTSETTING; + uniq2->interfaceFlags = NEXTSETTING; + } + + if (R_RELOAD_CAM_PARAMS) { + Camera_CopyPREGToModeValues(camera); + } + + sCameraInterfaceFlags = uniq2->interfaceFlags; + + if ((camera->animState == 0) || (unk10->unk_04 != uniq2->interfaceFlags)) { + unk10->unk_04 = uniq2->interfaceFlags; + } + + if (camera->animState == 0) { + camera->animState = 1; + func_80043B60(camera); + unk10->unk_00 = 200.0f; + if (uniq2->interfaceFlags & 0x10) { + camera->unk_14C &= ~4; + } + } + + playerPos = camera->playerPosRot.pos; + lerpRateFactor = (uniq2->interfaceFlags & 1 ? 1.0f : camera->speedRatio); + at->x = F32_LERPIMP(at->x, playerPos.x, lerpRateFactor * 0.6f); + at->y = F32_LERPIMP(at->y, playerPos.y + playerHeight + uniq2->yOffset, 0.4f); + at->z = F32_LERPIMP(at->z, playerPos.z, lerpRateFactor * 0.6f); + unk10->unk_00 = F32_LERPIMP(unk10->unk_00, 2.0f, 0.05f); // unused. + + if (uniq2->interfaceFlags & 1) { + OLib_Vec3fDiffToVecSphGeo(&eyeOffset, at, eyeNext); + eyeOffset.r = uniq2->distTarget; + Camera_Vec3fVecSphGeoAdd(&playerPos, at, &eyeOffset); + Camera_LERPCeilVec3f(&playerPos, eye, 0.25f, 0.25f, 0.2f); + } else if (uniq2->interfaceFlags & 2) { + if (OLib_Vec3fDistXZ(at, eyeNext) < uniq2->distTarget) { + OLib_Vec3fDiffToVecSphGeo(&eyeOffset, at, eyeNext); + eyeOffset.yaw = Camera_LERPCeilS(eyeOffset.yaw, eyeAtOffset.yaw, 0.1f, 0xA); + eyeOffset.r = uniq2->distTarget; + eyeOffset.pitch = 0; + Camera_Vec3fVecSphGeoAdd(eye, at, &eyeOffset); + eye->y = eyeNext->y; + } else { + Camera_LERPCeilVec3f(eyeNext, eye, 0.25f, 0.25f, 0.2f); + } + } + + Camera_BGCheck(camera, at, eye); + camera->dist = OLib_Vec3fDist(at, eye); + camera->roll = 0; + camera->fov = Camera_LERPCeilF(uniq2->fovTarget, camera->fov, 0.2f, 0.1f); + camera->atLERPStepScale = Camera_ClampLERPScale(camera, 1.0f); + return true; +} + +s32 Camera_Unique3(Camera* camera) { + VecSph sp60; + f32 playerHeight; + Unique3* uniq3 = (Unique3*)camera->paramData; + Vec3s* temp_v0_2; + Vec3s sp4C; + Unique3Anim* anim = &uniq3->anim; + Unique3Params* params = &uniq3->params; + Vec3f* at = &camera->at; + PosRot* cameraPlayerPosRot = &camera->playerPosRot; + + playerHeight = Player_GetHeight(camera->player); + camera->unk_14C &= ~0x10; + if (RELOAD_PARAMS) { + CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + f32 yNormal = (1.0f + PCT(R_CAM_YOFFSET_NORM)) - (PCT(R_CAM_YOFFSET_NORM) * (68.0f / playerHeight)); + params->yOffset = NEXTPCT * playerHeight * yNormal; + params->fov = NEXTSETTING; + params->interfaceFlags = NEXTSETTING; + } + if (R_RELOAD_CAM_PARAMS != 0) { + Camera_CopyPREGToModeValues(camera); + } + sCameraInterfaceFlags = params->interfaceFlags; + switch (camera->animState) { + case 0: + func_80043B60(camera); + camera->unk_14C &= ~(0x8 | 0x4); + anim->initialFov = camera->fov; + anim->initialDist = OLib_Vec3fDist(at, &camera->eye); + camera->animState++; + case 1: + if (uniq3->doorParams.timer1-- > 0) { + break; + } + temp_v0_2 = Camera_GetCamBGData(camera); + Camera_Vec3sToVec3f(&camera->eyeNext, &BGCAM_POS(temp_v0_2)); + camera->eye = camera->eyeNext; + sp4C = BGCAM_ROT(temp_v0_2); + sp60.r = 100.0f; + sp60.yaw = sp4C.y; + sp60.pitch = -sp4C.x; + Camera_Vec3fVecSphGeoAdd(at, &camera->eye, &sp60); + camera->animState++; + + case 2: + if (params->interfaceFlags & 4) { + camera->at = cameraPlayerPosRot->pos; + camera->at.y += playerHeight + params->yOffset; + } + if (uniq3->doorParams.timer2-- > 0) { + break; + } + camera->animState++; + + case 3: + camera->unk_14C |= (0x400 | 0x10); + if ((camera->unk_14C & 8) != 0) { + camera->animState++; + } else { + break; + } + case 4: + if (params->interfaceFlags & 2) { + camera->unk_14C |= 4; + camera->unk_14C &= ~8; + Camera_ChangeSettingFlags(camera, CAM_SET_CIRCLE3, 2); + break; + } + uniq3->doorParams.timer3 = 5; + if (camera->xzSpeed > 0.001f || CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_A) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_B) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_CLEFT) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_CDOWN) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_CUP) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_CRIGHT) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_R) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_Z)) { + camera->animState++; + } else { + break; + } + case 5: + camera->fov = Camera_LERPCeilF(anim->initialFov, camera->fov, 0.4f, 0.1f); + OLib_Vec3fDiffToVecSphGeo(&sp60, at, &camera->eye); + sp60.r = Camera_LERPCeilF(100.0f, sp60.r, 0.4f, 0.1f); + Camera_Vec3fVecSphGeoAdd(&camera->eyeNext, at, &sp60); + camera->eye = camera->eyeNext; + if (uniq3->doorParams.timer3-- > 0) { + break; + } + camera->animState++; + default: + camera->unk_14C |= 4; + camera->unk_14C &= ~8; + camera->fov = params->fov; + Camera_ChangeSettingFlags(camera, camera->prevSetting, 2); + camera->atLERPStepScale = 0.0f; + camera->posOffset.x = camera->at.x - cameraPlayerPosRot->pos.x; + camera->posOffset.y = camera->at.y - cameraPlayerPosRot->pos.y; + camera->posOffset.z = camera->at.z - cameraPlayerPosRot->pos.z; + break; + } + + return true; +} + +/** + * Camera's eye is specified by scene camera data, at point is generated at the intersection + * of the eye to the player + */ +s32 Camera_Unique0(Camera* camera) { + f32 yOffset; + CameraModeValue* values; + Player* player; + Vec3f playerPosWithOffset; + VecSph atPlayerOffset; + Vec3s* sceneCamData; + Vec3s sceneCamRot; + PosRot* playerPosRot = &camera->playerPosRot; + Unique0* uniq0 = (Unique0*)camera->paramData; + Unique0Params* params = &uniq0->uniq0; + Unique0Anim* anim = ¶ms->anim; + Vec3f* eye = &camera->eye; + s16 fov; + + yOffset = Player_GetHeight(camera->player); + player = camera->player; + + if (RELOAD_PARAMS) { + values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + params->interfaceFlags = NEXTSETTING; + } + + if (R_RELOAD_CAM_PARAMS) { + Camera_CopyPREGToModeValues(camera); + } + + playerPosWithOffset = playerPosRot->pos; + playerPosWithOffset.y += yOffset; + + sCameraInterfaceFlags = params->interfaceFlags; + + if (camera->animState == 0) { + func_80043B60(camera); + camera->unk_14C &= ~4; + sceneCamData = Camera_GetCamBGData(camera); + Camera_Vec3sToVec3f(&anim->sceneCamPosPlayerLine.a, &BGCAM_POS(sceneCamData)); + + *eye = camera->eyeNext = anim->sceneCamPosPlayerLine.a; + sceneCamRot = BGCAM_ROT(sceneCamData); + fov = BGCAM_FOV(sceneCamData); + if (fov != -1) { + camera->fov = fov < 361 ? fov : PCT(fov); + } + anim->animTimer = BGCAM_JFIFID(sceneCamData); + if (anim->animTimer == -1) { + anim->animTimer = uniq0->doorParams.timer1 + uniq0->doorParams.timer2; + } + atPlayerOffset.r = OLib_Vec3fDist(&playerPosWithOffset, eye); + atPlayerOffset.yaw = sceneCamRot.y; + atPlayerOffset.pitch = -sceneCamRot.x; + OLib_VecSphGeoToVec3f(&anim->sceneCamPosPlayerLine.b, &atPlayerOffset); + Math3D_LineClosestToPoint(&anim->sceneCamPosPlayerLine, &playerPosRot->pos, &camera->at); + anim->initalPos = playerPosRot->pos; + camera->animState++; + } + + if (player->stateFlags1 & 0x20000000) { + anim->initalPos = playerPosRot->pos; + } + + if (params->interfaceFlags & 1) { + if (anim->animTimer > 0) { + anim->animTimer--; + anim->initalPos = playerPosRot->pos; + } else if ((!(player->stateFlags1 & 0x20000000)) && + ((OLib_Vec3fDistXZ(&playerPosRot->pos, &anim->initalPos) >= 10.0f) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_A) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_B) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_CLEFT) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_CDOWN) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_CUP) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_CRIGHT) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_R) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_Z))) { + camera->dist = OLib_Vec3fDist(&camera->at, eye); + camera->posOffset.x = camera->at.x - playerPosRot->pos.x; + camera->posOffset.y = camera->at.y - playerPosRot->pos.y; + camera->posOffset.z = camera->at.z - playerPosRot->pos.z; + camera->atLERPStepScale = 0.0f; + camera->unk_14C |= 4; + Camera_ChangeSettingFlags(camera, camera->prevSetting, 2); + } + } else { + if (anim->animTimer > 0) { + anim->animTimer--; + if (anim->animTimer == 0) { + sCameraInterfaceFlags = 0; + } + } else { + anim->initalPos = playerPosRot->pos; + } + + if ((!(player->stateFlags1 & 0x20000000)) && + ((0.001f < camera->xzSpeed) || CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_A) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_B) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_CLEFT) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_CDOWN) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_CUP) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_CRIGHT) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_R) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_Z))) { + camera->dist = OLib_Vec3fDist(&camera->at, &camera->eye); + camera->posOffset.x = camera->at.x - playerPosRot->pos.x; + camera->posOffset.y = camera->at.y - playerPosRot->pos.y; + camera->posOffset.z = camera->at.z - playerPosRot->pos.z; + camera->atLERPStepScale = 0.0f; + Camera_ChangeSettingFlags(camera, camera->prevSetting, 2); + camera->unk_14C |= 4; + } + } + return true; +} s32 Camera_Unique4(Camera* camera) { - return func_80047394(camera); + return Camera_Noop(camera); } s32 Camera_Unique5(Camera* camera) { - return func_80047394(camera); + return Camera_Noop(camera); } +/** + * This function doesn't really update much. + * Eye/at positions are updated via Camera_SetParam + */ s32 Camera_Unique6(Camera* camera) { - CameraModeValue* val; - s32 pad; + Unique6* uniq6 = (Unique6*)camera->paramData; + CameraModeValue* values; Vec3f sp2C; - Vec3f* playerPosRot; + PosRot* playerPosRot = &camera->playerPosRot; f32 offset; - if (camera->unk_15E == 0 || camera->unk_15E == 0xA || camera->unk_15E == 0x14 || QREG(0)) { - val = sCameraSettings[camera->setting].cameraModes[camera->mode].values; - camera->unk_00.sh[0] = val[0].val; + if (RELOAD_PARAMS) { + values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + uniq6->interfaceFlags = NEXTSETTING; } - if (QREG(0)) { + + if (R_RELOAD_CAM_PARAMS) { Camera_CopyPREGToModeValues(camera); } - D_8011D3A0.w = camera->unk_00.sh[0]; - if (camera->unk_15E == 0) { - camera->unk_15E++; + + sCameraInterfaceFlags = uniq6->interfaceFlags; + + if (camera->animState == 0) { + camera->animState++; func_80043ABC(camera); } + if (camera->player != NULL) { - offset = Player_GetCameraYOffset(camera->player); - playerPosRot = &camera->playerPosRot.pos; - sp2C = *playerPosRot; + offset = Player_GetHeight(camera->player); + sp2C = playerPosRot->pos; sp2C.y += offset; camera->dist = OLib_Vec3fDist(&sp2C, &camera->eye); - camera->unk_E4.x = camera->at.x - playerPosRot->x; - camera->unk_E4.y = camera->at.y - playerPosRot->y; - camera->unk_E4.z = camera->at.z - playerPosRot->z; + camera->posOffset.x = camera->at.x - playerPosRot->pos.x; + camera->posOffset.y = camera->at.y - playerPosRot->pos.y; + camera->posOffset.z = camera->at.z - playerPosRot->pos.z; } else { camera->dist = OLib_Vec3fDist(&camera->at, &camera->eye); } - if (camera->unk_00.sh[0] & 1) { - if (camera->unk_160 > 0) { - camera->unk_160--; - } + + if (uniq6->interfaceFlags & 1 && camera->timer > 0) { + camera->timer--; } - return 1; + + return true; } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Unique7.s") +/** + * Camera is at a fixed point specified by the scene's camera data, + * camera rotates to follow player + */ +s32 Camera_Unique7(Camera* camera) { + s32 pad; + Unique7* uniq7 = (Unique7*)camera->paramData; + CameraModeValue* values; + VecSph playerPosEyeOffset; + s16 fov; + Vec3s* sceneCamData; + Vec3s sceneCamRot; + Vec3f* at = &camera->at; + PosRot* playerPosRot = &camera->playerPosRot; + Vec3f* eye = &camera->eye; + Vec3f* eyeNext = &camera->eyeNext; + Unique7Unk8* unk08 = &uniq7->unk_08; + + if (RELOAD_PARAMS) { + values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + uniq7->fov = NEXTSETTING; + uniq7->interfaceFlags = (s16)NEXTSETTING; + } + if (R_RELOAD_CAM_PARAMS) { + Camera_CopyPREGToModeValues(camera); + } + + sceneCamData = Camera_GetCamBGData(camera); + + Camera_Vec3sToVec3f(eyeNext, &BGCAM_POS(sceneCamData)); + *eye = *eyeNext; + sceneCamRot = BGCAM_ROT(sceneCamData); + + OLib_Vec3fDiffToVecSphGeo(&playerPosEyeOffset, eye, &playerPosRot->pos); + + // fov actually goes unused since it's hard set later on. + fov = BGCAM_FOV(sceneCamData); + if (fov == -1) { + fov = uniq7->fov * 100.0f; + } + + if (fov < 361) { + fov *= 100; + } + + sCameraInterfaceFlags = uniq7->interfaceFlags; + + if (camera->animState == 0) { + camera->animState++; + camera->fov = PCT(fov); + camera->atLERPStepScale = 0.0f; + camera->roll = 0; + unk08->unk_00.x = playerPosEyeOffset.yaw; + } + + camera->fov = 60.0f; + + // 0x7D0 ~ 10.98 degres. + unk08->unk_00.x = Camera_LERPFloorS(playerPosEyeOffset.yaw, unk08->unk_00.x, 0.4f, 0x7D0); + playerPosEyeOffset.pitch = + -BGCAM_ROT(sceneCamData).x * Math_Coss(playerPosEyeOffset.yaw - BGCAM_ROT(sceneCamData).y); + Camera_Vec3fVecSphGeoAdd(at, eye, &playerPosEyeOffset); + camera->unk_14C |= 0x400; + return true; +} s32 Camera_Unique8(Camera* camera) { - return func_80047394(camera); + return Camera_Noop(camera); } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Unique9.s") +s32 Camera_Unique9(Camera* camera) { + Vec3f atTarget; + Vec3f eyeTarget; + Unique9* uniq9 = &ONEPOINTDEMO->uniq9; + Unique9Anim* anim = &uniq9->anim; + f32 invKeyFrameTimer; + VecSph eyeNextAtOffset; + VecSph scratchSph; + VecSph playerTargetOffset; + s16 pad; + s16 atInitFlags; + s16 eyeInitFlags; + s16 pad2; + PosRot targetPosRot2; + PosRot playerPosRot2; + PosRot playerPosRot; + Vec3f* eyeNext = &camera->eyeNext; + Vec3f* at = &camera->at; + s16 action; + Player* player; + Actor* focusActor; + f32 spB4; + PosRot atFocusPosRot; + Vec3f eyeLookAtPos; + Vec3f* eye = &camera->eye; + PosRot eyeFocusPosRot; + + player = camera->player; + + if (RELOAD_PARAMS) { + CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + uniq9->interfaceFlags = NEXTSETTING; + } + + if (R_RELOAD_CAM_PARAMS) { + Camera_CopyPREGToModeValues(camera); + } + + sCameraInterfaceFlags = uniq9->interfaceFlags; + + func_8002EF14(&playerPosRot, &camera->player->actor); + + if (camera->animState == 0) { + camera->animState++; + anim->curKeyFrameIdx = -1; + anim->keyFrameTimer = 1; + anim->unk_38 = 0; + anim->playerPos.x = playerPosRot.pos.x; + anim->playerPos.y = playerPosRot.pos.y; + anim->playerPos.z = playerPosRot.pos.z; + camera->atLERPStepScale = 0.0f; + func_80043B60(camera); + } + + if (anim->unk_38 == 0 && anim->keyFrameTimer > 0) { + anim->keyFrameTimer--; + } + + if (anim->keyFrameTimer == 0) { + anim->isNewKeyFrame = true; + anim->curKeyFrameIdx++; + if (anim->curKeyFrameIdx < ONEPOINTDEMO->keyFrameCnt) { + anim->curKeyFrame = &ONEPOINTDEMO->keyFrames[anim->curKeyFrameIdx]; + anim->keyFrameTimer = anim->curKeyFrame->timerInit; + + if (anim->curKeyFrame->unk_01 != 0xFF) { + if ((anim->curKeyFrame->unk_01 & 0xF0) == 0x80) { + D_8011D3AC = anim->curKeyFrame->unk_01 & 0xF; + } else if ((anim->curKeyFrame->unk_01 & 0xF0) == 0xC0) { + Camera_UpdateInterface(0xF000 | ((anim->curKeyFrame->unk_01 & 0xF) << 8)); + } else if (camera->player->stateFlags1 & 0x8000000 && player->currentBoots != PLAYER_BOOTS_IRON) { + func_8002DF38(camera->globalCtx, camera->target, 8); + osSyncPrintf("camera: demo: player demo set WAIT\n"); + } else { + osSyncPrintf("camera: demo: player demo set %d\n", anim->curKeyFrame->unk_01); + func_8002DF38(camera->globalCtx, camera->target, anim->curKeyFrame->unk_01); + } + } + } else { + // We've gone through all the keyframes. + if (camera->thisIdx != 0) { + camera->timer = 0; + } + return true; + } + } else { + anim->isNewKeyFrame = false; + } + + atInitFlags = anim->curKeyFrame->initFlags & 0xFF; + if (atInitFlags == 1) { + anim->atTarget = anim->curKeyFrame->atTargetInit; + } else if (atInitFlags == 2) { + if (anim->isNewKeyFrame) { + anim->atTarget.x = camera->globalCtx->view.lookAt.x + anim->curKeyFrame->atTargetInit.x; + anim->atTarget.y = camera->globalCtx->view.lookAt.y + anim->curKeyFrame->atTargetInit.y; + anim->atTarget.z = camera->globalCtx->view.lookAt.z + anim->curKeyFrame->atTargetInit.z; + } + } else if (atInitFlags == 3) { + if (anim->isNewKeyFrame) { + anim->atTarget.x = camera->at.x + anim->curKeyFrame->atTargetInit.x; + anim->atTarget.y = camera->at.y + anim->curKeyFrame->atTargetInit.y; + anim->atTarget.z = camera->at.z + anim->curKeyFrame->atTargetInit.z; + } + } else if (atInitFlags == 4 || atInitFlags == 0x84) { + if (camera->target != NULL && camera->target->update != NULL) { + func_8002EEE4(&targetPosRot2, camera->target); + func_8002EEE4(&playerPosRot2, &camera->player->actor); + playerPosRot2.pos.x = playerPosRot.pos.x; + playerPosRot2.pos.z = playerPosRot.pos.z; + OLib_Vec3fDiffToVecSphGeo(&playerTargetOffset, &targetPosRot2.pos, &playerPosRot2.pos); + if (atInitFlags & (s16)0x8080) { + scratchSph.pitch = DEGF_TO_BINANG(anim->curKeyFrame->atTargetInit.x); + scratchSph.yaw = DEGF_TO_BINANG(anim->curKeyFrame->atTargetInit.y); + scratchSph.r = anim->curKeyFrame->atTargetInit.z; + } else { + OLib_Vec3fToVecSphGeo(&scratchSph, &anim->curKeyFrame->atTargetInit); + } + scratchSph.yaw += playerTargetOffset.yaw; + scratchSph.pitch += playerTargetOffset.pitch; + Camera_Vec3fVecSphGeoAdd(&anim->atTarget, &targetPosRot2.pos, &scratchSph); + } else { + if (camera->target == NULL) { + osSyncPrintf(VT_COL(YELLOW, BLACK) "camera: warning: demo C: actor is not valid\n" VT_RST); + } + + camera->target = NULL; + anim->atTarget = camera->at; + } + } else if (atInitFlags & 0x6060) { + if (!(atInitFlags & 4) || anim->isNewKeyFrame) { + if (atInitFlags & 0x2020) { + focusActor = &camera->player->actor; + } else if (camera->target != NULL && camera->target->update != NULL) { + focusActor = camera->target; + } else { + camera->target = NULL; + focusActor = NULL; + } + + if (focusActor != NULL) { + if ((atInitFlags & 0xF) == 1) { + // posRot2 + func_8002EEE4(&atFocusPosRot, focusActor); + } else if ((atInitFlags & 0xF) == 2) { + // posRot + func_8002EF14(&atFocusPosRot, focusActor); + } else { + // posRot, shape rot + func_8002EF44(&atFocusPosRot, focusActor); + } + + if (atInitFlags & (s16)0x8080) { + scratchSph.pitch = DEGF_TO_BINANG(anim->curKeyFrame->atTargetInit.x); + scratchSph.yaw = DEGF_TO_BINANG(anim->curKeyFrame->atTargetInit.y); + scratchSph.r = anim->curKeyFrame->atTargetInit.z; + } else { + OLib_Vec3fToVecSphGeo(&scratchSph, &anim->curKeyFrame->atTargetInit); + } + + scratchSph.yaw += atFocusPosRot.rot.y; + scratchSph.pitch -= atFocusPosRot.rot.x; + Camera_Vec3fVecSphGeoAdd(&anim->atTarget, &atFocusPosRot.pos, &scratchSph); + } else { + if (camera->target == NULL) { + osSyncPrintf(VT_COL(YELLOW, BLACK) "camera: warning: demo C: actor is not valid\n" VT_RST); + } + anim->atTarget = *at; + } + } + } else { + anim->atTarget = *at; + } + + eyeInitFlags = anim->curKeyFrame->initFlags & 0xFF00; + if (eyeInitFlags == 0x100) { + anim->eyeTarget = anim->curKeyFrame->eyeTargetInit; + } else if (eyeInitFlags == 0x200) { + if (anim->isNewKeyFrame) { + anim->eyeTarget.x = camera->globalCtx->view.eye.x + anim->curKeyFrame->eyeTargetInit.x; + anim->eyeTarget.y = camera->globalCtx->view.eye.y + anim->curKeyFrame->eyeTargetInit.y; + anim->eyeTarget.z = camera->globalCtx->view.eye.z + anim->curKeyFrame->eyeTargetInit.z; + } + } else if (eyeInitFlags == 0x300) { + if (anim->isNewKeyFrame) { + anim->eyeTarget.x = camera->eyeNext.x + anim->curKeyFrame->eyeTargetInit.x; + anim->eyeTarget.y = camera->eyeNext.y + anim->curKeyFrame->eyeTargetInit.y; + anim->eyeTarget.z = camera->eyeNext.z + anim->curKeyFrame->eyeTargetInit.z; + } + } else { + if (eyeInitFlags == 0x400 || eyeInitFlags == (s16)0x8400 || eyeInitFlags == 0x500 || + eyeInitFlags == (s16)0x8500) { + if (camera->target != NULL && camera->target->update != NULL) { + func_8002EEE4(&targetPosRot2, camera->target); + func_8002EEE4(&playerPosRot2, &camera->player->actor); + playerPosRot2.pos.x = playerPosRot.pos.x; + playerPosRot2.pos.z = playerPosRot.pos.z; + OLib_Vec3fDiffToVecSphGeo(&playerTargetOffset, &targetPosRot2.pos, &playerPosRot2.pos); + if (eyeInitFlags == 0x400 || eyeInitFlags == (s16)0x8400) { + eyeLookAtPos = targetPosRot2.pos; + } else { + eyeLookAtPos = anim->atTarget; + } + + if (eyeInitFlags & (s16)0x8080) { + scratchSph.pitch = DEGF_TO_BINANG(anim->curKeyFrame->eyeTargetInit.x); + scratchSph.yaw = DEGF_TO_BINANG(anim->curKeyFrame->eyeTargetInit.y); + scratchSph.r = anim->curKeyFrame->eyeTargetInit.z; + } else { + OLib_Vec3fToVecSphGeo(&scratchSph, &anim->curKeyFrame->eyeTargetInit); + } + + scratchSph.yaw += playerTargetOffset.yaw; + scratchSph.pitch += playerTargetOffset.pitch; + Camera_Vec3fVecSphGeoAdd(&anim->eyeTarget, &eyeLookAtPos, &scratchSph); + } else { + if (camera->target == NULL) { + osSyncPrintf(VT_COL(YELLOW, BLACK) "camera: warning: demo C: actor is not valid\n" VT_RST); + } + camera->target = NULL; + anim->eyeTarget = *eyeNext; + } + } else { + if (eyeInitFlags & 0x6060) { + if (!(eyeInitFlags & 0x400) || anim->isNewKeyFrame) { + if (eyeInitFlags & 0x2020) { + focusActor = &camera->player->actor; + } else if (camera->target != NULL && camera->target->update != NULL) { + focusActor = camera->target; + } else { + camera->target = NULL; + focusActor = NULL; + } + + if (focusActor != NULL) { + if ((eyeInitFlags & 0xF00) == 0x100) { + // posRot2 + func_8002EEE4(&eyeFocusPosRot, focusActor); + } else if ((eyeInitFlags & 0xF00) == 0x200) { + // posRot + func_8002EF14(&eyeFocusPosRot, focusActor); + } else { + // posRot, shapeRot + func_8002EF44(&eyeFocusPosRot, focusActor); + } + + if (eyeInitFlags & (s16)0x8080) { + scratchSph.pitch = DEGF_TO_BINANG(anim->curKeyFrame->eyeTargetInit.x); + scratchSph.yaw = DEGF_TO_BINANG(anim->curKeyFrame->eyeTargetInit.y); + scratchSph.r = anim->curKeyFrame->eyeTargetInit.z; + } else { + OLib_Vec3fToVecSphGeo(&scratchSph, &anim->curKeyFrame->eyeTargetInit); + } + + scratchSph.yaw += eyeFocusPosRot.rot.y; + scratchSph.pitch -= eyeFocusPosRot.rot.x; + Camera_Vec3fVecSphGeoAdd(&anim->eyeTarget, &eyeFocusPosRot.pos, &scratchSph); + } else { + if (camera->target == NULL) { + osSyncPrintf(VT_COL(YELLOW, BLACK) "camera: warning: demo C: actor is not valid\n" VT_RST); + } + camera->target = NULL; + anim->eyeTarget = *eyeNext; + } + } + } else { + anim->eyeTarget = *eyeNext; + } + } + } + + if (anim->curKeyFrame->initFlags == 2) { + anim->fovTarget = camera->globalCtx->view.fovy; + anim->rollTarget = 0; + } else if (anim->curKeyFrame->initFlags == 0) { + anim->fovTarget = camera->fov; + anim->rollTarget = camera->roll; + } else { + anim->fovTarget = anim->curKeyFrame->fovTargetInit; + anim->rollTarget = DEGF_TO_BINANG(anim->curKeyFrame->rollTargetInit); + } + + action = anim->curKeyFrame->actionFlags & 0x1F; + switch (action) { + case 15: + // static copy to at/eye/fov/roll + *at = anim->atTarget; + *eyeNext = anim->eyeTarget; + camera->fov = anim->fovTarget; + camera->roll = anim->rollTarget; + camera->unk_14C |= 0x400; + break; + case 21: + // same as 15, but with unk_38 ? + if (anim->unk_38 == 0) { + anim->unk_38 = 1; + } else if (camera->unk_14C & 8) { + anim->unk_38 = 0; + camera->unk_14C &= ~8; + } + *at = anim->atTarget; + *eyeNext = anim->eyeTarget; + camera->fov = anim->fovTarget; + camera->roll = anim->rollTarget; + break; + case 16: + // same as 16, but don't unset bit 0x8 on unk_14C + if (anim->unk_38 == 0) { + anim->unk_38 = 1; + } else if (camera->unk_14C & 8) { + anim->unk_38 = 0; + } + + *at = anim->atTarget; + *eyeNext = anim->eyeTarget; + camera->fov = anim->fovTarget; + camera->roll = anim->rollTarget; + break; + case 1: + // linear interpolation of eye/at using the spherical coordinates + OLib_Vec3fDiffToVecSphGeo(&eyeNextAtOffset, at, eyeNext); + OLib_Vec3fDiffToVecSphGeo(&anim->atEyeOffsetTarget, &anim->atTarget, &anim->eyeTarget); + invKeyFrameTimer = 1.0f / anim->keyFrameTimer; + scratchSph.r = F32_LERPIMP(eyeNextAtOffset.r, anim->atEyeOffsetTarget.r, invKeyFrameTimer); + scratchSph.pitch = eyeNextAtOffset.pitch + + (BINANG_SUB(anim->atEyeOffsetTarget.pitch, eyeNextAtOffset.pitch) * invKeyFrameTimer); + scratchSph.yaw = + eyeNextAtOffset.yaw + (BINANG_SUB(anim->atEyeOffsetTarget.yaw, eyeNextAtOffset.yaw) * invKeyFrameTimer); + Camera_Vec3fVecSphGeoAdd(&eyeTarget, at, &scratchSph); + goto setEyeNext; + case 2: + // linear interpolation of eye/at using the eyeTarget + invKeyFrameTimer = 1.0f / anim->keyFrameTimer; + eyeTarget.x = F32_LERPIMP(camera->eyeNext.x, anim->eyeTarget.x, invKeyFrameTimer); + eyeTarget.y = F32_LERPIMP(camera->eyeNext.y, anim->eyeTarget.y, invKeyFrameTimer); + eyeTarget.z = F32_LERPIMP(camera->eyeNext.z, anim->eyeTarget.z, invKeyFrameTimer); + + setEyeNext: + camera->eyeNext.x = + Camera_LERPFloorF(eyeTarget.x, camera->eyeNext.x, anim->curKeyFrame->lerpStepScale, 1.0f); + camera->eyeNext.y = + Camera_LERPFloorF(eyeTarget.y, camera->eyeNext.y, anim->curKeyFrame->lerpStepScale, 1.0f); + camera->eyeNext.z = + Camera_LERPFloorF(eyeTarget.z, camera->eyeNext.z, anim->curKeyFrame->lerpStepScale, 1.0f); + case 9: + case 10: + // linear interpolation of at/fov/roll + invKeyFrameTimer = 1.0f / anim->keyFrameTimer; + atTarget.x = F32_LERPIMP(camera->at.x, anim->atTarget.x, invKeyFrameTimer); + atTarget.y = F32_LERPIMP(camera->at.y, anim->atTarget.y, invKeyFrameTimer); + atTarget.z = F32_LERPIMP(camera->at.z, anim->atTarget.z, invKeyFrameTimer); + camera->at.x = Camera_LERPFloorF(atTarget.x, camera->at.x, anim->curKeyFrame->lerpStepScale, 1.0f); + camera->at.y = Camera_LERPFloorF(atTarget.y, camera->at.y, anim->curKeyFrame->lerpStepScale, 1.0f); + camera->at.z = Camera_LERPFloorF(atTarget.z, camera->at.z, anim->curKeyFrame->lerpStepScale, 1.0f); + camera->fov = Camera_LERPFloorF(F32_LERPIMP(camera->fov, anim->fovTarget, invKeyFrameTimer), camera->fov, + anim->curKeyFrame->lerpStepScale, 0.01f); + camera->roll = Camera_LERPFloorS(BINANG_LERPIMPINV(camera->roll, anim->rollTarget, anim->keyFrameTimer), + camera->roll, anim->curKeyFrame->lerpStepScale, 0xA); + break; + case 4: + // linear interpolation of eye/at/fov/roll using the step scale, and spherical coordinates + OLib_Vec3fDiffToVecSphGeo(&eyeNextAtOffset, at, eyeNext); + OLib_Vec3fDiffToVecSphGeo(&anim->atEyeOffsetTarget, &anim->atTarget, &anim->eyeTarget); + scratchSph.r = + Camera_LERPCeilF(anim->atEyeOffsetTarget.r, eyeNextAtOffset.r, anim->curKeyFrame->lerpStepScale, 0.1f); + scratchSph.pitch = Camera_LERPCeilS(anim->atEyeOffsetTarget.pitch, eyeNextAtOffset.pitch, + anim->curKeyFrame->lerpStepScale, 1); + scratchSph.yaw = + Camera_LERPCeilS(anim->atEyeOffsetTarget.yaw, eyeNextAtOffset.yaw, anim->curKeyFrame->lerpStepScale, 1); + Camera_Vec3fVecSphGeoAdd(eyeNext, at, &scratchSph); + goto setAtFOVRoll; + case 3: + // linear interplation of eye/at/fov/roll using the step scale using eyeTarget + camera->eyeNext.x = + Camera_LERPCeilF(anim->eyeTarget.x, camera->eyeNext.x, anim->curKeyFrame->lerpStepScale, 1.0f); + camera->eyeNext.y = + Camera_LERPCeilF(anim->eyeTarget.y, camera->eyeNext.y, anim->curKeyFrame->lerpStepScale, 1.0f); + camera->eyeNext.z = + Camera_LERPCeilF(anim->eyeTarget.z, camera->eyeNext.z, anim->curKeyFrame->lerpStepScale, 1.0f); + case 11: + case 12: + setAtFOVRoll: + // linear interpolation of at/fov/roll using the step scale. + camera->at.x = Camera_LERPCeilF(anim->atTarget.x, camera->at.x, anim->curKeyFrame->lerpStepScale, 1.0f); + camera->at.y = Camera_LERPCeilF(anim->atTarget.y, camera->at.y, anim->curKeyFrame->lerpStepScale, 1.0f); + camera->at.z = Camera_LERPCeilF(anim->atTarget.z, camera->at.z, anim->curKeyFrame->lerpStepScale, 1.0f); + camera->fov = Camera_LERPCeilF(anim->fovTarget, camera->fov, anim->curKeyFrame->lerpStepScale, 1.0f); + camera->roll = Camera_LERPCeilS(anim->rollTarget, camera->roll, anim->curKeyFrame->lerpStepScale, 1); + break; + case 13: + // linear interpolation of at, with rotation around eyeTargetInit.y + camera->at.x = Camera_LERPCeilF(anim->atTarget.x, camera->at.x, anim->curKeyFrame->lerpStepScale, 1.0f); + camera->at.y += camera->playerPosDelta.y * anim->curKeyFrame->lerpStepScale; + camera->at.z = Camera_LERPCeilF(anim->atTarget.z, camera->at.z, anim->curKeyFrame->lerpStepScale, 1.0f); + OLib_Vec3fDiffToVecSphGeo(&scratchSph, at, eyeNext); + scratchSph.yaw += DEGF_TO_BINANG(anim->curKeyFrame->eyeTargetInit.y); + + // 3A98 ~ 82.40 degrees + if (scratchSph.pitch >= 0x3A99) { + scratchSph.pitch = 0x3A98; + } + + if (scratchSph.pitch < -0x3A98) { + scratchSph.pitch = -0x3A98; + } + + spB4 = scratchSph.r; + if (1) {} + scratchSph.r = + !(spB4 < anim->curKeyFrame->eyeTargetInit.z) + ? Camera_LERPCeilF(anim->curKeyFrame->eyeTargetInit.z, spB4, anim->curKeyFrame->lerpStepScale, 1.0f) + : scratchSph.r; + + Camera_Vec3fVecSphGeoAdd(eyeNext, at, &scratchSph); + camera->fov = + Camera_LERPCeilF(F32_LERPIMPINV(camera->fov, anim->curKeyFrame->fovTargetInit, anim->keyFrameTimer), + camera->fov, anim->curKeyFrame->lerpStepScale, 1.0f); + camera->roll = Camera_LERPCeilS(anim->rollTarget, camera->roll, anim->curKeyFrame->lerpStepScale, 1); + break; + case 24: + // Set current keyframe to the roll target? + anim->curKeyFrameIdx = anim->rollTarget; + break; + case 19: + // Change the parent camera (or default)'s mode to normal + Camera_ChangeModeFlags(camera->globalCtx->cameraPtrs[camera->parentCamIdx < 0 ? 0 : camera->parentCamIdx], + CAM_MODE_NORMAL, 1); + case 18: + // copy the current camera to the parent (or default)'s camera. + { + Camera* cam = camera->globalCtx->cameraPtrs[camera->parentCamIdx < 0 ? 0 : camera->parentCamIdx]; + *eye = *eyeNext; + Camera_Copy(cam, camera); + } + default: + if (camera->thisIdx != 0) { + camera->timer = 0; + } + } + + *eye = *eyeNext; + + if (anim->curKeyFrame->actionFlags & 0x80) { + Camera_BGCheck(camera, at, eye); + } + + if (anim->curKeyFrame->actionFlags & 0x40) { + // Set the player's position + camera->player->actor.posRot.pos.x = anim->playerPos.x; + camera->player->actor.posRot.pos.z = anim->playerPos.z; + if (camera->player->stateFlags1 & 0x8000000 && player->currentBoots != PLAYER_BOOTS_IRON) { + camera->player->actor.posRot.pos.y = anim->playerPos.y; + } + } else { + anim->playerPos.x = playerPosRot.pos.x; + anim->playerPos.y = playerPosRot.pos.y; + anim->playerPos.z = playerPosRot.pos.z; + } + + if (anim->unk_38 == 0 && camera->timer > 0) { + camera->timer--; + } + + if (camera->player != NULL) { + camera->posOffset.x = camera->at.x - camera->playerPosRot.pos.x; + camera->posOffset.y = camera->at.y - camera->playerPosRot.pos.y; + camera->posOffset.z = camera->at.z - camera->playerPosRot.pos.z; + } + + camera->dist = OLib_Vec3fDist(at, eye); + return true; +} void Camera_DebugPrintSplineArray(char* name, s16 length, CutsceneCameraPoint cameraPoints[]) { s32 i; @@ -2825,149 +5482,817 @@ void Camera_DebugPrintSplineArray(char* name, s16 length, CutsceneCameraPoint ca osSyncPrintf("};\n\n"); } +/** + * Copies `src` to `dst`, used in Camera_Demo1 + * Name from AC map: Camera2_SetPos_Demo + */ void Camera_Vec3fCopy(Vec3f* src, Vec3f* dst) { dst->x = src->x; dst->y = src->y; dst->z = src->z; } -void func_80054478(PosRot* arg0, Vec3f* arg1, Vec3f* arg2) { - VecSph sp28; - Vec3f sp1C; +/** + * Calculates new position from `at` to `pos`, outputs to `dst + * Name from AC map: Camera2_CalcPos_Demo + */ +void Camera_RotateAroundPoint(PosRot* at, Vec3f* pos, Vec3f* dst) { + VecSph posSph; + Vec3f posCopy; - Camera_Vec3fCopy(arg1, &sp1C); - OLib_Vec3fToVecSphGeo(&sp28, &sp1C); - sp28.yaw += arg0->rot.y; - func_80043C28(arg2, &arg0->pos, &sp28); + Camera_Vec3fCopy(pos, &posCopy); + OLib_Vec3fToVecSphGeo(&posSph, &posCopy); + posSph.yaw += at->rot.y; + Camera_Vec3fVecSphGeoAdd(dst, &at->pos, &posSph); } -s32 func_800BB2B4(Vec3f*, f32*, f32*, CutsceneCameraPoint*, s16*, Demo1_unk_04*); - -#ifdef NON_MATCHING +/** + * Camera follows points specified at pointers to CutsceneCameraPoints, + * camera->data0 for camera at positions, and camera->data1 for camera eye positions + * until all keyFrames have been exhausted. + */ s32 Camera_Demo1(Camera* camera) { - Vec3f* at; - Vec3f* eyeNext; - Vec3f* eye; - char* t; - CutsceneCameraPoint* sp84; - CutsceneCameraPoint* sp80; - PosRot sp68; - Vec3f sp5C; - Vec3f sp50; - f32 sp4C; - s16* relativeToPlayer; - CameraModeValue* values; - Demo1_unk_04* unk_04; s32 pad; + Demo1* demo1 = (Demo1*)camera->paramData; + CameraModeValue* values; + Vec3f* at = &camera->at; + CutsceneCameraPoint* csAtPoints = (CutsceneCameraPoint*)camera->data0; + CutsceneCameraPoint* csEyePoints = (CutsceneCameraPoint*)camera->data1; + Vec3f* eye = &camera->eye; + PosRot curPlayerPosRot; + Vec3f csEyeUpdate; + Vec3f csAtUpdate; + f32 newRoll; + Vec3f* eyeNext = &camera->eyeNext; + f32* cameraFOV = &camera->fov; + s16* relativeToPlayer = &camera->data2; + Demo1Anim* anim = &demo1->anim; - sp84 = camera->atPoints; - sp80 = camera->eyePoints; - if (camera->unk_15E == 0 || camera->unk_15E == 0xA || camera->unk_15E == 0x14 || QREG(0)) { + if (RELOAD_PARAMS) { values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; - camera->unk_00.demo1.unk_00 = values->val; + demo1->interfaceFlags = NEXTSETTING; } - D_8011D3A0.w = camera->unk_00.demo1.unk_00; - unk_04 = &camera->unk_00.demo1.unk_04; - relativeToPlayer = &camera->relativeToPlayer; - eyeNext = &camera->eyeNext; - at = &camera->at; - eye = &camera->eye; - switch (camera->unk_15E) { + sCameraInterfaceFlags = demo1->interfaceFlags; + + switch (camera->animState) { case 0: - unk_04->unk_04 = 0; - unk_04->unk_00 = 0.0f; - camera->unk_15E++; + // initalize camera state + anim->keyframe = 0; + anim->curFrame = 0.0f; + camera->animState++; // absolute / relative - t = *relativeToPlayer == 0 ? "絶対" : "相対"; - osSyncPrintf("\x1b[1m%06u:\x1b[m camera: spline demo: start %s \n", camera->globalCtx->state.frames, t); + osSyncPrintf(VT_SGR("1") "%06u:" VT_RST " camera: spline demo: start %s \n", + camera->globalCtx->state.frames, *relativeToPlayer == 0 ? "絶対" : "相対"); + if (PREG(93)) { - Camera_DebugPrintSplineArray("CENTER", 5, sp84); - Camera_DebugPrintSplineArray(" EYE", 5, sp80); + Camera_DebugPrintSplineArray("CENTER", 5, csAtPoints); + Camera_DebugPrintSplineArray(" EYE", 5, csEyePoints); } case 1: // follow CutsceneCameraPoints. function returns 1 if at the end. - // unk_15E appears to be some kind of state of the cutscene? 0 is init, 1 is update, anything else is stop. - if (func_800BB2B4(&sp5C, &sp4C, &camera->fov, sp80, &unk_04->unk_04, unk_04) || - func_800BB2B4(&sp50, &sp4C, &camera->fov, sp84, &unk_04->unk_04, unk_04)) { - camera->unk_15E++; + if (func_800BB2B4(&csEyeUpdate, &newRoll, cameraFOV, csEyePoints, &anim->keyframe, &anim->curFrame) || + func_800BB2B4(&csAtUpdate, &newRoll, cameraFOV, csAtPoints, &anim->keyframe, &anim->curFrame)) { + camera->animState++; } if (*relativeToPlayer) { + // if the camera is set to be relative to the player, move the interpolated points + // relative to the player's position if (camera->player != NULL && camera->player->actor.update != NULL) { - func_8002EF14(&sp68, &camera->player->actor); - func_80054478(&sp68, &sp5C, eyeNext); - func_80054478(&sp68, &sp50, at); + func_8002EF14(&curPlayerPosRot, &camera->player->actor); + Camera_RotateAroundPoint(&curPlayerPosRot, &csEyeUpdate, eyeNext); + Camera_RotateAroundPoint(&curPlayerPosRot, &csAtUpdate, at); } else { - osSyncPrintf("\x1b[41;37mcamera: spline demo: owner dead\n\x1b[m"); + osSyncPrintf(VT_COL(RED, WHITE) "camera: spline demo: owner dead\n" VT_RST); } } else { - Camera_Vec3fCopy(&sp5C, eyeNext); - Camera_Vec3fCopy(&sp50, at); + // simply copy the interpolated values to the eye and at + Camera_Vec3fCopy(&csEyeUpdate, eyeNext); + Camera_Vec3fCopy(&csAtUpdate, at); } *eye = *eyeNext; - camera->roll = sp4C * 256.0f; + camera->roll = newRoll * 256.0f; camera->dist = OLib_Vec3fDist(at, eye); break; } - return 1; + return true; } -#else -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Demo1.s") -#endif s32 Camera_Demo2(Camera* camera) { - return func_80047394(camera); + return Camera_Noop(camera); } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Demo3.s") - -s32 Camera_Demo4(Camera* camera) { - return func_80047394(camera); -} - -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Demo5.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Demo6.s") - -void Camera_Demo7(Camera* camera) { - if (camera->unk_15E == 0) { - camera->unk_14C &= ~4; - camera->unk_14C |= 0x1000; - camera->unk_15E++; - } -} - -s32 Camera_Demo8(Camera* camera) { - return func_80047394(camera); -} - -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Demo9.s") - -s32 Camera_Demo0(Camera* camera) { - return func_80047394(camera); -} - -s32 Camera_Special0(Camera* camera) { +/** + * Opening large chests. + * The camera position will be at a fixed point, and rotate around at different intervals. + * The direction, and initial position is dependent on when the camera was started. + */ +s32 Camera_Demo3(Camera* camera) { + Vec3f* eye = &camera->eye; + Vec3f* at = &camera->at; + Vec3f* eyeNext = &camera->eyeNext; + PosRot* camPlayerPosRot = &camera->playerPosRot; + VecSph eyeAtOffset; + VecSph eyeOffset; + VecSph atOffset; + Vec3f sp74; + Vec3f sp68; + Vec3f sp5C; + f32 temp_f0; s32 pad; - CameraModeValue* val; - Vec3f* playerPosRot; + u8 skipUpdateEye; + f32 yOffset; + s16 angle; + Demo3* demo3 = (Demo3*)camera->paramData; + Demo3Anim* anim = &demo3->anim; + s32 pad2; - if (camera->unk_15E == 0 || camera->unk_15E == 0xA || camera->unk_15E == 0x14 || QREG(0)) { - val = sCameraSettings[camera->setting].cameraModes[camera->mode].values; - camera->unk_00.spec0.unk_00 = val->val * 0.01f; - val++; - camera->unk_00.spec0.unk_04 = val->val; + skipUpdateEye = false; + yOffset = Player_GetHeight(camera->player); + camera->unk_14C &= ~0x10; + + if (RELOAD_PARAMS) { + CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + demo3->fov = NEXTSETTING; + demo3->unk_04 = NEXTSETTING; // unused. + demo3->interfaceFlags = NEXTSETTING; } - if (QREG(0)) { + if (R_RELOAD_CAM_PARAMS) { Camera_CopyPREGToModeValues(camera); } - D_8011D3A0.w = camera->unk_00.spec0.unk_04; + OLib_Vec3fDiffToVecSphGeo(&eyeAtOffset, at, eye); - if (camera->unk_15E == 0) { - camera->unk_15E++; + sCameraInterfaceFlags = demo3->interfaceFlags; + + switch (camera->animState) { + case 0: + camera->unk_14C &= ~(0x8 | 0x4); + func_80043B60(camera); + camera->fov = demo3->fov; + camera->roll = anim->animFrame = 0; + anim->initialAt = camPlayerPosRot->pos; + if (camera->playerGroundY != BGCHECK_Y_MIN) { + anim->initialAt.y = camera->playerGroundY; + } + angle = camPlayerPosRot->rot.y; + sp68.x = anim->initialAt.x + (Math_Sins(angle) * 40.0f); + sp68.y = anim->initialAt.y + 40.0f; + sp68.z = anim->initialAt.z + (Math_Coss(angle) * 40.0f); + if (camera->globalCtx->state.frames & 1) { + angle -= 0x3FFF; + anim->yawDir = 1; + } else { + angle += 0x3FFF; + anim->yawDir = -1; + } + sp74.x = sp68.x + (D_8011D658[1].r * Math_Sins(angle)); + sp74.y = anim->initialAt.y + 5.0f; + sp74.z = sp68.z + (D_8011D658[1].r * Math_Coss(angle)); + if (Camera_BGCheck(camera, &sp68, &sp74)) { + anim->yawDir = -anim->yawDir; + } + OLib_Vec3fToVecSphGeo(&atOffset, &D_8011D678[0]); + atOffset.yaw += camPlayerPosRot->rot.y; + Camera_Vec3fVecSphGeoAdd(at, &anim->initialAt, &atOffset); + eyeOffset.r = D_8011D658[0].r; + eyeOffset.pitch = D_8011D658[0].pitch; + eyeOffset.yaw = (D_8011D658[0].yaw * anim->yawDir) + camPlayerPosRot->rot.y; + anim->unk_0C = 1.0f; + break; + case 1: + temp_f0 = (anim->animFrame - 2) * (1.0f / 146.0f); + + sp5C.x = F32_LERPIMP(D_8011D678[0].x, D_8011D678[1].x, temp_f0); + sp5C.y = F32_LERPIMP(D_8011D678[0].y, D_8011D678[1].y, temp_f0); + sp5C.z = F32_LERPIMP(D_8011D678[0].z, D_8011D678[1].z, temp_f0); + + OLib_Vec3fToVecSphGeo(&atOffset, &sp5C); + atOffset.yaw = (atOffset.yaw * anim->yawDir) + camPlayerPosRot->rot.y; + Camera_Vec3fVecSphGeoAdd(at, &anim->initialAt, &atOffset); + + atOffset.r = F32_LERPIMP(D_8011D658[0].r, D_8011D658[1].r, temp_f0); + atOffset.pitch = BINANG_LERPIMP(D_8011D658[0].pitch, D_8011D658[1].pitch, temp_f0); + atOffset.yaw = BINANG_LERPIMP(D_8011D658[0].yaw, D_8011D658[1].yaw, temp_f0); + + eyeOffset.r = atOffset.r; + eyeOffset.pitch = atOffset.pitch; + eyeOffset.yaw = (atOffset.yaw * anim->yawDir) + camPlayerPosRot->rot.y; + + anim->unk_0C -= (1.0f / 365.0f); + break; + case 2: + temp_f0 = (anim->animFrame - 0x94) * 0.1f; + + sp5C.x = F32_LERPIMP(D_8011D678[1].x, D_8011D678[2].x, temp_f0); + sp5C.y = F32_LERPIMP((D_8011D678[1].y - yOffset), D_8011D678[2].y, temp_f0); + sp5C.y += yOffset; + sp5C.z = F32_LERPIMP(D_8011D678[1].z, D_8011D678[2].z, temp_f0); + + OLib_Vec3fToVecSphGeo(&atOffset, &sp5C); + atOffset.yaw = (atOffset.yaw * anim->yawDir) + camPlayerPosRot->rot.y; + Camera_Vec3fVecSphGeoAdd(at, &anim->initialAt, &atOffset); + + atOffset.r = F32_LERPIMP(D_8011D658[1].r, D_8011D658[2].r, temp_f0); + atOffset.pitch = BINANG_LERPIMP(D_8011D658[1].pitch, D_8011D658[2].pitch, temp_f0); + atOffset.yaw = BINANG_LERPIMP(D_8011D658[1].yaw, D_8011D658[2].yaw, temp_f0); + + eyeOffset.r = atOffset.r; + eyeOffset.pitch = atOffset.pitch; + eyeOffset.yaw = (atOffset.yaw * anim->yawDir) + camPlayerPosRot->rot.y; + anim->unk_0C -= 0.04f; + break; + case 3: + temp_f0 = (anim->animFrame - 0x9F) * (1.0f / 9.0f); + + sp5C.x = F32_LERPIMP(D_8011D678[2].x, D_8011D678[3].x, temp_f0); + sp5C.y = F32_LERPIMP(D_8011D678[2].y, D_8011D678[3].y, temp_f0); + sp5C.y += yOffset; + sp5C.z = F32_LERPIMP(D_8011D678[2].z, D_8011D678[3].z, temp_f0); + + OLib_Vec3fToVecSphGeo(&atOffset, &sp5C); + atOffset.yaw = (atOffset.yaw * anim->yawDir) + camPlayerPosRot->rot.y; + Camera_Vec3fVecSphGeoAdd(at, &anim->initialAt, &atOffset); + + atOffset.r = F32_LERPIMP(D_8011D658[2].r, D_8011D658[3].r, temp_f0); + atOffset.pitch = BINANG_LERPIMP(D_8011D658[2].pitch, D_8011D658[3].pitch, temp_f0); + atOffset.yaw = BINANG_LERPIMP(D_8011D658[2].yaw, D_8011D658[3].yaw, temp_f0); + + eyeOffset.r = atOffset.r; + eyeOffset.pitch = atOffset.pitch; + eyeOffset.yaw = (atOffset.yaw * anim->yawDir) + camPlayerPosRot->rot.y; + anim->unk_0C += (4.0f / 45.0f); + break; + case 30: + camera->unk_14C |= 0x400; + if (camera->unk_14C & 8) { + camera->animState = 4; + } + case 10: + case 20: + skipUpdateEye = true; + break; + case 4: + eyeOffset.r = 80.0f; + eyeOffset.pitch = 0; + eyeOffset.yaw = eyeAtOffset.yaw; + anim->unk_0C = 0.1f; + sCameraInterfaceFlags = 0x3400; + + if (!((anim->animFrame < 0 || camera->xzSpeed > 0.001f || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_A) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_B) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_CLEFT) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_CDOWN) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_CUP) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_CRIGHT) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_R) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_Z)) && + camera->unk_14C & 8)) { + goto skipeyeUpdate; + } + + default: + camera->unk_14C |= 0x14; + camera->unk_14C &= ~8; + if (camera->prevCamDataIdx < 0) { + Camera_ChangeSettingFlags(camera, camera->prevSetting, 2); + } else { + Camera_ChangeDataIdx(camera, camera->prevCamDataIdx); + camera->prevCamDataIdx = -1; + } + sCameraInterfaceFlags = 0; + skipeyeUpdate: + skipUpdateEye = 1; + break; } + + anim->animFrame++; + + if (anim->animFrame == 1) { + camera->animState = 0xA; + } else if (anim->animFrame == 2) { + camera->animState = 0x1; + } else if (anim->animFrame == 0x94) { + camera->animState = 2; + } else if (anim->animFrame == 0x9E) { + camera->animState = 0x14; + } else if (anim->animFrame == 0x9F) { + camera->animState = 3; + } else if (anim->animFrame == 0xA8) { + camera->animState = 0x1E; + } else if (anim->animFrame == 0xE4) { + camera->animState = 4; + } + + if (!skipUpdateEye) { + eyeOffset.r = Camera_LERPCeilF(eyeOffset.r, eyeAtOffset.r, anim->unk_0C, 2.0f); + eyeOffset.pitch = Camera_LERPCeilS(eyeOffset.pitch, eyeAtOffset.pitch, anim->unk_0C, 0xA); + eyeOffset.yaw = Camera_LERPCeilS(eyeOffset.yaw, eyeAtOffset.yaw, anim->unk_0C, 0xA); + Camera_Vec3fVecSphGeoAdd(eyeNext, at, &eyeOffset); + *eye = *eyeNext; + } + + camera->dist = OLib_Vec3fDist(at, eye); + camera->atLERPStepScale = 0.1f; + camera->posOffset.x = camera->at.x - camPlayerPosRot->pos.x; + camera->posOffset.y = camera->at.y - camPlayerPosRot->pos.y; + camera->posOffset.z = camera->at.z - camPlayerPosRot->pos.z; + return true; +} + +s32 Camera_Demo4(Camera* camera) { + return Camera_Noop(camera); +} + +/** + * Sets up a cutscene for Camera_Uniq9 + */ +s32 Camera_Demo5(Camera* camera) { + f32 eyeTargetDist; + f32 sp90; + VecSph playerTargetGeo; + VecSph eyePlayerGeo; + VecSph sp78; + PosRot playerPosRot2; + PosRot targetPosRot2; + Player* player; + s16 sp4A; + s32 pad; + s32 temp_v0; + s16 t; + s32 pad2; + + func_8002EEE4(&playerPosRot2, &camera->player->actor); + player = camera->player; + sCameraInterfaceFlags = 0x3200; + if ((camera->target == NULL) || (camera->target->update == NULL)) { + if (camera->target == NULL) { + osSyncPrintf(VT_COL(YELLOW, BLACK) "camera: warning: attention: target is not valid, stop!\n" VT_RST); + } + camera->target = NULL; + return true; + } + func_8002EEE4(&camera->targetPosRot, camera->target); + OLib_Vec3fDiffToVecSphGeo(&playerTargetGeo, &camera->targetPosRot.pos, &camera->playerPosRot.pos); + D_8011D3AC = camera->target->type; + func_8002F374(camera->globalCtx, camera->target, &sp78.yaw, &sp78.pitch); + eyeTargetDist = OLib_Vec3fDist(&camera->targetPosRot.pos, &camera->eye); + OLib_Vec3fDiffToVecSphGeo(&eyePlayerGeo, &playerPosRot2.pos, &camera->eyeNext); + sp4A = eyePlayerGeo.yaw - playerTargetGeo.yaw; + if (camera->target->type == ACTORTYPE_PLAYER) { + // camera is targeting a(the) player actor + if (eyePlayerGeo.r > 30.0f) { + D_8011D6AC[1].timerInit = camera->timer - 1; + D_8011D6AC[1].atTargetInit.z = Math_Rand_ZeroOne() * 10.0f; + D_8011D6AC[1].eyeTargetInit.x = Math_Rand_ZeroOne() * 10.0f; + ONEPOINTDEMO->keyFrames = D_8011D6AC; + ONEPOINTDEMO->keyFrameCnt = ARRAY_COUNT(D_8011D6AC); + if (camera->parentCamIdx != 0) { + ONEPOINTDEMO->keyFrameCnt--; + } else { + camera->timer += D_8011D6AC[2].timerInit; + } + } else { + D_8011D724[1].eyeTargetInit.x = Math_Rand_ZeroOne() * 10.0f; + D_8011D724[1].timerInit = camera->timer - 1; + ONEPOINTDEMO->keyFrames = D_8011D724; + ONEPOINTDEMO->keyFrameCnt = ARRAY_COUNT(D_8011D724); + if (camera->parentCamIdx != 0) { + ONEPOINTDEMO->keyFrameCnt--; + } else { + camera->timer += D_8011D724[2].timerInit; + } + } + } else if (playerTargetGeo.r < 30.0f) { + // distance between player and target is less than 30 units. + ONEPOINTDEMO->keyFrames = D_8011D79C; + ONEPOINTDEMO->keyFrameCnt = ARRAY_COUNT(D_8011D79C); + if ((sp78.yaw < 0x15) || (sp78.yaw >= 0x12C) || (sp78.pitch < 0x29) || (sp78.pitch >= 0xC8)) { + D_8011D79C[0].actionFlags = 0x41; + D_8011D79C[0].atTargetInit.y = -30.0f; + D_8011D79C[0].atTargetInit.x = 0.0f; + D_8011D79C[0].atTargetInit.z = 0.0f; + D_8011D79C[0].eyeTargetInit.y = 0.0f; + D_8011D79C[0].eyeTargetInit.x = 10.0f; + D_8011D79C[0].eyeTargetInit.z = -50.0f; + } + + D_8011D79C[1].timerInit = camera->timer - 1; + + if (camera->parentCamIdx != 0) { + ONEPOINTDEMO->keyFrameCnt -= 2; + } else { + camera->timer += D_8011D79C[2].timerInit + D_8011D79C[3].timerInit; + } + } else if (eyeTargetDist < 300.0f && eyePlayerGeo.r < 30.0f) { + // distance from the camera's current positon and the target is less than 300 units + // and the distance fromthe camera's current position to the player is less than 30 units + D_8011D83C[0].timerInit = camera->timer; + ONEPOINTDEMO->keyFrames = D_8011D83C; + ONEPOINTDEMO->keyFrameCnt = ARRAY_COUNT(D_8011D83C); + if (camera->parentCamIdx != 0) { + ONEPOINTDEMO->keyFrameCnt--; + } else { + camera->timer += D_8011D83C[1].timerInit; + } + } else if (eyeTargetDist < 700.0f && ABS(sp4A) < 0x36B0) { + // The distance between the camera's current position and the target is less than 700 units + // and the angle between the camera's position and the player, and the player to the target + // is less than ~76.9 degrees + if (sp78.yaw >= 0x15 && sp78.yaw < 0x12C && sp78.pitch >= 0x29 && sp78.pitch < 0xC8 && eyePlayerGeo.r > 30.0f) { + D_8011D88C[0].timerInit = camera->timer; + ONEPOINTDEMO->keyFrames = D_8011D88C; + ONEPOINTDEMO->keyFrameCnt = ARRAY_COUNT(D_8011D88C); + if (camera->parentCamIdx != 0) { + ONEPOINTDEMO->keyFrameCnt--; + } else { + camera->timer += D_8011D88C[1].timerInit; + } + } else { + D_8011D8DC[0].atTargetInit.z = eyeTargetDist * 0.6f; + D_8011D8DC[0].eyeTargetInit.z = eyeTargetDist + 50.0f; + D_8011D8DC[0].eyeTargetInit.x = Math_Rand_ZeroOne() * 10.0f; + if (BINANG_SUB(eyePlayerGeo.yaw, playerTargetGeo.yaw) > 0) { + D_8011D8DC[0].atTargetInit.x = -D_8011D8DC[0].atTargetInit.x; + D_8011D8DC[0].eyeTargetInit.x = -D_8011D8DC[0].eyeTargetInit.x; + D_8011D8DC[0].rollTargetInit = -D_8011D8DC[0].rollTargetInit; + } + D_8011D8DC[0].timerInit = camera->timer; + D_8011D8DC[1].timerInit = (s16)(eyeTargetDist * 0.005f) + 8; + ONEPOINTDEMO->keyFrames = D_8011D8DC; + ONEPOINTDEMO->keyFrameCnt = ARRAY_COUNT(D_8011D8DC); + if (camera->parentCamIdx != 0) { + ONEPOINTDEMO->keyFrameCnt -= 2; + } else { + camera->timer += D_8011D8DC[1].timerInit + D_8011D8DC[2].timerInit; + } + } + } else if (camera->target->type == ACTORTYPE_DOOR) { + // the target is a door. + D_8011D954[0].timerInit = camera->timer - 5; + sp4A = 0; + if (!func_800C0D34(camera->globalCtx, camera->target, &sp4A)) { + osSyncPrintf(VT_COL(YELLOW, BLACK) "camera: attention demo: this door is dummy door!\n" VT_RST); + if (ABS(playerTargetGeo.yaw - camera->target->shape.rot.y) >= 0x4000) { + sp4A = camera->target->shape.rot.y; + } else { + sp4A = BINANG_ROT180(camera->target->shape.rot.y); + } + } + + D_8011D954[0].atTargetInit.y = D_8011D954[0].eyeTargetInit.y = D_8011D954[1].atTargetInit.y = + camera->target->shape.rot.y == sp4A ? 180.0f : 0.0f; + sp90 = (BINANG_SUB(playerTargetGeo.yaw, sp4A) < 0 ? 20.0f : -20.0f) * Math_Rand_ZeroOne(); + D_8011D954[0].eyeTargetInit.y = D_8011D954->eyeTargetInit.y + sp90; + temp_v0 = Math_Rand_ZeroOne() * (sp90 * -0.2f); + D_8011D954[1].rollTargetInit = temp_v0; + D_8011D954[0].rollTargetInit = temp_v0; + func_8002EEE4(&targetPosRot2, camera->target); + targetPosRot2.pos.x += 50.0f * Math_Sins(BINANG_ROT180(sp4A)); + targetPosRot2.pos.z += 50.0f * Math_Coss(BINANG_ROT180(sp4A)); + if (Camera_BGCheck(camera, &playerPosRot2.pos, &targetPosRot2.pos)) { + D_8011D954[1].actionFlags = 0xC1; + D_8011D954[2].actionFlags = 0x8F; + } else { + D_8011D954[2].timerInit = (s16)(eyeTargetDist * 0.004f) + 6; + } + ONEPOINTDEMO->keyFrames = D_8011D954; + ONEPOINTDEMO->keyFrameCnt = ARRAY_COUNT(D_8011D954); + if (camera->parentCamIdx != 0) { + ONEPOINTDEMO->keyFrameCnt -= 2; + } else { + camera->timer += D_8011D954[2].timerInit + D_8011D954[3].timerInit; + } + } else { + if (playerTargetGeo.r < 200.0f) { + D_8011D9F4[0].eyeTargetInit.z = playerTargetGeo.r; + D_8011D9F4[0].atTargetInit.z = playerTargetGeo.r * 0.25f; + } + if (playerTargetGeo.r < 400.0f) { + D_8011D9F4[0].eyeTargetInit.x = Math_Rand_ZeroOne() * 25.0f; + } + Player_GetHeight(camera->player); + D_8011D9F4[0].timerInit = camera->timer; + func_8002EEE4(&targetPosRot2, camera->target); + if (Camera_BGCheck(camera, &playerPosRot2.pos, &targetPosRot2.pos)) { + D_8011D9F4[1].timerInit = 4; + D_8011D9F4[1].actionFlags = 0x8F; + } else { + t = eyeTargetDist * 0.005f; + D_8011D9F4[1].timerInit = t + 8; + } + ONEPOINTDEMO->keyFrames = D_8011D9F4; + ONEPOINTDEMO->keyFrameCnt = ARRAY_COUNT(D_8011D9F4); + if (camera->parentCamIdx != 0) { + if (camera->globalCtx->state.frames & 1) { + D_8011D9F4[0].rollTargetInit = -D_8011D9F4[0].rollTargetInit; + D_8011D9F4[1].rollTargetInit = -D_8011D9F4[1].rollTargetInit; + } + ONEPOINTDEMO->keyFrameCnt -= 2; + } else { + camera->timer += D_8011D9F4[1].timerInit + D_8011D9F4[2].timerInit; + D_8011D9F4[0].rollTargetInit = D_8011D9F4[1].rollTargetInit = 0; + } + } + + pad = sDemo5PrevSfxFrame - camera->globalCtx->state.frames; + if ((pad >= 0x33) || (pad < -0x32)) { + func_80078884(camera->data1); + } + + sDemo5PrevSfxFrame = camera->globalCtx->state.frames; + + if (camera->player->stateFlags1 & 0x8000000 && (player->currentBoots != PLAYER_BOOTS_IRON)) { + // swimming, and not iron boots + player->stateFlags1 |= 0x20000000; + // env frozen + player->actor.freezeTimer = camera->timer; + } else { + sp4A = playerPosRot2.rot.y - playerTargetGeo.yaw; + if (camera->target->type == ACTORTYPE_PLAYER) { + pad = camera->globalCtx->state.frames - sDemo5PrevAction12Frame; + if (player->stateFlags1 & 0x800) { + // holding object over head. + func_8002DF54(camera->globalCtx, camera->target, 8); + } else if (ABS(pad) > 3000) { + func_8002DF54(camera->globalCtx, camera->target, 12); + } else { + func_8002DF54(camera->globalCtx, camera->target, 69); + } + } else { + func_8002DF54(camera->globalCtx, camera->target, 1); + } + } + + sDemo5PrevAction12Frame = camera->globalCtx->state.frames; + Camera_ChangeSettingFlags(camera, CAM_SET_DEMOC, (4 | 1)); + Camera_Unique9(camera); + return true; +} + +/** + * Used in Forest Temple when poes are defeated, follows the flames to the torches. + * Fixed position, rotates to follow the target + */ +s32 Camera_Demo6(Camera* camera) { + Camera* cam0; + Demo6Anim* anim = (Demo6Anim*)&((Demo6*)camera->paramData)->anim; + Vec3f* eyeNext = &camera->eyeNext; + CameraModeValue* values; + VecSph eyeOffset; + Actor* camFocus; + PosRot focusPosRot; + s16 stateTimers[4]; + Vec3f* at = &camera->at; + + cam0 = Gameplay_GetCamera(camera->globalCtx, 0); + camFocus = camera->target; + stateTimers[1] = 0x37; + stateTimers[2] = 0x46; + stateTimers[3] = 0x5A; + + if (RELOAD_PARAMS) { + values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + ((Demo6*)camera->paramData)->interfaceFlags = NEXTSETTING; + } + + if (R_RELOAD_CAM_PARAMS) { + Camera_CopyPREGToModeValues(camera); + } + + switch (camera->animState) { + case 0: + // initalizes the camera state. + anim->animTimer = 0; + camera->fov = 60.0f; + func_8002EF14(&focusPosRot, camFocus); + camera->at.x = focusPosRot.pos.x; + camera->at.y = focusPosRot.pos.y + 20.0f; + camera->at.z = focusPosRot.pos.z; + eyeOffset.r = 200.0f; + // 0x7D0 ~10.99 degrees + eyeOffset.yaw = Camera_XZAngle(&focusPosRot.pos, &cam0->playerPosRot.pos) + 0x7D0; + // -0x3E8 ~5.49 degrees + eyeOffset.pitch = -0x3E8; + Camera_Vec3fVecSphGeoAdd(eyeNext, at, &eyeOffset); + camera->eye = *eyeNext; + camera->animState++; + case 1: + if (stateTimers[camera->animState] < anim->animTimer) { + func_8002DF54(camera->globalCtx, &camera->player->actor, 8); + func_8002EF14(&focusPosRot, camFocus); + anim->atTarget.x = focusPosRot.pos.x; + anim->atTarget.y = focusPosRot.pos.y - 20.0f; + anim->atTarget.z = focusPosRot.pos.z; + camera->animState++; + } else { + break; + } + case 2: + Camera_LERPCeilVec3f(&anim->atTarget, at, 0.1f, 0.1f, 8.0f); + if (stateTimers[camera->animState] < anim->animTimer) { + camera->animState++; + } else { + break; + } + case 3: + camera->fov = Camera_LERPCeilF(50.0f, camera->fov, 0.2f, 0.01f); + if (stateTimers[camera->animState] < anim->animTimer) { + camera->timer = 0; + return true; + } + break; + } + + anim->animTimer++; + func_8002EF14(&focusPosRot, camFocus); + + return true; +} + +s32 Camera_Demo7(Camera* camera) { + if (camera->animState == 0) { + camera->unk_14C &= ~4; + camera->unk_14C |= 0x1000; + camera->animState++; + } + // @bug doesn't return +} + +s32 Camera_Demo8(Camera* camera) { + return Camera_Noop(camera); +} + +/** + * Camera follows points specified by demo9.atPoints and demo9.eyePoints, allows finer control + * over the final eye and at points than Camera_Demo1, by allowing the interpolated at and eye points + * to be relative to the main camera's player, the current camera's player, or the main camera's target + */ +s32 Camera_Demo9(Camera* camera) { + s32 pad; + s32 finishAction; + s16 onePointParam; + Demo9OnePointDemo* demo9OnePoint = (Demo9OnePointDemo*)camera->paramData; + Vec3f csEyeUpdate; + Vec3f csAtUpdate; + Vec3f newEye; + Vec3f newAt; + f32 newRoll; + CameraModeValue* values; + Camera* cam0; + Vec3f* eye = &camera->eye; + PosRot* cam0PlayerPosRot; + PosRot focusPosRot; + s32 pad3; + Vec3f* eyeNext = &camera->eyeNext; + Demo9* demo9 = &demo9OnePoint->demo9; + Vec3f* at = &camera->at; + f32* camFOV = &camera->fov; + Demo9Anim* anim = &demo9->anim; + + cam0 = Gameplay_GetCamera(camera->globalCtx, 0); + cam0PlayerPosRot = &cam0->playerPosRot; + if (RELOAD_PARAMS) { + values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + demo9->interfaceFlags = NEXTSETTING; + } + + if (R_RELOAD_CAM_PARAMS) { + Camera_CopyPREGToModeValues(camera); + } + + sCameraInterfaceFlags = demo9->interfaceFlags; + + switch (camera->animState) { + case 0: + // initalize the camera state + anim->keyframe = 0; + anim->finishAction = 0; + anim->curFrame = 0.0f; + camera->animState++; + anim->doLERPAt = false; + finishAction = demo9OnePoint->onePointDemo.actionParameters & 0xF000; + if (finishAction != 0) { + anim->finishAction = finishAction; + + // Clear finish parameters + demo9OnePoint->onePointDemo.actionParameters &= 0xFFF; + } + anim->animTimer = demo9OnePoint->onePointDemo.initTimer; + case 1: + // Run the camera state + if (anim->animTimer > 0) { + // if the animation timer is still running, run the demo logic + // if it is not, then the case will fallthrough to the finish logic. + + // Run the at and eye cs interpoloation functions, if either of them return 1 (that no more points + // exist) change the animation state to 2 (standby) + if (func_800BB2B4(&csEyeUpdate, &newRoll, camFOV, demo9OnePoint->onePointDemo.eyePoints, + &anim->keyframe, &anim->curFrame) != 0 || + func_800BB2B4(&csAtUpdate, &newRoll, camFOV, demo9OnePoint->onePointDemo.atPoints, &anim->keyframe, + &anim->curFrame) != 0) { + camera->animState = 2; + } + + if (demo9OnePoint->onePointDemo.actionParameters == 1) { + // rotate around cam0's player + Camera_RotateAroundPoint(cam0PlayerPosRot, &csEyeUpdate, &newEye); + Camera_RotateAroundPoint(cam0PlayerPosRot, &csAtUpdate, &newAt); + } else if (demo9OnePoint->onePointDemo.actionParameters == 4) { + // rotate around the current camera's player + func_8002EF14(&focusPosRot, &camera->player->actor); + Camera_RotateAroundPoint(&focusPosRot, &csEyeUpdate, &newEye); + Camera_RotateAroundPoint(&focusPosRot, &csAtUpdate, &newAt); + } else if (demo9OnePoint->onePointDemo.actionParameters == 8) { + // rotate around the current camera's target + if (camera->target != NULL && camera->target->update != NULL) { + func_8002EF14(&focusPosRot, camera->target); + Camera_RotateAroundPoint(&focusPosRot, &csEyeUpdate, &newEye); + Camera_RotateAroundPoint(&focusPosRot, &csAtUpdate, &newAt); + } else { + camera->target = NULL; + newEye = *eye; + newAt = *at; + } + } else { + // simple copy + Camera_Vec3fCopy(&csEyeUpdate, &newEye); + Camera_Vec3fCopy(&csAtUpdate, &newAt); + } + + *eyeNext = newEye; + *eye = *eyeNext; + if (anim->doLERPAt) { + Camera_LERPCeilVec3f(&newAt, at, 0.5f, 0.5f, 0.1f); + } else { + *at = newAt; + anim->doLERPAt = true; + } + camera->roll = newRoll * 256.0f; + anim->animTimer--; + break; + } + case 3: + // the cs is finished, decide the next action + camera->timer = 0; + if (anim->finishAction != 0) { + if (anim->finishAction != 0x1000) { + if (anim->finishAction == 0x2000) { + // finish action = 0x2000, run OnePointDemo 0x3FC (Dramatic Return to Link) + onePointParam = demo9OnePoint->onePointDemo.initTimer < 0x32 + ? 5 + : demo9OnePoint->onePointDemo.initTimer / 5; + func_800800F8(camera->globalCtx, 0x3FC, onePointParam, NULL, camera->parentCamIdx); + } + } else { + // finish action = 0x1000, copy the current camera's values to the + // default camera. + Camera_Copy(cam0, camera); + } + } + break; + case 2: + // standby while the timer finishes, change the animState to finish when + // the timer runs out. + anim->animTimer--; + if (anim->animTimer < 0) { + camera->animState++; + } + break; + case 4: + // do nothing. + break; + } + + return true; +} + +s32 Camera_Demo0(Camera* camera) { + return Camera_Noop(camera); +} + +s32 Camera_Special0(Camera* camera) { + PosRot* playerPosRot = &camera->playerPosRot; + Special0* spec0 = (Special0*)camera->paramData; + + if (RELOAD_PARAMS) { + CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + spec0->lerpAtScale = NEXTPCT; + spec0->interfaceFlags = NEXTSETTING; + } + + if (R_RELOAD_CAM_PARAMS) { + Camera_CopyPREGToModeValues(camera); + } + + sCameraInterfaceFlags = spec0->interfaceFlags; + + if (camera->animState == 0) { + camera->animState++; + } + if ((camera->target == NULL) || (camera->target->update == NULL)) { if (camera->target == NULL) { osSyncPrintf(VT_COL(YELLOW, BLACK) "camera: warning: circle: target is not valid, stop!\n" VT_RST); @@ -2977,23 +6302,22 @@ s32 Camera_Special0(Camera* camera) { } func_8002EEE4(&camera->targetPosRot, camera->target); - func_80043A3C(&camera->targetPosRot, &camera->at, camera->unk_00.f, camera->unk_00.f, 0.1f); - if (1) { - playerPosRot = &camera->playerPosRot.pos; - } - camera->unk_E4.x = camera->at.x - playerPosRot->x; - camera->unk_E4.y = camera->at.y - playerPosRot->y; - camera->unk_E4.z = camera->at.z - playerPosRot->z; + Camera_LERPCeilVec3f(&camera->targetPosRot.pos, &camera->at, spec0->lerpAtScale, spec0->lerpAtScale, 0.1f); + + camera->posOffset.x = camera->at.x - playerPosRot->pos.x; + camera->posOffset.y = camera->at.y - playerPosRot->pos.y; + camera->posOffset.z = camera->at.z - playerPosRot->pos.z; + camera->dist = OLib_Vec3fDist(&camera->at, &camera->eye); - camera->unk_D8 = 0.0f; - if (camera->unk_160 > 0) { - camera->unk_160--; + camera->xzSpeed = 0.0f; + if (camera->timer > 0) { + camera->timer--; } return true; } s32 Camera_Special1(Camera* camera) { - return func_80047394(camera); + return Camera_Noop(camera); } s32 Camera_Special2(Camera* camera) { @@ -3001,69 +6325,450 @@ s32 Camera_Special2(Camera* camera) { } s32 Camera_Special3(Camera* camera) { - return func_80047394(camera); + return Camera_Noop(camera); } -#ifdef NON_MATCHING s32 Camera_Special4(Camera* camera) { - PosRot sp3C; - s32 temp_v0; + PosRot curTargetPosRot; s16 sp3A; - s16* unk_160 = &camera->unk_160; + s16* timer = &camera->timer; + Special4* spec4 = (Special4*)camera->paramData; - if (camera->unk_15E == 0) { - D_8011D3A0.w = 0x3200; - camera->unk_15E++; + if (camera->animState == 0) { + sCameraInterfaceFlags = 0x3200; camera->fov = 40.0f; - camera->unk_00.sh[0] = *unk_160; + camera->animState++; + spec4->initalTimer = camera->timer; } - camera->fov = func_8004389C(80.0f, camera->fov, 1.0f / *unk_160, 0.1f); - if ((camera->unk_00.sh[0] - *unk_160) < 0xF) { - *unk_160 = *unk_160 - 1; - return 0; + + camera->fov = Camera_LERPCeilF(80.0f, camera->fov, 1.0f / *timer, 0.1f); + if ((spec4->initalTimer - *timer) < 0xF) { + (*timer)--; + return false; + } else { + camera->roll = -0x1F4; + func_8002EF14(&curTargetPosRot, camera->target); + + camera->at = curTargetPosRot.pos; + camera->at.y -= 150.0f; + + // 0x3E8 ~ 5.49 degrees + sp3A = BINANG_ROT180(curTargetPosRot.rot.y) + 0x3E8; + camera->eye.x = camera->eyeNext.x = (Math_Sins(sp3A) * 780.0f) + camera->at.x; + camera->eyeNext.y = camera->at.y; + camera->eye.z = camera->eyeNext.z = (Math_Coss(sp3A) * 780.0f) + camera->at.z; + camera->eye.y = curTargetPosRot.pos.y; + camera->eye.y = Camera_GetFloorY(camera, &camera->eye) + 20.0f; + (*timer)--; + return true; } - camera->roll = -0x1F4; - func_8002EF14(&sp3C, camera->target); - camera->at = sp3C.pos; - camera->at.y -= 150.0f; - temp_v0 = (s16)(sp3C.rot.y - 0x7FFF) + 0x3E8; - sp3A = temp_v0; - camera->eyeNext.y = (f32)camera->at.y; - camera->eye.x = camera->eyeNext.x = (Math_Sins(temp_v0) * 780.0f) + camera->at.x; - camera->eye.z = camera->eyeNext.z = (Math_Coss(sp3A) * 780.0f) + camera->at.z; - camera->eye.y = sp3C.pos.y; - camera->eye.y = func_80044510(camera, &camera->eye) + 20.0f; - camera->unk_160--; - return 1; } -#else -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Special4.s") -#endif -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Special5.s") +/** + * Flying with hookshot + */ +s32 Camera_Special5(Camera* camera) { + Vec3f* eye = &camera->eye; + Vec3f* at = &camera->at; + Vec3f* eyeNext = &camera->eyeNext; + PosRot spA8; + s16 pad; + s16 spA4; + CamColChk sp7C; + VecSph sp74; + VecSph sp6C; + VecSph sp64; + VecSph sp5C; + PosRot* playerPosRot = &camera->playerPosRot; + Special5* spec5 = (Special5*)camera->paramData; + Special5Anim* anim = &spec5->anim; + f32 temp_f0_2; + f32 yOffset; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Special7.s") + yOffset = Player_GetHeight(camera->player); + if (RELOAD_PARAMS) { + CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + f32 yNormal = (1.0f + PCT(R_CAM_YOFFSET_NORM)) - (PCT(R_CAM_YOFFSET_NORM) * (68.0f / yOffset)); + spec5->yOffset = (NEXTPCT * yOffset) * yNormal; + spec5->eyeDist = NEXTSETTING; + spec5->minDistForRot = NEXTSETTING; + spec5->timerInit = NEXTSETTING; + spec5->pitch = DEGF_TO_BINANG(NEXTSETTING); + spec5->fovTarget = NEXTSETTING; + spec5->atMaxLERPScale = NEXTPCT; + spec5->interfaceFlags = NEXTSETTING; + } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Special6.s") + if (R_RELOAD_CAM_PARAMS) { + Camera_CopyPREGToModeValues(camera); + } + + OLib_Vec3fDiffToVecSphGeo(&sp64, at, eye); + OLib_Vec3fDiffToVecSphGeo(&sp5C, at, eyeNext); + func_8002EF14(&spA8, camera->target); + + sCameraInterfaceFlags = spec5->interfaceFlags; + + if (camera->animState == 0) { + camera->animState++; + anim->animTimer = spec5->timerInit; + } + + if (anim->animTimer > 0) { + anim->animTimer--; + } else if (anim->animTimer == 0) { + if (camera->target == NULL || camera->target->update == NULL) { + camera->target = NULL; + return true; + } + + anim->animTimer--; + if (spec5->minDistForRot < OLib_Vec3fDist(&spA8.pos, &playerPosRot->pos)) { + sp6C.yaw = playerPosRot->rot.y; + sp6C.pitch = -playerPosRot->rot.x; + sp6C.r = 20.0f; + Camera_Vec3fVecSphGeoAdd(&sp7C.pos, &spA8.pos, &sp6C); + Camera_BGCheckInfo(camera, at, &sp7C); + OLib_Vec3fToVecSphGeo(&sp6C, &sp7C.norm); + spA4 = BINANG_SUB(playerPosRot->rot.y, sp6C.yaw); + sp74.r = spec5->eyeDist; + temp_f0_2 = Math_Rand_ZeroOne(); + sp74.yaw = + BINANG_ROT180(playerPosRot->rot.y) + (s16)(spA4 < 0 ? -(s16)(0x1553 + (s16)(temp_f0_2 * 2730.0f)) + : (s16)(0x1553 + (s16)(temp_f0_2 * 2730.0f))); + sp74.pitch = spec5->pitch; + Camera_Vec3fVecSphGeoAdd(eyeNext, &spA8.pos, &sp74); + *eye = *eyeNext; + Camera_BGCheck(camera, &spA8.pos, eye); + } + } + + Camera_CalcAtDefault(camera, &sp5C, spec5->yOffset, 0); + camera->fov = Camera_LERPCeilF(spec5->fovTarget, camera->fov, camera->atLERPStepScale * PCT(OREG(4)), 1.0f); + camera->roll = Camera_LERPCeilS(0, camera->roll, 0.5f, 0xA); + camera->atLERPStepScale = Camera_ClampLERPScale(camera, spec5->atMaxLERPScale); + return true; +} + +/** + * Camera's eye is fixed at points specified at D_8011DA6C / D_8011DA9C + * depending on the player's position + */ +s32 Camera_Special7(Camera* camera) { + Special7* spec7 = (Special7*)camera->paramData; + PosRot* playerPosRot = &camera->playerPosRot; + Vec3f atTarget; + f32 yOffset; + f32 temp_f0; + + yOffset = Player_GetHeight(camera->player); + if (camera->animState == 0) { + if (camera->globalCtx->sceneNum == SCENE_JYASINZOU) { + // Spirit Temple + spec7->idx = 3; + } else if (playerPosRot->pos.x < 1500.0f) { + spec7->idx = 2; + } else if (playerPosRot->pos.y < 3000.0f) { + spec7->idx = 0; + } else { + spec7->idx = 1; + } + camera->animState++; + camera->roll = 0; + } + + if (camera->at.y < D_8011DACC[spec7->idx]) { + atTarget = playerPosRot->pos; + atTarget.y -= 20.0f; + Camera_LERPCeilVec3f(&atTarget, &camera->at, 0.4f, 0.4f, 0.10f); + camera->eye = camera->eyeNext = D_8011DA6C[spec7->idx]; + temp_f0 = (playerPosRot->pos.y - D_8011DADC[spec7->idx]) / (D_8011DACC[spec7->idx] - D_8011DADC[spec7->idx]); + camera->roll = D_8011DAEC[spec7->idx] * temp_f0; + camera->fov = (20.0f * temp_f0) + 60.0f; + } else { + atTarget = playerPosRot->pos; + atTarget.y += yOffset; + Camera_LERPCeilVec3f(&atTarget, &camera->at, 0.4f, 0.4f, 0.1f); + camera->roll = 0; + camera->eye = camera->eyeNext = D_8011DA9C[spec7->idx]; + camera->fov = 70.0f; + } + + camera->dist = OLib_Vec3fDist(&camera->at, &camera->eye); + camera->atLERPStepScale = 0.0f; + camera->posOffset.x = camera->at.x - playerPosRot->pos.x; + camera->posOffset.y = camera->at.y - playerPosRot->pos.y; + camera->posOffset.z = camera->at.z - playerPosRot->pos.z; + return true; +} + +/** + * Courtyard. + * Camera's eye is fixed on the z plane, slides on the xy plane with link + * When the camera's scene data changes the animation to the next "screen" + * happens for 12 frames. The camera's eyeNext is the scene's camera data's position + */ +s32 Camera_Special6(Camera* camera) { + Vec3f* eye = &camera->eye; + Vec3f* at = &camera->at; + Vec3f* eyeNext = &camera->eyeNext; + VecSph atOffset; + Vec3f sceneCamPos; + Vec3f eyePosCalc; + Vec3f eyeAnim; + Vec3f atAnim; + VecSph eyeAtOffset; + PosRot* playerPosRot = &camera->playerPosRot; + Vec3s* sceneCamData; + Vec3s sceneCamRot; + s16 fov; + f32 sp54; + f32 timerF; + f32 timerDivisor; + Special6* spec6 = (Special6*)camera->paramData; + Special6Anim* anim = &spec6->anim; + s32 pad; + + if (RELOAD_PARAMS) { + CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + spec6->interfaceFlags = NEXTSETTING; + } + + if (R_RELOAD_CAM_PARAMS) { + Camera_CopyPREGToModeValues(camera); + } + + OLib_Vec3fDiffToVecSphGeo(&eyeAtOffset, eye, at); + + sceneCamData = Camera_GetCamBGData(camera); + Camera_Vec3sToVec3f(&sceneCamPos, &BGCAM_POS(sceneCamData)); + sceneCamRot = BGCAM_ROT(sceneCamData); + fov = BGCAM_FOV(sceneCamData); + if (fov == -1) { + fov = 6000; + } + + if (fov < 361) { + fov *= 100; + } + + sCameraInterfaceFlags = spec6->interfaceFlags; + + if (eyeNext->x != sceneCamPos.x || eyeNext->y != sceneCamPos.y || eyeNext->z != sceneCamPos.z || + camera->animState == 0) { + // A change in the current scene's camera positon has been detected, + // Change "screens" + camera->player->actor.freezeTimer = 12; + sCameraInterfaceFlags = (sCameraInterfaceFlags & 0xF0FF) | 0x300; + anim->initalPlayerY = playerPosRot->pos.y; + anim->animTimer = 12; + *eyeNext = sceneCamPos; + if (camera->animState == 0) { + camera->animState++; + } + } + + if (anim->animTimer > 0) { + // In transition between "screens" + timerF = anim->animTimer; + eyePosCalc = *eyeNext; + eyePosCalc.x += (playerPosRot->pos.x - eyePosCalc.x) * 0.5f; + eyePosCalc.y += (playerPosRot->pos.y - anim->initalPlayerY) * 0.2f; + eyeAnim = eyePosCalc; + eyeAnim.y = Camera_LERPCeilF(eyePosCalc.y, eye->y, 0.5f, 0.01f); + + // set the at point to be 100 units from the eye looking at the + // direction specified in the scene's camera data. + atOffset.r = 100.0f; + atOffset.yaw = sceneCamRot.y; + atOffset.pitch = -sceneCamRot.x; + Camera_Vec3fVecSphGeoAdd(&atAnim, &eyeAnim, &atOffset); + timerDivisor = 1.0f / timerF; + eye->x += (eyeAnim.x - eye->x) * timerDivisor; + eye->y += (eyeAnim.y - eye->y) * timerDivisor; + eye->z += (eyeAnim.z - eye->z) * timerDivisor; + at->x += (atAnim.x - at->x) * timerDivisor; + at->y += (atAnim.y - at->y) * timerDivisor; + at->z += (atAnim.z - at->z) * timerDivisor; + camera->fov += (PCT(fov) - camera->fov) / anim->animTimer; + anim->animTimer--; + } else { + // Camera following link on the x axis. + sCameraInterfaceFlags &= 0xF0FF; + eyePosCalc = *eyeNext; + eyePosCalc.x += (playerPosRot->pos.x - eyePosCalc.x) * 0.5f; + eyePosCalc.y += (playerPosRot->pos.y - anim->initalPlayerY) * 0.2f; + *eye = eyePosCalc; + eye->y = Camera_LERPCeilF(eyePosCalc.y, eye->y, 0.5f, 0.01f); + + // set the at point to be 100 units from the eye looking at the + // direction specified in the scene's camera data. + atOffset.r = 100.0f; + atOffset.yaw = sceneCamRot.y; + atOffset.pitch = -sceneCamRot.x; + Camera_Vec3fVecSphGeoAdd(at, eye, &atOffset); + } + return true; +} s32 Camera_Special8(Camera* camera) { - return func_80047394(camera); + return Camera_Noop(camera); } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Special9.s") +s32 Camera_Special9(Camera* camera) { + s32 pad; + Vec3f* eye = &camera->eye; + Vec3f* at = &camera->at; + Vec3f* eyeNext = &camera->eyeNext; + Vec3f spAC; + VecSph eyeAdjustment; + VecSph atEyeOffsetGeo; + f32 playerYOffset; + s32 pad3; + PosRot* playerPosRot = &camera->playerPosRot; + PosRot adjustedPlayerPosRot; + f32 yNormal; + Special9* spec9 = (Special9*)camera->paramData; + Special9Params* params = &spec9->params; + Special9Anim* anim = ¶ms->anim; + s32 pad4; + Vec3s* camPosData; -Camera* func_80057B98(View* view, CollisionContext* colCtx, GlobalContext* globalCtx) { + playerYOffset = Player_GetHeight(camera->player); + camera->unk_14C &= ~0x10; + yNormal = (1.0f + PCT(R_CAM_YOFFSET_NORM)) - (PCT(R_CAM_YOFFSET_NORM) * (68.0f / playerYOffset)); + + if (RELOAD_PARAMS) { + CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + + params->yOffset = NEXTPCT * playerYOffset * yNormal; + params->unk_04 = NEXTSETTING; + params->interfaceFlags = NEXTSETTING; + } + + if (R_RELOAD_CAM_PARAMS) { + Camera_CopyPREGToModeValues(camera); + } + + if (spec9->doorParams.doorActor != NULL) { + func_8002EF44(&adjustedPlayerPosRot, spec9->doorParams.doorActor); + } else { + adjustedPlayerPosRot = *playerPosRot; + adjustedPlayerPosRot.pos.y += playerYOffset + params->yOffset; + adjustedPlayerPosRot.rot.x = 0; + } + + OLib_Vec3fDiffToVecSphGeo(&atEyeOffsetGeo, at, eye); + + sCameraInterfaceFlags = params->interfaceFlags; + + switch (camera->animState) { + do { + } while (0); + case 0: + camera->unk_14C &= ~(0x4 | 0x2); + camera->animState++; + anim->targetYaw = ABS(playerPosRot->rot.y - adjustedPlayerPosRot.rot.y) >= 0x4000 + ? BINANG_ROT180(adjustedPlayerPosRot.rot.y) + : adjustedPlayerPosRot.rot.y; + case 1: + spec9->doorParams.timer1--; + if (spec9->doorParams.timer1 <= 0) { + camera->animState++; + if (params->interfaceFlags & 1) { + camPosData = Camera_GetCamBGData(camera); + Camera_Vec3sToVec3f(eyeNext, &BGCAM_POS(camPosData)); + spAC = *eye = *eyeNext; + } else { + s16 yaw; + // 0xE38 ~ 20 degrees + eyeAdjustment.pitch = 0xE38; + // 0xAAA ~ 15 degrees. + yaw = 0xAAA * ((camera->globalCtx->state.frames & 1) ? 1 : -1); + eyeAdjustment.yaw = anim->targetYaw + yaw; + eyeAdjustment.r = 200.0f * yNormal; + Camera_Vec3fVecSphGeoAdd(eyeNext, at, &eyeAdjustment); + spAC = *eye = *eyeNext; + if (Camera_CheckOOB(camera, &spAC, &playerPosRot->pos)) { + yaw = -yaw; + eyeAdjustment.yaw = anim->targetYaw + yaw; + Camera_Vec3fVecSphGeoAdd(eyeNext, at, &eyeAdjustment); + *eye = *eyeNext; + } + } + } else { + break; + } + case 2: + spAC = playerPosRot->pos; + spAC.y += playerYOffset + params->yOffset; + + Camera_LERPCeilVec3f(&spAC, at, 0.25f, 0.25f, 0.1f); + spec9->doorParams.timer2--; + if (spec9->doorParams.timer2 <= 0) { + camera->animState++; + anim->targetYaw = BINANG_ROT180(anim->targetYaw); + } else { + break; + } + case 3: + spAC = playerPosRot->pos; + spAC.y += (playerYOffset + params->yOffset); + Camera_LERPCeilVec3f(&spAC, at, 0.5f, 0.5f, 0.1f); + eyeAdjustment.pitch = Camera_LERPCeilS(0xAAA, atEyeOffsetGeo.pitch, 0.3f, 0xA); + eyeAdjustment.yaw = Camera_LERPCeilS(anim->targetYaw, atEyeOffsetGeo.yaw, 0.3f, 0xA); + eyeAdjustment.r = Camera_LERPCeilF(60.0f, atEyeOffsetGeo.r, 0.3f, 1.0f); + Camera_Vec3fVecSphGeoAdd(eyeNext, at, &eyeAdjustment); + *eye = *eyeNext; + spec9->doorParams.timer3--; + if (spec9->doorParams.timer3 <= 0) { + camera->animState++; + } else { + break; + } + case 4: + camera->animState++; + default: + camera->unk_14C |= (0x400 | 0x10); + sCameraInterfaceFlags = 0; + + if (camera->xzSpeed > 0.001f || CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_A) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_B) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_CLEFT) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_CDOWN) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_CUP) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_CRIGHT) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_R) || + CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_Z) || params->interfaceFlags & 0x8) { + + Camera_ChangeSettingFlags(camera, camera->prevSetting, 2); + camera->unk_14C |= (0x4 | 0x2); + } + break; + } + if (!camera->globalCtx->state.frames) {} + spAC = playerPosRot->pos; + spAC.y += playerYOffset; + camera->dist = OLib_Vec3fDist(&spAC, eye); + camera->posOffset.x = camera->at.x - playerPosRot->pos.x; + camera->posOffset.y = camera->at.y - playerPosRot->pos.y; + camera->posOffset.z = camera->at.z - playerPosRot->pos.z; + return true; +} + +Camera* Camera_Create(View* view, CollisionContext* colCtx, GlobalContext* globalCtx) { Camera* newCamera = ZeldaArena_MallocDebug(sizeof(*newCamera), "../z_camera.c", 9370); + if (newCamera != NULL) { osSyncPrintf(VT_FGCOL(BLUE) "camera: create --- allocate %d byte" VT_RST "\n", sizeof(*newCamera) * 4); - func_80057C6C(newCamera, view, colCtx, globalCtx); + Camera_Init(newCamera, view, colCtx, globalCtx); } else { osSyncPrintf(VT_COL(RED, WHITE) "camera: create: not enough memory\n" VT_RST); } return newCamera; } -void func_80057C14(Camera* camera) { +void Camera_Destroy(Camera* camera) { if (camera != NULL) { osSyncPrintf(VT_FGCOL(BLUE) "camera: destroy ---" VT_RST "\n"); ZeldaArena_FreeDebug(camera, "../z_camera.c", 9391); @@ -3072,30 +6777,13 @@ void func_80057C14(Camera* camera) { } } -#ifdef NON_MATCHING -void func_80057C6C(Camera* camera, View* view, CollisionContext* colCtx, GlobalContext* globalCtx) { - Camera* temp_v0; - s16 temp_a1; - s32 temp_a1_2; - s32 temp_v1; - s32 temp_v1_2; - s32 temp_v1_3; - s16* phi_a0; - s32 phi_v0; - s32 phi_v1; - s16* phi_a0_2; - s32 phi_v0_2; - s32 phi_v1_2; - s32 phi_a1; - s16 phi_v1_3; - s32 phi_v1_4; - s16 phi_a1_2; +void Camera_Init(Camera* camera, View* view, CollisionContext* colCtx, GlobalContext* globalCtx) { + Camera* camP; s32 i; - s32 j; - Camera* cam; - s16 t; + s16 curUID; + s16 j; - func_80106860((void*)camera, 0, 0x16CU); + func_80106860(camera, 0, sizeof(*camera)); if (sInitRegs) { for (i = 0; i < sOREGInitCnt; i++) { OREG(i) = sOREGInit[i]; @@ -3105,99 +6793,93 @@ void func_80057C6C(Camera* camera, View* view, CollisionContext* colCtx, GlobalC PREG(i) = sPREGInit[i]; } - func_800B958C(camera, &D_8015BD80, &gGameInfo); + DbgCamera_FirstInit(camera, &D_8015BD80); sInitRegs = false; PREG(88) = -1; } camera->globalCtx = D_8015BD7C = globalCtx; - func_800B4D58(&D_8015BD80, camera); - temp_a1 = D_8011D39C; - D_8011D39C++; - for (temp_a1 = D_8011D39C, D_8011D39C++; temp_a1 != 0; temp_a1 = D_8011D39C, D_8011D39C++) { - if (temp_a1 == 0) { - D_8011D39C++; + DbgCamera_Init(&D_8015BD80, camera); + curUID = sNextUID; + sNextUID++; + while (curUID != 0) { + if (curUID == 0) { + sNextUID++; } - for (phi_v1_3 = 0; phi_v1_3 < 4; phi_v1_3++) { - temp_v0 = camera->globalCtx->cameraPtrs[phi_v1_3]; - if (temp_v0 != NULL && temp_a1 == temp_v0->uid) { + + for (j = 0; j < 4; j++) { + camP = camera->globalCtx->cameraPtrs[j]; + if (camP != NULL && curUID == camP->uid) { break; } } - if (phi_v1_3 == 4) { + if (j == 4) { break; } + + curUID = sNextUID++; } - camera->unk_134.y = 0x3FFF; - camera->unk_13A = camera->unk_134; - camera->uid = temp_a1; - camera->unk_C0.x = 10.0f; - camera->unk_C0.z = 10.0f; - camera->unk_68.y = 1.0f; - camera->unk_68.x = 0.0f; - camera->unk_68.z = 0.0f; + // ~ 90 degrees + camera->inputDir.y = 0x3FFF; + camera->uid = curUID; + camera->camDir = camera->inputDir; + camera->rUpdateRateInv = 10.0f; + camera->yawUpdateRateInv = 10.0f; + camera->up.x = 0.0f; + camera->up.y = 1.0f; + camera->up.z = 0.0f; camera->fov = 60.0f; - D_8011D3A8 = 0x20; - D_8011D3A4 = 0; - camera->unk_C0.y = OREG(7); - camera->unk_CC.x = OREG(2) * 0.01f; - camera->unk_CC.y = OREG(3) * 0.01f; - camera->unk_CC.z = OREG(4) * 0.01f; - + camera->pitchUpdateRateInv = R_CAM_DEFA_PHI_UPDRATE; + camera->xzOffsetUpdateRate = PCT(OREG(2)); + camera->yOffsetUpdateRate = PCT(OREG(3)); + camera->fovUpdateRate = PCT(OREG(4)); + sCameraShrinkWindowVal = 0x20; + sCameraInterfaceAlpha = 0; camera->unk_14C = 0; - camera->unk_154 = 0x21U; - camera->unk_166 = -1; + camera->setting = camera->prevSetting = 0x21; + camera->camDataIdx = camera->prevCamDataIdx = -1; camera->mode = 0; - camera->unk_146 = 0x32; + camera->bgCheckId = 0x32; camera->unk_168 = 0x7FFF; - camera->unk_160 = -1; + camera->timer = -1; camera->unk_14C |= 0x4000; - camera->unk_68.y = 1.0f; - camera->unk_68.z = 0.0f; - camera->unk_68.x = 0.0f; - camera->unk_80.x = 0.0f; - camera->unk_80.y = 0.0f; - camera->unk_80.z = 0.0f; - camera->setting = camera->unk_154; - camera->unk_148 = camera->unk_166; - camera->unk_100 = 1.0f; - D_8011D3A0.w = 0xFF00; - D_8011D398 = -1; + + camera->up.y = 1.0f; + camera->up.z = camera->up.x = 0.0f; + camera->skyboxOffset.x = camera->skyboxOffset.y = camera->skyboxOffset.z = 0; + camera->atLERPStepScale = 1; + sCameraInterfaceFlags = 0xFF00; + sDbgModeIdx = -1; D_8011D3F0 = 3; osSyncPrintf(VT_FGCOL(BLUE) "camera: initialize --- " VT_RST " UID %d\n", camera->uid); } -#else -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_80057C6C.s") -#endif - -s32 func_8005AD40(Camera* camera, Actor* doorActor, s16 arg2, f32 arg3, s16 arg4, s16 arg5, s16 arg6); void func_80057FC4(Camera* camera) { if (camera != &camera->globalCtx->mainCamera) { - camera->unk_154 = camera->setting = CAM_SET_FREE0; + camera->prevSetting = camera->setting = CAM_SET_FREE0; camera->unk_14C &= ~0x4; } else if (camera->globalCtx->roomCtx.curRoom.mesh->polygon.type != 1) { switch (camera->globalCtx->roomCtx.curRoom.unk_03) { case 1: - func_8005AD40(camera, 0, -99, 0, 0, 18, 10); - camera->unk_154 = camera->setting = CAM_SET_DUNGEON0; + Camera_ChangeDoorCam(camera, NULL, -99, 0, 0, 18, 10); + camera->prevSetting = camera->setting = CAM_SET_DUNGEON0; break; case 0: osSyncPrintf("camera: room type: default set field\n"); - func_8005AD40(camera, 0, -99, 0, 0, 18, 10); - camera->unk_154 = camera->setting = CAM_SET_NORMAL0; + Camera_ChangeDoorCam(camera, NULL, -99, 0, 0, 18, 10); + camera->prevSetting = camera->setting = CAM_SET_NORMAL0; break; default: osSyncPrintf("camera: room type: default set etc (%d)\n", camera->globalCtx->roomCtx.curRoom.unk_03); - func_8005AD40(camera, 0, -99, 0, 0, 18, 10); - camera->unk_154 = camera->setting = CAM_SET_NORMAL0; + Camera_ChangeDoorCam(camera, NULL, -99, 0, 0, 18, 10); + camera->prevSetting = camera->setting = CAM_SET_NORMAL0; camera->unk_14C |= 4; break; } } else { osSyncPrintf("camera: room type: prerender\n"); - camera->unk_154 = camera->setting = CAM_SET_FREE0; + camera->prevSetting = camera->setting = CAM_SET_FREE0; camera->unk_14C &= ~0x4; } } @@ -3205,116 +6887,318 @@ void func_80057FC4(Camera* camera) { void Camera_Stub80058140(Camera* camera) { } -#ifdef NON_MATCHING -void func_80058148(Camera* camera, Player* player) { - s32 pad; - PosRot sp54; - VecSph sp4C; - s32 sp48; - Vec3f sp3C; - f32 temp_f0; +void Camera_InitPlayerSettings(Camera* camera, Player* player) { + PosRot playerPosShape; + VecSph eyeNextAtOffset; + s32 bgId; + Vec3f floorPos; + s32 upXZ; + f32 playerYOffset; + Vec3f* eye = &camera->eye; + Vec3f* at = &camera->at; + Vec3f* eyeNext = &camera->eyeNext; - func_8002EF44(&sp54, &player->actor); - temp_f0 = Player_GetCameraYOffset(player); + func_8002EF44(&playerPosShape, &player->actor); + playerYOffset = Player_GetHeight(player); camera->player = player; - camera->playerPosRot = sp54; - sp4C.r = 180.0f; - camera->dist = 180.0f; - camera->unk_134.y = sp54.rot.y; - sp4C.pitch = 0x71C; - sp4C.yaw = camera->unk_134.y - 0x7FFF; - camera->unk_134.x = 0x71C; - camera->unk_134.z = 0; - camera->unk_13A = camera->unk_134; - camera->unk_D8 = 0.0f; - camera->unk_F0.y = 0.0f; - camera->at = sp54.pos; - camera->unk_E4.y = temp_f0; - camera->unk_E4.x = 0.0f; - camera->unk_E4.z = 0.0f; - camera->at.y += temp_f0; - func_80043C28(&camera->eyeNext, &camera->at, &sp4C); - camera->eye = camera->eyeNext; + camera->playerPosRot = playerPosShape; + camera->dist = eyeNextAtOffset.r = 180.0f; + camera->inputDir.y = playerPosShape.rot.y; + eyeNextAtOffset.yaw = BINANG_ROT180(camera->inputDir.y); + camera->inputDir.x = eyeNextAtOffset.pitch = 0x71C; + camera->inputDir.z = 0; + camera->camDir = camera->inputDir; + camera->xzSpeed = 0.0f; + camera->playerPosDelta.y = 0.0f; + camera->at = playerPosShape.pos; + camera->at.y += playerYOffset; + + camera->posOffset.x = 0; + camera->posOffset.y = playerYOffset; + camera->posOffset.z = 0; + + Camera_Vec3fVecSphGeoAdd(eyeNext, at, &eyeNextAtOffset); + *eye = *eyeNext; camera->roll = 0; - camera->unk_68.z = 0.0f; - camera->unk_68.x = 0.0f; - camera->unk_68.y = 1.0f; - if (func_80044434(camera, &sp3C, &camera->at, &sp48) != -32000.0f) { - camera->unk_146 = sp48; + + upXZ = 0; + camera->up.z = upXZ; + camera->up.y = 1.0f; + camera->up.x = upXZ; + + if (Camera_GetFloorYNorm(camera, &floorPos, at, &bgId) != BGCHECK_Y_MIN) { + camera->bgCheckId = bgId; } - camera->unk_118 = -1; - camera->unk_11C = -1; + + camera->waterPrevCamIdx = -1; + camera->waterPrevCamSetting = -1; camera->unk_14C |= 4; + if (camera == &camera->globalCtx->mainCamera) { - D_8011D3A0.w = 0xB200; + sCameraInterfaceFlags = 0xB200; } else { - D_8011D3A0.w = 0; + sCameraInterfaceFlags = 0; } + func_80057FC4(camera); camera->unk_14A = 0; - camera->unk_15C = 0; - camera->unk_156 = -1; - camera->unk_100 = 1.0f; + camera->paramFlags = 0; + camera->nextCamDataIdx = -1; + camera->atLERPStepScale = 1.0f; Camera_CopyModeValuesToPREG(camera, camera->mode); - func_8005B044(); + Camera_QRegInit(); osSyncPrintf(VT_FGCOL(BLUE) "camera: personalize ---" VT_RST "\n"); - if (camera->unk_164 == 0) { - func_800588B4(camera); + + if (camera->thisIdx == 0) { + Camera_CheckWater(camera); } } -#else -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_80058148.s") -#endif -#ifdef NON_MATCHING -void Camera_ChangeStatus(Camera* camera, s16 status) { - s32 temp_s1; - CameraMode* temp_v0; - s32 phi_a1; - s32 phi_a2; - s16 phi_v0; - CameraModeValue* phi_s0; - s32 phi_s1; +s16 Camera_ChangeStatus(Camera* camera, s16 status) { + CameraModeValue* values; + CameraModeValue* valueP; + s32 i; if (PREG(82)) { - phi_a1 = status == 7 ? 0x6F : 0x78; - phi_a2 = camera->status != 7 ? 0x6F : 0x78; - osSyncPrintf("camera: change camera status: cond %c%c\n", phi_a1, phi_a2); + osSyncPrintf("camera: change camera status: cond %c%c\n", status == 7 ? 'o' : 'x', + camera->status != 7 ? 'o' : 'x'); } + if (PREG(82)) { - osSyncPrintf("camera: res: stat (%d/%d/%d)\n", camera->unk_164, camera->setting, camera->mode); + osSyncPrintf("camera: res: stat (%d/%d/%d)\n", camera->thisIdx, camera->setting, camera->mode); } - if (status == 7 && camera->status != 7) { - temp_v0 = &sCameraSettings[camera->setting].cameraModes[camera->mode]; - if (temp_v0->valueCnt > 0) { - phi_s0 = temp_v0->values; - phi_s1 = 0; - loop_12: - PREG(phi_s0->param) = phi_s0->val; - if (PREG(82) != 0) { - osSyncPrintf("camera: change camera status: PREG(%02d) = %d\n", phi_s0->param, phi_s0->val); - } - temp_s1 = phi_s1 + 1; - phi_s0 = phi_s0 + 4; - phi_s1 = temp_s1; - if (temp_s1 < sCameraSettings[camera->setting].cameraModes[camera->mode].valueCnt) { - goto loop_12; + + if (status == CAM_STAT_ACTIVE && camera->status != CAM_STAT_ACTIVE) { + values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; + for (i = 0; i < sCameraSettings[camera->setting].cameraModes[camera->mode].valueCnt; i++) { + valueP = &values[i]; + PREG(valueP->param) = valueP->val; + if (PREG(82)) { + osSyncPrintf("camera: change camera status: PREG(%02d) = %d\n", valueP->param, valueP->val); } } } camera->status = status; + return camera->status; +} + +#ifdef NON_MATCHING +void Camera_PrintSettings(Camera* camera) { + char sp58[8]; + char sp50[8]; + char sp48[8]; + s16 temp_v0; + s32 temp_v0_2; + s8* temp_t6; + s8* temp_t7; + s8* temp_t8; + s8* temp_t9; + Camera* temp_a0; + s32 phi_a1; + char* phi_v1; + char* phi_t0; + s32 phi_v0; + s32 phi_v0_2; + + if (OREG(0) & 1 && camera->thisIdx == camera->globalCtx->activeCamera && !gDbgCamEnabled) { + for (phi_a1 = 0, phi_v1 = sp58, phi_t0 = sp48; phi_v1 < &sp58[4]; phi_v1++, phi_t0++, phi_a1++) { + temp_a0 = camera->globalCtx->cameraPtrs[phi_a1]; + if (temp_a0 == NULL) { + *phi_v1 = '-'; + *phi_t0 = ' '; + } else { + switch (temp_a0->status) { + case 0: + *phi_v1 = 'c'; + *phi_t0 = ' '; + break; + case 1: + *phi_v1 = 'w'; + *phi_t0 = ' '; + break; + case 3: + *phi_v1 = 's'; + *phi_t0 = ' '; + break; + case 7: + *phi_v1 = 'a'; + *phi_t0 = ' '; + break; + case 0x100: + *phi_v1 = 'd'; + *phi_t0 = ' '; + break; + default: + *phi_v1 = '*'; + *phi_t0 = ' '; + break; + } + } + } + *phi_v1++ = '\0'; + *phi_t0++ = '\0'; + + sp48[camera->globalCtx->activeCamera] = 'a'; + func_8006376C(3, 0x16, 5, sp58); + func_8006376C(3, 0x16, 1, sp48); + func_8006376C(3, 0x17, 5, "S:"); + func_8006376C(5, 0x17, 4, sCameraSettingNames[camera->setting]); + func_8006376C(3, 0x18, 5, "M:"); + func_8006376C(5, 0x18, 4, sCameraModeNames[camera->mode]); + func_8006376C(3, 0x19, 5, "F:"); + func_8006376C(5, 0x19, 4, + sCameraFunctionNames[sCameraSettings[camera->setting].cameraModes[camera->mode].funcIdx]); + + phi_v0 = 0; + if (camera->camDataIdx < 0) { + sp50[phi_v0++] = '-'; + } + phi_v0_2 = camera->camDataIdx / 0xA; + if (phi_v0_2 != 0) { + sp50[phi_v0++] = phi_v0 / 0xA + '0'; + } + sp50[phi_v0++] = phi_v0 % 10 + '0'; + sp50[phi_v0++] = ' '; + sp50[phi_v0++] = ' '; + sp50[phi_v0++] = ' '; + sp50[phi_v0++] = ' '; + sp50[phi_v0] = '\0'; + func_8006376C(3, 26, 5, "I:"); + func_8006376C(5, 26, 4, sp50); + } } #else -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ChangeStatus.s") +void Camera_PrintSettings(Camera* camera); +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_PrintSettings.s") #endif -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_800584E8.s") +s32 Camera_CheckWater(Camera* camera) { + f32 waterY; + s16 newQuakeId; + s32 waterBoxProp; + s32* waterPrevCamSetting = &camera->waterPrevCamSetting; + s16 waterCamIdx; + s16* quakeId = (s16*)&camera->waterQuakeId; + Player* player = camera->player; + s16 prevBgId; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_800588B4.s") + if (!(camera->unk_14C & 2) || sCameraSettings[camera->setting].unk_00 & 0x40000000) { + return 0; + } -s32 func_80058CF8(Camera* camera) { + if (camera->unk_14C & 0x200) { + if (player->stateFlags2 & 0x800) { + Camera_ChangeSettingFlags(camera, CAM_SET_CIRCLE5, 6); + camera->unk_14C |= (s16)0x8000; + } else if (camera->unk_14C & (s16)0x8000) { + Camera_ChangeSettingFlags(camera, *waterPrevCamSetting, 6); + camera->unk_14C &= ~((s16)0x8000); + } + } + if (!(camera->unk_14C & (s16)0x8000)) { + if (waterCamIdx = Camera_GetWaterBoxDataIdx(camera, &waterY), waterCamIdx == -2) { + // No camera data idx + if (!(camera->unk_14C & 0x200)) { + camera->unk_14C |= 0x200; + camera->waterYPos = waterY; + camera->waterPrevCamIdx = camera->camDataIdx; + *quakeId = -1; + } + if (camera->playerGroundY != camera->playerPosRot.pos.y) { + prevBgId = camera->bgCheckId; + camera->bgCheckId = 50; + Camera_ChangeSettingFlags(camera, CAM_SET_NORMAL3, 2); + *waterPrevCamSetting = camera->setting; + camera->bgCheckId = prevBgId; + camera->camDataIdx = -2; + } + } else if (waterCamIdx != -1) { + // player is in a water box + if (!(camera->unk_14C & 0x200)) { + camera->unk_14C |= 0x200; + camera->waterYPos = waterY; + camera->waterPrevCamIdx = camera->camDataIdx; + *quakeId = -1; + } + if (camera->playerGroundY != camera->playerPosRot.pos.y) { + prevBgId = camera->bgCheckId; + camera->bgCheckId = 50; + Camera_ChangeDataIdx(camera, waterCamIdx); + *waterPrevCamSetting = camera->setting; + camera->bgCheckId = prevBgId; + } + } else if (camera->unk_14C & 0x200) { + // player is out of a water box. + osSyncPrintf("camera: water: off\n"); + camera->unk_14C &= ~0x200; + prevBgId = camera->bgCheckId; + camera->bgCheckId = 50; + if (camera->waterPrevCamIdx < 0) { + func_80057FC4(camera); + camera->camDataIdx = -1; + } else { + Camera_ChangeDataIdx(camera, camera->waterPrevCamIdx); + } + camera->bgCheckId = prevBgId; + } + } + + if (waterY = Camera_GetWaterSurface(camera, &camera->eye, &waterBoxProp), waterY != BGCHECK_Y_MIN) { + camera->waterYPos = waterY; + if (!(camera->unk_14C & 0x100)) { + camera->unk_14C |= 0x100; + osSyncPrintf("kankyo changed water, sound on\n"); + func_80070600(camera->globalCtx, waterBoxProp); + camera->unk_150 = 0x50; + } + + func_800F6828(0x20); + + if (PREG(81)) { + Quake_RemoveFromIdx(*quakeId); + *quakeId = -1; + PREG(81) = 0; + } + + if ((*quakeId == -1) || (Quake_GetCountdown(*quakeId) == 0xA)) { + if (*quakeId = newQuakeId = Quake_Add(camera, 5U), newQuakeId != 0) { + Quake_SetSpeed(*quakeId, 550); + Quake_SetQuakeValues(*quakeId, 1, 1, 180, 0); + Quake_SetCountdown(*quakeId, 1000); + } + } + + if (camera->unk_150 > 0) { + camera->unk_150--; + camera->unk_152 |= 8; + return; + } else if (camera->globalCtx->sceneNum == 0x49) { + camera->unk_152 |= 0x10; + return; + } else { + camera->unk_152 |= 2; + return; + } + } + if (camera->unk_14C & 0x100) { + camera->unk_14C &= ~0x100; + osSyncPrintf("kankyo changed water off, sound off\n"); + func_800706A0(camera->globalCtx); + if (*quakeId != 0) { + Quake_RemoveFromIdx(*quakeId); + } + camera->unk_150 = 0; + camera->unk_152 = 0; + } + func_800F6828(0); + // @BUG: doesn't always return a value, but sometimes does. +} + +/** + * Sets the room to be hot camera quake flag + */ +s32 Camera_SetRoomHotFlag(Camera* camera) { camera->unk_152 &= ~1; - if (camera->globalCtx->roomCtx.curRoom.unk_02 == 3) { camera->unk_152 |= 1; } @@ -3322,49 +7206,377 @@ s32 func_80058CF8(Camera* camera) { return 1; } -s32 func_80058D34(Camera* camera) { - s32 phi_a2 = 0; +s32 Camera_DbgChangeMode(Camera* camera) { + s32 changeDir = 0; - if (D_8011D394 == 0) { - if (camera->globalCtx->activeCamera == 0) { - if (CHECK_BTN_ALL(D_8015BD7C->state.input[2].press.button, BTN_CUP)) { - osSyncPrintf("attention sound URGENCY\n"); - func_80078884(NA_SE_SY_ATTENTION_URGENCY); - } - if (CHECK_BTN_ALL(D_8015BD7C->state.input[2].press.button, BTN_CDOWN)) { - osSyncPrintf("attention sound NORMAL\n"); - func_80078884(NA_SE_SY_ATTENTION_ON); - } + if (gDbgCamEnabled == 0 && camera->globalCtx->activeCamera == 0) { + if (CHECK_BTN_ALL(D_8015BD7C->state.input[2].press.button, BTN_CUP)) { + osSyncPrintf("attention sound URGENCY\n"); + func_80078884(NA_SE_SY_ATTENTION_URGENCY); + } + if (CHECK_BTN_ALL(D_8015BD7C->state.input[2].press.button, BTN_CDOWN)) { + osSyncPrintf("attention sound NORMAL\n"); + func_80078884(NA_SE_SY_ATTENTION_ON); + } - if (CHECK_BTN_ALL(D_8015BD7C->state.input[2].press.button, BTN_CRIGHT)) { - phi_a2 = 1; - } - if (CHECK_BTN_ALL(D_8015BD7C->state.input[2].press.button, BTN_CLEFT)) { - phi_a2 = -1; - } - if (phi_a2 != 0) { - D_8011D398 = (D_8011D398 + phi_a2) % 6; - if (func_8005A77C(camera, D_8011DAFC[D_8011D398]) > 0) { - osSyncPrintf("camera: force change SET to %s!\n", sCameraSettingNames[D_8011DAFC[D_8011D398]]); - } + if (CHECK_BTN_ALL(D_8015BD7C->state.input[2].press.button, BTN_CRIGHT)) { + changeDir = 1; + } + if (CHECK_BTN_ALL(D_8015BD7C->state.input[2].press.button, BTN_CLEFT)) { + changeDir = -1; + } + if (changeDir != 0) { + sDbgModeIdx = (sDbgModeIdx + changeDir) % 6; + if (Camera_ChangeSetting(camera, D_8011DAFC[sDbgModeIdx]) > 0) { + osSyncPrintf("camera: force change SET to %s!\n", sCameraSettingNames[D_8011DAFC[sDbgModeIdx]]); } } } - return 1; + return true; } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_80058E8C.s") +void func_80058E8C(Camera* camera) { + static s16 D_8011DB08 = 0x3F0; + static s16 D_8011DB0C = 0x156; + s32 pad3; + f32 sp60; + s32 pad; + s32 pad1; + s32 pad4; + f32 phi_f2; + s32 pad2; + f32 phi_f0; + f32 phi_f20; + f32 sp40; + f32 sp3C; + f32 sp38; + f32 sp34; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_800591EC.s") + if (camera->unk_152 != 0) { + if (camera->unk_152 & 4) { + phi_f0 = 0.0f; + phi_f2 = 170.0f; + sp3C = 0.01f; + sp40 = -0.01f; + sp38 = 0.0f; + sp34 = 0.6f; + phi_f20 = camera->unk_150 / 60.0f; + sp60 = 1.0f; + } else if (camera->unk_152 & 8) { + phi_f0 = 248.0f; + phi_f2 = -90.0f; + sp38 = 0.2f; + sp34 = 0.2f; + sp40 = -0.3f; + sp3C = 0.3f; + phi_f20 = camera->unk_150 / 80.0f; + sp60 = 1.0f; + } else if (camera->unk_152 & 2) { + phi_f0 = 359.2f; + phi_f2 = -18.5f; + sp40 = 0.09f; + sp38 = 0.01f; + sp3C = 0.09f; + sp34 = 0.08f; + phi_f20 = + (((camera->waterYPos - camera->eye.y) > 150.0f ? 1.0f : (camera->waterYPos - camera->eye.y) / 150.0f) * + 0.45f) + + (camera->speedRatio * 0.45f); + sp60 = phi_f20; + } else if (camera->unk_152 & 1) { + // hot room flag + phi_f2 = 150.0f; + phi_f0 = 0.0f; + sp3C = 0.01f; + sp38 = 0.01f; + sp40 = -0.01f; + sp34 = 0.6f; + sp60 = 1.0f; + phi_f20 = 1.0f; -void func_80059EC8(Camera* camera) { - Camera* sp24 = camera->globalCtx->cameraPtrs[0]; + } else { + return; + } + D_8011DB08 += DEGF_TO_BINANG(phi_f0); + D_8011DB0C += DEGF_TO_BINANG(phi_f2); + Math_Coss(D_8011DB08); + Math_Sins(D_8011DB08); + Math_Sins(D_8011DB0C); + func_800AA76C(&camera->globalCtx->view, 0.0f, 0.0f, 0.0f); + func_800AA78C(&camera->globalCtx->view, Math_Sins(D_8011DB0C) * (sp40 * phi_f20) + 1.0f, + Math_Coss(D_8011DB0C) * (sp3C * phi_f20) + 1.0f, Math_Coss(D_8011DB08) * (sp38 * phi_f20) + 1.0f); + func_800AA7AC(&camera->globalCtx->view, sp34 * sp60); + camera->unk_14C |= 0x40; + } else if (camera->unk_14C & 0x40) { + func_800AA814(&camera->globalCtx->view); + camera->unk_14C &= ~0x40; + } +} + +Vec3s* Camera_Update(Vec3s* outVec, Camera* camera) { + static s32 sOOBTimer = 0; + Vec3f viewAt; + Vec3f viewEye; + Vec3f viewUp; + f32 viewFov; + Vec3f spAC; + u32 bgCheckId; + f32 playerGroundY; + f32 playerXZSpeed; + VecSph eyeAtAngle; + s16 camDataIdx; + PosRot curPlayerPosRot; + QuakeCamCalc quake; + Player* player; + + player = camera->globalCtx->cameraPtrs[0]->player; + + if (R_DBG_CAM_UPDATE) { + osSyncPrintf("camera: in %x\n", camera); + } + + if (camera->status == CAM_STAT_CUT) { + if (R_DBG_CAM_UPDATE) { + osSyncPrintf("camera: cut out %x\n", camera); + } + *outVec = camera->inputDir; + return outVec; + } + + sUpdateCameraDirection = false; + + if (camera->player != NULL) { + func_8002EF44(&curPlayerPosRot, &camera->player->actor); + camera->xzSpeed = playerXZSpeed = OLib_Vec3fDistXZ(&curPlayerPosRot.pos, &camera->playerPosRot.pos); + + camera->speedRatio = OLib_ClampMaxDist(playerXZSpeed / (func_8002DCE4(camera->player) * PCT(OREG(8))), 1.0f); + camera->playerPosDelta.x = curPlayerPosRot.pos.x - camera->playerPosRot.pos.x; + camera->playerPosDelta.y = curPlayerPosRot.pos.y - camera->playerPosRot.pos.y; + camera->playerPosDelta.z = curPlayerPosRot.pos.z - camera->playerPosRot.pos.z; + spAC = curPlayerPosRot.pos; + spAC.y += Player_GetHeight(camera->player); + + playerGroundY = func_8003CA0C(camera->globalCtx, &camera->globalCtx->colCtx, &playerFloorPoly, &bgCheckId, + &camera->player->actor, &spAC); + if (playerGroundY != BGCHECK_Y_MIN) { + // player is above ground. + sOOBTimer = 0; + camera->floorNorm.x = playerFloorPoly->norm.x * COLPOLY_NORM_FRAC; + camera->floorNorm.y = playerFloorPoly->norm.y * COLPOLY_NORM_FRAC; + camera->floorNorm.z = playerFloorPoly->norm.z * COLPOLY_NORM_FRAC; + camera->bgCheckId = bgCheckId; + camera->playerGroundY = playerGroundY; + } else { + // player is not above ground. + sOOBTimer++; + camera->floorNorm.x = 0.0; + camera->floorNorm.y = 1.0f; + camera->floorNorm.z = 0.0; + } + + camera->playerPosRot = curPlayerPosRot; + + if (sOOBTimer < 200) { + if (camera->status == CAM_STAT_ACTIVE) { + Camera_CheckWater(camera); + Camera_SetRoomHotFlag(camera); + } + + if (!(camera->unk_14C & 4)) { + camera->nextCamDataIdx = -1; + } + + if ((camera->unk_14C & 1) && (camera->unk_14C & 4) && (!(camera->unk_14C & 0x400)) && + (!(camera->unk_14C & 0x200) || (player->currentBoots == PLAYER_BOOTS_IRON)) && + (!(camera->unk_14C & (s16)0x8000)) && (playerGroundY != BGCHECK_Y_MIN)) { + camDataIdx = Camera_GetDataIdxForPoly(camera, &bgCheckId, playerFloorPoly); + if (camDataIdx != -1) { + camera->nextBGCheckId = bgCheckId; + if (bgCheckId == 50) { + camera->nextCamDataIdx = camDataIdx; + } + } + } + + if (camera->nextCamDataIdx != -1 && (fabsf(curPlayerPosRot.pos.y - playerGroundY) < 2.0f) && + (!(camera->unk_14C & 0x200) || (player->currentBoots == PLAYER_BOOTS_IRON))) { + camera->bgCheckId = camera->nextBGCheckId; + Camera_ChangeDataIdx(camera, camera->nextCamDataIdx); + camera->nextCamDataIdx = -1; + } + } + } + Camera_PrintSettings(camera); + Camera_DbgChangeMode(camera); + + if (camera->status == CAM_STAT_WAIT) { + if (R_DBG_CAM_UPDATE) { + osSyncPrintf("camera: wait out %x\n", camera); + } + *outVec = camera->inputDir; + return outVec; + } + + camera->unk_14A = 0; + camera->unk_14C &= ~(0x400 | 0x20); + camera->unk_14C |= 0x10; + + if (R_DBG_CAM_UPDATE) { + osSyncPrintf("camera: engine (%d %d %d) %04x \n", camera->setting, camera->mode, + sCameraSettings[camera->setting].cameraModes[camera->mode].funcIdx, camera->unk_14C); + } + + if (sOOBTimer < 200) { + sCameraFunctions[sCameraSettings[camera->setting].cameraModes[camera->mode].funcIdx](camera); + } else if (camera->player != NULL) { + OLib_Vec3fDiffToVecSphGeo(&eyeAtAngle, &camera->at, &camera->eye); + Camera_CalcAtDefault(camera, &eyeAtAngle, 0.0f, 0); + } + + if (camera->status == CAM_STAT_ACTIVE) { + if ((gSaveContext.gameMode != 0) && (gSaveContext.gameMode != 3)) { + sCameraInterfaceFlags = 0; + Camera_UpdateInterface(sCameraInterfaceFlags); + } else if ((D_8011D3F0 != 0) && (camera->thisIdx == 0)) { + D_8011D3F0--; + sCameraInterfaceFlags = 0x3200; + Camera_UpdateInterface(sCameraInterfaceFlags); + } else if (camera->globalCtx->transitionMode != 0) { + sCameraInterfaceFlags = 0xF200; + Camera_UpdateInterface(sCameraInterfaceFlags); + } else if (camera->globalCtx->csCtx.state != 0) { + sCameraInterfaceFlags = 0x3200; + Camera_UpdateInterface(sCameraInterfaceFlags); + } else { + Camera_UpdateInterface(sCameraInterfaceFlags); + } + } + + if (R_DBG_CAM_UPDATE) { + osSyncPrintf("camera: shrink_and_bitem %x(%d)\n", sCameraInterfaceFlags, camera->globalCtx->transitionMode); + } + + if (R_DBG_CAM_UPDATE) { + osSyncPrintf("camera: engine (%s(%d) %s(%d) %s(%d)) ok!\n", &sCameraSettingNames[camera->setting], + camera->setting, &sCameraModeNames[camera->mode], camera->mode, + &sCameraFunctionNames[sCameraSettings[camera->setting].cameraModes[camera->mode].funcIdx], + sCameraSettings[camera->setting].cameraModes[camera->mode].funcIdx); + } + + // enable/disable debug cam + if (CHECK_BTN_ALL(D_8015BD7C->state.input[2].press.button, BTN_START)) { + gDbgCamEnabled ^= 1; + if (gDbgCamEnabled) { + DbgCamera_Enable(&D_8015BD80, camera); + } else if (camera->globalCtx->csCtx.state != 0) { + func_80064534(camera->globalCtx, &camera->globalCtx->csCtx); + } + } + + // Debug cam update + if (gDbgCamEnabled) { + camera->globalCtx->view.fovy = D_8015BD80.fov; + DbgCamera_Update(&D_8015BD80, camera); + func_800AA358(&camera->globalCtx->view, &D_8015BD80.eye, &D_8015BD80.at, &D_8015BD80.up); + if (R_DBG_CAM_UPDATE) { + osSyncPrintf("camera: debug out\n"); + } + *outVec = D_8015BD80.unk_10C6; + return outVec; + } + + OREG(0) &= ~8; + + if (camera->status == 3) { + *outVec = camera->inputDir; + return outVec; + } + + // setting bgCheckId to the ret of Quake_Calc, and checking that + // is required, it doesn't make too much sense though. + if ((bgCheckId = Quake_Calc(camera, &quake), bgCheckId != 0) && (camera->setting != CAM_SET_ITEM2)) { + viewAt.x = camera->at.x + quake.atOffset.x; + viewAt.y = camera->at.y + quake.atOffset.y; + viewAt.z = camera->at.z + quake.atOffset.z; + viewEye.x = camera->eye.x + quake.eyeOffset.x; + viewEye.y = camera->eye.y + quake.eyeOffset.y; + viewEye.z = camera->eye.z + quake.eyeOffset.z; + OLib_Vec3fDiffToVecSphGeo(&eyeAtAngle, &viewEye, &viewAt); + Camera_CalcUpFromPitchYawRoll(&viewUp, eyeAtAngle.pitch + quake.rotZ, eyeAtAngle.yaw + quake.unk_1A, + camera->roll); + viewFov = camera->fov + BINANG_TO_DEGF(quake.zoom); + } else { + viewAt = camera->at; + viewEye = camera->eye; + OLib_Vec3fDiffToVecSphGeo(&eyeAtAngle, &viewEye, &viewAt); + Camera_CalcUpFromPitchYawRoll(&viewUp, eyeAtAngle.pitch, eyeAtAngle.yaw, camera->roll); + viewFov = camera->fov; + } + + if (camera->paramFlags & 4) { + camera->paramFlags &= ~4; + viewUp = camera->up; + } else { + camera->up = viewUp; + } + + camera->skyboxOffset = quake.eyeOffset; + + func_80058E8C(camera); + if ((camera->globalCtx->sceneNum == SCENE_SPOT00) && (camera->fov < 59.0f)) { + View_SetScale(&camera->globalCtx->view, 0.79f); + } else { + View_SetScale(&camera->globalCtx->view, 1.0f); + } + camera->globalCtx->view.fovy = viewFov; + func_800AA358(&camera->globalCtx->view, &viewEye, &viewAt, &viewUp); + camera->camDir.x = eyeAtAngle.pitch; + camera->camDir.y = eyeAtAngle.yaw; + camera->camDir.z = 0; + + if (sUpdateCameraDirection == 0) { + camera->inputDir.x = eyeAtAngle.pitch; + camera->inputDir.y = eyeAtAngle.yaw; + camera->inputDir.z = 0; + } + + if (PREG(81)) { + osSyncPrintf("dir (%d) %d(%f) %d(%f) 0(0) \n", sUpdateCameraDirection, camera->inputDir.x, + BINANG_TO_DEGF(camera->inputDir.x), camera->inputDir.y, BINANG_TO_DEGF(camera->inputDir.y)); + osSyncPrintf("real (%d) %d(%f) %d(%f) 0(0) \n", sUpdateCameraDirection, camera->camDir.x, + BINANG_TO_DEGF(camera->camDir.x), camera->camDir.y, BINANG_TO_DEGF(camera->camDir.y)); + } + + if (camera->timer != -1 && CHECK_BTN_ALL(D_8015BD7C->state.input[0].press.button, BTN_DRIGHT)) { + camera->timer = 0; + } + + if (R_DBG_CAM_UPDATE) { + osSyncPrintf("camera: out (%f %f %f) (%f %f %f)\n", camera->at.x, camera->at.y, camera->at.z, camera->eye.x, + camera->eye.y, camera->eye.z); + osSyncPrintf("camera: dir (%f %d(%f) %d(%f)) (%f)\n", eyeAtAngle.r, eyeAtAngle.pitch, + BINANG_TO_DEGF(eyeAtAngle.pitch), eyeAtAngle.yaw, BINANG_TO_DEGF(eyeAtAngle.yaw), camera->fov); + if (camera->player != NULL) { + osSyncPrintf("camera: foot(%f %f %f) dist (%f)\n", curPlayerPosRot.pos.x, curPlayerPosRot.pos.y, + curPlayerPosRot.pos.z, camera->dist); + } + } + + *outVec = camera->inputDir; + return outVec; +} + +/** + * When the camera's timer is 0, change the camera to it's parent + */ +void Camera_Finish(Camera* camera) { + Camera* defaultCam = camera->globalCtx->cameraPtrs[0]; Player* player = (Player*)camera->globalCtx->actorCtx.actorList[2].first; - if (camera->unk_160 == 0) { - Gameplay_ChangeCameraStatus(camera->globalCtx, camera->unk_162, 7); + if (camera->timer == 0) { + Gameplay_ChangeCameraStatus(camera->globalCtx, camera->parentCamIdx, 7); - if ((camera->unk_162 == 0) && (camera->unk_168 != 0)) { + if ((camera->parentCamIdx == 0) && (camera->unk_168 != 0)) { player->actor.freezeTimer = 0; player->stateFlags1 &= ~0x20000000; @@ -3373,154 +7585,143 @@ void func_80059EC8(Camera* camera) { osSyncPrintf("camera: player demo end!!\n"); } - sp24->unk_14C |= 8; + defaultCam->unk_14C |= 8; } - if (camera->globalCtx->cameraPtrs[camera->unk_14E]->unk_162 == camera->unk_164) { - camera->globalCtx->cameraPtrs[camera->unk_14E]->unk_162 = camera->unk_162; + if (camera->globalCtx->cameraPtrs[camera->childCamIdx]->parentCamIdx == camera->thisIdx) { + camera->globalCtx->cameraPtrs[camera->childCamIdx]->parentCamIdx = camera->parentCamIdx; } - if (camera->globalCtx->cameraPtrs[camera->unk_162]->unk_14E == camera->unk_164) { - camera->globalCtx->cameraPtrs[camera->unk_162]->unk_14E = camera->unk_14E; + if (camera->globalCtx->cameraPtrs[camera->parentCamIdx]->childCamIdx == camera->thisIdx) { + camera->globalCtx->cameraPtrs[camera->parentCamIdx]->childCamIdx = camera->childCamIdx; } - if (camera->globalCtx->cameraPtrs[camera->unk_162]->unk_164 == 0) { - camera->globalCtx->cameraPtrs[camera->unk_162]->unk_15E = 0; + if (camera->globalCtx->cameraPtrs[camera->parentCamIdx]->thisIdx == 0) { + camera->globalCtx->cameraPtrs[camera->parentCamIdx]->animState = 0; } - camera->unk_162 = 0; - camera->unk_14E = camera->unk_162; - camera->unk_160 = -1; + camera->parentCamIdx = 0; + camera->childCamIdx = camera->parentCamIdx; + camera->timer = -1; camera->globalCtx->envCtx.unk_E1 = 0; - Gameplay_ClearCamera(camera->globalCtx, camera->unk_164); + Gameplay_ClearCamera(camera->globalCtx, camera->thisIdx); } } s32 func_8005A02C(Camera* camera) { camera->unk_14C |= 0xC; camera->unk_14C &= ~(0x1000 | 0x8); - return 1; + return true; } -#ifdef NON_MATCHING -extern s32 D_8011DB14; -s32 Camera_ChangeMode(Camera* camera, s16 mode, u8 arg2) { - s32 phi_v0; - u32 temp_t8; - s32 phi_at; +s32 Camera_ChangeModeFlags(Camera* camera, s16 mode, u8 flags) { + static s32 modeChangeFlags = 0; if (QREG(89)) { osSyncPrintf("+=+(%d)+=+ recive request -> %s\n", camera->globalCtx->state.frames, sCameraModeNames[mode]); } - if ((camera->unk_14C & 0x20) && (arg2 == 0)) { + if (camera->unk_14C & 0x20 && flags == 0) { camera->unk_14A |= 0x20; return -1; - } else if (!(sCameraSettings[camera->setting].validModes & (1 << mode))) { - if (mode == CAM_MODE_SUBJECT) { + } + + if (!((sCameraSettings[camera->setting].unk_00 & 0x3FFFFFFF) & (1 << mode))) { + if (mode == CAM_MODE_FIRSTPERSON) { osSyncPrintf("camera: error sound\n"); func_80078884(NA_SE_SY_ERROR); } + if (camera->mode != CAM_MODE_NORMAL) { osSyncPrintf(VT_COL(YELLOW, BLACK) "camera: change camera mode: force NORMAL: %s %s refused\n" VT_RST, sCameraSettingNames[camera->setting], sCameraModeNames[mode]); camera->mode = CAM_MODE_NORMAL; Camera_CopyModeValuesToPREG(camera, camera->mode); func_8005A02C(camera); - phi_at = 0xC0000000; + return 0xC0000000 | mode; } else { - camera->unk_14A = (s16)(camera->unk_14A | 0x20); - camera->unk_14A = (s16)(camera->unk_14A | 2); + camera->unk_14A |= 0x20; + camera->unk_14A |= 2; return 0; } - } else if ((mode == camera->mode) && (arg2 == 0)) { - camera->unk_14A |= 0x20; - camera->unk_14A |= 2; - return -1; } else { + if (mode == camera->mode && flags == 0) { + camera->unk_14A |= 0x20; + camera->unk_14A |= 2; + return -1; + } camera->unk_14A |= 0x20; camera->unk_14A |= 2; - camera = camera; Camera_CopyModeValuesToPREG(camera, mode); - temp_t8 = mode - 1; - phi_v0 = 0; + modeChangeFlags = 0; switch (mode) { - default: + case CAM_MODE_FIRSTPERSON: + modeChangeFlags = 0x20; break; - case 5: // switch 1 - phi_v0 = 0x20; + case CAM_MODE_BATTLE: + modeChangeFlags = 4; break; - case 3: // switch 1 - phi_v0 = 4; - break; - case 1: // switch 1 - phi_v0 = 0; - if (camera->target != NULL) { - phi_v0 = 0; - if (camera->target->id != ACTOR_EN_BOOM) { - phi_v0 = 8; - } + case CAM_MODE_FOLLOWTARGET: + if (camera->target != NULL && camera->target->id != ACTOR_EN_BOOM) { + modeChangeFlags = 8; } break; - case 0: // switch 1 - case 2: // switch 1 - case 7: // switch 1 - case 14: // switch 1 - case 18: // switch 1 - phi_v0 = 2; + case CAM_MODE_TARGET: + case CAM_MODE_TALK: + case CAM_MODE_BOWARROWZ: + case CAM_MODE_HANGZ: + case CAM_MODE_PUSHPULL: + modeChangeFlags = 2; break; } switch (camera->mode) { - default: - break; - case 6: // switch 2 - if ((phi_v0 & 0x20) != 0) { - camera->unk_15E = (u16)0xAU; + case CAM_MODE_FIRSTPERSON: + if (modeChangeFlags & 0x20) { + camera->animState = 0xA; } break; - case 1: // switch 2 - if ((phi_v0 & 0x10) != 0) { - camera->unk_15E = (u16)0xAU; + case CAM_MODE_TARGET: + if (modeChangeFlags & 0x10) { + camera->animState = 0xA; } - phi_v0 |= 1; + modeChangeFlags |= 1; break; - case 17: // switch 2 - phi_v0 |= 1; + case CAM_MODE_CHARGE: + modeChangeFlags |= 1; break; - case 2: // switch 2 - if ((phi_v0 & 8) != 0) { - camera->unk_15E = (u16)0xAU; + case CAM_MODE_FOLLOWTARGET: + if (modeChangeFlags & 8) { + camera->animState = 0xA; } - phi_v0 |= 1; + modeChangeFlags |= 1; break; - case 4: // switch 2 - if ((phi_v0 & 4) != 0) { - camera->unk_15E = (u16)0xAU; + case CAM_MODE_BATTLE: + if (modeChangeFlags & 4) { + camera->animState = 0xA; } - phi_v0 |= 1; + modeChangeFlags |= 1; break; - case 8: // switch 2 - case 15: // switch 2 - case 19: // switch 2 - phi_v0 |= 1; + case CAM_MODE_BOWARROWZ: + case CAM_MODE_HANGZ: + case CAM_MODE_PUSHPULL: + modeChangeFlags |= 1; break; - case 0: // switch 2 - if ((phi_v0 & 0x10) != 0) { - camera->unk_15E = (u16)0xAU; + case CAM_MODE_NORMAL: + if (modeChangeFlags & 0x10) { + camera->animState = 0xA; } break; } - phi_v0 &= ~0x10; - D_8011DB14 = phi_v0; - if (camera->status == 7) { - switch (phi_v0) { + modeChangeFlags &= ~0x10; + if (camera->status == CAM_STAT_ACTIVE) { + switch (modeChangeFlags) { case 1: - func_80078884(NA_SE_PL_WALK_GROUND - SFX_FLAG); + func_80078884(0); break; case 2: - if (1 == camera->globalCtx->roomCtx.curRoom.unk_03) { + if (camera->globalCtx->roomCtx.curRoom.unk_03 == 1) { func_80078884(NA_SE_SY_ATTENTION_URGENCY); } else { func_80078884(NA_SE_SY_ATTENTION_ON); @@ -3536,47 +7737,38 @@ s32 Camera_ChangeMode(Camera* camera, s16 mode, u8 arg2) { } func_8005A02C(camera); camera->mode = mode; - phi_at = 0x80000000; + return 0x80000000 | mode; } - return mode | phi_at; -} -#else -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ChangeMode.s") -#endif - -s32 func_8005A444(Camera* camera, s16 arg1) { - return Camera_ChangeMode(camera, arg1, 0); } -s32 func_8005A470(Camera* camera, s16 arg1) { - s32 phi_return; +s32 Camera_ChangeMode(Camera* camera, s16 mode) { + return Camera_ChangeModeFlags(camera, mode, 0); +} +s32 Camera_CheckValidMode(Camera* camera, s16 mode) { if (QREG(89) != 0) { - osSyncPrintf("+=+=+=+ recive asking -> %s (%s)\n", sCameraModeNames[arg1], + osSyncPrintf("+=+=+=+ recive asking -> %s (%s)\n", sCameraModeNames[mode], sCameraSettingNames[camera->setting]); } - if (!(sCameraSettings[camera->setting].validModes & (1 << arg1))) { + if (!(sCameraSettings[camera->setting].validModes & (1 << mode))) { return 0; - } else if (arg1 == camera->mode) { + } else if (mode == camera->mode) { return -1; } else { - return arg1 | 0x80000000; + return mode | 0x80000000; } } -#ifdef NON_MATCHING -s16 Camera_ChangeSetting(Camera* camera, s16 setting, s16 arg2) { - s16 temp_t1; - s32 t; - - if ((camera->unk_14A & 1) && (((sCameraSettings[camera->setting].unk_00 & 0xF000000) >> 0x18) >= - (sCameraSettings[setting].unk_00 & 0xF000000) >> 0x18)) { - camera->unk_14A |= 0x10; - return -2; +s16 Camera_ChangeSettingFlags(Camera* camera, s16 setting, s16 flags) { + if ((camera->unk_14A & 1) != 0) { + if ((u32)((u32)(sCameraSettings[camera->setting].unk_00 & 0xF000000) >> 0x18) >= + (u32)((u32)(sCameraSettings[setting].unk_00 & 0xF000000) >> 0x18)) { + camera->unk_14A |= 0x10; + return -2; + } } - - if ((setting == CAM_SET_SPOT05A || setting == CAM_SET_SPOT05B) && LINK_IS_ADULT && - (camera->globalCtx->sceneNum == 0x56)) { + if (((setting == CAM_SET_SPOT05A) || (setting == CAM_SET_SPOT05B)) && (gSaveContext.linkAge == 0) && + (camera->globalCtx->sceneNum == SCENE_SPOT05)) { camera->unk_14A |= 0x10; return -5; } @@ -3586,135 +7778,128 @@ s16 Camera_ChangeSetting(Camera* camera, s16 setting, s16 arg2) { return -0x63; } - if (setting == camera->setting && !(arg2 & 1)) { + if ((setting == camera->setting) && (!(flags & 1))) { camera->unk_14A |= 0x10; - if (!(arg2 & 2)) { + if (!(flags & 2)) { camera->unk_14A |= 1; } return -1; } camera->unk_14A |= 0x10; - - if (1 && !(arg2 & 2)) { + if ((flags & 2) == 0) { camera->unk_14A |= 1; } - camera->unk_14C |= (0x8 | 0x4); - camera->unk_14C &= ~(0x1000 | 0x8); - if (!(sCameraSettings[camera->setting].unk_bit1)) { - camera->unk_154 = camera->setting; + camera->unk_14C |= 0xC; + camera->unk_14C &= ~0x1008; + + if (!(sCameraSettings[camera->setting].unk_00 & 0x40000000)) { + camera->prevSetting = camera->setting; } - t = sCameraSettings[camera->setting].unk_00 & 0x40000000; - if (arg2 & 8) { - camera->unk_148 = camera->unk_166; - camera->unk_166 = -1; - } else if (!(arg2 & 4)) { - if (!t) { - camera->unk_166 = camera->unk_148; + if (flags & 8) { + if (1) {} + camera->camDataIdx = camera->prevCamDataIdx; + camera->prevCamDataIdx = -1; + } else if (!(flags & 4)) { + if (!(sCameraSettings[camera->setting].unk_00 & 0x40000000)) { + camera->prevCamDataIdx = camera->camDataIdx; } - camera->unk_148 = -1; + camera->camDataIdx = -1; } camera->setting = setting; - if (Camera_ChangeMode(camera, camera->mode, 1) >= 0) { + if (Camera_ChangeModeFlags(camera, camera->mode, 1) >= 0) { Camera_CopyModeValuesToPREG(camera, camera->mode); } osSyncPrintf(VT_SGR("1") "%06u:" VT_RST " camera: change camera[%d] set %s\n", camera->globalCtx->state.frames, - camera->unk_164, sCameraSettingNames[camera->setting]); + camera->thisIdx, sCameraSettingNames[camera->setting]); return setting; } -#else -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ChangeSetting.s") -#endif -s32 func_8005A77C(Camera* camera, s16 setting) { - return Camera_ChangeSetting(camera, setting, 0); +s32 Camera_ChangeSetting(Camera* camera, s16 setting) { + return Camera_ChangeSettingFlags(camera, setting, 0); } -#ifdef NON_MATCHING -s16 func_8005A7A8(Camera* arg0, s32 arg1) { - s16 temp_v0; - s16 temp_v1; +s32 Camera_ChangeDataIdx(Camera* camera, s32 camDataIdx) { + s16 newCameraSetting; + s16 settingChangeSuccessful; - if (arg1 == -1 || arg1 == arg0->unk_148) { - arg0->unk_14A |= 0x40; + if (camDataIdx == -1 || camDataIdx == camera->camDataIdx) { + camera->unk_14A |= 0x40; return -1; - } else if (!(arg0->unk_14A & 0x40)) { - temp_v0 = func_80044740(arg0, arg1); - arg0->unk_14A |= 0x40; - temp_v1 = (Camera_ChangeSetting(arg0, temp_v0, 5) < 0) ^ 1; - if ((temp_v1 != 0) || sCameraSettings[arg0->setting].unk_00 & 0x80000000) { - arg0->unk_148 = arg1; - arg0->unk_14A |= 4; - Camera_CopyModeValuesToPREG(arg0, arg0->mode); - } else if (temp_v1 < -1) { - osSyncPrintf(VT_COL(RED, WHITE) "camera: error: illegal camera ID (%d) !! (%d|%d|%d)\n" VT_RST, arg1, - arg0->unk_164, 0x32, temp_v0); + } + + if (!(camera->unk_14A & 0x40)) { + newCameraSetting = Camera_GetCamDataSetting(camera, camDataIdx); + camera->unk_14A |= 0x40; + settingChangeSuccessful = Camera_ChangeSettingFlags(camera, newCameraSetting, 5) >= 0; + if (settingChangeSuccessful || sCameraSettings[camera->setting].unk_00 & 0x80000000) { + camera->camDataIdx = camDataIdx; + camera->unk_14A |= 4; + Camera_CopyModeValuesToPREG(camera, camera->mode); + } else if (settingChangeSuccessful < -1) { + // @bug: This condition can never happen since settingChangeSuccesful is only ever 0 or 1. + osSyncPrintf(VT_COL(RED, WHITE) "camera: error: illegal camera ID (%d) !! (%d|%d|%d)\n" VT_RST, camDataIdx, + camera->thisIdx, 0x32, newCameraSetting); } - return temp_v1; + return 0x80000000 | camDataIdx; } } -#else -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_8005A7A8.s") -#endif -#ifdef NON_MATCHING -// this code uses lw, then lhu. D_8015CD46 is probably part of a struct. -Vec3s* func_8005A8C4(Vec3s* arg0, Camera* camera) { - if (D_8011D394 != 0) { - *arg0 = D_8015CE46; - return arg0; +Vec3s* Camera_GetInputDir(Vec3s* dst, Camera* camera) { + if (gDbgCamEnabled != 0) { + *dst = D_8015BD80.unk_10C6; + return dst; } else { - *arg0 = camera->unk_134; - return arg0; + *dst = camera->inputDir; + return dst; } } -#else -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_8005A8C4.s") -#endif -s16 func_8005A948(Camera* camera) { - Vec3s sp18; +s16 Camera_GetInputDirPitch(Camera* camera) { + Vec3s dir; - func_8005A8C4(&sp18, camera); - return sp18.y; + Camera_GetInputDir(&dir, camera); + return dir.x; } -#ifdef NON_MATCHING -// Same issue as func_8005A8C4 -Vec3s* func_8005A970(Vec3s* arg0, Camera* arg1) { - if (D_8011D394 != 0) { - *arg0 = D_8015CE46; - return arg0; +s16 Camera_GetInputDirYaw(Camera* camera) { + Vec3s dir; + + Camera_GetInputDir(&dir, camera); + return dir.y; +} + +Vec3s* Camera_GetCamDir(Vec3s* dst, Camera* camera) { + if (gDbgCamEnabled != 0) { + *dst = D_8015BD80.unk_10C6; + return dst; } else { - *arg0 = arg1->unk_13A; - return arg0; + *dst = camera->camDir; + return dst; } } -#else -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_8005A970.s") -#endif -s16 func_8005A9CC(s32 arg0) { - Vec3s sp18; +s16 Camera_GetCamDirPitch(Camera* camera) { + Vec3s camDir; - func_8005A970(&sp18, arg0); - return sp18.x; + Camera_GetCamDir(&camDir, camera); + return camDir.x; } -s16 func_8005A9F4(Camera* camera) { - Vec3s sp18; +s16 Camera_GetCamDirYaw(Camera* camera) { + Vec3s camDir; - func_8005A970(&sp18, camera); - return sp18.y; + Camera_GetCamDir(&camDir, camera); + return camDir.y; } -s32 func_8005AA1C(Camera* camera, s32 arg1, s16 y, s32 countdown) { +s32 Camera_AddQuake(Camera* camera, s32 arg1, s16 y, s32 countdown) { s16 quakeIdx; quakeIdx = Quake_Add(camera, 3); @@ -3727,20 +7912,17 @@ s32 func_8005AA1C(Camera* camera, s32 arg1, s16 y, s32 countdown) { return 1; } -#ifdef NON_MATCHING -// additional move v0, zero added. s32 Camera_SetParam(Camera* camera, s32 param, void* value) { - s32 pad; - Vec3f sp4; + s32 pad[3]; if (value != NULL) { switch (param) { case 1: - camera->unk_15C &= ~(0x10 | 0x8 | 0x1); + camera->paramFlags &= ~(0x10 | 0x8 | 0x1); camera->at = *(Vec3f*)value; break; case 16: - camera->unk_15C &= ~(0x10 | 0x8 | 0x1); + camera->paramFlags &= ~(0x10 | 0x8 | 0x1); camera->targetPosRot.pos = *(Vec3f*)value; break; case 8: @@ -3748,93 +7930,61 @@ s32 Camera_SetParam(Camera* camera, s32 param, void* value) { break; } camera->target = (Actor*)value; - camera->unk_15C &= ~(0x10 | 0x8 | 0x1); + camera->paramFlags &= ~(0x10 | 0x8 | 0x1); break; case 2: - sp4 = *(Vec3f*)value; - camera->eyeNext = sp4; - camera->eye = sp4; + camera->eye = camera->eyeNext = *(Vec3f*)value; break; case 4: - camera->unk_68 = *(Vec3f*)value; + camera->up = *(Vec3f*)value; break; case 0x40: - camera->roll = *(f32*)value * (M_PI / 180.0f) + 0.5f; + camera->roll = DEGF_TO_BINANG(*(f32*)value); break; - case 32: + case 0x20: camera->fov = *(f32*)value; break; - case 3: - case 5: - case 6: - case 7: - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 17: - case 18: - case 19: - case 20: - case 21: - case 22: - case 23: - case 24: - case 25: - case 26: - case 27: - case 28: - case 29: - case 30: - case 31: - return false; default: return false; } - camera->unk_15C |= param; - return true; + camera->paramFlags |= param; } else { return false; } + return true; } -#else -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_SetParam.s") -#endif -s32 func_8005AC24(Camera* camera, s16 arg1) { - camera->unk_15C &= ~arg1; +s32 Camera_UnsetParam(Camera* camera, s16 param) { + camera->paramFlags &= ~param; return true; } s32 func_8005AC48(Camera* camera, s16 arg1) { camera->unk_14C = arg1; + return true; +} + +s32 Camera_ResetAnim(Camera* camera) { + camera->animState = 0; return 1; } -s32 func_8005AC60(Camera* camera) { - camera->unk_15E = 0; - return 1; -} +s32 Camera_SetCSParams(Camera* camera, CutsceneCameraPoint* atPoints, CutsceneCameraPoint* eyePoints, Player* player, + s16 relativeToPlayer) { + PosRot playerPosRot; -s32 func_8005AC6C(Camera* camera, CutsceneCameraPoint* atPoints, CutsceneCameraPoint* eyePoints, Player* player, - s16 relativeToPlayer) { - PosRot sp24; + camera->data0 = atPoints; + camera->data1 = eyePoints; + camera->data2 = relativeToPlayer; - camera->atPoints = atPoints; - camera->eyePoints = eyePoints; - camera->relativeToPlayer = relativeToPlayer; - - if (camera->relativeToPlayer != 0) { + if (camera->data2 != 0) { camera->player = player; - func_8002EF44(&sp24, &player->actor); - camera->playerPosRot = sp24; + func_8002EF44(&playerPosRot, &player->actor); + camera->playerPosRot = playerPosRot; - camera->unk_156 = -1; - camera->unk_D8 = 0.0f; - camera->unk_E0 = 0.0f; + camera->nextCamDataIdx = -1; + camera->xzSpeed = 0.0f; + camera->speedRatio = 0.0f; } return 1; @@ -3850,106 +8000,106 @@ s16 func_8005AD1C(Camera* camera, s16 arg1) { return camera->unk_14C; } -s32 func_8005AD40(Camera* camera, Actor* doorActor, s16 arg2, f32 arg3, s16 arg4, s16 arg5, s16 arg6) { +s32 Camera_ChangeDoorCam(Camera* camera, Actor* doorActor, s16 camDataIdx, f32 arg3, s16 timer1, s16 timer2, + s16 timer3) { + DoorParams* doorParams = (DoorParams*)camera->paramData; + if ((camera->setting == CAM_SET_DEMO4) || (camera->setting == CAM_SET_DOORC)) { return 0; } - camera->unk_00.doorCam.door = doorActor; - camera->unk_00.doorCam.unk_06 = arg4; - camera->unk_00.doorCam.unk_08 = arg5; - camera->unk_00.doorCam.unk_0A = arg6; - camera->unk_00.doorCam.unk_04 = arg2; + doorParams->doorActor = doorActor; + doorParams->timer1 = timer1; + doorParams->timer2 = timer2; + doorParams->timer3 = timer3; + doorParams->camDataIdx = camDataIdx; - if (arg2 == -99) { + if (camDataIdx == -99) { Camera_CopyModeValuesToPREG(camera, camera->mode); return -99; } - if (arg2 == -1) { - func_8005A77C(camera, CAM_SET_DOORC); + if (camDataIdx == -1) { + Camera_ChangeSetting(camera, CAM_SET_DOORC); osSyncPrintf(".... change default door camera (set %d)\n", CAM_SET_DOORC); } else { - s32 ret = func_80044740(camera, arg2); + s32 setting = Camera_GetCamDataSetting(camera, camDataIdx); camera->unk_14A |= 0x40; - if (func_8005A77C(camera, ret) >= 0) { - camera->unk_148 = arg2; + if (Camera_ChangeSetting(camera, setting) >= 0) { + camera->camDataIdx = camDataIdx; camera->unk_14A |= 4; } - osSyncPrintf("....change door camera ID %d (set %d)\n", camera->unk_148, camera->setting); + osSyncPrintf("....change door camera ID %d (set %d)\n", camera->camDataIdx, camera->setting); } Camera_CopyModeValuesToPREG(camera, camera->mode); return -1; } -s32 func_8005AE64(Camera* camera, Camera* otherCamera) { - s32 unused; - Vec3f sp30; +s32 Camera_Copy(Camera* dstCamera, Camera* srcCamera) { + s32 pad; - camera->unk_E4.x = 0.0f; - camera->unk_E4.y = 0.0f; - camera->unk_E4.z = 0.0f; - camera->unk_100 = 0.1f; - camera->at = otherCamera->at; + dstCamera->posOffset.x = 0.0f; + dstCamera->posOffset.y = 0.0f; + dstCamera->posOffset.z = 0.0f; + dstCamera->atLERPStepScale = 0.1f; + dstCamera->at = srcCamera->at; - sp30 = otherCamera->eye; - camera->eyeNext = sp30; - camera->eye = sp30; + dstCamera->eye = dstCamera->eyeNext = srcCamera->eye; - camera->dist = OLib_Vec3fDist(&camera->at, &camera->eye); - camera->fov = otherCamera->fov; - camera->roll = otherCamera->roll; - func_80043B60(camera); + dstCamera->dist = OLib_Vec3fDist(&dstCamera->at, &dstCamera->eye); + dstCamera->fov = srcCamera->fov; + dstCamera->roll = srcCamera->roll; + func_80043B60(dstCamera); - if (camera->player != NULL) { - func_8002EF14(&camera->playerPosRot, &camera->player->actor); - camera->unk_E4.x = camera->at.x - camera->playerPosRot.pos.x; - camera->unk_E4.y = camera->at.y - camera->playerPosRot.pos.y; - camera->unk_E4.z = camera->at.z - camera->playerPosRot.pos.z; - camera->dist = OLib_Vec3fDist(&camera->playerPosRot.pos, &camera->eye); - camera->unk_CC.x = 1.0f; - camera->unk_CC.y = 1.0f; + if (dstCamera->player != NULL) { + func_8002EF14(&dstCamera->playerPosRot, &dstCamera->player->actor); + dstCamera->posOffset.x = dstCamera->at.x - dstCamera->playerPosRot.pos.x; + dstCamera->posOffset.y = dstCamera->at.y - dstCamera->playerPosRot.pos.y; + dstCamera->posOffset.z = dstCamera->at.z - dstCamera->playerPosRot.pos.z; + dstCamera->dist = OLib_Vec3fDist(&dstCamera->playerPosRot.pos, &dstCamera->eye); + dstCamera->xzOffsetUpdateRate = 1.0f; + dstCamera->yOffsetUpdateRate = 1.0f; } - return 1; + return true; } -s32 func_8005AFA8() { - return D_8011D394; +s32 Camera_GetDbgCamEnabled() { + return gDbgCamEnabled; } -Vec3f* func_8005AFB4(Vec3f* dst, Camera* camera) { - *dst = camera->unk_80; +Vec3f* Camera_GetSkyboxOffset(Vec3f* dst, Camera* camera) { + *dst = camera->skyboxOffset; return dst; } -void Camera_SetCameraData(Camera* camera, s16 arg1, CutsceneCameraPoint* atPoints, CutsceneCameraPoint* eyePoints, - s16 relativeToPlayer, s16 arg5, s32 arg6) { - if (arg1 & 0x1) { - camera->atPoints = atPoints; +void Camera_SetCameraData(Camera* camera, s16 setDataFlags, void* data0, void* data1, s16 data2, s16 data3, + UNK_TYPE arg6) { + if (setDataFlags & 0x1) { + camera->data0 = data0; } - if (arg1 & 0x2) { - camera->eyePoints = eyePoints; + if (setDataFlags & 0x2) { + camera->data1 = data1; } - if (arg1 & 0x4) { - camera->relativeToPlayer = relativeToPlayer; + if (setDataFlags & 0x4) { + camera->data2 = data2; } - if (arg1 & 0x8) { - camera->unk_12E = arg5; + if (setDataFlags & 0x8) { + camera->data3 = data3; } - if (arg1 & 0x10) { + if (setDataFlags & 0x10) { osSyncPrintf(VT_COL(RED, WHITE) "camera: setCameraData: last argument not alive!\n" VT_RST); } } -s32 func_8005B044() { - if (QREG(0) == 0) { +s32 Camera_QRegInit() { + if (!R_RELOAD_CAM_PARAMS) { QREG(2) = 1; QREG(10) = -1; QREG(11) = 100; @@ -3980,7 +8130,7 @@ s32 func_8005B044() { } QREG(65) = 50; - return 1; + return true; } s32 func_8005B198() { @@ -3990,10 +8140,10 @@ s32 func_8005B198() { s16 func_8005B1A4(Camera* camera) { camera->unk_14C |= 0x8; - if ((camera->unk_164 == 0) && (camera->globalCtx->activeCamera != 0)) { + if ((camera->thisIdx == 0) && (camera->globalCtx->activeCamera != 0)) { camera->globalCtx->cameraPtrs[camera->globalCtx->activeCamera]->unk_14C |= 0x8; return camera->globalCtx->activeCamera; } - return camera->unk_164; + return camera->thisIdx; } diff --git a/src/code/z_camera_data.c b/src/code/z_camera_data.c new file mode 100644 index 0000000000..4ec44ff3d8 --- /dev/null +++ b/src/code/z_camera_data.c @@ -0,0 +1,3573 @@ +#include +#include + +typedef struct { + s16 val; + s16 param; +} CameraModeValue; + +typedef struct { + s16 funcIdx; + s16 valueCnt; + CameraModeValue* values; +} CameraMode; + +typedef struct { + union { + u32 unk_00; + struct { + u32 unk_bit0 : 1; + u32 unk_bit1 : 1; + u32 validModes : 30; + }; + }; + CameraMode* cameraModes; +} CameraSetting; + +/*==================================================================*/ +// Data +s16 sOREGInit[] = { + 0, 1, 5, 5, 5, 14500, 20, 16, 150, 25, 150, 6, 10, 10, 0, 0, 1, 100, + 250, 120, 80, 30, 120, 4, 1, 50, 20, 1800, 50, 50, 50, 20, 20, -10, -5460, -9100, + -6, 8, 15, 75, 60, 12, 110, 40, 50, 250, -10, 30, 30, 70, 20, 20, 20, +}; + +s16 sOREGInitCnt = 53; + +s16 sPREGInit[] = { + -20, 200, 300, 10, 12, 10, 35, 60, 60, 3, 0, -40, 20, 25, 45, -5, 15, 15, 20, 0, 0, 0, 6, 60, 30, 0, 5, +}; + +s16 sPREGInitCnt = 27; + +char sCameraSettingNames[][12] = { + "NONE ", "NORMAL0 ", "NORMAL1 ", "DUNGEON0 ", "DUNGEON1 ", "NORMAL3 ", "HORSE0 ", + "BOSS_GOMA ", "BOSS_DODO ", "BOSS_BARI ", "BOSS_FGANON", "BOSS_BAL ", "BOSS_SHADES", "BOSS_MOFA ", + "BOSS_TWIN0 ", "BOSS_TWIN1 ", "BOSS_GANON1", "BOSS_GANON2", "TOWER0 ", "TOWER1 ", "FIXED0 ", + "FIXED1 ", "CIRCLE0 ", "CIRCLE2 ", "CIRCLE3 ", "PREREND0 ", "PREREND1 ", "PREREND3 ", + "DOOR0 ", "DOORC ", "RAIL3 ", "START0 ", "START1 ", "FREE0 ", "FREE2 ", + "CIRCLE4 ", "CIRCLE5 ", "DEMO0 ", "DEMO1 ", "MORI1 ", "ITEM0 ", "ITEM1 ", + "DEMO3 ", "DEMO4 ", "UFOBEAN ", "LIFTBEAN ", "SCENE0 ", "SCENE1 ", "HIDAN1 ", + "HIDAN2 ", "MORI2 ", "MORI3 ", "TAKO ", "SPOT05A ", "SPOT05B ", "HIDAN3 ", + "ITEM2 ", "CIRCLE6 ", "NORMAL2 ", "FISHING ", "DEMOC ", "UO_FIBER ", "DUNGEON2 ", + "TEPPEN ", "CIRCLE7 ", "NORMAL4 ", +}; + +char sCameraModeNames[][12] = { + "NORMAL ", "PARALLEL ", "KEEPON ", "TALK ", "BATTLE ", "CLIMB ", "SUBJECT ", + "BOWARROW ", "BOWARROWZ ", "FOOKSHOT ", "BOOMERANG ", "PACHINCO ", "CLIMBZ ", "JUMP ", + "HANG ", "HANGZ ", "FREEFALL ", "CHARGE ", "STILL ", "PUSHPULL ", "BOOKEEPON ", +}; + +CameraModeValue D_8011A3A0[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 200, 1 }, // distMin + { 300, 2 }, // distMax + { 10, 3 }, // pitchtarget + { 12, 4 }, // unk_0C + { 10, 5 }, // unk_10 + { 35, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 60, 8 }, // atLERPScaleMax + { 0x0003, 9 }, // flags +}; + +CameraModeValue D_8011A3C8[] = { + /* CAM_FUNC_PARA1 */ + { -20, 0 }, // unk_00 + { 250, 1 }, // distTarget + { 0, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 45, 7 }, // fovTarget + { 50, 8 }, // unk_14 + { 0x200A, 9 }, // flags + { -40, 11 }, // unk_18 + { 20, 12 } // unk_1C +}; + +CameraModeValue D_8011A3F4[] = { + /* CAM_FUNC_KEEP1 */ + { -20, 0 }, // unk_00 + { 120, 1 }, // unk_04 + { 140, 2 }, // unk_08 + { 25, 13 }, // unk_0C + { 45, 14 }, // unk_10 + { -5, 15 }, // unk_14 + { 15, 16 }, // unk_18 + { 15, 17 }, // unk_1C + { 45, 7 }, // unk_20 + { 50, 8 }, // unk_24 + { 0x2001, 9 }, // flags + { -50, 11 }, // unk_28 + { 30, 12 }, // unk_2C +}; + +CameraModeValue D_8011A428[] = { + /* CAM_FUNC_KEEP3 */ + { -30, 0 }, // yOffset + { 70, 1 }, // minDist + { 200, 2 }, // maxDist + { 40, 13 }, // swingYawInitial + { 10, 14 }, // swingYawFinal + { 0, 15 }, // swingPitchInitial + { 5, 16 }, // swingPitchFinal + { 70, 17 }, // swingPitchAdj + { 45, 7 }, // fovTarget + { 50, 8 }, // atLERPScaleMax + { 10, 4 }, // initTimer + { 0x3500, 9 }, // flags +}; + +CameraModeValue D_8011A458[] = { + /* CAM_FUNC_BATT1 */ + { -20, 0 }, // yOffset (PCT) + { 180, 1 }, // distance + { 10, 13 }, // swingYawInitial + { 80, 14 }, // swingYawFinal + { 0, 15 }, // swingPitchInitial + { 10, 16 }, // swingPitchFinal + { 25, 17 }, // swingPitchAdj (PCT) + { 50, 7 }, // fov + { 80, 8 }, // atLERPScaleOnGround (PCT) + { 0x2002, 9 }, // flags + { -40, 11 }, // yOffsetOffGround (PCT) + { 25, 12 }, // atLERPScaleOffGround (PCT) +}; + +CameraModeValue D_8011A488[] = { + /* CAM_FUNC_JUMP2 */ + { -20, 0 }, // atYOffset + { 200, 1 }, // minDist + { 300, 2 }, // maxDist + { 20, 18 }, // minMaxDistFactor + { 5, 4 }, // yawUpdRateTarget + { 5, 5 }, // xzUpdRateTarget + { 60, 7 }, // fovTarget + { 40, 8 }, // atLERPStepScale + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011A4AC[] = { + /* CAM_FUNC_SUBJ3 */ + { 0, 0 }, // eyeNextYOffset + { 5, 1 }, // eyeDist + { 50, 2 }, // eyeNextDist + { 10, 4 }, // unk_0C + { 0, 19 }, // atOffset.x + { 0, 20 }, // atOffset.y + { 0, 21 }, // atOffset.z + { 45, 7 }, // fovTarget + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011A4D0[] = { + /* CAM_FUNC_SUBJ3 */ + { -7, 0 }, // eyeNextYOffset + { 14, 1 }, // eyeDist + { 50, 2 }, // eyeNextDist + { 10, 4 }, // unk_0C + { 0, 19 }, // atOffset.x + { -30, 20 }, // atOffset.y + { -5, 21 }, // atOffset.z + { 45, 7 }, // fovTarget + { 0x2000, 9 }, // flags +}; + +CameraModeValue D_8011A4F4[] = { + /* CAM_FUNC_SUBJ3 */ + { 20, 0 }, // eyeNextYOffset + { 70, 1 }, // eyeDist + { 70, 2 }, // eyeNextDist + { 10, 4 }, // unk_0C + { -120, 19 }, // atOffset.x + { 20, 20 }, // atOffset.y + { 0, 21 }, // atOffset.z + { 45, 7 }, // fovTarget + { 0x2000, 9 }, // flags +}; + +CameraModeValue D_8011A518[] = { + /* CAM_FUNC_SPEC5 */ + { -20, 0 }, // yOffset + { 80, 1 }, // eyeDist + { 250, 2 }, // minDistForRot + { 45, 3 }, // timerInit + { 60, 7 }, // pitch + { 40, 8 }, // fovTarget + { 6, 22 }, // atMaxLERPScale + { 0x2000, 9 }, // flags +}; + +CameraModeValue D_8011A538[] = { + /* CAM_FUNC_SUBJ3 */ + { 5, 0 }, // eyeNextYOffset + { 50, 1 }, // eyeDist + { 50, 2 }, // eyeNextDist + { 10, 4 }, // unk_0C + { 0, 19 }, // atOffset.x + { 0, 20 }, // atOffset.y + { 0, 21 }, // atOffset.z + { 45, 7 }, // fovTarget + { 0x2000, 9 }, // flags +}; + +CameraModeValue D_8011A55C[] = { + /* CAM_FUNC_SUBJ3 */ + { -7, 0 }, // eyeNextYOffset + { 14, 1 }, // eyeDist + { 50, 2 }, // eyeNextDist + { 10, 4 }, // unk_0C + { -9, 19 }, // atOffset.x + { -63, 20 }, // atOffset.y + { -30, 21 }, // atOffset.z + { 45, 7 }, // fovTarget + { 0x2000, 9 }, // flags +}; + +CameraModeValue D_8011A580[] = { + /* CAM_FUNC_JUMP2 */ + { -20, 0 }, // atYOffset + { 200, 1 }, // minDist + { 300, 2 }, // maxDist + { 20, 18 }, // minMaxDistFactor + { 999, 4 }, // yawUpdRateTarget + { 5, 5 }, // xzUpdRateTarget + { 60, 7 }, // fovTarget + { 40, 8 }, // atLERPStepScale + { 0x2006, 9 }, // flags +}; + +CameraModeValue D_8011A5A4[] = { + /* CAM_FUNC_JUMP1 */ + { -20, 0 }, // atYOffset + { 200, 1 }, // distMin + { 300, 2 }, // distMax + { 12, 4 }, // yawUpdateRateTarget + { 35, 6 }, // maxYawUpdate + { 60, 7 }, // unk_14 + { 40, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011A5C4[] = { + /* CAM_FUNC_UNIQ1 */ + { -80, 0 }, // yOffset + { 200, 1 }, // distMin + { 300, 2 }, // distMax + { 40, 3 }, // pitchTarget + { 60, 7 }, // fovTarget + { 10, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011A5E0[] = { + /* CAM_FUNC_UNIQ1 */ + { -120, 0 }, // yOffset + { 300, 1 }, // distMin + { 300, 2 }, // distMax + { 70, 3 }, // pitchTarget + { 45, 7 }, // fovTarget + { 10, 8 }, // atLERPScaleMax + { 0x2000, 9 }, // flags +}; + +CameraModeValue D_8011A5FC[] = { + /* CAM_FUNC_JUMP1 */ + { -20, 0 }, // atYOffset + { 200, 1 }, // distMin + { 300, 2 }, // distMax + { 15, 4 }, // yawUpdateRateTarget + { 80, 6 }, // maxYawUpdate + { 60, 7 }, // unk_14 + { 20, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011A61C[] = { + /* CAM_FUNC_BATT4 */ + { -20, 0 }, // yOffset + { 300, 1 }, // rTarget + { 50, 3 }, // pitchTarget + { 2, 4 }, // lerpUpdateRate + { 80, 7 }, // fovTarget + { 20, 8 }, // atLERPTarget + { 0xF000, 9 }, // flags +}; + +CameraModeValue D_8011A638[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 200, 1 }, // distMin + { 300, 2 }, // distMax + { 10, 3 }, // pitchTarget + { 100, 4 }, // unk_0C + { 10, 5 }, // unk_10 + { 100, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 5, 8 }, // atLERPScaleMax + { 0xF003, 9 }, // flags +}; + +CameraModeValue D_8011A660[] = { + /* CAM_FUNC_PARA1 */ + { 0, 0 }, // unk_00 + { 250, 1 }, // distTarget + { 25, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 70, 7 }, // fovTarget + { 30, 8 }, // unk_14 + { 0x206A, 9 }, // flags + { -20, 11 }, // unk_18 + { 30, 12 }, // unk_1C +}; + +CameraModeValue D_8011A68C[] = { + /* CAM_FUNC_KEEP1 */ + { -5, 0 }, // unk_00 + { 120, 1 }, // unk_04 + { 140, 2 }, // unk_08 + { 5, 13 }, // unk_0C + { 85, 14 }, // unk_10 + { 10, 15 }, // unk_14 + { 5, 16 }, // unk_18 + { 25, 17 }, // unk_1C + { 45, 7 }, // unk_20 + { 50, 8 }, // unk_24 + { 0x2001, 9 }, // flags + { -15, 11 }, // unk_28 + { 30, 12 }, // unk_2C +}; + +CameraModeValue sSetNorm1ModeNormVals[] = { + /* CAM_FUNC_NORM1 */ + { 0, 0 }, // yOffset + { 200, 1 }, // distMin + { 400, 2 }, // distMax + { 10, 3 }, // pitchTarget + { 12, 4 }, // unk_0C + { 20, 5 }, // unk_10 + { 40, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 60, 8 }, // atLERPScaleMax + { 0x0003, 9 }, // flags +}; + +CameraModeValue sSetNorm1ModeParaVals[] = { + /* CAM_FUNC_PARA1 */ + { 0, 0 }, // unk_00 + { 250, 1 }, // distTarget + { 0, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 45, 7 }, // fovTarget + { 50, 8 }, // unk_14 + { 0x2002, 9 }, // flags + { -40, 11 }, // unk_18 + { 20, 12 }, // unk_1C +}; + +CameraModeValue D_8011A714[] = { + /* CAM_FUNC_KEEP1 */ + { -20, 0 }, // unk_00 + { 120, 1 }, // unk_04 + { 140, 2 }, // unk_08 + { 25, 13 }, // unk_0C + { 45, 14 }, // unk_10 + { -5, 15 }, // unk_14 + { 15, 16 }, // unk_18 + { 15, 17 }, // unk_1C + { 45, 7 }, // unk_20 + { 50, 8 }, // unk_24 + { 0x2001, 9 }, // flags + { -50, 11 }, // unk_28 + { 20, 12 }, // unk_2C +}; + +CameraModeValue D_8011A748[] = { + /* CAM_FUNC_BATT1 */ + { -20, 0 }, // yOffset (PCT) + { 250, 1 }, // distance + { 10, 13 }, // swingYawInitial + { 80, 14 }, // swingYawFinal + { 0, 15 }, // swingPitchInitial + { 10, 16 }, // swingPitchFinal + { 25, 17 }, // swingPitchAdj (PCT) + { 50, 7 }, // fov + { 65, 8 }, // atLERPScaleOnGround (PCT) + { 0x2002, 9 }, // flags + { -40, 11 }, // yOffsetOffGround (PCT) + { 25, 12 }, // atLERPScaleOffGround (PCT) +}; + +CameraModeValue D_8011A778[] = { + /* CAM_FUNC_SPEC5 */ + { -20, 0 }, // yOffset + { 80, 1 }, // eyeDist + { 250, 2 }, // minDistForRot + { 6, 22 }, // timerInit + { 45, 3 }, // pitch + { 60, 7 }, // fovTarget + { 40, 8 }, // atMaxLERPScale + { 0x2000, 9 }, // flags +}; + +CameraModeValue D_8011A798[] = { + /* CAM_FUNC_JUMP1 */ + { 0, 0 }, // atYOffset + { 250, 1 }, // distMin + { 400, 2 }, // distMax + { 15, 4 }, // yawUpdateRateTarget + { 50, 6 }, // maxYawUpdate + { 60, 7 }, // unk_14 + { 30, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011A7B8[] = { + /* CAM_FUNC_JUMP1 */ + { 0, 0 }, // atYOffset + { 200, 1 }, // distMin + { 400, 2 }, // distMax + { 30, 4 }, // yawUpdateRateTarget + { 80, 6 }, // maxYawUpdate + { 60, 7 }, // unk_14 + { 20, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011A7D8[] = { + /* CAM_FUNC_JUMP2 */ + { -20, 0 }, // atYOffset + { 200, 1 }, // minDist + { 400, 2 }, // maxDist + { 20, 18 }, // minMaxDistFactor + { 5, 4 }, // yawUpdRateTarget + { 5, 5 }, // xzUpdRateTarget + { 60, 7 }, // fovTarget + { 40, 8 }, // atLERPStepScale + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011A7FC[] = { + /* CAM_FUNC_JUMP2 */ + { -20, 0 }, // atYOffset + { 250, 1 }, // minDist + { 400, 2 }, // maxDist + { 20, 18 }, // minMaxDistFactor + { 999, 4 }, // yawUpdRateTarget + { 5, 5 }, // xzUpdRateTarget + { 60, 7 }, // fovTarget + { 40, 8 }, // atLERPStepScale + { 0x2006, 9 }, // flags +}; + +CameraModeValue D_8011A820[] = { + /* CAM_FUNC_BATT4 */ + { 0, 0 }, // yOffset + { 300, 1 }, // rTarget + { 50, 3 }, // pitchTarget + { 2, 4 }, // lerpUpdateRate + { 80, 7 }, // fovTarget + { 20, 8 }, // atLERPTarget + { 0xF000, 9 }, // flags +}; + +CameraModeValue D_8011A83C[] = { + /* CAM_FUNC_UNIQ1 */ + { -80, 0 }, // yOffset + { 200, 1 }, // distMin + { 400, 2 }, // distMax + { 40, 3 }, // pitchTarget + { 60, 7 }, // fovTarget + { 10, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011A858[] = { + /* CAM_FUNC_UNIQ1 */ + { -120, 0 }, // yOffset + { 400, 1 }, // distMin + { 400, 2 }, // distMax + { 70, 3 }, // pitchTarget + { 45, 7 }, // fovTarget + { 10, 8 }, // atLERPScaleMax + { 0x2000, 9 }, // flags +}; + +CameraModeValue D_8011A874[] = { + /* CAM_FUNC_NORM1 */ + { 0, 0 }, // yOffset + { 200, 1 }, // distMin + { 400, 2 }, // distMax + { 10, 3 }, // pitchTarget + { 100, 4 }, // unk_0C + { 20, 5 }, // unk_10 + { 100, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 5, 8 }, // atLERPScaleMax + { 0xF003, 9 }, // flags +}; + +CameraModeValue D_8011A89C[] = { + /* CAM_FUNC_NORM1 */ + { -10, 0 }, // yOffset + { 150, 1 }, // distMin + { 250, 2 }, // distMax + { 5, 3 }, // pitchTarget + { 10, 4 }, // unk_0C + { 5, 5 }, // unk_10 + { 30, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 60, 8 }, // atLERPScaleMax + { 0x0003, 9 }, // flags +}; + +CameraModeValue D_8011A8C4[] = { + /* CAM_FUNC_PARA1 */ + { -20, 0 }, // unk_00 + { 150, 1 }, // distTarget + { 0, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 45, 7 }, // fovTarget + { 50, 8 }, // unk_14 + { 0x200A, 9 }, // flags + { -40, 11 }, // unk_18 + { 20, 12 }, // unk_1C +}; + +CameraModeValue D_8011A8F0[] = { + /* CAM_FUNC_KEEP1 */ + { -20, 0 }, // unk_00 + { 120, 1 }, // unk_04 + { 140, 2 }, // unk_08 + { 25, 13 }, // unk_0C + { 45, 14 }, // unk_10 + { -5, 15 }, // unk_14 + { 15, 16 }, // unk_18 + { 15, 17 }, // unk_1C + { 45, 7 }, // unk_20 + { 50, 8 }, // unk_24 + { 0x2001, 9 }, // flags + { -40, 11 }, // unk_28 + { 20, 12 }, // unk_2C +}; + +CameraModeValue D_8011A924[] = { + /* CAM_FUNC_BATT1 */ + { -20, 0 }, // yOffset (PCT) + { 180, 1 }, // distance + { 10, 13 }, // swingYawInitial + { 80, 14 }, // swingYawFinal + { 0, 15 }, // swingPitchInitial + { 10, 16 }, // swingPitchFinal + { 25, 17 }, // swingPitchAdj (PCT) + { 45, 7 }, // fov + { 80, 8 }, // atLERPScaleOnGround (PCT) + { 0x2002, 9 }, // flags + { -40, 11 }, // yOffsetOffGround (PCT) + { 25, 12 }, // atLERPScaleOnGround (PCT) +}; + +CameraModeValue D_8011A954[] = { + /* CAM_FUNC_JUMP1 */ + { -10, 0 }, // atYOffset + { 150, 1 }, // distMin + { 250, 2 }, // distMax + { 10, 4 }, // yawUpdateRateTarget + { 50, 6 }, // maxYawUpdate + { 60, 7 }, // unk_14 + { 40, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011A974[] = { + /* CAM_FUNC_JUMP1 */ + { -10, 0 }, // atYOffset + { 150, 1 }, // distMin + { 250, 2 }, // distMax + { 10, 4 }, // yawUpdateRateTarget + { 80, 6 }, // maxYawUpdate + { 60, 7 }, // unk_14 + { 20, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011A994[] = { + /* CAM_FUNC_JUMP2 */ + { -40, 0 }, // atYOffset + { 150, 1 }, // minDist + { 250, 2 }, // maxDist + { 20, 18 }, // minMaxDistFactor + { 5, 4 }, // yawUpdRateTarget + { 5, 5 }, // xzUpdRateTarget + { 60, 7 }, // fovTarget + { 40, 8 }, // atLERPStepScale + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011A9B8[] = { + /* CAM_FUNC_JUMP2 */ + { -40, 0 }, // atYOffset + { 250, 1 }, // minDist + { 250, 2 }, // maxDist + { 20, 18 }, // minMaxDistFactor + { 999, 4 }, // yawUpdRateTarget + { 5, 5 }, // xzUpdRateTarget + { 60, 7 }, // fovTarget + { 40, 8 }, // atLERPStepScale + { 0x2006, 9 }, // flags +}; + +CameraModeValue D_8011A9DC[] = { + /* CAM_FUNC_BATT4 */ + { -10, 0 }, // yOffset + { 300, 1 }, // rTarget + { 50, 3 }, // pitchTarget + { 2, 4 }, // lerpUpdateRate + { 80, 7 }, // fovTarget + { 20, 8 }, // atLERPTarget + { 0xF000, 9 }, // flags +}; + +CameraModeValue D_8011A9F8[] = { + /* CAM_FUNC_UNIQ1 */ + { -80, 0 }, // yOffset + { 150, 1 }, // distMin + { 250, 2 }, // distMax + { 40, 3 }, // pitchTarget + { 60, 7 }, // fovTarget + { 10, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011AA14[] = { + /* CAM_FUNC_UNIQ1 */ + { -120, 0 }, // yOffset */ + { 250, 1 }, // distMin */ + { 250, 2 }, // distMax */ + { 70, 3 }, // pitchTarget */ + { 45, 7 }, // fovTarget */ + { 10, 8 }, // atLERPScaleMax */ + { 0x2000, 9 }, // flags */ +}; + +CameraModeValue D_8011AA30[] = { + /* CAM_FUNC_NORM1 */ + { -10, 0 }, // yOffset + { 150, 1 }, // distMin + { 250, 2 }, // distMax + { 5, 3 }, // pitchTarget + { 100, 4 }, // unk_0C + { 5, 5 }, // unk_10 + { 100, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 5, 8 }, // atLERPScaleMax + { 0xF003, 9 }, // flags +}; + +CameraModeValue D_8011AA58[] = { + /* CAM_FUNC_NORM1 */ + { -40, 0 }, // yOffset + { 150, 1 }, // distMin + { 150, 2 }, // distMax + { 0, 3 }, // pitchTarget + { 10, 4 }, // unk_0C + { 5, 5 }, // unk_10 + { 30, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 60, 8 }, // atLERPScaleMax + { 0x0003, 9 }, // flags +}; + +CameraModeValue D_8011AA80[] = { + /* CAM_FUNC_KEEP3 */ + { -20, 0 }, // yOffset + { 70, 1 }, // minDist + { 200, 2 }, // maxDist + { 40, 13 }, // swingYawInitial + { 10, 14 }, // swingYawFinal + { 0, 15 }, // swingPitchInitial + { 5, 16 }, // swingPitchFinal + { 70, 17 }, // swingPitchAdj + { 45, 7 }, // fovTarget + { 50, 8 }, // atLERPScaleMax + { 10, 4 }, // initTimer + { 0x3500, 9 }, // flags +}; + +CameraModeValue D_8011AAB0[] = { + /* CAM_FUNC_JUMP1 */ + { -40, 0 }, // atYOffset + { 150, 1 }, // distMin + { 150, 2 }, // distMax + { 10, 4 }, // yawUpdateRateTarget + { 50, 6 }, // maxYawUpdate + { 60, 7 }, // unk_14 + { 40, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011AAD0[] = { + /* CAM_FUNC_JUMP1 */ + { -40, 0 }, // atYOffset + { 150, 1 }, // distMin + { 180, 2 }, // distMax + { 12, 4 }, // yawUpdateRateTarget + { 80, 6 }, // maxYawUpdate + { 60, 7 }, // unk_14 + { 20, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011AAF0[] = { + /* CAM_FUNC_JUMP2 */ + { -40, 0 }, // atYOffset + { 150, 1 }, // minDist + { 150, 2 }, // maxDist + { 20, 18 }, // minMaxDistFactor + { 5, 4 }, // yawUpdRateTarget + { 5, 5 }, // xzUpdRateTarget + { 60, 7 }, // fovTarget + { 40, 8 }, // atLERPStepScale + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011AB14[] = { + /* CAM_FUNC_JUMP2 */ + { -40, 0 }, // atYOffset + { 150, 1 }, // minDist + { 150, 2 }, // maxDist + { 20, 18 }, // minMaxDistFactor + { 999, 4 }, // yawUpdRateTarget + { 5, 5 }, // xzUpdRateTarget + { 60, 7 }, // fovTarget + { 40, 8 }, // atLERPStepScale + { 0x2006, 9 }, // flags +}; + +CameraModeValue D_8011AB38[] = { + /* CAM_FUNC_BATT4 */ + { -40, 0 }, // yOffset + { 200, 1 }, // rTarget + { 50, 3 }, // pitchTarget + { 2, 4 }, // lerpUpdateRate + { 80, 7 }, // fovTarget + { 20, 8 }, // atLERPTarget + { 0xF000, 9 }, // flags +}; + +CameraModeValue D_8011AB54[] = { + /* CAM_FUNC_UNIQ1 */ + { -80, 0 }, // yOffset */ + { 150, 1 }, // distMin */ + { 150, 2 }, // distMax */ + { 40, 3 }, // pitchTarget */ + { 60, 7 }, // fovTarget */ + { 10, 8 }, // atLERPScaleMax */ + { 0x0000, 9 }, // flags */ +}; + +CameraModeValue D_8011AB70[] = { + /* CAM_FUNC_UNIQ1 */ + { -120, 0 }, // yOffset + { 150, 1 }, // distMin + { 150, 2 }, // distMax + { 70, 3 }, // pitchTarget + { 45, 7 }, // fovTarget + { 10, 8 }, // atLERPScaleMax + { 0x2000, 9 }, // flags +}; + +CameraModeValue D_8011AB8C[] = { + /* CAM_FUNC_NORM1 */ + { -40, 0 }, // yOffset + { 150, 1 }, // distMin + { 150, 2 }, // distMax + { 0, 3 }, // pitchTarget + { 100, 4 }, // unk_0C + { 5, 5 }, // unk_10 + { 100, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 5, 8 }, // atLERPScaleMax + { 0xF003, 9 }, // flags +}; + +CameraModeValue D_8011ABB4[] = { + /* CAM_FUNC_PARA1 */ + { -40, 0 }, // unk_00 + { 180, 1 }, // distTarget + { 25, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 60, 7 }, // fovTarget + { 50, 8 }, // unk_14 + { 0x206A, 9 }, // flags + { -20, 11 }, // unk_18 + { 30, 12 }, // unk_1C +}; + +CameraModeValue sSetNorm3ModeNormVals[] = { + /* CAM_FUNC_JUMP3 */ + { -20, 0 }, // yOffset + { 280, 1 }, // distMin + { 300, 2 }, // distMax + { 20, 3 }, // pitchTarget + { 15, 4 }, // swingUpdateRate + { 5, 5 }, // unk_10 + { 40, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 100, 8 }, // unk_1C + { 0x0004, 9 }, // flags +}; + +CameraModeValue D_8011AC08[] = { + /* CAM_FUNC_PARA1 */ + { -50, 0 }, // unk_00 + { 250, 1 }, // distTarget + { 70, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 15, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 60, 7 }, // fovTarget + { 100, 8 }, // unk_14 + { 0x200A, 9 }, // flags + { -50, 11 }, // unk_18 + { 20, 12 }, // unk_1C +}; + +CameraModeValue D_8011AC34[] = { + /* CAM_FUNC_KEEP3 */ + { -30, 0 }, // yOffset + { 70, 1 }, // minDist + { 200, 2 }, // maxDist + { 40, 13 }, // swingYawInitial + { 10, 14 }, // swingYawFinal + { 10, 15 }, // swingPitchInitial + { 20, 16 }, // swingPitchFinal + { 70, 17 }, // swingPitchAdj + { 45, 7 }, // fovTarget + { 10, 8 }, // atLERPScaleMax + { 10, 4 }, // initTimer + { 0x3500, 9 }, // flags +}; + +CameraModeValue sSetNorm3ModeBoomVals[] = { + /* CAM_FUNC_JUMP3 */ + /* mode is BOOMERANG, but these values are for when the eye + * >= OREG(45) units below the surface of the water. + */ + { -40, 0 }, // yOffset + { 150, 1 }, // distMin + { 250, 2 }, // distMax + { -5, 3 }, // pitchTarget + { 18, 4 }, // swingUpdateRate + { 5, 5 }, // unk_10 + { 60, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 40, 8 }, // unk_1C + { 0x0005, 9 }, // flags +}; + +CameraModeValue sSetHrse0ModeNormVals[] = { + /* CAM_FUNC_NORM3 */ + { -50, 0 }, // yOffset */ + { 220, 1 }, // distMin */ + { 250, 2 }, // distMax */ + { 10, 3 }, // pitchTarget */ + { 16, 4 }, // yawUpdateSpeed */ + { 20, 5 }, // unk_10 */ + { 60, 7 }, // fovTarget */ + { 100, 8 }, // maxAtLERPScale */ + { 0x0600, 9 }, // flags */ +}; + +CameraModeValue sSetHrse0ModeParaVals[] = { + /* CAM_FUNC_NORM3 */ + { -40, 0 }, // yOffset + { 180, 1 }, // distMin + { 220, 2 }, // distMax + { -2, 3 }, // pitchTarget + { 12, 4 }, // yawUpdateSpeed + { 100, 5 }, // unk_10 + { 45, 7 }, // fovTarget + { 100, 8 }, // maxAtLERPScale + { 0x2600, 9 }, // flags +}; + +CameraModeValue D_8011ACD4[] = { + /* CAM_FUNC_SUBJ3 */ + { -7, 0 }, // eyeNextYOffset + { 14, 1 }, // eyeDist + { 100, 2 }, // eyeNextDist + { 10, 4 }, // unk_0C + { 0, 19 }, // atOffset.x + { -30, 20 }, // atOffset.y + { -5, 21 }, // atOffset.z + { 40, 7 }, // fovTarget + { 0x2600, 9 }, // flags +}; + +CameraModeValue D_8011ACF8[] = { + /* CAM_FUNC_KEEP1 */ + { -60, 0 }, // unk_00 + { 180, 1 }, // unk_04 + { 220, 2 }, // unk_08 + { 25, 13 }, // unk_0C + { 45, 14 }, // unk_10 + { -5, 15 }, // unk_14 + { 15, 16 }, // unk_18 + { 15, 17 }, // unk_1C + { 45, 7 }, // unk_20 + { 50, 8 }, // unk_24 + { 0x2601, 9 }, // flags + { -60, 11 }, // unk_28 + { 20, 12 }, // unk_2C +}; + +CameraModeValue D_8011AD2C[] = { + /* CAM_FUNC_KEEP3 */ + { -60, 0 }, // yOffset + { 140, 1 }, // minDist + { 200, 2 }, // maxDist + { 40, 13 }, // swingYawInitial + { 10, 14 }, // swingYawFinal + { 0, 15 }, // swingPitchInitial + { 5, 16 }, // swingPitchFinal + { 70, 17 }, // swingPitchAdj + { 45, 7 }, // fovTarget + { 50, 8 }, // atLERPScaleMax + { 10, 4 }, // initTimer + { 0x3500, 9 }, // flags +}; + +CameraModeValue D_8011AD5C[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 150, 1 }, // distMin + { 250, 2 }, // distMax + { 0, 3 }, // pitchTarget + { 15, 4 }, // unk_0C + { 5, 5 }, // unk_10 + { 40, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 60, 8 }, // atLERPScaleMax + { 0x0001, 9 }, // flags +}; + +CameraModeValue D_8011AD84[] = { + /* CAM_FUNC_BATT1 */ + { -30, 0 }, // yOffset (PCT) */ + { 150, 1 }, // distance */ + { 10, 13 }, // swingYawInitial */ + { 40, 14 }, // swingYawFinal */ + { -10, 15 }, // swingPitchInitial */ + { 0, 16 }, // swingPitchFinal */ + { 25, 17 }, // swingPitchAdj (PCT) */ + { 60, 7 }, // fov */ + { 40, 8 }, // atLERPScaleOnGround (PCT) */ + { 0x2002, 9 }, // flags */ + { -50, 11 }, // yOffsetOffGround (PCT) */ + { 20, 12 }, // atLERPScaleOffGround (PCT) */ +}; + +CameraModeValue D_8011ADB4[] = { + /* CAM_FUNC_NORM1 */ + { 0, 0 }, // yOffset + { 150, 1 }, // distMin + { 300, 2 }, // distMax + { 0, 3 }, // pitchTarget + { 12, 4 }, // unk_0C + { 5, 5 }, // unk_10 + { 70, 6 }, // unk_14 + { 70, 7 }, // fovTarget + { 40, 8 }, // atLERPScaleMax + { 0x0003, 9 }, // flags +}; + +CameraModeValue D_8011ADDC[] = { + /* CAM_FUNC_BATT1 */ + { -20, 0 }, // yOffset (PCT) + { 160, 1 }, // distance + { 10, 13 }, // swingYawInitial + { 60, 14 }, // swingYawFinal + { -5, 15 }, // swingPitchInitial + { 0, 16 }, // swingPitchFinal + { 25, 17 }, // swingPitchAdj (PCT) + { 70, 7 }, // fov + { 50, 8 }, // atLERPScaleOnGround (PCT) + { 0x2002, 9 }, // flags + { -40, 11 }, // yOffsetOffGround (PCT) + { 20, 12 }, // atLERPScaleOffGround (PCT) +}; + +CameraModeValue D_8011AE0C[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 150, 1 }, // distMin + { 300, 2 }, // distMax + { -5, 3 }, // pitchTarget + { 15, 4 }, // unk_0C + { 5, 5 }, // unk_10 + { 40, 6 }, // unk_14 + { 70, 7 }, // fovTarget + { 70, 8 }, // atLERPScaleMax + { 0x0003, 9 }, // flags +}; + +CameraModeValue D_8011AE34[] = { + /* CAM_FUNC_BATT1 */ + { -30, 0 }, // yOffset (PCT) + { 125, 1 }, // distance + { 10, 13 }, // swingYawInitial + { 10, 14 }, // swingYawFinal + { 0, 15 }, // swingPitchInitial + { 0, 16 }, // swingPitchFinal + { 50, 17 }, // swingPitchAdj (PCT) + { 60, 7 }, // fov + { 50, 8 }, // atLERPScaleOnGround (PCT) + { 0x2002, 9 }, // flags + { -50, 11 }, // yOffsetOffGround (PCT) + { 20, 12 }, // atLERPScaleOffGround (PCT) +}; + +CameraModeValue D_8011AE64[] = { + /* CAM_FUNC_NORM1 */ + { 10, 0 }, // yOffset + { 150, 1 }, // distMin + { 250, 2 }, // distMax + { 0, 3 }, // pitchTarget + { 15, 4 }, // unk_0C + { 15, 5 }, // unk_10 + { 40, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 100, 8 }, // atLERPScaleMax + { 0x0003, 9 }, // flags +}; + +CameraModeValue D_8011AE8C[] = { + /* CAM_FUNC_BATT1 */ + { -20, 0 }, // yOffset (PCT) + { 200, 1 }, // distance + { 45, 13 }, // swingYawInitial + { 40, 14 }, // swingYawFinal + { 5, 15 }, // swingPitchInitial + { -5, 16 }, // swingPitchFinal + { 35, 17 }, // swingPitchAdj (PCT) + { 60, 7 }, // fov + { 100, 8 }, // atLERPScaleOnGround (PCT) + { 0x2002, 9 }, // flags + { -40, 11 }, // yOffsetOffGround (PCT) + { 60, 12 }, // atLERPScaleOffGround (PCT) +}; + +CameraModeValue D_8011AEBC[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 500, 1 }, // distMin + { 500, 2 }, // distMax + { 10, 3 }, // pitchTarget + { 16, 4 }, // unk_0C + { 10, 5 }, // unk_10 + { 40, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 80, 8 }, // atLERPScaleMax + { 0x0003, 9 }, // flags +}; + +CameraModeValue D_8011AEE4[] = { + /* CAM_FUNC_BATT1 */ + { -20, 0 }, // yOffset (PCT) + { 200, 1 }, // distance + { 20, 13 }, // swingYawInitial + { 60, 14 }, // swingYawFinal + { 0, 15 }, // swingPitchInitial + { 10, 16 }, // swingPitchFinal + { 15, 17 }, // swingPitchAdj (PCT) + { 45, 7 }, // fov + { 50, 8 }, // atLERPScaleOnGround (PCT) + { 0x2002, 9 }, // flags + { -40, 11 }, // yOffsetOffGround (PCT) + { 20, 12 }, // atLERPScaleOffGround (PCT) +}; + +CameraModeValue D_8011AF14[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 500, 1 }, // distMin + { 500, 2 }, // distMax + { 10, 3 }, // pitchTarget + { 20, 4 }, // unk_0C + { 10, 5 }, // unk_10 + { 40, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 80, 8 }, // atLERPScaleMax + { 0x0083, 9 }, // flags +}; + +CameraModeValue D_8011AF3C[] = { + /* CAM_FUNC_BATT1 */ + { -20, 0 }, // yOffset (PCT) + { 200, 1 }, // distance + { 20, 13 }, // swingYawInitial + { 60, 14 }, // swingYawFinal + { 0, 15 }, // swingPitchInitial + { 10, 16 }, // swingPitchFinal + { 15, 17 }, // swingPitchAdj (PCT) + { 45, 7 }, // fov + { 50, 8 }, // atLERPScaleOnGround (PCT) + { 0x2082, 9 }, // flags + { -40, 11 }, // yOffsetOffGround (PCT) + { 20, 12 }, // atLERPScaleOffGround (PCT) +}; + +CameraModeValue D_8011AF6C[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 500, 1 }, // distMin + { 500, 2 }, // distMax + { 10, 3 }, // pitchTarget + { 20, 4 }, // unk_0C + { 10, 5 }, // unk_10 + { 80, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 80, 8 }, // atLERPScaleMax + { 0x0083, 9 }, // flags +}; + +CameraModeValue D_8011AF94[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 100, 1 }, // distMin + { 150, 2 }, // distMax + { -10, 3 }, // pitchTarget + { 15, 4 }, // unk_0C + { 10, 5 }, // unk_10 + { 40, 6 }, // unk_14 + { 80, 7 }, // fovTarget + { 60, 8 }, // atLERPScaleMax + { 0x0003, 9 }, // flags +}; + +CameraModeValue D_8011AFBC[] = { + /* CAM_FUNC_BATT1 */ + { -20, 0 }, // yOffset (PCT) + { 200, 1 }, // distance + { 10, 13 }, // swingYawInitial + { 80, 14 }, // swingYawFinal + { -10, 15 }, // swingPitchInitial + { 10, 16 }, // swingPitchFinal + { 25, 17 }, // swingPitchAdj (PCT) + { 70, 7 }, // fov + { 40, 8 }, // atLERPScaleOnGround (PCT) + { 0x2002, 9 }, // flags + { -40, 11 }, // yOffsetOffGround (PCT) + { 20, 12 }, // atLERPScaleOffGround (PCT) +}; + +CameraModeValue D_8011AFEC[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 150, 1 }, // distMin + { 300, 2 }, // distMax + { 0, 3 }, // pitchTarget + { 20, 4 }, // unk_0C + { 10, 5 }, // unk_10 + { 40, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 80, 8 }, // atLERPScaleMax + { 0x0003, 9 }, // flags +}; + +CameraModeValue D_8011B014[] = { + /* CAM_FUNC_BATT1 */ + { 0, 0 }, // yOffset (PCT) + { 400, 1 }, // distance + { 0, 13 }, // swingYawInitial + { 60, 14 }, // swingYawFinal + { -10, 15 }, // swingPitchInitial + { 5, 16 }, // swingPitchFinal + { 25, 17 }, // swingPitchAdj (PCT) + { 45, 7 }, // fov + { 40, 8 }, // atLERPScaleOnGround (PCT) + { 0x2002, 9 }, // flags + { -20, 11 }, // yOffsetOffGround (PCT) + { 20, 12 }, // atLERPScaleOffGround (PCT) +}; + +CameraModeValue D_8011B044[] = { + /* CAM_FUNC_NORM1 */ + { -10, 0 }, // yOffset + { 150, 1 }, // distMin + { 200, 2 }, // distMax + { -10, 3 }, // pitchTarget + { 12, 4 }, // unk_0C + { 10, 5 }, // unk_10 + { 40, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 50, 8 }, // atLERPScaleMax + { 0x0003, 9 }, // flags +}; + +CameraModeValue D_8011B06C[] = { + /* CAM_FUNC_NORM1 */ + { 40, 0 }, // yOffset + { 330, 1 }, // distMin + { 330, 2 }, // distMax + { -5, 3 }, // pitchTarget + { 15, 4 }, // unk_0C + { 15, 5 }, // unk_10 + { 40, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 100, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011B094[] = { + /* CAM_FUNC_BATT4 */ + { -40, 0 }, // yOffset + { 250, 1 }, // rTarget + { 0, 3 }, // pitchTarget + { 2, 4 }, // lerpUpdateRate + { 80, 7 }, // fovTarget + { 20, 8 }, // atLERPTarget + { 0xF000, 9 }, // flags +}; + +CameraModeValue D_8011B0B0[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 500, 1 }, // distMin + { 500, 2 }, // distMax + { 10, 3 }, // pitchTarget + { 20, 4 }, // unk_0C + { 10, 5 }, // unk_10 + { 40, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 80, 8 }, // atLERPScaleMax + { 0x0003, 9 }, // flags +}; + +CameraModeValue D_8011B0D8[] = { + /* CAM_FUNC_BATT1 */ + { -20, 0 }, // yOffset (PCT) + { 180, 1 }, // distance + { 20, 13 }, // swingYawInitial + { 60, 14 }, // swingYawFinal + { 0, 15 }, // swingPitchInitial + { 10, 16 }, // swingPitchFinal + { 25, 17 }, // swingPitchAdj (PCT) + { 45, 7 }, // fov + { 50, 8 }, // atLERPScaleOnGround (PCT) + { 0x2002, 9 }, // flags + { -40, 11 }, // yOffsetOffGround (PCT) + { 20, 12 }, // atLERPScaleOffGround (PCT) +}; +/*start here */ +CameraModeValue D_8011B108[] = { + /* CAM_FUNC_NORM2 */ + { 0, 0 }, // unk_00 + { 120, 1 }, // unk_04 + { 280, 2 }, // unk_08 + { 60, 23 }, // unk_1C + { 8, 4 }, // unk_0C + { 40, 6 }, // unk_10 + { 60, 7 }, // unk_14 + { 50, 8 }, // unk_18 + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011B12C[] = { + /* CAM_FUNC_NORM2 */ + { 0, 0 }, // unk_00 + { 120, 1 }, // unk_04 + { 280, 2 }, // unk_08 + { 60, 23 }, // unk_1C + { 8, 4 }, // unk_0C + { 40, 6 }, // unk_10 + { 60, 7 }, // unk_14 + { 50, 8 }, // unk_18 + { 0x0080, 9 }, // flags +}; + +CameraModeValue D_8011B150[] = { + /* CAM_FUNC_NORM2 */ + { 0, 0 }, // unk_00 + { 270, 1 }, // unk_04 + { 300, 2 }, // unk_08 + { 120, 23 }, // unk_1C + { 8, 4 }, // unk_0C + { 60, 6 }, // unk_10 + { 60, 7 }, // unk_14 + { 100, 8 }, // unk_18 + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011B174[] = { + /* CAM_FUNC_NORM2 */ + { 0, 0 }, // unk_00 + { 270, 1 }, // unk_04 + { 300, 2 }, // unk_08 + { 120, 23 }, // unk_1C + { 6, 4 }, // unk_0C + { 60, 6 }, // unk_10 + { 60, 7 }, // unk_14 + { 100, 8 }, // unk_18 + { 0x0000, 9 }, // flags +}; + +CameraModeValue sSetFixd0ModeNormVals[] = { + /* CAM_FUNC_FIXD1 */ + { -40, 0 }, // yOffset + { 100, 4 }, // lerpStep + { 60, 7 }, // fov + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011B1A8[] = { + /* CAM_FUNC_FIXD1 */ + { -40, 0 }, // yOffset + { 100, 4 }, // lerpStep + { 60, 7 }, // fov + { 0x2000, 9 }, // flags +}; + +CameraModeValue D_8011B1B8[] = { + /* CAM_FUNC_FIXD1 */ + { -40, 0 }, // yOffset + { 100, 4 }, // lerpStep + { 60, 7 }, // fov + { 0x3500, 9 }, // flags +}; + +CameraModeValue D_8011B1C8[] = { + /* CAM_FUNC_FIXD1 */ + { -40, 0 }, // yOffset + { 25, 4 }, // lerpStep + { 60, 7 }, // fov + { 0x0000, 9 }, // flags +}; + +CameraModeValue sSetCirc0ModeNormVals[] = { + /* CAM_FUNC_FIXD2 */ + { -40, 0 }, // yOffset + { 50, 4 }, // eyeStepScale + { 80, 5 }, // posStepScale + { 60, 7 }, // fov + { 0x0001, 9 }, // flags +}; + +CameraModeValue sSetCirc2ModeNormVals[] = { + /* CAM_FUNC_DATA4 */ + { -40, 0 }, // yOffset + { 60, 7 }, // fov + { 0x3F00, 9 }, // flags +}; + +CameraModeValue D_8011B1F8[] = { + /* CAM_FUNC_FIXD4 */ + { -40, 0 }, // yOffset + { 50, 4 }, // speedToEyePos + { 80, 5 }, // followSpeed + { 60, 7 }, // fov + { 0x0004, 9 }, // flags +}; + +CameraModeValue D_8011B20C[] = { + /* CAM_FUNC_UNIQ0 + CAM_FUNC_FIXD3 + CAM_FUNC_SPEC6 + CAM_FUNC_SPEC7 */ + { 0x0000, 9 }, // flags +}; + +CameraModeValue sSetPR0ModeKeepTalkVals[] = { + /* CAM_FUNC_FIXD3 */ + { 0x2000, 9 }, // flags +}; + +CameraModeValue sSetPR1ModeNormVals[] = { + /* CAM_FUNC_UNIQ7 */ + { 60, 7 }, // fov + { 0x0000, 9 }, // flags +}; + +CameraModeValue sSetPR1ModeKeepVals[] = { + /* CAM_FUNC_UNIQ7 */ + { 60, 7 }, // fov + { 0x2000, 9 }, // flags +}; + +CameraModeValue sSetPreRend1ModeTalkVals[] = { + /* CAM_FUNC_KEEP0 */ + { 30, 24 }, // fovScale + { 0, 25 }, // yawScale + { 4, 4 }, // timerInit + { 0x3500, 9 }, // flags +}; + +CameraModeValue sSetDoor0ModeNormVals[] = { + /* CAM_FUNC_UNIQ3 */ + { -40, 0 }, // yOffset + { 60, 7 }, // fov + { 0x3200, 9 }, // flags +}; + +CameraModeValue sSetDoorCModeNormVals[] = { + /* CAM_FUNC_SPEC9 */ + { -5, 0 }, // yOffset + { 60, 7 }, // unk_04 (unused) + { 0x3202, 9 }, // flags +}; + +CameraModeValue sSetDoorCModeParaVals[] = { + /* CAM_FUNC_SPEC9 */ + { -5, 0 }, // yOffset + { 60, 7 }, // unk_04 (unused) + { 0x320A, 9 }, // flags +}; + +CameraModeValue sSetRail3ModeNormVals[] = { + /* CAM_FUNC_SUBJ4 + Camera_Subj4 only reads one setting which is used for flags. */ + { 0, 0 }, // flags + { 2, 1 }, // unused + { 30, 2 }, // unused + { 10, 4 }, // unused + { 45, 7 }, // unused + { 0x3200, 9 }, // unused +}; + +CameraModeValue D_8011B270[] = { + /* CAM_FUNC_UNIQ0 */ + { 0x0001, 9 }, // flags +}; + +CameraModeValue sSetFree0ModeNormVals[] = { + /* CAM_FUNC_UNIQ6 */ + { 0xFF00, 9 }, // flags +}; + +CameraModeValue sSetFree1ModeNormVals[] = { + /* CAM_FUNC_UNIQ6 */ + { 0xFF01, 9 }, // flags +}; + +CameraModeValue sSetCirc4ModeNormVals[] = { + /* CAM_FUNC_FIXD2 */ + { -40, 0 }, // yOffset + { 100, 4 }, // eyeStepScale + { 80, 5 }, // posStepScale + { 60, 7 }, // fov + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011B290[] = { + /* CAM_FUNC_UNIQ2 */ + { -40, 0 }, // yOffset + { 60, 1 }, // distTarget + { 60, 7 }, // fovTarget + { 0x0002, 9 }, // flags +}; + +CameraModeValue D_8011B2A0[] = { + /* CAM_FUNC_UNIQ2 */ + { -30, 0 }, // yOffset + { 45, 1 }, // distTarget + { 100, 7 }, // fovTarget + { 0x2001, 9 }, // flags +}; + +CameraModeValue D_8011B2B0[] = { + /* CAM_FUNC_DEMO1 + CAM_FUNC_DEMO4 (Not actually used in Camera_Demo4) + CAM_FUNC_DEMO6 + CAM_FUNC_SPEC4 */ + { 0x3200, 9 }, // flags +}; + +CameraModeValue sSetMori1ModeNormVals[] = { + /* CAM_FUNC_PARA1 */ + { -50, 0 }, // unk_00 + { 450, 1 }, // distTarget + { 40, 3 }, // pitchTarget3 + { 180, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 70, 7 }, // fovTarget + { 30, 8 }, // unk_14 + { 0x000C, 9 }, // flags + { -50, 11 }, // unk_18 + { 20, 12 }, // unk_1C +}; + +CameraModeValue D_8011B2E0[] = { + /* CAM_FUNC_PARA3 */ + { 0x3501, 9 }, // flags +}; + +CameraModeValue D_8011B2E4[] = { + /* CAM_FUNC_DEMO3 + CAM_FUNC_DEMO4 (not actually used in Camera_Demo4) */ + { 60, 7 }, // fov + { 30, 8 }, // unk_04 + { 0x3200, 9 }, // flags +}; + +CameraModeValue sSetDemo3ModeNormVals[] = { + /* CAM_FUNC_DEMO9 */ + { 0x3212, 9 }, // flags +}; + +CameraModeValue D_8011B2F4[] = { + /* CAM_FUNC_NORM1 */ + { -50, 0 }, // yOffset + { 300, 1 }, // distMin + { 300, 2 }, // distMax + { 50, 3 }, // pitchTarget + { 20, 4 }, // unk_0C + { 10, 5 }, // unk_10 + { 50, 6 }, // unk_14 + { 70, 7 }, // fovTarget + { 40, 8 }, // atLERPScaleMax + { 0x0002, 9 }, // flags +}; + +CameraModeValue D_8011B31C[] = { + /* CAM_FUNC_PARA1 */ + { -50, 0 }, // unk_00 + { 300, 1 }, // distTarget + { 10, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 45, 7 }, // fovTarget + { 50, 8 }, // unk_14 + { 0x200A, 9 }, // flags + { -40, 11 }, // unk_18 + { 20, 12 }, // unk_1C +}; + +CameraModeValue D_8011B348[] = { + /* CAM_FUNC_JUMP1 */ + { -50, 0 }, // atYOffset + { 300, 1 }, // distMin + { 300, 2 }, // distMax + { 12, 4 }, // yawUpdateRateTarget + { 35, 6 }, // maxYawUpdate + { 60, 7 }, // unk_14 + { 40, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011B368[] = { + /* CAM_FUNC_UNIQ1 */ + { -80, 0 }, // yOffset + { 300, 1 }, // distMin + { 300, 2 }, // distMax + { 60, 3 }, // fovTarget + { 70, 7 }, // pitchTarget + { 30, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011B384[] = { + /* CAM_FUNC_UNIQ1 */ + { -120, 0 }, // yOffset + { 300, 1 }, // distMin + { 300, 2 }, // distMax + { 70, 3 }, // pitchTarget + { 50, 7 }, // fovTarget + { 30, 8 }, // atLERPScaleMax + { 0x2000, 9 }, // flags +}; + +CameraModeValue D_8011B3A0[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 300, 1 }, // distMin + { 350, 2 }, // distMax + { 50, 3 }, // pitchTarget + { 100, 4 }, // unk_0C + { 10, 5 }, // unk_10 + { 100, 6 }, // unk_14 + { 70, 7 }, // fovTarget + { 30, 8 }, // atLERPScaleMax + { 0xF002, 9 }, // flags +}; + +CameraModeValue D_8011B3C8[] = { + /* CAM_FUNC_NORM1 */ + { -50, 0 }, // yOffset + { 200, 1 }, // distMin + { 200, 2 }, // distMax + { 20, 3 }, // pitchTarget + { 16, 4 }, // unk_0C + { 10, 5 }, // unk_10 + { 50, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 50, 8 }, // atLERPScaleMax + { 0x0002, 9 }, // flags +}; + +CameraModeValue D_8011B3F0[] = { + /* CAM_FUNC_PARA1 */ + { -50, 0 }, // unk_00 + { 200, 1 }, // distTarget + { 40, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 45, 7 }, // fovTarget + { 50, 8 }, // unk_14 + { 0x200A, 9 }, // flags + { -40, 11 }, // unk_18 + { 20, 12 }, // unk_1C +}; + +CameraModeValue D_8011B41C[] = { + /* CAM_FUNC_JUMP1 */ + { -50, 0 }, // atYOffset + { 150, 1 }, // distMin + { 250, 2 }, // distMax + { 12, 4 }, // yawUpdateRateTarget + { 35, 6 }, // maxYawUpdate + { 60, 7 }, // unk_14 + { 40, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011B43C[] = { + /* CAM_FUNC_UNIQ1 */ + { -80, 0 }, // yOffset + { 200, 1 }, // distMin + { 200, 2 }, // distMax + { 40, 3 }, // pitchTarget + { 60, 7 }, // fovTarget + { 30, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011B458[] = { + /* CAM_FUNC_UNIQ1 */ + { -120, 0 }, // yOffset + { 200, 1 }, // distMin + { 200, 2 }, // distMax + { 60, 3 }, // pitchtarget + { 50, 7 }, // fovTarget + { 30, 8 }, // atLERPScaleMax + { 0x2000, 9 }, // flags +}; + +CameraModeValue D_8011B474[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 200, 1 }, // distMin + { 250, 2 }, // distMax + { 20, 3 }, // unk_0C + { 100, 4 }, // unk_10 + { 10, 5 }, // unk_14 + { 100, 6 }, // pitchTarget + { 60, 7 }, // fovTarget + { 30, 8 }, // atLERPScaleMax + { 0xF002, 9 }, // flags +}; + +CameraModeValue sSetScn0ModeNormVals[] = { + /* CAM_FUNC_SPEC9 */ + { -30, 0 }, // yOffset + { 60, 7 }, // unk_04 (unused) + { 0x10A, 9 }, // flags +}; + +CameraModeValue D_8011B4A8[] = { + /* CAM_FUNC_UNIQ2 */ + { -20, 0 }, // yOffset + { 150, 1 }, // distTarget + { 60, 7 }, // fovTarget + { 0x0210, 9 }, // flags +}; + +CameraModeValue D_8011B4B8[] = { + /* CAM_FUNC_NORM1 */ + { 0, 0 }, // yOffset + { 400, 1 }, // distMin + { 500, 2 }, // distMax + { 35, 3 }, // unk_0C + { 14, 4 }, // unk_10 + { 5, 5 }, // unk_14 + { 20, 6 }, // pitchTarget + { 60, 7 }, // fovTarget + { 40, 8 }, // atLERPScaleMax + { 0x0012, 9 }, // flags +}; + +CameraModeValue D_8011B4E0[] = { + /* CAM_FUNC_BATT1 */ + { -20, 0 }, // yOffset (PCT) + { 250, 1 }, // distance + { 5, 13 }, // swingYawInitial + { 10, 14 }, // swingYawFinal + { 30, 15 }, // swingPitchInitial + { 20, 16 }, // swingPitchFinal + { 25, 17 }, // swingPitchAdj (PCT) + { 45, 7 }, // fov + { 60, 8 }, // atLERPScaleOnGround (PCT) + { 0x2002, 9 }, // flags + { -40, 11 }, // yOffsetOffGround (PCT) + { 25, 12 }, // atLERPScaleOffGround (PCT) +}; + +CameraModeValue D_8011B510[] = { + /* CAM_FUNC_NORM1 */ + { 0, 0 }, // yOffset + { 300, 1 }, // distMin + { 500, 2 }, // distMax + { 60, 3 }, // unk_0C + { 8, 4 }, // unk_10 + { 5, 5 }, // unk_14 + { 60, 6 }, // pitchTarget + { 60, 7 }, // fovTarget + { 30, 8 }, // atLERPScaleMax + { 0x0012, 9 }, // flags +}; + +CameraModeValue D_8011B538[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 500, 1 }, // distMin + { 500, 2 }, // distMax + { 80, 3 }, // unk_0C + { 20, 4 }, // unk_10 + { 10, 5 }, // unk_14 + { 70, 6 }, // pitchTarget + { 70, 7 }, // fovTarget + { 80, 8 }, // atLERPScaleMax + { 0x0012, 9 }, // flags +}; + +CameraModeValue D_8011B560[] = { + /* CAM_FUNC_PARA1 */ + { -20, 0 }, // unk_00 + { 500, 1 }, // distTarget + { 80, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 70, 7 }, // fovTarget + { 80, 8 }, // unk_14 + { 0x201A, 9 }, // flags + { -40, 11 }, // unk_18 + { 40, 12 }, // unk_1C +}; + +CameraModeValue D_8011B58C[] = { + /* CAM_FUNC_PARA1 */ + { -20, 0 }, // unk_00 + { 500, 1 }, // distTarget + { 80, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 60, 7 }, // fovTarget + { 80, 8 }, // unk_14 + { 0x201A, 9 }, // flags + { -40, 11 }, // unk_18 + { 40, 12 }, // unk_1C +}; + +CameraModeValue D_8011B5B8[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 500, 1 }, // distMin + { 500, 2 }, // distMax + { 80, 3 }, // unk_0C + { 20, 4 }, // unk_10 + { 10, 5 }, // unk_14 + { 80, 6 }, // pitchTarget + { 60, 7 }, // fovTarget + { 20, 8 }, // atLERPScaleMax + { 0x0012, 9 }, // flags +}; + +CameraModeValue D_8011B5E0[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 750, 1 }, // distMin + { 750, 2 }, // distMax + { 80, 3 }, // unk_0C + { 20, 4 }, // unk_10 + { 10, 5 }, // unk_14 + { 70, 6 }, // pitchTarget + { 70, 7 }, // fovTarget + { 80, 8 }, // atLERPScaleMax + { 0x0012, 9 }, // flags +}; + +CameraModeValue D_8011B608[] = { + /* CAM_FUNC_PARA1 */ + { -20, 0 }, // unk_00 + { 750, 1 }, // distTarget + { 80, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 70, 7 }, // fovTarget + { 80, 8 }, // unk_14 + { 0x201A, 9 }, // flags + { -40, 11 }, // unk_18 + { 40, 12 }, // unk_1C +}; + +CameraModeValue D_8011B634[] = { + /* CAM_FUNC_PARA1 */ + { -20, 0 }, // unk_00 + { 750, 1 }, // distTarget + { 80, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 70, 7 }, // fovTarget + { 80, 8 }, // unk_14 + { 0x200A, 9 }, // flags + { -40, 11 }, // unk_18 + { 40, 12 }, // unk_1C +}; + +CameraModeValue D_8011B660[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 750, 1 }, // distMin + { 750, 2 }, // distMax + { 80, 3 }, // unk_0C + { 20, 4 }, // unk_10 + { 10, 5 }, // unk_14 + { 80, 6 }, // pitchTarget + { 70, 7 }, // fovTarget + { 20, 8 }, // atLERPScaleMax + { 0x0012, 9 }, // flags +}; + +CameraModeValue D_8011B688[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 500, 1 }, // distMin + { 500, 2 }, // distMax + { 80, 3 }, // unk_0C + { 20, 4 }, // unk_10 + { 10, 5 }, // unk_14 + { 70, 6 }, // pitchTarget + { 70, 7 }, // fovTarget + { 80, 8 }, // atLERPScaleMax + { 0x0002, 9 }, // flags +}; + +CameraModeValue D_8011B6B0[] = { + /* CAM_FUNC_PARA1 */ + { -20, 0 }, // unk_00 + { 500, 1 }, // distTarget + { 80, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 70, 7 }, // fovTarget + { 80, 8 }, // unk_14 + { 0x200A, 9 }, // flags + { -40, 11 }, // unk_18 + { 40, 12 }, // unk_1C +}; + +CameraModeValue D_8011B6DC[] = { + /* CAM_FUNC_PARA1 */ + { -20, 0 }, // unk_00 + { 500, 1 }, // distTarget + { 80, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 60, 7 }, // fovTarget + { 80, 8 }, // unk_14 + { 0x200A, 9 }, // flags + { -40, 11 }, // unk_18 + { 40, 12 }, // unk_1C +}; + +CameraModeValue D_8011B708[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 500, 1 }, // distMin + { 500, 2 }, // distMax + { 80, 3 }, // unk_0C + { 20, 4 }, // unk_10 + { 10, 5 }, // unk_14 + { 80, 6 }, // pitchTarget + { 60, 7 }, // fovTarget + { 20, 8 }, // atLERPScaleMax + { 0x0002, 9 }, // flags +}; + +CameraModeValue D_8011B730[] = { + /* CAM_FUNC_KEEP4 */ + { -30, 0 }, // unk_00 + { 120, 1 }, // unk_04 + { -10, 3 }, // unk_08 + { 170, 10 }, // unk_0C + { 0, 21 }, // unk_10 + { 60, 7 }, // unk_18 + { 0x2502, 9 }, // flags + { 25, 4 }, // unk_14 + { 6, 22 }, // unk_1E +}; + +CameraModeValue sSetCirc6ModeNormVals[] = { + /* CAM_FUNC_SPEC0 */ + { 20, 4 }, // lerpATScale + { 0x3200, 9 }, // flags +}; + +CameraModeValue D_8011B75C[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 200, 1 }, // distMin + { 300, 2 }, // distMax + { 10, 3 }, // pitchTarget + { 12, 4 }, // unk_0C + { 10, 5 }, // unk_10 + { 35, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 60, 8 }, // atLERPScaleMax + { 0x0002, 9 }, // flags +}; + +CameraModeValue D_8011B784[] = { + /* CAM_FUNC_NORM1 */ + { 0, 0 }, // yOffset + { 200, 1 }, // distMin + { 300, 2 }, // distMax + { 20, 3 }, // unk_0C + { 12, 4 }, // unk_10 + { 10, 5 }, // unk_14 + { 35, 6 }, // pitchTarget + { 55, 7 }, // fovTarget + { 60, 8 }, // atLERPScaleMax + { 0x0F02, 9 }, // flags +}; + +CameraModeValue D_8011B7AC[] = { + /* CAM_FUNC_PARA1 */ + { -20, 0 }, // unk_00 + { 250, 1 }, // distTarget + { 0, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 45, 7 }, // fovTarget + { 50, 8 }, // unk_14 + { 0x2F0A, 9 }, // flags + { -40, 11 }, // unk_18 + { 20, 12 }, // unk_1C +}; + +CameraModeValue D_8011B7D8[] = { + /* CAM_FUNC_BATT1 */ + { -20, 0 }, // yOffset (PCT) + { 250, 1 }, // distance + { 0, 13 }, // swingYawInitial + { 80, 14 }, // swingYawFinal + { 0, 15 }, // swingPitchInitial + { 0, 16 }, // swingPitchFinal + { 25, 17 }, // swingPitchAdj (PCT) + { 55, 7 }, // fov + { 80, 8 }, // atLERPScaleOnGround (PCT) + { 0x2F02, 9 }, // flags + { -40, 11 }, // yOffsetOffGround (PCT) + { 25, 12 }, // atLERPScaleOffGround (PCT) +}; + +CameraModeValue D_8011B808[] = { + /* CAM_FUNC_KEEP3 */ + { -30, 0 }, // yOffset + { 70, 1 }, // minDist + { 200, 2 }, // maxDist + { 40, 13 }, // swingYawInitial + { 10, 14 }, // swingYawFinal + { 0, 15 }, // swingPitchInitial + { 5, 16 }, // swingPitchFinal + { 70, 17 }, // swingPitchAdj + { 45, 7 }, // fovTarget + { 50, 8 }, // atLERPScaleMax + { 10, 4 }, // initTimer + { 0x3F20, 9 }, // flags +}; + +CameraModeValue D_8011B838[] = { + /* CAM_FUNC_SUBJ3 */ + { 0, 0 }, // eyeNextYOffset + { 5, 1 }, // eyeDist + { 50, 2 }, // eyeNextDist + { 10, 4 }, // unk_0C + { 0, 19 }, // atOffset.x + { 0, 20 }, // atOffset.y + { 0, 21 }, // atOffset.z + { 45, 7 }, // fovTarget + { 0x0F00, 9 }, // flags +}; + +CameraModeValue D_8011B85C[] = { + /* CAM_FUNC_JUMP1 */ + { -20, 0 }, // atYOffset + { 200, 1 }, // distMin + { 300, 2 }, // distMax + { 12, 4 }, // yawUpdateRateTarget + { 35, 6 }, // maxYawUpdate + { 60, 7 }, // unk_14 + { 40, 8 }, // atLERPScaleMax + { 0x0F00, 9 }, // flags +}; + +CameraModeValue D_8011B87C[] = { + /* CAM_FUNC_JUMP1 */ + { -20, 0 }, // atYOffset + { 200, 1 }, // distMin + { 300, 2 }, // distMax + { 15, 4 }, // yawUpdateRateTarget + { 80, 6 }, // maxYawUpdate + { 60, 7 }, // unk_14 + { 20, 8 }, // atLERPScaleMax + { 0x0F00, 9 }, // flags +}; + +CameraModeValue D_8011B89C[] = { + /* CAM_FUNC_UNIQ1 */ + { -80, 0 }, // yOffset + { 200, 1 }, // distMin + { 300, 2 }, // distMax + { 40, 3 }, // pitchTarget + { 60, 7 }, // fovTarget + { 10, 8 }, // atLERPScaleMax + { 0x0F00, 9 }, // flags +}; + +CameraModeValue D_8011B8B8[] = { + /* CAM_FUNC_UNIQ1 */ + { -120, 0 }, // yOffset + { 300, 1 }, // distMin + { 300, 2 }, // distMax + { 70, 3 }, // pitchTarget + { 45, 7 }, // fovTarget + { 10, 8 }, // atLERPScaleMax + { 0x2F00, 9 }, // flags +}; + +CameraModeValue sSetDemoCModeNormVals[] = { + /* CAM_FUNC_UNIQ9 */ + { 0x3F00, 9 }, /* flags */ +}; + +CameraModeValue D_8011B8D8[] = { + /* CAM_FUNC_NORM1 */ + { 30, 0 }, // yOffset + { 200, 1 }, // distMin + { 300, 2 }, // distMax + { -20, 3 }, // unk_0C + { 15, 4 }, // unk_10 + { 5, 26 }, // unk_14 + { 50, 6 }, // pitchTarget + { 70, 7 }, // fovTarget + { 70, 8 }, // atLERPScaleMax + { 0x0003, 9 }, // flags +}; + +CameraModeValue D_8011B900[] = { + /* CAM_FUNC_BATT1 */ + { -30, 0 }, // yOffset (PCT) + { 160, 1 }, // distance + { 10, 13 }, // swingYawInitial + { 10, 14 }, // swingYawFinal + { 0, 15 }, // swingPitchInitial + { 0, 16 }, // swingPitchFinal + { 70, 17 }, // swingPitchAdj (PCT) + { 60, 7 }, // fov + { 40, 8 }, // atLERPScaleOnGround (PCT) + { 0x2002, 9 }, // flags + { -50, 11 }, // yOffsetOffGround (PCT) + { 20, 12 }, // atLERPScaleOffGround (PCT) +}; + +CameraModeValue D_8011B930[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 350, 1 }, // distMin + { 350, 2 }, // distMax + { 20, 3 }, // unk_0C + { 15, 4 }, // unk_10 + { 5, 5 }, // unk_14 + { 30, 6 }, // pitchTarget + { 60, 7 }, // fovTarget + { 60, 8 }, // atLERPScaleMax + { 0x0003, 9 }, // flags +}; + +CameraModeValue D_8011B958[] = { + /* CAM_FUNC_PARA1 */ + { -20, 0 }, // unk_00 + { 200, 1 }, // distTarget + { 0, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 45, 7 }, // fovTarget + { 50, 8 }, // unk_14 + { 0x200A, 9 }, // flags + { -40, 11 }, // unk_18 + { 20, 12 }, // unk_1C +}; + +CameraModeValue sSetDung2ModeBattVals[] = { + /* CAM_FUNC_BATT1 */ + { -20, 0 }, // yOffset (PCT) + { 180, 1 }, // distance + { 10, 13 }, // swingYawInitial + { 80, 14 }, // swingYawFinal + { -10, 15 }, // swingPitchInitial + { 10, 16 }, // swingPitchFinal + { 25, 17 }, // swingPitchAdj (PCT) + { 45, 7 }, // fov + { 80, 8 }, // atLERPScaleOnGround (PCT) + { 0x2002, 9 }, // flags + { -40, 11 }, // yOffsetOffGround (PCT) + { 25, 12 }, // atLERPScaleOffGround (PCT) +}; + +CameraModeValue D_8011B9B4[] = { + /* CAM_FUNC_JUMP1 */ + { -20, 0 }, // atYOffset + { 350, 1 }, // distMin + { 350, 2 }, // distMax + { 10, 4 }, // yawUpdateRateTarget + { 50, 6 }, // maxYawUpdate + { 60, 7 }, // unk_14 + { 40, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011B9D4[] = { + /* CAM_FUNC_JUMP1 */ + { -20, 0 }, // atYOffset + { 350, 1 }, // distMin + { 350, 2 }, // distMax + { 15, 4 }, // yawUpdateRateTarget + { 80, 6 }, // maxYawUpdate + { 60, 7 }, // unk_14 + { 20, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011B9F4[] = { + /* CAM_FUNC_JUMP2 */ + { -40, 0 }, // atYOffset + { 350, 1 }, // minDist + { 350, 2 }, // maxDist + { 20, 18 }, // minMaxDistFactor + { 5, 4 }, // yawUpdRateTarget + { 5, 5 }, // xzUpdRateTarget + { 60, 7 }, // fovTarget + { 40, 8 }, // atLERPStepScale + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011BA18[] = { + /* CAM_FUNC_JUMP2 */ + { -40, 0 }, // atYOffset + { 350, 1 }, // minDist + { 350, 2 }, // maxDist + { 20, 18 }, // minMaxDistFactor + { 999, 4 }, // yawUpdRateTarget + { 5, 5 }, // xzUpdRateTarget + { 60, 7 }, // fovTarget + { 40, 8 }, // atLERPStepScale + { 0x2006, 9 }, // flags +}; + +CameraModeValue D_8011BA3C[] = { + /* CAM_FUNC_UNIQ1 */ + { -50, 0 }, // yOffset + { 350, 1 }, // distMin + { 350, 2 }, // distMax + { 40, 3 }, // pitchTarget + { 60, 7 }, // fovTarget + { 10, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011BA58[] = { + /* CAM_FUNC_UNIQ1 */ + { -100, 0 }, // yOffset + { 350, 1 }, // distMin + { 350, 2 }, // distMax + { 70, 3 }, // pitchTarget + { 45, 7 }, // fovTarget + { 10, 8 }, // atLERPScaleMax + { 0x2000, 9 }, // flags +}; + +CameraModeValue D_8011BA74[] = { + /* CAM_FUNC_NORM1 */ + { -10, 0 }, // yOffset + { 350, 1 }, // distMin + { 350, 2 }, // distMax + { 20, 3 }, // unk_0C + { 100, 4 }, // unk_10 + { 5, 5 }, // unk_14 + { 100, 6 }, // pitchTarget + { 60, 7 }, // fovTarget + { 5, 8 }, // atLERPScaleMax + { 0xF003, 9 }, // flags +}; + +CameraModeValue D_8011BA9C[] = { + /* CAM_FUNC_PARA1 */ + { 0, 0 }, // unk_00 + { 280, 1 }, // distTarget + { 25, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 70, 7 }, // fovTarget + { 30, 8 }, // unk_14 + { 0x206A, 9 }, // flags + { -20, 11 }, // unk_18 + { 30, 12 }, // unk_1C +}; + +CameraModeValue D_8011BAC8[] = { + /* CAM_FUNC_NORM1 */ + { -10, 0 }, // yOffset + { 280, 1 }, // distMin + { 320, 2 }, // distMax + { -8, 3 }, // unk_0C + { 20, 4 }, // unk_10 + { 10, 5 }, // unk_14 + { 80, 6 }, // pitchTarget + { 60, 7 }, // fovTarget + { 80, 8 }, // atLERPScaleMax + { 0x0002, 9 }, // flags +}; + +CameraModeValue D_8011BAF0[] = { + /* CAM_FUNC_KEEP1 */ + { -20, 0 }, // unk_00 + { 180, 1 }, // unk_04 + { 200, 2 }, // unk_08 + { 35, 13 }, // unk_0C + { 45, 14 }, // unk_10 + { 0, 15 }, // unk_14 + { -5, 16 }, // unk_18 + { 20, 17 }, // unk_1C + { 50, 7 }, // unk_20 + { 50, 8 }, // unk_24 + { 0x2001, 9 }, // flags + { -50, 11 }, // unk_28 + { 30, 12 }, // unk_2C +}; + +CameraModeValue D_8011BB24[] = { + /* CAM_FUNC_KEEP3 */ + { -80, 0 }, // yOffset + { 200, 1 }, // minDist + { 250, 2 }, // maxDist + { 30, 13 }, // swingYawInitial + { 10, 14 }, // swingYawFinal + { -8, 15 }, // swingPitchInitial + { -8, 16 }, // swingPitchFinal + { 30, 17 }, // swingPitchAdj + { 50, 7 }, // fovTarget + { 50, 8 }, // atLERPScaleMax + { 10, 4 }, // initTimer + { 0x3520, 9 }, // flags +}; + +CameraModeValue D_8011BB54[] = { + /* CAM_FUNC_KEEP3 */ + { -30, 0 }, // yOffset + { 70, 1 }, // minDist + { 200, 2 }, // maxDist + { 40, 13 }, // swingYawInitial + { 10, 14 }, // swingYawFinal + { 0, 15 }, // swingPitchInitial + { 5, 16 }, // swingPitchFinal + { 70, 17 }, // swingPitchAdj + { 45, 7 }, // fovTarget + { 50, 8 }, // atLERPScaleMax + { 10, 4 }, // initTimer + { 0x35A0, 9 }, // flags +}; + +CameraMode sCamSetNorm0Modes[] = { + { CAM_FUNC_NORM1, 10, D_8011A3A0 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011A458 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5FC }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetNorm1Modes[] = { + { CAM_FUNC_NORM1, 10, sSetNorm1ModeNormVals }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, sSetNorm1ModeParaVals }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A714 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011A748 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A7D8 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A778 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A7FC }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A798 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A83C }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A858 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A7B8 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A820 }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A874 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetDungeon0Modes[] = { + { CAM_FUNC_NORM1, 10, D_8011A89C }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A8C4 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A8F0 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011A924 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A994 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A778 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A9B8 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A954 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A9F8 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011AA14 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A974 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A9DC }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011AA30 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetDungeon1Modes[] = { + { CAM_FUNC_NORM1, 10, D_8011AA58 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A8C4 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A714 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011AA80 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011A924 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011AAF0 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A778 }, // CAM_MODE_FOOKSHOT, + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011AB14 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011AAB0 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011AB54 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011AB70 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011AAD0 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011AB38 }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011AB8C }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011ABB4 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetNorm3Modes[] = { + { CAM_FUNC_JUMP3, 10, sSetNorm3ModeNormVals }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011AC08 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011AC34 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011A458 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_JUMP3, 10, sSetNorm3ModeBoomVals }, // CAM_MODE_BOOMERANG + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL +}; + +CameraMode sCamSetHorse0Modes[] = { + { CAM_FUNC_NORM3, 9, sSetHrse0ModeNormVals }, // CAM_MODE_NORMAL + { CAM_FUNC_NORM3, 9, sSetHrse0ModeParaVals }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011ACF8 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011AD2C }, // CAM_MODE_TALK + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_BATTLE + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_CLIMB + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011ACD4 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ +}; + +CameraMode sCamSetBossGomaModes[] = { + { CAM_FUNC_NORM1, 10, D_8011AD5C }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011AD84 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT, + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A9DC }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetBossDodoModes[] = { + { CAM_FUNC_NORM1, 10, D_8011ADB4 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011ADDC }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT, + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetBossBariModes[] = { + { CAM_FUNC_NORM1, 10, D_8011AE0C }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011AE34 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT, + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetBossFGanonModes[] = { + { CAM_FUNC_NORM1, 10, D_8011AE64 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011AE8C }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetBossBalModes[] = { + { CAM_FUNC_NORM1, 10, D_8011AEBC }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011AEE4 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetBossShadesModes[] = { + { CAM_FUNC_NORM1, 10, D_8011AF14 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011AF3C }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT, + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_NORM1, 10, D_8011AF6C }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_NORM1, 10, D_8011AF6C }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetBossMofaModes[] = { + { CAM_FUNC_NORM1, 10, D_8011AF94 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011AFBC }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFAL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetBossTwin0Modes[] = { + { CAM_FUNC_NORM1, 10, D_8011AFEC }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011B014 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT, + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFAL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetBossTwin1Modes[] = { + { CAM_FUNC_NORM1, 10, D_8011B044 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011B014 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT, + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFAL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetBossGanon1Modes[] = { + { CAM_FUNC_NORM1, 10, D_8011B06C }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011AE8C }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT, + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFAL + { CAM_FUNC_BATT4, 7, D_8011B094 }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetBossGanon2Modes[] = { + { CAM_FUNC_NORM1, 10, D_8011B0B0 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011B0D8 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT, + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFAL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetTower0Modes[] = { + { CAM_FUNC_NORM2, 9, D_8011B108 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011A458 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_NORM2, 9, D_8011B12C }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetTower1Modes[] = { + { CAM_FUNC_NORM2, 9, D_8011B150 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011A458 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_NORM2, 9, D_8011B174 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetFixed0Modes[] = { + { CAM_FUNC_FIXD1, 4, sSetFixd0ModeNormVals }, // CAM_MODE_NORMAL + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_TARGET + { CAM_FUNC_FIXD1, 4, D_8011B1A8 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_FIXD1, 4, D_8011B1B8 }, // CAM_MODE_TALK +}; + +CameraMode sCamSetFixed1Modes[] = { + { CAM_FUNC_FIXD1, 4, D_8011B1C8 }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetCirc0Modes[] = { + { CAM_FUNC_FIXD2, 5, sSetCirc0ModeNormVals }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetCirc2Modes[] = { + { CAM_FUNC_DATA4, 3, sSetCirc2ModeNormVals }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetCirc3Modes[] = { + { CAM_FUNC_FIXD4, 5, D_8011B1F8 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011A748 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_JUMP + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_HANG + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_HANGZ + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetPreRend0Modes[] = { + { CAM_FUNC_FIXD3, 1, D_8011B20C }, // CAM_MODE_NORMAL + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_TARGET + { CAM_FUNC_FIXD3, 1, sSetPR0ModeKeepTalkVals }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_FIXD3, 1, sSetPR0ModeKeepTalkVals }, // CAM_MODE_TALK +}; + +CameraMode sCamSetPreRend1Modes[] = { + { CAM_FUNC_UNIQ7, 2, sSetPR1ModeNormVals }, // CAM_MODE_NORMAL + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_TARGET + { CAM_FUNC_UNIQ7, 2, sSetPR1ModeKeepVals }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP0, 4, sSetPreRend1ModeTalkVals }, // CAM_MODE_TALK +}; + +CameraMode sCamSetPreRend3Modes[] = { + { CAM_FUNC_SPEC6, 1, D_8011B20C }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetDoor0Modes[] = { + { CAM_FUNC_UNIQ3, 3, sSetDoor0ModeNormVals }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetDoorCModes[] = { + { CAM_FUNC_SPEC9, 3, sSetDoorCModeNormVals }, // CAM_MODE_NORMAL + { CAM_FUNC_SPEC9, 3, sSetDoorCModeParaVals }, // CAM_MODE_TARGET +}; + +CameraMode sCamSetRail3Modes[] = { + { CAM_FUNC_SUBJ4, 6, sSetRail3ModeNormVals }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetStart0Modes[] = { + { CAM_FUNC_UNIQ0, 1, D_8011B20C }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetStart1Modes[] = { + { CAM_FUNC_UNIQ0, 1, D_8011B270 }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetFree0Modes[] = { + { CAM_FUNC_UNIQ6, 1, sSetFree0ModeNormVals }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetFree1Modes[] = { + { CAM_FUNC_UNIQ6, 1, sSetFree1ModeNormVals }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetCirc4Modes[] = { + { CAM_FUNC_FIXD2, 5, sSetCirc4ModeNormVals }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetCirc5Modes[] = { + { CAM_FUNC_UNIQ2, 4, D_8011B290 }, // CAM_MODE_NORMAL + { CAM_FUNC_UNIQ2, 4, D_8011B2A0 }, // CAM_MODE_TARGET +}; + +CameraMode sCamSetDemo0Modes[] = { + { CAM_FUNC_DEMO1, 1, D_8011B2B0 }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetDemo1Modes[] = { + { CAM_FUNC_DEMO2, 1, D_8011B2B0 }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetMori1Modes[] = { + { CAM_FUNC_PARA1, 11, sSetMori1ModeNormVals }, // CAM_MODE_NORMAL + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_TARGET + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_PARA3, 1, D_8011B2E0 }, // CAM_MODE_TALK +}; + +CameraMode sCamSetItem0Modes[] = { + { CAM_FUNC_DEMO3, 3, D_8011B2E4 }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetItem1Modes[] = { + { CAM_FUNC_DEMO4, 3, D_8011B2E4 }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetDemo3Modes[] = { + { CAM_FUNC_DEMO9, 1, sSetDemo3ModeNormVals }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetDemo4Modes[] = { + { CAM_FUNC_DEMO5, 1, D_8011B2B0 }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetUFOBeanModes[] = { + { CAM_FUNC_NORM1, 10, D_8011B2F4 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011B31C }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011A748 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011B348 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011B368 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011B384 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011B3A0 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetLiftBeanModes[] = { + { CAM_FUNC_NORM1, 10, D_8011B3C8 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011B3F0 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011A748 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011B41C }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011B43C }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011B458 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011B474 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetScene0Modes[] = { + { CAM_FUNC_SPEC9, 3, sSetScn0ModeNormVals }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetScene1Modes[] = { + { CAM_FUNC_UNIQ2, 4, D_8011B4A8 }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetHidan1Modes[] = { + { CAM_FUNC_SPEC7, 1, D_8011B20C }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetHidan2Modes[] = { + { CAM_FUNC_SPEC4, 1, D_8011B2B0 }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetMori2Modes[] = { + { CAM_FUNC_UNIQ5, 1, D_8011B2B0 }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetMori3Modes[] = { + { CAM_FUNC_DEMO6, 1, D_8011B2B0 }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetTakoModes[] = { + { CAM_FUNC_NORM1, 10, D_8011B4B8 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A8C4 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A8F0 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011B4E0 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A994 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A778 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A9B8 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A954 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A9F8 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011AA14 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A974 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A9DC }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011B510 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetSpot05AModes[] = { + { CAM_FUNC_NORM1, 10, D_8011B538 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011B560 }, // CAM_MODE_TARGET + { 0, 0, NULL }, // CAM_MODE_FOLLOWTARGET + { 0, 0, NULL }, // CAM_MODE_TALK + { CAM_FUNC_PARA1, 11, D_8011B58C }, // CAM_MODE_BATTLE + { CAM_FUNC_NORM1, 10, D_8011B5B8 }, // CAM_MODE_CLIMB +}; + +CameraMode sCamSetSpot05BModes[] = { + { CAM_FUNC_NORM1, 10, D_8011B5E0 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011B608 }, // CAM_MODE_TARGET + { 0, 0, NULL }, // CAM_MODE_FOLLOWTARGET + { 0, 0, NULL }, // CAM_MODE_TALK + { CAM_FUNC_PARA1, 11, D_8011B634 }, // CAM_MODE_BATTLE + { CAM_FUNC_NORM1, 10, D_8011B660 }, // CAM_MODE_CLIMB +}; + +CameraMode sCamSetHidan3Modes[] = { + { CAM_FUNC_NORM1, 10, D_8011B688 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011B6B0 }, // CAM_MODE_TARGET + { 0, 0, NULL }, // CAM_MODE_FOLLOWTARGET + { 0, 0, NULL }, // CAM_MODE_TALK + { CAM_FUNC_PARA1, 11, D_8011B6DC }, // CAM_MODE_BATTLE + { CAM_FUNC_NORM1, 10, D_8011B708 }, // CAM_MODE_CLIMB +}; + +CameraMode sCamSetItem2Modes[] = { + { CAM_FUNC_KEEP4, 9, D_8011B730 }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetCirc6Modes[] = { + { CAM_FUNC_SPEC0, 2, sSetCirc6ModeNormVals }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetNorm2Modes[] = { + { CAM_FUNC_NORM1, 10, D_8011B75C }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011A748 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetFishingModes[] = { + { CAM_FUNC_NORM1, 10, D_8011B784 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011B7AC }, // CAM_MODE_TARGET + { CAM_FUNC_BATT1, 12, D_8011B7D8 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011B808 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011B7D8 }, // CAM_MODE_BATTLE + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011B838 }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_BOWARROW + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_BOOMERANG + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011B85C }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011B89C }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011B8B8 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011B87C }, // CAM_MODE_FREEFALL +}; + +CameraMode sCamSetDemoCModes[] = { + { CAM_FUNC_UNIQ9, 1, sSetDemoCModeNormVals }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetUOFiberModes[] = { + { CAM_FUNC_NORM1, 10, D_8011B8D8 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011B900 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetDungeon2Modes[] = { + { CAM_FUNC_NORM1, 10, D_8011B930 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011B958 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A8F0 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, sSetDung2ModeBattVals }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011B9F4 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A778 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011BA18 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011B9B4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011BA3C }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011BA58 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011B9D4 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011BA74 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011BA9C }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetTeppenModes[] = { + { CAM_FUNC_NORM1, 10, D_8011BAC8 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011BAF0 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011BB24 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011A458 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetCirc7Modes[] = { + { CAM_FUNC_FIXD4, 5, D_8011B1F8 }, // CAM_MODE_NORMAL + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_TARGET + { CAM_FUNC_FIXD4, 5, D_8011B1F8 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_BATTLE + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT +}; + +CameraMode sCamSetNorm4Modes[] = { + { CAM_FUNC_NORM1, 10, D_8011B75C }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011BB54 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011A748 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraSetting sCameraSettings[] = { + { { 0x00000000 }, NULL }, // CAM_SET_NONE + { { 0x051FFFFF }, sCamSetNorm0Modes }, // CAM_SET_NORMAL0 + { { 0x051FFFFF }, sCamSetNorm1Modes }, // CAM_SET_NORMAL1 + { { 0x051FFFFF }, sCamSetDungeon0Modes }, // CAM_SET_DUNGEON0 + { { 0x051FFFFF }, sCamSetDungeon1Modes }, // CAM_SET_DUNGEON1 + { { 0x050FF7FF }, sCamSetNorm3Modes }, // CAM_SET_NORMAL3 + { { 0x8500018F }, sCamSetHorse0Modes }, // CAM_SET_HORSE0 + { { 0x051FFFFF }, sCamSetBossGomaModes }, // CAM_SET_BOSS_GOMA + { { 0x051FFFFF }, sCamSetBossDodoModes }, // CAM_SET_BOSS_DODO + { { 0x051FFFFF }, sCamSetBossBariModes }, // CAM_SET_BOSS_BARI + { { 0x051FFFFF }, sCamSetBossFGanonModes }, // CAM_SET_BOSS_FGANON + { { 0x051FFFFF }, sCamSetBossBalModes }, // CAM_SET_BOSS_BAL + { { 0x051FFFFF }, sCamSetBossShadesModes }, // CAM_SET_BOSS_SHADES + { { 0x051FFFFF }, sCamSetBossMofaModes }, // CAM_SET_BOSS_MOFA + { { 0x051FFFFF }, sCamSetBossTwin0Modes }, // CAM_SET_TWIN0 + { { 0x051FFFFF }, sCamSetBossTwin1Modes }, // CAM_SET_TWIN1 + { { 0x051FFFFF }, sCamSetBossGanon1Modes }, // CAM_SET_BOSS_GANON1 + { { 0x051FFFFF }, sCamSetBossGanon2Modes }, // CAM_SET_BOSS_GANON2 + { { 0x851FFFFF }, sCamSetTower0Modes }, // CAM_SET_TOWER0 + { { 0x851FFFFF }, sCamSetTower1Modes }, // CAM_SET_TOWER1 + { { 0x8500000D }, sCamSetFixed0Modes }, // CAM_SET_FIXED0 + { { 0x85000001 }, sCamSetFixed1Modes }, // CAM_SET_FIXED1 + { { 0x85000001 }, sCamSetCirc0Modes }, // CAM_SET_CIRCLE0 + { { 0x85000001 }, sCamSetCirc2Modes }, // CAM_SET_CIRCLE2 + { { 0x851E1FFF }, sCamSetCirc3Modes }, // CAM_SET_CIRCLE3 + { { 0x8C00000D }, sCamSetPreRend0Modes }, // CAM_SET_PREREND0 + { { 0x8C00000D }, sCamSetPreRend1Modes }, // CAM_SET_PREREND1 + { { 0x8C000001 }, sCamSetPreRend3Modes }, // CAM_SET_PREREND3 + { { 0xC5000001 }, sCamSetDoor0Modes }, // CAM_SET_DOOR0 + { { 0xC5000003 }, sCamSetDoorCModes }, // CAM_SET_DOORC + { { 0xC5000001 }, sCamSetRail3Modes }, // CAM_SET_RAIL3 + { { 0xC5000001 }, sCamSetStart0Modes }, // CAM_SET_START0 + { { 0xC5000001 }, sCamSetStart1Modes }, // CAM_SET_START1 + { { 0x05000001 }, sCamSetFree0Modes }, // CAM_SET_FREE0 + { { 0x05000001 }, sCamSetFree1Modes }, // CAM_SET_FREE2 + { { 0x85000001 }, sCamSetCirc4Modes }, // CAM_SET_CIRCLE4 + { { 0x05000003 }, sCamSetCirc5Modes }, // CAM_SET_CIRCLE5 + { { 0xCE000001 }, sCamSetDemo0Modes }, // CAM_SET_DEMO0 + { { 0x4E000001 }, sCamSetDemo1Modes }, // CAM_SET_DEMO1 + { { 0x05000009 }, sCamSetMori1Modes }, // CAM_SET_MORI1 + { { 0x45000001 }, sCamSetItem0Modes }, // CAM_SET_ITEM0 + { { 0x45000001 }, sCamSetItem1Modes }, // CAM_SET_ITEM1 + { { 0x45000001 }, sCamSetDemo3Modes }, // CAM_SET_DEMO3 + { { 0x45000001 }, sCamSetDemo4Modes }, // CAM_SET_DEMO4 + { { 0x451FFFFF }, sCamSetUFOBeanModes }, // CAM_SET_UFOBEAN + { { 0x451FFFFF }, sCamSetLiftBeanModes }, // CAM_SET_LIFTBEAN + { { 0xC5000001 }, sCamSetScene0Modes }, // CAM_SET_SCENE0 + { { 0x45000001 }, sCamSetScene1Modes }, // CAM_SET_SCENE1 + { { 0x05000001 }, sCamSetHidan1Modes }, // CAM_SET_HIDAN1 + { { 0x45000001 }, sCamSetHidan2Modes }, // CAM_SET_HIDAN2 + { { 0x45000001 }, sCamSetMori2Modes }, // CAM_SET_MORI2 + { { 0x45000001 }, sCamSetMori3Modes }, // CAM_SET_MORI3 + { { 0x451FFFFF }, sCamSetTakoModes }, // CAM_SET_TAKO + { { 0x05000033 }, sCamSetSpot05AModes }, // CAM_SET_SPOT05A + { { 0x05000033 }, sCamSetSpot05BModes }, // CAM_SET_SPOT05B + { { 0x05000033 }, sCamSetHidan3Modes }, // CAM_SET_HIDAN3 + { { 0x4A000001 }, sCamSetItem2Modes }, // CAM_SET_ITEM2 + { { 0x05000001 }, sCamSetCirc6Modes }, // CAM_SET_CIRCLE6 + { { 0x051FFFFF }, sCamSetNorm2Modes }, // CAM_SET_NORMAL2 + { { 0x0501E05F }, sCamSetFishingModes }, // CAM_SET_FISHING + { { 0x45000001 }, sCamSetDemoCModes }, // CAM_SET_DEMOC + { { 0x051FFFFF }, sCamSetUOFiberModes }, // CAM_SET_UO_FIBER + { { 0x051FFFFF }, sCamSetDungeon2Modes }, // CAM_SET_DUNGEON2 + { { 0x051FFFFF }, sCamSetTeppenModes }, // CAM_SET_TEPPEN + { { 0xC5000ECD }, sCamSetCirc7Modes }, // CAM_SET_CIRCLE7 + { { 0x051FFFFF }, sCamSetNorm4Modes }, // CAM_SET_NORMAL4 +}; + +s32 Camera_Normal0(Camera* camera); +s32 Camera_Normal1(Camera* camera); +s32 Camera_Normal2(Camera* camera); +s32 Camera_Normal3(Camera* camera); +s32 Camera_Normal4(Camera* camera); +s32 Camera_Parallel0(Camera* camera); +s32 Camera_Parallel1(Camera* camera); +s32 Camera_Parallel2(Camera* camera); +s32 Camera_Parallel3(Camera* camera); +s32 Camera_Parallel4(Camera* camera); +s32 Camera_KeepOn0(Camera* camera); +s32 Camera_KeepOn1(Camera* camera); +s32 Camera_KeepOn2(Camera* camera); +s32 Camera_KeepOn3(Camera* camera); +s32 Camera_KeepOn4(Camera* camera); +s32 Camera_Subj0(Camera* camera); +s32 Camera_Subj1(Camera* camera); +s32 Camera_Subj2(Camera* camera); +s32 Camera_Subj3(Camera* camera); +s32 Camera_Subj4(Camera* camera); +s32 Camera_Jump0(Camera* camera); +s32 Camera_Jump1(Camera* camera); +s32 Camera_Jump2(Camera* camera); +s32 Camera_Jump3(Camera* camera); +s32 Camera_Jump4(Camera* camera); +s32 Camera_Battle0(Camera* camera); +s32 Camera_Battle1(Camera* camera); +s32 Camera_Battle2(Camera* camera); +s32 Camera_Battle3(Camera* camera); +s32 Camera_Battle4(Camera* camera); +s32 Camera_Fixed0(Camera* camera); +s32 Camera_Fixed1(Camera* camera); +s32 Camera_Fixed2(Camera* camera); +s32 Camera_Fixed3(Camera* camera); +s32 Camera_Fixed4(Camera* camera); +s32 Camera_Data0(Camera* camera); +s32 Camera_Data1(Camera* camera); +s32 Camera_Data2(Camera* camera); +s32 Camera_Data3(Camera* camera); +s32 Camera_Data4(Camera* camera); +s32 Camera_Unique0(Camera* camera); +s32 Camera_Unique1(Camera* camera); +s32 Camera_Unique2(Camera* camera); +s32 Camera_Unique3(Camera* camera); +s32 Camera_Unique4(Camera* camera); +s32 Camera_Unique5(Camera* camera); +s32 Camera_Unique6(Camera* camera); +s32 Camera_Unique7(Camera* camera); +s32 Camera_Unique8(Camera* camera); +s32 Camera_Unique9(Camera* camera); +s32 Camera_Demo0(Camera* camera); +s32 Camera_Demo1(Camera* camera); +s32 Camera_Demo2(Camera* camera); +s32 Camera_Demo3(Camera* camera); +s32 Camera_Demo4(Camera* camera); +s32 Camera_Demo5(Camera* camera); +s32 Camera_Demo6(Camera* camera); +s32 Camera_Demo7(Camera* camera); +s32 Camera_Demo8(Camera* camera); +s32 Camera_Demo9(Camera* camera); +s32 Camera_Special0(Camera* camera); +s32 Camera_Special1(Camera* camera); +s32 Camera_Special2(Camera* camera); +s32 Camera_Special3(Camera* camera); +s32 Camera_Special4(Camera* camera); +s32 Camera_Special5(Camera* camera); +s32 Camera_Special6(Camera* camera); +s32 Camera_Special7(Camera* camera); +s32 Camera_Special8(Camera* camera); +s32 Camera_Special9(Camera* camera); + +s32 (*sCameraFunctions[])(Camera*) = { + NULL, + Camera_Normal0, + Camera_Normal1, + Camera_Normal2, + Camera_Normal3, + Camera_Normal4, + Camera_Parallel0, + Camera_Parallel1, + Camera_Parallel2, + Camera_Parallel3, + Camera_Parallel4, + Camera_KeepOn0, + Camera_KeepOn1, + Camera_KeepOn2, + Camera_KeepOn3, + Camera_KeepOn4, + Camera_Subj0, + Camera_Subj1, + Camera_Subj2, + Camera_Subj3, + Camera_Subj4, + Camera_Jump0, + Camera_Jump1, + Camera_Jump2, + Camera_Jump3, + Camera_Jump4, + Camera_Battle0, + Camera_Battle1, + Camera_Battle2, + Camera_Battle3, + Camera_Battle4, + Camera_Fixed0, + Camera_Fixed1, + Camera_Fixed2, + Camera_Fixed3, + Camera_Fixed4, + Camera_Data0, + Camera_Data1, + Camera_Data2, + Camera_Data3, + Camera_Data4, + Camera_Unique0, + Camera_Unique1, + Camera_Unique2, + Camera_Unique3, + Camera_Unique4, + Camera_Unique5, + Camera_Unique6, + Camera_Unique7, + Camera_Unique8, + Camera_Unique9, + Camera_Demo0, + Camera_Demo1, + Camera_Demo2, + Camera_Demo3, + Camera_Demo4, + Camera_Demo5, + Camera_Demo6, + Camera_Demo7, + Camera_Demo8, + Camera_Demo9, + Camera_Special0, + Camera_Special1, + Camera_Special2, + Camera_Special3, + Camera_Special4, + Camera_Special5, + Camera_Special6, + Camera_Special7, + Camera_Special8, + Camera_Special9, +}; + +s32 sInitRegs = 1; + +s32 gDbgCamEnabled = 0; +s32 sDbgModeIdx = -1; +s16 sNextUID = 0; + +s32 sCameraInterfaceFlags = 1; + +s32 sCameraInterfaceAlpha = 0x02; +s32 sCameraShrinkWindowVal = 0x20; +s32 D_8011D3AC = -1; + +s16 D_8011D3B0[] = { + 0x0AAA, 0xF556, 0x1555, 0xEAAB, 0x2AAA, 0xD556, 0x3FFF, 0xC001, 0x5555, 0xAAAB, 0x6AAA, 0x9556, 0x7FFF, 0x0000, +}; + +s16 D_8011D3CC[] = { + 0x0000, 0x02C6, 0x058C, 0x0000, 0x0000, 0xFD3A, 0x0000, 0x0852, 0x0000, 0x0000, 0x0B18, 0x02C6, 0xFA74, 0x0000, +}; + +s32 sUpdateCameraDirection = 0; +s32 D_8011D3EC = 0; +s32 D_8011D3F0 = 0; + +s32 sDemo5PrevAction12Frame = -16; + +char sCameraFunctionNames[][8] = { + "NONE ", "NORM0()", "NORM1()", "NORM2()", "NORM3()", "NORM4()", "PARA0()", "PARA1()", "PARA2()", "PARA3()", + "PARA4()", "KEEP0()", "KEEP1()", "KEEP2()", "KEEP3()", "KEEP4()", "SUBJ0()", "SUBJ1()", "SUBJ2()", "SUBJ3()", + "SUBJ4()", "JUMP0()", "JUMP1()", "JUMP2()", "JUMP3()", "JUMP4()", "BATT0()", "BATT1()", "BATT2()", "BATT3()", + "BATT4()", "FIXD0()", "FIXD1()", "FIXD2()", "FIXD3()", "FIXD4()", "DATA0()", "DATA1()", "DATA2()", "DATA3()", + "DATA4()", "UNIQ0()", "UNIQ1()", "UNIQ2()", "UNIQ3()", "UNIQ4()", "UNIQ5()", "UNIQ6()", "UNIQ7()", "UNIQ8()", + "UNIQ9()", "DEMO0()", "DEMO1()", "DEMO2()", "DEMO3()", "DEMO4()", "DEMO5()", "DEMO6()", "DEMO7()", "DEMO8()", + "DEMO9()", "SPEC0()", "SPEC1()", "SPEC2()", "SPEC3()", "SPEC4()", "SPEC5()", "SPEC6()", "SPEC7()", "SPEC8()", + "SPEC9()", "", "", "", "", "", +}; + +VecSph D_8011D658[] = { + { 50.0f, 0xEE3A, 0xD558 }, + { 75.0f, 0x0000, 0x8008 }, + { 80.0f, 0xEE3A, 0x8008 }, + { 15.0f, 0xEE3A, 0x8008 }, +}; + +Vec3f D_8011D678[] = { + { 0.0f, 40.0f, 20.0f }, + { 0.0f, 40.0f, 0.0f }, + { 0.0f, 3.0f, -3.0f }, + { 0.0f, 3.0f, -3.0 }, +}; + +/******************************************************* + * OnePoint initalization values for Demo5 + ********************************************************/ +s32 sDemo5PrevSfxFrame = -200; + +// target is player, far from eye +OnePointDemoFull D_8011D6AC[] = { + { // initflags & 0x00FF (at): 2, atTarget is view lookAt + atInit + // initFlags & 0xFF00 (eye): none + // action: 15, copy at, eye, roll, fov to camera + // result: eye remains in the same locaiton, at is View's lookAt + 0x8F, + 0xFF, + 0x0002, + 0x0001, + 0x0000, + 60.0f, + 1.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f } }, + { // initFlags & 0x00FF (at): 3, atTarget is camera's current at + atInit + // initFlags & 0xFF00 (eye): 3, eyeTarget is the camera's current eye + eyeInit + // action: interplate eye and at. + // result: eye and at's y interpolate to become +20 from their current location. + 0x81, + 0xFF, + 0x0303, + 0x0013, + 0x0000, + 45.0f, + 1.0f, + { 0.0f, 20.0f, 0.0f }, + { 0.0f, 20.0f, 0.0f } }, + { // initFlags & 0x00FF (at): 0 none + // initFlags & 0xFF00 (eye): 0 none + // action: 18, copy this camera to default camera. + 0x12, + 0xFF, + 0x0000, + 0x0001, + 0x0000, + 60.0f, + 1.0f, + { -1.0f, -1.0f, -1.0f }, + { -1.0f, -1.0f, -1.0f } }, +}; + +// target is player close to current eye +OnePointDemoFull D_8011D724[] = { + { 0x8F, 0xFF, 0x2424, 0x0001, 0x0000, 60.0f, 1.0f, { 0.0f, 0.0f, 0.0f }, { 0.0f, 10.0f, -20.0f } }, + { 0x81, 0xFF, 0x2121, 0x0013, 0x0000, 50.0f, 1.0f, { 0.0f, -10.0f, 0.0f }, { 0.0f, 0.0f, 60.0f } }, + { 0x12, 0xFF, 0x0000, 0x0001, 0x0000, 60.0f, 1.0f, { -1.0f, -1.0f, -1.0f }, { -1.0f, -1.0f, -1.0f } }, +}; + +// target is close to player +OnePointDemoFull D_8011D79C[] = { + { 0xCF, 0xFF, 0x0002, 0x0001, 0x0000, 60.0f, 1.0f, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f } }, + { 0xC1, 0xFF, 0x0303, 0x0013, 0x0000, 45.0f, 1.0f, { 0.0f, -20.0f, 0.0f }, { 0.0f, -10.0f, 5.0f } }, + { + 0xC1, + 0xFF, + 0x0303, + 0x0009, + 0x0000, + 60.0f, + 1.0f, + { 0.0f, 10.0f, 0.0f }, + { 0.0f, 10.0f, 0.0f }, + }, + { 0x12, 0xFF, 0x0000, 0x0001, 0x0000, 60.0f, 1.0f, { -1.0f, -1.0f, -1.0f }, { -1.0f, -1.0f, -1.0f } }, +}; + +// target is within 300 units of eye, and player is within 30 units of eye +OnePointDemoFull D_8011D83C[] = { + { 0x83, 0xFF, 0x2141, 0x0014, 0x0000, 45.0f, 0.2f, { 0.0f, 0.0f, 10.0f }, { 0.0f, 0.0f, 10.0f } }, + { 0x12, 0xFF, 0x0000, 0x0001, 0x0000, 60.0f, 1.0f, { -1.0f, -1.0f, -1.0f }, { -1.0f, -1.0f, -1.0f } }, +}; + +// target is within 700 units of eye, angle between player/eye and target/eye is less than +// 76.9 degrees. The x/y coordinates of the target on screen is between (21, 41) and (300, 200), +// and the player is farther than 30 units of the eye +OnePointDemoFull D_8011D88C[] = { + { 0x81, 0xFF, 0x0303, 0x0014, 0x0000, 45.0f, 1.0f, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f } }, + { 0x12, 0xFF, 0x0000, 0x0001, 0x0000, 60.0f, 1.0f, { -1.0f, -1.0f, -1.0f }, { -1.0f, -1.0f, -1.0f } }, +}; + +// same as above, but the target is NOT within the screen area. +OnePointDemoFull D_8011D8DC[] = { + { 0x8F, 0xFF, 0x0404, 0x0014, 0x0001, 50.0f, 1.0f, { 0.0f, 5.0f, 10.0f }, { 0.0f, 10.0f, -80.0f } }, + { 0x82, 0xFF, 0x2121, 0x0005, 0x0000, 60.0f, 1.0f, { 0.0f, 5.0f, 0.0f }, { 5.0f, 5.0f, -200.0f } }, + { 0x12, 0xFF, 0x0000, 0x0001, 0x0000, 60.0f, 1.0f, { -1.0f, -1.0f, -1.0f }, { -1.0f, -1.0f, -1.0f } }, +}; + +// target is a door. +OnePointDemoFull D_8011D954[] = { + { 0x0F, 0xFF, 0xC1C1, 0x0014, 0x0000, 60.0f, 1.0f, { 0.0f, 0.0f, 50.0f }, { 0.0f, 0.0f, 250.0f } }, + { 0x83, 0xFF, 0x05B1, 0x0005, 0x0000, 60.0f, 0.1f, { 0.0f, 10.0f, 50.0f }, { 0.0f, 10.0f, 100.0f } }, + { 0x82, 0xFF, 0x2121, 0x0005, 0x0002, 60.0f, 1.0f, { 0.0f, 10.0f, 0.0f }, { 0.0f, 20.0f, -150.0f } }, + { 0x12, 0xFF, 0x0000, 0x0001, 0x0000, 60.0f, 1.0f, { -1.0f, -1.0f, -1.0f }, { -1.0f, -1.0f, -1.0f } }, +}; + +// otherwise +OnePointDemoFull D_8011D9F4[] = { + { 0x8F, 0xFF, 0x0504, 0x0014, 0x0002, 60.0f, 1.0f, { 0.0f, 5.0f, 50.0f }, { 0.0f, 20.0f, 300.0f } }, + { 0x82, 0xFF, 0x2121, 0x0005, 0x0002, 60.0f, 1.0f, { 0.0f, 10.0f, 0.0f }, { 0.0f, 20.0f, -150.0f } }, + { 0x12, 0xFF, 0x0000, 0x0001, 0x0000, 60.0f, 1.0f, { -1.0f, -1.0f, -1.0f }, { -1.0f, -1.0f, -1.0f } }, +}; + +Vec3f D_8011DA6C[] = { + { 3050.0f, 700.0f, 0.0f }, { 1755.0f, 3415.0f, -380.0f }, { -3120.0f, 3160.0f, 245.0f }, { 0.0f, -10.0f, 240.0f } +}; + +Vec3f D_8011DA9C[] = { + { 3160.0f, 2150.0f, 0.0f }, + { 1515.0f, 4130.0f, -835.0f }, + { -3040.0f, 4135.0f, 230.0f }, + { -50.0f, 600.0f, -75.0f }, +}; + +f32 D_8011DACC[] = { 1570.0f, 3680.0f, 3700.0f, 395.0f }; + +f32 D_8011DADC[] = { 320.0f, 320.0f, 320.0f, 0.0f }; + +s16 D_8011DAEC[] = { -2000, -1000, 0, 0, 0, 0, 0, 0 }; + +s16 D_8011DAFC[] = { + CAM_SET_NORMAL0, CAM_SET_NORMAL1, CAM_SET_NORMAL2, CAM_SET_DUNGEON0, CAM_SET_DUNGEON1, CAM_SET_DUNGEON2, +}; + +GlobalContext* D_8015BD7C; +DBCamera D_8015BD80; +CollisionPoly* playerFloorPoly; diff --git a/src/code/z_demo.c b/src/code/z_demo.c index 944203ffbc..93b2bf85b7 100644 --- a/src/code/z_demo.c +++ b/src/code/z_demo.c @@ -1,4 +1,5 @@ #include "global.h" +#include "z64camera.h" u16 D_8011E1C0 = 0; u16 D_8011E1C4 = 0; @@ -104,7 +105,7 @@ void func_800645A0(GlobalContext* globalCtx, CutsceneContext* csCtx) { } if (CHECK_BTN_ALL(pad1->press.button, BTN_DUP) && (csCtx->state == CS_STATE_IDLE) && - (gSaveContext.sceneSetupIndex >= 4) && (D_8011D394 == 0)) { + (gSaveContext.sceneSetupIndex >= 4) && (gDbgCamEnabled == 0)) { D_8015FCC8 = 1; gSaveContext.cutsceneIndex = 0xFFFD; gSaveContext.cutsceneTrigger = 1; @@ -1288,12 +1289,12 @@ s32 Cutscene_Command_CameraPositions(GlobalContext* globalCtx, CutsceneContext* if (csCtx->unk_1A != 0) { csCtx->unk_18 = cmdBase->startFrame; if (D_8015FCC8 != 0) { - func_800C0874(globalCtx, csCtx->unk_14, 0x25); - Gameplay_ChangeCameraStatus(globalCtx, D_8015FCC6, 1); - Gameplay_ChangeCameraStatus(globalCtx, csCtx->unk_14, 7); - func_8005AC60(Gameplay_GetCamera(globalCtx, csCtx->unk_14)); - func_8005AC6C(Gameplay_GetCamera(globalCtx, csCtx->unk_14), csCtx->cameraFocus, csCtx->cameraPosition, - PLAYER, relativeToLink); + Gameplay_CameraChangeSetting(globalCtx, csCtx->unk_14, CAM_SET_DEMO0); + Gameplay_ChangeCameraStatus(globalCtx, D_8015FCC6, CAM_STAT_WAIT); + Gameplay_ChangeCameraStatus(globalCtx, csCtx->unk_14, CAM_STAT_ACTIVE); + Camera_ResetAnim(Gameplay_GetCamera(globalCtx, csCtx->unk_14)); + Camera_SetCSParams(Gameplay_GetCamera(globalCtx, csCtx->unk_14), csCtx->cameraFocus, + csCtx->cameraPosition, PLAYER, relativeToLink); } } } @@ -1325,12 +1326,12 @@ s32 Cutscene_Command_CameraFocus(GlobalContext* globalCtx, CutsceneContext* csCt if (csCtx->unk_1B != 0) { D_8015FCC0 = cmdBase->startFrame; if (D_8015FCC8 != 0) { - func_800C0874(globalCtx, csCtx->unk_14, 0x25); - Gameplay_ChangeCameraStatus(globalCtx, D_8015FCC6, 1); - Gameplay_ChangeCameraStatus(globalCtx, csCtx->unk_14, 7); - func_8005AC60(Gameplay_GetCamera(globalCtx, csCtx->unk_14)); - func_8005AC6C(Gameplay_GetCamera(globalCtx, csCtx->unk_14), csCtx->cameraFocus, csCtx->cameraPosition, - PLAYER, relativeToLink); + Gameplay_CameraChangeSetting(globalCtx, csCtx->unk_14, CAM_SET_DEMO0); + Gameplay_ChangeCameraStatus(globalCtx, D_8015FCC6, CAM_STAT_WAIT); + Gameplay_ChangeCameraStatus(globalCtx, csCtx->unk_14, CAM_STAT_ACTIVE); + Camera_ResetAnim(Gameplay_GetCamera(globalCtx, csCtx->unk_14)); + Camera_SetCSParams(Gameplay_GetCamera(globalCtx, csCtx->unk_14), csCtx->cameraFocus, + csCtx->cameraPosition, PLAYER, relativeToLink); } } } @@ -1367,9 +1368,9 @@ s32 Cutscene_Command_07(GlobalContext* globalCtx, CutsceneContext* csCtx, u8* cm if (D_8015FCC8 != 0) { sp2C = Gameplay_GetCamera(globalCtx, csCtx->unk_14); sp2C->player = NULL; - Gameplay_ChangeCameraStatus(globalCtx, 0, 1); - Gameplay_ChangeCameraStatus(globalCtx, csCtx->unk_14, 7); - func_800C0874(globalCtx, csCtx->unk_14, 0x21); + Gameplay_ChangeCameraStatus(globalCtx, 0, CAM_STAT_WAIT); + Gameplay_ChangeCameraStatus(globalCtx, csCtx->unk_14, CAM_STAT_ACTIVE); + Gameplay_CameraChangeSetting(globalCtx, csCtx->unk_14, CAM_SET_FREE0); sp28 = csCtx->cameraFocus->cameraRoll * 1.40625f; Camera_SetParam(sp2C, 64, &sp28); sp3C.x = csCtx->cameraFocus->pos.x; @@ -1378,8 +1379,8 @@ s32 Cutscene_Command_07(GlobalContext* globalCtx, CutsceneContext* csCtx, u8* cm sp30.x = csCtx->cameraPosition->pos.x; sp30.y = csCtx->cameraPosition->pos.y; sp30.z = csCtx->cameraPosition->pos.z; - func_800C04D8(globalCtx, csCtx->unk_14, &sp3C, &sp30); - func_800C0704(globalCtx, csCtx->unk_14, csCtx->cameraPosition->viewAngle); + Gameplay_CameraSetAtEye(globalCtx, csCtx->unk_14, &sp3C, &sp30); + Gameplay_CameraSetFov(globalCtx, csCtx->unk_14, csCtx->cameraPosition->viewAngle); } } } @@ -1410,17 +1411,17 @@ s32 Cutscene_Command_08(GlobalContext* globalCtx, CutsceneContext* csCtx, u8* cm if (D_8015FCC8 != 0) { sp2C = Gameplay_GetCamera(globalCtx, csCtx->unk_14); sp2C->player = NULL; - Gameplay_ChangeCameraStatus(globalCtx, 0, 1); - Gameplay_ChangeCameraStatus(globalCtx, csCtx->unk_14, 7); - func_800C0874(globalCtx, csCtx->unk_14, 0x21); + Gameplay_ChangeCameraStatus(globalCtx, 0, CAM_STAT_WAIT); + Gameplay_ChangeCameraStatus(globalCtx, csCtx->unk_14, CAM_STAT_ACTIVE); + Gameplay_CameraChangeSetting(globalCtx, csCtx->unk_14, CAM_SET_FREE0); sp3C.x = csCtx->cameraFocus->pos.x; sp3C.y = csCtx->cameraFocus->pos.y; sp3C.z = csCtx->cameraFocus->pos.z; sp30.x = csCtx->cameraPosition->pos.x; sp30.y = csCtx->cameraPosition->pos.y; sp30.z = csCtx->cameraPosition->pos.z; - func_800C04D8(globalCtx, csCtx->unk_14, &sp3C, &sp30); - func_800C0704(globalCtx, csCtx->unk_14, csCtx->cameraPosition->viewAngle); + Gameplay_CameraSetAtEye(globalCtx, csCtx->unk_14, &sp3C, &sp30); + Gameplay_CameraSetFov(globalCtx, csCtx->unk_14, csCtx->cameraPosition->viewAngle); } } } @@ -1909,7 +1910,7 @@ void func_80068DC0(GlobalContext* globalCtx, CutsceneContext* csCtx) { case 0x028E: case 0x0292: case 0x0476: - func_800C078C(globalCtx, D_8015FCC6, csCtx->unk_14); + Gameplay_CopyCamera(globalCtx, D_8015FCC6, csCtx->unk_14); } Gameplay_ChangeCameraStatus(globalCtx, D_8015FCC6, 7); diff --git a/src/code/z_horse.c b/src/code/z_horse.c index 3d02e175ef..076d69d2bc 100644 --- a/src/code/z_horse.c +++ b/src/code/z_horse.c @@ -246,7 +246,7 @@ void func_8006D684(GlobalContext* globalCtx, Player* player) { sp54.y = player->actor.posRot.pos.y + 100.0f; sp54.z = player->actor.posRot.pos.z; - func_800C04D8(globalCtx, globalCtx->activeCamera, &player->actor.posRot.pos, &sp54); + Gameplay_CameraSetAtEye(globalCtx, globalCtx->activeCamera, &player->actor.posRot.pos, &sp54); } else { Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_HORSE, D_8011F9B8[i].pos.x, D_8011F9B8[i].pos.y, D_8011F9B8[i].pos.z, 0, D_8011F9B8[i].angle, 0, diff --git a/src/code/z_olib.c b/src/code/z_olib.c index b4b9899290..92d66a2d3d 100644 --- a/src/code/z_olib.c +++ b/src/code/z_olib.c @@ -75,19 +75,19 @@ Vec3f* OLib_Vec3fDistNormalize(Vec3f* dest, Vec3f* a, Vec3f* b) { */ Vec3f* OLib_VecSphToVec3f(Vec3f* dest, VecSph* sph) { Vec3f v; - f32 sinPhi; - f32 cosPhi; - f32 sinTheta; - f32 cosTheta; + f32 sinPitch; + f32 cosPitch; + f32 sinYaw; + f32 cosYaw; - cosPhi = Math_Coss(sph->pitch); - cosTheta = Math_Coss(sph->yaw); - sinPhi = Math_Sins(sph->pitch); - sinTheta = Math_Sins(sph->yaw); + cosPitch = Math_Coss(sph->pitch); + cosYaw = Math_Coss(sph->yaw); + sinPitch = Math_Sins(sph->pitch); + sinYaw = Math_Sins(sph->yaw); - v.x = sph->r * sinPhi * sinTheta; - v.y = sph->r * cosPhi; - v.z = sph->r * sinPhi * cosTheta; + v.x = sph->r * sinPitch * sinYaw; + v.y = sph->r * cosPitch; + v.z = sph->r * sinPitch * cosYaw; *dest = v; diff --git a/src/code/z_onepointdemo.c b/src/code/z_onepointdemo.c index 176a11f7a8..6ba2334d6f 100644 --- a/src/code/z_onepointdemo.c +++ b/src/code/z_onepointdemo.c @@ -1,36 +1,30 @@ #include "global.h" -typedef struct { - /* 0x00 */ u32 unk_00; - /* 0x04 */ u32 unk_04; - /* 0x08 */ s16 unk_08; - /* 0x0A */ s16 unk_0A; -} struct_8007C820; - #pragma GLOBAL_ASM("asm/non_matchings/code/z_onepointdemo/func_8007C680.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_onepointdemo/func_8007C704.s") -void func_8007C76C(f32* pfParm1, s16* puParm2) { - puParm2[0] = pfParm1[0]; - puParm2[1] = pfParm1[1]; - puParm2[2] = pfParm1[2]; +void func_8007C76C(Vec3f* src, Vec3s* dst) { + dst->x = src->x; + dst->y = src->y; + dst->z = src->z; } #pragma GLOBAL_ASM("asm/non_matchings/code/z_onepointdemo/func_8007C7A8.s") -void func_8007C7F8(u32 uParm1, u32 uParm2) { - u8 auStack4[4]; - u8 auStack8[4]; +void func_8007C7F8(CollisionContext* colCtx, Vec3f* arg1) { + CollisionPoly* poly; + s32 bgId; - func_8003C940(uParm1, auStack4, auStack8, uParm2); + func_8003C940(colCtx, &poly, &bgId, arg1); } -void func_8007C820(struct_8007C820* puParm1, s16 uParm2, s16 uParm3, u32 uParm4, u32 param_5) { - puParm1->unk_00 = uParm4; - puParm1->unk_04 = param_5; - puParm1->unk_08 = uParm2; - puParm1->unk_0A = uParm3; +void func_8007C820(OnePointDemoCamera* onePointCamera, s16 actionParameters, s16 initTimer, + CutsceneCameraPoint* atPoints, CutsceneCameraPoint* eyePoints) { + onePointCamera->atPoints = atPoints; + onePointCamera->eyePoints = eyePoints; + onePointCamera->actionParameters = actionParameters; + onePointCamera->initTimer = initTimer; } #pragma GLOBAL_ASM("asm/non_matchings/code/z_onepointdemo/func_8007C850.s") diff --git a/src/code/z_play.c b/src/code/z_play.c index 2be93f95cf..95d973dff2 100644 --- a/src/code/z_play.c +++ b/src/code/z_play.c @@ -14,7 +14,7 @@ s16 D_801614C8; u64 D_801614D0[0xA00]; void func_800BC450(GlobalContext* globalCtx) { - func_8005A7A8(ACTIVE_CAM, globalCtx->unk_1242B - 1); + Camera_ChangeDataIdx(ACTIVE_CAM, globalCtx->unk_1242B - 1); } void func_800BC490(GlobalContext* globalCtx, s16 point) { @@ -223,12 +223,12 @@ void Gameplay_Init(GameState* thisx) { globalCtx->cameraPtrs[i] = NULL; } - func_80057C6C(&globalCtx->mainCamera, &globalCtx->view, &globalCtx->colCtx, globalCtx); - Camera_ChangeStatus(&globalCtx->mainCamera, 7); + Camera_Init(&globalCtx->mainCamera, &globalCtx->view, &globalCtx->colCtx, globalCtx); + Camera_ChangeStatus(&globalCtx->mainCamera, CAM_STAT_ACTIVE); for (i = 0; i < 3; i++) { - func_80057C6C(&globalCtx->subCameras[i], &globalCtx->view, &globalCtx->colCtx, globalCtx); - Camera_ChangeStatus(&globalCtx->subCameras[i], 0x100); + Camera_Init(&globalCtx->subCameras[i + 1], &globalCtx->view, &globalCtx->colCtx, globalCtx); + Camera_ChangeStatus(&globalCtx->subCameras[i + 1], 0x100); } globalCtx->cameraPtrs[0] = &globalCtx->mainCamera; @@ -385,13 +385,13 @@ void Gameplay_Init(GameState* thisx) { } player = PLAYER; - func_80058148(&globalCtx->mainCamera, player); - func_8005A444(&globalCtx->mainCamera, 0); + Camera_InitPlayerSettings(&globalCtx->mainCamera, player); + Camera_ChangeMode(&globalCtx->mainCamera, CAM_MODE_NORMAL); playerStartCamId = player->actor.params & 0xFF; if (playerStartCamId != 0xFF) { osSyncPrintf("player has start camera ID (" VT_FGCOL(BLUE) "%d" VT_RST ")\n", playerStartCamId); - func_8005A7A8(&globalCtx->mainCamera, playerStartCamId); + Camera_ChangeDataIdx(&globalCtx->mainCamera, playerStartCamId); } if (YREG(15) == 0x20) { @@ -1011,7 +1011,7 @@ void Gameplay_Update(GlobalContext* globalCtx) { LOG_NUM("1", 1, "../z_play.c", 3801); } - if ((sp80 == 0) || (D_8011D394 != 0)) { + if ((sp80 == 0) || (gDbgCamEnabled != 0)) { s32 i; // 0x54 s32 camIdx; Vec3s sp48; @@ -1028,12 +1028,12 @@ void Gameplay_Update(GlobalContext* globalCtx) { LOG_NUM("1", 1, "../z_play.c", 3809); } - func_800591EC(&sp48, globalCtx->cameraPtrs[i]); + Camera_Update(&sp48, globalCtx->cameraPtrs[i]); camIdx = globalCtx->nextCamera; } } - func_800591EC(&sp48, globalCtx->cameraPtrs[camIdx]); + Camera_Update(&sp48, globalCtx->cameraPtrs[camIdx]); if (1 && HREG(63)) { LOG_NUM("1", 1, "../z_play.c", 3814); @@ -1231,7 +1231,7 @@ void Gameplay_Draw(GlobalContext* globalCtx) { if (globalCtx->skyboxCtx.unk_140 != 0) { if (ACTIVE_CAM->setting != 0x19) { Vec3f sp74; - func_8005AFB4(&sp74, ACTIVE_CAM); + Camera_GetSkyboxOffset(&sp74, ACTIVE_CAM); SkyboxDraw_Draw(&globalCtx->skyboxCtx, gfxCtx, globalCtx->skyboxId, 0, globalCtx->view.eye.x + sp74.x, globalCtx->view.eye.y + sp74.y, globalCtx->view.eye.z + sp74.z); @@ -1313,7 +1313,7 @@ void Gameplay_Draw(GlobalContext* globalCtx) { if (globalCtx->view.unk_124 != 0) { Vec3s sp50; - func_800591EC(&sp50, ACTIVE_CAM); + Camera_Update(&sp50, ACTIVE_CAM); func_800AB944(&globalCtx->view); globalCtx->view.unk_124 = 0; if ((globalCtx->skyboxId != 0) && (globalCtx->skyboxId != 0x1D) && !globalCtx->envCtx.skyDisabled) { @@ -1322,7 +1322,7 @@ void Gameplay_Draw(GlobalContext* globalCtx) { } } - func_80059EC8(ACTIVE_CAM); + Camera_Finish(ACTIVE_CAM); CLOSE_DISPS(gfxCtx, "../z_play.c", 4508); } @@ -1533,8 +1533,8 @@ s16 Gameplay_CreateSubCamera(GlobalContext* globalCtx) { i); globalCtx->cameraPtrs[i] = &globalCtx->subCameras[i - 1]; - func_80057C6C(globalCtx->cameraPtrs[i], &globalCtx->view, &globalCtx->colCtx, globalCtx); - globalCtx->cameraPtrs[i]->unk_164 = i; + Camera_Init(globalCtx->cameraPtrs[i], &globalCtx->view, &globalCtx->colCtx, globalCtx); + globalCtx->cameraPtrs[i]->thisIdx = i; return i; } @@ -1589,94 +1589,94 @@ Camera* Gameplay_GetCamera(GlobalContext* globalCtx, s16 camId) { return globalCtx->cameraPtrs[camIdx]; } -s32 func_800C04D8(GlobalContext* globalCtx, s16 camId, Vec3f* arg2, Vec3f* arg3) { +s32 Gameplay_CameraSetAtEye(GlobalContext* globalCtx, s16 camId, Vec3f* at, Vec3f* eye) { s32 ret = 0; s16 camIdx = (camId == -1) ? globalCtx->activeCamera : camId; Camera* camera = globalCtx->cameraPtrs[camIdx]; Player* player; - ret |= Camera_SetParam(camera, 1, arg2); + ret |= Camera_SetParam(camera, 1, at); ret <<= 1; - ret |= Camera_SetParam(camera, 2, arg3); + ret |= Camera_SetParam(camera, 2, eye); - camera->dist = Math3D_Vec3f_DistXYZ(arg2, arg3); + camera->dist = Math3D_Vec3f_DistXYZ(at, eye); player = camera->player; if (player != NULL) { - camera->unk_E4.x = arg2->x - player->actor.posRot.pos.x; - camera->unk_E4.y = arg2->y - player->actor.posRot.pos.y; - camera->unk_E4.z = arg2->z - player->actor.posRot.pos.z; + camera->posOffset.x = at->x - player->actor.posRot.pos.x; + camera->posOffset.y = at->y - player->actor.posRot.pos.y; + camera->posOffset.z = at->z - player->actor.posRot.pos.z; } else { - camera->unk_E4.x = camera->unk_E4.y = camera->unk_E4.z = 0.0f; + camera->posOffset.x = camera->posOffset.y = camera->posOffset.z = 0.0f; } - camera->unk_100 = 0.01f; + camera->atLERPStepScale = 0.01f; return ret; } -s32 func_800C05E4(GlobalContext* globalCtx, s16 camId, Vec3f* arg2, Vec3f* arg3, Vec3f* arg4) { +s32 Gameplay_CameraSetAtEyeUp(GlobalContext* globalCtx, s16 camId, Vec3f* at, Vec3f* eye, Vec3f* up) { s32 ret = 0; s16 camIdx = (camId == -1) ? globalCtx->activeCamera : camId; Camera* camera = globalCtx->cameraPtrs[camIdx]; Player* player; - ret |= Camera_SetParam(camera, 1, arg2); + ret |= Camera_SetParam(camera, 1, at); ret <<= 1; - ret |= Camera_SetParam(camera, 2, arg3); + ret |= Camera_SetParam(camera, 2, eye); ret <<= 1; - ret |= Camera_SetParam(camera, 4, arg4); + ret |= Camera_SetParam(camera, 4, up); - camera->dist = Math3D_Vec3f_DistXYZ(arg2, arg3); + camera->dist = Math3D_Vec3f_DistXYZ(at, eye); player = camera->player; if (player != NULL) { - camera->unk_E4.x = arg2->x - player->actor.posRot.pos.x; - camera->unk_E4.y = arg2->y - player->actor.posRot.pos.y; - camera->unk_E4.z = arg2->z - player->actor.posRot.pos.z; + camera->posOffset.x = at->x - player->actor.posRot.pos.x; + camera->posOffset.y = at->y - player->actor.posRot.pos.y; + camera->posOffset.z = at->z - player->actor.posRot.pos.z; } else { - camera->unk_E4.x = camera->unk_E4.y = camera->unk_E4.z = 0.0f; + camera->posOffset.x = camera->posOffset.y = camera->posOffset.z = 0.0f; } - camera->unk_100 = 0.01f; + camera->atLERPStepScale = 0.01f; return ret; } -s32 func_800C0704(GlobalContext* globalCtx, s16 camId, f32 arg2) { - s32 ret = Camera_SetParam(globalCtx->cameraPtrs[camId], 32, &arg2) & 1; +s32 Gameplay_CameraSetFov(GlobalContext* globalCtx, s16 camId, f32 fov) { + s32 ret = Camera_SetParam(globalCtx->cameraPtrs[camId], 0x20, &fov) & 1; if (1) {} return ret; } -s32 func_800C0744(GlobalContext* globalCtx, s16 camId, s16 arg2) { +s32 Gameplay_SetCameraRoll(GlobalContext* globalCtx, s16 camId, s16 roll) { s16 camIdx = (camId == -1) ? globalCtx->activeCamera : camId; Camera* camera; camera = globalCtx->cameraPtrs[camIdx]; - camera->roll = arg2; + camera->roll = roll; return 1; } -void func_800C078C(GlobalContext* globalCtx, s16 camId1, s16 camId2) { +void Gameplay_CopyCamera(GlobalContext* globalCtx, s16 camId1, s16 camId2) { s16 camIdx2 = (camId2 == -1) ? globalCtx->activeCamera : camId2; s16 camIdx1 = (camId1 == -1) ? globalCtx->activeCamera : camId1; - func_8005AE64(globalCtx->cameraPtrs[camIdx1], globalCtx->cameraPtrs[camIdx2]); + Camera_Copy(globalCtx->cameraPtrs[camIdx1], globalCtx->cameraPtrs[camIdx2]); } -s32 func_800C0808(GlobalContext* globalCtx, s16 camId, Player* player, s16 arg3) { +s32 func_800C0808(GlobalContext* globalCtx, s16 camId, Player* player, s16 setting) { Camera* camera; s16 camIdx = (camId == -1) ? globalCtx->activeCamera : camId; camera = globalCtx->cameraPtrs[camIdx]; - func_80058148(camera, player); - return func_8005A77C(camera, arg3); + Camera_InitPlayerSettings(camera, player); + return Camera_ChangeSetting(camera, setting); } -void func_800C0874(GlobalContext* globalCtx, s16 camId, s16 arg2) { - func_8005A77C(Gameplay_GetCamera(globalCtx, camId), arg2); +s32 Gameplay_CameraChangeSetting(GlobalContext* globalCtx, s16 camId, s16 setting) { + return Camera_ChangeSetting(Gameplay_GetCamera(globalCtx, camId), setting); } void func_800C08AC(GlobalContext* globalCtx, s16 camId, s16 arg2) { @@ -1695,14 +1695,14 @@ void func_800C08AC(GlobalContext* globalCtx, s16 camId, s16 arg2) { } if (arg2 <= 0) { - Gameplay_ChangeCameraStatus(globalCtx, 0, 7); - globalCtx->cameraPtrs[0]->unk_14E = globalCtx->cameraPtrs[0]->unk_162 = 0; + Gameplay_ChangeCameraStatus(globalCtx, 0, CAM_STAT_ACTIVE); + globalCtx->cameraPtrs[0]->childCamIdx = globalCtx->cameraPtrs[0]->parentCamIdx = 0; } else { func_800800F8(globalCtx, 1020, arg2, NULL, 0); } } -s16 func_800C09A4(GlobalContext* globalCtx, s16 camId) { +s16 Gameplay_CameraGetUID(GlobalContext* globalCtx, s16 camId) { Camera* camera = globalCtx->cameraPtrs[camId]; if (camera != NULL) { @@ -1827,7 +1827,7 @@ s32 func_800C0D34(GlobalContext* globalCtx, Actor* actor, s16* yaw) { } s32 func_800C0DB4(GlobalContext* globalCtx, Vec3f* arg1) { - UNK_TYPE sp3C; + WaterBox* sp3C; CollisionPoly* sp38; Vec3f sp2C; s32 sp28; diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c index f8ee4e7a00..fd77f90570 100644 --- a/src/code/z_player_lib.c +++ b/src/code/z_player_lib.c @@ -406,7 +406,7 @@ void func_8008EEAC(GlobalContext* globalCtx, Actor* actor) { this->unk_684 = actor; this->stateFlags1 |= 0x10000; Camera_SetParam(Gameplay_GetCamera(globalCtx, 0), 8, actor); - func_8005A444(Gameplay_GetCamera(globalCtx, 0), 2); + Camera_ChangeMode(Gameplay_GetCamera(globalCtx, 0), 2); } s32 func_8008EF30(GlobalContext* globalCtx) { diff --git a/src/code/z_quake.c b/src/code/z_quake.c index 9869fa6fb6..3638e3a76b 100644 --- a/src/code/z_quake.c +++ b/src/code/z_quake.c @@ -148,7 +148,7 @@ QuakeRequest* Quake_AddImpl(Camera* cam, u32 callbackIdx) { func_80106860(req, 0, sizeof(QuakeRequest)); // memset req->cam = cam; - req->camPtrIdx = cam->unk_164; + req->camPtrIdx = cam->thisIdx; req->callbackIdx = callbackIdx; req->unk_1C = 1; req->randIdx = ((s16)(Math_Rand_ZeroOne() * (f32)0x10000) & ~3) + idx; @@ -293,7 +293,7 @@ u32 Quake_RemoveFromIdx(s16 idx) { return false; } -s16 Quake_Calc(Camera* camera, UnkQuakeCalcStruct* camData) { +s16 Quake_Calc(Camera* camera, QuakeCamCalc* camData) { f32 max; f32 max2; QuakeRequest* req; @@ -314,12 +314,12 @@ s16 Quake_Calc(Camera* camera, UnkQuakeCalcStruct* camData) { camData->rotZ = 0; camData->unk_1A = 0; camData->zoom = 0; - camData->vec1.x = 0.0f; - camData->vec1.y = 0.0f; - camData->vec1.z = 0.0f; - camData->vec2.x = 0.0f; - camData->vec2.y = 0.0f; - camData->vec2.z = 0.0f; + camData->atOffset.x = 0.0f; + camData->atOffset.y = 0.0f; + camData->atOffset.z = 0.0f; + camData->eyeOffset.x = 0.0f; + camData->eyeOffset.y = 0.0f; + camData->eyeOffset.z = 0.0f; camData->unk_20 = 0.0f; if (sQuakeRequestCount == 0) { @@ -335,29 +335,29 @@ s16 Quake_Calc(Camera* camera, UnkQuakeCalcStruct* camData) { req->camPtrIdx); Quake_Remove(req); } else { - temp = &camera->unk_164; - eq = req->cam->unk_164 != *temp; + temp = &camera->thisIdx; + eq = req->cam->thisIdx != *temp; absSpeedDiv = ABS(req->speed) / (f32)0x8000; if (sQuakeCallbacks[req->callbackIdx](req, &shake) == 0) { Quake_Remove(req); } else if (eq == 0) { - if (fabsf(camData->vec1.x) < fabsf(shake.vec1.x)) { - camData->vec1.x = shake.vec1.x; + if (fabsf(camData->atOffset.x) < fabsf(shake.vec1.x)) { + camData->atOffset.x = shake.vec1.x; } - if (fabsf(camData->vec1.y) < fabsf(shake.vec1.y)) { - camData->vec1.y = shake.vec1.y; + if (fabsf(camData->atOffset.y) < fabsf(shake.vec1.y)) { + camData->atOffset.y = shake.vec1.y; } - if (fabsf(camData->vec1.z) < fabsf(shake.vec1.z)) { - camData->vec1.z = shake.vec1.z; + if (fabsf(camData->atOffset.z) < fabsf(shake.vec1.z)) { + camData->atOffset.z = shake.vec1.z; } - if (fabsf(camData->vec2.x) < fabsf(shake.vec2.x)) { - camData->vec2.x = shake.vec2.x; + if (fabsf(camData->eyeOffset.x) < fabsf(shake.vec2.x)) { + camData->eyeOffset.x = shake.vec2.x; } - if (fabsf(camData->vec2.y) < fabsf(shake.vec2.y)) { - camData->vec2.y = shake.vec2.y; + if (fabsf(camData->eyeOffset.y) < fabsf(shake.vec2.y)) { + camData->eyeOffset.y = shake.vec2.y; } - if (fabsf(camData->vec2.z) < fabsf(shake.vec2.z)) { - camData->vec2.z = shake.vec2.z; + if (fabsf(camData->eyeOffset.z) < fabsf(shake.vec2.z)) { + camData->eyeOffset.z = shake.vec2.z; } if (camData->rotZ < shake.rotZ) { camData->rotZ = shake.rotZ; diff --git a/src/code/z_room.c b/src/code/z_room.c index 2a18f9b9c3..e5a61ca714 100644 --- a/src/code/z_room.c +++ b/src/code/z_room.c @@ -358,7 +358,7 @@ void func_80096680(GlobalContext* globalCtx, Room* room, u32 flags) { { Vec3f sp60; spA8 = POLY_OPA_DISP; - func_8005AFB4(&sp60, camera); + Camera_GetSkyboxOffset(&sp60, camera); func_8009638C(&spA8, polygon1->single.source, polygon1->single.tlut, polygon1->single.width, polygon1->single.height, polygon1->single.fmt, polygon1->single.siz, polygon1->single.mode0, polygon1->single.tlutCount, @@ -390,8 +390,9 @@ BgImage* func_80096A74(PolygonType1* polygon1, GlobalContext* globalCtx) { s32 i; camera = ACTIVE_CAM; - camId = camera->unk_148; - camId2 = func_80041C10(&globalCtx->colCtx, camId, 50)->unk_0E; + camId = camera->camDataIdx; + // jfifid + camId2 = func_80041C10(&globalCtx->colCtx, camId, 50)[2].y; if (camId2 >= 0) { camId = camId2; } @@ -453,7 +454,7 @@ void func_80096B6C(GlobalContext* globalCtx, Room* room, u32 flags) { { Vec3f sp5C; spA8 = POLY_OPA_DISP; - func_8005AFB4(&sp5C, camera); + Camera_GetSkyboxOffset(&sp5C, camera); func_8009638C(&spA8, bgImage->source, bgImage->tlut, bgImage->width, bgImage->height, bgImage->fmt, bgImage->siz, bgImage->mode0, bgImage->tlutCount, (sp5C.x + sp5C.z) * 1.2f + sp5C.y * 0.6f, sp5C.y * 2.4f + (sp5C.x + sp5C.z) * 0.3f); 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 97c7664e66..8060ca5ecd 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 @@ -69,11 +69,11 @@ extern UNK_TYPE D_06008CE0; s32 BgBdanObjects_GetContactRu1(BgBdanObjects* this, s32 arg1) { switch (arg1) { case 0: - return this->unk_1B8 == 1; + return this->cameraSetting == CAM_SET_NORMAL0; case 4: return gSaveContext.infTable[20] & 0x40; case 3: - return this->unk_1B8 == 4; + return this->cameraSetting == CAM_SET_DUNGEON1; default: osSyncPrintf("Bg_Bdan_Objects_Get_Contact_Ru1\nそんな受信モードは無い%d!!!!!!!!\n"); return -1; @@ -83,10 +83,10 @@ s32 BgBdanObjects_GetContactRu1(BgBdanObjects* this, s32 arg1) { void BgBdanObjects_SetContactRu1(BgBdanObjects* this, s32 arg1) { switch (arg1) { case 1: - this->unk_1B8 = 2; + this->cameraSetting = CAM_SET_NORMAL1; break; case 2: - this->unk_1B8 = 3; + this->cameraSetting = CAM_SET_DUNGEON0; break; case 4: gSaveContext.infTable[20] |= 0x40; @@ -348,13 +348,13 @@ void func_8086C874(BgBdanObjects* this, GlobalContext* globalCtx) { } if (this->unk_168 == 0) { if (func_8004356C(&this->dyna.actor)) { - this->unk_1B8 = globalCtx->cameraPtrs[0]->setting; - func_8005A77C(globalCtx->cameraPtrs[0], 0x3A); + this->cameraSetting = globalCtx->cameraPtrs[0]->setting; + Camera_ChangeSetting(globalCtx->cameraPtrs[0], CAM_SET_NORMAL2); func_8005AD1C(globalCtx->cameraPtrs[0], 4); this->unk_168 = 0xAU; } } else { - func_8005A77C(globalCtx->cameraPtrs[0], 0x3A); + Camera_ChangeSetting(globalCtx->cameraPtrs[0], CAM_SET_NORMAL2); if (!func_8004356C(&this->dyna.actor)) { if (this->unk_168 != 0) { this->unk_168 -= 1; @@ -363,7 +363,7 @@ void func_8086C874(BgBdanObjects* this, GlobalContext* globalCtx) { if (this->unk_168 == 0) { do { } while (0); - func_8005A77C(globalCtx->cameraPtrs[0], this->unk_1B8); + Camera_ChangeSetting(globalCtx->cameraPtrs[0], (s16)this->cameraSetting); func_8005ACFC(globalCtx->cameraPtrs[0], 4); } } @@ -425,7 +425,7 @@ void func_8086CB8C(BgBdanObjects* this, GlobalContext* globalCtx) { if (this->unk_16A == 0) { Audio_PlayActorSound2(this, NA_SE_EV_BUYOSTAND_STOP_U); this->actionFunc = BgBdanObjects_DoNothing; - func_800C078C(globalCtx, 0, -1); + Gameplay_CopyCamera(globalCtx, 0, -1); } else { func_8002F974(&this->dyna.actor, NA_SE_EV_BUYOSTAND_FALL - SFX_FLAG); } diff --git a/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.h b/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.h index 299ddea9db..639b18fe85 100644 --- a/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.h +++ b/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.h @@ -14,7 +14,7 @@ typedef struct BgBdanObjects { /* 0x0168 */ u8 unk_168; /* 0x016A */ s16 unk_16A; /* 0x016C */ ColliderCylinder collider; - /* 0x01B8 */ s32 unk_1B8; + /* 0x01B8 */ s32 cameraSetting; } BgBdanObjects; // size = 0x01BC extern const ActorInit Bg_Bdan_Objects_InitVars; 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 c7e6a52aa0..2b091f5462 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 @@ -159,7 +159,7 @@ void BgDdanKd_LowerStairs(BgDdanKd* this, GlobalContext* globalCtx) { func_80033480(globalCtx, &sp5C, 20.0f, 1, sp4C * 135.0f, 60, 1); func_8003555C(globalCtx, &sp5C, &D_808718FC, &D_80871908); } - func_8005AA1C(&globalCtx->mainCamera, 0, sp4C * 0.6f, 3); + Camera_AddQuake(&globalCtx->mainCamera, 0, sp4C * 0.6f, 3); Audio_PlaySoundGeneral(NA_SE_EV_PILLAR_SINK - SFX_FLAG, &this->dyna.actor.projectedPos, 4, &D_801333E0, &D_801333E0, &D_801333E8); } 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 c00c6a07aa..a01dbebc20 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 @@ -141,10 +141,10 @@ void BgHidanFslift_Update(Actor* thisx, GlobalContext* globalCtx) { if (this->unk_16A == 0) { this->unk_16A = 3; } - func_8005A77C(globalCtx->cameraPtrs[0], 0x30); + Camera_ChangeSetting(globalCtx->cameraPtrs[0], CAM_SET_HIDAN1); } else if (func_8004356C(thisx) == 0) { if (this->unk_16A != 0) { - func_8005A77C(globalCtx->cameraPtrs[0], 3); + Camera_ChangeSetting(globalCtx->cameraPtrs[0], CAM_SET_DUNGEON0); } this->unk_16A = 0; } 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 76e9587c60..ef3152f007 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 @@ -189,7 +189,7 @@ void BgHidanRsekizou_Draw(Actor* thisx, GlobalContext* globalCtx) { POLY_XLU_DISP = Gfx_CallSetupDL(POLY_XLU_DISP, 0x14); - if ((s16)((func_8005A9F4(ACTIVE_CAM) - this->dyna.actor.shape.rot.y) - 0x2E6C) >= 0) { + if ((s16)((Camera_GetCamDirYaw(ACTIVE_CAM) - this->dyna.actor.shape.rot.y) - 0x2E6C) >= 0) { for (i = 3; i >= 0; i--) { POLY_XLU_DISP = BgHidanRsekizou_DrawFireball(globalCtx, this, i, &mf, 0, POLY_XLU_DISP); } 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 a3340bbf7b..ecd58ef4f8 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 @@ -116,10 +116,10 @@ void BgHidanSyoku_Update(Actor* thisx, GlobalContext* globalCtx) { if (this->unk_168 == 0) { this->unk_168 = 3; } - func_8005A77C(globalCtx->cameraPtrs[0], 0x30); + Camera_ChangeSetting(globalCtx->cameraPtrs[0], CAM_SET_HIDAN1); } else if (!func_8004356C(&this->dyna.actor)) { if (this->unk_168 != 0) { - func_8005A77C(globalCtx->cameraPtrs[0], 3); + Camera_ChangeSetting(globalCtx->cameraPtrs[0], CAM_SET_DUNGEON0); } this->unk_168 = 0; } 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 d29a325315..5a02a3da02 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 @@ -182,9 +182,9 @@ void BgJya1flift_Update(Actor* thisx, GlobalContext* globalCtx) { tempIsRiding = func_8004356C(&this->dyna) ? true : false; if ((this->actionFunc == BgJya1flift_Move) || (this->actionFunc == BgJya1flift_DelayMove)) { if (tempIsRiding) { - func_8005A77C(globalCtx->cameraPtrs[0], 0x30); + Camera_ChangeSetting(globalCtx->cameraPtrs[0], CAM_SET_HIDAN1); } else if (!tempIsRiding && this->isLinkRiding) { - func_8005A77C(globalCtx->cameraPtrs[0], 3); + Camera_ChangeSetting(globalCtx->cameraPtrs[0], CAM_SET_DUNGEON0); } } this->isLinkRiding = tempIsRiding; 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 c48fb8a35b..8e355b101f 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 @@ -141,10 +141,10 @@ void BgJyaLift_Update(Actor* thisx, GlobalContext* globalCtx) { this->actionFunc(this); } if ((this->dyna.unk_160 & 4) && ((this->unk_16B & 4) == 0)) { - func_8005A77C(globalCtx2->cameraPtrs[0], 0x3F); + Camera_ChangeSetting(globalCtx2->cameraPtrs[0], CAM_SET_TEPPEN); } else if (((this->dyna.unk_160) & 4) == 0 && ((this->unk_16B & 4)) && (globalCtx2->cameraPtrs[0]->setting == 0x3F)) { - func_8005A77C(globalCtx2->cameraPtrs[0], 3); + Camera_ChangeSetting(globalCtx2->cameraPtrs[0], CAM_SET_DUNGEON0); } this->unk_16B = this->dyna.unk_160; 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 fbe3ab01e0..e3d1ef1251 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 @@ -174,14 +174,14 @@ void func_808A3C8C(BgMoriHineri* this, GlobalContext* globalCtx) { f0 = 1100.0f - (player->actor.posRot.pos.z - this->dyna.actor.posRot.pos.z); this->dyna.actor.shape.rot.z = CLAMP(f0, 0.0f, 1000.0f) * 16.384f; - func_8005A77C(globalCtx->cameraPtrs[0], 4); + Camera_ChangeSetting(globalCtx->cameraPtrs[0], CAM_SET_DUNGEON1); if (this->dyna.actor.params != 0) { this->dyna.actor.shape.rot.z = -this->dyna.actor.shape.rot.z; } } void func_808A3D58(BgMoriHineri* this, GlobalContext* globalCtx) { - s16 unk_14E; + s16 defaultCamChildIdx; if ((Flags_GetSwitch(globalCtx, this->switchFlag) && (this->dyna.actor.params == 0 || this->dyna.actor.params == 2)) || @@ -190,9 +190,9 @@ void func_808A3D58(BgMoriHineri* this, GlobalContext* globalCtx) { this->dyna.actor.draw = BgMoriHineri_DrawHallAndRoom; this->actionFunc = func_808A3E54; - unk_14E = globalCtx->cameraPtrs[0]->unk_14E; - if ((unk_14E != 0) && (globalCtx->cameraPtrs[unk_14E]->setting == 0x26)) { - func_800803F0(globalCtx, unk_14E); + defaultCamChildIdx = globalCtx->cameraPtrs[0]->childCamIdx; + if ((defaultCamChildIdx != 0) && (globalCtx->cameraPtrs[defaultCamChildIdx]->setting == CAM_SET_DEMO1)) { + func_800803F0(globalCtx, defaultCamChildIdx); } func_800800F8(globalCtx, 0xCBC, 0x28, &this->dyna.actor, 0); D_808A43E0 = func_800800F8(globalCtx, 0xCBD, 0x28, &this->dyna.actor, 0); 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 4c32aa6395..956e3ce1cf 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 @@ -213,11 +213,11 @@ void BgMoriRakkatenjo_Update(Actor* thisx, GlobalContext* globalCtx) { osSyncPrintf("camera changed (mori rakka tenjyo) ... \n"); sCamSetting = globalCtx->cameraPtrs[0]->setting; Camera_SetCameraData(globalCtx->cameraPtrs[0], 1, &this->dyna.actor, NULL, 0, 0, 0); - func_8005A77C(globalCtx->cameraPtrs[0], 0x27); + Camera_ChangeSetting(globalCtx->cameraPtrs[0], CAM_SET_MORI1); } } else if (sCamSetting != 0) { osSyncPrintf("camera changed (previous) ... \n"); - func_8005A77C(globalCtx->cameraPtrs[0], 4); + Camera_ChangeSetting(globalCtx->cameraPtrs[0], CAM_SET_DUNGEON1); sCamSetting = 0; } } 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 abce92f52b..b8f89bdf23 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 @@ -166,7 +166,7 @@ void BgPoSyokudai_Draw(Actor* thisx, GlobalContext* globalCtx) { gDPSetEnvColor(POLY_XLU_DISP++, envColor->r, envColor->g, envColor->b, 255); Matrix_Translate(0.0f, 52.0f, 0.0f, MTXMODE_APPLY); - Matrix_RotateY((s16)(func_8005A9F4(ACTIVE_CAM) - this->actor.shape.rot.y + 0x8000) * (M_PI / 0x8000), + Matrix_RotateY((s16)(Camera_GetCamDirYaw(ACTIVE_CAM) - this->actor.shape.rot.y + 0x8000) * (M_PI / 0x8000), MTXMODE_APPLY); Matrix_Scale(0.0027f, 0.0027f, 0.0027f, MTXMODE_APPLY); 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 79ec52af9d..880d51455c 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 @@ -60,7 +60,8 @@ void func_808B7478(Actor* thisx, GlobalContext* globalCtx) { OPEN_DISPS(globalCtx->state.gfxCtx, "../z_bg_spot17_funen.c", 153); func_80093D84(globalCtx->state.gfxCtx); - Matrix_RotateY((s16)(func_8005A9F4(ACTIVE_CAM) - thisx->shape.rot.y + 0x8000) * 9.58738019108e-05f, MTXMODE_APPLY); + Matrix_RotateY((s16)(Camera_GetCamDirYaw(ACTIVE_CAM) - thisx->shape.rot.y + 0x8000) * 9.58738019108e-05f, + MTXMODE_APPLY); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_spot17_funen.c", 161), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); 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 872b07c9d7..a34196c95e 100644 --- a/src/overlays/actors/ovl_Door_Ana/z_door_ana.c +++ b/src/overlays/actors/ovl_Door_Ana/z_door_ana.c @@ -157,7 +157,7 @@ void DoorAna_Update(Actor* thisx, GlobalContext* globalCtx) { this->actionFunc(this, globalCtx); // changes the grottos facing angle based on camera angle - this->actor.shape.rot.y = func_8005A9F4(ACTIVE_CAM) + 0x8000; + this->actor.shape.rot.y = Camera_GetCamDirYaw(ACTIVE_CAM) + 0x8000; } void DoorAna_Draw(Actor* thisx, GlobalContext* globalCtx) { 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 5901145e45..fdf0872cee 100644 --- a/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c +++ b/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c @@ -393,7 +393,7 @@ void func_80996C60(DoorShutter* this, GlobalContext* globalCtx) { DoorShutter_SetupAction(this, func_80997004); this->unk_16C = sp38; this->unk_170 = 0.0f; - func_8005AD40(globalCtx->cameraPtrs[0], &this->dyna.actor, player->unk_46A, 0.0f, 12, sp34, 10); + Camera_ChangeDoorCam(globalCtx->cameraPtrs[0], &this->dyna.actor, player->unk_46A, 0.0f, 12, sp34, 10); } } 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 23367ccd95..c95f52358f 100644 --- a/src/overlays/actors/ovl_En_Bom/z_en_bom.c +++ b/src/overlays/actors/ovl_En_Bom/z_en_bom.c @@ -292,7 +292,7 @@ void EnBom_Update(Actor* thisx, GlobalContext* globalCtx) { if (globalCtx) {}; globalCtx->envCtx.unk_8C[1][0] = globalCtx->envCtx.unk_8C[1][1] = globalCtx->envCtx.unk_8C[1][2] = 0xFA; globalCtx->envCtx.unk_8C[0][0] = globalCtx->envCtx.unk_8C[0][1] = globalCtx->envCtx.unk_8C[0][2] = 0xFA; - func_8005AA1C(&globalCtx->mainCamera, 2, 0xB, 8); + Camera_AddQuake(&globalCtx->mainCamera, 2, 0xB, 8); thisx->params = BOMB_EXPLOSION; this->timer = 10; thisx->flags |= 0x20; 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 7fd591dec3..a7e92507d9 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 @@ -102,7 +102,7 @@ void EnBomBowlPit_DetectHit(EnBomBowlPit* this, GlobalContext* globalCtx) { this->unk_1D4.y = fabsf(this->unk_180.y - this->unk_1BC.y) * 0.02f; this->unk_1D4.z = fabsf(this->unk_180.z - this->unk_1BC.z) * 0.02f; - func_800C04D8(globalCtx, this->camId, &this->unk_180, &this->unk_18C); + Gameplay_CameraSetAtEye(globalCtx, this->camId, &this->unk_180, &this->unk_18C); this->actor.textId = 0xF; func_8010B680(globalCtx, this->actor.textId, NULL); this->unk_154 = 5; @@ -128,7 +128,7 @@ void EnBomBowlPit_CameraDollyIn(EnBomBowlPit* this, GlobalContext* globalCtx) { Math_SmoothScaleMaxF(&this->unk_18C.z, this->unk_198.z, this->unk_1A4.z, this->unk_1B0.z); } - func_800C04D8(globalCtx, this->camId, &this->unk_180, &this->unk_18C); + Gameplay_CameraSetAtEye(globalCtx, this->camId, &this->unk_180, &this->unk_18C); if ((this->unk_154 == func_8010BDBC(&globalCtx->msgCtx)) && (func_80106BC8(globalCtx) != 0)) { func_80106CCC(globalCtx); 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 e1c7288696..205067139c 100644 --- a/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c +++ b/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c @@ -402,7 +402,7 @@ void EnBombf_Update(Actor* thisx, GlobalContext* globalCtx) { Audio_PlayActorSound2(thisx, NA_SE_IT_BOMB_EXPLOSION); globalCtx->envCtx.unk_8C[1][0] = globalCtx->envCtx.unk_8C[1][1] = globalCtx->envCtx.unk_8C[1][2] = 0xFA; globalCtx->envCtx.unk_8C[0][0] = globalCtx->envCtx.unk_8C[0][1] = globalCtx->envCtx.unk_8C[0][2] = 0xFA; - func_8005AA1C(&globalCtx->mainCamera, 2, 0xB, 8); + Camera_AddQuake(&globalCtx->mainCamera, 2, 0xB, 8); thisx->params = BOMBFLOWER_EXPLOSION; this->timer = 10; thisx->flags |= 0x20; 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 4bfbb74f12..a7a632d43a 100644 --- a/src/overlays/actors/ovl_En_Butte/z_en_butte.c +++ b/src/overlays/actors/ovl_En_Butte/z_en_butte.c @@ -110,7 +110,7 @@ void EnButte_DrawTransformationEffect(EnButte* this, GlobalContext* globalCtx) { alpha = Math_Sins(sTransformationEffectAlpha) * 250; alpha = CLAMP(alpha, 0, 255); - func_8005A970(&camDir, ACTIVE_CAM); + Camera_GetCamDir(&camDir, ACTIVE_CAM); Matrix_RotateY(camDir.y * (M_PI / 0x8000), MTXMODE_NEW); Matrix_RotateX(camDir.x * (M_PI / 0x8000), MTXMODE_APPLY); Matrix_RotateZ(camDir.z * (M_PI / 0x8000), MTXMODE_APPLY); 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 334bf9b20d..0cb491439e 100644 --- a/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c +++ b/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c @@ -446,8 +446,8 @@ void EnDaiku_InitSubCamera(EnDaiku* this, GlobalContext* globalCtx) { Gameplay_ChangeCameraStatus(globalCtx, 0, 1); Gameplay_ChangeCameraStatus(globalCtx, this->subCamId, 7); - func_800C04D8(globalCtx, this->subCamId, &this->subCamAt, &this->subCamEye); - func_800C0704(globalCtx, this->subCamId, globalCtx->mainCamera.fov); + Gameplay_CameraSetAtEye(globalCtx, this->subCamId, &this->subCamAt, &this->subCamEye); + Gameplay_CameraSetFov(globalCtx, this->subCamId, globalCtx->mainCamera.fov); func_8002DF54(globalCtx, &this->actor, 1); } @@ -462,7 +462,7 @@ void EnDaiku_UpdateSubCamera(EnDaiku* this, GlobalContext* globalCtx) { Math_SmoothScaleMaxMinF(&this->subCamAt.y, this->subCamAtTarget.y, 1.0f, 1000.0f, 0.0f); Math_SmoothScaleMaxMinF(&this->subCamAt.z, this->subCamAtTarget.z, 1.0f, 1000.0f, 0.0f); - func_800C04D8(globalCtx, this->subCamId, &this->subCamAt, &this->subCamEye); + Gameplay_CameraSetAtEye(globalCtx, this->subCamId, &this->subCamAt, &this->subCamEye); } void EnDaiku_EscapeSuccess(EnDaiku* this, GlobalContext* globalCtx) { 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 c2db71fb29..f8be2cae99 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 @@ -208,14 +208,14 @@ void EnFdFire_Draw(Actor* thisx, GlobalContext* globalCtx) { OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_fd_fire.c", 572); Matrix_Translate(this->actor.posRot.pos.x, this->actor.posRot.pos.y, this->actor.posRot.pos.z, MTXMODE_NEW); - sp8E = Math_Vec3f_Yaw(&scale, &this->actor.velocity) - func_8005A9F4(ACTIVE_CAM); + sp8E = Math_Vec3f_Yaw(&scale, &this->actor.velocity) - Camera_GetCamDirYaw(ACTIVE_CAM); sp84 = fabsf(Math_Coss(sp8E)); sp88 = Math_Sins(sp8E); sp80 = Math_Vec3f_DistXZ(&scale, &this->actor.velocity) / 1.5f; if (1) {} if (1) {} if (1) {} - Matrix_RotateY((s16)(func_8005A9F4(ACTIVE_CAM) + 0x8000) * (M_PI / 0x8000), MTXMODE_APPLY); + Matrix_RotateY((s16)(Camera_GetCamDirYaw(ACTIVE_CAM) + 0x8000) * (M_PI / 0x8000), MTXMODE_APPLY); Matrix_RotateZ(((sp88 * -10.0f) * sp80) * (M_PI / 180.0f), MTXMODE_APPLY); scale.x = scale.y = scale.z = this->scale * 0.001f; Matrix_Scale(scale.x, scale.y, scale.z, MTXMODE_APPLY); 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 b21560a13d..65eed47198 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 @@ -180,7 +180,7 @@ void func_80A0F6F8(EnFhgFire* this, GlobalContext* globalCtx) { break; case 0x0A: - this->actor.shape.rot.y = func_8005A948(camera) + ((*tmp & 0xFF) << 0x0F); + this->actor.shape.rot.y = Camera_GetInputDirYaw(camera) + ((*tmp & 0xFF) << 0x0F); Math_SmoothScaleMaxF(&this->scale, 1.0f, 1.0f, 0.2f); if (this->unk_150.x == 0) { @@ -211,7 +211,7 @@ void func_80A0F6F8(EnFhgFire* this, GlobalContext* globalCtx) { break; case 0x0B: - this->actor.shape.rot.y = func_8005A948(camera) + ((*tmp & 0xFF) << 0x0F); + this->actor.shape.rot.y = Camera_GetInputDirYaw(camera) + ((*tmp & 0xFF) << 0x0F); Math_SmoothScaleMaxF(&this->scale, 0.0f, 1.0f, 0.2f); if (this->unk_150.x == 0x1E) { 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 0322890f43..09224bea9b 100644 --- a/src/overlays/actors/ovl_En_Heishi1/z_en_heishi1.c +++ b/src/overlays/actors/ovl_En_Heishi1/z_en_heishi1.c @@ -422,7 +422,7 @@ void EnHeishi1_Update(Actor* thisx, GlobalContext* globalCtx) { if (this->type != 5) { path = this->path * 2; - if ((sCamDataIdxs[path] == activeCam->unk_148) || (sCamDataIdxs[path + 1] == activeCam->unk_148)) { + if ((sCamDataIdxs[path] == activeCam->camDataIdx) || (sCamDataIdxs[path + 1] == activeCam->camDataIdx)) { if (!sPlayerIsCaught) { if ((this->actionFunc == EnHeishi1_Walk) || (this->actionFunc == EnHeishi1_Wait)) { Vec3f searchBallVel; 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 abc86483fb..3e44abc399 100644 --- a/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c +++ b/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c @@ -316,7 +316,7 @@ void func_80A5372C(EnHeishi2* this, GlobalContext* globalCtx) { this->unk_28C.y = 1145.0f; this->unk_28C.z = 3014.0f; - func_800C04D8(globalCtx, this->cameraId, &this->unk_280, &this->unk_28C); + Gameplay_CameraSetAtEye(globalCtx, this->cameraId, &this->unk_280, &this->unk_28C); this->actionFunc = func_80A53850; } @@ -324,7 +324,7 @@ void func_80A53850(EnHeishi2* this, GlobalContext* globalCtx) { BgSpot15Saku* gate; SkelAnime_FrameUpdateMatrix(&this->skelAnime); - func_800C04D8(globalCtx, this->cameraId, &this->unk_280, &this->unk_28C); + Gameplay_CameraSetAtEye(globalCtx, this->cameraId, &this->unk_280, &this->unk_28C); gate = (BgSpot15Saku*)this->gate; if ((this->unk_2F2[0] == 0) || (gate->unk_168 == 0)) { Gameplay_ClearCamera(globalCtx, this->cameraId); @@ -487,7 +487,7 @@ void func_80A53DF8(EnHeishi2* this, GlobalContext* globalCtx) { this->unk_28C.y = 417.0f; this->unk_298.z = -1079.0f; this->unk_28C.z = -1079.0f; - func_800C04D8(globalCtx, this->cameraId, &this->unk_280, &this->unk_28C); + Gameplay_CameraSetAtEye(globalCtx, this->cameraId, &this->unk_280, &this->unk_28C); this->actionFunc = func_80A53F30; } @@ -495,7 +495,7 @@ void func_80A53F30(EnHeishi2* this, GlobalContext* globalCtx) { BgGateShutter* gate; SkelAnime_FrameUpdateMatrix(&this->skelAnime); - func_800C04D8(globalCtx, this->cameraId, &this->unk_280, &this->unk_28C); + Gameplay_CameraSetAtEye(globalCtx, this->cameraId, &this->unk_280, &this->unk_28C); gate = (BgGateShutter*)this->gate; if ((this->unk_2F2[0] == 0) || (gate->openingState == 0)) { Gameplay_ClearCamera(globalCtx, this->cameraId); 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 f74c820178..f1ea9c2608 100644 --- a/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c +++ b/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c @@ -428,11 +428,12 @@ void EnHintnuts_Leave(EnHintnuts* this, GlobalContext* globalCtx) { if (this->actor.bgCheckFlags & 8) { temp_a1 = this->actor.wallPolyRot; } else { - temp_a1 = this->actor.yawTowardsLink - func_8005A9F4(globalCtx->cameraPtrs[globalCtx->activeCamera]) - 0x8000; + temp_a1 = + this->actor.yawTowardsLink - Camera_GetCamDirYaw(globalCtx->cameraPtrs[globalCtx->activeCamera]) - 0x8000; if (ABS(temp_a1) >= 0x4001) { - temp_a1 = func_8005A9F4(globalCtx->cameraPtrs[globalCtx->activeCamera]) + 0x8000; + temp_a1 = Camera_GetCamDirYaw(globalCtx->cameraPtrs[globalCtx->activeCamera]) + 0x8000; } else { - temp_a1 = func_8005A9F4(globalCtx->cameraPtrs[globalCtx->activeCamera]) - (temp_a1 >> 1) + 0x8000; + temp_a1 = Camera_GetCamDirYaw(globalCtx->cameraPtrs[globalCtx->activeCamera]) - (temp_a1 >> 1) + 0x8000; } } Math_ApproxUpdateScaledS(&this->actor.shape.rot.y, temp_a1, 0x800); 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 4da7e8c17d..55ec5da305 100644 --- a/src/overlays/actors/ovl_En_Holl/z_en_holl.c +++ b/src/overlays/actors/ovl_En_Holl/z_en_holl.c @@ -180,7 +180,7 @@ void func_80A59014(EnHoll* this, GlobalContext* globalCtx) { f32 planeHalfWidth; s32 pad2; Player* player = PLAYER; - s32 useViewEye = D_8011D394 != 0 || globalCtx->csCtx.state != 0; + s32 useViewEye = gDbgCamEnabled != 0 || globalCtx->csCtx.state != 0; s32 transitionActorIdx; f32 absZ; s32 side; diff --git a/src/overlays/actors/ovl_En_Horse/z_en_horse.h b/src/overlays/actors/ovl_En_Horse/z_en_horse.h index 646c688515..b112db20b7 100644 --- a/src/overlays/actors/ovl_En_Horse/z_en_horse.h +++ b/src/overlays/actors/ovl_En_Horse/z_en_horse.h @@ -40,6 +40,11 @@ typedef struct EnHorse { ? true \ : false) +#define EN_HORSE_CHECK_5(horseActor) \ + (((horseActor)->unk_1F0 & 0x4) \ + ? true \ + : false) + extern const ActorInit En_Horse_InitVars; #endif 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 775a9d8b3d..20e0c468d0 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 @@ -354,7 +354,7 @@ void EnIceHono_Draw(Actor* thisx, GlobalContext* globalCtx) { gDPSetEnvColor(POLY_XLU_DISP++, 0, 150, 255, 0); - Matrix_RotateY((s16)(func_8005A9F4(ACTIVE_CAM) - this->actor.shape.rot.y + 0x8000) * (M_PI / 0x8000), + Matrix_RotateY((s16)(Camera_GetCamDirYaw(ACTIVE_CAM) - this->actor.shape.rot.y + 0x8000) * (M_PI / 0x8000), MTXMODE_APPLY); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_ice_hono.c", 718), 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 d743f8671d..6c9407a40e 100644 --- a/src/overlays/actors/ovl_En_Ik/z_en_ik.c +++ b/src/overlays/actors/ovl_En_Ik/z_en_ik.c @@ -375,7 +375,7 @@ void func_80A74EBC(EnIk* this, GlobalContext* globalCtx) { sp2C.z = this->actor.posRot.pos.z + Math_Coss(this->actor.shape.rot.y + 0x6A4) * 70.0f; sp2C.y = this->actor.posRot.pos.y; Audio_PlayActorSound2(&this->actor, NA_SE_EN_IRONNACK_HIT_GND); - func_8005AA1C(&globalCtx->mainCamera, 2, 0x19, 5); + Camera_AddQuake(&globalCtx->mainCamera, 2, 0x19, 5); func_800AA000(this->actor.xzDistFromLink, 0xFF, 0x14, 0x96); func_80062CD4(globalCtx, &sp2C); } 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 166ca16403..a64c0a5b2a 100644 --- a/src/overlays/actors/ovl_En_Kz/z_en_kz.c +++ b/src/overlays/actors/ovl_En_Kz/z_en_kz.c @@ -361,7 +361,7 @@ void EnKz_SetupMweep(EnKz* this, GlobalContext* globalCtx) { pos.y += 60.0f; initPos.y += -100.0f; initPos.z += 260.0f; - func_800C04D8(globalCtx, this->cutsceneCamera, &pos, &initPos); + Gameplay_CameraSetAtEye(globalCtx, this->cutsceneCamera, &pos, &initPos); func_8002DF54(globalCtx, &this->actor, 8); this->actor.speedXZ = 0.1f; this->actionFunc = EnKz_Mweep; @@ -377,7 +377,7 @@ void EnKz_Mweep(EnKz* this, GlobalContext* globalCtx) { pos.y += 60.0f; initPos.y += -100.0f; initPos.z += 260.0f; - func_800C04D8(globalCtx, this->cutsceneCamera, &pos, &initPos); + Gameplay_CameraSetAtEye(globalCtx, this->cutsceneCamera, &pos, &initPos); if ((EnKz_FollowPath(this, globalCtx) == 1) && (this->waypoint == 0)) { func_80034EC0(&this->skelanime, sAnimations, 1); Inventory_ReplaceItem(globalCtx, ITEM_LETTER_RUTO, ITEM_BOTTLE); 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 73a7e99790..64e4f74cb3 100644 --- a/src/overlays/actors/ovl_En_Light/z_en_light.c +++ b/src/overlays/actors/ovl_En_Light/z_en_light.c @@ -80,7 +80,7 @@ void EnLight_Destroy(Actor* thisx, GlobalContext* globalCtx) { void EnLight_UpdatePosRot(EnLight* this, GlobalContext* globalCtx) { // update yaw for billboard effect - this->actor.shape.rot.y = func_8005A9F4(ACTIVE_CAM) + 0x8000; + this->actor.shape.rot.y = Camera_GetCamDirYaw(ACTIVE_CAM) + 0x8000; if (this->actor.parent != NULL) { Math_Vec3f_Copy(&this->actor.posRot.pos, &(this->actor.parent)->posRot.pos); @@ -185,7 +185,7 @@ void EnLight_Draw(Actor* thisx, GlobalContext* globalCtx) { gDPSetEnvColor(POLY_XLU_DISP++, 255, 0, 0, 0); } - Matrix_RotateY((s16)((func_8005A9F4(ACTIVE_CAM) - this->actor.shape.rot.y) + 0x8000) * (M_PI / 32768.0f), + Matrix_RotateY((s16)((Camera_GetCamDirYaw(ACTIVE_CAM) - this->actor.shape.rot.y) + 0x8000) * (M_PI / 32768.0f), MTXMODE_APPLY); if (this->actor.params & 1) { 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 ffd3f82ba7..f925d7003f 100644 --- a/src/overlays/actors/ovl_En_Mb/z_en_mb.c +++ b/src/overlays/actors/ovl_En_Mb/z_en_mb.c @@ -713,7 +713,7 @@ void func_80AA7938(EnMb* this, GlobalContext* globalCtx) { func_800AA000(this->actor.xzDistFromLink, 0xFF, 0x14, 0x96); EffectSsBlast_SpawnWhiteShockwave(globalCtx, &sp74, &sp68, &sp68); func_80033480(globalCtx, &sp74, 2.0f, 3, 0x12C, 0xB4, 1); - func_8005AA1C(&globalCtx->mainCamera, 2, 0x19, 5); + Camera_AddQuake(&globalCtx->mainCamera, 2, 0x19, 5); func_800358DC(&this->actor, &sp74, &this->actor.posRot.rot, &sp5C, 20, &sp54, globalCtx, -1, 0); func_80AA6DA4(this); } @@ -886,7 +886,7 @@ void func_80AA8378(EnMb* this, GlobalContext* globalCtx) { SkelAnime_ChangeAnimDefaultStop(&this->skelAnime, &D_0600E18C); this->unk_32E = 0; func_800AA000(this->actor.xzDistFromLink, 0xFF, 0x14, 0x96); - func_8005AA1C(&globalCtx->mainCamera, 2, 25, 5); + Camera_AddQuake(&globalCtx->mainCamera, 2, 25, 5); } else { func_80AA6898(this); } @@ -947,7 +947,7 @@ void func_80AA8514(EnMb* this, GlobalContext* globalCtx) { func_800AA000(this->actor.xzDistFromLink, 0xFF, 0x14, 0x96); func_80033260(globalCtx, &this->actor, &effPosition, 50.0f, 0xA, 3.0f, 0x190, 0x3C, 0); Audio_PlayActorSound2(&this->actor, NA_SE_EN_RIZA_DOWN); - func_8005AA1C(&globalCtx->mainCamera, 2, 0x19, 5); + Camera_AddQuake(&globalCtx->mainCamera, 2, 0x19, 5); } } 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 ce9fa7e115..2f8066b0bb 100644 --- a/src/overlays/actors/ovl_En_Md/z_en_md.c +++ b/src/overlays/actors/ovl_En_Md/z_en_md.c @@ -506,7 +506,7 @@ void func_80AAB158(EnMd* this, GlobalContext* globalCtx) { temp2 = 1; } - if ((globalCtx->csCtx.state != 0) || (D_8011D394 != 0)) { + if ((globalCtx->csCtx.state != 0) || gDbgCamEnabled) { this->unk_1E0.unk_18 = globalCtx->view.eye; this->unk_1E0.unk_14 = 40.0f; temp = 2; 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 1793ad5ff8..ff31f1b21f 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 @@ -509,12 +509,12 @@ void EnPoField_Death(EnPoField* this, GlobalContext* globalCtx) { if (this->actionTimer < 5) { sp6C.y = Math_Sins(this->actionTimer * 0x1000 - 0x4000) * 23.0f + (this->actor.posRot.pos.y + 40.0f); sp68 = Math_Coss(this->actionTimer * 0x1000 - 0x4000) * 23.0f; - sp6C.x = Math_Sins(func_8005A9F4(ACTIVE_CAM) + 0x4800) * sp68 + this->actor.posRot.pos.x; - sp6C.z = Math_Coss(func_8005A9F4(ACTIVE_CAM) + 0x4800) * sp68 + this->actor.posRot.pos.z; + sp6C.x = Math_Sins(Camera_GetCamDirYaw(ACTIVE_CAM) + 0x4800) * sp68 + this->actor.posRot.pos.x; + sp6C.z = Math_Coss(Camera_GetCamDirYaw(ACTIVE_CAM) + 0x4800) * sp68 + this->actor.posRot.pos.z; } else { sp6C.y = this->actor.posRot.pos.y + 40.0f + 15.0f * (this->actionTimer - 5); - sp6C.x = Math_Sins(func_8005A9F4(ACTIVE_CAM) + 0x4800) * 23.0f + this->actor.posRot.pos.x; - sp6C.z = Math_Coss(func_8005A9F4(ACTIVE_CAM) + 0x4800) * 23.0f + this->actor.posRot.pos.z; + sp6C.x = Math_Sins(Camera_GetCamDirYaw(ACTIVE_CAM) + 0x4800) * 23.0f + this->actor.posRot.pos.x; + sp6C.z = Math_Coss(Camera_GetCamDirYaw(ACTIVE_CAM) + 0x4800) * 23.0f + this->actor.posRot.pos.z; } EffectSsDeadDb_Spawn(globalCtx, &sp6C, &D_80AD7114, &D_80AD7120, this->actionTimer * 10 + 80, 0, 255, 255, 255, 255, 0, 0, 255, 1, 9, 1); @@ -745,7 +745,7 @@ void EnPoField_DrawFlame(EnPoField* this, GlobalContext* globalCtx) { sp4C = this->flameScale * 85000.0f; gDPSetPrimColor(POLY_XLU_DISP++, 0x80, 0x80, 255, 255, 0, sp4C); Matrix_Translate(this->flamePosition.x, this->flamePosition.y, this->flamePosition.z, MTXMODE_NEW); - Matrix_RotateY((s16)(func_8005A9F4(ACTIVE_CAM) + 0x8000) * 0.0000958738f, MTXMODE_APPLY); + Matrix_RotateY((s16)(Camera_GetCamDirYaw(ACTIVE_CAM) + 0x8000) * 0.0000958738f, MTXMODE_APPLY); if (this->flameTimer >= 20) { gDPSetEnvColor(POLY_XLU_DISP++, 255, 0, 0, 0); Matrix_Scale(this->flameScale, this->flameScale, this->flameScale, MTXMODE_APPLY); @@ -954,7 +954,7 @@ void EnPoField_DrawSoul(Actor* thisx, GlobalContext* globalCtx) { gDPSetPrimColor(POLY_XLU_DISP++, 0x80, 0x80, info->primColor.r, info->primColor.g, info->primColor.b, this->lightColor.a); gDPSetEnvColor(POLY_XLU_DISP++, this->lightColor.r, this->lightColor.g, this->lightColor.b, 255); - Matrix_RotateY((s16)(func_8005A9F4(ACTIVE_CAM) + 0x8000) * 9.58738e-05f, MTXMODE_APPLY); + Matrix_RotateY((s16)(Camera_GetCamDirYaw(ACTIVE_CAM) + 0x8000) * 9.58738e-05f, MTXMODE_APPLY); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_po_field.c", 2143), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(POLY_XLU_DISP++, D_060023B0); 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 0b5fe0f3b6..324fd52764 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 @@ -291,12 +291,12 @@ void EnPoRelay_DisappearAndReward(EnPoRelay* this, GlobalContext* globalCtx) { if (this->actionTimer < 5) { vec.y = Math_Sins((this->actionTimer * 0x1000) - 0x4000) * 23.0f + (this->actor.posRot.pos.y + 40.0f); multiplier = Math_Coss((this->actionTimer * 0x1000) - 0x4000) * 23.0f; - vec.x = (Math_Sins(func_8005A9F4(ACTIVE_CAM) + 0x4800) * multiplier) + this->actor.posRot.pos.x; - vec.z = (Math_Coss(func_8005A9F4(ACTIVE_CAM) + 0x4800) * multiplier) + this->actor.posRot.pos.z; + vec.x = (Math_Sins(Camera_GetCamDirYaw(ACTIVE_CAM) + 0x4800) * multiplier) + this->actor.posRot.pos.x; + vec.z = (Math_Coss(Camera_GetCamDirYaw(ACTIVE_CAM) + 0x4800) * multiplier) + this->actor.posRot.pos.z; } else { vec.y = this->actor.posRot.pos.y + 40.0f + 15.0f * (this->actionTimer - 5); - vec.x = (Math_Sins(func_8005A9F4(ACTIVE_CAM) + 0x4800) * 23.0f) + this->actor.posRot.pos.x; - vec.z = (Math_Coss(func_8005A9F4(ACTIVE_CAM) + 0x4800) * 23.0f) + this->actor.posRot.pos.z; + vec.x = (Math_Sins(Camera_GetCamDirYaw(ACTIVE_CAM) + 0x4800) * 23.0f) + this->actor.posRot.pos.x; + vec.z = (Math_Coss(Camera_GetCamDirYaw(ACTIVE_CAM) + 0x4800) * 23.0f) + this->actor.posRot.pos.z; } EffectSsDeadDb_Spawn(globalCtx, &vec, &D_80AD8D30, &D_80AD8D3C, this->actionTimer * 10 + 80, 0, 255, 255, 255, 255, 0, 0, 255, 1, 9, true); 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 4a2b2864c9..2cbd6a837a 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 @@ -1364,7 +1364,7 @@ void EnPoSisters_Draw(Actor* thisx, GlobalContext* globalCtx) { gDPPipeSync(POLY_XLU_DISP++); gDPSetPrimColor(POLY_XLU_DISP++, 0x80, 0x80, temp_s7->r, temp_s7->g, temp_s7->b, phi_s5); Matrix_Translate(this->unk_234[i].x, this->unk_234[i].y, this->unk_234[i].z, MTXMODE_NEW); - Matrix_RotateRPY(0, (s16)(func_8005A9F4(ACTIVE_CAM) + 0x8000), 0, MTXMODE_APPLY); + Matrix_RotateRPY(0, (s16)(Camera_GetCamDirYaw(ACTIVE_CAM) + 0x8000), 0, MTXMODE_APPLY); if (this->actionFunc == func_80ADAFC0) { phi_f20 = (this->unk_19A - i) * 0.025f + 0.5f; phi_f20 = CLAMP(phi_f20, 0.5f, 0.8f) * 0.007f; 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 100ad82597..43abcee02f 100644 --- a/src/overlays/actors/ovl_En_Poh/z_en_poh.c +++ b/src/overlays/actors/ovl_En_Poh/z_en_poh.c @@ -567,12 +567,12 @@ void func_80ADF15C(EnPoh* this, GlobalContext* globalCtx) { if (this->unk_198 < 5) { vec.y = Math_Sins((this->unk_198 * 0x1000) - 0x4000) * 23.0f + (this->actor.posRot.pos.y + 40.0f); multiplier = Math_Coss((this->unk_198 * 0x1000) - 0x4000) * 23.0f; - vec.x = Math_Sins(func_8005A9F4(ACTIVE_CAM) + 0x4800) * multiplier + this->actor.posRot.pos.x; - vec.z = Math_Coss(func_8005A9F4(ACTIVE_CAM) + 0x4800) * multiplier + this->actor.posRot.pos.z; + vec.x = Math_Sins(Camera_GetCamDirYaw(ACTIVE_CAM) + 0x4800) * multiplier + this->actor.posRot.pos.x; + vec.z = Math_Coss(Camera_GetCamDirYaw(ACTIVE_CAM) + 0x4800) * multiplier + this->actor.posRot.pos.z; } else { vec.y = (this->actor.posRot.pos.y + 40.0f) + (15.0f * (this->unk_198 - 5)); - vec.x = Math_Sins(func_8005A9F4(ACTIVE_CAM) + 0x4800) * 23.0f + this->actor.posRot.pos.x; - vec.z = Math_Coss(func_8005A9F4(ACTIVE_CAM) + 0x4800) * 23.0f + this->actor.posRot.pos.z; + vec.x = Math_Sins(Camera_GetCamDirYaw(ACTIVE_CAM) + 0x4800) * 23.0f + this->actor.posRot.pos.x; + vec.z = Math_Coss(Camera_GetCamDirYaw(ACTIVE_CAM) + 0x4800) * 23.0f + this->actor.posRot.pos.z; } EffectSsDeadDb_Spawn(globalCtx, &vec, &D_80AE1B60, &D_80AE1B6C, this->unk_198 * 10 + 80, 0, 255, 255, 255, 255, 0, 0, 255, 1, 9, 1); @@ -1142,7 +1142,7 @@ void EnPoh_DrawSoul(Actor* thisx, GlobalContext* globalCtx) { gDPSetPrimColor(POLY_XLU_DISP++, 0x80, 0x80, this->info->primColor.r, this->info->primColor.g, this->info->primColor.b, this->lightColor.a); gDPSetEnvColor(POLY_XLU_DISP++, this->lightColor.r, this->lightColor.g, this->lightColor.b, 255); - Matrix_RotateY((s16)(func_8005A9F4(ACTIVE_CAM) + 0x8000) * 9.58738e-05f, MTXMODE_APPLY); + Matrix_RotateY((s16)(Camera_GetCamDirYaw(ACTIVE_CAM) + 0x8000) * 9.58738e-05f, MTXMODE_APPLY); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_poh.c", 2910), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(POLY_XLU_DISP++, this->info->soulDisplayList); 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 6674439f99..88c1fbaab9 100644 --- a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c +++ b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c @@ -320,15 +320,15 @@ DynaPolyActor* func_80AEB088(GlobalContext* globalCtx) { return NULL; } -void func_80AEB0EC(EnRu1* this, s32 arg1) { +void func_80AEB0EC(EnRu1* this, s32 cameraSetting) { if (this->unk_28C != NULL) { - this->unk_28C->unk_1B8 = arg1; + this->unk_28C->cameraSetting = cameraSetting; } } s32 func_80AEB104(EnRu1* this) { if (this->unk_28C != NULL) { - return this->unk_28C->unk_1B8; + return this->unk_28C->cameraSetting; } else { return 0; } 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 e6ccbd5f80..c7b66644c4 100644 --- a/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c +++ b/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c @@ -163,16 +163,16 @@ void func_80B4B010(EnZl1* this, GlobalContext* globalCtx) { SkelAnime_ChangeAnim(&this->skelAnime, &D_06010B38, 1.0f, 0.0f, SkelAnime_GetFrameCount(&D_06010B38), 3, -10.0f); this->unk_1E8 = Gameplay_CreateSubCamera(globalCtx); - Gameplay_ChangeCameraStatus(globalCtx, 0, 1); - Gameplay_ChangeCameraStatus(globalCtx, this->unk_1E8, 7); - func_800C0808(globalCtx, this->unk_1E8, player, 0x21); + Gameplay_ChangeCameraStatus(globalCtx, 0, CAM_STAT_WAIT); + Gameplay_ChangeCameraStatus(globalCtx, this->unk_1E8, CAM_STAT_ACTIVE); + func_800C0808(globalCtx, this->unk_1E8, player, CAM_SET_FREE0); globalCtx->envCtx.unk_E2[0] = 0xFF; globalCtx->envCtx.unk_E2[1] = 0xFF; globalCtx->envCtx.unk_E2[2] = 0xFF; globalCtx->envCtx.unk_E2[3] = 0x18; globalCtx->envCtx.unk_E1 = 1; - func_800C04D8(globalCtx, this->unk_1E8, &vec1, &vec2); - func_800C0704(globalCtx, this->unk_1E8, 30.0f); + Gameplay_CameraSetAtEye(globalCtx, this->unk_1E8, &vec1, &vec2); + Gameplay_CameraSetFov(globalCtx, this->unk_1E8, 30.0f); ShrinkWindow_SetVal(0x20); Interface_ChangeAlpha(2); player->actor.posRot.pos = playerPos; @@ -225,8 +225,8 @@ void func_80B4B240(EnZl1* this, GlobalContext* globalCtx) { case 1: if ((func_8010BDBC(msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { globalCtx->envCtx.unk_E1 = 0; - func_800C04D8(globalCtx, this->unk_1E8, &sp74, &sp68); - func_800C0704(globalCtx, this->unk_1E8, 25.0f); + Gameplay_CameraSetAtEye(globalCtx, this->unk_1E8, &sp74, &sp68); + Gameplay_CameraSetFov(globalCtx, this->unk_1E8, 25.0f); player->actor.posRot.pos = sp58; this->actor.textId = 0x702F; func_8010B720(globalCtx, this->actor.textId); @@ -396,8 +396,8 @@ void func_80B4B8B4(EnZl1* this, GlobalContext* globalCtx) { this->actor.velocity.z = (sp68.z - sp74.z) / actionLength; } func_80038290(globalCtx, &this->actor, &this->unk_200, &this->unk_206, this->actor.posRot2.pos); - func_800C04D8(globalCtx, this->unk_1E8, &sp98, &sp8C); - func_800C0704(globalCtx, this->unk_1E8, 70.0f); + Gameplay_CameraSetAtEye(globalCtx, this->unk_1E8, &sp98, &sp8C); + Gameplay_CameraSetFov(globalCtx, this->unk_1E8, 70.0f); } } @@ -496,9 +496,9 @@ void func_80B4BF2C(EnZl1* this, GlobalContext* globalCtx) { break; } case 2: - if (Actor_HasParent(&this->actor, globalCtx)) { - func_800C078C(globalCtx, 0, this->unk_1E8); - Gameplay_ChangeCameraStatus(globalCtx, 0, 7); + if (Actor_HasParent(this, globalCtx)) { + Gameplay_CopyCamera(globalCtx, 0, this->unk_1E8); + Gameplay_ChangeCameraStatus(globalCtx, 0, CAM_STAT_ACTIVE); Gameplay_ClearCamera(globalCtx, this->unk_1E8); this->actor.parent = NULL; this->unk_1E2++; 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 91cae9b134..62a914877f 100644 --- a/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c +++ b/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c @@ -123,7 +123,7 @@ void MagicDark_DiamondUpdate(Actor* thisx, GlobalContext* globalCtx) { } thisx->posRot.rot.y += 0x3E8; - thisx->shape.rot.y = thisx->posRot.rot.y + func_8005A9F4(ACTIVE_CAM); + thisx->shape.rot.y = thisx->posRot.rot.y + Camera_GetCamDirYaw(ACTIVE_CAM); this->timer++; gSaveContext.nayrusLoveTimer = nayrusLoveTimer + 1; @@ -251,11 +251,11 @@ void MagicDark_OrbDraw(Actor* thisx, GlobalContext* globalCtx) { return; } - pos.x -= - (this->actor.scale.x * 300.0f * Math_Sins(func_8005A9F4(ACTIVE_CAM)) * Math_Coss(func_8005A9CC(ACTIVE_CAM))); - pos.y -= (this->actor.scale.x * 300.0f * Math_Sins(func_8005A9CC(ACTIVE_CAM))); - pos.z -= - (this->actor.scale.x * 300.0f * Math_Coss(func_8005A9F4(ACTIVE_CAM)) * Math_Coss(func_8005A9CC(ACTIVE_CAM))); + pos.x -= (this->actor.scale.x * 300.0f * Math_Sins(Camera_GetCamDirYaw(ACTIVE_CAM)) * + Math_Coss(Camera_GetCamDirPitch(ACTIVE_CAM))); + pos.y -= (this->actor.scale.x * 300.0f * Math_Sins(Camera_GetCamDirPitch(ACTIVE_CAM))); + pos.z -= (this->actor.scale.x * 300.0f * Math_Coss(Camera_GetCamDirYaw(ACTIVE_CAM)) * + Math_Coss(Camera_GetCamDirPitch(ACTIVE_CAM))); OPEN_DISPS(globalCtx->state.gfxCtx, "../z_magic_dark.c", 619); 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 7e1aba115d..cf57de83a7 100644 --- a/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c +++ b/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c @@ -268,7 +268,7 @@ void ObjSyokudai_Draw(Actor* thisx, GlobalContext* globalCtx) { gDPSetEnvColor(POLY_XLU_DISP++, 255, 0, 0, 0); Matrix_Translate(0.0f, 52.0f, 0.0f, MTXMODE_APPLY); - Matrix_RotateY((s16)(func_8005A9F4(ACTIVE_CAM) - this->actor.shape.rot.y + 0x8000) * (M_PI / 0x8000), + Matrix_RotateY((s16)(Camera_GetCamDirYaw(ACTIVE_CAM) - this->actor.shape.rot.y + 0x8000) * (M_PI / 0x8000), MTXMODE_APPLY); Matrix_Scale(flameScale, flameScale, flameScale, MTXMODE_APPLY); 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 6c6d7c0d2a..0419b964e4 100644 --- a/src/overlays/actors/ovl_Oceff_Storm/z_oceff_storm.c +++ b/src/overlays/actors/ovl_Oceff_Storm/z_oceff_storm.c @@ -120,7 +120,7 @@ void OceffStorm_Update(Actor* thisx, GlobalContext* globalCtx) { Player* player = PLAYER; this->actor.posRot.pos = player->actor.posRot.pos; - this->actor.shape.rot.y = func_8005A9F4(ACTIVE_CAM); + this->actor.shape.rot.y = Camera_GetCamDirYaw(ACTIVE_CAM); this->actionFunc(this, globalCtx); } 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 9b92e4c861..101db5bf4d 100644 --- a/src/overlays/actors/ovl_Oceff_Wipe/z_oceff_wipe.c +++ b/src/overlays/actors/ovl_Oceff_Wipe/z_oceff_wipe.c @@ -75,7 +75,7 @@ void OceffWipe_Draw(Actor* thisx, GlobalContext* globalCtx) { Vec3f vec; eye = ACTIVE_CAM->eye; - func_8005AFB4(&vec, ACTIVE_CAM); + Camera_GetSkyboxOffset(&vec, ACTIVE_CAM); OPEN_DISPS(globalCtx->state.gfxCtx, "../z_oceff_wipe.c", 346); 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 61fb0c9808..fb83157ab5 100644 --- a/src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c +++ b/src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c @@ -69,7 +69,7 @@ void OceffWipe2_Draw(Actor* thisx, GlobalContext* globalCtx) { Vec3f vec; eye = ACTIVE_CAM->eye; - func_8005AFB4(&vec, ACTIVE_CAM); + Camera_GetSkyboxOffset(&vec, ACTIVE_CAM); if (this->counter < 32) { z = Math_Sins(this->counter << 9) * 1330; } else { 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 4fd58952e2..dc2cda8336 100644 --- a/src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c +++ b/src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c @@ -70,7 +70,7 @@ void OceffWipe3_Draw(Actor* thisx, GlobalContext* globalCtx) { Vec3f vec; eye = ACTIVE_CAM->eye; - func_8005AFB4(&vec, ACTIVE_CAM); + Camera_GetSkyboxOffset(&vec, ACTIVE_CAM); if (this->counter < 32) { z = Math_Sins(this->counter << 9) * 1330; } else { 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 6ca4bd12a9..ad83326771 100644 --- a/src/overlays/actors/ovl_Oceff_Wipe4/z_oceff_wipe4.c +++ b/src/overlays/actors/ovl_Oceff_Wipe4/z_oceff_wipe4.c @@ -64,7 +64,7 @@ void OceffWipe4_Draw(Actor* thisx, GlobalContext* globalCtx) { Vec3f vec; eye = ACTIVE_CAM->eye; - func_8005AFB4(&vec, ACTIVE_CAM); + Camera_GetSkyboxOffset(&vec, ACTIVE_CAM); if (this->counter < 16) { z = Math_Sins(this->counter << 10) * 1330; } else { diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index ea2b77cb6e..457badb54f 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -1586,7 +1586,7 @@ void func_8083315C(GlobalContext* globalCtx, Player* this) { func_80077D10(&D_808535D4, &D_808535D8, sControlInput); - D_808535DC = func_8005A948(ACTIVE_CAM) + D_808535D8; + D_808535DC = Camera_GetInputDirYaw(ACTIVE_CAM) + D_808535D8; this->unk_846 = (this->unk_846 + 1) % 4; @@ -2318,7 +2318,7 @@ s32 func_80834E7C(GlobalContext* globalCtx) { s32 func_80834EB8(Player* this, GlobalContext* globalCtx) { if ((this->unk_6AD == 0) || (this->unk_6AD == 2)) { - if (func_80833BCC(this) || (func_8005A470(Gameplay_GetCamera(globalCtx, 0), 7) == 0)) { + if (func_80833BCC(this) || (Camera_CheckValidMode(Gameplay_GetCamera(globalCtx, 0), 7) == 0)) { return 1; } this->unk_6AD = 2; @@ -2719,18 +2719,18 @@ void func_80835DE4(GlobalContext* globalCtx, Player* this, PlayerFunc674 func, s } } -void func_80835E44(GlobalContext* globalCtx, s16 arg1) { +void func_80835E44(GlobalContext* globalCtx, s16 camSetting) { if (!func_800C0CB8(globalCtx)) { - if (arg1 == 0x2F) { + if (camSetting == CAM_SET_SCENE1) { Interface_ChangeAlpha(2); } } else { - func_8005A77C(Gameplay_GetCamera(globalCtx, 0), arg1); + Camera_ChangeSetting(Gameplay_GetCamera(globalCtx, 0), camSetting); } } void func_80835EA4(GlobalContext* globalCtx, s32 arg1) { - func_80835E44(globalCtx, 0x38); + func_80835E44(globalCtx, CAM_SET_ITEM2); Camera_SetCameraData(Gameplay_GetCamera(globalCtx, 0), 4, 0, 0, arg1, 0, 0); } @@ -3179,7 +3179,7 @@ s32 func_80837268(Player* this, f32* arg1, s16* arg2, f32 arg3, GlobalContext* g return 0; } else { - *arg2 += func_8005A948(ACTIVE_CAM); + *arg2 += Camera_GetInputDirYaw(ACTIVE_CAM); return 1; } } @@ -3664,7 +3664,7 @@ s32 func_808382DC(Player* this, GlobalContext* globalCtx) { this->unk_A86 = 0; } } else { - sp68 = ((Player_GetCameraYOffset(this) - 8.0f) < (this->unk_6C4 * this->actor.scale.y)); + sp68 = ((Player_GetHeight(this) - 8.0f) < (this->unk_6C4 * this->actor.scale.y)); if (sp68 || (this->actor.bgCheckFlags & 0x100) || (D_808535E4 == 9) || (this->stateFlags2 & 0x80000000)) { func_80832698(this, NA_SE_VO_LI_DAMAGE_S); @@ -3950,7 +3950,7 @@ void func_80838F5C(GlobalContext* globalCtx, Player* this) { this->stateFlags1 |= 0xA0000000; - func_8005A77C(Gameplay_GetCamera(globalCtx, 0), 0x21); + Camera_ChangeSetting(Gameplay_GetCamera(globalCtx, 0), CAM_SET_FREE0); } s32 func_80838FB8(GlobalContext* globalCtx, Player* this) { @@ -4274,11 +4274,11 @@ s32 func_80839800(Player* this, GlobalContext* globalCtx) { gSaveContext.entranceSound = NA_SE_OC_DOOR_OPEN; } } else { - func_8005AD40(Gameplay_GetCamera(globalCtx, 0), doorActor, - globalCtx->transitionActorList[(u16)doorActor->params >> 10] - .sides[(sp7C > 0) ? 0 : 1] - .effects, - 0, 38.0f * D_808535EC, 26.0f * D_808535EC, 10.0f * D_808535EC); + Camera_ChangeDoorCam(Gameplay_GetCamera(globalCtx, 0), doorActor, + globalCtx->transitionActorList[(u16)doorActor->params >> 10] + .sides[(sp7C > 0) ? 0 : 1] + .effects, + 0, 38.0f * D_808535EC, 26.0f * D_808535EC, 10.0f * D_808535EC); } } } @@ -4573,7 +4573,7 @@ void func_8083AA10(Player* this, GlobalContext* globalCtx) { s32 sp5C; CollisionPoly* sp58; s32 sp54; - UNK_TYPE sp50; + WaterBox* sp50; Vec3f sp44; f32 sp40; f32 sp3C; @@ -4644,23 +4644,23 @@ void func_8083AA10(Player* this, GlobalContext* globalCtx) { } s32 func_8083AD4C(GlobalContext* globalCtx, Player* this) { - s32 sp1C; + s32 cameraMode; if (this->unk_6AD == 2) { if (func_8002DD6C(this)) { if (LINK_IS_ADULT) { - sp1C = 7; + cameraMode = CAM_MODE_BOWARROW; } else { - sp1C = 11; + cameraMode = CAM_MODE_SLINGSHOT; } } else { - sp1C = 10; + cameraMode = CAM_MODE_BOOMERANG; } } else { - sp1C = 6; + cameraMode = CAM_MODE_FIRSTPERSON; } - return func_8005A444(Gameplay_GetCamera(globalCtx, 0), sp1C); + return Camera_ChangeMode(Gameplay_GetCamera(globalCtx, 0), cameraMode); } s32 func_8083ADD4(GlobalContext* globalCtx, Player* this) { @@ -4955,7 +4955,7 @@ s32 func_8083B644(Player* this, GlobalContext* globalCtx) { } s32 func_8083B8F4(Player* this, GlobalContext* globalCtx) { - if (!(this->stateFlags1 & 0x800800) && func_8005A470(Gameplay_GetCamera(globalCtx, 0), 6)) { + if (!(this->stateFlags1 & 0x800800) && Camera_CheckValidMode(Gameplay_GetCamera(globalCtx, 0), 6)) { if ((this->actor.bgCheckFlags & 1) || (func_808332B8(this) && (this->actor.waterY < this->ageProperties->unk_2C))) { this->unk_6AD = 1; @@ -5321,7 +5321,7 @@ void func_8083C8DC(Player* this, GlobalContext* globalCtx, s16 arg2) { } s32 func_8083C910(GlobalContext* globalCtx, Player* this, f32 arg2) { - UNK_TYPE sp2C; + WaterBox* sp2C; f32 sp28; sp28 = this->actor.posRot.pos.y; @@ -5451,7 +5451,7 @@ void func_8083CF5C(Player* this, GlobalContext* globalCtx) { s32 func_8083CFA8(GlobalContext* globalCtx, Player* this, f32 arg2, s32 splashScale) { f32 sp3C = fabsf(arg2); - UNK_TYPE sp38; + WaterBox* sp38; f32 sp34; Vec3f splashPos; s32 splashType; @@ -5984,7 +5984,7 @@ s32 func_8083E5A8(Player* this, GlobalContext* globalCtx) { func_808322D0(globalCtx, this, this->ageProperties->unk_98); func_80832F54(globalCtx, this, 0x28F); chest->unk_1F4 = 1; - func_8005A77C(Gameplay_GetCamera(globalCtx, 0), 0x28); + Camera_ChangeSetting(Gameplay_GetCamera(globalCtx, 0), CAM_SET_ITEM0); } else { func_80832264(globalCtx, this, &D_04002DF8); chest->unk_1F4 = -1; @@ -6521,7 +6521,7 @@ s32 func_80840058(Player* this, f32* arg1, s16* arg2, GlobalContext* globalCtx) func_8083DC54(this, globalCtx); if ((*arg1 != 0.0f) || (ABS(this->unk_87C) > 400)) { - s16 temp1 = *arg2 - func_8005A948(ACTIVE_CAM); + s16 temp1 = *arg2 - Camera_GetInputDirYaw(ACTIVE_CAM); u16 temp2 = (ABS(temp1) - 0x2000) & 0xFFFF; if ((temp2 < 0x4000) || (this->unk_87C != 0)) { @@ -7671,7 +7671,7 @@ void func_80843188(Player* this, GlobalContext* globalCtx) { if (this->unk_850 != 0) { sp54 = sControlInput->rel.stick_y * 100; sp50 = sControlInput->rel.stick_x * -120; - sp4E = this->actor.shape.rot.y - func_8005A948(ACTIVE_CAM); + sp4E = this->actor.shape.rot.y - Camera_GetInputDirYaw(ACTIVE_CAM); sp40 = Math_Coss(sp4E); sp4C = (Math_Sins(sp4E) * sp50) + (sp54 * sp40); @@ -9652,72 +9652,72 @@ void func_808486A8(GlobalContext* globalCtx, Player* this) { u8 sp27; s32 pad; Actor* unk_664; - s32 sp18; + s32 camMode; if (this->actor.type == ACTORTYPE_PLAYER) { sp27 = 0; if (this->csMode != 0) { - func_8005A444(Gameplay_GetCamera(globalCtx, 0), 0); + Camera_ChangeMode(Gameplay_GetCamera(globalCtx, 0), CAM_MODE_NORMAL); } else if (!(this->stateFlags1 & 0x100000)) { if ((this->actor.parent != NULL) && (this->stateFlags3 & 0x80)) { - sp18 = 9; + camMode = CAM_MODE_FOOKSHOT; Camera_SetParam(Gameplay_GetCamera(globalCtx, 0), 8, this->actor.parent); } else if (func_8084377C == this->func_674) { - sp18 = 0x12; + camMode = CAM_MODE_STILL; } else if (this->stateFlags2 & 0x100) { - sp18 = 0x13; + camMode = CAM_MODE_PUSHPULL; } else if ((unk_664 = this->unk_664) != NULL) { if ((this->actor.flags & 0x100) == 0x100) { - sp18 = 3; + camMode = CAM_MODE_TALK; } else if (this->stateFlags1 & 0x10000) { if (this->stateFlags1 & 0x2000000) { - sp18 = 0x14; + camMode = CAM_MODE_BOOMFOLLLOW; } else { - sp18 = 2; + camMode = CAM_MODE_FOLLOWTARGET; } } else { - sp18 = 4; + camMode = CAM_MODE_BATTLE; } Camera_SetParam(Gameplay_GetCamera(globalCtx, 0), 8, unk_664); } else if (this->stateFlags1 & 0x1000) { - sp18 = 0x11; + camMode = CAM_MODE_CHARGE; } else if (this->stateFlags1 & 0x2000000) { - sp18 = 0x14; + camMode = CAM_MODE_BOOMFOLLLOW; Camera_SetParam(Gameplay_GetCamera(globalCtx, 0), 8, this->boomerangActor); } else if (this->stateFlags1 & 0x6000) { if (func_80833B2C(this)) { - sp18 = 0xF; + camMode = CAM_MODE_HANGZ; } else { - sp18 = 0xE; + camMode = CAM_MODE_HANG; } } else if (this->stateFlags1 & 0x40020000) { if (func_8002DD78(this) || func_808334B4(this)) { - sp18 = 8; + camMode = CAM_MODE_BOWARROWZ; } else if (this->stateFlags1 & 0x200000) { - sp18 = 0xC; + camMode = CAM_MODE_CLIMBZ; } else { - sp18 = 1; + camMode = CAM_MODE_TARGET; } } else if (this->stateFlags1 & 0x240000) { if ((func_80845668 == this->func_674) || (this->stateFlags1 & 0x200000)) { - sp18 = 5; + camMode = CAM_MODE_CLIMB; } else { - sp18 = 0xD; + camMode = CAM_MODE_JUMP; } } else if (this->stateFlags1 & 0x80000) { - sp18 = 0x10; + camMode = CAM_MODE_FREEFALL; } else if ((this->swordState != 0) && (this->swordAnimation >= 0) && (this->swordAnimation < 0x18)) { - sp18 = 0x12; + camMode = CAM_MODE_STILL; } else { - sp18 = 0; + camMode = CAM_MODE_NORMAL; if ((this->linearVelocity == 0.0f) && (!(this->stateFlags1 & 0x800000) || (this->rideActor->speedXZ == 0.0f))) { sp27 = 2; } } - func_8005A444(Gameplay_GetCamera(globalCtx, 0), sp18); + Camera_ChangeMode(Gameplay_GetCamera(globalCtx, 0), camMode); } else { sp27 = 2; } @@ -11532,7 +11532,7 @@ void func_8084D3E4(Player* this, GlobalContext* globalCtx) { gSaveContext.horseData.angle = rideActor->actor.shape.rot.y; } } else { - func_8005A77C(Gameplay_GetCamera(globalCtx, 0), 1); + Camera_ChangeSetting(Gameplay_GetCamera(globalCtx, 0), CAM_SET_NORMAL0); if (this->unk_43C < 0) { D_808549C4[0].field = 0x2828; @@ -12016,7 +12016,7 @@ void func_8084E6D4(Player* this, GlobalContext* globalCtx) { } if (this->skelAnime.animation == &D_04002788) { - Math_ApproxUpdateScaledS(&this->actor.shape.rot.y, func_8005A9F4(ACTIVE_CAM) + 0x8000, 4000); + Math_ApproxUpdateScaledS(&this->actor.shape.rot.y, Camera_GetCamDirYaw(ACTIVE_CAM) + 0x8000, 4000); } if (func_800A4530(&this->skelAnime, 21.0f)) { @@ -12539,7 +12539,7 @@ s32 func_8084FCAC(Player* this, GlobalContext* globalCtx) { D_808535D0 ^= 1; if (D_808535D0) { - func_8005A444(Gameplay_GetCamera(globalCtx, 0), 8); + Camera_ChangeMode(Gameplay_GetCamera(globalCtx, 0), CAM_MODE_BOWARROWZ); } } @@ -12565,7 +12565,7 @@ s32 func_8084FCAC(Player* this, GlobalContext* globalCtx) { s16 angle; s16 temp; - angle = temp = func_8005A948(ACTIVE_CAM); + angle = temp = Camera_GetInputDirYaw(ACTIVE_CAM); if (CHECK_BTN_ALL(sControlInput->cur.button, BTN_DDOWN)) { angle = temp + 0x8000; 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 89bcf1a35d..e5344412dc 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 @@ -75,7 +75,7 @@ void EffectSsEnFire_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this) { OPEN_DISPS(gfxCtx, "../z_eff_en_fire.c", 169); Matrix_Translate(this->pos.x, this->pos.y, this->pos.z, MTXMODE_NEW); - camYaw = (func_8005A9F4(ACTIVE_CAM) + 0x8000); + camYaw = (Camera_GetCamDirYaw(ACTIVE_CAM) + 0x8000); Matrix_RotateY(camYaw * 0.0000958738f, MTXMODE_APPLY); scale = Math_Sins(this->life * 0x333) * (this->rScale * 0.00005f); 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 08d8765583..c858269a7e 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 @@ -91,9 +91,9 @@ void EffectSsFireTail_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this) Player* player = PLAYER; s16 bodyPart = this->rBodyPart; - this->pos.x = player->bodyPartsPos[bodyPart].x - (Math_Sins(func_8005A9F4(ACTIVE_CAM)) * 5.0f); + this->pos.x = player->bodyPartsPos[bodyPart].x - (Math_Sins(Camera_GetCamDirYaw(ACTIVE_CAM)) * 5.0f); this->pos.y = player->bodyPartsPos[bodyPart].y; - this->pos.z = player->bodyPartsPos[bodyPart].z - (Math_Coss(func_8005A9F4(ACTIVE_CAM)) * 5.0f); + this->pos.z = player->bodyPartsPos[bodyPart].z - (Math_Coss(Camera_GetCamDirYaw(ACTIVE_CAM)) * 5.0f); Matrix_Translate(this->pos.x, this->pos.y, this->pos.z, MTXMODE_NEW); } @@ -101,11 +101,11 @@ void EffectSsFireTail_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this) Matrix_Translate(this->pos.x, this->pos.y, this->pos.z, MTXMODE_NEW); } - yaw = Math_Vec3f_Yaw(&scale, &this->vec) - func_8005A9F4(ACTIVE_CAM); + yaw = Math_Vec3f_Yaw(&scale, &this->vec) - Camera_GetCamDirYaw(ACTIVE_CAM); temp1 = fabsf(Math_Coss(yaw)); temp2 = Math_Sins(yaw); dist = Math_Vec3f_DistXZ(&scale, &this->vec) / (this->rReg10 * 0.1f); - Matrix_RotateY((s16)(func_8005A9F4(ACTIVE_CAM) + 0x8000) * 0.0000958738f, MTXMODE_APPLY); + Matrix_RotateY((s16)(Camera_GetCamDirYaw(ACTIVE_CAM) + 0x8000) * 0.0000958738f, MTXMODE_APPLY); Matrix_RotateZ(temp2 * this->rReg2 * dist * 0.017453292f, MTXMODE_APPLY); temp2 = 1.0f - ((f32)(this->life + 1) / this->rLifespan); temp2 = 1.0f - SQ(temp2); 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 69daf2ac58..6e02b8423b 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 @@ -132,8 +132,8 @@ void EffectSsLightning_Update(GlobalContext* globalCtx, u32 index, EffectSs* thi pos.y = this->pos.y + (Math_Sins(this->rYaw - 0x4000) * scale); scale = Math_Coss(this->rYaw - 0x4000) * scale; - pos.x = this->pos.x - (Math_Coss(func_8005A948(ACTIVE_CAM)) * scale); - pos.z = this->pos.z + (Math_Sins(func_8005A948(ACTIVE_CAM)) * scale); + pos.x = this->pos.x - (Math_Coss(Camera_GetInputDirYaw(ACTIVE_CAM)) * scale); + pos.z = this->pos.z + (Math_Sins(Camera_GetInputDirYaw(ACTIVE_CAM)) * scale); EffectSsLightning_NewLightning(globalCtx, &pos, yaw, this); 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 a8290700c1..a266eeaa5d 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 @@ -95,7 +95,7 @@ void EffectSsSibuki_Update(GlobalContext* globalCtx, u32 index, EffectSs* this) this->rMoveDelay--; if (this->rMoveDelay == 0) { - yaw = func_8005A948(Gameplay_GetCamera(globalCtx, 0)); + yaw = Camera_GetInputDirYaw(Gameplay_GetCamera(globalCtx, 0)); xzVelScale = ((200.0f + KREG(20)) * 0.01f) + ((0.1f * Math_Rand_ZeroOne()) * (KREG(23) + 20.0f)); if (this->rDirection != 0) {