/*--------------------------------------------------------------------- File propobj.c Comments Prop Objects code. ---------------------------------------------------------------------*/ #include #include #include #include #include #include #include #include #include #include #include #include "bg.h" #include "bondview.h" #include "bondinv.h" #include "chr.h" #include "chrai.h" #include "chrlv.h" #include "chrobjdata.h" #include "chrobjhandler.h" #include "explosions.h" #include "fog.h" #include "lvl.h" #include "lvl_text.h" #include "math_floor.h" #include "math_asinfacosf.h" #include "math_atan2f.h" #include "matrixmath.h" #include "objecthandler.h" #include "player.h" #include "quaternion.h" #include #include "stan.h" #include "assets/obseg/text/LpropobjE.h" #include "explosions.h" #include "image_bank.h" #include "random.h" #include "unk_0B3200.h" #include "textrelated.h" #include "gun.h" #include "fr.h" #include "objective_status.h" #ifdef VERSION_EU #define CHROBJ_TIMETOREGEN 50 #define CHROBJ_TIMETOREGEN_F 50.0f #define CHROBJ_GAS_TIMER 0x5dc /* 1500 */ #define PLASTIQUE_EXPLOSION_DELAY_TICKS 100 #else #define CHROBJ_TIMETOREGEN 60 #define CHROBJ_TIMETOREGEN_F 60.0f #define CHROBJ_GAS_TIMER 0x708 /* 1800 */ #define PLASTIQUE_EXPLOSION_DELAY_TICKS 120 #endif #define PROXIMITY_MINE_TRIGGER_DISTANCE 62500.0f /* 0x80030AC8 */ s32 alarm_timer = 0; /* 0x80030ACC */ s32 *ptr_alarm_sfx = 0; /* 0x80030AD0 */ f32 toxic_gas_sound_timer = 0.0; /* 0x80030AD4 */ s32 activate_gas_sound_timer = FALSE; /* 0x80030AD8 */ coord3d D_80030AD0 = { 0.0f, 0.0f, 0.0f }; /* 0x80030ADC */ s32 D_80030ADC = 0; /* 0x80030AE0 */ f32 D_80030AE0 = 0.0f; /* 0x80030AE4 */ ALSoundState *ptr_gas_sound = NULL; /* 0x80030AE8 */ s32 clock_drawn_flag = 1; /* 0x80030AEC */ s32 clock_enable = 0; /* 0x80030AF0 */ f32 clock_time = 0; /* 0x80030AF4 */ s32 g_RemoteMineOwnerTriggerFlag = 0; /* 0x80030AF8 */ s32 g_NextWeaponSlot = 0; // numbers between 0 and 30 /* 0x80030AFC */ s32 g_NextHatSlot = 0; /* 0x80030B00 */ ObjectRecord *g_LevelLoadPropSwitch = NULL; /* 0x80030B04 */ LockDoorRecord *g_LevelLoadPropLockDoor = NULL; /* 0x80030B08 */ ObjectRecord *g_LevelLoadPropSafeItem = NULL; /* 0x80030B0C */ struct PropRecord * D_80030B0C = NULL; /* 0x80030B10 */ s32 bodypartshot = 0xFFFFFFFF; /* 0x80030B14 */ f32 F_80030B14 = 1.0; /* 0x80030B18 */ f32 F_80030B18 = 1.0; /* 0x80030B1C */ f32 g_AutogunPendingDamageTick = 1.0; /* 0x80030B20 */ f32 g_AutogunDamageScalar = 1.0; /* 0x80030B24 */ f32 F_80030B24 = 1.0; /* * Set on level load. */ f32 g_SoloAmmoMultiplier = 1.0; s16 Throwing_knife_SFX[] = {0x5F, 0x60, 0x61}; ModelRenderData D_80030B34 = {NULL, TRUE, 0x00000003, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, {0, 0, 0, 0}, {0, 0, 0, 0}, CULLMODE_BOTH}; //[80030B74 00 Bond] u32 monAnim00Bond[] = { MONUSEIMAGE(IMGBOND), MONHORZSCROLL(0x400, 20), MONHOLDTIME(20), MONVERTSCROLL(0x400, 20), MONRGBA(COLOR_BLACK, 20), MONHOLDTIME(20), MONZOOMSQUARE(0x200, 20), MONRGBA(COLOR_WHITE, 20), MONHOLDTIME(20), MONZOOMSQUARE(0x400, 20), MONHOLDTIME(20), MONLOOP() }; //[80030C00 01 Desktops, Satellite] u32 monAnim01DesktopsSatellite[] = { MONUSEIMAGE(IMG2DMATH), MONHORZSCROLL(0x400, 20), MONHOLDTIME(20), MONVERTSCROLL(0x400, 20), MONRGBA(COLOR_BLACK, 20), MONHOLDTIME(20), MONZOOMSQUARE(0x200, 20), MONRGBA(COLOR_WHITE, 20), MONHOLDTIME(20), MONZOOMSQUARE(0x400, 20), MONHOLDTIME(20), MONUSEIMAGE(IMGSATELLITE), MONHORZSCROLL(0x400, 20), MONHOLDTIME(20), MONVERTSCROLL(0x400, 20), MONRGBA(COLOR_BLACK, 20), MONHOLDTIME(20), MONZOOMSQUARE(0x200, 20), MONRGBA(COLOR_WHITE, 20), MONHOLDTIME(20), MONZOOMSQUARE(0x400, 20), MONHOLDTIME(20), MONUSEIMAGE(IMGDESKTOP), MONHORZSCROLL(0x400, 20), MONHOLDTIME(20), MONVERTSCROLL(0x400, 20), MONRGBA(COLOR_BLACK, 20), MONHOLDTIME(20), MONZOOMSQUARE(0x200, 20), MONRGBA(COLOR_WHITE, 20), MONHOLDTIME(20), MONZOOMSQUARE(0x400, 20), MONHOLDTIME(20), MONUSEIMAGE(IMGDESKTOPSTAGGERED), MONHORZSCROLL(0x400, 20), MONHOLDTIME(20), MONVERTSCROLL(0x400, 20), MONRGBA(COLOR_BLACK, 20), MONHOLDTIME(20), MONZOOMSQUARE(0x200, 20), MONRGBA(COLOR_WHITE, 20), MONHOLDTIME(20), MONZOOMSQUARE(0x400, 20), MONHOLDTIME(20), MONLOOP(), }; //[80030E24 02 10 screens: astrological] u32 monAnim02Astrological[] = { MONUSEIMAGE(IMGSHUTTLE1), MONHOLDTIME(80), MONUSEIMAGE(IMGSHUTTLE2), MONHOLDTIME(80), MONUSEIMAGE(IMGEARTHFULL1), MONHOLDTIME(80), MONUSEIMAGE(IMGEARTHFULL2), MONHOLDTIME(80), MONUSEIMAGE(IMGBLUESTARS), MONHOLDTIME(80), MONUSEIMAGE(IMGGALAXY1), MONHOLDTIME(80), MONUSEIMAGE(IMGGALAXY2), MONHOLDTIME(80), MONUSEIMAGE(IMGEARTHTEXT), MONHOLDTIME(80), MONUSEIMAGE(IMGTARGETEARTH), MONHOLDTIME(80), MONUSEIMAGE(IMGGALAXY3), MONHOLDTIME(80), MONLOOP(), }; //[80030EC8 0F 7 screens: satellite, targetting, ] u32 monAnim0FSatelliteTargeting[] = { MONUSEIMAGE(IMGEARTH), MONHOLDTIME(80), MONUSEIMAGE(IMGDESKTOPBANG), MONHOLDTIME(80), MONUSEIMAGE(IMGHEATMAP), MONHOLDTIME(80), MONUSEIMAGE(IMG2DMATH), MONHOLDTIME(80), MONUSEIMAGE(IMGSATELLITE), MONHOLDTIME(80), MONHOLDTIME(80), MONUSEIMAGE(IMGTARGETEARTH), MONHOLDTIME(80), MONUSEIMAGE(IMGEARTHFULL2), MONHOLDTIME(80), MONLOOP() }; //[80030F44 03 3 wave patterns] u32 monAnim03ThreeWavePattern[] = { MONRGBA(COLOR_MINESHAFT3, 1), MONUSEIMAGE(IMGSINE), MONHORZSCROLL(0x800, 120), MONHOLDTIME(120), MONZOOMWIDTH(0x100, 1), MONZOOMHEIGHT(0x200, 60), MONHORZSCROLL(0xFFFFE000, 120), MONHOLDTIME(120), MONZOOMWIDTH(0x400, 1), MONZOOMHEIGHT(0x400, 60), MONZOOMHEIGHT(0x400, 60), MONHORZSCROLL(0x800, 120), MONHOLDTIME(120), MONZOOMWIDTH(0x80, 1), MONZOOMHEIGHT(0x800, 60), MONZOOMHEIGHT(0x400, 120), MONVERTSCROLL(0x400, 60), MONHORZSCROLL(0x200, 120), MONHOLDTIME(120), MONLOOP() }; //[80031018 04 wave pattern] u32 monAnim04WavePattern[] = { MONRGBA(COLOR_MINESHAFT3, 1), MONUSEIMAGE(IMGSINE), MONZOOMWIDTH(0x80, 1), MONZOOMHEIGHT(0x800, 60), MONZOOMHEIGHT(0x400, 120), MONVERTSCROLL(0x400, 10), MONHORZSCROLL(0x200, 40), MONHOLDTIME(120), MONLOOP() }; //[80031074 05 green text up] u32 monAnim05GreenTextUp[] = { MONUSEIMAGE(IMGTEXT), MONRGBA(COLOR_BARELYGREENOPAQUE, 1), MONVERTSCROLL(0xFFFFFE00, 80), MONHOLDTIME(120), MONVERTSCROLL(0xFFFFFF00, 20), MONHOLDTIME(120), MONVERTSCROLL(0xFFFFFF80, 10), MONHOLDTIME(40), MONVERTSCROLL(0xFFFFFE00, 40), MONHOLDTIME(60), MONVERTSCROLL(0xFFFFFFC0, 30), MONHOLDTIME(120), MONLOOP() }; //[800310F0 06 red text down] u32 monAnim06RedTextDown[] = { MONUSEIMAGE(IMGTEXT), MONRGBA(COLOR_DIESEL, 1), MONVERTSCROLL(0x200, 80), MONHOLDTIME(120), MONVERTSCROLL(0x100, 20), MONHOLDTIME(120), MONVERTSCROLL(0x80, 10), MONHOLDTIME(40), MONVERTSCROLL(0x200, 40), MONHOLDTIME(60), MONVERTSCROLL(0x40, 30), MONHOLDTIME(120), MONVERTSCROLL(0x100, 20), MONHOLDTIME(120), MONVERTSCROLL(0x80, 10), MONLOOP() }; //[8003118C 07 d. green text down] u32 monAnim07GreenTextDown[] = { MONUSEIMAGE(IMGTEXT), MONRGBA(COLOR_DEEPFIR, 1), MONVERTSCROLL(0x200, 80), MONHOLDTIME(120), MONVERTSCROLL(0x80, 10), MONHOLDTIME(40), MONVERTSCROLL(0x100, 20), MONHOLDTIME(120), MONVERTSCROLL(0x80, 10), MONHOLDTIME(40), MONVERTSCROLL(0x200, 40), MONHOLDTIME(60), MONVERTSCROLL(0x40, 30), MONHOLDTIME(120), MONLOOP() }; //[8003121C 08 red bar graph +] u32 monAnim08RedBarGraph[] = { MONUSEIMAGE(IMGBARS), MONRGBA(COLOR_VERDUNGREEN, 1), MONHORZSCROLL(0x280, 1), MONHOLDTIME(10), MONLOOP() }; //[80031248 09 blue bar graph +] u32 monAnim09BlueBarGraph[] = { MONUSEIMAGE(IMGBARS), MONRGBA(COLOR_CYPRUS, 1), MONHORZSCROLL(0x280, 1), MONHOLDTIME(10), MONLOOP() }; //[80031274 0A green bar graph -] u32 monAnim0AGreenBarGraph[] = { MONUSEIMAGE(IMGBARS), MONRGBA(COLOR_TOMTHUMB, 1), MONHORZSCROLL(0xFFFFFD80, 1), MONHOLDTIME(10), MONLOOP() }; //[800312A0 subroutine used by radar] u32 monAnimRadarSub1[] = { MONRGBA(COLOR_GREEN, 20), MONJUMPTO(monAnimRadarSub3) }; //[800312B4 subroutine used by radar] u32 monAnimRadarSub2[] = { MONRGBA(COLOR_SANFELIX, 20), MONJUMPTO(monAnimRadarSub3) }; //[800312C8 subroutine used by radar] u32 monAnimRadarSub3[] = { MONROTATEIMAGE(0xB6), MONHOLDTIME(1), MONJUMPCHANCE(monAnimRadarSub1, TWO_PERCENT_CHANCE), MONJUMPCHANCE(monAnimRadarSub2, 0x147A), MONLOOP() }; //[800312F4 0B radar] u32 monAnim0BRadar[] = { MONUSEIMAGE(IMGTRIANGLE), MONRGBA(COLOR_ALMOSTDARKGREEN, 1), MONJUMPTO(monAnimRadarSub2) }; //[80031310 0C spinning cube] u32 monAnim0CSpinningCube[] = { MONUSEIMAGE(IMGCUBE1), MONRGBA(COLOR_MINSK, 30), MONHOLDTIME(5), MONUSEIMAGE(IMGCUBE2), MONHOLDTIME(5), MONUSEIMAGE(IMGCUBE3), MONHOLDTIME(5), MONUSEIMAGE(IMGCUBE4), MONHOLDTIME(5), MONLOOP() }; //[80031360 10 global map] u32 monAnim10GlobalMap[] = { MONUSEIMAGE(IMGWORLDMAP), MONRGBA(COLOR_SEAGREEN, 30), MONHORZSCROLL(0xFFFFFC00, 1024), MONHOLDTIME(1440), MONHORZSCROLLNA(0x288, 360), MONVERTSCROLLNA(0x3AA, 360), MONZOOMSQUARE(0x80, 300), MONRGBA(COLOR_BLACK, 60), MONHOLDTIME(60), MONRGBA(COLOR_GRAY, 10), MONHOLDTIME(90), MONRGBA(COLOR_APPLE2, 30), MONHOLDTIME(30), MONRGBA(COLOR_LOTUS, 60), MONHOLDTIME(60), MONRGBA(COLOR_GRAY, 60), MONHOLDTIME(60), MONHORZSCROLLNA(0x200, 360), MONVERTSCROLLNA(0x200, 360), MONZOOMSQUARE(0x400, 720), MONHOLDTIME(300), MONUSEIMAGE(IMGWORLDMAP), MONHOLDTIME(420), MONRGBA(COLOR_STRONGGREEN, 30), MONHOLDTIME(30), MONRGBA(COLOR_GREENKELP, 60), MONHOLDTIME(60), MONLOOP() }; //[80031490 0D 3 screens: location, weapon armed, ] u32 monAnim0DLocWeapArmed[] = { MONRGBA(COLOR_BLACK, 1), MONRGBA(COLOR_SILVER, 400), MONUSEIMAGE(1), MONHOLDTIME(680), MONUSEIMAGE(2), MONHOLDTIME(680), MONUSEIMAGE(4), MONHOLDTIME(180), MONRGBA(COLOR_PESTO, 1), MONUSEIMAGE(4), MONHOLDTIME(200), MONLOOP() }; //[800314F8 0E red target] u32 monAnim0ERedTarget[] = { MONZOOMSQUARE(0x400, 1), MONRGBA(COLOR_THUNDERBIRD, 1), MONUSEIMAGE(6), MONHOLDTIME(600), MONRGBA(COLOR_SILVER, 5), MONHOLDTIME(5), MONRGBA(COLOR_MINESHAFT, 60), MONUSEIMAGE(IMGSTATIC), MONRGBA(COLOR_CODGRAY, 100), MONHOLDTIME(400), MONLOOP() }; //[8003156C 11 Karl yelling] u32 monAnim11KarlYelling[] = { MONRGBA(COLOR_DARKGREEN, 0), MONUSEIMAGE(IMGTALK1), MONHOLDTIME(5), MONUSEIMAGE(IMGTALK2), MONHOLDTIME(5), MONUSEIMAGE(IMGTALK3), MONHOLDTIME(5), MONUSEIMAGE(IMGTALK4), MONHOLDTIME(10), MONUSEIMAGE(IMGTALK2), MONHOLDTIME(5), MONLOOP() }; //[800315CC 12 skateboard] u32 monAnim12Skateboard[] = { MONUSEIMAGE(IMGSKATEBOARD4), MONRGBA(COLOR_DARKGREEN, 0), MONHOLDTIME(3), MONRGBA(COLOR_DARKERGREEN, 0), MONHOLDTIME(2), MONRGBA(COLOR_DARKGREEN, 0), MONHOLDTIME(3), MONRGBA(COLOR_DARKERGREEN, 0), MONHOLDTIME(2), MONHORZSCROLL(0x264, 30), MONUSEIMAGE(IMGSKATEBOARD1), MONRGBA(COLOR_DARKGREEN, 0), MONHOLDTIME(3), MONRGBA(COLOR_DARKERGREEN, 0), MONHOLDTIME(2), MONUSEIMAGE(IMGSKATEBOARD2), MONRGBA(COLOR_DARKGREEN, 0), MONHOLDTIME(3), MONRGBA(COLOR_DARKERGREEN, 0), MONHOLDTIME(2), MONUSEIMAGE(IMGSKATEBOARD3), MONRGBA(COLOR_DARKGREEN, 0), MONHOLDTIME(3), MONRGBA(COLOR_DARKERGREEN, 0), MONHOLDTIME(2), MONRGBA(COLOR_DARKGREEN, 0), MONHOLDTIME(3), MONRGBA(COLOR_DARKERGREEN, 0), MONHOLDTIME(2), MONRGBA(COLOR_DARKGREEN, 0), MONHOLDTIME(3), MONRGBA(COLOR_DARKERGREEN, 0), MONHOLDTIME(2), MONRGBA(COLOR_DARKGREEN, 0), MONHOLDTIME(3), MONRGBA(COLOR_DARKERGREEN, 0), MONHOLDTIME(2), MONHORZSCROLL(0x19C, 40), MONUSEIMAGE(IMGSKATEBOARD2), MONRGBA(COLOR_DARKGREEN, 0), MONHOLDTIME(3), MONRGBA(COLOR_DARKERGREEN, 0), MONHOLDTIME(2), MONRGBA(COLOR_DARKGREEN, 0), MONHOLDTIME(3), MONRGBA(COLOR_DARKERGREEN, 0), MONHOLDTIME(2), MONUSEIMAGE(IMGSKATEBOARD1), MONRGBA(COLOR_DARKGREEN, 0), MONHOLDTIME(3), MONRGBA(COLOR_DARKERGREEN, 0), MONHOLDTIME(2), MONRGBA(COLOR_DARKGREEN, 0), MONHOLDTIME(3), MONRGBA(COLOR_DARKERGREEN, 0), MONHOLDTIME(2), MONRGBA(COLOR_DARKGREEN, 0), MONHOLDTIME(3), MONRGBA(COLOR_DARKERGREEN, 0), MONHOLDTIME(2), MONRGBA(COLOR_DARKGREEN, 0), MONHOLDTIME(3), MONRGBA(COLOR_DARKERGREEN, 0), MONHOLDTIME(2), MONLOOP() }; //[80031848 13 police guy] u32 monAnim13PoliceGuy[] = { MONRGBA(COLOR_DARKGREEN2, 0), MONUSEIMAGE(IMGFIST1), MONHOLDTIME(5), MONUSEIMAGE(IMGFIST2), MONHOLDTIME(5), MONUSEIMAGE(IMGFIST3), MONHOLDTIME(5), MONUSEIMAGE(IMGFIST4), MONHOLDTIME(5), MONLOOP() }; //[80031898 14 'off'] u32 monAnim14Off[] = { MONUSEIMAGE(IMGSINE), MONRGBA(COLOR_BARELYGREEN, 1), MONHOLDTIME(5), MONLOOP() }; //[800318B8 15 randomly select one of seven animations] u32 monAnim15RandomSeven[] = { MONJUMPCHANCE(monAnim04WavePattern, TEN_PERCENT_CHANCE), MONJUMPCHANCE(monAnim11KarlYelling, TEN_PERCENT_CHANCE), MONJUMPCHANCE(monAnim08RedBarGraph, TEN_PERCENT_CHANCE), MONJUMPCHANCE(monAnim09BlueBarGraph, TEN_PERCENT_CHANCE), MONJUMPCHANCE(monAnim0AGreenBarGraph, TEN_PERCENT_CHANCE), MONJUMPCHANCE(monAnim06RedTextDown, TWENTY_PERCENT_CHANCE), MONJUMPCHANCE(monAnim07GreenTextDown, FOURTY_PERCENT_CHANCE), MONJUMPCHANCE(monAnim05GreenTextUp, HUNDRED_PERCENT_CHANCE), MONLOOP() }; //[8003191C 16 randomly select random screens + random effects or boring] u32 monAnim16RandomFour[] = { MONJUMPCHANCE(monAnim03ThreeWavePattern, TWO_PERCENT_CHANCE), MONJUMPCHANCE(monAnim08RedBarGraph, TWO_PERCENT_CHANCE), MONJUMPCHANCE(monAnim05GreenTextUp, TWO_PERCENT_CHANCE), MONJUMPCHANCE(monAnim17RandImageEffect, SIXTY_PERCENT_CHANCE), MONLOOP() }; //[80031950 17 Base Function for random screens + random effects] u32 monAnim17RandImageEffect[] = { MONJUMPCHANCE(monRandEffectChanceSHUTTLE1, TEN_PERCENT_CHANCE), MONJUMPCHANCE(monRandEffectChanceSHUTTLE2, TEN_PERCENT_CHANCE), MONJUMPCHANCE(monRandEffectChanceEARTHFULL1, TEN_PERCENT_CHANCE), MONJUMPCHANCE(monRandEffectChanceEARTHFULL2, TEN_PERCENT_CHANCE), MONJUMPCHANCE(monRandEffectChanceBLUESTARS, TEN_PERCENT_CHANCE), MONJUMPCHANCE(monRandEffectChanceGALAXY1, TEN_PERCENT_CHANCE), MONJUMPCHANCE(monRandEffectChanceGALAXY2, TEN_PERCENT_CHANCE), MONJUMPCHANCE(monRandEffectChanceEARTHTEXT, TEN_PERCENT_CHANCE), MONJUMPCHANCE(monRandEffectChanceTARGETEARTH, TEN_PERCENT_CHANCE), MONJUMPCHANCE(monRandEffectChanceGALAXY3, TEN_PERCENT_CHANCE), MONHOLDTIME(100), MONLOOP() }; //[800319D4 18 random screens + random effects - set image] u32 monRandEffectChanceSHUTTLE1[] = { MONUSEIMAGE(IMGSHUTTLE1), MONHOLDTIME(20), MONJUMPCHANCE(monRandChanceScrollOrZoomRandRGBN, HUNDRED_PERCENT_CHANCE) }; //[800319F0 19 random screens + random effects - set image] u32 monRandEffectChanceSHUTTLE2[] = { MONUSEIMAGE(IMGSHUTTLE2), MONHOLDTIME(20), MONJUMPCHANCE(monRandChanceScrollOrZoomRandRGBN, HUNDRED_PERCENT_CHANCE) }; //[80031A0C 1A random screens + random effects - set image] u32 monRandEffectChanceEARTHFULL1[] = { MONUSEIMAGE(IMGEARTHFULL1), MONHOLDTIME(20), MONJUMPCHANCE(monRandChanceScrollOrZoomRandRGBN, HUNDRED_PERCENT_CHANCE) }; //[80031A28 1B random screens + random effects - set image] u32 monRandEffectChanceEARTHFULL2[] = { MONUSEIMAGE(IMGEARTHFULL2), MONHOLDTIME(20), MONJUMPCHANCE(monRandChanceScrollOrZoomRandRGBN, HUNDRED_PERCENT_CHANCE) }; //[80031A44 1C random screens + random effects - set image] u32 monRandEffectChanceBLUESTARS[] = { MONUSEIMAGE(IMGBLUESTARS), MONHOLDTIME(20), MONJUMPCHANCE(monRandChanceScrollOrZoomRandRGBN, HUNDRED_PERCENT_CHANCE) }; //[80031A60 1D random screens + random effects - set image] u32 monRandEffectChanceGALAXY1[] = { MONUSEIMAGE(IMGGALAXY1), MONHOLDTIME(20), MONJUMPCHANCE(monRandChanceScrollOrZoomRandRGBN, HUNDRED_PERCENT_CHANCE) }; //[80031A7C 1E random screens + random effects - set image] u32 monRandEffectChanceGALAXY2[] = { MONUSEIMAGE(IMGGALAXY2), MONHOLDTIME(20), MONJUMPCHANCE(monRandChanceScrollOrZoomRandRGBN, HUNDRED_PERCENT_CHANCE) }; //[80031A98 1F random screens + random effects - set image] u32 monRandEffectChanceEARTHTEXT[] = { MONUSEIMAGE(IMGEARTHTEXT), MONHOLDTIME(20), MONJUMPCHANCE(monRandChanceScrollOrZoomRandRGBN, HUNDRED_PERCENT_CHANCE) }; //[80031AB4 20 random screens + random effects - set image] u32 monRandEffectChanceTARGETEARTH[] = { MONUSEIMAGE(IMGTARGETEARTH), MONHOLDTIME(20), MONJUMPCHANCE(monRandChanceScrollOrZoomRandRGBN, HUNDRED_PERCENT_CHANCE) }; //[80031AD0 21 random screens + random effects - set image] u32 monRandEffectChanceGALAXY3[] = { MONUSEIMAGE(IMGGALAXY3), MONHOLDTIME(20), MONJUMPCHANCE(monRandChanceScrollOrZoomRandRGBN, HUNDRED_PERCENT_CHANCE) }; //[80031AEC 22 random screens + random effects - colourizer] u32 monRandChanceScrollOrZoomRandRGBN[] = { MONJUMPCHANCE(monRandChanceScrollOrZoomRed, TEN_PERCENT_CHANCE), MONJUMPCHANCE(monRandChanceScrollOrZoomGreen, TEN_PERCENT_CHANCE), MONJUMPCHANCE(monRandChanceScrollOrZoomBlue, TEN_PERCENT_CHANCE), MONRGBA(COLOR_SILVER, 60), MONJUMPTO(monRandChanceScrollOrZoom) }; //[80031B24 23 random screens + random effects - colourizer] u32 monRandChanceScrollOrZoomRed[] = { MONRGBA(COLOR_PERSIANRED, 60), MONJUMPTO(monRandChanceScrollOrZoom) }; u32 monRandChanceScrollOrZoomGreen[] = { MONRGBA(COLOR_APPLE, 60), MONJUMPTO(monRandChanceScrollOrZoom) }; u32 monRandChanceScrollOrZoomBlue[] = { MONRGBA(COLOR_GOVERNORBAY, 60), MONJUMPTO(monRandChanceScrollOrZoom) }; u32 monRandChanceScrollOrZoom[] = { MONHOLDTIME(50), MONJUMPCHANCE(monAnim27RandomEffectScrollRight, TEN_PERCENT_CHANCE), MONJUMPCHANCE(monAnim28RandomEffectScrollUpFast, TEN_PERCENT_CHANCE), MONJUMPCHANCE(monAnim29RandomEffectScrollUp, TEN_PERCENT_CHANCE), MONJUMPCHANCE(monAnim2ARandEffectScrollZoom1, TEN_PERCENT_CHANCE), MONJUMPCHANCE(monAnim2ARandEffectScrollZoom2, TEN_PERCENT_CHANCE), MONHOLDTIME(300), MONJUMPTO(monAnim2CRandEffectWaitRoute) }; //[80031BB4 27 random screens + random effects - scroll right] u32 monAnim27RandomEffectScrollRight[] = { MONHORZSCROLL(0x800, 120), MONHOLDTIME(120), MONJUMPTO(monAnim2CRandEffectWaitRoute) }; //[80031BD0 28 random screens + random effects - scroll up fast] u32 monAnim28RandomEffectScrollUpFast[] = { MONVERTSCROLL(0x2000, 50), MONHOLDTIME(200), MONJUMPTO(monAnim2CRandEffectWaitRoute) }; //[80031BEC 29 random screens + random effects - scroll up] u32 monAnim29RandomEffectScrollUp[] = { MONVERTSCROLL(0x2000, 200), MONHOLDTIME(200), MONJUMPTO(monAnim2CRandEffectWaitRoute) }; //[80031C08 2A random screens + random effects - scroll and zoom] u32 monAnim2ARandEffectScrollZoom1[] = { MONHORZSCROLLNA(0x288, 300), MONVERTSCROLLNA(0x3AA, 300), MONZOOMSQUARE(0x80, 200), MONHOLDTIME(300), MONHORZSCROLLNA(0x200, 50), MONVERTSCROLLNA(0x200, 200), MONZOOMSQUARE(0x400, 720), MONHOLDTIME(600), MONJUMPTO(monAnim2CRandEffectWaitRoute) }; //[80031C80 2B random screens + random effects - scroll and zoom] u32 monAnim2ARandEffectScrollZoom2[] = { MONHORZSCROLLNA(0x320, 400), MONVERTSCROLLNA(0x190, 400), MONZOOMSQUARE(0x80, 200), MONHOLDTIME(300), MONHORZSCROLLNA(0xC8, 200), MONVERTSCROLLNA(0x190, 800), MONZOOMSQUARE(0x200, 720), MONHOLDTIME(800), MONZOOMSQUARE(0x400, 720), MONHORZSCROLLNA(0x200, 100), MONVERTSCROLLNA(0x200, 60), MONHOLDTIME(500), MONJUMPTO(monAnim2CRandEffectWaitRoute) }; //[80031D30 2C random screens + random effects - wait and route] u32 monAnim2CRandEffectWaitRoute[] = { MONHOLDTIME(50), MONJUMPCHANCE(monRandChanceScrollOrZoomRandRGBN, TEN_PERCENT_CHANCE), MONJUMPCHANCE(monAnim2DRandEffectFlash, TWENTY_PERCENT_CHANCE), MONJUMPTO(monAnim17RandImageEffect) }; //[80031D58 2D random screens + random effects - flash] u32 monAnim2DRandEffectFlash[] = { MONHOLDTIME(50), MONRGBA(COLOR_WHITE, 10), MONRGBA(COLOR_BLACK, 5), MONRGBA(COLOR_WHITE, 10), MONHOLDTIME(25), MONRGBA(COLOR_BLACK, 200), MONHOLDTIME(500), MONJUMPTO(monAnim17RandImageEffect) }; //[80031DA8 2E red brightening screen] u32 monAnim2ERedBrightening[] = { MONUSEIMAGE(IMGKEYBOARDKEY), MONZOOMSQUARE(0x200, 0), MONRGBA(COLOR_ALIZARINCRIMSON, 60), MONHOLDTIME(60), MONRGBA(COLOR_MINESHAFT2, 10), MONHOLDTIME(10), MONLOOP() }; //[80031DF4 2F green brightening screen] u32 monAnim2FGreenBrightening[] = { MONUSEIMAGE(IMGKEYBOARDKEY), MONZOOMSQUARE(0x200, 0), MONRGBA(COLOR_APPLE, 60), MONHOLDTIME(60), MONRGBA(COLOR_MINESHAFT2, 10), MONHOLDTIME(10), MONLOOP() }; //[80031E40 30 grey solid] u32 monAnim30GreySolid[] = { MONUSEIMAGE(IMGKEYBOARDKEY), MONZOOMSQUARE(0x200, 0), MONRGBA(COLOR_MINESHAFT2, 10), MONHOLDTIME(10), MONLOOP() }; //[80031E78 31 red solid] u32 monAnim31RedSolid[] = { MONUSEIMAGE(IMGKEYBOARDKEY), MONZOOMSQUARE(0x200, 0), MONRGBA(COLOR_ALIZARINCRIMSON, 10), MONHOLDTIME(10), MONLOOP() }; //[80031EB0 32 green solid] u32 monAnim32GreenSolid[] = { MONUSEIMAGE(IMGKEYBOARDKEY), MONZOOMSQUARE(0x200, 0), MONRGBA(COLOR_APPLE, 10), MONHOLDTIME(10), MONLOOP() }; //[80031EE8 33 black solid] u32 monAnim33BlackSolid[] = { MONUSEIMAGE(0), MONRGBA(COLOR_BLACK, 0), MONSTOPANIM() }; //[80031F00 34 ??? Not Included in Normal List - linked @ 0x9544] u32 monAnim34[] = { MONZOOMSQUARE(0x400, 0), MONHOLDTIME(1), MONZOOMSQUARE(0x1000, 20), MONHOLDTIME(20), MONLOOP() }; //[80031F44 35 Taser Not Included in Normal List!] u32 monAnim35Taser[] = { MONUSEIMAGE(IMGBOND), MONHORZSCROLL(0x400, 20), MONHOLDTIME(20), MONVERTSCROLL(0x400, 20), MONRGBA(COLOR_BLACK, 20), MONHOLDTIME(20), MONZOOMSQUARE(0x200, 20), MONRGBA(COLOR_WHITE, 20), MONHOLDTIME(20), MONZOOMSQUARE(0x400, 20), MONHOLDTIME(20), MONLOOP() }; /** * Address 0x80031FD0. */ ModelRenderData D_80031FD0 = { NULL, TRUE, 0x00000003, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, {0,0,0,0}, {0,0,0,0}, CULLMODE_BOTH}; // Forward declarations. s32 updateDoorDisplacement(DoorRecord* door); s32 objGetShotsTaken(ObjectRecord *); void sub_GAME_7F04AC20(PropRecord *prop, ModelRenderData *, s32 arg2); bool chrobjSeparatingAxisTheorem(rect4f* rect1, s32 numvertices0, rect4f* rect2, s32 numvertices1); void chrobjSndCreatePostEvent(ALSoundState *state, coord3d *pos, f32 low, f32 high); void sub_GAME_7F050DE8(Model* model); void remove_obj_from_temp_proxmine_table(WeaponObjRecord* proxy); void add_obj_to_temp_proxmine_table(WeaponObjRecord* proxy); s32 sub_GAME_7F042EB4(struct ObjectRecord *arg0, f32 *arg1, struct coord3d *arg2, struct coord3d *arg3, s32 arg4, s32 arg5); s32 sub_GAME_7F042A0C(struct ObjectRecord *arg0, f32 *arg1, struct coord3d *arg2, struct coord3d *arg3, s32 arg4); s32 handles_projectile_motion(struct ObjectRecord *arg0, f32 *arg1, struct coord3d *arg2, struct coord3d *arg3, s32 arg4, s32 arg5); void sub_GAME_7F0431E4(struct ObjectRecord *arg0, struct coord3d *arg1); void door7F054FB4(struct DoorRecord *arg0); /* PD: projectileFree (similar but not the same structure) */ void projectileFree(Projectile* projectile) { ALSoundState* sound1; ALSoundState* sound2; if (projectile->flags & PROJECTILEFLAG_LAUNCHING) { sound1 = projectile->sound1; if ((sound1 != 0) && (sndGetPlayingState((ALSoundState* ) sound1) != 0)) { sndDeactivate((ALSoundState* ) projectile->sound1); } sound2 = projectile->sound2; if ((sound2 != 0) && (sndGetPlayingState((ALSoundState* ) sound2) != 0)) { sndDeactivate((ALSoundState* ) projectile->sound2); } } projectile->flags |= PROJECTILEFLAG_FREE; } void projectileReset(Projectile *projectile) { projectile->flags = 0; projectile->speed.x = 0.0f; projectile->speed.y = 0.0f; projectile->speed.z = 0.0f; projectile->unk10.x = 0.0f; projectile->unk10.y = 0.0f; projectile->unk10.z = 0.0f; projectile->unk1C = 0.0f; projectile->unk60 = 1.0f; projectile->ownerprop = NULL; projectile->unk8C = 0.05f; projectile->unk90 = 0; projectile->unk94 = 0.0f; projectile->unkA0 = -1; projectile->unkA4 = 0; projectile->unkA8 = 0; projectile->unkAC = -1; projectile->droptype = DROPTYPE_DEFAULT; projectile->refreshrate = 0; projectile->unkC0 = 1.0f; projectile->unkC4 = 1.0f; projectile->unkC8 = 1.0f; projectile->unkE0 = 0; projectile->obj = 0; projectile->unkE8 = 0; } Projectile *projectileAllocate(void) { s32 bestindex; s32 i; bestindex = -1; // Happy path - find one that is already free for (i = 0; i < PROJECTILES_ARR_MAX; i++) { if (g_Projectiles[i].flags & PROJECTILEFLAG_FREE) { projectileReset(g_Projectiles + i); return (g_Projectiles + i); } } // Find one with the lowest unkE8 (some kind of age/timer?) // and some other conditions for (i = 0; i < PROJECTILES_ARR_MAX; i++) { if (g_Projectiles[i].obj && (bestindex < 0 || g_Projectiles[i].unkE8 < g_Projectiles[bestindex].unkE8)) { bestindex = i; } } if (bestindex >= 0) { // Reset and return it objFreeEmbedmentOrProjectile(g_Projectiles[bestindex].obj->prop); g_Projectiles[bestindex].obj->runtime_bitflags |= RUNTIMEBITFLAG_REMOVE; projectileReset(g_Projectiles + bestindex); return (g_Projectiles + bestindex); } else { return NULL; } } void sub_GAME_7F03FDA8(PropRecord *prop) { ObjectRecord *obj = prop->obj; //po if (obj->runtime_bitflags & RUNTIMEBITFLAG_EMBEDDED) { #ifdef DEBUG //assert(po->move.attach->fallinfo==NULL); #endif obj->embedment->projectile = projectileAllocate(); } else if ((obj->runtime_bitflags & RUNTIMEBITFLAG_DEPOSIT) == 0) { obj->projectile = projectileAllocate(); if (obj->projectile) { obj->runtime_bitflags |= RUNTIMEBITFLAG_DEPOSIT; } } } void projectileSetSticky(PropRecord *prop) { ObjectRecord *obj = prop->obj; Projectile *projectile = NULL; if (obj->runtime_bitflags & RUNTIMEBITFLAG_EMBEDDED) { projectile = obj->embedment->projectile; } else if (obj->runtime_bitflags & RUNTIMEBITFLAG_DEPOSIT) { projectile = obj->projectile; } if (projectile) { projectile->flags |= PROJECTILEFLAG_STICKY; if (prop->stan) { projectile->unkCC = prop->stan->room; projectile->unkCD = 0xFF; return; } projectile->unkCC = 0xFFU; } } void embedmentFree(Embedment *embedment) { embedment->flags |= EMBEDMENTFLAG_FREE; } Embedment *embedmentAllocate(void) { s32 i; for (i = 0; i < EMBEDMENT_ARR_MAX; i++) { if (g_Embedments[i].flags & 1) { g_Embedments[i].flags = 0; g_Embedments[i].projectile = NULL; return &g_Embedments[(u32)i]; } } return NULL; } /** * This doesn't exactly return the number of shots taken but it's the best way * to describe the behaviour of the function without writing a novel into the * function's name. * * The number returned is 0 when at full health and only ever increments as the * object takes damage. While healthy, the number scales from 0 to 4 based on * how close it is to being destroyed, where 4 is destroyed. After being * destroyed, the number increments at 1 per shot up to a max of 12. */ s32 objGetShotsTaken(ObjectRecord *obj) { if (!(obj->state & PROPSTATE_DESTROYED)) { return (obj->maxdamage * 3.0f) / obj->damage; } return obj->maxdamage + 4.0f; } /** * Return 0 if not destroyed * Return 1 if at destroyed level 1 * Return 2 if at destroyed level 2 * Return 3 if at destroyed level 3 * * Each destroyed level is a new phase of visual brokenness. Typically the * object is destroyed and it looks broken (level 1), then after a couple of * shots it enters level 2, and a few shots later level 3. * * While healthy, damage goes from 0 to maxdamage (eg. 1000) but this function * returns 0 due to the if statement. * * When destroyed, damage is reset to 0 then incremented at one unit per shot, * so four shots causes it to enter a new destroyed level. */ s32 objGetDestroyedLevel(ObjectRecord *obj) { if (!(obj->state & PROPSTATE_DESTROYED)) { return 0; //if Not Dead } return ((s32) obj->maxdamage >> 2) + 1; } ModelRoData_BoundingBoxRecord *chrobjGetBboxFromObjFile(ModelFileHeader *obj) { ModelNode *mdlnext; if (obj->RootNode->Child) { //for each next node, check for BBox for (mdlnext = obj->RootNode->Child; mdlnext; mdlnext = mdlnext->Next) { if (mdlnext->Opcode == MODELNODE_OPCODE_BBOX) { return mdlnext->Data; } } //none found, check FIRST child if (obj->RootNode->Child->Child) { //for each next node, check for BBox for (mdlnext = obj->RootNode->Child->Child; mdlnext; mdlnext = mdlnext->Next) { if (mdlnext->Opcode == MODELNODE_OPCODE_BBOX) { return mdlnext->Data; } } } } return NULL; } struct ModelRoData_BoundingBoxRecord* chrobjGetBboxFromObjectRecord(ObjectRecord *arg0) { return (struct ModelRoData_BoundingBoxRecord *)chrobjGetBboxFromObjFile(arg0->model->obj); } #ifdef NONMATCHING void set_color_shading_from_tile(void) { } #else GLOBAL_ASM( .text glabel set_color_shading_from_tile /* 074BCC 7F04009C 27BDFFE8 */ addiu $sp, $sp, -0x18 /* 074BD0 7F0400A0 AFBF0014 */ sw $ra, 0x14($sp) /* 074BD4 7F0400A4 AFA40018 */ sw $a0, 0x18($sp) /* 074BD8 7F0400A8 00807025 */ move $t6, $a0 /* 074BDC 7F0400AC 00A03825 */ move $a3, $a1 /* 074BE0 7F0400B0 8DC50008 */ lw $a1, 8($t6) /* 074BE4 7F0400B4 8DC60010 */ lw $a2, 0x10($t6) /* 074BE8 7F0400B8 8C840014 */ lw $a0, 0x14($a0) /* 074BEC 7F0400BC 0FC2CB0B */ jal copy_tile_RGB_as_24bit /* 074BF0 7F0400C0 AFA7001C */ sw $a3, 0x1c($sp) /* 074BF4 7F0400C4 8FA7001C */ lw $a3, 0x1c($sp) /* 074BF8 7F0400C8 3C013F40 */ li $at, 0x3F400000 # 0.750000 /* 074BFC 7F0400CC 44814000 */ mtc1 $at, $f8 /* 074C00 7F0400D0 90EB0002 */ lbu $t3, 2($a3) /* 074C04 7F0400D4 90ED0000 */ lbu $t5, ($a3) /* 074C08 7F0400D8 90FF0001 */ lbu $ra, 1($a3) /* 074C0C 7F0400DC 000B7880 */ sll $t7, $t3, 2 /* 074C10 7F0400E0 000DC080 */ sll $t8, $t5, 2 /* 074C14 7F0400E4 01EB7821 */ addu $t7, $t7, $t3 /* 074C18 7F0400E8 030DC021 */ addu $t8, $t8, $t5 /* 074C1C 7F0400EC 001F7080 */ sll $t6, $ra, 2 /* 074C20 7F0400F0 0018C100 */ sll $t8, $t8, 4 /* 074C24 7F0400F4 000F7880 */ sll $t7, $t7, 2 /* 074C28 7F0400F8 01DF7021 */ addu $t6, $t6, $ra /* 074C2C 7F0400FC 000E70C0 */ sll $t6, $t6, 3 /* 074C30 7F040100 01EB7821 */ addu $t7, $t7, $t3 /* 074C34 7F040104 030DC023 */ subu $t8, $t8, $t5 /* 074C38 7F040108 01F8C821 */ addu $t9, $t7, $t8 /* 074C3C 7F04010C 01DF7023 */ subu $t6, $t6, $ra /* 074C40 7F040110 000E7080 */ sll $t6, $t6, 2 /* 074C44 7F040114 032E1821 */ addu $v1, $t9, $t6 /* 074C48 7F040118 00037A03 */ sra $t7, $v1, 8 /* 074C4C 7F04011C 241800FF */ li $t8, 255 /* 074C50 7F040120 030FC823 */ subu $t9, $t8, $t7 /* 074C54 7F040124 44992000 */ mtc1 $t9, $f4 /* 074C58 7F040128 240F0001 */ li $t7, 1 /* 074C5C 7F04012C 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 /* 074C60 7F040130 468021A0 */ cvt.s.w $f6, $f4 /* 074C64 7F040134 00001025 */ move $v0, $zero /* 074C68 7F040138 00006025 */ move $t4, $zero /* 074C6C 7F04013C 46083282 */ mul.s $f10, $f6, $f8 /* 074C70 7F040140 444EF800 */ cfc1 $t6, $31 /* 074C74 7F040144 44CFF800 */ ctc1 $t7, $31 /* 074C78 7F040148 00000000 */ nop /* 074C7C 7F04014C 46005424 */ cvt.w.s $f16, $f10 /* 074C80 7F040150 444FF800 */ cfc1 $t7, $31 /* 074C84 7F040154 00000000 */ nop /* 074C88 7F040158 31EF0078 */ andi $t7, $t7, 0x78 /* 074C8C 7F04015C 51E00013 */ beql $t7, $zero, .L7F0401AC /* 074C90 7F040160 440F8000 */ mfc1 $t7, $f16 /* 074C94 7F040164 44818000 */ mtc1 $at, $f16 /* 074C98 7F040168 240F0001 */ li $t7, 1 /* 074C9C 7F04016C 46105401 */ sub.s $f16, $f10, $f16 /* 074CA0 7F040170 44CFF800 */ ctc1 $t7, $31 /* 074CA4 7F040174 00000000 */ nop /* 074CA8 7F040178 46008424 */ cvt.w.s $f16, $f16 /* 074CAC 7F04017C 444FF800 */ cfc1 $t7, $31 /* 074CB0 7F040180 00000000 */ nop /* 074CB4 7F040184 31EF0078 */ andi $t7, $t7, 0x78 /* 074CB8 7F040188 15E00005 */ bnez $t7, .L7F0401A0 /* 074CBC 7F04018C 00000000 */ nop /* 074CC0 7F040190 440F8000 */ mfc1 $t7, $f16 /* 074CC4 7F040194 3C018000 */ lui $at, 0x8000 /* 074CC8 7F040198 10000007 */ b .L7F0401B8 /* 074CCC 7F04019C 01E17825 */ or $t7, $t7, $at .L7F0401A0: /* 074CD0 7F0401A0 10000005 */ b .L7F0401B8 /* 074CD4 7F0401A4 240FFFFF */ li $t7, -1 /* 074CD8 7F0401A8 440F8000 */ mfc1 $t7, $f16 .L7F0401AC: /* 074CDC 7F0401AC 00000000 */ nop /* 074CE0 7F0401B0 05E0FFFB */ bltz $t7, .L7F0401A0 /* 074CE4 7F0401B4 00000000 */ nop .L7F0401B8: /* 074CE8 7F0401B8 44CEF800 */ ctc1 $t6, $31 /* 074CEC 7F0401BC 01BF082A */ slt $at, $t5, $ra /* 074CF0 7F0401C0 10200003 */ beqz $at, .L7F0401D0 /* 074CF4 7F0401C4 A0EF0003 */ sb $t7, 3($a3) /* 074CF8 7F0401C8 10000002 */ b .L7F0401D4 /* 074CFC 7F0401CC 24020001 */ li $v0, 1 .L7F0401D0: /* 074D00 7F0401D0 240C0001 */ li $t4, 1 .L7F0401D4: /* 074D04 7F0401D4 00E25021 */ addu $t2, $a3, $v0 /* 074D08 7F0401D8 91460000 */ lbu $a2, ($t2) /* 074D0C 7F0401DC 00402825 */ move $a1, $v0 /* 074D10 7F0401E0 00ECC021 */ addu $t8, $a3, $t4 /* 074D14 7F0401E4 00CB082A */ slt $at, $a2, $t3 /* 074D18 7F0401E8 50200005 */ beql $at, $zero, .L7F040200 /* 074D1C 7F0401EC 93190000 */ lbu $t9, ($t8) /* 074D20 7F0401F0 24EA0002 */ addiu $t2, $a3, 2 /* 074D24 7F0401F4 10000009 */ b .L7F04021C /* 074D28 7F0401F8 91460000 */ lbu $a2, ($t2) /* 074D2C 7F0401FC 93190000 */ lbu $t9, ($t8) .L7F040200: /* 074D30 7F040200 01802825 */ move $a1, $t4 /* 074D34 7F040204 032B082A */ slt $at, $t9, $t3 /* 074D38 7F040208 50200004 */ beql $at, $zero, .L7F04021C /* 074D3C 7F04020C 240C0002 */ li $t4, 2 /* 074D40 7F040210 10000002 */ b .L7F04021C /* 074D44 7F040214 24050002 */ li $a1, 2 /* 074D48 7F040218 240C0002 */ li $t4, 2 .L7F04021C: /* 074D4C 7F04021C 18C0001B */ blez $a2, .L7F04028C /* 074D50 7F040220 00E51821 */ addu $v1, $a3, $a1 /* 074D54 7F040224 00EC1021 */ addu $v0, $a3, $t4 /* 074D58 7F040228 904E0000 */ lbu $t6, ($v0) /* 074D5C 7F04022C 906F0000 */ lbu $t7, ($v1) /* 074D60 7F040230 A0400000 */ sb $zero, ($v0) /* 074D64 7F040234 00CE2023 */ subu $a0, $a2, $t6 /* 074D68 7F040238 01E40019 */ multu $t7, $a0 /* 074D6C 7F04023C 00804825 */ move $t1, $a0 /* 074D70 7F040240 0000C012 */ mflo $t8 /* 074D74 7F040244 00000000 */ nop /* 074D78 7F040248 00000000 */ nop /* 074D7C 7F04024C 0306001A */ div $zero, $t8, $a2 /* 074D80 7F040250 00004012 */ mflo $t0 /* 074D84 7F040254 A0680000 */ sb $t0, ($v1) /* 074D88 7F040258 A1440000 */ sb $a0, ($t2) /* 074D8C 7F04025C 14C00002 */ bnez $a2, .L7F040268 /* 074D90 7F040260 00000000 */ nop /* 074D94 7F040264 0007000D */ break 7 .L7F040268: /* 074D98 7F040268 2401FFFF */ li $at, -1 /* 074D9C 7F04026C 14C10004 */ bne $a2, $at, .L7F040280 /* 074DA0 7F040270 3C018000 */ lui $at, 0x8000 /* 074DA4 7F040274 17010002 */ bne $t8, $at, .L7F040280 /* 074DA8 7F040278 00000000 */ nop /* 074DAC 7F04027C 0006000D */ break 6 .L7F040280: /* 074DB0 7F040280 90FF0001 */ lbu $ra, 1($a3) /* 074DB4 7F040284 90ED0000 */ lbu $t5, ($a3) /* 074DB8 7F040288 90EB0002 */ lbu $t3, 2($a3) .L7F04028C: /* 074DBC 7F04028C 000DC842 */ srl $t9, $t5, 1 /* 074DC0 7F040290 001F7042 */ srl $t6, $ra, 1 /* 074DC4 7F040294 000B7842 */ srl $t7, $t3, 1 /* 074DC8 7F040298 A0F90000 */ sb $t9, ($a3) /* 074DCC 7F04029C A0EE0001 */ sb $t6, 1($a3) /* 074DD0 7F0402A0 A0EF0002 */ sb $t7, 2($a3) /* 074DD4 7F0402A4 8FBF0014 */ lw $ra, 0x14($sp) /* 074DD8 7F0402A8 27BD0018 */ addiu $sp, $sp, 0x18 /* 074DDC 7F0402AC 03E00008 */ jr $ra /* 074DE0 7F0402B0 00000000 */ nop ) #endif void sub_GAME_7F0402B4(PropRecord *prop, rgba_u8 *color) { struct DoorRecord *door = prop->door; if (door->flags & 0x400 ){ return; } set_color_shading_from_tile(prop, color); color->r >>= 1; color->g >>= 1; color->b >>= 1; } void update_color_shading(rgba_u8 *dest, rgba_u8 *src) { s32 val_diff; s32 val_new; s32 i; for (i = 0; i < 4; i++) { val_diff = (src->rgba[i] - dest->rgba[i]); val_new = dest->rgba[i] + ((val_diff + 7) >> 3); dest->rgba[i] = val_new; } } void sub_GAME_7F040384(rgba_s32* arg0, s32 arg1, rgba_f32* arg2) { if (arg1 == 1) { arg2->r *= 255.0f; arg2->g *= 255.0f; arg2->b *= 255.0f; if (1) { arg0->r = (s32)((arg2->a * (arg2->r - arg0->r)) + arg0->r); } if (1) { arg0->g = (s32)((arg2->a * (arg2->g - arg0->g)) + arg0->g); } if (1) { arg0->b = (s32)((arg2->a * (arg2->b - arg0->b)) + arg0->b); } arg0->a = (s32)((arg2->a * (255.0f - arg0->a)) + arg0->a); } } /** * Address 0x7F040484. */ void chrobjCollisionRelated(ObjectRecord *obj) { struct ModelRoData_BoundingBoxRecord *bbox; Mtxf sp24; if (obj->ptr_allocated_collisiondata_block != NULL) { bbox = chrobjGetBboxFromObjectRecord(obj); matrix_4x4_copy(&obj->mtx, &sp24); matrix_4x4_set_position(&obj->runtime_pos, &sp24); sub_GAME_7F03F540(bbox, &sp24, &obj->ptr_allocated_collisiondata_block->unk04, obj->ptr_allocated_collisiondata_block); obj->ptr_allocated_collisiondata_block->unk48 = obj->runtime_pos.f[1] + chrpropSumMatrixPosY(bbox, &sp24); obj->ptr_allocated_collisiondata_block->unk44 = obj->runtime_pos.f[1] + chrpropSumMatrixNegY(bbox, &sp24); if (obj->type == PROPDEF_AIRCRAFT) { obj->ptr_allocated_collisiondata_block->unk48 -= 200.0f; } } } PropRecord* objInit(ObjectRecord* obj, ModelFileHeader* model_header, PropRecord* prop, Model* model) { if (prop == NULL) { prop = chrpropAllocate(); } if (model == NULL) { if (obj->type == 0x28) { model = get_aircraft_obj_instance_controller(model_header); } else { model = get_obj_instance_controller_for_header(model_header); } } if ((prop != NULL) && (model != NULL)) { obj->model = model; obj->ptr_allocated_collisiondata_block = NULL; if (obj->flags & 0x100) { obj->ptr_allocated_collisiondata_block = mempAllocBytesInBank(0x50U, MEMPOOL_STAGE); obj->state = (u8) (obj->state | 8); } else { obj->state = (u8) (obj->state & 0xFFF7); } obj->prop = prop; obj->projectile = NULL; obj->shadecol.r = 0; obj->shadecol.g = 0; obj->shadecol.b = 0; obj->shadecol.a = 0; obj->nextcol.r = 0; obj->nextcol.g = 0; obj->nextcol.b = 0; obj->nextcol.a = 0; obj->maxdamage = 0.0f; *((s16*)&obj->model->unk00) = -1; obj->model->chr = NULL; modelSetScale(obj->model, PitemZ_entries[obj->obj].scale); prop->type = 1; prop->obj = obj; prop->pos.x = 0.0f; obj->runtime_pos.x = 0.0f; prop->pos.y = 0.0f; obj->runtime_pos.y = 0.0f; prop->pos.z = 0.0f; obj->runtime_pos.z = 0.0f; prop->stan = NULL; } else { if (model != NULL) { if (obj->type == 0x28) { clear_aircraft_model_obj(model); } else { clear_model_obj(model); } } if (prop != NULL) { chrpropFree(prop); prop = NULL; } } return prop; } PropRecord* objInitWithModelDef(ObjectRecord* object, ModelFileHeader* header) { return objInit(object, header, 0, 0); } PropRecord* objInitWithAutoModel(ObjectRecord* obj) { return objInitWithModelDef(obj, PitemZ_entries[obj->obj].header); } // Changes the color shade on the object, e.g. when walking in a darker area or under a colored light. void objChangeShading(ObjectRecord* obj, coord3d* pos, Mtxf* matrix, StandTile* stan) { PropRecord *prop = obj->prop; matrix_4x4_copy(matrix, &obj->mtx); obj->runtime_pos.x = prop->pos.x = pos->x; obj->runtime_pos.y = prop->pos.y = pos->y; obj->runtime_pos.z = prop->pos.z = pos->z; prop->stan = stan; sub_GAME_7F0402B4(obj->prop, &obj->nextcol); obj->shadecol.r = obj->nextcol.r; obj->shadecol.g = obj->nextcol.g; obj->shadecol.b = obj->nextcol.b; obj->shadecol.a = obj->nextcol.a; } // Unreferenced function (unused) void sub_GAME_7F0407F4(ObjectRecord* obj, coord3d* pos, Mtxf* matrix, StandTile* stan) { u32 a; // Adds 4 bytes to the stack so it matches. Could be anything 4 bytes long. struct ModelRoData_BoundingBoxRecord *modelunk = chrobjGetBboxFromObjFile(obj->model->obj); pos->y = stanGetPositionYValue(stan, pos->x, pos->z) + 4.0f; pos->y = pos->y - chrpropSumMatrixPosY(modelunk, matrix); objChangeShading(obj, pos, matrix, stan); chrobjCollisionRelated(obj); } //moveToPad void sub_GAME_7F04088C(ObjectRecord *baseobj, struct coord3d *pos, Mtxf *matrix, StandTile *stan, struct coord3d *pos2) { int padd[1]; ModelRoData_BoundingBoxRecord *modelBoundingBox; f32 xmax; f32 ymin; coord3d newPos; StandTile *mStan; Mtxf mtxcopy; modelBoundingBox = chrobjGetBboxFromObjFile(baseobj->model->obj); xmax = chrpropBBOXGetYmin(modelBoundingBox); ymin = chrpropBBOXGetYmax(modelBoundingBox); mStan = stan; if (baseobj->flags & 4) { matrix_4x4_set_rotation_around_z(M_PI, &mtxcopy); matrix_4x4_multiply_in_place(matrix, &mtxcopy); newPos.x = pos2->f[0] - (mtxcopy.m[1][0] * ymin); newPos.y = pos2->f[1] - (mtxcopy.m[1][1] * ymin); newPos.z = pos2->f[2] - (mtxcopy.m[1][2] * ymin); } else if (baseobj->flags & 8) { matrix_4x4_copy(matrix, &mtxcopy); newPos.x = pos2->f[0] - (mtxcopy.m[1][0] * xmax); newPos.y = pos2->f[1] - (mtxcopy.m[1][1] * xmax); newPos.z = pos2->f[2] - (mtxcopy.m[1][2] * xmax); } else { ObjectRecord *roomObj; f32 distfromTileCenter; f32 byrefA; f32 byrefB; f32 byrefC; f32 byrefD; distfromTileCenter = stanGetPositionYValue(mStan, pos->f[0], pos->f[2]); matrix_4x4_copy(matrix, &mtxcopy); newPos.x = pos2->f[0] - (mtxcopy.m[1][0] * xmax); newPos.z = pos2->f[2] - (mtxcopy.m[1][2] * xmax); roomObj = sub_GAME_7F03FAB0(pos, stan->room); if (roomObj) { PropRecord *roomObjProp = roomObj->prop; chraiGetCollisionBounds(roomObjProp, &byrefA, &byrefB, &byrefC, &byrefD); if ((distfromTileCenter < byrefC) && (byrefD < ((mtxcopy.m[1][1] * (ymin - xmax)) + distfromTileCenter + 4.0f))) { newPos.y = byrefC - (mtxcopy.m[1][1] * xmax); baseobj->runtime_bitflags |= RUNTIMEBITFLAG_00008000; } else { newPos.y = (distfromTileCenter - (mtxcopy.m[1][1] * xmax)) + 4.0f; } } else { newPos.y = (distfromTileCenter - (mtxcopy.m[1][1] * xmax)) + 4.0f; } } if (!(baseobj->flags2 & 1) && walkTilesBetweenPoints_NoCallback(&mStan, pos->f[0], pos->f[2], newPos.x, newPos.z)) { objChangeShading(baseobj, &newPos, &mtxcopy, mStan); } else { objChangeShading(baseobj, pos, &mtxcopy, stan); if ((baseobj->flags2 & 1) || (baseobj->flags & 0x1000)) { baseobj->runtime_pos.x = newPos.x; baseobj->runtime_pos.y = newPos.y; baseobj->runtime_pos.z = newPos.z; } #ifdef DEBUG else { osSyncPrintf("prop not positioned correctly!\n"); } #endif } chrobjCollisionRelated(baseobj); } void sub_GAME_7F040BA0(ObjectRecord *obj, coord3d *pos, Mtxf *arg2, StandTile *stan2, coord3d *pos2) { Mtxf *sp6C_ptr; f32 (*sp6Cm_ptr)[4]; f32 spBC; coord3d posdiff; StandTile *stan; Mtxf matrix; Mtxf sp2C; spBC = chrpropBBOXGetZmin(chrobjGetBboxFromObjFile(obj->model->obj)); stan = stan2; sp6C_ptr = &matrix; matrix_4x4_set_rotation_around_x(4.712389f, sp6C_ptr); sp6Cm_ptr = matrix.m; matrix_4x4_set_rotation_around_y(M_PI_F, &sp2C); matrix_4x4_multiply_in_place(&sp2C, sp6C_ptr); matrix_4x4_multiply_in_place(arg2, &matrix); posdiff.x = pos2->x - (sp6Cm_ptr[2][0] * spBC); posdiff.y = pos2->y - (sp6Cm_ptr[2][1] * spBC); posdiff.z = pos2->z - (sp6Cm_ptr[2][2] * spBC); if ((!(((s32) obj->flags2) & 1)) && (walkTilesBetweenPoints_NoCallback(&stan, pos->x, pos->z, posdiff.x, posdiff.z) != 0)) { objChangeShading(obj, &posdiff, &matrix, stan); } else { objChangeShading(obj, pos, &matrix, stan2); obj->runtime_pos.x = posdiff.x; obj->runtime_pos.y = posdiff.y; obj->runtime_pos.z = posdiff.z; } chrobjCollisionRelated(obj); } void objFreeEmbedmentOrProjectile(PropRecord *prop) { ObjectRecord *obj = prop->obj; if (obj->runtime_bitflags & RUNTIMEBITFLAG_EMBEDDED) { if (obj->embedment) { if (obj->embedment->projectile) { projectileFree(obj->embedment->projectile); } #ifdef DEBUG else { osSyncPrintf("ERROR: PROPHIDD_ATTACHED was, but move.attach was NULL\a\n"); osSyncPrintf("po->obj=%d\n",po->obj); osSyncPrintf("p->flags=%08x\n",p->flags); osSyncPrintf("po->flags2=%08x\n",po->flags2); osSyncPrintf("p->timetoregen=%d\n",p->timetoregen); } #endif embedmentFree(obj->embedment); } obj->embedment = NULL; obj->runtime_bitflags &= ~RUNTIMEBITFLAG_EMBEDDED; } else if (obj->runtime_bitflags & RUNTIMEBITFLAG_DEPOSIT) { projectileFree(obj->projectile); obj->projectile = NULL; obj->runtime_bitflags &= ~RUNTIMEBITFLAG_DEPOSIT; } } void objFree(ObjectRecord* obj, s32 freeprop, s32 canregen) { PropRecord *child; if (obj->type == PROPDEF_AUTOGUN) { AutogunRecord* record = (AutogunRecord*)obj; if ((record->unkC4 != NULL) && (sndGetPlayingState(record->unkC4) != 0)) { sndDeactivate(record->unkC4); } if ((record->unkC8 != NULL) && (sndGetPlayingState(record->unkC8) != 0)) { sndDeactivate(record->unkC8); } } else if (obj->type == PROPDEF_COLLECTABLE) { WeaponObjRecord* record = (WeaponObjRecord*) obj; WeaponObjRecord* record2 = record->dualweapon; if (record2 != NULL) { record2->dualweapon = NULL; record->dualweapon = NULL; } } else if (obj->type == PROPDEF_DOOR) { DoorRecord* record = (DoorRecord*) obj; if ((record->openSoundState != NULL) && (sndGetPlayingState(record->openSoundState) != 0)) { sndDeactivate(record->openSoundState); } if ((record->closeSoundState != NULL) && (sndGetPlayingState(record->closeSoundState) != 0)) { sndDeactivate(record->closeSoundState); } } else if (obj->type == PROPDEF_TINTED_GLASS) { TintedGlassRecord* record = (TintedGlassRecord*) obj; if (record->portalnum >= 0) { bgToggleDataPortalsContrlBytes1Bit1(record->portalnum, 1); } } else if (obj->type == PROPDEF_AIRCRAFT) { AircraftRecord* record = (AircraftRecord*) obj; if ((record->Sound != NULL) && (sndGetPlayingState(record->Sound) != 0)) { sndDeactivate(record->Sound); } } else if (obj->type == PROPDEF_VEHICHLE) { VehichleRecord* record = (VehichleRecord*) obj; if ((record->Sound != NULL) && (sndGetPlayingState(record->Sound) != 0)) { sndDeactivate(record->Sound); } } if (obj->prop != NULL) { explosionClearBulletImpactRoomByFlag(obj->prop, FALSE); explosionClearBulletImpactRoomByFlag(obj->prop, TRUE); if (canregen == 0) { objFreeEmbedmentOrProjectile(obj->prop); if (obj->prop->parent != NULL) { objDetach(obj->prop); } chrpropDeregisterRooms(obj->prop); child = obj->prop->child; while (child) { PropRecord* next = child->prev; objFreePermanently(child->obj, TRUE); child = next; } if (obj->prop->type != PROP_TYPE_DOOR) { sub_GAME_7F050DE8(obj->model); } if (obj->type == PROPDEF_AIRCRAFT) { clear_aircraft_model_obj(obj->model); } else { clear_model_obj(obj->model); } if (freeprop != 0) { chrpropDelist(obj->prop); chrpropDisable(obj->prop); chrpropFree(obj->prop); } obj->prop = NULL; } } } void objFreePermanently(struct ObjectRecord * obj, bool freeprop) { objFree(obj, freeprop, 0); } float objGetWidth(struct ObjectRecord * obj) { if (obj->type == PROP_TYPE_WEAPON) { return 20.0f; } return 10.0f; } bool sub_GAME_7F041074(coord3d *zeropos, coord3d *pos, coord3d *vec, f32 scale) { vec3d vector; f32 dist2rd; vector.x = vec->x - zeropos->x; vector.y = vec->y - zeropos->y; vector.z = vec->z - zeropos->z; dist2rd = pos->f[0] * vector.f[0] + pos->f[1] * vector.f[1] + pos->f[2] * vector.f[2]; if (dist2rd > 0) { f32 a = pos->f[0] * pos->f[0] + pos->f[1] * pos->f[1] + pos->f[2] * pos->f[2]; f32 b = vector.f[0] * vector.f[0] + vector.f[1] * vector.f[1] + vector.f[2] * vector.f[2]; if ((b - scale * scale) * a <= dist2rd * dist2rd) { return 1; } } return 0; } #ifdef NONMATCHING void sub_GAME_7F041160(void) { } #else GLOBAL_ASM( .text glabel sub_GAME_7F041160 /* 075C90 7F041160 27BDFF58 */ addiu $sp, $sp, -0xa8 /* 075C94 7F041164 AFBF0044 */ sw $ra, 0x44($sp) /* 075C98 7F041168 AFB70040 */ sw $s7, 0x40($sp) /* 075C9C 7F04116C AFB6003C */ sw $s6, 0x3c($sp) /* 075CA0 7F041170 AFB50038 */ sw $s5, 0x38($sp) /* 075CA4 7F041174 AFB40034 */ sw $s4, 0x34($sp) /* 075CA8 7F041178 AFB30030 */ sw $s3, 0x30($sp) /* 075CAC 7F04117C AFB2002C */ sw $s2, 0x2c($sp) /* 075CB0 7F041180 AFB10028 */ sw $s1, 0x28($sp) /* 075CB4 7F041184 AFB00024 */ sw $s0, 0x24($sp) /* 075CB8 7F041188 AFA700B4 */ sw $a3, 0xb4($sp) /* 075CBC 7F04118C 8C970014 */ lw $s7, 0x14($a0) /* 075CC0 7F041190 AFA0009C */ sw $zero, 0x9c($sp) /* 075CC4 7F041194 AFA00064 */ sw $zero, 0x64($sp) /* 075CC8 7F041198 908E0003 */ lbu $t6, 3($a0) /* 075CCC 7F04119C 24010001 */ li $at, 1 /* 075CD0 7F0411A0 00A08825 */ move $s1, $a1 /* 075CD4 7F0411A4 15C1001A */ bne $t6, $at, .L7F041210 /* 075CD8 7F0411A8 00C09825 */ move $s3, $a2 /* 075CDC 7F0411AC 248400D0 */ addiu $a0, $a0, 0xd0 /* 075CE0 7F0411B0 8EE5000C */ lw $a1, 0xc($s7) /* 075CE4 7F0411B4 02203025 */ move $a2, $s1 /* 075CE8 7F0411B8 0FC1D1F4 */ jal sub_GAME_7F0747D0 /* 075CEC 7F0411BC 02603825 */ move $a3, $s3 /* 075CF0 7F0411C0 8EEF0008 */ lw $t7, 8($s7) /* 075CF4 7F0411C4 00408025 */ move $s0, $v0 /* 075CF8 7F0411C8 27B4006C */ addiu $s4, $sp, 0x6c /* 075CFC 7F0411CC 8DF80000 */ lw $t8, ($t7) /* 075D00 7F0411D0 27B50068 */ addiu $s5, $sp, 0x68 /* 075D04 7F0411D4 18400025 */ blez $v0, .L7F04126C /* 075D08 7F0411D8 AFB8009C */ sw $t8, 0x9c($sp) /* 075D0C 7F0411DC 27B60064 */ addiu $s6, $sp, 0x64 /* 075D10 7F0411E0 AFB60018 */ sw $s6, 0x18($sp) /* 075D14 7F0411E4 02E02025 */ move $a0, $s7 /* 075D18 7F0411E8 03002825 */ move $a1, $t8 /* 075D1C 7F0411EC 02203025 */ move $a2, $s1 /* 075D20 7F0411F0 02603825 */ move $a3, $s3 /* 075D24 7F0411F4 AFB40010 */ sw $s4, 0x10($sp) /* 075D28 7F0411F8 0FC1366C */ jal sub_GAME_7F04D9B0 /* 075D2C 7F0411FC AFB50014 */ sw $s5, 0x14($sp) /* 075D30 7F041200 1440001A */ bnez $v0, .L7F04126C /* 075D34 7F041204 00000000 */ nop /* 075D38 7F041208 10000018 */ b .L7F04126C /* 075D3C 7F04120C 00008025 */ move $s0, $zero .L7F041210: /* 075D40 7F041210 27B60064 */ addiu $s6, $sp, 0x64 /* 075D44 7F041214 27B50068 */ addiu $s5, $sp, 0x68 /* 075D48 7F041218 27B4006C */ addiu $s4, $sp, 0x6c /* 075D4C 7F04121C 27B2009C */ addiu $s2, $sp, 0x9c /* 075D50 7F041220 02E02025 */ move $a0, $s7 .L7F041224: /* 075D54 7F041224 02202825 */ move $a1, $s1 /* 075D58 7F041228 02603025 */ move $a2, $s3 /* 075D5C 7F04122C 0FC1D4BF */ jal sub_GAME_7F0752FC /* 075D60 7F041230 02403825 */ move $a3, $s2 /* 075D64 7F041234 1840000B */ blez $v0, .L7F041264 /* 075D68 7F041238 00408025 */ move $s0, $v0 /* 075D6C 7F04123C 02E02025 */ move $a0, $s7 /* 075D70 7F041240 8FA5009C */ lw $a1, 0x9c($sp) /* 075D74 7F041244 02203025 */ move $a2, $s1 /* 075D78 7F041248 02603825 */ move $a3, $s3 /* 075D7C 7F04124C AFB40010 */ sw $s4, 0x10($sp) /* 075D80 7F041250 AFB50014 */ sw $s5, 0x14($sp) /* 075D84 7F041254 0FC1366C */ jal sub_GAME_7F04D9B0 /* 075D88 7F041258 AFB60018 */ sw $s6, 0x18($sp) /* 075D8C 7F04125C 14400003 */ bnez $v0, .L7F04126C /* 075D90 7F041260 00000000 */ nop .L7F041264: /* 075D94 7F041264 5E00FFEF */ bgtzl $s0, .L7F041224 /* 075D98 7F041268 02E02025 */ move $a0, $s7 .L7F04126C: /* 075D9C 7F04126C 1A000059 */ blez $s0, .L7F0413D4 /* 075DA0 7F041270 00001025 */ move $v0, $zero /* 075DA4 7F041274 C7A4006C */ lwc1 $f4, 0x6c($sp) /* 075DA8 7F041278 8FA500B4 */ lw $a1, 0xb4($sp) /* 075DAC 7F04127C 8EF9000C */ lw $t9, 0xc($s7) /* 075DB0 7F041280 8FA80068 */ lw $t0, 0x68($sp) /* 075DB4 7F041284 E4A40000 */ swc1 $f4, ($a1) /* 075DB8 7F041288 C7A60070 */ lwc1 $f6, 0x70($sp) /* 075DBC 7F04128C 00084980 */ sll $t1, $t0, 6 /* 075DC0 7F041290 03298821 */ addu $s1, $t9, $t1 /* 075DC4 7F041294 E4A60004 */ swc1 $f6, 4($a1) /* 075DC8 7F041298 C7A80074 */ lwc1 $f8, 0x74($sp) /* 075DCC 7F04129C 02202025 */ move $a0, $s1 /* 075DD0 7F0412A0 0FC1611D */ jal mtx4TransformVecInPlace /* 075DD4 7F0412A4 E4A80008 */ swc1 $f8, 8($a1) /* 075DD8 7F0412A8 0FC1E111 */ jal currentPlayerGetMatrix10D4 /* 075DDC 7F0412AC 00000000 */ nop /* 075DE0 7F0412B0 00402025 */ move $a0, $v0 /* 075DE4 7F0412B4 0FC1611D */ jal mtx4TransformVecInPlace /* 075DE8 7F0412B8 8FA500B4 */ lw $a1, 0xb4($sp) /* 075DEC 7F0412BC 8FB000B8 */ lw $s0, 0xb8($sp) /* 075DF0 7F0412C0 C7AA0078 */ lwc1 $f10, 0x78($sp) /* 075DF4 7F0412C4 02202025 */ move $a0, $s1 /* 075DF8 7F0412C8 02002825 */ move $a1, $s0 /* 075DFC 7F0412CC E60A0000 */ swc1 $f10, ($s0) /* 075E00 7F0412D0 C7B0007C */ lwc1 $f16, 0x7c($sp) /* 075E04 7F0412D4 E6100004 */ swc1 $f16, 4($s0) /* 075E08 7F0412D8 C7B20080 */ lwc1 $f18, 0x80($sp) /* 075E0C 7F0412DC 0FC160F6 */ jal mtx4RotateVecInPlace /* 075E10 7F0412E0 E6120008 */ swc1 $f18, 8($s0) /* 075E14 7F0412E4 C6020000 */ lwc1 $f2, ($s0) /* 075E18 7F0412E8 C6640000 */ lwc1 $f4, ($s3) /* 075E1C 7F0412EC C60C0004 */ lwc1 $f12, 4($s0) /* 075E20 7F0412F0 C6680004 */ lwc1 $f8, 4($s3) /* 075E24 7F0412F4 46041182 */ mul.s $f6, $f2, $f4 /* 075E28 7F0412F8 C6000008 */ lwc1 $f0, 8($s0) /* 075E2C 7F0412FC C6720008 */ lwc1 $f18, 8($s3) /* 075E30 7F041300 46086282 */ mul.s $f10, $f12, $f8 /* 075E34 7F041304 44807000 */ mtc1 $zero, $f14 /* 075E38 7F041308 46009102 */ mul.s $f4, $f18, $f0 /* 075E3C 7F04130C 460A3400 */ add.s $f16, $f6, $f10 /* 075E40 7F041310 46102200 */ add.s $f8, $f4, $f16 /* 075E44 7F041314 4608703C */ c.lt.s $f14, $f8 /* 075E48 7F041318 00000000 */ nop /* 075E4C 7F04131C 45000007 */ bc1f .L7F04133C /* 075E50 7F041320 00000000 */ nop /* 075E54 7F041324 46001187 */ neg.s $f6, $f2 /* 075E58 7F041328 46006287 */ neg.s $f10, $f12 /* 075E5C 7F04132C 46000487 */ neg.s $f18, $f0 /* 075E60 7F041330 E6060000 */ swc1 $f6, ($s0) /* 075E64 7F041334 E60A0004 */ swc1 $f10, 4($s0) /* 075E68 7F041338 E6120008 */ swc1 $f18, 8($s0) .L7F04133C: /* 075E6C 7F04133C 0FC1E111 */ jal currentPlayerGetMatrix10D4 /* 075E70 7F041340 00000000 */ nop /* 075E74 7F041344 00402025 */ move $a0, $v0 /* 075E78 7F041348 0FC160F6 */ jal mtx4RotateVecInPlace /* 075E7C 7F04134C 02002825 */ move $a1, $s0 /* 075E80 7F041350 44807000 */ mtc1 $zero, $f14 /* 075E84 7F041354 C6040000 */ lwc1 $f4, ($s0) /* 075E88 7F041358 02002025 */ move $a0, $s0 /* 075E8C 7F04135C 26050004 */ addiu $a1, $s0, 4 /* 075E90 7F041360 46047032 */ c.eq.s $f14, $f4 /* 075E94 7F041364 00000000 */ nop /* 075E98 7F041368 4500000C */ bc1f .L7F04139C /* 075E9C 7F04136C 00000000 */ nop /* 075EA0 7F041370 C6100004 */ lwc1 $f16, 4($s0) /* 075EA4 7F041374 46107032 */ c.eq.s $f14, $f16 /* 075EA8 7F041378 00000000 */ nop /* 075EAC 7F04137C 45000007 */ bc1f .L7F04139C /* 075EB0 7F041380 00000000 */ nop /* 075EB4 7F041384 C6080008 */ lwc1 $f8, 8($s0) /* 075EB8 7F041388 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 075EBC 7F04138C 46087032 */ c.eq.s $f14, $f8 /* 075EC0 7F041390 00000000 */ nop /* 075EC4 7F041394 45030006 */ bc1tl .L7F0413B0 /* 075EC8 7F041398 44813000 */ mtc1 $at, $f6 .L7F04139C: /* 075ECC 7F04139C 0C007DD4 */ jal guNormalize /* 075ED0 7F0413A0 26060008 */ addiu $a2, $s0, 8 /* 075ED4 7F0413A4 10000005 */ b .L7F0413BC /* 075ED8 7F0413A8 8FAB00BC */ lw $t3, 0xbc($sp) /* 075EDC 7F0413AC 44813000 */ mtc1 $at, $f6 .L7F0413B0: /* 075EE0 7F0413B0 00000000 */ nop /* 075EE4 7F0413B4 E6060008 */ swc1 $f6, 8($s0) /* 075EE8 7F0413B8 8FAB00BC */ lw $t3, 0xbc($sp) .L7F0413BC: /* 075EEC 7F0413BC 24020001 */ li $v0, 1 /* 075EF0 7F0413C0 AD770000 */ sw $s7, ($t3) /* 075EF4 7F0413C4 8FAD00C0 */ lw $t5, 0xc0($sp) /* 075EF8 7F0413C8 8FAC0064 */ lw $t4, 0x64($sp) /* 075EFC 7F0413CC 10000001 */ b .L7F0413D4 /* 075F00 7F0413D0 ADAC0000 */ sw $t4, ($t5) .L7F0413D4: /* 075F04 7F0413D4 8FBF0044 */ lw $ra, 0x44($sp) /* 075F08 7F0413D8 8FB00024 */ lw $s0, 0x24($sp) /* 075F0C 7F0413DC 8FB10028 */ lw $s1, 0x28($sp) /* 075F10 7F0413E0 8FB2002C */ lw $s2, 0x2c($sp) /* 075F14 7F0413E4 8FB30030 */ lw $s3, 0x30($sp) /* 075F18 7F0413E8 8FB40034 */ lw $s4, 0x34($sp) /* 075F1C 7F0413EC 8FB50038 */ lw $s5, 0x38($sp) /* 075F20 7F0413F0 8FB6003C */ lw $s6, 0x3c($sp) /* 075F24 7F0413F4 8FB70040 */ lw $s7, 0x40($sp) /* 075F28 7F0413F8 03E00008 */ jr $ra /* 075F2C 7F0413FC 27BD00A8 */ addiu $sp, $sp, 0xa8 ) #endif #ifdef NONMATCHING // PD: func0f06b488 bool sub_GAME_7F041400(PropRecord *prop, coord3d *arg1, coord3d *arg2, coord3d *arg3, coord3d *arg4, coord3d *arg5, f32 *arg6) { } #else bool sub_GAME_7F041400(PropRecord *prop, coord3d *arg1, coord3d *arg2, coord3d *arg3, coord3d *arg4, coord3d *arg5, f32 *arg6); GLOBAL_ASM( .text glabel sub_GAME_7F041400 /* 075F30 7F041400 27BDFF28 */ addiu $sp, $sp, -0xd8 /* 075F34 7F041404 AFB50044 */ sw $s5, 0x44($sp) /* 075F38 7F041408 AFB40040 */ sw $s4, 0x40($sp) /* 075F3C 7F04140C F7B40028 */ sdc1 $f20, 0x28($sp) /* 075F40 7F041410 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 075F44 7F041414 00C0A025 */ move $s4, $a2 /* 075F48 7F041418 00A0A825 */ move $s5, $a1 /* 075F4C 7F04141C AFBF0054 */ sw $ra, 0x54($sp) /* 075F50 7F041420 AFA700E4 */ sw $a3, 0xe4($sp) /* 075F54 7F041424 4481A000 */ mtc1 $at, $f20 /* 075F58 7F041428 240EFFFF */ li $t6, -1 /* 075F5C 7F04142C 27AF00C8 */ addiu $t7, $sp, 0xc8 /* 075F60 7F041430 AFBE0050 */ sw $fp, 0x50($sp) /* 075F64 7F041434 AFB7004C */ sw $s7, 0x4c($sp) /* 075F68 7F041438 AFB60048 */ sw $s6, 0x48($sp) /* 075F6C 7F04143C AFB3003C */ sw $s3, 0x3c($sp) /* 075F70 7F041440 AFB20038 */ sw $s2, 0x38($sp) /* 075F74 7F041444 AFB10034 */ sw $s1, 0x34($sp) /* 075F78 7F041448 AFB00030 */ sw $s0, 0x30($sp) /* 075F7C 7F04144C AFA400D8 */ sw $a0, 0xd8($sp) /* 075F80 7F041450 AFAE0094 */ sw $t6, 0x94($sp) /* 075F84 7F041454 AFAF0010 */ sw $t7, 0x10($sp) /* 075F88 7F041458 27A700CC */ addiu $a3, $sp, 0xcc /* 075F8C 7F04145C 27A500D4 */ addiu $a1, $sp, 0xd4 /* 075F90 7F041460 0FC0F308 */ jal chraiGetCollisionBounds /* 075F94 7F041464 27A600D0 */ addiu $a2, $sp, 0xd0 /* 075F98 7F041468 8FB800D0 */ lw $t8, 0xd0($sp) /* 075F9C 7F04146C C7A400CC */ lwc1 $f4, 0xcc($sp) /* 075FA0 7F041470 5B0000CD */ blezl $t8, .L7F0417A8 /* 075FA4 7F041474 00001025 */ move $v0, $zero /* 075FA8 7F041478 C6A00004 */ lwc1 $f0, 4($s5) /* 075FAC 7F04147C C7A800C8 */ lwc1 $f8, 0xc8($sp) /* 075FB0 7F041480 4600203C */ c.lt.s $f4, $f0 /* 075FB4 7F041484 00000000 */ nop /* 075FB8 7F041488 45020007 */ bc1fl .L7F0414A8 /* 075FBC 7F04148C 4608003C */ c.lt.s $f0, $f8 /* 075FC0 7F041490 C6860004 */ lwc1 $f6, 4($s4) /* 075FC4 7F041494 4606203C */ c.lt.s $f4, $f6 /* 075FC8 7F041498 00000000 */ nop /* 075FCC 7F04149C 450300C2 */ bc1tl .L7F0417A8 /* 075FD0 7F0414A0 00001025 */ move $v0, $zero /* 075FD4 7F0414A4 4608003C */ c.lt.s $f0, $f8 .L7F0414A8: /* 075FD8 7F0414A8 00000000 */ nop /* 075FDC 7F0414AC 45020007 */ bc1fl .L7F0414CC /* 075FE0 7F0414B0 C6B00000 */ lwc1 $f16, ($s5) /* 075FE4 7F0414B4 C68A0004 */ lwc1 $f10, 4($s4) /* 075FE8 7F0414B8 4608503C */ c.lt.s $f10, $f8 /* 075FEC 7F0414BC 00000000 */ nop /* 075FF0 7F0414C0 450300B9 */ bc1tl .L7F0417A8 /* 075FF4 7F0414C4 00001025 */ move $v0, $zero /* 075FF8 7F0414C8 C6B00000 */ lwc1 $f16, ($s5) .L7F0414CC: /* 075FFC 7F0414CC 8FB900D0 */ lw $t9, 0xd0($sp) /* 076000 7F0414D0 00008025 */ move $s0, $zero /* 076004 7F0414D4 E7B000A0 */ swc1 $f16, 0xa0($sp) /* 076008 7F0414D8 C6B20008 */ lwc1 $f18, 8($s5) /* 07600C 7F0414DC E7B200A4 */ swc1 $f18, 0xa4($sp) /* 076010 7F0414E0 C6840000 */ lwc1 $f4, ($s4) /* 076014 7F0414E4 E7A40098 */ swc1 $f4, 0x98($sp) /* 076018 7F0414E8 C6860008 */ lwc1 $f6, 8($s4) /* 07601C 7F0414EC 1B200043 */ blez $t9, .L7F0415FC /* 076020 7F0414F0 E7A6009C */ swc1 $f6, 0x9c($sp) /* 076024 7F0414F4 00008825 */ move $s1, $zero /* 076028 7F0414F8 27BE00B0 */ addiu $fp, $sp, 0xb0 /* 07602C 7F0414FC 27B70098 */ addiu $s7, $sp, 0x98 /* 076030 7F041500 27B600A0 */ addiu $s6, $sp, 0xa0 /* 076034 7F041504 8FA800D0 */ lw $t0, 0xd0($sp) .L7F041508: /* 076038 7F041508 26130001 */ addiu $s3, $s0, 1 /* 07603C 7F04150C 8FA900D4 */ lw $t1, 0xd4($sp) /* 076040 7F041510 0268001A */ div $zero, $s3, $t0 /* 076044 7F041514 01311821 */ addu $v1, $t1, $s1 /* 076048 7F041518 C46A0000 */ lwc1 $f10, ($v1) /* 07604C 7F04151C C6AC0000 */ lwc1 $f12, ($s5) /* 076050 7F041520 C6AE0008 */ lwc1 $f14, 8($s5) /* 076054 7F041524 8E860000 */ lw $a2, ($s4) /* 076058 7F041528 8E870008 */ lw $a3, 8($s4) /* 07605C 7F04152C E7AA0010 */ swc1 $f10, 0x10($sp) /* 076060 7F041530 C4680004 */ lwc1 $f8, 4($v1) /* 076064 7F041534 00001010 */ mfhi $v0 /* 076068 7F041538 000250C0 */ sll $t2, $v0, 3 /* 07606C 7F04153C 012A2021 */ addu $a0, $t1, $t2 /* 076070 7F041540 E7A80014 */ swc1 $f8, 0x14($sp) /* 076074 7F041544 C4900000 */ lwc1 $f16, ($a0) /* 076078 7F041548 15000002 */ bnez $t0, .L7F041554 /* 07607C 7F04154C 00000000 */ nop /* 076080 7F041550 0007000D */ break 7 .L7F041554: /* 076084 7F041554 2401FFFF */ li $at, -1 /* 076088 7F041558 15010004 */ bne $t0, $at, .L7F04156C /* 07608C 7F04155C 3C018000 */ lui $at, 0x8000 /* 076090 7F041560 16610002 */ bne $s3, $at, .L7F04156C /* 076094 7F041564 00000000 */ nop /* 076098 7F041568 0006000D */ break 6 .L7F04156C: /* 07609C 7F04156C E7B00018 */ swc1 $f16, 0x18($sp) /* 0760A0 7F041570 C4920004 */ lwc1 $f18, 4($a0) /* 0760A4 7F041574 00409025 */ move $s2, $v0 /* 0760A8 7F041578 0FC2C1A2 */ jal sub_GAME_7F0B0688 /* 0760AC 7F04157C E7B2001C */ swc1 $f18, 0x1c($sp) /* 0760B0 7F041580 50400019 */ beql $v0, $zero, .L7F0415E8 /* 0760B4 7F041584 8FAD00D0 */ lw $t5, 0xd0($sp) /* 0760B8 7F041588 8FAB00D4 */ lw $t3, 0xd4($sp) /* 0760BC 7F04158C 001260C0 */ sll $t4, $s2, 3 /* 0760C0 7F041590 02C02025 */ move $a0, $s6 /* 0760C4 7F041594 01711821 */ addu $v1, $t3, $s1 /* 0760C8 7F041598 C4640000 */ lwc1 $f4, ($v1) /* 0760CC 7F04159C 016C1021 */ addu $v0, $t3, $t4 /* 0760D0 7F0415A0 02E02825 */ move $a1, $s7 /* 0760D4 7F0415A4 E7A400B0 */ swc1 $f4, 0xb0($sp) /* 0760D8 7F0415A8 C4660004 */ lwc1 $f6, 4($v1) /* 0760DC 7F0415AC 03C03025 */ move $a2, $fp /* 0760E0 7F0415B0 27A700A8 */ addiu $a3, $sp, 0xa8 /* 0760E4 7F0415B4 E7A600B4 */ swc1 $f6, 0xb4($sp) /* 0760E8 7F0415B8 C44A0000 */ lwc1 $f10, ($v0) /* 0760EC 7F0415BC E7AA00A8 */ swc1 $f10, 0xa8($sp) /* 0760F0 7F0415C0 C4480004 */ lwc1 $f8, 4($v0) /* 0760F4 7F0415C4 0FC2CC80 */ jal calculateLineIntersectionFactor /* 0760F8 7F0415C8 E7A800AC */ swc1 $f8, 0xac($sp) /* 0760FC 7F0415CC 4614003C */ c.lt.s $f0, $f20 /* 076100 7F0415D0 00000000 */ nop /* 076104 7F0415D4 45020004 */ bc1fl .L7F0415E8 /* 076108 7F0415D8 8FAD00D0 */ lw $t5, 0xd0($sp) /* 07610C 7F0415DC 46000506 */ mov.s $f20, $f0 /* 076110 7F0415E0 AFB00094 */ sw $s0, 0x94($sp) /* 076114 7F0415E4 8FAD00D0 */ lw $t5, 0xd0($sp) .L7F0415E8: /* 076118 7F0415E8 02608025 */ move $s0, $s3 /* 07611C 7F0415EC 26310008 */ addiu $s1, $s1, 8 /* 076120 7F0415F0 026D082A */ slt $at, $s3, $t5 /* 076124 7F0415F4 5420FFC4 */ bnezl $at, .L7F041508 /* 076128 7F0415F8 8FA800D0 */ lw $t0, 0xd0($sp) .L7F0415FC: /* 07612C 7F0415FC 8FAE0094 */ lw $t6, 0x94($sp) /* 076130 7F041600 8FAF00D4 */ lw $t7, 0xd4($sp) /* 076134 7F041604 27A40088 */ addiu $a0, $sp, 0x88 /* 076138 7F041608 19C00066 */ blez $t6, .L7F0417A4 /* 07613C 7F04160C 000EC0C0 */ sll $t8, $t6, 3 /* 076140 7F041610 8FA800D0 */ lw $t0, 0xd0($sp) /* 076144 7F041614 25D90001 */ addiu $t9, $t6, 1 /* 076148 7F041618 01F81021 */ addu $v0, $t7, $t8 /* 07614C 7F04161C 0328001A */ div $zero, $t9, $t0 /* 076150 7F041620 4480A000 */ mtc1 $zero, $f20 /* 076154 7F041624 C4500000 */ lwc1 $f16, ($v0) /* 076158 7F041628 00004810 */ mfhi $t1 /* 07615C 7F04162C E7B4008C */ swc1 $f20, 0x8c($sp) /* 076160 7F041630 E7B00088 */ swc1 $f16, 0x88($sp) /* 076164 7F041634 C4520004 */ lwc1 $f18, 4($v0) /* 076168 7F041638 000950C0 */ sll $t2, $t1, 3 /* 07616C 7F04163C 01EA1821 */ addu $v1, $t7, $t2 /* 076170 7F041640 E7B20090 */ swc1 $f18, 0x90($sp) /* 076174 7F041644 C4640000 */ lwc1 $f4, ($v1) /* 076178 7F041648 E7B40080 */ swc1 $f20, 0x80($sp) /* 07617C 7F04164C 27AB006C */ addiu $t3, $sp, 0x6c /* 076180 7F041650 E7A4007C */ swc1 $f4, 0x7c($sp) /* 076184 7F041654 C4660004 */ lwc1 $f6, 4($v1) /* 076188 7F041658 15000002 */ bnez $t0, .L7F041664 /* 07618C 7F04165C 00000000 */ nop /* 076190 7F041660 0007000D */ break 7 .L7F041664: /* 076194 7F041664 2401FFFF */ li $at, -1 /* 076198 7F041668 15010004 */ bne $t0, $at, .L7F04167C /* 07619C 7F04166C 3C018000 */ li $at, 0x80000000 # -0.000000 /* 0761A0 7F041670 17210002 */ bne $t9, $at, .L7F04167C /* 0761A4 7F041674 00000000 */ nop /* 0761A8 7F041678 0006000D */ break 6 .L7F04167C: /* 0761AC 7F04167C AFAB0010 */ sw $t3, 0x10($sp) /* 0761B0 7F041680 27A5007C */ addiu $a1, $sp, 0x7c /* 0761B4 7F041684 02A03025 */ move $a2, $s5 /* 0761B8 7F041688 8FA700E4 */ lw $a3, 0xe4($sp) /* 0761BC 7F04168C 0FC0984C */ jal chrlvLineLineIntersection /* 0761C0 7F041690 E7A60084 */ swc1 $f6, 0x84($sp) /* 0761C4 7F041694 C7AA006C */ lwc1 $f10, 0x6c($sp) /* 0761C8 7F041698 C6A80000 */ lwc1 $f8, ($s5) /* 0761CC 7F04169C 8FA500E4 */ lw $a1, 0xe4($sp) /* 0761D0 7F0416A0 C7A60070 */ lwc1 $f6, 0x70($sp) /* 0761D4 7F0416A4 46085401 */ sub.s $f16, $f10, $f8 /* 0761D8 7F0416A8 C6AA0004 */ lwc1 $f10, 4($s5) /* 0761DC 7F0416AC C4B20000 */ lwc1 $f18, ($a1) /* 0761E0 7F0416B0 8FA300F0 */ lw $v1, 0xf0($sp) /* 0761E4 7F0416B4 460A3201 */ sub.s $f8, $f6, $f10 /* 0761E8 7F0416B8 46128102 */ mul.s $f4, $f16, $f18 /* 0761EC 7F0416BC C4B00004 */ lwc1 $f16, 4($a1) /* 0761F0 7F0416C0 C7AA0074 */ lwc1 $f10, 0x74($sp) /* 0761F4 7F0416C4 8FA200E8 */ lw $v0, 0xe8($sp) /* 0761F8 7F0416C8 46104482 */ mul.s $f18, $f8, $f16 /* 0761FC 7F0416CC C6A80008 */ lwc1 $f8, 8($s5) /* 076200 7F0416D0 8FA400EC */ lw $a0, 0xec($sp) /* 076204 7F0416D4 46085401 */ sub.s $f16, $f10, $f8 /* 076208 7F0416D8 C46A0000 */ lwc1 $f10, ($v1) /* 07620C 7F0416DC 46122180 */ add.s $f6, $f4, $f18 /* 076210 7F0416E0 C4A40008 */ lwc1 $f4, 8($a1) /* 076214 7F0416E4 46102482 */ mul.s $f18, $f4, $f16 /* 076218 7F0416E8 46069000 */ add.s $f0, $f18, $f6 /* 07621C 7F0416EC 460A003C */ c.lt.s $f0, $f10 /* 076220 7F0416F0 00000000 */ nop /* 076224 7F0416F4 4502002C */ bc1fl .L7F0417A8 /* 076228 7F0416F8 00001025 */ move $v0, $zero /* 07622C 7F0416FC E4600000 */ swc1 $f0, ($v1) /* 076230 7F041700 C7A8006C */ lwc1 $f8, 0x6c($sp) /* 076234 7F041704 E4480000 */ swc1 $f8, ($v0) /* 076238 7F041708 C7A40070 */ lwc1 $f4, 0x70($sp) /* 07623C 7F04170C E4440004 */ swc1 $f4, 4($v0) /* 076240 7F041710 C7B00074 */ lwc1 $f16, 0x74($sp) /* 076244 7F041714 E4500008 */ swc1 $f16, 8($v0) /* 076248 7F041718 C4B20000 */ lwc1 $f18, ($a1) /* 07624C 7F04171C E4940004 */ swc1 $f20, 4($a0) /* 076250 7F041720 46009187 */ neg.s $f6, $f18 /* 076254 7F041724 E4860000 */ swc1 $f6, ($a0) /* 076258 7F041728 C4840000 */ lwc1 $f4, ($a0) /* 07625C 7F04172C C4AA0008 */ lwc1 $f10, 8($a1) /* 076260 7F041730 24850004 */ addiu $a1, $a0, 4 /* 076264 7F041734 4604A032 */ c.eq.s $f20, $f4 /* 076268 7F041738 46005207 */ neg.s $f8, $f10 /* 07626C 7F04173C 45000007 */ bc1f .L7F04175C /* 076270 7F041740 E4880008 */ swc1 $f8, 8($a0) /* 076274 7F041744 C4900008 */ lwc1 $f16, 8($a0) /* 076278 7F041748 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07627C 7F04174C 4610A032 */ c.eq.s $f20, $f16 /* 076280 7F041750 00000000 */ nop /* 076284 7F041754 45030006 */ bc1tl .L7F041770 /* 076288 7F041758 44819000 */ mtc1 $at, $f18 .L7F04175C: /* 07628C 7F04175C 0C007DD4 */ jal guNormalize /* 076290 7F041760 24860008 */ addiu $a2, $a0, 8 /* 076294 7F041764 10000005 */ b .L7F04177C /* 076298 7F041768 8FAC00D8 */ lw $t4, 0xd8($sp) /* 07629C 7F04176C 44819000 */ mtc1 $at, $f18 .L7F041770: /* 0762A0 7F041770 00000000 */ nop /* 0762A4 7F041774 E4920008 */ swc1 $f18, 8($a0) /* 0762A8 7F041778 8FAC00D8 */ lw $t4, 0xd8($sp) .L7F04177C: /* 0762AC 7F04177C 3C018003 */ lui $at, %hi(D_80030B0C) /* 0762B0 7F041780 24020001 */ li $v0, 1 /* 0762B4 7F041784 AC2C0B0C */ sw $t4, %lo(D_80030B0C)($at) /* 0762B8 7F041788 3C018003 */ lui $at, %hi(bodypartshot) /* 0762BC 7F04178C AC200B10 */ sw $zero, %lo(bodypartshot)($at) /* 0762C0 7F041790 3C018007 */ lui $at, %hi(g_CurrentProjectileModel) /* 0762C4 7F041794 AC205B70 */ sw $zero, %lo(g_CurrentProjectileModel)($at) /* 0762C8 7F041798 3C018007 */ lui $at, %hi(dword_CODE_bss_80075B74) /* 0762CC 7F04179C 10000002 */ b .L7F0417A8 /* 0762D0 7F0417A0 AC205B74 */ sw $zero, %lo(dword_CODE_bss_80075B74)($at) .L7F0417A4: /* 0762D4 7F0417A4 00001025 */ move $v0, $zero .L7F0417A8: /* 0762D8 7F0417A8 8FBF0054 */ lw $ra, 0x54($sp) /* 0762DC 7F0417AC D7B40028 */ ldc1 $f20, 0x28($sp) /* 0762E0 7F0417B0 8FB00030 */ lw $s0, 0x30($sp) /* 0762E4 7F0417B4 8FB10034 */ lw $s1, 0x34($sp) /* 0762E8 7F0417B8 8FB20038 */ lw $s2, 0x38($sp) /* 0762EC 7F0417BC 8FB3003C */ lw $s3, 0x3c($sp) /* 0762F0 7F0417C0 8FB40040 */ lw $s4, 0x40($sp) /* 0762F4 7F0417C4 8FB50044 */ lw $s5, 0x44($sp) /* 0762F8 7F0417C8 8FB60048 */ lw $s6, 0x48($sp) /* 0762FC 7F0417CC 8FB7004C */ lw $s7, 0x4c($sp) /* 076300 7F0417D0 8FBE0050 */ lw $fp, 0x50($sp) /* 076304 7F0417D4 03E00008 */ jr $ra /* 076308 7F0417D8 27BD00D8 */ addiu $sp, $sp, 0xd8 ) #endif #ifdef NONMATCHING void sub_GAME_7F0417DC(void) { } #else GLOBAL_ASM( .text glabel sub_GAME_7F0417DC /* 07630C 7F0417DC 27BDFFA8 */ addiu $sp, $sp, -0x58 /* 076310 7F0417E0 AFB00028 */ sw $s0, 0x28($sp) /* 076314 7F0417E4 00808025 */ move $s0, $a0 /* 076318 7F0417E8 AFBF0034 */ sw $ra, 0x34($sp) /* 07631C 7F0417EC AFB20030 */ sw $s2, 0x30($sp) /* 076320 7F0417F0 AFB1002C */ sw $s1, 0x2c($sp) /* 076324 7F0417F4 AFA60060 */ sw $a2, 0x60($sp) /* 076328 7F0417F8 8C840014 */ lw $a0, 0x14($a0) /* 07632C 7F0417FC 00A08825 */ move $s1, $a1 /* 076330 7F041800 00E09025 */ move $s2, $a3 /* 076334 7F041804 0FC1B403 */ jal getinstsize /* 076338 7F041808 AFA40054 */ sw $a0, 0x54($sp) /* 07633C 7F04180C 8E020010 */ lw $v0, 0x10($s0) /* 076340 7F041810 44801000 */ mtc1 $zero, $f2 /* 076344 7F041814 8C4E001C */ lw $t6, 0x1c($v0) /* 076348 7F041818 55C00013 */ bnezl $t6, .L7F041868 /* 07634C 7F04181C 46000207 */ neg.s $f8, $f0 /* 076350 7F041820 C6040058 */ lwc1 $f4, 0x58($s0) /* 076354 7F041824 C6260000 */ lwc1 $f6, ($s1) /* 076358 7F041828 C608005C */ lwc1 $f8, 0x5c($s0) /* 07635C 7F04182C C62A0004 */ lwc1 $f10, 4($s1) /* 076360 7F041830 46062301 */ sub.s $f12, $f4, $f6 /* 076364 7F041834 C6460000 */ lwc1 $f6, ($s2) /* 076368 7F041838 C6240008 */ lwc1 $f4, 8($s1) /* 07636C 7F04183C 460A4381 */ sub.s $f14, $f8, $f10 /* 076370 7F041840 C6120060 */ lwc1 $f18, 0x60($s0) /* 076374 7F041844 46066202 */ mul.s $f8, $f12, $f6 /* 076378 7F041848 C64A0004 */ lwc1 $f10, 4($s2) /* 07637C 7F04184C 46049401 */ sub.s $f16, $f18, $f4 /* 076380 7F041850 C6460008 */ lwc1 $f6, 8($s2) /* 076384 7F041854 460A7482 */ mul.s $f18, $f14, $f10 /* 076388 7F041858 46124100 */ add.s $f4, $f8, $f18 /* 07638C 7F04185C 46103282 */ mul.s $f10, $f6, $f16 /* 076390 7F041860 46045080 */ add.s $f2, $f10, $f4 /* 076394 7F041864 46000207 */ neg.s $f8, $f0 .L7F041868: /* 076398 7F041868 C7B20068 */ lwc1 $f18, 0x68($sp) /* 07639C 7F04186C 4602403E */ c.le.s $f8, $f2 /* 0763A0 7F041870 00000000 */ nop /* 0763A4 7F041874 45020055 */ bc1fl .L7F0419CC /* 0763A8 7F041878 00001025 */ move $v0, $zero /* 0763AC 7F04187C 46009180 */ add.s $f6, $f18, $f0 /* 0763B0 7F041880 4606103E */ c.le.s $f2, $f6 /* 0763B4 7F041884 00000000 */ nop /* 0763B8 7F041888 45020050 */ bc1fl .L7F0419CC /* 0763BC 7F04188C 00001025 */ move $v0, $zero /* 0763C0 7F041890 904F0001 */ lbu $t7, 1($v0) /* 0763C4 7F041894 8FA5006C */ lw $a1, 0x6c($sp) /* 0763C8 7F041898 8FA60070 */ lw $a2, 0x70($sp) /* 0763CC 7F04189C 31F80002 */ andi $t8, $t7, 2 /* 0763D0 7F0418A0 1300002A */ beqz $t8, .L7F04194C /* 0763D4 7F0418A4 8FA40054 */ lw $a0, 0x54($sp) /* 0763D8 7F0418A8 8FB90078 */ lw $t9, 0x78($sp) /* 0763DC 7F0418AC 8FA90080 */ lw $t1, 0x80($sp) /* 0763E0 7F0418B0 8FAA0084 */ lw $t2, 0x84($sp) /* 0763E4 7F0418B4 02002025 */ move $a0, $s0 /* 0763E8 7F0418B8 8FA70074 */ lw $a3, 0x74($sp) /* 0763EC 7F0418BC AFB90010 */ sw $t9, 0x10($sp) /* 0763F0 7F0418C0 AFA90014 */ sw $t1, 0x14($sp) /* 0763F4 7F0418C4 0FC10458 */ jal sub_GAME_7F041160 /* 0763F8 7F0418C8 AFAA0018 */ sw $t2, 0x18($sp) /* 0763FC 7F0418CC 1040003E */ beqz $v0, .L7F0419C8 /* 076400 7F0418D0 8FA30074 */ lw $v1, 0x74($sp) /* 076404 7F0418D4 C46A0000 */ lwc1 $f10, ($v1) /* 076408 7F0418D8 C6240000 */ lwc1 $f4, ($s1) /* 07640C 7F0418DC C4680004 */ lwc1 $f8, 4($v1) /* 076410 7F0418E0 C6320004 */ lwc1 $f18, 4($s1) /* 076414 7F0418E4 46045301 */ sub.s $f12, $f10, $f4 /* 076418 7F0418E8 C6440000 */ lwc1 $f4, ($s2) /* 07641C 7F0418EC C62A0008 */ lwc1 $f10, 8($s1) /* 076420 7F0418F0 46124381 */ sub.s $f14, $f8, $f18 /* 076424 7F0418F4 C4660008 */ lwc1 $f6, 8($v1) /* 076428 7F0418F8 46046202 */ mul.s $f8, $f12, $f4 /* 07642C 7F0418FC C6520004 */ lwc1 $f18, 4($s2) /* 076430 7F041900 460A3401 */ sub.s $f16, $f6, $f10 /* 076434 7F041904 C6440008 */ lwc1 $f4, 8($s2) /* 076438 7F041908 46127182 */ mul.s $f6, $f14, $f18 /* 07643C 7F04190C 46064280 */ add.s $f10, $f8, $f6 /* 076440 7F041910 46102482 */ mul.s $f18, $f4, $f16 /* 076444 7F041914 44804000 */ mtc1 $zero, $f8 /* 076448 7F041918 C7A60068 */ lwc1 $f6, 0x68($sp) /* 07644C 7F04191C 460A9080 */ add.s $f2, $f18, $f10 /* 076450 7F041920 4602403E */ c.le.s $f8, $f2 /* 076454 7F041924 00000000 */ nop /* 076458 7F041928 45020028 */ bc1fl .L7F0419CC /* 07645C 7F04192C 00001025 */ move $v0, $zero /* 076460 7F041930 4606103E */ c.le.s $f2, $f6 /* 076464 7F041934 8FA8007C */ lw $t0, 0x7c($sp) /* 076468 7F041938 24020001 */ li $v0, 1 /* 07646C 7F04193C 45020023 */ bc1fl .L7F0419CC /* 076470 7F041940 00001025 */ move $v0, $zero /* 076474 7F041944 10000021 */ b .L7F0419CC /* 076478 7F041948 E5020000 */ swc1 $f2, ($t0) .L7F04194C: /* 07647C 7F04194C 0FC1B403 */ jal getinstsize /* 076480 7F041950 AFA2003C */ sw $v0, 0x3c($sp) /* 076484 7F041954 44070000 */ mfc1 $a3, $f0 /* 076488 7F041958 02202025 */ move $a0, $s1 /* 07648C 7F04195C 02402825 */ move $a1, $s2 /* 076490 7F041960 0FC1041D */ jal sub_GAME_7F041074 /* 076494 7F041964 26060058 */ addiu $a2, $s0, 0x58 /* 076498 7F041968 10400017 */ beqz $v0, .L7F0419C8 /* 07649C 7F04196C 8FA30074 */ lw $v1, 0x74($sp) /* 0764A0 7F041970 8FA8007C */ lw $t0, 0x7c($sp) /* 0764A4 7F041974 C7A40068 */ lwc1 $f4, 0x68($sp) /* 0764A8 7F041978 02202825 */ move $a1, $s1 /* 0764AC 7F04197C 02403825 */ move $a3, $s2 /* 0764B0 7F041980 E5040000 */ swc1 $f4, ($t0) /* 0764B4 7F041984 8FAB0078 */ lw $t3, 0x78($sp) /* 0764B8 7F041988 AFA30010 */ sw $v1, 0x10($sp) /* 0764BC 7F04198C 8FA60060 */ lw $a2, 0x60($sp) /* 0764C0 7F041990 8FA4003C */ lw $a0, 0x3c($sp) /* 0764C4 7F041994 AFA80018 */ sw $t0, 0x18($sp) /* 0764C8 7F041998 0FC10500 */ jal sub_GAME_7F041400 /* 0764CC 7F04199C AFAB0014 */ sw $t3, 0x14($sp) /* 0764D0 7F0419A0 10400009 */ beqz $v0, .L7F0419C8 /* 0764D4 7F0419A4 8FAC0054 */ lw $t4, 0x54($sp) /* 0764D8 7F0419A8 8FAD0080 */ lw $t5, 0x80($sp) /* 0764DC 7F0419AC 24020001 */ li $v0, 1 /* 0764E0 7F0419B0 ADAC0000 */ sw $t4, ($t5) /* 0764E4 7F0419B4 8D8E0008 */ lw $t6, 8($t4) /* 0764E8 7F0419B8 8FB80084 */ lw $t8, 0x84($sp) /* 0764EC 7F0419BC 8DCF0000 */ lw $t7, ($t6) /* 0764F0 7F0419C0 10000002 */ b .L7F0419CC /* 0764F4 7F0419C4 AF0F0000 */ sw $t7, ($t8) .L7F0419C8: /* 0764F8 7F0419C8 00001025 */ move $v0, $zero .L7F0419CC: /* 0764FC 7F0419CC 8FBF0034 */ lw $ra, 0x34($sp) /* 076500 7F0419D0 8FB00028 */ lw $s0, 0x28($sp) /* 076504 7F0419D4 8FB1002C */ lw $s1, 0x2c($sp) /* 076508 7F0419D8 8FB20030 */ lw $s2, 0x30($sp) /* 07650C 7F0419DC 03E00008 */ jr $ra /* 076510 7F0419E0 27BD0058 */ addiu $sp, $sp, 0x58 ) #endif #ifdef NONMATCHING // PD: func0f06b610 bool sub_GAME_7F0419E4(ObjectRecord *obj, coord3d *arg1, coord3d *arg2, coord3d *arg3, f32 arg4, coord3d *arg5, coord3d *arg6, coord3d *arg7, coord3d *arg8, f32 *arg9) { } #else bool sub_GAME_7F0419E4(ObjectRecord *obj, coord3d *arg1, coord3d *arg2, coord3d *arg3, f32 arg4, coord3d *arg5, coord3d *arg6, coord3d *arg7, coord3d *arg8, f32 *arg9); GLOBAL_ASM( .text glabel sub_GAME_7F0419E4 /* 076514 7F0419E4 27BDFF68 */ addiu $sp, $sp, -0x98 /* 076518 7F0419E8 AFBF0064 */ sw $ra, 0x64($sp) /* 07651C 7F0419EC AFBE0060 */ sw $fp, 0x60($sp) /* 076520 7F0419F0 AFB7005C */ sw $s7, 0x5c($sp) /* 076524 7F0419F4 AFB60058 */ sw $s6, 0x58($sp) /* 076528 7F0419F8 AFB50054 */ sw $s5, 0x54($sp) /* 07652C 7F0419FC AFB40050 */ sw $s4, 0x50($sp) /* 076530 7F041A00 AFB3004C */ sw $s3, 0x4c($sp) /* 076534 7F041A04 AFB20048 */ sw $s2, 0x48($sp) /* 076538 7F041A08 AFB10044 */ sw $s1, 0x44($sp) /* 07653C 7F041A0C AFB00040 */ sw $s0, 0x40($sp) /* 076540 7F041A10 F7B40038 */ sdc1 $f20, 0x38($sp) /* 076544 7F041A14 8C830010 */ lw $v1, 0x10($a0) /* 076548 7F041A18 C7B400A8 */ lwc1 $f20, 0xa8($sp) /* 07654C 7F041A1C 8FB700AC */ lw $s7, 0xac($sp) /* 076550 7F041A20 8FBE00B0 */ lw $fp, 0xb0($sp) /* 076554 7F041A24 27AE008C */ addiu $t6, $sp, 0x8c /* 076558 7F041A28 27AF0080 */ addiu $t7, $sp, 0x80 /* 07655C 7F041A2C 27B8007C */ addiu $t8, $sp, 0x7c /* 076560 7F041A30 27B90078 */ addiu $t9, $sp, 0x78 /* 076564 7F041A34 27A80074 */ addiu $t0, $sp, 0x74 /* 076568 7F041A38 00808025 */ move $s0, $a0 /* 07656C 7F041A3C 00A09825 */ move $s3, $a1 /* 076570 7F041A40 00C0A025 */ move $s4, $a2 /* 076574 7F041A44 00E0A825 */ move $s5, $a3 /* 076578 7F041A48 0000B025 */ move $s6, $zero /* 07657C 7F041A4C AFA8002C */ sw $t0, 0x2c($sp) /* 076580 7F041A50 AFB90028 */ sw $t9, 0x28($sp) /* 076584 7F041A54 AFB80024 */ sw $t8, 0x24($sp) /* 076588 7F041A58 AFAF0020 */ sw $t7, 0x20($sp) /* 07658C 7F041A5C AFAE001C */ sw $t6, 0x1c($sp) /* 076590 7F041A60 AFA3006C */ sw $v1, 0x6c($sp) /* 076594 7F041A64 E7B40010 */ swc1 $f20, 0x10($sp) /* 076598 7F041A68 AFB70014 */ sw $s7, 0x14($sp) /* 07659C 7F041A6C 0FC105F7 */ jal sub_GAME_7F0417DC /* 0765A0 7F041A70 AFBE0018 */ sw $fp, 0x18($sp) /* 0765A4 7F041A74 10400024 */ beqz $v0, .L7F041B08 /* 0765A8 7F041A78 8FA3006C */ lw $v1, 0x6c($sp) /* 0765AC 7F041A7C 8FA900BC */ lw $t1, 0xbc($sp) /* 0765B0 7F041A80 C7A4007C */ lwc1 $f4, 0x7c($sp) /* 0765B4 7F041A84 8FB100B4 */ lw $s1, 0xb4($sp) /* 0765B8 7F041A88 C5260000 */ lwc1 $f6, ($t1) /* 0765BC 7F041A8C 8FB200B8 */ lw $s2, 0xb8($sp) /* 0765C0 7F041A90 4606203C */ c.lt.s $f4, $f6 /* 0765C4 7F041A94 00000000 */ nop /* 0765C8 7F041A98 4502001C */ bc1fl .L7F041B0C /* 0765CC 7F041A9C 906E0001 */ lbu $t6, 1($v1) /* 0765D0 7F041AA0 E5240000 */ swc1 $f4, ($t1) /* 0765D4 7F041AA4 C7A8008C */ lwc1 $f8, 0x8c($sp) /* 0765D8 7F041AA8 3C018003 */ lui $at, %hi(D_80030B0C) /* 0765DC 7F041AAC 240BFFFF */ li $t3, -1 /* 0765E0 7F041AB0 E6280000 */ swc1 $f8, ($s1) /* 0765E4 7F041AB4 C7AA0090 */ lwc1 $f10, 0x90($sp) /* 0765E8 7F041AB8 24160001 */ li $s6, 1 /* 0765EC 7F041ABC E62A0004 */ swc1 $f10, 4($s1) /* 0765F0 7F041AC0 C7B00094 */ lwc1 $f16, 0x94($sp) /* 0765F4 7F041AC4 E6300008 */ swc1 $f16, 8($s1) /* 0765F8 7F041AC8 C7B20080 */ lwc1 $f18, 0x80($sp) /* 0765FC 7F041ACC E6520000 */ swc1 $f18, ($s2) /* 076600 7F041AD0 C7A60084 */ lwc1 $f6, 0x84($sp) /* 076604 7F041AD4 E6460004 */ swc1 $f6, 4($s2) /* 076608 7F041AD8 C7A40088 */ lwc1 $f4, 0x88($sp) /* 07660C 7F041ADC E6440008 */ swc1 $f4, 8($s2) /* 076610 7F041AE0 8E0A0010 */ lw $t2, 0x10($s0) /* 076614 7F041AE4 8FAC0078 */ lw $t4, 0x78($sp) /* 076618 7F041AE8 8FAD0074 */ lw $t5, 0x74($sp) /* 07661C 7F041AEC AC2A0B0C */ sw $t2, %lo(D_80030B0C)($at) /* 076620 7F041AF0 3C018003 */ lui $at, %hi(bodypartshot) /* 076624 7F041AF4 AC2B0B10 */ sw $t3, %lo(bodypartshot)($at) /* 076628 7F041AF8 3C018007 */ lui $at, %hi(g_CurrentProjectileModel) /* 07662C 7F041AFC AC2C5B70 */ sw $t4, %lo(g_CurrentProjectileModel)($at) /* 076630 7F041B00 3C018007 */ lui $at, %hi(dword_CODE_bss_80075B74) /* 076634 7F041B04 AC2D5B74 */ sw $t5, %lo(dword_CODE_bss_80075B74)($at) .L7F041B08: /* 076638 7F041B08 906E0001 */ lbu $t6, 1($v1) .L7F041B0C: /* 07663C 7F041B0C 8FB100B4 */ lw $s1, 0xb4($sp) /* 076640 7F041B10 8FB200B8 */ lw $s2, 0xb8($sp) /* 076644 7F041B14 31CF0002 */ andi $t7, $t6, 2 /* 076648 7F041B18 51E0001A */ beql $t7, $zero, .L7F041B84 /* 07664C 7F041B1C 8FBF0064 */ lw $ra, 0x64($sp) /* 076650 7F041B20 8C700020 */ lw $s0, 0x20($v1) /* 076654 7F041B24 52000017 */ beql $s0, $zero, .L7F041B84 /* 076658 7F041B28 8FBF0064 */ lw $ra, 0x64($sp) /* 07665C 7F041B2C 92180001 */ lbu $t8, 1($s0) .L7F041B30: /* 076660 7F041B30 02602825 */ move $a1, $s3 /* 076664 7F041B34 02803025 */ move $a2, $s4 /* 076668 7F041B38 33190002 */ andi $t9, $t8, 2 /* 07666C 7F041B3C 1320000D */ beqz $t9, .L7F041B74 /* 076670 7F041B40 02A03825 */ move $a3, $s5 /* 076674 7F041B44 8E040004 */ lw $a0, 4($s0) /* 076678 7F041B48 8FA800BC */ lw $t0, 0xbc($sp) /* 07667C 7F041B4C AFB20020 */ sw $s2, 0x20($sp) /* 076680 7F041B50 AFB1001C */ sw $s1, 0x1c($sp) /* 076684 7F041B54 AFBE0018 */ sw $fp, 0x18($sp) /* 076688 7F041B58 AFB70014 */ sw $s7, 0x14($sp) /* 07668C 7F041B5C E7B40010 */ swc1 $f20, 0x10($sp) /* 076690 7F041B60 0FC10679 */ jal sub_GAME_7F0419E4 /* 076694 7F041B64 AFA80024 */ sw $t0, 0x24($sp) /* 076698 7F041B68 50400003 */ beql $v0, $zero, .L7F041B78 /* 07669C 7F041B6C 8E100024 */ lw $s0, 0x24($s0) /* 0766A0 7F041B70 24160001 */ li $s6, 1 .L7F041B74: /* 0766A4 7F041B74 8E100024 */ lw $s0, 0x24($s0) .L7F041B78: /* 0766A8 7F041B78 5600FFED */ bnezl $s0, .L7F041B30 /* 0766AC 7F041B7C 92180001 */ lbu $t8, 1($s0) /* 0766B0 7F041B80 8FBF0064 */ lw $ra, 0x64($sp) .L7F041B84: /* 0766B4 7F041B84 02C01025 */ move $v0, $s6 /* 0766B8 7F041B88 8FB60058 */ lw $s6, 0x58($sp) /* 0766BC 7F041B8C D7B40038 */ ldc1 $f20, 0x38($sp) /* 0766C0 7F041B90 8FB00040 */ lw $s0, 0x40($sp) /* 0766C4 7F041B94 8FB10044 */ lw $s1, 0x44($sp) /* 0766C8 7F041B98 8FB20048 */ lw $s2, 0x48($sp) /* 0766CC 7F041B9C 8FB3004C */ lw $s3, 0x4c($sp) /* 0766D0 7F041BA0 8FB40050 */ lw $s4, 0x50($sp) /* 0766D4 7F041BA4 8FB50054 */ lw $s5, 0x54($sp) /* 0766D8 7F041BA8 8FB7005C */ lw $s7, 0x5c($sp) /* 0766DC 7F041BAC 8FBE0060 */ lw $fp, 0x60($sp) /* 0766E0 7F041BB0 03E00008 */ jr $ra /* 0766E4 7F041BB4 27BD0098 */ addiu $sp, $sp, 0x98 ) #endif #ifdef NONMATCHING // PD: func0f06c28c bool sub_GAME_7F041BB8(ChrRecord *chr, coord3d *arg1, coord3d *arg2, f32 arg3, coord3d *arg4, coord3d *arg5, coord3d *arg6, coord3d *arg7, f32 *arg8) { } #else bool sub_GAME_7F041BB8(ChrRecord *chr, coord3d *arg1, coord3d *arg2, f32 arg3, coord3d *arg4, coord3d *arg5, coord3d *arg6, coord3d *arg7, f32 *arg8); GLOBAL_ASM( .text glabel sub_GAME_7F041BB8 /* 0766E8 7F041BB8 27BDFF98 */ addiu $sp, $sp, -0x68 /* 0766EC 7F041BBC AFA70074 */ sw $a3, 0x74($sp) /* 0766F0 7F041BC0 AFBF002C */ sw $ra, 0x2c($sp) /* 0766F4 7F041BC4 AFB20028 */ sw $s2, 0x28($sp) /* 0766F8 7F041BC8 AFB10024 */ sw $s1, 0x24($sp) /* 0766FC 7F041BCC AFB00020 */ sw $s0, 0x20($sp) /* 076700 7F041BD0 AFA40068 */ sw $a0, 0x68($sp) /* 076704 7F041BD4 00803825 */ move $a3, $a0 /* 076708 7F041BD8 8C920018 */ lw $s2, 0x18($a0) /* 07670C 7F041BDC 8C84001C */ lw $a0, 0x1c($a0) /* 076710 7F041BE0 00C08025 */ move $s0, $a2 /* 076714 7F041BE4 00A08825 */ move $s1, $a1 /* 076718 7F041BE8 0FC1B403 */ jal getinstsize /* 07671C 7F041BEC AFA70068 */ sw $a3, 0x68($sp) /* 076720 7F041BF0 C6440008 */ lwc1 $f4, 8($s2) /* 076724 7F041BF4 C6260000 */ lwc1 $f6, ($s1) /* 076728 7F041BF8 C648000C */ lwc1 $f8, 0xc($s2) /* 07672C 7F041BFC C62A0004 */ lwc1 $f10, 4($s1) /* 076730 7F041C00 46062081 */ sub.s $f2, $f4, $f6 /* 076734 7F041C04 C6060000 */ lwc1 $f6, ($s0) /* 076738 7F041C08 C6240008 */ lwc1 $f4, 8($s1) /* 07673C 7F041C0C 460A4301 */ sub.s $f12, $f8, $f10 /* 076740 7F041C10 C6520010 */ lwc1 $f18, 0x10($s2) /* 076744 7F041C14 46061202 */ mul.s $f8, $f2, $f6 /* 076748 7F041C18 C60A0004 */ lwc1 $f10, 4($s0) /* 07674C 7F041C1C 46049381 */ sub.s $f14, $f18, $f4 /* 076750 7F041C20 C6060008 */ lwc1 $f6, 8($s0) /* 076754 7F041C24 460A6482 */ mul.s $f18, $f12, $f10 /* 076758 7F041C28 46124100 */ add.s $f4, $f8, $f18 /* 07675C 7F041C2C 460E3282 */ mul.s $f10, $f6, $f14 /* 076760 7F041C30 C7B20074 */ lwc1 $f18, 0x74($sp) /* 076764 7F041C34 46000207 */ neg.s $f8, $f0 /* 076768 7F041C38 46045400 */ add.s $f16, $f10, $f4 /* 07676C 7F041C3C 4610403E */ c.le.s $f8, $f16 /* 076770 7F041C40 00000000 */ nop /* 076774 7F041C44 4502006B */ bc1fl .L7F041DF4 /* 076778 7F041C48 00001025 */ move $v0, $zero /* 07677C 7F041C4C 46009180 */ add.s $f6, $f18, $f0 /* 076780 7F041C50 4606803E */ c.le.s $f16, $f6 /* 076784 7F041C54 00000000 */ nop /* 076788 7F041C58 45020066 */ bc1fl .L7F041DF4 /* 07678C 7F041C5C 00001025 */ move $v0, $zero /* 076790 7F041C60 924E0001 */ lbu $t6, 1($s2) /* 076794 7F041C64 8FB80068 */ lw $t8, 0x68($sp) /* 076798 7F041C68 27A40038 */ addiu $a0, $sp, 0x38 /* 07679C 7F041C6C 31CF0002 */ andi $t7, $t6, 2 /* 0767A0 7F041C70 11E0005F */ beqz $t7, .L7F041DF0 /* 0767A4 7F041C74 27A70040 */ addiu $a3, $sp, 0x40 /* 0767A8 7F041C78 8F190020 */ lw $t9, 0x20($t8) /* 0767AC 7F041C7C 27A8003C */ addiu $t0, $sp, 0x3c /* 0767B0 7F041C80 AFA80010 */ sw $t0, 0x10($sp) /* 0767B4 7F041C84 8FA50078 */ lw $a1, 0x78($sp) /* 0767B8 7F041C88 8FA6007C */ lw $a2, 0x7c($sp) /* 0767BC 7F041C8C 0FC1B004 */ jal sub_GAME_7F06C010 /* 0767C0 7F041C90 AFB90038 */ sw $t9, 0x38($sp) /* 0767C4 7F041C94 18400056 */ blez $v0, .L7F041DF0 /* 0767C8 7F041C98 AFA20044 */ sw $v0, 0x44($sp) /* 0767CC 7F041C9C 8FA40040 */ lw $a0, 0x40($sp) /* 0767D0 7F041CA0 8FA5003C */ lw $a1, 0x3c($sp) /* 0767D4 7F041CA4 0FC1B198 */ jal modelFindNodeMtx /* 0767D8 7F041CA8 00003025 */ move $a2, $zero /* 0767DC 7F041CAC 8FA30078 */ lw $v1, 0x78($sp) /* 0767E0 7F041CB0 C44A0030 */ lwc1 $f10, 0x30($v0) /* 0767E4 7F041CB4 8FA7007C */ lw $a3, 0x7c($sp) /* 0767E8 7F041CB8 C4640000 */ lwc1 $f4, ($v1) /* 0767EC 7F041CBC C4480034 */ lwc1 $f8, 0x34($v0) /* 0767F0 7F041CC0 C4720004 */ lwc1 $f18, 4($v1) /* 0767F4 7F041CC4 46045081 */ sub.s $f2, $f10, $f4 /* 0767F8 7F041CC8 C4E40000 */ lwc1 $f4, ($a3) /* 0767FC 7F041CCC C4460038 */ lwc1 $f6, 0x38($v0) /* 076800 7F041CD0 46124301 */ sub.s $f12, $f8, $f18 /* 076804 7F041CD4 C46A0008 */ lwc1 $f10, 8($v1) /* 076808 7F041CD8 46041202 */ mul.s $f8, $f2, $f4 /* 07680C 7F041CDC C4F20004 */ lwc1 $f18, 4($a3) /* 076810 7F041CE0 460A3381 */ sub.s $f14, $f6, $f10 /* 076814 7F041CE4 C4E40008 */ lwc1 $f4, 8($a3) /* 076818 7F041CE8 46126182 */ mul.s $f6, $f12, $f18 /* 07681C 7F041CEC 8FA50088 */ lw $a1, 0x88($sp) /* 076820 7F041CF0 8FA20080 */ lw $v0, 0x80($sp) /* 076824 7F041CF4 460E2482 */ mul.s $f18, $f4, $f14 /* 076828 7F041CF8 8FA40084 */ lw $a0, 0x84($sp) /* 07682C 7F041CFC 46064280 */ add.s $f10, $f8, $f6 /* 076830 7F041D00 C4A80000 */ lwc1 $f8, ($a1) /* 076834 7F041D04 460A9000 */ add.s $f0, $f18, $f10 /* 076838 7F041D08 4608003C */ c.lt.s $f0, $f8 /* 07683C 7F041D0C 00000000 */ nop /* 076840 7F041D10 45020038 */ bc1fl .L7F041DF4 /* 076844 7F041D14 00001025 */ move $v0, $zero /* 076848 7F041D18 E4A00000 */ swc1 $f0, ($a1) /* 07684C 7F041D1C C6060000 */ lwc1 $f6, ($s0) /* 076850 7F041D20 C6320000 */ lwc1 $f18, ($s1) /* 076854 7F041D24 44801000 */ mtc1 $zero, $f2 /* 076858 7F041D28 46003102 */ mul.s $f4, $f6, $f0 /* 07685C 7F041D2C 24850004 */ addiu $a1, $a0, 4 /* 076860 7F041D30 46122280 */ add.s $f10, $f4, $f18 /* 076864 7F041D34 E44A0000 */ swc1 $f10, ($v0) /* 076868 7F041D38 C6080004 */ lwc1 $f8, 4($s0) /* 07686C 7F041D3C C6240004 */ lwc1 $f4, 4($s1) /* 076870 7F041D40 46004182 */ mul.s $f6, $f8, $f0 /* 076874 7F041D44 46043480 */ add.s $f18, $f6, $f4 /* 076878 7F041D48 E4520004 */ swc1 $f18, 4($v0) /* 07687C 7F041D4C C60A0008 */ lwc1 $f10, 8($s0) /* 076880 7F041D50 C6260008 */ lwc1 $f6, 8($s1) /* 076884 7F041D54 46005202 */ mul.s $f8, $f10, $f0 /* 076888 7F041D58 46064100 */ add.s $f4, $f8, $f6 /* 07688C 7F041D5C E4440008 */ swc1 $f4, 8($v0) /* 076890 7F041D60 C6120000 */ lwc1 $f18, ($s0) /* 076894 7F041D64 E4820004 */ swc1 $f2, 4($a0) /* 076898 7F041D68 46009287 */ neg.s $f10, $f18 /* 07689C 7F041D6C E48A0000 */ swc1 $f10, ($a0) /* 0768A0 7F041D70 C4840000 */ lwc1 $f4, ($a0) /* 0768A4 7F041D74 C6080008 */ lwc1 $f8, 8($s0) /* 0768A8 7F041D78 46041032 */ c.eq.s $f2, $f4 /* 0768AC 7F041D7C 46004187 */ neg.s $f6, $f8 /* 0768B0 7F041D80 45000007 */ bc1f .L7F041DA0 /* 0768B4 7F041D84 E4860008 */ swc1 $f6, 8($a0) /* 0768B8 7F041D88 C4920008 */ lwc1 $f18, 8($a0) /* 0768BC 7F041D8C 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 0768C0 7F041D90 46121032 */ c.eq.s $f2, $f18 /* 0768C4 7F041D94 00000000 */ nop /* 0768C8 7F041D98 45030006 */ bc1tl .L7F041DB4 /* 0768CC 7F041D9C 44815000 */ mtc1 $at, $f10 .L7F041DA0: /* 0768D0 7F041DA0 0C007DD4 */ jal guNormalize /* 0768D4 7F041DA4 24860008 */ addiu $a2, $a0, 8 /* 0768D8 7F041DA8 10000005 */ b .L7F041DC0 /* 0768DC 7F041DAC 8FA90044 */ lw $t1, 0x44($sp) /* 0768E0 7F041DB0 44815000 */ mtc1 $at, $f10 .L7F041DB4: /* 0768E4 7F041DB4 00000000 */ nop /* 0768E8 7F041DB8 E48A0008 */ swc1 $f10, 8($a0) /* 0768EC 7F041DBC 8FA90044 */ lw $t1, 0x44($sp) .L7F041DC0: /* 0768F0 7F041DC0 3C018003 */ lui $at, %hi(D_80030B0C) /* 0768F4 7F041DC4 AC320B0C */ sw $s2, %lo(D_80030B0C)($at) /* 0768F8 7F041DC8 8FAA0040 */ lw $t2, 0x40($sp) /* 0768FC 7F041DCC 3C018003 */ lui $at, %hi(bodypartshot) /* 076900 7F041DD0 AC290B10 */ sw $t1, %lo(bodypartshot)($at) /* 076904 7F041DD4 3C018007 */ lui $at, %hi(g_CurrentProjectileModel) /* 076908 7F041DD8 8FAB003C */ lw $t3, 0x3c($sp) /* 07690C 7F041DDC AC2A5B70 */ sw $t2, %lo(g_CurrentProjectileModel)($at) /* 076910 7F041DE0 3C018007 */ lui $at, %hi(dword_CODE_bss_80075B74) /* 076914 7F041DE4 24020001 */ li $v0, 1 /* 076918 7F041DE8 10000002 */ b .L7F041DF4 /* 07691C 7F041DEC AC2B5B74 */ sw $t3, %lo(dword_CODE_bss_80075B74)($at) .L7F041DF0: /* 076920 7F041DF0 00001025 */ move $v0, $zero .L7F041DF4: /* 076924 7F041DF4 8FBF002C */ lw $ra, 0x2c($sp) /* 076928 7F041DF8 8FB00020 */ lw $s0, 0x20($sp) /* 07692C 7F041DFC 8FB10024 */ lw $s1, 0x24($sp) /* 076930 7F041E00 8FB20028 */ lw $s2, 0x28($sp) /* 076934 7F041E04 03E00008 */ jr $ra /* 076938 7F041E08 27BD0068 */ addiu $sp, $sp, 0x68 ) #endif bool projectileFindCollidingProp(PropRecord *prop, coord3d *pos1, coord3d *pos2, u32 cdtypes, coord3d *arg4, coord3d *arg5, s32 *rooms) { bool result; f32 dist; s16 *propnumptr; f32 spa8; bool spa4; coord3d sp98; ChrRecord *chr; coord3d sp88; coord3d sp7c; PropRecord *iterprop; PropRecord *playerstank; ObjectRecord *obj; s32 unused; result = FALSE; spa4 = FALSE; playerstank = get_ptr_for_players_tank(); sp98.x = pos2->x - pos1->x; sp98.y = pos2->y - pos1->y; sp98.z = pos2->z - pos1->z; dist = sqrtf(sp98.f[0] * sp98.f[0] + sp98.f[1] * sp98.f[1] + sp98.f[2] * sp98.f[2]); if (dist == 0.0f) { return FALSE; } sp98.x *= (1.0f / dist); sp98.y *= (1.0f / dist); sp98.z *= (1.0f / dist); sp88.x = pos1->x; sp88.y = pos1->y; sp88.z = pos1->z; mtx4TransformVecInPlace(camGetWorldToScreenMtxf(), &sp88); sp7c.x = sp98.x; sp7c.y = sp98.y; sp7c.z = sp98.z; mtx4RotateVecInPlace(camGetWorldToScreenMtxf(), sp7c.f); spa8 = dist; if (cdtypes != 0) { roomGetProps(rooms); for (propnumptr = ptr_list_object_lookup_indices; *propnumptr >= 0; propnumptr++) { iterprop = &pos_data_entry[*propnumptr]; if (iterprop != prop) { if (iterprop->type == PROP_TYPE_OBJ || iterprop->type == PROP_TYPE_WEAPON || iterprop->type == PROP_TYPE_DOOR) { obj = iterprop->obj; if ((obj->runtime_bitflags & RUNTIMEBITFLAG_ISRETICK) == 0 && (obj->flags2 & PROPFLAG2_THROWTHROUGH) == 0) { if (iterprop->type == PROP_TYPE_DOOR) { if ((cdtypes & CDTYPE_DOORS) == 0 && (propDoorGetCdTypes(iterprop) & cdtypes) == 0) { continue; } } else { if ((cdtypes & CDTYPE_OBJS) == 0) { continue; } } if ((iterprop != playerstank) || !(obj->state & PROPSTATE_20)) { if (sub_GAME_7F0419E4(obj, pos1, pos2, &sp98, dist, &sp88, &sp7c, arg4, arg5, &spa8)) { spa4 = TRUE; } } } } else if (iterprop->type == PROP_TYPE_CHR || (iterprop->type == PROP_TYPE_VIEWER && iterprop->chr)) { chr = iterprop->chr; if (iterprop->type == PROP_TYPE_VIEWER) { if (!g_playerPointers[getPlayerPointerIndex(iterprop)]->field_AC || (cdtypes & CDTYPE_PLAYERS) == 0) { continue; } } else if (iterprop->type == PROP_TYPE_CHR) { if ((chr->hidden & CHRHIDDEN_MOVING) || (cdtypes & CDTYPE_CHRS) == 0) { continue; } } if (sub_GAME_7F041BB8(chr, pos1, &sp98, dist, &sp88, &sp7c, arg4, arg5, &spa8)) { spa4 = TRUE; } } else if (iterprop->type == PROP_TYPE_VIEWER && g_playerPointers[getPlayerPointerIndex(iterprop)]->field_AC) { if (sub_GAME_7F041400(iterprop, pos1, pos2, &sp98, arg4, arg5, &spa8)) { spa4 = TRUE; } } } } } if (spa4) { result = TRUE; flt_CODE_bss_80075B78.x = sp98.x; flt_CODE_bss_80075B78.y = sp98.y; flt_CODE_bss_80075B78.z = sp98.z; flt_CODE_bss_80075B88.x = sp7c.x; flt_CODE_bss_80075B88.y = sp7c.y; flt_CODE_bss_80075B88.z = sp7c.z; } return result; } #ifdef NONMATCHING void handles_projectile_motion(void) { //this function contains // osSyncPrintf("stanLineObjGfx: %d rooms is more than %d\n",arg0+0x58,20); } #else GLOBAL_ASM( .late_rodata glabel D_80052A58 .word 0x3dcccccd /*0.1*/ .text glabel handles_projectile_motion /* 076D7C 7F04224C 27BDFD50 */ addiu $sp, $sp, -0x2b0 /* 076D80 7F042250 AFBF003C */ sw $ra, 0x3c($sp) /* 076D84 7F042254 AFB30038 */ sw $s3, 0x38($sp) /* 076D88 7F042258 AFB20034 */ sw $s2, 0x34($sp) /* 076D8C 7F04225C AFB10030 */ sw $s1, 0x30($sp) /* 076D90 7F042260 AFB0002C */ sw $s0, 0x2c($sp) /* 076D94 7F042264 F7B40020 */ sdc1 $f20, 0x20($sp) /* 076D98 7F042268 8C820010 */ lw $v0, 0x10($a0) /* 076D9C 7F04226C 240F0001 */ li $t7, 1 /* 076DA0 7F042270 3C018003 */ lui $at, %hi(D_80030B0C) /* 076DA4 7F042274 8C4E0014 */ lw $t6, 0x14($v0) /* 076DA8 7F042278 AFAF02A4 */ sw $t7, 0x2a4($sp) /* 076DAC 7F04227C AC200B0C */ sw $zero, %lo(D_80030B0C)($at) /* 076DB0 7F042280 AFAE02A8 */ sw $t6, 0x2a8($sp) /* 076DB4 7F042284 C4840058 */ lwc1 $f4, 0x58($a0) /* 076DB8 7F042288 C4A00000 */ lwc1 $f0, ($a1) /* 076DBC 7F04228C 00E08025 */ move $s0, $a3 /* 076DC0 7F042290 00A08825 */ move $s1, $a1 /* 076DC4 7F042294 46040032 */ c.eq.s $f0, $f4 /* 076DC8 7F042298 00809025 */ move $s2, $a0 /* 076DCC 7F04229C 00C09825 */ move $s3, $a2 /* 076DD0 7F0422A0 4502000E */ bc1fl .L7F0422DC /* 076DD4 7F0422A4 E7A00268 */ swc1 $f0, 0x268($sp) /* 076DD8 7F0422A8 C4A60004 */ lwc1 $f6, 4($a1) /* 076DDC 7F0422AC C488005C */ lwc1 $f8, 0x5c($a0) /* 076DE0 7F0422B0 46083032 */ c.eq.s $f6, $f8 /* 076DE4 7F0422B4 00000000 */ nop /* 076DE8 7F0422B8 45020008 */ bc1fl .L7F0422DC /* 076DEC 7F0422BC E7A00268 */ swc1 $f0, 0x268($sp) /* 076DF0 7F0422C0 C4AA0008 */ lwc1 $f10, 8($a1) /* 076DF4 7F0422C4 C4900060 */ lwc1 $f16, 0x60($a0) /* 076DF8 7F0422C8 46105032 */ c.eq.s $f10, $f16 /* 076DFC 7F0422CC 00000000 */ nop /* 076E00 7F0422D0 450301C6 */ bc1tl .L7F0429EC /* 076E04 7F0422D4 8FBF003C */ lw $ra, 0x3c($sp) /* 076E08 7F0422D8 E7A00268 */ swc1 $f0, 0x268($sp) .L7F0422DC: /* 076E0C 7F0422DC C6320004 */ lwc1 $f18, 4($s1) /* 076E10 7F0422E0 E7B2026C */ swc1 $f18, 0x26c($sp) /* 076E14 7F0422E4 C6240008 */ lwc1 $f4, 8($s1) /* 076E18 7F0422E8 E7A40270 */ swc1 $f4, 0x270($sp) /* 076E1C 7F0422EC 8E580064 */ lw $t8, 0x64($s2) /* 076E20 7F0422F0 33190080 */ andi $t9, $t8, 0x80 /* 076E24 7F0422F4 532001BD */ beql $t9, $zero, .L7F0429EC /* 076E28 7F0422F8 8FBF003C */ lw $ra, 0x3c($sp) /* 076E2C 7F0422FC 8E49006C */ lw $t1, 0x6c($s2) /* 076E30 7F042300 26440058 */ addiu $a0, $s2, 0x58 /* 076E34 7F042304 27A50268 */ addiu $a1, $sp, 0x268 /* 076E38 7F042308 8D2A0000 */ lw $t2, ($t1) /* 076E3C 7F04230C 27A70074 */ addiu $a3, $sp, 0x74 /* 076E40 7F042310 27AC007C */ addiu $t4, $sp, 0x7c /* 076E44 7F042314 314B0004 */ andi $t3, $t2, 4 /* 076E48 7F042318 116001B3 */ beqz $t3, .L7F0429E8 /* 076E4C 7F04231C 27AD0260 */ addiu $t5, $sp, 0x260 /* 076E50 7F042320 AFA00260 */ sw $zero, 0x260($sp) /* 076E54 7F042324 8E46006C */ lw $a2, 0x6c($s2) /* 076E58 7F042328 240E0014 */ li $t6, 20 /* 076E5C 7F04232C AFAE0018 */ sw $t6, 0x18($sp) /* 076E60 7F042330 AFB102B4 */ sw $s1, 0x2b4($sp) /* 076E64 7F042334 AFA40048 */ sw $a0, 0x48($sp) /* 076E68 7F042338 AFA202AC */ sw $v0, 0x2ac($sp) /* 076E6C 7F04233C AFAD0014 */ sw $t5, 0x14($sp) /* 076E70 7F042340 AFAC0010 */ sw $t4, 0x10($sp) /* 076E74 7F042344 0FC2D2AD */ jal sub_GAME_7F0B4AB4 /* 076E78 7F042348 24C600CC */ addiu $a2, $a2, 0xcc /* 076E7C 7F04234C 8FA30260 */ lw $v1, 0x260($sp) /* 076E80 7F042350 27B8007C */ addiu $t8, $sp, 0x7c /* 076E84 7F042354 24050064 */ li $a1, 100 /* 076E88 7F042358 28610015 */ slti $at, $v1, 0x15 /* 076E8C 7F04235C 54200003 */ bnezl $at, .L7F04236C /* 076E90 7F042360 00037880 */ sll $t7, $v1, 2 /* 076E94 7F042364 24030014 */ li $v1, 20 /* 076E98 7F042368 00037880 */ sll $t7, $v1, 2 .L7F04236C: /* 076E9C 7F04236C 01F82021 */ addu $a0, $t7, $t8 /* 076EA0 7F042370 0FC2E3A6 */ jal sub_GAME_7F0B8E98 /* 076EA4 7F042374 AFA30260 */ sw $v1, 0x260($sp) /* 076EA8 7F042378 8FA30260 */ lw $v1, 0x260($sp) /* 076EAC 7F04237C 2419FFFF */ li $t9, -1 /* 076EB0 7F042380 27B1007C */ addiu $s1, $sp, 0x7c /* 076EB4 7F042384 00621821 */ addu $v1, $v1, $v0 /* 076EB8 7F042388 00034880 */ sll $t1, $v1, 2 /* 076EBC 7F04238C 03A95021 */ addu $t2, $sp, $t1 /* 076EC0 7F042390 AD59007C */ sw $t9, 0x7c($t2) /* 076EC4 7F042394 8FAB007C */ lw $t3, 0x7c($sp) /* 076EC8 7F042398 AFA30260 */ sw $v1, 0x260($sp) /* 076ECC 7F04239C 0562009E */ bltzl $t3, .L7F042618 /* 076ED0 7F0423A0 8FAD02A4 */ lw $t5, 0x2a4($sp) /* 076ED4 7F0423A4 4480A000 */ mtc1 $zero, $f20 /* 076ED8 7F0423A8 8E260000 */ lw $a2, ($s1) /* 076EDC 7F0423AC 8FA40048 */ lw $a0, 0x48($sp) .L7F0423B0: /* 076EE0 7F0423B0 27A50268 */ addiu $a1, $sp, 0x268 /* 076EE4 7F0423B4 0FC2DE9E */ jal bgTestBulletHitBackground /* 076EE8 7F0423B8 27A70274 */ addiu $a3, $sp, 0x274 /* 076EEC 7F0423BC 50400092 */ beql $v0, $zero, .L7F042608 /* 076EF0 7F0423C0 8E260004 */ lw $a2, 4($s1) /* 076EF4 7F0423C4 0FC2D20C */ jal get_room_data_float2 /* 076EF8 7F0423C8 00000000 */ nop /* 076EFC 7F0423CC C7A60274 */ lwc1 $f6, 0x274($sp) /* 076F00 7F0423D0 C7AA0278 */ lwc1 $f10, 0x278($sp) /* 076F04 7F0423D4 C7B2027C */ lwc1 $f18, 0x27c($sp) /* 076F08 7F0423D8 46003202 */ mul.s $f8, $f6, $f0 /* 076F0C 7F0423DC C7A60268 */ lwc1 $f6, 0x268($sp) /* 076F10 7F0423E0 46005402 */ mul.s $f16, $f10, $f0 /* 076F14 7F0423E4 C7AA0268 */ lwc1 $f10, 0x268($sp) /* 076F18 7F0423E8 46009102 */ mul.s $f4, $f18, $f0 /* 076F1C 7F0423EC E7A80274 */ swc1 $f8, 0x274($sp) /* 076F20 7F0423F0 E7B00278 */ swc1 $f16, 0x278($sp) /* 076F24 7F0423F4 E7A4027C */ swc1 $f4, 0x27c($sp) /* 076F28 7F0423F8 C64C0058 */ lwc1 $f12, 0x58($s2) /* 076F2C 7F0423FC 4606603E */ c.le.s $f12, $f6 /* 076F30 7F042400 00000000 */ nop /* 076F34 7F042404 4502000A */ bc1fl .L7F042430 /* 076F38 7F042408 460C503E */ c.le.s $f10, $f12 /* 076F3C 7F04240C 4606403E */ c.le.s $f8, $f6 /* 076F40 7F042410 00000000 */ nop /* 076F44 7F042414 45020006 */ bc1fl .L7F042430 /* 076F48 7F042418 460C503E */ c.le.s $f10, $f12 /* 076F4C 7F04241C 4608603E */ c.le.s $f12, $f8 /* 076F50 7F042420 00000000 */ nop /* 076F54 7F042424 4503000E */ bc1tl .L7F042460 /* 076F58 7F042428 C642005C */ lwc1 $f2, 0x5c($s2) /* 076F5C 7F04242C 460C503E */ c.le.s $f10, $f12 .L7F042430: /* 076F60 7F042430 C7B00274 */ lwc1 $f16, 0x274($sp) /* 076F64 7F042434 45020074 */ bc1fl .L7F042608 /* 076F68 7F042438 8E260004 */ lw $a2, 4($s1) /* 076F6C 7F04243C 4610503E */ c.le.s $f10, $f16 /* 076F70 7F042440 00000000 */ nop /* 076F74 7F042444 45020070 */ bc1fl .L7F042608 /* 076F78 7F042448 8E260004 */ lw $a2, 4($s1) /* 076F7C 7F04244C 460C803E */ c.le.s $f16, $f12 /* 076F80 7F042450 00000000 */ nop /* 076F84 7F042454 4502006C */ bc1fl .L7F042608 /* 076F88 7F042458 8E260004 */ lw $a2, 4($s1) /* 076F8C 7F04245C C642005C */ lwc1 $f2, 0x5c($s2) .L7F042460: /* 076F90 7F042460 C7B2026C */ lwc1 $f18, 0x26c($sp) /* 076F94 7F042464 C7A40278 */ lwc1 $f4, 0x278($sp) /* 076F98 7F042468 C7A6026C */ lwc1 $f6, 0x26c($sp) /* 076F9C 7F04246C 4612103E */ c.le.s $f2, $f18 /* 076FA0 7F042470 00000000 */ nop /* 076FA4 7F042474 4502000A */ bc1fl .L7F0424A0 /* 076FA8 7F042478 4602303E */ c.le.s $f6, $f2 /* 076FAC 7F04247C 4612203E */ c.le.s $f4, $f18 /* 076FB0 7F042480 00000000 */ nop /* 076FB4 7F042484 45020006 */ bc1fl .L7F0424A0 /* 076FB8 7F042488 4602303E */ c.le.s $f6, $f2 /* 076FBC 7F04248C 4604103E */ c.le.s $f2, $f4 /* 076FC0 7F042490 00000000 */ nop /* 076FC4 7F042494 4503000E */ bc1tl .L7F0424D0 /* 076FC8 7F042498 C6400060 */ lwc1 $f0, 0x60($s2) /* 076FCC 7F04249C 4602303E */ c.le.s $f6, $f2 .L7F0424A0: /* 076FD0 7F0424A0 C7A80278 */ lwc1 $f8, 0x278($sp) /* 076FD4 7F0424A4 45020058 */ bc1fl .L7F042608 /* 076FD8 7F0424A8 8E260004 */ lw $a2, 4($s1) /* 076FDC 7F0424AC 4608303E */ c.le.s $f6, $f8 /* 076FE0 7F0424B0 00000000 */ nop /* 076FE4 7F0424B4 45020054 */ bc1fl .L7F042608 /* 076FE8 7F0424B8 8E260004 */ lw $a2, 4($s1) /* 076FEC 7F0424BC 4602403E */ c.le.s $f8, $f2 /* 076FF0 7F0424C0 00000000 */ nop /* 076FF4 7F0424C4 45020050 */ bc1fl .L7F042608 /* 076FF8 7F0424C8 8E260004 */ lw $a2, 4($s1) /* 076FFC 7F0424CC C6400060 */ lwc1 $f0, 0x60($s2) .L7F0424D0: /* 077000 7F0424D0 C7AA0270 */ lwc1 $f10, 0x270($sp) /* 077004 7F0424D4 C7B0027C */ lwc1 $f16, 0x27c($sp) /* 077008 7F0424D8 C7B20270 */ lwc1 $f18, 0x270($sp) /* 07700C 7F0424DC 460A003E */ c.le.s $f0, $f10 /* 077010 7F0424E0 00000000 */ nop /* 077014 7F0424E4 4502000A */ bc1fl .L7F042510 /* 077018 7F0424E8 4600903E */ c.le.s $f18, $f0 /* 07701C 7F0424EC 460A803E */ c.le.s $f16, $f10 /* 077020 7F0424F0 00000000 */ nop /* 077024 7F0424F4 45020006 */ bc1fl .L7F042510 /* 077028 7F0424F8 4600903E */ c.le.s $f18, $f0 /* 07702C 7F0424FC 4610003E */ c.le.s $f0, $f16 /* 077030 7F042500 00000000 */ nop /* 077034 7F042504 4503000E */ bc1tl .L7F042540 /* 077038 7F042508 C7A60274 */ lwc1 $f6, 0x274($sp) /* 07703C 7F04250C 4600903E */ c.le.s $f18, $f0 .L7F042510: /* 077040 7F042510 C7A4027C */ lwc1 $f4, 0x27c($sp) /* 077044 7F042514 4502003C */ bc1fl .L7F042608 /* 077048 7F042518 8E260004 */ lw $a2, 4($s1) /* 07704C 7F04251C 4604903E */ c.le.s $f18, $f4 /* 077050 7F042520 00000000 */ nop /* 077054 7F042524 45020038 */ bc1fl .L7F042608 /* 077058 7F042528 8E260004 */ lw $a2, 4($s1) /* 07705C 7F04252C 4600203E */ c.le.s $f4, $f0 /* 077060 7F042530 00000000 */ nop /* 077064 7F042534 45020034 */ bc1fl .L7F042608 /* 077068 7F042538 8E260004 */ lw $a2, 4($s1) /* 07706C 7F04253C C7A60274 */ lwc1 $f6, 0x274($sp) .L7F042540: /* 077070 7F042540 C7A80278 */ lwc1 $f8, 0x278($sp) /* 077074 7F042544 46066032 */ c.eq.s $f12, $f6 /* 077078 7F042548 00000000 */ nop /* 07707C 7F04254C 4502000A */ bc1fl .L7F042578 /* 077080 7F042550 C7B00274 */ lwc1 $f16, 0x274($sp) /* 077084 7F042554 46081032 */ c.eq.s $f2, $f8 /* 077088 7F042558 C7AA027C */ lwc1 $f10, 0x27c($sp) /* 07708C 7F04255C 45020006 */ bc1fl .L7F042578 /* 077090 7F042560 C7B00274 */ lwc1 $f16, 0x274($sp) /* 077094 7F042564 460A0032 */ c.eq.s $f0, $f10 /* 077098 7F042568 00000000 */ nop /* 07709C 7F04256C 45030026 */ bc1tl .L7F042608 /* 0770A0 7F042570 8E260004 */ lw $a2, 4($s1) /* 0770A4 7F042574 C7B00274 */ lwc1 $f16, 0x274($sp) .L7F042578: /* 0770A8 7F042578 AFA002A4 */ sw $zero, 0x2a4($sp) /* 0770AC 7F04257C 02002025 */ move $a0, $s0 /* 0770B0 7F042580 E6700000 */ swc1 $f16, ($s3) /* 0770B4 7F042584 C7B20278 */ lwc1 $f18, 0x278($sp) /* 0770B8 7F042588 26050004 */ addiu $a1, $s0, 4 /* 0770BC 7F04258C E6720004 */ swc1 $f18, 4($s3) /* 0770C0 7F042590 C7A4027C */ lwc1 $f4, 0x27c($sp) /* 0770C4 7F042594 E6640008 */ swc1 $f4, 8($s3) /* 0770C8 7F042598 C7A60280 */ lwc1 $f6, 0x280($sp) /* 0770CC 7F04259C E6060000 */ swc1 $f6, ($s0) /* 0770D0 7F0425A0 C6100000 */ lwc1 $f16, ($s0) /* 0770D4 7F0425A4 C7A80284 */ lwc1 $f8, 0x284($sp) /* 0770D8 7F0425A8 4610A032 */ c.eq.s $f20, $f16 /* 0770DC 7F0425AC E6080004 */ swc1 $f8, 4($s0) /* 0770E0 7F0425B0 C7AA0288 */ lwc1 $f10, 0x288($sp) /* 0770E4 7F0425B4 4500000C */ bc1f .L7F0425E8 /* 0770E8 7F0425B8 E60A0008 */ swc1 $f10, 8($s0) /* 0770EC 7F0425BC C6120004 */ lwc1 $f18, 4($s0) /* 0770F0 7F0425C0 4612A032 */ c.eq.s $f20, $f18 /* 0770F4 7F0425C4 00000000 */ nop /* 0770F8 7F0425C8 45000007 */ bc1f .L7F0425E8 /* 0770FC 7F0425CC 00000000 */ nop /* 077100 7F0425D0 C6040008 */ lwc1 $f4, 8($s0) /* 077104 7F0425D4 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 077108 7F0425D8 4604A032 */ c.eq.s $f20, $f4 /* 07710C 7F0425DC 00000000 */ nop /* 077110 7F0425E0 45030006 */ bc1tl .L7F0425FC /* 077114 7F0425E4 44813000 */ mtc1 $at, $f6 .L7F0425E8: /* 077118 7F0425E8 0C007DD4 */ jal guNormalize /* 07711C 7F0425EC 26060008 */ addiu $a2, $s0, 8 /* 077120 7F0425F0 10000005 */ b .L7F042608 /* 077124 7F0425F4 8E260004 */ lw $a2, 4($s1) /* 077128 7F0425F8 44813000 */ mtc1 $at, $f6 .L7F0425FC: /* 07712C 7F0425FC 00000000 */ nop /* 077130 7F042600 E6060008 */ swc1 $f6, 8($s0) /* 077134 7F042604 8E260004 */ lw $a2, 4($s1) .L7F042608: /* 077138 7F042608 26310004 */ addiu $s1, $s1, 4 /* 07713C 7F04260C 04C3FF68 */ bgezl $a2, .L7F0423B0 /* 077140 7F042610 8FA40048 */ lw $a0, 0x48($sp) /* 077144 7F042614 8FAD02A4 */ lw $t5, 0x2a4($sp) .L7F042618: /* 077148 7F042618 8FA202B4 */ lw $v0, 0x2b4($sp) /* 07714C 7F04261C 55A00037 */ bnezl $t5, .L7F0426FC /* 077150 7F042620 27AE007C */ addiu $t6, $sp, 0x7c /* 077154 7F042624 C4480000 */ lwc1 $f8, ($v0) /* 077158 7F042628 C64A0058 */ lwc1 $f10, 0x58($s2) /* 07715C 7F04262C 460A4401 */ sub.s $f16, $f8, $f10 /* 077160 7F042630 E7B00064 */ swc1 $f16, 0x64($sp) /* 077164 7F042634 C644005C */ lwc1 $f4, 0x5c($s2) /* 077168 7F042638 C4520004 */ lwc1 $f18, 4($v0) /* 07716C 7F04263C 46049181 */ sub.s $f6, $f18, $f4 /* 077170 7F042640 C7B20064 */ lwc1 $f18, 0x64($sp) /* 077174 7F042644 E7A60068 */ swc1 $f6, 0x68($sp) /* 077178 7F042648 C64A0060 */ lwc1 $f10, 0x60($s2) /* 07717C 7F04264C C4480008 */ lwc1 $f8, 8($v0) /* 077180 7F042650 46129102 */ mul.s $f4, $f18, $f18 /* 077184 7F042654 C7A60068 */ lwc1 $f6, 0x68($sp) /* 077188 7F042658 460A4401 */ sub.s $f16, $f8, $f10 /* 07718C 7F04265C 46063202 */ mul.s $f8, $f6, $f6 /* 077190 7F042660 E7B0006C */ swc1 $f16, 0x6c($sp) /* 077194 7F042664 C7B0006C */ lwc1 $f16, 0x6c($sp) /* 077198 7F042668 46108482 */ mul.s $f18, $f16, $f16 /* 07719C 7F04266C 46082280 */ add.s $f10, $f4, $f8 /* 0771A0 7F042670 0C007DF8 */ jal sqrtf /* 0771A4 7F042674 460A9300 */ add.s $f12, $f18, $f10 /* 0771A8 7F042678 3C018005 */ lui $at, %hi(D_80052A58) # -0.000000 /* 0771AC 7F04267C C42C2A58 */ lwc1 $f12, %lo(D_80052A58)($at) /* 0771B0 7F042680 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 0771B4 7F042684 C7A40064 */ lwc1 $f4, 0x64($sp) /* 0771B8 7F042688 4600603C */ c.lt.s $f12, $f0 /* 0771BC 7F04268C 00000000 */ nop /* 0771C0 7F042690 45020004 */ bc1fl .L7F0426A4 /* 0771C4 7F042694 44811000 */ mtc1 $at, $f2 /* 0771C8 7F042698 10000003 */ b .L7F0426A8 /* 0771CC 7F04269C 46006083 */ div.s $f2, $f12, $f0 /* 0771D0 7F0426A0 44811000 */ mtc1 $at, $f2 .L7F0426A4: /* 0771D4 7F0426A4 00000000 */ nop .L7F0426A8: /* 0771D8 7F0426A8 46041202 */ mul.s $f8, $f2, $f4 /* 0771DC 7F0426AC C6660000 */ lwc1 $f6, ($s3) /* 0771E0 7F0426B0 C6720004 */ lwc1 $f18, 4($s3) /* 0771E4 7F0426B4 46083401 */ sub.s $f16, $f6, $f8 /* 0771E8 7F0426B8 C6680008 */ lwc1 $f8, 8($s3) /* 0771EC 7F0426BC E6700000 */ swc1 $f16, ($s3) /* 0771F0 7F0426C0 C7AA0068 */ lwc1 $f10, 0x68($sp) /* 0771F4 7F0426C4 460A1102 */ mul.s $f4, $f2, $f10 /* 0771F8 7F0426C8 46049181 */ sub.s $f6, $f18, $f4 /* 0771FC 7F0426CC C6640000 */ lwc1 $f4, ($s3) /* 077200 7F0426D0 E6660004 */ swc1 $f6, 4($s3) /* 077204 7F0426D4 C7B0006C */ lwc1 $f16, 0x6c($sp) /* 077208 7F0426D8 46101282 */ mul.s $f10, $f2, $f16 /* 07720C 7F0426DC 460A4481 */ sub.s $f18, $f8, $f10 /* 077210 7F0426E0 E6720008 */ swc1 $f18, 8($s3) /* 077214 7F0426E4 E7A40268 */ swc1 $f4, 0x268($sp) /* 077218 7F0426E8 C6660004 */ lwc1 $f6, 4($s3) /* 07721C 7F0426EC E7A6026C */ swc1 $f6, 0x26c($sp) /* 077220 7F0426F0 C6700008 */ lwc1 $f16, 8($s3) /* 077224 7F0426F4 E7B00270 */ swc1 $f16, 0x270($sp) /* 077228 7F0426F8 27AE007C */ addiu $t6, $sp, 0x7c .L7F0426FC: /* 07722C 7F0426FC AFAE0018 */ sw $t6, 0x18($sp) /* 077230 7F042700 8FA402AC */ lw $a0, 0x2ac($sp) /* 077234 7F042704 8FA50048 */ lw $a1, 0x48($sp) /* 077238 7F042708 27A60268 */ addiu $a2, $sp, 0x268 /* 07723C 7F04270C 2407001F */ li $a3, 31 /* 077240 7F042710 AFB30010 */ sw $s3, 0x10($sp) /* 077244 7F042714 0FC10783 */ jal projectileFindCollidingProp /* 077248 7F042718 AFB00014 */ sw $s0, 0x14($sp) /* 07724C 7F04271C 14400036 */ bnez $v0, .L7F0427F8 /* 077250 7F042720 8FAB02C4 */ lw $t3, 0x2c4($sp) /* 077254 7F042724 8FAF02A4 */ lw $t7, 0x2a4($sp) /* 077258 7F042728 8FB802C0 */ lw $t8, 0x2c0($sp) /* 07725C 7F04272C 8FAD02A4 */ lw $t5, 0x2a4($sp) /* 077260 7F042730 55E00016 */ bnezl $t7, .L7F04278C /* 077264 7F042734 24100001 */ li $s0, 1 /* 077268 7F042738 53000014 */ beql $t8, $zero, .L7F04278C /* 07726C 7F04273C 24100001 */ li $s0, 1 /* 077270 7F042740 8FA902C4 */ lw $t1, 0x2c4($sp) /* 077274 7F042744 24190002 */ li $t9, 2 /* 077278 7F042748 AFB902A4 */ sw $t9, 0x2a4($sp) /* 07727C 7F04274C 1520000C */ bnez $t1, .L7F042780 /* 077280 7F042750 8FA40048 */ lw $a0, 0x48($sp) /* 077284 7F042754 8E46006C */ lw $a2, 0x6c($s2) /* 077288 7F042758 27AA007C */ addiu $t2, $sp, 0x7c /* 07728C 7F04275C 27AB0260 */ addiu $t3, $sp, 0x260 /* 077290 7F042760 240C0014 */ li $t4, 20 /* 077294 7F042764 AFAC0018 */ sw $t4, 0x18($sp) /* 077298 7F042768 AFAB0014 */ sw $t3, 0x14($sp) /* 07729C 7F04276C AFAA0010 */ sw $t2, 0x10($sp) /* 0772A0 7F042770 02602825 */ move $a1, $s3 /* 0772A4 7F042774 27A70074 */ addiu $a3, $sp, 0x74 /* 0772A8 7F042778 0FC2D2AD */ jal sub_GAME_7F0B4AB4 /* 0772AC 7F04277C 24C600CC */ addiu $a2, $a2, 0xcc .L7F042780: /* 0772B0 7F042780 1000003A */ b .L7F04286C /* 0772B4 7F042784 8FA902A4 */ lw $t1, 0x2a4($sp) /* 0772B8 7F042788 24100001 */ li $s0, 1 .L7F04278C: /* 0772BC 7F04278C 11B00003 */ beq $t5, $s0, .L7F04279C /* 0772C0 7F042790 8FAE02C4 */ lw $t6, 0x2c4($sp) /* 0772C4 7F042794 55C00035 */ bnezl $t6, .L7F04286C /* 0772C8 7F042798 8FA902A4 */ lw $t1, 0x2a4($sp) .L7F04279C: /* 0772CC 7F04279C 8FAF02A4 */ lw $t7, 0x2a4($sp) /* 0772D0 7F0427A0 8FA40048 */ lw $a0, 0x48($sp) /* 0772D4 7F0427A4 27A50268 */ addiu $a1, $sp, 0x268 /* 0772D8 7F0427A8 11F0000A */ beq $t7, $s0, .L7F0427D4 /* 0772DC 7F0427AC 27A70074 */ addiu $a3, $sp, 0x74 /* 0772E0 7F0427B0 8E46006C */ lw $a2, 0x6c($s2) /* 0772E4 7F0427B4 27B8007C */ addiu $t8, $sp, 0x7c /* 0772E8 7F0427B8 27B90260 */ addiu $t9, $sp, 0x260 /* 0772EC 7F0427BC 24090014 */ li $t1, 20 /* 0772F0 7F0427C0 AFA90018 */ sw $t1, 0x18($sp) /* 0772F4 7F0427C4 AFB90014 */ sw $t9, 0x14($sp) /* 0772F8 7F0427C8 AFB80010 */ sw $t8, 0x10($sp) /* 0772FC 7F0427CC 0FC2D2AD */ jal sub_GAME_7F0B4AB4 /* 077300 7F0427D0 24C600CC */ addiu $a2, $a2, 0xcc .L7F0427D4: /* 077304 7F0427D4 C7A80268 */ lwc1 $f8, 0x268($sp) /* 077308 7F0427D8 E6480058 */ swc1 $f8, 0x58($s2) /* 07730C 7F0427DC C7AA0270 */ lwc1 $f10, 0x270($sp) /* 077310 7F0427E0 E64A0060 */ swc1 $f10, 0x60($s2) /* 077314 7F0427E4 8FAA02AC */ lw $t2, 0x2ac($sp) /* 077318 7F0427E8 C7A0026C */ lwc1 $f0, 0x26c($sp) /* 07731C 7F0427EC E540000C */ swc1 $f0, 0xc($t2) /* 077320 7F0427F0 1000001D */ b .L7F042868 /* 077324 7F0427F4 E640005C */ swc1 $f0, 0x5c($s2) .L7F0427F8: /* 077328 7F0427F8 1560001B */ bnez $t3, .L7F042868 /* 07732C 7F0427FC 27A50268 */ addiu $a1, $sp, 0x268 /* 077330 7F042800 C6520058 */ lwc1 $f18, 0x58($s2) /* 077334 7F042804 27AC007C */ addiu $t4, $sp, 0x7c /* 077338 7F042808 27AD0260 */ addiu $t5, $sp, 0x260 /* 07733C 7F04280C E7B20268 */ swc1 $f18, 0x268($sp) /* 077340 7F042810 C6440060 */ lwc1 $f4, 0x60($s2) /* 077344 7F042814 240E0014 */ li $t6, 20 /* 077348 7F042818 8FA40048 */ lw $a0, 0x48($sp) /* 07734C 7F04281C E7A40270 */ swc1 $f4, 0x270($sp) /* 077350 7F042820 8E46006C */ lw $a2, 0x6c($s2) /* 077354 7F042824 AFAE0018 */ sw $t6, 0x18($sp) /* 077358 7F042828 AFAD0014 */ sw $t5, 0x14($sp) /* 07735C 7F04282C AFAC0010 */ sw $t4, 0x10($sp) /* 077360 7F042830 27A70074 */ addiu $a3, $sp, 0x74 /* 077364 7F042834 0FC2D2AD */ jal sub_GAME_7F0B4AB4 /* 077368 7F042838 24C600CC */ addiu $a2, $a2, 0xcc /* 07736C 7F04283C C7A0026C */ lwc1 $f0, 0x26c($sp) /* 077370 7F042840 8FAF02AC */ lw $t7, 0x2ac($sp) /* 077374 7F042844 24190002 */ li $t9, 2 /* 077378 7F042848 E5E0000C */ swc1 $f0, 0xc($t7) /* 07737C 7F04284C E640005C */ swc1 $f0, 0x5c($s2) /* 077380 7F042850 8FB802C0 */ lw $t8, 0x2c0($sp) /* 077384 7F042854 53000004 */ beql $t8, $zero, .L7F042868 /* 077388 7F042858 AFA002A4 */ sw $zero, 0x2a4($sp) /* 07738C 7F04285C 10000002 */ b .L7F042868 /* 077390 7F042860 AFB902A4 */ sw $t9, 0x2a4($sp) /* 077394 7F042864 AFA002A4 */ sw $zero, 0x2a4($sp) .L7F042868: /* 077398 7F042868 8FA902A4 */ lw $t1, 0x2a4($sp) .L7F04286C: /* 07739C 7F04286C 24100001 */ li $s0, 1 /* 0773A0 7F042870 8FAA02C4 */ lw $t2, 0x2c4($sp) /* 0773A4 7F042874 51300004 */ beql $t1, $s0, .L7F042888 /* 0773A8 7F042878 8E4B006C */ lw $t3, 0x6c($s2) /* 0773AC 7F04287C 5540005B */ bnezl $t2, .L7F0429EC /* 0773B0 7F042880 8FBF003C */ lw $ra, 0x3c($sp) /* 0773B4 7F042884 8E4B006C */ lw $t3, 0x6c($s2) .L7F042888: /* 0773B8 7F042888 00004025 */ move $t0, $zero /* 0773BC 7F04288C 8D620000 */ lw $v0, ($t3) /* 0773C0 7F042890 304C0008 */ andi $t4, $v0, 8 /* 0773C4 7F042894 15800028 */ bnez $t4, .L7F042938 /* 0773C8 7F042898 01801025 */ move $v0, $t4 /* 0773CC 7F04289C 8FA202AC */ lw $v0, 0x2ac($sp) /* 0773D0 7F0428A0 27A402A8 */ addiu $a0, $sp, 0x2a8 /* 0773D4 7F0428A4 8C4D0014 */ lw $t5, 0x14($v0) /* 0773D8 7F0428A8 AFAD02A8 */ sw $t5, 0x2a8($sp) /* 0773DC 7F0428AC C6460060 */ lwc1 $f6, 0x60($s2) /* 0773E0 7F0428B0 8E470058 */ lw $a3, 0x58($s2) /* 0773E4 7F0428B4 8C460010 */ lw $a2, 0x10($v0) /* 0773E8 7F0428B8 8C450008 */ lw $a1, 8($v0) /* 0773EC 7F0428BC AFA00264 */ sw $zero, 0x264($sp) /* 0773F0 7F0428C0 0FC2C2F9 */ jal walkTilesBetweenPoints_NoCallback /* 0773F4 7F0428C4 E7A60010 */ swc1 $f6, 0x10($sp) /* 0773F8 7F0428C8 1450000F */ bne $v0, $s0, .L7F042908 /* 0773FC 7F0428CC 8FA80264 */ lw $t0, 0x264($sp) /* 077400 7F0428D0 8FAE02A8 */ lw $t6, 0x2a8($sp) /* 077404 7F0428D4 8FA302AC */ lw $v1, 0x2ac($sp) /* 077408 7F0428D8 51C0000C */ beql $t6, $zero, .L7F04290C /* 07740C 7F0428DC 8E43006C */ lw $v1, 0x6c($s2) /* 077410 7F0428E0 AC6E0014 */ sw $t6, 0x14($v1) /* 077414 7F0428E4 C6500058 */ lwc1 $f16, 0x58($s2) /* 077418 7F0428E8 E4700008 */ swc1 $f16, 8($v1) /* 07741C 7F0428EC C6480060 */ lwc1 $f8, 0x60($s2) /* 077420 7F0428F0 E4680010 */ swc1 $f8, 0x10($v1) /* 077424 7F0428F4 8E4F006C */ lw $t7, 0x6c($s2) /* 077428 7F0428F8 8DE20000 */ lw $v0, ($t7) /* 07742C 7F0428FC 30580008 */ andi $t8, $v0, 8 /* 077430 7F042900 1000000D */ b .L7F042938 /* 077434 7F042904 03001025 */ move $v0, $t8 .L7F042908: /* 077438 7F042908 8E43006C */ lw $v1, 0x6c($s2) .L7F04290C: /* 07743C 7F04290C 8C790000 */ lw $t9, ($v1) /* 077440 7F042910 37290008 */ ori $t1, $t9, 8 /* 077444 7F042914 AC690000 */ sw $t1, ($v1) /* 077448 7F042918 8FAA02AC */ lw $t2, 0x2ac($sp) /* 07744C 7F04291C 914B0001 */ lbu $t3, 1($t2) /* 077450 7F042920 356C0008 */ ori $t4, $t3, 8 /* 077454 7F042924 A14C0001 */ sb $t4, 1($t2) /* 077458 7F042928 8E4D006C */ lw $t5, 0x6c($s2) /* 07745C 7F04292C 8DA20000 */ lw $v0, ($t5) /* 077460 7F042930 304E0008 */ andi $t6, $v0, 8 /* 077464 7F042934 01C01025 */ move $v0, $t6 .L7F042938: /* 077468 7F042938 10400016 */ beqz $v0, .L7F042994 /* 07746C 7F04293C 8FA40048 */ lw $a0, 0x48($sp) /* 077470 7F042940 27A50074 */ addiu $a1, $sp, 0x74 /* 077474 7F042944 00003025 */ move $a2, $zero /* 077478 7F042948 0FC2BC83 */ jal sub_GAME_7F0AF20C /* 07747C 7F04294C AFA80264 */ sw $t0, 0x264($sp) /* 077480 7F042950 8FA80264 */ lw $t0, 0x264($sp) /* 077484 7F042954 1040000F */ beqz $v0, .L7F042994 /* 077488 7F042958 AFA202A8 */ sw $v0, 0x2a8($sp) /* 07748C 7F04295C 8FA402AC */ lw $a0, 0x2ac($sp) /* 077490 7F042960 2401FFF7 */ li $at, -9 /* 077494 7F042964 AC820014 */ sw $v0, 0x14($a0) /* 077498 7F042968 C64A0058 */ lwc1 $f10, 0x58($s2) /* 07749C 7F04296C E48A0008 */ swc1 $f10, 8($a0) /* 0774A0 7F042970 C6520060 */ lwc1 $f18, 0x60($s2) /* 0774A4 7F042974 E4920010 */ swc1 $f18, 0x10($a0) /* 0774A8 7F042978 8E43006C */ lw $v1, 0x6c($s2) /* 0774AC 7F04297C 8C6F0000 */ lw $t7, ($v1) /* 0774B0 7F042980 01E1C024 */ and $t8, $t7, $at /* 0774B4 7F042984 AC780000 */ sw $t8, ($v1) /* 0774B8 7F042988 90990001 */ lbu $t9, 1($a0) /* 0774BC 7F04298C 03214824 */ and $t1, $t9, $at /* 0774C0 7F042990 A0890001 */ sb $t1, 1($a0) .L7F042994: /* 0774C4 7F042994 93AB0074 */ lbu $t3, 0x74($sp) /* 0774C8 7F042998 240400FF */ li $a0, 255 /* 0774CC 7F04299C 27AC0074 */ addiu $t4, $sp, 0x74 /* 0774D0 7F0429A0 108B000D */ beq $a0, $t3, .L7F0429D8 /* 0774D4 7F0429A4 010C1021 */ addu $v0, $t0, $t4 /* 0774D8 7F0429A8 90430000 */ lbu $v1, ($v0) /* 0774DC 7F0429AC 24050007 */ li $a1, 7 /* 0774E0 7F0429B0 8E4A006C */ lw $t2, 0x6c($s2) .L7F0429B4: /* 0774E4 7F0429B4 24420001 */ addiu $v0, $v0, 1 /* 0774E8 7F0429B8 01486821 */ addu $t5, $t2, $t0 /* 0774EC 7F0429BC A1A300CC */ sb $v1, 0xcc($t5) /* 0774F0 7F0429C0 90430000 */ lbu $v1, ($v0) /* 0774F4 7F0429C4 25080001 */ addiu $t0, $t0, 1 /* 0774F8 7F0429C8 50830004 */ beql $a0, $v1, .L7F0429DC /* 0774FC 7F0429CC 8E4F006C */ lw $t7, 0x6c($s2) /* 077500 7F0429D0 5505FFF8 */ bnel $t0, $a1, .L7F0429B4 /* 077504 7F0429D4 8E4A006C */ lw $t2, 0x6c($s2) .L7F0429D8: /* 077508 7F0429D8 8E4F006C */ lw $t7, 0x6c($s2) .L7F0429DC: /* 07750C 7F0429DC 240E00FF */ li $t6, 255 /* 077510 7F0429E0 01E8C021 */ addu $t8, $t7, $t0 /* 077514 7F0429E4 A30E00CC */ sb $t6, 0xcc($t8) .L7F0429E8: /* 077518 7F0429E8 8FBF003C */ lw $ra, 0x3c($sp) .L7F0429EC: /* 07751C 7F0429EC 8FA202A4 */ lw $v0, 0x2a4($sp) /* 077520 7F0429F0 D7B40020 */ ldc1 $f20, 0x20($sp) /* 077524 7F0429F4 8FB0002C */ lw $s0, 0x2c($sp) /* 077528 7F0429F8 8FB10030 */ lw $s1, 0x30($sp) /* 07752C 7F0429FC 8FB20034 */ lw $s2, 0x34($sp) /* 077530 7F042A00 8FB30038 */ lw $s3, 0x38($sp) /* 077534 7F042A04 03E00008 */ jr $ra /* 077538 7F042A08 27BD02B0 */ addiu $sp, $sp, 0x2b0 ) #endif #ifdef NONMATCHING void sub_GAME_7F042A0C(void) { } #else GLOBAL_ASM( .late_rodata glabel D_80052A5C .word 0x3f7d70a4 /*0.99000001*/ .text glabel sub_GAME_7F042A0C /* 07753C 7F042A0C 27BDFF40 */ addiu $sp, $sp, -0xc0 /* 077540 7F042A10 AFBF0034 */ sw $ra, 0x34($sp) /* 077544 7F042A14 AFB00030 */ sw $s0, 0x30($sp) /* 077548 7F042A18 AFA600C8 */ sw $a2, 0xc8($sp) /* 07754C 7F042A1C AFA700CC */ sw $a3, 0xcc($sp) /* 077550 7F042A20 8C900010 */ lw $s0, 0x10($a0) /* 077554 7F042A24 8E0E0014 */ lw $t6, 0x14($s0) /* 077558 7F042A28 AFA500C4 */ sw $a1, 0xc4($sp) /* 07755C 7F042A2C AFA400C0 */ sw $a0, 0xc0($sp) /* 077560 7F042A30 0FC10411 */ jal objGetWidth /* 077564 7F042A34 AFAE00B8 */ sw $t6, 0xb8($sp) /* 077568 7F042A38 8FA500C4 */ lw $a1, 0xc4($sp) /* 07756C 7F042A3C 240F0001 */ li $t7, 1 /* 077570 7F042A40 3C018003 */ lui $at, %hi(D_80030B0C) /* 077574 7F042A44 E7A000B4 */ swc1 $f0, 0xb4($sp) /* 077578 7F042A48 AFAF00B0 */ sw $t7, 0xb0($sp) /* 07757C 7F042A4C AC200B0C */ sw $zero, %lo(D_80030B0C)($at) /* 077580 7F042A50 C6040008 */ lwc1 $f4, 8($s0) /* 077584 7F042A54 C4A20000 */ lwc1 $f2, ($a1) /* 077588 7F042A58 46041032 */ c.eq.s $f2, $f4 /* 07758C 7F042A5C 00000000 */ nop /* 077590 7F042A60 4502000E */ bc1fl .L7F042A9C /* 077594 7F042A64 E7A20098 */ swc1 $f2, 0x98($sp) /* 077598 7F042A68 C4A60004 */ lwc1 $f6, 4($a1) /* 07759C 7F042A6C C608000C */ lwc1 $f8, 0xc($s0) /* 0775A0 7F042A70 46083032 */ c.eq.s $f6, $f8 /* 0775A4 7F042A74 00000000 */ nop /* 0775A8 7F042A78 45020008 */ bc1fl .L7F042A9C /* 0775AC 7F042A7C E7A20098 */ swc1 $f2, 0x98($sp) /* 0775B0 7F042A80 C4AA0008 */ lwc1 $f10, 8($a1) /* 0775B4 7F042A84 C6100010 */ lwc1 $f16, 0x10($s0) /* 0775B8 7F042A88 46105032 */ c.eq.s $f10, $f16 /* 0775BC 7F042A8C 00000000 */ nop /* 0775C0 7F042A90 45030104 */ bc1tl .L7F042EA4 /* 0775C4 7F042A94 8FBF0034 */ lw $ra, 0x34($sp) /* 0775C8 7F042A98 E7A20098 */ swc1 $f2, 0x98($sp) .L7F042A9C: /* 0775CC 7F042A9C C4B20004 */ lwc1 $f18, 4($a1) /* 0775D0 7F042AA0 8FB800C0 */ lw $t8, 0xc0($sp) /* 0775D4 7F042AA4 E7B2009C */ swc1 $f18, 0x9c($sp) /* 0775D8 7F042AA8 C4A40008 */ lwc1 $f4, 8($a1) /* 0775DC 7F042AAC E7A400A0 */ swc1 $f4, 0xa0($sp) /* 0775E0 7F042AB0 8F190064 */ lw $t9, 0x64($t8) /* 0775E4 7F042AB4 33280080 */ andi $t0, $t9, 0x80 /* 0775E8 7F042AB8 510000FA */ beql $t0, $zero, .L7F042EA4 /* 0775EC 7F042ABC 8FBF0034 */ lw $ra, 0x34($sp) /* 0775F0 7F042AC0 8E040014 */ lw $a0, 0x14($s0) /* 0775F4 7F042AC4 8E050008 */ lw $a1, 8($s0) /* 0775F8 7F042AC8 0FC2CA5C */ jal stanGetPositionYValue /* 0775FC 7F042ACC 8E060010 */ lw $a2, 0x10($s0) /* 077600 7F042AD0 8FA900C0 */ lw $t1, 0xc0($sp) /* 077604 7F042AD4 C7AA009C */ lwc1 $f10, 0x9c($sp) /* 077608 7F042AD8 8D2A006C */ lw $t2, 0x6c($t1) /* 07760C 7F042ADC 8D4B0000 */ lw $t3, ($t2) /* 077610 7F042AE0 316C0040 */ andi $t4, $t3, 0x40 /* 077614 7F042AE4 55800008 */ bnezl $t4, .L7F042B08 /* 077618 7F042AE8 C602000C */ lwc1 $f2, 0xc($s0) /* 07761C 7F042AEC 44809000 */ mtc1 $zero, $f18 /* 077620 7F042AF0 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 077624 7F042AF4 44818000 */ mtc1 $at, $f16 /* 077628 7F042AF8 E7B20090 */ swc1 $f18, 0x90($sp) /* 07762C 7F042AFC 10000010 */ b .L7F042B40 /* 077630 7F042B00 E7B0008C */ swc1 $f16, 0x8c($sp) /* 077634 7F042B04 C602000C */ lwc1 $f2, 0xc($s0) .L7F042B08: /* 077638 7F042B08 C7A4009C */ lwc1 $f4, 0x9c($sp) /* 07763C 7F042B0C 4602503C */ c.lt.s $f10, $f2 /* 077640 7F042B10 00000000 */ nop /* 077644 7F042B14 45020007 */ bc1fl .L7F042B34 /* 077648 7F042B18 46002181 */ sub.s $f6, $f4, $f0 /* 07764C 7F042B1C 46001401 */ sub.s $f16, $f2, $f0 /* 077650 7F042B20 46005481 */ sub.s $f18, $f10, $f0 /* 077654 7F042B24 E7B00090 */ swc1 $f16, 0x90($sp) /* 077658 7F042B28 10000005 */ b .L7F042B40 /* 07765C 7F042B2C E7B2008C */ swc1 $f18, 0x8c($sp) /* 077660 7F042B30 46002181 */ sub.s $f6, $f4, $f0 .L7F042B34: /* 077664 7F042B34 46001201 */ sub.s $f8, $f2, $f0 /* 077668 7F042B38 E7A60090 */ swc1 $f6, 0x90($sp) /* 07766C 7F042B3C E7A8008C */ swc1 $f8, 0x8c($sp) .L7F042B40: /* 077670 7F042B40 0FC2C731 */ jal sub_GAME_7F0B1CC4 /* 077674 7F042B44 00000000 */ nop /* 077678 7F042B48 8E050008 */ lw $a1, 8($s0) /* 07767C 7F042B4C 8E060010 */ lw $a2, 0x10($s0) /* 077680 7F042B50 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 077684 7F042B54 44813000 */ mtc1 $at, $f6 /* 077688 7F042B58 C7B000A0 */ lwc1 $f16, 0xa0($sp) /* 07768C 7F042B5C C7AA0090 */ lwc1 $f10, 0x90($sp) /* 077690 7F042B60 C7B2008C */ lwc1 $f18, 0x8c($sp) /* 077694 7F042B64 44802000 */ mtc1 $zero, $f4 /* 077698 7F042B68 240D001F */ li $t5, 31 /* 07769C 7F042B6C AFAD0014 */ sw $t5, 0x14($sp) /* 0776A0 7F042B70 27A400B8 */ addiu $a0, $sp, 0xb8 /* 0776A4 7F042B74 8FA70098 */ lw $a3, 0x98($sp) /* 0776A8 7F042B78 E7B00010 */ swc1 $f16, 0x10($sp) /* 0776AC 7F042B7C E7A60024 */ swc1 $f6, 0x24($sp) /* 0776B0 7F042B80 E7AA0018 */ swc1 $f10, 0x18($sp) /* 0776B4 7F042B84 E7B2001C */ swc1 $f18, 0x1c($sp) /* 0776B8 7F042B88 0FC2C389 */ jal stanTestLineUnobstructed /* 0776BC 7F042B8C E7A40020 */ swc1 $f4, 0x20($sp) /* 0776C0 7F042B90 1040001D */ beqz $v0, .L7F042C08 /* 0776C4 7F042B94 8FAE00B8 */ lw $t6, 0xb8($sp) /* 0776C8 7F042B98 11C0001B */ beqz $t6, .L7F042C08 /* 0776CC 7F042B9C 27A400B8 */ addiu $a0, $sp, 0xb8 /* 0776D0 7F042BA0 C7A80090 */ lwc1 $f8, 0x90($sp) /* 0776D4 7F042BA4 C7B0008C */ lwc1 $f16, 0x8c($sp) /* 0776D8 7F042BA8 240F001F */ li $t7, 31 /* 0776DC 7F042BAC AFAF0010 */ sw $t7, 0x10($sp) /* 0776E0 7F042BB0 8FA50098 */ lw $a1, 0x98($sp) /* 0776E4 7F042BB4 8FA600A0 */ lw $a2, 0xa0($sp) /* 0776E8 7F042BB8 8FA700B4 */ lw $a3, 0xb4($sp) /* 0776EC 7F042BBC E7A80014 */ swc1 $f8, 0x14($sp) /* 0776F0 7F042BC0 0FC2C62E */ jal stanTestVolume /* 0776F4 7F042BC4 E7B00018 */ swc1 $f16, 0x18($sp) /* 0776F8 7F042BC8 0441000F */ bgez $v0, .L7F042C08 /* 0776FC 7F042BCC C7AA0098 */ lwc1 $f10, 0x98($sp) /* 077700 7F042BD0 8FA200C0 */ lw $v0, 0xc0($sp) /* 077704 7F042BD4 E44A0058 */ swc1 $f10, 0x58($v0) /* 077708 7F042BD8 C7B200A0 */ lwc1 $f18, 0xa0($sp) /* 07770C 7F042BDC E4520060 */ swc1 $f18, 0x60($v0) /* 077710 7F042BE0 8FB800B8 */ lw $t8, 0xb8($sp) /* 077714 7F042BE4 AE180014 */ sw $t8, 0x14($s0) /* 077718 7F042BE8 C7A40098 */ lwc1 $f4, 0x98($sp) /* 07771C 7F042BEC E6040008 */ swc1 $f4, 8($s0) /* 077720 7F042BF0 C7A600A0 */ lwc1 $f6, 0xa0($sp) /* 077724 7F042BF4 E6060010 */ swc1 $f6, 0x10($s0) /* 077728 7F042BF8 C7A0009C */ lwc1 $f0, 0x9c($sp) /* 07772C 7F042BFC E600000C */ swc1 $f0, 0xc($s0) /* 077730 7F042C00 100000A7 */ b .L7F042EA0 /* 077734 7F042C04 E440005C */ swc1 $f0, 0x5c($v0) .L7F042C08: /* 077738 7F042C08 27A40080 */ addiu $a0, $sp, 0x80 /* 07773C 7F042C0C 0FC2CA2C */ jal getCollisionEdge_maybe /* 077740 7F042C10 27A50074 */ addiu $a1, $sp, 0x74 /* 077744 7F042C14 C7A8007C */ lwc1 $f8, 0x7c($sp) /* 077748 7F042C18 C7B00088 */ lwc1 $f16, 0x88($sp) /* 07774C 7F042C1C 8FA400CC */ lw $a0, 0xcc($sp) /* 077750 7F042C20 44801000 */ mtc1 $zero, $f2 /* 077754 7F042C24 46104281 */ sub.s $f10, $f8, $f16 /* 077758 7F042C28 24850004 */ addiu $a1, $a0, 4 /* 07775C 7F042C2C E4820004 */ swc1 $f2, 4($a0) /* 077760 7F042C30 E48A0000 */ swc1 $f10, ($a0) /* 077764 7F042C34 C4880000 */ lwc1 $f8, ($a0) /* 077768 7F042C38 C7A40074 */ lwc1 $f4, 0x74($sp) /* 07776C 7F042C3C C7B20080 */ lwc1 $f18, 0x80($sp) /* 077770 7F042C40 46081032 */ c.eq.s $f2, $f8 /* 077774 7F042C44 46049181 */ sub.s $f6, $f18, $f4 /* 077778 7F042C48 45000007 */ bc1f .L7F042C68 /* 07777C 7F042C4C E4860008 */ swc1 $f6, 8($a0) /* 077780 7F042C50 C4900008 */ lwc1 $f16, 8($a0) /* 077784 7F042C54 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 077788 7F042C58 46101032 */ c.eq.s $f2, $f16 /* 07778C 7F042C5C 00000000 */ nop /* 077790 7F042C60 45030006 */ bc1tl .L7F042C7C /* 077794 7F042C64 44815000 */ mtc1 $at, $f10 .L7F042C68: /* 077798 7F042C68 0C007DD4 */ jal guNormalize /* 07779C 7F042C6C 24860008 */ addiu $a2, $a0, 8 /* 0777A0 7F042C70 10000005 */ b .L7F042C88 /* 0777A4 7F042C74 C6000008 */ lwc1 $f0, 8($s0) /* 0777A8 7F042C78 44815000 */ mtc1 $at, $f10 .L7F042C7C: /* 0777AC 7F042C7C 00000000 */ nop /* 0777B0 7F042C80 E48A0008 */ swc1 $f10, 8($a0) /* 0777B4 7F042C84 C6000008 */ lwc1 $f0, 8($s0) .L7F042C88: /* 0777B8 7F042C88 C7B20098 */ lwc1 $f18, 0x98($sp) /* 0777BC 7F042C8C C7A4009C */ lwc1 $f4, 0x9c($sp) /* 0777C0 7F042C90 C7AA0098 */ lwc1 $f10, 0x98($sp) /* 0777C4 7F042C94 46009032 */ c.eq.s $f18, $f0 /* 0777C8 7F042C98 00000000 */ nop /* 0777CC 7F042C9C 4502000F */ bc1fl .L7F042CDC /* 0777D0 7F042CA0 46005481 */ sub.s $f18, $f10, $f0 /* 0777D4 7F042CA4 C606000C */ lwc1 $f6, 0xc($s0) /* 0777D8 7F042CA8 C7A800A0 */ lwc1 $f8, 0xa0($sp) /* 0777DC 7F042CAC 46062032 */ c.eq.s $f4, $f6 /* 0777E0 7F042CB0 00000000 */ nop /* 0777E4 7F042CB4 45020009 */ bc1fl .L7F042CDC /* 0777E8 7F042CB8 46005481 */ sub.s $f18, $f10, $f0 /* 0777EC 7F042CBC C6100010 */ lwc1 $f16, 0x10($s0) /* 0777F0 7F042CC0 8FA200C8 */ lw $v0, 0xc8($sp) /* 0777F4 7F042CC4 C7B20098 */ lwc1 $f18, 0x98($sp) /* 0777F8 7F042CC8 46104032 */ c.eq.s $f8, $f16 /* 0777FC 7F042CCC 00000000 */ nop /* 077800 7F042CD0 4503006A */ bc1tl .L7F042E7C /* 077804 7F042CD4 E4520000 */ swc1 $f18, ($v0) /* 077808 7F042CD8 46005481 */ sub.s $f18, $f10, $f0 .L7F042CDC: /* 07780C 7F042CDC C7A4009C */ lwc1 $f4, 0x9c($sp) /* 077810 7F042CE0 C7B000A0 */ lwc1 $f16, 0xa0($sp) /* 077814 7F042CE4 26040008 */ addiu $a0, $s0, 8 /* 077818 7F042CE8 E7B200A4 */ swc1 $f18, 0xa4($sp) /* 07781C 7F042CEC C606000C */ lwc1 $f6, 0xc($s0) /* 077820 7F042CF0 27A500A4 */ addiu $a1, $sp, 0xa4 /* 077824 7F042CF4 8FA600C8 */ lw $a2, 0xc8($sp) /* 077828 7F042CF8 46062201 */ sub.s $f8, $f4, $f6 /* 07782C 7F042CFC E7A800A8 */ swc1 $f8, 0xa8($sp) /* 077830 7F042D00 C60A0010 */ lwc1 $f10, 0x10($s0) /* 077834 7F042D04 460A8481 */ sub.s $f18, $f16, $f10 /* 077838 7F042D08 0FC09893 */ jal chrlvStanLineDirIntersection /* 07783C 7F042D0C E7B200AC */ swc1 $f18, 0xac($sp) /* 077840 7F042D10 C7A400B4 */ lwc1 $f4, 0xb4($sp) /* 077844 7F042D14 C7B00080 */ lwc1 $f16, 0x80($sp) /* 077848 7F042D18 C7AA0088 */ lwc1 $f10, 0x88($sp) /* 07784C 7F042D1C E7A4005C */ swc1 $f4, 0x5c($sp) /* 077850 7F042D20 C6060008 */ lwc1 $f6, 8($s0) /* 077854 7F042D24 C7B20074 */ lwc1 $f18, 0x74($sp) /* 077858 7F042D28 C7A4007C */ lwc1 $f4, 0x7c($sp) /* 07785C 7F042D2C E7A60060 */ swc1 $f6, 0x60($sp) /* 077860 7F042D30 C6080010 */ lwc1 $f8, 0x10($s0) /* 077864 7F042D34 E7B00054 */ swc1 $f16, 0x54($sp) /* 077868 7F042D38 E7AA0058 */ swc1 $f10, 0x58($sp) /* 07786C 7F042D3C E7B2004C */ swc1 $f18, 0x4c($sp) /* 077870 7F042D40 E7A40050 */ swc1 $f4, 0x50($sp) /* 077874 7F042D44 E7A80064 */ swc1 $f8, 0x64($sp) /* 077878 7F042D48 C6080008 */ lwc1 $f8, 8($s0) /* 07787C 7F042D4C C7A60098 */ lwc1 $f6, 0x98($sp) /* 077880 7F042D50 C7AA00A0 */ lwc1 $f10, 0xa0($sp) /* 077884 7F042D54 27A4005C */ addiu $a0, $sp, 0x5c /* 077888 7F042D58 46083401 */ sub.s $f16, $f6, $f8 /* 07788C 7F042D5C 27A50054 */ addiu $a1, $sp, 0x54 /* 077890 7F042D60 27A6004C */ addiu $a2, $sp, 0x4c /* 077894 7F042D64 27A70044 */ addiu $a3, $sp, 0x44 /* 077898 7F042D68 E7B00044 */ swc1 $f16, 0x44($sp) /* 07789C 7F042D6C C6120010 */ lwc1 $f18, 0x10($s0) /* 0778A0 7F042D70 46125101 */ sub.s $f4, $f10, $f18 /* 0778A4 7F042D74 0FC2CCF7 */ jal calculateNormalizedLineIntersection /* 0778A8 7F042D78 E7A40048 */ swc1 $f4, 0x48($sp) /* 0778AC 7F042D7C C7A80044 */ lwc1 $f8, 0x44($sp) /* 0778B0 7F042D80 3C018005 */ lui $at, %hi(D_80052A5C) /* 0778B4 7F042D84 C4222A5C */ lwc1 $f2, %lo(D_80052A5C)($at) /* 0778B8 7F042D88 46004402 */ mul.s $f16, $f8, $f0 /* 0778BC 7F042D8C 8E190014 */ lw $t9, 0x14($s0) /* 0778C0 7F042D90 C7A4009C */ lwc1 $f4, 0x9c($sp) /* 0778C4 7F042D94 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 0778C8 7F042D98 AFB900B8 */ sw $t9, 0xb8($sp) /* 0778CC 7F042D9C C6060008 */ lwc1 $f6, 8($s0) /* 0778D0 7F042DA0 E7A4006C */ swc1 $f4, 0x6c($sp) /* 0778D4 7F042DA4 46028282 */ mul.s $f10, $f16, $f2 /* 0778D8 7F042DA8 C7B00048 */ lwc1 $f16, 0x48($sp) /* 0778DC 7F042DAC 2408001F */ li $t0, 31 /* 0778E0 7F042DB0 27A400B8 */ addiu $a0, $sp, 0xb8 /* 0778E4 7F042DB4 460A3480 */ add.s $f18, $f6, $f10 /* 0778E8 7F042DB8 46008182 */ mul.s $f6, $f16, $f0 /* 0778EC 7F042DBC C7B00090 */ lwc1 $f16, 0x90($sp) /* 0778F0 7F042DC0 E7B20068 */ swc1 $f18, 0x68($sp) /* 0778F4 7F042DC4 C6080010 */ lwc1 $f8, 0x10($s0) /* 0778F8 7F042DC8 8FA70068 */ lw $a3, 0x68($sp) /* 0778FC 7F042DCC 46023282 */ mul.s $f10, $f6, $f2 /* 077900 7F042DD0 C7A6008C */ lwc1 $f6, 0x8c($sp) /* 077904 7F042DD4 460A4480 */ add.s $f18, $f8, $f10 /* 077908 7F042DD8 44815000 */ mtc1 $at, $f10 /* 07790C 7F042DDC 44804000 */ mtc1 $zero, $f8 /* 077910 7F042DE0 E7B20070 */ swc1 $f18, 0x70($sp) /* 077914 7F042DE4 8E060010 */ lw $a2, 0x10($s0) /* 077918 7F042DE8 8E050008 */ lw $a1, 8($s0) /* 07791C 7F042DEC C7A40070 */ lwc1 $f4, 0x70($sp) /* 077920 7F042DF0 AFA80014 */ sw $t0, 0x14($sp) /* 077924 7F042DF4 E7B00018 */ swc1 $f16, 0x18($sp) /* 077928 7F042DF8 E7A6001C */ swc1 $f6, 0x1c($sp) /* 07792C 7F042DFC E7AA0024 */ swc1 $f10, 0x24($sp) /* 077930 7F042E00 E7A80020 */ swc1 $f8, 0x20($sp) /* 077934 7F042E04 0FC2C389 */ jal stanTestLineUnobstructed /* 077938 7F042E08 E7A40010 */ swc1 $f4, 0x10($sp) /* 07793C 7F042E0C 1040001F */ beqz $v0, .L7F042E8C /* 077940 7F042E10 8FA900B8 */ lw $t1, 0xb8($sp) /* 077944 7F042E14 1120001D */ beqz $t1, .L7F042E8C /* 077948 7F042E18 27A400B8 */ addiu $a0, $sp, 0xb8 /* 07794C 7F042E1C C7B20090 */ lwc1 $f18, 0x90($sp) /* 077950 7F042E20 C7A4008C */ lwc1 $f4, 0x8c($sp) /* 077954 7F042E24 240A001F */ li $t2, 31 /* 077958 7F042E28 AFAA0010 */ sw $t2, 0x10($sp) /* 07795C 7F042E2C 8FA50068 */ lw $a1, 0x68($sp) /* 077960 7F042E30 8FA60070 */ lw $a2, 0x70($sp) /* 077964 7F042E34 8FA700B4 */ lw $a3, 0xb4($sp) /* 077968 7F042E38 E7B20014 */ swc1 $f18, 0x14($sp) /* 07796C 7F042E3C 0FC2C62E */ jal stanTestVolume /* 077970 7F042E40 E7A40018 */ swc1 $f4, 0x18($sp) /* 077974 7F042E44 04410011 */ bgez $v0, .L7F042E8C /* 077978 7F042E48 C7B00068 */ lwc1 $f16, 0x68($sp) /* 07797C 7F042E4C 8FAB00C0 */ lw $t3, 0xc0($sp) /* 077980 7F042E50 E5700058 */ swc1 $f16, 0x58($t3) /* 077984 7F042E54 C7A60070 */ lwc1 $f6, 0x70($sp) /* 077988 7F042E58 E5660060 */ swc1 $f6, 0x60($t3) /* 07798C 7F042E5C 8FAC00B8 */ lw $t4, 0xb8($sp) /* 077990 7F042E60 AE0C0014 */ sw $t4, 0x14($s0) /* 077994 7F042E64 C7A80068 */ lwc1 $f8, 0x68($sp) /* 077998 7F042E68 E6080008 */ swc1 $f8, 8($s0) /* 07799C 7F042E6C C7AA0070 */ lwc1 $f10, 0x70($sp) /* 0779A0 7F042E70 10000006 */ b .L7F042E8C /* 0779A4 7F042E74 E60A0010 */ swc1 $f10, 0x10($s0) /* 0779A8 7F042E78 E4520000 */ swc1 $f18, ($v0) .L7F042E7C: /* 0779AC 7F042E7C C7A4009C */ lwc1 $f4, 0x9c($sp) /* 0779B0 7F042E80 E4440004 */ swc1 $f4, 4($v0) /* 0779B4 7F042E84 C7B000A0 */ lwc1 $f16, 0xa0($sp) /* 0779B8 7F042E88 E4500008 */ swc1 $f16, 8($v0) .L7F042E8C: /* 0779BC 7F042E8C C7A0006C */ lwc1 $f0, 0x6c($sp) /* 0779C0 7F042E90 E600000C */ swc1 $f0, 0xc($s0) /* 0779C4 7F042E94 8FAD00C0 */ lw $t5, 0xc0($sp) /* 0779C8 7F042E98 E5A0005C */ swc1 $f0, 0x5c($t5) /* 0779CC 7F042E9C AFA000B0 */ sw $zero, 0xb0($sp) .L7F042EA0: /* 0779D0 7F042EA0 8FBF0034 */ lw $ra, 0x34($sp) .L7F042EA4: /* 0779D4 7F042EA4 8FA200B0 */ lw $v0, 0xb0($sp) /* 0779D8 7F042EA8 8FB00030 */ lw $s0, 0x30($sp) /* 0779DC 7F042EAC 03E00008 */ jr $ra /* 0779E0 7F042EB0 27BD00C0 */ addiu $sp, $sp, 0xc0 ) #endif /** * US address 7F042EB4. */ s32 sub_GAME_7F042EB4(struct ObjectRecord *arg0, f32 *arg1, struct coord3d *arg2, struct coord3d *arg3, s32 arg4, s32 arg5) { if ((arg0->runtime_bitflags & RUNTIMEBITFLAG_DEPOSIT) && arg0->projectile->flags & 4) { return handles_projectile_motion(arg0, arg1, arg2, arg3, arg4, arg5); } return sub_GAME_7F042A0C(arg0, arg1, arg2, arg3, arg4); } /** * Update a speed and distance travelled, factoring in acceleration, * deceleration and the global update multiplier. * * The new speed and distance done are written back to those pointers. * * offsets: 077A48, 7F042F18 * (copied from Perfect Dark) */ void chrobjApplySpeed(f32 *openPosition, f32 maxFrac, f32 *speedPtr, f32 accel, f32 decel, f32 maxSpeed) { f32 speed = *speedPtr; s32 i; for (i = 0; i < g_ClockTimer; i++) { f32 limit = speed * speed * 0.5f / decel; f32 distRemaining = maxFrac - *openPosition; if (distRemaining > 0.0f) { if (speed > 0.0f && distRemaining <= limit) { // Slow down for end speed -= decel; if (speed < decel) { speed = decel; } } else if (speed < maxSpeed) { // Accelerate if (speed < 0.0f) { speed += decel; } else { speed += accel; } if (speed > maxSpeed) { speed = maxSpeed; } } if (speed >= distRemaining) { *openPosition = maxFrac; break; } *openPosition += speed; } else { if (speed < 0.0f && -distRemaining <= limit) { speed += decel; if (speed > -decel) { speed = -decel; } } else if (speed > -maxSpeed) { if (speed > 0.0f) { speed -= decel; } else { speed -= accel; } if (speed < -maxSpeed) { speed = -maxSpeed; } } if (speed <= distRemaining) { *openPosition = maxFrac; break; } *openPosition += speed; } } *speedPtr = speed; } /** * Address 0x7F04310C. */ void chrobjCallsApplySpeed(f32 *openPosition, f32 maxFrac, f32 *speedPtr, f32 accel, f32 decel, f32 maxSpeed) { if (maxFrac - *openPosition < -M_PI_F) { maxFrac += M_TAU_F; } else if (maxFrac - *openPosition >= M_PI_F) { maxFrac -= M_TAU_F; } chrobjApplySpeed(openPosition, maxFrac, speedPtr, accel, decel, maxSpeed); if (*openPosition < 0.0f) { *openPosition = *openPosition + M_TAU_F; } if (*openPosition >= M_TAU_F) { *openPosition = *openPosition - M_TAU_F; } } #ifdef NONMATCHING void sub_GAME_7F0431E4(void) { } #else GLOBAL_ASM( .late_rodata glabel D_80052A74 .word 0x40c90fdb /*6.2831855*/ glabel D_80052A78 .word 0x3d4ccccd /*0.050000001*/ glabel D_80052A7C .word 0x40c90fdb /*6.2831855*/ glabel D_80052A80 .word 0x3d4ccccd /*0.050000001*/ glabel D_80052A84 .word 0x3cf5c28f /*0.029999999*/ glabel D_80052A88 .word 0x3e19999a /*0.15000001*/ .text glabel sub_GAME_7F0431E4 /* 077D14 7F0431E4 27BDFEE8 */ addiu $sp, $sp, -0x118 /* 077D18 7F0431E8 AFBF001C */ sw $ra, 0x1c($sp) /* 077D1C 7F0431EC AFB10018 */ sw $s1, 0x18($sp) /* 077D20 7F0431F0 AFB00014 */ sw $s0, 0x14($sp) /* 077D24 7F0431F4 AFA5011C */ sw $a1, 0x11c($sp) /* 077D28 7F0431F8 8C8E0064 */ lw $t6, 0x64($a0) /* 077D2C 7F0431FC 3C01FFFE */ li $at, 0xFFFE0000 # -nan /* 077D30 7F043200 3421FFFF */ ori $at, (0xFFFEFFFF & 0xFFFF) # ori $at, $at, 0xffff /* 077D34 7F043204 01C17824 */ and $t7, $t6, $at /* 077D38 7F043208 31F90080 */ andi $t9, $t7, 0x80 /* 077D3C 7F04320C 00808825 */ move $s1, $a0 /* 077D40 7F043210 1320010A */ beqz $t9, .L7F04363C /* 077D44 7F043214 AC8F0064 */ sw $t7, 0x64($a0) /* 077D48 7F043218 90880003 */ lbu $t0, 3($a0) /* 077D4C 7F04321C 8C90006C */ lw $s0, 0x6c($a0) /* 077D50 7F043220 24010001 */ li $at, 1 /* 077D54 7F043224 15010009 */ bne $t0, $at, .L7F04324C /* 077D58 7F043228 26240018 */ addiu $a0, $s1, 0x18 /* 077D5C 7F04322C 0FC0FEDC */ jal projectileFree /* 077D60 7F043230 02002025 */ move $a0, $s0 /* 077D64 7F043234 8E290064 */ lw $t1, 0x64($s1) /* 077D68 7F043238 2401FF7F */ li $at, -129 /* 077D6C 7F04323C AE20006C */ sw $zero, 0x6c($s1) /* 077D70 7F043240 01215024 */ and $t2, $t1, $at /* 077D74 7F043244 100000FD */ b .L7F04363C /* 077D78 7F043248 AE2A0064 */ sw $t2, 0x64($s1) .L7F04324C: /* 077D7C 7F04324C 8E0B0000 */ lw $t3, ($s0) /* 077D80 7F043250 2401FFFE */ li $at, -2 /* 077D84 7F043254 AE000088 */ sw $zero, 0x88($s0) /* 077D88 7F043258 01616024 */ and $t4, $t3, $at /* 077D8C 7F04325C 2401FFFB */ li $at, -5 /* 077D90 7F043260 AE0C0000 */ sw $t4, ($s0) /* 077D94 7F043264 01817024 */ and $t6, $t4, $at /* 077D98 7F043268 AE0E0000 */ sw $t6, ($s0) /* 077D9C 7F04326C AFA40028 */ sw $a0, 0x28($sp) /* 077DA0 7F043270 0FC16218 */ jal matrix_4x4_get_rotation_around_xyz /* 077DA4 7F043274 27A5010C */ addiu $a1, $sp, 0x10c /* 077DA8 7F043278 27A4010C */ addiu $a0, $sp, 0x10c /* 077DAC 7F04327C 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz /* 077DB0 7F043280 27A500CC */ addiu $a1, $sp, 0xcc /* 077DB4 7F043284 26050068 */ addiu $a1, $s0, 0x68 /* 077DB8 7F043288 AFA50024 */ sw $a1, 0x24($sp) /* 077DBC 7F04328C 0FC16CFD */ jal quaternion_set_rotation_around_xyzf /* 077DC0 7F043290 27A4010C */ addiu $a0, $sp, 0x10c /* 077DC4 7F043294 27A400CC */ addiu $a0, $sp, 0xcc /* 077DC8 7F043298 0FC1674E */ jal matrix_4x4_set_rotation_inverse /* 077DCC 7F04329C 27A5008C */ addiu $a1, $sp, 0x8c /* 077DD0 7F0432A0 27A4008C */ addiu $a0, $sp, 0x8c /* 077DD4 7F0432A4 8FA50028 */ lw $a1, 0x28($sp) /* 077DD8 7F0432A8 0FC16032 */ jal matrix_4x4_multiply /* 077DDC 7F0432AC 27A6004C */ addiu $a2, $sp, 0x4c /* 077DE0 7F0432B0 C7A2004C */ lwc1 $f2, 0x4c($sp) /* 077DE4 7F0432B4 C7AE0050 */ lwc1 $f14, 0x50($sp) /* 077DE8 7F0432B8 C7A00054 */ lwc1 $f0, 0x54($sp) /* 077DEC 7F0432BC 46021102 */ mul.s $f4, $f2, $f2 /* 077DF0 7F0432C0 00000000 */ nop /* 077DF4 7F0432C4 460E7182 */ mul.s $f6, $f14, $f14 /* 077DF8 7F0432C8 46062200 */ add.s $f8, $f4, $f6 /* 077DFC 7F0432CC 46000282 */ mul.s $f10, $f0, $f0 /* 077E00 7F0432D0 0C007DF8 */ jal sqrtf /* 077E04 7F0432D4 46085300 */ add.s $f12, $f10, $f8 /* 077E08 7F0432D8 E60000C0 */ swc1 $f0, 0xc0($s0) /* 077E0C 7F0432DC C7A4005C */ lwc1 $f4, 0x5c($sp) /* 077E10 7F0432E0 C7AA0060 */ lwc1 $f10, 0x60($sp) /* 077E14 7F0432E4 46042182 */ mul.s $f6, $f4, $f4 /* 077E18 7F0432E8 00000000 */ nop /* 077E1C 7F0432EC 460A5202 */ mul.s $f8, $f10, $f10 /* 077E20 7F0432F0 C7AA0064 */ lwc1 $f10, 0x64($sp) /* 077E24 7F0432F4 46083100 */ add.s $f4, $f6, $f8 /* 077E28 7F0432F8 460A5182 */ mul.s $f6, $f10, $f10 /* 077E2C 7F0432FC 0C007DF8 */ jal sqrtf /* 077E30 7F043300 46043300 */ add.s $f12, $f6, $f4 /* 077E34 7F043304 E60000C4 */ swc1 $f0, 0xc4($s0) /* 077E38 7F043308 C7A8006C */ lwc1 $f8, 0x6c($sp) /* 077E3C 7F04330C C7A60070 */ lwc1 $f6, 0x70($sp) /* 077E40 7F043310 46084282 */ mul.s $f10, $f8, $f8 /* 077E44 7F043314 00000000 */ nop /* 077E48 7F043318 46063102 */ mul.s $f4, $f6, $f6 /* 077E4C 7F04331C C7A60074 */ lwc1 $f6, 0x74($sp) /* 077E50 7F043320 46045200 */ add.s $f8, $f10, $f4 /* 077E54 7F043324 46063282 */ mul.s $f10, $f6, $f6 /* 077E58 7F043328 0C007DF8 */ jal sqrtf /* 077E5C 7F04332C 46085300 */ add.s $f12, $f10, $f8 /* 077E60 7F043330 E60000C8 */ swc1 $f0, 0xc8($s0) /* 077E64 7F043334 44808000 */ mtc1 $zero, $f16 /* 077E68 7F043338 C6220018 */ lwc1 $f2, 0x18($s1) /* 077E6C 7F04333C C62E0020 */ lwc1 $f14, 0x20($s1) /* 077E70 7F043340 46101032 */ c.eq.s $f2, $f16 /* 077E74 7F043344 00000000 */ nop /* 077E78 7F043348 45000005 */ bc1f .L7F043360 /* 077E7C 7F04334C 00000000 */ nop /* 077E80 7F043350 46107032 */ c.eq.s $f14, $f16 /* 077E84 7F043354 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 077E88 7F043358 45030013 */ bc1tl .L7F0433A8 /* 077E8C 7F04335C 44817000 */ mtc1 $at, $f14 .L7F043360: /* 077E90 7F043360 46021102 */ mul.s $f4, $f2, $f2 /* 077E94 7F043364 E7A20048 */ swc1 $f2, 0x48($sp) /* 077E98 7F043368 E7AE0044 */ swc1 $f14, 0x44($sp) /* 077E9C 7F04336C 460E7182 */ mul.s $f6, $f14, $f14 /* 077EA0 7F043370 0C007DF8 */ jal sqrtf /* 077EA4 7F043374 46062300 */ add.s $f12, $f4, $f6 /* 077EA8 7F043378 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 077EAC 7F04337C 44819000 */ mtc1 $at, $f18 /* 077EB0 7F043380 C7A20048 */ lwc1 $f2, 0x48($sp) /* 077EB4 7F043384 C7AE0044 */ lwc1 $f14, 0x44($sp) /* 077EB8 7F043388 46009303 */ div.s $f12, $f18, $f0 /* 077EBC 7F04338C 44808000 */ mtc1 $zero, $f16 /* 077EC0 7F043390 460C1082 */ mul.s $f2, $f2, $f12 /* 077EC4 7F043394 00000000 */ nop /* 077EC8 7F043398 460C7382 */ mul.s $f14, $f14, $f12 /* 077ECC 7F04339C 10000004 */ b .L7F0433B0 /* 077ED0 7F0433A0 00000000 */ nop /* 077ED4 7F0433A4 44817000 */ mtc1 $at, $f14 .L7F0433A8: /* 077ED8 7F0433A8 44819000 */ mtc1 $at, $f18 /* 077EDC 7F0433AC 46008086 */ mov.s $f2, $f16 .L7F0433B0: /* 077EE0 7F0433B0 E7A2008C */ swc1 $f2, 0x8c($sp) /* 077EE4 7F0433B4 E7B00090 */ swc1 $f16, 0x90($sp) /* 077EE8 7F0433B8 E7AE0094 */ swc1 $f14, 0x94($sp) /* 077EEC 7F0433BC E7B00098 */ swc1 $f16, 0x98($sp) /* 077EF0 7F0433C0 C62A002C */ lwc1 $f10, 0x2c($s1) /* 077EF4 7F0433C4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 /* 077EF8 7F0433C8 27A4008C */ addiu $a0, $sp, 0x8c /* 077EFC 7F0433CC 460A803E */ c.le.s $f16, $f10 /* 077F00 7F0433D0 27A5010C */ addiu $a1, $sp, 0x10c /* 077F04 7F0433D4 4502000C */ bc1fl .L7F043408 /* 077F08 7F0433D8 44812000 */ mtc1 $at, $f4 /* 077F0C 7F0433DC 46007207 */ neg.s $f8, $f14 /* 077F10 7F0433E0 E7B0009C */ swc1 $f16, 0x9c($sp) /* 077F14 7F0433E4 E7B200A0 */ swc1 $f18, 0xa0($sp) /* 077F18 7F0433E8 E7B000A4 */ swc1 $f16, 0xa4($sp) /* 077F1C 7F0433EC E7B000A8 */ swc1 $f16, 0xa8($sp) /* 077F20 7F0433F0 E7A800AC */ swc1 $f8, 0xac($sp) /* 077F24 7F0433F4 E7B000B0 */ swc1 $f16, 0xb0($sp) /* 077F28 7F0433F8 E7A200B4 */ swc1 $f2, 0xb4($sp) /* 077F2C 7F0433FC 1000000B */ b .L7F04342C /* 077F30 7F043400 E7B000B8 */ swc1 $f16, 0xb8($sp) /* 077F34 7F043404 44812000 */ mtc1 $at, $f4 .L7F043408: /* 077F38 7F043408 46001187 */ neg.s $f6, $f2 /* 077F3C 7F04340C E7B0009C */ swc1 $f16, 0x9c($sp) /* 077F40 7F043410 E7B000A4 */ swc1 $f16, 0xa4($sp) /* 077F44 7F043414 E7B000A8 */ swc1 $f16, 0xa8($sp) /* 077F48 7F043418 E7AE00AC */ swc1 $f14, 0xac($sp) /* 077F4C 7F04341C E7B000B0 */ swc1 $f16, 0xb0($sp) /* 077F50 7F043420 E7A600B4 */ swc1 $f6, 0xb4($sp) /* 077F54 7F043424 E7B000B8 */ swc1 $f16, 0xb8($sp) /* 077F58 7F043428 E7A400A0 */ swc1 $f4, 0xa0($sp) .L7F04342C: /* 077F5C 7F04342C E7B000BC */ swc1 $f16, 0xbc($sp) /* 077F60 7F043430 E7B000C0 */ swc1 $f16, 0xc0($sp) /* 077F64 7F043434 E7B000C4 */ swc1 $f16, 0xc4($sp) /* 077F68 7F043438 0FC16218 */ jal matrix_4x4_get_rotation_around_xyz /* 077F6C 7F04343C E7B200C8 */ swc1 $f18, 0xc8($sp) /* 077F70 7F043440 26050078 */ addiu $a1, $s0, 0x78 /* 077F74 7F043444 AFA50028 */ sw $a1, 0x28($sp) /* 077F78 7F043448 0FC16CFD */ jal quaternion_set_rotation_around_xyzf /* 077F7C 7F04344C 27A4010C */ addiu $a0, $sp, 0x10c /* 077F80 7F043450 8FA50028 */ lw $a1, 0x28($sp) /* 077F84 7F043454 0FC16F84 */ jal quaternion_ensure_shortest_path /* 077F88 7F043458 8FA40024 */ lw $a0, 0x24($sp) /* 077F8C 7F04345C 44808000 */ mtc1 $zero, $f16 /* 077F90 7F043460 00000000 */ nop /* 077F94 7F043464 E6100060 */ swc1 $f16, 0x60($s0) /* 077F98 7F043468 C7A800CC */ lwc1 $f8, 0xcc($sp) /* 077F9C 7F04346C C7AA008C */ lwc1 $f10, 0x8c($sp) /* 077FA0 7F043470 C7A60090 */ lwc1 $f6, 0x90($sp) /* 077FA4 7F043474 46085102 */ mul.s $f4, $f10, $f8 /* 077FA8 7F043478 C7AA00D0 */ lwc1 $f10, 0xd0($sp) /* 077FAC 7F04347C 460A3202 */ mul.s $f8, $f6, $f10 /* 077FB0 7F043480 C7AA00D4 */ lwc1 $f10, 0xd4($sp) /* 077FB4 7F043484 46082180 */ add.s $f6, $f4, $f8 /* 077FB8 7F043488 C7A40094 */ lwc1 $f4, 0x94($sp) /* 077FBC 7F04348C 46045202 */ mul.s $f8, $f10, $f4 /* 077FC0 7F043490 0FC16B2C */ jal acosf /* 077FC4 7F043494 46064300 */ add.s $f12, $f8, $f6 /* 077FC8 7F043498 44808000 */ mtc1 $zero, $f16 /* 077FCC 7F04349C 46000486 */ mov.s $f18, $f0 /* 077FD0 7F0434A0 4600803C */ c.lt.s $f16, $f0 /* 077FD4 7F0434A4 00000000 */ nop /* 077FD8 7F0434A8 45020018 */ bc1fl .L7F04350C /* 077FDC 7F0434AC 4600803C */ c.lt.s $f16, $f0 /* 077FE0 7F0434B0 C622001C */ lwc1 $f2, 0x1c($s1) /* 077FE4 7F0434B4 8FA2011C */ lw $v0, 0x11c($sp) /* 077FE8 7F0434B8 4602803C */ c.lt.s $f16, $f2 /* 077FEC 7F0434BC 00000000 */ nop /* 077FF0 7F0434C0 45020012 */ bc1fl .L7F04350C /* 077FF4 7F0434C4 4600803C */ c.lt.s $f16, $f0 /* 077FF8 7F0434C8 C44A0004 */ lwc1 $f10, 4($v0) /* 077FFC 7F0434CC 3C014080 */ li $at, 0x40800000 # 4.000000 /* 078000 7F0434D0 4602503C */ c.lt.s $f10, $f2 /* 078004 7F0434D4 00000000 */ nop /* 078008 7F0434D8 4502000C */ bc1fl .L7F04350C /* 07800C 7F0434DC 4600803C */ c.lt.s $f16, $f0 /* 078010 7F0434E0 44812000 */ mtc1 $at, $f4 /* 078014 7F0434E4 3C018005 */ lui $at, %hi(D_80052A74) /* 078018 7F0434E8 C4262A74 */ lwc1 $f6, %lo(D_80052A74)($at) /* 07801C 7F0434EC 46040202 */ mul.s $f8, $f0, $f4 /* 078020 7F0434F0 3C018005 */ lui $at, %hi(D_80052A78) /* 078024 7F0434F4 C4242A78 */ lwc1 $f4, %lo(D_80052A78)($at) /* 078028 7F0434F8 46064283 */ div.s $f10, $f8, $f6 /* 07802C 7F0434FC 460A2203 */ div.s $f8, $f4, $f10 /* 078030 7F043500 10000037 */ b .L7F0435E0 /* 078034 7F043504 E6080064 */ swc1 $f8, 0x64($s0) /* 078038 7F043508 4600803C */ c.lt.s $f16, $f0 .L7F04350C: /* 07803C 7F04350C 8FA2011C */ lw $v0, 0x11c($sp) /* 078040 7F043510 C622001C */ lwc1 $f2, 0x1c($s1) /* 078044 7F043514 45000013 */ bc1f .L7F043564 /* 078048 7F043518 C44E0004 */ lwc1 $f14, 4($v0) /* 07804C 7F04351C 4610103C */ c.lt.s $f2, $f16 /* 078050 7F043520 00000000 */ nop /* 078054 7F043524 45020010 */ bc1fl .L7F043568 /* 078058 7F043528 C62A0020 */ lwc1 $f10, 0x20($s1) /* 07805C 7F04352C 460E103C */ c.lt.s $f2, $f14 /* 078060 7F043530 3C014080 */ li $at, 0x40800000 # 4.000000 /* 078064 7F043534 4502000C */ bc1fl .L7F043568 /* 078068 7F043538 C62A0020 */ lwc1 $f10, 0x20($s1) /* 07806C 7F04353C 44813000 */ mtc1 $at, $f6 /* 078070 7F043540 3C018005 */ lui $at, %hi(D_80052A7C) /* 078074 7F043544 C42A2A7C */ lwc1 $f10, %lo(D_80052A7C)($at) /* 078078 7F043548 46060102 */ mul.s $f4, $f0, $f6 /* 07807C 7F04354C 3C018005 */ lui $at, %hi(D_80052A80) /* 078080 7F043550 C4262A80 */ lwc1 $f6, %lo(D_80052A80)($at) /* 078084 7F043554 460A2203 */ div.s $f8, $f4, $f10 /* 078088 7F043558 46083103 */ div.s $f4, $f6, $f8 /* 07808C 7F04355C 10000020 */ b .L7F0435E0 /* 078090 7F043560 E6040064 */ swc1 $f4, 0x64($s0) .L7F043564: /* 078094 7F043564 C62A0020 */ lwc1 $f10, 0x20($s1) .L7F043568: /* 078098 7F043568 C4460008 */ lwc1 $f6, 8($v0) /* 07809C 7F04356C C4440000 */ lwc1 $f4, ($v0) /* 0780A0 7F043570 8E2F0014 */ lw $t7, 0x14($s1) /* 0780A4 7F043574 46065202 */ mul.s $f8, $f10, $f6 /* 0780A8 7F043578 C62A0018 */ lwc1 $f10, 0x18($s1) /* 0780AC 7F04357C C5E00014 */ lwc1 $f0, 0x14($t7) /* 0780B0 7F043580 E7B20030 */ swc1 $f18, 0x30($sp) /* 0780B4 7F043584 460A2182 */ mul.s $f6, $f4, $f10 /* 0780B8 7F043588 00000000 */ nop /* 0780BC 7F04358C 46027102 */ mul.s $f4, $f14, $f2 /* 0780C0 7F043590 46043280 */ add.s $f10, $f6, $f4 /* 0780C4 7F043594 46000102 */ mul.s $f4, $f0, $f0 /* 0780C8 7F043598 460A4180 */ add.s $f6, $f8, $f10 /* 0780CC 7F04359C 0FC16B2C */ jal acosf /* 0780D0 7F0435A0 46043303 */ div.s $f12, $f6, $f4 /* 0780D4 7F0435A4 44808000 */ mtc1 $zero, $f16 /* 0780D8 7F0435A8 C7B20030 */ lwc1 $f18, 0x30($sp) /* 0780DC 7F0435AC 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) /* 0780E0 7F0435B0 C4288378 */ lwc1 $f8, %lo(g_GlobalTimerDelta)($at) /* 0780E4 7F0435B4 46109032 */ c.eq.s $f18, $f16 /* 0780E8 7F0435B8 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 0780EC 7F0435BC 46080083 */ div.s $f2, $f0, $f8 /* 0780F0 7F0435C0 45030005 */ bc1tl .L7F0435D8 /* 0780F4 7F0435C4 44813000 */ mtc1 $at, $f6 /* 0780F8 7F0435C8 46121283 */ div.s $f10, $f2, $f18 /* 0780FC 7F0435CC 10000004 */ b .L7F0435E0 /* 078100 7F0435D0 E60A0064 */ swc1 $f10, 0x64($s0) /* 078104 7F0435D4 44813000 */ mtc1 $at, $f6 .L7F0435D8: /* 078108 7F0435D8 00000000 */ nop /* 07810C 7F0435DC E6060064 */ swc1 $f6, 0x64($s0) .L7F0435E0: /* 078110 7F0435E0 C6000064 */ lwc1 $f0, 0x64($s0) /* 078114 7F0435E4 3C018005 */ lui $at, %hi(D_80052A84) /* 078118 7F0435E8 4610003C */ c.lt.s $f0, $f16 /* 07811C 7F0435EC 00000000 */ nop /* 078120 7F0435F0 45000004 */ bc1f .L7F043604 /* 078124 7F0435F4 00000000 */ nop /* 078128 7F0435F8 46000107 */ neg.s $f4, $f0 /* 07812C 7F0435FC E6040064 */ swc1 $f4, 0x64($s0) /* 078130 7F043600 C6000064 */ lwc1 $f0, 0x64($s0) .L7F043604: /* 078134 7F043604 C4222A84 */ lwc1 $f2, %lo(D_80052A84)($at) /* 078138 7F043608 3C018005 */ lui $at, %hi(D_80052A88) /* 07813C 7F04360C 4602003C */ c.lt.s $f0, $f2 /* 078140 7F043610 00000000 */ nop /* 078144 7F043614 45000003 */ bc1f .L7F043624 /* 078148 7F043618 00000000 */ nop /* 07814C 7F04361C 10000007 */ b .L7F04363C /* 078150 7F043620 E6020064 */ swc1 $f2, 0x64($s0) .L7F043624: /* 078154 7F043624 C4222A88 */ lwc1 $f2, %lo(D_80052A88)($at) /* 078158 7F043628 4600103C */ c.lt.s $f2, $f0 /* 07815C 7F04362C 00000000 */ nop /* 078160 7F043630 45020003 */ bc1fl .L7F043640 /* 078164 7F043634 8FBF001C */ lw $ra, 0x1c($sp) /* 078168 7F043638 E6020064 */ swc1 $f2, 0x64($s0) .L7F04363C: /* 07816C 7F04363C 8FBF001C */ lw $ra, 0x1c($sp) .L7F043640: /* 078170 7F043640 8FB00014 */ lw $s0, 0x14($sp) /* 078174 7F043644 8FB10018 */ lw $s1, 0x18($sp) /* 078178 7F043648 03E00008 */ jr $ra /* 07817C 7F04364C 27BD0118 */ addiu $sp, $sp, 0x118 ) #endif #ifdef NONMATCHING void sub_GAME_7F043650(void) { } #else #if defined(LEFTOVERDEBUG) GLOBAL_ASM( .text glabel sub_GAME_7F043650 /* 078180 7F043650 27BDFFC0 */ addiu $sp, $sp, -0x40 /* 078184 7F043654 AFBF001C */ sw $ra, 0x1c($sp) /* 078188 7F043658 AFB00018 */ sw $s0, 0x18($sp) /* 07818C 7F04365C 8C820064 */ lw $v0, 0x64($a0) /* 078190 7F043660 00808025 */ move $s0, $a0 /* 078194 7F043664 304E0080 */ andi $t6, $v0, 0x80 /* 078198 7F043668 51C0006F */ beql $t6, $zero, .L7F043828 /* 07819C 7F04366C 8FBF001C */ lw $ra, 0x1c($sp) /* 0781A0 7F043670 8C83006C */ lw $v1, 0x6c($a0) /* 0781A4 7F043674 2401FFDF */ li $at, -33 /* 0781A8 7F043678 8C6F0000 */ lw $t7, ($v1) /* 0781AC 7F04367C 31F80001 */ andi $t8, $t7, 1 /* 0781B0 7F043680 53000052 */ beql $t8, $zero, .L7F0437CC /* 0781B4 7F043684 00414024 */ and $t0, $v0, $at /* 0781B8 7F043688 8C790090 */ lw $t9, 0x90($v1) /* 0781BC 7F04368C 30480020 */ andi $t0, $v0, 0x20 /* 0781C0 7F043690 5F20004E */ bgtzl $t9, .L7F0437CC /* 0781C4 7F043694 00414024 */ and $t0, $v0, $at /* 0781C8 7F043698 1100004B */ beqz $t0, .L7F0437C8 /* 0781CC 7F04369C 3C0A8003 */ lui $t2, %hi(Throwing_knife_SFX) /* 0781D0 7F0436A0 254A0B2C */ addiu $t2, %lo(Throwing_knife_SFX) # addiu $t2, $t2, 0xb2c /* 0781D4 7F0436A4 8D410000 */ lw $at, ($t2) /* 0781D8 7F0436A8 27A90038 */ addiu $t1, $sp, 0x38 /* 0781DC 7F0436AC AD210000 */ sw $at, ($t1) /* 0781E0 7F0436B0 95410004 */ lhu $at, 4($t2) /* 0781E4 7F0436B4 A5210004 */ sh $at, 4($t1) /* 0781E8 7F0436B8 8C8D006C */ lw $t5, 0x6c($a0) /* 0781EC 7F0436BC 8DAE00A4 */ lw $t6, 0xa4($t5) /* 0781F0 7F0436C0 0C002914 */ jal randomGetNext /* 0781F4 7F0436C4 AFAE0034 */ sw $t6, 0x34($sp) /* 0781F8 7F0436C8 24010003 */ li $at, 3 /* 0781FC 7F0436CC 0041001B */ divu $zero, $v0, $at /* 078200 7F0436D0 00007810 */ mfhi $t7 /* 078204 7F0436D4 AFAF0030 */ sw $t7, 0x30($sp) /* 078208 7F0436D8 8E03006C */ lw $v1, 0x6c($s0) /* 07820C 7F0436DC 3C198005 */ lui $t9, %hi(g_GlobalTimer) /* 078210 7F0436E0 8F39837C */ lw $t9, %lo(g_GlobalTimer)($t9) /* 078214 7F0436E4 8C7800A0 */ lw $t8, 0xa0($v1) /* 078218 7F0436E8 8FA70034 */ lw $a3, 0x34($sp) /* 07821C 7F0436EC 2728FFFA */ addiu $t0, $t9, -6 /* 078220 7F0436F0 0308082A */ slt $at, $t8, $t0 /* 078224 7F0436F4 1020000D */ beqz $at, .L7F04372C /* 078228 7F0436F8 00075880 */ sll $t3, $a3, 2 /* 07822C 7F0436FC 006B4821 */ addu $t1, $v1, $t3 /* 078230 7F043700 8D240098 */ lw $a0, 0x98($t1) /* 078234 7F043704 5080000A */ beql $a0, $zero, .L7F043730 /* 078238 7F043708 8FA70034 */ lw $a3, 0x34($sp) /* 07823C 7F04370C 0C00237C */ jal sndGetPlayingState /* 078240 7F043710 AFAB002C */ sw $t3, 0x2c($sp) /* 078244 7F043714 10400005 */ beqz $v0, .L7F04372C /* 078248 7F043718 8FA7002C */ lw $a3, 0x2c($sp) /* 07824C 7F04371C 8E0A006C */ lw $t2, 0x6c($s0) /* 078250 7F043720 01476021 */ addu $t4, $t2, $a3 /* 078254 7F043724 0C002408 */ jal sndDeactivate /* 078258 7F043728 8D840098 */ lw $a0, 0x98($t4) .L7F04372C: /* 07825C 7F04372C 8FA70034 */ lw $a3, 0x34($sp) .L7F043730: /* 078260 7F043730 8E0E006C */ lw $t6, 0x6c($s0) /* 078264 7F043734 00076880 */ sll $t5, $a3, 2 /* 078268 7F043738 01CD7821 */ addu $t7, $t6, $t5 /* 07826C 7F04373C 8DF90098 */ lw $t9, 0x98($t7) /* 078270 7F043740 57200039 */ bnezl $t9, .L7F043828 /* 078274 7F043744 8FBF001C */ lw $ra, 0x1c($sp) /* 078278 7F043748 0FC2FF01 */ jal lvlGetControlsLockedFlag /* 07827C 7F04374C AFAD002C */ sw $t5, 0x2c($sp) /* 078280 7F043750 14400034 */ bnez $v0, .L7F043824 /* 078284 7F043754 8FA7002C */ lw $a3, 0x2c($sp) /* 078288 7F043758 8FB80030 */ lw $t8, 0x30($sp) /* 07828C 7F04375C 8E0B006C */ lw $t3, 0x6c($s0) /* 078290 7F043760 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 078294 7F043764 00184040 */ sll $t0, $t8, 1 /* 078298 7F043768 03A82821 */ addu $a1, $sp, $t0 /* 07829C 7F04376C 84A50038 */ lh $a1, 0x38($a1) /* 0782A0 7F043770 01673021 */ addu $a2, $t3, $a3 /* 0782A4 7F043774 24C60098 */ addiu $a2, $a2, 0x98 /* 0782A8 7F043778 AFA7002C */ sw $a3, 0x2c($sp) /* 0782AC 7F04377C 0C002382 */ jal sndPlaySfx /* 0782B0 7F043780 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0782B4 7F043784 8FA7002C */ lw $a3, 0x2c($sp) /* 0782B8 7F043788 8E09006C */ lw $t1, 0x6c($s0) /* 0782BC 7F04378C 8E050010 */ lw $a1, 0x10($s0) /* 0782C0 7F043790 01275021 */ addu $t2, $t1, $a3 /* 0782C4 7F043794 8D440098 */ lw $a0, 0x98($t2) /* 0782C8 7F043798 0FC14E84 */ jal chrobjSndCreatePostEventDefault /* 0782CC 7F04379C 24A50008 */ addiu $a1, $a1, 8 /* 0782D0 7F0437A0 3C0C8005 */ lui $t4, %hi(g_GlobalTimer) /* 0782D4 7F0437A4 8D8C837C */ lw $t4, %lo(g_GlobalTimer)($t4) /* 0782D8 7F0437A8 8E0D006C */ lw $t5, 0x6c($s0) /* 0782DC 7F0437AC 240F0001 */ li $t7, 1 /* 0782E0 7F0437B0 ADAC00A0 */ sw $t4, 0xa0($t5) /* 0782E4 7F0437B4 8FAE0034 */ lw $t6, 0x34($sp) /* 0782E8 7F0437B8 8E18006C */ lw $t8, 0x6c($s0) /* 0782EC 7F0437BC 01EEC823 */ subu $t9, $t7, $t6 /* 0782F0 7F0437C0 10000018 */ b .L7F043824 /* 0782F4 7F0437C4 AF1900A4 */ sw $t9, 0xa4($t8) .L7F0437C8: /* 0782F8 7F0437C8 00414024 */ and $t0, $v0, $at .L7F0437CC: /* 0782FC 7F0437CC AE080064 */ sw $t0, 0x64($s0) /* 078300 7F0437D0 8C640098 */ lw $a0, 0x98($v1) /* 078304 7F0437D4 50800009 */ beql $a0, $zero, .L7F0437FC /* 078308 7F0437D8 8E09006C */ lw $t1, 0x6c($s0) /* 07830C 7F0437DC 0C00237C */ jal sndGetPlayingState /* 078310 7F0437E0 00000000 */ nop /* 078314 7F0437E4 50400005 */ beql $v0, $zero, .L7F0437FC /* 078318 7F0437E8 8E09006C */ lw $t1, 0x6c($s0) /* 07831C 7F0437EC 8E0B006C */ lw $t3, 0x6c($s0) /* 078320 7F0437F0 0C002408 */ jal sndDeactivate /* 078324 7F0437F4 8D640098 */ lw $a0, 0x98($t3) /* 078328 7F0437F8 8E09006C */ lw $t1, 0x6c($s0) .L7F0437FC: /* 07832C 7F0437FC 8D24009C */ lw $a0, 0x9c($t1) /* 078330 7F043800 50800009 */ beql $a0, $zero, .L7F043828 /* 078334 7F043804 8FBF001C */ lw $ra, 0x1c($sp) /* 078338 7F043808 0C00237C */ jal sndGetPlayingState /* 07833C 7F04380C 00000000 */ nop /* 078340 7F043810 50400005 */ beql $v0, $zero, .L7F043828 /* 078344 7F043814 8FBF001C */ lw $ra, 0x1c($sp) /* 078348 7F043818 8E0A006C */ lw $t2, 0x6c($s0) /* 07834C 7F04381C 0C002408 */ jal sndDeactivate /* 078350 7F043820 8D44009C */ lw $a0, 0x9c($t2) .L7F043824: /* 078354 7F043824 8FBF001C */ lw $ra, 0x1c($sp) .L7F043828: /* 078358 7F043828 8FB00018 */ lw $s0, 0x18($sp) /* 07835C 7F04382C 27BD0040 */ addiu $sp, $sp, 0x40 /* 078360 7F043830 03E00008 */ jr $ra /* 078364 7F043834 00000000 */ nop ) #endif #if !defined(LEFTOVERDEBUG) GLOBAL_ASM( .text glabel sub_GAME_7F043650 /* 076100 7F043710 27BDFFC0 */ addiu $sp, $sp, -0x40 /* 076104 7F043714 AFBF001C */ sw $ra, 0x1c($sp) /* 076108 7F043718 AFB00018 */ sw $s0, 0x18($sp) /* 07610C 7F04371C 8C820064 */ lw $v0, 0x64($a0) /* 076110 7F043720 00808025 */ move $s0, $a0 /* 076114 7F043724 304E0080 */ andi $t6, $v0, 0x80 /* 076118 7F043728 51C0006F */ beql $t6, $zero, .L7F0438E8 /* 07611C 7F04372C 8FBF001C */ lw $ra, 0x1c($sp) /* 076120 7F043730 8C83006C */ lw $v1, 0x6c($a0) /* 076124 7F043734 2401FFDF */ li $at, -33 /* 076128 7F043738 8C6F0000 */ lw $t7, ($v1) /* 07612C 7F04373C 31F80001 */ andi $t8, $t7, 1 /* 076130 7F043740 53000052 */ beql $t8, $zero, .L7F04388C /* 076134 7F043744 00414024 */ and $t0, $v0, $at /* 076138 7F043748 8C790090 */ lw $t9, 0x90($v1) /* 07613C 7F04374C 30480020 */ andi $t0, $v0, 0x20 /* 076140 7F043750 5F20004E */ bgtzl $t9, .L7F04388C /* 076144 7F043754 00414024 */ and $t0, $v0, $at /* 076148 7F043758 1100004B */ beqz $t0, .L7F043888 /* 07614C 7F04375C 3C0A8003 */ lui $t2, %hi(Throwing_knife_SFX) # $t2, 0x8003 /* 076150 7F043760 254AC07C */ addiu $t2, %lo(Throwing_knife_SFX) # addiu $t2, $t2, -0x3f84 /* 076154 7F043764 8D410000 */ lw $at, ($t2) /* 076158 7F043768 27A90038 */ addiu $t1, $sp, 0x38 /* 07615C 7F04376C AD210000 */ sw $at, ($t1) /* 076160 7F043770 95410004 */ lhu $at, 4($t2) /* 076164 7F043774 A5210004 */ sh $at, 4($t1) /* 076168 7F043778 8C8D006C */ lw $t5, 0x6c($a0) /* 07616C 7F04377C 8DAE00A4 */ lw $t6, 0xa4($t5) /* 076170 7F043780 0C00262C */ jal randomGetNext /* 076174 7F043784 AFAE0034 */ sw $t6, 0x34($sp) /* 076178 7F043788 24010003 */ li $at, 3 /* 07617C 7F04378C 0041001B */ divu $zero, $v0, $at /* 076180 7F043790 00007810 */ mfhi $t7 /* 076184 7F043794 AFAF0030 */ sw $t7, 0x30($sp) /* 076188 7F043798 8E03006C */ lw $v1, 0x6c($s0) /* 07618C 7F04379C 3C198004 */ lui $t9, %hi(g_GlobalTimer) # $t9, 0x8004 /* 076190 7F0437A0 8F390FFC */ lw $t9, %lo(g_GlobalTimer)($t9) /* 076194 7F0437A4 8C7800A0 */ lw $t8, 0xa0($v1) /* 076198 7F0437A8 8FA70034 */ lw $a3, 0x34($sp) /* 07619C 7F0437AC 2728FFFB */ addiu $t0, $t9, -5 /* 0761A0 7F0437B0 0308082A */ slt $at, $t8, $t0 /* 0761A4 7F0437B4 1020000D */ beqz $at, .L7F0437EC /* 0761A8 7F0437B8 00075880 */ sll $t3, $a3, 2 /* 0761AC 7F0437BC 006B4821 */ addu $t1, $v1, $t3 /* 0761B0 7F0437C0 8D240098 */ lw $a0, 0x98($t1) /* 0761B4 7F0437C4 5080000A */ beql $a0, $zero, .L7F0437F0 /* 0761B8 7F0437C8 8FA70034 */ lw $a3, 0x34($sp) /* 0761BC 7F0437CC 0C002094 */ jal sndGetPlayingState /* 0761C0 7F0437D0 AFAB002C */ sw $t3, 0x2c($sp) /* 0761C4 7F0437D4 10400005 */ beqz $v0, .L7F0437EC /* 0761C8 7F0437D8 8FA7002C */ lw $a3, 0x2c($sp) /* 0761CC 7F0437DC 8E0A006C */ lw $t2, 0x6c($s0) /* 0761D0 7F0437E0 01476021 */ addu $t4, $t2, $a3 /* 0761D4 7F0437E4 0C002120 */ jal sndDeactivate /* 0761D8 7F0437E8 8D840098 */ lw $a0, 0x98($t4) .L7F0437EC: /* 0761DC 7F0437EC 8FA70034 */ lw $a3, 0x34($sp) .L7F0437F0: /* 0761E0 7F0437F0 8E0E006C */ lw $t6, 0x6c($s0) /* 0761E4 7F0437F4 00076880 */ sll $t5, $a3, 2 /* 0761E8 7F0437F8 01CD7821 */ addu $t7, $t6, $t5 /* 0761EC 7F0437FC 8DF90098 */ lw $t9, 0x98($t7) /* 0761F0 7F043800 57200039 */ bnezl $t9, .L7F0438E8 /* 0761F4 7F043804 8FBF001C */ lw $ra, 0x1c($sp) /* 0761F8 7F043808 0FC2FC1E */ jal lvlGetControlsLockedFlag /* 0761FC 7F04380C AFAD002C */ sw $t5, 0x2c($sp) /* 076200 7F043810 14400034 */ bnez $v0, .L7F0438E4 /* 076204 7F043814 8FA7002C */ lw $a3, 0x2c($sp) /* 076208 7F043818 8FB80030 */ lw $t8, 0x30($sp) /* 07620C 7F04381C 8E0B006C */ lw $t3, 0x6c($s0) /* 076210 7F043820 3C048005 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8005 /* 076214 7F043824 00184040 */ sll $t0, $t8, 1 /* 076218 7F043828 03A82821 */ addu $a1, $sp, $t0 /* 07621C 7F04382C 84A50038 */ lh $a1, 0x38($a1) /* 076220 7F043830 01673021 */ addu $a2, $t3, $a3 /* 076224 7F043834 24C60098 */ addiu $a2, $a2, 0x98 /* 076228 7F043838 AFA7002C */ sw $a3, 0x2c($sp) /* 07622C 7F04383C 0C00209A */ jal sndPlaySfx /* 076230 7F043840 8C846900 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 076234 7F043844 8FA7002C */ lw $a3, 0x2c($sp) /* 076238 7F043848 8E09006C */ lw $t1, 0x6c($s0) /* 07623C 7F04384C 8E050010 */ lw $a1, 0x10($s0) /* 076240 7F043850 01275021 */ addu $t2, $t1, $a3 /* 076244 7F043854 8D440098 */ lw $a0, 0x98($t2) /* 076248 7F043858 0FC14F3C */ jal chrobjSndCreatePostEventDefault /* 07624C 7F04385C 24A50008 */ addiu $a1, $a1, 8 /* 076250 7F043860 3C0C8004 */ lui $t4, %hi(g_GlobalTimer) # $t4, 0x8004 /* 076254 7F043864 8D8C0FFC */ lw $t4, %lo(g_GlobalTimer)($t4) /* 076258 7F043868 8E0D006C */ lw $t5, 0x6c($s0) /* 07625C 7F04386C 240F0001 */ li $t7, 1 /* 076260 7F043870 ADAC00A0 */ sw $t4, 0xa0($t5) /* 076264 7F043874 8FAE0034 */ lw $t6, 0x34($sp) /* 076268 7F043878 8E18006C */ lw $t8, 0x6c($s0) /* 07626C 7F04387C 01EEC823 */ subu $t9, $t7, $t6 /* 076270 7F043880 10000018 */ b .L7F0438E4 /* 076274 7F043884 AF1900A4 */ sw $t9, 0xa4($t8) .L7F043888: /* 076278 7F043888 00414024 */ and $t0, $v0, $at .L7F04388C: /* 07627C 7F04388C AE080064 */ sw $t0, 0x64($s0) /* 076280 7F043890 8C640098 */ lw $a0, 0x98($v1) /* 076284 7F043894 50800009 */ beql $a0, $zero, .L7F0438BC /* 076288 7F043898 8E09006C */ lw $t1, 0x6c($s0) /* 07628C 7F04389C 0C002094 */ jal sndGetPlayingState /* 076290 7F0438A0 00000000 */ nop /* 076294 7F0438A4 50400005 */ beql $v0, $zero, .L7F0438BC /* 076298 7F0438A8 8E09006C */ lw $t1, 0x6c($s0) /* 07629C 7F0438AC 8E0B006C */ lw $t3, 0x6c($s0) /* 0762A0 7F0438B0 0C002120 */ jal sndDeactivate /* 0762A4 7F0438B4 8D640098 */ lw $a0, 0x98($t3) /* 0762A8 7F0438B8 8E09006C */ lw $t1, 0x6c($s0) .L7F0438BC: /* 0762AC 7F0438BC 8D24009C */ lw $a0, 0x9c($t1) /* 0762B0 7F0438C0 50800009 */ beql $a0, $zero, .L7F0438E8 /* 0762B4 7F0438C4 8FBF001C */ lw $ra, 0x1c($sp) /* 0762B8 7F0438C8 0C002094 */ jal sndGetPlayingState /* 0762BC 7F0438CC 00000000 */ nop /* 0762C0 7F0438D0 50400005 */ beql $v0, $zero, .L7F0438E8 /* 0762C4 7F0438D4 8FBF001C */ lw $ra, 0x1c($sp) /* 0762C8 7F0438D8 8E0A006C */ lw $t2, 0x6c($s0) /* 0762CC 7F0438DC 0C002120 */ jal sndDeactivate /* 0762D0 7F0438E0 8D44009C */ lw $a0, 0x9c($t2) .L7F0438E4: /* 0762D4 7F0438E4 8FBF001C */ lw $ra, 0x1c($sp) .L7F0438E8: /* 0762D8 7F0438E8 8FB00018 */ lw $s0, 0x18($sp) /* 0762DC 7F0438EC 27BD0040 */ addiu $sp, $sp, 0x40 /* 0762E0 7F0438F0 03E00008 */ jr $ra /* 0762E4 7F0438F4 00000000 */ nop ) #endif #endif void sub_GAME_7F043838(coord3d *arg0, Mtxf *arg1) { f32 sp124; f32 sp120; f32 sp11c; f32 sp118; f32 sp114; f32 f0; f32 sp10c; f32 sp108; f32 sp104; f32 a; f32 b; f32 stack; f32 spf4; f32 spf0; Mtxf spb0; Mtxf sp70; Mtxf sp30; coord3d sp24; f0 = sqrtf(arg0->f[0] * arg0->f[0] + arg0->f[1] * arg0->f[1] + arg0->f[2] * arg0->f[2]); sp10c = arg0->x / f0; sp108 = arg0->y / f0; sp104 = arg0->z / f0; if (sp10c == 0.0f && sp104 == 0.0f) { sp124 = 0.0f; sp120 = 0.0f; sp11c = sp108; sp118 = 1.0f; sp114 = 0.0f; } else { a = sqrtf(sp10c * sp10c + sp104 * sp104); b = sp10c / a; sp118 = sp104 / a; sp114 = -b; sp124 = sp108 * b; sp120 = -a; sp11c = sp108 * sp118; } spf4 = atan2f(sp118, sp114); matrix_4x4_set_rotation_around_y(-spf4, &spb0); sp24.x = sp124; sp24.y = sp120; sp24.z = sp11c; mtx4RotateVecInPlace(&spb0, sp24.f); spf0 = atan2f(sp24.x, sp24.y); matrix_4x4_set_rotation_around_y(-1.5707964f + spf4, &sp70); matrix_4x4_set_rotation_around_x(-1.5707964f - spf0, &sp30); matrix_4x4_multiply(&sp70, &sp30, arg1); } void sub_GAME_7F0439B8(ObjectRecord* obj, coord3d* pos, StandTile* stan, coord3d* arg3) { Mtxf matrix; f32 temp_f0; sub_GAME_7F043838(arg3, &matrix); matrix_scalar_multiply(obj->model->scale, matrix.m[0]); objChangeShading(obj, pos, &matrix, stan); temp_f0 = chrpropBBOXGetYmin(chrobjGetBboxFromObjFile(obj->model->obj)); obj->runtime_pos.f[0] -= temp_f0 * obj->mtx.m[1][0]; obj->runtime_pos.f[1] -= temp_f0 * obj->mtx.m[1][1]; obj->runtime_pos.f[2] -= temp_f0 * obj->mtx.m[1][2]; chrobjCollisionRelated(obj); } bool objEmbed(PropRecord *prop, PropRecord *parent, Model *model, ModelNode *node) { if (parent->flags & PROPFLAG_ONSCREEN) { ObjectRecord *obj = prop->obj; Mtxf mtx1; Mtxf mtx2; Mtxf mtx3; Mtxf* nodemtx; obj->embedment = embedmentAllocate(); if (obj->embedment) { nodemtx = modelFindNodeMtx(model, node, 0); obj->runtime_bitflags |= RUNTIMEBITFLAG_EMBEDDED; chrpropDeregisterRooms(prop); chrpropDelist(prop); chrpropDisable(prop); obj->model->attachedto = model; obj->model->attachedto_objinst = node; chrpropReparent(prop, parent); matrix_4x4_copy(&obj->mtx, &mtx1); matrix_4x4_set_position(&obj->runtime_pos, &mtx1); matrix_4x4_multiply_homogeneous(currentPlayerGetMatrix10D4(), nodemtx, &mtx2); sub_GAME_7F059FB8((f32 (*)[4]) &mtx2.m, (f32 (*)[4]) &mtx3.m); matrix_4x4_multiply_homogeneous((Mtxf* ) &mtx3.m, &mtx1, &obj->embedment->matrix); return TRUE; } } return FALSE; } /** * Named same as Perfect Dark. */ #if defined(VERSION_JP) || defined(VERSION_EU) s32 propExplode(PropRecord *prop, s32 /* enum EXPLOSION_DEF */ explosionType) #else void propExplode(PropRecord *prop, s32 /* enum EXPLOSION_DEF */ explosionType) #endif { ObjectRecord *prop_obj; // sp92 s32 playernum; // sp88 #if defined(VERSION_JP) || defined(VERSION_EU) s32 ret; #endif struct PropRecord *parent; struct StandTile *stan; // sp80 struct coord3d pos; Mtxf *mtx; prop_obj = prop->obj; playernum = (prop_obj->runtime_bitflags & RUNTIMEBITFLAG_OWNER) >> RUNTIMEBITSHIFT_OWNER; if (prop->parent) { parent = prop->parent; while (parent->parent) { parent = parent->parent; } stan = parent->stan; if (prop->flags & PROPFLAG_ONSCREEN) { mtx = getsubmatrix(prop_obj->model); pos.x = mtx->m[3][0]; pos.y = mtx->m[3][1]; pos.z = mtx->m[3][2]; mtx4TransformVecInPlace(currentPlayerGetMatrix10D4(), &pos); } else { pos.x = parent->pos.x; pos.y = parent->pos.y; pos.z = parent->pos.z; } if ((parent->flags & PROPFLAG_00000008) == 0 && walkTilesBetweenPoints_NoCallback(&stan, parent->pos.f[0], parent->pos.f[2], pos.x, pos.z)) { #if defined(VERSION_JP) || defined(VERSION_EU) ret = #endif explosionCreate(0, &pos, stan, (s16) explosionType, (prop_obj->flags & 0xE) == 0, playernum, parent->rooms, 0); } else { #if defined(VERSION_JP) || defined(VERSION_EU) ret = #endif explosionCreate(0, &pos, stan, (s16) explosionType, 0, playernum, parent->rooms, 1); } } else { #if defined(VERSION_JP) || defined(VERSION_EU) ret = #endif explosionCreate( 0, &prop_obj->runtime_pos, prop->stan, (s16) explosionType, (prop_obj->flags & 0xE) == 0 && (prop->flags & PROPFLAG_00000008) == 0, playernum, prop->rooms, (prop->flags & PROPFLAG_00000008) != 0); } #if defined(VERSION_JP) || defined(VERSION_EU) return ret; #endif } /** * US address 7F043D70. * JP address 7F044074. * EU address 7F043E34. * * Seems to be a subset of Perfect Dark weaponTick. */ void chrobjWeaponTick(struct PropRecord* prop) { struct ObjectRecord* obj; struct WeaponObjRecord *weapon; #if defined(VERSION_US) u32 owner_player_number; u32 owner_player_as_bitflag; #else s32 exp_result; u32 owner_player_number; s32 p1; u32 owner_player_as_bitflag; #endif struct PropRecord* player_prop; f32 diff_x; f32 diff_z; f32 diff_y; obj = prop->obj; if (sub_GAME_7F09B4D8(get_cur_playernum()) != 0) { return; } if (obj->type == PROP_TYPE_EXPLOSION) // 7 { if (obj->flags & PROPFLAG_IS_DRONE_GUN) { propExplode(prop, EXPLOSION_DEF_DRONE); obj->runtime_bitflags |= RUNTIMEBITFLAG_REMOVE; } return; } if (obj->type == PROP_TYPE_SMOKE) // 8 { weapon = prop->weapon; if (((weapon->weaponnum == ITEM_GRENADE) || (weapon->weaponnum == ITEM_NULL87)) && (weapon->timer >= 0)) { weapon->timer -= g_ClockTimer; if (weapon->timer < 0) { propExplode(prop, (obj->flags2 & PROPFLAG2_DOOR_ALTCOORDSYSTEM) ? EXPLOSION_DEF_MASSIVE : EXPLOSION_DEF_STANDARD); obj->runtime_bitflags |= RUNTIMEBITFLAG_REMOVE; } } else if (weapon->weaponnum == ITEM_NULL86) { if (weapon->timer == 0) { propExplode(prop, (obj->flags2 & PROPFLAG2_DOOR_ALTCOORDSYSTEM) ? EXPLOSION_DEF_MASSIVE : EXPLOSION_DEF_STANDARD); obj->runtime_bitflags |= RUNTIMEBITFLAG_REMOVE; } } else if (weapon->weaponnum == ITEM_PLASTIQUE) { if (weapon->timer == 0) { propExplode(prop, EXPLOSION_DEF_MASSIVE); obj->runtime_bitflags |= RUNTIMEBITFLAG_REMOVE; SurroundWithExplosions(PLASTIQUE_EXPLOSION_DELAY_TICKS); countdownTimerSetVisible(2, FALSE); } } else if (((weapon->weaponnum == ITEM_TIMEDMINE) || (weapon->weaponnum == ITEM_BOMBCASE)) && (weapon->timer >= 0)) { weapon->timer -= g_ClockTimer; if (weapon->timer < 0) { #if defined(VERSION_US) propExplode(prop, (obj->flags2 & PROPFLAG2_DOOR_ALTCOORDSYSTEM) ? EXPLOSION_DEF_MASSIVE : EXPLOSION_DEF_STANDARD); #else exp_result = propExplode(prop, (obj->flags2 & PROPFLAG2_DOOR_ALTCOORDSYSTEM) ? EXPLOSION_DEF_MASSIVE : EXPLOSION_DEF_STANDARD); if (exp_result == 0) { return; } #endif weapon->timer = -1; obj->runtime_bitflags |= RUNTIMEBITFLAG_REMOVE; } } else if (weapon->weaponnum == ITEM_REMOTEMINE) { if (g_RemoteMineOwnerTriggerFlag) { owner_player_number = (obj->runtime_bitflags & RUNTIMEBITFLAG_OWNER) >> RUNTIMEBITSHIFT_OWNER; owner_player_as_bitflag = (1 << owner_player_number); if (g_RemoteMineOwnerTriggerFlag & owner_player_as_bitflag) { weapon->timer = 0; } } if (weapon->timer > 1) { weapon->timer -= g_ClockTimer; if (weapon->timer < 2) { weapon->timer = 1; } } else if (weapon->timer == 0) { #if defined(VERSION_US) if (obj->flags2 & PROPFLAG2_DOOR_ALTCOORDSYSTEM) { propExplode(prop, EXPLOSION_DEF_MASSIVE); } else if (bossGetStageNum() == LEVELID_FACILITY) { propExplode(prop, EXPLOSION_DEF_FACILITY_REMOTE); } else { propExplode(prop, EXPLOSION_DEF_STANDARD); } #else if (obj->flags2 & PROPFLAG2_DOOR_ALTCOORDSYSTEM) { p1 = EXPLOSION_DEF_MASSIVE; } else { p1 = EXPLOSION_DEF_STANDARD; if (bossGetStageNum() == LEVELID_FACILITY) { p1 = EXPLOSION_DEF_FACILITY_REMOTE; } } exp_result = propExplode(prop, p1); if (exp_result == 0) { return; } #endif weapon->timer = -1; obj->runtime_bitflags |= RUNTIMEBITFLAG_REMOVE; } } else if (weapon->weaponnum == ITEM_PROXIMITYMINE) { if (weapon->timer > 1) { weapon->timer -= g_ClockTimer; if (weapon->timer < 2) { weapon->timer = 1; add_obj_to_temp_proxmine_table(weapon); } } else if (weapon->timer == 1) { player_prop = get_curplayer_positiondata(); diff_x = player_prop->pos.f[0] - prop->pos.f[0]; diff_y = player_prop->pos.f[1] - prop->pos.f[1]; diff_z = player_prop->pos.f[2] - prop->pos.f[2]; if ((diff_x * diff_x) + (diff_y * diff_y) + (diff_z * diff_z) < PROXIMITY_MINE_TRIGGER_DISTANCE) { weapon->timer = 0; } } if (weapon->timer == 0) { #if defined(VERSION_US) propExplode(prop, (obj->flags2 & PROPFLAG2_DOOR_ALTCOORDSYSTEM) ? EXPLOSION_DEF_MASSIVE : EXPLOSION_DEF_STANDARD); #else exp_result = propExplode(prop, (obj->flags2 & PROPFLAG2_DOOR_ALTCOORDSYSTEM) ? EXPLOSION_DEF_MASSIVE : EXPLOSION_DEF_STANDARD); if (exp_result == 0) { return; } #endif weapon->timer = -1; obj->runtime_bitflags |= RUNTIMEBITFLAG_REMOVE; remove_obj_from_temp_proxmine_table(weapon); } } } } void objDropRecursively(PropRecord *prop) { PropRecord *child = prop->child; while (child) { PropRecord *prev = child->prev; objDropRecursively(child); objDrop(child); child = prev; } } void sub_GAME_7F04424C(PropRecord* prop) { ObjectRecord* obj; PropRecord* next; PropRecord* child; obj = prop->obj; if (obj->runtime_bitflags & RUNTIMEBITFLAG_REMOVE) { objFree(obj, 1, obj->state & PROPSTATE_RESPAWN); return; } prop->flags &= ~(PROPFLAG_ONSCREEN); chrobjWeaponTick(prop); child = prop->child; while (child != NULL) { next = child->prev; sub_GAME_7F04424C(child); child = next; } } void sub_GAME_7F0442DC(PropRecord* prop) { ObjectRecord* obj; Model* model; PropRecord* child; PropRecord* prev; Mtxf* mtx; obj = prop->obj; model = obj->model; if (obj->runtime_bitflags & RUNTIMEBITFLAG_REMOVE) { objFree(obj, 1, (obj->state & PROPSTATE_RESPAWN)); return; } if ((model->attachedto_objinst != NULL) && (obj->runtime_bitflags & RUNTIMEBITFLAG_EMBEDDED)) { mtx = modelFindNodeMtx(model->attachedto, model->attachedto_objinst, 0); prop->flags |= PROPFLAG_ONSCREEN; model->render_pos = (RenderPosView*)dynAllocate(model->obj->numMatrices << 6); matrix_4x4_multiply_homogeneous(mtx, &obj->embedment->matrix, (Mtxf*)model->render_pos); modelUpdateRelationsQuick(model, model->obj->RootNode); chrobjWeaponTick(prop); child = prop->child; while (child != NULL) { prev = child->prev; sub_GAME_7F0442DC(child); child = prev; } } else { prop->flags &= ~(PROPFLAG_ONSCREEN); chrobjWeaponTick(prop); child = prop->child; while (child != NULL) { prev = child->prev; sub_GAME_7F04424C(child); child = prev; } } } /** * Address: 7F044414 * Description: Separating Axis Theorem * * Return true if both blocks are not intersecting on the X/Z plane. * PD: cdBlockExcludesBlockLaterally */ bool chrobjSeparatingAxisTheorem(rect4f* rect1, s32 numvertices0, rect4f* rect2, s32 numvertices1) { f64 diff2; f64 diff1; s32 j; s32 k; s32 next; s32 i; f64 sum3; f64 sum2; f64 sum1; coord3d tmp; for (i = 0; i < numvertices0; i++) { next = (i + 1) % numvertices0; diff1 = rect1->points[next].y - (f64)rect1->points[i].y; diff2 = rect1->points[i].x - (f64)rect1->points[next].x; if (diff1 == 0.0f && diff2 == 0.0f) { tmp.x = rect1->points[i].x; tmp.y = 0.0f; tmp.z = rect1->points[i].y; if (chrpropTestPointInPolygon(&tmp, rect2, numvertices1)) { return FALSE; } } else { sum1 = rect1->points[i].x * diff1 + rect1->points[i].y * diff2; j = (next + 1) % numvertices0; while (j != i) { sum2 = rect1->points[j].x * diff1 + rect1->points[j].y * diff2; if (sum2 != sum1) { break; } j = (j + 1) % numvertices0; } for (k = 0; k < numvertices1; k++) { sum3 = rect2->points[k].x * diff1 + rect2->points[k].y * diff2; if (sum2 == sum1) { sum2 = sum1 - sum3 + sum1; } if (sum3 < sum1 && sum2 < sum1) { break; } if (sum3 > sum1 && sum2 > sum1) { break; } } if (k == numvertices1) { return TRUE; } } } return FALSE; } /** * Address 0x7F0446B8 (NTSC) * Address 0x7F0449A0 (NTSC-J) * * Description: Does a 2D collision check between two (convex?) polygons. * * Note: The NTSC version is 7 to 8 times faster than the others. * Was this an attempt at optimization or to fix a bug? * * Deepseek says JP/EU's new code will detect edges cases such as a polygon * fully contained into another. NTSC's only check is SAT, which misses when * the polygons have edges that don’t overlap. NTSC's code handles 95% of * collisions so it should be called first. * * So they fixed a bug, but didn't do it the right way so it wouldn't affect performance. */ s32 chrobjTestPolygonsTouchingOrOverlap2D(struct rect4f *arg0, s32 arg1, struct rect4f *arg2, s32 arg3) { #if defined(VERSION_JP) || defined(VERSION_EU) s32 i; struct coord3d sp48; for (i=0; ipoints[i].f[0]; sp48.f[1] = 0.0f; sp48.f[2] = arg0->points[i].f[1]; if (chrpropTestPointInPolygon(&sp48, arg2, arg3) != 0) { return 1; } } for (i=0; ipoints[i].f[0]; sp48.f[1] = 0.0f; sp48.f[2] = arg2->points[i].f[1]; if (chrpropTestPointInPolygon(&sp48, arg0, arg1) != 0) { return 1; } } #endif if (chrobjSeparatingAxisTheorem(arg0, arg1, arg2, arg3)) { return 0; } if (chrobjSeparatingAxisTheorem(arg2, arg3, arg0, arg1)) { return 0; } return 1; } /** * Checks whether a point collision with a convex polygon is within the specified radius. * @param point: 3d point to test collision with polygon. Only (x,z) are used. * @param collision_radius: Collision radius of point to test. * @param polygon: Convex polygon. * @param edges: Number of edges to test in polygon. * * Address 0x7F044718. */ s32 chrobjTestPointPolygonCollision(struct coord3d *point, f32 collision_radius, struct rect4f *polygon, s32 edges) { f32 temp_f0; f32 temp_f26; f32 px; f32 pz; f32 temp_f30; s32 i; struct coord2d *temp_s0; px = point->f[0]; pz = point->f[2]; for (i=0; ipoints[(i+1) % edges]; temp_f0 = sub_GAME_7F0B16C4(polygon->points[i].f[0], polygon->points[i].f[1], temp_s0->f[0], temp_s0->f[1], px, pz); if (temp_f0 < 0.0f) { temp_f0 = -temp_f0; } temp_f26 = distBetweenPoints2d(polygon->points[i].f[0], polygon->points[i].f[1], px, pz); temp_f30 = distBetweenPoints2d(temp_s0->f[0], temp_s0->f[1], px, pz); if ((temp_f0 < collision_radius) && ((temp_f26 < collision_radius) || (temp_f30 < collision_radius) || sub_GAME_7F0B17E4(polygon->points[i].f[0], polygon->points[i].f[1], temp_s0->f[0], temp_s0->f[1], px, pz) ) ) { return 1; } } return 0; } /** * NTSC address 0x7F0448A8. */ s32 sub_GAME_7F0448A8(struct PropRecord *arg0) { s32 var_s0; struct rect4f *sp98; s32 sp94; f32 sp90; f32 sp8C; s32 roomids[8]; s16 *temp_s0; f32 sp64; f32 sp60; f32 sp5C; f32 temp_f0; PropRecord *propss; ObjectRecord *temp_v0_2; struct rect4f *sp4C; s32 sp48; f32 sp44; f32 sp40; chraiGetCollisionBounds(arg0, &sp98, &sp94, &sp90, &sp8C); if (sp94 <= 0) { return 1; } chraiGetPropRoomIds(arg0, (s32*)&roomids); roomGetProps((s32*)&roomids); propss = (PropRecord *)&pos_data_entry; for (temp_s0 = ptr_list_object_lookup_indices; *temp_s0 >= 0; temp_s0++) { PropRecord *prop = &propss[*temp_s0]; if (prop != arg0) { if ((prop->type == PROP_TYPE_VIEWER) || (prop->type == PROP_TYPE_CHR)) { temp_v0_2 = prop->obj; if ((temp_v0_2 == NULL) || !((s32) temp_v0_2->model & 0x400)) { chrpropGetCollisionBounds(prop, &sp5C, &sp64, &sp60); temp_f0 = sub_GAME_7F03CFE8(prop); sp60 += temp_f0; sp64 += temp_f0; if (sp60 <= sp90) { var_s0 = 1; if (sp8C <= sp64) { if (chrpropTestPointInPolygon(&prop->pos, sp98, sp94) != 0) { var_s0 = 0; } if ((var_s0 != 0) && (chrobjTestPointPolygonCollision(&prop->pos, sp5C, sp98, sp94) != 0)) { var_s0 = 0; } if (var_s0 == 0) { if ((prop->type == PROP_TYPE_CHR) && (arg0->type == PROP_TYPE_DOOR)) { prop->chr->hidden |= CHRHIDDEN_OFFSCREEN_PATROL; } return 0; } } } } } else if ( ((prop->type == PROP_TYPE_OBJ) || (prop->type == PROP_TYPE_WEAPON) || (prop->type == PROP_TYPE_DOOR)) && ( (arg0->type != PROP_TYPE_DOOR) || ((prop->type != PROP_TYPE_DOOR) && ((prop->obj->type != PROPDEF_SAFE)) && (prop->obj->type != PROPDEF_AIRCRAFT)))) { chraiGetCollisionBounds(prop, &sp4C, &sp48, &sp44, &sp40); if ((sp48 > 0) && (sp40 <= sp90) && (sp8C <= sp44) && (chrobjTestPolygonsTouchingOrOverlap2D(sp4C, sp48, sp98, sp94) != 0)) { return 0; } } } } return 1; } #ifdef NONMATCHING void sub_GAME_7F044B38(void) { } #else GLOBAL_ASM( .text glabel sub_GAME_7F044B38 /* 079668 7F044B38 27BDFEA8 */ addiu $sp, $sp, -0x158 /* 07966C 7F044B3C AFBF0024 */ sw $ra, 0x24($sp) /* 079670 7F044B40 AFB10020 */ sw $s1, 0x20($sp) /* 079674 7F044B44 AFB0001C */ sw $s0, 0x1c($sp) /* 079678 7F044B48 8C830014 */ lw $v1, 0x14($a0) /* 07967C 7F044B4C 8C910010 */ lw $s1, 0x10($a0) /* 079680 7F044B50 24180001 */ li $t8, 1 /* 079684 7F044B54 8C790008 */ lw $t9, 8($v1) /* 079688 7F044B58 00808025 */ move $s0, $a0 /* 07968C 7F044B5C 27A500C8 */ addiu $a1, $sp, 0xc8 /* 079690 7F044B60 8F220008 */ lw $v0, 8($t9) /* 079694 7F044B64 8C480004 */ lw $t0, 4($v0) /* 079698 7F044B68 8D090004 */ lw $t1, 4($t0) /* 07969C 7F044B6C AFA90148 */ sw $t1, 0x148($sp) /* 0796A0 7F044B70 8C4A0008 */ lw $t2, 8($v0) /* 0796A4 7F044B74 8D4B0004 */ lw $t3, 4($t2) /* 0796A8 7F044B78 AFAB0144 */ sw $t3, 0x144($sp) /* 0796AC 7F044B7C 8C4C000C */ lw $t4, 0xc($v0) /* 0796B0 7F044B80 8D8D0004 */ lw $t5, 4($t4) /* 0796B4 7F044B84 AFAD0140 */ sw $t5, 0x140($sp) /* 0796B8 7F044B88 8C4E0010 */ lw $t6, 0x10($v0) /* 0796BC 7F044B8C 8DCF0004 */ lw $t7, 4($t6) /* 0796C0 7F044B90 AFB80108 */ sw $t8, 0x108($sp) /* 0796C4 7F044B94 AFAF013C */ sw $t7, 0x13c($sp) /* 0796C8 7F044B98 8C590018 */ lw $t9, 0x18($v0) /* 0796CC 7F044B9C 8F280004 */ lw $t0, 4($t9) /* 0796D0 7F044BA0 AFA800C0 */ sw $t0, 0xc0($sp) /* 0796D4 7F044BA4 C48C00A0 */ lwc1 $f12, 0xa0($a0) /* 0796D8 7F044BA8 0FC1617F */ jal matrix_4x4_set_rotation_around_y /* 0796DC 7F044BAC AFA30154 */ sw $v1, 0x154($sp) /* 0796E0 7F044BB0 8FA90154 */ lw $t1, 0x154($sp) /* 0796E4 7F044BB4 27A500C8 */ addiu $a1, $sp, 0xc8 /* 0796E8 7F044BB8 0FC1629F */ jal matrix_scalar_multiply /* 0796EC 7F044BBC C52C0014 */ lwc1 $f12, 0x14($t1) /* 0796F0 7F044BC0 26040058 */ addiu $a0, $s0, 0x58 /* 0796F4 7F044BC4 0FC16266 */ jal matrix_4x4_set_position /* 0796F8 7F044BC8 27A500C8 */ addiu $a1, $sp, 0xc8 /* 0796FC 7F044BCC 27A400C8 */ addiu $a0, $sp, 0xc8 /* 079700 7F044BD0 8FA50148 */ lw $a1, 0x148($sp) /* 079704 7F044BD4 0FC16106 */ jal matrix_4x4_transform_vector /* 079708 7F044BD8 27A60130 */ addiu $a2, $sp, 0x130 /* 07970C 7F044BDC 27A400C8 */ addiu $a0, $sp, 0xc8 /* 079710 7F044BE0 8FA50144 */ lw $a1, 0x144($sp) /* 079714 7F044BE4 0FC16106 */ jal matrix_4x4_transform_vector /* 079718 7F044BE8 27A60124 */ addiu $a2, $sp, 0x124 /* 07971C 7F044BEC 27A400C8 */ addiu $a0, $sp, 0xc8 /* 079720 7F044BF0 8FA50140 */ lw $a1, 0x140($sp) /* 079724 7F044BF4 0FC16106 */ jal matrix_4x4_transform_vector /* 079728 7F044BF8 27A60118 */ addiu $a2, $sp, 0x118 /* 07972C 7F044BFC 27A400C8 */ addiu $a0, $sp, 0xc8 /* 079730 7F044C00 8FA5013C */ lw $a1, 0x13c($sp) /* 079734 7F044C04 0FC16106 */ jal matrix_4x4_transform_vector /* 079738 7F044C08 27A6010C */ addiu $a2, $sp, 0x10c /* 07973C 7F044C0C 8E2A0014 */ lw $t2, 0x14($s1) /* 079740 7F044C10 C7A80138 */ lwc1 $f8, 0x138($sp) /* 079744 7F044C14 27A400C4 */ addiu $a0, $sp, 0xc4 /* 079748 7F044C18 AFAA00C4 */ sw $t2, 0xc4($sp) /* 07974C 7F044C1C 8E260010 */ lw $a2, 0x10($s1) /* 079750 7F044C20 8E250008 */ lw $a1, 8($s1) /* 079754 7F044C24 8FA70130 */ lw $a3, 0x130($sp) /* 079758 7F044C28 0FC2C2F9 */ jal walkTilesBetweenPoints_NoCallback /* 07975C 7F044C2C E7A80010 */ swc1 $f8, 0x10($sp) /* 079760 7F044C30 10400006 */ beqz $v0, .L7F044C4C /* 079764 7F044C34 8FA400C4 */ lw $a0, 0xc4($sp) /* 079768 7F044C38 8FA50130 */ lw $a1, 0x130($sp) /* 07976C 7F044C3C 0FC2CA5C */ jal stanGetPositionYValue /* 079770 7F044C40 8FA60138 */ lw $a2, 0x138($sp) /* 079774 7F044C44 10000002 */ b .L7F044C50 /* 079778 7F044C48 E7A00134 */ swc1 $f0, 0x134($sp) .L7F044C4C: /* 07977C 7F044C4C AFA00108 */ sw $zero, 0x108($sp) .L7F044C50: /* 079780 7F044C50 8E2B0014 */ lw $t3, 0x14($s1) /* 079784 7F044C54 C7A6012C */ lwc1 $f6, 0x12c($sp) /* 079788 7F044C58 27A400C4 */ addiu $a0, $sp, 0xc4 /* 07978C 7F044C5C AFAB00C4 */ sw $t3, 0xc4($sp) /* 079790 7F044C60 8E260010 */ lw $a2, 0x10($s1) /* 079794 7F044C64 8E250008 */ lw $a1, 8($s1) /* 079798 7F044C68 8FA70124 */ lw $a3, 0x124($sp) /* 07979C 7F044C6C 0FC2C2F9 */ jal walkTilesBetweenPoints_NoCallback /* 0797A0 7F044C70 E7A60010 */ swc1 $f6, 0x10($sp) /* 0797A4 7F044C74 10400006 */ beqz $v0, .L7F044C90 /* 0797A8 7F044C78 8FA400C4 */ lw $a0, 0xc4($sp) /* 0797AC 7F044C7C 8FA50124 */ lw $a1, 0x124($sp) /* 0797B0 7F044C80 0FC2CA5C */ jal stanGetPositionYValue /* 0797B4 7F044C84 8FA6012C */ lw $a2, 0x12c($sp) /* 0797B8 7F044C88 10000002 */ b .L7F044C94 /* 0797BC 7F044C8C E7A00128 */ swc1 $f0, 0x128($sp) .L7F044C90: /* 0797C0 7F044C90 AFA00108 */ sw $zero, 0x108($sp) .L7F044C94: /* 0797C4 7F044C94 8E2C0014 */ lw $t4, 0x14($s1) /* 0797C8 7F044C98 C7A40120 */ lwc1 $f4, 0x120($sp) /* 0797CC 7F044C9C 27A400C4 */ addiu $a0, $sp, 0xc4 /* 0797D0 7F044CA0 AFAC00C4 */ sw $t4, 0xc4($sp) /* 0797D4 7F044CA4 8E260010 */ lw $a2, 0x10($s1) /* 0797D8 7F044CA8 8E250008 */ lw $a1, 8($s1) /* 0797DC 7F044CAC 8FA70118 */ lw $a3, 0x118($sp) /* 0797E0 7F044CB0 0FC2C2F9 */ jal walkTilesBetweenPoints_NoCallback /* 0797E4 7F044CB4 E7A40010 */ swc1 $f4, 0x10($sp) /* 0797E8 7F044CB8 10400006 */ beqz $v0, .L7F044CD4 /* 0797EC 7F044CBC 8FA400C4 */ lw $a0, 0xc4($sp) /* 0797F0 7F044CC0 8FA50118 */ lw $a1, 0x118($sp) /* 0797F4 7F044CC4 0FC2CA5C */ jal stanGetPositionYValue /* 0797F8 7F044CC8 8FA60120 */ lw $a2, 0x120($sp) /* 0797FC 7F044CCC 10000002 */ b .L7F044CD8 /* 079800 7F044CD0 E7A0011C */ swc1 $f0, 0x11c($sp) .L7F044CD4: /* 079804 7F044CD4 AFA00108 */ sw $zero, 0x108($sp) .L7F044CD8: /* 079808 7F044CD8 8E2D0014 */ lw $t5, 0x14($s1) /* 07980C 7F044CDC C7AA0114 */ lwc1 $f10, 0x114($sp) /* 079810 7F044CE0 27A400C4 */ addiu $a0, $sp, 0xc4 /* 079814 7F044CE4 AFAD00C4 */ sw $t5, 0xc4($sp) /* 079818 7F044CE8 8E260010 */ lw $a2, 0x10($s1) /* 07981C 7F044CEC 8E250008 */ lw $a1, 8($s1) /* 079820 7F044CF0 8FA7010C */ lw $a3, 0x10c($sp) /* 079824 7F044CF4 0FC2C2F9 */ jal walkTilesBetweenPoints_NoCallback /* 079828 7F044CF8 E7AA0010 */ swc1 $f10, 0x10($sp) /* 07982C 7F044CFC 10400006 */ beqz $v0, .L7F044D18 /* 079830 7F044D00 8FA400C4 */ lw $a0, 0xc4($sp) /* 079834 7F044D04 8FA5010C */ lw $a1, 0x10c($sp) /* 079838 7F044D08 0FC2CA5C */ jal stanGetPositionYValue /* 07983C 7F044D0C 8FA60114 */ lw $a2, 0x114($sp) /* 079840 7F044D10 10000002 */ b .L7F044D1C /* 079844 7F044D14 E7A00110 */ swc1 $f0, 0x110($sp) .L7F044D18: /* 079848 7F044D18 AFA00108 */ sw $zero, 0x108($sp) .L7F044D1C: /* 07984C 7F044D1C 8FAE0108 */ lw $t6, 0x108($sp) /* 079850 7F044D20 26040018 */ addiu $a0, $s0, 0x18 /* 079854 7F044D24 27A600BC */ addiu $a2, $sp, 0xbc /* 079858 7F044D28 11C0010E */ beqz $t6, .L7F045164 /* 07985C 7F044D2C 00802825 */ move $a1, $a0 /* 079860 7F044D30 C7B20124 */ lwc1 $f18, 0x124($sp) /* 079864 7F044D34 C7B00130 */ lwc1 $f16, 0x130($sp) /* 079868 7F044D38 C7AE0128 */ lwc1 $f14, 0x128($sp) /* 07986C 7F044D3C C7AC0134 */ lwc1 $f12, 0x134($sp) /* 079870 7F044D40 46109401 */ sub.s $f16, $f18, $f16 /* 079874 7F044D44 C7B2012C */ lwc1 $f18, 0x12c($sp) /* 079878 7F044D48 C7AA0138 */ lwc1 $f10, 0x138($sp) /* 07987C 7F044D4C 460C7301 */ sub.s $f12, $f14, $f12 /* 079880 7F044D50 E7B000B4 */ swc1 $f16, 0xb4($sp) /* 079884 7F044D54 27A400B4 */ addiu $a0, $sp, 0xb4 /* 079888 7F044D58 460A9281 */ sub.s $f10, $f18, $f10 /* 07988C 7F044D5C E7AC00B8 */ swc1 $f12, 0xb8($sp) /* 079890 7F044D60 27A500B8 */ addiu $a1, $sp, 0xb8 /* 079894 7F044D64 0C007DD4 */ jal guNormalize /* 079898 7F044D68 E7AA00BC */ swc1 $f10, 0xbc($sp) /* 07989C 7F044D6C C7B2010C */ lwc1 $f18, 0x10c($sp) /* 0798A0 7F044D70 C7B00124 */ lwc1 $f16, 0x124($sp) /* 0798A4 7F044D74 C7AE0110 */ lwc1 $f14, 0x110($sp) /* 0798A8 7F044D78 C7AC0128 */ lwc1 $f12, 0x128($sp) /* 0798AC 7F044D7C 46109401 */ sub.s $f16, $f18, $f16 /* 0798B0 7F044D80 C7B20114 */ lwc1 $f18, 0x114($sp) /* 0798B4 7F044D84 C7AA012C */ lwc1 $f10, 0x12c($sp) /* 0798B8 7F044D88 460C7301 */ sub.s $f12, $f14, $f12 /* 0798BC 7F044D8C E7B000A8 */ swc1 $f16, 0xa8($sp) /* 0798C0 7F044D90 27A400A8 */ addiu $a0, $sp, 0xa8 /* 0798C4 7F044D94 460A9281 */ sub.s $f10, $f18, $f10 /* 0798C8 7F044D98 E7AC00AC */ swc1 $f12, 0xac($sp) /* 0798CC 7F044D9C 27A500AC */ addiu $a1, $sp, 0xac /* 0798D0 7F044DA0 27A600B0 */ addiu $a2, $sp, 0xb0 /* 0798D4 7F044DA4 0C007DD4 */ jal guNormalize /* 0798D8 7F044DA8 E7AA00B0 */ swc1 $f10, 0xb0($sp) /* 0798DC 7F044DAC C7B20118 */ lwc1 $f18, 0x118($sp) /* 0798E0 7F044DB0 C7B0010C */ lwc1 $f16, 0x10c($sp) /* 0798E4 7F044DB4 C7AE011C */ lwc1 $f14, 0x11c($sp) /* 0798E8 7F044DB8 C7AC0110 */ lwc1 $f12, 0x110($sp) /* 0798EC 7F044DBC 46109401 */ sub.s $f16, $f18, $f16 /* 0798F0 7F044DC0 C7B20120 */ lwc1 $f18, 0x120($sp) /* 0798F4 7F044DC4 C7AA0114 */ lwc1 $f10, 0x114($sp) /* 0798F8 7F044DC8 460C7301 */ sub.s $f12, $f14, $f12 /* 0798FC 7F044DCC E7B0009C */ swc1 $f16, 0x9c($sp) /* 079900 7F044DD0 27A4009C */ addiu $a0, $sp, 0x9c /* 079904 7F044DD4 460A9281 */ sub.s $f10, $f18, $f10 /* 079908 7F044DD8 E7AC00A0 */ swc1 $f12, 0xa0($sp) /* 07990C 7F044DDC 27A500A0 */ addiu $a1, $sp, 0xa0 /* 079910 7F044DE0 27A600A4 */ addiu $a2, $sp, 0xa4 /* 079914 7F044DE4 0C007DD4 */ jal guNormalize /* 079918 7F044DE8 E7AA00A4 */ swc1 $f10, 0xa4($sp) /* 07991C 7F044DEC C7B20130 */ lwc1 $f18, 0x130($sp) /* 079920 7F044DF0 C7B00118 */ lwc1 $f16, 0x118($sp) /* 079924 7F044DF4 C7AE0134 */ lwc1 $f14, 0x134($sp) /* 079928 7F044DF8 C7AC011C */ lwc1 $f12, 0x11c($sp) /* 07992C 7F044DFC 46109401 */ sub.s $f16, $f18, $f16 /* 079930 7F044E00 C7B20138 */ lwc1 $f18, 0x138($sp) /* 079934 7F044E04 C7AA0120 */ lwc1 $f10, 0x120($sp) /* 079938 7F044E08 460C7301 */ sub.s $f12, $f14, $f12 /* 07993C 7F044E0C E7B00090 */ swc1 $f16, 0x90($sp) /* 079940 7F044E10 27A40090 */ addiu $a0, $sp, 0x90 /* 079944 7F044E14 460A9281 */ sub.s $f10, $f18, $f10 /* 079948 7F044E18 E7AC0094 */ swc1 $f12, 0x94($sp) /* 07994C 7F044E1C 27A50094 */ addiu $a1, $sp, 0x94 /* 079950 7F044E20 27A60098 */ addiu $a2, $sp, 0x98 /* 079954 7F044E24 0C007DD4 */ jal guNormalize /* 079958 7F044E28 E7AA0098 */ swc1 $f10, 0x98($sp) /* 07995C 7F044E2C C7A800BC */ lwc1 $f8, 0xbc($sp) /* 079960 7F044E30 C7A600A8 */ lwc1 $f6, 0xa8($sp) /* 079964 7F044E34 C7AA00B0 */ lwc1 $f10, 0xb0($sp) /* 079968 7F044E38 E7A80028 */ swc1 $f8, 0x28($sp) /* 07996C 7F044E3C 46064102 */ mul.s $f4, $f8, $f6 /* 079970 7F044E40 C7A800B4 */ lwc1 $f8, 0xb4($sp) /* 079974 7F044E44 E7A6002C */ swc1 $f6, 0x2c($sp) /* 079978 7F044E48 E7AA0034 */ swc1 $f10, 0x34($sp) /* 07997C 7F044E4C 46085182 */ mul.s $f6, $f10, $f8 /* 079980 7F044E50 E7A80030 */ swc1 $f8, 0x30($sp) /* 079984 7F044E54 C7A800A4 */ lwc1 $f8, 0xa4($sp) /* 079988 7F044E58 46062001 */ sub.s $f0, $f4, $f6 /* 07998C 7F044E5C C7A4009C */ lwc1 $f4, 0x9c($sp) /* 079990 7F044E60 46045182 */ mul.s $f6, $f10, $f4 /* 079994 7F044E64 C7AA002C */ lwc1 $f10, 0x2c($sp) /* 079998 7F044E68 E7A4002C */ swc1 $f4, 0x2c($sp) /* 07999C 7F044E6C 460A4102 */ mul.s $f4, $f8, $f10 /* 0799A0 7F044E70 46043381 */ sub.s $f14, $f6, $f4 /* 0799A4 7F044E74 C7A60090 */ lwc1 $f6, 0x90($sp) /* 0799A8 7F044E78 4600703E */ c.le.s $f14, $f0 /* 0799AC 7F044E7C 00000000 */ nop /* 0799B0 7F044E80 45020023 */ bc1fl .L7F044F10 /* 0799B4 7F044E84 C7A600A4 */ lwc1 $f6, 0xa4($sp) /* 0799B8 7F044E88 46064102 */ mul.s $f4, $f8, $f6 /* 0799BC 7F044E8C E7AA0038 */ swc1 $f10, 0x38($sp) /* 0799C0 7F044E90 C7AA002C */ lwc1 $f10, 0x2c($sp) /* 0799C4 7F044E94 C7A80098 */ lwc1 $f8, 0x98($sp) /* 0799C8 7F044E98 460A4282 */ mul.s $f10, $f8, $f10 /* 0799CC 7F044E9C 460A2101 */ sub.s $f4, $f4, $f10 /* 0799D0 7F044EA0 C7AA0030 */ lwc1 $f10, 0x30($sp) /* 0799D4 7F044EA4 4600203E */ c.le.s $f4, $f0 /* 0799D8 7F044EA8 00000000 */ nop /* 0799DC 7F044EAC 45020018 */ bc1fl .L7F044F10 /* 0799E0 7F044EB0 C7A600A4 */ lwc1 $f6, 0xa4($sp) /* 0799E4 7F044EB4 460A4102 */ mul.s $f4, $f8, $f10 /* 0799E8 7F044EB8 C7A80028 */ lwc1 $f8, 0x28($sp) /* 0799EC 7F044EBC C7AC00B8 */ lwc1 $f12, 0xb8($sp) /* 0799F0 7F044EC0 46064182 */ mul.s $f6, $f8, $f6 /* 0799F4 7F044EC4 46062101 */ sub.s $f4, $f4, $f6 /* 0799F8 7F044EC8 C7A60034 */ lwc1 $f6, 0x34($sp) /* 0799FC 7F044ECC 4600203E */ c.le.s $f4, $f0 /* 079A00 7F044ED0 00000000 */ nop /* 079A04 7F044ED4 4502000E */ bc1fl .L7F044F10 /* 079A08 7F044ED8 C7A600A4 */ lwc1 $f6, 0xa4($sp) /* 079A0C 7F044EDC 46066102 */ mul.s $f4, $f12, $f6 /* 079A10 7F044EE0 C7A200AC */ lwc1 $f2, 0xac($sp) /* 079A14 7F044EE4 E7A00078 */ swc1 $f0, 0x78($sp) /* 079A18 7F044EE8 46081182 */ mul.s $f6, $f2, $f8 /* 079A1C 7F044EEC 46062201 */ sub.s $f8, $f4, $f6 /* 079A20 7F044EF0 46025102 */ mul.s $f4, $f10, $f2 /* 079A24 7F044EF4 C7A60038 */ lwc1 $f6, 0x38($sp) /* 079A28 7F044EF8 E7A80074 */ swc1 $f8, 0x74($sp) /* 079A2C 7F044EFC 460C3202 */ mul.s $f8, $f6, $f12 /* 079A30 7F044F00 46082281 */ sub.s $f10, $f4, $f8 /* 079A34 7F044F04 10000045 */ b .L7F04501C /* 079A38 7F044F08 E7AA007C */ swc1 $f10, 0x7c($sp) /* 079A3C 7F044F0C C7A600A4 */ lwc1 $f6, 0xa4($sp) .L7F044F10: /* 079A40 7F044F10 C7A40090 */ lwc1 $f4, 0x90($sp) /* 079A44 7F044F14 C7AA0098 */ lwc1 $f10, 0x98($sp) /* 079A48 7F044F18 E7A60038 */ swc1 $f6, 0x38($sp) /* 079A4C 7F044F1C 46043202 */ mul.s $f8, $f6, $f4 /* 079A50 7F044F20 C7A6009C */ lwc1 $f6, 0x9c($sp) /* 079A54 7F044F24 E7A40034 */ swc1 $f4, 0x34($sp) /* 079A58 7F044F28 46065102 */ mul.s $f4, $f10, $f6 /* 079A5C 7F044F2C 46044001 */ sub.s $f0, $f8, $f4 /* 079A60 7F044F30 C7A800B4 */ lwc1 $f8, 0xb4($sp) /* 079A64 7F044F34 46085102 */ mul.s $f4, $f10, $f8 /* 079A68 7F044F38 C7A80034 */ lwc1 $f8, 0x34($sp) /* 079A6C 7F044F3C C7AA00BC */ lwc1 $f10, 0xbc($sp) /* 079A70 7F044F40 460E003E */ c.le.s $f0, $f14 /* 079A74 7F044F44 46085282 */ mul.s $f10, $f10, $f8 /* 079A78 7F044F48 45000013 */ bc1f .L7F044F98 /* 079A7C 7F044F4C 460A2081 */ sub.s $f2, $f4, $f10 /* 079A80 7F044F50 460E103E */ c.le.s $f2, $f14 /* 079A84 7F044F54 C7A80038 */ lwc1 $f8, 0x38($sp) /* 079A88 7F044F58 45020010 */ bc1fl .L7F044F9C /* 079A8C 7F044F5C 4600103E */ c.le.s $f2, $f0 /* 079A90 7F044F60 C7A200AC */ lwc1 $f2, 0xac($sp) /* 079A94 7F044F64 C7AC00A0 */ lwc1 $f12, 0xa0($sp) /* 079A98 7F044F68 C7AA00B0 */ lwc1 $f10, 0xb0($sp) /* 079A9C 7F044F6C 46081102 */ mul.s $f4, $f2, $f8 /* 079AA0 7F044F70 E7AE0078 */ swc1 $f14, 0x78($sp) /* 079AA4 7F044F74 460A6202 */ mul.s $f8, $f12, $f10 /* 079AA8 7F044F78 46082281 */ sub.s $f10, $f4, $f8 /* 079AAC 7F044F7C C7A400A8 */ lwc1 $f4, 0xa8($sp) /* 079AB0 7F044F80 460C2202 */ mul.s $f8, $f4, $f12 /* 079AB4 7F044F84 E7AA0074 */ swc1 $f10, 0x74($sp) /* 079AB8 7F044F88 46023282 */ mul.s $f10, $f6, $f2 /* 079ABC 7F044F8C 460A4101 */ sub.s $f4, $f8, $f10 /* 079AC0 7F044F90 10000022 */ b .L7F04501C /* 079AC4 7F044F94 E7A4007C */ swc1 $f4, 0x7c($sp) .L7F044F98: /* 079AC8 7F044F98 4600103E */ c.le.s $f2, $f0 .L7F044F9C: /* 079ACC 7F044F9C C7AC00A0 */ lwc1 $f12, 0xa0($sp) /* 079AD0 7F044FA0 C7AE0094 */ lwc1 $f14, 0x94($sp) /* 079AD4 7F044FA4 C7A400BC */ lwc1 $f4, 0xbc($sp) /* 079AD8 7F044FA8 45000010 */ bc1f .L7F044FEC /* 079ADC 7F044FAC C7A60098 */ lwc1 $f6, 0x98($sp) /* 079AE0 7F044FB0 C7A60098 */ lwc1 $f6, 0x98($sp) /* 079AE4 7F044FB4 C7AE0094 */ lwc1 $f14, 0x94($sp) /* 079AE8 7F044FB8 C7AA00A4 */ lwc1 $f10, 0xa4($sp) /* 079AEC 7F044FBC 46066202 */ mul.s $f8, $f12, $f6 /* 079AF0 7F044FC0 E7A00078 */ swc1 $f0, 0x78($sp) /* 079AF4 7F044FC4 460A7102 */ mul.s $f4, $f14, $f10 /* 079AF8 7F044FC8 C7AA009C */ lwc1 $f10, 0x9c($sp) /* 079AFC 7F044FCC 46044181 */ sub.s $f6, $f8, $f4 /* 079B00 7F044FD0 460E5202 */ mul.s $f8, $f10, $f14 /* 079B04 7F044FD4 C7A40090 */ lwc1 $f4, 0x90($sp) /* 079B08 7F044FD8 E7A60074 */ swc1 $f6, 0x74($sp) /* 079B0C 7F044FDC 460C2182 */ mul.s $f6, $f4, $f12 /* 079B10 7F044FE0 46064281 */ sub.s $f10, $f8, $f6 /* 079B14 7F044FE4 1000000D */ b .L7F04501C /* 079B18 7F044FE8 E7AA007C */ swc1 $f10, 0x7c($sp) .L7F044FEC: /* 079B1C 7F044FEC 46047202 */ mul.s $f8, $f14, $f4 /* 079B20 7F044FF0 C7AC00B8 */ lwc1 $f12, 0xb8($sp) /* 079B24 7F044FF4 E7A20078 */ swc1 $f2, 0x78($sp) /* 079B28 7F044FF8 46066282 */ mul.s $f10, $f12, $f6 /* 079B2C 7F044FFC C7A60090 */ lwc1 $f6, 0x90($sp) /* 079B30 7F045000 460A4101 */ sub.s $f4, $f8, $f10 /* 079B34 7F045004 460C3202 */ mul.s $f8, $f6, $f12 /* 079B38 7F045008 C7AA00B4 */ lwc1 $f10, 0xb4($sp) /* 079B3C 7F04500C E7A40074 */ swc1 $f4, 0x74($sp) /* 079B40 7F045010 460E5102 */ mul.s $f4, $f10, $f14 /* 079B44 7F045014 46044181 */ sub.s $f6, $f8, $f4 /* 079B48 7F045018 E7A6007C */ swc1 $f6, 0x7c($sp) .L7F04501C: /* 079B4C 7F04501C 0FC15FAB */ jal sinf /* 079B50 7F045020 C60C00A0 */ lwc1 $f12, 0xa0($s0) /* 079B54 7F045024 44805000 */ mtc1 $zero, $f10 /* 079B58 7F045028 E7A00068 */ swc1 $f0, 0x68($sp) /* 079B5C 7F04502C E7AA006C */ swc1 $f10, 0x6c($sp) /* 079B60 7F045030 0FC15FA8 */ jal cosf /* 079B64 7F045034 C60C00A0 */ lwc1 $f12, 0xa0($s0) /* 079B68 7F045038 26040018 */ addiu $a0, $s0, 0x18 /* 079B6C 7F04503C E7A00070 */ swc1 $f0, 0x70($sp) /* 079B70 7F045040 0FC15FF4 */ jal matrix_4x4_set_identity /* 079B74 7F045044 AFA40058 */ sw $a0, 0x58($sp) /* 079B78 7F045048 C7A80074 */ lwc1 $f8, 0x74($sp) /* 079B7C 7F04504C 8FA50058 */ lw $a1, 0x58($sp) /* 079B80 7F045050 E6080028 */ swc1 $f8, 0x28($s0) /* 079B84 7F045054 C7A40078 */ lwc1 $f4, 0x78($sp) /* 079B88 7F045058 C6100028 */ lwc1 $f16, 0x28($s0) /* 079B8C 7F04505C E604002C */ swc1 $f4, 0x2c($s0) /* 079B90 7F045060 C7A6007C */ lwc1 $f6, 0x7c($sp) /* 079B94 7F045064 C60E002C */ lwc1 $f14, 0x2c($s0) /* 079B98 7F045068 E6060030 */ swc1 $f6, 0x30($s0) /* 079B9C 7F04506C C7AA0070 */ lwc1 $f10, 0x70($sp) /* 079BA0 7F045070 C7A4006C */ lwc1 $f4, 0x6c($sp) /* 079BA4 7F045074 C6000030 */ lwc1 $f0, 0x30($s0) /* 079BA8 7F045078 460A7202 */ mul.s $f8, $f14, $f10 /* 079BAC 7F04507C 00000000 */ nop /* 079BB0 7F045080 46002182 */ mul.s $f6, $f4, $f0 /* 079BB4 7F045084 46064281 */ sub.s $f10, $f8, $f6 /* 079BB8 7F045088 E60A0018 */ swc1 $f10, 0x18($s0) /* 079BBC 7F04508C C7A40068 */ lwc1 $f4, 0x68($sp) /* 079BC0 7F045090 C7A60070 */ lwc1 $f6, 0x70($sp) /* 079BC4 7F045094 46040202 */ mul.s $f8, $f0, $f4 /* 079BC8 7F045098 00000000 */ nop /* 079BCC 7F04509C 46103282 */ mul.s $f10, $f6, $f16 /* 079BD0 7F0450A0 460A4101 */ sub.s $f4, $f8, $f10 /* 079BD4 7F0450A4 E604001C */ swc1 $f4, 0x1c($s0) /* 079BD8 7F0450A8 C7A6006C */ lwc1 $f6, 0x6c($sp) /* 079BDC 7F0450AC C7AA0068 */ lwc1 $f10, 0x68($sp) /* 079BE0 7F0450B0 46068202 */ mul.s $f8, $f16, $f6 /* 079BE4 7F0450B4 00000000 */ nop /* 079BE8 7F0450B8 460E5102 */ mul.s $f4, $f10, $f14 /* 079BEC 7F0450BC C60A001C */ lwc1 $f10, 0x1c($s0) /* 079BF0 7F0450C0 46044181 */ sub.s $f6, $f8, $f4 /* 079BF4 7F0450C4 E6060020 */ swc1 $f6, 0x20($s0) /* 079BF8 7F0450C8 E7AA0048 */ swc1 $f10, 0x48($sp) /* 079BFC 7F0450CC C7A80048 */ lwc1 $f8, 0x48($sp) /* 079C00 7F0450D0 C6020020 */ lwc1 $f2, 0x20($s0) /* 079C04 7F0450D4 C6120018 */ lwc1 $f18, 0x18($s0) /* 079C08 7F0450D8 46004102 */ mul.s $f4, $f8, $f0 /* 079C0C 7F0450DC 00000000 */ nop /* 079C10 7F0450E0 46027182 */ mul.s $f6, $f14, $f2 /* 079C14 7F0450E4 46062281 */ sub.s $f10, $f4, $f6 /* 079C18 7F0450E8 46101202 */ mul.s $f8, $f2, $f16 /* 079C1C 7F0450EC 00000000 */ nop /* 079C20 7F0450F0 46120102 */ mul.s $f4, $f0, $f18 /* 079C24 7F0450F4 E60A0038 */ swc1 $f10, 0x38($s0) /* 079C28 7F0450F8 460E9282 */ mul.s $f10, $f18, $f14 /* 079C2C 7F0450FC 46044181 */ sub.s $f6, $f8, $f4 /* 079C30 7F045100 E606003C */ swc1 $f6, 0x3c($s0) /* 079C34 7F045104 C7A80048 */ lwc1 $f8, 0x48($sp) /* 079C38 7F045108 46088102 */ mul.s $f4, $f16, $f8 /* 079C3C 7F04510C 46045181 */ sub.s $f6, $f10, $f4 /* 079C40 7F045110 E6060040 */ swc1 $f6, 0x40($s0) /* 079C44 7F045114 8FAF0154 */ lw $t7, 0x154($sp) /* 079C48 7F045118 C5EC0014 */ lwc1 $f12, 0x14($t7) /* 079C4C 7F04511C 0FC1629F */ jal matrix_scalar_multiply /* 079C50 7F045120 AFA50058 */ sw $a1, 0x58($sp) /* 079C54 7F045124 8FA40058 */ lw $a0, 0x58($sp) /* 079C58 7F045128 8FA50148 */ lw $a1, 0x148($sp) /* 079C5C 7F04512C 0FC16106 */ jal matrix_4x4_transform_vector /* 079C60 7F045130 27A60124 */ addiu $a2, $sp, 0x124 /* 079C64 7F045134 0FC0FA19 */ jal chrpropBBOXGetYmin /* 079C68 7F045138 8FA400C0 */ lw $a0, 0xc0($sp) /* 079C6C 7F04513C 8FB80154 */ lw $t8, 0x154($sp) /* 079C70 7F045140 C7A80134 */ lwc1 $f8, 0x134($sp) /* 079C74 7F045144 C70A0014 */ lwc1 $f10, 0x14($t8) /* 079C78 7F045148 460A0102 */ mul.s $f4, $f0, $f10 /* 079C7C 7F04514C C7AA0128 */ lwc1 $f10, 0x128($sp) /* 079C80 7F045150 46044181 */ sub.s $f6, $f8, $f4 /* 079C84 7F045154 460A3081 */ sub.s $f2, $f6, $f10 /* 079C88 7F045158 E622000C */ swc1 $f2, 0xc($s1) /* 079C8C 7F04515C 10000019 */ b .L7F0451C4 /* 079C90 7F045160 E602005C */ swc1 $f2, 0x5c($s0) .L7F045164: /* 079C94 7F045164 C60C00A0 */ lwc1 $f12, 0xa0($s0) /* 079C98 7F045168 0FC1617F */ jal matrix_4x4_set_rotation_around_y /* 079C9C 7F04516C AFA40058 */ sw $a0, 0x58($sp) /* 079CA0 7F045170 8FB90154 */ lw $t9, 0x154($sp) /* 079CA4 7F045174 8FA50058 */ lw $a1, 0x58($sp) /* 079CA8 7F045178 0FC1629F */ jal matrix_scalar_multiply /* 079CAC 7F04517C C72C0014 */ lwc1 $f12, 0x14($t9) /* 079CB0 7F045180 8E240014 */ lw $a0, 0x14($s1) /* 079CB4 7F045184 8E250008 */ lw $a1, 8($s1) /* 079CB8 7F045188 0FC2CA5C */ jal stanGetPositionYValue /* 079CBC 7F04518C 8E260010 */ lw $a2, 0x10($s1) /* 079CC0 7F045190 E7A0005C */ swc1 $f0, 0x5c($sp) /* 079CC4 7F045194 0FC0FA19 */ jal chrpropBBOXGetYmin /* 079CC8 7F045198 8FA400C0 */ lw $a0, 0xc0($sp) /* 079CCC 7F04519C 8FA80148 */ lw $t0, 0x148($sp) /* 079CD0 7F0451A0 8FA90154 */ lw $t1, 0x154($sp) /* 079CD4 7F0451A4 C5080004 */ lwc1 $f8, 4($t0) /* 079CD8 7F0451A8 C5260014 */ lwc1 $f6, 0x14($t1) /* 079CDC 7F0451AC 46004100 */ add.s $f4, $f8, $f0 /* 079CE0 7F0451B0 C7A8005C */ lwc1 $f8, 0x5c($sp) /* 079CE4 7F0451B4 46062282 */ mul.s $f10, $f4, $f6 /* 079CE8 7F0451B8 460A4081 */ sub.s $f2, $f8, $f10 /* 079CEC 7F0451BC E622000C */ swc1 $f2, 0xc($s1) /* 079CF0 7F0451C0 E602005C */ swc1 $f2, 0x5c($s0) .L7F0451C4: /* 079CF4 7F0451C4 8FBF0024 */ lw $ra, 0x24($sp) /* 079CF8 7F0451C8 8FA20108 */ lw $v0, 0x108($sp) /* 079CFC 7F0451CC 8FB0001C */ lw $s0, 0x1c($sp) /* 079D00 7F0451D0 8FB10020 */ lw $s1, 0x20($sp) /* 079D04 7F0451D4 03E00008 */ jr $ra /* 079D08 7F0451D8 27BD0158 */ addiu $sp, $sp, 0x158 ) #endif s32 glassCalculateOpacity(coord3d *pos, f32 xludist, f32 opadist, f32 arg3) { coord3d *campos = &get_curplayer_positiondata()->pos; s32 opacity; f32 xdiff = pos->x - campos->x; f32 ydiff = pos->y - campos->y; f32 zdiff = pos->z - campos->z; f32 distance = sqrtf(xdiff * xdiff + ydiff * ydiff + zdiff * zdiff); if (distance > opadist) { opacity = 255; } else if (distance < xludist) { opacity = arg3 * 255; } else { opacity = (((distance - xludist) * (1.0f - arg3)) / (opadist - xludist) + arg3) * 255; } return opacity; } #ifdef NONMATCHING // version US defines #define AUTOGUN_P1_ACCEL 0.000011635529f #define AUTOGUN_P1_DECEL AUTOGUN_P1_ACCEL #define AUTOGUN_P1_MAXSPEED 0.00069813174f #define AUTOGUN_P2_ACCEL 0.0000058177643f #define AUTOGUN_P2_DECEL AUTOGUN_P1_ACCEL #define AUTOGUN_P2_MAXSPEED 0.00034906587f // https://decomp.me/scratch/c9RKZ 65.91% // PD name: objTick // Address: 7F0452D4 s32 object_interaction(struct PropRecord *arg0) { struct coord3d sp694; s32 sp690; struct PropRecord *sp684; s32 sp680; f32 sp67C; s32 sp674; s32 sp670; s32 sp678; s32 sp664; struct coord3d sp658; struct coord3d sp64C; struct WeaponObjRecord *sp648; struct ModelRoData_BoundingBoxRecord * sp640; f32 sp63C; f32 sp638; struct coord3d sp62C; struct coord3d sp620; struct coord3d sp614; s32 sp610; s32 sp60C; // missing: sp608 s32 sp604; struct coord3d sp5CC; Mtxf *sp58C; struct coord3d sp564; f32 sp550[4]; //quatf struct ModelRoData_BoundingBoxRecord *sp54C; s32 sp548; struct coord3d sp53C; struct coord3d sp530; f32 sp518; struct PropRecord* sp514; struct coord3d sp5xx; // temp variable, unknown stack position struct StandTile *sp4F0; f32 sp4D8; f32 sp4D4; struct coord3d sp4BC; f32 sp4B8; f32 sp4B4; f32 sp4B0; s32 sp4AC; s32 sp4A8; s32 sp4A4; f32 sp4A0; f32 sp49C; f32 sp498; f32 sp494; struct StandTile *sp490; f32 sp47C; struct coord3d *sp478; struct StandTile *sp468; f32 sp460; struct coord3d sp450; struct StandTile *sp44C; f32 sp444; f32 sp440; f32 sp43C; f32 sp438; f32 sp434; f32 sp430; f32 sp42C; f32 sp424; f32 sp420; f32 sp418; f32 sp414; f32 sp40C; f32 sp408; f32 sp400; Mtxf sp3A4; struct DoorRecord *sp39C; f32 sp394; Mtxf *sp390; s32 sp38C; f32 sp384; f32 sp380; struct CCTVRecord *sp370; struct coord3d sp360; Mtxf sp320; struct AutogunRecord *sp318; struct coord3d sp308; f32 sp304; f32 sp300; Mtxf *sp2FC; s32 sp2F8; Mtxf sp2AC; Mtxf sp26C; struct coord3d *sp260; struct coord3d *sp25C; struct coord3d *sp258; struct coord3d *sp254; f32 sp250; f32 sp24C; f32 sp248; Mtxf sp200; struct coord3d *sp1FC; ModelRenderData sp1B0; Mtxf sp16C; struct coord3d *sp168; struct coord3d *sp164; struct coord3d *sp160; struct coord3d *sp15C; struct ModelRoData_BoundingBoxRecord *sp158; f32 sp154; s32 sp13C; s32 sp138; struct coord3d sp12C; struct coord3d sp120; s32 sp11C; struct coord3d sp110; struct StandTile *sp10C; struct StandTile *sp108; s32 sp104; struct PropRecord* sp100; Mtxf spB8; f32 sp94; struct beam *beam; //sp90 Mtxf *sp70; /* compiler-managed */ Mtxf *sp6C; struct ObjectRecord *obj; struct Model *model; f32 temp_f12; s32 var_s2_2; s32 var_a0; struct StandTile *temp_s2; f32 temp_f14_2; Mtxf *temp_s2_4; f32 temp_f14_3; f32 temp_f20; f32 temp_f14_4; struct ALSoundState * sfx_state; s32 var_s2_3; f32 temp_f12_5; s32 var_v1_3; f32 temp_f0_13; // ~ sp510 s32 var_s2_4; f32 var_f2; f32 temp_f0_14; f32 var_f12; f32 var_f2_3; struct PropRecord *temp_v0_19; f32 var_f12_3; s32 var_v0_3; f32 var_f0_2; f32 var_f12_5; f32 var_f2_6; f32 temp_f0_22; s32 var_v1_5; s32 var_s0; f32 *temp_s0_5; f32 *temp_v0_25; s32 var_s2_5; f32 var_f12_6; s32 var_s0_2; struct Model *temp_s0_6; struct PadRecord *var_v1_4; struct ModelFileHeader *temp_v0_29; s32 var_s2_6; struct ModelFileHeader *temp_v0_31; Mtxf *temp_a1_4; Mtxf *temp_s0_10; f32 temp_f0_31; s32 temp_v0_32; Mtxf *temp_a1_6; f32 var_f12_7; struct coord3d *temp_s0_13; struct coord3d *temp_s0_14; struct ModelNode** temp_v1_7; f32 var_f0_3; f32 *temp_v0_40; ModelNode **var_v1_7; Mtxf *temp_s0_21; ModelNode **temp_v1_8; f32 var_f12_9; s32 var_a0_6; ModelNode **temp_v1_10; Mtxf *temp_s2_7; struct coord3d *temp_v1_11; struct coord3d temp_fc3d_a; struct coord3d temp_fc3d_b; f32 temp_f20_4; f32 temp_f0_35; f32 var_f2_7; f32 temp_f2_23; f32 var_f4; obj = arg0->obj; model = obj->model; sp690 = 0; sp680 = 0; sp67C = 0.0f; sp674 = getPlayerCount(); sp670 = 1; if (obj->runtime_bitflags & RUNTIMEBITFLAG_REMOVE) { objFree(obj, 0, obj->state & RUNTIMEBITFLAG_REMOVE); return 1; } else if (obj->runtime_bitflags & RUNTIMEBITFLAG_ISRETICK) { obj->runtime_bitflags &= ~RUNTIMEBITFLAG_ISRETICK; } else if (obj->runtime_bitflags & RUNTIMEBITFLAG_DEPOSIT) { arg0->flags &= 0xFFFD; obj->runtime_bitflags |= RUNTIMEBITFLAG_ISRETICK; return 3; } if (sp674 == 1) { sp678 = 1; } else { sp678 = sub_GAME_7F09B4D8(get_cur_playernum()) == 0; if (obj->runtime_bitflags & RUNTIMEBITFLAG_DEPOSIT) { if (obj->projectile->ownerprop != NULL) { sp678 = g_CurrentPlayer->prop == obj->projectile->ownerprop; } } } // mips2c line 559 if (sp678) { if (obj->runtime_bitflags & RUNTIMEBITFLAG_DEPOSIT) { struct Projectile *temp_s0 = obj->projectile; temp_s0->unkE0 += g_ClockTimer; if (temp_s0->unkE0 > 2400) { obj->runtime_bitflags |= RUNTIMEBITFLAG_REMOVE; } if (temp_s0->flags & 0x100) { struct PropRecord *projectile_prop; s32 var_s2 = 1; sp648 = (struct WeaponObjRecord *)obj; if (obj->type == PROPDEF_COLLECTABLE && sp648->weaponnum == ITEM_NULL86) { var_s2 = 0; } projectile_prop = temp_s0->ownerprop; if (projectile_prop != NULL) { sub_GAME_7F03D058(projectile_prop, 0); } sp664 = sub_GAME_7F042EB4(obj, &temp_s0->unkd4, &sp64C, &sp658, 0, var_s2); if (projectile_prop != NULL) { sub_GAME_7F03D058(projectile_prop, 1); } if ((sp664 != 1) && (sp648 != NULL) && sp648->weaponnum == ITEM_NULL86) { sp648->timer = 0; } temp_s0->flags &= ~0x100; } sp694.f[0] = obj->runtime_pos.f[0]; sp694.f[1] = obj->runtime_pos.f[1]; sp694.f[2] = obj->runtime_pos.f[2]; if (temp_s0->refreshrate > 0) { temp_s0->refreshrate -= g_ClockTimer; } // mips2c line 608 if (obj->projectile->flags & 1) { struct WeaponObjRecord *temp_s1 = (struct WeaponObjRecord *)obj; sp640 = sub_GAME_7F040078(obj); sp610 = 0; sp60C = 0; sp604 = 0; sp638 = 1.0f; temp_f20 = obj->runtime_pos.f[1]; var_s2_2 = 0; temp_s0->unkA8 += g_ClockTimer; sp62C.f[0] = obj->mtx.m[0][0]; sp62C.f[1] = obj->mtx.m[0][1]; sp62C.f[2] = obj->mtx.m[0][2]; if (temp_s0->flags & 0x20) { if (temp_s0->unk1C < (10.0f/360.0f)) { temp_s0->unkB4 += temp_s0->unk10.f[1] * g_GlobalTimerDelta; temp_s0->unkB0 += temp_s0->unkB4 * g_GlobalTimerDelta; temp_s0->unk1C += ((1.0f/90.0f) * g_GlobalTimerDelta); if (temp_s0->unk1C > (10.0f/360.0f)) { temp_s0->unk1C = (10.0f/360.0f); } } else { if (sp694.f[1] < temp_s0->unkB0) { temp_s0->unkB4 += temp_s0->unk10.f[1] * g_GlobalTimerDelta; temp_s0->unkB0 += (temp_s0->unkB4 * g_GlobalTimerDelta); sp694.f[1] += 0.07f * (temp_s0->unkB0 - sp694.f[1]) * g_GlobalTimerDelta; } else { sp694.f[1] = temp_s0->unkB0; temp_s0->flags &= ~0x20; temp_s0->flags |= 0x10; temp_s0->unk1C = 0.0f; temp_s0->speed.f[1] = temp_s0->unkB4; } } } if (!(temp_s0->flags & 0x10)) { temp_s0->speed.f[1] += (temp_s0->unk10.f[1] + temp_s0->unk1C) * g_GlobalTimerDelta; temp_f12 = temp_s0->speed.f[1]; temp_s0->speed.f[1] -= (0.2777778f * g_GlobalTimerDelta); sp694.f[1] += g_GlobalTimerDelta * (temp_f12 + temp_s0->speed.f[1]) * 0.5f; } else { temp_s0->speed.f[1] += (temp_s0->unk10.f[1] + temp_s0->unk1C) * g_GlobalTimerDelta; sp694.f[1] += temp_s0->speed.f[1] * g_GlobalTimerDelta; } sp70 = &obj->mtx; sp6C = &obj->mtx; temp_s0->speed.f[0] += temp_s0->unk10.f[0] * g_GlobalTimerDelta; temp_s0->speed.f[2] += temp_s0->unk10.f[2] * g_GlobalTimerDelta; sp694.f[0] += temp_s0->speed.f[0] * g_GlobalTimerDelta; sp694.f[2] += temp_s0->speed.f[2] * g_GlobalTimerDelta; sub_GAME_7F057DF8(sp70, sp6C, g_ClockTimer, &g_ClockTimer); if ((obj->type == PROPDEF_COLLECTABLE) && (((temp_s1->weaponnum == 0x1D)) || (temp_s1->weaponnum == 0x1B) || (temp_s1->weaponnum == 0x1C) || (temp_s1->weaponnum == 0x21) || (temp_s1->weaponnum == 0x2F) || (temp_s1->weaponnum == 0x30) || (temp_s1->weaponnum == 0x22))) { var_s2_2 = 1; } if (temp_s0->ownerprop != NULL) { sub_GAME_7F03D058(temp_s0->ownerprop, 0); } sp664 = sub_GAME_7F042EB4(obj, &sp694.f[0], &sp614, &sp620, var_s2_2, 0); if (temp_s0->ownerprop != NULL) { sub_GAME_7F03D058(temp_s0->ownerprop, 1); } sp690 = 1; // mps2c line 696 if ((sp664 == 2) && ((D_80030B0C == NULL) || (((D_80030B0C->type != 3)) && (D_80030B0C->type != 6)))) { var_a0 = 0; if ((D_80030B0C != NULL) && (D_80030B0C->obj->runtime_bitflags & 0x80)) { var_a0 = 1; } if (var_a0 == 0) { projectileFree(temp_s0); obj->projectile = NULL; obj->runtime_bitflags &= ~0x80; if (arg0->flags & 8) { arg0->flags |= 0x10; } chrobjSndCreatePostEventDefault(sndPlaySfx((struct ALBankAlt_s *) g_musicSfxBufferPtr, ATTACH_MINE_SFX, NULL), &arg0->pos); sub_GAME_7F0577E8(((struct WeaponObjRecord *)obj)->weaponnum, arg0->stan->room); sub_GAME_7F0439B8(obj, &sp614, arg0->stan, &sp620); if (D_80030B0C != NULL) { temp_s2 = arg0->stan; if (objEmbed(arg0, D_80030B0C, objinst, dword_CODE_bss_80075B74) != 0) { arg0->stan = temp_s2; sp680 = 5; sp604 = 1; } } } } // mpis2c line 728 if (sp604 == 0) { if ((D_80030B0C != NULL) && (obj->type == PROPDEF_COLLECTABLE)) { struct WeaponObjRecord *temp_weap = (struct WeaponObjRecord *)obj; if (temp_weap->weaponnum == ITEM_THROWKNIFE) { if (D_80030B0C->type != 3) { if (D_80030B0C->type == 6 && D_80030B0C->obj != NULL) { if (getPlayerPointerIndex(D_80030B0C) != get_cur_playernum()) { //goto block_77; } } } else { //block_77:; struct Projectile *temp_v0_8 = obj->projectile; if ((temp_v0_8->flags & 1) && ((s32) temp_v0_8->unk90 <= 0) && (obj->runtime_bitflags & 0x20) && (handles_shot_actors(D_80030B0C->chr, bodypartshot, &flt_CODE_bss_80075B78, ((struct WeaponObjRecord *)obj)->weaponnum, 1) != 0)) { sp604 = 1; if (temp_s0->unk8C > 0.0f) { temp_f14_2 = ((sp620.f[2] * temp_s0->speed.f[2]) + ((temp_s0->speed.f[0] * sp620.f[0]) + (temp_s0->speed.f[1] * sp620.f[1]))) * -(temp_s0->unk8C + 1.0f); temp_s0->speed.f[0] = temp_s0->speed.f[0] + (temp_f14_2 * sp620.f[0]); temp_s0->speed.f[1] = temp_s0->speed.f[1] + (temp_f14_2 * sp620.f[1]); temp_s0->speed.f[2] = temp_s0->speed.f[2] + (temp_f14_2 * sp620.f[2]); } if (!(temp_s0->flags & 0x200)) { mtxLoadRandomRotation(sp6C); } temp_s0->unk90 += 1; recall_joy2_hits_edit_detail_edit_flag(((struct WeaponObjRecord *)obj)->weaponnum, D_80030B0C, -1); if ((D_80030B0C->flags & 2) && (bodypartshot != 0x64) && (bodypartshot != 0x6E)) { temp_s2_4 = modelFindNodeMtx(objinst, dword_CODE_bss_80075B74, 0); sp5CC.f[0] = sp614.f[0]; sp5CC.f[1] = sp614.f[1]; sp5CC.f[2] = sp614.f[2]; mtx4TransformVecInPlace(camGetWorldToScreenMtxf(), &sp5CC); sp5CC.f[0] += ((sp5CC.f[0] - temp_s2_4->m[3][0]) * 0.5f); sp5CC.f[1] += ((sp5CC.f[1] - temp_s2_4->m[3][1]) * 0.5f); sp5CC.f[2] += ((sp5CC.f[2] - temp_s2_4->m[3][2]) * 0.5f); sp5CC.f[0] -= (getjointsize(objinst, dword_CODE_bss_80075B74) * 0.5f * flt_CODE_bss_80075B88.f[0]); sp5CC.f[1] -= (getjointsize(objinst, dword_CODE_bss_80075B74) * 0.5f * flt_CODE_bss_80075B78.f[0]); sp5CC.f[2] -= (getjointsize(objinst, dword_CODE_bss_80075B74) * 0.5f * flt_CODE_bss_80075B88.f[0]); matrix_4x4_7F059E64(temp_s2_4, sp58C); mtx4TransformVecInPlace(sp58C, &sp5CC); sub_GAME_7F0221DC(objinst, bodypartshot, dword_CODE_bss_80075B74, &sp5CC); } } } } // mips2c line 795 else if (temp_weap->weaponnum == ITEM_NULL86) { if (D_80030B0C->type == PROP_TYPE_CHR) { sp604 = 1; chrlvExplosionDamage((ChrRecord *) D_80030B0C->chr, &obj->runtime_pos, 2.0f, 1); } else if ((D_80030B0C->type == PROP_TYPE_OBJ) || (D_80030B0C->type == PROP_TYPE_WEAPON)) { maybe_detonate_object(D_80030B0C->obj, 100.0f, &obj->runtime_pos, ITEM_NULL86, (s32) ((u32) (obj->runtime_bitflags & RUNTIMEBITFLAG_OWNER) >> RUNTIMEBITSHIFT_OWNER)); } ((struct WeaponObjRecord *)obj)->timer = 0; } } } // mips2c line 811 if (sp604 == 0) { if (sp664 == 0) { if (temp_s0->unk8C > 0.0f) { temp_f14_3 = ((sp620.f[2] * temp_s0->speed.f[2]) + ((temp_s0->speed.f[0] * sp620.f[0]) + (temp_s0->speed.f[1] * sp620.f[1]))) * -(temp_s0->unk8C + 1.0f); temp_s0->speed.f[0] += (temp_f14_3 * sp620.f[0]); temp_s0->speed.f[1] += (temp_f14_3 * sp620.f[1]); temp_s0->speed.f[2] += (temp_f14_3 * sp620.f[2]); if ((temp_s0->speed.f[1] <= 0.0f) && ((temp_s0->speed.f[1] >= 0.0f) || (temp_f20 <= obj->runtime_pos.f[1]))) { sp60C = 1; } } } // mips2c line 832 if (!(temp_s0->flags & 8)) { sp63C = stanGetPositionYValue(arg0->stan, arg0->pos.f[0], arg0->pos.f[2]); sp638 = chrpropSumMatrixPosY(sp640, &sp70[0]); sp610 = (arg0->pos.f[1] < (sp63C - sp638)); } if ((sp610 != 0) || (sp664 == 0)) { if (!(temp_s0->flags & 0x200)) { mtxLoadRandomRotation(sp6C); } temp_s0->unk90 += 1; } if ((sp610 != 0) || (sp60C != 0)) { if (sp610 != 0) { arg0->pos.f[1] = (sp63C - sp638) + 4.0f; obj->runtime_pos.f[1] = arg0->pos.f[1]; } else { arg0->pos.f[1] = (sp614.f[1] - sp638) + 4.0f; obj->runtime_pos.f[1] = arg0->pos.f[1]; } if (!(obj->runtime_bitflags & 0x10000)) { obj->runtime_bitflags |= 0x100; } if (temp_s0->unk8C > 0.0f) { temp_s0->speed.f[1] *= -temp_s0->unk8C; if (temp_s0->speed.f[1] < 2.2222223f) { if ((temp_s0->flags & 2) && (temp_s0->unk90 == 1)) { temp_s0->speed.f[1] = 2.2222223f; } else { sub_GAME_7F0431E4(obj, &sp62C); } } } else { sub_GAME_7F0431E4(obj, &sp62C); } } //mips2c line 892 if (obj->type == 8) { if (temp_s1->weaponnum == 3) { sub_GAME_7F043650(temp_s1); } else if (temp_s1->weaponnum == 0x56) { if ((sp664 == 0) || (sp610 != 0)) { temp_s1->timer = 0; } else { temp_f14_4 = (temp_s0->speed.f[2] * temp_s0->speed.f[2]) + ((temp_s0->speed.f[0] * temp_s0->speed.f[0]) + (temp_s0->speed.f[1] * temp_s0->speed.f[1])); if (temp_f14_4 > 27777.773f) { temp_s0->unk10.f[0] = 0.0f; temp_s0->unk10.f[1] = 0.0f; temp_s0->unk10.f[2] = 0.0f; } if ((s32) temp_s0->unkA8 >= 0x12D) { temp_s0->unk1C = 0.0f; temp_s0->flags &= ~0x30; } else { explosionCreateSmoke(&temp_s1->runtime_pos, arg0->stan, 8, arg0->rooms, (arg0->flags & 8) != 0); } } } else if (temp_s1->weaponnum == 0x57) { if ((sp610 != 0) || (sp60C != 0)) { temp_s1->timer = 0; } else { explosionCreateSmoke(&obj->runtime_pos, arg0->stan, 9, arg0->rooms, (arg0->flags & 8) != 0); } } if ((sp664 == 0) || (sp610 != 0)) { if (temp_s0->unkAC < (D_80048380 - 2)) { if ((temp_s1->weaponnum == 3) || (temp_s1->weaponnum == 2)) { sfx_state = sndPlaySfx((struct ALBankAlt_s *) g_musicSfxBufferPtr, KNIFE_HIT_WALL_SFX, NULL); } else { sfx_state = sndPlaySfx((struct ALBankAlt_s *) g_musicSfxBufferPtr, DROP_GUN_SFX, NULL); } chrobjSndCreatePostEventDefault(sfx_state, &arg0->pos); } temp_s0->unkAC = D_80048380; } } } // mips2c line 960 if ((temp_s1->runtime_bitflags & 0x80) && (temp_s0->flags & 0x400) && !(D_80048380 & 7)) { struct PropRecord *temp_v0_13 = temp_s1->prop; sp564.f[0] = temp_s1->runtime_pos.f[0] + 400.0f; sp564.f[1] = temp_s1->runtime_pos.f[1] - 1800.0f; sp564.f[2] = temp_s1->runtime_pos.f[2]; if (!(D_80048380 & 0xF)) { sp564.f[2] += 400.0f; } else { sp564.f[2] -= 400.0f; } // void explosionCreate(void *, struct coord3d *pos, struct StandTile *stan, s16 /* enum EXPLOSION_DEF */ explosionType, s32 flag, s32 playernum, u8 *rooms, s32 flag2); explosionCreate(NULL, &sp564, temp_v0_13->stan, 0x14, 0, 0, temp_v0_13->rooms, 0); if (((s32) D_80048380 % 40) == 0) { // void explosionCreateSmoke(coord3d *pos, StandTile *stan, s16 arg2, u8 *rooms, s32 arg4); explosionCreateSmoke(&sp564, temp_v0_13->stan, 0xA, temp_v0_13->rooms, 1); } } } // mips2c line 982 else { var_s2_3 = 1; if (temp_s0->unk60 < 1.0f) { temp_s0->unk60 += (temp_s0->unk64 * g_GlobalTimerDelta); if (g_ClockTimer > 0) { temp_s0->unk64 *= 1.1f; } if ((temp_s0->unk60 > 1.0f) || (temp_s0->flags & 8)) { temp_s0->unk60 = 1.0f; } //void quaternion_slerp(quatf q1, quatf q2, f32 t, quatf result); quaternion_slerp((f32*)&temp_s0->unk68, (f32*)&temp_s0->unk78, temp_s0->unk60, (f32*)&sp550); sp70 = &obj->mtx; // void quaternion_to_matrix(quatf q, mat44f matrix); quaternion_to_matrix((f32*)&sp550, (f32*)&obj->mtx); matrix_column_1_scalar_multiply(temp_s0->unkC0, (f32*)sp70); matrix_column_2_scalar_multiply(temp_s0->unkC4, (f32*)sp70); matrix_column_3_scalar_multiply_2(temp_s0->unkC8, (f32*)sp70); var_s2_3 = 0; } if (((temp_s0->speed.f[0] != 0.0f) || (temp_s0->speed.f[2] != 0.0f) || (temp_s0->unk60 < 1.0f)) && !(temp_s0->flags & 8)) { sp70 = &obj->mtx; var_s2_3 = 0; sp54C = sub_GAME_7F040078(obj); for (sp548 = 0; sp548 < g_ClockTimer; sp548++) { sp694.f[0] += temp_s0->speed.f[0]; sp694.f[2] += temp_s0->speed.f[2]; if (temp_s0->unk60 >= 1.0f) { if (temp_s0->unk94 > 0.0f) { temp_f12_5 = (temp_s0->unk94 * g_GlobalTimerDelta) / sqrtf((temp_s0->speed.f[2] * temp_s0->speed.f[2]) + (temp_s0->speed.f[0] * temp_s0->speed.f[0])); if (temp_f12_5 >= 1.0f) { temp_s0->speed.f[0] = 0.0f; temp_s0->speed.f[2] = 0.0f; } else { temp_s0->speed.f[0] -= (temp_s0->speed.f[0] * temp_f12_5); temp_s0->speed.f[2] -= (temp_s0->speed.f[2] * temp_f12_5); } } else { temp_s0->speed.f[0] *= 0.9f; temp_s0->speed.f[2] *= 0.9f; } } } // s32 sub_GAME_7F042EB4(struct ObjectRecord *arg0, f32 *arg1, struct coord3d *arg2, struct coord3d *arg3, s32 arg4, s32 arg5); sub_GAME_7F042EB4(obj, &sp694.f[0], &sp530, &sp53C, 0, 0); sp690 = 1; arg0->pos.f[1] = stanGetPositionYValue(arg0->stan, arg0->pos.f[0], arg0->pos.f[2]) - (chrpropSumMatrixPosY(sp54C, sp70) + 4.0f); obj->runtime_pos.f[1] = arg0->pos.f[1]; if ((temp_s0->speed.f[0] < 0.1f) && (temp_s0->speed.f[0] > -0.1f)) { if ((temp_s0->speed.f[2] < 0.1f) && (temp_s0->speed.f[2] > -0.1f)) { temp_s0->speed.f[2] = 0.0f; temp_s0->speed.f[0] = 0.0f; } } } if ((var_s2_3 != 0) || (temp_s0->flags & 8)) { projectileFree(temp_s0); obj->projectile = NULL; obj->runtime_bitflags &= ~0x80; if (arg0->flags & 8) { arg0->flags |= 0x10; } } } } // mips2c line 1081 if (sp690 != 0) { sp70 = (Mtxf *)&obj->runtime_pos; chrobjCollisionRelated(obj); setupUpdateObjectRoomPosition(obj); sub_GAME_7F0402B4(obj->prop, &obj->nextcol); detonate_proxmine_In_range((struct coord3d *)sp70); } // mips2c line 1090 if (obj->type == PROPDEF_DOOR) { struct DoorRecord *door = (struct DoorRecord *)arg0->obj; sp67C = door->openPosition; if ((door->openedTime > 0) && (door->openedTime < (g_GlobalTimer - door->autoCloseFrames)) && (door->openstate == DOORSTATE_STATIONARY) && !(door->flags & 0x80000000)) { doorActivate(door, DOORSTATE_CLOSING); } if (door->openstate == DOORSTATE_WAITING) { struct DoorRecord *linked_door = door->linkedDoor; var_v1_3 = 1; while ((linked_door != NULL) && (linked_door != door)) { if ((linked_door->openstate != DOORSTATE_STATIONARY) || (linked_door->openPosition > 0.0f)) { var_v1_3 = 0; } linked_door = linked_door->linkedDoor; } if (var_v1_3 != 0) { doorSetOpenState(door, DOORSTATE_OPENING); } } if ((door->doorType == 8) && (doorIsClosed(door) != 0) && (doorIsPadlockFree(door) != 0)) { doorActivateWrapper(arg0); } if ((door->timer < g_GlobalTimer) || (g_ClockTimer == 0)) { door7F054FB4(door); } } // mips2c line 1130 else if (obj->type == PROPDEF_CCTV && !(obj->flags & PROPFLAG_CCTV_DISABLED)) { struct CCTVRecord *camera = (struct CCTVRecord *)arg0->obj; // camera is temp_s0_3 if (camera->unkD4 != 0) { sp518 = camera->unkCC; } else { sp518 = camera->unkD0; } sp514 = get_curplayer_positiondata(); temp_f0_13 = camera->unkE8; var_s2_4 = 1; sp5xx.f[0] = sp514->pos.f[0] - obj->runtime_pos.f[0]; sp5xx.f[1] = sp514->pos.f[1] - obj->runtime_pos.f[1]; sp5xx.f[2] = sp514->pos.f[2] - obj->runtime_pos.f[2]; if ((temp_f0_13 > 0.0f) && ((temp_f0_13 * temp_f0_13) < ((sp5xx.f[0] * sp5xx.f[0]) + (sp5xx.f[1] * sp5xx.f[1]) + (sp5xx.f[2] * sp5xx.f[2])))) { var_s2_4 = 0; } if (obj->flags & 0x20000000) { var_s2_4 = 0; } if (var_s2_4 != 0) { temp_f0_14 = atan2f(sp5xx.f[0], sp5xx.f[2]); var_f2 = camera->unkC8; if ( var_f2 < 0.0f) { var_f2 += 6.2831855f; } else if (var_f2 >= 6.2831855f) { var_f2 -= 6.2831855f; } var_f2 += camera->unkC4; if (var_f2 >= 6.2831855f) { var_f2 -= 6.2831855f; } var_f12 = temp_f0_14 - var_f2; if (temp_f0_14 < var_f2) { var_f12 += 6.2831855f; } var_f12 -= 3.1415927f; if (var_f12 < 0.0f) { var_f12 += 6.2831855f; } if (var_f12 > 3.1415927f) { var_f12 -= 6.2831855f; } if ((var_f12 > 0.7853982f) || (var_f12 < -0.7853982f)) { var_s2_4 = 0; } } if (var_s2_4 != 0) { sp4F0 = arg0->stan; bondviewUpdateGuardTankFlagsRelated(sp514, 0); if (stanTestLineUnobstructed(&sp4F0, arg0->pos.f[0], arg0->pos.f[2], sp514->pos.f[0], sp514->pos.f[2], 0x1B, 100.0f, 100.0f, 0.0f, 1.0f) != 0) { camera->timer += g_ClockTimer; if (camera->timer >= (s32) (300.0f * F_80030B14)) { alarmActivate(); camera->timer = 0; } } bondviewUpdateGuardTankFlagsRelated(sp514, 1); } if (camera->unkC8 < sp518) { if ((sp518 - ((camera->unkD8 * camera->unkD8 * 0.5f) / 0.00065449846f)) <= camera->unkC8) { camera->unkD8 = (f32) (camera->unkD8 - (0.00065449846f * g_GlobalTimerDelta)); if (camera->unkD8 < 0.00065449846f) { camera->unkD8 = 0.00065449846f; } } else { if (camera->unkD8 < camera->unkDC) { var_f2_3 = camera->unkD8 + (0.00065449846f * g_GlobalTimerDelta); if (camera->unkDC < var_f2_3) { var_f2_3 = camera->unkDC; } if (camera->unkC8 < (sp518 - ((var_f2_3 * var_f2_3 * 0.5f) / 0.00065449846f))) { camera->unkD8 = var_f2_3; } } } camera->unkC8 += (camera->unkD8 * g_GlobalTimerDelta); if (sp518 <= camera->unkC8) { camera->unkC8 = sp518; camera->unkD8 = 0.0f; camera->unkD4 = 0; } } else { if (camera->unkC8 <= (sp518 + ((camera->unkD8 * camera->unkD8 * 0.5f) / 0.00065449846f))) { camera->unkD8 = (f32) (camera->unkD8 - (0.00065449846f * g_GlobalTimerDelta)); if (camera->unkD8 < 0.00065449846f) { camera->unkD8 = 0.00065449846f; } } else { if (camera->unkD8 < camera->unkDC) { var_f2_3 = camera->unkD8 + (0.00065449846f * g_GlobalTimerDelta); if (camera->unkDC < var_f2_3) { var_f2_3 = camera->unkDC; } if ((sp518 + ((var_f2_3 * var_f2_3 * 0.5f) / 0.00065449846f)) < camera->unkC8) { camera->unkD8 = var_f2_3; } } } camera->unkC8 -= (camera->unkD8 * g_GlobalTimerDelta); if (camera->unkC8 <= sp518) { camera->unkC8 = sp518; camera->unkD8 = 0.0f; camera->unkD4 = 1; } } } // mips2c line 1286 else if (obj->type == PROPDEF_AUTOGUN && !(obj->flags & PROPFLAG_IS_DRONE_GUN)) { struct AutogunRecord *autogun = (struct AutogunRecord*)arg0->obj; // autogun is temp_s0_4 temp_v0_19 = get_curplayer_positiondata(); sp4AC = 0; sp4A8 = 0; sp4A4 = 0; if (obj->flags2 & 0x80000000) { if (obj->flags2 & 0x40000000) { autogun->rot_related = autogun->unk90; autogun->unk98 = autogun->unk9C; } else if ((autogun->rot_related == autogun->unk90) && (autogun->unk98 == autogun->unk9C)) { autogun->unk98 = (((( RANDOMGETNEXT_F32() * 39.0f) + 1.0f) * 6.2831855f) / 360.0f); autogun->rot_related = (RANDOMGETNEXT_F32() * 6.2831855f); } chrobjCallsApplySpeed(&autogun->unk90, autogun->rot_related, &autogun->unk94, AUTOGUN_P1_ACCEL, AUTOGUN_P1_DECEL, AUTOGUN_P1_MAXSPEED); chrobjCallsApplySpeed(&autogun->unk9C, autogun->unk98, &autogun->unkA0, AUTOGUN_P2_ACCEL, AUTOGUN_P2_DECEL, AUTOGUN_P2_MAXSPEED); } else { // mips2c line 1317 sp4BC.f[2] = temp_v0_19->pos.f[0] - obj->runtime_pos.f[0]; sp4BC.f[1] = (temp_v0_19->pos.f[1] - obj->runtime_pos.f[1]) - 20.0f; sp4BC.f[0] = temp_v0_19->pos.f[2] - obj->runtime_pos.f[2]; sp4B8 = (sp4BC.f[2] * sp4BC.f[2]) + (sp4BC.f[0] * sp4BC.f[0]); sp4B0 = sqrtf(sp4B8); if (obj->flags & 0x08000000) { sp4B8 += (sp4BC.f[1] * sp4BC.f[1]); sp4B0 = sqrtf(sp4B8); } sp4B4 = sp4B0; sp4A0 = chrlvGetAimLimitAngle(sp4B8); sp4D8 = autogun->rot_related; sp4D4 = autogun->unk98; if (sp4B4 <= autogun->aimdist) { // mips2c line 1339 sp49C = atan2f(sp4BC.f[2], sp4BC.f[0]); sp498 = atan2f(sp4BC.f[1], sp4B0); if ((obj->flags & 0x40000000) || (obj->flags & 0x20000000)) { sp4AC = 1; } else { var_f12_3 = sp49C - autogun->unk90; if (var_f12_3 < 0.0f) { var_f12_3 += 6.2831855f; } if (var_f12_3 > 3.1415927f) { var_f12_3 -= 6.2831855f; } if ((sp498 - autogun->unk9C) < 0.0f) { // empty } if ((var_f12_3 < 1.2217306f) && (var_f12_3 > -1.2217306f)) { sp4AC = 1; } } if (sp4AC != 0) { sp494 = sp49C - autogun->rot_related; sp490 = arg0->stan; if (sp494 < -3.1415927f) { sp494 += 6.2831855f; } else if (sp494 >= 3.1415927f) { sp494 -= 6.2831855f; } bondviewUpdateGuardTankFlagsRelated(temp_v0_19, 0); if ((sp494 <= autogun->unk88) && (autogun->unk8C <= sp494) && (sub_GAME_7F0B0E24(&sp490, arg0->pos.f[0], arg0->pos.f[2], temp_v0_19->pos.f[0], temp_v0_19->pos.f[2], 0x1B, arg0->pos.f[1], arg0->pos.f[1], temp_v0_19->pos.f[1], temp_v0_19->pos.f[1]) != 0) && (sp490 == temp_v0_19->stan)) { obj->flags |= 0x20000000; sp4A4 = 1; sp4D8 = sp49C; sp4D4 = sp498; } else { if ((autogun->unkB8 >= 0) && ((g_GlobalTimer - 0x78) < autogun->unkB8)) { sp4D8 = autogun->unk90; sp4D4 = autogun->unk9C; } else { sp4AC = 0; } } bondviewUpdateGuardTankFlagsRelated(temp_v0_19, 1); } } if (sp4AC != 0) { sp4A0 = chrlvGetAimLimitAngle(sp4B8); } if (autogun->is_active != 0) { sp4D8 += sp4A0 * 0.8f * sinf(((f32) ((s32) g_GlobalTimer % 120) * 6.2831855f) / 120.0f); if (sp4D8 < 0.0f) { sp4D8 += 6.2831855f; } if (sp4D8 >= 6.2831855f) { sp4D8 -= 6.2831855f; } } // mips2c linee 1427 var_f0_2 = sp4D8 - autogun->rot_related; if (var_f0_2 < -3.1415927f) { var_f0_2 += 6.2831855f; } else if (var_f0_2 >= 3.1415927f) { var_f0_2 -= 6.2831855f; } if (autogun->unk88 < var_f0_2 || var_f0_2 < autogun->unk8C) { sp4D8 = autogun->rot_related + autogun->unk8C; } if (sp4D8 < 0.0f) { sp4D8 += 6.2831855f; } if (sp4D8 >= 6.2831855f) { sp4D8 -= 6.2831855f; } chrobjCallsApplySpeed(&autogun->unk90, sp4D8, &autogun->unk94, 0.0008726647f, 0.0008726647f, autogun->speed); chrobjCallsApplySpeed(&autogun->unk9C, sp4D4, &autogun->unkA0, 0.0008726647f, 0.0008726647f, autogun->speed); var_f12_5 = sp4D8 - autogun->unk90; if (var_f12_5 < 0.0f) { var_f12_5 += 6.2831855f; } if (var_f12_5 > 3.1415927f) { var_f12_5 -= 6.2831855f; } var_f2_6 = sp4D4 - autogun->unk9C; if (var_f2_6 < 0.0f) { var_f2_6 += 6.2831855f; } if (var_f2_6 > 3.1415927f) { var_f2_6 -= 6.2831855f; } autogun->is_active = 0; if (sp4AC != 0) { if ((var_f12_5 < sp4A0) && (-sp4A0 < var_f12_5) && (var_f2_6 < sp4A0) && (-sp4A0 < var_f2_6)) { autogun->is_active = 1; sp4A8 = 1; if (sp4A4 != 0) { autogun->unkB8 = (s32) g_GlobalTimer; autogun->unkBC = (s32) g_GlobalTimer; } } else { temp_f0_22 = 2.0f * sp4A0; if ((var_f12_5 < temp_f0_22) && (-temp_f0_22 < var_f12_5) && (var_f2_6 < temp_f0_22) && (-temp_f0_22 < var_f2_6)) { autogun->is_active = 1; sp4A8 = 1; if (sp4A4 != 0) { autogun->unkB8 = (s32) g_GlobalTimer; } } else { if ((autogun->unkB8 >= 0) && ((g_GlobalTimer - 0x78) < autogun->unkB8)) { autogun->is_active = 1; sp4A8 = 1; } } } } if (sp4A8 != 0) { autogun->unkB0 += (0.009973311f * g_GlobalTimerDelta); if (autogun->unkB0 > 0.5983986f) { autogun->unkB0 = 0.5983986f; } } else if (autogun->unkB0 > 0.0f) { for (var_v0_3 = 0; var_v0_3 < g_ClockTimer; var_v0_3++) { autogun->unkB0 *= 0.99f; } if (autogun->unkB0 <= 0.0001f) { autogun->unkB0 = 0.0f; } } if (autogun->unkB0 > 0.0f) { autogun->unkB4 += (autogun->unkB0 * g_GlobalTimerDelta); while (autogun->unkB4 >= 6.2831855f) { autogun->unkB4 -= 6.2831855f; } } } } // mips2c line 1550 else if (obj->type == PROPDEF_VEHICHLE) { struct VehichleRecord *temp_s1 = (struct VehichleRecord *)obj; sp478 = NULL; sp47C = temp_s1->roty; ai((PropDefHeaderRecord*)temp_s1, 1); if (temp_s1->speedtime60 >= 0.0f) { if (temp_s1->speedtime60 <= g_GlobalTimerDelta) { temp_s1->speed = temp_s1->speedaim; } else { temp_s1->speed += (((temp_s1->speedaim - temp_s1->speed) * g_GlobalTimerDelta) / temp_s1->speedtime60); } temp_s1->speedtime60 -= g_GlobalTimerDelta; } var_s0 = 0; // mips2c line 1570 if (!(obj->flags2 & 0x80000) && (objIsHealthy(obj) != 0) && ((temp_s1->speed > 0.0f) || (temp_s1->speedaim > 0.0f))) { var_s0 = sub_GAME_7F053894(&temp_s1->runtime_pos, 2000.0f, 3000.0f); } if (var_s0 > 0) { if (((temp_s1->Sound == NULL) || (sndGetPlayingState(temp_s1->Sound) == 0)) && (lvlGetControlsLockedFlag() == 0)) { sndPlaySfx((struct ALBankAlt_s *) g_musicSfxBufferPtr, TRUCK_RUN_SFX, temp_s1->Sound); } if (temp_s1->Sound != NULL) { sndCreatePostEvent(temp_s1->Sound, 8, var_s0); } } else { if ((temp_s1->Sound != NULL) && (sndGetPlayingState(temp_s1->Sound) != 0)) { sndDeactivate(temp_s1->Sound); } } // mips2c line 1595 if (temp_s1->path != NULL) { sp478 = &g_CurrentSetup.pads[g_CurrentSetup.pathwaypoints[temp_s1->path->waypoints[temp_s1->nextstep]].padID].pos; sp47C = atan2f(sp478->f[0] - temp_s1->runtime_pos.f[0], sp478->f[2] - temp_s1->runtime_pos.f[2]); if (temp_s1->flags & 0x20000000) { temp_s1->roty = sp47C; temp_s1->flags &= 0xDFFFFFFF; sub_GAME_7F044B38(temp_s1); } } else if (temp_s1->flags & 0x20000000) { temp_s1->roty = atan2f(temp_s1->mtx.m[2][0], temp_s1->mtx.m[2][2]); temp_s1->flags &= 0xDFFFFFFF; sub_GAME_7F044B38(temp_s1); } // mips2c line 1614 if (temp_s1->speed > 0.0f) { sp430 = 0.0f; sp468 = arg0->stan; sp438 = temp_s1->roty; sp434 = temp_s1->turnrot60; if (sp478 != NULL) { sp430 = 0.0f; sp43C = sinf(sp438); sp440 = 0.0f; sp444 = cosf(temp_s1->roty); if (chrlvGeometryRelated7F02FC34(&temp_s1->runtime_pos, (struct coord3d *) &sp43C, sp478, 10.0f) != 0) { sp47C = temp_s1->roty; } } chrobjCallsApplySpeed(&temp_s1->roty, sp47C, &temp_s1->turnrot60, 0.000109083085f, 0.00021816617f, 0.006544985f); while (temp_s1->roty >= 6.2831855f) { temp_s1->roty -= 6.2831855f; } while (temp_s1->roty < 0.0f) { temp_s1->roty += 6.2831855f; } if (sp47C == temp_s1->roty) { if ((temp_s1->turnrot60 <= 0.00021816617f) && (temp_s1->turnrot60 >= -0.00021816617f)) { temp_s1->turnrot60 = 0.0f; } } temp_s0_5 = (f32*)model->obj->Switches[3]->Data; if (g_GlobalTimerDelta > 0.0f) { sp430 = (temp_s1->roty - sp438) / g_GlobalTimerDelta; } if (sp430 < 0.0f) { sp430 += 6.2831855f; } sp460 = sinf(sp430) * (temp_s0_5[2] * model->scale) * g_GlobalTimerDelta; sp43C = sinf(temp_s1->roty); sp440 = 0.0f; sp444 = cosf(temp_s1->roty); sp694.f[0] = (temp_s1->runtime_pos.f[0] + (temp_s1->speed * g_GlobalTimerDelta * sp43C)) - (sp444 * sp460); sp694.f[1] = temp_s1->runtime_pos.f[1]; sp694.f[2] = (sp43C * sp460) + (temp_s1->runtime_pos.f[2] + (temp_s1->speed * g_GlobalTimerDelta * sp444)); if ((sub_GAME_7F0B0E24(&sp468, arg0->pos.f[0], arg0->pos.f[2], sp694.f[0], sp694.f[2], 0x1F, 0.0f, 1.0f, 0.0f, 1.0f) != 0) && (sub_GAME_7F0B18B8(&sp468, sp694.f[0], sp694.f[2], 10.0f, 0x1F, 0.0f, 1.0f) < 0)) { sp44C = arg0->stan; sp450.f[0] = arg0->pos.f[0]; sp450.f[1] = arg0->pos.f[1]; sp450.f[2] = arg0->pos.f[2]; arg0->stan = sp468; arg0->pos.f[0] = sp694.f[0]; temp_s1->runtime_pos.f[0] = sp694.f[0]; arg0->pos.f[2] = sp694.f[2]; temp_s1->runtime_pos.f[2] = sp694.f[2]; chrobjCollisionRelated(obj); setupUpdateObjectRoomPosition(obj); var_s2_5 = sub_GAME_7F0448A8(arg0); if (var_s2_5 != 0) { temp_v0_25 = (f32*)model->obj->Switches[7]->Data; sp424 = temp_s1->mtx.m[0][0] * temp_v0_25[1]; sp42C = temp_s1->mtx.m[0][2] * temp_v0_25[1]; sp418 = temp_s1->mtx.m[0][0] * temp_v0_25[2]; sp420 = temp_s1->mtx.m[0][2] * temp_v0_25[2]; sp40C = temp_s1->mtx.m[2][0] * temp_v0_25[5]; sp414 = temp_s1->mtx.m[2][2] * temp_v0_25[5]; sp400 = temp_s1->mtx.m[2][0] * temp_v0_25[6]; sp408 = temp_s1->mtx.m[2][2] * temp_v0_25[6]; sp468 = arg0->stan; // temp_f0_25 = arg0->pos.f[0] //temp_f2_13 = arg0->pos.f[2] // temp_f0_26 = arg0->pos.f[0]; // temp_f2_14 = arg0->pos.f[2] // temp_f0_27 = arg0->pos.f[0] + sp418, // temp_f2_15 = arg0->pos.f[2] + sp420 // temp_f0_28 = arg0->pos.f[0], // temp_f2_16 = arg0->pos.f[2] // temp_f0_29 = arg0->pos.f[0] + sp424, // temp_f2_17 = arg0->pos.f[2] + sp42C, if ((walkTilesBetweenPoints_NoCallback(&sp468, arg0->pos.f[0], arg0->pos.f[2], sp40C + (arg0->pos.f[0] + sp424), sp414 + (arg0->pos.f[2] + sp42C)) == 0) || (walkTilesBetweenPoints_NoCallback(&sp468, sp40C + (arg0->pos.f[0] + sp424), sp414 + (arg0->pos.f[2] + sp42C), sp40C + (arg0->pos.f[0] + sp418), sp414 + (arg0->pos.f[2] + sp420)) == 0) || (walkTilesBetweenPoints_NoCallback(&sp468, sp40C + arg0->pos.f[0] + sp418, sp414 + arg0->pos.f[2] + sp420, sp400 + arg0->pos.f[0] + sp418, sp408 + arg0->pos.f[2] + sp420) == 0) || (walkTilesBetweenPoints_NoCallback(&sp468, sp400 + (arg0->pos.f[0] + sp418), sp408 + (arg0->pos.f[2] + sp420), sp400 + (arg0->pos.f[0] + sp424), sp408 + (arg0->pos.f[2] + sp42C)) == 0) || (walkTilesBetweenPoints_NoCallback(&sp468, sp400 + arg0->pos.f[0] + sp424, sp408 + arg0->pos.f[2] + sp42C, sp40C + arg0->pos.f[0] + sp424, sp414 + arg0->pos.f[2] + sp42C) == 0)) { var_s2_5 = 0; } } if (var_s2_5 != 0) { sub_GAME_7F044B38(temp_s1); sub_GAME_7F0402B4(arg0, &temp_s1->nextcol); detonate_proxmine_In_range(&temp_s1->runtime_pos); if ((sp478 != NULL) && (chrlvIsArrivingLaterallyAtPos(&sp450, &sp694, sp478, 100.0f) != 0)) { temp_s1->nextstep++; if (temp_s1->path[temp_s1->nextstep].waypoints[0] < 0) { temp_s1->path = NULL; temp_s1->speedaim = 0.0f; temp_s1->speedtime60 = 60.0f; } } } else { if (temp_s1->speedtime60 < 0.0f) { temp_s1->speedaim = (f32) temp_s1->speed; temp_s1->speedtime60 = 60.0f; } temp_s1->speed = 0.0f; temp_s1->roty = sp438; temp_s1->turnrot60 = sp434; arg0->stan = sp44C; arg0->pos.f[0] = sp450.f[0]; obj->runtime_pos.f[0] = sp450.f[0]; arg0->pos.f[1] = sp450.f[1]; obj->runtime_pos.f[1] = sp450.f[1]; arg0->pos.f[2] = sp450.f[2]; obj->runtime_pos.f[2] = sp450.f[2]; chrobjCollisionRelated(obj); setupUpdateObjectRoomPosition(obj); } } else { if (temp_s1->speedtime60 < 0.0f) { temp_s1->speedaim = (f32) temp_s1->speed; temp_s1->speedtime60 = 60.0f; } temp_s1->speed = 0.0f; temp_s1->roty = sp438; temp_s1->turnrot60 = sp434; } } else if (temp_s1->flags & 0x20000000) { temp_s1->roty = atan2f(temp_s1->mtx.m[2][0], temp_s1->mtx.m[2][2]); temp_s1->flags &= 0xDFFFFFFF; sub_GAME_7F044B38(temp_s1); } } // mips2c line 1754 else if (obj->type == PROPDEF_AIRCRAFT) { struct AircraftRecord *temp_s1 = (struct AircraftRecord*)obj; ai((PropDefHeaderRecord*)temp_s1, 1); temp_s0_6 = temp_s1->model; if (temp_s0_6->anim != NULL) { setsuboffset(temp_s0_6, &temp_s1->runtime_pos); if (temp_s0_6->anim == animation_table_ptrs2[AIRCRAFT_ANIMATION_plane_runway]) { sub_GAME_7F06CE84(temp_s0_6, 10.438f); setsubroty(temp_s1->model, 3.1415927f); } else if (bossGetStageNum() == LEVELID_STATUE) { sub_GAME_7F06CE84(temp_s1->model, 1.0438f); setsubroty(temp_s1->model, 2.3561945f); } else if (bossGetStageNum() == LEVELID_FRIGATE) { sub_GAME_7F06CE84(temp_s1->model, 1.0438f); setsubroty(temp_s1->model, 3.9269907f); } else { sub_GAME_7F06CE84(temp_s1->model, 1.0438f); setsubroty(temp_s1->model, 0.0f); } modelTickAnimQuarterSpeed(temp_s1->model, g_ClockTimer, 1); subcalcpos(temp_s1->model); getsuboffset(temp_s1->model, &temp_s1->runtime_pos); arg0->pos.f[0] = temp_s1->runtime_pos.f[0]; arg0->pos.f[2] = temp_s1->runtime_pos.f[2]; if (isNotBoundPad(temp_s1->pad)) { var_v1_4 = &g_CurrentSetup.pads[temp_s1->pad]; } else { var_v1_4 = (PadRecord *)&g_CurrentSetup.boundpads[getBoundPadNum(temp_s1->pad)]; } arg0->pos.f[1] = temp_s1->runtime_pos.f[1] + var_v1_4->pos.f[1]; temp_s1->runtime_pos.f[1] = arg0->pos.f[1]; setsuboffset(temp_s1->model, &temp_s1->runtime_pos); } var_f12_6 = temp_s1->speedtime60; if (var_f12_6 >= 0.0f) { if (var_f12_6 <= g_GlobalTimerDelta) { var_f12_6 = temp_s1->speedtime60; temp_s1->speed = (f32) temp_s1->speedaim; } else { temp_s1->speed += (((temp_s1->speedaim - temp_s1->speed) * g_GlobalTimerDelta) / var_f12_6); } temp_s1->speedtime60 = (f32) (var_f12_6 - g_GlobalTimerDelta); } if (temp_s1->rotaryspeedtime >= 0.0f) { if (temp_s1->rotaryspeedtime <= g_GlobalTimerDelta) { temp_s1->rotaryspeed = (f32) temp_s1->rotaryspeedaim; } else { var_f12_6 = temp_s1->rotaryspeed; temp_s1->rotaryspeed += (((temp_s1->rotaryspeedaim - temp_s1->rotaryspeed) * g_GlobalTimerDelta) / temp_s1->rotaryspeedtime); } temp_s1->rotaryspeedtime -= g_GlobalTimerDelta; } var_s0_2 = 0; if (!(temp_s1->flags2 & 0x80000) && (objIsHealthy(obj) != 0) && (temp_s1->rotaryspeed != 0.0f) && !(temp_s1->flags & 0x20000000)) { var_s0_2 = sub_GAME_7F053894(&temp_s1->runtime_pos, 5000.0f, 6000.0f); } if (var_s0_2 > 0) { if (((temp_s1->Sound == NULL) || (sndGetPlayingState(temp_s1->Sound) == 0)) && (lvlGetControlsLockedFlag() == 0)) { sndPlaySfx((struct ALBankAlt_s *) g_musicSfxBufferPtr, HELI_RUN_SFX, temp_s1->Sound); } if (temp_s1->Sound != NULL) { sndCreatePostEvent(temp_s1->Sound, 8, var_s0_2); } } else { if ((temp_s1->Sound != NULL) && (sndGetPlayingState(temp_s1->Sound) != 0)) { sndDeactivate(temp_s1->Sound); } } } } // mips2c line 1860 if (obj->type == PROPDEF_TINTED_GLASS) { struct TintedGlassRecord *tinted_glass = (struct TintedGlassRecord *)arg0->obj; tinted_glass->calculatedopacity = glassCalculateOpacity( &obj->runtime_pos, tinted_glass->TintDist, tinted_glass->CullDist, tinted_glass->unk90); if ((tinted_glass->unk8C >= 0) && (sp674 == 1)) { if (tinted_glass->calculatedopacity == 0xFF) { bgToggleDataPortalsContrlBytes1Bit1(tinted_glass->unk8C, 0); } else { bgToggleDataPortalsContrlBytes1Bit1(tinted_glass->unk8C, 1); } } sp670 = 0; } // mips2c line 1879 else if (obj->type == PROPDEF_DOOR && ((struct DoorRecord*)obj)->doorFlags & 0x2) { struct DoorRecord *door = (struct DoorRecord *)arg0->obj; var_s2_6 = 1; door->calculatedopacity = glassCalculateOpacity(&obj->runtime_pos, door->TintDist, door->CullDist, 0.0f); if (sp674 == 1) { if ((door->calculatedopacity != 0xFF) || (door->openPosition > 0.0f)) { var_s2_6 = 0; } temp_v0_29 = model->obj; if ((&skeleton_door == temp_v0_29->Skeleton) && ((modelGetNodeRwData(model, temp_v0_29->Switches[0]))->Header.unk00 == 0)) { var_s2_6 = 0; } if (var_s2_6 != 0) { doorDeactivatePortal(door); } else { doorActivatePortal(door); } } } // mips2c line 1905 if (obj->type == PROPDEF_TANK && (get_ptr_for_players_tank() == arg0)) { var_v1_5 = 1; } else { if (obj->flags2 & 0x04000000) { var_v1_5 = 1; } else { var_v1_5 = 0; if (!(obj->runtime_bitflags & 0x800) && !(obj->flags2 & 0x80000)) { var_v1_5 = sub_GAME_7F054D6C(arg0, &obj->runtime_pos, getinstsize(model), sp670); } } } // mips2c line 1926 if (var_v1_5 != 0) { if (sp678 != 0) { update_color_shading(&obj->shadecol, &obj->nextcol); } arg0->flags |= 2; model->render_pos = dynAllocate(model->obj->numMatrices << 6); // model->render_pos = temp_v0_30 if (obj->type == PROPDEF_DOOR) { sp39C = (struct DoorRecord *)arg0->obj; door7F0526EC(sp39C, (Mtxf *)model->render_pos); matrix_4x4_multiply_homogeneous_in_place(camGetWorldToScreenMtxf(), (Mtxf *)model->render_pos); temp_v0_31 = model->obj; if (&skeleton_eyelid_door == temp_v0_31->Skeleton) { temp_a1_4 = &model->render_pos[1].pos; temp_s0_10 = (Mtxf *)temp_v0_31->Switches[0]->Data; sp394 = 6.2831855f - ((sp39C->openPosition * 6.2831855f) / 360.0f); matrix_4x4_set_rotation_around_x(sp394, temp_a1_4); matrix_4x4_set_position((struct coord3d *)temp_s0_10, temp_a1_4); matrix_4x4_multiply_in_place((Mtxf *)model->render_pos, temp_a1_4); temp_a1_4 = &model->render_pos[2].pos; temp_s0_10 = (Mtxf *)temp_v0_31->Switches[1]->Data; matrix_4x4_set_rotation_around_x(6.2831855f - sp394, temp_a1_4); matrix_4x4_set_position((struct coord3d *)temp_s0_10, temp_a1_4); matrix_4x4_multiply_in_place((Mtxf *)model->render_pos, temp_a1_4); } else if (&skeleton_iris_door == temp_v0_31->Skeleton) { sp384 = (sp39C->openPosition * 6.2831855f) / 360.0f; temp_f0_31 = sp39C->maxFrac * 0.3f; if (temp_f0_31 < sp39C->openPosition) { sp380 = (((sp39C->maxFrac * (sp39C->openPosition - temp_f0_31)) / (sp39C->maxFrac - temp_f0_31)) * 6.2831855f) / 360.0f; if (sp678 != 0) { if (sp67C <= temp_f0_31) { chrobjSndCreatePostEventDefault(sndPlaySfx((struct ALBankAlt_s *) g_musicSfxBufferPtr, METAL_SLIDE_OPEN_SFX, NULL), &arg0->pos); } } } else { sp380 = 0.0f; if (sp678 != 0) { if (temp_f0_31 < sp67C) { chrobjSndCreatePostEventDefault(sndPlaySfx((struct ALBankAlt_s *) g_musicSfxBufferPtr, METAL_SLIDE_CLOSE_SFX, NULL), &arg0->pos); } } } for (sp38C = 0; sp38C < 6; sp38C++) { temp_v0_32 = sp38C * 2; sp390 = (Mtxf *)model->obj->Switches[temp_v0_32 + 1]->Data; temp_a1_6 = &model->render_pos[temp_v0_32 + 1].pos; matrix_4x4_set_rotation_around_z(sp380, temp_a1_6); matrix_4x4_set_position((struct coord3d *)sp390, temp_a1_6); matrix_4x4_multiply_in_place((Mtxf *)model->render_pos, temp_a1_6); sp390 = (Mtxf *)model->obj->Switches[temp_v0_32 + 2]->Data; temp_a1_6 = &model->render_pos[temp_v0_32 + 2].pos; matrix_4x4_set_rotation_around_z(sp384, temp_a1_6); matrix_4x4_set_position((struct coord3d *)sp390, temp_a1_6); matrix_4x4_multiply_in_place(temp_a1_6, temp_a1_6); } } } // mips2c line 2018 else { matrix_4x4_copy(&obj->mtx, &sp3A4); matrix_4x4_set_position(&obj->runtime_pos, &sp3A4); matrix_4x4_multiply_homogeneous(camGetWorldToScreenMtxf(), &sp3A4, model->render_pos); if (obj->type == PROPDEF_CCTV) { struct CCTVRecord *sp370 = (struct CCTVRecord *)arg0->obj; var_f12_7 = sp370->unkC8; temp_s0_13 = (struct coord3d *)model->obj->Switches[0]->Data; if (var_f12_7 < 0.0f) { var_f12_7 += 6.2831855f; } else if (var_f12_7 >= 6.2831855f) { var_f12_7 -= 6.2831855f; } matrix_4x4_set_rotation_around_y(var_f12_7, &sp320); matrix_4x4_multiply(&sp320, &sp370->unk84, &model->render_pos[1].pos); sp360.f[0] = temp_s0_13->f[0]; sp360.f[1] = temp_s0_13->f[1]; sp360.f[2] = temp_s0_13->f[2]; mtx4TransformVecInPlace(&sp3A4, &sp360); matrix_4x4_set_position(&sp360, &model->render_pos[1].pos); matrix_4x4_multiply_homogeneous_in_place(camGetWorldToScreenMtxf(), &model->render_pos[1].pos); } // mips2c line 2050 else if (obj->type == PROPDEF_AUTOGUN) { struct AutogunRecord *sp318 = (struct AutogunRecord *)arg0->obj; sp304 = sp318->unk90 + 1.5707964f; sp300 = -sp318->unk9C; if (sp304 >= 6.2831855f) { sp304 -= 6.2831855f; } temp_s0_14 = model->obj->Switches[1]->Data; sp308.f[0] = temp_s0_14->f[0]; sp308.f[1] = temp_s0_14->f[1]; sp308.f[2] = temp_s0_14->f[2]; mtx4TransformVecInPlace(&sp3A4, &sp308); matrix_4x4_set_rotation_around_y(sp304, &model->render_pos[1].pos); matrix_4x4_set_position(&sp308, &model->render_pos[1].pos); matrix_scalar_multiply(sp318->model->scale, sp6C->m[0]); matrix_4x4_multiply_homogeneous_in_place(camGetWorldToScreenMtxf(), sp6C); matrix_4x4_set_rotation_around_z(sp300, &model->render_pos[2].pos); matrix_4x4_set_position((struct coord3d*)model->obj->Switches[2]->Data, &model->render_pos[2].pos); matrix_4x4_multiply_homogeneous_in_place(sp6C, &model->render_pos[2].pos); if (model->obj->Switches[3] != NULL) { sp2FC = modelFindNodeMtx(model, model->obj->Switches[3], 0); matrix_4x4_set_rotation_around_x(sp318->unkB4, sp2FC); matrix_4x4_set_position(model->obj->Switches[3]->Data, sp2FC); matrix_4x4_multiply_homogeneous_in_place(model->obj->Switches[2]->Data, sp2FC); } if (model->obj->Switches[4] != NULL) { sp2FC = modelFindNodeMtx(model, model->obj->Switches[4], 0); matrix_4x4_set_identity_and_position(model->obj->Switches[4]->Data, sp2FC); matrix_4x4_multiply_homogeneous_in_place(model->obj->Switches[2]->Data, sp2FC); } if (model->obj->Switches[7] != NULL) { sp2FC = modelFindNodeMtx(model, model->obj->Switches[7], 0); matrix_4x4_set_rotation_around_x(sp318->unkB4, sp2FC); matrix_4x4_set_position(model->obj->Switches[7]->Data, sp2FC); matrix_4x4_multiply_homogeneous_in_place(model->obj->Switches[2]->Data, sp2FC); } } // mips2c line 2065 else if (obj->type == PROPDEF_COLLECTABLE) { for (sp2F8 = 1; sp2F8 < model->obj->numMatrices; sp2F8++) { matrix_4x4_set_identity(&model->render_pos[sp2F8].pos); } } // mips2c line 2081 else if (obj->type == PROPDEF_RACK) { matrix_4x4_set_identity_and_position(model->obj->Switches[0]->Data, &model->render_pos[1].pos); matrix_4x4_multiply_homogeneous_in_place(&model->render_pos[0].pos, &model->render_pos[1].pos); matrix_4x4_set_identity_and_position(model->obj->Switches[1]->Data, &model->render_pos[2].pos); matrix_4x4_multiply_homogeneous_in_place(&model->render_pos[0].pos, &model->render_pos[2].pos); matrix_4x4_set_identity_and_position(model->obj->Switches[2]->Data, &model->render_pos[3].pos); matrix_4x4_multiply_homogeneous_in_place(&model->render_pos[0].pos, &model->render_pos[3].pos); matrix_4x4_set_identity_and_position(model->obj->Switches[3]->Data, &model->render_pos[4].pos); matrix_4x4_multiply_homogeneous_in_place(&model->render_pos[0].pos, &model->render_pos[4].pos); } // mips2c line 2099 else if (obj->type == PROPDEF_VEHICHLE) { struct VehichleRecord *temp_s1 = (struct VehichleRecord *)obj; var_f0_3 = 0.0f; temp_v1_7 = model->obj->Switches; sp260 = temp_v1_7[1]->Data; sp25C = temp_v1_7[2]->Data; sp258 = temp_v1_7[3]->Data; sp254 = temp_v1_7[4]->Data; temp_v0_40 = temp_v1_7[5]->Data; if (sp678 != 0) { var_f0_3 = (temp_s1->speed * g_GlobalTimerDelta * 6.2831855f) / ((temp_v0_40[4] - temp_v0_40[3]) * model->scale * 6.2831855f * 0.5f); temp_s1->wheelxrot += var_f0_3; while (temp_s1->wheelxrot >= 6.2831855f) { temp_s1->wheelxrot -= 6.2831855f; } while (temp_s1->wheelxrot < 0.0f) { temp_s1->wheelxrot += 6.2831855f; } } temp_s1->wheelxrot += var_f0_3; while (temp_s1->wheelxrot >= 6.2831855f) { temp_s1->wheelxrot -= 6.2831855f; } while (temp_s1->wheelxrot < 0.0f) { temp_s1->wheelxrot += 6.2831855f; } matrix_4x4_set_rotation_around_x(temp_s1->wheelxrot, &sp2AC); if (temp_s1->speed > 0.0f) { sp24C = temp_s1->turnrot60; sp250 = (sp258->f[2] - sp260->f[2]) * model->scale; if (sp24C < 0.0f) { sp24C = -sp24C; } sp248 = sinf(sp24C) * sp250; temp_s1->wheelyrot = atan2f(sp248, (cosf(sp24C) * sp250) - (sp250 - temp_s1->speed)); if (temp_s1->wheelyrot < sp24C) { temp_s1->wheelyrot = sp24C; } if (temp_s1->turnrot60 > 0.0f) { temp_s1->wheelyrot = (6.2831855f - temp_s1->wheelyrot); } } matrix_4x4_set_rotation_around_y(temp_s1->wheelyrot, &sp26C); matrix_4x4_copy(&sp2AC, &model->render_pos[3].pos); matrix_4x4_set_position(sp258, &model->render_pos[3].pos); matrix_4x4_multiply_homogeneous_in_place(&model->render_pos[0].pos, &model->render_pos[3].pos); matrix_4x4_copy(&sp2AC, &model->render_pos[4].pos); matrix_4x4_set_position(sp254, &model->render_pos[4].pos); matrix_4x4_multiply_homogeneous_in_place(&model->render_pos[0].pos, &model->render_pos[4].pos); matrix_4x4_multiply_homogeneous_in_place(&sp26C, &sp2AC); matrix_4x4_copy(&sp2AC, &model->render_pos[1].pos); matrix_4x4_set_position(sp260, &model->render_pos[1].pos); matrix_4x4_multiply_homogeneous_in_place(&model->render_pos[0].pos, &model->render_pos[1].pos); matrix_4x4_copy(&sp2AC, &model->render_pos[2].pos); matrix_4x4_set_position(sp25C, &model->render_pos[2].pos); matrix_4x4_multiply_homogeneous_in_place(&model->render_pos[0].pos, &model->render_pos[2].pos); } // mips2c line 2187 else if (obj->type == PROPDEF_AIRCRAFT) { struct AircraftRecord *temp_s1 = (struct AircraftRecord*)obj; //temp_a1_19 = model->render_pos[1]; sp1FC = model->obj->Switches[2]->Data; if ((g_ClockTimer > 0) && (sp678 != 0)) { temp_s1->rotoryrot += temp_s1->rotaryspeed; while (temp_s1->rotoryrot >= 6.2831855f) { temp_s1->rotoryrot -= 6.2831855f; } while (temp_s1->rotoryrot < 0.0f) { temp_s1->rotoryrot += 6.2831855f; } } if (temp_s1->model->anim != NULL) { sp1B0 = D_80030B34; sp1B0.unk_matrix = camGetWorldToScreenMtxf(); sp1B0.mtxlist = &model->render_pos[0].pos; subcalcmatrices(&sp1B0, temp_s1->model); } else { matrix_4x4_copy(&model->render_pos[0].pos, &model->render_pos[1].pos); } if (temp_s1->flags & 0x20000000) { matrix_4x4_set_rotation_around_z(temp_s1->rotoryrot, &sp200); } else { matrix_4x4_set_rotation_around_y(temp_s1->rotoryrot, &sp200); } matrix_4x4_copy(&sp200, &model->render_pos[2].pos); matrix_4x4_set_position(sp1FC, &model->render_pos[2].pos); matrix_4x4_multiply_homogeneous_in_place(&model->render_pos[1].pos, &model->render_pos[2].pos); var_v1_7 = model->obj->Switches; if (var_v1_7[3] != NULL) { temp_s0_21 = modelFindNodeMtx(model, var_v1_7[3], 0); matrix_4x4_set_rotation_around_x(temp_s1->rotoryrot, &sp200); matrix_4x4_copy(&sp200, temp_s0_21); matrix_4x4_set_position(var_v1_7[3]->Data, temp_s0_21); matrix_4x4_multiply_homogeneous_in_place(&model->render_pos[1].pos, temp_s0_21); } if (var_v1_7[4] != NULL) { temp_s0_21 = modelFindNodeMtx(model, var_v1_7[4], 0); matrix_4x4_set_identity_and_position(var_v1_7[4]->Data, temp_s0_21); matrix_4x4_multiply_homogeneous_in_place(&model->render_pos[1].pos, temp_s0_21); } } // mips2c line 2258 else { if (obj->type == PROPDEF_TANK) { struct TankRecord *temp_s1 = (struct TankRecord*)obj; temp_v1_8 = model->obj->Switches; sp168 = temp_v1_8[1]->Data; sp164 = temp_v1_8[3]->Data; sp160 = temp_v1_8[4]->Data; sp15C = temp_v1_8[2]->Data; sp158 = temp_v1_8[6]->Data; sp154 = -temp_s1->turret_vertical_angle; if (sp154 < 0.0f) { sp154 += 6.2831855f; } var_f12_9 = -temp_s1->turret_orientation_angle; if (var_f12_9 < 0.0f) { var_f12_9 += 6.2831855f; } matrix_4x4_set_rotation_around_y(var_f12_9, &model->render_pos[1].pos); matrix_4x4_set_position(sp168, &model->render_pos[1].pos); matrix_4x4_multiply_homogeneous_in_place(&model->render_pos[0].pos, &model->render_pos[1].pos); matrix_4x4_set_rotation_around_x(sp154, &model->render_pos[3].pos); matrix_4x4_set_position(sp164, &model->render_pos[3].pos); matrix_4x4_multiply_homogeneous_in_place(sp6C, &model->render_pos[3].pos); matrix_4x4_set_rotation_around_y(1.5707964f, &model->render_pos[4].pos); matrix_4x4_set_position(sp160, &model->render_pos[4].pos); matrix_4x4_multiply_homogeneous_in_place(&model->render_pos[3].pos, &model->render_pos[4].pos); matrix_4x4_set_identity_and_position(sp15C, &model->render_pos[2].pos); matrix_4x4_multiply_homogeneous_in_place(sp6C, &model->render_pos[2].pos); matrix_4x4_multiply_homogeneous(currentPlayerGetMatrix10D4(), &model->render_pos[1].pos, &sp16C); sub_GAME_7F03F540(sp158, &sp16C, &temp_s1->rect, temp_s1->unk80); if (model->obj->Switches[7] != NULL) { modelGetNodeRwData(model, model->obj->Switches[7])->Header.unk00 = (s16) temp_s1->is_firing_tank; } if (model->obj->Switches[8] != NULL) { modelGetNodeRwData(model, model->obj->Switches[8])->Header.unk00 = 0; } } } } modelUpdateRelationsQuick(model, model->obj->RootNode); arg0->Unk18 = -model->render_pos[0].pos.m[3][2]; chrobjWeaponTick(arg0); sp684 = arg0->child; while (sp684 != NULL) { sub_GAME_7F0442DC(sp684); sp684 = sp684->prev; } } else { arg0->flags &= 0xFFFD; chrobjWeaponTick(arg0); sp684 = arg0->child; while (sp684 != NULL) { sub_GAME_7F04424C(sp684); sp684 = sp684->prev; } } if (obj->runtime_bitflags & 0x100) { obj->runtime_bitflags &= ~0x100; maybe_detonate_object( obj, (RANDOMGETNEXT_F32() * 4.0f) + 2.0f, &arg0->pos, ITEM_UNARMED, (s32) ((u32) (obj->runtime_bitflags & RUNTIMEBITFLAG_OWNER) >> RUNTIMEBITSHIFT_OWNER)); } if (sp678 != 0) { if (obj->type == PROPDEF_DOOR) { sub_GAME_7F053A3C((struct DoorRecord *)arg0->obj); } // mimps2c line 2355 else if ((obj->type == PROPDEF_AUTOGUN) && (lvlGetControlsLockedFlag() == 0)) { struct AutogunRecord *autogun = (struct AutogunRecord*)arg0->obj; // autogun is temp_s0_24 sp13C = 0; sp138 = 0; if ((autogun->is_active != 0) && !(obj->flags & 0x10000000)) { autogun->unkAC = (autogun->unkAC + 1) & 1; sp13C = autogun->unkAC == 0; if (model->obj->Switches[5] != 0) { sp138 = autogun->unkAC == 1; } if (autogun->unkC0 < g_GlobalTimer) { if ((autogun->unkC4 != NULL) && (sndGetPlayingState(autogun->unkC4) != 0)) { sndDeactivate(autogun->unkC4); } if ((autogun->unkC8 != NULL) && (sndGetPlayingState(autogun->unkC8) != 0)) { sndDeactivate(autogun->unkC8); } if (autogun->unkC4 == NULL) { sndPlaySfx((struct ALBankAlt_s *) g_musicSfxBufferPtr, GUN_B9_CANNON_SHORT_SFX, autogun->unkC4); chrobjSndCreatePostEventDefault(autogun->unkC4, &arg0->pos); } else if (autogun->unkC8 == NULL) { sndPlaySfx((struct ALBankAlt_s *) g_musicSfxBufferPtr, GUN_B9_CANNON_SHORT_SFX, autogun->unkC8); chrobjSndCreatePostEventDefault(autogun->unkC8, &arg0->pos); } autogun->unkC0 = (s32) (g_GlobalTimer + 2); } // mmips2c line 2396 if ((sp13C != 0) || (sp138 != 0)) { sp11C = 1; sp10C = NULL; sp108 = arg0->stan; sp104 = (autogun->unkAC & 3) == 0; sp100 = get_curplayer_positiondata(); var_a0_6 = 5; temp_v1_10 = model->obj->Switches; if ((model->obj->Switches[7] != 0) && !(autogun->unkAC & 7)) { var_a0_6 = 7; } if ((arg0->flags & 2) && temp_v1_10[var_a0_6] != NULL) { temp_s2_7 = modelFindNodeMtx(model, temp_v1_10[var_a0_6], 0); temp_v1_11 = model->obj->Switches[var_a0_6]->Data; sp12C.f[0] = temp_v1_11->f[0]; sp12C.f[1] = temp_v1_11->f[1]; sp12C.f[2] = temp_v1_11->f[2]; matrix_4x4_multiply_homogeneous(currentPlayerGetMatrix10D4(), temp_s2_7, &spB8); mtx4TransformVecInPlace(&spB8, &sp12C); if (walkTilesBetweenPoints_NoCallback(&sp108, arg0->pos.f[0], arg0->pos.f[2], sp12C.f[0], sp12C.f[2]) == 0) { sp12C.f[0] = arg0->pos.f[0]; sp12C.f[1] = arg0->pos.f[1]; sp12C.f[2] = arg0->pos.f[2]; } } else { sp12C.f[0] = arg0->pos.f[0]; sp12C.f[1] = arg0->pos.f[1]; sp12C.f[2] = arg0->pos.f[2]; } sp120.f[0] = cosf(autogun->unk9C) * sinf(autogun->unk90); sp120.f[1] = sinf(autogun->unk9C); sp120.f[2] = cosf(autogun->unk9C) * cosf(autogun->unk90); sp110.f[0] = (sp120.f[0] * 65536.0f) + sp12C.f[0]; sp110.f[1] = (sp120.f[1] * 65536.0f) + sp12C.f[1]; sp110.f[2] = (sp120.f[2] * 65536.0f) + sp12C.f[2]; sub_GAME_7F0B1CC4(); // mmips2c line 2441 if (sub_GAME_7F0B0E24(&sp108, sp12C.f[0], sp12C.f[2], sp110.f[0], sp110.f[2], 2, 100.0f, 100.0f, 0.0f, 1.0f) == 0) { chrlvStanLineDirIntersection(&sp12C, &sp120, &sp110); sp10C = sp108; sp110.f[0] -= 26.0f * sp120.f[0]; sp110.f[1] -= 26.0f * sp120.f[1]; sp110.f[2] -= 26.0f * sp120.f[2]; } if (g_GlobalTimer == (s32) autogun->unkBC) { temp_fc3d_a.f[0] = sp100->pos.f[0] - sp12C.f[0]; temp_fc3d_a.f[1] = sp100->pos.f[1] - sp12C.f[1]; temp_fc3d_a.f[2] = sp100->pos.f[2] - sp12C.f[2]; temp_f20_4 = (temp_fc3d_a.f[0] * temp_fc3d_a.f[0]) + (temp_fc3d_a.f[1] * temp_fc3d_a.f[1]) + (temp_fc3d_a.f[2] * temp_fc3d_a.f[2]); temp_fc3d_b.f[0] = sp110.f[0] - sp12C.f[0]; temp_fc3d_b.f[1] = sp110.f[1] - sp12C.f[1]; temp_fc3d_b.f[2] = sp110.f[2] - sp12C.f[2]; if ((temp_f20_4 <= ((temp_fc3d_b.f[0] * temp_fc3d_b.f[0]) + (temp_fc3d_b.f[1] * temp_fc3d_b.f[1]) + (temp_fc3d_b.f[2] * temp_fc3d_b.f[2]))) && (bondviewGetIfCurrentPlayerDamageShowTime() == 0)) { temp_f0_35 = sqrtf(temp_f20_4); var_f2_7 = 0.16f * g_GlobalTimerDelta * F_80030B1C; if (temp_f0_35 > 200.0f) { var_f2_7 *= 200.0f / temp_f0_35; } autogun->unkD4 += var_f2_7; if (autogun->unkD4 >= 1.0f) { bondviewCallRecordDamageKills(bondwalkItemGetDestructionAmount(ITEM_FNP90) * 0.125f * F_80030B20, autogun->unk90, -1, 1); autogun->unkD4 = 0.0f; if (bondviewGetIfCurrentPlayerDamageShowTime() != 0) { sp11C = 0; } } } } // mips2c line 2479 if (sp11C != 0) { if (sp10C != NULL) { sub_GAME_7F0A3E1C(&sp110, 1, 26.0f, (s16) sp10C->room); } recall_joy2_hits_edit_flag(ITEM_FNP90, &sp110, -1); } else { sp110.f[0] = sp100->pos.f[0]; sp110.f[1] = sp100->pos.f[1]; sp110.f[2] = sp100->pos.f[2]; recall_joy2_hits_edit_detail_edit_flag(ITEM_FNP90, sp100, -1); } // mips2c line 2494 if (sp104 != 0) { beam = autogun->beam; beam->from.f[0] = sp12C.f[0]; beam->from.f[1] = sp12C.f[1]; beam->from.f[2] = sp12C.f[2]; beam->dir.f[0] = sp110.f[0] - beam->from.f[0]; beam->dir.f[1] = sp110.f[1] - beam->from.f[1]; beam->dir.f[2] = sp110.f[2] - beam->from.f[2]; sp94 = sqrtf((beam->dir.f[2] * beam->dir.f[2]) + ((beam->from.f[0] * beam->from.f[0]) + (beam->from.f[1] * beam->from.f[1]))); temp_f2_23 = 1.0f / sp94; beam->dir.f[0] = (f32) (beam->dir.f[0] * temp_f2_23); beam->dir.f[1] = (f32) (beam->dir.f[1] * temp_f2_23); beam->dir.f[2] = (f32) (beam->dir.f[2] * temp_f2_23); if (sp94 > 10000.0f) { sp94 = 10000.0f; } beam->age = 0; beam->weaponnum = ITEM_FNP90; beam->maxdist = sp94; if (sp94 < 500.0f) { sp94 = 500.0f; } /* At some point the developers where exploring a laser auto turret */ if (beam->weaponnum == ITEM_LASER) { beam->speed = 0.25f * sp94; beam->mindist = 0.6f * sp94; if (beam->mindist > 3000.0f) { beam->mindist = 3000.0f; } var_f4 = (-0.1f - (RANDOMGETNEXT_F32() * 0.3f)) * sp94; } else { beam->speed = 0.2f * sp94; beam->mindist = 0.2f * sp94; if (beam->mindist > 3000.0f) { beam->mindist = 3000.0f; } var_f4 = ((2.0f * RANDOMGETNEXT_F32()) - 1.0f) * beam->speed; } beam->dist = var_f4; } } } // mmips2c line 2553 if (model->obj->Switches[5] != NULL) { modelGetNodeRwData(model, model->obj->Switches[5])->Header.unk00 = (s16) sp13C; } if (model->obj->Switches[7] != NULL) { modelGetNodeRwData(model, model->obj->Switches[7])->Header.unk00 = (s16) sp138; } } objDropRecursively(arg0); } if (sp680 == 5) { arg0->stan = NULL; } return sp680; } #else #ifdef VERSION_US GLOBAL_ASM( .late_rodata glabel rocket_initial_gravity_modifier .word 0x3e8e38e4 /*0.27777779*/ glabel D_80052A9C .word 0x3c360b61 /*0.011111111*/ glabel D_80052AA0 .word 0x3d8f5c29 /*0.07*/ glabel prop_projectile_gravity_modifier .word 0x3e8e38e4 /*0.27777779*/ glabel D_80052AA8 .word 0x400e38e4 /*2.2222223*/ glabel D_80052AAC .word 0x46d9038c /*27777.773*/ glabel D_80052AB0 .word 0x3f8ccccd /*1.1*/ glabel D_80052AB4 .word 0x3f666666 /*0.89999998*/ glabel D_80052AB8 .word 0x3f666666 /*0.89999998*/ glabel D_80052ABC .word 0x3dcccccd /*0.1*/ glabel D_80052AC0 .word 0xbdcccccd /*-0.1*/ glabel D_80052AC4 .word 0xbdcccccd /*-0.1*/ glabel D_80052AC8 .word 0x40c90fdb /*6.2831855*/ glabel D_80052ACC .word 0x40c90fdb /*6.2831855*/ glabel D_80052AD0 .word 0x40490fdb /*3.1415927*/ glabel D_80052AD4 .word 0x3f490fdb /*0.78539819*/ glabel D_80052AD8 .word 0xbf490fdb /*-0.78539819*/ glabel D_80052ADC .word 0x40c90fdb /*6.2831855*/ glabel D_80052AE0 .word 0x3a2b92a6 /*0.00065449846*/ glabel D_80052AE4 .word 0x3a2b92a6 /*0.00065449846*/ glabel D_80052AE8 .word 0x40c90fdb /*6.2831855*/ glabel D_80052AEC .word 0x37433637 /*0.000011635529*/ glabel D_80052AF0 .word 0x40c90fdb /*6.2831855*/ glabel D_80052AF4 .word 0x3a3702d4 /*0.00069813174*/ glabel D_80052AF8 .word 0x36c33637 /*0.0000058177643*/ glabel D_80052AFC .word 0x39b702d4 /*0.00034906587*/ glabel D_80052B00 .word 0x40c90fdb /*6.2831855*/ glabel D_80052B04 .word 0x40c90fdb /*6.2831855*/ glabel D_80052B08 .word 0x40c90fdb /*6.2831855*/ glabel D_80052B0C .word 0x40490fdb /*3.1415927*/ glabel D_80052B10 .word 0x3f9c61ab /*1.2217306*/ glabel D_80052B14 .word 0xbf9c61ab /*-1.2217306*/ glabel D_80052B18 .word 0xc0490fdb /*-3.1415927*/ glabel D_80052B1C .word 0x40490fdb /*3.1415927*/ glabel D_80052B20 .word 0x40c90fdb /*6.2831855*/ glabel D_80052B24 .word 0x3f4ccccd /*0.80000001*/ glabel D_80052B28 .word 0xc0490fdb /*-3.1415927*/ glabel D_80052B2C .word 0x40490fdb /*3.1415927*/ glabel D_80052B30 .word 0x3a64c389 /*0.00087266468*/ glabel D_80052B34 .word 0x3a64c389 /*0.00087266468*/ glabel D_80052B38 .word 0x40490fdb /*3.1415927*/ glabel D_80052B3C .word 0x3f1930a7 /*0.59839863*/ glabel D_80052B40 .word 0x3c236719 /*0.0099733109*/ glabel D_80052B44 .word 0x3f7d70a4 /*0.99000001*/ glabel D_80052B48 .word 0x38d1b717 /*0.000099999997*/ glabel D_80052B4C .word 0x3964c389 /*0.00021816617*/ glabel D_80052B50 .word 0x3bd67750 /*0.0065449849*/ glabel D_80052B54 .word 0x40c90fdb /*6.2831855*/ glabel D_80052B58 .word 0x3964c389 /*0.00021816617*/ glabel D_80052B5C .word 0xb964c389 /*-0.00021816617*/ glabel D_80052B60 .word 0x40c90fdb /*6.2831855*/ glabel D_80052B64 .word 0x40c90fdb /*6.2831855*/ glabel D_80052B68 .word 0x3e99999a /*0.30000001*/ glabel D_80052B6C .word 0x3fc90fdb /*1.5707964*/ glabel D_80052B70 .word 0x3fc90fdb /*1.5707964*/ glabel D_80052B74 .word 0x3e23d70a /*0.16*/ glabel D_80052B78 .word 0x461c4000 /*10000.0*/ glabel D_80052B7C .word 0x453b8000 /*3000.0*/ glabel D_80052B80 .word 0x3f19999a /*0.60000002*/ glabel D_80052B84 .word 0x3e99999a /*0.30000001*/ glabel D_80052B88 .word 0xbdcccccd /*-0.1*/ glabel D_80052B8C .word 0x3e4ccccd /*0.2*/ glabel D_80052B90 .word 0x453b8000 /*3000.0*/ glabel D_80052B94 .word 0x453b8000 /*3000.0*/ .text glabel object_interaction /* 079E04 7F0452D4 27BDF958 */ addiu $sp, $sp, -0x6a8 /* 079E08 7F0452D8 AFBF0054 */ sw $ra, 0x54($sp) /* 079E0C 7F0452DC AFB40050 */ sw $s4, 0x50($sp) /* 079E10 7F0452E0 AFB3004C */ sw $s3, 0x4c($sp) /* 079E14 7F0452E4 AFB20048 */ sw $s2, 0x48($sp) /* 079E18 7F0452E8 AFB10044 */ sw $s1, 0x44($sp) /* 079E1C 7F0452EC AFB00040 */ sw $s0, 0x40($sp) /* 079E20 7F0452F0 F7B60038 */ sdc1 $f22, 0x38($sp) /* 079E24 7F0452F4 F7B40030 */ sdc1 $f20, 0x30($sp) /* 079E28 7F0452F8 8C910004 */ lw $s1, 4($a0) /* 079E2C 7F0452FC 4480B000 */ mtc1 $zero, $f22 /* 079E30 7F045300 00809825 */ move $s3, $a0 /* 079E34 7F045304 8E340014 */ lw $s4, 0x14($s1) /* 079E38 7F045308 AFA00690 */ sw $zero, 0x690($sp) /* 079E3C 7F04530C AFA00680 */ sw $zero, 0x680($sp) /* 079E40 7F045310 0FC26919 */ jal getPlayerCount /* 079E44 7F045314 E7B6067C */ swc1 $f22, 0x67c($sp) /* 079E48 7F045318 240C0001 */ li $t4, 1 /* 079E4C 7F04531C AFA20674 */ sw $v0, 0x674($sp) /* 079E50 7F045320 AFAC0670 */ sw $t4, 0x670($sp) /* 079E54 7F045324 8E230064 */ lw $v1, 0x64($s1) /* 079E58 7F045328 306E0004 */ andi $t6, $v1, 4 /* 079E5C 7F04532C 11C00009 */ beqz $t6, .L7F045354 /* 079E60 7F045330 306F0008 */ andi $t7, $v1, 8 /* 079E64 7F045334 92260002 */ lbu $a2, 2($s1) /* 079E68 7F045338 02202025 */ move $a0, $s1 /* 079E6C 7F04533C 00002825 */ move $a1, $zero /* 079E70 7F045340 30CD0004 */ andi $t5, $a2, 4 /* 079E74 7F045344 0FC10366 */ jal objFree /* 079E78 7F045348 01A03025 */ move $a2, $t5 /* 079E7C 7F04534C 100011F8 */ b .L7F049B30 /* 079E80 7F045350 24020001 */ li $v0, 1 .L7F045354: /* 079E84 7F045354 11E00005 */ beqz $t7, .L7F04536C /* 079E88 7F045358 30680080 */ andi $t0, $v1, 0x80 /* 079E8C 7F04535C 2401FFF7 */ li $at, -9 /* 079E90 7F045360 0061C024 */ and $t8, $v1, $at /* 079E94 7F045364 1000000B */ b .L7F045394 /* 079E98 7F045368 AE380064 */ sw $t8, 0x64($s1) .L7F04536C: /* 079E9C 7F04536C 5100000A */ beql $t0, $zero, .L7F045398 /* 079EA0 7F045370 24010001 */ li $at, 1 /* 079EA4 7F045374 92690001 */ lbu $t1, 1($s3) /* 079EA8 7F045378 24020003 */ li $v0, 3 /* 079EAC 7F04537C 312BFFFD */ andi $t3, $t1, 0xfffd /* 079EB0 7F045380 A26B0001 */ sb $t3, 1($s3) /* 079EB4 7F045384 8E390064 */ lw $t9, 0x64($s1) /* 079EB8 7F045388 372A0008 */ ori $t2, $t9, 8 /* 079EBC 7F04538C 100011E8 */ b .L7F049B30 /* 079EC0 7F045390 AE2A0064 */ sw $t2, 0x64($s1) .L7F045394: /* 079EC4 7F045394 24010001 */ li $at, 1 .L7F045398: /* 079EC8 7F045398 14410003 */ bne $v0, $at, .L7F0453A8 /* 079ECC 7F04539C 240C0001 */ li $t4, 1 /* 079ED0 7F0453A0 10000015 */ b .L7F0453F8 /* 079ED4 7F0453A4 AFAC0678 */ sw $t4, 0x678($sp) .L7F0453A8: /* 079ED8 7F0453A8 0FC26C54 */ jal get_cur_playernum /* 079EDC 7F0453AC 00000000 */ nop /* 079EE0 7F0453B0 0FC26D36 */ jal sub_GAME_7F09B4D8 /* 079EE4 7F0453B4 00402025 */ move $a0, $v0 /* 079EE8 7F0453B8 2C4E0001 */ sltiu $t6, $v0, 1 /* 079EEC 7F0453BC AFAE0678 */ sw $t6, 0x678($sp) /* 079EF0 7F0453C0 8E2D0064 */ lw $t5, 0x64($s1) /* 079EF4 7F0453C4 31AF0080 */ andi $t7, $t5, 0x80 /* 079EF8 7F0453C8 51E0000C */ beql $t7, $zero, .L7F0453FC /* 079EFC 7F0453CC 8FAB0678 */ lw $t3, 0x678($sp) /* 079F00 7F0453D0 8E22006C */ lw $v0, 0x6c($s1) /* 079F04 7F0453D4 3C188008 */ lui $t8, %hi(g_CurrentPlayer) /* 079F08 7F0453D8 8C430088 */ lw $v1, 0x88($v0) /* 079F0C 7F0453DC 50600007 */ beql $v1, $zero, .L7F0453FC /* 079F10 7F0453E0 8FAB0678 */ lw $t3, 0x678($sp) /* 079F14 7F0453E4 8F18A0B0 */ lw $t8, %lo(g_CurrentPlayer)($t8) /* 079F18 7F0453E8 8F0800A8 */ lw $t0, 0xa8($t8) /* 079F1C 7F0453EC 01034826 */ xor $t1, $t0, $v1 /* 079F20 7F0453F0 2D290001 */ sltiu $t1, $t1, 1 /* 079F24 7F0453F4 AFA90678 */ sw $t1, 0x678($sp) .L7F0453F8: /* 079F28 7F0453F8 8FAB0678 */ lw $t3, 0x678($sp) .L7F0453FC: /* 079F2C 7F0453FC 51600B8C */ beql $t3, $zero, .L7F048230 /* 079F30 7F045400 92220003 */ lbu $v0, 3($s1) /* 079F34 7F045404 8E390064 */ lw $t9, 0x64($s1) /* 079F38 7F045408 332A0080 */ andi $t2, $t9, 0x80 /* 079F3C 7F04540C 51400483 */ beql $t2, $zero, .L7F04661C /* 079F40 7F045410 8FAD0690 */ lw $t5, 0x690($sp) /* 079F44 7F045414 8E30006C */ lw $s0, 0x6c($s1) /* 079F48 7F045418 3C0E8005 */ lui $t6, %hi(g_ClockTimer) /* 079F4C 7F04541C 8DCE8374 */ lw $t6, %lo(g_ClockTimer)($t6) /* 079F50 7F045420 8E0C00E0 */ lw $t4, 0xe0($s0) /* 079F54 7F045424 018E6821 */ addu $t5, $t4, $t6 /* 079F58 7F045428 29A10961 */ slti $at, $t5, 0x961 /* 079F5C 7F04542C 14200004 */ bnez $at, .L7F045440 /* 079F60 7F045430 AE0D00E0 */ sw $t5, 0xe0($s0) /* 079F64 7F045434 8E380064 */ lw $t8, 0x64($s1) /* 079F68 7F045438 37080004 */ ori $t0, $t8, 4 /* 079F6C 7F04543C AE280064 */ sw $t0, 0x64($s1) .L7F045440: /* 079F70 7F045440 8E090000 */ lw $t1, ($s0) /* 079F74 7F045444 312B0100 */ andi $t3, $t1, 0x100 /* 079F78 7F045448 5160002F */ beql $t3, $zero, .L7F045508 /* 079F7C 7F04544C C6260058 */ lwc1 $f6, 0x58($s1) /* 079F80 7F045450 92390003 */ lbu $t9, 3($s1) /* 079F84 7F045454 24010008 */ li $at, 8 /* 079F88 7F045458 24120001 */ li $s2, 1 /* 079F8C 7F04545C 57210008 */ bnel $t9, $at, .L7F045480 /* 079F90 7F045460 8E040088 */ lw $a0, 0x88($s0) /* 079F94 7F045464 AFB10648 */ sw $s1, 0x648($sp) /* 079F98 7F045468 822A0080 */ lb $t2, 0x80($s1) /* 079F9C 7F04546C 24010056 */ li $at, 86 /* 079FA0 7F045470 55410003 */ bnel $t2, $at, .L7F045480 /* 079FA4 7F045474 8E040088 */ lw $a0, 0x88($s0) /* 079FA8 7F045478 00009025 */ move $s2, $zero /* 079FAC 7F04547C 8E040088 */ lw $a0, 0x88($s0) .L7F045480: /* 079FB0 7F045480 50800004 */ beql $a0, $zero, .L7F045494 /* 079FB4 7F045484 02202025 */ move $a0, $s1 /* 079FB8 7F045488 0FC0F416 */ jal sub_GAME_7F03D058 /* 079FBC 7F04548C 00002825 */ move $a1, $zero /* 079FC0 7F045490 02202025 */ move $a0, $s1 .L7F045494: /* 079FC4 7F045494 260500D4 */ addiu $a1, $s0, 0xd4 /* 079FC8 7F045498 27A6064C */ addiu $a2, $sp, 0x64c /* 079FCC 7F04549C 27A70658 */ addiu $a3, $sp, 0x658 /* 079FD0 7F0454A0 AFA00010 */ sw $zero, 0x10($sp) /* 079FD4 7F0454A4 0FC10BAD */ jal sub_GAME_7F042EB4 /* 079FD8 7F0454A8 AFB20014 */ sw $s2, 0x14($sp) /* 079FDC 7F0454AC AFA20664 */ sw $v0, 0x664($sp) /* 079FE0 7F0454B0 8E040088 */ lw $a0, 0x88($s0) /* 079FE4 7F0454B4 50800004 */ beql $a0, $zero, .L7F0454C8 /* 079FE8 7F0454B8 8FAC0664 */ lw $t4, 0x664($sp) /* 079FEC 7F0454BC 0FC0F416 */ jal sub_GAME_7F03D058 /* 079FF0 7F0454C0 24050001 */ li $a1, 1 /* 079FF4 7F0454C4 8FAC0664 */ lw $t4, 0x664($sp) .L7F0454C8: /* 079FF8 7F0454C8 24010001 */ li $at, 1 /* 079FFC 7F0454CC 8FA20648 */ lw $v0, 0x648($sp) /* 07A000 7F0454D0 51810009 */ beql $t4, $at, .L7F0454F8 /* 07A004 7F0454D4 8E0D0000 */ lw $t5, ($s0) /* 07A008 7F0454D8 50400007 */ beql $v0, $zero, .L7F0454F8 /* 07A00C 7F0454DC 8E0D0000 */ lw $t5, ($s0) /* 07A010 7F0454E0 804E0080 */ lb $t6, 0x80($v0) /* 07A014 7F0454E4 24010056 */ li $at, 86 /* 07A018 7F0454E8 55C10003 */ bnel $t6, $at, .L7F0454F8 /* 07A01C 7F0454EC 8E0D0000 */ lw $t5, ($s0) /* 07A020 7F0454F0 A4400082 */ sh $zero, 0x82($v0) /* 07A024 7F0454F4 8E0D0000 */ lw $t5, ($s0) .L7F0454F8: /* 07A028 7F0454F8 2401FEFF */ li $at, -257 /* 07A02C 7F0454FC 01A17824 */ and $t7, $t5, $at /* 07A030 7F045500 AE0F0000 */ sw $t7, ($s0) /* 07A034 7F045504 C6260058 */ lwc1 $f6, 0x58($s1) .L7F045508: /* 07A038 7F045508 3C188005 */ lui $t8, %hi(g_ClockTimer) /* 07A03C 7F04550C 3C013F80 */ lui $at, 0x3f80 /* 07A040 7F045510 E7A60694 */ swc1 $f6, 0x694($sp) /* 07A044 7F045514 C62A005C */ lwc1 $f10, 0x5c($s1) /* 07A048 7F045518 E7AA0698 */ swc1 $f10, 0x698($sp) /* 07A04C 7F04551C C6240060 */ lwc1 $f4, 0x60($s1) /* 07A050 7F045520 E7A4069C */ swc1 $f4, 0x69c($sp) /* 07A054 7F045524 8E0200BC */ lw $v0, 0xbc($s0) /* 07A058 7F045528 58400005 */ blezl $v0, .L7F045540 /* 07A05C 7F04552C 8E29006C */ lw $t1, 0x6c($s1) /* 07A060 7F045530 8F188374 */ lw $t8, %lo(g_ClockTimer)($t8) /* 07A064 7F045534 00584023 */ subu $t0, $v0, $t8 /* 07A068 7F045538 AE0800BC */ sw $t0, 0xbc($s0) /* 07A06C 7F04553C 8E29006C */ lw $t1, 0x6c($s1) .L7F045540: /* 07A070 7F045540 8D2B0000 */ lw $t3, ($t1) /* 07A074 7F045544 31790001 */ andi $t9, $t3, 1 /* 07A078 7F045548 53200351 */ beql $t9, $zero, .L7F046290 /* 07A07C 7F04554C C6000060 */ lwc1 $f0, 0x60($s0) /* 07A080 7F045550 0FC1001E */ jal chrobjGetBboxFromObjectRecord /* 07A084 7F045554 02202025 */ move $a0, $s1 /* 07A088 7F045558 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07A08C 7F04555C 44814000 */ mtc1 $at, $f8 /* 07A090 7F045560 3C078005 */ lui $a3, %hi(g_ClockTimer) /* 07A094 7F045564 24E78374 */ addiu $a3, %lo(g_ClockTimer) # addiu $a3, $a3, -0x7c8c /* 07A098 7F045568 AFA20640 */ sw $v0, 0x640($sp) /* 07A09C 7F04556C AFA00610 */ sw $zero, 0x610($sp) /* 07A0A0 7F045570 AFA0060C */ sw $zero, 0x60c($sp) /* 07A0A4 7F045574 AFA00604 */ sw $zero, 0x604($sp) /* 07A0A8 7F045578 E7A80638 */ swc1 $f8, 0x638($sp) /* 07A0AC 7F04557C 8E0A00A8 */ lw $t2, 0xa8($s0) /* 07A0B0 7F045580 8CEC0000 */ lw $t4, ($a3) /* 07A0B4 7F045584 C634005C */ lwc1 $f20, 0x5c($s1) /* 07A0B8 7F045588 00009025 */ move $s2, $zero /* 07A0BC 7F04558C 014C7021 */ addu $t6, $t2, $t4 /* 07A0C0 7F045590 AE0E00A8 */ sw $t6, 0xa8($s0) /* 07A0C4 7F045594 C6260018 */ lwc1 $f6, 0x18($s1) /* 07A0C8 7F045598 3C018005 */ lui $at, %hi(rocket_initial_gravity_modifier) /* 07A0CC 7F04559C E7A6062C */ swc1 $f6, 0x62c($sp) /* 07A0D0 7F0455A0 C62A001C */ lwc1 $f10, 0x1c($s1) /* 07A0D4 7F0455A4 E7AA0630 */ swc1 $f10, 0x630($sp) /* 07A0D8 7F0455A8 C6240020 */ lwc1 $f4, 0x20($s1) /* 07A0DC 7F0455AC E7A40634 */ swc1 $f4, 0x634($sp) /* 07A0E0 7F0455B0 8E030000 */ lw $v1, ($s0) /* 07A0E4 7F0455B4 306D0020 */ andi $t5, $v1, 0x20 /* 07A0E8 7F0455B8 11A0004B */ beqz $t5, .L7F0456E8 /* 07A0EC 7F0455BC 00000000 */ nop /* 07A0F0 7F0455C0 C4322A98 */ lwc1 $f18, %lo(rocket_initial_gravity_modifier)($at) /* 07A0F4 7F0455C4 C600001C */ lwc1 $f0, 0x1c($s0) /* 07A0F8 7F0455C8 3C028005 */ lui $v0, %hi(g_GlobalTimerDelta) /* 07A0FC 7F0455CC 24428378 */ addiu $v0, %lo(g_GlobalTimerDelta) # addiu $v0, $v0, -0x7c88 /* 07A100 7F0455D0 4612003C */ c.lt.s $f0, $f18 /* 07A104 7F0455D4 00000000 */ nop /* 07A108 7F0455D8 4502001C */ bc1fl .L7F04564C /* 07A10C 7F0455DC C60000B0 */ lwc1 $f0, 0xb0($s0) /* 07A110 7F0455E0 C6080014 */ lwc1 $f8, 0x14($s0) /* 07A114 7F0455E4 C4460000 */ lwc1 $f6, ($v0) /* 07A118 7F0455E8 C60400B4 */ lwc1 $f4, 0xb4($s0) /* 07A11C 7F0455EC 3C018005 */ lui $at, %hi(D_80052A9C) /* 07A120 7F0455F0 46064282 */ mul.s $f10, $f8, $f6 /* 07A124 7F0455F4 460A2200 */ add.s $f8, $f4, $f10 /* 07A128 7F0455F8 E60800B4 */ swc1 $f8, 0xb4($s0) /* 07A12C 7F0455FC C4440000 */ lwc1 $f4, ($v0) /* 07A130 7F045600 C60600B4 */ lwc1 $f6, 0xb4($s0) /* 07A134 7F045604 C60800B0 */ lwc1 $f8, 0xb0($s0) /* 07A138 7F045608 46043282 */ mul.s $f10, $f6, $f4 /* 07A13C 7F04560C 460A4180 */ add.s $f6, $f8, $f10 /* 07A140 7F045610 E60600B0 */ swc1 $f6, 0xb0($s0) /* 07A144 7F045614 C4480000 */ lwc1 $f8, ($v0) /* 07A148 7F045618 C4242A9C */ lwc1 $f4, %lo(D_80052A9C)($at) /* 07A14C 7F04561C 46082282 */ mul.s $f10, $f4, $f8 /* 07A150 7F045620 460A0180 */ add.s $f6, $f0, $f10 /* 07A154 7F045624 E606001C */ swc1 $f6, 0x1c($s0) /* 07A158 7F045628 C604001C */ lwc1 $f4, 0x1c($s0) /* 07A15C 7F04562C 4604903C */ c.lt.s $f18, $f4 /* 07A160 7F045630 00000000 */ nop /* 07A164 7F045634 45000002 */ bc1f .L7F045640 /* 07A168 7F045638 00000000 */ nop /* 07A16C 7F04563C E612001C */ swc1 $f18, 0x1c($s0) .L7F045640: /* 07A170 7F045640 10000029 */ b .L7F0456E8 /* 07A174 7F045644 8E030000 */ lw $v1, ($s0) /* 07A178 7F045648 C60000B0 */ lwc1 $f0, 0xb0($s0) .L7F04564C: /* 07A17C 7F04564C C7A80698 */ lwc1 $f8, 0x698($sp) /* 07A180 7F045650 4600403C */ c.lt.s $f8, $f0 /* 07A184 7F045654 00000000 */ nop /* 07A188 7F045658 45000019 */ bc1f .L7F0456C0 /* 07A18C 7F04565C 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) /* 07A190 7F045660 C4268378 */ lwc1 $f6, %lo(g_GlobalTimerDelta)($at) /* 07A194 7F045664 C60A0014 */ lwc1 $f10, 0x14($s0) /* 07A198 7F045668 C60800B4 */ lwc1 $f8, 0xb4($s0) /* 07A19C 7F04566C 46065102 */ mul.s $f4, $f10, $f6 /* 07A1A0 7F045670 46044280 */ add.s $f10, $f8, $f4 /* 07A1A4 7F045674 E60A00B4 */ swc1 $f10, 0xb4($s0) /* 07A1A8 7F045678 C4288378 */ lwc1 $f8, %lo(g_GlobalTimerDelta)($at) /* 07A1AC 7F04567C C60600B4 */ lwc1 $f6, 0xb4($s0) /* 07A1B0 7F045680 3C018005 */ lui $at, %hi(D_80052AA0) /* 07A1B4 7F045684 46083102 */ mul.s $f4, $f6, $f8 /* 07A1B8 7F045688 46040280 */ add.s $f10, $f0, $f4 /* 07A1BC 7F04568C E60A00B0 */ swc1 $f10, 0xb0($s0) /* 07A1C0 7F045690 C7A80698 */ lwc1 $f8, 0x698($sp) /* 07A1C4 7F045694 C60600B0 */ lwc1 $f6, 0xb0($s0) /* 07A1C8 7F045698 C42A2AA0 */ lwc1 $f10, %lo(D_80052AA0)($at) /* 07A1CC 7F04569C 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) /* 07A1D0 7F0456A0 46083101 */ sub.s $f4, $f6, $f8 /* 07A1D4 7F0456A4 46045182 */ mul.s $f6, $f10, $f4 /* 07A1D8 7F0456A8 C42A8378 */ lwc1 $f10, %lo(g_GlobalTimerDelta)($at) /* 07A1DC 7F0456AC 460A3102 */ mul.s $f4, $f6, $f10 /* 07A1E0 7F0456B0 46044180 */ add.s $f6, $f8, $f4 /* 07A1E4 7F0456B4 E7A60698 */ swc1 $f6, 0x698($sp) /* 07A1E8 7F0456B8 1000000B */ b .L7F0456E8 /* 07A1EC 7F0456BC 8E030000 */ lw $v1, ($s0) .L7F0456C0: /* 07A1F0 7F0456C0 E7A00698 */ swc1 $f0, 0x698($sp) /* 07A1F4 7F0456C4 8E0F0000 */ lw $t7, ($s0) /* 07A1F8 7F0456C8 2401FFDF */ li $at, -33 /* 07A1FC 7F0456CC C60A00B4 */ lwc1 $f10, 0xb4($s0) /* 07A200 7F0456D0 01E1C024 */ and $t8, $t7, $at /* 07A204 7F0456D4 AE180000 */ sw $t8, ($s0) /* 07A208 7F0456D8 37030010 */ ori $v1, $t8, 0x10 /* 07A20C 7F0456DC E616001C */ swc1 $f22, 0x1c($s0) /* 07A210 7F0456E0 AE030000 */ sw $v1, ($s0) /* 07A214 7F0456E4 E60A0008 */ swc1 $f10, 8($s0) .L7F0456E8: /* 07A218 7F0456E8 3C028005 */ lui $v0, %hi(g_GlobalTimerDelta) /* 07A21C 7F0456EC 24428378 */ addiu $v0, %lo(g_GlobalTimerDelta) # addiu $v0, $v0, -0x7c88 /* 07A220 7F0456F0 3C018005 */ lui $at, %hi(prop_projectile_gravity_modifier) /* 07A224 7F0456F4 306B0010 */ andi $t3, $v1, 0x10 /* 07A228 7F0456F8 C4322AA4 */ lwc1 $f18, %lo(prop_projectile_gravity_modifier)($at) /* 07A22C 7F0456FC C4420000 */ lwc1 $f2, ($v0) /* 07A230 7F045700 C600001C */ lwc1 $f0, 0x1c($s0) /* 07A234 7F045704 15600015 */ bnez $t3, .L7F04575C /* 07A238 7F045708 C6100014 */ lwc1 $f16, 0x14($s0) /* 07A23C 7F04570C 46008100 */ add.s $f4, $f16, $f0 /* 07A240 7F045710 C6080008 */ lwc1 $f8, 8($s0) /* 07A244 7F045714 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 07A248 7F045718 46022182 */ mul.s $f6, $f4, $f2 /* 07A24C 7F04571C 46064280 */ add.s $f10, $f8, $f6 /* 07A250 7F045720 E60A0008 */ swc1 $f10, 8($s0) /* 07A254 7F045724 C4420000 */ lwc1 $f2, ($v0) /* 07A258 7F045728 C60C0008 */ lwc1 $f12, 8($s0) /* 07A25C 7F04572C 44815000 */ mtc1 $at, $f10 /* 07A260 7F045730 46029102 */ mul.s $f4, $f18, $f2 /* 07A264 7F045734 46046381 */ sub.s $f14, $f12, $f4 /* 07A268 7F045738 460E6200 */ add.s $f8, $f12, $f14 /* 07A26C 7F04573C 46081182 */ mul.s $f6, $f2, $f8 /* 07A270 7F045740 C7A80698 */ lwc1 $f8, 0x698($sp) /* 07A274 7F045744 460A3102 */ mul.s $f4, $f6, $f10 /* 07A278 7F045748 46044180 */ add.s $f6, $f8, $f4 /* 07A27C 7F04574C E7A60698 */ swc1 $f6, 0x698($sp) /* 07A280 7F045750 E60E0008 */ swc1 $f14, 8($s0) /* 07A284 7F045754 1000000C */ b .L7F045788 /* 07A288 7F045758 C4420000 */ lwc1 $f2, ($v0) .L7F04575C: /* 07A28C 7F04575C 46008200 */ add.s $f8, $f16, $f0 /* 07A290 7F045760 C60A0008 */ lwc1 $f10, 8($s0) /* 07A294 7F045764 46024102 */ mul.s $f4, $f8, $f2 /* 07A298 7F045768 46045180 */ add.s $f6, $f10, $f4 /* 07A29C 7F04576C E6060008 */ swc1 $f6, 8($s0) /* 07A2A0 7F045770 C60A0008 */ lwc1 $f10, 8($s0) /* 07A2A4 7F045774 C4420000 */ lwc1 $f2, ($v0) /* 07A2A8 7F045778 C7A80698 */ lwc1 $f8, 0x698($sp) /* 07A2AC 7F04577C 46025102 */ mul.s $f4, $f10, $f2 /* 07A2B0 7F045780 46044180 */ add.s $f6, $f8, $f4 /* 07A2B4 7F045784 E7A60698 */ swc1 $f6, 0x698($sp) .L7F045788: /* 07A2B8 7F045788 C6080010 */ lwc1 $f8, 0x10($s0) /* 07A2BC 7F04578C C60A0004 */ lwc1 $f10, 4($s0) /* 07A2C0 7F045790 26240018 */ addiu $a0, $s1, 0x18 /* 07A2C4 7F045794 46024102 */ mul.s $f4, $f8, $f2 /* 07A2C8 7F045798 C6080018 */ lwc1 $f8, 0x18($s0) /* 07A2CC 7F04579C 26050020 */ addiu $a1, $s0, 0x20 /* 07A2D0 7F0457A0 46045180 */ add.s $f6, $f10, $f4 /* 07A2D4 7F0457A4 E6060004 */ swc1 $f6, 4($s0) /* 07A2D8 7F0457A8 C44A0000 */ lwc1 $f10, ($v0) /* 07A2DC 7F0457AC C606000C */ lwc1 $f6, 0xc($s0) /* 07A2E0 7F0457B0 460A4102 */ mul.s $f4, $f8, $f10 /* 07A2E4 7F0457B4 46043200 */ add.s $f8, $f6, $f4 /* 07A2E8 7F0457B8 C6060004 */ lwc1 $f6, 4($s0) /* 07A2EC 7F0457BC E608000C */ swc1 $f8, 0xc($s0) /* 07A2F0 7F0457C0 C4420000 */ lwc1 $f2, ($v0) /* 07A2F4 7F0457C4 C7AA0694 */ lwc1 $f10, 0x694($sp) /* 07A2F8 7F0457C8 8CE60000 */ lw $a2, ($a3) /* 07A2FC 7F0457CC 46023102 */ mul.s $f4, $f6, $f2 /* 07A300 7F0457D0 C7A6069C */ lwc1 $f6, 0x69c($sp) /* 07A304 7F0457D4 46045200 */ add.s $f8, $f10, $f4 /* 07A308 7F0457D8 E7A80694 */ swc1 $f8, 0x694($sp) /* 07A30C 7F0457DC C60A000C */ lwc1 $f10, 0xc($s0) /* 07A310 7F0457E0 AFA5006C */ sw $a1, 0x6c($sp) /* 07A314 7F0457E4 AFA40070 */ sw $a0, 0x70($sp) /* 07A318 7F0457E8 46025102 */ mul.s $f4, $f10, $f2 /* 07A31C 7F0457EC 46043200 */ add.s $f8, $f6, $f4 /* 07A320 7F0457F0 0FC15F7E */ jal sub_GAME_7F057DF8 /* 07A324 7F0457F4 E7A8069C */ swc1 $f8, 0x69c($sp) /* 07A328 7F0457F8 92390003 */ lbu $t9, 3($s1) /* 07A32C 7F0457FC 24010008 */ li $at, 8 /* 07A330 7F045800 57210013 */ bnel $t9, $at, .L7F045850 /* 07A334 7F045804 8E040088 */ lw $a0, 0x88($s0) /* 07A338 7F045808 82220080 */ lb $v0, 0x80($s1) /* 07A33C 7F04580C 2401001D */ li $at, 29 /* 07A340 7F045810 1041000D */ beq $v0, $at, .L7F045848 /* 07A344 7F045814 2401001B */ li $at, 27 /* 07A348 7F045818 1041000B */ beq $v0, $at, .L7F045848 /* 07A34C 7F04581C 2401001C */ li $at, 28 /* 07A350 7F045820 10410009 */ beq $v0, $at, .L7F045848 /* 07A354 7F045824 24010021 */ li $at, 33 /* 07A358 7F045828 10410007 */ beq $v0, $at, .L7F045848 /* 07A35C 7F04582C 2401002F */ li $at, 47 /* 07A360 7F045830 10410005 */ beq $v0, $at, .L7F045848 /* 07A364 7F045834 24010030 */ li $at, 48 /* 07A368 7F045838 10410003 */ beq $v0, $at, .L7F045848 /* 07A36C 7F04583C 24010022 */ li $at, 34 /* 07A370 7F045840 54410003 */ bnel $v0, $at, .L7F045850 /* 07A374 7F045844 8E040088 */ lw $a0, 0x88($s0) .L7F045848: /* 07A378 7F045848 24120001 */ li $s2, 1 /* 07A37C 7F04584C 8E040088 */ lw $a0, 0x88($s0) .L7F045850: /* 07A380 7F045850 50800004 */ beql $a0, $zero, .L7F045864 /* 07A384 7F045854 02202025 */ move $a0, $s1 /* 07A388 7F045858 0FC0F416 */ jal sub_GAME_7F03D058 /* 07A38C 7F04585C 00002825 */ move $a1, $zero /* 07A390 7F045860 02202025 */ move $a0, $s1 .L7F045864: /* 07A394 7F045864 27A50694 */ addiu $a1, $sp, 0x694 /* 07A398 7F045868 27A60614 */ addiu $a2, $sp, 0x614 /* 07A39C 7F04586C 27A70620 */ addiu $a3, $sp, 0x620 /* 07A3A0 7F045870 AFB20010 */ sw $s2, 0x10($sp) /* 07A3A4 7F045874 0FC10BAD */ jal sub_GAME_7F042EB4 /* 07A3A8 7F045878 AFA00014 */ sw $zero, 0x14($sp) /* 07A3AC 7F04587C AFA20664 */ sw $v0, 0x664($sp) /* 07A3B0 7F045880 8E040088 */ lw $a0, 0x88($s0) /* 07A3B4 7F045884 50800004 */ beql $a0, $zero, .L7F045898 /* 07A3B8 7F045888 8FAC0664 */ lw $t4, 0x664($sp) /* 07A3BC 7F04588C 0FC0F416 */ jal sub_GAME_7F03D058 /* 07A3C0 7F045890 24050001 */ li $a1, 1 /* 07A3C4 7F045894 8FAC0664 */ lw $t4, 0x664($sp) .L7F045898: /* 07A3C8 7F045898 240A0001 */ li $t2, 1 /* 07A3CC 7F04589C 24010002 */ li $at, 2 /* 07A3D0 7F0458A0 15810042 */ bne $t4, $at, .L7F0459AC /* 07A3D4 7F0458A4 AFAA0690 */ sw $t2, 0x690($sp) /* 07A3D8 7F0458A8 3C038003 */ lui $v1, %hi(D_80030B0C) /* 07A3DC 7F0458AC 8C630B0C */ lw $v1, %lo(D_80030B0C)($v1) /* 07A3E0 7F0458B0 10600007 */ beqz $v1, .L7F0458D0 /* 07A3E4 7F0458B4 00000000 */ nop /* 07A3E8 7F0458B8 90620000 */ lbu $v0, ($v1) /* 07A3EC 7F0458BC 24010003 */ li $at, 3 /* 07A3F0 7F0458C0 1041003A */ beq $v0, $at, .L7F0459AC /* 07A3F4 7F0458C4 24010006 */ li $at, 6 /* 07A3F8 7F0458C8 50410039 */ beql $v0, $at, .L7F0459B0 /* 07A3FC 7F0458CC 8FAC0604 */ lw $t4, 0x604($sp) .L7F0458D0: /* 07A400 7F0458D0 10600007 */ beqz $v1, .L7F0458F0 /* 07A404 7F0458D4 00002025 */ move $a0, $zero /* 07A408 7F0458D8 8C620004 */ lw $v0, 4($v1) /* 07A40C 7F0458DC 8C4E0064 */ lw $t6, 0x64($v0) /* 07A410 7F0458E0 31CD0080 */ andi $t5, $t6, 0x80 /* 07A414 7F0458E4 11A00002 */ beqz $t5, .L7F0458F0 /* 07A418 7F0458E8 00000000 */ nop /* 07A41C 7F0458EC 24040001 */ li $a0, 1 .L7F0458F0: /* 07A420 7F0458F0 5480002F */ bnezl $a0, .L7F0459B0 /* 07A424 7F0458F4 8FAC0604 */ lw $t4, 0x604($sp) /* 07A428 7F0458F8 0FC0FEDC */ jal projectileFree /* 07A42C 7F0458FC 02002025 */ move $a0, $s0 /* 07A430 7F045900 8E2F0064 */ lw $t7, 0x64($s1) /* 07A434 7F045904 2401FF7F */ li $at, -129 /* 07A438 7F045908 AE20006C */ sw $zero, 0x6c($s1) /* 07A43C 7F04590C 01E1C024 */ and $t8, $t7, $at /* 07A440 7F045910 AE380064 */ sw $t8, 0x64($s1) /* 07A444 7F045914 92620001 */ lbu $v0, 1($s3) /* 07A448 7F045918 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 07A44C 7F04591C 240500F1 */ li $a1, 241 /* 07A450 7F045920 30480008 */ andi $t0, $v0, 8 /* 07A454 7F045924 11000003 */ beqz $t0, .L7F045934 /* 07A458 7F045928 00003025 */ move $a2, $zero /* 07A45C 7F04592C 34490010 */ ori $t1, $v0, 0x10 /* 07A460 7F045930 A2690001 */ sb $t1, 1($s3) .L7F045934: /* 07A464 7F045934 0C002382 */ jal sndPlaySfx /* 07A468 7F045938 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07A46C 7F04593C 00402025 */ move $a0, $v0 /* 07A470 7F045940 0FC14E84 */ jal chrobjSndCreatePostEventDefault /* 07A474 7F045944 26650008 */ addiu $a1, $s3, 8 /* 07A478 7F045948 8E6B0014 */ lw $t3, 0x14($s3) /* 07A47C 7F04594C 82240080 */ lb $a0, 0x80($s1) /* 07A480 7F045950 0FC15DFA */ jal objectivestatusCheckDeposit /* 07A484 7F045954 91650003 */ lbu $a1, 3($t3) /* 07A488 7F045958 02202025 */ move $a0, $s1 /* 07A48C 7F04595C 27A50614 */ addiu $a1, $sp, 0x614 /* 07A490 7F045960 8E660014 */ lw $a2, 0x14($s3) /* 07A494 7F045964 0FC10E6E */ jal sub_GAME_7F0439B8 /* 07A498 7F045968 27A70620 */ addiu $a3, $sp, 0x620 /* 07A49C 7F04596C 3C058003 */ lui $a1, %hi(D_80030B0C) /* 07A4A0 7F045970 8CA50B0C */ lw $a1, %lo(D_80030B0C)($a1) /* 07A4A4 7F045974 02602025 */ move $a0, $s3 /* 07A4A8 7F045978 3C068007 */ lui $a2, %hi(g_CurrentProjectileModel) /* 07A4AC 7F04597C 10A0000B */ beqz $a1, .L7F0459AC /* 07A4B0 7F045980 3C078007 */ lui $a3, %hi(dword_CODE_bss_80075B74) /* 07A4B4 7F045984 8E720014 */ lw $s2, 0x14($s3) /* 07A4B8 7F045988 8CC65B70 */ lw $a2, %lo(g_CurrentProjectileModel)($a2) /* 07A4BC 7F04598C 0FC10E9B */ jal objEmbed /* 07A4C0 7F045990 8CE75B74 */ lw $a3, %lo(dword_CODE_bss_80075B74)($a3) /* 07A4C4 7F045994 10400005 */ beqz $v0, .L7F0459AC /* 07A4C8 7F045998 24190005 */ li $t9, 5 /* 07A4CC 7F04599C AE720014 */ sw $s2, 0x14($s3) /* 07A4D0 7F0459A0 240A0001 */ li $t2, 1 /* 07A4D4 7F0459A4 AFB90680 */ sw $t9, 0x680($sp) /* 07A4D8 7F0459A8 AFAA0604 */ sw $t2, 0x604($sp) .L7F0459AC: /* 07A4DC 7F0459AC 8FAC0604 */ lw $t4, 0x604($sp) .L7F0459B0: /* 07A4E0 7F0459B0 158000EC */ bnez $t4, .L7F045D64 /* 07A4E4 7F0459B4 3C128003 */ lui $s2, %hi(D_80030B0C) /* 07A4E8 7F0459B8 8E520B0C */ lw $s2, %lo(D_80030B0C)($s2) /* 07A4EC 7F0459BC 524000EA */ beql $s2, $zero, .L7F045D68 /* 07A4F0 7F0459C0 8FAC0604 */ lw $t4, 0x604($sp) /* 07A4F4 7F0459C4 922E0003 */ lbu $t6, 3($s1) /* 07A4F8 7F0459C8 24010008 */ li $at, 8 /* 07A4FC 7F0459CC 55C100E6 */ bnel $t6, $at, .L7F045D68 /* 07A500 7F0459D0 8FAC0604 */ lw $t4, 0x604($sp) /* 07A504 7F0459D4 82220080 */ lb $v0, 0x80($s1) /* 07A508 7F0459D8 24010003 */ li $at, 3 /* 07A50C 7F0459DC 544100C3 */ bnel $v0, $at, .L7F045CEC /* 07A510 7F0459E0 24010056 */ li $at, 86 /* 07A514 7F0459E4 92420000 */ lbu $v0, ($s2) /* 07A518 7F0459E8 24010003 */ li $at, 3 /* 07A51C 7F0459EC 1041000D */ beq $v0, $at, .L7F045A24 /* 07A520 7F0459F0 24010006 */ li $at, 6 /* 07A524 7F0459F4 544100DC */ bnel $v0, $at, .L7F045D68 /* 07A528 7F0459F8 8FAC0604 */ lw $t4, 0x604($sp) /* 07A52C 7F0459FC 8E4D0004 */ lw $t5, 4($s2) /* 07A530 7F045A00 51A000D9 */ beql $t5, $zero, .L7F045D68 /* 07A534 7F045A04 8FAC0604 */ lw $t4, 0x604($sp) /* 07A538 7F045A08 0FC26C57 */ jal getPlayerPointerIndex /* 07A53C 7F045A0C 02402025 */ move $a0, $s2 /* 07A540 7F045A10 0FC26C54 */ jal get_cur_playernum /* 07A544 7F045A14 00409025 */ move $s2, $v0 /* 07A548 7F045A18 105200D2 */ beq $v0, $s2, .L7F045D64 /* 07A54C 7F045A1C 3C128003 */ lui $s2, %hi(D_80030B0C) /* 07A550 7F045A20 8E520B0C */ lw $s2, %lo(D_80030B0C)($s2) .L7F045A24: /* 07A554 7F045A24 8E22006C */ lw $v0, 0x6c($s1) /* 07A558 7F045A28 8E440004 */ lw $a0, 4($s2) /* 07A55C 7F045A2C 8C4F0000 */ lw $t7, ($v0) /* 07A560 7F045A30 31F80001 */ andi $t8, $t7, 1 /* 07A564 7F045A34 530000CC */ beql $t8, $zero, .L7F045D68 /* 07A568 7F045A38 8FAC0604 */ lw $t4, 0x604($sp) /* 07A56C 7F045A3C 8C480090 */ lw $t0, 0x90($v0) /* 07A570 7F045A40 5D0000C9 */ bgtzl $t0, .L7F045D68 /* 07A574 7F045A44 8FAC0604 */ lw $t4, 0x604($sp) /* 07A578 7F045A48 8E290064 */ lw $t1, 0x64($s1) /* 07A57C 7F045A4C 3C068007 */ lui $a2, %hi(flt_CODE_bss_80075B78) /* 07A580 7F045A50 24C65B78 */ addiu $a2, %lo(flt_CODE_bss_80075B78) # addiu $a2, $a2, 0x5b78 /* 07A584 7F045A54 312B0020 */ andi $t3, $t1, 0x20 /* 07A588 7F045A58 116000C2 */ beqz $t3, .L7F045D64 /* 07A58C 7F045A5C 3C058003 */ lui $a1, %hi(bodypartshot) /* 07A590 7F045A60 82270080 */ lb $a3, 0x80($s1) /* 07A594 7F045A64 24190001 */ li $t9, 1 /* 07A598 7F045A68 AFB90010 */ sw $t9, 0x10($sp) /* 07A59C 7F045A6C 0FC09C9F */ jal handles_shot_actors /* 07A5A0 7F045A70 8CA50B10 */ lw $a1, %lo(bodypartshot)($a1) /* 07A5A4 7F045A74 104000BB */ beqz $v0, .L7F045D64 /* 07A5A8 7F045A78 240A0001 */ li $t2, 1 /* 07A5AC 7F045A7C AFAA0604 */ sw $t2, 0x604($sp) /* 07A5B0 7F045A80 C610008C */ lwc1 $f16, 0x8c($s0) /* 07A5B4 7F045A84 C7AA0620 */ lwc1 $f10, 0x620($sp) /* 07A5B8 7F045A88 4610B03C */ c.lt.s $f22, $f16 /* 07A5BC 7F045A8C 00000000 */ nop /* 07A5C0 7F045A90 4502001D */ bc1fl .L7F045B08 /* 07A5C4 7F045A94 8E0C0000 */ lw $t4, ($s0) /* 07A5C8 7F045A98 C6020004 */ lwc1 $f2, 4($s0) /* 07A5CC 7F045A9C C60C0008 */ lwc1 $f12, 8($s0) /* 07A5D0 7F045AA0 C7A40624 */ lwc1 $f4, 0x624($sp) /* 07A5D4 7F045AA4 460A1182 */ mul.s $f6, $f2, $f10 /* 07A5D8 7F045AA8 C600000C */ lwc1 $f0, 0xc($s0) /* 07A5DC 7F045AAC 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07A5E0 7F045AB0 46046202 */ mul.s $f8, $f12, $f4 /* 07A5E4 7F045AB4 46083100 */ add.s $f4, $f6, $f8 /* 07A5E8 7F045AB8 C7A60628 */ lwc1 $f6, 0x628($sp) /* 07A5EC 7F045ABC 46003202 */ mul.s $f8, $f6, $f0 /* 07A5F0 7F045AC0 44813000 */ mtc1 $at, $f6 /* 07A5F4 7F045AC4 46044380 */ add.s $f14, $f8, $f4 /* 07A5F8 7F045AC8 46068200 */ add.s $f8, $f16, $f6 /* 07A5FC 7F045ACC 46004107 */ neg.s $f4, $f8 /* 07A600 7F045AD0 46047382 */ mul.s $f14, $f14, $f4 /* 07A604 7F045AD4 00000000 */ nop /* 07A608 7F045AD8 460A7182 */ mul.s $f6, $f14, $f10 /* 07A60C 7F045ADC 46061200 */ add.s $f8, $f2, $f6 /* 07A610 7F045AE0 E6080004 */ swc1 $f8, 4($s0) /* 07A614 7F045AE4 C7A40624 */ lwc1 $f4, 0x624($sp) /* 07A618 7F045AE8 46047282 */ mul.s $f10, $f14, $f4 /* 07A61C 7F045AEC 460A6180 */ add.s $f6, $f12, $f10 /* 07A620 7F045AF0 E6060008 */ swc1 $f6, 8($s0) /* 07A624 7F045AF4 C7A80628 */ lwc1 $f8, 0x628($sp) /* 07A628 7F045AF8 46087102 */ mul.s $f4, $f14, $f8 /* 07A62C 7F045AFC 46040280 */ add.s $f10, $f0, $f4 /* 07A630 7F045B00 E60A000C */ swc1 $f10, 0xc($s0) /* 07A634 7F045B04 8E0C0000 */ lw $t4, ($s0) .L7F045B08: /* 07A638 7F045B08 318E0200 */ andi $t6, $t4, 0x200 /* 07A63C 7F045B0C 55C00004 */ bnezl $t6, .L7F045B20 /* 07A640 7F045B10 8E0D0090 */ lw $t5, 0x90($s0) /* 07A644 7F045B14 0FC15EB0 */ jal mtxLoadRandomRotation /* 07A648 7F045B18 8FA4006C */ lw $a0, 0x6c($sp) /* 07A64C 7F045B1C 8E0D0090 */ lw $t5, 0x90($s0) .L7F045B20: /* 07A650 7F045B20 3C058003 */ lui $a1, %hi(D_80030B0C) /* 07A654 7F045B24 2406FFFF */ li $a2, -1 /* 07A658 7F045B28 25AF0001 */ addiu $t7, $t5, 1 /* 07A65C 7F045B2C AE0F0090 */ sw $t7, 0x90($s0) /* 07A660 7F045B30 8CA50B0C */ lw $a1, %lo(D_80030B0C)($a1) /* 07A664 7F045B34 0FC19107 */ jal recall_joy2_hits_edit_detail_edit_flag /* 07A668 7F045B38 82240080 */ lb $a0, 0x80($s1) /* 07A66C 7F045B3C 3C188003 */ lui $t8, %hi(D_80030B0C) /* 07A670 7F045B40 8F180B0C */ lw $t8, %lo(D_80030B0C)($t8) /* 07A674 7F045B44 3C028003 */ lui $v0, %hi(bodypartshot) /* 07A678 7F045B48 93080001 */ lbu $t0, 1($t8) /* 07A67C 7F045B4C 31090002 */ andi $t1, $t0, 2 /* 07A680 7F045B50 51200085 */ beql $t1, $zero, .L7F045D68 /* 07A684 7F045B54 8FAC0604 */ lw $t4, 0x604($sp) /* 07A688 7F045B58 8C420B10 */ lw $v0, %lo(bodypartshot)($v0) /* 07A68C 7F045B5C 24010064 */ li $at, 100 /* 07A690 7F045B60 10410080 */ beq $v0, $at, .L7F045D64 /* 07A694 7F045B64 2401006E */ li $at, 110 /* 07A698 7F045B68 1041007E */ beq $v0, $at, .L7F045D64 /* 07A69C 7F045B6C 3C048007 */ lui $a0, %hi(g_CurrentProjectileModel) /* 07A6A0 7F045B70 3C058007 */ lui $a1, %hi(dword_CODE_bss_80075B74) /* 07A6A4 7F045B74 8CA55B74 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) /* 07A6A8 7F045B78 8C845B70 */ lw $a0, %lo(g_CurrentProjectileModel)($a0) /* 07A6AC 7F045B7C 0FC1B198 */ jal modelFindNodeMtx /* 07A6B0 7F045B80 00003025 */ move $a2, $zero /* 07A6B4 7F045B84 C7A60614 */ lwc1 $f6, 0x614($sp) /* 07A6B8 7F045B88 C7A80618 */ lwc1 $f8, 0x618($sp) /* 07A6BC 7F045B8C C7A4061C */ lwc1 $f4, 0x61c($sp) /* 07A6C0 7F045B90 00409025 */ move $s2, $v0 /* 07A6C4 7F045B94 E7A605CC */ swc1 $f6, 0x5cc($sp) /* 07A6C8 7F045B98 E7A805D0 */ swc1 $f8, 0x5d0($sp) /* 07A6CC 7F045B9C 0FC1E0F1 */ jal camGetWorldToScreenMtxf /* 07A6D0 7F045BA0 E7A405D4 */ swc1 $f4, 0x5d4($sp) /* 07A6D4 7F045BA4 00402025 */ move $a0, $v0 /* 07A6D8 7F045BA8 0FC1611D */ jal mtx4TransformVecInPlace /* 07A6DC 7F045BAC 27A505CC */ addiu $a1, $sp, 0x5cc /* 07A6E0 7F045BB0 C7AA05CC */ lwc1 $f10, 0x5cc($sp) /* 07A6E4 7F045BB4 C6460030 */ lwc1 $f6, 0x30($s2) /* 07A6E8 7F045BB8 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 07A6EC 7F045BBC 44810000 */ mtc1 $at, $f0 /* 07A6F0 7F045BC0 46065201 */ sub.s $f8, $f10, $f6 /* 07A6F4 7F045BC4 3C048007 */ lui $a0, %hi(g_CurrentProjectileModel) /* 07A6F8 7F045BC8 3C058007 */ lui $a1, %hi(dword_CODE_bss_80075B74) /* 07A6FC 7F045BCC 8CA55B74 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) /* 07A700 7F045BD0 46004102 */ mul.s $f4, $f8, $f0 /* 07A704 7F045BD4 C7A805D0 */ lwc1 $f8, 0x5d0($sp) /* 07A708 7F045BD8 8C845B70 */ lw $a0, %lo(g_CurrentProjectileModel)($a0) /* 07A70C 7F045BDC 46045180 */ add.s $f6, $f10, $f4 /* 07A710 7F045BE0 E7A605CC */ swc1 $f6, 0x5cc($sp) /* 07A714 7F045BE4 C64A0034 */ lwc1 $f10, 0x34($s2) /* 07A718 7F045BE8 460A4101 */ sub.s $f4, $f8, $f10 /* 07A71C 7F045BEC 46002182 */ mul.s $f6, $f4, $f0 /* 07A720 7F045BF0 C7A405D4 */ lwc1 $f4, 0x5d4($sp) /* 07A724 7F045BF4 46064280 */ add.s $f10, $f8, $f6 /* 07A728 7F045BF8 E7AA05D0 */ swc1 $f10, 0x5d0($sp) /* 07A72C 7F045BFC C6480038 */ lwc1 $f8, 0x38($s2) /* 07A730 7F045C00 46082181 */ sub.s $f6, $f4, $f8 /* 07A734 7F045C04 46003282 */ mul.s $f10, $f6, $f0 /* 07A738 7F045C08 460A2200 */ add.s $f8, $f4, $f10 /* 07A73C 7F045C0C 0FC1B3A4 */ jal getjointsize /* 07A740 7F045C10 E7A805D4 */ swc1 $f8, 0x5d4($sp) /* 07A744 7F045C14 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 07A748 7F045C18 44813000 */ mtc1 $at, $f6 /* 07A74C 7F045C1C 3C018007 */ lui $at, %hi(flt_CODE_bss_80075B88) /* 07A750 7F045C20 C42A5B88 */ lwc1 $f10, %lo(flt_CODE_bss_80075B88)($at) /* 07A754 7F045C24 46060102 */ mul.s $f4, $f0, $f6 /* 07A758 7F045C28 C7A605CC */ lwc1 $f6, 0x5cc($sp) /* 07A75C 7F045C2C 3C048007 */ lui $a0, %hi(g_CurrentProjectileModel) /* 07A760 7F045C30 3C058007 */ lui $a1, %hi(dword_CODE_bss_80075B74) /* 07A764 7F045C34 8CA55B74 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) /* 07A768 7F045C38 8C845B70 */ lw $a0, %lo(g_CurrentProjectileModel)($a0) /* 07A76C 7F045C3C 460A2202 */ mul.s $f8, $f4, $f10 /* 07A770 7F045C40 46083101 */ sub.s $f4, $f6, $f8 /* 07A774 7F045C44 0FC1B3A4 */ jal getjointsize /* 07A778 7F045C48 E7A405CC */ swc1 $f4, 0x5cc($sp) /* 07A77C 7F045C4C 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 07A780 7F045C50 44815000 */ mtc1 $at, $f10 /* 07A784 7F045C54 3C018007 */ lui $at, %hi(flt_CODE_bss_80075B78) /* 07A788 7F045C58 C4285B8C */ lwc1 $f8, %lo(flt_CODE_bss_80075B78+0x14)($at) /* 07A78C 7F045C5C 460A0182 */ mul.s $f6, $f0, $f10 /* 07A790 7F045C60 C7AA05D0 */ lwc1 $f10, 0x5d0($sp) /* 07A794 7F045C64 3C048007 */ lui $a0, %hi(g_CurrentProjectileModel) /* 07A798 7F045C68 3C058007 */ lui $a1, %hi(dword_CODE_bss_80075B74) /* 07A79C 7F045C6C 8CA55B74 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) /* 07A7A0 7F045C70 8C845B70 */ lw $a0, %lo(g_CurrentProjectileModel)($a0) /* 07A7A4 7F045C74 46083102 */ mul.s $f4, $f6, $f8 /* 07A7A8 7F045C78 46045181 */ sub.s $f6, $f10, $f4 /* 07A7AC 7F045C7C 0FC1B3A4 */ jal getjointsize /* 07A7B0 7F045C80 E7A605D0 */ swc1 $f6, 0x5d0($sp) /* 07A7B4 7F045C84 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 07A7B8 7F045C88 44814000 */ mtc1 $at, $f8 /* 07A7BC 7F045C8C 3C018007 */ lui $at, %hi(flt_CODE_bss_80075B88) /* 07A7C0 7F045C90 C4245B90 */ lwc1 $f4, %lo(flt_CODE_bss_80075B88+0x8)($at) /* 07A7C4 7F045C94 46080282 */ mul.s $f10, $f0, $f8 /* 07A7C8 7F045C98 C7A805D4 */ lwc1 $f8, 0x5d4($sp) /* 07A7CC 7F045C9C 02402025 */ move $a0, $s2 /* 07A7D0 7F045CA0 27A5058C */ addiu $a1, $sp, 0x58c /* 07A7D4 7F045CA4 46045182 */ mul.s $f6, $f10, $f4 /* 07A7D8 7F045CA8 46064281 */ sub.s $f10, $f8, $f6 /* 07A7DC 7F045CAC 0FC16799 */ jal matrix_4x4_7F059E64 /* 07A7E0 7F045CB0 E7AA05D4 */ swc1 $f10, 0x5d4($sp) /* 07A7E4 7F045CB4 27A4058C */ addiu $a0, $sp, 0x58c /* 07A7E8 7F045CB8 0FC1611D */ jal mtx4TransformVecInPlace /* 07A7EC 7F045CBC 27A505CC */ addiu $a1, $sp, 0x5cc /* 07A7F0 7F045CC0 3C048007 */ lui $a0, %hi(g_CurrentProjectileModel) /* 07A7F4 7F045CC4 3C058003 */ lui $a1, %hi(bodypartshot) /* 07A7F8 7F045CC8 3C068007 */ lui $a2, %hi(dword_CODE_bss_80075B74) /* 07A7FC 7F045CCC 8CC65B74 */ lw $a2, %lo(dword_CODE_bss_80075B74)($a2) /* 07A800 7F045CD0 8CA50B10 */ lw $a1, %lo(bodypartshot)($a1) /* 07A804 7F045CD4 8C845B70 */ lw $a0, %lo(g_CurrentProjectileModel)($a0) /* 07A808 7F045CD8 0FC08877 */ jal sub_GAME_7F0221DC /* 07A80C 7F045CDC 27A705CC */ addiu $a3, $sp, 0x5cc /* 07A810 7F045CE0 10000021 */ b .L7F045D68 /* 07A814 7F045CE4 8FAC0604 */ lw $t4, 0x604($sp) /* 07A818 7F045CE8 24010056 */ li $at, 86 .L7F045CEC: /* 07A81C 7F045CEC 5441001E */ bnel $v0, $at, .L7F045D68 /* 07A820 7F045CF0 8FAC0604 */ lw $t4, 0x604($sp) /* 07A824 7F045CF4 92420000 */ lbu $v0, ($s2) /* 07A828 7F045CF8 240B0001 */ li $t3, 1 /* 07A82C 7F045CFC 24010003 */ li $at, 3 /* 07A830 7F045D00 14410008 */ bne $v0, $at, .L7F045D24 /* 07A834 7F045D04 AFAB0604 */ sw $t3, 0x604($sp) /* 07A838 7F045D08 8E440004 */ lw $a0, 4($s2) /* 07A83C 7F045D0C 26250058 */ addiu $a1, $s1, 0x58 /* 07A840 7F045D10 3C064000 */ lui $a2, 0x4000 /* 07A844 7F045D14 0FC09E01 */ jal chrlvExplosionDamage /* 07A848 7F045D18 24070001 */ li $a3, 1 /* 07A84C 7F045D1C 10000011 */ b .L7F045D64 /* 07A850 7F045D20 A6200082 */ sh $zero, 0x82($s1) .L7F045D24: /* 07A854 7F045D24 24010001 */ li $at, 1 /* 07A858 7F045D28 10410004 */ beq $v0, $at, .L7F045D3C /* 07A85C 7F045D2C 3C0542C8 */ lui $a1, 0x42c8 /* 07A860 7F045D30 24010004 */ li $at, 4 /* 07A864 7F045D34 5441000B */ bnel $v0, $at, .L7F045D64 /* 07A868 7F045D38 A6200082 */ sh $zero, 0x82($s1) .L7F045D3C: /* 07A86C 7F045D3C 8E220064 */ lw $v0, 0x64($s1) /* 07A870 7F045D40 3C010006 */ lui $at, 6 /* 07A874 7F045D44 8E440004 */ lw $a0, 4($s2) /* 07A878 7F045D48 0041C824 */ and $t9, $v0, $at /* 07A87C 7F045D4C 00195442 */ srl $t2, $t9, 0x11 /* 07A880 7F045D50 AFAA0010 */ sw $t2, 0x10($sp) /* 07A884 7F045D54 26260058 */ addiu $a2, $s1, 0x58 /* 07A888 7F045D58 0FC13842 */ jal maybe_detonate_object /* 07A88C 7F045D5C 24070056 */ li $a3, 86 /* 07A890 7F045D60 A6200082 */ sh $zero, 0x82($s1) .L7F045D64: /* 07A894 7F045D64 8FAC0604 */ lw $t4, 0x604($sp) .L7F045D68: /* 07A898 7F045D68 5580010B */ bnezl $t4, .L7F046198 /* 07A89C 7F045D6C 8E2A0064 */ lw $t2, 0x64($s1) /* 07A8A0 7F045D70 8FAE0664 */ lw $t6, 0x664($sp) /* 07A8A4 7F045D74 55C00031 */ bnezl $t6, .L7F045E3C /* 07A8A8 7F045D78 8E0F0000 */ lw $t7, ($s0) /* 07A8AC 7F045D7C C610008C */ lwc1 $f16, 0x8c($s0) /* 07A8B0 7F045D80 C7A40620 */ lwc1 $f4, 0x620($sp) /* 07A8B4 7F045D84 4610B03C */ c.lt.s $f22, $f16 /* 07A8B8 7F045D88 00000000 */ nop /* 07A8BC 7F045D8C 4502002B */ bc1fl .L7F045E3C /* 07A8C0 7F045D90 8E0F0000 */ lw $t7, ($s0) /* 07A8C4 7F045D94 C6020004 */ lwc1 $f2, 4($s0) /* 07A8C8 7F045D98 C60C0008 */ lwc1 $f12, 8($s0) /* 07A8CC 7F045D9C C7A60624 */ lwc1 $f6, 0x624($sp) /* 07A8D0 7F045DA0 46041202 */ mul.s $f8, $f2, $f4 /* 07A8D4 7F045DA4 C600000C */ lwc1 $f0, 0xc($s0) /* 07A8D8 7F045DA8 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07A8DC 7F045DAC 46066282 */ mul.s $f10, $f12, $f6 /* 07A8E0 7F045DB0 4616603E */ c.le.s $f12, $f22 /* 07A8E4 7F045DB4 460A4180 */ add.s $f6, $f8, $f10 /* 07A8E8 7F045DB8 C7A80628 */ lwc1 $f8, 0x628($sp) /* 07A8EC 7F045DBC 46004282 */ mul.s $f10, $f8, $f0 /* 07A8F0 7F045DC0 44814000 */ mtc1 $at, $f8 /* 07A8F4 7F045DC4 46065380 */ add.s $f14, $f10, $f6 /* 07A8F8 7F045DC8 46088280 */ add.s $f10, $f16, $f8 /* 07A8FC 7F045DCC 46005187 */ neg.s $f6, $f10 /* 07A900 7F045DD0 46067382 */ mul.s $f14, $f14, $f6 /* 07A904 7F045DD4 00000000 */ nop /* 07A908 7F045DD8 46047202 */ mul.s $f8, $f14, $f4 /* 07A90C 7F045DDC 46081280 */ add.s $f10, $f2, $f8 /* 07A910 7F045DE0 E60A0004 */ swc1 $f10, 4($s0) /* 07A914 7F045DE4 C7A60624 */ lwc1 $f6, 0x624($sp) /* 07A918 7F045DE8 46067102 */ mul.s $f4, $f14, $f6 /* 07A91C 7F045DEC 46046200 */ add.s $f8, $f12, $f4 /* 07A920 7F045DF0 E6080008 */ swc1 $f8, 8($s0) /* 07A924 7F045DF4 C7AA0628 */ lwc1 $f10, 0x628($sp) /* 07A928 7F045DF8 460A7182 */ mul.s $f6, $f14, $f10 /* 07A92C 7F045DFC 46060100 */ add.s $f4, $f0, $f6 /* 07A930 7F045E00 4500000D */ bc1f .L7F045E38 /* 07A934 7F045E04 E604000C */ swc1 $f4, 0xc($s0) /* 07A938 7F045E08 C6080008 */ lwc1 $f8, 8($s0) /* 07A93C 7F045E0C 240D0001 */ li $t5, 1 /* 07A940 7F045E10 4608B03E */ c.le.s $f22, $f8 /* 07A944 7F045E14 00000000 */ nop /* 07A948 7F045E18 45030007 */ bc1tl .L7F045E38 /* 07A94C 7F045E1C AFAD060C */ sw $t5, 0x60c($sp) /* 07A950 7F045E20 C62A005C */ lwc1 $f10, 0x5c($s1) /* 07A954 7F045E24 460AA03E */ c.le.s $f20, $f10 /* 07A958 7F045E28 00000000 */ nop /* 07A95C 7F045E2C 45020003 */ bc1fl .L7F045E3C /* 07A960 7F045E30 8E0F0000 */ lw $t7, ($s0) /* 07A964 7F045E34 AFAD060C */ sw $t5, 0x60c($sp) .L7F045E38: /* 07A968 7F045E38 8E0F0000 */ lw $t7, ($s0) .L7F045E3C: /* 07A96C 7F045E3C C7B4063C */ lwc1 $f20, 0x63c($sp) /* 07A970 7F045E40 31F80008 */ andi $t8, $t7, 8 /* 07A974 7F045E44 17000014 */ bnez $t8, .L7F045E98 /* 07A978 7F045E48 00000000 */ nop /* 07A97C 7F045E4C 8E640014 */ lw $a0, 0x14($s3) /* 07A980 7F045E50 8E650008 */ lw $a1, 8($s3) /* 07A984 7F045E54 0FC2CA5C */ jal stanGetPositionYValue /* 07A988 7F045E58 8E660010 */ lw $a2, 0x10($s3) /* 07A98C 7F045E5C 46000506 */ mov.s $f20, $f0 /* 07A990 7F045E60 8FA40640 */ lw $a0, 0x640($sp) /* 07A994 7F045E64 0FC0FA6F */ jal chrpropSumMatrixPosY /* 07A998 7F045E68 8FA50070 */ lw $a1, 0x70($sp) /* 07A99C 7F045E6C 4600A101 */ sub.s $f4, $f20, $f0 /* 07A9A0 7F045E70 E7A00638 */ swc1 $f0, 0x638($sp) /* 07A9A4 7F045E74 C666000C */ lwc1 $f6, 0xc($s3) /* 07A9A8 7F045E78 00004025 */ move $t0, $zero /* 07A9AC 7F045E7C 4604303C */ c.lt.s $f6, $f4 /* 07A9B0 7F045E80 00000000 */ nop /* 07A9B4 7F045E84 45000002 */ bc1f .L7F045E90 /* 07A9B8 7F045E88 00000000 */ nop /* 07A9BC 7F045E8C 24080001 */ li $t0, 1 .L7F045E90: /* 07A9C0 7F045E90 10000001 */ b .L7F045E98 /* 07A9C4 7F045E94 AFA80610 */ sw $t0, 0x610($sp) .L7F045E98: /* 07A9C8 7F045E98 8FA90610 */ lw $t1, 0x610($sp) /* 07A9CC 7F045E9C 8FAB0664 */ lw $t3, 0x664($sp) /* 07A9D0 7F045EA0 55200004 */ bnezl $t1, .L7F045EB4 /* 07A9D4 7F045EA4 8E190000 */ lw $t9, ($s0) /* 07A9D8 7F045EA8 5560000B */ bnezl $t3, .L7F045ED8 /* 07A9DC 7F045EAC 8FAD0610 */ lw $t5, 0x610($sp) /* 07A9E0 7F045EB0 8E190000 */ lw $t9, ($s0) .L7F045EB4: /* 07A9E4 7F045EB4 332A0200 */ andi $t2, $t9, 0x200 /* 07A9E8 7F045EB8 55400004 */ bnezl $t2, .L7F045ECC /* 07A9EC 7F045EBC 8E0C0090 */ lw $t4, 0x90($s0) /* 07A9F0 7F045EC0 0FC15EB0 */ jal mtxLoadRandomRotation /* 07A9F4 7F045EC4 8FA4006C */ lw $a0, 0x6c($sp) /* 07A9F8 7F045EC8 8E0C0090 */ lw $t4, 0x90($s0) .L7F045ECC: /* 07A9FC 7F045ECC 258E0001 */ addiu $t6, $t4, 1 /* 07AA00 7F045ED0 AE0E0090 */ sw $t6, 0x90($s0) /* 07AA04 7F045ED4 8FAD0610 */ lw $t5, 0x610($sp) .L7F045ED8: /* 07AA08 7F045ED8 8FAF060C */ lw $t7, 0x60c($sp) /* 07AA0C 7F045EDC 8FB80610 */ lw $t8, 0x610($sp) /* 07AA10 7F045EE0 15A00003 */ bnez $t5, .L7F045EF0 /* 07AA14 7F045EE4 00000000 */ nop /* 07AA18 7F045EE8 51E0003A */ beql $t7, $zero, .L7F045FD4 /* 07AA1C 7F045EEC 922C0003 */ lbu $t4, 3($s1) .L7F045EF0: /* 07AA20 7F045EF0 13000009 */ beqz $t8, .L7F045F18 /* 07AA24 7F045EF4 C7A40618 */ lwc1 $f4, 0x618($sp) /* 07AA28 7F045EF8 C7A80638 */ lwc1 $f8, 0x638($sp) /* 07AA2C 7F045EFC 3C014080 */ li $at, 0x40800000 # 4.000000 /* 07AA30 7F045F00 44813000 */ mtc1 $at, $f6 /* 07AA34 7F045F04 4608A281 */ sub.s $f10, $f20, $f8 /* 07AA38 7F045F08 46065000 */ add.s $f0, $f10, $f6 /* 07AA3C 7F045F0C E660000C */ swc1 $f0, 0xc($s3) /* 07AA40 7F045F10 10000008 */ b .L7F045F34 /* 07AA44 7F045F14 E620005C */ swc1 $f0, 0x5c($s1) .L7F045F18: /* 07AA48 7F045F18 C7A80638 */ lwc1 $f8, 0x638($sp) /* 07AA4C 7F045F1C 3C014080 */ li $at, 0x40800000 # 4.000000 /* 07AA50 7F045F20 44813000 */ mtc1 $at, $f6 /* 07AA54 7F045F24 46082281 */ sub.s $f10, $f4, $f8 /* 07AA58 7F045F28 46065080 */ add.s $f2, $f10, $f6 /* 07AA5C 7F045F2C E662000C */ swc1 $f2, 0xc($s3) /* 07AA60 7F045F30 E622005C */ swc1 $f2, 0x5c($s1) .L7F045F34: /* 07AA64 7F045F34 8E230064 */ lw $v1, 0x64($s1) /* 07AA68 7F045F38 02202025 */ move $a0, $s1 /* 07AA6C 7F045F3C 000343C0 */ sll $t0, $v1, 0xf /* 07AA70 7F045F40 05000002 */ bltz $t0, .L7F045F4C /* 07AA74 7F045F44 34690100 */ ori $t1, $v1, 0x100 /* 07AA78 7F045F48 AE290064 */ sw $t1, 0x64($s1) .L7F045F4C: /* 07AA7C 7F045F4C C610008C */ lwc1 $f16, 0x8c($s0) /* 07AA80 7F045F50 4610B03C */ c.lt.s $f22, $f16 /* 07AA84 7F045F54 00000000 */ nop /* 07AA88 7F045F58 4500001B */ bc1f .L7F045FC8 /* 07AA8C 7F045F5C 00000000 */ nop /* 07AA90 7F045F60 C6040008 */ lwc1 $f4, 8($s0) /* 07AA94 7F045F64 46008207 */ neg.s $f8, $f16 /* 07AA98 7F045F68 3C018005 */ lui $at, %hi(D_80052AA8) /* 07AA9C 7F045F6C 46082282 */ mul.s $f10, $f4, $f8 /* 07AAA0 7F045F70 C4202AA8 */ lwc1 $f0, %lo(D_80052AA8)($at) /* 07AAA4 7F045F74 E60A0008 */ swc1 $f10, 8($s0) /* 07AAA8 7F045F78 C6060008 */ lwc1 $f6, 8($s0) /* 07AAAC 7F045F7C 4600303C */ c.lt.s $f6, $f0 /* 07AAB0 7F045F80 00000000 */ nop /* 07AAB4 7F045F84 45020013 */ bc1fl .L7F045FD4 /* 07AAB8 7F045F88 922C0003 */ lbu $t4, 3($s1) /* 07AABC 7F045F8C 8E0B0000 */ lw $t3, ($s0) /* 07AAC0 7F045F90 02202025 */ move $a0, $s1 /* 07AAC4 7F045F94 31790002 */ andi $t9, $t3, 2 /* 07AAC8 7F045F98 13200007 */ beqz $t9, .L7F045FB8 /* 07AACC 7F045F9C 00000000 */ nop /* 07AAD0 7F045FA0 8E0A0090 */ lw $t2, 0x90($s0) /* 07AAD4 7F045FA4 24010001 */ li $at, 1 /* 07AAD8 7F045FA8 15410003 */ bne $t2, $at, .L7F045FB8 /* 07AADC 7F045FAC 00000000 */ nop /* 07AAE0 7F045FB0 10000007 */ b .L7F045FD0 /* 07AAE4 7F045FB4 E6000008 */ swc1 $f0, 8($s0) .L7F045FB8: /* 07AAE8 7F045FB8 0FC10C79 */ jal sub_GAME_7F0431E4 /* 07AAEC 7F045FBC 27A5062C */ addiu $a1, $sp, 0x62c /* 07AAF0 7F045FC0 10000004 */ b .L7F045FD4 /* 07AAF4 7F045FC4 922C0003 */ lbu $t4, 3($s1) .L7F045FC8: /* 07AAF8 7F045FC8 0FC10C79 */ jal sub_GAME_7F0431E4 /* 07AAFC 7F045FCC 27A5062C */ addiu $a1, $sp, 0x62c .L7F045FD0: /* 07AB00 7F045FD0 922C0003 */ lbu $t4, 3($s1) .L7F045FD4: /* 07AB04 7F045FD4 24010008 */ li $at, 8 /* 07AB08 7F045FD8 5581006F */ bnel $t4, $at, .L7F046198 /* 07AB0C 7F045FDC 8E2A0064 */ lw $t2, 0x64($s1) /* 07AB10 7F045FE0 82220080 */ lb $v0, 0x80($s1) /* 07AB14 7F045FE4 24010003 */ li $at, 3 /* 07AB18 7F045FE8 54410006 */ bnel $v0, $at, .L7F046004 /* 07AB1C 7F045FEC 24010056 */ li $at, 86 /* 07AB20 7F045FF0 0FC10D94 */ jal sub_GAME_7F043650 /* 07AB24 7F045FF4 02202025 */ move $a0, $s1 /* 07AB28 7F045FF8 10000042 */ b .L7F046104 /* 07AB2C 7F045FFC 8FB80664 */ lw $t8, 0x664($sp) /* 07AB30 7F046000 24010056 */ li $at, 86 .L7F046004: /* 07AB34 7F046004 1441002D */ bne $v0, $at, .L7F0460BC /* 07AB38 7F046008 8FAE0664 */ lw $t6, 0x664($sp) /* 07AB3C 7F04600C 11C00003 */ beqz $t6, .L7F04601C /* 07AB40 7F046010 8FAD0610 */ lw $t5, 0x610($sp) /* 07AB44 7F046014 51A00004 */ beql $t5, $zero, .L7F046028 /* 07AB48 7F046018 C6020004 */ lwc1 $f2, 4($s0) .L7F04601C: /* 07AB4C 7F04601C 10000038 */ b .L7F046100 /* 07AB50 7F046020 A6200082 */ sh $zero, 0x82($s1) /* 07AB54 7F046024 C6020004 */ lwc1 $f2, 4($s0) .L7F046028: /* 07AB58 7F046028 C60C0008 */ lwc1 $f12, 8($s0) /* 07AB5C 7F04602C C600000C */ lwc1 $f0, 0xc($s0) /* 07AB60 7F046030 46021102 */ mul.s $f4, $f2, $f2 /* 07AB64 7F046034 3C018005 */ lui $at, %hi(D_80052AAC) /* 07AB68 7F046038 26240058 */ addiu $a0, $s1, 0x58 /* 07AB6C 7F04603C 460C6202 */ mul.s $f8, $f12, $f12 /* 07AB70 7F046040 24060008 */ li $a2, 8 /* 07AB74 7F046044 46000182 */ mul.s $f6, $f0, $f0 /* 07AB78 7F046048 46082280 */ add.s $f10, $f4, $f8 /* 07AB7C 7F04604C C4242AAC */ lwc1 $f4, %lo(D_80052AAC)($at) /* 07AB80 7F046050 460A3380 */ add.s $f14, $f6, $f10 /* 07AB84 7F046054 460E203C */ c.lt.s $f4, $f14 /* 07AB88 7F046058 00000000 */ nop /* 07AB8C 7F04605C 45020005 */ bc1fl .L7F046074 /* 07AB90 7F046060 8E0F00A8 */ lw $t7, 0xa8($s0) /* 07AB94 7F046064 E6160010 */ swc1 $f22, 0x10($s0) /* 07AB98 7F046068 E6160014 */ swc1 $f22, 0x14($s0) /* 07AB9C 7F04606C E6160018 */ swc1 $f22, 0x18($s0) /* 07ABA0 7F046070 8E0F00A8 */ lw $t7, 0xa8($s0) .L7F046074: /* 07ABA4 7F046074 29E1012D */ slti $at, $t7, 0x12d /* 07ABA8 7F046078 54200008 */ bnezl $at, .L7F04609C /* 07ABAC 7F04607C 92690001 */ lbu $t1, 1($s3) /* 07ABB0 7F046080 8E180000 */ lw $t8, ($s0) /* 07ABB4 7F046084 2401FFCF */ li $at, -49 /* 07ABB8 7F046088 E616001C */ swc1 $f22, 0x1c($s0) /* 07ABBC 7F04608C 03014024 */ and $t0, $t8, $at /* 07ABC0 7F046090 1000001B */ b .L7F046100 /* 07ABC4 7F046094 AE080000 */ sw $t0, ($s0) /* 07ABC8 7F046098 92690001 */ lbu $t1, 1($s3) .L7F04609C: /* 07ABCC 7F04609C 8E650014 */ lw $a1, 0x14($s3) /* 07ABD0 7F0460A0 2667002C */ addiu $a3, $s3, 0x2c /* 07ABD4 7F0460A4 312B0008 */ andi $t3, $t1, 8 /* 07ABD8 7F0460A8 000BC82B */ sltu $t9, $zero, $t3 /* 07ABDC 7F0460AC 0FC279C0 */ jal explosionCreateSmoke /* 07ABE0 7F0460B0 AFB90010 */ sw $t9, 0x10($sp) /* 07ABE4 7F0460B4 10000013 */ b .L7F046104 /* 07ABE8 7F0460B8 8FB80664 */ lw $t8, 0x664($sp) .L7F0460BC: /* 07ABEC 7F0460BC 24010057 */ li $at, 87 /* 07ABF0 7F0460C0 1441000F */ bne $v0, $at, .L7F046100 /* 07ABF4 7F0460C4 8FAA0610 */ lw $t2, 0x610($sp) /* 07ABF8 7F0460C8 15400003 */ bnez $t2, .L7F0460D8 /* 07ABFC 7F0460CC 8FAC060C */ lw $t4, 0x60c($sp) /* 07AC00 7F0460D0 11800003 */ beqz $t4, .L7F0460E0 /* 07AC04 7F0460D4 26240058 */ addiu $a0, $s1, 0x58 .L7F0460D8: /* 07AC08 7F0460D8 10000009 */ b .L7F046100 /* 07AC0C 7F0460DC A6200082 */ sh $zero, 0x82($s1) .L7F0460E0: /* 07AC10 7F0460E0 926E0001 */ lbu $t6, 1($s3) /* 07AC14 7F0460E4 8E650014 */ lw $a1, 0x14($s3) /* 07AC18 7F0460E8 24060009 */ li $a2, 9 /* 07AC1C 7F0460EC 31CD0008 */ andi $t5, $t6, 8 /* 07AC20 7F0460F0 000D782B */ sltu $t7, $zero, $t5 /* 07AC24 7F0460F4 AFAF0010 */ sw $t7, 0x10($sp) /* 07AC28 7F0460F8 0FC279C0 */ jal explosionCreateSmoke /* 07AC2C 7F0460FC 2667002C */ addiu $a3, $s3, 0x2c .L7F046100: /* 07AC30 7F046100 8FB80664 */ lw $t8, 0x664($sp) .L7F046104: /* 07AC34 7F046104 3C128005 */ lui $s2, %hi(D_80048380) /* 07AC38 7F046108 26528380 */ addiu $s2, %lo(D_80048380) # addiu $s2, $s2, -0x7c80 /* 07AC3C 7F04610C 13000003 */ beqz $t8, .L7F04611C /* 07AC40 7F046110 8FA80610 */ lw $t0, 0x610($sp) /* 07AC44 7F046114 51000020 */ beql $t0, $zero, .L7F046198 /* 07AC48 7F046118 8E2A0064 */ lw $t2, 0x64($s1) .L7F04611C: /* 07AC4C 7F04611C 8E420000 */ lw $v0, ($s2) /* 07AC50 7F046120 8E0900AC */ lw $t1, 0xac($s0) /* 07AC54 7F046124 244BFFFE */ addiu $t3, $v0, -2 /* 07AC58 7F046128 012B082A */ slt $at, $t1, $t3 /* 07AC5C 7F04612C 50200019 */ beql $at, $zero, .L7F046194 /* 07AC60 7F046130 AE0200AC */ sw $v0, 0xac($s0) /* 07AC64 7F046134 82220080 */ lb $v0, 0x80($s1) /* 07AC68 7F046138 26790008 */ addiu $t9, $s3, 8 /* 07AC6C 7F04613C 24010003 */ li $at, 3 /* 07AC70 7F046140 10410004 */ beq $v0, $at, .L7F046154 /* 07AC74 7F046144 AFB90070 */ sw $t9, 0x70($sp) /* 07AC78 7F046148 24010002 */ li $at, 2 /* 07AC7C 7F04614C 14410008 */ bne $v0, $at, .L7F046170 /* 07AC80 7F046150 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) .L7F046154: /* 07AC84 7F046154 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 07AC88 7F046158 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07AC8C 7F04615C 24050003 */ li $a1, 3 /* 07AC90 7F046160 0C002382 */ jal sndPlaySfx /* 07AC94 7F046164 00003025 */ move $a2, $zero /* 07AC98 7F046168 10000006 */ b .L7F046184 /* 07AC9C 7F04616C 00402025 */ move $a0, $v0 .L7F046170: /* 07ACA0 7F046170 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07ACA4 7F046174 2405002D */ li $a1, 45 /* 07ACA8 7F046178 0C002382 */ jal sndPlaySfx /* 07ACAC 7F04617C 00003025 */ move $a2, $zero /* 07ACB0 7F046180 00402025 */ move $a0, $v0 .L7F046184: /* 07ACB4 7F046184 0FC14E84 */ jal chrobjSndCreatePostEventDefault /* 07ACB8 7F046188 8FA50070 */ lw $a1, 0x70($sp) /* 07ACBC 7F04618C 8E420000 */ lw $v0, ($s2) /* 07ACC0 7F046190 AE0200AC */ sw $v0, 0xac($s0) .L7F046194: /* 07ACC4 7F046194 8E2A0064 */ lw $t2, 0x64($s1) .L7F046198: /* 07ACC8 7F046198 3C128005 */ lui $s2, %hi(D_80048380) /* 07ACCC 7F04619C 26528380 */ addiu $s2, %lo(D_80048380) # addiu $s2, $s2, -0x7c80 /* 07ACD0 7F0461A0 314C0080 */ andi $t4, $t2, 0x80 /* 07ACD4 7F0461A4 5180011D */ beql $t4, $zero, .L7F04661C /* 07ACD8 7F0461A8 8FAD0690 */ lw $t5, 0x690($sp) /* 07ACDC 7F0461AC 8E0E0000 */ lw $t6, ($s0) /* 07ACE0 7F0461B0 31CD0400 */ andi $t5, $t6, 0x400 /* 07ACE4 7F0461B4 51A00119 */ beql $t5, $zero, .L7F04661C /* 07ACE8 7F0461B8 8FAD0690 */ lw $t5, 0x690($sp) /* 07ACEC 7F0461BC 8E420000 */ lw $v0, ($s2) /* 07ACF0 7F0461C0 3C0143C8 */ li $at, 0x43C80000 # 400.000000 /* 07ACF4 7F0461C4 27B00564 */ addiu $s0, $sp, 0x564 /* 07ACF8 7F0461C8 304F0007 */ andi $t7, $v0, 7 /* 07ACFC 7F0461CC 15E00112 */ bnez $t7, .L7F046618 /* 07AD00 7F0461D0 00002025 */ move $a0, $zero /* 07AD04 7F0461D4 44810000 */ mtc1 $at, $f0 /* 07AD08 7F0461D8 C6280058 */ lwc1 $f8, 0x58($s1) /* 07AD0C 7F0461DC 3C0144E1 */ li $at, 0x44E10000 # 1800.000000 /* 07AD10 7F0461E0 44812000 */ mtc1 $at, $f4 /* 07AD14 7F0461E4 46004180 */ add.s $f6, $f8, $f0 /* 07AD18 7F0461E8 3058000F */ andi $t8, $v0, 0xf /* 07AD1C 7F0461EC E7A60564 */ swc1 $f6, 0x564($sp) /* 07AD20 7F0461F0 C62A005C */ lwc1 $f10, 0x5c($s1) /* 07AD24 7F0461F4 46045201 */ sub.s $f8, $f10, $f4 /* 07AD28 7F0461F8 E7A80568 */ swc1 $f8, 0x568($sp) /* 07AD2C 7F0461FC C6260060 */ lwc1 $f6, 0x60($s1) /* 07AD30 7F046200 17000005 */ bnez $t8, .L7F046218 /* 07AD34 7F046204 E7A6056C */ swc1 $f6, 0x56c($sp) /* 07AD38 7F046208 C7AA056C */ lwc1 $f10, 0x56c($sp) /* 07AD3C 7F04620C 46005100 */ add.s $f4, $f10, $f0 /* 07AD40 7F046210 10000004 */ b .L7F046224 /* 07AD44 7F046214 E7A4056C */ swc1 $f4, 0x56c($sp) .L7F046218: /* 07AD48 7F046218 C7A8056C */ lwc1 $f8, 0x56c($sp) /* 07AD4C 7F04621C 46004181 */ sub.s $f6, $f8, $f0 /* 07AD50 7F046220 E7A6056C */ swc1 $f6, 0x56c($sp) .L7F046224: /* 07AD54 7F046224 8E220010 */ lw $v0, 0x10($s1) /* 07AD58 7F046228 02002825 */ move $a1, $s0 /* 07AD5C 7F04622C 24070014 */ li $a3, 20 /* 07AD60 7F046230 8C460014 */ lw $a2, 0x14($v0) /* 07AD64 7F046234 2448002C */ addiu $t0, $v0, 0x2c /* 07AD68 7F046238 AFA80018 */ sw $t0, 0x18($sp) /* 07AD6C 7F04623C AFA0001C */ sw $zero, 0x1c($sp) /* 07AD70 7F046240 AFA00014 */ sw $zero, 0x14($sp) /* 07AD74 7F046244 0FC27094 */ jal explosionCreate /* 07AD78 7F046248 AFA00010 */ sw $zero, 0x10($sp) /* 07AD7C 7F04624C 8E490000 */ lw $t1, ($s2) /* 07AD80 7F046250 24010028 */ li $at, 40 /* 07AD84 7F046254 02002025 */ move $a0, $s0 /* 07AD88 7F046258 0121001A */ div $zero, $t1, $at /* 07AD8C 7F04625C 00005810 */ mfhi $t3 /* 07AD90 7F046260 556000EE */ bnezl $t3, .L7F04661C /* 07AD94 7F046264 8FAD0690 */ lw $t5, 0x690($sp) /* 07AD98 7F046268 8E220010 */ lw $v0, 0x10($s1) /* 07AD9C 7F04626C 24190001 */ li $t9, 1 /* 07ADA0 7F046270 2406000A */ li $a2, 10 /* 07ADA4 7F046274 8C450014 */ lw $a1, 0x14($v0) /* 07ADA8 7F046278 AFB90010 */ sw $t9, 0x10($sp) /* 07ADAC 7F04627C 0FC279C0 */ jal explosionCreateSmoke /* 07ADB0 7F046280 2447002C */ addiu $a3, $v0, 0x2c /* 07ADB4 7F046284 100000E5 */ b .L7F04661C /* 07ADB8 7F046288 8FAD0690 */ lw $t5, 0x690($sp) /* 07ADBC 7F04628C C6000060 */ lwc1 $f0, 0x60($s0) .L7F046290: /* 07ADC0 7F046290 44815000 */ mtc1 $at, $f10 /* 07ADC4 7F046294 24120001 */ li $s2, 1 /* 07ADC8 7F046298 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) /* 07ADCC 7F04629C 460A003C */ c.lt.s $f0, $f10 /* 07ADD0 7F0462A0 26040068 */ addiu $a0, $s0, 0x68 /* 07ADD4 7F0462A4 26050078 */ addiu $a1, $s0, 0x78 /* 07ADD8 7F0462A8 45020031 */ bc1fl .L7F046370 /* 07ADDC 7F0462AC C60A0004 */ lwc1 $f10, 4($s0) /* 07ADE0 7F0462B0 C6020064 */ lwc1 $f2, 0x64($s0) /* 07ADE4 7F0462B4 C4248378 */ lwc1 $f4, %lo(g_GlobalTimerDelta)($at) /* 07ADE8 7F0462B8 3C0A8005 */ lui $t2, %hi(g_ClockTimer) /* 07ADEC 7F0462BC 3C018005 */ lui $at, %hi(D_80052AB0) /* 07ADF0 7F0462C0 46041202 */ mul.s $f8, $f2, $f4 /* 07ADF4 7F0462C4 27B20550 */ addiu $s2, $sp, 0x550 /* 07ADF8 7F0462C8 46080180 */ add.s $f6, $f0, $f8 /* 07ADFC 7F0462CC E6060060 */ swc1 $f6, 0x60($s0) /* 07AE00 7F0462D0 8D4A8374 */ lw $t2, %lo(g_ClockTimer)($t2) /* 07AE04 7F0462D4 59400005 */ blezl $t2, .L7F0462EC /* 07AE08 7F0462D8 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07AE0C 7F0462DC C42A2AB0 */ lwc1 $f10, %lo(D_80052AB0)($at) /* 07AE10 7F0462E0 460A1102 */ mul.s $f4, $f2, $f10 /* 07AE14 7F0462E4 E6040064 */ swc1 $f4, 0x64($s0) /* 07AE18 7F0462E8 3C013F80 */ li $at, 0x3F800000 # 1.000000 .L7F0462EC: /* 07AE1C 7F0462EC 44814000 */ mtc1 $at, $f8 /* 07AE20 7F0462F0 C6000060 */ lwc1 $f0, 0x60($s0) /* 07AE24 7F0462F4 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07AE28 7F0462F8 4600403C */ c.lt.s $f8, $f0 /* 07AE2C 7F0462FC 00000000 */ nop /* 07AE30 7F046300 45030006 */ bc1tl .L7F04631C /* 07AE34 7F046304 44813000 */ mtc1 $at, $f6 /* 07AE38 7F046308 8E0C0000 */ lw $t4, ($s0) /* 07AE3C 7F04630C 318E0008 */ andi $t6, $t4, 8 /* 07AE40 7F046310 51C00006 */ beql $t6, $zero, .L7F04632C /* 07AE44 7F046314 44060000 */ mfc1 $a2, $f0 /* 07AE48 7F046318 44813000 */ mtc1 $at, $f6 .L7F04631C: /* 07AE4C 7F04631C 00000000 */ nop /* 07AE50 7F046320 E6060060 */ swc1 $f6, 0x60($s0) /* 07AE54 7F046324 C6000060 */ lwc1 $f0, 0x60($s0) /* 07AE58 7F046328 44060000 */ mfc1 $a2, $f0 .L7F04632C: /* 07AE5C 7F04632C 0FC16E82 */ jal quaternion_slerp /* 07AE60 7F046330 02403825 */ move $a3, $s2 /* 07AE64 7F046334 26250018 */ addiu $a1, $s1, 0x18 /* 07AE68 7F046338 AFA50070 */ sw $a1, 0x70($sp) /* 07AE6C 7F04633C 0FC16D8A */ jal quaternion_to_matrix /* 07AE70 7F046340 02402025 */ move $a0, $s2 /* 07AE74 7F046344 C60C00C0 */ lwc1 $f12, 0xc0($s0) /* 07AE78 7F046348 0FC1626D */ jal matrix_column_1_scalar_multiply /* 07AE7C 7F04634C 8FA50070 */ lw $a1, 0x70($sp) /* 07AE80 7F046350 C60C00C4 */ lwc1 $f12, 0xc4($s0) /* 07AE84 7F046354 0FC16279 */ jal matrix_column_2_scalar_multiply /* 07AE88 7F046358 8FA50070 */ lw $a1, 0x70($sp) /* 07AE8C 7F04635C C60C00C8 */ lwc1 $f12, 0xc8($s0) /* 07AE90 7F046360 0FC16293 */ jal matrix_column_3_scalar_multiply_2 /* 07AE94 7F046364 8FA50070 */ lw $a1, 0x70($sp) /* 07AE98 7F046368 00009025 */ move $s2, $zero /* 07AE9C 7F04636C C60A0004 */ lwc1 $f10, 4($s0) .L7F046370: /* 07AEA0 7F046370 460AB032 */ c.eq.s $f22, $f10 /* 07AEA4 7F046374 00000000 */ nop /* 07AEA8 7F046378 4502000F */ bc1fl .L7F0463B8 /* 07AEAC 7F04637C 8E0D0000 */ lw $t5, ($s0) /* 07AEB0 7F046380 C604000C */ lwc1 $f4, 0xc($s0) /* 07AEB4 7F046384 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07AEB8 7F046388 4604B032 */ c.eq.s $f22, $f4 /* 07AEBC 7F04638C 00000000 */ nop /* 07AEC0 7F046390 45020009 */ bc1fl .L7F0463B8 /* 07AEC4 7F046394 8E0D0000 */ lw $t5, ($s0) /* 07AEC8 7F046398 C6080060 */ lwc1 $f8, 0x60($s0) /* 07AECC 7F04639C 44813000 */ mtc1 $at, $f6 /* 07AED0 7F0463A0 00000000 */ nop /* 07AED4 7F0463A4 4606403C */ c.lt.s $f8, $f6 /* 07AED8 7F0463A8 00000000 */ nop /* 07AEDC 7F0463AC 45000088 */ bc1f .L7F0465D0 /* 07AEE0 7F0463B0 00000000 */ nop /* 07AEE4 7F0463B4 8E0D0000 */ lw $t5, ($s0) .L7F0463B8: /* 07AEE8 7F0463B8 02202025 */ move $a0, $s1 /* 07AEEC 7F0463BC 26380018 */ addiu $t8, $s1, 0x18 /* 07AEF0 7F0463C0 31AF0008 */ andi $t7, $t5, 8 /* 07AEF4 7F0463C4 15E00082 */ bnez $t7, .L7F0465D0 /* 07AEF8 7F0463C8 00000000 */ nop /* 07AEFC 7F0463CC AFB80070 */ sw $t8, 0x70($sp) /* 07AF00 7F0463D0 0FC1001E */ jal chrobjGetBboxFromObjectRecord /* 07AF04 7F0463D4 00009025 */ move $s2, $zero /* 07AF08 7F0463D8 3C038005 */ lui $v1, %hi(g_ClockTimer) /* 07AF0C 7F0463DC 8C638374 */ lw $v1, %lo(g_ClockTimer)($v1) /* 07AF10 7F0463E0 AFA2054C */ sw $v0, 0x54c($sp) /* 07AF14 7F0463E4 00002025 */ move $a0, $zero /* 07AF18 7F0463E8 18600048 */ blez $v1, .L7F04650C /* 07AF1C 7F0463EC 3C018005 */ lui $at, %hi(D_80052AB4) /* 07AF20 7F0463F0 C42E2AB4 */ lwc1 $f14, %lo(D_80052AB4)($at) /* 07AF24 7F0463F4 C7AA0694 */ lwc1 $f10, 0x694($sp) .L7F0463F8: /* 07AF28 7F0463F8 C6040004 */ lwc1 $f4, 4($s0) /* 07AF2C 7F0463FC C7A6069C */ lwc1 $f6, 0x69c($sp) /* 07AF30 7F046400 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07AF34 7F046404 46045200 */ add.s $f8, $f10, $f4 /* 07AF38 7F046408 E7A80694 */ swc1 $f8, 0x694($sp) /* 07AF3C 7F04640C C60A000C */ lwc1 $f10, 0xc($s0) /* 07AF40 7F046410 460A3100 */ add.s $f4, $f6, $f10 /* 07AF44 7F046414 44813000 */ mtc1 $at, $f6 /* 07AF48 7F046418 E7A4069C */ swc1 $f4, 0x69c($sp) /* 07AF4C 7F04641C C6080060 */ lwc1 $f8, 0x60($s0) /* 07AF50 7F046420 4608303E */ c.le.s $f6, $f8 /* 07AF54 7F046424 00000000 */ nop /* 07AF58 7F046428 45020035 */ bc1fl .L7F046500 /* 07AF5C 7F04642C 24840001 */ addiu $a0, $a0, 1 /* 07AF60 7F046430 C60A0094 */ lwc1 $f10, 0x94($s0) /* 07AF64 7F046434 460AB03C */ c.lt.s $f22, $f10 /* 07AF68 7F046438 00000000 */ nop /* 07AF6C 7F04643C 45020027 */ bc1fl .L7F0464DC /* 07AF70 7F046440 C6060004 */ lwc1 $f6, 4($s0) /* 07AF74 7F046444 C600000C */ lwc1 $f0, 0xc($s0) /* 07AF78 7F046448 C6020004 */ lwc1 $f2, 4($s0) /* 07AF7C 7F04644C AFA40548 */ sw $a0, 0x548($sp) /* 07AF80 7F046450 46000102 */ mul.s $f4, $f0, $f0 /* 07AF84 7F046454 00000000 */ nop /* 07AF88 7F046458 46021202 */ mul.s $f8, $f2, $f2 /* 07AF8C 7F04645C 0C007DF8 */ jal sqrtf /* 07AF90 7F046460 46082300 */ add.s $f12, $f4, $f8 /* 07AF94 7F046464 3C018005 */ lui $at, %hi(D_80052AB8) /* 07AF98 7F046468 C42E2AB8 */ lwc1 $f14, %lo(D_80052AB8)($at) /* 07AF9C 7F04646C 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) /* 07AFA0 7F046470 C42A8378 */ lwc1 $f10, %lo(g_GlobalTimerDelta)($at) /* 07AFA4 7F046474 C6060094 */ lwc1 $f6, 0x94($s0) /* 07AFA8 7F046478 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07AFAC 7F04647C 44814000 */ mtc1 $at, $f8 /* 07AFB0 7F046480 460A3102 */ mul.s $f4, $f6, $f10 /* 07AFB4 7F046484 8FA40548 */ lw $a0, 0x548($sp) /* 07AFB8 7F046488 3C038005 */ lui $v1, %hi(g_ClockTimer) /* 07AFBC 7F04648C 46002303 */ div.s $f12, $f4, $f0 /* 07AFC0 7F046490 460C403E */ c.le.s $f8, $f12 /* 07AFC4 7F046494 00000000 */ nop /* 07AFC8 7F046498 45020005 */ bc1fl .L7F0464B0 /* 07AFCC 7F04649C C6020004 */ lwc1 $f2, 4($s0) /* 07AFD0 7F0464A0 E6160004 */ swc1 $f22, 4($s0) /* 07AFD4 7F0464A4 1000000A */ b .L7F0464D0 /* 07AFD8 7F0464A8 E616000C */ swc1 $f22, 0xc($s0) /* 07AFDC 7F0464AC C6020004 */ lwc1 $f2, 4($s0) .L7F0464B0: /* 07AFE0 7F0464B0 C600000C */ lwc1 $f0, 0xc($s0) /* 07AFE4 7F0464B4 460C1182 */ mul.s $f6, $f2, $f12 /* 07AFE8 7F0464B8 00000000 */ nop /* 07AFEC 7F0464BC 460C0102 */ mul.s $f4, $f0, $f12 /* 07AFF0 7F0464C0 46061281 */ sub.s $f10, $f2, $f6 /* 07AFF4 7F0464C4 46040201 */ sub.s $f8, $f0, $f4 /* 07AFF8 7F0464C8 E60A0004 */ swc1 $f10, 4($s0) /* 07AFFC 7F0464CC E608000C */ swc1 $f8, 0xc($s0) .L7F0464D0: /* 07B000 7F0464D0 1000000A */ b .L7F0464FC /* 07B004 7F0464D4 8C638374 */ lw $v1, %lo(g_ClockTimer)($v1) /* 07B008 7F0464D8 C6060004 */ lwc1 $f6, 4($s0) .L7F0464DC: /* 07B00C 7F0464DC C604000C */ lwc1 $f4, 0xc($s0) /* 07B010 7F0464E0 3C038005 */ lui $v1, %hi(g_ClockTimer) /* 07B014 7F0464E4 460E3282 */ mul.s $f10, $f6, $f14 /* 07B018 7F0464E8 00000000 */ nop /* 07B01C 7F0464EC 460E2202 */ mul.s $f8, $f4, $f14 /* 07B020 7F0464F0 E60A0004 */ swc1 $f10, 4($s0) /* 07B024 7F0464F4 E608000C */ swc1 $f8, 0xc($s0) /* 07B028 7F0464F8 8C638374 */ lw $v1, %lo(g_ClockTimer)($v1) .L7F0464FC: /* 07B02C 7F0464FC 24840001 */ addiu $a0, $a0, 1 .L7F046500: /* 07B030 7F046500 0083082A */ slt $at, $a0, $v1 /* 07B034 7F046504 5420FFBC */ bnezl $at, .L7F0463F8 /* 07B038 7F046508 C7AA0694 */ lwc1 $f10, 0x694($sp) .L7F04650C: /* 07B03C 7F04650C 02202025 */ move $a0, $s1 /* 07B040 7F046510 27A50694 */ addiu $a1, $sp, 0x694 /* 07B044 7F046514 27A60530 */ addiu $a2, $sp, 0x530 /* 07B048 7F046518 27A7053C */ addiu $a3, $sp, 0x53c /* 07B04C 7F04651C AFA00010 */ sw $zero, 0x10($sp) /* 07B050 7F046520 0FC10BAD */ jal sub_GAME_7F042EB4 /* 07B054 7F046524 AFA00014 */ sw $zero, 0x14($sp) /* 07B058 7F046528 24080001 */ li $t0, 1 /* 07B05C 7F04652C AFA80690 */ sw $t0, 0x690($sp) /* 07B060 7F046530 8E660010 */ lw $a2, 0x10($s3) /* 07B064 7F046534 8E650008 */ lw $a1, 8($s3) /* 07B068 7F046538 0FC2CA5C */ jal stanGetPositionYValue /* 07B06C 7F04653C 8E640014 */ lw $a0, 0x14($s3) /* 07B070 7F046540 46000506 */ mov.s $f20, $f0 /* 07B074 7F046544 8FA4054C */ lw $a0, 0x54c($sp) /* 07B078 7F046548 0FC0FA6F */ jal chrpropSumMatrixPosY /* 07B07C 7F04654C 8FA50070 */ lw $a1, 0x70($sp) /* 07B080 7F046550 3C018005 */ lui $at, %hi(D_80052ABC) /* 07B084 7F046554 C42E2ABC */ lwc1 $f14, %lo(D_80052ABC)($at) /* 07B088 7F046558 4600A181 */ sub.s $f6, $f20, $f0 /* 07B08C 7F04655C 3C014080 */ li $at, 0x40800000 # 4.000000 /* 07B090 7F046560 44815000 */ mtc1 $at, $f10 /* 07B094 7F046564 3C018005 */ lui $at, %hi(D_80052AC0) /* 07B098 7F046568 460A3300 */ add.s $f12, $f6, $f10 /* 07B09C 7F04656C E66C000C */ swc1 $f12, 0xc($s3) /* 07B0A0 7F046570 E62C005C */ swc1 $f12, 0x5c($s1) /* 07B0A4 7F046574 C6020004 */ lwc1 $f2, 4($s0) /* 07B0A8 7F046578 460E103C */ c.lt.s $f2, $f14 /* 07B0AC 7F04657C 00000000 */ nop /* 07B0B0 7F046580 45000013 */ bc1f .L7F0465D0 /* 07B0B4 7F046584 00000000 */ nop /* 07B0B8 7F046588 C4242AC0 */ lwc1 $f4, %lo(D_80052AC0)($at) /* 07B0BC 7F04658C 4602203C */ c.lt.s $f4, $f2 /* 07B0C0 7F046590 00000000 */ nop /* 07B0C4 7F046594 4500000E */ bc1f .L7F0465D0 /* 07B0C8 7F046598 00000000 */ nop /* 07B0CC 7F04659C C600000C */ lwc1 $f0, 0xc($s0) /* 07B0D0 7F0465A0 3C018005 */ lui $at, %hi(D_80052AC4) /* 07B0D4 7F0465A4 460E003C */ c.lt.s $f0, $f14 /* 07B0D8 7F0465A8 00000000 */ nop /* 07B0DC 7F0465AC 45000008 */ bc1f .L7F0465D0 /* 07B0E0 7F0465B0 00000000 */ nop /* 07B0E4 7F0465B4 C4282AC4 */ lwc1 $f8, %lo(D_80052AC4)($at) /* 07B0E8 7F0465B8 4600403C */ c.lt.s $f8, $f0 /* 07B0EC 7F0465BC 00000000 */ nop /* 07B0F0 7F0465C0 45000003 */ bc1f .L7F0465D0 /* 07B0F4 7F0465C4 00000000 */ nop /* 07B0F8 7F0465C8 E616000C */ swc1 $f22, 0xc($s0) /* 07B0FC 7F0465CC E6160004 */ swc1 $f22, 4($s0) .L7F0465D0: /* 07B100 7F0465D0 16400005 */ bnez $s2, .L7F0465E8 /* 07B104 7F0465D4 00000000 */ nop /* 07B108 7F0465D8 8E090000 */ lw $t1, ($s0) /* 07B10C 7F0465DC 312B0008 */ andi $t3, $t1, 8 /* 07B110 7F0465E0 5160000E */ beql $t3, $zero, .L7F04661C /* 07B114 7F0465E4 8FAD0690 */ lw $t5, 0x690($sp) .L7F0465E8: /* 07B118 7F0465E8 0FC0FEDC */ jal projectileFree /* 07B11C 7F0465EC 02002025 */ move $a0, $s0 /* 07B120 7F0465F0 8E390064 */ lw $t9, 0x64($s1) /* 07B124 7F0465F4 2401FF7F */ li $at, -129 /* 07B128 7F0465F8 AE20006C */ sw $zero, 0x6c($s1) /* 07B12C 7F0465FC 03215024 */ and $t2, $t9, $at /* 07B130 7F046600 AE2A0064 */ sw $t2, 0x64($s1) /* 07B134 7F046604 92620001 */ lbu $v0, 1($s3) /* 07B138 7F046608 304C0008 */ andi $t4, $v0, 8 /* 07B13C 7F04660C 11800002 */ beqz $t4, .L7F046618 /* 07B140 7F046610 344E0010 */ ori $t6, $v0, 0x10 /* 07B144 7F046614 A26E0001 */ sb $t6, 1($s3) .L7F046618: /* 07B148 7F046618 8FAD0690 */ lw $t5, 0x690($sp) .L7F04661C: /* 07B14C 7F04661C 11A0000B */ beqz $t5, .L7F04664C /* 07B150 7F046620 262F0058 */ addiu $t7, $s1, 0x58 /* 07B154 7F046624 AFAF0070 */ sw $t7, 0x70($sp) /* 07B158 7F046628 0FC10121 */ jal chrobjCollisionRelated /* 07B15C 7F04662C 02202025 */ move $a0, $s1 /* 07B160 7F046630 0FC15B28 */ jal setupUpdateObjectRoomPosition /* 07B164 7F046634 02202025 */ move $a0, $s1 /* 07B168 7F046638 8E240010 */ lw $a0, 0x10($s1) /* 07B16C 7F04663C 0FC100AD */ jal sub_GAME_7F0402B4 /* 07B170 7F046640 2625007C */ addiu $a1, $s1, 0x7c /* 07B174 7F046644 0FC146F3 */ jal detonate_proxmine_In_range /* 07B178 7F046648 8FA40070 */ lw $a0, 0x70($sp) .L7F04664C: /* 07B17C 7F04664C 92220003 */ lbu $v0, 3($s1) /* 07B180 7F046650 24010001 */ li $at, 1 /* 07B184 7F046654 54410052 */ bnel $v0, $at, .L7F0467A0 /* 07B188 7F046658 24010006 */ li $at, 6 /* 07B18C 7F04665C 8E700004 */ lw $s0, 4($s3) /* 07B190 7F046660 3C188005 */ lui $t8, %hi(g_GlobalTimer) /* 07B194 7F046664 C60600B4 */ lwc1 $f6, 0xb4($s0) /* 07B198 7F046668 E7A6067C */ swc1 $f6, 0x67c($sp) /* 07B19C 7F04666C 8E0200EC */ lw $v0, 0xec($s0) /* 07B1A0 7F046670 58400012 */ blezl $v0, .L7F0466BC /* 07B1A4 7F046674 820C00BC */ lb $t4, 0xbc($s0) /* 07B1A8 7F046678 8F18837C */ lw $t8, %lo(g_GlobalTimer)($t8) /* 07B1AC 7F04667C 8E0800A0 */ lw $t0, 0xa0($s0) /* 07B1B0 7F046680 03084823 */ subu $t1, $t8, $t0 /* 07B1B4 7F046684 0049082A */ slt $at, $v0, $t1 /* 07B1B8 7F046688 5020000C */ beql $at, $zero, .L7F0466BC /* 07B1BC 7F04668C 820C00BC */ lb $t4, 0xbc($s0) /* 07B1C0 7F046690 820B00BC */ lb $t3, 0xbc($s0) /* 07B1C4 7F046694 55600009 */ bnezl $t3, .L7F0466BC /* 07B1C8 7F046698 820C00BC */ lb $t4, 0xbc($s0) /* 07B1CC 7F04669C 8E190008 */ lw $t9, 8($s0) /* 07B1D0 7F0466A0 02002025 */ move $a0, $s0 /* 07B1D4 7F0466A4 00195000 */ sll $t2, $t9, 0 /* 07B1D8 7F0466A8 05420004 */ bltzl $t2, .L7F0466BC /* 07B1DC 7F0466AC 820C00BC */ lb $t4, 0xbc($s0) /* 07B1E0 7F0466B0 0FC15262 */ jal doorActivate /* 07B1E4 7F0466B4 24050002 */ li $a1, 2 /* 07B1E8 7F0466B8 820C00BC */ lb $t4, 0xbc($s0) .L7F0466BC: /* 07B1EC 7F0466BC 24010003 */ li $at, 3 /* 07B1F0 7F0466C0 5581001B */ bnel $t4, $at, .L7F046730 /* 07B1F4 7F0466C4 960D009A */ lhu $t5, 0x9a($s0) /* 07B1F8 7F0466C8 8E0200C8 */ lw $v0, 0xc8($s0) /* 07B1FC 7F0466CC 24030001 */ li $v1, 1 /* 07B200 7F0466D0 02002025 */ move $a0, $s0 /* 07B204 7F0466D4 10400011 */ beqz $v0, .L7F04671C /* 07B208 7F0466D8 00000000 */ nop /* 07B20C 7F0466DC 1050000F */ beq $v0, $s0, .L7F04671C /* 07B210 7F0466E0 00000000 */ nop /* 07B214 7F0466E4 804E00BC */ lb $t6, 0xbc($v0) .L7F0466E8: /* 07B218 7F0466E8 55C00007 */ bnezl $t6, .L7F046708 /* 07B21C 7F0466EC 00001825 */ move $v1, $zero /* 07B220 7F0466F0 C44A00B4 */ lwc1 $f10, 0xb4($v0) /* 07B224 7F0466F4 460AB03C */ c.lt.s $f22, $f10 /* 07B228 7F0466F8 00000000 */ nop /* 07B22C 7F0466FC 45020003 */ bc1fl .L7F04670C /* 07B230 7F046700 8C4200C8 */ lw $v0, 0xc8($v0) /* 07B234 7F046704 00001825 */ move $v1, $zero .L7F046708: /* 07B238 7F046708 8C4200C8 */ lw $v0, 0xc8($v0) .L7F04670C: /* 07B23C 7F04670C 10400003 */ beqz $v0, .L7F04671C /* 07B240 7F046710 00000000 */ nop /* 07B244 7F046714 5450FFF4 */ bnel $v0, $s0, .L7F0466E8 /* 07B248 7F046718 804E00BC */ lb $t6, 0xbc($v0) .L7F04671C: /* 07B24C 7F04671C 50600004 */ beql $v1, $zero, .L7F046730 /* 07B250 7F046720 960D009A */ lhu $t5, 0x9a($s0) /* 07B254 7F046724 0FC15229 */ jal doorSetOpenState /* 07B258 7F046728 24050001 */ li $a1, 1 /* 07B25C 7F04672C 960D009A */ lhu $t5, 0x9a($s0) .L7F046730: /* 07B260 7F046730 24010008 */ li $at, 8 /* 07B264 7F046734 15A1000B */ bne $t5, $at, .L7F046764 /* 07B268 7F046738 00000000 */ nop /* 07B26C 7F04673C 0FC15288 */ jal doorIsClosed /* 07B270 7F046740 02002025 */ move $a0, $s0 /* 07B274 7F046744 10400007 */ beqz $v0, .L7F046764 /* 07B278 7F046748 00000000 */ nop /* 07B27C 7F04674C 0FC0F9C6 */ jal doorIsPadlockFree /* 07B280 7F046750 02002025 */ move $a0, $s0 /* 07B284 7F046754 10400003 */ beqz $v0, .L7F046764 /* 07B288 7F046758 00000000 */ nop /* 07B28C 7F04675C 0FC15667 */ jal doorActivateWrapper /* 07B290 7F046760 02602025 */ move $a0, $s3 .L7F046764: /* 07B294 7F046764 3C188005 */ lui $t8, %hi(g_GlobalTimer) /* 07B298 7F046768 8F18837C */ lw $t8, %lo(g_GlobalTimer)($t8) /* 07B29C 7F04676C 8E0F00FC */ lw $t7, 0xfc($s0) /* 07B2A0 7F046770 3C088005 */ lui $t0, %hi(g_ClockTimer) /* 07B2A4 7F046774 01F8082A */ slt $at, $t7, $t8 /* 07B2A8 7F046778 14200004 */ bnez $at, .L7F04678C /* 07B2AC 7F04677C 00000000 */ nop /* 07B2B0 7F046780 8D088374 */ lw $t0, %lo(g_ClockTimer)($t0) /* 07B2B4 7F046784 550006AA */ bnezl $t0, .L7F048230 /* 07B2B8 7F046788 92220003 */ lbu $v0, 3($s1) .L7F04678C: /* 07B2BC 7F04678C 0FC153ED */ jal door7F054FB4 /* 07B2C0 7F046790 02002025 */ move $a0, $s0 /* 07B2C4 7F046794 100006A6 */ b .L7F048230 /* 07B2C8 7F046798 92220003 */ lbu $v0, 3($s1) /* 07B2CC 7F04679C 24010006 */ li $at, 6 .L7F0467A0: /* 07B2D0 7F0467A0 54410130 */ bnel $v0, $at, .L7F046C64 /* 07B2D4 7F0467A4 2401000D */ li $at, 13 /* 07B2D8 7F0467A8 8E290008 */ lw $t1, 8($s1) /* 07B2DC 7F0467AC 000958C0 */ sll $t3, $t1, 3 /* 07B2E0 7F0467B0 0562012C */ bltzl $t3, .L7F046C64 /* 07B2E4 7F0467B4 2401000D */ li $at, 13 /* 07B2E8 7F0467B8 8E700004 */ lw $s0, 4($s3) /* 07B2EC 7F0467BC 8E1900D4 */ lw $t9, 0xd4($s0) /* 07B2F0 7F0467C0 53200004 */ beql $t9, $zero, .L7F0467D4 /* 07B2F4 7F0467C4 C61200D0 */ lwc1 $f18, 0xd0($s0) /* 07B2F8 7F0467C8 10000002 */ b .L7F0467D4 /* 07B2FC 7F0467CC C61200CC */ lwc1 $f18, 0xcc($s0) /* 07B300 7F0467D0 C61200D0 */ lwc1 $f18, 0xd0($s0) .L7F0467D4: /* 07B304 7F0467D4 0FC225E6 */ jal get_curplayer_positiondata /* 07B308 7F0467D8 E7B20518 */ swc1 $f18, 0x518($sp) /* 07B30C 7F0467DC AFA20514 */ sw $v0, 0x514($sp) /* 07B310 7F0467E0 C6280058 */ lwc1 $f8, 0x58($s1) /* 07B314 7F0467E4 C4440008 */ lwc1 $f4, 8($v0) /* 07B318 7F0467E8 C60000E8 */ lwc1 $f0, 0xe8($s0) /* 07B31C 7F0467EC C62A005C */ lwc1 $f10, 0x5c($s1) /* 07B320 7F0467F0 46082301 */ sub.s $f12, $f4, $f8 /* 07B324 7F0467F4 C446000C */ lwc1 $f6, 0xc($v0) /* 07B328 7F0467F8 C6280060 */ lwc1 $f8, 0x60($s1) /* 07B32C 7F0467FC 4600B03C */ c.lt.s $f22, $f0 /* 07B330 7F046800 C4440010 */ lwc1 $f4, 0x10($v0) /* 07B334 7F046804 C7B20518 */ lwc1 $f18, 0x518($sp) /* 07B338 7F046808 24120001 */ li $s2, 1 /* 07B33C 7F04680C 460A3081 */ sub.s $f2, $f6, $f10 /* 07B340 7F046810 4500000E */ bc1f .L7F04684C /* 07B344 7F046814 46082381 */ sub.s $f14, $f4, $f8 /* 07B348 7F046818 46000182 */ mul.s $f6, $f0, $f0 /* 07B34C 7F04681C 00000000 */ nop /* 07B350 7F046820 460C6282 */ mul.s $f10, $f12, $f12 /* 07B354 7F046824 00000000 */ nop /* 07B358 7F046828 46021102 */ mul.s $f4, $f2, $f2 /* 07B35C 7F04682C 46045200 */ add.s $f8, $f10, $f4 /* 07B360 7F046830 460E7282 */ mul.s $f10, $f14, $f14 /* 07B364 7F046834 460A4100 */ add.s $f4, $f8, $f10 /* 07B368 7F046838 4604303C */ c.lt.s $f6, $f4 /* 07B36C 7F04683C 00000000 */ nop /* 07B370 7F046840 45000002 */ bc1f .L7F04684C /* 07B374 7F046844 00000000 */ nop /* 07B378 7F046848 00009025 */ move $s2, $zero .L7F04684C: /* 07B37C 7F04684C 8E2A0008 */ lw $t2, 8($s1) /* 07B380 7F046850 000A6080 */ sll $t4, $t2, 2 /* 07B384 7F046854 05810002 */ bgez $t4, .L7F046860 /* 07B388 7F046858 00000000 */ nop /* 07B38C 7F04685C 00009025 */ move $s2, $zero .L7F046860: /* 07B390 7F046860 1240003A */ beqz $s2, .L7F04694C /* 07B394 7F046864 00000000 */ nop /* 07B398 7F046868 0FC16A8C */ jal atan2f /* 07B39C 7F04686C E7B20518 */ swc1 $f18, 0x518($sp) /* 07B3A0 7F046870 C60200C8 */ lwc1 $f2, 0xc8($s0) /* 07B3A4 7F046874 C7B20518 */ lwc1 $f18, 0x518($sp) /* 07B3A8 7F046878 3C018005 */ lui $at, %hi(D_80052ACC) /* 07B3AC 7F04687C 4616103C */ c.lt.s $f2, $f22 /* 07B3B0 7F046880 00000000 */ nop /* 07B3B4 7F046884 45000005 */ bc1f .L7F04689C /* 07B3B8 7F046888 00000000 */ nop /* 07B3BC 7F04688C 3C018005 */ lui $at, %hi(D_80052AC8) /* 07B3C0 7F046890 C4342AC8 */ lwc1 $f20, %lo(D_80052AC8)($at) /* 07B3C4 7F046894 10000007 */ b .L7F0468B4 /* 07B3C8 7F046898 46141080 */ add.s $f2, $f2, $f20 .L7F04689C: /* 07B3CC 7F04689C C4342ACC */ lwc1 $f20, %lo(D_80052ACC)($at) /* 07B3D0 7F0468A0 4602A03E */ c.le.s $f20, $f2 /* 07B3D4 7F0468A4 00000000 */ nop /* 07B3D8 7F0468A8 45020003 */ bc1fl .L7F0468B8 /* 07B3DC 7F0468AC C60800C4 */ lwc1 $f8, 0xc4($s0) /* 07B3E0 7F0468B0 46141081 */ sub.s $f2, $f2, $f20 .L7F0468B4: /* 07B3E4 7F0468B4 C60800C4 */ lwc1 $f8, 0xc4($s0) .L7F0468B8: /* 07B3E8 7F0468B8 3C018005 */ lui $at, %hi(D_80052AD0) /* 07B3EC 7F0468BC 46081080 */ add.s $f2, $f2, $f8 /* 07B3F0 7F0468C0 4602A03E */ c.le.s $f20, $f2 /* 07B3F4 7F0468C4 00000000 */ nop /* 07B3F8 7F0468C8 45020003 */ bc1fl .L7F0468D8 /* 07B3FC 7F0468CC 4602003C */ c.lt.s $f0, $f2 /* 07B400 7F0468D0 46141081 */ sub.s $f2, $f2, $f20 /* 07B404 7F0468D4 4602003C */ c.lt.s $f0, $f2 .L7F0468D8: /* 07B408 7F0468D8 46020381 */ sub.s $f14, $f0, $f2 /* 07B40C 7F0468DC 45000002 */ bc1f .L7F0468E8 /* 07B410 7F0468E0 46007306 */ mov.s $f12, $f14 /* 07B414 7F0468E4 46147300 */ add.s $f12, $f14, $f20 .L7F0468E8: /* 07B418 7F0468E8 C4202AD0 */ lwc1 $f0, %lo(D_80052AD0)($at) /* 07B41C 7F0468EC 3C018005 */ lui $at, %hi(D_80052AD4) /* 07B420 7F0468F0 46006301 */ sub.s $f12, $f12, $f0 /* 07B424 7F0468F4 4616603C */ c.lt.s $f12, $f22 /* 07B428 7F0468F8 00000000 */ nop /* 07B42C 7F0468FC 45020003 */ bc1fl .L7F04690C /* 07B430 7F046900 460C003C */ c.lt.s $f0, $f12 /* 07B434 7F046904 46146300 */ add.s $f12, $f12, $f20 /* 07B438 7F046908 460C003C */ c.lt.s $f0, $f12 .L7F04690C: /* 07B43C 7F04690C 00000000 */ nop /* 07B440 7F046910 45000002 */ bc1f .L7F04691C /* 07B444 7F046914 00000000 */ nop /* 07B448 7F046918 46146301 */ sub.s $f12, $f12, $f20 .L7F04691C: /* 07B44C 7F04691C C42A2AD4 */ lwc1 $f10, %lo(D_80052AD4)($at) /* 07B450 7F046920 3C018005 */ lui $at, %hi(D_80052AD8) /* 07B454 7F046924 460C503C */ c.lt.s $f10, $f12 /* 07B458 7F046928 00000000 */ nop /* 07B45C 7F04692C 45030007 */ bc1tl .L7F04694C /* 07B460 7F046930 00009025 */ move $s2, $zero /* 07B464 7F046934 C4262AD8 */ lwc1 $f6, %lo(D_80052AD8)($at) /* 07B468 7F046938 4606603C */ c.lt.s $f12, $f6 /* 07B46C 7F04693C 00000000 */ nop /* 07B470 7F046940 45000002 */ bc1f .L7F04694C /* 07B474 7F046944 00000000 */ nop /* 07B478 7F046948 00009025 */ move $s2, $zero .L7F04694C: /* 07B47C 7F04694C 12400034 */ beqz $s2, .L7F046A20 /* 07B480 7F046950 00002825 */ move $a1, $zero /* 07B484 7F046954 8E6E0014 */ lw $t6, 0x14($s3) /* 07B488 7F046958 E7B20518 */ swc1 $f18, 0x518($sp) /* 07B48C 7F04695C 8FA40514 */ lw $a0, 0x514($sp) /* 07B490 7F046960 0FC2280F */ jal bondviewUpdateGuardTankFlagsRelated /* 07B494 7F046964 AFAE04F0 */ sw $t6, 0x4f0($sp) /* 07B498 7F046968 8FA20514 */ lw $v0, 0x514($sp) /* 07B49C 7F04696C 3C0142C8 */ li $at, 0x42C80000 # 100.000000 /* 07B4A0 7F046970 8E650008 */ lw $a1, 8($s3) /* 07B4A4 7F046974 C4440010 */ lwc1 $f4, 0x10($v0) /* 07B4A8 7F046978 8E660010 */ lw $a2, 0x10($s3) /* 07B4AC 7F04697C 8C470008 */ lw $a3, 8($v0) /* 07B4B0 7F046980 44814000 */ mtc1 $at, $f8 /* 07B4B4 7F046984 44815000 */ mtc1 $at, $f10 /* 07B4B8 7F046988 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07B4BC 7F04698C 44813000 */ mtc1 $at, $f6 /* 07B4C0 7F046990 240D001B */ li $t5, 27 /* 07B4C4 7F046994 AFAD0014 */ sw $t5, 0x14($sp) /* 07B4C8 7F046998 E7B60020 */ swc1 $f22, 0x20($sp) /* 07B4CC 7F04699C 27A404F0 */ addiu $a0, $sp, 0x4f0 /* 07B4D0 7F0469A0 E7A40010 */ swc1 $f4, 0x10($sp) /* 07B4D4 7F0469A4 E7A80018 */ swc1 $f8, 0x18($sp) /* 07B4D8 7F0469A8 E7AA001C */ swc1 $f10, 0x1c($sp) /* 07B4DC 7F0469AC 0FC2C389 */ jal stanTestLineUnobstructed /* 07B4E0 7F0469B0 E7A60024 */ swc1 $f6, 0x24($sp) /* 07B4E4 7F0469B4 10400015 */ beqz $v0, .L7F046A0C /* 07B4E8 7F0469B8 C7B20518 */ lwc1 $f18, 0x518($sp) /* 07B4EC 7F0469BC 3C188005 */ lui $t8, %hi(g_ClockTimer) /* 07B4F0 7F0469C0 8F188374 */ lw $t8, %lo(g_ClockTimer)($t8) /* 07B4F4 7F0469C4 8E0F00E0 */ lw $t7, 0xe0($s0) /* 07B4F8 7F0469C8 3C014396 */ li $at, 0x43960000 # 300.000000 /* 07B4FC 7F0469CC 44812000 */ mtc1 $at, $f4 /* 07B500 7F0469D0 01F84021 */ addu $t0, $t7, $t8 /* 07B504 7F0469D4 AE0800E0 */ sw $t0, 0xe0($s0) /* 07B508 7F0469D8 3C018003 */ lui $at, %hi(F_80030B14) /* 07B50C 7F0469DC C4280B14 */ lwc1 $f8, %lo(F_80030B14)($at) /* 07B510 7F0469E0 46082282 */ mul.s $f10, $f4, $f8 /* 07B514 7F0469E4 4600518D */ trunc.w.s $f6, $f10 /* 07B518 7F0469E8 44193000 */ mfc1 $t9, $f6 /* 07B51C 7F0469EC 00000000 */ nop /* 07B520 7F0469F0 0119082A */ slt $at, $t0, $t9 /* 07B524 7F0469F4 54200006 */ bnezl $at, .L7F046A10 /* 07B528 7F0469F8 8FA40514 */ lw $a0, 0x514($sp) /* 07B52C 7F0469FC 0FC15772 */ jal alarmActivate /* 07B530 7F046A00 E7B20518 */ swc1 $f18, 0x518($sp) /* 07B534 7F046A04 C7B20518 */ lwc1 $f18, 0x518($sp) /* 07B538 7F046A08 AE0000E0 */ sw $zero, 0xe0($s0) .L7F046A0C: /* 07B53C 7F046A0C 8FA40514 */ lw $a0, 0x514($sp) .L7F046A10: /* 07B540 7F046A10 24050001 */ li $a1, 1 /* 07B544 7F046A14 0FC2280F */ jal bondviewUpdateGuardTankFlagsRelated /* 07B548 7F046A18 E7B20518 */ swc1 $f18, 0x518($sp) /* 07B54C 7F046A1C C7B20518 */ lwc1 $f18, 0x518($sp) .L7F046A20: /* 07B550 7F046A20 C60E00C8 */ lwc1 $f14, 0xc8($s0) /* 07B554 7F046A24 4612703C */ c.lt.s $f14, $f18 /* 07B558 7F046A28 00000000 */ nop /* 07B55C 7F046A2C 45020047 */ bc1fl .L7F046B4C /* 07B560 7F046A30 C60000D8 */ lwc1 $f0, 0xd8($s0) /* 07B564 7F046A34 C60000D8 */ lwc1 $f0, 0xd8($s0) /* 07B568 7F046A38 3C018005 */ lui $at, %hi(D_80052AE0) /* 07B56C 7F046A3C C4302AE0 */ lwc1 $f16, %lo(D_80052AE0)($at) /* 07B570 7F046A40 46000102 */ mul.s $f4, $f0, $f0 /* 07B574 7F046A44 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 07B578 7F046A48 44814000 */ mtc1 $at, $f8 /* 07B57C 7F046A4C 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) /* 07B580 7F046A50 46082282 */ mul.s $f10, $f4, $f8 /* 07B584 7F046A54 46105083 */ div.s $f2, $f10, $f16 /* 07B588 7F046A58 46029181 */ sub.s $f6, $f18, $f2 /* 07B58C 7F046A5C 460E303E */ c.le.s $f6, $f14 /* 07B590 7F046A60 00000000 */ nop /* 07B594 7F046A64 4502000F */ bc1fl .L7F046AA4 /* 07B598 7F046A68 C60C00DC */ lwc1 $f12, 0xdc($s0) /* 07B59C 7F046A6C C4248378 */ lwc1 $f4, %lo(g_GlobalTimerDelta)($at) /* 07B5A0 7F046A70 46048202 */ mul.s $f8, $f16, $f4 /* 07B5A4 7F046A74 46080281 */ sub.s $f10, $f0, $f8 /* 07B5A8 7F046A78 E60A00D8 */ swc1 $f10, 0xd8($s0) /* 07B5AC 7F046A7C C60000D8 */ lwc1 $f0, 0xd8($s0) /* 07B5B0 7F046A80 4610003C */ c.lt.s $f0, $f16 /* 07B5B4 7F046A84 00000000 */ nop /* 07B5B8 7F046A88 45000003 */ bc1f .L7F046A98 /* 07B5BC 7F046A8C 00000000 */ nop /* 07B5C0 7F046A90 E61000D8 */ swc1 $f16, 0xd8($s0) /* 07B5C4 7F046A94 C60000D8 */ lwc1 $f0, 0xd8($s0) .L7F046A98: /* 07B5C8 7F046A98 1000001D */ b .L7F046B10 /* 07B5CC 7F046A9C C60E00C8 */ lwc1 $f14, 0xc8($s0) /* 07B5D0 7F046AA0 C60C00DC */ lwc1 $f12, 0xdc($s0) .L7F046AA4: /* 07B5D4 7F046AA4 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) /* 07B5D8 7F046AA8 460C003C */ c.lt.s $f0, $f12 /* 07B5DC 7F046AAC 00000000 */ nop /* 07B5E0 7F046AB0 45000017 */ bc1f .L7F046B10 /* 07B5E4 7F046AB4 00000000 */ nop /* 07B5E8 7F046AB8 C4268378 */ lwc1 $f6, %lo(g_GlobalTimerDelta)($at) /* 07B5EC 7F046ABC 46068102 */ mul.s $f4, $f16, $f6 /* 07B5F0 7F046AC0 46040080 */ add.s $f2, $f0, $f4 /* 07B5F4 7F046AC4 4602603C */ c.lt.s $f12, $f2 /* 07B5F8 7F046AC8 00000000 */ nop /* 07B5FC 7F046ACC 45000002 */ bc1f .L7F046AD8 /* 07B600 7F046AD0 00000000 */ nop /* 07B604 7F046AD4 46006086 */ mov.s $f2, $f12 .L7F046AD8: /* 07B608 7F046AD8 46021202 */ mul.s $f8, $f2, $f2 /* 07B60C 7F046ADC 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 07B610 7F046AE0 44815000 */ mtc1 $at, $f10 /* 07B614 7F046AE4 00000000 */ nop /* 07B618 7F046AE8 460A4182 */ mul.s $f6, $f8, $f10 /* 07B61C 7F046AEC 46103103 */ div.s $f4, $f6, $f16 /* 07B620 7F046AF0 46049201 */ sub.s $f8, $f18, $f4 /* 07B624 7F046AF4 4608703C */ c.lt.s $f14, $f8 /* 07B628 7F046AF8 00000000 */ nop /* 07B62C 7F046AFC 45000004 */ bc1f .L7F046B10 /* 07B630 7F046B00 00000000 */ nop /* 07B634 7F046B04 E60200D8 */ swc1 $f2, 0xd8($s0) /* 07B638 7F046B08 C60000D8 */ lwc1 $f0, 0xd8($s0) /* 07B63C 7F046B0C C60E00C8 */ lwc1 $f14, 0xc8($s0) .L7F046B10: /* 07B640 7F046B10 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) /* 07B644 7F046B14 C42A8378 */ lwc1 $f10, %lo(g_GlobalTimerDelta)($at) /* 07B648 7F046B18 460A0182 */ mul.s $f6, $f0, $f10 /* 07B64C 7F046B1C 46067100 */ add.s $f4, $f14, $f6 /* 07B650 7F046B20 E60400C8 */ swc1 $f4, 0xc8($s0) /* 07B654 7F046B24 C60800C8 */ lwc1 $f8, 0xc8($s0) /* 07B658 7F046B28 4608903E */ c.le.s $f18, $f8 /* 07B65C 7F046B2C 00000000 */ nop /* 07B660 7F046B30 450205BF */ bc1fl .L7F048230 /* 07B664 7F046B34 92220003 */ lbu $v0, 3($s1) /* 07B668 7F046B38 E61200C8 */ swc1 $f18, 0xc8($s0) /* 07B66C 7F046B3C E61600D8 */ swc1 $f22, 0xd8($s0) /* 07B670 7F046B40 100005BA */ b .L7F04822C /* 07B674 7F046B44 AE0000D4 */ sw $zero, 0xd4($s0) /* 07B678 7F046B48 C60000D8 */ lwc1 $f0, 0xd8($s0) .L7F046B4C: /* 07B67C 7F046B4C 3C018005 */ lui $at, %hi(D_80052AE4) /* 07B680 7F046B50 C4302AE4 */ lwc1 $f16, %lo(D_80052AE4)($at) /* 07B684 7F046B54 46000282 */ mul.s $f10, $f0, $f0 /* 07B688 7F046B58 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 07B68C 7F046B5C 44813000 */ mtc1 $at, $f6 /* 07B690 7F046B60 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) /* 07B694 7F046B64 240A0001 */ li $t2, 1 /* 07B698 7F046B68 46065102 */ mul.s $f4, $f10, $f6 /* 07B69C 7F046B6C 46102083 */ div.s $f2, $f4, $f16 /* 07B6A0 7F046B70 46029200 */ add.s $f8, $f18, $f2 /* 07B6A4 7F046B74 4608703E */ c.le.s $f14, $f8 /* 07B6A8 7F046B78 00000000 */ nop /* 07B6AC 7F046B7C 4502000F */ bc1fl .L7F046BBC /* 07B6B0 7F046B80 C60C00DC */ lwc1 $f12, 0xdc($s0) /* 07B6B4 7F046B84 C42A8378 */ lwc1 $f10, %lo(g_GlobalTimerDelta)($at) /* 07B6B8 7F046B88 460A8182 */ mul.s $f6, $f16, $f10 /* 07B6BC 7F046B8C 46060101 */ sub.s $f4, $f0, $f6 /* 07B6C0 7F046B90 E60400D8 */ swc1 $f4, 0xd8($s0) /* 07B6C4 7F046B94 C60000D8 */ lwc1 $f0, 0xd8($s0) /* 07B6C8 7F046B98 4610003C */ c.lt.s $f0, $f16 /* 07B6CC 7F046B9C 00000000 */ nop /* 07B6D0 7F046BA0 45000003 */ bc1f .L7F046BB0 /* 07B6D4 7F046BA4 00000000 */ nop /* 07B6D8 7F046BA8 E61000D8 */ swc1 $f16, 0xd8($s0) /* 07B6DC 7F046BAC C60000D8 */ lwc1 $f0, 0xd8($s0) .L7F046BB0: /* 07B6E0 7F046BB0 1000001D */ b .L7F046C28 /* 07B6E4 7F046BB4 C60E00C8 */ lwc1 $f14, 0xc8($s0) /* 07B6E8 7F046BB8 C60C00DC */ lwc1 $f12, 0xdc($s0) .L7F046BBC: /* 07B6EC 7F046BBC 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) /* 07B6F0 7F046BC0 460C003C */ c.lt.s $f0, $f12 /* 07B6F4 7F046BC4 00000000 */ nop /* 07B6F8 7F046BC8 45000017 */ bc1f .L7F046C28 /* 07B6FC 7F046BCC 00000000 */ nop /* 07B700 7F046BD0 C4288378 */ lwc1 $f8, %lo(g_GlobalTimerDelta)($at) /* 07B704 7F046BD4 46088282 */ mul.s $f10, $f16, $f8 /* 07B708 7F046BD8 460A0080 */ add.s $f2, $f0, $f10 /* 07B70C 7F046BDC 4602603C */ c.lt.s $f12, $f2 /* 07B710 7F046BE0 00000000 */ nop /* 07B714 7F046BE4 45000002 */ bc1f .L7F046BF0 /* 07B718 7F046BE8 00000000 */ nop /* 07B71C 7F046BEC 46006086 */ mov.s $f2, $f12 .L7F046BF0: /* 07B720 7F046BF0 46021182 */ mul.s $f6, $f2, $f2 /* 07B724 7F046BF4 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 07B728 7F046BF8 44812000 */ mtc1 $at, $f4 /* 07B72C 7F046BFC 00000000 */ nop /* 07B730 7F046C00 46043202 */ mul.s $f8, $f6, $f4 /* 07B734 7F046C04 46104283 */ div.s $f10, $f8, $f16 /* 07B738 7F046C08 460A9180 */ add.s $f6, $f18, $f10 /* 07B73C 7F046C0C 460E303C */ c.lt.s $f6, $f14 /* 07B740 7F046C10 00000000 */ nop /* 07B744 7F046C14 45000004 */ bc1f .L7F046C28 /* 07B748 7F046C18 00000000 */ nop /* 07B74C 7F046C1C E60200D8 */ swc1 $f2, 0xd8($s0) /* 07B750 7F046C20 C60000D8 */ lwc1 $f0, 0xd8($s0) /* 07B754 7F046C24 C60E00C8 */ lwc1 $f14, 0xc8($s0) .L7F046C28: /* 07B758 7F046C28 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) /* 07B75C 7F046C2C C4248378 */ lwc1 $f4, %lo(g_GlobalTimerDelta)($at) /* 07B760 7F046C30 46040202 */ mul.s $f8, $f0, $f4 /* 07B764 7F046C34 46087281 */ sub.s $f10, $f14, $f8 /* 07B768 7F046C38 E60A00C8 */ swc1 $f10, 0xc8($s0) /* 07B76C 7F046C3C C60600C8 */ lwc1 $f6, 0xc8($s0) /* 07B770 7F046C40 4612303E */ c.le.s $f6, $f18 /* 07B774 7F046C44 00000000 */ nop /* 07B778 7F046C48 45020579 */ bc1fl .L7F048230 /* 07B77C 7F046C4C 92220003 */ lbu $v0, 3($s1) /* 07B780 7F046C50 E61200C8 */ swc1 $f18, 0xc8($s0) /* 07B784 7F046C54 E61600D8 */ swc1 $f22, 0xd8($s0) /* 07B788 7F046C58 10000574 */ b .L7F04822C /* 07B78C 7F046C5C AE0A00D4 */ sw $t2, 0xd4($s0) /* 07B790 7F046C60 2401000D */ li $at, 13 .L7F046C64: /* 07B794 7F046C64 5441023F */ bnel $v0, $at, .L7F047564 /* 07B798 7F046C68 24010027 */ li $at, 39 /* 07B79C 7F046C6C 8E2C0008 */ lw $t4, 8($s1) /* 07B7A0 7F046C70 000C70C0 */ sll $t6, $t4, 3 /* 07B7A4 7F046C74 05C2023B */ bltzl $t6, .L7F047564 /* 07B7A8 7F046C78 24010027 */ li $at, 39 /* 07B7AC 7F046C7C 0FC225E6 */ jal get_curplayer_positiondata /* 07B7B0 7F046C80 8E700004 */ lw $s0, 4($s3) /* 07B7B4 7F046C84 AFA004AC */ sw $zero, 0x4ac($sp) /* 07B7B8 7F046C88 AFA004A8 */ sw $zero, 0x4a8($sp) /* 07B7BC 7F046C8C AFA004A4 */ sw $zero, 0x4a4($sp) /* 07B7C0 7F046C90 8E23000C */ lw $v1, 0xc($s1) /* 07B7C4 7F046C94 00409025 */ move $s2, $v0 /* 07B7C8 7F046C98 00036800 */ sll $t5, $v1, 0 /* 07B7CC 7F046C9C 05A10056 */ bgez $t5, .L7F046DF8 /* 07B7D0 7F046CA0 00037840 */ sll $t7, $v1, 1 /* 07B7D4 7F046CA4 05E30008 */ bgezl $t7, .L7F046CC8 /* 07B7D8 7F046CA8 C6020084 */ lwc1 $f2, 0x84($s0) /* 07B7DC 7F046CAC C6080090 */ lwc1 $f8, 0x90($s0) /* 07B7E0 7F046CB0 C604009C */ lwc1 $f4, 0x9c($s0) /* 07B7E4 7F046CB4 E6080084 */ swc1 $f8, 0x84($s0) /* 07B7E8 7F046CB8 C6020084 */ lwc1 $f2, 0x84($s0) /* 07B7EC 7F046CBC 10000036 */ b .L7F046D98 /* 07B7F0 7F046CC0 E6040098 */ swc1 $f4, 0x98($s0) /* 07B7F4 7F046CC4 C6020084 */ lwc1 $f2, 0x84($s0) .L7F046CC8: /* 07B7F8 7F046CC8 C60A0090 */ lwc1 $f10, 0x90($s0) /* 07B7FC 7F046CCC 460A1032 */ c.eq.s $f2, $f10 /* 07B800 7F046CD0 00000000 */ nop /* 07B804 7F046CD4 45000030 */ bc1f .L7F046D98 /* 07B808 7F046CD8 00000000 */ nop /* 07B80C 7F046CDC C6060098 */ lwc1 $f6, 0x98($s0) /* 07B810 7F046CE0 C604009C */ lwc1 $f4, 0x9c($s0) /* 07B814 7F046CE4 46043032 */ c.eq.s $f6, $f4 /* 07B818 7F046CE8 00000000 */ nop /* 07B81C 7F046CEC 4500002A */ bc1f .L7F046D98 /* 07B820 7F046CF0 00000000 */ nop /* 07B824 7F046CF4 0C002914 */ jal randomGetNext /* 07B828 7F046CF8 00000000 */ nop /* 07B82C 7F046CFC 44824000 */ mtc1 $v0, $f8 /* 07B830 7F046D00 3C018005 */ lui $at, %hi(D_80052AE8) /* 07B834 7F046D04 C4342AE8 */ lwc1 $f20, %lo(D_80052AE8)($at) /* 07B838 7F046D08 04410005 */ bgez $v0, .L7F046D20 /* 07B83C 7F046D0C 468042A0 */ cvt.s.w $f10, $f8 /* 07B840 7F046D10 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07B844 7F046D14 44813000 */ mtc1 $at, $f6 /* 07B848 7F046D18 00000000 */ nop /* 07B84C 7F046D1C 46065280 */ add.s $f10, $f10, $f6 .L7F046D20: /* 07B850 7F046D20 3C012F80 */ li $at, 0x2F800000 # 0.000000 /* 07B854 7F046D24 44812000 */ mtc1 $at, $f4 /* 07B858 7F046D28 3C01421C */ li $at, 0x421C0000 # 39.000000 /* 07B85C 7F046D2C 44813000 */ mtc1 $at, $f6 /* 07B860 7F046D30 46045202 */ mul.s $f8, $f10, $f4 /* 07B864 7F046D34 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07B868 7F046D38 44812000 */ mtc1 $at, $f4 /* 07B86C 7F046D3C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 /* 07B870 7F046D40 46064282 */ mul.s $f10, $f8, $f6 /* 07B874 7F046D44 46045200 */ add.s $f8, $f10, $f4 /* 07B878 7F046D48 44815000 */ mtc1 $at, $f10 /* 07B87C 7F046D4C 46144182 */ mul.s $f6, $f8, $f20 /* 07B880 7F046D50 460A3103 */ div.s $f4, $f6, $f10 /* 07B884 7F046D54 0C002914 */ jal randomGetNext /* 07B888 7F046D58 E6040098 */ swc1 $f4, 0x98($s0) /* 07B88C 7F046D5C 44824000 */ mtc1 $v0, $f8 /* 07B890 7F046D60 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07B894 7F046D64 04410004 */ bgez $v0, .L7F046D78 /* 07B898 7F046D68 468041A0 */ cvt.s.w $f6, $f8 /* 07B89C 7F046D6C 44815000 */ mtc1 $at, $f10 /* 07B8A0 7F046D70 00000000 */ nop /* 07B8A4 7F046D74 460A3180 */ add.s $f6, $f6, $f10 .L7F046D78: /* 07B8A8 7F046D78 3C012F80 */ li $at, 0x2F800000 # 0.000000 /* 07B8AC 7F046D7C 44812000 */ mtc1 $at, $f4 /* 07B8B0 7F046D80 00000000 */ nop /* 07B8B4 7F046D84 46043202 */ mul.s $f8, $f6, $f4 /* 07B8B8 7F046D88 00000000 */ nop /* 07B8BC 7F046D8C 46144282 */ mul.s $f10, $f8, $f20 /* 07B8C0 7F046D90 E60A0084 */ swc1 $f10, 0x84($s0) /* 07B8C4 7F046D94 C6020084 */ lwc1 $f2, 0x84($s0) .L7F046D98: /* 07B8C8 7F046D98 3C018005 */ lui $at, %hi(D_80052AEC) /* 07B8CC 7F046D9C C4202AEC */ lwc1 $f0, %lo(D_80052AEC)($at) /* 07B8D0 7F046DA0 3C018005 */ lui $at, %hi(D_80052AF4) /* 07B8D4 7F046DA4 C4262AF4 */ lwc1 $f6, %lo(D_80052AF4)($at) /* 07B8D8 7F046DA8 44051000 */ mfc1 $a1, $f2 /* 07B8DC 7F046DAC 44070000 */ mfc1 $a3, $f0 /* 07B8E0 7F046DB0 26040090 */ addiu $a0, $s0, 0x90 /* 07B8E4 7F046DB4 26060094 */ addiu $a2, $s0, 0x94 /* 07B8E8 7F046DB8 E7A00010 */ swc1 $f0, 0x10($sp) /* 07B8EC 7F046DBC 0FC10C43 */ jal chrobjCallsApplySpeed /* 07B8F0 7F046DC0 E7A60014 */ swc1 $f6, 0x14($sp) /* 07B8F4 7F046DC4 3C018005 */ lui $at, %hi(D_80052AF8) /* 07B8F8 7F046DC8 C4202AF8 */ lwc1 $f0, %lo(D_80052AF8)($at) /* 07B8FC 7F046DCC 3C018005 */ lui $at, %hi(D_80052AFC) /* 07B900 7F046DD0 C4242AFC */ lwc1 $f4, %lo(D_80052AFC)($at) /* 07B904 7F046DD4 8E050098 */ lw $a1, 0x98($s0) /* 07B908 7F046DD8 44070000 */ mfc1 $a3, $f0 /* 07B90C 7F046DDC 2604009C */ addiu $a0, $s0, 0x9c /* 07B910 7F046DE0 260600A0 */ addiu $a2, $s0, 0xa0 /* 07B914 7F046DE4 E7A00010 */ swc1 $f0, 0x10($sp) /* 07B918 7F046DE8 0FC10C43 */ jal chrobjCallsApplySpeed /* 07B91C 7F046DEC E7A40014 */ swc1 $f4, 0x14($sp) /* 07B920 7F046DF0 1000050F */ b .L7F048230 /* 07B924 7F046DF4 92220003 */ lbu $v0, 3($s1) .L7F046DF8: /* 07B928 7F046DF8 C6480008 */ lwc1 $f8, 8($s2) /* 07B92C 7F046DFC C62A0058 */ lwc1 $f10, 0x58($s1) /* 07B930 7F046E00 C646000C */ lwc1 $f6, 0xc($s2) /* 07B934 7F046E04 C624005C */ lwc1 $f4, 0x5c($s1) /* 07B938 7F046E08 460A4001 */ sub.s $f0, $f8, $f10 /* 07B93C 7F046E0C 3C0141A0 */ li $at, 0x41A00000 # 20.000000 /* 07B940 7F046E10 44815000 */ mtc1 $at, $f10 /* 07B944 7F046E14 46043201 */ sub.s $f8, $f6, $f4 /* 07B948 7F046E18 460A4181 */ sub.s $f6, $f8, $f10 /* 07B94C 7F046E1C 46000282 */ mul.s $f10, $f0, $f0 /* 07B950 7F046E20 E7A604C0 */ swc1 $f6, 0x4c0($sp) /* 07B954 7F046E24 C6280060 */ lwc1 $f8, 0x60($s1) /* 07B958 7F046E28 C6440010 */ lwc1 $f4, 0x10($s2) /* 07B95C 7F046E2C E7A004C4 */ swc1 $f0, 0x4c4($sp) /* 07B960 7F046E30 46082081 */ sub.s $f2, $f4, $f8 /* 07B964 7F046E34 46021182 */ mul.s $f6, $f2, $f2 /* 07B968 7F046E38 E7A204BC */ swc1 $f2, 0x4bc($sp) /* 07B96C 7F046E3C 46065500 */ add.s $f20, $f10, $f6 /* 07B970 7F046E40 E7B404B8 */ swc1 $f20, 0x4b8($sp) /* 07B974 7F046E44 0C007DF8 */ jal sqrtf /* 07B978 7F046E48 4600A306 */ mov.s $f12, $f20 /* 07B97C 7F046E4C E7A004B0 */ swc1 $f0, 0x4b0($sp) /* 07B980 7F046E50 8E380008 */ lw $t8, 8($s1) /* 07B984 7F046E54 46000086 */ mov.s $f2, $f0 /* 07B988 7F046E58 00184100 */ sll $t0, $t8, 4 /* 07B98C 7F046E5C 05030008 */ bgezl $t0, .L7F046E80 /* 07B990 7F046E60 C7AC04B8 */ lwc1 $f12, 0x4b8($sp) /* 07B994 7F046E64 C7A004C0 */ lwc1 $f0, 0x4c0($sp) /* 07B998 7F046E68 46000102 */ mul.s $f4, $f0, $f0 /* 07B99C 7F046E6C 4604A300 */ add.s $f12, $f20, $f4 /* 07B9A0 7F046E70 0C007DF8 */ jal sqrtf /* 07B9A4 7F046E74 E7AC04B8 */ swc1 $f12, 0x4b8($sp) /* 07B9A8 7F046E78 46000086 */ mov.s $f2, $f0 /* 07B9AC 7F046E7C C7AC04B8 */ lwc1 $f12, 0x4b8($sp) .L7F046E80: /* 07B9B0 7F046E80 0FC0B491 */ jal chrlvGetAimLimitAngle /* 07B9B4 7F046E84 E7A204B4 */ swc1 $f2, 0x4b4($sp) /* 07B9B8 7F046E88 E7A004A0 */ swc1 $f0, 0x4a0($sp) /* 07B9BC 7F046E8C C6080098 */ lwc1 $f8, 0x98($s0) /* 07B9C0 7F046E90 C6100084 */ lwc1 $f16, 0x84($s0) /* 07B9C4 7F046E94 C7A204B4 */ lwc1 $f2, 0x4b4($sp) /* 07B9C8 7F046E98 E7A804D4 */ swc1 $f8, 0x4d4($sp) /* 07B9CC 7F046E9C C60A00A8 */ lwc1 $f10, 0xa8($s0) /* 07B9D0 7F046EA0 460A103E */ c.le.s $f2, $f10 /* 07B9D4 7F046EA4 00000000 */ nop /* 07B9D8 7F046EA8 45020096 */ bc1fl .L7F047104 /* 07B9DC 7F046EAC 8FAC04AC */ lw $t4, 0x4ac($sp) /* 07B9E0 7F046EB0 C7AC04C4 */ lwc1 $f12, 0x4c4($sp) /* 07B9E4 7F046EB4 C7AE04BC */ lwc1 $f14, 0x4bc($sp) /* 07B9E8 7F046EB8 0FC16A8C */ jal atan2f /* 07B9EC 7F046EBC E7B004D8 */ swc1 $f16, 0x4d8($sp) /* 07B9F0 7F046EC0 E7A0049C */ swc1 $f0, 0x49c($sp) /* 07B9F4 7F046EC4 C7AC04C0 */ lwc1 $f12, 0x4c0($sp) /* 07B9F8 7F046EC8 0FC16A8C */ jal atan2f /* 07B9FC 7F046ECC C7AE04B0 */ lwc1 $f14, 0x4b0($sp) /* 07BA00 7F046ED0 E7A00498 */ swc1 $f0, 0x498($sp) /* 07BA04 7F046ED4 8E220008 */ lw $v0, 8($s1) /* 07BA08 7F046ED8 C7B004D8 */ lwc1 $f16, 0x4d8($sp) /* 07BA0C 7F046EDC 24190001 */ li $t9, 1 /* 07BA10 7F046EE0 00025840 */ sll $t3, $v0, 1 /* 07BA14 7F046EE4 05600003 */ bltz $t3, .L7F046EF4 /* 07BA18 7F046EE8 00024880 */ sll $t1, $v0, 2 /* 07BA1C 7F046EEC 05210005 */ bgez $t1, .L7F046F04 /* 07BA20 7F046EF0 C7A6049C */ lwc1 $f6, 0x49c($sp) .L7F046EF4: /* 07BA24 7F046EF4 3C018005 */ lui $at, %hi(D_80052B00) /* 07BA28 7F046EF8 C4342B00 */ lwc1 $f20, %lo(D_80052B00)($at) /* 07BA2C 7F046EFC 10000027 */ b .L7F046F9C /* 07BA30 7F046F00 AFB904AC */ sw $t9, 0x4ac($sp) .L7F046F04: /* 07BA34 7F046F04 C6040090 */ lwc1 $f4, 0x90($s0) /* 07BA38 7F046F08 3C018005 */ lui $at, %hi(D_80052B04) /* 07BA3C 7F046F0C 46043301 */ sub.s $f12, $f6, $f4 /* 07BA40 7F046F10 4616603C */ c.lt.s $f12, $f22 /* 07BA44 7F046F14 00000000 */ nop /* 07BA48 7F046F18 45000003 */ bc1f .L7F046F28 /* 07BA4C 7F046F1C 00000000 */ nop /* 07BA50 7F046F20 C4342B04 */ lwc1 $f20, %lo(D_80052B04)($at) /* 07BA54 7F046F24 46146300 */ add.s $f12, $f12, $f20 .L7F046F28: /* 07BA58 7F046F28 3C018005 */ lui $at, %hi(D_80052B08) /* 07BA5C 7F046F2C C4342B08 */ lwc1 $f20, %lo(D_80052B08)($at) /* 07BA60 7F046F30 3C018005 */ lui $at, %hi(D_80052B0C) /* 07BA64 7F046F34 C4282B0C */ lwc1 $f8, %lo(D_80052B0C)($at) /* 07BA68 7F046F38 3C018005 */ lui $at, %hi(D_80052B10) /* 07BA6C 7F046F3C 460C403C */ c.lt.s $f8, $f12 /* 07BA70 7F046F40 00000000 */ nop /* 07BA74 7F046F44 45020003 */ bc1fl .L7F046F54 /* 07BA78 7F046F48 C60A009C */ lwc1 $f10, 0x9c($s0) /* 07BA7C 7F046F4C 46146301 */ sub.s $f12, $f12, $f20 /* 07BA80 7F046F50 C60A009C */ lwc1 $f10, 0x9c($s0) .L7F046F54: /* 07BA84 7F046F54 460A0081 */ sub.s $f2, $f0, $f10 /* 07BA88 7F046F58 4616103C */ c.lt.s $f2, $f22 /* 07BA8C 7F046F5C 00000000 */ nop /* 07BA90 7F046F60 45000001 */ bc1f .L7F046F68 /* 07BA94 7F046F64 00000000 */ nop .L7F046F68: /* 07BA98 7F046F68 C4262B10 */ lwc1 $f6, %lo(D_80052B10)($at) /* 07BA9C 7F046F6C 3C018005 */ lui $at, %hi(D_80052B14) /* 07BAA0 7F046F70 4606603C */ c.lt.s $f12, $f6 /* 07BAA4 7F046F74 00000000 */ nop /* 07BAA8 7F046F78 45020009 */ bc1fl .L7F046FA0 /* 07BAAC 7F046F7C 8FAC04AC */ lw $t4, 0x4ac($sp) /* 07BAB0 7F046F80 C4242B14 */ lwc1 $f4, %lo(D_80052B14)($at) /* 07BAB4 7F046F84 240A0001 */ li $t2, 1 /* 07BAB8 7F046F88 460C203C */ c.lt.s $f4, $f12 /* 07BABC 7F046F8C 00000000 */ nop /* 07BAC0 7F046F90 45020003 */ bc1fl .L7F046FA0 /* 07BAC4 7F046F94 8FAC04AC */ lw $t4, 0x4ac($sp) /* 07BAC8 7F046F98 AFAA04AC */ sw $t2, 0x4ac($sp) .L7F046F9C: /* 07BACC 7F046F9C 8FAC04AC */ lw $t4, 0x4ac($sp) .L7F046FA0: /* 07BAD0 7F046FA0 C7A8049C */ lwc1 $f8, 0x49c($sp) /* 07BAD4 7F046FA4 02402025 */ move $a0, $s2 /* 07BAD8 7F046FA8 11800055 */ beqz $t4, .L7F047100 /* 07BADC 7F046FAC 00002825 */ move $a1, $zero /* 07BAE0 7F046FB0 C60A0084 */ lwc1 $f10, 0x84($s0) /* 07BAE4 7F046FB4 3C018005 */ lui $at, %hi(D_80052B18) /* 07BAE8 7F046FB8 C4262B18 */ lwc1 $f6, %lo(D_80052B18)($at) /* 07BAEC 7F046FBC 460A4001 */ sub.s $f0, $f8, $f10 /* 07BAF0 7F046FC0 8E6E0014 */ lw $t6, 0x14($s3) /* 07BAF4 7F046FC4 3C018005 */ lui $at, %hi(D_80052B1C) /* 07BAF8 7F046FC8 4606003C */ c.lt.s $f0, $f6 /* 07BAFC 7F046FCC AFAE0490 */ sw $t6, 0x490($sp) /* 07BB00 7F046FD0 45000003 */ bc1f .L7F046FE0 /* 07BB04 7F046FD4 00000000 */ nop /* 07BB08 7F046FD8 10000007 */ b .L7F046FF8 /* 07BB0C 7F046FDC 46140000 */ add.s $f0, $f0, $f20 .L7F046FE0: /* 07BB10 7F046FE0 C4242B1C */ lwc1 $f4, %lo(D_80052B1C)($at) /* 07BB14 7F046FE4 4600203E */ c.le.s $f4, $f0 /* 07BB18 7F046FE8 00000000 */ nop /* 07BB1C 7F046FEC 45020003 */ bc1fl .L7F046FFC /* 07BB20 7F046FF0 E7A00494 */ swc1 $f0, 0x494($sp) /* 07BB24 7F046FF4 46140001 */ sub.s $f0, $f0, $f20 .L7F046FF8: /* 07BB28 7F046FF8 E7A00494 */ swc1 $f0, 0x494($sp) .L7F046FFC: /* 07BB2C 7F046FFC 0FC2280F */ jal bondviewUpdateGuardTankFlagsRelated /* 07BB30 7F047000 E7B004D8 */ swc1 $f16, 0x4d8($sp) /* 07BB34 7F047004 C7A00494 */ lwc1 $f0, 0x494($sp) /* 07BB38 7F047008 C6080088 */ lwc1 $f8, 0x88($s0) /* 07BB3C 7F04700C C7B004D8 */ lwc1 $f16, 0x4d8($sp) /* 07BB40 7F047010 4608003E */ c.le.s $f0, $f8 /* 07BB44 7F047014 00000000 */ nop /* 07BB48 7F047018 45020027 */ bc1fl .L7F0470B8 /* 07BB4C 7F04701C 8E0200B8 */ lw $v0, 0xb8($s0) /* 07BB50 7F047020 C60A008C */ lwc1 $f10, 0x8c($s0) /* 07BB54 7F047024 240D001B */ li $t5, 27 /* 07BB58 7F047028 4600503E */ c.le.s $f10, $f0 /* 07BB5C 7F04702C 00000000 */ nop /* 07BB60 7F047030 45020021 */ bc1fl .L7F0470B8 /* 07BB64 7F047034 8E0200B8 */ lw $v0, 0xb8($s0) /* 07BB68 7F047038 C6460010 */ lwc1 $f6, 0x10($s2) /* 07BB6C 7F04703C 8E650008 */ lw $a1, 8($s3) /* 07BB70 7F047040 8E660010 */ lw $a2, 0x10($s3) /* 07BB74 7F047044 8E470008 */ lw $a3, 8($s2) /* 07BB78 7F047048 AFAD0014 */ sw $t5, 0x14($sp) /* 07BB7C 7F04704C E7A60010 */ swc1 $f6, 0x10($sp) /* 07BB80 7F047050 C660000C */ lwc1 $f0, 0xc($s3) /* 07BB84 7F047054 27A40490 */ addiu $a0, $sp, 0x490 /* 07BB88 7F047058 E7A00018 */ swc1 $f0, 0x18($sp) /* 07BB8C 7F04705C E7A0001C */ swc1 $f0, 0x1c($sp) /* 07BB90 7F047060 C642000C */ lwc1 $f2, 0xc($s2) /* 07BB94 7F047064 E7B004D8 */ swc1 $f16, 0x4d8($sp) /* 07BB98 7F047068 E7A20020 */ swc1 $f2, 0x20($sp) /* 07BB9C 7F04706C 0FC2C389 */ jal stanTestLineUnobstructed /* 07BBA0 7F047070 E7A20024 */ swc1 $f2, 0x24($sp) /* 07BBA4 7F047074 1040000F */ beqz $v0, .L7F0470B4 /* 07BBA8 7F047078 C7B004D8 */ lwc1 $f16, 0x4d8($sp) /* 07BBAC 7F04707C 8FAF0490 */ lw $t7, 0x490($sp) /* 07BBB0 7F047080 8E580014 */ lw $t8, 0x14($s2) /* 07BBB4 7F047084 55F8000C */ bnel $t7, $t8, .L7F0470B8 /* 07BBB8 7F047088 8E0200B8 */ lw $v0, 0xb8($s0) /* 07BBBC 7F04708C 8E280008 */ lw $t0, 8($s1) /* 07BBC0 7F047090 3C012000 */ lui $at, 0x2000 /* 07BBC4 7F047094 24090001 */ li $t1, 1 /* 07BBC8 7F047098 01015825 */ or $t3, $t0, $at /* 07BBCC 7F04709C AE2B0008 */ sw $t3, 8($s1) /* 07BBD0 7F0470A0 C7A40498 */ lwc1 $f4, 0x498($sp) /* 07BBD4 7F0470A4 AFA904A4 */ sw $t1, 0x4a4($sp) /* 07BBD8 7F0470A8 C7B0049C */ lwc1 $f16, 0x49c($sp) /* 07BBDC 7F0470AC 1000000F */ b .L7F0470EC /* 07BBE0 7F0470B0 E7A404D4 */ swc1 $f4, 0x4d4($sp) .L7F0470B4: /* 07BBE4 7F0470B4 8E0200B8 */ lw $v0, 0xb8($s0) .L7F0470B8: /* 07BBE8 7F0470B8 3C198005 */ lui $t9, %hi(g_GlobalTimer) /* 07BBEC 7F0470BC 0442000B */ bltzl $v0, .L7F0470EC /* 07BBF0 7F0470C0 AFA004AC */ sw $zero, 0x4ac($sp) /* 07BBF4 7F0470C4 8F39837C */ lw $t9, %lo(g_GlobalTimer)($t9) /* 07BBF8 7F0470C8 272AFF88 */ addiu $t2, $t9, -0x78 /* 07BBFC 7F0470CC 0142082A */ slt $at, $t2, $v0 /* 07BC00 7F0470D0 50200006 */ beql $at, $zero, .L7F0470EC /* 07BC04 7F0470D4 AFA004AC */ sw $zero, 0x4ac($sp) /* 07BC08 7F0470D8 C608009C */ lwc1 $f8, 0x9c($s0) /* 07BC0C 7F0470DC C6100090 */ lwc1 $f16, 0x90($s0) /* 07BC10 7F0470E0 10000002 */ b .L7F0470EC /* 07BC14 7F0470E4 E7A804D4 */ swc1 $f8, 0x4d4($sp) /* 07BC18 7F0470E8 AFA004AC */ sw $zero, 0x4ac($sp) .L7F0470EC: /* 07BC1C 7F0470EC 02402025 */ move $a0, $s2 /* 07BC20 7F0470F0 24050001 */ li $a1, 1 /* 07BC24 7F0470F4 0FC2280F */ jal bondviewUpdateGuardTankFlagsRelated /* 07BC28 7F0470F8 E7B004D8 */ swc1 $f16, 0x4d8($sp) /* 07BC2C 7F0470FC C7B004D8 */ lwc1 $f16, 0x4d8($sp) .L7F047100: /* 07BC30 7F047100 8FAC04AC */ lw $t4, 0x4ac($sp) .L7F047104: /* 07BC34 7F047104 3C018005 */ lui $at, %hi(D_80052B20) /* 07BC38 7F047108 C4342B20 */ lwc1 $f20, %lo(D_80052B20)($at) /* 07BC3C 7F04710C 51800007 */ beql $t4, $zero, .L7F04712C /* 07BC40 7F047110 8E0E00D0 */ lw $t6, 0xd0($s0) /* 07BC44 7F047114 C7AC04B8 */ lwc1 $f12, 0x4b8($sp) /* 07BC48 7F047118 0FC0B491 */ jal chrlvGetAimLimitAngle /* 07BC4C 7F04711C E7B004D8 */ swc1 $f16, 0x4d8($sp) /* 07BC50 7F047120 C7B004D8 */ lwc1 $f16, 0x4d8($sp) /* 07BC54 7F047124 E7A004A0 */ swc1 $f0, 0x4a0($sp) /* 07BC58 7F047128 8E0E00D0 */ lw $t6, 0xd0($s0) .L7F04712C: /* 07BC5C 7F04712C 11C0001F */ beqz $t6, .L7F0471AC /* 07BC60 7F047130 3C0D8005 */ lui $t5, %hi(g_GlobalTimer) /* 07BC64 7F047134 8DAD837C */ lw $t5, %lo(g_GlobalTimer)($t5) /* 07BC68 7F047138 24010078 */ li $at, 120 /* 07BC6C 7F04713C E7B004D8 */ swc1 $f16, 0x4d8($sp) /* 07BC70 7F047140 01A1001A */ div $zero, $t5, $at /* 07BC74 7F047144 00007810 */ mfhi $t7 /* 07BC78 7F047148 448F5000 */ mtc1 $t7, $f10 /* 07BC7C 7F04714C 3C0142F0 */ li $at, 0x42F00000 # 120.000000 /* 07BC80 7F047150 44814000 */ mtc1 $at, $f8 /* 07BC84 7F047154 468051A0 */ cvt.s.w $f6, $f10 /* 07BC88 7F047158 46143102 */ mul.s $f4, $f6, $f20 /* 07BC8C 7F04715C 0FC15FAB */ jal sinf /* 07BC90 7F047160 46082303 */ div.s $f12, $f4, $f8 /* 07BC94 7F047164 3C018005 */ lui $at, %hi(D_80052B24) /* 07BC98 7F047168 C4262B24 */ lwc1 $f6, %lo(D_80052B24)($at) /* 07BC9C 7F04716C C7AA04A0 */ lwc1 $f10, 0x4a0($sp) /* 07BCA0 7F047170 C7B004D8 */ lwc1 $f16, 0x4d8($sp) /* 07BCA4 7F047174 46065102 */ mul.s $f4, $f10, $f6 /* 07BCA8 7F047178 00000000 */ nop /* 07BCAC 7F04717C 46002202 */ mul.s $f8, $f4, $f0 /* 07BCB0 7F047180 46088400 */ add.s $f16, $f16, $f8 /* 07BCB4 7F047184 4616803C */ c.lt.s $f16, $f22 /* 07BCB8 7F047188 00000000 */ nop /* 07BCBC 7F04718C 45000002 */ bc1f .L7F047198 /* 07BCC0 7F047190 00000000 */ nop /* 07BCC4 7F047194 46148400 */ add.s $f16, $f16, $f20 .L7F047198: /* 07BCC8 7F047198 4610A03E */ c.le.s $f20, $f16 /* 07BCCC 7F04719C 00000000 */ nop /* 07BCD0 7F0471A0 45020003 */ bc1fl .L7F0471B0 /* 07BCD4 7F0471A4 C6020084 */ lwc1 $f2, 0x84($s0) /* 07BCD8 7F0471A8 46148401 */ sub.s $f16, $f16, $f20 .L7F0471AC: /* 07BCDC 7F0471AC C6020084 */ lwc1 $f2, 0x84($s0) .L7F0471B0: /* 07BCE0 7F0471B0 3C018005 */ lui $at, %hi(D_80052B28) /* 07BCE4 7F0471B4 C42A2B28 */ lwc1 $f10, %lo(D_80052B28)($at) /* 07BCE8 7F0471B8 46028001 */ sub.s $f0, $f16, $f2 /* 07BCEC 7F0471BC 26040090 */ addiu $a0, $s0, 0x90 /* 07BCF0 7F0471C0 460A003C */ c.lt.s $f0, $f10 /* 07BCF4 7F0471C4 00000000 */ nop /* 07BCF8 7F0471C8 45000003 */ bc1f .L7F0471D8 /* 07BCFC 7F0471CC 00000000 */ nop /* 07BD00 7F0471D0 10000008 */ b .L7F0471F4 /* 07BD04 7F0471D4 46140000 */ add.s $f0, $f0, $f20 .L7F0471D8: /* 07BD08 7F0471D8 3C018005 */ lui $at, %hi(D_80052B2C) /* 07BD0C 7F0471DC C4262B2C */ lwc1 $f6, %lo(D_80052B2C)($at) /* 07BD10 7F0471E0 4600303E */ c.le.s $f6, $f0 /* 07BD14 7F0471E4 00000000 */ nop /* 07BD18 7F0471E8 45020003 */ bc1fl .L7F0471F8 /* 07BD1C 7F0471EC C60C0088 */ lwc1 $f12, 0x88($s0) /* 07BD20 7F0471F0 46140001 */ sub.s $f0, $f0, $f20 .L7F0471F4: /* 07BD24 7F0471F4 C60C0088 */ lwc1 $f12, 0x88($s0) .L7F0471F8: /* 07BD28 7F0471F8 3C018005 */ lui $at, %hi(D_80052B30) /* 07BD2C 7F0471FC 4600603C */ c.lt.s $f12, $f0 /* 07BD30 7F047200 00000000 */ nop /* 07BD34 7F047204 45020004 */ bc1fl .L7F047218 /* 07BD38 7F047208 C60C008C */ lwc1 $f12, 0x8c($s0) /* 07BD3C 7F04720C 10000007 */ b .L7F04722C /* 07BD40 7F047210 460C1400 */ add.s $f16, $f2, $f12 /* 07BD44 7F047214 C60C008C */ lwc1 $f12, 0x8c($s0) .L7F047218: /* 07BD48 7F047218 460C003C */ c.lt.s $f0, $f12 /* 07BD4C 7F04721C 00000000 */ nop /* 07BD50 7F047220 45020003 */ bc1fl .L7F047230 /* 07BD54 7F047224 4616803C */ c.lt.s $f16, $f22 /* 07BD58 7F047228 460C1400 */ add.s $f16, $f2, $f12 .L7F04722C: /* 07BD5C 7F04722C 4616803C */ c.lt.s $f16, $f22 .L7F047230: /* 07BD60 7F047230 00000000 */ nop /* 07BD64 7F047234 45020003 */ bc1fl .L7F047244 /* 07BD68 7F047238 4610A03E */ c.le.s $f20, $f16 /* 07BD6C 7F04723C 46148400 */ add.s $f16, $f16, $f20 /* 07BD70 7F047240 4610A03E */ c.le.s $f20, $f16 .L7F047244: /* 07BD74 7F047244 00000000 */ nop /* 07BD78 7F047248 45000002 */ bc1f .L7F047254 /* 07BD7C 7F04724C 00000000 */ nop /* 07BD80 7F047250 46148401 */ sub.s $f16, $f16, $f20 .L7F047254: /* 07BD84 7F047254 C4202B30 */ lwc1 $f0, %lo(D_80052B30)($at) /* 07BD88 7F047258 44058000 */ mfc1 $a1, $f16 /* 07BD8C 7F04725C 26060094 */ addiu $a2, $s0, 0x94 /* 07BD90 7F047260 E7A00010 */ swc1 $f0, 0x10($sp) /* 07BD94 7F047264 C60400A4 */ lwc1 $f4, 0xa4($s0) /* 07BD98 7F047268 44070000 */ mfc1 $a3, $f0 /* 07BD9C 7F04726C E7B004D8 */ swc1 $f16, 0x4d8($sp) /* 07BDA0 7F047270 0FC10C43 */ jal chrobjCallsApplySpeed /* 07BDA4 7F047274 E7A40014 */ swc1 $f4, 0x14($sp) /* 07BDA8 7F047278 3C018005 */ lui $at, %hi(D_80052B34) /* 07BDAC 7F04727C C4202B34 */ lwc1 $f0, %lo(D_80052B34)($at) /* 07BDB0 7F047280 2604009C */ addiu $a0, $s0, 0x9c /* 07BDB4 7F047284 8FA504D4 */ lw $a1, 0x4d4($sp) /* 07BDB8 7F047288 E7A00010 */ swc1 $f0, 0x10($sp) /* 07BDBC 7F04728C C60800A4 */ lwc1 $f8, 0xa4($s0) /* 07BDC0 7F047290 44070000 */ mfc1 $a3, $f0 /* 07BDC4 7F047294 260600A0 */ addiu $a2, $s0, 0xa0 /* 07BDC8 7F047298 0FC10C43 */ jal chrobjCallsApplySpeed /* 07BDCC 7F04729C E7A80014 */ swc1 $f8, 0x14($sp) /* 07BDD0 7F0472A0 C7B004D8 */ lwc1 $f16, 0x4d8($sp) /* 07BDD4 7F0472A4 C60A0090 */ lwc1 $f10, 0x90($s0) /* 07BDD8 7F0472A8 3C018005 */ lui $at, %hi(D_80052B38) /* 07BDDC 7F0472AC C7A604D4 */ lwc1 $f6, 0x4d4($sp) /* 07BDE0 7F0472B0 460A8301 */ sub.s $f12, $f16, $f10 /* 07BDE4 7F0472B4 4616603C */ c.lt.s $f12, $f22 /* 07BDE8 7F0472B8 00000000 */ nop /* 07BDEC 7F0472BC 45000002 */ bc1f .L7F0472C8 /* 07BDF0 7F0472C0 00000000 */ nop /* 07BDF4 7F0472C4 46146300 */ add.s $f12, $f12, $f20 .L7F0472C8: /* 07BDF8 7F0472C8 C4202B38 */ lwc1 $f0, %lo(D_80052B38)($at) /* 07BDFC 7F0472CC 460C003C */ c.lt.s $f0, $f12 /* 07BE00 7F0472D0 00000000 */ nop /* 07BE04 7F0472D4 45020003 */ bc1fl .L7F0472E4 /* 07BE08 7F0472D8 C604009C */ lwc1 $f4, 0x9c($s0) /* 07BE0C 7F0472DC 46146301 */ sub.s $f12, $f12, $f20 /* 07BE10 7F0472E0 C604009C */ lwc1 $f4, 0x9c($s0) .L7F0472E4: /* 07BE14 7F0472E4 46043081 */ sub.s $f2, $f6, $f4 /* 07BE18 7F0472E8 4616103C */ c.lt.s $f2, $f22 /* 07BE1C 7F0472EC 00000000 */ nop /* 07BE20 7F0472F0 45020003 */ bc1fl .L7F047300 /* 07BE24 7F0472F4 4602003C */ c.lt.s $f0, $f2 /* 07BE28 7F0472F8 46141080 */ add.s $f2, $f2, $f20 /* 07BE2C 7F0472FC 4602003C */ c.lt.s $f0, $f2 .L7F047300: /* 07BE30 7F047300 00000000 */ nop /* 07BE34 7F047304 45020003 */ bc1fl .L7F047314 /* 07BE38 7F047308 AE0000D0 */ sw $zero, 0xd0($s0) /* 07BE3C 7F04730C 46141081 */ sub.s $f2, $f2, $f20 /* 07BE40 7F047310 AE0000D0 */ sw $zero, 0xd0($s0) .L7F047314: /* 07BE44 7F047314 8FB804AC */ lw $t8, 0x4ac($sp) /* 07BE48 7F047318 C7A804A0 */ lwc1 $f8, 0x4a0($sp) /* 07BE4C 7F04731C 53000047 */ beql $t8, $zero, .L7F04743C /* 07BE50 7F047320 8FB904A8 */ lw $t9, 0x4a8($sp) /* 07BE54 7F047324 4608603C */ c.lt.s $f12, $f8 /* 07BE58 7F047328 C7AA04A0 */ lwc1 $f10, 0x4a0($sp) /* 07BE5C 7F04732C 4502001B */ bc1fl .L7F04739C /* 07BE60 7F047330 460A5000 */ add.s $f0, $f10, $f10 /* 07BE64 7F047334 46004007 */ neg.s $f0, $f8 /* 07BE68 7F047338 460C003C */ c.lt.s $f0, $f12 /* 07BE6C 7F04733C 00000000 */ nop /* 07BE70 7F047340 45020016 */ bc1fl .L7F04739C /* 07BE74 7F047344 460A5000 */ add.s $f0, $f10, $f10 /* 07BE78 7F047348 4608103C */ c.lt.s $f2, $f8 /* 07BE7C 7F04734C 00000000 */ nop /* 07BE80 7F047350 45020012 */ bc1fl .L7F04739C /* 07BE84 7F047354 460A5000 */ add.s $f0, $f10, $f10 /* 07BE88 7F047358 4602003C */ c.lt.s $f0, $f2 /* 07BE8C 7F04735C 24080001 */ li $t0, 1 /* 07BE90 7F047360 4502000E */ bc1fl .L7F04739C /* 07BE94 7F047364 460A5000 */ add.s $f0, $f10, $f10 /* 07BE98 7F047368 AE0800D0 */ sw $t0, 0xd0($s0) /* 07BE9C 7F04736C 8FA904A4 */ lw $t1, 0x4a4($sp) /* 07BEA0 7F047370 240B0001 */ li $t3, 1 /* 07BEA4 7F047374 AFAB04A8 */ sw $t3, 0x4a8($sp) /* 07BEA8 7F047378 1120002F */ beqz $t1, .L7F047438 /* 07BEAC 7F04737C 3C198005 */ lui $t9, %hi(g_GlobalTimer) /* 07BEB0 7F047380 8F39837C */ lw $t9, %lo(g_GlobalTimer)($t9) /* 07BEB4 7F047384 3C0A8005 */ lui $t2, %hi(g_GlobalTimer) /* 07BEB8 7F047388 AE1900B8 */ sw $t9, 0xb8($s0) /* 07BEBC 7F04738C 8D4A837C */ lw $t2, %lo(g_GlobalTimer)($t2) /* 07BEC0 7F047390 10000029 */ b .L7F047438 /* 07BEC4 7F047394 AE0A00BC */ sw $t2, 0xbc($s0) /* 07BEC8 7F047398 460A5000 */ add.s $f0, $f10, $f10 .L7F04739C: /* 07BECC 7F04739C 4600603C */ c.lt.s $f12, $f0 /* 07BED0 7F0473A0 00000000 */ nop /* 07BED4 7F0473A4 45020018 */ bc1fl .L7F047408 /* 07BED8 7F0473A8 8E0200B8 */ lw $v0, 0xb8($s0) /* 07BEDC 7F0473AC 46000387 */ neg.s $f14, $f0 /* 07BEE0 7F0473B0 460C703C */ c.lt.s $f14, $f12 /* 07BEE4 7F0473B4 00000000 */ nop /* 07BEE8 7F0473B8 45020013 */ bc1fl .L7F047408 /* 07BEEC 7F0473BC 8E0200B8 */ lw $v0, 0xb8($s0) /* 07BEF0 7F0473C0 4600103C */ c.lt.s $f2, $f0 /* 07BEF4 7F0473C4 00000000 */ nop /* 07BEF8 7F0473C8 4502000F */ bc1fl .L7F047408 /* 07BEFC 7F0473CC 8E0200B8 */ lw $v0, 0xb8($s0) /* 07BF00 7F0473D0 4602703C */ c.lt.s $f14, $f2 /* 07BF04 7F0473D4 240C0001 */ li $t4, 1 /* 07BF08 7F0473D8 4502000B */ bc1fl .L7F047408 /* 07BF0C 7F0473DC 8E0200B8 */ lw $v0, 0xb8($s0) /* 07BF10 7F0473E0 AE0C00D0 */ sw $t4, 0xd0($s0) /* 07BF14 7F0473E4 8FAD04A4 */ lw $t5, 0x4a4($sp) /* 07BF18 7F0473E8 240E0001 */ li $t6, 1 /* 07BF1C 7F0473EC AFAE04A8 */ sw $t6, 0x4a8($sp) /* 07BF20 7F0473F0 11A00011 */ beqz $t5, .L7F047438 /* 07BF24 7F0473F4 3C0F8005 */ lui $t7, %hi(g_GlobalTimer) /* 07BF28 7F0473F8 8DEF837C */ lw $t7, %lo(g_GlobalTimer)($t7) /* 07BF2C 7F0473FC 1000000E */ b .L7F047438 /* 07BF30 7F047400 AE0F00B8 */ sw $t7, 0xb8($s0) /* 07BF34 7F047404 8E0200B8 */ lw $v0, 0xb8($s0) .L7F047408: /* 07BF38 7F047408 3C188005 */ lui $t8, %hi(g_GlobalTimer) /* 07BF3C 7F04740C 0442000B */ bltzl $v0, .L7F04743C /* 07BF40 7F047410 8FB904A8 */ lw $t9, 0x4a8($sp) /* 07BF44 7F047414 8F18837C */ lw $t8, %lo(g_GlobalTimer)($t8) /* 07BF48 7F047418 240B0001 */ li $t3, 1 /* 07BF4C 7F04741C 24090001 */ li $t1, 1 /* 07BF50 7F047420 2708FF88 */ addiu $t0, $t8, -0x78 /* 07BF54 7F047424 0102082A */ slt $at, $t0, $v0 /* 07BF58 7F047428 50200004 */ beql $at, $zero, .L7F04743C /* 07BF5C 7F04742C 8FB904A8 */ lw $t9, 0x4a8($sp) /* 07BF60 7F047430 AE0B00D0 */ sw $t3, 0xd0($s0) /* 07BF64 7F047434 AFA904A8 */ sw $t1, 0x4a8($sp) .L7F047438: /* 07BF68 7F047438 8FB904A8 */ lw $t9, 0x4a8($sp) .L7F04743C: /* 07BF6C 7F04743C 3C018005 */ lui $at, %hi(D_80052B3C) /* 07BF70 7F047440 53200013 */ beql $t9, $zero, .L7F047490 /* 07BF74 7F047444 C60200B0 */ lwc1 $f2, 0xb0($s0) /* 07BF78 7F047448 C4202B3C */ lwc1 $f0, %lo(D_80052B3C)($at) /* 07BF7C 7F04744C 3C018005 */ lui $at, %hi(D_80052B40) /* 07BF80 7F047450 C4262B40 */ lwc1 $f6, %lo(D_80052B40)($at) /* 07BF84 7F047454 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) /* 07BF88 7F047458 C4248378 */ lwc1 $f4, %lo(g_GlobalTimerDelta)($at) /* 07BF8C 7F04745C C60A00B0 */ lwc1 $f10, 0xb0($s0) /* 07BF90 7F047460 46043202 */ mul.s $f8, $f6, $f4 /* 07BF94 7F047464 46085180 */ add.s $f6, $f10, $f8 /* 07BF98 7F047468 E60600B0 */ swc1 $f6, 0xb0($s0) /* 07BF9C 7F04746C C60200B0 */ lwc1 $f2, 0xb0($s0) /* 07BFA0 7F047470 4602003C */ c.lt.s $f0, $f2 /* 07BFA4 7F047474 00000000 */ nop /* 07BFA8 7F047478 45020023 */ bc1fl .L7F047508 /* 07BFAC 7F04747C 4602B03C */ c.lt.s $f22, $f2 /* 07BFB0 7F047480 E60000B0 */ swc1 $f0, 0xb0($s0) /* 07BFB4 7F047484 1000001F */ b .L7F047504 /* 07BFB8 7F047488 C60200B0 */ lwc1 $f2, 0xb0($s0) /* 07BFBC 7F04748C C60200B0 */ lwc1 $f2, 0xb0($s0) .L7F047490: /* 07BFC0 7F047490 3C0A8005 */ lui $t2, %hi(g_ClockTimer) /* 07BFC4 7F047494 4602B03C */ c.lt.s $f22, $f2 /* 07BFC8 7F047498 00000000 */ nop /* 07BFCC 7F04749C 4502001A */ bc1fl .L7F047508 /* 07BFD0 7F0474A0 4602B03C */ c.lt.s $f22, $f2 /* 07BFD4 7F0474A4 8D4A8374 */ lw $t2, %lo(g_ClockTimer)($t2) /* 07BFD8 7F0474A8 00001025 */ move $v0, $zero /* 07BFDC 7F0474AC 3C018005 */ lui $at, %hi(D_80052B44) /* 07BFE0 7F0474B0 1940000C */ blez $t2, .L7F0474E4 /* 07BFE4 7F0474B4 00000000 */ nop /* 07BFE8 7F0474B8 C4202B44 */ lwc1 $f0, %lo(D_80052B44)($at) /* 07BFEC 7F0474BC C60400B0 */ lwc1 $f4, 0xb0($s0) .L7F0474C0: /* 07BFF0 7F0474C0 3C0C8005 */ lui $t4, %hi(g_ClockTimer) /* 07BFF4 7F0474C4 24420001 */ addiu $v0, $v0, 1 /* 07BFF8 7F0474C8 46002282 */ mul.s $f10, $f4, $f0 /* 07BFFC 7F0474CC E60A00B0 */ swc1 $f10, 0xb0($s0) /* 07C000 7F0474D0 8D8C8374 */ lw $t4, %lo(g_ClockTimer)($t4) /* 07C004 7F0474D4 004C082A */ slt $at, $v0, $t4 /* 07C008 7F0474D8 5420FFF9 */ bnezl $at, .L7F0474C0 /* 07C00C 7F0474DC C60400B0 */ lwc1 $f4, 0xb0($s0) /* 07C010 7F0474E0 C60200B0 */ lwc1 $f2, 0xb0($s0) .L7F0474E4: /* 07C014 7F0474E4 3C018005 */ lui $at, %hi(D_80052B48) /* 07C018 7F0474E8 C4282B48 */ lwc1 $f8, %lo(D_80052B48)($at) /* 07C01C 7F0474EC 4608103E */ c.le.s $f2, $f8 /* 07C020 7F0474F0 00000000 */ nop /* 07C024 7F0474F4 45020004 */ bc1fl .L7F047508 /* 07C028 7F0474F8 4602B03C */ c.lt.s $f22, $f2 /* 07C02C 7F0474FC E61600B0 */ swc1 $f22, 0xb0($s0) /* 07C030 7F047500 C60200B0 */ lwc1 $f2, 0xb0($s0) .L7F047504: /* 07C034 7F047504 4602B03C */ c.lt.s $f22, $f2 .L7F047508: /* 07C038 7F047508 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) /* 07C03C 7F04750C 45020348 */ bc1fl .L7F048230 /* 07C040 7F047510 92220003 */ lbu $v0, 3($s1) /* 07C044 7F047514 C4248378 */ lwc1 $f4, %lo(g_GlobalTimerDelta)($at) /* 07C048 7F047518 C60600B4 */ lwc1 $f6, 0xb4($s0) /* 07C04C 7F04751C 46041282 */ mul.s $f10, $f2, $f4 /* 07C050 7F047520 460A3200 */ add.s $f8, $f6, $f10 /* 07C054 7F047524 E60800B4 */ swc1 $f8, 0xb4($s0) /* 07C058 7F047528 C60000B4 */ lwc1 $f0, 0xb4($s0) /* 07C05C 7F04752C 4600A03E */ c.le.s $f20, $f0 /* 07C060 7F047530 00000000 */ nop /* 07C064 7F047534 4502033E */ bc1fl .L7F048230 /* 07C068 7F047538 92220003 */ lbu $v0, 3($s1) /* 07C06C 7F04753C 46140101 */ sub.s $f4, $f0, $f20 .L7F047540: /* 07C070 7F047540 E60400B4 */ swc1 $f4, 0xb4($s0) /* 07C074 7F047544 C60000B4 */ lwc1 $f0, 0xb4($s0) /* 07C078 7F047548 4600A03E */ c.le.s $f20, $f0 /* 07C07C 7F04754C 00000000 */ nop /* 07C080 7F047550 4503FFFB */ bc1tl .L7F047540 /* 07C084 7F047554 46140101 */ sub.s $f4, $f0, $f20 /* 07C088 7F047558 10000335 */ b .L7F048230 /* 07C08C 7F04755C 92220003 */ lbu $v0, 3($s1) /* 07C090 7F047560 24010027 */ li $at, 39 .L7F047564: /* 07C094 7F047564 14410255 */ bne $v0, $at, .L7F047EBC /* 07C098 7F047568 02202025 */ move $a0, $s1 /* 07C09C 7F04756C C62600A0 */ lwc1 $f6, 0xa0($s1) /* 07C0A0 7F047570 AFA00478 */ sw $zero, 0x478($sp) /* 07C0A4 7F047574 24050001 */ li $a1, 1 /* 07C0A8 7F047578 0FC0D521 */ jal ai /* 07C0AC 7F04757C E7A6047C */ swc1 $f6, 0x47c($sp) /* 07C0B0 7F047580 C62E0098 */ lwc1 $f14, 0x98($s1) /* 07C0B4 7F047584 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) /* 07C0B8 7F047588 460EB03E */ c.le.s $f22, $f14 /* 07C0BC 7F04758C 00000000 */ nop /* 07C0C0 7F047590 45020016 */ bc1fl .L7F0475EC /* 07C0C4 7F047594 8E2E000C */ lw $t6, 0xc($s1) /* 07C0C8 7F047598 C4228378 */ lwc1 $f2, %lo(g_GlobalTimerDelta)($at) /* 07C0CC 7F04759C 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) /* 07C0D0 7F0475A0 4602703E */ c.le.s $f14, $f2 /* 07C0D4 7F0475A4 00000000 */ nop /* 07C0D8 7F0475A8 45020006 */ bc1fl .L7F0475C4 /* 07C0DC 7F0475AC C6200088 */ lwc1 $f0, 0x88($s1) /* 07C0E0 7F0475B0 C62A0094 */ lwc1 $f10, 0x94($s1) /* 07C0E4 7F0475B4 C62E0098 */ lwc1 $f14, 0x98($s1) /* 07C0E8 7F0475B8 10000008 */ b .L7F0475DC /* 07C0EC 7F0475BC E62A0088 */ swc1 $f10, 0x88($s1) /* 07C0F0 7F0475C0 C6200088 */ lwc1 $f0, 0x88($s1) .L7F0475C4: /* 07C0F4 7F0475C4 C6280094 */ lwc1 $f8, 0x94($s1) /* 07C0F8 7F0475C8 46004101 */ sub.s $f4, $f8, $f0 /* 07C0FC 7F0475CC 46022182 */ mul.s $f6, $f4, $f2 /* 07C100 7F0475D0 460E3283 */ div.s $f10, $f6, $f14 /* 07C104 7F0475D4 460A0200 */ add.s $f8, $f0, $f10 /* 07C108 7F0475D8 E6280088 */ swc1 $f8, 0x88($s1) .L7F0475DC: /* 07C10C 7F0475DC C4248378 */ lwc1 $f4, %lo(g_GlobalTimerDelta)($at) /* 07C110 7F0475E0 46047181 */ sub.s $f6, $f14, $f4 /* 07C114 7F0475E4 E6260098 */ swc1 $f6, 0x98($s1) /* 07C118 7F0475E8 8E2E000C */ lw $t6, 0xc($s1) .L7F0475EC: /* 07C11C 7F0475EC 00008025 */ move $s0, $zero /* 07C120 7F0475F0 000E6B00 */ sll $t5, $t6, 0xc /* 07C124 7F0475F4 05A00014 */ bltz $t5, .L7F047648 /* 07C128 7F0475F8 00000000 */ nop /* 07C12C 7F0475FC 0FC13BCD */ jal objIsHealthy /* 07C130 7F047600 02202025 */ move $a0, $s1 /* 07C134 7F047604 10400010 */ beqz $v0, .L7F047648 /* 07C138 7F047608 00000000 */ nop /* 07C13C 7F04760C C62A0088 */ lwc1 $f10, 0x88($s1) /* 07C140 7F047610 26240058 */ addiu $a0, $s1, 0x58 /* 07C144 7F047614 3C0544FA */ lui $a1, 0x44fa /* 07C148 7F047618 460AB03C */ c.lt.s $f22, $f10 /* 07C14C 7F04761C 3C06453B */ lui $a2, (0x453B8000 >> 16) # lui $a2, 0x453b /* 07C150 7F047620 45010006 */ bc1t .L7F04763C /* 07C154 7F047624 00000000 */ nop /* 07C158 7F047628 C6280094 */ lwc1 $f8, 0x94($s1) /* 07C15C 7F04762C 4608B03C */ c.lt.s $f22, $f8 /* 07C160 7F047630 00000000 */ nop /* 07C164 7F047634 45000004 */ bc1f .L7F047648 /* 07C168 7F047638 00000000 */ nop .L7F04763C: /* 07C16C 7F04763C 0FC14E25 */ jal sub_GAME_7F053894 /* 07C170 7F047640 34C68000 */ ori $a2, (0x453B8000 & 0xFFFF) # ori $a2, $a2, 0x8000 /* 07C174 7F047644 00408025 */ move $s0, $v0 .L7F047648: /* 07C178 7F047648 5A000019 */ blezl $s0, .L7F0476B0 /* 07C17C 7F04764C 8E2400AC */ lw $a0, 0xac($s1) /* 07C180 7F047650 8E2400AC */ lw $a0, 0xac($s1) /* 07C184 7F047654 10800005 */ beqz $a0, .L7F04766C /* 07C188 7F047658 00000000 */ nop /* 07C18C 7F04765C 0C00237C */ jal sndGetPlayingState /* 07C190 7F047660 00000000 */ nop /* 07C194 7F047664 5440000A */ bnezl $v0, .L7F047690 /* 07C198 7F047668 8E2400AC */ lw $a0, 0xac($s1) .L7F04766C: /* 07C19C 7F04766C 0FC2FF01 */ jal lvlGetControlsLockedFlag /* 07C1A0 7F047670 00000000 */ nop /* 07C1A4 7F047674 14400005 */ bnez $v0, .L7F04768C /* 07C1A8 7F047678 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 07C1AC 7F04767C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07C1B0 7F047680 24050041 */ li $a1, 65 /* 07C1B4 7F047684 0C002382 */ jal sndPlaySfx /* 07C1B8 7F047688 262600AC */ addiu $a2, $s1, 0xac .L7F04768C: /* 07C1BC 7F04768C 8E2400AC */ lw $a0, 0xac($s1) .L7F047690: /* 07C1C0 7F047690 24050008 */ li $a1, 8 /* 07C1C4 7F047694 5080000F */ beql $a0, $zero, .L7F0476D4 /* 07C1C8 7F047698 8E2400A4 */ lw $a0, 0xa4($s1) /* 07C1CC 7F04769C 0C002461 */ jal sndCreatePostEvent /* 07C1D0 7F0476A0 02003025 */ move $a2, $s0 /* 07C1D4 7F0476A4 1000000B */ b .L7F0476D4 /* 07C1D8 7F0476A8 8E2400A4 */ lw $a0, 0xa4($s1) /* 07C1DC 7F0476AC 8E2400AC */ lw $a0, 0xac($s1) .L7F0476B0: /* 07C1E0 7F0476B0 50800008 */ beql $a0, $zero, .L7F0476D4 /* 07C1E4 7F0476B4 8E2400A4 */ lw $a0, 0xa4($s1) /* 07C1E8 7F0476B8 0C00237C */ jal sndGetPlayingState /* 07C1EC 7F0476BC 00000000 */ nop /* 07C1F0 7F0476C0 50400004 */ beql $v0, $zero, .L7F0476D4 /* 07C1F4 7F0476C4 8E2400A4 */ lw $a0, 0xa4($s1) /* 07C1F8 7F0476C8 0C002408 */ jal sndDeactivate /* 07C1FC 7F0476CC 8E2400AC */ lw $a0, 0xac($s1) /* 07C200 7F0476D0 8E2400A4 */ lw $a0, 0xa4($s1) .L7F0476D4: /* 07C204 7F0476D4 3C058007 */ lui $a1, %hi(g_CurrentSetup+0) /* 07C208 7F0476D8 5080002A */ beql $a0, $zero, .L7F047784 /* 07C20C 7F0476DC 8E2B0008 */ lw $t3, 8($s1) /* 07C210 7F0476E0 8E3800A8 */ lw $t8, 0xa8($s1) /* 07C214 7F0476E4 8C8F0000 */ lw $t7, ($a0) /* 07C218 7F0476E8 24A55D00 */ addiu $a1, %lo(g_CurrentSetup+0) # addiu $a1, $a1, 0x5d00 /* 07C21C 7F0476EC 00184080 */ sll $t0, $t8, 2 /* 07C220 7F0476F0 01E81021 */ addu $v0, $t7, $t0 /* 07C224 7F0476F4 8C4B0000 */ lw $t3, ($v0) /* 07C228 7F0476F8 8CB90000 */ lw $t9, ($a1) /* 07C22C 7F0476FC 8CAE0018 */ lw $t6, 0x18($a1) /* 07C230 7F047700 000B4900 */ sll $t1, $t3, 4 /* 07C234 7F047704 01391821 */ addu $v1, $t1, $t9 /* 07C238 7F047708 8C6A0000 */ lw $t2, ($v1) /* 07C23C 7F04770C C6260058 */ lwc1 $f6, 0x58($s1) /* 07C240 7F047710 C6280060 */ lwc1 $f8, 0x60($s1) /* 07C244 7F047714 000A6080 */ sll $t4, $t2, 2 /* 07C248 7F047718 018A6023 */ subu $t4, $t4, $t2 /* 07C24C 7F04771C 000C6080 */ sll $t4, $t4, 2 /* 07C250 7F047720 018A6023 */ subu $t4, $t4, $t2 /* 07C254 7F047724 000C6080 */ sll $t4, $t4, 2 /* 07C258 7F047728 018E3021 */ addu $a2, $t4, $t6 /* 07C25C 7F04772C C4C40000 */ lwc1 $f4, ($a2) /* 07C260 7F047730 C4CA0008 */ lwc1 $f10, 8($a2) /* 07C264 7F047734 AFA60478 */ sw $a2, 0x478($sp) /* 07C268 7F047738 46062301 */ sub.s $f12, $f4, $f6 /* 07C26C 7F04773C 0FC16A8C */ jal atan2f /* 07C270 7F047740 46085381 */ sub.s $f14, $f10, $f8 /* 07C274 7F047744 E7A0047C */ swc1 $f0, 0x47c($sp) /* 07C278 7F047748 8E2D0008 */ lw $t5, 8($s1) /* 07C27C 7F04774C 3C01DFFF */ lui $at, (0xDFFFFFFF >> 16) # lui $at, 0xdfff /* 07C280 7F047750 C7A4047C */ lwc1 $f4, 0x47c($sp) /* 07C284 7F047754 000DC080 */ sll $t8, $t5, 2 /* 07C288 7F047758 07010018 */ bgez $t8, .L7F0477BC /* 07C28C 7F04775C 3421FFFF */ ori $at, (0xDFFFFFFF & 0xFFFF) # ori $at, $at, 0xffff /* 07C290 7F047760 8E2F0008 */ lw $t7, 8($s1) /* 07C294 7F047764 E62400A0 */ swc1 $f4, 0xa0($s1) /* 07C298 7F047768 02202025 */ move $a0, $s1 /* 07C29C 7F04776C 01E14024 */ and $t0, $t7, $at /* 07C2A0 7F047770 0FC112CE */ jal sub_GAME_7F044B38 /* 07C2A4 7F047774 AE280008 */ sw $t0, 8($s1) /* 07C2A8 7F047778 10000011 */ b .L7F0477C0 /* 07C2AC 7F04777C C6260088 */ lwc1 $f6, 0x88($s1) /* 07C2B0 7F047780 8E2B0008 */ lw $t3, 8($s1) .L7F047784: /* 07C2B4 7F047784 000B4880 */ sll $t1, $t3, 2 /* 07C2B8 7F047788 0523000D */ bgezl $t1, .L7F0477C0 /* 07C2BC 7F04778C C6260088 */ lwc1 $f6, 0x88($s1) /* 07C2C0 7F047790 C62C0038 */ lwc1 $f12, 0x38($s1) /* 07C2C4 7F047794 0FC16A8C */ jal atan2f /* 07C2C8 7F047798 C62E0040 */ lwc1 $f14, 0x40($s1) /* 07C2CC 7F04779C 8E390008 */ lw $t9, 8($s1) /* 07C2D0 7F0477A0 3C01DFFF */ lui $at, (0xDFFFFFFF >> 16) # lui $at, 0xdfff /* 07C2D4 7F0477A4 3421FFFF */ ori $at, (0xDFFFFFFF & 0xFFFF) # ori $at, $at, 0xffff /* 07C2D8 7F0477A8 03215024 */ and $t2, $t9, $at /* 07C2DC 7F0477AC E62000A0 */ swc1 $f0, 0xa0($s1) /* 07C2E0 7F0477B0 AE2A0008 */ sw $t2, 8($s1) /* 07C2E4 7F0477B4 0FC112CE */ jal sub_GAME_7F044B38 /* 07C2E8 7F0477B8 02202025 */ move $a0, $s1 .L7F0477BC: /* 07C2EC 7F0477BC C6260088 */ lwc1 $f6, 0x88($s1) .L7F0477C0: /* 07C2F0 7F0477C0 4606B03C */ c.lt.s $f22, $f6 /* 07C2F4 7F0477C4 00000000 */ nop /* 07C2F8 7F0477C8 450201AC */ bc1fl .L7F047E7C /* 07C2FC 7F0477CC 8E280008 */ lw $t0, 8($s1) /* 07C300 7F0477D0 8E6C0014 */ lw $t4, 0x14($s3) /* 07C304 7F0477D4 8FAE0478 */ lw $t6, 0x478($sp) /* 07C308 7F0477D8 4600B386 */ mov.s $f14, $f22 /* 07C30C 7F0477DC AFAC0468 */ sw $t4, 0x468($sp) /* 07C310 7F0477E0 C62C00A0 */ lwc1 $f12, 0xa0($s1) /* 07C314 7F0477E4 E7AC0438 */ swc1 $f12, 0x438($sp) /* 07C318 7F0477E8 C62A009C */ lwc1 $f10, 0x9c($s1) /* 07C31C 7F0477EC 11C00013 */ beqz $t6, .L7F04783C /* 07C320 7F0477F0 E7AA0434 */ swc1 $f10, 0x434($sp) /* 07C324 7F0477F4 262D0058 */ addiu $t5, $s1, 0x58 /* 07C328 7F0477F8 AFAD0070 */ sw $t5, 0x70($sp) /* 07C32C 7F0477FC 0FC15FAB */ jal sinf /* 07C330 7F047800 E7AE0430 */ swc1 $f14, 0x430($sp) /* 07C334 7F047804 E7A0043C */ swc1 $f0, 0x43c($sp) /* 07C338 7F047808 E7B60440 */ swc1 $f22, 0x440($sp) /* 07C33C 7F04780C 0FC15FA8 */ jal cosf /* 07C340 7F047810 C62C00A0 */ lwc1 $f12, 0xa0($s1) /* 07C344 7F047814 E7A00444 */ swc1 $f0, 0x444($sp) /* 07C348 7F047818 8FA40070 */ lw $a0, 0x70($sp) /* 07C34C 7F04781C 27A5043C */ addiu $a1, $sp, 0x43c /* 07C350 7F047820 8FA60478 */ lw $a2, 0x478($sp) /* 07C354 7F047824 0FC0BF0D */ jal chrlvGeometryRelated7F02FC34 /* 07C358 7F047828 3C074120 */ lui $a3, 0x4120 /* 07C35C 7F04782C 10400003 */ beqz $v0, .L7F04783C /* 07C360 7F047830 C7AE0430 */ lwc1 $f14, 0x430($sp) /* 07C364 7F047834 C62800A0 */ lwc1 $f8, 0xa0($s1) /* 07C368 7F047838 E7A8047C */ swc1 $f8, 0x47c($sp) .L7F04783C: /* 07C36C 7F04783C 3C018005 */ lui $at, %hi(D_80052B4C) /* 07C370 7F047840 C4242B4C */ lwc1 $f4, %lo(D_80052B4C)($at) /* 07C374 7F047844 3C018005 */ lui $at, %hi(D_80052B50) /* 07C378 7F047848 C4262B50 */ lwc1 $f6, %lo(D_80052B50)($at) /* 07C37C 7F04784C 3C0738E4 */ lui $a3, (0x38E4C389 >> 16) # lui $a3, 0x38e4 /* 07C380 7F047850 34E7C389 */ ori $a3, (0x38E4C389 & 0xFFFF) # ori $a3, $a3, 0xc389 /* 07C384 7F047854 262400A0 */ addiu $a0, $s1, 0xa0 /* 07C388 7F047858 8FA5047C */ lw $a1, 0x47c($sp) /* 07C38C 7F04785C 2626009C */ addiu $a2, $s1, 0x9c /* 07C390 7F047860 E7AE0430 */ swc1 $f14, 0x430($sp) /* 07C394 7F047864 E7A40010 */ swc1 $f4, 0x10($sp) /* 07C398 7F047868 0FC10C43 */ jal chrobjCallsApplySpeed /* 07C39C 7F04786C E7A60014 */ swc1 $f6, 0x14($sp) /* 07C3A0 7F047870 3C018005 */ lui $at, %hi(D_80052B54) /* 07C3A4 7F047874 C4342B54 */ lwc1 $f20, %lo(D_80052B54)($at) /* 07C3A8 7F047878 C62C00A0 */ lwc1 $f12, 0xa0($s1) /* 07C3AC 7F04787C C7AE0430 */ lwc1 $f14, 0x430($sp) /* 07C3B0 7F047880 3C018005 */ lui $at, %hi(D_80052B58) /* 07C3B4 7F047884 460CA03E */ c.le.s $f20, $f12 /* 07C3B8 7F047888 00000000 */ nop /* 07C3BC 7F04788C 45020009 */ bc1fl .L7F0478B4 /* 07C3C0 7F047890 4616603C */ c.lt.s $f12, $f22 /* 07C3C4 7F047894 46146281 */ sub.s $f10, $f12, $f20 .L7F047898: /* 07C3C8 7F047898 E62A00A0 */ swc1 $f10, 0xa0($s1) /* 07C3CC 7F04789C C62C00A0 */ lwc1 $f12, 0xa0($s1) /* 07C3D0 7F0478A0 460CA03E */ c.le.s $f20, $f12 /* 07C3D4 7F0478A4 00000000 */ nop /* 07C3D8 7F0478A8 4503FFFB */ bc1tl .L7F047898 /* 07C3DC 7F0478AC 46146281 */ sub.s $f10, $f12, $f20 /* 07C3E0 7F0478B0 4616603C */ c.lt.s $f12, $f22 .L7F0478B4: /* 07C3E4 7F0478B4 00000000 */ nop /* 07C3E8 7F0478B8 45020009 */ bc1fl .L7F0478E0 /* 07C3EC 7F0478BC C7A4047C */ lwc1 $f4, 0x47c($sp) /* 07C3F0 7F0478C0 46146200 */ add.s $f8, $f12, $f20 .L7F0478C4: /* 07C3F4 7F0478C4 E62800A0 */ swc1 $f8, 0xa0($s1) /* 07C3F8 7F0478C8 C62C00A0 */ lwc1 $f12, 0xa0($s1) /* 07C3FC 7F0478CC 4616603C */ c.lt.s $f12, $f22 /* 07C400 7F0478D0 00000000 */ nop /* 07C404 7F0478D4 4503FFFB */ bc1tl .L7F0478C4 /* 07C408 7F0478D8 46146200 */ add.s $f8, $f12, $f20 /* 07C40C 7F0478DC C7A4047C */ lwc1 $f4, 0x47c($sp) .L7F0478E0: /* 07C410 7F0478E0 460C2032 */ c.eq.s $f4, $f12 /* 07C414 7F0478E4 00000000 */ nop /* 07C418 7F0478E8 4502000F */ bc1fl .L7F047928 /* 07C41C 7F0478EC 8E980008 */ lw $t8, 8($s4) /* 07C420 7F0478F0 C620009C */ lwc1 $f0, 0x9c($s1) /* 07C424 7F0478F4 C4262B58 */ lwc1 $f6, %lo(D_80052B58)($at) /* 07C428 7F0478F8 3C018005 */ lui $at, %hi(D_80052B5C) /* 07C42C 7F0478FC 4606003E */ c.le.s $f0, $f6 /* 07C430 7F047900 00000000 */ nop /* 07C434 7F047904 45020008 */ bc1fl .L7F047928 /* 07C438 7F047908 8E980008 */ lw $t8, 8($s4) /* 07C43C 7F04790C C42A2B5C */ lwc1 $f10, %lo(D_80052B5C)($at) /* 07C440 7F047910 4600503E */ c.le.s $f10, $f0 /* 07C444 7F047914 00000000 */ nop /* 07C448 7F047918 45020003 */ bc1fl .L7F047928 /* 07C44C 7F04791C 8E980008 */ lw $t8, 8($s4) /* 07C450 7F047920 E636009C */ swc1 $f22, 0x9c($s1) /* 07C454 7F047924 8E980008 */ lw $t8, 8($s4) .L7F047928: /* 07C458 7F047928 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) /* 07C45C 7F04792C C4228378 */ lwc1 $f2, %lo(g_GlobalTimerDelta)($at) /* 07C460 7F047930 8F0F0008 */ lw $t7, 8($t8) /* 07C464 7F047934 C7A40438 */ lwc1 $f4, 0x438($sp) /* 07C468 7F047938 4602B03C */ c.lt.s $f22, $f2 /* 07C46C 7F04793C 8DE8000C */ lw $t0, 0xc($t7) /* 07C470 7F047940 45000004 */ bc1f .L7F047954 /* 07C474 7F047944 8D100004 */ lw $s0, 4($t0) /* 07C478 7F047948 C62800A0 */ lwc1 $f8, 0xa0($s1) /* 07C47C 7F04794C 46044181 */ sub.s $f6, $f8, $f4 /* 07C480 7F047950 46023383 */ div.s $f14, $f6, $f2 .L7F047954: /* 07C484 7F047954 4616703C */ c.lt.s $f14, $f22 /* 07C488 7F047958 00000000 */ nop /* 07C48C 7F04795C 45000002 */ bc1f .L7F047968 /* 07C490 7F047960 00000000 */ nop /* 07C494 7F047964 46147380 */ add.s $f14, $f14, $f20 .L7F047968: /* 07C498 7F047968 0FC15FAB */ jal sinf /* 07C49C 7F04796C 46007306 */ mov.s $f12, $f14 /* 07C4A0 7F047970 C60A0008 */ lwc1 $f10, 8($s0) /* 07C4A4 7F047974 C6880014 */ lwc1 $f8, 0x14($s4) /* 07C4A8 7F047978 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) /* 07C4AC 7F04797C 46085102 */ mul.s $f4, $f10, $f8 /* 07C4B0 7F047980 C42A8378 */ lwc1 $f10, %lo(g_GlobalTimerDelta)($at) /* 07C4B4 7F047984 46040182 */ mul.s $f6, $f0, $f4 /* 07C4B8 7F047988 00000000 */ nop /* 07C4BC 7F04798C 460A3202 */ mul.s $f8, $f6, $f10 /* 07C4C0 7F047990 E7A80460 */ swc1 $f8, 0x460($sp) /* 07C4C4 7F047994 0FC15FAB */ jal sinf /* 07C4C8 7F047998 C62C00A0 */ lwc1 $f12, 0xa0($s1) /* 07C4CC 7F04799C E7A0043C */ swc1 $f0, 0x43c($sp) /* 07C4D0 7F0479A0 E7B60440 */ swc1 $f22, 0x440($sp) /* 07C4D4 7F0479A4 0FC15FA8 */ jal cosf /* 07C4D8 7F0479A8 C62C00A0 */ lwc1 $f12, 0xa0($s1) /* 07C4DC 7F0479AC 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07C4E0 7F0479B0 44817000 */ mtc1 $at, $f14 /* 07C4E4 7F0479B4 E7A00444 */ swc1 $f0, 0x444($sp) /* 07C4E8 7F0479B8 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) /* 07C4EC 7F0479BC C4228378 */ lwc1 $f2, %lo(g_GlobalTimerDelta)($at) /* 07C4F0 7F0479C0 C6240088 */ lwc1 $f4, 0x88($s1) /* 07C4F4 7F0479C4 C7AA043C */ lwc1 $f10, 0x43c($sp) /* 07C4F8 7F0479C8 C7AC0460 */ lwc1 $f12, 0x460($sp) /* 07C4FC 7F0479CC 46022182 */ mul.s $f6, $f4, $f2 /* 07C500 7F0479D0 C6240058 */ lwc1 $f4, 0x58($s1) /* 07C504 7F0479D4 27B00468 */ addiu $s0, $sp, 0x468 /* 07C508 7F0479D8 240B001F */ li $t3, 31 /* 07C50C 7F0479DC 02002025 */ move $a0, $s0 /* 07C510 7F0479E0 460A3202 */ mul.s $f8, $f6, $f10 /* 07C514 7F0479E4 46082180 */ add.s $f6, $f4, $f8 /* 07C518 7F0479E8 C7A40444 */ lwc1 $f4, 0x444($sp) /* 07C51C 7F0479EC 460C2202 */ mul.s $f8, $f4, $f12 /* 07C520 7F0479F0 46083181 */ sub.s $f6, $f6, $f8 /* 07C524 7F0479F4 E7A60694 */ swc1 $f6, 0x694($sp) /* 07C528 7F0479F8 C628005C */ lwc1 $f8, 0x5c($s1) /* 07C52C 7F0479FC 44073000 */ mfc1 $a3, $f6 /* 07C530 7F047A00 E7A80698 */ swc1 $f8, 0x698($sp) /* 07C534 7F047A04 C6280088 */ lwc1 $f8, 0x88($s1) /* 07C538 7F047A08 46024202 */ mul.s $f8, $f8, $f2 /* 07C53C 7F047A0C 00000000 */ nop /* 07C540 7F047A10 46044202 */ mul.s $f8, $f8, $f4 /* 07C544 7F047A14 C6240060 */ lwc1 $f4, 0x60($s1) /* 07C548 7F047A18 46082100 */ add.s $f4, $f4, $f8 /* 07C54C 7F047A1C 460C5202 */ mul.s $f8, $f10, $f12 /* 07C550 7F047A20 46044280 */ add.s $f10, $f8, $f4 /* 07C554 7F047A24 E7AA069C */ swc1 $f10, 0x69c($sp) /* 07C558 7F047A28 8E660010 */ lw $a2, 0x10($s3) /* 07C55C 7F047A2C 8E650008 */ lw $a1, 8($s3) /* 07C560 7F047A30 E7B60020 */ swc1 $f22, 0x20($sp) /* 07C564 7F047A34 E7B60018 */ swc1 $f22, 0x18($sp) /* 07C568 7F047A38 AFAB0014 */ sw $t3, 0x14($sp) /* 07C56C 7F047A3C E7AA0010 */ swc1 $f10, 0x10($sp) /* 07C570 7F047A40 E7AE0024 */ swc1 $f14, 0x24($sp) /* 07C574 7F047A44 0FC2C389 */ jal stanTestLineUnobstructed /* 07C578 7F047A48 E7AE001C */ swc1 $f14, 0x1c($sp) /* 07C57C 7F047A4C 104000FA */ beqz $v0, .L7F047E38 /* 07C580 7F047A50 02002025 */ move $a0, $s0 /* 07C584 7F047A54 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07C588 7F047A58 44814000 */ mtc1 $at, $f8 /* 07C58C 7F047A5C 2409001F */ li $t1, 31 /* 07C590 7F047A60 AFA90010 */ sw $t1, 0x10($sp) /* 07C594 7F047A64 8FA50694 */ lw $a1, 0x694($sp) /* 07C598 7F047A68 8FA6069C */ lw $a2, 0x69c($sp) /* 07C59C 7F047A6C 3C074120 */ lui $a3, 0x4120 /* 07C5A0 7F047A70 E7B60014 */ swc1 $f22, 0x14($sp) /* 07C5A4 7F047A74 0FC2C62E */ jal stanTestVolume /* 07C5A8 7F047A78 E7A80018 */ swc1 $f8, 0x18($sp) /* 07C5AC 7F047A7C 044300EF */ bgezl $v0, .L7F047E3C /* 07C5B0 7F047A80 C6260098 */ lwc1 $f6, 0x98($s1) /* 07C5B4 7F047A84 8E790014 */ lw $t9, 0x14($s3) /* 07C5B8 7F047A88 8FAA0468 */ lw $t2, 0x468($sp) /* 07C5BC 7F047A8C 02202025 */ move $a0, $s1 /* 07C5C0 7F047A90 AFB9044C */ sw $t9, 0x44c($sp) /* 07C5C4 7F047A94 C6640008 */ lwc1 $f4, 8($s3) /* 07C5C8 7F047A98 E7A40450 */ swc1 $f4, 0x450($sp) /* 07C5CC 7F047A9C C666000C */ lwc1 $f6, 0xc($s3) /* 07C5D0 7F047AA0 E7A60454 */ swc1 $f6, 0x454($sp) /* 07C5D4 7F047AA4 C66A0010 */ lwc1 $f10, 0x10($s3) /* 07C5D8 7F047AA8 E7AA0458 */ swc1 $f10, 0x458($sp) /* 07C5DC 7F047AAC AE6A0014 */ sw $t2, 0x14($s3) /* 07C5E0 7F047AB0 C7A20694 */ lwc1 $f2, 0x694($sp) /* 07C5E4 7F047AB4 E6620008 */ swc1 $f2, 8($s3) /* 07C5E8 7F047AB8 E6220058 */ swc1 $f2, 0x58($s1) /* 07C5EC 7F047ABC C7A2069C */ lwc1 $f2, 0x69c($sp) /* 07C5F0 7F047AC0 E6620010 */ swc1 $f2, 0x10($s3) /* 07C5F4 7F047AC4 0FC10121 */ jal chrobjCollisionRelated /* 07C5F8 7F047AC8 E6220060 */ swc1 $f2, 0x60($s1) /* 07C5FC 7F047ACC 0FC15B28 */ jal setupUpdateObjectRoomPosition /* 07C600 7F047AD0 02202025 */ move $a0, $s1 /* 07C604 7F047AD4 0FC1122A */ jal sub_GAME_7F0448A8 /* 07C608 7F047AD8 02602025 */ move $a0, $s3 /* 07C60C 7F047ADC 10400092 */ beqz $v0, .L7F047D28 /* 07C610 7F047AE0 00409025 */ move $s2, $v0 /* 07C614 7F047AE4 8E8C0008 */ lw $t4, 8($s4) /* 07C618 7F047AE8 C6280018 */ lwc1 $f8, 0x18($s1) /* 07C61C 7F047AEC 02002025 */ move $a0, $s0 /* 07C620 7F047AF0 8D8E0008 */ lw $t6, 8($t4) /* 07C624 7F047AF4 8DCD0028 */ lw $t5, 0x28($t6) /* 07C628 7F047AF8 8DA20004 */ lw $v0, 4($t5) /* 07C62C 7F047AFC C4440004 */ lwc1 $f4, 4($v0) /* 07C630 7F047B00 46044182 */ mul.s $f6, $f8, $f4 /* 07C634 7F047B04 E7A60424 */ swc1 $f6, 0x424($sp) /* 07C638 7F047B08 C62A0020 */ lwc1 $f10, 0x20($s1) /* 07C63C 7F047B0C C4480004 */ lwc1 $f8, 4($v0) /* 07C640 7F047B10 46085102 */ mul.s $f4, $f10, $f8 /* 07C644 7F047B14 E7A4042C */ swc1 $f4, 0x42c($sp) /* 07C648 7F047B18 C6260018 */ lwc1 $f6, 0x18($s1) /* 07C64C 7F047B1C C44A0008 */ lwc1 $f10, 8($v0) /* 07C650 7F047B20 460A3202 */ mul.s $f8, $f6, $f10 /* 07C654 7F047B24 E7A80418 */ swc1 $f8, 0x418($sp) /* 07C658 7F047B28 C6240020 */ lwc1 $f4, 0x20($s1) /* 07C65C 7F047B2C C4460008 */ lwc1 $f6, 8($v0) /* 07C660 7F047B30 46062282 */ mul.s $f10, $f4, $f6 /* 07C664 7F047B34 E7AA0420 */ swc1 $f10, 0x420($sp) /* 07C668 7F047B38 C6280038 */ lwc1 $f8, 0x38($s1) /* 07C66C 7F047B3C C4440014 */ lwc1 $f4, 0x14($v0) /* 07C670 7F047B40 46044182 */ mul.s $f6, $f8, $f4 /* 07C674 7F047B44 E7A6040C */ swc1 $f6, 0x40c($sp) /* 07C678 7F047B48 C62A0040 */ lwc1 $f10, 0x40($s1) /* 07C67C 7F047B4C C4480014 */ lwc1 $f8, 0x14($v0) /* 07C680 7F047B50 46085102 */ mul.s $f4, $f10, $f8 /* 07C684 7F047B54 E7A40414 */ swc1 $f4, 0x414($sp) /* 07C688 7F047B58 C6260038 */ lwc1 $f6, 0x38($s1) /* 07C68C 7F047B5C C44A0018 */ lwc1 $f10, 0x18($v0) /* 07C690 7F047B60 460A3202 */ mul.s $f8, $f6, $f10 /* 07C694 7F047B64 E7A80400 */ swc1 $f8, 0x400($sp) /* 07C698 7F047B68 C6240040 */ lwc1 $f4, 0x40($s1) /* 07C69C 7F047B6C C4460018 */ lwc1 $f6, 0x18($v0) /* 07C6A0 7F047B70 C7A8040C */ lwc1 $f8, 0x40c($sp) /* 07C6A4 7F047B74 46062282 */ mul.s $f10, $f4, $f6 /* 07C6A8 7F047B78 C7A40424 */ lwc1 $f4, 0x424($sp) /* 07C6AC 7F047B7C E7AA0408 */ swc1 $f10, 0x408($sp) /* 07C6B0 7F047B80 8E780014 */ lw $t8, 0x14($s3) /* 07C6B4 7F047B84 AFB80468 */ sw $t8, 0x468($sp) /* 07C6B8 7F047B88 C6600008 */ lwc1 $f0, 8($s3) /* 07C6BC 7F047B8C C6620010 */ lwc1 $f2, 0x10($s3) /* 07C6C0 7F047B90 46040180 */ add.s $f6, $f0, $f4 /* 07C6C4 7F047B94 C7A40414 */ lwc1 $f4, 0x414($sp) /* 07C6C8 7F047B98 44050000 */ mfc1 $a1, $f0 /* 07C6CC 7F047B9C 44061000 */ mfc1 $a2, $f2 /* 07C6D0 7F047BA0 46064280 */ add.s $f10, $f8, $f6 /* 07C6D4 7F047BA4 C7A8042C */ lwc1 $f8, 0x42c($sp) /* 07C6D8 7F047BA8 46081180 */ add.s $f6, $f2, $f8 /* 07C6DC 7F047BAC 44075000 */ mfc1 $a3, $f10 /* 07C6E0 7F047BB0 46062280 */ add.s $f10, $f4, $f6 /* 07C6E4 7F047BB4 0FC2C2F9 */ jal walkTilesBetweenPoints_NoCallback /* 07C6E8 7F047BB8 E7AA0010 */ swc1 $f10, 0x10($sp) /* 07C6EC 7F047BBC 10400059 */ beqz $v0, .L7F047D24 /* 07C6F0 7F047BC0 C7A40424 */ lwc1 $f4, 0x424($sp) /* 07C6F4 7F047BC4 C6600008 */ lwc1 $f0, 8($s3) /* 07C6F8 7F047BC8 C7A8040C */ lwc1 $f8, 0x40c($sp) /* 07C6FC 7F047BCC C6620010 */ lwc1 $f2, 0x10($s3) /* 07C700 7F047BD0 46040180 */ add.s $f6, $f0, $f4 /* 07C704 7F047BD4 C7A40414 */ lwc1 $f4, 0x414($sp) /* 07C708 7F047BD8 02002025 */ move $a0, $s0 /* 07C70C 7F047BDC 46064280 */ add.s $f10, $f8, $f6 /* 07C710 7F047BE0 C7A6042C */ lwc1 $f6, 0x42c($sp) /* 07C714 7F047BE4 44055000 */ mfc1 $a1, $f10 /* 07C718 7F047BE8 46061280 */ add.s $f10, $f2, $f6 /* 07C71C 7F047BEC 460A2180 */ add.s $f6, $f4, $f10 /* 07C720 7F047BF0 C7AA0418 */ lwc1 $f10, 0x418($sp) /* 07C724 7F047BF4 44063000 */ mfc1 $a2, $f6 /* 07C728 7F047BF8 460A0180 */ add.s $f6, $f0, $f10 /* 07C72C 7F047BFC 46064280 */ add.s $f10, $f8, $f6 /* 07C730 7F047C00 C7A80420 */ lwc1 $f8, 0x420($sp) /* 07C734 7F047C04 46081180 */ add.s $f6, $f2, $f8 /* 07C738 7F047C08 44075000 */ mfc1 $a3, $f10 /* 07C73C 7F047C0C 46062280 */ add.s $f10, $f4, $f6 /* 07C740 7F047C10 0FC2C2F9 */ jal walkTilesBetweenPoints_NoCallback /* 07C744 7F047C14 E7AA0010 */ swc1 $f10, 0x10($sp) /* 07C748 7F047C18 10400042 */ beqz $v0, .L7F047D24 /* 07C74C 7F047C1C C7A40418 */ lwc1 $f4, 0x418($sp) /* 07C750 7F047C20 C6680008 */ lwc1 $f8, 8($s3) /* 07C754 7F047C24 C7A6040C */ lwc1 $f6, 0x40c($sp) /* 07C758 7F047C28 02002025 */ move $a0, $s0 /* 07C75C 7F047C2C 46044000 */ add.s $f0, $f8, $f4 /* 07C760 7F047C30 C7A40420 */ lwc1 $f4, 0x420($sp) /* 07C764 7F047C34 C6680010 */ lwc1 $f8, 0x10($s3) /* 07C768 7F047C38 46003280 */ add.s $f10, $f6, $f0 /* 07C76C 7F047C3C C7A60414 */ lwc1 $f6, 0x414($sp) /* 07C770 7F047C40 46044080 */ add.s $f2, $f8, $f4 /* 07C774 7F047C44 44055000 */ mfc1 $a1, $f10 /* 07C778 7F047C48 C7A80400 */ lwc1 $f8, 0x400($sp) /* 07C77C 7F047C4C 46023280 */ add.s $f10, $f6, $f2 /* 07C780 7F047C50 C7A60408 */ lwc1 $f6, 0x408($sp) /* 07C784 7F047C54 46004100 */ add.s $f4, $f8, $f0 /* 07C788 7F047C58 44065000 */ mfc1 $a2, $f10 /* 07C78C 7F047C5C 46023280 */ add.s $f10, $f6, $f2 /* 07C790 7F047C60 44072000 */ mfc1 $a3, $f4 /* 07C794 7F047C64 0FC2C2F9 */ jal walkTilesBetweenPoints_NoCallback /* 07C798 7F047C68 E7AA0010 */ swc1 $f10, 0x10($sp) /* 07C79C 7F047C6C 1040002D */ beqz $v0, .L7F047D24 /* 07C7A0 7F047C70 C7A40418 */ lwc1 $f4, 0x418($sp) /* 07C7A4 7F047C74 C6600008 */ lwc1 $f0, 8($s3) /* 07C7A8 7F047C78 C7A80400 */ lwc1 $f8, 0x400($sp) /* 07C7AC 7F047C7C C6620010 */ lwc1 $f2, 0x10($s3) /* 07C7B0 7F047C80 46040180 */ add.s $f6, $f0, $f4 /* 07C7B4 7F047C84 C7A40408 */ lwc1 $f4, 0x408($sp) /* 07C7B8 7F047C88 02002025 */ move $a0, $s0 /* 07C7BC 7F047C8C 46064280 */ add.s $f10, $f8, $f6 /* 07C7C0 7F047C90 C7A60420 */ lwc1 $f6, 0x420($sp) /* 07C7C4 7F047C94 44055000 */ mfc1 $a1, $f10 /* 07C7C8 7F047C98 46061280 */ add.s $f10, $f2, $f6 /* 07C7CC 7F047C9C 460A2180 */ add.s $f6, $f4, $f10 /* 07C7D0 7F047CA0 C7AA0424 */ lwc1 $f10, 0x424($sp) /* 07C7D4 7F047CA4 44063000 */ mfc1 $a2, $f6 /* 07C7D8 7F047CA8 460A0180 */ add.s $f6, $f0, $f10 /* 07C7DC 7F047CAC 46064280 */ add.s $f10, $f8, $f6 /* 07C7E0 7F047CB0 C7A8042C */ lwc1 $f8, 0x42c($sp) /* 07C7E4 7F047CB4 46081180 */ add.s $f6, $f2, $f8 /* 07C7E8 7F047CB8 44075000 */ mfc1 $a3, $f10 /* 07C7EC 7F047CBC 46062280 */ add.s $f10, $f4, $f6 /* 07C7F0 7F047CC0 0FC2C2F9 */ jal walkTilesBetweenPoints_NoCallback /* 07C7F4 7F047CC4 E7AA0010 */ swc1 $f10, 0x10($sp) /* 07C7F8 7F047CC8 10400016 */ beqz $v0, .L7F047D24 /* 07C7FC 7F047CCC C7A40424 */ lwc1 $f4, 0x424($sp) /* 07C800 7F047CD0 C6680008 */ lwc1 $f8, 8($s3) /* 07C804 7F047CD4 C7A60400 */ lwc1 $f6, 0x400($sp) /* 07C808 7F047CD8 02002025 */ move $a0, $s0 /* 07C80C 7F047CDC 46044000 */ add.s $f0, $f8, $f4 /* 07C810 7F047CE0 C7A4042C */ lwc1 $f4, 0x42c($sp) /* 07C814 7F047CE4 C6680010 */ lwc1 $f8, 0x10($s3) /* 07C818 7F047CE8 46003280 */ add.s $f10, $f6, $f0 /* 07C81C 7F047CEC C7A60408 */ lwc1 $f6, 0x408($sp) /* 07C820 7F047CF0 46044080 */ add.s $f2, $f8, $f4 /* 07C824 7F047CF4 44055000 */ mfc1 $a1, $f10 /* 07C828 7F047CF8 C7A8040C */ lwc1 $f8, 0x40c($sp) /* 07C82C 7F047CFC 46023280 */ add.s $f10, $f6, $f2 /* 07C830 7F047D00 C7A60414 */ lwc1 $f6, 0x414($sp) /* 07C834 7F047D04 46004100 */ add.s $f4, $f8, $f0 /* 07C838 7F047D08 44065000 */ mfc1 $a2, $f10 /* 07C83C 7F047D0C 46023280 */ add.s $f10, $f6, $f2 /* 07C840 7F047D10 44072000 */ mfc1 $a3, $f4 /* 07C844 7F047D14 0FC2C2F9 */ jal walkTilesBetweenPoints_NoCallback /* 07C848 7F047D18 E7AA0010 */ swc1 $f10, 0x10($sp) /* 07C84C 7F047D1C 14400002 */ bnez $v0, .L7F047D28 /* 07C850 7F047D20 00000000 */ nop .L7F047D24: /* 07C854 7F047D24 00009025 */ move $s2, $zero .L7F047D28: /* 07C858 7F047D28 12400023 */ beqz $s2, .L7F047DB8 /* 07C85C 7F047D2C 02202025 */ move $a0, $s1 /* 07C860 7F047D30 262F0058 */ addiu $t7, $s1, 0x58 /* 07C864 7F047D34 AFAF0070 */ sw $t7, 0x70($sp) /* 07C868 7F047D38 0FC112CE */ jal sub_GAME_7F044B38 /* 07C86C 7F047D3C 2630007C */ addiu $s0, $s1, 0x7c /* 07C870 7F047D40 02602025 */ move $a0, $s3 /* 07C874 7F047D44 0FC100AD */ jal sub_GAME_7F0402B4 /* 07C878 7F047D48 02002825 */ move $a1, $s0 /* 07C87C 7F047D4C 0FC146F3 */ jal detonate_proxmine_In_range /* 07C880 7F047D50 8FA40070 */ lw $a0, 0x70($sp) /* 07C884 7F047D54 8FA80478 */ lw $t0, 0x478($sp) /* 07C888 7F047D58 27A40450 */ addiu $a0, $sp, 0x450 /* 07C88C 7F047D5C 27A50694 */ addiu $a1, $sp, 0x694 /* 07C890 7F047D60 11000054 */ beqz $t0, .L7F047EB4 /* 07C894 7F047D64 01003025 */ move $a2, $t0 /* 07C898 7F047D68 0FC0BF54 */ jal chrlvIsArrivingLaterallyAtPos /* 07C89C 7F047D6C 3C0742C8 */ lui $a3, 0x42c8 /* 07C8A0 7F047D70 10400050 */ beqz $v0, .L7F047EB4 /* 07C8A4 7F047D74 00000000 */ nop /* 07C8A8 7F047D78 8E2B00A8 */ lw $t3, 0xa8($s1) /* 07C8AC 7F047D7C 8E3900A4 */ lw $t9, 0xa4($s1) /* 07C8B0 7F047D80 3C014270 */ li $at, 0x42700000 # 60.000000 /* 07C8B4 7F047D84 25690001 */ addiu $t1, $t3, 1 /* 07C8B8 7F047D88 AE2900A8 */ sw $t1, 0xa8($s1) /* 07C8BC 7F047D8C 8F2A0000 */ lw $t2, ($t9) /* 07C8C0 7F047D90 00097080 */ sll $t6, $t1, 2 /* 07C8C4 7F047D94 014E6821 */ addu $t5, $t2, $t6 /* 07C8C8 7F047D98 8DB80000 */ lw $t8, ($t5) /* 07C8CC 7F047D9C 07010045 */ bgez $t8, .L7F047EB4 /* 07C8D0 7F047DA0 00000000 */ nop /* 07C8D4 7F047DA4 44814000 */ mtc1 $at, $f8 /* 07C8D8 7F047DA8 AE2000A4 */ sw $zero, 0xa4($s1) /* 07C8DC 7F047DAC E6360094 */ swc1 $f22, 0x94($s1) /* 07C8E0 7F047DB0 10000040 */ b .L7F047EB4 /* 07C8E4 7F047DB4 E6280098 */ swc1 $f8, 0x98($s1) .L7F047DB8: /* 07C8E8 7F047DB8 C6240098 */ lwc1 $f4, 0x98($s1) /* 07C8EC 7F047DBC 3C014270 */ li $at, 0x42700000 # 60.000000 /* 07C8F0 7F047DC0 4616203C */ c.lt.s $f4, $f22 /* 07C8F4 7F047DC4 00000000 */ nop /* 07C8F8 7F047DC8 45020006 */ bc1fl .L7F047DE4 /* 07C8FC 7F047DCC E6360088 */ swc1 $f22, 0x88($s1) /* 07C900 7F047DD0 C6260088 */ lwc1 $f6, 0x88($s1) /* 07C904 7F047DD4 44815000 */ mtc1 $at, $f10 /* 07C908 7F047DD8 E6260094 */ swc1 $f6, 0x94($s1) /* 07C90C 7F047DDC E62A0098 */ swc1 $f10, 0x98($s1) /* 07C910 7F047DE0 E6360088 */ swc1 $f22, 0x88($s1) .L7F047DE4: /* 07C914 7F047DE4 C7A80438 */ lwc1 $f8, 0x438($sp) /* 07C918 7F047DE8 02202025 */ move $a0, $s1 /* 07C91C 7F047DEC E62800A0 */ swc1 $f8, 0xa0($s1) /* 07C920 7F047DF0 C7A40434 */ lwc1 $f4, 0x434($sp) /* 07C924 7F047DF4 E624009C */ swc1 $f4, 0x9c($s1) /* 07C928 7F047DF8 8FAF044C */ lw $t7, 0x44c($sp) /* 07C92C 7F047DFC AE6F0014 */ sw $t7, 0x14($s3) /* 07C930 7F047E00 C7A20450 */ lwc1 $f2, 0x450($sp) /* 07C934 7F047E04 E6620008 */ swc1 $f2, 8($s3) /* 07C938 7F047E08 E6220058 */ swc1 $f2, 0x58($s1) /* 07C93C 7F047E0C C7A20454 */ lwc1 $f2, 0x454($sp) /* 07C940 7F047E10 E662000C */ swc1 $f2, 0xc($s3) /* 07C944 7F047E14 E622005C */ swc1 $f2, 0x5c($s1) /* 07C948 7F047E18 C7A20458 */ lwc1 $f2, 0x458($sp) /* 07C94C 7F047E1C E6620010 */ swc1 $f2, 0x10($s3) /* 07C950 7F047E20 0FC10121 */ jal chrobjCollisionRelated /* 07C954 7F047E24 E6220060 */ swc1 $f2, 0x60($s1) /* 07C958 7F047E28 0FC15B28 */ jal setupUpdateObjectRoomPosition /* 07C95C 7F047E2C 02202025 */ move $a0, $s1 /* 07C960 7F047E30 10000020 */ b .L7F047EB4 /* 07C964 7F047E34 00000000 */ nop .L7F047E38: /* 07C968 7F047E38 C6260098 */ lwc1 $f6, 0x98($s1) .L7F047E3C: /* 07C96C 7F047E3C 3C014270 */ li $at, 0x42700000 # 60.000000 /* 07C970 7F047E40 4616303C */ c.lt.s $f6, $f22 /* 07C974 7F047E44 00000000 */ nop /* 07C978 7F047E48 45020006 */ bc1fl .L7F047E64 /* 07C97C 7F047E4C E6360088 */ swc1 $f22, 0x88($s1) /* 07C980 7F047E50 C62A0088 */ lwc1 $f10, 0x88($s1) /* 07C984 7F047E54 44814000 */ mtc1 $at, $f8 /* 07C988 7F047E58 E62A0094 */ swc1 $f10, 0x94($s1) /* 07C98C 7F047E5C E6280098 */ swc1 $f8, 0x98($s1) /* 07C990 7F047E60 E6360088 */ swc1 $f22, 0x88($s1) .L7F047E64: /* 07C994 7F047E64 C7A40438 */ lwc1 $f4, 0x438($sp) /* 07C998 7F047E68 E62400A0 */ swc1 $f4, 0xa0($s1) /* 07C99C 7F047E6C C7A60434 */ lwc1 $f6, 0x434($sp) /* 07C9A0 7F047E70 10000010 */ b .L7F047EB4 /* 07C9A4 7F047E74 E626009C */ swc1 $f6, 0x9c($s1) /* 07C9A8 7F047E78 8E280008 */ lw $t0, 8($s1) .L7F047E7C: /* 07C9AC 7F047E7C 00085880 */ sll $t3, $t0, 2 /* 07C9B0 7F047E80 0561000C */ bgez $t3, .L7F047EB4 /* 07C9B4 7F047E84 00000000 */ nop /* 07C9B8 7F047E88 C62C0038 */ lwc1 $f12, 0x38($s1) /* 07C9BC 7F047E8C 0FC16A8C */ jal atan2f /* 07C9C0 7F047E90 C62E0040 */ lwc1 $f14, 0x40($s1) /* 07C9C4 7F047E94 8E290008 */ lw $t1, 8($s1) /* 07C9C8 7F047E98 3C01DFFF */ lui $at, (0xDFFFFFFF >> 16) # lui $at, 0xdfff /* 07C9CC 7F047E9C 3421FFFF */ ori $at, (0xDFFFFFFF & 0xFFFF) # ori $at, $at, 0xffff /* 07C9D0 7F047EA0 0121C824 */ and $t9, $t1, $at /* 07C9D4 7F047EA4 E62000A0 */ swc1 $f0, 0xa0($s1) /* 07C9D8 7F047EA8 AE390008 */ sw $t9, 8($s1) /* 07C9DC 7F047EAC 0FC112CE */ jal sub_GAME_7F044B38 /* 07C9E0 7F047EB0 02202025 */ move $a0, $s1 .L7F047EB4: /* 07C9E4 7F047EB4 100000DE */ b .L7F048230 /* 07C9E8 7F047EB8 92220003 */ lbu $v0, 3($s1) .L7F047EBC: /* 07C9EC 7F047EBC 24010028 */ li $at, 40 /* 07C9F0 7F047EC0 144100DA */ bne $v0, $at, .L7F04822C /* 07C9F4 7F047EC4 02202025 */ move $a0, $s1 /* 07C9F8 7F047EC8 0FC0D521 */ jal ai /* 07C9FC 7F047ECC 24050001 */ li $a1, 1 /* 07CA00 7F047ED0 8E300014 */ lw $s0, 0x14($s1) /* 07CA04 7F047ED4 26250058 */ addiu $a1, $s1, 0x58 /* 07CA08 7F047ED8 8E0C0020 */ lw $t4, 0x20($s0) /* 07CA0C 7F047EDC 02002025 */ move $a0, $s0 /* 07CA10 7F047EE0 51800065 */ beql $t4, $zero, .L7F048078 /* 07CA14 7F047EE4 C62C00A0 */ lwc1 $f12, 0xa0($s1) /* 07CA18 7F047EE8 0FC1B303 */ jal setsuboffset /* 07CA1C 7F047EEC AFA50070 */ sw $a1, 0x70($sp) /* 07CA20 7F047EF0 8E300014 */ lw $s0, 0x14($s1) /* 07CA24 7F047EF4 3C0E8003 */ lui $t6, %hi(animation_table_ptrs2+4) /* 07CA28 7F047EF8 8DCEA050 */ lw $t6, %lo(animation_table_ptrs2+4)($t6) /* 07CA2C 7F047EFC 8E0A0020 */ lw $t2, 0x20($s0) /* 07CA30 7F047F00 3C054127 */ lui $a1, (0x4127020C >> 16) # lui $a1, 0x4127 /* 07CA34 7F047F04 02002025 */ move $a0, $s0 /* 07CA38 7F047F08 154E0009 */ bne $t2, $t6, .L7F047F30 /* 07CA3C 7F047F0C 00000000 */ nop /* 07CA40 7F047F10 0FC1B3A1 */ jal sub_GAME_7F06CE84 /* 07CA44 7F047F14 34A5020C */ ori $a1, (0x4127020C & 0xFFFF) # ori $a1, $a1, 0x20c /* 07CA48 7F047F18 3C054049 */ lui $a1, (0x40490FDB >> 16) # lui $a1, 0x4049 /* 07CA4C 7F047F1C 34A50FDB */ ori $a1, (0x40490FDB & 0xFFFF) # ori $a1, $a1, 0xfdb /* 07CA50 7F047F20 0FC1B34F */ jal setsubroty /* 07CA54 7F047F24 8E240014 */ lw $a0, 0x14($s1) /* 07CA58 7F047F28 10000024 */ b .L7F047FBC /* 07CA5C 7F047F2C 00000000 */ nop .L7F047F30: /* 07CA60 7F047F30 0C001A57 */ jal bossGetStageNum /* 07CA64 7F047F34 00000000 */ nop /* 07CA68 7F047F38 24010016 */ li $at, 22 /* 07CA6C 7F047F3C 1441000A */ bne $v0, $at, .L7F047F68 /* 07CA70 7F047F40 3C053F85 */ lui $a1, (0x3F859B3D >> 16) # lui $a1, 0x3f85 /* 07CA74 7F047F44 8E240014 */ lw $a0, 0x14($s1) /* 07CA78 7F047F48 0FC1B3A1 */ jal sub_GAME_7F06CE84 /* 07CA7C 7F047F4C 34A59B3D */ ori $a1, (0x3F859B3D & 0xFFFF) # ori $a1, $a1, 0x9b3d /* 07CA80 7F047F50 3C054016 */ lui $a1, (0x4016CBE4 >> 16) # lui $a1, 0x4016 /* 07CA84 7F047F54 34A5CBE4 */ ori $a1, (0x4016CBE4 & 0xFFFF) # ori $a1, $a1, 0xcbe4 /* 07CA88 7F047F58 0FC1B34F */ jal setsubroty /* 07CA8C 7F047F5C 8E240014 */ lw $a0, 0x14($s1) /* 07CA90 7F047F60 10000016 */ b .L7F047FBC /* 07CA94 7F047F64 00000000 */ nop .L7F047F68: /* 07CA98 7F047F68 0C001A57 */ jal bossGetStageNum /* 07CA9C 7F047F6C 00000000 */ nop /* 07CAA0 7F047F70 2401001A */ li $at, 26 /* 07CAA4 7F047F74 1441000B */ bne $v0, $at, .L7F047FA4 /* 07CAA8 7F047F78 3C053F85 */ lui $a1, 0x3f85 /* 07CAAC 7F047F7C 3C053F85 */ lui $a1, (0x3F859B3D >> 16) # lui $a1, 0x3f85 /* 07CAB0 7F047F80 34A59B3D */ ori $a1, (0x3F859B3D & 0xFFFF) # ori $a1, $a1, 0x9b3d /* 07CAB4 7F047F84 0FC1B3A1 */ jal sub_GAME_7F06CE84 /* 07CAB8 7F047F88 8E240014 */ lw $a0, 0x14($s1) /* 07CABC 7F047F8C 3C05407B */ lui $a1, (0x407B9B3D >> 16) # lui $a1, 0x407b /* 07CAC0 7F047F90 34A553D1 */ ori $a1, (0x407B53D1 & 0xFFFF) # ori $a1, $a1, 0x53d1 /* 07CAC4 7F047F94 0FC1B34F */ jal setsubroty /* 07CAC8 7F047F98 8E240014 */ lw $a0, 0x14($s1) /* 07CACC 7F047F9C 10000007 */ b .L7F047FBC /* 07CAD0 7F047FA0 00000000 */ nop .L7F047FA4: /* 07CAD4 7F047FA4 8E240014 */ lw $a0, 0x14($s1) /* 07CAD8 7F047FA8 0FC1B3A1 */ jal sub_GAME_7F06CE84 /* 07CADC 7F047FAC 34A59B3D */ ori $a1, (0x407B9B3D & 0xFFFF) # ori $a1, $a1, 0x9b3d /* 07CAE0 7F047FB0 4405B000 */ mfc1 $a1, $f22 /* 07CAE4 7F047FB4 0FC1B34F */ jal setsubroty /* 07CAE8 7F047FB8 8E240014 */ lw $a0, 0x14($s1) .L7F047FBC: /* 07CAEC 7F047FBC 3C058005 */ lui $a1, %hi(g_ClockTimer) /* 07CAF0 7F047FC0 8CA58374 */ lw $a1, %lo(g_ClockTimer)($a1) /* 07CAF4 7F047FC4 8E240014 */ lw $a0, 0x14($s1) /* 07CAF8 7F047FC8 0FC1C2BB */ jal modelTickAnimQuarterSpeed /* 07CAFC 7F047FCC 24060001 */ li $a2, 1 /* 07CB00 7F047FD0 0FC1B5AC */ jal subcalcpos /* 07CB04 7F047FD4 8E240014 */ lw $a0, 0x14($s1) /* 07CB08 7F047FD8 8E240014 */ lw $a0, 0x14($s1) /* 07CB0C 7F047FDC 0FC1B2E6 */ jal getsuboffset /* 07CB10 7F047FE0 8FA50070 */ lw $a1, 0x70($sp) /* 07CB14 7F047FE4 C62A0058 */ lwc1 $f10, 0x58($s1) /* 07CB18 7F047FE8 3C058007 */ lui $a1, %hi(g_CurrentSetup+0) /* 07CB1C 7F047FEC 24A55D00 */ addiu $a1, %lo(g_CurrentSetup+0) # addiu $a1, $a1, 0x5d00 /* 07CB20 7F047FF0 E66A0008 */ swc1 $f10, 8($s3) /* 07CB24 7F047FF4 C6280060 */ lwc1 $f8, 0x60($s1) /* 07CB28 7F047FF8 E6680010 */ swc1 $f8, 0x10($s3) /* 07CB2C 7F047FFC 86220006 */ lh $v0, 6($s1) /* 07CB30 7F048000 28412710 */ slti $at, $v0, 0x2710 /* 07CB34 7F048004 1020000B */ beqz $at, .L7F048034 /* 07CB38 7F048008 00027900 */ sll $t7, $v0, 4 /* 07CB3C 7F04800C 00026880 */ sll $t5, $v0, 2 /* 07CB40 7F048010 3C058007 */ lui $a1, %hi(g_CurrentSetup+0) /* 07CB44 7F048014 01A26823 */ subu $t5, $t5, $v0 /* 07CB48 7F048018 24A55D00 */ addiu $a1, %lo(g_CurrentSetup+0) # addiu $a1, $a1, 0x5d00 /* 07CB4C 7F04801C 000D6880 */ sll $t5, $t5, 2 /* 07CB50 7F048020 8CB80018 */ lw $t8, 0x18($a1) /* 07CB54 7F048024 01A26823 */ subu $t5, $t5, $v0 /* 07CB58 7F048028 000D6880 */ sll $t5, $t5, 2 /* 07CB5C 7F04802C 10000008 */ b .L7F048050 /* 07CB60 7F048030 01B81821 */ addu $v1, $t5, $t8 .L7F048034: /* 07CB64 7F048034 8CA8001C */ lw $t0, 0x1c($a1) /* 07CB68 7F048038 01E27821 */ addu $t7, $t7, $v0 /* 07CB6C 7F04803C 000F7880 */ sll $t7, $t7, 2 /* 07CB70 7F048040 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 /* 07CB74 7F048044 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 /* 07CB78 7F048048 01E81821 */ addu $v1, $t7, $t0 /* 07CB7C 7F04804C 00611821 */ addu $v1, $v1, $at .L7F048050: /* 07CB80 7F048050 C624005C */ lwc1 $f4, 0x5c($s1) /* 07CB84 7F048054 C4660004 */ lwc1 $f6, 4($v1) /* 07CB88 7F048058 46062280 */ add.s $f10, $f4, $f6 /* 07CB8C 7F04805C E66A000C */ swc1 $f10, 0xc($s3) /* 07CB90 7F048060 C668000C */ lwc1 $f8, 0xc($s3) /* 07CB94 7F048064 8E240014 */ lw $a0, 0x14($s1) /* 07CB98 7F048068 E628005C */ swc1 $f8, 0x5c($s1) /* 07CB9C 7F04806C 0FC1B303 */ jal setsuboffset /* 07CBA0 7F048070 8FA50070 */ lw $a1, 0x70($sp) /* 07CBA4 7F048074 C62C00A0 */ lwc1 $f12, 0xa0($s1) .L7F048078: /* 07CBA8 7F048078 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) /* 07CBAC 7F04807C 460CB03E */ c.le.s $f22, $f12 /* 07CBB0 7F048080 00000000 */ nop /* 07CBB4 7F048084 45020016 */ bc1fl .L7F0480E0 /* 07CBB8 7F048088 C6200094 */ lwc1 $f0, 0x94($s1) /* 07CBBC 7F04808C C4228378 */ lwc1 $f2, %lo(g_GlobalTimerDelta)($at) /* 07CBC0 7F048090 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) /* 07CBC4 7F048094 4602603E */ c.le.s $f12, $f2 /* 07CBC8 7F048098 00000000 */ nop /* 07CBCC 7F04809C 45020006 */ bc1fl .L7F0480B8 /* 07CBD0 7F0480A0 C62E0098 */ lwc1 $f14, 0x98($s1) /* 07CBD4 7F0480A4 C624009C */ lwc1 $f4, 0x9c($s1) /* 07CBD8 7F0480A8 C62C00A0 */ lwc1 $f12, 0xa0($s1) /* 07CBDC 7F0480AC 10000008 */ b .L7F0480D0 /* 07CBE0 7F0480B0 E6240098 */ swc1 $f4, 0x98($s1) /* 07CBE4 7F0480B4 C62E0098 */ lwc1 $f14, 0x98($s1) .L7F0480B8: /* 07CBE8 7F0480B8 C626009C */ lwc1 $f6, 0x9c($s1) /* 07CBEC 7F0480BC 460E3281 */ sub.s $f10, $f6, $f14 /* 07CBF0 7F0480C0 46025202 */ mul.s $f8, $f10, $f2 /* 07CBF4 7F0480C4 460C4103 */ div.s $f4, $f8, $f12 /* 07CBF8 7F0480C8 46047180 */ add.s $f6, $f14, $f4 /* 07CBFC 7F0480CC E6260098 */ swc1 $f6, 0x98($s1) .L7F0480D0: /* 07CC00 7F0480D0 C42A8378 */ lwc1 $f10, %lo(g_GlobalTimerDelta)($at) /* 07CC04 7F0480D4 460A6201 */ sub.s $f8, $f12, $f10 /* 07CC08 7F0480D8 E62800A0 */ swc1 $f8, 0xa0($s1) /* 07CC0C 7F0480DC C6200094 */ lwc1 $f0, 0x94($s1) .L7F0480E0: /* 07CC10 7F0480E0 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) /* 07CC14 7F0480E4 4600B03E */ c.le.s $f22, $f0 /* 07CC18 7F0480E8 00000000 */ nop /* 07CC1C 7F0480EC 45020016 */ bc1fl .L7F048148 /* 07CC20 7F0480F0 8E2B000C */ lw $t3, 0xc($s1) /* 07CC24 7F0480F4 C4228378 */ lwc1 $f2, %lo(g_GlobalTimerDelta)($at) /* 07CC28 7F0480F8 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) /* 07CC2C 7F0480FC 4602003E */ c.le.s $f0, $f2 /* 07CC30 7F048100 00000000 */ nop /* 07CC34 7F048104 45020006 */ bc1fl .L7F048120 /* 07CC38 7F048108 C62C008C */ lwc1 $f12, 0x8c($s1) /* 07CC3C 7F04810C C6240090 */ lwc1 $f4, 0x90($s1) /* 07CC40 7F048110 C6200094 */ lwc1 $f0, 0x94($s1) /* 07CC44 7F048114 10000008 */ b .L7F048138 /* 07CC48 7F048118 E624008C */ swc1 $f4, 0x8c($s1) /* 07CC4C 7F04811C C62C008C */ lwc1 $f12, 0x8c($s1) .L7F048120: /* 07CC50 7F048120 C6260090 */ lwc1 $f6, 0x90($s1) /* 07CC54 7F048124 460C3281 */ sub.s $f10, $f6, $f12 /* 07CC58 7F048128 46025202 */ mul.s $f8, $f10, $f2 /* 07CC5C 7F04812C 46004103 */ div.s $f4, $f8, $f0 /* 07CC60 7F048130 46046180 */ add.s $f6, $f12, $f4 /* 07CC64 7F048134 E626008C */ swc1 $f6, 0x8c($s1) .L7F048138: /* 07CC68 7F048138 C42A8378 */ lwc1 $f10, %lo(g_GlobalTimerDelta)($at) /* 07CC6C 7F04813C 460A0201 */ sub.s $f8, $f0, $f10 /* 07CC70 7F048140 E6280094 */ swc1 $f8, 0x94($s1) /* 07CC74 7F048144 8E2B000C */ lw $t3, 0xc($s1) .L7F048148: /* 07CC78 7F048148 00008025 */ move $s0, $zero /* 07CC7C 7F04814C 000B4B00 */ sll $t1, $t3, 0xc /* 07CC80 7F048150 05200014 */ bltz $t1, .L7F0481A4 /* 07CC84 7F048154 00000000 */ nop /* 07CC88 7F048158 0FC13BCD */ jal objIsHealthy /* 07CC8C 7F04815C 02202025 */ move $a0, $s1 /* 07CC90 7F048160 10400010 */ beqz $v0, .L7F0481A4 /* 07CC94 7F048164 00000000 */ nop /* 07CC98 7F048168 C624008C */ lwc1 $f4, 0x8c($s1) /* 07CC9C 7F04816C 4604B032 */ c.eq.s $f22, $f4 /* 07CCA0 7F048170 00000000 */ nop /* 07CCA4 7F048174 4501000B */ bc1t .L7F0481A4 /* 07CCA8 7F048178 00000000 */ nop /* 07CCAC 7F04817C 8E390008 */ lw $t9, 8($s1) /* 07CCB0 7F048180 3C05459C */ lui $a1, (0x459C4000 >> 16) # lui $a1, 0x459c /* 07CCB4 7F048184 34A54000 */ ori $a1, (0x459C4000 & 0xFFFF) # ori $a1, $a1, 0x4000 /* 07CCB8 7F048188 00196080 */ sll $t4, $t9, 2 /* 07CCBC 7F04818C 05800005 */ bltz $t4, .L7F0481A4 /* 07CCC0 7F048190 26240058 */ addiu $a0, $s1, 0x58 /* 07CCC4 7F048194 3C0645BB */ lui $a2, (0x45BB8000 >> 16) # lui $a2, 0x45bb /* 07CCC8 7F048198 0FC14E25 */ jal sub_GAME_7F053894 /* 07CCCC 7F04819C 34C68000 */ ori $a2, (0x45BB8000 & 0xFFFF) # ori $a2, $a2, 0x8000 /* 07CCD0 7F0481A0 00408025 */ move $s0, $v0 .L7F0481A4: /* 07CCD4 7F0481A4 5A000019 */ blezl $s0, .L7F04820C /* 07CCD8 7F0481A8 8E2400B0 */ lw $a0, 0xb0($s1) /* 07CCDC 7F0481AC 8E2400B0 */ lw $a0, 0xb0($s1) /* 07CCE0 7F0481B0 10800005 */ beqz $a0, .L7F0481C8 /* 07CCE4 7F0481B4 00000000 */ nop /* 07CCE8 7F0481B8 0C00237C */ jal sndGetPlayingState /* 07CCEC 7F0481BC 00000000 */ nop /* 07CCF0 7F0481C0 5440000A */ bnezl $v0, .L7F0481EC /* 07CCF4 7F0481C4 8E2400B0 */ lw $a0, 0xb0($s1) .L7F0481C8: /* 07CCF8 7F0481C8 0FC2FF01 */ jal lvlGetControlsLockedFlag /* 07CCFC 7F0481CC 00000000 */ nop /* 07CD00 7F0481D0 14400005 */ bnez $v0, .L7F0481E8 /* 07CD04 7F0481D4 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 07CD08 7F0481D8 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07CD0C 7F0481DC 2405003A */ li $a1, 58 /* 07CD10 7F0481E0 0C002382 */ jal sndPlaySfx /* 07CD14 7F0481E4 262600B0 */ addiu $a2, $s1, 0xb0 .L7F0481E8: /* 07CD18 7F0481E8 8E2400B0 */ lw $a0, 0xb0($s1) .L7F0481EC: /* 07CD1C 7F0481EC 24050008 */ li $a1, 8 /* 07CD20 7F0481F0 5080000F */ beql $a0, $zero, .L7F048230 /* 07CD24 7F0481F4 92220003 */ lbu $v0, 3($s1) /* 07CD28 7F0481F8 0C002461 */ jal sndCreatePostEvent /* 07CD2C 7F0481FC 02003025 */ move $a2, $s0 /* 07CD30 7F048200 1000000B */ b .L7F048230 /* 07CD34 7F048204 92220003 */ lbu $v0, 3($s1) /* 07CD38 7F048208 8E2400B0 */ lw $a0, 0xb0($s1) .L7F04820C: /* 07CD3C 7F04820C 50800008 */ beql $a0, $zero, .L7F048230 /* 07CD40 7F048210 92220003 */ lbu $v0, 3($s1) /* 07CD44 7F048214 0C00237C */ jal sndGetPlayingState /* 07CD48 7F048218 00000000 */ nop /* 07CD4C 7F04821C 50400004 */ beql $v0, $zero, .L7F048230 /* 07CD50 7F048220 92220003 */ lbu $v0, 3($s1) /* 07CD54 7F048224 0C002408 */ jal sndDeactivate /* 07CD58 7F048228 8E2400B0 */ lw $a0, 0xb0($s1) .L7F04822C: /* 07CD5C 7F04822C 92220003 */ lbu $v0, 3($s1) .L7F048230: /* 07CD60 7F048230 3C018005 */ lui $at, %hi(D_80052B64) /* 07CD64 7F048234 C4342B64 */ lwc1 $f20, %lo(D_80052B64)($at) /* 07CD68 7F048238 2401002F */ li $at, 47 /* 07CD6C 7F04823C 54410020 */ bnel $v0, $at, .L7F0482C0 /* 07CD70 7F048240 24010001 */ li $at, 1 /* 07CD74 7F048244 8E700004 */ lw $s0, 4($s3) /* 07CD78 7F048248 26240058 */ addiu $a0, $s1, 0x58 /* 07CD7C 7F04824C 8E0A0080 */ lw $t2, 0x80($s0) /* 07CD80 7F048250 8E0E0084 */ lw $t6, 0x84($s0) /* 07CD84 7F048254 8E070090 */ lw $a3, 0x90($s0) /* 07CD88 7F048258 448A3000 */ mtc1 $t2, $f6 /* 07CD8C 7F04825C 448E5000 */ mtc1 $t6, $f10 /* 07CD90 7F048260 468031A0 */ cvt.s.w $f6, $f6 /* 07CD94 7F048264 468052A0 */ cvt.s.w $f10, $f10 /* 07CD98 7F048268 44053000 */ mfc1 $a1, $f6 /* 07CD9C 7F04826C 44065000 */ mfc1 $a2, $f10 /* 07CDA0 7F048270 0FC11477 */ jal glassCalculateOpacity /* 07CDA4 7F048274 00000000 */ nop /* 07CDA8 7F048278 8E04008C */ lw $a0, 0x8c($s0) /* 07CDAC 7F04827C AE020088 */ sw $v0, 0x88($s0) /* 07CDB0 7F048280 8FAD0674 */ lw $t5, 0x674($sp) /* 07CDB4 7F048284 0480000B */ bltz $a0, .L7F0482B4 /* 07CDB8 7F048288 24010001 */ li $at, 1 /* 07CDBC 7F04828C 15A10009 */ bne $t5, $at, .L7F0482B4 /* 07CDC0 7F048290 240100FF */ li $at, 255 /* 07CDC4 7F048294 14410005 */ bne $v0, $at, .L7F0482AC /* 07CDC8 7F048298 00000000 */ nop /* 07CDCC 7F04829C 0FC2E76F */ jal bgToggleDataPortalsContrlBytes1Bit1 /* 07CDD0 7F0482A0 00002825 */ move $a1, $zero /* 07CDD4 7F0482A4 10000003 */ b .L7F0482B4 /* 07CDD8 7F0482A8 00000000 */ nop .L7F0482AC: /* 07CDDC 7F0482AC 0FC2E76F */ jal bgToggleDataPortalsContrlBytes1Bit1 /* 07CDE0 7F0482B0 24050001 */ li $a1, 1 .L7F0482B4: /* 07CDE4 7F0482B4 1000003B */ b .L7F0483A4 /* 07CDE8 7F0482B8 AFA00670 */ sw $zero, 0x670($sp) /* 07CDEC 7F0482BC 24010001 */ li $at, 1 .L7F0482C0: /* 07CDF0 7F0482C0 54410039 */ bnel $v0, $at, .L7F0483A8 /* 07CDF4 7F0482C4 922F0003 */ lbu $t7, 3($s1) /* 07CDF8 7F0482C8 962F0098 */ lhu $t7, 0x98($s1) /* 07CDFC 7F0482CC 31E80002 */ andi $t0, $t7, 2 /* 07CE00 7F0482D0 51000035 */ beql $t0, $zero, .L7F0483A8 /* 07CE04 7F0482D4 922F0003 */ lbu $t7, 3($s1) /* 07CE08 7F0482D8 8E700004 */ lw $s0, 4($s3) /* 07CE0C 7F0482DC 4407B000 */ mfc1 $a3, $f22 /* 07CE10 7F0482E0 24120001 */ li $s2, 1 /* 07CE14 7F0482E4 8E0B00C0 */ lw $t3, 0xc0($s0) /* 07CE18 7F0482E8 8E0900C4 */ lw $t1, 0xc4($s0) /* 07CE1C 7F0482EC 26240058 */ addiu $a0, $s1, 0x58 /* 07CE20 7F0482F0 448B4000 */ mtc1 $t3, $f8 /* 07CE24 7F0482F4 44892000 */ mtc1 $t1, $f4 /* 07CE28 7F0482F8 46804220 */ cvt.s.w $f8, $f8 /* 07CE2C 7F0482FC 46802120 */ cvt.s.w $f4, $f4 /* 07CE30 7F048300 44054000 */ mfc1 $a1, $f8 /* 07CE34 7F048304 44062000 */ mfc1 $a2, $f4 /* 07CE38 7F048308 0FC11477 */ jal glassCalculateOpacity /* 07CE3C 7F04830C 00000000 */ nop /* 07CE40 7F048310 A60200BE */ sh $v0, 0xbe($s0) /* 07CE44 7F048314 8FB90674 */ lw $t9, 0x674($sp) /* 07CE48 7F048318 24010001 */ li $at, 1 /* 07CE4C 7F04831C 57210022 */ bnel $t9, $at, .L7F0483A8 /* 07CE50 7F048320 922F0003 */ lbu $t7, 3($s1) /* 07CE54 7F048324 860C00BE */ lh $t4, 0xbe($s0) /* 07CE58 7F048328 240100FF */ li $at, 255 /* 07CE5C 7F04832C 55810007 */ bnel $t4, $at, .L7F04834C /* 07CE60 7F048330 00009025 */ move $s2, $zero /* 07CE64 7F048334 C60600B4 */ lwc1 $f6, 0xb4($s0) /* 07CE68 7F048338 4606B03C */ c.lt.s $f22, $f6 /* 07CE6C 7F04833C 00000000 */ nop /* 07CE70 7F048340 45020003 */ bc1fl .L7F048350 /* 07CE74 7F048344 8E820008 */ lw $v0, 8($s4) /* 07CE78 7F048348 00009025 */ move $s2, $zero .L7F04834C: /* 07CE7C 7F04834C 8E820008 */ lw $v0, 8($s4) .L7F048350: /* 07CE80 7F048350 3C0A8004 */ lui $t2, %hi(skeleton_door) /* 07CE84 7F048354 254AA1DC */ addiu $t2, %lo(skeleton_door) # addiu $t2, $t2, -0x5e24 /* 07CE88 7F048358 8C4E0004 */ lw $t6, 4($v0) /* 07CE8C 7F04835C 154E0009 */ bne $t2, $t6, .L7F048384 /* 07CE90 7F048360 00000000 */ nop /* 07CE94 7F048364 8C4D0008 */ lw $t5, 8($v0) /* 07CE98 7F048368 02802025 */ move $a0, $s4 /* 07CE9C 7F04836C 0FC1B1E7 */ jal modelGetNodeRwData /* 07CEA0 7F048370 8DA50004 */ lw $a1, 4($t5) /* 07CEA4 7F048374 8C580000 */ lw $t8, ($v0) /* 07CEA8 7F048378 17000002 */ bnez $t8, .L7F048384 /* 07CEAC 7F04837C 00000000 */ nop /* 07CEB0 7F048380 00009025 */ move $s2, $zero .L7F048384: /* 07CEB4 7F048384 12400005 */ beqz $s2, .L7F04839C /* 07CEB8 7F048388 00000000 */ nop /* 07CEBC 7F04838C 0FC14D71 */ jal doorDeactivatePortal /* 07CEC0 7F048390 02002025 */ move $a0, $s0 /* 07CEC4 7F048394 10000004 */ b .L7F0483A8 /* 07CEC8 7F048398 922F0003 */ lbu $t7, 3($s1) .L7F04839C: /* 07CECC 7F04839C 0FC14D66 */ jal doorActivatePortal /* 07CED0 7F0483A0 02002025 */ move $a0, $s0 .L7F0483A4: /* 07CED4 7F0483A4 922F0003 */ lbu $t7, 3($s1) .L7F0483A8: /* 07CED8 7F0483A8 2410002D */ li $s0, 45 /* 07CEDC 7F0483AC 560F0008 */ bnel $s0, $t7, .L7F0483D0 /* 07CEE0 7F0483B0 8E23000C */ lw $v1, 0xc($s1) /* 07CEE4 7F0483B4 0FC1F3A1 */ jal get_ptr_for_players_tank /* 07CEE8 7F0483B8 00000000 */ nop /* 07CEEC 7F0483BC 54530004 */ bnel $v0, $s3, .L7F0483D0 /* 07CEF0 7F0483C0 8E23000C */ lw $v1, 0xc($s1) /* 07CEF4 7F0483C4 10000019 */ b .L7F04842C /* 07CEF8 7F0483C8 24030001 */ li $v1, 1 /* 07CEFC 7F0483CC 8E23000C */ lw $v1, 0xc($s1) .L7F0483D0: /* 07CF00 7F0483D0 00034140 */ sll $t0, $v1, 5 /* 07CF04 7F0483D4 05030004 */ bgezl $t0, .L7F0483E8 /* 07CF08 7F0483D8 8E2B0064 */ lw $t3, 0x64($s1) /* 07CF0C 7F0483DC 10000013 */ b .L7F04842C /* 07CF10 7F0483E0 24030001 */ li $v1, 1 /* 07CF14 7F0483E4 8E2B0064 */ lw $t3, 0x64($s1) .L7F0483E8: /* 07CF18 7F0483E8 0003CB00 */ sll $t9, $v1, 0xc /* 07CF1C 7F0483EC 00001825 */ move $v1, $zero /* 07CF20 7F0483F0 31690800 */ andi $t1, $t3, 0x800 /* 07CF24 7F0483F4 1520000D */ bnez $t1, .L7F04842C /* 07CF28 7F0483F8 00000000 */ nop /* 07CF2C 7F0483FC 0720000B */ bltz $t9, .L7F04842C /* 07CF30 7F048400 02802025 */ move $a0, $s4 /* 07CF34 7F048404 262C0058 */ addiu $t4, $s1, 0x58 /* 07CF38 7F048408 0FC1B403 */ jal getinstsize /* 07CF3C 7F04840C AFAC0070 */ sw $t4, 0x70($sp) /* 07CF40 7F048410 44060000 */ mfc1 $a2, $f0 /* 07CF44 7F048414 02602025 */ move $a0, $s3 /* 07CF48 7F048418 8FA50070 */ lw $a1, 0x70($sp) /* 07CF4C 7F04841C 0FC1535B */ jal sub_GAME_7F054D6C /* 07CF50 7F048420 8FA70670 */ lw $a3, 0x670($sp) /* 07CF54 7F048424 10000001 */ b .L7F04842C /* 07CF58 7F048428 00401825 */ move $v1, $v0 .L7F04842C: /* 07CF5C 7F04842C 1060037A */ beqz $v1, .L7F049218 /* 07CF60 7F048430 8FAA0678 */ lw $t2, 0x678($sp) /* 07CF64 7F048434 11400003 */ beqz $t2, .L7F048444 /* 07CF68 7F048438 26240078 */ addiu $a0, $s1, 0x78 /* 07CF6C 7F04843C 0FC100C4 */ jal update_color_shading /* 07CF70 7F048440 2625007C */ addiu $a1, $s1, 0x7c .L7F048444: /* 07CF74 7F048444 926E0001 */ lbu $t6, 1($s3) /* 07CF78 7F048448 35CD0002 */ ori $t5, $t6, 2 /* 07CF7C 7F04844C A26D0001 */ sb $t5, 1($s3) /* 07CF80 7F048450 8E980008 */ lw $t8, 8($s4) /* 07CF84 7F048454 8704000E */ lh $a0, 0xe($t8) /* 07CF88 7F048458 00047980 */ sll $t7, $a0, 6 /* 07CF8C 7F04845C 0FC2F5C5 */ jal dynAllocate /* 07CF90 7F048460 01E02025 */ move $a0, $t7 /* 07CF94 7F048464 AE82000C */ sw $v0, 0xc($s4) /* 07CF98 7F048468 92280003 */ lbu $t0, 3($s1) /* 07CF9C 7F04846C 24010001 */ li $at, 1 /* 07CFA0 7F048470 00409025 */ move $s2, $v0 /* 07CFA4 7F048474 150100AD */ bne $t0, $at, .L7F04872C /* 07CFA8 7F048478 26240018 */ addiu $a0, $s1, 0x18 /* 07CFAC 7F04847C 8E640004 */ lw $a0, 4($s3) /* 07CFB0 7F048480 00402825 */ move $a1, $v0 /* 07CFB4 7F048484 0FC149BB */ jal door7F0526EC /* 07CFB8 7F048488 AFA4039C */ sw $a0, 0x39c($sp) /* 07CFBC 7F04848C 0FC1E0F1 */ jal camGetWorldToScreenMtxf /* 07CFC0 7F048490 00000000 */ nop /* 07CFC4 7F048494 00402025 */ move $a0, $v0 /* 07CFC8 7F048498 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07CFCC 7F04849C 02402825 */ move $a1, $s2 /* 07CFD0 7F0484A0 8E820008 */ lw $v0, 8($s4) /* 07CFD4 7F0484A4 3C0B8004 */ lui $t3, %hi(skeleton_eyelid_door) /* 07CFD8 7F0484A8 256BA100 */ addiu $t3, %lo(skeleton_eyelid_door) # addiu $t3, $t3, -0x5f00 /* 07CFDC 7F0484AC 8C430004 */ lw $v1, 4($v0) /* 07CFE0 7F0484B0 3C0D8004 */ lui $t5, %hi(skeleton_iris_door) /* 07CFE4 7F0484B4 8FA6039C */ lw $a2, 0x39c($sp) /* 07CFE8 7F0484B8 15630025 */ bne $t3, $v1, .L7F048550 /* 07CFEC 7F0484BC 25ADA15C */ addiu $t5, %lo(skeleton_iris_door) # addiu $t5, $t5, -0x5ea4 /* 07CFF0 7F0484C0 C4CA00B4 */ lwc1 $f10, 0xb4($a2) /* 07CFF4 7F0484C4 3C0143B4 */ li $at, 0x43B40000 # 360.000000 /* 07CFF8 7F0484C8 44812000 */ mtc1 $at, $f4 /* 07CFFC 7F0484CC 46145202 */ mul.s $f8, $f10, $f20 /* 07D000 7F0484D0 8C490008 */ lw $t1, 8($v0) /* 07D004 7F0484D4 26450040 */ addiu $a1, $s2, 0x40 /* 07D008 7F0484D8 8D390004 */ lw $t9, 4($t1) /* 07D00C 7F0484DC 46044183 */ div.s $f6, $f8, $f4 /* 07D010 7F0484E0 8F300004 */ lw $s0, 4($t9) /* 07D014 7F0484E4 AFA5006C */ sw $a1, 0x6c($sp) /* 07D018 7F0484E8 4606A301 */ sub.s $f12, $f20, $f6 /* 07D01C 7F0484EC 0FC1615C */ jal matrix_4x4_set_rotation_around_x /* 07D020 7F0484F0 E7AC0394 */ swc1 $f12, 0x394($sp) /* 07D024 7F0484F4 02002025 */ move $a0, $s0 /* 07D028 7F0484F8 0FC16266 */ jal matrix_4x4_set_position /* 07D02C 7F0484FC 8FA5006C */ lw $a1, 0x6c($sp) /* 07D030 7F048500 02402025 */ move $a0, $s2 /* 07D034 7F048504 0FC1601A */ jal matrix_4x4_multiply_in_place /* 07D038 7F048508 8FA5006C */ lw $a1, 0x6c($sp) /* 07D03C 7F04850C 8E8C0008 */ lw $t4, 8($s4) /* 07D040 7F048510 C7AA0394 */ lwc1 $f10, 0x394($sp) /* 07D044 7F048514 26450080 */ addiu $a1, $s2, 0x80 /* 07D048 7F048518 8D8A0008 */ lw $t2, 8($t4) /* 07D04C 7F04851C 460AA301 */ sub.s $f12, $f20, $f10 /* 07D050 7F048520 8D4E0008 */ lw $t6, 8($t2) /* 07D054 7F048524 8DD00004 */ lw $s0, 4($t6) /* 07D058 7F048528 0FC1615C */ jal matrix_4x4_set_rotation_around_x /* 07D05C 7F04852C AFA50068 */ sw $a1, 0x68($sp) /* 07D060 7F048530 02002025 */ move $a0, $s0 /* 07D064 7F048534 0FC16266 */ jal matrix_4x4_set_position /* 07D068 7F048538 8FA50068 */ lw $a1, 0x68($sp) /* 07D06C 7F04853C 02402025 */ move $a0, $s2 /* 07D070 7F048540 0FC1601A */ jal matrix_4x4_multiply_in_place /* 07D074 7F048544 8FA50068 */ lw $a1, 0x68($sp) /* 07D078 7F048548 1000031F */ b .L7F0491C8 /* 07D07C 7F04854C 8E8F0008 */ lw $t7, 8($s4) .L7F048550: /* 07D080 7F048550 55A3031D */ bnel $t5, $v1, .L7F0491C8 /* 07D084 7F048554 8E8F0008 */ lw $t7, 8($s4) /* 07D088 7F048558 C4C200B4 */ lwc1 $f2, 0xb4($a2) /* 07D08C 7F04855C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 /* 07D090 7F048560 44812000 */ mtc1 $at, $f4 /* 07D094 7F048564 46141202 */ mul.s $f8, $f2, $f20 /* 07D098 7F048568 3C018005 */ lui $at, %hi(D_80052B68) /* 07D09C 7F04856C C42A2B68 */ lwc1 $f10, %lo(D_80052B68)($at) /* 07D0A0 7F048570 4600B386 */ mov.s $f14, $f22 /* 07D0A4 7F048574 46044183 */ div.s $f6, $f8, $f4 /* 07D0A8 7F048578 E7A60384 */ swc1 $f6, 0x384($sp) /* 07D0AC 7F04857C C4CC0084 */ lwc1 $f12, 0x84($a2) /* 07D0B0 7F048580 460A6002 */ mul.s $f0, $f12, $f10 /* 07D0B4 7F048584 4602003C */ c.lt.s $f0, $f2 /* 07D0B8 7F048588 00000000 */ nop /* 07D0BC 7F04858C 4502001F */ bc1fl .L7F04860C /* 07D0C0 7F048590 8FA80678 */ lw $t0, 0x678($sp) /* 07D0C4 7F048594 46001201 */ sub.s $f8, $f2, $f0 /* 07D0C8 7F048598 3C0143B4 */ li $at, 0x43B40000 # 360.000000 /* 07D0CC 7F04859C 8FB80678 */ lw $t8, 0x678($sp) /* 07D0D0 7F0485A0 46006181 */ sub.s $f6, $f12, $f0 /* 07D0D4 7F0485A4 46086102 */ mul.s $f4, $f12, $f8 /* 07D0D8 7F0485A8 46062283 */ div.s $f10, $f4, $f6 /* 07D0DC 7F0485AC 44812000 */ mtc1 $at, $f4 /* 07D0E0 7F0485B0 46145202 */ mul.s $f8, $f10, $f20 /* 07D0E4 7F0485B4 46044383 */ div.s $f14, $f8, $f4 /* 07D0E8 7F0485B8 13000011 */ beqz $t8, .L7F048600 /* 07D0EC 7F0485BC E7AE0380 */ swc1 $f14, 0x380($sp) /* 07D0F0 7F0485C0 C7A6067C */ lwc1 $f6, 0x67c($sp) /* 07D0F4 7F0485C4 E7AE0380 */ swc1 $f14, 0x380($sp) /* 07D0F8 7F0485C8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 07D0FC 7F0485CC 4600303E */ c.le.s $f6, $f0 /* 07D100 7F0485D0 240500CA */ li $a1, 202 /* 07D104 7F0485D4 00003025 */ move $a2, $zero /* 07D108 7F0485D8 266F0008 */ addiu $t7, $s3, 8 /* 07D10C 7F0485DC 45000008 */ bc1f .L7F048600 /* 07D110 7F0485E0 00000000 */ nop /* 07D114 7F0485E4 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07D118 7F0485E8 AFAF0070 */ sw $t7, 0x70($sp) /* 07D11C 7F0485EC 0C002382 */ jal sndPlaySfx /* 07D120 7F0485F0 E7AE0380 */ swc1 $f14, 0x380($sp) /* 07D124 7F0485F4 00402025 */ move $a0, $v0 /* 07D128 7F0485F8 0FC14E84 */ jal chrobjSndCreatePostEventDefault /* 07D12C 7F0485FC 8FA50070 */ lw $a1, 0x70($sp) .L7F048600: /* 07D130 7F048600 10000016 */ b .L7F04865C /* 07D134 7F048604 AFA0038C */ sw $zero, 0x38c($sp) /* 07D138 7F048608 8FA80678 */ lw $t0, 0x678($sp) .L7F04860C: /* 07D13C 7F04860C E7AE0380 */ swc1 $f14, 0x380($sp) /* 07D140 7F048610 51000012 */ beql $t0, $zero, .L7F04865C /* 07D144 7F048614 AFA0038C */ sw $zero, 0x38c($sp) /* 07D148 7F048618 C7AA067C */ lwc1 $f10, 0x67c($sp) /* 07D14C 7F04861C E7AE0380 */ swc1 $f14, 0x380($sp) /* 07D150 7F048620 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 07D154 7F048624 460A003C */ c.lt.s $f0, $f10 /* 07D158 7F048628 240500CB */ li $a1, 203 /* 07D15C 7F04862C 00003025 */ move $a2, $zero /* 07D160 7F048630 266B0008 */ addiu $t3, $s3, 8 /* 07D164 7F048634 45020009 */ bc1fl .L7F04865C /* 07D168 7F048638 AFA0038C */ sw $zero, 0x38c($sp) /* 07D16C 7F04863C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07D170 7F048640 AFAB0070 */ sw $t3, 0x70($sp) /* 07D174 7F048644 0C002382 */ jal sndPlaySfx /* 07D178 7F048648 E7AE0380 */ swc1 $f14, 0x380($sp) /* 07D17C 7F04864C 00402025 */ move $a0, $v0 /* 07D180 7F048650 0FC14E84 */ jal chrobjSndCreatePostEventDefault /* 07D184 7F048654 8FA50070 */ lw $a1, 0x70($sp) /* 07D188 7F048658 AFA0038C */ sw $zero, 0x38c($sp) .L7F04865C: /* 07D18C 7F04865C 8E890008 */ lw $t1, 8($s4) /* 07D190 7F048660 8FA3038C */ lw $v1, 0x38c($sp) /* 07D194 7F048664 C7AC0380 */ lwc1 $f12, 0x380($sp) /* 07D198 7F048668 8D390008 */ lw $t9, 8($t1) /* 07D19C 7F04866C 00031040 */ sll $v0, $v1, 1 /* 07D1A0 7F048670 00026080 */ sll $t4, $v0, 2 /* 07D1A4 7F048674 032C5021 */ addu $t2, $t9, $t4 /* 07D1A8 7F048678 8D4E0004 */ lw $t6, 4($t2) /* 07D1AC 7F04867C 0002C180 */ sll $t8, $v0, 6 /* 07D1B0 7F048680 02582821 */ addu $a1, $s2, $t8 /* 07D1B4 7F048684 8DCD0004 */ lw $t5, 4($t6) /* 07D1B8 7F048688 AFA20074 */ sw $v0, 0x74($sp) /* 07D1BC 7F04868C 24A50040 */ addiu $a1, $a1, 0x40 /* 07D1C0 7F048690 0FC161A2 */ jal matrix_4x4_set_rotation_around_z /* 07D1C4 7F048694 AFAD0390 */ sw $t5, 0x390($sp) /* 07D1C8 7F048698 8FAF0074 */ lw $t7, 0x74($sp) /* 07D1CC 7F04869C 8FB0038C */ lw $s0, 0x38c($sp) /* 07D1D0 7F0486A0 8FA40390 */ lw $a0, 0x390($sp) /* 07D1D4 7F0486A4 000F4180 */ sll $t0, $t7, 6 /* 07D1D8 7F0486A8 02482821 */ addu $a1, $s2, $t0 /* 07D1DC 7F0486AC 24A50040 */ addiu $a1, $a1, 0x40 /* 07D1E0 7F0486B0 0FC16266 */ jal matrix_4x4_set_position /* 07D1E4 7F0486B4 AFA50070 */ sw $a1, 0x70($sp) /* 07D1E8 7F0486B8 02402025 */ move $a0, $s2 /* 07D1EC 7F0486BC 0FC1601A */ jal matrix_4x4_multiply_in_place /* 07D1F0 7F0486C0 8FA50070 */ lw $a1, 0x70($sp) /* 07D1F4 7F0486C4 8E8B0008 */ lw $t3, 8($s4) /* 07D1F8 7F0486C8 8FA20074 */ lw $v0, 0x74($sp) /* 07D1FC 7F0486CC C7AC0384 */ lwc1 $f12, 0x384($sp) /* 07D200 7F0486D0 8D690008 */ lw $t1, 8($t3) /* 07D204 7F0486D4 24420002 */ addiu $v0, $v0, 2 /* 07D208 7F0486D8 0002C880 */ sll $t9, $v0, 2 /* 07D20C 7F0486DC 01396021 */ addu $t4, $t1, $t9 /* 07D210 7F0486E0 8D8A0000 */ lw $t2, ($t4) /* 07D214 7F0486E4 00026980 */ sll $t5, $v0, 6 /* 07D218 7F0486E8 024D2821 */ addu $a1, $s2, $t5 /* 07D21C 7F0486EC 8D4E0004 */ lw $t6, 4($t2) /* 07D220 7F0486F0 AFA5006C */ sw $a1, 0x6c($sp) /* 07D224 7F0486F4 0FC161A2 */ jal matrix_4x4_set_rotation_around_z /* 07D228 7F0486F8 AFAE0390 */ sw $t6, 0x390($sp) /* 07D22C 7F0486FC 8FA40390 */ lw $a0, 0x390($sp) /* 07D230 7F048700 0FC16266 */ jal matrix_4x4_set_position /* 07D234 7F048704 8FA5006C */ lw $a1, 0x6c($sp) /* 07D238 7F048708 8FA40070 */ lw $a0, 0x70($sp) /* 07D23C 7F04870C 0FC1601A */ jal matrix_4x4_multiply_in_place /* 07D240 7F048710 8FA5006C */ lw $a1, 0x6c($sp) /* 07D244 7F048714 26100001 */ addiu $s0, $s0, 1 /* 07D248 7F048718 24010006 */ li $at, 6 /* 07D24C 7F04871C 1601FFCF */ bne $s0, $at, .L7F04865C /* 07D250 7F048720 AFB0038C */ sw $s0, 0x38c($sp) /* 07D254 7F048724 100002A8 */ b .L7F0491C8 /* 07D258 7F048728 8E8F0008 */ lw $t7, 8($s4) .L7F04872C: /* 07D25C 7F04872C 26380058 */ addiu $t8, $s1, 0x58 /* 07D260 7F048730 AFB80070 */ sw $t8, 0x70($sp) /* 07D264 7F048734 0FC16008 */ jal matrix_4x4_copy /* 07D268 7F048738 27A503A4 */ addiu $a1, $sp, 0x3a4 /* 07D26C 7F04873C 8FA40070 */ lw $a0, 0x70($sp) /* 07D270 7F048740 0FC16266 */ jal matrix_4x4_set_position /* 07D274 7F048744 27A503A4 */ addiu $a1, $sp, 0x3a4 /* 07D278 7F048748 0FC1E0F1 */ jal camGetWorldToScreenMtxf /* 07D27C 7F04874C 00000000 */ nop /* 07D280 7F048750 00402025 */ move $a0, $v0 /* 07D284 7F048754 27A503A4 */ addiu $a1, $sp, 0x3a4 /* 07D288 7F048758 0FC16063 */ jal matrix_4x4_multiply_homogeneous /* 07D28C 7F04875C 02403025 */ move $a2, $s2 /* 07D290 7F048760 92220003 */ lbu $v0, 3($s1) /* 07D294 7F048764 24010006 */ li $at, 6 /* 07D298 7F048768 27A50320 */ addiu $a1, $sp, 0x320 /* 07D29C 7F04876C 5441002D */ bnel $v0, $at, .L7F048824 /* 07D2A0 7F048770 2401000D */ li $at, 13 /* 07D2A4 7F048774 8E620004 */ lw $v0, 4($s3) /* 07D2A8 7F048778 8E8F0008 */ lw $t7, 8($s4) /* 07D2AC 7F04877C C44C00C8 */ lwc1 $f12, 0xc8($v0) /* 07D2B0 7F048780 8DE80008 */ lw $t0, 8($t7) /* 07D2B4 7F048784 4616603C */ c.lt.s $f12, $f22 /* 07D2B8 7F048788 8D0B0000 */ lw $t3, ($t0) /* 07D2BC 7F04878C 45000003 */ bc1f .L7F04879C /* 07D2C0 7F048790 8D700004 */ lw $s0, 4($t3) /* 07D2C4 7F048794 10000006 */ b .L7F0487B0 /* 07D2C8 7F048798 46146300 */ add.s $f12, $f12, $f20 .L7F04879C: /* 07D2CC 7F04879C 460CA03E */ c.le.s $f20, $f12 /* 07D2D0 7F0487A0 00000000 */ nop /* 07D2D4 7F0487A4 45000002 */ bc1f .L7F0487B0 /* 07D2D8 7F0487A8 00000000 */ nop /* 07D2DC 7F0487AC 46146301 */ sub.s $f12, $f12, $f20 .L7F0487B0: /* 07D2E0 7F0487B0 0FC1617F */ jal matrix_4x4_set_rotation_around_y /* 07D2E4 7F0487B4 AFA20370 */ sw $v0, 0x370($sp) /* 07D2E8 7F0487B8 8FA20370 */ lw $v0, 0x370($sp) /* 07D2EC 7F0487BC 26460040 */ addiu $a2, $s2, 0x40 /* 07D2F0 7F0487C0 AFA6006C */ sw $a2, 0x6c($sp) /* 07D2F4 7F0487C4 27A40320 */ addiu $a0, $sp, 0x320 /* 07D2F8 7F0487C8 0FC16032 */ jal matrix_4x4_multiply /* 07D2FC 7F0487CC 24450084 */ addiu $a1, $v0, 0x84 /* 07D300 7F0487D0 C6080000 */ lwc1 $f8, ($s0) /* 07D304 7F0487D4 27B20360 */ addiu $s2, $sp, 0x360 /* 07D308 7F0487D8 02402825 */ move $a1, $s2 /* 07D30C 7F0487DC E7A80360 */ swc1 $f8, 0x360($sp) /* 07D310 7F0487E0 C6040004 */ lwc1 $f4, 4($s0) /* 07D314 7F0487E4 27A403A4 */ addiu $a0, $sp, 0x3a4 /* 07D318 7F0487E8 E7A40364 */ swc1 $f4, 0x364($sp) /* 07D31C 7F0487EC C6060008 */ lwc1 $f6, 8($s0) /* 07D320 7F0487F0 0FC1611D */ jal mtx4TransformVecInPlace /* 07D324 7F0487F4 E7A60368 */ swc1 $f6, 0x368($sp) /* 07D328 7F0487F8 02402025 */ move $a0, $s2 /* 07D32C 7F0487FC 0FC16266 */ jal matrix_4x4_set_position /* 07D330 7F048800 8FA5006C */ lw $a1, 0x6c($sp) /* 07D334 7F048804 0FC1E0F1 */ jal camGetWorldToScreenMtxf /* 07D338 7F048808 00000000 */ nop /* 07D33C 7F04880C 00402025 */ move $a0, $v0 /* 07D340 7F048810 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07D344 7F048814 8FA5006C */ lw $a1, 0x6c($sp) /* 07D348 7F048818 1000026B */ b .L7F0491C8 /* 07D34C 7F04881C 8E8F0008 */ lw $t7, 8($s4) /* 07D350 7F048820 2401000D */ li $at, 13 .L7F048824: /* 07D354 7F048824 5441007F */ bnel $v0, $at, .L7F048A24 /* 07D358 7F048828 24010008 */ li $at, 8 /* 07D35C 7F04882C 8E620004 */ lw $v0, 4($s3) /* 07D360 7F048830 3C018005 */ lui $at, %hi(D_80052B6C) /* 07D364 7F048834 C4282B6C */ lwc1 $f8, %lo(D_80052B6C)($at) /* 07D368 7F048838 C44A0090 */ lwc1 $f10, 0x90($v0) /* 07D36C 7F04883C C444009C */ lwc1 $f4, 0x9c($v0) /* 07D370 7F048840 46085300 */ add.s $f12, $f10, $f8 /* 07D374 7F048844 46002187 */ neg.s $f6, $f4 /* 07D378 7F048848 460CA03E */ c.le.s $f20, $f12 /* 07D37C 7F04884C E7A60300 */ swc1 $f6, 0x300($sp) /* 07D380 7F048850 45020003 */ bc1fl .L7F048860 /* 07D384 7F048854 8E890008 */ lw $t1, 8($s4) /* 07D388 7F048858 46146301 */ sub.s $f12, $f12, $f20 /* 07D38C 7F04885C 8E890008 */ lw $t1, 8($s4) .L7F048860: /* 07D390 7F048860 27A403A4 */ addiu $a0, $sp, 0x3a4 /* 07D394 7F048864 27A50308 */ addiu $a1, $sp, 0x308 /* 07D398 7F048868 8D390008 */ lw $t9, 8($t1) /* 07D39C 7F04886C 8F2C0004 */ lw $t4, 4($t9) /* 07D3A0 7F048870 8D900004 */ lw $s0, 4($t4) /* 07D3A4 7F048874 C60A0000 */ lwc1 $f10, ($s0) /* 07D3A8 7F048878 E7AA0308 */ swc1 $f10, 0x308($sp) /* 07D3AC 7F04887C C6080004 */ lwc1 $f8, 4($s0) /* 07D3B0 7F048880 E7A8030C */ swc1 $f8, 0x30c($sp) /* 07D3B4 7F048884 C6040008 */ lwc1 $f4, 8($s0) /* 07D3B8 7F048888 E7AC0304 */ swc1 $f12, 0x304($sp) /* 07D3BC 7F04888C AFA20318 */ sw $v0, 0x318($sp) /* 07D3C0 7F048890 0FC1611D */ jal mtx4TransformVecInPlace /* 07D3C4 7F048894 E7A40310 */ swc1 $f4, 0x310($sp) /* 07D3C8 7F048898 26450040 */ addiu $a1, $s2, 0x40 /* 07D3CC 7F04889C C7AC0304 */ lwc1 $f12, 0x304($sp) /* 07D3D0 7F0488A0 0FC1617F */ jal matrix_4x4_set_rotation_around_y /* 07D3D4 7F0488A4 AFA5006C */ sw $a1, 0x6c($sp) /* 07D3D8 7F0488A8 27A40308 */ addiu $a0, $sp, 0x308 /* 07D3DC 7F0488AC 0FC16266 */ jal matrix_4x4_set_position /* 07D3E0 7F0488B0 8FA5006C */ lw $a1, 0x6c($sp) /* 07D3E4 7F0488B4 8FAA0318 */ lw $t2, 0x318($sp) /* 07D3E8 7F0488B8 8FA5006C */ lw $a1, 0x6c($sp) /* 07D3EC 7F0488BC 8D4E0014 */ lw $t6, 0x14($t2) /* 07D3F0 7F0488C0 0FC1629F */ jal matrix_scalar_multiply /* 07D3F4 7F0488C4 C5CC0014 */ lwc1 $f12, 0x14($t6) /* 07D3F8 7F0488C8 0FC1E0F1 */ jal camGetWorldToScreenMtxf /* 07D3FC 7F0488CC 00000000 */ nop /* 07D400 7F0488D0 00402025 */ move $a0, $v0 /* 07D404 7F0488D4 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07D408 7F0488D8 8FA5006C */ lw $a1, 0x6c($sp) /* 07D40C 7F0488DC 8E8D0008 */ lw $t5, 8($s4) /* 07D410 7F0488E0 26450080 */ addiu $a1, $s2, 0x80 /* 07D414 7F0488E4 C7AC0300 */ lwc1 $f12, 0x300($sp) /* 07D418 7F0488E8 8DB80008 */ lw $t8, 8($t5) /* 07D41C 7F0488EC 8F0F0008 */ lw $t7, 8($t8) /* 07D420 7F0488F0 8DF00004 */ lw $s0, 4($t7) /* 07D424 7F0488F4 0FC161A2 */ jal matrix_4x4_set_rotation_around_z /* 07D428 7F0488F8 AFA50068 */ sw $a1, 0x68($sp) /* 07D42C 7F0488FC 02002025 */ move $a0, $s0 /* 07D430 7F048900 0FC16266 */ jal matrix_4x4_set_position /* 07D434 7F048904 8FA50068 */ lw $a1, 0x68($sp) /* 07D438 7F048908 8FA4006C */ lw $a0, 0x6c($sp) /* 07D43C 7F04890C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07D440 7F048910 8FA50068 */ lw $a1, 0x68($sp) /* 07D444 7F048914 8E880008 */ lw $t0, 8($s4) /* 07D448 7F048918 02802025 */ move $a0, $s4 /* 07D44C 7F04891C 8D030008 */ lw $v1, 8($t0) /* 07D450 7F048920 8C65000C */ lw $a1, 0xc($v1) /* 07D454 7F048924 50A00016 */ beql $a1, $zero, .L7F048980 /* 07D458 7F048928 8C650010 */ lw $a1, 0x10($v1) /* 07D45C 7F04892C 0FC1B198 */ jal modelFindNodeMtx /* 07D460 7F048930 00003025 */ move $a2, $zero /* 07D464 7F048934 AFA202FC */ sw $v0, 0x2fc($sp) /* 07D468 7F048938 8E8B0008 */ lw $t3, 8($s4) /* 07D46C 7F04893C 8FAC0318 */ lw $t4, 0x318($sp) /* 07D470 7F048940 00402825 */ move $a1, $v0 /* 07D474 7F048944 8D690008 */ lw $t1, 8($t3) /* 07D478 7F048948 C58C00B4 */ lwc1 $f12, 0xb4($t4) /* 07D47C 7F04894C 8D39000C */ lw $t9, 0xc($t1) /* 07D480 7F048950 0FC1615C */ jal matrix_4x4_set_rotation_around_x /* 07D484 7F048954 8F300004 */ lw $s0, 4($t9) /* 07D488 7F048958 8FB202FC */ lw $s2, 0x2fc($sp) /* 07D48C 7F04895C 02002025 */ move $a0, $s0 /* 07D490 7F048960 0FC16266 */ jal matrix_4x4_set_position /* 07D494 7F048964 02402825 */ move $a1, $s2 /* 07D498 7F048968 8FA40068 */ lw $a0, 0x68($sp) /* 07D49C 7F04896C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07D4A0 7F048970 02402825 */ move $a1, $s2 /* 07D4A4 7F048974 8E8A0008 */ lw $t2, 8($s4) /* 07D4A8 7F048978 8D430008 */ lw $v1, 8($t2) /* 07D4AC 7F04897C 8C650010 */ lw $a1, 0x10($v1) .L7F048980: /* 07D4B0 7F048980 02802025 */ move $a0, $s4 /* 07D4B4 7F048984 50A00010 */ beql $a1, $zero, .L7F0489C8 /* 07D4B8 7F048988 8C650018 */ lw $a1, 0x18($v1) /* 07D4BC 7F04898C 0FC1B198 */ jal modelFindNodeMtx /* 07D4C0 7F048990 00003025 */ move $a2, $zero /* 07D4C4 7F048994 8E8E0008 */ lw $t6, 8($s4) /* 07D4C8 7F048998 00409025 */ move $s2, $v0 /* 07D4CC 7F04899C 00402825 */ move $a1, $v0 /* 07D4D0 7F0489A0 8DCD0008 */ lw $t5, 8($t6) /* 07D4D4 7F0489A4 8DB80010 */ lw $t8, 0x10($t5) /* 07D4D8 7F0489A8 0FC16259 */ jal matrix_4x4_set_identity_and_position /* 07D4DC 7F0489AC 8F040004 */ lw $a0, 4($t8) /* 07D4E0 7F0489B0 8FA40068 */ lw $a0, 0x68($sp) /* 07D4E4 7F0489B4 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07D4E8 7F0489B8 02402825 */ move $a1, $s2 /* 07D4EC 7F0489BC 8E8F0008 */ lw $t7, 8($s4) /* 07D4F0 7F0489C0 8DE30008 */ lw $v1, 8($t7) /* 07D4F4 7F0489C4 8C650018 */ lw $a1, 0x18($v1) .L7F0489C8: /* 07D4F8 7F0489C8 02802025 */ move $a0, $s4 /* 07D4FC 7F0489CC 50A001FE */ beql $a1, $zero, .L7F0491C8 /* 07D500 7F0489D0 8E8F0008 */ lw $t7, 8($s4) /* 07D504 7F0489D4 0FC1B198 */ jal modelFindNodeMtx /* 07D508 7F0489D8 00003025 */ move $a2, $zero /* 07D50C 7F0489DC 8E880008 */ lw $t0, 8($s4) /* 07D510 7F0489E0 8FB90318 */ lw $t9, 0x318($sp) /* 07D514 7F0489E4 00409025 */ move $s2, $v0 /* 07D518 7F0489E8 8D0B0008 */ lw $t3, 8($t0) /* 07D51C 7F0489EC 00402825 */ move $a1, $v0 /* 07D520 7F0489F0 C72C00B4 */ lwc1 $f12, 0xb4($t9) /* 07D524 7F0489F4 8D690018 */ lw $t1, 0x18($t3) /* 07D528 7F0489F8 0FC1615C */ jal matrix_4x4_set_rotation_around_x /* 07D52C 7F0489FC 8D300004 */ lw $s0, 4($t1) /* 07D530 7F048A00 02002025 */ move $a0, $s0 /* 07D534 7F048A04 0FC16266 */ jal matrix_4x4_set_position /* 07D538 7F048A08 02402825 */ move $a1, $s2 /* 07D53C 7F048A0C 8FA40068 */ lw $a0, 0x68($sp) /* 07D540 7F048A10 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07D544 7F048A14 02402825 */ move $a1, $s2 /* 07D548 7F048A18 100001EB */ b .L7F0491C8 /* 07D54C 7F048A1C 8E8F0008 */ lw $t7, 8($s4) /* 07D550 7F048A20 24010008 */ li $at, 8 .L7F048A24: /* 07D554 7F048A24 54410017 */ bnel $v0, $at, .L7F048A84 /* 07D558 7F048A28 2401000C */ li $at, 12 /* 07D55C 7F048A2C 8E8C0008 */ lw $t4, 8($s4) /* 07D560 7F048A30 24020001 */ li $v0, 1 /* 07D564 7F048A34 26440040 */ addiu $a0, $s2, 0x40 /* 07D568 7F048A38 858A000E */ lh $t2, 0xe($t4) /* 07D56C 7F048A3C 29410002 */ slti $at, $t2, 2 /* 07D570 7F048A40 542001E1 */ bnezl $at, .L7F0491C8 /* 07D574 7F048A44 8E8F0008 */ lw $t7, 8($s4) /* 07D578 7F048A48 AFA202F8 */ sw $v0, 0x2f8($sp) .L7F048A4C: /* 07D57C 7F048A4C 0FC15FF4 */ jal matrix_4x4_set_identity /* 07D580 7F048A50 AFA40074 */ sw $a0, 0x74($sp) /* 07D584 7F048A54 8E8E0008 */ lw $t6, 8($s4) /* 07D588 7F048A58 8FA202F8 */ lw $v0, 0x2f8($sp) /* 07D58C 7F048A5C 8FA40074 */ lw $a0, 0x74($sp) /* 07D590 7F048A60 85CD000E */ lh $t5, 0xe($t6) /* 07D594 7F048A64 24420001 */ addiu $v0, $v0, 1 /* 07D598 7F048A68 24840040 */ addiu $a0, $a0, 0x40 /* 07D59C 7F048A6C 004D082A */ slt $at, $v0, $t5 /* 07D5A0 7F048A70 5420FFF6 */ bnezl $at, .L7F048A4C /* 07D5A4 7F048A74 AFA202F8 */ sw $v0, 0x2f8($sp) /* 07D5A8 7F048A78 100001D3 */ b .L7F0491C8 /* 07D5AC 7F048A7C 8E8F0008 */ lw $t7, 8($s4) /* 07D5B0 7F048A80 2401000C */ li $at, 12 .L7F048A84: /* 07D5B4 7F048A84 5441002C */ bnel $v0, $at, .L7F048B38 /* 07D5B8 7F048A88 24010027 */ li $at, 39 /* 07D5BC 7F048A8C 8E980008 */ lw $t8, 8($s4) /* 07D5C0 7F048A90 26450040 */ addiu $a1, $s2, 0x40 /* 07D5C4 7F048A94 8F0F0008 */ lw $t7, 8($t8) /* 07D5C8 7F048A98 8DE80000 */ lw $t0, ($t7) /* 07D5CC 7F048A9C 8D040004 */ lw $a0, 4($t0) /* 07D5D0 7F048AA0 0FC16259 */ jal matrix_4x4_set_identity_and_position /* 07D5D4 7F048AA4 AFA5006C */ sw $a1, 0x6c($sp) /* 07D5D8 7F048AA8 02402025 */ move $a0, $s2 /* 07D5DC 7F048AAC 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07D5E0 7F048AB0 8FA5006C */ lw $a1, 0x6c($sp) /* 07D5E4 7F048AB4 8E8B0008 */ lw $t3, 8($s4) /* 07D5E8 7F048AB8 26450080 */ addiu $a1, $s2, 0x80 /* 07D5EC 7F048ABC 8D690008 */ lw $t1, 8($t3) /* 07D5F0 7F048AC0 8D390004 */ lw $t9, 4($t1) /* 07D5F4 7F048AC4 8F240004 */ lw $a0, 4($t9) /* 07D5F8 7F048AC8 0FC16259 */ jal matrix_4x4_set_identity_and_position /* 07D5FC 7F048ACC AFA50068 */ sw $a1, 0x68($sp) /* 07D600 7F048AD0 02402025 */ move $a0, $s2 /* 07D604 7F048AD4 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07D608 7F048AD8 8FA50068 */ lw $a1, 0x68($sp) /* 07D60C 7F048ADC 8E8C0008 */ lw $t4, 8($s4) /* 07D610 7F048AE0 264500C0 */ addiu $a1, $s2, 0xc0 /* 07D614 7F048AE4 8D8A0008 */ lw $t2, 8($t4) /* 07D618 7F048AE8 8D4E0008 */ lw $t6, 8($t2) /* 07D61C 7F048AEC 8DC40004 */ lw $a0, 4($t6) /* 07D620 7F048AF0 0FC16259 */ jal matrix_4x4_set_identity_and_position /* 07D624 7F048AF4 AFA50074 */ sw $a1, 0x74($sp) /* 07D628 7F048AF8 02402025 */ move $a0, $s2 /* 07D62C 7F048AFC 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07D630 7F048B00 8FA50074 */ lw $a1, 0x74($sp) /* 07D634 7F048B04 8E8D0008 */ lw $t5, 8($s4) /* 07D638 7F048B08 26500100 */ addiu $s0, $s2, 0x100 /* 07D63C 7F048B0C 02002825 */ move $a1, $s0 /* 07D640 7F048B10 8DB80008 */ lw $t8, 8($t5) /* 07D644 7F048B14 8F0F000C */ lw $t7, 0xc($t8) /* 07D648 7F048B18 0FC16259 */ jal matrix_4x4_set_identity_and_position /* 07D64C 7F048B1C 8DE40004 */ lw $a0, 4($t7) /* 07D650 7F048B20 02402025 */ move $a0, $s2 /* 07D654 7F048B24 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07D658 7F048B28 02002825 */ move $a1, $s0 /* 07D65C 7F048B2C 100001A6 */ b .L7F0491C8 /* 07D660 7F048B30 8E8F0008 */ lw $t7, 8($s4) /* 07D664 7F048B34 24010027 */ li $at, 39 .L7F048B38: /* 07D668 7F048B38 544100B9 */ bnel $v0, $at, .L7F048E20 /* 07D66C 7F048B3C 24010028 */ li $at, 40 /* 07D670 7F048B40 8E880008 */ lw $t0, 8($s4) /* 07D674 7F048B44 8FAF0678 */ lw $t7, 0x678($sp) /* 07D678 7F048B48 4600B006 */ mov.s $f0, $f22 /* 07D67C 7F048B4C 8D030008 */ lw $v1, 8($t0) /* 07D680 7F048B50 8C6B0004 */ lw $t3, 4($v1) /* 07D684 7F048B54 8D690004 */ lw $t1, 4($t3) /* 07D688 7F048B58 AFA90260 */ sw $t1, 0x260($sp) /* 07D68C 7F048B5C 8C790008 */ lw $t9, 8($v1) /* 07D690 7F048B60 8F2C0004 */ lw $t4, 4($t9) /* 07D694 7F048B64 AFAC025C */ sw $t4, 0x25c($sp) /* 07D698 7F048B68 8C6E0010 */ lw $t6, 0x10($v1) /* 07D69C 7F048B6C 8C6A000C */ lw $t2, 0xc($v1) /* 07D6A0 7F048B70 8DCD0004 */ lw $t5, 4($t6) /* 07D6A4 7F048B74 8D500004 */ lw $s0, 4($t2) /* 07D6A8 7F048B78 AFAD0254 */ sw $t5, 0x254($sp) /* 07D6AC 7F048B7C 8C780018 */ lw $t8, 0x18($v1) /* 07D6B0 7F048B80 C6840014 */ lwc1 $f4, 0x14($s4) /* 07D6B4 7F048B84 8F020004 */ lw $v0, 4($t8) /* 07D6B8 7F048B88 C4460010 */ lwc1 $f6, 0x10($v0) /* 07D6BC 7F048B8C C44A000C */ lwc1 $f10, 0xc($v0) /* 07D6C0 7F048B90 460A3201 */ sub.s $f8, $f6, $f10 /* 07D6C4 7F048B94 46044082 */ mul.s $f2, $f8, $f4 /* 07D6C8 7F048B98 11E00026 */ beqz $t7, .L7F048C34 /* 07D6CC 7F048B9C 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) /* 07D6D0 7F048BA0 C42A8378 */ lwc1 $f10, %lo(g_GlobalTimerDelta)($at) /* 07D6D4 7F048BA4 C6260088 */ lwc1 $f6, 0x88($s1) /* 07D6D8 7F048BA8 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 07D6DC 7F048BAC 460A3202 */ mul.s $f8, $f6, $f10 /* 07D6E0 7F048BB0 44815000 */ mtc1 $at, $f10 /* 07D6E4 7F048BB4 46144102 */ mul.s $f4, $f8, $f20 /* 07D6E8 7F048BB8 00000000 */ nop /* 07D6EC 7F048BBC 46141182 */ mul.s $f6, $f2, $f20 /* 07D6F0 7F048BC0 00000000 */ nop /* 07D6F4 7F048BC4 460A3202 */ mul.s $f8, $f6, $f10 /* 07D6F8 7F048BC8 C626008C */ lwc1 $f6, 0x8c($s1) /* 07D6FC 7F048BCC 46082003 */ div.s $f0, $f4, $f8 /* 07D700 7F048BD0 46003280 */ add.s $f10, $f6, $f0 /* 07D704 7F048BD4 E62A008C */ swc1 $f10, 0x8c($s1) /* 07D708 7F048BD8 C62C008C */ lwc1 $f12, 0x8c($s1) /* 07D70C 7F048BDC 460CA03E */ c.le.s $f20, $f12 /* 07D710 7F048BE0 00000000 */ nop /* 07D714 7F048BE4 45000008 */ bc1f .L7F048C08 /* 07D718 7F048BE8 00000000 */ nop /* 07D71C 7F048BEC 46146101 */ sub.s $f4, $f12, $f20 .L7F048BF0: /* 07D720 7F048BF0 E624008C */ swc1 $f4, 0x8c($s1) /* 07D724 7F048BF4 C62C008C */ lwc1 $f12, 0x8c($s1) /* 07D728 7F048BF8 460CA03E */ c.le.s $f20, $f12 /* 07D72C 7F048BFC 00000000 */ nop /* 07D730 7F048C00 4503FFFB */ bc1tl .L7F048BF0 /* 07D734 7F048C04 46146101 */ sub.s $f4, $f12, $f20 .L7F048C08: /* 07D738 7F048C08 4616603C */ c.lt.s $f12, $f22 /* 07D73C 7F048C0C 00000000 */ nop /* 07D740 7F048C10 45020009 */ bc1fl .L7F048C38 /* 07D744 7F048C14 C626008C */ lwc1 $f6, 0x8c($s1) /* 07D748 7F048C18 46146200 */ add.s $f8, $f12, $f20 .L7F048C1C: /* 07D74C 7F048C1C E628008C */ swc1 $f8, 0x8c($s1) /* 07D750 7F048C20 C62C008C */ lwc1 $f12, 0x8c($s1) /* 07D754 7F048C24 4616603C */ c.lt.s $f12, $f22 /* 07D758 7F048C28 00000000 */ nop /* 07D75C 7F048C2C 4503FFFB */ bc1tl .L7F048C1C /* 07D760 7F048C30 46146200 */ add.s $f8, $f12, $f20 .L7F048C34: /* 07D764 7F048C34 C626008C */ lwc1 $f6, 0x8c($s1) .L7F048C38: /* 07D768 7F048C38 46003280 */ add.s $f10, $f6, $f0 /* 07D76C 7F048C3C E62A008C */ swc1 $f10, 0x8c($s1) /* 07D770 7F048C40 C62C008C */ lwc1 $f12, 0x8c($s1) /* 07D774 7F048C44 460CA03E */ c.le.s $f20, $f12 /* 07D778 7F048C48 00000000 */ nop /* 07D77C 7F048C4C 45020009 */ bc1fl .L7F048C74 /* 07D780 7F048C50 4616603C */ c.lt.s $f12, $f22 /* 07D784 7F048C54 46146101 */ sub.s $f4, $f12, $f20 .L7F048C58: /* 07D788 7F048C58 E624008C */ swc1 $f4, 0x8c($s1) /* 07D78C 7F048C5C C62C008C */ lwc1 $f12, 0x8c($s1) /* 07D790 7F048C60 460CA03E */ c.le.s $f20, $f12 /* 07D794 7F048C64 00000000 */ nop /* 07D798 7F048C68 4503FFFB */ bc1tl .L7F048C58 /* 07D79C 7F048C6C 46146101 */ sub.s $f4, $f12, $f20 /* 07D7A0 7F048C70 4616603C */ c.lt.s $f12, $f22 .L7F048C74: /* 07D7A4 7F048C74 00000000 */ nop /* 07D7A8 7F048C78 45000008 */ bc1f .L7F048C9C /* 07D7AC 7F048C7C 00000000 */ nop /* 07D7B0 7F048C80 46146200 */ add.s $f8, $f12, $f20 .L7F048C84: /* 07D7B4 7F048C84 E628008C */ swc1 $f8, 0x8c($s1) /* 07D7B8 7F048C88 C62C008C */ lwc1 $f12, 0x8c($s1) /* 07D7BC 7F048C8C 4616603C */ c.lt.s $f12, $f22 /* 07D7C0 7F048C90 00000000 */ nop /* 07D7C4 7F048C94 4503FFFB */ bc1tl .L7F048C84 /* 07D7C8 7F048C98 46146200 */ add.s $f8, $f12, $f20 .L7F048C9C: /* 07D7CC 7F048C9C 0FC1615C */ jal matrix_4x4_set_rotation_around_x /* 07D7D0 7F048CA0 27A502AC */ addiu $a1, $sp, 0x2ac /* 07D7D4 7F048CA4 C6260088 */ lwc1 $f6, 0x88($s1) /* 07D7D8 7F048CA8 4606B03C */ c.lt.s $f22, $f6 /* 07D7DC 7F048CAC 00000000 */ nop /* 07D7E0 7F048CB0 4502002B */ bc1fl .L7F048D60 /* 07D7E4 7F048CB4 C62C0090 */ lwc1 $f12, 0x90($s1) /* 07D7E8 7F048CB8 8FA80260 */ lw $t0, 0x260($sp) /* 07D7EC 7F048CBC C60A0008 */ lwc1 $f10, 8($s0) /* 07D7F0 7F048CC0 C62C009C */ lwc1 $f12, 0x9c($s1) /* 07D7F4 7F048CC4 C5040008 */ lwc1 $f4, 8($t0) /* 07D7F8 7F048CC8 C6860014 */ lwc1 $f6, 0x14($s4) /* 07D7FC 7F048CCC 4616603C */ c.lt.s $f12, $f22 /* 07D800 7F048CD0 46045201 */ sub.s $f8, $f10, $f4 /* 07D804 7F048CD4 46064082 */ mul.s $f2, $f8, $f6 /* 07D808 7F048CD8 45020003 */ bc1fl .L7F048CE8 /* 07D80C 7F048CDC E7A20250 */ swc1 $f2, 0x250($sp) /* 07D810 7F048CE0 46006307 */ neg.s $f12, $f12 /* 07D814 7F048CE4 E7A20250 */ swc1 $f2, 0x250($sp) .L7F048CE8: /* 07D818 7F048CE8 0FC15FAB */ jal sinf /* 07D81C 7F048CEC E7AC024C */ swc1 $f12, 0x24c($sp) /* 07D820 7F048CF0 C7A20250 */ lwc1 $f2, 0x250($sp) /* 07D824 7F048CF4 C7AC024C */ lwc1 $f12, 0x24c($sp) /* 07D828 7F048CF8 46020282 */ mul.s $f10, $f0, $f2 /* 07D82C 7F048CFC 0FC15FA8 */ jal cosf /* 07D830 7F048D00 E7AA0248 */ swc1 $f10, 0x248($sp) /* 07D834 7F048D04 C7A20250 */ lwc1 $f2, 0x250($sp) /* 07D838 7F048D08 C6280088 */ lwc1 $f8, 0x88($s1) /* 07D83C 7F048D0C C7AC0248 */ lwc1 $f12, 0x248($sp) /* 07D840 7F048D10 46020102 */ mul.s $f4, $f0, $f2 /* 07D844 7F048D14 46081181 */ sub.s $f6, $f2, $f8 /* 07D848 7F048D18 0FC16A8C */ jal atan2f /* 07D84C 7F048D1C 46062381 */ sub.s $f14, $f4, $f6 /* 07D850 7F048D20 C7A2024C */ lwc1 $f2, 0x24c($sp) /* 07D854 7F048D24 E6200090 */ swc1 $f0, 0x90($s1) /* 07D858 7F048D28 4602003C */ c.lt.s $f0, $f2 /* 07D85C 7F048D2C 00000000 */ nop /* 07D860 7F048D30 45020003 */ bc1fl .L7F048D40 /* 07D864 7F048D34 C62A009C */ lwc1 $f10, 0x9c($s1) /* 07D868 7F048D38 E6220090 */ swc1 $f2, 0x90($s1) /* 07D86C 7F048D3C C62A009C */ lwc1 $f10, 0x9c($s1) .L7F048D40: /* 07D870 7F048D40 460AB03C */ c.lt.s $f22, $f10 /* 07D874 7F048D44 00000000 */ nop /* 07D878 7F048D48 45020005 */ bc1fl .L7F048D60 /* 07D87C 7F048D4C C62C0090 */ lwc1 $f12, 0x90($s1) /* 07D880 7F048D50 C6280090 */ lwc1 $f8, 0x90($s1) /* 07D884 7F048D54 4608A101 */ sub.s $f4, $f20, $f8 /* 07D888 7F048D58 E6240090 */ swc1 $f4, 0x90($s1) /* 07D88C 7F048D5C C62C0090 */ lwc1 $f12, 0x90($s1) .L7F048D60: /* 07D890 7F048D60 0FC1617F */ jal matrix_4x4_set_rotation_around_y /* 07D894 7F048D64 27A5026C */ addiu $a1, $sp, 0x26c /* 07D898 7F048D68 264500C0 */ addiu $a1, $s2, 0xc0 /* 07D89C 7F048D6C AFA50074 */ sw $a1, 0x74($sp) /* 07D8A0 7F048D70 0FC16008 */ jal matrix_4x4_copy /* 07D8A4 7F048D74 27A402AC */ addiu $a0, $sp, 0x2ac /* 07D8A8 7F048D78 02002025 */ move $a0, $s0 /* 07D8AC 7F048D7C 0FC16266 */ jal matrix_4x4_set_position /* 07D8B0 7F048D80 8FA50074 */ lw $a1, 0x74($sp) /* 07D8B4 7F048D84 02402025 */ move $a0, $s2 /* 07D8B8 7F048D88 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07D8BC 7F048D8C 8FA50074 */ lw $a1, 0x74($sp) /* 07D8C0 7F048D90 26500100 */ addiu $s0, $s2, 0x100 /* 07D8C4 7F048D94 02002825 */ move $a1, $s0 /* 07D8C8 7F048D98 0FC16008 */ jal matrix_4x4_copy /* 07D8CC 7F048D9C 27A402AC */ addiu $a0, $sp, 0x2ac /* 07D8D0 7F048DA0 8FA40254 */ lw $a0, 0x254($sp) /* 07D8D4 7F048DA4 0FC16266 */ jal matrix_4x4_set_position /* 07D8D8 7F048DA8 02002825 */ move $a1, $s0 /* 07D8DC 7F048DAC 02402025 */ move $a0, $s2 /* 07D8E0 7F048DB0 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07D8E4 7F048DB4 02002825 */ move $a1, $s0 /* 07D8E8 7F048DB8 27A4026C */ addiu $a0, $sp, 0x26c /* 07D8EC 7F048DBC 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07D8F0 7F048DC0 27A502AC */ addiu $a1, $sp, 0x2ac /* 07D8F4 7F048DC4 26450040 */ addiu $a1, $s2, 0x40 /* 07D8F8 7F048DC8 AFA5006C */ sw $a1, 0x6c($sp) /* 07D8FC 7F048DCC 0FC16008 */ jal matrix_4x4_copy /* 07D900 7F048DD0 27A402AC */ addiu $a0, $sp, 0x2ac /* 07D904 7F048DD4 8FA40260 */ lw $a0, 0x260($sp) /* 07D908 7F048DD8 0FC16266 */ jal matrix_4x4_set_position /* 07D90C 7F048DDC 8FA5006C */ lw $a1, 0x6c($sp) /* 07D910 7F048DE0 02402025 */ move $a0, $s2 /* 07D914 7F048DE4 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07D918 7F048DE8 8FA5006C */ lw $a1, 0x6c($sp) /* 07D91C 7F048DEC 26450080 */ addiu $a1, $s2, 0x80 /* 07D920 7F048DF0 AFA50068 */ sw $a1, 0x68($sp) /* 07D924 7F048DF4 0FC16008 */ jal matrix_4x4_copy /* 07D928 7F048DF8 27A402AC */ addiu $a0, $sp, 0x2ac /* 07D92C 7F048DFC 8FA4025C */ lw $a0, 0x25c($sp) /* 07D930 7F048E00 0FC16266 */ jal matrix_4x4_set_position /* 07D934 7F048E04 8FA50068 */ lw $a1, 0x68($sp) /* 07D938 7F048E08 02402025 */ move $a0, $s2 /* 07D93C 7F048E0C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07D940 7F048E10 8FA50068 */ lw $a1, 0x68($sp) /* 07D944 7F048E14 100000EC */ b .L7F0491C8 /* 07D948 7F048E18 8E8F0008 */ lw $t7, 8($s4) /* 07D94C 7F048E1C 24010028 */ li $at, 40 .L7F048E20: /* 07D950 7F048E20 14410086 */ bne $v0, $at, .L7F04903C /* 07D954 7F048E24 00000000 */ nop /* 07D958 7F048E28 8E8B0008 */ lw $t3, 8($s4) /* 07D95C 7F048E2C 3C0A8005 */ lui $t2, %hi(g_ClockTimer) /* 07D960 7F048E30 8D4A8374 */ lw $t2, %lo(g_ClockTimer)($t2) /* 07D964 7F048E34 8D690008 */ lw $t1, 8($t3) /* 07D968 7F048E38 8FAE0678 */ lw $t6, 0x678($sp) /* 07D96C 7F048E3C 27B001B0 */ addiu $s0, $sp, 0x1b0 /* 07D970 7F048E40 8D390008 */ lw $t9, 8($t1) /* 07D974 7F048E44 3C0F8003 */ lui $t7, %hi(D_80030B34) /* 07D978 7F048E48 02402025 */ move $a0, $s2 /* 07D97C 7F048E4C 8F2C0004 */ lw $t4, 4($t9) /* 07D980 7F048E50 26450040 */ addiu $a1, $s2, 0x40 /* 07D984 7F048E54 1940001E */ blez $t2, .L7F048ED0 /* 07D988 7F048E58 AFAC01FC */ sw $t4, 0x1fc($sp) /* 07D98C 7F048E5C 51C0001D */ beql $t6, $zero, .L7F048ED4 /* 07D990 7F048E60 8E2D0014 */ lw $t5, 0x14($s1) /* 07D994 7F048E64 C6260088 */ lwc1 $f6, 0x88($s1) /* 07D998 7F048E68 C62A008C */ lwc1 $f10, 0x8c($s1) /* 07D99C 7F048E6C 460A3200 */ add.s $f8, $f6, $f10 /* 07D9A0 7F048E70 E6280088 */ swc1 $f8, 0x88($s1) /* 07D9A4 7F048E74 C6200088 */ lwc1 $f0, 0x88($s1) /* 07D9A8 7F048E78 4600A03E */ c.le.s $f20, $f0 /* 07D9AC 7F048E7C 00000000 */ nop /* 07D9B0 7F048E80 45020009 */ bc1fl .L7F048EA8 /* 07D9B4 7F048E84 4616003C */ c.lt.s $f0, $f22 /* 07D9B8 7F048E88 46140101 */ sub.s $f4, $f0, $f20 .L7F048E8C: /* 07D9BC 7F048E8C E6240088 */ swc1 $f4, 0x88($s1) /* 07D9C0 7F048E90 C6200088 */ lwc1 $f0, 0x88($s1) /* 07D9C4 7F048E94 4600A03E */ c.le.s $f20, $f0 /* 07D9C8 7F048E98 00000000 */ nop /* 07D9CC 7F048E9C 4503FFFB */ bc1tl .L7F048E8C /* 07D9D0 7F048EA0 46140101 */ sub.s $f4, $f0, $f20 /* 07D9D4 7F048EA4 4616003C */ c.lt.s $f0, $f22 .L7F048EA8: /* 07D9D8 7F048EA8 00000000 */ nop /* 07D9DC 7F048EAC 45020009 */ bc1fl .L7F048ED4 /* 07D9E0 7F048EB0 8E2D0014 */ lw $t5, 0x14($s1) /* 07D9E4 7F048EB4 46140180 */ add.s $f6, $f0, $f20 .L7F048EB8: /* 07D9E8 7F048EB8 E6260088 */ swc1 $f6, 0x88($s1) /* 07D9EC 7F048EBC C6200088 */ lwc1 $f0, 0x88($s1) /* 07D9F0 7F048EC0 4616003C */ c.lt.s $f0, $f22 /* 07D9F4 7F048EC4 00000000 */ nop /* 07D9F8 7F048EC8 4503FFFB */ bc1tl .L7F048EB8 /* 07D9FC 7F048ECC 46140180 */ add.s $f6, $f0, $f20 .L7F048ED0: /* 07DA00 7F048ED0 8E2D0014 */ lw $t5, 0x14($s1) .L7F048ED4: /* 07DA04 7F048ED4 25EF0B34 */ addiu $t7, %lo(D_80030B34) # addiu $t7, $t7, 0xb34 /* 07DA08 7F048ED8 25EB003C */ addiu $t3, $t7, 0x3c /* 07DA0C 7F048EDC 8DB80020 */ lw $t8, 0x20($t5) /* 07DA10 7F048EE0 02004825 */ move $t1, $s0 /* 07DA14 7F048EE4 13000015 */ beqz $t8, .L7F048F3C /* 07DA18 7F048EE8 00000000 */ nop .L7F048EEC: /* 07DA1C 7F048EEC 8DE10000 */ lw $at, ($t7) /* 07DA20 7F048EF0 25EF000C */ addiu $t7, $t7, 0xc /* 07DA24 7F048EF4 2529000C */ addiu $t1, $t1, 0xc /* 07DA28 7F048EF8 AD21FFF4 */ sw $at, -0xc($t1) /* 07DA2C 7F048EFC 8DE1FFF8 */ lw $at, -8($t7) /* 07DA30 7F048F00 AD21FFF8 */ sw $at, -8($t1) /* 07DA34 7F048F04 8DE1FFFC */ lw $at, -4($t7) /* 07DA38 7F048F08 15EBFFF8 */ bne $t7, $t3, .L7F048EEC /* 07DA3C 7F048F0C AD21FFFC */ sw $at, -4($t1) /* 07DA40 7F048F10 8DE10000 */ lw $at, ($t7) /* 07DA44 7F048F14 0FC1E0F1 */ jal camGetWorldToScreenMtxf /* 07DA48 7F048F18 AD210000 */ sw $at, ($t1) /* 07DA4C 7F048F1C AFA201B0 */ sw $v0, 0x1b0($sp) /* 07DA50 7F048F20 AFB201C0 */ sw $s2, 0x1c0($sp) /* 07DA54 7F048F24 8E250014 */ lw $a1, 0x14($s1) /* 07DA58 7F048F28 0FC1BCBE */ jal subcalcmatrices /* 07DA5C 7F048F2C 02002025 */ move $a0, $s0 /* 07DA60 7F048F30 26590040 */ addiu $t9, $s2, 0x40 /* 07DA64 7F048F34 10000003 */ b .L7F048F44 /* 07DA68 7F048F38 AFB9006C */ sw $t9, 0x6c($sp) .L7F048F3C: /* 07DA6C 7F048F3C 0FC16008 */ jal matrix_4x4_copy /* 07DA70 7F048F40 AFA5006C */ sw $a1, 0x6c($sp) .L7F048F44: /* 07DA74 7F048F44 8E2C0008 */ lw $t4, 8($s1) /* 07DA78 7F048F48 27A50200 */ addiu $a1, $sp, 0x200 /* 07DA7C 7F048F4C 000C5080 */ sll $t2, $t4, 2 /* 07DA80 7F048F50 05410006 */ bgez $t2, .L7F048F6C /* 07DA84 7F048F54 00000000 */ nop /* 07DA88 7F048F58 C62C0088 */ lwc1 $f12, 0x88($s1) /* 07DA8C 7F048F5C 0FC161A2 */ jal matrix_4x4_set_rotation_around_z /* 07DA90 7F048F60 27A50200 */ addiu $a1, $sp, 0x200 /* 07DA94 7F048F64 10000004 */ b .L7F048F78 /* 07DA98 7F048F68 26450080 */ addiu $a1, $s2, 0x80 .L7F048F6C: /* 07DA9C 7F048F6C 0FC1617F */ jal matrix_4x4_set_rotation_around_y /* 07DAA0 7F048F70 C62C0088 */ lwc1 $f12, 0x88($s1) /* 07DAA4 7F048F74 26450080 */ addiu $a1, $s2, 0x80 .L7F048F78: /* 07DAA8 7F048F78 AFA50068 */ sw $a1, 0x68($sp) /* 07DAAC 7F048F7C 0FC16008 */ jal matrix_4x4_copy /* 07DAB0 7F048F80 27A40200 */ addiu $a0, $sp, 0x200 /* 07DAB4 7F048F84 8FA401FC */ lw $a0, 0x1fc($sp) /* 07DAB8 7F048F88 0FC16266 */ jal matrix_4x4_set_position /* 07DABC 7F048F8C 8FA50068 */ lw $a1, 0x68($sp) /* 07DAC0 7F048F90 8FA4006C */ lw $a0, 0x6c($sp) /* 07DAC4 7F048F94 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07DAC8 7F048F98 8FA50068 */ lw $a1, 0x68($sp) /* 07DACC 7F048F9C 8E8E0008 */ lw $t6, 8($s4) /* 07DAD0 7F048FA0 02802025 */ move $a0, $s4 /* 07DAD4 7F048FA4 00003025 */ move $a2, $zero /* 07DAD8 7F048FA8 8DC30008 */ lw $v1, 8($t6) /* 07DADC 7F048FAC 8C65000C */ lw $a1, 0xc($v1) /* 07DAE0 7F048FB0 50A00013 */ beql $a1, $zero, .L7F049000 /* 07DAE4 7F048FB4 8C650010 */ lw $a1, 0x10($v1) /* 07DAE8 7F048FB8 0FC1B198 */ jal modelFindNodeMtx /* 07DAEC 7F048FBC 8CB20004 */ lw $s2, 4($a1) /* 07DAF0 7F048FC0 00408025 */ move $s0, $v0 /* 07DAF4 7F048FC4 C62C0088 */ lwc1 $f12, 0x88($s1) /* 07DAF8 7F048FC8 0FC1615C */ jal matrix_4x4_set_rotation_around_x /* 07DAFC 7F048FCC 27A50200 */ addiu $a1, $sp, 0x200 /* 07DB00 7F048FD0 27A40200 */ addiu $a0, $sp, 0x200 /* 07DB04 7F048FD4 0FC16008 */ jal matrix_4x4_copy /* 07DB08 7F048FD8 02002825 */ move $a1, $s0 /* 07DB0C 7F048FDC 02402025 */ move $a0, $s2 /* 07DB10 7F048FE0 0FC16266 */ jal matrix_4x4_set_position /* 07DB14 7F048FE4 02002825 */ move $a1, $s0 /* 07DB18 7F048FE8 8FA4006C */ lw $a0, 0x6c($sp) /* 07DB1C 7F048FEC 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07DB20 7F048FF0 02002825 */ move $a1, $s0 /* 07DB24 7F048FF4 8E8D0008 */ lw $t5, 8($s4) /* 07DB28 7F048FF8 8DA30008 */ lw $v1, 8($t5) /* 07DB2C 7F048FFC 8C650010 */ lw $a1, 0x10($v1) .L7F049000: /* 07DB30 7F049000 02802025 */ move $a0, $s4 /* 07DB34 7F049004 00003025 */ move $a2, $zero /* 07DB38 7F049008 50A0006F */ beql $a1, $zero, .L7F0491C8 /* 07DB3C 7F04900C 8E8F0008 */ lw $t7, 8($s4) /* 07DB40 7F049010 0FC1B198 */ jal modelFindNodeMtx /* 07DB44 7F049014 8CB20004 */ lw $s2, 4($a1) /* 07DB48 7F049018 00408025 */ move $s0, $v0 /* 07DB4C 7F04901C 02402025 */ move $a0, $s2 /* 07DB50 7F049020 0FC16259 */ jal matrix_4x4_set_identity_and_position /* 07DB54 7F049024 00402825 */ move $a1, $v0 /* 07DB58 7F049028 8FA4006C */ lw $a0, 0x6c($sp) /* 07DB5C 7F04902C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07DB60 7F049030 02002825 */ move $a1, $s0 /* 07DB64 7F049034 10000064 */ b .L7F0491C8 /* 07DB68 7F049038 8E8F0008 */ lw $t7, 8($s4) .L7F04903C: /* 07DB6C 7F04903C 16020061 */ bne $s0, $v0, .L7F0491C4 /* 07DB70 7F049040 26450040 */ addiu $a1, $s2, 0x40 /* 07DB74 7F049044 8E980008 */ lw $t8, 8($s4) /* 07DB78 7F049048 8F030008 */ lw $v1, 8($t8) /* 07DB7C 7F04904C 8C6B000C */ lw $t3, 0xc($v1) /* 07DB80 7F049050 8C680004 */ lw $t0, 4($v1) /* 07DB84 7F049054 8D6F0004 */ lw $t7, 4($t3) /* 07DB88 7F049058 8D100004 */ lw $s0, 4($t0) /* 07DB8C 7F04905C AFAF0164 */ sw $t7, 0x164($sp) /* 07DB90 7F049060 8C690010 */ lw $t1, 0x10($v1) /* 07DB94 7F049064 8D390004 */ lw $t9, 4($t1) /* 07DB98 7F049068 AFB90160 */ sw $t9, 0x160($sp) /* 07DB9C 7F04906C 8C6C0008 */ lw $t4, 8($v1) /* 07DBA0 7F049070 8D8A0004 */ lw $t2, 4($t4) /* 07DBA4 7F049074 AFAA015C */ sw $t2, 0x15c($sp) /* 07DBA8 7F049078 8C6E0018 */ lw $t6, 0x18($v1) /* 07DBAC 7F04907C 8DCD0004 */ lw $t5, 4($t6) /* 07DBB0 7F049080 AFAD0158 */ sw $t5, 0x158($sp) /* 07DBB4 7F049084 C62E00C8 */ lwc1 $f14, 0xc8($s1) /* 07DBB8 7F049088 46007387 */ neg.s $f14, $f14 /* 07DBBC 7F04908C 4616703C */ c.lt.s $f14, $f22 /* 07DBC0 7F049090 00000000 */ nop /* 07DBC4 7F049094 45020003 */ bc1fl .L7F0490A4 /* 07DBC8 7F049098 C62C00CC */ lwc1 $f12, 0xcc($s1) /* 07DBCC 7F04909C 46147380 */ add.s $f14, $f14, $f20 /* 07DBD0 7F0490A0 C62C00CC */ lwc1 $f12, 0xcc($s1) .L7F0490A4: /* 07DBD4 7F0490A4 46006307 */ neg.s $f12, $f12 /* 07DBD8 7F0490A8 4616603C */ c.lt.s $f12, $f22 /* 07DBDC 7F0490AC 00000000 */ nop /* 07DBE0 7F0490B0 45020003 */ bc1fl .L7F0490C0 /* 07DBE4 7F0490B4 AFA5006C */ sw $a1, 0x6c($sp) /* 07DBE8 7F0490B8 46146300 */ add.s $f12, $f12, $f20 /* 07DBEC 7F0490BC AFA5006C */ sw $a1, 0x6c($sp) .L7F0490C0: /* 07DBF0 7F0490C0 0FC1617F */ jal matrix_4x4_set_rotation_around_y /* 07DBF4 7F0490C4 E7AE0154 */ swc1 $f14, 0x154($sp) /* 07DBF8 7F0490C8 02002025 */ move $a0, $s0 /* 07DBFC 7F0490CC 0FC16266 */ jal matrix_4x4_set_position /* 07DC00 7F0490D0 8FA5006C */ lw $a1, 0x6c($sp) /* 07DC04 7F0490D4 02402025 */ move $a0, $s2 /* 07DC08 7F0490D8 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07DC0C 7F0490DC 8FA5006C */ lw $a1, 0x6c($sp) /* 07DC10 7F0490E0 264500C0 */ addiu $a1, $s2, 0xc0 /* 07DC14 7F0490E4 C7AC0154 */ lwc1 $f12, 0x154($sp) /* 07DC18 7F0490E8 0FC1615C */ jal matrix_4x4_set_rotation_around_x /* 07DC1C 7F0490EC AFA50074 */ sw $a1, 0x74($sp) /* 07DC20 7F0490F0 8FA40164 */ lw $a0, 0x164($sp) /* 07DC24 7F0490F4 0FC16266 */ jal matrix_4x4_set_position /* 07DC28 7F0490F8 8FA50074 */ lw $a1, 0x74($sp) /* 07DC2C 7F0490FC 8FA4006C */ lw $a0, 0x6c($sp) /* 07DC30 7F049100 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07DC34 7F049104 8FA50074 */ lw $a1, 0x74($sp) /* 07DC38 7F049108 3C018005 */ lui $at, %hi(D_80052B70) /* 07DC3C 7F04910C 26500100 */ addiu $s0, $s2, 0x100 /* 07DC40 7F049110 02002825 */ move $a1, $s0 /* 07DC44 7F049114 0FC1617F */ jal matrix_4x4_set_rotation_around_y /* 07DC48 7F049118 C42C2B70 */ lwc1 $f12, %lo(D_80052B70)($at) /* 07DC4C 7F04911C 8FA40160 */ lw $a0, 0x160($sp) /* 07DC50 7F049120 0FC16266 */ jal matrix_4x4_set_position /* 07DC54 7F049124 02002825 */ move $a1, $s0 /* 07DC58 7F049128 8FA40074 */ lw $a0, 0x74($sp) /* 07DC5C 7F04912C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07DC60 7F049130 02002825 */ move $a1, $s0 /* 07DC64 7F049134 26450080 */ addiu $a1, $s2, 0x80 /* 07DC68 7F049138 AFA50068 */ sw $a1, 0x68($sp) /* 07DC6C 7F04913C 0FC16259 */ jal matrix_4x4_set_identity_and_position /* 07DC70 7F049140 8FA4015C */ lw $a0, 0x15c($sp) /* 07DC74 7F049144 8FA4006C */ lw $a0, 0x6c($sp) /* 07DC78 7F049148 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07DC7C 7F04914C 8FA50068 */ lw $a1, 0x68($sp) /* 07DC80 7F049150 0FC1E111 */ jal currentPlayerGetMatrix10D4 /* 07DC84 7F049154 00000000 */ nop /* 07DC88 7F049158 27B0016C */ addiu $s0, $sp, 0x16c /* 07DC8C 7F04915C 02003025 */ move $a2, $s0 /* 07DC90 7F049160 00402025 */ move $a0, $v0 /* 07DC94 7F049164 0FC16063 */ jal matrix_4x4_multiply_homogeneous /* 07DC98 7F049168 8FA5006C */ lw $a1, 0x6c($sp) /* 07DC9C 7F04916C 8FA40158 */ lw $a0, 0x158($sp) /* 07DCA0 7F049170 02002825 */ move $a1, $s0 /* 07DCA4 7F049174 26260084 */ addiu $a2, $s1, 0x84 /* 07DCA8 7F049178 0FC0FD50 */ jal sub_GAME_7F03F540 /* 07DCAC 7F04917C 26270080 */ addiu $a3, $s1, 0x80 /* 07DCB0 7F049180 8E980008 */ lw $t8, 8($s4) /* 07DCB4 7F049184 8F030008 */ lw $v1, 8($t8) /* 07DCB8 7F049188 8C65001C */ lw $a1, 0x1c($v1) /* 07DCBC 7F04918C 50A00008 */ beql $a1, $zero, .L7F0491B0 /* 07DCC0 7F049190 8C650020 */ lw $a1, 0x20($v1) /* 07DCC4 7F049194 0FC1B1E7 */ jal modelGetNodeRwData /* 07DCC8 7F049198 02802025 */ move $a0, $s4 /* 07DCCC 7F04919C 8E2800C4 */ lw $t0, 0xc4($s1) /* 07DCD0 7F0491A0 A4480000 */ sh $t0, ($v0) /* 07DCD4 7F0491A4 8E8B0008 */ lw $t3, 8($s4) /* 07DCD8 7F0491A8 8D630008 */ lw $v1, 8($t3) /* 07DCDC 7F0491AC 8C650020 */ lw $a1, 0x20($v1) .L7F0491B0: /* 07DCE0 7F0491B0 50A00005 */ beql $a1, $zero, .L7F0491C8 /* 07DCE4 7F0491B4 8E8F0008 */ lw $t7, 8($s4) /* 07DCE8 7F0491B8 0FC1B1E7 */ jal modelGetNodeRwData /* 07DCEC 7F0491BC 02802025 */ move $a0, $s4 /* 07DCF0 7F0491C0 AC400000 */ sw $zero, ($v0) .L7F0491C4: /* 07DCF4 7F0491C4 8E8F0008 */ lw $t7, 8($s4) .L7F0491C8: /* 07DCF8 7F0491C8 02802025 */ move $a0, $s4 /* 07DCFC 7F0491CC 0FC1BBA9 */ jal modelUpdateRelationsQuick /* 07DD00 7F0491D0 8DE50000 */ lw $a1, ($t7) /* 07DD04 7F0491D4 8E89000C */ lw $t1, 0xc($s4) /* 07DD08 7F0491D8 02602025 */ move $a0, $s3 /* 07DD0C 7F0491DC C52A0038 */ lwc1 $f10, 0x38($t1) /* 07DD10 7F0491E0 46005207 */ neg.s $f8, $f10 /* 07DD14 7F0491E4 0FC10F5C */ jal chrobjWeaponTick /* 07DD18 7F0491E8 E6680018 */ swc1 $f8, 0x18($s3) /* 07DD1C 7F0491EC 8E640020 */ lw $a0, 0x20($s3) /* 07DD20 7F0491F0 50800018 */ beql $a0, $zero, .L7F049254 /* 07DD24 7F0491F4 8E230064 */ lw $v1, 0x64($s1) /* 07DD28 7F0491F8 8C820024 */ lw $v0, 0x24($a0) .L7F0491FC: /* 07DD2C 7F0491FC 0FC110B7 */ jal sub_GAME_7F0442DC /* 07DD30 7F049200 AFA20684 */ sw $v0, 0x684($sp) /* 07DD34 7F049204 8FA40684 */ lw $a0, 0x684($sp) /* 07DD38 7F049208 5480FFFC */ bnezl $a0, .L7F0491FC /* 07DD3C 7F04920C 8C820024 */ lw $v0, 0x24($a0) /* 07DD40 7F049210 10000010 */ b .L7F049254 /* 07DD44 7F049214 8E230064 */ lw $v1, 0x64($s1) .L7F049218: /* 07DD48 7F049218 92790001 */ lbu $t9, 1($s3) /* 07DD4C 7F04921C 02602025 */ move $a0, $s3 /* 07DD50 7F049220 332CFFFD */ andi $t4, $t9, 0xfffd /* 07DD54 7F049224 0FC10F5C */ jal chrobjWeaponTick /* 07DD58 7F049228 A26C0001 */ sb $t4, 1($s3) /* 07DD5C 7F04922C 8E640020 */ lw $a0, 0x20($s3) /* 07DD60 7F049230 50800008 */ beql $a0, $zero, .L7F049254 /* 07DD64 7F049234 8E230064 */ lw $v1, 0x64($s1) /* 07DD68 7F049238 8C820024 */ lw $v0, 0x24($a0) .L7F04923C: /* 07DD6C 7F04923C 0FC11093 */ jal sub_GAME_7F04424C /* 07DD70 7F049240 AFA20684 */ sw $v0, 0x684($sp) /* 07DD74 7F049244 8FA40684 */ lw $a0, 0x684($sp) /* 07DD78 7F049248 5480FFFC */ bnezl $a0, .L7F04923C /* 07DD7C 7F04924C 8C820024 */ lw $v0, 0x24($a0) /* 07DD80 7F049250 8E230064 */ lw $v1, 0x64($s1) .L7F049254: /* 07DD84 7F049254 2401FEFF */ li $at, -257 /* 07DD88 7F049258 266D0008 */ addiu $t5, $s3, 8 /* 07DD8C 7F04925C 306A0100 */ andi $t2, $v1, 0x100 /* 07DD90 7F049260 1140001F */ beqz $t2, .L7F0492E0 /* 07DD94 7F049264 00617024 */ and $t6, $v1, $at /* 07DD98 7F049268 AE2E0064 */ sw $t6, 0x64($s1) /* 07DD9C 7F04926C 0C002914 */ jal randomGetNext /* 07DDA0 7F049270 AFAD0070 */ sw $t5, 0x70($sp) /* 07DDA4 7F049274 44822000 */ mtc1 $v0, $f4 /* 07DDA8 7F049278 02202025 */ move $a0, $s1 /* 07DDAC 7F04927C 04410005 */ bgez $v0, .L7F049294 /* 07DDB0 7F049280 468021A0 */ cvt.s.w $f6, $f4 /* 07DDB4 7F049284 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07DDB8 7F049288 44815000 */ mtc1 $at, $f10 /* 07DDBC 7F04928C 00000000 */ nop /* 07DDC0 7F049290 460A3180 */ add.s $f6, $f6, $f10 .L7F049294: /* 07DDC4 7F049294 3C012F80 */ li $at, 0x2F800000 # 0.000000 /* 07DDC8 7F049298 44814000 */ mtc1 $at, $f8 /* 07DDCC 7F04929C 3C014080 */ li $at, 0x40800000 # 4.000000 /* 07DDD0 7F0492A0 44815000 */ mtc1 $at, $f10 /* 07DDD4 7F0492A4 46083102 */ mul.s $f4, $f6, $f8 /* 07DDD8 7F0492A8 3C014000 */ li $at, 0x40000000 # 2.000000 /* 07DDDC 7F0492AC 44814000 */ mtc1 $at, $f8 /* 07DDE0 7F0492B0 8E380064 */ lw $t8, 0x64($s1) /* 07DDE4 7F0492B4 3C010006 */ lui $at, 6 /* 07DDE8 7F0492B8 8FA60070 */ lw $a2, 0x70($sp) /* 07DDEC 7F0492BC 03014024 */ and $t0, $t8, $at /* 07DDF0 7F0492C0 460A2182 */ mul.s $f6, $f4, $f10 /* 07DDF4 7F0492C4 00003825 */ move $a3, $zero /* 07DDF8 7F0492C8 00085C42 */ srl $t3, $t0, 0x11 /* 07DDFC 7F0492CC AFAB0010 */ sw $t3, 0x10($sp) /* 07DE00 7F0492D0 46083100 */ add.s $f4, $f6, $f8 /* 07DE04 7F0492D4 44052000 */ mfc1 $a1, $f4 /* 07DE08 7F0492D8 0FC13842 */ jal maybe_detonate_object /* 07DE0C 7F0492DC 00000000 */ nop .L7F0492E0: /* 07DE10 7F0492E0 8FAF0678 */ lw $t7, 0x678($sp) /* 07DE14 7F0492E4 51E0020D */ beql $t7, $zero, .L7F049B1C /* 07DE18 7F0492E8 8FA90680 */ lw $t1, 0x680($sp) /* 07DE1C 7F0492EC 92220003 */ lbu $v0, 3($s1) /* 07DE20 7F0492F0 24010001 */ li $at, 1 /* 07DE24 7F0492F4 54410006 */ bnel $v0, $at, .L7F049310 /* 07DE28 7F0492F8 2401000D */ li $at, 13 /* 07DE2C 7F0492FC 0FC14E8F */ jal sub_GAME_7F053A3C /* 07DE30 7F049300 8E640004 */ lw $a0, 4($s3) /* 07DE34 7F049304 10000202 */ b .L7F049B10 /* 07DE38 7F049308 00000000 */ nop /* 07DE3C 7F04930C 2401000D */ li $at, 13 .L7F049310: /* 07DE40 7F049310 144101FF */ bne $v0, $at, .L7F049B10 /* 07DE44 7F049314 00000000 */ nop /* 07DE48 7F049318 0FC2FF01 */ jal lvlGetControlsLockedFlag /* 07DE4C 7F04931C 00000000 */ nop /* 07DE50 7F049320 144001FB */ bnez $v0, .L7F049B10 /* 07DE54 7F049324 00000000 */ nop /* 07DE58 7F049328 8E700004 */ lw $s0, 4($s3) /* 07DE5C 7F04932C AFA0013C */ sw $zero, 0x13c($sp) /* 07DE60 7F049330 AFA00138 */ sw $zero, 0x138($sp) /* 07DE64 7F049334 8E0900D0 */ lw $t1, 0xd0($s0) /* 07DE68 7F049338 512001E4 */ beql $t1, $zero, .L7F049ACC /* 07DE6C 7F04933C 8E980008 */ lw $t8, 8($s4) /* 07DE70 7F049340 8E390008 */ lw $t9, 8($s1) /* 07DE74 7F049344 001960C0 */ sll $t4, $t9, 3 /* 07DE78 7F049348 058201E0 */ bltzl $t4, .L7F049ACC /* 07DE7C 7F04934C 8E980008 */ lw $t8, 8($s4) /* 07DE80 7F049350 8E0A00AC */ lw $t2, 0xac($s0) /* 07DE84 7F049354 3C0C8005 */ lui $t4, %hi(g_GlobalTimer) /* 07DE88 7F049358 254E0001 */ addiu $t6, $t2, 1 /* 07DE8C 7F04935C 31CD0001 */ andi $t5, $t6, 1 /* 07DE90 7F049360 AE0E00AC */ sw $t6, 0xac($s0) /* 07DE94 7F049364 2DB80001 */ sltiu $t8, $t5, 1 /* 07DE98 7F049368 AFB8013C */ sw $t8, 0x13c($sp) /* 07DE9C 7F04936C 8E880008 */ lw $t0, 8($s4) /* 07DEA0 7F049370 39A90001 */ xori $t1, $t5, 1 /* 07DEA4 7F049374 2D290001 */ sltiu $t1, $t1, 1 /* 07DEA8 7F049378 8D0B0008 */ lw $t3, 8($t0) /* 07DEAC 7F04937C 8D6F0014 */ lw $t7, 0x14($t3) /* 07DEB0 7F049380 51E00003 */ beql $t7, $zero, .L7F049390 /* 07DEB4 7F049384 8E1900C0 */ lw $t9, 0xc0($s0) /* 07DEB8 7F049388 AFA90138 */ sw $t1, 0x138($sp) /* 07DEBC 7F04938C 8E1900C0 */ lw $t9, 0xc0($s0) .L7F049390: /* 07DEC0 7F049390 8D8C837C */ lw $t4, %lo(g_GlobalTimer)($t4) /* 07DEC4 7F049394 032C082A */ slt $at, $t9, $t4 /* 07DEC8 7F049398 50200032 */ beql $at, $zero, .L7F049464 /* 07DECC 7F04939C 8FAF013C */ lw $t7, 0x13c($sp) /* 07DED0 7F0493A0 8E0400C4 */ lw $a0, 0xc4($s0) /* 07DED4 7F0493A4 50800008 */ beql $a0, $zero, .L7F0493C8 /* 07DED8 7F0493A8 8E0400C8 */ lw $a0, 0xc8($s0) /* 07DEDC 7F0493AC 0C00237C */ jal sndGetPlayingState /* 07DEE0 7F0493B0 00000000 */ nop /* 07DEE4 7F0493B4 50400004 */ beql $v0, $zero, .L7F0493C8 /* 07DEE8 7F0493B8 8E0400C8 */ lw $a0, 0xc8($s0) /* 07DEEC 7F0493BC 0C002408 */ jal sndDeactivate /* 07DEF0 7F0493C0 8E0400C4 */ lw $a0, 0xc4($s0) /* 07DEF4 7F0493C4 8E0400C8 */ lw $a0, 0xc8($s0) .L7F0493C8: /* 07DEF8 7F0493C8 50800008 */ beql $a0, $zero, .L7F0493EC /* 07DEFC 7F0493CC 8E0A00C4 */ lw $t2, 0xc4($s0) /* 07DF00 7F0493D0 0C00237C */ jal sndGetPlayingState /* 07DF04 7F0493D4 00000000 */ nop /* 07DF08 7F0493D8 50400004 */ beql $v0, $zero, .L7F0493EC /* 07DF0C 7F0493DC 8E0A00C4 */ lw $t2, 0xc4($s0) /* 07DF10 7F0493E0 0C002408 */ jal sndDeactivate /* 07DF14 7F0493E4 8E0400C8 */ lw $a0, 0xc8($s0) /* 07DF18 7F0493E8 8E0A00C4 */ lw $t2, 0xc4($s0) .L7F0493EC: /* 07DF1C 7F0493EC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 07DF20 7F0493F0 240500FD */ li $a1, 253 /* 07DF24 7F0493F4 1540000A */ bnez $t2, .L7F049420 /* 07DF28 7F0493F8 260600C4 */ addiu $a2, $s0, 0xc4 /* 07DF2C 7F0493FC 266E0008 */ addiu $t6, $s3, 8 /* 07DF30 7F049400 AFAE0070 */ sw $t6, 0x70($sp) /* 07DF34 7F049404 0C002382 */ jal sndPlaySfx /* 07DF38 7F049408 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07DF3C 7F04940C 8E0400C4 */ lw $a0, 0xc4($s0) /* 07DF40 7F049410 0FC14E84 */ jal chrobjSndCreatePostEventDefault /* 07DF44 7F049414 8FA50070 */ lw $a1, 0x70($sp) /* 07DF48 7F049418 1000000D */ b .L7F049450 /* 07DF4C 7F04941C 00000000 */ nop .L7F049420: /* 07DF50 7F049420 8E0D00C8 */ lw $t5, 0xc8($s0) /* 07DF54 7F049424 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 07DF58 7F049428 240500FD */ li $a1, 253 /* 07DF5C 7F04942C 15A00008 */ bnez $t5, .L7F049450 /* 07DF60 7F049430 260600C8 */ addiu $a2, $s0, 0xc8 /* 07DF64 7F049434 26780008 */ addiu $t8, $s3, 8 /* 07DF68 7F049438 AFB80070 */ sw $t8, 0x70($sp) /* 07DF6C 7F04943C 0C002382 */ jal sndPlaySfx /* 07DF70 7F049440 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07DF74 7F049444 8E0400C8 */ lw $a0, 0xc8($s0) /* 07DF78 7F049448 0FC14E84 */ jal chrobjSndCreatePostEventDefault /* 07DF7C 7F04944C 8FA50070 */ lw $a1, 0x70($sp) .L7F049450: /* 07DF80 7F049450 3C088005 */ lui $t0, %hi(g_GlobalTimer) /* 07DF84 7F049454 8D08837C */ lw $t0, %lo(g_GlobalTimer)($t0) /* 07DF88 7F049458 250B0002 */ addiu $t3, $t0, 2 /* 07DF8C 7F04945C AE0B00C0 */ sw $t3, 0xc0($s0) /* 07DF90 7F049460 8FAF013C */ lw $t7, 0x13c($sp) .L7F049464: /* 07DF94 7F049464 8FA90138 */ lw $t1, 0x138($sp) /* 07DF98 7F049468 24190001 */ li $t9, 1 /* 07DF9C 7F04946C 55E00004 */ bnezl $t7, .L7F049480 /* 07DFA0 7F049470 AFB9011C */ sw $t9, 0x11c($sp) /* 07DFA4 7F049474 51200195 */ beql $t1, $zero, .L7F049ACC /* 07DFA8 7F049478 8E980008 */ lw $t8, 8($s4) /* 07DFAC 7F04947C AFB9011C */ sw $t9, 0x11c($sp) .L7F049480: /* 07DFB0 7F049480 AFA0010C */ sw $zero, 0x10c($sp) /* 07DFB4 7F049484 8E6C0014 */ lw $t4, 0x14($s3) /* 07DFB8 7F049488 AFAC0108 */ sw $t4, 0x108($sp) /* 07DFBC 7F04948C 8E0A00AC */ lw $t2, 0xac($s0) /* 07DFC0 7F049490 314E0003 */ andi $t6, $t2, 3 /* 07DFC4 7F049494 2DCD0001 */ sltiu $t5, $t6, 1 /* 07DFC8 7F049498 0FC225E6 */ jal get_curplayer_positiondata /* 07DFCC 7F04949C AFAD0104 */ sw $t5, 0x104($sp) /* 07DFD0 7F0494A0 AFA20100 */ sw $v0, 0x100($sp) /* 07DFD4 7F0494A4 8E980008 */ lw $t8, 8($s4) /* 07DFD8 7F0494A8 24040005 */ li $a0, 5 /* 07DFDC 7F0494AC 8F030008 */ lw $v1, 8($t8) /* 07DFE0 7F0494B0 8C68001C */ lw $t0, 0x1c($v1) /* 07DFE4 7F0494B4 51000007 */ beql $t0, $zero, .L7F0494D4 /* 07DFE8 7F0494B8 92690001 */ lbu $t1, 1($s3) /* 07DFEC 7F0494BC 8E0B00AC */ lw $t3, 0xac($s0) /* 07DFF0 7F0494C0 316F0007 */ andi $t7, $t3, 7 /* 07DFF4 7F0494C4 55E00003 */ bnezl $t7, .L7F0494D4 /* 07DFF8 7F0494C8 92690001 */ lbu $t1, 1($s3) /* 07DFFC 7F0494CC 24040007 */ li $a0, 7 /* 07E000 7F0494D0 92690001 */ lbu $t1, 1($s3) .L7F0494D4: /* 07E004 7F0494D4 31390002 */ andi $t9, $t1, 2 /* 07E008 7F0494D8 1320002D */ beqz $t9, .L7F049590 /* 07E00C 7F0494DC 00048880 */ sll $s1, $a0, 2 /* 07E010 7F0494E0 00716021 */ addu $t4, $v1, $s1 /* 07E014 7F0494E4 8D850000 */ lw $a1, ($t4) /* 07E018 7F0494E8 02802025 */ move $a0, $s4 /* 07E01C 7F0494EC 50A00029 */ beql $a1, $zero, .L7F049594 /* 07E020 7F0494F0 C6640008 */ lwc1 $f4, 8($s3) /* 07E024 7F0494F4 0FC1B198 */ jal modelFindNodeMtx /* 07E028 7F0494F8 00003025 */ move $a2, $zero /* 07E02C 7F0494FC 8E8A0008 */ lw $t2, 8($s4) /* 07E030 7F049500 00409025 */ move $s2, $v0 /* 07E034 7F049504 8D4E0008 */ lw $t6, 8($t2) /* 07E038 7F049508 01D16821 */ addu $t5, $t6, $s1 /* 07E03C 7F04950C 8DB80000 */ lw $t8, ($t5) /* 07E040 7F049510 8F030004 */ lw $v1, 4($t8) /* 07E044 7F049514 C46A0000 */ lwc1 $f10, ($v1) /* 07E048 7F049518 E7AA012C */ swc1 $f10, 0x12c($sp) /* 07E04C 7F04951C C4660004 */ lwc1 $f6, 4($v1) /* 07E050 7F049520 E7A60130 */ swc1 $f6, 0x130($sp) /* 07E054 7F049524 C4680008 */ lwc1 $f8, 8($v1) /* 07E058 7F049528 0FC1E111 */ jal currentPlayerGetMatrix10D4 /* 07E05C 7F04952C E7A80134 */ swc1 $f8, 0x134($sp) /* 07E060 7F049530 27B100B8 */ addiu $s1, $sp, 0xb8 /* 07E064 7F049534 02203025 */ move $a2, $s1 /* 07E068 7F049538 00402025 */ move $a0, $v0 /* 07E06C 7F04953C 0FC16063 */ jal matrix_4x4_multiply_homogeneous /* 07E070 7F049540 02402825 */ move $a1, $s2 /* 07E074 7F049544 02202025 */ move $a0, $s1 /* 07E078 7F049548 0FC1611D */ jal mtx4TransformVecInPlace /* 07E07C 7F04954C 27A5012C */ addiu $a1, $sp, 0x12c /* 07E080 7F049550 C7A40134 */ lwc1 $f4, 0x134($sp) /* 07E084 7F049554 8E650008 */ lw $a1, 8($s3) /* 07E088 7F049558 8E660010 */ lw $a2, 0x10($s3) /* 07E08C 7F04955C 27A40108 */ addiu $a0, $sp, 0x108 /* 07E090 7F049560 8FA7012C */ lw $a3, 0x12c($sp) /* 07E094 7F049564 0FC2C2F9 */ jal walkTilesBetweenPoints_NoCallback /* 07E098 7F049568 E7A40010 */ swc1 $f4, 0x10($sp) /* 07E09C 7F04956C 1440000E */ bnez $v0, .L7F0495A8 /* 07E0A0 7F049570 00000000 */ nop /* 07E0A4 7F049574 C66A0008 */ lwc1 $f10, 8($s3) /* 07E0A8 7F049578 E7AA012C */ swc1 $f10, 0x12c($sp) /* 07E0AC 7F04957C C666000C */ lwc1 $f6, 0xc($s3) /* 07E0B0 7F049580 E7A60130 */ swc1 $f6, 0x130($sp) /* 07E0B4 7F049584 C6680010 */ lwc1 $f8, 0x10($s3) /* 07E0B8 7F049588 10000007 */ b .L7F0495A8 /* 07E0BC 7F04958C E7A80134 */ swc1 $f8, 0x134($sp) .L7F049590: /* 07E0C0 7F049590 C6640008 */ lwc1 $f4, 8($s3) .L7F049594: /* 07E0C4 7F049594 E7A4012C */ swc1 $f4, 0x12c($sp) /* 07E0C8 7F049598 C66A000C */ lwc1 $f10, 0xc($s3) /* 07E0CC 7F04959C E7AA0130 */ swc1 $f10, 0x130($sp) /* 07E0D0 7F0495A0 C6660010 */ lwc1 $f6, 0x10($s3) /* 07E0D4 7F0495A4 E7A60134 */ swc1 $f6, 0x134($sp) .L7F0495A8: /* 07E0D8 7F0495A8 0FC15FA8 */ jal cosf /* 07E0DC 7F0495AC C60C009C */ lwc1 $f12, 0x9c($s0) /* 07E0E0 7F0495B0 C60C0090 */ lwc1 $f12, 0x90($s0) /* 07E0E4 7F0495B4 0FC15FAB */ jal sinf /* 07E0E8 7F0495B8 E7A0007C */ swc1 $f0, 0x7c($sp) /* 07E0EC 7F0495BC C7A2007C */ lwc1 $f2, 0x7c($sp) /* 07E0F0 7F0495C0 46020202 */ mul.s $f8, $f0, $f2 /* 07E0F4 7F0495C4 E7A80120 */ swc1 $f8, 0x120($sp) /* 07E0F8 7F0495C8 0FC15FAB */ jal sinf /* 07E0FC 7F0495CC C60C009C */ lwc1 $f12, 0x9c($s0) /* 07E100 7F0495D0 E7A00124 */ swc1 $f0, 0x124($sp) /* 07E104 7F0495D4 0FC15FA8 */ jal cosf /* 07E108 7F0495D8 C60C009C */ lwc1 $f12, 0x9c($s0) /* 07E10C 7F0495DC C60C0090 */ lwc1 $f12, 0x90($s0) /* 07E110 7F0495E0 0FC15FA8 */ jal cosf /* 07E114 7F0495E4 E7A0007C */ swc1 $f0, 0x7c($sp) /* 07E118 7F0495E8 C7A2007C */ lwc1 $f2, 0x7c($sp) /* 07E11C 7F0495EC 3C014780 */ li $at, 0x47800000 # 65536.000000 /* 07E120 7F0495F0 44816000 */ mtc1 $at, $f12 /* 07E124 7F0495F4 46020382 */ mul.s $f14, $f0, $f2 /* 07E128 7F0495F8 C7A40120 */ lwc1 $f4, 0x120($sp) /* 07E12C 7F0495FC C7A6012C */ lwc1 $f6, 0x12c($sp) /* 07E130 7F049600 460C2282 */ mul.s $f10, $f4, $f12 /* 07E134 7F049604 C7A40124 */ lwc1 $f4, 0x124($sp) /* 07E138 7F049608 E7AE0128 */ swc1 $f14, 0x128($sp) /* 07E13C 7F04960C 46065200 */ add.s $f8, $f10, $f6 /* 07E140 7F049610 460C2282 */ mul.s $f10, $f4, $f12 /* 07E144 7F049614 C7A60130 */ lwc1 $f6, 0x130($sp) /* 07E148 7F049618 460C7102 */ mul.s $f4, $f14, $f12 /* 07E14C 7F04961C E7A80110 */ swc1 $f8, 0x110($sp) /* 07E150 7F049620 46065200 */ add.s $f8, $f10, $f6 /* 07E154 7F049624 C7AA0134 */ lwc1 $f10, 0x134($sp) /* 07E158 7F049628 460A2180 */ add.s $f6, $f4, $f10 /* 07E15C 7F04962C E7A80114 */ swc1 $f8, 0x114($sp) /* 07E160 7F049630 0FC2C731 */ jal sub_GAME_7F0B1CC4 /* 07E164 7F049634 E7A60118 */ swc1 $f6, 0x118($sp) /* 07E168 7F049638 3C0142C8 */ li $at, 0x42C80000 # 100.000000 /* 07E16C 7F04963C 44810000 */ mtc1 $at, $f0 /* 07E170 7F049640 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07E174 7F049644 44812000 */ mtc1 $at, $f4 /* 07E178 7F049648 C7A80118 */ lwc1 $f8, 0x118($sp) /* 07E17C 7F04964C 24080002 */ li $t0, 2 /* 07E180 7F049650 AFA80014 */ sw $t0, 0x14($sp) /* 07E184 7F049654 27A40108 */ addiu $a0, $sp, 0x108 /* 07E188 7F049658 8FA5012C */ lw $a1, 0x12c($sp) /* 07E18C 7F04965C 8FA60134 */ lw $a2, 0x134($sp) /* 07E190 7F049660 8FA70110 */ lw $a3, 0x110($sp) /* 07E194 7F049664 E7B60020 */ swc1 $f22, 0x20($sp) /* 07E198 7F049668 E7A00018 */ swc1 $f0, 0x18($sp) /* 07E19C 7F04966C E7A0001C */ swc1 $f0, 0x1c($sp) /* 07E1A0 7F049670 E7A80010 */ swc1 $f8, 0x10($sp) /* 07E1A4 7F049674 0FC2C389 */ jal stanTestLineUnobstructed /* 07E1A8 7F049678 E7A40024 */ swc1 $f4, 0x24($sp) /* 07E1AC 7F04967C 14400017 */ bnez $v0, .L7F0496DC /* 07E1B0 7F049680 27A60110 */ addiu $a2, $sp, 0x110 /* 07E1B4 7F049684 27A4012C */ addiu $a0, $sp, 0x12c /* 07E1B8 7F049688 0FC09893 */ jal chrlvStanLineDirIntersection /* 07E1BC 7F04968C 27A50120 */ addiu $a1, $sp, 0x120 /* 07E1C0 7F049690 3C0141D0 */ li $at, 0x41D00000 # 26.000000 /* 07E1C4 7F049694 44818000 */ mtc1 $at, $f16 /* 07E1C8 7F049698 C7A60120 */ lwc1 $f6, 0x120($sp) /* 07E1CC 7F04969C C7AA0110 */ lwc1 $f10, 0x110($sp) /* 07E1D0 7F0496A0 C7AE0128 */ lwc1 $f14, 0x128($sp) /* 07E1D4 7F0496A4 46068202 */ mul.s $f8, $f16, $f6 /* 07E1D8 7F0496A8 C7A60114 */ lwc1 $f6, 0x114($sp) /* 07E1DC 7F0496AC 8FAB0108 */ lw $t3, 0x108($sp) /* 07E1E0 7F0496B0 AFAB010C */ sw $t3, 0x10c($sp) /* 07E1E4 7F0496B4 46085101 */ sub.s $f4, $f10, $f8 /* 07E1E8 7F0496B8 C7AA0124 */ lwc1 $f10, 0x124($sp) /* 07E1EC 7F0496BC 460A8202 */ mul.s $f8, $f16, $f10 /* 07E1F0 7F0496C0 E7A40110 */ swc1 $f4, 0x110($sp) /* 07E1F4 7F0496C4 C7AA0118 */ lwc1 $f10, 0x118($sp) /* 07E1F8 7F0496C8 46083101 */ sub.s $f4, $f6, $f8 /* 07E1FC 7F0496CC 460E8182 */ mul.s $f6, $f16, $f14 /* 07E200 7F0496D0 E7A40114 */ swc1 $f4, 0x114($sp) /* 07E204 7F0496D4 46065201 */ sub.s $f8, $f10, $f6 /* 07E208 7F0496D8 E7A80118 */ swc1 $f8, 0x118($sp) .L7F0496DC: /* 07E20C 7F0496DC 3C0F8005 */ lui $t7, %hi(g_GlobalTimer) /* 07E210 7F0496E0 8DEF837C */ lw $t7, %lo(g_GlobalTimer)($t7) /* 07E214 7F0496E4 8E0900BC */ lw $t1, 0xbc($s0) /* 07E218 7F0496E8 27B10110 */ addiu $s1, $sp, 0x110 /* 07E21C 7F0496EC 8FA50100 */ lw $a1, 0x100($sp) /* 07E220 7F0496F0 15E90052 */ bne $t7, $t1, .L7F04983C /* 07E224 7F0496F4 C7AA012C */ lwc1 $f10, 0x12c($sp) /* 07E228 7F0496F8 C4A40008 */ lwc1 $f4, 8($a1) /* 07E22C 7F0496FC C4A6000C */ lwc1 $f6, 0xc($a1) /* 07E230 7F049700 C7A80130 */ lwc1 $f8, 0x130($sp) /* 07E234 7F049704 460A2001 */ sub.s $f0, $f4, $f10 /* 07E238 7F049708 C4A40010 */ lwc1 $f4, 0x10($a1) /* 07E23C 7F04970C E7AA0058 */ swc1 $f10, 0x58($sp) /* 07E240 7F049710 46083081 */ sub.s $f2, $f6, $f8 /* 07E244 7F049714 C7A60134 */ lwc1 $f6, 0x134($sp) /* 07E248 7F049718 46062301 */ sub.s $f12, $f4, $f6 /* 07E24C 7F04971C 46000102 */ mul.s $f4, $f0, $f0 /* 07E250 7F049720 00000000 */ nop /* 07E254 7F049724 46021282 */ mul.s $f10, $f2, $f2 /* 07E258 7F049728 460A2100 */ add.s $f4, $f4, $f10 /* 07E25C 7F04972C 460C6282 */ mul.s $f10, $f12, $f12 /* 07E260 7F049730 460A2500 */ add.s $f20, $f4, $f10 /* 07E264 7F049734 C7AA0058 */ lwc1 $f10, 0x58($sp) /* 07E268 7F049738 C7A40110 */ lwc1 $f4, 0x110($sp) /* 07E26C 7F04973C 460A2001 */ sub.s $f0, $f4, $f10 /* 07E270 7F049740 C7A40114 */ lwc1 $f4, 0x114($sp) /* 07E274 7F049744 C7AA0118 */ lwc1 $f10, 0x118($sp) /* 07E278 7F049748 46082081 */ sub.s $f2, $f4, $f8 /* 07E27C 7F04974C 46000102 */ mul.s $f4, $f0, $f0 /* 07E280 7F049750 46065301 */ sub.s $f12, $f10, $f6 /* 07E284 7F049754 46021202 */ mul.s $f8, $f2, $f2 /* 07E288 7F049758 46082280 */ add.s $f10, $f4, $f8 /* 07E28C 7F04975C 460C6182 */ mul.s $f6, $f12, $f12 /* 07E290 7F049760 46065100 */ add.s $f4, $f10, $f6 /* 07E294 7F049764 4604A03E */ c.le.s $f20, $f4 /* 07E298 7F049768 00000000 */ nop /* 07E29C 7F04976C 45000033 */ bc1f .L7F04983C /* 07E2A0 7F049770 00000000 */ nop /* 07E2A4 7F049774 0FC227A9 */ jal bondviewGetIfCurrentPlayerDamageShowTime /* 07E2A8 7F049778 00000000 */ nop /* 07E2AC 7F04977C 54400030 */ bnezl $v0, .L7F049840 /* 07E2B0 7F049780 8FB9011C */ lw $t9, 0x11c($sp) /* 07E2B4 7F049784 0C007DF8 */ jal sqrtf /* 07E2B8 7F049788 4600A306 */ mov.s $f12, $f20 /* 07E2BC 7F04978C 3C014348 */ li $at, 0x43480000 # 200.000000 /* 07E2C0 7F049790 44816000 */ mtc1 $at, $f12 /* 07E2C4 7F049794 3C018005 */ lui $at, %hi(D_80052B74) /* 07E2C8 7F049798 C4282B74 */ lwc1 $f8, %lo(D_80052B74)($at) /* 07E2CC 7F04979C 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) /* 07E2D0 7F0497A0 C42A8378 */ lwc1 $f10, %lo(g_GlobalTimerDelta)($at) /* 07E2D4 7F0497A4 3C018003 */ lui $at, %hi(g_AutogunPendingDamageTick) /* 07E2D8 7F0497A8 4600603C */ c.lt.s $f12, $f0 /* 07E2DC 7F0497AC 460A4182 */ mul.s $f6, $f8, $f10 /* 07E2E0 7F0497B0 C4240B1C */ lwc1 $f4, %lo(g_AutogunPendingDamageTick)($at) /* 07E2E4 7F0497B4 46043082 */ mul.s $f2, $f6, $f4 /* 07E2E8 7F0497B8 45020005 */ bc1fl .L7F0497D0 /* 07E2EC 7F0497BC C60A00D4 */ lwc1 $f10, 0xd4($s0) /* 07E2F0 7F0497C0 46006203 */ div.s $f8, $f12, $f0 /* 07E2F4 7F0497C4 46081082 */ mul.s $f2, $f2, $f8 /* 07E2F8 7F0497C8 00000000 */ nop /* 07E2FC 7F0497CC C60A00D4 */ lwc1 $f10, 0xd4($s0) .L7F0497D0: /* 07E300 7F0497D0 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07E304 7F0497D4 44814000 */ mtc1 $at, $f8 /* 07E308 7F0497D8 46025180 */ add.s $f6, $f10, $f2 /* 07E30C 7F0497DC E60600D4 */ swc1 $f6, 0xd4($s0) /* 07E310 7F0497E0 C60400D4 */ lwc1 $f4, 0xd4($s0) /* 07E314 7F0497E4 4604403E */ c.le.s $f8, $f4 /* 07E318 7F0497E8 00000000 */ nop /* 07E31C 7F0497EC 45020014 */ bc1fl .L7F049840 /* 07E320 7F0497F0 8FB9011C */ lw $t9, 0x11c($sp) /* 07E324 7F0497F4 0FC177E1 */ jal bondwalkItemGetDestructionAmount /* 07E328 7F0497F8 2404000E */ li $a0, 14 /* 07E32C 7F0497FC 3C013E00 */ li $at, 0x3E000000 # 0.125000 /* 07E330 7F049800 44815000 */ mtc1 $at, $f10 /* 07E334 7F049804 3C018003 */ lui $at, %hi(g_AutogunDamageScalar) /* 07E338 7F049808 C4240B20 */ lwc1 $f4, %lo(g_AutogunDamageScalar)($at) /* 07E33C 7F04980C 460A0182 */ mul.s $f6, $f0, $f10 /* 07E340 7F049810 C60E0090 */ lwc1 $f14, 0x90($s0) /* 07E344 7F049814 2406FFFF */ li $a2, -1 /* 07E348 7F049818 24070001 */ li $a3, 1 /* 07E34C 7F04981C 46043302 */ mul.s $f12, $f6, $f4 /* 07E350 7F049820 0FC22793 */ jal bondviewCallRecordDamageKills /* 07E354 7F049824 00000000 */ nop /* 07E358 7F049828 0FC227A9 */ jal bondviewGetIfCurrentPlayerDamageShowTime /* 07E35C 7F04982C E61600D4 */ swc1 $f22, 0xd4($s0) /* 07E360 7F049830 50400003 */ beql $v0, $zero, .L7F049840 /* 07E364 7F049834 8FB9011C */ lw $t9, 0x11c($sp) /* 07E368 7F049838 AFA0011C */ sw $zero, 0x11c($sp) .L7F04983C: /* 07E36C 7F04983C 8FB9011C */ lw $t9, 0x11c($sp) .L7F049840: /* 07E370 7F049840 3C0141D0 */ li $at, 0x41D00000 # 26.000000 /* 07E374 7F049844 44818000 */ mtc1 $at, $f16 /* 07E378 7F049848 1320000F */ beqz $t9, .L7F049888 /* 07E37C 7F04984C 8FA50100 */ lw $a1, 0x100($sp) /* 07E380 7F049850 8FAC010C */ lw $t4, 0x10c($sp) /* 07E384 7F049854 02202025 */ move $a0, $s1 /* 07E388 7F049858 24050001 */ li $a1, 1 /* 07E38C 7F04985C 51800005 */ beql $t4, $zero, .L7F049874 /* 07E390 7F049860 2404000E */ li $a0, 14 /* 07E394 7F049864 44068000 */ mfc1 $a2, $f16 /* 07E398 7F049868 0FC28F87 */ jal sub_GAME_7F0A3E1C /* 07E39C 7F04986C 91870003 */ lbu $a3, 3($t4) /* 07E3A0 7F049870 2404000E */ li $a0, 14 .L7F049874: /* 07E3A4 7F049874 02202825 */ move $a1, $s1 /* 07E3A8 7F049878 0FC191DD */ jal recall_joy2_hits_edit_flag /* 07E3AC 7F04987C 2406FFFF */ li $a2, -1 /* 07E3B0 7F049880 1000000B */ b .L7F0498B0 /* 07E3B4 7F049884 8FAA0104 */ lw $t2, 0x104($sp) .L7F049888: /* 07E3B8 7F049888 C4A80008 */ lwc1 $f8, 8($a1) /* 07E3BC 7F04988C 2404000E */ li $a0, 14 /* 07E3C0 7F049890 2406FFFF */ li $a2, -1 /* 07E3C4 7F049894 E7A80110 */ swc1 $f8, 0x110($sp) /* 07E3C8 7F049898 C4AA000C */ lwc1 $f10, 0xc($a1) /* 07E3CC 7F04989C E7AA0114 */ swc1 $f10, 0x114($sp) /* 07E3D0 7F0498A0 C4A60010 */ lwc1 $f6, 0x10($a1) /* 07E3D4 7F0498A4 0FC19107 */ jal recall_joy2_hits_edit_detail_edit_flag /* 07E3D8 7F0498A8 E7A60118 */ swc1 $f6, 0x118($sp) /* 07E3DC 7F0498AC 8FAA0104 */ lw $t2, 0x104($sp) .L7F0498B0: /* 07E3E0 7F0498B0 C7A4012C */ lwc1 $f4, 0x12c($sp) /* 07E3E4 7F0498B4 51400085 */ beql $t2, $zero, .L7F049ACC /* 07E3E8 7F0498B8 8E980008 */ lw $t8, 8($s4) /* 07E3EC 7F0498BC 8E0300CC */ lw $v1, 0xcc($s0) /* 07E3F0 7F0498C0 E4640004 */ swc1 $f4, 4($v1) /* 07E3F4 7F0498C4 C7A80130 */ lwc1 $f8, 0x130($sp) /* 07E3F8 7F0498C8 C4640004 */ lwc1 $f4, 4($v1) /* 07E3FC 7F0498CC E4680008 */ swc1 $f8, 8($v1) /* 07E400 7F0498D0 C7AA0134 */ lwc1 $f10, 0x134($sp) /* 07E404 7F0498D4 E46A000C */ swc1 $f10, 0xc($v1) /* 07E408 7F0498D8 C7A60110 */ lwc1 $f6, 0x110($sp) /* 07E40C 7F0498DC 46043201 */ sub.s $f8, $f6, $f4 /* 07E410 7F0498E0 C4660008 */ lwc1 $f6, 8($v1) /* 07E414 7F0498E4 E4680010 */ swc1 $f8, 0x10($v1) /* 07E418 7F0498E8 C7AA0114 */ lwc1 $f10, 0x114($sp) /* 07E41C 7F0498EC C4620010 */ lwc1 $f2, 0x10($v1) /* 07E420 7F0498F0 46065101 */ sub.s $f4, $f10, $f6 /* 07E424 7F0498F4 C46A000C */ lwc1 $f10, 0xc($v1) /* 07E428 7F0498F8 E4640014 */ swc1 $f4, 0x14($v1) /* 07E42C 7F0498FC C7A80118 */ lwc1 $f8, 0x118($sp) /* 07E430 7F049900 46021102 */ mul.s $f4, $f2, $f2 /* 07E434 7F049904 C46E0014 */ lwc1 $f14, 0x14($v1) /* 07E438 7F049908 460A4181 */ sub.s $f6, $f8, $f10 /* 07E43C 7F04990C 460E7202 */ mul.s $f8, $f14, $f14 /* 07E440 7F049910 E4660018 */ swc1 $f6, 0x18($v1) /* 07E444 7F049914 C4600018 */ lwc1 $f0, 0x18($v1) /* 07E448 7F049918 AFA30090 */ sw $v1, 0x90($sp) /* 07E44C 7F04991C 46000182 */ mul.s $f6, $f0, $f0 /* 07E450 7F049920 46082280 */ add.s $f10, $f4, $f8 /* 07E454 7F049924 0C007DF8 */ jal sqrtf /* 07E458 7F049928 460A3300 */ add.s $f12, $f6, $f10 /* 07E45C 7F04992C 3C018005 */ lui $at, %hi(D_80052B78) /* 07E460 7F049930 C42E2B78 */ lwc1 $f14, %lo(D_80052B78)($at) /* 07E464 7F049934 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07E468 7F049938 44812000 */ mtc1 $at, $f4 /* 07E46C 7F04993C 8FA30090 */ lw $v1, 0x90($sp) /* 07E470 7F049940 4600703C */ c.lt.s $f14, $f0 /* 07E474 7F049944 46000306 */ mov.s $f12, $f0 /* 07E478 7F049948 46002083 */ div.s $f2, $f4, $f0 /* 07E47C 7F04994C C4680010 */ lwc1 $f8, 0x10($v1) /* 07E480 7F049950 C46A0014 */ lwc1 $f10, 0x14($v1) /* 07E484 7F049954 3C0143FA */ li $at, 0x43FA0000 # 500.000000 /* 07E488 7F049958 44810000 */ mtc1 $at, $f0 /* 07E48C 7F04995C 46024182 */ mul.s $f6, $f8, $f2 /* 07E490 7F049960 C4680018 */ lwc1 $f8, 0x18($v1) /* 07E494 7F049964 46025102 */ mul.s $f4, $f10, $f2 /* 07E498 7F049968 E4660010 */ swc1 $f6, 0x10($v1) /* 07E49C 7F04996C 46024182 */ mul.s $f6, $f8, $f2 /* 07E4A0 7F049970 E4640014 */ swc1 $f4, 0x14($v1) /* 07E4A4 7F049974 45000002 */ bc1f .L7F049980 /* 07E4A8 7F049978 E4660018 */ swc1 $f6, 0x18($v1) /* 07E4AC 7F04997C 46007306 */ mov.s $f12, $f14 .L7F049980: /* 07E4B0 7F049980 4600603C */ c.lt.s $f12, $f0 /* 07E4B4 7F049984 240E000E */ li $t6, 14 /* 07E4B8 7F049988 A0600000 */ sb $zero, ($v1) /* 07E4BC 7F04998C A06E0001 */ sb $t6, 1($v1) /* 07E4C0 7F049990 45000002 */ bc1f .L7F04999C /* 07E4C4 7F049994 E46C001C */ swc1 $f12, 0x1c($v1) /* 07E4C8 7F049998 46000306 */ mov.s $f12, $f0 .L7F04999C: /* 07E4CC 7F04999C 806D0001 */ lb $t5, 1($v1) /* 07E4D0 7F0499A0 24010016 */ li $at, 22 /* 07E4D4 7F0499A4 15A10026 */ bne $t5, $at, .L7F049A40 /* 07E4D8 7F0499A8 3C018005 */ lui $at, %hi(D_80052B7C) /* 07E4DC 7F0499AC C4222B7C */ lwc1 $f2, %lo(D_80052B7C)($at) /* 07E4E0 7F0499B0 3C013E80 */ li $at, 0x3E800000 # 0.250000 /* 07E4E4 7F0499B4 44815000 */ mtc1 $at, $f10 /* 07E4E8 7F0499B8 3C018005 */ lui $at, %hi(D_80052B80) /* 07E4EC 7F0499BC 460C5102 */ mul.s $f4, $f10, $f12 /* 07E4F0 7F0499C0 E4640020 */ swc1 $f4, 0x20($v1) /* 07E4F4 7F0499C4 C4282B80 */ lwc1 $f8, %lo(D_80052B80)($at) /* 07E4F8 7F0499C8 460C4002 */ mul.s $f0, $f8, $f12 /* 07E4FC 7F0499CC 4600103C */ c.lt.s $f2, $f0 /* 07E500 7F0499D0 E4600024 */ swc1 $f0, 0x24($v1) /* 07E504 7F0499D4 45020003 */ bc1fl .L7F0499E4 /* 07E508 7F0499D8 AFA30090 */ sw $v1, 0x90($sp) /* 07E50C 7F0499DC E4620024 */ swc1 $f2, 0x24($v1) /* 07E510 7F0499E0 AFA30090 */ sw $v1, 0x90($sp) .L7F0499E4: /* 07E514 7F0499E4 0C002914 */ jal randomGetNext /* 07E518 7F0499E8 E7AC0094 */ swc1 $f12, 0x94($sp) /* 07E51C 7F0499EC 44823000 */ mtc1 $v0, $f6 /* 07E520 7F0499F0 8FA30090 */ lw $v1, 0x90($sp) /* 07E524 7F0499F4 C7AC0094 */ lwc1 $f12, 0x94($sp) /* 07E528 7F0499F8 04410005 */ bgez $v0, .L7F049A10 /* 07E52C 7F0499FC 468032A0 */ cvt.s.w $f10, $f6 /* 07E530 7F049A00 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07E534 7F049A04 44812000 */ mtc1 $at, $f4 /* 07E538 7F049A08 00000000 */ nop /* 07E53C 7F049A0C 46045280 */ add.s $f10, $f10, $f4 .L7F049A10: /* 07E540 7F049A10 3C012F80 */ li $at, 0x2F800000 # 0.000000 /* 07E544 7F049A14 44814000 */ mtc1 $at, $f8 /* 07E548 7F049A18 3C018005 */ lui $at, %hi(D_80052B84) /* 07E54C 7F049A1C C4242B84 */ lwc1 $f4, %lo(D_80052B84)($at) /* 07E550 7F049A20 46085182 */ mul.s $f6, $f10, $f8 /* 07E554 7F049A24 3C018005 */ lui $at, %hi(D_80052B88) /* 07E558 7F049A28 C4282B88 */ lwc1 $f8, %lo(D_80052B88)($at) /* 07E55C 7F049A2C 46043282 */ mul.s $f10, $f6, $f4 /* 07E560 7F049A30 460A4181 */ sub.s $f6, $f8, $f10 /* 07E564 7F049A34 460C3102 */ mul.s $f4, $f6, $f12 /* 07E568 7F049A38 10000023 */ b .L7F049AC8 /* 07E56C 7F049A3C E4640028 */ swc1 $f4, 0x28($v1) .L7F049A40: /* 07E570 7F049A40 3C018005 */ lui $at, %hi(D_80052B8C) /* 07E574 7F049A44 C4282B8C */ lwc1 $f8, %lo(D_80052B8C)($at) /* 07E578 7F049A48 3C018005 */ lui $at, %hi(D_80052B90) /* 07E57C 7F049A4C 460C4002 */ mul.s $f0, $f8, $f12 /* 07E580 7F049A50 E4600020 */ swc1 $f0, 0x20($v1) /* 07E584 7F049A54 E4600024 */ swc1 $f0, 0x24($v1) /* 07E588 7F049A58 C42A2B90 */ lwc1 $f10, %lo(D_80052B90)($at) /* 07E58C 7F049A5C 3C018005 */ lui $at, %hi(D_80052B94) /* 07E590 7F049A60 4600503C */ c.lt.s $f10, $f0 /* 07E594 7F049A64 00000000 */ nop /* 07E598 7F049A68 45000003 */ bc1f .L7F049A78 /* 07E59C 7F049A6C 00000000 */ nop /* 07E5A0 7F049A70 C4262B94 */ lwc1 $f6, %lo(D_80052B94)($at) /* 07E5A4 7F049A74 E4660024 */ swc1 $f6, 0x24($v1) .L7F049A78: /* 07E5A8 7F049A78 0C002914 */ jal randomGetNext /* 07E5AC 7F049A7C AFA30090 */ sw $v1, 0x90($sp) /* 07E5B0 7F049A80 44822000 */ mtc1 $v0, $f4 /* 07E5B4 7F049A84 8FA30090 */ lw $v1, 0x90($sp) /* 07E5B8 7F049A88 04410005 */ bgez $v0, .L7F049AA0 /* 07E5BC 7F049A8C 46802220 */ cvt.s.w $f8, $f4 /* 07E5C0 7F049A90 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07E5C4 7F049A94 44815000 */ mtc1 $at, $f10 /* 07E5C8 7F049A98 00000000 */ nop /* 07E5CC 7F049A9C 460A4200 */ add.s $f8, $f8, $f10 .L7F049AA0: /* 07E5D0 7F049AA0 3C012F80 */ li $at, 0x2F800000 # 0.000000 /* 07E5D4 7F049AA4 44813000 */ mtc1 $at, $f6 /* 07E5D8 7F049AA8 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07E5DC 7F049AAC 44815000 */ mtc1 $at, $f10 /* 07E5E0 7F049AB0 46064002 */ mul.s $f0, $f8, $f6 /* 07E5E4 7F049AB4 C4660020 */ lwc1 $f6, 0x20($v1) /* 07E5E8 7F049AB8 46000100 */ add.s $f4, $f0, $f0 /* 07E5EC 7F049ABC 460A2201 */ sub.s $f8, $f4, $f10 /* 07E5F0 7F049AC0 46064102 */ mul.s $f4, $f8, $f6 /* 07E5F4 7F049AC4 E4640028 */ swc1 $f4, 0x28($v1) .L7F049AC8: /* 07E5F8 7F049AC8 8E980008 */ lw $t8, 8($s4) .L7F049ACC: /* 07E5FC 7F049ACC 8F030008 */ lw $v1, 8($t8) /* 07E600 7F049AD0 8C650014 */ lw $a1, 0x14($v1) /* 07E604 7F049AD4 50A00008 */ beql $a1, $zero, .L7F049AF8 /* 07E608 7F049AD8 8C65001C */ lw $a1, 0x1c($v1) /* 07E60C 7F049ADC 0FC1B1E7 */ jal modelGetNodeRwData /* 07E610 7F049AE0 02802025 */ move $a0, $s4 /* 07E614 7F049AE4 8FA8013C */ lw $t0, 0x13c($sp) /* 07E618 7F049AE8 A4480000 */ sh $t0, ($v0) /* 07E61C 7F049AEC 8E8B0008 */ lw $t3, 8($s4) /* 07E620 7F049AF0 8D630008 */ lw $v1, 8($t3) /* 07E624 7F049AF4 8C65001C */ lw $a1, 0x1c($v1) .L7F049AF8: /* 07E628 7F049AF8 10A00005 */ beqz $a1, .L7F049B10 /* 07E62C 7F049AFC 00000000 */ nop /* 07E630 7F049B00 0FC1B1E7 */ jal modelGetNodeRwData /* 07E634 7F049B04 02802025 */ move $a0, $s4 /* 07E638 7F049B08 8FAF0138 */ lw $t7, 0x138($sp) /* 07E63C 7F049B0C A44F0000 */ sh $t7, ($v0) .L7F049B10: /* 07E640 7F049B10 0FC11080 */ jal objDropRecursively /* 07E644 7F049B14 02602025 */ move $a0, $s3 /* 07E648 7F049B18 8FA90680 */ lw $t1, 0x680($sp) .L7F049B1C: /* 07E64C 7F049B1C 24010005 */ li $at, 5 /* 07E650 7F049B20 55210003 */ bnel $t1, $at, .L7F049B30 /* 07E654 7F049B24 8FA20680 */ lw $v0, 0x680($sp) /* 07E658 7F049B28 AE600014 */ sw $zero, 0x14($s3) /* 07E65C 7F049B2C 8FA20680 */ lw $v0, 0x680($sp) .L7F049B30: /* 07E660 7F049B30 8FBF0054 */ lw $ra, 0x54($sp) /* 07E664 7F049B34 D7B40030 */ ldc1 $f20, 0x30($sp) /* 07E668 7F049B38 D7B60038 */ ldc1 $f22, 0x38($sp) /* 07E66C 7F049B3C 8FB00040 */ lw $s0, 0x40($sp) /* 07E670 7F049B40 8FB10044 */ lw $s1, 0x44($sp) /* 07E674 7F049B44 8FB20048 */ lw $s2, 0x48($sp) /* 07E678 7F049B48 8FB3004C */ lw $s3, 0x4c($sp) /* 07E67C 7F049B4C 8FB40050 */ lw $s4, 0x50($sp) /* 07E680 7F049B50 03E00008 */ jr $ra /* 07E684 7F049B54 27BD06A8 */ addiu $sp, $sp, 0x6a8 ) #endif #ifdef VERSION_JP GLOBAL_ASM( .late_rodata glabel rocket_initial_gravity_modifier .word 0x3e8e38e4 /*0.27777779*/ glabel D_80052A9C .word 0x3c360b61 /*0.011111111*/ glabel D_80052AA0 .word 0x3d8f5c29 /*0.07*/ glabel prop_projectile_gravity_modifier .word 0x3e8e38e4 /*0.27777779*/ glabel D_80052AA8 .word 0x400e38e4 /*2.2222223*/ glabel D_80052AAC .word 0x46d9038c /*27777.773*/ glabel D_80052AB0 .word 0x3f8ccccd /*1.1*/ glabel D_80052AB4 .word 0x3f666666 /*0.89999998*/ glabel D_80052AB8 .word 0x3f666666 /*0.89999998*/ glabel D_80052ABC .word 0x3dcccccd /*0.1*/ glabel D_80052AC0 .word 0xbdcccccd /*-0.1*/ glabel D_80052AC4 .word 0xbdcccccd /*-0.1*/ glabel D_80052AC8 .word 0x40c90fdb /*6.2831855*/ glabel D_80052ACC .word 0x40c90fdb /*6.2831855*/ glabel D_80052AD0 .word 0x40490fdb /*3.1415927*/ glabel D_80052AD4 .word 0x3f490fdb /*0.78539819*/ glabel D_80052AD8 .word 0xbf490fdb /*-0.78539819*/ glabel D_80052ADC .word 0x40c90fdb /*6.2831855*/ glabel D_80052AE0 .word 0x3a2b92a6 /*0.00065449846*/ glabel D_80052AE4 .word 0x3a2b92a6 /*0.00065449846*/ glabel D_80052AE8 .word 0x40c90fdb /*6.2831855*/ glabel D_80052AEC .word 0x37433637 /*0.000011635529*/ glabel D_80052AF0 .word 0x40c90fdb /*6.2831855*/ glabel D_80052AF4 .word 0x3a3702d4 /*0.00069813174*/ glabel D_80052AF8 .word 0x36c33637 /*0.0000058177643*/ glabel D_80052AFC .word 0x39b702d4 /*0.00034906587*/ glabel D_80052B00 .word 0x40c90fdb /*6.2831855*/ glabel D_80052B04 .word 0x40c90fdb /*6.2831855*/ glabel D_80052B08 .word 0x40c90fdb /*6.2831855*/ glabel D_80052B0C .word 0x40490fdb /*3.1415927*/ glabel D_80052B10 .word 0x3f9c61ab /*1.2217306*/ glabel D_80052B14 .word 0xbf9c61ab /*-1.2217306*/ glabel D_80052B18 .word 0xc0490fdb /*-3.1415927*/ glabel D_80052B1C .word 0x40490fdb /*3.1415927*/ glabel D_80052B20 .word 0x40c90fdb /*6.2831855*/ glabel D_80052B24 .word 0x3f4ccccd /*0.80000001*/ glabel D_80052B28 .word 0xc0490fdb /*-3.1415927*/ glabel D_80052B2C .word 0x40490fdb /*3.1415927*/ glabel D_80052B30 .word 0x3a64c389 /*0.00087266468*/ glabel D_80052B34 .word 0x3a64c389 /*0.00087266468*/ glabel D_80052B38 .word 0x40490fdb /*3.1415927*/ glabel D_80052B3C .word 0x3f1930a7 /*0.59839863*/ glabel D_80052B40 .word 0x3c236719 /*0.0099733109*/ glabel D_80052B44 .word 0x3f7d70a4 /*0.99000001*/ glabel D_80052B48 .word 0x38d1b717 /*0.000099999997*/ glabel D_80052B4C .word 0x3964c389 /*0.00021816617*/ glabel D_80052B50 .word 0x3bd67750 /*0.0065449849*/ glabel D_80052B54 .word 0x40c90fdb /*6.2831855*/ glabel D_80052B58 .word 0x3964c389 /*0.00021816617*/ glabel D_80052B5C .word 0xb964c389 /*-0.00021816617*/ glabel D_80052B60 .word 0x40c90fdb /*6.2831855*/ glabel D_80052B64 .word 0x40c90fdb /*6.2831855*/ glabel D_80052B68 .word 0x3e99999a /*0.30000001*/ glabel D_80052B6C .word 0x3fc90fdb /*1.5707964*/ glabel D_80052B70 .word 0x3fc90fdb /*1.5707964*/ glabel D_80052B74 .word 0x3e23d70a /*0.16*/ glabel D_80052B78 .word 0x461c4000 /*10000.0*/ glabel D_80052B7C .word 0x453b8000 /*3000.0*/ glabel D_80052B80 .word 0x3f19999a /*0.60000002*/ glabel D_80052B84 .word 0x3e99999a /*0.30000001*/ glabel D_80052B88 .word 0xbdcccccd /*-0.1*/ glabel D_80052B8C .word 0x3e4ccccd /*0.2*/ glabel D_80052B90 .word 0x453b8000 /*3000.0*/ glabel D_80052B94 .word 0x453b8000 /*3000.0*/ .text glabel object_interaction /* 07A218 7F0456A8 27BDF950 */ addiu $sp, $sp, -0x6b0 /* 07A21C 7F0456AC AFBF0054 */ sw $ra, 0x54($sp) /* 07A220 7F0456B0 AFB40050 */ sw $s4, 0x50($sp) /* 07A224 7F0456B4 AFB3004C */ sw $s3, 0x4c($sp) /* 07A228 7F0456B8 AFB20048 */ sw $s2, 0x48($sp) /* 07A22C 7F0456BC AFB10044 */ sw $s1, 0x44($sp) /* 07A230 7F0456C0 AFB00040 */ sw $s0, 0x40($sp) /* 07A234 7F0456C4 F7B60038 */ sdc1 $f22, 0x38($sp) /* 07A238 7F0456C8 F7B40030 */ sdc1 $f20, 0x30($sp) /* 07A23C 7F0456CC 8C910004 */ lw $s1, 4($a0) /* 07A240 7F0456D0 4480B000 */ mtc1 $zero, $f22 /* 07A244 7F0456D4 00809825 */ move $s3, $a0 /* 07A248 7F0456D8 8E340014 */ lw $s4, 0x14($s1) /* 07A24C 7F0456DC AFA00698 */ sw $zero, 0x698($sp) /* 07A250 7F0456E0 AFA00688 */ sw $zero, 0x688($sp) /* 07A254 7F0456E4 0FC26C01 */ jal getPlayerCount /* 07A258 7F0456E8 E7B60684 */ swc1 $f22, 0x684($sp) /* 07A25C 7F0456EC 240F0001 */ li $t7, 1 /* 07A260 7F0456F0 AFA2067C */ sw $v0, 0x67c($sp) /* 07A264 7F0456F4 AFAF0678 */ sw $t7, 0x678($sp) /* 07A268 7F0456F8 8E230064 */ lw $v1, 0x64($s1) /* 07A26C 7F0456FC 30790004 */ andi $t9, $v1, 4 /* 07A270 7F045700 13200009 */ beqz $t9, .Ljp7F045728 /* 07A274 7F045704 30680008 */ andi $t0, $v1, 8 /* 07A278 7F045708 92260002 */ lbu $a2, 2($s1) /* 07A27C 7F04570C 02202025 */ move $a0, $s1 /* 07A280 7F045710 00002825 */ move $a1, $zero /* 07A284 7F045714 30D80004 */ andi $t8, $a2, 4 /* 07A288 7F045718 0FC10426 */ jal objFree /* 07A28C 7F04571C 03003025 */ move $a2, $t8 /* 07A290 7F045720 10001204 */ b .Ljp7F049F34 /* 07A294 7F045724 24020001 */ li $v0, 1 .Ljp7F045728: /* 07A298 7F045728 11000005 */ beqz $t0, .Ljp7F045740 /* 07A29C 7F04572C 306B0080 */ andi $t3, $v1, 0x80 /* 07A2A0 7F045730 2401FFF7 */ li $at, -9 /* 07A2A4 7F045734 00614824 */ and $t1, $v1, $at /* 07A2A8 7F045738 1000000B */ b .Ljp7F045768 /* 07A2AC 7F04573C AE290064 */ sw $t1, 0x64($s1) .Ljp7F045740: /* 07A2B0 7F045740 5160000A */ beql $t3, $zero, .Ljp7F04576C /* 07A2B4 7F045744 24010001 */ li $at, 1 /* 07A2B8 7F045748 926C0001 */ lbu $t4, 1($s3) /* 07A2BC 7F04574C 24020003 */ li $v0, 3 /* 07A2C0 7F045750 318EFFFD */ andi $t6, $t4, 0xfffd /* 07A2C4 7F045754 A26E0001 */ sb $t6, 1($s3) /* 07A2C8 7F045758 8E2A0064 */ lw $t2, 0x64($s1) /* 07A2CC 7F04575C 354D0008 */ ori $t5, $t2, 8 /* 07A2D0 7F045760 100011F4 */ b .Ljp7F049F34 /* 07A2D4 7F045764 AE2D0064 */ sw $t5, 0x64($s1) .Ljp7F045768: /* 07A2D8 7F045768 24010001 */ li $at, 1 .Ljp7F04576C: /* 07A2DC 7F04576C 14410003 */ bne $v0, $at, .Ljp7F04577C /* 07A2E0 7F045770 240F0001 */ li $t7, 1 /* 07A2E4 7F045774 10000019 */ b .Ljp7F0457DC /* 07A2E8 7F045778 AFAF0680 */ sw $t7, 0x680($sp) .Ljp7F04577C: /* 07A2EC 7F04577C 0FC26F3C */ jal get_cur_playernum /* 07A2F0 7F045780 00000000 */ nop /* 07A2F4 7F045784 0FC2701E */ jal sub_GAME_7F09B4D8 /* 07A2F8 7F045788 00402025 */ move $a0, $v0 /* 07A2FC 7F04578C 2C590001 */ sltiu $t9, $v0, 1 /* 07A300 7F045790 AFB90680 */ sw $t9, 0x680($sp) /* 07A304 7F045794 8E380064 */ lw $t8, 0x64($s1) /* 07A308 7F045798 33080080 */ andi $t0, $t8, 0x80 /* 07A30C 7F04579C 51000010 */ beql $t0, $zero, .Ljp7F0457E0 /* 07A310 7F0457A0 8FAA0680 */ lw $t2, 0x680($sp) /* 07A314 7F0457A4 8E30006C */ lw $s0, 0x6c($s1) /* 07A318 7F0457A8 8E040088 */ lw $a0, 0x88($s0) /* 07A31C 7F0457AC 5080000C */ beql $a0, $zero, .Ljp7F0457E0 /* 07A320 7F0457B0 8FAA0680 */ lw $t2, 0x680($sp) /* 07A324 7F0457B4 0FC26F3F */ jal getPlayerPointerIndex /* 07A328 7F0457B8 00000000 */ nop /* 07A32C 7F0457BC 04400007 */ bltz $v0, .Ljp7F0457DC /* 07A330 7F0457C0 3C098008 */ lui $t1, %hi(g_CurrentPlayer) # $t1, 0x8008 /* 07A334 7F0457C4 8D29A120 */ lw $t1, %lo(g_CurrentPlayer)($t1) /* 07A338 7F0457C8 8E0C0088 */ lw $t4, 0x88($s0) /* 07A33C 7F0457CC 8D2B00A8 */ lw $t3, 0xa8($t1) /* 07A340 7F0457D0 016C7026 */ xor $t6, $t3, $t4 /* 07A344 7F0457D4 2DCE0001 */ sltiu $t6, $t6, 1 /* 07A348 7F0457D8 AFAE0680 */ sw $t6, 0x680($sp) .Ljp7F0457DC: /* 07A34C 7F0457DC 8FAA0680 */ lw $t2, 0x680($sp) .Ljp7F0457E0: /* 07A350 7F0457E0 51400B94 */ beql $t2, $zero, .Ljp7F048634 /* 07A354 7F0457E4 92220003 */ lbu $v0, 3($s1) /* 07A358 7F0457E8 8E2D0064 */ lw $t5, 0x64($s1) /* 07A35C 7F0457EC 31AF0080 */ andi $t7, $t5, 0x80 /* 07A360 7F0457F0 51E0048B */ beql $t7, $zero, .Ljp7F046A20 /* 07A364 7F0457F4 8FAB0698 */ lw $t3, 0x698($sp) /* 07A368 7F0457F8 8E30006C */ lw $s0, 0x6c($s1) /* 07A36C 7F0457FC 3C188005 */ lui $t8, %hi(g_ClockTimer) # $t8, 0x8005 /* 07A370 7F045800 8F1883A4 */ lw $t8, %lo(g_ClockTimer)($t8) /* 07A374 7F045804 8E1900E0 */ lw $t9, 0xe0($s0) /* 07A378 7F045808 03384021 */ addu $t0, $t9, $t8 /* 07A37C 7F04580C 29010961 */ slti $at, $t0, 0x961 /* 07A380 7F045810 14200004 */ bnez $at, .Ljp7F045824 /* 07A384 7F045814 AE0800E0 */ sw $t0, 0xe0($s0) /* 07A388 7F045818 8E2B0064 */ lw $t3, 0x64($s1) /* 07A38C 7F04581C 356C0004 */ ori $t4, $t3, 4 /* 07A390 7F045820 AE2C0064 */ sw $t4, 0x64($s1) .Ljp7F045824: /* 07A394 7F045824 8E0E0000 */ lw $t6, ($s0) /* 07A398 7F045828 31CA0100 */ andi $t2, $t6, 0x100 /* 07A39C 7F04582C 5140002F */ beql $t2, $zero, .Ljp7F0458EC /* 07A3A0 7F045830 C6260058 */ lwc1 $f6, 0x58($s1) /* 07A3A4 7F045834 922D0003 */ lbu $t5, 3($s1) /* 07A3A8 7F045838 24010008 */ li $at, 8 /* 07A3AC 7F04583C 24120001 */ li $s2, 1 /* 07A3B0 7F045840 55A10008 */ bnel $t5, $at, .Ljp7F045864 /* 07A3B4 7F045844 8E040088 */ lw $a0, 0x88($s0) /* 07A3B8 7F045848 AFB10650 */ sw $s1, 0x650($sp) /* 07A3BC 7F04584C 822F0080 */ lb $t7, 0x80($s1) /* 07A3C0 7F045850 24010056 */ li $at, 86 /* 07A3C4 7F045854 55E10003 */ bnel $t7, $at, .Ljp7F045864 /* 07A3C8 7F045858 8E040088 */ lw $a0, 0x88($s0) /* 07A3CC 7F04585C 00009025 */ move $s2, $zero /* 07A3D0 7F045860 8E040088 */ lw $a0, 0x88($s0) .Ljp7F045864: /* 07A3D4 7F045864 50800004 */ beql $a0, $zero, .Ljp7F045878 /* 07A3D8 7F045868 02202025 */ move $a0, $s1 /* 07A3DC 7F04586C 0FC0F4D6 */ jal sub_GAME_7F03D058 /* 07A3E0 7F045870 00002825 */ move $a1, $zero /* 07A3E4 7F045874 02202025 */ move $a0, $s1 .Ljp7F045878: /* 07A3E8 7F045878 260500D4 */ addiu $a1, $s0, 0xd4 /* 07A3EC 7F04587C 27A60654 */ addiu $a2, $sp, 0x654 /* 07A3F0 7F045880 27A70660 */ addiu $a3, $sp, 0x660 /* 07A3F4 7F045884 AFA00010 */ sw $zero, 0x10($sp) /* 07A3F8 7F045888 0FC10C6D */ jal sub_GAME_7F042EB4 /* 07A3FC 7F04588C AFB20014 */ sw $s2, 0x14($sp) /* 07A400 7F045890 AFA2066C */ sw $v0, 0x66c($sp) /* 07A404 7F045894 8E040088 */ lw $a0, 0x88($s0) /* 07A408 7F045898 50800004 */ beql $a0, $zero, .Ljp7F0458AC /* 07A40C 7F04589C 8FB9066C */ lw $t9, 0x66c($sp) /* 07A410 7F0458A0 0FC0F4D6 */ jal sub_GAME_7F03D058 /* 07A414 7F0458A4 24050001 */ li $a1, 1 /* 07A418 7F0458A8 8FB9066C */ lw $t9, 0x66c($sp) .Ljp7F0458AC: /* 07A41C 7F0458AC 24010001 */ li $at, 1 /* 07A420 7F0458B0 8FA20650 */ lw $v0, 0x650($sp) /* 07A424 7F0458B4 53210009 */ beql $t9, $at, .Ljp7F0458DC /* 07A428 7F0458B8 8E080000 */ lw $t0, ($s0) /* 07A42C 7F0458BC 50400007 */ beql $v0, $zero, .Ljp7F0458DC /* 07A430 7F0458C0 8E080000 */ lw $t0, ($s0) /* 07A434 7F0458C4 80580080 */ lb $t8, 0x80($v0) /* 07A438 7F0458C8 24010056 */ li $at, 86 /* 07A43C 7F0458CC 57010003 */ bnel $t8, $at, .Ljp7F0458DC /* 07A440 7F0458D0 8E080000 */ lw $t0, ($s0) /* 07A444 7F0458D4 A4400082 */ sh $zero, 0x82($v0) /* 07A448 7F0458D8 8E080000 */ lw $t0, ($s0) .Ljp7F0458DC: /* 07A44C 7F0458DC 2401FEFF */ li $at, -257 /* 07A450 7F0458E0 01014824 */ and $t1, $t0, $at /* 07A454 7F0458E4 AE090000 */ sw $t1, ($s0) /* 07A458 7F0458E8 C6260058 */ lwc1 $f6, 0x58($s1) .Ljp7F0458EC: /* 07A45C 7F0458EC 3C0B8005 */ lui $t3, %hi(g_ClockTimer) # $t3, 0x8005 /* 07A460 7F0458F0 3C013F80 */ lui $at, 0x3f80 /* 07A464 7F0458F4 E7A6069C */ swc1 $f6, 0x69c($sp) /* 07A468 7F0458F8 C62A005C */ lwc1 $f10, 0x5c($s1) /* 07A46C 7F0458FC E7AA06A0 */ swc1 $f10, 0x6a0($sp) /* 07A470 7F045900 C6240060 */ lwc1 $f4, 0x60($s1) /* 07A474 7F045904 E7A406A4 */ swc1 $f4, 0x6a4($sp) /* 07A478 7F045908 8E0200BC */ lw $v0, 0xbc($s0) /* 07A47C 7F04590C 58400005 */ blezl $v0, .Ljp7F045924 /* 07A480 7F045910 8E2E006C */ lw $t6, 0x6c($s1) /* 07A484 7F045914 8D6B83A4 */ lw $t3, %lo(g_ClockTimer)($t3) /* 07A488 7F045918 004B6023 */ subu $t4, $v0, $t3 /* 07A48C 7F04591C AE0C00BC */ sw $t4, 0xbc($s0) /* 07A490 7F045920 8E2E006C */ lw $t6, 0x6c($s1) .Ljp7F045924: /* 07A494 7F045924 8DCA0000 */ lw $t2, ($t6) /* 07A498 7F045928 314D0001 */ andi $t5, $t2, 1 /* 07A49C 7F04592C 51A00351 */ beql $t5, $zero, .Ljp7F046674 /* 07A4A0 7F045930 C6000060 */ lwc1 $f0, 0x60($s0) /* 07A4A4 7F045934 0FC100DE */ jal chrobjGetBboxFromObjectRecord /* 07A4A8 7F045938 02202025 */ move $a0, $s1 /* 07A4AC 7F04593C 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07A4B0 7F045940 44814000 */ mtc1 $at, $f8 /* 07A4B4 7F045944 3C078005 */ lui $a3, %hi(g_ClockTimer) # $a3, 0x8005 /* 07A4B8 7F045948 24E783A4 */ addiu $a3, %lo(g_ClockTimer) # addiu $a3, $a3, -0x7c5c /* 07A4BC 7F04594C AFA20648 */ sw $v0, 0x648($sp) /* 07A4C0 7F045950 AFA00618 */ sw $zero, 0x618($sp) /* 07A4C4 7F045954 AFA00614 */ sw $zero, 0x614($sp) /* 07A4C8 7F045958 AFA0060C */ sw $zero, 0x60c($sp) /* 07A4CC 7F04595C E7A80640 */ swc1 $f8, 0x640($sp) /* 07A4D0 7F045960 8E0F00A8 */ lw $t7, 0xa8($s0) /* 07A4D4 7F045964 8CF90000 */ lw $t9, ($a3) /* 07A4D8 7F045968 C634005C */ lwc1 $f20, 0x5c($s1) /* 07A4DC 7F04596C 00009025 */ move $s2, $zero /* 07A4E0 7F045970 01F9C021 */ addu $t8, $t7, $t9 /* 07A4E4 7F045974 AE1800A8 */ sw $t8, 0xa8($s0) /* 07A4E8 7F045978 C6260018 */ lwc1 $f6, 0x18($s1) /* 07A4EC 7F04597C 3C018005 */ lui $at, %hi(rocket_initial_gravity_modifier) # $at, 0x8005 /* 07A4F0 7F045980 E7A60634 */ swc1 $f6, 0x634($sp) /* 07A4F4 7F045984 C62A001C */ lwc1 $f10, 0x1c($s1) /* 07A4F8 7F045988 E7AA0638 */ swc1 $f10, 0x638($sp) /* 07A4FC 7F04598C C6240020 */ lwc1 $f4, 0x20($s1) /* 07A500 7F045990 E7A4063C */ swc1 $f4, 0x63c($sp) /* 07A504 7F045994 8E030000 */ lw $v1, ($s0) /* 07A508 7F045998 30680020 */ andi $t0, $v1, 0x20 /* 07A50C 7F04599C 1100004B */ beqz $t0, .Ljp7F045ACC /* 07A510 7F0459A0 00000000 */ nop /* 07A514 7F0459A4 C4322AC8 */ lwc1 $f18, %lo(rocket_initial_gravity_modifier)($at) /* 07A518 7F0459A8 C600001C */ lwc1 $f0, 0x1c($s0) /* 07A51C 7F0459AC 3C028005 */ lui $v0, %hi(g_GlobalTimerDelta) # $v0, 0x8005 /* 07A520 7F0459B0 244283B4 */ addiu $v0, %lo(g_GlobalTimerDelta) # addiu $v0, $v0, -0x7c4c /* 07A524 7F0459B4 4612003C */ c.lt.s $f0, $f18 /* 07A528 7F0459B8 00000000 */ nop /* 07A52C 7F0459BC 4502001C */ bc1fl .Ljp7F045A30 /* 07A530 7F0459C0 C60000B0 */ lwc1 $f0, 0xb0($s0) /* 07A534 7F0459C4 C6080014 */ lwc1 $f8, 0x14($s0) /* 07A538 7F0459C8 C4460000 */ lwc1 $f6, ($v0) /* 07A53C 7F0459CC C60400B4 */ lwc1 $f4, 0xb4($s0) /* 07A540 7F0459D0 3C018005 */ lui $at, %hi(D_80052A9C) # $at, 0x8005 /* 07A544 7F0459D4 46064282 */ mul.s $f10, $f8, $f6 /* 07A548 7F0459D8 460A2200 */ add.s $f8, $f4, $f10 /* 07A54C 7F0459DC E60800B4 */ swc1 $f8, 0xb4($s0) /* 07A550 7F0459E0 C4440000 */ lwc1 $f4, ($v0) /* 07A554 7F0459E4 C60600B4 */ lwc1 $f6, 0xb4($s0) /* 07A558 7F0459E8 C60800B0 */ lwc1 $f8, 0xb0($s0) /* 07A55C 7F0459EC 46043282 */ mul.s $f10, $f6, $f4 /* 07A560 7F0459F0 460A4180 */ add.s $f6, $f8, $f10 /* 07A564 7F0459F4 E60600B0 */ swc1 $f6, 0xb0($s0) /* 07A568 7F0459F8 C4480000 */ lwc1 $f8, ($v0) /* 07A56C 7F0459FC C4242ACC */ lwc1 $f4, %lo(D_80052A9C)($at) /* 07A570 7F045A00 46082282 */ mul.s $f10, $f4, $f8 /* 07A574 7F045A04 460A0180 */ add.s $f6, $f0, $f10 /* 07A578 7F045A08 E606001C */ swc1 $f6, 0x1c($s0) /* 07A57C 7F045A0C C604001C */ lwc1 $f4, 0x1c($s0) /* 07A580 7F045A10 4604903C */ c.lt.s $f18, $f4 /* 07A584 7F045A14 00000000 */ nop /* 07A588 7F045A18 45000002 */ bc1f .Ljp7F045A24 /* 07A58C 7F045A1C 00000000 */ nop /* 07A590 7F045A20 E612001C */ swc1 $f18, 0x1c($s0) .Ljp7F045A24: /* 07A594 7F045A24 10000029 */ b .Ljp7F045ACC /* 07A598 7F045A28 8E030000 */ lw $v1, ($s0) /* 07A59C 7F045A2C C60000B0 */ lwc1 $f0, 0xb0($s0) .Ljp7F045A30: /* 07A5A0 7F045A30 C7A806A0 */ lwc1 $f8, 0x6a0($sp) /* 07A5A4 7F045A34 4600403C */ c.lt.s $f8, $f0 /* 07A5A8 7F045A38 00000000 */ nop /* 07A5AC 7F045A3C 45000019 */ bc1f .Ljp7F045AA4 /* 07A5B0 7F045A40 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8005 /* 07A5B4 7F045A44 C42683B4 */ lwc1 $f6, %lo(g_GlobalTimerDelta)($at) /* 07A5B8 7F045A48 C60A0014 */ lwc1 $f10, 0x14($s0) /* 07A5BC 7F045A4C C60800B4 */ lwc1 $f8, 0xb4($s0) /* 07A5C0 7F045A50 46065102 */ mul.s $f4, $f10, $f6 /* 07A5C4 7F045A54 46044280 */ add.s $f10, $f8, $f4 /* 07A5C8 7F045A58 E60A00B4 */ swc1 $f10, 0xb4($s0) /* 07A5CC 7F045A5C C42883B4 */ lwc1 $f8, %lo(g_GlobalTimerDelta)($at) /* 07A5D0 7F045A60 C60600B4 */ lwc1 $f6, 0xb4($s0) /* 07A5D4 7F045A64 3C018005 */ lui $at, %hi(D_80052AA0) # $at, 0x8005 /* 07A5D8 7F045A68 46083102 */ mul.s $f4, $f6, $f8 /* 07A5DC 7F045A6C 46040280 */ add.s $f10, $f0, $f4 /* 07A5E0 7F045A70 E60A00B0 */ swc1 $f10, 0xb0($s0) /* 07A5E4 7F045A74 C7A806A0 */ lwc1 $f8, 0x6a0($sp) /* 07A5E8 7F045A78 C60600B0 */ lwc1 $f6, 0xb0($s0) /* 07A5EC 7F045A7C C42A2AD0 */ lwc1 $f10, %lo(D_80052AA0)($at) /* 07A5F0 7F045A80 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8005 /* 07A5F4 7F045A84 46083101 */ sub.s $f4, $f6, $f8 /* 07A5F8 7F045A88 46045182 */ mul.s $f6, $f10, $f4 /* 07A5FC 7F045A8C C42A83B4 */ lwc1 $f10, %lo(g_GlobalTimerDelta)($at) /* 07A600 7F045A90 460A3102 */ mul.s $f4, $f6, $f10 /* 07A604 7F045A94 46044180 */ add.s $f6, $f8, $f4 /* 07A608 7F045A98 E7A606A0 */ swc1 $f6, 0x6a0($sp) /* 07A60C 7F045A9C 1000000B */ b .Ljp7F045ACC /* 07A610 7F045AA0 8E030000 */ lw $v1, ($s0) .Ljp7F045AA4: /* 07A614 7F045AA4 E7A006A0 */ swc1 $f0, 0x6a0($sp) /* 07A618 7F045AA8 8E090000 */ lw $t1, ($s0) /* 07A61C 7F045AAC 2401FFDF */ li $at, -33 /* 07A620 7F045AB0 C60A00B4 */ lwc1 $f10, 0xb4($s0) /* 07A624 7F045AB4 01215824 */ and $t3, $t1, $at /* 07A628 7F045AB8 AE0B0000 */ sw $t3, ($s0) /* 07A62C 7F045ABC 35630010 */ ori $v1, $t3, 0x10 /* 07A630 7F045AC0 E616001C */ swc1 $f22, 0x1c($s0) /* 07A634 7F045AC4 AE030000 */ sw $v1, ($s0) /* 07A638 7F045AC8 E60A0008 */ swc1 $f10, 8($s0) .Ljp7F045ACC: /* 07A63C 7F045ACC 3C028005 */ lui $v0, %hi(g_GlobalTimerDelta) # $v0, 0x8005 /* 07A640 7F045AD0 244283B4 */ addiu $v0, %lo(g_GlobalTimerDelta) # addiu $v0, $v0, -0x7c4c /* 07A644 7F045AD4 3C018005 */ lui $at, %hi(prop_projectile_gravity_modifier) # $at, 0x8005 /* 07A648 7F045AD8 306A0010 */ andi $t2, $v1, 0x10 /* 07A64C 7F045ADC C4322AD4 */ lwc1 $f18, %lo(prop_projectile_gravity_modifier)($at) /* 07A650 7F045AE0 C4420000 */ lwc1 $f2, ($v0) /* 07A654 7F045AE4 C600001C */ lwc1 $f0, 0x1c($s0) /* 07A658 7F045AE8 15400015 */ bnez $t2, .Ljp7F045B40 /* 07A65C 7F045AEC C6100014 */ lwc1 $f16, 0x14($s0) /* 07A660 7F045AF0 46008100 */ add.s $f4, $f16, $f0 /* 07A664 7F045AF4 C6080008 */ lwc1 $f8, 8($s0) /* 07A668 7F045AF8 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 07A66C 7F045AFC 46022182 */ mul.s $f6, $f4, $f2 /* 07A670 7F045B00 46064280 */ add.s $f10, $f8, $f6 /* 07A674 7F045B04 E60A0008 */ swc1 $f10, 8($s0) /* 07A678 7F045B08 C4420000 */ lwc1 $f2, ($v0) /* 07A67C 7F045B0C C60C0008 */ lwc1 $f12, 8($s0) /* 07A680 7F045B10 44815000 */ mtc1 $at, $f10 /* 07A684 7F045B14 46029102 */ mul.s $f4, $f18, $f2 /* 07A688 7F045B18 46046381 */ sub.s $f14, $f12, $f4 /* 07A68C 7F045B1C 460E6200 */ add.s $f8, $f12, $f14 /* 07A690 7F045B20 46081182 */ mul.s $f6, $f2, $f8 /* 07A694 7F045B24 C7A806A0 */ lwc1 $f8, 0x6a0($sp) /* 07A698 7F045B28 460A3102 */ mul.s $f4, $f6, $f10 /* 07A69C 7F045B2C 46044180 */ add.s $f6, $f8, $f4 /* 07A6A0 7F045B30 E7A606A0 */ swc1 $f6, 0x6a0($sp) /* 07A6A4 7F045B34 E60E0008 */ swc1 $f14, 8($s0) /* 07A6A8 7F045B38 1000000C */ b .Ljp7F045B6C /* 07A6AC 7F045B3C C4420000 */ lwc1 $f2, ($v0) .Ljp7F045B40: /* 07A6B0 7F045B40 46008200 */ add.s $f8, $f16, $f0 /* 07A6B4 7F045B44 C60A0008 */ lwc1 $f10, 8($s0) /* 07A6B8 7F045B48 46024102 */ mul.s $f4, $f8, $f2 /* 07A6BC 7F045B4C 46045180 */ add.s $f6, $f10, $f4 /* 07A6C0 7F045B50 E6060008 */ swc1 $f6, 8($s0) /* 07A6C4 7F045B54 C60A0008 */ lwc1 $f10, 8($s0) /* 07A6C8 7F045B58 C4420000 */ lwc1 $f2, ($v0) /* 07A6CC 7F045B5C C7A806A0 */ lwc1 $f8, 0x6a0($sp) /* 07A6D0 7F045B60 46025102 */ mul.s $f4, $f10, $f2 /* 07A6D4 7F045B64 46044180 */ add.s $f6, $f8, $f4 /* 07A6D8 7F045B68 E7A606A0 */ swc1 $f6, 0x6a0($sp) .Ljp7F045B6C: /* 07A6DC 7F045B6C C6080010 */ lwc1 $f8, 0x10($s0) /* 07A6E0 7F045B70 C60A0004 */ lwc1 $f10, 4($s0) /* 07A6E4 7F045B74 26240018 */ addiu $a0, $s1, 0x18 /* 07A6E8 7F045B78 46024102 */ mul.s $f4, $f8, $f2 /* 07A6EC 7F045B7C C6080018 */ lwc1 $f8, 0x18($s0) /* 07A6F0 7F045B80 26050020 */ addiu $a1, $s0, 0x20 /* 07A6F4 7F045B84 46045180 */ add.s $f6, $f10, $f4 /* 07A6F8 7F045B88 E6060004 */ swc1 $f6, 4($s0) /* 07A6FC 7F045B8C C44A0000 */ lwc1 $f10, ($v0) /* 07A700 7F045B90 C606000C */ lwc1 $f6, 0xc($s0) /* 07A704 7F045B94 460A4102 */ mul.s $f4, $f8, $f10 /* 07A708 7F045B98 46043200 */ add.s $f8, $f6, $f4 /* 07A70C 7F045B9C C6060004 */ lwc1 $f6, 4($s0) /* 07A710 7F045BA0 E608000C */ swc1 $f8, 0xc($s0) /* 07A714 7F045BA4 C4420000 */ lwc1 $f2, ($v0) /* 07A718 7F045BA8 C7AA069C */ lwc1 $f10, 0x69c($sp) /* 07A71C 7F045BAC 8CE60000 */ lw $a2, ($a3) /* 07A720 7F045BB0 46023102 */ mul.s $f4, $f6, $f2 /* 07A724 7F045BB4 C7A606A4 */ lwc1 $f6, 0x6a4($sp) /* 07A728 7F045BB8 46045200 */ add.s $f8, $f10, $f4 /* 07A72C 7F045BBC E7A8069C */ swc1 $f8, 0x69c($sp) /* 07A730 7F045BC0 C60A000C */ lwc1 $f10, 0xc($s0) /* 07A734 7F045BC4 AFA50070 */ sw $a1, 0x70($sp) /* 07A738 7F045BC8 AFA40074 */ sw $a0, 0x74($sp) /* 07A73C 7F045BCC 46025102 */ mul.s $f4, $f10, $f2 /* 07A740 7F045BD0 46043200 */ add.s $f8, $f6, $f4 /* 07A744 7F045BD4 0FC160C6 */ jal sub_GAME_7F057DF8 /* 07A748 7F045BD8 E7A806A4 */ swc1 $f8, 0x6a4($sp) /* 07A74C 7F045BDC 922D0003 */ lbu $t5, 3($s1) /* 07A750 7F045BE0 24010008 */ li $at, 8 /* 07A754 7F045BE4 55A10013 */ bnel $t5, $at, .Ljp7F045C34 /* 07A758 7F045BE8 8E040088 */ lw $a0, 0x88($s0) /* 07A75C 7F045BEC 82220080 */ lb $v0, 0x80($s1) /* 07A760 7F045BF0 2401001D */ li $at, 29 /* 07A764 7F045BF4 1041000D */ beq $v0, $at, .Ljp7F045C2C /* 07A768 7F045BF8 2401001B */ li $at, 27 /* 07A76C 7F045BFC 1041000B */ beq $v0, $at, .Ljp7F045C2C /* 07A770 7F045C00 2401001C */ li $at, 28 /* 07A774 7F045C04 10410009 */ beq $v0, $at, .Ljp7F045C2C /* 07A778 7F045C08 24010021 */ li $at, 33 /* 07A77C 7F045C0C 10410007 */ beq $v0, $at, .Ljp7F045C2C /* 07A780 7F045C10 2401002F */ li $at, 47 /* 07A784 7F045C14 10410005 */ beq $v0, $at, .Ljp7F045C2C /* 07A788 7F045C18 24010030 */ li $at, 48 /* 07A78C 7F045C1C 10410003 */ beq $v0, $at, .Ljp7F045C2C /* 07A790 7F045C20 24010022 */ li $at, 34 /* 07A794 7F045C24 54410003 */ bnel $v0, $at, .Ljp7F045C34 /* 07A798 7F045C28 8E040088 */ lw $a0, 0x88($s0) .Ljp7F045C2C: /* 07A79C 7F045C2C 24120001 */ li $s2, 1 /* 07A7A0 7F045C30 8E040088 */ lw $a0, 0x88($s0) .Ljp7F045C34: /* 07A7A4 7F045C34 50800004 */ beql $a0, $zero, .Ljp7F045C48 /* 07A7A8 7F045C38 02202025 */ move $a0, $s1 /* 07A7AC 7F045C3C 0FC0F4D6 */ jal sub_GAME_7F03D058 /* 07A7B0 7F045C40 00002825 */ move $a1, $zero /* 07A7B4 7F045C44 02202025 */ move $a0, $s1 .Ljp7F045C48: /* 07A7B8 7F045C48 27A5069C */ addiu $a1, $sp, 0x69c /* 07A7BC 7F045C4C 27A6061C */ addiu $a2, $sp, 0x61c /* 07A7C0 7F045C50 27A70628 */ addiu $a3, $sp, 0x628 /* 07A7C4 7F045C54 AFB20010 */ sw $s2, 0x10($sp) /* 07A7C8 7F045C58 0FC10C6D */ jal sub_GAME_7F042EB4 /* 07A7CC 7F045C5C AFA00014 */ sw $zero, 0x14($sp) /* 07A7D0 7F045C60 AFA2066C */ sw $v0, 0x66c($sp) /* 07A7D4 7F045C64 8E040088 */ lw $a0, 0x88($s0) /* 07A7D8 7F045C68 50800004 */ beql $a0, $zero, .Ljp7F045C7C /* 07A7DC 7F045C6C 8FB9066C */ lw $t9, 0x66c($sp) /* 07A7E0 7F045C70 0FC0F4D6 */ jal sub_GAME_7F03D058 /* 07A7E4 7F045C74 24050001 */ li $a1, 1 /* 07A7E8 7F045C78 8FB9066C */ lw $t9, 0x66c($sp) .Ljp7F045C7C: /* 07A7EC 7F045C7C 240F0001 */ li $t7, 1 /* 07A7F0 7F045C80 24010002 */ li $at, 2 /* 07A7F4 7F045C84 17210042 */ bne $t9, $at, .Ljp7F045D90 /* 07A7F8 7F045C88 AFAF0698 */ sw $t7, 0x698($sp) /* 07A7FC 7F045C8C 3C038003 */ lui $v1, %hi(D_80030B0C) # $v1, 0x8003 /* 07A800 7F045C90 8C630B4C */ lw $v1, %lo(D_80030B0C)($v1) /* 07A804 7F045C94 10600007 */ beqz $v1, .Ljp7F045CB4 /* 07A808 7F045C98 00000000 */ nop /* 07A80C 7F045C9C 90620000 */ lbu $v0, ($v1) /* 07A810 7F045CA0 24010003 */ li $at, 3 /* 07A814 7F045CA4 1041003A */ beq $v0, $at, .Ljp7F045D90 /* 07A818 7F045CA8 24010006 */ li $at, 6 /* 07A81C 7F045CAC 50410039 */ beql $v0, $at, .Ljp7F045D94 /* 07A820 7F045CB0 8FB9060C */ lw $t9, 0x60c($sp) .Ljp7F045CB4: /* 07A824 7F045CB4 10600007 */ beqz $v1, .Ljp7F045CD4 /* 07A828 7F045CB8 00002025 */ move $a0, $zero /* 07A82C 7F045CBC 8C620004 */ lw $v0, 4($v1) /* 07A830 7F045CC0 8C580064 */ lw $t8, 0x64($v0) /* 07A834 7F045CC4 33080080 */ andi $t0, $t8, 0x80 /* 07A838 7F045CC8 11000002 */ beqz $t0, .Ljp7F045CD4 /* 07A83C 7F045CCC 00000000 */ nop /* 07A840 7F045CD0 24040001 */ li $a0, 1 .Ljp7F045CD4: /* 07A844 7F045CD4 5480002F */ bnezl $a0, .Ljp7F045D94 /* 07A848 7F045CD8 8FB9060C */ lw $t9, 0x60c($sp) /* 07A84C 7F045CDC 0FC0FF9C */ jal projectileFree /* 07A850 7F045CE0 02002025 */ move $a0, $s0 /* 07A854 7F045CE4 8E290064 */ lw $t1, 0x64($s1) /* 07A858 7F045CE8 2401FF7F */ li $at, -129 /* 07A85C 7F045CEC AE20006C */ sw $zero, 0x6c($s1) /* 07A860 7F045CF0 01215824 */ and $t3, $t1, $at /* 07A864 7F045CF4 AE2B0064 */ sw $t3, 0x64($s1) /* 07A868 7F045CF8 92620001 */ lbu $v0, 1($s3) /* 07A86C 7F045CFC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 /* 07A870 7F045D00 240500F1 */ li $a1, 241 /* 07A874 7F045D04 304C0008 */ andi $t4, $v0, 8 /* 07A878 7F045D08 11800003 */ beqz $t4, .Ljp7F045D18 /* 07A87C 7F045D0C 00003025 */ move $a2, $zero /* 07A880 7F045D10 344E0010 */ ori $t6, $v0, 0x10 /* 07A884 7F045D14 A26E0001 */ sb $t6, 1($s3) .Ljp7F045D18: /* 07A888 7F045D18 0C002386 */ jal sndPlaySfx /* 07A88C 7F045D1C 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07A890 7F045D20 00402025 */ move $a0, $v0 /* 07A894 7F045D24 0FC14FC3 */ jal chrobjSndCreatePostEventDefault /* 07A898 7F045D28 26650008 */ addiu $a1, $s3, 8 /* 07A89C 7F045D2C 8E6A0014 */ lw $t2, 0x14($s3) /* 07A8A0 7F045D30 82240080 */ lb $a0, 0x80($s1) /* 07A8A4 7F045D34 0FC15F41 */ jal objectivestatusCheckDeposit /* 07A8A8 7F045D38 91450003 */ lbu $a1, 3($t2) /* 07A8AC 7F045D3C 02202025 */ move $a0, $s1 /* 07A8B0 7F045D40 27A5061C */ addiu $a1, $sp, 0x61c /* 07A8B4 7F045D44 8E660014 */ lw $a2, 0x14($s3) /* 07A8B8 7F045D48 0FC10F2E */ jal sub_GAME_7F0439B8 /* 07A8BC 7F045D4C 27A70628 */ addiu $a3, $sp, 0x628 /* 07A8C0 7F045D50 3C058003 */ lui $a1, %hi(D_80030B0C) # $a1, 0x8003 /* 07A8C4 7F045D54 8CA50B4C */ lw $a1, %lo(D_80030B0C)($a1) /* 07A8C8 7F045D58 02602025 */ move $a0, $s3 /* 07A8CC 7F045D5C 3C068007 */ lui $a2, %hi(g_CurrentProjectileModel) # $a2, 0x8007 /* 07A8D0 7F045D60 10A0000B */ beqz $a1, .Ljp7F045D90 /* 07A8D4 7F045D64 3C078007 */ lui $a3, %hi(dword_CODE_bss_80075B74) # $a3, 0x8007 /* 07A8D8 7F045D68 8E720014 */ lw $s2, 0x14($s3) /* 07A8DC 7F045D6C 8CC65BB0 */ lw $a2, %lo(g_CurrentProjectileModel)($a2) /* 07A8E0 7F045D70 0FC10F5B */ jal objEmbed /* 07A8E4 7F045D74 8CE75BB4 */ lw $a3, %lo(dword_CODE_bss_80075B74)($a3) /* 07A8E8 7F045D78 10400005 */ beqz $v0, .Ljp7F045D90 /* 07A8EC 7F045D7C 240D0005 */ li $t5, 5 /* 07A8F0 7F045D80 AE720014 */ sw $s2, 0x14($s3) /* 07A8F4 7F045D84 240F0001 */ li $t7, 1 /* 07A8F8 7F045D88 AFAD0688 */ sw $t5, 0x688($sp) /* 07A8FC 7F045D8C AFAF060C */ sw $t7, 0x60c($sp) .Ljp7F045D90: /* 07A900 7F045D90 8FB9060C */ lw $t9, 0x60c($sp) .Ljp7F045D94: /* 07A904 7F045D94 172000EC */ bnez $t9, .Ljp7F046148 /* 07A908 7F045D98 3C128003 */ lui $s2, %hi(D_80030B0C) # $s2, 0x8003 /* 07A90C 7F045D9C 8E520B4C */ lw $s2, %lo(D_80030B0C)($s2) /* 07A910 7F045DA0 524000EA */ beql $s2, $zero, .Ljp7F04614C /* 07A914 7F045DA4 8FB9060C */ lw $t9, 0x60c($sp) /* 07A918 7F045DA8 92380003 */ lbu $t8, 3($s1) /* 07A91C 7F045DAC 24010008 */ li $at, 8 /* 07A920 7F045DB0 570100E6 */ bnel $t8, $at, .Ljp7F04614C /* 07A924 7F045DB4 8FB9060C */ lw $t9, 0x60c($sp) /* 07A928 7F045DB8 82220080 */ lb $v0, 0x80($s1) /* 07A92C 7F045DBC 24010003 */ li $at, 3 /* 07A930 7F045DC0 544100C3 */ bnel $v0, $at, .Ljp7F0460D0 /* 07A934 7F045DC4 24010056 */ li $at, 86 /* 07A938 7F045DC8 92420000 */ lbu $v0, ($s2) /* 07A93C 7F045DCC 24010003 */ li $at, 3 /* 07A940 7F045DD0 1041000D */ beq $v0, $at, .Ljp7F045E08 /* 07A944 7F045DD4 24010006 */ li $at, 6 /* 07A948 7F045DD8 544100DC */ bnel $v0, $at, .Ljp7F04614C /* 07A94C 7F045DDC 8FB9060C */ lw $t9, 0x60c($sp) /* 07A950 7F045DE0 8E480004 */ lw $t0, 4($s2) /* 07A954 7F045DE4 510000D9 */ beql $t0, $zero, .Ljp7F04614C /* 07A958 7F045DE8 8FB9060C */ lw $t9, 0x60c($sp) /* 07A95C 7F045DEC 0FC26F3F */ jal getPlayerPointerIndex /* 07A960 7F045DF0 02402025 */ move $a0, $s2 /* 07A964 7F045DF4 0FC26F3C */ jal get_cur_playernum /* 07A968 7F045DF8 00409025 */ move $s2, $v0 /* 07A96C 7F045DFC 105200D2 */ beq $v0, $s2, .Ljp7F046148 /* 07A970 7F045E00 3C128003 */ lui $s2, %hi(D_80030B0C) # $s2, 0x8003 /* 07A974 7F045E04 8E520B4C */ lw $s2, %lo(D_80030B0C)($s2) .Ljp7F045E08: /* 07A978 7F045E08 8E22006C */ lw $v0, 0x6c($s1) /* 07A97C 7F045E0C 8E440004 */ lw $a0, 4($s2) /* 07A980 7F045E10 8C490000 */ lw $t1, ($v0) /* 07A984 7F045E14 312B0001 */ andi $t3, $t1, 1 /* 07A988 7F045E18 516000CC */ beql $t3, $zero, .Ljp7F04614C /* 07A98C 7F045E1C 8FB9060C */ lw $t9, 0x60c($sp) /* 07A990 7F045E20 8C4C0090 */ lw $t4, 0x90($v0) /* 07A994 7F045E24 5D8000C9 */ bgtzl $t4, .Ljp7F04614C /* 07A998 7F045E28 8FB9060C */ lw $t9, 0x60c($sp) /* 07A99C 7F045E2C 8E2E0064 */ lw $t6, 0x64($s1) /* 07A9A0 7F045E30 3C068007 */ lui $a2, %hi(flt_CODE_bss_80075B78) # $a2, 0x8007 /* 07A9A4 7F045E34 24C65BB8 */ addiu $a2, %lo(flt_CODE_bss_80075B78) # addiu $a2, $a2, 0x5bb8 /* 07A9A8 7F045E38 31CA0020 */ andi $t2, $t6, 0x20 /* 07A9AC 7F045E3C 114000C2 */ beqz $t2, .Ljp7F046148 /* 07A9B0 7F045E40 3C058003 */ lui $a1, %hi(bodypartshot) # $a1, 0x8003 /* 07A9B4 7F045E44 82270080 */ lb $a3, 0x80($s1) /* 07A9B8 7F045E48 240D0001 */ li $t5, 1 /* 07A9BC 7F045E4C AFAD0010 */ sw $t5, 0x10($sp) /* 07A9C0 7F045E50 0FC09D61 */ jal handles_shot_actors /* 07A9C4 7F045E54 8CA50B50 */ lw $a1, %lo(bodypartshot)($a1) /* 07A9C8 7F045E58 104000BB */ beqz $v0, .Ljp7F046148 /* 07A9CC 7F045E5C 240F0001 */ li $t7, 1 /* 07A9D0 7F045E60 AFAF060C */ sw $t7, 0x60c($sp) /* 07A9D4 7F045E64 C610008C */ lwc1 $f16, 0x8c($s0) /* 07A9D8 7F045E68 C7AA0628 */ lwc1 $f10, 0x628($sp) /* 07A9DC 7F045E6C 4610B03C */ c.lt.s $f22, $f16 /* 07A9E0 7F045E70 00000000 */ nop /* 07A9E4 7F045E74 4502001D */ bc1fl .Ljp7F045EEC /* 07A9E8 7F045E78 8E190000 */ lw $t9, ($s0) /* 07A9EC 7F045E7C C6020004 */ lwc1 $f2, 4($s0) /* 07A9F0 7F045E80 C60C0008 */ lwc1 $f12, 8($s0) /* 07A9F4 7F045E84 C7A4062C */ lwc1 $f4, 0x62c($sp) /* 07A9F8 7F045E88 460A1182 */ mul.s $f6, $f2, $f10 /* 07A9FC 7F045E8C C600000C */ lwc1 $f0, 0xc($s0) /* 07AA00 7F045E90 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07AA04 7F045E94 46046202 */ mul.s $f8, $f12, $f4 /* 07AA08 7F045E98 46083100 */ add.s $f4, $f6, $f8 /* 07AA0C 7F045E9C C7A60630 */ lwc1 $f6, 0x630($sp) /* 07AA10 7F045EA0 46003202 */ mul.s $f8, $f6, $f0 /* 07AA14 7F045EA4 44813000 */ mtc1 $at, $f6 /* 07AA18 7F045EA8 46044380 */ add.s $f14, $f8, $f4 /* 07AA1C 7F045EAC 46068200 */ add.s $f8, $f16, $f6 /* 07AA20 7F045EB0 46004107 */ neg.s $f4, $f8 /* 07AA24 7F045EB4 46047382 */ mul.s $f14, $f14, $f4 /* 07AA28 7F045EB8 00000000 */ nop /* 07AA2C 7F045EBC 460A7182 */ mul.s $f6, $f14, $f10 /* 07AA30 7F045EC0 46061200 */ add.s $f8, $f2, $f6 /* 07AA34 7F045EC4 E6080004 */ swc1 $f8, 4($s0) /* 07AA38 7F045EC8 C7A4062C */ lwc1 $f4, 0x62c($sp) /* 07AA3C 7F045ECC 46047282 */ mul.s $f10, $f14, $f4 /* 07AA40 7F045ED0 460A6180 */ add.s $f6, $f12, $f10 /* 07AA44 7F045ED4 E6060008 */ swc1 $f6, 8($s0) /* 07AA48 7F045ED8 C7A80630 */ lwc1 $f8, 0x630($sp) /* 07AA4C 7F045EDC 46087102 */ mul.s $f4, $f14, $f8 /* 07AA50 7F045EE0 46040280 */ add.s $f10, $f0, $f4 /* 07AA54 7F045EE4 E60A000C */ swc1 $f10, 0xc($s0) /* 07AA58 7F045EE8 8E190000 */ lw $t9, ($s0) .Ljp7F045EEC: /* 07AA5C 7F045EEC 33380200 */ andi $t8, $t9, 0x200 /* 07AA60 7F045EF0 57000004 */ bnezl $t8, .Ljp7F045F04 /* 07AA64 7F045EF4 8E080090 */ lw $t0, 0x90($s0) /* 07AA68 7F045EF8 0FC15FF8 */ jal mtxLoadRandomRotation /* 07AA6C 7F045EFC 8FA40070 */ lw $a0, 0x70($sp) /* 07AA70 7F045F00 8E080090 */ lw $t0, 0x90($s0) .Ljp7F045F04: /* 07AA74 7F045F04 3C058003 */ lui $a1, %hi(D_80030B0C) # $a1, 0x8003 /* 07AA78 7F045F08 2406FFFF */ li $a2, -1 /* 07AA7C 7F045F0C 25090001 */ addiu $t1, $t0, 1 /* 07AA80 7F045F10 AE090090 */ sw $t1, 0x90($s0) /* 07AA84 7F045F14 8CA50B4C */ lw $a1, %lo(D_80030B0C)($a1) /* 07AA88 7F045F18 0FC19252 */ jal recall_joy2_hits_edit_detail_edit_flag /* 07AA8C 7F045F1C 82240080 */ lb $a0, 0x80($s1) /* 07AA90 7F045F20 3C0B8003 */ lui $t3, %hi(D_80030B0C) # $t3, 0x8003 /* 07AA94 7F045F24 8D6B0B4C */ lw $t3, %lo(D_80030B0C)($t3) /* 07AA98 7F045F28 3C028003 */ lui $v0, %hi(bodypartshot) # $v0, 0x8003 /* 07AA9C 7F045F2C 916C0001 */ lbu $t4, 1($t3) /* 07AAA0 7F045F30 318E0002 */ andi $t6, $t4, 2 /* 07AAA4 7F045F34 51C00085 */ beql $t6, $zero, .Ljp7F04614C /* 07AAA8 7F045F38 8FB9060C */ lw $t9, 0x60c($sp) /* 07AAAC 7F045F3C 8C420B50 */ lw $v0, %lo(bodypartshot)($v0) /* 07AAB0 7F045F40 24010064 */ li $at, 100 /* 07AAB4 7F045F44 10410080 */ beq $v0, $at, .Ljp7F046148 /* 07AAB8 7F045F48 2401006E */ li $at, 110 /* 07AABC 7F045F4C 1041007E */ beq $v0, $at, .Ljp7F046148 /* 07AAC0 7F045F50 3C048007 */ lui $a0, %hi(g_CurrentProjectileModel) # $a0, 0x8007 /* 07AAC4 7F045F54 3C058007 */ lui $a1, %hi(dword_CODE_bss_80075B74) # $a1, 0x8007 /* 07AAC8 7F045F58 8CA55BB4 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) /* 07AACC 7F045F5C 8C845BB0 */ lw $a0, %lo(g_CurrentProjectileModel)($a0) /* 07AAD0 7F045F60 0FC1B314 */ jal modelFindNodeMtx /* 07AAD4 7F045F64 00003025 */ move $a2, $zero /* 07AAD8 7F045F68 C7A6061C */ lwc1 $f6, 0x61c($sp) /* 07AADC 7F045F6C C7A80620 */ lwc1 $f8, 0x620($sp) /* 07AAE0 7F045F70 C7A40624 */ lwc1 $f4, 0x624($sp) /* 07AAE4 7F045F74 00409025 */ move $s2, $v0 /* 07AAE8 7F045F78 E7A605D4 */ swc1 $f6, 0x5d4($sp) /* 07AAEC 7F045F7C E7A805D8 */ swc1 $f8, 0x5d8($sp) /* 07AAF0 7F045F80 0FC1E26D */ jal camGetWorldToScreenMtxf /* 07AAF4 7F045F84 E7A405DC */ swc1 $f4, 0x5dc($sp) /* 07AAF8 7F045F88 00402025 */ move $a0, $v0 /* 07AAFC 7F045F8C 0FC16265 */ jal mtx4TransformVecInPlace /* 07AB00 7F045F90 27A505D4 */ addiu $a1, $sp, 0x5d4 /* 07AB04 7F045F94 C7AA05D4 */ lwc1 $f10, 0x5d4($sp) /* 07AB08 7F045F98 C6460030 */ lwc1 $f6, 0x30($s2) /* 07AB0C 7F045F9C 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 07AB10 7F045FA0 44810000 */ mtc1 $at, $f0 /* 07AB14 7F045FA4 46065201 */ sub.s $f8, $f10, $f6 /* 07AB18 7F045FA8 3C048007 */ lui $a0, %hi(g_CurrentProjectileModel) # $a0, 0x8007 /* 07AB1C 7F045FAC 3C058007 */ lui $a1, %hi(dword_CODE_bss_80075B74) # $a1, 0x8007 /* 07AB20 7F045FB0 8CA55BB4 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) /* 07AB24 7F045FB4 46004102 */ mul.s $f4, $f8, $f0 /* 07AB28 7F045FB8 C7A805D8 */ lwc1 $f8, 0x5d8($sp) /* 07AB2C 7F045FBC 8C845BB0 */ lw $a0, %lo(g_CurrentProjectileModel)($a0) /* 07AB30 7F045FC0 46045180 */ add.s $f6, $f10, $f4 /* 07AB34 7F045FC4 E7A605D4 */ swc1 $f6, 0x5d4($sp) /* 07AB38 7F045FC8 C64A0034 */ lwc1 $f10, 0x34($s2) /* 07AB3C 7F045FCC 460A4101 */ sub.s $f4, $f8, $f10 /* 07AB40 7F045FD0 46002182 */ mul.s $f6, $f4, $f0 /* 07AB44 7F045FD4 C7A405DC */ lwc1 $f4, 0x5dc($sp) /* 07AB48 7F045FD8 46064280 */ add.s $f10, $f8, $f6 /* 07AB4C 7F045FDC E7AA05D8 */ swc1 $f10, 0x5d8($sp) /* 07AB50 7F045FE0 C6480038 */ lwc1 $f8, 0x38($s2) /* 07AB54 7F045FE4 46082181 */ sub.s $f6, $f4, $f8 /* 07AB58 7F045FE8 46003282 */ mul.s $f10, $f6, $f0 /* 07AB5C 7F045FEC 460A2200 */ add.s $f8, $f4, $f10 /* 07AB60 7F045FF0 0FC1B520 */ jal getjointsize /* 07AB64 7F045FF4 E7A805DC */ swc1 $f8, 0x5dc($sp) /* 07AB68 7F045FF8 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 07AB6C 7F045FFC 44813000 */ mtc1 $at, $f6 /* 07AB70 7F046000 3C018007 */ lui $at, %hi(flt_CODE_bss_80075B88) # $at, 0x8007 /* 07AB74 7F046004 C42A5BC8 */ lwc1 $f10, %lo(flt_CODE_bss_80075B88)($at) /* 07AB78 7F046008 46060102 */ mul.s $f4, $f0, $f6 /* 07AB7C 7F04600C C7A605D4 */ lwc1 $f6, 0x5d4($sp) /* 07AB80 7F046010 3C048007 */ lui $a0, %hi(g_CurrentProjectileModel) # $a0, 0x8007 /* 07AB84 7F046014 3C058007 */ lui $a1, %hi(dword_CODE_bss_80075B74) # $a1, 0x8007 /* 07AB88 7F046018 8CA55BB4 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) /* 07AB8C 7F04601C 8C845BB0 */ lw $a0, %lo(g_CurrentProjectileModel)($a0) /* 07AB90 7F046020 460A2202 */ mul.s $f8, $f4, $f10 /* 07AB94 7F046024 46083101 */ sub.s $f4, $f6, $f8 /* 07AB98 7F046028 0FC1B520 */ jal getjointsize /* 07AB9C 7F04602C E7A405D4 */ swc1 $f4, 0x5d4($sp) /* 07ABA0 7F046030 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 07ABA4 7F046034 44815000 */ mtc1 $at, $f10 /* 07ABA8 7F046038 3C018007 */ lui $at, %hi(flt_CODE_bss_80075B78) # $at, 0x8007 /* 07ABAC 7F04603C C4285BCC */ lwc1 $f8, %lo(flt_CODE_bss_80075B78+0x14)($at) /* 07ABB0 7F046040 460A0182 */ mul.s $f6, $f0, $f10 /* 07ABB4 7F046044 C7AA05D8 */ lwc1 $f10, 0x5d8($sp) /* 07ABB8 7F046048 3C048007 */ lui $a0, %hi(g_CurrentProjectileModel) # $a0, 0x8007 /* 07ABBC 7F04604C 3C058007 */ lui $a1, %hi(dword_CODE_bss_80075B74) # $a1, 0x8007 /* 07ABC0 7F046050 8CA55BB4 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) /* 07ABC4 7F046054 8C845BB0 */ lw $a0, %lo(g_CurrentProjectileModel)($a0) /* 07ABC8 7F046058 46083102 */ mul.s $f4, $f6, $f8 /* 07ABCC 7F04605C 46045181 */ sub.s $f6, $f10, $f4 /* 07ABD0 7F046060 0FC1B520 */ jal getjointsize /* 07ABD4 7F046064 E7A605D8 */ swc1 $f6, 0x5d8($sp) /* 07ABD8 7F046068 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 07ABDC 7F04606C 44814000 */ mtc1 $at, $f8 /* 07ABE0 7F046070 3C018007 */ lui $at, %hi(flt_CODE_bss_80075B88) # $at, 0x8007 /* 07ABE4 7F046074 C4245BD0 */ lwc1 $f4, %lo(flt_CODE_bss_80075B88+0x8)($at) /* 07ABE8 7F046078 46080282 */ mul.s $f10, $f0, $f8 /* 07ABEC 7F04607C C7A805DC */ lwc1 $f8, 0x5dc($sp) /* 07ABF0 7F046080 02402025 */ move $a0, $s2 /* 07ABF4 7F046084 27A50594 */ addiu $a1, $sp, 0x594 /* 07ABF8 7F046088 46045182 */ mul.s $f6, $f10, $f4 /* 07ABFC 7F04608C 46064281 */ sub.s $f10, $f8, $f6 /* 07AC00 7F046090 0FC168E1 */ jal matrix_4x4_7F059E64 /* 07AC04 7F046094 E7AA05DC */ swc1 $f10, 0x5dc($sp) /* 07AC08 7F046098 27A40594 */ addiu $a0, $sp, 0x594 /* 07AC0C 7F04609C 0FC16265 */ jal mtx4TransformVecInPlace /* 07AC10 7F0460A0 27A505D4 */ addiu $a1, $sp, 0x5d4 /* 07AC14 7F0460A4 3C048007 */ lui $a0, %hi(g_CurrentProjectileModel) # $a0, 0x8007 /* 07AC18 7F0460A8 3C058003 */ lui $a1, %hi(bodypartshot) # $a1, 0x8003 /* 07AC1C 7F0460AC 3C068007 */ lui $a2, %hi(dword_CODE_bss_80075B74) # $a2, 0x8007 /* 07AC20 7F0460B0 8CC65BB4 */ lw $a2, %lo(dword_CODE_bss_80075B74)($a2) /* 07AC24 7F0460B4 8CA50B50 */ lw $a1, %lo(bodypartshot)($a1) /* 07AC28 7F0460B8 8C845BB0 */ lw $a0, %lo(g_CurrentProjectileModel)($a0) /* 07AC2C 7F0460BC 0FC08931 */ jal sub_GAME_7F0221DC /* 07AC30 7F0460C0 27A705D4 */ addiu $a3, $sp, 0x5d4 /* 07AC34 7F0460C4 10000021 */ b .Ljp7F04614C /* 07AC38 7F0460C8 8FB9060C */ lw $t9, 0x60c($sp) /* 07AC3C 7F0460CC 24010056 */ li $at, 86 .Ljp7F0460D0: /* 07AC40 7F0460D0 5441001E */ bnel $v0, $at, .Ljp7F04614C /* 07AC44 7F0460D4 8FB9060C */ lw $t9, 0x60c($sp) /* 07AC48 7F0460D8 92420000 */ lbu $v0, ($s2) /* 07AC4C 7F0460DC 240A0001 */ li $t2, 1 /* 07AC50 7F0460E0 24010003 */ li $at, 3 /* 07AC54 7F0460E4 14410008 */ bne $v0, $at, .Ljp7F046108 /* 07AC58 7F0460E8 AFAA060C */ sw $t2, 0x60c($sp) /* 07AC5C 7F0460EC 8E440004 */ lw $a0, 4($s2) /* 07AC60 7F0460F0 26250058 */ addiu $a1, $s1, 0x58 /* 07AC64 7F0460F4 3C064000 */ lui $a2, 0x4000 /* 07AC68 7F0460F8 0FC09EC3 */ jal chrlvExplosionDamage /* 07AC6C 7F0460FC 24070001 */ li $a3, 1 /* 07AC70 7F046100 10000011 */ b .Ljp7F046148 /* 07AC74 7F046104 A6200082 */ sh $zero, 0x82($s1) .Ljp7F046108: /* 07AC78 7F046108 24010001 */ li $at, 1 /* 07AC7C 7F04610C 10410004 */ beq $v0, $at, .Ljp7F046120 /* 07AC80 7F046110 3C0542C8 */ lui $a1, 0x42c8 /* 07AC84 7F046114 24010004 */ li $at, 4 /* 07AC88 7F046118 5441000B */ bnel $v0, $at, .Ljp7F046148 /* 07AC8C 7F04611C A6200082 */ sh $zero, 0x82($s1) .Ljp7F046120: /* 07AC90 7F046120 8E220064 */ lw $v0, 0x64($s1) /* 07AC94 7F046124 3C010006 */ lui $at, 6 /* 07AC98 7F046128 8E440004 */ lw $a0, 4($s2) /* 07AC9C 7F04612C 00416824 */ and $t5, $v0, $at /* 07ACA0 7F046130 000D7C42 */ srl $t7, $t5, 0x11 /* 07ACA4 7F046134 AFAF0010 */ sw $t7, 0x10($sp) /* 07ACA8 7F046138 26260058 */ addiu $a2, $s1, 0x58 /* 07ACAC 7F04613C 0FC13943 */ jal maybe_detonate_object /* 07ACB0 7F046140 24070056 */ li $a3, 86 /* 07ACB4 7F046144 A6200082 */ sh $zero, 0x82($s1) .Ljp7F046148: /* 07ACB8 7F046148 8FB9060C */ lw $t9, 0x60c($sp) .Ljp7F04614C: /* 07ACBC 7F04614C 5720010B */ bnezl $t9, .Ljp7F04657C /* 07ACC0 7F046150 8E2F0064 */ lw $t7, 0x64($s1) /* 07ACC4 7F046154 8FB8066C */ lw $t8, 0x66c($sp) /* 07ACC8 7F046158 57000031 */ bnezl $t8, .Ljp7F046220 /* 07ACCC 7F04615C 8E090000 */ lw $t1, ($s0) /* 07ACD0 7F046160 C610008C */ lwc1 $f16, 0x8c($s0) /* 07ACD4 7F046164 C7A40628 */ lwc1 $f4, 0x628($sp) /* 07ACD8 7F046168 4610B03C */ c.lt.s $f22, $f16 /* 07ACDC 7F04616C 00000000 */ nop /* 07ACE0 7F046170 4502002B */ bc1fl .Ljp7F046220 /* 07ACE4 7F046174 8E090000 */ lw $t1, ($s0) /* 07ACE8 7F046178 C6020004 */ lwc1 $f2, 4($s0) /* 07ACEC 7F04617C C60C0008 */ lwc1 $f12, 8($s0) /* 07ACF0 7F046180 C7A6062C */ lwc1 $f6, 0x62c($sp) /* 07ACF4 7F046184 46041202 */ mul.s $f8, $f2, $f4 /* 07ACF8 7F046188 C600000C */ lwc1 $f0, 0xc($s0) /* 07ACFC 7F04618C 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07AD00 7F046190 46066282 */ mul.s $f10, $f12, $f6 /* 07AD04 7F046194 4616603E */ c.le.s $f12, $f22 /* 07AD08 7F046198 460A4180 */ add.s $f6, $f8, $f10 /* 07AD0C 7F04619C C7A80630 */ lwc1 $f8, 0x630($sp) /* 07AD10 7F0461A0 46004282 */ mul.s $f10, $f8, $f0 /* 07AD14 7F0461A4 44814000 */ mtc1 $at, $f8 /* 07AD18 7F0461A8 46065380 */ add.s $f14, $f10, $f6 /* 07AD1C 7F0461AC 46088280 */ add.s $f10, $f16, $f8 /* 07AD20 7F0461B0 46005187 */ neg.s $f6, $f10 /* 07AD24 7F0461B4 46067382 */ mul.s $f14, $f14, $f6 /* 07AD28 7F0461B8 00000000 */ nop /* 07AD2C 7F0461BC 46047202 */ mul.s $f8, $f14, $f4 /* 07AD30 7F0461C0 46081280 */ add.s $f10, $f2, $f8 /* 07AD34 7F0461C4 E60A0004 */ swc1 $f10, 4($s0) /* 07AD38 7F0461C8 C7A6062C */ lwc1 $f6, 0x62c($sp) /* 07AD3C 7F0461CC 46067102 */ mul.s $f4, $f14, $f6 /* 07AD40 7F0461D0 46046200 */ add.s $f8, $f12, $f4 /* 07AD44 7F0461D4 E6080008 */ swc1 $f8, 8($s0) /* 07AD48 7F0461D8 C7AA0630 */ lwc1 $f10, 0x630($sp) /* 07AD4C 7F0461DC 460A7182 */ mul.s $f6, $f14, $f10 /* 07AD50 7F0461E0 46060100 */ add.s $f4, $f0, $f6 /* 07AD54 7F0461E4 4500000D */ bc1f .Ljp7F04621C /* 07AD58 7F0461E8 E604000C */ swc1 $f4, 0xc($s0) /* 07AD5C 7F0461EC C6080008 */ lwc1 $f8, 8($s0) /* 07AD60 7F0461F0 24080001 */ li $t0, 1 /* 07AD64 7F0461F4 4608B03E */ c.le.s $f22, $f8 /* 07AD68 7F0461F8 00000000 */ nop /* 07AD6C 7F0461FC 45030007 */ bc1tl .Ljp7F04621C /* 07AD70 7F046200 AFA80614 */ sw $t0, 0x614($sp) /* 07AD74 7F046204 C62A005C */ lwc1 $f10, 0x5c($s1) /* 07AD78 7F046208 460AA03E */ c.le.s $f20, $f10 /* 07AD7C 7F04620C 00000000 */ nop /* 07AD80 7F046210 45020003 */ bc1fl .Ljp7F046220 /* 07AD84 7F046214 8E090000 */ lw $t1, ($s0) /* 07AD88 7F046218 AFA80614 */ sw $t0, 0x614($sp) .Ljp7F04621C: /* 07AD8C 7F04621C 8E090000 */ lw $t1, ($s0) .Ljp7F046220: /* 07AD90 7F046220 C7B40644 */ lwc1 $f20, 0x644($sp) /* 07AD94 7F046224 312B0008 */ andi $t3, $t1, 8 /* 07AD98 7F046228 15600014 */ bnez $t3, .Ljp7F04627C /* 07AD9C 7F04622C 00000000 */ nop /* 07ADA0 7F046230 8E640014 */ lw $a0, 0x14($s3) /* 07ADA4 7F046234 8E650008 */ lw $a1, 8($s3) /* 07ADA8 7F046238 0FC2CD48 */ jal stanGetPositionYValue /* 07ADAC 7F04623C 8E660010 */ lw $a2, 0x10($s3) /* 07ADB0 7F046240 46000506 */ mov.s $f20, $f0 /* 07ADB4 7F046244 8FA40648 */ lw $a0, 0x648($sp) /* 07ADB8 7F046248 0FC0FB2F */ jal chrpropSumMatrixPosY /* 07ADBC 7F04624C 8FA50074 */ lw $a1, 0x74($sp) /* 07ADC0 7F046250 4600A101 */ sub.s $f4, $f20, $f0 /* 07ADC4 7F046254 E7A00640 */ swc1 $f0, 0x640($sp) /* 07ADC8 7F046258 C666000C */ lwc1 $f6, 0xc($s3) /* 07ADCC 7F04625C 00006025 */ move $t4, $zero /* 07ADD0 7F046260 4604303C */ c.lt.s $f6, $f4 /* 07ADD4 7F046264 00000000 */ nop /* 07ADD8 7F046268 45000002 */ bc1f .Ljp7F046274 /* 07ADDC 7F04626C 00000000 */ nop /* 07ADE0 7F046270 240C0001 */ li $t4, 1 .Ljp7F046274: /* 07ADE4 7F046274 10000001 */ b .Ljp7F04627C /* 07ADE8 7F046278 AFAC0618 */ sw $t4, 0x618($sp) .Ljp7F04627C: /* 07ADEC 7F04627C 8FAE0618 */ lw $t6, 0x618($sp) /* 07ADF0 7F046280 8FAA066C */ lw $t2, 0x66c($sp) /* 07ADF4 7F046284 55C00004 */ bnezl $t6, .Ljp7F046298 /* 07ADF8 7F046288 8E0D0000 */ lw $t5, ($s0) /* 07ADFC 7F04628C 5540000B */ bnezl $t2, .Ljp7F0462BC /* 07AE00 7F046290 8FA80618 */ lw $t0, 0x618($sp) /* 07AE04 7F046294 8E0D0000 */ lw $t5, ($s0) .Ljp7F046298: /* 07AE08 7F046298 31AF0200 */ andi $t7, $t5, 0x200 /* 07AE0C 7F04629C 55E00004 */ bnezl $t7, .Ljp7F0462B0 /* 07AE10 7F0462A0 8E190090 */ lw $t9, 0x90($s0) /* 07AE14 7F0462A4 0FC15FF8 */ jal mtxLoadRandomRotation /* 07AE18 7F0462A8 8FA40070 */ lw $a0, 0x70($sp) /* 07AE1C 7F0462AC 8E190090 */ lw $t9, 0x90($s0) .Ljp7F0462B0: /* 07AE20 7F0462B0 27380001 */ addiu $t8, $t9, 1 /* 07AE24 7F0462B4 AE180090 */ sw $t8, 0x90($s0) /* 07AE28 7F0462B8 8FA80618 */ lw $t0, 0x618($sp) .Ljp7F0462BC: /* 07AE2C 7F0462BC 8FA90614 */ lw $t1, 0x614($sp) /* 07AE30 7F0462C0 8FAB0618 */ lw $t3, 0x618($sp) /* 07AE34 7F0462C4 15000003 */ bnez $t0, .Ljp7F0462D4 /* 07AE38 7F0462C8 00000000 */ nop /* 07AE3C 7F0462CC 5120003A */ beql $t1, $zero, .Ljp7F0463B8 /* 07AE40 7F0462D0 92390003 */ lbu $t9, 3($s1) .Ljp7F0462D4: /* 07AE44 7F0462D4 11600009 */ beqz $t3, .Ljp7F0462FC /* 07AE48 7F0462D8 C7A40620 */ lwc1 $f4, 0x620($sp) /* 07AE4C 7F0462DC C7A80640 */ lwc1 $f8, 0x640($sp) /* 07AE50 7F0462E0 3C014080 */ li $at, 0x40800000 # 4.000000 /* 07AE54 7F0462E4 44813000 */ mtc1 $at, $f6 /* 07AE58 7F0462E8 4608A281 */ sub.s $f10, $f20, $f8 /* 07AE5C 7F0462EC 46065000 */ add.s $f0, $f10, $f6 /* 07AE60 7F0462F0 E660000C */ swc1 $f0, 0xc($s3) /* 07AE64 7F0462F4 10000008 */ b .Ljp7F046318 /* 07AE68 7F0462F8 E620005C */ swc1 $f0, 0x5c($s1) .Ljp7F0462FC: /* 07AE6C 7F0462FC C7A80640 */ lwc1 $f8, 0x640($sp) /* 07AE70 7F046300 3C014080 */ li $at, 0x40800000 # 4.000000 /* 07AE74 7F046304 44813000 */ mtc1 $at, $f6 /* 07AE78 7F046308 46082281 */ sub.s $f10, $f4, $f8 /* 07AE7C 7F04630C 46065080 */ add.s $f2, $f10, $f6 /* 07AE80 7F046310 E662000C */ swc1 $f2, 0xc($s3) /* 07AE84 7F046314 E622005C */ swc1 $f2, 0x5c($s1) .Ljp7F046318: /* 07AE88 7F046318 8E230064 */ lw $v1, 0x64($s1) /* 07AE8C 7F04631C 02202025 */ move $a0, $s1 /* 07AE90 7F046320 000363C0 */ sll $t4, $v1, 0xf /* 07AE94 7F046324 05800002 */ bltz $t4, .Ljp7F046330 /* 07AE98 7F046328 346E0100 */ ori $t6, $v1, 0x100 /* 07AE9C 7F04632C AE2E0064 */ sw $t6, 0x64($s1) .Ljp7F046330: /* 07AEA0 7F046330 C610008C */ lwc1 $f16, 0x8c($s0) /* 07AEA4 7F046334 4610B03C */ c.lt.s $f22, $f16 /* 07AEA8 7F046338 00000000 */ nop /* 07AEAC 7F04633C 4500001B */ bc1f .Ljp7F0463AC /* 07AEB0 7F046340 00000000 */ nop /* 07AEB4 7F046344 C6040008 */ lwc1 $f4, 8($s0) /* 07AEB8 7F046348 46008207 */ neg.s $f8, $f16 /* 07AEBC 7F04634C 3C018005 */ lui $at, %hi(D_80052AA8) # $at, 0x8005 /* 07AEC0 7F046350 46082282 */ mul.s $f10, $f4, $f8 /* 07AEC4 7F046354 C4202AD8 */ lwc1 $f0, %lo(D_80052AA8)($at) /* 07AEC8 7F046358 E60A0008 */ swc1 $f10, 8($s0) /* 07AECC 7F04635C C6060008 */ lwc1 $f6, 8($s0) /* 07AED0 7F046360 4600303C */ c.lt.s $f6, $f0 /* 07AED4 7F046364 00000000 */ nop /* 07AED8 7F046368 45020013 */ bc1fl .Ljp7F0463B8 /* 07AEDC 7F04636C 92390003 */ lbu $t9, 3($s1) /* 07AEE0 7F046370 8E0A0000 */ lw $t2, ($s0) /* 07AEE4 7F046374 02202025 */ move $a0, $s1 /* 07AEE8 7F046378 314D0002 */ andi $t5, $t2, 2 /* 07AEEC 7F04637C 11A00007 */ beqz $t5, .Ljp7F04639C /* 07AEF0 7F046380 00000000 */ nop /* 07AEF4 7F046384 8E0F0090 */ lw $t7, 0x90($s0) /* 07AEF8 7F046388 24010001 */ li $at, 1 /* 07AEFC 7F04638C 15E10003 */ bne $t7, $at, .Ljp7F04639C /* 07AF00 7F046390 00000000 */ nop /* 07AF04 7F046394 10000007 */ b .Ljp7F0463B4 /* 07AF08 7F046398 E6000008 */ swc1 $f0, 8($s0) .Ljp7F04639C: /* 07AF0C 7F04639C 0FC10D39 */ jal sub_GAME_7F0431E4 /* 07AF10 7F0463A0 27A50634 */ addiu $a1, $sp, 0x634 /* 07AF14 7F0463A4 10000004 */ b .Ljp7F0463B8 /* 07AF18 7F0463A8 92390003 */ lbu $t9, 3($s1) .Ljp7F0463AC: /* 07AF1C 7F0463AC 0FC10D39 */ jal sub_GAME_7F0431E4 /* 07AF20 7F0463B0 27A50634 */ addiu $a1, $sp, 0x634 .Ljp7F0463B4: /* 07AF24 7F0463B4 92390003 */ lbu $t9, 3($s1) .Ljp7F0463B8: /* 07AF28 7F0463B8 24010008 */ li $at, 8 /* 07AF2C 7F0463BC 5721006F */ bnel $t9, $at, .Ljp7F04657C /* 07AF30 7F0463C0 8E2F0064 */ lw $t7, 0x64($s1) /* 07AF34 7F0463C4 82220080 */ lb $v0, 0x80($s1) /* 07AF38 7F0463C8 24010003 */ li $at, 3 /* 07AF3C 7F0463CC 54410006 */ bnel $v0, $at, .Ljp7F0463E8 /* 07AF40 7F0463D0 24010056 */ li $at, 86 /* 07AF44 7F0463D4 0FC10E54 */ jal sub_GAME_7F043650 /* 07AF48 7F0463D8 02202025 */ move $a0, $s1 /* 07AF4C 7F0463DC 10000042 */ b .Ljp7F0464E8 /* 07AF50 7F0463E0 8FAB066C */ lw $t3, 0x66c($sp) /* 07AF54 7F0463E4 24010056 */ li $at, 86 .Ljp7F0463E8: /* 07AF58 7F0463E8 1441002D */ bne $v0, $at, .Ljp7F0464A0 /* 07AF5C 7F0463EC 8FB8066C */ lw $t8, 0x66c($sp) /* 07AF60 7F0463F0 13000003 */ beqz $t8, .Ljp7F046400 /* 07AF64 7F0463F4 8FA80618 */ lw $t0, 0x618($sp) /* 07AF68 7F0463F8 51000004 */ beql $t0, $zero, .Ljp7F04640C /* 07AF6C 7F0463FC C6020004 */ lwc1 $f2, 4($s0) .Ljp7F046400: /* 07AF70 7F046400 10000038 */ b .Ljp7F0464E4 /* 07AF74 7F046404 A6200082 */ sh $zero, 0x82($s1) /* 07AF78 7F046408 C6020004 */ lwc1 $f2, 4($s0) .Ljp7F04640C: /* 07AF7C 7F04640C C60C0008 */ lwc1 $f12, 8($s0) /* 07AF80 7F046410 C600000C */ lwc1 $f0, 0xc($s0) /* 07AF84 7F046414 46021102 */ mul.s $f4, $f2, $f2 /* 07AF88 7F046418 3C018005 */ lui $at, %hi(D_80052AAC) /* 07AF8C 7F04641C 26240058 */ addiu $a0, $s1, 0x58 /* 07AF90 7F046420 460C6202 */ mul.s $f8, $f12, $f12 /* 07AF94 7F046424 24060008 */ li $a2, 8 /* 07AF98 7F046428 46000182 */ mul.s $f6, $f0, $f0 /* 07AF9C 7F04642C 46082280 */ add.s $f10, $f4, $f8 /* 07AFA0 7F046430 C4242ADC */ lwc1 $f4, %lo(D_80052AAC)($at) /* 07AFA4 7F046434 460A3380 */ add.s $f14, $f6, $f10 /* 07AFA8 7F046438 460E203C */ c.lt.s $f4, $f14 /* 07AFAC 7F04643C 00000000 */ nop /* 07AFB0 7F046440 45020005 */ bc1fl .Ljp7F046458 /* 07AFB4 7F046444 8E0900A8 */ lw $t1, 0xa8($s0) /* 07AFB8 7F046448 E6160010 */ swc1 $f22, 0x10($s0) /* 07AFBC 7F04644C E6160014 */ swc1 $f22, 0x14($s0) /* 07AFC0 7F046450 E6160018 */ swc1 $f22, 0x18($s0) /* 07AFC4 7F046454 8E0900A8 */ lw $t1, 0xa8($s0) .Ljp7F046458: /* 07AFC8 7F046458 2921012D */ slti $at, $t1, 0x12d /* 07AFCC 7F04645C 54200008 */ bnezl $at, .Ljp7F046480 /* 07AFD0 7F046460 926E0001 */ lbu $t6, 1($s3) /* 07AFD4 7F046464 8E0B0000 */ lw $t3, ($s0) /* 07AFD8 7F046468 2401FFCF */ li $at, -49 /* 07AFDC 7F04646C E616001C */ swc1 $f22, 0x1c($s0) /* 07AFE0 7F046470 01616024 */ and $t4, $t3, $at /* 07AFE4 7F046474 1000001B */ b .Ljp7F0464E4 /* 07AFE8 7F046478 AE0C0000 */ sw $t4, ($s0) /* 07AFEC 7F04647C 926E0001 */ lbu $t6, 1($s3) .Ljp7F046480: /* 07AFF0 7F046480 8E650014 */ lw $a1, 0x14($s3) /* 07AFF4 7F046484 2667002C */ addiu $a3, $s3, 0x2c /* 07AFF8 7F046488 31CA0008 */ andi $t2, $t6, 8 /* 07AFFC 7F04648C 000A682B */ sltu $t5, $zero, $t2 /* 07B000 7F046490 0FC27CA9 */ jal explosionCreateSmoke /* 07B004 7F046494 AFAD0010 */ sw $t5, 0x10($sp) /* 07B008 7F046498 10000013 */ b .Ljp7F0464E8 /* 07B00C 7F04649C 8FAB066C */ lw $t3, 0x66c($sp) .Ljp7F0464A0: /* 07B010 7F0464A0 24010057 */ li $at, 87 /* 07B014 7F0464A4 1441000F */ bne $v0, $at, .Ljp7F0464E4 /* 07B018 7F0464A8 8FAF0618 */ lw $t7, 0x618($sp) /* 07B01C 7F0464AC 15E00003 */ bnez $t7, .Ljp7F0464BC /* 07B020 7F0464B0 8FB90614 */ lw $t9, 0x614($sp) /* 07B024 7F0464B4 13200003 */ beqz $t9, .Ljp7F0464C4 /* 07B028 7F0464B8 26240058 */ addiu $a0, $s1, 0x58 .Ljp7F0464BC: /* 07B02C 7F0464BC 10000009 */ b .Ljp7F0464E4 /* 07B030 7F0464C0 A6200082 */ sh $zero, 0x82($s1) .Ljp7F0464C4: /* 07B034 7F0464C4 92780001 */ lbu $t8, 1($s3) /* 07B038 7F0464C8 8E650014 */ lw $a1, 0x14($s3) /* 07B03C 7F0464CC 24060009 */ li $a2, 9 /* 07B040 7F0464D0 33080008 */ andi $t0, $t8, 8 /* 07B044 7F0464D4 0008482B */ sltu $t1, $zero, $t0 /* 07B048 7F0464D8 AFA90010 */ sw $t1, 0x10($sp) /* 07B04C 7F0464DC 0FC27CA9 */ jal explosionCreateSmoke /* 07B050 7F0464E0 2667002C */ addiu $a3, $s3, 0x2c .Ljp7F0464E4: /* 07B054 7F0464E4 8FAB066C */ lw $t3, 0x66c($sp) .Ljp7F0464E8: /* 07B058 7F0464E8 3C128005 */ lui $s2, %hi(D_80048380) # $s2, 0x8005 /* 07B05C 7F0464EC 265283B0 */ addiu $s2, %lo(D_80048380) # addiu $s2, $s2, -0x7c50 /* 07B060 7F0464F0 11600003 */ beqz $t3, .Ljp7F046500 /* 07B064 7F0464F4 8FAC0618 */ lw $t4, 0x618($sp) /* 07B068 7F0464F8 51800020 */ beql $t4, $zero, .Ljp7F04657C /* 07B06C 7F0464FC 8E2F0064 */ lw $t7, 0x64($s1) .Ljp7F046500: /* 07B070 7F046500 8E420000 */ lw $v0, ($s2) /* 07B074 7F046504 8E0E00AC */ lw $t6, 0xac($s0) /* 07B078 7F046508 244AFFFE */ addiu $t2, $v0, -2 /* 07B07C 7F04650C 01CA082A */ slt $at, $t6, $t2 /* 07B080 7F046510 50200019 */ beql $at, $zero, .Ljp7F046578 /* 07B084 7F046514 AE0200AC */ sw $v0, 0xac($s0) /* 07B088 7F046518 82220080 */ lb $v0, 0x80($s1) /* 07B08C 7F04651C 266D0008 */ addiu $t5, $s3, 8 /* 07B090 7F046520 24010003 */ li $at, 3 /* 07B094 7F046524 10410004 */ beq $v0, $at, .Ljp7F046538 /* 07B098 7F046528 AFAD0074 */ sw $t5, 0x74($sp) /* 07B09C 7F04652C 24010002 */ li $at, 2 /* 07B0A0 7F046530 14410008 */ bne $v0, $at, .Ljp7F046554 /* 07B0A4 7F046534 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) .Ljp7F046538: /* 07B0A8 7F046538 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 /* 07B0AC 7F04653C 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07B0B0 7F046540 24050003 */ li $a1, 3 /* 07B0B4 7F046544 0C002386 */ jal sndPlaySfx /* 07B0B8 7F046548 00003025 */ move $a2, $zero /* 07B0BC 7F04654C 10000006 */ b .Ljp7F046568 /* 07B0C0 7F046550 00402025 */ move $a0, $v0 .Ljp7F046554: /* 07B0C4 7F046554 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07B0C8 7F046558 2405002D */ li $a1, 45 /* 07B0CC 7F04655C 0C002386 */ jal sndPlaySfx /* 07B0D0 7F046560 00003025 */ move $a2, $zero /* 07B0D4 7F046564 00402025 */ move $a0, $v0 .Ljp7F046568: /* 07B0D8 7F046568 0FC14FC3 */ jal chrobjSndCreatePostEventDefault /* 07B0DC 7F04656C 8FA50074 */ lw $a1, 0x74($sp) /* 07B0E0 7F046570 8E420000 */ lw $v0, ($s2) /* 07B0E4 7F046574 AE0200AC */ sw $v0, 0xac($s0) .Ljp7F046578: /* 07B0E8 7F046578 8E2F0064 */ lw $t7, 0x64($s1) .Ljp7F04657C: /* 07B0EC 7F04657C 3C128005 */ lui $s2, %hi(D_80048380) # $s2, 0x8005 /* 07B0F0 7F046580 265283B0 */ addiu $s2, %lo(D_80048380) # addiu $s2, $s2, -0x7c50 /* 07B0F4 7F046584 31F90080 */ andi $t9, $t7, 0x80 /* 07B0F8 7F046588 53200125 */ beql $t9, $zero, .Ljp7F046A20 /* 07B0FC 7F04658C 8FAB0698 */ lw $t3, 0x698($sp) /* 07B100 7F046590 8E180000 */ lw $t8, ($s0) /* 07B104 7F046594 33080400 */ andi $t0, $t8, 0x400 /* 07B108 7F046598 51000121 */ beql $t0, $zero, .Ljp7F046A20 /* 07B10C 7F04659C 8FAB0698 */ lw $t3, 0x698($sp) /* 07B110 7F0465A0 8E420000 */ lw $v0, ($s2) /* 07B114 7F0465A4 3C0143C8 */ li $at, 0x43C80000 # 400.000000 /* 07B118 7F0465A8 27B0056C */ addiu $s0, $sp, 0x56c /* 07B11C 7F0465AC 30490007 */ andi $t1, $v0, 7 /* 07B120 7F0465B0 1520011A */ bnez $t1, .Ljp7F046A1C /* 07B124 7F0465B4 00002025 */ move $a0, $zero /* 07B128 7F0465B8 44810000 */ mtc1 $at, $f0 /* 07B12C 7F0465BC C6280058 */ lwc1 $f8, 0x58($s1) /* 07B130 7F0465C0 3C0144E1 */ li $at, 0x44E10000 # 1800.000000 /* 07B134 7F0465C4 44812000 */ mtc1 $at, $f4 /* 07B138 7F0465C8 46004180 */ add.s $f6, $f8, $f0 /* 07B13C 7F0465CC 304B000F */ andi $t3, $v0, 0xf /* 07B140 7F0465D0 E7A6056C */ swc1 $f6, 0x56c($sp) /* 07B144 7F0465D4 C62A005C */ lwc1 $f10, 0x5c($s1) /* 07B148 7F0465D8 46045201 */ sub.s $f8, $f10, $f4 /* 07B14C 7F0465DC E7A80570 */ swc1 $f8, 0x570($sp) /* 07B150 7F0465E0 C6260060 */ lwc1 $f6, 0x60($s1) /* 07B154 7F0465E4 15600005 */ bnez $t3, .Ljp7F0465FC /* 07B158 7F0465E8 E7A60574 */ swc1 $f6, 0x574($sp) /* 07B15C 7F0465EC C7AA0574 */ lwc1 $f10, 0x574($sp) /* 07B160 7F0465F0 46005100 */ add.s $f4, $f10, $f0 /* 07B164 7F0465F4 10000004 */ b .Ljp7F046608 /* 07B168 7F0465F8 E7A40574 */ swc1 $f4, 0x574($sp) .Ljp7F0465FC: /* 07B16C 7F0465FC C7A80574 */ lwc1 $f8, 0x574($sp) /* 07B170 7F046600 46004181 */ sub.s $f6, $f8, $f0 /* 07B174 7F046604 E7A60574 */ swc1 $f6, 0x574($sp) .Ljp7F046608: /* 07B178 7F046608 8E220010 */ lw $v0, 0x10($s1) /* 07B17C 7F04660C 02002825 */ move $a1, $s0 /* 07B180 7F046610 24070014 */ li $a3, 20 /* 07B184 7F046614 8C460014 */ lw $a2, 0x14($v0) /* 07B188 7F046618 244C002C */ addiu $t4, $v0, 0x2c /* 07B18C 7F04661C AFAC0018 */ sw $t4, 0x18($sp) /* 07B190 7F046620 AFA0001C */ sw $zero, 0x1c($sp) /* 07B194 7F046624 AFA00014 */ sw $zero, 0x14($sp) /* 07B198 7F046628 0FC2737C */ jal explosionCreate /* 07B19C 7F04662C AFA00010 */ sw $zero, 0x10($sp) /* 07B1A0 7F046630 8E4E0000 */ lw $t6, ($s2) /* 07B1A4 7F046634 24010028 */ li $at, 40 /* 07B1A8 7F046638 02002025 */ move $a0, $s0 /* 07B1AC 7F04663C 01C1001A */ div $zero, $t6, $at /* 07B1B0 7F046640 00005010 */ mfhi $t2 /* 07B1B4 7F046644 554000F6 */ bnezl $t2, .Ljp7F046A20 /* 07B1B8 7F046648 8FAB0698 */ lw $t3, 0x698($sp) /* 07B1BC 7F04664C 8E220010 */ lw $v0, 0x10($s1) /* 07B1C0 7F046650 240D0001 */ li $t5, 1 /* 07B1C4 7F046654 2406000A */ li $a2, 10 /* 07B1C8 7F046658 8C450014 */ lw $a1, 0x14($v0) /* 07B1CC 7F04665C AFAD0010 */ sw $t5, 0x10($sp) /* 07B1D0 7F046660 0FC27CA9 */ jal explosionCreateSmoke /* 07B1D4 7F046664 2447002C */ addiu $a3, $v0, 0x2c /* 07B1D8 7F046668 100000ED */ b .Ljp7F046A20 /* 07B1DC 7F04666C 8FAB0698 */ lw $t3, 0x698($sp) /* 07B1E0 7F046670 C6000060 */ lwc1 $f0, 0x60($s0) .Ljp7F046674: /* 07B1E4 7F046674 44815000 */ mtc1 $at, $f10 /* 07B1E8 7F046678 24120001 */ li $s2, 1 /* 07B1EC 7F04667C 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8005 /* 07B1F0 7F046680 460A003C */ c.lt.s $f0, $f10 /* 07B1F4 7F046684 26040068 */ addiu $a0, $s0, 0x68 /* 07B1F8 7F046688 26050078 */ addiu $a1, $s0, 0x78 /* 07B1FC 7F04668C 45020031 */ bc1fl .Ljp7F046754 /* 07B200 7F046690 C60A0004 */ lwc1 $f10, 4($s0) /* 07B204 7F046694 C6020064 */ lwc1 $f2, 0x64($s0) /* 07B208 7F046698 C42483B4 */ lwc1 $f4, %lo(g_GlobalTimerDelta)($at) /* 07B20C 7F04669C 3C0F8005 */ lui $t7, %hi(g_ClockTimer) # $t7, 0x8005 /* 07B210 7F0466A0 3C018005 */ lui $at, %hi(D_80052AB0) /* 07B214 7F0466A4 46041202 */ mul.s $f8, $f2, $f4 /* 07B218 7F0466A8 27B20558 */ addiu $s2, $sp, 0x558 /* 07B21C 7F0466AC 46080180 */ add.s $f6, $f0, $f8 /* 07B220 7F0466B0 E6060060 */ swc1 $f6, 0x60($s0) /* 07B224 7F0466B4 8DEF83A4 */ lw $t7, %lo(g_ClockTimer)($t7) /* 07B228 7F0466B8 59E00005 */ blezl $t7, .Ljp7F0466D0 /* 07B22C 7F0466BC 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07B230 7F0466C0 C42A2AE0 */ lwc1 $f10, %lo(D_80052AB0)($at) /* 07B234 7F0466C4 460A1102 */ mul.s $f4, $f2, $f10 /* 07B238 7F0466C8 E6040064 */ swc1 $f4, 0x64($s0) /* 07B23C 7F0466CC 3C013F80 */ li $at, 0x3F800000 # 1.000000 .Ljp7F0466D0: /* 07B240 7F0466D0 44814000 */ mtc1 $at, $f8 /* 07B244 7F0466D4 C6000060 */ lwc1 $f0, 0x60($s0) /* 07B248 7F0466D8 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07B24C 7F0466DC 4600403C */ c.lt.s $f8, $f0 /* 07B250 7F0466E0 00000000 */ nop /* 07B254 7F0466E4 45030006 */ bc1tl .Ljp7F046700 /* 07B258 7F0466E8 44813000 */ mtc1 $at, $f6 /* 07B25C 7F0466EC 8E190000 */ lw $t9, ($s0) /* 07B260 7F0466F0 33380008 */ andi $t8, $t9, 8 /* 07B264 7F0466F4 53000006 */ beql $t8, $zero, .Ljp7F046710 /* 07B268 7F0466F8 44060000 */ mfc1 $a2, $f0 /* 07B26C 7F0466FC 44813000 */ mtc1 $at, $f6 .Ljp7F046700: /* 07B270 7F046700 00000000 */ nop /* 07B274 7F046704 E6060060 */ swc1 $f6, 0x60($s0) /* 07B278 7F046708 C6000060 */ lwc1 $f0, 0x60($s0) /* 07B27C 7F04670C 44060000 */ mfc1 $a2, $f0 .Ljp7F046710: /* 07B280 7F046710 0FC16FCA */ jal quaternion_slerp /* 07B284 7F046714 02403825 */ move $a3, $s2 /* 07B288 7F046718 26250018 */ addiu $a1, $s1, 0x18 /* 07B28C 7F04671C AFA50074 */ sw $a1, 0x74($sp) /* 07B290 7F046720 0FC16ED2 */ jal quaternion_to_matrix /* 07B294 7F046724 02402025 */ move $a0, $s2 /* 07B298 7F046728 C60C00C0 */ lwc1 $f12, 0xc0($s0) /* 07B29C 7F04672C 0FC163B5 */ jal matrix_column_1_scalar_multiply /* 07B2A0 7F046730 8FA50074 */ lw $a1, 0x74($sp) /* 07B2A4 7F046734 C60C00C4 */ lwc1 $f12, 0xc4($s0) /* 07B2A8 7F046738 0FC163C1 */ jal matrix_column_2_scalar_multiply /* 07B2AC 7F04673C 8FA50074 */ lw $a1, 0x74($sp) /* 07B2B0 7F046740 C60C00C8 */ lwc1 $f12, 0xc8($s0) /* 07B2B4 7F046744 0FC163DB */ jal matrix_column_3_scalar_multiply_2 /* 07B2B8 7F046748 8FA50074 */ lw $a1, 0x74($sp) /* 07B2BC 7F04674C 00009025 */ move $s2, $zero /* 07B2C0 7F046750 C60A0004 */ lwc1 $f10, 4($s0) .Ljp7F046754: /* 07B2C4 7F046754 460AB032 */ c.eq.s $f22, $f10 /* 07B2C8 7F046758 00000000 */ nop /* 07B2CC 7F04675C 4502000F */ bc1fl .Ljp7F04679C /* 07B2D0 7F046760 8E080000 */ lw $t0, ($s0) /* 07B2D4 7F046764 C604000C */ lwc1 $f4, 0xc($s0) /* 07B2D8 7F046768 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07B2DC 7F04676C 4604B032 */ c.eq.s $f22, $f4 /* 07B2E0 7F046770 00000000 */ nop /* 07B2E4 7F046774 45020009 */ bc1fl .Ljp7F04679C /* 07B2E8 7F046778 8E080000 */ lw $t0, ($s0) /* 07B2EC 7F04677C C6080060 */ lwc1 $f8, 0x60($s0) /* 07B2F0 7F046780 44813000 */ mtc1 $at, $f6 /* 07B2F4 7F046784 00000000 */ nop /* 07B2F8 7F046788 4606403C */ c.lt.s $f8, $f6 /* 07B2FC 7F04678C 00000000 */ nop /* 07B300 7F046790 45000088 */ bc1f .Ljp7F0469B4 /* 07B304 7F046794 00000000 */ nop /* 07B308 7F046798 8E080000 */ lw $t0, ($s0) .Ljp7F04679C: /* 07B30C 7F04679C 02202025 */ move $a0, $s1 /* 07B310 7F0467A0 262B0018 */ addiu $t3, $s1, 0x18 /* 07B314 7F0467A4 31090008 */ andi $t1, $t0, 8 /* 07B318 7F0467A8 15200082 */ bnez $t1, .Ljp7F0469B4 /* 07B31C 7F0467AC 00000000 */ nop /* 07B320 7F0467B0 AFAB0074 */ sw $t3, 0x74($sp) /* 07B324 7F0467B4 0FC100DE */ jal chrobjGetBboxFromObjectRecord /* 07B328 7F0467B8 00009025 */ move $s2, $zero /* 07B32C 7F0467BC 3C038005 */ lui $v1, %hi(g_ClockTimer) # $v1, 0x8005 /* 07B330 7F0467C0 8C6383A4 */ lw $v1, %lo(g_ClockTimer)($v1) /* 07B334 7F0467C4 AFA20554 */ sw $v0, 0x554($sp) /* 07B338 7F0467C8 00002025 */ move $a0, $zero /* 07B33C 7F0467CC 18600048 */ blez $v1, .Ljp7F0468F0 /* 07B340 7F0467D0 3C018005 */ lui $at, %hi(D_80052AB4) # $at, 0x8005 /* 07B344 7F0467D4 C42E2AE4 */ lwc1 $f14, %lo(D_80052AB4)($at) /* 07B348 7F0467D8 C7AA069C */ lwc1 $f10, 0x69c($sp) .Ljp7F0467DC: /* 07B34C 7F0467DC C6040004 */ lwc1 $f4, 4($s0) /* 07B350 7F0467E0 C7A606A4 */ lwc1 $f6, 0x6a4($sp) /* 07B354 7F0467E4 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07B358 7F0467E8 46045200 */ add.s $f8, $f10, $f4 /* 07B35C 7F0467EC E7A8069C */ swc1 $f8, 0x69c($sp) /* 07B360 7F0467F0 C60A000C */ lwc1 $f10, 0xc($s0) /* 07B364 7F0467F4 460A3100 */ add.s $f4, $f6, $f10 /* 07B368 7F0467F8 44813000 */ mtc1 $at, $f6 /* 07B36C 7F0467FC E7A406A4 */ swc1 $f4, 0x6a4($sp) /* 07B370 7F046800 C6080060 */ lwc1 $f8, 0x60($s0) /* 07B374 7F046804 4608303E */ c.le.s $f6, $f8 /* 07B378 7F046808 00000000 */ nop /* 07B37C 7F04680C 45020035 */ bc1fl .Ljp7F0468E4 /* 07B380 7F046810 24840001 */ addiu $a0, $a0, 1 /* 07B384 7F046814 C60A0094 */ lwc1 $f10, 0x94($s0) /* 07B388 7F046818 460AB03C */ c.lt.s $f22, $f10 /* 07B38C 7F04681C 00000000 */ nop /* 07B390 7F046820 45020027 */ bc1fl .Ljp7F0468C0 /* 07B394 7F046824 C6060004 */ lwc1 $f6, 4($s0) /* 07B398 7F046828 C600000C */ lwc1 $f0, 0xc($s0) /* 07B39C 7F04682C C6020004 */ lwc1 $f2, 4($s0) /* 07B3A0 7F046830 AFA40550 */ sw $a0, 0x550($sp) /* 07B3A4 7F046834 46000102 */ mul.s $f4, $f0, $f0 /* 07B3A8 7F046838 00000000 */ nop /* 07B3AC 7F04683C 46021202 */ mul.s $f8, $f2, $f2 /* 07B3B0 7F046840 0C007E08 */ jal sqrtf /* 07B3B4 7F046844 46082300 */ add.s $f12, $f4, $f8 /* 07B3B8 7F046848 3C018005 */ lui $at, %hi(D_80052AB8) # $at, 0x8005 /* 07B3BC 7F04684C C42E2AE8 */ lwc1 $f14, %lo(D_80052AB8)($at) /* 07B3C0 7F046850 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8005 /* 07B3C4 7F046854 C42A83B4 */ lwc1 $f10, %lo(g_GlobalTimerDelta)($at) /* 07B3C8 7F046858 C6060094 */ lwc1 $f6, 0x94($s0) /* 07B3CC 7F04685C 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07B3D0 7F046860 44814000 */ mtc1 $at, $f8 /* 07B3D4 7F046864 460A3102 */ mul.s $f4, $f6, $f10 /* 07B3D8 7F046868 8FA40550 */ lw $a0, 0x550($sp) /* 07B3DC 7F04686C 3C038005 */ lui $v1, %hi(g_ClockTimer) # $v1, 0x8005 /* 07B3E0 7F046870 46002303 */ div.s $f12, $f4, $f0 /* 07B3E4 7F046874 460C403E */ c.le.s $f8, $f12 /* 07B3E8 7F046878 00000000 */ nop /* 07B3EC 7F04687C 45020005 */ bc1fl .Ljp7F046894 /* 07B3F0 7F046880 C6020004 */ lwc1 $f2, 4($s0) /* 07B3F4 7F046884 E6160004 */ swc1 $f22, 4($s0) /* 07B3F8 7F046888 1000000A */ b .Ljp7F0468B4 /* 07B3FC 7F04688C E616000C */ swc1 $f22, 0xc($s0) /* 07B400 7F046890 C6020004 */ lwc1 $f2, 4($s0) .Ljp7F046894: /* 07B404 7F046894 C600000C */ lwc1 $f0, 0xc($s0) /* 07B408 7F046898 460C1182 */ mul.s $f6, $f2, $f12 /* 07B40C 7F04689C 00000000 */ nop /* 07B410 7F0468A0 460C0102 */ mul.s $f4, $f0, $f12 /* 07B414 7F0468A4 46061281 */ sub.s $f10, $f2, $f6 /* 07B418 7F0468A8 46040201 */ sub.s $f8, $f0, $f4 /* 07B41C 7F0468AC E60A0004 */ swc1 $f10, 4($s0) /* 07B420 7F0468B0 E608000C */ swc1 $f8, 0xc($s0) .Ljp7F0468B4: /* 07B424 7F0468B4 1000000A */ b .Ljp7F0468E0 /* 07B428 7F0468B8 8C6383A4 */ lw $v1, %lo(g_ClockTimer)($v1) /* 07B42C 7F0468BC C6060004 */ lwc1 $f6, 4($s0) .Ljp7F0468C0: /* 07B430 7F0468C0 C604000C */ lwc1 $f4, 0xc($s0) /* 07B434 7F0468C4 3C038005 */ lui $v1, %hi(g_ClockTimer) # $v1, 0x8005 /* 07B438 7F0468C8 460E3282 */ mul.s $f10, $f6, $f14 /* 07B43C 7F0468CC 00000000 */ nop /* 07B440 7F0468D0 460E2202 */ mul.s $f8, $f4, $f14 /* 07B444 7F0468D4 E60A0004 */ swc1 $f10, 4($s0) /* 07B448 7F0468D8 E608000C */ swc1 $f8, 0xc($s0) /* 07B44C 7F0468DC 8C6383A4 */ lw $v1, %lo(g_ClockTimer)($v1) .Ljp7F0468E0: /* 07B450 7F0468E0 24840001 */ addiu $a0, $a0, 1 .Ljp7F0468E4: /* 07B454 7F0468E4 0083082A */ slt $at, $a0, $v1 /* 07B458 7F0468E8 5420FFBC */ bnezl $at, .Ljp7F0467DC /* 07B45C 7F0468EC C7AA069C */ lwc1 $f10, 0x69c($sp) .Ljp7F0468F0: /* 07B460 7F0468F0 02202025 */ move $a0, $s1 /* 07B464 7F0468F4 27A5069C */ addiu $a1, $sp, 0x69c /* 07B468 7F0468F8 27A60538 */ addiu $a2, $sp, 0x538 /* 07B46C 7F0468FC 27A70544 */ addiu $a3, $sp, 0x544 /* 07B470 7F046900 AFA00010 */ sw $zero, 0x10($sp) /* 07B474 7F046904 0FC10C6D */ jal sub_GAME_7F042EB4 /* 07B478 7F046908 AFA00014 */ sw $zero, 0x14($sp) /* 07B47C 7F04690C 240C0001 */ li $t4, 1 /* 07B480 7F046910 AFAC0698 */ sw $t4, 0x698($sp) /* 07B484 7F046914 8E660010 */ lw $a2, 0x10($s3) /* 07B488 7F046918 8E650008 */ lw $a1, 8($s3) /* 07B48C 7F04691C 0FC2CD48 */ jal stanGetPositionYValue /* 07B490 7F046920 8E640014 */ lw $a0, 0x14($s3) /* 07B494 7F046924 46000506 */ mov.s $f20, $f0 /* 07B498 7F046928 8FA40554 */ lw $a0, 0x554($sp) /* 07B49C 7F04692C 0FC0FB2F */ jal chrpropSumMatrixPosY /* 07B4A0 7F046930 8FA50074 */ lw $a1, 0x74($sp) /* 07B4A4 7F046934 3C018005 */ lui $at, %hi(D_80052ABC) # $at, 0x8005 /* 07B4A8 7F046938 C42E2AEC */ lwc1 $f14, %lo(D_80052ABC)($at) /* 07B4AC 7F04693C 4600A181 */ sub.s $f6, $f20, $f0 /* 07B4B0 7F046940 3C014080 */ li $at, 0x40800000 # 4.000000 /* 07B4B4 7F046944 44815000 */ mtc1 $at, $f10 /* 07B4B8 7F046948 3C018005 */ lui $at, %hi(D_80052AC0) # $at, 0x8005 /* 07B4BC 7F04694C 460A3300 */ add.s $f12, $f6, $f10 /* 07B4C0 7F046950 E66C000C */ swc1 $f12, 0xc($s3) /* 07B4C4 7F046954 E62C005C */ swc1 $f12, 0x5c($s1) /* 07B4C8 7F046958 C6020004 */ lwc1 $f2, 4($s0) /* 07B4CC 7F04695C 460E103C */ c.lt.s $f2, $f14 /* 07B4D0 7F046960 00000000 */ nop /* 07B4D4 7F046964 45000013 */ bc1f .Ljp7F0469B4 /* 07B4D8 7F046968 00000000 */ nop /* 07B4DC 7F04696C C4242AF0 */ lwc1 $f4, %lo(D_80052AC0)($at) /* 07B4E0 7F046970 4602203C */ c.lt.s $f4, $f2 /* 07B4E4 7F046974 00000000 */ nop /* 07B4E8 7F046978 4500000E */ bc1f .Ljp7F0469B4 /* 07B4EC 7F04697C 00000000 */ nop /* 07B4F0 7F046980 C600000C */ lwc1 $f0, 0xc($s0) /* 07B4F4 7F046984 3C018005 */ lui $at, %hi(D_80052AC4) # $at, 0x8005 /* 07B4F8 7F046988 460E003C */ c.lt.s $f0, $f14 /* 07B4FC 7F04698C 00000000 */ nop /* 07B500 7F046990 45000008 */ bc1f .Ljp7F0469B4 /* 07B504 7F046994 00000000 */ nop /* 07B508 7F046998 C4282AF4 */ lwc1 $f8, %lo(D_80052AC4)($at) /* 07B50C 7F04699C 4600403C */ c.lt.s $f8, $f0 /* 07B510 7F0469A0 00000000 */ nop /* 07B514 7F0469A4 45000003 */ bc1f .Ljp7F0469B4 /* 07B518 7F0469A8 00000000 */ nop /* 07B51C 7F0469AC E616000C */ swc1 $f22, 0xc($s0) /* 07B520 7F0469B0 E6160004 */ swc1 $f22, 4($s0) .Ljp7F0469B4: /* 07B524 7F0469B4 16400005 */ bnez $s2, .Ljp7F0469CC /* 07B528 7F0469B8 00000000 */ nop /* 07B52C 7F0469BC 8E0E0000 */ lw $t6, ($s0) /* 07B530 7F0469C0 31CA0008 */ andi $t2, $t6, 8 /* 07B534 7F0469C4 51400016 */ beql $t2, $zero, .Ljp7F046A20 /* 07B538 7F0469C8 8FAB0698 */ lw $t3, 0x698($sp) .Ljp7F0469CC: /* 07B53C 7F0469CC 0FC0FF9C */ jal projectileFree /* 07B540 7F0469D0 02002025 */ move $a0, $s0 /* 07B544 7F0469D4 8E2D0064 */ lw $t5, 0x64($s1) /* 07B548 7F0469D8 2401FF7F */ li $at, -129 /* 07B54C 7F0469DC AE20006C */ sw $zero, 0x6c($s1) /* 07B550 7F0469E0 01A17824 */ and $t7, $t5, $at /* 07B554 7F0469E4 AE2F0064 */ sw $t7, 0x64($s1) /* 07B558 7F0469E8 92620001 */ lbu $v0, 1($s3) /* 07B55C 7F0469EC 30590008 */ andi $t9, $v0, 8 /* 07B560 7F0469F0 13200002 */ beqz $t9, .Ljp7F0469FC /* 07B564 7F0469F4 34580010 */ ori $t8, $v0, 0x10 /* 07B568 7F0469F8 A2780001 */ sb $t8, 1($s3) .Ljp7F0469FC: /* 07B56C 7F0469FC 92280003 */ lbu $t0, 3($s1) /* 07B570 7F046A00 24010008 */ li $at, 8 /* 07B574 7F046A04 55010006 */ bnel $t0, $at, .Ljp7F046A20 /* 07B578 7F046A08 8FAB0698 */ lw $t3, 0x698($sp) /* 07B57C 7F046A0C 8E690014 */ lw $t1, 0x14($s3) /* 07B580 7F046A10 82240080 */ lb $a0, 0x80($s1) /* 07B584 7F046A14 0FC15F41 */ jal objectivestatusCheckDeposit /* 07B588 7F046A18 91250003 */ lbu $a1, 3($t1) .Ljp7F046A1C: /* 07B58C 7F046A1C 8FAB0698 */ lw $t3, 0x698($sp) .Ljp7F046A20: /* 07B590 7F046A20 1160000B */ beqz $t3, .Ljp7F046A50 /* 07B594 7F046A24 262C0058 */ addiu $t4, $s1, 0x58 /* 07B598 7F046A28 AFAC0074 */ sw $t4, 0x74($sp) /* 07B59C 7F046A2C 0FC101E1 */ jal chrobjCollisionRelated /* 07B5A0 7F046A30 02202025 */ move $a0, $s1 /* 07B5A4 7F046A34 0FC15C68 */ jal setupUpdateObjectRoomPosition /* 07B5A8 7F046A38 02202025 */ move $a0, $s1 /* 07B5AC 7F046A3C 8E240010 */ lw $a0, 0x10($s1) /* 07B5B0 7F046A40 0FC1016D */ jal sub_GAME_7F0402B4 /* 07B5B4 7F046A44 2625007C */ addiu $a1, $s1, 0x7c /* 07B5B8 7F046A48 0FC14832 */ jal detonate_proxmine_In_range /* 07B5BC 7F046A4C 8FA40074 */ lw $a0, 0x74($sp) .Ljp7F046A50: /* 07B5C0 7F046A50 92220003 */ lbu $v0, 3($s1) /* 07B5C4 7F046A54 24010001 */ li $at, 1 /* 07B5C8 7F046A58 54410052 */ bnel $v0, $at, .Ljp7F046BA4 /* 07B5CC 7F046A5C 24010006 */ li $at, 6 /* 07B5D0 7F046A60 8E700004 */ lw $s0, 4($s3) /* 07B5D4 7F046A64 C60600B4 */ lwc1 $f6, 0xb4($s0) /* 07B5D8 7F046A68 E7A60684 */ swc1 $f6, 0x684($sp) /* 07B5DC 7F046A6C 8E0200EC */ lw $v0, 0xec($s0) /* 07B5E0 7F046A70 58400013 */ blezl $v0, .Ljp7F046AC0 /* 07B5E4 7F046A74 820800BC */ lb $t0, 0xbc($s0) /* 07B5E8 7F046A78 820E00BC */ lb $t6, 0xbc($s0) /* 07B5EC 7F046A7C 55C00010 */ bnezl $t6, .Ljp7F046AC0 /* 07B5F0 7F046A80 820800BC */ lb $t0, 0xbc($s0) /* 07B5F4 7F046A84 8E0A0008 */ lw $t2, 8($s0) /* 07B5F8 7F046A88 3C0F8005 */ lui $t7, %hi(g_GlobalTimer) # $t7, 0x8005 /* 07B5FC 7F046A8C 000A6800 */ sll $t5, $t2, 0 /* 07B600 7F046A90 05A2000B */ bltzl $t5, .Ljp7F046AC0 /* 07B604 7F046A94 820800BC */ lb $t0, 0xbc($s0) /* 07B608 7F046A98 8DEF83AC */ lw $t7, %lo(g_GlobalTimer)($t7) /* 07B60C 7F046A9C 8E1900A0 */ lw $t9, 0xa0($s0) /* 07B610 7F046AA0 02002025 */ move $a0, $s0 /* 07B614 7F046AA4 01F9C023 */ subu $t8, $t7, $t9 /* 07B618 7F046AA8 0058082A */ slt $at, $v0, $t8 /* 07B61C 7F046AAC 50200004 */ beql $at, $zero, .Ljp7F046AC0 /* 07B620 7F046AB0 820800BC */ lb $t0, 0xbc($s0) /* 07B624 7F046AB4 0FC153A1 */ jal doorActivate /* 07B628 7F046AB8 24050002 */ li $a1, 2 /* 07B62C 7F046ABC 820800BC */ lb $t0, 0xbc($s0) .Ljp7F046AC0: /* 07B630 7F046AC0 24010003 */ li $at, 3 /* 07B634 7F046AC4 5501001B */ bnel $t0, $at, .Ljp7F046B34 /* 07B638 7F046AC8 960B009A */ lhu $t3, 0x9a($s0) /* 07B63C 7F046ACC 8E0200C8 */ lw $v0, 0xc8($s0) /* 07B640 7F046AD0 24030001 */ li $v1, 1 /* 07B644 7F046AD4 02002025 */ move $a0, $s0 /* 07B648 7F046AD8 10400011 */ beqz $v0, .Ljp7F046B20 /* 07B64C 7F046ADC 00000000 */ nop /* 07B650 7F046AE0 1050000F */ beq $v0, $s0, .Ljp7F046B20 /* 07B654 7F046AE4 00000000 */ nop /* 07B658 7F046AE8 804900BC */ lb $t1, 0xbc($v0) .Ljp7F046AEC: /* 07B65C 7F046AEC 55200007 */ bnezl $t1, .Ljp7F046B0C /* 07B660 7F046AF0 00001825 */ move $v1, $zero /* 07B664 7F046AF4 C44A00B4 */ lwc1 $f10, 0xb4($v0) /* 07B668 7F046AF8 460AB03C */ c.lt.s $f22, $f10 /* 07B66C 7F046AFC 00000000 */ nop /* 07B670 7F046B00 45020003 */ bc1fl .Ljp7F046B10 /* 07B674 7F046B04 8C4200C8 */ lw $v0, 0xc8($v0) /* 07B678 7F046B08 00001825 */ move $v1, $zero .Ljp7F046B0C: /* 07B67C 7F046B0C 8C4200C8 */ lw $v0, 0xc8($v0) .Ljp7F046B10: /* 07B680 7F046B10 10400003 */ beqz $v0, .Ljp7F046B20 /* 07B684 7F046B14 00000000 */ nop /* 07B688 7F046B18 5450FFF4 */ bnel $v0, $s0, .Ljp7F046AEC /* 07B68C 7F046B1C 804900BC */ lb $t1, 0xbc($v0) .Ljp7F046B20: /* 07B690 7F046B20 50600004 */ beql $v1, $zero, .Ljp7F046B34 /* 07B694 7F046B24 960B009A */ lhu $t3, 0x9a($s0) /* 07B698 7F046B28 0FC15368 */ jal doorSetOpenState /* 07B69C 7F046B2C 24050001 */ li $a1, 1 /* 07B6A0 7F046B30 960B009A */ lhu $t3, 0x9a($s0) .Ljp7F046B34: /* 07B6A4 7F046B34 24010008 */ li $at, 8 /* 07B6A8 7F046B38 1561000B */ bne $t3, $at, .Ljp7F046B68 /* 07B6AC 7F046B3C 00000000 */ nop /* 07B6B0 7F046B40 0FC153C7 */ jal doorIsClosed /* 07B6B4 7F046B44 02002025 */ move $a0, $s0 /* 07B6B8 7F046B48 10400007 */ beqz $v0, .Ljp7F046B68 /* 07B6BC 7F046B4C 00000000 */ nop /* 07B6C0 7F046B50 0FC0FA86 */ jal doorIsPadlockFree /* 07B6C4 7F046B54 02002025 */ move $a0, $s0 /* 07B6C8 7F046B58 10400003 */ beqz $v0, .Ljp7F046B68 /* 07B6CC 7F046B5C 00000000 */ nop /* 07B6D0 7F046B60 0FC157A6 */ jal doorActivateWrapper /* 07B6D4 7F046B64 02602025 */ move $a0, $s3 .Ljp7F046B68: /* 07B6D8 7F046B68 3C0E8005 */ lui $t6, %hi(g_GlobalTimer) # $t6, 0x8005 /* 07B6DC 7F046B6C 8DCE83AC */ lw $t6, %lo(g_GlobalTimer)($t6) /* 07B6E0 7F046B70 8E0C00FC */ lw $t4, 0xfc($s0) /* 07B6E4 7F046B74 3C0A8005 */ lui $t2, %hi(g_ClockTimer) # $t2, 0x8005 /* 07B6E8 7F046B78 018E082A */ slt $at, $t4, $t6 /* 07B6EC 7F046B7C 14200004 */ bnez $at, .Ljp7F046B90 /* 07B6F0 7F046B80 00000000 */ nop /* 07B6F4 7F046B84 8D4A83A4 */ lw $t2, %lo(g_ClockTimer)($t2) /* 07B6F8 7F046B88 554006AA */ bnezl $t2, .Ljp7F048634 /* 07B6FC 7F046B8C 92220003 */ lbu $v0, 3($s1) .Ljp7F046B90: /* 07B700 7F046B90 0FC1552C */ jal door7F054FB4 /* 07B704 7F046B94 02002025 */ move $a0, $s0 /* 07B708 7F046B98 100006A6 */ b .Ljp7F048634 /* 07B70C 7F046B9C 92220003 */ lbu $v0, 3($s1) /* 07B710 7F046BA0 24010006 */ li $at, 6 .Ljp7F046BA4: /* 07B714 7F046BA4 54410130 */ bnel $v0, $at, .Ljp7F047068 /* 07B718 7F046BA8 2401000D */ li $at, 13 /* 07B71C 7F046BAC 8E2D0008 */ lw $t5, 8($s1) /* 07B720 7F046BB0 000D78C0 */ sll $t7, $t5, 3 /* 07B724 7F046BB4 05E2012C */ bltzl $t7, .Ljp7F047068 /* 07B728 7F046BB8 2401000D */ li $at, 13 /* 07B72C 7F046BBC 8E700004 */ lw $s0, 4($s3) /* 07B730 7F046BC0 8E1900D4 */ lw $t9, 0xd4($s0) /* 07B734 7F046BC4 53200004 */ beql $t9, $zero, .Ljp7F046BD8 /* 07B738 7F046BC8 C61200D0 */ lwc1 $f18, 0xd0($s0) /* 07B73C 7F046BCC 10000002 */ b .Ljp7F046BD8 /* 07B740 7F046BD0 C61200CC */ lwc1 $f18, 0xcc($s0) /* 07B744 7F046BD4 C61200D0 */ lwc1 $f18, 0xd0($s0) .Ljp7F046BD8: /* 07B748 7F046BD8 0FC2279B */ jal get_curplayer_positiondata /* 07B74C 7F046BDC E7B2051C */ swc1 $f18, 0x51c($sp) /* 07B750 7F046BE0 AFA20518 */ sw $v0, 0x518($sp) /* 07B754 7F046BE4 C6280058 */ lwc1 $f8, 0x58($s1) /* 07B758 7F046BE8 C4440008 */ lwc1 $f4, 8($v0) /* 07B75C 7F046BEC C60000E8 */ lwc1 $f0, 0xe8($s0) /* 07B760 7F046BF0 C62A005C */ lwc1 $f10, 0x5c($s1) /* 07B764 7F046BF4 46082301 */ sub.s $f12, $f4, $f8 /* 07B768 7F046BF8 C446000C */ lwc1 $f6, 0xc($v0) /* 07B76C 7F046BFC C6280060 */ lwc1 $f8, 0x60($s1) /* 07B770 7F046C00 4600B03C */ c.lt.s $f22, $f0 /* 07B774 7F046C04 C4440010 */ lwc1 $f4, 0x10($v0) /* 07B778 7F046C08 C7B2051C */ lwc1 $f18, 0x51c($sp) /* 07B77C 7F046C0C 24120001 */ li $s2, 1 /* 07B780 7F046C10 460A3081 */ sub.s $f2, $f6, $f10 /* 07B784 7F046C14 4500000E */ bc1f .Ljp7F046C50 /* 07B788 7F046C18 46082381 */ sub.s $f14, $f4, $f8 /* 07B78C 7F046C1C 46000182 */ mul.s $f6, $f0, $f0 /* 07B790 7F046C20 00000000 */ nop /* 07B794 7F046C24 460C6282 */ mul.s $f10, $f12, $f12 /* 07B798 7F046C28 00000000 */ nop /* 07B79C 7F046C2C 46021102 */ mul.s $f4, $f2, $f2 /* 07B7A0 7F046C30 46045200 */ add.s $f8, $f10, $f4 /* 07B7A4 7F046C34 460E7282 */ mul.s $f10, $f14, $f14 /* 07B7A8 7F046C38 460A4100 */ add.s $f4, $f8, $f10 /* 07B7AC 7F046C3C 4604303C */ c.lt.s $f6, $f4 /* 07B7B0 7F046C40 00000000 */ nop /* 07B7B4 7F046C44 45000002 */ bc1f .Ljp7F046C50 /* 07B7B8 7F046C48 00000000 */ nop /* 07B7BC 7F046C4C 00009025 */ move $s2, $zero .Ljp7F046C50: /* 07B7C0 7F046C50 8E380008 */ lw $t8, 8($s1) /* 07B7C4 7F046C54 00184080 */ sll $t0, $t8, 2 /* 07B7C8 7F046C58 05010002 */ bgez $t0, .Ljp7F046C64 /* 07B7CC 7F046C5C 00000000 */ nop /* 07B7D0 7F046C60 00009025 */ move $s2, $zero .Ljp7F046C64: /* 07B7D4 7F046C64 1240003A */ beqz $s2, .Ljp7F046D50 /* 07B7D8 7F046C68 00000000 */ nop /* 07B7DC 7F046C6C 0FC16BD4 */ jal atan2f /* 07B7E0 7F046C70 E7B2051C */ swc1 $f18, 0x51c($sp) /* 07B7E4 7F046C74 C60200C8 */ lwc1 $f2, 0xc8($s0) /* 07B7E8 7F046C78 C7B2051C */ lwc1 $f18, 0x51c($sp) /* 07B7EC 7F046C7C 3C018005 */ lui $at, %hi(D_80052ACC) /* 07B7F0 7F046C80 4616103C */ c.lt.s $f2, $f22 /* 07B7F4 7F046C84 00000000 */ nop /* 07B7F8 7F046C88 45000005 */ bc1f .Ljp7F046CA0 /* 07B7FC 7F046C8C 00000000 */ nop /* 07B800 7F046C90 3C018005 */ lui $at, %hi(D_80052AC8) # $at, 0x8005 /* 07B804 7F046C94 C4342AF8 */ lwc1 $f20, %lo(D_80052AC8)($at) /* 07B808 7F046C98 10000007 */ b .Ljp7F046CB8 /* 07B80C 7F046C9C 46141080 */ add.s $f2, $f2, $f20 .Ljp7F046CA0: /* 07B810 7F046CA0 C4342AFC */ lwc1 $f20, %lo(D_80052ACC)($at) /* 07B814 7F046CA4 4602A03E */ c.le.s $f20, $f2 /* 07B818 7F046CA8 00000000 */ nop /* 07B81C 7F046CAC 45020003 */ bc1fl .Ljp7F046CBC /* 07B820 7F046CB0 C60800C4 */ lwc1 $f8, 0xc4($s0) /* 07B824 7F046CB4 46141081 */ sub.s $f2, $f2, $f20 .Ljp7F046CB8: /* 07B828 7F046CB8 C60800C4 */ lwc1 $f8, 0xc4($s0) .Ljp7F046CBC: /* 07B82C 7F046CBC 3C018005 */ lui $at, %hi(D_80052AD0) # $at, 0x8005 /* 07B830 7F046CC0 46081080 */ add.s $f2, $f2, $f8 /* 07B834 7F046CC4 4602A03E */ c.le.s $f20, $f2 /* 07B838 7F046CC8 00000000 */ nop /* 07B83C 7F046CCC 45020003 */ bc1fl .Ljp7F046CDC /* 07B840 7F046CD0 4602003C */ c.lt.s $f0, $f2 /* 07B844 7F046CD4 46141081 */ sub.s $f2, $f2, $f20 /* 07B848 7F046CD8 4602003C */ c.lt.s $f0, $f2 .Ljp7F046CDC: /* 07B84C 7F046CDC 46020381 */ sub.s $f14, $f0, $f2 /* 07B850 7F046CE0 45000002 */ bc1f .Ljp7F046CEC /* 07B854 7F046CE4 46007306 */ mov.s $f12, $f14 /* 07B858 7F046CE8 46147300 */ add.s $f12, $f14, $f20 .Ljp7F046CEC: /* 07B85C 7F046CEC C4202B00 */ lwc1 $f0, %lo(D_80052AD0)($at) /* 07B860 7F046CF0 3C018005 */ lui $at, %hi(D_80052AD4) # $at, 0x8005 /* 07B864 7F046CF4 46006301 */ sub.s $f12, $f12, $f0 /* 07B868 7F046CF8 4616603C */ c.lt.s $f12, $f22 /* 07B86C 7F046CFC 00000000 */ nop /* 07B870 7F046D00 45020003 */ bc1fl .Ljp7F046D10 /* 07B874 7F046D04 460C003C */ c.lt.s $f0, $f12 /* 07B878 7F046D08 46146300 */ add.s $f12, $f12, $f20 /* 07B87C 7F046D0C 460C003C */ c.lt.s $f0, $f12 .Ljp7F046D10: /* 07B880 7F046D10 00000000 */ nop /* 07B884 7F046D14 45000002 */ bc1f .Ljp7F046D20 /* 07B888 7F046D18 00000000 */ nop /* 07B88C 7F046D1C 46146301 */ sub.s $f12, $f12, $f20 .Ljp7F046D20: /* 07B890 7F046D20 C42A2B04 */ lwc1 $f10, %lo(D_80052AD4)($at) /* 07B894 7F046D24 3C018005 */ lui $at, %hi(D_80052AD8) /* 07B898 7F046D28 460C503C */ c.lt.s $f10, $f12 /* 07B89C 7F046D2C 00000000 */ nop /* 07B8A0 7F046D30 45030007 */ bc1tl .Ljp7F046D50 /* 07B8A4 7F046D34 00009025 */ move $s2, $zero /* 07B8A8 7F046D38 C4262B08 */ lwc1 $f6, %lo(D_80052AD8)($at) /* 07B8AC 7F046D3C 4606603C */ c.lt.s $f12, $f6 /* 07B8B0 7F046D40 00000000 */ nop /* 07B8B4 7F046D44 45000002 */ bc1f .Ljp7F046D50 /* 07B8B8 7F046D48 00000000 */ nop /* 07B8BC 7F046D4C 00009025 */ move $s2, $zero .Ljp7F046D50: /* 07B8C0 7F046D50 12400034 */ beqz $s2, .Ljp7F046E24 /* 07B8C4 7F046D54 00002825 */ move $a1, $zero /* 07B8C8 7F046D58 8E690014 */ lw $t1, 0x14($s3) /* 07B8CC 7F046D5C E7B2051C */ swc1 $f18, 0x51c($sp) /* 07B8D0 7F046D60 8FA40518 */ lw $a0, 0x518($sp) /* 07B8D4 7F046D64 0FC229DD */ jal bondviewUpdateGuardTankFlagsRelated /* 07B8D8 7F046D68 AFA904F4 */ sw $t1, 0x4f4($sp) /* 07B8DC 7F046D6C 8FA20518 */ lw $v0, 0x518($sp) /* 07B8E0 7F046D70 3C0142C8 */ li $at, 0x42C80000 # 100.000000 /* 07B8E4 7F046D74 8E650008 */ lw $a1, 8($s3) /* 07B8E8 7F046D78 C4440010 */ lwc1 $f4, 0x10($v0) /* 07B8EC 7F046D7C 8E660010 */ lw $a2, 0x10($s3) /* 07B8F0 7F046D80 8C470008 */ lw $a3, 8($v0) /* 07B8F4 7F046D84 44814000 */ mtc1 $at, $f8 /* 07B8F8 7F046D88 44815000 */ mtc1 $at, $f10 /* 07B8FC 7F046D8C 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07B900 7F046D90 44813000 */ mtc1 $at, $f6 /* 07B904 7F046D94 240B001B */ li $t3, 27 /* 07B908 7F046D98 AFAB0014 */ sw $t3, 0x14($sp) /* 07B90C 7F046D9C E7B60020 */ swc1 $f22, 0x20($sp) /* 07B910 7F046DA0 27A404F4 */ addiu $a0, $sp, 0x4f4 /* 07B914 7F046DA4 E7A40010 */ swc1 $f4, 0x10($sp) /* 07B918 7F046DA8 E7A80018 */ swc1 $f8, 0x18($sp) /* 07B91C 7F046DAC E7AA001C */ swc1 $f10, 0x1c($sp) /* 07B920 7F046DB0 0FC2C675 */ jal stanTestLineUnobstructed /* 07B924 7F046DB4 E7A60024 */ swc1 $f6, 0x24($sp) /* 07B928 7F046DB8 10400015 */ beqz $v0, .Ljp7F046E10 /* 07B92C 7F046DBC C7B2051C */ lwc1 $f18, 0x51c($sp) /* 07B930 7F046DC0 3C0E8005 */ lui $t6, %hi(g_ClockTimer) # $t6, 0x8005 /* 07B934 7F046DC4 8DCE83A4 */ lw $t6, %lo(g_ClockTimer)($t6) /* 07B938 7F046DC8 8E0C00E0 */ lw $t4, 0xe0($s0) /* 07B93C 7F046DCC 3C014396 */ li $at, 0x43960000 # 300.000000 /* 07B940 7F046DD0 44812000 */ mtc1 $at, $f4 /* 07B944 7F046DD4 018E5021 */ addu $t2, $t4, $t6 /* 07B948 7F046DD8 AE0A00E0 */ sw $t2, 0xe0($s0) /* 07B94C 7F046DDC 3C018003 */ lui $at, %hi(F_80030B14) # $at, 0x8003 /* 07B950 7F046DE0 C4280B54 */ lwc1 $f8, %lo(F_80030B14)($at) /* 07B954 7F046DE4 46082282 */ mul.s $f10, $f4, $f8 /* 07B958 7F046DE8 4600518D */ trunc.w.s $f6, $f10 /* 07B95C 7F046DEC 44193000 */ mfc1 $t9, $f6 /* 07B960 7F046DF0 00000000 */ nop /* 07B964 7F046DF4 0159082A */ slt $at, $t2, $t9 /* 07B968 7F046DF8 54200006 */ bnezl $at, .Ljp7F046E14 /* 07B96C 7F046DFC 8FA40518 */ lw $a0, 0x518($sp) /* 07B970 7F046E00 0FC158B1 */ jal alarmActivate /* 07B974 7F046E04 E7B2051C */ swc1 $f18, 0x51c($sp) /* 07B978 7F046E08 C7B2051C */ lwc1 $f18, 0x51c($sp) /* 07B97C 7F046E0C AE0000E0 */ sw $zero, 0xe0($s0) .Ljp7F046E10: /* 07B980 7F046E10 8FA40518 */ lw $a0, 0x518($sp) .Ljp7F046E14: /* 07B984 7F046E14 24050001 */ li $a1, 1 /* 07B988 7F046E18 0FC229DD */ jal bondviewUpdateGuardTankFlagsRelated /* 07B98C 7F046E1C E7B2051C */ swc1 $f18, 0x51c($sp) /* 07B990 7F046E20 C7B2051C */ lwc1 $f18, 0x51c($sp) .Ljp7F046E24: /* 07B994 7F046E24 C60E00C8 */ lwc1 $f14, 0xc8($s0) /* 07B998 7F046E28 4612703C */ c.lt.s $f14, $f18 /* 07B99C 7F046E2C 00000000 */ nop /* 07B9A0 7F046E30 45020047 */ bc1fl .Ljp7F046F50 /* 07B9A4 7F046E34 C60000D8 */ lwc1 $f0, 0xd8($s0) /* 07B9A8 7F046E38 C60000D8 */ lwc1 $f0, 0xd8($s0) /* 07B9AC 7F046E3C 3C018005 */ lui $at, %hi(D_80052AE0) # $at, 0x8005 /* 07B9B0 7F046E40 C4302B10 */ lwc1 $f16, %lo(D_80052AE0)($at) /* 07B9B4 7F046E44 46000102 */ mul.s $f4, $f0, $f0 /* 07B9B8 7F046E48 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 07B9BC 7F046E4C 44814000 */ mtc1 $at, $f8 /* 07B9C0 7F046E50 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8005 /* 07B9C4 7F046E54 46082282 */ mul.s $f10, $f4, $f8 /* 07B9C8 7F046E58 46105083 */ div.s $f2, $f10, $f16 /* 07B9CC 7F046E5C 46029181 */ sub.s $f6, $f18, $f2 /* 07B9D0 7F046E60 460E303E */ c.le.s $f6, $f14 /* 07B9D4 7F046E64 00000000 */ nop /* 07B9D8 7F046E68 4502000F */ bc1fl .Ljp7F046EA8 /* 07B9DC 7F046E6C C60C00DC */ lwc1 $f12, 0xdc($s0) /* 07B9E0 7F046E70 C42483B4 */ lwc1 $f4, %lo(g_GlobalTimerDelta)($at) /* 07B9E4 7F046E74 46048202 */ mul.s $f8, $f16, $f4 /* 07B9E8 7F046E78 46080281 */ sub.s $f10, $f0, $f8 /* 07B9EC 7F046E7C E60A00D8 */ swc1 $f10, 0xd8($s0) /* 07B9F0 7F046E80 C60000D8 */ lwc1 $f0, 0xd8($s0) /* 07B9F4 7F046E84 4610003C */ c.lt.s $f0, $f16 /* 07B9F8 7F046E88 00000000 */ nop /* 07B9FC 7F046E8C 45000003 */ bc1f .Ljp7F046E9C /* 07BA00 7F046E90 00000000 */ nop /* 07BA04 7F046E94 E61000D8 */ swc1 $f16, 0xd8($s0) /* 07BA08 7F046E98 C60000D8 */ lwc1 $f0, 0xd8($s0) .Ljp7F046E9C: /* 07BA0C 7F046E9C 1000001D */ b .Ljp7F046F14 /* 07BA10 7F046EA0 C60E00C8 */ lwc1 $f14, 0xc8($s0) /* 07BA14 7F046EA4 C60C00DC */ lwc1 $f12, 0xdc($s0) .Ljp7F046EA8: /* 07BA18 7F046EA8 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8005 /* 07BA1C 7F046EAC 460C003C */ c.lt.s $f0, $f12 /* 07BA20 7F046EB0 00000000 */ nop /* 07BA24 7F046EB4 45000017 */ bc1f .Ljp7F046F14 /* 07BA28 7F046EB8 00000000 */ nop /* 07BA2C 7F046EBC C42683B4 */ lwc1 $f6, %lo(g_GlobalTimerDelta)($at) /* 07BA30 7F046EC0 46068102 */ mul.s $f4, $f16, $f6 /* 07BA34 7F046EC4 46040080 */ add.s $f2, $f0, $f4 /* 07BA38 7F046EC8 4602603C */ c.lt.s $f12, $f2 /* 07BA3C 7F046ECC 00000000 */ nop /* 07BA40 7F046ED0 45000002 */ bc1f .Ljp7F046EDC /* 07BA44 7F046ED4 00000000 */ nop /* 07BA48 7F046ED8 46006086 */ mov.s $f2, $f12 .Ljp7F046EDC: /* 07BA4C 7F046EDC 46021202 */ mul.s $f8, $f2, $f2 /* 07BA50 7F046EE0 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 07BA54 7F046EE4 44815000 */ mtc1 $at, $f10 /* 07BA58 7F046EE8 00000000 */ nop /* 07BA5C 7F046EEC 460A4182 */ mul.s $f6, $f8, $f10 /* 07BA60 7F046EF0 46103103 */ div.s $f4, $f6, $f16 /* 07BA64 7F046EF4 46049201 */ sub.s $f8, $f18, $f4 /* 07BA68 7F046EF8 4608703C */ c.lt.s $f14, $f8 /* 07BA6C 7F046EFC 00000000 */ nop /* 07BA70 7F046F00 45000004 */ bc1f .Ljp7F046F14 /* 07BA74 7F046F04 00000000 */ nop /* 07BA78 7F046F08 E60200D8 */ swc1 $f2, 0xd8($s0) /* 07BA7C 7F046F0C C60000D8 */ lwc1 $f0, 0xd8($s0) /* 07BA80 7F046F10 C60E00C8 */ lwc1 $f14, 0xc8($s0) .Ljp7F046F14: /* 07BA84 7F046F14 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8005 /* 07BA88 7F046F18 C42A83B4 */ lwc1 $f10, %lo(g_GlobalTimerDelta)($at) /* 07BA8C 7F046F1C 460A0182 */ mul.s $f6, $f0, $f10 /* 07BA90 7F046F20 46067100 */ add.s $f4, $f14, $f6 /* 07BA94 7F046F24 E60400C8 */ swc1 $f4, 0xc8($s0) /* 07BA98 7F046F28 C60800C8 */ lwc1 $f8, 0xc8($s0) /* 07BA9C 7F046F2C 4608903E */ c.le.s $f18, $f8 /* 07BAA0 7F046F30 00000000 */ nop /* 07BAA4 7F046F34 450205BF */ bc1fl .Ljp7F048634 /* 07BAA8 7F046F38 92220003 */ lbu $v0, 3($s1) /* 07BAAC 7F046F3C E61200C8 */ swc1 $f18, 0xc8($s0) /* 07BAB0 7F046F40 E61600D8 */ swc1 $f22, 0xd8($s0) /* 07BAB4 7F046F44 100005BA */ b .Ljp7F048630 /* 07BAB8 7F046F48 AE0000D4 */ sw $zero, 0xd4($s0) /* 07BABC 7F046F4C C60000D8 */ lwc1 $f0, 0xd8($s0) .Ljp7F046F50: /* 07BAC0 7F046F50 3C018005 */ lui $at, %hi(D_80052AE4) # $at, 0x8005 /* 07BAC4 7F046F54 C4302B14 */ lwc1 $f16, %lo(D_80052AE4)($at) /* 07BAC8 7F046F58 46000282 */ mul.s $f10, $f0, $f0 /* 07BACC 7F046F5C 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 07BAD0 7F046F60 44813000 */ mtc1 $at, $f6 /* 07BAD4 7F046F64 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8005 /* 07BAD8 7F046F68 24180001 */ li $t8, 1 /* 07BADC 7F046F6C 46065102 */ mul.s $f4, $f10, $f6 /* 07BAE0 7F046F70 46102083 */ div.s $f2, $f4, $f16 /* 07BAE4 7F046F74 46029200 */ add.s $f8, $f18, $f2 /* 07BAE8 7F046F78 4608703E */ c.le.s $f14, $f8 /* 07BAEC 7F046F7C 00000000 */ nop /* 07BAF0 7F046F80 4502000F */ bc1fl .Ljp7F046FC0 /* 07BAF4 7F046F84 C60C00DC */ lwc1 $f12, 0xdc($s0) /* 07BAF8 7F046F88 C42A83B4 */ lwc1 $f10, %lo(g_GlobalTimerDelta)($at) /* 07BAFC 7F046F8C 460A8182 */ mul.s $f6, $f16, $f10 /* 07BB00 7F046F90 46060101 */ sub.s $f4, $f0, $f6 /* 07BB04 7F046F94 E60400D8 */ swc1 $f4, 0xd8($s0) /* 07BB08 7F046F98 C60000D8 */ lwc1 $f0, 0xd8($s0) /* 07BB0C 7F046F9C 4610003C */ c.lt.s $f0, $f16 /* 07BB10 7F046FA0 00000000 */ nop /* 07BB14 7F046FA4 45000003 */ bc1f .Ljp7F046FB4 /* 07BB18 7F046FA8 00000000 */ nop /* 07BB1C 7F046FAC E61000D8 */ swc1 $f16, 0xd8($s0) /* 07BB20 7F046FB0 C60000D8 */ lwc1 $f0, 0xd8($s0) .Ljp7F046FB4: /* 07BB24 7F046FB4 1000001D */ b .Ljp7F04702C /* 07BB28 7F046FB8 C60E00C8 */ lwc1 $f14, 0xc8($s0) /* 07BB2C 7F046FBC C60C00DC */ lwc1 $f12, 0xdc($s0) .Ljp7F046FC0: /* 07BB30 7F046FC0 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8005 /* 07BB34 7F046FC4 460C003C */ c.lt.s $f0, $f12 /* 07BB38 7F046FC8 00000000 */ nop /* 07BB3C 7F046FCC 45000017 */ bc1f .Ljp7F04702C /* 07BB40 7F046FD0 00000000 */ nop /* 07BB44 7F046FD4 C42883B4 */ lwc1 $f8, %lo(g_GlobalTimerDelta)($at) /* 07BB48 7F046FD8 46088282 */ mul.s $f10, $f16, $f8 /* 07BB4C 7F046FDC 460A0080 */ add.s $f2, $f0, $f10 /* 07BB50 7F046FE0 4602603C */ c.lt.s $f12, $f2 /* 07BB54 7F046FE4 00000000 */ nop /* 07BB58 7F046FE8 45000002 */ bc1f .Ljp7F046FF4 /* 07BB5C 7F046FEC 00000000 */ nop /* 07BB60 7F046FF0 46006086 */ mov.s $f2, $f12 .Ljp7F046FF4: /* 07BB64 7F046FF4 46021182 */ mul.s $f6, $f2, $f2 /* 07BB68 7F046FF8 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 07BB6C 7F046FFC 44812000 */ mtc1 $at, $f4 /* 07BB70 7F047000 00000000 */ nop /* 07BB74 7F047004 46043202 */ mul.s $f8, $f6, $f4 /* 07BB78 7F047008 46104283 */ div.s $f10, $f8, $f16 /* 07BB7C 7F04700C 460A9180 */ add.s $f6, $f18, $f10 /* 07BB80 7F047010 460E303C */ c.lt.s $f6, $f14 /* 07BB84 7F047014 00000000 */ nop /* 07BB88 7F047018 45000004 */ bc1f .Ljp7F04702C /* 07BB8C 7F04701C 00000000 */ nop /* 07BB90 7F047020 E60200D8 */ swc1 $f2, 0xd8($s0) /* 07BB94 7F047024 C60000D8 */ lwc1 $f0, 0xd8($s0) /* 07BB98 7F047028 C60E00C8 */ lwc1 $f14, 0xc8($s0) .Ljp7F04702C: /* 07BB9C 7F04702C 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8005 /* 07BBA0 7F047030 C42483B4 */ lwc1 $f4, %lo(g_GlobalTimerDelta)($at) /* 07BBA4 7F047034 46040202 */ mul.s $f8, $f0, $f4 /* 07BBA8 7F047038 46087281 */ sub.s $f10, $f14, $f8 /* 07BBAC 7F04703C E60A00C8 */ swc1 $f10, 0xc8($s0) /* 07BBB0 7F047040 C60600C8 */ lwc1 $f6, 0xc8($s0) /* 07BBB4 7F047044 4612303E */ c.le.s $f6, $f18 /* 07BBB8 7F047048 00000000 */ nop /* 07BBBC 7F04704C 45020579 */ bc1fl .Ljp7F048634 /* 07BBC0 7F047050 92220003 */ lbu $v0, 3($s1) /* 07BBC4 7F047054 E61200C8 */ swc1 $f18, 0xc8($s0) /* 07BBC8 7F047058 E61600D8 */ swc1 $f22, 0xd8($s0) /* 07BBCC 7F04705C 10000574 */ b .Ljp7F048630 /* 07BBD0 7F047060 AE1800D4 */ sw $t8, 0xd4($s0) /* 07BBD4 7F047064 2401000D */ li $at, 13 .Ljp7F047068: /* 07BBD8 7F047068 5441023F */ bnel $v0, $at, .Ljp7F047968 /* 07BBDC 7F04706C 24010027 */ li $at, 39 /* 07BBE0 7F047070 8E280008 */ lw $t0, 8($s1) /* 07BBE4 7F047074 000848C0 */ sll $t1, $t0, 3 /* 07BBE8 7F047078 0522023B */ bltzl $t1, .Ljp7F047968 /* 07BBEC 7F04707C 24010027 */ li $at, 39 /* 07BBF0 7F047080 0FC2279B */ jal get_curplayer_positiondata /* 07BBF4 7F047084 8E700004 */ lw $s0, 4($s3) /* 07BBF8 7F047088 AFA004B0 */ sw $zero, 0x4b0($sp) /* 07BBFC 7F04708C AFA004AC */ sw $zero, 0x4ac($sp) /* 07BC00 7F047090 AFA004A8 */ sw $zero, 0x4a8($sp) /* 07BC04 7F047094 8E23000C */ lw $v1, 0xc($s1) /* 07BC08 7F047098 00409025 */ move $s2, $v0 /* 07BC0C 7F04709C 00035800 */ sll $t3, $v1, 0 /* 07BC10 7F0470A0 05610056 */ bgez $t3, .Ljp7F0471FC /* 07BC14 7F0470A4 00036040 */ sll $t4, $v1, 1 /* 07BC18 7F0470A8 05830008 */ bgezl $t4, .Ljp7F0470CC /* 07BC1C 7F0470AC C6020084 */ lwc1 $f2, 0x84($s0) /* 07BC20 7F0470B0 C6080090 */ lwc1 $f8, 0x90($s0) /* 07BC24 7F0470B4 C604009C */ lwc1 $f4, 0x9c($s0) /* 07BC28 7F0470B8 E6080084 */ swc1 $f8, 0x84($s0) /* 07BC2C 7F0470BC C6020084 */ lwc1 $f2, 0x84($s0) /* 07BC30 7F0470C0 10000036 */ b .Ljp7F04719C /* 07BC34 7F0470C4 E6040098 */ swc1 $f4, 0x98($s0) /* 07BC38 7F0470C8 C6020084 */ lwc1 $f2, 0x84($s0) .Ljp7F0470CC: /* 07BC3C 7F0470CC C60A0090 */ lwc1 $f10, 0x90($s0) /* 07BC40 7F0470D0 460A1032 */ c.eq.s $f2, $f10 /* 07BC44 7F0470D4 00000000 */ nop /* 07BC48 7F0470D8 45000030 */ bc1f .Ljp7F04719C /* 07BC4C 7F0470DC 00000000 */ nop /* 07BC50 7F0470E0 C6060098 */ lwc1 $f6, 0x98($s0) /* 07BC54 7F0470E4 C604009C */ lwc1 $f4, 0x9c($s0) /* 07BC58 7F0470E8 46043032 */ c.eq.s $f6, $f4 /* 07BC5C 7F0470EC 00000000 */ nop /* 07BC60 7F0470F0 4500002A */ bc1f .Ljp7F04719C /* 07BC64 7F0470F4 00000000 */ nop /* 07BC68 7F0470F8 0C002918 */ jal randomGetNext /* 07BC6C 7F0470FC 00000000 */ nop /* 07BC70 7F047100 44824000 */ mtc1 $v0, $f8 /* 07BC74 7F047104 3C018005 */ lui $at, %hi(D_80052AE8) # $at, 0x8005 /* 07BC78 7F047108 C4342B18 */ lwc1 $f20, %lo(D_80052AE8)($at) /* 07BC7C 7F04710C 04410005 */ bgez $v0, .Ljp7F047124 /* 07BC80 7F047110 468042A0 */ cvt.s.w $f10, $f8 /* 07BC84 7F047114 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07BC88 7F047118 44813000 */ mtc1 $at, $f6 /* 07BC8C 7F04711C 00000000 */ nop /* 07BC90 7F047120 46065280 */ add.s $f10, $f10, $f6 .Ljp7F047124: /* 07BC94 7F047124 3C012F80 */ li $at, 0x2F800000 # 0.000000 /* 07BC98 7F047128 44812000 */ mtc1 $at, $f4 /* 07BC9C 7F04712C 3C01421C */ li $at, 0x421C0000 # 39.000000 /* 07BCA0 7F047130 44813000 */ mtc1 $at, $f6 /* 07BCA4 7F047134 46045202 */ mul.s $f8, $f10, $f4 /* 07BCA8 7F047138 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07BCAC 7F04713C 44812000 */ mtc1 $at, $f4 /* 07BCB0 7F047140 3C0143B4 */ li $at, 0x43B40000 # 360.000000 /* 07BCB4 7F047144 46064282 */ mul.s $f10, $f8, $f6 /* 07BCB8 7F047148 46045200 */ add.s $f8, $f10, $f4 /* 07BCBC 7F04714C 44815000 */ mtc1 $at, $f10 /* 07BCC0 7F047150 46144182 */ mul.s $f6, $f8, $f20 /* 07BCC4 7F047154 460A3103 */ div.s $f4, $f6, $f10 /* 07BCC8 7F047158 0C002918 */ jal randomGetNext /* 07BCCC 7F04715C E6040098 */ swc1 $f4, 0x98($s0) /* 07BCD0 7F047160 44824000 */ mtc1 $v0, $f8 /* 07BCD4 7F047164 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07BCD8 7F047168 04410004 */ bgez $v0, .Ljp7F04717C /* 07BCDC 7F04716C 468041A0 */ cvt.s.w $f6, $f8 /* 07BCE0 7F047170 44815000 */ mtc1 $at, $f10 /* 07BCE4 7F047174 00000000 */ nop /* 07BCE8 7F047178 460A3180 */ add.s $f6, $f6, $f10 .Ljp7F04717C: /* 07BCEC 7F04717C 3C012F80 */ li $at, 0x2F800000 # 0.000000 /* 07BCF0 7F047180 44812000 */ mtc1 $at, $f4 /* 07BCF4 7F047184 00000000 */ nop /* 07BCF8 7F047188 46043202 */ mul.s $f8, $f6, $f4 /* 07BCFC 7F04718C 00000000 */ nop /* 07BD00 7F047190 46144282 */ mul.s $f10, $f8, $f20 /* 07BD04 7F047194 E60A0084 */ swc1 $f10, 0x84($s0) /* 07BD08 7F047198 C6020084 */ lwc1 $f2, 0x84($s0) .Ljp7F04719C: /* 07BD0C 7F04719C 3C018005 */ lui $at, %hi(D_80052AEC) # $at, 0x8005 /* 07BD10 7F0471A0 C4202B1C */ lwc1 $f0, %lo(D_80052AEC)($at) /* 07BD14 7F0471A4 3C018005 */ lui $at, %hi(D_80052AF4) # $at, 0x8005 /* 07BD18 7F0471A8 C4262B24 */ lwc1 $f6, %lo(D_80052AF4)($at) /* 07BD1C 7F0471AC 44051000 */ mfc1 $a1, $f2 /* 07BD20 7F0471B0 44070000 */ mfc1 $a3, $f0 /* 07BD24 7F0471B4 26040090 */ addiu $a0, $s0, 0x90 /* 07BD28 7F0471B8 26060094 */ addiu $a2, $s0, 0x94 /* 07BD2C 7F0471BC E7A00010 */ swc1 $f0, 0x10($sp) /* 07BD30 7F0471C0 0FC10D03 */ jal chrobjCallsApplySpeed /* 07BD34 7F0471C4 E7A60014 */ swc1 $f6, 0x14($sp) /* 07BD38 7F0471C8 3C018005 */ lui $at, %hi(D_80052AF8) # $at, 0x8005 /* 07BD3C 7F0471CC C4202B28 */ lwc1 $f0, %lo(D_80052AF8)($at) /* 07BD40 7F0471D0 3C018005 */ lui $at, %hi(D_80052AFC) # $at, 0x8005 /* 07BD44 7F0471D4 C4242B2C */ lwc1 $f4, %lo(D_80052AFC)($at) /* 07BD48 7F0471D8 8E050098 */ lw $a1, 0x98($s0) /* 07BD4C 7F0471DC 44070000 */ mfc1 $a3, $f0 /* 07BD50 7F0471E0 2604009C */ addiu $a0, $s0, 0x9c /* 07BD54 7F0471E4 260600A0 */ addiu $a2, $s0, 0xa0 /* 07BD58 7F0471E8 E7A00010 */ swc1 $f0, 0x10($sp) /* 07BD5C 7F0471EC 0FC10D03 */ jal chrobjCallsApplySpeed /* 07BD60 7F0471F0 E7A40014 */ swc1 $f4, 0x14($sp) /* 07BD64 7F0471F4 1000050F */ b .Ljp7F048634 /* 07BD68 7F0471F8 92220003 */ lbu $v0, 3($s1) .Ljp7F0471FC: /* 07BD6C 7F0471FC C6480008 */ lwc1 $f8, 8($s2) /* 07BD70 7F047200 C62A0058 */ lwc1 $f10, 0x58($s1) /* 07BD74 7F047204 C646000C */ lwc1 $f6, 0xc($s2) /* 07BD78 7F047208 C624005C */ lwc1 $f4, 0x5c($s1) /* 07BD7C 7F04720C 460A4001 */ sub.s $f0, $f8, $f10 /* 07BD80 7F047210 3C0141A0 */ li $at, 0x41A00000 # 20.000000 /* 07BD84 7F047214 44815000 */ mtc1 $at, $f10 /* 07BD88 7F047218 46043201 */ sub.s $f8, $f6, $f4 /* 07BD8C 7F04721C 460A4181 */ sub.s $f6, $f8, $f10 /* 07BD90 7F047220 46000282 */ mul.s $f10, $f0, $f0 /* 07BD94 7F047224 E7A604C4 */ swc1 $f6, 0x4c4($sp) /* 07BD98 7F047228 C6280060 */ lwc1 $f8, 0x60($s1) /* 07BD9C 7F04722C C6440010 */ lwc1 $f4, 0x10($s2) /* 07BDA0 7F047230 E7A004C8 */ swc1 $f0, 0x4c8($sp) /* 07BDA4 7F047234 46082081 */ sub.s $f2, $f4, $f8 /* 07BDA8 7F047238 46021182 */ mul.s $f6, $f2, $f2 /* 07BDAC 7F04723C E7A204C0 */ swc1 $f2, 0x4c0($sp) /* 07BDB0 7F047240 46065500 */ add.s $f20, $f10, $f6 /* 07BDB4 7F047244 E7B404BC */ swc1 $f20, 0x4bc($sp) /* 07BDB8 7F047248 0C007E08 */ jal sqrtf /* 07BDBC 7F04724C 4600A306 */ mov.s $f12, $f20 /* 07BDC0 7F047250 E7A004B4 */ swc1 $f0, 0x4b4($sp) /* 07BDC4 7F047254 8E2E0008 */ lw $t6, 8($s1) /* 07BDC8 7F047258 46000086 */ mov.s $f2, $f0 /* 07BDCC 7F04725C 000E5100 */ sll $t2, $t6, 4 /* 07BDD0 7F047260 05430008 */ bgezl $t2, .Ljp7F047284 /* 07BDD4 7F047264 C7AC04BC */ lwc1 $f12, 0x4bc($sp) /* 07BDD8 7F047268 C7A004C4 */ lwc1 $f0, 0x4c4($sp) /* 07BDDC 7F04726C 46000102 */ mul.s $f4, $f0, $f0 /* 07BDE0 7F047270 4604A300 */ add.s $f12, $f20, $f4 /* 07BDE4 7F047274 0C007E08 */ jal sqrtf /* 07BDE8 7F047278 E7AC04BC */ swc1 $f12, 0x4bc($sp) /* 07BDEC 7F04727C 46000086 */ mov.s $f2, $f0 /* 07BDF0 7F047280 C7AC04BC */ lwc1 $f12, 0x4bc($sp) .Ljp7F047284: /* 07BDF4 7F047284 0FC0B553 */ jal chrlvGetAimLimitAngle /* 07BDF8 7F047288 E7A204B8 */ swc1 $f2, 0x4b8($sp) /* 07BDFC 7F04728C E7A004A4 */ swc1 $f0, 0x4a4($sp) /* 07BE00 7F047290 C6080098 */ lwc1 $f8, 0x98($s0) /* 07BE04 7F047294 C6100084 */ lwc1 $f16, 0x84($s0) /* 07BE08 7F047298 C7A204B8 */ lwc1 $f2, 0x4b8($sp) /* 07BE0C 7F04729C E7A804D8 */ swc1 $f8, 0x4d8($sp) /* 07BE10 7F0472A0 C60A00A8 */ lwc1 $f10, 0xa8($s0) /* 07BE14 7F0472A4 460A103E */ c.le.s $f2, $f10 /* 07BE18 7F0472A8 00000000 */ nop /* 07BE1C 7F0472AC 45020096 */ bc1fl .Ljp7F047508 /* 07BE20 7F0472B0 8FA804B0 */ lw $t0, 0x4b0($sp) /* 07BE24 7F0472B4 C7AC04C8 */ lwc1 $f12, 0x4c8($sp) /* 07BE28 7F0472B8 C7AE04C0 */ lwc1 $f14, 0x4c0($sp) /* 07BE2C 7F0472BC 0FC16BD4 */ jal atan2f /* 07BE30 7F0472C0 E7B004DC */ swc1 $f16, 0x4dc($sp) /* 07BE34 7F0472C4 E7A004A0 */ swc1 $f0, 0x4a0($sp) /* 07BE38 7F0472C8 C7AC04C4 */ lwc1 $f12, 0x4c4($sp) /* 07BE3C 7F0472CC 0FC16BD4 */ jal atan2f /* 07BE40 7F0472D0 C7AE04B4 */ lwc1 $f14, 0x4b4($sp) /* 07BE44 7F0472D4 E7A0049C */ swc1 $f0, 0x49c($sp) /* 07BE48 7F0472D8 8E220008 */ lw $v0, 8($s1) /* 07BE4C 7F0472DC C7B004DC */ lwc1 $f16, 0x4dc($sp) /* 07BE50 7F0472E0 24190001 */ li $t9, 1 /* 07BE54 7F0472E4 00027840 */ sll $t7, $v0, 1 /* 07BE58 7F0472E8 05E00003 */ bltz $t7, .Ljp7F0472F8 /* 07BE5C 7F0472EC 00026880 */ sll $t5, $v0, 2 /* 07BE60 7F0472F0 05A10005 */ bgez $t5, .Ljp7F047308 /* 07BE64 7F0472F4 C7A604A0 */ lwc1 $f6, 0x4a0($sp) .Ljp7F0472F8: /* 07BE68 7F0472F8 3C018005 */ lui $at, %hi(D_80052B00) # $at, 0x8005 /* 07BE6C 7F0472FC C4342B30 */ lwc1 $f20, %lo(D_80052B00)($at) /* 07BE70 7F047300 10000027 */ b .Ljp7F0473A0 /* 07BE74 7F047304 AFB904B0 */ sw $t9, 0x4b0($sp) .Ljp7F047308: /* 07BE78 7F047308 C6040090 */ lwc1 $f4, 0x90($s0) /* 07BE7C 7F04730C 3C018005 */ lui $at, %hi(D_80052B04) # $at, 0x8005 /* 07BE80 7F047310 46043301 */ sub.s $f12, $f6, $f4 /* 07BE84 7F047314 4616603C */ c.lt.s $f12, $f22 /* 07BE88 7F047318 00000000 */ nop /* 07BE8C 7F04731C 45000003 */ bc1f .Ljp7F04732C /* 07BE90 7F047320 00000000 */ nop /* 07BE94 7F047324 C4342B34 */ lwc1 $f20, %lo(D_80052B04)($at) /* 07BE98 7F047328 46146300 */ add.s $f12, $f12, $f20 .Ljp7F04732C: /* 07BE9C 7F04732C 3C018005 */ lui $at, %hi(D_80052B08) # $at, 0x8005 /* 07BEA0 7F047330 C4342B38 */ lwc1 $f20, %lo(D_80052B08)($at) /* 07BEA4 7F047334 3C018005 */ lui $at, %hi(D_80052B0C) # $at, 0x8005 /* 07BEA8 7F047338 C4282B3C */ lwc1 $f8, %lo(D_80052B0C)($at) /* 07BEAC 7F04733C 3C018005 */ lui $at, %hi(D_80052B10) # $at, 0x8005 /* 07BEB0 7F047340 460C403C */ c.lt.s $f8, $f12 /* 07BEB4 7F047344 00000000 */ nop /* 07BEB8 7F047348 45020003 */ bc1fl .Ljp7F047358 /* 07BEBC 7F04734C C60A009C */ lwc1 $f10, 0x9c($s0) /* 07BEC0 7F047350 46146301 */ sub.s $f12, $f12, $f20 /* 07BEC4 7F047354 C60A009C */ lwc1 $f10, 0x9c($s0) .Ljp7F047358: /* 07BEC8 7F047358 460A0081 */ sub.s $f2, $f0, $f10 /* 07BECC 7F04735C 4616103C */ c.lt.s $f2, $f22 /* 07BED0 7F047360 00000000 */ nop /* 07BED4 7F047364 45000001 */ bc1f .Ljp7F04736C /* 07BED8 7F047368 00000000 */ nop .Ljp7F04736C: /* 07BEDC 7F04736C C4262B40 */ lwc1 $f6, %lo(D_80052B10)($at) /* 07BEE0 7F047370 3C018005 */ lui $at, %hi(D_80052B14) # $at, 0x8005 /* 07BEE4 7F047374 4606603C */ c.lt.s $f12, $f6 /* 07BEE8 7F047378 00000000 */ nop /* 07BEEC 7F04737C 45020009 */ bc1fl .Ljp7F0473A4 /* 07BEF0 7F047380 8FA804B0 */ lw $t0, 0x4b0($sp) /* 07BEF4 7F047384 C4242B44 */ lwc1 $f4, %lo(D_80052B14)($at) /* 07BEF8 7F047388 24180001 */ li $t8, 1 /* 07BEFC 7F04738C 460C203C */ c.lt.s $f4, $f12 /* 07BF00 7F047390 00000000 */ nop /* 07BF04 7F047394 45020003 */ bc1fl .Ljp7F0473A4 /* 07BF08 7F047398 8FA804B0 */ lw $t0, 0x4b0($sp) /* 07BF0C 7F04739C AFB804B0 */ sw $t8, 0x4b0($sp) .Ljp7F0473A0: /* 07BF10 7F0473A0 8FA804B0 */ lw $t0, 0x4b0($sp) .Ljp7F0473A4: /* 07BF14 7F0473A4 C7A804A0 */ lwc1 $f8, 0x4a0($sp) /* 07BF18 7F0473A8 02402025 */ move $a0, $s2 /* 07BF1C 7F0473AC 11000055 */ beqz $t0, .Ljp7F047504 /* 07BF20 7F0473B0 00002825 */ move $a1, $zero /* 07BF24 7F0473B4 C60A0084 */ lwc1 $f10, 0x84($s0) /* 07BF28 7F0473B8 3C018005 */ lui $at, %hi(D_80052B18) # $at, 0x8005 /* 07BF2C 7F0473BC C4262B48 */ lwc1 $f6, %lo(D_80052B18)($at) /* 07BF30 7F0473C0 460A4001 */ sub.s $f0, $f8, $f10 /* 07BF34 7F0473C4 8E690014 */ lw $t1, 0x14($s3) /* 07BF38 7F0473C8 3C018005 */ lui $at, %hi(D_80052B1C) # $at, 0x8005 /* 07BF3C 7F0473CC 4606003C */ c.lt.s $f0, $f6 /* 07BF40 7F0473D0 AFA90494 */ sw $t1, 0x494($sp) /* 07BF44 7F0473D4 45000003 */ bc1f .Ljp7F0473E4 /* 07BF48 7F0473D8 00000000 */ nop /* 07BF4C 7F0473DC 10000007 */ b .Ljp7F0473FC /* 07BF50 7F0473E0 46140000 */ add.s $f0, $f0, $f20 .Ljp7F0473E4: /* 07BF54 7F0473E4 C4242B4C */ lwc1 $f4, %lo(D_80052B1C)($at) /* 07BF58 7F0473E8 4600203E */ c.le.s $f4, $f0 /* 07BF5C 7F0473EC 00000000 */ nop /* 07BF60 7F0473F0 45020003 */ bc1fl .Ljp7F047400 /* 07BF64 7F0473F4 E7A00498 */ swc1 $f0, 0x498($sp) /* 07BF68 7F0473F8 46140001 */ sub.s $f0, $f0, $f20 .Ljp7F0473FC: /* 07BF6C 7F0473FC E7A00498 */ swc1 $f0, 0x498($sp) .Ljp7F047400: /* 07BF70 7F047400 0FC229DD */ jal bondviewUpdateGuardTankFlagsRelated /* 07BF74 7F047404 E7B004DC */ swc1 $f16, 0x4dc($sp) /* 07BF78 7F047408 C7A00498 */ lwc1 $f0, 0x498($sp) /* 07BF7C 7F04740C C6080088 */ lwc1 $f8, 0x88($s0) /* 07BF80 7F047410 C7B004DC */ lwc1 $f16, 0x4dc($sp) /* 07BF84 7F047414 4608003E */ c.le.s $f0, $f8 /* 07BF88 7F047418 00000000 */ nop /* 07BF8C 7F04741C 45020027 */ bc1fl .Ljp7F0474BC /* 07BF90 7F047420 8E0200B8 */ lw $v0, 0xb8($s0) /* 07BF94 7F047424 C60A008C */ lwc1 $f10, 0x8c($s0) /* 07BF98 7F047428 240B001B */ li $t3, 27 /* 07BF9C 7F04742C 4600503E */ c.le.s $f10, $f0 /* 07BFA0 7F047430 00000000 */ nop /* 07BFA4 7F047434 45020021 */ bc1fl .Ljp7F0474BC /* 07BFA8 7F047438 8E0200B8 */ lw $v0, 0xb8($s0) /* 07BFAC 7F04743C C6460010 */ lwc1 $f6, 0x10($s2) /* 07BFB0 7F047440 8E650008 */ lw $a1, 8($s3) /* 07BFB4 7F047444 8E660010 */ lw $a2, 0x10($s3) /* 07BFB8 7F047448 8E470008 */ lw $a3, 8($s2) /* 07BFBC 7F04744C AFAB0014 */ sw $t3, 0x14($sp) /* 07BFC0 7F047450 E7A60010 */ swc1 $f6, 0x10($sp) /* 07BFC4 7F047454 C660000C */ lwc1 $f0, 0xc($s3) /* 07BFC8 7F047458 27A40494 */ addiu $a0, $sp, 0x494 /* 07BFCC 7F04745C E7A00018 */ swc1 $f0, 0x18($sp) /* 07BFD0 7F047460 E7A0001C */ swc1 $f0, 0x1c($sp) /* 07BFD4 7F047464 C642000C */ lwc1 $f2, 0xc($s2) /* 07BFD8 7F047468 E7B004DC */ swc1 $f16, 0x4dc($sp) /* 07BFDC 7F04746C E7A20020 */ swc1 $f2, 0x20($sp) /* 07BFE0 7F047470 0FC2C675 */ jal stanTestLineUnobstructed /* 07BFE4 7F047474 E7A20024 */ swc1 $f2, 0x24($sp) /* 07BFE8 7F047478 1040000F */ beqz $v0, .Ljp7F0474B8 /* 07BFEC 7F04747C C7B004DC */ lwc1 $f16, 0x4dc($sp) /* 07BFF0 7F047480 8FAC0494 */ lw $t4, 0x494($sp) /* 07BFF4 7F047484 8E4E0014 */ lw $t6, 0x14($s2) /* 07BFF8 7F047488 558E000C */ bnel $t4, $t6, .Ljp7F0474BC /* 07BFFC 7F04748C 8E0200B8 */ lw $v0, 0xb8($s0) /* 07C000 7F047490 8E2A0008 */ lw $t2, 8($s1) /* 07C004 7F047494 3C012000 */ lui $at, 0x2000 /* 07C008 7F047498 240D0001 */ li $t5, 1 /* 07C00C 7F04749C 01417825 */ or $t7, $t2, $at /* 07C010 7F0474A0 AE2F0008 */ sw $t7, 8($s1) /* 07C014 7F0474A4 C7A4049C */ lwc1 $f4, 0x49c($sp) /* 07C018 7F0474A8 AFAD04A8 */ sw $t5, 0x4a8($sp) /* 07C01C 7F0474AC C7B004A0 */ lwc1 $f16, 0x4a0($sp) /* 07C020 7F0474B0 1000000F */ b .Ljp7F0474F0 /* 07C024 7F0474B4 E7A404D8 */ swc1 $f4, 0x4d8($sp) .Ljp7F0474B8: /* 07C028 7F0474B8 8E0200B8 */ lw $v0, 0xb8($s0) .Ljp7F0474BC: /* 07C02C 7F0474BC 3C198005 */ lui $t9, %hi(g_GlobalTimer) # $t9, 0x8005 /* 07C030 7F0474C0 0442000B */ bltzl $v0, .Ljp7F0474F0 /* 07C034 7F0474C4 AFA004B0 */ sw $zero, 0x4b0($sp) /* 07C038 7F0474C8 8F3983AC */ lw $t9, %lo(g_GlobalTimer)($t9) /* 07C03C 7F0474CC 2738FF88 */ addiu $t8, $t9, -0x78 /* 07C040 7F0474D0 0302082A */ slt $at, $t8, $v0 /* 07C044 7F0474D4 50200006 */ beql $at, $zero, .Ljp7F0474F0 /* 07C048 7F0474D8 AFA004B0 */ sw $zero, 0x4b0($sp) /* 07C04C 7F0474DC C608009C */ lwc1 $f8, 0x9c($s0) /* 07C050 7F0474E0 C6100090 */ lwc1 $f16, 0x90($s0) /* 07C054 7F0474E4 10000002 */ b .Ljp7F0474F0 /* 07C058 7F0474E8 E7A804D8 */ swc1 $f8, 0x4d8($sp) /* 07C05C 7F0474EC AFA004B0 */ sw $zero, 0x4b0($sp) .Ljp7F0474F0: /* 07C060 7F0474F0 02402025 */ move $a0, $s2 /* 07C064 7F0474F4 24050001 */ li $a1, 1 /* 07C068 7F0474F8 0FC229DD */ jal bondviewUpdateGuardTankFlagsRelated /* 07C06C 7F0474FC E7B004DC */ swc1 $f16, 0x4dc($sp) /* 07C070 7F047500 C7B004DC */ lwc1 $f16, 0x4dc($sp) .Ljp7F047504: /* 07C074 7F047504 8FA804B0 */ lw $t0, 0x4b0($sp) .Ljp7F047508: /* 07C078 7F047508 3C018005 */ lui $at, %hi(D_80052B20) # $at, 0x8005 /* 07C07C 7F04750C C4342B50 */ lwc1 $f20, %lo(D_80052B20)($at) /* 07C080 7F047510 51000007 */ beql $t0, $zero, .Ljp7F047530 /* 07C084 7F047514 8E0900D0 */ lw $t1, 0xd0($s0) /* 07C088 7F047518 C7AC04BC */ lwc1 $f12, 0x4bc($sp) /* 07C08C 7F04751C 0FC0B553 */ jal chrlvGetAimLimitAngle /* 07C090 7F047520 E7B004DC */ swc1 $f16, 0x4dc($sp) /* 07C094 7F047524 C7B004DC */ lwc1 $f16, 0x4dc($sp) /* 07C098 7F047528 E7A004A4 */ swc1 $f0, 0x4a4($sp) /* 07C09C 7F04752C 8E0900D0 */ lw $t1, 0xd0($s0) .Ljp7F047530: /* 07C0A0 7F047530 1120001F */ beqz $t1, .Ljp7F0475B0 /* 07C0A4 7F047534 3C0B8005 */ lui $t3, %hi(g_GlobalTimer) # $t3, 0x8005 /* 07C0A8 7F047538 8D6B83AC */ lw $t3, %lo(g_GlobalTimer)($t3) /* 07C0AC 7F04753C 24010078 */ li $at, 120 /* 07C0B0 7F047540 E7B004DC */ swc1 $f16, 0x4dc($sp) /* 07C0B4 7F047544 0161001A */ div $zero, $t3, $at /* 07C0B8 7F047548 00006010 */ mfhi $t4 /* 07C0BC 7F04754C 448C5000 */ mtc1 $t4, $f10 /* 07C0C0 7F047550 3C0142F0 */ li $at, 0x42F00000 # 120.000000 /* 07C0C4 7F047554 44814000 */ mtc1 $at, $f8 /* 07C0C8 7F047558 468051A0 */ cvt.s.w $f6, $f10 /* 07C0CC 7F04755C 46143102 */ mul.s $f4, $f6, $f20 /* 07C0D0 7F047560 0FC160F3 */ jal sinf /* 07C0D4 7F047564 46082303 */ div.s $f12, $f4, $f8 /* 07C0D8 7F047568 3C018005 */ lui $at, %hi(D_80052B24) # $at, 0x8005 /* 07C0DC 7F04756C C4262B54 */ lwc1 $f6, %lo(D_80052B24)($at) /* 07C0E0 7F047570 C7AA04A4 */ lwc1 $f10, 0x4a4($sp) /* 07C0E4 7F047574 C7B004DC */ lwc1 $f16, 0x4dc($sp) /* 07C0E8 7F047578 46065102 */ mul.s $f4, $f10, $f6 /* 07C0EC 7F04757C 00000000 */ nop /* 07C0F0 7F047580 46002202 */ mul.s $f8, $f4, $f0 /* 07C0F4 7F047584 46088400 */ add.s $f16, $f16, $f8 /* 07C0F8 7F047588 4616803C */ c.lt.s $f16, $f22 /* 07C0FC 7F04758C 00000000 */ nop /* 07C100 7F047590 45000002 */ bc1f .Ljp7F04759C /* 07C104 7F047594 00000000 */ nop /* 07C108 7F047598 46148400 */ add.s $f16, $f16, $f20 .Ljp7F04759C: /* 07C10C 7F04759C 4610A03E */ c.le.s $f20, $f16 /* 07C110 7F0475A0 00000000 */ nop /* 07C114 7F0475A4 45020003 */ bc1fl .Ljp7F0475B4 /* 07C118 7F0475A8 C6020084 */ lwc1 $f2, 0x84($s0) /* 07C11C 7F0475AC 46148401 */ sub.s $f16, $f16, $f20 .Ljp7F0475B0: /* 07C120 7F0475B0 C6020084 */ lwc1 $f2, 0x84($s0) .Ljp7F0475B4: /* 07C124 7F0475B4 3C018005 */ lui $at, %hi(D_80052B28) # $at, 0x8005 /* 07C128 7F0475B8 C42A2B58 */ lwc1 $f10, %lo(D_80052B28)($at) /* 07C12C 7F0475BC 46028001 */ sub.s $f0, $f16, $f2 /* 07C130 7F0475C0 26040090 */ addiu $a0, $s0, 0x90 /* 07C134 7F0475C4 460A003C */ c.lt.s $f0, $f10 /* 07C138 7F0475C8 00000000 */ nop /* 07C13C 7F0475CC 45000003 */ bc1f .Ljp7F0475DC /* 07C140 7F0475D0 00000000 */ nop /* 07C144 7F0475D4 10000008 */ b .Ljp7F0475F8 /* 07C148 7F0475D8 46140000 */ add.s $f0, $f0, $f20 .Ljp7F0475DC: /* 07C14C 7F0475DC 3C018005 */ lui $at, %hi(D_80052B2C) # $at, 0x8005 /* 07C150 7F0475E0 C4262B5C */ lwc1 $f6, %lo(D_80052B2C)($at) /* 07C154 7F0475E4 4600303E */ c.le.s $f6, $f0 /* 07C158 7F0475E8 00000000 */ nop /* 07C15C 7F0475EC 45020003 */ bc1fl .Ljp7F0475FC /* 07C160 7F0475F0 C60C0088 */ lwc1 $f12, 0x88($s0) /* 07C164 7F0475F4 46140001 */ sub.s $f0, $f0, $f20 .Ljp7F0475F8: /* 07C168 7F0475F8 C60C0088 */ lwc1 $f12, 0x88($s0) .Ljp7F0475FC: /* 07C16C 7F0475FC 3C018005 */ lui $at, %hi(D_80052B30) # $at, 0x8005 /* 07C170 7F047600 4600603C */ c.lt.s $f12, $f0 /* 07C174 7F047604 00000000 */ nop /* 07C178 7F047608 45020004 */ bc1fl .Ljp7F04761C /* 07C17C 7F04760C C60C008C */ lwc1 $f12, 0x8c($s0) /* 07C180 7F047610 10000007 */ b .Ljp7F047630 /* 07C184 7F047614 460C1400 */ add.s $f16, $f2, $f12 /* 07C188 7F047618 C60C008C */ lwc1 $f12, 0x8c($s0) .Ljp7F04761C: /* 07C18C 7F04761C 460C003C */ c.lt.s $f0, $f12 /* 07C190 7F047620 00000000 */ nop /* 07C194 7F047624 45020003 */ bc1fl .Ljp7F047634 /* 07C198 7F047628 4616803C */ c.lt.s $f16, $f22 /* 07C19C 7F04762C 460C1400 */ add.s $f16, $f2, $f12 .Ljp7F047630: /* 07C1A0 7F047630 4616803C */ c.lt.s $f16, $f22 .Ljp7F047634: /* 07C1A4 7F047634 00000000 */ nop /* 07C1A8 7F047638 45020003 */ bc1fl .Ljp7F047648 /* 07C1AC 7F04763C 4610A03E */ c.le.s $f20, $f16 /* 07C1B0 7F047640 46148400 */ add.s $f16, $f16, $f20 /* 07C1B4 7F047644 4610A03E */ c.le.s $f20, $f16 .Ljp7F047648: /* 07C1B8 7F047648 00000000 */ nop /* 07C1BC 7F04764C 45000002 */ bc1f .Ljp7F047658 /* 07C1C0 7F047650 00000000 */ nop /* 07C1C4 7F047654 46148401 */ sub.s $f16, $f16, $f20 .Ljp7F047658: /* 07C1C8 7F047658 C4202B60 */ lwc1 $f0, %lo(D_80052B30)($at) /* 07C1CC 7F04765C 44058000 */ mfc1 $a1, $f16 /* 07C1D0 7F047660 26060094 */ addiu $a2, $s0, 0x94 /* 07C1D4 7F047664 E7A00010 */ swc1 $f0, 0x10($sp) /* 07C1D8 7F047668 C60400A4 */ lwc1 $f4, 0xa4($s0) /* 07C1DC 7F04766C 44070000 */ mfc1 $a3, $f0 /* 07C1E0 7F047670 E7B004DC */ swc1 $f16, 0x4dc($sp) /* 07C1E4 7F047674 0FC10D03 */ jal chrobjCallsApplySpeed /* 07C1E8 7F047678 E7A40014 */ swc1 $f4, 0x14($sp) /* 07C1EC 7F04767C 3C018005 */ lui $at, %hi(D_80052B34) # $at, 0x8005 /* 07C1F0 7F047680 C4202B64 */ lwc1 $f0, %lo(D_80052B34)($at) /* 07C1F4 7F047684 2604009C */ addiu $a0, $s0, 0x9c /* 07C1F8 7F047688 8FA504D8 */ lw $a1, 0x4d8($sp) /* 07C1FC 7F04768C E7A00010 */ swc1 $f0, 0x10($sp) /* 07C200 7F047690 C60800A4 */ lwc1 $f8, 0xa4($s0) /* 07C204 7F047694 44070000 */ mfc1 $a3, $f0 /* 07C208 7F047698 260600A0 */ addiu $a2, $s0, 0xa0 /* 07C20C 7F04769C 0FC10D03 */ jal chrobjCallsApplySpeed /* 07C210 7F0476A0 E7A80014 */ swc1 $f8, 0x14($sp) /* 07C214 7F0476A4 C7B004DC */ lwc1 $f16, 0x4dc($sp) /* 07C218 7F0476A8 C60A0090 */ lwc1 $f10, 0x90($s0) /* 07C21C 7F0476AC 3C018005 */ lui $at, %hi(D_80052B38) # $at, 0x8005 /* 07C220 7F0476B0 C7A604D8 */ lwc1 $f6, 0x4d8($sp) /* 07C224 7F0476B4 460A8301 */ sub.s $f12, $f16, $f10 /* 07C228 7F0476B8 4616603C */ c.lt.s $f12, $f22 /* 07C22C 7F0476BC 00000000 */ nop /* 07C230 7F0476C0 45000002 */ bc1f .Ljp7F0476CC /* 07C234 7F0476C4 00000000 */ nop /* 07C238 7F0476C8 46146300 */ add.s $f12, $f12, $f20 .Ljp7F0476CC: /* 07C23C 7F0476CC C4202B68 */ lwc1 $f0, %lo(D_80052B38)($at) /* 07C240 7F0476D0 460C003C */ c.lt.s $f0, $f12 /* 07C244 7F0476D4 00000000 */ nop /* 07C248 7F0476D8 45020003 */ bc1fl .Ljp7F0476E8 /* 07C24C 7F0476DC C604009C */ lwc1 $f4, 0x9c($s0) /* 07C250 7F0476E0 46146301 */ sub.s $f12, $f12, $f20 /* 07C254 7F0476E4 C604009C */ lwc1 $f4, 0x9c($s0) .Ljp7F0476E8: /* 07C258 7F0476E8 46043081 */ sub.s $f2, $f6, $f4 /* 07C25C 7F0476EC 4616103C */ c.lt.s $f2, $f22 /* 07C260 7F0476F0 00000000 */ nop /* 07C264 7F0476F4 45020003 */ bc1fl .Ljp7F047704 /* 07C268 7F0476F8 4602003C */ c.lt.s $f0, $f2 /* 07C26C 7F0476FC 46141080 */ add.s $f2, $f2, $f20 /* 07C270 7F047700 4602003C */ c.lt.s $f0, $f2 .Ljp7F047704: /* 07C274 7F047704 00000000 */ nop /* 07C278 7F047708 45020003 */ bc1fl .Ljp7F047718 /* 07C27C 7F04770C AE0000D0 */ sw $zero, 0xd0($s0) /* 07C280 7F047710 46141081 */ sub.s $f2, $f2, $f20 /* 07C284 7F047714 AE0000D0 */ sw $zero, 0xd0($s0) .Ljp7F047718: /* 07C288 7F047718 8FAE04B0 */ lw $t6, 0x4b0($sp) /* 07C28C 7F04771C C7A804A4 */ lwc1 $f8, 0x4a4($sp) /* 07C290 7F047720 51C00047 */ beql $t6, $zero, .Ljp7F047840 /* 07C294 7F047724 8FB904AC */ lw $t9, 0x4ac($sp) /* 07C298 7F047728 4608603C */ c.lt.s $f12, $f8 /* 07C29C 7F04772C C7AA04A4 */ lwc1 $f10, 0x4a4($sp) /* 07C2A0 7F047730 4502001B */ bc1fl .Ljp7F0477A0 /* 07C2A4 7F047734 460A5000 */ add.s $f0, $f10, $f10 /* 07C2A8 7F047738 46004007 */ neg.s $f0, $f8 /* 07C2AC 7F04773C 460C003C */ c.lt.s $f0, $f12 /* 07C2B0 7F047740 00000000 */ nop /* 07C2B4 7F047744 45020016 */ bc1fl .Ljp7F0477A0 /* 07C2B8 7F047748 460A5000 */ add.s $f0, $f10, $f10 /* 07C2BC 7F04774C 4608103C */ c.lt.s $f2, $f8 /* 07C2C0 7F047750 00000000 */ nop /* 07C2C4 7F047754 45020012 */ bc1fl .Ljp7F0477A0 /* 07C2C8 7F047758 460A5000 */ add.s $f0, $f10, $f10 /* 07C2CC 7F04775C 4602003C */ c.lt.s $f0, $f2 /* 07C2D0 7F047760 240A0001 */ li $t2, 1 /* 07C2D4 7F047764 4502000E */ bc1fl .Ljp7F0477A0 /* 07C2D8 7F047768 460A5000 */ add.s $f0, $f10, $f10 /* 07C2DC 7F04776C AE0A00D0 */ sw $t2, 0xd0($s0) /* 07C2E0 7F047770 8FAD04A8 */ lw $t5, 0x4a8($sp) /* 07C2E4 7F047774 240F0001 */ li $t7, 1 /* 07C2E8 7F047778 AFAF04AC */ sw $t7, 0x4ac($sp) /* 07C2EC 7F04777C 11A0002F */ beqz $t5, .Ljp7F04783C /* 07C2F0 7F047780 3C198005 */ lui $t9, %hi(g_GlobalTimer) # $t9, 0x8005 /* 07C2F4 7F047784 8F3983AC */ lw $t9, %lo(g_GlobalTimer)($t9) /* 07C2F8 7F047788 3C188005 */ lui $t8, %hi(g_GlobalTimer) # $t8, 0x8005 /* 07C2FC 7F04778C AE1900B8 */ sw $t9, 0xb8($s0) /* 07C300 7F047790 8F1883AC */ lw $t8, %lo(g_GlobalTimer)($t8) /* 07C304 7F047794 10000029 */ b .Ljp7F04783C /* 07C308 7F047798 AE1800BC */ sw $t8, 0xbc($s0) /* 07C30C 7F04779C 460A5000 */ add.s $f0, $f10, $f10 .Ljp7F0477A0: /* 07C310 7F0477A0 4600603C */ c.lt.s $f12, $f0 /* 07C314 7F0477A4 00000000 */ nop /* 07C318 7F0477A8 45020018 */ bc1fl .Ljp7F04780C /* 07C31C 7F0477AC 8E0200B8 */ lw $v0, 0xb8($s0) /* 07C320 7F0477B0 46000387 */ neg.s $f14, $f0 /* 07C324 7F0477B4 460C703C */ c.lt.s $f14, $f12 /* 07C328 7F0477B8 00000000 */ nop /* 07C32C 7F0477BC 45020013 */ bc1fl .Ljp7F04780C /* 07C330 7F0477C0 8E0200B8 */ lw $v0, 0xb8($s0) /* 07C334 7F0477C4 4600103C */ c.lt.s $f2, $f0 /* 07C338 7F0477C8 00000000 */ nop /* 07C33C 7F0477CC 4502000F */ bc1fl .Ljp7F04780C /* 07C340 7F0477D0 8E0200B8 */ lw $v0, 0xb8($s0) /* 07C344 7F0477D4 4602703C */ c.lt.s $f14, $f2 /* 07C348 7F0477D8 24080001 */ li $t0, 1 /* 07C34C 7F0477DC 4502000B */ bc1fl .Ljp7F04780C /* 07C350 7F0477E0 8E0200B8 */ lw $v0, 0xb8($s0) /* 07C354 7F0477E4 AE0800D0 */ sw $t0, 0xd0($s0) /* 07C358 7F0477E8 8FAB04A8 */ lw $t3, 0x4a8($sp) /* 07C35C 7F0477EC 24090001 */ li $t1, 1 /* 07C360 7F0477F0 AFA904AC */ sw $t1, 0x4ac($sp) /* 07C364 7F0477F4 11600011 */ beqz $t3, .Ljp7F04783C /* 07C368 7F0477F8 3C0C8005 */ lui $t4, %hi(g_GlobalTimer) # $t4, 0x8005 /* 07C36C 7F0477FC 8D8C83AC */ lw $t4, %lo(g_GlobalTimer)($t4) /* 07C370 7F047800 1000000E */ b .Ljp7F04783C /* 07C374 7F047804 AE0C00B8 */ sw $t4, 0xb8($s0) /* 07C378 7F047808 8E0200B8 */ lw $v0, 0xb8($s0) .Ljp7F04780C: /* 07C37C 7F04780C 3C0E8005 */ lui $t6, %hi(g_GlobalTimer) # $t6, 0x8005 /* 07C380 7F047810 0442000B */ bltzl $v0, .Ljp7F047840 /* 07C384 7F047814 8FB904AC */ lw $t9, 0x4ac($sp) /* 07C388 7F047818 8DCE83AC */ lw $t6, %lo(g_GlobalTimer)($t6) /* 07C38C 7F04781C 240F0001 */ li $t7, 1 /* 07C390 7F047820 240D0001 */ li $t5, 1 /* 07C394 7F047824 25CAFF88 */ addiu $t2, $t6, -0x78 /* 07C398 7F047828 0142082A */ slt $at, $t2, $v0 /* 07C39C 7F04782C 50200004 */ beql $at, $zero, .Ljp7F047840 /* 07C3A0 7F047830 8FB904AC */ lw $t9, 0x4ac($sp) /* 07C3A4 7F047834 AE0F00D0 */ sw $t7, 0xd0($s0) /* 07C3A8 7F047838 AFAD04AC */ sw $t5, 0x4ac($sp) .Ljp7F04783C: /* 07C3AC 7F04783C 8FB904AC */ lw $t9, 0x4ac($sp) .Ljp7F047840: /* 07C3B0 7F047840 3C018005 */ lui $at, %hi(D_80052B3C) # $at, 0x8005 /* 07C3B4 7F047844 53200013 */ beql $t9, $zero, .Ljp7F047894 /* 07C3B8 7F047848 C60200B0 */ lwc1 $f2, 0xb0($s0) /* 07C3BC 7F04784C C4202B6C */ lwc1 $f0, %lo(D_80052B3C)($at) /* 07C3C0 7F047850 3C018005 */ lui $at, %hi(D_80052B40) # $at, 0x8005 /* 07C3C4 7F047854 C4262B70 */ lwc1 $f6, %lo(D_80052B40)($at) /* 07C3C8 7F047858 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8005 /* 07C3CC 7F04785C C42483B4 */ lwc1 $f4, %lo(g_GlobalTimerDelta)($at) /* 07C3D0 7F047860 C60A00B0 */ lwc1 $f10, 0xb0($s0) /* 07C3D4 7F047864 46043202 */ mul.s $f8, $f6, $f4 /* 07C3D8 7F047868 46085180 */ add.s $f6, $f10, $f8 /* 07C3DC 7F04786C E60600B0 */ swc1 $f6, 0xb0($s0) /* 07C3E0 7F047870 C60200B0 */ lwc1 $f2, 0xb0($s0) /* 07C3E4 7F047874 4602003C */ c.lt.s $f0, $f2 /* 07C3E8 7F047878 00000000 */ nop /* 07C3EC 7F04787C 45020023 */ bc1fl .Ljp7F04790C /* 07C3F0 7F047880 4602B03C */ c.lt.s $f22, $f2 /* 07C3F4 7F047884 E60000B0 */ swc1 $f0, 0xb0($s0) /* 07C3F8 7F047888 1000001F */ b .Ljp7F047908 /* 07C3FC 7F04788C C60200B0 */ lwc1 $f2, 0xb0($s0) /* 07C400 7F047890 C60200B0 */ lwc1 $f2, 0xb0($s0) .Ljp7F047894: /* 07C404 7F047894 3C188005 */ lui $t8, %hi(g_ClockTimer) # $t8, 0x8005 /* 07C408 7F047898 4602B03C */ c.lt.s $f22, $f2 /* 07C40C 7F04789C 00000000 */ nop /* 07C410 7F0478A0 4502001A */ bc1fl .Ljp7F04790C /* 07C414 7F0478A4 4602B03C */ c.lt.s $f22, $f2 /* 07C418 7F0478A8 8F1883A4 */ lw $t8, %lo(g_ClockTimer)($t8) /* 07C41C 7F0478AC 00001025 */ move $v0, $zero /* 07C420 7F0478B0 3C018005 */ lui $at, %hi(D_80052B44) # $at, 0x8005 /* 07C424 7F0478B4 1B00000C */ blez $t8, .Ljp7F0478E8 /* 07C428 7F0478B8 00000000 */ nop /* 07C42C 7F0478BC C4202B74 */ lwc1 $f0, %lo(D_80052B44)($at) /* 07C430 7F0478C0 C60400B0 */ lwc1 $f4, 0xb0($s0) .Ljp7F0478C4: /* 07C434 7F0478C4 3C088005 */ lui $t0, %hi(g_ClockTimer) # $t0, 0x8005 /* 07C438 7F0478C8 24420001 */ addiu $v0, $v0, 1 /* 07C43C 7F0478CC 46002282 */ mul.s $f10, $f4, $f0 /* 07C440 7F0478D0 E60A00B0 */ swc1 $f10, 0xb0($s0) /* 07C444 7F0478D4 8D0883A4 */ lw $t0, %lo(g_ClockTimer)($t0) /* 07C448 7F0478D8 0048082A */ slt $at, $v0, $t0 /* 07C44C 7F0478DC 5420FFF9 */ bnezl $at, .Ljp7F0478C4 /* 07C450 7F0478E0 C60400B0 */ lwc1 $f4, 0xb0($s0) /* 07C454 7F0478E4 C60200B0 */ lwc1 $f2, 0xb0($s0) .Ljp7F0478E8: /* 07C458 7F0478E8 3C018005 */ lui $at, %hi(D_80052B48) # $at, 0x8005 /* 07C45C 7F0478EC C4282B78 */ lwc1 $f8, %lo(D_80052B48)($at) /* 07C460 7F0478F0 4608103E */ c.le.s $f2, $f8 /* 07C464 7F0478F4 00000000 */ nop /* 07C468 7F0478F8 45020004 */ bc1fl .Ljp7F04790C /* 07C46C 7F0478FC 4602B03C */ c.lt.s $f22, $f2 /* 07C470 7F047900 E61600B0 */ swc1 $f22, 0xb0($s0) /* 07C474 7F047904 C60200B0 */ lwc1 $f2, 0xb0($s0) .Ljp7F047908: /* 07C478 7F047908 4602B03C */ c.lt.s $f22, $f2 .Ljp7F04790C: /* 07C47C 7F04790C 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8005 /* 07C480 7F047910 45020348 */ bc1fl .Ljp7F048634 /* 07C484 7F047914 92220003 */ lbu $v0, 3($s1) /* 07C488 7F047918 C42483B4 */ lwc1 $f4, %lo(g_GlobalTimerDelta)($at) /* 07C48C 7F04791C C60600B4 */ lwc1 $f6, 0xb4($s0) /* 07C490 7F047920 46041282 */ mul.s $f10, $f2, $f4 /* 07C494 7F047924 460A3200 */ add.s $f8, $f6, $f10 /* 07C498 7F047928 E60800B4 */ swc1 $f8, 0xb4($s0) /* 07C49C 7F04792C C60000B4 */ lwc1 $f0, 0xb4($s0) /* 07C4A0 7F047930 4600A03E */ c.le.s $f20, $f0 /* 07C4A4 7F047934 00000000 */ nop /* 07C4A8 7F047938 4502033E */ bc1fl .Ljp7F048634 /* 07C4AC 7F04793C 92220003 */ lbu $v0, 3($s1) /* 07C4B0 7F047940 46140101 */ sub.s $f4, $f0, $f20 .Ljp7F047944: /* 07C4B4 7F047944 E60400B4 */ swc1 $f4, 0xb4($s0) /* 07C4B8 7F047948 C60000B4 */ lwc1 $f0, 0xb4($s0) /* 07C4BC 7F04794C 4600A03E */ c.le.s $f20, $f0 /* 07C4C0 7F047950 00000000 */ nop /* 07C4C4 7F047954 4503FFFB */ bc1tl .Ljp7F047944 /* 07C4C8 7F047958 46140101 */ sub.s $f4, $f0, $f20 /* 07C4CC 7F04795C 10000335 */ b .Ljp7F048634 /* 07C4D0 7F047960 92220003 */ lbu $v0, 3($s1) /* 07C4D4 7F047964 24010027 */ li $at, 39 .Ljp7F047968: /* 07C4D8 7F047968 14410255 */ bne $v0, $at, .Ljp7F0482C0 /* 07C4DC 7F04796C 02202025 */ move $a0, $s1 /* 07C4E0 7F047970 C62600A0 */ lwc1 $f6, 0xa0($s1) /* 07C4E4 7F047974 AFA0047C */ sw $zero, 0x47c($sp) /* 07C4E8 7F047978 24050001 */ li $a1, 1 /* 07C4EC 7F04797C 0FC0D5E1 */ jal ai /* 07C4F0 7F047980 E7A60480 */ swc1 $f6, 0x480($sp) /* 07C4F4 7F047984 C62E0098 */ lwc1 $f14, 0x98($s1) /* 07C4F8 7F047988 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8005 /* 07C4FC 7F04798C 460EB03E */ c.le.s $f22, $f14 /* 07C500 7F047990 00000000 */ nop /* 07C504 7F047994 45020016 */ bc1fl .Ljp7F0479F0 /* 07C508 7F047998 8E29000C */ lw $t1, 0xc($s1) /* 07C50C 7F04799C C42283B4 */ lwc1 $f2, %lo(g_GlobalTimerDelta)($at) /* 07C510 7F0479A0 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8005 /* 07C514 7F0479A4 4602703E */ c.le.s $f14, $f2 /* 07C518 7F0479A8 00000000 */ nop /* 07C51C 7F0479AC 45020006 */ bc1fl .Ljp7F0479C8 /* 07C520 7F0479B0 C6200088 */ lwc1 $f0, 0x88($s1) /* 07C524 7F0479B4 C62A0094 */ lwc1 $f10, 0x94($s1) /* 07C528 7F0479B8 C62E0098 */ lwc1 $f14, 0x98($s1) /* 07C52C 7F0479BC 10000008 */ b .Ljp7F0479E0 /* 07C530 7F0479C0 E62A0088 */ swc1 $f10, 0x88($s1) /* 07C534 7F0479C4 C6200088 */ lwc1 $f0, 0x88($s1) .Ljp7F0479C8: /* 07C538 7F0479C8 C6280094 */ lwc1 $f8, 0x94($s1) /* 07C53C 7F0479CC 46004101 */ sub.s $f4, $f8, $f0 /* 07C540 7F0479D0 46022182 */ mul.s $f6, $f4, $f2 /* 07C544 7F0479D4 460E3283 */ div.s $f10, $f6, $f14 /* 07C548 7F0479D8 460A0200 */ add.s $f8, $f0, $f10 /* 07C54C 7F0479DC E6280088 */ swc1 $f8, 0x88($s1) .Ljp7F0479E0: /* 07C550 7F0479E0 C42483B4 */ lwc1 $f4, %lo(g_GlobalTimerDelta)($at) /* 07C554 7F0479E4 46047181 */ sub.s $f6, $f14, $f4 /* 07C558 7F0479E8 E6260098 */ swc1 $f6, 0x98($s1) /* 07C55C 7F0479EC 8E29000C */ lw $t1, 0xc($s1) .Ljp7F0479F0: /* 07C560 7F0479F0 00008025 */ move $s0, $zero /* 07C564 7F0479F4 00095B00 */ sll $t3, $t1, 0xc /* 07C568 7F0479F8 05600014 */ bltz $t3, .Ljp7F047A4C /* 07C56C 7F0479FC 00000000 */ nop /* 07C570 7F047A00 0FC13CCE */ jal objIsHealthy /* 07C574 7F047A04 02202025 */ move $a0, $s1 /* 07C578 7F047A08 10400010 */ beqz $v0, .Ljp7F047A4C /* 07C57C 7F047A0C 00000000 */ nop /* 07C580 7F047A10 C62A0088 */ lwc1 $f10, 0x88($s1) /* 07C584 7F047A14 26240058 */ addiu $a0, $s1, 0x58 /* 07C588 7F047A18 3C0544FA */ lui $a1, 0x44fa /* 07C58C 7F047A1C 460AB03C */ c.lt.s $f22, $f10 /* 07C590 7F047A20 3C06453B */ lui $a2, (0x453B8000 >> 16) # lui $a2, 0x453b /* 07C594 7F047A24 45010006 */ bc1t .Ljp7F047A40 /* 07C598 7F047A28 00000000 */ nop /* 07C59C 7F047A2C C6280094 */ lwc1 $f8, 0x94($s1) /* 07C5A0 7F047A30 4608B03C */ c.lt.s $f22, $f8 /* 07C5A4 7F047A34 00000000 */ nop /* 07C5A8 7F047A38 45000004 */ bc1f .Ljp7F047A4C /* 07C5AC 7F047A3C 00000000 */ nop .Ljp7F047A40: /* 07C5B0 7F047A40 0FC14F64 */ jal sub_GAME_7F053894 /* 07C5B4 7F047A44 34C68000 */ ori $a2, (0x453B8000 & 0xFFFF) # ori $a2, $a2, 0x8000 /* 07C5B8 7F047A48 00408025 */ move $s0, $v0 .Ljp7F047A4C: /* 07C5BC 7F047A4C 5A000019 */ blezl $s0, .Ljp7F047AB4 /* 07C5C0 7F047A50 8E2400AC */ lw $a0, 0xac($s1) /* 07C5C4 7F047A54 8E2400AC */ lw $a0, 0xac($s1) /* 07C5C8 7F047A58 10800005 */ beqz $a0, .Ljp7F047A70 /* 07C5CC 7F047A5C 00000000 */ nop /* 07C5D0 7F047A60 0C002380 */ jal sndGetPlayingState /* 07C5D4 7F047A64 00000000 */ nop /* 07C5D8 7F047A68 5440000A */ bnezl $v0, .Ljp7F047A94 /* 07C5DC 7F047A6C 8E2400AC */ lw $a0, 0xac($s1) .Ljp7F047A70: /* 07C5E0 7F047A70 0FC3021B */ jal lvlGetControlsLockedFlag /* 07C5E4 7F047A74 00000000 */ nop /* 07C5E8 7F047A78 14400005 */ bnez $v0, .Ljp7F047A90 /* 07C5EC 7F047A7C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 /* 07C5F0 7F047A80 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07C5F4 7F047A84 24050041 */ li $a1, 65 /* 07C5F8 7F047A88 0C002386 */ jal sndPlaySfx /* 07C5FC 7F047A8C 262600AC */ addiu $a2, $s1, 0xac .Ljp7F047A90: /* 07C600 7F047A90 8E2400AC */ lw $a0, 0xac($s1) .Ljp7F047A94: /* 07C604 7F047A94 24050008 */ li $a1, 8 /* 07C608 7F047A98 5080000F */ beql $a0, $zero, .Ljp7F047AD8 /* 07C60C 7F047A9C 8E2400A4 */ lw $a0, 0xa4($s1) /* 07C610 7F047AA0 0C002465 */ jal sndCreatePostEvent /* 07C614 7F047AA4 02003025 */ move $a2, $s0 /* 07C618 7F047AA8 1000000B */ b .Ljp7F047AD8 /* 07C61C 7F047AAC 8E2400A4 */ lw $a0, 0xa4($s1) /* 07C620 7F047AB0 8E2400AC */ lw $a0, 0xac($s1) .Ljp7F047AB4: /* 07C624 7F047AB4 50800008 */ beql $a0, $zero, .Ljp7F047AD8 /* 07C628 7F047AB8 8E2400A4 */ lw $a0, 0xa4($s1) /* 07C62C 7F047ABC 0C002380 */ jal sndGetPlayingState /* 07C630 7F047AC0 00000000 */ nop /* 07C634 7F047AC4 50400004 */ beql $v0, $zero, .Ljp7F047AD8 /* 07C638 7F047AC8 8E2400A4 */ lw $a0, 0xa4($s1) /* 07C63C 7F047ACC 0C00240C */ jal sndDeactivate /* 07C640 7F047AD0 8E2400AC */ lw $a0, 0xac($s1) /* 07C644 7F047AD4 8E2400A4 */ lw $a0, 0xa4($s1) .Ljp7F047AD8: /* 07C648 7F047AD8 3C058007 */ lui $a1, %hi(g_CurrentSetup+0) # $a1, 0x8007 /* 07C64C 7F047ADC 5080002A */ beql $a0, $zero, .Ljp7F047B88 /* 07C650 7F047AE0 8E2F0008 */ lw $t7, 8($s1) /* 07C654 7F047AE4 8E2E00A8 */ lw $t6, 0xa8($s1) /* 07C658 7F047AE8 8C8C0000 */ lw $t4, ($a0) /* 07C65C 7F047AEC 24A55D40 */ addiu $a1, %lo(g_CurrentSetup+0) # addiu $a1, $a1, 0x5d40 /* 07C660 7F047AF0 000E5080 */ sll $t2, $t6, 2 /* 07C664 7F047AF4 018A1021 */ addu $v0, $t4, $t2 /* 07C668 7F047AF8 8C4F0000 */ lw $t7, ($v0) /* 07C66C 7F047AFC 8CB90000 */ lw $t9, ($a1) /* 07C670 7F047B00 8CA90018 */ lw $t1, 0x18($a1) /* 07C674 7F047B04 000F6900 */ sll $t5, $t7, 4 /* 07C678 7F047B08 01B91821 */ addu $v1, $t5, $t9 /* 07C67C 7F047B0C 8C780000 */ lw $t8, ($v1) /* 07C680 7F047B10 C6260058 */ lwc1 $f6, 0x58($s1) /* 07C684 7F047B14 C6280060 */ lwc1 $f8, 0x60($s1) /* 07C688 7F047B18 00184080 */ sll $t0, $t8, 2 /* 07C68C 7F047B1C 01184023 */ subu $t0, $t0, $t8 /* 07C690 7F047B20 00084080 */ sll $t0, $t0, 2 /* 07C694 7F047B24 01184023 */ subu $t0, $t0, $t8 /* 07C698 7F047B28 00084080 */ sll $t0, $t0, 2 /* 07C69C 7F047B2C 01093021 */ addu $a2, $t0, $t1 /* 07C6A0 7F047B30 C4C40000 */ lwc1 $f4, ($a2) /* 07C6A4 7F047B34 C4CA0008 */ lwc1 $f10, 8($a2) /* 07C6A8 7F047B38 AFA6047C */ sw $a2, 0x47c($sp) /* 07C6AC 7F047B3C 46062301 */ sub.s $f12, $f4, $f6 /* 07C6B0 7F047B40 0FC16BD4 */ jal atan2f /* 07C6B4 7F047B44 46085381 */ sub.s $f14, $f10, $f8 /* 07C6B8 7F047B48 E7A00480 */ swc1 $f0, 0x480($sp) /* 07C6BC 7F047B4C 8E2B0008 */ lw $t3, 8($s1) /* 07C6C0 7F047B50 3C01DFFF */ lui $at, (0xDFFFFFFF >> 16) # lui $at, 0xdfff /* 07C6C4 7F047B54 C7A40480 */ lwc1 $f4, 0x480($sp) /* 07C6C8 7F047B58 000B7080 */ sll $t6, $t3, 2 /* 07C6CC 7F047B5C 05C10018 */ bgez $t6, .Ljp7F047BC0 /* 07C6D0 7F047B60 3421FFFF */ ori $at, (0xDFFFFFFF & 0xFFFF) # ori $at, $at, 0xffff /* 07C6D4 7F047B64 8E2C0008 */ lw $t4, 8($s1) /* 07C6D8 7F047B68 E62400A0 */ swc1 $f4, 0xa0($s1) /* 07C6DC 7F047B6C 02202025 */ move $a0, $s1 /* 07C6E0 7F047B70 01815024 */ and $t2, $t4, $at /* 07C6E4 7F047B74 0FC113C3 */ jal sub_GAME_7F044B38 /* 07C6E8 7F047B78 AE2A0008 */ sw $t2, 8($s1) /* 07C6EC 7F047B7C 10000011 */ b .Ljp7F047BC4 /* 07C6F0 7F047B80 C6260088 */ lwc1 $f6, 0x88($s1) /* 07C6F4 7F047B84 8E2F0008 */ lw $t7, 8($s1) .Ljp7F047B88: /* 07C6F8 7F047B88 000F6880 */ sll $t5, $t7, 2 /* 07C6FC 7F047B8C 05A3000D */ bgezl $t5, .Ljp7F047BC4 /* 07C700 7F047B90 C6260088 */ lwc1 $f6, 0x88($s1) /* 07C704 7F047B94 C62C0038 */ lwc1 $f12, 0x38($s1) /* 07C708 7F047B98 0FC16BD4 */ jal atan2f /* 07C70C 7F047B9C C62E0040 */ lwc1 $f14, 0x40($s1) /* 07C710 7F047BA0 8E390008 */ lw $t9, 8($s1) /* 07C714 7F047BA4 3C01DFFF */ lui $at, (0xDFFFFFFF >> 16) # lui $at, 0xdfff /* 07C718 7F047BA8 3421FFFF */ ori $at, (0xDFFFFFFF & 0xFFFF) # ori $at, $at, 0xffff /* 07C71C 7F047BAC 0321C024 */ and $t8, $t9, $at /* 07C720 7F047BB0 E62000A0 */ swc1 $f0, 0xa0($s1) /* 07C724 7F047BB4 AE380008 */ sw $t8, 8($s1) /* 07C728 7F047BB8 0FC113C3 */ jal sub_GAME_7F044B38 /* 07C72C 7F047BBC 02202025 */ move $a0, $s1 .Ljp7F047BC0: /* 07C730 7F047BC0 C6260088 */ lwc1 $f6, 0x88($s1) .Ljp7F047BC4: /* 07C734 7F047BC4 4606B03C */ c.lt.s $f22, $f6 /* 07C738 7F047BC8 00000000 */ nop /* 07C73C 7F047BCC 450201AC */ bc1fl .Ljp7F048280 /* 07C740 7F047BD0 8E2A0008 */ lw $t2, 8($s1) /* 07C744 7F047BD4 8E680014 */ lw $t0, 0x14($s3) /* 07C748 7F047BD8 8FA9047C */ lw $t1, 0x47c($sp) /* 07C74C 7F047BDC 4600B386 */ mov.s $f14, $f22 /* 07C750 7F047BE0 AFA8046C */ sw $t0, 0x46c($sp) /* 07C754 7F047BE4 C62C00A0 */ lwc1 $f12, 0xa0($s1) /* 07C758 7F047BE8 E7AC043C */ swc1 $f12, 0x43c($sp) /* 07C75C 7F047BEC C62A009C */ lwc1 $f10, 0x9c($s1) /* 07C760 7F047BF0 11200013 */ beqz $t1, .Ljp7F047C40 /* 07C764 7F047BF4 E7AA0438 */ swc1 $f10, 0x438($sp) /* 07C768 7F047BF8 262B0058 */ addiu $t3, $s1, 0x58 /* 07C76C 7F047BFC AFAB0074 */ sw $t3, 0x74($sp) /* 07C770 7F047C00 0FC160F3 */ jal sinf /* 07C774 7F047C04 E7AE0434 */ swc1 $f14, 0x434($sp) /* 07C778 7F047C08 E7A00440 */ swc1 $f0, 0x440($sp) /* 07C77C 7F047C0C E7B60444 */ swc1 $f22, 0x444($sp) /* 07C780 7F047C10 0FC160F0 */ jal cosf /* 07C784 7F047C14 C62C00A0 */ lwc1 $f12, 0xa0($s1) /* 07C788 7F047C18 E7A00448 */ swc1 $f0, 0x448($sp) /* 07C78C 7F047C1C 8FA40074 */ lw $a0, 0x74($sp) /* 07C790 7F047C20 27A50440 */ addiu $a1, $sp, 0x440 /* 07C794 7F047C24 8FA6047C */ lw $a2, 0x47c($sp) /* 07C798 7F047C28 0FC0BFCD */ jal chrlvGeometryRelated7F02FC34 /* 07C79C 7F047C2C 3C074120 */ lui $a3, 0x4120 /* 07C7A0 7F047C30 10400003 */ beqz $v0, .Ljp7F047C40 /* 07C7A4 7F047C34 C7AE0434 */ lwc1 $f14, 0x434($sp) /* 07C7A8 7F047C38 C62800A0 */ lwc1 $f8, 0xa0($s1) /* 07C7AC 7F047C3C E7A80480 */ swc1 $f8, 0x480($sp) .Ljp7F047C40: /* 07C7B0 7F047C40 3C018005 */ lui $at, %hi(D_80052B4C) # $at, 0x8005 /* 07C7B4 7F047C44 C4242B7C */ lwc1 $f4, %lo(D_80052B4C)($at) /* 07C7B8 7F047C48 3C018005 */ lui $at, %hi(D_80052B50) # $at, 0x8005 /* 07C7BC 7F047C4C C4262B80 */ lwc1 $f6, %lo(D_80052B50)($at) /* 07C7C0 7F047C50 3C0738E4 */ lui $a3, (0x38E4C389 >> 16) # lui $a3, 0x38e4 /* 07C7C4 7F047C54 34E7C389 */ ori $a3, (0x38E4C389 & 0xFFFF) # ori $a3, $a3, 0xc389 /* 07C7C8 7F047C58 262400A0 */ addiu $a0, $s1, 0xa0 /* 07C7CC 7F047C5C 8FA50480 */ lw $a1, 0x480($sp) /* 07C7D0 7F047C60 2626009C */ addiu $a2, $s1, 0x9c /* 07C7D4 7F047C64 E7AE0434 */ swc1 $f14, 0x434($sp) /* 07C7D8 7F047C68 E7A40010 */ swc1 $f4, 0x10($sp) /* 07C7DC 7F047C6C 0FC10D03 */ jal chrobjCallsApplySpeed /* 07C7E0 7F047C70 E7A60014 */ swc1 $f6, 0x14($sp) /* 07C7E4 7F047C74 3C018005 */ lui $at, %hi(D_80052B54) # $at, 0x8005 /* 07C7E8 7F047C78 C4342B84 */ lwc1 $f20, %lo(D_80052B54)($at) /* 07C7EC 7F047C7C C62C00A0 */ lwc1 $f12, 0xa0($s1) /* 07C7F0 7F047C80 C7AE0434 */ lwc1 $f14, 0x434($sp) /* 07C7F4 7F047C84 3C018005 */ lui $at, %hi(D_80052B58) # $at, 0x8005 /* 07C7F8 7F047C88 460CA03E */ c.le.s $f20, $f12 /* 07C7FC 7F047C8C 00000000 */ nop /* 07C800 7F047C90 45020009 */ bc1fl .Ljp7F047CB8 /* 07C804 7F047C94 4616603C */ c.lt.s $f12, $f22 /* 07C808 7F047C98 46146281 */ sub.s $f10, $f12, $f20 .Ljp7F047C9C: /* 07C80C 7F047C9C E62A00A0 */ swc1 $f10, 0xa0($s1) /* 07C810 7F047CA0 C62C00A0 */ lwc1 $f12, 0xa0($s1) /* 07C814 7F047CA4 460CA03E */ c.le.s $f20, $f12 /* 07C818 7F047CA8 00000000 */ nop /* 07C81C 7F047CAC 4503FFFB */ bc1tl .Ljp7F047C9C /* 07C820 7F047CB0 46146281 */ sub.s $f10, $f12, $f20 /* 07C824 7F047CB4 4616603C */ c.lt.s $f12, $f22 .Ljp7F047CB8: /* 07C828 7F047CB8 00000000 */ nop /* 07C82C 7F047CBC 45020009 */ bc1fl .Ljp7F047CE4 /* 07C830 7F047CC0 C7A40480 */ lwc1 $f4, 0x480($sp) /* 07C834 7F047CC4 46146200 */ add.s $f8, $f12, $f20 .Ljp7F047CC8: /* 07C838 7F047CC8 E62800A0 */ swc1 $f8, 0xa0($s1) /* 07C83C 7F047CCC C62C00A0 */ lwc1 $f12, 0xa0($s1) /* 07C840 7F047CD0 4616603C */ c.lt.s $f12, $f22 /* 07C844 7F047CD4 00000000 */ nop /* 07C848 7F047CD8 4503FFFB */ bc1tl .Ljp7F047CC8 /* 07C84C 7F047CDC 46146200 */ add.s $f8, $f12, $f20 /* 07C850 7F047CE0 C7A40480 */ lwc1 $f4, 0x480($sp) .Ljp7F047CE4: /* 07C854 7F047CE4 460C2032 */ c.eq.s $f4, $f12 /* 07C858 7F047CE8 00000000 */ nop /* 07C85C 7F047CEC 4502000F */ bc1fl .Ljp7F047D2C /* 07C860 7F047CF0 8E8E0008 */ lw $t6, 8($s4) /* 07C864 7F047CF4 C620009C */ lwc1 $f0, 0x9c($s1) /* 07C868 7F047CF8 C4262B88 */ lwc1 $f6, %lo(D_80052B58)($at) /* 07C86C 7F047CFC 3C018005 */ lui $at, %hi(D_80052B5C) # $at, 0x8005 /* 07C870 7F047D00 4606003E */ c.le.s $f0, $f6 /* 07C874 7F047D04 00000000 */ nop /* 07C878 7F047D08 45020008 */ bc1fl .Ljp7F047D2C /* 07C87C 7F047D0C 8E8E0008 */ lw $t6, 8($s4) /* 07C880 7F047D10 C42A2B8C */ lwc1 $f10, %lo(D_80052B5C)($at) /* 07C884 7F047D14 4600503E */ c.le.s $f10, $f0 /* 07C888 7F047D18 00000000 */ nop /* 07C88C 7F047D1C 45020003 */ bc1fl .Ljp7F047D2C /* 07C890 7F047D20 8E8E0008 */ lw $t6, 8($s4) /* 07C894 7F047D24 E636009C */ swc1 $f22, 0x9c($s1) /* 07C898 7F047D28 8E8E0008 */ lw $t6, 8($s4) .Ljp7F047D2C: /* 07C89C 7F047D2C 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8005 /* 07C8A0 7F047D30 C42283B4 */ lwc1 $f2, %lo(g_GlobalTimerDelta)($at) /* 07C8A4 7F047D34 8DCC0008 */ lw $t4, 8($t6) /* 07C8A8 7F047D38 C7A4043C */ lwc1 $f4, 0x43c($sp) /* 07C8AC 7F047D3C 4602B03C */ c.lt.s $f22, $f2 /* 07C8B0 7F047D40 8D8A000C */ lw $t2, 0xc($t4) /* 07C8B4 7F047D44 45000004 */ bc1f .Ljp7F047D58 /* 07C8B8 7F047D48 8D500004 */ lw $s0, 4($t2) /* 07C8BC 7F047D4C C62800A0 */ lwc1 $f8, 0xa0($s1) /* 07C8C0 7F047D50 46044181 */ sub.s $f6, $f8, $f4 /* 07C8C4 7F047D54 46023383 */ div.s $f14, $f6, $f2 .Ljp7F047D58: /* 07C8C8 7F047D58 4616703C */ c.lt.s $f14, $f22 /* 07C8CC 7F047D5C 00000000 */ nop /* 07C8D0 7F047D60 45000002 */ bc1f .Ljp7F047D6C /* 07C8D4 7F047D64 00000000 */ nop /* 07C8D8 7F047D68 46147380 */ add.s $f14, $f14, $f20 .Ljp7F047D6C: /* 07C8DC 7F047D6C 0FC160F3 */ jal sinf /* 07C8E0 7F047D70 46007306 */ mov.s $f12, $f14 /* 07C8E4 7F047D74 C60A0008 */ lwc1 $f10, 8($s0) /* 07C8E8 7F047D78 C6880014 */ lwc1 $f8, 0x14($s4) /* 07C8EC 7F047D7C 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8005 /* 07C8F0 7F047D80 46085102 */ mul.s $f4, $f10, $f8 /* 07C8F4 7F047D84 C42A83B4 */ lwc1 $f10, %lo(g_GlobalTimerDelta)($at) /* 07C8F8 7F047D88 46040182 */ mul.s $f6, $f0, $f4 /* 07C8FC 7F047D8C 00000000 */ nop /* 07C900 7F047D90 460A3202 */ mul.s $f8, $f6, $f10 /* 07C904 7F047D94 E7A80464 */ swc1 $f8, 0x464($sp) /* 07C908 7F047D98 0FC160F3 */ jal sinf /* 07C90C 7F047D9C C62C00A0 */ lwc1 $f12, 0xa0($s1) /* 07C910 7F047DA0 E7A00440 */ swc1 $f0, 0x440($sp) /* 07C914 7F047DA4 E7B60444 */ swc1 $f22, 0x444($sp) /* 07C918 7F047DA8 0FC160F0 */ jal cosf /* 07C91C 7F047DAC C62C00A0 */ lwc1 $f12, 0xa0($s1) /* 07C920 7F047DB0 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07C924 7F047DB4 44817000 */ mtc1 $at, $f14 /* 07C928 7F047DB8 E7A00448 */ swc1 $f0, 0x448($sp) /* 07C92C 7F047DBC 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8005 /* 07C930 7F047DC0 C42283B4 */ lwc1 $f2, %lo(g_GlobalTimerDelta)($at) /* 07C934 7F047DC4 C6240088 */ lwc1 $f4, 0x88($s1) /* 07C938 7F047DC8 C7AA0440 */ lwc1 $f10, 0x440($sp) /* 07C93C 7F047DCC C7AC0464 */ lwc1 $f12, 0x464($sp) /* 07C940 7F047DD0 46022182 */ mul.s $f6, $f4, $f2 /* 07C944 7F047DD4 C6240058 */ lwc1 $f4, 0x58($s1) /* 07C948 7F047DD8 27B0046C */ addiu $s0, $sp, 0x46c /* 07C94C 7F047DDC 240F001F */ li $t7, 31 /* 07C950 7F047DE0 02002025 */ move $a0, $s0 /* 07C954 7F047DE4 460A3202 */ mul.s $f8, $f6, $f10 /* 07C958 7F047DE8 46082180 */ add.s $f6, $f4, $f8 /* 07C95C 7F047DEC C7A40448 */ lwc1 $f4, 0x448($sp) /* 07C960 7F047DF0 460C2202 */ mul.s $f8, $f4, $f12 /* 07C964 7F047DF4 46083181 */ sub.s $f6, $f6, $f8 /* 07C968 7F047DF8 E7A6069C */ swc1 $f6, 0x69c($sp) /* 07C96C 7F047DFC C628005C */ lwc1 $f8, 0x5c($s1) /* 07C970 7F047E00 44073000 */ mfc1 $a3, $f6 /* 07C974 7F047E04 E7A806A0 */ swc1 $f8, 0x6a0($sp) /* 07C978 7F047E08 C6280088 */ lwc1 $f8, 0x88($s1) /* 07C97C 7F047E0C 46024202 */ mul.s $f8, $f8, $f2 /* 07C980 7F047E10 00000000 */ nop /* 07C984 7F047E14 46044202 */ mul.s $f8, $f8, $f4 /* 07C988 7F047E18 C6240060 */ lwc1 $f4, 0x60($s1) /* 07C98C 7F047E1C 46082100 */ add.s $f4, $f4, $f8 /* 07C990 7F047E20 460C5202 */ mul.s $f8, $f10, $f12 /* 07C994 7F047E24 46044280 */ add.s $f10, $f8, $f4 /* 07C998 7F047E28 E7AA06A4 */ swc1 $f10, 0x6a4($sp) /* 07C99C 7F047E2C 8E660010 */ lw $a2, 0x10($s3) /* 07C9A0 7F047E30 8E650008 */ lw $a1, 8($s3) /* 07C9A4 7F047E34 E7B60020 */ swc1 $f22, 0x20($sp) /* 07C9A8 7F047E38 E7B60018 */ swc1 $f22, 0x18($sp) /* 07C9AC 7F047E3C AFAF0014 */ sw $t7, 0x14($sp) /* 07C9B0 7F047E40 E7AA0010 */ swc1 $f10, 0x10($sp) /* 07C9B4 7F047E44 E7AE0024 */ swc1 $f14, 0x24($sp) /* 07C9B8 7F047E48 0FC2C675 */ jal stanTestLineUnobstructed /* 07C9BC 7F047E4C E7AE001C */ swc1 $f14, 0x1c($sp) /* 07C9C0 7F047E50 104000FA */ beqz $v0, .Ljp7F04823C /* 07C9C4 7F047E54 02002025 */ move $a0, $s0 /* 07C9C8 7F047E58 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07C9CC 7F047E5C 44814000 */ mtc1 $at, $f8 /* 07C9D0 7F047E60 240D001F */ li $t5, 31 /* 07C9D4 7F047E64 AFAD0010 */ sw $t5, 0x10($sp) /* 07C9D8 7F047E68 8FA5069C */ lw $a1, 0x69c($sp) /* 07C9DC 7F047E6C 8FA606A4 */ lw $a2, 0x6a4($sp) /* 07C9E0 7F047E70 3C074120 */ lui $a3, 0x4120 /* 07C9E4 7F047E74 E7B60014 */ swc1 $f22, 0x14($sp) /* 07C9E8 7F047E78 0FC2C91A */ jal stanTestVolume /* 07C9EC 7F047E7C E7A80018 */ swc1 $f8, 0x18($sp) /* 07C9F0 7F047E80 044300EF */ bgezl $v0, .Ljp7F048240 /* 07C9F4 7F047E84 C6260098 */ lwc1 $f6, 0x98($s1) /* 07C9F8 7F047E88 8E790014 */ lw $t9, 0x14($s3) /* 07C9FC 7F047E8C 8FB8046C */ lw $t8, 0x46c($sp) /* 07CA00 7F047E90 02202025 */ move $a0, $s1 /* 07CA04 7F047E94 AFB90450 */ sw $t9, 0x450($sp) /* 07CA08 7F047E98 C6640008 */ lwc1 $f4, 8($s3) /* 07CA0C 7F047E9C E7A40454 */ swc1 $f4, 0x454($sp) /* 07CA10 7F047EA0 C666000C */ lwc1 $f6, 0xc($s3) /* 07CA14 7F047EA4 E7A60458 */ swc1 $f6, 0x458($sp) /* 07CA18 7F047EA8 C66A0010 */ lwc1 $f10, 0x10($s3) /* 07CA1C 7F047EAC E7AA045C */ swc1 $f10, 0x45c($sp) /* 07CA20 7F047EB0 AE780014 */ sw $t8, 0x14($s3) /* 07CA24 7F047EB4 C7A2069C */ lwc1 $f2, 0x69c($sp) /* 07CA28 7F047EB8 E6620008 */ swc1 $f2, 8($s3) /* 07CA2C 7F047EBC E6220058 */ swc1 $f2, 0x58($s1) /* 07CA30 7F047EC0 C7A206A4 */ lwc1 $f2, 0x6a4($sp) /* 07CA34 7F047EC4 E6620010 */ swc1 $f2, 0x10($s3) /* 07CA38 7F047EC8 0FC101E1 */ jal chrobjCollisionRelated /* 07CA3C 7F047ECC E6220060 */ swc1 $f2, 0x60($s1) /* 07CA40 7F047ED0 0FC15C68 */ jal setupUpdateObjectRoomPosition /* 07CA44 7F047ED4 02202025 */ move $a0, $s1 /* 07CA48 7F047ED8 0FC1131F */ jal sub_GAME_7F0448A8 /* 07CA4C 7F047EDC 02602025 */ move $a0, $s3 /* 07CA50 7F047EE0 10400092 */ beqz $v0, .Ljp7F04812C /* 07CA54 7F047EE4 00409025 */ move $s2, $v0 /* 07CA58 7F047EE8 8E880008 */ lw $t0, 8($s4) /* 07CA5C 7F047EEC C6280018 */ lwc1 $f8, 0x18($s1) /* 07CA60 7F047EF0 02002025 */ move $a0, $s0 /* 07CA64 7F047EF4 8D090008 */ lw $t1, 8($t0) /* 07CA68 7F047EF8 8D2B0028 */ lw $t3, 0x28($t1) /* 07CA6C 7F047EFC 8D620004 */ lw $v0, 4($t3) /* 07CA70 7F047F00 C4440004 */ lwc1 $f4, 4($v0) /* 07CA74 7F047F04 46044182 */ mul.s $f6, $f8, $f4 /* 07CA78 7F047F08 E7A60428 */ swc1 $f6, 0x428($sp) /* 07CA7C 7F047F0C C62A0020 */ lwc1 $f10, 0x20($s1) /* 07CA80 7F047F10 C4480004 */ lwc1 $f8, 4($v0) /* 07CA84 7F047F14 46085102 */ mul.s $f4, $f10, $f8 /* 07CA88 7F047F18 E7A40430 */ swc1 $f4, 0x430($sp) /* 07CA8C 7F047F1C C6260018 */ lwc1 $f6, 0x18($s1) /* 07CA90 7F047F20 C44A0008 */ lwc1 $f10, 8($v0) /* 07CA94 7F047F24 460A3202 */ mul.s $f8, $f6, $f10 /* 07CA98 7F047F28 E7A8041C */ swc1 $f8, 0x41c($sp) /* 07CA9C 7F047F2C C6240020 */ lwc1 $f4, 0x20($s1) /* 07CAA0 7F047F30 C4460008 */ lwc1 $f6, 8($v0) /* 07CAA4 7F047F34 46062282 */ mul.s $f10, $f4, $f6 /* 07CAA8 7F047F38 E7AA0424 */ swc1 $f10, 0x424($sp) /* 07CAAC 7F047F3C C6280038 */ lwc1 $f8, 0x38($s1) /* 07CAB0 7F047F40 C4440014 */ lwc1 $f4, 0x14($v0) /* 07CAB4 7F047F44 46044182 */ mul.s $f6, $f8, $f4 /* 07CAB8 7F047F48 E7A60410 */ swc1 $f6, 0x410($sp) /* 07CABC 7F047F4C C62A0040 */ lwc1 $f10, 0x40($s1) /* 07CAC0 7F047F50 C4480014 */ lwc1 $f8, 0x14($v0) /* 07CAC4 7F047F54 46085102 */ mul.s $f4, $f10, $f8 /* 07CAC8 7F047F58 E7A40418 */ swc1 $f4, 0x418($sp) /* 07CACC 7F047F5C C6260038 */ lwc1 $f6, 0x38($s1) /* 07CAD0 7F047F60 C44A0018 */ lwc1 $f10, 0x18($v0) /* 07CAD4 7F047F64 460A3202 */ mul.s $f8, $f6, $f10 /* 07CAD8 7F047F68 E7A80404 */ swc1 $f8, 0x404($sp) /* 07CADC 7F047F6C C6240040 */ lwc1 $f4, 0x40($s1) /* 07CAE0 7F047F70 C4460018 */ lwc1 $f6, 0x18($v0) /* 07CAE4 7F047F74 C7A80410 */ lwc1 $f8, 0x410($sp) /* 07CAE8 7F047F78 46062282 */ mul.s $f10, $f4, $f6 /* 07CAEC 7F047F7C C7A40428 */ lwc1 $f4, 0x428($sp) /* 07CAF0 7F047F80 E7AA040C */ swc1 $f10, 0x40c($sp) /* 07CAF4 7F047F84 8E6E0014 */ lw $t6, 0x14($s3) /* 07CAF8 7F047F88 AFAE046C */ sw $t6, 0x46c($sp) /* 07CAFC 7F047F8C C6600008 */ lwc1 $f0, 8($s3) /* 07CB00 7F047F90 C6620010 */ lwc1 $f2, 0x10($s3) /* 07CB04 7F047F94 46040180 */ add.s $f6, $f0, $f4 /* 07CB08 7F047F98 C7A40418 */ lwc1 $f4, 0x418($sp) /* 07CB0C 7F047F9C 44050000 */ mfc1 $a1, $f0 /* 07CB10 7F047FA0 44061000 */ mfc1 $a2, $f2 /* 07CB14 7F047FA4 46064280 */ add.s $f10, $f8, $f6 /* 07CB18 7F047FA8 C7A80430 */ lwc1 $f8, 0x430($sp) /* 07CB1C 7F047FAC 46081180 */ add.s $f6, $f2, $f8 /* 07CB20 7F047FB0 44075000 */ mfc1 $a3, $f10 /* 07CB24 7F047FB4 46062280 */ add.s $f10, $f4, $f6 /* 07CB28 7F047FB8 0FC2C5E5 */ jal walkTilesBetweenPoints_NoCallback /* 07CB2C 7F047FBC E7AA0010 */ swc1 $f10, 0x10($sp) /* 07CB30 7F047FC0 10400059 */ beqz $v0, .Ljp7F048128 /* 07CB34 7F047FC4 C7A40428 */ lwc1 $f4, 0x428($sp) /* 07CB38 7F047FC8 C6600008 */ lwc1 $f0, 8($s3) /* 07CB3C 7F047FCC C7A80410 */ lwc1 $f8, 0x410($sp) /* 07CB40 7F047FD0 C6620010 */ lwc1 $f2, 0x10($s3) /* 07CB44 7F047FD4 46040180 */ add.s $f6, $f0, $f4 /* 07CB48 7F047FD8 C7A40418 */ lwc1 $f4, 0x418($sp) /* 07CB4C 7F047FDC 02002025 */ move $a0, $s0 /* 07CB50 7F047FE0 46064280 */ add.s $f10, $f8, $f6 /* 07CB54 7F047FE4 C7A60430 */ lwc1 $f6, 0x430($sp) /* 07CB58 7F047FE8 44055000 */ mfc1 $a1, $f10 /* 07CB5C 7F047FEC 46061280 */ add.s $f10, $f2, $f6 /* 07CB60 7F047FF0 460A2180 */ add.s $f6, $f4, $f10 /* 07CB64 7F047FF4 C7AA041C */ lwc1 $f10, 0x41c($sp) /* 07CB68 7F047FF8 44063000 */ mfc1 $a2, $f6 /* 07CB6C 7F047FFC 460A0180 */ add.s $f6, $f0, $f10 /* 07CB70 7F048000 46064280 */ add.s $f10, $f8, $f6 /* 07CB74 7F048004 C7A80424 */ lwc1 $f8, 0x424($sp) /* 07CB78 7F048008 46081180 */ add.s $f6, $f2, $f8 /* 07CB7C 7F04800C 44075000 */ mfc1 $a3, $f10 /* 07CB80 7F048010 46062280 */ add.s $f10, $f4, $f6 /* 07CB84 7F048014 0FC2C5E5 */ jal walkTilesBetweenPoints_NoCallback /* 07CB88 7F048018 E7AA0010 */ swc1 $f10, 0x10($sp) /* 07CB8C 7F04801C 10400042 */ beqz $v0, .Ljp7F048128 /* 07CB90 7F048020 C7A4041C */ lwc1 $f4, 0x41c($sp) /* 07CB94 7F048024 C6680008 */ lwc1 $f8, 8($s3) /* 07CB98 7F048028 C7A60410 */ lwc1 $f6, 0x410($sp) /* 07CB9C 7F04802C 02002025 */ move $a0, $s0 /* 07CBA0 7F048030 46044000 */ add.s $f0, $f8, $f4 /* 07CBA4 7F048034 C7A40424 */ lwc1 $f4, 0x424($sp) /* 07CBA8 7F048038 C6680010 */ lwc1 $f8, 0x10($s3) /* 07CBAC 7F04803C 46003280 */ add.s $f10, $f6, $f0 /* 07CBB0 7F048040 C7A60418 */ lwc1 $f6, 0x418($sp) /* 07CBB4 7F048044 46044080 */ add.s $f2, $f8, $f4 /* 07CBB8 7F048048 44055000 */ mfc1 $a1, $f10 /* 07CBBC 7F04804C C7A80404 */ lwc1 $f8, 0x404($sp) /* 07CBC0 7F048050 46023280 */ add.s $f10, $f6, $f2 /* 07CBC4 7F048054 C7A6040C */ lwc1 $f6, 0x40c($sp) /* 07CBC8 7F048058 46004100 */ add.s $f4, $f8, $f0 /* 07CBCC 7F04805C 44065000 */ mfc1 $a2, $f10 /* 07CBD0 7F048060 46023280 */ add.s $f10, $f6, $f2 /* 07CBD4 7F048064 44072000 */ mfc1 $a3, $f4 /* 07CBD8 7F048068 0FC2C5E5 */ jal walkTilesBetweenPoints_NoCallback /* 07CBDC 7F04806C E7AA0010 */ swc1 $f10, 0x10($sp) /* 07CBE0 7F048070 1040002D */ beqz $v0, .Ljp7F048128 /* 07CBE4 7F048074 C7A4041C */ lwc1 $f4, 0x41c($sp) /* 07CBE8 7F048078 C6600008 */ lwc1 $f0, 8($s3) /* 07CBEC 7F04807C C7A80404 */ lwc1 $f8, 0x404($sp) /* 07CBF0 7F048080 C6620010 */ lwc1 $f2, 0x10($s3) /* 07CBF4 7F048084 46040180 */ add.s $f6, $f0, $f4 /* 07CBF8 7F048088 C7A4040C */ lwc1 $f4, 0x40c($sp) /* 07CBFC 7F04808C 02002025 */ move $a0, $s0 /* 07CC00 7F048090 46064280 */ add.s $f10, $f8, $f6 /* 07CC04 7F048094 C7A60424 */ lwc1 $f6, 0x424($sp) /* 07CC08 7F048098 44055000 */ mfc1 $a1, $f10 /* 07CC0C 7F04809C 46061280 */ add.s $f10, $f2, $f6 /* 07CC10 7F0480A0 460A2180 */ add.s $f6, $f4, $f10 /* 07CC14 7F0480A4 C7AA0428 */ lwc1 $f10, 0x428($sp) /* 07CC18 7F0480A8 44063000 */ mfc1 $a2, $f6 /* 07CC1C 7F0480AC 460A0180 */ add.s $f6, $f0, $f10 /* 07CC20 7F0480B0 46064280 */ add.s $f10, $f8, $f6 /* 07CC24 7F0480B4 C7A80430 */ lwc1 $f8, 0x430($sp) /* 07CC28 7F0480B8 46081180 */ add.s $f6, $f2, $f8 /* 07CC2C 7F0480BC 44075000 */ mfc1 $a3, $f10 /* 07CC30 7F0480C0 46062280 */ add.s $f10, $f4, $f6 /* 07CC34 7F0480C4 0FC2C5E5 */ jal walkTilesBetweenPoints_NoCallback /* 07CC38 7F0480C8 E7AA0010 */ swc1 $f10, 0x10($sp) /* 07CC3C 7F0480CC 10400016 */ beqz $v0, .Ljp7F048128 /* 07CC40 7F0480D0 C7A40428 */ lwc1 $f4, 0x428($sp) /* 07CC44 7F0480D4 C6680008 */ lwc1 $f8, 8($s3) /* 07CC48 7F0480D8 C7A60404 */ lwc1 $f6, 0x404($sp) /* 07CC4C 7F0480DC 02002025 */ move $a0, $s0 /* 07CC50 7F0480E0 46044000 */ add.s $f0, $f8, $f4 /* 07CC54 7F0480E4 C7A40430 */ lwc1 $f4, 0x430($sp) /* 07CC58 7F0480E8 C6680010 */ lwc1 $f8, 0x10($s3) /* 07CC5C 7F0480EC 46003280 */ add.s $f10, $f6, $f0 /* 07CC60 7F0480F0 C7A6040C */ lwc1 $f6, 0x40c($sp) /* 07CC64 7F0480F4 46044080 */ add.s $f2, $f8, $f4 /* 07CC68 7F0480F8 44055000 */ mfc1 $a1, $f10 /* 07CC6C 7F0480FC C7A80410 */ lwc1 $f8, 0x410($sp) /* 07CC70 7F048100 46023280 */ add.s $f10, $f6, $f2 /* 07CC74 7F048104 C7A60418 */ lwc1 $f6, 0x418($sp) /* 07CC78 7F048108 46004100 */ add.s $f4, $f8, $f0 /* 07CC7C 7F04810C 44065000 */ mfc1 $a2, $f10 /* 07CC80 7F048110 46023280 */ add.s $f10, $f6, $f2 /* 07CC84 7F048114 44072000 */ mfc1 $a3, $f4 /* 07CC88 7F048118 0FC2C5E5 */ jal walkTilesBetweenPoints_NoCallback /* 07CC8C 7F04811C E7AA0010 */ swc1 $f10, 0x10($sp) /* 07CC90 7F048120 14400002 */ bnez $v0, .Ljp7F04812C /* 07CC94 7F048124 00000000 */ nop .Ljp7F048128: /* 07CC98 7F048128 00009025 */ move $s2, $zero .Ljp7F04812C: /* 07CC9C 7F04812C 12400023 */ beqz $s2, .Ljp7F0481BC /* 07CCA0 7F048130 02202025 */ move $a0, $s1 /* 07CCA4 7F048134 262C0058 */ addiu $t4, $s1, 0x58 /* 07CCA8 7F048138 AFAC0074 */ sw $t4, 0x74($sp) /* 07CCAC 7F04813C 0FC113C3 */ jal sub_GAME_7F044B38 /* 07CCB0 7F048140 2630007C */ addiu $s0, $s1, 0x7c /* 07CCB4 7F048144 02602025 */ move $a0, $s3 /* 07CCB8 7F048148 0FC1016D */ jal sub_GAME_7F0402B4 /* 07CCBC 7F04814C 02002825 */ move $a1, $s0 /* 07CCC0 7F048150 0FC14832 */ jal detonate_proxmine_In_range /* 07CCC4 7F048154 8FA40074 */ lw $a0, 0x74($sp) /* 07CCC8 7F048158 8FAA047C */ lw $t2, 0x47c($sp) /* 07CCCC 7F04815C 27A40454 */ addiu $a0, $sp, 0x454 /* 07CCD0 7F048160 27A5069C */ addiu $a1, $sp, 0x69c /* 07CCD4 7F048164 11400054 */ beqz $t2, .Ljp7F0482B8 /* 07CCD8 7F048168 01403025 */ move $a2, $t2 /* 07CCDC 7F04816C 0FC0C014 */ jal chrlvIsArrivingLaterallyAtPos /* 07CCE0 7F048170 3C0742C8 */ lui $a3, 0x42c8 /* 07CCE4 7F048174 10400050 */ beqz $v0, .Ljp7F0482B8 /* 07CCE8 7F048178 00000000 */ nop /* 07CCEC 7F04817C 8E2F00A8 */ lw $t7, 0xa8($s1) /* 07CCF0 7F048180 8E3900A4 */ lw $t9, 0xa4($s1) /* 07CCF4 7F048184 3C014270 */ li $at, 0x42700000 # 60.000000 /* 07CCF8 7F048188 25ED0001 */ addiu $t5, $t7, 1 /* 07CCFC 7F04818C AE2D00A8 */ sw $t5, 0xa8($s1) /* 07CD00 7F048190 8F380000 */ lw $t8, ($t9) /* 07CD04 7F048194 000D4880 */ sll $t1, $t5, 2 /* 07CD08 7F048198 03095821 */ addu $t3, $t8, $t1 /* 07CD0C 7F04819C 8D6E0000 */ lw $t6, ($t3) /* 07CD10 7F0481A0 05C10045 */ bgez $t6, .Ljp7F0482B8 /* 07CD14 7F0481A4 00000000 */ nop /* 07CD18 7F0481A8 44814000 */ mtc1 $at, $f8 /* 07CD1C 7F0481AC AE2000A4 */ sw $zero, 0xa4($s1) /* 07CD20 7F0481B0 E6360094 */ swc1 $f22, 0x94($s1) /* 07CD24 7F0481B4 10000040 */ b .Ljp7F0482B8 /* 07CD28 7F0481B8 E6280098 */ swc1 $f8, 0x98($s1) .Ljp7F0481BC: /* 07CD2C 7F0481BC C6240098 */ lwc1 $f4, 0x98($s1) /* 07CD30 7F0481C0 3C014270 */ li $at, 0x42700000 # 60.000000 /* 07CD34 7F0481C4 4616203C */ c.lt.s $f4, $f22 /* 07CD38 7F0481C8 00000000 */ nop /* 07CD3C 7F0481CC 45020006 */ bc1fl .Ljp7F0481E8 /* 07CD40 7F0481D0 E6360088 */ swc1 $f22, 0x88($s1) /* 07CD44 7F0481D4 C6260088 */ lwc1 $f6, 0x88($s1) /* 07CD48 7F0481D8 44815000 */ mtc1 $at, $f10 /* 07CD4C 7F0481DC E6260094 */ swc1 $f6, 0x94($s1) /* 07CD50 7F0481E0 E62A0098 */ swc1 $f10, 0x98($s1) /* 07CD54 7F0481E4 E6360088 */ swc1 $f22, 0x88($s1) .Ljp7F0481E8: /* 07CD58 7F0481E8 C7A8043C */ lwc1 $f8, 0x43c($sp) /* 07CD5C 7F0481EC 02202025 */ move $a0, $s1 /* 07CD60 7F0481F0 E62800A0 */ swc1 $f8, 0xa0($s1) /* 07CD64 7F0481F4 C7A40438 */ lwc1 $f4, 0x438($sp) /* 07CD68 7F0481F8 E624009C */ swc1 $f4, 0x9c($s1) /* 07CD6C 7F0481FC 8FAC0450 */ lw $t4, 0x450($sp) /* 07CD70 7F048200 AE6C0014 */ sw $t4, 0x14($s3) /* 07CD74 7F048204 C7A20454 */ lwc1 $f2, 0x454($sp) /* 07CD78 7F048208 E6620008 */ swc1 $f2, 8($s3) /* 07CD7C 7F04820C E6220058 */ swc1 $f2, 0x58($s1) /* 07CD80 7F048210 C7A20458 */ lwc1 $f2, 0x458($sp) /* 07CD84 7F048214 E662000C */ swc1 $f2, 0xc($s3) /* 07CD88 7F048218 E622005C */ swc1 $f2, 0x5c($s1) /* 07CD8C 7F04821C C7A2045C */ lwc1 $f2, 0x45c($sp) /* 07CD90 7F048220 E6620010 */ swc1 $f2, 0x10($s3) /* 07CD94 7F048224 0FC101E1 */ jal chrobjCollisionRelated /* 07CD98 7F048228 E6220060 */ swc1 $f2, 0x60($s1) /* 07CD9C 7F04822C 0FC15C68 */ jal setupUpdateObjectRoomPosition /* 07CDA0 7F048230 02202025 */ move $a0, $s1 /* 07CDA4 7F048234 10000020 */ b .Ljp7F0482B8 /* 07CDA8 7F048238 00000000 */ nop .Ljp7F04823C: /* 07CDAC 7F04823C C6260098 */ lwc1 $f6, 0x98($s1) .Ljp7F048240: /* 07CDB0 7F048240 3C014270 */ li $at, 0x42700000 # 60.000000 /* 07CDB4 7F048244 4616303C */ c.lt.s $f6, $f22 /* 07CDB8 7F048248 00000000 */ nop /* 07CDBC 7F04824C 45020006 */ bc1fl .Ljp7F048268 /* 07CDC0 7F048250 E6360088 */ swc1 $f22, 0x88($s1) /* 07CDC4 7F048254 C62A0088 */ lwc1 $f10, 0x88($s1) /* 07CDC8 7F048258 44814000 */ mtc1 $at, $f8 /* 07CDCC 7F04825C E62A0094 */ swc1 $f10, 0x94($s1) /* 07CDD0 7F048260 E6280098 */ swc1 $f8, 0x98($s1) /* 07CDD4 7F048264 E6360088 */ swc1 $f22, 0x88($s1) .Ljp7F048268: /* 07CDD8 7F048268 C7A4043C */ lwc1 $f4, 0x43c($sp) /* 07CDDC 7F04826C E62400A0 */ swc1 $f4, 0xa0($s1) /* 07CDE0 7F048270 C7A60438 */ lwc1 $f6, 0x438($sp) /* 07CDE4 7F048274 10000010 */ b .Ljp7F0482B8 /* 07CDE8 7F048278 E626009C */ swc1 $f6, 0x9c($s1) /* 07CDEC 7F04827C 8E2A0008 */ lw $t2, 8($s1) .Ljp7F048280: /* 07CDF0 7F048280 000A7880 */ sll $t7, $t2, 2 /* 07CDF4 7F048284 05E1000C */ bgez $t7, .Ljp7F0482B8 /* 07CDF8 7F048288 00000000 */ nop /* 07CDFC 7F04828C C62C0038 */ lwc1 $f12, 0x38($s1) /* 07CE00 7F048290 0FC16BD4 */ jal atan2f /* 07CE04 7F048294 C62E0040 */ lwc1 $f14, 0x40($s1) /* 07CE08 7F048298 8E2D0008 */ lw $t5, 8($s1) /* 07CE0C 7F04829C 3C01DFFF */ lui $at, (0xDFFFFFFF >> 16) # lui $at, 0xdfff /* 07CE10 7F0482A0 3421FFFF */ ori $at, (0xDFFFFFFF & 0xFFFF) # ori $at, $at, 0xffff /* 07CE14 7F0482A4 01A1C824 */ and $t9, $t5, $at /* 07CE18 7F0482A8 E62000A0 */ swc1 $f0, 0xa0($s1) /* 07CE1C 7F0482AC AE390008 */ sw $t9, 8($s1) /* 07CE20 7F0482B0 0FC113C3 */ jal sub_GAME_7F044B38 /* 07CE24 7F0482B4 02202025 */ move $a0, $s1 .Ljp7F0482B8: /* 07CE28 7F0482B8 100000DE */ b .Ljp7F048634 /* 07CE2C 7F0482BC 92220003 */ lbu $v0, 3($s1) .Ljp7F0482C0: /* 07CE30 7F0482C0 24010028 */ li $at, 40 /* 07CE34 7F0482C4 144100DA */ bne $v0, $at, .Ljp7F048630 /* 07CE38 7F0482C8 02202025 */ move $a0, $s1 /* 07CE3C 7F0482CC 0FC0D5E1 */ jal ai /* 07CE40 7F0482D0 24050001 */ li $a1, 1 /* 07CE44 7F0482D4 8E300014 */ lw $s0, 0x14($s1) /* 07CE48 7F0482D8 26250058 */ addiu $a1, $s1, 0x58 /* 07CE4C 7F0482DC 8E080020 */ lw $t0, 0x20($s0) /* 07CE50 7F0482E0 02002025 */ move $a0, $s0 /* 07CE54 7F0482E4 51000065 */ beql $t0, $zero, .Ljp7F04847C /* 07CE58 7F0482E8 C62C00A0 */ lwc1 $f12, 0xa0($s1) /* 07CE5C 7F0482EC 0FC1B47F */ jal setsuboffset /* 07CE60 7F0482F0 AFA50074 */ sw $a1, 0x74($sp) /* 07CE64 7F0482F4 8E300014 */ lw $s0, 0x14($s1) /* 07CE68 7F0482F8 3C098003 */ lui $t1, %hi(animation_table_ptrs2+4) # $t1, 0x8003 /* 07CE6C 7F0482FC 8D29A090 */ lw $t1, %lo(animation_table_ptrs2+4)($t1) /* 07CE70 7F048300 8E180020 */ lw $t8, 0x20($s0) /* 07CE74 7F048304 3C054127 */ lui $a1, (0x4127020C >> 16) # lui $a1, 0x4127 /* 07CE78 7F048308 02002025 */ move $a0, $s0 /* 07CE7C 7F04830C 17090009 */ bne $t8, $t1, .Ljp7F048334 /* 07CE80 7F048310 00000000 */ nop /* 07CE84 7F048314 0FC1B51D */ jal sub_GAME_7F06CE84 /* 07CE88 7F048318 34A5020C */ ori $a1, (0x4127020C & 0xFFFF) # ori $a1, $a1, 0x20c /* 07CE8C 7F04831C 3C054049 */ lui $a1, (0x40490FDB >> 16) # lui $a1, 0x4049 /* 07CE90 7F048320 34A50FDB */ ori $a1, (0x40490FDB & 0xFFFF) # ori $a1, $a1, 0xfdb /* 07CE94 7F048324 0FC1B4CB */ jal setsubroty /* 07CE98 7F048328 8E240014 */ lw $a0, 0x14($s1) /* 07CE9C 7F04832C 10000024 */ b .Ljp7F0483C0 /* 07CEA0 7F048330 00000000 */ nop .Ljp7F048334: /* 07CEA4 7F048334 0C001A57 */ jal bossGetStageNum /* 07CEA8 7F048338 00000000 */ nop /* 07CEAC 7F04833C 24010016 */ li $at, 22 /* 07CEB0 7F048340 1441000A */ bne $v0, $at, .Ljp7F04836C /* 07CEB4 7F048344 3C053F85 */ lui $a1, (0x3F859B3D >> 16) # lui $a1, 0x3f85 /* 07CEB8 7F048348 8E240014 */ lw $a0, 0x14($s1) /* 07CEBC 7F04834C 0FC1B51D */ jal sub_GAME_7F06CE84 /* 07CEC0 7F048350 34A59B3D */ ori $a1, (0x3F859B3D & 0xFFFF) # ori $a1, $a1, 0x9b3d /* 07CEC4 7F048354 3C054016 */ lui $a1, (0x4016CBE4 >> 16) # lui $a1, 0x4016 /* 07CEC8 7F048358 34A5CBE4 */ ori $a1, (0x4016CBE4 & 0xFFFF) # ori $a1, $a1, 0xcbe4 /* 07CECC 7F04835C 0FC1B4CB */ jal setsubroty /* 07CED0 7F048360 8E240014 */ lw $a0, 0x14($s1) /* 07CED4 7F048364 10000016 */ b .Ljp7F0483C0 /* 07CED8 7F048368 00000000 */ nop .Ljp7F04836C: /* 07CEDC 7F04836C 0C001A57 */ jal bossGetStageNum /* 07CEE0 7F048370 00000000 */ nop /* 07CEE4 7F048374 2401001A */ li $at, 26 /* 07CEE8 7F048378 1441000B */ bne $v0, $at, .Ljp7F0483A8 /* 07CEEC 7F04837C 3C053F85 */ lui $a1, 0x3f85 /* 07CEF0 7F048380 3C053F85 */ lui $a1, (0x3F859B3D >> 16) # lui $a1, 0x3f85 /* 07CEF4 7F048384 34A59B3D */ ori $a1, (0x3F859B3D & 0xFFFF) # ori $a1, $a1, 0x9b3d /* 07CEF8 7F048388 0FC1B51D */ jal sub_GAME_7F06CE84 /* 07CEFC 7F04838C 8E240014 */ lw $a0, 0x14($s1) /* 07CF00 7F048390 3C05407B */ lui $a1, (0x407B9B3D >> 16) # lui $a1, 0x407b /* 07CF04 7F048394 34A553D1 */ ori $a1, (0x407B53D1 & 0xFFFF) # ori $a1, $a1, 0x53d1 /* 07CF08 7F048398 0FC1B4CB */ jal setsubroty /* 07CF0C 7F04839C 8E240014 */ lw $a0, 0x14($s1) /* 07CF10 7F0483A0 10000007 */ b .Ljp7F0483C0 /* 07CF14 7F0483A4 00000000 */ nop .Ljp7F0483A8: /* 07CF18 7F0483A8 8E240014 */ lw $a0, 0x14($s1) /* 07CF1C 7F0483AC 0FC1B51D */ jal sub_GAME_7F06CE84 /* 07CF20 7F0483B0 34A59B3D */ ori $a1, (0x407B9B3D & 0xFFFF) # ori $a1, $a1, 0x9b3d /* 07CF24 7F0483B4 4405B000 */ mfc1 $a1, $f22 /* 07CF28 7F0483B8 0FC1B4CB */ jal setsubroty /* 07CF2C 7F0483BC 8E240014 */ lw $a0, 0x14($s1) .Ljp7F0483C0: /* 07CF30 7F0483C0 3C058005 */ lui $a1, %hi(g_ClockTimer) # $a1, 0x8005 /* 07CF34 7F0483C4 8CA583A4 */ lw $a1, %lo(g_ClockTimer)($a1) /* 07CF38 7F0483C8 8E240014 */ lw $a0, 0x14($s1) /* 07CF3C 7F0483CC 0FC1C437 */ jal modelTickAnimQuarterSpeed /* 07CF40 7F0483D0 24060001 */ li $a2, 1 /* 07CF44 7F0483D4 0FC1B728 */ jal subcalcpos /* 07CF48 7F0483D8 8E240014 */ lw $a0, 0x14($s1) /* 07CF4C 7F0483DC 8E240014 */ lw $a0, 0x14($s1) /* 07CF50 7F0483E0 0FC1B462 */ jal getsuboffset /* 07CF54 7F0483E4 8FA50074 */ lw $a1, 0x74($sp) /* 07CF58 7F0483E8 C62A0058 */ lwc1 $f10, 0x58($s1) /* 07CF5C 7F0483EC 3C058007 */ lui $a1, %hi(g_CurrentSetup+0) # $a1, 0x8007 /* 07CF60 7F0483F0 24A55D40 */ addiu $a1, %lo(g_CurrentSetup+0) # addiu $a1, $a1, 0x5d40 /* 07CF64 7F0483F4 E66A0008 */ swc1 $f10, 8($s3) /* 07CF68 7F0483F8 C6280060 */ lwc1 $f8, 0x60($s1) /* 07CF6C 7F0483FC E6680010 */ swc1 $f8, 0x10($s3) /* 07CF70 7F048400 86220006 */ lh $v0, 6($s1) /* 07CF74 7F048404 28412710 */ slti $at, $v0, 0x2710 /* 07CF78 7F048408 1020000B */ beqz $at, .Ljp7F048438 /* 07CF7C 7F04840C 00026100 */ sll $t4, $v0, 4 /* 07CF80 7F048410 00025880 */ sll $t3, $v0, 2 /* 07CF84 7F048414 3C058007 */ lui $a1, %hi(g_CurrentSetup+0) # $a1, 0x8007 /* 07CF88 7F048418 01625823 */ subu $t3, $t3, $v0 /* 07CF8C 7F04841C 24A55D40 */ addiu $a1, %lo(g_CurrentSetup+0) # addiu $a1, $a1, 0x5d40 /* 07CF90 7F048420 000B5880 */ sll $t3, $t3, 2 /* 07CF94 7F048424 8CAE0018 */ lw $t6, 0x18($a1) /* 07CF98 7F048428 01625823 */ subu $t3, $t3, $v0 /* 07CF9C 7F04842C 000B5880 */ sll $t3, $t3, 2 /* 07CFA0 7F048430 10000008 */ b .Ljp7F048454 /* 07CFA4 7F048434 016E1821 */ addu $v1, $t3, $t6 .Ljp7F048438: /* 07CFA8 7F048438 8CAA001C */ lw $t2, 0x1c($a1) /* 07CFAC 7F04843C 01826021 */ addu $t4, $t4, $v0 /* 07CFB0 7F048440 000C6080 */ sll $t4, $t4, 2 /* 07CFB4 7F048444 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 /* 07CFB8 7F048448 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 /* 07CFBC 7F04844C 018A1821 */ addu $v1, $t4, $t2 /* 07CFC0 7F048450 00611821 */ addu $v1, $v1, $at .Ljp7F048454: /* 07CFC4 7F048454 C624005C */ lwc1 $f4, 0x5c($s1) /* 07CFC8 7F048458 C4660004 */ lwc1 $f6, 4($v1) /* 07CFCC 7F04845C 46062280 */ add.s $f10, $f4, $f6 /* 07CFD0 7F048460 E66A000C */ swc1 $f10, 0xc($s3) /* 07CFD4 7F048464 C668000C */ lwc1 $f8, 0xc($s3) /* 07CFD8 7F048468 8E240014 */ lw $a0, 0x14($s1) /* 07CFDC 7F04846C E628005C */ swc1 $f8, 0x5c($s1) /* 07CFE0 7F048470 0FC1B47F */ jal setsuboffset /* 07CFE4 7F048474 8FA50074 */ lw $a1, 0x74($sp) /* 07CFE8 7F048478 C62C00A0 */ lwc1 $f12, 0xa0($s1) .Ljp7F04847C: /* 07CFEC 7F04847C 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8005 /* 07CFF0 7F048480 460CB03E */ c.le.s $f22, $f12 /* 07CFF4 7F048484 00000000 */ nop /* 07CFF8 7F048488 45020016 */ bc1fl .Ljp7F0484E4 /* 07CFFC 7F04848C C6200094 */ lwc1 $f0, 0x94($s1) /* 07D000 7F048490 C42283B4 */ lwc1 $f2, %lo(g_GlobalTimerDelta)($at) /* 07D004 7F048494 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8005 /* 07D008 7F048498 4602603E */ c.le.s $f12, $f2 /* 07D00C 7F04849C 00000000 */ nop /* 07D010 7F0484A0 45020006 */ bc1fl .Ljp7F0484BC /* 07D014 7F0484A4 C62E0098 */ lwc1 $f14, 0x98($s1) /* 07D018 7F0484A8 C624009C */ lwc1 $f4, 0x9c($s1) /* 07D01C 7F0484AC C62C00A0 */ lwc1 $f12, 0xa0($s1) /* 07D020 7F0484B0 10000008 */ b .Ljp7F0484D4 /* 07D024 7F0484B4 E6240098 */ swc1 $f4, 0x98($s1) /* 07D028 7F0484B8 C62E0098 */ lwc1 $f14, 0x98($s1) .Ljp7F0484BC: /* 07D02C 7F0484BC C626009C */ lwc1 $f6, 0x9c($s1) /* 07D030 7F0484C0 460E3281 */ sub.s $f10, $f6, $f14 /* 07D034 7F0484C4 46025202 */ mul.s $f8, $f10, $f2 /* 07D038 7F0484C8 460C4103 */ div.s $f4, $f8, $f12 /* 07D03C 7F0484CC 46047180 */ add.s $f6, $f14, $f4 /* 07D040 7F0484D0 E6260098 */ swc1 $f6, 0x98($s1) .Ljp7F0484D4: /* 07D044 7F0484D4 C42A83B4 */ lwc1 $f10, %lo(g_GlobalTimerDelta)($at) /* 07D048 7F0484D8 460A6201 */ sub.s $f8, $f12, $f10 /* 07D04C 7F0484DC E62800A0 */ swc1 $f8, 0xa0($s1) /* 07D050 7F0484E0 C6200094 */ lwc1 $f0, 0x94($s1) .Ljp7F0484E4: /* 07D054 7F0484E4 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8005 /* 07D058 7F0484E8 4600B03E */ c.le.s $f22, $f0 /* 07D05C 7F0484EC 00000000 */ nop /* 07D060 7F0484F0 45020016 */ bc1fl .Ljp7F04854C /* 07D064 7F0484F4 8E2F000C */ lw $t7, 0xc($s1) /* 07D068 7F0484F8 C42283B4 */ lwc1 $f2, %lo(g_GlobalTimerDelta)($at) /* 07D06C 7F0484FC 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8005 /* 07D070 7F048500 4602003E */ c.le.s $f0, $f2 /* 07D074 7F048504 00000000 */ nop /* 07D078 7F048508 45020006 */ bc1fl .Ljp7F048524 /* 07D07C 7F04850C C62C008C */ lwc1 $f12, 0x8c($s1) /* 07D080 7F048510 C6240090 */ lwc1 $f4, 0x90($s1) /* 07D084 7F048514 C6200094 */ lwc1 $f0, 0x94($s1) /* 07D088 7F048518 10000008 */ b .Ljp7F04853C /* 07D08C 7F04851C E624008C */ swc1 $f4, 0x8c($s1) /* 07D090 7F048520 C62C008C */ lwc1 $f12, 0x8c($s1) .Ljp7F048524: /* 07D094 7F048524 C6260090 */ lwc1 $f6, 0x90($s1) /* 07D098 7F048528 460C3281 */ sub.s $f10, $f6, $f12 /* 07D09C 7F04852C 46025202 */ mul.s $f8, $f10, $f2 /* 07D0A0 7F048530 46004103 */ div.s $f4, $f8, $f0 /* 07D0A4 7F048534 46046180 */ add.s $f6, $f12, $f4 /* 07D0A8 7F048538 E626008C */ swc1 $f6, 0x8c($s1) .Ljp7F04853C: /* 07D0AC 7F04853C C42A83B4 */ lwc1 $f10, %lo(g_GlobalTimerDelta)($at) /* 07D0B0 7F048540 460A0201 */ sub.s $f8, $f0, $f10 /* 07D0B4 7F048544 E6280094 */ swc1 $f8, 0x94($s1) /* 07D0B8 7F048548 8E2F000C */ lw $t7, 0xc($s1) .Ljp7F04854C: /* 07D0BC 7F04854C 00008025 */ move $s0, $zero /* 07D0C0 7F048550 000F6B00 */ sll $t5, $t7, 0xc /* 07D0C4 7F048554 05A00014 */ bltz $t5, .Ljp7F0485A8 /* 07D0C8 7F048558 00000000 */ nop /* 07D0CC 7F04855C 0FC13CCE */ jal objIsHealthy /* 07D0D0 7F048560 02202025 */ move $a0, $s1 /* 07D0D4 7F048564 10400010 */ beqz $v0, .Ljp7F0485A8 /* 07D0D8 7F048568 00000000 */ nop /* 07D0DC 7F04856C C624008C */ lwc1 $f4, 0x8c($s1) /* 07D0E0 7F048570 4604B032 */ c.eq.s $f22, $f4 /* 07D0E4 7F048574 00000000 */ nop /* 07D0E8 7F048578 4501000B */ bc1t .Ljp7F0485A8 /* 07D0EC 7F04857C 00000000 */ nop /* 07D0F0 7F048580 8E390008 */ lw $t9, 8($s1) /* 07D0F4 7F048584 3C05459C */ lui $a1, (0x459C4000 >> 16) # lui $a1, 0x459c /* 07D0F8 7F048588 34A54000 */ ori $a1, (0x459C4000 & 0xFFFF) # ori $a1, $a1, 0x4000 /* 07D0FC 7F04858C 00194080 */ sll $t0, $t9, 2 /* 07D100 7F048590 05000005 */ bltz $t0, .Ljp7F0485A8 /* 07D104 7F048594 26240058 */ addiu $a0, $s1, 0x58 /* 07D108 7F048598 3C0645BB */ lui $a2, (0x45BB8000 >> 16) # lui $a2, 0x45bb /* 07D10C 7F04859C 0FC14F64 */ jal sub_GAME_7F053894 /* 07D110 7F0485A0 34C68000 */ ori $a2, (0x45BB8000 & 0xFFFF) # ori $a2, $a2, 0x8000 /* 07D114 7F0485A4 00408025 */ move $s0, $v0 .Ljp7F0485A8: /* 07D118 7F0485A8 5A000019 */ blezl $s0, .Ljp7F048610 /* 07D11C 7F0485AC 8E2400B0 */ lw $a0, 0xb0($s1) /* 07D120 7F0485B0 8E2400B0 */ lw $a0, 0xb0($s1) /* 07D124 7F0485B4 10800005 */ beqz $a0, .Ljp7F0485CC /* 07D128 7F0485B8 00000000 */ nop /* 07D12C 7F0485BC 0C002380 */ jal sndGetPlayingState /* 07D130 7F0485C0 00000000 */ nop /* 07D134 7F0485C4 5440000A */ bnezl $v0, .Ljp7F0485F0 /* 07D138 7F0485C8 8E2400B0 */ lw $a0, 0xb0($s1) .Ljp7F0485CC: /* 07D13C 7F0485CC 0FC3021B */ jal lvlGetControlsLockedFlag /* 07D140 7F0485D0 00000000 */ nop /* 07D144 7F0485D4 14400005 */ bnez $v0, .Ljp7F0485EC /* 07D148 7F0485D8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 /* 07D14C 7F0485DC 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07D150 7F0485E0 2405003A */ li $a1, 58 /* 07D154 7F0485E4 0C002386 */ jal sndPlaySfx /* 07D158 7F0485E8 262600B0 */ addiu $a2, $s1, 0xb0 .Ljp7F0485EC: /* 07D15C 7F0485EC 8E2400B0 */ lw $a0, 0xb0($s1) .Ljp7F0485F0: /* 07D160 7F0485F0 24050008 */ li $a1, 8 /* 07D164 7F0485F4 5080000F */ beql $a0, $zero, .Ljp7F048634 /* 07D168 7F0485F8 92220003 */ lbu $v0, 3($s1) /* 07D16C 7F0485FC 0C002465 */ jal sndCreatePostEvent /* 07D170 7F048600 02003025 */ move $a2, $s0 /* 07D174 7F048604 1000000B */ b .Ljp7F048634 /* 07D178 7F048608 92220003 */ lbu $v0, 3($s1) /* 07D17C 7F04860C 8E2400B0 */ lw $a0, 0xb0($s1) .Ljp7F048610: /* 07D180 7F048610 50800008 */ beql $a0, $zero, .Ljp7F048634 /* 07D184 7F048614 92220003 */ lbu $v0, 3($s1) /* 07D188 7F048618 0C002380 */ jal sndGetPlayingState /* 07D18C 7F04861C 00000000 */ nop /* 07D190 7F048620 50400004 */ beql $v0, $zero, .Ljp7F048634 /* 07D194 7F048624 92220003 */ lbu $v0, 3($s1) /* 07D198 7F048628 0C00240C */ jal sndDeactivate /* 07D19C 7F04862C 8E2400B0 */ lw $a0, 0xb0($s1) .Ljp7F048630: /* 07D1A0 7F048630 92220003 */ lbu $v0, 3($s1) .Ljp7F048634: /* 07D1A4 7F048634 3C018005 */ lui $at, %hi(D_80052B64) # $at, 0x8005 /* 07D1A8 7F048638 C4342B94 */ lwc1 $f20, %lo(D_80052B64)($at) /* 07D1AC 7F04863C 2401002F */ li $at, 47 /* 07D1B0 7F048640 54410020 */ bnel $v0, $at, .Ljp7F0486C4 /* 07D1B4 7F048644 24010001 */ li $at, 1 /* 07D1B8 7F048648 8E700004 */ lw $s0, 4($s3) /* 07D1BC 7F04864C 26240058 */ addiu $a0, $s1, 0x58 /* 07D1C0 7F048650 8E180080 */ lw $t8, 0x80($s0) /* 07D1C4 7F048654 8E090084 */ lw $t1, 0x84($s0) /* 07D1C8 7F048658 8E070090 */ lw $a3, 0x90($s0) /* 07D1CC 7F04865C 44983000 */ mtc1 $t8, $f6 /* 07D1D0 7F048660 44895000 */ mtc1 $t1, $f10 /* 07D1D4 7F048664 468031A0 */ cvt.s.w $f6, $f6 /* 07D1D8 7F048668 468052A0 */ cvt.s.w $f10, $f10 /* 07D1DC 7F04866C 44053000 */ mfc1 $a1, $f6 /* 07D1E0 7F048670 44065000 */ mfc1 $a2, $f10 /* 07D1E4 7F048674 0FC1156C */ jal glassCalculateOpacity /* 07D1E8 7F048678 00000000 */ nop /* 07D1EC 7F04867C 8E04008C */ lw $a0, 0x8c($s0) /* 07D1F0 7F048680 AE020088 */ sw $v0, 0x88($s0) /* 07D1F4 7F048684 8FAB067C */ lw $t3, 0x67c($sp) /* 07D1F8 7F048688 0480000B */ bltz $a0, .Ljp7F0486B8 /* 07D1FC 7F04868C 24010001 */ li $at, 1 /* 07D200 7F048690 15610009 */ bne $t3, $at, .Ljp7F0486B8 /* 07D204 7F048694 240100FF */ li $at, 255 /* 07D208 7F048698 14410005 */ bne $v0, $at, .Ljp7F0486B0 /* 07D20C 7F04869C 00000000 */ nop /* 07D210 7F0486A0 0FC2EA5B */ jal bgToggleDataPortalsContrlBytes1Bit1 /* 07D214 7F0486A4 00002825 */ move $a1, $zero /* 07D218 7F0486A8 10000003 */ b .Ljp7F0486B8 /* 07D21C 7F0486AC 00000000 */ nop .Ljp7F0486B0: /* 07D220 7F0486B0 0FC2EA5B */ jal bgToggleDataPortalsContrlBytes1Bit1 /* 07D224 7F0486B4 24050001 */ li $a1, 1 .Ljp7F0486B8: /* 07D228 7F0486B8 1000003B */ b .Ljp7F0487A8 /* 07D22C 7F0486BC AFA00678 */ sw $zero, 0x678($sp) /* 07D230 7F0486C0 24010001 */ li $at, 1 .Ljp7F0486C4: /* 07D234 7F0486C4 54410039 */ bnel $v0, $at, .Ljp7F0487AC /* 07D238 7F0486C8 922C0003 */ lbu $t4, 3($s1) /* 07D23C 7F0486CC 962C0098 */ lhu $t4, 0x98($s1) /* 07D240 7F0486D0 318A0002 */ andi $t2, $t4, 2 /* 07D244 7F0486D4 51400035 */ beql $t2, $zero, .Ljp7F0487AC /* 07D248 7F0486D8 922C0003 */ lbu $t4, 3($s1) /* 07D24C 7F0486DC 8E700004 */ lw $s0, 4($s3) /* 07D250 7F0486E0 4407B000 */ mfc1 $a3, $f22 /* 07D254 7F0486E4 24120001 */ li $s2, 1 /* 07D258 7F0486E8 8E0F00C0 */ lw $t7, 0xc0($s0) /* 07D25C 7F0486EC 8E0D00C4 */ lw $t5, 0xc4($s0) /* 07D260 7F0486F0 26240058 */ addiu $a0, $s1, 0x58 /* 07D264 7F0486F4 448F4000 */ mtc1 $t7, $f8 /* 07D268 7F0486F8 448D2000 */ mtc1 $t5, $f4 /* 07D26C 7F0486FC 46804220 */ cvt.s.w $f8, $f8 /* 07D270 7F048700 46802120 */ cvt.s.w $f4, $f4 /* 07D274 7F048704 44054000 */ mfc1 $a1, $f8 /* 07D278 7F048708 44062000 */ mfc1 $a2, $f4 /* 07D27C 7F04870C 0FC1156C */ jal glassCalculateOpacity /* 07D280 7F048710 00000000 */ nop /* 07D284 7F048714 A60200BE */ sh $v0, 0xbe($s0) /* 07D288 7F048718 8FB9067C */ lw $t9, 0x67c($sp) /* 07D28C 7F04871C 24010001 */ li $at, 1 /* 07D290 7F048720 57210022 */ bnel $t9, $at, .Ljp7F0487AC /* 07D294 7F048724 922C0003 */ lbu $t4, 3($s1) /* 07D298 7F048728 860800BE */ lh $t0, 0xbe($s0) /* 07D29C 7F04872C 240100FF */ li $at, 255 /* 07D2A0 7F048730 55010007 */ bnel $t0, $at, .Ljp7F048750 /* 07D2A4 7F048734 00009025 */ move $s2, $zero /* 07D2A8 7F048738 C60600B4 */ lwc1 $f6, 0xb4($s0) /* 07D2AC 7F04873C 4606B03C */ c.lt.s $f22, $f6 /* 07D2B0 7F048740 00000000 */ nop /* 07D2B4 7F048744 45020003 */ bc1fl .Ljp7F048754 /* 07D2B8 7F048748 8E820008 */ lw $v0, 8($s4) /* 07D2BC 7F04874C 00009025 */ move $s2, $zero .Ljp7F048750: /* 07D2C0 7F048750 8E820008 */ lw $v0, 8($s4) .Ljp7F048754: /* 07D2C4 7F048754 3C188004 */ lui $t8, %hi(skeleton_door) # $t8, 0x8004 /* 07D2C8 7F048758 2718A20C */ addiu $t8, %lo(skeleton_door) # addiu $t8, $t8, -0x5df4 /* 07D2CC 7F04875C 8C490004 */ lw $t1, 4($v0) /* 07D2D0 7F048760 17090009 */ bne $t8, $t1, .Ljp7F048788 /* 07D2D4 7F048764 00000000 */ nop /* 07D2D8 7F048768 8C4B0008 */ lw $t3, 8($v0) /* 07D2DC 7F04876C 02802025 */ move $a0, $s4 /* 07D2E0 7F048770 0FC1B363 */ jal modelGetNodeRwData /* 07D2E4 7F048774 8D650004 */ lw $a1, 4($t3) /* 07D2E8 7F048778 8C4E0000 */ lw $t6, ($v0) /* 07D2EC 7F04877C 15C00002 */ bnez $t6, .Ljp7F048788 /* 07D2F0 7F048780 00000000 */ nop /* 07D2F4 7F048784 00009025 */ move $s2, $zero .Ljp7F048788: /* 07D2F8 7F048788 12400005 */ beqz $s2, .Ljp7F0487A0 /* 07D2FC 7F04878C 00000000 */ nop /* 07D300 7F048790 0FC14EB0 */ jal doorDeactivatePortal /* 07D304 7F048794 02002025 */ move $a0, $s0 /* 07D308 7F048798 10000004 */ b .Ljp7F0487AC /* 07D30C 7F04879C 922C0003 */ lbu $t4, 3($s1) .Ljp7F0487A0: /* 07D310 7F0487A0 0FC14EA5 */ jal doorActivatePortal /* 07D314 7F0487A4 02002025 */ move $a0, $s0 .Ljp7F0487A8: /* 07D318 7F0487A8 922C0003 */ lbu $t4, 3($s1) .Ljp7F0487AC: /* 07D31C 7F0487AC 2410002D */ li $s0, 45 /* 07D320 7F0487B0 560C0008 */ bnel $s0, $t4, .Ljp7F0487D4 /* 07D324 7F0487B4 8E23000C */ lw $v1, 0xc($s1) /* 07D328 7F0487B8 0FC1F52A */ jal get_ptr_for_players_tank /* 07D32C 7F0487BC 00000000 */ nop /* 07D330 7F0487C0 54530004 */ bnel $v0, $s3, .Ljp7F0487D4 /* 07D334 7F0487C4 8E23000C */ lw $v1, 0xc($s1) /* 07D338 7F0487C8 10000019 */ b .Ljp7F048830 /* 07D33C 7F0487CC 24030001 */ li $v1, 1 /* 07D340 7F0487D0 8E23000C */ lw $v1, 0xc($s1) .Ljp7F0487D4: /* 07D344 7F0487D4 00035140 */ sll $t2, $v1, 5 /* 07D348 7F0487D8 05430004 */ bgezl $t2, .Ljp7F0487EC /* 07D34C 7F0487DC 8E2F0064 */ lw $t7, 0x64($s1) /* 07D350 7F0487E0 10000013 */ b .Ljp7F048830 /* 07D354 7F0487E4 24030001 */ li $v1, 1 /* 07D358 7F0487E8 8E2F0064 */ lw $t7, 0x64($s1) .Ljp7F0487EC: /* 07D35C 7F0487EC 0003CB00 */ sll $t9, $v1, 0xc /* 07D360 7F0487F0 00001825 */ move $v1, $zero /* 07D364 7F0487F4 31ED0800 */ andi $t5, $t7, 0x800 /* 07D368 7F0487F8 15A0000D */ bnez $t5, .Ljp7F048830 /* 07D36C 7F0487FC 00000000 */ nop /* 07D370 7F048800 0720000B */ bltz $t9, .Ljp7F048830 /* 07D374 7F048804 02802025 */ move $a0, $s4 /* 07D378 7F048808 26280058 */ addiu $t0, $s1, 0x58 /* 07D37C 7F04880C 0FC1B57F */ jal getinstsize /* 07D380 7F048810 AFA80074 */ sw $t0, 0x74($sp) /* 07D384 7F048814 44060000 */ mfc1 $a2, $f0 /* 07D388 7F048818 02602025 */ move $a0, $s3 /* 07D38C 7F04881C 8FA50074 */ lw $a1, 0x74($sp) /* 07D390 7F048820 0FC1549A */ jal sub_GAME_7F054D6C /* 07D394 7F048824 8FA70678 */ lw $a3, 0x678($sp) /* 07D398 7F048828 10000001 */ b .Ljp7F048830 /* 07D39C 7F04882C 00401825 */ move $v1, $v0 .Ljp7F048830: /* 07D3A0 7F048830 1060037A */ beqz $v1, .Ljp7F04961C /* 07D3A4 7F048834 8FB80680 */ lw $t8, 0x680($sp) /* 07D3A8 7F048838 13000003 */ beqz $t8, .Ljp7F048848 /* 07D3AC 7F04883C 26240078 */ addiu $a0, $s1, 0x78 /* 07D3B0 7F048840 0FC10184 */ jal update_color_shading /* 07D3B4 7F048844 2625007C */ addiu $a1, $s1, 0x7c .Ljp7F048848: /* 07D3B8 7F048848 92690001 */ lbu $t1, 1($s3) /* 07D3BC 7F04884C 352B0002 */ ori $t3, $t1, 2 /* 07D3C0 7F048850 A26B0001 */ sb $t3, 1($s3) /* 07D3C4 7F048854 8E8E0008 */ lw $t6, 8($s4) /* 07D3C8 7F048858 85C4000E */ lh $a0, 0xe($t6) /* 07D3CC 7F04885C 00046180 */ sll $t4, $a0, 6 /* 07D3D0 7F048860 0FC2F8B1 */ jal dynAllocate /* 07D3D4 7F048864 01802025 */ move $a0, $t4 /* 07D3D8 7F048868 AE82000C */ sw $v0, 0xc($s4) /* 07D3DC 7F04886C 922A0003 */ lbu $t2, 3($s1) /* 07D3E0 7F048870 24010001 */ li $at, 1 /* 07D3E4 7F048874 00409025 */ move $s2, $v0 /* 07D3E8 7F048878 154100AD */ bne $t2, $at, .Ljp7F048B30 /* 07D3EC 7F04887C 26240018 */ addiu $a0, $s1, 0x18 /* 07D3F0 7F048880 8E640004 */ lw $a0, 4($s3) /* 07D3F4 7F048884 00402825 */ move $a1, $v0 /* 07D3F8 7F048888 0FC14AFA */ jal door7F0526EC /* 07D3FC 7F04888C AFA403A0 */ sw $a0, 0x3a0($sp) /* 07D400 7F048890 0FC1E26D */ jal camGetWorldToScreenMtxf /* 07D404 7F048894 00000000 */ nop /* 07D408 7F048898 00402025 */ move $a0, $v0 /* 07D40C 7F04889C 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place /* 07D410 7F0488A0 02402825 */ move $a1, $s2 /* 07D414 7F0488A4 8E820008 */ lw $v0, 8($s4) /* 07D418 7F0488A8 3C0F8004 */ lui $t7, %hi(skeleton_eyelid_door) # $t7, 0x8004 /* 07D41C 7F0488AC 25EFA130 */ addiu $t7, %lo(skeleton_eyelid_door) # addiu $t7, $t7, -0x5ed0 /* 07D420 7F0488B0 8C430004 */ lw $v1, 4($v0) /* 07D424 7F0488B4 3C0B8004 */ lui $t3, %hi(skeleton_iris_door) # $t3, 0x8004 /* 07D428 7F0488B8 8FA603A0 */ lw $a2, 0x3a0($sp) /* 07D42C 7F0488BC 15E30025 */ bne $t7, $v1, .Ljp7F048954 /* 07D430 7F0488C0 256BA18C */ addiu $t3, %lo(skeleton_iris_door) # addiu $t3, $t3, -0x5e74 /* 07D434 7F0488C4 C4CA00B4 */ lwc1 $f10, 0xb4($a2) /* 07D438 7F0488C8 3C0143B4 */ li $at, 0x43B40000 # 360.000000 /* 07D43C 7F0488CC 44812000 */ mtc1 $at, $f4 /* 07D440 7F0488D0 46145202 */ mul.s $f8, $f10, $f20 /* 07D444 7F0488D4 8C4D0008 */ lw $t5, 8($v0) /* 07D448 7F0488D8 26450040 */ addiu $a1, $s2, 0x40 /* 07D44C 7F0488DC 8DB90004 */ lw $t9, 4($t5) /* 07D450 7F0488E0 46044183 */ div.s $f6, $f8, $f4 /* 07D454 7F0488E4 8F300004 */ lw $s0, 4($t9) /* 07D458 7F0488E8 AFA50070 */ sw $a1, 0x70($sp) /* 07D45C 7F0488EC 4606A301 */ sub.s $f12, $f20, $f6 /* 07D460 7F0488F0 0FC162A4 */ jal matrix_4x4_set_rotation_around_x /* 07D464 7F0488F4 E7AC0398 */ swc1 $f12, 0x398($sp) /* 07D468 7F0488F8 02002025 */ move $a0, $s0 /* 07D46C 7F0488FC 0FC163AE */ jal matrix_4x4_set_position /* 07D470 7F048900 8FA50070 */ lw $a1, 0x70($sp) /* 07D474 7F048904 02402025 */ move $a0, $s2 /* 07D478 7F048908 0FC16162 */ jal matrix_4x4_multiply_in_place /* 07D47C 7F04890C 8FA50070 */ lw $a1, 0x70($sp) /* 07D480 7F048910 8E880008 */ lw $t0, 8($s4) /* 07D484 7F048914 C7AA0398 */ lwc1 $f10, 0x398($sp) /* 07D488 7F048918 26450080 */ addiu $a1, $s2, 0x80 /* 07D48C 7F04891C 8D180008 */ lw $t8, 8($t0) /* 07D490 7F048920 460AA301 */ sub.s $f12, $f20, $f10 /* 07D494 7F048924 8F090008 */ lw $t1, 8($t8) /* 07D498 7F048928 8D300004 */ lw $s0, 4($t1) /* 07D49C 7F04892C 0FC162A4 */ jal matrix_4x4_set_rotation_around_x /* 07D4A0 7F048930 AFA5006C */ sw $a1, 0x6c($sp) /* 07D4A4 7F048934 02002025 */ move $a0, $s0 /* 07D4A8 7F048938 0FC163AE */ jal matrix_4x4_set_position /* 07D4AC 7F04893C 8FA5006C */ lw $a1, 0x6c($sp) /* 07D4B0 7F048940 02402025 */ move $a0, $s2 /* 07D4B4 7F048944 0FC16162 */ jal matrix_4x4_multiply_in_place /* 07D4B8 7F048948 8FA5006C */ lw $a1, 0x6c($sp) /* 07D4BC 7F04894C 1000031F */ b .Ljp7F0495CC /* 07D4C0 7F048950 8E8C0008 */ lw $t4, 8($s4) .Ljp7F048954: /* 07D4C4 7F048954 5563031D */ bnel $t3, $v1, .Ljp7F0495CC /* 07D4C8 7F048958 8E8C0008 */ lw $t4, 8($s4) /* 07D4CC 7F04895C C4C200B4 */ lwc1 $f2, 0xb4($a2) /* 07D4D0 7F048960 3C0143B4 */ li $at, 0x43B40000 # 360.000000 /* 07D4D4 7F048964 44812000 */ mtc1 $at, $f4 /* 07D4D8 7F048968 46141202 */ mul.s $f8, $f2, $f20 /* 07D4DC 7F04896C 3C018005 */ lui $at, %hi(D_80052B68) # $at, 0x8005 /* 07D4E0 7F048970 C42A2B98 */ lwc1 $f10, %lo(D_80052B68)($at) /* 07D4E4 7F048974 4600B386 */ mov.s $f14, $f22 /* 07D4E8 7F048978 46044183 */ div.s $f6, $f8, $f4 /* 07D4EC 7F04897C E7A60388 */ swc1 $f6, 0x388($sp) /* 07D4F0 7F048980 C4CC0084 */ lwc1 $f12, 0x84($a2) /* 07D4F4 7F048984 460A6002 */ mul.s $f0, $f12, $f10 /* 07D4F8 7F048988 4602003C */ c.lt.s $f0, $f2 /* 07D4FC 7F04898C 00000000 */ nop /* 07D500 7F048990 4502001F */ bc1fl .Ljp7F048A10 /* 07D504 7F048994 8FAA0680 */ lw $t2, 0x680($sp) /* 07D508 7F048998 46001201 */ sub.s $f8, $f2, $f0 /* 07D50C 7F04899C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 /* 07D510 7F0489A0 8FAE0680 */ lw $t6, 0x680($sp) /* 07D514 7F0489A4 46006181 */ sub.s $f6, $f12, $f0 /* 07D518 7F0489A8 46086102 */ mul.s $f4, $f12, $f8 /* 07D51C 7F0489AC 46062283 */ div.s $f10, $f4, $f6 /* 07D520 7F0489B0 44812000 */ mtc1 $at, $f4 /* 07D524 7F0489B4 46145202 */ mul.s $f8, $f10, $f20 /* 07D528 7F0489B8 46044383 */ div.s $f14, $f8, $f4 /* 07D52C 7F0489BC 11C00011 */ beqz $t6, .Ljp7F048A04 /* 07D530 7F0489C0 E7AE0384 */ swc1 $f14, 0x384($sp) /* 07D534 7F0489C4 C7A60684 */ lwc1 $f6, 0x684($sp) /* 07D538 7F0489C8 E7AE0384 */ swc1 $f14, 0x384($sp) /* 07D53C 7F0489CC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 /* 07D540 7F0489D0 4600303E */ c.le.s $f6, $f0 /* 07D544 7F0489D4 240500CA */ li $a1, 202 /* 07D548 7F0489D8 00003025 */ move $a2, $zero /* 07D54C 7F0489DC 266C0008 */ addiu $t4, $s3, 8 /* 07D550 7F0489E0 45000008 */ bc1f .Ljp7F048A04 /* 07D554 7F0489E4 00000000 */ nop /* 07D558 7F0489E8 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07D55C 7F0489EC AFAC0074 */ sw $t4, 0x74($sp) /* 07D560 7F0489F0 0C002386 */ jal sndPlaySfx /* 07D564 7F0489F4 E7AE0384 */ swc1 $f14, 0x384($sp) /* 07D568 7F0489F8 00402025 */ move $a0, $v0 /* 07D56C 7F0489FC 0FC14FC3 */ jal chrobjSndCreatePostEventDefault /* 07D570 7F048A00 8FA50074 */ lw $a1, 0x74($sp) .Ljp7F048A04: /* 07D574 7F048A04 10000016 */ b .Ljp7F048A60 /* 07D578 7F048A08 AFA00390 */ sw $zero, 0x390($sp) /* 07D57C 7F048A0C 8FAA0680 */ lw $t2, 0x680($sp) .Ljp7F048A10: /* 07D580 7F048A10 E7AE0384 */ swc1 $f14, 0x384($sp) /* 07D584 7F048A14 51400012 */ beql $t2, $zero, .Ljp7F048A60 /* 07D588 7F048A18 AFA00390 */ sw $zero, 0x390($sp) /* 07D58C 7F048A1C C7AA0684 */ lwc1 $f10, 0x684($sp) /* 07D590 7F048A20 E7AE0384 */ swc1 $f14, 0x384($sp) /* 07D594 7F048A24 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 /* 07D598 7F048A28 460A003C */ c.lt.s $f0, $f10 /* 07D59C 7F048A2C 240500CB */ li $a1, 203 /* 07D5A0 7F048A30 00003025 */ move $a2, $zero /* 07D5A4 7F048A34 266F0008 */ addiu $t7, $s3, 8 /* 07D5A8 7F048A38 45020009 */ bc1fl .Ljp7F048A60 /* 07D5AC 7F048A3C AFA00390 */ sw $zero, 0x390($sp) /* 07D5B0 7F048A40 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07D5B4 7F048A44 AFAF0074 */ sw $t7, 0x74($sp) /* 07D5B8 7F048A48 0C002386 */ jal sndPlaySfx /* 07D5BC 7F048A4C E7AE0384 */ swc1 $f14, 0x384($sp) /* 07D5C0 7F048A50 00402025 */ move $a0, $v0 /* 07D5C4 7F048A54 0FC14FC3 */ jal chrobjSndCreatePostEventDefault /* 07D5C8 7F048A58 8FA50074 */ lw $a1, 0x74($sp) /* 07D5CC 7F048A5C AFA00390 */ sw $zero, 0x390($sp) .Ljp7F048A60: /* 07D5D0 7F048A60 8E8D0008 */ lw $t5, 8($s4) /* 07D5D4 7F048A64 8FA30390 */ lw $v1, 0x390($sp) /* 07D5D8 7F048A68 C7AC0384 */ lwc1 $f12, 0x384($sp) /* 07D5DC 7F048A6C 8DB90008 */ lw $t9, 8($t5) /* 07D5E0 7F048A70 00031040 */ sll $v0, $v1, 1 /* 07D5E4 7F048A74 00024080 */ sll $t0, $v0, 2 /* 07D5E8 7F048A78 0328C021 */ addu $t8, $t9, $t0 /* 07D5EC 7F048A7C 8F090004 */ lw $t1, 4($t8) /* 07D5F0 7F048A80 00027180 */ sll $t6, $v0, 6 /* 07D5F4 7F048A84 024E2821 */ addu $a1, $s2, $t6 /* 07D5F8 7F048A88 8D2B0004 */ lw $t3, 4($t1) /* 07D5FC 7F048A8C AFA20078 */ sw $v0, 0x78($sp) /* 07D600 7F048A90 24A50040 */ addiu $a1, $a1, 0x40 /* 07D604 7F048A94 0FC162EA */ jal matrix_4x4_set_rotation_around_z /* 07D608 7F048A98 AFAB0394 */ sw $t3, 0x394($sp) /* 07D60C 7F048A9C 8FAC0078 */ lw $t4, 0x78($sp) /* 07D610 7F048AA0 8FB00390 */ lw $s0, 0x390($sp) /* 07D614 7F048AA4 8FA40394 */ lw $a0, 0x394($sp) /* 07D618 7F048AA8 000C5180 */ sll $t2, $t4, 6 /* 07D61C 7F048AAC 024A2821 */ addu $a1, $s2, $t2 /* 07D620 7F048AB0 24A50040 */ addiu $a1, $a1, 0x40 /* 07D624 7F048AB4 0FC163AE */ jal matrix_4x4_set_position /* 07D628 7F048AB8 AFA50074 */ sw $a1, 0x74($sp) /* 07D62C 7F048ABC 02402025 */ move $a0, $s2 /* 07D630 7F048AC0 0FC16162 */ jal matrix_4x4_multiply_in_place /* 07D634 7F048AC4 8FA50074 */ lw $a1, 0x74($sp) /* 07D638 7F048AC8 8E8F0008 */ lw $t7, 8($s4) /* 07D63C 7F048ACC 8FA20078 */ lw $v0, 0x78($sp) /* 07D640 7F048AD0 C7AC0388 */ lwc1 $f12, 0x388($sp) /* 07D644 7F048AD4 8DED0008 */ lw $t5, 8($t7) /* 07D648 7F048AD8 24420002 */ addiu $v0, $v0, 2 /* 07D64C 7F048ADC 0002C880 */ sll $t9, $v0, 2 /* 07D650 7F048AE0 01B94021 */ addu $t0, $t5, $t9 /* 07D654 7F048AE4 8D180000 */ lw $t8, ($t0) /* 07D658 7F048AE8 00025980 */ sll $t3, $v0, 6 /* 07D65C 7F048AEC 024B2821 */ addu $a1, $s2, $t3 /* 07D660 7F048AF0 8F090004 */ lw $t1, 4($t8) /* 07D664 7F048AF4 AFA50070 */ sw $a1, 0x70($sp) /* 07D668 7F048AF8 0FC162EA */ jal matrix_4x4_set_rotation_around_z /* 07D66C 7F048AFC AFA90394 */ sw $t1, 0x394($sp) /* 07D670 7F048B00 8FA40394 */ lw $a0, 0x394($sp) /* 07D674 7F048B04 0FC163AE */ jal matrix_4x4_set_position /* 07D678 7F048B08 8FA50070 */ lw $a1, 0x70($sp) /* 07D67C 7F048B0C 8FA40074 */ lw $a0, 0x74($sp) /* 07D680 7F048B10 0FC16162 */ jal matrix_4x4_multiply_in_place /* 07D684 7F048B14 8FA50070 */ lw $a1, 0x70($sp) /* 07D688 7F048B18 26100001 */ addiu $s0, $s0, 1 /* 07D68C 7F048B1C 24010006 */ li $at, 6 /* 07D690 7F048B20 1601FFCF */ bne $s0, $at, .Ljp7F048A60 /* 07D694 7F048B24 AFB00390 */ sw $s0, 0x390($sp) /* 07D698 7F048B28 100002A8 */ b .Ljp7F0495CC /* 07D69C 7F048B2C 8E8C0008 */ lw $t4, 8($s4) .Ljp7F048B30: /* 07D6A0 7F048B30 262E0058 */ addiu $t6, $s1, 0x58 /* 07D6A4 7F048B34 AFAE0074 */ sw $t6, 0x74($sp) /* 07D6A8 7F048B38 0FC16150 */ jal matrix_4x4_copy /* 07D6AC 7F048B3C 27A503A8 */ addiu $a1, $sp, 0x3a8 /* 07D6B0 7F048B40 8FA40074 */ lw $a0, 0x74($sp) /* 07D6B4 7F048B44 0FC163AE */ jal matrix_4x4_set_position /* 07D6B8 7F048B48 27A503A8 */ addiu $a1, $sp, 0x3a8 /* 07D6BC 7F048B4C 0FC1E26D */ jal camGetWorldToScreenMtxf /* 07D6C0 7F048B50 00000000 */ nop /* 07D6C4 7F048B54 00402025 */ move $a0, $v0 /* 07D6C8 7F048B58 27A503A8 */ addiu $a1, $sp, 0x3a8 /* 07D6CC 7F048B5C 0FC161AB */ jal matrix_4x4_multiply_homogeneous /* 07D6D0 7F048B60 02403025 */ move $a2, $s2 /* 07D6D4 7F048B64 92220003 */ lbu $v0, 3($s1) /* 07D6D8 7F048B68 24010006 */ li $at, 6 /* 07D6DC 7F048B6C 27A50324 */ addiu $a1, $sp, 0x324 /* 07D6E0 7F048B70 5441002D */ bnel $v0, $at, .Ljp7F048C28 /* 07D6E4 7F048B74 2401000D */ li $at, 13 /* 07D6E8 7F048B78 8E620004 */ lw $v0, 4($s3) /* 07D6EC 7F048B7C 8E8C0008 */ lw $t4, 8($s4) /* 07D6F0 7F048B80 C44C00C8 */ lwc1 $f12, 0xc8($v0) /* 07D6F4 7F048B84 8D8A0008 */ lw $t2, 8($t4) /* 07D6F8 7F048B88 4616603C */ c.lt.s $f12, $f22 /* 07D6FC 7F048B8C 8D4F0000 */ lw $t7, ($t2) /* 07D700 7F048B90 45000003 */ bc1f .Ljp7F048BA0 /* 07D704 7F048B94 8DF00004 */ lw $s0, 4($t7) /* 07D708 7F048B98 10000006 */ b .Ljp7F048BB4 /* 07D70C 7F048B9C 46146300 */ add.s $f12, $f12, $f20 .Ljp7F048BA0: /* 07D710 7F048BA0 460CA03E */ c.le.s $f20, $f12 /* 07D714 7F048BA4 00000000 */ nop /* 07D718 7F048BA8 45000002 */ bc1f .Ljp7F048BB4 /* 07D71C 7F048BAC 00000000 */ nop /* 07D720 7F048BB0 46146301 */ sub.s $f12, $f12, $f20 .Ljp7F048BB4: /* 07D724 7F048BB4 0FC162C7 */ jal matrix_4x4_set_rotation_around_y /* 07D728 7F048BB8 AFA20374 */ sw $v0, 0x374($sp) /* 07D72C 7F048BBC 8FA20374 */ lw $v0, 0x374($sp) /* 07D730 7F048BC0 26460040 */ addiu $a2, $s2, 0x40 /* 07D734 7F048BC4 AFA60070 */ sw $a2, 0x70($sp) /* 07D738 7F048BC8 27A40324 */ addiu $a0, $sp, 0x324 /* 07D73C 7F048BCC 0FC1617A */ jal matrix_4x4_multiply /* 07D740 7F048BD0 24450084 */ addiu $a1, $v0, 0x84 /* 07D744 7F048BD4 C6080000 */ lwc1 $f8, ($s0) /* 07D748 7F048BD8 27B20364 */ addiu $s2, $sp, 0x364 /* 07D74C 7F048BDC 02402825 */ move $a1, $s2 /* 07D750 7F048BE0 E7A80364 */ swc1 $f8, 0x364($sp) /* 07D754 7F048BE4 C6040004 */ lwc1 $f4, 4($s0) /* 07D758 7F048BE8 27A403A8 */ addiu $a0, $sp, 0x3a8 /* 07D75C 7F048BEC E7A40368 */ swc1 $f4, 0x368($sp) /* 07D760 7F048BF0 C6060008 */ lwc1 $f6, 8($s0) /* 07D764 7F048BF4 0FC16265 */ jal mtx4TransformVecInPlace /* 07D768 7F048BF8 E7A6036C */ swc1 $f6, 0x36c($sp) /* 07D76C 7F048BFC 02402025 */ move $a0, $s2 /* 07D770 7F048C00 0FC163AE */ jal matrix_4x4_set_position /* 07D774 7F048C04 8FA50070 */ lw $a1, 0x70($sp) /* 07D778 7F048C08 0FC1E26D */ jal camGetWorldToScreenMtxf /* 07D77C 7F048C0C 00000000 */ nop /* 07D780 7F048C10 00402025 */ move $a0, $v0 /* 07D784 7F048C14 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place /* 07D788 7F048C18 8FA50070 */ lw $a1, 0x70($sp) /* 07D78C 7F048C1C 1000026B */ b .Ljp7F0495CC /* 07D790 7F048C20 8E8C0008 */ lw $t4, 8($s4) /* 07D794 7F048C24 2401000D */ li $at, 13 .Ljp7F048C28: /* 07D798 7F048C28 5441007F */ bnel $v0, $at, .Ljp7F048E28 /* 07D79C 7F048C2C 24010008 */ li $at, 8 /* 07D7A0 7F048C30 8E620004 */ lw $v0, 4($s3) /* 07D7A4 7F048C34 3C018005 */ lui $at, %hi(D_80052B6C) # $at, 0x8005 /* 07D7A8 7F048C38 C4282B9C */ lwc1 $f8, %lo(D_80052B6C)($at) /* 07D7AC 7F048C3C C44A0090 */ lwc1 $f10, 0x90($v0) /* 07D7B0 7F048C40 C444009C */ lwc1 $f4, 0x9c($v0) /* 07D7B4 7F048C44 46085300 */ add.s $f12, $f10, $f8 /* 07D7B8 7F048C48 46002187 */ neg.s $f6, $f4 /* 07D7BC 7F048C4C 460CA03E */ c.le.s $f20, $f12 /* 07D7C0 7F048C50 E7A60304 */ swc1 $f6, 0x304($sp) /* 07D7C4 7F048C54 45020003 */ bc1fl .Ljp7F048C64 /* 07D7C8 7F048C58 8E8D0008 */ lw $t5, 8($s4) /* 07D7CC 7F048C5C 46146301 */ sub.s $f12, $f12, $f20 /* 07D7D0 7F048C60 8E8D0008 */ lw $t5, 8($s4) .Ljp7F048C64: /* 07D7D4 7F048C64 27A403A8 */ addiu $a0, $sp, 0x3a8 /* 07D7D8 7F048C68 27A5030C */ addiu $a1, $sp, 0x30c /* 07D7DC 7F048C6C 8DB90008 */ lw $t9, 8($t5) /* 07D7E0 7F048C70 8F280004 */ lw $t0, 4($t9) /* 07D7E4 7F048C74 8D100004 */ lw $s0, 4($t0) /* 07D7E8 7F048C78 C60A0000 */ lwc1 $f10, ($s0) /* 07D7EC 7F048C7C E7AA030C */ swc1 $f10, 0x30c($sp) /* 07D7F0 7F048C80 C6080004 */ lwc1 $f8, 4($s0) /* 07D7F4 7F048C84 E7A80310 */ swc1 $f8, 0x310($sp) /* 07D7F8 7F048C88 C6040008 */ lwc1 $f4, 8($s0) /* 07D7FC 7F048C8C E7AC0308 */ swc1 $f12, 0x308($sp) /* 07D800 7F048C90 AFA2031C */ sw $v0, 0x31c($sp) /* 07D804 7F048C94 0FC16265 */ jal mtx4TransformVecInPlace /* 07D808 7F048C98 E7A40314 */ swc1 $f4, 0x314($sp) /* 07D80C 7F048C9C 26450040 */ addiu $a1, $s2, 0x40 /* 07D810 7F048CA0 C7AC0308 */ lwc1 $f12, 0x308($sp) /* 07D814 7F048CA4 0FC162C7 */ jal matrix_4x4_set_rotation_around_y /* 07D818 7F048CA8 AFA50070 */ sw $a1, 0x70($sp) /* 07D81C 7F048CAC 27A4030C */ addiu $a0, $sp, 0x30c /* 07D820 7F048CB0 0FC163AE */ jal matrix_4x4_set_position /* 07D824 7F048CB4 8FA50070 */ lw $a1, 0x70($sp) /* 07D828 7F048CB8 8FB8031C */ lw $t8, 0x31c($sp) /* 07D82C 7F048CBC 8FA50070 */ lw $a1, 0x70($sp) /* 07D830 7F048CC0 8F090014 */ lw $t1, 0x14($t8) /* 07D834 7F048CC4 0FC163E7 */ jal matrix_scalar_multiply /* 07D838 7F048CC8 C52C0014 */ lwc1 $f12, 0x14($t1) /* 07D83C 7F048CCC 0FC1E26D */ jal camGetWorldToScreenMtxf /* 07D840 7F048CD0 00000000 */ nop /* 07D844 7F048CD4 00402025 */ move $a0, $v0 /* 07D848 7F048CD8 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place /* 07D84C 7F048CDC 8FA50070 */ lw $a1, 0x70($sp) /* 07D850 7F048CE0 8E8B0008 */ lw $t3, 8($s4) /* 07D854 7F048CE4 26450080 */ addiu $a1, $s2, 0x80 /* 07D858 7F048CE8 C7AC0304 */ lwc1 $f12, 0x304($sp) /* 07D85C 7F048CEC 8D6E0008 */ lw $t6, 8($t3) /* 07D860 7F048CF0 8DCC0008 */ lw $t4, 8($t6) /* 07D864 7F048CF4 8D900004 */ lw $s0, 4($t4) /* 07D868 7F048CF8 0FC162EA */ jal matrix_4x4_set_rotation_around_z /* 07D86C 7F048CFC AFA5006C */ sw $a1, 0x6c($sp) /* 07D870 7F048D00 02002025 */ move $a0, $s0 /* 07D874 7F048D04 0FC163AE */ jal matrix_4x4_set_position /* 07D878 7F048D08 8FA5006C */ lw $a1, 0x6c($sp) /* 07D87C 7F048D0C 8FA40070 */ lw $a0, 0x70($sp) /* 07D880 7F048D10 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place /* 07D884 7F048D14 8FA5006C */ lw $a1, 0x6c($sp) /* 07D888 7F048D18 8E8A0008 */ lw $t2, 8($s4) /* 07D88C 7F048D1C 02802025 */ move $a0, $s4 /* 07D890 7F048D20 8D430008 */ lw $v1, 8($t2) /* 07D894 7F048D24 8C65000C */ lw $a1, 0xc($v1) /* 07D898 7F048D28 50A00016 */ beql $a1, $zero, .Ljp7F048D84 /* 07D89C 7F048D2C 8C650010 */ lw $a1, 0x10($v1) /* 07D8A0 7F048D30 0FC1B314 */ jal modelFindNodeMtx /* 07D8A4 7F048D34 00003025 */ move $a2, $zero /* 07D8A8 7F048D38 AFA20300 */ sw $v0, 0x300($sp) /* 07D8AC 7F048D3C 8E8F0008 */ lw $t7, 8($s4) /* 07D8B0 7F048D40 8FA8031C */ lw $t0, 0x31c($sp) /* 07D8B4 7F048D44 00402825 */ move $a1, $v0 /* 07D8B8 7F048D48 8DED0008 */ lw $t5, 8($t7) /* 07D8BC 7F048D4C C50C00B4 */ lwc1 $f12, 0xb4($t0) /* 07D8C0 7F048D50 8DB9000C */ lw $t9, 0xc($t5) /* 07D8C4 7F048D54 0FC162A4 */ jal matrix_4x4_set_rotation_around_x /* 07D8C8 7F048D58 8F300004 */ lw $s0, 4($t9) /* 07D8CC 7F048D5C 8FB20300 */ lw $s2, 0x300($sp) /* 07D8D0 7F048D60 02002025 */ move $a0, $s0 /* 07D8D4 7F048D64 0FC163AE */ jal matrix_4x4_set_position /* 07D8D8 7F048D68 02402825 */ move $a1, $s2 /* 07D8DC 7F048D6C 8FA4006C */ lw $a0, 0x6c($sp) /* 07D8E0 7F048D70 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place /* 07D8E4 7F048D74 02402825 */ move $a1, $s2 /* 07D8E8 7F048D78 8E980008 */ lw $t8, 8($s4) /* 07D8EC 7F048D7C 8F030008 */ lw $v1, 8($t8) /* 07D8F0 7F048D80 8C650010 */ lw $a1, 0x10($v1) .Ljp7F048D84: /* 07D8F4 7F048D84 02802025 */ move $a0, $s4 /* 07D8F8 7F048D88 50A00010 */ beql $a1, $zero, .Ljp7F048DCC /* 07D8FC 7F048D8C 8C650018 */ lw $a1, 0x18($v1) /* 07D900 7F048D90 0FC1B314 */ jal modelFindNodeMtx /* 07D904 7F048D94 00003025 */ move $a2, $zero /* 07D908 7F048D98 8E890008 */ lw $t1, 8($s4) /* 07D90C 7F048D9C 00409025 */ move $s2, $v0 /* 07D910 7F048DA0 00402825 */ move $a1, $v0 /* 07D914 7F048DA4 8D2B0008 */ lw $t3, 8($t1) /* 07D918 7F048DA8 8D6E0010 */ lw $t6, 0x10($t3) /* 07D91C 7F048DAC 0FC163A1 */ jal matrix_4x4_set_identity_and_position /* 07D920 7F048DB0 8DC40004 */ lw $a0, 4($t6) /* 07D924 7F048DB4 8FA4006C */ lw $a0, 0x6c($sp) /* 07D928 7F048DB8 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place /* 07D92C 7F048DBC 02402825 */ move $a1, $s2 /* 07D930 7F048DC0 8E8C0008 */ lw $t4, 8($s4) /* 07D934 7F048DC4 8D830008 */ lw $v1, 8($t4) /* 07D938 7F048DC8 8C650018 */ lw $a1, 0x18($v1) .Ljp7F048DCC: /* 07D93C 7F048DCC 02802025 */ move $a0, $s4 /* 07D940 7F048DD0 50A001FE */ beql $a1, $zero, .Ljp7F0495CC /* 07D944 7F048DD4 8E8C0008 */ lw $t4, 8($s4) /* 07D948 7F048DD8 0FC1B314 */ jal modelFindNodeMtx /* 07D94C 7F048DDC 00003025 */ move $a2, $zero /* 07D950 7F048DE0 8E8A0008 */ lw $t2, 8($s4) /* 07D954 7F048DE4 8FB9031C */ lw $t9, 0x31c($sp) /* 07D958 7F048DE8 00409025 */ move $s2, $v0 /* 07D95C 7F048DEC 8D4F0008 */ lw $t7, 8($t2) /* 07D960 7F048DF0 00402825 */ move $a1, $v0 /* 07D964 7F048DF4 C72C00B4 */ lwc1 $f12, 0xb4($t9) /* 07D968 7F048DF8 8DED0018 */ lw $t5, 0x18($t7) /* 07D96C 7F048DFC 0FC162A4 */ jal matrix_4x4_set_rotation_around_x /* 07D970 7F048E00 8DB00004 */ lw $s0, 4($t5) /* 07D974 7F048E04 02002025 */ move $a0, $s0 /* 07D978 7F048E08 0FC163AE */ jal matrix_4x4_set_position /* 07D97C 7F048E0C 02402825 */ move $a1, $s2 /* 07D980 7F048E10 8FA4006C */ lw $a0, 0x6c($sp) /* 07D984 7F048E14 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place /* 07D988 7F048E18 02402825 */ move $a1, $s2 /* 07D98C 7F048E1C 100001EB */ b .Ljp7F0495CC /* 07D990 7F048E20 8E8C0008 */ lw $t4, 8($s4) /* 07D994 7F048E24 24010008 */ li $at, 8 .Ljp7F048E28: /* 07D998 7F048E28 54410017 */ bnel $v0, $at, .Ljp7F048E88 /* 07D99C 7F048E2C 2401000C */ li $at, 12 /* 07D9A0 7F048E30 8E880008 */ lw $t0, 8($s4) /* 07D9A4 7F048E34 24020001 */ li $v0, 1 /* 07D9A8 7F048E38 26440040 */ addiu $a0, $s2, 0x40 /* 07D9AC 7F048E3C 8518000E */ lh $t8, 0xe($t0) /* 07D9B0 7F048E40 2B010002 */ slti $at, $t8, 2 /* 07D9B4 7F048E44 542001E1 */ bnezl $at, .Ljp7F0495CC /* 07D9B8 7F048E48 8E8C0008 */ lw $t4, 8($s4) /* 07D9BC 7F048E4C AFA202FC */ sw $v0, 0x2fc($sp) .Ljp7F048E50: /* 07D9C0 7F048E50 0FC1613C */ jal matrix_4x4_set_identity /* 07D9C4 7F048E54 AFA40078 */ sw $a0, 0x78($sp) /* 07D9C8 7F048E58 8E890008 */ lw $t1, 8($s4) /* 07D9CC 7F048E5C 8FA202FC */ lw $v0, 0x2fc($sp) /* 07D9D0 7F048E60 8FA40078 */ lw $a0, 0x78($sp) /* 07D9D4 7F048E64 852B000E */ lh $t3, 0xe($t1) /* 07D9D8 7F048E68 24420001 */ addiu $v0, $v0, 1 /* 07D9DC 7F048E6C 24840040 */ addiu $a0, $a0, 0x40 /* 07D9E0 7F048E70 004B082A */ slt $at, $v0, $t3 /* 07D9E4 7F048E74 5420FFF6 */ bnezl $at, .Ljp7F048E50 /* 07D9E8 7F048E78 AFA202FC */ sw $v0, 0x2fc($sp) /* 07D9EC 7F048E7C 100001D3 */ b .Ljp7F0495CC /* 07D9F0 7F048E80 8E8C0008 */ lw $t4, 8($s4) /* 07D9F4 7F048E84 2401000C */ li $at, 12 .Ljp7F048E88: /* 07D9F8 7F048E88 5441002C */ bnel $v0, $at, .Ljp7F048F3C /* 07D9FC 7F048E8C 24010027 */ li $at, 39 /* 07DA00 7F048E90 8E8E0008 */ lw $t6, 8($s4) /* 07DA04 7F048E94 26450040 */ addiu $a1, $s2, 0x40 /* 07DA08 7F048E98 8DCC0008 */ lw $t4, 8($t6) /* 07DA0C 7F048E9C 8D8A0000 */ lw $t2, ($t4) /* 07DA10 7F048EA0 8D440004 */ lw $a0, 4($t2) /* 07DA14 7F048EA4 0FC163A1 */ jal matrix_4x4_set_identity_and_position /* 07DA18 7F048EA8 AFA50070 */ sw $a1, 0x70($sp) /* 07DA1C 7F048EAC 02402025 */ move $a0, $s2 /* 07DA20 7F048EB0 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place /* 07DA24 7F048EB4 8FA50070 */ lw $a1, 0x70($sp) /* 07DA28 7F048EB8 8E8F0008 */ lw $t7, 8($s4) /* 07DA2C 7F048EBC 26450080 */ addiu $a1, $s2, 0x80 /* 07DA30 7F048EC0 8DED0008 */ lw $t5, 8($t7) /* 07DA34 7F048EC4 8DB90004 */ lw $t9, 4($t5) /* 07DA38 7F048EC8 8F240004 */ lw $a0, 4($t9) /* 07DA3C 7F048ECC 0FC163A1 */ jal matrix_4x4_set_identity_and_position /* 07DA40 7F048ED0 AFA5006C */ sw $a1, 0x6c($sp) /* 07DA44 7F048ED4 02402025 */ move $a0, $s2 /* 07DA48 7F048ED8 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place /* 07DA4C 7F048EDC 8FA5006C */ lw $a1, 0x6c($sp) /* 07DA50 7F048EE0 8E880008 */ lw $t0, 8($s4) /* 07DA54 7F048EE4 264500C0 */ addiu $a1, $s2, 0xc0 /* 07DA58 7F048EE8 8D180008 */ lw $t8, 8($t0) /* 07DA5C 7F048EEC 8F090008 */ lw $t1, 8($t8) /* 07DA60 7F048EF0 8D240004 */ lw $a0, 4($t1) /* 07DA64 7F048EF4 0FC163A1 */ jal matrix_4x4_set_identity_and_position /* 07DA68 7F048EF8 AFA50078 */ sw $a1, 0x78($sp) /* 07DA6C 7F048EFC 02402025 */ move $a0, $s2 /* 07DA70 7F048F00 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place /* 07DA74 7F048F04 8FA50078 */ lw $a1, 0x78($sp) /* 07DA78 7F048F08 8E8B0008 */ lw $t3, 8($s4) /* 07DA7C 7F048F0C 26500100 */ addiu $s0, $s2, 0x100 /* 07DA80 7F048F10 02002825 */ move $a1, $s0 /* 07DA84 7F048F14 8D6E0008 */ lw $t6, 8($t3) /* 07DA88 7F048F18 8DCC000C */ lw $t4, 0xc($t6) /* 07DA8C 7F048F1C 0FC163A1 */ jal matrix_4x4_set_identity_and_position /* 07DA90 7F048F20 8D840004 */ lw $a0, 4($t4) /* 07DA94 7F048F24 02402025 */ move $a0, $s2 /* 07DA98 7F048F28 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place /* 07DA9C 7F048F2C 02002825 */ move $a1, $s0 /* 07DAA0 7F048F30 100001A6 */ b .Ljp7F0495CC /* 07DAA4 7F048F34 8E8C0008 */ lw $t4, 8($s4) /* 07DAA8 7F048F38 24010027 */ li $at, 39 .Ljp7F048F3C: /* 07DAAC 7F048F3C 544100B9 */ bnel $v0, $at, .Ljp7F049224 /* 07DAB0 7F048F40 24010028 */ li $at, 40 /* 07DAB4 7F048F44 8E8A0008 */ lw $t2, 8($s4) /* 07DAB8 7F048F48 8FAC0680 */ lw $t4, 0x680($sp) /* 07DABC 7F048F4C 4600B006 */ mov.s $f0, $f22 /* 07DAC0 7F048F50 8D430008 */ lw $v1, 8($t2) /* 07DAC4 7F048F54 8C6F0004 */ lw $t7, 4($v1) /* 07DAC8 7F048F58 8DED0004 */ lw $t5, 4($t7) /* 07DACC 7F048F5C AFAD0264 */ sw $t5, 0x264($sp) /* 07DAD0 7F048F60 8C790008 */ lw $t9, 8($v1) /* 07DAD4 7F048F64 8F280004 */ lw $t0, 4($t9) /* 07DAD8 7F048F68 AFA80260 */ sw $t0, 0x260($sp) /* 07DADC 7F048F6C 8C690010 */ lw $t1, 0x10($v1) /* 07DAE0 7F048F70 8C78000C */ lw $t8, 0xc($v1) /* 07DAE4 7F048F74 8D2B0004 */ lw $t3, 4($t1) /* 07DAE8 7F048F78 8F100004 */ lw $s0, 4($t8) /* 07DAEC 7F048F7C AFAB0258 */ sw $t3, 0x258($sp) /* 07DAF0 7F048F80 8C6E0018 */ lw $t6, 0x18($v1) /* 07DAF4 7F048F84 C6840014 */ lwc1 $f4, 0x14($s4) /* 07DAF8 7F048F88 8DC20004 */ lw $v0, 4($t6) /* 07DAFC 7F048F8C C4460010 */ lwc1 $f6, 0x10($v0) /* 07DB00 7F048F90 C44A000C */ lwc1 $f10, 0xc($v0) /* 07DB04 7F048F94 460A3201 */ sub.s $f8, $f6, $f10 /* 07DB08 7F048F98 46044082 */ mul.s $f2, $f8, $f4 /* 07DB0C 7F048F9C 11800026 */ beqz $t4, .Ljp7F049038 /* 07DB10 7F048FA0 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8005 /* 07DB14 7F048FA4 C42A83B4 */ lwc1 $f10, %lo(g_GlobalTimerDelta)($at) /* 07DB18 7F048FA8 C6260088 */ lwc1 $f6, 0x88($s1) /* 07DB1C 7F048FAC 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 07DB20 7F048FB0 460A3202 */ mul.s $f8, $f6, $f10 /* 07DB24 7F048FB4 44815000 */ mtc1 $at, $f10 /* 07DB28 7F048FB8 46144102 */ mul.s $f4, $f8, $f20 /* 07DB2C 7F048FBC 00000000 */ nop /* 07DB30 7F048FC0 46141182 */ mul.s $f6, $f2, $f20 /* 07DB34 7F048FC4 00000000 */ nop /* 07DB38 7F048FC8 460A3202 */ mul.s $f8, $f6, $f10 /* 07DB3C 7F048FCC C626008C */ lwc1 $f6, 0x8c($s1) /* 07DB40 7F048FD0 46082003 */ div.s $f0, $f4, $f8 /* 07DB44 7F048FD4 46003280 */ add.s $f10, $f6, $f0 /* 07DB48 7F048FD8 E62A008C */ swc1 $f10, 0x8c($s1) /* 07DB4C 7F048FDC C62C008C */ lwc1 $f12, 0x8c($s1) /* 07DB50 7F048FE0 460CA03E */ c.le.s $f20, $f12 /* 07DB54 7F048FE4 00000000 */ nop /* 07DB58 7F048FE8 45000008 */ bc1f .Ljp7F04900C /* 07DB5C 7F048FEC 00000000 */ nop /* 07DB60 7F048FF0 46146101 */ sub.s $f4, $f12, $f20 .Ljp7F048FF4: /* 07DB64 7F048FF4 E624008C */ swc1 $f4, 0x8c($s1) /* 07DB68 7F048FF8 C62C008C */ lwc1 $f12, 0x8c($s1) /* 07DB6C 7F048FFC 460CA03E */ c.le.s $f20, $f12 /* 07DB70 7F049000 00000000 */ nop /* 07DB74 7F049004 4503FFFB */ bc1tl .Ljp7F048FF4 /* 07DB78 7F049008 46146101 */ sub.s $f4, $f12, $f20 .Ljp7F04900C: /* 07DB7C 7F04900C 4616603C */ c.lt.s $f12, $f22 /* 07DB80 7F049010 00000000 */ nop /* 07DB84 7F049014 45020009 */ bc1fl .Ljp7F04903C /* 07DB88 7F049018 C626008C */ lwc1 $f6, 0x8c($s1) /* 07DB8C 7F04901C 46146200 */ add.s $f8, $f12, $f20 .Ljp7F049020: /* 07DB90 7F049020 E628008C */ swc1 $f8, 0x8c($s1) /* 07DB94 7F049024 C62C008C */ lwc1 $f12, 0x8c($s1) /* 07DB98 7F049028 4616603C */ c.lt.s $f12, $f22 /* 07DB9C 7F04902C 00000000 */ nop /* 07DBA0 7F049030 4503FFFB */ bc1tl .Ljp7F049020 /* 07DBA4 7F049034 46146200 */ add.s $f8, $f12, $f20 .Ljp7F049038: /* 07DBA8 7F049038 C626008C */ lwc1 $f6, 0x8c($s1) .Ljp7F04903C: /* 07DBAC 7F04903C 46003280 */ add.s $f10, $f6, $f0 /* 07DBB0 7F049040 E62A008C */ swc1 $f10, 0x8c($s1) /* 07DBB4 7F049044 C62C008C */ lwc1 $f12, 0x8c($s1) /* 07DBB8 7F049048 460CA03E */ c.le.s $f20, $f12 /* 07DBBC 7F04904C 00000000 */ nop /* 07DBC0 7F049050 45020009 */ bc1fl .Ljp7F049078 /* 07DBC4 7F049054 4616603C */ c.lt.s $f12, $f22 /* 07DBC8 7F049058 46146101 */ sub.s $f4, $f12, $f20 .Ljp7F04905C: /* 07DBCC 7F04905C E624008C */ swc1 $f4, 0x8c($s1) /* 07DBD0 7F049060 C62C008C */ lwc1 $f12, 0x8c($s1) /* 07DBD4 7F049064 460CA03E */ c.le.s $f20, $f12 /* 07DBD8 7F049068 00000000 */ nop /* 07DBDC 7F04906C 4503FFFB */ bc1tl .Ljp7F04905C /* 07DBE0 7F049070 46146101 */ sub.s $f4, $f12, $f20 /* 07DBE4 7F049074 4616603C */ c.lt.s $f12, $f22 .Ljp7F049078: /* 07DBE8 7F049078 00000000 */ nop /* 07DBEC 7F04907C 45000008 */ bc1f .Ljp7F0490A0 /* 07DBF0 7F049080 00000000 */ nop /* 07DBF4 7F049084 46146200 */ add.s $f8, $f12, $f20 .Ljp7F049088: /* 07DBF8 7F049088 E628008C */ swc1 $f8, 0x8c($s1) /* 07DBFC 7F04908C C62C008C */ lwc1 $f12, 0x8c($s1) /* 07DC00 7F049090 4616603C */ c.lt.s $f12, $f22 /* 07DC04 7F049094 00000000 */ nop /* 07DC08 7F049098 4503FFFB */ bc1tl .Ljp7F049088 /* 07DC0C 7F04909C 46146200 */ add.s $f8, $f12, $f20 .Ljp7F0490A0: /* 07DC10 7F0490A0 0FC162A4 */ jal matrix_4x4_set_rotation_around_x /* 07DC14 7F0490A4 27A502B0 */ addiu $a1, $sp, 0x2b0 /* 07DC18 7F0490A8 C6260088 */ lwc1 $f6, 0x88($s1) /* 07DC1C 7F0490AC 4606B03C */ c.lt.s $f22, $f6 /* 07DC20 7F0490B0 00000000 */ nop /* 07DC24 7F0490B4 4502002B */ bc1fl .Ljp7F049164 /* 07DC28 7F0490B8 C62C0090 */ lwc1 $f12, 0x90($s1) /* 07DC2C 7F0490BC 8FAA0264 */ lw $t2, 0x264($sp) /* 07DC30 7F0490C0 C60A0008 */ lwc1 $f10, 8($s0) /* 07DC34 7F0490C4 C62C009C */ lwc1 $f12, 0x9c($s1) /* 07DC38 7F0490C8 C5440008 */ lwc1 $f4, 8($t2) /* 07DC3C 7F0490CC C6860014 */ lwc1 $f6, 0x14($s4) /* 07DC40 7F0490D0 4616603C */ c.lt.s $f12, $f22 /* 07DC44 7F0490D4 46045201 */ sub.s $f8, $f10, $f4 /* 07DC48 7F0490D8 46064082 */ mul.s $f2, $f8, $f6 /* 07DC4C 7F0490DC 45020003 */ bc1fl .Ljp7F0490EC /* 07DC50 7F0490E0 E7A20254 */ swc1 $f2, 0x254($sp) /* 07DC54 7F0490E4 46006307 */ neg.s $f12, $f12 /* 07DC58 7F0490E8 E7A20254 */ swc1 $f2, 0x254($sp) .Ljp7F0490EC: /* 07DC5C 7F0490EC 0FC160F3 */ jal sinf /* 07DC60 7F0490F0 E7AC0250 */ swc1 $f12, 0x250($sp) /* 07DC64 7F0490F4 C7A20254 */ lwc1 $f2, 0x254($sp) /* 07DC68 7F0490F8 C7AC0250 */ lwc1 $f12, 0x250($sp) /* 07DC6C 7F0490FC 46020282 */ mul.s $f10, $f0, $f2 /* 07DC70 7F049100 0FC160F0 */ jal cosf /* 07DC74 7F049104 E7AA024C */ swc1 $f10, 0x24c($sp) /* 07DC78 7F049108 C7A20254 */ lwc1 $f2, 0x254($sp) /* 07DC7C 7F04910C C6280088 */ lwc1 $f8, 0x88($s1) /* 07DC80 7F049110 C7AC024C */ lwc1 $f12, 0x24c($sp) /* 07DC84 7F049114 46020102 */ mul.s $f4, $f0, $f2 /* 07DC88 7F049118 46081181 */ sub.s $f6, $f2, $f8 /* 07DC8C 7F04911C 0FC16BD4 */ jal atan2f /* 07DC90 7F049120 46062381 */ sub.s $f14, $f4, $f6 /* 07DC94 7F049124 C7A20250 */ lwc1 $f2, 0x250($sp) /* 07DC98 7F049128 E6200090 */ swc1 $f0, 0x90($s1) /* 07DC9C 7F04912C 4602003C */ c.lt.s $f0, $f2 /* 07DCA0 7F049130 00000000 */ nop /* 07DCA4 7F049134 45020003 */ bc1fl .Ljp7F049144 /* 07DCA8 7F049138 C62A009C */ lwc1 $f10, 0x9c($s1) /* 07DCAC 7F04913C E6220090 */ swc1 $f2, 0x90($s1) /* 07DCB0 7F049140 C62A009C */ lwc1 $f10, 0x9c($s1) .Ljp7F049144: /* 07DCB4 7F049144 460AB03C */ c.lt.s $f22, $f10 /* 07DCB8 7F049148 00000000 */ nop /* 07DCBC 7F04914C 45020005 */ bc1fl .Ljp7F049164 /* 07DCC0 7F049150 C62C0090 */ lwc1 $f12, 0x90($s1) /* 07DCC4 7F049154 C6280090 */ lwc1 $f8, 0x90($s1) /* 07DCC8 7F049158 4608A101 */ sub.s $f4, $f20, $f8 /* 07DCCC 7F04915C E6240090 */ swc1 $f4, 0x90($s1) /* 07DCD0 7F049160 C62C0090 */ lwc1 $f12, 0x90($s1) .Ljp7F049164: /* 07DCD4 7F049164 0FC162C7 */ jal matrix_4x4_set_rotation_around_y /* 07DCD8 7F049168 27A50270 */ addiu $a1, $sp, 0x270 /* 07DCDC 7F04916C 264500C0 */ addiu $a1, $s2, 0xc0 /* 07DCE0 7F049170 AFA50078 */ sw $a1, 0x78($sp) /* 07DCE4 7F049174 0FC16150 */ jal matrix_4x4_copy /* 07DCE8 7F049178 27A402B0 */ addiu $a0, $sp, 0x2b0 /* 07DCEC 7F04917C 02002025 */ move $a0, $s0 /* 07DCF0 7F049180 0FC163AE */ jal matrix_4x4_set_position /* 07DCF4 7F049184 8FA50078 */ lw $a1, 0x78($sp) /* 07DCF8 7F049188 02402025 */ move $a0, $s2 /* 07DCFC 7F04918C 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place /* 07DD00 7F049190 8FA50078 */ lw $a1, 0x78($sp) /* 07DD04 7F049194 26500100 */ addiu $s0, $s2, 0x100 /* 07DD08 7F049198 02002825 */ move $a1, $s0 /* 07DD0C 7F04919C 0FC16150 */ jal matrix_4x4_copy /* 07DD10 7F0491A0 27A402B0 */ addiu $a0, $sp, 0x2b0 /* 07DD14 7F0491A4 8FA40258 */ lw $a0, 0x258($sp) /* 07DD18 7F0491A8 0FC163AE */ jal matrix_4x4_set_position /* 07DD1C 7F0491AC 02002825 */ move $a1, $s0 /* 07DD20 7F0491B0 02402025 */ move $a0, $s2 /* 07DD24 7F0491B4 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place /* 07DD28 7F0491B8 02002825 */ move $a1, $s0 /* 07DD2C 7F0491BC 27A40270 */ addiu $a0, $sp, 0x270 /* 07DD30 7F0491C0 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place /* 07DD34 7F0491C4 27A502B0 */ addiu $a1, $sp, 0x2b0 /* 07DD38 7F0491C8 26450040 */ addiu $a1, $s2, 0x40 /* 07DD3C 7F0491CC AFA50070 */ sw $a1, 0x70($sp) /* 07DD40 7F0491D0 0FC16150 */ jal matrix_4x4_copy /* 07DD44 7F0491D4 27A402B0 */ addiu $a0, $sp, 0x2b0 /* 07DD48 7F0491D8 8FA40264 */ lw $a0, 0x264($sp) /* 07DD4C 7F0491DC 0FC163AE */ jal matrix_4x4_set_position /* 07DD50 7F0491E0 8FA50070 */ lw $a1, 0x70($sp) /* 07DD54 7F0491E4 02402025 */ move $a0, $s2 /* 07DD58 7F0491E8 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place /* 07DD5C 7F0491EC 8FA50070 */ lw $a1, 0x70($sp) /* 07DD60 7F0491F0 26450080 */ addiu $a1, $s2, 0x80 /* 07DD64 7F0491F4 AFA5006C */ sw $a1, 0x6c($sp) /* 07DD68 7F0491F8 0FC16150 */ jal matrix_4x4_copy /* 07DD6C 7F0491FC 27A402B0 */ addiu $a0, $sp, 0x2b0 /* 07DD70 7F049200 8FA40260 */ lw $a0, 0x260($sp) /* 07DD74 7F049204 0FC163AE */ jal matrix_4x4_set_position /* 07DD78 7F049208 8FA5006C */ lw $a1, 0x6c($sp) /* 07DD7C 7F04920C 02402025 */ move $a0, $s2 /* 07DD80 7F049210 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place /* 07DD84 7F049214 8FA5006C */ lw $a1, 0x6c($sp) /* 07DD88 7F049218 100000EC */ b .Ljp7F0495CC /* 07DD8C 7F04921C 8E8C0008 */ lw $t4, 8($s4) /* 07DD90 7F049220 24010028 */ li $at, 40 .Ljp7F049224: /* 07DD94 7F049224 14410086 */ bne $v0, $at, .Ljp7F049440 /* 07DD98 7F049228 00000000 */ nop /* 07DD9C 7F04922C 8E8F0008 */ lw $t7, 8($s4) /* 07DDA0 7F049230 3C188005 */ lui $t8, %hi(g_ClockTimer) # $t8, 0x8005 /* 07DDA4 7F049234 8F1883A4 */ lw $t8, %lo(g_ClockTimer)($t8) /* 07DDA8 7F049238 8DED0008 */ lw $t5, 8($t7) /* 07DDAC 7F04923C 8FA90680 */ lw $t1, 0x680($sp) /* 07DDB0 7F049240 27B001B4 */ addiu $s0, $sp, 0x1b4 /* 07DDB4 7F049244 8DB90008 */ lw $t9, 8($t5) /* 07DDB8 7F049248 3C0C8003 */ lui $t4, %hi(D_80030B34) # $t4, 0x8003 /* 07DDBC 7F04924C 02402025 */ move $a0, $s2 /* 07DDC0 7F049250 8F280004 */ lw $t0, 4($t9) /* 07DDC4 7F049254 26450040 */ addiu $a1, $s2, 0x40 /* 07DDC8 7F049258 1B00001E */ blez $t8, .Ljp7F0492D4 /* 07DDCC 7F04925C AFA80200 */ sw $t0, 0x200($sp) /* 07DDD0 7F049260 5120001D */ beql $t1, $zero, .Ljp7F0492D8 /* 07DDD4 7F049264 8E2B0014 */ lw $t3, 0x14($s1) /* 07DDD8 7F049268 C6260088 */ lwc1 $f6, 0x88($s1) /* 07DDDC 7F04926C C62A008C */ lwc1 $f10, 0x8c($s1) /* 07DDE0 7F049270 460A3200 */ add.s $f8, $f6, $f10 /* 07DDE4 7F049274 E6280088 */ swc1 $f8, 0x88($s1) /* 07DDE8 7F049278 C6200088 */ lwc1 $f0, 0x88($s1) /* 07DDEC 7F04927C 4600A03E */ c.le.s $f20, $f0 /* 07DDF0 7F049280 00000000 */ nop /* 07DDF4 7F049284 45020009 */ bc1fl .Ljp7F0492AC /* 07DDF8 7F049288 4616003C */ c.lt.s $f0, $f22 /* 07DDFC 7F04928C 46140101 */ sub.s $f4, $f0, $f20 .Ljp7F049290: /* 07DE00 7F049290 E6240088 */ swc1 $f4, 0x88($s1) /* 07DE04 7F049294 C6200088 */ lwc1 $f0, 0x88($s1) /* 07DE08 7F049298 4600A03E */ c.le.s $f20, $f0 /* 07DE0C 7F04929C 00000000 */ nop /* 07DE10 7F0492A0 4503FFFB */ bc1tl .Ljp7F049290 /* 07DE14 7F0492A4 46140101 */ sub.s $f4, $f0, $f20 /* 07DE18 7F0492A8 4616003C */ c.lt.s $f0, $f22 .Ljp7F0492AC: /* 07DE1C 7F0492AC 00000000 */ nop /* 07DE20 7F0492B0 45020009 */ bc1fl .Ljp7F0492D8 /* 07DE24 7F0492B4 8E2B0014 */ lw $t3, 0x14($s1) /* 07DE28 7F0492B8 46140180 */ add.s $f6, $f0, $f20 .Ljp7F0492BC: /* 07DE2C 7F0492BC E6260088 */ swc1 $f6, 0x88($s1) /* 07DE30 7F0492C0 C6200088 */ lwc1 $f0, 0x88($s1) /* 07DE34 7F0492C4 4616003C */ c.lt.s $f0, $f22 /* 07DE38 7F0492C8 00000000 */ nop /* 07DE3C 7F0492CC 4503FFFB */ bc1tl .Ljp7F0492BC /* 07DE40 7F0492D0 46140180 */ add.s $f6, $f0, $f20 .Ljp7F0492D4: /* 07DE44 7F0492D4 8E2B0014 */ lw $t3, 0x14($s1) .Ljp7F0492D8: /* 07DE48 7F0492D8 258C0B74 */ addiu $t4, %lo(D_80030B34) # addiu $t4, $t4, 0xb74 /* 07DE4C 7F0492DC 258F003C */ addiu $t7, $t4, 0x3c /* 07DE50 7F0492E0 8D6E0020 */ lw $t6, 0x20($t3) /* 07DE54 7F0492E4 02006825 */ move $t5, $s0 /* 07DE58 7F0492E8 11C00015 */ beqz $t6, .Ljp7F049340 /* 07DE5C 7F0492EC 00000000 */ nop .Ljp7F0492F0: /* 07DE60 7F0492F0 8D810000 */ lw $at, ($t4) /* 07DE64 7F0492F4 258C000C */ addiu $t4, $t4, 0xc /* 07DE68 7F0492F8 25AD000C */ addiu $t5, $t5, 0xc /* 07DE6C 7F0492FC ADA1FFF4 */ sw $at, -0xc($t5) /* 07DE70 7F049300 8D81FFF8 */ lw $at, -8($t4) /* 07DE74 7F049304 ADA1FFF8 */ sw $at, -8($t5) /* 07DE78 7F049308 8D81FFFC */ lw $at, -4($t4) /* 07DE7C 7F04930C 158FFFF8 */ bne $t4, $t7, .Ljp7F0492F0 /* 07DE80 7F049310 ADA1FFFC */ sw $at, -4($t5) /* 07DE84 7F049314 8D810000 */ lw $at, ($t4) /* 07DE88 7F049318 0FC1E26D */ jal camGetWorldToScreenMtxf /* 07DE8C 7F04931C ADA10000 */ sw $at, ($t5) /* 07DE90 7F049320 AFA201B4 */ sw $v0, 0x1b4($sp) /* 07DE94 7F049324 AFB201C4 */ sw $s2, 0x1c4($sp) /* 07DE98 7F049328 8E250014 */ lw $a1, 0x14($s1) /* 07DE9C 7F04932C 0FC1BE3A */ jal subcalcmatrices /* 07DEA0 7F049330 02002025 */ move $a0, $s0 /* 07DEA4 7F049334 26590040 */ addiu $t9, $s2, 0x40 /* 07DEA8 7F049338 10000003 */ b .Ljp7F049348 /* 07DEAC 7F04933C AFB90070 */ sw $t9, 0x70($sp) .Ljp7F049340: /* 07DEB0 7F049340 0FC16150 */ jal matrix_4x4_copy /* 07DEB4 7F049344 AFA50070 */ sw $a1, 0x70($sp) .Ljp7F049348: /* 07DEB8 7F049348 8E280008 */ lw $t0, 8($s1) /* 07DEBC 7F04934C 27A50204 */ addiu $a1, $sp, 0x204 /* 07DEC0 7F049350 0008C080 */ sll $t8, $t0, 2 /* 07DEC4 7F049354 07010006 */ bgez $t8, .Ljp7F049370 /* 07DEC8 7F049358 00000000 */ nop /* 07DECC 7F04935C C62C0088 */ lwc1 $f12, 0x88($s1) /* 07DED0 7F049360 0FC162EA */ jal matrix_4x4_set_rotation_around_z /* 07DED4 7F049364 27A50204 */ addiu $a1, $sp, 0x204 /* 07DED8 7F049368 10000004 */ b .Ljp7F04937C /* 07DEDC 7F04936C 26450080 */ addiu $a1, $s2, 0x80 .Ljp7F049370: /* 07DEE0 7F049370 0FC162C7 */ jal matrix_4x4_set_rotation_around_y /* 07DEE4 7F049374 C62C0088 */ lwc1 $f12, 0x88($s1) /* 07DEE8 7F049378 26450080 */ addiu $a1, $s2, 0x80 .Ljp7F04937C: /* 07DEEC 7F04937C AFA5006C */ sw $a1, 0x6c($sp) /* 07DEF0 7F049380 0FC16150 */ jal matrix_4x4_copy /* 07DEF4 7F049384 27A40204 */ addiu $a0, $sp, 0x204 /* 07DEF8 7F049388 8FA40200 */ lw $a0, 0x200($sp) /* 07DEFC 7F04938C 0FC163AE */ jal matrix_4x4_set_position /* 07DF00 7F049390 8FA5006C */ lw $a1, 0x6c($sp) /* 07DF04 7F049394 8FA40070 */ lw $a0, 0x70($sp) /* 07DF08 7F049398 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place /* 07DF0C 7F04939C 8FA5006C */ lw $a1, 0x6c($sp) /* 07DF10 7F0493A0 8E890008 */ lw $t1, 8($s4) /* 07DF14 7F0493A4 02802025 */ move $a0, $s4 /* 07DF18 7F0493A8 00003025 */ move $a2, $zero /* 07DF1C 7F0493AC 8D230008 */ lw $v1, 8($t1) /* 07DF20 7F0493B0 8C65000C */ lw $a1, 0xc($v1) /* 07DF24 7F0493B4 50A00013 */ beql $a1, $zero, .Ljp7F049404 /* 07DF28 7F0493B8 8C650010 */ lw $a1, 0x10($v1) /* 07DF2C 7F0493BC 0FC1B314 */ jal modelFindNodeMtx /* 07DF30 7F0493C0 8CB20004 */ lw $s2, 4($a1) /* 07DF34 7F0493C4 00408025 */ move $s0, $v0 /* 07DF38 7F0493C8 C62C0088 */ lwc1 $f12, 0x88($s1) /* 07DF3C 7F0493CC 0FC162A4 */ jal matrix_4x4_set_rotation_around_x /* 07DF40 7F0493D0 27A50204 */ addiu $a1, $sp, 0x204 /* 07DF44 7F0493D4 27A40204 */ addiu $a0, $sp, 0x204 /* 07DF48 7F0493D8 0FC16150 */ jal matrix_4x4_copy /* 07DF4C 7F0493DC 02002825 */ move $a1, $s0 /* 07DF50 7F0493E0 02402025 */ move $a0, $s2 /* 07DF54 7F0493E4 0FC163AE */ jal matrix_4x4_set_position /* 07DF58 7F0493E8 02002825 */ move $a1, $s0 /* 07DF5C 7F0493EC 8FA40070 */ lw $a0, 0x70($sp) /* 07DF60 7F0493F0 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place /* 07DF64 7F0493F4 02002825 */ move $a1, $s0 /* 07DF68 7F0493F8 8E8B0008 */ lw $t3, 8($s4) /* 07DF6C 7F0493FC 8D630008 */ lw $v1, 8($t3) /* 07DF70 7F049400 8C650010 */ lw $a1, 0x10($v1) .Ljp7F049404: /* 07DF74 7F049404 02802025 */ move $a0, $s4 /* 07DF78 7F049408 00003025 */ move $a2, $zero /* 07DF7C 7F04940C 50A0006F */ beql $a1, $zero, .Ljp7F0495CC /* 07DF80 7F049410 8E8C0008 */ lw $t4, 8($s4) /* 07DF84 7F049414 0FC1B314 */ jal modelFindNodeMtx /* 07DF88 7F049418 8CB20004 */ lw $s2, 4($a1) /* 07DF8C 7F04941C 00408025 */ move $s0, $v0 /* 07DF90 7F049420 02402025 */ move $a0, $s2 /* 07DF94 7F049424 0FC163A1 */ jal matrix_4x4_set_identity_and_position /* 07DF98 7F049428 00402825 */ move $a1, $v0 /* 07DF9C 7F04942C 8FA40070 */ lw $a0, 0x70($sp) /* 07DFA0 7F049430 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place /* 07DFA4 7F049434 02002825 */ move $a1, $s0 /* 07DFA8 7F049438 10000064 */ b .Ljp7F0495CC /* 07DFAC 7F04943C 8E8C0008 */ lw $t4, 8($s4) .Ljp7F049440: /* 07DFB0 7F049440 16020061 */ bne $s0, $v0, .Ljp7F0495C8 /* 07DFB4 7F049444 26450040 */ addiu $a1, $s2, 0x40 /* 07DFB8 7F049448 8E8E0008 */ lw $t6, 8($s4) /* 07DFBC 7F04944C 8DC30008 */ lw $v1, 8($t6) /* 07DFC0 7F049450 8C6F000C */ lw $t7, 0xc($v1) /* 07DFC4 7F049454 8C6A0004 */ lw $t2, 4($v1) /* 07DFC8 7F049458 8DEC0004 */ lw $t4, 4($t7) /* 07DFCC 7F04945C 8D500004 */ lw $s0, 4($t2) /* 07DFD0 7F049460 AFAC0168 */ sw $t4, 0x168($sp) /* 07DFD4 7F049464 8C6D0010 */ lw $t5, 0x10($v1) /* 07DFD8 7F049468 8DB90004 */ lw $t9, 4($t5) /* 07DFDC 7F04946C AFB90164 */ sw $t9, 0x164($sp) /* 07DFE0 7F049470 8C680008 */ lw $t0, 8($v1) /* 07DFE4 7F049474 8D180004 */ lw $t8, 4($t0) /* 07DFE8 7F049478 AFB80160 */ sw $t8, 0x160($sp) /* 07DFEC 7F04947C 8C690018 */ lw $t1, 0x18($v1) /* 07DFF0 7F049480 8D2B0004 */ lw $t3, 4($t1) /* 07DFF4 7F049484 AFAB015C */ sw $t3, 0x15c($sp) /* 07DFF8 7F049488 C62E00C8 */ lwc1 $f14, 0xc8($s1) /* 07DFFC 7F04948C 46007387 */ neg.s $f14, $f14 /* 07E000 7F049490 4616703C */ c.lt.s $f14, $f22 /* 07E004 7F049494 00000000 */ nop /* 07E008 7F049498 45020003 */ bc1fl .Ljp7F0494A8 /* 07E00C 7F04949C C62C00CC */ lwc1 $f12, 0xcc($s1) /* 07E010 7F0494A0 46147380 */ add.s $f14, $f14, $f20 /* 07E014 7F0494A4 C62C00CC */ lwc1 $f12, 0xcc($s1) .Ljp7F0494A8: /* 07E018 7F0494A8 46006307 */ neg.s $f12, $f12 /* 07E01C 7F0494AC 4616603C */ c.lt.s $f12, $f22 /* 07E020 7F0494B0 00000000 */ nop /* 07E024 7F0494B4 45020003 */ bc1fl .Ljp7F0494C4 /* 07E028 7F0494B8 AFA50070 */ sw $a1, 0x70($sp) /* 07E02C 7F0494BC 46146300 */ add.s $f12, $f12, $f20 /* 07E030 7F0494C0 AFA50070 */ sw $a1, 0x70($sp) .Ljp7F0494C4: /* 07E034 7F0494C4 0FC162C7 */ jal matrix_4x4_set_rotation_around_y /* 07E038 7F0494C8 E7AE0158 */ swc1 $f14, 0x158($sp) /* 07E03C 7F0494CC 02002025 */ move $a0, $s0 /* 07E040 7F0494D0 0FC163AE */ jal matrix_4x4_set_position /* 07E044 7F0494D4 8FA50070 */ lw $a1, 0x70($sp) /* 07E048 7F0494D8 02402025 */ move $a0, $s2 /* 07E04C 7F0494DC 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place /* 07E050 7F0494E0 8FA50070 */ lw $a1, 0x70($sp) /* 07E054 7F0494E4 264500C0 */ addiu $a1, $s2, 0xc0 /* 07E058 7F0494E8 C7AC0158 */ lwc1 $f12, 0x158($sp) /* 07E05C 7F0494EC 0FC162A4 */ jal matrix_4x4_set_rotation_around_x /* 07E060 7F0494F0 AFA50078 */ sw $a1, 0x78($sp) /* 07E064 7F0494F4 8FA40168 */ lw $a0, 0x168($sp) /* 07E068 7F0494F8 0FC163AE */ jal matrix_4x4_set_position /* 07E06C 7F0494FC 8FA50078 */ lw $a1, 0x78($sp) /* 07E070 7F049500 8FA40070 */ lw $a0, 0x70($sp) /* 07E074 7F049504 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place /* 07E078 7F049508 8FA50078 */ lw $a1, 0x78($sp) /* 07E07C 7F04950C 3C018005 */ lui $at, %hi(D_80052B70) # $at, 0x8005 /* 07E080 7F049510 26500100 */ addiu $s0, $s2, 0x100 /* 07E084 7F049514 02002825 */ move $a1, $s0 /* 07E088 7F049518 0FC162C7 */ jal matrix_4x4_set_rotation_around_y /* 07E08C 7F04951C C42C2BA0 */ lwc1 $f12, %lo(D_80052B70)($at) /* 07E090 7F049520 8FA40164 */ lw $a0, 0x164($sp) /* 07E094 7F049524 0FC163AE */ jal matrix_4x4_set_position /* 07E098 7F049528 02002825 */ move $a1, $s0 /* 07E09C 7F04952C 8FA40078 */ lw $a0, 0x78($sp) /* 07E0A0 7F049530 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place /* 07E0A4 7F049534 02002825 */ move $a1, $s0 /* 07E0A8 7F049538 26450080 */ addiu $a1, $s2, 0x80 /* 07E0AC 7F04953C AFA5006C */ sw $a1, 0x6c($sp) /* 07E0B0 7F049540 0FC163A1 */ jal matrix_4x4_set_identity_and_position /* 07E0B4 7F049544 8FA40160 */ lw $a0, 0x160($sp) /* 07E0B8 7F049548 8FA40070 */ lw $a0, 0x70($sp) /* 07E0BC 7F04954C 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place /* 07E0C0 7F049550 8FA5006C */ lw $a1, 0x6c($sp) /* 07E0C4 7F049554 0FC1E28D */ jal currentPlayerGetMatrix10D4 /* 07E0C8 7F049558 00000000 */ nop /* 07E0CC 7F04955C 27B00170 */ addiu $s0, $sp, 0x170 /* 07E0D0 7F049560 02003025 */ move $a2, $s0 /* 07E0D4 7F049564 00402025 */ move $a0, $v0 /* 07E0D8 7F049568 0FC161AB */ jal matrix_4x4_multiply_homogeneous /* 07E0DC 7F04956C 8FA50070 */ lw $a1, 0x70($sp) /* 07E0E0 7F049570 8FA4015C */ lw $a0, 0x15c($sp) /* 07E0E4 7F049574 02002825 */ move $a1, $s0 /* 07E0E8 7F049578 26260084 */ addiu $a2, $s1, 0x84 /* 07E0EC 7F04957C 0FC0FE10 */ jal sub_GAME_7F03F540 /* 07E0F0 7F049580 26270080 */ addiu $a3, $s1, 0x80 /* 07E0F4 7F049584 8E8E0008 */ lw $t6, 8($s4) /* 07E0F8 7F049588 8DC30008 */ lw $v1, 8($t6) /* 07E0FC 7F04958C 8C65001C */ lw $a1, 0x1c($v1) /* 07E100 7F049590 50A00008 */ beql $a1, $zero, .Ljp7F0495B4 /* 07E104 7F049594 8C650020 */ lw $a1, 0x20($v1) /* 07E108 7F049598 0FC1B363 */ jal modelGetNodeRwData /* 07E10C 7F04959C 02802025 */ move $a0, $s4 /* 07E110 7F0495A0 8E2A00C4 */ lw $t2, 0xc4($s1) /* 07E114 7F0495A4 A44A0000 */ sh $t2, ($v0) /* 07E118 7F0495A8 8E8F0008 */ lw $t7, 8($s4) /* 07E11C 7F0495AC 8DE30008 */ lw $v1, 8($t7) /* 07E120 7F0495B0 8C650020 */ lw $a1, 0x20($v1) .Ljp7F0495B4: /* 07E124 7F0495B4 50A00005 */ beql $a1, $zero, .Ljp7F0495CC /* 07E128 7F0495B8 8E8C0008 */ lw $t4, 8($s4) /* 07E12C 7F0495BC 0FC1B363 */ jal modelGetNodeRwData /* 07E130 7F0495C0 02802025 */ move $a0, $s4 /* 07E134 7F0495C4 AC400000 */ sw $zero, ($v0) .Ljp7F0495C8: /* 07E138 7F0495C8 8E8C0008 */ lw $t4, 8($s4) .Ljp7F0495CC: /* 07E13C 7F0495CC 02802025 */ move $a0, $s4 /* 07E140 7F0495D0 0FC1BD25 */ jal modelUpdateRelationsQuick /* 07E144 7F0495D4 8D850000 */ lw $a1, ($t4) /* 07E148 7F0495D8 8E8D000C */ lw $t5, 0xc($s4) /* 07E14C 7F0495DC 02602025 */ move $a0, $s3 /* 07E150 7F0495E0 C5AA0038 */ lwc1 $f10, 0x38($t5) /* 07E154 7F0495E4 46005207 */ neg.s $f8, $f10 /* 07E158 7F0495E8 0FC1101D */ jal chrobjWeaponTick /* 07E15C 7F0495EC E6680018 */ swc1 $f8, 0x18($s3) /* 07E160 7F0495F0 8E640020 */ lw $a0, 0x20($s3) /* 07E164 7F0495F4 50800018 */ beql $a0, $zero, .Ljp7F049658 /* 07E168 7F0495F8 8E230064 */ lw $v1, 0x64($s1) /* 07E16C 7F0495FC 8C820024 */ lw $v0, 0x24($a0) .Ljp7F049600: /* 07E170 7F049600 0FC11171 */ jal sub_GAME_7F0442DC /* 07E174 7F049604 AFA2068C */ sw $v0, 0x68c($sp) /* 07E178 7F049608 8FA4068C */ lw $a0, 0x68c($sp) /* 07E17C 7F04960C 5480FFFC */ bnezl $a0, .Ljp7F049600 /* 07E180 7F049610 8C820024 */ lw $v0, 0x24($a0) /* 07E184 7F049614 10000010 */ b .Ljp7F049658 /* 07E188 7F049618 8E230064 */ lw $v1, 0x64($s1) .Ljp7F04961C: /* 07E18C 7F04961C 92790001 */ lbu $t9, 1($s3) /* 07E190 7F049620 02602025 */ move $a0, $s3 /* 07E194 7F049624 3328FFFD */ andi $t0, $t9, 0xfffd /* 07E198 7F049628 0FC1101D */ jal chrobjWeaponTick /* 07E19C 7F04962C A2680001 */ sb $t0, 1($s3) /* 07E1A0 7F049630 8E640020 */ lw $a0, 0x20($s3) /* 07E1A4 7F049634 50800008 */ beql $a0, $zero, .Ljp7F049658 /* 07E1A8 7F049638 8E230064 */ lw $v1, 0x64($s1) /* 07E1AC 7F04963C 8C820024 */ lw $v0, 0x24($a0) .Ljp7F049640: /* 07E1B0 7F049640 0FC1114D */ jal sub_GAME_7F04424C /* 07E1B4 7F049644 AFA2068C */ sw $v0, 0x68c($sp) /* 07E1B8 7F049648 8FA4068C */ lw $a0, 0x68c($sp) /* 07E1BC 7F04964C 5480FFFC */ bnezl $a0, .Ljp7F049640 /* 07E1C0 7F049650 8C820024 */ lw $v0, 0x24($a0) /* 07E1C4 7F049654 8E230064 */ lw $v1, 0x64($s1) .Ljp7F049658: /* 07E1C8 7F049658 2401FEFF */ li $at, -257 /* 07E1CC 7F04965C 266B0008 */ addiu $t3, $s3, 8 /* 07E1D0 7F049660 30780100 */ andi $t8, $v1, 0x100 /* 07E1D4 7F049664 1300001F */ beqz $t8, .Ljp7F0496E4 /* 07E1D8 7F049668 00614824 */ and $t1, $v1, $at /* 07E1DC 7F04966C AE290064 */ sw $t1, 0x64($s1) /* 07E1E0 7F049670 0C002918 */ jal randomGetNext /* 07E1E4 7F049674 AFAB0074 */ sw $t3, 0x74($sp) /* 07E1E8 7F049678 44822000 */ mtc1 $v0, $f4 /* 07E1EC 7F04967C 02202025 */ move $a0, $s1 /* 07E1F0 7F049680 04410005 */ bgez $v0, .Ljp7F049698 /* 07E1F4 7F049684 468021A0 */ cvt.s.w $f6, $f4 /* 07E1F8 7F049688 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07E1FC 7F04968C 44815000 */ mtc1 $at, $f10 /* 07E200 7F049690 00000000 */ nop /* 07E204 7F049694 460A3180 */ add.s $f6, $f6, $f10 .Ljp7F049698: /* 07E208 7F049698 3C012F80 */ li $at, 0x2F800000 # 0.000000 /* 07E20C 7F04969C 44814000 */ mtc1 $at, $f8 /* 07E210 7F0496A0 3C014080 */ li $at, 0x40800000 # 4.000000 /* 07E214 7F0496A4 44815000 */ mtc1 $at, $f10 /* 07E218 7F0496A8 46083102 */ mul.s $f4, $f6, $f8 /* 07E21C 7F0496AC 3C014000 */ li $at, 0x40000000 # 2.000000 /* 07E220 7F0496B0 44814000 */ mtc1 $at, $f8 /* 07E224 7F0496B4 8E2E0064 */ lw $t6, 0x64($s1) /* 07E228 7F0496B8 3C010006 */ lui $at, 6 /* 07E22C 7F0496BC 8FA60074 */ lw $a2, 0x74($sp) /* 07E230 7F0496C0 01C15024 */ and $t2, $t6, $at /* 07E234 7F0496C4 460A2182 */ mul.s $f6, $f4, $f10 /* 07E238 7F0496C8 00003825 */ move $a3, $zero /* 07E23C 7F0496CC 000A7C42 */ srl $t7, $t2, 0x11 /* 07E240 7F0496D0 AFAF0010 */ sw $t7, 0x10($sp) /* 07E244 7F0496D4 46083100 */ add.s $f4, $f6, $f8 /* 07E248 7F0496D8 44052000 */ mfc1 $a1, $f4 /* 07E24C 7F0496DC 0FC13943 */ jal maybe_detonate_object /* 07E250 7F0496E0 00000000 */ nop .Ljp7F0496E4: /* 07E254 7F0496E4 8FAC0680 */ lw $t4, 0x680($sp) /* 07E258 7F0496E8 5180020D */ beql $t4, $zero, .Ljp7F049F20 /* 07E25C 7F0496EC 8FAD0688 */ lw $t5, 0x688($sp) /* 07E260 7F0496F0 92220003 */ lbu $v0, 3($s1) /* 07E264 7F0496F4 24010001 */ li $at, 1 /* 07E268 7F0496F8 54410006 */ bnel $v0, $at, .Ljp7F049714 /* 07E26C 7F0496FC 2401000D */ li $at, 13 /* 07E270 7F049700 0FC14FCE */ jal sub_GAME_7F053A3C /* 07E274 7F049704 8E640004 */ lw $a0, 4($s3) /* 07E278 7F049708 10000202 */ b .Ljp7F049F14 /* 07E27C 7F04970C 00000000 */ nop /* 07E280 7F049710 2401000D */ li $at, 13 .Ljp7F049714: /* 07E284 7F049714 144101FF */ bne $v0, $at, .Ljp7F049F14 /* 07E288 7F049718 00000000 */ nop /* 07E28C 7F04971C 0FC3021B */ jal lvlGetControlsLockedFlag /* 07E290 7F049720 00000000 */ nop /* 07E294 7F049724 144001FB */ bnez $v0, .Ljp7F049F14 /* 07E298 7F049728 00000000 */ nop /* 07E29C 7F04972C 8E700004 */ lw $s0, 4($s3) /* 07E2A0 7F049730 AFA00140 */ sw $zero, 0x140($sp) /* 07E2A4 7F049734 AFA0013C */ sw $zero, 0x13c($sp) /* 07E2A8 7F049738 8E0D00D0 */ lw $t5, 0xd0($s0) /* 07E2AC 7F04973C 51A001E4 */ beql $t5, $zero, .Ljp7F049ED0 /* 07E2B0 7F049740 8E8E0008 */ lw $t6, 8($s4) /* 07E2B4 7F049744 8E390008 */ lw $t9, 8($s1) /* 07E2B8 7F049748 001940C0 */ sll $t0, $t9, 3 /* 07E2BC 7F04974C 050201E0 */ bltzl $t0, .Ljp7F049ED0 /* 07E2C0 7F049750 8E8E0008 */ lw $t6, 8($s4) /* 07E2C4 7F049754 8E1800AC */ lw $t8, 0xac($s0) /* 07E2C8 7F049758 3C088005 */ lui $t0, %hi(g_GlobalTimer) # $t0, 0x8005 /* 07E2CC 7F04975C 27090001 */ addiu $t1, $t8, 1 /* 07E2D0 7F049760 312B0001 */ andi $t3, $t1, 1 /* 07E2D4 7F049764 AE0900AC */ sw $t1, 0xac($s0) /* 07E2D8 7F049768 2D6E0001 */ sltiu $t6, $t3, 1 /* 07E2DC 7F04976C AFAE0140 */ sw $t6, 0x140($sp) /* 07E2E0 7F049770 8E8A0008 */ lw $t2, 8($s4) /* 07E2E4 7F049774 396D0001 */ xori $t5, $t3, 1 /* 07E2E8 7F049778 2DAD0001 */ sltiu $t5, $t5, 1 /* 07E2EC 7F04977C 8D4F0008 */ lw $t7, 8($t2) /* 07E2F0 7F049780 8DEC0014 */ lw $t4, 0x14($t7) /* 07E2F4 7F049784 51800003 */ beql $t4, $zero, .Ljp7F049794 /* 07E2F8 7F049788 8E1900C0 */ lw $t9, 0xc0($s0) /* 07E2FC 7F04978C AFAD013C */ sw $t5, 0x13c($sp) /* 07E300 7F049790 8E1900C0 */ lw $t9, 0xc0($s0) .Ljp7F049794: /* 07E304 7F049794 8D0883AC */ lw $t0, %lo(g_GlobalTimer)($t0) /* 07E308 7F049798 0328082A */ slt $at, $t9, $t0 /* 07E30C 7F04979C 50200032 */ beql $at, $zero, .Ljp7F049868 /* 07E310 7F0497A0 8FAC0140 */ lw $t4, 0x140($sp) /* 07E314 7F0497A4 8E0400C4 */ lw $a0, 0xc4($s0) /* 07E318 7F0497A8 50800008 */ beql $a0, $zero, .Ljp7F0497CC /* 07E31C 7F0497AC 8E0400C8 */ lw $a0, 0xc8($s0) /* 07E320 7F0497B0 0C002380 */ jal sndGetPlayingState /* 07E324 7F0497B4 00000000 */ nop /* 07E328 7F0497B8 50400004 */ beql $v0, $zero, .Ljp7F0497CC /* 07E32C 7F0497BC 8E0400C8 */ lw $a0, 0xc8($s0) /* 07E330 7F0497C0 0C00240C */ jal sndDeactivate /* 07E334 7F0497C4 8E0400C4 */ lw $a0, 0xc4($s0) /* 07E338 7F0497C8 8E0400C8 */ lw $a0, 0xc8($s0) .Ljp7F0497CC: /* 07E33C 7F0497CC 50800008 */ beql $a0, $zero, .Ljp7F0497F0 /* 07E340 7F0497D0 8E1800C4 */ lw $t8, 0xc4($s0) /* 07E344 7F0497D4 0C002380 */ jal sndGetPlayingState /* 07E348 7F0497D8 00000000 */ nop /* 07E34C 7F0497DC 50400004 */ beql $v0, $zero, .Ljp7F0497F0 /* 07E350 7F0497E0 8E1800C4 */ lw $t8, 0xc4($s0) /* 07E354 7F0497E4 0C00240C */ jal sndDeactivate /* 07E358 7F0497E8 8E0400C8 */ lw $a0, 0xc8($s0) /* 07E35C 7F0497EC 8E1800C4 */ lw $t8, 0xc4($s0) .Ljp7F0497F0: /* 07E360 7F0497F0 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 /* 07E364 7F0497F4 240500FD */ li $a1, 253 /* 07E368 7F0497F8 1700000A */ bnez $t8, .Ljp7F049824 /* 07E36C 7F0497FC 260600C4 */ addiu $a2, $s0, 0xc4 /* 07E370 7F049800 26690008 */ addiu $t1, $s3, 8 /* 07E374 7F049804 AFA90074 */ sw $t1, 0x74($sp) /* 07E378 7F049808 0C002386 */ jal sndPlaySfx /* 07E37C 7F04980C 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07E380 7F049810 8E0400C4 */ lw $a0, 0xc4($s0) /* 07E384 7F049814 0FC14FC3 */ jal chrobjSndCreatePostEventDefault /* 07E388 7F049818 8FA50074 */ lw $a1, 0x74($sp) /* 07E38C 7F04981C 1000000D */ b .Ljp7F049854 /* 07E390 7F049820 00000000 */ nop .Ljp7F049824: /* 07E394 7F049824 8E0B00C8 */ lw $t3, 0xc8($s0) /* 07E398 7F049828 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 /* 07E39C 7F04982C 240500FD */ li $a1, 253 /* 07E3A0 7F049830 15600008 */ bnez $t3, .Ljp7F049854 /* 07E3A4 7F049834 260600C8 */ addiu $a2, $s0, 0xc8 /* 07E3A8 7F049838 266E0008 */ addiu $t6, $s3, 8 /* 07E3AC 7F04983C AFAE0074 */ sw $t6, 0x74($sp) /* 07E3B0 7F049840 0C002386 */ jal sndPlaySfx /* 07E3B4 7F049844 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07E3B8 7F049848 8E0400C8 */ lw $a0, 0xc8($s0) /* 07E3BC 7F04984C 0FC14FC3 */ jal chrobjSndCreatePostEventDefault /* 07E3C0 7F049850 8FA50074 */ lw $a1, 0x74($sp) .Ljp7F049854: /* 07E3C4 7F049854 3C0A8005 */ lui $t2, %hi(g_GlobalTimer) # $t2, 0x8005 /* 07E3C8 7F049858 8D4A83AC */ lw $t2, %lo(g_GlobalTimer)($t2) /* 07E3CC 7F04985C 254F0002 */ addiu $t7, $t2, 2 /* 07E3D0 7F049860 AE0F00C0 */ sw $t7, 0xc0($s0) /* 07E3D4 7F049864 8FAC0140 */ lw $t4, 0x140($sp) .Ljp7F049868: /* 07E3D8 7F049868 8FAD013C */ lw $t5, 0x13c($sp) /* 07E3DC 7F04986C 24190001 */ li $t9, 1 /* 07E3E0 7F049870 55800004 */ bnezl $t4, .Ljp7F049884 /* 07E3E4 7F049874 AFB90120 */ sw $t9, 0x120($sp) /* 07E3E8 7F049878 51A00195 */ beql $t5, $zero, .Ljp7F049ED0 /* 07E3EC 7F04987C 8E8E0008 */ lw $t6, 8($s4) /* 07E3F0 7F049880 AFB90120 */ sw $t9, 0x120($sp) .Ljp7F049884: /* 07E3F4 7F049884 AFA00110 */ sw $zero, 0x110($sp) /* 07E3F8 7F049888 8E680014 */ lw $t0, 0x14($s3) /* 07E3FC 7F04988C AFA8010C */ sw $t0, 0x10c($sp) /* 07E400 7F049890 8E1800AC */ lw $t8, 0xac($s0) /* 07E404 7F049894 33090003 */ andi $t1, $t8, 3 /* 07E408 7F049898 2D2B0001 */ sltiu $t3, $t1, 1 /* 07E40C 7F04989C 0FC2279B */ jal get_curplayer_positiondata /* 07E410 7F0498A0 AFAB0108 */ sw $t3, 0x108($sp) /* 07E414 7F0498A4 AFA20104 */ sw $v0, 0x104($sp) /* 07E418 7F0498A8 8E8E0008 */ lw $t6, 8($s4) /* 07E41C 7F0498AC 24040005 */ li $a0, 5 /* 07E420 7F0498B0 8DC30008 */ lw $v1, 8($t6) /* 07E424 7F0498B4 8C6A001C */ lw $t2, 0x1c($v1) /* 07E428 7F0498B8 51400007 */ beql $t2, $zero, .Ljp7F0498D8 /* 07E42C 7F0498BC 926D0001 */ lbu $t5, 1($s3) /* 07E430 7F0498C0 8E0F00AC */ lw $t7, 0xac($s0) /* 07E434 7F0498C4 31EC0007 */ andi $t4, $t7, 7 /* 07E438 7F0498C8 55800003 */ bnezl $t4, .Ljp7F0498D8 /* 07E43C 7F0498CC 926D0001 */ lbu $t5, 1($s3) /* 07E440 7F0498D0 24040007 */ li $a0, 7 /* 07E444 7F0498D4 926D0001 */ lbu $t5, 1($s3) .Ljp7F0498D8: /* 07E448 7F0498D8 31B90002 */ andi $t9, $t5, 2 /* 07E44C 7F0498DC 1320002D */ beqz $t9, .Ljp7F049994 /* 07E450 7F0498E0 00048880 */ sll $s1, $a0, 2 /* 07E454 7F0498E4 00714021 */ addu $t0, $v1, $s1 /* 07E458 7F0498E8 8D050000 */ lw $a1, ($t0) /* 07E45C 7F0498EC 02802025 */ move $a0, $s4 /* 07E460 7F0498F0 50A00029 */ beql $a1, $zero, .Ljp7F049998 /* 07E464 7F0498F4 C6640008 */ lwc1 $f4, 8($s3) /* 07E468 7F0498F8 0FC1B314 */ jal modelFindNodeMtx /* 07E46C 7F0498FC 00003025 */ move $a2, $zero /* 07E470 7F049900 8E980008 */ lw $t8, 8($s4) /* 07E474 7F049904 00409025 */ move $s2, $v0 /* 07E478 7F049908 8F090008 */ lw $t1, 8($t8) /* 07E47C 7F04990C 01315821 */ addu $t3, $t1, $s1 /* 07E480 7F049910 8D6E0000 */ lw $t6, ($t3) /* 07E484 7F049914 8DC30004 */ lw $v1, 4($t6) /* 07E488 7F049918 C46A0000 */ lwc1 $f10, ($v1) /* 07E48C 7F04991C E7AA0130 */ swc1 $f10, 0x130($sp) /* 07E490 7F049920 C4660004 */ lwc1 $f6, 4($v1) /* 07E494 7F049924 E7A60134 */ swc1 $f6, 0x134($sp) /* 07E498 7F049928 C4680008 */ lwc1 $f8, 8($v1) /* 07E49C 7F04992C 0FC1E28D */ jal currentPlayerGetMatrix10D4 /* 07E4A0 7F049930 E7A80138 */ swc1 $f8, 0x138($sp) /* 07E4A4 7F049934 27B100BC */ addiu $s1, $sp, 0xbc /* 07E4A8 7F049938 02203025 */ move $a2, $s1 /* 07E4AC 7F04993C 00402025 */ move $a0, $v0 /* 07E4B0 7F049940 0FC161AB */ jal matrix_4x4_multiply_homogeneous /* 07E4B4 7F049944 02402825 */ move $a1, $s2 /* 07E4B8 7F049948 02202025 */ move $a0, $s1 /* 07E4BC 7F04994C 0FC16265 */ jal mtx4TransformVecInPlace /* 07E4C0 7F049950 27A50130 */ addiu $a1, $sp, 0x130 /* 07E4C4 7F049954 C7A40138 */ lwc1 $f4, 0x138($sp) /* 07E4C8 7F049958 8E650008 */ lw $a1, 8($s3) /* 07E4CC 7F04995C 8E660010 */ lw $a2, 0x10($s3) /* 07E4D0 7F049960 27A4010C */ addiu $a0, $sp, 0x10c /* 07E4D4 7F049964 8FA70130 */ lw $a3, 0x130($sp) /* 07E4D8 7F049968 0FC2C5E5 */ jal walkTilesBetweenPoints_NoCallback /* 07E4DC 7F04996C E7A40010 */ swc1 $f4, 0x10($sp) /* 07E4E0 7F049970 1440000E */ bnez $v0, .Ljp7F0499AC /* 07E4E4 7F049974 00000000 */ nop /* 07E4E8 7F049978 C66A0008 */ lwc1 $f10, 8($s3) /* 07E4EC 7F04997C E7AA0130 */ swc1 $f10, 0x130($sp) /* 07E4F0 7F049980 C666000C */ lwc1 $f6, 0xc($s3) /* 07E4F4 7F049984 E7A60134 */ swc1 $f6, 0x134($sp) /* 07E4F8 7F049988 C6680010 */ lwc1 $f8, 0x10($s3) /* 07E4FC 7F04998C 10000007 */ b .Ljp7F0499AC /* 07E500 7F049990 E7A80138 */ swc1 $f8, 0x138($sp) .Ljp7F049994: /* 07E504 7F049994 C6640008 */ lwc1 $f4, 8($s3) .Ljp7F049998: /* 07E508 7F049998 E7A40130 */ swc1 $f4, 0x130($sp) /* 07E50C 7F04999C C66A000C */ lwc1 $f10, 0xc($s3) /* 07E510 7F0499A0 E7AA0134 */ swc1 $f10, 0x134($sp) /* 07E514 7F0499A4 C6660010 */ lwc1 $f6, 0x10($s3) /* 07E518 7F0499A8 E7A60138 */ swc1 $f6, 0x138($sp) .Ljp7F0499AC: /* 07E51C 7F0499AC 0FC160F0 */ jal cosf /* 07E520 7F0499B0 C60C009C */ lwc1 $f12, 0x9c($s0) /* 07E524 7F0499B4 C60C0090 */ lwc1 $f12, 0x90($s0) /* 07E528 7F0499B8 0FC160F3 */ jal sinf /* 07E52C 7F0499BC E7A00080 */ swc1 $f0, 0x80($sp) /* 07E530 7F0499C0 C7A20080 */ lwc1 $f2, 0x80($sp) /* 07E534 7F0499C4 46020202 */ mul.s $f8, $f0, $f2 /* 07E538 7F0499C8 E7A80124 */ swc1 $f8, 0x124($sp) /* 07E53C 7F0499CC 0FC160F3 */ jal sinf /* 07E540 7F0499D0 C60C009C */ lwc1 $f12, 0x9c($s0) /* 07E544 7F0499D4 E7A00128 */ swc1 $f0, 0x128($sp) /* 07E548 7F0499D8 0FC160F0 */ jal cosf /* 07E54C 7F0499DC C60C009C */ lwc1 $f12, 0x9c($s0) /* 07E550 7F0499E0 C60C0090 */ lwc1 $f12, 0x90($s0) /* 07E554 7F0499E4 0FC160F0 */ jal cosf /* 07E558 7F0499E8 E7A00080 */ swc1 $f0, 0x80($sp) /* 07E55C 7F0499EC C7A20080 */ lwc1 $f2, 0x80($sp) /* 07E560 7F0499F0 3C014780 */ li $at, 0x47800000 # 65536.000000 /* 07E564 7F0499F4 44816000 */ mtc1 $at, $f12 /* 07E568 7F0499F8 46020382 */ mul.s $f14, $f0, $f2 /* 07E56C 7F0499FC C7A40124 */ lwc1 $f4, 0x124($sp) /* 07E570 7F049A00 C7A60130 */ lwc1 $f6, 0x130($sp) /* 07E574 7F049A04 460C2282 */ mul.s $f10, $f4, $f12 /* 07E578 7F049A08 C7A40128 */ lwc1 $f4, 0x128($sp) /* 07E57C 7F049A0C E7AE012C */ swc1 $f14, 0x12c($sp) /* 07E580 7F049A10 46065200 */ add.s $f8, $f10, $f6 /* 07E584 7F049A14 460C2282 */ mul.s $f10, $f4, $f12 /* 07E588 7F049A18 C7A60134 */ lwc1 $f6, 0x134($sp) /* 07E58C 7F049A1C 460C7102 */ mul.s $f4, $f14, $f12 /* 07E590 7F049A20 E7A80114 */ swc1 $f8, 0x114($sp) /* 07E594 7F049A24 46065200 */ add.s $f8, $f10, $f6 /* 07E598 7F049A28 C7AA0138 */ lwc1 $f10, 0x138($sp) /* 07E59C 7F049A2C 460A2180 */ add.s $f6, $f4, $f10 /* 07E5A0 7F049A30 E7A80118 */ swc1 $f8, 0x118($sp) /* 07E5A4 7F049A34 0FC2CA1D */ jal sub_GAME_7F0B1CC4 /* 07E5A8 7F049A38 E7A6011C */ swc1 $f6, 0x11c($sp) /* 07E5AC 7F049A3C 3C0142C8 */ li $at, 0x42C80000 # 100.000000 /* 07E5B0 7F049A40 44810000 */ mtc1 $at, $f0 /* 07E5B4 7F049A44 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07E5B8 7F049A48 44812000 */ mtc1 $at, $f4 /* 07E5BC 7F049A4C C7A8011C */ lwc1 $f8, 0x11c($sp) /* 07E5C0 7F049A50 240A0002 */ li $t2, 2 /* 07E5C4 7F049A54 AFAA0014 */ sw $t2, 0x14($sp) /* 07E5C8 7F049A58 27A4010C */ addiu $a0, $sp, 0x10c /* 07E5CC 7F049A5C 8FA50130 */ lw $a1, 0x130($sp) /* 07E5D0 7F049A60 8FA60138 */ lw $a2, 0x138($sp) /* 07E5D4 7F049A64 8FA70114 */ lw $a3, 0x114($sp) /* 07E5D8 7F049A68 E7B60020 */ swc1 $f22, 0x20($sp) /* 07E5DC 7F049A6C E7A00018 */ swc1 $f0, 0x18($sp) /* 07E5E0 7F049A70 E7A0001C */ swc1 $f0, 0x1c($sp) /* 07E5E4 7F049A74 E7A80010 */ swc1 $f8, 0x10($sp) /* 07E5E8 7F049A78 0FC2C675 */ jal stanTestLineUnobstructed /* 07E5EC 7F049A7C E7A40024 */ swc1 $f4, 0x24($sp) /* 07E5F0 7F049A80 14400017 */ bnez $v0, .Ljp7F049AE0 /* 07E5F4 7F049A84 27A60114 */ addiu $a2, $sp, 0x114 /* 07E5F8 7F049A88 27A40130 */ addiu $a0, $sp, 0x130 /* 07E5FC 7F049A8C 0FC09955 */ jal chrlvStanLineDirIntersection /* 07E600 7F049A90 27A50124 */ addiu $a1, $sp, 0x124 /* 07E604 7F049A94 3C0141D0 */ li $at, 0x41D00000 # 26.000000 /* 07E608 7F049A98 44818000 */ mtc1 $at, $f16 /* 07E60C 7F049A9C C7A60124 */ lwc1 $f6, 0x124($sp) /* 07E610 7F049AA0 C7AA0114 */ lwc1 $f10, 0x114($sp) /* 07E614 7F049AA4 C7AE012C */ lwc1 $f14, 0x12c($sp) /* 07E618 7F049AA8 46068202 */ mul.s $f8, $f16, $f6 /* 07E61C 7F049AAC C7A60118 */ lwc1 $f6, 0x118($sp) /* 07E620 7F049AB0 8FAF010C */ lw $t7, 0x10c($sp) /* 07E624 7F049AB4 AFAF0110 */ sw $t7, 0x110($sp) /* 07E628 7F049AB8 46085101 */ sub.s $f4, $f10, $f8 /* 07E62C 7F049ABC C7AA0128 */ lwc1 $f10, 0x128($sp) /* 07E630 7F049AC0 460A8202 */ mul.s $f8, $f16, $f10 /* 07E634 7F049AC4 E7A40114 */ swc1 $f4, 0x114($sp) /* 07E638 7F049AC8 C7AA011C */ lwc1 $f10, 0x11c($sp) /* 07E63C 7F049ACC 46083101 */ sub.s $f4, $f6, $f8 /* 07E640 7F049AD0 460E8182 */ mul.s $f6, $f16, $f14 /* 07E644 7F049AD4 E7A40118 */ swc1 $f4, 0x118($sp) /* 07E648 7F049AD8 46065201 */ sub.s $f8, $f10, $f6 /* 07E64C 7F049ADC E7A8011C */ swc1 $f8, 0x11c($sp) .Ljp7F049AE0: /* 07E650 7F049AE0 3C0C8005 */ lui $t4, %hi(g_GlobalTimer) # $t4, 0x8005 /* 07E654 7F049AE4 8D8C83AC */ lw $t4, %lo(g_GlobalTimer)($t4) /* 07E658 7F049AE8 8E0D00BC */ lw $t5, 0xbc($s0) /* 07E65C 7F049AEC 27B10114 */ addiu $s1, $sp, 0x114 /* 07E660 7F049AF0 8FA50104 */ lw $a1, 0x104($sp) /* 07E664 7F049AF4 158D0052 */ bne $t4, $t5, .Ljp7F049C40 /* 07E668 7F049AF8 C7AA0130 */ lwc1 $f10, 0x130($sp) /* 07E66C 7F049AFC C4A40008 */ lwc1 $f4, 8($a1) /* 07E670 7F049B00 C4A6000C */ lwc1 $f6, 0xc($a1) /* 07E674 7F049B04 C7A80134 */ lwc1 $f8, 0x134($sp) /* 07E678 7F049B08 460A2001 */ sub.s $f0, $f4, $f10 /* 07E67C 7F049B0C C4A40010 */ lwc1 $f4, 0x10($a1) /* 07E680 7F049B10 E7AA0058 */ swc1 $f10, 0x58($sp) /* 07E684 7F049B14 46083081 */ sub.s $f2, $f6, $f8 /* 07E688 7F049B18 C7A60138 */ lwc1 $f6, 0x138($sp) /* 07E68C 7F049B1C 46062301 */ sub.s $f12, $f4, $f6 /* 07E690 7F049B20 46000102 */ mul.s $f4, $f0, $f0 /* 07E694 7F049B24 00000000 */ nop /* 07E698 7F049B28 46021282 */ mul.s $f10, $f2, $f2 /* 07E69C 7F049B2C 460A2100 */ add.s $f4, $f4, $f10 /* 07E6A0 7F049B30 460C6282 */ mul.s $f10, $f12, $f12 /* 07E6A4 7F049B34 460A2500 */ add.s $f20, $f4, $f10 /* 07E6A8 7F049B38 C7AA0058 */ lwc1 $f10, 0x58($sp) /* 07E6AC 7F049B3C C7A40114 */ lwc1 $f4, 0x114($sp) /* 07E6B0 7F049B40 460A2001 */ sub.s $f0, $f4, $f10 /* 07E6B4 7F049B44 C7A40118 */ lwc1 $f4, 0x118($sp) /* 07E6B8 7F049B48 C7AA011C */ lwc1 $f10, 0x11c($sp) /* 07E6BC 7F049B4C 46082081 */ sub.s $f2, $f4, $f8 /* 07E6C0 7F049B50 46000102 */ mul.s $f4, $f0, $f0 /* 07E6C4 7F049B54 46065301 */ sub.s $f12, $f10, $f6 /* 07E6C8 7F049B58 46021202 */ mul.s $f8, $f2, $f2 /* 07E6CC 7F049B5C 46082280 */ add.s $f10, $f4, $f8 /* 07E6D0 7F049B60 460C6182 */ mul.s $f6, $f12, $f12 /* 07E6D4 7F049B64 46065100 */ add.s $f4, $f10, $f6 /* 07E6D8 7F049B68 4604A03E */ c.le.s $f20, $f4 /* 07E6DC 7F049B6C 00000000 */ nop /* 07E6E0 7F049B70 45000033 */ bc1f .Ljp7F049C40 /* 07E6E4 7F049B74 00000000 */ nop /* 07E6E8 7F049B78 0FC2296B */ jal bondviewGetIfCurrentPlayerDamageShowTime /* 07E6EC 7F049B7C 00000000 */ nop /* 07E6F0 7F049B80 54400030 */ bnezl $v0, .Ljp7F049C44 /* 07E6F4 7F049B84 8FB90120 */ lw $t9, 0x120($sp) /* 07E6F8 7F049B88 0C007E08 */ jal sqrtf /* 07E6FC 7F049B8C 4600A306 */ mov.s $f12, $f20 /* 07E700 7F049B90 3C014348 */ li $at, 0x43480000 # 200.000000 /* 07E704 7F049B94 44816000 */ mtc1 $at, $f12 /* 07E708 7F049B98 3C018005 */ lui $at, %hi(D_80052B74) # $at, 0x8005 /* 07E70C 7F049B9C C4282BA4 */ lwc1 $f8, %lo(D_80052B74)($at) /* 07E710 7F049BA0 3C018005 */ lui $at, %hi(g_JP_GlobalTimerDelta) # $at, 0x8005 /* 07E714 7F049BA4 C42A83A8 */ lwc1 $f10, %lo(g_JP_GlobalTimerDelta)($at) /* 07E718 7F049BA8 3C018003 */ lui $at, %hi(g_AutogunPendingDamageTick) # $at, 0x8003 /* 07E71C 7F049BAC 4600603C */ c.lt.s $f12, $f0 /* 07E720 7F049BB0 460A4182 */ mul.s $f6, $f8, $f10 /* 07E724 7F049BB4 C4240B5C */ lwc1 $f4, %lo(g_AutogunPendingDamageTick)($at) /* 07E728 7F049BB8 46043082 */ mul.s $f2, $f6, $f4 /* 07E72C 7F049BBC 45020005 */ bc1fl .Ljp7F049BD4 /* 07E730 7F049BC0 C60A00D4 */ lwc1 $f10, 0xd4($s0) /* 07E734 7F049BC4 46006203 */ div.s $f8, $f12, $f0 /* 07E738 7F049BC8 46081082 */ mul.s $f2, $f2, $f8 /* 07E73C 7F049BCC 00000000 */ nop /* 07E740 7F049BD0 C60A00D4 */ lwc1 $f10, 0xd4($s0) .Ljp7F049BD4: /* 07E744 7F049BD4 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07E748 7F049BD8 44814000 */ mtc1 $at, $f8 /* 07E74C 7F049BDC 46025180 */ add.s $f6, $f10, $f2 /* 07E750 7F049BE0 E60600D4 */ swc1 $f6, 0xd4($s0) /* 07E754 7F049BE4 C60400D4 */ lwc1 $f4, 0xd4($s0) /* 07E758 7F049BE8 4604403E */ c.le.s $f8, $f4 /* 07E75C 7F049BEC 00000000 */ nop /* 07E760 7F049BF0 45020014 */ bc1fl .Ljp7F049C44 /* 07E764 7F049BF4 8FB90120 */ lw $t9, 0x120($sp) /* 07E768 7F049BF8 0FC17929 */ jal bondwalkItemGetDestructionAmount /* 07E76C 7F049BFC 2404000E */ li $a0, 14 /* 07E770 7F049C00 3C013E00 */ li $at, 0x3E000000 # 0.125000 /* 07E774 7F049C04 44815000 */ mtc1 $at, $f10 /* 07E778 7F049C08 3C018003 */ lui $at, %hi(g_AutogunDamageScalar) # $at, 0x8003 /* 07E77C 7F049C0C C4240B60 */ lwc1 $f4, %lo(g_AutogunDamageScalar)($at) /* 07E780 7F049C10 460A0182 */ mul.s $f6, $f0, $f10 /* 07E784 7F049C14 C60E0090 */ lwc1 $f14, 0x90($s0) /* 07E788 7F049C18 2406FFFF */ li $a2, -1 /* 07E78C 7F049C1C 24070001 */ li $a3, 1 /* 07E790 7F049C20 46043302 */ mul.s $f12, $f6, $f4 /* 07E794 7F049C24 0FC22955 */ jal bondviewCallRecordDamageKills /* 07E798 7F049C28 00000000 */ nop /* 07E79C 7F049C2C 0FC2296B */ jal bondviewGetIfCurrentPlayerDamageShowTime /* 07E7A0 7F049C30 E61600D4 */ swc1 $f22, 0xd4($s0) /* 07E7A4 7F049C34 50400003 */ beql $v0, $zero, .Ljp7F049C44 /* 07E7A8 7F049C38 8FB90120 */ lw $t9, 0x120($sp) /* 07E7AC 7F049C3C AFA00120 */ sw $zero, 0x120($sp) .Ljp7F049C40: /* 07E7B0 7F049C40 8FB90120 */ lw $t9, 0x120($sp) .Ljp7F049C44: /* 07E7B4 7F049C44 3C0141D0 */ li $at, 0x41D00000 # 26.000000 /* 07E7B8 7F049C48 44818000 */ mtc1 $at, $f16 /* 07E7BC 7F049C4C 1320000F */ beqz $t9, .Ljp7F049C8C /* 07E7C0 7F049C50 8FA50104 */ lw $a1, 0x104($sp) /* 07E7C4 7F049C54 8FA80110 */ lw $t0, 0x110($sp) /* 07E7C8 7F049C58 02202025 */ move $a0, $s1 /* 07E7CC 7F049C5C 24050001 */ li $a1, 1 /* 07E7D0 7F049C60 51000005 */ beql $t0, $zero, .Ljp7F049C78 /* 07E7D4 7F049C64 2404000E */ li $a0, 14 /* 07E7D8 7F049C68 44068000 */ mfc1 $a2, $f16 /* 07E7DC 7F049C6C 0FC2926F */ jal sub_GAME_7F0A3E1C /* 07E7E0 7F049C70 91070003 */ lbu $a3, 3($t0) /* 07E7E4 7F049C74 2404000E */ li $a0, 14 .Ljp7F049C78: /* 07E7E8 7F049C78 02202825 */ move $a1, $s1 /* 07E7EC 7F049C7C 0FC1932F */ jal recall_joy2_hits_edit_flag /* 07E7F0 7F049C80 2406FFFF */ li $a2, -1 /* 07E7F4 7F049C84 1000000B */ b .Ljp7F049CB4 /* 07E7F8 7F049C88 8FB80108 */ lw $t8, 0x108($sp) .Ljp7F049C8C: /* 07E7FC 7F049C8C C4A80008 */ lwc1 $f8, 8($a1) /* 07E800 7F049C90 2404000E */ li $a0, 14 /* 07E804 7F049C94 2406FFFF */ li $a2, -1 /* 07E808 7F049C98 E7A80114 */ swc1 $f8, 0x114($sp) /* 07E80C 7F049C9C C4AA000C */ lwc1 $f10, 0xc($a1) /* 07E810 7F049CA0 E7AA0118 */ swc1 $f10, 0x118($sp) /* 07E814 7F049CA4 C4A60010 */ lwc1 $f6, 0x10($a1) /* 07E818 7F049CA8 0FC19252 */ jal recall_joy2_hits_edit_detail_edit_flag /* 07E81C 7F049CAC E7A6011C */ swc1 $f6, 0x11c($sp) /* 07E820 7F049CB0 8FB80108 */ lw $t8, 0x108($sp) .Ljp7F049CB4: /* 07E824 7F049CB4 C7A40130 */ lwc1 $f4, 0x130($sp) /* 07E828 7F049CB8 53000085 */ beql $t8, $zero, .Ljp7F049ED0 /* 07E82C 7F049CBC 8E8E0008 */ lw $t6, 8($s4) /* 07E830 7F049CC0 8E0300CC */ lw $v1, 0xcc($s0) /* 07E834 7F049CC4 E4640004 */ swc1 $f4, 4($v1) /* 07E838 7F049CC8 C7A80134 */ lwc1 $f8, 0x134($sp) /* 07E83C 7F049CCC C4640004 */ lwc1 $f4, 4($v1) /* 07E840 7F049CD0 E4680008 */ swc1 $f8, 8($v1) /* 07E844 7F049CD4 C7AA0138 */ lwc1 $f10, 0x138($sp) /* 07E848 7F049CD8 E46A000C */ swc1 $f10, 0xc($v1) /* 07E84C 7F049CDC C7A60114 */ lwc1 $f6, 0x114($sp) /* 07E850 7F049CE0 46043201 */ sub.s $f8, $f6, $f4 /* 07E854 7F049CE4 C4660008 */ lwc1 $f6, 8($v1) /* 07E858 7F049CE8 E4680010 */ swc1 $f8, 0x10($v1) /* 07E85C 7F049CEC C7AA0118 */ lwc1 $f10, 0x118($sp) /* 07E860 7F049CF0 C4620010 */ lwc1 $f2, 0x10($v1) /* 07E864 7F049CF4 46065101 */ sub.s $f4, $f10, $f6 /* 07E868 7F049CF8 C46A000C */ lwc1 $f10, 0xc($v1) /* 07E86C 7F049CFC E4640014 */ swc1 $f4, 0x14($v1) /* 07E870 7F049D00 C7A8011C */ lwc1 $f8, 0x11c($sp) /* 07E874 7F049D04 46021102 */ mul.s $f4, $f2, $f2 /* 07E878 7F049D08 C46E0014 */ lwc1 $f14, 0x14($v1) /* 07E87C 7F049D0C 460A4181 */ sub.s $f6, $f8, $f10 /* 07E880 7F049D10 460E7202 */ mul.s $f8, $f14, $f14 /* 07E884 7F049D14 E4660018 */ swc1 $f6, 0x18($v1) /* 07E888 7F049D18 C4600018 */ lwc1 $f0, 0x18($v1) /* 07E88C 7F049D1C AFA30094 */ sw $v1, 0x94($sp) /* 07E890 7F049D20 46000182 */ mul.s $f6, $f0, $f0 /* 07E894 7F049D24 46082280 */ add.s $f10, $f4, $f8 /* 07E898 7F049D28 0C007E08 */ jal sqrtf /* 07E89C 7F049D2C 460A3300 */ add.s $f12, $f6, $f10 /* 07E8A0 7F049D30 3C018005 */ lui $at, %hi(D_80052B78) # $at, 0x8005 /* 07E8A4 7F049D34 C42E2BA8 */ lwc1 $f14, %lo(D_80052B78)($at) /* 07E8A8 7F049D38 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07E8AC 7F049D3C 44812000 */ mtc1 $at, $f4 /* 07E8B0 7F049D40 8FA30094 */ lw $v1, 0x94($sp) /* 07E8B4 7F049D44 4600703C */ c.lt.s $f14, $f0 /* 07E8B8 7F049D48 46000306 */ mov.s $f12, $f0 /* 07E8BC 7F049D4C 46002083 */ div.s $f2, $f4, $f0 /* 07E8C0 7F049D50 C4680010 */ lwc1 $f8, 0x10($v1) /* 07E8C4 7F049D54 C46A0014 */ lwc1 $f10, 0x14($v1) /* 07E8C8 7F049D58 3C0143FA */ li $at, 0x43FA0000 # 500.000000 /* 07E8CC 7F049D5C 44810000 */ mtc1 $at, $f0 /* 07E8D0 7F049D60 46024182 */ mul.s $f6, $f8, $f2 /* 07E8D4 7F049D64 C4680018 */ lwc1 $f8, 0x18($v1) /* 07E8D8 7F049D68 46025102 */ mul.s $f4, $f10, $f2 /* 07E8DC 7F049D6C E4660010 */ swc1 $f6, 0x10($v1) /* 07E8E0 7F049D70 46024182 */ mul.s $f6, $f8, $f2 /* 07E8E4 7F049D74 E4640014 */ swc1 $f4, 0x14($v1) /* 07E8E8 7F049D78 45000002 */ bc1f .Ljp7F049D84 /* 07E8EC 7F049D7C E4660018 */ swc1 $f6, 0x18($v1) /* 07E8F0 7F049D80 46007306 */ mov.s $f12, $f14 .Ljp7F049D84: /* 07E8F4 7F049D84 4600603C */ c.lt.s $f12, $f0 /* 07E8F8 7F049D88 2409000E */ li $t1, 14 /* 07E8FC 7F049D8C A0600000 */ sb $zero, ($v1) /* 07E900 7F049D90 A0690001 */ sb $t1, 1($v1) /* 07E904 7F049D94 45000002 */ bc1f .Ljp7F049DA0 /* 07E908 7F049D98 E46C001C */ swc1 $f12, 0x1c($v1) /* 07E90C 7F049D9C 46000306 */ mov.s $f12, $f0 .Ljp7F049DA0: /* 07E910 7F049DA0 806B0001 */ lb $t3, 1($v1) /* 07E914 7F049DA4 24010016 */ li $at, 22 /* 07E918 7F049DA8 15610026 */ bne $t3, $at, .Ljp7F049E44 /* 07E91C 7F049DAC 3C018005 */ lui $at, %hi(D_80052B7C) # $at, 0x8005 /* 07E920 7F049DB0 C4222BAC */ lwc1 $f2, %lo(D_80052B7C)($at) /* 07E924 7F049DB4 3C013E80 */ li $at, 0x3E800000 # 0.250000 /* 07E928 7F049DB8 44815000 */ mtc1 $at, $f10 /* 07E92C 7F049DBC 3C018005 */ lui $at, %hi(D_80052B80) # $at, 0x8005 /* 07E930 7F049DC0 460C5102 */ mul.s $f4, $f10, $f12 /* 07E934 7F049DC4 E4640020 */ swc1 $f4, 0x20($v1) /* 07E938 7F049DC8 C4282BB0 */ lwc1 $f8, %lo(D_80052B80)($at) /* 07E93C 7F049DCC 460C4002 */ mul.s $f0, $f8, $f12 /* 07E940 7F049DD0 4600103C */ c.lt.s $f2, $f0 /* 07E944 7F049DD4 E4600024 */ swc1 $f0, 0x24($v1) /* 07E948 7F049DD8 45020003 */ bc1fl .Ljp7F049DE8 /* 07E94C 7F049DDC AFA30094 */ sw $v1, 0x94($sp) /* 07E950 7F049DE0 E4620024 */ swc1 $f2, 0x24($v1) /* 07E954 7F049DE4 AFA30094 */ sw $v1, 0x94($sp) .Ljp7F049DE8: /* 07E958 7F049DE8 0C002918 */ jal randomGetNext /* 07E95C 7F049DEC E7AC0098 */ swc1 $f12, 0x98($sp) /* 07E960 7F049DF0 44823000 */ mtc1 $v0, $f6 /* 07E964 7F049DF4 8FA30094 */ lw $v1, 0x94($sp) /* 07E968 7F049DF8 C7AC0098 */ lwc1 $f12, 0x98($sp) /* 07E96C 7F049DFC 04410005 */ bgez $v0, .Ljp7F049E14 /* 07E970 7F049E00 468032A0 */ cvt.s.w $f10, $f6 /* 07E974 7F049E04 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07E978 7F049E08 44812000 */ mtc1 $at, $f4 /* 07E97C 7F049E0C 00000000 */ nop /* 07E980 7F049E10 46045280 */ add.s $f10, $f10, $f4 .Ljp7F049E14: /* 07E984 7F049E14 3C012F80 */ li $at, 0x2F800000 # 0.000000 /* 07E988 7F049E18 44814000 */ mtc1 $at, $f8 /* 07E98C 7F049E1C 3C018005 */ lui $at, %hi(D_80052B84) # $at, 0x8005 /* 07E990 7F049E20 C4242BB4 */ lwc1 $f4, %lo(D_80052B84)($at) /* 07E994 7F049E24 46085182 */ mul.s $f6, $f10, $f8 /* 07E998 7F049E28 3C018005 */ lui $at, %hi(D_80052B88) # $at, 0x8005 /* 07E99C 7F049E2C C4282BB8 */ lwc1 $f8, %lo(D_80052B88)($at) /* 07E9A0 7F049E30 46043282 */ mul.s $f10, $f6, $f4 /* 07E9A4 7F049E34 460A4181 */ sub.s $f6, $f8, $f10 /* 07E9A8 7F049E38 460C3102 */ mul.s $f4, $f6, $f12 /* 07E9AC 7F049E3C 10000023 */ b .Ljp7F049ECC /* 07E9B0 7F049E40 E4640028 */ swc1 $f4, 0x28($v1) .Ljp7F049E44: /* 07E9B4 7F049E44 3C018005 */ lui $at, %hi(D_80052B8C) # $at, 0x8005 /* 07E9B8 7F049E48 C4282BBC */ lwc1 $f8, %lo(D_80052B8C)($at) /* 07E9BC 7F049E4C 3C018005 */ lui $at, %hi(D_80052B90) # $at, 0x8005 /* 07E9C0 7F049E50 460C4002 */ mul.s $f0, $f8, $f12 /* 07E9C4 7F049E54 E4600020 */ swc1 $f0, 0x20($v1) /* 07E9C8 7F049E58 E4600024 */ swc1 $f0, 0x24($v1) /* 07E9CC 7F049E5C C42A2BC0 */ lwc1 $f10, %lo(D_80052B90)($at) /* 07E9D0 7F049E60 3C018005 */ lui $at, %hi(D_80052B94) # $at, 0x8005 /* 07E9D4 7F049E64 4600503C */ c.lt.s $f10, $f0 /* 07E9D8 7F049E68 00000000 */ nop /* 07E9DC 7F049E6C 45000003 */ bc1f .Ljp7F049E7C /* 07E9E0 7F049E70 00000000 */ nop /* 07E9E4 7F049E74 C4262BC4 */ lwc1 $f6, %lo(D_80052B94)($at) /* 07E9E8 7F049E78 E4660024 */ swc1 $f6, 0x24($v1) .Ljp7F049E7C: /* 07E9EC 7F049E7C 0C002918 */ jal randomGetNext /* 07E9F0 7F049E80 AFA30094 */ sw $v1, 0x94($sp) /* 07E9F4 7F049E84 44822000 */ mtc1 $v0, $f4 /* 07E9F8 7F049E88 8FA30094 */ lw $v1, 0x94($sp) /* 07E9FC 7F049E8C 04410005 */ bgez $v0, .Ljp7F049EA4 /* 07EA00 7F049E90 46802220 */ cvt.s.w $f8, $f4 /* 07EA04 7F049E94 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07EA08 7F049E98 44815000 */ mtc1 $at, $f10 /* 07EA0C 7F049E9C 00000000 */ nop /* 07EA10 7F049EA0 460A4200 */ add.s $f8, $f8, $f10 .Ljp7F049EA4: /* 07EA14 7F049EA4 3C012F80 */ li $at, 0x2F800000 # 0.000000 /* 07EA18 7F049EA8 44813000 */ mtc1 $at, $f6 /* 07EA1C 7F049EAC 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07EA20 7F049EB0 44815000 */ mtc1 $at, $f10 /* 07EA24 7F049EB4 46064002 */ mul.s $f0, $f8, $f6 /* 07EA28 7F049EB8 C4660020 */ lwc1 $f6, 0x20($v1) /* 07EA2C 7F049EBC 46000100 */ add.s $f4, $f0, $f0 /* 07EA30 7F049EC0 460A2201 */ sub.s $f8, $f4, $f10 /* 07EA34 7F049EC4 46064102 */ mul.s $f4, $f8, $f6 /* 07EA38 7F049EC8 E4640028 */ swc1 $f4, 0x28($v1) .Ljp7F049ECC: /* 07EA3C 7F049ECC 8E8E0008 */ lw $t6, 8($s4) .Ljp7F049ED0: /* 07EA40 7F049ED0 8DC30008 */ lw $v1, 8($t6) /* 07EA44 7F049ED4 8C650014 */ lw $a1, 0x14($v1) /* 07EA48 7F049ED8 50A00008 */ beql $a1, $zero, .Ljp7F049EFC /* 07EA4C 7F049EDC 8C65001C */ lw $a1, 0x1c($v1) /* 07EA50 7F049EE0 0FC1B363 */ jal modelGetNodeRwData /* 07EA54 7F049EE4 02802025 */ move $a0, $s4 /* 07EA58 7F049EE8 8FAA0140 */ lw $t2, 0x140($sp) /* 07EA5C 7F049EEC A44A0000 */ sh $t2, ($v0) /* 07EA60 7F049EF0 8E8F0008 */ lw $t7, 8($s4) /* 07EA64 7F049EF4 8DE30008 */ lw $v1, 8($t7) /* 07EA68 7F049EF8 8C65001C */ lw $a1, 0x1c($v1) .Ljp7F049EFC: /* 07EA6C 7F049EFC 10A00005 */ beqz $a1, .Ljp7F049F14 /* 07EA70 7F049F00 00000000 */ nop /* 07EA74 7F049F04 0FC1B363 */ jal modelGetNodeRwData /* 07EA78 7F049F08 02802025 */ move $a0, $s4 /* 07EA7C 7F049F0C 8FAC013C */ lw $t4, 0x13c($sp) /* 07EA80 7F049F10 A44C0000 */ sh $t4, ($v0) .Ljp7F049F14: /* 07EA84 7F049F14 0FC1113A */ jal objDropRecursively /* 07EA88 7F049F18 02602025 */ move $a0, $s3 /* 07EA8C 7F049F1C 8FAD0688 */ lw $t5, 0x688($sp) .Ljp7F049F20: /* 07EA90 7F049F20 24010005 */ li $at, 5 /* 07EA94 7F049F24 55A10003 */ bnel $t5, $at, .Ljp7F049F34 /* 07EA98 7F049F28 8FA20688 */ lw $v0, 0x688($sp) /* 07EA9C 7F049F2C AE600014 */ sw $zero, 0x14($s3) /* 07EAA0 7F049F30 8FA20688 */ lw $v0, 0x688($sp) .Ljp7F049F34: /* 07EAA4 7F049F34 8FBF0054 */ lw $ra, 0x54($sp) /* 07EAA8 7F049F38 D7B40030 */ ldc1 $f20, 0x30($sp) /* 07EAAC 7F049F3C D7B60038 */ ldc1 $f22, 0x38($sp) /* 07EAB0 7F049F40 8FB00040 */ lw $s0, 0x40($sp) /* 07EAB4 7F049F44 8FB10044 */ lw $s1, 0x44($sp) /* 07EAB8 7F049F48 8FB20048 */ lw $s2, 0x48($sp) /* 07EABC 7F049F4C 8FB3004C */ lw $s3, 0x4c($sp) /* 07EAC0 7F049F50 8FB40050 */ lw $s4, 0x50($sp) /* 07EAC4 7F049F54 03E00008 */ jr $ra /* 07EAC8 7F049F58 27BD06B0 */ addiu $sp, $sp, 0x6b0 ) #endif #ifdef VERSION_EU GLOBAL_ASM( .late_rodata glabel rocket_initial_gravity_modifier .word 0x3e8e38e4 /*0.27777779*/ glabel D_80052A9C .word 0x3c360b61 /*0.011111111*/ glabel D_80052AA0 .word 0x3d8f5c29 /*0.07*/ glabel prop_projectile_gravity_modifier .word 0x3e8e38e4 /*0.27777779*/ glabel D_80052AA8 .word 0x400e38e4 /*2.2222223*/ glabel D_80052AAC .word 0x46d9038c /*27777.773*/ glabel D_80052AB0 .word 0x3f8ccccd /*1.1*/ glabel D_80052AB4 .word 0x3f666666 /*0.89999998*/ glabel D_80052AB8 .word 0x3f666666 /*0.89999998*/ glabel D_80052ABC .word 0x3dcccccd /*0.1*/ glabel D_80052AC0 .word 0xbdcccccd /*-0.1*/ glabel D_80052AC4 .word 0xbdcccccd /*-0.1*/ glabel D_80052AC8 .word 0x40c90fdb /*6.2831855*/ glabel D_80052ACC .word 0x40c90fdb /*6.2831855*/ glabel D_80052AD0 .word 0x40490fdb /*3.1415927*/ glabel D_80052AD4 .word 0x3f490fdb /*0.78539819*/ glabel D_80052AD8 .word 0xbf490fdb /*-0.78539819*/ glabel D_80052ADC .word 0x40c90fdb /*6.2831855*/ glabel D_80052AE0 .word 0x3a2b92a6 /*0.00065449846*/ glabel D_80052AE4 .word 0x3a2b92a6 /*0.00065449846*/ glabel D_80052AE8 .word 0x40c90fdb /*6.2831855*/ glabel D_80052AEC .word 0x376a410f /*0.000039626345*/ glabel D_80052AF0 .word 0x40c90fdb /*6.2831855*/ glabel D_80052AF4 .word 0x3a5b9cff /* 0.000837758125272 */ glabel D_80052AF8 .word 0x36ea410f /* 6.98131725585e-06 */ glabel D_80052AFC .word 0x39db9cff /* 0.000418879062636 */ glabel D_80052B00 .word 0x40c90fdb /*6.2831855*/ glabel D_80052B04 .word 0x40c90fdb /*6.2831855*/ glabel D_80052B08 .word 0x40c90fdb /*6.2831855*/ glabel D_80052B0C .word 0x40490fdb /*3.1415927*/ glabel D_80052B10 .word 0x3f9c61ab /*1.2217306*/ glabel D_80052B14 .word 0xbf9c61ab /*-1.2217306*/ glabel D_80052B18 .word 0xc0490fdb /*-3.1415927*/ glabel D_80052B1C .word 0x40490fdb /*3.1415927*/ glabel D_80052B20 .word 0x40c90fdb /*6.2831855*/ glabel D_80052B24 .word 0x3f4ccccd /*0.80000001*/ glabel D_80052B28 .word 0xc0490fdb /*-3.1415927*/ glabel D_80052B2C .word 0x40490fdb /*3.1415927*/ glabel D_80052B30 .word 0x3a89421f /* 0.00104719761293 */ glabel D_80052B34 .word 0x3a89421f /* 0.00104719761293 */ glabel D_80052B38 .word 0x40490fdb /*3.1415927*/ glabel D_80052B3C .word 0x3f1930a7 /*0.59839863*/ glabel D_80052B40 .word 0x3c236719 /*0.0099733109*/ glabel D_80052B44 .word 0x3f7d70a4 /*0.99000001*/ glabel D_80052B48 .word 0x38d1b717 /*0.000099999997*/ glabel D_80052B4C .word 0x3989421f /* 0.000261799403233 */ glabel D_80052B50 .word 0x3c00adfd /* 0.0078539820388 */ glabel D_80052B54 .word 0x40c90fdb /*6.2831855*/ glabel D_80052B58 .word 0x3989421f /* 0.000261799403233 */ glabel D_80052B5C .word 0xb989421f /* -0.000261799403233 */ glabel D_80052B60 .word 0x40c90fdb /*6.2831855*/ glabel D_80052B64 .word 0x40c90fdb /*6.2831855*/ glabel D_80052B68 .word 0x3e99999a /*0.30000001*/ glabel D_80052B6C .word 0x3fc90fdb /*1.5707964*/ glabel D_80052B70 .word 0x3fc90fdb /*1.5707964*/ glabel D_80052B74 .word 0x3e23d70a /*0.16*/ glabel D_80052B78 .word 0x461c4000 /*10000.0*/ glabel D_80052B7C .word 0x453b8000 /*3000.0*/ glabel D_80052B80 .word 0x3f19999a /*0.60000002*/ glabel D_80052B84 .word 0x3e99999a /*0.30000001*/ glabel D_80052B88 .word 0xbdcccccd /*-0.1*/ glabel D_80052B8C .word 0x3e4ccccd /*0.2*/ glabel D_80052B90 .word 0x453b8000 /*3000.0*/ glabel D_80052B94 .word 0x453b8000 /*3000.0*/ .text glabel object_interaction /* 077E58 7F045468 27BDF950 */ addiu $sp, $sp, -0x6b0 /* 077E5C 7F04546C AFBF0054 */ sw $ra, 0x54($sp) /* 077E60 7F045470 AFB40050 */ sw $s4, 0x50($sp) /* 077E64 7F045474 AFB3004C */ sw $s3, 0x4c($sp) /* 077E68 7F045478 AFB20048 */ sw $s2, 0x48($sp) /* 077E6C 7F04547C AFB10044 */ sw $s1, 0x44($sp) /* 077E70 7F045480 AFB00040 */ sw $s0, 0x40($sp) /* 077E74 7F045484 F7B60038 */ sdc1 $f22, 0x38($sp) /* 077E78 7F045488 F7B40030 */ sdc1 $f20, 0x30($sp) /* 077E7C 7F04548C 8C910004 */ lw $s1, 4($a0) /* 077E80 7F045490 4480B000 */ mtc1 $zero, $f22 /* 077E84 7F045494 00809825 */ move $s3, $a0 /* 077E88 7F045498 8E340014 */ lw $s4, 0x14($s1) /* 077E8C 7F04549C AFA00698 */ sw $zero, 0x698($sp) /* 077E90 7F0454A0 AFA00688 */ sw $zero, 0x688($sp) /* 077E94 7F0454A4 0FC26669 */ jal getPlayerCount /* 077E98 7F0454A8 E7B60684 */ swc1 $f22, 0x684($sp) /* 077E9C 7F0454AC 240B0001 */ li $t3, 1 /* 077EA0 7F0454B0 AFA2067C */ sw $v0, 0x67c($sp) /* 077EA4 7F0454B4 AFAB0678 */ sw $t3, 0x678($sp) /* 077EA8 7F0454B8 8E230064 */ lw $v1, 0x64($s1) /* 077EAC 7F0454BC 306E0004 */ andi $t6, $v1, 4 /* 077EB0 7F0454C0 11C00009 */ beqz $t6, .L7F0454E8 /* 077EB4 7F0454C4 30780008 */ andi $t8, $v1, 8 /* 077EB8 7F0454C8 92260002 */ lbu $a2, 2($s1) /* 077EBC 7F0454CC 02202025 */ move $a0, $s1 /* 077EC0 7F0454D0 00002825 */ move $a1, $zero /* 077EC4 7F0454D4 30CD0004 */ andi $t5, $a2, 4 /* 077EC8 7F0454D8 0FC10396 */ jal objFree /* 077ECC 7F0454DC 01A03025 */ move $a2, $t5 /* 077ED0 7F0454E0 1000120A */ b .L7F049D0C /* 077ED4 7F0454E4 24020001 */ li $v0, 1 .L7F0454E8: /* 077ED8 7F0454E8 13000005 */ beqz $t8, .L7F045500 /* 077EDC 7F0454EC 30790080 */ andi $t9, $v1, 0x80 /* 077EE0 7F0454F0 2401FFF7 */ li $at, -9 /* 077EE4 7F0454F4 00617824 */ and $t7, $v1, $at /* 077EE8 7F0454F8 1000000B */ b .L7F045528 /* 077EEC 7F0454FC AE2F0064 */ sw $t7, 0x64($s1) .L7F045500: /* 077EF0 7F045500 5320000A */ beql $t9, $zero, .L7F04552C /* 077EF4 7F045504 24010001 */ li $at, 1 /* 077EF8 7F045508 92690001 */ lbu $t1, 1($s3) /* 077EFC 7F04550C 24020003 */ li $v0, 3 /* 077F00 7F045510 312AFFFD */ andi $t2, $t1, 0xfffd /* 077F04 7F045514 A26A0001 */ sb $t2, 1($s3) /* 077F08 7F045518 8E280064 */ lw $t0, 0x64($s1) /* 077F0C 7F04551C 350C0008 */ ori $t4, $t0, 8 /* 077F10 7F045520 100011FA */ b .L7F049D0C /* 077F14 7F045524 AE2C0064 */ sw $t4, 0x64($s1) .L7F045528: /* 077F18 7F045528 24010001 */ li $at, 1 .L7F04552C: /* 077F1C 7F04552C 14410003 */ bne $v0, $at, .L7F04553C /* 077F20 7F045530 240B0001 */ li $t3, 1 /* 077F24 7F045534 10000019 */ b .L7F04559C /* 077F28 7F045538 AFAB0680 */ sw $t3, 0x680($sp) .L7F04553C: /* 077F2C 7F04553C 0FC269A4 */ jal get_cur_playernum /* 077F30 7F045540 00000000 */ nop /* 077F34 7F045544 0FC26A86 */ jal sub_GAME_7F09B4D8 /* 077F38 7F045548 00402025 */ move $a0, $v0 /* 077F3C 7F04554C 2C4E0001 */ sltiu $t6, $v0, 1 /* 077F40 7F045550 AFAE0680 */ sw $t6, 0x680($sp) /* 077F44 7F045554 8E2D0064 */ lw $t5, 0x64($s1) /* 077F48 7F045558 31B80080 */ andi $t8, $t5, 0x80 /* 077F4C 7F04555C 53000010 */ beql $t8, $zero, .L7F0455A0 /* 077F50 7F045560 8FA80680 */ lw $t0, 0x680($sp) /* 077F54 7F045564 8E30006C */ lw $s0, 0x6c($s1) /* 077F58 7F045568 8E040088 */ lw $a0, 0x88($s0) /* 077F5C 7F04556C 5080000C */ beql $a0, $zero, .L7F0455A0 /* 077F60 7F045570 8FA80680 */ lw $t0, 0x680($sp) /* 077F64 7F045574 0FC269A7 */ jal getPlayerPointerIndex /* 077F68 7F045578 00000000 */ nop /* 077F6C 7F04557C 04400007 */ bltz $v0, .L7F04559C /* 077F70 7F045580 3C0F8007 */ lui $t7, %hi(g_CurrentPlayer) # $t7, 0x8007 /* 077F74 7F045584 8DEF8BC0 */ lw $t7, %lo(g_CurrentPlayer)($t7) /* 077F78 7F045588 8E090088 */ lw $t1, 0x88($s0) /* 077F7C 7F04558C 8DF900A8 */ lw $t9, 0xa8($t7) /* 077F80 7F045590 03295026 */ xor $t2, $t9, $t1 /* 077F84 7F045594 2D4A0001 */ sltiu $t2, $t2, 1 /* 077F88 7F045598 AFAA0680 */ sw $t2, 0x680($sp) .L7F04559C: /* 077F8C 7F04559C 8FA80680 */ lw $t0, 0x680($sp) .L7F0455A0: /* 077F90 7F0455A0 51000B9B */ beql $t0, $zero, .L7F048410 /* 077F94 7F0455A4 92220003 */ lbu $v0, 3($s1) /* 077F98 7F0455A8 8E2C0064 */ lw $t4, 0x64($s1) /* 077F9C 7F0455AC 318B0080 */ andi $t3, $t4, 0x80 /* 077FA0 7F0455B0 5160048B */ beql $t3, $zero, .L7F0467E0 /* 077FA4 7F0455B4 8FB90698 */ lw $t9, 0x698($sp) /* 077FA8 7F0455B8 8E30006C */ lw $s0, 0x6c($s1) /* 077FAC 7F0455BC 3C0D8004 */ lui $t5, %hi(g_ClockTimer) # $t5, 0x8004 /* 077FB0 7F0455C0 8DAD0FF4 */ lw $t5, %lo(g_ClockTimer)($t5) /* 077FB4 7F0455C4 8E0E00E0 */ lw $t6, 0xe0($s0) /* 077FB8 7F0455C8 01CDC021 */ addu $t8, $t6, $t5 /* 077FBC 7F0455CC 2B0107D1 */ slti $at, $t8, 0x7d1 /* 077FC0 7F0455D0 14200004 */ bnez $at, .L7F0455E4 /* 077FC4 7F0455D4 AE1800E0 */ sw $t8, 0xe0($s0) /* 077FC8 7F0455D8 8E390064 */ lw $t9, 0x64($s1) /* 077FCC 7F0455DC 37290004 */ ori $t1, $t9, 4 /* 077FD0 7F0455E0 AE290064 */ sw $t1, 0x64($s1) .L7F0455E4: /* 077FD4 7F0455E4 8E0A0000 */ lw $t2, ($s0) /* 077FD8 7F0455E8 31480100 */ andi $t0, $t2, 0x100 /* 077FDC 7F0455EC 5100002F */ beql $t0, $zero, .L7F0456AC /* 077FE0 7F0455F0 C6260058 */ lwc1 $f6, 0x58($s1) /* 077FE4 7F0455F4 922C0003 */ lbu $t4, 3($s1) /* 077FE8 7F0455F8 24010008 */ li $at, 8 /* 077FEC 7F0455FC 24120001 */ li $s2, 1 /* 077FF0 7F045600 55810008 */ bnel $t4, $at, .L7F045624 /* 077FF4 7F045604 8E040088 */ lw $a0, 0x88($s0) /* 077FF8 7F045608 AFB10650 */ sw $s1, 0x650($sp) /* 077FFC 7F04560C 822B0080 */ lb $t3, 0x80($s1) /* 078000 7F045610 24010056 */ li $at, 86 /* 078004 7F045614 55610003 */ bnel $t3, $at, .L7F045624 /* 078008 7F045618 8E040088 */ lw $a0, 0x88($s0) /* 07800C 7F04561C 00009025 */ move $s2, $zero /* 078010 7F045620 8E040088 */ lw $a0, 0x88($s0) .L7F045624: /* 078014 7F045624 50800004 */ beql $a0, $zero, .L7F045638 /* 078018 7F045628 02202025 */ move $a0, $s1 /* 07801C 7F04562C 0FC0F446 */ jal sub_GAME_7F03D058 /* 078020 7F045630 00002825 */ move $a1, $zero /* 078024 7F045634 02202025 */ move $a0, $s1 .L7F045638: /* 078028 7F045638 260500D4 */ addiu $a1, $s0, 0xd4 /* 07802C 7F04563C 27A60654 */ addiu $a2, $sp, 0x654 /* 078030 7F045640 27A70660 */ addiu $a3, $sp, 0x660 /* 078034 7F045644 AFA00010 */ sw $zero, 0x10($sp) /* 078038 7F045648 0FC10BDD */ jal sub_GAME_7F042EB4 /* 07803C 7F04564C AFB20014 */ sw $s2, 0x14($sp) /* 078040 7F045650 AFA2066C */ sw $v0, 0x66c($sp) /* 078044 7F045654 8E040088 */ lw $a0, 0x88($s0) /* 078048 7F045658 50800004 */ beql $a0, $zero, .L7F04566C /* 07804C 7F04565C 8FAE066C */ lw $t6, 0x66c($sp) /* 078050 7F045660 0FC0F446 */ jal sub_GAME_7F03D058 /* 078054 7F045664 24050001 */ li $a1, 1 /* 078058 7F045668 8FAE066C */ lw $t6, 0x66c($sp) .L7F04566C: /* 07805C 7F04566C 24010001 */ li $at, 1 /* 078060 7F045670 8FA20650 */ lw $v0, 0x650($sp) /* 078064 7F045674 51C10009 */ beql $t6, $at, .L7F04569C /* 078068 7F045678 8E180000 */ lw $t8, ($s0) /* 07806C 7F04567C 50400007 */ beql $v0, $zero, .L7F04569C /* 078070 7F045680 8E180000 */ lw $t8, ($s0) /* 078074 7F045684 804D0080 */ lb $t5, 0x80($v0) /* 078078 7F045688 24010056 */ li $at, 86 /* 07807C 7F04568C 55A10003 */ bnel $t5, $at, .L7F04569C /* 078080 7F045690 8E180000 */ lw $t8, ($s0) /* 078084 7F045694 A4400082 */ sh $zero, 0x82($v0) /* 078088 7F045698 8E180000 */ lw $t8, ($s0) .L7F04569C: /* 07808C 7F04569C 2401FEFF */ li $at, -257 /* 078090 7F0456A0 03017824 */ and $t7, $t8, $at /* 078094 7F0456A4 AE0F0000 */ sw $t7, ($s0) /* 078098 7F0456A8 C6260058 */ lwc1 $f6, 0x58($s1) .L7F0456AC: /* 07809C 7F0456AC 3C198004 */ lui $t9, %hi(g_ClockTimer) # $t9, 0x8004 /* 0780A0 7F0456B0 3C013F80 */ lui $at, 0x3f80 /* 0780A4 7F0456B4 E7A6069C */ swc1 $f6, 0x69c($sp) /* 0780A8 7F0456B8 C62A005C */ lwc1 $f10, 0x5c($s1) /* 0780AC 7F0456BC E7AA06A0 */ swc1 $f10, 0x6a0($sp) /* 0780B0 7F0456C0 C6240060 */ lwc1 $f4, 0x60($s1) /* 0780B4 7F0456C4 E7A406A4 */ swc1 $f4, 0x6a4($sp) /* 0780B8 7F0456C8 8E0200BC */ lw $v0, 0xbc($s0) /* 0780BC 7F0456CC 58400005 */ blezl $v0, .L7F0456E4 /* 0780C0 7F0456D0 8E2A006C */ lw $t2, 0x6c($s1) /* 0780C4 7F0456D4 8F390FF4 */ lw $t9, %lo(g_ClockTimer)($t9) /* 0780C8 7F0456D8 00594823 */ subu $t1, $v0, $t9 /* 0780CC 7F0456DC AE0900BC */ sw $t1, 0xbc($s0) /* 0780D0 7F0456E0 8E2A006C */ lw $t2, 0x6c($s1) .L7F0456E4: /* 0780D4 7F0456E4 8D480000 */ lw $t0, ($t2) /* 0780D8 7F0456E8 310C0001 */ andi $t4, $t0, 1 /* 0780DC 7F0456EC 51800351 */ beql $t4, $zero, .L7F046434 /* 0780E0 7F0456F0 C6000060 */ lwc1 $f0, 0x60($s0) /* 0780E4 7F0456F4 0FC1004E */ jal chrobjGetBboxFromObjectRecord /* 0780E8 7F0456F8 02202025 */ move $a0, $s1 /* 0780EC 7F0456FC 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 0780F0 7F045700 44814000 */ mtc1 $at, $f8 /* 0780F4 7F045704 3C078004 */ lui $a3, %hi(g_ClockTimer) # $a3, 0x8004 /* 0780F8 7F045708 24E70FF4 */ addiu $a3, %lo(g_ClockTimer) # addiu $a3, $a3, 0xff4 /* 0780FC 7F04570C AFA20648 */ sw $v0, 0x648($sp) /* 078100 7F045710 AFA00618 */ sw $zero, 0x618($sp) /* 078104 7F045714 AFA00614 */ sw $zero, 0x614($sp) /* 078108 7F045718 AFA0060C */ sw $zero, 0x60c($sp) /* 07810C 7F04571C E7A80640 */ swc1 $f8, 0x640($sp) /* 078110 7F045720 8E0B00A8 */ lw $t3, 0xa8($s0) /* 078114 7F045724 8CEE0000 */ lw $t6, ($a3) /* 078118 7F045728 C634005C */ lwc1 $f20, 0x5c($s1) /* 07811C 7F04572C 00009025 */ move $s2, $zero /* 078120 7F045730 016E6821 */ addu $t5, $t3, $t6 /* 078124 7F045734 AE0D00A8 */ sw $t5, 0xa8($s0) /* 078128 7F045738 C6260018 */ lwc1 $f6, 0x18($s1) /* 07812C 7F04573C 3C018005 */ lui $at, %hi(rocket_initial_gravity_modifier) # $at, 0x8005 /* 078130 7F045740 E7A60634 */ swc1 $f6, 0x634($sp) /* 078134 7F045744 C62A001C */ lwc1 $f10, 0x1c($s1) /* 078138 7F045748 E7AA0638 */ swc1 $f10, 0x638($sp) /* 07813C 7F04574C C6240020 */ lwc1 $f4, 0x20($s1) /* 078140 7F045750 E7A4063C */ swc1 $f4, 0x63c($sp) /* 078144 7F045754 8E030000 */ lw $v1, ($s0) /* 078148 7F045758 30780020 */ andi $t8, $v1, 0x20 /* 07814C 7F04575C 1300004B */ beqz $t8, .L7F04588C /* 078150 7F045760 00000000 */ nop /* 078154 7F045764 C4328BD8 */ lwc1 $f18, %lo(rocket_initial_gravity_modifier)($at) /* 078158 7F045768 C600001C */ lwc1 $f0, 0x1c($s0) /* 07815C 7F04576C 3C028004 */ lui $v0, %hi(g_GlobalTimerDelta) # $v0, 0x8004 /* 078160 7F045770 24421004 */ addiu $v0, %lo(g_GlobalTimerDelta) # addiu $v0, $v0, 0x1004 /* 078164 7F045774 4612003C */ c.lt.s $f0, $f18 /* 078168 7F045778 00000000 */ nop /* 07816C 7F04577C 4502001C */ bc1fl .L7F0457F0 /* 078170 7F045780 C60000B0 */ lwc1 $f0, 0xb0($s0) /* 078174 7F045784 C6080014 */ lwc1 $f8, 0x14($s0) /* 078178 7F045788 C4460000 */ lwc1 $f6, ($v0) /* 07817C 7F04578C C60400B4 */ lwc1 $f4, 0xb4($s0) /* 078180 7F045790 3C018005 */ lui $at, %hi(D_80052A9C) # $at, 0x8005 /* 078184 7F045794 46064282 */ mul.s $f10, $f8, $f6 /* 078188 7F045798 460A2200 */ add.s $f8, $f4, $f10 /* 07818C 7F04579C E60800B4 */ swc1 $f8, 0xb4($s0) /* 078190 7F0457A0 C4440000 */ lwc1 $f4, ($v0) /* 078194 7F0457A4 C60600B4 */ lwc1 $f6, 0xb4($s0) /* 078198 7F0457A8 C60800B0 */ lwc1 $f8, 0xb0($s0) /* 07819C 7F0457AC 46043282 */ mul.s $f10, $f6, $f4 /* 0781A0 7F0457B0 460A4180 */ add.s $f6, $f8, $f10 /* 0781A4 7F0457B4 E60600B0 */ swc1 $f6, 0xb0($s0) /* 0781A8 7F0457B8 C4480000 */ lwc1 $f8, ($v0) /* 0781AC 7F0457BC C4248BDC */ lwc1 $f4, %lo(D_80052A9C)($at) /* 0781B0 7F0457C0 46082282 */ mul.s $f10, $f4, $f8 /* 0781B4 7F0457C4 460A0180 */ add.s $f6, $f0, $f10 /* 0781B8 7F0457C8 E606001C */ swc1 $f6, 0x1c($s0) /* 0781BC 7F0457CC C604001C */ lwc1 $f4, 0x1c($s0) /* 0781C0 7F0457D0 4604903C */ c.lt.s $f18, $f4 /* 0781C4 7F0457D4 00000000 */ nop /* 0781C8 7F0457D8 45000002 */ bc1f .L7F0457E4 /* 0781CC 7F0457DC 00000000 */ nop /* 0781D0 7F0457E0 E612001C */ swc1 $f18, 0x1c($s0) .L7F0457E4: /* 0781D4 7F0457E4 10000029 */ b .L7F04588C /* 0781D8 7F0457E8 8E030000 */ lw $v1, ($s0) /* 0781DC 7F0457EC C60000B0 */ lwc1 $f0, 0xb0($s0) .L7F0457F0: /* 0781E0 7F0457F0 C7A806A0 */ lwc1 $f8, 0x6a0($sp) /* 0781E4 7F0457F4 4600403C */ c.lt.s $f8, $f0 /* 0781E8 7F0457F8 00000000 */ nop /* 0781EC 7F0457FC 45000019 */ bc1f .L7F045864 /* 0781F0 7F045800 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 /* 0781F4 7F045804 C4261004 */ lwc1 $f6, %lo(g_GlobalTimerDelta)($at) /* 0781F8 7F045808 C60A0014 */ lwc1 $f10, 0x14($s0) /* 0781FC 7F04580C C60800B4 */ lwc1 $f8, 0xb4($s0) /* 078200 7F045810 46065102 */ mul.s $f4, $f10, $f6 /* 078204 7F045814 46044280 */ add.s $f10, $f8, $f4 /* 078208 7F045818 E60A00B4 */ swc1 $f10, 0xb4($s0) /* 07820C 7F04581C C4281004 */ lwc1 $f8, %lo(g_GlobalTimerDelta)($at) /* 078210 7F045820 C60600B4 */ lwc1 $f6, 0xb4($s0) /* 078214 7F045824 3C018005 */ lui $at, %hi(D_80052AA0) # $at, 0x8005 /* 078218 7F045828 46083102 */ mul.s $f4, $f6, $f8 /* 07821C 7F04582C 46040280 */ add.s $f10, $f0, $f4 /* 078220 7F045830 E60A00B0 */ swc1 $f10, 0xb0($s0) /* 078224 7F045834 C7A806A0 */ lwc1 $f8, 0x6a0($sp) /* 078228 7F045838 C60600B0 */ lwc1 $f6, 0xb0($s0) /* 07822C 7F04583C C42A8BE0 */ lwc1 $f10, %lo(D_80052AA0)($at) /* 078230 7F045840 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 /* 078234 7F045844 46083101 */ sub.s $f4, $f6, $f8 /* 078238 7F045848 46045182 */ mul.s $f6, $f10, $f4 /* 07823C 7F04584C C42A1004 */ lwc1 $f10, %lo(g_GlobalTimerDelta)($at) /* 078240 7F045850 460A3102 */ mul.s $f4, $f6, $f10 /* 078244 7F045854 46044180 */ add.s $f6, $f8, $f4 /* 078248 7F045858 E7A606A0 */ swc1 $f6, 0x6a0($sp) /* 07824C 7F04585C 1000000B */ b .L7F04588C /* 078250 7F045860 8E030000 */ lw $v1, ($s0) .L7F045864: /* 078254 7F045864 E7A006A0 */ swc1 $f0, 0x6a0($sp) /* 078258 7F045868 8E0F0000 */ lw $t7, ($s0) /* 07825C 7F04586C 2401FFDF */ li $at, -33 /* 078260 7F045870 C60A00B4 */ lwc1 $f10, 0xb4($s0) /* 078264 7F045874 01E1C824 */ and $t9, $t7, $at /* 078268 7F045878 AE190000 */ sw $t9, ($s0) /* 07826C 7F04587C 37230010 */ ori $v1, $t9, 0x10 /* 078270 7F045880 E616001C */ swc1 $f22, 0x1c($s0) /* 078274 7F045884 AE030000 */ sw $v1, ($s0) /* 078278 7F045888 E60A0008 */ swc1 $f10, 8($s0) .L7F04588C: /* 07827C 7F04588C 3C028004 */ lui $v0, %hi(g_GlobalTimerDelta) # $v0, 0x8004 /* 078280 7F045890 24421004 */ addiu $v0, %lo(g_GlobalTimerDelta) # addiu $v0, $v0, 0x1004 /* 078284 7F045894 3C018005 */ lui $at, %hi(prop_projectile_gravity_modifier) # $at, 0x8005 /* 078288 7F045898 30680010 */ andi $t0, $v1, 0x10 /* 07828C 7F04589C C4328BE4 */ lwc1 $f18, %lo(prop_projectile_gravity_modifier)($at) /* 078290 7F0458A0 C4420000 */ lwc1 $f2, ($v0) /* 078294 7F0458A4 C600001C */ lwc1 $f0, 0x1c($s0) /* 078298 7F0458A8 15000015 */ bnez $t0, .L7F045900 /* 07829C 7F0458AC C6100014 */ lwc1 $f16, 0x14($s0) /* 0782A0 7F0458B0 46008100 */ add.s $f4, $f16, $f0 /* 0782A4 7F0458B4 C6080008 */ lwc1 $f8, 8($s0) /* 0782A8 7F0458B8 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 0782AC 7F0458BC 46022182 */ mul.s $f6, $f4, $f2 /* 0782B0 7F0458C0 46064280 */ add.s $f10, $f8, $f6 /* 0782B4 7F0458C4 E60A0008 */ swc1 $f10, 8($s0) /* 0782B8 7F0458C8 C4420000 */ lwc1 $f2, ($v0) /* 0782BC 7F0458CC C60C0008 */ lwc1 $f12, 8($s0) /* 0782C0 7F0458D0 44815000 */ mtc1 $at, $f10 /* 0782C4 7F0458D4 46029102 */ mul.s $f4, $f18, $f2 /* 0782C8 7F0458D8 46046381 */ sub.s $f14, $f12, $f4 /* 0782CC 7F0458DC 460E6200 */ add.s $f8, $f12, $f14 /* 0782D0 7F0458E0 46081182 */ mul.s $f6, $f2, $f8 /* 0782D4 7F0458E4 C7A806A0 */ lwc1 $f8, 0x6a0($sp) /* 0782D8 7F0458E8 460A3102 */ mul.s $f4, $f6, $f10 /* 0782DC 7F0458EC 46044180 */ add.s $f6, $f8, $f4 /* 0782E0 7F0458F0 E7A606A0 */ swc1 $f6, 0x6a0($sp) /* 0782E4 7F0458F4 E60E0008 */ swc1 $f14, 8($s0) /* 0782E8 7F0458F8 1000000C */ b .L7F04592C /* 0782EC 7F0458FC C4420000 */ lwc1 $f2, ($v0) .L7F045900: /* 0782F0 7F045900 46008200 */ add.s $f8, $f16, $f0 /* 0782F4 7F045904 C60A0008 */ lwc1 $f10, 8($s0) /* 0782F8 7F045908 46024102 */ mul.s $f4, $f8, $f2 /* 0782FC 7F04590C 46045180 */ add.s $f6, $f10, $f4 /* 078300 7F045910 E6060008 */ swc1 $f6, 8($s0) /* 078304 7F045914 C60A0008 */ lwc1 $f10, 8($s0) /* 078308 7F045918 C4420000 */ lwc1 $f2, ($v0) /* 07830C 7F04591C C7A806A0 */ lwc1 $f8, 0x6a0($sp) /* 078310 7F045920 46025102 */ mul.s $f4, $f10, $f2 /* 078314 7F045924 46044180 */ add.s $f6, $f8, $f4 /* 078318 7F045928 E7A606A0 */ swc1 $f6, 0x6a0($sp) .L7F04592C: /* 07831C 7F04592C C6080010 */ lwc1 $f8, 0x10($s0) /* 078320 7F045930 C60A0004 */ lwc1 $f10, 4($s0) /* 078324 7F045934 26240018 */ addiu $a0, $s1, 0x18 /* 078328 7F045938 46024102 */ mul.s $f4, $f8, $f2 /* 07832C 7F04593C C6080018 */ lwc1 $f8, 0x18($s0) /* 078330 7F045940 26050020 */ addiu $a1, $s0, 0x20 /* 078334 7F045944 46045180 */ add.s $f6, $f10, $f4 /* 078338 7F045948 E6060004 */ swc1 $f6, 4($s0) /* 07833C 7F04594C C44A0000 */ lwc1 $f10, ($v0) /* 078340 7F045950 C606000C */ lwc1 $f6, 0xc($s0) /* 078344 7F045954 460A4102 */ mul.s $f4, $f8, $f10 /* 078348 7F045958 46043200 */ add.s $f8, $f6, $f4 /* 07834C 7F04595C C6060004 */ lwc1 $f6, 4($s0) /* 078350 7F045960 E608000C */ swc1 $f8, 0xc($s0) /* 078354 7F045964 C4420000 */ lwc1 $f2, ($v0) /* 078358 7F045968 C7AA069C */ lwc1 $f10, 0x69c($sp) /* 07835C 7F04596C 8CE60000 */ lw $a2, ($a3) /* 078360 7F045970 46023102 */ mul.s $f4, $f6, $f2 /* 078364 7F045974 C7A606A4 */ lwc1 $f6, 0x6a4($sp) /* 078368 7F045978 46045200 */ add.s $f8, $f10, $f4 /* 07836C 7F04597C E7A8069C */ swc1 $f8, 0x69c($sp) /* 078370 7F045980 C60A000C */ lwc1 $f10, 0xc($s0) /* 078374 7F045984 AFA50070 */ sw $a1, 0x70($sp) /* 078378 7F045988 AFA40074 */ sw $a0, 0x74($sp) /* 07837C 7F04598C 46025102 */ mul.s $f4, $f10, $f2 /* 078380 7F045990 46043200 */ add.s $f8, $f6, $f4 /* 078384 7F045994 0FC1603E */ jal sub_GAME_7F057DF8 /* 078388 7F045998 E7A806A4 */ swc1 $f8, 0x6a4($sp) /* 07838C 7F04599C 922C0003 */ lbu $t4, 3($s1) /* 078390 7F0459A0 24010008 */ li $at, 8 /* 078394 7F0459A4 55810013 */ bnel $t4, $at, .L7F0459F4 /* 078398 7F0459A8 8E040088 */ lw $a0, 0x88($s0) /* 07839C 7F0459AC 82220080 */ lb $v0, 0x80($s1) /* 0783A0 7F0459B0 2401001D */ li $at, 29 /* 0783A4 7F0459B4 1041000D */ beq $v0, $at, .L7F0459EC /* 0783A8 7F0459B8 2401001B */ li $at, 27 /* 0783AC 7F0459BC 1041000B */ beq $v0, $at, .L7F0459EC /* 0783B0 7F0459C0 2401001C */ li $at, 28 /* 0783B4 7F0459C4 10410009 */ beq $v0, $at, .L7F0459EC /* 0783B8 7F0459C8 24010021 */ li $at, 33 /* 0783BC 7F0459CC 10410007 */ beq $v0, $at, .L7F0459EC /* 0783C0 7F0459D0 2401002F */ li $at, 47 /* 0783C4 7F0459D4 10410005 */ beq $v0, $at, .L7F0459EC /* 0783C8 7F0459D8 24010030 */ li $at, 48 /* 0783CC 7F0459DC 10410003 */ beq $v0, $at, .L7F0459EC /* 0783D0 7F0459E0 24010022 */ li $at, 34 /* 0783D4 7F0459E4 54410003 */ bnel $v0, $at, .L7F0459F4 /* 0783D8 7F0459E8 8E040088 */ lw $a0, 0x88($s0) .L7F0459EC: /* 0783DC 7F0459EC 24120001 */ li $s2, 1 /* 0783E0 7F0459F0 8E040088 */ lw $a0, 0x88($s0) .L7F0459F4: /* 0783E4 7F0459F4 50800004 */ beql $a0, $zero, .L7F045A08 /* 0783E8 7F0459F8 02202025 */ move $a0, $s1 /* 0783EC 7F0459FC 0FC0F446 */ jal sub_GAME_7F03D058 /* 0783F0 7F045A00 00002825 */ move $a1, $zero /* 0783F4 7F045A04 02202025 */ move $a0, $s1 .L7F045A08: /* 0783F8 7F045A08 27A5069C */ addiu $a1, $sp, 0x69c /* 0783FC 7F045A0C 27A6061C */ addiu $a2, $sp, 0x61c /* 078400 7F045A10 27A70628 */ addiu $a3, $sp, 0x628 /* 078404 7F045A14 AFB20010 */ sw $s2, 0x10($sp) /* 078408 7F045A18 0FC10BDD */ jal sub_GAME_7F042EB4 /* 07840C 7F045A1C AFA00014 */ sw $zero, 0x14($sp) /* 078410 7F045A20 AFA2066C */ sw $v0, 0x66c($sp) /* 078414 7F045A24 8E040088 */ lw $a0, 0x88($s0) /* 078418 7F045A28 50800004 */ beql $a0, $zero, .L7F045A3C /* 07841C 7F045A2C 8FAE066C */ lw $t6, 0x66c($sp) /* 078420 7F045A30 0FC0F446 */ jal sub_GAME_7F03D058 /* 078424 7F045A34 24050001 */ li $a1, 1 /* 078428 7F045A38 8FAE066C */ lw $t6, 0x66c($sp) .L7F045A3C: /* 07842C 7F045A3C 240B0001 */ li $t3, 1 /* 078430 7F045A40 24010002 */ li $at, 2 /* 078434 7F045A44 15C10042 */ bne $t6, $at, .L7F045B50 /* 078438 7F045A48 AFAB0698 */ sw $t3, 0x698($sp) /* 07843C 7F045A4C 3C038003 */ lui $v1, %hi(D_80030B0C) # $v1, 0x8003 /* 078440 7F045A50 8C63C05C */ lw $v1, %lo(D_80030B0C)($v1) /* 078444 7F045A54 10600007 */ beqz $v1, .L7F045A74 /* 078448 7F045A58 00000000 */ nop /* 07844C 7F045A5C 90620000 */ lbu $v0, ($v1) /* 078450 7F045A60 24010003 */ li $at, 3 /* 078454 7F045A64 1041003A */ beq $v0, $at, .L7F045B50 /* 078458 7F045A68 24010006 */ li $at, 6 /* 07845C 7F045A6C 50410039 */ beql $v0, $at, .L7F045B54 /* 078460 7F045A70 8FAE060C */ lw $t6, 0x60c($sp) .L7F045A74: /* 078464 7F045A74 10600007 */ beqz $v1, .L7F045A94 /* 078468 7F045A78 00002025 */ move $a0, $zero /* 07846C 7F045A7C 8C620004 */ lw $v0, 4($v1) /* 078470 7F045A80 8C4D0064 */ lw $t5, 0x64($v0) /* 078474 7F045A84 31B80080 */ andi $t8, $t5, 0x80 /* 078478 7F045A88 13000002 */ beqz $t8, .L7F045A94 /* 07847C 7F045A8C 00000000 */ nop /* 078480 7F045A90 24040001 */ li $a0, 1 .L7F045A94: /* 078484 7F045A94 5480002F */ bnezl $a0, .L7F045B54 /* 078488 7F045A98 8FAE060C */ lw $t6, 0x60c($sp) /* 07848C 7F045A9C 0FC0FF0C */ jal projectileFree /* 078490 7F045AA0 02002025 */ move $a0, $s0 /* 078494 7F045AA4 8E2F0064 */ lw $t7, 0x64($s1) /* 078498 7F045AA8 2401FF7F */ li $at, -129 /* 07849C 7F045AAC AE20006C */ sw $zero, 0x6c($s1) /* 0784A0 7F045AB0 01E1C824 */ and $t9, $t7, $at /* 0784A4 7F045AB4 AE390064 */ sw $t9, 0x64($s1) /* 0784A8 7F045AB8 92620001 */ lbu $v0, 1($s3) /* 0784AC 7F045ABC 3C048005 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8005 /* 0784B0 7F045AC0 240500F1 */ li $a1, 241 /* 0784B4 7F045AC4 30490008 */ andi $t1, $v0, 8 /* 0784B8 7F045AC8 11200003 */ beqz $t1, .L7F045AD8 /* 0784BC 7F045ACC 00003025 */ move $a2, $zero /* 0784C0 7F045AD0 344A0010 */ ori $t2, $v0, 0x10 /* 0784C4 7F045AD4 A26A0001 */ sb $t2, 1($s3) .L7F045AD8: /* 0784C8 7F045AD8 0C00209A */ jal sndPlaySfx /* 0784CC 7F045ADC 8C846900 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0784D0 7F045AE0 00402025 */ move $a0, $v0 /* 0784D4 7F045AE4 0FC14F3C */ jal chrobjSndCreatePostEventDefault /* 0784D8 7F045AE8 26650008 */ addiu $a1, $s3, 8 /* 0784DC 7F045AEC 8E680014 */ lw $t0, 0x14($s3) /* 0784E0 7F045AF0 82240080 */ lb $a0, 0x80($s1) /* 0784E4 7F045AF4 0FC15EB9 */ jal objectivestatusCheckDeposit /* 0784E8 7F045AF8 91050003 */ lbu $a1, 3($t0) /* 0784EC 7F045AFC 02202025 */ move $a0, $s1 /* 0784F0 7F045B00 27A5061C */ addiu $a1, $sp, 0x61c /* 0784F4 7F045B04 8E660014 */ lw $a2, 0x14($s3) /* 0784F8 7F045B08 0FC10E9E */ jal sub_GAME_7F0439B8 /* 0784FC 7F045B0C 27A70628 */ addiu $a3, $sp, 0x628 /* 078500 7F045B10 3C058003 */ lui $a1, %hi(D_80030B0C) # $a1, 0x8003 /* 078504 7F045B14 8CA5C05C */ lw $a1, %lo(D_80030B0C)($a1) /* 078508 7F045B18 02602025 */ move $a0, $s3 /* 07850C 7F045B1C 3C068006 */ lui $a2, %hi(g_CurrentProjectileModel) # $a2, 0x8006 /* 078510 7F045B20 10A0000B */ beqz $a1, .L7F045B50 /* 078514 7F045B24 3C078006 */ lui $a3, %hi(dword_CODE_bss_80075B74) # $a3, 0x8006 /* 078518 7F045B28 8E720014 */ lw $s2, 0x14($s3) /* 07851C 7F045B2C 8CC64AB0 */ lw $a2, %lo(g_CurrentProjectileModel)($a2) /* 078520 7F045B30 0FC10ECB */ jal objEmbed /* 078524 7F045B34 8CE74AB4 */ lw $a3, %lo(dword_CODE_bss_80075B74)($a3) /* 078528 7F045B38 10400005 */ beqz $v0, .L7F045B50 /* 07852C 7F045B3C 240C0005 */ li $t4, 5 /* 078530 7F045B40 AE720014 */ sw $s2, 0x14($s3) /* 078534 7F045B44 240B0001 */ li $t3, 1 /* 078538 7F045B48 AFAC0688 */ sw $t4, 0x688($sp) /* 07853C 7F045B4C AFAB060C */ sw $t3, 0x60c($sp) .L7F045B50: /* 078540 7F045B50 8FAE060C */ lw $t6, 0x60c($sp) .L7F045B54: /* 078544 7F045B54 15C000EC */ bnez $t6, .L7F045F08 /* 078548 7F045B58 3C128003 */ lui $s2, %hi(D_80030B0C) # $s2, 0x8003 /* 07854C 7F045B5C 8E52C05C */ lw $s2, %lo(D_80030B0C)($s2) /* 078550 7F045B60 524000EA */ beql $s2, $zero, .L7F045F0C /* 078554 7F045B64 8FAE060C */ lw $t6, 0x60c($sp) /* 078558 7F045B68 922D0003 */ lbu $t5, 3($s1) /* 07855C 7F045B6C 24010008 */ li $at, 8 /* 078560 7F045B70 55A100E6 */ bnel $t5, $at, .L7F045F0C /* 078564 7F045B74 8FAE060C */ lw $t6, 0x60c($sp) /* 078568 7F045B78 82220080 */ lb $v0, 0x80($s1) /* 07856C 7F045B7C 24010003 */ li $at, 3 /* 078570 7F045B80 544100C3 */ bnel $v0, $at, .L7F045E90 /* 078574 7F045B84 24010056 */ li $at, 86 /* 078578 7F045B88 92420000 */ lbu $v0, ($s2) /* 07857C 7F045B8C 24010003 */ li $at, 3 /* 078580 7F045B90 1041000D */ beq $v0, $at, .L7F045BC8 /* 078584 7F045B94 24010006 */ li $at, 6 /* 078588 7F045B98 544100DC */ bnel $v0, $at, .L7F045F0C /* 07858C 7F045B9C 8FAE060C */ lw $t6, 0x60c($sp) /* 078590 7F045BA0 8E580004 */ lw $t8, 4($s2) /* 078594 7F045BA4 530000D9 */ beql $t8, $zero, .L7F045F0C /* 078598 7F045BA8 8FAE060C */ lw $t6, 0x60c($sp) /* 07859C 7F045BAC 0FC269A7 */ jal getPlayerPointerIndex /* 0785A0 7F045BB0 02402025 */ move $a0, $s2 /* 0785A4 7F045BB4 0FC269A4 */ jal get_cur_playernum /* 0785A8 7F045BB8 00409025 */ move $s2, $v0 /* 0785AC 7F045BBC 105200D2 */ beq $v0, $s2, .L7F045F08 /* 0785B0 7F045BC0 3C128003 */ lui $s2, %hi(D_80030B0C) # $s2, 0x8003 /* 0785B4 7F045BC4 8E52C05C */ lw $s2, %lo(D_80030B0C)($s2) .L7F045BC8: /* 0785B8 7F045BC8 8E22006C */ lw $v0, 0x6c($s1) /* 0785BC 7F045BCC 8E440004 */ lw $a0, 4($s2) /* 0785C0 7F045BD0 8C4F0000 */ lw $t7, ($v0) /* 0785C4 7F045BD4 31F90001 */ andi $t9, $t7, 1 /* 0785C8 7F045BD8 532000CC */ beql $t9, $zero, .L7F045F0C /* 0785CC 7F045BDC 8FAE060C */ lw $t6, 0x60c($sp) /* 0785D0 7F045BE0 8C490090 */ lw $t1, 0x90($v0) /* 0785D4 7F045BE4 5D2000C9 */ bgtzl $t1, .L7F045F0C /* 0785D8 7F045BE8 8FAE060C */ lw $t6, 0x60c($sp) /* 0785DC 7F045BEC 8E2A0064 */ lw $t2, 0x64($s1) /* 0785E0 7F045BF0 3C068006 */ lui $a2, %hi(flt_CODE_bss_80075B78) # $a2, 0x8006 /* 0785E4 7F045BF4 24C64AB8 */ addiu $a2, %lo(flt_CODE_bss_80075B78) # addiu $a2, $a2, 0x4ab8 /* 0785E8 7F045BF8 31480020 */ andi $t0, $t2, 0x20 /* 0785EC 7F045BFC 110000C2 */ beqz $t0, .L7F045F08 /* 0785F0 7F045C00 3C058003 */ lui $a1, %hi(bodypartshot) # $a1, 0x8003 /* 0785F4 7F045C04 82270080 */ lb $a3, 0x80($s1) /* 0785F8 7F045C08 240C0001 */ li $t4, 1 /* 0785FC 7F045C0C AFAC0010 */ sw $t4, 0x10($sp) /* 078600 7F045C10 0FC09CA5 */ jal handles_shot_actors /* 078604 7F045C14 8CA5C060 */ lw $a1, %lo(bodypartshot)($a1) /* 078608 7F045C18 104000BB */ beqz $v0, .L7F045F08 /* 07860C 7F045C1C 240B0001 */ li $t3, 1 /* 078610 7F045C20 AFAB060C */ sw $t3, 0x60c($sp) /* 078614 7F045C24 C610008C */ lwc1 $f16, 0x8c($s0) /* 078618 7F045C28 C7AA0628 */ lwc1 $f10, 0x628($sp) /* 07861C 7F045C2C 4610B03C */ c.lt.s $f22, $f16 /* 078620 7F045C30 00000000 */ nop /* 078624 7F045C34 4502001D */ bc1fl .L7F045CAC /* 078628 7F045C38 8E0E0000 */ lw $t6, ($s0) /* 07862C 7F045C3C C6020004 */ lwc1 $f2, 4($s0) /* 078630 7F045C40 C60C0008 */ lwc1 $f12, 8($s0) /* 078634 7F045C44 C7A4062C */ lwc1 $f4, 0x62c($sp) /* 078638 7F045C48 460A1182 */ mul.s $f6, $f2, $f10 /* 07863C 7F045C4C C600000C */ lwc1 $f0, 0xc($s0) /* 078640 7F045C50 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 078644 7F045C54 46046202 */ mul.s $f8, $f12, $f4 /* 078648 7F045C58 46083100 */ add.s $f4, $f6, $f8 /* 07864C 7F045C5C C7A60630 */ lwc1 $f6, 0x630($sp) /* 078650 7F045C60 46003202 */ mul.s $f8, $f6, $f0 /* 078654 7F045C64 44813000 */ mtc1 $at, $f6 /* 078658 7F045C68 46044380 */ add.s $f14, $f8, $f4 /* 07865C 7F045C6C 46068200 */ add.s $f8, $f16, $f6 /* 078660 7F045C70 46004107 */ neg.s $f4, $f8 /* 078664 7F045C74 46047382 */ mul.s $f14, $f14, $f4 /* 078668 7F045C78 00000000 */ nop /* 07866C 7F045C7C 460A7182 */ mul.s $f6, $f14, $f10 /* 078670 7F045C80 46061200 */ add.s $f8, $f2, $f6 /* 078674 7F045C84 E6080004 */ swc1 $f8, 4($s0) /* 078678 7F045C88 C7A4062C */ lwc1 $f4, 0x62c($sp) /* 07867C 7F045C8C 46047282 */ mul.s $f10, $f14, $f4 /* 078680 7F045C90 460A6180 */ add.s $f6, $f12, $f10 /* 078684 7F045C94 E6060008 */ swc1 $f6, 8($s0) /* 078688 7F045C98 C7A80630 */ lwc1 $f8, 0x630($sp) /* 07868C 7F045C9C 46087102 */ mul.s $f4, $f14, $f8 /* 078690 7F045CA0 46040280 */ add.s $f10, $f0, $f4 /* 078694 7F045CA4 E60A000C */ swc1 $f10, 0xc($s0) /* 078698 7F045CA8 8E0E0000 */ lw $t6, ($s0) .L7F045CAC: /* 07869C 7F045CAC 31CD0200 */ andi $t5, $t6, 0x200 /* 0786A0 7F045CB0 55A00004 */ bnezl $t5, .L7F045CC4 /* 0786A4 7F045CB4 8E180090 */ lw $t8, 0x90($s0) /* 0786A8 7F045CB8 0FC15F70 */ jal mtxLoadRandomRotation /* 0786AC 7F045CBC 8FA40070 */ lw $a0, 0x70($sp) /* 0786B0 7F045CC0 8E180090 */ lw $t8, 0x90($s0) .L7F045CC4: /* 0786B4 7F045CC4 3C058003 */ lui $a1, %hi(D_80030B0C) # $a1, 0x8003 /* 0786B8 7F045CC8 2406FFFF */ li $a2, -1 /* 0786BC 7F045CCC 270F0001 */ addiu $t7, $t8, 1 /* 0786C0 7F045CD0 AE0F0090 */ sw $t7, 0x90($s0) /* 0786C4 7F045CD4 8CA5C05C */ lw $a1, %lo(D_80030B0C)($a1) /* 0786C8 7F045CD8 0FC19238 */ jal recall_joy2_hits_edit_detail_edit_flag /* 0786CC 7F045CDC 82240080 */ lb $a0, 0x80($s1) /* 0786D0 7F045CE0 3C198003 */ lui $t9, %hi(D_80030B0C) # $t9, 0x8003 /* 0786D4 7F045CE4 8F39C05C */ lw $t9, %lo(D_80030B0C)($t9) /* 0786D8 7F045CE8 3C028003 */ lui $v0, %hi(bodypartshot) # $v0, 0x8003 /* 0786DC 7F045CEC 93290001 */ lbu $t1, 1($t9) /* 0786E0 7F045CF0 312A0002 */ andi $t2, $t1, 2 /* 0786E4 7F045CF4 51400085 */ beql $t2, $zero, .L7F045F0C /* 0786E8 7F045CF8 8FAE060C */ lw $t6, 0x60c($sp) /* 0786EC 7F045CFC 8C42C060 */ lw $v0, %lo(bodypartshot)($v0) /* 0786F0 7F045D00 24010064 */ li $at, 100 /* 0786F4 7F045D04 10410080 */ beq $v0, $at, .L7F045F08 /* 0786F8 7F045D08 2401006E */ li $at, 110 /* 0786FC 7F045D0C 1041007E */ beq $v0, $at, .L7F045F08 /* 078700 7F045D10 3C048006 */ lui $a0, %hi(g_CurrentProjectileModel) # $a0, 0x8006 /* 078704 7F045D14 3C058006 */ lui $a1, %hi(dword_CODE_bss_80075B74) # $a1, 0x8006 /* 078708 7F045D18 8CA54AB4 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) /* 07870C 7F045D1C 8C844AB0 */ lw $a0, %lo(g_CurrentProjectileModel)($a0) /* 078710 7F045D20 0FC1B366 */ jal modelFindNodeMtx /* 078714 7F045D24 00003025 */ move $a2, $zero /* 078718 7F045D28 C7A6061C */ lwc1 $f6, 0x61c($sp) /* 07871C 7F045D2C C7A80620 */ lwc1 $f8, 0x620($sp) /* 078720 7F045D30 C7A40624 */ lwc1 $f4, 0x624($sp) /* 078724 7F045D34 00409025 */ move $s2, $v0 /* 078728 7F045D38 E7A605D4 */ swc1 $f6, 0x5d4($sp) /* 07872C 7F045D3C E7A805D8 */ swc1 $f8, 0x5d8($sp) /* 078730 7F045D40 0FC1E111 */ jal camGetWorldToScreenMtxf /* 078734 7F045D44 E7A405DC */ swc1 $f4, 0x5dc($sp) /* 078738 7F045D48 00402025 */ move $a0, $v0 /* 07873C 7F045D4C 0FC16247 */ jal mtx4TransformVecInPlace /* 078740 7F045D50 27A505D4 */ addiu $a1, $sp, 0x5d4 /* 078744 7F045D54 C7AA05D4 */ lwc1 $f10, 0x5d4($sp) /* 078748 7F045D58 C6460030 */ lwc1 $f6, 0x30($s2) /* 07874C 7F045D5C 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 078750 7F045D60 44810000 */ mtc1 $at, $f0 /* 078754 7F045D64 46065201 */ sub.s $f8, $f10, $f6 /* 078758 7F045D68 3C048006 */ lui $a0, %hi(g_CurrentProjectileModel) # $a0, 0x8006 /* 07875C 7F045D6C 3C058006 */ lui $a1, %hi(dword_CODE_bss_80075B74) # $a1, 0x8006 /* 078760 7F045D70 8CA54AB4 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) /* 078764 7F045D74 46004102 */ mul.s $f4, $f8, $f0 /* 078768 7F045D78 C7A805D8 */ lwc1 $f8, 0x5d8($sp) /* 07876C 7F045D7C 8C844AB0 */ lw $a0, %lo(g_CurrentProjectileModel)($a0) /* 078770 7F045D80 46045180 */ add.s $f6, $f10, $f4 /* 078774 7F045D84 E7A605D4 */ swc1 $f6, 0x5d4($sp) /* 078778 7F045D88 C64A0034 */ lwc1 $f10, 0x34($s2) /* 07877C 7F045D8C 460A4101 */ sub.s $f4, $f8, $f10 /* 078780 7F045D90 46002182 */ mul.s $f6, $f4, $f0 /* 078784 7F045D94 C7A405DC */ lwc1 $f4, 0x5dc($sp) /* 078788 7F045D98 46064280 */ add.s $f10, $f8, $f6 /* 07878C 7F045D9C E7AA05D8 */ swc1 $f10, 0x5d8($sp) /* 078790 7F045DA0 C6480038 */ lwc1 $f8, 0x38($s2) /* 078794 7F045DA4 46082181 */ sub.s $f6, $f4, $f8 /* 078798 7F045DA8 46003282 */ mul.s $f10, $f6, $f0 /* 07879C 7F045DAC 460A2200 */ add.s $f8, $f4, $f10 /* 0787A0 7F045DB0 0FC1B4D5 */ jal getjointsize /* 0787A4 7F045DB4 E7A805DC */ swc1 $f8, 0x5dc($sp) /* 0787A8 7F045DB8 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 0787AC 7F045DBC 44813000 */ mtc1 $at, $f6 /* 0787B0 7F045DC0 3C018006 */ lui $at, %hi(flt_CODE_bss_80075B88) # $at, 0x8006 /* 0787B4 7F045DC4 C42A4AC8 */ lwc1 $f10, %lo(flt_CODE_bss_80075B88)($at) /* 0787B8 7F045DC8 46060102 */ mul.s $f4, $f0, $f6 /* 0787BC 7F045DCC C7A605D4 */ lwc1 $f6, 0x5d4($sp) /* 0787C0 7F045DD0 3C048006 */ lui $a0, %hi(g_CurrentProjectileModel) # $a0, 0x8006 /* 0787C4 7F045DD4 3C058006 */ lui $a1, %hi(dword_CODE_bss_80075B74) # $a1, 0x8006 /* 0787C8 7F045DD8 8CA54AB4 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) /* 0787CC 7F045DDC 8C844AB0 */ lw $a0, %lo(g_CurrentProjectileModel)($a0) /* 0787D0 7F045DE0 460A2202 */ mul.s $f8, $f4, $f10 /* 0787D4 7F045DE4 46083101 */ sub.s $f4, $f6, $f8 /* 0787D8 7F045DE8 0FC1B4D5 */ jal getjointsize /* 0787DC 7F045DEC E7A405D4 */ swc1 $f4, 0x5d4($sp) /* 0787E0 7F045DF0 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 0787E4 7F045DF4 44815000 */ mtc1 $at, $f10 /* 0787E8 7F045DF8 3C018006 */ lui $at, %hi(flt_CODE_bss_80075B78) # $at, 0x8006 /* 0787EC 7F045DFC C4284ACC */ lwc1 $f8, %lo(flt_CODE_bss_80075B78+0x14)($at) /* 0787F0 7F045E00 460A0182 */ mul.s $f6, $f0, $f10 /* 0787F4 7F045E04 C7AA05D8 */ lwc1 $f10, 0x5d8($sp) /* 0787F8 7F045E08 3C048006 */ lui $a0, %hi(g_CurrentProjectileModel) # $a0, 0x8006 /* 0787FC 7F045E0C 3C058006 */ lui $a1, %hi(dword_CODE_bss_80075B74) # $a1, 0x8006 /* 078800 7F045E10 8CA54AB4 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) /* 078804 7F045E14 8C844AB0 */ lw $a0, %lo(g_CurrentProjectileModel)($a0) /* 078808 7F045E18 46083102 */ mul.s $f4, $f6, $f8 /* 07880C 7F045E1C 46045181 */ sub.s $f6, $f10, $f4 /* 078810 7F045E20 0FC1B4D5 */ jal getjointsize /* 078814 7F045E24 E7A605D8 */ swc1 $f6, 0x5d8($sp) /* 078818 7F045E28 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 07881C 7F045E2C 44814000 */ mtc1 $at, $f8 /* 078820 7F045E30 3C018006 */ lui $at, %hi(flt_CODE_bss_80075B88) # $at, 0x8006 /* 078824 7F045E34 C4244AD0 */ lwc1 $f4, %lo(flt_CODE_bss_80075B88+0x8)($at) /* 078828 7F045E38 46080282 */ mul.s $f10, $f0, $f8 /* 07882C 7F045E3C C7A805DC */ lwc1 $f8, 0x5dc($sp) /* 078830 7F045E40 02402025 */ move $a0, $s2 /* 078834 7F045E44 27A50594 */ addiu $a1, $sp, 0x594 /* 078838 7F045E48 46045182 */ mul.s $f6, $f10, $f4 /* 07883C 7F045E4C 46064281 */ sub.s $f10, $f8, $f6 /* 078840 7F045E50 0FC168C3 */ jal matrix_4x4_7F059E64 /* 078844 7F045E54 E7AA05DC */ swc1 $f10, 0x5dc($sp) /* 078848 7F045E58 27A40594 */ addiu $a0, $sp, 0x594 /* 07884C 7F045E5C 0FC16247 */ jal mtx4TransformVecInPlace /* 078850 7F045E60 27A505D4 */ addiu $a1, $sp, 0x5d4 /* 078854 7F045E64 3C048006 */ lui $a0, %hi(g_CurrentProjectileModel) # $a0, 0x8006 /* 078858 7F045E68 3C058003 */ lui $a1, %hi(bodypartshot) # $a1, 0x8003 /* 07885C 7F045E6C 3C068006 */ lui $a2, %hi(dword_CODE_bss_80075B74) # $a2, 0x8006 /* 078860 7F045E70 8CC64AB4 */ lw $a2, %lo(dword_CODE_bss_80075B74)($a2) /* 078864 7F045E74 8CA5C060 */ lw $a1, %lo(bodypartshot)($a1) /* 078868 7F045E78 8C844AB0 */ lw $a0, %lo(g_CurrentProjectileModel)($a0) /* 07886C 7F045E7C 0FC08869 */ jal sub_GAME_7F0221DC /* 078870 7F045E80 27A705D4 */ addiu $a3, $sp, 0x5d4 /* 078874 7F045E84 10000021 */ b .L7F045F0C /* 078878 7F045E88 8FAE060C */ lw $t6, 0x60c($sp) /* 07887C 7F045E8C 24010056 */ li $at, 86 .L7F045E90: /* 078880 7F045E90 5441001E */ bnel $v0, $at, .L7F045F0C /* 078884 7F045E94 8FAE060C */ lw $t6, 0x60c($sp) /* 078888 7F045E98 92420000 */ lbu $v0, ($s2) /* 07888C 7F045E9C 24080001 */ li $t0, 1 /* 078890 7F045EA0 24010003 */ li $at, 3 /* 078894 7F045EA4 14410008 */ bne $v0, $at, .L7F045EC8 /* 078898 7F045EA8 AFA8060C */ sw $t0, 0x60c($sp) /* 07889C 7F045EAC 8E440004 */ lw $a0, 4($s2) /* 0788A0 7F045EB0 26250058 */ addiu $a1, $s1, 0x58 /* 0788A4 7F045EB4 3C064000 */ lui $a2, 0x4000 /* 0788A8 7F045EB8 0FC09E07 */ jal chrlvExplosionDamage /* 0788AC 7F045EBC 24070001 */ li $a3, 1 /* 0788B0 7F045EC0 10000011 */ b .L7F045F08 /* 0788B4 7F045EC4 A6200082 */ sh $zero, 0x82($s1) .L7F045EC8: /* 0788B8 7F045EC8 24010001 */ li $at, 1 /* 0788BC 7F045ECC 10410004 */ beq $v0, $at, .L7F045EE0 /* 0788C0 7F045ED0 3C0542C8 */ lui $a1, 0x42c8 /* 0788C4 7F045ED4 24010004 */ li $at, 4 /* 0788C8 7F045ED8 5441000B */ bnel $v0, $at, .L7F045F08 /* 0788CC 7F045EDC A6200082 */ sh $zero, 0x82($s1) .L7F045EE0: /* 0788D0 7F045EE0 8E220064 */ lw $v0, 0x64($s1) /* 0788D4 7F045EE4 3C010006 */ lui $at, 6 /* 0788D8 7F045EE8 8E440004 */ lw $a0, 4($s2) /* 0788DC 7F045EEC 00416024 */ and $t4, $v0, $at /* 0788E0 7F045EF0 000C5C42 */ srl $t3, $t4, 0x11 /* 0788E4 7F045EF4 AFAB0010 */ sw $t3, 0x10($sp) /* 0788E8 7F045EF8 26260058 */ addiu $a2, $s1, 0x58 /* 0788EC 7F045EFC 0FC138BC */ jal maybe_detonate_object /* 0788F0 7F045F00 24070056 */ li $a3, 86 /* 0788F4 7F045F04 A6200082 */ sh $zero, 0x82($s1) .L7F045F08: /* 0788F8 7F045F08 8FAE060C */ lw $t6, 0x60c($sp) .L7F045F0C: /* 0788FC 7F045F0C 55C0010B */ bnezl $t6, .L7F04633C /* 078900 7F045F10 8E2B0064 */ lw $t3, 0x64($s1) /* 078904 7F045F14 8FAD066C */ lw $t5, 0x66c($sp) /* 078908 7F045F18 55A00031 */ bnezl $t5, .L7F045FE0 /* 07890C 7F045F1C 8E0F0000 */ lw $t7, ($s0) /* 078910 7F045F20 C610008C */ lwc1 $f16, 0x8c($s0) /* 078914 7F045F24 C7A40628 */ lwc1 $f4, 0x628($sp) /* 078918 7F045F28 4610B03C */ c.lt.s $f22, $f16 /* 07891C 7F045F2C 00000000 */ nop /* 078920 7F045F30 4502002B */ bc1fl .L7F045FE0 /* 078924 7F045F34 8E0F0000 */ lw $t7, ($s0) /* 078928 7F045F38 C6020004 */ lwc1 $f2, 4($s0) /* 07892C 7F045F3C C60C0008 */ lwc1 $f12, 8($s0) /* 078930 7F045F40 C7A6062C */ lwc1 $f6, 0x62c($sp) /* 078934 7F045F44 46041202 */ mul.s $f8, $f2, $f4 /* 078938 7F045F48 C600000C */ lwc1 $f0, 0xc($s0) /* 07893C 7F045F4C 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 078940 7F045F50 46066282 */ mul.s $f10, $f12, $f6 /* 078944 7F045F54 4616603E */ c.le.s $f12, $f22 /* 078948 7F045F58 460A4180 */ add.s $f6, $f8, $f10 /* 07894C 7F045F5C C7A80630 */ lwc1 $f8, 0x630($sp) /* 078950 7F045F60 46004282 */ mul.s $f10, $f8, $f0 /* 078954 7F045F64 44814000 */ mtc1 $at, $f8 /* 078958 7F045F68 46065380 */ add.s $f14, $f10, $f6 /* 07895C 7F045F6C 46088280 */ add.s $f10, $f16, $f8 /* 078960 7F045F70 46005187 */ neg.s $f6, $f10 /* 078964 7F045F74 46067382 */ mul.s $f14, $f14, $f6 /* 078968 7F045F78 00000000 */ nop /* 07896C 7F045F7C 46047202 */ mul.s $f8, $f14, $f4 /* 078970 7F045F80 46081280 */ add.s $f10, $f2, $f8 /* 078974 7F045F84 E60A0004 */ swc1 $f10, 4($s0) /* 078978 7F045F88 C7A6062C */ lwc1 $f6, 0x62c($sp) /* 07897C 7F045F8C 46067102 */ mul.s $f4, $f14, $f6 /* 078980 7F045F90 46046200 */ add.s $f8, $f12, $f4 /* 078984 7F045F94 E6080008 */ swc1 $f8, 8($s0) /* 078988 7F045F98 C7AA0630 */ lwc1 $f10, 0x630($sp) /* 07898C 7F045F9C 460A7182 */ mul.s $f6, $f14, $f10 /* 078990 7F045FA0 46060100 */ add.s $f4, $f0, $f6 /* 078994 7F045FA4 4500000D */ bc1f .L7F045FDC /* 078998 7F045FA8 E604000C */ swc1 $f4, 0xc($s0) /* 07899C 7F045FAC C6080008 */ lwc1 $f8, 8($s0) /* 0789A0 7F045FB0 24180001 */ li $t8, 1 /* 0789A4 7F045FB4 4608B03E */ c.le.s $f22, $f8 /* 0789A8 7F045FB8 00000000 */ nop /* 0789AC 7F045FBC 45030007 */ bc1tl .L7F045FDC /* 0789B0 7F045FC0 AFB80614 */ sw $t8, 0x614($sp) /* 0789B4 7F045FC4 C62A005C */ lwc1 $f10, 0x5c($s1) /* 0789B8 7F045FC8 460AA03E */ c.le.s $f20, $f10 /* 0789BC 7F045FCC 00000000 */ nop /* 0789C0 7F045FD0 45020003 */ bc1fl .L7F045FE0 /* 0789C4 7F045FD4 8E0F0000 */ lw $t7, ($s0) /* 0789C8 7F045FD8 AFB80614 */ sw $t8, 0x614($sp) .L7F045FDC: /* 0789CC 7F045FDC 8E0F0000 */ lw $t7, ($s0) .L7F045FE0: /* 0789D0 7F045FE0 C7B40644 */ lwc1 $f20, 0x644($sp) /* 0789D4 7F045FE4 31F90008 */ andi $t9, $t7, 8 /* 0789D8 7F045FE8 17200014 */ bnez $t9, .L7F04603C /* 0789DC 7F045FEC 00000000 */ nop /* 0789E0 7F045FF0 8E640014 */ lw $a0, 0x14($s3) /* 0789E4 7F045FF4 8E650008 */ lw $a1, 8($s3) /* 0789E8 7F045FF8 0FC2C70C */ jal stanGetPositionYValue /* 0789EC 7F045FFC 8E660010 */ lw $a2, 0x10($s3) /* 0789F0 7F046000 46000506 */ mov.s $f20, $f0 /* 0789F4 7F046004 8FA40648 */ lw $a0, 0x648($sp) /* 0789F8 7F046008 0FC0FA9F */ jal chrpropSumMatrixPosY /* 0789FC 7F04600C 8FA50074 */ lw $a1, 0x74($sp) /* 078A00 7F046010 4600A101 */ sub.s $f4, $f20, $f0 /* 078A04 7F046014 E7A00640 */ swc1 $f0, 0x640($sp) /* 078A08 7F046018 C666000C */ lwc1 $f6, 0xc($s3) /* 078A0C 7F04601C 00004825 */ move $t1, $zero /* 078A10 7F046020 4604303C */ c.lt.s $f6, $f4 /* 078A14 7F046024 00000000 */ nop /* 078A18 7F046028 45000002 */ bc1f .L7F046034 /* 078A1C 7F04602C 00000000 */ nop /* 078A20 7F046030 24090001 */ li $t1, 1 .L7F046034: /* 078A24 7F046034 10000001 */ b .L7F04603C /* 078A28 7F046038 AFA90618 */ sw $t1, 0x618($sp) .L7F04603C: /* 078A2C 7F04603C 8FAA0618 */ lw $t2, 0x618($sp) /* 078A30 7F046040 8FA8066C */ lw $t0, 0x66c($sp) /* 078A34 7F046044 55400004 */ bnezl $t2, .L7F046058 /* 078A38 7F046048 8E0C0000 */ lw $t4, ($s0) /* 078A3C 7F04604C 5500000B */ bnezl $t0, .L7F04607C /* 078A40 7F046050 8FB80618 */ lw $t8, 0x618($sp) /* 078A44 7F046054 8E0C0000 */ lw $t4, ($s0) .L7F046058: /* 078A48 7F046058 318B0200 */ andi $t3, $t4, 0x200 /* 078A4C 7F04605C 55600004 */ bnezl $t3, .L7F046070 /* 078A50 7F046060 8E0E0090 */ lw $t6, 0x90($s0) /* 078A54 7F046064 0FC15F70 */ jal mtxLoadRandomRotation /* 078A58 7F046068 8FA40070 */ lw $a0, 0x70($sp) /* 078A5C 7F04606C 8E0E0090 */ lw $t6, 0x90($s0) .L7F046070: /* 078A60 7F046070 25CD0001 */ addiu $t5, $t6, 1 /* 078A64 7F046074 AE0D0090 */ sw $t5, 0x90($s0) /* 078A68 7F046078 8FB80618 */ lw $t8, 0x618($sp) .L7F04607C: /* 078A6C 7F04607C 8FAF0614 */ lw $t7, 0x614($sp) /* 078A70 7F046080 8FB90618 */ lw $t9, 0x618($sp) /* 078A74 7F046084 17000003 */ bnez $t8, .L7F046094 /* 078A78 7F046088 00000000 */ nop /* 078A7C 7F04608C 51E0003A */ beql $t7, $zero, .L7F046178 /* 078A80 7F046090 922E0003 */ lbu $t6, 3($s1) .L7F046094: /* 078A84 7F046094 13200009 */ beqz $t9, .L7F0460BC /* 078A88 7F046098 C7A40620 */ lwc1 $f4, 0x620($sp) /* 078A8C 7F04609C C7A80640 */ lwc1 $f8, 0x640($sp) /* 078A90 7F0460A0 3C014080 */ li $at, 0x40800000 # 4.000000 /* 078A94 7F0460A4 44813000 */ mtc1 $at, $f6 /* 078A98 7F0460A8 4608A281 */ sub.s $f10, $f20, $f8 /* 078A9C 7F0460AC 46065000 */ add.s $f0, $f10, $f6 /* 078AA0 7F0460B0 E660000C */ swc1 $f0, 0xc($s3) /* 078AA4 7F0460B4 10000008 */ b .L7F0460D8 /* 078AA8 7F0460B8 E620005C */ swc1 $f0, 0x5c($s1) .L7F0460BC: /* 078AAC 7F0460BC C7A80640 */ lwc1 $f8, 0x640($sp) /* 078AB0 7F0460C0 3C014080 */ li $at, 0x40800000 # 4.000000 /* 078AB4 7F0460C4 44813000 */ mtc1 $at, $f6 /* 078AB8 7F0460C8 46082281 */ sub.s $f10, $f4, $f8 /* 078ABC 7F0460CC 46065080 */ add.s $f2, $f10, $f6 /* 078AC0 7F0460D0 E662000C */ swc1 $f2, 0xc($s3) /* 078AC4 7F0460D4 E622005C */ swc1 $f2, 0x5c($s1) .L7F0460D8: /* 078AC8 7F0460D8 8E230064 */ lw $v1, 0x64($s1) /* 078ACC 7F0460DC 02202025 */ move $a0, $s1 /* 078AD0 7F0460E0 00034BC0 */ sll $t1, $v1, 0xf /* 078AD4 7F0460E4 05200002 */ bltz $t1, .L7F0460F0 /* 078AD8 7F0460E8 346A0100 */ ori $t2, $v1, 0x100 /* 078ADC 7F0460EC AE2A0064 */ sw $t2, 0x64($s1) .L7F0460F0: /* 078AE0 7F0460F0 C610008C */ lwc1 $f16, 0x8c($s0) /* 078AE4 7F0460F4 4610B03C */ c.lt.s $f22, $f16 /* 078AE8 7F0460F8 00000000 */ nop /* 078AEC 7F0460FC 4500001B */ bc1f .L7F04616C /* 078AF0 7F046100 00000000 */ nop /* 078AF4 7F046104 C6040008 */ lwc1 $f4, 8($s0) /* 078AF8 7F046108 46008207 */ neg.s $f8, $f16 /* 078AFC 7F04610C 3C018005 */ lui $at, %hi(D_80052AA8) # $at, 0x8005 /* 078B00 7F046110 46082282 */ mul.s $f10, $f4, $f8 /* 078B04 7F046114 C4208BE8 */ lwc1 $f0, %lo(D_80052AA8)($at) /* 078B08 7F046118 E60A0008 */ swc1 $f10, 8($s0) /* 078B0C 7F04611C C6060008 */ lwc1 $f6, 8($s0) /* 078B10 7F046120 4600303C */ c.lt.s $f6, $f0 /* 078B14 7F046124 00000000 */ nop /* 078B18 7F046128 45020013 */ bc1fl .L7F046178 /* 078B1C 7F04612C 922E0003 */ lbu $t6, 3($s1) /* 078B20 7F046130 8E080000 */ lw $t0, ($s0) /* 078B24 7F046134 02202025 */ move $a0, $s1 /* 078B28 7F046138 310C0002 */ andi $t4, $t0, 2 /* 078B2C 7F04613C 11800007 */ beqz $t4, .L7F04615C /* 078B30 7F046140 00000000 */ nop /* 078B34 7F046144 8E0B0090 */ lw $t3, 0x90($s0) /* 078B38 7F046148 24010001 */ li $at, 1 /* 078B3C 7F04614C 15610003 */ bne $t3, $at, .L7F04615C /* 078B40 7F046150 00000000 */ nop /* 078B44 7F046154 10000007 */ b .L7F046174 /* 078B48 7F046158 E6000008 */ swc1 $f0, 8($s0) .L7F04615C: /* 078B4C 7F04615C 0FC10CA9 */ jal sub_GAME_7F0431E4 /* 078B50 7F046160 27A50634 */ addiu $a1, $sp, 0x634 /* 078B54 7F046164 10000004 */ b .L7F046178 /* 078B58 7F046168 922E0003 */ lbu $t6, 3($s1) .L7F04616C: /* 078B5C 7F04616C 0FC10CA9 */ jal sub_GAME_7F0431E4 /* 078B60 7F046170 27A50634 */ addiu $a1, $sp, 0x634 .L7F046174: /* 078B64 7F046174 922E0003 */ lbu $t6, 3($s1) .L7F046178: /* 078B68 7F046178 24010008 */ li $at, 8 /* 078B6C 7F04617C 55C1006F */ bnel $t6, $at, .L7F04633C /* 078B70 7F046180 8E2B0064 */ lw $t3, 0x64($s1) /* 078B74 7F046184 82220080 */ lb $v0, 0x80($s1) /* 078B78 7F046188 24010003 */ li $at, 3 /* 078B7C 7F04618C 54410006 */ bnel $v0, $at, .L7F0461A8 /* 078B80 7F046190 24010056 */ li $at, 86 /* 078B84 7F046194 0FC10DC4 */ jal sub_GAME_7F043650 /* 078B88 7F046198 02202025 */ move $a0, $s1 /* 078B8C 7F04619C 10000042 */ b .L7F0462A8 /* 078B90 7F0461A0 8FB9066C */ lw $t9, 0x66c($sp) /* 078B94 7F0461A4 24010056 */ li $at, 86 .L7F0461A8: /* 078B98 7F0461A8 1441002D */ bne $v0, $at, .L7F046260 /* 078B9C 7F0461AC 8FAD066C */ lw $t5, 0x66c($sp) /* 078BA0 7F0461B0 11A00003 */ beqz $t5, .L7F0461C0 /* 078BA4 7F0461B4 8FB80618 */ lw $t8, 0x618($sp) /* 078BA8 7F0461B8 53000004 */ beql $t8, $zero, .L7F0461CC /* 078BAC 7F0461BC C6020004 */ lwc1 $f2, 4($s0) .L7F0461C0: /* 078BB0 7F0461C0 10000038 */ b .L7F0462A4 /* 078BB4 7F0461C4 A6200082 */ sh $zero, 0x82($s1) /* 078BB8 7F0461C8 C6020004 */ lwc1 $f2, 4($s0) .L7F0461CC: /* 078BBC 7F0461CC C60C0008 */ lwc1 $f12, 8($s0) /* 078BC0 7F0461D0 C600000C */ lwc1 $f0, 0xc($s0) /* 078BC4 7F0461D4 46021102 */ mul.s $f4, $f2, $f2 /* 078BC8 7F0461D8 3C018005 */ lui $at, %hi(D_80052AAC) /* 078BCC 7F0461DC 26240058 */ addiu $a0, $s1, 0x58 /* 078BD0 7F0461E0 460C6202 */ mul.s $f8, $f12, $f12 /* 078BD4 7F0461E4 24060008 */ li $a2, 8 /* 078BD8 7F0461E8 46000182 */ mul.s $f6, $f0, $f0 /* 078BDC 7F0461EC 46082280 */ add.s $f10, $f4, $f8 /* 078BE0 7F0461F0 C4248BEC */ lwc1 $f4, %lo(D_80052AAC)($at) /* 078BE4 7F0461F4 460A3380 */ add.s $f14, $f6, $f10 /* 078BE8 7F0461F8 460E203C */ c.lt.s $f4, $f14 /* 078BEC 7F0461FC 00000000 */ nop /* 078BF0 7F046200 45020005 */ bc1fl .L7F046218 /* 078BF4 7F046204 8E0F00A8 */ lw $t7, 0xa8($s0) /* 078BF8 7F046208 E6160010 */ swc1 $f22, 0x10($s0) /* 078BFC 7F04620C E6160014 */ swc1 $f22, 0x14($s0) /* 078C00 7F046210 E6160018 */ swc1 $f22, 0x18($s0) /* 078C04 7F046214 8E0F00A8 */ lw $t7, 0xa8($s0) .L7F046218: /* 078C08 7F046218 29E100FB */ slti $at, $t7, 0xfb /* 078C0C 7F04621C 54200008 */ bnezl $at, .L7F046240 /* 078C10 7F046220 926A0001 */ lbu $t2, 1($s3) /* 078C14 7F046224 8E190000 */ lw $t9, ($s0) /* 078C18 7F046228 2401FFCF */ li $at, -49 /* 078C1C 7F04622C E616001C */ swc1 $f22, 0x1c($s0) /* 078C20 7F046230 03214824 */ and $t1, $t9, $at /* 078C24 7F046234 1000001B */ b .L7F0462A4 /* 078C28 7F046238 AE090000 */ sw $t1, ($s0) /* 078C2C 7F04623C 926A0001 */ lbu $t2, 1($s3) .L7F046240: /* 078C30 7F046240 8E650014 */ lw $a1, 0x14($s3) /* 078C34 7F046244 2667002C */ addiu $a3, $s3, 0x2c /* 078C38 7F046248 31480008 */ andi $t0, $t2, 8 /* 078C3C 7F04624C 0008602B */ sltu $t4, $zero, $t0 /* 078C40 7F046250 0FC27711 */ jal explosionCreateSmoke /* 078C44 7F046254 AFAC0010 */ sw $t4, 0x10($sp) /* 078C48 7F046258 10000013 */ b .L7F0462A8 /* 078C4C 7F04625C 8FB9066C */ lw $t9, 0x66c($sp) .L7F046260: /* 078C50 7F046260 24010057 */ li $at, 87 /* 078C54 7F046264 1441000F */ bne $v0, $at, .L7F0462A4 /* 078C58 7F046268 8FAB0618 */ lw $t3, 0x618($sp) /* 078C5C 7F04626C 15600003 */ bnez $t3, .L7F04627C /* 078C60 7F046270 8FAE0614 */ lw $t6, 0x614($sp) /* 078C64 7F046274 11C00003 */ beqz $t6, .L7F046284 /* 078C68 7F046278 26240058 */ addiu $a0, $s1, 0x58 .L7F04627C: /* 078C6C 7F04627C 10000009 */ b .L7F0462A4 /* 078C70 7F046280 A6200082 */ sh $zero, 0x82($s1) .L7F046284: /* 078C74 7F046284 926D0001 */ lbu $t5, 1($s3) /* 078C78 7F046288 8E650014 */ lw $a1, 0x14($s3) /* 078C7C 7F04628C 24060009 */ li $a2, 9 /* 078C80 7F046290 31B80008 */ andi $t8, $t5, 8 /* 078C84 7F046294 0018782B */ sltu $t7, $zero, $t8 /* 078C88 7F046298 AFAF0010 */ sw $t7, 0x10($sp) /* 078C8C 7F04629C 0FC27711 */ jal explosionCreateSmoke /* 078C90 7F0462A0 2667002C */ addiu $a3, $s3, 0x2c .L7F0462A4: /* 078C94 7F0462A4 8FB9066C */ lw $t9, 0x66c($sp) .L7F0462A8: /* 078C98 7F0462A8 3C128004 */ lui $s2, %hi(D_80048380) # $s2, 0x8004 /* 078C9C 7F0462AC 26521000 */ addiu $s2, %lo(D_80048380) # addiu $s2, $s2, 0x1000 /* 078CA0 7F0462B0 13200003 */ beqz $t9, .L7F0462C0 /* 078CA4 7F0462B4 8FA90618 */ lw $t1, 0x618($sp) /* 078CA8 7F0462B8 51200020 */ beql $t1, $zero, .L7F04633C /* 078CAC 7F0462BC 8E2B0064 */ lw $t3, 0x64($s1) .L7F0462C0: /* 078CB0 7F0462C0 8E420000 */ lw $v0, ($s2) /* 078CB4 7F0462C4 8E0A00AC */ lw $t2, 0xac($s0) /* 078CB8 7F0462C8 2448FFFE */ addiu $t0, $v0, -2 /* 078CBC 7F0462CC 0148082A */ slt $at, $t2, $t0 /* 078CC0 7F0462D0 50200019 */ beql $at, $zero, .L7F046338 /* 078CC4 7F0462D4 AE0200AC */ sw $v0, 0xac($s0) /* 078CC8 7F0462D8 82220080 */ lb $v0, 0x80($s1) /* 078CCC 7F0462DC 266C0008 */ addiu $t4, $s3, 8 /* 078CD0 7F0462E0 24010003 */ li $at, 3 /* 078CD4 7F0462E4 10410004 */ beq $v0, $at, .L7F0462F8 /* 078CD8 7F0462E8 AFAC0074 */ sw $t4, 0x74($sp) /* 078CDC 7F0462EC 24010002 */ li $at, 2 /* 078CE0 7F0462F0 14410008 */ bne $v0, $at, .L7F046314 /* 078CE4 7F0462F4 3C048005 */ lui $a0, %hi(g_musicSfxBufferPtr) .L7F0462F8: /* 078CE8 7F0462F8 3C048005 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8005 /* 078CEC 7F0462FC 8C846900 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 078CF0 7F046300 24050003 */ li $a1, 3 /* 078CF4 7F046304 0C00209A */ jal sndPlaySfx /* 078CF8 7F046308 00003025 */ move $a2, $zero /* 078CFC 7F04630C 10000006 */ b .L7F046328 /* 078D00 7F046310 00402025 */ move $a0, $v0 .L7F046314: /* 078D04 7F046314 8C846900 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 078D08 7F046318 2405002D */ li $a1, 45 /* 078D0C 7F04631C 0C00209A */ jal sndPlaySfx /* 078D10 7F046320 00003025 */ move $a2, $zero /* 078D14 7F046324 00402025 */ move $a0, $v0 .L7F046328: /* 078D18 7F046328 0FC14F3C */ jal chrobjSndCreatePostEventDefault /* 078D1C 7F04632C 8FA50074 */ lw $a1, 0x74($sp) /* 078D20 7F046330 8E420000 */ lw $v0, ($s2) /* 078D24 7F046334 AE0200AC */ sw $v0, 0xac($s0) .L7F046338: /* 078D28 7F046338 8E2B0064 */ lw $t3, 0x64($s1) .L7F04633C: /* 078D2C 7F04633C 3C128004 */ lui $s2, %hi(D_80048380) # $s2, 0x8004 /* 078D30 7F046340 26521000 */ addiu $s2, %lo(D_80048380) # addiu $s2, $s2, 0x1000 /* 078D34 7F046344 316E0080 */ andi $t6, $t3, 0x80 /* 078D38 7F046348 51C00125 */ beql $t6, $zero, .L7F0467E0 /* 078D3C 7F04634C 8FB90698 */ lw $t9, 0x698($sp) /* 078D40 7F046350 8E0D0000 */ lw $t5, ($s0) /* 078D44 7F046354 31B80400 */ andi $t8, $t5, 0x400 /* 078D48 7F046358 53000121 */ beql $t8, $zero, .L7F0467E0 /* 078D4C 7F04635C 8FB90698 */ lw $t9, 0x698($sp) /* 078D50 7F046360 8E420000 */ lw $v0, ($s2) /* 078D54 7F046364 3C0143C8 */ li $at, 0x43C80000 # 400.000000 /* 078D58 7F046368 27B0056C */ addiu $s0, $sp, 0x56c /* 078D5C 7F04636C 304F0007 */ andi $t7, $v0, 7 /* 078D60 7F046370 15E0011A */ bnez $t7, .L7F0467DC /* 078D64 7F046374 00002025 */ move $a0, $zero /* 078D68 7F046378 44810000 */ mtc1 $at, $f0 /* 078D6C 7F04637C C6280058 */ lwc1 $f8, 0x58($s1) /* 078D70 7F046380 3C0144E1 */ li $at, 0x44E10000 # 1800.000000 /* 078D74 7F046384 44812000 */ mtc1 $at, $f4 /* 078D78 7F046388 46004180 */ add.s $f6, $f8, $f0 /* 078D7C 7F04638C 3059000F */ andi $t9, $v0, 0xf /* 078D80 7F046390 E7A6056C */ swc1 $f6, 0x56c($sp) /* 078D84 7F046394 C62A005C */ lwc1 $f10, 0x5c($s1) /* 078D88 7F046398 46045201 */ sub.s $f8, $f10, $f4 /* 078D8C 7F04639C E7A80570 */ swc1 $f8, 0x570($sp) /* 078D90 7F0463A0 C6260060 */ lwc1 $f6, 0x60($s1) /* 078D94 7F0463A4 17200005 */ bnez $t9, .L7F0463BC /* 078D98 7F0463A8 E7A60574 */ swc1 $f6, 0x574($sp) /* 078D9C 7F0463AC C7AA0574 */ lwc1 $f10, 0x574($sp) /* 078DA0 7F0463B0 46005100 */ add.s $f4, $f10, $f0 /* 078DA4 7F0463B4 10000004 */ b .L7F0463C8 /* 078DA8 7F0463B8 E7A40574 */ swc1 $f4, 0x574($sp) .L7F0463BC: /* 078DAC 7F0463BC C7A80574 */ lwc1 $f8, 0x574($sp) /* 078DB0 7F0463C0 46004181 */ sub.s $f6, $f8, $f0 /* 078DB4 7F0463C4 E7A60574 */ swc1 $f6, 0x574($sp) .L7F0463C8: /* 078DB8 7F0463C8 8E220010 */ lw $v0, 0x10($s1) /* 078DBC 7F0463CC 02002825 */ move $a1, $s0 /* 078DC0 7F0463D0 24070014 */ li $a3, 20 /* 078DC4 7F0463D4 8C460014 */ lw $a2, 0x14($v0) /* 078DC8 7F0463D8 2449002C */ addiu $t1, $v0, 0x2c /* 078DCC 7F0463DC AFA90018 */ sw $t1, 0x18($sp) /* 078DD0 7F0463E0 AFA0001C */ sw $zero, 0x1c($sp) /* 078DD4 7F0463E4 AFA00014 */ sw $zero, 0x14($sp) /* 078DD8 7F0463E8 0FC26DE4 */ jal explosionCreate /* 078DDC 7F0463EC AFA00010 */ sw $zero, 0x10($sp) /* 078DE0 7F0463F0 8E4A0000 */ lw $t2, ($s2) /* 078DE4 7F0463F4 24010028 */ li $at, 40 /* 078DE8 7F0463F8 02002025 */ move $a0, $s0 /* 078DEC 7F0463FC 0141001A */ div $zero, $t2, $at /* 078DF0 7F046400 00004010 */ mfhi $t0 /* 078DF4 7F046404 550000F6 */ bnezl $t0, .L7F0467E0 /* 078DF8 7F046408 8FB90698 */ lw $t9, 0x698($sp) /* 078DFC 7F04640C 8E220010 */ lw $v0, 0x10($s1) /* 078E00 7F046410 240C0001 */ li $t4, 1 /* 078E04 7F046414 2406000A */ li $a2, 10 /* 078E08 7F046418 8C450014 */ lw $a1, 0x14($v0) /* 078E0C 7F04641C AFAC0010 */ sw $t4, 0x10($sp) /* 078E10 7F046420 0FC27711 */ jal explosionCreateSmoke /* 078E14 7F046424 2447002C */ addiu $a3, $v0, 0x2c /* 078E18 7F046428 100000ED */ b .L7F0467E0 /* 078E1C 7F04642C 8FB90698 */ lw $t9, 0x698($sp) /* 078E20 7F046430 C6000060 */ lwc1 $f0, 0x60($s0) .L7F046434: /* 078E24 7F046434 44815000 */ mtc1 $at, $f10 /* 078E28 7F046438 24120001 */ li $s2, 1 /* 078E2C 7F04643C 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 /* 078E30 7F046440 460A003C */ c.lt.s $f0, $f10 /* 078E34 7F046444 26040068 */ addiu $a0, $s0, 0x68 /* 078E38 7F046448 26050078 */ addiu $a1, $s0, 0x78 /* 078E3C 7F04644C 45020031 */ bc1fl .L7F046514 /* 078E40 7F046450 C60A0004 */ lwc1 $f10, 4($s0) /* 078E44 7F046454 C6020064 */ lwc1 $f2, 0x64($s0) /* 078E48 7F046458 C4241004 */ lwc1 $f4, %lo(g_GlobalTimerDelta)($at) /* 078E4C 7F04645C 3C0B8004 */ lui $t3, %hi(g_ClockTimer) # $t3, 0x8004 /* 078E50 7F046460 3C018005 */ lui $at, %hi(D_80052AB0) /* 078E54 7F046464 46041202 */ mul.s $f8, $f2, $f4 /* 078E58 7F046468 27B20558 */ addiu $s2, $sp, 0x558 /* 078E5C 7F04646C 46080180 */ add.s $f6, $f0, $f8 /* 078E60 7F046470 E6060060 */ swc1 $f6, 0x60($s0) /* 078E64 7F046474 8D6B0FF4 */ lw $t3, %lo(g_ClockTimer)($t3) /* 078E68 7F046478 59600005 */ blezl $t3, .L7F046490 /* 078E6C 7F04647C 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 078E70 7F046480 C42A8BF0 */ lwc1 $f10, %lo(D_80052AB0)($at) /* 078E74 7F046484 460A1102 */ mul.s $f4, $f2, $f10 /* 078E78 7F046488 E6040064 */ swc1 $f4, 0x64($s0) /* 078E7C 7F04648C 3C013F80 */ li $at, 0x3F800000 # 1.000000 .L7F046490: /* 078E80 7F046490 44814000 */ mtc1 $at, $f8 /* 078E84 7F046494 C6000060 */ lwc1 $f0, 0x60($s0) /* 078E88 7F046498 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 078E8C 7F04649C 4600403C */ c.lt.s $f8, $f0 /* 078E90 7F0464A0 00000000 */ nop /* 078E94 7F0464A4 45030006 */ bc1tl .L7F0464C0 /* 078E98 7F0464A8 44813000 */ mtc1 $at, $f6 /* 078E9C 7F0464AC 8E0E0000 */ lw $t6, ($s0) /* 078EA0 7F0464B0 31CD0008 */ andi $t5, $t6, 8 /* 078EA4 7F0464B4 51A00006 */ beql $t5, $zero, .L7F0464D0 /* 078EA8 7F0464B8 44060000 */ mfc1 $a2, $f0 /* 078EAC 7F0464BC 44813000 */ mtc1 $at, $f6 .L7F0464C0: /* 078EB0 7F0464C0 00000000 */ nop /* 078EB4 7F0464C4 E6060060 */ swc1 $f6, 0x60($s0) /* 078EB8 7F0464C8 C6000060 */ lwc1 $f0, 0x60($s0) /* 078EBC 7F0464CC 44060000 */ mfc1 $a2, $f0 .L7F0464D0: /* 078EC0 7F0464D0 0FC16FAE */ jal quaternion_slerp /* 078EC4 7F0464D4 02403825 */ move $a3, $s2 /* 078EC8 7F0464D8 26250018 */ addiu $a1, $s1, 0x18 /* 078ECC 7F0464DC AFA50074 */ sw $a1, 0x74($sp) /* 078ED0 7F0464E0 0FC16EB6 */ jal quaternion_to_matrix /* 078ED4 7F0464E4 02402025 */ move $a0, $s2 /* 078ED8 7F0464E8 C60C00C0 */ lwc1 $f12, 0xc0($s0) /* 078EDC 7F0464EC 0FC16397 */ jal matrix_column_1_scalar_multiply /* 078EE0 7F0464F0 8FA50074 */ lw $a1, 0x74($sp) /* 078EE4 7F0464F4 C60C00C4 */ lwc1 $f12, 0xc4($s0) /* 078EE8 7F0464F8 0FC163A3 */ jal matrix_column_2_scalar_multiply /* 078EEC 7F0464FC 8FA50074 */ lw $a1, 0x74($sp) /* 078EF0 7F046500 C60C00C8 */ lwc1 $f12, 0xc8($s0) /* 078EF4 7F046504 0FC163BD */ jal matrix_column_3_scalar_multiply_2 /* 078EF8 7F046508 8FA50074 */ lw $a1, 0x74($sp) /* 078EFC 7F04650C 00009025 */ move $s2, $zero /* 078F00 7F046510 C60A0004 */ lwc1 $f10, 4($s0) .L7F046514: /* 078F04 7F046514 460AB032 */ c.eq.s $f22, $f10 /* 078F08 7F046518 00000000 */ nop /* 078F0C 7F04651C 4502000F */ bc1fl .L7F04655C /* 078F10 7F046520 8E180000 */ lw $t8, ($s0) /* 078F14 7F046524 C604000C */ lwc1 $f4, 0xc($s0) /* 078F18 7F046528 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 078F1C 7F04652C 4604B032 */ c.eq.s $f22, $f4 /* 078F20 7F046530 00000000 */ nop /* 078F24 7F046534 45020009 */ bc1fl .L7F04655C /* 078F28 7F046538 8E180000 */ lw $t8, ($s0) /* 078F2C 7F04653C C6080060 */ lwc1 $f8, 0x60($s0) /* 078F30 7F046540 44813000 */ mtc1 $at, $f6 /* 078F34 7F046544 00000000 */ nop /* 078F38 7F046548 4606403C */ c.lt.s $f8, $f6 /* 078F3C 7F04654C 00000000 */ nop /* 078F40 7F046550 45000088 */ bc1f .L7F046774 /* 078F44 7F046554 00000000 */ nop /* 078F48 7F046558 8E180000 */ lw $t8, ($s0) .L7F04655C: /* 078F4C 7F04655C 02202025 */ move $a0, $s1 /* 078F50 7F046560 26390018 */ addiu $t9, $s1, 0x18 /* 078F54 7F046564 330F0008 */ andi $t7, $t8, 8 /* 078F58 7F046568 15E00082 */ bnez $t7, .L7F046774 /* 078F5C 7F04656C 00000000 */ nop /* 078F60 7F046570 AFB90074 */ sw $t9, 0x74($sp) /* 078F64 7F046574 0FC1004E */ jal chrobjGetBboxFromObjectRecord /* 078F68 7F046578 00009025 */ move $s2, $zero /* 078F6C 7F04657C 3C038004 */ lui $v1, %hi(g_ClockTimer) # $v1, 0x8004 /* 078F70 7F046580 8C630FF4 */ lw $v1, %lo(g_ClockTimer)($v1) /* 078F74 7F046584 AFA20554 */ sw $v0, 0x554($sp) /* 078F78 7F046588 00002025 */ move $a0, $zero /* 078F7C 7F04658C 18600048 */ blez $v1, .L7F0466B0 /* 078F80 7F046590 3C018005 */ lui $at, %hi(D_80052AB4) # $at, 0x8005 /* 078F84 7F046594 C42E8BF4 */ lwc1 $f14, %lo(D_80052AB4)($at) /* 078F88 7F046598 C7AA069C */ lwc1 $f10, 0x69c($sp) .L7F04659C: /* 078F8C 7F04659C C6040004 */ lwc1 $f4, 4($s0) /* 078F90 7F0465A0 C7A606A4 */ lwc1 $f6, 0x6a4($sp) /* 078F94 7F0465A4 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 078F98 7F0465A8 46045200 */ add.s $f8, $f10, $f4 /* 078F9C 7F0465AC E7A8069C */ swc1 $f8, 0x69c($sp) /* 078FA0 7F0465B0 C60A000C */ lwc1 $f10, 0xc($s0) /* 078FA4 7F0465B4 460A3100 */ add.s $f4, $f6, $f10 /* 078FA8 7F0465B8 44813000 */ mtc1 $at, $f6 /* 078FAC 7F0465BC E7A406A4 */ swc1 $f4, 0x6a4($sp) /* 078FB0 7F0465C0 C6080060 */ lwc1 $f8, 0x60($s0) /* 078FB4 7F0465C4 4608303E */ c.le.s $f6, $f8 /* 078FB8 7F0465C8 00000000 */ nop /* 078FBC 7F0465CC 45020035 */ bc1fl .L7F0466A4 /* 078FC0 7F0465D0 24840001 */ addiu $a0, $a0, 1 /* 078FC4 7F0465D4 C60A0094 */ lwc1 $f10, 0x94($s0) /* 078FC8 7F0465D8 460AB03C */ c.lt.s $f22, $f10 /* 078FCC 7F0465DC 00000000 */ nop /* 078FD0 7F0465E0 45020027 */ bc1fl .L7F046680 /* 078FD4 7F0465E4 C6060004 */ lwc1 $f6, 4($s0) /* 078FD8 7F0465E8 C600000C */ lwc1 $f0, 0xc($s0) /* 078FDC 7F0465EC C6020004 */ lwc1 $f2, 4($s0) /* 078FE0 7F0465F0 AFA40550 */ sw $a0, 0x550($sp) /* 078FE4 7F0465F4 46000102 */ mul.s $f4, $f0, $f0 /* 078FE8 7F0465F8 00000000 */ nop /* 078FEC 7F0465FC 46021202 */ mul.s $f8, $f2, $f2 /* 078FF0 7F046600 0C007614 */ jal sqrtf /* 078FF4 7F046604 46082300 */ add.s $f12, $f4, $f8 /* 078FF8 7F046608 3C018005 */ lui $at, %hi(D_80052AB8) # $at, 0x8005 /* 078FFC 7F04660C C42E8BF8 */ lwc1 $f14, %lo(D_80052AB8)($at) /* 079000 7F046610 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 /* 079004 7F046614 C42A1004 */ lwc1 $f10, %lo(g_GlobalTimerDelta)($at) /* 079008 7F046618 C6060094 */ lwc1 $f6, 0x94($s0) /* 07900C 7F04661C 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 079010 7F046620 44814000 */ mtc1 $at, $f8 /* 079014 7F046624 460A3102 */ mul.s $f4, $f6, $f10 /* 079018 7F046628 8FA40550 */ lw $a0, 0x550($sp) /* 07901C 7F04662C 3C038004 */ lui $v1, %hi(g_ClockTimer) # $v1, 0x8004 /* 079020 7F046630 46002303 */ div.s $f12, $f4, $f0 /* 079024 7F046634 460C403E */ c.le.s $f8, $f12 /* 079028 7F046638 00000000 */ nop /* 07902C 7F04663C 45020005 */ bc1fl .L7F046654 /* 079030 7F046640 C6020004 */ lwc1 $f2, 4($s0) /* 079034 7F046644 E6160004 */ swc1 $f22, 4($s0) /* 079038 7F046648 1000000A */ b .L7F046674 /* 07903C 7F04664C E616000C */ swc1 $f22, 0xc($s0) /* 079040 7F046650 C6020004 */ lwc1 $f2, 4($s0) .L7F046654: /* 079044 7F046654 C600000C */ lwc1 $f0, 0xc($s0) /* 079048 7F046658 460C1182 */ mul.s $f6, $f2, $f12 /* 07904C 7F04665C 00000000 */ nop /* 079050 7F046660 460C0102 */ mul.s $f4, $f0, $f12 /* 079054 7F046664 46061281 */ sub.s $f10, $f2, $f6 /* 079058 7F046668 46040201 */ sub.s $f8, $f0, $f4 /* 07905C 7F04666C E60A0004 */ swc1 $f10, 4($s0) /* 079060 7F046670 E608000C */ swc1 $f8, 0xc($s0) .L7F046674: /* 079064 7F046674 1000000A */ b .L7F0466A0 /* 079068 7F046678 8C630FF4 */ lw $v1, %lo(g_ClockTimer)($v1) /* 07906C 7F04667C C6060004 */ lwc1 $f6, 4($s0) .L7F046680: /* 079070 7F046680 C604000C */ lwc1 $f4, 0xc($s0) /* 079074 7F046684 3C038004 */ lui $v1, %hi(g_ClockTimer) # $v1, 0x8004 /* 079078 7F046688 460E3282 */ mul.s $f10, $f6, $f14 /* 07907C 7F04668C 00000000 */ nop /* 079080 7F046690 460E2202 */ mul.s $f8, $f4, $f14 /* 079084 7F046694 E60A0004 */ swc1 $f10, 4($s0) /* 079088 7F046698 E608000C */ swc1 $f8, 0xc($s0) /* 07908C 7F04669C 8C630FF4 */ lw $v1, %lo(g_ClockTimer)($v1) .L7F0466A0: /* 079090 7F0466A0 24840001 */ addiu $a0, $a0, 1 .L7F0466A4: /* 079094 7F0466A4 0083082A */ slt $at, $a0, $v1 /* 079098 7F0466A8 5420FFBC */ bnezl $at, .L7F04659C /* 07909C 7F0466AC C7AA069C */ lwc1 $f10, 0x69c($sp) .L7F0466B0: /* 0790A0 7F0466B0 02202025 */ move $a0, $s1 /* 0790A4 7F0466B4 27A5069C */ addiu $a1, $sp, 0x69c /* 0790A8 7F0466B8 27A60538 */ addiu $a2, $sp, 0x538 /* 0790AC 7F0466BC 27A70544 */ addiu $a3, $sp, 0x544 /* 0790B0 7F0466C0 AFA00010 */ sw $zero, 0x10($sp) /* 0790B4 7F0466C4 0FC10BDD */ jal sub_GAME_7F042EB4 /* 0790B8 7F0466C8 AFA00014 */ sw $zero, 0x14($sp) /* 0790BC 7F0466CC 24090001 */ li $t1, 1 /* 0790C0 7F0466D0 AFA90698 */ sw $t1, 0x698($sp) /* 0790C4 7F0466D4 8E660010 */ lw $a2, 0x10($s3) /* 0790C8 7F0466D8 8E650008 */ lw $a1, 8($s3) /* 0790CC 7F0466DC 0FC2C70C */ jal stanGetPositionYValue /* 0790D0 7F0466E0 8E640014 */ lw $a0, 0x14($s3) /* 0790D4 7F0466E4 46000506 */ mov.s $f20, $f0 /* 0790D8 7F0466E8 8FA40554 */ lw $a0, 0x554($sp) /* 0790DC 7F0466EC 0FC0FA9F */ jal chrpropSumMatrixPosY /* 0790E0 7F0466F0 8FA50074 */ lw $a1, 0x74($sp) /* 0790E4 7F0466F4 3C018005 */ lui $at, %hi(D_80052ABC) # $at, 0x8005 /* 0790E8 7F0466F8 C42E8BFC */ lwc1 $f14, %lo(D_80052ABC)($at) /* 0790EC 7F0466FC 4600A181 */ sub.s $f6, $f20, $f0 /* 0790F0 7F046700 3C014080 */ li $at, 0x40800000 # 4.000000 /* 0790F4 7F046704 44815000 */ mtc1 $at, $f10 /* 0790F8 7F046708 3C018005 */ lui $at, %hi(D_80052AC0) # $at, 0x8005 /* 0790FC 7F04670C 460A3300 */ add.s $f12, $f6, $f10 /* 079100 7F046710 E66C000C */ swc1 $f12, 0xc($s3) /* 079104 7F046714 E62C005C */ swc1 $f12, 0x5c($s1) /* 079108 7F046718 C6020004 */ lwc1 $f2, 4($s0) /* 07910C 7F04671C 460E103C */ c.lt.s $f2, $f14 /* 079110 7F046720 00000000 */ nop /* 079114 7F046724 45000013 */ bc1f .L7F046774 /* 079118 7F046728 00000000 */ nop /* 07911C 7F04672C C4248C00 */ lwc1 $f4, %lo(D_80052AC0)($at) /* 079120 7F046730 4602203C */ c.lt.s $f4, $f2 /* 079124 7F046734 00000000 */ nop /* 079128 7F046738 4500000E */ bc1f .L7F046774 /* 07912C 7F04673C 00000000 */ nop /* 079130 7F046740 C600000C */ lwc1 $f0, 0xc($s0) /* 079134 7F046744 3C018005 */ lui $at, %hi(D_80052AC4) # $at, 0x8005 /* 079138 7F046748 460E003C */ c.lt.s $f0, $f14 /* 07913C 7F04674C 00000000 */ nop /* 079140 7F046750 45000008 */ bc1f .L7F046774 /* 079144 7F046754 00000000 */ nop /* 079148 7F046758 C4288C04 */ lwc1 $f8, %lo(D_80052AC4)($at) /* 07914C 7F04675C 4600403C */ c.lt.s $f8, $f0 /* 079150 7F046760 00000000 */ nop /* 079154 7F046764 45000003 */ bc1f .L7F046774 /* 079158 7F046768 00000000 */ nop /* 07915C 7F04676C E616000C */ swc1 $f22, 0xc($s0) /* 079160 7F046770 E6160004 */ swc1 $f22, 4($s0) .L7F046774: /* 079164 7F046774 16400005 */ bnez $s2, .L7F04678C /* 079168 7F046778 00000000 */ nop /* 07916C 7F04677C 8E0A0000 */ lw $t2, ($s0) /* 079170 7F046780 31480008 */ andi $t0, $t2, 8 /* 079174 7F046784 51000016 */ beql $t0, $zero, .L7F0467E0 /* 079178 7F046788 8FB90698 */ lw $t9, 0x698($sp) .L7F04678C: /* 07917C 7F04678C 0FC0FF0C */ jal projectileFree /* 079180 7F046790 02002025 */ move $a0, $s0 /* 079184 7F046794 8E2C0064 */ lw $t4, 0x64($s1) /* 079188 7F046798 2401FF7F */ li $at, -129 /* 07918C 7F04679C AE20006C */ sw $zero, 0x6c($s1) /* 079190 7F0467A0 01815824 */ and $t3, $t4, $at /* 079194 7F0467A4 AE2B0064 */ sw $t3, 0x64($s1) /* 079198 7F0467A8 92620001 */ lbu $v0, 1($s3) /* 07919C 7F0467AC 304E0008 */ andi $t6, $v0, 8 /* 0791A0 7F0467B0 11C00002 */ beqz $t6, .L7F0467BC /* 0791A4 7F0467B4 344D0010 */ ori $t5, $v0, 0x10 /* 0791A8 7F0467B8 A26D0001 */ sb $t5, 1($s3) .L7F0467BC: /* 0791AC 7F0467BC 92380003 */ lbu $t8, 3($s1) /* 0791B0 7F0467C0 24010008 */ li $at, 8 /* 0791B4 7F0467C4 57010006 */ bnel $t8, $at, .L7F0467E0 /* 0791B8 7F0467C8 8FB90698 */ lw $t9, 0x698($sp) /* 0791BC 7F0467CC 8E6F0014 */ lw $t7, 0x14($s3) /* 0791C0 7F0467D0 82240080 */ lb $a0, 0x80($s1) /* 0791C4 7F0467D4 0FC15EB9 */ jal objectivestatusCheckDeposit /* 0791C8 7F0467D8 91E50003 */ lbu $a1, 3($t7) .L7F0467DC: /* 0791CC 7F0467DC 8FB90698 */ lw $t9, 0x698($sp) .L7F0467E0: /* 0791D0 7F0467E0 1320000A */ beqz $t9, .L7F04680C /* 0791D4 7F0467E4 02202025 */ move $a0, $s1 /* 0791D8 7F0467E8 0FC10151 */ jal chrobjCollisionRelated /* 0791DC 7F0467EC 26300058 */ addiu $s0, $s1, 0x58 /* 0791E0 7F0467F0 0FC15BE0 */ jal setupUpdateObjectRoomPosition /* 0791E4 7F0467F4 02202025 */ move $a0, $s1 /* 0791E8 7F0467F8 8E240010 */ lw $a0, 0x10($s1) /* 0791EC 7F0467FC 0FC100DD */ jal sub_GAME_7F0402B4 /* 0791F0 7F046800 2625007C */ addiu $a1, $s1, 0x7c /* 0791F4 7F046804 0FC147AB */ jal detonate_proxmine_In_range /* 0791F8 7F046808 02002025 */ move $a0, $s0 .L7F04680C: /* 0791FC 7F04680C 92220003 */ lbu $v0, 3($s1) /* 079200 7F046810 24010001 */ li $at, 1 /* 079204 7F046814 54410059 */ bnel $v0, $at, .L7F04697C /* 079208 7F046818 24010006 */ li $at, 6 /* 07920C 7F04681C 8E700004 */ lw $s0, 4($s3) /* 079210 7F046820 C60600B4 */ lwc1 $f6, 0xb4($s0) /* 079214 7F046824 E7A60684 */ swc1 $f6, 0x684($sp) /* 079218 7F046828 8E0200EC */ lw $v0, 0xec($s0) /* 07921C 7F04682C 5840001A */ blezl $v0, .L7F046898 /* 079220 7F046830 820F00BC */ lb $t7, 0xbc($s0) /* 079224 7F046834 820900BC */ lb $t1, 0xbc($s0) /* 079228 7F046838 55200017 */ bnezl $t1, .L7F046898 /* 07922C 7F04683C 820F00BC */ lb $t7, 0xbc($s0) /* 079230 7F046840 8E0A0008 */ lw $t2, 8($s0) /* 079234 7F046844 3C0C8004 */ lui $t4, %hi(g_GlobalTimer) # $t4, 0x8004 /* 079238 7F046848 000A4000 */ sll $t0, $t2, 0 /* 07923C 7F04684C 05020012 */ bltzl $t0, .L7F046898 /* 079240 7F046850 820F00BC */ lb $t7, 0xbc($s0) /* 079244 7F046854 8E0B00A0 */ lw $t3, 0xa0($s0) /* 079248 7F046858 2401003C */ li $at, 60 /* 07924C 7F04685C 8D8C0FFC */ lw $t4, %lo(g_GlobalTimer)($t4) /* 079250 7F046860 000B7080 */ sll $t6, $t3, 2 /* 079254 7F046864 01CB7023 */ subu $t6, $t6, $t3 /* 079258 7F046868 000E70C0 */ sll $t6, $t6, 3 /* 07925C 7F04686C 01CB7021 */ addu $t6, $t6, $t3 /* 079260 7F046870 000E7040 */ sll $t6, $t6, 1 /* 079264 7F046874 01C1001A */ div $zero, $t6, $at /* 079268 7F046878 00006812 */ mflo $t5 /* 07926C 7F04687C 018DC023 */ subu $t8, $t4, $t5 /* 079270 7F046880 0058082A */ slt $at, $v0, $t8 /* 079274 7F046884 10200003 */ beqz $at, .L7F046894 /* 079278 7F046888 02002025 */ move $a0, $s0 /* 07927C 7F04688C 0FC1531A */ jal doorActivate /* 079280 7F046890 24050002 */ li $a1, 2 .L7F046894: /* 079284 7F046894 820F00BC */ lb $t7, 0xbc($s0) .L7F046898: /* 079288 7F046898 24010003 */ li $at, 3 /* 07928C 7F04689C 55E1001B */ bnel $t7, $at, .L7F04690C /* 079290 7F0468A0 9609009A */ lhu $t1, 0x9a($s0) /* 079294 7F0468A4 8E0200C8 */ lw $v0, 0xc8($s0) /* 079298 7F0468A8 24030001 */ li $v1, 1 /* 07929C 7F0468AC 02002025 */ move $a0, $s0 /* 0792A0 7F0468B0 10400011 */ beqz $v0, .L7F0468F8 /* 0792A4 7F0468B4 00000000 */ nop /* 0792A8 7F0468B8 1050000F */ beq $v0, $s0, .L7F0468F8 /* 0792AC 7F0468BC 00000000 */ nop /* 0792B0 7F0468C0 805900BC */ lb $t9, 0xbc($v0) .L7F0468C4: /* 0792B4 7F0468C4 57200007 */ bnezl $t9, .L7F0468E4 /* 0792B8 7F0468C8 00001825 */ move $v1, $zero /* 0792BC 7F0468CC C44A00B4 */ lwc1 $f10, 0xb4($v0) /* 0792C0 7F0468D0 460AB03C */ c.lt.s $f22, $f10 /* 0792C4 7F0468D4 00000000 */ nop /* 0792C8 7F0468D8 45020003 */ bc1fl .L7F0468E8 /* 0792CC 7F0468DC 8C4200C8 */ lw $v0, 0xc8($v0) /* 0792D0 7F0468E0 00001825 */ move $v1, $zero .L7F0468E4: /* 0792D4 7F0468E4 8C4200C8 */ lw $v0, 0xc8($v0) .L7F0468E8: /* 0792D8 7F0468E8 10400003 */ beqz $v0, .L7F0468F8 /* 0792DC 7F0468EC 00000000 */ nop /* 0792E0 7F0468F0 5450FFF4 */ bnel $v0, $s0, .L7F0468C4 /* 0792E4 7F0468F4 805900BC */ lb $t9, 0xbc($v0) .L7F0468F8: /* 0792E8 7F0468F8 50600004 */ beql $v1, $zero, .L7F04690C /* 0792EC 7F0468FC 9609009A */ lhu $t1, 0x9a($s0) /* 0792F0 7F046900 0FC152E1 */ jal doorSetOpenState /* 0792F4 7F046904 24050001 */ li $a1, 1 /* 0792F8 7F046908 9609009A */ lhu $t1, 0x9a($s0) .L7F04690C: /* 0792FC 7F04690C 24010008 */ li $at, 8 /* 079300 7F046910 1521000B */ bne $t1, $at, .L7F046940 /* 079304 7F046914 00000000 */ nop /* 079308 7F046918 0FC15340 */ jal doorIsClosed /* 07930C 7F04691C 02002025 */ move $a0, $s0 /* 079310 7F046920 10400007 */ beqz $v0, .L7F046940 /* 079314 7F046924 00000000 */ nop /* 079318 7F046928 0FC0F9F6 */ jal doorIsPadlockFree /* 07931C 7F04692C 02002025 */ move $a0, $s0 /* 079320 7F046930 10400003 */ beqz $v0, .L7F046940 /* 079324 7F046934 00000000 */ nop /* 079328 7F046938 0FC1571F */ jal doorActivateWrapper /* 07932C 7F04693C 02602025 */ move $a0, $s3 .L7F046940: /* 079330 7F046940 3C088004 */ lui $t0, %hi(g_GlobalTimer) # $t0, 0x8004 /* 079334 7F046944 8D080FFC */ lw $t0, %lo(g_GlobalTimer)($t0) /* 079338 7F046948 8E0A00FC */ lw $t2, 0xfc($s0) /* 07933C 7F04694C 3C0B8004 */ lui $t3, %hi(g_ClockTimer) # $t3, 0x8004 /* 079340 7F046950 0148082A */ slt $at, $t2, $t0 /* 079344 7F046954 14200004 */ bnez $at, .L7F046968 /* 079348 7F046958 00000000 */ nop /* 07934C 7F04695C 8D6B0FF4 */ lw $t3, %lo(g_ClockTimer)($t3) /* 079350 7F046960 556006AB */ bnezl $t3, .L7F048410 /* 079354 7F046964 92220003 */ lbu $v0, 3($s1) .L7F046968: /* 079358 7F046968 0FC154A5 */ jal door7F054FB4 /* 07935C 7F04696C 02002025 */ move $a0, $s0 /* 079360 7F046970 100006A7 */ b .L7F048410 /* 079364 7F046974 92220003 */ lbu $v0, 3($s1) /* 079368 7F046978 24010006 */ li $at, 6 .L7F04697C: /* 07936C 7F04697C 54410130 */ bnel $v0, $at, .L7F046E40 /* 079370 7F046980 2401000D */ li $at, 13 /* 079374 7F046984 8E2E0008 */ lw $t6, 8($s1) /* 079378 7F046988 000E60C0 */ sll $t4, $t6, 3 /* 07937C 7F04698C 0582012C */ bltzl $t4, .L7F046E40 /* 079380 7F046990 2401000D */ li $at, 13 /* 079384 7F046994 8E700004 */ lw $s0, 4($s3) /* 079388 7F046998 8E0D00D4 */ lw $t5, 0xd4($s0) /* 07938C 7F04699C 51A00004 */ beql $t5, $zero, .L7F0469B0 /* 079390 7F0469A0 C61200D0 */ lwc1 $f18, 0xd0($s0) /* 079394 7F0469A4 10000002 */ b .L7F0469B0 /* 079398 7F0469A8 C61200CC */ lwc1 $f18, 0xcc($s0) /* 07939C 7F0469AC C61200D0 */ lwc1 $f18, 0xd0($s0) .L7F0469B0: /* 0793A0 7F0469B0 0FC22640 */ jal get_curplayer_positiondata /* 0793A4 7F0469B4 E7B2051C */ swc1 $f18, 0x51c($sp) /* 0793A8 7F0469B8 AFA20518 */ sw $v0, 0x518($sp) /* 0793AC 7F0469BC C6280058 */ lwc1 $f8, 0x58($s1) /* 0793B0 7F0469C0 C4440008 */ lwc1 $f4, 8($v0) /* 0793B4 7F0469C4 C60000E8 */ lwc1 $f0, 0xe8($s0) /* 0793B8 7F0469C8 C62A005C */ lwc1 $f10, 0x5c($s1) /* 0793BC 7F0469CC 46082301 */ sub.s $f12, $f4, $f8 /* 0793C0 7F0469D0 C446000C */ lwc1 $f6, 0xc($v0) /* 0793C4 7F0469D4 C6280060 */ lwc1 $f8, 0x60($s1) /* 0793C8 7F0469D8 4600B03C */ c.lt.s $f22, $f0 /* 0793CC 7F0469DC C4440010 */ lwc1 $f4, 0x10($v0) /* 0793D0 7F0469E0 C7B2051C */ lwc1 $f18, 0x51c($sp) /* 0793D4 7F0469E4 24120001 */ li $s2, 1 /* 0793D8 7F0469E8 460A3081 */ sub.s $f2, $f6, $f10 /* 0793DC 7F0469EC 4500000E */ bc1f .L7F046A28 /* 0793E0 7F0469F0 46082381 */ sub.s $f14, $f4, $f8 /* 0793E4 7F0469F4 46000182 */ mul.s $f6, $f0, $f0 /* 0793E8 7F0469F8 00000000 */ nop /* 0793EC 7F0469FC 460C6282 */ mul.s $f10, $f12, $f12 /* 0793F0 7F046A00 00000000 */ nop /* 0793F4 7F046A04 46021102 */ mul.s $f4, $f2, $f2 /* 0793F8 7F046A08 46045200 */ add.s $f8, $f10, $f4 /* 0793FC 7F046A0C 460E7282 */ mul.s $f10, $f14, $f14 /* 079400 7F046A10 460A4100 */ add.s $f4, $f8, $f10 /* 079404 7F046A14 4604303C */ c.lt.s $f6, $f4 /* 079408 7F046A18 00000000 */ nop /* 07940C 7F046A1C 45000002 */ bc1f .L7F046A28 /* 079410 7F046A20 00000000 */ nop /* 079414 7F046A24 00009025 */ move $s2, $zero .L7F046A28: /* 079418 7F046A28 8E380008 */ lw $t8, 8($s1) /* 07941C 7F046A2C 00187880 */ sll $t7, $t8, 2 /* 079420 7F046A30 05E10002 */ bgez $t7, .L7F046A3C /* 079424 7F046A34 00000000 */ nop /* 079428 7F046A38 00009025 */ move $s2, $zero .L7F046A3C: /* 07942C 7F046A3C 1240003A */ beqz $s2, .L7F046B28 /* 079430 7F046A40 00000000 */ nop /* 079434 7F046A44 0FC16BB8 */ jal atan2f /* 079438 7F046A48 E7B2051C */ swc1 $f18, 0x51c($sp) /* 07943C 7F046A4C C60200C8 */ lwc1 $f2, 0xc8($s0) /* 079440 7F046A50 C7B2051C */ lwc1 $f18, 0x51c($sp) /* 079444 7F046A54 3C018005 */ lui $at, %hi(D_80052ACC) /* 079448 7F046A58 4616103C */ c.lt.s $f2, $f22 /* 07944C 7F046A5C 00000000 */ nop /* 079450 7F046A60 45000005 */ bc1f .L7F046A78 /* 079454 7F046A64 00000000 */ nop /* 079458 7F046A68 3C018005 */ lui $at, %hi(D_80052AC8) # $at, 0x8005 /* 07945C 7F046A6C C4348C08 */ lwc1 $f20, %lo(D_80052AC8)($at) /* 079460 7F046A70 10000007 */ b .L7F046A90 /* 079464 7F046A74 46141080 */ add.s $f2, $f2, $f20 .L7F046A78: /* 079468 7F046A78 C4348C0C */ lwc1 $f20, %lo(D_80052ACC)($at) /* 07946C 7F046A7C 4602A03E */ c.le.s $f20, $f2 /* 079470 7F046A80 00000000 */ nop /* 079474 7F046A84 45020003 */ bc1fl .L7F046A94 /* 079478 7F046A88 C60800C4 */ lwc1 $f8, 0xc4($s0) /* 07947C 7F046A8C 46141081 */ sub.s $f2, $f2, $f20 .L7F046A90: /* 079480 7F046A90 C60800C4 */ lwc1 $f8, 0xc4($s0) .L7F046A94: /* 079484 7F046A94 3C018005 */ lui $at, %hi(D_80052AD0) # $at, 0x8005 /* 079488 7F046A98 46081080 */ add.s $f2, $f2, $f8 /* 07948C 7F046A9C 4602A03E */ c.le.s $f20, $f2 /* 079490 7F046AA0 00000000 */ nop /* 079494 7F046AA4 45020003 */ bc1fl .L7F046AB4 /* 079498 7F046AA8 4602003C */ c.lt.s $f0, $f2 /* 07949C 7F046AAC 46141081 */ sub.s $f2, $f2, $f20 /* 0794A0 7F046AB0 4602003C */ c.lt.s $f0, $f2 .L7F046AB4: /* 0794A4 7F046AB4 46020381 */ sub.s $f14, $f0, $f2 /* 0794A8 7F046AB8 45000002 */ bc1f .L7F046AC4 /* 0794AC 7F046ABC 46007306 */ mov.s $f12, $f14 /* 0794B0 7F046AC0 46147300 */ add.s $f12, $f14, $f20 .L7F046AC4: /* 0794B4 7F046AC4 C4208C10 */ lwc1 $f0, %lo(D_80052AD0)($at) /* 0794B8 7F046AC8 3C018005 */ lui $at, %hi(D_80052AD4) # $at, 0x8005 /* 0794BC 7F046ACC 46006301 */ sub.s $f12, $f12, $f0 /* 0794C0 7F046AD0 4616603C */ c.lt.s $f12, $f22 /* 0794C4 7F046AD4 00000000 */ nop /* 0794C8 7F046AD8 45020003 */ bc1fl .L7F046AE8 /* 0794CC 7F046ADC 460C003C */ c.lt.s $f0, $f12 /* 0794D0 7F046AE0 46146300 */ add.s $f12, $f12, $f20 /* 0794D4 7F046AE4 460C003C */ c.lt.s $f0, $f12 .L7F046AE8: /* 0794D8 7F046AE8 00000000 */ nop /* 0794DC 7F046AEC 45000002 */ bc1f .L7F046AF8 /* 0794E0 7F046AF0 00000000 */ nop /* 0794E4 7F046AF4 46146301 */ sub.s $f12, $f12, $f20 .L7F046AF8: /* 0794E8 7F046AF8 C42A8C14 */ lwc1 $f10, %lo(D_80052AD4)($at) /* 0794EC 7F046AFC 3C018005 */ lui $at, %hi(D_80052AD8) /* 0794F0 7F046B00 460C503C */ c.lt.s $f10, $f12 /* 0794F4 7F046B04 00000000 */ nop /* 0794F8 7F046B08 45030007 */ bc1tl .L7F046B28 /* 0794FC 7F046B0C 00009025 */ move $s2, $zero /* 079500 7F046B10 C4268C18 */ lwc1 $f6, %lo(D_80052AD8)($at) /* 079504 7F046B14 4606603C */ c.lt.s $f12, $f6 /* 079508 7F046B18 00000000 */ nop /* 07950C 7F046B1C 45000002 */ bc1f .L7F046B28 /* 079510 7F046B20 00000000 */ nop /* 079514 7F046B24 00009025 */ move $s2, $zero .L7F046B28: /* 079518 7F046B28 12400034 */ beqz $s2, .L7F046BFC /* 07951C 7F046B2C 00002825 */ move $a1, $zero /* 079520 7F046B30 8E790014 */ lw $t9, 0x14($s3) /* 079524 7F046B34 E7B2051C */ swc1 $f18, 0x51c($sp) /* 079528 7F046B38 8FA40518 */ lw $a0, 0x518($sp) /* 07952C 7F046B3C 0FC22882 */ jal bondviewUpdateGuardTankFlagsRelated /* 079530 7F046B40 AFB904F4 */ sw $t9, 0x4f4($sp) /* 079534 7F046B44 8FA20518 */ lw $v0, 0x518($sp) /* 079538 7F046B48 3C0142C8 */ li $at, 0x42C80000 # 100.000000 /* 07953C 7F046B4C 8E650008 */ lw $a1, 8($s3) /* 079540 7F046B50 C4440010 */ lwc1 $f4, 0x10($v0) /* 079544 7F046B54 8E660010 */ lw $a2, 0x10($s3) /* 079548 7F046B58 8C470008 */ lw $a3, 8($v0) /* 07954C 7F046B5C 44814000 */ mtc1 $at, $f8 /* 079550 7F046B60 44815000 */ mtc1 $at, $f10 /* 079554 7F046B64 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 079558 7F046B68 44813000 */ mtc1 $at, $f6 /* 07955C 7F046B6C 2409001B */ li $t1, 27 /* 079560 7F046B70 AFA90014 */ sw $t1, 0x14($sp) /* 079564 7F046B74 E7B60020 */ swc1 $f22, 0x20($sp) /* 079568 7F046B78 27A404F4 */ addiu $a0, $sp, 0x4f4 /* 07956C 7F046B7C E7A40010 */ swc1 $f4, 0x10($sp) /* 079570 7F046B80 E7A80018 */ swc1 $f8, 0x18($sp) /* 079574 7F046B84 E7AA001C */ swc1 $f10, 0x1c($sp) /* 079578 7F046B88 0FC2C039 */ jal stanTestLineUnobstructed /* 07957C 7F046B8C E7A60024 */ swc1 $f6, 0x24($sp) /* 079580 7F046B90 10400015 */ beqz $v0, .L7F046BE8 /* 079584 7F046B94 C7B2051C */ lwc1 $f18, 0x51c($sp) /* 079588 7F046B98 3C088004 */ lui $t0, %hi(g_ClockTimer) # $t0, 0x8004 /* 07958C 7F046B9C 8D080FF4 */ lw $t0, %lo(g_ClockTimer)($t0) /* 079590 7F046BA0 8E0A00E0 */ lw $t2, 0xe0($s0) /* 079594 7F046BA4 3C01437A */ li $at, 0x437A0000 # 250.000000 /* 079598 7F046BA8 44812000 */ mtc1 $at, $f4 /* 07959C 7F046BAC 01485821 */ addu $t3, $t2, $t0 /* 0795A0 7F046BB0 AE0B00E0 */ sw $t3, 0xe0($s0) /* 0795A4 7F046BB4 3C018003 */ lui $at, %hi(F_80030B14) # $at, 0x8003 /* 0795A8 7F046BB8 C428C064 */ lwc1 $f8, %lo(F_80030B14)($at) /* 0795AC 7F046BBC 46082282 */ mul.s $f10, $f4, $f8 /* 0795B0 7F046BC0 4600518D */ trunc.w.s $f6, $f10 /* 0795B4 7F046BC4 440D3000 */ mfc1 $t5, $f6 /* 0795B8 7F046BC8 00000000 */ nop /* 0795BC 7F046BCC 016D082A */ slt $at, $t3, $t5 /* 0795C0 7F046BD0 54200006 */ bnezl $at, .L7F046BEC /* 0795C4 7F046BD4 8FA40518 */ lw $a0, 0x518($sp) /* 0795C8 7F046BD8 0FC1582A */ jal alarmActivate /* 0795CC 7F046BDC E7B2051C */ swc1 $f18, 0x51c($sp) /* 0795D0 7F046BE0 C7B2051C */ lwc1 $f18, 0x51c($sp) /* 0795D4 7F046BE4 AE0000E0 */ sw $zero, 0xe0($s0) .L7F046BE8: /* 0795D8 7F046BE8 8FA40518 */ lw $a0, 0x518($sp) .L7F046BEC: /* 0795DC 7F046BEC 24050001 */ li $a1, 1 /* 0795E0 7F046BF0 0FC22882 */ jal bondviewUpdateGuardTankFlagsRelated /* 0795E4 7F046BF4 E7B2051C */ swc1 $f18, 0x51c($sp) /* 0795E8 7F046BF8 C7B2051C */ lwc1 $f18, 0x51c($sp) .L7F046BFC: /* 0795EC 7F046BFC C60E00C8 */ lwc1 $f14, 0xc8($s0) /* 0795F0 7F046C00 4612703C */ c.lt.s $f14, $f18 /* 0795F4 7F046C04 00000000 */ nop /* 0795F8 7F046C08 45020047 */ bc1fl .L7F046D28 /* 0795FC 7F046C0C C60000D8 */ lwc1 $f0, 0xd8($s0) /* 079600 7F046C10 C60000D8 */ lwc1 $f0, 0xd8($s0) /* 079604 7F046C14 3C018005 */ lui $at, %hi(D_80052AE0) # $at, 0x8005 /* 079608 7F046C18 C4308C20 */ lwc1 $f16, %lo(D_80052AE0)($at) /* 07960C 7F046C1C 46000102 */ mul.s $f4, $f0, $f0 /* 079610 7F046C20 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 079614 7F046C24 44814000 */ mtc1 $at, $f8 /* 079618 7F046C28 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 /* 07961C 7F046C2C 46082282 */ mul.s $f10, $f4, $f8 /* 079620 7F046C30 46105083 */ div.s $f2, $f10, $f16 /* 079624 7F046C34 46029181 */ sub.s $f6, $f18, $f2 /* 079628 7F046C38 460E303E */ c.le.s $f6, $f14 /* 07962C 7F046C3C 00000000 */ nop /* 079630 7F046C40 4502000F */ bc1fl .L7F046C80 /* 079634 7F046C44 C60C00DC */ lwc1 $f12, 0xdc($s0) /* 079638 7F046C48 C4241004 */ lwc1 $f4, %lo(g_GlobalTimerDelta)($at) /* 07963C 7F046C4C 46048202 */ mul.s $f8, $f16, $f4 /* 079640 7F046C50 46080281 */ sub.s $f10, $f0, $f8 /* 079644 7F046C54 E60A00D8 */ swc1 $f10, 0xd8($s0) /* 079648 7F046C58 C60000D8 */ lwc1 $f0, 0xd8($s0) /* 07964C 7F046C5C 4610003C */ c.lt.s $f0, $f16 /* 079650 7F046C60 00000000 */ nop /* 079654 7F046C64 45000003 */ bc1f .L7F046C74 /* 079658 7F046C68 00000000 */ nop /* 07965C 7F046C6C E61000D8 */ swc1 $f16, 0xd8($s0) /* 079660 7F046C70 C60000D8 */ lwc1 $f0, 0xd8($s0) .L7F046C74: /* 079664 7F046C74 1000001D */ b .L7F046CEC /* 079668 7F046C78 C60E00C8 */ lwc1 $f14, 0xc8($s0) /* 07966C 7F046C7C C60C00DC */ lwc1 $f12, 0xdc($s0) .L7F046C80: /* 079670 7F046C80 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 /* 079674 7F046C84 460C003C */ c.lt.s $f0, $f12 /* 079678 7F046C88 00000000 */ nop /* 07967C 7F046C8C 45000017 */ bc1f .L7F046CEC /* 079680 7F046C90 00000000 */ nop /* 079684 7F046C94 C4261004 */ lwc1 $f6, %lo(g_GlobalTimerDelta)($at) /* 079688 7F046C98 46068102 */ mul.s $f4, $f16, $f6 /* 07968C 7F046C9C 46040080 */ add.s $f2, $f0, $f4 /* 079690 7F046CA0 4602603C */ c.lt.s $f12, $f2 /* 079694 7F046CA4 00000000 */ nop /* 079698 7F046CA8 45000002 */ bc1f .L7F046CB4 /* 07969C 7F046CAC 00000000 */ nop /* 0796A0 7F046CB0 46006086 */ mov.s $f2, $f12 .L7F046CB4: /* 0796A4 7F046CB4 46021202 */ mul.s $f8, $f2, $f2 /* 0796A8 7F046CB8 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 0796AC 7F046CBC 44815000 */ mtc1 $at, $f10 /* 0796B0 7F046CC0 00000000 */ nop /* 0796B4 7F046CC4 460A4182 */ mul.s $f6, $f8, $f10 /* 0796B8 7F046CC8 46103103 */ div.s $f4, $f6, $f16 /* 0796BC 7F046CCC 46049201 */ sub.s $f8, $f18, $f4 /* 0796C0 7F046CD0 4608703C */ c.lt.s $f14, $f8 /* 0796C4 7F046CD4 00000000 */ nop /* 0796C8 7F046CD8 45000004 */ bc1f .L7F046CEC /* 0796CC 7F046CDC 00000000 */ nop /* 0796D0 7F046CE0 E60200D8 */ swc1 $f2, 0xd8($s0) /* 0796D4 7F046CE4 C60000D8 */ lwc1 $f0, 0xd8($s0) /* 0796D8 7F046CE8 C60E00C8 */ lwc1 $f14, 0xc8($s0) .L7F046CEC: /* 0796DC 7F046CEC 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 /* 0796E0 7F046CF0 C42A1004 */ lwc1 $f10, %lo(g_GlobalTimerDelta)($at) /* 0796E4 7F046CF4 460A0182 */ mul.s $f6, $f0, $f10 /* 0796E8 7F046CF8 46067100 */ add.s $f4, $f14, $f6 /* 0796EC 7F046CFC E60400C8 */ swc1 $f4, 0xc8($s0) /* 0796F0 7F046D00 C60800C8 */ lwc1 $f8, 0xc8($s0) /* 0796F4 7F046D04 4608903E */ c.le.s $f18, $f8 /* 0796F8 7F046D08 00000000 */ nop /* 0796FC 7F046D0C 450205C0 */ bc1fl .L7F048410 /* 079700 7F046D10 92220003 */ lbu $v0, 3($s1) /* 079704 7F046D14 E61200C8 */ swc1 $f18, 0xc8($s0) /* 079708 7F046D18 E61600D8 */ swc1 $f22, 0xd8($s0) /* 07970C 7F046D1C 100005BB */ b .L7F04840C /* 079710 7F046D20 AE0000D4 */ sw $zero, 0xd4($s0) /* 079714 7F046D24 C60000D8 */ lwc1 $f0, 0xd8($s0) .L7F046D28: /* 079718 7F046D28 3C018005 */ lui $at, %hi(D_80052AE4) # $at, 0x8005 /* 07971C 7F046D2C C4308C24 */ lwc1 $f16, %lo(D_80052AE4)($at) /* 079720 7F046D30 46000282 */ mul.s $f10, $f0, $f0 /* 079724 7F046D34 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 079728 7F046D38 44813000 */ mtc1 $at, $f6 /* 07972C 7F046D3C 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 /* 079730 7F046D40 24180001 */ li $t8, 1 /* 079734 7F046D44 46065102 */ mul.s $f4, $f10, $f6 /* 079738 7F046D48 46102083 */ div.s $f2, $f4, $f16 /* 07973C 7F046D4C 46029200 */ add.s $f8, $f18, $f2 /* 079740 7F046D50 4608703E */ c.le.s $f14, $f8 /* 079744 7F046D54 00000000 */ nop /* 079748 7F046D58 4502000F */ bc1fl .L7F046D98 /* 07974C 7F046D5C C60C00DC */ lwc1 $f12, 0xdc($s0) /* 079750 7F046D60 C42A1004 */ lwc1 $f10, %lo(g_GlobalTimerDelta)($at) /* 079754 7F046D64 460A8182 */ mul.s $f6, $f16, $f10 /* 079758 7F046D68 46060101 */ sub.s $f4, $f0, $f6 /* 07975C 7F046D6C E60400D8 */ swc1 $f4, 0xd8($s0) /* 079760 7F046D70 C60000D8 */ lwc1 $f0, 0xd8($s0) /* 079764 7F046D74 4610003C */ c.lt.s $f0, $f16 /* 079768 7F046D78 00000000 */ nop /* 07976C 7F046D7C 45000003 */ bc1f .L7F046D8C /* 079770 7F046D80 00000000 */ nop /* 079774 7F046D84 E61000D8 */ swc1 $f16, 0xd8($s0) /* 079778 7F046D88 C60000D8 */ lwc1 $f0, 0xd8($s0) .L7F046D8C: /* 07977C 7F046D8C 1000001D */ b .L7F046E04 /* 079780 7F046D90 C60E00C8 */ lwc1 $f14, 0xc8($s0) /* 079784 7F046D94 C60C00DC */ lwc1 $f12, 0xdc($s0) .L7F046D98: /* 079788 7F046D98 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 /* 07978C 7F046D9C 460C003C */ c.lt.s $f0, $f12 /* 079790 7F046DA0 00000000 */ nop /* 079794 7F046DA4 45000017 */ bc1f .L7F046E04 /* 079798 7F046DA8 00000000 */ nop /* 07979C 7F046DAC C4281004 */ lwc1 $f8, %lo(g_GlobalTimerDelta)($at) /* 0797A0 7F046DB0 46088282 */ mul.s $f10, $f16, $f8 /* 0797A4 7F046DB4 460A0080 */ add.s $f2, $f0, $f10 /* 0797A8 7F046DB8 4602603C */ c.lt.s $f12, $f2 /* 0797AC 7F046DBC 00000000 */ nop /* 0797B0 7F046DC0 45000002 */ bc1f .L7F046DCC /* 0797B4 7F046DC4 00000000 */ nop /* 0797B8 7F046DC8 46006086 */ mov.s $f2, $f12 .L7F046DCC: /* 0797BC 7F046DCC 46021182 */ mul.s $f6, $f2, $f2 /* 0797C0 7F046DD0 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 0797C4 7F046DD4 44812000 */ mtc1 $at, $f4 /* 0797C8 7F046DD8 00000000 */ nop /* 0797CC 7F046DDC 46043202 */ mul.s $f8, $f6, $f4 /* 0797D0 7F046DE0 46104283 */ div.s $f10, $f8, $f16 /* 0797D4 7F046DE4 460A9180 */ add.s $f6, $f18, $f10 /* 0797D8 7F046DE8 460E303C */ c.lt.s $f6, $f14 /* 0797DC 7F046DEC 00000000 */ nop /* 0797E0 7F046DF0 45000004 */ bc1f .L7F046E04 /* 0797E4 7F046DF4 00000000 */ nop /* 0797E8 7F046DF8 E60200D8 */ swc1 $f2, 0xd8($s0) /* 0797EC 7F046DFC C60000D8 */ lwc1 $f0, 0xd8($s0) /* 0797F0 7F046E00 C60E00C8 */ lwc1 $f14, 0xc8($s0) .L7F046E04: /* 0797F4 7F046E04 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 /* 0797F8 7F046E08 C4241004 */ lwc1 $f4, %lo(g_GlobalTimerDelta)($at) /* 0797FC 7F046E0C 46040202 */ mul.s $f8, $f0, $f4 /* 079800 7F046E10 46087281 */ sub.s $f10, $f14, $f8 /* 079804 7F046E14 E60A00C8 */ swc1 $f10, 0xc8($s0) /* 079808 7F046E18 C60600C8 */ lwc1 $f6, 0xc8($s0) /* 07980C 7F046E1C 4612303E */ c.le.s $f6, $f18 /* 079810 7F046E20 00000000 */ nop /* 079814 7F046E24 4502057A */ bc1fl .L7F048410 /* 079818 7F046E28 92220003 */ lbu $v0, 3($s1) /* 07981C 7F046E2C E61200C8 */ swc1 $f18, 0xc8($s0) /* 079820 7F046E30 E61600D8 */ swc1 $f22, 0xd8($s0) /* 079824 7F046E34 10000575 */ b .L7F04840C /* 079828 7F046E38 AE1800D4 */ sw $t8, 0xd4($s0) /* 07982C 7F046E3C 2401000D */ li $at, 13 .L7F046E40: /* 079830 7F046E40 5441023F */ bnel $v0, $at, .L7F047740 /* 079834 7F046E44 24010027 */ li $at, 39 /* 079838 7F046E48 8E2F0008 */ lw $t7, 8($s1) /* 07983C 7F046E4C 000FC8C0 */ sll $t9, $t7, 3 /* 079840 7F046E50 0722023B */ bltzl $t9, .L7F047740 /* 079844 7F046E54 24010027 */ li $at, 39 /* 079848 7F046E58 0FC22640 */ jal get_curplayer_positiondata /* 07984C 7F046E5C 8E700004 */ lw $s0, 4($s3) /* 079850 7F046E60 AFA004B0 */ sw $zero, 0x4b0($sp) /* 079854 7F046E64 AFA004AC */ sw $zero, 0x4ac($sp) /* 079858 7F046E68 AFA004A8 */ sw $zero, 0x4a8($sp) /* 07985C 7F046E6C 8E23000C */ lw $v1, 0xc($s1) /* 079860 7F046E70 00409025 */ move $s2, $v0 /* 079864 7F046E74 00034800 */ sll $t1, $v1, 0 /* 079868 7F046E78 05210056 */ bgez $t1, .L7F046FD4 /* 07986C 7F046E7C 00035040 */ sll $t2, $v1, 1 /* 079870 7F046E80 05430008 */ bgezl $t2, .L7F046EA4 /* 079874 7F046E84 C6020084 */ lwc1 $f2, 0x84($s0) /* 079878 7F046E88 C6080090 */ lwc1 $f8, 0x90($s0) /* 07987C 7F046E8C C604009C */ lwc1 $f4, 0x9c($s0) /* 079880 7F046E90 E6080084 */ swc1 $f8, 0x84($s0) /* 079884 7F046E94 C6020084 */ lwc1 $f2, 0x84($s0) /* 079888 7F046E98 10000036 */ b .L7F046F74 /* 07988C 7F046E9C E6040098 */ swc1 $f4, 0x98($s0) /* 079890 7F046EA0 C6020084 */ lwc1 $f2, 0x84($s0) .L7F046EA4: /* 079894 7F046EA4 C60A0090 */ lwc1 $f10, 0x90($s0) /* 079898 7F046EA8 460A1032 */ c.eq.s $f2, $f10 /* 07989C 7F046EAC 00000000 */ nop /* 0798A0 7F046EB0 45000030 */ bc1f .L7F046F74 /* 0798A4 7F046EB4 00000000 */ nop /* 0798A8 7F046EB8 C6060098 */ lwc1 $f6, 0x98($s0) /* 0798AC 7F046EBC C604009C */ lwc1 $f4, 0x9c($s0) /* 0798B0 7F046EC0 46043032 */ c.eq.s $f6, $f4 /* 0798B4 7F046EC4 00000000 */ nop /* 0798B8 7F046EC8 4500002A */ bc1f .L7F046F74 /* 0798BC 7F046ECC 00000000 */ nop /* 0798C0 7F046ED0 0C00262C */ jal randomGetNext /* 0798C4 7F046ED4 00000000 */ nop /* 0798C8 7F046ED8 44824000 */ mtc1 $v0, $f8 /* 0798CC 7F046EDC 3C018005 */ lui $at, %hi(D_80052AE8) # $at, 0x8005 /* 0798D0 7F046EE0 C4348C28 */ lwc1 $f20, %lo(D_80052AE8)($at) /* 0798D4 7F046EE4 04410005 */ bgez $v0, .L7F046EFC /* 0798D8 7F046EE8 468042A0 */ cvt.s.w $f10, $f8 /* 0798DC 7F046EEC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 0798E0 7F046EF0 44813000 */ mtc1 $at, $f6 /* 0798E4 7F046EF4 00000000 */ nop /* 0798E8 7F046EF8 46065280 */ add.s $f10, $f10, $f6 .L7F046EFC: /* 0798EC 7F046EFC 3C012F80 */ li $at, 0x2F800000 # 0.000000 /* 0798F0 7F046F00 44812000 */ mtc1 $at, $f4 /* 0798F4 7F046F04 3C01421C */ li $at, 0x421C0000 # 39.000000 /* 0798F8 7F046F08 44813000 */ mtc1 $at, $f6 /* 0798FC 7F046F0C 46045202 */ mul.s $f8, $f10, $f4 /* 079900 7F046F10 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 079904 7F046F14 44812000 */ mtc1 $at, $f4 /* 079908 7F046F18 3C0143B4 */ li $at, 0x43B40000 # 360.000000 /* 07990C 7F046F1C 46064282 */ mul.s $f10, $f8, $f6 /* 079910 7F046F20 46045200 */ add.s $f8, $f10, $f4 /* 079914 7F046F24 44815000 */ mtc1 $at, $f10 /* 079918 7F046F28 46144182 */ mul.s $f6, $f8, $f20 /* 07991C 7F046F2C 460A3103 */ div.s $f4, $f6, $f10 /* 079920 7F046F30 0C00262C */ jal randomGetNext /* 079924 7F046F34 E6040098 */ swc1 $f4, 0x98($s0) /* 079928 7F046F38 44824000 */ mtc1 $v0, $f8 /* 07992C 7F046F3C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 079930 7F046F40 04410004 */ bgez $v0, .L7F046F54 /* 079934 7F046F44 468041A0 */ cvt.s.w $f6, $f8 /* 079938 7F046F48 44815000 */ mtc1 $at, $f10 /* 07993C 7F046F4C 00000000 */ nop /* 079940 7F046F50 460A3180 */ add.s $f6, $f6, $f10 .L7F046F54: /* 079944 7F046F54 3C012F80 */ li $at, 0x2F800000 # 0.000000 /* 079948 7F046F58 44812000 */ mtc1 $at, $f4 /* 07994C 7F046F5C 00000000 */ nop /* 079950 7F046F60 46043202 */ mul.s $f8, $f6, $f4 /* 079954 7F046F64 00000000 */ nop /* 079958 7F046F68 46144282 */ mul.s $f10, $f8, $f20 /* 07995C 7F046F6C E60A0084 */ swc1 $f10, 0x84($s0) /* 079960 7F046F70 C6020084 */ lwc1 $f2, 0x84($s0) .L7F046F74: /* 079964 7F046F74 3C018005 */ lui $at, %hi(D_80052AEC) # $at, 0x8005 /* 079968 7F046F78 C4208C2C */ lwc1 $f0, %lo(D_80052AEC)($at) /* 07996C 7F046F7C 3C018005 */ lui $at, %hi(D_80052AF4) # $at, 0x8005 /* 079970 7F046F80 C4268C34 */ lwc1 $f6, %lo(D_80052AF4)($at) /* 079974 7F046F84 44051000 */ mfc1 $a1, $f2 /* 079978 7F046F88 44070000 */ mfc1 $a3, $f0 /* 07997C 7F046F8C 26040090 */ addiu $a0, $s0, 0x90 /* 079980 7F046F90 26060094 */ addiu $a2, $s0, 0x94 /* 079984 7F046F94 E7A00010 */ swc1 $f0, 0x10($sp) /* 079988 7F046F98 0FC10C73 */ jal chrobjCallsApplySpeed /* 07998C 7F046F9C E7A60014 */ swc1 $f6, 0x14($sp) /* 079990 7F046FA0 3C018005 */ lui $at, %hi(D_80052AF8) # $at, 0x8005 /* 079994 7F046FA4 C4208C38 */ lwc1 $f0, %lo(D_80052AF8)($at) /* 079998 7F046FA8 3C018005 */ lui $at, %hi(D_80052AFC) # $at, 0x8005 /* 07999C 7F046FAC C4248C3C */ lwc1 $f4, %lo(D_80052AFC)($at) /* 0799A0 7F046FB0 8E050098 */ lw $a1, 0x98($s0) /* 0799A4 7F046FB4 44070000 */ mfc1 $a3, $f0 /* 0799A8 7F046FB8 2604009C */ addiu $a0, $s0, 0x9c /* 0799AC 7F046FBC 260600A0 */ addiu $a2, $s0, 0xa0 /* 0799B0 7F046FC0 E7A00010 */ swc1 $f0, 0x10($sp) /* 0799B4 7F046FC4 0FC10C73 */ jal chrobjCallsApplySpeed /* 0799B8 7F046FC8 E7A40014 */ swc1 $f4, 0x14($sp) /* 0799BC 7F046FCC 10000510 */ b .L7F048410 /* 0799C0 7F046FD0 92220003 */ lbu $v0, 3($s1) .L7F046FD4: /* 0799C4 7F046FD4 C6480008 */ lwc1 $f8, 8($s2) /* 0799C8 7F046FD8 C62A0058 */ lwc1 $f10, 0x58($s1) /* 0799CC 7F046FDC C646000C */ lwc1 $f6, 0xc($s2) /* 0799D0 7F046FE0 C624005C */ lwc1 $f4, 0x5c($s1) /* 0799D4 7F046FE4 460A4001 */ sub.s $f0, $f8, $f10 /* 0799D8 7F046FE8 3C0141A0 */ li $at, 0x41A00000 # 20.000000 /* 0799DC 7F046FEC 44815000 */ mtc1 $at, $f10 /* 0799E0 7F046FF0 46043201 */ sub.s $f8, $f6, $f4 /* 0799E4 7F046FF4 460A4181 */ sub.s $f6, $f8, $f10 /* 0799E8 7F046FF8 46000282 */ mul.s $f10, $f0, $f0 /* 0799EC 7F046FFC E7A604C4 */ swc1 $f6, 0x4c4($sp) /* 0799F0 7F047000 C6280060 */ lwc1 $f8, 0x60($s1) /* 0799F4 7F047004 C6440010 */ lwc1 $f4, 0x10($s2) /* 0799F8 7F047008 E7A004C8 */ swc1 $f0, 0x4c8($sp) /* 0799FC 7F04700C 46082081 */ sub.s $f2, $f4, $f8 /* 079A00 7F047010 46021182 */ mul.s $f6, $f2, $f2 /* 079A04 7F047014 E7A204C0 */ swc1 $f2, 0x4c0($sp) /* 079A08 7F047018 46065500 */ add.s $f20, $f10, $f6 /* 079A0C 7F04701C E7B404BC */ swc1 $f20, 0x4bc($sp) /* 079A10 7F047020 0C007614 */ jal sqrtf /* 079A14 7F047024 4600A306 */ mov.s $f12, $f20 /* 079A18 7F047028 E7A004B4 */ swc1 $f0, 0x4b4($sp) /* 079A1C 7F04702C 8E280008 */ lw $t0, 8($s1) /* 079A20 7F047030 46000086 */ mov.s $f2, $f0 /* 079A24 7F047034 00085900 */ sll $t3, $t0, 4 /* 079A28 7F047038 05630008 */ bgezl $t3, .L7F04705C /* 079A2C 7F04703C C7AC04BC */ lwc1 $f12, 0x4bc($sp) /* 079A30 7F047040 C7A004C4 */ lwc1 $f0, 0x4c4($sp) /* 079A34 7F047044 46000102 */ mul.s $f4, $f0, $f0 /* 079A38 7F047048 4604A300 */ add.s $f12, $f20, $f4 /* 079A3C 7F04704C 0C007614 */ jal sqrtf /* 079A40 7F047050 E7AC04BC */ swc1 $f12, 0x4bc($sp) /* 079A44 7F047054 46000086 */ mov.s $f2, $f0 /* 079A48 7F047058 C7AC04BC */ lwc1 $f12, 0x4bc($sp) .L7F04705C: /* 079A4C 7F04705C 0FC0B49E */ jal chrlvGetAimLimitAngle /* 079A50 7F047060 E7A204B8 */ swc1 $f2, 0x4b8($sp) /* 079A54 7F047064 E7A004A4 */ swc1 $f0, 0x4a4($sp) /* 079A58 7F047068 C6080098 */ lwc1 $f8, 0x98($s0) /* 079A5C 7F04706C C6100084 */ lwc1 $f16, 0x84($s0) /* 079A60 7F047070 C7A204B8 */ lwc1 $f2, 0x4b8($sp) /* 079A64 7F047074 E7A804D8 */ swc1 $f8, 0x4d8($sp) /* 079A68 7F047078 C60A00A8 */ lwc1 $f10, 0xa8($s0) /* 079A6C 7F04707C 460A103E */ c.le.s $f2, $f10 /* 079A70 7F047080 00000000 */ nop /* 079A74 7F047084 45020096 */ bc1fl .L7F0472E0 /* 079A78 7F047088 8FAF04B0 */ lw $t7, 0x4b0($sp) /* 079A7C 7F04708C C7AC04C8 */ lwc1 $f12, 0x4c8($sp) /* 079A80 7F047090 C7AE04C0 */ lwc1 $f14, 0x4c0($sp) /* 079A84 7F047094 0FC16BB8 */ jal atan2f /* 079A88 7F047098 E7B004DC */ swc1 $f16, 0x4dc($sp) /* 079A8C 7F04709C E7A004A0 */ swc1 $f0, 0x4a0($sp) /* 079A90 7F0470A0 C7AC04C4 */ lwc1 $f12, 0x4c4($sp) /* 079A94 7F0470A4 0FC16BB8 */ jal atan2f /* 079A98 7F0470A8 C7AE04B4 */ lwc1 $f14, 0x4b4($sp) /* 079A9C 7F0470AC E7A0049C */ swc1 $f0, 0x49c($sp) /* 079AA0 7F0470B0 8E220008 */ lw $v0, 8($s1) /* 079AA4 7F0470B4 C7B004DC */ lwc1 $f16, 0x4dc($sp) /* 079AA8 7F0470B8 240D0001 */ li $t5, 1 /* 079AAC 7F0470BC 00026040 */ sll $t4, $v0, 1 /* 079AB0 7F0470C0 05800003 */ bltz $t4, .L7F0470D0 /* 079AB4 7F0470C4 00027080 */ sll $t6, $v0, 2 /* 079AB8 7F0470C8 05C10005 */ bgez $t6, .L7F0470E0 /* 079ABC 7F0470CC C7A604A0 */ lwc1 $f6, 0x4a0($sp) .L7F0470D0: /* 079AC0 7F0470D0 3C018005 */ lui $at, %hi(D_80052B00) # $at, 0x8005 /* 079AC4 7F0470D4 C4348C40 */ lwc1 $f20, %lo(D_80052B00)($at) /* 079AC8 7F0470D8 10000027 */ b .L7F047178 /* 079ACC 7F0470DC AFAD04B0 */ sw $t5, 0x4b0($sp) .L7F0470E0: /* 079AD0 7F0470E0 C6040090 */ lwc1 $f4, 0x90($s0) /* 079AD4 7F0470E4 3C018005 */ lui $at, %hi(D_80052B04) # $at, 0x8005 /* 079AD8 7F0470E8 46043301 */ sub.s $f12, $f6, $f4 /* 079ADC 7F0470EC 4616603C */ c.lt.s $f12, $f22 /* 079AE0 7F0470F0 00000000 */ nop /* 079AE4 7F0470F4 45000003 */ bc1f .L7F047104 /* 079AE8 7F0470F8 00000000 */ nop /* 079AEC 7F0470FC C4348C44 */ lwc1 $f20, %lo(D_80052B04)($at) /* 079AF0 7F047100 46146300 */ add.s $f12, $f12, $f20 .L7F047104: /* 079AF4 7F047104 3C018005 */ lui $at, %hi(D_80052B08) # $at, 0x8005 /* 079AF8 7F047108 C4348C48 */ lwc1 $f20, %lo(D_80052B08)($at) /* 079AFC 7F04710C 3C018005 */ lui $at, %hi(D_80052B0C) # $at, 0x8005 /* 079B00 7F047110 C4288C4C */ lwc1 $f8, %lo(D_80052B0C)($at) /* 079B04 7F047114 3C018005 */ lui $at, %hi(D_80052B10) # $at, 0x8005 /* 079B08 7F047118 460C403C */ c.lt.s $f8, $f12 /* 079B0C 7F04711C 00000000 */ nop /* 079B10 7F047120 45020003 */ bc1fl .L7F047130 /* 079B14 7F047124 C60A009C */ lwc1 $f10, 0x9c($s0) /* 079B18 7F047128 46146301 */ sub.s $f12, $f12, $f20 /* 079B1C 7F04712C C60A009C */ lwc1 $f10, 0x9c($s0) .L7F047130: /* 079B20 7F047130 460A0081 */ sub.s $f2, $f0, $f10 /* 079B24 7F047134 4616103C */ c.lt.s $f2, $f22 /* 079B28 7F047138 00000000 */ nop /* 079B2C 7F04713C 45000001 */ bc1f .L7F047144 /* 079B30 7F047140 00000000 */ nop .L7F047144: /* 079B34 7F047144 C4268C50 */ lwc1 $f6, %lo(D_80052B10)($at) /* 079B38 7F047148 3C018005 */ lui $at, %hi(D_80052B14) # $at, 0x8005 /* 079B3C 7F04714C 4606603C */ c.lt.s $f12, $f6 /* 079B40 7F047150 00000000 */ nop /* 079B44 7F047154 45020009 */ bc1fl .L7F04717C /* 079B48 7F047158 8FAF04B0 */ lw $t7, 0x4b0($sp) /* 079B4C 7F04715C C4248C54 */ lwc1 $f4, %lo(D_80052B14)($at) /* 079B50 7F047160 24180001 */ li $t8, 1 /* 079B54 7F047164 460C203C */ c.lt.s $f4, $f12 /* 079B58 7F047168 00000000 */ nop /* 079B5C 7F04716C 45020003 */ bc1fl .L7F04717C /* 079B60 7F047170 8FAF04B0 */ lw $t7, 0x4b0($sp) /* 079B64 7F047174 AFB804B0 */ sw $t8, 0x4b0($sp) .L7F047178: /* 079B68 7F047178 8FAF04B0 */ lw $t7, 0x4b0($sp) .L7F04717C: /* 079B6C 7F04717C C7A804A0 */ lwc1 $f8, 0x4a0($sp) /* 079B70 7F047180 02402025 */ move $a0, $s2 /* 079B74 7F047184 11E00055 */ beqz $t7, .L7F0472DC /* 079B78 7F047188 00002825 */ move $a1, $zero /* 079B7C 7F04718C C60A0084 */ lwc1 $f10, 0x84($s0) /* 079B80 7F047190 3C018005 */ lui $at, %hi(D_80052B18) # $at, 0x8005 /* 079B84 7F047194 C4268C58 */ lwc1 $f6, %lo(D_80052B18)($at) /* 079B88 7F047198 460A4001 */ sub.s $f0, $f8, $f10 /* 079B8C 7F04719C 8E790014 */ lw $t9, 0x14($s3) /* 079B90 7F0471A0 3C018005 */ lui $at, %hi(D_80052B1C) # $at, 0x8005 /* 079B94 7F0471A4 4606003C */ c.lt.s $f0, $f6 /* 079B98 7F0471A8 AFB90494 */ sw $t9, 0x494($sp) /* 079B9C 7F0471AC 45000003 */ bc1f .L7F0471BC /* 079BA0 7F0471B0 00000000 */ nop /* 079BA4 7F0471B4 10000007 */ b .L7F0471D4 /* 079BA8 7F0471B8 46140000 */ add.s $f0, $f0, $f20 .L7F0471BC: /* 079BAC 7F0471BC C4248C5C */ lwc1 $f4, %lo(D_80052B1C)($at) /* 079BB0 7F0471C0 4600203E */ c.le.s $f4, $f0 /* 079BB4 7F0471C4 00000000 */ nop /* 079BB8 7F0471C8 45020003 */ bc1fl .L7F0471D8 /* 079BBC 7F0471CC E7A00498 */ swc1 $f0, 0x498($sp) /* 079BC0 7F0471D0 46140001 */ sub.s $f0, $f0, $f20 .L7F0471D4: /* 079BC4 7F0471D4 E7A00498 */ swc1 $f0, 0x498($sp) .L7F0471D8: /* 079BC8 7F0471D8 0FC22882 */ jal bondviewUpdateGuardTankFlagsRelated /* 079BCC 7F0471DC E7B004DC */ swc1 $f16, 0x4dc($sp) /* 079BD0 7F0471E0 C7A00498 */ lwc1 $f0, 0x498($sp) /* 079BD4 7F0471E4 C6080088 */ lwc1 $f8, 0x88($s0) /* 079BD8 7F0471E8 C7B004DC */ lwc1 $f16, 0x4dc($sp) /* 079BDC 7F0471EC 4608003E */ c.le.s $f0, $f8 /* 079BE0 7F0471F0 00000000 */ nop /* 079BE4 7F0471F4 45020027 */ bc1fl .L7F047294 /* 079BE8 7F0471F8 8E0200B8 */ lw $v0, 0xb8($s0) /* 079BEC 7F0471FC C60A008C */ lwc1 $f10, 0x8c($s0) /* 079BF0 7F047200 2409001B */ li $t1, 27 /* 079BF4 7F047204 4600503E */ c.le.s $f10, $f0 /* 079BF8 7F047208 00000000 */ nop /* 079BFC 7F04720C 45020021 */ bc1fl .L7F047294 /* 079C00 7F047210 8E0200B8 */ lw $v0, 0xb8($s0) /* 079C04 7F047214 C6460010 */ lwc1 $f6, 0x10($s2) /* 079C08 7F047218 8E650008 */ lw $a1, 8($s3) /* 079C0C 7F04721C 8E660010 */ lw $a2, 0x10($s3) /* 079C10 7F047220 8E470008 */ lw $a3, 8($s2) /* 079C14 7F047224 AFA90014 */ sw $t1, 0x14($sp) /* 079C18 7F047228 E7A60010 */ swc1 $f6, 0x10($sp) /* 079C1C 7F04722C C660000C */ lwc1 $f0, 0xc($s3) /* 079C20 7F047230 27A40494 */ addiu $a0, $sp, 0x494 /* 079C24 7F047234 E7A00018 */ swc1 $f0, 0x18($sp) /* 079C28 7F047238 E7A0001C */ swc1 $f0, 0x1c($sp) /* 079C2C 7F04723C C642000C */ lwc1 $f2, 0xc($s2) /* 079C30 7F047240 E7B004DC */ swc1 $f16, 0x4dc($sp) /* 079C34 7F047244 E7A20020 */ swc1 $f2, 0x20($sp) /* 079C38 7F047248 0FC2C039 */ jal stanTestLineUnobstructed /* 079C3C 7F04724C E7A20024 */ swc1 $f2, 0x24($sp) /* 079C40 7F047250 1040000F */ beqz $v0, .L7F047290 /* 079C44 7F047254 C7B004DC */ lwc1 $f16, 0x4dc($sp) /* 079C48 7F047258 8FAA0494 */ lw $t2, 0x494($sp) /* 079C4C 7F04725C 8E480014 */ lw $t0, 0x14($s2) /* 079C50 7F047260 5548000C */ bnel $t2, $t0, .L7F047294 /* 079C54 7F047264 8E0200B8 */ lw $v0, 0xb8($s0) /* 079C58 7F047268 8E2B0008 */ lw $t3, 8($s1) /* 079C5C 7F04726C 3C012000 */ lui $at, 0x2000 /* 079C60 7F047270 240E0001 */ li $t6, 1 /* 079C64 7F047274 01616025 */ or $t4, $t3, $at /* 079C68 7F047278 AE2C0008 */ sw $t4, 8($s1) /* 079C6C 7F04727C C7A4049C */ lwc1 $f4, 0x49c($sp) /* 079C70 7F047280 AFAE04A8 */ sw $t6, 0x4a8($sp) /* 079C74 7F047284 C7B004A0 */ lwc1 $f16, 0x4a0($sp) /* 079C78 7F047288 1000000F */ b .L7F0472C8 /* 079C7C 7F04728C E7A404D8 */ swc1 $f4, 0x4d8($sp) .L7F047290: /* 079C80 7F047290 8E0200B8 */ lw $v0, 0xb8($s0) .L7F047294: /* 079C84 7F047294 3C0D8004 */ lui $t5, %hi(g_GlobalTimer) # $t5, 0x8004 /* 079C88 7F047298 0442000B */ bltzl $v0, .L7F0472C8 /* 079C8C 7F04729C AFA004B0 */ sw $zero, 0x4b0($sp) /* 079C90 7F0472A0 8DAD0FFC */ lw $t5, %lo(g_GlobalTimer)($t5) /* 079C94 7F0472A4 25B8FF9C */ addiu $t8, $t5, -0x64 /* 079C98 7F0472A8 0302082A */ slt $at, $t8, $v0 /* 079C9C 7F0472AC 50200006 */ beql $at, $zero, .L7F0472C8 /* 079CA0 7F0472B0 AFA004B0 */ sw $zero, 0x4b0($sp) /* 079CA4 7F0472B4 C608009C */ lwc1 $f8, 0x9c($s0) /* 079CA8 7F0472B8 C6100090 */ lwc1 $f16, 0x90($s0) /* 079CAC 7F0472BC 10000002 */ b .L7F0472C8 /* 079CB0 7F0472C0 E7A804D8 */ swc1 $f8, 0x4d8($sp) /* 079CB4 7F0472C4 AFA004B0 */ sw $zero, 0x4b0($sp) .L7F0472C8: /* 079CB8 7F0472C8 02402025 */ move $a0, $s2 /* 079CBC 7F0472CC 24050001 */ li $a1, 1 /* 079CC0 7F0472D0 0FC22882 */ jal bondviewUpdateGuardTankFlagsRelated /* 079CC4 7F0472D4 E7B004DC */ swc1 $f16, 0x4dc($sp) /* 079CC8 7F0472D8 C7B004DC */ lwc1 $f16, 0x4dc($sp) .L7F0472DC: /* 079CCC 7F0472DC 8FAF04B0 */ lw $t7, 0x4b0($sp) .L7F0472E0: /* 079CD0 7F0472E0 3C018005 */ lui $at, %hi(D_80052B20) # $at, 0x8005 /* 079CD4 7F0472E4 C4348C60 */ lwc1 $f20, %lo(D_80052B20)($at) /* 079CD8 7F0472E8 51E00007 */ beql $t7, $zero, .L7F047308 /* 079CDC 7F0472EC 8E1900D0 */ lw $t9, 0xd0($s0) /* 079CE0 7F0472F0 C7AC04BC */ lwc1 $f12, 0x4bc($sp) /* 079CE4 7F0472F4 0FC0B49E */ jal chrlvGetAimLimitAngle /* 079CE8 7F0472F8 E7B004DC */ swc1 $f16, 0x4dc($sp) /* 079CEC 7F0472FC C7B004DC */ lwc1 $f16, 0x4dc($sp) /* 079CF0 7F047300 E7A004A4 */ swc1 $f0, 0x4a4($sp) /* 079CF4 7F047304 8E1900D0 */ lw $t9, 0xd0($s0) .L7F047308: /* 079CF8 7F047308 1320001F */ beqz $t9, .L7F047388 /* 079CFC 7F04730C 3C098004 */ lui $t1, %hi(g_GlobalTimer) # $t1, 0x8004 /* 079D00 7F047310 8D290FFC */ lw $t1, %lo(g_GlobalTimer)($t1) /* 079D04 7F047314 24010064 */ li $at, 100 /* 079D08 7F047318 E7B004DC */ swc1 $f16, 0x4dc($sp) /* 079D0C 7F04731C 0121001A */ div $zero, $t1, $at /* 079D10 7F047320 00005010 */ mfhi $t2 /* 079D14 7F047324 448A5000 */ mtc1 $t2, $f10 /* 079D18 7F047328 3C0142C8 */ li $at, 0x42C80000 # 100.000000 /* 079D1C 7F04732C 44814000 */ mtc1 $at, $f8 /* 079D20 7F047330 468051A0 */ cvt.s.w $f6, $f10 /* 079D24 7F047334 46143102 */ mul.s $f4, $f6, $f20 /* 079D28 7F047338 0FC1606B */ jal sinf /* 079D2C 7F04733C 46082303 */ div.s $f12, $f4, $f8 /* 079D30 7F047340 3C018005 */ lui $at, %hi(D_80052B24) # $at, 0x8005 /* 079D34 7F047344 C4268C64 */ lwc1 $f6, %lo(D_80052B24)($at) /* 079D38 7F047348 C7AA04A4 */ lwc1 $f10, 0x4a4($sp) /* 079D3C 7F04734C C7B004DC */ lwc1 $f16, 0x4dc($sp) /* 079D40 7F047350 46065102 */ mul.s $f4, $f10, $f6 /* 079D44 7F047354 00000000 */ nop /* 079D48 7F047358 46002202 */ mul.s $f8, $f4, $f0 /* 079D4C 7F04735C 46088400 */ add.s $f16, $f16, $f8 /* 079D50 7F047360 4616803C */ c.lt.s $f16, $f22 /* 079D54 7F047364 00000000 */ nop /* 079D58 7F047368 45000002 */ bc1f .L7F047374 /* 079D5C 7F04736C 00000000 */ nop /* 079D60 7F047370 46148400 */ add.s $f16, $f16, $f20 .L7F047374: /* 079D64 7F047374 4610A03E */ c.le.s $f20, $f16 /* 079D68 7F047378 00000000 */ nop /* 079D6C 7F04737C 45020003 */ bc1fl .L7F04738C /* 079D70 7F047380 C6020084 */ lwc1 $f2, 0x84($s0) /* 079D74 7F047384 46148401 */ sub.s $f16, $f16, $f20 .L7F047388: /* 079D78 7F047388 C6020084 */ lwc1 $f2, 0x84($s0) .L7F04738C: /* 079D7C 7F04738C 3C018005 */ lui $at, %hi(D_80052B28) # $at, 0x8005 /* 079D80 7F047390 C42A8C68 */ lwc1 $f10, %lo(D_80052B28)($at) /* 079D84 7F047394 46028001 */ sub.s $f0, $f16, $f2 /* 079D88 7F047398 26040090 */ addiu $a0, $s0, 0x90 /* 079D8C 7F04739C 460A003C */ c.lt.s $f0, $f10 /* 079D90 7F0473A0 00000000 */ nop /* 079D94 7F0473A4 45000003 */ bc1f .L7F0473B4 /* 079D98 7F0473A8 00000000 */ nop /* 079D9C 7F0473AC 10000008 */ b .L7F0473D0 /* 079DA0 7F0473B0 46140000 */ add.s $f0, $f0, $f20 .L7F0473B4: /* 079DA4 7F0473B4 3C018005 */ lui $at, %hi(D_80052B2C) # $at, 0x8005 /* 079DA8 7F0473B8 C4268C6C */ lwc1 $f6, %lo(D_80052B2C)($at) /* 079DAC 7F0473BC 4600303E */ c.le.s $f6, $f0 /* 079DB0 7F0473C0 00000000 */ nop /* 079DB4 7F0473C4 45020003 */ bc1fl .L7F0473D4 /* 079DB8 7F0473C8 C60C0088 */ lwc1 $f12, 0x88($s0) /* 079DBC 7F0473CC 46140001 */ sub.s $f0, $f0, $f20 .L7F0473D0: /* 079DC0 7F0473D0 C60C0088 */ lwc1 $f12, 0x88($s0) .L7F0473D4: /* 079DC4 7F0473D4 3C018005 */ lui $at, %hi(D_80052B30) # $at, 0x8005 /* 079DC8 7F0473D8 4600603C */ c.lt.s $f12, $f0 /* 079DCC 7F0473DC 00000000 */ nop /* 079DD0 7F0473E0 45020004 */ bc1fl .L7F0473F4 /* 079DD4 7F0473E4 C60C008C */ lwc1 $f12, 0x8c($s0) /* 079DD8 7F0473E8 10000007 */ b .L7F047408 /* 079DDC 7F0473EC 460C1400 */ add.s $f16, $f2, $f12 /* 079DE0 7F0473F0 C60C008C */ lwc1 $f12, 0x8c($s0) .L7F0473F4: /* 079DE4 7F0473F4 460C003C */ c.lt.s $f0, $f12 /* 079DE8 7F0473F8 00000000 */ nop /* 079DEC 7F0473FC 45020003 */ bc1fl .L7F04740C /* 079DF0 7F047400 4616803C */ c.lt.s $f16, $f22 /* 079DF4 7F047404 460C1400 */ add.s $f16, $f2, $f12 .L7F047408: /* 079DF8 7F047408 4616803C */ c.lt.s $f16, $f22 .L7F04740C: /* 079DFC 7F04740C 00000000 */ nop /* 079E00 7F047410 45020003 */ bc1fl .L7F047420 /* 079E04 7F047414 4610A03E */ c.le.s $f20, $f16 /* 079E08 7F047418 46148400 */ add.s $f16, $f16, $f20 /* 079E0C 7F04741C 4610A03E */ c.le.s $f20, $f16 .L7F047420: /* 079E10 7F047420 00000000 */ nop /* 079E14 7F047424 45000002 */ bc1f .L7F047430 /* 079E18 7F047428 00000000 */ nop /* 079E1C 7F04742C 46148401 */ sub.s $f16, $f16, $f20 .L7F047430: /* 079E20 7F047430 C4208C70 */ lwc1 $f0, %lo(D_80052B30)($at) /* 079E24 7F047434 44058000 */ mfc1 $a1, $f16 /* 079E28 7F047438 26060094 */ addiu $a2, $s0, 0x94 /* 079E2C 7F04743C E7A00010 */ swc1 $f0, 0x10($sp) /* 079E30 7F047440 C60400A4 */ lwc1 $f4, 0xa4($s0) /* 079E34 7F047444 44070000 */ mfc1 $a3, $f0 /* 079E38 7F047448 E7B004DC */ swc1 $f16, 0x4dc($sp) /* 079E3C 7F04744C 0FC10C73 */ jal chrobjCallsApplySpeed /* 079E40 7F047450 E7A40014 */ swc1 $f4, 0x14($sp) /* 079E44 7F047454 3C018005 */ lui $at, %hi(D_80052B34) # $at, 0x8005 /* 079E48 7F047458 C4208C74 */ lwc1 $f0, %lo(D_80052B34)($at) /* 079E4C 7F04745C 2604009C */ addiu $a0, $s0, 0x9c /* 079E50 7F047460 8FA504D8 */ lw $a1, 0x4d8($sp) /* 079E54 7F047464 E7A00010 */ swc1 $f0, 0x10($sp) /* 079E58 7F047468 C60800A4 */ lwc1 $f8, 0xa4($s0) /* 079E5C 7F04746C 44070000 */ mfc1 $a3, $f0 /* 079E60 7F047470 260600A0 */ addiu $a2, $s0, 0xa0 /* 079E64 7F047474 0FC10C73 */ jal chrobjCallsApplySpeed /* 079E68 7F047478 E7A80014 */ swc1 $f8, 0x14($sp) /* 079E6C 7F04747C C7B004DC */ lwc1 $f16, 0x4dc($sp) /* 079E70 7F047480 C60A0090 */ lwc1 $f10, 0x90($s0) /* 079E74 7F047484 3C018005 */ lui $at, %hi(D_80052B38) # $at, 0x8005 /* 079E78 7F047488 C7A604D8 */ lwc1 $f6, 0x4d8($sp) /* 079E7C 7F04748C 460A8301 */ sub.s $f12, $f16, $f10 /* 079E80 7F047490 4616603C */ c.lt.s $f12, $f22 /* 079E84 7F047494 00000000 */ nop /* 079E88 7F047498 45000002 */ bc1f .L7F0474A4 /* 079E8C 7F04749C 00000000 */ nop /* 079E90 7F0474A0 46146300 */ add.s $f12, $f12, $f20 .L7F0474A4: /* 079E94 7F0474A4 C4208C78 */ lwc1 $f0, %lo(D_80052B38)($at) /* 079E98 7F0474A8 460C003C */ c.lt.s $f0, $f12 /* 079E9C 7F0474AC 00000000 */ nop /* 079EA0 7F0474B0 45020003 */ bc1fl .L7F0474C0 /* 079EA4 7F0474B4 C604009C */ lwc1 $f4, 0x9c($s0) /* 079EA8 7F0474B8 46146301 */ sub.s $f12, $f12, $f20 /* 079EAC 7F0474BC C604009C */ lwc1 $f4, 0x9c($s0) .L7F0474C0: /* 079EB0 7F0474C0 46043081 */ sub.s $f2, $f6, $f4 /* 079EB4 7F0474C4 4616103C */ c.lt.s $f2, $f22 /* 079EB8 7F0474C8 00000000 */ nop /* 079EBC 7F0474CC 45020003 */ bc1fl .L7F0474DC /* 079EC0 7F0474D0 4602003C */ c.lt.s $f0, $f2 /* 079EC4 7F0474D4 46141080 */ add.s $f2, $f2, $f20 /* 079EC8 7F0474D8 4602003C */ c.lt.s $f0, $f2 .L7F0474DC: /* 079ECC 7F0474DC 00000000 */ nop /* 079ED0 7F0474E0 45020003 */ bc1fl .L7F0474F0 /* 079ED4 7F0474E4 AE0000D0 */ sw $zero, 0xd0($s0) /* 079ED8 7F0474E8 46141081 */ sub.s $f2, $f2, $f20 /* 079EDC 7F0474EC AE0000D0 */ sw $zero, 0xd0($s0) .L7F0474F0: /* 079EE0 7F0474F0 8FA804B0 */ lw $t0, 0x4b0($sp) /* 079EE4 7F0474F4 C7A804A4 */ lwc1 $f8, 0x4a4($sp) /* 079EE8 7F0474F8 51000047 */ beql $t0, $zero, .L7F047618 /* 079EEC 7F0474FC 8FAD04AC */ lw $t5, 0x4ac($sp) /* 079EF0 7F047500 4608603C */ c.lt.s $f12, $f8 /* 079EF4 7F047504 C7AA04A4 */ lwc1 $f10, 0x4a4($sp) /* 079EF8 7F047508 4502001B */ bc1fl .L7F047578 /* 079EFC 7F04750C 460A5000 */ add.s $f0, $f10, $f10 /* 079F00 7F047510 46004007 */ neg.s $f0, $f8 /* 079F04 7F047514 460C003C */ c.lt.s $f0, $f12 /* 079F08 7F047518 00000000 */ nop /* 079F0C 7F04751C 45020016 */ bc1fl .L7F047578 /* 079F10 7F047520 460A5000 */ add.s $f0, $f10, $f10 /* 079F14 7F047524 4608103C */ c.lt.s $f2, $f8 /* 079F18 7F047528 00000000 */ nop /* 079F1C 7F04752C 45020012 */ bc1fl .L7F047578 /* 079F20 7F047530 460A5000 */ add.s $f0, $f10, $f10 /* 079F24 7F047534 4602003C */ c.lt.s $f0, $f2 /* 079F28 7F047538 240B0001 */ li $t3, 1 /* 079F2C 7F04753C 4502000E */ bc1fl .L7F047578 /* 079F30 7F047540 460A5000 */ add.s $f0, $f10, $f10 /* 079F34 7F047544 AE0B00D0 */ sw $t3, 0xd0($s0) /* 079F38 7F047548 8FAE04A8 */ lw $t6, 0x4a8($sp) /* 079F3C 7F04754C 240C0001 */ li $t4, 1 /* 079F40 7F047550 AFAC04AC */ sw $t4, 0x4ac($sp) /* 079F44 7F047554 11C0002F */ beqz $t6, .L7F047614 /* 079F48 7F047558 3C0D8004 */ lui $t5, %hi(g_GlobalTimer) # $t5, 0x8004 /* 079F4C 7F04755C 8DAD0FFC */ lw $t5, %lo(g_GlobalTimer)($t5) /* 079F50 7F047560 3C188004 */ lui $t8, %hi(g_GlobalTimer) # $t8, 0x8004 /* 079F54 7F047564 AE0D00B8 */ sw $t5, 0xb8($s0) /* 079F58 7F047568 8F180FFC */ lw $t8, %lo(g_GlobalTimer)($t8) /* 079F5C 7F04756C 10000029 */ b .L7F047614 /* 079F60 7F047570 AE1800BC */ sw $t8, 0xbc($s0) /* 079F64 7F047574 460A5000 */ add.s $f0, $f10, $f10 .L7F047578: /* 079F68 7F047578 4600603C */ c.lt.s $f12, $f0 /* 079F6C 7F04757C 00000000 */ nop /* 079F70 7F047580 45020018 */ bc1fl .L7F0475E4 /* 079F74 7F047584 8E0200B8 */ lw $v0, 0xb8($s0) /* 079F78 7F047588 46000387 */ neg.s $f14, $f0 /* 079F7C 7F04758C 460C703C */ c.lt.s $f14, $f12 /* 079F80 7F047590 00000000 */ nop /* 079F84 7F047594 45020013 */ bc1fl .L7F0475E4 /* 079F88 7F047598 8E0200B8 */ lw $v0, 0xb8($s0) /* 079F8C 7F04759C 4600103C */ c.lt.s $f2, $f0 /* 079F90 7F0475A0 00000000 */ nop /* 079F94 7F0475A4 4502000F */ bc1fl .L7F0475E4 /* 079F98 7F0475A8 8E0200B8 */ lw $v0, 0xb8($s0) /* 079F9C 7F0475AC 4602703C */ c.lt.s $f14, $f2 /* 079FA0 7F0475B0 240F0001 */ li $t7, 1 /* 079FA4 7F0475B4 4502000B */ bc1fl .L7F0475E4 /* 079FA8 7F0475B8 8E0200B8 */ lw $v0, 0xb8($s0) /* 079FAC 7F0475BC AE0F00D0 */ sw $t7, 0xd0($s0) /* 079FB0 7F0475C0 8FA904A8 */ lw $t1, 0x4a8($sp) /* 079FB4 7F0475C4 24190001 */ li $t9, 1 /* 079FB8 7F0475C8 AFB904AC */ sw $t9, 0x4ac($sp) /* 079FBC 7F0475CC 11200011 */ beqz $t1, .L7F047614 /* 079FC0 7F0475D0 3C0A8004 */ lui $t2, %hi(g_GlobalTimer) # $t2, 0x8004 /* 079FC4 7F0475D4 8D4A0FFC */ lw $t2, %lo(g_GlobalTimer)($t2) /* 079FC8 7F0475D8 1000000E */ b .L7F047614 /* 079FCC 7F0475DC AE0A00B8 */ sw $t2, 0xb8($s0) /* 079FD0 7F0475E0 8E0200B8 */ lw $v0, 0xb8($s0) .L7F0475E4: /* 079FD4 7F0475E4 3C088004 */ lui $t0, %hi(g_GlobalTimer) # $t0, 0x8004 /* 079FD8 7F0475E8 0442000B */ bltzl $v0, .L7F047618 /* 079FDC 7F0475EC 8FAD04AC */ lw $t5, 0x4ac($sp) /* 079FE0 7F0475F0 8D080FFC */ lw $t0, %lo(g_GlobalTimer)($t0) /* 079FE4 7F0475F4 240C0001 */ li $t4, 1 /* 079FE8 7F0475F8 240E0001 */ li $t6, 1 /* 079FEC 7F0475FC 250BFF9C */ addiu $t3, $t0, -0x64 /* 079FF0 7F047600 0162082A */ slt $at, $t3, $v0 /* 079FF4 7F047604 50200004 */ beql $at, $zero, .L7F047618 /* 079FF8 7F047608 8FAD04AC */ lw $t5, 0x4ac($sp) /* 079FFC 7F04760C AE0C00D0 */ sw $t4, 0xd0($s0) /* 07A000 7F047610 AFAE04AC */ sw $t6, 0x4ac($sp) .L7F047614: /* 07A004 7F047614 8FAD04AC */ lw $t5, 0x4ac($sp) .L7F047618: /* 07A008 7F047618 3C018005 */ lui $at, %hi(D_80052B3C) # $at, 0x8005 /* 07A00C 7F04761C 51A00013 */ beql $t5, $zero, .L7F04766C /* 07A010 7F047620 C60200B0 */ lwc1 $f2, 0xb0($s0) /* 07A014 7F047624 C4208C7C */ lwc1 $f0, %lo(D_80052B3C)($at) /* 07A018 7F047628 3C018005 */ lui $at, %hi(D_80052B40) # $at, 0x8005 /* 07A01C 7F04762C C4268C80 */ lwc1 $f6, %lo(D_80052B40)($at) /* 07A020 7F047630 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 /* 07A024 7F047634 C4241004 */ lwc1 $f4, %lo(g_GlobalTimerDelta)($at) /* 07A028 7F047638 C60A00B0 */ lwc1 $f10, 0xb0($s0) /* 07A02C 7F04763C 46043202 */ mul.s $f8, $f6, $f4 /* 07A030 7F047640 46085180 */ add.s $f6, $f10, $f8 /* 07A034 7F047644 E60600B0 */ swc1 $f6, 0xb0($s0) /* 07A038 7F047648 C60200B0 */ lwc1 $f2, 0xb0($s0) /* 07A03C 7F04764C 4602003C */ c.lt.s $f0, $f2 /* 07A040 7F047650 00000000 */ nop /* 07A044 7F047654 45020023 */ bc1fl .L7F0476E4 /* 07A048 7F047658 4602B03C */ c.lt.s $f22, $f2 /* 07A04C 7F04765C E60000B0 */ swc1 $f0, 0xb0($s0) /* 07A050 7F047660 1000001F */ b .L7F0476E0 /* 07A054 7F047664 C60200B0 */ lwc1 $f2, 0xb0($s0) /* 07A058 7F047668 C60200B0 */ lwc1 $f2, 0xb0($s0) .L7F04766C: /* 07A05C 7F04766C 3C188004 */ lui $t8, %hi(g_ClockTimer) # $t8, 0x8004 /* 07A060 7F047670 4602B03C */ c.lt.s $f22, $f2 /* 07A064 7F047674 00000000 */ nop /* 07A068 7F047678 4502001A */ bc1fl .L7F0476E4 /* 07A06C 7F04767C 4602B03C */ c.lt.s $f22, $f2 /* 07A070 7F047680 8F180FF4 */ lw $t8, %lo(g_ClockTimer)($t8) /* 07A074 7F047684 00001025 */ move $v0, $zero /* 07A078 7F047688 3C018005 */ lui $at, %hi(D_80052B44) # $at, 0x8005 /* 07A07C 7F04768C 1B00000C */ blez $t8, .L7F0476C0 /* 07A080 7F047690 00000000 */ nop /* 07A084 7F047694 C4208C84 */ lwc1 $f0, %lo(D_80052B44)($at) /* 07A088 7F047698 C60400B0 */ lwc1 $f4, 0xb0($s0) .L7F04769C: /* 07A08C 7F04769C 3C0F8004 */ lui $t7, %hi(g_ClockTimer) # $t7, 0x8004 /* 07A090 7F0476A0 24420001 */ addiu $v0, $v0, 1 /* 07A094 7F0476A4 46002282 */ mul.s $f10, $f4, $f0 /* 07A098 7F0476A8 E60A00B0 */ swc1 $f10, 0xb0($s0) /* 07A09C 7F0476AC 8DEF0FF4 */ lw $t7, %lo(g_ClockTimer)($t7) /* 07A0A0 7F0476B0 004F082A */ slt $at, $v0, $t7 /* 07A0A4 7F0476B4 5420FFF9 */ bnezl $at, .L7F04769C /* 07A0A8 7F0476B8 C60400B0 */ lwc1 $f4, 0xb0($s0) /* 07A0AC 7F0476BC C60200B0 */ lwc1 $f2, 0xb0($s0) .L7F0476C0: /* 07A0B0 7F0476C0 3C018005 */ lui $at, %hi(D_80052B48) # $at, 0x8005 /* 07A0B4 7F0476C4 C4288C88 */ lwc1 $f8, %lo(D_80052B48)($at) /* 07A0B8 7F0476C8 4608103E */ c.le.s $f2, $f8 /* 07A0BC 7F0476CC 00000000 */ nop /* 07A0C0 7F0476D0 45020004 */ bc1fl .L7F0476E4 /* 07A0C4 7F0476D4 4602B03C */ c.lt.s $f22, $f2 /* 07A0C8 7F0476D8 E61600B0 */ swc1 $f22, 0xb0($s0) /* 07A0CC 7F0476DC C60200B0 */ lwc1 $f2, 0xb0($s0) .L7F0476E0: /* 07A0D0 7F0476E0 4602B03C */ c.lt.s $f22, $f2 .L7F0476E4: /* 07A0D4 7F0476E4 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 /* 07A0D8 7F0476E8 45020349 */ bc1fl .L7F048410 /* 07A0DC 7F0476EC 92220003 */ lbu $v0, 3($s1) /* 07A0E0 7F0476F0 C4241004 */ lwc1 $f4, %lo(g_GlobalTimerDelta)($at) /* 07A0E4 7F0476F4 C60600B4 */ lwc1 $f6, 0xb4($s0) /* 07A0E8 7F0476F8 46041282 */ mul.s $f10, $f2, $f4 /* 07A0EC 7F0476FC 460A3200 */ add.s $f8, $f6, $f10 /* 07A0F0 7F047700 E60800B4 */ swc1 $f8, 0xb4($s0) /* 07A0F4 7F047704 C60000B4 */ lwc1 $f0, 0xb4($s0) /* 07A0F8 7F047708 4600A03E */ c.le.s $f20, $f0 /* 07A0FC 7F04770C 00000000 */ nop /* 07A100 7F047710 4502033F */ bc1fl .L7F048410 /* 07A104 7F047714 92220003 */ lbu $v0, 3($s1) /* 07A108 7F047718 46140101 */ sub.s $f4, $f0, $f20 .L7F04771C: /* 07A10C 7F04771C E60400B4 */ swc1 $f4, 0xb4($s0) /* 07A110 7F047720 C60000B4 */ lwc1 $f0, 0xb4($s0) /* 07A114 7F047724 4600A03E */ c.le.s $f20, $f0 /* 07A118 7F047728 00000000 */ nop /* 07A11C 7F04772C 4503FFFB */ bc1tl .L7F04771C /* 07A120 7F047730 46140101 */ sub.s $f4, $f0, $f20 /* 07A124 7F047734 10000336 */ b .L7F048410 /* 07A128 7F047738 92220003 */ lbu $v0, 3($s1) /* 07A12C 7F04773C 24010027 */ li $at, 39 .L7F047740: /* 07A130 7F047740 14410253 */ bne $v0, $at, .L7F048090 /* 07A134 7F047744 02202025 */ move $a0, $s1 /* 07A138 7F047748 C62600A0 */ lwc1 $f6, 0xa0($s1) /* 07A13C 7F04774C AFA0047C */ sw $zero, 0x47c($sp) /* 07A140 7F047750 24050001 */ li $a1, 1 /* 07A144 7F047754 0FC0D531 */ jal ai /* 07A148 7F047758 E7A60480 */ swc1 $f6, 0x480($sp) /* 07A14C 7F04775C C62E0098 */ lwc1 $f14, 0x98($s1) /* 07A150 7F047760 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 /* 07A154 7F047764 460EB03E */ c.le.s $f22, $f14 /* 07A158 7F047768 00000000 */ nop /* 07A15C 7F04776C 45020016 */ bc1fl .L7F0477C8 /* 07A160 7F047770 8E39000C */ lw $t9, 0xc($s1) /* 07A164 7F047774 C4221004 */ lwc1 $f2, %lo(g_GlobalTimerDelta)($at) /* 07A168 7F047778 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 /* 07A16C 7F04777C 4602703E */ c.le.s $f14, $f2 /* 07A170 7F047780 00000000 */ nop /* 07A174 7F047784 45020006 */ bc1fl .L7F0477A0 /* 07A178 7F047788 C6200088 */ lwc1 $f0, 0x88($s1) /* 07A17C 7F04778C C62A0094 */ lwc1 $f10, 0x94($s1) /* 07A180 7F047790 C62E0098 */ lwc1 $f14, 0x98($s1) /* 07A184 7F047794 10000008 */ b .L7F0477B8 /* 07A188 7F047798 E62A0088 */ swc1 $f10, 0x88($s1) /* 07A18C 7F04779C C6200088 */ lwc1 $f0, 0x88($s1) .L7F0477A0: /* 07A190 7F0477A0 C6280094 */ lwc1 $f8, 0x94($s1) /* 07A194 7F0477A4 46004101 */ sub.s $f4, $f8, $f0 /* 07A198 7F0477A8 46022182 */ mul.s $f6, $f4, $f2 /* 07A19C 7F0477AC 460E3283 */ div.s $f10, $f6, $f14 /* 07A1A0 7F0477B0 460A0200 */ add.s $f8, $f0, $f10 /* 07A1A4 7F0477B4 E6280088 */ swc1 $f8, 0x88($s1) .L7F0477B8: /* 07A1A8 7F0477B8 C4241004 */ lwc1 $f4, %lo(g_GlobalTimerDelta)($at) /* 07A1AC 7F0477BC 46047181 */ sub.s $f6, $f14, $f4 /* 07A1B0 7F0477C0 E6260098 */ swc1 $f6, 0x98($s1) /* 07A1B4 7F0477C4 8E39000C */ lw $t9, 0xc($s1) .L7F0477C8: /* 07A1B8 7F0477C8 00008025 */ move $s0, $zero /* 07A1BC 7F0477CC 00194B00 */ sll $t1, $t9, 0xc /* 07A1C0 7F0477D0 05200014 */ bltz $t1, .L7F047824 /* 07A1C4 7F0477D4 00000000 */ nop /* 07A1C8 7F0477D8 0FC13C47 */ jal objIsHealthy /* 07A1CC 7F0477DC 02202025 */ move $a0, $s1 /* 07A1D0 7F0477E0 10400010 */ beqz $v0, .L7F047824 /* 07A1D4 7F0477E4 00000000 */ nop /* 07A1D8 7F0477E8 C62A0088 */ lwc1 $f10, 0x88($s1) /* 07A1DC 7F0477EC 26240058 */ addiu $a0, $s1, 0x58 /* 07A1E0 7F0477F0 3C0544FA */ lui $a1, 0x44fa /* 07A1E4 7F0477F4 460AB03C */ c.lt.s $f22, $f10 /* 07A1E8 7F0477F8 3C06453B */ lui $a2, (0x453B8000 >> 16) # lui $a2, 0x453b /* 07A1EC 7F0477FC 45010006 */ bc1t .L7F047818 /* 07A1F0 7F047800 00000000 */ nop /* 07A1F4 7F047804 C6280094 */ lwc1 $f8, 0x94($s1) /* 07A1F8 7F047808 4608B03C */ c.lt.s $f22, $f8 /* 07A1FC 7F04780C 00000000 */ nop /* 07A200 7F047810 45000004 */ bc1f .L7F047824 /* 07A204 7F047814 00000000 */ nop .L7F047818: /* 07A208 7F047818 0FC14EDD */ jal sub_GAME_7F053894 /* 07A20C 7F04781C 34C68000 */ ori $a2, (0x453B8000 & 0xFFFF) # ori $a2, $a2, 0x8000 /* 07A210 7F047820 00408025 */ move $s0, $v0 .L7F047824: /* 07A214 7F047824 5A000019 */ blezl $s0, .L7F04788C /* 07A218 7F047828 8E2400AC */ lw $a0, 0xac($s1) /* 07A21C 7F04782C 8E2400AC */ lw $a0, 0xac($s1) /* 07A220 7F047830 10800005 */ beqz $a0, .L7F047848 /* 07A224 7F047834 00000000 */ nop /* 07A228 7F047838 0C002094 */ jal sndGetPlayingState /* 07A22C 7F04783C 00000000 */ nop /* 07A230 7F047840 5440000A */ bnezl $v0, .L7F04786C /* 07A234 7F047844 8E2400AC */ lw $a0, 0xac($s1) .L7F047848: /* 07A238 7F047848 0FC2FC1E */ jal lvlGetControlsLockedFlag /* 07A23C 7F04784C 00000000 */ nop /* 07A240 7F047850 14400005 */ bnez $v0, .L7F047868 /* 07A244 7F047854 3C048005 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8005 /* 07A248 7F047858 8C846900 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07A24C 7F04785C 24050041 */ li $a1, 65 /* 07A250 7F047860 0C00209A */ jal sndPlaySfx /* 07A254 7F047864 262600AC */ addiu $a2, $s1, 0xac .L7F047868: /* 07A258 7F047868 8E2400AC */ lw $a0, 0xac($s1) .L7F04786C: /* 07A25C 7F04786C 24050008 */ li $a1, 8 /* 07A260 7F047870 5080000F */ beql $a0, $zero, .L7F0478B0 /* 07A264 7F047874 8E2400A4 */ lw $a0, 0xa4($s1) /* 07A268 7F047878 0C002179 */ jal sndCreatePostEvent /* 07A26C 7F04787C 02003025 */ move $a2, $s0 /* 07A270 7F047880 1000000B */ b .L7F0478B0 /* 07A274 7F047884 8E2400A4 */ lw $a0, 0xa4($s1) /* 07A278 7F047888 8E2400AC */ lw $a0, 0xac($s1) .L7F04788C: /* 07A27C 7F04788C 50800008 */ beql $a0, $zero, .L7F0478B0 /* 07A280 7F047890 8E2400A4 */ lw $a0, 0xa4($s1) /* 07A284 7F047894 0C002094 */ jal sndGetPlayingState /* 07A288 7F047898 00000000 */ nop /* 07A28C 7F04789C 50400004 */ beql $v0, $zero, .L7F0478B0 /* 07A290 7F0478A0 8E2400A4 */ lw $a0, 0xa4($s1) /* 07A294 7F0478A4 0C002120 */ jal sndDeactivate /* 07A298 7F0478A8 8E2400AC */ lw $a0, 0xac($s1) /* 07A29C 7F0478AC 8E2400A4 */ lw $a0, 0xa4($s1) .L7F0478B0: /* 07A2A0 7F0478B0 3C058006 */ lui $a1, %hi(g_CurrentSetup+0) # $a1, 0x8006 /* 07A2A4 7F0478B4 5080002A */ beql $a0, $zero, .L7F047960 /* 07A2A8 7F0478B8 8E2C0008 */ lw $t4, 8($s1) /* 07A2AC 7F0478BC 8E2800A8 */ lw $t0, 0xa8($s1) /* 07A2B0 7F0478C0 8C8A0000 */ lw $t2, ($a0) /* 07A2B4 7F0478C4 24A54C40 */ addiu $a1, %lo(g_CurrentSetup+0) # addiu $a1, $a1, 0x4c40 /* 07A2B8 7F0478C8 00085880 */ sll $t3, $t0, 2 /* 07A2BC 7F0478CC 014B1021 */ addu $v0, $t2, $t3 /* 07A2C0 7F0478D0 8C4C0000 */ lw $t4, ($v0) /* 07A2C4 7F0478D4 8CAD0000 */ lw $t5, ($a1) /* 07A2C8 7F0478D8 8CB90018 */ lw $t9, 0x18($a1) /* 07A2CC 7F0478DC 000C7100 */ sll $t6, $t4, 4 /* 07A2D0 7F0478E0 01CD1821 */ addu $v1, $t6, $t5 /* 07A2D4 7F0478E4 8C780000 */ lw $t8, ($v1) /* 07A2D8 7F0478E8 C6260058 */ lwc1 $f6, 0x58($s1) /* 07A2DC 7F0478EC C6280060 */ lwc1 $f8, 0x60($s1) /* 07A2E0 7F0478F0 00187880 */ sll $t7, $t8, 2 /* 07A2E4 7F0478F4 01F87823 */ subu $t7, $t7, $t8 /* 07A2E8 7F0478F8 000F7880 */ sll $t7, $t7, 2 /* 07A2EC 7F0478FC 01F87823 */ subu $t7, $t7, $t8 /* 07A2F0 7F047900 000F7880 */ sll $t7, $t7, 2 /* 07A2F4 7F047904 01F93021 */ addu $a2, $t7, $t9 /* 07A2F8 7F047908 C4C40000 */ lwc1 $f4, ($a2) /* 07A2FC 7F04790C C4CA0008 */ lwc1 $f10, 8($a2) /* 07A300 7F047910 AFA6047C */ sw $a2, 0x47c($sp) /* 07A304 7F047914 46062301 */ sub.s $f12, $f4, $f6 /* 07A308 7F047918 0FC16BB8 */ jal atan2f /* 07A30C 7F04791C 46085381 */ sub.s $f14, $f10, $f8 /* 07A310 7F047920 E7A00480 */ swc1 $f0, 0x480($sp) /* 07A314 7F047924 8E290008 */ lw $t1, 8($s1) /* 07A318 7F047928 3C01DFFF */ lui $at, (0xDFFFFFFF >> 16) # lui $at, 0xdfff /* 07A31C 7F04792C C7A40480 */ lwc1 $f4, 0x480($sp) /* 07A320 7F047930 00094080 */ sll $t0, $t1, 2 /* 07A324 7F047934 05010018 */ bgez $t0, .L7F047998 /* 07A328 7F047938 3421FFFF */ ori $at, (0xDFFFFFFF & 0xFFFF) # ori $at, $at, 0xffff /* 07A32C 7F04793C 8E2A0008 */ lw $t2, 8($s1) /* 07A330 7F047940 E62400A0 */ swc1 $f4, 0xa0($s1) /* 07A334 7F047944 02202025 */ move $a0, $s1 /* 07A338 7F047948 01415824 */ and $t3, $t2, $at /* 07A33C 7F04794C 0FC11333 */ jal sub_GAME_7F044B38 /* 07A340 7F047950 AE2B0008 */ sw $t3, 8($s1) /* 07A344 7F047954 10000011 */ b .L7F04799C /* 07A348 7F047958 C6260088 */ lwc1 $f6, 0x88($s1) /* 07A34C 7F04795C 8E2C0008 */ lw $t4, 8($s1) .L7F047960: /* 07A350 7F047960 000C7080 */ sll $t6, $t4, 2 /* 07A354 7F047964 05C3000D */ bgezl $t6, .L7F04799C /* 07A358 7F047968 C6260088 */ lwc1 $f6, 0x88($s1) /* 07A35C 7F04796C C62C0038 */ lwc1 $f12, 0x38($s1) /* 07A360 7F047970 0FC16BB8 */ jal atan2f /* 07A364 7F047974 C62E0040 */ lwc1 $f14, 0x40($s1) /* 07A368 7F047978 8E2D0008 */ lw $t5, 8($s1) /* 07A36C 7F04797C 3C01DFFF */ lui $at, (0xDFFFFFFF >> 16) # lui $at, 0xdfff /* 07A370 7F047980 3421FFFF */ ori $at, (0xDFFFFFFF & 0xFFFF) # ori $at, $at, 0xffff /* 07A374 7F047984 01A1C024 */ and $t8, $t5, $at /* 07A378 7F047988 E62000A0 */ swc1 $f0, 0xa0($s1) /* 07A37C 7F04798C AE380008 */ sw $t8, 8($s1) /* 07A380 7F047990 0FC11333 */ jal sub_GAME_7F044B38 /* 07A384 7F047994 02202025 */ move $a0, $s1 .L7F047998: /* 07A388 7F047998 C6260088 */ lwc1 $f6, 0x88($s1) .L7F04799C: /* 07A38C 7F04799C 4606B03C */ c.lt.s $f22, $f6 /* 07A390 7F0479A0 00000000 */ nop /* 07A394 7F0479A4 450201AA */ bc1fl .L7F048050 /* 07A398 7F0479A8 8E280008 */ lw $t0, 8($s1) /* 07A39C 7F0479AC 8E6F0014 */ lw $t7, 0x14($s3) /* 07A3A0 7F0479B0 8FB9047C */ lw $t9, 0x47c($sp) /* 07A3A4 7F0479B4 4600B386 */ mov.s $f14, $f22 /* 07A3A8 7F0479B8 AFAF046C */ sw $t7, 0x46c($sp) /* 07A3AC 7F0479BC C62C00A0 */ lwc1 $f12, 0xa0($s1) /* 07A3B0 7F0479C0 E7AC043C */ swc1 $f12, 0x43c($sp) /* 07A3B4 7F0479C4 C62A009C */ lwc1 $f10, 0x9c($s1) /* 07A3B8 7F0479C8 13200012 */ beqz $t9, .L7F047A14 /* 07A3BC 7F0479CC E7AA0438 */ swc1 $f10, 0x438($sp) /* 07A3C0 7F0479D0 26300058 */ addiu $s0, $s1, 0x58 /* 07A3C4 7F0479D4 0FC1606B */ jal sinf /* 07A3C8 7F0479D8 E7AE0434 */ swc1 $f14, 0x434($sp) /* 07A3CC 7F0479DC E7A00440 */ swc1 $f0, 0x440($sp) /* 07A3D0 7F0479E0 E7B60444 */ swc1 $f22, 0x444($sp) /* 07A3D4 7F0479E4 0FC16068 */ jal cosf /* 07A3D8 7F0479E8 C62C00A0 */ lwc1 $f12, 0xa0($s1) /* 07A3DC 7F0479EC E7A00448 */ swc1 $f0, 0x448($sp) /* 07A3E0 7F0479F0 02002025 */ move $a0, $s0 /* 07A3E4 7F0479F4 27A50440 */ addiu $a1, $sp, 0x440 /* 07A3E8 7F0479F8 8FA6047C */ lw $a2, 0x47c($sp) /* 07A3EC 7F0479FC 0FC0BF1E */ jal chrlvGeometryRelated7F02FC34 /* 07A3F0 7F047A00 3C074120 */ lui $a3, 0x4120 /* 07A3F4 7F047A04 10400003 */ beqz $v0, .L7F047A14 /* 07A3F8 7F047A08 C7AE0434 */ lwc1 $f14, 0x434($sp) /* 07A3FC 7F047A0C C62800A0 */ lwc1 $f8, 0xa0($s1) /* 07A400 7F047A10 E7A80480 */ swc1 $f8, 0x480($sp) .L7F047A14: /* 07A404 7F047A14 3C018005 */ lui $at, %hi(D_80052B4C) # $at, 0x8005 /* 07A408 7F047A18 C4248C8C */ lwc1 $f4, %lo(D_80052B4C)($at) /* 07A40C 7F047A1C 3C018005 */ lui $at, %hi(D_80052B50) # $at, 0x8005 /* 07A410 7F047A20 C4268C90 */ lwc1 $f6, %lo(D_80052B50)($at) /* 07A414 7F047A24 3C073909 */ lui $a3, (0x3909421F >> 16) # lui $a3, 0x3909 /* 07A418 7F047A28 34E7421F */ ori $a3, (0x3909421F & 0xFFFF) # ori $a3, $a3, 0x421f /* 07A41C 7F047A2C 262400A0 */ addiu $a0, $s1, 0xa0 /* 07A420 7F047A30 8FA50480 */ lw $a1, 0x480($sp) /* 07A424 7F047A34 2626009C */ addiu $a2, $s1, 0x9c /* 07A428 7F047A38 E7AE0434 */ swc1 $f14, 0x434($sp) /* 07A42C 7F047A3C E7A40010 */ swc1 $f4, 0x10($sp) /* 07A430 7F047A40 0FC10C73 */ jal chrobjCallsApplySpeed /* 07A434 7F047A44 E7A60014 */ swc1 $f6, 0x14($sp) /* 07A438 7F047A48 3C018005 */ lui $at, %hi(D_80052B54) # $at, 0x8005 /* 07A43C 7F047A4C C4348C94 */ lwc1 $f20, %lo(D_80052B54)($at) /* 07A440 7F047A50 C62C00A0 */ lwc1 $f12, 0xa0($s1) /* 07A444 7F047A54 C7AE0434 */ lwc1 $f14, 0x434($sp) /* 07A448 7F047A58 3C018005 */ lui $at, %hi(D_80052B58) # $at, 0x8005 /* 07A44C 7F047A5C 460CA03E */ c.le.s $f20, $f12 /* 07A450 7F047A60 00000000 */ nop /* 07A454 7F047A64 45020009 */ bc1fl .L7F047A8C /* 07A458 7F047A68 4616603C */ c.lt.s $f12, $f22 /* 07A45C 7F047A6C 46146281 */ sub.s $f10, $f12, $f20 .L7F047A70: /* 07A460 7F047A70 E62A00A0 */ swc1 $f10, 0xa0($s1) /* 07A464 7F047A74 C62C00A0 */ lwc1 $f12, 0xa0($s1) /* 07A468 7F047A78 460CA03E */ c.le.s $f20, $f12 /* 07A46C 7F047A7C 00000000 */ nop /* 07A470 7F047A80 4503FFFB */ bc1tl .L7F047A70 /* 07A474 7F047A84 46146281 */ sub.s $f10, $f12, $f20 /* 07A478 7F047A88 4616603C */ c.lt.s $f12, $f22 .L7F047A8C: /* 07A47C 7F047A8C 00000000 */ nop /* 07A480 7F047A90 45020009 */ bc1fl .L7F047AB8 /* 07A484 7F047A94 C7A40480 */ lwc1 $f4, 0x480($sp) /* 07A488 7F047A98 46146200 */ add.s $f8, $f12, $f20 .L7F047A9C: /* 07A48C 7F047A9C E62800A0 */ swc1 $f8, 0xa0($s1) /* 07A490 7F047AA0 C62C00A0 */ lwc1 $f12, 0xa0($s1) /* 07A494 7F047AA4 4616603C */ c.lt.s $f12, $f22 /* 07A498 7F047AA8 00000000 */ nop /* 07A49C 7F047AAC 4503FFFB */ bc1tl .L7F047A9C /* 07A4A0 7F047AB0 46146200 */ add.s $f8, $f12, $f20 /* 07A4A4 7F047AB4 C7A40480 */ lwc1 $f4, 0x480($sp) .L7F047AB8: /* 07A4A8 7F047AB8 460C2032 */ c.eq.s $f4, $f12 /* 07A4AC 7F047ABC 00000000 */ nop /* 07A4B0 7F047AC0 4502000F */ bc1fl .L7F047B00 /* 07A4B4 7F047AC4 8E890008 */ lw $t1, 8($s4) /* 07A4B8 7F047AC8 C620009C */ lwc1 $f0, 0x9c($s1) /* 07A4BC 7F047ACC C4268C98 */ lwc1 $f6, %lo(D_80052B58)($at) /* 07A4C0 7F047AD0 3C018005 */ lui $at, %hi(D_80052B5C) # $at, 0x8005 /* 07A4C4 7F047AD4 4606003E */ c.le.s $f0, $f6 /* 07A4C8 7F047AD8 00000000 */ nop /* 07A4CC 7F047ADC 45020008 */ bc1fl .L7F047B00 /* 07A4D0 7F047AE0 8E890008 */ lw $t1, 8($s4) /* 07A4D4 7F047AE4 C42A8C9C */ lwc1 $f10, %lo(D_80052B5C)($at) /* 07A4D8 7F047AE8 4600503E */ c.le.s $f10, $f0 /* 07A4DC 7F047AEC 00000000 */ nop /* 07A4E0 7F047AF0 45020003 */ bc1fl .L7F047B00 /* 07A4E4 7F047AF4 8E890008 */ lw $t1, 8($s4) /* 07A4E8 7F047AF8 E636009C */ swc1 $f22, 0x9c($s1) /* 07A4EC 7F047AFC 8E890008 */ lw $t1, 8($s4) .L7F047B00: /* 07A4F0 7F047B00 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 /* 07A4F4 7F047B04 C4221004 */ lwc1 $f2, %lo(g_GlobalTimerDelta)($at) /* 07A4F8 7F047B08 8D280008 */ lw $t0, 8($t1) /* 07A4FC 7F047B0C C7A4043C */ lwc1 $f4, 0x43c($sp) /* 07A500 7F047B10 4602B03C */ c.lt.s $f22, $f2 /* 07A504 7F047B14 8D0A000C */ lw $t2, 0xc($t0) /* 07A508 7F047B18 45000004 */ bc1f .L7F047B2C /* 07A50C 7F047B1C 8D500004 */ lw $s0, 4($t2) /* 07A510 7F047B20 C62800A0 */ lwc1 $f8, 0xa0($s1) /* 07A514 7F047B24 46044181 */ sub.s $f6, $f8, $f4 /* 07A518 7F047B28 46023383 */ div.s $f14, $f6, $f2 .L7F047B2C: /* 07A51C 7F047B2C 4616703C */ c.lt.s $f14, $f22 /* 07A520 7F047B30 00000000 */ nop /* 07A524 7F047B34 45000002 */ bc1f .L7F047B40 /* 07A528 7F047B38 00000000 */ nop /* 07A52C 7F047B3C 46147380 */ add.s $f14, $f14, $f20 .L7F047B40: /* 07A530 7F047B40 0FC1606B */ jal sinf /* 07A534 7F047B44 46007306 */ mov.s $f12, $f14 /* 07A538 7F047B48 C60A0008 */ lwc1 $f10, 8($s0) /* 07A53C 7F047B4C C6880014 */ lwc1 $f8, 0x14($s4) /* 07A540 7F047B50 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 /* 07A544 7F047B54 46085102 */ mul.s $f4, $f10, $f8 /* 07A548 7F047B58 C42A1004 */ lwc1 $f10, %lo(g_GlobalTimerDelta)($at) /* 07A54C 7F047B5C 46040182 */ mul.s $f6, $f0, $f4 /* 07A550 7F047B60 00000000 */ nop /* 07A554 7F047B64 460A3202 */ mul.s $f8, $f6, $f10 /* 07A558 7F047B68 E7A80464 */ swc1 $f8, 0x464($sp) /* 07A55C 7F047B6C 0FC1606B */ jal sinf /* 07A560 7F047B70 C62C00A0 */ lwc1 $f12, 0xa0($s1) /* 07A564 7F047B74 E7A00440 */ swc1 $f0, 0x440($sp) /* 07A568 7F047B78 E7B60444 */ swc1 $f22, 0x444($sp) /* 07A56C 7F047B7C 0FC16068 */ jal cosf /* 07A570 7F047B80 C62C00A0 */ lwc1 $f12, 0xa0($s1) /* 07A574 7F047B84 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07A578 7F047B88 44817000 */ mtc1 $at, $f14 /* 07A57C 7F047B8C E7A00448 */ swc1 $f0, 0x448($sp) /* 07A580 7F047B90 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 /* 07A584 7F047B94 C4221004 */ lwc1 $f2, %lo(g_GlobalTimerDelta)($at) /* 07A588 7F047B98 C6240088 */ lwc1 $f4, 0x88($s1) /* 07A58C 7F047B9C C7AA0440 */ lwc1 $f10, 0x440($sp) /* 07A590 7F047BA0 C7AC0464 */ lwc1 $f12, 0x464($sp) /* 07A594 7F047BA4 46022182 */ mul.s $f6, $f4, $f2 /* 07A598 7F047BA8 C6240058 */ lwc1 $f4, 0x58($s1) /* 07A59C 7F047BAC 27B0046C */ addiu $s0, $sp, 0x46c /* 07A5A0 7F047BB0 240B001F */ li $t3, 31 /* 07A5A4 7F047BB4 02002025 */ move $a0, $s0 /* 07A5A8 7F047BB8 460A3202 */ mul.s $f8, $f6, $f10 /* 07A5AC 7F047BBC 46082180 */ add.s $f6, $f4, $f8 /* 07A5B0 7F047BC0 C7A40448 */ lwc1 $f4, 0x448($sp) /* 07A5B4 7F047BC4 460C2202 */ mul.s $f8, $f4, $f12 /* 07A5B8 7F047BC8 46083181 */ sub.s $f6, $f6, $f8 /* 07A5BC 7F047BCC E7A6069C */ swc1 $f6, 0x69c($sp) /* 07A5C0 7F047BD0 C628005C */ lwc1 $f8, 0x5c($s1) /* 07A5C4 7F047BD4 44073000 */ mfc1 $a3, $f6 /* 07A5C8 7F047BD8 E7A806A0 */ swc1 $f8, 0x6a0($sp) /* 07A5CC 7F047BDC C6280088 */ lwc1 $f8, 0x88($s1) /* 07A5D0 7F047BE0 46024202 */ mul.s $f8, $f8, $f2 /* 07A5D4 7F047BE4 00000000 */ nop /* 07A5D8 7F047BE8 46044202 */ mul.s $f8, $f8, $f4 /* 07A5DC 7F047BEC C6240060 */ lwc1 $f4, 0x60($s1) /* 07A5E0 7F047BF0 46082100 */ add.s $f4, $f4, $f8 /* 07A5E4 7F047BF4 460C5202 */ mul.s $f8, $f10, $f12 /* 07A5E8 7F047BF8 46044280 */ add.s $f10, $f8, $f4 /* 07A5EC 7F047BFC E7AA06A4 */ swc1 $f10, 0x6a4($sp) /* 07A5F0 7F047C00 8E660010 */ lw $a2, 0x10($s3) /* 07A5F4 7F047C04 8E650008 */ lw $a1, 8($s3) /* 07A5F8 7F047C08 E7B60020 */ swc1 $f22, 0x20($sp) /* 07A5FC 7F047C0C E7B60018 */ swc1 $f22, 0x18($sp) /* 07A600 7F047C10 AFAB0014 */ sw $t3, 0x14($sp) /* 07A604 7F047C14 E7AA0010 */ swc1 $f10, 0x10($sp) /* 07A608 7F047C18 E7AE0024 */ swc1 $f14, 0x24($sp) /* 07A60C 7F047C1C 0FC2C039 */ jal stanTestLineUnobstructed /* 07A610 7F047C20 E7AE001C */ swc1 $f14, 0x1c($sp) /* 07A614 7F047C24 104000F9 */ beqz $v0, .L7F04800C /* 07A618 7F047C28 02002025 */ move $a0, $s0 /* 07A61C 7F047C2C 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07A620 7F047C30 44814000 */ mtc1 $at, $f8 /* 07A624 7F047C34 240C001F */ li $t4, 31 /* 07A628 7F047C38 AFAC0010 */ sw $t4, 0x10($sp) /* 07A62C 7F047C3C 8FA5069C */ lw $a1, 0x69c($sp) /* 07A630 7F047C40 8FA606A4 */ lw $a2, 0x6a4($sp) /* 07A634 7F047C44 3C074120 */ lui $a3, 0x4120 /* 07A638 7F047C48 E7B60014 */ swc1 $f22, 0x14($sp) /* 07A63C 7F047C4C 0FC2C2DE */ jal stanTestVolume /* 07A640 7F047C50 E7A80018 */ swc1 $f8, 0x18($sp) /* 07A644 7F047C54 044300EE */ bgezl $v0, .L7F048010 /* 07A648 7F047C58 C6260098 */ lwc1 $f6, 0x98($s1) /* 07A64C 7F047C5C 8E6E0014 */ lw $t6, 0x14($s3) /* 07A650 7F047C60 8FAD046C */ lw $t5, 0x46c($sp) /* 07A654 7F047C64 02202025 */ move $a0, $s1 /* 07A658 7F047C68 AFAE0450 */ sw $t6, 0x450($sp) /* 07A65C 7F047C6C C6640008 */ lwc1 $f4, 8($s3) /* 07A660 7F047C70 E7A40454 */ swc1 $f4, 0x454($sp) /* 07A664 7F047C74 C666000C */ lwc1 $f6, 0xc($s3) /* 07A668 7F047C78 E7A60458 */ swc1 $f6, 0x458($sp) /* 07A66C 7F047C7C C66A0010 */ lwc1 $f10, 0x10($s3) /* 07A670 7F047C80 E7AA045C */ swc1 $f10, 0x45c($sp) /* 07A674 7F047C84 AE6D0014 */ sw $t5, 0x14($s3) /* 07A678 7F047C88 C7A2069C */ lwc1 $f2, 0x69c($sp) /* 07A67C 7F047C8C E6620008 */ swc1 $f2, 8($s3) /* 07A680 7F047C90 E6220058 */ swc1 $f2, 0x58($s1) /* 07A684 7F047C94 C7A206A4 */ lwc1 $f2, 0x6a4($sp) /* 07A688 7F047C98 E6620010 */ swc1 $f2, 0x10($s3) /* 07A68C 7F047C9C 0FC10151 */ jal chrobjCollisionRelated /* 07A690 7F047CA0 E6220060 */ swc1 $f2, 0x60($s1) /* 07A694 7F047CA4 0FC15BE0 */ jal setupUpdateObjectRoomPosition /* 07A698 7F047CA8 02202025 */ move $a0, $s1 /* 07A69C 7F047CAC 0FC1128F */ jal sub_GAME_7F0448A8 /* 07A6A0 7F047CB0 02602025 */ move $a0, $s3 /* 07A6A4 7F047CB4 10400092 */ beqz $v0, .L7F047F00 /* 07A6A8 7F047CB8 00409025 */ move $s2, $v0 /* 07A6AC 7F047CBC 8E980008 */ lw $t8, 8($s4) /* 07A6B0 7F047CC0 C6280018 */ lwc1 $f8, 0x18($s1) /* 07A6B4 7F047CC4 02002025 */ move $a0, $s0 /* 07A6B8 7F047CC8 8F0F0008 */ lw $t7, 8($t8) /* 07A6BC 7F047CCC 8DF90028 */ lw $t9, 0x28($t7) /* 07A6C0 7F047CD0 8F220004 */ lw $v0, 4($t9) /* 07A6C4 7F047CD4 C4440004 */ lwc1 $f4, 4($v0) /* 07A6C8 7F047CD8 46044182 */ mul.s $f6, $f8, $f4 /* 07A6CC 7F047CDC E7A60428 */ swc1 $f6, 0x428($sp) /* 07A6D0 7F047CE0 C62A0020 */ lwc1 $f10, 0x20($s1) /* 07A6D4 7F047CE4 C4480004 */ lwc1 $f8, 4($v0) /* 07A6D8 7F047CE8 46085102 */ mul.s $f4, $f10, $f8 /* 07A6DC 7F047CEC E7A40430 */ swc1 $f4, 0x430($sp) /* 07A6E0 7F047CF0 C6260018 */ lwc1 $f6, 0x18($s1) /* 07A6E4 7F047CF4 C44A0008 */ lwc1 $f10, 8($v0) /* 07A6E8 7F047CF8 460A3202 */ mul.s $f8, $f6, $f10 /* 07A6EC 7F047CFC E7A8041C */ swc1 $f8, 0x41c($sp) /* 07A6F0 7F047D00 C6240020 */ lwc1 $f4, 0x20($s1) /* 07A6F4 7F047D04 C4460008 */ lwc1 $f6, 8($v0) /* 07A6F8 7F047D08 46062282 */ mul.s $f10, $f4, $f6 /* 07A6FC 7F047D0C E7AA0424 */ swc1 $f10, 0x424($sp) /* 07A700 7F047D10 C6280038 */ lwc1 $f8, 0x38($s1) /* 07A704 7F047D14 C4440014 */ lwc1 $f4, 0x14($v0) /* 07A708 7F047D18 46044182 */ mul.s $f6, $f8, $f4 /* 07A70C 7F047D1C E7A60410 */ swc1 $f6, 0x410($sp) /* 07A710 7F047D20 C62A0040 */ lwc1 $f10, 0x40($s1) /* 07A714 7F047D24 C4480014 */ lwc1 $f8, 0x14($v0) /* 07A718 7F047D28 46085102 */ mul.s $f4, $f10, $f8 /* 07A71C 7F047D2C E7A40418 */ swc1 $f4, 0x418($sp) /* 07A720 7F047D30 C6260038 */ lwc1 $f6, 0x38($s1) /* 07A724 7F047D34 C44A0018 */ lwc1 $f10, 0x18($v0) /* 07A728 7F047D38 460A3202 */ mul.s $f8, $f6, $f10 /* 07A72C 7F047D3C E7A80404 */ swc1 $f8, 0x404($sp) /* 07A730 7F047D40 C6240040 */ lwc1 $f4, 0x40($s1) /* 07A734 7F047D44 C4460018 */ lwc1 $f6, 0x18($v0) /* 07A738 7F047D48 C7A80410 */ lwc1 $f8, 0x410($sp) /* 07A73C 7F047D4C 46062282 */ mul.s $f10, $f4, $f6 /* 07A740 7F047D50 C7A40428 */ lwc1 $f4, 0x428($sp) /* 07A744 7F047D54 E7AA040C */ swc1 $f10, 0x40c($sp) /* 07A748 7F047D58 8E690014 */ lw $t1, 0x14($s3) /* 07A74C 7F047D5C AFA9046C */ sw $t1, 0x46c($sp) /* 07A750 7F047D60 C6600008 */ lwc1 $f0, 8($s3) /* 07A754 7F047D64 C6620010 */ lwc1 $f2, 0x10($s3) /* 07A758 7F047D68 46040180 */ add.s $f6, $f0, $f4 /* 07A75C 7F047D6C C7A40418 */ lwc1 $f4, 0x418($sp) /* 07A760 7F047D70 44050000 */ mfc1 $a1, $f0 /* 07A764 7F047D74 44061000 */ mfc1 $a2, $f2 /* 07A768 7F047D78 46064280 */ add.s $f10, $f8, $f6 /* 07A76C 7F047D7C C7A80430 */ lwc1 $f8, 0x430($sp) /* 07A770 7F047D80 46081180 */ add.s $f6, $f2, $f8 /* 07A774 7F047D84 44075000 */ mfc1 $a3, $f10 /* 07A778 7F047D88 46062280 */ add.s $f10, $f4, $f6 /* 07A77C 7F047D8C 0FC2BFA9 */ jal walkTilesBetweenPoints_NoCallback /* 07A780 7F047D90 E7AA0010 */ swc1 $f10, 0x10($sp) /* 07A784 7F047D94 10400059 */ beqz $v0, .L7F047EFC /* 07A788 7F047D98 C7A40428 */ lwc1 $f4, 0x428($sp) /* 07A78C 7F047D9C C6600008 */ lwc1 $f0, 8($s3) /* 07A790 7F047DA0 C7A80410 */ lwc1 $f8, 0x410($sp) /* 07A794 7F047DA4 C6620010 */ lwc1 $f2, 0x10($s3) /* 07A798 7F047DA8 46040180 */ add.s $f6, $f0, $f4 /* 07A79C 7F047DAC C7A40418 */ lwc1 $f4, 0x418($sp) /* 07A7A0 7F047DB0 02002025 */ move $a0, $s0 /* 07A7A4 7F047DB4 46064280 */ add.s $f10, $f8, $f6 /* 07A7A8 7F047DB8 C7A60430 */ lwc1 $f6, 0x430($sp) /* 07A7AC 7F047DBC 44055000 */ mfc1 $a1, $f10 /* 07A7B0 7F047DC0 46061280 */ add.s $f10, $f2, $f6 /* 07A7B4 7F047DC4 460A2180 */ add.s $f6, $f4, $f10 /* 07A7B8 7F047DC8 C7AA041C */ lwc1 $f10, 0x41c($sp) /* 07A7BC 7F047DCC 44063000 */ mfc1 $a2, $f6 /* 07A7C0 7F047DD0 460A0180 */ add.s $f6, $f0, $f10 /* 07A7C4 7F047DD4 46064280 */ add.s $f10, $f8, $f6 /* 07A7C8 7F047DD8 C7A80424 */ lwc1 $f8, 0x424($sp) /* 07A7CC 7F047DDC 46081180 */ add.s $f6, $f2, $f8 /* 07A7D0 7F047DE0 44075000 */ mfc1 $a3, $f10 /* 07A7D4 7F047DE4 46062280 */ add.s $f10, $f4, $f6 /* 07A7D8 7F047DE8 0FC2BFA9 */ jal walkTilesBetweenPoints_NoCallback /* 07A7DC 7F047DEC E7AA0010 */ swc1 $f10, 0x10($sp) /* 07A7E0 7F047DF0 10400042 */ beqz $v0, .L7F047EFC /* 07A7E4 7F047DF4 C7A4041C */ lwc1 $f4, 0x41c($sp) /* 07A7E8 7F047DF8 C6680008 */ lwc1 $f8, 8($s3) /* 07A7EC 7F047DFC C7A60410 */ lwc1 $f6, 0x410($sp) /* 07A7F0 7F047E00 02002025 */ move $a0, $s0 /* 07A7F4 7F047E04 46044000 */ add.s $f0, $f8, $f4 /* 07A7F8 7F047E08 C7A40424 */ lwc1 $f4, 0x424($sp) /* 07A7FC 7F047E0C C6680010 */ lwc1 $f8, 0x10($s3) /* 07A800 7F047E10 46003280 */ add.s $f10, $f6, $f0 /* 07A804 7F047E14 C7A60418 */ lwc1 $f6, 0x418($sp) /* 07A808 7F047E18 46044080 */ add.s $f2, $f8, $f4 /* 07A80C 7F047E1C 44055000 */ mfc1 $a1, $f10 /* 07A810 7F047E20 C7A80404 */ lwc1 $f8, 0x404($sp) /* 07A814 7F047E24 46023280 */ add.s $f10, $f6, $f2 /* 07A818 7F047E28 C7A6040C */ lwc1 $f6, 0x40c($sp) /* 07A81C 7F047E2C 46004100 */ add.s $f4, $f8, $f0 /* 07A820 7F047E30 44065000 */ mfc1 $a2, $f10 /* 07A824 7F047E34 46023280 */ add.s $f10, $f6, $f2 /* 07A828 7F047E38 44072000 */ mfc1 $a3, $f4 /* 07A82C 7F047E3C 0FC2BFA9 */ jal walkTilesBetweenPoints_NoCallback /* 07A830 7F047E40 E7AA0010 */ swc1 $f10, 0x10($sp) /* 07A834 7F047E44 1040002D */ beqz $v0, .L7F047EFC /* 07A838 7F047E48 C7A4041C */ lwc1 $f4, 0x41c($sp) /* 07A83C 7F047E4C C6600008 */ lwc1 $f0, 8($s3) /* 07A840 7F047E50 C7A80404 */ lwc1 $f8, 0x404($sp) /* 07A844 7F047E54 C6620010 */ lwc1 $f2, 0x10($s3) /* 07A848 7F047E58 46040180 */ add.s $f6, $f0, $f4 /* 07A84C 7F047E5C C7A4040C */ lwc1 $f4, 0x40c($sp) /* 07A850 7F047E60 02002025 */ move $a0, $s0 /* 07A854 7F047E64 46064280 */ add.s $f10, $f8, $f6 /* 07A858 7F047E68 C7A60424 */ lwc1 $f6, 0x424($sp) /* 07A85C 7F047E6C 44055000 */ mfc1 $a1, $f10 /* 07A860 7F047E70 46061280 */ add.s $f10, $f2, $f6 /* 07A864 7F047E74 460A2180 */ add.s $f6, $f4, $f10 /* 07A868 7F047E78 C7AA0428 */ lwc1 $f10, 0x428($sp) /* 07A86C 7F047E7C 44063000 */ mfc1 $a2, $f6 /* 07A870 7F047E80 460A0180 */ add.s $f6, $f0, $f10 /* 07A874 7F047E84 46064280 */ add.s $f10, $f8, $f6 /* 07A878 7F047E88 C7A80430 */ lwc1 $f8, 0x430($sp) /* 07A87C 7F047E8C 46081180 */ add.s $f6, $f2, $f8 /* 07A880 7F047E90 44075000 */ mfc1 $a3, $f10 /* 07A884 7F047E94 46062280 */ add.s $f10, $f4, $f6 /* 07A888 7F047E98 0FC2BFA9 */ jal walkTilesBetweenPoints_NoCallback /* 07A88C 7F047E9C E7AA0010 */ swc1 $f10, 0x10($sp) /* 07A890 7F047EA0 10400016 */ beqz $v0, .L7F047EFC /* 07A894 7F047EA4 C7A40428 */ lwc1 $f4, 0x428($sp) /* 07A898 7F047EA8 C6680008 */ lwc1 $f8, 8($s3) /* 07A89C 7F047EAC C7A60404 */ lwc1 $f6, 0x404($sp) /* 07A8A0 7F047EB0 02002025 */ move $a0, $s0 /* 07A8A4 7F047EB4 46044000 */ add.s $f0, $f8, $f4 /* 07A8A8 7F047EB8 C7A40430 */ lwc1 $f4, 0x430($sp) /* 07A8AC 7F047EBC C6680010 */ lwc1 $f8, 0x10($s3) /* 07A8B0 7F047EC0 46003280 */ add.s $f10, $f6, $f0 /* 07A8B4 7F047EC4 C7A6040C */ lwc1 $f6, 0x40c($sp) /* 07A8B8 7F047EC8 46044080 */ add.s $f2, $f8, $f4 /* 07A8BC 7F047ECC 44055000 */ mfc1 $a1, $f10 /* 07A8C0 7F047ED0 C7A80410 */ lwc1 $f8, 0x410($sp) /* 07A8C4 7F047ED4 46023280 */ add.s $f10, $f6, $f2 /* 07A8C8 7F047ED8 C7A60418 */ lwc1 $f6, 0x418($sp) /* 07A8CC 7F047EDC 46004100 */ add.s $f4, $f8, $f0 /* 07A8D0 7F047EE0 44065000 */ mfc1 $a2, $f10 /* 07A8D4 7F047EE4 46023280 */ add.s $f10, $f6, $f2 /* 07A8D8 7F047EE8 44072000 */ mfc1 $a3, $f4 /* 07A8DC 7F047EEC 0FC2BFA9 */ jal walkTilesBetweenPoints_NoCallback /* 07A8E0 7F047EF0 E7AA0010 */ swc1 $f10, 0x10($sp) /* 07A8E4 7F047EF4 14400002 */ bnez $v0, .L7F047F00 /* 07A8E8 7F047EF8 00000000 */ nop .L7F047EFC: /* 07A8EC 7F047EFC 00009025 */ move $s2, $zero .L7F047F00: /* 07A8F0 7F047F00 12400022 */ beqz $s2, .L7F047F8C /* 07A8F4 7F047F04 02202025 */ move $a0, $s1 /* 07A8F8 7F047F08 26300058 */ addiu $s0, $s1, 0x58 /* 07A8FC 7F047F0C 0FC11333 */ jal sub_GAME_7F044B38 /* 07A900 7F047F10 2632007C */ addiu $s2, $s1, 0x7c /* 07A904 7F047F14 02602025 */ move $a0, $s3 /* 07A908 7F047F18 0FC100DD */ jal sub_GAME_7F0402B4 /* 07A90C 7F047F1C 02402825 */ move $a1, $s2 /* 07A910 7F047F20 0FC147AB */ jal detonate_proxmine_In_range /* 07A914 7F047F24 02002025 */ move $a0, $s0 /* 07A918 7F047F28 8FA8047C */ lw $t0, 0x47c($sp) /* 07A91C 7F047F2C 27A40454 */ addiu $a0, $sp, 0x454 /* 07A920 7F047F30 27A5069C */ addiu $a1, $sp, 0x69c /* 07A924 7F047F34 11000054 */ beqz $t0, .L7F048088 /* 07A928 7F047F38 01003025 */ move $a2, $t0 /* 07A92C 7F047F3C 0FC0BF65 */ jal chrlvIsArrivingLaterallyAtPos /* 07A930 7F047F40 3C0742C8 */ lui $a3, 0x42c8 /* 07A934 7F047F44 10400050 */ beqz $v0, .L7F048088 /* 07A938 7F047F48 00000000 */ nop /* 07A93C 7F047F4C 8E2A00A8 */ lw $t2, 0xa8($s1) /* 07A940 7F047F50 8E2C00A4 */ lw $t4, 0xa4($s1) /* 07A944 7F047F54 3C014270 */ li $at, 0x42700000 # 60.000000 /* 07A948 7F047F58 254B0001 */ addiu $t3, $t2, 1 /* 07A94C 7F047F5C AE2B00A8 */ sw $t3, 0xa8($s1) /* 07A950 7F047F60 8D8E0000 */ lw $t6, ($t4) /* 07A954 7F047F64 000BC080 */ sll $t8, $t3, 2 /* 07A958 7F047F68 01D87821 */ addu $t7, $t6, $t8 /* 07A95C 7F047F6C 8DF90000 */ lw $t9, ($t7) /* 07A960 7F047F70 07210045 */ bgez $t9, .L7F048088 /* 07A964 7F047F74 00000000 */ nop /* 07A968 7F047F78 44814000 */ mtc1 $at, $f8 /* 07A96C 7F047F7C AE2000A4 */ sw $zero, 0xa4($s1) /* 07A970 7F047F80 E6360094 */ swc1 $f22, 0x94($s1) /* 07A974 7F047F84 10000040 */ b .L7F048088 /* 07A978 7F047F88 E6280098 */ swc1 $f8, 0x98($s1) .L7F047F8C: /* 07A97C 7F047F8C C6240098 */ lwc1 $f4, 0x98($s1) /* 07A980 7F047F90 3C014270 */ li $at, 0x42700000 # 60.000000 /* 07A984 7F047F94 4616203C */ c.lt.s $f4, $f22 /* 07A988 7F047F98 00000000 */ nop /* 07A98C 7F047F9C 45020006 */ bc1fl .L7F047FB8 /* 07A990 7F047FA0 E6360088 */ swc1 $f22, 0x88($s1) /* 07A994 7F047FA4 C6260088 */ lwc1 $f6, 0x88($s1) /* 07A998 7F047FA8 44815000 */ mtc1 $at, $f10 /* 07A99C 7F047FAC E6260094 */ swc1 $f6, 0x94($s1) /* 07A9A0 7F047FB0 E62A0098 */ swc1 $f10, 0x98($s1) /* 07A9A4 7F047FB4 E6360088 */ swc1 $f22, 0x88($s1) .L7F047FB8: /* 07A9A8 7F047FB8 C7A8043C */ lwc1 $f8, 0x43c($sp) /* 07A9AC 7F047FBC 02202025 */ move $a0, $s1 /* 07A9B0 7F047FC0 E62800A0 */ swc1 $f8, 0xa0($s1) /* 07A9B4 7F047FC4 C7A40438 */ lwc1 $f4, 0x438($sp) /* 07A9B8 7F047FC8 E624009C */ swc1 $f4, 0x9c($s1) /* 07A9BC 7F047FCC 8FA90450 */ lw $t1, 0x450($sp) /* 07A9C0 7F047FD0 AE690014 */ sw $t1, 0x14($s3) /* 07A9C4 7F047FD4 C7A20454 */ lwc1 $f2, 0x454($sp) /* 07A9C8 7F047FD8 E6620008 */ swc1 $f2, 8($s3) /* 07A9CC 7F047FDC E6220058 */ swc1 $f2, 0x58($s1) /* 07A9D0 7F047FE0 C7A20458 */ lwc1 $f2, 0x458($sp) /* 07A9D4 7F047FE4 E662000C */ swc1 $f2, 0xc($s3) /* 07A9D8 7F047FE8 E622005C */ swc1 $f2, 0x5c($s1) /* 07A9DC 7F047FEC C7A2045C */ lwc1 $f2, 0x45c($sp) /* 07A9E0 7F047FF0 E6620010 */ swc1 $f2, 0x10($s3) /* 07A9E4 7F047FF4 0FC10151 */ jal chrobjCollisionRelated /* 07A9E8 7F047FF8 E6220060 */ swc1 $f2, 0x60($s1) /* 07A9EC 7F047FFC 0FC15BE0 */ jal setupUpdateObjectRoomPosition /* 07A9F0 7F048000 02202025 */ move $a0, $s1 /* 07A9F4 7F048004 10000020 */ b .L7F048088 /* 07A9F8 7F048008 00000000 */ nop .L7F04800C: /* 07A9FC 7F04800C C6260098 */ lwc1 $f6, 0x98($s1) .L7F048010: /* 07AA00 7F048010 3C014270 */ li $at, 0x42700000 # 60.000000 /* 07AA04 7F048014 4616303C */ c.lt.s $f6, $f22 /* 07AA08 7F048018 00000000 */ nop /* 07AA0C 7F04801C 45020006 */ bc1fl .L7F048038 /* 07AA10 7F048020 E6360088 */ swc1 $f22, 0x88($s1) /* 07AA14 7F048024 C62A0088 */ lwc1 $f10, 0x88($s1) /* 07AA18 7F048028 44814000 */ mtc1 $at, $f8 /* 07AA1C 7F04802C E62A0094 */ swc1 $f10, 0x94($s1) /* 07AA20 7F048030 E6280098 */ swc1 $f8, 0x98($s1) /* 07AA24 7F048034 E6360088 */ swc1 $f22, 0x88($s1) .L7F048038: /* 07AA28 7F048038 C7A4043C */ lwc1 $f4, 0x43c($sp) /* 07AA2C 7F04803C E62400A0 */ swc1 $f4, 0xa0($s1) /* 07AA30 7F048040 C7A60438 */ lwc1 $f6, 0x438($sp) /* 07AA34 7F048044 10000010 */ b .L7F048088 /* 07AA38 7F048048 E626009C */ swc1 $f6, 0x9c($s1) /* 07AA3C 7F04804C 8E280008 */ lw $t0, 8($s1) .L7F048050: /* 07AA40 7F048050 00085080 */ sll $t2, $t0, 2 /* 07AA44 7F048054 0541000C */ bgez $t2, .L7F048088 /* 07AA48 7F048058 00000000 */ nop /* 07AA4C 7F04805C C62C0038 */ lwc1 $f12, 0x38($s1) /* 07AA50 7F048060 0FC16BB8 */ jal atan2f /* 07AA54 7F048064 C62E0040 */ lwc1 $f14, 0x40($s1) /* 07AA58 7F048068 8E2B0008 */ lw $t3, 8($s1) /* 07AA5C 7F04806C 3C01DFFF */ lui $at, (0xDFFFFFFF >> 16) # lui $at, 0xdfff /* 07AA60 7F048070 3421FFFF */ ori $at, (0xDFFFFFFF & 0xFFFF) # ori $at, $at, 0xffff /* 07AA64 7F048074 01616024 */ and $t4, $t3, $at /* 07AA68 7F048078 E62000A0 */ swc1 $f0, 0xa0($s1) /* 07AA6C 7F04807C AE2C0008 */ sw $t4, 8($s1) /* 07AA70 7F048080 0FC11333 */ jal sub_GAME_7F044B38 /* 07AA74 7F048084 02202025 */ move $a0, $s1 .L7F048088: /* 07AA78 7F048088 100000E1 */ b .L7F048410 /* 07AA7C 7F04808C 92220003 */ lbu $v0, 3($s1) .L7F048090: /* 07AA80 7F048090 24010028 */ li $at, 40 /* 07AA84 7F048094 144100DD */ bne $v0, $at, .L7F04840C /* 07AA88 7F048098 02202025 */ move $a0, $s1 /* 07AA8C 7F04809C 0FC0D531 */ jal ai /* 07AA90 7F0480A0 24050001 */ li $a1, 1 /* 07AA94 7F0480A4 8E240014 */ lw $a0, 0x14($s1) /* 07AA98 7F0480A8 26300058 */ addiu $s0, $s1, 0x58 /* 07AA9C 7F0480AC 8C8D0020 */ lw $t5, 0x20($a0) /* 07AAA0 7F0480B0 51A00069 */ beql $t5, $zero, .L7F048258 /* 07AAA4 7F0480B4 C62C00A0 */ lwc1 $f12, 0xa0($s1) /* 07AAA8 7F0480B8 0FC1B480 */ jal setsuboffset /* 07AAAC 7F0480BC 02002825 */ move $a1, $s0 /* 07AAB0 7F0480C0 3C053F99 */ lui $a1, (0x3F99999A >> 16) # lui $a1, 0x3f99 /* 07AAB4 7F0480C4 4406B000 */ mfc1 $a2, $f22 /* 07AAB8 7F0480C8 34A5999A */ ori $a1, (0x3F99999A & 0xFFFF) # ori $a1, $a1, 0x999a /* 07AABC 7F0480CC 0FC1C02E */ jal modelSetAnimPlaySpeed /* 07AAC0 7F0480D0 8E240014 */ lw $a0, 0x14($s1) /* 07AAC4 7F0480D4 8E240014 */ lw $a0, 0x14($s1) /* 07AAC8 7F0480D8 3C188002 */ lui $t8, %hi(animation_table_ptrs2+4) # $t8, 0x8002 /* 07AACC 7F0480DC 8F1855A0 */ lw $t8, %lo(animation_table_ptrs2+4)($t8) /* 07AAD0 7F0480E0 8C8E0020 */ lw $t6, 0x20($a0) /* 07AAD4 7F0480E4 3C054127 */ lui $a1, (0x4127020C >> 16) # lui $a1, 0x4127 /* 07AAD8 7F0480E8 15D80009 */ bne $t6, $t8, .L7F048110 /* 07AADC 7F0480EC 00000000 */ nop /* 07AAE0 7F0480F0 0FC1B4D2 */ jal sub_GAME_7F06CE84 /* 07AAE4 7F0480F4 34A5020C */ ori $a1, (0x4127020C & 0xFFFF) # ori $a1, $a1, 0x20c /* 07AAE8 7F0480F8 3C054049 */ lui $a1, (0x40490FDB >> 16) # lui $a1, 0x4049 /* 07AAEC 7F0480FC 34A50FDB */ ori $a1, (0x40490FDB & 0xFFFF) # ori $a1, $a1, 0xfdb /* 07AAF0 7F048100 0FC1B49D */ jal setsubroty /* 07AAF4 7F048104 8E240014 */ lw $a0, 0x14($s1) /* 07AAF8 7F048108 10000024 */ b .L7F04819C /* 07AAFC 7F04810C 00000000 */ nop .L7F048110: /* 07AB00 7F048110 0C001769 */ jal bossGetStageNum /* 07AB04 7F048114 00000000 */ nop /* 07AB08 7F048118 24010016 */ li $at, 22 /* 07AB0C 7F04811C 1441000A */ bne $v0, $at, .L7F048148 /* 07AB10 7F048120 3C053F85 */ lui $a1, (0x3F859B3D >> 16) # lui $a1, 0x3f85 /* 07AB14 7F048124 8E240014 */ lw $a0, 0x14($s1) /* 07AB18 7F048128 0FC1B4D2 */ jal sub_GAME_7F06CE84 /* 07AB1C 7F04812C 34A59B3D */ ori $a1, (0x3F859B3D & 0xFFFF) # ori $a1, $a1, 0x9b3d /* 07AB20 7F048130 3C054016 */ lui $a1, (0x4016CBE4 >> 16) # lui $a1, 0x4016 /* 07AB24 7F048134 34A5CBE4 */ ori $a1, (0x4016CBE4 & 0xFFFF) # ori $a1, $a1, 0xcbe4 /* 07AB28 7F048138 0FC1B49D */ jal setsubroty /* 07AB2C 7F04813C 8E240014 */ lw $a0, 0x14($s1) /* 07AB30 7F048140 10000016 */ b .L7F04819C /* 07AB34 7F048144 00000000 */ nop .L7F048148: /* 07AB38 7F048148 0C001769 */ jal bossGetStageNum /* 07AB3C 7F04814C 00000000 */ nop /* 07AB40 7F048150 2401001A */ li $at, 26 /* 07AB44 7F048154 1441000B */ bne $v0, $at, .L7F048184 /* 07AB48 7F048158 3C053F85 */ lui $a1, 0x3f85 /* 07AB4C 7F04815C 3C053F85 */ lui $a1, (0x3F859B3D >> 16) # lui $a1, 0x3f85 /* 07AB50 7F048160 34A59B3D */ ori $a1, (0x3F859B3D & 0xFFFF) # ori $a1, $a1, 0x9b3d /* 07AB54 7F048164 0FC1B4D2 */ jal sub_GAME_7F06CE84 /* 07AB58 7F048168 8E240014 */ lw $a0, 0x14($s1) /* 07AB5C 7F04816C 3C05407B */ lui $a1, (0x407B9B3D >> 16) # lui $a1, 0x407b /* 07AB60 7F048170 34A553D1 */ ori $a1, (0x407B53D1 & 0xFFFF) # ori $a1, $a1, 0x53d1 /* 07AB64 7F048174 0FC1B49D */ jal setsubroty /* 07AB68 7F048178 8E240014 */ lw $a0, 0x14($s1) /* 07AB6C 7F04817C 10000007 */ b .L7F04819C /* 07AB70 7F048180 00000000 */ nop .L7F048184: /* 07AB74 7F048184 8E240014 */ lw $a0, 0x14($s1) /* 07AB78 7F048188 0FC1B4D2 */ jal sub_GAME_7F06CE84 /* 07AB7C 7F04818C 34A59B3D */ ori $a1, (0x407B9B3D & 0xFFFF) # ori $a1, $a1, 0x9b3d /* 07AB80 7F048190 4405B000 */ mfc1 $a1, $f22 /* 07AB84 7F048194 0FC1B49D */ jal setsubroty /* 07AB88 7F048198 8E240014 */ lw $a0, 0x14($s1) .L7F04819C: /* 07AB8C 7F04819C 3C058004 */ lui $a1, %hi(g_ClockTimer) # $a1, 0x8004 /* 07AB90 7F0481A0 8CA50FF4 */ lw $a1, %lo(g_ClockTimer)($a1) /* 07AB94 7F0481A4 8E240014 */ lw $a0, 0x14($s1) /* 07AB98 7F0481A8 0FC1C323 */ jal modelTickAnimQuarterSpeed /* 07AB9C 7F0481AC 24060001 */ li $a2, 1 /* 07ABA0 7F0481B0 0FC1B6B8 */ jal subcalcpos /* 07ABA4 7F0481B4 8E240014 */ lw $a0, 0x14($s1) /* 07ABA8 7F0481B8 8E240014 */ lw $a0, 0x14($s1) /* 07ABAC 7F0481BC 0FC1B476 */ jal getsuboffset /* 07ABB0 7F0481C0 02002825 */ move $a1, $s0 /* 07ABB4 7F0481C4 C62A0058 */ lwc1 $f10, 0x58($s1) /* 07ABB8 7F0481C8 3C058006 */ lui $a1, %hi(g_CurrentSetup+0) # $a1, 0x8006 /* 07ABBC 7F0481CC 24A54C40 */ addiu $a1, %lo(g_CurrentSetup+0) # addiu $a1, $a1, 0x4c40 /* 07ABC0 7F0481D0 E66A0008 */ swc1 $f10, 8($s3) /* 07ABC4 7F0481D4 C6280060 */ lwc1 $f8, 0x60($s1) /* 07ABC8 7F0481D8 E6680010 */ swc1 $f8, 0x10($s3) /* 07ABCC 7F0481DC 86220006 */ lh $v0, 6($s1) /* 07ABD0 7F0481E0 28412710 */ slti $at, $v0, 0x2710 /* 07ABD4 7F0481E4 1020000B */ beqz $at, .L7F048214 /* 07ABD8 7F0481E8 00024900 */ sll $t1, $v0, 4 /* 07ABDC 7F0481EC 00027880 */ sll $t7, $v0, 2 /* 07ABE0 7F0481F0 3C058006 */ lui $a1, %hi(g_CurrentSetup+0) # $a1, 0x8006 /* 07ABE4 7F0481F4 01E27823 */ subu $t7, $t7, $v0 /* 07ABE8 7F0481F8 24A54C40 */ addiu $a1, %lo(g_CurrentSetup+0) # addiu $a1, $a1, 0x4c40 /* 07ABEC 7F0481FC 000F7880 */ sll $t7, $t7, 2 /* 07ABF0 7F048200 8CB90018 */ lw $t9, 0x18($a1) /* 07ABF4 7F048204 01E27823 */ subu $t7, $t7, $v0 /* 07ABF8 7F048208 000F7880 */ sll $t7, $t7, 2 /* 07ABFC 7F04820C 10000008 */ b .L7F048230 /* 07AC00 7F048210 01F91821 */ addu $v1, $t7, $t9 .L7F048214: /* 07AC04 7F048214 8CA8001C */ lw $t0, 0x1c($a1) /* 07AC08 7F048218 01224821 */ addu $t1, $t1, $v0 /* 07AC0C 7F04821C 00094880 */ sll $t1, $t1, 2 /* 07AC10 7F048220 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 /* 07AC14 7F048224 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 /* 07AC18 7F048228 01281821 */ addu $v1, $t1, $t0 /* 07AC1C 7F04822C 00611821 */ addu $v1, $v1, $at .L7F048230: /* 07AC20 7F048230 C624005C */ lwc1 $f4, 0x5c($s1) /* 07AC24 7F048234 C4660004 */ lwc1 $f6, 4($v1) /* 07AC28 7F048238 02002825 */ move $a1, $s0 /* 07AC2C 7F04823C 46062280 */ add.s $f10, $f4, $f6 /* 07AC30 7F048240 E66A000C */ swc1 $f10, 0xc($s3) /* 07AC34 7F048244 C668000C */ lwc1 $f8, 0xc($s3) /* 07AC38 7F048248 8E240014 */ lw $a0, 0x14($s1) /* 07AC3C 7F04824C 0FC1B480 */ jal setsuboffset /* 07AC40 7F048250 E628005C */ swc1 $f8, 0x5c($s1) /* 07AC44 7F048254 C62C00A0 */ lwc1 $f12, 0xa0($s1) .L7F048258: /* 07AC48 7F048258 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 /* 07AC4C 7F04825C 460CB03E */ c.le.s $f22, $f12 /* 07AC50 7F048260 00000000 */ nop /* 07AC54 7F048264 45020016 */ bc1fl .L7F0482C0 /* 07AC58 7F048268 C6200094 */ lwc1 $f0, 0x94($s1) /* 07AC5C 7F04826C C4221004 */ lwc1 $f2, %lo(g_GlobalTimerDelta)($at) /* 07AC60 7F048270 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 /* 07AC64 7F048274 4602603E */ c.le.s $f12, $f2 /* 07AC68 7F048278 00000000 */ nop /* 07AC6C 7F04827C 45020006 */ bc1fl .L7F048298 /* 07AC70 7F048280 C62E0098 */ lwc1 $f14, 0x98($s1) /* 07AC74 7F048284 C624009C */ lwc1 $f4, 0x9c($s1) /* 07AC78 7F048288 C62C00A0 */ lwc1 $f12, 0xa0($s1) /* 07AC7C 7F04828C 10000008 */ b .L7F0482B0 /* 07AC80 7F048290 E6240098 */ swc1 $f4, 0x98($s1) /* 07AC84 7F048294 C62E0098 */ lwc1 $f14, 0x98($s1) .L7F048298: /* 07AC88 7F048298 C626009C */ lwc1 $f6, 0x9c($s1) /* 07AC8C 7F04829C 460E3281 */ sub.s $f10, $f6, $f14 /* 07AC90 7F0482A0 46025202 */ mul.s $f8, $f10, $f2 /* 07AC94 7F0482A4 460C4103 */ div.s $f4, $f8, $f12 /* 07AC98 7F0482A8 46047180 */ add.s $f6, $f14, $f4 /* 07AC9C 7F0482AC E6260098 */ swc1 $f6, 0x98($s1) .L7F0482B0: /* 07ACA0 7F0482B0 C42A1004 */ lwc1 $f10, %lo(g_GlobalTimerDelta)($at) /* 07ACA4 7F0482B4 460A6201 */ sub.s $f8, $f12, $f10 /* 07ACA8 7F0482B8 E62800A0 */ swc1 $f8, 0xa0($s1) /* 07ACAC 7F0482BC C6200094 */ lwc1 $f0, 0x94($s1) .L7F0482C0: /* 07ACB0 7F0482C0 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 /* 07ACB4 7F0482C4 4600B03E */ c.le.s $f22, $f0 /* 07ACB8 7F0482C8 00000000 */ nop /* 07ACBC 7F0482CC 45020016 */ bc1fl .L7F048328 /* 07ACC0 7F0482D0 8E2A000C */ lw $t2, 0xc($s1) /* 07ACC4 7F0482D4 C4221004 */ lwc1 $f2, %lo(g_GlobalTimerDelta)($at) /* 07ACC8 7F0482D8 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 /* 07ACCC 7F0482DC 4602003E */ c.le.s $f0, $f2 /* 07ACD0 7F0482E0 00000000 */ nop /* 07ACD4 7F0482E4 45020006 */ bc1fl .L7F048300 /* 07ACD8 7F0482E8 C62C008C */ lwc1 $f12, 0x8c($s1) /* 07ACDC 7F0482EC C6240090 */ lwc1 $f4, 0x90($s1) /* 07ACE0 7F0482F0 C6200094 */ lwc1 $f0, 0x94($s1) /* 07ACE4 7F0482F4 10000008 */ b .L7F048318 /* 07ACE8 7F0482F8 E624008C */ swc1 $f4, 0x8c($s1) /* 07ACEC 7F0482FC C62C008C */ lwc1 $f12, 0x8c($s1) .L7F048300: /* 07ACF0 7F048300 C6260090 */ lwc1 $f6, 0x90($s1) /* 07ACF4 7F048304 460C3281 */ sub.s $f10, $f6, $f12 /* 07ACF8 7F048308 46025202 */ mul.s $f8, $f10, $f2 /* 07ACFC 7F04830C 46004103 */ div.s $f4, $f8, $f0 /* 07AD00 7F048310 46046180 */ add.s $f6, $f12, $f4 /* 07AD04 7F048314 E626008C */ swc1 $f6, 0x8c($s1) .L7F048318: /* 07AD08 7F048318 C42A1004 */ lwc1 $f10, %lo(g_GlobalTimerDelta)($at) /* 07AD0C 7F04831C 460A0201 */ sub.s $f8, $f0, $f10 /* 07AD10 7F048320 E6280094 */ swc1 $f8, 0x94($s1) /* 07AD14 7F048324 8E2A000C */ lw $t2, 0xc($s1) .L7F048328: /* 07AD18 7F048328 00008025 */ move $s0, $zero /* 07AD1C 7F04832C 000A5B00 */ sll $t3, $t2, 0xc /* 07AD20 7F048330 05600014 */ bltz $t3, .L7F048384 /* 07AD24 7F048334 00000000 */ nop /* 07AD28 7F048338 0FC13C47 */ jal objIsHealthy /* 07AD2C 7F04833C 02202025 */ move $a0, $s1 /* 07AD30 7F048340 10400010 */ beqz $v0, .L7F048384 /* 07AD34 7F048344 00000000 */ nop /* 07AD38 7F048348 C624008C */ lwc1 $f4, 0x8c($s1) /* 07AD3C 7F04834C 4604B032 */ c.eq.s $f22, $f4 /* 07AD40 7F048350 00000000 */ nop /* 07AD44 7F048354 4501000B */ bc1t .L7F048384 /* 07AD48 7F048358 00000000 */ nop /* 07AD4C 7F04835C 8E2C0008 */ lw $t4, 8($s1) /* 07AD50 7F048360 3C05459C */ lui $a1, (0x459C4000 >> 16) # lui $a1, 0x459c /* 07AD54 7F048364 34A54000 */ ori $a1, (0x459C4000 & 0xFFFF) # ori $a1, $a1, 0x4000 /* 07AD58 7F048368 000C6880 */ sll $t5, $t4, 2 /* 07AD5C 7F04836C 05A00005 */ bltz $t5, .L7F048384 /* 07AD60 7F048370 26240058 */ addiu $a0, $s1, 0x58 /* 07AD64 7F048374 3C0645BB */ lui $a2, (0x45BB8000 >> 16) # lui $a2, 0x45bb /* 07AD68 7F048378 0FC14EDD */ jal sub_GAME_7F053894 /* 07AD6C 7F04837C 34C68000 */ ori $a2, (0x45BB8000 & 0xFFFF) # ori $a2, $a2, 0x8000 /* 07AD70 7F048380 00408025 */ move $s0, $v0 .L7F048384: /* 07AD74 7F048384 5A000019 */ blezl $s0, .L7F0483EC /* 07AD78 7F048388 8E2400B0 */ lw $a0, 0xb0($s1) /* 07AD7C 7F04838C 8E2400B0 */ lw $a0, 0xb0($s1) /* 07AD80 7F048390 10800005 */ beqz $a0, .L7F0483A8 /* 07AD84 7F048394 00000000 */ nop /* 07AD88 7F048398 0C002094 */ jal sndGetPlayingState /* 07AD8C 7F04839C 00000000 */ nop /* 07AD90 7F0483A0 5440000A */ bnezl $v0, .L7F0483CC /* 07AD94 7F0483A4 8E2400B0 */ lw $a0, 0xb0($s1) .L7F0483A8: /* 07AD98 7F0483A8 0FC2FC1E */ jal lvlGetControlsLockedFlag /* 07AD9C 7F0483AC 00000000 */ nop /* 07ADA0 7F0483B0 14400005 */ bnez $v0, .L7F0483C8 /* 07ADA4 7F0483B4 3C048005 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8005 /* 07ADA8 7F0483B8 8C846900 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07ADAC 7F0483BC 2405003A */ li $a1, 58 /* 07ADB0 7F0483C0 0C00209A */ jal sndPlaySfx /* 07ADB4 7F0483C4 262600B0 */ addiu $a2, $s1, 0xb0 .L7F0483C8: /* 07ADB8 7F0483C8 8E2400B0 */ lw $a0, 0xb0($s1) .L7F0483CC: /* 07ADBC 7F0483CC 24050008 */ li $a1, 8 /* 07ADC0 7F0483D0 5080000F */ beql $a0, $zero, .L7F048410 /* 07ADC4 7F0483D4 92220003 */ lbu $v0, 3($s1) /* 07ADC8 7F0483D8 0C002179 */ jal sndCreatePostEvent /* 07ADCC 7F0483DC 02003025 */ move $a2, $s0 /* 07ADD0 7F0483E0 1000000B */ b .L7F048410 /* 07ADD4 7F0483E4 92220003 */ lbu $v0, 3($s1) /* 07ADD8 7F0483E8 8E2400B0 */ lw $a0, 0xb0($s1) .L7F0483EC: /* 07ADDC 7F0483EC 50800008 */ beql $a0, $zero, .L7F048410 /* 07ADE0 7F0483F0 92220003 */ lbu $v0, 3($s1) /* 07ADE4 7F0483F4 0C002094 */ jal sndGetPlayingState /* 07ADE8 7F0483F8 00000000 */ nop /* 07ADEC 7F0483FC 50400004 */ beql $v0, $zero, .L7F048410 /* 07ADF0 7F048400 92220003 */ lbu $v0, 3($s1) /* 07ADF4 7F048404 0C002120 */ jal sndDeactivate /* 07ADF8 7F048408 8E2400B0 */ lw $a0, 0xb0($s1) .L7F04840C: /* 07ADFC 7F04840C 92220003 */ lbu $v0, 3($s1) .L7F048410: /* 07AE00 7F048410 3C018005 */ lui $at, %hi(D_80052B64) # $at, 0x8005 /* 07AE04 7F048414 C4348CA4 */ lwc1 $f20, %lo(D_80052B64)($at) /* 07AE08 7F048418 2401002F */ li $at, 47 /* 07AE0C 7F04841C 54410020 */ bnel $v0, $at, .L7F0484A0 /* 07AE10 7F048420 24010001 */ li $at, 1 /* 07AE14 7F048424 8E700004 */ lw $s0, 4($s3) /* 07AE18 7F048428 26240058 */ addiu $a0, $s1, 0x58 /* 07AE1C 7F04842C 8E0E0080 */ lw $t6, 0x80($s0) /* 07AE20 7F048430 8E180084 */ lw $t8, 0x84($s0) /* 07AE24 7F048434 8E070090 */ lw $a3, 0x90($s0) /* 07AE28 7F048438 448E3000 */ mtc1 $t6, $f6 /* 07AE2C 7F04843C 44985000 */ mtc1 $t8, $f10 /* 07AE30 7F048440 468031A0 */ cvt.s.w $f6, $f6 /* 07AE34 7F048444 468052A0 */ cvt.s.w $f10, $f10 /* 07AE38 7F048448 44053000 */ mfc1 $a1, $f6 /* 07AE3C 7F04844C 44065000 */ mfc1 $a2, $f10 /* 07AE40 7F048450 0FC114DC */ jal glassCalculateOpacity /* 07AE44 7F048454 00000000 */ nop /* 07AE48 7F048458 8E04008C */ lw $a0, 0x8c($s0) /* 07AE4C 7F04845C AE020088 */ sw $v0, 0x88($s0) /* 07AE50 7F048460 8FAF067C */ lw $t7, 0x67c($sp) /* 07AE54 7F048464 0480000B */ bltz $a0, .L7F048494 /* 07AE58 7F048468 24010001 */ li $at, 1 /* 07AE5C 7F04846C 15E10009 */ bne $t7, $at, .L7F048494 /* 07AE60 7F048470 240100FF */ li $at, 255 /* 07AE64 7F048474 14410005 */ bne $v0, $at, .L7F04848C /* 07AE68 7F048478 00000000 */ nop /* 07AE6C 7F04847C 0FC2E416 */ jal bgToggleDataPortalsContrlBytes1Bit1 /* 07AE70 7F048480 00002825 */ move $a1, $zero /* 07AE74 7F048484 10000003 */ b .L7F048494 /* 07AE78 7F048488 00000000 */ nop .L7F04848C: /* 07AE7C 7F04848C 0FC2E416 */ jal bgToggleDataPortalsContrlBytes1Bit1 /* 07AE80 7F048490 24050001 */ li $a1, 1 .L7F048494: /* 07AE84 7F048494 1000003B */ b .L7F048584 /* 07AE88 7F048498 AFA00678 */ sw $zero, 0x678($sp) /* 07AE8C 7F04849C 24010001 */ li $at, 1 .L7F0484A0: /* 07AE90 7F0484A0 54410039 */ bnel $v0, $at, .L7F048588 /* 07AE94 7F0484A4 92290003 */ lbu $t1, 3($s1) /* 07AE98 7F0484A8 96290098 */ lhu $t1, 0x98($s1) /* 07AE9C 7F0484AC 31280002 */ andi $t0, $t1, 2 /* 07AEA0 7F0484B0 51000035 */ beql $t0, $zero, .L7F048588 /* 07AEA4 7F0484B4 92290003 */ lbu $t1, 3($s1) /* 07AEA8 7F0484B8 8E700004 */ lw $s0, 4($s3) /* 07AEAC 7F0484BC 4407B000 */ mfc1 $a3, $f22 /* 07AEB0 7F0484C0 24120001 */ li $s2, 1 /* 07AEB4 7F0484C4 8E0A00C0 */ lw $t2, 0xc0($s0) /* 07AEB8 7F0484C8 8E0B00C4 */ lw $t3, 0xc4($s0) /* 07AEBC 7F0484CC 26240058 */ addiu $a0, $s1, 0x58 /* 07AEC0 7F0484D0 448A4000 */ mtc1 $t2, $f8 /* 07AEC4 7F0484D4 448B2000 */ mtc1 $t3, $f4 /* 07AEC8 7F0484D8 46804220 */ cvt.s.w $f8, $f8 /* 07AECC 7F0484DC 46802120 */ cvt.s.w $f4, $f4 /* 07AED0 7F0484E0 44054000 */ mfc1 $a1, $f8 /* 07AED4 7F0484E4 44062000 */ mfc1 $a2, $f4 /* 07AED8 7F0484E8 0FC114DC */ jal glassCalculateOpacity /* 07AEDC 7F0484EC 00000000 */ nop /* 07AEE0 7F0484F0 A60200BE */ sh $v0, 0xbe($s0) /* 07AEE4 7F0484F4 8FAC067C */ lw $t4, 0x67c($sp) /* 07AEE8 7F0484F8 24010001 */ li $at, 1 /* 07AEEC 7F0484FC 55810022 */ bnel $t4, $at, .L7F048588 /* 07AEF0 7F048500 92290003 */ lbu $t1, 3($s1) /* 07AEF4 7F048504 860D00BE */ lh $t5, 0xbe($s0) /* 07AEF8 7F048508 240100FF */ li $at, 255 /* 07AEFC 7F04850C 55A10007 */ bnel $t5, $at, .L7F04852C /* 07AF00 7F048510 00009025 */ move $s2, $zero /* 07AF04 7F048514 C60600B4 */ lwc1 $f6, 0xb4($s0) /* 07AF08 7F048518 4606B03C */ c.lt.s $f22, $f6 /* 07AF0C 7F04851C 00000000 */ nop /* 07AF10 7F048520 45020003 */ bc1fl .L7F048530 /* 07AF14 7F048524 8E820008 */ lw $v0, 8($s4) /* 07AF18 7F048528 00009025 */ move $s2, $zero .L7F04852C: /* 07AF1C 7F04852C 8E820008 */ lw $v0, 8($s4) .L7F048530: /* 07AF20 7F048530 3C0E8003 */ lui $t6, %hi(skeleton_door) # $t6, 0x8003 /* 07AF24 7F048534 25CE4D3C */ addiu $t6, %lo(skeleton_door) # addiu $t6, $t6, 0x4d3c /* 07AF28 7F048538 8C580004 */ lw $t8, 4($v0) /* 07AF2C 7F04853C 15D80009 */ bne $t6, $t8, .L7F048564 /* 07AF30 7F048540 00000000 */ nop /* 07AF34 7F048544 8C4F0008 */ lw $t7, 8($v0) /* 07AF38 7F048548 02802025 */ move $a0, $s4 /* 07AF3C 7F04854C 0FC1B3A3 */ jal modelGetNodeRwData /* 07AF40 7F048550 8DE50004 */ lw $a1, 4($t7) /* 07AF44 7F048554 8C590000 */ lw $t9, ($v0) /* 07AF48 7F048558 17200002 */ bnez $t9, .L7F048564 /* 07AF4C 7F04855C 00000000 */ nop /* 07AF50 7F048560 00009025 */ move $s2, $zero .L7F048564: /* 07AF54 7F048564 12400005 */ beqz $s2, .L7F04857C /* 07AF58 7F048568 00000000 */ nop /* 07AF5C 7F04856C 0FC14E29 */ jal doorDeactivatePortal /* 07AF60 7F048570 02002025 */ move $a0, $s0 /* 07AF64 7F048574 10000004 */ b .L7F048588 /* 07AF68 7F048578 92290003 */ lbu $t1, 3($s1) .L7F04857C: /* 07AF6C 7F04857C 0FC14E1E */ jal doorActivatePortal /* 07AF70 7F048580 02002025 */ move $a0, $s0 .L7F048584: /* 07AF74 7F048584 92290003 */ lbu $t1, 3($s1) .L7F048588: /* 07AF78 7F048588 2401002D */ li $at, 45 /* 07AF7C 7F04858C 55210008 */ bnel $t1, $at, .L7F0485B0 /* 07AF80 7F048590 8E23000C */ lw $v1, 0xc($s1) /* 07AF84 7F048594 0FC1F3D6 */ jal get_ptr_for_players_tank /* 07AF88 7F048598 00000000 */ nop /* 07AF8C 7F04859C 54530004 */ bnel $v0, $s3, .L7F0485B0 /* 07AF90 7F0485A0 8E23000C */ lw $v1, 0xc($s1) /* 07AF94 7F0485A4 10000018 */ b .L7F048608 /* 07AF98 7F0485A8 24030001 */ li $v1, 1 /* 07AF9C 7F0485AC 8E23000C */ lw $v1, 0xc($s1) .L7F0485B0: /* 07AFA0 7F0485B0 00034140 */ sll $t0, $v1, 5 /* 07AFA4 7F0485B4 05030004 */ bgezl $t0, .L7F0485C8 /* 07AFA8 7F0485B8 8E2A0064 */ lw $t2, 0x64($s1) /* 07AFAC 7F0485BC 10000012 */ b .L7F048608 /* 07AFB0 7F0485C0 24030001 */ li $v1, 1 /* 07AFB4 7F0485C4 8E2A0064 */ lw $t2, 0x64($s1) .L7F0485C8: /* 07AFB8 7F0485C8 00036300 */ sll $t4, $v1, 0xc /* 07AFBC 7F0485CC 00001825 */ move $v1, $zero /* 07AFC0 7F0485D0 314B0800 */ andi $t3, $t2, 0x800 /* 07AFC4 7F0485D4 1560000C */ bnez $t3, .L7F048608 /* 07AFC8 7F0485D8 00000000 */ nop /* 07AFCC 7F0485DC 0580000A */ bltz $t4, .L7F048608 /* 07AFD0 7F0485E0 02802025 */ move $a0, $s4 /* 07AFD4 7F0485E4 0FC1B525 */ jal getinstsize /* 07AFD8 7F0485E8 26300058 */ addiu $s0, $s1, 0x58 /* 07AFDC 7F0485EC 44060000 */ mfc1 $a2, $f0 /* 07AFE0 7F0485F0 02602025 */ move $a0, $s3 /* 07AFE4 7F0485F4 02002825 */ move $a1, $s0 /* 07AFE8 7F0485F8 0FC15413 */ jal sub_GAME_7F054D6C /* 07AFEC 7F0485FC 8FA70678 */ lw $a3, 0x678($sp) /* 07AFF0 7F048600 10000001 */ b .L7F048608 /* 07AFF4 7F048604 00401825 */ move $v1, $v0 .L7F048608: /* 07AFF8 7F048608 1060037A */ beqz $v1, .L7F0493F4 /* 07AFFC 7F04860C 8FAD0680 */ lw $t5, 0x680($sp) /* 07B000 7F048610 11A00003 */ beqz $t5, .L7F048620 /* 07B004 7F048614 26240078 */ addiu $a0, $s1, 0x78 /* 07B008 7F048618 0FC100F4 */ jal update_color_shading /* 07B00C 7F04861C 2625007C */ addiu $a1, $s1, 0x7c .L7F048620: /* 07B010 7F048620 926E0001 */ lbu $t6, 1($s3) /* 07B014 7F048624 35D80002 */ ori $t8, $t6, 2 /* 07B018 7F048628 A2780001 */ sb $t8, 1($s3) /* 07B01C 7F04862C 8E8F0008 */ lw $t7, 8($s4) /* 07B020 7F048630 85E4000E */ lh $a0, 0xe($t7) /* 07B024 7F048634 0004C980 */ sll $t9, $a0, 6 /* 07B028 7F048638 0FC2F2B1 */ jal dynAllocate /* 07B02C 7F04863C 03202025 */ move $a0, $t9 /* 07B030 7F048640 AE82000C */ sw $v0, 0xc($s4) /* 07B034 7F048644 92290003 */ lbu $t1, 3($s1) /* 07B038 7F048648 24010001 */ li $at, 1 /* 07B03C 7F04864C 00409025 */ move $s2, $v0 /* 07B040 7F048650 152100AD */ bne $t1, $at, .L7F048908 /* 07B044 7F048654 26240018 */ addiu $a0, $s1, 0x18 /* 07B048 7F048658 8E640004 */ lw $a0, 4($s3) /* 07B04C 7F04865C 00402825 */ move $a1, $v0 /* 07B050 7F048660 0FC14A73 */ jal door7F0526EC /* 07B054 7F048664 AFA403A0 */ sw $a0, 0x3a0($sp) /* 07B058 7F048668 0FC1E111 */ jal camGetWorldToScreenMtxf /* 07B05C 7F04866C 00000000 */ nop /* 07B060 7F048670 00402025 */ move $a0, $v0 /* 07B064 7F048674 0FC16150 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07B068 7F048678 02402825 */ move $a1, $s2 /* 07B06C 7F04867C 8E820008 */ lw $v0, 8($s4) /* 07B070 7F048680 3C088003 */ lui $t0, %hi(skeleton_eyelid_door) # $t0, 0x8003 /* 07B074 7F048684 25084C60 */ addiu $t0, %lo(skeleton_eyelid_door) # addiu $t0, $t0, 0x4c60 /* 07B078 7F048688 8C430004 */ lw $v1, 4($v0) /* 07B07C 7F04868C 3C188003 */ lui $t8, %hi(skeleton_iris_door) # $t8, 0x8003 /* 07B080 7F048690 8FA603A0 */ lw $a2, 0x3a0($sp) /* 07B084 7F048694 15030025 */ bne $t0, $v1, .L7F04872C /* 07B088 7F048698 27184CBC */ addiu $t8, %lo(skeleton_iris_door) # addiu $t8, $t8, 0x4cbc /* 07B08C 7F04869C C4CA00B4 */ lwc1 $f10, 0xb4($a2) /* 07B090 7F0486A0 3C0143B4 */ li $at, 0x43B40000 # 360.000000 /* 07B094 7F0486A4 44812000 */ mtc1 $at, $f4 /* 07B098 7F0486A8 46145202 */ mul.s $f8, $f10, $f20 /* 07B09C 7F0486AC 8C4A0008 */ lw $t2, 8($v0) /* 07B0A0 7F0486B0 26450040 */ addiu $a1, $s2, 0x40 /* 07B0A4 7F0486B4 8D4B0004 */ lw $t3, 4($t2) /* 07B0A8 7F0486B8 46044183 */ div.s $f6, $f8, $f4 /* 07B0AC 7F0486BC 8D700004 */ lw $s0, 4($t3) /* 07B0B0 7F0486C0 AFA50070 */ sw $a1, 0x70($sp) /* 07B0B4 7F0486C4 4606A301 */ sub.s $f12, $f20, $f6 /* 07B0B8 7F0486C8 0FC16286 */ jal matrix_4x4_set_rotation_around_x /* 07B0BC 7F0486CC E7AC0398 */ swc1 $f12, 0x398($sp) /* 07B0C0 7F0486D0 02002025 */ move $a0, $s0 /* 07B0C4 7F0486D4 0FC16390 */ jal matrix_4x4_set_position /* 07B0C8 7F0486D8 8FA50070 */ lw $a1, 0x70($sp) /* 07B0CC 7F0486DC 02402025 */ move $a0, $s2 /* 07B0D0 7F0486E0 0FC16144 */ jal matrix_4x4_multiply_in_place /* 07B0D4 7F0486E4 8FA50070 */ lw $a1, 0x70($sp) /* 07B0D8 7F0486E8 8E8C0008 */ lw $t4, 8($s4) /* 07B0DC 7F0486EC C7AA0398 */ lwc1 $f10, 0x398($sp) /* 07B0E0 7F0486F0 26450080 */ addiu $a1, $s2, 0x80 /* 07B0E4 7F0486F4 8D8D0008 */ lw $t5, 8($t4) /* 07B0E8 7F0486F8 460AA301 */ sub.s $f12, $f20, $f10 /* 07B0EC 7F0486FC 8DAE0008 */ lw $t6, 8($t5) /* 07B0F0 7F048700 8DD00004 */ lw $s0, 4($t6) /* 07B0F4 7F048704 0FC16286 */ jal matrix_4x4_set_rotation_around_x /* 07B0F8 7F048708 AFA5006C */ sw $a1, 0x6c($sp) /* 07B0FC 7F04870C 02002025 */ move $a0, $s0 /* 07B100 7F048710 0FC16390 */ jal matrix_4x4_set_position /* 07B104 7F048714 8FA5006C */ lw $a1, 0x6c($sp) /* 07B108 7F048718 02402025 */ move $a0, $s2 /* 07B10C 7F04871C 0FC16144 */ jal matrix_4x4_multiply_in_place /* 07B110 7F048720 8FA5006C */ lw $a1, 0x6c($sp) /* 07B114 7F048724 1000031F */ b .L7F0493A4 /* 07B118 7F048728 8E8F0008 */ lw $t7, 8($s4) .L7F04872C: /* 07B11C 7F04872C 5703031D */ bnel $t8, $v1, .L7F0493A4 /* 07B120 7F048730 8E8F0008 */ lw $t7, 8($s4) /* 07B124 7F048734 C4C200B4 */ lwc1 $f2, 0xb4($a2) /* 07B128 7F048738 3C0143B4 */ li $at, 0x43B40000 # 360.000000 /* 07B12C 7F04873C 44812000 */ mtc1 $at, $f4 /* 07B130 7F048740 46141202 */ mul.s $f8, $f2, $f20 /* 07B134 7F048744 3C018005 */ lui $at, %hi(D_80052B68) # $at, 0x8005 /* 07B138 7F048748 C42A8CA8 */ lwc1 $f10, %lo(D_80052B68)($at) /* 07B13C 7F04874C 4600B386 */ mov.s $f14, $f22 /* 07B140 7F048750 46044183 */ div.s $f6, $f8, $f4 /* 07B144 7F048754 E7A60388 */ swc1 $f6, 0x388($sp) /* 07B148 7F048758 C4CC0084 */ lwc1 $f12, 0x84($a2) /* 07B14C 7F04875C 460A6002 */ mul.s $f0, $f12, $f10 /* 07B150 7F048760 4602003C */ c.lt.s $f0, $f2 /* 07B154 7F048764 00000000 */ nop /* 07B158 7F048768 4502001F */ bc1fl .L7F0487E8 /* 07B15C 7F04876C 8FA90680 */ lw $t1, 0x680($sp) /* 07B160 7F048770 46001201 */ sub.s $f8, $f2, $f0 /* 07B164 7F048774 3C0143B4 */ li $at, 0x43B40000 # 360.000000 /* 07B168 7F048778 8FAF0680 */ lw $t7, 0x680($sp) /* 07B16C 7F04877C 46006181 */ sub.s $f6, $f12, $f0 /* 07B170 7F048780 46086102 */ mul.s $f4, $f12, $f8 /* 07B174 7F048784 46062283 */ div.s $f10, $f4, $f6 /* 07B178 7F048788 44812000 */ mtc1 $at, $f4 /* 07B17C 7F04878C 46145202 */ mul.s $f8, $f10, $f20 /* 07B180 7F048790 46044383 */ div.s $f14, $f8, $f4 /* 07B184 7F048794 11E00011 */ beqz $t7, .L7F0487DC /* 07B188 7F048798 E7AE0384 */ swc1 $f14, 0x384($sp) /* 07B18C 7F04879C C7A60684 */ lwc1 $f6, 0x684($sp) /* 07B190 7F0487A0 E7AE0384 */ swc1 $f14, 0x384($sp) /* 07B194 7F0487A4 3C048005 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8005 /* 07B198 7F0487A8 4600303E */ c.le.s $f6, $f0 /* 07B19C 7F0487AC 240500CA */ li $a1, 202 /* 07B1A0 7F0487B0 00003025 */ move $a2, $zero /* 07B1A4 7F0487B4 26790008 */ addiu $t9, $s3, 8 /* 07B1A8 7F0487B8 45000008 */ bc1f .L7F0487DC /* 07B1AC 7F0487BC 00000000 */ nop /* 07B1B0 7F0487C0 8C846900 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07B1B4 7F0487C4 AFB90074 */ sw $t9, 0x74($sp) /* 07B1B8 7F0487C8 0C00209A */ jal sndPlaySfx /* 07B1BC 7F0487CC E7AE0384 */ swc1 $f14, 0x384($sp) /* 07B1C0 7F0487D0 00402025 */ move $a0, $v0 /* 07B1C4 7F0487D4 0FC14F3C */ jal chrobjSndCreatePostEventDefault /* 07B1C8 7F0487D8 8FA50074 */ lw $a1, 0x74($sp) .L7F0487DC: /* 07B1CC 7F0487DC 10000016 */ b .L7F048838 /* 07B1D0 7F0487E0 AFA00390 */ sw $zero, 0x390($sp) /* 07B1D4 7F0487E4 8FA90680 */ lw $t1, 0x680($sp) .L7F0487E8: /* 07B1D8 7F0487E8 E7AE0384 */ swc1 $f14, 0x384($sp) /* 07B1DC 7F0487EC 51200012 */ beql $t1, $zero, .L7F048838 /* 07B1E0 7F0487F0 AFA00390 */ sw $zero, 0x390($sp) /* 07B1E4 7F0487F4 C7AA0684 */ lwc1 $f10, 0x684($sp) /* 07B1E8 7F0487F8 E7AE0384 */ swc1 $f14, 0x384($sp) /* 07B1EC 7F0487FC 3C048005 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8005 /* 07B1F0 7F048800 460A003C */ c.lt.s $f0, $f10 /* 07B1F4 7F048804 240500CB */ li $a1, 203 /* 07B1F8 7F048808 00003025 */ move $a2, $zero /* 07B1FC 7F04880C 26680008 */ addiu $t0, $s3, 8 /* 07B200 7F048810 45020009 */ bc1fl .L7F048838 /* 07B204 7F048814 AFA00390 */ sw $zero, 0x390($sp) /* 07B208 7F048818 8C846900 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07B20C 7F04881C AFA80074 */ sw $t0, 0x74($sp) /* 07B210 7F048820 0C00209A */ jal sndPlaySfx /* 07B214 7F048824 E7AE0384 */ swc1 $f14, 0x384($sp) /* 07B218 7F048828 00402025 */ move $a0, $v0 /* 07B21C 7F04882C 0FC14F3C */ jal chrobjSndCreatePostEventDefault /* 07B220 7F048830 8FA50074 */ lw $a1, 0x74($sp) /* 07B224 7F048834 AFA00390 */ sw $zero, 0x390($sp) .L7F048838: /* 07B228 7F048838 8E8A0008 */ lw $t2, 8($s4) /* 07B22C 7F04883C 8FA30390 */ lw $v1, 0x390($sp) /* 07B230 7F048840 C7AC0384 */ lwc1 $f12, 0x384($sp) /* 07B234 7F048844 8D4B0008 */ lw $t3, 8($t2) /* 07B238 7F048848 00031040 */ sll $v0, $v1, 1 /* 07B23C 7F04884C 00026080 */ sll $t4, $v0, 2 /* 07B240 7F048850 016C6821 */ addu $t5, $t3, $t4 /* 07B244 7F048854 8DAE0004 */ lw $t6, 4($t5) /* 07B248 7F048858 00027980 */ sll $t7, $v0, 6 /* 07B24C 7F04885C 024F2821 */ addu $a1, $s2, $t7 /* 07B250 7F048860 8DD80004 */ lw $t8, 4($t6) /* 07B254 7F048864 AFA20078 */ sw $v0, 0x78($sp) /* 07B258 7F048868 24A50040 */ addiu $a1, $a1, 0x40 /* 07B25C 7F04886C 0FC162CC */ jal matrix_4x4_set_rotation_around_z /* 07B260 7F048870 AFB80394 */ sw $t8, 0x394($sp) /* 07B264 7F048874 8FB90078 */ lw $t9, 0x78($sp) /* 07B268 7F048878 8FB00390 */ lw $s0, 0x390($sp) /* 07B26C 7F04887C 8FA40394 */ lw $a0, 0x394($sp) /* 07B270 7F048880 00194980 */ sll $t1, $t9, 6 /* 07B274 7F048884 02492821 */ addu $a1, $s2, $t1 /* 07B278 7F048888 24A50040 */ addiu $a1, $a1, 0x40 /* 07B27C 7F04888C 0FC16390 */ jal matrix_4x4_set_position /* 07B280 7F048890 AFA50074 */ sw $a1, 0x74($sp) /* 07B284 7F048894 02402025 */ move $a0, $s2 /* 07B288 7F048898 0FC16144 */ jal matrix_4x4_multiply_in_place /* 07B28C 7F04889C 8FA50074 */ lw $a1, 0x74($sp) /* 07B290 7F0488A0 8E880008 */ lw $t0, 8($s4) /* 07B294 7F0488A4 8FA20078 */ lw $v0, 0x78($sp) /* 07B298 7F0488A8 C7AC0388 */ lwc1 $f12, 0x388($sp) /* 07B29C 7F0488AC 8D0A0008 */ lw $t2, 8($t0) /* 07B2A0 7F0488B0 24420002 */ addiu $v0, $v0, 2 /* 07B2A4 7F0488B4 00025880 */ sll $t3, $v0, 2 /* 07B2A8 7F0488B8 014B6021 */ addu $t4, $t2, $t3 /* 07B2AC 7F0488BC 8D8D0000 */ lw $t5, ($t4) /* 07B2B0 7F0488C0 0002C180 */ sll $t8, $v0, 6 /* 07B2B4 7F0488C4 02582821 */ addu $a1, $s2, $t8 /* 07B2B8 7F0488C8 8DAE0004 */ lw $t6, 4($t5) /* 07B2BC 7F0488CC AFA50070 */ sw $a1, 0x70($sp) /* 07B2C0 7F0488D0 0FC162CC */ jal matrix_4x4_set_rotation_around_z /* 07B2C4 7F0488D4 AFAE0394 */ sw $t6, 0x394($sp) /* 07B2C8 7F0488D8 8FA40394 */ lw $a0, 0x394($sp) /* 07B2CC 7F0488DC 0FC16390 */ jal matrix_4x4_set_position /* 07B2D0 7F0488E0 8FA50070 */ lw $a1, 0x70($sp) /* 07B2D4 7F0488E4 8FA40074 */ lw $a0, 0x74($sp) /* 07B2D8 7F0488E8 0FC16144 */ jal matrix_4x4_multiply_in_place /* 07B2DC 7F0488EC 8FA50070 */ lw $a1, 0x70($sp) /* 07B2E0 7F0488F0 26100001 */ addiu $s0, $s0, 1 /* 07B2E4 7F0488F4 24010006 */ li $at, 6 /* 07B2E8 7F0488F8 1601FFCF */ bne $s0, $at, .L7F048838 /* 07B2EC 7F0488FC AFB00390 */ sw $s0, 0x390($sp) /* 07B2F0 7F048900 100002A8 */ b .L7F0493A4 /* 07B2F4 7F048904 8E8F0008 */ lw $t7, 8($s4) .L7F048908: /* 07B2F8 7F048908 27A503A8 */ addiu $a1, $sp, 0x3a8 /* 07B2FC 7F04890C 0FC16132 */ jal matrix_4x4_copy /* 07B300 7F048910 26300058 */ addiu $s0, $s1, 0x58 /* 07B304 7F048914 02002025 */ move $a0, $s0 /* 07B308 7F048918 0FC16390 */ jal matrix_4x4_set_position /* 07B30C 7F04891C 27A503A8 */ addiu $a1, $sp, 0x3a8 /* 07B310 7F048920 0FC1E111 */ jal camGetWorldToScreenMtxf /* 07B314 7F048924 00000000 */ nop /* 07B318 7F048928 00402025 */ move $a0, $v0 /* 07B31C 7F04892C 27A503A8 */ addiu $a1, $sp, 0x3a8 /* 07B320 7F048930 0FC1618D */ jal matrix_4x4_multiply_homogeneous /* 07B324 7F048934 02403025 */ move $a2, $s2 /* 07B328 7F048938 92220003 */ lbu $v0, 3($s1) /* 07B32C 7F04893C 24010006 */ li $at, 6 /* 07B330 7F048940 27A50324 */ addiu $a1, $sp, 0x324 /* 07B334 7F048944 5441002D */ bnel $v0, $at, .L7F0489FC /* 07B338 7F048948 2401000D */ li $at, 13 /* 07B33C 7F04894C 8E620004 */ lw $v0, 4($s3) /* 07B340 7F048950 8E8F0008 */ lw $t7, 8($s4) /* 07B344 7F048954 C44C00C8 */ lwc1 $f12, 0xc8($v0) /* 07B348 7F048958 8DF90008 */ lw $t9, 8($t7) /* 07B34C 7F04895C 4616603C */ c.lt.s $f12, $f22 /* 07B350 7F048960 8F290000 */ lw $t1, ($t9) /* 07B354 7F048964 45000003 */ bc1f .L7F048974 /* 07B358 7F048968 8D300004 */ lw $s0, 4($t1) /* 07B35C 7F04896C 10000006 */ b .L7F048988 /* 07B360 7F048970 46146300 */ add.s $f12, $f12, $f20 .L7F048974: /* 07B364 7F048974 460CA03E */ c.le.s $f20, $f12 /* 07B368 7F048978 00000000 */ nop /* 07B36C 7F04897C 45000002 */ bc1f .L7F048988 /* 07B370 7F048980 00000000 */ nop /* 07B374 7F048984 46146301 */ sub.s $f12, $f12, $f20 .L7F048988: /* 07B378 7F048988 0FC162A9 */ jal matrix_4x4_set_rotation_around_y /* 07B37C 7F04898C AFA20374 */ sw $v0, 0x374($sp) /* 07B380 7F048990 8FA20374 */ lw $v0, 0x374($sp) /* 07B384 7F048994 26460040 */ addiu $a2, $s2, 0x40 /* 07B388 7F048998 AFA60070 */ sw $a2, 0x70($sp) /* 07B38C 7F04899C 27A40324 */ addiu $a0, $sp, 0x324 /* 07B390 7F0489A0 0FC1615C */ jal matrix_4x4_multiply /* 07B394 7F0489A4 24450084 */ addiu $a1, $v0, 0x84 /* 07B398 7F0489A8 C6080000 */ lwc1 $f8, ($s0) /* 07B39C 7F0489AC 27B20364 */ addiu $s2, $sp, 0x364 /* 07B3A0 7F0489B0 02402825 */ move $a1, $s2 /* 07B3A4 7F0489B4 E7A80364 */ swc1 $f8, 0x364($sp) /* 07B3A8 7F0489B8 C6040004 */ lwc1 $f4, 4($s0) /* 07B3AC 7F0489BC 27A403A8 */ addiu $a0, $sp, 0x3a8 /* 07B3B0 7F0489C0 E7A40368 */ swc1 $f4, 0x368($sp) /* 07B3B4 7F0489C4 C6060008 */ lwc1 $f6, 8($s0) /* 07B3B8 7F0489C8 0FC16247 */ jal mtx4TransformVecInPlace /* 07B3BC 7F0489CC E7A6036C */ swc1 $f6, 0x36c($sp) /* 07B3C0 7F0489D0 02402025 */ move $a0, $s2 /* 07B3C4 7F0489D4 0FC16390 */ jal matrix_4x4_set_position /* 07B3C8 7F0489D8 8FA50070 */ lw $a1, 0x70($sp) /* 07B3CC 7F0489DC 0FC1E111 */ jal camGetWorldToScreenMtxf /* 07B3D0 7F0489E0 00000000 */ nop /* 07B3D4 7F0489E4 00402025 */ move $a0, $v0 /* 07B3D8 7F0489E8 0FC16150 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07B3DC 7F0489EC 8FA50070 */ lw $a1, 0x70($sp) /* 07B3E0 7F0489F0 1000026C */ b .L7F0493A4 /* 07B3E4 7F0489F4 8E8F0008 */ lw $t7, 8($s4) /* 07B3E8 7F0489F8 2401000D */ li $at, 13 .L7F0489FC: /* 07B3EC 7F0489FC 5441007F */ bnel $v0, $at, .L7F048BFC /* 07B3F0 7F048A00 24010008 */ li $at, 8 /* 07B3F4 7F048A04 8E620004 */ lw $v0, 4($s3) /* 07B3F8 7F048A08 3C018005 */ lui $at, %hi(D_80052B6C) # $at, 0x8005 /* 07B3FC 7F048A0C C4288CAC */ lwc1 $f8, %lo(D_80052B6C)($at) /* 07B400 7F048A10 C44A0090 */ lwc1 $f10, 0x90($v0) /* 07B404 7F048A14 C444009C */ lwc1 $f4, 0x9c($v0) /* 07B408 7F048A18 46085300 */ add.s $f12, $f10, $f8 /* 07B40C 7F048A1C 46002187 */ neg.s $f6, $f4 /* 07B410 7F048A20 460CA03E */ c.le.s $f20, $f12 /* 07B414 7F048A24 E7A60304 */ swc1 $f6, 0x304($sp) /* 07B418 7F048A28 45020003 */ bc1fl .L7F048A38 /* 07B41C 7F048A2C 8E880008 */ lw $t0, 8($s4) /* 07B420 7F048A30 46146301 */ sub.s $f12, $f12, $f20 /* 07B424 7F048A34 8E880008 */ lw $t0, 8($s4) .L7F048A38: /* 07B428 7F048A38 27A403A8 */ addiu $a0, $sp, 0x3a8 /* 07B42C 7F048A3C 27A5030C */ addiu $a1, $sp, 0x30c /* 07B430 7F048A40 8D0A0008 */ lw $t2, 8($t0) /* 07B434 7F048A44 8D4B0004 */ lw $t3, 4($t2) /* 07B438 7F048A48 8D700004 */ lw $s0, 4($t3) /* 07B43C 7F048A4C C60A0000 */ lwc1 $f10, ($s0) /* 07B440 7F048A50 E7AA030C */ swc1 $f10, 0x30c($sp) /* 07B444 7F048A54 C6080004 */ lwc1 $f8, 4($s0) /* 07B448 7F048A58 E7A80310 */ swc1 $f8, 0x310($sp) /* 07B44C 7F048A5C C6040008 */ lwc1 $f4, 8($s0) /* 07B450 7F048A60 E7AC0308 */ swc1 $f12, 0x308($sp) /* 07B454 7F048A64 AFA2031C */ sw $v0, 0x31c($sp) /* 07B458 7F048A68 0FC16247 */ jal mtx4TransformVecInPlace /* 07B45C 7F048A6C E7A40314 */ swc1 $f4, 0x314($sp) /* 07B460 7F048A70 26450040 */ addiu $a1, $s2, 0x40 /* 07B464 7F048A74 C7AC0308 */ lwc1 $f12, 0x308($sp) /* 07B468 7F048A78 0FC162A9 */ jal matrix_4x4_set_rotation_around_y /* 07B46C 7F048A7C AFA50070 */ sw $a1, 0x70($sp) /* 07B470 7F048A80 27A4030C */ addiu $a0, $sp, 0x30c /* 07B474 7F048A84 0FC16390 */ jal matrix_4x4_set_position /* 07B478 7F048A88 8FA50070 */ lw $a1, 0x70($sp) /* 07B47C 7F048A8C 8FAC031C */ lw $t4, 0x31c($sp) /* 07B480 7F048A90 8FA50070 */ lw $a1, 0x70($sp) /* 07B484 7F048A94 8D8D0014 */ lw $t5, 0x14($t4) /* 07B488 7F048A98 0FC163C9 */ jal matrix_scalar_multiply /* 07B48C 7F048A9C C5AC0014 */ lwc1 $f12, 0x14($t5) /* 07B490 7F048AA0 0FC1E111 */ jal camGetWorldToScreenMtxf /* 07B494 7F048AA4 00000000 */ nop /* 07B498 7F048AA8 00402025 */ move $a0, $v0 /* 07B49C 7F048AAC 0FC16150 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07B4A0 7F048AB0 8FA50070 */ lw $a1, 0x70($sp) /* 07B4A4 7F048AB4 8E8E0008 */ lw $t6, 8($s4) /* 07B4A8 7F048AB8 26450080 */ addiu $a1, $s2, 0x80 /* 07B4AC 7F048ABC C7AC0304 */ lwc1 $f12, 0x304($sp) /* 07B4B0 7F048AC0 8DD80008 */ lw $t8, 8($t6) /* 07B4B4 7F048AC4 8F0F0008 */ lw $t7, 8($t8) /* 07B4B8 7F048AC8 8DF00004 */ lw $s0, 4($t7) /* 07B4BC 7F048ACC 0FC162CC */ jal matrix_4x4_set_rotation_around_z /* 07B4C0 7F048AD0 AFA5006C */ sw $a1, 0x6c($sp) /* 07B4C4 7F048AD4 02002025 */ move $a0, $s0 /* 07B4C8 7F048AD8 0FC16390 */ jal matrix_4x4_set_position /* 07B4CC 7F048ADC 8FA5006C */ lw $a1, 0x6c($sp) /* 07B4D0 7F048AE0 8FA40070 */ lw $a0, 0x70($sp) /* 07B4D4 7F048AE4 0FC16150 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07B4D8 7F048AE8 8FA5006C */ lw $a1, 0x6c($sp) /* 07B4DC 7F048AEC 8E990008 */ lw $t9, 8($s4) /* 07B4E0 7F048AF0 02802025 */ move $a0, $s4 /* 07B4E4 7F048AF4 8F230008 */ lw $v1, 8($t9) /* 07B4E8 7F048AF8 8C65000C */ lw $a1, 0xc($v1) /* 07B4EC 7F048AFC 50A00016 */ beql $a1, $zero, .L7F048B58 /* 07B4F0 7F048B00 8C650010 */ lw $a1, 0x10($v1) /* 07B4F4 7F048B04 0FC1B366 */ jal modelFindNodeMtx /* 07B4F8 7F048B08 00003025 */ move $a2, $zero /* 07B4FC 7F048B0C AFA20300 */ sw $v0, 0x300($sp) /* 07B500 7F048B10 8E890008 */ lw $t1, 8($s4) /* 07B504 7F048B14 8FAB031C */ lw $t3, 0x31c($sp) /* 07B508 7F048B18 00402825 */ move $a1, $v0 /* 07B50C 7F048B1C 8D280008 */ lw $t0, 8($t1) /* 07B510 7F048B20 C56C00B4 */ lwc1 $f12, 0xb4($t3) /* 07B514 7F048B24 8D0A000C */ lw $t2, 0xc($t0) /* 07B518 7F048B28 0FC16286 */ jal matrix_4x4_set_rotation_around_x /* 07B51C 7F048B2C 8D500004 */ lw $s0, 4($t2) /* 07B520 7F048B30 8FB20300 */ lw $s2, 0x300($sp) /* 07B524 7F048B34 02002025 */ move $a0, $s0 /* 07B528 7F048B38 0FC16390 */ jal matrix_4x4_set_position /* 07B52C 7F048B3C 02402825 */ move $a1, $s2 /* 07B530 7F048B40 8FA4006C */ lw $a0, 0x6c($sp) /* 07B534 7F048B44 0FC16150 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07B538 7F048B48 02402825 */ move $a1, $s2 /* 07B53C 7F048B4C 8E8C0008 */ lw $t4, 8($s4) /* 07B540 7F048B50 8D830008 */ lw $v1, 8($t4) /* 07B544 7F048B54 8C650010 */ lw $a1, 0x10($v1) .L7F048B58: /* 07B548 7F048B58 02802025 */ move $a0, $s4 /* 07B54C 7F048B5C 50A00010 */ beql $a1, $zero, .L7F048BA0 /* 07B550 7F048B60 8C650018 */ lw $a1, 0x18($v1) /* 07B554 7F048B64 0FC1B366 */ jal modelFindNodeMtx /* 07B558 7F048B68 00003025 */ move $a2, $zero /* 07B55C 7F048B6C 8E8D0008 */ lw $t5, 8($s4) /* 07B560 7F048B70 00409025 */ move $s2, $v0 /* 07B564 7F048B74 00402825 */ move $a1, $v0 /* 07B568 7F048B78 8DAE0008 */ lw $t6, 8($t5) /* 07B56C 7F048B7C 8DD80010 */ lw $t8, 0x10($t6) /* 07B570 7F048B80 0FC16383 */ jal matrix_4x4_set_identity_and_position /* 07B574 7F048B84 8F040004 */ lw $a0, 4($t8) /* 07B578 7F048B88 8FA4006C */ lw $a0, 0x6c($sp) /* 07B57C 7F048B8C 0FC16150 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07B580 7F048B90 02402825 */ move $a1, $s2 /* 07B584 7F048B94 8E8F0008 */ lw $t7, 8($s4) /* 07B588 7F048B98 8DE30008 */ lw $v1, 8($t7) /* 07B58C 7F048B9C 8C650018 */ lw $a1, 0x18($v1) .L7F048BA0: /* 07B590 7F048BA0 02802025 */ move $a0, $s4 /* 07B594 7F048BA4 50A001FF */ beql $a1, $zero, .L7F0493A4 /* 07B598 7F048BA8 8E8F0008 */ lw $t7, 8($s4) /* 07B59C 7F048BAC 0FC1B366 */ jal modelFindNodeMtx /* 07B5A0 7F048BB0 00003025 */ move $a2, $zero /* 07B5A4 7F048BB4 8E990008 */ lw $t9, 8($s4) /* 07B5A8 7F048BB8 8FAA031C */ lw $t2, 0x31c($sp) /* 07B5AC 7F048BBC 00409025 */ move $s2, $v0 /* 07B5B0 7F048BC0 8F290008 */ lw $t1, 8($t9) /* 07B5B4 7F048BC4 00402825 */ move $a1, $v0 /* 07B5B8 7F048BC8 C54C00B4 */ lwc1 $f12, 0xb4($t2) /* 07B5BC 7F048BCC 8D280018 */ lw $t0, 0x18($t1) /* 07B5C0 7F048BD0 0FC16286 */ jal matrix_4x4_set_rotation_around_x /* 07B5C4 7F048BD4 8D100004 */ lw $s0, 4($t0) /* 07B5C8 7F048BD8 02002025 */ move $a0, $s0 /* 07B5CC 7F048BDC 0FC16390 */ jal matrix_4x4_set_position /* 07B5D0 7F048BE0 02402825 */ move $a1, $s2 /* 07B5D4 7F048BE4 8FA4006C */ lw $a0, 0x6c($sp) /* 07B5D8 7F048BE8 0FC16150 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07B5DC 7F048BEC 02402825 */ move $a1, $s2 /* 07B5E0 7F048BF0 100001EC */ b .L7F0493A4 /* 07B5E4 7F048BF4 8E8F0008 */ lw $t7, 8($s4) /* 07B5E8 7F048BF8 24010008 */ li $at, 8 .L7F048BFC: /* 07B5EC 7F048BFC 54410017 */ bnel $v0, $at, .L7F048C5C /* 07B5F0 7F048C00 2401000C */ li $at, 12 /* 07B5F4 7F048C04 8E8B0008 */ lw $t3, 8($s4) /* 07B5F8 7F048C08 24020001 */ li $v0, 1 /* 07B5FC 7F048C0C 26440040 */ addiu $a0, $s2, 0x40 /* 07B600 7F048C10 856C000E */ lh $t4, 0xe($t3) /* 07B604 7F048C14 29810002 */ slti $at, $t4, 2 /* 07B608 7F048C18 542001E2 */ bnezl $at, .L7F0493A4 /* 07B60C 7F048C1C 8E8F0008 */ lw $t7, 8($s4) /* 07B610 7F048C20 AFA202FC */ sw $v0, 0x2fc($sp) .L7F048C24: /* 07B614 7F048C24 0FC1611E */ jal matrix_4x4_set_identity /* 07B618 7F048C28 AFA40078 */ sw $a0, 0x78($sp) /* 07B61C 7F048C2C 8E8D0008 */ lw $t5, 8($s4) /* 07B620 7F048C30 8FA202FC */ lw $v0, 0x2fc($sp) /* 07B624 7F048C34 8FA40078 */ lw $a0, 0x78($sp) /* 07B628 7F048C38 85AE000E */ lh $t6, 0xe($t5) /* 07B62C 7F048C3C 24420001 */ addiu $v0, $v0, 1 /* 07B630 7F048C40 24840040 */ addiu $a0, $a0, 0x40 /* 07B634 7F048C44 004E082A */ slt $at, $v0, $t6 /* 07B638 7F048C48 5420FFF6 */ bnezl $at, .L7F048C24 /* 07B63C 7F048C4C AFA202FC */ sw $v0, 0x2fc($sp) /* 07B640 7F048C50 100001D4 */ b .L7F0493A4 /* 07B644 7F048C54 8E8F0008 */ lw $t7, 8($s4) /* 07B648 7F048C58 2401000C */ li $at, 12 .L7F048C5C: /* 07B64C 7F048C5C 5441002C */ bnel $v0, $at, .L7F048D10 /* 07B650 7F048C60 24010027 */ li $at, 39 /* 07B654 7F048C64 8E980008 */ lw $t8, 8($s4) /* 07B658 7F048C68 26450040 */ addiu $a1, $s2, 0x40 /* 07B65C 7F048C6C 8F0F0008 */ lw $t7, 8($t8) /* 07B660 7F048C70 8DF90000 */ lw $t9, ($t7) /* 07B664 7F048C74 8F240004 */ lw $a0, 4($t9) /* 07B668 7F048C78 0FC16383 */ jal matrix_4x4_set_identity_and_position /* 07B66C 7F048C7C AFA50070 */ sw $a1, 0x70($sp) /* 07B670 7F048C80 02402025 */ move $a0, $s2 /* 07B674 7F048C84 0FC16150 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07B678 7F048C88 8FA50070 */ lw $a1, 0x70($sp) /* 07B67C 7F048C8C 8E890008 */ lw $t1, 8($s4) /* 07B680 7F048C90 26450080 */ addiu $a1, $s2, 0x80 /* 07B684 7F048C94 8D280008 */ lw $t0, 8($t1) /* 07B688 7F048C98 8D0A0004 */ lw $t2, 4($t0) /* 07B68C 7F048C9C 8D440004 */ lw $a0, 4($t2) /* 07B690 7F048CA0 0FC16383 */ jal matrix_4x4_set_identity_and_position /* 07B694 7F048CA4 AFA5006C */ sw $a1, 0x6c($sp) /* 07B698 7F048CA8 02402025 */ move $a0, $s2 /* 07B69C 7F048CAC 0FC16150 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07B6A0 7F048CB0 8FA5006C */ lw $a1, 0x6c($sp) /* 07B6A4 7F048CB4 8E8B0008 */ lw $t3, 8($s4) /* 07B6A8 7F048CB8 264500C0 */ addiu $a1, $s2, 0xc0 /* 07B6AC 7F048CBC 8D6C0008 */ lw $t4, 8($t3) /* 07B6B0 7F048CC0 8D8D0008 */ lw $t5, 8($t4) /* 07B6B4 7F048CC4 8DA40004 */ lw $a0, 4($t5) /* 07B6B8 7F048CC8 0FC16383 */ jal matrix_4x4_set_identity_and_position /* 07B6BC 7F048CCC AFA50078 */ sw $a1, 0x78($sp) /* 07B6C0 7F048CD0 02402025 */ move $a0, $s2 /* 07B6C4 7F048CD4 0FC16150 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07B6C8 7F048CD8 8FA50078 */ lw $a1, 0x78($sp) /* 07B6CC 7F048CDC 8E8E0008 */ lw $t6, 8($s4) /* 07B6D0 7F048CE0 26500100 */ addiu $s0, $s2, 0x100 /* 07B6D4 7F048CE4 02002825 */ move $a1, $s0 /* 07B6D8 7F048CE8 8DD80008 */ lw $t8, 8($t6) /* 07B6DC 7F048CEC 8F0F000C */ lw $t7, 0xc($t8) /* 07B6E0 7F048CF0 0FC16383 */ jal matrix_4x4_set_identity_and_position /* 07B6E4 7F048CF4 8DE40004 */ lw $a0, 4($t7) /* 07B6E8 7F048CF8 02402025 */ move $a0, $s2 /* 07B6EC 7F048CFC 0FC16150 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07B6F0 7F048D00 02002825 */ move $a1, $s0 /* 07B6F4 7F048D04 100001A7 */ b .L7F0493A4 /* 07B6F8 7F048D08 8E8F0008 */ lw $t7, 8($s4) /* 07B6FC 7F048D0C 24010027 */ li $at, 39 .L7F048D10: /* 07B700 7F048D10 544100B9 */ bnel $v0, $at, .L7F048FF8 /* 07B704 7F048D14 24010028 */ li $at, 40 /* 07B708 7F048D18 8E990008 */ lw $t9, 8($s4) /* 07B70C 7F048D1C 8FAF0680 */ lw $t7, 0x680($sp) /* 07B710 7F048D20 4600B006 */ mov.s $f0, $f22 /* 07B714 7F048D24 8F230008 */ lw $v1, 8($t9) /* 07B718 7F048D28 8C690004 */ lw $t1, 4($v1) /* 07B71C 7F048D2C 8D280004 */ lw $t0, 4($t1) /* 07B720 7F048D30 AFA80264 */ sw $t0, 0x264($sp) /* 07B724 7F048D34 8C6A0008 */ lw $t2, 8($v1) /* 07B728 7F048D38 8D4B0004 */ lw $t3, 4($t2) /* 07B72C 7F048D3C AFAB0260 */ sw $t3, 0x260($sp) /* 07B730 7F048D40 8C6D0010 */ lw $t5, 0x10($v1) /* 07B734 7F048D44 8C6C000C */ lw $t4, 0xc($v1) /* 07B738 7F048D48 8DAE0004 */ lw $t6, 4($t5) /* 07B73C 7F048D4C 8D900004 */ lw $s0, 4($t4) /* 07B740 7F048D50 AFAE0258 */ sw $t6, 0x258($sp) /* 07B744 7F048D54 8C780018 */ lw $t8, 0x18($v1) /* 07B748 7F048D58 C6840014 */ lwc1 $f4, 0x14($s4) /* 07B74C 7F048D5C 8F020004 */ lw $v0, 4($t8) /* 07B750 7F048D60 C4460010 */ lwc1 $f6, 0x10($v0) /* 07B754 7F048D64 C44A000C */ lwc1 $f10, 0xc($v0) /* 07B758 7F048D68 460A3201 */ sub.s $f8, $f6, $f10 /* 07B75C 7F048D6C 46044082 */ mul.s $f2, $f8, $f4 /* 07B760 7F048D70 11E00026 */ beqz $t7, .L7F048E0C /* 07B764 7F048D74 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 /* 07B768 7F048D78 C42A1004 */ lwc1 $f10, %lo(g_GlobalTimerDelta)($at) /* 07B76C 7F048D7C C6260088 */ lwc1 $f6, 0x88($s1) /* 07B770 7F048D80 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 07B774 7F048D84 460A3202 */ mul.s $f8, $f6, $f10 /* 07B778 7F048D88 44815000 */ mtc1 $at, $f10 /* 07B77C 7F048D8C 46144102 */ mul.s $f4, $f8, $f20 /* 07B780 7F048D90 00000000 */ nop /* 07B784 7F048D94 46141182 */ mul.s $f6, $f2, $f20 /* 07B788 7F048D98 00000000 */ nop /* 07B78C 7F048D9C 460A3202 */ mul.s $f8, $f6, $f10 /* 07B790 7F048DA0 C626008C */ lwc1 $f6, 0x8c($s1) /* 07B794 7F048DA4 46082003 */ div.s $f0, $f4, $f8 /* 07B798 7F048DA8 46003280 */ add.s $f10, $f6, $f0 /* 07B79C 7F048DAC E62A008C */ swc1 $f10, 0x8c($s1) /* 07B7A0 7F048DB0 C62C008C */ lwc1 $f12, 0x8c($s1) /* 07B7A4 7F048DB4 460CA03E */ c.le.s $f20, $f12 /* 07B7A8 7F048DB8 00000000 */ nop /* 07B7AC 7F048DBC 45000008 */ bc1f .L7F048DE0 /* 07B7B0 7F048DC0 00000000 */ nop /* 07B7B4 7F048DC4 46146101 */ sub.s $f4, $f12, $f20 .L7F048DC8: /* 07B7B8 7F048DC8 E624008C */ swc1 $f4, 0x8c($s1) /* 07B7BC 7F048DCC C62C008C */ lwc1 $f12, 0x8c($s1) /* 07B7C0 7F048DD0 460CA03E */ c.le.s $f20, $f12 /* 07B7C4 7F048DD4 00000000 */ nop /* 07B7C8 7F048DD8 4503FFFB */ bc1tl .L7F048DC8 /* 07B7CC 7F048DDC 46146101 */ sub.s $f4, $f12, $f20 .L7F048DE0: /* 07B7D0 7F048DE0 4616603C */ c.lt.s $f12, $f22 /* 07B7D4 7F048DE4 00000000 */ nop /* 07B7D8 7F048DE8 45020009 */ bc1fl .L7F048E10 /* 07B7DC 7F048DEC C626008C */ lwc1 $f6, 0x8c($s1) /* 07B7E0 7F048DF0 46146200 */ add.s $f8, $f12, $f20 .L7F048DF4: /* 07B7E4 7F048DF4 E628008C */ swc1 $f8, 0x8c($s1) /* 07B7E8 7F048DF8 C62C008C */ lwc1 $f12, 0x8c($s1) /* 07B7EC 7F048DFC 4616603C */ c.lt.s $f12, $f22 /* 07B7F0 7F048E00 00000000 */ nop /* 07B7F4 7F048E04 4503FFFB */ bc1tl .L7F048DF4 /* 07B7F8 7F048E08 46146200 */ add.s $f8, $f12, $f20 .L7F048E0C: /* 07B7FC 7F048E0C C626008C */ lwc1 $f6, 0x8c($s1) .L7F048E10: /* 07B800 7F048E10 46003280 */ add.s $f10, $f6, $f0 /* 07B804 7F048E14 E62A008C */ swc1 $f10, 0x8c($s1) /* 07B808 7F048E18 C62C008C */ lwc1 $f12, 0x8c($s1) /* 07B80C 7F048E1C 460CA03E */ c.le.s $f20, $f12 /* 07B810 7F048E20 00000000 */ nop /* 07B814 7F048E24 45020009 */ bc1fl .L7F048E4C /* 07B818 7F048E28 4616603C */ c.lt.s $f12, $f22 /* 07B81C 7F048E2C 46146101 */ sub.s $f4, $f12, $f20 .L7F048E30: /* 07B820 7F048E30 E624008C */ swc1 $f4, 0x8c($s1) /* 07B824 7F048E34 C62C008C */ lwc1 $f12, 0x8c($s1) /* 07B828 7F048E38 460CA03E */ c.le.s $f20, $f12 /* 07B82C 7F048E3C 00000000 */ nop /* 07B830 7F048E40 4503FFFB */ bc1tl .L7F048E30 /* 07B834 7F048E44 46146101 */ sub.s $f4, $f12, $f20 /* 07B838 7F048E48 4616603C */ c.lt.s $f12, $f22 .L7F048E4C: /* 07B83C 7F048E4C 00000000 */ nop /* 07B840 7F048E50 45000008 */ bc1f .L7F048E74 /* 07B844 7F048E54 00000000 */ nop /* 07B848 7F048E58 46146200 */ add.s $f8, $f12, $f20 .L7F048E5C: /* 07B84C 7F048E5C E628008C */ swc1 $f8, 0x8c($s1) /* 07B850 7F048E60 C62C008C */ lwc1 $f12, 0x8c($s1) /* 07B854 7F048E64 4616603C */ c.lt.s $f12, $f22 /* 07B858 7F048E68 00000000 */ nop /* 07B85C 7F048E6C 4503FFFB */ bc1tl .L7F048E5C /* 07B860 7F048E70 46146200 */ add.s $f8, $f12, $f20 .L7F048E74: /* 07B864 7F048E74 0FC16286 */ jal matrix_4x4_set_rotation_around_x /* 07B868 7F048E78 27A502B0 */ addiu $a1, $sp, 0x2b0 /* 07B86C 7F048E7C C6260088 */ lwc1 $f6, 0x88($s1) /* 07B870 7F048E80 4606B03C */ c.lt.s $f22, $f6 /* 07B874 7F048E84 00000000 */ nop /* 07B878 7F048E88 4502002B */ bc1fl .L7F048F38 /* 07B87C 7F048E8C C62C0090 */ lwc1 $f12, 0x90($s1) /* 07B880 7F048E90 8FB90264 */ lw $t9, 0x264($sp) /* 07B884 7F048E94 C60A0008 */ lwc1 $f10, 8($s0) /* 07B888 7F048E98 C62C009C */ lwc1 $f12, 0x9c($s1) /* 07B88C 7F048E9C C7240008 */ lwc1 $f4, 8($t9) /* 07B890 7F048EA0 C6860014 */ lwc1 $f6, 0x14($s4) /* 07B894 7F048EA4 4616603C */ c.lt.s $f12, $f22 /* 07B898 7F048EA8 46045201 */ sub.s $f8, $f10, $f4 /* 07B89C 7F048EAC 46064082 */ mul.s $f2, $f8, $f6 /* 07B8A0 7F048EB0 45020003 */ bc1fl .L7F048EC0 /* 07B8A4 7F048EB4 E7A20254 */ swc1 $f2, 0x254($sp) /* 07B8A8 7F048EB8 46006307 */ neg.s $f12, $f12 /* 07B8AC 7F048EBC E7A20254 */ swc1 $f2, 0x254($sp) .L7F048EC0: /* 07B8B0 7F048EC0 0FC1606B */ jal sinf /* 07B8B4 7F048EC4 E7AC0250 */ swc1 $f12, 0x250($sp) /* 07B8B8 7F048EC8 C7A20254 */ lwc1 $f2, 0x254($sp) /* 07B8BC 7F048ECC C7AC0250 */ lwc1 $f12, 0x250($sp) /* 07B8C0 7F048ED0 46020282 */ mul.s $f10, $f0, $f2 /* 07B8C4 7F048ED4 0FC16068 */ jal cosf /* 07B8C8 7F048ED8 E7AA024C */ swc1 $f10, 0x24c($sp) /* 07B8CC 7F048EDC C7A20254 */ lwc1 $f2, 0x254($sp) /* 07B8D0 7F048EE0 C6280088 */ lwc1 $f8, 0x88($s1) /* 07B8D4 7F048EE4 C7AC024C */ lwc1 $f12, 0x24c($sp) /* 07B8D8 7F048EE8 46020102 */ mul.s $f4, $f0, $f2 /* 07B8DC 7F048EEC 46081181 */ sub.s $f6, $f2, $f8 /* 07B8E0 7F048EF0 0FC16BB8 */ jal atan2f /* 07B8E4 7F048EF4 46062381 */ sub.s $f14, $f4, $f6 /* 07B8E8 7F048EF8 C7A20250 */ lwc1 $f2, 0x250($sp) /* 07B8EC 7F048EFC E6200090 */ swc1 $f0, 0x90($s1) /* 07B8F0 7F048F00 4602003C */ c.lt.s $f0, $f2 /* 07B8F4 7F048F04 00000000 */ nop /* 07B8F8 7F048F08 45020003 */ bc1fl .L7F048F18 /* 07B8FC 7F048F0C C62A009C */ lwc1 $f10, 0x9c($s1) /* 07B900 7F048F10 E6220090 */ swc1 $f2, 0x90($s1) /* 07B904 7F048F14 C62A009C */ lwc1 $f10, 0x9c($s1) .L7F048F18: /* 07B908 7F048F18 460AB03C */ c.lt.s $f22, $f10 /* 07B90C 7F048F1C 00000000 */ nop /* 07B910 7F048F20 45020005 */ bc1fl .L7F048F38 /* 07B914 7F048F24 C62C0090 */ lwc1 $f12, 0x90($s1) /* 07B918 7F048F28 C6280090 */ lwc1 $f8, 0x90($s1) /* 07B91C 7F048F2C 4608A101 */ sub.s $f4, $f20, $f8 /* 07B920 7F048F30 E6240090 */ swc1 $f4, 0x90($s1) /* 07B924 7F048F34 C62C0090 */ lwc1 $f12, 0x90($s1) .L7F048F38: /* 07B928 7F048F38 0FC162A9 */ jal matrix_4x4_set_rotation_around_y /* 07B92C 7F048F3C 27A50270 */ addiu $a1, $sp, 0x270 /* 07B930 7F048F40 264500C0 */ addiu $a1, $s2, 0xc0 /* 07B934 7F048F44 AFA50078 */ sw $a1, 0x78($sp) /* 07B938 7F048F48 0FC16132 */ jal matrix_4x4_copy /* 07B93C 7F048F4C 27A402B0 */ addiu $a0, $sp, 0x2b0 /* 07B940 7F048F50 02002025 */ move $a0, $s0 /* 07B944 7F048F54 0FC16390 */ jal matrix_4x4_set_position /* 07B948 7F048F58 8FA50078 */ lw $a1, 0x78($sp) /* 07B94C 7F048F5C 02402025 */ move $a0, $s2 /* 07B950 7F048F60 0FC16150 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07B954 7F048F64 8FA50078 */ lw $a1, 0x78($sp) /* 07B958 7F048F68 26500100 */ addiu $s0, $s2, 0x100 /* 07B95C 7F048F6C 02002825 */ move $a1, $s0 /* 07B960 7F048F70 0FC16132 */ jal matrix_4x4_copy /* 07B964 7F048F74 27A402B0 */ addiu $a0, $sp, 0x2b0 /* 07B968 7F048F78 8FA40258 */ lw $a0, 0x258($sp) /* 07B96C 7F048F7C 0FC16390 */ jal matrix_4x4_set_position /* 07B970 7F048F80 02002825 */ move $a1, $s0 /* 07B974 7F048F84 02402025 */ move $a0, $s2 /* 07B978 7F048F88 0FC16150 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07B97C 7F048F8C 02002825 */ move $a1, $s0 /* 07B980 7F048F90 27A40270 */ addiu $a0, $sp, 0x270 /* 07B984 7F048F94 0FC16150 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07B988 7F048F98 27A502B0 */ addiu $a1, $sp, 0x2b0 /* 07B98C 7F048F9C 26450040 */ addiu $a1, $s2, 0x40 /* 07B990 7F048FA0 AFA50070 */ sw $a1, 0x70($sp) /* 07B994 7F048FA4 0FC16132 */ jal matrix_4x4_copy /* 07B998 7F048FA8 27A402B0 */ addiu $a0, $sp, 0x2b0 /* 07B99C 7F048FAC 8FA40264 */ lw $a0, 0x264($sp) /* 07B9A0 7F048FB0 0FC16390 */ jal matrix_4x4_set_position /* 07B9A4 7F048FB4 8FA50070 */ lw $a1, 0x70($sp) /* 07B9A8 7F048FB8 02402025 */ move $a0, $s2 /* 07B9AC 7F048FBC 0FC16150 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07B9B0 7F048FC0 8FA50070 */ lw $a1, 0x70($sp) /* 07B9B4 7F048FC4 26450080 */ addiu $a1, $s2, 0x80 /* 07B9B8 7F048FC8 AFA5006C */ sw $a1, 0x6c($sp) /* 07B9BC 7F048FCC 0FC16132 */ jal matrix_4x4_copy /* 07B9C0 7F048FD0 27A402B0 */ addiu $a0, $sp, 0x2b0 /* 07B9C4 7F048FD4 8FA40260 */ lw $a0, 0x260($sp) /* 07B9C8 7F048FD8 0FC16390 */ jal matrix_4x4_set_position /* 07B9CC 7F048FDC 8FA5006C */ lw $a1, 0x6c($sp) /* 07B9D0 7F048FE0 02402025 */ move $a0, $s2 /* 07B9D4 7F048FE4 0FC16150 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07B9D8 7F048FE8 8FA5006C */ lw $a1, 0x6c($sp) /* 07B9DC 7F048FEC 100000ED */ b .L7F0493A4 /* 07B9E0 7F048FF0 8E8F0008 */ lw $t7, 8($s4) /* 07B9E4 7F048FF4 24010028 */ li $at, 40 .L7F048FF8: /* 07B9E8 7F048FF8 54410087 */ bnel $v0, $at, .L7F049218 /* 07B9EC 7F048FFC 2401002D */ li $at, 45 /* 07B9F0 7F049000 8E890008 */ lw $t1, 8($s4) /* 07B9F4 7F049004 3C0C8004 */ lui $t4, %hi(g_ClockTimer) # $t4, 0x8004 /* 07B9F8 7F049008 8D8C0FF4 */ lw $t4, %lo(g_ClockTimer)($t4) /* 07B9FC 7F04900C 8D280008 */ lw $t0, 8($t1) /* 07BA00 7F049010 8FAD0680 */ lw $t5, 0x680($sp) /* 07BA04 7F049014 27B001B4 */ addiu $s0, $sp, 0x1b4 /* 07BA08 7F049018 8D0A0008 */ lw $t2, 8($t0) /* 07BA0C 7F04901C 3C0F8003 */ lui $t7, %hi(D_80030B34) # $t7, 0x8003 /* 07BA10 7F049020 02402025 */ move $a0, $s2 /* 07BA14 7F049024 8D4B0004 */ lw $t3, 4($t2) /* 07BA18 7F049028 26450040 */ addiu $a1, $s2, 0x40 /* 07BA1C 7F04902C 1980001E */ blez $t4, .L7F0490A8 /* 07BA20 7F049030 AFAB0200 */ sw $t3, 0x200($sp) /* 07BA24 7F049034 51A0001D */ beql $t5, $zero, .L7F0490AC /* 07BA28 7F049038 8E2E0014 */ lw $t6, 0x14($s1) /* 07BA2C 7F04903C C6260088 */ lwc1 $f6, 0x88($s1) /* 07BA30 7F049040 C62A008C */ lwc1 $f10, 0x8c($s1) /* 07BA34 7F049044 460A3200 */ add.s $f8, $f6, $f10 /* 07BA38 7F049048 E6280088 */ swc1 $f8, 0x88($s1) /* 07BA3C 7F04904C C6200088 */ lwc1 $f0, 0x88($s1) /* 07BA40 7F049050 4600A03E */ c.le.s $f20, $f0 /* 07BA44 7F049054 00000000 */ nop /* 07BA48 7F049058 45020009 */ bc1fl .L7F049080 /* 07BA4C 7F04905C 4616003C */ c.lt.s $f0, $f22 /* 07BA50 7F049060 46140101 */ sub.s $f4, $f0, $f20 .L7F049064: /* 07BA54 7F049064 E6240088 */ swc1 $f4, 0x88($s1) /* 07BA58 7F049068 C6200088 */ lwc1 $f0, 0x88($s1) /* 07BA5C 7F04906C 4600A03E */ c.le.s $f20, $f0 /* 07BA60 7F049070 00000000 */ nop /* 07BA64 7F049074 4503FFFB */ bc1tl .L7F049064 /* 07BA68 7F049078 46140101 */ sub.s $f4, $f0, $f20 /* 07BA6C 7F04907C 4616003C */ c.lt.s $f0, $f22 .L7F049080: /* 07BA70 7F049080 00000000 */ nop /* 07BA74 7F049084 45020009 */ bc1fl .L7F0490AC /* 07BA78 7F049088 8E2E0014 */ lw $t6, 0x14($s1) /* 07BA7C 7F04908C 46140180 */ add.s $f6, $f0, $f20 .L7F049090: /* 07BA80 7F049090 E6260088 */ swc1 $f6, 0x88($s1) /* 07BA84 7F049094 C6200088 */ lwc1 $f0, 0x88($s1) /* 07BA88 7F049098 4616003C */ c.lt.s $f0, $f22 /* 07BA8C 7F04909C 00000000 */ nop /* 07BA90 7F0490A0 4503FFFB */ bc1tl .L7F049090 /* 07BA94 7F0490A4 46140180 */ add.s $f6, $f0, $f20 .L7F0490A8: /* 07BA98 7F0490A8 8E2E0014 */ lw $t6, 0x14($s1) .L7F0490AC: /* 07BA9C 7F0490AC 25EFC084 */ addiu $t7, %lo(D_80030B34) # addiu $t7, $t7, -0x3f7c /* 07BAA0 7F0490B0 25E9003C */ addiu $t1, $t7, 0x3c /* 07BAA4 7F0490B4 8DD80020 */ lw $t8, 0x20($t6) /* 07BAA8 7F0490B8 02004025 */ move $t0, $s0 /* 07BAAC 7F0490BC 13000015 */ beqz $t8, .L7F049114 /* 07BAB0 7F0490C0 00000000 */ nop .L7F0490C4: /* 07BAB4 7F0490C4 8DE10000 */ lw $at, ($t7) /* 07BAB8 7F0490C8 25EF000C */ addiu $t7, $t7, 0xc /* 07BABC 7F0490CC 2508000C */ addiu $t0, $t0, 0xc /* 07BAC0 7F0490D0 AD01FFF4 */ sw $at, -0xc($t0) /* 07BAC4 7F0490D4 8DE1FFF8 */ lw $at, -8($t7) /* 07BAC8 7F0490D8 AD01FFF8 */ sw $at, -8($t0) /* 07BACC 7F0490DC 8DE1FFFC */ lw $at, -4($t7) /* 07BAD0 7F0490E0 15E9FFF8 */ bne $t7, $t1, .L7F0490C4 /* 07BAD4 7F0490E4 AD01FFFC */ sw $at, -4($t0) /* 07BAD8 7F0490E8 8DE10000 */ lw $at, ($t7) /* 07BADC 7F0490EC 0FC1E111 */ jal camGetWorldToScreenMtxf /* 07BAE0 7F0490F0 AD010000 */ sw $at, ($t0) /* 07BAE4 7F0490F4 AFA201B4 */ sw $v0, 0x1b4($sp) /* 07BAE8 7F0490F8 AFB201C4 */ sw $s2, 0x1c4($sp) /* 07BAEC 7F0490FC 8E250014 */ lw $a1, 0x14($s1) /* 07BAF0 7F049100 0FC1BD9C */ jal subcalcmatrices /* 07BAF4 7F049104 02002025 */ move $a0, $s0 /* 07BAF8 7F049108 264A0040 */ addiu $t2, $s2, 0x40 /* 07BAFC 7F04910C 10000003 */ b .L7F04911C /* 07BB00 7F049110 AFAA0070 */ sw $t2, 0x70($sp) .L7F049114: /* 07BB04 7F049114 0FC16132 */ jal matrix_4x4_copy /* 07BB08 7F049118 AFA50070 */ sw $a1, 0x70($sp) .L7F04911C: /* 07BB0C 7F04911C 8E2B0008 */ lw $t3, 8($s1) /* 07BB10 7F049120 27A50204 */ addiu $a1, $sp, 0x204 /* 07BB14 7F049124 000B6080 */ sll $t4, $t3, 2 /* 07BB18 7F049128 05810006 */ bgez $t4, .L7F049144 /* 07BB1C 7F04912C 00000000 */ nop /* 07BB20 7F049130 C62C0088 */ lwc1 $f12, 0x88($s1) /* 07BB24 7F049134 0FC162CC */ jal matrix_4x4_set_rotation_around_z /* 07BB28 7F049138 27A50204 */ addiu $a1, $sp, 0x204 /* 07BB2C 7F04913C 10000004 */ b .L7F049150 /* 07BB30 7F049140 26450080 */ addiu $a1, $s2, 0x80 .L7F049144: /* 07BB34 7F049144 0FC162A9 */ jal matrix_4x4_set_rotation_around_y /* 07BB38 7F049148 C62C0088 */ lwc1 $f12, 0x88($s1) /* 07BB3C 7F04914C 26450080 */ addiu $a1, $s2, 0x80 .L7F049150: /* 07BB40 7F049150 AFA5006C */ sw $a1, 0x6c($sp) /* 07BB44 7F049154 0FC16132 */ jal matrix_4x4_copy /* 07BB48 7F049158 27A40204 */ addiu $a0, $sp, 0x204 /* 07BB4C 7F04915C 8FA40200 */ lw $a0, 0x200($sp) /* 07BB50 7F049160 0FC16390 */ jal matrix_4x4_set_position /* 07BB54 7F049164 8FA5006C */ lw $a1, 0x6c($sp) /* 07BB58 7F049168 8FA40070 */ lw $a0, 0x70($sp) /* 07BB5C 7F04916C 0FC16150 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07BB60 7F049170 8FA5006C */ lw $a1, 0x6c($sp) /* 07BB64 7F049174 8E8D0008 */ lw $t5, 8($s4) /* 07BB68 7F049178 02802025 */ move $a0, $s4 /* 07BB6C 7F04917C 00003025 */ move $a2, $zero /* 07BB70 7F049180 8DA30008 */ lw $v1, 8($t5) /* 07BB74 7F049184 8C65000C */ lw $a1, 0xc($v1) /* 07BB78 7F049188 50A00013 */ beql $a1, $zero, .L7F0491D8 /* 07BB7C 7F04918C 8C650010 */ lw $a1, 0x10($v1) /* 07BB80 7F049190 0FC1B366 */ jal modelFindNodeMtx /* 07BB84 7F049194 8CB20004 */ lw $s2, 4($a1) /* 07BB88 7F049198 00408025 */ move $s0, $v0 /* 07BB8C 7F04919C C62C0088 */ lwc1 $f12, 0x88($s1) /* 07BB90 7F0491A0 0FC16286 */ jal matrix_4x4_set_rotation_around_x /* 07BB94 7F0491A4 27A50204 */ addiu $a1, $sp, 0x204 /* 07BB98 7F0491A8 27A40204 */ addiu $a0, $sp, 0x204 /* 07BB9C 7F0491AC 0FC16132 */ jal matrix_4x4_copy /* 07BBA0 7F0491B0 02002825 */ move $a1, $s0 /* 07BBA4 7F0491B4 02402025 */ move $a0, $s2 /* 07BBA8 7F0491B8 0FC16390 */ jal matrix_4x4_set_position /* 07BBAC 7F0491BC 02002825 */ move $a1, $s0 /* 07BBB0 7F0491C0 8FA40070 */ lw $a0, 0x70($sp) /* 07BBB4 7F0491C4 0FC16150 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07BBB8 7F0491C8 02002825 */ move $a1, $s0 /* 07BBBC 7F0491CC 8E8E0008 */ lw $t6, 8($s4) /* 07BBC0 7F0491D0 8DC30008 */ lw $v1, 8($t6) /* 07BBC4 7F0491D4 8C650010 */ lw $a1, 0x10($v1) .L7F0491D8: /* 07BBC8 7F0491D8 02802025 */ move $a0, $s4 /* 07BBCC 7F0491DC 00003025 */ move $a2, $zero /* 07BBD0 7F0491E0 50A00070 */ beql $a1, $zero, .L7F0493A4 /* 07BBD4 7F0491E4 8E8F0008 */ lw $t7, 8($s4) /* 07BBD8 7F0491E8 0FC1B366 */ jal modelFindNodeMtx /* 07BBDC 7F0491EC 8CB20004 */ lw $s2, 4($a1) /* 07BBE0 7F0491F0 00408025 */ move $s0, $v0 /* 07BBE4 7F0491F4 02402025 */ move $a0, $s2 /* 07BBE8 7F0491F8 0FC16383 */ jal matrix_4x4_set_identity_and_position /* 07BBEC 7F0491FC 00402825 */ move $a1, $v0 /* 07BBF0 7F049200 8FA40070 */ lw $a0, 0x70($sp) /* 07BBF4 7F049204 0FC16150 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07BBF8 7F049208 02002825 */ move $a1, $s0 /* 07BBFC 7F04920C 10000065 */ b .L7F0493A4 /* 07BC00 7F049210 8E8F0008 */ lw $t7, 8($s4) /* 07BC04 7F049214 2401002D */ li $at, 45 .L7F049218: /* 07BC08 7F049218 14410061 */ bne $v0, $at, .L7F0493A0 /* 07BC0C 7F04921C 26450040 */ addiu $a1, $s2, 0x40 /* 07BC10 7F049220 8E980008 */ lw $t8, 8($s4) /* 07BC14 7F049224 8F030008 */ lw $v1, 8($t8) /* 07BC18 7F049228 8C69000C */ lw $t1, 0xc($v1) /* 07BC1C 7F04922C 8C790004 */ lw $t9, 4($v1) /* 07BC20 7F049230 8D2F0004 */ lw $t7, 4($t1) /* 07BC24 7F049234 8F300004 */ lw $s0, 4($t9) /* 07BC28 7F049238 AFAF0168 */ sw $t7, 0x168($sp) /* 07BC2C 7F04923C 8C680010 */ lw $t0, 0x10($v1) /* 07BC30 7F049240 8D0A0004 */ lw $t2, 4($t0) /* 07BC34 7F049244 AFAA0164 */ sw $t2, 0x164($sp) /* 07BC38 7F049248 8C6B0008 */ lw $t3, 8($v1) /* 07BC3C 7F04924C 8D6C0004 */ lw $t4, 4($t3) /* 07BC40 7F049250 AFAC0160 */ sw $t4, 0x160($sp) /* 07BC44 7F049254 8C6D0018 */ lw $t5, 0x18($v1) /* 07BC48 7F049258 8DAE0004 */ lw $t6, 4($t5) /* 07BC4C 7F04925C AFAE015C */ sw $t6, 0x15c($sp) /* 07BC50 7F049260 C62E00C8 */ lwc1 $f14, 0xc8($s1) /* 07BC54 7F049264 46007387 */ neg.s $f14, $f14 /* 07BC58 7F049268 4616703C */ c.lt.s $f14, $f22 /* 07BC5C 7F04926C 00000000 */ nop /* 07BC60 7F049270 45020003 */ bc1fl .L7F049280 /* 07BC64 7F049274 C62C00CC */ lwc1 $f12, 0xcc($s1) /* 07BC68 7F049278 46147380 */ add.s $f14, $f14, $f20 /* 07BC6C 7F04927C C62C00CC */ lwc1 $f12, 0xcc($s1) .L7F049280: /* 07BC70 7F049280 46006307 */ neg.s $f12, $f12 /* 07BC74 7F049284 4616603C */ c.lt.s $f12, $f22 /* 07BC78 7F049288 00000000 */ nop /* 07BC7C 7F04928C 45020003 */ bc1fl .L7F04929C /* 07BC80 7F049290 AFA50070 */ sw $a1, 0x70($sp) /* 07BC84 7F049294 46146300 */ add.s $f12, $f12, $f20 /* 07BC88 7F049298 AFA50070 */ sw $a1, 0x70($sp) .L7F04929C: /* 07BC8C 7F04929C 0FC162A9 */ jal matrix_4x4_set_rotation_around_y /* 07BC90 7F0492A0 E7AE0158 */ swc1 $f14, 0x158($sp) /* 07BC94 7F0492A4 02002025 */ move $a0, $s0 /* 07BC98 7F0492A8 0FC16390 */ jal matrix_4x4_set_position /* 07BC9C 7F0492AC 8FA50070 */ lw $a1, 0x70($sp) /* 07BCA0 7F0492B0 02402025 */ move $a0, $s2 /* 07BCA4 7F0492B4 0FC16150 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07BCA8 7F0492B8 8FA50070 */ lw $a1, 0x70($sp) /* 07BCAC 7F0492BC 264500C0 */ addiu $a1, $s2, 0xc0 /* 07BCB0 7F0492C0 C7AC0158 */ lwc1 $f12, 0x158($sp) /* 07BCB4 7F0492C4 0FC16286 */ jal matrix_4x4_set_rotation_around_x /* 07BCB8 7F0492C8 AFA50078 */ sw $a1, 0x78($sp) /* 07BCBC 7F0492CC 8FA40168 */ lw $a0, 0x168($sp) /* 07BCC0 7F0492D0 0FC16390 */ jal matrix_4x4_set_position /* 07BCC4 7F0492D4 8FA50078 */ lw $a1, 0x78($sp) /* 07BCC8 7F0492D8 8FA40070 */ lw $a0, 0x70($sp) /* 07BCCC 7F0492DC 0FC16150 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07BCD0 7F0492E0 8FA50078 */ lw $a1, 0x78($sp) /* 07BCD4 7F0492E4 3C018005 */ lui $at, %hi(D_80052B70) # $at, 0x8005 /* 07BCD8 7F0492E8 26500100 */ addiu $s0, $s2, 0x100 /* 07BCDC 7F0492EC 02002825 */ move $a1, $s0 /* 07BCE0 7F0492F0 0FC162A9 */ jal matrix_4x4_set_rotation_around_y /* 07BCE4 7F0492F4 C42C8CB0 */ lwc1 $f12, %lo(D_80052B70)($at) /* 07BCE8 7F0492F8 8FA40164 */ lw $a0, 0x164($sp) /* 07BCEC 7F0492FC 0FC16390 */ jal matrix_4x4_set_position /* 07BCF0 7F049300 02002825 */ move $a1, $s0 /* 07BCF4 7F049304 8FA40078 */ lw $a0, 0x78($sp) /* 07BCF8 7F049308 0FC16150 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07BCFC 7F04930C 02002825 */ move $a1, $s0 /* 07BD00 7F049310 26450080 */ addiu $a1, $s2, 0x80 /* 07BD04 7F049314 AFA5006C */ sw $a1, 0x6c($sp) /* 07BD08 7F049318 0FC16383 */ jal matrix_4x4_set_identity_and_position /* 07BD0C 7F04931C 8FA40160 */ lw $a0, 0x160($sp) /* 07BD10 7F049320 8FA40070 */ lw $a0, 0x70($sp) /* 07BD14 7F049324 0FC16150 */ jal matrix_4x4_multiply_homogeneous_in_place /* 07BD18 7F049328 8FA5006C */ lw $a1, 0x6c($sp) /* 07BD1C 7F04932C 0FC1E131 */ jal currentPlayerGetMatrix10D4 /* 07BD20 7F049330 00000000 */ nop /* 07BD24 7F049334 27B00170 */ addiu $s0, $sp, 0x170 /* 07BD28 7F049338 02003025 */ move $a2, $s0 /* 07BD2C 7F04933C 00402025 */ move $a0, $v0 /* 07BD30 7F049340 0FC1618D */ jal matrix_4x4_multiply_homogeneous /* 07BD34 7F049344 8FA50070 */ lw $a1, 0x70($sp) /* 07BD38 7F049348 8FA4015C */ lw $a0, 0x15c($sp) /* 07BD3C 7F04934C 02002825 */ move $a1, $s0 /* 07BD40 7F049350 26260084 */ addiu $a2, $s1, 0x84 /* 07BD44 7F049354 0FC0FD80 */ jal sub_GAME_7F03F540 /* 07BD48 7F049358 26270080 */ addiu $a3, $s1, 0x80 /* 07BD4C 7F04935C 8E980008 */ lw $t8, 8($s4) /* 07BD50 7F049360 8F030008 */ lw $v1, 8($t8) /* 07BD54 7F049364 8C65001C */ lw $a1, 0x1c($v1) /* 07BD58 7F049368 50A00008 */ beql $a1, $zero, .L7F04938C /* 07BD5C 7F04936C 8C650020 */ lw $a1, 0x20($v1) /* 07BD60 7F049370 0FC1B3A3 */ jal modelGetNodeRwData /* 07BD64 7F049374 02802025 */ move $a0, $s4 /* 07BD68 7F049378 8E3900C4 */ lw $t9, 0xc4($s1) /* 07BD6C 7F04937C A4590000 */ sh $t9, ($v0) /* 07BD70 7F049380 8E890008 */ lw $t1, 8($s4) /* 07BD74 7F049384 8D230008 */ lw $v1, 8($t1) /* 07BD78 7F049388 8C650020 */ lw $a1, 0x20($v1) .L7F04938C: /* 07BD7C 7F04938C 50A00005 */ beql $a1, $zero, .L7F0493A4 /* 07BD80 7F049390 8E8F0008 */ lw $t7, 8($s4) /* 07BD84 7F049394 0FC1B3A3 */ jal modelGetNodeRwData /* 07BD88 7F049398 02802025 */ move $a0, $s4 /* 07BD8C 7F04939C AC400000 */ sw $zero, ($v0) .L7F0493A0: /* 07BD90 7F0493A0 8E8F0008 */ lw $t7, 8($s4) .L7F0493A4: /* 07BD94 7F0493A4 02802025 */ move $a0, $s4 /* 07BD98 7F0493A8 0FC1BCA4 */ jal modelUpdateRelationsQuick /* 07BD9C 7F0493AC 8DE50000 */ lw $a1, ($t7) /* 07BDA0 7F0493B0 8E88000C */ lw $t0, 0xc($s4) /* 07BDA4 7F0493B4 02602025 */ move $a0, $s3 /* 07BDA8 7F0493B8 C50A0038 */ lwc1 $f10, 0x38($t0) /* 07BDAC 7F0493BC 46005207 */ neg.s $f8, $f10 /* 07BDB0 7F0493C0 0FC10F8D */ jal chrobjWeaponTick /* 07BDB4 7F0493C4 E6680018 */ swc1 $f8, 0x18($s3) /* 07BDB8 7F0493C8 8E640020 */ lw $a0, 0x20($s3) /* 07BDBC 7F0493CC 50800018 */ beql $a0, $zero, .L7F049430 /* 07BDC0 7F0493D0 8E230064 */ lw $v1, 0x64($s1) /* 07BDC4 7F0493D4 8C820024 */ lw $v0, 0x24($a0) .L7F0493D8: /* 07BDC8 7F0493D8 0FC110E1 */ jal sub_GAME_7F0442DC /* 07BDCC 7F0493DC AFA2068C */ sw $v0, 0x68c($sp) /* 07BDD0 7F0493E0 8FA4068C */ lw $a0, 0x68c($sp) /* 07BDD4 7F0493E4 5480FFFC */ bnezl $a0, .L7F0493D8 /* 07BDD8 7F0493E8 8C820024 */ lw $v0, 0x24($a0) /* 07BDDC 7F0493EC 10000010 */ b .L7F049430 /* 07BDE0 7F0493F0 8E230064 */ lw $v1, 0x64($s1) .L7F0493F4: /* 07BDE4 7F0493F4 926A0001 */ lbu $t2, 1($s3) /* 07BDE8 7F0493F8 02602025 */ move $a0, $s3 /* 07BDEC 7F0493FC 314BFFFD */ andi $t3, $t2, 0xfffd /* 07BDF0 7F049400 0FC10F8D */ jal chrobjWeaponTick /* 07BDF4 7F049404 A26B0001 */ sb $t3, 1($s3) /* 07BDF8 7F049408 8E640020 */ lw $a0, 0x20($s3) /* 07BDFC 7F04940C 50800008 */ beql $a0, $zero, .L7F049430 /* 07BE00 7F049410 8E230064 */ lw $v1, 0x64($s1) /* 07BE04 7F049414 8C820024 */ lw $v0, 0x24($a0) .L7F049418: /* 07BE08 7F049418 0FC110BD */ jal sub_GAME_7F04424C /* 07BE0C 7F04941C AFA2068C */ sw $v0, 0x68c($sp) /* 07BE10 7F049420 8FA4068C */ lw $a0, 0x68c($sp) /* 07BE14 7F049424 5480FFFC */ bnezl $a0, .L7F049418 /* 07BE18 7F049428 8C820024 */ lw $v0, 0x24($a0) /* 07BE1C 7F04942C 8E230064 */ lw $v1, 0x64($s1) .L7F049430: /* 07BE20 7F049430 2401FEFF */ li $at, -257 /* 07BE24 7F049434 266E0008 */ addiu $t6, $s3, 8 /* 07BE28 7F049438 306C0100 */ andi $t4, $v1, 0x100 /* 07BE2C 7F04943C 1180001F */ beqz $t4, .L7F0494BC /* 07BE30 7F049440 00616824 */ and $t5, $v1, $at /* 07BE34 7F049444 AE2D0064 */ sw $t5, 0x64($s1) /* 07BE38 7F049448 0C00262C */ jal randomGetNext /* 07BE3C 7F04944C AFAE0074 */ sw $t6, 0x74($sp) /* 07BE40 7F049450 44822000 */ mtc1 $v0, $f4 /* 07BE44 7F049454 02202025 */ move $a0, $s1 /* 07BE48 7F049458 04410005 */ bgez $v0, .L7F049470 /* 07BE4C 7F04945C 468021A0 */ cvt.s.w $f6, $f4 /* 07BE50 7F049460 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07BE54 7F049464 44815000 */ mtc1 $at, $f10 /* 07BE58 7F049468 00000000 */ nop /* 07BE5C 7F04946C 460A3180 */ add.s $f6, $f6, $f10 .L7F049470: /* 07BE60 7F049470 3C012F80 */ li $at, 0x2F800000 # 0.000000 /* 07BE64 7F049474 44814000 */ mtc1 $at, $f8 /* 07BE68 7F049478 3C014080 */ li $at, 0x40800000 # 4.000000 /* 07BE6C 7F04947C 44815000 */ mtc1 $at, $f10 /* 07BE70 7F049480 46083102 */ mul.s $f4, $f6, $f8 /* 07BE74 7F049484 3C014000 */ li $at, 0x40000000 # 2.000000 /* 07BE78 7F049488 44814000 */ mtc1 $at, $f8 /* 07BE7C 7F04948C 8E380064 */ lw $t8, 0x64($s1) /* 07BE80 7F049490 3C010006 */ lui $at, 6 /* 07BE84 7F049494 8FA60074 */ lw $a2, 0x74($sp) /* 07BE88 7F049498 0301C824 */ and $t9, $t8, $at /* 07BE8C 7F04949C 460A2182 */ mul.s $f6, $f4, $f10 /* 07BE90 7F0494A0 00003825 */ move $a3, $zero /* 07BE94 7F0494A4 00194C42 */ srl $t1, $t9, 0x11 /* 07BE98 7F0494A8 AFA90010 */ sw $t1, 0x10($sp) /* 07BE9C 7F0494AC 46083100 */ add.s $f4, $f6, $f8 /* 07BEA0 7F0494B0 44052000 */ mfc1 $a1, $f4 /* 07BEA4 7F0494B4 0FC138BC */ jal maybe_detonate_object /* 07BEA8 7F0494B8 00000000 */ nop .L7F0494BC: /* 07BEAC 7F0494BC 8FAF0680 */ lw $t7, 0x680($sp) /* 07BEB0 7F0494C0 51E0020D */ beql $t7, $zero, .L7F049CF8 /* 07BEB4 7F0494C4 8FA80688 */ lw $t0, 0x688($sp) /* 07BEB8 7F0494C8 92220003 */ lbu $v0, 3($s1) /* 07BEBC 7F0494CC 24010001 */ li $at, 1 /* 07BEC0 7F0494D0 54410006 */ bnel $v0, $at, .L7F0494EC /* 07BEC4 7F0494D4 2401000D */ li $at, 13 /* 07BEC8 7F0494D8 0FC14F47 */ jal sub_GAME_7F053A3C /* 07BECC 7F0494DC 8E640004 */ lw $a0, 4($s3) /* 07BED0 7F0494E0 10000202 */ b .L7F049CEC /* 07BED4 7F0494E4 00000000 */ nop /* 07BED8 7F0494E8 2401000D */ li $at, 13 .L7F0494EC: /* 07BEDC 7F0494EC 144101FF */ bne $v0, $at, .L7F049CEC /* 07BEE0 7F0494F0 00000000 */ nop /* 07BEE4 7F0494F4 0FC2FC1E */ jal lvlGetControlsLockedFlag /* 07BEE8 7F0494F8 00000000 */ nop /* 07BEEC 7F0494FC 144001FB */ bnez $v0, .L7F049CEC /* 07BEF0 7F049500 00000000 */ nop /* 07BEF4 7F049504 8E700004 */ lw $s0, 4($s3) /* 07BEF8 7F049508 AFA00140 */ sw $zero, 0x140($sp) /* 07BEFC 7F04950C AFA0013C */ sw $zero, 0x13c($sp) /* 07BF00 7F049510 8E0800D0 */ lw $t0, 0xd0($s0) /* 07BF04 7F049514 510001E4 */ beql $t0, $zero, .L7F049CA8 /* 07BF08 7F049518 8E980008 */ lw $t8, 8($s4) /* 07BF0C 7F04951C 8E2A0008 */ lw $t2, 8($s1) /* 07BF10 7F049520 000A58C0 */ sll $t3, $t2, 3 /* 07BF14 7F049524 056201E0 */ bltzl $t3, .L7F049CA8 /* 07BF18 7F049528 8E980008 */ lw $t8, 8($s4) /* 07BF1C 7F04952C 8E0C00AC */ lw $t4, 0xac($s0) /* 07BF20 7F049530 3C0B8004 */ lui $t3, %hi(g_GlobalTimer) # $t3, 0x8004 /* 07BF24 7F049534 258D0001 */ addiu $t5, $t4, 1 /* 07BF28 7F049538 31AE0001 */ andi $t6, $t5, 1 /* 07BF2C 7F04953C AE0D00AC */ sw $t5, 0xac($s0) /* 07BF30 7F049540 2DD80001 */ sltiu $t8, $t6, 1 /* 07BF34 7F049544 AFB80140 */ sw $t8, 0x140($sp) /* 07BF38 7F049548 8E990008 */ lw $t9, 8($s4) /* 07BF3C 7F04954C 39C80001 */ xori $t0, $t6, 1 /* 07BF40 7F049550 2D080001 */ sltiu $t0, $t0, 1 /* 07BF44 7F049554 8F290008 */ lw $t1, 8($t9) /* 07BF48 7F049558 8D2F0014 */ lw $t7, 0x14($t1) /* 07BF4C 7F04955C 51E00003 */ beql $t7, $zero, .L7F04956C /* 07BF50 7F049560 8E0A00C0 */ lw $t2, 0xc0($s0) /* 07BF54 7F049564 AFA8013C */ sw $t0, 0x13c($sp) /* 07BF58 7F049568 8E0A00C0 */ lw $t2, 0xc0($s0) .L7F04956C: /* 07BF5C 7F04956C 8D6B0FFC */ lw $t3, %lo(g_GlobalTimer)($t3) /* 07BF60 7F049570 014B082A */ slt $at, $t2, $t3 /* 07BF64 7F049574 50200032 */ beql $at, $zero, .L7F049640 /* 07BF68 7F049578 8FAF0140 */ lw $t7, 0x140($sp) /* 07BF6C 7F04957C 8E0400C4 */ lw $a0, 0xc4($s0) /* 07BF70 7F049580 50800008 */ beql $a0, $zero, .L7F0495A4 /* 07BF74 7F049584 8E0400C8 */ lw $a0, 0xc8($s0) /* 07BF78 7F049588 0C002094 */ jal sndGetPlayingState /* 07BF7C 7F04958C 00000000 */ nop /* 07BF80 7F049590 50400004 */ beql $v0, $zero, .L7F0495A4 /* 07BF84 7F049594 8E0400C8 */ lw $a0, 0xc8($s0) /* 07BF88 7F049598 0C002120 */ jal sndDeactivate /* 07BF8C 7F04959C 8E0400C4 */ lw $a0, 0xc4($s0) /* 07BF90 7F0495A0 8E0400C8 */ lw $a0, 0xc8($s0) .L7F0495A4: /* 07BF94 7F0495A4 50800008 */ beql $a0, $zero, .L7F0495C8 /* 07BF98 7F0495A8 8E0C00C4 */ lw $t4, 0xc4($s0) /* 07BF9C 7F0495AC 0C002094 */ jal sndGetPlayingState /* 07BFA0 7F0495B0 00000000 */ nop /* 07BFA4 7F0495B4 50400004 */ beql $v0, $zero, .L7F0495C8 /* 07BFA8 7F0495B8 8E0C00C4 */ lw $t4, 0xc4($s0) /* 07BFAC 7F0495BC 0C002120 */ jal sndDeactivate /* 07BFB0 7F0495C0 8E0400C8 */ lw $a0, 0xc8($s0) /* 07BFB4 7F0495C4 8E0C00C4 */ lw $t4, 0xc4($s0) .L7F0495C8: /* 07BFB8 7F0495C8 3C048005 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8005 /* 07BFBC 7F0495CC 240500FD */ li $a1, 253 /* 07BFC0 7F0495D0 1580000A */ bnez $t4, .L7F0495FC /* 07BFC4 7F0495D4 260600C4 */ addiu $a2, $s0, 0xc4 /* 07BFC8 7F0495D8 266D0008 */ addiu $t5, $s3, 8 /* 07BFCC 7F0495DC AFAD0074 */ sw $t5, 0x74($sp) /* 07BFD0 7F0495E0 0C00209A */ jal sndPlaySfx /* 07BFD4 7F0495E4 8C846900 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07BFD8 7F0495E8 8E0400C4 */ lw $a0, 0xc4($s0) /* 07BFDC 7F0495EC 0FC14F3C */ jal chrobjSndCreatePostEventDefault /* 07BFE0 7F0495F0 8FA50074 */ lw $a1, 0x74($sp) /* 07BFE4 7F0495F4 1000000D */ b .L7F04962C /* 07BFE8 7F0495F8 00000000 */ nop .L7F0495FC: /* 07BFEC 7F0495FC 8E0E00C8 */ lw $t6, 0xc8($s0) /* 07BFF0 7F049600 3C048005 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8005 /* 07BFF4 7F049604 240500FD */ li $a1, 253 /* 07BFF8 7F049608 15C00008 */ bnez $t6, .L7F04962C /* 07BFFC 7F04960C 260600C8 */ addiu $a2, $s0, 0xc8 /* 07C000 7F049610 26780008 */ addiu $t8, $s3, 8 /* 07C004 7F049614 AFB80074 */ sw $t8, 0x74($sp) /* 07C008 7F049618 0C00209A */ jal sndPlaySfx /* 07C00C 7F04961C 8C846900 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07C010 7F049620 8E0400C8 */ lw $a0, 0xc8($s0) /* 07C014 7F049624 0FC14F3C */ jal chrobjSndCreatePostEventDefault /* 07C018 7F049628 8FA50074 */ lw $a1, 0x74($sp) .L7F04962C: /* 07C01C 7F04962C 3C198004 */ lui $t9, %hi(g_GlobalTimer) # $t9, 0x8004 /* 07C020 7F049630 8F390FFC */ lw $t9, %lo(g_GlobalTimer)($t9) /* 07C024 7F049634 27290002 */ addiu $t1, $t9, 2 /* 07C028 7F049638 AE0900C0 */ sw $t1, 0xc0($s0) /* 07C02C 7F04963C 8FAF0140 */ lw $t7, 0x140($sp) .L7F049640: /* 07C030 7F049640 8FA8013C */ lw $t0, 0x13c($sp) /* 07C034 7F049644 240A0001 */ li $t2, 1 /* 07C038 7F049648 55E00004 */ bnezl $t7, .L7F04965C /* 07C03C 7F04964C AFAA0120 */ sw $t2, 0x120($sp) /* 07C040 7F049650 51000195 */ beql $t0, $zero, .L7F049CA8 /* 07C044 7F049654 8E980008 */ lw $t8, 8($s4) /* 07C048 7F049658 AFAA0120 */ sw $t2, 0x120($sp) .L7F04965C: /* 07C04C 7F04965C AFA00110 */ sw $zero, 0x110($sp) /* 07C050 7F049660 8E6B0014 */ lw $t3, 0x14($s3) /* 07C054 7F049664 AFAB010C */ sw $t3, 0x10c($sp) /* 07C058 7F049668 8E0C00AC */ lw $t4, 0xac($s0) /* 07C05C 7F04966C 318D0003 */ andi $t5, $t4, 3 /* 07C060 7F049670 2DAE0001 */ sltiu $t6, $t5, 1 /* 07C064 7F049674 0FC22640 */ jal get_curplayer_positiondata /* 07C068 7F049678 AFAE0108 */ sw $t6, 0x108($sp) /* 07C06C 7F04967C AFA20104 */ sw $v0, 0x104($sp) /* 07C070 7F049680 8E980008 */ lw $t8, 8($s4) /* 07C074 7F049684 24040005 */ li $a0, 5 /* 07C078 7F049688 8F030008 */ lw $v1, 8($t8) /* 07C07C 7F04968C 8C79001C */ lw $t9, 0x1c($v1) /* 07C080 7F049690 53200007 */ beql $t9, $zero, .L7F0496B0 /* 07C084 7F049694 92680001 */ lbu $t0, 1($s3) /* 07C088 7F049698 8E0900AC */ lw $t1, 0xac($s0) /* 07C08C 7F04969C 312F0007 */ andi $t7, $t1, 7 /* 07C090 7F0496A0 55E00003 */ bnezl $t7, .L7F0496B0 /* 07C094 7F0496A4 92680001 */ lbu $t0, 1($s3) /* 07C098 7F0496A8 24040007 */ li $a0, 7 /* 07C09C 7F0496AC 92680001 */ lbu $t0, 1($s3) .L7F0496B0: /* 07C0A0 7F0496B0 310A0002 */ andi $t2, $t0, 2 /* 07C0A4 7F0496B4 1140002D */ beqz $t2, .L7F04976C /* 07C0A8 7F0496B8 00048880 */ sll $s1, $a0, 2 /* 07C0AC 7F0496BC 00715821 */ addu $t3, $v1, $s1 /* 07C0B0 7F0496C0 8D650000 */ lw $a1, ($t3) /* 07C0B4 7F0496C4 02802025 */ move $a0, $s4 /* 07C0B8 7F0496C8 50A00029 */ beql $a1, $zero, .L7F049770 /* 07C0BC 7F0496CC C6640008 */ lwc1 $f4, 8($s3) /* 07C0C0 7F0496D0 0FC1B366 */ jal modelFindNodeMtx /* 07C0C4 7F0496D4 00003025 */ move $a2, $zero /* 07C0C8 7F0496D8 8E8C0008 */ lw $t4, 8($s4) /* 07C0CC 7F0496DC 00409025 */ move $s2, $v0 /* 07C0D0 7F0496E0 8D8D0008 */ lw $t5, 8($t4) /* 07C0D4 7F0496E4 01B17021 */ addu $t6, $t5, $s1 /* 07C0D8 7F0496E8 8DD80000 */ lw $t8, ($t6) /* 07C0DC 7F0496EC 8F030004 */ lw $v1, 4($t8) /* 07C0E0 7F0496F0 C46A0000 */ lwc1 $f10, ($v1) /* 07C0E4 7F0496F4 E7AA0130 */ swc1 $f10, 0x130($sp) /* 07C0E8 7F0496F8 C4660004 */ lwc1 $f6, 4($v1) /* 07C0EC 7F0496FC E7A60134 */ swc1 $f6, 0x134($sp) /* 07C0F0 7F049700 C4680008 */ lwc1 $f8, 8($v1) /* 07C0F4 7F049704 0FC1E131 */ jal currentPlayerGetMatrix10D4 /* 07C0F8 7F049708 E7A80138 */ swc1 $f8, 0x138($sp) /* 07C0FC 7F04970C 27B100BC */ addiu $s1, $sp, 0xbc /* 07C100 7F049710 02203025 */ move $a2, $s1 /* 07C104 7F049714 00402025 */ move $a0, $v0 /* 07C108 7F049718 0FC1618D */ jal matrix_4x4_multiply_homogeneous /* 07C10C 7F04971C 02402825 */ move $a1, $s2 /* 07C110 7F049720 02202025 */ move $a0, $s1 /* 07C114 7F049724 0FC16247 */ jal mtx4TransformVecInPlace /* 07C118 7F049728 27A50130 */ addiu $a1, $sp, 0x130 /* 07C11C 7F04972C C7A40138 */ lwc1 $f4, 0x138($sp) /* 07C120 7F049730 8E650008 */ lw $a1, 8($s3) /* 07C124 7F049734 8E660010 */ lw $a2, 0x10($s3) /* 07C128 7F049738 27A4010C */ addiu $a0, $sp, 0x10c /* 07C12C 7F04973C 8FA70130 */ lw $a3, 0x130($sp) /* 07C130 7F049740 0FC2BFA9 */ jal walkTilesBetweenPoints_NoCallback /* 07C134 7F049744 E7A40010 */ swc1 $f4, 0x10($sp) /* 07C138 7F049748 1440000E */ bnez $v0, .L7F049784 /* 07C13C 7F04974C 00000000 */ nop /* 07C140 7F049750 C66A0008 */ lwc1 $f10, 8($s3) /* 07C144 7F049754 E7AA0130 */ swc1 $f10, 0x130($sp) /* 07C148 7F049758 C666000C */ lwc1 $f6, 0xc($s3) /* 07C14C 7F04975C E7A60134 */ swc1 $f6, 0x134($sp) /* 07C150 7F049760 C6680010 */ lwc1 $f8, 0x10($s3) /* 07C154 7F049764 10000007 */ b .L7F049784 /* 07C158 7F049768 E7A80138 */ swc1 $f8, 0x138($sp) .L7F04976C: /* 07C15C 7F04976C C6640008 */ lwc1 $f4, 8($s3) .L7F049770: /* 07C160 7F049770 E7A40130 */ swc1 $f4, 0x130($sp) /* 07C164 7F049774 C66A000C */ lwc1 $f10, 0xc($s3) /* 07C168 7F049778 E7AA0134 */ swc1 $f10, 0x134($sp) /* 07C16C 7F04977C C6660010 */ lwc1 $f6, 0x10($s3) /* 07C170 7F049780 E7A60138 */ swc1 $f6, 0x138($sp) .L7F049784: /* 07C174 7F049784 0FC16068 */ jal cosf /* 07C178 7F049788 C60C009C */ lwc1 $f12, 0x9c($s0) /* 07C17C 7F04978C C60C0090 */ lwc1 $f12, 0x90($s0) /* 07C180 7F049790 0FC1606B */ jal sinf /* 07C184 7F049794 E7A00080 */ swc1 $f0, 0x80($sp) /* 07C188 7F049798 C7A20080 */ lwc1 $f2, 0x80($sp) /* 07C18C 7F04979C 46020202 */ mul.s $f8, $f0, $f2 /* 07C190 7F0497A0 E7A80124 */ swc1 $f8, 0x124($sp) /* 07C194 7F0497A4 0FC1606B */ jal sinf /* 07C198 7F0497A8 C60C009C */ lwc1 $f12, 0x9c($s0) /* 07C19C 7F0497AC E7A00128 */ swc1 $f0, 0x128($sp) /* 07C1A0 7F0497B0 0FC16068 */ jal cosf /* 07C1A4 7F0497B4 C60C009C */ lwc1 $f12, 0x9c($s0) /* 07C1A8 7F0497B8 C60C0090 */ lwc1 $f12, 0x90($s0) /* 07C1AC 7F0497BC 0FC16068 */ jal cosf /* 07C1B0 7F0497C0 E7A00080 */ swc1 $f0, 0x80($sp) /* 07C1B4 7F0497C4 C7A20080 */ lwc1 $f2, 0x80($sp) /* 07C1B8 7F0497C8 3C014780 */ li $at, 0x47800000 # 65536.000000 /* 07C1BC 7F0497CC 44816000 */ mtc1 $at, $f12 /* 07C1C0 7F0497D0 46020382 */ mul.s $f14, $f0, $f2 /* 07C1C4 7F0497D4 C7A40124 */ lwc1 $f4, 0x124($sp) /* 07C1C8 7F0497D8 C7A60130 */ lwc1 $f6, 0x130($sp) /* 07C1CC 7F0497DC 460C2282 */ mul.s $f10, $f4, $f12 /* 07C1D0 7F0497E0 C7A40128 */ lwc1 $f4, 0x128($sp) /* 07C1D4 7F0497E4 E7AE012C */ swc1 $f14, 0x12c($sp) /* 07C1D8 7F0497E8 46065200 */ add.s $f8, $f10, $f6 /* 07C1DC 7F0497EC 460C2282 */ mul.s $f10, $f4, $f12 /* 07C1E0 7F0497F0 C7A60134 */ lwc1 $f6, 0x134($sp) /* 07C1E4 7F0497F4 460C7102 */ mul.s $f4, $f14, $f12 /* 07C1E8 7F0497F8 E7A80114 */ swc1 $f8, 0x114($sp) /* 07C1EC 7F0497FC 46065200 */ add.s $f8, $f10, $f6 /* 07C1F0 7F049800 C7AA0138 */ lwc1 $f10, 0x138($sp) /* 07C1F4 7F049804 460A2180 */ add.s $f6, $f4, $f10 /* 07C1F8 7F049808 E7A80118 */ swc1 $f8, 0x118($sp) /* 07C1FC 7F04980C 0FC2C3E1 */ jal sub_GAME_7F0B1CC4 /* 07C200 7F049810 E7A6011C */ swc1 $f6, 0x11c($sp) /* 07C204 7F049814 3C0142C8 */ li $at, 0x42C80000 # 100.000000 /* 07C208 7F049818 44810000 */ mtc1 $at, $f0 /* 07C20C 7F04981C 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07C210 7F049820 44812000 */ mtc1 $at, $f4 /* 07C214 7F049824 C7A8011C */ lwc1 $f8, 0x11c($sp) /* 07C218 7F049828 24190002 */ li $t9, 2 /* 07C21C 7F04982C AFB90014 */ sw $t9, 0x14($sp) /* 07C220 7F049830 27A4010C */ addiu $a0, $sp, 0x10c /* 07C224 7F049834 8FA50130 */ lw $a1, 0x130($sp) /* 07C228 7F049838 8FA60138 */ lw $a2, 0x138($sp) /* 07C22C 7F04983C 8FA70114 */ lw $a3, 0x114($sp) /* 07C230 7F049840 E7B60020 */ swc1 $f22, 0x20($sp) /* 07C234 7F049844 E7A00018 */ swc1 $f0, 0x18($sp) /* 07C238 7F049848 E7A0001C */ swc1 $f0, 0x1c($sp) /* 07C23C 7F04984C E7A80010 */ swc1 $f8, 0x10($sp) /* 07C240 7F049850 0FC2C039 */ jal stanTestLineUnobstructed /* 07C244 7F049854 E7A40024 */ swc1 $f4, 0x24($sp) /* 07C248 7F049858 14400017 */ bnez $v0, .L7F0498B8 /* 07C24C 7F04985C 27A60114 */ addiu $a2, $sp, 0x114 /* 07C250 7F049860 27A40130 */ addiu $a0, $sp, 0x130 /* 07C254 7F049864 0FC09899 */ jal chrlvStanLineDirIntersection /* 07C258 7F049868 27A50124 */ addiu $a1, $sp, 0x124 /* 07C25C 7F04986C 3C0141D0 */ li $at, 0x41D00000 # 26.000000 /* 07C260 7F049870 44818000 */ mtc1 $at, $f16 /* 07C264 7F049874 C7A60124 */ lwc1 $f6, 0x124($sp) /* 07C268 7F049878 C7AA0114 */ lwc1 $f10, 0x114($sp) /* 07C26C 7F04987C C7AE012C */ lwc1 $f14, 0x12c($sp) /* 07C270 7F049880 46068202 */ mul.s $f8, $f16, $f6 /* 07C274 7F049884 C7A60118 */ lwc1 $f6, 0x118($sp) /* 07C278 7F049888 8FA9010C */ lw $t1, 0x10c($sp) /* 07C27C 7F04988C AFA90110 */ sw $t1, 0x110($sp) /* 07C280 7F049890 46085101 */ sub.s $f4, $f10, $f8 /* 07C284 7F049894 C7AA0128 */ lwc1 $f10, 0x128($sp) /* 07C288 7F049898 460A8202 */ mul.s $f8, $f16, $f10 /* 07C28C 7F04989C E7A40114 */ swc1 $f4, 0x114($sp) /* 07C290 7F0498A0 C7AA011C */ lwc1 $f10, 0x11c($sp) /* 07C294 7F0498A4 46083101 */ sub.s $f4, $f6, $f8 /* 07C298 7F0498A8 460E8182 */ mul.s $f6, $f16, $f14 /* 07C29C 7F0498AC E7A40118 */ swc1 $f4, 0x118($sp) /* 07C2A0 7F0498B0 46065201 */ sub.s $f8, $f10, $f6 /* 07C2A4 7F0498B4 E7A8011C */ swc1 $f8, 0x11c($sp) .L7F0498B8: /* 07C2A8 7F0498B8 3C0F8004 */ lui $t7, %hi(g_GlobalTimer) # $t7, 0x8004 /* 07C2AC 7F0498BC 8DEF0FFC */ lw $t7, %lo(g_GlobalTimer)($t7) /* 07C2B0 7F0498C0 8E0800BC */ lw $t0, 0xbc($s0) /* 07C2B4 7F0498C4 27B10114 */ addiu $s1, $sp, 0x114 /* 07C2B8 7F0498C8 8FA50104 */ lw $a1, 0x104($sp) /* 07C2BC 7F0498CC 15E80052 */ bne $t7, $t0, .L7F049A18 /* 07C2C0 7F0498D0 C7AA0130 */ lwc1 $f10, 0x130($sp) /* 07C2C4 7F0498D4 C4A40008 */ lwc1 $f4, 8($a1) /* 07C2C8 7F0498D8 C4A6000C */ lwc1 $f6, 0xc($a1) /* 07C2CC 7F0498DC C7A80134 */ lwc1 $f8, 0x134($sp) /* 07C2D0 7F0498E0 460A2001 */ sub.s $f0, $f4, $f10 /* 07C2D4 7F0498E4 C4A40010 */ lwc1 $f4, 0x10($a1) /* 07C2D8 7F0498E8 E7AA0058 */ swc1 $f10, 0x58($sp) /* 07C2DC 7F0498EC 46083081 */ sub.s $f2, $f6, $f8 /* 07C2E0 7F0498F0 C7A60138 */ lwc1 $f6, 0x138($sp) /* 07C2E4 7F0498F4 46062301 */ sub.s $f12, $f4, $f6 /* 07C2E8 7F0498F8 46000102 */ mul.s $f4, $f0, $f0 /* 07C2EC 7F0498FC 00000000 */ nop /* 07C2F0 7F049900 46021282 */ mul.s $f10, $f2, $f2 /* 07C2F4 7F049904 460A2100 */ add.s $f4, $f4, $f10 /* 07C2F8 7F049908 460C6282 */ mul.s $f10, $f12, $f12 /* 07C2FC 7F04990C 460A2500 */ add.s $f20, $f4, $f10 /* 07C300 7F049910 C7AA0058 */ lwc1 $f10, 0x58($sp) /* 07C304 7F049914 C7A40114 */ lwc1 $f4, 0x114($sp) /* 07C308 7F049918 460A2001 */ sub.s $f0, $f4, $f10 /* 07C30C 7F04991C C7A40118 */ lwc1 $f4, 0x118($sp) /* 07C310 7F049920 C7AA011C */ lwc1 $f10, 0x11c($sp) /* 07C314 7F049924 46082081 */ sub.s $f2, $f4, $f8 /* 07C318 7F049928 46000102 */ mul.s $f4, $f0, $f0 /* 07C31C 7F04992C 46065301 */ sub.s $f12, $f10, $f6 /* 07C320 7F049930 46021202 */ mul.s $f8, $f2, $f2 /* 07C324 7F049934 46082280 */ add.s $f10, $f4, $f8 /* 07C328 7F049938 460C6182 */ mul.s $f6, $f12, $f12 /* 07C32C 7F04993C 46065100 */ add.s $f4, $f10, $f6 /* 07C330 7F049940 4604A03E */ c.le.s $f20, $f4 /* 07C334 7F049944 00000000 */ nop /* 07C338 7F049948 45000033 */ bc1f .L7F049A18 /* 07C33C 7F04994C 00000000 */ nop /* 07C340 7F049950 0FC22810 */ jal bondviewGetIfCurrentPlayerDamageShowTime /* 07C344 7F049954 00000000 */ nop /* 07C348 7F049958 54400030 */ bnezl $v0, .L7F049A1C /* 07C34C 7F04995C 8FAA0120 */ lw $t2, 0x120($sp) /* 07C350 7F049960 0C007614 */ jal sqrtf /* 07C354 7F049964 4600A306 */ mov.s $f12, $f20 /* 07C358 7F049968 3C014348 */ li $at, 0x43480000 # 200.000000 /* 07C35C 7F04996C 44816000 */ mtc1 $at, $f12 /* 07C360 7F049970 3C018005 */ lui $at, %hi(D_80052B74) # $at, 0x8005 /* 07C364 7F049974 C4288CB4 */ lwc1 $f8, %lo(D_80052B74)($at) /* 07C368 7F049978 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 /* 07C36C 7F04997C C42A1004 */ lwc1 $f10, %lo(g_GlobalTimerDelta)($at) /* 07C370 7F049980 3C018003 */ lui $at, %hi(g_AutogunPendingDamageTick) # $at, 0x8003 /* 07C374 7F049984 4600603C */ c.lt.s $f12, $f0 /* 07C378 7F049988 460A4182 */ mul.s $f6, $f8, $f10 /* 07C37C 7F04998C C424C06C */ lwc1 $f4, %lo(g_AutogunPendingDamageTick)($at) /* 07C380 7F049990 46043082 */ mul.s $f2, $f6, $f4 /* 07C384 7F049994 45020005 */ bc1fl .L7F0499AC /* 07C388 7F049998 C60A00D4 */ lwc1 $f10, 0xd4($s0) /* 07C38C 7F04999C 46006203 */ div.s $f8, $f12, $f0 /* 07C390 7F0499A0 46081082 */ mul.s $f2, $f2, $f8 /* 07C394 7F0499A4 00000000 */ nop /* 07C398 7F0499A8 C60A00D4 */ lwc1 $f10, 0xd4($s0) .L7F0499AC: /* 07C39C 7F0499AC 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07C3A0 7F0499B0 44814000 */ mtc1 $at, $f8 /* 07C3A4 7F0499B4 46025180 */ add.s $f6, $f10, $f2 /* 07C3A8 7F0499B8 E60600D4 */ swc1 $f6, 0xd4($s0) /* 07C3AC 7F0499BC C60400D4 */ lwc1 $f4, 0xd4($s0) /* 07C3B0 7F0499C0 4604403E */ c.le.s $f8, $f4 /* 07C3B4 7F0499C4 00000000 */ nop /* 07C3B8 7F0499C8 45020014 */ bc1fl .L7F049A1C /* 07C3BC 7F0499CC 8FAA0120 */ lw $t2, 0x120($sp) /* 07C3C0 7F0499D0 0FC1790F */ jal bondwalkItemGetDestructionAmount /* 07C3C4 7F0499D4 2404000E */ li $a0, 14 /* 07C3C8 7F0499D8 3C013E00 */ li $at, 0x3E000000 # 0.125000 /* 07C3CC 7F0499DC 44815000 */ mtc1 $at, $f10 /* 07C3D0 7F0499E0 3C018003 */ lui $at, %hi(g_AutogunDamageScalar) # $at, 0x8003 /* 07C3D4 7F0499E4 C424C070 */ lwc1 $f4, %lo(g_AutogunDamageScalar)($at) /* 07C3D8 7F0499E8 460A0182 */ mul.s $f6, $f0, $f10 /* 07C3DC 7F0499EC C60E0090 */ lwc1 $f14, 0x90($s0) /* 07C3E0 7F0499F0 2406FFFF */ li $a2, -1 /* 07C3E4 7F0499F4 24070001 */ li $a3, 1 /* 07C3E8 7F0499F8 46043302 */ mul.s $f12, $f6, $f4 /* 07C3EC 7F0499FC 0FC227FA */ jal bondviewCallRecordDamageKills /* 07C3F0 7F049A00 00000000 */ nop /* 07C3F4 7F049A04 0FC22810 */ jal bondviewGetIfCurrentPlayerDamageShowTime /* 07C3F8 7F049A08 E61600D4 */ swc1 $f22, 0xd4($s0) /* 07C3FC 7F049A0C 50400003 */ beql $v0, $zero, .L7F049A1C /* 07C400 7F049A10 8FAA0120 */ lw $t2, 0x120($sp) /* 07C404 7F049A14 AFA00120 */ sw $zero, 0x120($sp) .L7F049A18: /* 07C408 7F049A18 8FAA0120 */ lw $t2, 0x120($sp) .L7F049A1C: /* 07C40C 7F049A1C 3C0141D0 */ li $at, 0x41D00000 # 26.000000 /* 07C410 7F049A20 44818000 */ mtc1 $at, $f16 /* 07C414 7F049A24 1140000F */ beqz $t2, .L7F049A64 /* 07C418 7F049A28 8FA50104 */ lw $a1, 0x104($sp) /* 07C41C 7F049A2C 8FAB0110 */ lw $t3, 0x110($sp) /* 07C420 7F049A30 02202025 */ move $a0, $s1 /* 07C424 7F049A34 24050001 */ li $a1, 1 /* 07C428 7F049A38 51600005 */ beql $t3, $zero, .L7F049A50 /* 07C42C 7F049A3C 2404000E */ li $a0, 14 /* 07C430 7F049A40 44068000 */ mfc1 $a2, $f16 /* 07C434 7F049A44 0FC28CD7 */ jal sub_GAME_7F0A3E1C /* 07C438 7F049A48 91670003 */ lbu $a3, 3($t3) /* 07C43C 7F049A4C 2404000E */ li $a0, 14 .L7F049A50: /* 07C440 7F049A50 02202825 */ move $a1, $s1 /* 07C444 7F049A54 0FC19315 */ jal recall_joy2_hits_edit_flag /* 07C448 7F049A58 2406FFFF */ li $a2, -1 /* 07C44C 7F049A5C 1000000B */ b .L7F049A8C /* 07C450 7F049A60 8FAC0108 */ lw $t4, 0x108($sp) .L7F049A64: /* 07C454 7F049A64 C4A80008 */ lwc1 $f8, 8($a1) /* 07C458 7F049A68 2404000E */ li $a0, 14 /* 07C45C 7F049A6C 2406FFFF */ li $a2, -1 /* 07C460 7F049A70 E7A80114 */ swc1 $f8, 0x114($sp) /* 07C464 7F049A74 C4AA000C */ lwc1 $f10, 0xc($a1) /* 07C468 7F049A78 E7AA0118 */ swc1 $f10, 0x118($sp) /* 07C46C 7F049A7C C4A60010 */ lwc1 $f6, 0x10($a1) /* 07C470 7F049A80 0FC19238 */ jal recall_joy2_hits_edit_detail_edit_flag /* 07C474 7F049A84 E7A6011C */ swc1 $f6, 0x11c($sp) /* 07C478 7F049A88 8FAC0108 */ lw $t4, 0x108($sp) .L7F049A8C: /* 07C47C 7F049A8C C7A40130 */ lwc1 $f4, 0x130($sp) /* 07C480 7F049A90 51800085 */ beql $t4, $zero, .L7F049CA8 /* 07C484 7F049A94 8E980008 */ lw $t8, 8($s4) /* 07C488 7F049A98 8E0300CC */ lw $v1, 0xcc($s0) /* 07C48C 7F049A9C E4640004 */ swc1 $f4, 4($v1) /* 07C490 7F049AA0 C7A80134 */ lwc1 $f8, 0x134($sp) /* 07C494 7F049AA4 C4640004 */ lwc1 $f4, 4($v1) /* 07C498 7F049AA8 E4680008 */ swc1 $f8, 8($v1) /* 07C49C 7F049AAC C7AA0138 */ lwc1 $f10, 0x138($sp) /* 07C4A0 7F049AB0 E46A000C */ swc1 $f10, 0xc($v1) /* 07C4A4 7F049AB4 C7A60114 */ lwc1 $f6, 0x114($sp) /* 07C4A8 7F049AB8 46043201 */ sub.s $f8, $f6, $f4 /* 07C4AC 7F049ABC C4660008 */ lwc1 $f6, 8($v1) /* 07C4B0 7F049AC0 E4680010 */ swc1 $f8, 0x10($v1) /* 07C4B4 7F049AC4 C7AA0118 */ lwc1 $f10, 0x118($sp) /* 07C4B8 7F049AC8 C4620010 */ lwc1 $f2, 0x10($v1) /* 07C4BC 7F049ACC 46065101 */ sub.s $f4, $f10, $f6 /* 07C4C0 7F049AD0 C46A000C */ lwc1 $f10, 0xc($v1) /* 07C4C4 7F049AD4 E4640014 */ swc1 $f4, 0x14($v1) /* 07C4C8 7F049AD8 C7A8011C */ lwc1 $f8, 0x11c($sp) /* 07C4CC 7F049ADC 46021102 */ mul.s $f4, $f2, $f2 /* 07C4D0 7F049AE0 C46E0014 */ lwc1 $f14, 0x14($v1) /* 07C4D4 7F049AE4 460A4181 */ sub.s $f6, $f8, $f10 /* 07C4D8 7F049AE8 460E7202 */ mul.s $f8, $f14, $f14 /* 07C4DC 7F049AEC E4660018 */ swc1 $f6, 0x18($v1) /* 07C4E0 7F049AF0 C4600018 */ lwc1 $f0, 0x18($v1) /* 07C4E4 7F049AF4 AFA30094 */ sw $v1, 0x94($sp) /* 07C4E8 7F049AF8 46000182 */ mul.s $f6, $f0, $f0 /* 07C4EC 7F049AFC 46082280 */ add.s $f10, $f4, $f8 /* 07C4F0 7F049B00 0C007614 */ jal sqrtf /* 07C4F4 7F049B04 460A3300 */ add.s $f12, $f6, $f10 /* 07C4F8 7F049B08 3C018005 */ lui $at, %hi(D_80052B78) # $at, 0x8005 /* 07C4FC 7F049B0C C42E8CB8 */ lwc1 $f14, %lo(D_80052B78)($at) /* 07C500 7F049B10 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07C504 7F049B14 44812000 */ mtc1 $at, $f4 /* 07C508 7F049B18 8FA30094 */ lw $v1, 0x94($sp) /* 07C50C 7F049B1C 4600703C */ c.lt.s $f14, $f0 /* 07C510 7F049B20 46000306 */ mov.s $f12, $f0 /* 07C514 7F049B24 46002083 */ div.s $f2, $f4, $f0 /* 07C518 7F049B28 C4680010 */ lwc1 $f8, 0x10($v1) /* 07C51C 7F049B2C C46A0014 */ lwc1 $f10, 0x14($v1) /* 07C520 7F049B30 3C0143FA */ li $at, 0x43FA0000 # 500.000000 /* 07C524 7F049B34 44810000 */ mtc1 $at, $f0 /* 07C528 7F049B38 46024182 */ mul.s $f6, $f8, $f2 /* 07C52C 7F049B3C C4680018 */ lwc1 $f8, 0x18($v1) /* 07C530 7F049B40 46025102 */ mul.s $f4, $f10, $f2 /* 07C534 7F049B44 E4660010 */ swc1 $f6, 0x10($v1) /* 07C538 7F049B48 46024182 */ mul.s $f6, $f8, $f2 /* 07C53C 7F049B4C E4640014 */ swc1 $f4, 0x14($v1) /* 07C540 7F049B50 45000002 */ bc1f .L7F049B5C /* 07C544 7F049B54 E4660018 */ swc1 $f6, 0x18($v1) /* 07C548 7F049B58 46007306 */ mov.s $f12, $f14 .L7F049B5C: /* 07C54C 7F049B5C 4600603C */ c.lt.s $f12, $f0 /* 07C550 7F049B60 240D000E */ li $t5, 14 /* 07C554 7F049B64 A0600000 */ sb $zero, ($v1) /* 07C558 7F049B68 A06D0001 */ sb $t5, 1($v1) /* 07C55C 7F049B6C 45000002 */ bc1f .L7F049B78 /* 07C560 7F049B70 E46C001C */ swc1 $f12, 0x1c($v1) /* 07C564 7F049B74 46000306 */ mov.s $f12, $f0 .L7F049B78: /* 07C568 7F049B78 806E0001 */ lb $t6, 1($v1) /* 07C56C 7F049B7C 24010016 */ li $at, 22 /* 07C570 7F049B80 15C10026 */ bne $t6, $at, .L7F049C1C /* 07C574 7F049B84 3C018005 */ lui $at, %hi(D_80052B7C) # $at, 0x8005 /* 07C578 7F049B88 C4228CBC */ lwc1 $f2, %lo(D_80052B7C)($at) /* 07C57C 7F049B8C 3C013E80 */ li $at, 0x3E800000 # 0.250000 /* 07C580 7F049B90 44815000 */ mtc1 $at, $f10 /* 07C584 7F049B94 3C018005 */ lui $at, %hi(D_80052B80) # $at, 0x8005 /* 07C588 7F049B98 460C5102 */ mul.s $f4, $f10, $f12 /* 07C58C 7F049B9C E4640020 */ swc1 $f4, 0x20($v1) /* 07C590 7F049BA0 C4288CC0 */ lwc1 $f8, %lo(D_80052B80)($at) /* 07C594 7F049BA4 460C4002 */ mul.s $f0, $f8, $f12 /* 07C598 7F049BA8 4600103C */ c.lt.s $f2, $f0 /* 07C59C 7F049BAC E4600024 */ swc1 $f0, 0x24($v1) /* 07C5A0 7F049BB0 45020003 */ bc1fl .L7F049BC0 /* 07C5A4 7F049BB4 AFA30094 */ sw $v1, 0x94($sp) /* 07C5A8 7F049BB8 E4620024 */ swc1 $f2, 0x24($v1) /* 07C5AC 7F049BBC AFA30094 */ sw $v1, 0x94($sp) .L7F049BC0: /* 07C5B0 7F049BC0 0C00262C */ jal randomGetNext /* 07C5B4 7F049BC4 E7AC0098 */ swc1 $f12, 0x98($sp) /* 07C5B8 7F049BC8 44823000 */ mtc1 $v0, $f6 /* 07C5BC 7F049BCC 8FA30094 */ lw $v1, 0x94($sp) /* 07C5C0 7F049BD0 C7AC0098 */ lwc1 $f12, 0x98($sp) /* 07C5C4 7F049BD4 04410005 */ bgez $v0, .L7F049BEC /* 07C5C8 7F049BD8 468032A0 */ cvt.s.w $f10, $f6 /* 07C5CC 7F049BDC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07C5D0 7F049BE0 44812000 */ mtc1 $at, $f4 /* 07C5D4 7F049BE4 00000000 */ nop /* 07C5D8 7F049BE8 46045280 */ add.s $f10, $f10, $f4 .L7F049BEC: /* 07C5DC 7F049BEC 3C012F80 */ li $at, 0x2F800000 # 0.000000 /* 07C5E0 7F049BF0 44814000 */ mtc1 $at, $f8 /* 07C5E4 7F049BF4 3C018005 */ lui $at, %hi(D_80052B84) # $at, 0x8005 /* 07C5E8 7F049BF8 C4248CC4 */ lwc1 $f4, %lo(D_80052B84)($at) /* 07C5EC 7F049BFC 46085182 */ mul.s $f6, $f10, $f8 /* 07C5F0 7F049C00 3C018005 */ lui $at, %hi(D_80052B88) # $at, 0x8005 /* 07C5F4 7F049C04 C4288CC8 */ lwc1 $f8, %lo(D_80052B88)($at) /* 07C5F8 7F049C08 46043282 */ mul.s $f10, $f6, $f4 /* 07C5FC 7F049C0C 460A4181 */ sub.s $f6, $f8, $f10 /* 07C600 7F049C10 460C3102 */ mul.s $f4, $f6, $f12 /* 07C604 7F049C14 10000023 */ b .L7F049CA4 /* 07C608 7F049C18 E4640028 */ swc1 $f4, 0x28($v1) .L7F049C1C: /* 07C60C 7F049C1C 3C018005 */ lui $at, %hi(D_80052B8C) # $at, 0x8005 /* 07C610 7F049C20 C4288CCC */ lwc1 $f8, %lo(D_80052B8C)($at) /* 07C614 7F049C24 3C018005 */ lui $at, %hi(D_80052B90) # $at, 0x8005 /* 07C618 7F049C28 460C4002 */ mul.s $f0, $f8, $f12 /* 07C61C 7F049C2C E4600020 */ swc1 $f0, 0x20($v1) /* 07C620 7F049C30 E4600024 */ swc1 $f0, 0x24($v1) /* 07C624 7F049C34 C42A8CD0 */ lwc1 $f10, %lo(D_80052B90)($at) /* 07C628 7F049C38 3C018005 */ lui $at, %hi(D_80052B94) # $at, 0x8005 /* 07C62C 7F049C3C 4600503C */ c.lt.s $f10, $f0 /* 07C630 7F049C40 00000000 */ nop /* 07C634 7F049C44 45000003 */ bc1f .L7F049C54eu /* 07C638 7F049C48 00000000 */ nop /* 07C63C 7F049C4C C4268CD4 */ lwc1 $f6, %lo(D_80052B94)($at) /* 07C640 7F049C50 E4660024 */ swc1 $f6, 0x24($v1) .L7F049C54eu: /* 07C644 7F049C54 0C00262C */ jal randomGetNext /* 07C648 7F049C58 AFA30094 */ sw $v1, 0x94($sp) /* 07C64C 7F049C5C 44822000 */ mtc1 $v0, $f4 /* 07C650 7F049C60 8FA30094 */ lw $v1, 0x94($sp) /* 07C654 7F049C64 04410005 */ bgez $v0, .L7F049C7C /* 07C658 7F049C68 46802220 */ cvt.s.w $f8, $f4 /* 07C65C 7F049C6C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07C660 7F049C70 44815000 */ mtc1 $at, $f10 /* 07C664 7F049C74 00000000 */ nop /* 07C668 7F049C78 460A4200 */ add.s $f8, $f8, $f10 .L7F049C7C: /* 07C66C 7F049C7C 3C012F80 */ li $at, 0x2F800000 # 0.000000 /* 07C670 7F049C80 44813000 */ mtc1 $at, $f6 /* 07C674 7F049C84 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07C678 7F049C88 44815000 */ mtc1 $at, $f10 /* 07C67C 7F049C8C 46064002 */ mul.s $f0, $f8, $f6 /* 07C680 7F049C90 C4660020 */ lwc1 $f6, 0x20($v1) /* 07C684 7F049C94 46000100 */ add.s $f4, $f0, $f0 /* 07C688 7F049C98 460A2201 */ sub.s $f8, $f4, $f10 /* 07C68C 7F049C9C 46064102 */ mul.s $f4, $f8, $f6 /* 07C690 7F049CA0 E4640028 */ swc1 $f4, 0x28($v1) .L7F049CA4: /* 07C694 7F049CA4 8E980008 */ lw $t8, 8($s4) .L7F049CA8: /* 07C698 7F049CA8 8F030008 */ lw $v1, 8($t8) /* 07C69C 7F049CAC 8C650014 */ lw $a1, 0x14($v1) /* 07C6A0 7F049CB0 50A00008 */ beql $a1, $zero, .L7F049CD4 /* 07C6A4 7F049CB4 8C65001C */ lw $a1, 0x1c($v1) /* 07C6A8 7F049CB8 0FC1B3A3 */ jal modelGetNodeRwData /* 07C6AC 7F049CBC 02802025 */ move $a0, $s4 /* 07C6B0 7F049CC0 8FB90140 */ lw $t9, 0x140($sp) /* 07C6B4 7F049CC4 A4590000 */ sh $t9, ($v0) /* 07C6B8 7F049CC8 8E890008 */ lw $t1, 8($s4) /* 07C6BC 7F049CCC 8D230008 */ lw $v1, 8($t1) /* 07C6C0 7F049CD0 8C65001C */ lw $a1, 0x1c($v1) .L7F049CD4: /* 07C6C4 7F049CD4 10A00005 */ beqz $a1, .L7F049CEC /* 07C6C8 7F049CD8 00000000 */ nop /* 07C6CC 7F049CDC 0FC1B3A3 */ jal modelGetNodeRwData /* 07C6D0 7F049CE0 02802025 */ move $a0, $s4 /* 07C6D4 7F049CE4 8FAF013C */ lw $t7, 0x13c($sp) /* 07C6D8 7F049CE8 A44F0000 */ sh $t7, ($v0) .L7F049CEC: /* 07C6DC 7F049CEC 0FC110AA */ jal objDropRecursively /* 07C6E0 7F049CF0 02602025 */ move $a0, $s3 /* 07C6E4 7F049CF4 8FA80688 */ lw $t0, 0x688($sp) .L7F049CF8: /* 07C6E8 7F049CF8 24010005 */ li $at, 5 /* 07C6EC 7F049CFC 55010003 */ bnel $t0, $at, .L7F049D0C /* 07C6F0 7F049D00 8FA20688 */ lw $v0, 0x688($sp) /* 07C6F4 7F049D04 AE600014 */ sw $zero, 0x14($s3) /* 07C6F8 7F049D08 8FA20688 */ lw $v0, 0x688($sp) .L7F049D0C: /* 07C6FC 7F049D0C 8FBF0054 */ lw $ra, 0x54($sp) /* 07C700 7F049D10 D7B40030 */ ldc1 $f20, 0x30($sp) /* 07C704 7F049D14 D7B60038 */ ldc1 $f22, 0x38($sp) /* 07C708 7F049D18 8FB00040 */ lw $s0, 0x40($sp) /* 07C70C 7F049D1C 8FB10044 */ lw $s1, 0x44($sp) /* 07C710 7F049D20 8FB20048 */ lw $s2, 0x48($sp) /* 07C714 7F049D24 8FB3004C */ lw $s3, 0x4c($sp) /* 07C718 7F049D28 8FB40050 */ lw $s4, 0x50($sp) /* 07C71C 7F049D2C 03E00008 */ jr $ra /* 07C720 7F049D30 27BD06B0 */ addiu $sp, $sp, 0x6b0 ) #endif #endif #ifdef NONMATCHING Gfx * sub_GAME_7F049B58(Gfx *arg0) { } #else GLOBAL_ASM( .text glabel sub_GAME_7F049B58 /* 07E688 7F049B58 27BDFFC8 */ addiu $sp, $sp, -0x38 /* 07E68C 7F049B5C AFBF0034 */ sw $ra, 0x34($sp) /* 07E690 7F049B60 AFB20020 */ sw $s2, 0x20($sp) /* 07E694 7F049B64 00809025 */ move $s2, $a0 /* 07E698 7F049B68 AFB60030 */ sw $s6, 0x30($sp) /* 07E69C 7F049B6C AFB5002C */ sw $s5, 0x2c($sp) /* 07E6A0 7F049B70 AFB40028 */ sw $s4, 0x28($sp) /* 07E6A4 7F049B74 AFB30024 */ sw $s3, 0x24($sp) /* 07E6A8 7F049B78 AFB1001C */ sw $s1, 0x1c($sp) /* 07E6AC 7F049B7C 0FC0E909 */ jal get_ptr_obj_pos_list_current_entry /* 07E6B0 7F049B80 AFB00018 */ sw $s0, 0x18($sp) /* 07E6B4 7F049B84 10400036 */ beqz $v0, .L7F049C60 /* 07E6B8 7F049B88 00408025 */ move $s0, $v0 /* 07E6BC 7F049B8C 24160006 */ li $s6, 6 /* 07E6C0 7F049B90 2415000D */ li $s5, 13 /* 07E6C4 7F049B94 24140001 */ li $s4, 1 /* 07E6C8 7F049B98 24130003 */ li $s3, 3 /* 07E6CC 7F049B9C 92020000 */ lbu $v0, ($s0) .L7F049BA0: /* 07E6D0 7F049BA0 02402025 */ move $a0, $s2 /* 07E6D4 7F049BA4 1662000B */ bne $s3, $v0, .L7F049BD4 /* 07E6D8 7F049BA8 00000000 */ nop /* 07E6DC 7F049BAC 8E110004 */ lw $s1, 4($s0) /* 07E6E0 7F049BB0 02803025 */ move $a2, $s4 /* 07E6E4 7F049BB4 0FC18786 */ jal sub_GAME_7F061E18 /* 07E6E8 7F049BB8 26250180 */ addiu $a1, $s1, 0x180 /* 07E6EC 7F049BBC 00402025 */ move $a0, $v0 /* 07E6F0 7F049BC0 262501AC */ addiu $a1, $s1, 0x1ac /* 07E6F4 7F049BC4 0FC18786 */ jal sub_GAME_7F061E18 /* 07E6F8 7F049BC8 02803025 */ move $a2, $s4 /* 07E6FC 7F049BCC 10000021 */ b .L7F049C54 /* 07E700 7F049BD0 00409025 */ move $s2, $v0 .L7F049BD4: /* 07E704 7F049BD4 1682000B */ bne $s4, $v0, .L7F049C04 /* 07E708 7F049BD8 00000000 */ nop /* 07E70C 7F049BDC 8E030004 */ lw $v1, 4($s0) /* 07E710 7F049BE0 02402025 */ move $a0, $s2 /* 07E714 7F049BE4 02803025 */ move $a2, $s4 /* 07E718 7F049BE8 906E0003 */ lbu $t6, 3($v1) /* 07E71C 7F049BEC 56AE001A */ bnel $s5, $t6, .L7F049C58 /* 07E720 7F049BF0 8E100024 */ lw $s0, 0x24($s0) /* 07E724 7F049BF4 0FC18786 */ jal sub_GAME_7F061E18 /* 07E728 7F049BF8 8C6500CC */ lw $a1, 0xcc($v1) /* 07E72C 7F049BFC 10000015 */ b .L7F049C54 /* 07E730 7F049C00 00409025 */ move $s2, $v0 .L7F049C04: /* 07E734 7F049C04 56C20014 */ bnel $s6, $v0, .L7F049C58 /* 07E738 7F049C08 8E100024 */ lw $s0, 0x24($s0) /* 07E73C 7F049C0C 8E0F0004 */ lw $t7, 4($s0) /* 07E740 7F049C10 51E00011 */ beql $t7, $zero, .L7F049C58 /* 07E744 7F049C14 8E100024 */ lw $s0, 0x24($s0) /* 07E748 7F049C18 0FC26C57 */ jal getPlayerPointerIndex /* 07E74C 7F049C1C 02002025 */ move $a0, $s0 /* 07E750 7F049C20 0FC26C54 */ jal get_cur_playernum /* 07E754 7F049C24 00408825 */ move $s1, $v0 /* 07E758 7F049C28 1051000A */ beq $v0, $s1, .L7F049C54 /* 07E75C 7F049C2C 02402025 */ move $a0, $s2 /* 07E760 7F049C30 8E110004 */ lw $s1, 4($s0) /* 07E764 7F049C34 02803025 */ move $a2, $s4 /* 07E768 7F049C38 0FC18786 */ jal sub_GAME_7F061E18 /* 07E76C 7F049C3C 26250180 */ addiu $a1, $s1, 0x180 /* 07E770 7F049C40 00402025 */ move $a0, $v0 /* 07E774 7F049C44 262501AC */ addiu $a1, $s1, 0x1ac /* 07E778 7F049C48 0FC18786 */ jal sub_GAME_7F061E18 /* 07E77C 7F049C4C 02803025 */ move $a2, $s4 /* 07E780 7F049C50 00409025 */ move $s2, $v0 .L7F049C54: /* 07E784 7F049C54 8E100024 */ lw $s0, 0x24($s0) .L7F049C58: /* 07E788 7F049C58 5600FFD1 */ bnezl $s0, .L7F049BA0 /* 07E78C 7F049C5C 92020000 */ lbu $v0, ($s0) .L7F049C60: /* 07E790 7F049C60 8FBF0034 */ lw $ra, 0x34($sp) /* 07E794 7F049C64 02401025 */ move $v0, $s2 /* 07E798 7F049C68 8FB20020 */ lw $s2, 0x20($sp) /* 07E79C 7F049C6C 8FB00018 */ lw $s0, 0x18($sp) /* 07E7A0 7F049C70 8FB1001C */ lw $s1, 0x1c($sp) /* 07E7A4 7F049C74 8FB30024 */ lw $s3, 0x24($sp) /* 07E7A8 7F049C78 8FB40028 */ lw $s4, 0x28($sp) /* 07E7AC 7F049C7C 8FB5002C */ lw $s5, 0x2c($sp) /* 07E7B0 7F049C80 8FB60030 */ lw $s6, 0x30($sp) /* 07E7B4 7F049C84 03E00008 */ jr $ra /* 07E7B8 7F049C88 27BD0038 */ addiu $sp, $sp, 0x38 ) #endif void save_ptr_monitor_ani_code_to_obj_ani_slot(MonitorRecord *mon, void *image) { mon->cmdlist = image; mon->offset = 0; } void monitorSetImageByNum(MonitorRecord *mon, s32 monAnimID) { s32 *image = &monAnim00Bond; switch (monAnimID) { default: case 0: break; case 1: image = &monAnim01DesktopsSatellite; break; case 2: image = &monAnim02Astrological; break; case 3: image = &monAnim03ThreeWavePattern; break; case 4: image = &monAnim04WavePattern; break; case 5: image = &monAnim05GreenTextUp; break; case 6: image = &monAnim06RedTextDown; break; case 7: image = &monAnim07GreenTextDown; break; case 8: image = &monAnim08RedBarGraph; break; case 9: image = &monAnim09BlueBarGraph; break; case 10: image = &monAnim0AGreenBarGraph; break; case 11: image = &monAnim0BRadar; break; case 12: image = &monAnim0CSpinningCube; break; case 13: image = &monAnim0DLocWeapArmed; break; case 14: image = &monAnim0ERedTarget; break; case 15: image = &monAnim0FSatelliteTargeting; break; case 16: image = &monAnim10GlobalMap; break; case 17: image = &monAnim11KarlYelling; break; case 18: image = &monAnim12Skateboard; break; case 19: image = &monAnim13PoliceGuy; break; case 20: image = &monAnim14Off; break; case 21: image = &monAnim15RandomSeven; break; case 22: image = &monAnim16RandomFour; break; case 23: image = &monAnim17RandImageEffect; break; case 24: image = &monRandEffectChanceSHUTTLE1; break; case 25: image = &monRandEffectChanceSHUTTLE2; break; case 26: image = &monRandEffectChanceEARTHFULL1; break; case 27: image = &monRandEffectChanceEARTHFULL2; break; case 28: image = &monRandEffectChanceBLUESTARS; break; case 29: image = &monRandEffectChanceGALAXY1; break; case 30: image = &monRandEffectChanceGALAXY2; break; case 31: image = &monRandEffectChanceEARTHTEXT; break; case 32: image = &monRandEffectChanceTARGETEARTH; break; case 33: image = &monRandEffectChanceGALAXY3; break; case 34: image = &monRandChanceScrollOrZoomRandRGBN; break; case 35: image = &monRandChanceScrollOrZoomRed; break; case 36: image = &monRandChanceScrollOrZoomGreen; break; case 37: image = &monRandChanceScrollOrZoomBlue; break; case 38: image = &monRandChanceScrollOrZoom; break; case 39: image = &monAnim27RandomEffectScrollRight; break; case 40: image = &monAnim28RandomEffectScrollUpFast; break; case 41: image = &monAnim29RandomEffectScrollUp; break; case 42: image = &monAnim2ARandEffectScrollZoom1; break; case 43: image = &monAnim2ARandEffectScrollZoom2; break; case 44: image = &monAnim2CRandEffectWaitRoute; break; case 45: image = &monAnim2DRandEffectFlash; break; case 46: image = &monAnim2ERedBrightening; break; case 47: image = &monAnim2FGreenBrightening; break; case 48: image = &monAnim30GreySolid; break; case 49: image = &monAnim31RedSolid; break; case 50: image = &monAnim32GreenSolid; break; case 51: image = &monAnim33BlackSolid; break; } save_ptr_monitor_ani_code_to_obj_ani_slot(mon, image); } void save_img_index_to_obj_ani_slot(MonitorRecord *mon, void *unk88) { mon->tconfig = unk88; } #ifdef NONMATCHING struct tvcmd { u32 type; s32 arg1; u32 arg2; }; // Almost matching - only regalloc issues left (for VERSION_US) // Called tvscreenRender in PD Gfx *process_monitor_animation_microcode(Model *model, ModelNode *node, MonitorRecord *screen, Gfx *gdl, s32 arg4, s32 arg5) { if (node && (node->Opcode & 0xff) == MODELNODE_OPCODE_DISPLAYLIST_COLLISIONRECORD) { Vertex *vertices = dynAllocate7F0BD6C4(4); Gfx *savedgdl = gdl++; union ModelRoData *rodata = node->Data; union ModelRwData *rwdata = modelGetNodeRwData(model, node); sImageTableEntry *tconfig; bool yielding = FALSE; while (!yielding) { struct tvcmd *cmd = (struct tvcmd *) &screen->cmdlist[screen->offset]; switch (cmd->type) { case TVCMD_STOPSCROLL: screen->xmidinc = 0.0f; screen->ymidinc = 0.0f; screen->offset++; break; case TVCMD_SCROLLRELX: screen->xmidfrac = 0.0f; screen->xmidinc = 1.0f / cmd->arg2; screen->xmidold = screen->xmid; screen->xmidnew = screen->xmid + cmd->arg1 * (1.0f / 1024.0f); screen->offset += 3; break; case TVCMD_SCROLLRELY: screen->ymidfrac = 0.0f; screen->ymidinc = 1.0f / cmd->arg2; screen->ymidold = screen->ymid; screen->ymidnew = screen->ymid + cmd->arg1 * (1.0f / 1024.0f); screen->offset += 3; break; case TVCMD_SCROLLABSX: screen->xmidfrac = 0.0f; screen->xmidinc = 1.0f / cmd->arg2; screen->xmidold = screen->xmid; screen->xmidnew = cmd->arg1 * (1.0f / 1024.0f); screen->offset += 3; break; case TVCMD_SCROLLABSY: screen->ymidfrac = 0.0f; screen->ymidinc = 1.0f / cmd->arg2; screen->ymidold = screen->ymid; screen->ymidnew = cmd->arg1 * (1.0f / 1024.0f); screen->offset += 3; break; case TVCMD_SCALEABSX: screen->xscalefrac = 0.0f; screen->xscaleinc = 1.0f / cmd->arg2; screen->xscaleold = screen->xscale; screen->xscalenew = cmd->arg1 * (1.0f / 1024.0f); screen->offset += 3; break; case TVCMD_SCALEABSY: screen->yscalefrac = 0.0f; screen->yscaleinc = 1.0f / cmd->arg2; screen->yscaleold = screen->yscale; screen->yscalenew = cmd->arg1 * (1.0f / 1024.0f); screen->offset += 3; break; case TVCMD_SETTEXTURE: save_img_index_to_obj_ani_slot(screen, cmd->arg1); screen->offset += 2; break; case TVCMD_PAUSE: if (screen->pause60 >= 0) { screen->pause60 -= g_ClockTimer; if (screen->pause60 >= 0) { yielding = TRUE; } else { screen->offset += 2; } } else { yielding = TRUE; screen->pause60 = cmd->arg1; } break; case TVCMD_SETCMDLIST: save_ptr_monitor_ani_code_to_obj_ani_slot(screen, (u32 *) cmd->arg1); break; case TVCMD_RANDSETCMDLIST: if ((randomGetNext() >> 16) < cmd->arg2) { save_ptr_monitor_ani_code_to_obj_ani_slot(screen, (u32 *) cmd->arg1); } else { screen->offset += 3; } break; case TVCMD_RESTART: screen->offset = 0; break; case TVCMD_YIELD: yielding = TRUE; break; case TVCMD_SETCOLOUR: screen->colfrac = 0.0f; screen->colinc = 1.0f / cmd->arg2; screen->redold = screen->red; screen->rednew = ((u32)cmd->arg1 >> 24) & 0xff; screen->greenold = screen->green; screen->greennew = ((u32)cmd->arg1 >> 16) & 0xff; screen->blueold = screen->blue; screen->bluenew = ((u32)cmd->arg1 >> 8) & 0xff; screen->alphaold = screen->alpha; screen->alphanew = cmd->arg1 & 0xff; screen->offset += 3; break; case TVCMD_ROTATEABS: screen->rot = cmd->arg1 * M_TAU_F / M_U16_MAX_VALUE_F; screen->offset += 2; break; case TVCMD_ROTATEREL: screen->rot += g_GlobalTimerDelta * cmd->arg1 * M_TAU_F / M_U16_MAX_VALUE_F; if (screen->rot >= M_TAU_F) { screen->rot -= M_TAU_F; } if (screen->rot < 0.0f) { screen->rot += M_TAU_F; } screen->offset += 2; break; } } // Increment X scale if (screen->xscaleinc > 0.0f) { screen->xscalefrac += screen->xscaleinc * g_GlobalTimerDelta; if (screen->xscalefrac < 1.0f) { screen->xscale = screen->xscaleold + (screen->xscalenew - screen->xscaleold) * screen->xscalefrac; } else { screen->xscalefrac = 1.0f; screen->xscaleinc = 0.0f; screen->xscale = screen->xscalenew; } } // Increment Y scale if (screen->yscaleinc > 0.0f) { screen->yscalefrac += screen->yscaleinc * g_GlobalTimerDelta; if (screen->yscalefrac < 1.0f) { screen->yscale = screen->yscaleold + (screen->yscalenew - screen->yscaleold) * screen->yscalefrac; } else { screen->yscalefrac = 1.0f; screen->yscaleinc = 0.0f; screen->yscale = screen->yscalenew; } } // Increment X scroll if (screen->xmidinc > 0.0f) { screen->xmidfrac += screen->xmidinc * g_GlobalTimerDelta; if (screen->xmidfrac < 1.0f) { screen->xmid = screen->xmidold + (screen->xmidnew - screen->xmidold) * screen->xmidfrac; } else { screen->xmidfrac = 1.0f; screen->xmidinc = 0.0f; screen->xmid = screen->xmidnew; } } // Increment Y scroll if (screen->ymidinc > 0.0f) { screen->ymidfrac += screen->ymidinc * g_GlobalTimerDelta; if (screen->ymidfrac < 1.0f) { screen->ymid = screen->ymidold + (screen->ymidnew - screen->ymidold) * screen->ymidfrac; } else { screen->ymidfrac = 1.0f; screen->ymidinc = 0.0f; screen->ymid = screen->ymidnew; } } // Increment colour change if (screen->colinc > 0.0f) { screen->colfrac += screen->colinc * g_GlobalTimerDelta; if (screen->colfrac < 1.0f) { screen->red = screen->redold + (s32) ((screen->rednew - screen->redold) * screen->colfrac); screen->green = screen->greenold + (s32) ((screen->greennew - screen->greenold) * screen->colfrac); screen->blue = screen->blueold + (s32) ((screen->bluenew - screen->blueold) * screen->colfrac); screen->alpha = screen->alphaold + (s32) ((screen->alphanew - screen->alphaold) * screen->colfrac); } else { screen->colfrac = 1.0f; screen->colinc = 0.0f; screen->red = screen->rednew; screen->green = screen->greennew; screen->blue = screen->bluenew; screen->alpha = screen->alphanew; } } // Set up everything for rendering rwdata->DisplayListCollisions.gdl = gdl; rwdata->DisplayListCollisions.Vertices = vertices; vertices[0] = rodata->DisplayListCollisions.Vertices[0]; vertices[1] = rodata->DisplayListCollisions.Vertices[1]; vertices[2] = rodata->DisplayListCollisions.Vertices[2]; vertices[3] = rodata->DisplayListCollisions.Vertices[3]; if ((u32)screen->tconfig < 100) { tconfig = &monitorimages[(s32)screen->tconfig]; } else { tconfig = screen->tconfig; } if (tconfig != NULL) { u32 stack[13]; f32 f22; // sp54 f32 f24; // sp50 f32 f14; f32 f16; f22 = screen->xscale / 2.0f; f24 = screen->yscale / 2.0f; f14 = f22; f16 = f24; if (1); if (1); if (1); if (1); if (1); if (screen->rot != 0.0f) { f32 f20; f32 f2_6; f20 = cosf(screen->rot) * 1.4142f; f2_6 = sinf(screen->rot) * 1.4142f; f22 *= f20; f24 *= f2_6; f14 *= f2_6; f16 *= f20; } vertices[0].s = tconfig->width * (screen->xmid + f22) * 32.0f; vertices[0].t = tconfig->height * (screen->ymid + f24) * 32.0f; vertices[1].s = tconfig->width * (screen->xmid - f14) * 32.0f; vertices[1].t = tconfig->height * (screen->ymid + f16) * 32.0f; vertices[2].s = tconfig->width * (screen->xmid - f22) * 32.0f; vertices[2].t = tconfig->height * (screen->ymid - f24) * 32.0f; vertices[3].s = tconfig->width * (screen->xmid + f14) * 32.0f; vertices[3].t = tconfig->height * (screen->ymid - f16) * 32.0f; } if (1) { u8 tmpc; u8 tmpc2; tmpc = screen->red; vertices[3].r = tmpc; vertices[2].r = tmpc; vertices[1].r = tmpc; vertices[0].r = tmpc; tmpc = screen->green; vertices[3].g = tmpc; vertices[2].g = tmpc; vertices[1].g = tmpc; vertices[0].g = tmpc; tmpc2 = screen->blue; vertices[3].b = tmpc2; vertices[2].b = tmpc2; vertices[1].b = tmpc2; vertices[0].b = tmpc2; tmpc = screen->alpha; vertices[3].a = tmpc; vertices[2].a = tmpc; vertices[1].a = tmpc; vertices[0].a = tmpc; } if (screen->alpha < 255) { arg5 = 2; } // Render the image gSPSetGeometryMode(gdl++, G_CULL_BACK); texSelect(&gdl, tconfig, arg5, arg4, 2); gSPMatrix(gdl++, osVirtualToPhysical(model->render_pos), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPSegment(gdl++, SPSEGMENT_MODEL_VTX, osVirtualToPhysical(vertices)); gSPVertex(gdl++, 0x04000000, 4, 0); gDPTri2(gdl++, 0, 1, 2, 0, 2, 3); gSPEndDisplayList(gdl++); gSPBranchList(savedgdl++, gdl); } return gdl; } // keeping old decompilation around for comparison's sake until a match is found: #if 0 void *process_monitor_animation_microcode(Model *arg0, ModelNode *arg1, MonitorRecord *arg2, void *arg3, s32 arg4, s32 arg5) { void *spA8; void *spA4; modeldata_root *spA0; void *sp94; f32 sp54; f32 sp50; Mtxf *temp_s2; f32 temp_f0; f32 temp_f0_10; f32 temp_f0_11; f32 temp_f0_2; f32 temp_f0_3; f32 temp_f0_4; f32 temp_f0_5; f32 temp_f0_6; f32 temp_f0_7; f32 temp_f0_8; f32 temp_f0_9; f32 temp_f10; f32 temp_f10_2; f32 temp_f12; f32 temp_f12_2; f32 temp_f18; f32 temp_f18_2; f32 temp_f18_3; f32 temp_f18_4; f32 temp_f20; f32 temp_f22; f32 temp_f24; f32 temp_f2; f32 temp_f2_2; f32 temp_f2_3; f32 temp_f2_4; f32 temp_f2_5; f32 temp_f2_6; f32 temp_f4; f32 temp_f4_2; f32 temp_f6; f32 temp_f6_2; f32 temp_f6_3; f32 temp_f6_4; f32 temp_f6_5; f32 temp_f6_6; f32 temp_f8; f32 temp_v0_4; s16 temp_v0_2; s32 temp_t0; s32 temp_t1; s32 temp_t4; s32 temp_t5; s32 temp_t5_2; s32 temp_t7; s32 temp_t8_2; u16 temp_v0; u32 temp_t3; u8 temp_a0; u8 temp_a1; u8 temp_t0_2; u8 temp_t2_2; u8 temp_t4_2; u8 temp_t5_3; u8 temp_t6_2; u8 temp_t7_2; u8 temp_t8_3; u8 temp_t9_2; u8 temp_v0_3; u8 temp_v0_5; u8 temp_v0_6; u8 temp_v0_7; u8 temp_v1_2; u8 temp_v1_3; void *temp_s0; void *temp_s1; void *temp_t0_3; void *temp_t2; void *temp_t2_3; void *temp_t2_4; void *temp_t3_2; void *temp_t5_4; void *temp_t6; void *temp_t8; void *temp_t9; void *temp_v1; void **temp_a0_2; f32 phi_f6; f32 phi_f18; f32 phi_f6_2; f32 phi_f18_2; f32 phi_f6_3; f32 phi_f18_3; f32 phi_f6_4; f32 phi_f2; s32 phi_s1; void *phi_s1_2; f32 phi_f6_5; f32 phi_f22; f32 phi_f4; f32 phi_f24; f32 phi_f10; f32 phi_f14; f32 phi_f18_4; f32 phi_f16; f32 phi_f8; f32 phi_f6_6; f32 phi_f4_2; f32 phi_f10_2; if ((arg1 != 0) && ((arg1->Opcode & 0xFF) == MODELNODE_OPCODE_DLCOLLISION)) { temp_t8 = arg3; temp_s2 = dynAllocate7F0BD6C4(4); arg3 = temp_t8 + 8; spA8 = temp_t8; spA4 = arg1->Data; spA0 = modelGetNodeRwData(arg0, arg1); phi_f2 = M_U16_MAX_VALUE_F; phi_f2 = M_U16_MAX_VALUE_F; phi_s1 = 0; do { temp_v0 = arg2->offset; temp_v1 = arg2->image + (temp_v0 * 4); temp_t3 = temp_v1->unk0; switch (temp_t3) { case 0: arg2->xmidinc = 0.0f; arg2->ymidinc = 0.0f; arg2->offset = temp_v0 + 1; break; case 1: arg2->xmidfrac = 0.0f; temp_t5 = temp_v1->unk8; temp_f6 = temp_t5; phi_f6 = temp_f6; if (temp_t5 < 0) { phi_f6 = temp_f6 + 4294967296.0f; } temp_f0 = arg2->xmid; arg2->xmidold = temp_f0; arg2->xmidinc = 1.0f / phi_f6; arg2->offset = temp_v0 + 3; arg2->xmidnew = temp_f0 + (temp_v1->unk4 * 0.0009765625f); break; case 2: arg2->ymidfrac = 0.0f; temp_t8_2 = temp_v1->unk8; temp_f18 = temp_t8_2; phi_f18 = temp_f18; if (temp_t8_2 < 0) { phi_f18 = temp_f18 + 4294967296.0f; } temp_f0_2 = arg2->ymid; arg2->ymidold = temp_f0_2; arg2->ymidinc = 1.0f / phi_f18; arg2->offset = temp_v0 + 3; arg2->ymidnew = temp_f0_2 + (temp_v1->unk4 * 0.0009765625f); break; case 3: arg2->xmidfrac = 0.0f; temp_t1 = temp_v1->unk8; temp_f6_2 = temp_t1; phi_f6_2 = temp_f6_2; if (temp_t1 < 0) { phi_f6_2 = temp_f6_2 + 4294967296.0f; } arg2->xmidold = arg2->xmid; arg2->xmidinc = 1.0f / phi_f6_2; arg2->offset = temp_v0 + 3; arg2->xmidnew = temp_v1->unk4 * 0.0009765625f; break; case 4: arg2->ymidfrac = 0.0f; temp_t4 = temp_v1->unk8; temp_f18_2 = temp_t4; phi_f18_2 = temp_f18_2; if (temp_t4 < 0) { phi_f18_2 = temp_f18_2 + 4294967296.0f; } arg2->ymidold = arg2->ymid; arg2->ymidinc = 1.0f / phi_f18_2; arg2->offset = temp_v0 + 3; arg2->ymidnew = temp_v1->unk4 * 0.0009765625f; break; case 5: arg2->xscalefrac = 0.0f; temp_t7 = temp_v1->unk8; temp_f6_3 = temp_t7; phi_f6_3 = temp_f6_3; if (temp_t7 < 0) { phi_f6_3 = temp_f6_3 + 4294967296.0f; } arg2->xscaleold = arg2->xscale; arg2->xscaleinc = 1.0f / phi_f6_3; arg2->offset = temp_v0 + 3; arg2->xscalenew = temp_v1->unk4 * 0.0009765625f; break; case 6: arg2->yscalefrac = 0.0f; temp_t0 = temp_v1->unk8; temp_f18_3 = temp_t0; phi_f18_3 = temp_f18_3; if (temp_t0 < 0) { phi_f18_3 = temp_f18_3 + 4294967296.0f; } arg2->yscaleold = arg2->yscale; arg2->yscaleinc = 1.0f / phi_f18_3; arg2->offset = temp_v0 + 3; arg2->yscalenew = temp_v1->unk4 * 0.0009765625f; break; case 7: save_img_index_to_obj_ani_slot(arg2, temp_v1->unk4); arg2->offset += 2; break; case 8: temp_v0_2 = arg2->pause60; if (temp_v0_2 >= 0) { arg2->pause60 = temp_v0_2 - clock_timer; if (arg2->pause60 >= 0) { phi_s1 = 1; } else { arg2->offset += 2; } } else { arg2->pause60 = temp_v1->unk4; phi_s1 = 1; } break; case 9: save_ptr_monitor_ani_code_to_obj_ani_slot(arg2, temp_v1->unk4); break; case 10: sp94 = temp_v1; if ((randomGetNext() >> 0x10) < temp_v1->unk8) { save_ptr_monitor_ani_code_to_obj_ani_slot(arg2, temp_v1->unk4); } else { arg2->offset += 3; } break; case 11: arg2->offset = 0; break; case 12: phi_s1 = 1; break; case 13: arg2->colfrac = 0.0f; temp_t5_2 = temp_v1->unk8; temp_f6_4 = temp_t5_2; phi_f6_4 = temp_f6_4; if (temp_t5_2 < 0) { phi_f6_4 = temp_f6_4 + 4294967296.0f; } arg2->redold = arg2->red; arg2->colinc = 1.0f / phi_f6_4; arg2->greenold = arg2->green; arg2->rednew = temp_v1->unk4 >> 0x18; arg2->blueold = arg2->blue; arg2->greennew = temp_v1->unk4 >> 0x10; arg2->alphaold = arg2->alpha; arg2->bluenew = temp_v1->unk4 >> 8; arg2->offset = temp_v0 + 3; arg2->alphanew = temp_v1->unk4; break; case 14: arg2->offset = temp_v0 + 2; arg2->rot = (temp_v1->unk4 * M_TAU_F) / phi_f2; break; case 15: arg2->rot += (g_GlobalTimerDelta * temp_v1->unk4 * M_TAU_F) / phi_f2; temp_f12 = arg2->rot; if (temp_f12 >= M_TAU_F) { arg2->rot = temp_f12 - M_TAU_F; } if (arg2->rot < 0.0f) { arg2->rot += M_TAU_F; } arg2->offset += 2; break; } } while (phi_s1 == 0); temp_f0_3 = arg2->xscaleinc; if (temp_f0_3 > 0.0f) { arg2->xscalefrac += temp_f0_3 * g_GlobalTimerDelta; temp_f2 = arg2->xscalefrac; if (temp_f2 < 1.0f) { temp_f0_4 = arg2->xscaleold; arg2->xscale = temp_f0_4 + ((arg2->xscalenew - temp_f0_4) * temp_f2); } else { arg2->xscalefrac = 1.0f; arg2->xscaleinc = 0.0f; arg2->xscale = arg2->xscalenew; } } temp_f0_5 = arg2->yscaleinc; if (temp_f0_5 > 0.0f) { arg2->yscalefrac += temp_f0_5 * g_GlobalTimerDelta; temp_f2_2 = arg2->yscalefrac; if (temp_f2_2 < 1.0f) { temp_f0_6 = arg2->yscaleold; arg2->yscale = temp_f0_6 + ((arg2->yscalenew - temp_f0_6) * temp_f2_2); } else { arg2->yscalefrac = 1.0f; arg2->yscaleinc = 0.0f; arg2->yscale = arg2->yscalenew; } } temp_f0_7 = arg2->xmidinc; if (temp_f0_7 > 0.0f) { arg2->xmidfrac += temp_f0_7 * g_GlobalTimerDelta; temp_f2_3 = arg2->xmidfrac; if (temp_f2_3 < 1.0f) { temp_f0_8 = arg2->xmidold; arg2->xmid = temp_f0_8 + ((arg2->xmidnew - temp_f0_8) * temp_f2_3); } else { arg2->xmidfrac = 1.0f; arg2->xmidinc = 0.0f; arg2->xmid = arg2->xmidnew; } } temp_f0_9 = arg2->ymidinc; if (temp_f0_9 > 0.0f) { arg2->ymidfrac += temp_f0_9 * g_GlobalTimerDelta; temp_f2_4 = arg2->ymidfrac; if (temp_f2_4 < 1.0f) { temp_f0_10 = arg2->ymidold; arg2->ymid = temp_f0_10 + ((arg2->ymidnew - temp_f0_10) * temp_f2_4); } else { arg2->ymidfrac = 1.0f; arg2->ymidinc = 0.0f; arg2->ymid = arg2->ymidnew; } } temp_f2_5 = arg2->colinc; if (temp_f2_5 > 0.0f) { arg2->colfrac += temp_f2_5 * g_GlobalTimerDelta; temp_f0_11 = arg2->colfrac; if (temp_f0_11 < 1.0f) { temp_v0_3 = arg2->redold; temp_v1_2 = arg2->greenold; temp_a0 = arg2->blueold; temp_a1 = arg2->alphaold; arg2->red = temp_v0_3 + ((arg2->rednew - temp_v0_3) * temp_f0_11); arg2->green = temp_v1_2 + ((arg2->greennew - temp_v1_2) * temp_f0_11); arg2->blue = temp_a0 + ((arg2->bluenew - temp_a0) * temp_f0_11); arg2->alpha = temp_a1 + ((arg2->alphanew - temp_a1) * temp_f0_11); } else { arg2->colfrac = 1.0f; arg2->colinc = 0.0f; arg2->red = arg2->rednew; arg2->green = arg2->greennew; arg2->blue = arg2->bluenew; arg2->alpha = arg2->alphanew; } } spA0->unk0 = temp_s2; spA0->ground = (bitwise f32)arg3; temp_t3_2 = spA4->unk8; temp_s2->m[0][0] = temp_t3_2->unk0; temp_s2->m[0][1] = temp_t3_2->unk4; temp_s2->m[0][2] = temp_t3_2->unk8; temp_s2->m[0][3] = temp_t3_2->unkC; temp_t6 = spA4->unk8; temp_s2->m[1][0] = temp_t6->unk10; temp_s2->m[1][1] = temp_t6->unk14; temp_s2->m[1][2] = temp_t6->unk18; temp_s2->m[1][3] = temp_t6->unk1C; temp_t9 = spA4->unk8; temp_s2->m[2][0] = temp_t9->unk20; temp_s2->m[2][1] = temp_t9->unk24; temp_s2->m[2][2] = temp_t9->unk28; temp_s2->m[2][3] = temp_t9->unk2C; temp_t2 = spA4->unk8; temp_s2->m[3][0] = temp_t2->unk30; temp_s2->m[3][1] = temp_t2->unk34; temp_s2->m[3][2] = temp_t2->unk38; temp_s2->m[3][3] = temp_t2->unk3C; temp_v0_4 = arg2->unk88; phi_s1_2 = (bitwise void *)temp_v0_4; if ((bitwise u32)temp_v0_4 < 0x64) { phi_s1_2 = ((((bitwise s32)temp_v0_4 * 4) - (bitwise s32)temp_v0_4) * 4) + monitorimages; } if (phi_s1_2 != 0) { temp_f12_2 = arg2->rot; temp_f22 = arg2->xscale * 0.5f; temp_f24 = arg2->yscale * 0.5f; phi_f22 = temp_f22; phi_f24 = temp_f24; phi_f14 = temp_f22; phi_f16 = temp_f24; if (temp_f12_2 != 0.0f) { sp54 = temp_f22; sp50 = temp_f24; temp_f20 = cosf(temp_f12_2, temp_f22) * 1.4142f; temp_f2_6 = sinf(arg2->rot) * 1.4142f; phi_f22 = temp_f22 * temp_f20; phi_f24 = temp_f24 * temp_f2_6; phi_f14 = temp_f22 * temp_f2_6; phi_f16 = temp_f24 * temp_f20; } temp_t6_2 = phi_s1_2->unk4; temp_f6_5 = temp_t6_2; phi_f6_5 = temp_f6_5; if (temp_t6_2 < 0) { phi_f6_5 = temp_f6_5 + 4294967296.0f; } temp_s2->unk8 = phi_f6_5 * (arg2->xmid + phi_f22) * 32.0f; temp_t9_2 = phi_s1_2->unk5; temp_f4 = temp_t9_2; phi_f4 = temp_f4; if (temp_t9_2 < 0) { phi_f4 = temp_f4 + 4294967296.0f; } temp_s2->unkA = phi_f4 * (arg2->ymid + phi_f24) * 32.0f; temp_t2_2 = phi_s1_2->unk4; temp_f10 = temp_t2_2; phi_f10 = temp_f10; if (temp_t2_2 < 0) { phi_f10 = temp_f10 + 4294967296.0f; } temp_s2->unk18 = phi_f10 * (arg2->xmid - phi_f14) * 32.0f; temp_t7_2 = phi_s1_2->unk5; temp_f18_4 = temp_t7_2; phi_f18_4 = temp_f18_4; if (temp_t7_2 < 0) { phi_f18_4 = temp_f18_4 + 4294967296.0f; } temp_s2->unk1A = phi_f18_4 * (arg2->ymid + phi_f16) * 32.0f; temp_t0_2 = phi_s1_2->unk4; temp_f8 = temp_t0_2; phi_f8 = temp_f8; if (temp_t0_2 < 0) { phi_f8 = temp_f8 + 4294967296.0f; } temp_s2->unk28 = phi_f8 * (arg2->xmid - phi_f22) * 32.0f; temp_t4_2 = phi_s1_2->unk5; temp_f6_6 = temp_t4_2; phi_f6_6 = temp_f6_6; if (temp_t4_2 < 0) { phi_f6_6 = temp_f6_6 + 4294967296.0f; } temp_s2->unk2A = phi_f6_6 * (arg2->ymid - phi_f24) * 32.0f; temp_t5_3 = phi_s1_2->unk4; temp_f4_2 = temp_t5_3; phi_f4_2 = temp_f4_2; if (temp_t5_3 < 0) { phi_f4_2 = temp_f4_2 + 4294967296.0f; } temp_s2->unk38 = phi_f4_2 * (arg2->xmid + phi_f14) * 32.0f; temp_t8_3 = phi_s1_2->unk5; temp_f10_2 = temp_t8_3; phi_f10_2 = temp_f10_2; if (temp_t8_3 < 0) { phi_f10_2 = temp_f10_2 + 4294967296.0f; } temp_s2->unk3A = phi_f10_2 * (arg2->ymid - phi_f16) * 32.0f; } temp_v0_5 = arg2->red; temp_s2->unk3C = temp_v0_5; temp_s2->unk2C = temp_v0_5; temp_s2->unk1C = temp_v0_5; temp_s2->unkC = temp_v0_5; temp_v0_6 = arg2->green; temp_a0_2 = &arg3; temp_s2->unk3D = temp_v0_6; temp_s2->unk2D = temp_v0_6; temp_s2->unk1D = temp_v0_6; temp_s2->unkD = temp_v0_6; temp_v1_3 = arg2->blue; temp_s2->unk3E = temp_v1_3; temp_s2->unk2E = temp_v1_3; temp_s2->unk1E = temp_v1_3; temp_s2->unkE = temp_v1_3; temp_v0_7 = arg2->alpha; temp_s2->unk3F = temp_v0_7; temp_s2->unk2F = temp_v0_7; temp_s2->unk1F = temp_v0_7; temp_s2->unkF = temp_v0_7; if (arg2->alpha < 0xFF) { arg5 = 2; } temp_t2_3 = arg3; arg3 = temp_t2_3 + 8; temp_t2_3->unk4 = 0x2000; temp_t2_3->unk0 = 0xB7000000; texSelect(temp_a0_2, phi_s1_2, arg5, arg4, 2); temp_s0 = arg3; arg3 = temp_s0 + 8; temp_s0->unk0 = 0x1020040; temp_s0->unk4 = osVirtualToPhysical(arg0->unk0c); temp_s1 = arg3; arg3 = temp_s1 + 8; temp_s1->unk0 = 0xBC001006; temp_s1->unk4 = osVirtualToPhysical(temp_s2); temp_t5_4 = arg3; arg3 = temp_t5_4 + 8; temp_t5_4->unk4 = 0x4000000; temp_t5_4->unk0 = 0x4300040; temp_t0_3 = arg3; arg3 = temp_t0_3 + 8; temp_t0_3->unk4 = 0x2010; temp_t0_3->unk0 = 0xB1000032; temp_t2_4 = arg3; arg3 = temp_t2_4 + 8; temp_t2_4->unk4 = 0; temp_t2_4->unk0 = 0xB8000000; spA8->unk0 = 0x6010000; spA8->unk4 = arg3; } return arg3; } #endif #else #ifdef VERSION_US GLOBAL_ASM( .late_rodata glabel D_80052C68 .word 0x40c90fdb /*6.2831855*/ /*D:80052C6C*/ glabel jpt_80052C6C .word command00_reset_scroll_shift .word command01_horizontal_scroll .word command02_vertical_scroll .word command03_horizontal_pos .word command04_vertical_pos .word command05_zoomx .word command06_zoomy .word command07_use_image_from_global_monitor_table .word command08_halt_processing_for_time .word command09_jump .word command0A_jump_conditional .word command0B_restart .word command0C_break .word command0D_colour_transition .word command0E_set_rotation .word command0F_rotate glabel D_80052CAC .word 0x3fc90fdb /*1.5707964*/ glabel D_80052CB0 .word 0x3fb50481 /*1.4141999*/ glabel D_80052CB4 .word 0x3f59999a /*0.85000002*/ glabel D_80052CB8 .word 0x3e19999a /*0.15000001*/ glabel D_80052CBC .word 0x3e19999a /*0.15000001*/ glabel D_80052CC0 .word 0x3f666666 /*0.89999998*/ .text glabel process_monitor_animation_microcode /* 07EA78 7F049F48 27BDFF50 */ addiu $sp, $sp, -0xb0 /* 07EA7C 7F049F4C AFB10044 */ sw $s1, 0x44($sp) /* 07EA80 7F049F50 AFB00040 */ sw $s0, 0x40($sp) /* 07EA84 7F049F54 00C08025 */ move $s0, $a2 /* 07EA88 7F049F58 00A08825 */ move $s1, $a1 /* 07EA8C 7F049F5C AFBF004C */ sw $ra, 0x4c($sp) /* 07EA90 7F049F60 AFB20048 */ sw $s2, 0x48($sp) /* 07EA94 7F049F64 F7BA0038 */ sdc1 $f26, 0x38($sp) /* 07EA98 7F049F68 F7B80030 */ sdc1 $f24, 0x30($sp) /* 07EA9C 7F049F6C F7B60028 */ sdc1 $f22, 0x28($sp) /* 07EAA0 7F049F70 F7B40020 */ sdc1 $f20, 0x20($sp) /* 07EAA4 7F049F74 AFA400B0 */ sw $a0, 0xb0($sp) /* 07EAA8 7F049F78 10A0031E */ beqz $a1, .L7F04ABF4 /* 07EAAC 7F049F7C AFA700BC */ sw $a3, 0xbc($sp) /* 07EAB0 7F049F80 94AE0000 */ lhu $t6, ($a1) /* 07EAB4 7F049F84 24010018 */ li $at, 24 /* 07EAB8 7F049F88 31CF00FF */ andi $t7, $t6, 0xff /* 07EABC 7F049F8C 55E1031A */ bnel $t7, $at, .L7F04ABF8 /* 07EAC0 7F049F90 8FBF004C */ lw $ra, 0x4c($sp) /* 07EAC4 7F049F94 0FC2F5B1 */ jal dynAllocate7F0BD6C4 /* 07EAC8 7F049F98 24040004 */ li $a0, 4 /* 07EACC 7F049F9C 8FB800BC */ lw $t8, 0xbc($sp) /* 07EAD0 7F049FA0 00409025 */ move $s2, $v0 /* 07EAD4 7F049FA4 8FA400B0 */ lw $a0, 0xb0($sp) /* 07EAD8 7F049FA8 27190008 */ addiu $t9, $t8, 8 /* 07EADC 7F049FAC AFB900BC */ sw $t9, 0xbc($sp) /* 07EAE0 7F049FB0 AFB800A8 */ sw $t8, 0xa8($sp) /* 07EAE4 7F049FB4 8E280004 */ lw $t0, 4($s1) /* 07EAE8 7F049FB8 02202825 */ move $a1, $s1 /* 07EAEC 7F049FBC 0FC1B1E7 */ jal modelGetNodeRwData /* 07EAF0 7F049FC0 AFA800A4 */ sw $t0, 0xa4($sp) /* 07EAF4 7F049FC4 3C018005 */ lui $at, %hi(D_80052C68) /* 07EAF8 7F049FC8 C43A2C68 */ lwc1 $f26, %lo(D_80052C68)($at) /* 07EAFC 7F049FCC 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07EB00 7F049FD0 4481C000 */ mtc1 $at, $f24 /* 07EB04 7F049FD4 3C013A80 */ li $at, 0x3A800000 # 0.000977 /* 07EB08 7F049FD8 4481B000 */ mtc1 $at, $f22 /* 07EB0C 7F049FDC 3C014780 */ li $at, 0x47800000 # 65536.000000 /* 07EB10 7F049FE0 44811000 */ mtc1 $at, $f2 /* 07EB14 7F049FE4 4480A000 */ mtc1 $zero, $f20 /* 07EB18 7F049FE8 AFA200A0 */ sw $v0, 0xa0($sp) /* 07EB1C 7F049FEC 00008825 */ move $s1, $zero /* 07EB20 7F049FF0 96020004 */ lhu $v0, 4($s0) .L7F049FF4: /* 07EB24 7F049FF4 8E090000 */ lw $t1, ($s0) /* 07EB28 7F049FF8 00025080 */ sll $t2, $v0, 2 /* 07EB2C 7F049FFC 012A1821 */ addu $v1, $t1, $t2 /* 07EB30 7F04A000 8C6B0000 */ lw $t3, ($v1) /* 07EB34 7F04A004 2D610010 */ sltiu $at, $t3, 0x10 /* 07EB38 7F04A008 10200117 */ beqz $at, .L7F04A468 /* 07EB3C 7F04A00C 000B5880 */ sll $t3, $t3, 2 /* 07EB40 7F04A010 3C018005 */ lui $at, %hi(jpt_80052C6C) /* 07EB44 7F04A014 002B0821 */ addu $at, $at, $t3 /* 07EB48 7F04A018 8C2B2C6C */ lw $t3, %lo(jpt_80052C6C)($at) /* 07EB4C 7F04A01C 01600008 */ jr $t3 /* 07EB50 7F04A020 00000000 */ nop command00_reset_scroll_shift: /* 07EB54 7F04A024 244C0001 */ addiu $t4, $v0, 1 /* 07EB58 7F04A028 E6140040 */ swc1 $f20, 0x40($s0) /* 07EB5C 7F04A02C E6140054 */ swc1 $f20, 0x54($s0) /* 07EB60 7F04A030 1000010D */ b .L7F04A468 /* 07EB64 7F04A034 A60C0004 */ sh $t4, 4($s0) command01_horizontal_scroll: /* 07EB68 7F04A038 E614003C */ swc1 $f20, 0x3c($s0) /* 07EB6C 7F04A03C 8C6D0008 */ lw $t5, 8($v1) /* 07EB70 7F04A040 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07EB74 7F04A044 448D2000 */ mtc1 $t5, $f4 /* 07EB78 7F04A048 05A10004 */ bgez $t5, .L7F04A05C /* 07EB7C 7F04A04C 468021A0 */ cvt.s.w $f6, $f4 /* 07EB80 7F04A050 44814000 */ mtc1 $at, $f8 /* 07EB84 7F04A054 00000000 */ nop /* 07EB88 7F04A058 46083180 */ add.s $f6, $f6, $f8 .L7F04A05C: /* 07EB8C 7F04A05C 4606C283 */ div.s $f10, $f24, $f6 /* 07EB90 7F04A060 C6000038 */ lwc1 $f0, 0x38($s0) /* 07EB94 7F04A064 244F0003 */ addiu $t7, $v0, 3 /* 07EB98 7F04A068 E6000044 */ swc1 $f0, 0x44($s0) /* 07EB9C 7F04A06C E60A0040 */ swc1 $f10, 0x40($s0) /* 07EBA0 7F04A070 8C6E0004 */ lw $t6, 4($v1) /* 07EBA4 7F04A074 A60F0004 */ sh $t7, 4($s0) /* 07EBA8 7F04A078 448E9000 */ mtc1 $t6, $f18 /* 07EBAC 7F04A07C 00000000 */ nop /* 07EBB0 7F04A080 46809120 */ cvt.s.w $f4, $f18 /* 07EBB4 7F04A084 46162202 */ mul.s $f8, $f4, $f22 /* 07EBB8 7F04A088 46080180 */ add.s $f6, $f0, $f8 /* 07EBBC 7F04A08C 100000F6 */ b .L7F04A468 /* 07EBC0 7F04A090 E6060048 */ swc1 $f6, 0x48($s0) command02_vertical_scroll: /* 07EBC4 7F04A094 E6140050 */ swc1 $f20, 0x50($s0) /* 07EBC8 7F04A098 8C780008 */ lw $t8, 8($v1) /* 07EBCC 7F04A09C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07EBD0 7F04A0A0 44985000 */ mtc1 $t8, $f10 /* 07EBD4 7F04A0A4 07010004 */ bgez $t8, .L7F04A0B8 /* 07EBD8 7F04A0A8 468054A0 */ cvt.s.w $f18, $f10 /* 07EBDC 7F04A0AC 44812000 */ mtc1 $at, $f4 /* 07EBE0 7F04A0B0 00000000 */ nop /* 07EBE4 7F04A0B4 46049480 */ add.s $f18, $f18, $f4 .L7F04A0B8: /* 07EBE8 7F04A0B8 4612C203 */ div.s $f8, $f24, $f18 /* 07EBEC 7F04A0BC C600004C */ lwc1 $f0, 0x4c($s0) /* 07EBF0 7F04A0C0 24480003 */ addiu $t0, $v0, 3 /* 07EBF4 7F04A0C4 E6000058 */ swc1 $f0, 0x58($s0) /* 07EBF8 7F04A0C8 E6080054 */ swc1 $f8, 0x54($s0) /* 07EBFC 7F04A0CC 8C790004 */ lw $t9, 4($v1) /* 07EC00 7F04A0D0 A6080004 */ sh $t0, 4($s0) /* 07EC04 7F04A0D4 44993000 */ mtc1 $t9, $f6 /* 07EC08 7F04A0D8 00000000 */ nop /* 07EC0C 7F04A0DC 468032A0 */ cvt.s.w $f10, $f6 /* 07EC10 7F04A0E0 46165102 */ mul.s $f4, $f10, $f22 /* 07EC14 7F04A0E4 46040480 */ add.s $f18, $f0, $f4 /* 07EC18 7F04A0E8 100000DF */ b .L7F04A468 /* 07EC1C 7F04A0EC E612005C */ swc1 $f18, 0x5c($s0) command03_horizontal_pos: /* 07EC20 7F04A0F0 E614003C */ swc1 $f20, 0x3c($s0) /* 07EC24 7F04A0F4 8C690008 */ lw $t1, 8($v1) /* 07EC28 7F04A0F8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07EC2C 7F04A0FC 44894000 */ mtc1 $t1, $f8 /* 07EC30 7F04A100 05210004 */ bgez $t1, .L7F04A114 /* 07EC34 7F04A104 468041A0 */ cvt.s.w $f6, $f8 /* 07EC38 7F04A108 44815000 */ mtc1 $at, $f10 /* 07EC3C 7F04A10C 00000000 */ nop /* 07EC40 7F04A110 460A3180 */ add.s $f6, $f6, $f10 .L7F04A114: /* 07EC44 7F04A114 4606C103 */ div.s $f4, $f24, $f6 /* 07EC48 7F04A118 C6120038 */ lwc1 $f18, 0x38($s0) /* 07EC4C 7F04A11C 244B0003 */ addiu $t3, $v0, 3 /* 07EC50 7F04A120 E6120044 */ swc1 $f18, 0x44($s0) /* 07EC54 7F04A124 E6040040 */ swc1 $f4, 0x40($s0) /* 07EC58 7F04A128 8C6A0004 */ lw $t2, 4($v1) /* 07EC5C 7F04A12C A60B0004 */ sh $t3, 4($s0) /* 07EC60 7F04A130 448A4000 */ mtc1 $t2, $f8 /* 07EC64 7F04A134 00000000 */ nop /* 07EC68 7F04A138 468042A0 */ cvt.s.w $f10, $f8 /* 07EC6C 7F04A13C 46165182 */ mul.s $f6, $f10, $f22 /* 07EC70 7F04A140 100000C9 */ b .L7F04A468 /* 07EC74 7F04A144 E6060048 */ swc1 $f6, 0x48($s0) command04_vertical_pos: /* 07EC78 7F04A148 E6140050 */ swc1 $f20, 0x50($s0) /* 07EC7C 7F04A14C 8C6C0008 */ lw $t4, 8($v1) /* 07EC80 7F04A150 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07EC84 7F04A154 448C2000 */ mtc1 $t4, $f4 /* 07EC88 7F04A158 05810004 */ bgez $t4, .L7F04A16C /* 07EC8C 7F04A15C 468024A0 */ cvt.s.w $f18, $f4 /* 07EC90 7F04A160 44814000 */ mtc1 $at, $f8 /* 07EC94 7F04A164 00000000 */ nop /* 07EC98 7F04A168 46089480 */ add.s $f18, $f18, $f8 .L7F04A16C: /* 07EC9C 7F04A16C 4612C283 */ div.s $f10, $f24, $f18 /* 07ECA0 7F04A170 C606004C */ lwc1 $f6, 0x4c($s0) /* 07ECA4 7F04A174 244E0003 */ addiu $t6, $v0, 3 /* 07ECA8 7F04A178 E6060058 */ swc1 $f6, 0x58($s0) /* 07ECAC 7F04A17C E60A0054 */ swc1 $f10, 0x54($s0) /* 07ECB0 7F04A180 8C6D0004 */ lw $t5, 4($v1) /* 07ECB4 7F04A184 A60E0004 */ sh $t6, 4($s0) /* 07ECB8 7F04A188 448D2000 */ mtc1 $t5, $f4 /* 07ECBC 7F04A18C 00000000 */ nop /* 07ECC0 7F04A190 46802220 */ cvt.s.w $f8, $f4 /* 07ECC4 7F04A194 46164482 */ mul.s $f18, $f8, $f22 /* 07ECC8 7F04A198 100000B3 */ b .L7F04A468 /* 07ECCC 7F04A19C E612005C */ swc1 $f18, 0x5c($s0) command05_zoomx: /* 07ECD0 7F04A1A0 E6140014 */ swc1 $f20, 0x14($s0) /* 07ECD4 7F04A1A4 8C6F0008 */ lw $t7, 8($v1) /* 07ECD8 7F04A1A8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07ECDC 7F04A1AC 448F5000 */ mtc1 $t7, $f10 /* 07ECE0 7F04A1B0 05E10004 */ bgez $t7, .L7F04A1C4 /* 07ECE4 7F04A1B4 468051A0 */ cvt.s.w $f6, $f10 /* 07ECE8 7F04A1B8 44812000 */ mtc1 $at, $f4 /* 07ECEC 7F04A1BC 00000000 */ nop /* 07ECF0 7F04A1C0 46043180 */ add.s $f6, $f6, $f4 .L7F04A1C4: /* 07ECF4 7F04A1C4 4606C203 */ div.s $f8, $f24, $f6 /* 07ECF8 7F04A1C8 C6120010 */ lwc1 $f18, 0x10($s0) /* 07ECFC 7F04A1CC 24590003 */ addiu $t9, $v0, 3 /* 07ED00 7F04A1D0 E612001C */ swc1 $f18, 0x1c($s0) /* 07ED04 7F04A1D4 E6080018 */ swc1 $f8, 0x18($s0) /* 07ED08 7F04A1D8 8C780004 */ lw $t8, 4($v1) /* 07ED0C 7F04A1DC A6190004 */ sh $t9, 4($s0) /* 07ED10 7F04A1E0 44985000 */ mtc1 $t8, $f10 /* 07ED14 7F04A1E4 00000000 */ nop /* 07ED18 7F04A1E8 46805120 */ cvt.s.w $f4, $f10 /* 07ED1C 7F04A1EC 46162182 */ mul.s $f6, $f4, $f22 /* 07ED20 7F04A1F0 1000009D */ b .L7F04A468 /* 07ED24 7F04A1F4 E6060020 */ swc1 $f6, 0x20($s0) command06_zoomy: /* 07ED28 7F04A1F8 E6140028 */ swc1 $f20, 0x28($s0) /* 07ED2C 7F04A1FC 8C680008 */ lw $t0, 8($v1) /* 07ED30 7F04A200 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07ED34 7F04A204 44884000 */ mtc1 $t0, $f8 /* 07ED38 7F04A208 05010004 */ bgez $t0, .L7F04A21C /* 07ED3C 7F04A20C 468044A0 */ cvt.s.w $f18, $f8 /* 07ED40 7F04A210 44815000 */ mtc1 $at, $f10 /* 07ED44 7F04A214 00000000 */ nop /* 07ED48 7F04A218 460A9480 */ add.s $f18, $f18, $f10 .L7F04A21C: /* 07ED4C 7F04A21C 4612C103 */ div.s $f4, $f24, $f18 /* 07ED50 7F04A220 C6060024 */ lwc1 $f6, 0x24($s0) /* 07ED54 7F04A224 244A0003 */ addiu $t2, $v0, 3 /* 07ED58 7F04A228 E6060030 */ swc1 $f6, 0x30($s0) /* 07ED5C 7F04A22C E604002C */ swc1 $f4, 0x2c($s0) /* 07ED60 7F04A230 8C690004 */ lw $t1, 4($v1) /* 07ED64 7F04A234 A60A0004 */ sh $t2, 4($s0) /* 07ED68 7F04A238 44894000 */ mtc1 $t1, $f8 /* 07ED6C 7F04A23C 00000000 */ nop /* 07ED70 7F04A240 468042A0 */ cvt.s.w $f10, $f8 /* 07ED74 7F04A244 46165482 */ mul.s $f18, $f10, $f22 /* 07ED78 7F04A248 10000087 */ b .L7F04A468 /* 07ED7C 7F04A24C E6120034 */ swc1 $f18, 0x34($s0) command07_use_image_from_global_monitor_table: /* 07ED80 7F04A250 02002025 */ move $a0, $s0 /* 07ED84 7F04A254 0FC127D0 */ jal save_img_index_to_obj_ani_slot /* 07ED88 7F04A258 8C650004 */ lw $a1, 4($v1) /* 07ED8C 7F04A25C 960B0004 */ lhu $t3, 4($s0) /* 07ED90 7F04A260 3C014780 */ li $at, 0x47800000 # 65536.000000 /* 07ED94 7F04A264 44811000 */ mtc1 $at, $f2 /* 07ED98 7F04A268 256C0002 */ addiu $t4, $t3, 2 /* 07ED9C 7F04A26C 1000007E */ b .L7F04A468 /* 07EDA0 7F04A270 A60C0004 */ sh $t4, 4($s0) command08_halt_processing_for_time: /* 07EDA4 7F04A274 86020006 */ lh $v0, 6($s0) /* 07EDA8 7F04A278 3C0D8005 */ lui $t5, %hi(g_ClockTimer) /* 07EDAC 7F04A27C 0442000E */ bltzl $v0, .L7F04A2B8 /* 07EDB0 7F04A280 8C680004 */ lw $t0, 4($v1) /* 07EDB4 7F04A284 8DAD8374 */ lw $t5, %lo(g_ClockTimer)($t5) /* 07EDB8 7F04A288 004D7023 */ subu $t6, $v0, $t5 /* 07EDBC 7F04A28C A60E0006 */ sh $t6, 6($s0) /* 07EDC0 7F04A290 860F0006 */ lh $t7, 6($s0) /* 07EDC4 7F04A294 05E20004 */ bltzl $t7, .L7F04A2A8 /* 07EDC8 7F04A298 96180004 */ lhu $t8, 4($s0) /* 07EDCC 7F04A29C 10000072 */ b .L7F04A468 /* 07EDD0 7F04A2A0 24110001 */ li $s1, 1 /* 07EDD4 7F04A2A4 96180004 */ lhu $t8, 4($s0) .L7F04A2A8: /* 07EDD8 7F04A2A8 27190002 */ addiu $t9, $t8, 2 /* 07EDDC 7F04A2AC 1000006E */ b .L7F04A468 /* 07EDE0 7F04A2B0 A6190004 */ sh $t9, 4($s0) /* 07EDE4 7F04A2B4 8C680004 */ lw $t0, 4($v1) .L7F04A2B8: /* 07EDE8 7F04A2B8 24110001 */ li $s1, 1 /* 07EDEC 7F04A2BC 1000006A */ b .L7F04A468 /* 07EDF0 7F04A2C0 A6080006 */ sh $t0, 6($s0) command09_jump: /* 07EDF4 7F04A2C4 02002025 */ move $a0, $s0 /* 07EDF8 7F04A2C8 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot /* 07EDFC 7F04A2CC 8C650004 */ lw $a1, 4($v1) /* 07EE00 7F04A2D0 3C014780 */ li $at, 0x47800000 # 65536.000000 /* 07EE04 7F04A2D4 44811000 */ mtc1 $at, $f2 /* 07EE08 7F04A2D8 10000063 */ b .L7F04A468 /* 07EE0C 7F04A2DC 00000000 */ nop command0A_jump_conditional: /* 07EE10 7F04A2E0 0C002914 */ jal randomGetNext /* 07EE14 7F04A2E4 AFA30094 */ sw $v1, 0x94($sp) /* 07EE18 7F04A2E8 8FA30094 */ lw $v1, 0x94($sp) /* 07EE1C 7F04A2EC 00024C02 */ srl $t1, $v0, 0x10 /* 07EE20 7F04A2F0 02002025 */ move $a0, $s0 /* 07EE24 7F04A2F4 8C6A0008 */ lw $t2, 8($v1) /* 07EE28 7F04A2F8 012A082B */ sltu $at, $t1, $t2 /* 07EE2C 7F04A2FC 50200008 */ beql $at, $zero, .L7F04A320 /* 07EE30 7F04A300 960B0004 */ lhu $t3, 4($s0) /* 07EE34 7F04A304 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot /* 07EE38 7F04A308 8C650004 */ lw $a1, 4($v1) /* 07EE3C 7F04A30C 3C014780 */ li $at, 0x47800000 # 65536.000000 /* 07EE40 7F04A310 44811000 */ mtc1 $at, $f2 /* 07EE44 7F04A314 10000054 */ b .L7F04A468 /* 07EE48 7F04A318 00000000 */ nop /* 07EE4C 7F04A31C 960B0004 */ lhu $t3, 4($s0) .L7F04A320: /* 07EE50 7F04A320 3C014780 */ li $at, 0x47800000 # 65536.000000 /* 07EE54 7F04A324 44811000 */ mtc1 $at, $f2 /* 07EE58 7F04A328 256C0003 */ addiu $t4, $t3, 3 /* 07EE5C 7F04A32C A60C0004 */ sh $t4, 4($s0) /* 07EE60 7F04A330 1000004D */ b .L7F04A468 /* 07EE64 7F04A334 00000000 */ nop command0B_restart: /* 07EE68 7F04A338 1000004B */ b .L7F04A468 /* 07EE6C 7F04A33C A6000004 */ sh $zero, 4($s0) command0C_break: /* 07EE70 7F04A340 10000049 */ b .L7F04A468 /* 07EE74 7F04A344 24110001 */ li $s1, 1 command0D_colour_transition: /* 07EE78 7F04A348 E614006C */ swc1 $f20, 0x6c($s0) /* 07EE7C 7F04A34C 8C6D0008 */ lw $t5, 8($v1) /* 07EE80 7F04A350 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07EE84 7F04A354 448D2000 */ mtc1 $t5, $f4 /* 07EE88 7F04A358 05A10004 */ bgez $t5, .L7F04A36C /* 07EE8C 7F04A35C 468021A0 */ cvt.s.w $f6, $f4 /* 07EE90 7F04A360 44814000 */ mtc1 $at, $f8 /* 07EE94 7F04A364 00000000 */ nop /* 07EE98 7F04A368 46083180 */ add.s $f6, $f6, $f8 .L7F04A36C: /* 07EE9C 7F04A36C 4606C283 */ div.s $f10, $f24, $f6 /* 07EEA0 7F04A370 920E0060 */ lbu $t6, 0x60($s0) /* 07EEA4 7F04A374 92080063 */ lbu $t0, 0x63($s0) /* 07EEA8 7F04A378 920C0066 */ lbu $t4, 0x66($s0) /* 07EEAC 7F04A37C A20E0061 */ sb $t6, 0x61($s0) /* 07EEB0 7F04A380 92180069 */ lbu $t8, 0x69($s0) /* 07EEB4 7F04A384 E60A0070 */ swc1 $f10, 0x70($s0) /* 07EEB8 7F04A388 8C6F0004 */ lw $t7, 4($v1) /* 07EEBC 7F04A38C A2080064 */ sb $t0, 0x64($s0) /* 07EEC0 7F04A390 000FCE02 */ srl $t9, $t7, 0x18 /* 07EEC4 7F04A394 A2190062 */ sb $t9, 0x62($s0) /* 07EEC8 7F04A398 8C690004 */ lw $t1, 4($v1) /* 07EECC 7F04A39C A20C0067 */ sb $t4, 0x67($s0) /* 07EED0 7F04A3A0 00095C02 */ srl $t3, $t1, 0x10 /* 07EED4 7F04A3A4 A20B0065 */ sb $t3, 0x65($s0) /* 07EED8 7F04A3A8 8C6D0004 */ lw $t5, 4($v1) /* 07EEDC 7F04A3AC A218006A */ sb $t8, 0x6a($s0) /* 07EEE0 7F04A3B0 24490003 */ addiu $t1, $v0, 3 /* 07EEE4 7F04A3B4 000D7A02 */ srl $t7, $t5, 8 /* 07EEE8 7F04A3B8 A20F0068 */ sb $t7, 0x68($s0) /* 07EEEC 7F04A3BC 8C680004 */ lw $t0, 4($v1) /* 07EEF0 7F04A3C0 A6090004 */ sh $t1, 4($s0) /* 07EEF4 7F04A3C4 10000028 */ b .L7F04A468 /* 07EEF8 7F04A3C8 A208006B */ sb $t0, 0x6b($s0) command0E_set_rotation: /* 07EEFC 7F04A3CC 8C6A0004 */ lw $t2, 4($v1) /* 07EF00 7F04A3D0 244B0002 */ addiu $t3, $v0, 2 /* 07EF04 7F04A3D4 A60B0004 */ sh $t3, 4($s0) /* 07EF08 7F04A3D8 448A9000 */ mtc1 $t2, $f18 /* 07EF0C 7F04A3DC 00000000 */ nop /* 07EF10 7F04A3E0 46809120 */ cvt.s.w $f4, $f18 /* 07EF14 7F04A3E4 461A2202 */ mul.s $f8, $f4, $f26 /* 07EF18 7F04A3E8 46024183 */ div.s $f6, $f8, $f2 /* 07EF1C 7F04A3EC 1000001E */ b .L7F04A468 /* 07EF20 7F04A3F0 E606000C */ swc1 $f6, 0xc($s0) command0F_rotate: /* 07EF24 7F04A3F4 8C6C0004 */ lw $t4, 4($v1) /* 07EF28 7F04A3F8 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) /* 07EF2C 7F04A3FC C42A8378 */ lwc1 $f10, %lo(g_GlobalTimerDelta)($at) /* 07EF30 7F04A400 448C9000 */ mtc1 $t4, $f18 /* 07EF34 7F04A404 00000000 */ nop /* 07EF38 7F04A408 46809120 */ cvt.s.w $f4, $f18 /* 07EF3C 7F04A40C 46045202 */ mul.s $f8, $f10, $f4 /* 07EF40 7F04A410 C60A000C */ lwc1 $f10, 0xc($s0) /* 07EF44 7F04A414 461A4182 */ mul.s $f6, $f8, $f26 /* 07EF48 7F04A418 46023483 */ div.s $f18, $f6, $f2 /* 07EF4C 7F04A41C 46125100 */ add.s $f4, $f10, $f18 /* 07EF50 7F04A420 E604000C */ swc1 $f4, 0xc($s0) /* 07EF54 7F04A424 C60C000C */ lwc1 $f12, 0xc($s0) /* 07EF58 7F04A428 460CD03E */ c.le.s $f26, $f12 /* 07EF5C 7F04A42C 00000000 */ nop /* 07EF60 7F04A430 45020005 */ bc1fl .L7F04A448 /* 07EF64 7F04A434 4614603C */ c.lt.s $f12, $f20 /* 07EF68 7F04A438 461A6201 */ sub.s $f8, $f12, $f26 /* 07EF6C 7F04A43C E608000C */ swc1 $f8, 0xc($s0) /* 07EF70 7F04A440 C60C000C */ lwc1 $f12, 0xc($s0) /* 07EF74 7F04A444 4614603C */ c.lt.s $f12, $f20 .L7F04A448: /* 07EF78 7F04A448 00000000 */ nop /* 07EF7C 7F04A44C 45020004 */ bc1fl .L7F04A460 /* 07EF80 7F04A450 960D0004 */ lhu $t5, 4($s0) /* 07EF84 7F04A454 461A6180 */ add.s $f6, $f12, $f26 /* 07EF88 7F04A458 E606000C */ swc1 $f6, 0xc($s0) /* 07EF8C 7F04A45C 960D0004 */ lhu $t5, 4($s0) .L7F04A460: /* 07EF90 7F04A460 25AE0002 */ addiu $t6, $t5, 2 /* 07EF94 7F04A464 A60E0004 */ sh $t6, 4($s0) def_7F04A01C: .L7F04A468: /* 07EF98 7F04A468 5220FEE2 */ beql $s1, $zero, .L7F049FF4 /* 07EF9C 7F04A46C 96020004 */ lhu $v0, 4($s0) /* 07EFA0 7F04A470 C6000018 */ lwc1 $f0, 0x18($s0) /* 07EFA4 7F04A474 4600A03C */ c.lt.s $f20, $f0 /* 07EFA8 7F04A478 00000000 */ nop /* 07EFAC 7F04A47C 45000017 */ bc1f .L7F04A4DC /* 07EFB0 7F04A480 3C028005 */ lui $v0, %hi(g_GlobalTimerDelta) /* 07EFB4 7F04A484 24428378 */ addiu $v0, %lo(g_GlobalTimerDelta) # addiu $v0, $v0, -0x7c88 /* 07EFB8 7F04A488 C4520000 */ lwc1 $f18, ($v0) /* 07EFBC 7F04A48C C60A0014 */ lwc1 $f10, 0x14($s0) /* 07EFC0 7F04A490 46120102 */ mul.s $f4, $f0, $f18 /* 07EFC4 7F04A494 46045200 */ add.s $f8, $f10, $f4 /* 07EFC8 7F04A498 E6080014 */ swc1 $f8, 0x14($s0) /* 07EFCC 7F04A49C C6020014 */ lwc1 $f2, 0x14($s0) /* 07EFD0 7F04A4A0 4618103C */ c.lt.s $f2, $f24 /* 07EFD4 7F04A4A4 00000000 */ nop /* 07EFD8 7F04A4A8 45020009 */ bc1fl .L7F04A4D0 /* 07EFDC 7F04A4AC C6080020 */ lwc1 $f8, 0x20($s0) /* 07EFE0 7F04A4B0 C600001C */ lwc1 $f0, 0x1c($s0) /* 07EFE4 7F04A4B4 C6060020 */ lwc1 $f6, 0x20($s0) /* 07EFE8 7F04A4B8 46003481 */ sub.s $f18, $f6, $f0 /* 07EFEC 7F04A4BC 46029282 */ mul.s $f10, $f18, $f2 /* 07EFF0 7F04A4C0 460A0100 */ add.s $f4, $f0, $f10 /* 07EFF4 7F04A4C4 10000005 */ b .L7F04A4DC /* 07EFF8 7F04A4C8 E6040010 */ swc1 $f4, 0x10($s0) /* 07EFFC 7F04A4CC C6080020 */ lwc1 $f8, 0x20($s0) .L7F04A4D0: /* 07F000 7F04A4D0 E6180014 */ swc1 $f24, 0x14($s0) /* 07F004 7F04A4D4 E6140018 */ swc1 $f20, 0x18($s0) /* 07F008 7F04A4D8 E6080010 */ swc1 $f8, 0x10($s0) .L7F04A4DC: /* 07F00C 7F04A4DC C600002C */ lwc1 $f0, 0x2c($s0) /* 07F010 7F04A4E0 3C028005 */ lui $v0, %hi(g_GlobalTimerDelta) /* 07F014 7F04A4E4 24428378 */ addiu $v0, %lo(g_GlobalTimerDelta) # addiu $v0, $v0, -0x7c88 /* 07F018 7F04A4E8 4600A03C */ c.lt.s $f20, $f0 /* 07F01C 7F04A4EC 00000000 */ nop /* 07F020 7F04A4F0 45020017 */ bc1fl .L7F04A550 /* 07F024 7F04A4F4 C6000040 */ lwc1 $f0, 0x40($s0) /* 07F028 7F04A4F8 C4520000 */ lwc1 $f18, ($v0) /* 07F02C 7F04A4FC C6060028 */ lwc1 $f6, 0x28($s0) /* 07F030 7F04A500 46120282 */ mul.s $f10, $f0, $f18 /* 07F034 7F04A504 460A3100 */ add.s $f4, $f6, $f10 /* 07F038 7F04A508 E6040028 */ swc1 $f4, 0x28($s0) /* 07F03C 7F04A50C C6020028 */ lwc1 $f2, 0x28($s0) /* 07F040 7F04A510 4618103C */ c.lt.s $f2, $f24 /* 07F044 7F04A514 00000000 */ nop /* 07F048 7F04A518 45020009 */ bc1fl .L7F04A540 /* 07F04C 7F04A51C C6040034 */ lwc1 $f4, 0x34($s0) /* 07F050 7F04A520 C6000030 */ lwc1 $f0, 0x30($s0) /* 07F054 7F04A524 C6080034 */ lwc1 $f8, 0x34($s0) /* 07F058 7F04A528 46004481 */ sub.s $f18, $f8, $f0 /* 07F05C 7F04A52C 46029182 */ mul.s $f6, $f18, $f2 /* 07F060 7F04A530 46060280 */ add.s $f10, $f0, $f6 /* 07F064 7F04A534 10000005 */ b .L7F04A54C /* 07F068 7F04A538 E60A0024 */ swc1 $f10, 0x24($s0) /* 07F06C 7F04A53C C6040034 */ lwc1 $f4, 0x34($s0) .L7F04A540: /* 07F070 7F04A540 E6180028 */ swc1 $f24, 0x28($s0) /* 07F074 7F04A544 E614002C */ swc1 $f20, 0x2c($s0) /* 07F078 7F04A548 E6040024 */ swc1 $f4, 0x24($s0) .L7F04A54C: /* 07F07C 7F04A54C C6000040 */ lwc1 $f0, 0x40($s0) .L7F04A550: /* 07F080 7F04A550 4600A03C */ c.lt.s $f20, $f0 /* 07F084 7F04A554 00000000 */ nop /* 07F088 7F04A558 45020017 */ bc1fl .L7F04A5B8 /* 07F08C 7F04A55C C6000054 */ lwc1 $f0, 0x54($s0) /* 07F090 7F04A560 C4520000 */ lwc1 $f18, ($v0) /* 07F094 7F04A564 C608003C */ lwc1 $f8, 0x3c($s0) /* 07F098 7F04A568 46120182 */ mul.s $f6, $f0, $f18 /* 07F09C 7F04A56C 46064280 */ add.s $f10, $f8, $f6 /* 07F0A0 7F04A570 E60A003C */ swc1 $f10, 0x3c($s0) /* 07F0A4 7F04A574 C602003C */ lwc1 $f2, 0x3c($s0) /* 07F0A8 7F04A578 4618103C */ c.lt.s $f2, $f24 /* 07F0AC 7F04A57C 00000000 */ nop /* 07F0B0 7F04A580 45020009 */ bc1fl .L7F04A5A8 /* 07F0B4 7F04A584 C60A0048 */ lwc1 $f10, 0x48($s0) /* 07F0B8 7F04A588 C6000044 */ lwc1 $f0, 0x44($s0) /* 07F0BC 7F04A58C C6040048 */ lwc1 $f4, 0x48($s0) /* 07F0C0 7F04A590 46002481 */ sub.s $f18, $f4, $f0 /* 07F0C4 7F04A594 46029202 */ mul.s $f8, $f18, $f2 /* 07F0C8 7F04A598 46080180 */ add.s $f6, $f0, $f8 /* 07F0CC 7F04A59C 10000005 */ b .L7F04A5B4 /* 07F0D0 7F04A5A0 E6060038 */ swc1 $f6, 0x38($s0) /* 07F0D4 7F04A5A4 C60A0048 */ lwc1 $f10, 0x48($s0) .L7F04A5A8: /* 07F0D8 7F04A5A8 E618003C */ swc1 $f24, 0x3c($s0) /* 07F0DC 7F04A5AC E6140040 */ swc1 $f20, 0x40($s0) /* 07F0E0 7F04A5B0 E60A0038 */ swc1 $f10, 0x38($s0) .L7F04A5B4: /* 07F0E4 7F04A5B4 C6000054 */ lwc1 $f0, 0x54($s0) .L7F04A5B8: /* 07F0E8 7F04A5B8 4600A03C */ c.lt.s $f20, $f0 /* 07F0EC 7F04A5BC 00000000 */ nop /* 07F0F0 7F04A5C0 45020017 */ bc1fl .L7F04A620 /* 07F0F4 7F04A5C4 C6020070 */ lwc1 $f2, 0x70($s0) /* 07F0F8 7F04A5C8 C4520000 */ lwc1 $f18, ($v0) /* 07F0FC 7F04A5CC C6040050 */ lwc1 $f4, 0x50($s0) /* 07F100 7F04A5D0 46120202 */ mul.s $f8, $f0, $f18 /* 07F104 7F04A5D4 46082180 */ add.s $f6, $f4, $f8 /* 07F108 7F04A5D8 E6060050 */ swc1 $f6, 0x50($s0) /* 07F10C 7F04A5DC C6020050 */ lwc1 $f2, 0x50($s0) /* 07F110 7F04A5E0 4618103C */ c.lt.s $f2, $f24 /* 07F114 7F04A5E4 00000000 */ nop /* 07F118 7F04A5E8 45020009 */ bc1fl .L7F04A610 /* 07F11C 7F04A5EC C606005C */ lwc1 $f6, 0x5c($s0) /* 07F120 7F04A5F0 C6000058 */ lwc1 $f0, 0x58($s0) /* 07F124 7F04A5F4 C60A005C */ lwc1 $f10, 0x5c($s0) /* 07F128 7F04A5F8 46005481 */ sub.s $f18, $f10, $f0 /* 07F12C 7F04A5FC 46029102 */ mul.s $f4, $f18, $f2 /* 07F130 7F04A600 46040200 */ add.s $f8, $f0, $f4 /* 07F134 7F04A604 10000005 */ b .L7F04A61C /* 07F138 7F04A608 E608004C */ swc1 $f8, 0x4c($s0) /* 07F13C 7F04A60C C606005C */ lwc1 $f6, 0x5c($s0) .L7F04A610: /* 07F140 7F04A610 E6180050 */ swc1 $f24, 0x50($s0) /* 07F144 7F04A614 E6140054 */ swc1 $f20, 0x54($s0) /* 07F148 7F04A618 E606004C */ swc1 $f6, 0x4c($s0) .L7F04A61C: /* 07F14C 7F04A61C C6020070 */ lwc1 $f2, 0x70($s0) .L7F04A620: /* 07F150 7F04A620 4602A03C */ c.lt.s $f20, $f2 /* 07F154 7F04A624 00000000 */ nop /* 07F158 7F04A628 4502003F */ bc1fl .L7F04A728 /* 07F15C 7F04A62C 8FAA00A0 */ lw $t2, 0xa0($sp) /* 07F160 7F04A630 C4520000 */ lwc1 $f18, ($v0) /* 07F164 7F04A634 C60A006C */ lwc1 $f10, 0x6c($s0) /* 07F168 7F04A638 46121102 */ mul.s $f4, $f2, $f18 /* 07F16C 7F04A63C 46045200 */ add.s $f8, $f10, $f4 /* 07F170 7F04A640 E608006C */ swc1 $f8, 0x6c($s0) /* 07F174 7F04A644 C600006C */ lwc1 $f0, 0x6c($s0) /* 07F178 7F04A648 4618003C */ c.lt.s $f0, $f24 /* 07F17C 7F04A64C 00000000 */ nop /* 07F180 7F04A650 4502002B */ bc1fl .L7F04A700 /* 07F184 7F04A654 920F0062 */ lbu $t7, 0x62($s0) /* 07F188 7F04A658 92020061 */ lbu $v0, 0x61($s0) /* 07F18C 7F04A65C 920F0062 */ lbu $t7, 0x62($s0) /* 07F190 7F04A660 92030064 */ lbu $v1, 0x64($s0) /* 07F194 7F04A664 920A0065 */ lbu $t2, 0x65($s0) /* 07F198 7F04A668 01E2C023 */ subu $t8, $t7, $v0 /* 07F19C 7F04A66C 44983000 */ mtc1 $t8, $f6 /* 07F1A0 7F04A670 01435823 */ subu $t3, $t2, $v1 /* 07F1A4 7F04A674 448B4000 */ mtc1 $t3, $f8 /* 07F1A8 7F04A678 468034A0 */ cvt.s.w $f18, $f6 /* 07F1AC 7F04A67C 920F0068 */ lbu $t7, 0x68($s0) /* 07F1B0 7F04A680 92040067 */ lbu $a0, 0x67($s0) /* 07F1B4 7F04A684 920A006B */ lbu $t2, 0x6b($s0) /* 07F1B8 7F04A688 9205006A */ lbu $a1, 0x6a($s0) /* 07F1BC 7F04A68C 468041A0 */ cvt.s.w $f6, $f8 /* 07F1C0 7F04A690 46009282 */ mul.s $f10, $f18, $f0 /* 07F1C4 7F04A694 01E4C023 */ subu $t8, $t7, $a0 /* 07F1C8 7F04A698 01455823 */ subu $t3, $t2, $a1 /* 07F1CC 7F04A69C 46003482 */ mul.s $f18, $f6, $f0 /* 07F1D0 7F04A6A0 4600510D */ trunc.w.s $f4, $f10 /* 07F1D4 7F04A6A4 4600928D */ trunc.w.s $f10, $f18 /* 07F1D8 7F04A6A8 44082000 */ mfc1 $t0, $f4 /* 07F1DC 7F04A6AC 44982000 */ mtc1 $t8, $f4 /* 07F1E0 7F04A6B0 440D5000 */ mfc1 $t5, $f10 /* 07F1E4 7F04A6B4 46802220 */ cvt.s.w $f8, $f4 /* 07F1E8 7F04A6B8 448B5000 */ mtc1 $t3, $f10 /* 07F1EC 7F04A6BC 00484821 */ addu $t1, $v0, $t0 /* 07F1F0 7F04A6C0 006D7021 */ addu $t6, $v1, $t5 /* 07F1F4 7F04A6C4 A2090060 */ sb $t1, 0x60($s0) /* 07F1F8 7F04A6C8 46805120 */ cvt.s.w $f4, $f10 /* 07F1FC 7F04A6CC 46004182 */ mul.s $f6, $f8, $f0 /* 07F200 7F04A6D0 A20E0063 */ sb $t6, 0x63($s0) /* 07F204 7F04A6D4 46002202 */ mul.s $f8, $f4, $f0 /* 07F208 7F04A6D8 4600348D */ trunc.w.s $f18, $f6 /* 07F20C 7F04A6DC 4600418D */ trunc.w.s $f6, $f8 /* 07F210 7F04A6E0 44089000 */ mfc1 $t0, $f18 /* 07F214 7F04A6E4 440D3000 */ mfc1 $t5, $f6 /* 07F218 7F04A6E8 00884821 */ addu $t1, $a0, $t0 /* 07F21C 7F04A6EC A2090066 */ sb $t1, 0x66($s0) /* 07F220 7F04A6F0 00AD7021 */ addu $t6, $a1, $t5 /* 07F224 7F04A6F4 1000000B */ b .L7F04A724 /* 07F228 7F04A6F8 A20E0069 */ sb $t6, 0x69($s0) /* 07F22C 7F04A6FC 920F0062 */ lbu $t7, 0x62($s0) .L7F04A700: /* 07F230 7F04A700 92180065 */ lbu $t8, 0x65($s0) /* 07F234 7F04A704 92190068 */ lbu $t9, 0x68($s0) /* 07F238 7F04A708 9208006B */ lbu $t0, 0x6b($s0) /* 07F23C 7F04A70C E618006C */ swc1 $f24, 0x6c($s0) /* 07F240 7F04A710 E6140070 */ swc1 $f20, 0x70($s0) /* 07F244 7F04A714 A20F0060 */ sb $t7, 0x60($s0) /* 07F248 7F04A718 A2180063 */ sb $t8, 0x63($s0) /* 07F24C 7F04A71C A2190066 */ sb $t9, 0x66($s0) /* 07F250 7F04A720 A2080069 */ sb $t0, 0x69($s0) .L7F04A724: /* 07F254 7F04A724 8FAA00A0 */ lw $t2, 0xa0($sp) .L7F04A728: /* 07F258 7F04A728 8FA300A4 */ lw $v1, 0xa4($sp) /* 07F25C 7F04A72C 8FA900BC */ lw $t1, 0xbc($sp) /* 07F260 7F04A730 AD520000 */ sw $s2, ($t2) /* 07F264 7F04A734 3C0F8009 */ lui $t7, %hi(monitorimages) /* 07F268 7F04A738 AD490004 */ sw $t1, 4($t2) /* 07F26C 7F04A73C 8C6B0008 */ lw $t3, 8($v1) /* 07F270 7F04A740 8D610000 */ lw $at, ($t3) /* 07F274 7F04A744 AE410000 */ sw $at, ($s2) /* 07F278 7F04A748 8D6D0004 */ lw $t5, 4($t3) /* 07F27C 7F04A74C AE4D0004 */ sw $t5, 4($s2) /* 07F280 7F04A750 8D610008 */ lw $at, 8($t3) /* 07F284 7F04A754 AE410008 */ sw $at, 8($s2) /* 07F288 7F04A758 8D6D000C */ lw $t5, 0xc($t3) /* 07F28C 7F04A75C AE4D000C */ sw $t5, 0xc($s2) /* 07F290 7F04A760 8C6E0008 */ lw $t6, 8($v1) /* 07F294 7F04A764 8DC10010 */ lw $at, 0x10($t6) /* 07F298 7F04A768 AE410010 */ sw $at, 0x10($s2) /* 07F29C 7F04A76C 8DD80014 */ lw $t8, 0x14($t6) /* 07F2A0 7F04A770 AE580014 */ sw $t8, 0x14($s2) /* 07F2A4 7F04A774 8DC10018 */ lw $at, 0x18($t6) /* 07F2A8 7F04A778 AE410018 */ sw $at, 0x18($s2) /* 07F2AC 7F04A77C 8DD8001C */ lw $t8, 0x1c($t6) /* 07F2B0 7F04A780 AE58001C */ sw $t8, 0x1c($s2) /* 07F2B4 7F04A784 8C790008 */ lw $t9, 8($v1) /* 07F2B8 7F04A788 8F210020 */ lw $at, 0x20($t9) /* 07F2BC 7F04A78C AE410020 */ sw $at, 0x20($s2) /* 07F2C0 7F04A790 8F290024 */ lw $t1, 0x24($t9) /* 07F2C4 7F04A794 AE490024 */ sw $t1, 0x24($s2) /* 07F2C8 7F04A798 8F210028 */ lw $at, 0x28($t9) /* 07F2CC 7F04A79C AE410028 */ sw $at, 0x28($s2) /* 07F2D0 7F04A7A0 8F29002C */ lw $t1, 0x2c($t9) /* 07F2D4 7F04A7A4 AE49002C */ sw $t1, 0x2c($s2) /* 07F2D8 7F04A7A8 8C6A0008 */ lw $t2, 8($v1) /* 07F2DC 7F04A7AC 8D410030 */ lw $at, 0x30($t2) /* 07F2E0 7F04A7B0 AE410030 */ sw $at, 0x30($s2) /* 07F2E4 7F04A7B4 8D4B0034 */ lw $t3, 0x34($t2) /* 07F2E8 7F04A7B8 AE4B0034 */ sw $t3, 0x34($s2) /* 07F2EC 7F04A7BC 8D410038 */ lw $at, 0x38($t2) /* 07F2F0 7F04A7C0 AE410038 */ sw $at, 0x38($s2) /* 07F2F4 7F04A7C4 8D4B003C */ lw $t3, 0x3c($t2) /* 07F2F8 7F04A7C8 AE4B003C */ sw $t3, 0x3c($s2) /* 07F2FC 7F04A7CC 8E020008 */ lw $v0, 8($s0) /* 07F300 7F04A7D0 2C410064 */ sltiu $at, $v0, 0x64 /* 07F304 7F04A7D4 10200007 */ beqz $at, .L7F04A7F4 /* 07F308 7F04A7D8 00408825 */ move $s1, $v0 /* 07F30C 7F04A7DC 00026880 */ sll $t5, $v0, 2 /* 07F310 7F04A7E0 8DEFD120 */ lw $t7, %lo(monitorimages)($t7) /* 07F314 7F04A7E4 01A26823 */ subu $t5, $t5, $v0 /* 07F318 7F04A7E8 000D6880 */ sll $t5, $t5, 2 /* 07F31C 7F04A7EC 10000001 */ b .L7F04A7F4 /* 07F320 7F04A7F0 01AF8821 */ addu $s1, $t5, $t7 .L7F04A7F4: /* 07F324 7F04A7F4 122000A9 */ beqz $s1, .L7F04AA9C /* 07F328 7F04A7F8 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 07F32C 7F04A7FC 44810000 */ mtc1 $at, $f0 /* 07F330 7F04A800 C6120010 */ lwc1 $f18, 0x10($s0) /* 07F334 7F04A804 C60A0024 */ lwc1 $f10, 0x24($s0) /* 07F338 7F04A808 C60C000C */ lwc1 $f12, 0xc($s0) /* 07F33C 7F04A80C 46009582 */ mul.s $f22, $f18, $f0 /* 07F340 7F04A810 460CA032 */ c.eq.s $f20, $f12 /* 07F344 7F04A814 46005602 */ mul.s $f24, $f10, $f0 /* 07F348 7F04A818 4600B386 */ mov.s $f14, $f22 /* 07F34C 7F04A81C 45010015 */ bc1t .L7F04A874 /* 07F350 7F04A820 4600C406 */ mov.s $f16, $f24 /* 07F354 7F04A824 E7AE0054 */ swc1 $f14, 0x54($sp) /* 07F358 7F04A828 0FC15FA8 */ jal cosf /* 07F35C 7F04A82C E7B00050 */ swc1 $f16, 0x50($sp) /* 07F360 7F04A830 3C018005 */ lui $at, %hi(D_80052CB0) /* 07F364 7F04A834 C43A2CB0 */ lwc1 $f26, %lo(D_80052CB0)($at) /* 07F368 7F04A838 C60C000C */ lwc1 $f12, 0xc($s0) /* 07F36C 7F04A83C 461A0502 */ mul.s $f20, $f0, $f26 /* 07F370 7F04A840 0FC15FAB */ jal sinf /* 07F374 7F04A844 00000000 */ nop /* 07F378 7F04A848 4614B582 */ mul.s $f22, $f22, $f20 /* 07F37C 7F04A84C C7AE0054 */ lwc1 $f14, 0x54($sp) /* 07F380 7F04A850 C7B00050 */ lwc1 $f16, 0x50($sp) /* 07F384 7F04A854 461A0082 */ mul.s $f2, $f0, $f26 /* 07F388 7F04A858 00000000 */ nop /* 07F38C 7F04A85C 4602C602 */ mul.s $f24, $f24, $f2 /* 07F390 7F04A860 00000000 */ nop /* 07F394 7F04A864 46027382 */ mul.s $f14, $f14, $f2 /* 07F398 7F04A868 00000000 */ nop /* 07F39C 7F04A86C 46148402 */ mul.s $f16, $f16, $f20 /* 07F3A0 7F04A870 00000000 */ nop .L7F04A874: /* 07F3A4 7F04A874 922E0004 */ lbu $t6, 4($s1) /* 07F3A8 7F04A878 3C014200 */ li $at, 0x42000000 # 32.000000 /* 07F3AC 7F04A87C 44810000 */ mtc1 $at, $f0 /* 07F3B0 7F04A880 448E4000 */ mtc1 $t6, $f8 /* 07F3B4 7F04A884 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07F3B8 7F04A888 05C10004 */ bgez $t6, .L7F04A89C /* 07F3BC 7F04A88C 468041A0 */ cvt.s.w $f6, $f8 /* 07F3C0 7F04A890 44819000 */ mtc1 $at, $f18 /* 07F3C4 7F04A894 00000000 */ nop /* 07F3C8 7F04A898 46123180 */ add.s $f6, $f6, $f18 .L7F04A89C: /* 07F3CC 7F04A89C C60A0038 */ lwc1 $f10, 0x38($s0) /* 07F3D0 7F04A8A0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07F3D4 7F04A8A4 46165100 */ add.s $f4, $f10, $f22 /* 07F3D8 7F04A8A8 46043202 */ mul.s $f8, $f6, $f4 /* 07F3DC 7F04A8AC 00000000 */ nop /* 07F3E0 7F04A8B0 46004482 */ mul.s $f18, $f8, $f0 /* 07F3E4 7F04A8B4 4600928D */ trunc.w.s $f10, $f18 /* 07F3E8 7F04A8B8 44085000 */ mfc1 $t0, $f10 /* 07F3EC 7F04A8BC 00000000 */ nop /* 07F3F0 7F04A8C0 A6480008 */ sh $t0, 8($s2) /* 07F3F4 7F04A8C4 92390005 */ lbu $t9, 5($s1) /* 07F3F8 7F04A8C8 44993000 */ mtc1 $t9, $f6 /* 07F3FC 7F04A8CC 07210004 */ bgez $t9, .L7F04A8E0 /* 07F400 7F04A8D0 46803120 */ cvt.s.w $f4, $f6 /* 07F404 7F04A8D4 44814000 */ mtc1 $at, $f8 /* 07F408 7F04A8D8 00000000 */ nop /* 07F40C 7F04A8DC 46082100 */ add.s $f4, $f4, $f8 .L7F04A8E0: /* 07F410 7F04A8E0 C612004C */ lwc1 $f18, 0x4c($s0) /* 07F414 7F04A8E4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07F418 7F04A8E8 46189280 */ add.s $f10, $f18, $f24 /* 07F41C 7F04A8EC 460A2182 */ mul.s $f6, $f4, $f10 /* 07F420 7F04A8F0 00000000 */ nop /* 07F424 7F04A8F4 46003202 */ mul.s $f8, $f6, $f0 /* 07F428 7F04A8F8 4600448D */ trunc.w.s $f18, $f8 /* 07F42C 7F04A8FC 440C9000 */ mfc1 $t4, $f18 /* 07F430 7F04A900 00000000 */ nop /* 07F434 7F04A904 A64C000A */ sh $t4, 0xa($s2) /* 07F438 7F04A908 922A0004 */ lbu $t2, 4($s1) /* 07F43C 7F04A90C 448A2000 */ mtc1 $t2, $f4 /* 07F440 7F04A910 05410004 */ bgez $t2, .L7F04A924 /* 07F444 7F04A914 468022A0 */ cvt.s.w $f10, $f4 /* 07F448 7F04A918 44813000 */ mtc1 $at, $f6 /* 07F44C 7F04A91C 00000000 */ nop /* 07F450 7F04A920 46065280 */ add.s $f10, $f10, $f6 .L7F04A924: /* 07F454 7F04A924 C6080038 */ lwc1 $f8, 0x38($s0) /* 07F458 7F04A928 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07F45C 7F04A92C 460E4481 */ sub.s $f18, $f8, $f14 /* 07F460 7F04A930 46125102 */ mul.s $f4, $f10, $f18 /* 07F464 7F04A934 00000000 */ nop /* 07F468 7F04A938 46002182 */ mul.s $f6, $f4, $f0 /* 07F46C 7F04A93C 4600320D */ trunc.w.s $f8, $f6 /* 07F470 7F04A940 440D4000 */ mfc1 $t5, $f8 /* 07F474 7F04A944 00000000 */ nop /* 07F478 7F04A948 A64D0018 */ sh $t5, 0x18($s2) /* 07F47C 7F04A94C 922F0005 */ lbu $t7, 5($s1) /* 07F480 7F04A950 448F5000 */ mtc1 $t7, $f10 /* 07F484 7F04A954 05E10004 */ bgez $t7, .L7F04A968 /* 07F488 7F04A958 468054A0 */ cvt.s.w $f18, $f10 /* 07F48C 7F04A95C 44812000 */ mtc1 $at, $f4 /* 07F490 7F04A960 00000000 */ nop /* 07F494 7F04A964 46049480 */ add.s $f18, $f18, $f4 .L7F04A968: /* 07F498 7F04A968 C606004C */ lwc1 $f6, 0x4c($s0) /* 07F49C 7F04A96C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07F4A0 7F04A970 46103200 */ add.s $f8, $f6, $f16 /* 07F4A4 7F04A974 46089282 */ mul.s $f10, $f18, $f8 /* 07F4A8 7F04A978 00000000 */ nop /* 07F4AC 7F04A97C 46005102 */ mul.s $f4, $f10, $f0 /* 07F4B0 7F04A980 4600218D */ trunc.w.s $f6, $f4 /* 07F4B4 7F04A984 44183000 */ mfc1 $t8, $f6 /* 07F4B8 7F04A988 00000000 */ nop /* 07F4BC 7F04A98C A658001A */ sh $t8, 0x1a($s2) /* 07F4C0 7F04A990 92280004 */ lbu $t0, 4($s1) /* 07F4C4 7F04A994 44889000 */ mtc1 $t0, $f18 /* 07F4C8 7F04A998 05010004 */ bgez $t0, .L7F04A9AC /* 07F4CC 7F04A99C 46809220 */ cvt.s.w $f8, $f18 /* 07F4D0 7F04A9A0 44815000 */ mtc1 $at, $f10 /* 07F4D4 7F04A9A4 00000000 */ nop /* 07F4D8 7F04A9A8 460A4200 */ add.s $f8, $f8, $f10 .L7F04A9AC: /* 07F4DC 7F04A9AC C6040038 */ lwc1 $f4, 0x38($s0) /* 07F4E0 7F04A9B0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07F4E4 7F04A9B4 46162181 */ sub.s $f6, $f4, $f22 /* 07F4E8 7F04A9B8 46064482 */ mul.s $f18, $f8, $f6 /* 07F4EC 7F04A9BC 00000000 */ nop /* 07F4F0 7F04A9C0 46009282 */ mul.s $f10, $f18, $f0 /* 07F4F4 7F04A9C4 4600510D */ trunc.w.s $f4, $f10 /* 07F4F8 7F04A9C8 44092000 */ mfc1 $t1, $f4 /* 07F4FC 7F04A9CC 00000000 */ nop /* 07F500 7F04A9D0 A6490028 */ sh $t1, 0x28($s2) /* 07F504 7F04A9D4 922C0005 */ lbu $t4, 5($s1) /* 07F508 7F04A9D8 448C4000 */ mtc1 $t4, $f8 /* 07F50C 7F04A9DC 05810004 */ bgez $t4, .L7F04A9F0 /* 07F510 7F04A9E0 468041A0 */ cvt.s.w $f6, $f8 /* 07F514 7F04A9E4 44819000 */ mtc1 $at, $f18 /* 07F518 7F04A9E8 00000000 */ nop /* 07F51C 7F04A9EC 46123180 */ add.s $f6, $f6, $f18 .L7F04A9F0: /* 07F520 7F04A9F0 C60A004C */ lwc1 $f10, 0x4c($s0) /* 07F524 7F04A9F4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07F528 7F04A9F8 46185101 */ sub.s $f4, $f10, $f24 /* 07F52C 7F04A9FC 46043202 */ mul.s $f8, $f6, $f4 /* 07F530 7F04AA00 00000000 */ nop /* 07F534 7F04AA04 46004482 */ mul.s $f18, $f8, $f0 /* 07F538 7F04AA08 4600928D */ trunc.w.s $f10, $f18 /* 07F53C 7F04AA0C 440B5000 */ mfc1 $t3, $f10 /* 07F540 7F04AA10 00000000 */ nop /* 07F544 7F04AA14 A64B002A */ sh $t3, 0x2a($s2) /* 07F548 7F04AA18 922D0004 */ lbu $t5, 4($s1) /* 07F54C 7F04AA1C 448D3000 */ mtc1 $t5, $f6 /* 07F550 7F04AA20 05A10004 */ bgez $t5, .L7F04AA34 /* 07F554 7F04AA24 46803120 */ cvt.s.w $f4, $f6 /* 07F558 7F04AA28 44814000 */ mtc1 $at, $f8 /* 07F55C 7F04AA2C 00000000 */ nop /* 07F560 7F04AA30 46082100 */ add.s $f4, $f4, $f8 .L7F04AA34: /* 07F564 7F04AA34 C6120038 */ lwc1 $f18, 0x38($s0) /* 07F568 7F04AA38 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07F56C 7F04AA3C 460E9280 */ add.s $f10, $f18, $f14 /* 07F570 7F04AA40 460A2182 */ mul.s $f6, $f4, $f10 /* 07F574 7F04AA44 00000000 */ nop /* 07F578 7F04AA48 46003202 */ mul.s $f8, $f6, $f0 /* 07F57C 7F04AA4C 4600448D */ trunc.w.s $f18, $f8 /* 07F580 7F04AA50 440E9000 */ mfc1 $t6, $f18 /* 07F584 7F04AA54 00000000 */ nop /* 07F588 7F04AA58 A64E0038 */ sh $t6, 0x38($s2) /* 07F58C 7F04AA5C 92380005 */ lbu $t8, 5($s1) /* 07F590 7F04AA60 44982000 */ mtc1 $t8, $f4 /* 07F594 7F04AA64 07010004 */ bgez $t8, .L7F04AA78 /* 07F598 7F04AA68 468022A0 */ cvt.s.w $f10, $f4 /* 07F59C 7F04AA6C 44813000 */ mtc1 $at, $f6 /* 07F5A0 7F04AA70 00000000 */ nop /* 07F5A4 7F04AA74 46065280 */ add.s $f10, $f10, $f6 .L7F04AA78: /* 07F5A8 7F04AA78 C608004C */ lwc1 $f8, 0x4c($s0) /* 07F5AC 7F04AA7C 46104481 */ sub.s $f18, $f8, $f16 /* 07F5B0 7F04AA80 46125102 */ mul.s $f4, $f10, $f18 /* 07F5B4 7F04AA84 00000000 */ nop /* 07F5B8 7F04AA88 46002182 */ mul.s $f6, $f4, $f0 /* 07F5BC 7F04AA8C 4600320D */ trunc.w.s $f8, $f6 /* 07F5C0 7F04AA90 44194000 */ mfc1 $t9, $f8 /* 07F5C4 7F04AA94 00000000 */ nop /* 07F5C8 7F04AA98 A659003A */ sh $t9, 0x3a($s2) .L7F04AA9C: /* 07F5CC 7F04AA9C 92020060 */ lbu $v0, 0x60($s0) /* 07F5D0 7F04AAA0 240C0002 */ li $t4, 2 /* 07F5D4 7F04AAA4 3C0DB700 */ lui $t5, 0xb700 /* 07F5D8 7F04AAA8 A242003C */ sb $v0, 0x3c($s2) /* 07F5DC 7F04AAAC A242002C */ sb $v0, 0x2c($s2) /* 07F5E0 7F04AAB0 A242001C */ sb $v0, 0x1c($s2) /* 07F5E4 7F04AAB4 A242000C */ sb $v0, 0xc($s2) /* 07F5E8 7F04AAB8 92020063 */ lbu $v0, 0x63($s0) /* 07F5EC 7F04AABC 240F2000 */ li $t7, 8192 /* 07F5F0 7F04AAC0 27A400BC */ addiu $a0, $sp, 0xbc /* 07F5F4 7F04AAC4 A242003D */ sb $v0, 0x3d($s2) /* 07F5F8 7F04AAC8 A242002D */ sb $v0, 0x2d($s2) /* 07F5FC 7F04AACC A242001D */ sb $v0, 0x1d($s2) /* 07F600 7F04AAD0 A242000D */ sb $v0, 0xd($s2) /* 07F604 7F04AAD4 92030066 */ lbu $v1, 0x66($s0) /* 07F608 7F04AAD8 A243003E */ sb $v1, 0x3e($s2) /* 07F60C 7F04AADC A243002E */ sb $v1, 0x2e($s2) /* 07F610 7F04AAE0 A243001E */ sb $v1, 0x1e($s2) /* 07F614 7F04AAE4 A243000E */ sb $v1, 0xe($s2) /* 07F618 7F04AAE8 92020069 */ lbu $v0, 0x69($s0) /* 07F61C 7F04AAEC A242003F */ sb $v0, 0x3f($s2) /* 07F620 7F04AAF0 A242002F */ sb $v0, 0x2f($s2) /* 07F624 7F04AAF4 A242001F */ sb $v0, 0x1f($s2) /* 07F628 7F04AAF8 A242000F */ sb $v0, 0xf($s2) /* 07F62C 7F04AAFC 92090069 */ lbu $t1, 0x69($s0) /* 07F630 7F04AB00 292100FF */ slti $at, $t1, 0xff /* 07F634 7F04AB04 50200003 */ beql $at, $zero, .L7F04AB14 /* 07F638 7F04AB08 8FAA00BC */ lw $t2, 0xbc($sp) /* 07F63C 7F04AB0C AFAC00C4 */ sw $t4, 0xc4($sp) /* 07F640 7F04AB10 8FAA00BC */ lw $t2, 0xbc($sp) .L7F04AB14: /* 07F644 7F04AB14 240E0002 */ li $t6, 2 /* 07F648 7F04AB18 02202825 */ move $a1, $s1 /* 07F64C 7F04AB1C 254B0008 */ addiu $t3, $t2, 8 /* 07F650 7F04AB20 AFAB00BC */ sw $t3, 0xbc($sp) /* 07F654 7F04AB24 AD4F0004 */ sw $t7, 4($t2) /* 07F658 7F04AB28 AD4D0000 */ sw $t5, ($t2) /* 07F65C 7F04AB2C AFAE0010 */ sw $t6, 0x10($sp) /* 07F660 7F04AB30 8FA700C0 */ lw $a3, 0xc0($sp) /* 07F664 7F04AB34 0FC1DB5A */ jal texSelect /* 07F668 7F04AB38 8FA600C4 */ lw $a2, 0xc4($sp) /* 07F66C 7F04AB3C 8FB000BC */ lw $s0, 0xbc($sp) /* 07F670 7F04AB40 3C190102 */ lui $t9, (0x01020040 >> 16) # lui $t9, 0x102 /* 07F674 7F04AB44 37390040 */ ori $t9, (0x01020040 & 0xFFFF) # ori $t9, $t9, 0x40 /* 07F678 7F04AB48 26080008 */ addiu $t0, $s0, 8 /* 07F67C 7F04AB4C AFA800BC */ sw $t0, 0xbc($sp) /* 07F680 7F04AB50 AE190000 */ sw $t9, ($s0) /* 07F684 7F04AB54 8FA900B0 */ lw $t1, 0xb0($sp) /* 07F688 7F04AB58 0C003A2C */ jal osVirtualToPhysical /* 07F68C 7F04AB5C 8D24000C */ lw $a0, 0xc($t1) /* 07F690 7F04AB60 AE020004 */ sw $v0, 4($s0) /* 07F694 7F04AB64 8FB100BC */ lw $s1, 0xbc($sp) /* 07F698 7F04AB68 3C0BBC00 */ lui $t3, (0xBC001006 >> 16) # lui $t3, 0xbc00 /* 07F69C 7F04AB6C 356B1006 */ ori $t3, (0xBC001006 & 0xFFFF) # ori $t3, $t3, 0x1006 /* 07F6A0 7F04AB70 262A0008 */ addiu $t2, $s1, 8 /* 07F6A4 7F04AB74 AFAA00BC */ sw $t2, 0xbc($sp) /* 07F6A8 7F04AB78 02402025 */ move $a0, $s2 /* 07F6AC 7F04AB7C 0C003A2C */ jal osVirtualToPhysical /* 07F6B0 7F04AB80 AE2B0000 */ sw $t3, ($s1) /* 07F6B4 7F04AB84 AE220004 */ sw $v0, 4($s1) /* 07F6B8 7F04AB88 8FAD00BC */ lw $t5, 0xbc($sp) /* 07F6BC 7F04AB8C 3C0E0430 */ lui $t6, (0x04300040 >> 16) # lui $t6, 0x430 /* 07F6C0 7F04AB90 35CE0040 */ ori $t6, (0x04300040 & 0xFFFF) # ori $t6, $t6, 0x40 /* 07F6C4 7F04AB94 25AF0008 */ addiu $t7, $t5, 8 /* 07F6C8 7F04AB98 AFAF00BC */ sw $t7, 0xbc($sp) /* 07F6CC 7F04AB9C 3C180400 */ lui $t8, 0x400 /* 07F6D0 7F04ABA0 ADB80004 */ sw $t8, 4($t5) /* 07F6D4 7F04ABA4 ADAE0000 */ sw $t6, ($t5) /* 07F6D8 7F04ABA8 8FA800BC */ lw $t0, 0xbc($sp) /* 07F6DC 7F04ABAC 3C09B100 */ lui $t1, (0xB1000032 >> 16) # lui $t1, 0xb100 /* 07F6E0 7F04ABB0 35290032 */ ori $t1, (0xB1000032 & 0xFFFF) # ori $t1, $t1, 0x32 /* 07F6E4 7F04ABB4 25190008 */ addiu $t9, $t0, 8 /* 07F6E8 7F04ABB8 AFB900BC */ sw $t9, 0xbc($sp) /* 07F6EC 7F04ABBC 240C2010 */ li $t4, 8208 /* 07F6F0 7F04ABC0 AD0C0004 */ sw $t4, 4($t0) /* 07F6F4 7F04ABC4 AD090000 */ sw $t1, ($t0) /* 07F6F8 7F04ABC8 8FAA00BC */ lw $t2, 0xbc($sp) /* 07F6FC 7F04ABCC 3C0DB800 */ lui $t5, 0xb800 /* 07F700 7F04ABD0 3C0F0601 */ lui $t7, 0x601 /* 07F704 7F04ABD4 254B0008 */ addiu $t3, $t2, 8 /* 07F708 7F04ABD8 AFAB00BC */ sw $t3, 0xbc($sp) /* 07F70C 7F04ABDC AD400004 */ sw $zero, 4($t2) /* 07F710 7F04ABE0 AD4D0000 */ sw $t5, ($t2) /* 07F714 7F04ABE4 8FA600A8 */ lw $a2, 0xa8($sp) /* 07F718 7F04ABE8 ACCF0000 */ sw $t7, ($a2) /* 07F71C 7F04ABEC 8FAE00BC */ lw $t6, 0xbc($sp) /* 07F720 7F04ABF0 ACCE0004 */ sw $t6, 4($a2) .L7F04ABF4: /* 07F724 7F04ABF4 8FBF004C */ lw $ra, 0x4c($sp) .L7F04ABF8: /* 07F728 7F04ABF8 8FA200BC */ lw $v0, 0xbc($sp) /* 07F72C 7F04ABFC D7B40020 */ ldc1 $f20, 0x20($sp) /* 07F730 7F04AC00 D7B60028 */ ldc1 $f22, 0x28($sp) /* 07F734 7F04AC04 D7B80030 */ ldc1 $f24, 0x30($sp) /* 07F738 7F04AC08 D7BA0038 */ ldc1 $f26, 0x38($sp) /* 07F73C 7F04AC0C 8FB00040 */ lw $s0, 0x40($sp) /* 07F740 7F04AC10 8FB10044 */ lw $s1, 0x44($sp) /* 07F744 7F04AC14 8FB20048 */ lw $s2, 0x48($sp) /* 07F748 7F04AC18 03E00008 */ jr $ra /* 07F74C 7F04AC1C 27BD00B0 */ addiu $sp, $sp, 0xb0 ) #endif #ifdef VERSION_JP GLOBAL_ASM( .late_rodata glabel D_80052C68 .word 0x40c90fdb /*6.2831855*/ /*D:80052C6C*/ glabel jpt_80052C6C .word command00_reset_scroll_shift .word command01_horizontal_scroll .word command02_vertical_scroll .word command03_horizontal_pos .word command04_vertical_pos .word command05_zoomx .word command06_zoomy .word command07_use_image_from_global_monitor_table .word command08_halt_processing_for_time .word command09_jump .word command0A_jump_conditional .word command0B_restart .word command0C_break .word command0D_colour_transition .word command0E_set_rotation .word command0F_rotate glabel D_80052CAC .word 0x3fc90fdb /*1.5707964*/ glabel D_80052CB0 .word 0x3fb50481 /*1.4141999*/ glabel D_80052CB4 .word 0x3f59999a /*0.85000002*/ glabel D_80052CB8 .word 0x3e19999a /*0.15000001*/ glabel D_80052CBC .word 0x3e19999a /*0.15000001*/ glabel D_80052CC0 .word 0x3f666666 /*0.89999998*/ .text glabel process_monitor_animation_microcode /* 07EA78 7F049F48 27BDFF50 */ addiu $sp, $sp, -0xb0 /* 07EA7C 7F049F4C AFB10044 */ sw $s1, 0x44($sp) /* 07EA80 7F049F50 AFB00040 */ sw $s0, 0x40($sp) /* 07EA84 7F049F54 00C08025 */ move $s0, $a2 /* 07EA88 7F049F58 00A08825 */ move $s1, $a1 /* 07EA8C 7F049F5C AFBF004C */ sw $ra, 0x4c($sp) /* 07EA90 7F049F60 AFB20048 */ sw $s2, 0x48($sp) /* 07EA94 7F049F64 F7BA0038 */ sdc1 $f26, 0x38($sp) /* 07EA98 7F049F68 F7B80030 */ sdc1 $f24, 0x30($sp) /* 07EA9C 7F049F6C F7B60028 */ sdc1 $f22, 0x28($sp) /* 07EAA0 7F049F70 F7B40020 */ sdc1 $f20, 0x20($sp) /* 07EAA4 7F049F74 AFA400B0 */ sw $a0, 0xb0($sp) /* 07EAA8 7F049F78 10A0031E */ beqz $a1, .L7F04ABF4 /* 07EAAC 7F049F7C AFA700BC */ sw $a3, 0xbc($sp) /* 07EAB0 7F049F80 94AE0000 */ lhu $t6, ($a1) /* 07EAB4 7F049F84 24010018 */ li $at, 24 /* 07EAB8 7F049F88 31CF00FF */ andi $t7, $t6, 0xff /* 07EABC 7F049F8C 55E1031A */ bnel $t7, $at, .L7F04ABF8 /* 07EAC0 7F049F90 8FBF004C */ lw $ra, 0x4c($sp) /* 07EAC4 7F049F94 0FC2F5B1 */ jal dynAllocate7F0BD6C4 /* 07EAC8 7F049F98 24040004 */ li $a0, 4 /* 07EACC 7F049F9C 8FB800BC */ lw $t8, 0xbc($sp) /* 07EAD0 7F049FA0 00409025 */ move $s2, $v0 /* 07EAD4 7F049FA4 8FA400B0 */ lw $a0, 0xb0($sp) /* 07EAD8 7F049FA8 27190008 */ addiu $t9, $t8, 8 /* 07EADC 7F049FAC AFB900BC */ sw $t9, 0xbc($sp) /* 07EAE0 7F049FB0 AFB800A8 */ sw $t8, 0xa8($sp) /* 07EAE4 7F049FB4 8E280004 */ lw $t0, 4($s1) /* 07EAE8 7F049FB8 02202825 */ move $a1, $s1 /* 07EAEC 7F049FBC 0FC1B1E7 */ jal modelGetNodeRwData /* 07EAF0 7F049FC0 AFA800A4 */ sw $t0, 0xa4($sp) /* 07EAF4 7F049FC4 3C018005 */ lui $at, %hi(D_80052C68) /* 07EAF8 7F049FC8 C43A2C68 */ lwc1 $f26, %lo(D_80052C68)($at) /* 07EAFC 7F049FCC 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07EB00 7F049FD0 4481C000 */ mtc1 $at, $f24 /* 07EB04 7F049FD4 3C013A80 */ li $at, 0x3A800000 # 0.000977 /* 07EB08 7F049FD8 4481B000 */ mtc1 $at, $f22 /* 07EB0C 7F049FDC 3C014780 */ li $at, 0x47800000 # 65536.000000 /* 07EB10 7F049FE0 44811000 */ mtc1 $at, $f2 /* 07EB14 7F049FE4 4480A000 */ mtc1 $zero, $f20 /* 07EB18 7F049FE8 AFA200A0 */ sw $v0, 0xa0($sp) /* 07EB1C 7F049FEC 00008825 */ move $s1, $zero /* 07EB20 7F049FF0 96020004 */ lhu $v0, 4($s0) .L7F049FF4: /* 07EB24 7F049FF4 8E090000 */ lw $t1, ($s0) /* 07EB28 7F049FF8 00025080 */ sll $t2, $v0, 2 /* 07EB2C 7F049FFC 012A1821 */ addu $v1, $t1, $t2 /* 07EB30 7F04A000 8C6B0000 */ lw $t3, ($v1) /* 07EB34 7F04A004 2D610010 */ sltiu $at, $t3, 0x10 /* 07EB38 7F04A008 10200117 */ beqz $at, .L7F04A468 /* 07EB3C 7F04A00C 000B5880 */ sll $t3, $t3, 2 /* 07EB40 7F04A010 3C018005 */ lui $at, %hi(jpt_80052C6C) /* 07EB44 7F04A014 002B0821 */ addu $at, $at, $t3 /* 07EB48 7F04A018 8C2B2C6C */ lw $t3, %lo(jpt_80052C6C)($at) /* 07EB4C 7F04A01C 01600008 */ jr $t3 /* 07EB50 7F04A020 00000000 */ nop command00_reset_scroll_shift: /* 07EB54 7F04A024 244C0001 */ addiu $t4, $v0, 1 /* 07EB58 7F04A028 E6140040 */ swc1 $f20, 0x40($s0) /* 07EB5C 7F04A02C E6140054 */ swc1 $f20, 0x54($s0) /* 07EB60 7F04A030 1000010D */ b .L7F04A468 /* 07EB64 7F04A034 A60C0004 */ sh $t4, 4($s0) command01_horizontal_scroll: /* 07EB68 7F04A038 E614003C */ swc1 $f20, 0x3c($s0) /* 07EB6C 7F04A03C 8C6D0008 */ lw $t5, 8($v1) /* 07EB70 7F04A040 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07EB74 7F04A044 448D2000 */ mtc1 $t5, $f4 /* 07EB78 7F04A048 05A10004 */ bgez $t5, .L7F04A05C /* 07EB7C 7F04A04C 468021A0 */ cvt.s.w $f6, $f4 /* 07EB80 7F04A050 44814000 */ mtc1 $at, $f8 /* 07EB84 7F04A054 00000000 */ nop /* 07EB88 7F04A058 46083180 */ add.s $f6, $f6, $f8 .L7F04A05C: /* 07EB8C 7F04A05C 4606C283 */ div.s $f10, $f24, $f6 /* 07EB90 7F04A060 C6000038 */ lwc1 $f0, 0x38($s0) /* 07EB94 7F04A064 244F0003 */ addiu $t7, $v0, 3 /* 07EB98 7F04A068 E6000044 */ swc1 $f0, 0x44($s0) /* 07EB9C 7F04A06C E60A0040 */ swc1 $f10, 0x40($s0) /* 07EBA0 7F04A070 8C6E0004 */ lw $t6, 4($v1) /* 07EBA4 7F04A074 A60F0004 */ sh $t7, 4($s0) /* 07EBA8 7F04A078 448E9000 */ mtc1 $t6, $f18 /* 07EBAC 7F04A07C 00000000 */ nop /* 07EBB0 7F04A080 46809120 */ cvt.s.w $f4, $f18 /* 07EBB4 7F04A084 46162202 */ mul.s $f8, $f4, $f22 /* 07EBB8 7F04A088 46080180 */ add.s $f6, $f0, $f8 /* 07EBBC 7F04A08C 100000F6 */ b .L7F04A468 /* 07EBC0 7F04A090 E6060048 */ swc1 $f6, 0x48($s0) command02_vertical_scroll: /* 07EBC4 7F04A094 E6140050 */ swc1 $f20, 0x50($s0) /* 07EBC8 7F04A098 8C780008 */ lw $t8, 8($v1) /* 07EBCC 7F04A09C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07EBD0 7F04A0A0 44985000 */ mtc1 $t8, $f10 /* 07EBD4 7F04A0A4 07010004 */ bgez $t8, .L7F04A0B8 /* 07EBD8 7F04A0A8 468054A0 */ cvt.s.w $f18, $f10 /* 07EBDC 7F04A0AC 44812000 */ mtc1 $at, $f4 /* 07EBE0 7F04A0B0 00000000 */ nop /* 07EBE4 7F04A0B4 46049480 */ add.s $f18, $f18, $f4 .L7F04A0B8: /* 07EBE8 7F04A0B8 4612C203 */ div.s $f8, $f24, $f18 /* 07EBEC 7F04A0BC C600004C */ lwc1 $f0, 0x4c($s0) /* 07EBF0 7F04A0C0 24480003 */ addiu $t0, $v0, 3 /* 07EBF4 7F04A0C4 E6000058 */ swc1 $f0, 0x58($s0) /* 07EBF8 7F04A0C8 E6080054 */ swc1 $f8, 0x54($s0) /* 07EBFC 7F04A0CC 8C790004 */ lw $t9, 4($v1) /* 07EC00 7F04A0D0 A6080004 */ sh $t0, 4($s0) /* 07EC04 7F04A0D4 44993000 */ mtc1 $t9, $f6 /* 07EC08 7F04A0D8 00000000 */ nop /* 07EC0C 7F04A0DC 468032A0 */ cvt.s.w $f10, $f6 /* 07EC10 7F04A0E0 46165102 */ mul.s $f4, $f10, $f22 /* 07EC14 7F04A0E4 46040480 */ add.s $f18, $f0, $f4 /* 07EC18 7F04A0E8 100000DF */ b .L7F04A468 /* 07EC1C 7F04A0EC E612005C */ swc1 $f18, 0x5c($s0) command03_horizontal_pos: /* 07EC20 7F04A0F0 E614003C */ swc1 $f20, 0x3c($s0) /* 07EC24 7F04A0F4 8C690008 */ lw $t1, 8($v1) /* 07EC28 7F04A0F8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07EC2C 7F04A0FC 44894000 */ mtc1 $t1, $f8 /* 07EC30 7F04A100 05210004 */ bgez $t1, .L7F04A114 /* 07EC34 7F04A104 468041A0 */ cvt.s.w $f6, $f8 /* 07EC38 7F04A108 44815000 */ mtc1 $at, $f10 /* 07EC3C 7F04A10C 00000000 */ nop /* 07EC40 7F04A110 460A3180 */ add.s $f6, $f6, $f10 .L7F04A114: /* 07EC44 7F04A114 4606C103 */ div.s $f4, $f24, $f6 /* 07EC48 7F04A118 C6120038 */ lwc1 $f18, 0x38($s0) /* 07EC4C 7F04A11C 244B0003 */ addiu $t3, $v0, 3 /* 07EC50 7F04A120 E6120044 */ swc1 $f18, 0x44($s0) /* 07EC54 7F04A124 E6040040 */ swc1 $f4, 0x40($s0) /* 07EC58 7F04A128 8C6A0004 */ lw $t2, 4($v1) /* 07EC5C 7F04A12C A60B0004 */ sh $t3, 4($s0) /* 07EC60 7F04A130 448A4000 */ mtc1 $t2, $f8 /* 07EC64 7F04A134 00000000 */ nop /* 07EC68 7F04A138 468042A0 */ cvt.s.w $f10, $f8 /* 07EC6C 7F04A13C 46165182 */ mul.s $f6, $f10, $f22 /* 07EC70 7F04A140 100000C9 */ b .L7F04A468 /* 07EC74 7F04A144 E6060048 */ swc1 $f6, 0x48($s0) command04_vertical_pos: /* 07EC78 7F04A148 E6140050 */ swc1 $f20, 0x50($s0) /* 07EC7C 7F04A14C 8C6C0008 */ lw $t4, 8($v1) /* 07EC80 7F04A150 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07EC84 7F04A154 448C2000 */ mtc1 $t4, $f4 /* 07EC88 7F04A158 05810004 */ bgez $t4, .L7F04A16C /* 07EC8C 7F04A15C 468024A0 */ cvt.s.w $f18, $f4 /* 07EC90 7F04A160 44814000 */ mtc1 $at, $f8 /* 07EC94 7F04A164 00000000 */ nop /* 07EC98 7F04A168 46089480 */ add.s $f18, $f18, $f8 .L7F04A16C: /* 07EC9C 7F04A16C 4612C283 */ div.s $f10, $f24, $f18 /* 07ECA0 7F04A170 C606004C */ lwc1 $f6, 0x4c($s0) /* 07ECA4 7F04A174 244E0003 */ addiu $t6, $v0, 3 /* 07ECA8 7F04A178 E6060058 */ swc1 $f6, 0x58($s0) /* 07ECAC 7F04A17C E60A0054 */ swc1 $f10, 0x54($s0) /* 07ECB0 7F04A180 8C6D0004 */ lw $t5, 4($v1) /* 07ECB4 7F04A184 A60E0004 */ sh $t6, 4($s0) /* 07ECB8 7F04A188 448D2000 */ mtc1 $t5, $f4 /* 07ECBC 7F04A18C 00000000 */ nop /* 07ECC0 7F04A190 46802220 */ cvt.s.w $f8, $f4 /* 07ECC4 7F04A194 46164482 */ mul.s $f18, $f8, $f22 /* 07ECC8 7F04A198 100000B3 */ b .L7F04A468 /* 07ECCC 7F04A19C E612005C */ swc1 $f18, 0x5c($s0) command05_zoomx: /* 07ECD0 7F04A1A0 E6140014 */ swc1 $f20, 0x14($s0) /* 07ECD4 7F04A1A4 8C6F0008 */ lw $t7, 8($v1) /* 07ECD8 7F04A1A8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07ECDC 7F04A1AC 448F5000 */ mtc1 $t7, $f10 /* 07ECE0 7F04A1B0 05E10004 */ bgez $t7, .L7F04A1C4 /* 07ECE4 7F04A1B4 468051A0 */ cvt.s.w $f6, $f10 /* 07ECE8 7F04A1B8 44812000 */ mtc1 $at, $f4 /* 07ECEC 7F04A1BC 00000000 */ nop /* 07ECF0 7F04A1C0 46043180 */ add.s $f6, $f6, $f4 .L7F04A1C4: /* 07ECF4 7F04A1C4 4606C203 */ div.s $f8, $f24, $f6 /* 07ECF8 7F04A1C8 C6120010 */ lwc1 $f18, 0x10($s0) /* 07ECFC 7F04A1CC 24590003 */ addiu $t9, $v0, 3 /* 07ED00 7F04A1D0 E612001C */ swc1 $f18, 0x1c($s0) /* 07ED04 7F04A1D4 E6080018 */ swc1 $f8, 0x18($s0) /* 07ED08 7F04A1D8 8C780004 */ lw $t8, 4($v1) /* 07ED0C 7F04A1DC A6190004 */ sh $t9, 4($s0) /* 07ED10 7F04A1E0 44985000 */ mtc1 $t8, $f10 /* 07ED14 7F04A1E4 00000000 */ nop /* 07ED18 7F04A1E8 46805120 */ cvt.s.w $f4, $f10 /* 07ED1C 7F04A1EC 46162182 */ mul.s $f6, $f4, $f22 /* 07ED20 7F04A1F0 1000009D */ b .L7F04A468 /* 07ED24 7F04A1F4 E6060020 */ swc1 $f6, 0x20($s0) command06_zoomy: /* 07ED28 7F04A1F8 E6140028 */ swc1 $f20, 0x28($s0) /* 07ED2C 7F04A1FC 8C680008 */ lw $t0, 8($v1) /* 07ED30 7F04A200 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07ED34 7F04A204 44884000 */ mtc1 $t0, $f8 /* 07ED38 7F04A208 05010004 */ bgez $t0, .L7F04A21C /* 07ED3C 7F04A20C 468044A0 */ cvt.s.w $f18, $f8 /* 07ED40 7F04A210 44815000 */ mtc1 $at, $f10 /* 07ED44 7F04A214 00000000 */ nop /* 07ED48 7F04A218 460A9480 */ add.s $f18, $f18, $f10 .L7F04A21C: /* 07ED4C 7F04A21C 4612C103 */ div.s $f4, $f24, $f18 /* 07ED50 7F04A220 C6060024 */ lwc1 $f6, 0x24($s0) /* 07ED54 7F04A224 244A0003 */ addiu $t2, $v0, 3 /* 07ED58 7F04A228 E6060030 */ swc1 $f6, 0x30($s0) /* 07ED5C 7F04A22C E604002C */ swc1 $f4, 0x2c($s0) /* 07ED60 7F04A230 8C690004 */ lw $t1, 4($v1) /* 07ED64 7F04A234 A60A0004 */ sh $t2, 4($s0) /* 07ED68 7F04A238 44894000 */ mtc1 $t1, $f8 /* 07ED6C 7F04A23C 00000000 */ nop /* 07ED70 7F04A240 468042A0 */ cvt.s.w $f10, $f8 /* 07ED74 7F04A244 46165482 */ mul.s $f18, $f10, $f22 /* 07ED78 7F04A248 10000087 */ b .L7F04A468 /* 07ED7C 7F04A24C E6120034 */ swc1 $f18, 0x34($s0) command07_use_image_from_global_monitor_table: /* 07ED80 7F04A250 02002025 */ move $a0, $s0 /* 07ED84 7F04A254 0FC127D0 */ jal save_img_index_to_obj_ani_slot /* 07ED88 7F04A258 8C650004 */ lw $a1, 4($v1) /* 07ED8C 7F04A25C 960B0004 */ lhu $t3, 4($s0) /* 07ED90 7F04A260 3C014780 */ li $at, 0x47800000 # 65536.000000 /* 07ED94 7F04A264 44811000 */ mtc1 $at, $f2 /* 07ED98 7F04A268 256C0002 */ addiu $t4, $t3, 2 /* 07ED9C 7F04A26C 1000007E */ b .L7F04A468 /* 07EDA0 7F04A270 A60C0004 */ sh $t4, 4($s0) command08_halt_processing_for_time: /* 07EDA4 7F04A274 86020006 */ lh $v0, 6($s0) /* 07EDA8 7F04A278 3C0D8005 */ lui $t5, %hi(g_ClockTimer) /* 07EDAC 7F04A27C 0442000E */ bltzl $v0, .L7F04A2B8 /* 07EDB0 7F04A280 8C680004 */ lw $t0, 4($v1) /* 07EDB4 7F04A284 8DAD8374 */ lw $t5, %lo(g_ClockTimer)($t5) /* 07EDB8 7F04A288 004D7023 */ subu $t6, $v0, $t5 /* 07EDBC 7F04A28C A60E0006 */ sh $t6, 6($s0) /* 07EDC0 7F04A290 860F0006 */ lh $t7, 6($s0) /* 07EDC4 7F04A294 05E20004 */ bltzl $t7, .L7F04A2A8 /* 07EDC8 7F04A298 96180004 */ lhu $t8, 4($s0) /* 07EDCC 7F04A29C 10000072 */ b .L7F04A468 /* 07EDD0 7F04A2A0 24110001 */ li $s1, 1 /* 07EDD4 7F04A2A4 96180004 */ lhu $t8, 4($s0) .L7F04A2A8: /* 07EDD8 7F04A2A8 27190002 */ addiu $t9, $t8, 2 /* 07EDDC 7F04A2AC 1000006E */ b .L7F04A468 /* 07EDE0 7F04A2B0 A6190004 */ sh $t9, 4($s0) /* 07EDE4 7F04A2B4 8C680004 */ lw $t0, 4($v1) .L7F04A2B8: /* 07EDE8 7F04A2B8 24110001 */ li $s1, 1 /* 07EDEC 7F04A2BC 1000006A */ b .L7F04A468 /* 07EDF0 7F04A2C0 A6080006 */ sh $t0, 6($s0) command09_jump: /* 07EDF4 7F04A2C4 02002025 */ move $a0, $s0 /* 07EDF8 7F04A2C8 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot /* 07EDFC 7F04A2CC 8C650004 */ lw $a1, 4($v1) /* 07EE00 7F04A2D0 3C014780 */ li $at, 0x47800000 # 65536.000000 /* 07EE04 7F04A2D4 44811000 */ mtc1 $at, $f2 /* 07EE08 7F04A2D8 10000063 */ b .L7F04A468 /* 07EE0C 7F04A2DC 00000000 */ nop command0A_jump_conditional: /* 07EE10 7F04A2E0 0C002914 */ jal randomGetNext /* 07EE14 7F04A2E4 AFA30094 */ sw $v1, 0x94($sp) /* 07EE18 7F04A2E8 8FA30094 */ lw $v1, 0x94($sp) /* 07EE1C 7F04A2EC 00024C02 */ srl $t1, $v0, 0x10 /* 07EE20 7F04A2F0 02002025 */ move $a0, $s0 /* 07EE24 7F04A2F4 8C6A0008 */ lw $t2, 8($v1) /* 07EE28 7F04A2F8 012A082B */ sltu $at, $t1, $t2 /* 07EE2C 7F04A2FC 50200008 */ beql $at, $zero, .L7F04A320 /* 07EE30 7F04A300 960B0004 */ lhu $t3, 4($s0) /* 07EE34 7F04A304 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot /* 07EE38 7F04A308 8C650004 */ lw $a1, 4($v1) /* 07EE3C 7F04A30C 3C014780 */ li $at, 0x47800000 # 65536.000000 /* 07EE40 7F04A310 44811000 */ mtc1 $at, $f2 /* 07EE44 7F04A314 10000054 */ b .L7F04A468 /* 07EE48 7F04A318 00000000 */ nop /* 07EE4C 7F04A31C 960B0004 */ lhu $t3, 4($s0) .L7F04A320: /* 07EE50 7F04A320 3C014780 */ li $at, 0x47800000 # 65536.000000 /* 07EE54 7F04A324 44811000 */ mtc1 $at, $f2 /* 07EE58 7F04A328 256C0003 */ addiu $t4, $t3, 3 /* 07EE5C 7F04A32C A60C0004 */ sh $t4, 4($s0) /* 07EE60 7F04A330 1000004D */ b .L7F04A468 /* 07EE64 7F04A334 00000000 */ nop command0B_restart: /* 07EE68 7F04A338 1000004B */ b .L7F04A468 /* 07EE6C 7F04A33C A6000004 */ sh $zero, 4($s0) command0C_break: /* 07EE70 7F04A340 10000049 */ b .L7F04A468 /* 07EE74 7F04A344 24110001 */ li $s1, 1 command0D_colour_transition: /* 07EE78 7F04A348 E614006C */ swc1 $f20, 0x6c($s0) /* 07EE7C 7F04A34C 8C6D0008 */ lw $t5, 8($v1) /* 07EE80 7F04A350 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07EE84 7F04A354 448D2000 */ mtc1 $t5, $f4 /* 07EE88 7F04A358 05A10004 */ bgez $t5, .L7F04A36C /* 07EE8C 7F04A35C 468021A0 */ cvt.s.w $f6, $f4 /* 07EE90 7F04A360 44814000 */ mtc1 $at, $f8 /* 07EE94 7F04A364 00000000 */ nop /* 07EE98 7F04A368 46083180 */ add.s $f6, $f6, $f8 .L7F04A36C: /* 07EE9C 7F04A36C 4606C283 */ div.s $f10, $f24, $f6 /* 07EEA0 7F04A370 920E0060 */ lbu $t6, 0x60($s0) /* 07EEA4 7F04A374 92080063 */ lbu $t0, 0x63($s0) /* 07EEA8 7F04A378 920C0066 */ lbu $t4, 0x66($s0) /* 07EEAC 7F04A37C A20E0061 */ sb $t6, 0x61($s0) /* 07EEB0 7F04A380 92180069 */ lbu $t8, 0x69($s0) /* 07EEB4 7F04A384 E60A0070 */ swc1 $f10, 0x70($s0) /* 07EEB8 7F04A388 8C6F0004 */ lw $t7, 4($v1) /* 07EEBC 7F04A38C A2080064 */ sb $t0, 0x64($s0) /* 07EEC0 7F04A390 000FCE02 */ srl $t9, $t7, 0x18 /* 07EEC4 7F04A394 A2190062 */ sb $t9, 0x62($s0) /* 07EEC8 7F04A398 8C690004 */ lw $t1, 4($v1) /* 07EECC 7F04A39C A20C0067 */ sb $t4, 0x67($s0) /* 07EED0 7F04A3A0 00095C02 */ srl $t3, $t1, 0x10 /* 07EED4 7F04A3A4 A20B0065 */ sb $t3, 0x65($s0) /* 07EED8 7F04A3A8 8C6D0004 */ lw $t5, 4($v1) /* 07EEDC 7F04A3AC A218006A */ sb $t8, 0x6a($s0) /* 07EEE0 7F04A3B0 24490003 */ addiu $t1, $v0, 3 /* 07EEE4 7F04A3B4 000D7A02 */ srl $t7, $t5, 8 /* 07EEE8 7F04A3B8 A20F0068 */ sb $t7, 0x68($s0) /* 07EEEC 7F04A3BC 8C680004 */ lw $t0, 4($v1) /* 07EEF0 7F04A3C0 A6090004 */ sh $t1, 4($s0) /* 07EEF4 7F04A3C4 10000028 */ b .L7F04A468 /* 07EEF8 7F04A3C8 A208006B */ sb $t0, 0x6b($s0) command0E_set_rotation: /* 07EEFC 7F04A3CC 8C6A0004 */ lw $t2, 4($v1) /* 07EF00 7F04A3D0 244B0002 */ addiu $t3, $v0, 2 /* 07EF04 7F04A3D4 A60B0004 */ sh $t3, 4($s0) /* 07EF08 7F04A3D8 448A9000 */ mtc1 $t2, $f18 /* 07EF0C 7F04A3DC 00000000 */ nop /* 07EF10 7F04A3E0 46809120 */ cvt.s.w $f4, $f18 /* 07EF14 7F04A3E4 461A2202 */ mul.s $f8, $f4, $f26 /* 07EF18 7F04A3E8 46024183 */ div.s $f6, $f8, $f2 /* 07EF1C 7F04A3EC 1000001E */ b .L7F04A468 /* 07EF20 7F04A3F0 E606000C */ swc1 $f6, 0xc($s0) command0F_rotate: /* 07EF24 7F04A3F4 8C6C0004 */ lw $t4, 4($v1) /* 07EF28 7F04A3F8 3C018005 */ lui $at, %hi(g_JP_GlobalTimerDelta) /* 07EF2C 7F04A3FC C42A8378 */ lwc1 $f10, %lo(g_JP_GlobalTimerDelta)($at) /* 07EF30 7F04A400 448C9000 */ mtc1 $t4, $f18 /* 07EF34 7F04A404 00000000 */ nop /* 07EF38 7F04A408 46809120 */ cvt.s.w $f4, $f18 /* 07EF3C 7F04A40C 46045202 */ mul.s $f8, $f10, $f4 /* 07EF40 7F04A410 C60A000C */ lwc1 $f10, 0xc($s0) /* 07EF44 7F04A414 461A4182 */ mul.s $f6, $f8, $f26 /* 07EF48 7F04A418 46023483 */ div.s $f18, $f6, $f2 /* 07EF4C 7F04A41C 46125100 */ add.s $f4, $f10, $f18 /* 07EF50 7F04A420 E604000C */ swc1 $f4, 0xc($s0) /* 07EF54 7F04A424 C60C000C */ lwc1 $f12, 0xc($s0) /* 07EF58 7F04A428 460CD03E */ c.le.s $f26, $f12 /* 07EF5C 7F04A42C 00000000 */ nop /* 07EF60 7F04A430 45020005 */ bc1fl .L7F04A448 /* 07EF64 7F04A434 4614603C */ c.lt.s $f12, $f20 /* 07EF68 7F04A438 461A6201 */ sub.s $f8, $f12, $f26 /* 07EF6C 7F04A43C E608000C */ swc1 $f8, 0xc($s0) /* 07EF70 7F04A440 C60C000C */ lwc1 $f12, 0xc($s0) /* 07EF74 7F04A444 4614603C */ c.lt.s $f12, $f20 .L7F04A448: /* 07EF78 7F04A448 00000000 */ nop /* 07EF7C 7F04A44C 45020004 */ bc1fl .L7F04A460 /* 07EF80 7F04A450 960D0004 */ lhu $t5, 4($s0) /* 07EF84 7F04A454 461A6180 */ add.s $f6, $f12, $f26 /* 07EF88 7F04A458 E606000C */ swc1 $f6, 0xc($s0) /* 07EF8C 7F04A45C 960D0004 */ lhu $t5, 4($s0) .L7F04A460: /* 07EF90 7F04A460 25AE0002 */ addiu $t6, $t5, 2 /* 07EF94 7F04A464 A60E0004 */ sh $t6, 4($s0) def_7F04A01C: .L7F04A468: /* 07EF98 7F04A468 5220FEE2 */ beql $s1, $zero, .L7F049FF4 /* 07EF9C 7F04A46C 96020004 */ lhu $v0, 4($s0) /* 07EFA0 7F04A470 C6000018 */ lwc1 $f0, 0x18($s0) /* 07EFA4 7F04A474 4600A03C */ c.lt.s $f20, $f0 /* 07EFA8 7F04A478 00000000 */ nop /* 07EFAC 7F04A47C 45000017 */ bc1f .L7F04A4DC /* 07EFB0 7F04A480 3C028005 */ lui $v0, %hi(g_JP_GlobalTimerDelta) /* 07EFB4 7F04A484 24428378 */ addiu $v0, %lo(g_JP_GlobalTimerDelta) # addiu $v0, $v0, -0x7c88 /* 07EFB8 7F04A488 C4520000 */ lwc1 $f18, ($v0) /* 07EFBC 7F04A48C C60A0014 */ lwc1 $f10, 0x14($s0) /* 07EFC0 7F04A490 46120102 */ mul.s $f4, $f0, $f18 /* 07EFC4 7F04A494 46045200 */ add.s $f8, $f10, $f4 /* 07EFC8 7F04A498 E6080014 */ swc1 $f8, 0x14($s0) /* 07EFCC 7F04A49C C6020014 */ lwc1 $f2, 0x14($s0) /* 07EFD0 7F04A4A0 4618103C */ c.lt.s $f2, $f24 /* 07EFD4 7F04A4A4 00000000 */ nop /* 07EFD8 7F04A4A8 45020009 */ bc1fl .L7F04A4D0 /* 07EFDC 7F04A4AC C6080020 */ lwc1 $f8, 0x20($s0) /* 07EFE0 7F04A4B0 C600001C */ lwc1 $f0, 0x1c($s0) /* 07EFE4 7F04A4B4 C6060020 */ lwc1 $f6, 0x20($s0) /* 07EFE8 7F04A4B8 46003481 */ sub.s $f18, $f6, $f0 /* 07EFEC 7F04A4BC 46029282 */ mul.s $f10, $f18, $f2 /* 07EFF0 7F04A4C0 460A0100 */ add.s $f4, $f0, $f10 /* 07EFF4 7F04A4C4 10000005 */ b .L7F04A4DC /* 07EFF8 7F04A4C8 E6040010 */ swc1 $f4, 0x10($s0) /* 07EFFC 7F04A4CC C6080020 */ lwc1 $f8, 0x20($s0) .L7F04A4D0: /* 07F000 7F04A4D0 E6180014 */ swc1 $f24, 0x14($s0) /* 07F004 7F04A4D4 E6140018 */ swc1 $f20, 0x18($s0) /* 07F008 7F04A4D8 E6080010 */ swc1 $f8, 0x10($s0) .L7F04A4DC: /* 07F00C 7F04A4DC C600002C */ lwc1 $f0, 0x2c($s0) /* 07F010 7F04A4E0 3C028005 */ lui $v0, %hi(g_JP_GlobalTimerDelta) /* 07F014 7F04A4E4 24428378 */ addiu $v0, %lo(g_JP_GlobalTimerDelta) # addiu $v0, $v0, -0x7c88 /* 07F018 7F04A4E8 4600A03C */ c.lt.s $f20, $f0 /* 07F01C 7F04A4EC 00000000 */ nop /* 07F020 7F04A4F0 45020017 */ bc1fl .L7F04A550 /* 07F024 7F04A4F4 C6000040 */ lwc1 $f0, 0x40($s0) /* 07F028 7F04A4F8 C4520000 */ lwc1 $f18, ($v0) /* 07F02C 7F04A4FC C6060028 */ lwc1 $f6, 0x28($s0) /* 07F030 7F04A500 46120282 */ mul.s $f10, $f0, $f18 /* 07F034 7F04A504 460A3100 */ add.s $f4, $f6, $f10 /* 07F038 7F04A508 E6040028 */ swc1 $f4, 0x28($s0) /* 07F03C 7F04A50C C6020028 */ lwc1 $f2, 0x28($s0) /* 07F040 7F04A510 4618103C */ c.lt.s $f2, $f24 /* 07F044 7F04A514 00000000 */ nop /* 07F048 7F04A518 45020009 */ bc1fl .L7F04A540 /* 07F04C 7F04A51C C6040034 */ lwc1 $f4, 0x34($s0) /* 07F050 7F04A520 C6000030 */ lwc1 $f0, 0x30($s0) /* 07F054 7F04A524 C6080034 */ lwc1 $f8, 0x34($s0) /* 07F058 7F04A528 46004481 */ sub.s $f18, $f8, $f0 /* 07F05C 7F04A52C 46029182 */ mul.s $f6, $f18, $f2 /* 07F060 7F04A530 46060280 */ add.s $f10, $f0, $f6 /* 07F064 7F04A534 10000005 */ b .L7F04A54C /* 07F068 7F04A538 E60A0024 */ swc1 $f10, 0x24($s0) /* 07F06C 7F04A53C C6040034 */ lwc1 $f4, 0x34($s0) .L7F04A540: /* 07F070 7F04A540 E6180028 */ swc1 $f24, 0x28($s0) /* 07F074 7F04A544 E614002C */ swc1 $f20, 0x2c($s0) /* 07F078 7F04A548 E6040024 */ swc1 $f4, 0x24($s0) .L7F04A54C: /* 07F07C 7F04A54C C6000040 */ lwc1 $f0, 0x40($s0) .L7F04A550: /* 07F080 7F04A550 4600A03C */ c.lt.s $f20, $f0 /* 07F084 7F04A554 00000000 */ nop /* 07F088 7F04A558 45020017 */ bc1fl .L7F04A5B8 /* 07F08C 7F04A55C C6000054 */ lwc1 $f0, 0x54($s0) /* 07F090 7F04A560 C4520000 */ lwc1 $f18, ($v0) /* 07F094 7F04A564 C608003C */ lwc1 $f8, 0x3c($s0) /* 07F098 7F04A568 46120182 */ mul.s $f6, $f0, $f18 /* 07F09C 7F04A56C 46064280 */ add.s $f10, $f8, $f6 /* 07F0A0 7F04A570 E60A003C */ swc1 $f10, 0x3c($s0) /* 07F0A4 7F04A574 C602003C */ lwc1 $f2, 0x3c($s0) /* 07F0A8 7F04A578 4618103C */ c.lt.s $f2, $f24 /* 07F0AC 7F04A57C 00000000 */ nop /* 07F0B0 7F04A580 45020009 */ bc1fl .L7F04A5A8 /* 07F0B4 7F04A584 C60A0048 */ lwc1 $f10, 0x48($s0) /* 07F0B8 7F04A588 C6000044 */ lwc1 $f0, 0x44($s0) /* 07F0BC 7F04A58C C6040048 */ lwc1 $f4, 0x48($s0) /* 07F0C0 7F04A590 46002481 */ sub.s $f18, $f4, $f0 /* 07F0C4 7F04A594 46029202 */ mul.s $f8, $f18, $f2 /* 07F0C8 7F04A598 46080180 */ add.s $f6, $f0, $f8 /* 07F0CC 7F04A59C 10000005 */ b .L7F04A5B4 /* 07F0D0 7F04A5A0 E6060038 */ swc1 $f6, 0x38($s0) /* 07F0D4 7F04A5A4 C60A0048 */ lwc1 $f10, 0x48($s0) .L7F04A5A8: /* 07F0D8 7F04A5A8 E618003C */ swc1 $f24, 0x3c($s0) /* 07F0DC 7F04A5AC E6140040 */ swc1 $f20, 0x40($s0) /* 07F0E0 7F04A5B0 E60A0038 */ swc1 $f10, 0x38($s0) .L7F04A5B4: /* 07F0E4 7F04A5B4 C6000054 */ lwc1 $f0, 0x54($s0) .L7F04A5B8: /* 07F0E8 7F04A5B8 4600A03C */ c.lt.s $f20, $f0 /* 07F0EC 7F04A5BC 00000000 */ nop /* 07F0F0 7F04A5C0 45020017 */ bc1fl .L7F04A620 /* 07F0F4 7F04A5C4 C6020070 */ lwc1 $f2, 0x70($s0) /* 07F0F8 7F04A5C8 C4520000 */ lwc1 $f18, ($v0) /* 07F0FC 7F04A5CC C6040050 */ lwc1 $f4, 0x50($s0) /* 07F100 7F04A5D0 46120202 */ mul.s $f8, $f0, $f18 /* 07F104 7F04A5D4 46082180 */ add.s $f6, $f4, $f8 /* 07F108 7F04A5D8 E6060050 */ swc1 $f6, 0x50($s0) /* 07F10C 7F04A5DC C6020050 */ lwc1 $f2, 0x50($s0) /* 07F110 7F04A5E0 4618103C */ c.lt.s $f2, $f24 /* 07F114 7F04A5E4 00000000 */ nop /* 07F118 7F04A5E8 45020009 */ bc1fl .L7F04A610 /* 07F11C 7F04A5EC C606005C */ lwc1 $f6, 0x5c($s0) /* 07F120 7F04A5F0 C6000058 */ lwc1 $f0, 0x58($s0) /* 07F124 7F04A5F4 C60A005C */ lwc1 $f10, 0x5c($s0) /* 07F128 7F04A5F8 46005481 */ sub.s $f18, $f10, $f0 /* 07F12C 7F04A5FC 46029102 */ mul.s $f4, $f18, $f2 /* 07F130 7F04A600 46040200 */ add.s $f8, $f0, $f4 /* 07F134 7F04A604 10000005 */ b .L7F04A61C /* 07F138 7F04A608 E608004C */ swc1 $f8, 0x4c($s0) /* 07F13C 7F04A60C C606005C */ lwc1 $f6, 0x5c($s0) .L7F04A610: /* 07F140 7F04A610 E6180050 */ swc1 $f24, 0x50($s0) /* 07F144 7F04A614 E6140054 */ swc1 $f20, 0x54($s0) /* 07F148 7F04A618 E606004C */ swc1 $f6, 0x4c($s0) .L7F04A61C: /* 07F14C 7F04A61C C6020070 */ lwc1 $f2, 0x70($s0) .L7F04A620: /* 07F150 7F04A620 4602A03C */ c.lt.s $f20, $f2 /* 07F154 7F04A624 00000000 */ nop /* 07F158 7F04A628 4502003F */ bc1fl .L7F04A728 /* 07F15C 7F04A62C 8FAA00A0 */ lw $t2, 0xa0($sp) /* 07F160 7F04A630 C4520000 */ lwc1 $f18, ($v0) /* 07F164 7F04A634 C60A006C */ lwc1 $f10, 0x6c($s0) /* 07F168 7F04A638 46121102 */ mul.s $f4, $f2, $f18 /* 07F16C 7F04A63C 46045200 */ add.s $f8, $f10, $f4 /* 07F170 7F04A640 E608006C */ swc1 $f8, 0x6c($s0) /* 07F174 7F04A644 C600006C */ lwc1 $f0, 0x6c($s0) /* 07F178 7F04A648 4618003C */ c.lt.s $f0, $f24 /* 07F17C 7F04A64C 00000000 */ nop /* 07F180 7F04A650 4502002B */ bc1fl .L7F04A700 /* 07F184 7F04A654 920F0062 */ lbu $t7, 0x62($s0) /* 07F188 7F04A658 92020061 */ lbu $v0, 0x61($s0) /* 07F18C 7F04A65C 920F0062 */ lbu $t7, 0x62($s0) /* 07F190 7F04A660 92030064 */ lbu $v1, 0x64($s0) /* 07F194 7F04A664 920A0065 */ lbu $t2, 0x65($s0) /* 07F198 7F04A668 01E2C023 */ subu $t8, $t7, $v0 /* 07F19C 7F04A66C 44983000 */ mtc1 $t8, $f6 /* 07F1A0 7F04A670 01435823 */ subu $t3, $t2, $v1 /* 07F1A4 7F04A674 448B4000 */ mtc1 $t3, $f8 /* 07F1A8 7F04A678 468034A0 */ cvt.s.w $f18, $f6 /* 07F1AC 7F04A67C 920F0068 */ lbu $t7, 0x68($s0) /* 07F1B0 7F04A680 92040067 */ lbu $a0, 0x67($s0) /* 07F1B4 7F04A684 920A006B */ lbu $t2, 0x6b($s0) /* 07F1B8 7F04A688 9205006A */ lbu $a1, 0x6a($s0) /* 07F1BC 7F04A68C 468041A0 */ cvt.s.w $f6, $f8 /* 07F1C0 7F04A690 46009282 */ mul.s $f10, $f18, $f0 /* 07F1C4 7F04A694 01E4C023 */ subu $t8, $t7, $a0 /* 07F1C8 7F04A698 01455823 */ subu $t3, $t2, $a1 /* 07F1CC 7F04A69C 46003482 */ mul.s $f18, $f6, $f0 /* 07F1D0 7F04A6A0 4600510D */ trunc.w.s $f4, $f10 /* 07F1D4 7F04A6A4 4600928D */ trunc.w.s $f10, $f18 /* 07F1D8 7F04A6A8 44082000 */ mfc1 $t0, $f4 /* 07F1DC 7F04A6AC 44982000 */ mtc1 $t8, $f4 /* 07F1E0 7F04A6B0 440D5000 */ mfc1 $t5, $f10 /* 07F1E4 7F04A6B4 46802220 */ cvt.s.w $f8, $f4 /* 07F1E8 7F04A6B8 448B5000 */ mtc1 $t3, $f10 /* 07F1EC 7F04A6BC 00484821 */ addu $t1, $v0, $t0 /* 07F1F0 7F04A6C0 006D7021 */ addu $t6, $v1, $t5 /* 07F1F4 7F04A6C4 A2090060 */ sb $t1, 0x60($s0) /* 07F1F8 7F04A6C8 46805120 */ cvt.s.w $f4, $f10 /* 07F1FC 7F04A6CC 46004182 */ mul.s $f6, $f8, $f0 /* 07F200 7F04A6D0 A20E0063 */ sb $t6, 0x63($s0) /* 07F204 7F04A6D4 46002202 */ mul.s $f8, $f4, $f0 /* 07F208 7F04A6D8 4600348D */ trunc.w.s $f18, $f6 /* 07F20C 7F04A6DC 4600418D */ trunc.w.s $f6, $f8 /* 07F210 7F04A6E0 44089000 */ mfc1 $t0, $f18 /* 07F214 7F04A6E4 440D3000 */ mfc1 $t5, $f6 /* 07F218 7F04A6E8 00884821 */ addu $t1, $a0, $t0 /* 07F21C 7F04A6EC A2090066 */ sb $t1, 0x66($s0) /* 07F220 7F04A6F0 00AD7021 */ addu $t6, $a1, $t5 /* 07F224 7F04A6F4 1000000B */ b .L7F04A724 /* 07F228 7F04A6F8 A20E0069 */ sb $t6, 0x69($s0) /* 07F22C 7F04A6FC 920F0062 */ lbu $t7, 0x62($s0) .L7F04A700: /* 07F230 7F04A700 92180065 */ lbu $t8, 0x65($s0) /* 07F234 7F04A704 92190068 */ lbu $t9, 0x68($s0) /* 07F238 7F04A708 9208006B */ lbu $t0, 0x6b($s0) /* 07F23C 7F04A70C E618006C */ swc1 $f24, 0x6c($s0) /* 07F240 7F04A710 E6140070 */ swc1 $f20, 0x70($s0) /* 07F244 7F04A714 A20F0060 */ sb $t7, 0x60($s0) /* 07F248 7F04A718 A2180063 */ sb $t8, 0x63($s0) /* 07F24C 7F04A71C A2190066 */ sb $t9, 0x66($s0) /* 07F250 7F04A720 A2080069 */ sb $t0, 0x69($s0) .L7F04A724: /* 07F254 7F04A724 8FAA00A0 */ lw $t2, 0xa0($sp) .L7F04A728: /* 07F258 7F04A728 8FA300A4 */ lw $v1, 0xa4($sp) /* 07F25C 7F04A72C 8FA900BC */ lw $t1, 0xbc($sp) /* 07F260 7F04A730 AD520000 */ sw $s2, ($t2) /* 07F264 7F04A734 3C0F8009 */ lui $t7, %hi(monitorimages) /* 07F268 7F04A738 AD490004 */ sw $t1, 4($t2) /* 07F26C 7F04A73C 8C6B0008 */ lw $t3, 8($v1) /* 07F270 7F04A740 8D610000 */ lw $at, ($t3) /* 07F274 7F04A744 AE410000 */ sw $at, ($s2) /* 07F278 7F04A748 8D6D0004 */ lw $t5, 4($t3) /* 07F27C 7F04A74C AE4D0004 */ sw $t5, 4($s2) /* 07F280 7F04A750 8D610008 */ lw $at, 8($t3) /* 07F284 7F04A754 AE410008 */ sw $at, 8($s2) /* 07F288 7F04A758 8D6D000C */ lw $t5, 0xc($t3) /* 07F28C 7F04A75C AE4D000C */ sw $t5, 0xc($s2) /* 07F290 7F04A760 8C6E0008 */ lw $t6, 8($v1) /* 07F294 7F04A764 8DC10010 */ lw $at, 0x10($t6) /* 07F298 7F04A768 AE410010 */ sw $at, 0x10($s2) /* 07F29C 7F04A76C 8DD80014 */ lw $t8, 0x14($t6) /* 07F2A0 7F04A770 AE580014 */ sw $t8, 0x14($s2) /* 07F2A4 7F04A774 8DC10018 */ lw $at, 0x18($t6) /* 07F2A8 7F04A778 AE410018 */ sw $at, 0x18($s2) /* 07F2AC 7F04A77C 8DD8001C */ lw $t8, 0x1c($t6) /* 07F2B0 7F04A780 AE58001C */ sw $t8, 0x1c($s2) /* 07F2B4 7F04A784 8C790008 */ lw $t9, 8($v1) /* 07F2B8 7F04A788 8F210020 */ lw $at, 0x20($t9) /* 07F2BC 7F04A78C AE410020 */ sw $at, 0x20($s2) /* 07F2C0 7F04A790 8F290024 */ lw $t1, 0x24($t9) /* 07F2C4 7F04A794 AE490024 */ sw $t1, 0x24($s2) /* 07F2C8 7F04A798 8F210028 */ lw $at, 0x28($t9) /* 07F2CC 7F04A79C AE410028 */ sw $at, 0x28($s2) /* 07F2D0 7F04A7A0 8F29002C */ lw $t1, 0x2c($t9) /* 07F2D4 7F04A7A4 AE49002C */ sw $t1, 0x2c($s2) /* 07F2D8 7F04A7A8 8C6A0008 */ lw $t2, 8($v1) /* 07F2DC 7F04A7AC 8D410030 */ lw $at, 0x30($t2) /* 07F2E0 7F04A7B0 AE410030 */ sw $at, 0x30($s2) /* 07F2E4 7F04A7B4 8D4B0034 */ lw $t3, 0x34($t2) /* 07F2E8 7F04A7B8 AE4B0034 */ sw $t3, 0x34($s2) /* 07F2EC 7F04A7BC 8D410038 */ lw $at, 0x38($t2) /* 07F2F0 7F04A7C0 AE410038 */ sw $at, 0x38($s2) /* 07F2F4 7F04A7C4 8D4B003C */ lw $t3, 0x3c($t2) /* 07F2F8 7F04A7C8 AE4B003C */ sw $t3, 0x3c($s2) /* 07F2FC 7F04A7CC 8E020008 */ lw $v0, 8($s0) /* 07F300 7F04A7D0 2C410064 */ sltiu $at, $v0, 0x64 /* 07F304 7F04A7D4 10200007 */ beqz $at, .L7F04A7F4 /* 07F308 7F04A7D8 00408825 */ move $s1, $v0 /* 07F30C 7F04A7DC 00026880 */ sll $t5, $v0, 2 /* 07F310 7F04A7E0 8DEFD120 */ lw $t7, %lo(monitorimages)($t7) /* 07F314 7F04A7E4 01A26823 */ subu $t5, $t5, $v0 /* 07F318 7F04A7E8 000D6880 */ sll $t5, $t5, 2 /* 07F31C 7F04A7EC 10000001 */ b .L7F04A7F4 /* 07F320 7F04A7F0 01AF8821 */ addu $s1, $t5, $t7 .L7F04A7F4: /* 07F324 7F04A7F4 122000A9 */ beqz $s1, .L7F04AA9C /* 07F328 7F04A7F8 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 07F32C 7F04A7FC 44810000 */ mtc1 $at, $f0 /* 07F330 7F04A800 C6120010 */ lwc1 $f18, 0x10($s0) /* 07F334 7F04A804 C60A0024 */ lwc1 $f10, 0x24($s0) /* 07F338 7F04A808 C60C000C */ lwc1 $f12, 0xc($s0) /* 07F33C 7F04A80C 46009582 */ mul.s $f22, $f18, $f0 /* 07F340 7F04A810 460CA032 */ c.eq.s $f20, $f12 /* 07F344 7F04A814 46005602 */ mul.s $f24, $f10, $f0 /* 07F348 7F04A818 4600B386 */ mov.s $f14, $f22 /* 07F34C 7F04A81C 45010015 */ bc1t .L7F04A874 /* 07F350 7F04A820 4600C406 */ mov.s $f16, $f24 /* 07F354 7F04A824 E7AE0054 */ swc1 $f14, 0x54($sp) /* 07F358 7F04A828 0FC15FA8 */ jal cosf /* 07F35C 7F04A82C E7B00050 */ swc1 $f16, 0x50($sp) /* 07F360 7F04A830 3C018005 */ lui $at, %hi(D_80052CB0) /* 07F364 7F04A834 C43A2CB0 */ lwc1 $f26, %lo(D_80052CB0)($at) /* 07F368 7F04A838 C60C000C */ lwc1 $f12, 0xc($s0) /* 07F36C 7F04A83C 461A0502 */ mul.s $f20, $f0, $f26 /* 07F370 7F04A840 0FC15FAB */ jal sinf /* 07F374 7F04A844 00000000 */ nop /* 07F378 7F04A848 4614B582 */ mul.s $f22, $f22, $f20 /* 07F37C 7F04A84C C7AE0054 */ lwc1 $f14, 0x54($sp) /* 07F380 7F04A850 C7B00050 */ lwc1 $f16, 0x50($sp) /* 07F384 7F04A854 461A0082 */ mul.s $f2, $f0, $f26 /* 07F388 7F04A858 00000000 */ nop /* 07F38C 7F04A85C 4602C602 */ mul.s $f24, $f24, $f2 /* 07F390 7F04A860 00000000 */ nop /* 07F394 7F04A864 46027382 */ mul.s $f14, $f14, $f2 /* 07F398 7F04A868 00000000 */ nop /* 07F39C 7F04A86C 46148402 */ mul.s $f16, $f16, $f20 /* 07F3A0 7F04A870 00000000 */ nop .L7F04A874: /* 07F3A4 7F04A874 922E0004 */ lbu $t6, 4($s1) /* 07F3A8 7F04A878 3C014200 */ li $at, 0x42000000 # 32.000000 /* 07F3AC 7F04A87C 44810000 */ mtc1 $at, $f0 /* 07F3B0 7F04A880 448E4000 */ mtc1 $t6, $f8 /* 07F3B4 7F04A884 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07F3B8 7F04A888 05C10004 */ bgez $t6, .L7F04A89C /* 07F3BC 7F04A88C 468041A0 */ cvt.s.w $f6, $f8 /* 07F3C0 7F04A890 44819000 */ mtc1 $at, $f18 /* 07F3C4 7F04A894 00000000 */ nop /* 07F3C8 7F04A898 46123180 */ add.s $f6, $f6, $f18 .L7F04A89C: /* 07F3CC 7F04A89C C60A0038 */ lwc1 $f10, 0x38($s0) /* 07F3D0 7F04A8A0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07F3D4 7F04A8A4 46165100 */ add.s $f4, $f10, $f22 /* 07F3D8 7F04A8A8 46043202 */ mul.s $f8, $f6, $f4 /* 07F3DC 7F04A8AC 00000000 */ nop /* 07F3E0 7F04A8B0 46004482 */ mul.s $f18, $f8, $f0 /* 07F3E4 7F04A8B4 4600928D */ trunc.w.s $f10, $f18 /* 07F3E8 7F04A8B8 44085000 */ mfc1 $t0, $f10 /* 07F3EC 7F04A8BC 00000000 */ nop /* 07F3F0 7F04A8C0 A6480008 */ sh $t0, 8($s2) /* 07F3F4 7F04A8C4 92390005 */ lbu $t9, 5($s1) /* 07F3F8 7F04A8C8 44993000 */ mtc1 $t9, $f6 /* 07F3FC 7F04A8CC 07210004 */ bgez $t9, .L7F04A8E0 /* 07F400 7F04A8D0 46803120 */ cvt.s.w $f4, $f6 /* 07F404 7F04A8D4 44814000 */ mtc1 $at, $f8 /* 07F408 7F04A8D8 00000000 */ nop /* 07F40C 7F04A8DC 46082100 */ add.s $f4, $f4, $f8 .L7F04A8E0: /* 07F410 7F04A8E0 C612004C */ lwc1 $f18, 0x4c($s0) /* 07F414 7F04A8E4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07F418 7F04A8E8 46189280 */ add.s $f10, $f18, $f24 /* 07F41C 7F04A8EC 460A2182 */ mul.s $f6, $f4, $f10 /* 07F420 7F04A8F0 00000000 */ nop /* 07F424 7F04A8F4 46003202 */ mul.s $f8, $f6, $f0 /* 07F428 7F04A8F8 4600448D */ trunc.w.s $f18, $f8 /* 07F42C 7F04A8FC 440C9000 */ mfc1 $t4, $f18 /* 07F430 7F04A900 00000000 */ nop /* 07F434 7F04A904 A64C000A */ sh $t4, 0xa($s2) /* 07F438 7F04A908 922A0004 */ lbu $t2, 4($s1) /* 07F43C 7F04A90C 448A2000 */ mtc1 $t2, $f4 /* 07F440 7F04A910 05410004 */ bgez $t2, .L7F04A924 /* 07F444 7F04A914 468022A0 */ cvt.s.w $f10, $f4 /* 07F448 7F04A918 44813000 */ mtc1 $at, $f6 /* 07F44C 7F04A91C 00000000 */ nop /* 07F450 7F04A920 46065280 */ add.s $f10, $f10, $f6 .L7F04A924: /* 07F454 7F04A924 C6080038 */ lwc1 $f8, 0x38($s0) /* 07F458 7F04A928 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07F45C 7F04A92C 460E4481 */ sub.s $f18, $f8, $f14 /* 07F460 7F04A930 46125102 */ mul.s $f4, $f10, $f18 /* 07F464 7F04A934 00000000 */ nop /* 07F468 7F04A938 46002182 */ mul.s $f6, $f4, $f0 /* 07F46C 7F04A93C 4600320D */ trunc.w.s $f8, $f6 /* 07F470 7F04A940 440D4000 */ mfc1 $t5, $f8 /* 07F474 7F04A944 00000000 */ nop /* 07F478 7F04A948 A64D0018 */ sh $t5, 0x18($s2) /* 07F47C 7F04A94C 922F0005 */ lbu $t7, 5($s1) /* 07F480 7F04A950 448F5000 */ mtc1 $t7, $f10 /* 07F484 7F04A954 05E10004 */ bgez $t7, .L7F04A968 /* 07F488 7F04A958 468054A0 */ cvt.s.w $f18, $f10 /* 07F48C 7F04A95C 44812000 */ mtc1 $at, $f4 /* 07F490 7F04A960 00000000 */ nop /* 07F494 7F04A964 46049480 */ add.s $f18, $f18, $f4 .L7F04A968: /* 07F498 7F04A968 C606004C */ lwc1 $f6, 0x4c($s0) /* 07F49C 7F04A96C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07F4A0 7F04A970 46103200 */ add.s $f8, $f6, $f16 /* 07F4A4 7F04A974 46089282 */ mul.s $f10, $f18, $f8 /* 07F4A8 7F04A978 00000000 */ nop /* 07F4AC 7F04A97C 46005102 */ mul.s $f4, $f10, $f0 /* 07F4B0 7F04A980 4600218D */ trunc.w.s $f6, $f4 /* 07F4B4 7F04A984 44183000 */ mfc1 $t8, $f6 /* 07F4B8 7F04A988 00000000 */ nop /* 07F4BC 7F04A98C A658001A */ sh $t8, 0x1a($s2) /* 07F4C0 7F04A990 92280004 */ lbu $t0, 4($s1) /* 07F4C4 7F04A994 44889000 */ mtc1 $t0, $f18 /* 07F4C8 7F04A998 05010004 */ bgez $t0, .L7F04A9AC /* 07F4CC 7F04A99C 46809220 */ cvt.s.w $f8, $f18 /* 07F4D0 7F04A9A0 44815000 */ mtc1 $at, $f10 /* 07F4D4 7F04A9A4 00000000 */ nop /* 07F4D8 7F04A9A8 460A4200 */ add.s $f8, $f8, $f10 .L7F04A9AC: /* 07F4DC 7F04A9AC C6040038 */ lwc1 $f4, 0x38($s0) /* 07F4E0 7F04A9B0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07F4E4 7F04A9B4 46162181 */ sub.s $f6, $f4, $f22 /* 07F4E8 7F04A9B8 46064482 */ mul.s $f18, $f8, $f6 /* 07F4EC 7F04A9BC 00000000 */ nop /* 07F4F0 7F04A9C0 46009282 */ mul.s $f10, $f18, $f0 /* 07F4F4 7F04A9C4 4600510D */ trunc.w.s $f4, $f10 /* 07F4F8 7F04A9C8 44092000 */ mfc1 $t1, $f4 /* 07F4FC 7F04A9CC 00000000 */ nop /* 07F500 7F04A9D0 A6490028 */ sh $t1, 0x28($s2) /* 07F504 7F04A9D4 922C0005 */ lbu $t4, 5($s1) /* 07F508 7F04A9D8 448C4000 */ mtc1 $t4, $f8 /* 07F50C 7F04A9DC 05810004 */ bgez $t4, .L7F04A9F0 /* 07F510 7F04A9E0 468041A0 */ cvt.s.w $f6, $f8 /* 07F514 7F04A9E4 44819000 */ mtc1 $at, $f18 /* 07F518 7F04A9E8 00000000 */ nop /* 07F51C 7F04A9EC 46123180 */ add.s $f6, $f6, $f18 .L7F04A9F0: /* 07F520 7F04A9F0 C60A004C */ lwc1 $f10, 0x4c($s0) /* 07F524 7F04A9F4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07F528 7F04A9F8 46185101 */ sub.s $f4, $f10, $f24 /* 07F52C 7F04A9FC 46043202 */ mul.s $f8, $f6, $f4 /* 07F530 7F04AA00 00000000 */ nop /* 07F534 7F04AA04 46004482 */ mul.s $f18, $f8, $f0 /* 07F538 7F04AA08 4600928D */ trunc.w.s $f10, $f18 /* 07F53C 7F04AA0C 440B5000 */ mfc1 $t3, $f10 /* 07F540 7F04AA10 00000000 */ nop /* 07F544 7F04AA14 A64B002A */ sh $t3, 0x2a($s2) /* 07F548 7F04AA18 922D0004 */ lbu $t5, 4($s1) /* 07F54C 7F04AA1C 448D3000 */ mtc1 $t5, $f6 /* 07F550 7F04AA20 05A10004 */ bgez $t5, .L7F04AA34 /* 07F554 7F04AA24 46803120 */ cvt.s.w $f4, $f6 /* 07F558 7F04AA28 44814000 */ mtc1 $at, $f8 /* 07F55C 7F04AA2C 00000000 */ nop /* 07F560 7F04AA30 46082100 */ add.s $f4, $f4, $f8 .L7F04AA34: /* 07F564 7F04AA34 C6120038 */ lwc1 $f18, 0x38($s0) /* 07F568 7F04AA38 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07F56C 7F04AA3C 460E9280 */ add.s $f10, $f18, $f14 /* 07F570 7F04AA40 460A2182 */ mul.s $f6, $f4, $f10 /* 07F574 7F04AA44 00000000 */ nop /* 07F578 7F04AA48 46003202 */ mul.s $f8, $f6, $f0 /* 07F57C 7F04AA4C 4600448D */ trunc.w.s $f18, $f8 /* 07F580 7F04AA50 440E9000 */ mfc1 $t6, $f18 /* 07F584 7F04AA54 00000000 */ nop /* 07F588 7F04AA58 A64E0038 */ sh $t6, 0x38($s2) /* 07F58C 7F04AA5C 92380005 */ lbu $t8, 5($s1) /* 07F590 7F04AA60 44982000 */ mtc1 $t8, $f4 /* 07F594 7F04AA64 07010004 */ bgez $t8, .L7F04AA78 /* 07F598 7F04AA68 468022A0 */ cvt.s.w $f10, $f4 /* 07F59C 7F04AA6C 44813000 */ mtc1 $at, $f6 /* 07F5A0 7F04AA70 00000000 */ nop /* 07F5A4 7F04AA74 46065280 */ add.s $f10, $f10, $f6 .L7F04AA78: /* 07F5A8 7F04AA78 C608004C */ lwc1 $f8, 0x4c($s0) /* 07F5AC 7F04AA7C 46104481 */ sub.s $f18, $f8, $f16 /* 07F5B0 7F04AA80 46125102 */ mul.s $f4, $f10, $f18 /* 07F5B4 7F04AA84 00000000 */ nop /* 07F5B8 7F04AA88 46002182 */ mul.s $f6, $f4, $f0 /* 07F5BC 7F04AA8C 4600320D */ trunc.w.s $f8, $f6 /* 07F5C0 7F04AA90 44194000 */ mfc1 $t9, $f8 /* 07F5C4 7F04AA94 00000000 */ nop /* 07F5C8 7F04AA98 A659003A */ sh $t9, 0x3a($s2) .L7F04AA9C: /* 07F5CC 7F04AA9C 92020060 */ lbu $v0, 0x60($s0) /* 07F5D0 7F04AAA0 240C0002 */ li $t4, 2 /* 07F5D4 7F04AAA4 3C0DB700 */ lui $t5, 0xb700 /* 07F5D8 7F04AAA8 A242003C */ sb $v0, 0x3c($s2) /* 07F5DC 7F04AAAC A242002C */ sb $v0, 0x2c($s2) /* 07F5E0 7F04AAB0 A242001C */ sb $v0, 0x1c($s2) /* 07F5E4 7F04AAB4 A242000C */ sb $v0, 0xc($s2) /* 07F5E8 7F04AAB8 92020063 */ lbu $v0, 0x63($s0) /* 07F5EC 7F04AABC 240F2000 */ li $t7, 8192 /* 07F5F0 7F04AAC0 27A400BC */ addiu $a0, $sp, 0xbc /* 07F5F4 7F04AAC4 A242003D */ sb $v0, 0x3d($s2) /* 07F5F8 7F04AAC8 A242002D */ sb $v0, 0x2d($s2) /* 07F5FC 7F04AACC A242001D */ sb $v0, 0x1d($s2) /* 07F600 7F04AAD0 A242000D */ sb $v0, 0xd($s2) /* 07F604 7F04AAD4 92030066 */ lbu $v1, 0x66($s0) /* 07F608 7F04AAD8 A243003E */ sb $v1, 0x3e($s2) /* 07F60C 7F04AADC A243002E */ sb $v1, 0x2e($s2) /* 07F610 7F04AAE0 A243001E */ sb $v1, 0x1e($s2) /* 07F614 7F04AAE4 A243000E */ sb $v1, 0xe($s2) /* 07F618 7F04AAE8 92020069 */ lbu $v0, 0x69($s0) /* 07F61C 7F04AAEC A242003F */ sb $v0, 0x3f($s2) /* 07F620 7F04AAF0 A242002F */ sb $v0, 0x2f($s2) /* 07F624 7F04AAF4 A242001F */ sb $v0, 0x1f($s2) /* 07F628 7F04AAF8 A242000F */ sb $v0, 0xf($s2) /* 07F62C 7F04AAFC 92090069 */ lbu $t1, 0x69($s0) /* 07F630 7F04AB00 292100FF */ slti $at, $t1, 0xff /* 07F634 7F04AB04 50200003 */ beql $at, $zero, .L7F04AB14 /* 07F638 7F04AB08 8FAA00BC */ lw $t2, 0xbc($sp) /* 07F63C 7F04AB0C AFAC00C4 */ sw $t4, 0xc4($sp) /* 07F640 7F04AB10 8FAA00BC */ lw $t2, 0xbc($sp) .L7F04AB14: /* 07F644 7F04AB14 240E0002 */ li $t6, 2 /* 07F648 7F04AB18 02202825 */ move $a1, $s1 /* 07F64C 7F04AB1C 254B0008 */ addiu $t3, $t2, 8 /* 07F650 7F04AB20 AFAB00BC */ sw $t3, 0xbc($sp) /* 07F654 7F04AB24 AD4F0004 */ sw $t7, 4($t2) /* 07F658 7F04AB28 AD4D0000 */ sw $t5, ($t2) /* 07F65C 7F04AB2C AFAE0010 */ sw $t6, 0x10($sp) /* 07F660 7F04AB30 8FA700C0 */ lw $a3, 0xc0($sp) /* 07F664 7F04AB34 0FC1DB5A */ jal texSelect /* 07F668 7F04AB38 8FA600C4 */ lw $a2, 0xc4($sp) /* 07F66C 7F04AB3C 8FB000BC */ lw $s0, 0xbc($sp) /* 07F670 7F04AB40 3C190102 */ lui $t9, (0x01020040 >> 16) # lui $t9, 0x102 /* 07F674 7F04AB44 37390040 */ ori $t9, (0x01020040 & 0xFFFF) # ori $t9, $t9, 0x40 /* 07F678 7F04AB48 26080008 */ addiu $t0, $s0, 8 /* 07F67C 7F04AB4C AFA800BC */ sw $t0, 0xbc($sp) /* 07F680 7F04AB50 AE190000 */ sw $t9, ($s0) /* 07F684 7F04AB54 8FA900B0 */ lw $t1, 0xb0($sp) /* 07F688 7F04AB58 0C003A2C */ jal osVirtualToPhysical /* 07F68C 7F04AB5C 8D24000C */ lw $a0, 0xc($t1) /* 07F690 7F04AB60 AE020004 */ sw $v0, 4($s0) /* 07F694 7F04AB64 8FB100BC */ lw $s1, 0xbc($sp) /* 07F698 7F04AB68 3C0BBC00 */ lui $t3, (0xBC001006 >> 16) # lui $t3, 0xbc00 /* 07F69C 7F04AB6C 356B1006 */ ori $t3, (0xBC001006 & 0xFFFF) # ori $t3, $t3, 0x1006 /* 07F6A0 7F04AB70 262A0008 */ addiu $t2, $s1, 8 /* 07F6A4 7F04AB74 AFAA00BC */ sw $t2, 0xbc($sp) /* 07F6A8 7F04AB78 02402025 */ move $a0, $s2 /* 07F6AC 7F04AB7C 0C003A2C */ jal osVirtualToPhysical /* 07F6B0 7F04AB80 AE2B0000 */ sw $t3, ($s1) /* 07F6B4 7F04AB84 AE220004 */ sw $v0, 4($s1) /* 07F6B8 7F04AB88 8FAD00BC */ lw $t5, 0xbc($sp) /* 07F6BC 7F04AB8C 3C0E0430 */ lui $t6, (0x04300040 >> 16) # lui $t6, 0x430 /* 07F6C0 7F04AB90 35CE0040 */ ori $t6, (0x04300040 & 0xFFFF) # ori $t6, $t6, 0x40 /* 07F6C4 7F04AB94 25AF0008 */ addiu $t7, $t5, 8 /* 07F6C8 7F04AB98 AFAF00BC */ sw $t7, 0xbc($sp) /* 07F6CC 7F04AB9C 3C180400 */ lui $t8, 0x400 /* 07F6D0 7F04ABA0 ADB80004 */ sw $t8, 4($t5) /* 07F6D4 7F04ABA4 ADAE0000 */ sw $t6, ($t5) /* 07F6D8 7F04ABA8 8FA800BC */ lw $t0, 0xbc($sp) /* 07F6DC 7F04ABAC 3C09B100 */ lui $t1, (0xB1000032 >> 16) # lui $t1, 0xb100 /* 07F6E0 7F04ABB0 35290032 */ ori $t1, (0xB1000032 & 0xFFFF) # ori $t1, $t1, 0x32 /* 07F6E4 7F04ABB4 25190008 */ addiu $t9, $t0, 8 /* 07F6E8 7F04ABB8 AFB900BC */ sw $t9, 0xbc($sp) /* 07F6EC 7F04ABBC 240C2010 */ li $t4, 8208 /* 07F6F0 7F04ABC0 AD0C0004 */ sw $t4, 4($t0) /* 07F6F4 7F04ABC4 AD090000 */ sw $t1, ($t0) /* 07F6F8 7F04ABC8 8FAA00BC */ lw $t2, 0xbc($sp) /* 07F6FC 7F04ABCC 3C0DB800 */ lui $t5, 0xb800 /* 07F700 7F04ABD0 3C0F0601 */ lui $t7, 0x601 /* 07F704 7F04ABD4 254B0008 */ addiu $t3, $t2, 8 /* 07F708 7F04ABD8 AFAB00BC */ sw $t3, 0xbc($sp) /* 07F70C 7F04ABDC AD400004 */ sw $zero, 4($t2) /* 07F710 7F04ABE0 AD4D0000 */ sw $t5, ($t2) /* 07F714 7F04ABE4 8FA600A8 */ lw $a2, 0xa8($sp) /* 07F718 7F04ABE8 ACCF0000 */ sw $t7, ($a2) /* 07F71C 7F04ABEC 8FAE00BC */ lw $t6, 0xbc($sp) /* 07F720 7F04ABF0 ACCE0004 */ sw $t6, 4($a2) .L7F04ABF4: /* 07F724 7F04ABF4 8FBF004C */ lw $ra, 0x4c($sp) .L7F04ABF8: /* 07F728 7F04ABF8 8FA200BC */ lw $v0, 0xbc($sp) /* 07F72C 7F04ABFC D7B40020 */ ldc1 $f20, 0x20($sp) /* 07F730 7F04AC00 D7B60028 */ ldc1 $f22, 0x28($sp) /* 07F734 7F04AC04 D7B80030 */ ldc1 $f24, 0x30($sp) /* 07F738 7F04AC08 D7BA0038 */ ldc1 $f26, 0x38($sp) /* 07F73C 7F04AC0C 8FB00040 */ lw $s0, 0x40($sp) /* 07F740 7F04AC10 8FB10044 */ lw $s1, 0x44($sp) /* 07F744 7F04AC14 8FB20048 */ lw $s2, 0x48($sp) /* 07F748 7F04AC18 03E00008 */ jr $ra /* 07F74C 7F04AC1C 27BD00B0 */ addiu $sp, $sp, 0xb0 ) #endif #ifdef VERSION_EU GLOBAL_ASM( .late_rodata glabel D_80052C68 .word 0x40c90fdb /*6.2831855*/ /*D:80052C6C*/ glabel jpt_80052C6C .word command00_reset_scroll_shift .word command01_horizontal_scroll .word command02_vertical_scroll .word command03_horizontal_pos .word command04_vertical_pos .word command05_zoomx .word command06_zoomy .word command07_use_image_from_global_monitor_table .word command08_halt_processing_for_time .word command09_jump .word command0A_jump_conditional .word command0B_restart .word command0C_break .word command0D_colour_transition .word command0E_set_rotation .word command0F_rotate glabel D_80052CAC .word 0x3fc90fdb /*1.5707964*/ glabel D_80052CB0 .word 0x3fb50481 /*1.4141999*/ glabel D_80052CB4 .word 0x3f59999a /*0.85000002*/ glabel D_80052CB8 .word 0x3e19999a /*0.15000001*/ glabel D_80052CBC .word 0x3e19999a /*0.15000001*/ glabel D_80052CC0 .word 0x3f666666 /*0.89999998*/ .text glabel process_monitor_animation_microcode /* 07EA78 7F049F48 27BDFF50 */ addiu $sp, $sp, -0xb0 /* 07EA7C 7F049F4C AFB10044 */ sw $s1, 0x44($sp) /* 07EA80 7F049F50 AFB00040 */ sw $s0, 0x40($sp) /* 07EA84 7F049F54 00C08025 */ move $s0, $a2 /* 07EA88 7F049F58 00A08825 */ move $s1, $a1 /* 07EA8C 7F049F5C AFBF004C */ sw $ra, 0x4c($sp) /* 07EA90 7F049F60 AFB20048 */ sw $s2, 0x48($sp) /* 07EA94 7F049F64 F7BA0038 */ sdc1 $f26, 0x38($sp) /* 07EA98 7F049F68 F7B80030 */ sdc1 $f24, 0x30($sp) /* 07EA9C 7F049F6C F7B60028 */ sdc1 $f22, 0x28($sp) /* 07EAA0 7F049F70 F7B40020 */ sdc1 $f20, 0x20($sp) /* 07EAA4 7F049F74 AFA400B0 */ sw $a0, 0xb0($sp) /* 07EAA8 7F049F78 10A0031E */ beqz $a1, .L7F04ABF4 /* 07EAAC 7F049F7C AFA700BC */ sw $a3, 0xbc($sp) /* 07EAB0 7F049F80 94AE0000 */ lhu $t6, ($a1) /* 07EAB4 7F049F84 24010018 */ li $at, 24 /* 07EAB8 7F049F88 31CF00FF */ andi $t7, $t6, 0xff /* 07EABC 7F049F8C 55E1031A */ bnel $t7, $at, .L7F04ABF8 /* 07EAC0 7F049F90 8FBF004C */ lw $ra, 0x4c($sp) /* 07EAC4 7F049F94 0FC2F5B1 */ jal dynAllocate7F0BD6C4 /* 07EAC8 7F049F98 24040004 */ li $a0, 4 /* 07EACC 7F049F9C 8FB800BC */ lw $t8, 0xbc($sp) /* 07EAD0 7F049FA0 00409025 */ move $s2, $v0 /* 07EAD4 7F049FA4 8FA400B0 */ lw $a0, 0xb0($sp) /* 07EAD8 7F049FA8 27190008 */ addiu $t9, $t8, 8 /* 07EADC 7F049FAC AFB900BC */ sw $t9, 0xbc($sp) /* 07EAE0 7F049FB0 AFB800A8 */ sw $t8, 0xa8($sp) /* 07EAE4 7F049FB4 8E280004 */ lw $t0, 4($s1) /* 07EAE8 7F049FB8 02202825 */ move $a1, $s1 /* 07EAEC 7F049FBC 0FC1B1E7 */ jal modelGetNodeRwData /* 07EAF0 7F049FC0 AFA800A4 */ sw $t0, 0xa4($sp) /* 07EAF4 7F049FC4 3C018005 */ lui $at, %hi(D_80052C68) /* 07EAF8 7F049FC8 C43A2C68 */ lwc1 $f26, %lo(D_80052C68)($at) /* 07EAFC 7F049FCC 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07EB00 7F049FD0 4481C000 */ mtc1 $at, $f24 /* 07EB04 7F049FD4 3C013A80 */ li $at, 0x3A800000 # 0.000977 /* 07EB08 7F049FD8 4481B000 */ mtc1 $at, $f22 /* 07EB0C 7F049FDC 3C014780 */ li $at, 0x47800000 # 65536.000000 /* 07EB10 7F049FE0 44811000 */ mtc1 $at, $f2 /* 07EB14 7F049FE4 4480A000 */ mtc1 $zero, $f20 /* 07EB18 7F049FE8 AFA200A0 */ sw $v0, 0xa0($sp) /* 07EB1C 7F049FEC 00008825 */ move $s1, $zero /* 07EB20 7F049FF0 96020004 */ lhu $v0, 4($s0) .L7F049FF4: /* 07EB24 7F049FF4 8E090000 */ lw $t1, ($s0) /* 07EB28 7F049FF8 00025080 */ sll $t2, $v0, 2 /* 07EB2C 7F049FFC 012A1821 */ addu $v1, $t1, $t2 /* 07EB30 7F04A000 8C6B0000 */ lw $t3, ($v1) /* 07EB34 7F04A004 2D610010 */ sltiu $at, $t3, 0x10 /* 07EB38 7F04A008 10200117 */ beqz $at, .L7F04A468 /* 07EB3C 7F04A00C 000B5880 */ sll $t3, $t3, 2 /* 07EB40 7F04A010 3C018005 */ lui $at, %hi(jpt_80052C6C) /* 07EB44 7F04A014 002B0821 */ addu $at, $at, $t3 /* 07EB48 7F04A018 8C2B2C6C */ lw $t3, %lo(jpt_80052C6C)($at) /* 07EB4C 7F04A01C 01600008 */ jr $t3 /* 07EB50 7F04A020 00000000 */ nop command00_reset_scroll_shift: /* 07EB54 7F04A024 244C0001 */ addiu $t4, $v0, 1 /* 07EB58 7F04A028 E6140040 */ swc1 $f20, 0x40($s0) /* 07EB5C 7F04A02C E6140054 */ swc1 $f20, 0x54($s0) /* 07EB60 7F04A030 1000010D */ b .L7F04A468 /* 07EB64 7F04A034 A60C0004 */ sh $t4, 4($s0) command01_horizontal_scroll: /* 07EB68 7F04A038 E614003C */ swc1 $f20, 0x3c($s0) /* 07EB6C 7F04A03C 8C6D0008 */ lw $t5, 8($v1) /* 07EB70 7F04A040 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07EB74 7F04A044 448D2000 */ mtc1 $t5, $f4 /* 07EB78 7F04A048 05A10004 */ bgez $t5, .L7F04A05C /* 07EB7C 7F04A04C 468021A0 */ cvt.s.w $f6, $f4 /* 07EB80 7F04A050 44814000 */ mtc1 $at, $f8 /* 07EB84 7F04A054 00000000 */ nop /* 07EB88 7F04A058 46083180 */ add.s $f6, $f6, $f8 .L7F04A05C: /* 07EB8C 7F04A05C 4606C283 */ div.s $f10, $f24, $f6 /* 07EB90 7F04A060 C6000038 */ lwc1 $f0, 0x38($s0) /* 07EB94 7F04A064 244F0003 */ addiu $t7, $v0, 3 /* 07EB98 7F04A068 E6000044 */ swc1 $f0, 0x44($s0) /* 07EB9C 7F04A06C E60A0040 */ swc1 $f10, 0x40($s0) /* 07EBA0 7F04A070 8C6E0004 */ lw $t6, 4($v1) /* 07EBA4 7F04A074 A60F0004 */ sh $t7, 4($s0) /* 07EBA8 7F04A078 448E9000 */ mtc1 $t6, $f18 /* 07EBAC 7F04A07C 00000000 */ nop /* 07EBB0 7F04A080 46809120 */ cvt.s.w $f4, $f18 /* 07EBB4 7F04A084 46162202 */ mul.s $f8, $f4, $f22 /* 07EBB8 7F04A088 46080180 */ add.s $f6, $f0, $f8 /* 07EBBC 7F04A08C 100000F6 */ b .L7F04A468 /* 07EBC0 7F04A090 E6060048 */ swc1 $f6, 0x48($s0) command02_vertical_scroll: /* 07EBC4 7F04A094 E6140050 */ swc1 $f20, 0x50($s0) /* 07EBC8 7F04A098 8C780008 */ lw $t8, 8($v1) /* 07EBCC 7F04A09C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07EBD0 7F04A0A0 44985000 */ mtc1 $t8, $f10 /* 07EBD4 7F04A0A4 07010004 */ bgez $t8, .L7F04A0B8 /* 07EBD8 7F04A0A8 468054A0 */ cvt.s.w $f18, $f10 /* 07EBDC 7F04A0AC 44812000 */ mtc1 $at, $f4 /* 07EBE0 7F04A0B0 00000000 */ nop /* 07EBE4 7F04A0B4 46049480 */ add.s $f18, $f18, $f4 .L7F04A0B8: /* 07EBE8 7F04A0B8 4612C203 */ div.s $f8, $f24, $f18 /* 07EBEC 7F04A0BC C600004C */ lwc1 $f0, 0x4c($s0) /* 07EBF0 7F04A0C0 24480003 */ addiu $t0, $v0, 3 /* 07EBF4 7F04A0C4 E6000058 */ swc1 $f0, 0x58($s0) /* 07EBF8 7F04A0C8 E6080054 */ swc1 $f8, 0x54($s0) /* 07EBFC 7F04A0CC 8C790004 */ lw $t9, 4($v1) /* 07EC00 7F04A0D0 A6080004 */ sh $t0, 4($s0) /* 07EC04 7F04A0D4 44993000 */ mtc1 $t9, $f6 /* 07EC08 7F04A0D8 00000000 */ nop /* 07EC0C 7F04A0DC 468032A0 */ cvt.s.w $f10, $f6 /* 07EC10 7F04A0E0 46165102 */ mul.s $f4, $f10, $f22 /* 07EC14 7F04A0E4 46040480 */ add.s $f18, $f0, $f4 /* 07EC18 7F04A0E8 100000DF */ b .L7F04A468 /* 07EC1C 7F04A0EC E612005C */ swc1 $f18, 0x5c($s0) command03_horizontal_pos: /* 07EC20 7F04A0F0 E614003C */ swc1 $f20, 0x3c($s0) /* 07EC24 7F04A0F4 8C690008 */ lw $t1, 8($v1) /* 07EC28 7F04A0F8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07EC2C 7F04A0FC 44894000 */ mtc1 $t1, $f8 /* 07EC30 7F04A100 05210004 */ bgez $t1, .L7F04A114 /* 07EC34 7F04A104 468041A0 */ cvt.s.w $f6, $f8 /* 07EC38 7F04A108 44815000 */ mtc1 $at, $f10 /* 07EC3C 7F04A10C 00000000 */ nop /* 07EC40 7F04A110 460A3180 */ add.s $f6, $f6, $f10 .L7F04A114: /* 07EC44 7F04A114 4606C103 */ div.s $f4, $f24, $f6 /* 07EC48 7F04A118 C6120038 */ lwc1 $f18, 0x38($s0) /* 07EC4C 7F04A11C 244B0003 */ addiu $t3, $v0, 3 /* 07EC50 7F04A120 E6120044 */ swc1 $f18, 0x44($s0) /* 07EC54 7F04A124 E6040040 */ swc1 $f4, 0x40($s0) /* 07EC58 7F04A128 8C6A0004 */ lw $t2, 4($v1) /* 07EC5C 7F04A12C A60B0004 */ sh $t3, 4($s0) /* 07EC60 7F04A130 448A4000 */ mtc1 $t2, $f8 /* 07EC64 7F04A134 00000000 */ nop /* 07EC68 7F04A138 468042A0 */ cvt.s.w $f10, $f8 /* 07EC6C 7F04A13C 46165182 */ mul.s $f6, $f10, $f22 /* 07EC70 7F04A140 100000C9 */ b .L7F04A468 /* 07EC74 7F04A144 E6060048 */ swc1 $f6, 0x48($s0) command04_vertical_pos: /* 07EC78 7F04A148 E6140050 */ swc1 $f20, 0x50($s0) /* 07EC7C 7F04A14C 8C6C0008 */ lw $t4, 8($v1) /* 07EC80 7F04A150 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07EC84 7F04A154 448C2000 */ mtc1 $t4, $f4 /* 07EC88 7F04A158 05810004 */ bgez $t4, .L7F04A16C /* 07EC8C 7F04A15C 468024A0 */ cvt.s.w $f18, $f4 /* 07EC90 7F04A160 44814000 */ mtc1 $at, $f8 /* 07EC94 7F04A164 00000000 */ nop /* 07EC98 7F04A168 46089480 */ add.s $f18, $f18, $f8 .L7F04A16C: /* 07EC9C 7F04A16C 4612C283 */ div.s $f10, $f24, $f18 /* 07ECA0 7F04A170 C606004C */ lwc1 $f6, 0x4c($s0) /* 07ECA4 7F04A174 244E0003 */ addiu $t6, $v0, 3 /* 07ECA8 7F04A178 E6060058 */ swc1 $f6, 0x58($s0) /* 07ECAC 7F04A17C E60A0054 */ swc1 $f10, 0x54($s0) /* 07ECB0 7F04A180 8C6D0004 */ lw $t5, 4($v1) /* 07ECB4 7F04A184 A60E0004 */ sh $t6, 4($s0) /* 07ECB8 7F04A188 448D2000 */ mtc1 $t5, $f4 /* 07ECBC 7F04A18C 00000000 */ nop /* 07ECC0 7F04A190 46802220 */ cvt.s.w $f8, $f4 /* 07ECC4 7F04A194 46164482 */ mul.s $f18, $f8, $f22 /* 07ECC8 7F04A198 100000B3 */ b .L7F04A468 /* 07ECCC 7F04A19C E612005C */ swc1 $f18, 0x5c($s0) command05_zoomx: /* 07ECD0 7F04A1A0 E6140014 */ swc1 $f20, 0x14($s0) /* 07ECD4 7F04A1A4 8C6F0008 */ lw $t7, 8($v1) /* 07ECD8 7F04A1A8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07ECDC 7F04A1AC 448F5000 */ mtc1 $t7, $f10 /* 07ECE0 7F04A1B0 05E10004 */ bgez $t7, .L7F04A1C4 /* 07ECE4 7F04A1B4 468051A0 */ cvt.s.w $f6, $f10 /* 07ECE8 7F04A1B8 44812000 */ mtc1 $at, $f4 /* 07ECEC 7F04A1BC 00000000 */ nop /* 07ECF0 7F04A1C0 46043180 */ add.s $f6, $f6, $f4 .L7F04A1C4: /* 07ECF4 7F04A1C4 4606C203 */ div.s $f8, $f24, $f6 /* 07ECF8 7F04A1C8 C6120010 */ lwc1 $f18, 0x10($s0) /* 07ECFC 7F04A1CC 24590003 */ addiu $t9, $v0, 3 /* 07ED00 7F04A1D0 E612001C */ swc1 $f18, 0x1c($s0) /* 07ED04 7F04A1D4 E6080018 */ swc1 $f8, 0x18($s0) /* 07ED08 7F04A1D8 8C780004 */ lw $t8, 4($v1) /* 07ED0C 7F04A1DC A6190004 */ sh $t9, 4($s0) /* 07ED10 7F04A1E0 44985000 */ mtc1 $t8, $f10 /* 07ED14 7F04A1E4 00000000 */ nop /* 07ED18 7F04A1E8 46805120 */ cvt.s.w $f4, $f10 /* 07ED1C 7F04A1EC 46162182 */ mul.s $f6, $f4, $f22 /* 07ED20 7F04A1F0 1000009D */ b .L7F04A468 /* 07ED24 7F04A1F4 E6060020 */ swc1 $f6, 0x20($s0) command06_zoomy: /* 07ED28 7F04A1F8 E6140028 */ swc1 $f20, 0x28($s0) /* 07ED2C 7F04A1FC 8C680008 */ lw $t0, 8($v1) /* 07ED30 7F04A200 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07ED34 7F04A204 44884000 */ mtc1 $t0, $f8 /* 07ED38 7F04A208 05010004 */ bgez $t0, .L7F04A21C /* 07ED3C 7F04A20C 468044A0 */ cvt.s.w $f18, $f8 /* 07ED40 7F04A210 44815000 */ mtc1 $at, $f10 /* 07ED44 7F04A214 00000000 */ nop /* 07ED48 7F04A218 460A9480 */ add.s $f18, $f18, $f10 .L7F04A21C: /* 07ED4C 7F04A21C 4612C103 */ div.s $f4, $f24, $f18 /* 07ED50 7F04A220 C6060024 */ lwc1 $f6, 0x24($s0) /* 07ED54 7F04A224 244A0003 */ addiu $t2, $v0, 3 /* 07ED58 7F04A228 E6060030 */ swc1 $f6, 0x30($s0) /* 07ED5C 7F04A22C E604002C */ swc1 $f4, 0x2c($s0) /* 07ED60 7F04A230 8C690004 */ lw $t1, 4($v1) /* 07ED64 7F04A234 A60A0004 */ sh $t2, 4($s0) /* 07ED68 7F04A238 44894000 */ mtc1 $t1, $f8 /* 07ED6C 7F04A23C 00000000 */ nop /* 07ED70 7F04A240 468042A0 */ cvt.s.w $f10, $f8 /* 07ED74 7F04A244 46165482 */ mul.s $f18, $f10, $f22 /* 07ED78 7F04A248 10000087 */ b .L7F04A468 /* 07ED7C 7F04A24C E6120034 */ swc1 $f18, 0x34($s0) command07_use_image_from_global_monitor_table: /* 07ED80 7F04A250 02002025 */ move $a0, $s0 /* 07ED84 7F04A254 0FC127D0 */ jal save_img_index_to_obj_ani_slot /* 07ED88 7F04A258 8C650004 */ lw $a1, 4($v1) /* 07ED8C 7F04A25C 960B0004 */ lhu $t3, 4($s0) /* 07ED90 7F04A260 3C014780 */ li $at, 0x47800000 # 65536.000000 /* 07ED94 7F04A264 44811000 */ mtc1 $at, $f2 /* 07ED98 7F04A268 256C0002 */ addiu $t4, $t3, 2 /* 07ED9C 7F04A26C 1000007E */ b .L7F04A468 /* 07EDA0 7F04A270 A60C0004 */ sh $t4, 4($s0) command08_halt_processing_for_time: /* 07EDA4 7F04A274 86020006 */ lh $v0, 6($s0) /* 07EDA8 7F04A278 3C0D8005 */ lui $t5, %hi(g_ClockTimer) /* 07EDAC 7F04A27C 0442000E */ bltzl $v0, .L7F04A2B8 /* 07EDB0 7F04A280 8C680004 */ lw $t0, 4($v1) /* 07EDB4 7F04A284 8DAD8374 */ lw $t5, %lo(g_ClockTimer)($t5) /* 07EDB8 7F04A288 004D7023 */ subu $t6, $v0, $t5 /* 07EDBC 7F04A28C A60E0006 */ sh $t6, 6($s0) /* 07EDC0 7F04A290 860F0006 */ lh $t7, 6($s0) /* 07EDC4 7F04A294 05E20004 */ bltzl $t7, .L7F04A2A8 /* 07EDC8 7F04A298 96180004 */ lhu $t8, 4($s0) /* 07EDCC 7F04A29C 10000072 */ b .L7F04A468 /* 07EDD0 7F04A2A0 24110001 */ li $s1, 1 /* 07EDD4 7F04A2A4 96180004 */ lhu $t8, 4($s0) .L7F04A2A8: /* 07EDD8 7F04A2A8 27190002 */ addiu $t9, $t8, 2 /* 07EDDC 7F04A2AC 1000006E */ b .L7F04A468 /* 07EDE0 7F04A2B0 A6190004 */ sh $t9, 4($s0) /* 07EDE4 7F04A2B4 8C680004 */ lw $t0, 4($v1) .L7F04A2B8: /* 07EDE8 7F04A2B8 24110001 */ li $s1, 1 /* 07EDEC 7F04A2BC 1000006A */ b .L7F04A468 /* 07EDF0 7F04A2C0 A6080006 */ sh $t0, 6($s0) command09_jump: /* 07EDF4 7F04A2C4 02002025 */ move $a0, $s0 /* 07EDF8 7F04A2C8 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot /* 07EDFC 7F04A2CC 8C650004 */ lw $a1, 4($v1) /* 07EE00 7F04A2D0 3C014780 */ li $at, 0x47800000 # 65536.000000 /* 07EE04 7F04A2D4 44811000 */ mtc1 $at, $f2 /* 07EE08 7F04A2D8 10000063 */ b .L7F04A468 /* 07EE0C 7F04A2DC 00000000 */ nop command0A_jump_conditional: /* 07EE10 7F04A2E0 0C002914 */ jal randomGetNext /* 07EE14 7F04A2E4 AFA30094 */ sw $v1, 0x94($sp) /* 07EE18 7F04A2E8 8FA30094 */ lw $v1, 0x94($sp) /* 07EE1C 7F04A2EC 00024C02 */ srl $t1, $v0, 0x10 /* 07EE20 7F04A2F0 02002025 */ move $a0, $s0 /* 07EE24 7F04A2F4 8C6A0008 */ lw $t2, 8($v1) /* 07EE28 7F04A2F8 012A082B */ sltu $at, $t1, $t2 /* 07EE2C 7F04A2FC 50200008 */ beql $at, $zero, .L7F04A320 /* 07EE30 7F04A300 960B0004 */ lhu $t3, 4($s0) /* 07EE34 7F04A304 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot /* 07EE38 7F04A308 8C650004 */ lw $a1, 4($v1) /* 07EE3C 7F04A30C 3C014780 */ li $at, 0x47800000 # 65536.000000 /* 07EE40 7F04A310 44811000 */ mtc1 $at, $f2 /* 07EE44 7F04A314 10000054 */ b .L7F04A468 /* 07EE48 7F04A318 00000000 */ nop /* 07EE4C 7F04A31C 960B0004 */ lhu $t3, 4($s0) .L7F04A320: /* 07EE50 7F04A320 3C014780 */ li $at, 0x47800000 # 65536.000000 /* 07EE54 7F04A324 44811000 */ mtc1 $at, $f2 /* 07EE58 7F04A328 256C0003 */ addiu $t4, $t3, 3 /* 07EE5C 7F04A32C A60C0004 */ sh $t4, 4($s0) /* 07EE60 7F04A330 1000004D */ b .L7F04A468 /* 07EE64 7F04A334 00000000 */ nop command0B_restart: /* 07EE68 7F04A338 1000004B */ b .L7F04A468 /* 07EE6C 7F04A33C A6000004 */ sh $zero, 4($s0) command0C_break: /* 07EE70 7F04A340 10000049 */ b .L7F04A468 /* 07EE74 7F04A344 24110001 */ li $s1, 1 command0D_colour_transition: /* 07EE78 7F04A348 E614006C */ swc1 $f20, 0x6c($s0) /* 07EE7C 7F04A34C 8C6D0008 */ lw $t5, 8($v1) /* 07EE80 7F04A350 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07EE84 7F04A354 448D2000 */ mtc1 $t5, $f4 /* 07EE88 7F04A358 05A10004 */ bgez $t5, .L7F04A36C /* 07EE8C 7F04A35C 468021A0 */ cvt.s.w $f6, $f4 /* 07EE90 7F04A360 44814000 */ mtc1 $at, $f8 /* 07EE94 7F04A364 00000000 */ nop /* 07EE98 7F04A368 46083180 */ add.s $f6, $f6, $f8 .L7F04A36C: /* 07EE9C 7F04A36C 4606C283 */ div.s $f10, $f24, $f6 /* 07EEA0 7F04A370 920E0060 */ lbu $t6, 0x60($s0) /* 07EEA4 7F04A374 92080063 */ lbu $t0, 0x63($s0) /* 07EEA8 7F04A378 920C0066 */ lbu $t4, 0x66($s0) /* 07EEAC 7F04A37C A20E0061 */ sb $t6, 0x61($s0) /* 07EEB0 7F04A380 92180069 */ lbu $t8, 0x69($s0) /* 07EEB4 7F04A384 E60A0070 */ swc1 $f10, 0x70($s0) /* 07EEB8 7F04A388 8C6F0004 */ lw $t7, 4($v1) /* 07EEBC 7F04A38C A2080064 */ sb $t0, 0x64($s0) /* 07EEC0 7F04A390 000FCE02 */ srl $t9, $t7, 0x18 /* 07EEC4 7F04A394 A2190062 */ sb $t9, 0x62($s0) /* 07EEC8 7F04A398 8C690004 */ lw $t1, 4($v1) /* 07EECC 7F04A39C A20C0067 */ sb $t4, 0x67($s0) /* 07EED0 7F04A3A0 00095C02 */ srl $t3, $t1, 0x10 /* 07EED4 7F04A3A4 A20B0065 */ sb $t3, 0x65($s0) /* 07EED8 7F04A3A8 8C6D0004 */ lw $t5, 4($v1) /* 07EEDC 7F04A3AC A218006A */ sb $t8, 0x6a($s0) /* 07EEE0 7F04A3B0 24490003 */ addiu $t1, $v0, 3 /* 07EEE4 7F04A3B4 000D7A02 */ srl $t7, $t5, 8 /* 07EEE8 7F04A3B8 A20F0068 */ sb $t7, 0x68($s0) /* 07EEEC 7F04A3BC 8C680004 */ lw $t0, 4($v1) /* 07EEF0 7F04A3C0 A6090004 */ sh $t1, 4($s0) /* 07EEF4 7F04A3C4 10000028 */ b .L7F04A468 /* 07EEF8 7F04A3C8 A208006B */ sb $t0, 0x6b($s0) command0E_set_rotation: /* 07EEFC 7F04A3CC 8C6A0004 */ lw $t2, 4($v1) /* 07EF00 7F04A3D0 244B0002 */ addiu $t3, $v0, 2 /* 07EF04 7F04A3D4 A60B0004 */ sh $t3, 4($s0) /* 07EF08 7F04A3D8 448A9000 */ mtc1 $t2, $f18 /* 07EF0C 7F04A3DC 00000000 */ nop /* 07EF10 7F04A3E0 46809120 */ cvt.s.w $f4, $f18 /* 07EF14 7F04A3E4 461A2202 */ mul.s $f8, $f4, $f26 /* 07EF18 7F04A3E8 46024183 */ div.s $f6, $f8, $f2 /* 07EF1C 7F04A3EC 1000001E */ b .L7F04A468 /* 07EF20 7F04A3F0 E606000C */ swc1 $f6, 0xc($s0) command0F_rotate: /* 07EF24 7F04A3F4 8C6C0004 */ lw $t4, 4($v1) /* 07EF28 7F04A3F8 3C018005 */ lui $at, %hi(g_JP_GlobalTimerDelta) /* 07EF2C 7F04A3FC C42A8378 */ lwc1 $f10, %lo(g_JP_GlobalTimerDelta)($at) /* 07EF30 7F04A400 448C9000 */ mtc1 $t4, $f18 /* 07EF34 7F04A404 00000000 */ nop /* 07EF38 7F04A408 46809120 */ cvt.s.w $f4, $f18 /* 07EF3C 7F04A40C 46045202 */ mul.s $f8, $f10, $f4 /* 07EF40 7F04A410 C60A000C */ lwc1 $f10, 0xc($s0) /* 07EF44 7F04A414 461A4182 */ mul.s $f6, $f8, $f26 /* 07EF48 7F04A418 46023483 */ div.s $f18, $f6, $f2 /* 07EF4C 7F04A41C 46125100 */ add.s $f4, $f10, $f18 /* 07EF50 7F04A420 E604000C */ swc1 $f4, 0xc($s0) /* 07EF54 7F04A424 C60C000C */ lwc1 $f12, 0xc($s0) /* 07EF58 7F04A428 460CD03E */ c.le.s $f26, $f12 /* 07EF5C 7F04A42C 00000000 */ nop /* 07EF60 7F04A430 45020005 */ bc1fl .L7F04A448 /* 07EF64 7F04A434 4614603C */ c.lt.s $f12, $f20 /* 07EF68 7F04A438 461A6201 */ sub.s $f8, $f12, $f26 /* 07EF6C 7F04A43C E608000C */ swc1 $f8, 0xc($s0) /* 07EF70 7F04A440 C60C000C */ lwc1 $f12, 0xc($s0) /* 07EF74 7F04A444 4614603C */ c.lt.s $f12, $f20 .L7F04A448: /* 07EF78 7F04A448 00000000 */ nop /* 07EF7C 7F04A44C 45020004 */ bc1fl .L7F04A460 /* 07EF80 7F04A450 960D0004 */ lhu $t5, 4($s0) /* 07EF84 7F04A454 461A6180 */ add.s $f6, $f12, $f26 /* 07EF88 7F04A458 E606000C */ swc1 $f6, 0xc($s0) /* 07EF8C 7F04A45C 960D0004 */ lhu $t5, 4($s0) .L7F04A460: /* 07EF90 7F04A460 25AE0002 */ addiu $t6, $t5, 2 /* 07EF94 7F04A464 A60E0004 */ sh $t6, 4($s0) def_7F04A01C: .L7F04A468: /* 07EF98 7F04A468 5220FEE2 */ beql $s1, $zero, .L7F049FF4 /* 07EF9C 7F04A46C 96020004 */ lhu $v0, 4($s0) /* 07EFA0 7F04A470 C6000018 */ lwc1 $f0, 0x18($s0) /* 07EFA4 7F04A474 4600A03C */ c.lt.s $f20, $f0 /* 07EFA8 7F04A478 00000000 */ nop /* 07EFAC 7F04A47C 45000017 */ bc1f .L7F04A4DC /* 07EFB0 7F04A480 3C028005 */ lui $v0, %hi(g_JP_GlobalTimerDelta) /* 07EFB4 7F04A484 24428378 */ addiu $v0, %lo(g_JP_GlobalTimerDelta) # addiu $v0, $v0, -0x7c88 /* 07EFB8 7F04A488 C4520000 */ lwc1 $f18, ($v0) /* 07EFBC 7F04A48C C60A0014 */ lwc1 $f10, 0x14($s0) /* 07EFC0 7F04A490 46120102 */ mul.s $f4, $f0, $f18 /* 07EFC4 7F04A494 46045200 */ add.s $f8, $f10, $f4 /* 07EFC8 7F04A498 E6080014 */ swc1 $f8, 0x14($s0) /* 07EFCC 7F04A49C C6020014 */ lwc1 $f2, 0x14($s0) /* 07EFD0 7F04A4A0 4618103C */ c.lt.s $f2, $f24 /* 07EFD4 7F04A4A4 00000000 */ nop /* 07EFD8 7F04A4A8 45020009 */ bc1fl .L7F04A4D0 /* 07EFDC 7F04A4AC C6080020 */ lwc1 $f8, 0x20($s0) /* 07EFE0 7F04A4B0 C600001C */ lwc1 $f0, 0x1c($s0) /* 07EFE4 7F04A4B4 C6060020 */ lwc1 $f6, 0x20($s0) /* 07EFE8 7F04A4B8 46003481 */ sub.s $f18, $f6, $f0 /* 07EFEC 7F04A4BC 46029282 */ mul.s $f10, $f18, $f2 /* 07EFF0 7F04A4C0 460A0100 */ add.s $f4, $f0, $f10 /* 07EFF4 7F04A4C4 10000005 */ b .L7F04A4DC /* 07EFF8 7F04A4C8 E6040010 */ swc1 $f4, 0x10($s0) /* 07EFFC 7F04A4CC C6080020 */ lwc1 $f8, 0x20($s0) .L7F04A4D0: /* 07F000 7F04A4D0 E6180014 */ swc1 $f24, 0x14($s0) /* 07F004 7F04A4D4 E6140018 */ swc1 $f20, 0x18($s0) /* 07F008 7F04A4D8 E6080010 */ swc1 $f8, 0x10($s0) .L7F04A4DC: /* 07F00C 7F04A4DC C600002C */ lwc1 $f0, 0x2c($s0) /* 07F010 7F04A4E0 3C028005 */ lui $v0, %hi(g_JP_GlobalTimerDelta) /* 07F014 7F04A4E4 24428378 */ addiu $v0, %lo(g_JP_GlobalTimerDelta) # addiu $v0, $v0, -0x7c88 /* 07F018 7F04A4E8 4600A03C */ c.lt.s $f20, $f0 /* 07F01C 7F04A4EC 00000000 */ nop /* 07F020 7F04A4F0 45020017 */ bc1fl .L7F04A550 /* 07F024 7F04A4F4 C6000040 */ lwc1 $f0, 0x40($s0) /* 07F028 7F04A4F8 C4520000 */ lwc1 $f18, ($v0) /* 07F02C 7F04A4FC C6060028 */ lwc1 $f6, 0x28($s0) /* 07F030 7F04A500 46120282 */ mul.s $f10, $f0, $f18 /* 07F034 7F04A504 460A3100 */ add.s $f4, $f6, $f10 /* 07F038 7F04A508 E6040028 */ swc1 $f4, 0x28($s0) /* 07F03C 7F04A50C C6020028 */ lwc1 $f2, 0x28($s0) /* 07F040 7F04A510 4618103C */ c.lt.s $f2, $f24 /* 07F044 7F04A514 00000000 */ nop /* 07F048 7F04A518 45020009 */ bc1fl .L7F04A540 /* 07F04C 7F04A51C C6040034 */ lwc1 $f4, 0x34($s0) /* 07F050 7F04A520 C6000030 */ lwc1 $f0, 0x30($s0) /* 07F054 7F04A524 C6080034 */ lwc1 $f8, 0x34($s0) /* 07F058 7F04A528 46004481 */ sub.s $f18, $f8, $f0 /* 07F05C 7F04A52C 46029182 */ mul.s $f6, $f18, $f2 /* 07F060 7F04A530 46060280 */ add.s $f10, $f0, $f6 /* 07F064 7F04A534 10000005 */ b .L7F04A54C /* 07F068 7F04A538 E60A0024 */ swc1 $f10, 0x24($s0) /* 07F06C 7F04A53C C6040034 */ lwc1 $f4, 0x34($s0) .L7F04A540: /* 07F070 7F04A540 E6180028 */ swc1 $f24, 0x28($s0) /* 07F074 7F04A544 E614002C */ swc1 $f20, 0x2c($s0) /* 07F078 7F04A548 E6040024 */ swc1 $f4, 0x24($s0) .L7F04A54C: /* 07F07C 7F04A54C C6000040 */ lwc1 $f0, 0x40($s0) .L7F04A550: /* 07F080 7F04A550 4600A03C */ c.lt.s $f20, $f0 /* 07F084 7F04A554 00000000 */ nop /* 07F088 7F04A558 45020017 */ bc1fl .L7F04A5B8 /* 07F08C 7F04A55C C6000054 */ lwc1 $f0, 0x54($s0) /* 07F090 7F04A560 C4520000 */ lwc1 $f18, ($v0) /* 07F094 7F04A564 C608003C */ lwc1 $f8, 0x3c($s0) /* 07F098 7F04A568 46120182 */ mul.s $f6, $f0, $f18 /* 07F09C 7F04A56C 46064280 */ add.s $f10, $f8, $f6 /* 07F0A0 7F04A570 E60A003C */ swc1 $f10, 0x3c($s0) /* 07F0A4 7F04A574 C602003C */ lwc1 $f2, 0x3c($s0) /* 07F0A8 7F04A578 4618103C */ c.lt.s $f2, $f24 /* 07F0AC 7F04A57C 00000000 */ nop /* 07F0B0 7F04A580 45020009 */ bc1fl .L7F04A5A8 /* 07F0B4 7F04A584 C60A0048 */ lwc1 $f10, 0x48($s0) /* 07F0B8 7F04A588 C6000044 */ lwc1 $f0, 0x44($s0) /* 07F0BC 7F04A58C C6040048 */ lwc1 $f4, 0x48($s0) /* 07F0C0 7F04A590 46002481 */ sub.s $f18, $f4, $f0 /* 07F0C4 7F04A594 46029202 */ mul.s $f8, $f18, $f2 /* 07F0C8 7F04A598 46080180 */ add.s $f6, $f0, $f8 /* 07F0CC 7F04A59C 10000005 */ b .L7F04A5B4 /* 07F0D0 7F04A5A0 E6060038 */ swc1 $f6, 0x38($s0) /* 07F0D4 7F04A5A4 C60A0048 */ lwc1 $f10, 0x48($s0) .L7F04A5A8: /* 07F0D8 7F04A5A8 E618003C */ swc1 $f24, 0x3c($s0) /* 07F0DC 7F04A5AC E6140040 */ swc1 $f20, 0x40($s0) /* 07F0E0 7F04A5B0 E60A0038 */ swc1 $f10, 0x38($s0) .L7F04A5B4: /* 07F0E4 7F04A5B4 C6000054 */ lwc1 $f0, 0x54($s0) .L7F04A5B8: /* 07F0E8 7F04A5B8 4600A03C */ c.lt.s $f20, $f0 /* 07F0EC 7F04A5BC 00000000 */ nop /* 07F0F0 7F04A5C0 45020017 */ bc1fl .L7F04A620 /* 07F0F4 7F04A5C4 C6020070 */ lwc1 $f2, 0x70($s0) /* 07F0F8 7F04A5C8 C4520000 */ lwc1 $f18, ($v0) /* 07F0FC 7F04A5CC C6040050 */ lwc1 $f4, 0x50($s0) /* 07F100 7F04A5D0 46120202 */ mul.s $f8, $f0, $f18 /* 07F104 7F04A5D4 46082180 */ add.s $f6, $f4, $f8 /* 07F108 7F04A5D8 E6060050 */ swc1 $f6, 0x50($s0) /* 07F10C 7F04A5DC C6020050 */ lwc1 $f2, 0x50($s0) /* 07F110 7F04A5E0 4618103C */ c.lt.s $f2, $f24 /* 07F114 7F04A5E4 00000000 */ nop /* 07F118 7F04A5E8 45020009 */ bc1fl .L7F04A610 /* 07F11C 7F04A5EC C606005C */ lwc1 $f6, 0x5c($s0) /* 07F120 7F04A5F0 C6000058 */ lwc1 $f0, 0x58($s0) /* 07F124 7F04A5F4 C60A005C */ lwc1 $f10, 0x5c($s0) /* 07F128 7F04A5F8 46005481 */ sub.s $f18, $f10, $f0 /* 07F12C 7F04A5FC 46029102 */ mul.s $f4, $f18, $f2 /* 07F130 7F04A600 46040200 */ add.s $f8, $f0, $f4 /* 07F134 7F04A604 10000005 */ b .L7F04A61C /* 07F138 7F04A608 E608004C */ swc1 $f8, 0x4c($s0) /* 07F13C 7F04A60C C606005C */ lwc1 $f6, 0x5c($s0) .L7F04A610: /* 07F140 7F04A610 E6180050 */ swc1 $f24, 0x50($s0) /* 07F144 7F04A614 E6140054 */ swc1 $f20, 0x54($s0) /* 07F148 7F04A618 E606004C */ swc1 $f6, 0x4c($s0) .L7F04A61C: /* 07F14C 7F04A61C C6020070 */ lwc1 $f2, 0x70($s0) .L7F04A620: /* 07F150 7F04A620 4602A03C */ c.lt.s $f20, $f2 /* 07F154 7F04A624 00000000 */ nop /* 07F158 7F04A628 4502003F */ bc1fl .L7F04A728 /* 07F15C 7F04A62C 8FAA00A0 */ lw $t2, 0xa0($sp) /* 07F160 7F04A630 C4520000 */ lwc1 $f18, ($v0) /* 07F164 7F04A634 C60A006C */ lwc1 $f10, 0x6c($s0) /* 07F168 7F04A638 46121102 */ mul.s $f4, $f2, $f18 /* 07F16C 7F04A63C 46045200 */ add.s $f8, $f10, $f4 /* 07F170 7F04A640 E608006C */ swc1 $f8, 0x6c($s0) /* 07F174 7F04A644 C600006C */ lwc1 $f0, 0x6c($s0) /* 07F178 7F04A648 4618003C */ c.lt.s $f0, $f24 /* 07F17C 7F04A64C 00000000 */ nop /* 07F180 7F04A650 4502002B */ bc1fl .L7F04A700 /* 07F184 7F04A654 920F0062 */ lbu $t7, 0x62($s0) /* 07F188 7F04A658 92020061 */ lbu $v0, 0x61($s0) /* 07F18C 7F04A65C 920F0062 */ lbu $t7, 0x62($s0) /* 07F190 7F04A660 92030064 */ lbu $v1, 0x64($s0) /* 07F194 7F04A664 920A0065 */ lbu $t2, 0x65($s0) /* 07F198 7F04A668 01E2C023 */ subu $t8, $t7, $v0 /* 07F19C 7F04A66C 44983000 */ mtc1 $t8, $f6 /* 07F1A0 7F04A670 01435823 */ subu $t3, $t2, $v1 /* 07F1A4 7F04A674 448B4000 */ mtc1 $t3, $f8 /* 07F1A8 7F04A678 468034A0 */ cvt.s.w $f18, $f6 /* 07F1AC 7F04A67C 920F0068 */ lbu $t7, 0x68($s0) /* 07F1B0 7F04A680 92040067 */ lbu $a0, 0x67($s0) /* 07F1B4 7F04A684 920A006B */ lbu $t2, 0x6b($s0) /* 07F1B8 7F04A688 9205006A */ lbu $a1, 0x6a($s0) /* 07F1BC 7F04A68C 468041A0 */ cvt.s.w $f6, $f8 /* 07F1C0 7F04A690 46009282 */ mul.s $f10, $f18, $f0 /* 07F1C4 7F04A694 01E4C023 */ subu $t8, $t7, $a0 /* 07F1C8 7F04A698 01455823 */ subu $t3, $t2, $a1 /* 07F1CC 7F04A69C 46003482 */ mul.s $f18, $f6, $f0 /* 07F1D0 7F04A6A0 4600510D */ trunc.w.s $f4, $f10 /* 07F1D4 7F04A6A4 4600928D */ trunc.w.s $f10, $f18 /* 07F1D8 7F04A6A8 44082000 */ mfc1 $t0, $f4 /* 07F1DC 7F04A6AC 44982000 */ mtc1 $t8, $f4 /* 07F1E0 7F04A6B0 440D5000 */ mfc1 $t5, $f10 /* 07F1E4 7F04A6B4 46802220 */ cvt.s.w $f8, $f4 /* 07F1E8 7F04A6B8 448B5000 */ mtc1 $t3, $f10 /* 07F1EC 7F04A6BC 00484821 */ addu $t1, $v0, $t0 /* 07F1F0 7F04A6C0 006D7021 */ addu $t6, $v1, $t5 /* 07F1F4 7F04A6C4 A2090060 */ sb $t1, 0x60($s0) /* 07F1F8 7F04A6C8 46805120 */ cvt.s.w $f4, $f10 /* 07F1FC 7F04A6CC 46004182 */ mul.s $f6, $f8, $f0 /* 07F200 7F04A6D0 A20E0063 */ sb $t6, 0x63($s0) /* 07F204 7F04A6D4 46002202 */ mul.s $f8, $f4, $f0 /* 07F208 7F04A6D8 4600348D */ trunc.w.s $f18, $f6 /* 07F20C 7F04A6DC 4600418D */ trunc.w.s $f6, $f8 /* 07F210 7F04A6E0 44089000 */ mfc1 $t0, $f18 /* 07F214 7F04A6E4 440D3000 */ mfc1 $t5, $f6 /* 07F218 7F04A6E8 00884821 */ addu $t1, $a0, $t0 /* 07F21C 7F04A6EC A2090066 */ sb $t1, 0x66($s0) /* 07F220 7F04A6F0 00AD7021 */ addu $t6, $a1, $t5 /* 07F224 7F04A6F4 1000000B */ b .L7F04A724 /* 07F228 7F04A6F8 A20E0069 */ sb $t6, 0x69($s0) /* 07F22C 7F04A6FC 920F0062 */ lbu $t7, 0x62($s0) .L7F04A700: /* 07F230 7F04A700 92180065 */ lbu $t8, 0x65($s0) /* 07F234 7F04A704 92190068 */ lbu $t9, 0x68($s0) /* 07F238 7F04A708 9208006B */ lbu $t0, 0x6b($s0) /* 07F23C 7F04A70C E618006C */ swc1 $f24, 0x6c($s0) /* 07F240 7F04A710 E6140070 */ swc1 $f20, 0x70($s0) /* 07F244 7F04A714 A20F0060 */ sb $t7, 0x60($s0) /* 07F248 7F04A718 A2180063 */ sb $t8, 0x63($s0) /* 07F24C 7F04A71C A2190066 */ sb $t9, 0x66($s0) /* 07F250 7F04A720 A2080069 */ sb $t0, 0x69($s0) .L7F04A724: /* 07F254 7F04A724 8FAA00A0 */ lw $t2, 0xa0($sp) .L7F04A728: /* 07F258 7F04A728 8FA300A4 */ lw $v1, 0xa4($sp) /* 07F25C 7F04A72C 8FA900BC */ lw $t1, 0xbc($sp) /* 07F260 7F04A730 AD520000 */ sw $s2, ($t2) /* 07F264 7F04A734 3C0F8009 */ lui $t7, %hi(monitorimages) /* 07F268 7F04A738 AD490004 */ sw $t1, 4($t2) /* 07F26C 7F04A73C 8C6B0008 */ lw $t3, 8($v1) /* 07F270 7F04A740 8D610000 */ lw $at, ($t3) /* 07F274 7F04A744 AE410000 */ sw $at, ($s2) /* 07F278 7F04A748 8D6D0004 */ lw $t5, 4($t3) /* 07F27C 7F04A74C AE4D0004 */ sw $t5, 4($s2) /* 07F280 7F04A750 8D610008 */ lw $at, 8($t3) /* 07F284 7F04A754 AE410008 */ sw $at, 8($s2) /* 07F288 7F04A758 8D6D000C */ lw $t5, 0xc($t3) /* 07F28C 7F04A75C AE4D000C */ sw $t5, 0xc($s2) /* 07F290 7F04A760 8C6E0008 */ lw $t6, 8($v1) /* 07F294 7F04A764 8DC10010 */ lw $at, 0x10($t6) /* 07F298 7F04A768 AE410010 */ sw $at, 0x10($s2) /* 07F29C 7F04A76C 8DD80014 */ lw $t8, 0x14($t6) /* 07F2A0 7F04A770 AE580014 */ sw $t8, 0x14($s2) /* 07F2A4 7F04A774 8DC10018 */ lw $at, 0x18($t6) /* 07F2A8 7F04A778 AE410018 */ sw $at, 0x18($s2) /* 07F2AC 7F04A77C 8DD8001C */ lw $t8, 0x1c($t6) /* 07F2B0 7F04A780 AE58001C */ sw $t8, 0x1c($s2) /* 07F2B4 7F04A784 8C790008 */ lw $t9, 8($v1) /* 07F2B8 7F04A788 8F210020 */ lw $at, 0x20($t9) /* 07F2BC 7F04A78C AE410020 */ sw $at, 0x20($s2) /* 07F2C0 7F04A790 8F290024 */ lw $t1, 0x24($t9) /* 07F2C4 7F04A794 AE490024 */ sw $t1, 0x24($s2) /* 07F2C8 7F04A798 8F210028 */ lw $at, 0x28($t9) /* 07F2CC 7F04A79C AE410028 */ sw $at, 0x28($s2) /* 07F2D0 7F04A7A0 8F29002C */ lw $t1, 0x2c($t9) /* 07F2D4 7F04A7A4 AE49002C */ sw $t1, 0x2c($s2) /* 07F2D8 7F04A7A8 8C6A0008 */ lw $t2, 8($v1) /* 07F2DC 7F04A7AC 8D410030 */ lw $at, 0x30($t2) /* 07F2E0 7F04A7B0 AE410030 */ sw $at, 0x30($s2) /* 07F2E4 7F04A7B4 8D4B0034 */ lw $t3, 0x34($t2) /* 07F2E8 7F04A7B8 AE4B0034 */ sw $t3, 0x34($s2) /* 07F2EC 7F04A7BC 8D410038 */ lw $at, 0x38($t2) /* 07F2F0 7F04A7C0 AE410038 */ sw $at, 0x38($s2) /* 07F2F4 7F04A7C4 8D4B003C */ lw $t3, 0x3c($t2) /* 07F2F8 7F04A7C8 AE4B003C */ sw $t3, 0x3c($s2) /* 07F2FC 7F04A7CC 8E020008 */ lw $v0, 8($s0) /* 07F300 7F04A7D0 2C410064 */ sltiu $at, $v0, 0x64 /* 07F304 7F04A7D4 10200007 */ beqz $at, .L7F04A7F4 /* 07F308 7F04A7D8 00408825 */ move $s1, $v0 /* 07F30C 7F04A7DC 00026880 */ sll $t5, $v0, 2 /* 07F310 7F04A7E0 8DEFD120 */ lw $t7, %lo(monitorimages)($t7) /* 07F314 7F04A7E4 01A26823 */ subu $t5, $t5, $v0 /* 07F318 7F04A7E8 000D6880 */ sll $t5, $t5, 2 /* 07F31C 7F04A7EC 10000001 */ b .L7F04A7F4 /* 07F320 7F04A7F0 01AF8821 */ addu $s1, $t5, $t7 .L7F04A7F4: /* 07F324 7F04A7F4 122000A9 */ beqz $s1, .L7F04AA9C /* 07F328 7F04A7F8 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 07F32C 7F04A7FC 44810000 */ mtc1 $at, $f0 /* 07F330 7F04A800 C6120010 */ lwc1 $f18, 0x10($s0) /* 07F334 7F04A804 C60A0024 */ lwc1 $f10, 0x24($s0) /* 07F338 7F04A808 C60C000C */ lwc1 $f12, 0xc($s0) /* 07F33C 7F04A80C 46009582 */ mul.s $f22, $f18, $f0 /* 07F340 7F04A810 460CA032 */ c.eq.s $f20, $f12 /* 07F344 7F04A814 46005602 */ mul.s $f24, $f10, $f0 /* 07F348 7F04A818 4600B386 */ mov.s $f14, $f22 /* 07F34C 7F04A81C 45010015 */ bc1t .L7F04A874 /* 07F350 7F04A820 4600C406 */ mov.s $f16, $f24 /* 07F354 7F04A824 E7AE0054 */ swc1 $f14, 0x54($sp) /* 07F358 7F04A828 0FC15FA8 */ jal cosf /* 07F35C 7F04A82C E7B00050 */ swc1 $f16, 0x50($sp) /* 07F360 7F04A830 3C018005 */ lui $at, %hi(D_80052CB0) /* 07F364 7F04A834 C43A2CB0 */ lwc1 $f26, %lo(D_80052CB0)($at) /* 07F368 7F04A838 C60C000C */ lwc1 $f12, 0xc($s0) /* 07F36C 7F04A83C 461A0502 */ mul.s $f20, $f0, $f26 /* 07F370 7F04A840 0FC15FAB */ jal sinf /* 07F374 7F04A844 00000000 */ nop /* 07F378 7F04A848 4614B582 */ mul.s $f22, $f22, $f20 /* 07F37C 7F04A84C C7AE0054 */ lwc1 $f14, 0x54($sp) /* 07F380 7F04A850 C7B00050 */ lwc1 $f16, 0x50($sp) /* 07F384 7F04A854 461A0082 */ mul.s $f2, $f0, $f26 /* 07F388 7F04A858 00000000 */ nop /* 07F38C 7F04A85C 4602C602 */ mul.s $f24, $f24, $f2 /* 07F390 7F04A860 00000000 */ nop /* 07F394 7F04A864 46027382 */ mul.s $f14, $f14, $f2 /* 07F398 7F04A868 00000000 */ nop /* 07F39C 7F04A86C 46148402 */ mul.s $f16, $f16, $f20 /* 07F3A0 7F04A870 00000000 */ nop .L7F04A874: /* 07F3A4 7F04A874 922E0004 */ lbu $t6, 4($s1) /* 07F3A8 7F04A878 3C014200 */ li $at, 0x42000000 # 32.000000 /* 07F3AC 7F04A87C 44810000 */ mtc1 $at, $f0 /* 07F3B0 7F04A880 448E4000 */ mtc1 $t6, $f8 /* 07F3B4 7F04A884 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07F3B8 7F04A888 05C10004 */ bgez $t6, .L7F04A89C /* 07F3BC 7F04A88C 468041A0 */ cvt.s.w $f6, $f8 /* 07F3C0 7F04A890 44819000 */ mtc1 $at, $f18 /* 07F3C4 7F04A894 00000000 */ nop /* 07F3C8 7F04A898 46123180 */ add.s $f6, $f6, $f18 .L7F04A89C: /* 07F3CC 7F04A89C C60A0038 */ lwc1 $f10, 0x38($s0) /* 07F3D0 7F04A8A0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07F3D4 7F04A8A4 46165100 */ add.s $f4, $f10, $f22 /* 07F3D8 7F04A8A8 46043202 */ mul.s $f8, $f6, $f4 /* 07F3DC 7F04A8AC 00000000 */ nop /* 07F3E0 7F04A8B0 46004482 */ mul.s $f18, $f8, $f0 /* 07F3E4 7F04A8B4 4600928D */ trunc.w.s $f10, $f18 /* 07F3E8 7F04A8B8 44085000 */ mfc1 $t0, $f10 /* 07F3EC 7F04A8BC 00000000 */ nop /* 07F3F0 7F04A8C0 A6480008 */ sh $t0, 8($s2) /* 07F3F4 7F04A8C4 92390005 */ lbu $t9, 5($s1) /* 07F3F8 7F04A8C8 44993000 */ mtc1 $t9, $f6 /* 07F3FC 7F04A8CC 07210004 */ bgez $t9, .L7F04A8E0 /* 07F400 7F04A8D0 46803120 */ cvt.s.w $f4, $f6 /* 07F404 7F04A8D4 44814000 */ mtc1 $at, $f8 /* 07F408 7F04A8D8 00000000 */ nop /* 07F40C 7F04A8DC 46082100 */ add.s $f4, $f4, $f8 .L7F04A8E0: /* 07F410 7F04A8E0 C612004C */ lwc1 $f18, 0x4c($s0) /* 07F414 7F04A8E4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07F418 7F04A8E8 46189280 */ add.s $f10, $f18, $f24 /* 07F41C 7F04A8EC 460A2182 */ mul.s $f6, $f4, $f10 /* 07F420 7F04A8F0 00000000 */ nop /* 07F424 7F04A8F4 46003202 */ mul.s $f8, $f6, $f0 /* 07F428 7F04A8F8 4600448D */ trunc.w.s $f18, $f8 /* 07F42C 7F04A8FC 440C9000 */ mfc1 $t4, $f18 /* 07F430 7F04A900 00000000 */ nop /* 07F434 7F04A904 A64C000A */ sh $t4, 0xa($s2) /* 07F438 7F04A908 922A0004 */ lbu $t2, 4($s1) /* 07F43C 7F04A90C 448A2000 */ mtc1 $t2, $f4 /* 07F440 7F04A910 05410004 */ bgez $t2, .L7F04A924 /* 07F444 7F04A914 468022A0 */ cvt.s.w $f10, $f4 /* 07F448 7F04A918 44813000 */ mtc1 $at, $f6 /* 07F44C 7F04A91C 00000000 */ nop /* 07F450 7F04A920 46065280 */ add.s $f10, $f10, $f6 .L7F04A924: /* 07F454 7F04A924 C6080038 */ lwc1 $f8, 0x38($s0) /* 07F458 7F04A928 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07F45C 7F04A92C 460E4481 */ sub.s $f18, $f8, $f14 /* 07F460 7F04A930 46125102 */ mul.s $f4, $f10, $f18 /* 07F464 7F04A934 00000000 */ nop /* 07F468 7F04A938 46002182 */ mul.s $f6, $f4, $f0 /* 07F46C 7F04A93C 4600320D */ trunc.w.s $f8, $f6 /* 07F470 7F04A940 440D4000 */ mfc1 $t5, $f8 /* 07F474 7F04A944 00000000 */ nop /* 07F478 7F04A948 A64D0018 */ sh $t5, 0x18($s2) /* 07F47C 7F04A94C 922F0005 */ lbu $t7, 5($s1) /* 07F480 7F04A950 448F5000 */ mtc1 $t7, $f10 /* 07F484 7F04A954 05E10004 */ bgez $t7, .L7F04A968 /* 07F488 7F04A958 468054A0 */ cvt.s.w $f18, $f10 /* 07F48C 7F04A95C 44812000 */ mtc1 $at, $f4 /* 07F490 7F04A960 00000000 */ nop /* 07F494 7F04A964 46049480 */ add.s $f18, $f18, $f4 .L7F04A968: /* 07F498 7F04A968 C606004C */ lwc1 $f6, 0x4c($s0) /* 07F49C 7F04A96C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07F4A0 7F04A970 46103200 */ add.s $f8, $f6, $f16 /* 07F4A4 7F04A974 46089282 */ mul.s $f10, $f18, $f8 /* 07F4A8 7F04A978 00000000 */ nop /* 07F4AC 7F04A97C 46005102 */ mul.s $f4, $f10, $f0 /* 07F4B0 7F04A980 4600218D */ trunc.w.s $f6, $f4 /* 07F4B4 7F04A984 44183000 */ mfc1 $t8, $f6 /* 07F4B8 7F04A988 00000000 */ nop /* 07F4BC 7F04A98C A658001A */ sh $t8, 0x1a($s2) /* 07F4C0 7F04A990 92280004 */ lbu $t0, 4($s1) /* 07F4C4 7F04A994 44889000 */ mtc1 $t0, $f18 /* 07F4C8 7F04A998 05010004 */ bgez $t0, .L7F04A9AC /* 07F4CC 7F04A99C 46809220 */ cvt.s.w $f8, $f18 /* 07F4D0 7F04A9A0 44815000 */ mtc1 $at, $f10 /* 07F4D4 7F04A9A4 00000000 */ nop /* 07F4D8 7F04A9A8 460A4200 */ add.s $f8, $f8, $f10 .L7F04A9AC: /* 07F4DC 7F04A9AC C6040038 */ lwc1 $f4, 0x38($s0) /* 07F4E0 7F04A9B0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07F4E4 7F04A9B4 46162181 */ sub.s $f6, $f4, $f22 /* 07F4E8 7F04A9B8 46064482 */ mul.s $f18, $f8, $f6 /* 07F4EC 7F04A9BC 00000000 */ nop /* 07F4F0 7F04A9C0 46009282 */ mul.s $f10, $f18, $f0 /* 07F4F4 7F04A9C4 4600510D */ trunc.w.s $f4, $f10 /* 07F4F8 7F04A9C8 44092000 */ mfc1 $t1, $f4 /* 07F4FC 7F04A9CC 00000000 */ nop /* 07F500 7F04A9D0 A6490028 */ sh $t1, 0x28($s2) /* 07F504 7F04A9D4 922C0005 */ lbu $t4, 5($s1) /* 07F508 7F04A9D8 448C4000 */ mtc1 $t4, $f8 /* 07F50C 7F04A9DC 05810004 */ bgez $t4, .L7F04A9F0 /* 07F510 7F04A9E0 468041A0 */ cvt.s.w $f6, $f8 /* 07F514 7F04A9E4 44819000 */ mtc1 $at, $f18 /* 07F518 7F04A9E8 00000000 */ nop /* 07F51C 7F04A9EC 46123180 */ add.s $f6, $f6, $f18 .L7F04A9F0: /* 07F520 7F04A9F0 C60A004C */ lwc1 $f10, 0x4c($s0) /* 07F524 7F04A9F4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07F528 7F04A9F8 46185101 */ sub.s $f4, $f10, $f24 /* 07F52C 7F04A9FC 46043202 */ mul.s $f8, $f6, $f4 /* 07F530 7F04AA00 00000000 */ nop /* 07F534 7F04AA04 46004482 */ mul.s $f18, $f8, $f0 /* 07F538 7F04AA08 4600928D */ trunc.w.s $f10, $f18 /* 07F53C 7F04AA0C 440B5000 */ mfc1 $t3, $f10 /* 07F540 7F04AA10 00000000 */ nop /* 07F544 7F04AA14 A64B002A */ sh $t3, 0x2a($s2) /* 07F548 7F04AA18 922D0004 */ lbu $t5, 4($s1) /* 07F54C 7F04AA1C 448D3000 */ mtc1 $t5, $f6 /* 07F550 7F04AA20 05A10004 */ bgez $t5, .L7F04AA34 /* 07F554 7F04AA24 46803120 */ cvt.s.w $f4, $f6 /* 07F558 7F04AA28 44814000 */ mtc1 $at, $f8 /* 07F55C 7F04AA2C 00000000 */ nop /* 07F560 7F04AA30 46082100 */ add.s $f4, $f4, $f8 .L7F04AA34: /* 07F564 7F04AA34 C6120038 */ lwc1 $f18, 0x38($s0) /* 07F568 7F04AA38 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 07F56C 7F04AA3C 460E9280 */ add.s $f10, $f18, $f14 /* 07F570 7F04AA40 460A2182 */ mul.s $f6, $f4, $f10 /* 07F574 7F04AA44 00000000 */ nop /* 07F578 7F04AA48 46003202 */ mul.s $f8, $f6, $f0 /* 07F57C 7F04AA4C 4600448D */ trunc.w.s $f18, $f8 /* 07F580 7F04AA50 440E9000 */ mfc1 $t6, $f18 /* 07F584 7F04AA54 00000000 */ nop /* 07F588 7F04AA58 A64E0038 */ sh $t6, 0x38($s2) /* 07F58C 7F04AA5C 92380005 */ lbu $t8, 5($s1) /* 07F590 7F04AA60 44982000 */ mtc1 $t8, $f4 /* 07F594 7F04AA64 07010004 */ bgez $t8, .L7F04AA78 /* 07F598 7F04AA68 468022A0 */ cvt.s.w $f10, $f4 /* 07F59C 7F04AA6C 44813000 */ mtc1 $at, $f6 /* 07F5A0 7F04AA70 00000000 */ nop /* 07F5A4 7F04AA74 46065280 */ add.s $f10, $f10, $f6 .L7F04AA78: /* 07F5A8 7F04AA78 C608004C */ lwc1 $f8, 0x4c($s0) /* 07F5AC 7F04AA7C 46104481 */ sub.s $f18, $f8, $f16 /* 07F5B0 7F04AA80 46125102 */ mul.s $f4, $f10, $f18 /* 07F5B4 7F04AA84 00000000 */ nop /* 07F5B8 7F04AA88 46002182 */ mul.s $f6, $f4, $f0 /* 07F5BC 7F04AA8C 4600320D */ trunc.w.s $f8, $f6 /* 07F5C0 7F04AA90 44194000 */ mfc1 $t9, $f8 /* 07F5C4 7F04AA94 00000000 */ nop /* 07F5C8 7F04AA98 A659003A */ sh $t9, 0x3a($s2) .L7F04AA9C: /* 07F5CC 7F04AA9C 92020060 */ lbu $v0, 0x60($s0) /* 07F5D0 7F04AAA0 240C0002 */ li $t4, 2 /* 07F5D4 7F04AAA4 3C0DB700 */ lui $t5, 0xb700 /* 07F5D8 7F04AAA8 A242003C */ sb $v0, 0x3c($s2) /* 07F5DC 7F04AAAC A242002C */ sb $v0, 0x2c($s2) /* 07F5E0 7F04AAB0 A242001C */ sb $v0, 0x1c($s2) /* 07F5E4 7F04AAB4 A242000C */ sb $v0, 0xc($s2) /* 07F5E8 7F04AAB8 92020063 */ lbu $v0, 0x63($s0) /* 07F5EC 7F04AABC 240F2000 */ li $t7, 8192 /* 07F5F0 7F04AAC0 27A400BC */ addiu $a0, $sp, 0xbc /* 07F5F4 7F04AAC4 A242003D */ sb $v0, 0x3d($s2) /* 07F5F8 7F04AAC8 A242002D */ sb $v0, 0x2d($s2) /* 07F5FC 7F04AACC A242001D */ sb $v0, 0x1d($s2) /* 07F600 7F04AAD0 A242000D */ sb $v0, 0xd($s2) /* 07F604 7F04AAD4 92030066 */ lbu $v1, 0x66($s0) /* 07F608 7F04AAD8 A243003E */ sb $v1, 0x3e($s2) /* 07F60C 7F04AADC A243002E */ sb $v1, 0x2e($s2) /* 07F610 7F04AAE0 A243001E */ sb $v1, 0x1e($s2) /* 07F614 7F04AAE4 A243000E */ sb $v1, 0xe($s2) /* 07F618 7F04AAE8 92020069 */ lbu $v0, 0x69($s0) /* 07F61C 7F04AAEC A242003F */ sb $v0, 0x3f($s2) /* 07F620 7F04AAF0 A242002F */ sb $v0, 0x2f($s2) /* 07F624 7F04AAF4 A242001F */ sb $v0, 0x1f($s2) /* 07F628 7F04AAF8 A242000F */ sb $v0, 0xf($s2) /* 07F62C 7F04AAFC 92090069 */ lbu $t1, 0x69($s0) /* 07F630 7F04AB00 292100FF */ slti $at, $t1, 0xff /* 07F634 7F04AB04 50200003 */ beql $at, $zero, .L7F04AB14 /* 07F638 7F04AB08 8FAA00BC */ lw $t2, 0xbc($sp) /* 07F63C 7F04AB0C AFAC00C4 */ sw $t4, 0xc4($sp) /* 07F640 7F04AB10 8FAA00BC */ lw $t2, 0xbc($sp) .L7F04AB14: /* 07F644 7F04AB14 240E0002 */ li $t6, 2 /* 07F648 7F04AB18 02202825 */ move $a1, $s1 /* 07F64C 7F04AB1C 254B0008 */ addiu $t3, $t2, 8 /* 07F650 7F04AB20 AFAB00BC */ sw $t3, 0xbc($sp) /* 07F654 7F04AB24 AD4F0004 */ sw $t7, 4($t2) /* 07F658 7F04AB28 AD4D0000 */ sw $t5, ($t2) /* 07F65C 7F04AB2C AFAE0010 */ sw $t6, 0x10($sp) /* 07F660 7F04AB30 8FA700C0 */ lw $a3, 0xc0($sp) /* 07F664 7F04AB34 0FC1DB5A */ jal texSelect /* 07F668 7F04AB38 8FA600C4 */ lw $a2, 0xc4($sp) /* 07F66C 7F04AB3C 8FB000BC */ lw $s0, 0xbc($sp) /* 07F670 7F04AB40 3C190102 */ lui $t9, (0x01020040 >> 16) # lui $t9, 0x102 /* 07F674 7F04AB44 37390040 */ ori $t9, (0x01020040 & 0xFFFF) # ori $t9, $t9, 0x40 /* 07F678 7F04AB48 26080008 */ addiu $t0, $s0, 8 /* 07F67C 7F04AB4C AFA800BC */ sw $t0, 0xbc($sp) /* 07F680 7F04AB50 AE190000 */ sw $t9, ($s0) /* 07F684 7F04AB54 8FA900B0 */ lw $t1, 0xb0($sp) /* 07F688 7F04AB58 0C003A2C */ jal osVirtualToPhysical /* 07F68C 7F04AB5C 8D24000C */ lw $a0, 0xc($t1) /* 07F690 7F04AB60 AE020004 */ sw $v0, 4($s0) /* 07F694 7F04AB64 8FB100BC */ lw $s1, 0xbc($sp) /* 07F698 7F04AB68 3C0BBC00 */ lui $t3, (0xBC001006 >> 16) # lui $t3, 0xbc00 /* 07F69C 7F04AB6C 356B1006 */ ori $t3, (0xBC001006 & 0xFFFF) # ori $t3, $t3, 0x1006 /* 07F6A0 7F04AB70 262A0008 */ addiu $t2, $s1, 8 /* 07F6A4 7F04AB74 AFAA00BC */ sw $t2, 0xbc($sp) /* 07F6A8 7F04AB78 02402025 */ move $a0, $s2 /* 07F6AC 7F04AB7C 0C003A2C */ jal osVirtualToPhysical /* 07F6B0 7F04AB80 AE2B0000 */ sw $t3, ($s1) /* 07F6B4 7F04AB84 AE220004 */ sw $v0, 4($s1) /* 07F6B8 7F04AB88 8FAD00BC */ lw $t5, 0xbc($sp) /* 07F6BC 7F04AB8C 3C0E0430 */ lui $t6, (0x04300040 >> 16) # lui $t6, 0x430 /* 07F6C0 7F04AB90 35CE0040 */ ori $t6, (0x04300040 & 0xFFFF) # ori $t6, $t6, 0x40 /* 07F6C4 7F04AB94 25AF0008 */ addiu $t7, $t5, 8 /* 07F6C8 7F04AB98 AFAF00BC */ sw $t7, 0xbc($sp) /* 07F6CC 7F04AB9C 3C180400 */ lui $t8, 0x400 /* 07F6D0 7F04ABA0 ADB80004 */ sw $t8, 4($t5) /* 07F6D4 7F04ABA4 ADAE0000 */ sw $t6, ($t5) /* 07F6D8 7F04ABA8 8FA800BC */ lw $t0, 0xbc($sp) /* 07F6DC 7F04ABAC 3C09B100 */ lui $t1, (0xB1000032 >> 16) # lui $t1, 0xb100 /* 07F6E0 7F04ABB0 35290032 */ ori $t1, (0xB1000032 & 0xFFFF) # ori $t1, $t1, 0x32 /* 07F6E4 7F04ABB4 25190008 */ addiu $t9, $t0, 8 /* 07F6E8 7F04ABB8 AFB900BC */ sw $t9, 0xbc($sp) /* 07F6EC 7F04ABBC 240C2010 */ li $t4, 8208 /* 07F6F0 7F04ABC0 AD0C0004 */ sw $t4, 4($t0) /* 07F6F4 7F04ABC4 AD090000 */ sw $t1, ($t0) /* 07F6F8 7F04ABC8 8FAA00BC */ lw $t2, 0xbc($sp) /* 07F6FC 7F04ABCC 3C0DB800 */ lui $t5, 0xb800 /* 07F700 7F04ABD0 3C0F0601 */ lui $t7, 0x601 /* 07F704 7F04ABD4 254B0008 */ addiu $t3, $t2, 8 /* 07F708 7F04ABD8 AFAB00BC */ sw $t3, 0xbc($sp) /* 07F70C 7F04ABDC AD400004 */ sw $zero, 4($t2) /* 07F710 7F04ABE0 AD4D0000 */ sw $t5, ($t2) /* 07F714 7F04ABE4 8FA600A8 */ lw $a2, 0xa8($sp) /* 07F718 7F04ABE8 ACCF0000 */ sw $t7, ($a2) /* 07F71C 7F04ABEC 8FAE00BC */ lw $t6, 0xbc($sp) /* 07F720 7F04ABF0 ACCE0004 */ sw $t6, 4($a2) .L7F04ABF4: /* 07F724 7F04ABF4 8FBF004C */ lw $ra, 0x4c($sp) .L7F04ABF8: /* 07F728 7F04ABF8 8FA200BC */ lw $v0, 0xbc($sp) /* 07F72C 7F04ABFC D7B40020 */ ldc1 $f20, 0x20($sp) /* 07F730 7F04AC00 D7B60028 */ ldc1 $f22, 0x28($sp) /* 07F734 7F04AC04 D7B80030 */ ldc1 $f24, 0x30($sp) /* 07F738 7F04AC08 D7BA0038 */ ldc1 $f26, 0x38($sp) /* 07F73C 7F04AC0C 8FB00040 */ lw $s0, 0x40($sp) /* 07F740 7F04AC10 8FB10044 */ lw $s1, 0x44($sp) /* 07F744 7F04AC14 8FB20048 */ lw $s2, 0x48($sp) /* 07F748 7F04AC18 03E00008 */ jr $ra /* 07F74C 7F04AC1C 27BD00B0 */ addiu $sp, $sp, 0xb0 ) #endif #endif #ifdef NONMATCHING void sub_GAME_7F04AC20(void) { } #else GLOBAL_ASM( .text glabel sub_GAME_7F04AC20 /* 07F750 7F04AC20 27BDFF88 */ addiu $sp, $sp, -0x78 /* 07F754 7F04AC24 AFBF0024 */ sw $ra, 0x24($sp) /* 07F758 7F04AC28 AFB00020 */ sw $s0, 0x20($sp) /* 07F75C 7F04AC2C AFA40078 */ sw $a0, 0x78($sp) /* 07F760 7F04AC30 AFA60080 */ sw $a2, 0x80($sp) /* 07F764 7F04AC34 908F0001 */ lbu $t7, 1($a0) /* 07F768 7F04AC38 00A08025 */ move $s0, $a1 /* 07F76C 7F04AC3C 31F80002 */ andi $t8, $t7, 2 /* 07F770 7F04AC40 5300013F */ beql $t8, $zero, .L7F04B140 /* 07F774 7F04AC44 8FBF0024 */ lw $ra, 0x24($sp) /* 07F778 7F04AC48 8C990004 */ lw $t9, 4($a0) /* 07F77C 7F04AC4C AFB90074 */ sw $t9, 0x74($sp) /* 07F780 7F04AC50 8F280014 */ lw $t0, 0x14($t9) /* 07F784 7F04AC54 AFA80070 */ sw $t0, 0x70($sp) /* 07F788 7F04AC58 8F290008 */ lw $t1, 8($t9) /* 07F78C 7F04AC5C 312A0200 */ andi $t2, $t1, 0x200 /* 07F790 7F04AC60 000A582B */ sltu $t3, $zero, $t2 /* 07F794 7F04AC64 11600005 */ beqz $t3, .L7F04AC7C /* 07F798 7F04AC68 AFAB0028 */ sw $t3, 0x28($sp) /* 07F79C 7F04AC6C 0FC1E0E5 */ jal get_BONDdata_field_10E0 /* 07F7A0 7F04AC70 00000000 */ nop /* 07F7A4 7F04AC74 0002602B */ sltu $t4, $zero, $v0 /* 07F7A8 7F04AC78 AFAC0028 */ sw $t4, 0x28($sp) .L7F04AC7C: /* 07F7AC 7F04AC7C 8FAD0074 */ lw $t5, 0x74($sp) /* 07F7B0 7F04AC80 2401000A */ li $at, 10 /* 07F7B4 7F04AC84 8E07000C */ lw $a3, 0xc($s0) /* 07F7B8 7F04AC88 91A30003 */ lbu $v1, 3($t5) /* 07F7BC 7F04AC8C 54610022 */ bnel $v1, $at, .L7F04AD18 /* 07F7C0 7F04AC90 2401000B */ li $at, 11 /* 07F7C4 7F04AC94 8E0F0008 */ lw $t7, 8($s0) /* 07F7C8 7F04AC98 8FA40070 */ lw $a0, 0x70($sp) /* 07F7CC 7F04AC9C 31F80001 */ andi $t8, $t7, 1 /* 07F7D0 7F04ACA0 53000075 */ beql $t8, $zero, .L7F04AE78 /* 07F7D4 7F04ACA4 24010001 */ li $at, 1 /* 07F7D8 7F04ACA8 8DA8000C */ lw $t0, 0xc($t5) /* 07F7DC 7F04ACAC 8FAE0078 */ lw $t6, 0x78($sp) /* 07F7E0 7F04ACB0 8FA90074 */ lw $t1, 0x74($sp) /* 07F7E4 7F04ACB4 0008CBC0 */ sll $t9, $t0, 0xf /* 07F7E8 7F04ACB8 07210003 */ bgez $t9, .L7F04ACC8 /* 07F7EC 7F04ACBC 8DC20004 */ lw $v0, 4($t6) /* 07F7F0 7F04ACC0 10000008 */ b .L7F04ACE4 /* 07F7F4 7F04ACC4 00001825 */ move $v1, $zero .L7F04ACC8: /* 07F7F8 7F04ACC8 8D2A0008 */ lw $t2, 8($t1) /* 07F7FC 7F04ACCC 24030001 */ li $v1, 1 /* 07F800 7F04ACD0 000A58C0 */ sll $t3, $t2, 3 /* 07F804 7F04ACD4 05610003 */ bgez $t3, .L7F04ACE4 /* 07F808 7F04ACD8 00000000 */ nop /* 07F80C 7F04ACDC 10000001 */ b .L7F04ACE4 /* 07F810 7F04ACE0 24030008 */ li $v1, 8 .L7F04ACE4: /* 07F814 7F04ACE4 8C8F0008 */ lw $t7, 8($a0) /* 07F818 7F04ACE8 240E0001 */ li $t6, 1 /* 07F81C 7F04ACEC 24460080 */ addiu $a2, $v0, 0x80 /* 07F820 7F04ACF0 8DF80008 */ lw $t8, 8($t7) /* 07F824 7F04ACF4 8F050000 */ lw $a1, ($t8) /* 07F828 7F04ACF8 AFAE0014 */ sw $t6, 0x14($sp) /* 07F82C 7F04ACFC 0FC127D2 */ jal process_monitor_animation_microcode /* 07F830 7F04AD00 AFA30010 */ sw $v1, 0x10($sp) /* 07F834 7F04AD04 8FAD0074 */ lw $t5, 0x74($sp) /* 07F838 7F04AD08 00403825 */ move $a3, $v0 /* 07F83C 7F04AD0C 10000059 */ b .L7F04AE74 /* 07F840 7F04AD10 91A30003 */ lbu $v1, 3($t5) /* 07F844 7F04AD14 2401000B */ li $at, 11 .L7F04AD18: /* 07F848 7F04AD18 54610057 */ bnel $v1, $at, .L7F04AE78 /* 07F84C 7F04AD1C 24010001 */ li $at, 1 /* 07F850 7F04AD20 8E080008 */ lw $t0, 8($s0) /* 07F854 7F04AD24 8FAA0074 */ lw $t2, 0x74($sp) /* 07F858 7F04AD28 8FA40070 */ lw $a0, 0x70($sp) /* 07F85C 7F04AD2C 31190001 */ andi $t9, $t0, 1 /* 07F860 7F04AD30 53200051 */ beql $t9, $zero, .L7F04AE78 /* 07F864 7F04AD34 24010001 */ li $at, 1 /* 07F868 7F04AD38 8D4B000C */ lw $t3, 0xc($t2) /* 07F86C 7F04AD3C 8FA90078 */ lw $t1, 0x78($sp) /* 07F870 7F04AD40 8FAF0074 */ lw $t7, 0x74($sp) /* 07F874 7F04AD44 000B63C0 */ sll $t4, $t3, 0xf /* 07F878 7F04AD48 05810003 */ bgez $t4, .L7F04AD58 /* 07F87C 7F04AD4C 8D220004 */ lw $v0, 4($t1) /* 07F880 7F04AD50 10000008 */ b .L7F04AD74 /* 07F884 7F04AD54 00001825 */ move $v1, $zero .L7F04AD58: /* 07F888 7F04AD58 8DF80008 */ lw $t8, 8($t7) /* 07F88C 7F04AD5C 24030001 */ li $v1, 1 /* 07F890 7F04AD60 001870C0 */ sll $t6, $t8, 3 /* 07F894 7F04AD64 05C10003 */ bgez $t6, .L7F04AD74 /* 07F898 7F04AD68 00000000 */ nop /* 07F89C 7F04AD6C 10000001 */ b .L7F04AD74 /* 07F8A0 7F04AD70 24030008 */ li $v1, 8 .L7F04AD74: /* 07F8A4 7F04AD74 8C880008 */ lw $t0, 8($a0) /* 07F8A8 7F04AD78 24090001 */ li $t1, 1 /* 07F8AC 7F04AD7C 24460080 */ addiu $a2, $v0, 0x80 /* 07F8B0 7F04AD80 8D190008 */ lw $t9, 8($t0) /* 07F8B4 7F04AD84 8F250000 */ lw $a1, ($t9) /* 07F8B8 7F04AD88 AFA20058 */ sw $v0, 0x58($sp) /* 07F8BC 7F04AD8C AFA90014 */ sw $t1, 0x14($sp) /* 07F8C0 7F04AD90 0FC127D2 */ jal process_monitor_animation_microcode /* 07F8C4 7F04AD94 AFA30010 */ sw $v1, 0x10($sp) /* 07F8C8 7F04AD98 8FAA0074 */ lw $t2, 0x74($sp) /* 07F8CC 7F04AD9C 00403825 */ move $a3, $v0 /* 07F8D0 7F04ADA0 8FAF0074 */ lw $t7, 0x74($sp) /* 07F8D4 7F04ADA4 8D4B000C */ lw $t3, 0xc($t2) /* 07F8D8 7F04ADA8 8FA40070 */ lw $a0, 0x70($sp) /* 07F8DC 7F04ADAC 000B63C0 */ sll $t4, $t3, 0xf /* 07F8E0 7F04ADB0 05830004 */ bgezl $t4, .L7F04ADC4 /* 07F8E4 7F04ADB4 8DF80008 */ lw $t8, 8($t7) /* 07F8E8 7F04ADB8 10000009 */ b .L7F04ADE0 /* 07F8EC 7F04ADBC 00001825 */ move $v1, $zero /* 07F8F0 7F04ADC0 8DF80008 */ lw $t8, 8($t7) .L7F04ADC4: /* 07F8F4 7F04ADC4 3C013000 */ lui $at, 0x3000 /* 07F8F8 7F04ADC8 24030001 */ li $v1, 1 /* 07F8FC 7F04ADCC 03017024 */ and $t6, $t8, $at /* 07F900 7F04ADD0 11C00003 */ beqz $t6, .L7F04ADE0 /* 07F904 7F04ADD4 00000000 */ nop /* 07F908 7F04ADD8 10000001 */ b .L7F04ADE0 /* 07F90C 7F04ADDC 24030008 */ li $v1, 8 .L7F04ADE0: /* 07F910 7F04ADE0 8C880008 */ lw $t0, 8($a0) /* 07F914 7F04ADE4 8FA60058 */ lw $a2, 0x58($sp) /* 07F918 7F04ADE8 24090001 */ li $t1, 1 /* 07F91C 7F04ADEC 8D190008 */ lw $t9, 8($t0) /* 07F920 7F04ADF0 24C600F4 */ addiu $a2, $a2, 0xf4 /* 07F924 7F04ADF4 8F250004 */ lw $a1, 4($t9) /* 07F928 7F04ADF8 AFA30060 */ sw $v1, 0x60($sp) /* 07F92C 7F04ADFC AFA90014 */ sw $t1, 0x14($sp) /* 07F930 7F04AE00 0FC127D2 */ jal process_monitor_animation_microcode /* 07F934 7F04AE04 AFA30010 */ sw $v1, 0x10($sp) /* 07F938 7F04AE08 8FA40070 */ lw $a0, 0x70($sp) /* 07F93C 7F04AE0C 8FA30060 */ lw $v1, 0x60($sp) /* 07F940 7F04AE10 8FA60058 */ lw $a2, 0x58($sp) /* 07F944 7F04AE14 8C8B0008 */ lw $t3, 8($a0) /* 07F948 7F04AE18 240F0001 */ li $t7, 1 /* 07F94C 7F04AE1C 00403825 */ move $a3, $v0 /* 07F950 7F04AE20 8D6C0008 */ lw $t4, 8($t3) /* 07F954 7F04AE24 24C60168 */ addiu $a2, $a2, 0x168 /* 07F958 7F04AE28 8D850008 */ lw $a1, 8($t4) /* 07F95C 7F04AE2C AFAF0014 */ sw $t7, 0x14($sp) /* 07F960 7F04AE30 0FC127D2 */ jal process_monitor_animation_microcode /* 07F964 7F04AE34 AFA30010 */ sw $v1, 0x10($sp) /* 07F968 7F04AE38 8FA40070 */ lw $a0, 0x70($sp) /* 07F96C 7F04AE3C 8FA30060 */ lw $v1, 0x60($sp) /* 07F970 7F04AE40 8FA60058 */ lw $a2, 0x58($sp) /* 07F974 7F04AE44 8C8E0008 */ lw $t6, 8($a0) /* 07F978 7F04AE48 24080001 */ li $t0, 1 /* 07F97C 7F04AE4C 00403825 */ move $a3, $v0 /* 07F980 7F04AE50 8DCD0008 */ lw $t5, 8($t6) /* 07F984 7F04AE54 24C601DC */ addiu $a2, $a2, 0x1dc /* 07F988 7F04AE58 8DA5000C */ lw $a1, 0xc($t5) /* 07F98C 7F04AE5C AFA80014 */ sw $t0, 0x14($sp) /* 07F990 7F04AE60 0FC127D2 */ jal process_monitor_animation_microcode /* 07F994 7F04AE64 AFA30010 */ sw $v1, 0x10($sp) /* 07F998 7F04AE68 8FB90074 */ lw $t9, 0x74($sp) /* 07F99C 7F04AE6C 00403825 */ move $a3, $v0 /* 07F9A0 7F04AE70 93230003 */ lbu $v1, 3($t9) .L7F04AE74: /* 07F9A4 7F04AE74 24010001 */ li $at, 1 .L7F04AE78: /* 07F9A8 7F04AE78 1461001A */ bne $v1, $at, .L7F04AEE4 /* 07F9AC 7F04AE7C 8FA40074 */ lw $a0, 0x74($sp) /* 07F9B0 7F04AE80 8FA90078 */ lw $t1, 0x78($sp) /* 07F9B4 7F04AE84 00E01025 */ move $v0, $a3 /* 07F9B8 7F04AE88 3C0AB600 */ lui $t2, 0xb600 /* 07F9BC 7F04AE8C 8D230004 */ lw $v1, 4($t1) /* 07F9C0 7F04AE90 240B3000 */ li $t3, 12288 /* 07F9C4 7F04AE94 AC4B0004 */ sw $t3, 4($v0) /* 07F9C8 7F04AE98 AC4A0000 */ sw $t2, ($v0) /* 07F9CC 7F04AE9C 946C0098 */ lhu $t4, 0x98($v1) /* 07F9D0 7F04AEA0 24E70008 */ addiu $a3, $a3, 8 /* 07F9D4 7F04AEA4 24180002 */ li $t8, 2 /* 07F9D8 7F04AEA8 318F0008 */ andi $t7, $t4, 8 /* 07F9DC 7F04AEAC 11E00003 */ beqz $t7, .L7F04AEBC /* 07F9E0 7F04AEB0 240E0003 */ li $t6, 3 /* 07F9E4 7F04AEB4 10000002 */ b .L7F04AEC0 /* 07F9E8 7F04AEB8 AE18003C */ sw $t8, 0x3c($s0) .L7F04AEBC: /* 07F9EC 7F04AEBC AE0E003C */ sw $t6, 0x3c($s0) .L7F04AEC0: /* 07F9F0 7F04AEC0 8E0D0030 */ lw $t5, 0x30($s0) /* 07F9F4 7F04AEC4 24010009 */ li $at, 9 /* 07F9F8 7F04AEC8 55A1004B */ bnel $t5, $at, .L7F04AFF8 /* 07F9FC 7F04AECC 8FB90028 */ lw $t9, 0x28($sp) /* 07FA00 7F04AED0 8E080034 */ lw $t0, 0x34($s0) /* 07FA04 7F04AED4 2401FF00 */ li $at, -256 /* 07FA08 7F04AED8 0101C824 */ and $t9, $t0, $at /* 07FA0C 7F04AEDC 10000045 */ b .L7F04AFF4 /* 07FA10 7F04AEE0 AE190034 */ sw $t9, 0x34($s0) .L7F04AEE4: /* 07FA14 7F04AEE4 0FC12D1E */ jal sub_GAME_7F04B478 /* 07FA18 7F04AEE8 AFA70064 */ sw $a3, 0x64($sp) /* 07FA1C 7F04AEEC 8FA70064 */ lw $a3, 0x64($sp) /* 07FA20 7F04AEF0 1040000F */ beqz $v0, .L7F04AF30 /* 07FA24 7F04AEF4 00002825 */ move $a1, $zero /* 07FA28 7F04AEF8 8C430004 */ lw $v1, 4($v0) /* 07FA2C 7F04AEFC 8FA90074 */ lw $t1, 0x74($sp) /* 07FA30 7F04AF00 5060000C */ beql $v1, $zero, .L7F04AF34 /* 07FA34 7F04AF04 8FA40074 */ lw $a0, 0x74($sp) /* 07FA38 7F04AF08 8D2A0014 */ lw $t2, 0x14($t1) /* 07FA3C 7F04AF0C 946C001A */ lhu $t4, 0x1a($v1) /* 07FA40 7F04AF10 8C780008 */ lw $t8, 8($v1) /* 07FA44 7F04AF14 8D4B0010 */ lw $t3, 0x10($t2) /* 07FA48 7F04AF18 000C7880 */ sll $t7, $t4, 2 /* 07FA4C 7F04AF1C 016F1021 */ addu $v0, $t3, $t7 /* 07FA50 7F04AF20 8C4E0000 */ lw $t6, ($v0) /* 07FA54 7F04AF24 530E0003 */ beql $t8, $t6, .L7F04AF34 /* 07FA58 7F04AF28 8FA40074 */ lw $a0, 0x74($sp) /* 07FA5C 7F04AF2C 24050001 */ li $a1, 1 .L7F04AF30: /* 07FA60 7F04AF30 8FA40074 */ lw $a0, 0x74($sp) .L7F04AF34: /* 07FA64 7F04AF34 AFA50040 */ sw $a1, 0x40($sp) /* 07FA68 7F04AF38 0FC0FFF0 */ jal objGetDestroyedLevel /* 07FA6C 7F04AF3C AFA70064 */ sw $a3, 0x64($sp) /* 07FA70 7F04AF40 8FA50040 */ lw $a1, 0x40($sp) /* 07FA74 7F04AF44 10400003 */ beqz $v0, .L7F04AF54 /* 07FA78 7F04AF48 8FA70064 */ lw $a3, 0x64($sp) /* 07FA7C 7F04AF4C 14A0000B */ bnez $a1, .L7F04AF7C /* 07FA80 7F04AF50 8FA40074 */ lw $a0, 0x74($sp) .L7F04AF54: /* 07FA84 7F04AF54 8E080030 */ lw $t0, 0x30($s0) /* 07FA88 7F04AF58 240D0003 */ li $t5, 3 /* 07FA8C 7F04AF5C 24010009 */ li $at, 9 /* 07FA90 7F04AF60 15010024 */ bne $t0, $at, .L7F04AFF4 /* 07FA94 7F04AF64 AE0D003C */ sw $t5, 0x3c($s0) /* 07FA98 7F04AF68 8E190034 */ lw $t9, 0x34($s0) /* 07FA9C 7F04AF6C 2401FF00 */ li $at, -256 /* 07FAA0 7F04AF70 03214824 */ and $t1, $t9, $at /* 07FAA4 7F04AF74 1000001F */ b .L7F04AFF4 /* 07FAA8 7F04AF78 AE090034 */ sw $t1, 0x34($s0) .L7F04AF7C: /* 07FAAC 7F04AF7C 0FC0FFF0 */ jal objGetDestroyedLevel /* 07FAB0 7F04AF80 AFA70064 */ sw $a3, 0x64($sp) /* 07FAB4 7F04AF84 8E0C0030 */ lw $t4, 0x30($s0) /* 07FAB8 7F04AF88 8FA70064 */ lw $a3, 0x64($sp) /* 07FABC 7F04AF8C 240A0001 */ li $t2, 1 /* 07FAC0 7F04AF90 24010009 */ li $at, 9 /* 07FAC4 7F04AF94 15810012 */ bne $t4, $at, .L7F04AFE0 /* 07FAC8 7F04AF98 AE0A003C */ sw $t2, 0x3c($s0) /* 07FACC 7F04AF9C 00021880 */ sll $v1, $v0, 2 /* 07FAD0 7F04AFA0 00621823 */ subu $v1, $v1, $v0 /* 07FAD4 7F04AFA4 000318C0 */ sll $v1, $v1, 3 /* 07FAD8 7F04AFA8 00621821 */ addu $v1, $v1, $v0 /* 07FADC 7F04AFAC 00031840 */ sll $v1, $v1, 1 /* 07FAE0 7F04AFB0 24640064 */ addiu $a0, $v1, 0x64 /* 07FAE4 7F04AFB4 28810100 */ slti $at, $a0, 0x100 /* 07FAE8 7F04AFB8 54200003 */ bnezl $at, .L7F04AFC8 /* 07FAEC 7F04AFBC 8E0B0034 */ lw $t3, 0x34($s0) /* 07FAF0 7F04AFC0 240400FF */ li $a0, 255 /* 07FAF4 7F04AFC4 8E0B0034 */ lw $t3, 0x34($s0) .L7F04AFC8: /* 07FAF8 7F04AFC8 2401FF00 */ li $at, -256 /* 07FAFC 7F04AFCC 01617824 */ and $t7, $t3, $at /* 07FB00 7F04AFD0 AE0F0034 */ sw $t7, 0x34($s0) /* 07FB04 7F04AFD4 01E47025 */ or $t6, $t7, $a0 /* 07FB08 7F04AFD8 10000006 */ b .L7F04AFF4 /* 07FB0C 7F04AFDC AE0E0034 */ sw $t6, 0x34($s0) .L7F04AFE0: /* 07FB10 7F04AFE0 58400005 */ blezl $v0, .L7F04AFF8 /* 07FB14 7F04AFE4 8FB90028 */ lw $t9, 0x28($sp) /* 07FB18 7F04AFE8 8E0D0034 */ lw $t5, 0x34($s0) /* 07FB1C 7F04AFEC 35A8FF00 */ ori $t0, $t5, 0xff00 /* 07FB20 7F04AFF0 AE080034 */ sw $t0, 0x34($s0) .L7F04AFF4: /* 07FB24 7F04AFF4 8FB90028 */ lw $t9, 0x28($sp) .L7F04AFF8: /* 07FB28 7F04AFF8 3C090103 */ lui $t1, (0x01030040 >> 16) # lui $t1, 0x103 /* 07FB2C 7F04AFFC 35290040 */ ori $t1, (0x01030040 & 0xFFFF) # ori $t1, $t1, 0x40 /* 07FB30 7F04B000 13200009 */ beqz $t9, .L7F04B028 /* 07FB34 7F04B004 00E01825 */ move $v1, $a3 /* 07FB38 7F04B008 24E70008 */ addiu $a3, $a3, 8 /* 07FB3C 7F04B00C AC690000 */ sw $t1, ($v1) /* 07FB40 7F04B010 AFA70064 */ sw $a3, 0x64($sp) /* 07FB44 7F04B014 0FC1E0E5 */ jal get_BONDdata_field_10E0 /* 07FB48 7F04B018 AFA30034 */ sw $v1, 0x34($sp) /* 07FB4C 7F04B01C 8FA30034 */ lw $v1, 0x34($sp) /* 07FB50 7F04B020 8FA70064 */ lw $a3, 0x64($sp) /* 07FB54 7F04B024 AC620004 */ sw $v0, 4($v1) .L7F04B028: /* 07FB58 7F04B028 AE07000C */ sw $a3, 0xc($s0) /* 07FB5C 7F04B02C 8FA50070 */ lw $a1, 0x70($sp) /* 07FB60 7F04B030 0FC1D1A1 */ jal subdraw /* 07FB64 7F04B034 02002025 */ move $a0, $s0 /* 07FB68 7F04B038 8FA30074 */ lw $v1, 0x74($sp) /* 07FB6C 7F04B03C 8E07000C */ lw $a3, 0xc($s0) /* 07FB70 7F04B040 24010001 */ li $at, 1 /* 07FB74 7F04B044 906A0003 */ lbu $t2, 3($v1) /* 07FB78 7F04B048 3C0CB600 */ lui $t4, 0xb600 /* 07FB7C 7F04B04C 240B3000 */ li $t3, 12288 /* 07FB80 7F04B050 15410004 */ bne $t2, $at, .L7F04B064 /* 07FB84 7F04B054 00E01025 */ move $v0, $a3 /* 07FB88 7F04B058 24E70008 */ addiu $a3, $a3, 8 /* 07FB8C 7F04B05C AC4C0000 */ sw $t4, ($v0) /* 07FB90 7F04B060 AC4B0004 */ sw $t3, 4($v0) .L7F04B064: /* 07FB94 7F04B064 8FA60080 */ lw $a2, 0x80($sp) /* 07FB98 7F04B068 906F0002 */ lbu $t7, 2($v1) /* 07FB9C 7F04B06C 24180001 */ li $t8, 1 /* 07FBA0 7F04B070 00D87004 */ sllv $t6, $t8, $a2 /* 07FBA4 7F04B074 01EE6824 */ and $t5, $t7, $t6 /* 07FBA8 7F04B078 11A00005 */ beqz $t5, .L7F04B090 /* 07FBAC 7F04B07C 00E02025 */ move $a0, $a3 /* 07FBB0 7F04B080 0FC286A5 */ jal explosionRenderBulletImpactOnProp /* 07FBB4 7F04B084 8FA50078 */ lw $a1, 0x78($sp) /* 07FBB8 7F04B088 00403825 */ move $a3, $v0 /* 07FBBC 7F04B08C 8FA60080 */ lw $a2, 0x80($sp) .L7F04B090: /* 07FBC0 7F04B090 8FA80028 */ lw $t0, 0x28($sp) /* 07FBC4 7F04B094 3C190103 */ lui $t9, (0x01030040 >> 16) # lui $t9, 0x103 /* 07FBC8 7F04B098 37390040 */ ori $t9, (0x01030040 & 0xFFFF) # ori $t9, $t9, 0x40 /* 07FBCC 7F04B09C 1100000A */ beqz $t0, .L7F04B0C8 /* 07FBD0 7F04B0A0 00E01825 */ move $v1, $a3 /* 07FBD4 7F04B0A4 24E70008 */ addiu $a3, $a3, 8 /* 07FBD8 7F04B0A8 AC790000 */ sw $t9, ($v1) /* 07FBDC 7F04B0AC AFA70064 */ sw $a3, 0x64($sp) /* 07FBE0 7F04B0B0 0FC1E0DD */ jal currentPlayerGetProjectionMatrix /* 07FBE4 7F04B0B4 AFA3002C */ sw $v1, 0x2c($sp) /* 07FBE8 7F04B0B8 8FA3002C */ lw $v1, 0x2c($sp) /* 07FBEC 7F04B0BC 8FA70064 */ lw $a3, 0x64($sp) /* 07FBF0 7F04B0C0 AC620004 */ sw $v0, 4($v1) /* 07FBF4 7F04B0C4 8FA60080 */ lw $a2, 0x80($sp) .L7F04B0C8: /* 07FBF8 7F04B0C8 AE07000C */ sw $a3, 0xc($s0) /* 07FBFC 7F04B0CC 8FA90078 */ lw $t1, 0x78($sp) /* 07FC00 7F04B0D0 8D240020 */ lw $a0, 0x20($t1) /* 07FC04 7F04B0D4 1080000A */ beqz $a0, .L7F04B100 /* 07FC08 7F04B0D8 00000000 */ nop /* 07FC0C 7F04B0DC 8FA60080 */ lw $a2, 0x80($sp) .L7F04B0E0: /* 07FC10 7F04B0E0 02002825 */ move $a1, $s0 /* 07FC14 7F04B0E4 0FC12B08 */ jal sub_GAME_7F04AC20 /* 07FC18 7F04B0E8 AFA40068 */ sw $a0, 0x68($sp) /* 07FC1C 7F04B0EC 8FA40068 */ lw $a0, 0x68($sp) /* 07FC20 7F04B0F0 8C840024 */ lw $a0, 0x24($a0) /* 07FC24 7F04B0F4 5480FFFA */ bnezl $a0, .L7F04B0E0 /* 07FC28 7F04B0F8 8FA60080 */ lw $a2, 0x80($sp) /* 07FC2C 7F04B0FC 8FA60080 */ lw $a2, 0x80($sp) .L7F04B100: /* 07FC30 7F04B100 10C0000E */ beqz $a2, .L7F04B13C /* 07FC34 7F04B104 8FAA0028 */ lw $t2, 0x28($sp) /* 07FC38 7F04B108 11400008 */ beqz $t2, .L7F04B12C /* 07FC3C 7F04B10C 8FA20070 */ lw $v0, 0x70($sp) /* 07FC40 7F04B110 8FA20070 */ lw $v0, 0x70($sp) /* 07FC44 7F04B114 8C4C0008 */ lw $t4, 8($v0) /* 07FC48 7F04B118 8C44000C */ lw $a0, 0xc($v0) /* 07FC4C 7F04B11C 0FC22FBB */ jal sub_GAME_7F08BEEC /* 07FC50 7F04B120 8585000E */ lh $a1, 0xe($t4) /* 07FC54 7F04B124 10000006 */ b .L7F04B140 /* 07FC58 7F04B128 8FBF0024 */ lw $ra, 0x24($sp) .L7F04B12C: /* 07FC5C 7F04B12C 8C4B0008 */ lw $t3, 8($v0) /* 07FC60 7F04B130 8C44000C */ lw $a0, 0xc($v0) /* 07FC64 7F04B134 0FC22F52 */ jal bondviewTransformManyPosToViewMatrix /* 07FC68 7F04B138 8565000E */ lh $a1, 0xe($t3) .L7F04B13C: /* 07FC6C 7F04B13C 8FBF0024 */ lw $ra, 0x24($sp) .L7F04B140: /* 07FC70 7F04B140 8FB00020 */ lw $s0, 0x20($sp) /* 07FC74 7F04B144 27BD0078 */ addiu $sp, $sp, 0x78 /* 07FC78 7F04B148 03E00008 */ jr $ra /* 07FC7C 7F04B14C 00000000 */ nop ) #endif /** * Address 0x7F04B150. */ Gfx *chrobjRenderProp(PropRecord *prop, Gfx *gdl, s32 arg2) { struct rgba_f32 spB0; s32 spAC; s32 spA8; ModelRenderData mrData; struct view4f sp58; struct rgba_s32 sp48; s32 sp44; ObjectRecord *obj; s32 objAlpha; f32 temp_f0; s32 temp_v0_4; s32 phi_a0; obj = prop->obj; mrData = D_80031FD0; objAlpha = 0xFF; spAC = fogGetPropDistColor(prop, &spB0); if (spAC == 0) { return gdl; } if ((u8) obj->type != PROPDEF_TINTED_GLASS) { temp_f0 = chrobjFogVisRangeRelated(prop, getinstsize(obj->model)); if (((s32) prop->timetoregen > 0) && ((s32) prop->timetoregen < CHROBJ_TIMETOREGEN)) { temp_f0 *= ((CHROBJ_TIMETOREGEN_F - (f32) prop->timetoregen) / CHROBJ_TIMETOREGEN_F); } objAlpha = (s32) (temp_f0 * 255.0f); if (objAlpha <= 0) { return gdl; } } if ((objAlpha < 0xFF) || (obj->flags2 & 0x10000)) { if (arg2 == 0) { return gdl; } sp44 = 3; } else { sp44 = (arg2 == 0) ? 1 : 2; } if ((sub_GAME_7F054A64(prop, &sp58) > 0) && (((s32)obj->flags2 << 5) >= 0)) { gdl = bgScissorCurrentPlayerViewF(gdl, sp58.left, sp58.top, sp58.width, sp58.height); } else { gdl = bgScissorCurrentPlayerViewDefault(gdl); } mrData.flags = sp44; mrData.zbufferenabled = (obj->flags2 & 0x10000) == 0; mrData.gdl = gdl; if (objAlpha < 0xFF) { mrData.PropType = 5; mrData.envcolour.word = objAlpha; } else { mrData.PropType = 9; if (obj->type == PROPDEF_TINTED_GLASS) { mrData.envcolour.word = ((struct TintedGlassRecord*)obj)->calculatedopacity << 8; } else if ((obj->type == PROPDEF_DOOR) && ((((struct DoorRecord*)obj)->doorFlags & 2) != 0)) { mrData.envcolour.word = ((struct DoorRecord*)obj)->calculatedopacity << 8; } else { mrData.envcolour.word = 0; } } temp_v0_4 = objGetShotsTaken(obj); phi_a0 = 0xFF - (temp_v0_4 * 0x15); if (phi_a0 < 0) { phi_a0 = 0; } sp48.r = (s32) (obj->shadecol.rgba[0] * phi_a0) >> 8; sp48.g = (s32) (obj->shadecol.rgba[1] * phi_a0) >> 8; sp48.b = (s32) (obj->shadecol.rgba[2] * phi_a0) >> 8; sp48.a = obj->shadecol.rgba[3] + temp_v0_4 * 0xF; if (sp48.a >= 0x100) { sp48.a = 0xFF; } sub_GAME_7F040384(&sp48, spAC, &spB0); mrData.fogcolour.word = (sp48.rgba[0] << 0x18) | (sp48.rgba[1] << 0x10) | (sp48.rgba[2] << 0x08) | (sp48.rgba[3] << 0x00); sub_GAME_7F04AC20(prop, &mrData, arg2); return mrData.gdl; } ModelNode* sub_GAME_7F04B478(ObjectRecord* obj) { ModelFileHeader* header = obj->model->obj; ModelNode *node = header->RootNode; while (node) { u32 type = node->Opcode & 0xff; switch (type) { case MODELNODE_OPCODE_DLCOLLISION: return node; case MODELNODE_OPCODE_LOD: modelApplyDistanceRelations(obj->model, node); break; case MODELNODE_OPCODE_SWITCH: modelApplyToggleRelations(obj->model, node); break; case MODELNODE_OPCODE_HEAD: modelApplyHeadRelations(obj->model, node); break; } if (node->Child) { node = node->Child; } else { while (node) { if (node->Next) { node = node->Next; break; } node = node->Parent; } } } return NULL; } bool sub_GAME_7F04B590(ModelFileHeader* arg0, ModelNode* arg1) { ModelSkeleton* onescreen = &skeleton_console_one_screen; ModelSkeleton* fourscreen = &skeleton_console_four_screen; if ((onescreen == arg0->Skeleton)) { if (arg1 == arg0->Switches[0]) { return FALSE; } } if (fourscreen == arg0->Skeleton) { if ((arg1 == arg0->Switches[0]) || (arg1 == arg0->Switches[1]) || (arg1 == arg0->Switches[2]) || (arg1 == arg0->Switches[3])) { return FALSE; } } return TRUE; } #ifdef NONMATCHING /* * objDeform - Deform an object due to it being destroyed. * PD has a very similar function of the same name * Address: 7F04B610 */ void objDeform(ObjectRecord *obj, s32 arg1) { s32 sp7C; s32 sp78; s32 sp70; f32 sp68; f32 sp5C; f32 sp44; s32 sp40; ModelNode *temp_v0; Vertex **temp_s3; Vertex *temp_a0_2; Vertex *temp_v0_3; Vertex *var_s0; Vertex *var_v1; Vertex *var_v1_2; f32 temp_s1; f32 temp_v0_8; f32 var_f6; s16 *temp_s0_2; s16 temp_a0; s16 temp_v0_4; s16 temp_v0_5; s16 var_s4; s16 var_s6; s32 *temp_t4; s32 *temp_t7; s32 temp_at; s32 temp_at_2; s32 temp_t1; s32 temp_t3; s32 temp_v0_2; s32 temp_v0_6; s32 temp_v0_9; s32 var_s0_2; s32 var_s1; s32 var_s1_2; s32 var_s1_3; s32 var_s1_4; s32 var_s2; s32 var_s7; s32 var_v1_3; void *temp_s0; void *temp_s0_3; void *temp_s0_4; void *temp_s0_5; void *temp_s5; void *temp_v0_10; void *temp_v0_7; temp_s1 = obj->mtx.m[0][0]; var_s6 = 0x1869F; var_s4 = 0xFFFE7961; temp_v0 = sub_GAME_7F04B478(obj); if ((temp_v0 != NULL) && (temp_s5 = temp_v0->Data, (temp_s5 != NULL)) && (sub_GAME_7F04B590(obj->mtx.m[0][0]->unk8, temp_v0) != 0)) { temp_s3 = temp_s1->unk10 + (temp_s5->unk1A * 4); temp_t1 = arg1 * 2; if (randomGetNext() & 1) { sp40 = temp_t1; sp78 = (s32) *(object_explosion_details->Seed + ((obj->unk4 * 0xE) + temp_t1)); } else { temp_v0_2 = arg1 * 2; sp40 = temp_v0_2; sp78 = (s32) *(&object_explosion_details->Seed[3] + ((obj->unk4 * 0xE) + temp_v0_2)); } if ((get_debug_explosioninfo_flag() != 0) || (sp78 == 0)) { get_debug_explosioninfo_flag(); sp78 = randomGetNext(); if (get_debug_explosioninfo_flag() != 0) { sp78 &= 0xFFFF; } } explosionClearBulletImpactRoom((PropRecord *) obj->model); var_s7 = 1; if (obj->unk4 == 0x4C) { var_s7 = 0; } temp_v0_3 = sub_GAME_7F09BE4C(temp_s5->unkC, 0xB0B, temp_s1->unk8, objGetDestroyedLevel(obj)); if (temp_v0_3 != NULL) { if (temp_s5->unk8 != *temp_s3) { var_s2 = 0; var_s1 = 0; var_v1 = temp_v0_3; if (temp_s5->unkC > 0) { do { var_s2 += 1; var_v1 += 0x10; temp_t7 = *temp_s3 + var_s1; temp_at = temp_t7->unk0; var_s1 += 0x10; var_v1->unk-10 = temp_at; var_v1->unk-C = (s32) temp_t7->unk4; var_v1->unk-8 = (s32) temp_t7->unk8; var_v1->unk-4 = (s32) temp_t7->unkC; } while (var_s2 < temp_s5->unkC); var_s2 = 0; } sub_GAME_7F09C044(*temp_s3); } else { var_s2 = 0; var_s1_2 = 0; var_v1_2 = temp_v0_3; if (temp_s5->unkC > 0) { do { var_s2 += 1; var_v1_2 += 0x10; temp_t4 = temp_s5->unk8 + var_s1_2; temp_at_2 = temp_t4->unk0; var_s1_2 += 0x10; var_v1_2->unk-10 = temp_at_2; var_v1_2->unk-C = (s32) temp_t4->unk4; var_v1_2->unk-8 = (s32) temp_t4->unk8; var_v1_2->unk-4 = (s32) temp_t4->unkC; } while (var_s2 < temp_s5->unkC); var_s2 = 0; } } *temp_s3 = temp_v0_3; temp_v0_4 = obj->unk4; var_s1_3 = 0; if ((temp_v0_4 == 0x26) || (temp_v0_4 == 0x27) || (temp_v0_4 == 0x55)) { sp70 = 0; } else { sp70 = 1; } temp_a0 = temp_s5->unkC; if (temp_a0 > 0) { var_s0 = *temp_s3; do { temp_v0_5 = var_s0->coord.AsArray[1]; var_s1_3 += 0x10; if (temp_v0_5 < var_s6) { var_s6 = temp_v0_5; } if (var_s4 < temp_v0_5) { var_s4 = temp_v0_5; } var_s0 += 0x10; } while (var_s1_3 < (temp_a0 * 0x10)); var_s2 = 0; } temp_t3 = (s32) (var_s6 + var_s4) >> 1; var_v1_3 = temp_t3; if ((sp40 == 6) && ((temp_t3 - var_s6) >= 0x29)) { var_v1_3 = var_s6 + 0x28; } temp_v0_6 = var_s4 - var_s6; if (temp_v0_6 >= 0x3D) { if (sp40 < 6) { var_f6 = D_80052CC0; goto block_47; } sp68 = (f32) (temp_v0_6 - 0x3C) / (f32) temp_v0_6; } else { var_f6 = 1.0f; block_47: sp68 = var_f6; } if (temp_a0 > 0) { var_s1_4 = 0; sp7C = var_v1_3; sp44 = (f32) var_s6; do { temp_v0_7 = temp_s5->unk8 + var_s1_4; chrObjRandomSetSeed(temp_v0_7->unk4 + temp_v0_7->unk0 + temp_v0_7->unk2 + sp78); var_s0_2 = 0; if (sp70 != 0) { if (obj->mtx.m[1][2] >= 0.0f) { if ((*temp_s3 + var_s1_4)->unk2 >= sp7C) { if (var_s7 != 0) { var_s0_2 = 0x5A; } else { var_s0_2 = 0x14; } } else if (var_s7 != 0) { var_s0_2 = 0x14; } else { var_s0_2 = 0x5A; } } else if (sp7C >= (*temp_s3 + var_s1_4)->unk2) { if (var_s7 != 0) { var_s0_2 = 0x5A; } else { var_s0_2 = 0x14; } } else if (var_s7 != 0) { var_s0_2 = 0x14; } else { var_s0_2 = 0x5A; } } if ((s32) (chrObjRandomGetNext() % 100U) < var_s0_2) { (*temp_s3 + var_s1_4)->unkC = 0; (*temp_s3 + var_s1_4)->unkD = 0; (*temp_s3 + var_s1_4)->unkE = 0; (*temp_s3 + var_s1_4)->unkF = 0xFF; } else if (sp40 == 2) { (*temp_s3 + var_s1_4)->unkF = 0; } temp_s0 = *temp_s3 + var_s1_4; temp_s0->unk2 = (s16) (s32) (((f32) (temp_s0->unk2 - var_s6) * sp68) + sp44); temp_s0_2 = *temp_s3 + var_s1_4; *temp_s0_2 = (*temp_s0_2 + (chrObjRandomGetNext() % 80U)) - 0x28; temp_s0_3 = *temp_s3 + var_s1_4; temp_s0_3->unk2 = (s16) ((temp_s0_3->unk2 + (chrObjRandomGetNext() % 80U)) - 0x28); temp_s0_4 = *temp_s3 + var_s1_4; temp_s0_4->unk4 = (s16) ((temp_s0_4->unk4 + (chrObjRandomGetNext() % 80U)) - 0x28); temp_s0_5 = *temp_s3 + var_s1_4; if (temp_s0_5->unk2 < var_s6) { temp_s0_5->unk2 = var_s6; } var_s2 += 1; var_s1_4 += 0x10; } while (var_s2 < temp_s5->unkC); } } else { temp_a0_2 = *temp_s3; if (temp_s5->unk8 != temp_a0_2) { sub_GAME_7F09C044(temp_a0_2); *temp_s3 = temp_s5->unk8; obj->ptr_allocated_collisiondata_block = (struct collision_data *) ((s32) obj->ptr_allocated_collisiondata_block | 4); } obj->mtx.m[1][1] *= D_80052CB4; obj->mtx.m[1][2] *= D_80052CB4; obj->mtx.m[1][3] *= D_80052CB4; if (var_s7 != 0) { temp_v0_8 = obj->mtx.m[0][0]; sp5C = temp_v0_8->unk14; temp_v0_9 = chrobjGetBboxFromObjFile(temp_v0_8->unk8); temp_v0_10 = obj->model; temp_v0_10->unkC = (f32) (temp_v0_10->unkC + (sp5C * chrpropBBOXGetYmin(temp_v0_9) * D_80052CB8)); obj->runtime_pos.f[2] += sp5C * chrpropBBOXGetYmin(temp_v0_9) * D_80052CBC; } } } } #else #ifndef VERSION_EU GLOBAL_ASM( .text glabel objDeform /* 080140 7F04B610 27BDFF68 */ addiu $sp, $sp, -0x98 /* 080144 7F04B614 AFB60030 */ sw $s6, 0x30($sp) /* 080148 7F04B618 AFB40028 */ sw $s4, 0x28($sp) /* 08014C 7F04B61C AFBF003C */ sw $ra, 0x3c($sp) /* 080150 7F04B620 AFBE0038 */ sw $fp, 0x38($sp) /* 080154 7F04B624 AFB70034 */ sw $s7, 0x34($sp) /* 080158 7F04B628 AFB5002C */ sw $s5, 0x2c($sp) /* 08015C 7F04B62C AFB30024 */ sw $s3, 0x24($sp) /* 080160 7F04B630 AFB20020 */ sw $s2, 0x20($sp) /* 080164 7F04B634 AFB1001C */ sw $s1, 0x1c($sp) /* 080168 7F04B638 AFB00018 */ sw $s0, 0x18($sp) /* 08016C 7F04B63C 3C14FFFE */ lui $s4, (0xFFFE7961 >> 16) # lui $s4, 0xfffe /* 080170 7F04B640 3C160001 */ li $s6,0x00010000 # 0.000000 /* 080174 7F04B644 00A08025 */ move $s0, $a1 /* 080178 7F04B648 0080F025 */ move $fp, $a0 /* 08017C 7F04B64C 8C910014 */ lw $s1, 0x14($a0) /* 080180 7F04B650 36D6869F */ ori $s6, (0x0001869F & 0xFFFF) # ori $s6, $s6, 0x869f /* 080184 7F04B654 0FC12D1E */ jal sub_GAME_7F04B478 /* 080188 7F04B658 36947961 */ ori $s4, (0xFFFE7961 & 0xFFFF) # ori $s4, $s4, 0x7961 /* 08018C 7F04B65C 10400193 */ beqz $v0, .L7F04BCAC /* 080190 7F04B660 00402825 */ move $a1, $v0 /* 080194 7F04B664 8C550004 */ lw $s5, 4($v0) /* 080198 7F04B668 52A00191 */ beql $s5, $zero, .L7F04BCB0 /* 08019C 7F04B66C 8FBF003C */ lw $ra, 0x3c($sp) /* 0801A0 7F04B670 8FCE0014 */ lw $t6, 0x14($fp) /* 0801A4 7F04B674 0FC12D64 */ jal sub_GAME_7F04B590 /* 0801A8 7F04B678 8DC40008 */ lw $a0, 8($t6) /* 0801AC 7F04B67C 5040018C */ beql $v0, $zero, .L7F04BCB0 /* 0801B0 7F04B680 8FBF003C */ lw $ra, 0x3c($sp) /* 0801B4 7F04B684 96B8001A */ lhu $t8, 0x1a($s5) /* 0801B8 7F04B688 8E2F0010 */ lw $t7, 0x10($s1) /* 0801BC 7F04B68C 0018C880 */ sll $t9, $t8, 2 /* 0801C0 7F04B690 0C002914 */ jal randomGetNext /* 0801C4 7F04B694 01F99821 */ addu $s3, $t7, $t9 /* 0801C8 7F04B698 30480001 */ andi $t0, $v0, 1 /* 0801CC 7F04B69C 1100000C */ beqz $t0, .L7F04B6D0 /* 0801D0 7F04B6A0 00104840 */ sll $t1, $s0, 1 /* 0801D4 7F04B6A4 AFA90040 */ sw $t1, 0x40($sp) /* 0801D8 7F04B6A8 87CA0004 */ lh $t2, 4($fp) /* 0801DC 7F04B6AC 3C0E8004 */ lui $t6, %hi(object_explosion_details+2) /* 0801E0 7F04B6B0 000A58C0 */ sll $t3, $t2, 3 /* 0801E4 7F04B6B4 016A5823 */ subu $t3, $t3, $t2 /* 0801E8 7F04B6B8 000B5840 */ sll $t3, $t3, 1 /* 0801EC 7F04B6BC 01696821 */ addu $t5, $t3, $t1 /* 0801F0 7F04B6C0 01CD7021 */ addu $t6, $t6, $t5 /* 0801F4 7F04B6C4 95CEB226 */ lhu $t6, %lo(object_explosion_details+2)($t6) /* 0801F8 7F04B6C8 1000000C */ b .L7F04B6FC /* 0801FC 7F04B6CC AFAE0078 */ sw $t6, 0x78($sp) .L7F04B6D0: /* 080200 7F04B6D0 87D80004 */ lh $t8, 4($fp) /* 080204 7F04B6D4 00101040 */ sll $v0, $s0, 1 /* 080208 7F04B6D8 3C088004 */ lui $t0, %hi(object_explosion_details+8) /* 08020C 7F04B6DC 001878C0 */ sll $t7, $t8, 3 /* 080210 7F04B6E0 01F87823 */ subu $t7, $t7, $t8 /* 080214 7F04B6E4 000F7840 */ sll $t7, $t7, 1 /* 080218 7F04B6E8 01E2C821 */ addu $t9, $t7, $v0 /* 08021C 7F04B6EC 01194021 */ addu $t0, $t0, $t9 /* 080220 7F04B6F0 9508B22C */ lhu $t0, %lo(object_explosion_details+8)($t0) /* 080224 7F04B6F4 AFA20040 */ sw $v0, 0x40($sp) /* 080228 7F04B6F8 AFA80078 */ sw $t0, 0x78($sp) .L7F04B6FC: /* 08022C 7F04B6FC 0FC243F1 */ jal get_debug_explosioninfo_flag /* 080230 7F04B700 00000000 */ nop /* 080234 7F04B704 14400003 */ bnez $v0, .L7F04B714 /* 080238 7F04B708 8FA90078 */ lw $t1, 0x78($sp) /* 08023C 7F04B70C 1520000B */ bnez $t1, .L7F04B73C /* 080240 7F04B710 00000000 */ nop .L7F04B714: /* 080244 7F04B714 0FC243F1 */ jal get_debug_explosioninfo_flag /* 080248 7F04B718 00000000 */ nop /* 08024C 7F04B71C 0C002914 */ jal randomGetNext /* 080250 7F04B720 00000000 */ nop /* 080254 7F04B724 0FC243F1 */ jal get_debug_explosioninfo_flag /* 080258 7F04B728 AFA20078 */ sw $v0, 0x78($sp) /* 08025C 7F04B72C 10400003 */ beqz $v0, .L7F04B73C /* 080260 7F04B730 8FAA0078 */ lw $t2, 0x78($sp) /* 080264 7F04B734 314BFFFF */ andi $t3, $t2, 0xffff /* 080268 7F04B738 AFAB0078 */ sw $t3, 0x78($sp) .L7F04B73C: /* 08026C 7F04B73C 0FC28364 */ jal explosionClearBulletImpactRoom /* 080270 7F04B740 8FC40010 */ lw $a0, 0x10($fp) /* 080274 7F04B744 87CC0004 */ lh $t4, 4($fp) /* 080278 7F04B748 2401004C */ li $at, 76 /* 08027C 7F04B74C 24170001 */ li $s7, 1 /* 080280 7F04B750 15810003 */ bne $t4, $at, .L7F04B760 /* 080284 7F04B754 00000000 */ nop /* 080288 7F04B758 10000001 */ b .L7F04B760 /* 08028C 7F04B75C 0000B825 */ move $s7, $zero .L7F04B760: /* 080290 7F04B760 0FC0FFF0 */ jal objGetDestroyedLevel /* 080294 7F04B764 03C02025 */ move $a0, $fp /* 080298 7F04B768 86A4000C */ lh $a0, 0xc($s5) /* 08029C 7F04B76C 24050B0B */ li $a1, 2827 /* 0802A0 7F04B770 8E260008 */ lw $a2, 8($s1) /* 0802A4 7F04B774 0FC26F93 */ jal sub_GAME_7F09BE4C /* 0802A8 7F04B778 00403825 */ move $a3, $v0 /* 0802AC 7F04B77C 1040003A */ beqz $v0, .L7F04B868 /* 0802B0 7F04B780 00408025 */ move $s0, $v0 /* 0802B4 7F04B784 8E640000 */ lw $a0, ($s3) /* 0802B8 7F04B788 8EAD0008 */ lw $t5, 8($s5) /* 0802BC 7F04B78C 51A4001E */ beql $t5, $a0, .L7F04B808 /* 0802C0 7F04B790 86AA000C */ lh $t2, 0xc($s5) /* 0802C4 7F04B794 86AE000C */ lh $t6, 0xc($s5) /* 0802C8 7F04B798 00009025 */ move $s2, $zero /* 0802CC 7F04B79C 00008825 */ move $s1, $zero /* 0802D0 7F04B7A0 19C00014 */ blez $t6, .L7F04B7F4 /* 0802D4 7F04B7A4 00401825 */ move $v1, $v0 /* 0802D8 7F04B7A8 8E780000 */ lw $t8, ($s3) .L7F04B7AC: /* 0802DC 7F04B7AC 26520001 */ addiu $s2, $s2, 1 /* 0802E0 7F04B7B0 24630010 */ addiu $v1, $v1, 0x10 /* 0802E4 7F04B7B4 03117821 */ addu $t7, $t8, $s1 /* 0802E8 7F04B7B8 8DE10000 */ lw $at, ($t7) /* 0802EC 7F04B7BC 26310010 */ addiu $s1, $s1, 0x10 /* 0802F0 7F04B7C0 AC61FFF0 */ sw $at, -0x10($v1) /* 0802F4 7F04B7C4 8DE80004 */ lw $t0, 4($t7) /* 0802F8 7F04B7C8 AC68FFF4 */ sw $t0, -0xc($v1) /* 0802FC 7F04B7CC 8DE10008 */ lw $at, 8($t7) /* 080300 7F04B7D0 AC61FFF8 */ sw $at, -8($v1) /* 080304 7F04B7D4 8DE8000C */ lw $t0, 0xc($t7) /* 080308 7F04B7D8 AC68FFFC */ sw $t0, -4($v1) /* 08030C 7F04B7DC 86A9000C */ lh $t1, 0xc($s5) /* 080310 7F04B7E0 0249082A */ slt $at, $s2, $t1 /* 080314 7F04B7E4 5420FFF1 */ bnezl $at, .L7F04B7AC /* 080318 7F04B7E8 8E780000 */ lw $t8, ($s3) /* 08031C 7F04B7EC 8E640000 */ lw $a0, ($s3) /* 080320 7F04B7F0 00009025 */ move $s2, $zero .L7F04B7F4: /* 080324 7F04B7F4 0FC27011 */ jal sub_GAME_7F09C044 /* 080328 7F04B7F8 00000000 */ nop /* 08032C 7F04B7FC 10000018 */ b .L7F04B860 /* 080330 7F04B800 00000000 */ nop /* 080334 7F04B804 86AA000C */ lh $t2, 0xc($s5) .L7F04B808: /* 080338 7F04B808 00009025 */ move $s2, $zero /* 08033C 7F04B80C 00008825 */ move $s1, $zero /* 080340 7F04B810 19400013 */ blez $t2, .L7F04B860 /* 080344 7F04B814 00401825 */ move $v1, $v0 /* 080348 7F04B818 8EAB0008 */ lw $t3, 8($s5) .L7F04B81C: /* 08034C 7F04B81C 26520001 */ addiu $s2, $s2, 1 /* 080350 7F04B820 24630010 */ addiu $v1, $v1, 0x10 /* 080354 7F04B824 01716021 */ addu $t4, $t3, $s1 /* 080358 7F04B828 8D810000 */ lw $at, ($t4) /* 08035C 7F04B82C 26310010 */ addiu $s1, $s1, 0x10 /* 080360 7F04B830 AC61FFF0 */ sw $at, -0x10($v1) /* 080364 7F04B834 8D8E0004 */ lw $t6, 4($t4) /* 080368 7F04B838 AC6EFFF4 */ sw $t6, -0xc($v1) /* 08036C 7F04B83C 8D810008 */ lw $at, 8($t4) /* 080370 7F04B840 AC61FFF8 */ sw $at, -8($v1) /* 080374 7F04B844 8D8E000C */ lw $t6, 0xc($t4) /* 080378 7F04B848 AC6EFFFC */ sw $t6, -4($v1) /* 08037C 7F04B84C 86B8000C */ lh $t8, 0xc($s5) /* 080380 7F04B850 0258082A */ slt $at, $s2, $t8 /* 080384 7F04B854 5420FFF1 */ bnezl $at, .L7F04B81C /* 080388 7F04B858 8EAB0008 */ lw $t3, 8($s5) /* 08038C 7F04B85C 00009025 */ move $s2, $zero .L7F04B860: /* 080390 7F04B860 10000036 */ b .L7F04B93C /* 080394 7F04B864 AE700000 */ sw $s0, ($s3) .L7F04B868: /* 080398 7F04B868 8E640000 */ lw $a0, ($s3) /* 08039C 7F04B86C 8EB90008 */ lw $t9, 8($s5) /* 0803A0 7F04B870 13240008 */ beq $t9, $a0, .L7F04B894 /* 0803A4 7F04B874 00000000 */ nop /* 0803A8 7F04B878 0FC27011 */ jal sub_GAME_7F09C044 /* 0803AC 7F04B87C 00000000 */ nop /* 0803B0 7F04B880 8EAF0008 */ lw $t7, 8($s5) /* 0803B4 7F04B884 AE6F0000 */ sw $t7, ($s3) /* 0803B8 7F04B888 8FC80064 */ lw $t0, 0x64($fp) /* 0803BC 7F04B88C 35090004 */ ori $t1, $t0, 4 /* 0803C0 7F04B890 AFC90064 */ sw $t1, 0x64($fp) .L7F04B894: /* 0803C4 7F04B894 3C018005 */ lui $at, %hi(D_80052CB4) /* 0803C8 7F04B898 C4202CB4 */ lwc1 $f0, %lo(D_80052CB4)($at) /* 0803CC 7F04B89C C7C40028 */ lwc1 $f4, 0x28($fp) /* 0803D0 7F04B8A0 C7C8002C */ lwc1 $f8, 0x2c($fp) /* 0803D4 7F04B8A4 C7D00030 */ lwc1 $f16, 0x30($fp) /* 0803D8 7F04B8A8 46002182 */ mul.s $f6, $f4, $f0 /* 0803DC 7F04B8AC 00000000 */ nop /* 0803E0 7F04B8B0 46004282 */ mul.s $f10, $f8, $f0 /* 0803E4 7F04B8B4 00000000 */ nop /* 0803E8 7F04B8B8 46008482 */ mul.s $f18, $f16, $f0 /* 0803EC 7F04B8BC E7C60028 */ swc1 $f6, 0x28($fp) /* 0803F0 7F04B8C0 E7CA002C */ swc1 $f10, 0x2c($fp) /* 0803F4 7F04B8C4 12E000F9 */ beqz $s7, .L7F04BCAC /* 0803F8 7F04B8C8 E7D20030 */ swc1 $f18, 0x30($fp) /* 0803FC 7F04B8CC 8FC20014 */ lw $v0, 0x14($fp) /* 080400 7F04B8D0 C4440014 */ lwc1 $f4, 0x14($v0) /* 080404 7F04B8D4 8C440008 */ lw $a0, 8($v0) /* 080408 7F04B8D8 0FC0FFFE */ jal chrobjGetBboxFromObjFile /* 08040C 7F04B8DC E7A4005C */ swc1 $f4, 0x5c($sp) /* 080410 7F04B8E0 00408025 */ move $s0, $v0 /* 080414 7F04B8E4 0FC0FA19 */ jal chrpropBBOXGetYmin /* 080418 7F04B8E8 00402025 */ move $a0, $v0 /* 08041C 7F04B8EC C7A6005C */ lwc1 $f6, 0x5c($sp) /* 080420 7F04B8F0 3C018005 */ lui $at, %hi(D_80052CB8) /* 080424 7F04B8F4 C42A2CB8 */ lwc1 $f10, %lo(D_80052CB8)($at) /* 080428 7F04B8F8 46003202 */ mul.s $f8, $f6, $f0 /* 08042C 7F04B8FC 8FC20010 */ lw $v0, 0x10($fp) /* 080430 7F04B900 02002025 */ move $a0, $s0 /* 080434 7F04B904 C452000C */ lwc1 $f18, 0xc($v0) /* 080438 7F04B908 460A4402 */ mul.s $f16, $f8, $f10 /* 08043C 7F04B90C 46109100 */ add.s $f4, $f18, $f16 /* 080440 7F04B910 0FC0FA19 */ jal chrpropBBOXGetYmin /* 080444 7F04B914 E444000C */ swc1 $f4, 0xc($v0) /* 080448 7F04B918 C7A6005C */ lwc1 $f6, 0x5c($sp) /* 08044C 7F04B91C 3C018005 */ lui $at, %hi(D_80052CBC) /* 080450 7F04B920 C42A2CBC */ lwc1 $f10, %lo(D_80052CBC)($at) /* 080454 7F04B924 46003202 */ mul.s $f8, $f6, $f0 /* 080458 7F04B928 C7D0005C */ lwc1 $f16, 0x5c($fp) /* 08045C 7F04B92C 460A4482 */ mul.s $f18, $f8, $f10 /* 080460 7F04B930 46128100 */ add.s $f4, $f16, $f18 /* 080464 7F04B934 100000DD */ b .L7F04BCAC /* 080468 7F04B938 E7C4005C */ swc1 $f4, 0x5c($fp) .L7F04B93C: /* 08046C 7F04B93C 87C20004 */ lh $v0, 4($fp) /* 080470 7F04B940 24010026 */ li $at, 38 /* 080474 7F04B944 00008825 */ move $s1, $zero /* 080478 7F04B948 10410005 */ beq $v0, $at, .L7F04B960 /* 08047C 7F04B94C 24010027 */ li $at, 39 /* 080480 7F04B950 10410003 */ beq $v0, $at, .L7F04B960 /* 080484 7F04B954 24010055 */ li $at, 85 /* 080488 7F04B958 14410003 */ bne $v0, $at, .L7F04B968 /* 08048C 7F04B95C 240A0001 */ li $t2, 1 .L7F04B960: /* 080490 7F04B960 10000002 */ b .L7F04B96C /* 080494 7F04B964 AFA00070 */ sw $zero, 0x70($sp) .L7F04B968: /* 080498 7F04B968 AFAA0070 */ sw $t2, 0x70($sp) .L7F04B96C: /* 08049C 7F04B96C 86A4000C */ lh $a0, 0xc($s5) /* 0804A0 7F04B970 8FA50040 */ lw $a1, 0x40($sp) /* 0804A4 7F04B974 18800010 */ blez $a0, .L7F04B9B8 /* 0804A8 7F04B978 00041900 */ sll $v1, $a0, 4 /* 0804AC 7F04B97C 8E700000 */ lw $s0, ($s3) .L7F04B980: /* 0804B0 7F04B980 86020002 */ lh $v0, 2($s0) /* 0804B4 7F04B984 26310010 */ addiu $s1, $s1, 0x10 /* 0804B8 7F04B988 0056082A */ slt $at, $v0, $s6 /* 0804BC 7F04B98C 50200003 */ beql $at, $zero, .L7F04B99C /* 0804C0 7F04B990 0282082A */ slt $at, $s4, $v0 /* 0804C4 7F04B994 0040B025 */ move $s6, $v0 /* 0804C8 7F04B998 0282082A */ slt $at, $s4, $v0 .L7F04B99C: /* 0804CC 7F04B99C 50200003 */ beql $at, $zero, .L7F04B9AC /* 0804D0 7F04B9A0 0223082A */ slt $at, $s1, $v1 /* 0804D4 7F04B9A4 0040A025 */ move $s4, $v0 /* 0804D8 7F04B9A8 0223082A */ slt $at, $s1, $v1 .L7F04B9AC: /* 0804DC 7F04B9AC 1420FFF4 */ bnez $at, .L7F04B980 /* 0804E0 7F04B9B0 26100010 */ addiu $s0, $s0, 0x10 /* 0804E4 7F04B9B4 00009025 */ move $s2, $zero .L7F04B9B8: /* 0804E8 7F04B9B8 02D41021 */ addu $v0, $s6, $s4 /* 0804EC 7F04B9BC 00025843 */ sra $t3, $v0, 1 /* 0804F0 7F04B9C0 24010006 */ li $at, 6 /* 0804F4 7F04B9C4 14A10006 */ bne $a1, $at, .L7F04B9E0 /* 0804F8 7F04B9C8 01601825 */ move $v1, $t3 /* 0804FC 7F04B9CC 01766823 */ subu $t5, $t3, $s6 /* 080500 7F04B9D0 29A10029 */ slti $at, $t5, 0x29 /* 080504 7F04B9D4 54200003 */ bnezl $at, .L7F04B9E4 /* 080508 7F04B9D8 02961023 */ subu $v0, $s4, $s6 /* 08050C 7F04B9DC 26C30028 */ addiu $v1, $s6, 0x28 .L7F04B9E0: /* 080510 7F04B9E0 02961023 */ subu $v0, $s4, $s6 .L7F04B9E4: /* 080514 7F04B9E4 2841003D */ slti $at, $v0, 0x3d /* 080518 7F04B9E8 1420000E */ bnez $at, .L7F04BA24 /* 08051C 7F04B9EC 28A10006 */ slti $at, $a1, 6 /* 080520 7F04B9F0 10200005 */ beqz $at, .L7F04BA08 /* 080524 7F04B9F4 244CFFC4 */ addiu $t4, $v0, -0x3c /* 080528 7F04B9F8 3C018005 */ lui $at, %hi(D_80052CC0) /* 08052C 7F04B9FC C4262CC0 */ lwc1 $f6, %lo(D_80052CC0)($at) /* 080530 7F04BA00 1000000C */ b .L7F04BA34 /* 080534 7F04BA04 E7A60068 */ swc1 $f6, 0x68($sp) .L7F04BA08: /* 080538 7F04BA08 448C4000 */ mtc1 $t4, $f8 /* 08053C 7F04BA0C 44828000 */ mtc1 $v0, $f16 /* 080540 7F04BA10 468042A0 */ cvt.s.w $f10, $f8 /* 080544 7F04BA14 468084A0 */ cvt.s.w $f18, $f16 /* 080548 7F04BA18 46125103 */ div.s $f4, $f10, $f18 /* 08054C 7F04BA1C 10000005 */ b .L7F04BA34 /* 080550 7F04BA20 E7A40068 */ swc1 $f4, 0x68($sp) .L7F04BA24: /* 080554 7F04BA24 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 080558 7F04BA28 44813000 */ mtc1 $at, $f6 /* 08055C 7F04BA2C 00000000 */ nop /* 080560 7F04BA30 E7A60068 */ swc1 $f6, 0x68($sp) .L7F04BA34: /* 080564 7F04BA34 5880009E */ blezl $a0, .L7F04BCB0 /* 080568 7F04BA38 8FBF003C */ lw $ra, 0x3c($sp) /* 08056C 7F04BA3C 44964000 */ mtc1 $s6, $f8 /* 080570 7F04BA40 00008825 */ move $s1, $zero /* 080574 7F04BA44 AFA3007C */ sw $v1, 0x7c($sp) /* 080578 7F04BA48 46804420 */ cvt.s.w $f16, $f8 /* 08057C 7F04BA4C 24140050 */ li $s4, 80 /* 080580 7F04BA50 E7B00044 */ swc1 $f16, 0x44($sp) /* 080584 7F04BA54 8EAE0008 */ lw $t6, 8($s5) .L7F04BA58: /* 080588 7F04BA58 8FAA0078 */ lw $t2, 0x78($sp) /* 08058C 7F04BA5C 01D11021 */ addu $v0, $t6, $s1 /* 080590 7F04BA60 84580004 */ lh $t8, 4($v0) /* 080594 7F04BA64 84590000 */ lh $t9, ($v0) /* 080598 7F04BA68 84480002 */ lh $t0, 2($v0) /* 08059C 7F04BA6C 03197821 */ addu $t7, $t8, $t9 /* 0805A0 7F04BA70 01E84821 */ addu $t1, $t7, $t0 /* 0805A4 7F04BA74 0FC26DE2 */ jal chrObjRandomSetSeed /* 0805A8 7F04BA78 012A2021 */ addu $a0, $t1, $t2 /* 0805AC 7F04BA7C 8FAB0070 */ lw $t3, 0x70($sp) /* 0805B0 7F04BA80 00008025 */ move $s0, $zero /* 0805B4 7F04BA84 1160002E */ beqz $t3, .L7F04BB40 /* 0805B8 7F04BA88 00000000 */ nop /* 0805BC 7F04BA8C C7CA002C */ lwc1 $f10, 0x2c($fp) /* 0805C0 7F04BA90 44809000 */ mtc1 $zero, $f18 /* 0805C4 7F04BA94 00000000 */ nop /* 0805C8 7F04BA98 460A903E */ c.le.s $f18, $f10 /* 0805CC 7F04BA9C 00000000 */ nop /* 0805D0 7F04BAA0 45020015 */ bc1fl .L7F04BAF8 /* 0805D4 7F04BAA4 8E6F0000 */ lw $t7, ($s3) /* 0805D8 7F04BAA8 8E6D0000 */ lw $t5, ($s3) /* 0805DC 7F04BAAC 8FB8007C */ lw $t8, 0x7c($sp) /* 0805E0 7F04BAB0 01B16021 */ addu $t4, $t5, $s1 /* 0805E4 7F04BAB4 858E0002 */ lh $t6, 2($t4) /* 0805E8 7F04BAB8 01D8082A */ slt $at, $t6, $t8 /* 0805EC 7F04BABC 14200007 */ bnez $at, .L7F04BADC /* 0805F0 7F04BAC0 00000000 */ nop /* 0805F4 7F04BAC4 12E00003 */ beqz $s7, .L7F04BAD4 /* 0805F8 7F04BAC8 00000000 */ nop /* 0805FC 7F04BACC 1000001C */ b .L7F04BB40 /* 080600 7F04BAD0 2410005A */ li $s0, 90 .L7F04BAD4: /* 080604 7F04BAD4 1000001A */ b .L7F04BB40 /* 080608 7F04BAD8 24100014 */ li $s0, 20 .L7F04BADC: /* 08060C 7F04BADC 12E00003 */ beqz $s7, .L7F04BAEC /* 080610 7F04BAE0 00000000 */ nop /* 080614 7F04BAE4 10000016 */ b .L7F04BB40 /* 080618 7F04BAE8 24100014 */ li $s0, 20 .L7F04BAEC: /* 08061C 7F04BAEC 10000014 */ b .L7F04BB40 /* 080620 7F04BAF0 2410005A */ li $s0, 90 /* 080624 7F04BAF4 8E6F0000 */ lw $t7, ($s3) .L7F04BAF8: /* 080628 7F04BAF8 8FB9007C */ lw $t9, 0x7c($sp) /* 08062C 7F04BAFC 01F14021 */ addu $t0, $t7, $s1 /* 080630 7F04BB00 85090002 */ lh $t1, 2($t0) /* 080634 7F04BB04 0329082A */ slt $at, $t9, $t1 /* 080638 7F04BB08 14200007 */ bnez $at, .L7F04BB28 /* 08063C 7F04BB0C 00000000 */ nop /* 080640 7F04BB10 12E00003 */ beqz $s7, .L7F04BB20 /* 080644 7F04BB14 00000000 */ nop /* 080648 7F04BB18 10000009 */ b .L7F04BB40 /* 08064C 7F04BB1C 2410005A */ li $s0, 90 .L7F04BB20: /* 080650 7F04BB20 10000007 */ b .L7F04BB40 /* 080654 7F04BB24 24100014 */ li $s0, 20 .L7F04BB28: /* 080658 7F04BB28 12E00003 */ beqz $s7, .L7F04BB38 /* 08065C 7F04BB2C 00000000 */ nop /* 080660 7F04BB30 10000003 */ b .L7F04BB40 /* 080664 7F04BB34 24100014 */ li $s0, 20 .L7F04BB38: /* 080668 7F04BB38 10000001 */ b .L7F04BB40 /* 08066C 7F04BB3C 2410005A */ li $s0, 90 .L7F04BB40: /* 080670 7F04BB40 0FC26DD0 */ jal chrObjRandomGetNext /* 080674 7F04BB44 00000000 */ nop /* 080678 7F04BB48 24010064 */ li $at, 100 /* 08067C 7F04BB4C 0041001B */ divu $zero, $v0, $at /* 080680 7F04BB50 00005010 */ mfhi $t2 /* 080684 7F04BB54 0150082A */ slt $at, $t2, $s0 /* 080688 7F04BB58 1020000F */ beqz $at, .L7F04BB98 /* 08068C 7F04BB5C 8FAA0040 */ lw $t2, 0x40($sp) /* 080690 7F04BB60 8E6B0000 */ lw $t3, ($s3) /* 080694 7F04BB64 240800FF */ li $t0, 255 /* 080698 7F04BB68 01716821 */ addu $t5, $t3, $s1 /* 08069C 7F04BB6C A1A0000C */ sb $zero, 0xc($t5) /* 0806A0 7F04BB70 8E6C0000 */ lw $t4, ($s3) /* 0806A4 7F04BB74 01917021 */ addu $t6, $t4, $s1 /* 0806A8 7F04BB78 A1C0000D */ sb $zero, 0xd($t6) /* 0806AC 7F04BB7C 8E780000 */ lw $t8, ($s3) /* 0806B0 7F04BB80 03117821 */ addu $t7, $t8, $s1 /* 0806B4 7F04BB84 A1E0000E */ sb $zero, 0xe($t7) /* 0806B8 7F04BB88 8E790000 */ lw $t9, ($s3) /* 0806BC 7F04BB8C 03314821 */ addu $t1, $t9, $s1 /* 0806C0 7F04BB90 10000007 */ b .L7F04BBB0 /* 0806C4 7F04BB94 A128000F */ sb $t0, 0xf($t1) .L7F04BB98: /* 0806C8 7F04BB98 24010002 */ li $at, 2 /* 0806CC 7F04BB9C 55410005 */ bnel $t2, $at, .L7F04BBB4 /* 0806D0 7F04BBA0 8E6C0000 */ lw $t4, ($s3) /* 0806D4 7F04BBA4 8E6B0000 */ lw $t3, ($s3) /* 0806D8 7F04BBA8 01716821 */ addu $t5, $t3, $s1 /* 0806DC 7F04BBAC A1A0000F */ sb $zero, 0xf($t5) .L7F04BBB0: /* 0806E0 7F04BBB0 8E6C0000 */ lw $t4, ($s3) .L7F04BBB4: /* 0806E4 7F04BBB4 C7A80068 */ lwc1 $f8, 0x68($sp) /* 0806E8 7F04BBB8 C7AA0044 */ lwc1 $f10, 0x44($sp) /* 0806EC 7F04BBBC 01918021 */ addu $s0, $t4, $s1 /* 0806F0 7F04BBC0 860E0002 */ lh $t6, 2($s0) /* 0806F4 7F04BBC4 01D6C023 */ subu $t8, $t6, $s6 /* 0806F8 7F04BBC8 44982000 */ mtc1 $t8, $f4 /* 0806FC 7F04BBCC 00000000 */ nop /* 080700 7F04BBD0 468021A0 */ cvt.s.w $f6, $f4 /* 080704 7F04BBD4 46083402 */ mul.s $f16, $f6, $f8 /* 080708 7F04BBD8 460A8480 */ add.s $f18, $f16, $f10 /* 08070C 7F04BBDC 4600910D */ trunc.w.s $f4, $f18 /* 080710 7F04BBE0 44192000 */ mfc1 $t9, $f4 /* 080714 7F04BBE4 0FC26DD0 */ jal chrObjRandomGetNext /* 080718 7F04BBE8 A6190002 */ sh $t9, 2($s0) /* 08071C 7F04BBEC 0054001B */ divu $zero, $v0, $s4 /* 080720 7F04BBF0 8E680000 */ lw $t0, ($s3) /* 080724 7F04BBF4 00005010 */ mfhi $t2 /* 080728 7F04BBF8 01118021 */ addu $s0, $t0, $s1 /* 08072C 7F04BBFC 86090000 */ lh $t1, ($s0) /* 080730 7F04BC00 16800002 */ bnez $s4, .L7F04BC0C /* 080734 7F04BC04 00000000 */ nop /* 080738 7F04BC08 0007000D */ break 7 .L7F04BC0C: /* 08073C 7F04BC0C 012A5821 */ addu $t3, $t1, $t2 /* 080740 7F04BC10 256DFFD8 */ addiu $t5, $t3, -0x28 /* 080744 7F04BC14 0FC26DD0 */ jal chrObjRandomGetNext /* 080748 7F04BC18 A60D0000 */ sh $t5, ($s0) /* 08074C 7F04BC1C 0054001B */ divu $zero, $v0, $s4 /* 080750 7F04BC20 8E6C0000 */ lw $t4, ($s3) /* 080754 7F04BC24 0000C010 */ mfhi $t8 /* 080758 7F04BC28 01918021 */ addu $s0, $t4, $s1 /* 08075C 7F04BC2C 860E0002 */ lh $t6, 2($s0) /* 080760 7F04BC30 16800002 */ bnez $s4, .L7F04BC3C /* 080764 7F04BC34 00000000 */ nop /* 080768 7F04BC38 0007000D */ break 7 .L7F04BC3C: /* 08076C 7F04BC3C 01D87821 */ addu $t7, $t6, $t8 /* 080770 7F04BC40 25F9FFD8 */ addiu $t9, $t7, -0x28 /* 080774 7F04BC44 0FC26DD0 */ jal chrObjRandomGetNext /* 080778 7F04BC48 A6190002 */ sh $t9, 2($s0) /* 08077C 7F04BC4C 0054001B */ divu $zero, $v0, $s4 /* 080780 7F04BC50 8E680000 */ lw $t0, ($s3) /* 080784 7F04BC54 00005010 */ mfhi $t2 /* 080788 7F04BC58 01118021 */ addu $s0, $t0, $s1 /* 08078C 7F04BC5C 86090004 */ lh $t1, 4($s0) /* 080790 7F04BC60 16800002 */ bnez $s4, .L7F04BC6C /* 080794 7F04BC64 00000000 */ nop /* 080798 7F04BC68 0007000D */ break 7 .L7F04BC6C: /* 08079C 7F04BC6C 012A5821 */ addu $t3, $t1, $t2 /* 0807A0 7F04BC70 256DFFD8 */ addiu $t5, $t3, -0x28 /* 0807A4 7F04BC74 A60D0004 */ sh $t5, 4($s0) /* 0807A8 7F04BC78 8E6C0000 */ lw $t4, ($s3) /* 0807AC 7F04BC7C 01918021 */ addu $s0, $t4, $s1 /* 0807B0 7F04BC80 860E0002 */ lh $t6, 2($s0) /* 0807B4 7F04BC84 01D6082A */ slt $at, $t6, $s6 /* 0807B8 7F04BC88 50200003 */ beql $at, $zero, .L7F04BC98 /* 0807BC 7F04BC8C 86B8000C */ lh $t8, 0xc($s5) /* 0807C0 7F04BC90 A6160002 */ sh $s6, 2($s0) /* 0807C4 7F04BC94 86B8000C */ lh $t8, 0xc($s5) .L7F04BC98: /* 0807C8 7F04BC98 26520001 */ addiu $s2, $s2, 1 /* 0807CC 7F04BC9C 26310010 */ addiu $s1, $s1, 0x10 /* 0807D0 7F04BCA0 0258082A */ slt $at, $s2, $t8 /* 0807D4 7F04BCA4 5420FF6C */ bnezl $at, .L7F04BA58 /* 0807D8 7F04BCA8 8EAE0008 */ lw $t6, 8($s5) .L7F04BCAC: /* 0807DC 7F04BCAC 8FBF003C */ lw $ra, 0x3c($sp) .L7F04BCB0: /* 0807E0 7F04BCB0 8FB00018 */ lw $s0, 0x18($sp) /* 0807E4 7F04BCB4 8FB1001C */ lw $s1, 0x1c($sp) /* 0807E8 7F04BCB8 8FB20020 */ lw $s2, 0x20($sp) /* 0807EC 7F04BCBC 8FB30024 */ lw $s3, 0x24($sp) /* 0807F0 7F04BCC0 8FB40028 */ lw $s4, 0x28($sp) /* 0807F4 7F04BCC4 8FB5002C */ lw $s5, 0x2c($sp) /* 0807F8 7F04BCC8 8FB60030 */ lw $s6, 0x30($sp) /* 0807FC 7F04BCCC 8FB70034 */ lw $s7, 0x34($sp) /* 080800 7F04BCD0 8FBE0038 */ lw $fp, 0x38($sp) /* 080804 7F04BCD4 03E00008 */ jr $ra /* 080808 7F04BCD8 27BD0098 */ addiu $sp, $sp, 0x98 ) #endif #ifdef VERSION_EU GLOBAL_ASM( .text glabel objDeform /* 07E1DC 7F04B7EC 27BDFF68 */ addiu $sp, $sp, -0x98 /* 07E1E0 7F04B7F0 AFB60030 */ sw $s6, 0x30($sp) /* 07E1E4 7F04B7F4 AFB40028 */ sw $s4, 0x28($sp) /* 07E1E8 7F04B7F8 AFBF003C */ sw $ra, 0x3c($sp) /* 07E1EC 7F04B7FC AFBE0038 */ sw $fp, 0x38($sp) /* 07E1F0 7F04B800 AFB70034 */ sw $s7, 0x34($sp) /* 07E1F4 7F04B804 AFB5002C */ sw $s5, 0x2c($sp) /* 07E1F8 7F04B808 AFB30024 */ sw $s3, 0x24($sp) /* 07E1FC 7F04B80C AFB20020 */ sw $s2, 0x20($sp) /* 07E200 7F04B810 AFB1001C */ sw $s1, 0x1c($sp) /* 07E204 7F04B814 AFB00018 */ sw $s0, 0x18($sp) /* 07E208 7F04B818 AFA5009C */ sw $a1, 0x9c($sp) /* 07E20C 7F04B81C 3C14FFFE */ lui $s4, (0xFFFE7961 >> 16) # lui $s4, 0xfffe /* 07E210 7F04B820 3C160001 */ li $s6, 0x00010000 # 0.000000 /* 07E214 7F04B824 0080F025 */ move $fp, $a0 /* 07E218 7F04B828 8C900014 */ lw $s0, 0x14($a0) /* 07E21C 7F04B82C 36D6869F */ ori $s6, (0x0001869F & 0xFFFF) # ori $s6, $s6, 0x869f /* 07E220 7F04B830 0FC12D95 */ jal sub_GAME_7F04B478 /* 07E224 7F04B834 36947961 */ ori $s4, (0xFFFE7961 & 0xFFFF) # ori $s4, $s4, 0x7961 /* 07E228 7F04B838 10400199 */ beqz $v0, .L7F04BEA0 /* 07E22C 7F04B83C 00402825 */ move $a1, $v0 /* 07E230 7F04B840 8C550004 */ lw $s5, 4($v0) /* 07E234 7F04B844 52A00197 */ beql $s5, $zero, .L7F04BEA4 /* 07E238 7F04B848 8FBF003C */ lw $ra, 0x3c($sp) /* 07E23C 7F04B84C 8FCE0014 */ lw $t6, 0x14($fp) /* 07E240 7F04B850 0FC12DDB */ jal sub_GAME_7F04B590 /* 07E244 7F04B854 8DC40008 */ lw $a0, 8($t6) /* 07E248 7F04B858 50400192 */ beql $v0, $zero, .L7F04BEA4 /* 07E24C 7F04B85C 8FBF003C */ lw $ra, 0x3c($sp) /* 07E250 7F04B860 96B8001A */ lhu $t8, 0x1a($s5) /* 07E254 7F04B864 87C80004 */ lh $t0, 4($fp) /* 07E258 7F04B868 8E0F0010 */ lw $t7, 0x10($s0) /* 07E25C 7F04B86C 0018C880 */ sll $t9, $t8, 2 /* 07E260 7F04B870 29010068 */ slti $at, $t0, 0x68 /* 07E264 7F04B874 1020001D */ beqz $at, .L7F04B8EC /* 07E268 7F04B878 01F99821 */ addu $s3, $t7, $t9 /* 07E26C 7F04B87C 0C00262C */ jal randomGetNext /* 07E270 7F04B880 00000000 */ nop /* 07E274 7F04B884 30490001 */ andi $t1, $v0, 1 /* 07E278 7F04B888 1120000D */ beqz $t1, .L7F04B8C0 /* 07E27C 7F04B88C 8FA8009C */ lw $t0, 0x9c($sp) /* 07E280 7F04B890 87CA0004 */ lh $t2, 4($fp) /* 07E284 7F04B894 8FAC009C */ lw $t4, 0x9c($sp) /* 07E288 7F04B898 3C188003 */ lui $t8, %hi(object_explosion_details+2) /* 07E28C 7F04B89C 000A5880 */ sll $t3, $t2, 2 /* 07E290 7F04B8A0 016A5823 */ subu $t3, $t3, $t2 /* 07E294 7F04B8A4 000B5880 */ sll $t3, $t3, 2 /* 07E298 7F04B8A8 000C6840 */ sll $t5, $t4, 1 /* 07E29C 7F04B8AC 016D7021 */ addu $t6, $t3, $t5 /* 07E2A0 7F04B8B0 030EC021 */ addu $t8, $t8, $t6 /* 07E2A4 7F04B8B4 97185EDC */ lhu $t8, %lo(object_explosion_details+344)($t8) /* 07E2A8 7F04B8B8 1000000D */ b .L7F04B8F0 /* 07E2AC 7F04B8BC AFB80078 */ sw $t8, 0x78($sp) .L7F04B8C0: /* 07E2B0 7F04B8C0 87CF0004 */ lh $t7, 4($fp) /* 07E2B4 7F04B8C4 00084840 */ sll $t1, $t0, 1 /* 07E2B8 7F04B8C8 3C0C8003 */ lui $t4, %hi(object_explosion_details+8) /* 07E2BC 7F04B8CC 000FC880 */ sll $t9, $t7, 2 /* 07E2C0 7F04B8D0 032FC823 */ subu $t9, $t9, $t7 /* 07E2C4 7F04B8D4 0019C880 */ sll $t9, $t9, 2 /* 07E2C8 7F04B8D8 03295021 */ addu $t2, $t9, $t1 /* 07E2CC 7F04B8DC 018A6021 */ addu $t4, $t4, $t2 /* 07E2D0 7F04B8E0 958C5EE2 */ lhu $t4, %lo(object_explosion_details+350)($t4) /* 07E2D4 7F04B8E4 10000002 */ b .L7F04B8F0 /* 07E2D8 7F04B8E8 AFAC0078 */ sw $t4, 0x78($sp) .L7F04B8EC: /* 07E2DC 7F04B8EC AFA00078 */ sw $zero, 0x78($sp) .L7F04B8F0: /* 07E2E0 7F04B8F0 0FC24118 */ jal get_debug_explosioninfo_flag /* 07E2E4 7F04B8F4 00000000 */ nop /* 07E2E8 7F04B8F8 14400003 */ bnez $v0, .L7F04B908 /* 07E2EC 7F04B8FC 8FAB0078 */ lw $t3, 0x78($sp) /* 07E2F0 7F04B900 1560000B */ bnez $t3, .L7F04B930 /* 07E2F4 7F04B904 00000000 */ nop .L7F04B908: /* 07E2F8 7F04B908 0FC24118 */ jal get_debug_explosioninfo_flag /* 07E2FC 7F04B90C 00000000 */ nop /* 07E300 7F04B910 0C00262C */ jal randomGetNext /* 07E304 7F04B914 00000000 */ nop /* 07E308 7F04B918 0FC24118 */ jal get_debug_explosioninfo_flag /* 07E30C 7F04B91C AFA20078 */ sw $v0, 0x78($sp) /* 07E310 7F04B920 10400003 */ beqz $v0, .L7F04B930 /* 07E314 7F04B924 8FAD0078 */ lw $t5, 0x78($sp) /* 07E318 7F04B928 31AEFFFF */ andi $t6, $t5, 0xffff /* 07E31C 7F04B92C AFAE0078 */ sw $t6, 0x78($sp) .L7F04B930: /* 07E320 7F04B930 0FC280B5 */ jal explosionClearBulletImpactRoom /* 07E324 7F04B934 8FC40010 */ lw $a0, 0x10($fp) /* 07E328 7F04B938 87D80004 */ lh $t8, 4($fp) /* 07E32C 7F04B93C 2401004C */ li $at, 76 /* 07E330 7F04B940 24170001 */ li $s7, 1 /* 07E334 7F04B944 17010003 */ bne $t8, $at, .L7F04B954 /* 07E338 7F04B948 00000000 */ nop /* 07E33C 7F04B94C 10000001 */ b .L7F04B954 /* 07E340 7F04B950 0000B825 */ move $s7, $zero .L7F04B954: /* 07E344 7F04B954 0FC10020 */ jal objGetDestroyedLevel /* 07E348 7F04B958 03C02025 */ move $a0, $fp /* 07E34C 7F04B95C 86A4000C */ lh $a0, 0xc($s5) /* 07E350 7F04B960 24050B0B */ li $a1, 2827 /* 07E354 7F04B964 8E060008 */ lw $a2, 8($s0) /* 07E358 7F04B968 0FC26CE3 */ jal sub_GAME_7F09BE4C /* 07E35C 7F04B96C 00403825 */ move $a3, $v0 /* 07E360 7F04B970 1040003A */ beqz $v0, .L7F04BA5C /* 07E364 7F04B974 00408025 */ move $s0, $v0 /* 07E368 7F04B978 8E640000 */ lw $a0, ($s3) /* 07E36C 7F04B97C 8EAF0008 */ lw $t7, 8($s5) /* 07E370 7F04B980 51E4001E */ beql $t7, $a0, .L7F04B9FC /* 07E374 7F04B984 86AD000C */ lh $t5, 0xc($s5) /* 07E378 7F04B988 86A8000C */ lh $t0, 0xc($s5) /* 07E37C 7F04B98C 00009025 */ move $s2, $zero /* 07E380 7F04B990 00008825 */ move $s1, $zero /* 07E384 7F04B994 19000014 */ blez $t0, .L7F04B9E8 /* 07E388 7F04B998 00401825 */ move $v1, $v0 /* 07E38C 7F04B99C 8E790000 */ lw $t9, ($s3) .L7F04B9A0: /* 07E390 7F04B9A0 26520001 */ addiu $s2, $s2, 1 /* 07E394 7F04B9A4 24630010 */ addiu $v1, $v1, 0x10 /* 07E398 7F04B9A8 03314821 */ addu $t1, $t9, $s1 /* 07E39C 7F04B9AC 8D210000 */ lw $at, ($t1) /* 07E3A0 7F04B9B0 26310010 */ addiu $s1, $s1, 0x10 /* 07E3A4 7F04B9B4 AC61FFF0 */ sw $at, -0x10($v1) /* 07E3A8 7F04B9B8 8D2C0004 */ lw $t4, 4($t1) /* 07E3AC 7F04B9BC AC6CFFF4 */ sw $t4, -0xc($v1) /* 07E3B0 7F04B9C0 8D210008 */ lw $at, 8($t1) /* 07E3B4 7F04B9C4 AC61FFF8 */ sw $at, -8($v1) /* 07E3B8 7F04B9C8 8D2C000C */ lw $t4, 0xc($t1) /* 07E3BC 7F04B9CC AC6CFFFC */ sw $t4, -4($v1) /* 07E3C0 7F04B9D0 86AB000C */ lh $t3, 0xc($s5) /* 07E3C4 7F04B9D4 024B082A */ slt $at, $s2, $t3 /* 07E3C8 7F04B9D8 5420FFF1 */ bnezl $at, .L7F04B9A0 /* 07E3CC 7F04B9DC 8E790000 */ lw $t9, ($s3) /* 07E3D0 7F04B9E0 8E640000 */ lw $a0, ($s3) /* 07E3D4 7F04B9E4 00009025 */ move $s2, $zero .L7F04B9E8: /* 07E3D8 7F04B9E8 0FC26D61 */ jal sub_GAME_7F09C044 /* 07E3DC 7F04B9EC 00000000 */ nop /* 07E3E0 7F04B9F0 10000018 */ b .L7F04BA54 /* 07E3E4 7F04B9F4 00000000 */ nop /* 07E3E8 7F04B9F8 86AD000C */ lh $t5, 0xc($s5) .L7F04B9FC: /* 07E3EC 7F04B9FC 00009025 */ move $s2, $zero /* 07E3F0 7F04BA00 00008825 */ move $s1, $zero /* 07E3F4 7F04BA04 19A00013 */ blez $t5, .L7F04BA54 /* 07E3F8 7F04BA08 00401825 */ move $v1, $v0 /* 07E3FC 7F04BA0C 8EAE0008 */ lw $t6, 8($s5) .L7F04BA10: /* 07E400 7F04BA10 26520001 */ addiu $s2, $s2, 1 /* 07E404 7F04BA14 24630010 */ addiu $v1, $v1, 0x10 /* 07E408 7F04BA18 01D1C021 */ addu $t8, $t6, $s1 /* 07E40C 7F04BA1C 8F010000 */ lw $at, ($t8) /* 07E410 7F04BA20 26310010 */ addiu $s1, $s1, 0x10 /* 07E414 7F04BA24 AC61FFF0 */ sw $at, -0x10($v1) /* 07E418 7F04BA28 8F080004 */ lw $t0, 4($t8) /* 07E41C 7F04BA2C AC68FFF4 */ sw $t0, -0xc($v1) /* 07E420 7F04BA30 8F010008 */ lw $at, 8($t8) /* 07E424 7F04BA34 AC61FFF8 */ sw $at, -8($v1) /* 07E428 7F04BA38 8F08000C */ lw $t0, 0xc($t8) /* 07E42C 7F04BA3C AC68FFFC */ sw $t0, -4($v1) /* 07E430 7F04BA40 86B9000C */ lh $t9, 0xc($s5) /* 07E434 7F04BA44 0259082A */ slt $at, $s2, $t9 /* 07E438 7F04BA48 5420FFF1 */ bnezl $at, .L7F04BA10 /* 07E43C 7F04BA4C 8EAE0008 */ lw $t6, 8($s5) /* 07E440 7F04BA50 00009025 */ move $s2, $zero .L7F04BA54: /* 07E444 7F04BA54 10000036 */ b .L7F04BB30 /* 07E448 7F04BA58 AE700000 */ sw $s0, ($s3) .L7F04BA5C: /* 07E44C 7F04BA5C 8E640000 */ lw $a0, ($s3) /* 07E450 7F04BA60 8EAA0008 */ lw $t2, 8($s5) /* 07E454 7F04BA64 11440008 */ beq $t2, $a0, .L7F04BA88 /* 07E458 7F04BA68 00000000 */ nop /* 07E45C 7F04BA6C 0FC26D61 */ jal sub_GAME_7F09C044 /* 07E460 7F04BA70 00000000 */ nop /* 07E464 7F04BA74 8EA90008 */ lw $t1, 8($s5) /* 07E468 7F04BA78 AE690000 */ sw $t1, ($s3) /* 07E46C 7F04BA7C 8FCC0064 */ lw $t4, 0x64($fp) /* 07E470 7F04BA80 358B0004 */ ori $t3, $t4, 4 /* 07E474 7F04BA84 AFCB0064 */ sw $t3, 0x64($fp) .L7F04BA88: /* 07E478 7F04BA88 3C018005 */ lui $at, %hi(D_80052CB4) # $at, 0x8005 /* 07E47C 7F04BA8C C4208DF4 */ lwc1 $f0, %lo(D_80052CB4)($at) /* 07E480 7F04BA90 C7C40028 */ lwc1 $f4, 0x28($fp) /* 07E484 7F04BA94 C7C8002C */ lwc1 $f8, 0x2c($fp) /* 07E488 7F04BA98 C7D00030 */ lwc1 $f16, 0x30($fp) /* 07E48C 7F04BA9C 46002182 */ mul.s $f6, $f4, $f0 /* 07E490 7F04BAA0 00000000 */ nop /* 07E494 7F04BAA4 46004282 */ mul.s $f10, $f8, $f0 /* 07E498 7F04BAA8 00000000 */ nop /* 07E49C 7F04BAAC 46008482 */ mul.s $f18, $f16, $f0 /* 07E4A0 7F04BAB0 E7C60028 */ swc1 $f6, 0x28($fp) /* 07E4A4 7F04BAB4 E7CA002C */ swc1 $f10, 0x2c($fp) /* 07E4A8 7F04BAB8 12E000F9 */ beqz $s7, .L7F04BEA0 /* 07E4AC 7F04BABC E7D20030 */ swc1 $f18, 0x30($fp) /* 07E4B0 7F04BAC0 8FC20014 */ lw $v0, 0x14($fp) /* 07E4B4 7F04BAC4 C4440014 */ lwc1 $f4, 0x14($v0) /* 07E4B8 7F04BAC8 8C440008 */ lw $a0, 8($v0) /* 07E4BC 7F04BACC 0FC1002E */ jal chrobjGetBboxFromObjFile /* 07E4C0 7F04BAD0 E7A4005C */ swc1 $f4, 0x5c($sp) /* 07E4C4 7F04BAD4 00408025 */ move $s0, $v0 /* 07E4C8 7F04BAD8 0FC0FA49 */ jal chrpropBBOXGetYmin /* 07E4CC 7F04BADC 00402025 */ move $a0, $v0 /* 07E4D0 7F04BAE0 C7A6005C */ lwc1 $f6, 0x5c($sp) /* 07E4D4 7F04BAE4 3C018005 */ lui $at, %hi(D_80052CB8) # $at, 0x8005 /* 07E4D8 7F04BAE8 C42A8DF8 */ lwc1 $f10, %lo(D_80052CB8)($at) /* 07E4DC 7F04BAEC 46003202 */ mul.s $f8, $f6, $f0 /* 07E4E0 7F04BAF0 8FC20010 */ lw $v0, 0x10($fp) /* 07E4E4 7F04BAF4 02002025 */ move $a0, $s0 /* 07E4E8 7F04BAF8 C452000C */ lwc1 $f18, 0xc($v0) /* 07E4EC 7F04BAFC 460A4402 */ mul.s $f16, $f8, $f10 /* 07E4F0 7F04BB00 46109100 */ add.s $f4, $f18, $f16 /* 07E4F4 7F04BB04 0FC0FA49 */ jal chrpropBBOXGetYmin /* 07E4F8 7F04BB08 E444000C */ swc1 $f4, 0xc($v0) /* 07E4FC 7F04BB0C C7A6005C */ lwc1 $f6, 0x5c($sp) /* 07E500 7F04BB10 3C018005 */ lui $at, %hi(D_80052CBC) # $at, 0x8005 /* 07E504 7F04BB14 C42A8DFC */ lwc1 $f10, %lo(D_80052CBC)($at) /* 07E508 7F04BB18 46003202 */ mul.s $f8, $f6, $f0 /* 07E50C 7F04BB1C C7D0005C */ lwc1 $f16, 0x5c($fp) /* 07E510 7F04BB20 460A4482 */ mul.s $f18, $f8, $f10 /* 07E514 7F04BB24 46128100 */ add.s $f4, $f16, $f18 /* 07E518 7F04BB28 100000DD */ b .L7F04BEA0 /* 07E51C 7F04BB2C E7C4005C */ swc1 $f4, 0x5c($fp) .L7F04BB30: /* 07E520 7F04BB30 87C20004 */ lh $v0, 4($fp) /* 07E524 7F04BB34 24010026 */ li $at, 38 /* 07E528 7F04BB38 00008825 */ move $s1, $zero /* 07E52C 7F04BB3C 10410005 */ beq $v0, $at, .L7F04BB54 /* 07E530 7F04BB40 24010027 */ li $at, 39 /* 07E534 7F04BB44 10410003 */ beq $v0, $at, .L7F04BB54 /* 07E538 7F04BB48 24010055 */ li $at, 85 /* 07E53C 7F04BB4C 14410003 */ bne $v0, $at, .L7F04BB5C /* 07E540 7F04BB50 240D0001 */ li $t5, 1 .L7F04BB54: /* 07E544 7F04BB54 10000002 */ b .L7F04BB60 /* 07E548 7F04BB58 AFA00070 */ sw $zero, 0x70($sp) .L7F04BB5C: /* 07E54C 7F04BB5C AFAD0070 */ sw $t5, 0x70($sp) .L7F04BB60: /* 07E550 7F04BB60 86A4000C */ lh $a0, 0xc($s5) /* 07E554 7F04BB64 8FA5009C */ lw $a1, 0x9c($sp) /* 07E558 7F04BB68 18800010 */ blez $a0, .L7F04BBAC /* 07E55C 7F04BB6C 00041900 */ sll $v1, $a0, 4 /* 07E560 7F04BB70 8E700000 */ lw $s0, ($s3) .L7F04BB74: /* 07E564 7F04BB74 86020002 */ lh $v0, 2($s0) /* 07E568 7F04BB78 26310010 */ addiu $s1, $s1, 0x10 /* 07E56C 7F04BB7C 0056082A */ slt $at, $v0, $s6 /* 07E570 7F04BB80 50200003 */ beql $at, $zero, .L7F04BB90 /* 07E574 7F04BB84 0282082A */ slt $at, $s4, $v0 /* 07E578 7F04BB88 0040B025 */ move $s6, $v0 /* 07E57C 7F04BB8C 0282082A */ slt $at, $s4, $v0 .L7F04BB90: /* 07E580 7F04BB90 50200003 */ beql $at, $zero, .L7F04BBA0 /* 07E584 7F04BB94 0223082A */ slt $at, $s1, $v1 /* 07E588 7F04BB98 0040A025 */ move $s4, $v0 /* 07E58C 7F04BB9C 0223082A */ slt $at, $s1, $v1 .L7F04BBA0: /* 07E590 7F04BBA0 1420FFF4 */ bnez $at, .L7F04BB74 /* 07E594 7F04BBA4 26100010 */ addiu $s0, $s0, 0x10 /* 07E598 7F04BBA8 00009025 */ move $s2, $zero .L7F04BBAC: /* 07E59C 7F04BBAC 02D41021 */ addu $v0, $s6, $s4 /* 07E5A0 7F04BBB0 00027043 */ sra $t6, $v0, 1 /* 07E5A4 7F04BBB4 24010003 */ li $at, 3 /* 07E5A8 7F04BBB8 14A10006 */ bne $a1, $at, .L7F04BBD4 /* 07E5AC 7F04BBBC 01C01825 */ move $v1, $t6 /* 07E5B0 7F04BBC0 01D67823 */ subu $t7, $t6, $s6 /* 07E5B4 7F04BBC4 29E10029 */ slti $at, $t7, 0x29 /* 07E5B8 7F04BBC8 54200003 */ bnezl $at, .L7F04BBD8 /* 07E5BC 7F04BBCC 02961023 */ subu $v0, $s4, $s6 /* 07E5C0 7F04BBD0 26C30028 */ addiu $v1, $s6, 0x28 .L7F04BBD4: /* 07E5C4 7F04BBD4 02961023 */ subu $v0, $s4, $s6 .L7F04BBD8: /* 07E5C8 7F04BBD8 2841003D */ slti $at, $v0, 0x3d /* 07E5CC 7F04BBDC 1420000E */ bnez $at, .L7F04BC18 /* 07E5D0 7F04BBE0 28A10003 */ slti $at, $a1, 3 /* 07E5D4 7F04BBE4 10200005 */ beqz $at, .L7F04BBFC /* 07E5D8 7F04BBE8 2458FFC4 */ addiu $t8, $v0, -0x3c /* 07E5DC 7F04BBEC 3C018005 */ lui $at, %hi(D_80052CC0) # $at, 0x8005 /* 07E5E0 7F04BBF0 C4268E00 */ lwc1 $f6, %lo(D_80052CC0)($at) /* 07E5E4 7F04BBF4 1000000C */ b .L7F04BC28 /* 07E5E8 7F04BBF8 E7A60068 */ swc1 $f6, 0x68($sp) .L7F04BBFC: /* 07E5EC 7F04BBFC 44984000 */ mtc1 $t8, $f8 /* 07E5F0 7F04BC00 44828000 */ mtc1 $v0, $f16 /* 07E5F4 7F04BC04 468042A0 */ cvt.s.w $f10, $f8 /* 07E5F8 7F04BC08 468084A0 */ cvt.s.w $f18, $f16 /* 07E5FC 7F04BC0C 46125103 */ div.s $f4, $f10, $f18 /* 07E600 7F04BC10 10000005 */ b .L7F04BC28 /* 07E604 7F04BC14 E7A40068 */ swc1 $f4, 0x68($sp) .L7F04BC18: /* 07E608 7F04BC18 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 07E60C 7F04BC1C 44813000 */ mtc1 $at, $f6 /* 07E610 7F04BC20 00000000 */ nop /* 07E614 7F04BC24 E7A60068 */ swc1 $f6, 0x68($sp) .L7F04BC28: /* 07E618 7F04BC28 5880009E */ blezl $a0, .L7F04BEA4 /* 07E61C 7F04BC2C 8FBF003C */ lw $ra, 0x3c($sp) /* 07E620 7F04BC30 44964000 */ mtc1 $s6, $f8 /* 07E624 7F04BC34 00008825 */ move $s1, $zero /* 07E628 7F04BC38 AFA3007C */ sw $v1, 0x7c($sp) /* 07E62C 7F04BC3C 46804420 */ cvt.s.w $f16, $f8 /* 07E630 7F04BC40 24140050 */ li $s4, 80 /* 07E634 7F04BC44 E7B00044 */ swc1 $f16, 0x44($sp) /* 07E638 7F04BC48 8EA80008 */ lw $t0, 8($s5) .L7F04BC4C: /* 07E63C 7F04BC4C 8FAD0078 */ lw $t5, 0x78($sp) /* 07E640 7F04BC50 01111021 */ addu $v0, $t0, $s1 /* 07E644 7F04BC54 84590004 */ lh $t9, 4($v0) /* 07E648 7F04BC58 844A0000 */ lh $t2, ($v0) /* 07E64C 7F04BC5C 844C0002 */ lh $t4, 2($v0) /* 07E650 7F04BC60 032A4821 */ addu $t1, $t9, $t2 /* 07E654 7F04BC64 012C5821 */ addu $t3, $t1, $t4 /* 07E658 7F04BC68 0FC26B32 */ jal chrObjRandomSetSeed /* 07E65C 7F04BC6C 016D2021 */ addu $a0, $t3, $t5 /* 07E660 7F04BC70 8FAE0070 */ lw $t6, 0x70($sp) /* 07E664 7F04BC74 00008025 */ move $s0, $zero /* 07E668 7F04BC78 11C0002E */ beqz $t6, .L7F04BD34 /* 07E66C 7F04BC7C 00000000 */ nop /* 07E670 7F04BC80 C7CA002C */ lwc1 $f10, 0x2c($fp) /* 07E674 7F04BC84 44809000 */ mtc1 $zero, $f18 /* 07E678 7F04BC88 00000000 */ nop /* 07E67C 7F04BC8C 460A903E */ c.le.s $f18, $f10 /* 07E680 7F04BC90 00000000 */ nop /* 07E684 7F04BC94 45020015 */ bc1fl .L7F04BCEC /* 07E688 7F04BC98 8E690000 */ lw $t1, ($s3) /* 07E68C 7F04BC9C 8E6F0000 */ lw $t7, ($s3) /* 07E690 7F04BCA0 8FB9007C */ lw $t9, 0x7c($sp) /* 07E694 7F04BCA4 01F1C021 */ addu $t8, $t7, $s1 /* 07E698 7F04BCA8 87080002 */ lh $t0, 2($t8) /* 07E69C 7F04BCAC 0119082A */ slt $at, $t0, $t9 /* 07E6A0 7F04BCB0 14200007 */ bnez $at, .L7F04BCD0 /* 07E6A4 7F04BCB4 00000000 */ nop /* 07E6A8 7F04BCB8 12E00003 */ beqz $s7, .L7F04BCC8 /* 07E6AC 7F04BCBC 00000000 */ nop /* 07E6B0 7F04BCC0 1000001C */ b .L7F04BD34 /* 07E6B4 7F04BCC4 2410005A */ li $s0, 90 .L7F04BCC8: /* 07E6B8 7F04BCC8 1000001A */ b .L7F04BD34 /* 07E6BC 7F04BCCC 24100014 */ li $s0, 20 .L7F04BCD0: /* 07E6C0 7F04BCD0 12E00003 */ beqz $s7, .L7F04BCE0 /* 07E6C4 7F04BCD4 00000000 */ nop /* 07E6C8 7F04BCD8 10000016 */ b .L7F04BD34 /* 07E6CC 7F04BCDC 24100014 */ li $s0, 20 .L7F04BCE0: /* 07E6D0 7F04BCE0 10000014 */ b .L7F04BD34 /* 07E6D4 7F04BCE4 2410005A */ li $s0, 90 /* 07E6D8 7F04BCE8 8E690000 */ lw $t1, ($s3) .L7F04BCEC: /* 07E6DC 7F04BCEC 8FAA007C */ lw $t2, 0x7c($sp) /* 07E6E0 7F04BCF0 01316021 */ addu $t4, $t1, $s1 /* 07E6E4 7F04BCF4 858B0002 */ lh $t3, 2($t4) /* 07E6E8 7F04BCF8 014B082A */ slt $at, $t2, $t3 /* 07E6EC 7F04BCFC 14200007 */ bnez $at, .L7F04BD1C /* 07E6F0 7F04BD00 00000000 */ nop /* 07E6F4 7F04BD04 12E00003 */ beqz $s7, .L7F04BD14 /* 07E6F8 7F04BD08 00000000 */ nop /* 07E6FC 7F04BD0C 10000009 */ b .L7F04BD34 /* 07E700 7F04BD10 2410005A */ li $s0, 90 .L7F04BD14: /* 07E704 7F04BD14 10000007 */ b .L7F04BD34 /* 07E708 7F04BD18 24100014 */ li $s0, 20 .L7F04BD1C: /* 07E70C 7F04BD1C 12E00003 */ beqz $s7, .L7F04BD2C /* 07E710 7F04BD20 00000000 */ nop /* 07E714 7F04BD24 10000003 */ b .L7F04BD34 /* 07E718 7F04BD28 24100014 */ li $s0, 20 .L7F04BD2C: /* 07E71C 7F04BD2C 10000001 */ b .L7F04BD34 /* 07E720 7F04BD30 2410005A */ li $s0, 90 .L7F04BD34: /* 07E724 7F04BD34 0FC26B20 */ jal chrObjRandomGetNext /* 07E728 7F04BD38 00000000 */ nop /* 07E72C 7F04BD3C 24010064 */ li $at, 100 /* 07E730 7F04BD40 0041001B */ divu $zero, $v0, $at /* 07E734 7F04BD44 00006810 */ mfhi $t5 /* 07E738 7F04BD48 01B0082A */ slt $at, $t5, $s0 /* 07E73C 7F04BD4C 1020000F */ beqz $at, .L7F04BD8C /* 07E740 7F04BD50 8FAD009C */ lw $t5, 0x9c($sp) /* 07E744 7F04BD54 8E6E0000 */ lw $t6, ($s3) /* 07E748 7F04BD58 240C00FF */ li $t4, 255 /* 07E74C 7F04BD5C 01D17821 */ addu $t7, $t6, $s1 /* 07E750 7F04BD60 A1E0000C */ sb $zero, 0xc($t7) /* 07E754 7F04BD64 8E780000 */ lw $t8, ($s3) /* 07E758 7F04BD68 03114021 */ addu $t0, $t8, $s1 /* 07E75C 7F04BD6C A100000D */ sb $zero, 0xd($t0) /* 07E760 7F04BD70 8E790000 */ lw $t9, ($s3) /* 07E764 7F04BD74 03314821 */ addu $t1, $t9, $s1 /* 07E768 7F04BD78 A120000E */ sb $zero, 0xe($t1) /* 07E76C 7F04BD7C 8E6A0000 */ lw $t2, ($s3) /* 07E770 7F04BD80 01515821 */ addu $t3, $t2, $s1 /* 07E774 7F04BD84 10000007 */ b .L7F04BDA4 /* 07E778 7F04BD88 A16C000F */ sb $t4, 0xf($t3) .L7F04BD8C: /* 07E77C 7F04BD8C 24010001 */ li $at, 1 /* 07E780 7F04BD90 55A10005 */ bnel $t5, $at, .L7F04BDA8 /* 07E784 7F04BD94 8E780000 */ lw $t8, ($s3) /* 07E788 7F04BD98 8E6E0000 */ lw $t6, ($s3) /* 07E78C 7F04BD9C 01D17821 */ addu $t7, $t6, $s1 /* 07E790 7F04BDA0 A1E0000F */ sb $zero, 0xf($t7) .L7F04BDA4: /* 07E794 7F04BDA4 8E780000 */ lw $t8, ($s3) .L7F04BDA8: /* 07E798 7F04BDA8 C7A80068 */ lwc1 $f8, 0x68($sp) /* 07E79C 7F04BDAC C7AA0044 */ lwc1 $f10, 0x44($sp) /* 07E7A0 7F04BDB0 03118021 */ addu $s0, $t8, $s1 /* 07E7A4 7F04BDB4 86080002 */ lh $t0, 2($s0) /* 07E7A8 7F04BDB8 0116C823 */ subu $t9, $t0, $s6 /* 07E7AC 7F04BDBC 44992000 */ mtc1 $t9, $f4 /* 07E7B0 7F04BDC0 00000000 */ nop /* 07E7B4 7F04BDC4 468021A0 */ cvt.s.w $f6, $f4 /* 07E7B8 7F04BDC8 46083402 */ mul.s $f16, $f6, $f8 /* 07E7BC 7F04BDCC 460A8480 */ add.s $f18, $f16, $f10 /* 07E7C0 7F04BDD0 4600910D */ trunc.w.s $f4, $f18 /* 07E7C4 7F04BDD4 440A2000 */ mfc1 $t2, $f4 /* 07E7C8 7F04BDD8 0FC26B20 */ jal chrObjRandomGetNext /* 07E7CC 7F04BDDC A60A0002 */ sh $t2, 2($s0) /* 07E7D0 7F04BDE0 0054001B */ divu $zero, $v0, $s4 /* 07E7D4 7F04BDE4 8E6C0000 */ lw $t4, ($s3) /* 07E7D8 7F04BDE8 00006810 */ mfhi $t5 /* 07E7DC 7F04BDEC 01918021 */ addu $s0, $t4, $s1 /* 07E7E0 7F04BDF0 860B0000 */ lh $t3, ($s0) /* 07E7E4 7F04BDF4 16800002 */ bnez $s4, .L7F04BE00 /* 07E7E8 7F04BDF8 00000000 */ nop /* 07E7EC 7F04BDFC 0007000D */ break 7 .L7F04BE00: /* 07E7F0 7F04BE00 016D7021 */ addu $t6, $t3, $t5 /* 07E7F4 7F04BE04 25CFFFD8 */ addiu $t7, $t6, -0x28 /* 07E7F8 7F04BE08 0FC26B20 */ jal chrObjRandomGetNext /* 07E7FC 7F04BE0C A60F0000 */ sh $t7, ($s0) /* 07E800 7F04BE10 0054001B */ divu $zero, $v0, $s4 /* 07E804 7F04BE14 8E780000 */ lw $t8, ($s3) /* 07E808 7F04BE18 0000C810 */ mfhi $t9 /* 07E80C 7F04BE1C 03118021 */ addu $s0, $t8, $s1 /* 07E810 7F04BE20 86080002 */ lh $t0, 2($s0) /* 07E814 7F04BE24 16800002 */ bnez $s4, .L7F04BE30 /* 07E818 7F04BE28 00000000 */ nop /* 07E81C 7F04BE2C 0007000D */ break 7 .L7F04BE30: /* 07E820 7F04BE30 01194821 */ addu $t1, $t0, $t9 /* 07E824 7F04BE34 252AFFD8 */ addiu $t2, $t1, -0x28 /* 07E828 7F04BE38 0FC26B20 */ jal chrObjRandomGetNext /* 07E82C 7F04BE3C A60A0002 */ sh $t2, 2($s0) /* 07E830 7F04BE40 0054001B */ divu $zero, $v0, $s4 /* 07E834 7F04BE44 8E6C0000 */ lw $t4, ($s3) /* 07E838 7F04BE48 00006810 */ mfhi $t5 /* 07E83C 7F04BE4C 01918021 */ addu $s0, $t4, $s1 /* 07E840 7F04BE50 860B0004 */ lh $t3, 4($s0) /* 07E844 7F04BE54 16800002 */ bnez $s4, .L7F04BE60 /* 07E848 7F04BE58 00000000 */ nop /* 07E84C 7F04BE5C 0007000D */ break 7 .L7F04BE60: /* 07E850 7F04BE60 016D7021 */ addu $t6, $t3, $t5 /* 07E854 7F04BE64 25CFFFD8 */ addiu $t7, $t6, -0x28 /* 07E858 7F04BE68 A60F0004 */ sh $t7, 4($s0) /* 07E85C 7F04BE6C 8E780000 */ lw $t8, ($s3) /* 07E860 7F04BE70 03118021 */ addu $s0, $t8, $s1 /* 07E864 7F04BE74 86080002 */ lh $t0, 2($s0) /* 07E868 7F04BE78 0116082A */ slt $at, $t0, $s6 /* 07E86C 7F04BE7C 50200003 */ beql $at, $zero, .L7F04BE8C /* 07E870 7F04BE80 86B9000C */ lh $t9, 0xc($s5) /* 07E874 7F04BE84 A6160002 */ sh $s6, 2($s0) /* 07E878 7F04BE88 86B9000C */ lh $t9, 0xc($s5) .L7F04BE8C: /* 07E87C 7F04BE8C 26520001 */ addiu $s2, $s2, 1 /* 07E880 7F04BE90 26310010 */ addiu $s1, $s1, 0x10 /* 07E884 7F04BE94 0259082A */ slt $at, $s2, $t9 /* 07E888 7F04BE98 5420FF6C */ bnezl $at, .L7F04BC4C /* 07E88C 7F04BE9C 8EA80008 */ lw $t0, 8($s5) .L7F04BEA0: /* 07E890 7F04BEA0 8FBF003C */ lw $ra, 0x3c($sp) .L7F04BEA4: /* 07E894 7F04BEA4 8FB00018 */ lw $s0, 0x18($sp) /* 07E898 7F04BEA8 8FB1001C */ lw $s1, 0x1c($sp) /* 07E89C 7F04BEAC 8FB20020 */ lw $s2, 0x20($sp) /* 07E8A0 7F04BEB0 8FB30024 */ lw $s3, 0x24($sp) /* 07E8A4 7F04BEB4 8FB40028 */ lw $s4, 0x28($sp) /* 07E8A8 7F04BEB8 8FB5002C */ lw $s5, 0x2c($sp) /* 07E8AC 7F04BEBC 8FB60030 */ lw $s6, 0x30($sp) /* 07E8B0 7F04BEC0 8FB70034 */ lw $s7, 0x34($sp) /* 07E8B4 7F04BEC4 8FBE0038 */ lw $fp, 0x38($sp) /* 07E8B8 7F04BEC8 03E00008 */ jr $ra /* 07E8BC 7F04BECC 27BD0098 */ addiu $sp, $sp, 0x98 ) #endif #endif void objBounce(ObjectRecord *obj, coord3d *arg1) { coord3d dir; coord3d rot = {0, 0, 0}; Projectile *projectile = NULL; sub_GAME_7F03FDA8(obj->prop); if (obj->runtime_bitflags & RUNTIMEBITFLAG_EMBEDDED) { projectile = obj->embedment->projectile; } else if (obj->runtime_bitflags & RUNTIMEBITFLAG_DEPOSIT) { projectile = obj->projectile; } if (projectile) { projectile->speed.x = (RANDOMFRAC() * 1.6666666f * 4.0f) - 3.3333333f; projectile->speed.y = (RANDOMFRAC() * 1.6666666f * 2.0f) + 3.3333333f; projectile->speed.z = (RANDOMFRAC() * 1.6666666f * 4.0f) - 3.3333333f; #ifdef VERSION_EU rot.x = (RANDOMFRAC() * 7.53982257843f * 0.015625f) - 0.058904863894f; rot.y = (RANDOMFRAC() * 7.53982257843f * 0.015625f) - 0.058904863894f; rot.z = (RANDOMFRAC() * 7.53982257843f * 0.015625f) - 0.058904863894f; #else rot.x = (RANDOMFRAC() * M_TAU_F * 0.015625f) - 0.049087387f; rot.y = (RANDOMFRAC() * M_TAU_F * 0.015625f) - 0.049087387f; rot.z = (RANDOMFRAC() * M_TAU_F * 0.015625f) - 0.049087387f; #endif matrix_4x4_set_rotation_around_xyz((f32*)&rot, &projectile->mtx); projectile->flags |= PROJECTILEFLAG_AIRBORNE; dir.x = arg1->x; dir.y = arg1->y; dir.z = arg1->z; mtx4RotateVecInPlace(currentPlayerGetMatrix10D4(), (f32*)&dir); projectile->speed.x += 3.3333333f * dir.x; projectile->speed.z += 3.3333333f * dir.z; projectile->ownerprop = get_curplayer_positiondata(); projectile->unk90 = 1; } } void propobjSetDropped(PropRecord *prop, DROPTYPE droptype) { PropRecord *parent = prop->parent; if (parent) { ObjectRecord *obj = prop->obj; sub_GAME_7F03FDA8(prop); if ((obj->runtime_bitflags & RUNTIMEBITFLAG_EMBEDDED) && obj->embedment->projectile) { obj->embedment->projectile->droptype = droptype; } else if (obj->runtime_bitflags & RUNTIMEBITFLAG_DEPOSIT) { obj->projectile->droptype = droptype; } } } void objDetach(PropRecord *prop) { PropRecord *parent = prop->parent; if (parent) { ObjectRecord *obj = prop->obj; Model *model = obj->model; chrpropDetach(prop); model->attachedto_objinst = NULL; obj->runtime_bitflags &= ~RUNTIMEBITFLAG_HASOWNER; if (parent->type == PROP_TYPE_CHR || parent->type == PROP_TYPE_VIEWER) { ChrRecord *chr = parent->chr; if (chr) { if (prop == chr->handle_positiondata_hat) { chr->handle_positiondata_hat = NULL; } else if (prop == chr->weapons_held[GUNRIGHT]) { chrSetFiring(chr, GUNRIGHT, FALSE); chr->weapons_held[GUNRIGHT] = NULL; } else if (prop == chr->weapons_held[GUNLEFT]) { chrSetFiring(chr, GUNLEFT, FALSE); chr->weapons_held[GUNLEFT] = NULL; } } } } } s32 objDrop(PropRecord *prop) { PropRecord *parent = prop->parent; Projectile *projectile; ObjectRecord *obj = prop->obj; Model *model; Mtxf spB8; PropRecord *root; StandTile* rootstan; if ((obj->runtime_bitflags & RUNTIMEBITFLAG_EMBEDDED) && obj->embedment->projectile) { Projectile* projectile2 = obj->embedment->projectile; embedmentFree(obj->embedment); obj->projectile = projectile2; obj->runtime_bitflags &= ~RUNTIMEBITFLAG_EMBEDDED; obj->runtime_bitflags |= RUNTIMEBITFLAG_DEPOSIT; } if (parent && (obj->runtime_bitflags & RUNTIMEBITFLAG_DEPOSIT)) { model = obj->model; projectile = obj->projectile; root = parent; projectile->flags |= PROJECTILEFLAG_AIRBORNE; projectile->ownerprop = parent; if (projectile->droptype == DROPTYPE_SURRENDER && parent->type == PROP_TYPE_CHR) { ChrRecord* chr = parent->chr; Model *chrmodel = chr->model; coord3d rot = { 0.0f, 0.0f, 0.0f }; f32 angle = getsubroty(chrmodel); projectile->speed.x = sinf(angle) * 1.6666666f; projectile->speed.y = -RANDOMFRAC() * 1.6666666f * 0.5f; projectile->speed.z = cosf(angle) * 1.6666666f; #ifdef VERSION_EU rot.x = (RANDOMFRAC() * 7.53982257843f * 0.0078125f) - 0.029452431947f; rot.y = (RANDOMFRAC() * 7.53982257843f * 0.0078125f) - 0.029452431947f; rot.z = (RANDOMFRAC() * 7.53982257843f * 0.0078125f) - 0.029452431947f; #else rot.x = (RANDOMFRAC() * M_TAU_F * 0.0078125f) - 0.024543693f; rot.y = (RANDOMFRAC() * M_TAU_F * 0.0078125f) - 0.024543693f; rot.z = (RANDOMFRAC() * M_TAU_F * 0.0078125f) - 0.024543693f; #endif matrix_4x4_set_rotation_around_xyz(rot.f, &projectile->mtx); } else if (projectile->droptype == DROPTYPE_THROWGRENADE && parent->type == PROP_TYPE_CHR) { ChrRecord* chr = parent->chr; Model *chrmodel = chr->model; coord3d rot = { 0.0f, 0.0f, 0.0f }; f32 angle = getsubroty(chrmodel); projectile->speed.x = sinf(angle) * 13.333333f; projectile->speed.y = 6.6666665f; projectile->speed.z = cosf(angle) * 13.333333f; #ifdef VERSION_EU rot.x = (RANDOMFRAC() * 7.53982257843f * 0.0078125f) - 0.029452431947f; rot.y = (RANDOMFRAC() * 7.53982257843f * 0.0078125f) - 0.029452431947f; rot.z = (RANDOMFRAC() * 7.53982257843f * 0.0078125f) - 0.029452431947f; #else rot.x = (RANDOMFRAC() * M_TAU_F * 0.0078125f) - 0.024543693f; rot.y = (RANDOMFRAC() * M_TAU_F * 0.0078125f) - 0.024543693f; rot.z = (RANDOMFRAC() * M_TAU_F * 0.0078125f) - 0.024543693f; #endif matrix_4x4_set_rotation_around_xyz(rot.f, &projectile->mtx); projectile->flags |= 0x40; } else if (projectile->droptype == DROPTYPE_HAT) { coord3d rot = { 0.0f, 0.0f, 0.0f }; PropRecord *playerprop = get_curplayer_positiondata(); f32 x = parent->pos.x - playerprop->pos.x; f32 z = parent->pos.z - playerprop->pos.z; f32 angle = atan2f(x, z); projectile->speed.x = ((2.0f * (RANDOMFRAC() * 1.6666666f)) + 3.3333333f) * sinf(angle); projectile->speed.y = 2.0f * (RANDOMFRAC() * 1.6666666f); projectile->speed.z = ((2.0f * (RANDOMFRAC() * 1.6666666f)) + 3.3333333f) * cosf(angle); #ifdef VERSION_EU rot.x = (RANDOMFRAC() * 7.53982257843f * 0.03125f) - 0.117809727788f; rot.y = (RANDOMFRAC() * 7.53982257843f * 0.03125f) - 0.117809727788f; rot.z = (RANDOMFRAC() * 7.53982257843f * 0.03125f) - 0.117809727788f; #else rot.x = (RANDOMFRAC() * M_TAU_F * 0.03125f) - 0.09817477f; rot.y = (RANDOMFRAC() * M_TAU_F * 0.03125f) - 0.09817477f; rot.z = (RANDOMFRAC() * M_TAU_F * 0.03125f) - 0.09817477f; #endif matrix_4x4_set_rotation_around_xyz(rot.f, &projectile->mtx); } else { // DROPTYPE_OWNERREAP ? sub_GAME_7F057C14(&projectile->speed, &projectile->mtx); } while (root->parent != NULL) { root = root->parent; } rootstan = root->stan; if (prop->flags & PROPFLAG_ONSCREEN) { // Do collision checks f32 objwidth = objGetWidth(obj); Mtxf *sp58 = getsubmatrix(model); s32 cdtypes = CDTYPE_OBJS | CDTYPE_DOORS | CDTYPE_PLAYERS | CDTYPE_CHRS | CDTYPE_PATHBLOCKER; matrix_4x4_multiply_homogeneous(currentPlayerGetMatrix10D4(), sp58, &spB8); if (projectile->flags & 0x40) { cdtypes = CDTYPE_OBJS | CDTYPE_PLAYERS | CDTYPE_CHRS | CDTYPE_PATHBLOCKER; } sub_GAME_7F03D058(root, FALSE); if ((stanTestLineUnobstructed(&rootstan, root->pos.f[0], root->pos.f[2], spB8.m[3][0], spB8.m[3][2], cdtypes, 0.0f, 1.0f, 0.0f, 1.0f) != 0) && (stanTestVolume(&rootstan, spB8.m[3][0], spB8.m[3][2], objwidth, cdtypes, 0.0f, 1.0f) < 0)) { prop->stan = rootstan; } else { prop->stan = root->stan; spB8.m[3][0] = root->pos.x; spB8.m[3][2] = root->pos.z; } sub_GAME_7F03D058(root, TRUE); prop->zDepth = -sp58->m[3][2]; } else { // No collision checks // Helpful for throwing mines through doors during speedruns prop->stan = root->stan; matrix_4x4_set_identity(&spB8); matrix_scalar_multiply(model->scale, spB8.m[0]); matrix_4x4_set_position(&root->pos, &spB8); } objDetach(prop); chrpropActivate(prop); chrpropEnable(prop); obj->runtime_pos.x = prop->pos.x = spB8.m[3][0]; obj->runtime_pos.y = prop->pos.y = spB8.m[3][1]; obj->runtime_pos.z = prop->pos.z = spB8.m[3][2]; spB8.m[3][0] = 0.0f; spB8.m[3][1] = 0.0f; spB8.m[3][2] = 0.0f; matrix_4x4_copy(&spB8, &obj->mtx); sub_GAME_7F0402B4(obj->prop, &obj->nextcol); obj->shadecol.r = obj->nextcol.r; obj->shadecol.g = obj->nextcol.g; obj->shadecol.b = obj->nextcol.b; obj->shadecol.a = obj->nextcol.a; setupUpdateObjectRoomPosition(obj); return TRUE; } return FALSE; } /** * Make an object fall. Eg. due to it sitting on a table which is now destroyed, * or because it was a chopper that is now destroyed. */ void objFall(ObjectRecord *obj, s32 playernum) { obj->runtime_bitflags &= ~(RUNTIMEBITFLAG_OWNER); obj->runtime_bitflags |= (playernum << RUNTIMEBITSHIFT_OWNER); if ((obj->flags2 & PROPFLAG2_NOFALL) == 0 && (obj->flags & PROPFLAG_RENDERPOSTBG) && (obj->runtime_bitflags & (RUNTIMEBITFLAG_EMBEDDED | RUNTIMEBITFLAG_DEPOSIT)) == 0) { coord3d rot = {0, 0, 0}; Projectile *projectile = NULL; s32 unused; sub_GAME_7F03FDA8(obj->prop); if (obj->runtime_bitflags & RUNTIMEBITFLAG_DEPOSIT) { projectile = obj->projectile; } if (projectile) { projectile->speed.x = RANDOMFRAC() * 1.6666666f - 0.8333333f; projectile->speed.y = RANDOMFRAC() * 1.6666666f * 2.0f + 1.6666666f; projectile->speed.z = RANDOMFRAC() * 1.6666666f - 0.8333333f; if ((obj->flags2 & PROPFLAG2_FALLWITHOUTROTATION) == 0) { #ifdef VERSION_EU rot.x = ((RANDOMFRAC() * 7.5398226f) / 320.0f) - 0.011780973f; rot.y = ((RANDOMFRAC() * 7.5398226f) / 320.0f) - 0.011780973f; rot.z = ((RANDOMFRAC() * 7.5398226f) / 320.0f) - 0.011780973f; #else rot.x = ((RANDOMFRAC() * M_TAU_F) / 320.0f) - 0.009817477f; rot.y = ((RANDOMFRAC() * M_TAU_F) / 320.0f) - 0.009817477f; rot.z = ((RANDOMFRAC() * M_TAU_F) / 320.0f) - 0.009817477f; #endif } matrix_4x4_set_rotation_around_xyz(rot.f, &projectile->mtx); projectile->flags |= PROJECTILEFLAG_AIRBORNE; obj->flags &= ~PROPFLAG_00000100; obj->runtime_bitflags &= ~RUNTIMEBITFLAG_00008000; } } } /** * Destroy the objects that the given prop is supporting. * * For example, destroying a table will also destroy all the props that are * sitting on that table. */ void objDestroySupportedObjects(PropRecord* tableprop, s32 playernum) { ObjectRecord* obj; ObjectRecord* tableobj; PropRecord* prop; rect4f* rect; s32 sp44; u8 room; tableobj = tableprop->obj; room = tableprop->stan->room; chraiGetCollisionBoundsWithoutY(tableprop, &rect, &sp44); if (sp44 > 0) { prop = get_ptr_obj_pos_list_current_entry(); while (prop) { if (((prop->type == PROP_TYPE_OBJ) || (prop->type == PROP_TYPE_WEAPON)) && (prop->stan->room == room)) { obj = prop->obj; if ((tableobj->runtime_pos.y < obj->runtime_pos.y) && ((s32) obj->runtime_bitflags & RUNTIMEBITFLAG_00008000) && (chrpropTestPointInPolygon(&obj->runtime_pos, rect, sp44) != 0)) { objFall(obj, playernum); } } prop = prop->prev; } } } #ifdef NONMATCHING void object_explosion_related(void) { } #else #ifndef VERSION_EU GLOBAL_ASM( .text glabel object_explosion_related /* 08193C 7F04CE0C 27BDFFB8 */ addiu $sp, $sp, -0x48 /* 081940 7F04CE10 AFBF002C */ sw $ra, 0x2c($sp) /* 081944 7F04CE14 AFB10028 */ sw $s1, 0x28($sp) /* 081948 7F04CE18 AFB00024 */ sw $s0, 0x24($sp) /* 08194C 7F04CE1C AFA5004C */ sw $a1, 0x4c($sp) /* 081950 7F04CE20 AFA60050 */ sw $a2, 0x50($sp) /* 081954 7F04CE24 C4860070 */ lwc1 $f6, 0x70($a0) /* 081958 7F04CE28 C4840074 */ lwc1 $f4, 0x74($a0) /* 08195C 7F04CE2C 00808825 */ move $s1, $a0 /* 081960 7F04CE30 4606203C */ c.lt.s $f4, $f6 /* 081964 7F04CE34 00000000 */ nop /* 081968 7F04CE38 45030006 */ bc1tl .L7F04CE54 /* 08196C 7F04CE3C 862E0004 */ lh $t6, 4($s1) /* 081970 7F04CE40 0FC0FFF0 */ jal objGetDestroyedLevel /* 081974 7F04CE44 00000000 */ nop /* 081978 7F04CE48 504000C4 */ beql $v0, $zero, .L7F04D15C /* 08197C 7F04CE4C 8FBF002C */ lw $ra, 0x2c($sp) /* 081980 7F04CE50 862E0004 */ lh $t6, 4($s1) .L7F04CE54: /* 081984 7F04CE54 3C188004 */ lui $t8, %hi(object_explosion_details) /* 081988 7F04CE58 8E230010 */ lw $v1, 0x10($s1) /* 08198C 7F04CE5C 000E78C0 */ sll $t7, $t6, 3 /* 081990 7F04CE60 01EE7823 */ subu $t7, $t7, $t6 /* 081994 7F04CE64 000F7840 */ sll $t7, $t7, 1 /* 081998 7F04CE68 030FC021 */ addu $t8, $t8, $t7 /* 08199C 7F04CE6C 8718B224 */ lh $t8, %lo(object_explosion_details)($t8) /* 0819A0 7F04CE70 02202025 */ move $a0, $s1 /* 0819A4 7F04CE74 00608025 */ move $s0, $v1 /* 0819A8 7F04CE78 A7B8003E */ sh $t8, 0x3e($sp) /* 0819AC 7F04CE7C 8C79001C */ lw $t9, 0x1c($v1) /* 0819B0 7F04CE80 53200007 */ beql $t9, $zero, .L7F04CEA0 /* 0819B4 7F04CE84 8E080014 */ lw $t0, 0x14($s0) /* 0819B8 7F04CE88 8E02001C */ lw $v0, 0x1c($s0) /* 0819BC 7F04CE8C 00408025 */ move $s0, $v0 .L7F04CE90: /* 0819C0 7F04CE90 8C42001C */ lw $v0, 0x1c($v0) /* 0819C4 7F04CE94 5440FFFE */ bnezl $v0, .L7F04CE90 /* 0819C8 7F04CE98 00408025 */ move $s0, $v0 /* 0819CC 7F04CE9C 8E080014 */ lw $t0, 0x14($s0) .L7F04CEA0: /* 0819D0 7F04CEA0 AFA30044 */ sw $v1, 0x44($sp) /* 0819D4 7F04CEA4 0FC0FFF0 */ jal objGetDestroyedLevel /* 0819D8 7F04CEA8 AFA80038 */ sw $t0, 0x38($sp) /* 0819DC 7F04CEAC 14400056 */ bnez $v0, .L7F04D008 /* 0819E0 7F04CEB0 00000000 */ nop /* 0819E4 7F04CEB4 92290002 */ lbu $t1, 2($s1) /* 0819E8 7F04CEB8 44804000 */ mtc1 $zero, $f8 /* 0819EC 7F04CEBC 352A0080 */ ori $t2, $t1, 0x80 /* 0819F0 7F04CEC0 A22A0002 */ sb $t2, 2($s1) /* 0819F4 7F04CEC4 E6280070 */ swc1 $f8, 0x70($s1) /* 0819F8 7F04CEC8 8FAB0038 */ lw $t3, 0x38($sp) /* 0819FC 7F04CECC 5160002B */ beql $t3, $zero, .L7F04CF7C /* 081A00 7F04CED0 8E2C000C */ lw $t4, 0xc($s1) /* 081A04 7F04CED4 920C0001 */ lbu $t4, 1($s0) /* 081A08 7F04CED8 8FA2004C */ lw $v0, 0x4c($sp) /* 081A0C 7F04CEDC 27A40038 */ addiu $a0, $sp, 0x38 /* 081A10 7F04CEE0 318D0008 */ andi $t5, $t4, 8 /* 081A14 7F04CEE4 55A00019 */ bnezl $t5, .L7F04CF4C /* 081A18 7F04CEE8 8E060014 */ lw $a2, 0x14($s0) /* 081A1C 7F04CEEC C44A0008 */ lwc1 $f10, 8($v0) /* 081A20 7F04CEF0 8E050008 */ lw $a1, 8($s0) /* 081A24 7F04CEF4 8E060010 */ lw $a2, 0x10($s0) /* 081A28 7F04CEF8 8C470000 */ lw $a3, ($v0) /* 081A2C 7F04CEFC 0FC2C2F9 */ jal walkTilesBetweenPoints_NoCallback /* 081A30 7F04CF00 E7AA0010 */ swc1 $f10, 0x10($sp) /* 081A34 7F04CF04 10400010 */ beqz $v0, .L7F04CF48 /* 081A38 7F04CF08 8FA40044 */ lw $a0, 0x44($sp) /* 081A3C 7F04CF0C 8E2E0008 */ lw $t6, 8($s1) /* 081A40 7F04CF10 8FB90050 */ lw $t9, 0x50($sp) /* 081A44 7F04CF14 2608002C */ addiu $t0, $s0, 0x2c /* 081A48 7F04CF18 31CF000E */ andi $t7, $t6, 0xe /* 081A4C 7F04CF1C 2DF80001 */ sltiu $t8, $t7, 1 /* 081A50 7F04CF20 AFB80010 */ sw $t8, 0x10($sp) /* 081A54 7F04CF24 AFA80018 */ sw $t0, 0x18($sp) /* 081A58 7F04CF28 AFA0001C */ sw $zero, 0x1c($sp) /* 081A5C 7F04CF2C 8FA5004C */ lw $a1, 0x4c($sp) /* 081A60 7F04CF30 8FA60038 */ lw $a2, 0x38($sp) /* 081A64 7F04CF34 87A7003E */ lh $a3, 0x3e($sp) /* 081A68 7F04CF38 0FC27094 */ jal explosionCreate /* 081A6C 7F04CF3C AFB90014 */ sw $t9, 0x14($sp) /* 081A70 7F04CF40 1000000E */ b .L7F04CF7C /* 081A74 7F04CF44 8E2C000C */ lw $t4, 0xc($s1) .L7F04CF48: /* 081A78 7F04CF48 8E060014 */ lw $a2, 0x14($s0) .L7F04CF4C: /* 081A7C 7F04CF4C 8FA90050 */ lw $t1, 0x50($sp) /* 081A80 7F04CF50 260A002C */ addiu $t2, $s0, 0x2c /* 081A84 7F04CF54 240B0001 */ li $t3, 1 /* 081A88 7F04CF58 AFAB001C */ sw $t3, 0x1c($sp) /* 081A8C 7F04CF5C AFAA0018 */ sw $t2, 0x18($sp) /* 081A90 7F04CF60 AFA00010 */ sw $zero, 0x10($sp) /* 081A94 7F04CF64 8FA40044 */ lw $a0, 0x44($sp) /* 081A98 7F04CF68 8FA5004C */ lw $a1, 0x4c($sp) /* 081A9C 7F04CF6C 87A7003E */ lh $a3, 0x3e($sp) /* 081AA0 7F04CF70 0FC27094 */ jal explosionCreate /* 081AA4 7F04CF74 AFA90014 */ sw $t1, 0x14($sp) /* 081AA8 7F04CF78 8E2C000C */ lw $t4, 0xc($s1) .L7F04CF7C: /* 081AAC 7F04CF7C 02202025 */ move $a0, $s1 /* 081AB0 7F04CF80 318D2000 */ andi $t5, $t4, 0x2000 /* 081AB4 7F04CF84 11A00005 */ beqz $t5, .L7F04CF9C /* 081AB8 7F04CF88 00000000 */ nop /* 081ABC 7F04CF8C 8E2E0064 */ lw $t6, 0x64($s1) /* 081AC0 7F04CF90 35CF0004 */ ori $t7, $t6, 4 /* 081AC4 7F04CF94 10000070 */ b .L7F04D158 /* 081AC8 7F04CF98 AE2F0064 */ sw $t7, 0x64($s1) .L7F04CF9C: /* 081ACC 7F04CF9C 0FC12D84 */ jal objDeform /* 081AD0 7F04CFA0 24050001 */ li $a1, 1 /* 081AD4 7F04CFA4 8FA40044 */ lw $a0, 0x44($sp) /* 081AD8 7F04CFA8 5604006C */ bnel $s0, $a0, .L7F04D15C /* 081ADC 7F04CFAC 8FBF002C */ lw $ra, 0x2c($sp) /* 081AE0 7F04CFB0 0FC13341 */ jal objDestroySupportedObjects /* 081AE4 7F04CFB4 8FA50050 */ lw $a1, 0x50($sp) /* 081AE8 7F04CFB8 8E220064 */ lw $v0, 0x64($s1) /* 081AEC 7F04CFBC 30588000 */ andi $t8, $v0, 0x8000 /* 081AF0 7F04CFC0 5300000A */ beql $t8, $zero, .L7F04CFEC /* 081AF4 7F04CFC4 3C010001 */ lui $at, 1 /* 081AF8 7F04CFC8 0C002914 */ jal randomGetNext /* 081AFC 7F04CFCC 00000000 */ nop /* 081B00 7F04CFD0 24010003 */ li $at, 3 /* 081B04 7F04CFD4 0041001B */ divu $zero, $v0, $at /* 081B08 7F04CFD8 0000C810 */ mfhi $t9 /* 081B0C 7F04CFDC 5720005F */ bnezl $t9, .L7F04D15C /* 081B10 7F04CFE0 8FBF002C */ lw $ra, 0x2c($sp) /* 081B14 7F04CFE4 8E220064 */ lw $v0, 0x64($s1) /* 081B18 7F04CFE8 3C010001 */ lui $at, 1 .L7F04CFEC: /* 081B1C 7F04CFEC 00414025 */ or $t0, $v0, $at /* 081B20 7F04CFF0 AE280064 */ sw $t0, 0x64($s1) /* 081B24 7F04CFF4 8FA50050 */ lw $a1, 0x50($sp) /* 081B28 7F04CFF8 0FC13291 */ jal objFall /* 081B2C 7F04CFFC 02202025 */ move $a0, $s1 /* 081B30 7F04D000 10000056 */ b .L7F04D15C /* 081B34 7F04D004 8FBF002C */ lw $ra, 0x2c($sp) .L7F04D008: /* 081B38 7F04D008 0FC0FFD8 */ jal objGetShotsTaken /* 081B3C 7F04D00C 02202025 */ move $a0, $s1 /* 081B40 7F04D010 30490003 */ andi $t1, $v0, 3 /* 081B44 7F04D014 15200031 */ bnez $t1, .L7F04D0DC /* 081B48 7F04D018 AFA20034 */ sw $v0, 0x34($sp) /* 081B4C 7F04D01C 00025083 */ sra $t2, $v0, 2 /* 081B50 7F04D020 25450001 */ addiu $a1, $t2, 1 /* 081B54 7F04D024 0FC12D84 */ jal objDeform /* 081B58 7F04D028 02202025 */ move $a0, $s1 /* 081B5C 7F04D02C 8FAB0038 */ lw $t3, 0x38($sp) /* 081B60 7F04D030 1160002A */ beqz $t3, .L7F04D0DC /* 081B64 7F04D034 00000000 */ nop /* 081B68 7F04D038 920C0001 */ lbu $t4, 1($s0) /* 081B6C 7F04D03C 8FA2004C */ lw $v0, 0x4c($sp) /* 081B70 7F04D040 27A40038 */ addiu $a0, $sp, 0x38 /* 081B74 7F04D044 318D0008 */ andi $t5, $t4, 8 /* 081B78 7F04D048 55A00019 */ bnezl $t5, .L7F04D0B0 /* 081B7C 7F04D04C 8E060014 */ lw $a2, 0x14($s0) /* 081B80 7F04D050 C4500008 */ lwc1 $f16, 8($v0) /* 081B84 7F04D054 8E050008 */ lw $a1, 8($s0) /* 081B88 7F04D058 8E060010 */ lw $a2, 0x10($s0) /* 081B8C 7F04D05C 8C470000 */ lw $a3, ($v0) /* 081B90 7F04D060 0FC2C2F9 */ jal walkTilesBetweenPoints_NoCallback /* 081B94 7F04D064 E7B00010 */ swc1 $f16, 0x10($sp) /* 081B98 7F04D068 10400010 */ beqz $v0, .L7F04D0AC /* 081B9C 7F04D06C 8FA40044 */ lw $a0, 0x44($sp) /* 081BA0 7F04D070 8E2E0008 */ lw $t6, 8($s1) /* 081BA4 7F04D074 8FB90050 */ lw $t9, 0x50($sp) /* 081BA8 7F04D078 2608002C */ addiu $t0, $s0, 0x2c /* 081BAC 7F04D07C 31CF000E */ andi $t7, $t6, 0xe /* 081BB0 7F04D080 2DF80001 */ sltiu $t8, $t7, 1 /* 081BB4 7F04D084 AFB80010 */ sw $t8, 0x10($sp) /* 081BB8 7F04D088 AFA80018 */ sw $t0, 0x18($sp) /* 081BBC 7F04D08C AFA0001C */ sw $zero, 0x1c($sp) /* 081BC0 7F04D090 8FA5004C */ lw $a1, 0x4c($sp) /* 081BC4 7F04D094 8FA60038 */ lw $a2, 0x38($sp) /* 081BC8 7F04D098 24070010 */ li $a3, 16 /* 081BCC 7F04D09C 0FC27094 */ jal explosionCreate /* 081BD0 7F04D0A0 AFB90014 */ sw $t9, 0x14($sp) /* 081BD4 7F04D0A4 1000000D */ b .L7F04D0DC /* 081BD8 7F04D0A8 00000000 */ nop .L7F04D0AC: /* 081BDC 7F04D0AC 8E060014 */ lw $a2, 0x14($s0) .L7F04D0B0: /* 081BE0 7F04D0B0 8FA90050 */ lw $t1, 0x50($sp) /* 081BE4 7F04D0B4 260A002C */ addiu $t2, $s0, 0x2c /* 081BE8 7F04D0B8 240B0001 */ li $t3, 1 /* 081BEC 7F04D0BC AFAB001C */ sw $t3, 0x1c($sp) /* 081BF0 7F04D0C0 AFAA0018 */ sw $t2, 0x18($sp) /* 081BF4 7F04D0C4 AFA00010 */ sw $zero, 0x10($sp) /* 081BF8 7F04D0C8 8FA40044 */ lw $a0, 0x44($sp) /* 081BFC 7F04D0CC 8FA5004C */ lw $a1, 0x4c($sp) /* 081C00 7F04D0D0 24070010 */ li $a3, 16 /* 081C04 7F04D0D4 0FC27094 */ jal explosionCreate /* 081C08 7F04D0D8 AFA90014 */ sw $t1, 0x14($sp) .L7F04D0DC: /* 081C0C 7F04D0DC 0FC0FFF0 */ jal objGetDestroyedLevel /* 081C10 7F04D0E0 02202025 */ move $a0, $s1 /* 081C14 7F04D0E4 58400012 */ blezl $v0, .L7F04D130 /* 081C18 7F04D0E8 8FA90034 */ lw $t1, 0x34($sp) /* 081C1C 7F04D0EC 92220002 */ lbu $v0, 2($s1) /* 081C20 7F04D0F0 304C0004 */ andi $t4, $v0, 4 /* 081C24 7F04D0F4 5180000E */ beql $t4, $zero, .L7F04D130 /* 081C28 7F04D0F8 8FA90034 */ lw $t1, 0x34($sp) /* 081C2C 7F04D0FC 8E2D0064 */ lw $t5, 0x64($s1) /* 081C30 7F04D100 344F0010 */ ori $t7, $v0, 0x10 /* 081C34 7F04D104 3058FFEF */ andi $t8, $v0, 0xffef /* 081C38 7F04D108 31AE1000 */ andi $t6, $t5, 0x1000 /* 081C3C 7F04D10C 51C00004 */ beql $t6, $zero, .L7F04D120 /* 081C40 7F04D110 A2380002 */ sb $t8, 2($s1) /* 081C44 7F04D114 10000002 */ b .L7F04D120 /* 081C48 7F04D118 A22F0002 */ sb $t7, 2($s1) /* 081C4C 7F04D11C A2380002 */ sb $t8, 2($s1) .L7F04D120: /* 081C50 7F04D120 8FA80044 */ lw $t0, 0x44($sp) /* 081C54 7F04D124 241904B0 */ li $t9, 1200 /* 081C58 7F04D128 A5190002 */ sh $t9, 2($t0) /* 081C5C 7F04D12C 8FA90034 */ lw $t1, 0x34($sp) .L7F04D130: /* 081C60 7F04D130 2921000C */ slti $at, $t1, 0xc /* 081C64 7F04D134 54200009 */ bnezl $at, .L7F04D15C /* 081C68 7F04D138 8FBF002C */ lw $ra, 0x2c($sp) /* 081C6C 7F04D13C 8E2A0064 */ lw $t2, 0x64($s1) /* 081C70 7F04D140 8E2C0008 */ lw $t4, 8($s1) /* 081C74 7F04D144 2401FEFF */ li $at, -257 /* 081C78 7F04D148 354B1000 */ ori $t3, $t2, 0x1000 /* 081C7C 7F04D14C 01816824 */ and $t5, $t4, $at /* 081C80 7F04D150 AE2B0064 */ sw $t3, 0x64($s1) /* 081C84 7F04D154 AE2D0008 */ sw $t5, 8($s1) .L7F04D158: /* 081C88 7F04D158 8FBF002C */ lw $ra, 0x2c($sp) .L7F04D15C: /* 081C8C 7F04D15C 8FB00024 */ lw $s0, 0x24($sp) /* 081C90 7F04D160 8FB10028 */ lw $s1, 0x28($sp) /* 081C94 7F04D164 03E00008 */ jr $ra /* 081C98 7F04D168 27BD0048 */ addiu $sp, $sp, 0x48 ) #endif #ifdef VERSION_EU GLOBAL_ASM( .text glabel object_explosion_related /* 07F9F0 7F04D000 27BDFFB8 */ addiu $sp, $sp, -0x48 /* 07F9F4 7F04D004 AFBF002C */ sw $ra, 0x2c($sp) /* 07F9F8 7F04D008 AFB10028 */ sw $s1, 0x28($sp) /* 07F9FC 7F04D00C AFB00024 */ sw $s0, 0x24($sp) /* 07FA00 7F04D010 AFA5004C */ sw $a1, 0x4c($sp) /* 07FA04 7F04D014 AFA60050 */ sw $a2, 0x50($sp) /* 07FA08 7F04D018 C4860070 */ lwc1 $f6, 0x70($a0) /* 07FA0C 7F04D01C C4840074 */ lwc1 $f4, 0x74($a0) /* 07FA10 7F04D020 00808825 */ move $s1, $a0 /* 07FA14 7F04D024 4606203C */ c.lt.s $f4, $f6 /* 07FA18 7F04D028 00000000 */ nop /* 07FA1C 7F04D02C 45030006 */ bc1tl .L7F04D048 /* 07FA20 7F04D030 862E0004 */ lh $t6, 4($s1) /* 07FA24 7F04D034 0FC10020 */ jal objGetDestroyedLevel /* 07FA28 7F04D038 00000000 */ nop /* 07FA2C 7F04D03C 504000C1 */ beql $v0, $zero, .L7F04D344 /* 07FA30 7F04D040 8FBF002C */ lw $ra, 0x2c($sp) /* 07FA34 7F04D044 862E0004 */ lh $t6, 4($s1) .L7F04D048: /* 07FA38 7F04D048 3C0F8003 */ lui $t7, %hi(object_explosion_details) /* 07FA3C 7F04D04C 8E230010 */ lw $v1, 0x10($s1) /* 07FA40 7F04D050 01EE7821 */ addu $t7, $t7, $t6 /* 07FA44 7F04D054 81EF5D84 */ lb $t7, %lo(object_explosion_details)($t7) /* 07FA48 7F04D058 02202025 */ move $a0, $s1 /* 07FA4C 7F04D05C 00608025 */ move $s0, $v1 /* 07FA50 7F04D060 A7AF003E */ sh $t7, 0x3e($sp) /* 07FA54 7F04D064 8C78001C */ lw $t8, 0x1c($v1) /* 07FA58 7F04D068 53000007 */ beql $t8, $zero, .L7F04D088 /* 07FA5C 7F04D06C 8E190014 */ lw $t9, 0x14($s0) /* 07FA60 7F04D070 8E02001C */ lw $v0, 0x1c($s0) /* 07FA64 7F04D074 00408025 */ move $s0, $v0 .L7F04D078: /* 07FA68 7F04D078 8C42001C */ lw $v0, 0x1c($v0) /* 07FA6C 7F04D07C 5440FFFE */ bnezl $v0, .L7F04D078 /* 07FA70 7F04D080 00408025 */ move $s0, $v0 /* 07FA74 7F04D084 8E190014 */ lw $t9, 0x14($s0) .L7F04D088: /* 07FA78 7F04D088 AFA30044 */ sw $v1, 0x44($sp) /* 07FA7C 7F04D08C 0FC10020 */ jal objGetDestroyedLevel /* 07FA80 7F04D090 AFB90038 */ sw $t9, 0x38($sp) /* 07FA84 7F04D094 14400056 */ bnez $v0, .L7F04D1F0 /* 07FA88 7F04D098 00000000 */ nop /* 07FA8C 7F04D09C 92280002 */ lbu $t0, 2($s1) /* 07FA90 7F04D0A0 44804000 */ mtc1 $zero, $f8 /* 07FA94 7F04D0A4 35090080 */ ori $t1, $t0, 0x80 /* 07FA98 7F04D0A8 A2290002 */ sb $t1, 2($s1) /* 07FA9C 7F04D0AC E6280070 */ swc1 $f8, 0x70($s1) /* 07FAA0 7F04D0B0 8FAA0038 */ lw $t2, 0x38($sp) /* 07FAA4 7F04D0B4 5140002B */ beql $t2, $zero, .L7F04D164 /* 07FAA8 7F04D0B8 8E2B000C */ lw $t3, 0xc($s1) /* 07FAAC 7F04D0BC 920B0001 */ lbu $t3, 1($s0) /* 07FAB0 7F04D0C0 8FA2004C */ lw $v0, 0x4c($sp) /* 07FAB4 7F04D0C4 27A40038 */ addiu $a0, $sp, 0x38 /* 07FAB8 7F04D0C8 316C0008 */ andi $t4, $t3, 8 /* 07FABC 7F04D0CC 55800019 */ bnezl $t4, .L7F04D134 /* 07FAC0 7F04D0D0 8E060014 */ lw $a2, 0x14($s0) /* 07FAC4 7F04D0D4 C44A0008 */ lwc1 $f10, 8($v0) /* 07FAC8 7F04D0D8 8E050008 */ lw $a1, 8($s0) /* 07FACC 7F04D0DC 8E060010 */ lw $a2, 0x10($s0) /* 07FAD0 7F04D0E0 8C470000 */ lw $a3, ($v0) /* 07FAD4 7F04D0E4 0FC2BFA9 */ jal walkTilesBetweenPoints_NoCallback /* 07FAD8 7F04D0E8 E7AA0010 */ swc1 $f10, 0x10($sp) /* 07FADC 7F04D0EC 10400010 */ beqz $v0, .L7F04D130 /* 07FAE0 7F04D0F0 8FA40044 */ lw $a0, 0x44($sp) /* 07FAE4 7F04D0F4 8E2D0008 */ lw $t5, 8($s1) /* 07FAE8 7F04D0F8 8FB80050 */ lw $t8, 0x50($sp) /* 07FAEC 7F04D0FC 2619002C */ addiu $t9, $s0, 0x2c /* 07FAF0 7F04D100 31AE000E */ andi $t6, $t5, 0xe /* 07FAF4 7F04D104 2DCF0001 */ sltiu $t7, $t6, 1 /* 07FAF8 7F04D108 AFAF0010 */ sw $t7, 0x10($sp) /* 07FAFC 7F04D10C AFB90018 */ sw $t9, 0x18($sp) /* 07FB00 7F04D110 AFA0001C */ sw $zero, 0x1c($sp) /* 07FB04 7F04D114 8FA5004C */ lw $a1, 0x4c($sp) /* 07FB08 7F04D118 8FA60038 */ lw $a2, 0x38($sp) /* 07FB0C 7F04D11C 87A7003E */ lh $a3, 0x3e($sp) /* 07FB10 7F04D120 0FC26DE4 */ jal explosionCreate /* 07FB14 7F04D124 AFB80014 */ sw $t8, 0x14($sp) /* 07FB18 7F04D128 1000000E */ b .L7F04D164 /* 07FB1C 7F04D12C 8E2B000C */ lw $t3, 0xc($s1) .L7F04D130: /* 07FB20 7F04D130 8E060014 */ lw $a2, 0x14($s0) .L7F04D134: /* 07FB24 7F04D134 8FA80050 */ lw $t0, 0x50($sp) /* 07FB28 7F04D138 2609002C */ addiu $t1, $s0, 0x2c /* 07FB2C 7F04D13C 240A0001 */ li $t2, 1 /* 07FB30 7F04D140 AFAA001C */ sw $t2, 0x1c($sp) /* 07FB34 7F04D144 AFA90018 */ sw $t1, 0x18($sp) /* 07FB38 7F04D148 AFA00010 */ sw $zero, 0x10($sp) /* 07FB3C 7F04D14C 8FA40044 */ lw $a0, 0x44($sp) /* 07FB40 7F04D150 8FA5004C */ lw $a1, 0x4c($sp) /* 07FB44 7F04D154 87A7003E */ lh $a3, 0x3e($sp) /* 07FB48 7F04D158 0FC26DE4 */ jal explosionCreate /* 07FB4C 7F04D15C AFA80014 */ sw $t0, 0x14($sp) /* 07FB50 7F04D160 8E2B000C */ lw $t3, 0xc($s1) .L7F04D164: /* 07FB54 7F04D164 02202025 */ move $a0, $s1 /* 07FB58 7F04D168 316C2000 */ andi $t4, $t3, 0x2000 /* 07FB5C 7F04D16C 11800005 */ beqz $t4, .L7F04D184 /* 07FB60 7F04D170 00000000 */ nop /* 07FB64 7F04D174 8E2D0064 */ lw $t5, 0x64($s1) /* 07FB68 7F04D178 35AE0004 */ ori $t6, $t5, 4 /* 07FB6C 7F04D17C 10000070 */ b .L7F04D340 /* 07FB70 7F04D180 AE2E0064 */ sw $t6, 0x64($s1) .L7F04D184: /* 07FB74 7F04D184 0FC12DFB */ jal objDeform /* 07FB78 7F04D188 24050001 */ li $a1, 1 /* 07FB7C 7F04D18C 8FA40044 */ lw $a0, 0x44($sp) /* 07FB80 7F04D190 5604006C */ bnel $s0, $a0, .L7F04D344 /* 07FB84 7F04D194 8FBF002C */ lw $ra, 0x2c($sp) /* 07FB88 7F04D198 0FC133BE */ jal objDestroySupportedObjects /* 07FB8C 7F04D19C 8FA50050 */ lw $a1, 0x50($sp) /* 07FB90 7F04D1A0 8E220064 */ lw $v0, 0x64($s1) /* 07FB94 7F04D1A4 304F8000 */ andi $t7, $v0, 0x8000 /* 07FB98 7F04D1A8 51E0000A */ beql $t7, $zero, .L7F04D1D4 /* 07FB9C 7F04D1AC 3C010001 */ lui $at, 1 /* 07FBA0 7F04D1B0 0C00262C */ jal randomGetNext /* 07FBA4 7F04D1B4 00000000 */ nop /* 07FBA8 7F04D1B8 24010003 */ li $at, 3 /* 07FBAC 7F04D1BC 0041001B */ divu $zero, $v0, $at /* 07FBB0 7F04D1C0 0000C010 */ mfhi $t8 /* 07FBB4 7F04D1C4 5700005F */ bnezl $t8, .L7F04D344 /* 07FBB8 7F04D1C8 8FBF002C */ lw $ra, 0x2c($sp) /* 07FBBC 7F04D1CC 8E220064 */ lw $v0, 0x64($s1) /* 07FBC0 7F04D1D0 3C010001 */ lui $at, 1 .L7F04D1D4: /* 07FBC4 7F04D1D4 0041C825 */ or $t9, $v0, $at /* 07FBC8 7F04D1D8 AE390064 */ sw $t9, 0x64($s1) /* 07FBCC 7F04D1DC 8FA50050 */ lw $a1, 0x50($sp) /* 07FBD0 7F04D1E0 0FC1330E */ jal objFall /* 07FBD4 7F04D1E4 02202025 */ move $a0, $s1 /* 07FBD8 7F04D1E8 10000056 */ b .L7F04D344 /* 07FBDC 7F04D1EC 8FBF002C */ lw $ra, 0x2c($sp) .L7F04D1F0: /* 07FBE0 7F04D1F0 0FC10008 */ jal objGetShotsTaken /* 07FBE4 7F04D1F4 02202025 */ move $a0, $s1 /* 07FBE8 7F04D1F8 30480003 */ andi $t0, $v0, 3 /* 07FBEC 7F04D1FC 15000031 */ bnez $t0, .L7F04D2C4eu /* 07FBF0 7F04D200 AFA20034 */ sw $v0, 0x34($sp) /* 07FBF4 7F04D204 00024883 */ sra $t1, $v0, 2 /* 07FBF8 7F04D208 25250001 */ addiu $a1, $t1, 1 /* 07FBFC 7F04D20C 0FC12DFB */ jal objDeform /* 07FC00 7F04D210 02202025 */ move $a0, $s1 /* 07FC04 7F04D214 8FAA0038 */ lw $t2, 0x38($sp) /* 07FC08 7F04D218 1140002A */ beqz $t2, .L7F04D2C4eu /* 07FC0C 7F04D21C 00000000 */ nop /* 07FC10 7F04D220 920B0001 */ lbu $t3, 1($s0) /* 07FC14 7F04D224 8FA2004C */ lw $v0, 0x4c($sp) /* 07FC18 7F04D228 27A40038 */ addiu $a0, $sp, 0x38 /* 07FC1C 7F04D22C 316C0008 */ andi $t4, $t3, 8 /* 07FC20 7F04D230 55800019 */ bnezl $t4, .L7F04D298 /* 07FC24 7F04D234 8E060014 */ lw $a2, 0x14($s0) /* 07FC28 7F04D238 C4500008 */ lwc1 $f16, 8($v0) /* 07FC2C 7F04D23C 8E050008 */ lw $a1, 8($s0) /* 07FC30 7F04D240 8E060010 */ lw $a2, 0x10($s0) /* 07FC34 7F04D244 8C470000 */ lw $a3, ($v0) /* 07FC38 7F04D248 0FC2BFA9 */ jal walkTilesBetweenPoints_NoCallback /* 07FC3C 7F04D24C E7B00010 */ swc1 $f16, 0x10($sp) /* 07FC40 7F04D250 10400010 */ beqz $v0, .L7F04D294 /* 07FC44 7F04D254 8FA40044 */ lw $a0, 0x44($sp) /* 07FC48 7F04D258 8E2D0008 */ lw $t5, 8($s1) /* 07FC4C 7F04D25C 8FB80050 */ lw $t8, 0x50($sp) /* 07FC50 7F04D260 2619002C */ addiu $t9, $s0, 0x2c /* 07FC54 7F04D264 31AE000E */ andi $t6, $t5, 0xe /* 07FC58 7F04D268 2DCF0001 */ sltiu $t7, $t6, 1 /* 07FC5C 7F04D26C AFAF0010 */ sw $t7, 0x10($sp) /* 07FC60 7F04D270 AFB90018 */ sw $t9, 0x18($sp) /* 07FC64 7F04D274 AFA0001C */ sw $zero, 0x1c($sp) /* 07FC68 7F04D278 8FA5004C */ lw $a1, 0x4c($sp) /* 07FC6C 7F04D27C 8FA60038 */ lw $a2, 0x38($sp) /* 07FC70 7F04D280 24070010 */ li $a3, 16 /* 07FC74 7F04D284 0FC26DE4 */ jal explosionCreate /* 07FC78 7F04D288 AFB80014 */ sw $t8, 0x14($sp) /* 07FC7C 7F04D28C 1000000D */ b .L7F04D2C4eu /* 07FC80 7F04D290 00000000 */ nop .L7F04D294: /* 07FC84 7F04D294 8E060014 */ lw $a2, 0x14($s0) .L7F04D298: /* 07FC88 7F04D298 8FA80050 */ lw $t0, 0x50($sp) /* 07FC8C 7F04D29C 2609002C */ addiu $t1, $s0, 0x2c /* 07FC90 7F04D2A0 240A0001 */ li $t2, 1 /* 07FC94 7F04D2A4 AFAA001C */ sw $t2, 0x1c($sp) /* 07FC98 7F04D2A8 AFA90018 */ sw $t1, 0x18($sp) /* 07FC9C 7F04D2AC AFA00010 */ sw $zero, 0x10($sp) /* 07FCA0 7F04D2B0 8FA40044 */ lw $a0, 0x44($sp) /* 07FCA4 7F04D2B4 8FA5004C */ lw $a1, 0x4c($sp) /* 07FCA8 7F04D2B8 24070010 */ li $a3, 16 /* 07FCAC 7F04D2BC 0FC26DE4 */ jal explosionCreate /* 07FCB0 7F04D2C0 AFA80014 */ sw $t0, 0x14($sp) .L7F04D2C4eu: /* 07FCB4 7F04D2C4 0FC10020 */ jal objGetDestroyedLevel /* 07FCB8 7F04D2C8 02202025 */ move $a0, $s1 /* 07FCBC 7F04D2CC 58400012 */ blezl $v0, .L7F04D318 /* 07FCC0 7F04D2D0 8FA80034 */ lw $t0, 0x34($sp) /* 07FCC4 7F04D2D4 92220002 */ lbu $v0, 2($s1) /* 07FCC8 7F04D2D8 304B0004 */ andi $t3, $v0, 4 /* 07FCCC 7F04D2DC 5160000E */ beql $t3, $zero, .L7F04D318 /* 07FCD0 7F04D2E0 8FA80034 */ lw $t0, 0x34($sp) /* 07FCD4 7F04D2E4 8E2C0064 */ lw $t4, 0x64($s1) /* 07FCD8 7F04D2E8 344E0010 */ ori $t6, $v0, 0x10 /* 07FCDC 7F04D2EC 304FFFEF */ andi $t7, $v0, 0xffef /* 07FCE0 7F04D2F0 318D1000 */ andi $t5, $t4, 0x1000 /* 07FCE4 7F04D2F4 51A00004 */ beql $t5, $zero, .L7F04D308 /* 07FCE8 7F04D2F8 A22F0002 */ sb $t7, 2($s1) /* 07FCEC 7F04D2FC 10000002 */ b .L7F04D308 /* 07FCF0 7F04D300 A22E0002 */ sb $t6, 2($s1) /* 07FCF4 7F04D304 A22F0002 */ sb $t7, 2($s1) .L7F04D308: /* 07FCF8 7F04D308 8FB90044 */ lw $t9, 0x44($sp) /* 07FCFC 7F04D30C 241803E8 */ li $t8, 1000 /* 07FD00 7F04D310 A7380002 */ sh $t8, 2($t9) /* 07FD04 7F04D314 8FA80034 */ lw $t0, 0x34($sp) .L7F04D318: /* 07FD08 7F04D318 2901000C */ slti $at, $t0, 0xc /* 07FD0C 7F04D31C 54200009 */ bnezl $at, .L7F04D344 /* 07FD10 7F04D320 8FBF002C */ lw $ra, 0x2c($sp) /* 07FD14 7F04D324 8E290064 */ lw $t1, 0x64($s1) /* 07FD18 7F04D328 8E2B0008 */ lw $t3, 8($s1) /* 07FD1C 7F04D32C 2401FEFF */ li $at, -257 /* 07FD20 7F04D330 352A1000 */ ori $t2, $t1, 0x1000 /* 07FD24 7F04D334 01616024 */ and $t4, $t3, $at /* 07FD28 7F04D338 AE2A0064 */ sw $t2, 0x64($s1) /* 07FD2C 7F04D33C AE2C0008 */ sw $t4, 8($s1) .L7F04D340: /* 07FD30 7F04D340 8FBF002C */ lw $ra, 0x2c($sp) .L7F04D344: /* 07FD34 7F04D344 8FB00024 */ lw $s0, 0x24($sp) /* 07FD38 7F04D348 8FB10028 */ lw $s1, 0x28($sp) /* 07FD3C 7F04D34C 03E00008 */ jr $ra /* 07FD40 7F04D350 27BD0048 */ addiu $sp, $sp, 0x48 ) #endif #endif #ifdef NONMATCHING bool bgTestHitOnObj(coord3d *arg0, coord3d *arg1, coord3d *arg2, Gfx *gdl, Gfx *gdl2, Vertex *vertices, struct HitThing *hitthing) { } #else bool bgTestHitOnObj(coord3d *arg0, coord3d *arg1, coord3d *arg2, Gfx *gdl, Gfx *gdl2, Vertex *vertices, struct HitThing *hitthing); u32 D_8003204C = 0x7FFF; u32 D_80032050 = 0x7FFF; u32 D_80032054 = 0x7FFF; u32 D_80032058 = 0xFFFF8000; u32 D_8003205C = 0xFFFF8000; u32 D_80032060 = 0xFFFF8000; u32 D_80032064 = 0; u32 D_80032068 = 0; u32 D_8003206C = 0; u32 D_80032070 = 0x7FFF; u32 D_80032074 = 0x7FFF; u32 D_80032078 = 0x7FFF; u32 D_8003207C = 0xFFFF8000; u32 D_80032080 = 0xFFFF8000; u32 D_80032084 = 0xFFFF8000; u32 D_80032088 = 0; u32 D_8003208C = 0; u32 D_80032090 = 0; GLOBAL_ASM( .text glabel bgTestHitOnObj /* 081C9C 7F04D16C 27BDFEB0 */ addiu $sp, $sp, -0x150 /* 081CA0 7F04D170 F7B40028 */ sdc1 $f20, 0x28($sp) /* 081CA4 7F04D174 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 /* 081CA8 7F04D178 AFBE0050 */ sw $fp, 0x50($sp) /* 081CAC 7F04D17C AFB7004C */ sw $s7, 0x4c($sp) /* 081CB0 7F04D180 AFB60048 */ sw $s6, 0x48($sp) /* 081CB4 7F04D184 AFB50044 */ sw $s5, 0x44($sp) /* 081CB8 7F04D188 AFB40040 */ sw $s4, 0x40($sp) /* 081CBC 7F04D18C AFB3003C */ sw $s3, 0x3c($sp) /* 081CC0 7F04D190 AFB10034 */ sw $s1, 0x34($sp) /* 081CC4 7F04D194 AFB00030 */ sw $s0, 0x30($sp) /* 081CC8 7F04D198 4481A000 */ mtc1 $at, $f20 /* 081CCC 7F04D19C 00E08825 */ move $s1, $a3 /* 081CD0 7F04D1A0 0080B825 */ move $s7, $a0 /* 081CD4 7F04D1A4 00C0F025 */ move $fp, $a2 /* 081CD8 7F04D1A8 AFBF0054 */ sw $ra, 0x54($sp) /* 081CDC 7F04D1AC AFB20038 */ sw $s2, 0x38($sp) /* 081CE0 7F04D1B0 AFA50154 */ sw $a1, 0x154($sp) /* 081CE4 7F04D1B4 AFA00110 */ sw $zero, 0x110($sp) /* 081CE8 7F04D1B8 00E09825 */ move $s3, $a3 /* 081CEC 7F04D1BC 8FB0014C */ lw $s0, 0x14c($sp) /* 081CF0 7F04D1C0 8FB40168 */ lw $s4, 0x168($sp) /* 081CF4 7F04D1C4 241500FD */ li $s5, 253 /* 081CF8 7F04D1C8 27B600B0 */ addiu $s6, $sp, 0xb0 .L7F04D1CC: /* 081CFC 7F04D1CC 82220000 */ lb $v0, ($s1) /* 081D00 7F04D1D0 2401FFB8 */ li $at, -72 /* 081D04 7F04D1D4 8FAE0160 */ lw $t6, 0x160($sp) /* 081D08 7F04D1D8 54410007 */ bnel $v0, $at, .L7F04D1F8 /* 081D0C 7F04D1DC 24010004 */ li $at, 4 /* 081D10 7F04D1E0 11C001E5 */ beqz $t6, .L7F04D978 /* 081D14 7F04D1E4 01C09825 */ move $s3, $t6 /* 081D18 7F04D1E8 01C08825 */ move $s1, $t6 /* 081D1C 7F04D1EC 1000FFF7 */ b .L7F04D1CC /* 081D20 7F04D1F0 AFA00160 */ sw $zero, 0x160($sp) /* 081D24 7F04D1F4 24010004 */ li $at, 4 .L7F04D1F8: /* 081D28 7F04D1F8 1441000C */ bne $v0, $at, .L7F04D22C /* 081D2C 7F04D1FC 8FB90164 */ lw $t9, 0x164($sp) /* 081D30 7F04D200 92220001 */ lbu $v0, 1($s1) /* 081D34 7F04D204 8E230004 */ lw $v1, 4($s1) /* 081D38 7F04D208 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff /* 081D3C 7F04D20C 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff /* 081D40 7F04D210 304F000F */ andi $t7, $v0, 0xf /* 081D44 7F04D214 0061C024 */ and $t8, $v1, $at /* 081D48 7F04D218 03384021 */ addu $t0, $t9, $t8 /* 081D4C 7F04D21C 000F4900 */ sll $t1, $t7, 4 /* 081D50 7F04D220 01098023 */ subu $s0, $t0, $t1 /* 081D54 7F04D224 1000FFE9 */ b .L7F04D1CC /* 081D58 7F04D228 26310008 */ addiu $s1, $s1, 8 .L7F04D22C: /* 081D5C 7F04D22C 2401FFBF */ li $at, -65 /* 081D60 7F04D230 144100E2 */ bne $v0, $at, .L7F04D5BC /* 081D64 7F04D234 2403000A */ li $v1, 10 /* 081D68 7F04D238 3C0B8003 */ lui $t3, %hi(D_8003204C) /* 081D6C 7F04D23C 256B204C */ addiu $t3, %lo(D_8003204C) # addiu $t3, $t3, 0x204c /* 081D70 7F04D240 8D610000 */ lw $at, ($t3) /* 081D74 7F04D244 27AA00E8 */ addiu $t2, $sp, 0xe8 /* 081D78 7F04D248 8D6D0004 */ lw $t5, 4($t3) /* 081D7C 7F04D24C AD410000 */ sw $at, ($t2) /* 081D80 7F04D250 8D610008 */ lw $at, 8($t3) /* 081D84 7F04D254 3C0F8003 */ lui $t7, %hi(D_80032058) /* 081D88 7F04D258 25EF2058 */ addiu $t7, %lo(D_80032058) # addiu $t7, $t7, 0x2058 /* 081D8C 7F04D25C AD4D0004 */ sw $t5, 4($t2) /* 081D90 7F04D260 AD410008 */ sw $at, 8($t2) /* 081D94 7F04D264 8DE10000 */ lw $at, ($t7) /* 081D98 7F04D268 27AE00DC */ addiu $t6, $sp, 0xdc /* 081D9C 7F04D26C 8DF90004 */ lw $t9, 4($t7) /* 081DA0 7F04D270 ADC10000 */ sw $at, ($t6) /* 081DA4 7F04D274 8DE10008 */ lw $at, 8($t7) /* 081DA8 7F04D278 ADD90004 */ sw $t9, 4($t6) /* 081DAC 7F04D27C 00001025 */ move $v0, $zero /* 081DB0 7F04D280 ADC10008 */ sw $at, 8($t6) /* 081DB4 7F04D284 92280005 */ lbu $t0, 5($s1) /* 081DB8 7F04D288 27A400F8 */ addiu $a0, $sp, 0xf8 /* 081DBC 7F04D28C 03C02825 */ move $a1, $fp /* 081DC0 7F04D290 0103001A */ div $zero, $t0, $v1 /* 081DC4 7F04D294 00004812 */ mflo $t1 /* 081DC8 7F04D298 AFA900F8 */ sw $t1, 0xf8($sp) /* 081DCC 7F04D29C 922C0006 */ lbu $t4, 6($s1) /* 081DD0 7F04D2A0 14600002 */ bnez $v1, .L7F04D2AC /* 081DD4 7F04D2A4 00000000 */ nop /* 081DD8 7F04D2A8 0007000D */ break 7 .L7F04D2AC: /* 081DDC 7F04D2AC 2401FFFF */ li $at, -1 /* 081DE0 7F04D2B0 14610004 */ bne $v1, $at, .L7F04D2C4 /* 081DE4 7F04D2B4 3C018000 */ lui $at, 0x8000 /* 081DE8 7F04D2B8 15010002 */ bne $t0, $at, .L7F04D2C4 /* 081DEC 7F04D2BC 00000000 */ nop /* 081DF0 7F04D2C0 0006000D */ break 6 .L7F04D2C4: /* 081DF4 7F04D2C4 0183001A */ div $zero, $t4, $v1 /* 081DF8 7F04D2C8 00005012 */ mflo $t2 /* 081DFC 7F04D2CC AFAA00FC */ sw $t2, 0xfc($sp) /* 081E00 7F04D2D0 922B0007 */ lbu $t3, 7($s1) /* 081E04 7F04D2D4 14600002 */ bnez $v1, .L7F04D2E0 /* 081E08 7F04D2D8 00000000 */ nop /* 081E0C 7F04D2DC 0007000D */ break 7 .L7F04D2E0: /* 081E10 7F04D2E0 2401FFFF */ li $at, -1 /* 081E14 7F04D2E4 14610004 */ bne $v1, $at, .L7F04D2F8 /* 081E18 7F04D2E8 3C018000 */ lui $at, 0x8000 /* 081E1C 7F04D2EC 15810002 */ bne $t4, $at, .L7F04D2F8 /* 081E20 7F04D2F0 00000000 */ nop /* 081E24 7F04D2F4 0006000D */ break 6 .L7F04D2F8: /* 081E28 7F04D2F8 0163001A */ div $zero, $t3, $v1 /* 081E2C 7F04D2FC 00006812 */ mflo $t5 /* 081E30 7F04D300 AFAD0100 */ sw $t5, 0x100($sp) /* 081E34 7F04D304 14600002 */ bnez $v1, .L7F04D310 /* 081E38 7F04D308 00000000 */ nop /* 081E3C 7F04D30C 0007000D */ break 7 .L7F04D310: /* 081E40 7F04D310 2401FFFF */ li $at, -1 /* 081E44 7F04D314 14610004 */ bne $v1, $at, .L7F04D328 /* 081E48 7F04D318 3C018000 */ lui $at, 0x8000 /* 081E4C 7F04D31C 15610002 */ bne $t3, $at, .L7F04D328 /* 081E50 7F04D320 00000000 */ nop /* 081E54 7F04D324 0006000D */ break 6 .L7F04D328: /* 081E58 7F04D328 8C980000 */ lw $t8, ($a0) .L7F04D32C: /* 081E5C 7F04D32C 8FAF00E8 */ lw $t7, 0xe8($sp) /* 081E60 7F04D330 24840004 */ addiu $a0, $a0, 4 /* 081E64 7F04D334 00187100 */ sll $t6, $t8, 4 /* 081E68 7F04D338 020E1821 */ addu $v1, $s0, $t6 /* 081E6C 7F04D33C 84620000 */ lh $v0, ($v1) /* 081E70 7F04D340 27AB0104 */ addiu $t3, $sp, 0x104 /* 081E74 7F04D344 004F082A */ slt $at, $v0, $t7 /* 081E78 7F04D348 50200004 */ beql $at, $zero, .L7F04D35C /* 081E7C 7F04D34C 8FB900DC */ lw $t9, 0xdc($sp) /* 081E80 7F04D350 AFA200E8 */ sw $v0, 0xe8($sp) /* 081E84 7F04D354 84620000 */ lh $v0, ($v1) /* 081E88 7F04D358 8FB900DC */ lw $t9, 0xdc($sp) .L7F04D35C: /* 081E8C 7F04D35C 0322082A */ slt $at, $t9, $v0 /* 081E90 7F04D360 50200003 */ beql $at, $zero, .L7F04D370 /* 081E94 7F04D364 84620002 */ lh $v0, 2($v1) /* 081E98 7F04D368 AFA200DC */ sw $v0, 0xdc($sp) /* 081E9C 7F04D36C 84620002 */ lh $v0, 2($v1) .L7F04D370: /* 081EA0 7F04D370 8FA800EC */ lw $t0, 0xec($sp) /* 081EA4 7F04D374 0048082A */ slt $at, $v0, $t0 /* 081EA8 7F04D378 50200004 */ beql $at, $zero, .L7F04D38C /* 081EAC 7F04D37C 8FA900E0 */ lw $t1, 0xe0($sp) /* 081EB0 7F04D380 AFA200EC */ sw $v0, 0xec($sp) /* 081EB4 7F04D384 84620002 */ lh $v0, 2($v1) /* 081EB8 7F04D388 8FA900E0 */ lw $t1, 0xe0($sp) .L7F04D38C: /* 081EBC 7F04D38C 0122082A */ slt $at, $t1, $v0 /* 081EC0 7F04D390 50200003 */ beql $at, $zero, .L7F04D3A0 /* 081EC4 7F04D394 84620004 */ lh $v0, 4($v1) /* 081EC8 7F04D398 AFA200E0 */ sw $v0, 0xe0($sp) /* 081ECC 7F04D39C 84620004 */ lh $v0, 4($v1) .L7F04D3A0: /* 081ED0 7F04D3A0 8FAC00F0 */ lw $t4, 0xf0($sp) /* 081ED4 7F04D3A4 004C082A */ slt $at, $v0, $t4 /* 081ED8 7F04D3A8 50200004 */ beql $at, $zero, .L7F04D3BC /* 081EDC 7F04D3AC 8FAA00E4 */ lw $t2, 0xe4($sp) /* 081EE0 7F04D3B0 AFA200F0 */ sw $v0, 0xf0($sp) /* 081EE4 7F04D3B4 84620004 */ lh $v0, 4($v1) /* 081EE8 7F04D3B8 8FAA00E4 */ lw $t2, 0xe4($sp) .L7F04D3BC: /* 081EEC 7F04D3BC 0142082A */ slt $at, $t2, $v0 /* 081EF0 7F04D3C0 10200002 */ beqz $at, .L7F04D3CC /* 081EF4 7F04D3C4 00000000 */ nop /* 081EF8 7F04D3C8 AFA200E4 */ sw $v0, 0xe4($sp) .L7F04D3CC: /* 081EFC 7F04D3CC 548BFFD7 */ bnel $a0, $t3, .L7F04D32C /* 081F00 7F04D3D0 8C980000 */ lw $t8, ($a0) /* 081F04 7F04D3D4 02E02025 */ move $a0, $s7 /* 081F08 7F04D3D8 27A600E8 */ addiu $a2, $sp, 0xe8 /* 081F0C 7F04D3DC 0FC2DB3B */ jal bgTestLineIntersectsBbox /* 081F10 7F04D3E0 27A700DC */ addiu $a3, $sp, 0xdc /* 081F14 7F04D3E4 10400162 */ beqz $v0, .L7F04D970 /* 081F18 7F04D3E8 3C0D8003 */ lui $t5, %hi(D_80032064) /* 081F1C 7F04D3EC 25AD2064 */ addiu $t5, %lo(D_80032064) # addiu $t5, $t5, 0x2064 /* 081F20 7F04D3F0 8DA10000 */ lw $at, ($t5) /* 081F24 7F04D3F4 27A700C4 */ addiu $a3, $sp, 0xc4 /* 081F28 7F04D3F8 27B8011C */ addiu $t8, $sp, 0x11c /* 081F2C 7F04D3FC ACE10000 */ sw $at, ($a3) /* 081F30 7F04D400 8DAE0004 */ lw $t6, 4($t5) /* 081F34 7F04D404 ACEE0004 */ sw $t6, 4($a3) /* 081F38 7F04D408 8DA10008 */ lw $at, 8($t5) /* 081F3C 7F04D40C ACE10008 */ sw $at, 8($a3) /* 081F40 7F04D410 8FAC0100 */ lw $t4, 0x100($sp) /* 081F44 7F04D414 8FA800FC */ lw $t0, 0xfc($sp) /* 081F48 7F04D418 8FAF00F8 */ lw $t7, 0xf8($sp) /* 081F4C 7F04D41C 8FAB0154 */ lw $t3, 0x154($sp) /* 081F50 7F04D420 000C5100 */ sll $t2, $t4, 4 /* 081F54 7F04D424 00084900 */ sll $t1, $t0, 4 /* 081F58 7F04D428 000FC900 */ sll $t9, $t7, 4 /* 081F5C 7F04D42C 02192021 */ addu $a0, $s0, $t9 /* 081F60 7F04D430 02092821 */ addu $a1, $s0, $t1 /* 081F64 7F04D434 020A3021 */ addu $a2, $s0, $t2 /* 081F68 7F04D438 AFB8001C */ sw $t8, 0x1c($sp) /* 081F6C 7F04D43C AFBE0018 */ sw $fp, 0x18($sp) /* 081F70 7F04D440 AFB70010 */ sw $s7, 0x10($sp) /* 081F74 7F04D444 0FC24A24 */ jal intersectLineTriangle /* 081F78 7F04D448 AFAB0014 */ sw $t3, 0x14($sp) /* 081F7C 7F04D44C 10400148 */ beqz $v0, .L7F04D970 /* 081F80 7F04D450 00000000 */ nop /* 081F84 7F04D454 C7A4011C */ lwc1 $f4, 0x11c($sp) /* 081F88 7F04D458 C6E80000 */ lwc1 $f8, ($s7) /* 081F8C 7F04D45C C7B20120 */ lwc1 $f18, 0x120($sp) /* 081F90 7F04D460 4600218D */ trunc.w.s $f6, $f4 /* 081F94 7F04D464 92290000 */ lbu $t1, ($s1) /* 081F98 7F04D468 02201025 */ move $v0, $s1 /* 081F9C 7F04D46C 4600428D */ trunc.w.s $f10, $f8 /* 081FA0 7F04D470 440E3000 */ mfc1 $t6, $f6 /* 081FA4 7F04D474 C6E60004 */ lwc1 $f6, 4($s7) /* 081FA8 7F04D478 4600910D */ trunc.w.s $f4, $f18 /* 081FAC 7F04D47C 44195000 */ mfc1 $t9, $f10 /* 081FB0 7F04D480 0271082B */ sltu $at, $s3, $s1 /* 081FB4 7F04D484 4600320D */ trunc.w.s $f8, $f6 /* 081FB8 7F04D488 01D94023 */ subu $t0, $t6, $t9 /* 081FBC 7F04D48C 44888000 */ mtc1 $t0, $f16 /* 081FC0 7F04D490 440C2000 */ mfc1 $t4, $f4 /* 081FC4 7F04D494 440B4000 */ mfc1 $t3, $f8 /* 081FC8 7F04D498 468080A0 */ cvt.s.w $f2, $f16 /* 081FCC 7F04D49C C7B00124 */ lwc1 $f16, 0x124($sp) /* 081FD0 7F04D4A0 C6E40008 */ lwc1 $f4, 8($s7) /* 081FD4 7F04D4A4 018BC023 */ subu $t8, $t4, $t3 /* 081FD8 7F04D4A8 44985000 */ mtc1 $t8, $f10 /* 081FDC 7F04D4AC 4600848D */ trunc.w.s $f18, $f16 /* 081FE0 7F04D4B0 4600218D */ trunc.w.s $f6, $f4 /* 081FE4 7F04D4B4 440F9000 */ mfc1 $t7, $f18 /* 081FE8 7F04D4B8 46805320 */ cvt.s.w $f12, $f10 /* 081FEC 7F04D4BC 44193000 */ mfc1 $t9, $f6 /* 081FF0 7F04D4C0 46021282 */ mul.s $f10, $f2, $f2 /* 081FF4 7F04D4C4 01F94023 */ subu $t0, $t7, $t9 /* 081FF8 7F04D4C8 44884000 */ mtc1 $t0, $f8 /* 081FFC 7F04D4CC 460C6402 */ mul.s $f16, $f12, $f12 /* 082000 7F04D4D0 12A9000A */ beq $s5, $t1, .L7F04D4FC /* 082004 7F04D4D4 468043A0 */ cvt.s.w $f14, $f8 /* 082008 7F04D4D8 10200008 */ beqz $at, .L7F04D4FC /* 08200C 7F04D4DC 00000000 */ nop /* 082010 7F04D4E0 904AFFF8 */ lbu $t2, -8($v0) .L7F04D4E4: /* 082014 7F04D4E4 2442FFF8 */ addiu $v0, $v0, -8 /* 082018 7F04D4E8 0262082B */ sltu $at, $s3, $v0 /* 08201C 7F04D4EC 12AA0003 */ beq $s5, $t2, .L7F04D4FC /* 082020 7F04D4F0 00000000 */ nop /* 082024 7F04D4F4 5420FFFB */ bnezl $at, .L7F04D4E4 /* 082028 7F04D4F8 904AFFF8 */ lbu $t2, -8($v0) .L7F04D4FC: /* 08202C 7F04D4FC 460E7102 */ mul.s $f4, $f14, $f14 /* 082030 7F04D500 54530004 */ bnel $v0, $s3, .L7F04D514 /* 082034 7F04D504 8C430004 */ lw $v1, 4($v0) /* 082038 7F04D508 10000006 */ b .L7F04D524 /* 08203C 7F04D50C 2404FFFF */ li $a0, -1 /* 082040 7F04D510 8C430004 */ lw $v1, 4($v0) .L7F04D514: /* 082044 7F04D514 3C018000 */ lui $at, 0x8000 /* 082048 7F04D518 2463FFF8 */ addiu $v1, $v1, -8 /* 08204C 7F04D51C 00616025 */ or $t4, $v1, $at /* 082050 7F04D520 95840000 */ lhu $a0, ($t4) .L7F04D524: /* 082054 7F04D524 46105480 */ add.s $f18, $f10, $f16 /* 082058 7F04D528 46049000 */ add.s $f0, $f18, $f4 /* 08205C 7F04D52C 4614003C */ c.lt.s $f0, $f20 /* 082060 7F04D530 00000000 */ nop /* 082064 7F04D534 4500010E */ bc1f .L7F04D970 /* 082068 7F04D538 00000000 */ nop /* 08206C 7F04D53C C7A6011C */ lwc1 $f6, 0x11c($sp) /* 082070 7F04D540 240C0001 */ li $t4, 1 /* 082074 7F04D544 46000506 */ mov.s $f20, $f0 /* 082078 7F04D548 E6860000 */ swc1 $f6, ($s4) /* 08207C 7F04D54C C7A80120 */ lwc1 $f8, 0x120($sp) /* 082080 7F04D550 E6880004 */ swc1 $f8, 4($s4) /* 082084 7F04D554 C7AA0124 */ lwc1 $f10, 0x124($sp) /* 082088 7F04D558 E68A0008 */ swc1 $f10, 8($s4) /* 08208C 7F04D55C C7B00128 */ lwc1 $f16, 0x128($sp) /* 082090 7F04D560 E690000C */ swc1 $f16, 0xc($s4) /* 082094 7F04D564 C7B2012C */ lwc1 $f18, 0x12c($sp) /* 082098 7F04D568 E6920010 */ swc1 $f18, 0x10($s4) /* 08209C 7F04D56C C7A40130 */ lwc1 $f4, 0x130($sp) /* 0820A0 7F04D570 E6840014 */ swc1 $f4, 0x14($s4) /* 0820A4 7F04D574 8FAB00F8 */ lw $t3, 0xf8($sp) /* 0820A8 7F04D578 000BC100 */ sll $t8, $t3, 4 /* 0820AC 7F04D57C 03106821 */ addu $t5, $t8, $s0 /* 0820B0 7F04D580 AE8D0018 */ sw $t5, 0x18($s4) /* 0820B4 7F04D584 8FAE00FC */ lw $t6, 0xfc($sp) /* 0820B8 7F04D588 000E7900 */ sll $t7, $t6, 4 /* 0820BC 7F04D58C 01F0C821 */ addu $t9, $t7, $s0 /* 0820C0 7F04D590 AE99001C */ sw $t9, 0x1c($s4) /* 0820C4 7F04D594 8FA80100 */ lw $t0, 0x100($sp) /* 0820C8 7F04D598 A684002A */ sh $a0, 0x2a($s4) /* 0820CC 7F04D59C AE910024 */ sw $s1, 0x24($s4) /* 0820D0 7F04D5A0 00084900 */ sll $t1, $t0, 4 /* 0820D4 7F04D5A4 01305021 */ addu $t2, $t1, $s0 /* 0820D8 7F04D5A8 AE8A0020 */ sw $t2, 0x20($s4) /* 0820DC 7F04D5AC A6800028 */ sh $zero, 0x28($s4) /* 0820E0 7F04D5B0 AFAC0110 */ sw $t4, 0x110($sp) /* 0820E4 7F04D5B4 1000FF05 */ b .L7F04D1CC /* 0820E8 7F04D5B8 26310008 */ addiu $s1, $s1, 8 .L7F04D5BC: /* 0820EC 7F04D5BC 2401FFB1 */ li $at, -79 /* 0820F0 7F04D5C0 144100EB */ bne $v0, $at, .L7F04D970 /* 0820F4 7F04D5C4 00000000 */ nop /* 0820F8 7F04D5C8 00009025 */ move $s2, $zero .L7F04D5CC: /* 0820FC 7F04D5CC 3C188003 */ lui $t8, %hi(D_80032070) /* 082100 7F04D5D0 27182070 */ addiu $t8, %lo(D_80032070) # addiu $t8, $t8, 0x2070 /* 082104 7F04D5D4 8F010000 */ lw $at, ($t8) /* 082108 7F04D5D8 27AB0094 */ addiu $t3, $sp, 0x94 /* 08210C 7F04D5DC 8F0E0004 */ lw $t6, 4($t8) /* 082110 7F04D5E0 AD610000 */ sw $at, ($t3) /* 082114 7F04D5E4 8F010008 */ lw $at, 8($t8) /* 082118 7F04D5E8 3C198003 */ lui $t9, %hi(D_8003207C) /* 08211C 7F04D5EC 2739207C */ addiu $t9, %lo(D_8003207C) # addiu $t9, $t9, 0x207c /* 082120 7F04D5F0 AD6E0004 */ sw $t6, 4($t3) /* 082124 7F04D5F4 AD610008 */ sw $at, 8($t3) /* 082128 7F04D5F8 8F210000 */ lw $at, ($t9) /* 08212C 7F04D5FC 27AF0088 */ addiu $t7, $sp, 0x88 /* 082130 7F04D600 8F290004 */ lw $t1, 4($t9) /* 082134 7F04D604 ADE10000 */ sw $at, ($t7) /* 082138 7F04D608 8F210008 */ lw $at, 8($t9) /* 08213C 7F04D60C ADE90004 */ sw $t1, 4($t7) /* 082140 7F04D610 1640000B */ bnez $s2, .L7F04D640 /* 082144 7F04D614 ADE10008 */ sw $at, 8($t7) /* 082148 7F04D618 8E2A0004 */ lw $t2, 4($s1) /* 08214C 7F04D61C 314C000F */ andi $t4, $t2, 0xf /* 082150 7F04D620 AFAC00A4 */ sw $t4, 0xa4($sp) /* 082154 7F04D624 922D0007 */ lbu $t5, 7($s1) /* 082158 7F04D628 000D5902 */ srl $t3, $t5, 4 /* 08215C 7F04D62C AFAB00A8 */ sw $t3, 0xa8($sp) /* 082160 7F04D630 8E380000 */ lw $t8, ($s1) /* 082164 7F04D634 330E000F */ andi $t6, $t8, 0xf /* 082168 7F04D638 10000024 */ b .L7F04D6CC /* 08216C 7F04D63C AFAE00AC */ sw $t6, 0xac($sp) .L7F04D640: /* 082170 7F04D640 24010001 */ li $at, 1 /* 082174 7F04D644 5641000C */ bnel $s2, $at, .L7F04D678 /* 082178 7F04D648 24010002 */ li $at, 2 /* 08217C 7F04D64C 92280006 */ lbu $t0, 6($s1) /* 082180 7F04D650 310F000F */ andi $t7, $t0, 0xf /* 082184 7F04D654 AFAF00A4 */ sw $t7, 0xa4($sp) /* 082188 7F04D658 96390006 */ lhu $t9, 6($s1) /* 08218C 7F04D65C 00194B02 */ srl $t1, $t9, 0xc /* 082190 7F04D660 AFA900A8 */ sw $t1, 0xa8($sp) /* 082194 7F04D664 922A0003 */ lbu $t2, 3($s1) /* 082198 7F04D668 000A6102 */ srl $t4, $t2, 4 /* 08219C 7F04D66C 10000017 */ b .L7F04D6CC /* 0821A0 7F04D670 AFAC00AC */ sw $t4, 0xac($sp) /* 0821A4 7F04D674 24010002 */ li $at, 2 .L7F04D678: /* 0821A8 7F04D678 5641000C */ bnel $s2, $at, .L7F04D6AC /* 0821AC 7F04D67C 92390004 */ lbu $t9, 4($s1) /* 0821B0 7F04D680 962D0004 */ lhu $t5, 4($s1) /* 0821B4 7F04D684 31AB000F */ andi $t3, $t5, 0xf /* 0821B8 7F04D688 AFAB00A4 */ sw $t3, 0xa4($sp) /* 0821BC 7F04D68C 92380005 */ lbu $t8, 5($s1) /* 0821C0 7F04D690 00187102 */ srl $t6, $t8, 4 /* 0821C4 7F04D694 AFAE00A8 */ sw $t6, 0xa8($sp) /* 0821C8 7F04D698 92280002 */ lbu $t0, 2($s1) /* 0821CC 7F04D69C 310F000F */ andi $t7, $t0, 0xf /* 0821D0 7F04D6A0 1000000A */ b .L7F04D6CC /* 0821D4 7F04D6A4 AFAF00AC */ sw $t7, 0xac($sp) /* 0821D8 7F04D6A8 92390004 */ lbu $t9, 4($s1) .L7F04D6AC: /* 0821DC 7F04D6AC 3329000F */ andi $t1, $t9, 0xf /* 0821E0 7F04D6B0 AFA900A4 */ sw $t1, 0xa4($sp) /* 0821E4 7F04D6B4 8E2A0004 */ lw $t2, 4($s1) /* 0821E8 7F04D6B8 000A6702 */ srl $t4, $t2, 0x1c /* 0821EC 7F04D6BC AFAC00A8 */ sw $t4, 0xa8($sp) /* 0821F0 7F04D6C0 962D0002 */ lhu $t5, 2($s1) /* 0821F4 7F04D6C4 000D5B02 */ srl $t3, $t5, 0xc /* 0821F8 7F04D6C8 AFAB00AC */ sw $t3, 0xac($sp) .L7F04D6CC: /* 0821FC 7F04D6CC 27A400A4 */ addiu $a0, $sp, 0xa4 /* 082200 7F04D6D0 8C980000 */ lw $t8, ($a0) .L7F04D6D4: /* 082204 7F04D6D4 8FA80094 */ lw $t0, 0x94($sp) /* 082208 7F04D6D8 24840004 */ addiu $a0, $a0, 4 /* 08220C 7F04D6DC 00187100 */ sll $t6, $t8, 4 /* 082210 7F04D6E0 020E1821 */ addu $v1, $s0, $t6 /* 082214 7F04D6E4 84620000 */ lh $v0, ($v1) /* 082218 7F04D6E8 0048082A */ slt $at, $v0, $t0 /* 08221C 7F04D6EC 50200004 */ beql $at, $zero, .L7F04D700 /* 082220 7F04D6F0 8FAF0088 */ lw $t7, 0x88($sp) /* 082224 7F04D6F4 AFA20094 */ sw $v0, 0x94($sp) /* 082228 7F04D6F8 84620000 */ lh $v0, ($v1) /* 08222C 7F04D6FC 8FAF0088 */ lw $t7, 0x88($sp) .L7F04D700: /* 082230 7F04D700 01E2082A */ slt $at, $t7, $v0 /* 082234 7F04D704 50200003 */ beql $at, $zero, .L7F04D714 /* 082238 7F04D708 84620002 */ lh $v0, 2($v1) /* 08223C 7F04D70C AFA20088 */ sw $v0, 0x88($sp) /* 082240 7F04D710 84620002 */ lh $v0, 2($v1) .L7F04D714: /* 082244 7F04D714 8FB90098 */ lw $t9, 0x98($sp) /* 082248 7F04D718 0059082A */ slt $at, $v0, $t9 /* 08224C 7F04D71C 50200004 */ beql $at, $zero, .L7F04D730 /* 082250 7F04D720 8FA9008C */ lw $t1, 0x8c($sp) /* 082254 7F04D724 AFA20098 */ sw $v0, 0x98($sp) /* 082258 7F04D728 84620002 */ lh $v0, 2($v1) /* 08225C 7F04D72C 8FA9008C */ lw $t1, 0x8c($sp) .L7F04D730: /* 082260 7F04D730 0122082A */ slt $at, $t1, $v0 /* 082264 7F04D734 50200003 */ beql $at, $zero, .L7F04D744 /* 082268 7F04D738 84620004 */ lh $v0, 4($v1) /* 08226C 7F04D73C AFA2008C */ sw $v0, 0x8c($sp) /* 082270 7F04D740 84620004 */ lh $v0, 4($v1) .L7F04D744: /* 082274 7F04D744 8FAA009C */ lw $t2, 0x9c($sp) /* 082278 7F04D748 004A082A */ slt $at, $v0, $t2 /* 08227C 7F04D74C 50200004 */ beql $at, $zero, .L7F04D760 /* 082280 7F04D750 8FAC0090 */ lw $t4, 0x90($sp) /* 082284 7F04D754 AFA2009C */ sw $v0, 0x9c($sp) /* 082288 7F04D758 84620004 */ lh $v0, 4($v1) /* 08228C 7F04D75C 8FAC0090 */ lw $t4, 0x90($sp) .L7F04D760: /* 082290 7F04D760 0182082A */ slt $at, $t4, $v0 /* 082294 7F04D764 10200002 */ beqz $at, .L7F04D770 /* 082298 7F04D768 00000000 */ nop /* 08229C 7F04D76C AFA20090 */ sw $v0, 0x90($sp) .L7F04D770: /* 0822A0 7F04D770 5496FFD8 */ bnel $a0, $s6, .L7F04D6D4 /* 0822A4 7F04D774 8C980000 */ lw $t8, ($a0) /* 0822A8 7F04D778 02E02025 */ move $a0, $s7 /* 0822AC 7F04D77C 03C02825 */ move $a1, $fp /* 0822B0 7F04D780 27A60094 */ addiu $a2, $sp, 0x94 /* 0822B4 7F04D784 0FC2DB3B */ jal bgTestLineIntersectsBbox /* 0822B8 7F04D788 27A70088 */ addiu $a3, $sp, 0x88 /* 0822BC 7F04D78C 10400074 */ beqz $v0, .L7F04D960 /* 0822C0 7F04D790 3C0D8003 */ lui $t5, %hi(D_80032088) /* 0822C4 7F04D794 25AD2088 */ addiu $t5, %lo(D_80032088) # addiu $t5, $t5, 0x2088 /* 0822C8 7F04D798 8DA10000 */ lw $at, ($t5) /* 0822CC 7F04D79C 27A70070 */ addiu $a3, $sp, 0x70 /* 0822D0 7F04D7A0 27AB011C */ addiu $t3, $sp, 0x11c /* 0822D4 7F04D7A4 ACE10000 */ sw $at, ($a3) /* 0822D8 7F04D7A8 8DB80004 */ lw $t8, 4($t5) /* 0822DC 7F04D7AC ACF80004 */ sw $t8, 4($a3) /* 0822E0 7F04D7B0 8DA10008 */ lw $at, 8($t5) /* 0822E4 7F04D7B4 ACE10008 */ sw $at, 8($a3) /* 0822E8 7F04D7B8 8FA900AC */ lw $t1, 0xac($sp) /* 0822EC 7F04D7BC 8FAF00A8 */ lw $t7, 0xa8($sp) /* 0822F0 7F04D7C0 8FAE00A4 */ lw $t6, 0xa4($sp) /* 0822F4 7F04D7C4 8FAC0154 */ lw $t4, 0x154($sp) /* 0822F8 7F04D7C8 00095100 */ sll $t2, $t1, 4 /* 0822FC 7F04D7CC 000FC900 */ sll $t9, $t7, 4 /* 082300 7F04D7D0 000E4100 */ sll $t0, $t6, 4 /* 082304 7F04D7D4 02082021 */ addu $a0, $s0, $t0 /* 082308 7F04D7D8 02192821 */ addu $a1, $s0, $t9 /* 08230C 7F04D7DC 020A3021 */ addu $a2, $s0, $t2 /* 082310 7F04D7E0 AFAB001C */ sw $t3, 0x1c($sp) /* 082314 7F04D7E4 AFBE0018 */ sw $fp, 0x18($sp) /* 082318 7F04D7E8 AFB70010 */ sw $s7, 0x10($sp) /* 08231C 7F04D7EC 0FC24A24 */ jal intersectLineTriangle /* 082320 7F04D7F0 AFAC0014 */ sw $t4, 0x14($sp) /* 082324 7F04D7F4 5040005B */ beql $v0, $zero, .L7F04D964 /* 082328 7F04D7F8 26520001 */ addiu $s2, $s2, 1 /* 08232C 7F04D7FC C7A6011C */ lwc1 $f6, 0x11c($sp) /* 082330 7F04D800 C6EA0000 */ lwc1 $f10, ($s7) /* 082334 7F04D804 C7A40120 */ lwc1 $f4, 0x120($sp) /* 082338 7F04D808 4600320D */ trunc.w.s $f8, $f6 /* 08233C 7F04D80C 92390000 */ lbu $t9, ($s1) /* 082340 7F04D810 02201025 */ move $v0, $s1 /* 082344 7F04D814 4600540D */ trunc.w.s $f16, $f10 /* 082348 7F04D818 44184000 */ mfc1 $t8, $f8 /* 08234C 7F04D81C C6E80004 */ lwc1 $f8, 4($s7) /* 082350 7F04D820 4600218D */ trunc.w.s $f6, $f4 /* 082354 7F04D824 44088000 */ mfc1 $t0, $f16 /* 082358 7F04D828 0271082B */ sltu $at, $s3, $s1 /* 08235C 7F04D82C 4600428D */ trunc.w.s $f10, $f8 /* 082360 7F04D830 03087823 */ subu $t7, $t8, $t0 /* 082364 7F04D834 448F9000 */ mtc1 $t7, $f18 /* 082368 7F04D838 44093000 */ mfc1 $t1, $f6 /* 08236C 7F04D83C 440C5000 */ mfc1 $t4, $f10 /* 082370 7F04D840 468090A0 */ cvt.s.w $f2, $f18 /* 082374 7F04D844 C7B20124 */ lwc1 $f18, 0x124($sp) /* 082378 7F04D848 C6E60008 */ lwc1 $f6, 8($s7) /* 08237C 7F04D84C 012C5823 */ subu $t3, $t1, $t4 /* 082380 7F04D850 448B8000 */ mtc1 $t3, $f16 /* 082384 7F04D854 4600910D */ trunc.w.s $f4, $f18 /* 082388 7F04D858 4600320D */ trunc.w.s $f8, $f6 /* 08238C 7F04D85C 440E2000 */ mfc1 $t6, $f4 /* 082390 7F04D860 46808320 */ cvt.s.w $f12, $f16 /* 082394 7F04D864 44084000 */ mfc1 $t0, $f8 /* 082398 7F04D868 46021402 */ mul.s $f16, $f2, $f2 /* 08239C 7F04D86C 01C87823 */ subu $t7, $t6, $t0 /* 0823A0 7F04D870 448F5000 */ mtc1 $t7, $f10 /* 0823A4 7F04D874 460C6482 */ mul.s $f18, $f12, $f12 /* 0823A8 7F04D878 12B9000A */ beq $s5, $t9, .L7F04D8A4 /* 0823AC 7F04D87C 468053A0 */ cvt.s.w $f14, $f10 /* 0823B0 7F04D880 10200008 */ beqz $at, .L7F04D8A4 /* 0823B4 7F04D884 00000000 */ nop /* 0823B8 7F04D888 904AFFF8 */ lbu $t2, -8($v0) .L7F04D88C: /* 0823BC 7F04D88C 2442FFF8 */ addiu $v0, $v0, -8 /* 0823C0 7F04D890 0262082B */ sltu $at, $s3, $v0 /* 0823C4 7F04D894 12AA0003 */ beq $s5, $t2, .L7F04D8A4 /* 0823C8 7F04D898 00000000 */ nop /* 0823CC 7F04D89C 5420FFFB */ bnezl $at, .L7F04D88C /* 0823D0 7F04D8A0 904AFFF8 */ lbu $t2, -8($v0) .L7F04D8A4: /* 0823D4 7F04D8A4 460E7182 */ mul.s $f6, $f14, $f14 /* 0823D8 7F04D8A8 54530004 */ bnel $v0, $s3, .L7F04D8BC /* 0823DC 7F04D8AC 8C430004 */ lw $v1, 4($v0) /* 0823E0 7F04D8B0 10000006 */ b .L7F04D8CC /* 0823E4 7F04D8B4 2404FFFF */ li $a0, -1 /* 0823E8 7F04D8B8 8C430004 */ lw $v1, 4($v0) .L7F04D8BC: /* 0823EC 7F04D8BC 3C018000 */ lui $at, 0x8000 /* 0823F0 7F04D8C0 2463FFF8 */ addiu $v1, $v1, -8 /* 0823F4 7F04D8C4 00614825 */ or $t1, $v1, $at /* 0823F8 7F04D8C8 95240000 */ lhu $a0, ($t1) .L7F04D8CC: /* 0823FC 7F04D8CC 46128100 */ add.s $f4, $f16, $f18 /* 082400 7F04D8D0 46062000 */ add.s $f0, $f4, $f6 /* 082404 7F04D8D4 4614003C */ c.lt.s $f0, $f20 /* 082408 7F04D8D8 00000000 */ nop /* 08240C 7F04D8DC 45020021 */ bc1fl .L7F04D964 /* 082410 7F04D8E0 26520001 */ addiu $s2, $s2, 1 /* 082414 7F04D8E4 C7A8011C */ lwc1 $f8, 0x11c($sp) /* 082418 7F04D8E8 26490001 */ addiu $t1, $s2, 1 /* 08241C 7F04D8EC 46000506 */ mov.s $f20, $f0 /* 082420 7F04D8F0 E6880000 */ swc1 $f8, ($s4) /* 082424 7F04D8F4 C7AA0120 */ lwc1 $f10, 0x120($sp) /* 082428 7F04D8F8 E68A0004 */ swc1 $f10, 4($s4) /* 08242C 7F04D8FC C7B00124 */ lwc1 $f16, 0x124($sp) /* 082430 7F04D900 E6900008 */ swc1 $f16, 8($s4) /* 082434 7F04D904 C7B20128 */ lwc1 $f18, 0x128($sp) /* 082438 7F04D908 E692000C */ swc1 $f18, 0xc($s4) /* 08243C 7F04D90C C7A4012C */ lwc1 $f4, 0x12c($sp) /* 082440 7F04D910 E6840010 */ swc1 $f4, 0x10($s4) /* 082444 7F04D914 C7A60130 */ lwc1 $f6, 0x130($sp) /* 082448 7F04D918 E6860014 */ swc1 $f6, 0x14($s4) /* 08244C 7F04D91C 8FAC00A4 */ lw $t4, 0xa4($sp) /* 082450 7F04D920 000C5900 */ sll $t3, $t4, 4 /* 082454 7F04D924 01706821 */ addu $t5, $t3, $s0 /* 082458 7F04D928 AE8D0018 */ sw $t5, 0x18($s4) /* 08245C 7F04D92C 8FB800A8 */ lw $t8, 0xa8($sp) /* 082460 7F04D930 240C0001 */ li $t4, 1 /* 082464 7F04D934 00187100 */ sll $t6, $t8, 4 /* 082468 7F04D938 01D04021 */ addu $t0, $t6, $s0 /* 08246C 7F04D93C AE88001C */ sw $t0, 0x1c($s4) /* 082470 7F04D940 8FAF00AC */ lw $t7, 0xac($sp) /* 082474 7F04D944 A684002A */ sh $a0, 0x2a($s4) /* 082478 7F04D948 AE910024 */ sw $s1, 0x24($s4) /* 08247C 7F04D94C 000FC900 */ sll $t9, $t7, 4 /* 082480 7F04D950 03305021 */ addu $t2, $t9, $s0 /* 082484 7F04D954 AE8A0020 */ sw $t2, 0x20($s4) /* 082488 7F04D958 A6890028 */ sh $t1, 0x28($s4) /* 08248C 7F04D95C AFAC0110 */ sw $t4, 0x110($sp) .L7F04D960: /* 082490 7F04D960 26520001 */ addiu $s2, $s2, 1 .L7F04D964: /* 082494 7F04D964 24010004 */ li $at, 4 /* 082498 7F04D968 1641FF18 */ bne $s2, $at, .L7F04D5CC /* 08249C 7F04D96C 00000000 */ nop .L7F04D970: /* 0824A0 7F04D970 1000FE16 */ b .L7F04D1CC /* 0824A4 7F04D974 26310008 */ addiu $s1, $s1, 8 .L7F04D978: /* 0824A8 7F04D978 8FBF0054 */ lw $ra, 0x54($sp) /* 0824AC 7F04D97C 8FA20110 */ lw $v0, 0x110($sp) /* 0824B0 7F04D980 D7B40028 */ ldc1 $f20, 0x28($sp) /* 0824B4 7F04D984 8FB00030 */ lw $s0, 0x30($sp) /* 0824B8 7F04D988 8FB10034 */ lw $s1, 0x34($sp) /* 0824BC 7F04D98C 8FB20038 */ lw $s2, 0x38($sp) /* 0824C0 7F04D990 8FB3003C */ lw $s3, 0x3c($sp) /* 0824C4 7F04D994 8FB40040 */ lw $s4, 0x40($sp) /* 0824C8 7F04D998 8FB50044 */ lw $s5, 0x44($sp) /* 0824CC 7F04D99C 8FB60048 */ lw $s6, 0x48($sp) /* 0824D0 7F04D9A0 8FB7004C */ lw $s7, 0x4c($sp) /* 0824D4 7F04D9A4 8FBE0050 */ lw $fp, 0x50($sp) /* 0824D8 7F04D9A8 03E00008 */ jr $ra /* 0824DC 7F04D9AC 27BD0150 */ addiu $sp, $sp, 0x150 ) #endif bool sub_GAME_7F04D9B0(Model *model, ModelNode *nodearg, coord3d *arg2, coord3d *arg3, struct HitThing *hitthing, s32 *dstmtxindex, ModelNode **dstnode) { coord3d spec; coord3d spe0; coord3d spd4; Mtxf *spd0; bool done; ModelNode *node; Vertex *vertices; spd0 = NULL; done = FALSE; node = nodearg; vertices = NULL; while (node && !done) { u32 type = node->Opcode & 0xff; Gfx *s3 = NULL; void *s5 = NULL; switch (type) { case MODELNODE_OPCODE_DLCOLLISION: { ModelRoData_DisplayList_CollisionRecord *rodata = &node->Data->DisplayListCollisions; ModelRwData_DisplayList_CollisionRecord *rwdata = modelGetNodeRwData(model, node); if (rwdata->gdl != NULL) { if (rwdata->gdl == rodata->Primary) { s3 = (Gfx *)((uintptr_t)rodata->BaseAddr + ((u32)rodata->Primary & 0xffffff)); } else { s3 = rwdata->gdl; } if (rodata->Secondary != NULL) { s5 = (void *)((uintptr_t)rodata->BaseAddr + ((u32)rodata->Secondary & 0xffffff)); } vertices = rwdata->Vertices; } } break; case MODELNODE_OPCODE_DL: { ModelRoData_DisplayListRecord *rodata = &node->Data->DisplayList; if (rodata->Primary != NULL) { s3 = (Gfx *)((uintptr_t)rodata->BaseAddr + ((u32)rodata->Primary & 0xffffff)); if (rodata->Secondary != NULL) { s5 = (Gfx *)((uintptr_t)rodata->BaseAddr + ((u32)rodata->Secondary & 0xffffff)); } vertices = (void *)(uintptr_t)rodata->BaseAddr; } } break; case MODELNODE_OPCODE_LOD: modelApplyDistanceRelations(model, node); break; case MODELNODE_OPCODE_SWITCH: modelApplyToggleRelations(model, node); break; case MODELNODE_OPCODE_HEAD: modelApplyHeadRelations(model, node); break; } if (s3 != NULL) { s32 mtxindex = modelFindNodeMtxIndex(node, 0); Mtxf *mtx = NULL; Mtxf sp64; if (mtxindex >= 0) { mtx = (Mtxf *)&model->render_pos[mtxindex]; // TODO: adjust } if (mtx && mtx != spd0) { spd0 = mtx; sub_GAME_7F059FB8(mtx->m, sp64.m); spec.x = arg2->x; spec.y = arg2->y; spec.z = arg2->z; mtx4TransformVecInPlace(&sp64, &spec); spd4.x = arg3->x; spd4.y = arg3->y; spd4.z = arg3->z; mtx4RotateVecInPlace(&sp64, &spd4); spe0.x = spd4.x * 32767.0f + spec.x; spe0.y = spd4.y * 32767.0f + spec.y; spe0.z = spd4.z * 32767.0f + spec.z; } if (bgTestHitOnObj(&spec, &spe0, &spd4, s3, s5, vertices, hitthing)) { *dstmtxindex = mtxindex; *dstnode = node; done = TRUE; } } if (node->Child) { node = node->Child; } else { while (node) { if (node == nodearg) { node = NULL; break; } if (node->Next) { node = node->Next; break; } node = node->Parent; } } } return done; } void sub_GAME_7F04DCB4(ObjectRecord* obj) { PropRecord* prop; struct ModelRoData_BoundingBoxRecord *bbox; prop = obj->prop; bbox = chrobjGetBboxFromObjectRecord(obj); explosionClearBulletImpactRoomByFlag(prop, FALSE); explosionClearBulletImpactRoomByFlag(prop, TRUE); sub_GAME_7F0A1DA0(&obj->runtime_pos.f[0], &obj->mtx.m[0][0], &obj->mtx.m[1][0], &obj->mtx.m[2][0], bbox->Bounds.xmin, bbox->Bounds.xmax, bbox->Bounds.ymin, bbox->Bounds.ymax, bbox->Bounds.zmin, bbox->Bounds.zmax); obj->runtime_bitflags |= RUNTIMEBITFLAG_REMOVE; obj->state |= PROPSTATE_DESTROYED; obj->maxdamage = 0.0f; } #ifdef NONMATCHING void sub_GAME_7F04DD68(void) { } #else GLOBAL_ASM( .text glabel sub_GAME_7F04DD68 /* 082898 7F04DD68 27BDFF80 */ addiu $sp, $sp, -0x80 /* 08289C 7F04DD6C AFBF002C */ sw $ra, 0x2c($sp) /* 0828A0 7F04DD70 8C8E0010 */ lw $t6, 0x10($a0) /* 0828A4 7F04DD74 27A50030 */ addiu $a1, $sp, 0x30 /* 0828A8 7F04DD78 AFAE007C */ sw $t6, 0x7c($sp) /* 0828AC 7F04DD7C 8C830014 */ lw $v1, 0x14($a0) /* 0828B0 7F04DD80 8C6F0008 */ lw $t7, 8($v1) /* 0828B4 7F04DD84 8DF80008 */ lw $t8, 8($t7) /* 0828B8 7F04DD88 8F190008 */ lw $t9, 8($t8) /* 0828BC 7F04DD8C 8F220004 */ lw $v0, 4($t9) /* 0828C0 7F04DD90 AFA30078 */ sw $v1, 0x78($sp) /* 0828C4 7F04DD94 0FC149BB */ jal door7F0526EC /* 0828C8 7F04DD98 AFA20074 */ sw $v0, 0x74($sp) /* 0828CC 7F04DD9C 8FA20074 */ lw $v0, 0x74($sp) /* 0828D0 7F04DDA0 27A40060 */ addiu $a0, $sp, 0x60 /* 0828D4 7F04DDA4 27A50030 */ addiu $a1, $sp, 0x30 /* 0828D8 7F04DDA8 C4440004 */ lwc1 $f4, 4($v0) /* 0828DC 7F04DDAC 27A60040 */ addiu $a2, $sp, 0x40 /* 0828E0 7F04DDB0 27A70050 */ addiu $a3, $sp, 0x50 /* 0828E4 7F04DDB4 E7A40010 */ swc1 $f4, 0x10($sp) /* 0828E8 7F04DDB8 C4460008 */ lwc1 $f6, 8($v0) /* 0828EC 7F04DDBC E7A60014 */ swc1 $f6, 0x14($sp) /* 0828F0 7F04DDC0 C448000C */ lwc1 $f8, 0xc($v0) /* 0828F4 7F04DDC4 E7A80018 */ swc1 $f8, 0x18($sp) /* 0828F8 7F04DDC8 C44A0010 */ lwc1 $f10, 0x10($v0) /* 0828FC 7F04DDCC E7AA001C */ swc1 $f10, 0x1c($sp) /* 082900 7F04DDD0 C4500014 */ lwc1 $f16, 0x14($v0) /* 082904 7F04DDD4 E7B00020 */ swc1 $f16, 0x20($sp) /* 082908 7F04DDD8 C4520018 */ lwc1 $f18, 0x18($v0) /* 08290C 7F04DDDC 0FC28768 */ jal sub_GAME_7F0A1DA0 /* 082910 7F04DDE0 E7B20024 */ swc1 $f18, 0x24($sp) /* 082914 7F04DDE4 8FA4007C */ lw $a0, 0x7c($sp) /* 082918 7F04DDE8 0FC28333 */ jal explosionClearBulletImpactRoomByFlag /* 08291C 7F04DDEC 24050001 */ li $a1, 1 /* 082920 7F04DDF0 8FA40078 */ lw $a0, 0x78($sp) /* 082924 7F04DDF4 8C880008 */ lw $t0, 8($a0) /* 082928 7F04DDF8 8D090008 */ lw $t1, 8($t0) /* 08292C 7F04DDFC 0FC1B1E7 */ jal modelGetNodeRwData /* 082930 7F04DE00 8D250004 */ lw $a1, 4($t1) /* 082934 7F04DE04 AC400000 */ sw $zero, ($v0) /* 082938 7F04DE08 8FBF002C */ lw $ra, 0x2c($sp) /* 08293C 7F04DE0C 27BD0080 */ addiu $sp, $sp, 0x80 /* 082940 7F04DE10 03E00008 */ jr $ra /* 082944 7F04DE14 00000000 */ nop ) #endif #ifdef NONMATCHING #else GLOBAL_ASM( .text glabel sub_GAME_7F04DE18 /* 082948 7F04DE18 27BDFF68 */ addiu $sp, $sp, -0x98 /* 08294C 7F04DE1C AFBF0034 */ sw $ra, 0x34($sp) /* 082950 7F04DE20 AFB00030 */ sw $s0, 0x30($sp) /* 082954 7F04DE24 8C8E0010 */ lw $t6, 0x10($a0) /* 082958 7F04DE28 AFAE0094 */ sw $t6, 0x94($sp) /* 08295C 7F04DE2C 91D80001 */ lbu $t8, 1($t6) /* 082960 7F04DE30 8C900014 */ lw $s0, 0x14($a0) /* 082964 7F04DE34 33190002 */ andi $t9, $t8, 2 /* 082968 7F04DE38 53200023 */ beql $t9, $zero, .L7F04DEC8 /* 08296C 7F04DE3C 8FA40094 */ lw $a0, 0x94($sp) /* 082970 7F04DE40 8E080008 */ lw $t0, 8($s0) /* 082974 7F04DE44 02002025 */ move $a0, $s0 /* 082978 7F04DE48 00003025 */ move $a2, $zero /* 08297C 7F04DE4C 8D020008 */ lw $v0, 8($t0) /* 082980 7F04DE50 8C490008 */ lw $t1, 8($v0) /* 082984 7F04DE54 8C450004 */ lw $a1, 4($v0) /* 082988 7F04DE58 8D230004 */ lw $v1, 4($t1) /* 08298C 7F04DE5C 0FC1B198 */ jal modelFindNodeMtx /* 082990 7F04DE60 AFA30088 */ sw $v1, 0x88($sp) /* 082994 7F04DE64 0FC1E111 */ jal currentPlayerGetMatrix10D4 /* 082998 7F04DE68 AFA20084 */ sw $v0, 0x84($sp) /* 08299C 7F04DE6C 00402025 */ move $a0, $v0 /* 0829A0 7F04DE70 8FA50084 */ lw $a1, 0x84($sp) /* 0829A4 7F04DE74 0FC16063 */ jal matrix_4x4_multiply_homogeneous /* 0829A8 7F04DE78 27A60044 */ addiu $a2, $sp, 0x44 /* 0829AC 7F04DE7C 8FA30088 */ lw $v1, 0x88($sp) /* 0829B0 7F04DE80 27A40074 */ addiu $a0, $sp, 0x74 /* 0829B4 7F04DE84 27A50044 */ addiu $a1, $sp, 0x44 /* 0829B8 7F04DE88 C4640004 */ lwc1 $f4, 4($v1) /* 0829BC 7F04DE8C 27A60054 */ addiu $a2, $sp, 0x54 /* 0829C0 7F04DE90 27A70064 */ addiu $a3, $sp, 0x64 /* 0829C4 7F04DE94 E7A40010 */ swc1 $f4, 0x10($sp) /* 0829C8 7F04DE98 C4660008 */ lwc1 $f6, 8($v1) /* 0829CC 7F04DE9C E7A60014 */ swc1 $f6, 0x14($sp) /* 0829D0 7F04DEA0 C468000C */ lwc1 $f8, 0xc($v1) /* 0829D4 7F04DEA4 E7A80018 */ swc1 $f8, 0x18($sp) /* 0829D8 7F04DEA8 C46A0010 */ lwc1 $f10, 0x10($v1) /* 0829DC 7F04DEAC E7AA001C */ swc1 $f10, 0x1c($sp) /* 0829E0 7F04DEB0 C4700014 */ lwc1 $f16, 0x14($v1) /* 0829E4 7F04DEB4 E7B00020 */ swc1 $f16, 0x20($sp) /* 0829E8 7F04DEB8 C4720018 */ lwc1 $f18, 0x18($v1) /* 0829EC 7F04DEBC 0FC28768 */ jal sub_GAME_7F0A1DA0 /* 0829F0 7F04DEC0 E7B20024 */ swc1 $f18, 0x24($sp) /* 0829F4 7F04DEC4 8FA40094 */ lw $a0, 0x94($sp) .L7F04DEC8: /* 0829F8 7F04DEC8 0FC28333 */ jal explosionClearBulletImpactRoomByFlag /* 0829FC 7F04DECC 24050001 */ li $a1, 1 /* 082A00 7F04DED0 8E0A0008 */ lw $t2, 8($s0) /* 082A04 7F04DED4 02002025 */ move $a0, $s0 /* 082A08 7F04DED8 8D4B0008 */ lw $t3, 8($t2) /* 082A0C 7F04DEDC 0FC1B1E7 */ jal modelGetNodeRwData /* 082A10 7F04DEE0 8D65000C */ lw $a1, 0xc($t3) /* 082A14 7F04DEE4 AC400000 */ sw $zero, ($v0) /* 082A18 7F04DEE8 8FBF0034 */ lw $ra, 0x34($sp) /* 082A1C 7F04DEEC 8FB00030 */ lw $s0, 0x30($sp) /* 082A20 7F04DEF0 27BD0098 */ addiu $sp, $sp, 0x98 /* 082A24 7F04DEF4 03E00008 */ jr $ra /* 082A28 7F04DEF8 00000000 */ nop ) #endif /** * Address 0x7F04DEFC. */ void maybe_detonate_object_and_its_children(PropRecord *prop, f32 damage, struct coord3d *pos, s32 arg3, s32 owner) { PropRecord *node; ObjectRecord *prop_obj; prop_obj = prop->obj; prop_obj->runtime_bitflags &= ~(RUNTIMEBITFLAG_OWNER); prop_obj->runtime_bitflags |= (owner << RUNTIMEBITSHIFT_OWNER); if ((s32)(prop_obj->runtime_bitflags << 0xc) >= 0) { node = prop->child; while (node != NULL) { PropRecord *iter_next = node->prev; // recursive call: maybe_detonate_object_and_its_children(node, damage, pos, arg3, owner); node = iter_next; } maybe_detonate_object(prop->obj, damage, pos, arg3, owner); } } bool check_if_destroyable_object_type(PropDefHeaderRecord *obj)//#MATCH { switch (obj->type) { case PROPDEF_DOOR: case PROPDEF_PROP: case PROPDEF_ALARM: case PROPDEF_CCTV: case PROPDEF_MONITOR: case PROPDEF_MULTI_MONITOR: case PROPDEF_RACK: case PROPDEF_AUTOGUN: case PROPDEF_GAS_RELEASING: case PROPDEF_VEHICHLE: case PROPDEF_AIRCRAFT: case PROPDEF_UNK41: case PROPDEF_GLASS: case PROPDEF_SAFE: case PROPDEF_TANK: case PROPDEF_TINTED_GLASS: return TRUE; default: return FALSE; } } bool objIsCollectable(PropDefHeaderRecord *obj) { switch (obj->type) { case PROPDEF_KEY: case PROPDEF_MAGAZINE: case PROPDEF_COLLECTABLE: case PROPDEF_HAT: case PROPDEF_AMMO: case PROPDEF_ARMOUR: return TRUE; default: return FALSE; } } bool objIsMortal(ObjectRecord* obj) { if (obj->type == PROPDEF_DOOR) { return FALSE; } if ((objIsCollectable((PropDefHeaderRecord* ) obj) != 0) && (obj->type != PROPDEF_ARMOUR)) { if (!(obj->flags & PROPFLAG_FORCEMORTAL)) { return FALSE; } } else if (obj->flags & PROPFLAG_INVINCIBLE) { return FALSE; } return TRUE; } /** * Address 0x7F04E0CC. */ void chrobjMaybeDetonateObjectIfFlags(ObjectRecord *obj, f32 damage, coord3d *pos, ITEM_IDS item, s32 owner) { if ((obj->flags2 & 0x4000) == 0) { maybe_detonate_object(obj, damage, pos, item, owner); } } #ifdef NONMATCHING //https://decomp.me/scratch/UWQzo 44% ObjectRecord blank_07_object = { 0x0100, //extrascale 0x0, //state 0x07, //type 0, //obj 0xFFFF, //pad 0x00000001, //flags 0, //flags2 NULL, //prop NULL, //model { 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f }, //mtx {0.0, 0.0, 0.0},//runtime_pos {0x00000000}, //runtime_bitflags NULL, //ptr_allocated_collisiondata_block NULL, //projectile/embedment 0.0f, //maxdamage 1000.0f, //damage {0xFF, 0xFF, 0xFF, 0x00}, //shadecol {0xFF, 0xFF, 0xFF, 0x00}, //nextcol }; void maybe_detonate_object(ObjectRecord* self, f32 damage, coord3d* pos, bool flag, bool flag2) { u32 spC8; s32 randAmmoType;//c4 int randAmmoType_2; s32 sp3C; PropRecord* sp28; u16 ammoAmmount;//24 f32 temp_f0; f32 temp_f0_2; f32 temp_f12; s32 temp_a1; s32 temp_t7; s32 type; s32* temp_t3; s32* temp_t5; s32* temp_t9; s8 weaponnum; PropRecord* temp_a0_2; u16 temp_a3; u8 temp_v0; u8 temp_v0_4; u8 temp_v0_6; void* temp_a0; void* temp_a2; void* temp_t6; void* temp_v0_5; f32 phi_f12; PropRecord* phi_f12_2; s32* phi_t9; s32* phi_t3; s32* phi_t5; void* phi_t6; f32 phi_f0; struct { s32 rhgun:1; s32 noammo:1; s32 inmotion:1; s32 lhgun:1; s32 nocontrol:1; s32 unk80000:1; s32 jbush:1; s32 petegrenade:1; s32 embedded:1; s32 normal:1; s32 unk8000:1; s32 immobile:1; s32 dat:1; s32 uncollectable:1; s32 unk800:1; s32 allowpickup:1; s32 invincible:1; s32 embeddedin:1; s32 useguard:1; s32 forcecollection:1; s32 posabs:1; s32 freestand:1; s32 roadblock:1; s32 glassimage:1; s32 forcecollisions:1; s32 onground:1; s32 forcedonground:1; s32 rotate90:1; s32 upside_down:1; s32 rightside_up:1; s32 scalex:1; s32 scaley:1; } *flags = &self->flags; #define OBJECT_UNTOUCHED 1 #define OBJECT_DESTROYED 0 temp_t7 = self->runtime_bitflags & ~(RUNTIMEBITFLAG_OWNER); self->runtime_bitflags = temp_t7; self->runtime_bitflags = temp_t7 | (flag2 << RUNTIMEBITSHIFT_OWNER); if ((self->Head.type != PROPDEF_GAS_RELEASING) || (objGetDestroyedLevel(self) != OBJECT_UNTOUCHED)) { if (!flag) { if (objIsCollectable(self)) { if (self->flags << 8 >= 0) { return; } } else if (flags->petegrenade) //looks like bitfield (sll 7 + bgezl) { return; } } else { if (flags->unk800) { return; } if (self->Head.type == PROPDEF_COLLECTABLE || PROPDEF_MAGAZINE) //switch(self->Head.type) { if (self->Head.type == PROPDEF_COLLECTABLE ) { weaponnum = ((WeaponObjRecord*)self)->weaponnum; if ((weaponnum == ITEM_GRENADE) || (weaponnum == ITEM_TIMEDMINE) || (weaponnum == ITEM_REMOTEMINE) || (weaponnum == ITEM_PROXIMITYMINE) || (weaponnum == ITEM_56) || (weaponnum == ITEM_57) || (weaponnum == ITEM_BOMBCASE) || (weaponnum == ITEM_PLASTIQUE)) { ((WeaponObjRecord*)self)->timer = 0; } return; } else if (self->Head.type == PROPDEF_MAGAZINE) { type = ((AmmoCrateRecord*)self)->type; if ((type == AMMO_GRENADE) || (type == AMMO_ROCKETS) || (type == AMMO_REMOTEMINE) || (type == AMMO_PROXMINE) || (type == AMMO_TIMEDMINE) || (type == AMMO_GRENADEROUND) || (type == AMMO_EXPLOSIVEPEN) || (type == AMMO_BOMBCASE) || (type == AMMO_DYNAMITE)) { self->flags |= 0x10000000; } return; } } if (!objIsMortal(damage, self, 8) ) { return; } } // if flag if (objGetDestroyedLevel(self) == OBJECT_DESTROYED) { self->maxdamage += damage * 250.0f; } else { temp_f0 = 4 - (objGetShotsTaken(damage, self) % 4); phi_f0 = temp_f0; if (temp_f0 < damage) { damage = phi_f0; } phi_f0 = 1.0f; if (damage < 1.0f) { damage = phi_f0; } self->maxdamage += damage; //phi_f12_2 = (bitwise struct PropRecord* ) damage; } if (( self->Head.type == PROPDEF_GLASS) || ( self->Head.type == PROPDEF_TINTED_GLASS)) { if (self->damage <= self->maxdamage) { sub_GAME_7F04DCB4(phi_f12_2, self); //smash glass? } } else { propobjSetDropped(self->prop, 1); object_explosion_related(self, pos, flag2); } if ((self->Head.type == PROPDEF_AMMO) && (objGetDestroyedLevel(self) == OBJECT_UNTOUCHED)) { randAmmoType = randomGetNext() % 0xD; do { MultiAmmoCrateRecord *ammo = self; ammoAmmount = ammo->quantities[randAmmoType]; if (ammoAmmount > 0 && (ammoAmmount != -1) ) { temp_v0_5 = ammocrateAllocate(randAmmoType, randAmmoType); if (temp_v0_5) { //spawn magazine AmmoCrateRecord NewMag = blank_07_object; //New_AmmoCrateRecord() AmmoCrateRecord temp_a2 = NewMag; //temp_v0_5->obj = ammo->unk80; //temp_v0_5->unk80 = randAmmoType + 1; if (randAmmoType + 1 == 2) { //temp_v0_5->unk80 = 1; } if (objInitWithModelDef(&temp_a2, *(PitemZ_entries + (temp_a3 * 0xC)), &temp_a2, temp_a3) != 0) { //temp_a0 = temp_a2->unk14; modelSetScale(temp_a0, 1);//tempa2 chrpropReparent(temp_a2.base.prop, self->prop); } break; } } else { randAmmoType_2 = (randAmmoType + 1) % 0xD; randAmmoType = randAmmoType_2; randAmmoType = randAmmoType; } }while (randAmmoType_2 != randAmmoType); } switch (self->Head.type) { case 13: { self->flags |= 0x40000000; if (objGetDestroyedLevel(self) == OBJECT_UNTOUCHED) { self->flags |= 0x10000000; } } case 6: { if (objGetDestroyedLevel(self) == OBJECT_UNTOUCHED) { self->flags |= 0x10000000; } } case 10: { if (objGetDestroyedLevel(self) == OBJECT_UNTOUCHED) { //save_ptr_monitor_ani_code_to_obj_ani_slot(self + 0x80, &D_80031EE8); } } case 11: { if (objGetDestroyedLevel(self) == OBJECT_UNTOUCHED) { //save_ptr_monitor_ani_code_to_obj_ani_slot(self + 0x80, &D_80031EE8); // save_ptr_monitor_ani_code_to_obj_ani_slot(self + 0xF4, &D_80031EE8); // save_ptr_monitor_ani_code_to_obj_ani_slot(self + 0x168, &D_80031EE8); // save_ptr_monitor_ani_code_to_obj_ani_slot(self + 0x1DC, &D_80031EE8); } } case 36: { if (objGetDestroyedLevel(self) == OBJECT_UNTOUCHED) { //init_trigger_toxic_gas_effect(&self->Pos); } } case 21: { if (objGetDestroyedLevel(self) == OBJECT_DESTROYED) { temp_f0_2 = self->damage; //self->unk84 = ((bitwise f32) self->unk80 * (temp_f0_2 - self->maxdamage)) / temp_f0_2; } else { //self->unk84 = 0.0f; } } } if (objGetDestroyedLevel(self) == OBJECT_UNTOUCHED) { PropRecord *temp_a0_2 = self->prop->child; if (temp_a0_2 != 0) { do { temp_a0_2 = temp_a0_2->prev; propobjSetDropped(temp_a0_2, 1); } while (temp_a0_2 != 0); } } } // if PROPDEF_GAS_RELEASING or object not harmed } #else ObjectRecord blank_07_object = { 0x0100, //extrascale 0x0, //state 0x07, //type 0, //obj 0xFFFF, //pad 0x00000001, //flags 0, //flags2 NULL, //prop NULL, //model { 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f }, //mtx {0.0, 0.0, 0.0},//runtime_pos {0x00000000}, //runtime_bitflags NULL, //ptr_allocated_collisiondata_block NULL, //projectile/embedment 0.0f, //maxdamage 1000.0f, //damage {0xFF, 0xFF, 0xFF, 0x00}, //shadecol {0xFF, 0xFF, 0xFF, 0x00}, //nextcol }; GLOBAL_ASM( .text glabel maybe_detonate_object /* 082C38 7F04E108 27BDFF20 */ addiu $sp, $sp, -0xe0 /* 082C3C 7F04E10C AFBF001C */ sw $ra, 0x1c($sp) /* 082C40 7F04E110 AFB00018 */ sw $s0, 0x18($sp) /* 082C44 7F04E114 AFA600E8 */ sw $a2, 0xe8($sp) /* 082C48 7F04E118 AFA700EC */ sw $a3, 0xec($sp) /* 082C4C 7F04E11C 8C8E0064 */ lw $t6, 0x64($a0) /* 082C50 7F04E120 3C01FFF9 */ lui $at, (0xFFF9FFFF >> 16) # lui $at, 0xfff9 /* 082C54 7F04E124 3421FFFF */ ori $at, (0xFFF9FFFF & 0xFFFF) # ori $at, $at, 0xffff /* 082C58 7F04E128 01C17824 */ and $t7, $t6, $at /* 082C5C 7F04E12C AC8F0064 */ sw $t7, 0x64($a0) /* 082C60 7F04E130 8FB900F0 */ lw $t9, 0xf0($sp) /* 082C64 7F04E134 908B0003 */ lbu $t3, 3($a0) /* 082C68 7F04E138 44856000 */ mtc1 $a1, $f12 /* 082C6C 7F04E13C 00194C40 */ sll $t1, $t9, 0x11 /* 082C70 7F04E140 01E95025 */ or $t2, $t7, $t1 /* 082C74 7F04E144 24010024 */ li $at, 36 /* 082C78 7F04E148 00808025 */ move $s0, $a0 /* 082C7C 7F04E14C 15610006 */ bne $t3, $at, .L7F04E168 /* 082C80 7F04E150 AC8A0064 */ sw $t2, 0x64($a0) /* 082C84 7F04E154 0FC0FFF0 */ jal objGetDestroyedLevel /* 082C88 7F04E158 E7AC00E4 */ swc1 $f12, 0xe4($sp) /* 082C8C 7F04E15C 24010001 */ li $at, 1 /* 082C90 7F04E160 1041016A */ beq $v0, $at, .L7F04E70C /* 082C94 7F04E164 C7AC00E4 */ lwc1 $f12, 0xe4($sp) .L7F04E168: /* 082C98 7F04E168 8FAC00EC */ lw $t4, 0xec($sp) /* 082C9C 7F04E16C 02002025 */ move $a0, $s0 /* 082CA0 7F04E170 55800012 */ bnezl $t4, .L7F04E1BC /* 082CA4 7F04E174 8E030008 */ lw $v1, 8($s0) /* 082CA8 7F04E178 0FC13803 */ jal objIsCollectable /* 082CAC 7F04E17C E7AC00E4 */ swc1 $f12, 0xe4($sp) /* 082CB0 7F04E180 10400007 */ beqz $v0, .L7F04E1A0 /* 082CB4 7F04E184 C7AC00E4 */ lwc1 $f12, 0xe4($sp) /* 082CB8 7F04E188 8E0D0008 */ lw $t5, 8($s0) /* 082CBC 7F04E18C 000D7200 */ sll $t6, $t5, 8 /* 082CC0 7F04E190 05C20045 */ bltzl $t6, .L7F04E2A8 /* 082CC4 7F04E194 02002025 */ move $a0, $s0 /* 082CC8 7F04E198 1000015D */ b .L7F04E710 /* 082CCC 7F04E19C 8FBF001C */ lw $ra, 0x1c($sp) .L7F04E1A0: /* 082CD0 7F04E1A0 8E0F0008 */ lw $t7, 8($s0) /* 082CD4 7F04E1A4 000FC9C0 */ sll $t9, $t7, 7 /* 082CD8 7F04E1A8 0723003F */ bgezl $t9, .L7F04E2A8 /* 082CDC 7F04E1AC 02002025 */ move $a0, $s0 /* 082CE0 7F04E1B0 10000157 */ b .L7F04E710 /* 082CE4 7F04E1B4 8FBF001C */ lw $ra, 0x1c($sp) /* 082CE8 7F04E1B8 8E030008 */ lw $v1, 8($s0) .L7F04E1BC: /* 082CEC 7F04E1BC 0003C380 */ sll $t8, $v1, 0xe /* 082CF0 7F04E1C0 07020153 */ bltzl $t8, .L7F04E710 /* 082CF4 7F04E1C4 8FBF001C */ lw $ra, 0x1c($sp) /* 082CF8 7F04E1C8 92020003 */ lbu $v0, 3($s0) /* 082CFC 7F04E1CC 24050008 */ li $a1, 8 /* 082D00 7F04E1D0 24040007 */ li $a0, 7 /* 082D04 7F04E1D4 14A20015 */ bne $a1, $v0, .L7F04E22C /* 082D08 7F04E1D8 00000000 */ nop /* 082D0C 7F04E1DC 82020080 */ lb $v0, 0x80($s0) /* 082D10 7F04E1E0 2401001A */ li $at, 26 /* 082D14 7F04E1E4 1041000F */ beq $v0, $at, .L7F04E224 /* 082D18 7F04E1E8 2401001B */ li $at, 27 /* 082D1C 7F04E1EC 1041000D */ beq $v0, $at, .L7F04E224 /* 082D20 7F04E1F0 2401001D */ li $at, 29 /* 082D24 7F04E1F4 1041000B */ beq $v0, $at, .L7F04E224 /* 082D28 7F04E1F8 2401001C */ li $at, 28 /* 082D2C 7F04E1FC 10410009 */ beq $v0, $at, .L7F04E224 /* 082D30 7F04E200 24010056 */ li $at, 86 /* 082D34 7F04E204 10410007 */ beq $v0, $at, .L7F04E224 /* 082D38 7F04E208 24010057 */ li $at, 87 /* 082D3C 7F04E20C 10410005 */ beq $v0, $at, .L7F04E224 /* 082D40 7F04E210 24010021 */ li $at, 33 /* 082D44 7F04E214 10410003 */ beq $v0, $at, .L7F04E224 /* 082D48 7F04E218 24010022 */ li $at, 34 /* 082D4C 7F04E21C 5441013C */ bnel $v0, $at, .L7F04E710 /* 082D50 7F04E220 8FBF001C */ lw $ra, 0x1c($sp) .L7F04E224: /* 082D54 7F04E224 10000139 */ b .L7F04E70C /* 082D58 7F04E228 A6000082 */ sh $zero, 0x82($s0) .L7F04E22C: /* 082D5C 7F04E22C 54820019 */ bnel $a0, $v0, .L7F04E294 /* 082D60 7F04E230 02002025 */ move $a0, $s0 /* 082D64 7F04E234 8E020080 */ lw $v0, 0x80($s0) /* 082D68 7F04E238 24010005 */ li $at, 5 /* 082D6C 7F04E23C 10410010 */ beq $v0, $at, .L7F04E280 /* 082D70 7F04E240 24010006 */ li $at, 6 /* 082D74 7F04E244 5041000F */ beql $v0, $at, .L7F04E284 /* 082D78 7F04E248 3C011000 */ lui $at, 0x1000 /* 082D7C 7F04E24C 5082000D */ beql $a0, $v0, .L7F04E284 /* 082D80 7F04E250 3C011000 */ lui $at, 0x1000 /* 082D84 7F04E254 10A2000A */ beq $a1, $v0, .L7F04E280 /* 082D88 7F04E258 24010009 */ li $at, 9 /* 082D8C 7F04E25C 10410008 */ beq $v0, $at, .L7F04E280 /* 082D90 7F04E260 2401000B */ li $at, 11 /* 082D94 7F04E264 10410006 */ beq $v0, $at, .L7F04E280 /* 082D98 7F04E268 2401000F */ li $at, 15 /* 082D9C 7F04E26C 10410004 */ beq $v0, $at, .L7F04E280 /* 082DA0 7F04E270 24010010 */ li $at, 16 /* 082DA4 7F04E274 10410002 */ beq $v0, $at, .L7F04E280 /* 082DA8 7F04E278 24010013 */ li $at, 19 /* 082DAC 7F04E27C 14410123 */ bne $v0, $at, .L7F04E70C .L7F04E280: /* 082DB0 7F04E280 3C011000 */ li $at, 0x10000000 # 0.000000 .L7F04E284: /* 082DB4 7F04E284 00614825 */ or $t1, $v1, $at /* 082DB8 7F04E288 10000120 */ b .L7F04E70C /* 082DBC 7F04E28C AE090008 */ sw $t1, 8($s0) /* 082DC0 7F04E290 02002025 */ move $a0, $s0 .L7F04E294: /* 082DC4 7F04E294 0FC13812 */ jal objIsMortal /* 082DC8 7F04E298 E7AC00E4 */ swc1 $f12, 0xe4($sp) /* 082DCC 7F04E29C 1040011B */ beqz $v0, .L7F04E70C /* 082DD0 7F04E2A0 C7AC00E4 */ lwc1 $f12, 0xe4($sp) /* 082DD4 7F04E2A4 02002025 */ move $a0, $s0 .L7F04E2A8: /* 082DD8 7F04E2A8 0FC0FFF0 */ jal objGetDestroyedLevel /* 082DDC 7F04E2AC E7AC00E4 */ swc1 $f12, 0xe4($sp) /* 082DE0 7F04E2B0 14400008 */ bnez $v0, .L7F04E2D4 /* 082DE4 7F04E2B4 C7AC00E4 */ lwc1 $f12, 0xe4($sp) /* 082DE8 7F04E2B8 3C01437A */ li $at, 0x437A0000 # 250.000000 /* 082DEC 7F04E2BC 44813000 */ mtc1 $at, $f6 /* 082DF0 7F04E2C0 C6040070 */ lwc1 $f4, 0x70($s0) /* 082DF4 7F04E2C4 46066202 */ mul.s $f8, $f12, $f6 /* 082DF8 7F04E2C8 46082280 */ add.s $f10, $f4, $f8 /* 082DFC 7F04E2CC 1000001F */ b .L7F04E34C /* 082E00 7F04E2D0 E60A0070 */ swc1 $f10, 0x70($s0) .L7F04E2D4: /* 082E04 7F04E2D4 02002025 */ move $a0, $s0 /* 082E08 7F04E2D8 0FC0FFD8 */ jal objGetShotsTaken /* 082E0C 7F04E2DC E7AC00E4 */ swc1 $f12, 0xe4($sp) /* 082E10 7F04E2E0 240B0004 */ li $t3, 4 /* 082E14 7F04E2E4 C7AC00E4 */ lwc1 $f12, 0xe4($sp) /* 082E18 7F04E2E8 04410004 */ bgez $v0, .L7F04E2FC /* 082E1C 7F04E2EC 304A0003 */ andi $t2, $v0, 3 /* 082E20 7F04E2F0 11400002 */ beqz $t2, .L7F04E2FC /* 082E24 7F04E2F4 00000000 */ nop /* 082E28 7F04E2F8 254AFFFC */ addiu $t2, $t2, -4 .L7F04E2FC: /* 082E2C 7F04E2FC 016A6023 */ subu $t4, $t3, $t2 /* 082E30 7F04E300 448C8000 */ mtc1 $t4, $f16 /* 082E34 7F04E304 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 082E38 7F04E308 46808020 */ cvt.s.w $f0, $f16 /* 082E3C 7F04E30C 460C003C */ c.lt.s $f0, $f12 /* 082E40 7F04E310 00000000 */ nop /* 082E44 7F04E314 45020004 */ bc1fl .L7F04E328 /* 082E48 7F04E318 44810000 */ mtc1 $at, $f0 /* 082E4C 7F04E31C 10000008 */ b .L7F04E340 /* 082E50 7F04E320 46000306 */ mov.s $f12, $f0 /* 082E54 7F04E324 44810000 */ mtc1 $at, $f0 .L7F04E328: /* 082E58 7F04E328 00000000 */ nop /* 082E5C 7F04E32C 4600603C */ c.lt.s $f12, $f0 /* 082E60 7F04E330 00000000 */ nop /* 082E64 7F04E334 45020003 */ bc1fl .L7F04E344 /* 082E68 7F04E338 C6120070 */ lwc1 $f18, 0x70($s0) /* 082E6C 7F04E33C 46000306 */ mov.s $f12, $f0 .L7F04E340: /* 082E70 7F04E340 C6120070 */ lwc1 $f18, 0x70($s0) .L7F04E344: /* 082E74 7F04E344 460C9180 */ add.s $f6, $f18, $f12 /* 082E78 7F04E348 E6060070 */ swc1 $f6, 0x70($s0) .L7F04E34C: /* 082E7C 7F04E34C 92020003 */ lbu $v0, 3($s0) /* 082E80 7F04E350 2401002A */ li $at, 42 /* 082E84 7F04E354 10410003 */ beq $v0, $at, .L7F04E364 /* 082E88 7F04E358 2401002F */ li $at, 47 /* 082E8C 7F04E35C 1441000B */ bne $v0, $at, .L7F04E38C /* 082E90 7F04E360 24050001 */ li $a1, 1 .L7F04E364: /* 082E94 7F04E364 C6040070 */ lwc1 $f4, 0x70($s0) /* 082E98 7F04E368 C6080074 */ lwc1 $f8, 0x74($s0) /* 082E9C 7F04E36C 4604403E */ c.le.s $f8, $f4 /* 082EA0 7F04E370 00000000 */ nop /* 082EA4 7F04E374 4502000D */ bc1fl .L7F04E3AC /* 082EA8 7F04E378 24010014 */ li $at, 20 /* 082EAC 7F04E37C 0FC1372D */ jal sub_GAME_7F04DCB4 /* 082EB0 7F04E380 02002025 */ move $a0, $s0 /* 082EB4 7F04E384 10000008 */ b .L7F04E3A8 /* 082EB8 7F04E388 92020003 */ lbu $v0, 3($s0) .L7F04E38C: /* 082EBC 7F04E38C 0FC12FF4 */ jal propobjSetDropped /* 082EC0 7F04E390 8E040010 */ lw $a0, 0x10($s0) /* 082EC4 7F04E394 02002025 */ move $a0, $s0 /* 082EC8 7F04E398 8FA500E8 */ lw $a1, 0xe8($sp) /* 082ECC 7F04E39C 0FC13383 */ jal object_explosion_related /* 082ED0 7F04E3A0 8FA600F0 */ lw $a2, 0xf0($sp) /* 082ED4 7F04E3A4 92020003 */ lbu $v0, 3($s0) .L7F04E3A8: /* 082ED8 7F04E3A8 24010014 */ li $at, 20 .L7F04E3AC: /* 082EDC 7F04E3AC 54410065 */ bnel $v0, $at, .L7F04E544 /* 082EE0 7F04E3B0 92020003 */ lbu $v0, 3($s0) /* 082EE4 7F04E3B4 0FC0FFF0 */ jal objGetDestroyedLevel /* 082EE8 7F04E3B8 02002025 */ move $a0, $s0 /* 082EEC 7F04E3BC 24010001 */ li $at, 1 /* 082EF0 7F04E3C0 54410060 */ bnel $v0, $at, .L7F04E544 /* 082EF4 7F04E3C4 92020003 */ lbu $v0, 3($s0) /* 082EF8 7F04E3C8 0C002914 */ jal randomGetNext /* 082EFC 7F04E3CC 00000000 */ nop /* 082F00 7F04E3D0 2401000D */ li $at, 13 /* 082F04 7F04E3D4 0041001B */ divu $zero, $v0, $at /* 082F08 7F04E3D8 00002010 */ mfhi $a0 /* 082F0C 7F04E3DC 00802825 */ move $a1, $a0 /* 082F10 7F04E3E0 00000000 */ nop /* 082F14 7F04E3E4 00046880 */ sll $t5, $a0, 2 .L7F04E3E8: /* 082F18 7F04E3E8 020D1821 */ addu $v1, $s0, $t5 /* 082F1C 7F04E3EC 946E0082 */ lhu $t6, 0x82($v1) /* 082F20 7F04E3F0 59C0004E */ blezl $t6, .L7F04E52C /* 082F24 7F04E3F4 24840001 */ addiu $a0, $a0, 1 /* 082F28 7F04E3F8 946F0080 */ lhu $t7, 0x80($v1) /* 082F2C 7F04E3FC 3401FFFF */ li $at, 65535 /* 082F30 7F04E400 51E1004A */ beql $t7, $at, .L7F04E52C /* 082F34 7F04E404 24840001 */ addiu $a0, $a0, 1 /* 082F38 7F04E408 AFA30024 */ sw $v1, 0x24($sp) /* 082F3C 7F04E40C AFA400C4 */ sw $a0, 0xc4($sp) /* 082F40 7F04E410 0FC14634 */ jal ammocrateAllocate /* 082F44 7F04E414 AFA500C8 */ sw $a1, 0xc8($sp) /* 082F48 7F04E418 8FA30024 */ lw $v1, 0x24($sp) /* 082F4C 7F04E41C 8FA400C4 */ lw $a0, 0xc4($sp) /* 082F50 7F04E420 8FA500C8 */ lw $a1, 0xc8($sp) /* 082F54 7F04E424 10400040 */ beqz $v0, .L7F04E528 /* 082F58 7F04E428 00403025 */ move $a2, $v0 /* 082F5C 7F04E42C 3C198003 */ lui $t9, %hi(blank_07_object) /* 082F60 7F04E430 27A8003C */ addiu $t0, $sp, 0x3c /* 082F64 7F04E434 27392094 */ addiu $t9, %lo(blank_07_object) # addiu $t9, $t9, 0x2094 /* 082F68 7F04E438 94670080 */ lhu $a3, 0x80($v1) /* 082F6C 7F04E43C 27290078 */ addiu $t1, $t9, 0x78 /* 082F70 7F04E440 01005825 */ move $t3, $t0 .L7F04E444: /* 082F74 7F04E444 8F210000 */ lw $at, ($t9) /* 082F78 7F04E448 2739000C */ addiu $t9, $t9, 0xc /* 082F7C 7F04E44C 256B000C */ addiu $t3, $t3, 0xc /* 082F80 7F04E450 AD61FFF4 */ sw $at, -0xc($t3) /* 082F84 7F04E454 8F21FFF8 */ lw $at, -8($t9) /* 082F88 7F04E458 AD61FFF8 */ sw $at, -8($t3) /* 082F8C 7F04E45C 8F21FFFC */ lw $at, -4($t9) /* 082F90 7F04E460 1729FFF8 */ bne $t9, $t1, .L7F04E444 /* 082F94 7F04E464 AD61FFFC */ sw $at, -4($t3) /* 082F98 7F04E468 8F210000 */ lw $at, ($t9) /* 082F9C 7F04E46C 01006825 */ move $t5, $t0 /* 082FA0 7F04E470 00407025 */ move $t6, $v0 /* 082FA4 7F04E474 AD610000 */ sw $at, ($t3) /* 082FA8 7F04E478 8F290004 */ lw $t1, 4($t9) /* 082FAC 7F04E47C 250C0078 */ addiu $t4, $t0, 0x78 /* 082FB0 7F04E480 0007C080 */ sll $t8, $a3, 2 /* 082FB4 7F04E484 AD690004 */ sw $t1, 4($t3) .L7F04E488: /* 082FB8 7F04E488 8DA10000 */ lw $at, ($t5) /* 082FBC 7F04E48C 25AD000C */ addiu $t5, $t5, 0xc /* 082FC0 7F04E490 25CE000C */ addiu $t6, $t6, 0xc /* 082FC4 7F04E494 ADC1FFF4 */ sw $at, -0xc($t6) /* 082FC8 7F04E498 8DA1FFF8 */ lw $at, -8($t5) /* 082FCC 7F04E49C ADC1FFF8 */ sw $at, -8($t6) /* 082FD0 7F04E4A0 8DA1FFFC */ lw $at, -4($t5) /* 082FD4 7F04E4A4 15ACFFF8 */ bne $t5, $t4, .L7F04E488 /* 082FD8 7F04E4A8 ADC1FFFC */ sw $at, -4($t6) /* 082FDC 7F04E4AC 8DA10000 */ lw $at, ($t5) /* 082FE0 7F04E4B0 24850001 */ addiu $a1, $a0, 1 /* 082FE4 7F04E4B4 00C02025 */ move $a0, $a2 /* 082FE8 7F04E4B8 ADC10000 */ sw $at, ($t6) /* 082FEC 7F04E4BC 8DAC0004 */ lw $t4, 4($t5) /* 082FF0 7F04E4C0 24010002 */ li $at, 2 /* 082FF4 7F04E4C4 0307C023 */ subu $t8, $t8, $a3 /* 082FF8 7F04E4C8 ADCC0004 */ sw $t4, 4($t6) /* 082FFC 7F04E4CC A4470004 */ sh $a3, 4($v0) /* 083000 7F04E4D0 14A10003 */ bne $a1, $at, .L7F04E4E0 /* 083004 7F04E4D4 AC450080 */ sw $a1, 0x80($v0) /* 083008 7F04E4D8 240F0001 */ li $t7, 1 /* 08300C 7F04E4DC AC4F0080 */ sw $t7, 0x80($v0) .L7F04E4E0: /* 083010 7F04E4E0 0018C080 */ sll $t8, $t8, 2 /* 083014 7F04E4E4 3C058004 */ lui $a1, %hi(PitemZ_entries) /* 083018 7F04E4E8 00B82821 */ addu $a1, $a1, $t8 /* 08301C 7F04E4EC 8CA5A228 */ lw $a1, %lo(PitemZ_entries)($a1) /* 083020 7F04E4F0 0FC101BE */ jal objInitWithModelDef /* 083024 7F04E4F4 AFA600C0 */ sw $a2, 0xc0($sp) /* 083028 7F04E4F8 10400011 */ beqz $v0, .L7F04E540 /* 08302C 7F04E4FC 8FA600C0 */ lw $a2, 0xc0($sp) /* 083030 7F04E500 8CC40014 */ lw $a0, 0x14($a2) /* 083034 7F04E504 8C850014 */ lw $a1, 0x14($a0) /* 083038 7F04E508 0FC1B39E */ jal modelSetScale /* 08303C 7F04E50C AFA600C0 */ sw $a2, 0xc0($sp) /* 083040 7F04E510 8FA600C0 */ lw $a2, 0xc0($sp) /* 083044 7F04E514 8E050010 */ lw $a1, 0x10($s0) /* 083048 7F04E518 0FC0E969 */ jal chrpropReparent /* 08304C 7F04E51C 8CC40010 */ lw $a0, 0x10($a2) /* 083050 7F04E520 10000008 */ b .L7F04E544 /* 083054 7F04E524 92020003 */ lbu $v0, 3($s0) .L7F04E528: /* 083058 7F04E528 24840001 */ addiu $a0, $a0, 1 .L7F04E52C: /* 08305C 7F04E52C 2401000D */ li $at, 13 /* 083060 7F04E530 0081001A */ div $zero, $a0, $at /* 083064 7F04E534 00002010 */ mfhi $a0 /* 083068 7F04E538 5485FFAB */ bnel $a0, $a1, .L7F04E3E8 /* 08306C 7F04E53C 00046880 */ sll $t5, $a0, 2 .L7F04E540: /* 083070 7F04E540 92020003 */ lbu $v0, 3($s0) .L7F04E544: /* 083074 7F04E544 2401000D */ li $at, 13 /* 083078 7F04E548 54410010 */ bnel $v0, $at, .L7F04E58C /* 08307C 7F04E54C 24010006 */ li $at, 6 /* 083080 7F04E550 8E190008 */ lw $t9, 8($s0) /* 083084 7F04E554 3C014000 */ lui $at, 0x4000 /* 083088 7F04E558 02002025 */ move $a0, $s0 /* 08308C 7F04E55C 03215825 */ or $t3, $t9, $at /* 083090 7F04E560 0FC0FFF0 */ jal objGetDestroyedLevel /* 083094 7F04E564 AE0B0008 */ sw $t3, 8($s0) /* 083098 7F04E568 24010001 */ li $at, 1 /* 08309C 7F04E56C 14410057 */ bne $v0, $at, .L7F04E6CC /* 0830A0 7F04E570 00000000 */ nop /* 0830A4 7F04E574 8E0A0008 */ lw $t2, 8($s0) /* 0830A8 7F04E578 3C011000 */ lui $at, 0x1000 /* 0830AC 7F04E57C 01416025 */ or $t4, $t2, $at /* 0830B0 7F04E580 10000052 */ b .L7F04E6CC /* 0830B4 7F04E584 AE0C0008 */ sw $t4, 8($s0) /* 0830B8 7F04E588 24010006 */ li $at, 6 .L7F04E58C: /* 0830BC 7F04E58C 5441000C */ bnel $v0, $at, .L7F04E5C0 /* 0830C0 7F04E590 2401000A */ li $at, 10 /* 0830C4 7F04E594 0FC0FFF0 */ jal objGetDestroyedLevel /* 0830C8 7F04E598 02002025 */ move $a0, $s0 /* 0830CC 7F04E59C 24010001 */ li $at, 1 /* 0830D0 7F04E5A0 1441004A */ bne $v0, $at, .L7F04E6CC /* 0830D4 7F04E5A4 00000000 */ nop /* 0830D8 7F04E5A8 8E0D0008 */ lw $t5, 8($s0) /* 0830DC 7F04E5AC 3C011000 */ lui $at, 0x1000 /* 0830E0 7F04E5B0 01A17025 */ or $t6, $t5, $at /* 0830E4 7F04E5B4 10000045 */ b .L7F04E6CC /* 0830E8 7F04E5B8 AE0E0008 */ sw $t6, 8($s0) /* 0830EC 7F04E5BC 2401000A */ li $at, 10 .L7F04E5C0: /* 0830F0 7F04E5C0 5441000C */ bnel $v0, $at, .L7F04E5F4 /* 0830F4 7F04E5C4 2401000B */ li $at, 11 /* 0830F8 7F04E5C8 0FC0FFF0 */ jal objGetDestroyedLevel /* 0830FC 7F04E5CC 02002025 */ move $a0, $s0 /* 083100 7F04E5D0 24010001 */ li $at, 1 /* 083104 7F04E5D4 1441003D */ bne $v0, $at, .L7F04E6CC /* 083108 7F04E5D8 26040080 */ addiu $a0, $s0, 0x80 /* 08310C 7F04E5DC 3C058003 */ lui $a1, %hi(monAnim33BlackSolid) /* 083110 7F04E5E0 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot /* 083114 7F04E5E4 24A51EE8 */ addiu $a1, %lo(monAnim33BlackSolid) # addiu $a1, $a1, 0x1ee8 /* 083118 7F04E5E8 10000038 */ b .L7F04E6CC /* 08311C 7F04E5EC 00000000 */ nop /* 083120 7F04E5F0 2401000B */ li $at, 11 .L7F04E5F4: /* 083124 7F04E5F4 54410018 */ bnel $v0, $at, .L7F04E658 /* 083128 7F04E5F8 24010024 */ li $at, 36 /* 08312C 7F04E5FC 0FC0FFF0 */ jal objGetDestroyedLevel /* 083130 7F04E600 02002025 */ move $a0, $s0 /* 083134 7F04E604 24010001 */ li $at, 1 /* 083138 7F04E608 14410030 */ bne $v0, $at, .L7F04E6CC /* 08313C 7F04E60C 26040080 */ addiu $a0, $s0, 0x80 /* 083140 7F04E610 3C058003 */ lui $a1, %hi(monAnim33BlackSolid) /* 083144 7F04E614 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot /* 083148 7F04E618 24A51EE8 */ addiu $a1, %lo(monAnim33BlackSolid) # addiu $a1, $a1, 0x1ee8 /* 08314C 7F04E61C 3C058003 */ lui $a1, %hi(monAnim33BlackSolid) /* 083150 7F04E620 24A51EE8 */ addiu $a1, %lo(monAnim33BlackSolid) # addiu $a1, $a1, 0x1ee8 /* 083154 7F04E624 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot /* 083158 7F04E628 260400F4 */ addiu $a0, $s0, 0xf4 /* 08315C 7F04E62C 3C058003 */ lui $a1, %hi(monAnim33BlackSolid) /* 083160 7F04E630 24A51EE8 */ addiu $a1, %lo(monAnim33BlackSolid) # addiu $a1, $a1, 0x1ee8 /* 083164 7F04E634 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot /* 083168 7F04E638 26040168 */ addiu $a0, $s0, 0x168 /* 08316C 7F04E63C 3C058003 */ lui $a1, %hi(monAnim33BlackSolid) /* 083170 7F04E640 24A51EE8 */ addiu $a1, %lo(monAnim33BlackSolid) # addiu $a1, $a1, 0x1ee8 /* 083174 7F04E644 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot /* 083178 7F04E648 260401DC */ addiu $a0, $s0, 0x1dc /* 08317C 7F04E64C 1000001F */ b .L7F04E6CC /* 083180 7F04E650 00000000 */ nop /* 083184 7F04E654 24010024 */ li $at, 36 .L7F04E658: /* 083188 7F04E658 5441000B */ bnel $v0, $at, .L7F04E688 /* 08318C 7F04E65C 24010015 */ li $at, 21 /* 083190 7F04E660 0FC0FFF0 */ jal objGetDestroyedLevel /* 083194 7F04E664 02002025 */ move $a0, $s0 /* 083198 7F04E668 24010001 */ li $at, 1 /* 08319C 7F04E66C 14410017 */ bne $v0, $at, .L7F04E6CC /* 0831A0 7F04E670 00000000 */ nop /* 0831A4 7F04E674 0FC15799 */ jal init_trigger_toxic_gas_effect /* 0831A8 7F04E678 26040058 */ addiu $a0, $s0, 0x58 /* 0831AC 7F04E67C 10000013 */ b .L7F04E6CC /* 0831B0 7F04E680 00000000 */ nop /* 0831B4 7F04E684 24010015 */ li $at, 21 .L7F04E688: /* 0831B8 7F04E688 14410010 */ bne $v0, $at, .L7F04E6CC /* 0831BC 7F04E68C 00000000 */ nop /* 0831C0 7F04E690 0FC0FFF0 */ jal objGetDestroyedLevel /* 0831C4 7F04E694 02002025 */ move $a0, $s0 /* 0831C8 7F04E698 5440000A */ bnezl $v0, .L7F04E6C4 /* 0831CC 7F04E69C 44804000 */ mtc1 $zero, $f8 /* 0831D0 7F04E6A0 C6000074 */ lwc1 $f0, 0x74($s0) /* 0831D4 7F04E6A4 C6100070 */ lwc1 $f16, 0x70($s0) /* 0831D8 7F04E6A8 C60A0080 */ lwc1 $f10, 0x80($s0) /* 0831DC 7F04E6AC 46100481 */ sub.s $f18, $f0, $f16 /* 0831E0 7F04E6B0 46125182 */ mul.s $f6, $f10, $f18 /* 0831E4 7F04E6B4 46003103 */ div.s $f4, $f6, $f0 /* 0831E8 7F04E6B8 10000004 */ b .L7F04E6CC /* 0831EC 7F04E6BC E6040084 */ swc1 $f4, 0x84($s0) /* 0831F0 7F04E6C0 44804000 */ mtc1 $zero, $f8 .L7F04E6C4: /* 0831F4 7F04E6C4 00000000 */ nop /* 0831F8 7F04E6C8 E6080084 */ swc1 $f8, 0x84($s0) .L7F04E6CC: /* 0831FC 7F04E6CC 0FC0FFF0 */ jal objGetDestroyedLevel /* 083200 7F04E6D0 02002025 */ move $a0, $s0 /* 083204 7F04E6D4 24010001 */ li $at, 1 /* 083208 7F04E6D8 5441000D */ bnel $v0, $at, .L7F04E710 /* 08320C 7F04E6DC 8FBF001C */ lw $ra, 0x1c($sp) /* 083210 7F04E6E0 8E0F0010 */ lw $t7, 0x10($s0) /* 083214 7F04E6E4 8DE40020 */ lw $a0, 0x20($t7) /* 083218 7F04E6E8 50800009 */ beql $a0, $zero, .L7F04E710 /* 08321C 7F04E6EC 8FBF001C */ lw $ra, 0x1c($sp) /* 083220 7F04E6F0 8C820024 */ lw $v0, 0x24($a0) .L7F04E6F4: /* 083224 7F04E6F4 24050001 */ li $a1, 1 /* 083228 7F04E6F8 0FC12FF4 */ jal propobjSetDropped /* 08322C 7F04E6FC AFA20028 */ sw $v0, 0x28($sp) /* 083230 7F04E700 8FA40028 */ lw $a0, 0x28($sp) /* 083234 7F04E704 5480FFFB */ bnezl $a0, .L7F04E6F4 /* 083238 7F04E708 8C820024 */ lw $v0, 0x24($a0) .L7F04E70C: /* 08323C 7F04E70C 8FBF001C */ lw $ra, 0x1c($sp) .L7F04E710: /* 083240 7F04E710 8FB00018 */ lw $s0, 0x18($sp) /* 083244 7F04E714 27BD00E0 */ addiu $sp, $sp, 0xe0 /* 083248 7F04E718 03E00008 */ jr $ra /* 08324C 7F04E71C 00000000 */ nop ) #endif #ifdef NONMATCHING void sub_GAME_7F04E720(PropRecord* prop, struct ShotData* shotdata) { } #else void sub_GAME_7F04E720(PropRecord*, struct ShotData*); GLOBAL_ASM( .text glabel sub_GAME_7F04E720 /* 083250 7F04E720 27BDFF40 */ addiu $sp, $sp, -0xc0 /* 083254 7F04E724 AFBF004C */ sw $ra, 0x4c($sp) /* 083258 7F04E728 AFB50048 */ sw $s5, 0x48($sp) /* 08325C 7F04E72C AFB40044 */ sw $s4, 0x44($sp) /* 083260 7F04E730 AFB30040 */ sw $s3, 0x40($sp) /* 083264 7F04E734 AFB2003C */ sw $s2, 0x3c($sp) /* 083268 7F04E738 AFB10038 */ sw $s1, 0x38($sp) /* 08326C 7F04E73C AFB00034 */ sw $s0, 0x34($sp) /* 083270 7F04E740 AFA400C0 */ sw $a0, 0xc0($sp) /* 083274 7F04E744 8C950004 */ lw $s5, 4($a0) /* 083278 7F04E748 00A09825 */ move $s3, $a1 /* 08327C 7F04E74C 8EAF0064 */ lw $t7, 0x64($s5) /* 083280 7F04E750 31F81000 */ andi $t8, $t7, 0x1000 /* 083284 7F04E754 57000091 */ bnezl $t8, .L7F04E99C /* 083288 7F04E758 8FBF004C */ lw $ra, 0x4c($sp) /* 08328C 7F04E75C 90880001 */ lbu $t0, 1($a0) /* 083290 7F04E760 31090002 */ andi $t1, $t0, 2 /* 083294 7F04E764 5120008D */ beql $t1, $zero, .L7F04E99C /* 083298 7F04E768 8FBF004C */ lw $ra, 0x4c($sp) /* 08329C 7F04E76C 8C900020 */ lw $s0, 0x20($a0) /* 0832A0 7F04E770 52000008 */ beql $s0, $zero, .L7F04E794 /* 0832A4 7F04E774 8EB40014 */ lw $s4, 0x14($s5) .L7F04E778: /* 0832A8 7F04E778 8E110024 */ lw $s1, 0x24($s0) /* 0832AC 7F04E77C 02002025 */ move $a0, $s0 /* 0832B0 7F04E780 0FC139C8 */ jal sub_GAME_7F04E720 /* 0832B4 7F04E784 02602825 */ move $a1, $s3 /* 0832B8 7F04E788 1620FFFB */ bnez $s1, .L7F04E778 /* 0832BC 7F04E78C 02208025 */ move $s0, $s1 /* 0832C0 7F04E790 8EB40014 */ lw $s4, 0x14($s5) .L7F04E794: /* 0832C4 7F04E794 AFA000A8 */ sw $zero, 0xa8($sp) /* 0832C8 7F04E798 92AB0003 */ lbu $t3, 3($s5) /* 0832CC 7F04E79C 24010001 */ li $at, 1 /* 0832D0 7F04E7A0 2670000C */ addiu $s0, $s3, 0xc /* 0832D4 7F04E7A4 15610025 */ bne $t3, $at, .L7F04E83C /* 0832D8 7F04E7A8 27B100A8 */ addiu $s1, $sp, 0xa8 /* 0832DC 7F04E7AC 96AC0098 */ lhu $t4, 0x98($s5) /* 0832E0 7F04E7B0 26A400D0 */ addiu $a0, $s5, 0xd0 /* 0832E4 7F04E7B4 02603025 */ move $a2, $s3 /* 0832E8 7F04E7B8 318D0004 */ andi $t5, $t4, 4 /* 0832EC 7F04E7BC 55A00008 */ bnezl $t5, .L7F04E7E0 /* 0832F0 7F04E7C0 2670000C */ addiu $s0, $s3, 0xc /* 0832F4 7F04E7C4 96A2009A */ lhu $v0, 0x9a($s5) /* 0832F8 7F04E7C8 24010006 */ li $at, 6 /* 0832FC 7F04E7CC 10410003 */ beq $v0, $at, .L7F04E7DC /* 083300 7F04E7D0 24010007 */ li $at, 7 /* 083304 7F04E7D4 14410019 */ bne $v0, $at, .L7F04E83C /* 083308 7F04E7D8 00000000 */ nop .L7F04E7DC: /* 08330C 7F04E7DC 2670000C */ addiu $s0, $s3, 0xc .L7F04E7E0: /* 083310 7F04E7E0 02003825 */ move $a3, $s0 /* 083314 7F04E7E4 0FC1D1F4 */ jal sub_GAME_7F0747D0 /* 083318 7F04E7E8 8E85000C */ lw $a1, 0xc($s4) /* 08331C 7F04E7EC 8E8E0008 */ lw $t6, 8($s4) /* 083320 7F04E7F0 00409025 */ move $s2, $v0 /* 083324 7F04E7F4 02802025 */ move $a0, $s4 /* 083328 7F04E7F8 8DCF0000 */ lw $t7, ($t6) /* 08332C 7F04E7FC 02603025 */ move $a2, $s3 /* 083330 7F04E800 18400024 */ blez $v0, .L7F04E894 /* 083334 7F04E804 AFAF00A8 */ sw $t7, 0xa8($sp) /* 083338 7F04E808 27B80078 */ addiu $t8, $sp, 0x78 /* 08333C 7F04E80C 27B90074 */ addiu $t9, $sp, 0x74 /* 083340 7F04E810 27A80060 */ addiu $t0, $sp, 0x60 /* 083344 7F04E814 AFA80018 */ sw $t0, 0x18($sp) /* 083348 7F04E818 AFB90014 */ sw $t9, 0x14($sp) /* 08334C 7F04E81C AFB80010 */ sw $t8, 0x10($sp) /* 083350 7F04E820 01E02825 */ move $a1, $t7 /* 083354 7F04E824 0FC1366C */ jal sub_GAME_7F04D9B0 /* 083358 7F04E828 02003825 */ move $a3, $s0 /* 08335C 7F04E82C 14400019 */ bnez $v0, .L7F04E894 /* 083360 7F04E830 00000000 */ nop /* 083364 7F04E834 10000017 */ b .L7F04E894 /* 083368 7F04E838 00009025 */ move $s2, $zero .L7F04E83C: /* 08336C 7F04E83C 02802025 */ move $a0, $s4 .L7F04E840: /* 083370 7F04E840 02602825 */ move $a1, $s3 /* 083374 7F04E844 02003025 */ move $a2, $s0 /* 083378 7F04E848 0FC1D4BF */ jal sub_GAME_7F0752FC /* 08337C 7F04E84C 02203825 */ move $a3, $s1 /* 083380 7F04E850 1840000E */ blez $v0, .L7F04E88C /* 083384 7F04E854 00409025 */ move $s2, $v0 /* 083388 7F04E858 27A90078 */ addiu $t1, $sp, 0x78 /* 08338C 7F04E85C 27AA0074 */ addiu $t2, $sp, 0x74 /* 083390 7F04E860 27AB0060 */ addiu $t3, $sp, 0x60 /* 083394 7F04E864 AFAB0018 */ sw $t3, 0x18($sp) /* 083398 7F04E868 AFAA0014 */ sw $t2, 0x14($sp) /* 08339C 7F04E86C AFA90010 */ sw $t1, 0x10($sp) /* 0833A0 7F04E870 02802025 */ move $a0, $s4 /* 0833A4 7F04E874 8FA500A8 */ lw $a1, 0xa8($sp) /* 0833A8 7F04E878 02603025 */ move $a2, $s3 /* 0833AC 7F04E87C 0FC1366C */ jal sub_GAME_7F04D9B0 /* 0833B0 7F04E880 02003825 */ move $a3, $s0 /* 0833B4 7F04E884 14400003 */ bnez $v0, .L7F04E894 /* 0833B8 7F04E888 00000000 */ nop .L7F04E88C: /* 0833BC 7F04E88C 5E40FFEC */ bgtzl $s2, .L7F04E840 /* 0833C0 7F04E890 02802025 */ move $a0, $s4 .L7F04E894: /* 0833C4 7F04E894 1A400040 */ blez $s2, .L7F04E998 /* 0833C8 7F04E898 8FAD0074 */ lw $t5, 0x74($sp) /* 0833CC 7F04E89C 8E8C000C */ lw $t4, 0xc($s4) /* 0833D0 7F04E8A0 C7A40078 */ lwc1 $f4, 0x78($sp) /* 0833D4 7F04E8A4 C7A6007C */ lwc1 $f6, 0x7c($sp) /* 0833D8 7F04E8A8 C7A80080 */ lwc1 $f8, 0x80($sp) /* 0833DC 7F04E8AC 000D7180 */ sll $t6, $t5, 6 /* 0833E0 7F04E8B0 27A50068 */ addiu $a1, $sp, 0x68 /* 0833E4 7F04E8B4 018E2021 */ addu $a0, $t4, $t6 /* 0833E8 7F04E8B8 E7A40068 */ swc1 $f4, 0x68($sp) /* 0833EC 7F04E8BC E7A6006C */ swc1 $f6, 0x6c($sp) /* 0833F0 7F04E8C0 0FC1611D */ jal mtx4TransformVecInPlace /* 0833F4 7F04E8C4 E7A80070 */ swc1 $f8, 0x70($sp) /* 0833F8 7F04E8C8 C7A00070 */ lwc1 $f0, 0x70($sp) /* 0833FC 7F04E8CC C66A0034 */ lwc1 $f10, 0x34($s3) /* 083400 7F04E8D0 02602025 */ move $a0, $s3 /* 083404 7F04E8D4 46000007 */ neg.s $f0, $f0 /* 083408 7F04E8D8 8FA500C0 */ lw $a1, 0xc0($sp) /* 08340C 7F04E8DC 460A003E */ c.le.s $f0, $f10 /* 083410 7F04E8E0 02403825 */ move $a3, $s2 /* 083414 7F04E8E4 8FAC00A8 */ lw $t4, 0xa8($sp) /* 083418 7F04E8E8 27AE0078 */ addiu $t6, $sp, 0x78 /* 08341C 7F04E8EC 4502002B */ bc1fl .L7F04E99C /* 083420 7F04E8F0 8FBF004C */ lw $ra, 0x4c($sp) /* 083424 7F04E8F4 8EAF0008 */ lw $t7, 8($s5) /* 083428 7F04E8F8 24030001 */ li $v1, 1 /* 08342C 7F04E8FC 000FC380 */ sll $t8, $t7, 0xe /* 083430 7F04E900 07020017 */ bltzl $t8, .L7F04E960 /* 083434 7F04E904 8FAF0074 */ lw $t7, 0x74($sp) /* 083438 7F04E908 92A20003 */ lbu $v0, 3($s5) /* 08343C 7F04E90C 2401002A */ li $at, 42 /* 083440 7F04E910 10410003 */ beq $v0, $at, .L7F04E920 /* 083444 7F04E914 2401002F */ li $at, 47 /* 083448 7F04E918 54410004 */ bnel $v0, $at, .L7F04E92C /* 08344C 7F04E91C 8EB90014 */ lw $t9, 0x14($s5) .L7F04E920: /* 083450 7F04E920 1000000E */ b .L7F04E95C /* 083454 7F04E924 00001825 */ move $v1, $zero /* 083458 7F04E928 8EB90014 */ lw $t9, 0x14($s5) .L7F04E92C: /* 08345C 7F04E92C 3C088004 */ lui $t0, %hi(skeleton_door) /* 083460 7F04E930 2508A1DC */ addiu $t0, %lo(skeleton_door) # addiu $t0, $t0, -0x5e24 /* 083464 7F04E934 8F220008 */ lw $v0, 8($t9) /* 083468 7F04E938 8C490004 */ lw $t1, 4($v0) /* 08346C 7F04E93C 55090008 */ bnel $t0, $t1, .L7F04E960 /* 083470 7F04E940 8FAF0074 */ lw $t7, 0x74($sp) /* 083474 7F04E944 8C4B0008 */ lw $t3, 8($v0) /* 083478 7F04E948 8FAA0060 */ lw $t2, 0x60($sp) /* 08347C 7F04E94C 8D6D000C */ lw $t5, 0xc($t3) /* 083480 7F04E950 554D0003 */ bnel $t2, $t5, .L7F04E960 /* 083484 7F04E954 8FAF0074 */ lw $t7, 0x74($sp) /* 083488 7F04E958 00001825 */ move $v1, $zero .L7F04E95C: /* 08348C 7F04E95C 8FAF0074 */ lw $t7, 0x74($sp) .L7F04E960: /* 083490 7F04E960 8FB80060 */ lw $t8, 0x60($sp) /* 083494 7F04E964 AFAC0010 */ sw $t4, 0x10($sp) /* 083498 7F04E968 AFAE0014 */ sw $t6, 0x14($sp) /* 08349C 7F04E96C AFB40020 */ sw $s4, 0x20($sp) /* 0834A0 7F04E970 AFA30024 */ sw $v1, 0x24($sp) /* 0834A4 7F04E974 AFAF0018 */ sw $t7, 0x18($sp) /* 0834A8 7F04E978 AFB8001C */ sw $t8, 0x1c($sp) /* 0834AC 7F04E97C 8EB9000C */ lw $t9, 0xc($s5) /* 0834B0 7F04E980 3C010010 */ lui $at, 0x10 /* 0834B4 7F04E984 44060000 */ mfc1 $a2, $f0 /* 0834B8 7F04E988 03214024 */ and $t0, $t9, $at /* 0834BC 7F04E98C 0008482B */ sltu $t1, $zero, $t0 /* 0834C0 7F04E990 0FC0EE70 */ jal sub_GAME_7F03B9C0 /* 0834C4 7F04E994 AFA90028 */ sw $t1, 0x28($sp) .L7F04E998: /* 0834C8 7F04E998 8FBF004C */ lw $ra, 0x4c($sp) .L7F04E99C: /* 0834CC 7F04E99C 8FB00034 */ lw $s0, 0x34($sp) /* 0834D0 7F04E9A0 8FB10038 */ lw $s1, 0x38($sp) /* 0834D4 7F04E9A4 8FB2003C */ lw $s2, 0x3c($sp) /* 0834D8 7F04E9A8 8FB30040 */ lw $s3, 0x40($sp) /* 0834DC 7F04E9AC 8FB40044 */ lw $s4, 0x44($sp) /* 0834E0 7F04E9B0 8FB50048 */ lw $s5, 0x48($sp) /* 0834E4 7F04E9B4 03E00008 */ jr $ra /* 0834E8 7F04E9B8 27BD00C0 */ addiu $sp, $sp, 0xc0 ) #endif void sub_GAME_7F04E9BC(PropRecord* prop, struct ShotData* shotdata) { ObjectRecord *obj; f32 tmp; Model *model; struct ModelRoData_BoundingBoxRecord *bbox; obj = prop->obj; model = obj->model; bbox = chrobjGetBboxFromObjectRecord(obj); if ((prop->flags & PROPFLAG_ONSCREEN) && (obj->runtime_bitflags & RUNTIMEBITFLAG_00001000) == 0 && (obj->flags2 & PROPFLAG2_SHOOTTHROUGH) == 0) { tmp = -(model->render_pos->pos.m[3][2] + chrpropSumMatrixNegZ(bbox, (Mtxf*)model->render_pos)); if (tmp <= shotdata->unk34) { sub_GAME_7F04E720(prop, (void*)shotdata); } } } #ifdef NONMATCHING void sub_GAME_7F04EA68(void) { } #else GLOBAL_ASM( .text glabel sub_GAME_7F04EA68 /* 083598 7F04EA68 27BDFF90 */ addiu $sp, $sp, -0x70 /* 08359C 7F04EA6C AFBF002C */ sw $ra, 0x2c($sp) /* 0835A0 7F04EA70 AFB10028 */ sw $s1, 0x28($sp) /* 0835A4 7F04EA74 AFB00024 */ sw $s0, 0x24($sp) /* 0835A8 7F04EA78 8CA60004 */ lw $a2, 4($a1) /* 0835AC 7F04EA7C 00A08025 */ move $s0, $a1 /* 0835B0 7F04EA80 8CC2001C */ lw $v0, 0x1c($a2) /* 0835B4 7F04EA84 00C01825 */ move $v1, $a2 /* 0835B8 7F04EA88 50400006 */ beql $v0, $zero, .L7F04EAA4 /* 0835BC 7F04EA8C C6040000 */ lwc1 $f4, ($s0) /* 0835C0 7F04EA90 00401825 */ move $v1, $v0 .L7F04EA94: /* 0835C4 7F04EA94 8C42001C */ lw $v0, 0x1c($v0) /* 0835C8 7F04EA98 5440FFFE */ bnezl $v0, .L7F04EA94 /* 0835CC 7F04EA9C 00401825 */ move $v1, $v0 /* 0835D0 7F04EAA0 C6040000 */ lwc1 $f4, ($s0) .L7F04EAA4: /* 0835D4 7F04EAA4 C486000C */ lwc1 $f6, 0xc($a0) /* 0835D8 7F04EAA8 C48A0014 */ lwc1 $f10, 0x14($a0) /* 0835DC 7F04EAAC C4920000 */ lwc1 $f18, ($a0) /* 0835E0 7F04EAB0 46062202 */ mul.s $f8, $f4, $f6 /* 0835E4 7F04EAB4 8CD10004 */ lw $s1, 4($a2) /* 0835E8 7F04EAB8 3C0141D0 */ li $at, 0x41D00000 # 26.000000 /* 0835EC 7F04EABC 44810000 */ mtc1 $at, $f0 /* 0835F0 7F04EAC0 460A4403 */ div.s $f16, $f8, $f10 /* 0835F4 7F04EAC4 46109101 */ sub.s $f4, $f18, $f16 /* 0835F8 7F04EAC8 E7A40060 */ swc1 $f4, 0x60($sp) /* 0835FC 7F04EACC C4880010 */ lwc1 $f8, 0x10($a0) /* 083600 7F04EAD0 C6060000 */ lwc1 $f6, ($s0) /* 083604 7F04EAD4 C4920014 */ lwc1 $f18, 0x14($a0) /* 083608 7F04EAD8 C4840004 */ lwc1 $f4, 4($a0) /* 08360C 7F04EADC 46083282 */ mul.s $f10, $f6, $f8 /* 083610 7F04EAE0 46125403 */ div.s $f16, $f10, $f18 /* 083614 7F04EAE4 46102181 */ sub.s $f6, $f4, $f16 /* 083618 7F04EAE8 C7A40060 */ lwc1 $f4, 0x60($sp) /* 08361C 7F04EAEC E7A60064 */ swc1 $f6, 0x64($sp) /* 083620 7F04EAF0 C60A0000 */ lwc1 $f10, ($s0) /* 083624 7F04EAF4 C4880008 */ lwc1 $f8, 8($a0) /* 083628 7F04EAF8 460A4481 */ sub.s $f18, $f8, $f10 /* 08362C 7F04EAFC C7AA0064 */ lwc1 $f10, 0x64($sp) /* 083630 7F04EB00 E7B20068 */ swc1 $f18, 0x68($sp) /* 083634 7F04EB04 C490000C */ lwc1 $f16, 0xc($a0) /* 083638 7F04EB08 46100182 */ mul.s $f6, $f0, $f16 /* 08363C 7F04EB0C 46062201 */ sub.s $f8, $f4, $f6 /* 083640 7F04EB10 C7A60068 */ lwc1 $f6, 0x68($sp) /* 083644 7F04EB14 E7A80060 */ swc1 $f8, 0x60($sp) /* 083648 7F04EB18 C4920010 */ lwc1 $f18, 0x10($a0) /* 08364C 7F04EB1C 46120402 */ mul.s $f16, $f0, $f18 /* 083650 7F04EB20 46105101 */ sub.s $f4, $f10, $f16 /* 083654 7F04EB24 E7A40064 */ swc1 $f4, 0x64($sp) /* 083658 7F04EB28 C4880014 */ lwc1 $f8, 0x14($a0) /* 08365C 7F04EB2C AFA40070 */ sw $a0, 0x70($sp) /* 083660 7F04EB30 AFA3005C */ sw $v1, 0x5c($sp) /* 083664 7F04EB34 46080482 */ mul.s $f18, $f0, $f8 /* 083668 7F04EB38 46123281 */ sub.s $f10, $f6, $f18 /* 08366C 7F04EB3C 0FC1E111 */ jal currentPlayerGetMatrix10D4 /* 083670 7F04EB40 E7AA0068 */ swc1 $f10, 0x68($sp) /* 083674 7F04EB44 00402025 */ move $a0, $v0 /* 083678 7F04EB48 0FC1611D */ jal mtx4TransformVecInPlace /* 08367C 7F04EB4C 27A50060 */ addiu $a1, $sp, 0x60 /* 083680 7F04EB50 8E0E004C */ lw $t6, 0x4c($s0) /* 083684 7F04EB54 8FA3005C */ lw $v1, 0x5c($sp) /* 083688 7F04EB58 11C00004 */ beqz $t6, .L7F04EB6C /* 08368C 7F04EB5C 27A40060 */ addiu $a0, $sp, 0x60 /* 083690 7F04EB60 0FC19ED3 */ jal sub_GAME_7F067B4C /* 083694 7F04EB64 AFA3005C */ sw $v1, 0x5c($sp) /* 083698 7F04EB68 8FA3005C */ lw $v1, 0x5c($sp) .L7F04EB6C: /* 08369C 7F04EB6C 8C6F0014 */ lw $t7, 0x14($v1) /* 0836A0 7F04EB70 27A40060 */ addiu $a0, $sp, 0x60 /* 0836A4 7F04EB74 24050001 */ li $a1, 1 /* 0836A8 7F04EB78 3C0641D0 */ lui $a2, 0x41d0 /* 0836AC 7F04EB7C 0FC28F87 */ jal sub_GAME_7F0A3E1C /* 0836B0 7F04EB80 91E70003 */ lbu $a3, 3($t7) /* 0836B4 7F04EB84 0FC13BCD */ jal objIsHealthy /* 0836B8 7F04EB88 02202025 */ move $a0, $s1 /* 0836BC 7F04EB8C 5040000D */ beql $v0, $zero, .L7F04EBC4 /* 0836C0 7F04EB90 8E0B004C */ lw $t3, 0x4c($s0) /* 0836C4 7F04EB94 0FC13812 */ jal objIsMortal /* 0836C8 7F04EB98 02202025 */ move $a0, $s1 /* 0836CC 7F04EB9C 50400009 */ beql $v0, $zero, .L7F04EBC4 /* 0836D0 7F04EBA0 8E0B004C */ lw $t3, 0x4c($s0) /* 0836D4 7F04EBA4 8E18004C */ lw $t8, 0x4c($s0) /* 0836D8 7F04EBA8 8FB90070 */ lw $t9, 0x70($sp) /* 0836DC 7F04EBAC 24050006 */ li $a1, 6 /* 0836E0 7F04EBB0 53000004 */ beql $t8, $zero, .L7F04EBC4 /* 0836E4 7F04EBB4 8E0B004C */ lw $t3, 0x4c($s0) /* 0836E8 7F04EBB8 0FC1A9BE */ jal inc_curplayer_hitcount_with_weapon /* 0836EC 7F04EBBC 8F240018 */ lw $a0, 0x18($t9) /* 0836F0 7F04EBC0 8E0B004C */ lw $t3, 0x4c($s0) .L7F04EBC4: /* 0836F4 7F04EBC4 55600007 */ bnezl $t3, .L7F04EBE4 /* 0836F8 7F04EBC8 8FAC0070 */ lw $t4, 0x70($sp) /* 0836FC 7F04EBCC 8E040004 */ lw $a0, 4($s0) /* 083700 7F04EBD0 0FC191C8 */ jal sub_GAME_7F064720 /* 083704 7F04EBD4 24840008 */ addiu $a0, $a0, 8 /* 083708 7F04EBD8 10000007 */ b .L7F04EBF8 /* 08370C 7F04EBDC 8FAD0070 */ lw $t5, 0x70($sp) /* 083710 7F04EBE0 8FAC0070 */ lw $t4, 0x70($sp) .L7F04EBE4: /* 083714 7F04EBE4 8E050004 */ lw $a1, 4($s0) /* 083718 7F04EBE8 8606003A */ lh $a2, 0x3a($s0) /* 08371C 7F04EBEC 0FC19107 */ jal recall_joy2_hits_edit_detail_edit_flag /* 083720 7F04EBF0 8D840018 */ lw $a0, 0x18($t4) /* 083724 7F04EBF4 8FAD0070 */ lw $t5, 0x70($sp) .L7F04EBF8: /* 083728 7F04EBF8 24010017 */ li $at, 23 /* 08372C 7F04EBFC 8DA40018 */ lw $a0, 0x18($t5) /* 083730 7F04EC00 10810060 */ beq $a0, $at, .L7F04ED84 /* 083734 7F04EC04 00000000 */ nop /* 083738 7F04EC08 8E0E004C */ lw $t6, 0x4c($s0) /* 08373C 7F04EC0C 55C00022 */ bnezl $t6, .L7F04EC98 /* 083740 7F04EC10 8602003A */ lh $v0, 0x3a($s0) /* 083744 7F04EC14 8E380014 */ lw $t8, 0x14($s1) /* 083748 7F04EC18 3C0F8004 */ lui $t7, %hi(skeleton_door) /* 08374C 7F04EC1C 25EFA1DC */ addiu $t7, %lo(skeleton_door) # addiu $t7, $t7, -0x5e24 /* 083750 7F04EC20 8F190008 */ lw $t9, 8($t8) /* 083754 7F04EC24 8E080004 */ lw $t0, 4($s0) /* 083758 7F04EC28 00001825 */ move $v1, $zero /* 08375C 7F04EC2C 8F2B0004 */ lw $t3, 4($t9) /* 083760 7F04EC30 55EB0003 */ bnel $t7, $t3, .L7F04EC40 /* 083764 7F04EC34 A3A30057 */ sb $v1, 0x57($sp) /* 083768 7F04EC38 24030001 */ li $v1, 1 /* 08376C 7F04EC3C A3A30057 */ sb $v1, 0x57($sp) .L7F04EC40: /* 083770 7F04EC40 0C002914 */ jal randomGetNext /* 083774 7F04EC44 AFA80058 */ sw $t0, 0x58($sp) /* 083778 7F04EC48 24010003 */ li $at, 3 /* 08377C 7F04EC4C 0041001B */ divu $zero, $v0, $at /* 083780 7F04EC50 8FA80058 */ lw $t0, 0x58($sp) /* 083784 7F04EC54 00003010 */ mfhi $a2 /* 083788 7F04EC58 83A30057 */ lb $v1, 0x57($sp) /* 08378C 7F04EC5C AFA80010 */ sw $t0, 0x10($sp) /* 083790 7F04EC60 8E0E0040 */ lw $t6, 0x40($s0) /* 083794 7F04EC64 24C60011 */ addiu $a2, $a2, 0x11 /* 083798 7F04EC68 00066400 */ sll $t4, $a2, 0x10 /* 08379C 7F04EC6C 000C3403 */ sra $a2, $t4, 0x10 /* 0837A0 7F04EC70 26040010 */ addiu $a0, $s0, 0x10 /* 0837A4 7F04EC74 2605001C */ addiu $a1, $s0, 0x1c /* 0837A8 7F04EC78 24070001 */ li $a3, 1 /* 0837AC 7F04EC7C AFA30018 */ sw $v1, 0x18($sp) /* 0837B0 7F04EC80 0FC28423 */ jal explosionCreateBulletImpact /* 0837B4 7F04EC84 AFAE0014 */ sw $t6, 0x14($sp) /* 0837B8 7F04EC88 8FB80070 */ lw $t8, 0x70($sp) /* 0837BC 7F04EC8C 1000003D */ b .L7F04ED84 /* 0837C0 7F04EC90 8F040018 */ lw $a0, 0x18($t8) /* 0837C4 7F04EC94 8602003A */ lh $v0, 0x3a($s0) .L7F04EC98: /* 0837C8 7F04EC98 00004825 */ move $t1, $zero /* 0837CC 7F04EC9C 3C0F8005 */ lui $t7, %hi(g_Textures) /* 0837D0 7F04ECA0 04410004 */ bgez $v0, .L7F04ECB4 /* 0837D4 7F04ECA4 0002C8C0 */ sll $t9, $v0, 3 /* 0837D8 7F04ECA8 3C088005 */ lui $t0, %hi(D_8004E86C) /* 0837DC 7F04ECAC 10000008 */ b .L7F04ECD0 /* 0837E0 7F04ECB0 8D08E86C */ lw $t0, %lo(D_8004E86C)($t0) .L7F04ECB4: /* 0837E4 7F04ECB4 01F97821 */ addu $t7, $t7, $t9 /* 0837E8 7F04ECB8 91EF9300 */ lbu $t7, %lo(g_Textures)($t7) /* 0837EC 7F04ECBC 3C088005 */ lui $t0, %hi(D_8004E86C) /* 0837F0 7F04ECC0 31EB000F */ andi $t3, $t7, 0xf /* 0837F4 7F04ECC4 000B6080 */ sll $t4, $t3, 2 /* 0837F8 7F04ECC8 010C4021 */ addu $t0, $t0, $t4 /* 0837FC 7F04ECCC 8D08E86C */ lw $t0, %lo(D_8004E86C)($t0) .L7F04ECD0: /* 083800 7F04ECD0 AFA80050 */ sw $t0, 0x50($sp) /* 083804 7F04ECD4 0C002914 */ jal randomGetNext /* 083808 7F04ECD8 A3A9004B */ sb $t1, 0x4b($sp) /* 08380C 7F04ECDC 8FA80050 */ lw $t0, 0x50($sp) /* 083810 7F04ECE0 8E2E0014 */ lw $t6, 0x14($s1) /* 083814 7F04ECE4 3C188004 */ lui $t8, %hi(skeleton_door) /* 083818 7F04ECE8 850D000A */ lh $t5, 0xa($t0) /* 08381C 7F04ECEC 8DC30008 */ lw $v1, 8($t6) /* 083820 7F04ECF0 2718A1DC */ addiu $t8, %lo(skeleton_door) # addiu $t8, $t8, -0x5e24 /* 083824 7F04ECF4 004D001B */ divu $zero, $v0, $t5 /* 083828 7F04ECF8 8C640004 */ lw $a0, 4($v1) /* 08382C 7F04ECFC 00005010 */ mfhi $t2 /* 083830 7F04ED00 83A9004B */ lb $t1, 0x4b($sp) /* 083834 7F04ED04 15A00002 */ bnez $t5, .L7F04ED10 /* 083838 7F04ED08 00000000 */ nop /* 08383C 7F04ED0C 0007000D */ break 7 .L7F04ED10: /* 083840 7F04ED10 2605001C */ addiu $a1, $s0, 0x1c /* 083844 7F04ED14 17040005 */ bne $t8, $a0, .L7F04ED2C /* 083848 7F04ED18 24070001 */ li $a3, 1 /* 08384C 7F04ED1C 8C6F0008 */ lw $t7, 8($v1) /* 083850 7F04ED20 8E190044 */ lw $t9, 0x44($s0) /* 083854 7F04ED24 8DEB000C */ lw $t3, 0xc($t7) /* 083858 7F04ED28 132B0009 */ beq $t9, $t3, .L7F04ED50 .L7F04ED2C: /* 08385C 7F04ED2C 3C0C8004 */ lui $t4, %hi(skeleton_cctv) /* 083860 7F04ED30 258CA05C */ addiu $t4, %lo(skeleton_cctv) # addiu $t4, $t4, -0x5fa4 /* 083864 7F04ED34 55840008 */ bnel $t4, $a0, .L7F04ED58 /* 083868 7F04ED38 8D0F0004 */ lw $t7, 4($t0) /* 08386C 7F04ED3C 8C6E0008 */ lw $t6, 8($v1) /* 083870 7F04ED40 8E0D0044 */ lw $t5, 0x44($s0) /* 083874 7F04ED44 8DD80004 */ lw $t8, 4($t6) /* 083878 7F04ED48 55B80003 */ bnel $t5, $t8, .L7F04ED58 /* 08387C 7F04ED4C 8D0F0004 */ lw $t7, 4($t0) .L7F04ED50: /* 083880 7F04ED50 24090001 */ li $t1, 1 /* 083884 7F04ED54 8D0F0004 */ lw $t7, 4($t0) .L7F04ED58: /* 083888 7F04ED58 8E0B0004 */ lw $t3, 4($s0) /* 08388C 7F04ED5C 26040010 */ addiu $a0, $s0, 0x10 /* 083890 7F04ED60 01EAC821 */ addu $t9, $t7, $t2 /* 083894 7F04ED64 93260000 */ lbu $a2, ($t9) /* 083898 7F04ED68 AFAB0010 */ sw $t3, 0x10($sp) /* 08389C 7F04ED6C 8E0C0040 */ lw $t4, 0x40($s0) /* 0838A0 7F04ED70 AFA90018 */ sw $t1, 0x18($sp) /* 0838A4 7F04ED74 0FC28423 */ jal explosionCreateBulletImpact /* 0838A8 7F04ED78 AFAC0014 */ sw $t4, 0x14($sp) /* 0838AC 7F04ED7C 8FAE0070 */ lw $t6, 0x70($sp) /* 0838B0 7F04ED80 8DC40018 */ lw $a0, 0x18($t6) .L7F04ED84: /* 0838B4 7F04ED84 0FC177E1 */ jal bondwalkItemGetDestructionAmount /* 0838B8 7F04ED88 00000000 */ nop /* 0838BC 7F04ED8C 92220003 */ lbu $v0, 3($s1) /* 0838C0 7F04ED90 2401000D */ li $at, 13 /* 0838C4 7F04ED94 46000086 */ mov.s $f2, $f0 /* 0838C8 7F04ED98 14410005 */ bne $v0, $at, .L7F04EDB0 /* 0838CC 7F04ED9C 3C018003 */ lui $at, %hi(F_80030B24) /* 0838D0 7F04EDA0 C4300B24 */ lwc1 $f16, %lo(F_80030B24)($at) /* 0838D4 7F04EDA4 46100082 */ mul.s $f2, $f0, $f16 /* 0838D8 7F04EDA8 1000001B */ b .L7F04EE18 /* 0838DC 7F04EDAC 00000000 */ nop .L7F04EDB0: /* 0838E0 7F04EDB0 24010006 */ li $at, 6 /* 0838E4 7F04EDB4 14410018 */ bne $v0, $at, .L7F04EE18 /* 0838E8 7F04EDB8 00000000 */ nop /* 0838EC 7F04EDBC 8E2D0014 */ lw $t5, 0x14($s1) /* 0838F0 7F04EDC0 3C188004 */ lui $t8, %hi(skeleton_cctv) /* 0838F4 7F04EDC4 2718A05C */ addiu $t8, %lo(skeleton_cctv) # addiu $t8, $t8, -0x5fa4 /* 0838F8 7F04EDC8 8DA30008 */ lw $v1, 8($t5) /* 0838FC 7F04EDCC 8C6F0004 */ lw $t7, 4($v1) /* 083900 7F04EDD0 170F000D */ bne $t8, $t7, .L7F04EE08 /* 083904 7F04EDD4 00000000 */ nop /* 083908 7F04EDD8 8C6B0008 */ lw $t3, 8($v1) /* 08390C 7F04EDDC 8E190044 */ lw $t9, 0x44($s0) /* 083910 7F04EDE0 3C0142C8 */ li $at, 0x42C80000 # 100.000000 /* 083914 7F04EDE4 8D6C0004 */ lw $t4, 4($t3) /* 083918 7F04EDE8 172C0007 */ bne $t9, $t4, .L7F04EE08 /* 08391C 7F04EDEC 00000000 */ nop /* 083920 7F04EDF0 44812000 */ mtc1 $at, $f4 /* 083924 7F04EDF4 02202025 */ move $a0, $s1 /* 083928 7F04EDF8 46041082 */ mul.s $f2, $f2, $f4 /* 08392C 7F04EDFC 0FC13786 */ jal sub_GAME_7F04DE18 /* 083930 7F04EE00 E7A20044 */ swc1 $f2, 0x44($sp) /* 083934 7F04EE04 C7A20044 */ lwc1 $f2, 0x44($sp) .L7F04EE08: /* 083938 7F04EE08 3C018003 */ lui $at, %hi(F_80030B18) /* 08393C 7F04EE0C C4280B18 */ lwc1 $f8, %lo(F_80030B18)($at) /* 083940 7F04EE10 46081082 */ mul.s $f2, $f2, $f8 /* 083944 7F04EE14 00000000 */ nop .L7F04EE18: /* 083948 7F04EE18 0FC26C54 */ jal get_cur_playernum /* 08394C 7F04EE1C E7A20044 */ swc1 $f2, 0x44($sp) /* 083950 7F04EE20 C7A20044 */ lwc1 $f2, 0x44($sp) /* 083954 7F04EE24 8FAE0070 */ lw $t6, 0x70($sp) /* 083958 7F04EE28 02202025 */ move $a0, $s1 /* 08395C 7F04EE2C 44051000 */ mfc1 $a1, $f2 /* 083960 7F04EE30 8DC70018 */ lw $a3, 0x18($t6) /* 083964 7F04EE34 AFA20010 */ sw $v0, 0x10($sp) /* 083968 7F04EE38 0FC13833 */ jal chrobjMaybeDetonateObjectIfFlags /* 08396C 7F04EE3C 27A60060 */ addiu $a2, $sp, 0x60 /* 083970 7F04EE40 8E380014 */ lw $t8, 0x14($s1) /* 083974 7F04EE44 3C0D8004 */ lui $t5, %hi(skeleton_door) /* 083978 7F04EE48 25ADA1DC */ addiu $t5, %lo(skeleton_door) # addiu $t5, $t5, -0x5e24 /* 08397C 7F04EE4C 8F0F0008 */ lw $t7, 8($t8) /* 083980 7F04EE50 8DEB0004 */ lw $t3, 4($t7) /* 083984 7F04EE54 15AB000D */ bne $t5, $t3, .L7F04EE8C /* 083988 7F04EE58 00000000 */ nop /* 08398C 7F04EE5C 8E19004C */ lw $t9, 0x4c($s0) /* 083990 7F04EE60 1720000A */ bnez $t9, .L7F04EE8C /* 083994 7F04EE64 00000000 */ nop /* 083998 7F04EE68 822C00BD */ lb $t4, 0xbd($s1) /* 08399C 7F04EE6C 258E0001 */ addiu $t6, $t4, 1 /* 0839A0 7F04EE70 A22E00BD */ sb $t6, 0xbd($s1) /* 0839A4 7F04EE74 823800BD */ lb $t8, 0xbd($s1) /* 0839A8 7F04EE78 2B010003 */ slti $at, $t8, 3 /* 0839AC 7F04EE7C 14200003 */ bnez $at, .L7F04EE8C /* 0839B0 7F04EE80 00000000 */ nop /* 0839B4 7F04EE84 0FC1375A */ jal sub_GAME_7F04DD68 /* 0839B8 7F04EE88 02202025 */ move $a0, $s1 .L7F04EE8C: /* 0839BC 7F04EE8C 0FC11080 */ jal objDropRecursively /* 0839C0 7F04EE90 8E040004 */ lw $a0, 4($s0) /* 0839C4 7F04EE94 00008025 */ move $s0, $zero /* 0839C8 7F04EE98 0FC13803 */ jal objIsCollectable /* 0839CC 7F04EE9C 02202025 */ move $a0, $s1 /* 0839D0 7F04EEA0 50400008 */ beql $v0, $zero, .L7F04EEC4 /* 0839D4 7F04EEA4 8E2B0008 */ lw $t3, 8($s1) /* 0839D8 7F04EEA8 8E2F0008 */ lw $t7, 8($s1) /* 0839DC 7F04EEAC 000F6A40 */ sll $t5, $t7, 9 /* 0839E0 7F04EEB0 05A20009 */ bltzl $t5, .L7F04EED8 /* 0839E4 7F04EEB4 8E2C000C */ lw $t4, 0xc($s1) /* 0839E8 7F04EEB8 10000006 */ b .L7F04EED4 /* 0839EC 7F04EEBC 24100001 */ li $s0, 1 /* 0839F0 7F04EEC0 8E2B0008 */ lw $t3, 8($s1) .L7F04EEC4: /* 0839F4 7F04EEC4 000BCA80 */ sll $t9, $t3, 0xa /* 0839F8 7F04EEC8 07230003 */ bgezl $t9, .L7F04EED8 /* 0839FC 7F04EECC 8E2C000C */ lw $t4, 0xc($s1) /* 083A00 7F04EED0 24100001 */ li $s0, 1 .L7F04EED4: /* 083A04 7F04EED4 8E2C000C */ lw $t4, 0xc($s1) .L7F04EED8: /* 083A08 7F04EED8 318E0002 */ andi $t6, $t4, 2 /* 083A0C 7F04EEDC 51C00007 */ beql $t6, $zero, .L7F04EEFC /* 083A10 7F04EEE0 8E38000C */ lw $t8, 0xc($s1) /* 083A14 7F04EEE4 0FC13BCD */ jal objIsHealthy /* 083A18 7F04EEE8 02202025 */ move $a0, $s1 /* 083A1C 7F04EEEC 54400003 */ bnezl $v0, .L7F04EEFC /* 083A20 7F04EEF0 8E38000C */ lw $t8, 0xc($s1) /* 083A24 7F04EEF4 24100001 */ li $s0, 1 /* 083A28 7F04EEF8 8E38000C */ lw $t8, 0xc($s1) .L7F04EEFC: /* 083A2C 7F04EEFC 8FA50070 */ lw $a1, 0x70($sp) /* 083A30 7F04EF00 330F0400 */ andi $t7, $t8, 0x400 /* 083A34 7F04EF04 11E00002 */ beqz $t7, .L7F04EF10 /* 083A38 7F04EF08 24A5000C */ addiu $a1, $a1, 0xc /* 083A3C 7F04EF0C 00008025 */ move $s0, $zero .L7F04EF10: /* 083A40 7F04EF10 52000004 */ beql $s0, $zero, .L7F04EF24 /* 083A44 7F04EF14 8FBF002C */ lw $ra, 0x2c($sp) /* 083A48 7F04EF18 0FC12F37 */ jal objBounce /* 083A4C 7F04EF1C 02202025 */ move $a0, $s1 /* 083A50 7F04EF20 8FBF002C */ lw $ra, 0x2c($sp) .L7F04EF24: /* 083A54 7F04EF24 8FB00024 */ lw $s0, 0x24($sp) /* 083A58 7F04EF28 8FB10028 */ lw $s1, 0x28($sp) /* 083A5C 7F04EF2C 03E00008 */ jr $ra /* 083A60 7F04EF30 27BD0070 */ addiu $sp, $sp, 0x70 ) #endif bool objIsHealthy(ObjectRecord *self) //#MATCH { return objGetDestroyedLevel(self) == 0; } bool objTestForInteract(PropRecord* prop) { f32 xdiff; ObjectRecord *obj; PropRecord *player; f32 var_f2; f32 ydiff; f32 zdiff; f32 var_f0; f32 anglediff; f32 playerangle; f32 sp30; StandTile *stan; f32 xzdiff; f32 angle; obj = prop->obj; if (((obj->type == PROP_TYPE_PLAYER) || (obj->flags & PROPFLAG_00080000) || (obj->runtime_bitflags & (RUNTIMEBITFLAG_00000001 | RUNTIMEBITFLAG_00000002 | RUNTIMEBITFLAG_TAGGED)))) { if ((prop->flags & PROPFLAG_ONSCREEN) && (objIsHealthy(obj) != 0) && !(obj->flags & PROPFLAG_CANNOT_ACTIVATE)) { player = get_curplayer_positiondata(); xdiff = obj->runtime_pos.x - player->pos.x; ydiff = obj->runtime_pos.y - player->pos.y; zdiff = obj->runtime_pos.z - player->pos.z; stan = player->stan; if ((obj->type == 0x28) && (obj->flags & PROPFLAG_DOOR_OPENTOFRONT)) { var_f0 = 400.0f; var_f2 = 160000.0f; sp30 = 2.0943952f; } else { var_f0 = 200.0f; var_f2 = 40000.0f; sp30 = 0.3926991f; } xzdiff = ((xdiff * xdiff) + (zdiff * zdiff)); if ((xzdiff < var_f2) && (ydiff < var_f0) && (-var_f0 < ydiff)) { angle = atan2f(xdiff, zdiff); playerangle = get_curplay_horizontal_rotation_in_degrees(); anglediff = angle - playerangle; if (angle < playerangle) { anglediff += M_TAU_F; } if (anglediff > M_PI_F) { anglediff = M_TAU_F - anglediff; } if (anglediff <= sp30) { if (!(obj->flags2 & PROPFLAG2_INTERACTCHECKLOS) || (walkTilesBetweenPoints_NoCallback(&stan, player->pos.x, player->pos.z, prop->pos.x, prop->pos.z) != 0)) { g_InteractProp = prop; } } } } } return TRUE; } /* * Return TYPE if Collected or Interacted (except for Alarm which always returns False) */ INV_ITEM_TYPE propobjInteract(PropRecord *prop) //#MATCH { ObjectRecord *obj = prop->obj; INV_ITEM_TYPE colllected = INV_ITEM_NONE; if (obj->type == PROPDEF_ALARM) { sndPlaySfx(g_musicSfxBufferPtr, 0xBA, 0); if (alarmIsActive()) { alarmDeactivate(); } else { alarmActivate(); } } if (obj->flags & PROPFLAG_00080000) { colllected = collect_or_interact_object(prop, TRUE); } obj->runtime_bitflags |= RUNTIMEBITFLAG_ACTIVATED; sub_GAME_7F03E6A0(prop); return colllected; } void sub_GAME_7F04F218(PropRecord* prop, s32 arg1) { ChrRecord* chr; chr = prop->chr; if (arg1 != 0) { chr->accuracyrating = (u8) chr->accuracyrating & 0xFFDF; } else { chr->accuracyrating = (u8) chr->accuracyrating | 0x20; } } void sub_GAME_7F04F244(PropRecord* prop, rect4f** arg1, s32* arg2, f32* arg3, f32* arg4) { ObjectRecord* obj; obj = prop->obj; if ((obj->ptr_allocated_collisiondata_block != NULL) && (obj->flags & PROPFLAG_00000100) && !(obj->state & PROPSTATE_20)) { *arg2 = obj->ptr_allocated_collisiondata_block->unk00; *arg1 = &obj->ptr_allocated_collisiondata_block->unk04; *arg4 = obj->ptr_allocated_collisiondata_block->unk48; *arg3 = obj->ptr_allocated_collisiondata_block->unk44; return; } *arg2 = 0; } void append_text_picked_up(u8 *buffer,u8 * param2,u8 * param3) { u8 *str; str = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_00_PICKEDUP)); //Picked up strcat(buffer,str); return; } void append_text_ammo_amount_word(u8 *buffer, AMMOTYPE ammotype,u32 amount) { u8 *textfiletext; switch(ammotype) { case AMMO_9MM: case AMMO_9MM_2: case AMMO_RIFLE: case AMMO_PLASTIQUE: textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_01_SOME)); //some strcat(buffer,textfiletext); break; case AMMO_SHOTGUN: case AMMO_GRENADE: case AMMO_ROCKETS: case AMMO_REMOTEMINE: case AMMO_PROXMINE: case AMMO_TIMEDMINE: case AMMO_KNIFE: case AMMO_GRENADEROUND: case AMMO_MAGNUM: case AMMO_GGUN: case AMMO_DARTS: case AMMO_FLARE: case AMMO_PITON: case AMMO_DYNAMITE: case AMMO_BUG: case AMMO_MICRO_CAMERA: if (amount == 1) { textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_02_A)); //a strcat(buffer,textfiletext); } else { textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_01_SOME)); //some strcat(buffer,textfiletext); } break; case AMMO_EXPLOSIVEPEN: case AMMO_BOMBCASE: if (amount == 1) { textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_03_AN)); //an strcat(buffer,textfiletext); } else { textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_01_SOME)); //some strcat(buffer,textfiletext); } break; case AMMO_GEKEY: case AMMO_TOKEN: if (amount == 1) { textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_04_THE)); //the strcat(buffer,textfiletext); } else { textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_01_SOME)); //some strcat(buffer,textfiletext); } } return; } void apped_text_ammotype(u8 *buffer, AMMOTYPE ammotype, s32 amount) { u8 *textfiletext; if (((ammotype == AMMO_9MM) || (ammotype == AMMO_9MM_2)) || (ammotype == AMMO_RIFLE)) { textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_05_AMMO)); //ammo strcat(buffer,textfiletext); } else { if (ammotype == AMMO_KNIFE) { textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_0F_THROWING)); //throwing strcat(buffer,textfiletext); if (amount == 1) { textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_10_KNIFE)); //knife strcat(buffer,textfiletext); } else { textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_11_KNIVES)); //knives strcat(buffer,textfiletext); } } else { if (ammotype == AMMO_DYNAMITE) { if (amount == 1) { textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_19_STICK)); //stick strcat(buffer,textfiletext); } else { textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_1A_STICKS)); //sticks strcat(buffer,textfiletext); } textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_18_OFDYNAMITE)); //of dynamite strcat(buffer,textfiletext); } else { switch(ammotype) { case AMMO_SHOTGUN: textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_06_SHOTGUNCARTRIDGE)); //shotgun cartridge strcat(buffer,textfiletext); break; case AMMO_MAGNUM: textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_07_MAGNUMBULLET)); //magnum bullet strcat(buffer,textfiletext); break; case AMMO_GGUN: textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_08_GOLDENBULLET)); //golden bullet strcat(buffer,textfiletext); break; case AMMO_GRENADE: textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_09_HANDGRENADE)); //hand grenade strcat(buffer,textfiletext); break; case AMMO_GRENADEROUND: textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_0A_GRENADEROUND)); //grenade round strcat(buffer,textfiletext); break; case AMMO_ROCKETS: textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_0B_ROCKET)); //rocket strcat(buffer,textfiletext); break; case AMMO_REMOTEMINE: textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_0C_REMOTEMINE)); //remote mine strcat(buffer,textfiletext); break; case AMMO_PROXMINE: textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_0D_PROXIMITYMINE)); //proximity mine strcat(buffer,textfiletext); break; case AMMO_TIMEDMINE: textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_0E_TIMEDMINE)); //timed mine strcat(buffer,textfiletext); break; case AMMO_DARTS: textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_13_DART)); //dart strcat(buffer,textfiletext); break; case AMMO_EXPLOSIVEPEN: textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_14_EXPLOSIVEPEN)); //explosive pen strcat(buffer,textfiletext); break; case AMMO_BOMBCASE: textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_15_EXPLOSIVECASE)); //explosive case strcat(buffer,textfiletext); break; case AMMO_FLARE: textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_16_FLARE)); //flare strcat(buffer,textfiletext); break; case AMMO_PITON: textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_17_PITON)); //piton strcat(buffer,textfiletext); break; case AMMO_BUG: textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_1B_BUG)); //bug strcat(buffer,textfiletext); break; case AMMO_MICRO_CAMERA: textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_1C_MICROCAMERA)); //micro camera strcat(buffer,textfiletext); break; case AMMO_GEKEY: textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_1D_GOLDENEYEKEY)); //GoldenEye key strcat(buffer,textfiletext); break; case AMMO_TOKEN: textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_1E_TOKEN)); //token strcat(buffer,textfiletext); break; case AMMO_PLASTIQUE: textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_1F_PLASTIQUE)); //plastique strcat(buffer,textfiletext); break; } if (1 < amount) { textfiletext = langGet(getStringID(LPROPOBJ,PROPOBJ_STR_12_S)); //s strcat(buffer,textfiletext); } } } } } void set_sound_effect_for_ammo_collection(AMMOTYPE ammotype) { switch(ammotype) { case AMMO_9MM: case AMMO_9MM_2: case AMMO_RIFLE: case AMMO_SHOTGUN: case AMMO_GRENADE: case AMMO_ROCKETS: case AMMO_GRENADEROUND: case AMMO_MAGNUM: case AMMO_GGUN: case AMMO_DARTS: case AMMO_EXPLOSIVEPEN: case AMMO_FLARE: case AMMO_PITON: case AMMO_DYNAMITE: case AMMO_GEKEY: case AMMO_TOKEN: sndPlaySfx(g_musicSfxBufferPtr,PICKUP_AMMO_SFX,0); break; case AMMO_REMOTEMINE: case AMMO_PROXMINE: case AMMO_TIMEDMINE: case AMMO_BOMBCASE: case AMMO_BUG: case AMMO_MICRO_CAMERA: case AMMO_PLASTIQUE: sndPlaySfx(g_musicSfxBufferPtr,PICKUP_MINE_SFX,0); break; case AMMO_KNIFE: sndPlaySfx(g_musicSfxBufferPtr,PICKUP_KNIFE_SFX,0); } } void set_sound_effect_for_weapontype_collection(ITEM_IDS weapontype) { if ((weapontype == ITEM_KNIFE) || (weapontype == ITEM_THROWKNIFE)) { sndPlaySfx(g_musicSfxBufferPtr,PICKUP_KNIFE_SFX,0); } else { if ((weapontype == ITEM_REMOTEMINE) || (weapontype == ITEM_PROXIMITYMINE) || (weapontype == ITEM_TIMEDMINE) || (weapontype == ITEM_BOMBCASE) || (weapontype == ITEM_BUG) || (weapontype == ITEM_MICROCAMERA) || (weapontype == ITEM_PLASTIQUE)) { sndPlaySfx(g_musicSfxBufferPtr,PICKUP_MINE_SFX,0); } else { if ((weapontype == ITEM_GRENADE) || (weapontype == ITEM_NULL87) || (weapontype == ITEM_NULL86)) { sndPlaySfx(g_musicSfxBufferPtr,PICKUP_AMMO_SFX,0); } else { if (weapontype == ITEM_LASER) { sndPlaySfx(g_musicSfxBufferPtr,PICKUP_LASER_SFX,0); } else { sndPlaySfx(g_musicSfxBufferPtr,PICKUP_GUN_SFX,0); } } } } } //!FIXME, i need to be properly split from chrai.c void prepare_ammo_type_collection_text(u8 *finaltext, AMMOTYPE ammotype, u32 quantity) { *finaltext = 0; if (j_text_trigger != 0) { apped_text_ammotype(finaltext,ammotype,quantity); if (getPlayerCount() < 3) { append_text_picked_up(finaltext, ammotype, quantity); } strcat(finaltext, "\n"); return; } if (getPlayerCount() < 3) { append_text_picked_up(finaltext, ammotype, quantity); append_text_ammo_amount_word(finaltext, ammotype, quantity); } apped_text_ammotype(finaltext, ammotype, quantity); strcat(finaltext, ".\n"); } void display_text_when_ammo_collected(s32 ammotype, s32 quantity) { char buffer[100] = ""; prepare_ammo_type_collection_text(buffer, ammotype, quantity); #ifdef VERSION_US hudmsgBottomShow(buffer); #else jp_hudmsgBottomShow(buffer); #endif } void add_ammo_to_inventory(AMMOTYPE ammotype,int amount,int doplaysound,int dodisplaytext) { int curammo; int maxammo; if (0 < amount) { curammo = check_cur_player_ammo_amount_in_inventory(ammotype); maxammo = get_max_ammo_for_type(ammotype); if (curammo < maxammo) { curammo = check_cur_player_ammo_amount_in_inventory(ammotype); give_cur_player_ammo(ammotype,curammo + amount); #if defined(BUGFIX_R1) } #endif if (dodisplaytext != 0) { display_text_when_ammo_collected(ammotype,amount); } if (doplaysound != 0) { set_sound_effect_for_ammo_collection(ammotype); } if (ammotype == AMMO_GRENADE) { bondinvAddInvItem(ITEM_GRENADE); } else if (ammotype == AMMO_REMOTEMINE) { bondinvAddInvItem(ITEM_REMOTEMINE); bondinvAddInvItem(ITEM_TRIGGER); } else if (ammotype == AMMO_PROXMINE) { bondinvAddInvItem(ITEM_PROXIMITYMINE); } else if (ammotype == AMMO_TIMEDMINE) { bondinvAddInvItem(ITEM_TIMEDMINE); } else if (ammotype == AMMO_KNIFE) { bondinvAddInvItem(ITEM_THROWKNIFE); } else if (ammotype == AMMO_BOMBCASE) { bondinvAddInvItem(ITEM_BOMBCASE); } else if (ammotype == AMMO_BUG) { bondinvAddInvItem(ITEM_BUG); } else if (ammotype == AMMO_MICRO_CAMERA) { bondinvAddInvItem(ITEM_MICROCAMERA); } else if (ammotype == AMMO_GEKEY) { bondinvAddInvItem(ITEM_GOLDENEYEKEY); } else if (ammotype == AMMO_TOKEN) { bondinvAddInvItem(ITEM_TOKEN); } else if (ammotype == AMMO_PLASTIQUE) { bondinvAddInvItem(ITEM_PLASTIQUE); } #if !defined(BUGFIX_R1) } #endif } } s32 get_ammo_in_magazine(AmmoCrateRecord *crate) { s32 qty = 1; switch (crate->ammoType) { case AMMO_9MM: qty = 10; break; case AMMO_9MM_2: qty = 10; break; case AMMO_RIFLE: qty = 10; break; case AMMO_SHOTGUN: qty = 5; break; case AMMO_MAGNUM: qty = 5; break; case AMMO_GGUN: qty = 3; break; case AMMO_DARTS: qty = 4; break; } if (qty > 1 && getPlayerCount() == 1) { qty *= g_SoloAmmoMultiplier; } return qty; } s32 ammo_collected_from_weapon(WeaponObjRecord *weapon) { s32 ammotype; s32 qty; ammotype = get_ammo_type_for_weapon(weapon->weaponnum); qty = 1; if (weapon->flags & PROPFLAG_NO_AMMO) { return 0; } switch (ammotype) { case AMMO_9MM: qty = 10; break; case AMMO_9MM_2: qty = 10; break; case AMMO_RIFLE: qty = 10; break; case AMMO_SHOTGUN: qty = 5; break; case AMMO_MAGNUM: qty = 5; break; case AMMO_GGUN: qty = 3; break; case AMMO_DARTS: qty = 4; break; case AMMO_GRENADEROUND: qty = 3; break; } if (qty > 1 && getPlayerCount() == 1) { qty *= g_SoloAmmoMultiplier; } return qty; } void generate_language_specific_text_for_weapon(u8 *finalstring, ITEM_IDS itemtype) { u32 morethan2players; morethan2players = FALSE; if (j_text_trigger != 0) { strcpy(finalstring,""); if (2 < getPlayerCount()) { morethan2players = TRUE; } } else { if (getPlayerCount() < 3) { //Picked up strcpy(finalstring, langGet(getStringID(LPROPOBJ,PROPOBJ_STR_00_PICKEDUP))); } } switch(itemtype) { case ITEM_THROWKNIFE: case ITEM_GRENADE: case ITEM_TIMEDMINE: case ITEM_PROXIMITYMINE: case ITEM_REMOTEMINE: case ITEM_BOMBCASE: case ITEM_PLASTIQUE: case ITEM_BUG: case ITEM_MICROCAMERA: case ITEM_GOLDENEYEKEY: case ITEM_NULL86: case ITEM_NULL87: case ITEM_TOKEN: prepare_ammo_type_collection_text(finalstring,get_ammo_type_for_weapon(itemtype),1); return; case ITEM_KNIFE: //a hunting knife. strcat(finalstring, langGet(getStringID(LPROPOBJ,PROPOBJ_STR_20_AHUNTINGKNIFE))); break; case ITEM_WPPK: //a PP7. strcat(finalstring, langGet(getStringID(LPROPOBJ,PROPOBJ_STR_21_APPK))); break; case ITEM_WPPKSIL: //a silenced PP7. strcat(finalstring, langGet(getStringID(LPROPOBJ,PROPOBJ_STR_22_ASILENCEDPPK))); break; case ITEM_TT33: //a DD44 Dostovei. strcat(finalstring, langGet(getStringID(LPROPOBJ,PROPOBJ_STR_23_ATT33))); break; case ITEM_SKORPION: //a Klobb. strcat(finalstring, langGet(getStringID(LPROPOBJ,PROPOBJ_STR_24_ASPKORPION))); break; case ITEM_AK47: //a KF7 Soviet. strcat(finalstring, langGet(getStringID(LPROPOBJ,PROPOBJ_STR_25_ANAK47))); break; case ITEM_UZI: //a ZMG (9mm). strcat(finalstring, langGet(getStringID(LPROPOBJ,PROPOBJ_STR_26_ANUZI))); break; case ITEM_MP5K: //a D5K Deutsche. strcat(finalstring, langGet(getStringID(LPROPOBJ,PROPOBJ_STR_27_ANMP5K))); break; case ITEM_MP5KSIL: //a silenced D5K. strcat(finalstring, langGet(getStringID(LPROPOBJ,PROPOBJ_STR_28_ASILENCEDMP5))); break; case ITEM_SPECTRE: //a Phantom. strcat(finalstring, langGet(getStringID(LPROPOBJ,PROPOBJ_STR_29_ASPECTRE))); break; case ITEM_M16: //an AR33 assault rifle. strcat(finalstring, langGet(getStringID(LPROPOBJ,PROPOBJ_STR_2A_ANM16))); break; case ITEM_FNP90: //an RC-P90. strcat(finalstring, langGet(getStringID(LPROPOBJ,PROPOBJ_STR_2B_ANFNP90))); break; case ITEM_SHOTGUN: //a shotgun. strcat(finalstring, langGet(getStringID(LPROPOBJ,PROPOBJ_STR_2C_ASHOTGUN))); break; case ITEM_AUTOSHOT: //an automatic shotgun. strcat(finalstring, langGet(getStringID(LPROPOBJ,PROPOBJ_STR_2D_ANAUTOSHOTGUN))); break; case ITEM_SNIPERRIFLE: //a sniper rifle. strcat(finalstring, langGet(getStringID(LPROPOBJ,PROPOBJ_STR_2E_ASNIPERRIFLE))); break; case ITEM_GRENADELAUNCH: //a grenade launcher. strcat(finalstring, langGet(getStringID(LPROPOBJ,PROPOBJ_STR_2F_AGRENADELAUNCHER))); break; case ITEM_ROCKETLAUNCH: //a rocket launcher. strcat(finalstring, langGet(getStringID(LPROPOBJ,PROPOBJ_STR_30_AROCKETLAUNCHER))); break; case ITEM_RUGER: //a Cougar Magnum. strcat(finalstring, langGet(getStringID(LPROPOBJ,PROPOBJ_STR_31_ARUGERMAGNUM))); break; case ITEM_GOLDENGUN: //the Golden Gun. strcat(finalstring, langGet(getStringID(LPROPOBJ,PROPOBJ_STR_32_THEGOLDENGUN))); break; case ITEM_LASER: //a Moonraker laser. strcat(finalstring, langGet(getStringID(LPROPOBJ,PROPOBJ_STR_33_AMOOKRAKERLASER))); break; case ITEM_FLAREPISTOL: //a flare pistol. strcat(finalstring, langGet(getStringID(LPROPOBJ,PROPOBJ_STR_34_AFLAREPISTOL))); break; case ITEM_PITONGUN: //a piton gun. strcat(finalstring, langGet(getStringID(LPROPOBJ,PROPOBJ_STR_35_APITONGUN))); break; case ITEM_SILVERWPPK: //a silver PP7. strcat(finalstring, langGet(getStringID(LPROPOBJ,PROPOBJ_STR_36_ASILVERPPK))); break; case ITEM_GOLDWPPK: //a gold PP7. strcat(finalstring, langGet(getStringID(LPROPOBJ,PROPOBJ_STR_37_AGOLDPPK))); break; case ITEM_KEYCARD: //a keycard. strcat(finalstring, langGet(getStringID(LPROPOBJ,PROPOBJ_STR_38_AKEYCARD))); break; case ITEM_KEYYALE: //a yale key. strcat(finalstring, langGet(getStringID(LPROPOBJ,PROPOBJ_STR_39_AYALEKEY))); break; case ITEM_KEYBOLT: //a bolt key. strcat(finalstring, langGet(getStringID(LPROPOBJ,PROPOBJ_STR_3A_ABOLTKEY))); break; default: //a new weapon. strcat(finalstring, langGet(getStringID(LPROPOBJ,PROPOBJ_STR_3B_ANEWWEAPON))); break; } if ((j_text_trigger != 0) && (!morethan2players)) { if (finalstring[strlen(finalstring) - 1] == '\n') { finalstring[strlen(finalstring) - 1] = '\0'; } //Picked up strcat(finalstring, langGet(getStringID(LPROPOBJ,PROPOBJ_STR_00_PICKEDUP))); strcat(finalstring,"\n"); } } void display_text_for_weapon_in_lower_left_corner(ITEM_IDS weaponid) { char acStack100 [100]; generate_language_specific_text_for_weapon(acStack100,weaponid); HUDMESSAGEBOTTOM(acStack100); return; } #ifdef NONMATCHING // https://decomp.me/scratch/nJWA0 INV_ITEM_TYPE collect_or_interact_object(PropRecord *prop, bool showstring) //#50% - needs some love, but compiles and looks similar { ObjectRecord *propobj; INV_ITEM_TYPE collectType; propobj = prop->obj; if ((pPlayer->bonddead) || (!gclock_timer)) { return INV_ITEM_NONE; } switch (propobj->type) { case PROPDEF_KEY: { sndPlaySfx(g_musicSfxBufferPtr, 0xE5, 0); if (showstring) { char *text = bondinvGetActivatedTextObject(propobj); if (!text) { text = langGet(0xA43C); } hudmsgBottomShow(text); } collectType = INV_ITEM_PICKUP; break; } case PROPDEF_MAGAZINE: { AmmoCrateRecord *mag = propobj; add_ammo_to_inventory(mag->type, get_ammo_in_magazine(mag), 1, showstring); collectType = INV_ITEM_WEAPON; break; } case PROPDEF_AMMO: { MultiAmmoCrateRecord *ammo = propobj; s32 i, ammoquantity; for (i = 0; i < AMMOTYPE_GLOBAL_MAX; i++) { ammoquantity = ammo->quantities[i]; if (getPlayerCount() == 1) { ammoquantity = ammoquantity * solo_ammo_multiplier; } add_ammo_to_inventory(i, ammoquantity, 0, showstring); } sndPlaySfx(g_musicSfxBufferPtr, 0xEA, 0); collectType = INV_ITEM_WEAPON; break; } case PROPDEF_COLLECTABLE: { bool pass = 0; WeaponObjRecord *wep = propobj; char * text, *text2; int ammocollected; set_sound_effect_for_weapontype_collection(wep->weaponnum); if (wep->weaponnum == ITEM_REMOTEMINE) { bondinvAddInvItem(ITEM_TRIGGER); } else if (wep->weaponnum == ITEM_TOKEN) { currentPlayerEquipWeaponWrapper(GUNRIGHT, ITEM_TOKEN); } if ((wep->runtime_bitflags & RUNTIMEBITFLAG_DESTROYED)) { if (wep->weaponnum < ITEM_BOMBCASE) { sub_GAME_7F08C764(prop); } if (showstring) { text = bondinvGetActivatedTextObject(propobj); if (text) { hudmsgBottomShow(text); } else { display_text_for_weapon_in_lower_left_corner(wep->weaponnum); } pass = 1; } collectType = INV_ITEM_PICKUP; } else { if (sub_GAME_7F08C764(prop) != 0) { pass = 1; } if (showstring) { text2 = bondinvGetActivatedTextWeapon(wep->weaponnum); if (text2 != 0) { pass = 1; hudmsgBottomShow(text2); } else if (pass != 0) { display_text_for_weapon_in_lower_left_corner(wep->weaponnum); } } collectType = INV_ITEM_WEAPON; } text = get_ammo_type_for_weapon(wep->weaponnum); if (text != 0) { ammocollected = ammo_collected_from_weapon(wep); if (ammocollected > 0) { if (check_cur_player_ammo_amount_in_inventory(text) < get_max_ammo_for_type(text)) { give_cur_player_ammo(text, check_cur_player_ammo_amount_in_inventory(text) + ammocollected); if ((pass == 0) && showstring) { display_text_when_ammo_collected(text, ammocollected); } } } } break; } case PROPDEF_ARMOUR: { BodyArmourRecord *armour = propobj; char * text; //add_BONDdata_watch_armor(armour->initialamount); sndPlaySfx(g_musicSfxBufferPtr, 0x51, 0); if (showstring) { text = bondinvGetActivatedTextObject(armour); if (text == 0) { if (getPlayerCount() < 3) { text = langGet(0xA43D); } else { text = langGet(0xA43E); } } hudmsgBottomShow(text); } collectType = INV_ITEM_WEAPON; break; } default: { char *text; sndPlaySfx(g_musicSfxBufferPtr, 0xE5, 0); if (showstring) { text = bondinvGetActivatedTextObject(propobj); if (text == 0) { text = langGet(0xA43F); } hudmsgBottomShow(text); } collectType = INV_ITEM_PICKUP; break; } } if ((collectType == 1) && ((propobj->runtime_bitflags & 0x10) == 0)) { objFree(propobj, 0, propobj->state & 4); return INV_ITEM_WEAPON; } if (collectType != 0) { bondinvAddPropToInv(prop); return INV_ITEM_PICKUP; } return INV_ITEM_NONE; //inventory(4) or ammo(1) or nothing(0) } #else #ifdef VERSION_US GLOBAL_ASM( .late_rodata /*D:8005322C*/ glabel object_interaction_table .word interact_default_object .word interact_key_object .word interact_default_object .word interact_default_object .word interact_magazine_object .word interact_weapon_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_ammobox_object .word interact_bodyarmor_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .text glabel collect_or_interact_object /* 084D80 7F050250 27BDFF90 */ addiu $sp, $sp, -0x70 /* 084D84 7F050254 AFBF001C */ sw $ra, 0x1c($sp) /* 084D88 7F050258 AFB00018 */ sw $s0, 0x18($sp) /* 084D8C 7F05025C AFA40070 */ sw $a0, 0x70($sp) /* 084D90 7F050260 AFA50074 */ sw $a1, 0x74($sp) /* 084D94 7F050264 8C830004 */ lw $v1, 4($a0) /* 084D98 7F050268 3C0F8008 */ lui $t7, %hi(g_CurrentPlayer) /* 084D9C 7F05026C 8DEFA0B0 */ lw $t7, %lo(g_CurrentPlayer)($t7) /* 084DA0 7F050270 AFA3006C */ sw $v1, 0x6c($sp) /* 084DA4 7F050274 3C198005 */ lui $t9, %hi(g_ClockTimer) /* 084DA8 7F050278 8DF800D8 */ lw $t8, 0xd8($t7) /* 084DAC 7F05027C 17000005 */ bnez $t8, .L7F050294 /* 084DB0 7F050280 00000000 */ nop /* 084DB4 7F050284 8F398374 */ lw $t9, %lo(g_ClockTimer)($t9) /* 084DB8 7F050288 8FA8006C */ lw $t0, 0x6c($sp) /* 084DBC 7F05028C 57200004 */ bnezl $t9, .L7F0502A0 /* 084DC0 7F050290 91090003 */ lbu $t1, 3($t0) .L7F050294: /* 084DC4 7F050294 1000010C */ b .L7F0506C8 /* 084DC8 7F050298 00001025 */ move $v0, $zero /* 084DCC 7F05029C 91090003 */ lbu $t1, 3($t0) .L7F0502A0: /* 084DD0 7F0502A0 252AFFFD */ addiu $t2, $t1, -3 /* 084DD4 7F0502A4 2D41002D */ sltiu $at, $t2, 0x2d /* 084DD8 7F0502A8 102000E0 */ beqz $at, .L7F05062C /* 084DDC 7F0502AC 000A5080 */ sll $t2, $t2, 2 /* 084DE0 7F0502B0 3C018005 */ lui $at, %hi(object_interaction_table) /* 084DE4 7F0502B4 002A0821 */ addu $at, $at, $t2 /* 084DE8 7F0502B8 8C2A322C */ lw $t2, %lo(object_interaction_table)($at) /* 084DEC 7F0502BC 01400008 */ jr $t2 /* 084DF0 7F0502C0 00000000 */ nop interact_key_object: /* 084DF4 7F0502C4 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 084DF8 7F0502C8 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 084DFC 7F0502CC 240500E5 */ li $a1, 229 /* 084E00 7F0502D0 0C002382 */ jal sndPlaySfx /* 084E04 7F0502D4 00003025 */ move $a2, $zero /* 084E08 7F0502D8 8FAB0074 */ lw $t3, 0x74($sp) /* 084E0C 7F0502DC 1160000A */ beqz $t3, .L7F050308 /* 084E10 7F0502E0 00000000 */ nop /* 084E14 7F0502E4 0FC23657 */ jal bondinvGetActivatedTextObject /* 084E18 7F0502E8 8FA4006C */ lw $a0, 0x6c($sp) /* 084E1C 7F0502EC 14400004 */ bnez $v0, .L7F050300 /* 084E20 7F0502F0 00402025 */ move $a0, $v0 /* 084E24 7F0502F4 0FC30776 */ jal langGet /* 084E28 7F0502F8 3404A43C */ li $a0, 42044 /* 084E2C 7F0502FC 00402025 */ move $a0, $v0 .L7F050300: /* 084E30 7F050300 0FC228F2 */ jal hudmsgBottomShow /* 084E34 7F050304 00000000 */ nop .L7F050308: /* 084E38 7F050308 100000DA */ b .L7F050674 /* 084E3C 7F05030C 24030004 */ li $v1, 4 interact_magazine_object: /* 084E40 7F050310 00608025 */ move $s0, $v1 /* 084E44 7F050314 0FC13F0F */ jal get_ammo_in_magazine /* 084E48 7F050318 00602025 */ move $a0, $v1 /* 084E4C 7F05031C 8E040080 */ lw $a0, 0x80($s0) /* 084E50 7F050320 00402825 */ move $a1, $v0 /* 084E54 7F050324 24060001 */ li $a2, 1 /* 084E58 7F050328 0FC13E9A */ jal add_ammo_to_inventory /* 084E5C 7F05032C 8FA70074 */ lw $a3, 0x74($sp) /* 084E60 7F050330 100000D0 */ b .L7F050674 /* 084E64 7F050334 24030001 */ li $v1, 1 interact_ammobox_object: /* 084E68 7F050338 00001025 */ move $v0, $zero /* 084E6C 7F05033C 00608025 */ move $s0, $v1 /* 084E70 7F050340 24430001 */ addiu $v1, $v0, 1 .L7F050344: /* 084E74 7F050344 24010001 */ li $at, 1 /* 084E78 7F050348 14410002 */ bne $v0, $at, .L7F050354 /* 084E7C 7F05034C 00602025 */ move $a0, $v1 /* 084E80 7F050350 24040001 */ li $a0, 1 .L7F050354: /* 084E84 7F050354 96050082 */ lhu $a1, 0x82($s0) /* 084E88 7F050358 AFA4004C */ sw $a0, 0x4c($sp) /* 084E8C 7F05035C AFA30020 */ sw $v1, 0x20($sp) /* 084E90 7F050360 0FC26919 */ jal getPlayerCount /* 084E94 7F050364 AFA50050 */ sw $a1, 0x50($sp) /* 084E98 7F050368 24010001 */ li $at, 1 /* 084E9C 7F05036C 8FA30020 */ lw $v1, 0x20($sp) /* 084EA0 7F050370 8FA4004C */ lw $a0, 0x4c($sp) /* 084EA4 7F050374 14410009 */ bne $v0, $at, .L7F05039C /* 084EA8 7F050378 8FA50050 */ lw $a1, 0x50($sp) /* 084EAC 7F05037C 44852000 */ mtc1 $a1, $f4 /* 084EB0 7F050380 3C018003 */ lui $at, %hi(g_SoloAmmoMultiplier) /* 084EB4 7F050384 C4280B28 */ lwc1 $f8, %lo(g_SoloAmmoMultiplier)($at) /* 084EB8 7F050388 468021A0 */ cvt.s.w $f6, $f4 /* 084EBC 7F05038C 46083282 */ mul.s $f10, $f6, $f8 /* 084EC0 7F050390 4600540D */ trunc.w.s $f16, $f10 /* 084EC4 7F050394 44058000 */ mfc1 $a1, $f16 /* 084EC8 7F050398 00000000 */ nop .L7F05039C: /* 084ECC 7F05039C 00003025 */ move $a2, $zero /* 084ED0 7F0503A0 8FA70074 */ lw $a3, 0x74($sp) /* 084ED4 7F0503A4 0FC13E9A */ jal add_ammo_to_inventory /* 084ED8 7F0503A8 AFA30020 */ sw $v1, 0x20($sp) /* 084EDC 7F0503AC 8FA20020 */ lw $v0, 0x20($sp) /* 084EE0 7F0503B0 2401000D */ li $at, 13 /* 084EE4 7F0503B4 26100004 */ addiu $s0, $s0, 4 /* 084EE8 7F0503B8 5441FFE2 */ bnel $v0, $at, .L7F050344 /* 084EEC 7F0503BC 24430001 */ addiu $v1, $v0, 1 /* 084EF0 7F0503C0 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 084EF4 7F0503C4 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 084EF8 7F0503C8 240500EA */ li $a1, 234 /* 084EFC 7F0503CC 0C002382 */ jal sndPlaySfx /* 084F00 7F0503D0 00003025 */ move $a2, $zero /* 084F04 7F0503D4 100000A7 */ b .L7F050674 /* 084F08 7F0503D8 24030001 */ li $v1, 1 interact_weapon_object: /* 084F0C 7F0503DC AFA00044 */ sw $zero, 0x44($sp) /* 084F10 7F0503E0 80640080 */ lb $a0, 0x80($v1) /* 084F14 7F0503E4 0FC13E04 */ jal set_sound_effect_for_weapontype_collection /* 084F18 7F0503E8 AFA30048 */ sw $v1, 0x48($sp) /* 084F1C 7F0503EC 8FAD0048 */ lw $t5, 0x48($sp) /* 084F20 7F0503F0 2401001D */ li $at, 29 /* 084F24 7F0503F4 81A40080 */ lb $a0, 0x80($t5) /* 084F28 7F0503F8 54810006 */ bnel $a0, $at, .L7F050414 /* 084F2C 7F0503FC 24010058 */ li $at, 88 /* 084F30 7F050400 0FC23122 */ jal bondinvAddInvItem /* 084F34 7F050404 2404001E */ li $a0, 30 /* 084F38 7F050408 10000007 */ b .L7F050428 /* 084F3C 7F05040C 8FAE006C */ lw $t6, 0x6c($sp) /* 084F40 7F050410 24010058 */ li $at, 88 .L7F050414: /* 084F44 7F050414 14810003 */ bne $a0, $at, .L7F050424 /* 084F48 7F050418 24050058 */ li $a1, 88 /* 084F4C 7F05041C 0FC17645 */ jal currentPlayerEquipWeaponWrapper /* 084F50 7F050420 00002025 */ move $a0, $zero .L7F050424: /* 084F54 7F050424 8FAE006C */ lw $t6, 0x6c($sp) .L7F050428: /* 084F58 7F050428 8FB90048 */ lw $t9, 0x48($sp) /* 084F5C 7F05042C 8DCF0064 */ lw $t7, 0x64($t6) /* 084F60 7F050430 31F80400 */ andi $t8, $t7, 0x400 /* 084F64 7F050434 1300001B */ beqz $t8, .L7F0504A4 /* 084F68 7F050438 00000000 */ nop /* 084F6C 7F05043C 83280080 */ lb $t0, 0x80($t9) /* 084F70 7F050440 29010021 */ slti $at, $t0, 0x21 /* 084F74 7F050444 50200004 */ beql $at, $zero, .L7F050458 /* 084F78 7F050448 8FA90074 */ lw $t1, 0x74($sp) /* 084F7C 7F05044C 0FC231D9 */ jal bondinvAddWeaponByProp /* 084F80 7F050450 8FA40070 */ lw $a0, 0x70($sp) /* 084F84 7F050454 8FA90074 */ lw $t1, 0x74($sp) .L7F050458: /* 084F88 7F050458 5120000F */ beql $t1, $zero, .L7F050498 /* 084F8C 7F05045C 8FAC0048 */ lw $t4, 0x48($sp) /* 084F90 7F050460 0FC23657 */ jal bondinvGetActivatedTextObject /* 084F94 7F050464 8FA4006C */ lw $a0, 0x6c($sp) /* 084F98 7F050468 10400005 */ beqz $v0, .L7F050480 /* 084F9C 7F05046C 00402025 */ move $a0, $v0 /* 084FA0 7F050470 0FC228F2 */ jal hudmsgBottomShow /* 084FA4 7F050474 00000000 */ nop /* 084FA8 7F050478 10000005 */ b .L7F050490 /* 084FAC 7F05047C 240B0001 */ li $t3, 1 .L7F050480: /* 084FB0 7F050480 8FAA0048 */ lw $t2, 0x48($sp) /* 084FB4 7F050484 0FC14089 */ jal display_text_for_weapon_in_lower_left_corner /* 084FB8 7F050488 81440080 */ lb $a0, 0x80($t2) /* 084FBC 7F05048C 240B0001 */ li $t3, 1 .L7F050490: /* 084FC0 7F050490 AFAB0044 */ sw $t3, 0x44($sp) /* 084FC4 7F050494 8FAC0048 */ lw $t4, 0x48($sp) .L7F050498: /* 084FC8 7F050498 24030004 */ li $v1, 4 /* 084FCC 7F05049C 1000001C */ b .L7F050510 /* 084FD0 7F0504A0 81840080 */ lb $a0, 0x80($t4) .L7F0504A4: /* 084FD4 7F0504A4 0FC231D9 */ jal bondinvAddWeaponByProp /* 084FD8 7F0504A8 8FA40070 */ lw $a0, 0x70($sp) /* 084FDC 7F0504AC 10400002 */ beqz $v0, .L7F0504B8 /* 084FE0 7F0504B0 240D0001 */ li $t5, 1 /* 084FE4 7F0504B4 AFAD0044 */ sw $t5, 0x44($sp) .L7F0504B8: /* 084FE8 7F0504B8 8FAE0074 */ lw $t6, 0x74($sp) /* 084FEC 7F0504BC 8FAF0048 */ lw $t7, 0x48($sp) /* 084FF0 7F0504C0 51C00011 */ beql $t6, $zero, .L7F050508 /* 084FF4 7F0504C4 8FA90048 */ lw $t1, 0x48($sp) /* 084FF8 7F0504C8 0FC23669 */ jal bondinvGetActivatedTextWeapon /* 084FFC 7F0504CC 81E40080 */ lb $a0, 0x80($t7) /* 085000 7F0504D0 10400006 */ beqz $v0, .L7F0504EC /* 085004 7F0504D4 00402025 */ move $a0, $v0 /* 085008 7F0504D8 24180001 */ li $t8, 1 /* 08500C 7F0504DC 0FC228F2 */ jal hudmsgBottomShow /* 085010 7F0504E0 AFB80044 */ sw $t8, 0x44($sp) /* 085014 7F0504E4 10000008 */ b .L7F050508 /* 085018 7F0504E8 8FA90048 */ lw $t1, 0x48($sp) .L7F0504EC: /* 08501C 7F0504EC 8FB90044 */ lw $t9, 0x44($sp) /* 085020 7F0504F0 8FA80048 */ lw $t0, 0x48($sp) /* 085024 7F0504F4 53200004 */ beql $t9, $zero, .L7F050508 /* 085028 7F0504F8 8FA90048 */ lw $t1, 0x48($sp) /* 08502C 7F0504FC 0FC14089 */ jal display_text_for_weapon_in_lower_left_corner /* 085030 7F050500 81040080 */ lb $a0, 0x80($t0) /* 085034 7F050504 8FA90048 */ lw $t1, 0x48($sp) .L7F050508: /* 085038 7F050508 24030001 */ li $v1, 1 /* 08503C 7F05050C 81240080 */ lb $a0, 0x80($t1) .L7F050510: /* 085040 7F050510 0FC1A50B */ jal get_ammo_type_for_weapon /* 085044 7F050514 AFA30068 */ sw $v1, 0x68($sp) /* 085048 7F050518 8FA30068 */ lw $v1, 0x68($sp) /* 08504C 7F05051C 10400055 */ beqz $v0, .L7F050674 /* 085050 7F050520 00408025 */ move $s0, $v0 /* 085054 7F050524 8FA40048 */ lw $a0, 0x48($sp) /* 085058 7F050528 0FC13F3E */ jal ammo_collected_from_weapon /* 08505C 7F05052C AFA30068 */ sw $v1, 0x68($sp) /* 085060 7F050530 8FA30068 */ lw $v1, 0x68($sp) /* 085064 7F050534 1840004F */ blez $v0, .L7F050674 /* 085068 7F050538 AFA20034 */ sw $v0, 0x34($sp) /* 08506C 7F05053C 02002025 */ move $a0, $s0 /* 085070 7F050540 0FC1A490 */ jal check_cur_player_ammo_amount_in_inventory /* 085074 7F050544 AFA30068 */ sw $v1, 0x68($sp) /* 085078 7F050548 AFA20024 */ sw $v0, 0x24($sp) /* 08507C 7F05054C 0FC1A4B5 */ jal get_max_ammo_for_type /* 085080 7F050550 02002025 */ move $a0, $s0 /* 085084 7F050554 8FAA0024 */ lw $t2, 0x24($sp) /* 085088 7F050558 8FA30068 */ lw $v1, 0x68($sp) /* 08508C 7F05055C 02002025 */ move $a0, $s0 /* 085090 7F050560 0142082A */ slt $at, $t2, $v0 /* 085094 7F050564 50200044 */ beql $at, $zero, .L7F050678 /* 085098 7F050568 24010001 */ li $at, 1 /* 08509C 7F05056C 0FC1A490 */ jal check_cur_player_ammo_amount_in_inventory /* 0850A0 7F050570 AFA30068 */ sw $v1, 0x68($sp) /* 0850A4 7F050574 8FAB0034 */ lw $t3, 0x34($sp) /* 0850A8 7F050578 02002025 */ move $a0, $s0 /* 0850AC 7F05057C 0FC1A44C */ jal give_cur_player_ammo /* 0850B0 7F050580 004B2821 */ addu $a1, $v0, $t3 /* 0850B4 7F050584 8FAC0044 */ lw $t4, 0x44($sp) /* 0850B8 7F050588 8FA30068 */ lw $v1, 0x68($sp) /* 0850BC 7F05058C 8FAD0074 */ lw $t5, 0x74($sp) /* 0850C0 7F050590 55800039 */ bnezl $t4, .L7F050678 /* 0850C4 7F050594 24010001 */ li $at, 1 /* 0850C8 7F050598 11A00036 */ beqz $t5, .L7F050674 /* 0850CC 7F05059C 02002025 */ move $a0, $s0 /* 0850D0 7F0505A0 8FA50034 */ lw $a1, 0x34($sp) /* 0850D4 7F0505A4 0FC13E7E */ jal display_text_when_ammo_collected /* 0850D8 7F0505A8 AFA30068 */ sw $v1, 0x68($sp) /* 0850DC 7F0505AC 10000031 */ b .L7F050674 /* 0850E0 7F0505B0 8FA30068 */ lw $v1, 0x68($sp) interact_bodyarmor_object: /* 0850E4 7F0505B4 0FC228C3 */ jal bondviewAddCurrentPlayerArmor /* 0850E8 7F0505B8 C46C0084 */ lwc1 $f12, 0x84($v1) /* 0850EC 7F0505BC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 0850F0 7F0505C0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0850F4 7F0505C4 24050051 */ li $a1, 81 /* 0850F8 7F0505C8 0C002382 */ jal sndPlaySfx /* 0850FC 7F0505CC 00003025 */ move $a2, $zero /* 085100 7F0505D0 8FAE0074 */ lw $t6, 0x74($sp) /* 085104 7F0505D4 11C00013 */ beqz $t6, .L7F050624 /* 085108 7F0505D8 00000000 */ nop /* 08510C 7F0505DC 0FC23657 */ jal bondinvGetActivatedTextObject /* 085110 7F0505E0 8FA4006C */ lw $a0, 0x6c($sp) /* 085114 7F0505E4 1440000D */ bnez $v0, .L7F05061C /* 085118 7F0505E8 00402025 */ move $a0, $v0 /* 08511C 7F0505EC 0FC26919 */ jal getPlayerCount /* 085120 7F0505F0 00000000 */ nop /* 085124 7F0505F4 28410003 */ slti $at, $v0, 3 /* 085128 7F0505F8 10200005 */ beqz $at, .L7F050610 /* 08512C 7F0505FC 00000000 */ nop /* 085130 7F050600 0FC30776 */ jal langGet /* 085134 7F050604 3404A43D */ li $a0, 42045 /* 085138 7F050608 10000004 */ b .L7F05061C /* 08513C 7F05060C 00402025 */ move $a0, $v0 .L7F050610: /* 085140 7F050610 0FC30776 */ jal langGet /* 085144 7F050614 3404A43E */ li $a0, 42046 /* 085148 7F050618 00402025 */ move $a0, $v0 .L7F05061C: /* 08514C 7F05061C 0FC228F2 */ jal hudmsgBottomShow /* 085150 7F050620 00000000 */ nop .L7F050624: /* 085154 7F050624 10000013 */ b .L7F050674 /* 085158 7F050628 24030001 */ li $v1, 1 interact_default_object: .L7F05062C: /* 08515C 7F05062C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 085160 7F050630 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 085164 7F050634 240500E5 */ li $a1, 229 /* 085168 7F050638 0C002382 */ jal sndPlaySfx /* 08516C 7F05063C 00003025 */ move $a2, $zero /* 085170 7F050640 8FAF0074 */ lw $t7, 0x74($sp) /* 085174 7F050644 51E0000B */ beql $t7, $zero, .L7F050674 /* 085178 7F050648 24030004 */ li $v1, 4 /* 08517C 7F05064C 0FC23657 */ jal bondinvGetActivatedTextObject /* 085180 7F050650 8FA4006C */ lw $a0, 0x6c($sp) /* 085184 7F050654 14400004 */ bnez $v0, .L7F050668 /* 085188 7F050658 00402025 */ move $a0, $v0 /* 08518C 7F05065C 0FC30776 */ jal langGet /* 085190 7F050660 3404A43F */ li $a0, 42047 /* 085194 7F050664 00402025 */ move $a0, $v0 .L7F050668: /* 085198 7F050668 0FC228F2 */ jal hudmsgBottomShow /* 08519C 7F05066C 00000000 */ nop /* 0851A0 7F050670 24030004 */ li $v1, 4 .L7F050674: /* 0851A4 7F050674 24010001 */ li $at, 1 .L7F050678: /* 0851A8 7F050678 1461000D */ bne $v1, $at, .L7F0506B0 /* 0851AC 7F05067C 8FB8006C */ lw $t8, 0x6c($sp) /* 0851B0 7F050680 8F190064 */ lw $t9, 0x64($t8) /* 0851B4 7F050684 33280010 */ andi $t0, $t9, 0x10 /* 0851B8 7F050688 15000009 */ bnez $t0, .L7F0506B0 /* 0851BC 7F05068C 00000000 */ nop /* 0851C0 7F050690 93060002 */ lbu $a2, 2($t8) /* 0851C4 7F050694 03002025 */ move $a0, $t8 /* 0851C8 7F050698 00002825 */ move $a1, $zero /* 0851CC 7F05069C 30C90004 */ andi $t1, $a2, 4 /* 0851D0 7F0506A0 0FC10366 */ jal objFree /* 0851D4 7F0506A4 01203025 */ move $a2, $t1 /* 0851D8 7F0506A8 10000007 */ b .L7F0506C8 /* 0851DC 7F0506AC 24020001 */ li $v0, 1 .L7F0506B0: /* 0851E0 7F0506B0 10600005 */ beqz $v1, .L7F0506C8 /* 0851E4 7F0506B4 00001025 */ move $v0, $zero /* 0851E8 7F0506B8 0FC231C9 */ jal bondinvAddPropToInv /* 0851EC 7F0506BC 8FA40070 */ lw $a0, 0x70($sp) /* 0851F0 7F0506C0 10000001 */ b .L7F0506C8 /* 0851F4 7F0506C4 24020004 */ li $v0, 4 .L7F0506C8: /* 0851F8 7F0506C8 8FBF001C */ lw $ra, 0x1c($sp) /* 0851FC 7F0506CC 8FB00018 */ lw $s0, 0x18($sp) /* 085200 7F0506D0 27BD0070 */ addiu $sp, $sp, 0x70 /* 085204 7F0506D4 03E00008 */ jr $ra /* 085208 7F0506D8 00000000 */ nop ) #endif #ifdef VERSION_JP GLOBAL_ASM( .late_rodata /*D:8005322C*/ glabel object_interaction_table .word interact_default_object .word interact_key_object .word interact_default_object .word interact_default_object .word interact_magazine_object .word interact_weapon_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_ammobox_object .word interact_bodyarmor_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .text glabel collect_or_interact_object /* 084D80 7F050250 27BDFF90 */ addiu $sp, $sp, -0x70 /* 084D84 7F050254 AFBF001C */ sw $ra, 0x1c($sp) /* 084D88 7F050258 AFB00018 */ sw $s0, 0x18($sp) /* 084D8C 7F05025C AFA40070 */ sw $a0, 0x70($sp) /* 084D90 7F050260 AFA50074 */ sw $a1, 0x74($sp) /* 084D94 7F050264 8C830004 */ lw $v1, 4($a0) /* 084D98 7F050268 3C0F8008 */ lui $t7, %hi(g_CurrentPlayer) /* 084D9C 7F05026C 8DEFA0B0 */ lw $t7, %lo(g_CurrentPlayer)($t7) /* 084DA0 7F050270 AFA3006C */ sw $v1, 0x6c($sp) /* 084DA4 7F050274 3C198005 */ lui $t9, %hi(g_ClockTimer) /* 084DA8 7F050278 8DF800D8 */ lw $t8, 0xd8($t7) /* 084DAC 7F05027C 17000005 */ bnez $t8, .L7F050294 /* 084DB0 7F050280 00000000 */ nop /* 084DB4 7F050284 8F398374 */ lw $t9, %lo(g_ClockTimer)($t9) /* 084DB8 7F050288 8FA8006C */ lw $t0, 0x6c($sp) /* 084DBC 7F05028C 57200004 */ bnezl $t9, .L7F0502A0 /* 084DC0 7F050290 91090003 */ lbu $t1, 3($t0) .L7F050294: /* 084DC4 7F050294 1000010C */ b .L7F0506C8 /* 084DC8 7F050298 00001025 */ move $v0, $zero /* 084DCC 7F05029C 91090003 */ lbu $t1, 3($t0) .L7F0502A0: /* 084DD0 7F0502A0 252AFFFD */ addiu $t2, $t1, -3 /* 084DD4 7F0502A4 2D41002D */ sltiu $at, $t2, 0x2d /* 084DD8 7F0502A8 102000E0 */ beqz $at, .L7F05062C /* 084DDC 7F0502AC 000A5080 */ sll $t2, $t2, 2 /* 084DE0 7F0502B0 3C018005 */ lui $at, %hi(object_interaction_table) /* 084DE4 7F0502B4 002A0821 */ addu $at, $at, $t2 /* 084DE8 7F0502B8 8C2A322C */ lw $t2, %lo(object_interaction_table)($at) /* 084DEC 7F0502BC 01400008 */ jr $t2 /* 084DF0 7F0502C0 00000000 */ nop interact_key_object: /* 084DF4 7F0502C4 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 084DF8 7F0502C8 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 084DFC 7F0502CC 240500E5 */ li $a1, 229 /* 084E00 7F0502D0 0C002382 */ jal sndPlaySfx /* 084E04 7F0502D4 00003025 */ move $a2, $zero /* 084E08 7F0502D8 8FAB0074 */ lw $t3, 0x74($sp) /* 084E0C 7F0502DC 1160000A */ beqz $t3, .L7F050308 /* 084E10 7F0502E0 00000000 */ nop /* 084E14 7F0502E4 0FC23657 */ jal bondinvGetActivatedTextObject /* 084E18 7F0502E8 8FA4006C */ lw $a0, 0x6c($sp) /* 084E1C 7F0502EC 14400004 */ bnez $v0, .L7F050300 /* 084E20 7F0502F0 00402025 */ move $a0, $v0 /* 084E24 7F0502F4 0FC30776 */ jal langGet /* 084E28 7F0502F8 3404A43C */ li $a0, 42044 /* 084E2C 7F0502FC 00402025 */ move $a0, $v0 .L7F050300: /* 084E30 7F050300 0FC228F2 */ jal jp_hudmsgBottomShow /* 084E34 7F050304 00000000 */ nop .L7F050308: /* 084E38 7F050308 100000DA */ b .L7F050674 /* 084E3C 7F05030C 24030004 */ li $v1, 4 interact_magazine_object: /* 084E40 7F050310 00608025 */ move $s0, $v1 /* 084E44 7F050314 0FC13F0F */ jal get_ammo_in_magazine /* 084E48 7F050318 00602025 */ move $a0, $v1 /* 084E4C 7F05031C 8E040080 */ lw $a0, 0x80($s0) /* 084E50 7F050320 00402825 */ move $a1, $v0 /* 084E54 7F050324 24060001 */ li $a2, 1 /* 084E58 7F050328 0FC13E9A */ jal add_ammo_to_inventory /* 084E5C 7F05032C 8FA70074 */ lw $a3, 0x74($sp) /* 084E60 7F050330 100000D0 */ b .L7F050674 /* 084E64 7F050334 24030001 */ li $v1, 1 interact_ammobox_object: /* 084E68 7F050338 00001025 */ move $v0, $zero /* 084E6C 7F05033C 00608025 */ move $s0, $v1 /* 084E70 7F050340 24430001 */ addiu $v1, $v0, 1 .L7F050344: /* 084E74 7F050344 24010001 */ li $at, 1 /* 084E78 7F050348 14410002 */ bne $v0, $at, .L7F050354 /* 084E7C 7F05034C 00602025 */ move $a0, $v1 /* 084E80 7F050350 24040001 */ li $a0, 1 .L7F050354: /* 084E84 7F050354 96050082 */ lhu $a1, 0x82($s0) /* 084E88 7F050358 AFA4004C */ sw $a0, 0x4c($sp) /* 084E8C 7F05035C AFA30020 */ sw $v1, 0x20($sp) /* 084E90 7F050360 0FC26919 */ jal getPlayerCount /* 084E94 7F050364 AFA50050 */ sw $a1, 0x50($sp) /* 084E98 7F050368 24010001 */ li $at, 1 /* 084E9C 7F05036C 8FA30020 */ lw $v1, 0x20($sp) /* 084EA0 7F050370 8FA4004C */ lw $a0, 0x4c($sp) /* 084EA4 7F050374 14410009 */ bne $v0, $at, .L7F05039C /* 084EA8 7F050378 8FA50050 */ lw $a1, 0x50($sp) /* 084EAC 7F05037C 44852000 */ mtc1 $a1, $f4 /* 084EB0 7F050380 3C018003 */ lui $at, %hi(g_SoloAmmoMultiplier) /* 084EB4 7F050384 C4280B28 */ lwc1 $f8, %lo(g_SoloAmmoMultiplier)($at) /* 084EB8 7F050388 468021A0 */ cvt.s.w $f6, $f4 /* 084EBC 7F05038C 46083282 */ mul.s $f10, $f6, $f8 /* 084EC0 7F050390 4600540D */ trunc.w.s $f16, $f10 /* 084EC4 7F050394 44058000 */ mfc1 $a1, $f16 /* 084EC8 7F050398 00000000 */ nop .L7F05039C: /* 084ECC 7F05039C 00003025 */ move $a2, $zero /* 084ED0 7F0503A0 8FA70074 */ lw $a3, 0x74($sp) /* 084ED4 7F0503A4 0FC13E9A */ jal add_ammo_to_inventory /* 084ED8 7F0503A8 AFA30020 */ sw $v1, 0x20($sp) /* 084EDC 7F0503AC 8FA20020 */ lw $v0, 0x20($sp) /* 084EE0 7F0503B0 2401000D */ li $at, 13 /* 084EE4 7F0503B4 26100004 */ addiu $s0, $s0, 4 /* 084EE8 7F0503B8 5441FFE2 */ bnel $v0, $at, .L7F050344 /* 084EEC 7F0503BC 24430001 */ addiu $v1, $v0, 1 /* 084EF0 7F0503C0 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 084EF4 7F0503C4 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 084EF8 7F0503C8 240500EA */ li $a1, 234 /* 084EFC 7F0503CC 0C002382 */ jal sndPlaySfx /* 084F00 7F0503D0 00003025 */ move $a2, $zero /* 084F04 7F0503D4 100000A7 */ b .L7F050674 /* 084F08 7F0503D8 24030001 */ li $v1, 1 interact_weapon_object: /* 084F0C 7F0503DC AFA00044 */ sw $zero, 0x44($sp) /* 084F10 7F0503E0 80640080 */ lb $a0, 0x80($v1) /* 084F14 7F0503E4 0FC13E04 */ jal set_sound_effect_for_weapontype_collection /* 084F18 7F0503E8 AFA30048 */ sw $v1, 0x48($sp) /* 084F1C 7F0503EC 8FAD0048 */ lw $t5, 0x48($sp) /* 084F20 7F0503F0 2401001D */ li $at, 29 /* 084F24 7F0503F4 81A40080 */ lb $a0, 0x80($t5) /* 084F28 7F0503F8 54810006 */ bnel $a0, $at, .L7F050414 /* 084F2C 7F0503FC 24010058 */ li $at, 88 /* 084F30 7F050400 0FC23122 */ jal bondinvAddInvItem /* 084F34 7F050404 2404001E */ li $a0, 30 /* 084F38 7F050408 10000007 */ b .L7F050428 /* 084F3C 7F05040C 8FAE006C */ lw $t6, 0x6c($sp) /* 084F40 7F050410 24010058 */ li $at, 88 .L7F050414: /* 084F44 7F050414 14810003 */ bne $a0, $at, .L7F050424 /* 084F48 7F050418 24050058 */ li $a1, 88 /* 084F4C 7F05041C 0FC17645 */ jal currentPlayerEquipWeaponWrapper /* 084F50 7F050420 00002025 */ move $a0, $zero .L7F050424: /* 084F54 7F050424 8FAE006C */ lw $t6, 0x6c($sp) .L7F050428: /* 084F58 7F050428 8FB90048 */ lw $t9, 0x48($sp) /* 084F5C 7F05042C 8DCF0064 */ lw $t7, 0x64($t6) /* 084F60 7F050430 31F80400 */ andi $t8, $t7, 0x400 /* 084F64 7F050434 1300001B */ beqz $t8, .L7F0504A4 /* 084F68 7F050438 00000000 */ nop /* 084F6C 7F05043C 83280080 */ lb $t0, 0x80($t9) /* 084F70 7F050440 29010021 */ slti $at, $t0, 0x21 /* 084F74 7F050444 50200004 */ beql $at, $zero, .L7F050458 /* 084F78 7F050448 8FA90074 */ lw $t1, 0x74($sp) /* 084F7C 7F05044C 0FC231D9 */ jal bondinvAddWeaponByProp /* 084F80 7F050450 8FA40070 */ lw $a0, 0x70($sp) /* 084F84 7F050454 8FA90074 */ lw $t1, 0x74($sp) .L7F050458: /* 084F88 7F050458 5120000F */ beql $t1, $zero, .L7F050498 /* 084F8C 7F05045C 8FAC0048 */ lw $t4, 0x48($sp) /* 084F90 7F050460 0FC23657 */ jal bondinvGetActivatedTextObject /* 084F94 7F050464 8FA4006C */ lw $a0, 0x6c($sp) /* 084F98 7F050468 10400005 */ beqz $v0, .L7F050480 /* 084F9C 7F05046C 00402025 */ move $a0, $v0 /* 084FA0 7F050470 0FC228F2 */ jal jp_hudmsgBottomShow /* 084FA4 7F050474 00000000 */ nop /* 084FA8 7F050478 10000005 */ b .L7F050490 /* 084FAC 7F05047C 240B0001 */ li $t3, 1 .L7F050480: /* 084FB0 7F050480 8FAA0048 */ lw $t2, 0x48($sp) /* 084FB4 7F050484 0FC14089 */ jal display_text_for_weapon_in_lower_left_corner /* 084FB8 7F050488 81440080 */ lb $a0, 0x80($t2) /* 084FBC 7F05048C 240B0001 */ li $t3, 1 .L7F050490: /* 084FC0 7F050490 AFAB0044 */ sw $t3, 0x44($sp) /* 084FC4 7F050494 8FAC0048 */ lw $t4, 0x48($sp) .L7F050498: /* 084FC8 7F050498 24030004 */ li $v1, 4 /* 084FCC 7F05049C 1000001C */ b .L7F050510 /* 084FD0 7F0504A0 81840080 */ lb $a0, 0x80($t4) .L7F0504A4: /* 084FD4 7F0504A4 0FC231D9 */ jal bondinvAddWeaponByProp /* 084FD8 7F0504A8 8FA40070 */ lw $a0, 0x70($sp) /* 084FDC 7F0504AC 10400002 */ beqz $v0, .L7F0504B8 /* 084FE0 7F0504B0 240D0001 */ li $t5, 1 /* 084FE4 7F0504B4 AFAD0044 */ sw $t5, 0x44($sp) .L7F0504B8: /* 084FE8 7F0504B8 8FAE0074 */ lw $t6, 0x74($sp) /* 084FEC 7F0504BC 8FAF0048 */ lw $t7, 0x48($sp) /* 084FF0 7F0504C0 51C00011 */ beql $t6, $zero, .L7F050508 /* 084FF4 7F0504C4 8FA90048 */ lw $t1, 0x48($sp) /* 084FF8 7F0504C8 0FC23669 */ jal bondinvGetActivatedTextWeapon /* 084FFC 7F0504CC 81E40080 */ lb $a0, 0x80($t7) /* 085000 7F0504D0 10400006 */ beqz $v0, .L7F0504EC /* 085004 7F0504D4 00402025 */ move $a0, $v0 /* 085008 7F0504D8 24180001 */ li $t8, 1 /* 08500C 7F0504DC 0FC228F2 */ jal jp_hudmsgBottomShow /* 085010 7F0504E0 AFB80044 */ sw $t8, 0x44($sp) /* 085014 7F0504E4 10000008 */ b .L7F050508 /* 085018 7F0504E8 8FA90048 */ lw $t1, 0x48($sp) .L7F0504EC: /* 08501C 7F0504EC 8FB90044 */ lw $t9, 0x44($sp) /* 085020 7F0504F0 8FA80048 */ lw $t0, 0x48($sp) /* 085024 7F0504F4 53200004 */ beql $t9, $zero, .L7F050508 /* 085028 7F0504F8 8FA90048 */ lw $t1, 0x48($sp) /* 08502C 7F0504FC 0FC14089 */ jal display_text_for_weapon_in_lower_left_corner /* 085030 7F050500 81040080 */ lb $a0, 0x80($t0) /* 085034 7F050504 8FA90048 */ lw $t1, 0x48($sp) .L7F050508: /* 085038 7F050508 24030001 */ li $v1, 1 /* 08503C 7F05050C 81240080 */ lb $a0, 0x80($t1) .L7F050510: /* 085040 7F050510 0FC1A50B */ jal get_ammo_type_for_weapon /* 085044 7F050514 AFA30068 */ sw $v1, 0x68($sp) /* 085048 7F050518 8FA30068 */ lw $v1, 0x68($sp) /* 08504C 7F05051C 10400055 */ beqz $v0, .L7F050674 /* 085050 7F050520 00408025 */ move $s0, $v0 /* 085054 7F050524 8FA40048 */ lw $a0, 0x48($sp) /* 085058 7F050528 0FC13F3E */ jal ammo_collected_from_weapon /* 08505C 7F05052C AFA30068 */ sw $v1, 0x68($sp) /* 085060 7F050530 8FA30068 */ lw $v1, 0x68($sp) /* 085064 7F050534 1840004F */ blez $v0, .L7F050674 /* 085068 7F050538 AFA20034 */ sw $v0, 0x34($sp) /* 08506C 7F05053C 02002025 */ move $a0, $s0 /* 085070 7F050540 0FC1A490 */ jal check_cur_player_ammo_amount_in_inventory /* 085074 7F050544 AFA30068 */ sw $v1, 0x68($sp) /* 085078 7F050548 AFA20024 */ sw $v0, 0x24($sp) /* 08507C 7F05054C 0FC1A4B5 */ jal get_max_ammo_for_type /* 085080 7F050550 02002025 */ move $a0, $s0 /* 085084 7F050554 8FAA0024 */ lw $t2, 0x24($sp) /* 085088 7F050558 8FA30068 */ lw $v1, 0x68($sp) /* 08508C 7F05055C 02002025 */ move $a0, $s0 /* 085090 7F050560 0142082A */ slt $at, $t2, $v0 /* 085094 7F050564 50200044 */ beql $at, $zero, .L7F050678 /* 085098 7F050568 24010001 */ li $at, 1 /* 08509C 7F05056C 0FC1A490 */ jal check_cur_player_ammo_amount_in_inventory /* 0850A0 7F050570 AFA30068 */ sw $v1, 0x68($sp) /* 0850A4 7F050574 8FAB0034 */ lw $t3, 0x34($sp) /* 0850A8 7F050578 02002025 */ move $a0, $s0 /* 0850AC 7F05057C 0FC1A44C */ jal give_cur_player_ammo /* 0850B0 7F050580 004B2821 */ addu $a1, $v0, $t3 /* 0850B4 7F050584 8FAC0044 */ lw $t4, 0x44($sp) /* 0850B8 7F050588 8FA30068 */ lw $v1, 0x68($sp) /* 0850BC 7F05058C 8FAD0074 */ lw $t5, 0x74($sp) /* 0850C0 7F050590 55800039 */ bnezl $t4, .L7F050678 /* 0850C4 7F050594 24010001 */ li $at, 1 /* 0850C8 7F050598 11A00036 */ beqz $t5, .L7F050674 /* 0850CC 7F05059C 02002025 */ move $a0, $s0 /* 0850D0 7F0505A0 8FA50034 */ lw $a1, 0x34($sp) /* 0850D4 7F0505A4 0FC13E7E */ jal display_text_when_ammo_collected /* 0850D8 7F0505A8 AFA30068 */ sw $v1, 0x68($sp) /* 0850DC 7F0505AC 10000031 */ b .L7F050674 /* 0850E0 7F0505B0 8FA30068 */ lw $v1, 0x68($sp) interact_bodyarmor_object: /* 0850E4 7F0505B4 0FC228C3 */ jal bondviewAddCurrentPlayerArmor /* 0850E8 7F0505B8 C46C0084 */ lwc1 $f12, 0x84($v1) /* 0850EC 7F0505BC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 0850F0 7F0505C0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0850F4 7F0505C4 24050051 */ li $a1, 81 /* 0850F8 7F0505C8 0C002382 */ jal sndPlaySfx /* 0850FC 7F0505CC 00003025 */ move $a2, $zero /* 085100 7F0505D0 8FAE0074 */ lw $t6, 0x74($sp) /* 085104 7F0505D4 11C00013 */ beqz $t6, .L7F050624 /* 085108 7F0505D8 00000000 */ nop /* 08510C 7F0505DC 0FC23657 */ jal bondinvGetActivatedTextObject /* 085110 7F0505E0 8FA4006C */ lw $a0, 0x6c($sp) /* 085114 7F0505E4 1440000D */ bnez $v0, .L7F05061C /* 085118 7F0505E8 00402025 */ move $a0, $v0 /* 08511C 7F0505EC 0FC26919 */ jal getPlayerCount /* 085120 7F0505F0 00000000 */ nop /* 085124 7F0505F4 28410003 */ slti $at, $v0, 3 /* 085128 7F0505F8 10200005 */ beqz $at, .L7F050610 /* 08512C 7F0505FC 00000000 */ nop /* 085130 7F050600 0FC30776 */ jal langGet /* 085134 7F050604 3404A43D */ li $a0, 42045 /* 085138 7F050608 10000004 */ b .L7F05061C /* 08513C 7F05060C 00402025 */ move $a0, $v0 .L7F050610: /* 085140 7F050610 0FC30776 */ jal langGet /* 085144 7F050614 3404A43E */ li $a0, 42046 /* 085148 7F050618 00402025 */ move $a0, $v0 .L7F05061C: /* 08514C 7F05061C 0FC228F2 */ jal jp_hudmsgBottomShow /* 085150 7F050620 00000000 */ nop .L7F050624: /* 085154 7F050624 10000013 */ b .L7F050674 /* 085158 7F050628 24030001 */ li $v1, 1 interact_default_object: .L7F05062C: /* 08515C 7F05062C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 085160 7F050630 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 085164 7F050634 240500E5 */ li $a1, 229 /* 085168 7F050638 0C002382 */ jal sndPlaySfx /* 08516C 7F05063C 00003025 */ move $a2, $zero /* 085170 7F050640 8FAF0074 */ lw $t7, 0x74($sp) /* 085174 7F050644 51E0000B */ beql $t7, $zero, .L7F050674 /* 085178 7F050648 24030004 */ li $v1, 4 /* 08517C 7F05064C 0FC23657 */ jal bondinvGetActivatedTextObject /* 085180 7F050650 8FA4006C */ lw $a0, 0x6c($sp) /* 085184 7F050654 14400004 */ bnez $v0, .L7F050668 /* 085188 7F050658 00402025 */ move $a0, $v0 /* 08518C 7F05065C 0FC30776 */ jal langGet /* 085190 7F050660 3404A43F */ li $a0, 42047 /* 085194 7F050664 00402025 */ move $a0, $v0 .L7F050668: /* 085198 7F050668 0FC228F2 */ jal jp_hudmsgBottomShow /* 08519C 7F05066C 00000000 */ nop /* 0851A0 7F050670 24030004 */ li $v1, 4 .L7F050674: /* 0851A4 7F050674 24010001 */ li $at, 1 .L7F050678: /* 0851A8 7F050678 1461000D */ bne $v1, $at, .L7F0506B0 /* 0851AC 7F05067C 8FB8006C */ lw $t8, 0x6c($sp) /* 0851B0 7F050680 8F190064 */ lw $t9, 0x64($t8) /* 0851B4 7F050684 33280010 */ andi $t0, $t9, 0x10 /* 0851B8 7F050688 15000009 */ bnez $t0, .L7F0506B0 /* 0851BC 7F05068C 00000000 */ nop /* 0851C0 7F050690 93060002 */ lbu $a2, 2($t8) /* 0851C4 7F050694 03002025 */ move $a0, $t8 /* 0851C8 7F050698 00002825 */ move $a1, $zero /* 0851CC 7F05069C 30C90004 */ andi $t1, $a2, 4 /* 0851D0 7F0506A0 0FC10366 */ jal objFree /* 0851D4 7F0506A4 01203025 */ move $a2, $t1 /* 0851D8 7F0506A8 10000007 */ b .L7F0506C8 /* 0851DC 7F0506AC 24020001 */ li $v0, 1 .L7F0506B0: /* 0851E0 7F0506B0 10600005 */ beqz $v1, .L7F0506C8 /* 0851E4 7F0506B4 00001025 */ move $v0, $zero /* 0851E8 7F0506B8 0FC231C9 */ jal bondinvAddPropToInv /* 0851EC 7F0506BC 8FA40070 */ lw $a0, 0x70($sp) /* 0851F0 7F0506C0 10000001 */ b .L7F0506C8 /* 0851F4 7F0506C4 24020004 */ li $v0, 4 .L7F0506C8: /* 0851F8 7F0506C8 8FBF001C */ lw $ra, 0x1c($sp) /* 0851FC 7F0506CC 8FB00018 */ lw $s0, 0x18($sp) /* 085200 7F0506D0 27BD0070 */ addiu $sp, $sp, 0x70 /* 085204 7F0506D4 03E00008 */ jr $ra /* 085208 7F0506D8 00000000 */ nop ) #endif #ifdef VERSION_EU GLOBAL_ASM( .late_rodata /*D:8005322C*/ glabel object_interaction_table .word interact_default_object .word interact_key_object .word interact_default_object .word interact_default_object .word interact_magazine_object .word interact_weapon_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_ammobox_object .word interact_bodyarmor_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .word interact_default_object .text glabel collect_or_interact_object /* 084D80 7F050250 27BDFF90 */ addiu $sp, $sp, -0x70 /* 084D84 7F050254 AFBF001C */ sw $ra, 0x1c($sp) /* 084D88 7F050258 AFB00018 */ sw $s0, 0x18($sp) /* 084D8C 7F05025C AFA40070 */ sw $a0, 0x70($sp) /* 084D90 7F050260 AFA50074 */ sw $a1, 0x74($sp) /* 084D94 7F050264 8C830004 */ lw $v1, 4($a0) /* 084D98 7F050268 3C0F8008 */ lui $t7, %hi(g_CurrentPlayer) /* 084D9C 7F05026C 8DEFA0B0 */ lw $t7, %lo(g_CurrentPlayer)($t7) /* 084DA0 7F050270 AFA3006C */ sw $v1, 0x6c($sp) /* 084DA4 7F050274 3C198005 */ lui $t9, %hi(g_ClockTimer) /* 084DA8 7F050278 8DF800D8 */ lw $t8, 0xd8($t7) /* 084DAC 7F05027C 17000005 */ bnez $t8, .L7F050294 /* 084DB0 7F050280 00000000 */ nop /* 084DB4 7F050284 8F398374 */ lw $t9, %lo(g_ClockTimer)($t9) /* 084DB8 7F050288 8FA8006C */ lw $t0, 0x6c($sp) /* 084DBC 7F05028C 57200004 */ bnezl $t9, .L7F0502A0 /* 084DC0 7F050290 91090003 */ lbu $t1, 3($t0) .L7F050294: /* 084DC4 7F050294 1000010C */ b .L7F0506C8 /* 084DC8 7F050298 00001025 */ move $v0, $zero /* 084DCC 7F05029C 91090003 */ lbu $t1, 3($t0) .L7F0502A0: /* 084DD0 7F0502A0 252AFFFD */ addiu $t2, $t1, -3 /* 084DD4 7F0502A4 2D41002D */ sltiu $at, $t2, 0x2d /* 084DD8 7F0502A8 102000E0 */ beqz $at, .L7F05062C /* 084DDC 7F0502AC 000A5080 */ sll $t2, $t2, 2 /* 084DE0 7F0502B0 3C018005 */ lui $at, %hi(object_interaction_table) /* 084DE4 7F0502B4 002A0821 */ addu $at, $at, $t2 /* 084DE8 7F0502B8 8C2A322C */ lw $t2, %lo(object_interaction_table)($at) /* 084DEC 7F0502BC 01400008 */ jr $t2 /* 084DF0 7F0502C0 00000000 */ nop interact_key_object: /* 084DF4 7F0502C4 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 084DF8 7F0502C8 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 084DFC 7F0502CC 240500E5 */ li $a1, 229 /* 084E00 7F0502D0 0C002382 */ jal sndPlaySfx /* 084E04 7F0502D4 00003025 */ move $a2, $zero /* 084E08 7F0502D8 8FAB0074 */ lw $t3, 0x74($sp) /* 084E0C 7F0502DC 1160000A */ beqz $t3, .L7F050308 /* 084E10 7F0502E0 00000000 */ nop /* 084E14 7F0502E4 0FC23657 */ jal bondinvGetActivatedTextObject /* 084E18 7F0502E8 8FA4006C */ lw $a0, 0x6c($sp) /* 084E1C 7F0502EC 14400004 */ bnez $v0, .L7F050300 /* 084E20 7F0502F0 00402025 */ move $a0, $v0 /* 084E24 7F0502F4 0FC30776 */ jal langGet /* 084E28 7F0502F8 3404A43C */ li $a0, 42044 /* 084E2C 7F0502FC 00402025 */ move $a0, $v0 .L7F050300: /* 084E30 7F050300 0FC228F2 */ jal jp_hudmsgBottomShow /* 084E34 7F050304 00000000 */ nop .L7F050308: /* 084E38 7F050308 100000DA */ b .L7F050674 /* 084E3C 7F05030C 24030004 */ li $v1, 4 interact_magazine_object: /* 084E40 7F050310 00608025 */ move $s0, $v1 /* 084E44 7F050314 0FC13F0F */ jal get_ammo_in_magazine /* 084E48 7F050318 00602025 */ move $a0, $v1 /* 084E4C 7F05031C 8E040080 */ lw $a0, 0x80($s0) /* 084E50 7F050320 00402825 */ move $a1, $v0 /* 084E54 7F050324 24060001 */ li $a2, 1 /* 084E58 7F050328 0FC13E9A */ jal add_ammo_to_inventory /* 084E5C 7F05032C 8FA70074 */ lw $a3, 0x74($sp) /* 084E60 7F050330 100000D0 */ b .L7F050674 /* 084E64 7F050334 24030001 */ li $v1, 1 interact_ammobox_object: /* 084E68 7F050338 00001025 */ move $v0, $zero /* 084E6C 7F05033C 00608025 */ move $s0, $v1 /* 084E70 7F050340 24430001 */ addiu $v1, $v0, 1 .L7F050344: /* 084E74 7F050344 24010001 */ li $at, 1 /* 084E78 7F050348 14410002 */ bne $v0, $at, .L7F050354 /* 084E7C 7F05034C 00602025 */ move $a0, $v1 /* 084E80 7F050350 24040001 */ li $a0, 1 .L7F050354: /* 084E84 7F050354 96050082 */ lhu $a1, 0x82($s0) /* 084E88 7F050358 AFA4004C */ sw $a0, 0x4c($sp) /* 084E8C 7F05035C AFA30020 */ sw $v1, 0x20($sp) /* 084E90 7F050360 0FC26919 */ jal getPlayerCount /* 084E94 7F050364 AFA50050 */ sw $a1, 0x50($sp) /* 084E98 7F050368 24010001 */ li $at, 1 /* 084E9C 7F05036C 8FA30020 */ lw $v1, 0x20($sp) /* 084EA0 7F050370 8FA4004C */ lw $a0, 0x4c($sp) /* 084EA4 7F050374 14410009 */ bne $v0, $at, .L7F05039C /* 084EA8 7F050378 8FA50050 */ lw $a1, 0x50($sp) /* 084EAC 7F05037C 44852000 */ mtc1 $a1, $f4 /* 084EB0 7F050380 3C018003 */ lui $at, %hi(g_SoloAmmoMultiplier) /* 084EB4 7F050384 C4280B28 */ lwc1 $f8, %lo(g_SoloAmmoMultiplier)($at) /* 084EB8 7F050388 468021A0 */ cvt.s.w $f6, $f4 /* 084EBC 7F05038C 46083282 */ mul.s $f10, $f6, $f8 /* 084EC0 7F050390 4600540D */ trunc.w.s $f16, $f10 /* 084EC4 7F050394 44058000 */ mfc1 $a1, $f16 /* 084EC8 7F050398 00000000 */ nop .L7F05039C: /* 084ECC 7F05039C 00003025 */ move $a2, $zero /* 084ED0 7F0503A0 8FA70074 */ lw $a3, 0x74($sp) /* 084ED4 7F0503A4 0FC13E9A */ jal add_ammo_to_inventory /* 084ED8 7F0503A8 AFA30020 */ sw $v1, 0x20($sp) /* 084EDC 7F0503AC 8FA20020 */ lw $v0, 0x20($sp) /* 084EE0 7F0503B0 2401000D */ li $at, 13 /* 084EE4 7F0503B4 26100004 */ addiu $s0, $s0, 4 /* 084EE8 7F0503B8 5441FFE2 */ bnel $v0, $at, .L7F050344 /* 084EEC 7F0503BC 24430001 */ addiu $v1, $v0, 1 /* 084EF0 7F0503C0 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 084EF4 7F0503C4 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 084EF8 7F0503C8 240500EA */ li $a1, 234 /* 084EFC 7F0503CC 0C002382 */ jal sndPlaySfx /* 084F00 7F0503D0 00003025 */ move $a2, $zero /* 084F04 7F0503D4 100000A7 */ b .L7F050674 /* 084F08 7F0503D8 24030001 */ li $v1, 1 interact_weapon_object: /* 084F0C 7F0503DC AFA00044 */ sw $zero, 0x44($sp) /* 084F10 7F0503E0 80640080 */ lb $a0, 0x80($v1) /* 084F14 7F0503E4 0FC13E04 */ jal set_sound_effect_for_weapontype_collection /* 084F18 7F0503E8 AFA30048 */ sw $v1, 0x48($sp) /* 084F1C 7F0503EC 8FAD0048 */ lw $t5, 0x48($sp) /* 084F20 7F0503F0 2401001D */ li $at, 29 /* 084F24 7F0503F4 81A40080 */ lb $a0, 0x80($t5) /* 084F28 7F0503F8 54810006 */ bnel $a0, $at, .L7F050414 /* 084F2C 7F0503FC 24010058 */ li $at, 88 /* 084F30 7F050400 0FC23122 */ jal bondinvAddInvItem /* 084F34 7F050404 2404001E */ li $a0, 30 /* 084F38 7F050408 10000007 */ b .L7F050428 /* 084F3C 7F05040C 8FAE006C */ lw $t6, 0x6c($sp) /* 084F40 7F050410 24010058 */ li $at, 88 .L7F050414: /* 084F44 7F050414 14810003 */ bne $a0, $at, .L7F050424 /* 084F48 7F050418 24050058 */ li $a1, 88 /* 084F4C 7F05041C 0FC17645 */ jal currentPlayerEquipWeaponWrapper /* 084F50 7F050420 00002025 */ move $a0, $zero .L7F050424: /* 084F54 7F050424 8FAE006C */ lw $t6, 0x6c($sp) .L7F050428: /* 084F58 7F050428 8FB90048 */ lw $t9, 0x48($sp) /* 084F5C 7F05042C 8DCF0064 */ lw $t7, 0x64($t6) /* 084F60 7F050430 31F80400 */ andi $t8, $t7, 0x400 /* 084F64 7F050434 1300001B */ beqz $t8, .L7F0504A4 /* 084F68 7F050438 00000000 */ nop /* 084F6C 7F05043C 83280080 */ lb $t0, 0x80($t9) /* 084F70 7F050440 29010021 */ slti $at, $t0, 0x21 /* 084F74 7F050444 50200004 */ beql $at, $zero, .L7F050458 /* 084F78 7F050448 8FA90074 */ lw $t1, 0x74($sp) /* 084F7C 7F05044C 0FC231D9 */ jal bondinvAddWeaponByProp /* 084F80 7F050450 8FA40070 */ lw $a0, 0x70($sp) /* 084F84 7F050454 8FA90074 */ lw $t1, 0x74($sp) .L7F050458: /* 084F88 7F050458 5120000F */ beql $t1, $zero, .L7F050498 /* 084F8C 7F05045C 8FAC0048 */ lw $t4, 0x48($sp) /* 084F90 7F050460 0FC23657 */ jal bondinvGetActivatedTextObject /* 084F94 7F050464 8FA4006C */ lw $a0, 0x6c($sp) /* 084F98 7F050468 10400005 */ beqz $v0, .L7F050480 /* 084F9C 7F05046C 00402025 */ move $a0, $v0 /* 084FA0 7F050470 0FC228F2 */ jal jp_hudmsgBottomShow /* 084FA4 7F050474 00000000 */ nop /* 084FA8 7F050478 10000005 */ b .L7F050490 /* 084FAC 7F05047C 240B0001 */ li $t3, 1 .L7F050480: /* 084FB0 7F050480 8FAA0048 */ lw $t2, 0x48($sp) /* 084FB4 7F050484 0FC14089 */ jal display_text_for_weapon_in_lower_left_corner /* 084FB8 7F050488 81440080 */ lb $a0, 0x80($t2) /* 084FBC 7F05048C 240B0001 */ li $t3, 1 .L7F050490: /* 084FC0 7F050490 AFAB0044 */ sw $t3, 0x44($sp) /* 084FC4 7F050494 8FAC0048 */ lw $t4, 0x48($sp) .L7F050498: /* 084FC8 7F050498 24030004 */ li $v1, 4 /* 084FCC 7F05049C 1000001C */ b .L7F050510 /* 084FD0 7F0504A0 81840080 */ lb $a0, 0x80($t4) .L7F0504A4: /* 084FD4 7F0504A4 0FC231D9 */ jal bondinvAddWeaponByProp /* 084FD8 7F0504A8 8FA40070 */ lw $a0, 0x70($sp) /* 084FDC 7F0504AC 10400002 */ beqz $v0, .L7F0504B8 /* 084FE0 7F0504B0 240D0001 */ li $t5, 1 /* 084FE4 7F0504B4 AFAD0044 */ sw $t5, 0x44($sp) .L7F0504B8: /* 084FE8 7F0504B8 8FAE0074 */ lw $t6, 0x74($sp) /* 084FEC 7F0504BC 8FAF0048 */ lw $t7, 0x48($sp) /* 084FF0 7F0504C0 51C00011 */ beql $t6, $zero, .L7F050508 /* 084FF4 7F0504C4 8FA90048 */ lw $t1, 0x48($sp) /* 084FF8 7F0504C8 0FC23669 */ jal bondinvGetActivatedTextWeapon /* 084FFC 7F0504CC 81E40080 */ lb $a0, 0x80($t7) /* 085000 7F0504D0 10400006 */ beqz $v0, .L7F0504EC /* 085004 7F0504D4 00402025 */ move $a0, $v0 /* 085008 7F0504D8 24180001 */ li $t8, 1 /* 08500C 7F0504DC 0FC228F2 */ jal jp_hudmsgBottomShow /* 085010 7F0504E0 AFB80044 */ sw $t8, 0x44($sp) /* 085014 7F0504E4 10000008 */ b .L7F050508 /* 085018 7F0504E8 8FA90048 */ lw $t1, 0x48($sp) .L7F0504EC: /* 08501C 7F0504EC 8FB90044 */ lw $t9, 0x44($sp) /* 085020 7F0504F0 8FA80048 */ lw $t0, 0x48($sp) /* 085024 7F0504F4 53200004 */ beql $t9, $zero, .L7F050508 /* 085028 7F0504F8 8FA90048 */ lw $t1, 0x48($sp) /* 08502C 7F0504FC 0FC14089 */ jal display_text_for_weapon_in_lower_left_corner /* 085030 7F050500 81040080 */ lb $a0, 0x80($t0) /* 085034 7F050504 8FA90048 */ lw $t1, 0x48($sp) .L7F050508: /* 085038 7F050508 24030001 */ li $v1, 1 /* 08503C 7F05050C 81240080 */ lb $a0, 0x80($t1) .L7F050510: /* 085040 7F050510 0FC1A50B */ jal get_ammo_type_for_weapon /* 085044 7F050514 AFA30068 */ sw $v1, 0x68($sp) /* 085048 7F050518 8FA30068 */ lw $v1, 0x68($sp) /* 08504C 7F05051C 10400055 */ beqz $v0, .L7F050674 /* 085050 7F050520 00408025 */ move $s0, $v0 /* 085054 7F050524 8FA40048 */ lw $a0, 0x48($sp) /* 085058 7F050528 0FC13F3E */ jal ammo_collected_from_weapon /* 08505C 7F05052C AFA30068 */ sw $v1, 0x68($sp) /* 085060 7F050530 8FA30068 */ lw $v1, 0x68($sp) /* 085064 7F050534 1840004F */ blez $v0, .L7F050674 /* 085068 7F050538 AFA20034 */ sw $v0, 0x34($sp) /* 08506C 7F05053C 02002025 */ move $a0, $s0 /* 085070 7F050540 0FC1A490 */ jal check_cur_player_ammo_amount_in_inventory /* 085074 7F050544 AFA30068 */ sw $v1, 0x68($sp) /* 085078 7F050548 AFA20024 */ sw $v0, 0x24($sp) /* 08507C 7F05054C 0FC1A4B5 */ jal get_max_ammo_for_type /* 085080 7F050550 02002025 */ move $a0, $s0 /* 085084 7F050554 8FAA0024 */ lw $t2, 0x24($sp) /* 085088 7F050558 8FA30068 */ lw $v1, 0x68($sp) /* 08508C 7F05055C 02002025 */ move $a0, $s0 /* 085090 7F050560 0142082A */ slt $at, $t2, $v0 /* 085094 7F050564 50200044 */ beql $at, $zero, .L7F050678 /* 085098 7F050568 24010001 */ li $at, 1 /* 08509C 7F05056C 0FC1A490 */ jal check_cur_player_ammo_amount_in_inventory /* 0850A0 7F050570 AFA30068 */ sw $v1, 0x68($sp) /* 0850A4 7F050574 8FAB0034 */ lw $t3, 0x34($sp) /* 0850A8 7F050578 02002025 */ move $a0, $s0 /* 0850AC 7F05057C 0FC1A44C */ jal give_cur_player_ammo /* 0850B0 7F050580 004B2821 */ addu $a1, $v0, $t3 /* 0850B4 7F050584 8FAC0044 */ lw $t4, 0x44($sp) /* 0850B8 7F050588 8FA30068 */ lw $v1, 0x68($sp) /* 0850BC 7F05058C 8FAD0074 */ lw $t5, 0x74($sp) /* 0850C0 7F050590 55800039 */ bnezl $t4, .L7F050678 /* 0850C4 7F050594 24010001 */ li $at, 1 /* 0850C8 7F050598 11A00036 */ beqz $t5, .L7F050674 /* 0850CC 7F05059C 02002025 */ move $a0, $s0 /* 0850D0 7F0505A0 8FA50034 */ lw $a1, 0x34($sp) /* 0850D4 7F0505A4 0FC13E7E */ jal display_text_when_ammo_collected /* 0850D8 7F0505A8 AFA30068 */ sw $v1, 0x68($sp) /* 0850DC 7F0505AC 10000031 */ b .L7F050674 /* 0850E0 7F0505B0 8FA30068 */ lw $v1, 0x68($sp) interact_bodyarmor_object: /* 0850E4 7F0505B4 0FC228C3 */ jal bondviewAddCurrentPlayerArmor /* 0850E8 7F0505B8 C46C0084 */ lwc1 $f12, 0x84($v1) /* 0850EC 7F0505BC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 0850F0 7F0505C0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0850F4 7F0505C4 24050051 */ li $a1, 81 /* 0850F8 7F0505C8 0C002382 */ jal sndPlaySfx /* 0850FC 7F0505CC 00003025 */ move $a2, $zero /* 085100 7F0505D0 8FAE0074 */ lw $t6, 0x74($sp) /* 085104 7F0505D4 11C00013 */ beqz $t6, .L7F050624 /* 085108 7F0505D8 00000000 */ nop /* 08510C 7F0505DC 0FC23657 */ jal bondinvGetActivatedTextObject /* 085110 7F0505E0 8FA4006C */ lw $a0, 0x6c($sp) /* 085114 7F0505E4 1440000D */ bnez $v0, .L7F05061C /* 085118 7F0505E8 00402025 */ move $a0, $v0 /* 08511C 7F0505EC 0FC26919 */ jal getPlayerCount /* 085120 7F0505F0 00000000 */ nop /* 085124 7F0505F4 28410003 */ slti $at, $v0, 3 /* 085128 7F0505F8 10200005 */ beqz $at, .L7F050610 /* 08512C 7F0505FC 00000000 */ nop /* 085130 7F050600 0FC30776 */ jal langGet /* 085134 7F050604 3404A43D */ li $a0, 42045 /* 085138 7F050608 10000004 */ b .L7F05061C /* 08513C 7F05060C 00402025 */ move $a0, $v0 .L7F050610: /* 085140 7F050610 0FC30776 */ jal langGet /* 085144 7F050614 3404A43E */ li $a0, 42046 /* 085148 7F050618 00402025 */ move $a0, $v0 .L7F05061C: /* 08514C 7F05061C 0FC228F2 */ jal jp_hudmsgBottomShow /* 085150 7F050620 00000000 */ nop .L7F050624: /* 085154 7F050624 10000013 */ b .L7F050674 /* 085158 7F050628 24030001 */ li $v1, 1 interact_default_object: .L7F05062C: /* 08515C 7F05062C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 085160 7F050630 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 085164 7F050634 240500E5 */ li $a1, 229 /* 085168 7F050638 0C002382 */ jal sndPlaySfx /* 08516C 7F05063C 00003025 */ move $a2, $zero /* 085170 7F050640 8FAF0074 */ lw $t7, 0x74($sp) /* 085174 7F050644 51E0000B */ beql $t7, $zero, .L7F050674 /* 085178 7F050648 24030004 */ li $v1, 4 /* 08517C 7F05064C 0FC23657 */ jal bondinvGetActivatedTextObject /* 085180 7F050650 8FA4006C */ lw $a0, 0x6c($sp) /* 085184 7F050654 14400004 */ bnez $v0, .L7F050668 /* 085188 7F050658 00402025 */ move $a0, $v0 /* 08518C 7F05065C 0FC30776 */ jal langGet /* 085190 7F050660 3404A43F */ li $a0, 42047 /* 085194 7F050664 00402025 */ move $a0, $v0 .L7F050668: /* 085198 7F050668 0FC228F2 */ jal jp_hudmsgBottomShow /* 08519C 7F05066C 00000000 */ nop /* 0851A0 7F050670 24030004 */ li $v1, 4 .L7F050674: /* 0851A4 7F050674 24010001 */ li $at, 1 .L7F050678: /* 0851A8 7F050678 1461000D */ bne $v1, $at, .L7F0506B0 /* 0851AC 7F05067C 8FB8006C */ lw $t8, 0x6c($sp) /* 0851B0 7F050680 8F190064 */ lw $t9, 0x64($t8) /* 0851B4 7F050684 33280010 */ andi $t0, $t9, 0x10 /* 0851B8 7F050688 15000009 */ bnez $t0, .L7F0506B0 /* 0851BC 7F05068C 00000000 */ nop /* 0851C0 7F050690 93060002 */ lbu $a2, 2($t8) /* 0851C4 7F050694 03002025 */ move $a0, $t8 /* 0851C8 7F050698 00002825 */ move $a1, $zero /* 0851CC 7F05069C 30C90004 */ andi $t1, $a2, 4 /* 0851D0 7F0506A0 0FC10366 */ jal objFree /* 0851D4 7F0506A4 01203025 */ move $a2, $t1 /* 0851D8 7F0506A8 10000007 */ b .L7F0506C8 /* 0851DC 7F0506AC 24020001 */ li $v0, 1 .L7F0506B0: /* 0851E0 7F0506B0 10600005 */ beqz $v1, .L7F0506C8 /* 0851E4 7F0506B4 00001025 */ move $v0, $zero /* 0851E8 7F0506B8 0FC231C9 */ jal bondinvAddPropToInv /* 0851EC 7F0506BC 8FA40070 */ lw $a0, 0x70($sp) /* 0851F0 7F0506C0 10000001 */ b .L7F0506C8 /* 0851F4 7F0506C4 24020004 */ li $v0, 4 .L7F0506C8: /* 0851F8 7F0506C8 8FBF001C */ lw $ra, 0x1c($sp) /* 0851FC 7F0506CC 8FB00018 */ lw $s0, 0x18($sp) /* 085200 7F0506D0 27BD0070 */ addiu $sp, $sp, 0x70 /* 085204 7F0506D4 03E00008 */ jr $ra /* 085208 7F0506D8 00000000 */ nop ) #endif #endif #ifdef NONMATCHING s32 object_collectability_routines(PropRecord *arg0) { ObjectRecord *sp84; ObjectRecord *sp80; ObjectRecord *sp74; ObjectRecord *sp70; s32 sp6C; ObjectRecord *sp64; ObjectRecord *sp60; s32 sp5C; s32 sp58; s32 sp40; StandTile * sp3C; s32 sp38; ObjectRecord *sp34; ObjectRecord *sp30; ObjectRecord *temp_a0; ObjectRecord *temp_a1; ObjectRecord *temp_v1; ObjectRecord *temp_v1_2; PropRecord * temp_v0_7; StandTile ** temp_a0_3; f32 temp_f0; f32 temp_f12; f32 temp_f2; f32 temp_v0_5; s32 temp_v0_6; s8 temp_a0_2; u32 temp_v0; u32 temp_v0_2; u8 temp_v0_4; void * temp_v0_3; u32 phi_v0; ObjectRecord *phi_a0; s8 phi_a0_2; s8 phi_a1; ObjectRecord *phi_v0_2; ObjectRecord *phi_v1; ObjectRecord *phi_a0_3; s32 phi_v1_2; s32 phi_v0_3; s32 phi_v0_4; s32 phi_v0_5; s32 phi_v0_6; s32 phi_a2; s32 phi_v1_3; s32 phi_v0_7; s8 phi_a1_2; temp_a0 = arg0->chr; sp84 = temp_a0; phi_a0 = temp_a0; if ((objIsCollectable(temp_a0) != 0) && (temp_a0->Head.type != 0x11)) { temp_v0 = temp_a0->flags; phi_v0 = temp_v0; if (temp_v0 & 0x100000) { return 0; } goto block_6; } temp_v0_2 = sp84->flags; phi_v0 = temp_v0_2; phi_a0 = sp84; if ((temp_v0_2 << 0xD) >= 0) { return 0; } block_6: if (phi_v0 & 0x80000) { return 0; } if ((phi_a0->mtx.m[0][3] & 0x80) != 0) { temp_v0_3 = phi_a0->mtx.m[1][1]; if ((temp_v0_3->unkBC > 0) && (temp_v0_3->unk90 == 0)) { return 0; } } if (objCanPickupFromSafe(phi_a0) == 0) { return 0; } temp_v0_4 = sp84->Head.type; if (temp_v0_4 == 8) { temp_v1 = arg0->chr; temp_a0_2 = temp_v1->unk80; if (((temp_a0_2 == 0x1A) || (temp_a0_2 == 0x57)) && ((temp_v1->unk82 >= 0) || (((bitwise s32)sp84->mtx.m[0][3] & 4) != 0))) { return 0; } if (((temp_a0_2 == 0x1D) || (temp_a0_2 == 0x1C) || (temp_a0_2 == 0x1B) || (temp_a0_2 == 0x21) || (temp_a0_2 == 0x2F) || (temp_a0_2 == 0x30) || (temp_a0_2 == 0x22)) && ((temp_v1->unk82 >= 0) || (((bitwise s32)sp84->mtx.m[0][3] & 4) != 0))) { return 0; } if ((temp_a0_2 == 0x56) && (((bitwise s32)sp84->mtx.m[0][3] & 0x80) != 0)) { return 0; } sp80 = temp_v1; if (is_item_in_inventory(temp_a0_2, sp84) != 0) { sp80 = temp_v1; if (get_ammo_type_for_weapon(temp_v1->unk80) != 0) { sp80 = temp_v1; sp38 = get_ammo_count_for_weapon(temp_v1->unk80); if (sp38 >= get_max_ammo_for_weapon(temp_v1->unk80)) { temp_v0_5 = temp_v1->mtx.m[2][3]; if (((bitwise s32)temp_v0_5 != 0) || (temp_v1->unk81 >= 0)) { if ((bitwise s32)temp_v0_5 != 0) { phi_a1_2 = temp_v0_5->unk80; } else { phi_a1_2 = temp_v1->unk81; } phi_a0_2 = phi_a1_2; phi_a1 = phi_a1_2; if ((temp_v1->flags * 8) < 0) { phi_a1 = temp_v1->unk80; } else { phi_a0_2 = temp_v1->unk80; } if (is_dual_weapon_in_inventory(phi_a0_2, phi_a1, sp38) != 0) { return 0; } goto block_74; } return 0; } } } goto block_74; } if (temp_v0_4 == 7) { temp_v1_2 = arg0->chr; sp74 = temp_v1_2; sp38 = check_cur_player_ammo_amount_in_inventory((bitwise ObjectRecord *)temp_v1_2->mtx.m[2][2], sp84); if (sp38 >= get_max_ammo_for_type((bitwise ObjectRecord *)temp_v1_2->mtx.m[2][2])) { return 0; } goto block_74; } if (temp_v0_4 == 0x14) { sp6C = 1; sp70 = arg0->chr; phi_v1 = sp70; if (objGetDestroyedLevel(sp84) != 0) { return 0; } phi_v0_2 = NULL; loop_54: temp_a1 = phi_v0_2 + 1; phi_a0_3 = temp_a1; if (phi_v0_2 == 1) { phi_a0_3 = 1; } if ((phi_v1->unk82 > 0) && (sp30 = phi_v1, sp64 = phi_a0_3, sp34 = temp_a1, sp38 = check_cur_player_ammo_amount_in_inventory(phi_a0_3, temp_a1), ((sp38 < get_max_ammo_for_type(phi_a0_3)) != 0))) { sp6C = 0; } else { phi_v0_2 += 1; phi_v1 += 4; if ((phi_v0_2 + 1) != 0xD) { goto loop_54; } } if (sp6C != 0) { return 0; } goto block_74; } if (temp_v0_4 == 0x15) { sp5C = 0; sp60 = arg0->chr; if (sp60->mtx.m[2][3] <= get_BONDdata_watch_armor()) { sp5C = 1; } else if (getPlayerCount() >= 2) { temp_v0_6 = get_scenario(); phi_v1_2 = temp_v0_6; if ((temp_v0_6 == 2) && (sp58 = temp_v0_6, phi_v1_2 = sp58, (bondinvIsAliveWithFlag() != 0))) { sp5C = 1; } else if ((phi_v1_2 == 3) && (checkforgoldengun() != 0)) { sp5C = 1; } } if (sp5C != 0) { return 0; } goto block_74; } block_74: if ((get_curplay_vertical_rotation_in_degrees() < -0.7853982f) && (g_CurrentPlayer->unk1270 < 0)) { return 0; } temp_v0_7 = get_curplayer_positiondata(); temp_f0 = sp84->mtx.m[0][0] - temp_v0_7->pos.AsArray[0]; temp_f12 = sp84->mtx.m[0][1] - temp_v0_7->pos.AsArray[1]; temp_f2 = sp84->mtx.m[0][2] - temp_v0_7->pos.AsArray[2]; if (g_CurrentPlayer->unk1270 >= 0x3C) { phi_v0_3 = 0; phi_v0_4 = 0; if (((temp_f0 * temp_f0) + (temp_f2 * temp_f2)) <= 122500.0f) { phi_v0_3 = 1; } phi_a2 = phi_v0_3; if (phi_v0_3 != 0) { if (temp_f12 >= -500.0f) { phi_v0_4 = 1; } phi_a2 = phi_v0_4; if (phi_v0_4 != 0) { phi_a2 = 0; if (temp_f12 <= 500.0f) { phi_a2 = 1; } } } } else { phi_v0_5 = 0; phi_v0_6 = 0; if (((temp_f0 * temp_f0) + (temp_f2 * temp_f2)) <= 10000.0f) { phi_v0_5 = 1; } phi_a2 = phi_v0_5; if (phi_v0_5 != 0) { if (temp_f12 >= -200.0f) { phi_v0_6 = 1; } phi_a2 = phi_v0_6; if (phi_v0_6 != 0) { phi_a2 = 0; if (temp_f12 <= 200.0f) { phi_a2 = 1; } } } } phi_v1_3 = phi_a2; if (phi_a2 != 0) { temp_a0_3 = &sp3C; if (((sp84->flags2 & 0x1000) == 0) && ((sp3C = temp_v0_7->stan, sp40 = phi_a2, phi_v1_3 = phi_a2, (stanTestLineUnobstructed(temp_a0_3, temp_v0_7->pos.AsArray[0], temp_v0_7->pos.AsArray[2], arg0->pos.AsArray[0], arg0->pos.AsArray[2], 2, 30.0f, 30.0f, 0.0f, 1.0f) == 0)) || (sp3C != arg0->stan))) { phi_v1_3 = 0; } } phi_v0_7 = 0; if (phi_v1_3 != 0) { phi_v0_7 = collect_or_interact_object(arg0, 1); } return phi_v0_7; } #else #ifdef VERSION_US GLOBAL_ASM( .late_rodata glabel D_800532E0 .word 0xbf490fdb /*-0.78539819*/ glabel D_800532E4 .word 0x47ef4200 /*122500.0*/ glabel D_800532E8 .word 0x461c4000 /*10000.0*/ .text glabel object_collectability_routines /* 08520C 7F0506DC 27BDFF78 */ addiu $sp, $sp, -0x88 /* 085210 7F0506E0 AFBF002C */ sw $ra, 0x2c($sp) /* 085214 7F0506E4 AFA40088 */ sw $a0, 0x88($sp) /* 085218 7F0506E8 8C840004 */ lw $a0, 4($a0) /* 08521C 7F0506EC 0FC13803 */ jal objIsCollectable /* 085220 7F0506F0 AFA40084 */ sw $a0, 0x84($sp) /* 085224 7F0506F4 1040000B */ beqz $v0, .L7F050724 /* 085228 7F0506F8 8FA40084 */ lw $a0, 0x84($sp) /* 08522C 7F0506FC 908F0003 */ lbu $t7, 3($a0) /* 085230 7F050700 24010011 */ li $at, 17 /* 085234 7F050704 51E10008 */ beql $t7, $at, .L7F050728 /* 085238 7F050708 8FA40084 */ lw $a0, 0x84($sp) /* 08523C 7F05070C 8C820008 */ lw $v0, 8($a0) /* 085240 7F050710 0002C2C0 */ sll $t8, $v0, 0xb /* 085244 7F050714 0703000B */ bgezl $t8, .L7F050744 /* 085248 7F050718 00024B00 */ sll $t1, $v0, 0xc /* 08524C 7F05071C 10000180 */ b .L7F050D20 /* 085250 7F050720 00001025 */ move $v0, $zero .L7F050724: /* 085254 7F050724 8FA40084 */ lw $a0, 0x84($sp) .L7F050728: /* 085258 7F050728 8C820008 */ lw $v0, 8($a0) /* 08525C 7F05072C 0002CB40 */ sll $t9, $v0, 0xd /* 085260 7F050730 07220004 */ bltzl $t9, .L7F050744 /* 085264 7F050734 00024B00 */ sll $t1, $v0, 0xc /* 085268 7F050738 10000179 */ b .L7F050D20 /* 08526C 7F05073C 00001025 */ move $v0, $zero /* 085270 7F050740 00024B00 */ sll $t1, $v0, 0xc .L7F050744: /* 085274 7F050744 05230004 */ bgezl $t1, .L7F050758 /* 085278 7F050748 8C8A0064 */ lw $t2, 0x64($a0) /* 08527C 7F05074C 10000174 */ b .L7F050D20 /* 085280 7F050750 00001025 */ move $v0, $zero /* 085284 7F050754 8C8A0064 */ lw $t2, 0x64($a0) .L7F050758: /* 085288 7F050758 314B0080 */ andi $t3, $t2, 0x80 /* 08528C 7F05075C 1160000A */ beqz $t3, .L7F050788 /* 085290 7F050760 00000000 */ nop /* 085294 7F050764 8C82006C */ lw $v0, 0x6c($a0) /* 085298 7F050768 8C4C00BC */ lw $t4, 0xbc($v0) /* 08529C 7F05076C 19800006 */ blez $t4, .L7F050788 /* 0852A0 7F050770 00000000 */ nop /* 0852A4 7F050774 8C4D0090 */ lw $t5, 0x90($v0) /* 0852A8 7F050778 15A00003 */ bnez $t5, .L7F050788 /* 0852AC 7F05077C 00000000 */ nop /* 0852B0 7F050780 10000167 */ b .L7F050D20 /* 0852B4 7F050784 00001025 */ move $v0, $zero .L7F050788: /* 0852B8 7F050788 0FC0F9EB */ jal objCanPickupFromSafe /* 0852BC 7F05078C 00000000 */ nop /* 0852C0 7F050790 14400003 */ bnez $v0, .L7F0507A0 /* 0852C4 7F050794 8FA50084 */ lw $a1, 0x84($sp) /* 0852C8 7F050798 10000161 */ b .L7F050D20 /* 0852CC 7F05079C 00001025 */ move $v0, $zero .L7F0507A0: /* 0852D0 7F0507A0 90A20003 */ lbu $v0, 3($a1) /* 0852D4 7F0507A4 24010008 */ li $at, 8 /* 0852D8 7F0507A8 8FAE0088 */ lw $t6, 0x88($sp) /* 0852DC 7F0507AC 54410064 */ bnel $v0, $at, .L7F050940 /* 0852E0 7F0507B0 24010007 */ li $at, 7 /* 0852E4 7F0507B4 8DC30004 */ lw $v1, 4($t6) /* 0852E8 7F0507B8 2401001A */ li $at, 26 /* 0852EC 7F0507BC 80640080 */ lb $a0, 0x80($v1) /* 0852F0 7F0507C0 10810003 */ beq $a0, $at, .L7F0507D0 /* 0852F4 7F0507C4 24010057 */ li $at, 87 /* 0852F8 7F0507C8 5481000B */ bnel $a0, $at, .L7F0507F8 /* 0852FC 7F0507CC 2401001D */ li $at, 29 .L7F0507D0: /* 085300 7F0507D0 846F0082 */ lh $t7, 0x82($v1) /* 085304 7F0507D4 05E10005 */ bgez $t7, .L7F0507EC /* 085308 7F0507D8 00000000 */ nop /* 08530C 7F0507DC 8CB80064 */ lw $t8, 0x64($a1) /* 085310 7F0507E0 33190004 */ andi $t9, $t8, 4 /* 085314 7F0507E4 53200004 */ beql $t9, $zero, .L7F0507F8 /* 085318 7F0507E8 2401001D */ li $at, 29 .L7F0507EC: /* 08531C 7F0507EC 1000014C */ b .L7F050D20 /* 085320 7F0507F0 00001025 */ move $v0, $zero /* 085324 7F0507F4 2401001D */ li $at, 29 .L7F0507F8: /* 085328 7F0507F8 1081000D */ beq $a0, $at, .L7F050830 /* 08532C 7F0507FC 2401001C */ li $at, 28 /* 085330 7F050800 1081000B */ beq $a0, $at, .L7F050830 /* 085334 7F050804 2401001B */ li $at, 27 /* 085338 7F050808 10810009 */ beq $a0, $at, .L7F050830 /* 08533C 7F05080C 24010021 */ li $at, 33 /* 085340 7F050810 10810007 */ beq $a0, $at, .L7F050830 /* 085344 7F050814 2401002F */ li $at, 47 /* 085348 7F050818 10810005 */ beq $a0, $at, .L7F050830 /* 08534C 7F05081C 24010030 */ li $at, 48 /* 085350 7F050820 10810003 */ beq $a0, $at, .L7F050830 /* 085354 7F050824 24010022 */ li $at, 34 /* 085358 7F050828 5481000B */ bnel $a0, $at, .L7F050858 /* 08535C 7F05082C 24010056 */ li $at, 86 .L7F050830: /* 085360 7F050830 84690082 */ lh $t1, 0x82($v1) /* 085364 7F050834 05210005 */ bgez $t1, .L7F05084C /* 085368 7F050838 00000000 */ nop /* 08536C 7F05083C 8CAA0064 */ lw $t2, 0x64($a1) /* 085370 7F050840 314B0004 */ andi $t3, $t2, 4 /* 085374 7F050844 51600004 */ beql $t3, $zero, .L7F050858 /* 085378 7F050848 24010056 */ li $at, 86 .L7F05084C: /* 08537C 7F05084C 10000134 */ b .L7F050D20 /* 085380 7F050850 00001025 */ move $v0, $zero /* 085384 7F050854 24010056 */ li $at, 86 .L7F050858: /* 085388 7F050858 14810007 */ bne $a0, $at, .L7F050878 /* 08538C 7F05085C 00000000 */ nop /* 085390 7F050860 8CAC0064 */ lw $t4, 0x64($a1) /* 085394 7F050864 318D0080 */ andi $t5, $t4, 0x80 /* 085398 7F050868 11A00003 */ beqz $t5, .L7F050878 /* 08539C 7F05086C 00000000 */ nop /* 0853A0 7F050870 1000012B */ b .L7F050D20 /* 0853A4 7F050874 00001025 */ move $v0, $zero .L7F050878: /* 0853A8 7F050878 0FC230C5 */ jal bondinvHasInvItem /* 0853AC 7F05087C AFA30080 */ sw $v1, 0x80($sp) /* 0853B0 7F050880 1040009B */ beqz $v0, .L7F050AF0 /* 0853B4 7F050884 8FA30080 */ lw $v1, 0x80($sp) /* 0853B8 7F050888 80640080 */ lb $a0, 0x80($v1) /* 0853BC 7F05088C 0FC1A50B */ jal get_ammo_type_for_weapon /* 0853C0 7F050890 AFA30080 */ sw $v1, 0x80($sp) /* 0853C4 7F050894 10400096 */ beqz $v0, .L7F050AF0 /* 0853C8 7F050898 8FA30080 */ lw $v1, 0x80($sp) /* 0853CC 7F05089C 80640080 */ lb $a0, 0x80($v1) /* 0853D0 7F0508A0 0FC1A514 */ jal get_ammo_count_for_weapon /* 0853D4 7F0508A4 AFA30080 */ sw $v1, 0x80($sp) /* 0853D8 7F0508A8 8FA30080 */ lw $v1, 0x80($sp) /* 0853DC 7F0508AC 80640080 */ lb $a0, 0x80($v1) /* 0853E0 7F0508B0 0FC1A52C */ jal get_max_ammo_for_weapon /* 0853E4 7F0508B4 AFA20038 */ sw $v0, 0x38($sp) /* 0853E8 7F0508B8 8FA60038 */ lw $a2, 0x38($sp) /* 0853EC 7F0508BC 8FA30080 */ lw $v1, 0x80($sp) /* 0853F0 7F0508C0 00C2082A */ slt $at, $a2, $v0 /* 0853F4 7F0508C4 1420008A */ bnez $at, .L7F050AF0 /* 0853F8 7F0508C8 00000000 */ nop /* 0853FC 7F0508CC 8C620084 */ lw $v0, 0x84($v1) /* 085400 7F0508D0 14400004 */ bnez $v0, .L7F0508E4 /* 085404 7F0508D4 00000000 */ nop /* 085408 7F0508D8 806E0081 */ lb $t6, 0x81($v1) /* 08540C 7F0508DC 05C00015 */ bltz $t6, .L7F050934 /* 085410 7F0508E0 00000000 */ nop .L7F0508E4: /* 085414 7F0508E4 50400005 */ beql $v0, $zero, .L7F0508FC /* 085418 7F0508E8 80650081 */ lb $a1, 0x81($v1) /* 08541C 7F0508EC 80450080 */ lb $a1, 0x80($v0) /* 085420 7F0508F0 10000003 */ b .L7F050900 /* 085424 7F0508F4 00A02025 */ move $a0, $a1 /* 085428 7F0508F8 80650081 */ lb $a1, 0x81($v1) .L7F0508FC: /* 08542C 7F0508FC 00A02025 */ move $a0, $a1 .L7F050900: /* 085430 7F050900 8C6F0008 */ lw $t7, 8($v1) /* 085434 7F050904 000FC0C0 */ sll $t8, $t7, 3 /* 085438 7F050908 07030004 */ bgezl $t8, .L7F05091C /* 08543C 7F05090C 80640080 */ lb $a0, 0x80($v1) /* 085440 7F050910 10000002 */ b .L7F05091C /* 085444 7F050914 80650080 */ lb $a1, 0x80($v1) /* 085448 7F050918 80640080 */ lb $a0, 0x80($v1) .L7F05091C: /* 08544C 7F05091C 0FC230E7 */ jal bondinvHasDualWeapon /* 085450 7F050920 00000000 */ nop /* 085454 7F050924 10400072 */ beqz $v0, .L7F050AF0 /* 085458 7F050928 00000000 */ nop /* 08545C 7F05092C 100000FC */ b .L7F050D20 /* 085460 7F050930 00001025 */ move $v0, $zero .L7F050934: /* 085464 7F050934 100000FA */ b .L7F050D20 /* 085468 7F050938 00001025 */ move $v0, $zero /* 08546C 7F05093C 24010007 */ li $at, 7 .L7F050940: /* 085470 7F050940 1441000F */ bne $v0, $at, .L7F050980 /* 085474 7F050944 8FB90088 */ lw $t9, 0x88($sp) /* 085478 7F050948 8F230004 */ lw $v1, 4($t9) /* 08547C 7F05094C 8C640080 */ lw $a0, 0x80($v1) /* 085480 7F050950 0FC1A490 */ jal check_cur_player_ammo_amount_in_inventory /* 085484 7F050954 AFA30074 */ sw $v1, 0x74($sp) /* 085488 7F050958 8FA30074 */ lw $v1, 0x74($sp) /* 08548C 7F05095C 8C640080 */ lw $a0, 0x80($v1) /* 085490 7F050960 0FC1A4B5 */ jal get_max_ammo_for_type /* 085494 7F050964 AFA20038 */ sw $v0, 0x38($sp) /* 085498 7F050968 8FA60038 */ lw $a2, 0x38($sp) /* 08549C 7F05096C 00C2082A */ slt $at, $a2, $v0 /* 0854A0 7F050970 1420005F */ bnez $at, .L7F050AF0 /* 0854A4 7F050974 00000000 */ nop /* 0854A8 7F050978 100000E9 */ b .L7F050D20 /* 0854AC 7F05097C 00001025 */ move $v0, $zero .L7F050980: /* 0854B0 7F050980 24010014 */ li $at, 20 /* 0854B4 7F050984 1441002C */ bne $v0, $at, .L7F050A38 /* 0854B8 7F050988 8FA90088 */ lw $t1, 0x88($sp) /* 0854BC 7F05098C 8D2A0004 */ lw $t2, 4($t1) /* 0854C0 7F050990 240B0001 */ li $t3, 1 /* 0854C4 7F050994 AFAB006C */ sw $t3, 0x6c($sp) /* 0854C8 7F050998 00A02025 */ move $a0, $a1 /* 0854CC 7F05099C 0FC0FFF0 */ jal objGetDestroyedLevel /* 0854D0 7F0509A0 AFAA0070 */ sw $t2, 0x70($sp) /* 0854D4 7F0509A4 10400003 */ beqz $v0, .L7F0509B4 /* 0854D8 7F0509A8 8FA30070 */ lw $v1, 0x70($sp) /* 0854DC 7F0509AC 100000DC */ b .L7F050D20 /* 0854E0 7F0509B0 00001025 */ move $v0, $zero .L7F0509B4: /* 0854E4 7F0509B4 00001025 */ move $v0, $zero .L7F0509B8: /* 0854E8 7F0509B8 24450001 */ addiu $a1, $v0, 1 /* 0854EC 7F0509BC 24010001 */ li $at, 1 /* 0854F0 7F0509C0 14410002 */ bne $v0, $at, .L7F0509CC /* 0854F4 7F0509C4 00A02025 */ move $a0, $a1 /* 0854F8 7F0509C8 24040001 */ li $a0, 1 .L7F0509CC: /* 0854FC 7F0509CC 946C0082 */ lhu $t4, 0x82($v1) /* 085500 7F0509D0 59800011 */ blezl $t4, .L7F050A18 /* 085504 7F0509D4 2401000D */ li $at, 13 /* 085508 7F0509D8 AFA30030 */ sw $v1, 0x30($sp) /* 08550C 7F0509DC AFA40064 */ sw $a0, 0x64($sp) /* 085510 7F0509E0 0FC1A490 */ jal check_cur_player_ammo_amount_in_inventory /* 085514 7F0509E4 AFA50034 */ sw $a1, 0x34($sp) /* 085518 7F0509E8 8FA40064 */ lw $a0, 0x64($sp) /* 08551C 7F0509EC 0FC1A4B5 */ jal get_max_ammo_for_type /* 085520 7F0509F0 AFA20038 */ sw $v0, 0x38($sp) /* 085524 7F0509F4 8FA60038 */ lw $a2, 0x38($sp) /* 085528 7F0509F8 8FA30030 */ lw $v1, 0x30($sp) /* 08552C 7F0509FC 8FA50034 */ lw $a1, 0x34($sp) /* 085530 7F050A00 00C2082A */ slt $at, $a2, $v0 /* 085534 7F050A04 50200004 */ beql $at, $zero, .L7F050A18 /* 085538 7F050A08 2401000D */ li $at, 13 /* 08553C 7F050A0C 10000005 */ b .L7F050A24 /* 085540 7F050A10 AFA0006C */ sw $zero, 0x6c($sp) /* 085544 7F050A14 2401000D */ li $at, 13 .L7F050A18: /* 085548 7F050A18 00A01025 */ move $v0, $a1 /* 08554C 7F050A1C 14A1FFE6 */ bne $a1, $at, .L7F0509B8 /* 085550 7F050A20 24630004 */ addiu $v1, $v1, 4 .L7F050A24: /* 085554 7F050A24 8FAD006C */ lw $t5, 0x6c($sp) /* 085558 7F050A28 11A00031 */ beqz $t5, .L7F050AF0 /* 08555C 7F050A2C 00000000 */ nop /* 085560 7F050A30 100000BB */ b .L7F050D20 /* 085564 7F050A34 00001025 */ move $v0, $zero .L7F050A38: /* 085568 7F050A38 24010015 */ li $at, 21 /* 08556C 7F050A3C 1441002C */ bne $v0, $at, .L7F050AF0 /* 085570 7F050A40 8FAE0088 */ lw $t6, 0x88($sp) /* 085574 7F050A44 8DCF0004 */ lw $t7, 4($t6) /* 085578 7F050A48 AFA0005C */ sw $zero, 0x5c($sp) /* 08557C 7F050A4C 0FC228BF */ jal get_BONDdata_watch_armor /* 085580 7F050A50 AFAF0060 */ sw $t7, 0x60($sp) /* 085584 7F050A54 8FB80060 */ lw $t8, 0x60($sp) /* 085588 7F050A58 24190001 */ li $t9, 1 /* 08558C 7F050A5C C7040084 */ lwc1 $f4, 0x84($t8) /* 085590 7F050A60 4600203E */ c.le.s $f4, $f0 /* 085594 7F050A64 00000000 */ nop /* 085598 7F050A68 45000003 */ bc1f .L7F050A78 /* 08559C 7F050A6C 00000000 */ nop /* 0855A0 7F050A70 1000001A */ b .L7F050ADC /* 0855A4 7F050A74 AFB9005C */ sw $t9, 0x5c($sp) .L7F050A78: /* 0855A8 7F050A78 0FC26919 */ jal getPlayerCount /* 0855AC 7F050A7C 00000000 */ nop /* 0855B0 7F050A80 28410002 */ slti $at, $v0, 2 /* 0855B4 7F050A84 54200016 */ bnezl $at, .L7F050AE0 /* 0855B8 7F050A88 8FAB005C */ lw $t3, 0x5c($sp) /* 0855BC 7F050A8C 0FC051D6 */ jal get_scenario /* 0855C0 7F050A90 00000000 */ nop /* 0855C4 7F050A94 24010002 */ li $at, 2 /* 0855C8 7F050A98 14410008 */ bne $v0, $at, .L7F050ABC /* 0855CC 7F050A9C 00401825 */ move $v1, $v0 /* 0855D0 7F050AA0 0FC233E0 */ jal bondinvIsAliveWithFlag /* 0855D4 7F050AA4 AFA20058 */ sw $v0, 0x58($sp) /* 0855D8 7F050AA8 10400004 */ beqz $v0, .L7F050ABC /* 0855DC 7F050AAC 8FA30058 */ lw $v1, 0x58($sp) /* 0855E0 7F050AB0 24090001 */ li $t1, 1 /* 0855E4 7F050AB4 10000009 */ b .L7F050ADC /* 0855E8 7F050AB8 AFA9005C */ sw $t1, 0x5c($sp) .L7F050ABC: /* 0855EC 7F050ABC 24010003 */ li $at, 3 /* 0855F0 7F050AC0 54610007 */ bnel $v1, $at, .L7F050AE0 /* 0855F4 7F050AC4 8FAB005C */ lw $t3, 0x5c($sp) /* 0855F8 7F050AC8 0FC233F0 */ jal bondinvHasGoldenGun /* 0855FC 7F050ACC 00000000 */ nop /* 085600 7F050AD0 10400002 */ beqz $v0, .L7F050ADC /* 085604 7F050AD4 240A0001 */ li $t2, 1 /* 085608 7F050AD8 AFAA005C */ sw $t2, 0x5c($sp) .L7F050ADC: /* 08560C 7F050ADC 8FAB005C */ lw $t3, 0x5c($sp) .L7F050AE0: /* 085610 7F050AE0 11600003 */ beqz $t3, .L7F050AF0 /* 085614 7F050AE4 00000000 */ nop /* 085618 7F050AE8 1000008D */ b .L7F050D20 /* 08561C 7F050AEC 00001025 */ move $v0, $zero .L7F050AF0: /* 085620 7F050AF0 0FC227C4 */ jal get_curplay_vertical_rotation_in_degrees /* 085624 7F050AF4 00000000 */ nop /* 085628 7F050AF8 3C018005 */ lui $at, %hi(D_800532E0) /* 08562C 7F050AFC C42632E0 */ lwc1 $f6, %lo(D_800532E0)($at) /* 085630 7F050B00 3C0C8008 */ lui $t4, %hi(g_CurrentPlayer) /* 085634 7F050B04 4606003C */ c.lt.s $f0, $f6 /* 085638 7F050B08 00000000 */ nop /* 08563C 7F050B0C 45000007 */ bc1f .L7F050B2C /* 085640 7F050B10 00000000 */ nop /* 085644 7F050B14 8D8CA0B0 */ lw $t4, %lo(g_CurrentPlayer)($t4) /* 085648 7F050B18 8D8D1270 */ lw $t5, 0x1270($t4) /* 08564C 7F050B1C 05A10003 */ bgez $t5, .L7F050B2C /* 085650 7F050B20 00000000 */ nop /* 085654 7F050B24 1000007E */ b .L7F050D20 /* 085658 7F050B28 00001025 */ move $v0, $zero .L7F050B2C: /* 08565C 7F050B2C 0FC225E6 */ jal get_curplayer_positiondata /* 085660 7F050B30 00000000 */ nop /* 085664 7F050B34 3C0F8008 */ lui $t7, %hi(g_CurrentPlayer) /* 085668 7F050B38 8FAE0084 */ lw $t6, 0x84($sp) /* 08566C 7F050B3C 8DEFA0B0 */ lw $t7, %lo(g_CurrentPlayer)($t7) /* 085670 7F050B40 C44A0008 */ lwc1 $f10, 8($v0) /* 085674 7F050B44 C452000C */ lwc1 $f18, 0xc($v0) /* 085678 7F050B48 8DF81270 */ lw $t8, 0x1270($t7) /* 08567C 7F050B4C C4460010 */ lwc1 $f6, 0x10($v0) /* 085680 7F050B50 C5C80058 */ lwc1 $f8, 0x58($t6) /* 085684 7F050B54 C5D0005C */ lwc1 $f16, 0x5c($t6) /* 085688 7F050B58 C5C40060 */ lwc1 $f4, 0x60($t6) /* 08568C 7F050B5C 2B01003C */ slti $at, $t8, 0x3c /* 085690 7F050B60 00404025 */ move $t0, $v0 /* 085694 7F050B64 460A4001 */ sub.s $f0, $f8, $f10 /* 085698 7F050B68 46128301 */ sub.s $f12, $f16, $f18 /* 08569C 7F050B6C 14200022 */ bnez $at, .L7F050BF8 /* 0856A0 7F050B70 46062081 */ sub.s $f2, $f4, $f6 /* 0856A4 7F050B74 46000202 */ mul.s $f8, $f0, $f0 /* 0856A8 7F050B78 3C018005 */ lui $at, %hi(D_800532E4) /* 0856AC 7F050B7C C43232E4 */ lwc1 $f18, %lo(D_800532E4)($at) /* 0856B0 7F050B80 46021282 */ mul.s $f10, $f2, $f2 /* 0856B4 7F050B84 3C01C3FA */ li $at, 0xC3FA0000 # -500.000000 /* 0856B8 7F050B88 00001025 */ move $v0, $zero /* 0856BC 7F050B8C 460A4400 */ add.s $f16, $f8, $f10 /* 0856C0 7F050B90 4612803E */ c.le.s $f16, $f18 /* 0856C4 7F050B94 00000000 */ nop /* 0856C8 7F050B98 45000002 */ bc1f .L7F050BA4 /* 0856CC 7F050B9C 00000000 */ nop /* 0856D0 7F050BA0 24020001 */ li $v0, 1 .L7F050BA4: /* 0856D4 7F050BA4 10400012 */ beqz $v0, .L7F050BF0 /* 0856D8 7F050BA8 00403025 */ move $a2, $v0 /* 0856DC 7F050BAC 44812000 */ mtc1 $at, $f4 /* 0856E0 7F050BB0 3C0143FA */ li $at, 0x43FA0000 # 500.000000 /* 0856E4 7F050BB4 00001025 */ move $v0, $zero /* 0856E8 7F050BB8 460C203E */ c.le.s $f4, $f12 /* 0856EC 7F050BBC 00000000 */ nop /* 0856F0 7F050BC0 45000002 */ bc1f .L7F050BCC /* 0856F4 7F050BC4 00000000 */ nop /* 0856F8 7F050BC8 24020001 */ li $v0, 1 .L7F050BCC: /* 0856FC 7F050BCC 10400008 */ beqz $v0, .L7F050BF0 /* 085700 7F050BD0 00403025 */ move $a2, $v0 /* 085704 7F050BD4 44813000 */ mtc1 $at, $f6 /* 085708 7F050BD8 00003025 */ move $a2, $zero /* 08570C 7F050BDC 4606603E */ c.le.s $f12, $f6 /* 085710 7F050BE0 00000000 */ nop /* 085714 7F050BE4 45000002 */ bc1f .L7F050BF0 /* 085718 7F050BE8 00000000 */ nop /* 08571C 7F050BEC 24060001 */ li $a2, 1 .L7F050BF0: /* 085720 7F050BF0 10000021 */ b .L7F050C78 /* 085724 7F050BF4 00C01825 */ move $v1, $a2 .L7F050BF8: /* 085728 7F050BF8 46000202 */ mul.s $f8, $f0, $f0 /* 08572C 7F050BFC 3C018005 */ lui $at, %hi(D_800532E8) /* 085730 7F050C00 C43032E8 */ lwc1 $f16, %lo(D_800532E8)($at) /* 085734 7F050C04 46021282 */ mul.s $f10, $f2, $f2 /* 085738 7F050C08 3C01C348 */ li $at, 0xC3480000 # -200.000000 /* 08573C 7F050C0C 00001025 */ move $v0, $zero /* 085740 7F050C10 460A4480 */ add.s $f18, $f8, $f10 /* 085744 7F050C14 4610903E */ c.le.s $f18, $f16 /* 085748 7F050C18 00000000 */ nop /* 08574C 7F050C1C 45000002 */ bc1f .L7F050C28 /* 085750 7F050C20 00000000 */ nop /* 085754 7F050C24 24020001 */ li $v0, 1 .L7F050C28: /* 085758 7F050C28 10400012 */ beqz $v0, .L7F050C74 /* 08575C 7F050C2C 00403025 */ move $a2, $v0 /* 085760 7F050C30 44812000 */ mtc1 $at, $f4 /* 085764 7F050C34 3C014348 */ li $at, 0x43480000 # 200.000000 /* 085768 7F050C38 00001025 */ move $v0, $zero /* 08576C 7F050C3C 460C203E */ c.le.s $f4, $f12 /* 085770 7F050C40 00000000 */ nop /* 085774 7F050C44 45000002 */ bc1f .L7F050C50 /* 085778 7F050C48 00000000 */ nop /* 08577C 7F050C4C 24020001 */ li $v0, 1 .L7F050C50: /* 085780 7F050C50 10400008 */ beqz $v0, .L7F050C74 /* 085784 7F050C54 00403025 */ move $a2, $v0 /* 085788 7F050C58 44813000 */ mtc1 $at, $f6 /* 08578C 7F050C5C 00003025 */ move $a2, $zero /* 085790 7F050C60 4606603E */ c.le.s $f12, $f6 /* 085794 7F050C64 00000000 */ nop /* 085798 7F050C68 45020003 */ bc1fl .L7F050C78 /* 08579C 7F050C6C 00C01825 */ move $v1, $a2 /* 0857A0 7F050C70 24060001 */ li $a2, 1 .L7F050C74: /* 0857A4 7F050C74 00C01825 */ move $v1, $a2 .L7F050C78: /* 0857A8 7F050C78 10C00022 */ beqz $a2, .L7F050D04 /* 0857AC 7F050C7C 8FB90084 */ lw $t9, 0x84($sp) /* 0857B0 7F050C80 8F29000C */ lw $t1, 0xc($t9) /* 0857B4 7F050C84 8FA20088 */ lw $v0, 0x88($sp) /* 0857B8 7F050C88 3C0141F0 */ li $at, 0x41F00000 # 30.000000 /* 0857BC 7F050C8C 312A1000 */ andi $t2, $t1, 0x1000 /* 0857C0 7F050C90 1540001C */ bnez $t2, .L7F050D04 /* 0857C4 7F050C94 27A4003C */ addiu $a0, $sp, 0x3c /* 0857C8 7F050C98 8D0B0014 */ lw $t3, 0x14($t0) /* 0857CC 7F050C9C 44810000 */ mtc1 $at, $f0 /* 0857D0 7F050CA0 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 0857D4 7F050CA4 AFAB003C */ sw $t3, 0x3c($sp) /* 0857D8 7F050CA8 C4480010 */ lwc1 $f8, 0x10($v0) /* 0857DC 7F050CAC 8C470008 */ lw $a3, 8($v0) /* 0857E0 7F050CB0 8D060010 */ lw $a2, 0x10($t0) /* 0857E4 7F050CB4 8D050008 */ lw $a1, 8($t0) /* 0857E8 7F050CB8 44818000 */ mtc1 $at, $f16 /* 0857EC 7F050CBC 44805000 */ mtc1 $zero, $f10 /* 0857F0 7F050CC0 240C0002 */ li $t4, 2 /* 0857F4 7F050CC4 AFAC0014 */ sw $t4, 0x14($sp) /* 0857F8 7F050CC8 AFA30040 */ sw $v1, 0x40($sp) /* 0857FC 7F050CCC E7A0001C */ swc1 $f0, 0x1c($sp) /* 085800 7F050CD0 E7A00018 */ swc1 $f0, 0x18($sp) /* 085804 7F050CD4 E7A80010 */ swc1 $f8, 0x10($sp) /* 085808 7F050CD8 E7B00024 */ swc1 $f16, 0x24($sp) /* 08580C 7F050CDC 0FC2C389 */ jal stanTestLineUnobstructed /* 085810 7F050CE0 E7AA0020 */ swc1 $f10, 0x20($sp) /* 085814 7F050CE4 10400006 */ beqz $v0, .L7F050D00 /* 085818 7F050CE8 8FA30040 */ lw $v1, 0x40($sp) /* 08581C 7F050CEC 8FAE0088 */ lw $t6, 0x88($sp) /* 085820 7F050CF0 8FAD003C */ lw $t5, 0x3c($sp) /* 085824 7F050CF4 8DCF0014 */ lw $t7, 0x14($t6) /* 085828 7F050CF8 11AF0002 */ beq $t5, $t7, .L7F050D04 /* 08582C 7F050CFC 00000000 */ nop .L7F050D00: /* 085830 7F050D00 00001825 */ move $v1, $zero .L7F050D04: /* 085834 7F050D04 10600006 */ beqz $v1, .L7F050D20 /* 085838 7F050D08 00001025 */ move $v0, $zero /* 08583C 7F050D0C 8FA40088 */ lw $a0, 0x88($sp) /* 085840 7F050D10 0FC14094 */ jal collect_or_interact_object /* 085844 7F050D14 24050001 */ li $a1, 1 /* 085848 7F050D18 10000002 */ b .L7F050D24 /* 08584C 7F050D1C 8FBF002C */ lw $ra, 0x2c($sp) .L7F050D20: /* 085850 7F050D20 8FBF002C */ lw $ra, 0x2c($sp) .L7F050D24: /* 085854 7F050D24 27BD0088 */ addiu $sp, $sp, 0x88 /* 085858 7F050D28 03E00008 */ jr $ra /* 08585C 7F050D2C 00000000 */ nop ) #endif #ifdef VERSION_JP GLOBAL_ASM( .late_rodata glabel D_800532E0 .word 0xbf490fdb /*-0.78539819*/ glabel D_800532E4 .word 0x47ef4200 /*122500.0*/ glabel D_800532E8 .word 0x461c4000 /*10000.0*/ .text glabel object_collectability_routines /* 085650 7F050AE0 27BDFF70 */ addiu $sp, $sp, -0x90 /* 085654 7F050AE4 AFBF0034 */ sw $ra, 0x34($sp) /* 085658 7F050AE8 AFB00030 */ sw $s0, 0x30($sp) /* 08565C 7F050AEC AFA40090 */ sw $a0, 0x90($sp) /* 085660 7F050AF0 8C840004 */ lw $a0, 4($a0) /* 085664 7F050AF4 0FC13904 */ jal objIsCollectable /* 085668 7F050AF8 AFA4008C */ sw $a0, 0x8c($sp) /* 08566C 7F050AFC 1040000B */ beqz $v0, .Ljp7F050B2C /* 085670 7F050B00 8FA4008C */ lw $a0, 0x8c($sp) /* 085674 7F050B04 908F0003 */ lbu $t7, 3($a0) /* 085678 7F050B08 24010011 */ li $at, 17 /* 08567C 7F050B0C 51E10008 */ beql $t7, $at, .Ljp7F050B30 /* 085680 7F050B10 8FA4008C */ lw $a0, 0x8c($sp) /* 085684 7F050B14 8C820008 */ lw $v0, 8($a0) /* 085688 7F050B18 0002C2C0 */ sll $t8, $v0, 0xb /* 08568C 7F050B1C 0703000B */ bgezl $t8, .Ljp7F050B4C /* 085690 7F050B20 00024B00 */ sll $t1, $v0, 0xc /* 085694 7F050B24 100001BC */ b .Ljp7F051218 /* 085698 7F050B28 00001025 */ move $v0, $zero .Ljp7F050B2C: /* 08569C 7F050B2C 8FA4008C */ lw $a0, 0x8c($sp) .Ljp7F050B30: /* 0856A0 7F050B30 8C820008 */ lw $v0, 8($a0) /* 0856A4 7F050B34 0002CB40 */ sll $t9, $v0, 0xd /* 0856A8 7F050B38 07220004 */ bltzl $t9, .Ljp7F050B4C /* 0856AC 7F050B3C 00024B00 */ sll $t1, $v0, 0xc /* 0856B0 7F050B40 100001B5 */ b .Ljp7F051218 /* 0856B4 7F050B44 00001025 */ move $v0, $zero /* 0856B8 7F050B48 00024B00 */ sll $t1, $v0, 0xc .Ljp7F050B4C: /* 0856BC 7F050B4C 05230004 */ bgezl $t1, .Ljp7F050B60 /* 0856C0 7F050B50 8C8A0064 */ lw $t2, 0x64($a0) /* 0856C4 7F050B54 100001B0 */ b .Ljp7F051218 /* 0856C8 7F050B58 00001025 */ move $v0, $zero /* 0856CC 7F050B5C 8C8A0064 */ lw $t2, 0x64($a0) .Ljp7F050B60: /* 0856D0 7F050B60 314B0080 */ andi $t3, $t2, 0x80 /* 0856D4 7F050B64 1160000A */ beqz $t3, .Ljp7F050B90 /* 0856D8 7F050B68 00000000 */ nop /* 0856DC 7F050B6C 8C82006C */ lw $v0, 0x6c($a0) /* 0856E0 7F050B70 8C4C00BC */ lw $t4, 0xbc($v0) /* 0856E4 7F050B74 19800006 */ blez $t4, .Ljp7F050B90 /* 0856E8 7F050B78 00000000 */ nop /* 0856EC 7F050B7C 8C4D0090 */ lw $t5, 0x90($v0) /* 0856F0 7F050B80 15A00003 */ bnez $t5, .Ljp7F050B90 /* 0856F4 7F050B84 00000000 */ nop /* 0856F8 7F050B88 100001A3 */ b .Ljp7F051218 /* 0856FC 7F050B8C 00001025 */ move $v0, $zero .Ljp7F050B90: /* 085700 7F050B90 0FC0FAAB */ jal objCanPickupFromSafe /* 085704 7F050B94 00000000 */ nop /* 085708 7F050B98 14400003 */ bnez $v0, .Ljp7F050BA8 /* 08570C 7F050B9C 8FA5008C */ lw $a1, 0x8c($sp) /* 085710 7F050BA0 1000019D */ b .Ljp7F051218 /* 085714 7F050BA4 00001025 */ move $v0, $zero .Ljp7F050BA8: /* 085718 7F050BA8 90A20003 */ lbu $v0, 3($a1) /* 08571C 7F050BAC 24010008 */ li $at, 8 /* 085720 7F050BB0 8FAE0090 */ lw $t6, 0x90($sp) /* 085724 7F050BB4 54410060 */ bnel $v0, $at, .Ljp7F050D38 /* 085728 7F050BB8 24010007 */ li $at, 7 /* 08572C 7F050BBC 8DD00004 */ lw $s0, 4($t6) /* 085730 7F050BC0 2401001A */ li $at, 26 /* 085734 7F050BC4 82040080 */ lb $a0, 0x80($s0) /* 085738 7F050BC8 10810003 */ beq $a0, $at, .Ljp7F050BD8 /* 08573C 7F050BCC 24010057 */ li $at, 87 /* 085740 7F050BD0 5481000B */ bnel $a0, $at, .Ljp7F050C00 /* 085744 7F050BD4 2401001D */ li $at, 29 .Ljp7F050BD8: /* 085748 7F050BD8 860F0082 */ lh $t7, 0x82($s0) /* 08574C 7F050BDC 05E10005 */ bgez $t7, .Ljp7F050BF4 /* 085750 7F050BE0 00000000 */ nop /* 085754 7F050BE4 8CB80064 */ lw $t8, 0x64($a1) /* 085758 7F050BE8 33190004 */ andi $t9, $t8, 4 /* 08575C 7F050BEC 53200004 */ beql $t9, $zero, .Ljp7F050C00 /* 085760 7F050BF0 2401001D */ li $at, 29 .Ljp7F050BF4: /* 085764 7F050BF4 10000188 */ b .Ljp7F051218 /* 085768 7F050BF8 00001025 */ move $v0, $zero /* 08576C 7F050BFC 2401001D */ li $at, 29 .Ljp7F050C00: /* 085770 7F050C00 1081000D */ beq $a0, $at, .Ljp7F050C38 /* 085774 7F050C04 2401001C */ li $at, 28 /* 085778 7F050C08 1081000B */ beq $a0, $at, .Ljp7F050C38 /* 08577C 7F050C0C 2401001B */ li $at, 27 /* 085780 7F050C10 10810009 */ beq $a0, $at, .Ljp7F050C38 /* 085784 7F050C14 24010021 */ li $at, 33 /* 085788 7F050C18 10810007 */ beq $a0, $at, .Ljp7F050C38 /* 08578C 7F050C1C 2401002F */ li $at, 47 /* 085790 7F050C20 10810005 */ beq $a0, $at, .Ljp7F050C38 /* 085794 7F050C24 24010030 */ li $at, 48 /* 085798 7F050C28 10810003 */ beq $a0, $at, .Ljp7F050C38 /* 08579C 7F050C2C 24010022 */ li $at, 34 /* 0857A0 7F050C30 5481000B */ bnel $a0, $at, .Ljp7F050C60 /* 0857A4 7F050C34 24010056 */ li $at, 86 .Ljp7F050C38: /* 0857A8 7F050C38 86090082 */ lh $t1, 0x82($s0) /* 0857AC 7F050C3C 05210005 */ bgez $t1, .Ljp7F050C54 /* 0857B0 7F050C40 00000000 */ nop /* 0857B4 7F050C44 8CAA0064 */ lw $t2, 0x64($a1) /* 0857B8 7F050C48 314B0004 */ andi $t3, $t2, 4 /* 0857BC 7F050C4C 51600004 */ beql $t3, $zero, .Ljp7F050C60 /* 0857C0 7F050C50 24010056 */ li $at, 86 .Ljp7F050C54: /* 0857C4 7F050C54 10000170 */ b .Ljp7F051218 /* 0857C8 7F050C58 00001025 */ move $v0, $zero /* 0857CC 7F050C5C 24010056 */ li $at, 86 .Ljp7F050C60: /* 0857D0 7F050C60 14810007 */ bne $a0, $at, .Ljp7F050C80 /* 0857D4 7F050C64 00000000 */ nop /* 0857D8 7F050C68 8CAC0064 */ lw $t4, 0x64($a1) /* 0857DC 7F050C6C 318D0080 */ andi $t5, $t4, 0x80 /* 0857E0 7F050C70 11A00003 */ beqz $t5, .Ljp7F050C80 /* 0857E4 7F050C74 00000000 */ nop /* 0857E8 7F050C78 10000167 */ b .Ljp7F051218 /* 0857EC 7F050C7C 00001025 */ move $v0, $zero .Ljp7F050C80: /* 0857F0 7F050C80 0FC232E9 */ jal bondinvHasInvItem /* 0857F4 7F050C84 00000000 */ nop /* 0857F8 7F050C88 104000D9 */ beqz $v0, .Ljp7F050FF0 /* 0857FC 7F050C8C 00000000 */ nop /* 085800 7F050C90 0FC1A686 */ jal get_ammo_type_for_weapon /* 085804 7F050C94 82040080 */ lb $a0, 0x80($s0) /* 085808 7F050C98 104000D5 */ beqz $v0, .Ljp7F050FF0 /* 08580C 7F050C9C 00000000 */ nop /* 085810 7F050CA0 0FC1A68F */ jal get_ammo_count_for_weapon /* 085814 7F050CA4 82040080 */ lb $a0, 0x80($s0) /* 085818 7F050CA8 82040080 */ lb $a0, 0x80($s0) /* 08581C 7F050CAC 0FC1A6A7 */ jal get_max_ammo_for_weapon /* 085820 7F050CB0 AFA20040 */ sw $v0, 0x40($sp) /* 085824 7F050CB4 8FA30040 */ lw $v1, 0x40($sp) /* 085828 7F050CB8 0062082A */ slt $at, $v1, $v0 /* 08582C 7F050CBC 142000CC */ bnez $at, .Ljp7F050FF0 /* 085830 7F050CC0 00000000 */ nop /* 085834 7F050CC4 8E020084 */ lw $v0, 0x84($s0) /* 085838 7F050CC8 14400004 */ bnez $v0, .Ljp7F050CDC /* 08583C 7F050CCC 00000000 */ nop /* 085840 7F050CD0 820E0081 */ lb $t6, 0x81($s0) /* 085844 7F050CD4 05C00015 */ bltz $t6, .Ljp7F050D2C /* 085848 7F050CD8 00000000 */ nop .Ljp7F050CDC: /* 08584C 7F050CDC 50400005 */ beql $v0, $zero, .Ljp7F050CF4 /* 085850 7F050CE0 82050081 */ lb $a1, 0x81($s0) /* 085854 7F050CE4 80450080 */ lb $a1, 0x80($v0) /* 085858 7F050CE8 10000003 */ b .Ljp7F050CF8 /* 08585C 7F050CEC 00A02025 */ move $a0, $a1 /* 085860 7F050CF0 82050081 */ lb $a1, 0x81($s0) .Ljp7F050CF4: /* 085864 7F050CF4 00A02025 */ move $a0, $a1 .Ljp7F050CF8: /* 085868 7F050CF8 8E0F0008 */ lw $t7, 8($s0) /* 08586C 7F050CFC 000FC0C0 */ sll $t8, $t7, 3 /* 085870 7F050D00 07030004 */ bgezl $t8, .Ljp7F050D14 /* 085874 7F050D04 82040080 */ lb $a0, 0x80($s0) /* 085878 7F050D08 10000002 */ b .Ljp7F050D14 /* 08587C 7F050D0C 82050080 */ lb $a1, 0x80($s0) /* 085880 7F050D10 82040080 */ lb $a0, 0x80($s0) .Ljp7F050D14: /* 085884 7F050D14 0FC2330B */ jal bondinvHasDualWeapon /* 085888 7F050D18 00000000 */ nop /* 08588C 7F050D1C 104000B4 */ beqz $v0, .Ljp7F050FF0 /* 085890 7F050D20 00000000 */ nop /* 085894 7F050D24 1000013C */ b .Ljp7F051218 /* 085898 7F050D28 00001025 */ move $v0, $zero .Ljp7F050D2C: /* 08589C 7F050D2C 1000013A */ b .Ljp7F051218 /* 0858A0 7F050D30 00001025 */ move $v0, $zero /* 0858A4 7F050D34 24010007 */ li $at, 7 .Ljp7F050D38: /* 0858A8 7F050D38 14410035 */ bne $v0, $at, .Ljp7F050E10 /* 0858AC 7F050D3C 8FB90090 */ lw $t9, 0x90($sp) /* 0858B0 7F050D40 8F300004 */ lw $s0, 4($t9) /* 0858B4 7F050D44 0FC1A60B */ jal check_cur_player_ammo_amount_in_inventory /* 0858B8 7F050D48 8E040080 */ lw $a0, 0x80($s0) /* 0858BC 7F050D4C 8E040080 */ lw $a0, 0x80($s0) /* 0858C0 7F050D50 0FC1A630 */ jal get_max_ammo_for_type /* 0858C4 7F050D54 AFA20040 */ sw $v0, 0x40($sp) /* 0858C8 7F050D58 8FA30040 */ lw $v1, 0x40($sp) /* 0858CC 7F050D5C 0062082A */ slt $at, $v1, $v0 /* 0858D0 7F050D60 142000A3 */ bnez $at, .Ljp7F050FF0 /* 0858D4 7F050D64 00000000 */ nop /* 0858D8 7F050D68 8E020080 */ lw $v0, 0x80($s0) /* 0858DC 7F050D6C 24010005 */ li $at, 5 /* 0858E0 7F050D70 54410007 */ bnel $v0, $at, .Ljp7F050D90 /* 0858E4 7F050D74 24010007 */ li $at, 7 /* 0858E8 7F050D78 0FC232E9 */ jal bondinvHasInvItem /* 0858EC 7F050D7C 2404001A */ li $a0, 26 /* 0858F0 7F050D80 1040009B */ beqz $v0, .Ljp7F050FF0 /* 0858F4 7F050D84 00000000 */ nop /* 0858F8 7F050D88 8E020080 */ lw $v0, 0x80($s0) /* 0858FC 7F050D8C 24010007 */ li $at, 7 .Ljp7F050D90: /* 085900 7F050D90 54410007 */ bnel $v0, $at, .Ljp7F050DB0 /* 085904 7F050D94 24010008 */ li $at, 8 /* 085908 7F050D98 0FC232E9 */ jal bondinvHasInvItem /* 08590C 7F050D9C 2404001D */ li $a0, 29 /* 085910 7F050DA0 10400093 */ beqz $v0, .Ljp7F050FF0 /* 085914 7F050DA4 00000000 */ nop /* 085918 7F050DA8 8E020080 */ lw $v0, 0x80($s0) /* 08591C 7F050DAC 24010008 */ li $at, 8 .Ljp7F050DB0: /* 085920 7F050DB0 54410007 */ bnel $v0, $at, .Ljp7F050DD0 /* 085924 7F050DB4 24010009 */ li $at, 9 /* 085928 7F050DB8 0FC232E9 */ jal bondinvHasInvItem /* 08592C 7F050DBC 2404001C */ li $a0, 28 /* 085930 7F050DC0 1040008B */ beqz $v0, .Ljp7F050FF0 /* 085934 7F050DC4 00000000 */ nop /* 085938 7F050DC8 8E020080 */ lw $v0, 0x80($s0) /* 08593C 7F050DCC 24010009 */ li $at, 9 .Ljp7F050DD0: /* 085940 7F050DD0 54410007 */ bnel $v0, $at, .Ljp7F050DF0 /* 085944 7F050DD4 2401000A */ li $at, 10 /* 085948 7F050DD8 0FC232E9 */ jal bondinvHasInvItem /* 08594C 7F050DDC 2404001B */ li $a0, 27 /* 085950 7F050DE0 10400083 */ beqz $v0, .Ljp7F050FF0 /* 085954 7F050DE4 00000000 */ nop /* 085958 7F050DE8 8E020080 */ lw $v0, 0x80($s0) /* 08595C 7F050DEC 2401000A */ li $at, 10 .Ljp7F050DF0: /* 085960 7F050DF0 14410005 */ bne $v0, $at, .Ljp7F050E08 /* 085964 7F050DF4 00000000 */ nop /* 085968 7F050DF8 0FC232E9 */ jal bondinvHasInvItem /* 08596C 7F050DFC 24040003 */ li $a0, 3 /* 085970 7F050E00 1040007B */ beqz $v0, .Ljp7F050FF0 /* 085974 7F050E04 00000000 */ nop .Ljp7F050E08: /* 085978 7F050E08 10000103 */ b .Ljp7F051218 /* 08597C 7F050E0C 00001025 */ move $v0, $zero .Ljp7F050E10: /* 085980 7F050E10 24010014 */ li $at, 20 /* 085984 7F050E14 1441004B */ bne $v0, $at, .Ljp7F050F44 /* 085988 7F050E18 8FA90090 */ lw $t1, 0x90($sp) /* 08598C 7F050E1C 8D300004 */ lw $s0, 4($t1) /* 085990 7F050E20 240A0001 */ li $t2, 1 /* 085994 7F050E24 AFAA0074 */ sw $t2, 0x74($sp) /* 085998 7F050E28 0FC100B0 */ jal objGetDestroyedLevel /* 08599C 7F050E2C 00A02025 */ move $a0, $a1 /* 0859A0 7F050E30 10400003 */ beqz $v0, .Ljp7F050E40 /* 0859A4 7F050E34 02001825 */ move $v1, $s0 /* 0859A8 7F050E38 100000F7 */ b .Ljp7F051218 /* 0859AC 7F050E3C 00001025 */ move $v0, $zero .Ljp7F050E40: /* 0859B0 7F050E40 00001025 */ move $v0, $zero .Ljp7F050E44: /* 0859B4 7F050E44 24500001 */ addiu $s0, $v0, 1 /* 0859B8 7F050E48 24010001 */ li $at, 1 /* 0859BC 7F050E4C 14410002 */ bne $v0, $at, .Ljp7F050E58 /* 0859C0 7F050E50 AFB0003C */ sw $s0, 0x3c($sp) /* 0859C4 7F050E54 24100001 */ li $s0, 1 .Ljp7F050E58: /* 0859C8 7F050E58 AFA30038 */ sw $v1, 0x38($sp) /* 0859CC 7F050E5C 946C0082 */ lhu $t4, 0x82($v1) /* 0859D0 7F050E60 02002025 */ move $a0, $s0 /* 0859D4 7F050E64 5980002E */ blezl $t4, .Ljp7F050F20 /* 0859D8 7F050E68 8FA2003C */ lw $v0, 0x3c($sp) /* 0859DC 7F050E6C 0FC1A60B */ jal check_cur_player_ammo_amount_in_inventory /* 0859E0 7F050E70 AFA30038 */ sw $v1, 0x38($sp) /* 0859E4 7F050E74 02002025 */ move $a0, $s0 /* 0859E8 7F050E78 0FC1A630 */ jal get_max_ammo_for_type /* 0859EC 7F050E7C AFA20040 */ sw $v0, 0x40($sp) /* 0859F0 7F050E80 8FA30040 */ lw $v1, 0x40($sp) /* 0859F4 7F050E84 0062082A */ slt $at, $v1, $v0 /* 0859F8 7F050E88 50200004 */ beql $at, $zero, .Ljp7F050E9C /* 0859FC 7F050E8C 24010005 */ li $at, 5 /* 085A00 7F050E90 10000027 */ b .Ljp7F050F30 /* 085A04 7F050E94 AFA00074 */ sw $zero, 0x74($sp) /* 085A08 7F050E98 24010005 */ li $at, 5 .Ljp7F050E9C: /* 085A0C 7F050E9C 56010005 */ bnel $s0, $at, .Ljp7F050EB4 /* 085A10 7F050EA0 24010007 */ li $at, 7 /* 085A14 7F050EA4 0FC232E9 */ jal bondinvHasInvItem /* 085A18 7F050EA8 2404001A */ li $a0, 26 /* 085A1C 7F050EAC 10400019 */ beqz $v0, .Ljp7F050F14 /* 085A20 7F050EB0 24010007 */ li $at, 7 .Ljp7F050EB4: /* 085A24 7F050EB4 56010005 */ bnel $s0, $at, .Ljp7F050ECC /* 085A28 7F050EB8 24010008 */ li $at, 8 /* 085A2C 7F050EBC 0FC232E9 */ jal bondinvHasInvItem /* 085A30 7F050EC0 2404001D */ li $a0, 29 /* 085A34 7F050EC4 10400013 */ beqz $v0, .Ljp7F050F14 /* 085A38 7F050EC8 24010008 */ li $at, 8 .Ljp7F050ECC: /* 085A3C 7F050ECC 56010005 */ bnel $s0, $at, .Ljp7F050EE4 /* 085A40 7F050ED0 24010009 */ li $at, 9 /* 085A44 7F050ED4 0FC232E9 */ jal bondinvHasInvItem /* 085A48 7F050ED8 2404001C */ li $a0, 28 /* 085A4C 7F050EDC 1040000D */ beqz $v0, .Ljp7F050F14 /* 085A50 7F050EE0 24010009 */ li $at, 9 .Ljp7F050EE4: /* 085A54 7F050EE4 56010005 */ bnel $s0, $at, .Ljp7F050EFC /* 085A58 7F050EE8 2401000A */ li $at, 10 /* 085A5C 7F050EEC 0FC232E9 */ jal bondinvHasInvItem /* 085A60 7F050EF0 2404001B */ li $a0, 27 /* 085A64 7F050EF4 10400007 */ beqz $v0, .Ljp7F050F14 /* 085A68 7F050EF8 2401000A */ li $at, 10 .Ljp7F050EFC: /* 085A6C 7F050EFC 56010008 */ bnel $s0, $at, .Ljp7F050F20 /* 085A70 7F050F00 8FA2003C */ lw $v0, 0x3c($sp) /* 085A74 7F050F04 0FC232E9 */ jal bondinvHasInvItem /* 085A78 7F050F08 24040003 */ li $a0, 3 /* 085A7C 7F050F0C 54400004 */ bnezl $v0, .Ljp7F050F20 /* 085A80 7F050F10 8FA2003C */ lw $v0, 0x3c($sp) .Ljp7F050F14: /* 085A84 7F050F14 10000006 */ b .Ljp7F050F30 /* 085A88 7F050F18 AFA00074 */ sw $zero, 0x74($sp) /* 085A8C 7F050F1C 8FA2003C */ lw $v0, 0x3c($sp) .Ljp7F050F20: /* 085A90 7F050F20 8FA30038 */ lw $v1, 0x38($sp) /* 085A94 7F050F24 2401000D */ li $at, 13 /* 085A98 7F050F28 1441FFC6 */ bne $v0, $at, .Ljp7F050E44 /* 085A9C 7F050F2C 24630004 */ addiu $v1, $v1, 4 .Ljp7F050F30: /* 085AA0 7F050F30 8FAD0074 */ lw $t5, 0x74($sp) /* 085AA4 7F050F34 11A0002E */ beqz $t5, .Ljp7F050FF0 /* 085AA8 7F050F38 00000000 */ nop /* 085AAC 7F050F3C 100000B6 */ b .Ljp7F051218 /* 085AB0 7F050F40 00001025 */ move $v0, $zero .Ljp7F050F44: /* 085AB4 7F050F44 24010015 */ li $at, 21 /* 085AB8 7F050F48 14410029 */ bne $v0, $at, .Ljp7F050FF0 /* 085ABC 7F050F4C 8FAE0090 */ lw $t6, 0x90($sp) /* 085AC0 7F050F50 8DD00004 */ lw $s0, 4($t6) /* 085AC4 7F050F54 0FC22A8D */ jal get_BONDdata_watch_armor /* 085AC8 7F050F58 AFA00064 */ sw $zero, 0x64($sp) /* 085ACC 7F050F5C C6040084 */ lwc1 $f4, 0x84($s0) /* 085AD0 7F050F60 240F0001 */ li $t7, 1 /* 085AD4 7F050F64 4600203E */ c.le.s $f4, $f0 /* 085AD8 7F050F68 00000000 */ nop /* 085ADC 7F050F6C 45000003 */ bc1f .Ljp7F050F7C /* 085AE0 7F050F70 00000000 */ nop /* 085AE4 7F050F74 10000019 */ b .Ljp7F050FDC /* 085AE8 7F050F78 AFAF0064 */ sw $t7, 0x64($sp) .Ljp7F050F7C: /* 085AEC 7F050F7C 0FC26C01 */ jal getPlayerCount /* 085AF0 7F050F80 00000000 */ nop /* 085AF4 7F050F84 28410002 */ slti $at, $v0, 2 /* 085AF8 7F050F88 54200015 */ bnezl $at, .Ljp7F050FE0 /* 085AFC 7F050F8C 8FA90064 */ lw $t1, 0x64($sp) /* 085B00 7F050F90 0FC05202 */ jal get_scenario /* 085B04 7F050F94 00000000 */ nop /* 085B08 7F050F98 24010002 */ li $at, 2 /* 085B0C 7F050F9C 14410007 */ bne $v0, $at, .Ljp7F050FBC /* 085B10 7F050FA0 00408025 */ move $s0, $v0 /* 085B14 7F050FA4 0FC23639 */ jal bondinvIsAliveWithFlag /* 085B18 7F050FA8 00000000 */ nop /* 085B1C 7F050FAC 10400003 */ beqz $v0, .Ljp7F050FBC /* 085B20 7F050FB0 24180001 */ li $t8, 1 /* 085B24 7F050FB4 10000009 */ b .Ljp7F050FDC /* 085B28 7F050FB8 AFB80064 */ sw $t8, 0x64($sp) .Ljp7F050FBC: /* 085B2C 7F050FBC 24010003 */ li $at, 3 /* 085B30 7F050FC0 56010007 */ bnel $s0, $at, .Ljp7F050FE0 /* 085B34 7F050FC4 8FA90064 */ lw $t1, 0x64($sp) /* 085B38 7F050FC8 0FC23649 */ jal bondinvHasGoldenGun /* 085B3C 7F050FCC 00000000 */ nop /* 085B40 7F050FD0 10400002 */ beqz $v0, .Ljp7F050FDC /* 085B44 7F050FD4 24190001 */ li $t9, 1 /* 085B48 7F050FD8 AFB90064 */ sw $t9, 0x64($sp) .Ljp7F050FDC: /* 085B4C 7F050FDC 8FA90064 */ lw $t1, 0x64($sp) .Ljp7F050FE0: /* 085B50 7F050FE0 11200003 */ beqz $t1, .Ljp7F050FF0 /* 085B54 7F050FE4 00000000 */ nop /* 085B58 7F050FE8 1000008B */ b .Ljp7F051218 /* 085B5C 7F050FEC 00001025 */ move $v0, $zero .Ljp7F050FF0: /* 085B60 7F050FF0 0FC22992 */ jal get_curplay_vertical_rotation_in_degrees /* 085B64 7F050FF4 00000000 */ nop /* 085B68 7F050FF8 3C018005 */ lui $at, %hi(D_800532E0) # $at, 0x8005 /* 085B6C 7F050FFC C4263310 */ lwc1 $f6, %lo(D_800532E0)($at) /* 085B70 7F051000 3C0A8008 */ lui $t2, %hi(g_CurrentPlayer) # $t2, 0x8008 /* 085B74 7F051004 4606003C */ c.lt.s $f0, $f6 /* 085B78 7F051008 00000000 */ nop /* 085B7C 7F05100C 45000007 */ bc1f .Ljp7F05102C /* 085B80 7F051010 00000000 */ nop /* 085B84 7F051014 8D4AA120 */ lw $t2, %lo(g_CurrentPlayer)($t2) /* 085B88 7F051018 8D4B1270 */ lw $t3, 0x1270($t2) /* 085B8C 7F05101C 05610003 */ bgez $t3, .Ljp7F05102C /* 085B90 7F051020 00000000 */ nop /* 085B94 7F051024 1000007C */ b .Ljp7F051218 /* 085B98 7F051028 00001025 */ move $v0, $zero .Ljp7F05102C: /* 085B9C 7F05102C 0FC2279B */ jal get_curplayer_positiondata /* 085BA0 7F051030 00000000 */ nop /* 085BA4 7F051034 3C0D8008 */ lui $t5, %hi(g_CurrentPlayer) # $t5, 0x8008 /* 085BA8 7F051038 8FAC008C */ lw $t4, 0x8c($sp) /* 085BAC 7F05103C 8DADA120 */ lw $t5, %lo(g_CurrentPlayer)($t5) /* 085BB0 7F051040 C44A0008 */ lwc1 $f10, 8($v0) /* 085BB4 7F051044 C452000C */ lwc1 $f18, 0xc($v0) /* 085BB8 7F051048 8DAE1270 */ lw $t6, 0x1270($t5) /* 085BBC 7F05104C C4460010 */ lwc1 $f6, 0x10($v0) /* 085BC0 7F051050 C5880058 */ lwc1 $f8, 0x58($t4) /* 085BC4 7F051054 C590005C */ lwc1 $f16, 0x5c($t4) /* 085BC8 7F051058 C5840060 */ lwc1 $f4, 0x60($t4) /* 085BCC 7F05105C 29C1003C */ slti $at, $t6, 0x3c /* 085BD0 7F051060 00404025 */ move $t0, $v0 /* 085BD4 7F051064 460A4001 */ sub.s $f0, $f8, $f10 /* 085BD8 7F051068 46128301 */ sub.s $f12, $f16, $f18 /* 085BDC 7F05106C 14200022 */ bnez $at, .Ljp7F0510F8 /* 085BE0 7F051070 46062081 */ sub.s $f2, $f4, $f6 /* 085BE4 7F051074 46000202 */ mul.s $f8, $f0, $f0 /* 085BE8 7F051078 3C018005 */ lui $at, %hi(D_800532E4) # $at, 0x8005 /* 085BEC 7F05107C C4323314 */ lwc1 $f18, %lo(D_800532E4)($at) /* 085BF0 7F051080 46021282 */ mul.s $f10, $f2, $f2 /* 085BF4 7F051084 3C01C3FA */ li $at, 0xC3FA0000 # -500.000000 /* 085BF8 7F051088 00001025 */ move $v0, $zero /* 085BFC 7F05108C 460A4400 */ add.s $f16, $f8, $f10 /* 085C00 7F051090 4612803E */ c.le.s $f16, $f18 /* 085C04 7F051094 00000000 */ nop /* 085C08 7F051098 45000002 */ bc1f .Ljp7F0510A4 /* 085C0C 7F05109C 00000000 */ nop /* 085C10 7F0510A0 24020001 */ li $v0, 1 .Ljp7F0510A4: /* 085C14 7F0510A4 10400012 */ beqz $v0, .Ljp7F0510F0 /* 085C18 7F0510A8 00401825 */ move $v1, $v0 /* 085C1C 7F0510AC 44812000 */ mtc1 $at, $f4 /* 085C20 7F0510B0 3C0143FA */ li $at, 0x43FA0000 # 500.000000 /* 085C24 7F0510B4 00001025 */ move $v0, $zero /* 085C28 7F0510B8 460C203E */ c.le.s $f4, $f12 /* 085C2C 7F0510BC 00000000 */ nop /* 085C30 7F0510C0 45000002 */ bc1f .Ljp7F0510CC /* 085C34 7F0510C4 00000000 */ nop /* 085C38 7F0510C8 24020001 */ li $v0, 1 .Ljp7F0510CC: /* 085C3C 7F0510CC 10400008 */ beqz $v0, .Ljp7F0510F0 /* 085C40 7F0510D0 00401825 */ move $v1, $v0 /* 085C44 7F0510D4 44813000 */ mtc1 $at, $f6 /* 085C48 7F0510D8 00001825 */ move $v1, $zero /* 085C4C 7F0510DC 4606603E */ c.le.s $f12, $f6 /* 085C50 7F0510E0 00000000 */ nop /* 085C54 7F0510E4 45000002 */ bc1f .Ljp7F0510F0 /* 085C58 7F0510E8 00000000 */ nop /* 085C5C 7F0510EC 24030001 */ li $v1, 1 .Ljp7F0510F0: /* 085C60 7F0510F0 10000021 */ b .Ljp7F051178 /* 085C64 7F0510F4 00608025 */ move $s0, $v1 .Ljp7F0510F8: /* 085C68 7F0510F8 46000202 */ mul.s $f8, $f0, $f0 /* 085C6C 7F0510FC 3C018005 */ lui $at, %hi(D_800532E8) # $at, 0x8005 /* 085C70 7F051100 C4303318 */ lwc1 $f16, %lo(D_800532E8)($at) /* 085C74 7F051104 46021282 */ mul.s $f10, $f2, $f2 /* 085C78 7F051108 3C01C348 */ li $at, 0xC3480000 # -200.000000 /* 085C7C 7F05110C 00001025 */ move $v0, $zero /* 085C80 7F051110 460A4480 */ add.s $f18, $f8, $f10 /* 085C84 7F051114 4610903E */ c.le.s $f18, $f16 /* 085C88 7F051118 00000000 */ nop /* 085C8C 7F05111C 45000002 */ bc1f .Ljp7F051128 /* 085C90 7F051120 00000000 */ nop /* 085C94 7F051124 24020001 */ li $v0, 1 .Ljp7F051128: /* 085C98 7F051128 10400012 */ beqz $v0, .Ljp7F051174 /* 085C9C 7F05112C 00401825 */ move $v1, $v0 /* 085CA0 7F051130 44812000 */ mtc1 $at, $f4 /* 085CA4 7F051134 3C014348 */ li $at, 0x43480000 # 200.000000 /* 085CA8 7F051138 00001025 */ move $v0, $zero /* 085CAC 7F05113C 460C203E */ c.le.s $f4, $f12 /* 085CB0 7F051140 00000000 */ nop /* 085CB4 7F051144 45000002 */ bc1f .Ljp7F051150 /* 085CB8 7F051148 00000000 */ nop /* 085CBC 7F05114C 24020001 */ li $v0, 1 .Ljp7F051150: /* 085CC0 7F051150 10400008 */ beqz $v0, .Ljp7F051174 /* 085CC4 7F051154 00401825 */ move $v1, $v0 /* 085CC8 7F051158 44813000 */ mtc1 $at, $f6 /* 085CCC 7F05115C 00001825 */ move $v1, $zero /* 085CD0 7F051160 4606603E */ c.le.s $f12, $f6 /* 085CD4 7F051164 00000000 */ nop /* 085CD8 7F051168 45020003 */ bc1fl .Ljp7F051178 /* 085CDC 7F05116C 00608025 */ move $s0, $v1 /* 085CE0 7F051170 24030001 */ li $v1, 1 .Ljp7F051174: /* 085CE4 7F051174 00608025 */ move $s0, $v1 .Ljp7F051178: /* 085CE8 7F051178 10600020 */ beqz $v1, .Ljp7F0511FC /* 085CEC 7F05117C 8FAF008C */ lw $t7, 0x8c($sp) /* 085CF0 7F051180 8DF8000C */ lw $t8, 0xc($t7) /* 085CF4 7F051184 8FA20090 */ lw $v0, 0x90($sp) /* 085CF8 7F051188 3C0141F0 */ li $at, 0x41F00000 # 30.000000 /* 085CFC 7F05118C 33191000 */ andi $t9, $t8, 0x1000 /* 085D00 7F051190 1720001A */ bnez $t9, .Ljp7F0511FC /* 085D04 7F051194 27A40044 */ addiu $a0, $sp, 0x44 /* 085D08 7F051198 8D090014 */ lw $t1, 0x14($t0) /* 085D0C 7F05119C 44810000 */ mtc1 $at, $f0 /* 085D10 7F0511A0 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 085D14 7F0511A4 AFA90044 */ sw $t1, 0x44($sp) /* 085D18 7F0511A8 C4480010 */ lwc1 $f8, 0x10($v0) /* 085D1C 7F0511AC 8C470008 */ lw $a3, 8($v0) /* 085D20 7F0511B0 8D060010 */ lw $a2, 0x10($t0) /* 085D24 7F0511B4 8D050008 */ lw $a1, 8($t0) /* 085D28 7F0511B8 44818000 */ mtc1 $at, $f16 /* 085D2C 7F0511BC 44805000 */ mtc1 $zero, $f10 /* 085D30 7F0511C0 240A0002 */ li $t2, 2 /* 085D34 7F0511C4 AFAA0014 */ sw $t2, 0x14($sp) /* 085D38 7F0511C8 E7A0001C */ swc1 $f0, 0x1c($sp) /* 085D3C 7F0511CC E7A00018 */ swc1 $f0, 0x18($sp) /* 085D40 7F0511D0 E7A80010 */ swc1 $f8, 0x10($sp) /* 085D44 7F0511D4 E7B00024 */ swc1 $f16, 0x24($sp) /* 085D48 7F0511D8 0FC2C675 */ jal stanTestLineUnobstructed /* 085D4C 7F0511DC E7AA0020 */ swc1 $f10, 0x20($sp) /* 085D50 7F0511E0 10400005 */ beqz $v0, .Ljp7F0511F8 /* 085D54 7F0511E4 8FAC0090 */ lw $t4, 0x90($sp) /* 085D58 7F0511E8 8FAB0044 */ lw $t3, 0x44($sp) /* 085D5C 7F0511EC 8D8D0014 */ lw $t5, 0x14($t4) /* 085D60 7F0511F0 116D0002 */ beq $t3, $t5, .Ljp7F0511FC /* 085D64 7F0511F4 00000000 */ nop .Ljp7F0511F8: /* 085D68 7F0511F8 00008025 */ move $s0, $zero .Ljp7F0511FC: /* 085D6C 7F0511FC 12000006 */ beqz $s0, .Ljp7F051218 /* 085D70 7F051200 00001025 */ move $v0, $zero /* 085D74 7F051204 8FA40090 */ lw $a0, 0x90($sp) /* 085D78 7F051208 0FC14195 */ jal collect_or_interact_object /* 085D7C 7F05120C 24050001 */ li $a1, 1 /* 085D80 7F051210 10000002 */ b .Ljp7F05121C /* 085D84 7F051214 8FBF0034 */ lw $ra, 0x34($sp) .Ljp7F051218: /* 085D88 7F051218 8FBF0034 */ lw $ra, 0x34($sp) .Ljp7F05121C: /* 085D8C 7F05121C 8FB00030 */ lw $s0, 0x30($sp) /* 085D90 7F051220 27BD0090 */ addiu $sp, $sp, 0x90 /* 085D94 7F051224 03E00008 */ jr $ra /* 085D98 7F051228 00000000 */ nop ) #endif #ifdef VERSION_EU GLOBAL_ASM( .late_rodata glabel D_800532E0 .word 0xbf490fdb /*-0.78539819*/ glabel D_800532E4 .word 0x47ef4200 /*122500.0*/ glabel D_800532E8 .word 0x461c4000 /*10000.0*/ .text glabel object_collectability_routines /* 085650 7F050AE0 27BDFF70 */ addiu $sp, $sp, -0x90 /* 085654 7F050AE4 AFBF0034 */ sw $ra, 0x34($sp) /* 085658 7F050AE8 AFB00030 */ sw $s0, 0x30($sp) /* 08565C 7F050AEC AFA40090 */ sw $a0, 0x90($sp) /* 085660 7F050AF0 8C840004 */ lw $a0, 4($a0) /* 085664 7F050AF4 0FC13904 */ jal objIsCollectable /* 085668 7F050AF8 AFA4008C */ sw $a0, 0x8c($sp) /* 08566C 7F050AFC 1040000B */ beqz $v0, .Ljp7F050B2C /* 085670 7F050B00 8FA4008C */ lw $a0, 0x8c($sp) /* 085674 7F050B04 908F0003 */ lbu $t7, 3($a0) /* 085678 7F050B08 24010011 */ li $at, 17 /* 08567C 7F050B0C 51E10008 */ beql $t7, $at, .Ljp7F050B30 /* 085680 7F050B10 8FA4008C */ lw $a0, 0x8c($sp) /* 085684 7F050B14 8C820008 */ lw $v0, 8($a0) /* 085688 7F050B18 0002C2C0 */ sll $t8, $v0, 0xb /* 08568C 7F050B1C 0703000B */ bgezl $t8, .Ljp7F050B4C /* 085690 7F050B20 00024B00 */ sll $t1, $v0, 0xc /* 085694 7F050B24 100001BC */ b .Ljp7F051218 /* 085698 7F050B28 00001025 */ move $v0, $zero .Ljp7F050B2C: /* 08569C 7F050B2C 8FA4008C */ lw $a0, 0x8c($sp) .Ljp7F050B30: /* 0856A0 7F050B30 8C820008 */ lw $v0, 8($a0) /* 0856A4 7F050B34 0002CB40 */ sll $t9, $v0, 0xd /* 0856A8 7F050B38 07220004 */ bltzl $t9, .Ljp7F050B4C /* 0856AC 7F050B3C 00024B00 */ sll $t1, $v0, 0xc /* 0856B0 7F050B40 100001B5 */ b .Ljp7F051218 /* 0856B4 7F050B44 00001025 */ move $v0, $zero /* 0856B8 7F050B48 00024B00 */ sll $t1, $v0, 0xc .Ljp7F050B4C: /* 0856BC 7F050B4C 05230004 */ bgezl $t1, .Ljp7F050B60 /* 0856C0 7F050B50 8C8A0064 */ lw $t2, 0x64($a0) /* 0856C4 7F050B54 100001B0 */ b .Ljp7F051218 /* 0856C8 7F050B58 00001025 */ move $v0, $zero /* 0856CC 7F050B5C 8C8A0064 */ lw $t2, 0x64($a0) .Ljp7F050B60: /* 0856D0 7F050B60 314B0080 */ andi $t3, $t2, 0x80 /* 0856D4 7F050B64 1160000A */ beqz $t3, .Ljp7F050B90 /* 0856D8 7F050B68 00000000 */ nop /* 0856DC 7F050B6C 8C82006C */ lw $v0, 0x6c($a0) /* 0856E0 7F050B70 8C4C00BC */ lw $t4, 0xbc($v0) /* 0856E4 7F050B74 19800006 */ blez $t4, .Ljp7F050B90 /* 0856E8 7F050B78 00000000 */ nop /* 0856EC 7F050B7C 8C4D0090 */ lw $t5, 0x90($v0) /* 0856F0 7F050B80 15A00003 */ bnez $t5, .Ljp7F050B90 /* 0856F4 7F050B84 00000000 */ nop /* 0856F8 7F050B88 100001A3 */ b .Ljp7F051218 /* 0856FC 7F050B8C 00001025 */ move $v0, $zero .Ljp7F050B90: /* 085700 7F050B90 0FC0FAAB */ jal objCanPickupFromSafe /* 085704 7F050B94 00000000 */ nop /* 085708 7F050B98 14400003 */ bnez $v0, .Ljp7F050BA8 /* 08570C 7F050B9C 8FA5008C */ lw $a1, 0x8c($sp) /* 085710 7F050BA0 1000019D */ b .Ljp7F051218 /* 085714 7F050BA4 00001025 */ move $v0, $zero .Ljp7F050BA8: /* 085718 7F050BA8 90A20003 */ lbu $v0, 3($a1) /* 08571C 7F050BAC 24010008 */ li $at, 8 /* 085720 7F050BB0 8FAE0090 */ lw $t6, 0x90($sp) /* 085724 7F050BB4 54410060 */ bnel $v0, $at, .Ljp7F050D38 /* 085728 7F050BB8 24010007 */ li $at, 7 /* 08572C 7F050BBC 8DD00004 */ lw $s0, 4($t6) /* 085730 7F050BC0 2401001A */ li $at, 26 /* 085734 7F050BC4 82040080 */ lb $a0, 0x80($s0) /* 085738 7F050BC8 10810003 */ beq $a0, $at, .Ljp7F050BD8 /* 08573C 7F050BCC 24010057 */ li $at, 87 /* 085740 7F050BD0 5481000B */ bnel $a0, $at, .Ljp7F050C00 /* 085744 7F050BD4 2401001D */ li $at, 29 .Ljp7F050BD8: /* 085748 7F050BD8 860F0082 */ lh $t7, 0x82($s0) /* 08574C 7F050BDC 05E10005 */ bgez $t7, .Ljp7F050BF4 /* 085750 7F050BE0 00000000 */ nop /* 085754 7F050BE4 8CB80064 */ lw $t8, 0x64($a1) /* 085758 7F050BE8 33190004 */ andi $t9, $t8, 4 /* 08575C 7F050BEC 53200004 */ beql $t9, $zero, .Ljp7F050C00 /* 085760 7F050BF0 2401001D */ li $at, 29 .Ljp7F050BF4: /* 085764 7F050BF4 10000188 */ b .Ljp7F051218 /* 085768 7F050BF8 00001025 */ move $v0, $zero /* 08576C 7F050BFC 2401001D */ li $at, 29 .Ljp7F050C00: /* 085770 7F050C00 1081000D */ beq $a0, $at, .Ljp7F050C38 /* 085774 7F050C04 2401001C */ li $at, 28 /* 085778 7F050C08 1081000B */ beq $a0, $at, .Ljp7F050C38 /* 08577C 7F050C0C 2401001B */ li $at, 27 /* 085780 7F050C10 10810009 */ beq $a0, $at, .Ljp7F050C38 /* 085784 7F050C14 24010021 */ li $at, 33 /* 085788 7F050C18 10810007 */ beq $a0, $at, .Ljp7F050C38 /* 08578C 7F050C1C 2401002F */ li $at, 47 /* 085790 7F050C20 10810005 */ beq $a0, $at, .Ljp7F050C38 /* 085794 7F050C24 24010030 */ li $at, 48 /* 085798 7F050C28 10810003 */ beq $a0, $at, .Ljp7F050C38 /* 08579C 7F050C2C 24010022 */ li $at, 34 /* 0857A0 7F050C30 5481000B */ bnel $a0, $at, .Ljp7F050C60 /* 0857A4 7F050C34 24010056 */ li $at, 86 .Ljp7F050C38: /* 0857A8 7F050C38 86090082 */ lh $t1, 0x82($s0) /* 0857AC 7F050C3C 05210005 */ bgez $t1, .Ljp7F050C54 /* 0857B0 7F050C40 00000000 */ nop /* 0857B4 7F050C44 8CAA0064 */ lw $t2, 0x64($a1) /* 0857B8 7F050C48 314B0004 */ andi $t3, $t2, 4 /* 0857BC 7F050C4C 51600004 */ beql $t3, $zero, .Ljp7F050C60 /* 0857C0 7F050C50 24010056 */ li $at, 86 .Ljp7F050C54: /* 0857C4 7F050C54 10000170 */ b .Ljp7F051218 /* 0857C8 7F050C58 00001025 */ move $v0, $zero /* 0857CC 7F050C5C 24010056 */ li $at, 86 .Ljp7F050C60: /* 0857D0 7F050C60 14810007 */ bne $a0, $at, .Ljp7F050C80 /* 0857D4 7F050C64 00000000 */ nop /* 0857D8 7F050C68 8CAC0064 */ lw $t4, 0x64($a1) /* 0857DC 7F050C6C 318D0080 */ andi $t5, $t4, 0x80 /* 0857E0 7F050C70 11A00003 */ beqz $t5, .Ljp7F050C80 /* 0857E4 7F050C74 00000000 */ nop /* 0857E8 7F050C78 10000167 */ b .Ljp7F051218 /* 0857EC 7F050C7C 00001025 */ move $v0, $zero .Ljp7F050C80: /* 0857F0 7F050C80 0FC232E9 */ jal bondinvHasInvItem /* 0857F4 7F050C84 00000000 */ nop /* 0857F8 7F050C88 104000D9 */ beqz $v0, .Ljp7F050FF0 /* 0857FC 7F050C8C 00000000 */ nop /* 085800 7F050C90 0FC1A686 */ jal get_ammo_type_for_weapon /* 085804 7F050C94 82040080 */ lb $a0, 0x80($s0) /* 085808 7F050C98 104000D5 */ beqz $v0, .Ljp7F050FF0 /* 08580C 7F050C9C 00000000 */ nop /* 085810 7F050CA0 0FC1A68F */ jal get_ammo_count_for_weapon /* 085814 7F050CA4 82040080 */ lb $a0, 0x80($s0) /* 085818 7F050CA8 82040080 */ lb $a0, 0x80($s0) /* 08581C 7F050CAC 0FC1A6A7 */ jal get_max_ammo_for_weapon /* 085820 7F050CB0 AFA20040 */ sw $v0, 0x40($sp) /* 085824 7F050CB4 8FA30040 */ lw $v1, 0x40($sp) /* 085828 7F050CB8 0062082A */ slt $at, $v1, $v0 /* 08582C 7F050CBC 142000CC */ bnez $at, .Ljp7F050FF0 /* 085830 7F050CC0 00000000 */ nop /* 085834 7F050CC4 8E020084 */ lw $v0, 0x84($s0) /* 085838 7F050CC8 14400004 */ bnez $v0, .Ljp7F050CDC /* 08583C 7F050CCC 00000000 */ nop /* 085840 7F050CD0 820E0081 */ lb $t6, 0x81($s0) /* 085844 7F050CD4 05C00015 */ bltz $t6, .Ljp7F050D2C /* 085848 7F050CD8 00000000 */ nop .Ljp7F050CDC: /* 08584C 7F050CDC 50400005 */ beql $v0, $zero, .Ljp7F050CF4 /* 085850 7F050CE0 82050081 */ lb $a1, 0x81($s0) /* 085854 7F050CE4 80450080 */ lb $a1, 0x80($v0) /* 085858 7F050CE8 10000003 */ b .Ljp7F050CF8 /* 08585C 7F050CEC 00A02025 */ move $a0, $a1 /* 085860 7F050CF0 82050081 */ lb $a1, 0x81($s0) .Ljp7F050CF4: /* 085864 7F050CF4 00A02025 */ move $a0, $a1 .Ljp7F050CF8: /* 085868 7F050CF8 8E0F0008 */ lw $t7, 8($s0) /* 08586C 7F050CFC 000FC0C0 */ sll $t8, $t7, 3 /* 085870 7F050D00 07030004 */ bgezl $t8, .Ljp7F050D14 /* 085874 7F050D04 82040080 */ lb $a0, 0x80($s0) /* 085878 7F050D08 10000002 */ b .Ljp7F050D14 /* 08587C 7F050D0C 82050080 */ lb $a1, 0x80($s0) /* 085880 7F050D10 82040080 */ lb $a0, 0x80($s0) .Ljp7F050D14: /* 085884 7F050D14 0FC2330B */ jal bondinvHasDualWeapon /* 085888 7F050D18 00000000 */ nop /* 08588C 7F050D1C 104000B4 */ beqz $v0, .Ljp7F050FF0 /* 085890 7F050D20 00000000 */ nop /* 085894 7F050D24 1000013C */ b .Ljp7F051218 /* 085898 7F050D28 00001025 */ move $v0, $zero .Ljp7F050D2C: /* 08589C 7F050D2C 1000013A */ b .Ljp7F051218 /* 0858A0 7F050D30 00001025 */ move $v0, $zero /* 0858A4 7F050D34 24010007 */ li $at, 7 .Ljp7F050D38: /* 0858A8 7F050D38 14410035 */ bne $v0, $at, .Ljp7F050E10 /* 0858AC 7F050D3C 8FB90090 */ lw $t9, 0x90($sp) /* 0858B0 7F050D40 8F300004 */ lw $s0, 4($t9) /* 0858B4 7F050D44 0FC1A60B */ jal check_cur_player_ammo_amount_in_inventory /* 0858B8 7F050D48 8E040080 */ lw $a0, 0x80($s0) /* 0858BC 7F050D4C 8E040080 */ lw $a0, 0x80($s0) /* 0858C0 7F050D50 0FC1A630 */ jal get_max_ammo_for_type /* 0858C4 7F050D54 AFA20040 */ sw $v0, 0x40($sp) /* 0858C8 7F050D58 8FA30040 */ lw $v1, 0x40($sp) /* 0858CC 7F050D5C 0062082A */ slt $at, $v1, $v0 /* 0858D0 7F050D60 142000A3 */ bnez $at, .Ljp7F050FF0 /* 0858D4 7F050D64 00000000 */ nop /* 0858D8 7F050D68 8E020080 */ lw $v0, 0x80($s0) /* 0858DC 7F050D6C 24010005 */ li $at, 5 /* 0858E0 7F050D70 54410007 */ bnel $v0, $at, .Ljp7F050D90 /* 0858E4 7F050D74 24010007 */ li $at, 7 /* 0858E8 7F050D78 0FC232E9 */ jal bondinvHasInvItem /* 0858EC 7F050D7C 2404001A */ li $a0, 26 /* 0858F0 7F050D80 1040009B */ beqz $v0, .Ljp7F050FF0 /* 0858F4 7F050D84 00000000 */ nop /* 0858F8 7F050D88 8E020080 */ lw $v0, 0x80($s0) /* 0858FC 7F050D8C 24010007 */ li $at, 7 .Ljp7F050D90: /* 085900 7F050D90 54410007 */ bnel $v0, $at, .Ljp7F050DB0 /* 085904 7F050D94 24010008 */ li $at, 8 /* 085908 7F050D98 0FC232E9 */ jal bondinvHasInvItem /* 08590C 7F050D9C 2404001D */ li $a0, 29 /* 085910 7F050DA0 10400093 */ beqz $v0, .Ljp7F050FF0 /* 085914 7F050DA4 00000000 */ nop /* 085918 7F050DA8 8E020080 */ lw $v0, 0x80($s0) /* 08591C 7F050DAC 24010008 */ li $at, 8 .Ljp7F050DB0: /* 085920 7F050DB0 54410007 */ bnel $v0, $at, .Ljp7F050DD0 /* 085924 7F050DB4 24010009 */ li $at, 9 /* 085928 7F050DB8 0FC232E9 */ jal bondinvHasInvItem /* 08592C 7F050DBC 2404001C */ li $a0, 28 /* 085930 7F050DC0 1040008B */ beqz $v0, .Ljp7F050FF0 /* 085934 7F050DC4 00000000 */ nop /* 085938 7F050DC8 8E020080 */ lw $v0, 0x80($s0) /* 08593C 7F050DCC 24010009 */ li $at, 9 .Ljp7F050DD0: /* 085940 7F050DD0 54410007 */ bnel $v0, $at, .Ljp7F050DF0 /* 085944 7F050DD4 2401000A */ li $at, 10 /* 085948 7F050DD8 0FC232E9 */ jal bondinvHasInvItem /* 08594C 7F050DDC 2404001B */ li $a0, 27 /* 085950 7F050DE0 10400083 */ beqz $v0, .Ljp7F050FF0 /* 085954 7F050DE4 00000000 */ nop /* 085958 7F050DE8 8E020080 */ lw $v0, 0x80($s0) /* 08595C 7F050DEC 2401000A */ li $at, 10 .Ljp7F050DF0: /* 085960 7F050DF0 14410005 */ bne $v0, $at, .Ljp7F050E08 /* 085964 7F050DF4 00000000 */ nop /* 085968 7F050DF8 0FC232E9 */ jal bondinvHasInvItem /* 08596C 7F050DFC 24040003 */ li $a0, 3 /* 085970 7F050E00 1040007B */ beqz $v0, .Ljp7F050FF0 /* 085974 7F050E04 00000000 */ nop .Ljp7F050E08: /* 085978 7F050E08 10000103 */ b .Ljp7F051218 /* 08597C 7F050E0C 00001025 */ move $v0, $zero .Ljp7F050E10: /* 085980 7F050E10 24010014 */ li $at, 20 /* 085984 7F050E14 1441004B */ bne $v0, $at, .Ljp7F050F44 /* 085988 7F050E18 8FA90090 */ lw $t1, 0x90($sp) /* 08598C 7F050E1C 8D300004 */ lw $s0, 4($t1) /* 085990 7F050E20 240A0001 */ li $t2, 1 /* 085994 7F050E24 AFAA0074 */ sw $t2, 0x74($sp) /* 085998 7F050E28 0FC100B0 */ jal objGetDestroyedLevel /* 08599C 7F050E2C 00A02025 */ move $a0, $a1 /* 0859A0 7F050E30 10400003 */ beqz $v0, .Ljp7F050E40 /* 0859A4 7F050E34 02001825 */ move $v1, $s0 /* 0859A8 7F050E38 100000F7 */ b .Ljp7F051218 /* 0859AC 7F050E3C 00001025 */ move $v0, $zero .Ljp7F050E40: /* 0859B0 7F050E40 00001025 */ move $v0, $zero .Ljp7F050E44: /* 0859B4 7F050E44 24500001 */ addiu $s0, $v0, 1 /* 0859B8 7F050E48 24010001 */ li $at, 1 /* 0859BC 7F050E4C 14410002 */ bne $v0, $at, .Ljp7F050E58 /* 0859C0 7F050E50 AFB0003C */ sw $s0, 0x3c($sp) /* 0859C4 7F050E54 24100001 */ li $s0, 1 .Ljp7F050E58: /* 0859C8 7F050E58 AFA30038 */ sw $v1, 0x38($sp) /* 0859CC 7F050E5C 946C0082 */ lhu $t4, 0x82($v1) /* 0859D0 7F050E60 02002025 */ move $a0, $s0 /* 0859D4 7F050E64 5980002E */ blezl $t4, .Ljp7F050F20 /* 0859D8 7F050E68 8FA2003C */ lw $v0, 0x3c($sp) /* 0859DC 7F050E6C 0FC1A60B */ jal check_cur_player_ammo_amount_in_inventory /* 0859E0 7F050E70 AFA30038 */ sw $v1, 0x38($sp) /* 0859E4 7F050E74 02002025 */ move $a0, $s0 /* 0859E8 7F050E78 0FC1A630 */ jal get_max_ammo_for_type /* 0859EC 7F050E7C AFA20040 */ sw $v0, 0x40($sp) /* 0859F0 7F050E80 8FA30040 */ lw $v1, 0x40($sp) /* 0859F4 7F050E84 0062082A */ slt $at, $v1, $v0 /* 0859F8 7F050E88 50200004 */ beql $at, $zero, .Ljp7F050E9C /* 0859FC 7F050E8C 24010005 */ li $at, 5 /* 085A00 7F050E90 10000027 */ b .Ljp7F050F30 /* 085A04 7F050E94 AFA00074 */ sw $zero, 0x74($sp) /* 085A08 7F050E98 24010005 */ li $at, 5 .Ljp7F050E9C: /* 085A0C 7F050E9C 56010005 */ bnel $s0, $at, .Ljp7F050EB4 /* 085A10 7F050EA0 24010007 */ li $at, 7 /* 085A14 7F050EA4 0FC232E9 */ jal bondinvHasInvItem /* 085A18 7F050EA8 2404001A */ li $a0, 26 /* 085A1C 7F050EAC 10400019 */ beqz $v0, .Ljp7F050F14 /* 085A20 7F050EB0 24010007 */ li $at, 7 .Ljp7F050EB4: /* 085A24 7F050EB4 56010005 */ bnel $s0, $at, .Ljp7F050ECC /* 085A28 7F050EB8 24010008 */ li $at, 8 /* 085A2C 7F050EBC 0FC232E9 */ jal bondinvHasInvItem /* 085A30 7F050EC0 2404001D */ li $a0, 29 /* 085A34 7F050EC4 10400013 */ beqz $v0, .Ljp7F050F14 /* 085A38 7F050EC8 24010008 */ li $at, 8 .Ljp7F050ECC: /* 085A3C 7F050ECC 56010005 */ bnel $s0, $at, .Ljp7F050EE4 /* 085A40 7F050ED0 24010009 */ li $at, 9 /* 085A44 7F050ED4 0FC232E9 */ jal bondinvHasInvItem /* 085A48 7F050ED8 2404001C */ li $a0, 28 /* 085A4C 7F050EDC 1040000D */ beqz $v0, .Ljp7F050F14 /* 085A50 7F050EE0 24010009 */ li $at, 9 .Ljp7F050EE4: /* 085A54 7F050EE4 56010005 */ bnel $s0, $at, .Ljp7F050EFC /* 085A58 7F050EE8 2401000A */ li $at, 10 /* 085A5C 7F050EEC 0FC232E9 */ jal bondinvHasInvItem /* 085A60 7F050EF0 2404001B */ li $a0, 27 /* 085A64 7F050EF4 10400007 */ beqz $v0, .Ljp7F050F14 /* 085A68 7F050EF8 2401000A */ li $at, 10 .Ljp7F050EFC: /* 085A6C 7F050EFC 56010008 */ bnel $s0, $at, .Ljp7F050F20 /* 085A70 7F050F00 8FA2003C */ lw $v0, 0x3c($sp) /* 085A74 7F050F04 0FC232E9 */ jal bondinvHasInvItem /* 085A78 7F050F08 24040003 */ li $a0, 3 /* 085A7C 7F050F0C 54400004 */ bnezl $v0, .Ljp7F050F20 /* 085A80 7F050F10 8FA2003C */ lw $v0, 0x3c($sp) .Ljp7F050F14: /* 085A84 7F050F14 10000006 */ b .Ljp7F050F30 /* 085A88 7F050F18 AFA00074 */ sw $zero, 0x74($sp) /* 085A8C 7F050F1C 8FA2003C */ lw $v0, 0x3c($sp) .Ljp7F050F20: /* 085A90 7F050F20 8FA30038 */ lw $v1, 0x38($sp) /* 085A94 7F050F24 2401000D */ li $at, 13 /* 085A98 7F050F28 1441FFC6 */ bne $v0, $at, .Ljp7F050E44 /* 085A9C 7F050F2C 24630004 */ addiu $v1, $v1, 4 .Ljp7F050F30: /* 085AA0 7F050F30 8FAD0074 */ lw $t5, 0x74($sp) /* 085AA4 7F050F34 11A0002E */ beqz $t5, .Ljp7F050FF0 /* 085AA8 7F050F38 00000000 */ nop /* 085AAC 7F050F3C 100000B6 */ b .Ljp7F051218 /* 085AB0 7F050F40 00001025 */ move $v0, $zero .Ljp7F050F44: /* 085AB4 7F050F44 24010015 */ li $at, 21 /* 085AB8 7F050F48 14410029 */ bne $v0, $at, .Ljp7F050FF0 /* 085ABC 7F050F4C 8FAE0090 */ lw $t6, 0x90($sp) /* 085AC0 7F050F50 8DD00004 */ lw $s0, 4($t6) /* 085AC4 7F050F54 0FC22A8D */ jal get_BONDdata_watch_armor /* 085AC8 7F050F58 AFA00064 */ sw $zero, 0x64($sp) /* 085ACC 7F050F5C C6040084 */ lwc1 $f4, 0x84($s0) /* 085AD0 7F050F60 240F0001 */ li $t7, 1 /* 085AD4 7F050F64 4600203E */ c.le.s $f4, $f0 /* 085AD8 7F050F68 00000000 */ nop /* 085ADC 7F050F6C 45000003 */ bc1f .Ljp7F050F7C /* 085AE0 7F050F70 00000000 */ nop /* 085AE4 7F050F74 10000019 */ b .Ljp7F050FDC /* 085AE8 7F050F78 AFAF0064 */ sw $t7, 0x64($sp) .Ljp7F050F7C: /* 085AEC 7F050F7C 0FC26C01 */ jal getPlayerCount /* 085AF0 7F050F80 00000000 */ nop /* 085AF4 7F050F84 28410002 */ slti $at, $v0, 2 /* 085AF8 7F050F88 54200015 */ bnezl $at, .Ljp7F050FE0 /* 085AFC 7F050F8C 8FA90064 */ lw $t1, 0x64($sp) /* 085B00 7F050F90 0FC05202 */ jal get_scenario /* 085B04 7F050F94 00000000 */ nop /* 085B08 7F050F98 24010002 */ li $at, 2 /* 085B0C 7F050F9C 14410007 */ bne $v0, $at, .Ljp7F050FBC /* 085B10 7F050FA0 00408025 */ move $s0, $v0 /* 085B14 7F050FA4 0FC23639 */ jal bondinvIsAliveWithFlag /* 085B18 7F050FA8 00000000 */ nop /* 085B1C 7F050FAC 10400003 */ beqz $v0, .Ljp7F050FBC /* 085B20 7F050FB0 24180001 */ li $t8, 1 /* 085B24 7F050FB4 10000009 */ b .Ljp7F050FDC /* 085B28 7F050FB8 AFB80064 */ sw $t8, 0x64($sp) .Ljp7F050FBC: /* 085B2C 7F050FBC 24010003 */ li $at, 3 /* 085B30 7F050FC0 56010007 */ bnel $s0, $at, .Ljp7F050FE0 /* 085B34 7F050FC4 8FA90064 */ lw $t1, 0x64($sp) /* 085B38 7F050FC8 0FC23649 */ jal bondinvHasGoldenGun /* 085B3C 7F050FCC 00000000 */ nop /* 085B40 7F050FD0 10400002 */ beqz $v0, .Ljp7F050FDC /* 085B44 7F050FD4 24190001 */ li $t9, 1 /* 085B48 7F050FD8 AFB90064 */ sw $t9, 0x64($sp) .Ljp7F050FDC: /* 085B4C 7F050FDC 8FA90064 */ lw $t1, 0x64($sp) .Ljp7F050FE0: /* 085B50 7F050FE0 11200003 */ beqz $t1, .Ljp7F050FF0 /* 085B54 7F050FE4 00000000 */ nop /* 085B58 7F050FE8 1000008B */ b .Ljp7F051218 /* 085B5C 7F050FEC 00001025 */ move $v0, $zero .Ljp7F050FF0: /* 085B60 7F050FF0 0FC22992 */ jal get_curplay_vertical_rotation_in_degrees /* 085B64 7F050FF4 00000000 */ nop /* 085B68 7F050FF8 3C018005 */ lui $at, %hi(D_800532E0) # $at, 0x8005 /* 085B6C 7F050FFC C4263310 */ lwc1 $f6, %lo(D_800532E0)($at) /* 085B70 7F051000 3C0A8008 */ lui $t2, %hi(g_CurrentPlayer) # $t2, 0x8008 /* 085B74 7F051004 4606003C */ c.lt.s $f0, $f6 /* 085B78 7F051008 00000000 */ nop /* 085B7C 7F05100C 45000007 */ bc1f .Ljp7F05102C /* 085B80 7F051010 00000000 */ nop /* 085B84 7F051014 8D4AA120 */ lw $t2, %lo(g_CurrentPlayer)($t2) /* 085B88 7F051018 8D4B1270 */ lw $t3, 0x1268($t2) /* 085B8C 7F05101C 05610003 */ bgez $t3, .Ljp7F05102C /* 085B90 7F051020 00000000 */ nop /* 085B94 7F051024 1000007C */ b .Ljp7F051218 /* 085B98 7F051028 00001025 */ move $v0, $zero .Ljp7F05102C: /* 085B9C 7F05102C 0FC2279B */ jal get_curplayer_positiondata /* 085BA0 7F051030 00000000 */ nop /* 085BA4 7F051034 3C0D8008 */ lui $t5, %hi(g_CurrentPlayer) # $t5, 0x8008 /* 085BA8 7F051038 8FAC008C */ lw $t4, 0x8c($sp) /* 085BAC 7F05103C 8DADA120 */ lw $t5, %lo(g_CurrentPlayer)($t5) /* 085BB0 7F051040 C44A0008 */ lwc1 $f10, 8($v0) /* 085BB4 7F051044 C452000C */ lwc1 $f18, 0xc($v0) /* 085BB8 7F051048 8DAE1270 */ lw $t6, 0x1268($t5) /* 085BBC 7F05104C C4460010 */ lwc1 $f6, 0x10($v0) /* 085BC0 7F051050 C5880058 */ lwc1 $f8, 0x58($t4) /* 085BC4 7F051054 C590005C */ lwc1 $f16, 0x5c($t4) /* 085BC8 7F051058 C5840060 */ lwc1 $f4, 0x60($t4) /* 085BCC 7F05105C 29C1003C */ slti $at, $t6, 0x3c /* 085BD0 7F051060 00404025 */ move $t0, $v0 /* 085BD4 7F051064 460A4001 */ sub.s $f0, $f8, $f10 /* 085BD8 7F051068 46128301 */ sub.s $f12, $f16, $f18 /* 085BDC 7F05106C 14200022 */ bnez $at, .Ljp7F0510F8 /* 085BE0 7F051070 46062081 */ sub.s $f2, $f4, $f6 /* 085BE4 7F051074 46000202 */ mul.s $f8, $f0, $f0 /* 085BE8 7F051078 3C018005 */ lui $at, %hi(D_800532E4) # $at, 0x8005 /* 085BEC 7F05107C C4323314 */ lwc1 $f18, %lo(D_800532E4)($at) /* 085BF0 7F051080 46021282 */ mul.s $f10, $f2, $f2 /* 085BF4 7F051084 3C01C3FA */ li $at, 0xC3FA0000 # -500.000000 /* 085BF8 7F051088 00001025 */ move $v0, $zero /* 085BFC 7F05108C 460A4400 */ add.s $f16, $f8, $f10 /* 085C00 7F051090 4612803E */ c.le.s $f16, $f18 /* 085C04 7F051094 00000000 */ nop /* 085C08 7F051098 45000002 */ bc1f .Ljp7F0510A4 /* 085C0C 7F05109C 00000000 */ nop /* 085C10 7F0510A0 24020001 */ li $v0, 1 .Ljp7F0510A4: /* 085C14 7F0510A4 10400012 */ beqz $v0, .Ljp7F0510F0 /* 085C18 7F0510A8 00401825 */ move $v1, $v0 /* 085C1C 7F0510AC 44812000 */ mtc1 $at, $f4 /* 085C20 7F0510B0 3C0143FA */ li $at, 0x43FA0000 # 500.000000 /* 085C24 7F0510B4 00001025 */ move $v0, $zero /* 085C28 7F0510B8 460C203E */ c.le.s $f4, $f12 /* 085C2C 7F0510BC 00000000 */ nop /* 085C30 7F0510C0 45000002 */ bc1f .Ljp7F0510CC /* 085C34 7F0510C4 00000000 */ nop /* 085C38 7F0510C8 24020001 */ li $v0, 1 .Ljp7F0510CC: /* 085C3C 7F0510CC 10400008 */ beqz $v0, .Ljp7F0510F0 /* 085C40 7F0510D0 00401825 */ move $v1, $v0 /* 085C44 7F0510D4 44813000 */ mtc1 $at, $f6 /* 085C48 7F0510D8 00001825 */ move $v1, $zero /* 085C4C 7F0510DC 4606603E */ c.le.s $f12, $f6 /* 085C50 7F0510E0 00000000 */ nop /* 085C54 7F0510E4 45000002 */ bc1f .Ljp7F0510F0 /* 085C58 7F0510E8 00000000 */ nop /* 085C5C 7F0510EC 24030001 */ li $v1, 1 .Ljp7F0510F0: /* 085C60 7F0510F0 10000021 */ b .Ljp7F051178 /* 085C64 7F0510F4 00608025 */ move $s0, $v1 .Ljp7F0510F8: /* 085C68 7F0510F8 46000202 */ mul.s $f8, $f0, $f0 /* 085C6C 7F0510FC 3C018005 */ lui $at, %hi(D_800532E8) # $at, 0x8005 /* 085C70 7F051100 C4303318 */ lwc1 $f16, %lo(D_800532E8)($at) /* 085C74 7F051104 46021282 */ mul.s $f10, $f2, $f2 /* 085C78 7F051108 3C01C348 */ li $at, 0xC3480000 # -200.000000 /* 085C7C 7F05110C 00001025 */ move $v0, $zero /* 085C80 7F051110 460A4480 */ add.s $f18, $f8, $f10 /* 085C84 7F051114 4610903E */ c.le.s $f18, $f16 /* 085C88 7F051118 00000000 */ nop /* 085C8C 7F05111C 45000002 */ bc1f .Ljp7F051128 /* 085C90 7F051120 00000000 */ nop /* 085C94 7F051124 24020001 */ li $v0, 1 .Ljp7F051128: /* 085C98 7F051128 10400012 */ beqz $v0, .Ljp7F051174 /* 085C9C 7F05112C 00401825 */ move $v1, $v0 /* 085CA0 7F051130 44812000 */ mtc1 $at, $f4 /* 085CA4 7F051134 3C014348 */ li $at, 0x43480000 # 200.000000 /* 085CA8 7F051138 00001025 */ move $v0, $zero /* 085CAC 7F05113C 460C203E */ c.le.s $f4, $f12 /* 085CB0 7F051140 00000000 */ nop /* 085CB4 7F051144 45000002 */ bc1f .Ljp7F051150 /* 085CB8 7F051148 00000000 */ nop /* 085CBC 7F05114C 24020001 */ li $v0, 1 .Ljp7F051150: /* 085CC0 7F051150 10400008 */ beqz $v0, .Ljp7F051174 /* 085CC4 7F051154 00401825 */ move $v1, $v0 /* 085CC8 7F051158 44813000 */ mtc1 $at, $f6 /* 085CCC 7F05115C 00001825 */ move $v1, $zero /* 085CD0 7F051160 4606603E */ c.le.s $f12, $f6 /* 085CD4 7F051164 00000000 */ nop /* 085CD8 7F051168 45020003 */ bc1fl .Ljp7F051178 /* 085CDC 7F05116C 00608025 */ move $s0, $v1 /* 085CE0 7F051170 24030001 */ li $v1, 1 .Ljp7F051174: /* 085CE4 7F051174 00608025 */ move $s0, $v1 .Ljp7F051178: /* 085CE8 7F051178 10600020 */ beqz $v1, .Ljp7F0511FC /* 085CEC 7F05117C 8FAF008C */ lw $t7, 0x8c($sp) /* 085CF0 7F051180 8DF8000C */ lw $t8, 0xc($t7) /* 085CF4 7F051184 8FA20090 */ lw $v0, 0x90($sp) /* 085CF8 7F051188 3C0141F0 */ li $at, 0x41F00000 # 30.000000 /* 085CFC 7F05118C 33191000 */ andi $t9, $t8, 0x1000 /* 085D00 7F051190 1720001A */ bnez $t9, .Ljp7F0511FC /* 085D04 7F051194 27A40044 */ addiu $a0, $sp, 0x44 /* 085D08 7F051198 8D090014 */ lw $t1, 0x14($t0) /* 085D0C 7F05119C 44810000 */ mtc1 $at, $f0 /* 085D10 7F0511A0 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 085D14 7F0511A4 AFA90044 */ sw $t1, 0x44($sp) /* 085D18 7F0511A8 C4480010 */ lwc1 $f8, 0x10($v0) /* 085D1C 7F0511AC 8C470008 */ lw $a3, 8($v0) /* 085D20 7F0511B0 8D060010 */ lw $a2, 0x10($t0) /* 085D24 7F0511B4 8D050008 */ lw $a1, 8($t0) /* 085D28 7F0511B8 44818000 */ mtc1 $at, $f16 /* 085D2C 7F0511BC 44805000 */ mtc1 $zero, $f10 /* 085D30 7F0511C0 240A0002 */ li $t2, 2 /* 085D34 7F0511C4 AFAA0014 */ sw $t2, 0x14($sp) /* 085D38 7F0511C8 E7A0001C */ swc1 $f0, 0x1c($sp) /* 085D3C 7F0511CC E7A00018 */ swc1 $f0, 0x18($sp) /* 085D40 7F0511D0 E7A80010 */ swc1 $f8, 0x10($sp) /* 085D44 7F0511D4 E7B00024 */ swc1 $f16, 0x24($sp) /* 085D48 7F0511D8 0FC2C675 */ jal stanTestLineUnobstructed /* 085D4C 7F0511DC E7AA0020 */ swc1 $f10, 0x20($sp) /* 085D50 7F0511E0 10400005 */ beqz $v0, .Ljp7F0511F8 /* 085D54 7F0511E4 8FAC0090 */ lw $t4, 0x90($sp) /* 085D58 7F0511E8 8FAB0044 */ lw $t3, 0x44($sp) /* 085D5C 7F0511EC 8D8D0014 */ lw $t5, 0x14($t4) /* 085D60 7F0511F0 116D0002 */ beq $t3, $t5, .Ljp7F0511FC /* 085D64 7F0511F4 00000000 */ nop .Ljp7F0511F8: /* 085D68 7F0511F8 00008025 */ move $s0, $zero .Ljp7F0511FC: /* 085D6C 7F0511FC 12000006 */ beqz $s0, .Ljp7F051218 /* 085D70 7F051200 00001025 */ move $v0, $zero /* 085D74 7F051204 8FA40090 */ lw $a0, 0x90($sp) /* 085D78 7F051208 0FC14195 */ jal collect_or_interact_object /* 085D7C 7F05120C 24050001 */ li $a1, 1 /* 085D80 7F051210 10000002 */ b .Ljp7F05121C /* 085D84 7F051214 8FBF0034 */ lw $ra, 0x34($sp) .Ljp7F051218: /* 085D88 7F051218 8FBF0034 */ lw $ra, 0x34($sp) .Ljp7F05121C: /* 085D8C 7F05121C 8FB00030 */ lw $s0, 0x30($sp) /* 085D90 7F051220 27BD0090 */ addiu $sp, $sp, 0x90 /* 085D94 7F051224 03E00008 */ jr $ra /* 085D98 7F051228 00000000 */ nop ) #endif #endif bool sub_GAME_7F050D30(PropRecord *prop, coord3d *arg1, struct coord2d *arg2, struct coord2d *arg3) { if (prop->flags & PROPFLAG_ONSCREEN) { ObjectRecord *obj = prop->obj; Mtxf *matrix = getsubmatrix(obj->model); arg1->z = matrix->m[3][2]; if (arg1->z < 0) { arg1->x = matrix->m[3][0]; arg1->y = matrix->m[3][1]; arg3->f[0] = 0; arg3->f[1] = 0; arg2->f[0] = 0; arg2->f[1] = 0; sub_GAME_7F03F90C(obj->model, &arg2->f[1], &arg2->f[0], &arg3->f[1], &arg3->f[0]); return TRUE; } } return FALSE; } void sub_GAME_7F050DE8(Model* model) { ModelNode* node; ModelFileHeader* header; union ModelRoData* rodata; union ModelRwData* rwdata; header = model->obj; node = header->RootNode; while (node != NULL) { switch (node->Opcode & 0xFF) { case MODELNODE_OPCODE_DLCOLLISION: rodata = node->Data; rwdata = modelGetNodeRwData(model, node); if ((rwdata->DisplayListCollisions.Vertices != rodata->DisplayListCollisions.Vertices) && (sub_GAME_7F04B590(header, node) != 0)) { sub_GAME_7F09C044(rwdata->DisplayListCollisions.Vertices); rwdata->DisplayListCollisions.Vertices = rodata->DisplayListCollisions.Vertices; } break; case MODELNODE_OPCODE_LOD: modelApplyDistanceRelations(model, node); break; case MODELNODE_OPCODE_SWITCH: modelApplyToggleRelations(model, node); break; case MODELNODE_OPCODE_HEAD: modelApplyHeadRelations(model, node); break; } if (node->Child) { node = node->Child; } else { while (node) { if (node->Next) { node = node->Next; break; } node = node->Parent; } } } } PropRecord *hatApplyToChr(HatRecord *hat, ChrRecord *chr, ModelFileHeader *filedata, PropRecord *prop, Model *model) { prop = objInit((ObjectRecord*)hat, filedata, prop, model); if (prop && hat->model) { f32 scale = hat->extrascale * (1.0f / 256.0f); modelSetScale(hat->model, hat->model->scale * scale); hat->model->attachedto = chr->model; hat->model->attachedto_objinst = chr->model->obj->Switches[6]; chrpropReparent(prop, chr->prop); chr->handle_positiondata_hat = prop; } return prop; } void hatLoadAndApplyToChr(HatRecord *hat, PropRecord *arg1) { s32 unused; s32 obj_idx; obj_idx = (u32) hat->obj; modelLoad(obj_idx); hatApplyToChr(hat, arg1, PitemZ_entries[obj_idx].header, NULL, 0); } void hatAssignToChr(HatRecord* hat, ChrRecord* chr) { hat->damage = (*(s32*)&hat->damage / M_U16_MAX_VALUE_F); hatLoadAndApplyToChr(hat, chr); } PropRecord *hatCreateForChr(ChrRecord *chr, s32 modelnum, u32 flags) { ModelFileHeader *modeldef; PropRecord *prop; Model *model; HatRecord *hat; modeldef = PitemZ_entries[modelnum].header; modelLoad(modelnum); prop = chrpropAllocate(); model = get_obj_instance_controller_for_header(modeldef); hat = hatCreate(prop == NULL, model == NULL, modeldef); if (prop == NULL) { prop = chrpropAllocate(); } if (model == NULL) { model = get_obj_instance_controller_for_header(modeldef); } if (hat && prop && model) { HatRecord tmp = { 0x0100, // extrascale 0x0, // state 0x11, // type 0, // obj 0, // pad 0x00004000, // flags 0, // flags2 NULL, // prop NULL, // model { 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f }, // mtx { 0.0f, 0.0f, 0.0f }, // runtime_pos { 0x00000000 }, // runtime_bitflags NULL, // ptr_allocated_collisiondata_block NULL, // projectile/embedment 0.0f, // maxdamage 1000.0f, // damage { 0xFF, 0xFF, 0xFF, 0x00 }, // shadecol { 0xFF, 0xFF, 0xFF, 0x00 }, // nextcol }; *hat = tmp; hat->obj = modelnum; hat->flags = flags | PROPFLAG_ASSIGNEDTOCHR; hat->pad = chr->chrnum; prop = hatApplyToChr(hat, chr, modeldef, prop, model); } else { if (model) { clear_model_obj(model); } if (prop) { chrpropFree(prop); prop = NULL; } } return prop; } // PD: weaponCreate WeaponObjRecord* weaponCreate(bool musthaveprop, bool musthavemodel, ModelFileHeader *modeldef) { s32 i; WeaponObjRecord *tmp; WeaponObjRecord *sp4c = NULL; WeaponObjRecord *sp48 = NULL; s32 sp44 = -1; s32 sp40 = -1; s32 sp3c = -1; for (i = g_NextWeaponSlot; TRUE; ) { if (g_WeaponSlots[i].prop == NULL) { if (!musthaveprop && !musthavemodel) { sp44 = i; break; } } else if ((g_WeaponSlots[i].runtime_bitflags & RUNTIMEBITFLAG_DEPOSIT) == 0 && (g_WeaponSlots[i].state & 4) == 0) { WeaponObjRecord* slot = &g_WeaponSlots[i]; if (((slot->timer <= 0) && (slot->prop->parent == NULL)) || (((slot->weaponnum == ITEM_REMOTEMINE) || (slot->weaponnum == ITEM_PROXIMITYMINE) || (slot->weaponnum == ITEM_TIMEDMINE)) && ((slot->prop->parent == NULL) || (slot->prop->parent->type == PROP_TYPE_OBJ) || (slot->prop->parent->type == PROP_TYPE_DOOR) || (slot->prop->parent->type == PROP_TYPE_WEAPON)))) { if (!musthavemodel || modelmgrCanSlotFitRwdata(slot->model, modeldef)) { if ((slot->prop->flags & PROPFLAG_ONSCREEN) == 0 && sp40 < 0) { sp40 = i; } if (sp3c < 0) { sp3c = i; } } } } i = (i + 1) % MAX_WEAPON_SLOTS; if (i == g_NextWeaponSlot) { break; } } if (sp44 >= 0) { g_NextWeaponSlot = (sp44 + 1) % MAX_WEAPON_SLOTS; return &g_WeaponSlots[sp44]; } tmp = (WeaponObjRecord *)setupFindObjForReuse(PROPDEF_COLLECTABLE, (ObjectRecord **)&sp4c, (ObjectRecord **)&sp48, musthaveprop, musthavemodel, modeldef); if (tmp) { return tmp; } if (sp40 >= 0) { if (g_WeaponSlots[sp40].prop) { objFreePermanently((ObjectRecord *)&g_WeaponSlots[sp40], TRUE); } g_NextWeaponSlot = (sp40 + 1) % MAX_WEAPON_SLOTS; return (g_WeaponSlots + sp40); } if (sp4c) { if (sp4c->prop) { objFreePermanently((ObjectRecord *)sp4c, TRUE); } return sp4c; } if (sp3c >= 0) { if (g_WeaponSlots[sp3c].prop) { objFreePermanently((ObjectRecord *)&g_WeaponSlots[sp3c], TRUE); } g_NextWeaponSlot = (sp3c + 1) % MAX_WEAPON_SLOTS; return (g_WeaponSlots + sp3c); } if (sp48) { if (sp48->prop) { objFreePermanently((ObjectRecord *)sp48, TRUE); } return sp48; } return NULL; } void sub_GAME_7F051588(void) { weaponCreate(FALSE, FALSE, NULL); } HatRecord *hatCreate(bool musthaveprop, bool musthavemodel, ModelFileHeader *modeldef) { s32 i; HatRecord *tmp; HatRecord *sp5c = NULL; HatRecord *sp58 = NULL; s32 sp54 = -1; s32 var_s1 = -1; s32 var_s3 = -1; for (i = g_NextHatSlot; TRUE; ) { if (g_HatSlots[i].prop == NULL) { if (!musthaveprop && !musthavemodel) { sp54 = i; break; } } else if ((g_HatSlots[i].runtime_bitflags & RUNTIMEBITFLAG_DEPOSIT) == 0 && g_HatSlots[i].prop->parent == NULL && (!musthavemodel || modelmgrCanSlotFitRwdata(g_HatSlots[i].model, modeldef))) { if ((g_HatSlots[i].prop->flags & PROPFLAG_ONSCREEN) == 0 && var_s1 < 0) { var_s1 = i; } if (var_s3 < 0) { var_s3 = i; } } i = (i + 1) % MAX_HAT_SLOTS; if (i == g_NextHatSlot) { break; } } if (sp54 >= 0) { g_NextHatSlot = (sp54 + 1) % MAX_HAT_SLOTS; return (g_HatSlots + sp54); } tmp = (HatRecord *)setupFindObjForReuse(PROPDEF_HAT, (ObjectRecord **)&sp5c, (ObjectRecord **)&sp58, musthaveprop, musthavemodel, modeldef); if (tmp) { return tmp; } if (var_s1 >= 0) { if (g_HatSlots[var_s1].prop) { objFreePermanently((ObjectRecord*)&g_HatSlots[var_s1], TRUE); } g_NextHatSlot = (var_s1 + 1) % MAX_HAT_SLOTS; return (g_HatSlots + var_s1); } if (sp5c) { if (sp5c->prop) { objFreePermanently((ObjectRecord*)sp5c, TRUE); } return sp5c; } if (var_s3 >= 0) { if (g_HatSlots[var_s3].prop) { objFreePermanently((ObjectRecord*)&g_HatSlots[var_s3], TRUE); } g_NextHatSlot = (var_s3 + 1) % MAX_HAT_SLOTS; return (g_HatSlots + var_s3); } if (sp58) { if (sp58->prop) { objFreePermanently((ObjectRecord*)sp58, TRUE); } return sp58; } return NULL; } HatRecord* sub_GAME_7F0518A8(void) { return hatCreate(0, 0, NULL); } AmmoCrateRecord *ammocrateAllocate(void) { s32 i; // Try to find a free one for (i = 0; i < MAX_AMMO_CRATES; i++) { if (g_AmmoCrates[i].prop == NULL) { return (g_AmmoCrates + i); } } // Find one that can be freed off-screen for (i = 0; i < MAX_AMMO_CRATES; i++) { if ((g_AmmoCrates[i].runtime_bitflags & RUNTIMEBITFLAG_DEPOSIT) == 0 && (g_AmmoCrates[i].state & 0x04) == 0 && g_AmmoCrates[i].prop->parent == NULL && (g_AmmoCrates[i].prop->flags & 0x02) == 0) { objFreePermanently(&g_AmmoCrates[i], TRUE); return (g_AmmoCrates + i); } } // Find one that can be freed on-screen for (i = 0; i < MAX_AMMO_CRATES; i++) { if ((g_AmmoCrates[i].runtime_bitflags & RUNTIMEBITFLAG_DEPOSIT) == 0 && (g_AmmoCrates[i].state & 0x04) == 0 && g_AmmoCrates[i].prop->parent == NULL) { objFreePermanently(&g_AmmoCrates[i], TRUE); return (g_AmmoCrates + i); } } return NULL; } void trigger_remote_mine_detonation(void) { u32 uVar1 = 1 << (get_cur_playernum()); g_RemoteMineOwnerTriggerFlag = uVar1 | g_RemoteMineOwnerTriggerFlag; sndPlaySfx(g_musicSfxBufferPtr, WATCH_DETONATE_MINE_SFX, NULL); } /** * Get Key with ID from Prop (or child of prop) * @param ID: ID of key * @param prop: Prop to search * @return: Key if found * @RenameTo: objGetKeyIfExist */ KeyRecord *check_if_entry_is_collectable(s32 ID, PropRecord *prop) //#MATCH { KeyRecord * key; PropRecord *p; if (prop->type == PROPDEF_KEY) { key = prop->obj; if (ID == key->keyID) { return key; } } for (p = prop->child; p; p = p->prev) { key = check_if_entry_is_collectable(ID, p); if (key) { return key; } } return NULL; } /** * Get Key if has been "dropped" * @param KeyID: ID of Key to Find * @return: Key if found and "Dropped" * @RenameTo: objGetKeyIfDropped */ KeyRecord *weaponFindThrown(s32 KeyID) //MATCH { KeyRecord *obj; PropRecord *prop; for (prop = get_ptr_obj_pos_list_current_entry(); prop; prop = prop->prev) { obj = check_if_entry_is_collectable(KeyID, prop); if (obj && (!(obj->runtime_bitflags & RUNTIMEBITFLAG_DEPOSIT))) { return obj; } } return NULL; } void add_obj_to_temp_proxmine_table(WeaponObjRecord* proxy) { s32 i = 0; while (1) { if (temp_mine_table[i] == NULL) { temp_mine_table[i] = proxy; #ifdef DEBUG assert(itimer == 1)) { f32 diff_x; f32 diff_z; f32 diff_y; f32 dist_sqr; diff_x = pos->x - obj->runtime_pos.x; diff_y = pos->y - obj->runtime_pos.y; diff_z = pos->z - obj->runtime_pos.z; dist_sqr = (diff_x * diff_x) + (diff_y * diff_y) + (diff_z * diff_z); if (dist_sqr < 62500.0f) { obj->timer = 0; } } } } void check_guard_detonate_proxmine(void) { ChrRecord* guard; s32 numslots; s32 i; numslots = get_numguards(); for (i = 0; i < numslots; i++) { guard = &g_ChrSlots[i]; if ((guard->model != NULL) && (guard->hidden & CHRHIDDEN_BACKGROUND_AI)) { coord3d pos; chrlvGetPatrolPercentOrPosition(guard, &pos); detonate_proxmine_In_range(&pos); } } } void propweaponSetDual(WeaponObjRecord *leftweapon, WeaponObjRecord *rightweapon) //#MATCH { leftweapon->LinkedWeaponType = rightweapon->weaponnum; leftweapon->dualweapon = rightweapon; rightweapon->LinkedWeaponType = leftweapon->weaponnum; rightweapon->dualweapon = leftweapon; } PropRecord* complete_object_data_block_return_position_entry(WeaponObjRecord* obj, ModelFileHeader* model_header, PropRecord* prop, Model* model) { prop = objInit((ObjectRecord*)obj, model_header, prop, model); if (prop != NULL) { prop->type = 4; weaponSetGunfireVisible(prop, 0); } return prop; } PropRecord* sub_GAME_7F051DD8(struct ObjectRecord* arg0, ModelFileHeader* arg1) { PropRecord* prop; prop = objInitWithModelDef(arg0, arg1); if (prop != NULL) { prop->type = PROP_TYPE_WEAPON; weaponSetGunfireVisible(prop, 0); } return prop; } bool chrEquipWeapon(WeaponObjRecord *wep, ChrRecord *chr) { WeaponObjRecord *wep2; GUNHAND hand = wep->flags & PROPFLAG_WEAPON_LEFTHANDED; if (wep->flags & PROPFLAG_WEAPON_LEFTHANDED) { hand = GUNLEFT; } else { hand = GUNRIGHT; } wep2 = wep; if (wep2->prop && wep2->model) { if (!(wep2->flags & PROPFLAG_CONCEAL_GUN)) { if (!chr->weapons_held[hand]) { wep2->model->attachedto = chr->model; if (hand == GUNRIGHT) { wep2->model->attachedto_objinst = chr->model->obj->Switches[3]; } else { wep2->model->attachedto_objinst = chr->model->obj->Switches[5]; } chr->weapons_held[hand] = wep2->prop; if (wep2->flags & PROPFLAG_IS_DOUBLE && chr->weapons_held[1 - hand]) { propweaponSetDual(wep2, chr->weapons_held[1 - hand]->obj); } } else { #ifdef DEBUG osSyncPrintf("attempted multiple attach!!!\n"); #endif return FALSE; } } chrpropReparent(wep2->prop, chr->prop); } return TRUE; } PropRecord *sub_GAME_7F051F30(WeaponObjRecord *weapon, ChrRecord *chr, ModelFileHeader *modeldef, PropRecord *prop, Model *model) { prop = complete_object_data_block_return_position_entry(weapon, modeldef, prop, model); if (prop && weapon->model) { f32 scale = weapon->extrascale * (1.0f / 256.0f); modelSetScale(weapon->model, weapon->model->scale * scale); chrEquipWeapon(weapon, chr); if (weapon->model); } return prop; } void sub_GAME_7F051FD4(WeaponObjRecord *weapon, ChrRecord *chr) { u32 stack; s32 modelnum = weapon->obj; modelLoad(modelnum); sub_GAME_7F051F30(weapon, chr, PitemZ_entries[modelnum].header, 0, 0); } void sub_GAME_7F052030(WeaponObjRecord* arg0, ChrRecord* arg1) { arg0->damage = (*(s32*)&arg0->damage) / M_U16_MAX_VALUE_F; sub_GAME_7F051FD4(arg0, arg1); } #ifdef NONMATCHING /** * @param arg0: index into PitemZ_entries, which is enum PROP * @param arg1: object_weapon.gun_pickup value * * Address 0x7F05206C. */ WeaponObjRecord blank_08_object_preset_1 = { 0x0100, //extrascale 0x0, //state 0x08, //type 0, //obj 1, //pad 0x00000000, //flags 0, //flags2 NULL, // prop NULL, // model { 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f }, //mtx { 0.0, 0.0, 0.0 }, //runtime_pos {0x00000000 }, //runtime_bitflags NULL, //ptr_allocated_collisiondata_block NULL, //projectile/embedment 0.0f, //maxdamage 1000.0f,//damage { 0xFF, 0xFF, 0xFF, 0x00 }, // shadecol { 0xFF, 0xFF, 0xFF, 0x00 }, // nextcol ITEM_UNARMED, //weaponnum -1, //LinkedWeaponType -1, //timer NULL //dualweapon }; WeaponObjRecord *create_new_item_instance_of_model(s32 modelnum, ITEM_IDS weaponid) { WeaponObjRecord *itemModel; s32 ObjInst; s32 sp20; s32 isObjInstAvailable; s32 lastObj; s32 ObjInst; s32 *temp_t1; s32 *temp_t4; s32 *temp_t8; WeaponObjRecord *NewGun; void *temp_t5; s32 lastObj; s32 ObjInst; s32 *NewWep; s32 *phi_t1; s32 *phi_t4; void *phi_t5; WeaponObjRecord *NewGun; itemModel = PitemZ_entries[modelnum]; modelLoad(); lastObj = chrpropAllocate(); ObjInst = get_obj_instance_controller_for_header(itemModel); isObjInstAvailable = ObjInst == 0; ObjInst = ObjInst; NewGun = weaponCreate(lastObj == 0, isObjInstAvailable, itemModel); lastObj = lastObj; NewGun = NewGun; if (lastObj == 0) { ObjInst = ObjInst; lastObj = chrpropAllocate(); } ObjInst = ObjInst; if (ObjInst == 0) { ObjInst = get_obj_instance_controller_for_header(itemModel); } if ((NewGun != 0) && (lastObj != 0) && (ObjInst != 0)) { //struct copy // NewWep = New_WeaponObjRecord(); // t5 = t4; NewWep = &blank_08_object_preset_1; phi_t1 = &sp20; do { temp_t8 = NewWep + 0xC; temp_t1 = phi_t1 + 0xC; temp_t1->unk - C = *NewWep; temp_t1->unk - 8 = temp_t8->unk - 8; temp_t1->unk - 4 = temp_t8->unk - 4; NewWep = temp_t8; phi_t1 = temp_t1; } while (temp_t8 != (&blank_08_object_preset_1 + 0x84)); temp_t1->unk0 = temp_t8->unk0; phi_t4 = &sp20; phi_t5 = NewGun; do { temp_t4 = phi_t4 + 0xC; temp_t5 = phi_t5 + 0xC; temp_t5->unk - C = *phi_t4; temp_t5->unk - 8 = temp_t4->unk - 8; temp_t5->unk - 4 = temp_t4->unk - 4; phi_t4 = temp_t4; phi_t5 = temp_t5; } while (temp_t4 != (&sp20 + 0x84)); temp_t5->unk0 = temp_t4->unk0; NewGun->unk80 = weaponid; NewGun->unk4 = modelnum; complete_object_data_block_return_position_entry(NewGun, itemModel, lastObj, ObjInst); } else { NewGun = NULL; if (ObjInst != 0) { clear_model_obj(ObjInst); } if (lastObj != 0) { chrpropFree(lastObj); } } return NewGun; // itemModel = PitemZ_entries[arg0].header; // (result)->unk80 = (s8) arg1; // should be object_weapon.gun_pickup } #else WeaponObjRecord blank_08_object_preset_1 = { 0x0100, //extrascale 0x0, //state 0x08, //type 0, //obj 1, //pad 0x00000000, //flags 0, //flags2 NULL, // prop NULL, // model { 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f }, //mtx { 0.0, 0.0, 0.0 }, //runtime_pos {0x00000000 }, //runtime_bitflags NULL, //ptr_allocated_collisiondata_block NULL, //projectile/embedment 0.0f, //maxdamage 1000.0f,//damage { 0xFF, 0xFF, 0xFF, 0x00 }, // shadecol { 0xFF, 0xFF, 0xFF, 0x00 }, // nextcol ITEM_UNARMED, //weaponnum -1, //LinkedWeaponType -1, //timer NULL //dualweapon }; GLOBAL_ASM( .text glabel create_new_item_instance_of_model /* 086B9C 7F05206C 00047080 */ sll $t6, $a0, 2 /* 086BA0 7F052070 27BDFF48 */ addiu $sp, $sp, -0xb8 /* 086BA4 7F052074 01C47023 */ subu $t6, $t6, $a0 /* 086BA8 7F052078 000E7080 */ sll $t6, $t6, 2 /* 086BAC 7F05207C 3C0F8004 */ lui $t7, %hi(PitemZ_entries) /* 086BB0 7F052080 01EE7821 */ addu $t7, $t7, $t6 /* 086BB4 7F052084 8DEFA228 */ lw $t7, %lo(PitemZ_entries)($t7) /* 086BB8 7F052088 AFBF001C */ sw $ra, 0x1c($sp) /* 086BBC 7F05208C AFB10018 */ sw $s1, 0x18($sp) /* 086BC0 7F052090 AFB00014 */ sw $s0, 0x14($sp) /* 086BC4 7F052094 AFA500BC */ sw $a1, 0xbc($sp) /* 086BC8 7F052098 AFA400B8 */ sw $a0, 0xb8($sp) /* 086BCC 7F05209C 0FC15B0E */ jal modelLoad /* 086BD0 7F0520A0 AFAF00B4 */ sw $t7, 0xb4($sp) /* 086BD4 7F0520A4 0FC0E90C */ jal chrpropAllocate /* 086BD8 7F0520A8 00000000 */ nop /* 086BDC 7F0520AC 00408025 */ move $s0, $v0 /* 086BE0 7F0520B0 0FC1B025 */ jal get_obj_instance_controller_for_header /* 086BE4 7F0520B4 8FA400B4 */ lw $a0, 0xb4($sp) /* 086BE8 7F0520B8 2E040001 */ sltiu $a0, $s0, 1 /* 086BEC 7F0520BC 2C450001 */ sltiu $a1, $v0, 1 /* 086BF0 7F0520C0 8FA600B4 */ lw $a2, 0xb4($sp) /* 086BF4 7F0520C4 0FC1449B */ jal weaponCreate /* 086BF8 7F0520C8 AFA200AC */ sw $v0, 0xac($sp) /* 086BFC 7F0520CC 8FA700AC */ lw $a3, 0xac($sp) /* 086C00 7F0520D0 16000005 */ bnez $s0, .L7F0520E8 /* 086C04 7F0520D4 00408825 */ move $s1, $v0 /* 086C08 7F0520D8 0FC0E90C */ jal chrpropAllocate /* 086C0C 7F0520DC AFA700AC */ sw $a3, 0xac($sp) /* 086C10 7F0520E0 8FA700AC */ lw $a3, 0xac($sp) /* 086C14 7F0520E4 00408025 */ move $s0, $v0 .L7F0520E8: /* 086C18 7F0520E8 14E00004 */ bnez $a3, .L7F0520FC /* 086C1C 7F0520EC 00000000 */ nop /* 086C20 7F0520F0 0FC1B025 */ jal get_obj_instance_controller_for_header /* 086C24 7F0520F4 8FA400B4 */ lw $a0, 0xb4($sp) /* 086C28 7F0520F8 00403825 */ move $a3, $v0 .L7F0520FC: /* 086C2C 7F0520FC 1220002C */ beqz $s1, .L7F0521B0 /* 086C30 7F052100 00000000 */ nop /* 086C34 7F052104 1200002A */ beqz $s0, .L7F0521B0 /* 086C38 7F052108 00000000 */ nop /* 086C3C 7F05210C 10E00028 */ beqz $a3, .L7F0521B0 /* 086C40 7F052110 27A20020 */ addiu $v0, $sp, 0x20 /* 086C44 7F052114 3C188003 */ lui $t8, %hi(blank_08_object_preset_1) /* 086C48 7F052118 27182194 */ addiu $t8, %lo(blank_08_object_preset_1) # addiu $t8, $t8, 0x2194 /* 086C4C 7F05211C 27080084 */ addiu $t0, $t8, 0x84 /* 086C50 7F052120 00404825 */ move $t1, $v0 .L7F052124: /* 086C54 7F052124 8F010000 */ lw $at, ($t8) /* 086C58 7F052128 2718000C */ addiu $t8, $t8, 0xc /* 086C5C 7F05212C 2529000C */ addiu $t1, $t1, 0xc /* 086C60 7F052130 AD21FFF4 */ sw $at, -0xc($t1) /* 086C64 7F052134 8F01FFF8 */ lw $at, -8($t8) /* 086C68 7F052138 AD21FFF8 */ sw $at, -8($t1) /* 086C6C 7F05213C 8F01FFFC */ lw $at, -4($t8) /* 086C70 7F052140 1708FFF8 */ bne $t8, $t0, .L7F052124 /* 086C74 7F052144 AD21FFFC */ sw $at, -4($t1) /* 086C78 7F052148 8F010000 */ lw $at, ($t8) /* 086C7C 7F05214C 00406025 */ move $t4, $v0 /* 086C80 7F052150 02206825 */ move $t5, $s1 /* 086C84 7F052154 244B0084 */ addiu $t3, $v0, 0x84 /* 086C88 7F052158 AD210000 */ sw $at, ($t1) .L7F05215C: /* 086C8C 7F05215C 8D810000 */ lw $at, ($t4) /* 086C90 7F052160 258C000C */ addiu $t4, $t4, 0xc /* 086C94 7F052164 25AD000C */ addiu $t5, $t5, 0xc /* 086C98 7F052168 ADA1FFF4 */ sw $at, -0xc($t5) /* 086C9C 7F05216C 8D81FFF8 */ lw $at, -8($t4) /* 086CA0 7F052170 ADA1FFF8 */ sw $at, -8($t5) /* 086CA4 7F052174 8D81FFFC */ lw $at, -4($t4) /* 086CA8 7F052178 158BFFF8 */ bne $t4, $t3, .L7F05215C /* 086CAC 7F05217C ADA1FFFC */ sw $at, -4($t5) /* 086CB0 7F052180 8D810000 */ lw $at, ($t4) /* 086CB4 7F052184 02202025 */ move $a0, $s1 /* 086CB8 7F052188 02003025 */ move $a2, $s0 /* 086CBC 7F05218C ADA10000 */ sw $at, ($t5) /* 086CC0 7F052190 8FAE00BC */ lw $t6, 0xbc($sp) /* 086CC4 7F052194 A22E0080 */ sb $t6, 0x80($s1) /* 086CC8 7F052198 8FAF00B8 */ lw $t7, 0xb8($sp) /* 086CCC 7F05219C A62F0004 */ sh $t7, 4($s1) /* 086CD0 7F0521A0 0FC14764 */ jal complete_object_data_block_return_position_entry /* 086CD4 7F0521A4 8FA500B4 */ lw $a1, 0xb4($sp) /* 086CD8 7F0521A8 1000000A */ b .L7F0521D4 /* 086CDC 7F0521AC 8FBF001C */ lw $ra, 0x1c($sp) .L7F0521B0: /* 086CE0 7F0521B0 10E00003 */ beqz $a3, .L7F0521C0 /* 086CE4 7F0521B4 00008825 */ move $s1, $zero /* 086CE8 7F0521B8 0FC1B08D */ jal clear_model_obj /* 086CEC 7F0521BC 00E02025 */ move $a0, $a3 .L7F0521C0: /* 086CF0 7F0521C0 52000004 */ beql $s0, $zero, .L7F0521D4 /* 086CF4 7F0521C4 8FBF001C */ lw $ra, 0x1c($sp) /* 086CF8 7F0521C8 0FC0E921 */ jal chrpropFree /* 086CFC 7F0521CC 02002025 */ move $a0, $s0 /* 086D00 7F0521D0 8FBF001C */ lw $ra, 0x1c($sp) .L7F0521D4: /* 086D04 7F0521D4 02201025 */ move $v0, $s1 /* 086D08 7F0521D8 8FB10018 */ lw $s1, 0x18($sp) /* 086D0C 7F0521DC 8FB00014 */ lw $s0, 0x14($sp) /* 086D10 7F0521E0 03E00008 */ jr $ra /* 086D14 7F0521E4 27BD00B8 */ addiu $sp, $sp, 0xb8 ) #endif /** * Set removed flag on hand */ void chrSetWeaponFlag4(ChrRecord *chr, GUNHAND hand) //#MATCH { if (chr->weapons_held[hand]) { chr->weapons_held[hand]->weapon->runtime_bitflags |= RUNTIMEBITFLAG_REMOVE; } } WeaponObjRecord blank_08_object_preset_4001 = { 0x0100, //extrascale 0x0, //state 0x08, //type 0, //obj 0x4001, //pad 0x00000000, //flags 0, //flags2 NULL, //prop NULL, //model { 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f }, //mtx {0.0, 0.0, 0.0},//runtime_pos {0x00000000}, //runtime_bitflags NULL, //ptr_allocated_collisiondata_block NULL, //projectile/embedment 0.0f, //maxdamage 1000.0f, //damage { 0xFF, 0xFF, 0xFF, 0x00 }, // shadecol { 0xFF, 0xFF, 0xFF, 0x00 }, // nextcol ITEM_UNARMED, //weaponnu -1, //LinkedWeaponType -1, //timer NULL //dualweapon }; /** * NTSC address 0x7F052214. */ PropRecord *something_with_generating_object(ChrRecord *self, s32 propid, ITEM_IDS itemid, s32 flags, WeaponObjRecord *weapon, ItemModelFileRecord *prop_header) { Model *objinst; PropRecord *lastobjentry; if (!prop_header) { prop_header = PitemZ_entries[propid].header; modelLoad(propid); } lastobjentry = chrpropAllocate(); objinst = get_obj_instance_controller_for_header((ModelFileHeader *)prop_header); if (!weapon) { weapon = weaponCreate(lastobjentry == NULL, objinst == NULL, (ModelFileHeader *)prop_header); } if (!lastobjentry) { lastobjentry = chrpropAllocate(); } if (!objinst) { objinst = get_obj_instance_controller_for_header((ModelFileHeader *)prop_header); } if (weapon && lastobjentry && objinst) { WeaponObjRecord new_weapon = blank_08_object_preset_4001; *weapon = new_weapon; weapon->weaponnum = itemid; weapon->obj = propid; weapon->flags = flags | 0x4000; // pad = chrnum ??? weapon->pad = self->chrnum; lastobjentry = sub_GAME_7F051F30(weapon, self, (ModelFileHeader *)prop_header, lastobjentry, objinst); } else { if (objinst) { clear_model_obj(objinst); } if (lastobjentry) { chrpropFree(lastobjentry); lastobjentry = NULL; } } return lastobjentry; //should be new weapon } /** * Add New Weapon to chr */ PropRecord *chrGiveWeapon(ChrRecord *self, s32 PropID, ITEM_IDS ItemID, s32 flags) //#MATCH { return something_with_generating_object(self, PropID, ItemID, flags, NULL, NULL); } #ifdef NONMATCHING void sub_GAME_7F0523F8(void) { } #else u32 D_800322A4 = 0; u32 D_800322A8[] = {1, 3}; u32 D_800322B0[] = {0, 0, 0, 0}; u32 D_800322C0[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; GLOBAL_ASM( .late_rodata glabel D_800532F0 .word 0x40490fdb /*3.1415927*/ .text glabel sub_GAME_7F0523F8 /* 086F28 7F0523F8 27BDFF48 */ addiu $sp, $sp, -0xb8 /* 086F2C 7F0523FC AFBF001C */ sw $ra, 0x1c($sp) /* 086F30 7F052400 AFB10018 */ sw $s1, 0x18($sp) /* 086F34 7F052404 AFB00014 */ sw $s0, 0x14($sp) /* 086F38 7F052408 AFA500BC */ sw $a1, 0xbc($sp) /* 086F3C 7F05240C AFA600C0 */ sw $a2, 0xc0($sp) /* 086F40 7F052410 8C870004 */ lw $a3, 4($a0) /* 086F44 7F052414 00E02025 */ move $a0, $a3 /* 086F48 7F052418 0FC08C0B */ jal chrGetEquippedWeaponProp /* 086F4C 7F05241C AFA700B4 */ sw $a3, 0xb4($sp) /* 086F50 7F052420 8FA700B4 */ lw $a3, 0xb4($sp) /* 086F54 7F052424 10400046 */ beqz $v0, .L7F052540 /* 086F58 7F052428 00401825 */ move $v1, $v0 /* 086F5C 7F05242C 8C500004 */ lw $s0, 4($v0) /* 086F60 7F052430 8E0E0064 */ lw $t6, 0x64($s0) /* 086F64 7F052434 31CF0800 */ andi $t7, $t6, 0x800 /* 086F68 7F052438 55E0003F */ bnezl $t7, .L7F052538 /* 086F6C 7F05243C 90480001 */ lbu $t0, 1($v0) /* 086F70 7F052440 8E18000C */ lw $t8, 0xc($s0) /* 086F74 7F052444 3C098003 */ lui $t1, %hi(D_800322A4) /* 086F78 7F052448 252922A4 */ addiu $t1, %lo(D_800322A4) # addiu $t1, $t1, 0x22a4 /* 086F7C 7F05244C 0018CB00 */ sll $t9, $t8, 0xc /* 086F80 7F052450 07200038 */ bltz $t9, .L7F052534 /* 086F84 7F052454 27A80068 */ addiu $t0, $sp, 0x68 /* 086F88 7F052458 8E110014 */ lw $s1, 0x14($s0) /* 086F8C 7F05245C 252B003C */ addiu $t3, $t1, 0x3c .L7F052460: /* 086F90 7F052460 8D210000 */ lw $at, ($t1) /* 086F94 7F052464 2529000C */ addiu $t1, $t1, 0xc /* 086F98 7F052468 2508000C */ addiu $t0, $t0, 0xc /* 086F9C 7F05246C AD01FFF4 */ sw $at, -0xc($t0) /* 086FA0 7F052470 8D21FFF8 */ lw $at, -8($t1) /* 086FA4 7F052474 AD01FFF8 */ sw $at, -8($t0) /* 086FA8 7F052478 8D21FFFC */ lw $at, -4($t1) /* 086FAC 7F05247C 152BFFF8 */ bne $t1, $t3, .L7F052460 /* 086FB0 7F052480 AD01FFFC */ sw $at, -4($t0) /* 086FB4 7F052484 8D210000 */ lw $at, ($t1) /* 086FB8 7F052488 00003025 */ move $a2, $zero /* 086FBC 7F05248C AD010000 */ sw $at, ($t0) /* 086FC0 7F052490 906C0001 */ lbu $t4, 1($v1) /* 086FC4 7F052494 8CE4001C */ lw $a0, 0x1c($a3) /* 086FC8 7F052498 358D0002 */ ori $t5, $t4, 2 /* 086FCC 7F05249C A06D0001 */ sb $t5, 1($v1) /* 086FD0 7F0524A0 0FC1B198 */ jal modelFindNodeMtx /* 086FD4 7F0524A4 8E25001C */ lw $a1, 0x1c($s1) /* 086FD8 7F0524A8 8FAE00BC */ lw $t6, 0xbc($sp) /* 086FDC 7F0524AC 24010001 */ li $at, 1 /* 086FE0 7F0524B0 AFA20068 */ sw $v0, 0x68($sp) /* 086FE4 7F0524B4 15C10009 */ bne $t6, $at, .L7F0524DC /* 086FE8 7F0524B8 27A50020 */ addiu $a1, $sp, 0x20 /* 086FEC 7F0524BC 3C018005 */ lui $at, %hi(D_800532F0) /* 086FF0 7F0524C0 0FC161A2 */ jal matrix_4x4_set_rotation_around_z /* 086FF4 7F0524C4 C42C32F0 */ lwc1 $f12, %lo(D_800532F0)($at) /* 086FF8 7F0524C8 8FA40068 */ lw $a0, 0x68($sp) /* 086FFC 7F0524CC 0FC1601A */ jal matrix_4x4_multiply_in_place /* 087000 7F0524D0 27A50020 */ addiu $a1, $sp, 0x20 /* 087004 7F0524D4 27AF0020 */ addiu $t7, $sp, 0x20 /* 087008 7F0524D8 AFAF0068 */ sw $t7, 0x68($sp) .L7F0524DC: /* 08700C 7F0524DC 8E380008 */ lw $t8, 8($s1) /* 087010 7F0524E0 8704000E */ lh $a0, 0xe($t8) /* 087014 7F0524E4 0004C980 */ sll $t9, $a0, 6 /* 087018 7F0524E8 0FC2F5C5 */ jal dynAllocate /* 08701C 7F0524EC 03202025 */ move $a0, $t9 /* 087020 7F0524F0 AFA20078 */ sw $v0, 0x78($sp) /* 087024 7F0524F4 27A40068 */ addiu $a0, $sp, 0x68 /* 087028 7F0524F8 0FC1BC92 */ jal instcalcmatrices /* 08702C 7F0524FC 02202825 */ move $a1, $s1 /* 087030 7F052500 8FA200C0 */ lw $v0, 0xc0($sp) /* 087034 7F052504 5040000F */ beql $v0, $zero, .L7F052544 /* 087038 7F052508 8FBF001C */ lw $ra, 0x1c($sp) /* 08703C 7F05250C 8E0A0064 */ lw $t2, 0x64($s0) /* 087040 7F052510 02202825 */ move $a1, $s1 /* 087044 7F052514 314B0080 */ andi $t3, $t2, 0x80 /* 087048 7F052518 5560000A */ bnezl $t3, .L7F052544 /* 08704C 7F05251C 8FBF001C */ lw $ra, 0x1c($sp) /* 087050 7F052520 0FC1AC48 */ jal sub_GAME_7F06B120 /* 087054 7F052524 8C440000 */ lw $a0, ($v0) /* 087058 7F052528 8FA900C0 */ lw $t1, 0xc0($sp) /* 08705C 7F05252C 10000004 */ b .L7F052540 /* 087060 7F052530 AD220000 */ sw $v0, ($t1) .L7F052534: /* 087064 7F052534 90480001 */ lbu $t0, 1($v0) .L7F052538: /* 087068 7F052538 310CFFFD */ andi $t4, $t0, 0xfffd /* 08706C 7F05253C A04C0001 */ sb $t4, 1($v0) .L7F052540: /* 087070 7F052540 8FBF001C */ lw $ra, 0x1c($sp) .L7F052544: /* 087074 7F052544 8FB00014 */ lw $s0, 0x14($sp) /* 087078 7F052548 8FB10018 */ lw $s1, 0x18($sp) /* 08707C 7F05254C 03E00008 */ jr $ra /* 087080 7F052550 27BD00B8 */ addiu $sp, $sp, 0xb8 ) #endif void redirect_object_collectability_routines(void) { object_collectability_routines(); } void weaponSetGunfireVisible(PropRecord *prop, s32 firing) { ObjectRecord *obj = prop->obj; Model *model = obj->model; ModelNode *node; if (model && model->obj->Skeleton == &skeleton_prop_weapon) { node = model->obj->Switches[0]; if (node) { struct ModelRwData_GunfireRecord *rwdata = modelGetNodeRwData(model, node); rwdata->visible = firing; } node = model->obj->Switches[2]; if (node) { struct ModelRwData_BSPRecord *rwdata = modelGetNodeRwData(model, node); rwdata->visible = firing; } } } s32 weaponIsGunfireVisible(PropRecord *prop) { ObjectRecord *obj = prop->obj; Model *model = obj->model; ModelNode *node; if (model && model->obj->Skeleton == &skeleton_prop_weapon) { node = model->obj->Switches[0]; if (node) { struct ModelRwData_GunfireRecord *rwdata = modelGetNodeRwData(model, node); return rwdata->visible; } node = model->obj->Switches[2]; if (node) { struct ModelRwData_BSPRecord *rwdata = modelGetNodeRwData(model, node); return rwdata->visible; } } return FALSE; } // getHatType HATTYPE get_hat_model(PropRecord *prop) //#MATCH { ObjectRecord *objinst = prop->obj; switch (objinst->obj) { case PROP_HATFURRY: case PROP_HATFURRYBROWN: case PROP_HATFURRYBLACK: { return HATTYPE_FURRY; } case PROP_HATTBIRD: case PROP_HATTBIRDBROWN: { return HATTYPE_BIRD; } case PROP_HATHELMET: case PROP_HATHELMETGREY: { return HATTYPE_HELMATE; } case PROP_HATMOON: { return HATTYPE_MOON; } case PROP_HATBERET: case PROP_HATBERETBLUE: case PROP_HATBERETRED: { return HATTYPE_BERRET; } case PROP_HATPEAKED: { return HATTYPE_PEAKED; } default: { return HATTYPE_OTHER; } } } /** * US address 7F0526EC. */ void door7F0526EC(DoorRecord *door, Mtxf *rhs) { Mtxf lhs; struct coord3d sp54; struct coord3d sp48; BoundPadRecord* temp_v0_2; struct coord3d sp38; struct coord3d sp2C; if ((door->doorType == 5) || (door->doorType == 9)) { temp_v0_2 = &g_CurrentSetup.boundpads[door->pad]; sp38.f[0] = (temp_v0_2->up.f[1] * temp_v0_2->look.f[2]) - (temp_v0_2->up.f[2] * temp_v0_2->look.f[1]); // cross product sp38.f[1] = (temp_v0_2->up.f[2] * temp_v0_2->look.f[0]) - (temp_v0_2->up.f[0] * temp_v0_2->look.f[2]); // cross product sp38.f[2] = (temp_v0_2->up.f[0] * temp_v0_2->look.f[1]) - (temp_v0_2->up.f[1] * temp_v0_2->look.f[0]); // cross product sp54.f[0] = temp_v0_2->pos.f[0] + (temp_v0_2->up.f[0] * temp_v0_2->bbox.ymin); sp54.f[1] = temp_v0_2->pos.f[1] + (temp_v0_2->up.f[1] * temp_v0_2->bbox.ymin); sp54.f[2] = temp_v0_2->pos.f[2] + (temp_v0_2->up.f[2] * temp_v0_2->bbox.ymin); if (door->doorType == 9) { sp54.f[0] += sp38.f[0] * temp_v0_2->bbox.xmax; sp54.f[1] += sp38.f[1] * temp_v0_2->bbox.xmax; sp54.f[2] += sp38.f[2] * temp_v0_2->bbox.xmax; } else if (door->flags & PROPFLAG_DOOR_OPENTOFRONT) { sp54.f[0] += sp38.f[0] * temp_v0_2->bbox.xmax; sp54.f[1] += sp38.f[1] * temp_v0_2->bbox.xmax; sp54.f[2] += sp38.f[2] * temp_v0_2->bbox.xmax; } else { sp54.f[0] += sp38.f[0] * temp_v0_2->bbox.xmin; sp54.f[1] += sp38.f[1] * temp_v0_2->bbox.xmin; sp54.f[2] += sp38.f[2] * temp_v0_2->bbox.xmin; } sp48.f[0] = door->runtime_pos.f[0] - sp54.f[0]; sp48.f[1] = door->runtime_pos.f[1] - sp54.f[1]; sp48.f[2] = door->runtime_pos.f[2] - sp54.f[2]; matrix_4x4_copy(&door->mtx, rhs); matrix_4x4_set_identity_and_position(&sp48, &lhs); matrix_4x4_multiply_in_place(&lhs, rhs); if (door->doorType == 9) { if (door->flags & PROPFLAG_DOOR_OPENTOFRONT) { matrix_4x4_set_rotation_around_z(M_TAU_F - ((door->openPosition * M_TAU_F) / 360.0f), &lhs); } else { matrix_4x4_set_rotation_around_z((door->openPosition * M_TAU_F) / 360.0f, &lhs); } } else if (door->flags & PROPFLAG_DOOR_OPENTOFRONT) { matrix_4x4_set_rotation_around_y(M_TAU_F - ((door->openPosition * M_TAU_F) / 360.0f), &lhs); } else { matrix_4x4_set_rotation_around_y((door->openPosition * M_TAU_F) / 360.0f, &lhs); } matrix_4x4_multiply_in_place(&lhs, rhs); matrix_4x4_set_identity_and_position(&sp54, &lhs); matrix_4x4_multiply_in_place(&lhs, rhs); } else if ((door->doorType == 6) || (door->doorType == 7)) { matrix_4x4_copy(&door->mtx, rhs); matrix_4x4_set_position(&door->runtime_pos, rhs); } else { sp2C.f[0] = (door->frac * door->openPosition) + door->runtime_pos.x; sp2C.f[1] = (door->unkac * door->openPosition) + door->runtime_pos.y; sp2C.f[2] = (door->unkb0 * door->openPosition) + door->runtime_pos.z; matrix_4x4_copy(&door->mtx, rhs); matrix_4x4_set_position(&sp2C, rhs); } if (door->doorFlags & 8) { matrix_column_3_scalar_multiply_2(-1.0f, rhs); } } /** * NTSC address 0x7F052B00. */ void door7F052B00(DoorRecord *door) { struct ModelRoData_BoundingBoxRecord *door_bb; Mtxf sp2C; door_bb = (struct ModelRoData_BoundingBoxRecord *)door->model->obj->RootNode->Child->Data; // struct copy door->bbox = *door_bb; if (door->doorFlags & DOORFLAG_0004) { if (door->doorType == DOORTYPE_VERTICAL) { door->bbox.Bounds.ymax = door_bb->Bounds.ymax + (door_bb->Bounds.ymin - door_bb->Bounds.ymax) * door->openPosition; } else { door->bbox.Bounds.xmin = door_bb->Bounds.xmin + (door_bb->Bounds.xmax - door_bb->Bounds.xmin) * door->openPosition; } } if (door->perimFrac <= door->openPosition) { door->ptr_allocated_collisiondata_block->unk00 = 0; return; } door7F0526EC(door, &sp2C); sub_GAME_7F03F540(&door->bbox, &sp2C, &door->ptr_allocated_collisiondata_block->unk04, door->ptr_allocated_collisiondata_block); if (door->doorType == DOORTYPE_VERTICAL) { door->ptr_allocated_collisiondata_block->unk48 = door->runtime_pos.f[1] + chrpropSumMatrixPosY(&door->bbox, &sp2C); } else if (door->doorType == DOORTYPE_FALLAWAY) { door->ptr_allocated_collisiondata_block->unk48 = door->runtime_pos.f[1] - 10000.0f; } else { door->ptr_allocated_collisiondata_block->unk48 = sp2C.m[3][1] + chrpropSumMatrixPosY(&door->bbox, &sp2C); if (door->doorFlags & DOORFLAG_0001) { door->ptr_allocated_collisiondata_block->unk48 -= 1000.0f; } } if (((door->doorType == DOORTYPE_EYE) && (0 < door->openPosition - (0.4f * door->maxFrac))) || ((door->doorType == DOORTYPE_IRIS) && (0 < door->openPosition - (0.4f * door->maxFrac))) ) { door->ptr_allocated_collisiondata_block->unk44 = door->ptr_allocated_collisiondata_block->unk48 + 50.0f; } else if (door->doorType == DOORTYPE_FALLAWAY) { door->ptr_allocated_collisiondata_block->unk44 = door->runtime_pos.f[1] + 1000.0f; } else { door->ptr_allocated_collisiondata_block->unk44 = sp2C.m[3][1] + chrpropSumMatrixNegY(&door->bbox, &sp2C); if (door->doorFlags & DOORFLAG_0001) { door->ptr_allocated_collisiondata_block->unk44 += 1000.0f; } } } #ifdef NONMATCHING /** * NTSC address 0x7F052D8C. * perfect dark void door0f08cb20(struct doorobj *door, Vtx *src, Vtx *dst, s32 numvertices) * * https://decomp.me/scratch/ccGWm */ void sub_GAME_7F052D8C(DoorRecord *door) { #define CYCLIC_NEXT1ALT(j) (j + 1) % 4 #define CYCLIC_NEXT2ALT(j) (j + 2) % 4 #define CYCLIC_NEXT3ALT(j) (j + 3) % 4 #define CYCLIC_NEXT1(j) (j + 1) % 4 #define CYCLIC_NEXT2(j) (j + 2) % 4 #define CYCLIC_NEXT3(j) (j + 3) % 4 Model *mdl; ModelNode *mdlDLCNode; struct ModelRoData_DisplayList_CollisionRecord *src; struct ModelRwData_DisplayList_CollisionRecord *dst; s16 cutoff; s32 var_fp; s32 j; s32 k; Vertex *psrc; Vertex *pdst; if (door->doorFlags & DOORFLAG_0004) { mdl = door->model; mdlDLCNode = mdl->obj->RootNode->Child->Child; //Get the DL src = (struct ModelRoData_DisplayList_CollisionRecord *)mdlDLCNode->Data; dst = (struct ModelRwData_DisplayList_CollisionRecord *)modelGetNodeRwData(mdl, mdlDLCNode); if (door->doorType == DOORTYPE_VERTICAL) { cutoff = door->bbox.Bounds.ymax + 0.5f; } else { cutoff = door->bbox.Bounds.xmin + 0.5f; } dst->Vertices = dynAllocate7F0BD6C4(src->numVertices); for (var_fp = 0; var_fp < src->numVertices / 4; var_fp++) //block of 4 vertices (quad) { for (j = 0; j < 4; j++) //for each vertex in block, move and clamp to bounding box, if clamped, move texture coords so it doesnt look "squished" { psrc = &src->Vertices[var_fp * 4]; pdst = &dst->Vertices[var_fp * 4]; if (j == 0) { pdst[j] = psrc[j]; pdst[CYCLIC_NEXT1(j)] = psrc[CYCLIC_NEXT1(j)]; pdst[CYCLIC_NEXT2(j)] = psrc[CYCLIC_NEXT2(j)]; pdst[CYCLIC_NEXT3(j)] = psrc[CYCLIC_NEXT3(j)]; // if (1); } if (door->doorType == DOORTYPE_VERTICAL) { //if current vtx is higher than "cutoff", clamp it to cutoff. if (psrc[j].coord.y >= cutoff) { //if next and current x and z are equal AND y Not equal - Find the "below" vertex in a quad if (psrc[CYCLIC_NEXT1(j)].coord.x == psrc[j].coord.x && psrc[CYCLIC_NEXT1(j)].coord.z == psrc[j].coord.z && psrc[CYCLIC_NEXT1(j)].coord.y != psrc[j].coord.y) { //InterpolatedValue = InitialValue + (Difference1) * (ChangeInValue) / (Difference2); pdst[j].s = psrc[j].s + (psrc[j].coord.y - cutoff) * (psrc[CYCLIC_NEXT1(j)].s - psrc[j].s) / (psrc[j].coord.y - psrc[CYCLIC_NEXT1(j)].coord.y); pdst[j].t = psrc[j].t + (psrc[j].coord.y - cutoff) * (psrc[CYCLIC_NEXT1(j)].t - psrc[j].t) / (psrc[j].coord.y - psrc[CYCLIC_NEXT1(j)].coord.y); } else if (psrc[CYCLIC_NEXT2(j)].coord.x == psrc[j].coord.x && psrc[CYCLIC_NEXT2(j)].coord.z == psrc[j].coord.z && psrc[CYCLIC_NEXT2(j)].coord.y != psrc[j].coord.y) { pdst[j].s = psrc[j].s + (psrc[j].coord.y - cutoff) * (psrc[CYCLIC_NEXT2(j)].s - psrc[j].s) / (psrc[j].coord.y - psrc[CYCLIC_NEXT2(j)].coord.y); pdst[j].t = psrc[j].t + (psrc[j].coord.y - cutoff) * (psrc[CYCLIC_NEXT2(j)].t - psrc[j].t) / (psrc[j].coord.y - psrc[CYCLIC_NEXT2(j)].coord.y); } else if (psrc[CYCLIC_NEXT3(j)].coord.x == psrc[j].coord.x && psrc[CYCLIC_NEXT3(j)].coord.z == psrc[j].coord.z && psrc[CYCLIC_NEXT3(j)].coord.y != psrc[j].coord.y) { pdst[j].s = psrc[j].s + (psrc[j].coord.y - cutoff) * (psrc[CYCLIC_NEXT3(j)].s - psrc[j].s) / (psrc[j].coord.y - psrc[CYCLIC_NEXT3(j)].coord.y); pdst[j].t = psrc[j].t + (psrc[j].coord.y - cutoff) * (psrc[CYCLIC_NEXT3(j)].t - psrc[j].t) / (psrc[j].coord.y - psrc[CYCLIC_NEXT3(j)].coord.y); } pdst[j].coord.y = cutoff; } } else { if (psrc[j].coord.x <= cutoff) { //if next and current y and z are equal AND x Not equal - Find the "right" vertex in a quad if (psrc[CYCLIC_NEXT1(j)].coord.y == psrc[j].coord.y && psrc[CYCLIC_NEXT1(j)].coord.z == psrc[j].coord.z && psrc[CYCLIC_NEXT1(j)].coord.x != psrc[j].coord.x) { pdst[j].s = psrc[j].s + (cutoff - psrc[j].coord.x) * (psrc[CYCLIC_NEXT1(j)].s - psrc[j].s) / (psrc[CYCLIC_NEXT1(j)].coord.x - psrc[j].coord.x); pdst[j].t = psrc[j].t + (cutoff - psrc[j].coord.x) * (psrc[CYCLIC_NEXT1(j)].t - psrc[j].t) / (psrc[CYCLIC_NEXT1(j)].coord.x - psrc[j].coord.x); } else if (psrc[CYCLIC_NEXT2(j)].coord.y == psrc[j].coord.y && psrc[CYCLIC_NEXT2(j)].coord.z == psrc[j].coord.z && psrc[CYCLIC_NEXT2(j)].coord.x != psrc[j].coord.x) { pdst[j].s = psrc[j].s + (cutoff - psrc[j].coord.x) * (psrc[CYCLIC_NEXT2(j)].s - psrc[j].s) / (psrc[CYCLIC_NEXT2(j)].coord.x - psrc[j].coord.x); pdst[j].t = psrc[j].t + (cutoff - psrc[j].coord.x) * (psrc[CYCLIC_NEXT2(j)].t - psrc[j].t) / (psrc[CYCLIC_NEXT2(j)].coord.x - psrc[j].coord.x); } else if (psrc[CYCLIC_NEXT3(j)].coord.y == psrc[j].coord.y && psrc[CYCLIC_NEXT3(j)].coord.z == psrc[j].coord.z && psrc[CYCLIC_NEXT3(j)].coord.x != psrc[j].coord.x) { pdst[j].s = psrc[j].s + (cutoff - psrc[j].coord.x) * (psrc[CYCLIC_NEXT3(j)].s - psrc[j].s) / (psrc[CYCLIC_NEXT3(j)].coord.x - psrc[j].coord.x); pdst[j].t = psrc[j].t + (cutoff - psrc[j].coord.x) * (psrc[CYCLIC_NEXT3(j)].t - psrc[j].t) / (psrc[CYCLIC_NEXT3(j)].coord.x - psrc[j].coord.x); } pdst[j].coord.x = cutoff; } } } } } } #else void sub_GAME_7F052D8C(DoorRecord*); GLOBAL_ASM( .text glabel sub_GAME_7F052D8C /* 0878BC 7F052D8C 27BDFFA8 */ addiu $sp, $sp, -0x58 /* 0878C0 7F052D90 AFBF003C */ sw $ra, 0x3c($sp) /* 0878C4 7F052D94 AFBE0038 */ sw $fp, 0x38($sp) /* 0878C8 7F052D98 AFB70034 */ sw $s7, 0x34($sp) /* 0878CC 7F052D9C AFB60030 */ sw $s6, 0x30($sp) /* 0878D0 7F052DA0 AFB5002C */ sw $s5, 0x2c($sp) /* 0878D4 7F052DA4 AFB40028 */ sw $s4, 0x28($sp) /* 0878D8 7F052DA8 AFB30024 */ sw $s3, 0x24($sp) /* 0878DC 7F052DAC AFB20020 */ sw $s2, 0x20($sp) /* 0878E0 7F052DB0 AFB1001C */ sw $s1, 0x1c($sp) /* 0878E4 7F052DB4 AFB00018 */ sw $s0, 0x18($sp) /* 0878E8 7F052DB8 948E0098 */ lhu $t6, 0x98($a0) /* 0878EC 7F052DBC 0080B025 */ move $s6, $a0 /* 0878F0 7F052DC0 31CF0004 */ andi $t7, $t6, 4 /* 0878F4 7F052DC4 51E001E9 */ beql $t7, $zero, .L7F05356C /* 0878F8 7F052DC8 8FBF003C */ lw $ra, 0x3c($sp) /* 0878FC 7F052DCC 8C840014 */ lw $a0, 0x14($a0) /* 087900 7F052DD0 8C980008 */ lw $t8, 8($a0) /* 087904 7F052DD4 8F190000 */ lw $t9, ($t8) /* 087908 7F052DD8 8F2E0014 */ lw $t6, 0x14($t9) /* 08790C 7F052DDC 8DC50014 */ lw $a1, 0x14($t6) /* 087910 7F052DE0 0FC1B1E7 */ jal modelGetNodeRwData /* 087914 7F052DE4 8CB50004 */ lw $s5, 4($a1) /* 087918 7F052DE8 96CF009A */ lhu $t7, 0x9a($s6) /* 08791C 7F052DEC 24140004 */ li $s4, 4 /* 087920 7F052DF0 0040B825 */ move $s7, $v0 /* 087924 7F052DF4 168F000B */ bne $s4, $t7, .L7F052E24 /* 087928 7F052DF8 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 08792C 7F052DFC 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 087930 7F052E00 44813000 */ mtc1 $at, $f6 /* 087934 7F052E04 C6C400E0 */ lwc1 $f4, 0xe0($s6) /* 087938 7F052E08 46062200 */ add.s $f8, $f4, $f6 /* 08793C 7F052E0C 4600428D */ trunc.w.s $f10, $f8 /* 087940 7F052E10 440D5000 */ mfc1 $t5, $f10 /* 087944 7F052E14 00000000 */ nop /* 087948 7F052E18 000DCC00 */ sll $t9, $t5, 0x10 /* 08794C 7F052E1C 1000000A */ b .L7F052E48 /* 087950 7F052E20 00196C03 */ sra $t5, $t9, 0x10 .L7F052E24: /* 087954 7F052E24 C6D000D4 */ lwc1 $f16, 0xd4($s6) /* 087958 7F052E28 44819000 */ mtc1 $at, $f18 /* 08795C 7F052E2C 00000000 */ nop /* 087960 7F052E30 46128100 */ add.s $f4, $f16, $f18 /* 087964 7F052E34 4600218D */ trunc.w.s $f6, $f4 /* 087968 7F052E38 440D3000 */ mfc1 $t5, $f6 /* 08796C 7F052E3C 00000000 */ nop /* 087970 7F052E40 000DC400 */ sll $t8, $t5, 0x10 /* 087974 7F052E44 00186C03 */ sra $t5, $t8, 0x10 .L7F052E48: /* 087978 7F052E48 86A4000C */ lh $a0, 0xc($s5) /* 08797C 7F052E4C 0FC2F5B1 */ jal dynAllocate7F0BD6C4 /* 087980 7F052E50 A7AD0042 */ sh $t5, 0x42($sp) /* 087984 7F052E54 87AD0042 */ lh $t5, 0x42($sp) /* 087988 7F052E58 AEE20000 */ sw $v0, ($s7) /* 08798C 7F052E5C 86AE000C */ lh $t6, 0xc($s5) /* 087990 7F052E60 00001825 */ move $v1, $zero /* 087994 7F052E64 0000F025 */ move $fp, $zero /* 087998 7F052E68 05C10003 */ bgez $t6, .L7F052E78 /* 08799C 7F052E6C 000E7883 */ sra $t7, $t6, 2 /* 0879A0 7F052E70 25C10003 */ addiu $at, $t6, 3 /* 0879A4 7F052E74 00017883 */ sra $t7, $at, 2 .L7F052E78: /* 0879A8 7F052E78 19E001BB */ blez $t7, .L7F053568 /* 0879AC 7F052E7C 00001825 */ move $v1, $zero .L7F052E80: /* 0879B0 7F052E80 001E9900 */ sll $s3, $fp, 4 .L7F052E84: /* 0879B4 7F052E84 8EF80000 */ lw $t8, ($s7) /* 0879B8 7F052E88 24670002 */ addiu $a3, $v1, 2 /* 0879BC 7F052E8C 246C0003 */ addiu $t4, $v1, 3 /* 0879C0 7F052E90 03131021 */ addu $v0, $t8, $s3 /* 0879C4 7F052E94 24720001 */ addiu $s2, $v1, 1 /* 0879C8 7F052E98 00032100 */ sll $a0, $v1, 4 /* 0879CC 7F052E9C 00445821 */ addu $t3, $v0, $a0 /* 0879D0 7F052EA0 06410004 */ bgez $s2, .L7F052EB4 /* 0879D4 7F052EA4 32450003 */ andi $a1, $s2, 3 /* 0879D8 7F052EA8 10A00002 */ beqz $a1, .L7F052EB4 /* 0879DC 7F052EAC 00000000 */ nop /* 0879E0 7F052EB0 24A5FFFC */ addiu $a1, $a1, -4 .L7F052EB4: /* 0879E4 7F052EB4 0005C900 */ sll $t9, $a1, 4 /* 0879E8 7F052EB8 03202825 */ move $a1, $t9 /* 0879EC 7F052EBC 0059F821 */ addu $ra, $v0, $t9 /* 0879F0 7F052EC0 04E10004 */ bgez $a3, .L7F052ED4 /* 0879F4 7F052EC4 30EE0003 */ andi $t6, $a3, 3 /* 0879F8 7F052EC8 11C00002 */ beqz $t6, .L7F052ED4 /* 0879FC 7F052ECC 00000000 */ nop /* 087A00 7F052ED0 25CEFFFC */ addiu $t6, $t6, -4 .L7F052ED4: /* 087A04 7F052ED4 000E7900 */ sll $t7, $t6, 4 /* 087A08 7F052ED8 8EAE0008 */ lw $t6, 8($s5) /* 087A0C 7F052EDC 01E03825 */ move $a3, $t7 /* 087A10 7F052EE0 004F8021 */ addu $s0, $v0, $t7 /* 087A14 7F052EE4 01D34821 */ addu $t1, $t6, $s3 /* 087A18 7F052EE8 05810004 */ bgez $t4, .L7F052EFC /* 087A1C 7F052EEC 31980003 */ andi $t8, $t4, 3 /* 087A20 7F052EF0 13000002 */ beqz $t8, .L7F052EFC /* 087A24 7F052EF4 00000000 */ nop /* 087A28 7F052EF8 2718FFFC */ addiu $t8, $t8, -4 .L7F052EFC: /* 087A2C 7F052EFC 00186100 */ sll $t4, $t8, 4 /* 087A30 7F052F00 01275021 */ addu $t2, $t1, $a3 /* 087A34 7F052F04 004C8821 */ addu $s1, $v0, $t4 /* 087A38 7F052F08 01243021 */ addu $a2, $t1, $a0 /* 087A3C 7F052F0C 01254021 */ addu $t0, $t1, $a1 /* 087A40 7F052F10 14600021 */ bnez $v1, .L7F052F98 /* 087A44 7F052F14 012C3821 */ addu $a3, $t1, $t4 /* 087A48 7F052F18 8CC10000 */ lw $at, ($a2) /* 087A4C 7F052F1C AD610000 */ sw $at, ($t3) /* 087A50 7F052F20 8CD80004 */ lw $t8, 4($a2) /* 087A54 7F052F24 AD780004 */ sw $t8, 4($t3) /* 087A58 7F052F28 8CC10008 */ lw $at, 8($a2) /* 087A5C 7F052F2C AD610008 */ sw $at, 8($t3) /* 087A60 7F052F30 8CD8000C */ lw $t8, 0xc($a2) /* 087A64 7F052F34 AD78000C */ sw $t8, 0xc($t3) /* 087A68 7F052F38 8D010000 */ lw $at, ($t0) /* 087A6C 7F052F3C AFE10000 */ sw $at, ($ra) /* 087A70 7F052F40 8D0E0004 */ lw $t6, 4($t0) /* 087A74 7F052F44 AFEE0004 */ sw $t6, 4($ra) /* 087A78 7F052F48 8D010008 */ lw $at, 8($t0) /* 087A7C 7F052F4C AFE10008 */ sw $at, 8($ra) /* 087A80 7F052F50 8D0E000C */ lw $t6, 0xc($t0) /* 087A84 7F052F54 AFEE000C */ sw $t6, 0xc($ra) /* 087A88 7F052F58 8D410000 */ lw $at, ($t2) /* 087A8C 7F052F5C AE010000 */ sw $at, ($s0) /* 087A90 7F052F60 8D580004 */ lw $t8, 4($t2) /* 087A94 7F052F64 AE180004 */ sw $t8, 4($s0) /* 087A98 7F052F68 8D410008 */ lw $at, 8($t2) /* 087A9C 7F052F6C AE010008 */ sw $at, 8($s0) /* 087AA0 7F052F70 8D58000C */ lw $t8, 0xc($t2) /* 087AA4 7F052F74 AE18000C */ sw $t8, 0xc($s0) /* 087AA8 7F052F78 8CE10000 */ lw $at, ($a3) /* 087AAC 7F052F7C AE210000 */ sw $at, ($s1) /* 087AB0 7F052F80 8CEE0004 */ lw $t6, 4($a3) /* 087AB4 7F052F84 AE2E0004 */ sw $t6, 4($s1) /* 087AB8 7F052F88 8CE10008 */ lw $at, 8($a3) /* 087ABC 7F052F8C AE210008 */ sw $at, 8($s1) /* 087AC0 7F052F90 8CEE000C */ lw $t6, 0xc($a3) /* 087AC4 7F052F94 AE2E000C */ sw $t6, 0xc($s1) .L7F052F98: /* 087AC8 7F052F98 96CF009A */ lhu $t7, 0x9a($s6) /* 087ACC 7F052F9C 568F00B5 */ bnel $s4, $t7, .L7F053274 /* 087AD0 7F052FA0 84C50000 */ lh $a1, ($a2) /* 087AD4 7F052FA4 84C40002 */ lh $a0, 2($a2) /* 087AD8 7F052FA8 008D082A */ slt $at, $a0, $t5 /* 087ADC 7F052FAC 14200162 */ bnez $at, .L7F053538 /* 087AE0 7F052FB0 00000000 */ nop /* 087AE4 7F052FB4 84C50000 */ lh $a1, ($a2) /* 087AE8 7F052FB8 85180000 */ lh $t8, ($t0) /* 087AEC 7F052FBC 57050039 */ bnel $t8, $a1, .L7F0530A4 /* 087AF0 7F052FC0 85590000 */ lh $t9, ($t2) /* 087AF4 7F052FC4 85190004 */ lh $t9, 4($t0) /* 087AF8 7F052FC8 84CE0004 */ lh $t6, 4($a2) /* 087AFC 7F052FCC 572E0035 */ bnel $t9, $t6, .L7F0530A4 /* 087B00 7F052FD0 85590000 */ lh $t9, ($t2) /* 087B04 7F052FD4 85090002 */ lh $t1, 2($t0) /* 087B08 7F052FD8 51240032 */ beql $t1, $a0, .L7F0530A4 /* 087B0C 7F052FDC 85590000 */ lh $t9, ($t2) /* 087B10 7F052FE0 84C20008 */ lh $v0, 8($a2) /* 087B14 7F052FE4 85180008 */ lh $t8, 8($t0) /* 087B18 7F052FE8 008D7823 */ subu $t7, $a0, $t5 /* 087B1C 7F052FEC 0302C823 */ subu $t9, $t8, $v0 /* 087B20 7F052FF0 01F90019 */ multu $t7, $t9 /* 087B24 7F052FF4 0089C023 */ subu $t8, $a0, $t1 /* 087B28 7F052FF8 00007012 */ mflo $t6 /* 087B2C 7F052FFC 00000000 */ nop /* 087B30 7F053000 00000000 */ nop /* 087B34 7F053004 01D8001A */ div $zero, $t6, $t8 /* 087B38 7F053008 00007812 */ mflo $t7 /* 087B3C 7F05300C 01E2C821 */ addu $t9, $t7, $v0 /* 087B40 7F053010 A5790008 */ sh $t9, 8($t3) /* 087B44 7F053014 17000002 */ bnez $t8, .L7F053020 /* 087B48 7F053018 00000000 */ nop /* 087B4C 7F05301C 0007000D */ break 7 .L7F053020: /* 087B50 7F053020 2401FFFF */ li $at, -1 /* 087B54 7F053024 17010004 */ bne $t8, $at, .L7F053038 /* 087B58 7F053028 3C018000 */ lui $at, 0x8000 /* 087B5C 7F05302C 15C10002 */ bne $t6, $at, .L7F053038 /* 087B60 7F053030 00000000 */ nop /* 087B64 7F053034 0006000D */ break 6 .L7F053038: /* 087B68 7F053038 8518000A */ lh $t8, 0xa($t0) /* 087B6C 7F05303C 84C3000A */ lh $v1, 0xa($a2) /* 087B70 7F053040 84C40002 */ lh $a0, 2($a2) /* 087B74 7F053044 03037823 */ subu $t7, $t8, $v1 /* 087B78 7F053048 008D7023 */ subu $t6, $a0, $t5 /* 087B7C 7F05304C 01CF0019 */ multu $t6, $t7 /* 087B80 7F053050 85180002 */ lh $t8, 2($t0) /* 087B84 7F053054 00987023 */ subu $t6, $a0, $t8 /* 087B88 7F053058 0000C812 */ mflo $t9 /* 087B8C 7F05305C 00000000 */ nop /* 087B90 7F053060 00000000 */ nop /* 087B94 7F053064 032E001A */ div $zero, $t9, $t6 /* 087B98 7F053068 00007812 */ mflo $t7 /* 087B9C 7F05306C 01E3C021 */ addu $t8, $t7, $v1 /* 087BA0 7F053070 15C00002 */ bnez $t6, .L7F05307C /* 087BA4 7F053074 00000000 */ nop /* 087BA8 7F053078 0007000D */ break 7 .L7F05307C: /* 087BAC 7F05307C 2401FFFF */ li $at, -1 /* 087BB0 7F053080 15C10004 */ bne $t6, $at, .L7F053094 /* 087BB4 7F053084 3C018000 */ lui $at, 0x8000 /* 087BB8 7F053088 17210002 */ bne $t9, $at, .L7F053094 /* 087BBC 7F05308C 00000000 */ nop /* 087BC0 7F053090 0006000D */ break 6 .L7F053094: /* 087BC4 7F053094 A578000A */ sh $t8, 0xa($t3) /* 087BC8 7F053098 10000073 */ b .L7F053268 /* 087BCC 7F05309C 00000000 */ nop /* 087BD0 7F0530A0 85590000 */ lh $t9, ($t2) .L7F0530A4: /* 087BD4 7F0530A4 57250039 */ bnel $t9, $a1, .L7F05318C /* 087BD8 7F0530A8 84EE0000 */ lh $t6, ($a3) /* 087BDC 7F0530AC 854E0004 */ lh $t6, 4($t2) /* 087BE0 7F0530B0 84CF0004 */ lh $t7, 4($a2) /* 087BE4 7F0530B4 55CF0035 */ bnel $t6, $t7, .L7F05318C /* 087BE8 7F0530B8 84EE0000 */ lh $t6, ($a3) /* 087BEC 7F0530BC 85480002 */ lh $t0, 2($t2) /* 087BF0 7F0530C0 51040032 */ beql $t0, $a0, .L7F05318C /* 087BF4 7F0530C4 84EE0000 */ lh $t6, ($a3) /* 087BF8 7F0530C8 84C20008 */ lh $v0, 8($a2) /* 087BFC 7F0530CC 85590008 */ lh $t9, 8($t2) /* 087C00 7F0530D0 008DC023 */ subu $t8, $a0, $t5 /* 087C04 7F0530D4 03227023 */ subu $t6, $t9, $v0 /* 087C08 7F0530D8 030E0019 */ multu $t8, $t6 /* 087C0C 7F0530DC 0088C823 */ subu $t9, $a0, $t0 /* 087C10 7F0530E0 00007812 */ mflo $t7 /* 087C14 7F0530E4 00000000 */ nop /* 087C18 7F0530E8 00000000 */ nop /* 087C1C 7F0530EC 01F9001A */ div $zero, $t7, $t9 /* 087C20 7F0530F0 0000C012 */ mflo $t8 /* 087C24 7F0530F4 03027021 */ addu $t6, $t8, $v0 /* 087C28 7F0530F8 A56E0008 */ sh $t6, 8($t3) /* 087C2C 7F0530FC 17200002 */ bnez $t9, .L7F053108 /* 087C30 7F053100 00000000 */ nop /* 087C34 7F053104 0007000D */ break 7 .L7F053108: /* 087C38 7F053108 2401FFFF */ li $at, -1 /* 087C3C 7F05310C 17210004 */ bne $t9, $at, .L7F053120 /* 087C40 7F053110 3C018000 */ lui $at, 0x8000 /* 087C44 7F053114 15E10002 */ bne $t7, $at, .L7F053120 /* 087C48 7F053118 00000000 */ nop /* 087C4C 7F05311C 0006000D */ break 6 .L7F053120: /* 087C50 7F053120 8559000A */ lh $t9, 0xa($t2) /* 087C54 7F053124 84C3000A */ lh $v1, 0xa($a2) /* 087C58 7F053128 84C40002 */ lh $a0, 2($a2) /* 087C5C 7F05312C 0323C023 */ subu $t8, $t9, $v1 /* 087C60 7F053130 008D7823 */ subu $t7, $a0, $t5 /* 087C64 7F053134 01F80019 */ multu $t7, $t8 /* 087C68 7F053138 85590002 */ lh $t9, 2($t2) /* 087C6C 7F05313C 00997823 */ subu $t7, $a0, $t9 /* 087C70 7F053140 00007012 */ mflo $t6 /* 087C74 7F053144 00000000 */ nop /* 087C78 7F053148 00000000 */ nop /* 087C7C 7F05314C 01CF001A */ div $zero, $t6, $t7 /* 087C80 7F053150 0000C012 */ mflo $t8 /* 087C84 7F053154 0303C821 */ addu $t9, $t8, $v1 /* 087C88 7F053158 15E00002 */ bnez $t7, .L7F053164 /* 087C8C 7F05315C 00000000 */ nop /* 087C90 7F053160 0007000D */ break 7 .L7F053164: /* 087C94 7F053164 2401FFFF */ li $at, -1 /* 087C98 7F053168 15E10004 */ bne $t7, $at, .L7F05317C /* 087C9C 7F05316C 3C018000 */ lui $at, 0x8000 /* 087CA0 7F053170 15C10002 */ bne $t6, $at, .L7F05317C /* 087CA4 7F053174 00000000 */ nop /* 087CA8 7F053178 0006000D */ break 6 .L7F05317C: /* 087CAC 7F05317C A579000A */ sh $t9, 0xa($t3) /* 087CB0 7F053180 10000039 */ b .L7F053268 /* 087CB4 7F053184 00000000 */ nop /* 087CB8 7F053188 84EE0000 */ lh $t6, ($a3) .L7F05318C: /* 087CBC 7F05318C 15C50036 */ bne $t6, $a1, .L7F053268 /* 087CC0 7F053190 00000000 */ nop /* 087CC4 7F053194 84EF0004 */ lh $t7, 4($a3) /* 087CC8 7F053198 84D80004 */ lh $t8, 4($a2) /* 087CCC 7F05319C 15F80032 */ bne $t7, $t8, .L7F053268 /* 087CD0 7F0531A0 00000000 */ nop /* 087CD4 7F0531A4 84E50002 */ lh $a1, 2($a3) /* 087CD8 7F0531A8 10A4002F */ beq $a1, $a0, .L7F053268 /* 087CDC 7F0531AC 00000000 */ nop /* 087CE0 7F0531B0 84C20008 */ lh $v0, 8($a2) /* 087CE4 7F0531B4 84EE0008 */ lh $t6, 8($a3) /* 087CE8 7F0531B8 008DC823 */ subu $t9, $a0, $t5 /* 087CEC 7F0531BC 01C27823 */ subu $t7, $t6, $v0 /* 087CF0 7F0531C0 032F0019 */ multu $t9, $t7 /* 087CF4 7F0531C4 00857023 */ subu $t6, $a0, $a1 /* 087CF8 7F0531C8 0000C012 */ mflo $t8 /* 087CFC 7F0531CC 00000000 */ nop /* 087D00 7F0531D0 00000000 */ nop /* 087D04 7F0531D4 030E001A */ div $zero, $t8, $t6 /* 087D08 7F0531D8 0000C812 */ mflo $t9 /* 087D0C 7F0531DC 03227821 */ addu $t7, $t9, $v0 /* 087D10 7F0531E0 A56F0008 */ sh $t7, 8($t3) /* 087D14 7F0531E4 15C00002 */ bnez $t6, .L7F0531F0 /* 087D18 7F0531E8 00000000 */ nop /* 087D1C 7F0531EC 0007000D */ break 7 .L7F0531F0: /* 087D20 7F0531F0 2401FFFF */ li $at, -1 /* 087D24 7F0531F4 15C10004 */ bne $t6, $at, .L7F053208 /* 087D28 7F0531F8 3C018000 */ lui $at, 0x8000 /* 087D2C 7F0531FC 17010002 */ bne $t8, $at, .L7F053208 /* 087D30 7F053200 00000000 */ nop /* 087D34 7F053204 0006000D */ break 6 .L7F053208: /* 087D38 7F053208 84EE000A */ lh $t6, 0xa($a3) /* 087D3C 7F05320C 84C3000A */ lh $v1, 0xa($a2) /* 087D40 7F053210 84C40002 */ lh $a0, 2($a2) /* 087D44 7F053214 01C3C823 */ subu $t9, $t6, $v1 /* 087D48 7F053218 008DC023 */ subu $t8, $a0, $t5 /* 087D4C 7F05321C 03190019 */ multu $t8, $t9 /* 087D50 7F053220 84EE0002 */ lh $t6, 2($a3) /* 087D54 7F053224 008EC023 */ subu $t8, $a0, $t6 /* 087D58 7F053228 00007812 */ mflo $t7 /* 087D5C 7F05322C 00000000 */ nop /* 087D60 7F053230 00000000 */ nop /* 087D64 7F053234 01F8001A */ div $zero, $t7, $t8 /* 087D68 7F053238 0000C812 */ mflo $t9 /* 087D6C 7F05323C 03237021 */ addu $t6, $t9, $v1 /* 087D70 7F053240 A56E000A */ sh $t6, 0xa($t3) /* 087D74 7F053244 17000002 */ bnez $t8, .L7F053250 /* 087D78 7F053248 00000000 */ nop /* 087D7C 7F05324C 0007000D */ break 7 .L7F053250: /* 087D80 7F053250 2401FFFF */ li $at, -1 /* 087D84 7F053254 17010004 */ bne $t8, $at, .L7F053268 /* 087D88 7F053258 3C018000 */ lui $at, 0x8000 /* 087D8C 7F05325C 15E10002 */ bne $t7, $at, .L7F053268 /* 087D90 7F053260 00000000 */ nop /* 087D94 7F053264 0006000D */ break 6 .L7F053268: /* 087D98 7F053268 100000B3 */ b .L7F053538 /* 087D9C 7F05326C A56D0002 */ sh $t5, 2($t3) /* 087DA0 7F053270 84C50000 */ lh $a1, ($a2) .L7F053274: /* 087DA4 7F053274 01A5082A */ slt $at, $t5, $a1 /* 087DA8 7F053278 142000AF */ bnez $at, .L7F053538 /* 087DAC 7F05327C 00000000 */ nop /* 087DB0 7F053280 84C40002 */ lh $a0, 2($a2) /* 087DB4 7F053284 850F0002 */ lh $t7, 2($t0) /* 087DB8 7F053288 55E40039 */ bnel $t7, $a0, .L7F053370 /* 087DBC 7F05328C 85580002 */ lh $t8, 2($t2) /* 087DC0 7F053290 85180004 */ lh $t8, 4($t0) /* 087DC4 7F053294 84D90004 */ lh $t9, 4($a2) /* 087DC8 7F053298 57190035 */ bnel $t8, $t9, .L7F053370 /* 087DCC 7F05329C 85580002 */ lh $t8, 2($t2) /* 087DD0 7F0532A0 85090000 */ lh $t1, ($t0) /* 087DD4 7F0532A4 51250032 */ beql $t1, $a1, .L7F053370 /* 087DD8 7F0532A8 85580002 */ lh $t8, 2($t2) /* 087DDC 7F0532AC 84C20008 */ lh $v0, 8($a2) /* 087DE0 7F0532B0 850F0008 */ lh $t7, 8($t0) /* 087DE4 7F0532B4 01A57023 */ subu $t6, $t5, $a1 /* 087DE8 7F0532B8 01E2C023 */ subu $t8, $t7, $v0 /* 087DEC 7F0532BC 01D80019 */ multu $t6, $t8 /* 087DF0 7F0532C0 01257823 */ subu $t7, $t1, $a1 /* 087DF4 7F0532C4 0000C812 */ mflo $t9 /* 087DF8 7F0532C8 00000000 */ nop /* 087DFC 7F0532CC 00000000 */ nop /* 087E00 7F0532D0 032F001A */ div $zero, $t9, $t7 /* 087E04 7F0532D4 00007012 */ mflo $t6 /* 087E08 7F0532D8 01C2C021 */ addu $t8, $t6, $v0 /* 087E0C 7F0532DC A5780008 */ sh $t8, 8($t3) /* 087E10 7F0532E0 15E00002 */ bnez $t7, .L7F0532EC /* 087E14 7F0532E4 00000000 */ nop /* 087E18 7F0532E8 0007000D */ break 7 .L7F0532EC: /* 087E1C 7F0532EC 2401FFFF */ li $at, -1 /* 087E20 7F0532F0 15E10004 */ bne $t7, $at, .L7F053304 /* 087E24 7F0532F4 3C018000 */ lui $at, 0x8000 /* 087E28 7F0532F8 17210002 */ bne $t9, $at, .L7F053304 /* 087E2C 7F0532FC 00000000 */ nop /* 087E30 7F053300 0006000D */ break 6 .L7F053304: /* 087E34 7F053304 850F000A */ lh $t7, 0xa($t0) /* 087E38 7F053308 84C3000A */ lh $v1, 0xa($a2) /* 087E3C 7F05330C 84C50000 */ lh $a1, ($a2) /* 087E40 7F053310 01E37023 */ subu $t6, $t7, $v1 /* 087E44 7F053314 01A5C823 */ subu $t9, $t5, $a1 /* 087E48 7F053318 032E0019 */ multu $t9, $t6 /* 087E4C 7F05331C 850F0000 */ lh $t7, ($t0) /* 087E50 7F053320 01E5C823 */ subu $t9, $t7, $a1 /* 087E54 7F053324 0000C012 */ mflo $t8 /* 087E58 7F053328 00000000 */ nop /* 087E5C 7F05332C 00000000 */ nop /* 087E60 7F053330 0319001A */ div $zero, $t8, $t9 /* 087E64 7F053334 00007012 */ mflo $t6 /* 087E68 7F053338 01C37821 */ addu $t7, $t6, $v1 /* 087E6C 7F05333C 17200002 */ bnez $t9, .L7F053348 /* 087E70 7F053340 00000000 */ nop /* 087E74 7F053344 0007000D */ break 7 .L7F053348: /* 087E78 7F053348 2401FFFF */ li $at, -1 /* 087E7C 7F05334C 17210004 */ bne $t9, $at, .L7F053360 /* 087E80 7F053350 3C018000 */ lui $at, 0x8000 /* 087E84 7F053354 17010002 */ bne $t8, $at, .L7F053360 /* 087E88 7F053358 00000000 */ nop /* 087E8C 7F05335C 0006000D */ break 6 .L7F053360: /* 087E90 7F053360 A56F000A */ sh $t7, 0xa($t3) /* 087E94 7F053364 10000074 */ b .L7F053538 /* 087E98 7F053368 A56D0000 */ sh $t5, ($t3) /* 087E9C 7F05336C 85580002 */ lh $t8, 2($t2) .L7F053370: /* 087EA0 7F053370 57040039 */ bnel $t8, $a0, .L7F053458 /* 087EA4 7F053374 84F90002 */ lh $t9, 2($a3) /* 087EA8 7F053378 85590004 */ lh $t9, 4($t2) /* 087EAC 7F05337C 84CE0004 */ lh $t6, 4($a2) /* 087EB0 7F053380 572E0035 */ bnel $t9, $t6, .L7F053458 /* 087EB4 7F053384 84F90002 */ lh $t9, 2($a3) /* 087EB8 7F053388 85480000 */ lh $t0, ($t2) /* 087EBC 7F05338C 51050032 */ beql $t0, $a1, .L7F053458 /* 087EC0 7F053390 84F90002 */ lh $t9, 2($a3) /* 087EC4 7F053394 84C20008 */ lh $v0, 8($a2) /* 087EC8 7F053398 85580008 */ lh $t8, 8($t2) /* 087ECC 7F05339C 01A57823 */ subu $t7, $t5, $a1 /* 087ED0 7F0533A0 0302C823 */ subu $t9, $t8, $v0 /* 087ED4 7F0533A4 01F90019 */ multu $t7, $t9 /* 087ED8 7F0533A8 0105C023 */ subu $t8, $t0, $a1 /* 087EDC 7F0533AC 00007012 */ mflo $t6 /* 087EE0 7F0533B0 00000000 */ nop /* 087EE4 7F0533B4 00000000 */ nop /* 087EE8 7F0533B8 01D8001A */ div $zero, $t6, $t8 /* 087EEC 7F0533BC 00007812 */ mflo $t7 /* 087EF0 7F0533C0 01E2C821 */ addu $t9, $t7, $v0 /* 087EF4 7F0533C4 A5790008 */ sh $t9, 8($t3) /* 087EF8 7F0533C8 17000002 */ bnez $t8, .L7F0533D4 /* 087EFC 7F0533CC 00000000 */ nop /* 087F00 7F0533D0 0007000D */ break 7 .L7F0533D4: /* 087F04 7F0533D4 2401FFFF */ li $at, -1 /* 087F08 7F0533D8 17010004 */ bne $t8, $at, .L7F0533EC /* 087F0C 7F0533DC 3C018000 */ lui $at, 0x8000 /* 087F10 7F0533E0 15C10002 */ bne $t6, $at, .L7F0533EC /* 087F14 7F0533E4 00000000 */ nop /* 087F18 7F0533E8 0006000D */ break 6 .L7F0533EC: /* 087F1C 7F0533EC 8558000A */ lh $t8, 0xa($t2) /* 087F20 7F0533F0 84C3000A */ lh $v1, 0xa($a2) /* 087F24 7F0533F4 84C50000 */ lh $a1, ($a2) /* 087F28 7F0533F8 03037823 */ subu $t7, $t8, $v1 /* 087F2C 7F0533FC 01A57023 */ subu $t6, $t5, $a1 /* 087F30 7F053400 01CF0019 */ multu $t6, $t7 /* 087F34 7F053404 85580000 */ lh $t8, ($t2) /* 087F38 7F053408 03057023 */ subu $t6, $t8, $a1 /* 087F3C 7F05340C 0000C812 */ mflo $t9 /* 087F40 7F053410 00000000 */ nop /* 087F44 7F053414 00000000 */ nop /* 087F48 7F053418 032E001A */ div $zero, $t9, $t6 /* 087F4C 7F05341C 00007812 */ mflo $t7 /* 087F50 7F053420 01E3C021 */ addu $t8, $t7, $v1 /* 087F54 7F053424 15C00002 */ bnez $t6, .L7F053430 /* 087F58 7F053428 00000000 */ nop /* 087F5C 7F05342C 0007000D */ break 7 .L7F053430: /* 087F60 7F053430 2401FFFF */ li $at, -1 /* 087F64 7F053434 15C10004 */ bne $t6, $at, .L7F053448 /* 087F68 7F053438 3C018000 */ lui $at, 0x8000 /* 087F6C 7F05343C 17210002 */ bne $t9, $at, .L7F053448 /* 087F70 7F053440 00000000 */ nop /* 087F74 7F053444 0006000D */ break 6 .L7F053448: /* 087F78 7F053448 A578000A */ sh $t8, 0xa($t3) /* 087F7C 7F05344C 1000003A */ b .L7F053538 /* 087F80 7F053450 A56D0000 */ sh $t5, ($t3) /* 087F84 7F053454 84F90002 */ lh $t9, 2($a3) .L7F053458: /* 087F88 7F053458 57240037 */ bnel $t9, $a0, .L7F053538 /* 087F8C 7F05345C A56D0000 */ sh $t5, ($t3) /* 087F90 7F053460 84EE0004 */ lh $t6, 4($a3) /* 087F94 7F053464 84CF0004 */ lh $t7, 4($a2) /* 087F98 7F053468 55CF0033 */ bnel $t6, $t7, .L7F053538 /* 087F9C 7F05346C A56D0000 */ sh $t5, ($t3) /* 087FA0 7F053470 84E40000 */ lh $a0, ($a3) /* 087FA4 7F053474 50850030 */ beql $a0, $a1, .L7F053538 /* 087FA8 7F053478 A56D0000 */ sh $t5, ($t3) /* 087FAC 7F05347C 84C20008 */ lh $v0, 8($a2) /* 087FB0 7F053480 84F90008 */ lh $t9, 8($a3) /* 087FB4 7F053484 01A5C023 */ subu $t8, $t5, $a1 /* 087FB8 7F053488 03227023 */ subu $t6, $t9, $v0 /* 087FBC 7F05348C 030E0019 */ multu $t8, $t6 /* 087FC0 7F053490 0085C823 */ subu $t9, $a0, $a1 /* 087FC4 7F053494 00007812 */ mflo $t7 /* 087FC8 7F053498 00000000 */ nop /* 087FCC 7F05349C 00000000 */ nop /* 087FD0 7F0534A0 01F9001A */ div $zero, $t7, $t9 /* 087FD4 7F0534A4 0000C012 */ mflo $t8 /* 087FD8 7F0534A8 03027021 */ addu $t6, $t8, $v0 /* 087FDC 7F0534AC A56E0008 */ sh $t6, 8($t3) /* 087FE0 7F0534B0 17200002 */ bnez $t9, .L7F0534BC /* 087FE4 7F0534B4 00000000 */ nop /* 087FE8 7F0534B8 0007000D */ break 7 .L7F0534BC: /* 087FEC 7F0534BC 2401FFFF */ li $at, -1 /* 087FF0 7F0534C0 17210004 */ bne $t9, $at, .L7F0534D4 /* 087FF4 7F0534C4 3C018000 */ lui $at, 0x8000 /* 087FF8 7F0534C8 15E10002 */ bne $t7, $at, .L7F0534D4 /* 087FFC 7F0534CC 00000000 */ nop /* 088000 7F0534D0 0006000D */ break 6 .L7F0534D4: /* 088004 7F0534D4 84F9000A */ lh $t9, 0xa($a3) /* 088008 7F0534D8 84C3000A */ lh $v1, 0xa($a2) /* 08800C 7F0534DC 84C50000 */ lh $a1, ($a2) /* 088010 7F0534E0 0323C023 */ subu $t8, $t9, $v1 /* 088014 7F0534E4 01A57823 */ subu $t7, $t5, $a1 /* 088018 7F0534E8 01F80019 */ multu $t7, $t8 /* 08801C 7F0534EC 84F90000 */ lh $t9, ($a3) /* 088020 7F0534F0 03257823 */ subu $t7, $t9, $a1 /* 088024 7F0534F4 00007012 */ mflo $t6 /* 088028 7F0534F8 00000000 */ nop /* 08802C 7F0534FC 00000000 */ nop /* 088030 7F053500 01CF001A */ div $zero, $t6, $t7 /* 088034 7F053504 0000C012 */ mflo $t8 /* 088038 7F053508 0303C821 */ addu $t9, $t8, $v1 /* 08803C 7F05350C A579000A */ sh $t9, 0xa($t3) /* 088040 7F053510 15E00002 */ bnez $t7, .L7F05351C /* 088044 7F053514 00000000 */ nop /* 088048 7F053518 0007000D */ break 7 .L7F05351C: /* 08804C 7F05351C 2401FFFF */ li $at, -1 /* 088050 7F053520 15E10004 */ bne $t7, $at, .L7F053534 /* 088054 7F053524 3C018000 */ lui $at, 0x8000 /* 088058 7F053528 15C10002 */ bne $t6, $at, .L7F053534 /* 08805C 7F05352C 00000000 */ nop /* 088060 7F053530 0006000D */ break 6 .L7F053534: /* 088064 7F053534 A56D0000 */ sh $t5, ($t3) .L7F053538: /* 088068 7F053538 1654FE52 */ bne $s2, $s4, .L7F052E84 /* 08806C 7F05353C 02401825 */ move $v1, $s2 /* 088070 7F053540 86A2000C */ lh $v0, 0xc($s5) /* 088074 7F053544 27DE0004 */ addiu $fp, $fp, 4 /* 088078 7F053548 04410003 */ bgez $v0, .L7F053558 /* 08807C 7F05354C 00027083 */ sra $t6, $v0, 2 /* 088080 7F053550 24410003 */ addiu $at, $v0, 3 /* 088084 7F053554 00017083 */ sra $t6, $at, 2 .L7F053558: /* 088088 7F053558 000E1880 */ sll $v1, $t6, 2 /* 08808C 7F05355C 03C3082A */ slt $at, $fp, $v1 /* 088090 7F053560 5420FE47 */ bnezl $at, .L7F052E80 /* 088094 7F053564 00001825 */ move $v1, $zero .L7F053568: /* 088098 7F053568 8FBF003C */ lw $ra, 0x3c($sp) .L7F05356C: /* 08809C 7F05356C 8FB00018 */ lw $s0, 0x18($sp) /* 0880A0 7F053570 8FB1001C */ lw $s1, 0x1c($sp) /* 0880A4 7F053574 8FB20020 */ lw $s2, 0x20($sp) /* 0880A8 7F053578 8FB30024 */ lw $s3, 0x24($sp) /* 0880AC 7F05357C 8FB40028 */ lw $s4, 0x28($sp) /* 0880B0 7F053580 8FB5002C */ lw $s5, 0x2c($sp) /* 0880B4 7F053584 8FB60030 */ lw $s6, 0x30($sp) /* 0880B8 7F053588 8FB70034 */ lw $s7, 0x34($sp) /* 0880BC 7F05358C 8FBE0038 */ lw $fp, 0x38($sp) /* 0880C0 7F053590 03E00008 */ jr $ra /* 0880C4 7F053594 27BD0058 */ addiu $sp, $sp, 0x58 ) #endif /** * objToggleDoorPortal / doorActivatePortal * Toggles (Open/Closed) the portal linked with door * @param door: Door to toggle portal on */ void doorActivatePortal(DoorRecord *door) { if (door->portalNumber >= 0) { bgToggleDataPortalsContrlBytes1Bit1(door->portalNumber, TRUE); } } /** * objToggleDoorPortal / doorDeactivatePortal * Toggles (Open/Closed) the portal linked with door * @param door: Door to toggle portal on */ void doorDeactivatePortal(DoorRecord *door) { if (door->portalNumber >= 0) { bgToggleDataPortalsContrlBytes1Bit1(door->portalNumber, FALSE); } } PropRecord* doorInit(DoorRecord* door, coord3d* pos, Mtxf* mtx, StandTile* stan, coord3d* coord, coord3d* centre) { PropRecord* prop; f32 scale; prop = objInitWithAutoModel((ObjectRecord* ) door); scale = PitemZ_entries[door->obj].scale; door->ptr_allocated_collisiondata_block = mempAllocBytesInBank(0x50U, MEMPOOL_STAGE); matrix_4x4_copy(mtx, &door->mtx); matrix_scalar_multiply(scale, door->mtx.m[0]); door->frac = (f32) coord->x; door->unkac = (f32) coord->y; door->unkb0 = (f32) coord->z; if (door->flags & PROPFLAG_80000000) { door->openPosition = door->maxFrac; } else { door->openPosition = 0.0f; } door->speed = 0.0f; door->openstate = 0; door->unkbd = 0; door->linkedDoor = NULL; if (door->doorFlags & 4) { union ModelRoData *rodata = door->model->obj->RootNode->Child->Child->Data; door->unkcc = mempAllocBytesInBank(rodata->DisplayListCollisions.numVertices * sizeof(Vertex), MEMPOOL_STAGE); } else { door->unkcc = NULL; } door->portalNumber = -1; door->openSoundState = 0; door->closeSoundState = 0; prop->type = PROP_TYPE_DOOR; prop->door = door; prop->pos.x = pos->x; prop->pos.y = pos->y; prop->pos.z = pos->z; prop->stan = stan; door->runtime_pos.x = centre->x; door->runtime_pos.y = centre->y; door->runtime_pos.z = centre->z; door->flags |= PROPFLAG_00000100; door7F052B00(door); sub_GAME_7F052D8C(door); sub_GAME_7F0402B4(door->prop, &door->nextcol); door->shadecol.r = door->nextcol.r; door->shadecol.g = door->nextcol.g; door->shadecol.b = door->nextcol.b; door->shadecol.a = door->nextcol.a; return prop; } s32 sub_GAME_7F0537B8(f32 distance, f32 min, f32 max) { s32 retval; if (distance <= 200.0f) { retval = SHRT_MAX; } else if (max <= distance) { retval = 0.0f; } else if (min <= distance) { retval = ((max - distance) * 10000.0f) / (max - min); } else { retval = SHRT_MAX - (s32)((sqrtf(distance - 200.0f) * 22767.0f) / sqrtf(min - 200.0f)); } return retval; } s32 sub_GAME_7F053894(coord3d *pos, f32 low, f32 high) { PropRecord *prop; s32 index; f32 shortest_distance; f32 diffx; f32 diffy; f32 diffz; f32 distance; s32 count; shortest_distance = high; count = getPlayerCount(); for (index = 0; index < count; index++) { prop = g_playerPointers[index]->prop; diffx = prop->pos.x - pos->x; diffy = prop->pos.y - pos->y; diffz = prop->pos.z - pos->z; distance = sqrtf(diffx * diffx + diffy * diffy + diffz * diffz); if (distance < shortest_distance) { shortest_distance = distance; } } return sub_GAME_7F0537B8(shortest_distance, low, high); } void chrobjSndCreatePostEvent(ALSoundState *state, coord3d *pos, f32 low, f32 high) { sndCreatePostEvent(state, 8, sub_GAME_7F053894(pos, low, high)); } s32 sub_GAME_7F0539B8(f32 vol) { return sub_GAME_7F0537B8(vol, 5000.0f, 6000.0f); } s32 sub_GAME_7F0539E4(coord3d *pos) { return sub_GAME_7F053894(pos, 5000.0f, 6000.0f); } void chrobjSndCreatePostEventDefault(ALSoundState *state, coord3d *pos) { chrobjSndCreatePostEvent(state, pos, 5000.0f, 6000.0f); } void sub_GAME_7F053A3C(DoorRecord* arg0) { s32 open_playing; s32 close_playing; s32 sp1C; open_playing = (arg0->openSoundState != NULL) && (sndGetPlayingState(arg0->openSoundState) != 0); close_playing = (arg0->closeSoundState != NULL) && (sndGetPlayingState(arg0->closeSoundState) != 0); if ((open_playing != 0) || (close_playing != 0)) { sp1C = sub_GAME_7F0539E4(&arg0->prop->pos); if (lvlGetControlsLockedFlag() != 0) { sp1C = 0; } if (open_playing != 0) { #ifdef DEBUG assert( po->audiostate!=NULL); #endif sndCreatePostEvent(arg0->openSoundState, 8, sp1C); } if (close_playing != 0) { #ifdef DEBUG assert( po->audiostate2!=NULL); #endif sndCreatePostEvent(arg0->closeSoundState, 8, sp1C); } } } void door7F053B10(DoorRecord *door) //#MATCH { if (door->openSoundState && sndGetPlayingState(door->openSoundState)) { sndDeactivate(door->openSoundState); } if (door->closeSoundState && sndGetPlayingState(door->closeSoundState)) { sndDeactivate(door->closeSoundState); } } void doorPlayOpenSound0(DoorRecord *door) { ALSoundState *soundState = NULL; ALSoundState *pendingState = NULL; door7F053B10(door); if (door->openSoundState == NULL) { pendingState = &door->openSoundState; } else if (door->closeSoundState == NULL) { pendingState = &door->closeSoundState; } switch (door->doorOpenSound) { case DOOR_OPEN_SOUND_01: soundState = sndPlaySfx(g_musicSfxBufferPtr, DOOR_SMART_CATCH1_SFX, NULL); if (pendingState != NULL) { sndPlaySfx(g_musicSfxBufferPtr, DOOR_SMART_SLIDE1_SFX, pendingState); } break; case DOOR_OPEN_SOUND_02: soundState = sndPlaySfx(g_musicSfxBufferPtr, DOOR_SMART_CATCH1_SFX, NULL); if (pendingState != NULL) { sndPlaySfx(g_musicSfxBufferPtr, TRAIN_SLIDE_DOOR_SLIDE_SFX, pendingState); } break; case DOOR_OPEN_SOUND_METAL: soundState = sndPlaySfx(g_musicSfxBufferPtr, METAL_SLIDE_OPEN_SFX, NULL); if (pendingState != NULL) { sndPlaySfx(g_musicSfxBufferPtr, METAL_SLIDE_LOOP_SFX, pendingState); } break; case DOOR_OPEN_SOUND_04: soundState = sndPlaySfx(g_musicSfxBufferPtr, HEAVY_SLIDE_OPEN_SFX, NULL); if (pendingState != NULL) { sndPlaySfx(g_musicSfxBufferPtr, HEAVY_SINGLE_LOOP_SFX, pendingState); } break; case DOOR_OPEN_SOUND_WOOD: soundState = sndPlaySfx(g_musicSfxBufferPtr, DOOR_WOOD_OPEN_SFX, NULL); break; case DOOR_OPEN_SOUND_06: soundState = sndPlaySfx(g_musicSfxBufferPtr, TRAIN_SLIDE_DOOR_SLIDE_SFX, NULL); break; case DOOR_OPEN_SOUND_WOOD_2: soundState = sndPlaySfx(g_musicSfxBufferPtr, TRAIN_SLIDE_DOOR_CATCH_SFX, NULL); if (pendingState != NULL) { sndPlaySfx(g_musicSfxBufferPtr, DOOR_WOOD_SLIDE_SFX, pendingState); } break; case DOOR_OPEN_SOUND_WOOD_3: soundState = sndPlaySfx(g_musicSfxBufferPtr, DOOR_WOOD_OPEN_SFX, NULL); if (pendingState != NULL) { sndPlaySfx(g_musicSfxBufferPtr, TRAIN_SLIDE_DOOR_SLIDE_SFX, pendingState); } break; case DOOR_OPEN_SOUND_09: if (pendingState != NULL) { sndPlaySfx(g_musicSfxBufferPtr, DOOR_SHUTTER_OPEN_SFX, pendingState); } break; case DOOR_OPEN_SOUND_METAL_2: soundState = sndPlaySfx(g_musicSfxBufferPtr, DOOR_METAL_OPEN_SFX, NULL); break; case DOOR_OPEN_SOUND_11: soundState = sndPlaySfx(g_musicSfxBufferPtr, TRAIN_SLIDE_DOOR_SLIDE_SFX, NULL); break; case DOOR_OPEN_SOUND_METAL_3: soundState = sndPlaySfx(g_musicSfxBufferPtr, DOOR_METAL_OPEN3_SFX, NULL); break; case DOOR_OPEN_SOUND_13: soundState = sndPlaySfx(g_musicSfxBufferPtr, TRAIN_SLIDE_DOOR_SLIDE_SFX, NULL); if (pendingState != NULL) { sndPlaySfx(g_musicSfxBufferPtr, TRAIN_SLIDE_DOOR_SLIDE_SFX, pendingState); } break; case DOOR_OPEN_SOUND_HYDROLIC: if (pendingState != NULL) { sndPlaySfx(g_musicSfxBufferPtr, DOOR_HYDRAL_CLOSE_SFX, pendingState); } break; case DOOR_OPEN_SOUND_STONE: if (pendingState != NULL) { sndPlaySfx(g_musicSfxBufferPtr, DOOR_SLIDE_STONE_OPEN_SFX, pendingState); } break; case DOOR_OPEN_SOUND_16: soundState = sndPlaySfx(g_musicSfxBufferPtr, HEAVY_SLIDE_OPEN_SFX, NULL); break; case DOOR_OPEN_SOUND_METAL_4: soundState = sndPlaySfx(g_musicSfxBufferPtr, TRAIN_SLIDE_DOOR_SLIDE_SFX, NULL); if (soundState != NULL) { chrobjSndCreatePostEventDefault(soundState, &door->prop->pos); } soundState = sndPlaySfx(g_musicSfxBufferPtr, METAL_SLIDE_OPEN_SFX, NULL); if (pendingState != NULL) { sndPlaySfx(g_musicSfxBufferPtr, METAL_SLIDE_LOOP_SFX, pendingState); } break; } if (soundState != NULL) { chrobjSndCreatePostEventDefault(soundState, &door->prop->pos); } sub_GAME_7F053A3C(door); } void doorPlayOpenSound1(DoorRecord *door) { ALSoundState *soundState = NULL; ALSoundState *pendingState = NULL; door7F053B10(door); if (door->openSoundState == NULL) { pendingState = &door->openSoundState; } else if (door->closeSoundState == NULL) { pendingState = &door->closeSoundState; } switch (door->doorOpenSound) { case DOOR_OPEN_SOUND_01: soundState = sndPlaySfx(g_musicSfxBufferPtr, DOOR_SMART_CATCH1_SFX, NULL); if (pendingState != NULL) { sndPlaySfx(g_musicSfxBufferPtr, DOOR_SMART_SLIDE1_SFX, pendingState); } break; case DOOR_OPEN_SOUND_02: soundState = sndPlaySfx(g_musicSfxBufferPtr, DOOR_SMART_CATCH1_SFX, NULL); if (pendingState != NULL) { sndPlaySfx(g_musicSfxBufferPtr, TRAIN_SLIDE_DOOR_SLIDE_SFX, pendingState); } break; case DOOR_OPEN_SOUND_METAL: soundState = sndPlaySfx(g_musicSfxBufferPtr, METAL_SLIDE_OPEN_SFX, NULL); if (pendingState != NULL) { sndPlaySfx(g_musicSfxBufferPtr, METAL_SLIDE_LOOP_SFX, pendingState); } break; case DOOR_OPEN_SOUND_04: soundState = sndPlaySfx(g_musicSfxBufferPtr, HEAVY_SLIDE_OPEN_SFX, NULL); if (pendingState != NULL) { sndPlaySfx(g_musicSfxBufferPtr, HEAVY_SINGLE_LOOP_SFX, pendingState); } break; case DOOR_OPEN_SOUND_WOOD_2: soundState = sndPlaySfx(g_musicSfxBufferPtr, TRAIN_SLIDE_DOOR_CATCH_SFX, NULL); if (pendingState != NULL) { sndPlaySfx(g_musicSfxBufferPtr, DOOR_WOOD_SLIDE_SFX, pendingState); } break; case DOOR_OPEN_SOUND_WOOD_3: soundState = sndPlaySfx(g_musicSfxBufferPtr, DOOR_WOOD_OPEN_SFX, NULL); if (pendingState != NULL) { sndPlaySfx(g_musicSfxBufferPtr, TRAIN_SLIDE_DOOR_SLIDE_SFX, pendingState); } break; case DOOR_OPEN_SOUND_09: if (pendingState != NULL) { sndPlaySfx(g_musicSfxBufferPtr, DOOR_SHUTTER_OPEN_SFX, pendingState); } break; case DOOR_OPEN_SOUND_13: soundState = sndPlaySfx(g_musicSfxBufferPtr, TRAIN_SLIDE_DOOR_SLIDE_SFX, NULL); if (pendingState != NULL) { sndPlaySfx(g_musicSfxBufferPtr, TRAIN_SLIDE_DOOR_SLIDE_SFX, pendingState); } break; case DOOR_OPEN_SOUND_HYDROLIC: if (pendingState != NULL) { sndPlaySfx(g_musicSfxBufferPtr, DOOR_HYDRAL_CLOSE_SFX, pendingState); } break; case DOOR_OPEN_SOUND_STONE: if (pendingState != NULL) { sndPlaySfx(g_musicSfxBufferPtr, DOOR_SLIDE_STONE_OPEN_SFX, pendingState); } break; case DOOR_OPEN_SOUND_16: soundState = sndPlaySfx(g_musicSfxBufferPtr, HEAVY_SLIDE_OPEN_SFX, NULL); break; case DOOR_OPEN_SOUND_METAL_4: soundState = sndPlaySfx(g_musicSfxBufferPtr, TRAIN_SLIDE_DOOR_SLIDE_SFX, NULL); if (soundState != NULL) { chrobjSndCreatePostEventDefault(soundState, &door->prop->pos); } soundState = sndPlaySfx(g_musicSfxBufferPtr, METAL_SLIDE_OPEN_SFX, NULL); if (pendingState != NULL) { sndPlaySfx(g_musicSfxBufferPtr, METAL_SLIDE_LOOP_SFX, pendingState); } break; } if (soundState != NULL) { chrobjSndCreatePostEventDefault(soundState, &door->prop->pos); } sub_GAME_7F053A3C(door); } void doorPlayCloseSound0(DoorRecord *door) { ALSoundState *soundState = NULL; door7F053B10(door); switch (door->doorOpenSound) { case DOOR_OPEN_SOUND_01: soundState = sndPlaySfx(g_musicSfxBufferPtr, DOOR_SMART_CATCH1_SFX, NULL); break; case DOOR_OPEN_SOUND_02: soundState = sndPlaySfx(g_musicSfxBufferPtr, DOOR_SMART_CATCH1_SFX, NULL); break; case DOOR_OPEN_SOUND_METAL: soundState = sndPlaySfx(g_musicSfxBufferPtr, METAL_SLIDE_CLOSE_SFX, NULL); break; case DOOR_OPEN_SOUND_04: soundState = sndPlaySfx(g_musicSfxBufferPtr, HEAVY_SLIDE_CLOSE_SFX, NULL); break; case DOOR_OPEN_SOUND_WOOD_2: soundState = sndPlaySfx(g_musicSfxBufferPtr, DOOR_SMART_CATCH1_SFX, NULL); break; case DOOR_OPEN_SOUND_WOOD_3: soundState = sndPlaySfx(g_musicSfxBufferPtr, DOOR_WOOD_CLOSE_SFX, NULL); break; case DOOR_OPEN_SOUND_09: soundState = sndPlaySfx(g_musicSfxBufferPtr, DOOR_SHUTTER_CLOSE_SFX, NULL); break; case DOOR_OPEN_SOUND_13: soundState = sndPlaySfx(g_musicSfxBufferPtr, TRAIN_SLIDE_DOOR_SLIDE_SFX, NULL); break; case DOOR_OPEN_SOUND_HYDROLIC: soundState = sndPlaySfx(g_musicSfxBufferPtr, DOOR_HYDRAL_OPEN_SFX, NULL); break; case DOOR_OPEN_SOUND_STONE: soundState = sndPlaySfx(g_musicSfxBufferPtr, DOOR_SLIDE_STONE_CLOSE_SFX, NULL); break; case DOOR_OPEN_SOUND_16: soundState = sndPlaySfx(g_musicSfxBufferPtr, HEAVY_SLIDE_CLOSE_SFX, NULL); break; case DOOR_OPEN_SOUND_METAL_4: soundState = sndPlaySfx(g_musicSfxBufferPtr, METAL_SLIDE_CLOSE_SFX, NULL); break; } if (door); // Fix for recomp not matching if (soundState != NULL) { chrobjSndCreatePostEventDefault(soundState, &door->prop->pos); } sub_GAME_7F053A3C(door); } void doorPlayCloseSound1(DoorRecord *door) { ALSoundState *soundState = NULL; door7F053B10(door); switch (door->doorOpenSound) { case DOOR_OPEN_SOUND_01: soundState = sndPlaySfx(g_musicSfxBufferPtr, DOOR_SMART_CATCH1_SFX, NULL); break; case DOOR_OPEN_SOUND_02: soundState = sndPlaySfx(g_musicSfxBufferPtr, DOOR_SMART_CATCH1_SFX, NULL); break; case DOOR_OPEN_SOUND_METAL: soundState = sndPlaySfx(g_musicSfxBufferPtr, METAL_SLIDE_CLOSE_SFX, NULL); break; case DOOR_OPEN_SOUND_04: soundState = sndPlaySfx(g_musicSfxBufferPtr, HEAVY_SLIDE_CLOSE_SFX, NULL); break; case DOOR_OPEN_SOUND_WOOD: soundState = sndPlaySfx(g_musicSfxBufferPtr, DOOR_WOOD_CLOSE_SFX, NULL); break; case DOOR_OPEN_SOUND_06: soundState = sndPlaySfx(g_musicSfxBufferPtr, TRAIN_SLIDE_DOOR_SLIDE_SFX, NULL); break; case DOOR_OPEN_SOUND_WOOD_2: soundState = sndPlaySfx(g_musicSfxBufferPtr, DOOR_SMART_CATCH1_SFX, NULL); break; case DOOR_OPEN_SOUND_WOOD_3: soundState = sndPlaySfx(g_musicSfxBufferPtr, DOOR_WOOD_CLOSE_SFX, NULL); break; case DOOR_OPEN_SOUND_09: soundState = sndPlaySfx(g_musicSfxBufferPtr, DOOR_SHUTTER_CLOSE_SFX, NULL); break; case DOOR_OPEN_SOUND_METAL_2: soundState = sndPlaySfx(g_musicSfxBufferPtr, DOOR_METAL_CLOSE_SFX, NULL); break; case DOOR_OPEN_SOUND_11: soundState = sndPlaySfx(g_musicSfxBufferPtr, DOOR_METAL_CLOSE2_SFX, NULL); break; case DOOR_OPEN_SOUND_METAL_3: soundState = sndPlaySfx(g_musicSfxBufferPtr, DOOR_METAL_CLOSE3_SFX, NULL); break; case DOOR_OPEN_SOUND_13: soundState = sndPlaySfx(g_musicSfxBufferPtr, TRAIN_SLIDE_DOOR_SLIDE_SFX, NULL); break; case DOOR_OPEN_SOUND_HYDROLIC: soundState = sndPlaySfx(g_musicSfxBufferPtr, DOOR_HYDRAL_OPEN_SFX, NULL); break; case DOOR_OPEN_SOUND_STONE: soundState = sndPlaySfx(g_musicSfxBufferPtr, DOOR_SLIDE_STONE_CLOSE_SFX, NULL); break; case DOOR_OPEN_SOUND_16: soundState = sndPlaySfx(g_musicSfxBufferPtr, HEAVY_SLIDE_CLOSE_SFX, NULL); break; case DOOR_OPEN_SOUND_METAL_4: soundState = sndPlaySfx(g_musicSfxBufferPtr, METAL_SLIDE_CLOSE_SFX, NULL); break; } if (door); // Fix for recomp not matching if (soundState != NULL) { chrobjSndCreatePostEventDefault(soundState, &door->prop->pos); } sub_GAME_7F053A3C(door); } /** * Play the door open sound and activate the door's portal, */ void doorStartOpen(DoorRecord *door) { door->flags &= ~DOORFLAG_KEEPOPEN; door->runtime_bitflags |= RUNTIMEBITFLAG_BEENOPENED; doorPlayOpenSound0(door); doorActivatePortal(door); if (door->doorType == 8) { struct collision_data *col = door->ptr_allocated_collisiondata_block; door->flags |= DOORFLAG_CANNOT_ACTIVATE; door->perimFrac = 0; if (col) { col->unk00 = 0; } door->flags &= ~DOORFLAG_100; } } /** * Play the door close sound */ void doorStartClose(DoorRecord *door) { door->flags &= ~DOORFLAG_KEEPOPEN; doorPlayOpenSound1(door); } void doorFinishOpen(DoorRecord *door) { doorPlayCloseSound0(door); if (door->doorType == 8) { sub_GAME_7F03FDA8(door->prop); if (door->runtime_bitflags & RUNTIMEBITFLAG_DEPOSIT) { door->projectile->flags |= 1; matrix_4x4_set_identity(&door->projectile->mtx); } } } void doorFinishClose(DoorRecord* door) { doorPlayCloseSound1(door); doorDeactivatePortal(door); } /** * Apply the given state to an individual door (not its siblings). * * Handles playing door open/close sounds and activating the portal if opening. */ void doorSetOpenState(DoorRecord *door, s32 newstate) { if (newstate == DOORSTATE_OPENING) { if (door->openstate == DOORSTATE_STATIONARY || door->openstate == DOORSTATE_WAITING) { doorStartOpen(door); } door->openstate = newstate; } else if (newstate == DOORSTATE_CLOSING) { if (door->openstate == DOORSTATE_STATIONARY && door->openPosition > 0) { doorStartClose(door); } if ((door->openstate != DOORSTATE_STATIONARY && door->openstate != DOORSTATE_WAITING) || door->openPosition > 0) { door->openstate = newstate; } else if (door->openstate == DOORSTATE_WAITING) { door->openstate = DOORSTATE_STATIONARY; } } else { door->openstate = newstate; } } void doorActivate(DoorRecord *door, DOORSTATE State) //#MATCH { DoorRecord *linkeddoor; DOORSTATE LinkedState = State; if (door->flags2 & 0x40000000) //Close first door before opening second { if (State == DOORSTATE_OPENING) { LinkedState = DOORSTATE_CLOSING; if (door->openstate == DOORSTATE_STATIONARY) { State = DOORSTATE_WAITING; } } } doorSetOpenState(door, State); linkeddoor = door->linkedDoor; while (linkeddoor && linkeddoor != door) { doorSetOpenState(linkeddoor, LinkedState); linkeddoor = linkeddoor->linkedDoor; }; } bool doorIsClosed(DoorRecord *door) { return ((door->openstate == DOORSTATE_STATIONARY) || (door->openstate == DOORSTATE_WAITING)) && (door->openPosition <= 0.0f); } s32 sub_GAME_7F054A64(PropRecord *prop, bbox2d *bbox) { s32 room_ids[8]; s32 *rooms; bool result = FALSE; s32 room_id; bbox2d bbox2; chraiGetPropRoomIds(prop, room_ids); rooms = room_ids; room_id = *rooms; while (room_id >= 0) { if (bgGet2dBboxByRoomId(room_id, &bbox2)) { if (result) { if (bbox->min.x > bbox2.min.x) { bbox->min.x = bbox2.min.x; } if (bbox->min.y > bbox2.min.y) { bbox->min.y = bbox2.min.y; } if (bbox->max.x < bbox2.max.x) { bbox->max.x = bbox2.max.x; } if (bbox->max.y < bbox2.max.y) { bbox->max.y = bbox2.max.y; } } else { bbox->min.x = bbox2.min.x; bbox->min.y = bbox2.min.y; bbox->max.x = bbox2.max.x; bbox->max.y = bbox2.max.y; } result = TRUE; } rooms++; room_id = *rooms; } return result; } /** * Address 0x7F054B80. */ f32 chrobjFogVisRangeRelated(PropRecord *prop, f32 size) { f32 ret; #if defined(LEFTOVERDEBUG) struct NearFogRecord *nfd; #else struct NearFogRecordF *nfd; #endif f32 temp_f12; ret = 1.0f; nfd = fogGetNearFogValuesP(); if ((nfd != NULL) && (nfd->MaxObfuscationRange < prop->zDepth)) { temp_f12 = getPlayer_c_lodscalez(); temp_f12 = ((((prop->zDepth - nfd->MaxObfuscationRange) * 100.0f) / size) + nfd->MaxObfuscationRange) * temp_f12; if (nfd->MaxVisRange <= temp_f12) { ret = 0.0f; //im invisible } else { if (nfd->NearFog < temp_f12) { ret = (nfd->MaxVisRange - temp_f12) / (nfd->MaxVisRange - nfd->NearFog);// power of fog (0 - 1 ) where 0 is full fog, and 1 is no fog } } } return ret; } bool sub_GAME_7F054C58(coord3d *coord, f32 arg1) { bool result = TRUE; coord3d *ptr = (coord3d*)fogGetNearFogValuesP(); coord3d tmp; f32 sp20; if (ptr != NULL) { coord3d *campos = bondviewGetCurrentPlayersPosition(); Mtxf *mtx = camGetWorldToScreenMtxf(); tmp.x = coord->x - campos->x; tmp.y = coord->y - campos->y; tmp.z = coord->z - campos->z; sp20 = tmp.f[0] * mtx->m[0][0] + tmp.f[1] * mtx->m[0][1] + tmp.f[2] * mtx->m[0][2]; if (sp20 > ptr->z) { f32 scalez = getPlayer_c_lodscalez(); sp20 = ((sp20 - ptr->z) * 100 / arg1 + ptr->z) * scalez; if (sp20 >= ptr->y) { result = FALSE; } } } return result; } // PD: func0f08e8ac bool sub_GAME_7F054D6C(PropRecord *prop, coord3d *pos, f32 arg2, bool arg3) { s32 room_ids[8]; s32 *rooms; s32 roomnum; bool result; bbox2d bbox; result = FALSE; chraiGetPropRoomIds(prop, room_ids); rooms = room_ids; roomnum = *rooms; while (roomnum >= 0) { if (getROOMID_isRendered(roomnum) != 0) { if (fogPositionIsVisibleThroughFog(pos, arg2) && (!arg3 || sub_GAME_7F054C58(pos, arg2))) { if (sub_GAME_7F054A64(prop, &bbox) != 0) { result = camIsPosInScreenBox(pos, arg2, &bbox); } else { result = camIsPosInScreen(pos, arg2); } if (result) { coord3d *campos = bondviewGetCurrentPlayersPosition(); f32 xdiff = pos->x - campos->x; f32 ydiff = pos->y - campos->y; f32 zdiff = pos->z - campos->z; if (xdiff * xdiff + ydiff * ydiff + zdiff * zdiff > 32000 * 32000) { result = FALSE; } } } break; } rooms++; roomnum = *rooms; result = FALSE; } return result; } /** * Loaded to 7F054EA8. */ s32 updateDoorDisplacement(DoorRecord* door) { int isMoving = 0; if (door->openstate == DOORSTATE_OPENING) { chrobjApplySpeed(&door->openPosition, door->maxFrac, &door->speed, door->accel, door->decel, door->maxSpeed); if (door->maxFrac <= door->openPosition) { door->openPosition = door->maxFrac; } else { if (door->openPosition <= 0.0f) { door->openPosition = 0.0f; } } isMoving = 1; } else if (door->openstate == DOORSTATE_CLOSING) { chrobjApplySpeed(&door->openPosition, 0.0f, &door->speed, door->accel, door->decel, door->maxSpeed); if (door->maxFrac <= door->openPosition) { door->openPosition = door->maxFrac; } else { if (door->openPosition <= 0.0f) { door->openPosition = 0.0f; } } isMoving = 1; } return isMoving; } /** * NTSC address 0x7F054FB4. */ void door7F054FB4(DoorRecord *door) { Model *temp_a0; ModelNode *temp_a1; s32 var_s4; DoorRecord *var_s1; s32 var_s5; s32 var_a0; struct ModelRoData_DisplayList_CollisionRecord *temp_s0; struct ModelRwData_DisplayList_CollisionRecord *temp_v0_3; var_s4 = 0; var_s5 = 1; var_s1 = door; while (var_s1 != NULL) { var_s1->lastcalc60f = var_s1->openPosition; if (updateDoorDisplacement(var_s1) != 0) { var_s4 = 1; } var_s1 = var_s1->linkedDoor; if (var_s1 == door) { break; } } var_s1 = door; if ((var_s4 != 0)) { while (var_s1 != NULL) { door7F052B00(var_s1); var_s5 = sub_GAME_7F0448A8(var_s1->prop); if (var_s5 == 0) { break; } var_s1 = var_s1->linkedDoor; if (var_s1 == door) { break; } } } var_s1 = door; while (var_s1 != NULL) { if (var_s4) { if (var_s5 != 0) { if (var_s1->openstate == DOORMODE_OPENING) { if (var_s1->maxFrac <= var_s1->openPosition) { var_s1->openstate = 0; var_s1->speed = 0.0f; var_s1->openedTime = (u32) g_GlobalTimer; doorFinishOpen(var_s1); } } else if ((var_s1->openstate == DOORMODE_CLOSING) && (var_s1->openPosition <= 0.0f)) { var_s1->openstate = 0; var_s1->speed = 0.0f; var_s1->openedTime = 0; doorFinishClose(var_s1); } sub_GAME_7F0402B4(var_s1->prop, &var_s1->nextcol); } else { var_s1->speed = 0.0f; var_s1->openPosition = var_s1->lastcalc60f; door7F052B00(var_s1); } sub_GAME_7F052D8C(var_s1); } else if (var_s1->doorFlags & DOORFLAG_0004) { temp_a0 = var_s1->model; temp_a1 = temp_a0->obj->RootNode->Child->Child; temp_s0 = (struct ModelRoData_DisplayList_CollisionRecord *)temp_a1->Data; temp_v0_3 = (struct ModelRwData_DisplayList_CollisionRecord*)modelGetNodeRwData(temp_a0, temp_a1); if (temp_v0_3->Vertices != var_s1->unkcc) { for (var_a0 = 0; var_a0 < temp_s0->numVertices; var_a0++) { // struct copy var_s1->unkcc[var_a0] = temp_v0_3->Vertices[var_a0]; } } temp_v0_3->Vertices = var_s1->unkcc; } var_s1->lastcalc60i = g_GlobalTimer; var_s1 = var_s1->linkedDoor; if (var_s1 == door) { break; } } } // PD: door0f08f604 void door7F05522C(DoorRecord *door, f32 *arg1, f32 *arg2, s32 altcoordsystem) { f32 anglediff; PropRecord *playerprop; BoundPadRecord *pad; coord3d field_10; coord3d normal; f32 xmin; f32 xmax; coord3d playerpos; f32 angle2; f32 cosine; f32 sine; f32 angle; f32 y1; f32 x1; f32 playerangle; f32 anglediff2; f32 scale; f32 xbound; pad = &g_CurrentSetup.boundpads[door->pad]; playerprop = get_curplayer_positiondata(); if (1) { scale = 1.0f; } playerpos.f[0] = (((g_CurrentPlayer->field_488.theta_transform.x * 30.0f) * scale) * 0.75f) + playerprop->pos.x; playerpos.f[1] = playerprop->pos.y; playerpos.f[2] = (((g_CurrentPlayer->field_488.theta_transform.z * 30.0f) * scale) * 0.75f) + playerprop->pos.z; if (altcoordsystem != 0) { xmin = pad->bbox.xmin; xmax = pad->bbox.xmax; normal.f[0] = (pad->up.y * pad->look.z) - (pad->look.y * pad->up.z); normal.f[1] = (pad->up.z * pad->look.x) - (pad->look.z * pad->up.x); normal.f[2] = (pad->up.x * pad->look.y) - (pad->look.x * pad->up.y); } else { xmin = pad->bbox.ymin; xmax = pad->bbox.ymax; normal.f[0] = pad->up.x; normal.f[1] = pad->up.y; normal.f[2] = pad->up.z; } x1 = (pad->pos.x + (normal.x * xmin)) - playerpos.x; y1 = (pad->pos.z + (normal.z * xmin)) - playerpos.z; angle = atan2f(x1, y1); playerangle = get_curplay_horizontal_rotation_in_degrees(); anglediff = angle - playerangle; scale = (angle - playerangle) + M_TAU_F; if (angle < playerangle) { anglediff = scale; } if (anglediff > M_PI_F) { anglediff = anglediff - M_TAU_F; } if (door->doorType == 5) { angle2 = (door->openPosition * M_TAU_F) / 360.0f; if (door->flags & 0x20000000) { angle2 = M_TAU_F - angle2; } cosine = cosf(angle2); sine = sinf(angle2); xbound = xmax - xmin; x1 = ((pad->pos.x + (normal.x * xmin)) + (xbound * ((normal.x * cosine) + (normal.z * sine)))) - playerpos.x; y1 = ((pad->pos.z + (normal.z * xmin)) + (xbound * (((-normal.x) * sine) + (normal.z * cosine)))) - playerpos.z; angle = atan2f(x1, y1); playerangle = get_curplay_horizontal_rotation_in_degrees(); anglediff2 = angle - playerangle; if (angle < playerangle) { anglediff2 += M_TAU_F; } if (anglediff2 > M_PI_F) { anglediff2 -= M_TAU_F; } } else { x1 = (pad->pos.x + (normal.x * xmax)) - playerpos.x; y1 = (pad->pos.z + (normal.z * xmax)) - playerpos.z; angle = atan2f(x1, y1); playerangle = get_curplay_horizontal_rotation_in_degrees(); anglediff2 = angle - playerangle; if (normal.x); if (xmax); if (angle < playerangle) { anglediff2 += M_TAU_F; } if (anglediff2 > M_PI_F) { anglediff2 -= M_TAU_F; } } if (anglediff < anglediff2) { *arg1 = anglediff; *arg2 = anglediff2; } else { *arg1 = anglediff2; *arg2 = anglediff; } } // PD: func0f08f968 bool door7F0555F8(DoorRecord *door, bool altcoordsystem) { bool checkmore; f32 sp50; f32 sp4c; DoorRecord *sibling; f32 limit; f32 sp40; f32 sp3c; checkmore = TRUE; limit = 0.34906587f; if (g_InteractProp == NULL) { door7F05522C(door, &sp50, &sp4c, altcoordsystem); if ((sp50 >= -limit) && (sp50 <= limit) && (sp4c >= -limit) && (sp4c <= limit)) { g_InteractProp = door->prop; checkmore = FALSE; } else { sibling = door->linkedDoor; while (sibling != NULL && sibling != door && (sp50 >= 0.0f || sp4c < 0.0f)) { door7F05522C(sibling, &sp40, &sp3c, altcoordsystem); if ((sp50 > 0.0f) && (sp40 < sp50)) { sp50 = sp40; } if ((sp4c < 0.0f) && (sp4c < sp3c)) { sp4c = sp3c; } sibling = sibling->linkedDoor; } if ((sp4c - sp50) < M_PI_F && (sp50 < 0.0f) && (sp4c > 0.0f)) { g_InteractProp = door->prop; checkmore = FALSE; } } } return checkmore; } bool doorTestForInteract(PropRecord *prop) { bool checkmore; DoorRecord *door; bool maybe; PropRecord *playerprop; f32 xdiff; f32 ydiff; f32 zdiff; BoundPadRecord *boundpads; u8 rooms1[32]; u8 rooms2[32]; s32 unused[2]; checkmore = TRUE; door = prop->door; if ((door->flags & PROPFLAG_CANNOT_ACTIVATE) == 0 && door->maxFrac > 0 && (prop->flags & PROPFLAG_ONSCREEN)) { maybe = FALSE; playerprop = get_curplayer_positiondata(); xdiff = door->runtime_pos.x - playerprop->pos.x; ydiff = door->runtime_pos.y - playerprop->pos.y; zdiff = door->runtime_pos.z - playerprop->pos.z; if (xdiff * xdiff + zdiff * zdiff < 40000.0f && ydiff < 200.0f && ydiff > -200.0f) { maybe = TRUE; } else { chraiGetPropRoomIds(prop, (s32*)rooms1); chraiGetPropRoomIds(playerprop, (s32*)rooms2); if (sub_GAME_7F03DB70((s32*)rooms1, (s32*)rooms2) != 0) { boundpads = &g_CurrentSetup.boundpads[door->pad]; if (sub_GAME_7F03F598(&playerprop->pos, 150.0f, boundpads) != 0) { maybe = TRUE; } } } if (maybe) { checkmore = door7F0555F8(door, FALSE); if (checkmore && (door->flags2 & PROPFLAG2_DOOR_ALTCOORDSYSTEM)) { checkmore = door7F0555F8(door, TRUE); } } } return checkmore; } void doorActivateWrapper(PropRecord *prop) //#MATCH { DoorRecord *door = prop->door; if ((door->openstate == DOORSTATE_OPENING) || (door->openstate == DOORSTATE_WAITING)) { doorActivate(door, DOORSTATE_CLOSING); } else if (door->openstate == DOORSTATE_CLOSING) { doorActivate(door, DOORSTATE_OPENING); } else if (door->openstate == DOORSTATE_STATIONARY) { if (door->openPosition > 0.5f) { doorActivate(door, DOORSTATE_CLOSING); } else { doorActivate(door, DOORSTATE_OPENING); } } door->runtime_bitflags |= RUNTIMEBITFLAG_ACTIVATED; door->flags2 &= ~8; sub_GAME_7F03E6A0(prop); } #ifdef NONMATCHING // https://decomp.me/scratch/B63wV 79.17% s32 posIsInFrontOfDoor(PropRecord* prop, DoorRecord* door) { BoundPadRecord* pad; f32 other; struct coord3d normal; f32 value = 0; pad = (BoundPadRecord*)&g_CurrentSetup.boundpads[door->pad]; normal.f[0] = (pad->up.f[1] * pad->look.f[2]) - (pad->up.f[2] * pad->look.f[1]); normal.f[1] = (pad->up.f[2] * pad->look.f[0]) - (pad->up.f[0] * pad->look.f[2]); normal.f[2] = (pad->up.f[0] * pad->look.f[1]) - (pad->up.f[1] * pad->look.f[0]); value += (normal.f[0] * (prop->pos.f[0] - pad->pos.f[0])); value += (normal.f[1] * (prop->pos.f[1] - pad->pos.f[1])); value += (normal.f[2] * (prop->pos.f[2] - pad->pos.f[2])); other = value; if (door->doorFlags & 8) { other = -value; } if (other < 0) { return 0; } if (other > 0) { return 1; } return 1; } #else s32 posIsInFrontOfDoor(PropRecord* prop, DoorRecord* door); GLOBAL_ASM( .text glabel posIsInFrontOfDoor /* 08A5A0 7F055A70 84AE0006 */ lh $t6, 6($a1) /* 08A5A4 7F055A74 3C188007 */ lui $t8, %hi(g_CurrentSetup+0x1C) /* 08A5A8 7F055A78 8F185D1C */ lw $t8, %lo(g_CurrentSetup+0x1C)($t8) /* 08A5AC 7F055A7C 000E7900 */ sll $t7, $t6, 4 /* 08A5B0 7F055A80 01EE7821 */ addu $t7, $t7, $t6 /* 08A5B4 7F055A84 000F7880 */ sll $t7, $t7, 2 /* 08A5B8 7F055A88 01F81021 */ addu $v0, $t7, $t8 /* 08A5BC 7F055A8C C4440010 */ lwc1 $f4, 0x10($v0) /* 08A5C0 7F055A90 C4460020 */ lwc1 $f6, 0x20($v0) /* 08A5C4 7F055A94 C44A001C */ lwc1 $f10, 0x1c($v0) /* 08A5C8 7F055A98 C4520014 */ lwc1 $f18, 0x14($v0) /* 08A5CC 7F055A9C 46062202 */ mul.s $f8, $f4, $f6 /* 08A5D0 7F055AA0 27BDFFE0 */ addiu $sp, $sp, -0x20 /* 08A5D4 7F055AA4 46125102 */ mul.s $f4, $f10, $f18 /* 08A5D8 7F055AA8 46044181 */ sub.s $f6, $f8, $f4 /* 08A5DC 7F055AAC E7A60004 */ swc1 $f6, 4($sp) /* 08A5E0 7F055AB0 C4520018 */ lwc1 $f18, 0x18($v0) /* 08A5E4 7F055AB4 C44A0014 */ lwc1 $f10, 0x14($v0) /* 08A5E8 7F055AB8 C4440020 */ lwc1 $f4, 0x20($v0) /* 08A5EC 7F055ABC 46125202 */ mul.s $f8, $f10, $f18 /* 08A5F0 7F055AC0 C44A000C */ lwc1 $f10, 0xc($v0) /* 08A5F4 7F055AC4 460A2482 */ mul.s $f18, $f4, $f10 /* 08A5F8 7F055AC8 46124101 */ sub.s $f4, $f8, $f18 /* 08A5FC 7F055ACC E7A40008 */ swc1 $f4, 8($sp) /* 08A600 7F055AD0 C448001C */ lwc1 $f8, 0x1c($v0) /* 08A604 7F055AD4 C44A000C */ lwc1 $f10, 0xc($v0) /* 08A608 7F055AD8 46085482 */ mul.s $f18, $f10, $f8 /* 08A60C 7F055ADC C4480010 */ lwc1 $f8, 0x10($v0) /* 08A610 7F055AE0 C44A0018 */ lwc1 $f10, 0x18($v0) /* 08A614 7F055AE4 46085282 */ mul.s $f10, $f10, $f8 /* 08A618 7F055AE8 460A9201 */ sub.s $f8, $f18, $f10 /* 08A61C 7F055AEC E7A8000C */ swc1 $f8, 0xc($sp) /* 08A620 7F055AF0 C44A0000 */ lwc1 $f10, ($v0) /* 08A624 7F055AF4 C4920008 */ lwc1 $f18, 8($a0) /* 08A628 7F055AF8 94B90098 */ lhu $t9, 0x98($a1) /* 08A62C 7F055AFC 460A9001 */ sub.s $f0, $f18, $f10 /* 08A630 7F055B00 C44A0004 */ lwc1 $f10, 4($v0) /* 08A634 7F055B04 C492000C */ lwc1 $f18, 0xc($a0) /* 08A638 7F055B08 33280008 */ andi $t0, $t9, 8 /* 08A63C 7F055B0C 460A9081 */ sub.s $f2, $f18, $f10 /* 08A640 7F055B10 C44A0008 */ lwc1 $f10, 8($v0) /* 08A644 7F055B14 C4920010 */ lwc1 $f18, 0x10($a0) /* 08A648 7F055B18 460A9301 */ sub.s $f12, $f18, $f10 /* 08A64C 7F055B1C 46060482 */ mul.s $f18, $f0, $f6 /* 08A650 7F055B20 44800000 */ mtc1 $zero, $f0 /* 08A654 7F055B24 46041282 */ mul.s $f10, $f2, $f4 /* 08A658 7F055B28 460A9180 */ add.s $f6, $f18, $f10 /* 08A65C 7F055B2C 460C4102 */ mul.s $f4, $f8, $f12 /* 08A660 7F055B30 46062400 */ add.s $f16, $f4, $f6 /* 08A664 7F055B34 11000002 */ beqz $t0, .L7F055B40 /* 08A668 7F055B38 46008386 */ mov.s $f14, $f16 /* 08A66C 7F055B3C 46008387 */ neg.s $f14, $f16 .L7F055B40: /* 08A670 7F055B40 4600703C */ c.lt.s $f14, $f0 /* 08A674 7F055B44 00000000 */ nop /* 08A678 7F055B48 45020004 */ bc1fl .L7F055B5C /* 08A67C 7F055B4C 460E003C */ c.lt.s $f0, $f14 /* 08A680 7F055B50 10000007 */ b .L7F055B70 /* 08A684 7F055B54 00001025 */ move $v0, $zero /* 08A688 7F055B58 460E003C */ c.lt.s $f0, $f14 .L7F055B5C: /* 08A68C 7F055B5C 24020001 */ li $v0, 1 /* 08A690 7F055B60 45000003 */ bc1f .L7F055B70 /* 08A694 7F055B64 00000000 */ nop /* 08A698 7F055B68 10000001 */ b .L7F055B70 /* 08A69C 7F055B6C 24020001 */ li $v0, 1 .L7F055B70: /* 08A6A0 7F055B70 03E00008 */ jr $ra /* 08A6A4 7F055B74 27BD0020 */ addiu $sp, $sp, 0x20 ) #endif void doorsChooseSwingDirection(PropRecord *chrprop, DoorRecord *door) { if ((door->flags & PROPFLAG_DOOR_TWOWAY) && door->openstate == PROPSTATE_NONE && door->openPosition == 0.0f) { bool infront = posIsInFrontOfDoor(chrprop, door); u32 wantflag = 0; if ((door->doorFlags & 8) == 0) { if (!infront) { wantflag = PROPFLAG_DOOR_OPENTOFRONT; } } else { if (infront) { wantflag = PROPFLAG_DOOR_OPENTOFRONT; } } // If flags are different if ((s32)((door->flags ^ wantflag) << 2) < 0) { // Toggle direction on door and siblings DoorRecord *sibling = door; do { sibling->flags ^= PROPFLAG_DOOR_OPENTOFRONT; sibling = sibling->linkedDoor; } while (sibling && sibling != door); } } } s32 propdoorInteract(PropRecord* doorprop) { s32 unused; s32 sp28; PropRecord* playerprop; DoorRecord* door; textoverride* txt; door = doorprop->door; sp28 = 0; playerprop = get_curplayer_positiondata(); if (door->keyflags == 0) { sp28 = 1; } else if (bondinvCheckHasKeyFlags(door->keyflags) != 0) { sp28 = 1; } else if (posIsInFrontOfDoor(playerprop, door) != 0) { if ((door->flags2 & PROPFLAG2_10000000) && !(door->flags2 & PROPFLAG2_08000000)) { sp28 = 1; } } else if (!(door->flags2 & PROPFLAG2_10000000) && (door->flags2 & PROPFLAG2_08000000)) { sp28 = 1; } if (doorIsPadlockFree(door) == 0) { sp28 = 0; } if (sp28 != 0) { doorsChooseSwingDirection(playerprop, door); doorActivateWrapper(doorprop); } else if ((door->openstate == DOORSTATE_STATIONARY) && (door->openPosition < 0.5f)) { if (!(door->flags2 & PROPFLAG2_00000004)) { txt = bondinvGetTextbyObj((ObjectRecord*)door); if ((txt != NULL) && (txt->pickuptext != 0)) { #ifdef VERSION_US hudmsgBottomShow(langGet((s32) txt->pickuptext)); #else jp_hudmsgBottomShow(langGet((s32) txt->pickuptext)); #endif } else { #ifdef VERSION_US hudmsgBottomShow(langGet(0xA440)); #else jp_hudmsgBottomShow(langGet(0xA440)); #endif } } door->runtime_bitflags |= RUNTIMEBITFLAG_ACTIVATED; door->flags2 |= PROPFLAG2_00000008; } return 0; } void alarmActivate(void) { if (alarm_timer < 1) { alarm_timer = 1; } return; } void deactivate_alarm_sound_effect(void) { if ((ptr_alarm_sfx != 0) && (sndGetPlayingState(ptr_alarm_sfx) != AL_STOPPED)) { sndDeactivate(ptr_alarm_sfx); } return; } void alarmDeactivate(void) { alarm_timer = 0; deactivate_alarm_sound_effect(); return; } bool alarmIsActive(void) { return (0 < alarm_timer); } void init_trigger_toxic_gas_effect(coord3d *source) //#MATCH { activate_gas_sound_timer = TRUE; D_80030AE0 = 0.0f; D_80030AD0.x = source->x; D_80030AD0.y = source->y; D_80030AD0.z = source->z; if (bossGetStageNum() == LEVELID_EGYPT) { gasTimeToFullOpacity = 120.0f; gasDoesDamageFlag = FALSE; return; } gasTimeToFullOpacity = 3600.0f; gasDoesDamageFlag = TRUE; } void check_deactivate_gas_sound(void) { if ((ptr_gas_sound != NULL) && (sndGetPlayingState(ptr_gas_sound) != AL_STOPPED)) { sndDeactivate(ptr_gas_sound); } return; } bool check_if_toxic_gas_activated() //#MATCH { return (toxic_gas_sound_timer > 0); } void handle_gas_damage(void) { if (activate_gas_sound_timer != 0) { toxic_gas_sound_timer += g_GlobalTimerDelta; if (gasTimeToFullOpacity <= toxic_gas_sound_timer) { toxic_gas_sound_timer = gasTimeToFullOpacity; activate_gas_sound_timer = 0; } } if (toxic_gas_sound_timer > 0.0f && g_PlayerInvincible == 0) { fogSwitchToSolosky2(toxic_gas_sound_timer / gasTimeToFullOpacity); if (gasDoesDamageFlag == 0) { return; } #ifdef VERSION_EU if (D_80030ADC < (g_GlobalTimer - 0xBB)) #else if (D_80030ADC < (g_GlobalTimer - 0xE1)) #endif { D_80030ADC = g_GlobalTimer; if (toxic_gas_sound_timer >= 600.0f) { sndPlaySfx((struct ALBankAlt_s* ) g_musicSfxBufferPtr, 0x62, NULL); } if (toxic_gas_sound_timer >= 1800.0f) { record_damage_kills(0.125f, 0.0f, 0.0f, -1, 0); } } if (D_80030AE0 < gasTimeToFullOpacity) { D_80030AE0 = D_80030AE0 + g_GlobalTimerDelta; if ((ptr_gas_sound == NULL) && (lvlGetControlsLockedFlag() == 0)) { sndPlaySfx((struct ALBankAlt_s* ) g_musicSfxBufferPtr, 0x66, (ALSoundState* ) &ptr_gas_sound); } if (ptr_gas_sound != NULL) { chrobjSndCreatePostEventDefault(ptr_gas_sound, &D_80030AD0); } } else { if ((ptr_gas_sound != NULL) && (sndGetPlayingState(ptr_gas_sound) != 0)) { sndDeactivate(ptr_gas_sound); } } } } void countdownTimerSetVisible(int clocklockbits, bool unset) { if (unset) { clock_drawn_flag &= ~clocklockbits; return; } clock_drawn_flag |= clocklockbits; } bool is_clock_drawn_onscreen(void) { return clock_drawn_flag == FALSE; } void countdownTimerSetValue(f32 time) { clock_time = time; } f32 countdownTimerGetValue(void) { return clock_time; } void countdownTimerSetRunning(bool enable) { clock_enable = enable; } bool countdownTimerIsRunning(void) { return clock_enable; } void if_enabled_reset_clock(void) { if (clock_enable != 0) { clock_time = clock_time - g_GlobalTimerDelta; } } const char D_80052A44[] = ":\n"; /* Renders the on-screen countdown timer using minutes, seconds and milliseconds in the following format 00 : 00 : 00 Timer value is set using countdownTimerSetValue() */ Gfx *countdownTimerRender(Gfx *DL) { s32 mins; s32 secs; s32 ms; s32 valign_offset; s32 unused; f32 time; if (clock_drawn_flag == 0) { time = clock_time; if (time < 0.0f) { time = -time; } mins = (s32) floorFloat(time / 3600.0f); secs = (s32) floorFloat(time / 60.0f) - (mins * 60); ms = ((s32) floorFloat((time * 100.0f) / 60.0f) - (mins * 6000)) - (secs * 100); DL = microcode_constructor(DL); #if defined(VERSION_US) || defined(VERSION_JP) valign_offset = 18; #else valign_offset = 28; #endif // Minutes DL = gunDrawHudInteger(DL, (mins % 100) / 10, 0x82, HUDHALIGN_MIDDLE, ( viGetViewTop() + viGetViewHeight()) - valign_offset, HUDVALIGN_MIDDLE, 1); DL = gunDrawHudInteger(DL, mins % 10, 0x8A, HUDHALIGN_MIDDLE, ( viGetViewTop() + viGetViewHeight()) - valign_offset, HUDVALIGN_MIDDLE, 1); // : DL = gunDrawHudString(DL, &D_80052A44, 0x93, HUDHALIGN_MIDDLE, (viGetViewTop() + viGetViewHeight()) - valign_offset, HUDVALIGN_MIDDLE, 1); // Seconds DL = gunDrawHudInteger(DL, (secs % 60) / 10, 0x9C, HUDHALIGN_MIDDLE, (viGetViewTop() + viGetViewHeight()) - valign_offset, HUDVALIGN_MIDDLE, 1); DL = gunDrawHudInteger(DL, secs % 10, 0xA4, HUDHALIGN_MIDDLE, (viGetViewTop() + viGetViewHeight()) - valign_offset, HUDVALIGN_MIDDLE, 1); // : DL = gunDrawHudString(DL, &D_80052A44, 0xAD, HUDHALIGN_MIDDLE, (viGetViewTop() + viGetViewHeight()) - valign_offset, HUDVALIGN_MIDDLE, 1); // Milliseconds DL = gunDrawHudInteger(DL, (ms % 100) / 10, 0xB6, HUDHALIGN_MIDDLE, (viGetViewTop() + viGetViewHeight()) - valign_offset, HUDVALIGN_MIDDLE, 1); DL = gunDrawHudInteger(DL, ms % 10, 0xBE, HUDHALIGN_MIDDLE, (viGetViewTop() + viGetViewHeight()) - valign_offset, HUDVALIGN_MIDDLE, 1); DL = combiner_bayer_lod_perspective(DL); } return DL; } void handle_alarm_gas_timer_calldamage(void) { if (alarmIsActive() != 0) { if ((ptr_alarm_sfx == 0) && (lvlGetControlsLockedFlag() == 0)) { sndPlaySfx(g_musicSfxBufferPtr, ALARM3_SFX, &ptr_alarm_sfx); } alarm_timer = alarm_timer + g_ClockTimer; if (CHROBJ_GAS_TIMER < alarm_timer) { alarmDeactivate(); } } handle_gas_damage(); if_enabled_reset_clock(); check_guard_detonate_proxmine(); g_RemoteMineOwnerTriggerFlag = 0; return; } #ifdef NONMATCHING // https://decomp.me/scratch/COEsd 99.07% void sub_GAME_7F056690(void) { Model *temp_s3; PropRecord *var_s2; ObjectRecord *temp_s1; ModelNode *temp_v0_2; struct ModelRoData_DisplayList_CollisionRecord *temp_s0; var_s2 = get_ptr_obj_pos_list_current_entry(); for (; var_s2 != NULL; var_s2 = var_s2->prev) { if ((var_s2->type == 1) && !(var_s2->flags & 2) ) { temp_s1 = var_s2->obj; if (temp_s1->state & 0x80) { temp_s3 = temp_s1->model; temp_v0_2 = sub_GAME_7F04B478(temp_s1); if (temp_v0_2 != NULL) { temp_s0 = (struct ModelRoData_DisplayList_CollisionRecord *)temp_v0_2->Data; if (temp_s0 != NULL) { if (sub_GAME_7F04B590(temp_s1->model->obj, temp_v0_2)) { // temp_s3->datas should be struct ModelRwData_DisplayList_CollisionRecord here. struct ModelRwData_DisplayList_CollisionRecord **cr = (struct ModelRwData_DisplayList_CollisionRecord**)temp_s3->datas; if (temp_s0->Vertices != (Vertex*)cr[temp_s0->RwDataIndex]) { objFreePermanently(temp_s1, 1); return; } } //continue; } } } // break; } } } #else GLOBAL_ASM( .text glabel sub_GAME_7F056690 /* 08B1C0 7F056690 27BDFFD0 */ addiu $sp, $sp, -0x30 /* 08B1C4 7F056694 AFBF002C */ sw $ra, 0x2c($sp) /* 08B1C8 7F056698 AFB40028 */ sw $s4, 0x28($sp) /* 08B1CC 7F05669C AFB30024 */ sw $s3, 0x24($sp) /* 08B1D0 7F0566A0 AFB20020 */ sw $s2, 0x20($sp) /* 08B1D4 7F0566A4 AFB1001C */ sw $s1, 0x1c($sp) /* 08B1D8 7F0566A8 0FC0E909 */ jal get_ptr_obj_pos_list_current_entry /* 08B1DC 7F0566AC AFB00018 */ sw $s0, 0x18($sp) /* 08B1E0 7F0566B0 1040002A */ beqz $v0, .L7F05675C /* 08B1E4 7F0566B4 00409025 */ move $s2, $v0 /* 08B1E8 7F0566B8 24140001 */ li $s4, 1 /* 08B1EC 7F0566BC 924E0000 */ lbu $t6, ($s2) .L7F0566C0: /* 08B1F0 7F0566C0 568E0024 */ bnel $s4, $t6, .L7F056754 /* 08B1F4 7F0566C4 8E520024 */ lw $s2, 0x24($s2) /* 08B1F8 7F0566C8 924F0001 */ lbu $t7, 1($s2) /* 08B1FC 7F0566CC 31F80002 */ andi $t8, $t7, 2 /* 08B200 7F0566D0 57000020 */ bnezl $t8, .L7F056754 /* 08B204 7F0566D4 8E520024 */ lw $s2, 0x24($s2) /* 08B208 7F0566D8 8E510004 */ lw $s1, 4($s2) /* 08B20C 7F0566DC 92390002 */ lbu $t9, 2($s1) /* 08B210 7F0566E0 02202025 */ move $a0, $s1 /* 08B214 7F0566E4 33280080 */ andi $t0, $t9, 0x80 /* 08B218 7F0566E8 5100001A */ beql $t0, $zero, .L7F056754 /* 08B21C 7F0566EC 8E520024 */ lw $s2, 0x24($s2) /* 08B220 7F0566F0 0FC12D1E */ jal sub_GAME_7F04B478 /* 08B224 7F0566F4 8E330014 */ lw $s3, 0x14($s1) /* 08B228 7F0566F8 10400018 */ beqz $v0, .L7F05675C /* 08B22C 7F0566FC 00402825 */ move $a1, $v0 /* 08B230 7F056700 8C500004 */ lw $s0, 4($v0) /* 08B234 7F056704 52000016 */ beql $s0, $zero, .L7F056760 /* 08B238 7F056708 8FBF002C */ lw $ra, 0x2c($sp) /* 08B23C 7F05670C 8E290014 */ lw $t1, 0x14($s1) /* 08B240 7F056710 0FC12D64 */ jal sub_GAME_7F04B590 /* 08B244 7F056714 8D240008 */ lw $a0, 8($t1) /* 08B248 7F056718 5040000E */ beql $v0, $zero, .L7F056754 /* 08B24C 7F05671C 8E520024 */ lw $s2, 0x24($s2) /* 08B250 7F056720 960B001A */ lhu $t3, 0x1a($s0) /* 08B254 7F056724 8E6A0010 */ lw $t2, 0x10($s3) /* 08B258 7F056728 8E0D0008 */ lw $t5, 8($s0) /* 08B25C 7F05672C 000B6080 */ sll $t4, $t3, 2 /* 08B260 7F056730 014C1021 */ addu $v0, $t2, $t4 /* 08B264 7F056734 8C4E0000 */ lw $t6, ($v0) /* 08B268 7F056738 11AE0005 */ beq $t5, $t6, .L7F056750 /* 08B26C 7F05673C 02202025 */ move $a0, $s1 /* 08B270 7F056740 0FC10409 */ jal objFreePermanently /* 08B274 7F056744 24050001 */ li $a1, 1 /* 08B278 7F056748 10000005 */ b .L7F056760 /* 08B27C 7F05674C 8FBF002C */ lw $ra, 0x2c($sp) .L7F056750: /* 08B280 7F056750 8E520024 */ lw $s2, 0x24($s2) .L7F056754: /* 08B284 7F056754 5640FFDA */ bnezl $s2, .L7F0566C0 /* 08B288 7F056758 924E0000 */ lbu $t6, ($s2) .L7F05675C: /* 08B28C 7F05675C 8FBF002C */ lw $ra, 0x2c($sp) .L7F056760: /* 08B290 7F056760 8FB00018 */ lw $s0, 0x18($sp) /* 08B294 7F056764 8FB1001C */ lw $s1, 0x1c($sp) /* 08B298 7F056768 8FB20020 */ lw $s2, 0x20($sp) /* 08B29C 7F05676C 8FB30024 */ lw $s3, 0x24($sp) /* 08B2A0 7F056770 8FB40028 */ lw $s4, 0x28($sp) /* 08B2A4 7F056774 03E00008 */ jr $ra /* 08B2A8 7F056778 27BD0030 */ addiu $sp, $sp, 0x30 ) #endif void drop_inventory(void) { ChrRecord *playerchr; PropRecord *prop; enum ITEM_IDS item; enum PROP propid; playerchr = g_CurrentPlayer->prop->chr; chrSetWeaponFlag4(playerchr, GUNRIGHT); chrSetWeaponFlag4(playerchr, GUNLEFT); for (item = ITEM_FIST; item != ITEM_IDS_MAX; item++) { propid = getPropForHeldItem(item); if ((propid >= 0) && (bondinvHasInvItem(item) != 0)) { prop = something_with_generating_object(playerchr, propid, item, 0x20000000, NULL, NULL); if (prop != NULL) { propobjSetDropped(prop, DROPTYPE_DEFAULT); objDrop(prop); } } } }