mirror of
https://gitlab.com/kholdfuzion/goldeneye_src
synced 2026-08-26 07:32:48 -04:00
13015 lines
527 KiB
C
13015 lines
527 KiB
C
#include <ultra64.h>
|
|
#include <PR/os.h>
|
|
#include <PR/gbi.h>
|
|
#include <bondconstants.h>
|
|
#include <deb.h>
|
|
#include <fr.h>
|
|
#include <memp.h>
|
|
#include "bg.h"
|
|
#include "bondview.h"
|
|
#include "debugmenu_handler.h"
|
|
#include "decompress.h"
|
|
#include "fog.h"
|
|
#include "lvl.h"
|
|
#include "math_ceil.h"
|
|
#include "matrixmath.h"
|
|
#include "player.h"
|
|
#include "explosions.h"
|
|
#include "unk_0BC530.h"
|
|
|
|
|
|
#define BG_STACK_SIZE 20
|
|
|
|
// bss
|
|
//CODE.bss:8007BF90
|
|
s32 ptr_bg_data;
|
|
|
|
//CODE.bss:8007BF94
|
|
s32 gptr_stan;
|
|
|
|
/**
|
|
* address 8007BF98
|
|
* EU .bss 80079ee8
|
|
*/
|
|
s32 dword_CODE_bss_8007BF98;
|
|
|
|
#ifdef VERSION_EU
|
|
s32 eu_bss_80079EEC;
|
|
#endif
|
|
|
|
/**
|
|
* address 8007BFA0
|
|
* EU .bss 80079ef0
|
|
*/
|
|
#ifdef VERSION_EU
|
|
char list_visible_rooms_in_cur_global_vis_packet[0x8c];
|
|
#else
|
|
char list_visible_rooms_in_cur_global_vis_packet[0x98];
|
|
#endif
|
|
|
|
/**
|
|
* address 8007C038
|
|
* EU .bss 80079f7c
|
|
*/
|
|
s32 num_visible_rooms_in_cur_global_vis_packet;
|
|
|
|
/**
|
|
* address 8007C040
|
|
* EU .bss 80079f80
|
|
*/
|
|
char bgDebPortalOutBuffer[10][9];
|
|
|
|
s16 bss_pad_8007C09A; /* not required, but making alignment explicit */
|
|
s32 bss_pad_8007C09C; /* not required, but making alignment explicit */
|
|
|
|
/**
|
|
* address 8007C0A0
|
|
* EU .bss 80079FE0
|
|
*/
|
|
char bgDebRoomOutBuffer[10][9];
|
|
|
|
s16 bss_pad_8007C0FA; /* not required, but making alignment explicit */
|
|
s32 bss_pad_8007C0FC; /* not required, but making alignment explicit */
|
|
|
|
/**
|
|
* address 8007C100
|
|
* EU .bss 8007A040
|
|
*/
|
|
#ifdef VERSION_EU
|
|
char dword_CODE_bss_8007C100[0x1388];
|
|
#else
|
|
char dword_CODE_bss_8007C100[0x3e80];
|
|
#endif
|
|
|
|
/**
|
|
* address 8007FF80
|
|
* EU .bss 8007B3C8
|
|
*/
|
|
bg_portal_data_entry* g_BgPortals;
|
|
|
|
//CODE.bss:8007FF84
|
|
s32 ptr_bgdata_offsets;
|
|
|
|
//CODE.bss:8007FF88
|
|
s32 dword_CODE_bss_8007FF88;
|
|
|
|
/**
|
|
* address 8007FF8C
|
|
* EU .bss 8007B3D4
|
|
*/
|
|
bg_room_data * ptr_bgdata_room_fileposition_list;
|
|
|
|
//CODE.bss:8007FF90
|
|
s32 dword_CODE_bss_8007FF90;
|
|
|
|
//CODE.bss:8007FF94
|
|
f32* dword_CODE_bss_8007FF94;
|
|
|
|
#ifndef VERSION_EU
|
|
//CODE.bss:8007FF98
|
|
s32 dword_CODE_bss_8007FF98;
|
|
|
|
//CODE.bss:8007FF9C
|
|
s32 dword_CODE_bss_8007FF9C;
|
|
#endif
|
|
|
|
#ifdef VERSION_EU
|
|
/* sizeof(struct s_bound_info) = 7 words */
|
|
/**
|
|
* EU .bss 8007B3E0
|
|
*/
|
|
s_bound_info dword_CODE_bss_8007FFA0[124];
|
|
//this doesnt FEEL correct
|
|
u32 missingeubytes[4];
|
|
#else
|
|
s_bound_info dword_CODE_bss_8007FFA0[204];
|
|
#endif
|
|
|
|
// 7ca30??
|
|
|
|
s32 dword_CODE_bss_800815f0;
|
|
s32 dword_CODE_bss_800815f4;
|
|
s32 dword_CODE_bss_800815f8;
|
|
|
|
#ifdef VERSION_EU
|
|
s32 eu_bss_8007BFA0;
|
|
s32 eu_bss_8007BFA4;
|
|
#endif
|
|
|
|
/**
|
|
* address 80081600
|
|
* EU .bss 8007BFA8
|
|
*/
|
|
char dword_CODE_bss_80081600[0x18];
|
|
|
|
//CODE.bss:80081618
|
|
struct unk_portalstruct table_for_portals[200];
|
|
|
|
|
|
// data
|
|
/* D:800413F0 Level gCurrentLevel = {0, 1.0, 1.0, 1.0, 1}; cant check this
|
|
anymore however will concede seperate vars since below gets match? */
|
|
s32 *ptr_bg_c_debug_debug_notice_list = 0;
|
|
//D:800413F4
|
|
f32 room_data_float1 = 1.0;
|
|
//D:800413F8
|
|
f32 room_data_float2 = 1.0;
|
|
//D:800413FC Private member - use bgGetLevelVisibilityScale outside this file
|
|
f32 mCurrentLevelVisibilityScale = 1.0;
|
|
//D:80041400
|
|
s32 levelentry_index = 1;
|
|
|
|
/**
|
|
* Something related to player screen.
|
|
* Maybe x, y, width, height.
|
|
* DefaultScreenXMin = 1; //always 1 (related to getvideosettings) Xmin
|
|
* DefaultScreenYMin = 1; //always 1 (related to getvideosettings)Ymin
|
|
* SubtractFromWidth = -1; //always -1 (related to getvideosettings)
|
|
* SubtractFromHeight = -1; //always -1 (related to getvideosettings)
|
|
* Address 0x80041404.
|
|
*/
|
|
s32 bgViewRelated[] = { 1, 1, -1, -1 };
|
|
|
|
|
|
//D:80041414 //This is why 150 is room limit
|
|
s_room_info array_room_info[MAXROOMCOUNT] = {0};
|
|
//D:800442F4
|
|
s32 MaxNumRooms = MAXROOMCOUNT;
|
|
|
|
|
|
//D:800442F8
|
|
s32 D_800442F8 = 0;
|
|
//D:800442FC
|
|
s32 D_800442FC[] = {
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
|
};
|
|
//D:800443C4
|
|
s32 D_800443C4[] = {
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
|
};
|
|
|
|
|
|
|
|
//D:8004448C
|
|
struct levelentry levelinfotable[] = {
|
|
/* levelID; bg_seg_filename; bg_stan_filename; levelscale; visibility; unknownfloat;*/
|
|
{LEVELID_BUNKER1, "bg/bg_sev_all_p.seg", "Tbg_sev_all_p_stanZ", 0.53931433, 1.0, 23.148148},
|
|
{LEVELID_SILO, "bg/bg_silo_all_p.seg", "Tbg_silo_all_p_stanZ", 0.47256002, 1.0, 29.069},
|
|
{LEVELID_STATUE, "bg/bg_stat_all_p.seg", "Tbg_stat_all_p_stanZ", 0.107202865, 1.0, 0.0801},
|
|
{LEVELID_CONTROL, "bg/bg_arec_all_p.seg", "Tbg_arec_all_p_stanZ", 0.49886572, 1.0, 80.645164},
|
|
{LEVELID_ARCHIVES, "bg/bg_arch_all_p.seg", "Tbg_arch_all_p_stanZ", 0.50678575, 1.0, 54.347824},
|
|
{LEVELID_TRAIN, "bg/bg_tra_all_p.seg", "Tbg_tra_all_p_stanZ", 0.15019713, 1.0, 19.53125},
|
|
{LEVELID_FRIGATE, "bg/bg_dest_all_p.seg", "Tbg_dest_all_p_stanZ", 0.44757429, 1.0, 36.764706},
|
|
{LEVELID_BUNKER2, "bg/bg_sevb_all_p.seg", "Tbg_sevb_all_p_stanZ", 0.53931433, 1.0, 23.148148},
|
|
{LEVELID_AZTEC, "bg/bg_azt_all_p.seg", "Tbg_azt_all_p_stanZ", 0.35300568, 1.0, 52.083332},
|
|
{LEVELID_STREETS, "bg/bg_pete_all_p.seg", "Tbg_pete_all_p_stanZ", 0.34187999, 1.0, 42.372883},
|
|
{LEVELID_DEPOT, "bg/bg_depo_all_p.seg", "Tbg_depo_all_p_stanZ", 0.21847887, 1.0, 17.605633},
|
|
{LEVELID_COMPLEX, "bg/bg_ref_all_p.seg", "Tbg_ref_all_p_stanZ", 0.94285715, 1.0, 37.878788},
|
|
{LEVELID_EGYPT, "bg/bg_cryp_all_p.seg", "Tbg_cryp_all_p_stanZ", 0.25608, 1.0, 23.584906},
|
|
{LEVELID_DAM, "bg/bg_dam_all_p.seg", "Tbg_dam_all_p_stanZ", 0.23363999, 0.2, 100.0},
|
|
{LEVELID_FACILITY, "bg/bg_ark_all_p.seg", "Tbg_ark_all_p_stanZ", 1.20648, 1.0, 64.102562},
|
|
{LEVELID_RUNWAY, "bg/bg_run_all_p.seg", "Tbg_run_all_p_stanZ", 0.089571431, 1.0, 4.5537338},
|
|
{LEVELID_SURFACE, "bg/bg_sevx_all_p.seg", "Tbg_sevx_all_p_stanZ", 0.45445713, 0.2, 22.603975},
|
|
{LEVELID_JUNGLE, "bg/bg_jun_all_p.seg", "Tbg_jun_all_p_stanZ", 0.094662853, 1.0, 6.6844921},
|
|
{LEVELID_TEMPLE, "bg/bg_dish_all_p.seg", "Tbg_dish_all_p_stanZ", 0.47142857, 1.0, 147.05882},
|
|
{LEVELID_CAVERNS, "bg/bg_cave_all_p.seg", "Tbg_cave_all_p_stanZ", 0.26824287, 1.0, 13.44086},
|
|
{LEVELID_CITADEL, "bg/bg_cat_all_p.seg", "Tbg_cat_all_p_stanZ", 0.76852286, 1.0, 38.461536},
|
|
{LEVELID_CRADLE, "bg/bg_crad_all_p.seg", "Tbg_crad_all_p_stanZ", 0.23571429, 1.0, 43.103451},
|
|
{LEVELID_SHO, "bg/bg_sho_all_p.seg", "Tbg_sho_all_p_stanZ", 0.528, 1.0, 21.18644},
|
|
{LEVELID_SURFACE2, "bg/bg_sevx_all_p.seg", "Tbg_sevx_all_p_stanZ", 0.45445713, 0.2, 22.603975},
|
|
{LEVELID_ELD, "bg/bg_eld_all_p.seg", "Tbg_eld_all_p_stanZ", 0.94285715, 1.0, 10.123456},
|
|
{LEVELID_BASEMENT, "bg/bg_ame_all_p.seg", "Tbg_ame_all_p_stanZ", 0.65999997, 1.0, 37.878788},
|
|
{LEVELID_STACK, "bg/bg_ame_all_p.seg", "Tbg_ame_all_p_stanZ", 0.65999997, 1.0, 37.878788},
|
|
{LEVELID_LUE, "bg/bg_lue_all_p.seg", "Tbg_lue_all_p_stanZ", 0.94285715, 1.0, 10.123456},
|
|
{LEVELID_LIBRARY, "bg/bg_ame_all_p.seg", "Tbg_ame_all_p_stanZ", 0.65999997, 1.0, 37.878788},
|
|
{LEVELID_RIT, "bg/bg_rit_all_p.seg", "Tbg_rit_all_p_stanZ", 0.94285715, 1.0, 10.123456},
|
|
{LEVELID_CAVES, "bg/bg_oat_all_p.seg", "Tbg_oat_all_p_stanZ", 0.14142857, 1.0, 10.123456},
|
|
{LEVELID_EAR, "bg/bg_ear_all_p.seg", "Tbg_ear_all_p_stanZ", 0.94285715, 1.0, 10.123456},
|
|
{LEVELID_LEE, "bg/bg_lee_all_p.seg", "Tbg_lee_all_p_stanZ", 0.94285715, 1.0, 10.123456},
|
|
{LEVELID_LIP, "bg/bg_lip_all_p.seg", "Tbg_lip_all_p_stanZ", 0.94285715, 1.0, 10.123456},
|
|
{LEVELID_CUBA, "bg/bg_len_all_p.seg", "Tbg_len_all_p_stanZ", 0.094662853, 1.0, 6.6844921},
|
|
{LEVELID_WAX, "bg/bg_wax_all_p.seg", "Tbg_wax_all_p_stanZ", 0.94285715, 1.0, 10.123456},
|
|
{LEVELID_PAM, "bg/bg_pam_all_p.seg", "Tbg_pam_all_p_stanZ", 0.94285715, 1.0, 10.123456},
|
|
{LEVELID_MAX, "bg/bgx.seg", "TbgxZ", 0.94285715, 1.0, 1.0}
|
|
};
|
|
|
|
//D:8004481C
|
|
u32 D_8004481C[] = {0x1000100, 0};
|
|
|
|
//D:80044824
|
|
s_specialportal specialportalarray[] = {
|
|
{0x03,
|
|
{0x2C,0x2E,0x32, 0x37,0x3E,0x3F,0x4E, 0x56,0x59,0x5D,0x72, 0x76,0x79,0x7A,0xFF}},
|
|
{0x11,
|
|
{0x00,0x3A,0xFF}}
|
|
};
|
|
|
|
/**
|
|
* Bond's current room.
|
|
* Address 0x80044838
|
|
*/
|
|
s32 g_BgCurrentRoom = 1;
|
|
|
|
/**
|
|
* Total number of rooms drawn for the current frame.
|
|
* Address 0x8004483C
|
|
*/
|
|
s32 g_BgNumberOfRoomsDrawn = 0;
|
|
|
|
#if defined(VERSION_EU)
|
|
s32 eu_cdata_0x1f0d0 = 0;
|
|
s32 eu_cdata_0x1f0d4 = 0;
|
|
#endif
|
|
|
|
//D:80044840
|
|
Lights1 GlobalLight = gdSPDefLights1(
|
|
150,150,150, /* ambient color grey */ //D:80044840
|
|
255,255,255,
|
|
77,77,46 /* white light from the upper west-south-west (42 up, 244') */ //D:80044848
|
|
);
|
|
|
|
|
|
|
|
//D:80044858
|
|
s32 D_80044858 = 0;
|
|
//D:8004485C
|
|
s32 D_8004485C = 1;
|
|
//D:80044860
|
|
s32 bgDebPortalOutLineNum = 0;
|
|
//D:80044864
|
|
s32 bgDebRoomOutLineNum = 0;
|
|
//D:80044868
|
|
s32 D_80044868 = 0x7FFF;
|
|
//D:8004486C
|
|
s32 D_8004486C = 0x7FFF;
|
|
//D:80044870
|
|
s32 D_80044870 = 0x7FFF;
|
|
//D:80044874
|
|
s32 D_80044874 = 0xFFFF8000;
|
|
//D:80044878
|
|
s32 D_80044878 = 0xFFFF8000;
|
|
//D:8004487C
|
|
s32 D_8004487C = 0xFFFF8000;
|
|
//D:80044880
|
|
s32 D_80044880 = 0x7FFF;
|
|
//D:80044884
|
|
s32 D_80044884 = 0x7FFF;
|
|
//D:80044888
|
|
s32 D_80044888 = 0x7FFF;
|
|
//D:8004488C
|
|
s32 D_8004488C = 0xFFFF8000;
|
|
//D:80044890
|
|
s32 D_80044890 = 0xFFFF8000;
|
|
//D:80044894
|
|
s32 D_80044894 = 0xFFFF8000;
|
|
//D:80044898
|
|
s32 D_80044898 = 0;
|
|
//D:8004489C
|
|
s32 D_8004489C = 0xF;
|
|
//D:800448A0
|
|
s32 D_800448A0 = 0;
|
|
//D:800448A4
|
|
s32 D_800448A4 = 0;
|
|
|
|
/**
|
|
* Local stack.
|
|
*
|
|
* Address 0x800448A8.
|
|
*/
|
|
s32 g_BgStack[BG_STACK_SIZE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
|
|
|
/**
|
|
* Current top of the stack.
|
|
*
|
|
* Address 0x800448F8.
|
|
*/
|
|
s32 g_BgStackCount = 0;
|
|
|
|
//D:800448FC
|
|
s32 current_visibility = 0;
|
|
|
|
//D:80044900
|
|
f32 D_80044900 = 0;
|
|
|
|
//D:80044904
|
|
s32 D_80044904 = 0x7F7FFFFF;
|
|
//D:80044908
|
|
s32 D_80044908 = 0x7F7FFFFF;
|
|
//D:8004490C
|
|
s32 D_8004490C = 0x7F7FFFFF;
|
|
//D:80044910
|
|
s32 D_80044910 = 0xFF7FFFFF;
|
|
//D:80044914
|
|
s32 D_80044914 = 0xFF7FFFFF;
|
|
//D:80044918
|
|
s32 D_80044918 = 0xFF7FFFFF;
|
|
//D:8004491C
|
|
u32 D_8004491C = 0;
|
|
//D:80044920
|
|
u32 D_80044920 = 0;
|
|
//D:80044924
|
|
u32 D_80044924 = 0;
|
|
|
|
#if defined(VERSION_EU)
|
|
s32 eu_cdata_0x1f1c0 = 0;
|
|
s32 eu_cdata_0x1f1c4 = 0;
|
|
#endif
|
|
|
|
// forward declarations
|
|
|
|
void unload_rooms(void);
|
|
Gfx *sub_GAME_7F0B8D78(Gfx *arg0);
|
|
Gfx *sub_GAME_7F0B3C8C(Gfx *arg0);
|
|
s32 bgCheckIfRoomModelNeedsLoad(s32 roomID);
|
|
void sub_GAME_7F0B6368(s32 room);
|
|
Gfx *sub_GAME_7F0B677C(Gfx *arg0, s32 room_index);
|
|
Gfx *sub_GAME_7F0B6898(Gfx *arg0, s32 room_index);
|
|
|
|
Gfx *bgScissorCurrentPlayerView(Gfx *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4);
|
|
|
|
// end forward declarations
|
|
|
|
|
|
/*
|
|
//###RenderMode / Combiner Look - Up - Tables
|
|
The reason for this LUT is to dynamicly change the rendermode and combiner to
|
|
FOG / NoFog or any other setting they might have wanted to test during development
|
|
as it applies during runtime
|
|
|
|
//###Reminder:
|
|
1cycle combiners repeat both cycles
|
|
gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA2)
|
|
|
|
combiner macros are a list of parameters that form a mathematical sum.
|
|
( - )* + , ( - )* +
|
|
G_CC_MODULATERGBA2 COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0
|
|
*/
|
|
#if 0
|
|
//New Defines to be added to gbi.h
|
|
/*custom combiner for triangle alpha*/
|
|
#define ModulateRGB_EnvA TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT
|
|
/*custom combiner for triangle alpha*/
|
|
#define ModulateRGB_EnvA2 COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT
|
|
/*custom combiner for Texture*triangle alpha*/
|
|
#define ModulateRGBA_EnvA TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0
|
|
/*custom combiner for texture*triangle alpha*/
|
|
#define ModulateRGBA_EnvA2 COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0
|
|
/*custom combiner for triangle alpha*/
|
|
#define SHADE_EnvA 0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT
|
|
/*Tri-linear filter colour, flat tile alpha (for cutouts)*/
|
|
#define TLRGB_ATile1 TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0
|
|
#endif
|
|
//D:80044928
|
|
Gfx DL_LUT_UNKNOWN[] = {
|
|
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2),
|
|
gsDPSetCombineLERP(TEXEL1, 0, SCALE, 0, TEXEL1, 0, PRIM_LOD_FRAC, 0, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED),
|
|
0,0
|
|
};
|
|
|
|
//D:80044940 - Primary
|
|
Gfx DL_LUT_PRIMARY_ADDFOG[] = {
|
|
//Add FOG to all rendermodes
|
|
//Standard HiQuality Surface to Standard Fogable HiQuality Surface
|
|
gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_SURF2),
|
|
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_SURF2),
|
|
//Terrain to Fogable Terrain
|
|
gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_TERR2),
|
|
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_TERR2),
|
|
//Standard DECAL to FOG DECAL
|
|
gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_DECAL2),
|
|
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_DECAL2),
|
|
//Transparent DECAL to FOG Transparent DECAL
|
|
gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_DECAL2),
|
|
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_DECAL2),
|
|
//Transparent Surface to FOG Transparent Surface
|
|
gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2),
|
|
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_SURF2),
|
|
// Billboard Cut-out to FOG Billboard Cut-out - eg, Mario Tree or Depot lamp
|
|
// See PGDLists\Transparent Textures.htm for more info
|
|
gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_TEX_EDGE2),
|
|
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2),
|
|
//Standard Z-Less OPA to Standard FOG Z-Less OPA
|
|
gsDPSetRenderMode(G_RM_PASS, G_RM_AA_OPA_SURF2),
|
|
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_OPA_SURF2),
|
|
//Z-Less OPA Terrain to Z-Less Fog OPA Terrain
|
|
gsDPSetRenderMode(G_RM_PASS, G_RM_AA_OPA_TERR2),
|
|
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_OPA_TERR2),
|
|
0x0, 0x0
|
|
};
|
|
|
|
//D:800449C8 - Secondary
|
|
Gfx DL_LUT_SECONDARY_ADDFOG[] = {
|
|
//Add FOG to Rendermodes
|
|
//Transparent DECAL to FOG Transparent DECAL
|
|
gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_DECAL2),
|
|
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_DECAL2),
|
|
//Transparent Surface to FOG Transparent Surface
|
|
gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2),
|
|
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_SURF2),
|
|
|
|
// Billboard Cut-out to FOG Billboard Cut-out - eg, Mario Tree or Depot lamp
|
|
gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_TEX_EDGE2),
|
|
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2),
|
|
|
|
// Swap all refrences to Shade in Alpha to Environment
|
|
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2),
|
|
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0),
|
|
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2),
|
|
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
|
|
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2),
|
|
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0),
|
|
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2),
|
|
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
|
|
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED),
|
|
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED),
|
|
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE),//gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
|
|
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), //gsDPSetCombineMode(G_CC_SHADE_EnvA, G_CC_SHADE_EnvA),
|
|
// This one is an oddball... its extra here AND is weird using Tile1 only for Alpha
|
|
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0),
|
|
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0),
|
|
0x0,
|
|
0x0
|
|
};
|
|
|
|
//D:80044AB0
|
|
// Loaded once on first time entering level, only once ever
|
|
// Swap all refrences to Shade in Alpha to Environment
|
|
Gfx DL_LUT_PRIMARY[] = {
|
|
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2),
|
|
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0),
|
|
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2),
|
|
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
|
|
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2),
|
|
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0),
|
|
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2),
|
|
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
|
|
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED),
|
|
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED),
|
|
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE),
|
|
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT),
|
|
0,0
|
|
};
|
|
|
|
//D:80044B58
|
|
// Loaded once on first time entering level, only once ever
|
|
// Swap all refrences to Shade in Alpha to Environment
|
|
Gfx DL_LUT_SECONDARY[] = {
|
|
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2),
|
|
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0),
|
|
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2),
|
|
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
|
|
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2),
|
|
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0),
|
|
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2),
|
|
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
|
|
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED),
|
|
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED),
|
|
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE),
|
|
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT),
|
|
0,0
|
|
};
|
|
|
|
//D:80044C00
|
|
Gfx DL_LUT_BILLBOARD[] = {
|
|
//Transparent 1Cycle to BillBoard 1Cycle
|
|
gsDPSetRenderMode(G_RM_AA_ZB_XLU_SURF, G_RM_AA_ZB_XLU_SURF2), gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2),
|
|
//Transparent Surface to Billboard
|
|
gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2), gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_TEX_EDGE2),
|
|
0x0,0x0
|
|
};
|
|
|
|
//D:80044C28
|
|
//water
|
|
Gfx DL_LUT_WATER[] = {
|
|
0xB900031D, 0x00552078, 0xB900031D, 0x00502078,
|
|
0xB900031D, 0x0C192078, 0xB900031D, 0x0C182078,
|
|
/*
|
|
//1 Cycle Opa to Particle
|
|
gsDPSetRenderMode(RM_AA_ZB_OPA_SURF, RM_AA_ZB_OPA_SURF2), gDPSetRenderMode(G_RM_AA_ZB_PCL_SURF, G_RM_AA_ZB_PCL_SURF2),
|
|
//2 cycle Opa to Particle
|
|
gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_SURF2), gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_PCL_SURF2),
|
|
*/
|
|
0x0, 0
|
|
};
|
|
|
|
//D:80044C50
|
|
Gfx DL_LUT_CLOUD[] = {
|
|
//Transparent to Cloud (Saves AA - Stops Jaggies from appearing behind BillBoard)
|
|
gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2), gsDPSetRenderMode(G_RM_PASS, G_RM_ZB_CLD_SURF2),
|
|
0,0
|
|
};
|
|
|
|
//D:80044C68
|
|
//(Wallet Bond - Main Menu)
|
|
Gfx DL_LUT_WALLETBOND[] = {
|
|
gsDPSetCycleType(G_CYC_1CYCLE),
|
|
gsDPSetCycleType(G_CYC_2CYCLE), //1Cycle --> 2Cycle
|
|
0xB900031D, 0x00502048,
|
|
0xB900031D, 0x08D02048,
|
|
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED),
|
|
/*
|
|
//1 Cycle particle Surface to 2 Cycle colour + 1-a*Fog ???
|
|
gsDPSetCycleType(G_CYC_2CYCLE),
|
|
gsDPSetRenderMode(G_RM_AA_PCL_SURF, G_RM_AA_PCL_SURF2), gDPSetRenderMode(AA_EN | IM_RD | CVG_DST_CLAMP | ALPHA_CVG_SEL | ZMODE_OPA | GBL_c1(G_BL_CLR_IN, G_BL_A_SHADE, G_BL_CLR_FOG, G_BL_1MA) | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)),
|
|
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_PASS2), gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2),
|
|
*/
|
|
0x0, 0
|
|
};
|
|
|
|
//D:80044CA0
|
|
Gfx DL_LUT_FIXFOGALPHA3[] = {
|
|
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SCALE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SCALE, 0, TEXEL0, 0, ENVIRONMENT, 0),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0),
|
|
gsDPSetCombineLERP(TEXEL0, 0, SCALE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SCALE, 0, TEXEL0, 0, ENVIRONMENT, 0),
|
|
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE),
|
|
gsDPSetCombineLERP(CENTER, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT, CENTER, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT),
|
|
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2),
|
|
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT),
|
|
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2),
|
|
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SCALE, 0, COMBINED, 0, ENVIRONMENT, 0),
|
|
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2),
|
|
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT),
|
|
gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2),
|
|
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SCALE, 0, COMBINED, 0, ENVIRONMENT, 0),
|
|
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, 0, 0, 0, SHADE),
|
|
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT),
|
|
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0),
|
|
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SCALE, 0, COMBINED, 0, ENVIRONMENT, 0),
|
|
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, 0, 0, 0, SHADE),
|
|
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT),
|
|
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0),
|
|
gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SCALE, 0, COMBINED, 0, ENVIRONMENT, 0),
|
|
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED),
|
|
gsDPSetCombineLERP(CENTER, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED),
|
|
0,0
|
|
};
|
|
|
|
//D:80044D88
|
|
s32 *ptrDynamic_CC_RM_LUT[] = {
|
|
&DL_LUT_UNKNOWN, &DL_LUT_PRIMARY_ADDFOG, &DL_LUT_BILLBOARD, &DL_LUT_WATER, &DL_LUT_CLOUD,
|
|
&DL_LUT_SECONDARY_ADDFOG, &DL_LUT_PRIMARY, &DL_LUT_SECONDARY, &DL_LUT_WALLETBOND, &DL_LUT_FIXFOGALPHA3
|
|
};
|
|
enum CCRMLUT
|
|
{
|
|
CCRMLUT_UNKNOWN,
|
|
CCRMLUT_PRIMARY_ADDFOG,
|
|
CCRMLUT_BILLBOARD,
|
|
CCRMLUT_WATER,
|
|
CCRMLUT_CLOUD,
|
|
CCRMLUT_SECONDARY_ADDFOG,
|
|
CCRMLUT_PRIMARY,
|
|
CCRMLUT_SECONDARY,
|
|
CCRMLUT_WALLETBOND,
|
|
CCRMLUT_FIXFOGALPHA3
|
|
};
|
|
//D:80044DB0
|
|
s32 D_80044DB0 = 0;
|
|
|
|
|
|
// rodata
|
|
|
|
|
|
|
|
|
|
void bgInit(void) {
|
|
debTryAdd(&ptr_bg_c_debug_debug_notice_list, "bg_c_debug");
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
//logically close, not close codegen
|
|
void sub_GAME_7F0B37EC(void)
|
|
{
|
|
u8* portals;
|
|
s32 i;
|
|
s32 p;
|
|
|
|
for ( i=0; i!=2; i++)
|
|
{
|
|
if (levelentry_index == specialportalarray[i].levelid & 0xFF) {
|
|
portals = specialportalarray[i].portallist;
|
|
for ( p=0; (portals[p] & 0xFF) != 0xFF; p++)
|
|
{
|
|
g_BgPortals[portals[p] & 0xff].controlbytes1 |= 2;
|
|
}
|
|
} else {
|
|
portals = specialportalarray[i].portallist;
|
|
for ( p=0; portals[p] != 0xFF; p++)
|
|
{
|
|
;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#else
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B37EC
|
|
/* 0E831C 7F0B37EC 3C028004 */ lui $v0, %hi(specialportalarray)
|
|
/* 0E8320 7F0B37F0 3C038004 */ lui $v1, %hi(g_BgCurrentRoom)
|
|
/* 0E8324 7F0B37F4 3C088008 */ lui $t0, %hi(g_BgPortals)
|
|
/* 0E8328 7F0B37F8 3C078004 */ lui $a3, %hi(levelentry_index)
|
|
/* 0E832C 7F0B37FC 24424824 */ addiu $v0, %lo(specialportalarray) # addiu $v0, $v0, 0x4824
|
|
/* 0E8330 7F0B3800 24634838 */ addiu $v1, %lo(g_BgCurrentRoom) # addiu $v1, $v1, 0x4838
|
|
/* 0E8334 7F0B3804 24E71400 */ addiu $a3, %lo(levelentry_index) # addiu $a3, $a3, 0x1400
|
|
/* 0E8338 7F0B3808 2508FF80 */ addiu $t0, %lo(g_BgPortals) # addiu $t0, $t0, -0x80
|
|
/* 0E833C 7F0B380C 240900FF */ li $t1, 255
|
|
/* 0E8340 7F0B3810 8CEE0000 */ lw $t6, ($a3)
|
|
.L7F0B3814:
|
|
/* 0E8344 7F0B3814 904F0000 */ lbu $t7, ($v0)
|
|
/* 0E8348 7F0B3818 24420001 */ addiu $v0, $v0, 1
|
|
/* 0E834C 7F0B381C 55CF001C */ bnel $t6, $t7, .L7F0B3890
|
|
/* 0E8350 7F0B3820 904F0002 */ lbu $t7, 2($v0)
|
|
/* 0E8354 7F0B3824 90440000 */ lbu $a0, ($v0)
|
|
/* 0E8358 7F0B3828 90580001 */ lbu $t8, 1($v0)
|
|
.L7F0B382C:
|
|
/* 0E835C 7F0B382C 308500FF */ andi $a1, $a0, 0xff
|
|
/* 0E8360 7F0B3830 00A03025 */ move $a2, $a1
|
|
/* 0E8364 7F0B3834 0305082A */ slt $at, $t8, $a1
|
|
/* 0E8368 7F0B3838 5420000F */ bnezl $at, .L7F0B3878
|
|
/* 0E836C 7F0B383C 90440002 */ lbu $a0, 2($v0)
|
|
/* 0E8370 7F0B3840 8D190000 */ lw $t9, ($t0)
|
|
.L7F0B3844:
|
|
/* 0E8374 7F0B3844 000650C0 */ sll $t2, $a2, 3
|
|
/* 0E8378 7F0B3848 24A50001 */ addiu $a1, $a1, 1
|
|
/* 0E837C 7F0B384C 032A2021 */ addu $a0, $t9, $t2
|
|
/* 0E8380 7F0B3850 908B0006 */ lbu $t3, 6($a0)
|
|
/* 0E8384 7F0B3854 30A600FF */ andi $a2, $a1, 0xff
|
|
/* 0E8388 7F0B3858 00C02825 */ move $a1, $a2
|
|
/* 0E838C 7F0B385C 356C0002 */ ori $t4, $t3, 2
|
|
/* 0E8390 7F0B3860 A08C0006 */ sb $t4, 6($a0)
|
|
/* 0E8394 7F0B3864 904E0001 */ lbu $t6, 1($v0)
|
|
/* 0E8398 7F0B3868 01C6082A */ slt $at, $t6, $a2
|
|
/* 0E839C 7F0B386C 5020FFF5 */ beql $at, $zero, .L7F0B3844
|
|
/* 0E83A0 7F0B3870 8D190000 */ lw $t9, ($t0)
|
|
/* 0E83A4 7F0B3874 90440002 */ lbu $a0, 2($v0)
|
|
.L7F0B3878:
|
|
/* 0E83A8 7F0B3878 24420002 */ addiu $v0, $v0, 2
|
|
/* 0E83AC 7F0B387C 5524FFEB */ bnel $t1, $a0, .L7F0B382C
|
|
/* 0E83B0 7F0B3880 90580001 */ lbu $t8, 1($v0)
|
|
/* 0E83B4 7F0B3884 10000006 */ b .L7F0B38A0
|
|
/* 0E83B8 7F0B3888 24420001 */ addiu $v0, $v0, 1
|
|
/* 0E83BC 7F0B388C 904F0002 */ lbu $t7, 2($v0)
|
|
.L7F0B3890:
|
|
/* 0E83C0 7F0B3890 24420002 */ addiu $v0, $v0, 2
|
|
/* 0E83C4 7F0B3894 552FFFFE */ bnel $t1, $t7, .L7F0B3890
|
|
/* 0E83C8 7F0B3898 904F0002 */ lbu $t7, 2($v0)
|
|
/* 0E83CC 7F0B389C 24420001 */ addiu $v0, $v0, 1
|
|
.L7F0B38A0:
|
|
/* 0E83D0 7F0B38A0 0043082B */ sltu $at, $v0, $v1
|
|
/* 0E83D4 7F0B38A4 5420FFDB */ bnezl $at, .L7F0B3814
|
|
/* 0E83D8 7F0B38A8 8CEE0000 */ lw $t6, ($a3)
|
|
/* 0E83DC 7F0B38AC 03E00008 */ jr $ra
|
|
/* 0E83E0 7F0B38B0 00000000 */ nop
|
|
)
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
void sub_GAME_7F0B38B4(void) {
|
|
|
|
}
|
|
#else
|
|
#if defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B38B4
|
|
/* 0E83E4 7F0B38B4 27BDFFE0 */ addiu $sp, $sp, -0x20
|
|
/* 0E83E8 7F0B38B8 AFB00014 */ sw $s0, 0x14($sp)
|
|
/* 0E83EC 7F0B38BC AFBF001C */ sw $ra, 0x1c($sp)
|
|
/* 0E83F0 7F0B38C0 AFB10018 */ sw $s1, 0x18($sp)
|
|
/* 0E83F4 7F0B38C4 00A08025 */ move $s0, $a1
|
|
/* 0E83F8 7F0B38C8 90A20000 */ lbu $v0, ($a1)
|
|
/* 0E83FC 7F0B38CC 308300FF */ andi $v1, $a0, 0xff
|
|
/* 0E8400 7F0B38D0 02002025 */ move $a0, $s0
|
|
.L7F0B38D4:
|
|
/* 0E8404 7F0B38D4 1062000B */ beq $v1, $v0, .L7F0B3904
|
|
/* 0E8408 7F0B38D8 00000000 */ nop
|
|
/* 0E840C 7F0B38DC 92020001 */ lbu $v0, 1($s0)
|
|
/* 0E8410 7F0B38E0 26100001 */ addiu $s0, $s0, 1
|
|
/* 0E8414 7F0B38E4 1440FFFB */ bnez $v0, .L7F0B38D4
|
|
/* 0E8418 7F0B38E8 00000000 */ nop
|
|
/* 0E841C 7F0B38EC 920E0001 */ lbu $t6, 1($s0)
|
|
.L7F0B38F0:
|
|
/* 0E8420 7F0B38F0 26100001 */ addiu $s0, $s0, 1
|
|
/* 0E8424 7F0B38F4 55C0FFFE */ bnezl $t6, .L7F0B38F0
|
|
/* 0E8428 7F0B38F8 920E0001 */ lbu $t6, 1($s0)
|
|
/* 0E842C 7F0B38FC 10000027 */ b .L7F0B399C
|
|
/* 0E8430 7F0B3900 26100001 */ addiu $s0, $s0, 1
|
|
.L7F0B3904:
|
|
/* 0E8434 7F0B3904 3C118008 */ lui $s1, %hi(g_CurrentPlayer)
|
|
/* 0E8438 7F0B3908 00808025 */ move $s0, $a0
|
|
/* 0E843C 7F0B390C 2631A0B0 */ addiu $s1, %lo(g_CurrentPlayer) # addiu $s1, $s1, -0x5f50
|
|
/* 0E8440 7F0B3910 90820000 */ lbu $v0, ($a0)
|
|
/* 0E8444 7F0B3914 8E250000 */ lw $a1, ($s1)
|
|
.L7F0B3918:
|
|
/* 0E8448 7F0B3918 00402025 */ move $a0, $v0
|
|
/* 0E844C 7F0B391C 0FC2D482 */ jal sub_GAME_7F0B5208
|
|
/* 0E8450 7F0B3920 24A51118 */ addiu $a1, $a1, 0x1118
|
|
/* 0E8454 7F0B3924 10400006 */ beqz $v0, .L7F0B3940
|
|
/* 0E8458 7F0B3928 00002825 */ move $a1, $zero
|
|
/* 0E845C 7F0B392C 8E260000 */ lw $a2, ($s1)
|
|
/* 0E8460 7F0B3930 92040000 */ lbu $a0, ($s0)
|
|
/* 0E8464 7F0B3934 24070001 */ li $a3, 1
|
|
/* 0E8468 7F0B3938 0FC2CE6F */ jal sub_GAME_7F0B39BC
|
|
/* 0E846C 7F0B393C 24C61118 */ addiu $a2, $a2, 0x1118
|
|
.L7F0B3940:
|
|
/* 0E8470 7F0B3940 92020001 */ lbu $v0, 1($s0)
|
|
/* 0E8474 7F0B3944 26100001 */ addiu $s0, $s0, 1
|
|
/* 0E8478 7F0B3948 5440FFF3 */ bnezl $v0, .L7F0B3918
|
|
/* 0E847C 7F0B394C 8E250000 */ lw $a1, ($s1)
|
|
/* 0E8480 7F0B3950 26100001 */ addiu $s0, $s0, 1
|
|
/* 0E8484 7F0B3954 92020000 */ lbu $v0, ($s0)
|
|
/* 0E8488 7F0B3958 8E250000 */ lw $a1, ($s1)
|
|
.L7F0B395C:
|
|
/* 0E848C 7F0B395C 00402025 */ move $a0, $v0
|
|
/* 0E8490 7F0B3960 0FC2D482 */ jal sub_GAME_7F0B5208
|
|
/* 0E8494 7F0B3964 24A51118 */ addiu $a1, $a1, 0x1118
|
|
/* 0E8498 7F0B3968 10400006 */ beqz $v0, .L7F0B3984
|
|
/* 0E849C 7F0B396C 00002825 */ move $a1, $zero
|
|
/* 0E84A0 7F0B3970 8E260000 */ lw $a2, ($s1)
|
|
/* 0E84A4 7F0B3974 92040000 */ lbu $a0, ($s0)
|
|
/* 0E84A8 7F0B3978 24070001 */ li $a3, 1
|
|
/* 0E84AC 7F0B397C 0FC2CE6F */ jal sub_GAME_7F0B39BC
|
|
/* 0E84B0 7F0B3980 24C61118 */ addiu $a2, $a2, 0x1118
|
|
.L7F0B3984:
|
|
/* 0E84B4 7F0B3984 92020001 */ lbu $v0, 1($s0)
|
|
/* 0E84B8 7F0B3988 26100001 */ addiu $s0, $s0, 1
|
|
/* 0E84BC 7F0B398C 5440FFF3 */ bnezl $v0, .L7F0B395C
|
|
/* 0E84C0 7F0B3990 8E250000 */ lw $a1, ($s1)
|
|
/* 0E84C4 7F0B3994 10000005 */ b .L7F0B39AC
|
|
/* 0E84C8 7F0B3998 8FBF001C */ lw $ra, 0x1c($sp)
|
|
.L7F0B399C:
|
|
/* 0E84CC 7F0B399C 92020000 */ lbu $v0, ($s0)
|
|
/* 0E84D0 7F0B39A0 5440FFCC */ bnezl $v0, .L7F0B38D4
|
|
/* 0E84D4 7F0B39A4 02002025 */ move $a0, $s0
|
|
/* 0E84D8 7F0B39A8 8FBF001C */ lw $ra, 0x1c($sp)
|
|
.L7F0B39AC:
|
|
/* 0E84DC 7F0B39AC 8FB00014 */ lw $s0, 0x14($sp)
|
|
/* 0E84E0 7F0B39B0 8FB10018 */ lw $s1, 0x18($sp)
|
|
/* 0E84E4 7F0B39B4 03E00008 */ jr $ra
|
|
/* 0E84E8 7F0B39B8 27BD0020 */ addiu $sp, $sp, 0x20
|
|
)
|
|
#endif
|
|
|
|
#if !defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B38B4
|
|
/* 0E5564 7F0B2B74 27BDFFE0 */ addiu $sp, $sp, -0x20
|
|
/* 0E5568 7F0B2B78 AFB00014 */ sw $s0, 0x14($sp)
|
|
/* 0E556C 7F0B2B7C AFBF001C */ sw $ra, 0x1c($sp)
|
|
/* 0E5570 7F0B2B80 AFB10018 */ sw $s1, 0x18($sp)
|
|
/* 0E5574 7F0B2B84 00A08025 */ move $s0, $a1
|
|
/* 0E5578 7F0B2B88 90A20000 */ lbu $v0, ($a1)
|
|
/* 0E557C 7F0B2B8C 308300FF */ andi $v1, $a0, 0xff
|
|
/* 0E5580 7F0B2B90 02002025 */ move $a0, $s0
|
|
.L7F0B2B94:
|
|
/* 0E5584 7F0B2B94 1062000B */ beq $v1, $v0, .L7F0B2BC4
|
|
/* 0E5588 7F0B2B98 00000000 */ nop
|
|
/* 0E558C 7F0B2B9C 92020001 */ lbu $v0, 1($s0)
|
|
/* 0E5590 7F0B2BA0 26100001 */ addiu $s0, $s0, 1
|
|
/* 0E5594 7F0B2BA4 1440FFFB */ bnez $v0, .L7F0B2B94
|
|
/* 0E5598 7F0B2BA8 00000000 */ nop
|
|
/* 0E559C 7F0B2BAC 920E0001 */ lbu $t6, 1($s0)
|
|
.L7F0B2BB0:
|
|
/* 0E55A0 7F0B2BB0 26100001 */ addiu $s0, $s0, 1
|
|
/* 0E55A4 7F0B2BB4 55C0FFFE */ bnezl $t6, .L7F0B2BB0
|
|
/* 0E55A8 7F0B2BB8 920E0001 */ lbu $t6, 1($s0)
|
|
/* 0E55AC 7F0B2BBC 10000027 */ b .L7F0B2C5C
|
|
/* 0E55B0 7F0B2BC0 26100001 */ addiu $s0, $s0, 1
|
|
.L7F0B2BC4:
|
|
/* 0E55B4 7F0B2BC4 3C118007 */ lui $s1, %hi(g_CurrentPlayer) # $s1, 0x8007
|
|
/* 0E55B8 7F0B2BC8 00808025 */ move $s0, $a0
|
|
/* 0E55BC 7F0B2BCC 26318BC0 */ addiu $s1, %lo(g_CurrentPlayer) # addiu $s1, $s1, -0x7440
|
|
/* 0E55C0 7F0B2BD0 90820000 */ lbu $v0, ($a0)
|
|
/* 0E55C4 7F0B2BD4 8E250000 */ lw $a1, ($s1)
|
|
.L7F0B2BD8:
|
|
/* 0E55C8 7F0B2BD8 00402025 */ move $a0, $v0
|
|
/* 0E55CC 7F0B2BDC 0FC2D151 */ jal sub_GAME_7F0B5208
|
|
/* 0E55D0 7F0B2BE0 24A51110 */ addiu $a1, $a1, 0x1110
|
|
/* 0E55D4 7F0B2BE4 10400006 */ beqz $v0, .L7F0B2C00
|
|
/* 0E55D8 7F0B2BE8 00002825 */ move $a1, $zero
|
|
/* 0E55DC 7F0B2BEC 8E260000 */ lw $a2, ($s1)
|
|
/* 0E55E0 7F0B2BF0 92040000 */ lbu $a0, ($s0)
|
|
/* 0E55E4 7F0B2BF4 24070001 */ li $a3, 1
|
|
/* 0E55E8 7F0B2BF8 0FC2CB1F */ jal sub_GAME_7F0B39BC
|
|
/* 0E55EC 7F0B2BFC 24C61110 */ addiu $a2, $a2, 0x1110
|
|
.L7F0B2C00:
|
|
/* 0E55F0 7F0B2C00 92020001 */ lbu $v0, 1($s0)
|
|
/* 0E55F4 7F0B2C04 26100001 */ addiu $s0, $s0, 1
|
|
/* 0E55F8 7F0B2C08 5440FFF3 */ bnezl $v0, .L7F0B2BD8
|
|
/* 0E55FC 7F0B2C0C 8E250000 */ lw $a1, ($s1)
|
|
/* 0E5600 7F0B2C10 26100001 */ addiu $s0, $s0, 1
|
|
/* 0E5604 7F0B2C14 92020000 */ lbu $v0, ($s0)
|
|
/* 0E5608 7F0B2C18 8E250000 */ lw $a1, ($s1)
|
|
.L7F0B2C1C:
|
|
/* 0E560C 7F0B2C1C 00402025 */ move $a0, $v0
|
|
/* 0E5610 7F0B2C20 0FC2D151 */ jal sub_GAME_7F0B5208
|
|
/* 0E5614 7F0B2C24 24A51110 */ addiu $a1, $a1, 0x1110
|
|
/* 0E5618 7F0B2C28 10400006 */ beqz $v0, .L7F0B2C44
|
|
/* 0E561C 7F0B2C2C 00002825 */ move $a1, $zero
|
|
/* 0E5620 7F0B2C30 8E260000 */ lw $a2, ($s1)
|
|
/* 0E5624 7F0B2C34 92040000 */ lbu $a0, ($s0)
|
|
/* 0E5628 7F0B2C38 24070001 */ li $a3, 1
|
|
/* 0E562C 7F0B2C3C 0FC2CB1F */ jal sub_GAME_7F0B39BC
|
|
/* 0E5630 7F0B2C40 24C61110 */ addiu $a2, $a2, 0x1110
|
|
.L7F0B2C44:
|
|
/* 0E5634 7F0B2C44 92020001 */ lbu $v0, 1($s0)
|
|
/* 0E5638 7F0B2C48 26100001 */ addiu $s0, $s0, 1
|
|
/* 0E563C 7F0B2C4C 5440FFF3 */ bnezl $v0, .L7F0B2C1C
|
|
/* 0E5640 7F0B2C50 8E250000 */ lw $a1, ($s1)
|
|
/* 0E5644 7F0B2C54 10000005 */ b .L7F0B2C6C
|
|
/* 0E5648 7F0B2C58 8FBF001C */ lw $ra, 0x1c($sp)
|
|
.L7F0B2C5C:
|
|
/* 0E564C 7F0B2C5C 92020000 */ lbu $v0, ($s0)
|
|
/* 0E5650 7F0B2C60 5440FFCC */ bnezl $v0, .L7F0B2B94
|
|
/* 0E5654 7F0B2C64 02002025 */ move $a0, $s0
|
|
/* 0E5658 7F0B2C68 8FBF001C */ lw $ra, 0x1c($sp)
|
|
.L7F0B2C6C:
|
|
/* 0E565C 7F0B2C6C 8FB00014 */ lw $s0, 0x14($sp)
|
|
/* 0E5660 7F0B2C70 8FB10018 */ lw $s1, 0x18($sp)
|
|
/* 0E5664 7F0B2C74 03E00008 */ jr $ra
|
|
/* 0E5668 7F0B2C78 27BD0020 */ addiu $sp, $sp, 0x20
|
|
)
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
void sub_GAME_7F0B39BC(int curroom,int unk1, bbox2d * screensize,s32 next)
|
|
{
|
|
int i;
|
|
|
|
array_room_info[curroom].bitflags0 = '\x01';
|
|
|
|
if (array_room_info[curroom].room_loaded_mask == '\0') {
|
|
for (i = 0; i < g_BgNumberOfRoomsDrawn; i++)
|
|
{
|
|
if (curroom == dword_CODE_bss_8007FFA0[i].roomid) {
|
|
if (dword_CODE_bss_8007FFA0[i].unk1 < unk1) {
|
|
dword_CODE_bss_8007FFA0[i].unk1 = unk1;
|
|
}
|
|
sub_GAME_7F0B5CC0(screensize,&dword_CODE_bss_8007FFA0[i].bbox);
|
|
dword_CODE_bss_8007FFA0[i].bbox.min.x = screensize->min.x;
|
|
dword_CODE_bss_8007FFA0[i].bbox.min.y = screensize->min.y;
|
|
dword_CODE_bss_8007FFA0[i].bbox.max.x = screensize->max.x;
|
|
dword_CODE_bss_8007FFA0[i].bbox.max.y = screensize->max.y;
|
|
dword_CODE_bss_8007FFA0[i].next = next;
|
|
|
|
return;
|
|
}
|
|
}
|
|
dword_CODE_bss_8007FFA0[g_BgNumberOfRoomsDrawn].roomid = curroom;
|
|
dword_CODE_bss_8007FFA0[g_BgNumberOfRoomsDrawn].unk1 = unk1;
|
|
dword_CODE_bss_8007FFA0[g_BgNumberOfRoomsDrawn].bbox.min.x = screensize->min.x;
|
|
dword_CODE_bss_8007FFA0[g_BgNumberOfRoomsDrawn].bbox.min.y = screensize->min.y;
|
|
dword_CODE_bss_8007FFA0[g_BgNumberOfRoomsDrawn].bbox.max.x = screensize->max.x;
|
|
dword_CODE_bss_8007FFA0[g_BgNumberOfRoomsDrawn].bbox.max.y = screensize->max.y;
|
|
dword_CODE_bss_8007FFA0[g_BgNumberOfRoomsDrawn].next = next;
|
|
}
|
|
return;
|
|
}
|
|
#else
|
|
|
|
#if defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B39BC
|
|
/* 0E84EC 7F0B39BC 00047080 */ sll $t6, $a0, 2
|
|
/* 0E84F0 7F0B39C0 01C47021 */ addu $t6, $t6, $a0
|
|
/* 0E84F4 7F0B39C4 3C0F8004 */ lui $t7, %hi(array_room_info)
|
|
/* 0E84F8 7F0B39C8 25EF1414 */ addiu $t7, %lo(array_room_info) # addiu $t7, $t7, 0x1414
|
|
/* 0E84FC 7F0B39CC 000E7100 */ sll $t6, $t6, 4
|
|
/* 0E8500 7F0B39D0 01CF1021 */ addu $v0, $t6, $t7
|
|
/* 0E8504 7F0B39D4 90590034 */ lbu $t9, 0x34($v0)
|
|
/* 0E8508 7F0B39D8 27BDFFD0 */ addiu $sp, $sp, -0x30
|
|
/* 0E850C 7F0B39DC AFB00018 */ sw $s0, 0x18($sp)
|
|
/* 0E8510 7F0B39E0 24180001 */ li $t8, 1
|
|
/* 0E8514 7F0B39E4 00808025 */ move $s0, $a0
|
|
/* 0E8518 7F0B39E8 AFBF001C */ sw $ra, 0x1c($sp)
|
|
/* 0E851C 7F0B39EC AFA7003C */ sw $a3, 0x3c($sp)
|
|
/* 0E8520 7F0B39F0 13200003 */ beqz $t9, .L7F0B3A00
|
|
/* 0E8524 7F0B39F4 A0580000 */ sb $t8, ($v0)
|
|
/* 0E8528 7F0B39F8 1000003D */ b .L7F0B3AF0
|
|
/* 0E852C 7F0B39FC 00001025 */ move $v0, $zero
|
|
.L7F0B3A00:
|
|
/* 0E8530 7F0B3A00 3C078004 */ lui $a3, %hi(g_BgNumberOfRoomsDrawn)
|
|
/* 0E8534 7F0B3A04 24E7483C */ addiu $a3, %lo(g_BgNumberOfRoomsDrawn) # addiu $a3, $a3, 0x483c
|
|
/* 0E8538 7F0B3A08 8CE40000 */ lw $a0, ($a3)
|
|
/* 0E853C 7F0B3A0C 00001025 */ move $v0, $zero
|
|
/* 0E8540 7F0B3A10 3C0D8008 */ lui $t5, %hi(dword_CODE_bss_8007FFA0)
|
|
/* 0E8544 7F0B3A14 18800023 */ blez $a0, .L7F0B3AA4
|
|
/* 0E8548 7F0B3A18 000460C0 */ sll $t4, $a0, 3
|
|
/* 0E854C 7F0B3A1C 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007FFA0)
|
|
/* 0E8550 7F0B3A20 2463FFA0 */ addiu $v1, %lo(dword_CODE_bss_8007FFA0) # addiu $v1, $v1, -0x60
|
|
.L7F0B3A24:
|
|
/* 0E8554 7F0B3A24 8C680000 */ lw $t0, ($v1)
|
|
/* 0E8558 7F0B3A28 24420001 */ addiu $v0, $v0, 1
|
|
/* 0E855C 7F0B3A2C 0044082A */ slt $at, $v0, $a0
|
|
/* 0E8560 7F0B3A30 1608001A */ bne $s0, $t0, .L7F0B3A9C
|
|
/* 0E8564 7F0B3A34 00000000 */ nop
|
|
/* 0E8568 7F0B3A38 8C690004 */ lw $t1, 4($v1)
|
|
/* 0E856C 7F0B3A3C 00C02025 */ move $a0, $a2
|
|
/* 0E8570 7F0B3A40 0125082A */ slt $at, $t1, $a1
|
|
/* 0E8574 7F0B3A44 50200003 */ beql $at, $zero, .L7F0B3A54
|
|
/* 0E8578 7F0B3A48 24650008 */ addiu $a1, $v1, 8
|
|
/* 0E857C 7F0B3A4C AC650004 */ sw $a1, 4($v1)
|
|
/* 0E8580 7F0B3A50 24650008 */ addiu $a1, $v1, 8
|
|
.L7F0B3A54:
|
|
/* 0E8584 7F0B3A54 AFA30020 */ sw $v1, 0x20($sp)
|
|
/* 0E8588 7F0B3A58 0FC2D730 */ jal sub_GAME_7F0B5CC0
|
|
/* 0E858C 7F0B3A5C AFA60038 */ sw $a2, 0x38($sp)
|
|
/* 0E8590 7F0B3A60 8FA60038 */ lw $a2, 0x38($sp)
|
|
/* 0E8594 7F0B3A64 8FA30020 */ lw $v1, 0x20($sp)
|
|
/* 0E8598 7F0B3A68 8FAA003C */ lw $t2, 0x3c($sp)
|
|
/* 0E859C 7F0B3A6C C4C40000 */ lwc1 $f4, ($a2)
|
|
/* 0E85A0 7F0B3A70 8C620018 */ lw $v0, 0x18($v1)
|
|
/* 0E85A4 7F0B3A74 E4640008 */ swc1 $f4, 8($v1)
|
|
/* 0E85A8 7F0B3A78 C4C60004 */ lwc1 $f6, 4($a2)
|
|
/* 0E85AC 7F0B3A7C 004A5825 */ or $t3, $v0, $t2
|
|
/* 0E85B0 7F0B3A80 E466000C */ swc1 $f6, 0xc($v1)
|
|
/* 0E85B4 7F0B3A84 C4C80008 */ lwc1 $f8, 8($a2)
|
|
/* 0E85B8 7F0B3A88 E4680010 */ swc1 $f8, 0x10($v1)
|
|
/* 0E85BC 7F0B3A8C C4CA000C */ lwc1 $f10, 0xc($a2)
|
|
/* 0E85C0 7F0B3A90 AC6B0018 */ sw $t3, 0x18($v1)
|
|
/* 0E85C4 7F0B3A94 10000016 */ b .L7F0B3AF0
|
|
/* 0E85C8 7F0B3A98 E46A0014 */ swc1 $f10, 0x14($v1)
|
|
.L7F0B3A9C:
|
|
/* 0E85CC 7F0B3A9C 1420FFE1 */ bnez $at, .L7F0B3A24
|
|
/* 0E85D0 7F0B3AA0 2463001C */ addiu $v1, $v1, 0x1c
|
|
.L7F0B3AA4:
|
|
/* 0E85D4 7F0B3AA4 01846023 */ subu $t4, $t4, $a0
|
|
/* 0E85D8 7F0B3AA8 000C6080 */ sll $t4, $t4, 2
|
|
/* 0E85DC 7F0B3AAC 25ADFFA0 */ addiu $t5, %lo(dword_CODE_bss_8007FFA0) # addiu $t5, $t5, -0x60
|
|
/* 0E85E0 7F0B3AB0 018D1821 */ addu $v1, $t4, $t5
|
|
/* 0E85E4 7F0B3AB4 AC700000 */ sw $s0, ($v1)
|
|
/* 0E85E8 7F0B3AB8 AC650004 */ sw $a1, 4($v1)
|
|
/* 0E85EC 7F0B3ABC C4D00000 */ lwc1 $f16, ($a2)
|
|
/* 0E85F0 7F0B3AC0 8FAE003C */ lw $t6, 0x3c($sp)
|
|
/* 0E85F4 7F0B3AC4 248F0001 */ addiu $t7, $a0, 1
|
|
/* 0E85F8 7F0B3AC8 E4700008 */ swc1 $f16, 8($v1)
|
|
/* 0E85FC 7F0B3ACC C4D20004 */ lwc1 $f18, 4($a2)
|
|
/* 0E8600 7F0B3AD0 00001025 */ move $v0, $zero
|
|
/* 0E8604 7F0B3AD4 E472000C */ swc1 $f18, 0xc($v1)
|
|
/* 0E8608 7F0B3AD8 C4C40008 */ lwc1 $f4, 8($a2)
|
|
/* 0E860C 7F0B3ADC E4640010 */ swc1 $f4, 0x10($v1)
|
|
/* 0E8610 7F0B3AE0 C4C6000C */ lwc1 $f6, 0xc($a2)
|
|
/* 0E8614 7F0B3AE4 ACEF0000 */ sw $t7, ($a3)
|
|
/* 0E8618 7F0B3AE8 AC6E0018 */ sw $t6, 0x18($v1)
|
|
/* 0E861C 7F0B3AEC E4660014 */ swc1 $f6, 0x14($v1)
|
|
.L7F0B3AF0:
|
|
/* 0E8620 7F0B3AF0 8FBF001C */ lw $ra, 0x1c($sp)
|
|
/* 0E8624 7F0B3AF4 8FB00018 */ lw $s0, 0x18($sp)
|
|
/* 0E8628 7F0B3AF8 27BD0030 */ addiu $sp, $sp, 0x30
|
|
/* 0E862C 7F0B3AFC 03E00008 */ jr $ra
|
|
/* 0E8630 7F0B3B00 00000000 */ nop
|
|
)
|
|
#endif
|
|
|
|
#if !defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B39BC
|
|
/* 0E566C 7F0B2C7C 00047080 */ sll $t6, $a0, 2
|
|
/* 0E5670 7F0B2C80 01C47021 */ addu $t6, $t6, $a0
|
|
/* 0E5674 7F0B2C84 3C0F8004 */ lui $t7, %hi(array_room_info) # $t7, 0x8004
|
|
/* 0E5678 7F0B2C88 25EFAC64 */ addiu $t7, %lo(array_room_info) # addiu $t7, $t7, -0x539c
|
|
/* 0E567C 7F0B2C8C 000E7100 */ sll $t6, $t6, 4
|
|
/* 0E5680 7F0B2C90 01CF1021 */ addu $v0, $t6, $t7
|
|
/* 0E5684 7F0B2C94 90590034 */ lbu $t9, 0x34($v0)
|
|
/* 0E5688 7F0B2C98 27BDFFD0 */ addiu $sp, $sp, -0x30
|
|
/* 0E568C 7F0B2C9C AFB00018 */ sw $s0, 0x18($sp)
|
|
/* 0E5690 7F0B2CA0 24180001 */ li $t8, 1
|
|
/* 0E5694 7F0B2CA4 00808025 */ move $s0, $a0
|
|
/* 0E5698 7F0B2CA8 AFBF001C */ sw $ra, 0x1c($sp)
|
|
/* 0E569C 7F0B2CAC AFA50034 */ sw $a1, 0x34($sp)
|
|
/* 0E56A0 7F0B2CB0 13200003 */ beqz $t9, .L7F0B2CC0
|
|
/* 0E56A4 7F0B2CB4 A0580000 */ sb $t8, ($v0)
|
|
/* 0E56A8 7F0B2CB8 10000049 */ b .L7F0B2DE0
|
|
/* 0E56AC 7F0B2CBC 00001025 */ move $v0, $zero
|
|
.L7F0B2CC0:
|
|
/* 0E56B0 7F0B2CC0 3C088004 */ lui $t0, %hi(g_BgNumberOfRoomsDrawn) # $t0, 0x8004
|
|
/* 0E56B4 7F0B2CC4 2508DD1C */ addiu $t0, %lo(g_BgNumberOfRoomsDrawn) # addiu $t0, $t0, -0x22e4
|
|
/* 0E56B8 7F0B2CC8 8D040000 */ lw $a0, ($t0)
|
|
/* 0E56BC 7F0B2CCC 3C0E8007 */ lui $t6, %hi(dword_CODE_bss_8007FFA0) # $t6, 0x8007
|
|
/* 0E56C0 7F0B2CD0 00001025 */ move $v0, $zero
|
|
/* 0E56C4 7F0B2CD4 18800025 */ blez $a0, .L7F0B2D6C
|
|
/* 0E56C8 7F0B2CD8 25CEB3E0 */ addiu $t6, %lo(dword_CODE_bss_8007FFA0) # addiu $t6, $t6, -0x4c20
|
|
/* 0E56CC 7F0B2CDC 3C038007 */ lui $v1, %hi(dword_CODE_bss_8007FFA0) # $v1, 0x8007
|
|
/* 0E56D0 7F0B2CE0 2463B3E0 */ addiu $v1, %lo(dword_CODE_bss_8007FFA0) # addiu $v1, $v1, -0x4c20
|
|
.L7F0B2CE4:
|
|
/* 0E56D4 7F0B2CE4 90690000 */ lbu $t1, ($v1)
|
|
/* 0E56D8 7F0B2CE8 24420001 */ addiu $v0, $v0, 1
|
|
/* 0E56DC 7F0B2CEC 0044082A */ slt $at, $v0, $a0
|
|
/* 0E56E0 7F0B2CF0 1609001C */ bne $s0, $t1, .L7F0B2D64
|
|
/* 0E56E4 7F0B2CF4 00000000 */ nop
|
|
/* 0E56E8 7F0B2CF8 846A0002 */ lh $t2, 2($v1)
|
|
/* 0E56EC 7F0B2CFC 8FAB0034 */ lw $t3, 0x34($sp)
|
|
/* 0E56F0 7F0B2D00 00C02025 */ move $a0, $a2
|
|
/* 0E56F4 7F0B2D04 24650008 */ addiu $a1, $v1, 8
|
|
/* 0E56F8 7F0B2D08 014B082A */ slt $at, $t2, $t3
|
|
/* 0E56FC 7F0B2D0C 50200003 */ beql $at, $zero, .L7F0B2D1C
|
|
/* 0E5700 7F0B2D10 AFA30020 */ sw $v1, 0x20($sp)
|
|
/* 0E5704 7F0B2D14 A46B0002 */ sh $t3, 2($v1)
|
|
/* 0E5708 7F0B2D18 AFA30020 */ sw $v1, 0x20($sp)
|
|
.L7F0B2D1C:
|
|
/* 0E570C 7F0B2D1C AFA60038 */ sw $a2, 0x38($sp)
|
|
/* 0E5710 7F0B2D20 0FC2D3FF */ jal sub_GAME_7F0B5CC0
|
|
/* 0E5714 7F0B2D24 AFA7003C */ sw $a3, 0x3c($sp)
|
|
/* 0E5718 7F0B2D28 8FA60038 */ lw $a2, 0x38($sp)
|
|
/* 0E571C 7F0B2D2C 8FA30020 */ lw $v1, 0x20($sp)
|
|
/* 0E5720 7F0B2D30 8FA7003C */ lw $a3, 0x3c($sp)
|
|
/* 0E5724 7F0B2D34 C4C40000 */ lwc1 $f4, ($a2)
|
|
/* 0E5728 7F0B2D38 90620004 */ lbu $v0, 4($v1)
|
|
/* 0E572C 7F0B2D3C E4640008 */ swc1 $f4, 8($v1)
|
|
/* 0E5730 7F0B2D40 C4C60004 */ lwc1 $f6, 4($a2)
|
|
/* 0E5734 7F0B2D44 00476025 */ or $t4, $v0, $a3
|
|
/* 0E5738 7F0B2D48 E466000C */ swc1 $f6, 0xc($v1)
|
|
/* 0E573C 7F0B2D4C C4C80008 */ lwc1 $f8, 8($a2)
|
|
/* 0E5740 7F0B2D50 E4680010 */ swc1 $f8, 0x10($v1)
|
|
/* 0E5744 7F0B2D54 C4CA000C */ lwc1 $f10, 0xc($a2)
|
|
/* 0E5748 7F0B2D58 A06C0004 */ sb $t4, 4($v1)
|
|
/* 0E574C 7F0B2D5C 10000020 */ b .L7F0B2DE0
|
|
/* 0E5750 7F0B2D60 E46A0014 */ swc1 $f10, 0x14($v1)
|
|
.L7F0B2D64:
|
|
/* 0E5754 7F0B2D64 1420FFDF */ bnez $at, .L7F0B2CE4
|
|
/* 0E5758 7F0B2D68 24630018 */ addiu $v1, $v1, 0x18
|
|
.L7F0B2D6C:
|
|
/* 0E575C 7F0B2D6C 28810078 */ slti $at, $a0, 0x78
|
|
/* 0E5760 7F0B2D70 14200002 */ bnez $at, .L7F0B2D7C
|
|
/* 0E5764 7F0B2D74 00801025 */ move $v0, $a0
|
|
/* 0E5768 7F0B2D78 24020077 */ li $v0, 119
|
|
.L7F0B2D7C:
|
|
/* 0E576C 7F0B2D7C 00026880 */ sll $t5, $v0, 2
|
|
/* 0E5770 7F0B2D80 01A26823 */ subu $t5, $t5, $v0
|
|
/* 0E5774 7F0B2D84 8FAF0034 */ lw $t7, 0x34($sp)
|
|
/* 0E5778 7F0B2D88 000D68C0 */ sll $t5, $t5, 3
|
|
/* 0E577C 7F0B2D8C 01AE1821 */ addu $v1, $t5, $t6
|
|
/* 0E5780 7F0B2D90 A0700000 */ sb $s0, ($v1)
|
|
/* 0E5784 7F0B2D94 A46F0002 */ sh $t7, 2($v1)
|
|
/* 0E5788 7F0B2D98 C4D00000 */ lwc1 $f16, ($a2)
|
|
/* 0E578C 7F0B2D9C 3C048004 */ lui $a0, %hi(eu_cdata_0x1f0d0) # $a0, 0x8004
|
|
/* 0E5790 7F0B2DA0 2484DD20 */ addiu $a0, %lo(eu_cdata_0x1f0d0) # addiu $a0, $a0, -0x22e0
|
|
/* 0E5794 7F0B2DA4 E4700008 */ swc1 $f16, 8($v1)
|
|
/* 0E5798 7F0B2DA8 C4D20004 */ lwc1 $f18, 4($a2)
|
|
/* 0E579C 7F0B2DAC 8C980000 */ lw $t8, ($a0)
|
|
/* 0E57A0 7F0B2DB0 00001025 */ move $v0, $zero
|
|
/* 0E57A4 7F0B2DB4 E472000C */ swc1 $f18, 0xc($v1)
|
|
/* 0E57A8 7F0B2DB8 C4C40008 */ lwc1 $f4, 8($a2)
|
|
/* 0E57AC 7F0B2DBC 27190001 */ addiu $t9, $t8, 1
|
|
/* 0E57B0 7F0B2DC0 2B210078 */ slti $at, $t9, 0x78
|
|
/* 0E57B4 7F0B2DC4 E4640010 */ swc1 $f4, 0x10($v1)
|
|
/* 0E57B8 7F0B2DC8 C4C6000C */ lwc1 $f6, 0xc($a2)
|
|
/* 0E57BC 7F0B2DCC A0670004 */ sb $a3, 4($v1)
|
|
/* 0E57C0 7F0B2DD0 AC990000 */ sw $t9, ($a0)
|
|
/* 0E57C4 7F0B2DD4 10200002 */ beqz $at, .L7F0B2DE0
|
|
/* 0E57C8 7F0B2DD8 E4660014 */ swc1 $f6, 0x14($v1)
|
|
/* 0E57CC 7F0B2DDC AD190000 */ sw $t9, ($t0)
|
|
.L7F0B2DE0:
|
|
/* 0E57D0 7F0B2DE0 8FBF001C */ lw $ra, 0x1c($sp)
|
|
/* 0E57D4 7F0B2DE4 8FB00018 */ lw $s0, 0x18($sp)
|
|
/* 0E57D8 7F0B2DE8 27BD0030 */ addiu $sp, $sp, 0x30
|
|
/* 0E57DC 7F0B2DEC 03E00008 */ jr $ra
|
|
/* 0E57E0 7F0B2DF0 00000000 */ nop
|
|
)
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
void bgZeroBitflags2ForRoom(s32 roomnum)
|
|
{
|
|
array_room_info[roomnum].bitflags2 = '\0';
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
s32 sub_GAME_7F0B3B20(void)
|
|
{
|
|
s32 i;
|
|
|
|
for (i=0;i<MAXROOMCOUNT;i++)
|
|
{
|
|
if (array_room_info[i].bitflags2) {
|
|
return i;
|
|
};
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
//unrolled sb are in reverse order
|
|
void sub_GAME_7F0B3BC4(void)
|
|
{
|
|
s32 i;
|
|
|
|
g_BgNumberOfRoomsDrawn = 0;
|
|
for (i=0;i!=MAXROOMCOUNT;i++)
|
|
{
|
|
array_room_info[i].bitflags2 = '\0';
|
|
}
|
|
}
|
|
#else
|
|
|
|
#if defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B3BC4
|
|
/* 0E86F4 7F0B3BC4 3C018004 */ lui $at, %hi(g_BgNumberOfRoomsDrawn)
|
|
/* 0E86F8 7F0B3BC8 AC20483C */ sw $zero, %lo(g_BgNumberOfRoomsDrawn)($at)
|
|
/* 0E86FC 7F0B3BCC 3C018004 */ lui $at, %hi(array_room_info+0x3)
|
|
/* 0E8700 7F0B3BD0 A0201417 */ sb $zero, %lo(array_room_info+0x3)($at)
|
|
/* 0E8704 7F0B3BD4 3C018004 */ lui $at, %hi(array_room_info + 0x53)
|
|
/* 0E8708 7F0B3BD8 3C038004 */ lui $v1, %hi(array_room_info + 0xA0)
|
|
/* 0E870C 7F0B3BDC 3C028004 */ lui $v0, %hi(MaxNumRooms)
|
|
/* 0E8710 7F0B3BE0 244242F4 */ addiu $v0, %lo(MaxNumRooms) # addiu $v0, $v0, 0x42f4
|
|
/* 0E8714 7F0B3BE4 246314B4 */ addiu $v1, %lo(array_room_info + 0xA0) # addiu $v1, $v1, 0x14b4
|
|
/* 0E8718 7F0B3BE8 A0201467 */ sb $zero, %lo(array_room_info + 0x53)($at)
|
|
.L7F0B3BEC:
|
|
/* 0E871C 7F0B3BEC 24630140 */ addiu $v1, $v1, 0x140
|
|
/* 0E8720 7F0B3BF0 A060FEC3 */ sb $zero, -0x13d($v1)
|
|
/* 0E8724 7F0B3BF4 A060FF13 */ sb $zero, -0xed($v1)
|
|
/* 0E8728 7F0B3BF8 A060FF63 */ sb $zero, -0x9d($v1)
|
|
/* 0E872C 7F0B3BFC 1462FFFB */ bne $v1, $v0, .L7F0B3BEC
|
|
/* 0E8730 7F0B3C00 A060FFB3 */ sb $zero, -0x4d($v1)
|
|
/* 0E8734 7F0B3C04 03E00008 */ jr $ra
|
|
/* 0E8738 7F0B3C08 00000000 */ nop
|
|
)
|
|
#endif
|
|
|
|
#if !defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B3BC4
|
|
/* 0E58BC 7F0B2ECC 3C018004 */ lui $at, %hi(g_BgNumberOfRoomsDrawn) # $at, 0x8004
|
|
/* 0E58C0 7F0B2ED0 AC20DD1C */ sw $zero, %lo(g_BgNumberOfRoomsDrawn)($at)
|
|
/* 0E58C4 7F0B2ED4 3C018004 */ lui $at, %hi(eu_cdata_0x1f0d0) # $at, 0x8004
|
|
/* 0E58C8 7F0B2ED8 AC20DD20 */ sw $zero, %lo(eu_cdata_0x1f0d0)($at)
|
|
/* 0E58CC 7F0B2EDC 3C018004 */ lui $at, %hi(array_room_info+0x3) # $at, 0x8004
|
|
/* 0E58D0 7F0B2EE0 A020AC67 */ sb $zero, %lo(array_room_info+0x3)($at)
|
|
/* 0E58D4 7F0B2EE4 3C018004 */ lui $at, %hi(array_room_info + 0x53) # $at, 0x8004
|
|
/* 0E58D8 7F0B2EE8 A020ACB7 */ sb $zero, %lo(array_room_info + 0x53)($at)
|
|
/* 0E58DC 7F0B2EEC 3C018004 */ lui $at, %hi(array_room_info + 0xA3) # $at, 0x8004
|
|
/* 0E58E0 7F0B2EF0 3C038004 */ lui $v1, %hi(array_room_info + 0xf0) # $v1, 0x8004
|
|
/* 0E58E4 7F0B2EF4 3C028004 */ lui $v0, %hi(MaxNumRooms) # $v0, 0x8004
|
|
/* 0E58E8 7F0B2EF8 2442D7D4 */ addiu $v0, %lo(MaxNumRooms) # addiu $v0, $v0, -0x282c
|
|
/* 0E58EC 7F0B2EFC 2463AD54 */ addiu $v1, %lo(array_room_info + 0xf0) # addiu $v1, $v1, -0x52ac
|
|
/* 0E58F0 7F0B2F00 A020AD07 */ sb $zero, %lo(array_room_info + 0xA3)($at)
|
|
.L7F0B2F04:
|
|
/* 0E58F4 7F0B2F04 24630140 */ addiu $v1, $v1, 0x140
|
|
/* 0E58F8 7F0B2F08 A060FEC3 */ sb $zero, -0x13d($v1)
|
|
/* 0E58FC 7F0B2F0C A060FF13 */ sb $zero, -0xed($v1)
|
|
/* 0E5900 7F0B2F10 A060FF63 */ sb $zero, -0x9d($v1)
|
|
/* 0E5904 7F0B2F14 1462FFFB */ bne $v1, $v0, .L7F0B2F04
|
|
/* 0E5908 7F0B2F18 A060FFB3 */ sb $zero, -0x4d($v1)
|
|
/* 0E590C 7F0B2F1C 03E00008 */ jr $ra
|
|
/* 0E5910 7F0B2F20 00000000 */ nop
|
|
)
|
|
#endif
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Searches dword_CODE_bss_8007FFA0 for matching id.
|
|
* If found, sets result to 2d bbox and returns 1.
|
|
* Otherwise result is set to empty 2d bbox and returns 0.
|
|
*
|
|
* @param room_id: room id to search for.
|
|
* @param result: Out parameter. Contains result 2d bbox.
|
|
*
|
|
* Address 0x7F0B3C0C.
|
|
*/
|
|
s32 bgGet2dBboxByRoomId(s32 room_id, struct bbox2d *result)
|
|
{
|
|
s32 i;
|
|
for (i=0; i<g_BgNumberOfRoomsDrawn; i++)
|
|
{
|
|
if (room_id == dword_CODE_bss_8007FFA0[i].roomid)
|
|
{
|
|
result->f[0][0] = dword_CODE_bss_8007FFA0[i].bbox.f[0][0];
|
|
result->f[0][1] = dword_CODE_bss_8007FFA0[i].bbox.f[0][1];
|
|
result->f[1][0] = dword_CODE_bss_8007FFA0[i].bbox.f[1][0];
|
|
result->f[1][1] = dword_CODE_bss_8007FFA0[i].bbox.f[1][1];
|
|
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
result->f[0][0] = 0.0f;
|
|
result->f[0][1] = 0.0f;
|
|
result->f[1][0] = 0.0f;
|
|
result->f[1][1] = 0.0f;
|
|
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
/**
|
|
* Address 0x7F0B3C8C.
|
|
*
|
|
* decomp status:
|
|
* - compiles: yes
|
|
* - stack resize: ok
|
|
* - identical instructions: fail
|
|
* - identical registers: fail
|
|
*
|
|
* notes: can't read g_BgNumberOfRoomsDrawn the correct number of times.
|
|
*/
|
|
Gfx *sub_GAME_7F0B3C8C(Gfx *arg0)
|
|
{
|
|
s32 i;
|
|
s32 j;
|
|
s32 b_max;
|
|
s32 b_min;
|
|
|
|
b_min = 99999999;
|
|
b_max = 0;
|
|
|
|
for (i=0; i<g_BgNumberOfRoomsDrawn; i++)
|
|
{
|
|
b_max = (b_max < dword_CODE_bss_8007FFA0[i].unk1) ? dword_CODE_bss_8007FFA0[i].unk1 : b_max;
|
|
b_min = (dword_CODE_bss_8007FFA0[i].unk1 < b_min) ? dword_CODE_bss_8007FFA0[i].unk1 : b_min;
|
|
}
|
|
|
|
for (i=b_min; i < b_max + 1; i++)
|
|
{
|
|
for (j=0; j<g_BgNumberOfRoomsDrawn; j++)
|
|
{
|
|
if (i == dword_CODE_bss_8007FFA0[j].unk1)
|
|
{
|
|
gSPMatrix(arg0++, osVirtualToPhysical((void*)currentPlayerGetProjectionMatrix()), (G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION));
|
|
arg0 = fogRenderClearFogMode(arg0);
|
|
|
|
if (get_debug_do_draw_obj())
|
|
{
|
|
if (sub_GAME_7F0BD8F0())
|
|
{
|
|
arg0 = chrpropsRenderPass(arg0, dword_CODE_bss_8007FFA0[j].roomid, 0);
|
|
}
|
|
}
|
|
|
|
gSPMatrix(arg0++, osVirtualToPhysical((void*)get_BONDdata_field_10E0()), (G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION));
|
|
arg0 = fogSetRenderFogColor(
|
|
bgScissorCurrentPlayerViewF(
|
|
arg0++,
|
|
dword_CODE_bss_8007FFA0[j].bbox.f[0][0],
|
|
dword_CODE_bss_8007FFA0[j].bbox.f[0][1],
|
|
dword_CODE_bss_8007FFA0[j].bbox.f[1][0],
|
|
dword_CODE_bss_8007FFA0[j].bbox.f[1][1]),
|
|
0);
|
|
|
|
if (get_debug_do_draw_bg())
|
|
{
|
|
if (sub_GAME_7F0BD8F0())
|
|
{
|
|
arg0 = sub_GAME_7F0B677C(arg0, dword_CODE_bss_8007FFA0[j].roomid);
|
|
}
|
|
}
|
|
|
|
gSPMatrix(arg0++, osVirtualToPhysical((void*)currentPlayerGetProjectionMatrix()), (G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION));
|
|
arg0 = fogRenderClearFogMode(arg0);
|
|
|
|
if (get_debug_do_draw_obj())
|
|
{
|
|
if (sub_GAME_7F0BD8F0())
|
|
{
|
|
arg0 = chrpropsRenderPass(arg0, dword_CODE_bss_8007FFA0[j].roomid, 2);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
arg0 = bgScissorCurrentPlayerViewDefault(fogRenderClearFogMode(arg0));
|
|
gSPMatrix(arg0++, osVirtualToPhysical((void*)get_BONDdata_field_10E0()), (G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION));
|
|
|
|
if (sub_GAME_7F0BD8F0())
|
|
{
|
|
arg0 = sub_GAME_7F0A1D78(sub_GAME_7F0A0AB4(arg0));
|
|
}
|
|
|
|
for (i=b_max; i > b_min - 1; i--)
|
|
{
|
|
for (j=0; j<g_BgNumberOfRoomsDrawn; j++)
|
|
{
|
|
if (i == dword_CODE_bss_8007FFA0[j].unk1)
|
|
{
|
|
gSPMatrix(arg0++, osVirtualToPhysical((void*)get_BONDdata_field_10E0()), (G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION));
|
|
arg0 = fogSetRenderFogColor(
|
|
bgScissorCurrentPlayerViewF(
|
|
arg0++,
|
|
dword_CODE_bss_8007FFA0[j].bbox.f[0][0],
|
|
dword_CODE_bss_8007FFA0[j].bbox.f[0][1],
|
|
dword_CODE_bss_8007FFA0[j].bbox.f[1][0],
|
|
dword_CODE_bss_8007FFA0[j].bbox.f[1][1]),
|
|
0);
|
|
|
|
if (get_debug_do_draw_bg())
|
|
{
|
|
if (sub_GAME_7F0BD8F0())
|
|
{
|
|
arg0 = sub_GAME_7F0B6898(arg0, dword_CODE_bss_8007FFA0[j].roomid);
|
|
}
|
|
}
|
|
|
|
gSPMatrix(arg0++, osVirtualToPhysical((void*)currentPlayerGetProjectionMatrix()), (G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION));
|
|
arg0 = fogRenderClearFogMode(arg0);
|
|
|
|
if (get_debug_do_draw_obj())
|
|
{
|
|
if (sub_GAME_7F0BD8F0())
|
|
{
|
|
arg0 = chrpropsRenderPass(arg0, dword_CODE_bss_8007FFA0[j].roomid, 1);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return arg0;
|
|
}
|
|
#else
|
|
|
|
#if defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B3C8C
|
|
/* 0E87BC 7F0B3C8C 27BDFF80 */ addiu $sp, $sp, -0x80
|
|
/* 0E87C0 7F0B3C90 3C028004 */ lui $v0, %hi(g_BgNumberOfRoomsDrawn)
|
|
/* 0E87C4 7F0B3C94 8C42483C */ lw $v0, %lo(g_BgNumberOfRoomsDrawn)($v0)
|
|
/* 0E87C8 7F0B3C98 AFB70038 */ sw $s7, 0x38($sp)
|
|
/* 0E87CC 7F0B3C9C AFB60034 */ sw $s6, 0x34($sp)
|
|
/* 0E87D0 7F0B3CA0 AFB0001C */ sw $s0, 0x1c($sp)
|
|
/* 0E87D4 7F0B3CA4 3C1705F5 */ lui $s7, (0x05F5E0FF >> 16) # lui $s7, 0x5f5
|
|
/* 0E87D8 7F0B3CA8 00808025 */ move $s0, $a0
|
|
/* 0E87DC 7F0B3CAC AFBF003C */ sw $ra, 0x3c($sp)
|
|
/* 0E87E0 7F0B3CB0 AFB50030 */ sw $s5, 0x30($sp)
|
|
/* 0E87E4 7F0B3CB4 AFB4002C */ sw $s4, 0x2c($sp)
|
|
/* 0E87E8 7F0B3CB8 AFB30028 */ sw $s3, 0x28($sp)
|
|
/* 0E87EC 7F0B3CBC AFB20024 */ sw $s2, 0x24($sp)
|
|
/* 0E87F0 7F0B3CC0 AFB10020 */ sw $s1, 0x20($sp)
|
|
/* 0E87F4 7F0B3CC4 36F7E0FF */ ori $s7, (0x05F5E0FF & 0xFFFF) # ori $s7, $s7, 0xe0ff
|
|
/* 0E87F8 7F0B3CC8 18400014 */ blez $v0, .L7F0B3D1C
|
|
/* 0E87FC 7F0B3CCC 0000B025 */ move $s6, $zero
|
|
/* 0E8800 7F0B3CD0 000278C0 */ sll $t7, $v0, 3
|
|
/* 0E8804 7F0B3CD4 01E27823 */ subu $t7, $t7, $v0
|
|
/* 0E8808 7F0B3CD8 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_8007FFA0)
|
|
/* 0E880C 7F0B3CDC 25D2FFA0 */ addiu $s2, $t6, %lo(dword_CODE_bss_8007FFA0)
|
|
/* 0E8810 7F0B3CE0 000F7880 */ sll $t7, $t7, 2
|
|
/* 0E8814 7F0B3CE4 01F22021 */ addu $a0, $t7, $s2
|
|
/* 0E8818 7F0B3CE8 8E430004 */ lw $v1, 4($s2)
|
|
.L7F0B3CEC:
|
|
/* 0E881C 7F0B3CEC 2652001C */ addiu $s2, $s2, 0x1c
|
|
/* 0E8820 7F0B3CF0 02C3082A */ slt $at, $s6, $v1
|
|
/* 0E8824 7F0B3CF4 50200003 */ beql $at, $zero, .L7F0B3D04
|
|
/* 0E8828 7F0B3CF8 0077082A */ slt $at, $v1, $s7
|
|
/* 0E882C 7F0B3CFC 0060B025 */ move $s6, $v1
|
|
/* 0E8830 7F0B3D00 0077082A */ slt $at, $v1, $s7
|
|
.L7F0B3D04:
|
|
/* 0E8834 7F0B3D04 50200003 */ beql $at, $zero, .L7F0B3D14
|
|
/* 0E8838 7F0B3D08 0244082B */ sltu $at, $s2, $a0
|
|
/* 0E883C 7F0B3D0C 0060B825 */ move $s7, $v1
|
|
/* 0E8840 7F0B3D10 0244082B */ sltu $at, $s2, $a0
|
|
.L7F0B3D14:
|
|
/* 0E8844 7F0B3D14 5420FFF5 */ bnezl $at, .L7F0B3CEC
|
|
/* 0E8848 7F0B3D18 8E430004 */ lw $v1, 4($s2)
|
|
.L7F0B3D1C:
|
|
/* 0E884C 7F0B3D1C 02D7082A */ slt $at, $s6, $s7
|
|
/* 0E8850 7F0B3D20 1420005C */ bnez $at, .L7F0B3E94
|
|
/* 0E8854 7F0B3D24 02E0A825 */ move $s5, $s7
|
|
/* 0E8858 7F0B3D28 26D80001 */ addiu $t8, $s6, 1
|
|
/* 0E885C 7F0B3D2C 3C140103 */ lui $s4, (0x01030040 >> 16) # lui $s4, 0x103
|
|
/* 0E8860 7F0B3D30 36940040 */ ori $s4, (0x01030040 & 0xFFFF) # ori $s4, $s4, 0x40
|
|
/* 0E8864 7F0B3D34 AFB80044 */ sw $t8, 0x44($sp)
|
|
.L7F0B3D38:
|
|
/* 0E8868 7F0B3D38 18400052 */ blez $v0, .L7F0B3E84
|
|
/* 0E886C 7F0B3D3C 00009825 */ move $s3, $zero
|
|
/* 0E8870 7F0B3D40 3C128008 */ lui $s2, %hi(dword_CODE_bss_8007FFA0)
|
|
/* 0E8874 7F0B3D44 2652FFA0 */ addiu $s2, %lo(dword_CODE_bss_8007FFA0) # addiu $s2, $s2, -0x60
|
|
.L7F0B3D48:
|
|
/* 0E8878 7F0B3D48 8E590004 */ lw $t9, 4($s2)
|
|
/* 0E887C 7F0B3D4C 02008825 */ move $s1, $s0
|
|
/* 0E8880 7F0B3D50 56B90049 */ bnel $s5, $t9, .L7F0B3E78
|
|
/* 0E8884 7F0B3D54 26730001 */ addiu $s3, $s3, 1
|
|
/* 0E8888 7F0B3D58 26100008 */ addiu $s0, $s0, 8
|
|
/* 0E888C 7F0B3D5C 0FC1E0DD */ jal currentPlayerGetProjectionMatrix
|
|
/* 0E8890 7F0B3D60 AE340000 */ sw $s4, ($s1)
|
|
/* 0E8894 7F0B3D64 0C003A2C */ jal osVirtualToPhysical
|
|
/* 0E8898 7F0B3D68 00402025 */ move $a0, $v0
|
|
/* 0E889C 7F0B3D6C AE220004 */ sw $v0, 4($s1)
|
|
/* 0E88A0 7F0B3D70 0FC2ECA6 */ jal fogRenderClearFogMode
|
|
/* 0E88A4 7F0B3D74 02002025 */ move $a0, $s0
|
|
/* 0E88A8 7F0B3D78 0FC243D3 */ jal get_debug_do_draw_obj
|
|
/* 0E88AC 7F0B3D7C 00408025 */ move $s0, $v0
|
|
/* 0E88B0 7F0B3D80 5040000A */ beql $v0, $zero, .L7F0B3DAC
|
|
/* 0E88B4 7F0B3D84 02008825 */ move $s1, $s0
|
|
/* 0E88B8 7F0B3D88 0FC2F63C */ jal sub_GAME_7F0BD8F0
|
|
/* 0E88BC 7F0B3D8C 00000000 */ nop
|
|
/* 0E88C0 7F0B3D90 10400005 */ beqz $v0, .L7F0B3DA8
|
|
/* 0E88C4 7F0B3D94 02002025 */ move $a0, $s0
|
|
/* 0E88C8 7F0B3D98 8E450000 */ lw $a1, ($s2)
|
|
/* 0E88CC 7F0B3D9C 0FC0E9BD */ jal chrpropsRenderPass
|
|
/* 0E88D0 7F0B3DA0 00003025 */ move $a2, $zero
|
|
/* 0E88D4 7F0B3DA4 00408025 */ move $s0, $v0
|
|
.L7F0B3DA8:
|
|
/* 0E88D8 7F0B3DA8 02008825 */ move $s1, $s0
|
|
.L7F0B3DAC:
|
|
/* 0E88DC 7F0B3DAC AE340000 */ sw $s4, ($s1)
|
|
/* 0E88E0 7F0B3DB0 0FC1E0E5 */ jal get_BONDdata_field_10E0
|
|
/* 0E88E4 7F0B3DB4 26100008 */ addiu $s0, $s0, 8
|
|
/* 0E88E8 7F0B3DB8 0C003A2C */ jal osVirtualToPhysical
|
|
/* 0E88EC 7F0B3DBC 00402025 */ move $a0, $v0
|
|
/* 0E88F0 7F0B3DC0 AE220004 */ sw $v0, 4($s1)
|
|
/* 0E88F4 7F0B3DC4 C6440014 */ lwc1 $f4, 0x14($s2)
|
|
/* 0E88F8 7F0B3DC8 8E470010 */ lw $a3, 0x10($s2)
|
|
/* 0E88FC 7F0B3DCC 8E46000C */ lw $a2, 0xc($s2)
|
|
/* 0E8900 7F0B3DD0 8E450008 */ lw $a1, 8($s2)
|
|
/* 0E8904 7F0B3DD4 02002025 */ move $a0, $s0
|
|
/* 0E8908 7F0B3DD8 0FC2D3FD */ jal bgScissorCurrentPlayerViewF
|
|
/* 0E890C 7F0B3DDC E7A40010 */ swc1 $f4, 0x10($sp)
|
|
/* 0E8910 7F0B3DE0 00402025 */ move $a0, $v0
|
|
/* 0E8914 7F0B3DE4 0FC2EC1C */ jal fogSetRenderFogColor
|
|
/* 0E8918 7F0B3DE8 00002825 */ move $a1, $zero
|
|
/* 0E891C 7F0B3DEC 0FC243D0 */ jal get_debug_do_draw_bg
|
|
/* 0E8920 7F0B3DF0 00408025 */ move $s0, $v0
|
|
/* 0E8924 7F0B3DF4 50400009 */ beql $v0, $zero, .L7F0B3E1C
|
|
/* 0E8928 7F0B3DF8 02008825 */ move $s1, $s0
|
|
/* 0E892C 7F0B3DFC 0FC2F63C */ jal sub_GAME_7F0BD8F0
|
|
/* 0E8930 7F0B3E00 00000000 */ nop
|
|
/* 0E8934 7F0B3E04 10400004 */ beqz $v0, .L7F0B3E18
|
|
/* 0E8938 7F0B3E08 02002025 */ move $a0, $s0
|
|
/* 0E893C 7F0B3E0C 0FC2D9DF */ jal sub_GAME_7F0B677C
|
|
/* 0E8940 7F0B3E10 8E450000 */ lw $a1, ($s2)
|
|
/* 0E8944 7F0B3E14 00408025 */ move $s0, $v0
|
|
.L7F0B3E18:
|
|
/* 0E8948 7F0B3E18 02008825 */ move $s1, $s0
|
|
.L7F0B3E1C:
|
|
/* 0E894C 7F0B3E1C AE340000 */ sw $s4, ($s1)
|
|
/* 0E8950 7F0B3E20 0FC1E0DD */ jal currentPlayerGetProjectionMatrix
|
|
/* 0E8954 7F0B3E24 26100008 */ addiu $s0, $s0, 8
|
|
/* 0E8958 7F0B3E28 0C003A2C */ jal osVirtualToPhysical
|
|
/* 0E895C 7F0B3E2C 00402025 */ move $a0, $v0
|
|
/* 0E8960 7F0B3E30 AE220004 */ sw $v0, 4($s1)
|
|
/* 0E8964 7F0B3E34 0FC2ECA6 */ jal fogRenderClearFogMode
|
|
/* 0E8968 7F0B3E38 02002025 */ move $a0, $s0
|
|
/* 0E896C 7F0B3E3C 0FC243D3 */ jal get_debug_do_draw_obj
|
|
/* 0E8970 7F0B3E40 00408025 */ move $s0, $v0
|
|
/* 0E8974 7F0B3E44 10400009 */ beqz $v0, .L7F0B3E6C
|
|
/* 0E8978 7F0B3E48 00000000 */ nop
|
|
/* 0E897C 7F0B3E4C 0FC2F63C */ jal sub_GAME_7F0BD8F0
|
|
/* 0E8980 7F0B3E50 00000000 */ nop
|
|
/* 0E8984 7F0B3E54 10400005 */ beqz $v0, .L7F0B3E6C
|
|
/* 0E8988 7F0B3E58 02002025 */ move $a0, $s0
|
|
/* 0E898C 7F0B3E5C 8E450000 */ lw $a1, ($s2)
|
|
/* 0E8990 7F0B3E60 0FC0E9BD */ jal chrpropsRenderPass
|
|
/* 0E8994 7F0B3E64 24060002 */ li $a2, 2
|
|
/* 0E8998 7F0B3E68 00408025 */ move $s0, $v0
|
|
.L7F0B3E6C:
|
|
/* 0E899C 7F0B3E6C 3C028004 */ lui $v0, %hi(g_BgNumberOfRoomsDrawn)
|
|
/* 0E89A0 7F0B3E70 8C42483C */ lw $v0, %lo(g_BgNumberOfRoomsDrawn)($v0)
|
|
/* 0E89A4 7F0B3E74 26730001 */ addiu $s3, $s3, 1
|
|
.L7F0B3E78:
|
|
/* 0E89A8 7F0B3E78 0262082A */ slt $at, $s3, $v0
|
|
/* 0E89AC 7F0B3E7C 1420FFB2 */ bnez $at, .L7F0B3D48
|
|
/* 0E89B0 7F0B3E80 2652001C */ addiu $s2, $s2, 0x1c
|
|
.L7F0B3E84:
|
|
/* 0E89B4 7F0B3E84 8FA80044 */ lw $t0, 0x44($sp)
|
|
/* 0E89B8 7F0B3E88 26B50001 */ addiu $s5, $s5, 1
|
|
/* 0E89BC 7F0B3E8C 1515FFAA */ bne $t0, $s5, .L7F0B3D38
|
|
/* 0E89C0 7F0B3E90 00000000 */ nop
|
|
.L7F0B3E94:
|
|
/* 0E89C4 7F0B3E94 3C140103 */ lui $s4, (0x01030040 >> 16) # lui $s4, 0x103
|
|
/* 0E89C8 7F0B3E98 36940040 */ ori $s4, (0x01030040 & 0xFFFF) # ori $s4, $s4, 0x40
|
|
/* 0E89CC 7F0B3E9C 0FC2ECA6 */ jal fogRenderClearFogMode
|
|
/* 0E89D0 7F0B3EA0 02002025 */ move $a0, $s0
|
|
/* 0E89D4 7F0B3EA4 0FC2D3ED */ jal bgScissorCurrentPlayerViewDefault
|
|
/* 0E89D8 7F0B3EA8 00402025 */ move $a0, $v0
|
|
/* 0E89DC 7F0B3EAC 00408825 */ move $s1, $v0
|
|
/* 0E89E0 7F0B3EB0 24500008 */ addiu $s0, $v0, 8
|
|
/* 0E89E4 7F0B3EB4 0FC1E0E5 */ jal get_BONDdata_field_10E0
|
|
/* 0E89E8 7F0B3EB8 AC540000 */ sw $s4, ($v0)
|
|
/* 0E89EC 7F0B3EBC 0C003A2C */ jal osVirtualToPhysical
|
|
/* 0E89F0 7F0B3EC0 00402025 */ move $a0, $v0
|
|
/* 0E89F4 7F0B3EC4 0FC2F63C */ jal sub_GAME_7F0BD8F0
|
|
/* 0E89F8 7F0B3EC8 AE220004 */ sw $v0, 4($s1)
|
|
/* 0E89FC 7F0B3ECC 10400006 */ beqz $v0, .L7F0B3EE8
|
|
/* 0E8A00 7F0B3ED0 00000000 */ nop
|
|
/* 0E8A04 7F0B3ED4 0FC282AD */ jal sub_GAME_7F0A0AB4
|
|
/* 0E8A08 7F0B3ED8 02002025 */ move $a0, $s0
|
|
/* 0E8A0C 7F0B3EDC 0FC2875E */ jal sub_GAME_7F0A1D78
|
|
/* 0E8A10 7F0B3EE0 00402025 */ move $a0, $v0
|
|
/* 0E8A14 7F0B3EE4 00408025 */ move $s0, $v0
|
|
.L7F0B3EE8:
|
|
/* 0E8A18 7F0B3EE8 3C028004 */ lui $v0, %hi(g_BgNumberOfRoomsDrawn)
|
|
/* 0E8A1C 7F0B3EEC 02D7082A */ slt $at, $s6, $s7
|
|
/* 0E8A20 7F0B3EF0 8C42483C */ lw $v0, %lo(g_BgNumberOfRoomsDrawn)($v0)
|
|
/* 0E8A24 7F0B3EF4 14200043 */ bnez $at, .L7F0B4004
|
|
/* 0E8A28 7F0B3EF8 02C0A825 */ move $s5, $s6
|
|
/* 0E8A2C 7F0B3EFC 26F6FFFF */ addiu $s6, $s7, -1
|
|
.L7F0B3F00:
|
|
/* 0E8A30 7F0B3F00 1840003D */ blez $v0, .L7F0B3FF8
|
|
/* 0E8A34 7F0B3F04 00009825 */ move $s3, $zero
|
|
/* 0E8A38 7F0B3F08 3C128008 */ lui $s2, %hi(dword_CODE_bss_8007FFA0)
|
|
/* 0E8A3C 7F0B3F0C 2652FFA0 */ addiu $s2, %lo(dword_CODE_bss_8007FFA0) # addiu $s2, $s2, -0x60
|
|
.L7F0B3F10:
|
|
/* 0E8A40 7F0B3F10 8E490004 */ lw $t1, 4($s2)
|
|
/* 0E8A44 7F0B3F14 02008825 */ move $s1, $s0
|
|
/* 0E8A48 7F0B3F18 56A90034 */ bnel $s5, $t1, .L7F0B3FEC
|
|
/* 0E8A4C 7F0B3F1C 26730001 */ addiu $s3, $s3, 1
|
|
/* 0E8A50 7F0B3F20 26100008 */ addiu $s0, $s0, 8
|
|
/* 0E8A54 7F0B3F24 0FC1E0E5 */ jal get_BONDdata_field_10E0
|
|
/* 0E8A58 7F0B3F28 AE340000 */ sw $s4, ($s1)
|
|
/* 0E8A5C 7F0B3F2C 0C003A2C */ jal osVirtualToPhysical
|
|
/* 0E8A60 7F0B3F30 00402025 */ move $a0, $v0
|
|
/* 0E8A64 7F0B3F34 AE220004 */ sw $v0, 4($s1)
|
|
/* 0E8A68 7F0B3F38 C6460014 */ lwc1 $f6, 0x14($s2)
|
|
/* 0E8A6C 7F0B3F3C 8E470010 */ lw $a3, 0x10($s2)
|
|
/* 0E8A70 7F0B3F40 8E46000C */ lw $a2, 0xc($s2)
|
|
/* 0E8A74 7F0B3F44 8E450008 */ lw $a1, 8($s2)
|
|
/* 0E8A78 7F0B3F48 02002025 */ move $a0, $s0
|
|
/* 0E8A7C 7F0B3F4C 0FC2D3FD */ jal bgScissorCurrentPlayerViewF
|
|
/* 0E8A80 7F0B3F50 E7A60010 */ swc1 $f6, 0x10($sp)
|
|
/* 0E8A84 7F0B3F54 00402025 */ move $a0, $v0
|
|
/* 0E8A88 7F0B3F58 0FC2EC1C */ jal fogSetRenderFogColor
|
|
/* 0E8A8C 7F0B3F5C 24050001 */ li $a1, 1
|
|
/* 0E8A90 7F0B3F60 0FC243D0 */ jal get_debug_do_draw_bg
|
|
/* 0E8A94 7F0B3F64 00408025 */ move $s0, $v0
|
|
/* 0E8A98 7F0B3F68 50400009 */ beql $v0, $zero, .L7F0B3F90
|
|
/* 0E8A9C 7F0B3F6C 02008825 */ move $s1, $s0
|
|
/* 0E8AA0 7F0B3F70 0FC2F63C */ jal sub_GAME_7F0BD8F0
|
|
/* 0E8AA4 7F0B3F74 00000000 */ nop
|
|
/* 0E8AA8 7F0B3F78 10400004 */ beqz $v0, .L7F0B3F8C
|
|
/* 0E8AAC 7F0B3F7C 02002025 */ move $a0, $s0
|
|
/* 0E8AB0 7F0B3F80 0FC2DA26 */ jal sub_GAME_7F0B6898
|
|
/* 0E8AB4 7F0B3F84 8E450000 */ lw $a1, ($s2)
|
|
/* 0E8AB8 7F0B3F88 00408025 */ move $s0, $v0
|
|
.L7F0B3F8C:
|
|
/* 0E8ABC 7F0B3F8C 02008825 */ move $s1, $s0
|
|
.L7F0B3F90:
|
|
/* 0E8AC0 7F0B3F90 AE340000 */ sw $s4, ($s1)
|
|
/* 0E8AC4 7F0B3F94 0FC1E0DD */ jal currentPlayerGetProjectionMatrix
|
|
/* 0E8AC8 7F0B3F98 26100008 */ addiu $s0, $s0, 8
|
|
/* 0E8ACC 7F0B3F9C 0C003A2C */ jal osVirtualToPhysical
|
|
/* 0E8AD0 7F0B3FA0 00402025 */ move $a0, $v0
|
|
/* 0E8AD4 7F0B3FA4 AE220004 */ sw $v0, 4($s1)
|
|
/* 0E8AD8 7F0B3FA8 0FC2ECA6 */ jal fogRenderClearFogMode
|
|
/* 0E8ADC 7F0B3FAC 02002025 */ move $a0, $s0
|
|
/* 0E8AE0 7F0B3FB0 0FC243D3 */ jal get_debug_do_draw_obj
|
|
/* 0E8AE4 7F0B3FB4 00408025 */ move $s0, $v0
|
|
/* 0E8AE8 7F0B3FB8 10400009 */ beqz $v0, .L7F0B3FE0
|
|
/* 0E8AEC 7F0B3FBC 00000000 */ nop
|
|
/* 0E8AF0 7F0B3FC0 0FC2F63C */ jal sub_GAME_7F0BD8F0
|
|
/* 0E8AF4 7F0B3FC4 00000000 */ nop
|
|
/* 0E8AF8 7F0B3FC8 10400005 */ beqz $v0, .L7F0B3FE0
|
|
/* 0E8AFC 7F0B3FCC 02002025 */ move $a0, $s0
|
|
/* 0E8B00 7F0B3FD0 8E450000 */ lw $a1, ($s2)
|
|
/* 0E8B04 7F0B3FD4 0FC0E9BD */ jal chrpropsRenderPass
|
|
/* 0E8B08 7F0B3FD8 24060001 */ li $a2, 1
|
|
/* 0E8B0C 7F0B3FDC 00408025 */ move $s0, $v0
|
|
.L7F0B3FE0:
|
|
/* 0E8B10 7F0B3FE0 3C028004 */ lui $v0, %hi(g_BgNumberOfRoomsDrawn)
|
|
/* 0E8B14 7F0B3FE4 8C42483C */ lw $v0, %lo(g_BgNumberOfRoomsDrawn)($v0)
|
|
/* 0E8B18 7F0B3FE8 26730001 */ addiu $s3, $s3, 1
|
|
.L7F0B3FEC:
|
|
/* 0E8B1C 7F0B3FEC 0262082A */ slt $at, $s3, $v0
|
|
/* 0E8B20 7F0B3FF0 1420FFC7 */ bnez $at, .L7F0B3F10
|
|
/* 0E8B24 7F0B3FF4 2652001C */ addiu $s2, $s2, 0x1c
|
|
.L7F0B3FF8:
|
|
/* 0E8B28 7F0B3FF8 26B5FFFF */ addiu $s5, $s5, -1
|
|
/* 0E8B2C 7F0B3FFC 16B6FFC0 */ bne $s5, $s6, .L7F0B3F00
|
|
/* 0E8B30 7F0B4000 00000000 */ nop
|
|
.L7F0B4004:
|
|
/* 0E8B34 7F0B4004 8FBF003C */ lw $ra, 0x3c($sp)
|
|
/* 0E8B38 7F0B4008 02001025 */ move $v0, $s0
|
|
/* 0E8B3C 7F0B400C 8FB0001C */ lw $s0, 0x1c($sp)
|
|
/* 0E8B40 7F0B4010 8FB10020 */ lw $s1, 0x20($sp)
|
|
/* 0E8B44 7F0B4014 8FB20024 */ lw $s2, 0x24($sp)
|
|
/* 0E8B48 7F0B4018 8FB30028 */ lw $s3, 0x28($sp)
|
|
/* 0E8B4C 7F0B401C 8FB4002C */ lw $s4, 0x2c($sp)
|
|
/* 0E8B50 7F0B4020 8FB50030 */ lw $s5, 0x30($sp)
|
|
/* 0E8B54 7F0B4024 8FB60034 */ lw $s6, 0x34($sp)
|
|
/* 0E8B58 7F0B4028 8FB70038 */ lw $s7, 0x38($sp)
|
|
/* 0E8B5C 7F0B402C 03E00008 */ jr $ra
|
|
/* 0E8B60 7F0B4030 27BD0080 */ addiu $sp, $sp, 0x80
|
|
)
|
|
#endif
|
|
|
|
#if !defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B3C8C
|
|
/* 0E5994 7F0B2FA4 27BDFFC0 */ addiu $sp, $sp, -0x40
|
|
/* 0E5998 7F0B2FA8 3C028004 */ lui $v0, %hi(g_BgNumberOfRoomsDrawn) # $v0, 0x8004
|
|
/* 0E599C 7F0B2FAC 8C42DD1C */ lw $v0, %lo(g_BgNumberOfRoomsDrawn)($v0)
|
|
/* 0E59A0 7F0B2FB0 AFB70038 */ sw $s7, 0x38($sp)
|
|
/* 0E59A4 7F0B2FB4 AFB60034 */ sw $s6, 0x34($sp)
|
|
/* 0E59A8 7F0B2FB8 AFB0001C */ sw $s0, 0x1c($sp)
|
|
/* 0E59AC 7F0B2FBC 00808025 */ move $s0, $a0
|
|
/* 0E59B0 7F0B2FC0 AFBF003C */ sw $ra, 0x3c($sp)
|
|
/* 0E59B4 7F0B2FC4 AFB50030 */ sw $s5, 0x30($sp)
|
|
/* 0E59B8 7F0B2FC8 AFB4002C */ sw $s4, 0x2c($sp)
|
|
/* 0E59BC 7F0B2FCC AFB30028 */ sw $s3, 0x28($sp)
|
|
/* 0E59C0 7F0B2FD0 AFB20024 */ sw $s2, 0x24($sp)
|
|
/* 0E59C4 7F0B2FD4 AFB10020 */ sw $s1, 0x20($sp)
|
|
/* 0E59C8 7F0B2FD8 0000B025 */ move $s6, $zero
|
|
/* 0E59CC 7F0B2FDC 18400018 */ blez $v0, .L7F0B3040
|
|
/* 0E59D0 7F0B2FE0 24177FFF */ li $s7, 32767
|
|
/* 0E59D4 7F0B2FE4 00027880 */ sll $t7, $v0, 2
|
|
/* 0E59D8 7F0B2FE8 01E27823 */ subu $t7, $t7, $v0
|
|
/* 0E59DC 7F0B2FEC 3C0E8007 */ lui $t6, %hi(dword_CODE_bss_8007FFA0)
|
|
/* 0E59E0 7F0B2FF0 25D2B3E0 */ addiu $s2, $t6, %lo(dword_CODE_bss_8007FFA0)
|
|
/* 0E59E4 7F0B2FF4 000F78C0 */ sll $t7, $t7, 3
|
|
/* 0E59E8 7F0B2FF8 01F22021 */ addu $a0, $t7, $s2
|
|
/* 0E59EC 7F0B2FFC 86430002 */ lh $v1, 2($s2)
|
|
.L7F0B3000:
|
|
/* 0E59F0 7F0B3000 26520018 */ addiu $s2, $s2, 0x18
|
|
/* 0E59F4 7F0B3004 02C3082A */ slt $at, $s6, $v1
|
|
/* 0E59F8 7F0B3008 50200005 */ beql $at, $zero, .L7F0B3020
|
|
/* 0E59FC 7F0B300C 0077082A */ slt $at, $v1, $s7
|
|
/* 0E5A00 7F0B3010 0003B400 */ sll $s6, $v1, 0x10
|
|
/* 0E5A04 7F0B3014 0016C403 */ sra $t8, $s6, 0x10
|
|
/* 0E5A08 7F0B3018 0300B025 */ move $s6, $t8
|
|
/* 0E5A0C 7F0B301C 0077082A */ slt $at, $v1, $s7
|
|
.L7F0B3020:
|
|
/* 0E5A10 7F0B3020 50200005 */ beql $at, $zero, .L7F0B3038
|
|
/* 0E5A14 7F0B3024 0244082B */ sltu $at, $s2, $a0
|
|
/* 0E5A18 7F0B3028 0003BC00 */ sll $s7, $v1, 0x10
|
|
/* 0E5A1C 7F0B302C 0017CC03 */ sra $t9, $s7, 0x10
|
|
/* 0E5A20 7F0B3030 0320B825 */ move $s7, $t9
|
|
/* 0E5A24 7F0B3034 0244082B */ sltu $at, $s2, $a0
|
|
.L7F0B3038:
|
|
/* 0E5A28 7F0B3038 5420FFF1 */ bnezl $at, .L7F0B3000
|
|
/* 0E5A2C 7F0B303C 86430002 */ lh $v1, 2($s2)
|
|
.L7F0B3040:
|
|
/* 0E5A30 7F0B3040 0017AC00 */ sll $s5, $s7, 0x10
|
|
/* 0E5A34 7F0B3044 00154403 */ sra $t0, $s5, 0x10
|
|
/* 0E5A38 7F0B3048 02D7082A */ slt $at, $s6, $s7
|
|
/* 0E5A3C 7F0B304C 1420005C */ bnez $at, .L7F0B31C0
|
|
/* 0E5A40 7F0B3050 0100A825 */ move $s5, $t0
|
|
/* 0E5A44 7F0B3054 3C140103 */ lui $s4, (0x01030040 >> 16) # lui $s4, 0x103
|
|
/* 0E5A48 7F0B3058 36940040 */ ori $s4, (0x01030040 & 0xFFFF) # ori $s4, $s4, 0x40
|
|
.L7F0B305C:
|
|
/* 0E5A4C 7F0B305C 18400052 */ blez $v0, .L7F0B31A8
|
|
/* 0E5A50 7F0B3060 00009825 */ move $s3, $zero
|
|
/* 0E5A54 7F0B3064 3C128007 */ lui $s2, %hi(dword_CODE_bss_8007FFA0) # $s2, 0x8007
|
|
/* 0E5A58 7F0B3068 2652B3E0 */ addiu $s2, %lo(dword_CODE_bss_8007FFA0) # addiu $s2, $s2, -0x4c20
|
|
.L7F0B306C:
|
|
/* 0E5A5C 7F0B306C 86490002 */ lh $t1, 2($s2)
|
|
/* 0E5A60 7F0B3070 02008825 */ move $s1, $s0
|
|
/* 0E5A64 7F0B3074 56A90049 */ bnel $s5, $t1, .L7F0B319C
|
|
/* 0E5A68 7F0B3078 26730001 */ addiu $s3, $s3, 1
|
|
/* 0E5A6C 7F0B307C 26100008 */ addiu $s0, $s0, 8
|
|
/* 0E5A70 7F0B3080 0FC1E0FD */ jal currentPlayerGetProjectionMatrix
|
|
/* 0E5A74 7F0B3084 AE340000 */ sw $s4, ($s1)
|
|
/* 0E5A78 7F0B3088 0C003838 */ jal osVirtualToPhysical
|
|
/* 0E5A7C 7F0B308C 00402025 */ move $a0, $v0
|
|
/* 0E5A80 7F0B3090 AE220004 */ sw $v0, 4($s1)
|
|
/* 0E5A84 7F0B3094 0FC2E9A6 */ jal fogRenderClearFogMode
|
|
/* 0E5A88 7F0B3098 02002025 */ move $a0, $s0
|
|
/* 0E5A8C 7F0B309C 0FC24104 */ jal get_debug_do_draw_obj
|
|
/* 0E5A90 7F0B30A0 00408025 */ move $s0, $v0
|
|
/* 0E5A94 7F0B30A4 5040000A */ beql $v0, $zero, .L7F0B30D0
|
|
/* 0E5A98 7F0B30A8 02008825 */ move $s1, $s0
|
|
/* 0E5A9C 7F0B30AC 0FC2F328 */ jal sub_GAME_7F0BD8F0
|
|
/* 0E5AA0 7F0B30B0 00000000 */ nop
|
|
/* 0E5AA4 7F0B30B4 10400005 */ beqz $v0, .L7F0B30CC
|
|
/* 0E5AA8 7F0B30B8 02002025 */ move $a0, $s0
|
|
/* 0E5AAC 7F0B30BC 92450000 */ lbu $a1, ($s2)
|
|
/* 0E5AB0 7F0B30C0 0FC0E9ED */ jal chrpropsRenderPass
|
|
/* 0E5AB4 7F0B30C4 00003025 */ move $a2, $zero
|
|
/* 0E5AB8 7F0B30C8 00408025 */ move $s0, $v0
|
|
.L7F0B30CC:
|
|
/* 0E5ABC 7F0B30CC 02008825 */ move $s1, $s0
|
|
.L7F0B30D0:
|
|
/* 0E5AC0 7F0B30D0 AE340000 */ sw $s4, ($s1)
|
|
/* 0E5AC4 7F0B30D4 0FC1E105 */ jal get_BONDdata_field_10E0
|
|
/* 0E5AC8 7F0B30D8 26100008 */ addiu $s0, $s0, 8
|
|
/* 0E5ACC 7F0B30DC 0C003838 */ jal osVirtualToPhysical
|
|
/* 0E5AD0 7F0B30E0 00402025 */ move $a0, $v0
|
|
/* 0E5AD4 7F0B30E4 AE220004 */ sw $v0, 4($s1)
|
|
/* 0E5AD8 7F0B30E8 C6440014 */ lwc1 $f4, 0x14($s2)
|
|
/* 0E5ADC 7F0B30EC 8E470010 */ lw $a3, 0x10($s2)
|
|
/* 0E5AE0 7F0B30F0 8E46000C */ lw $a2, 0xc($s2)
|
|
/* 0E5AE4 7F0B30F4 8E450008 */ lw $a1, 8($s2)
|
|
/* 0E5AE8 7F0B30F8 02002025 */ move $a0, $s0
|
|
/* 0E5AEC 7F0B30FC 0FC2D0CC */ jal bgScissorCurrentPlayerViewF
|
|
/* 0E5AF0 7F0B3100 E7A40010 */ swc1 $f4, 0x10($sp)
|
|
/* 0E5AF4 7F0B3104 00402025 */ move $a0, $v0
|
|
/* 0E5AF8 7F0B3108 0FC2E91C */ jal fogSetRenderFogColor
|
|
/* 0E5AFC 7F0B310C 00002825 */ move $a1, $zero
|
|
/* 0E5B00 7F0B3110 0FC24102 */ jal get_debug_do_draw_bg
|
|
/* 0E5B04 7F0B3114 00408025 */ move $s0, $v0
|
|
/* 0E5B08 7F0B3118 50400009 */ beql $v0, $zero, .L7F0B3140
|
|
/* 0E5B0C 7F0B311C 02008825 */ move $s1, $s0
|
|
/* 0E5B10 7F0B3120 0FC2F328 */ jal sub_GAME_7F0BD8F0
|
|
/* 0E5B14 7F0B3124 00000000 */ nop
|
|
/* 0E5B18 7F0B3128 10400004 */ beqz $v0, .L7F0B313C
|
|
/* 0E5B1C 7F0B312C 02002025 */ move $a0, $s0
|
|
/* 0E5B20 7F0B3130 0FC2D6AE */ jal sub_GAME_7F0B677C
|
|
/* 0E5B24 7F0B3134 92450000 */ lbu $a1, ($s2)
|
|
/* 0E5B28 7F0B3138 00408025 */ move $s0, $v0
|
|
.L7F0B313C:
|
|
/* 0E5B2C 7F0B313C 02008825 */ move $s1, $s0
|
|
.L7F0B3140:
|
|
/* 0E5B30 7F0B3140 AE340000 */ sw $s4, ($s1)
|
|
/* 0E5B34 7F0B3144 0FC1E0FD */ jal currentPlayerGetProjectionMatrix
|
|
/* 0E5B38 7F0B3148 26100008 */ addiu $s0, $s0, 8
|
|
/* 0E5B3C 7F0B314C 0C003838 */ jal osVirtualToPhysical
|
|
/* 0E5B40 7F0B3150 00402025 */ move $a0, $v0
|
|
/* 0E5B44 7F0B3154 AE220004 */ sw $v0, 4($s1)
|
|
/* 0E5B48 7F0B3158 0FC2E9A6 */ jal fogRenderClearFogMode
|
|
/* 0E5B4C 7F0B315C 02002025 */ move $a0, $s0
|
|
/* 0E5B50 7F0B3160 0FC24104 */ jal get_debug_do_draw_obj
|
|
/* 0E5B54 7F0B3164 00408025 */ move $s0, $v0
|
|
/* 0E5B58 7F0B3168 10400009 */ beqz $v0, .L7F0B3190
|
|
/* 0E5B5C 7F0B316C 00000000 */ nop
|
|
/* 0E5B60 7F0B3170 0FC2F328 */ jal sub_GAME_7F0BD8F0
|
|
/* 0E5B64 7F0B3174 00000000 */ nop
|
|
/* 0E5B68 7F0B3178 10400005 */ beqz $v0, .L7F0B3190
|
|
/* 0E5B6C 7F0B317C 02002025 */ move $a0, $s0
|
|
/* 0E5B70 7F0B3180 92450000 */ lbu $a1, ($s2)
|
|
/* 0E5B74 7F0B3184 0FC0E9ED */ jal chrpropsRenderPass
|
|
/* 0E5B78 7F0B3188 24060002 */ li $a2, 2
|
|
/* 0E5B7C 7F0B318C 00408025 */ move $s0, $v0
|
|
.L7F0B3190:
|
|
/* 0E5B80 7F0B3190 3C028004 */ lui $v0, %hi(g_BgNumberOfRoomsDrawn) # $v0, 0x8004
|
|
/* 0E5B84 7F0B3194 8C42DD1C */ lw $v0, %lo(g_BgNumberOfRoomsDrawn)($v0)
|
|
/* 0E5B88 7F0B3198 26730001 */ addiu $s3, $s3, 1
|
|
.L7F0B319C:
|
|
/* 0E5B8C 7F0B319C 0262082A */ slt $at, $s3, $v0
|
|
/* 0E5B90 7F0B31A0 1420FFB2 */ bnez $at, .L7F0B306C
|
|
/* 0E5B94 7F0B31A4 26520018 */ addiu $s2, $s2, 0x18
|
|
.L7F0B31A8:
|
|
/* 0E5B98 7F0B31A8 26B50001 */ addiu $s5, $s5, 1
|
|
/* 0E5B9C 7F0B31AC 00155400 */ sll $t2, $s5, 0x10
|
|
/* 0E5BA0 7F0B31B0 000AAC03 */ sra $s5, $t2, 0x10
|
|
/* 0E5BA4 7F0B31B4 02D5082A */ slt $at, $s6, $s5
|
|
/* 0E5BA8 7F0B31B8 1020FFA8 */ beqz $at, .L7F0B305C
|
|
/* 0E5BAC 7F0B31BC 00000000 */ nop
|
|
.L7F0B31C0:
|
|
/* 0E5BB0 7F0B31C0 3C140103 */ lui $s4, (0x01030040 >> 16) # lui $s4, 0x103
|
|
/* 0E5BB4 7F0B31C4 36940040 */ ori $s4, (0x01030040 & 0xFFFF) # ori $s4, $s4, 0x40
|
|
/* 0E5BB8 7F0B31C8 0FC2E9A6 */ jal fogRenderClearFogMode
|
|
/* 0E5BBC 7F0B31CC 02002025 */ move $a0, $s0
|
|
/* 0E5BC0 7F0B31D0 0FC2D0BC */ jal bgScissorCurrentPlayerViewDefault
|
|
/* 0E5BC4 7F0B31D4 00402025 */ move $a0, $v0
|
|
/* 0E5BC8 7F0B31D8 00408825 */ move $s1, $v0
|
|
/* 0E5BCC 7F0B31DC 24500008 */ addiu $s0, $v0, 8
|
|
/* 0E5BD0 7F0B31E0 0FC1E105 */ jal get_BONDdata_field_10E0
|
|
/* 0E5BD4 7F0B31E4 AC540000 */ sw $s4, ($v0)
|
|
/* 0E5BD8 7F0B31E8 0C003838 */ jal osVirtualToPhysical
|
|
/* 0E5BDC 7F0B31EC 00402025 */ move $a0, $v0
|
|
/* 0E5BE0 7F0B31F0 0FC2F328 */ jal sub_GAME_7F0BD8F0
|
|
/* 0E5BE4 7F0B31F4 AE220004 */ sw $v0, 4($s1)
|
|
/* 0E5BE8 7F0B31F8 50400007 */ beql $v0, $zero, .L7F0B3218
|
|
/* 0E5BEC 7F0B31FC 0016AC00 */ sll $s5, $s6, 0x10
|
|
/* 0E5BF0 7F0B3200 0FC27FFE */ jal sub_GAME_7F0A0AB4
|
|
/* 0E5BF4 7F0B3204 02002025 */ move $a0, $s0
|
|
/* 0E5BF8 7F0B3208 0FC284AF */ jal sub_GAME_7F0A1D78
|
|
/* 0E5BFC 7F0B320C 00402025 */ move $a0, $v0
|
|
/* 0E5C00 7F0B3210 00408025 */ move $s0, $v0
|
|
/* 0E5C04 7F0B3214 0016AC00 */ sll $s5, $s6, 0x10
|
|
.L7F0B3218:
|
|
/* 0E5C08 7F0B3218 3C028004 */ lui $v0, %hi(g_BgNumberOfRoomsDrawn) # $v0, 0x8004
|
|
/* 0E5C0C 7F0B321C 00156403 */ sra $t4, $s5, 0x10
|
|
/* 0E5C10 7F0B3220 02D7082A */ slt $at, $s6, $s7
|
|
/* 0E5C14 7F0B3224 8C42DD1C */ lw $v0, %lo(g_BgNumberOfRoomsDrawn)($v0)
|
|
/* 0E5C18 7F0B3228 14200045 */ bnez $at, .L7F0B3340
|
|
/* 0E5C1C 7F0B322C 0180A825 */ move $s5, $t4
|
|
.L7F0B3230:
|
|
/* 0E5C20 7F0B3230 1840003D */ blez $v0, .L7F0B3328
|
|
/* 0E5C24 7F0B3234 00009825 */ move $s3, $zero
|
|
/* 0E5C28 7F0B3238 3C128007 */ lui $s2, %hi(dword_CODE_bss_8007FFA0) # $s2, 0x8007
|
|
/* 0E5C2C 7F0B323C 2652B3E0 */ addiu $s2, %lo(dword_CODE_bss_8007FFA0) # addiu $s2, $s2, -0x4c20
|
|
.L7F0B3240:
|
|
/* 0E5C30 7F0B3240 864D0002 */ lh $t5, 2($s2)
|
|
/* 0E5C34 7F0B3244 02008825 */ move $s1, $s0
|
|
/* 0E5C38 7F0B3248 56AD0034 */ bnel $s5, $t5, .L7F0B331C
|
|
/* 0E5C3C 7F0B324C 26730001 */ addiu $s3, $s3, 1
|
|
/* 0E5C40 7F0B3250 26100008 */ addiu $s0, $s0, 8
|
|
/* 0E5C44 7F0B3254 0FC1E105 */ jal get_BONDdata_field_10E0
|
|
/* 0E5C48 7F0B3258 AE340000 */ sw $s4, ($s1)
|
|
/* 0E5C4C 7F0B325C 0C003838 */ jal osVirtualToPhysical
|
|
/* 0E5C50 7F0B3260 00402025 */ move $a0, $v0
|
|
/* 0E5C54 7F0B3264 AE220004 */ sw $v0, 4($s1)
|
|
/* 0E5C58 7F0B3268 C6460014 */ lwc1 $f6, 0x14($s2)
|
|
/* 0E5C5C 7F0B326C 8E470010 */ lw $a3, 0x10($s2)
|
|
/* 0E5C60 7F0B3270 8E46000C */ lw $a2, 0xc($s2)
|
|
/* 0E5C64 7F0B3274 8E450008 */ lw $a1, 8($s2)
|
|
/* 0E5C68 7F0B3278 02002025 */ move $a0, $s0
|
|
/* 0E5C6C 7F0B327C 0FC2D0CC */ jal bgScissorCurrentPlayerViewF
|
|
/* 0E5C70 7F0B3280 E7A60010 */ swc1 $f6, 0x10($sp)
|
|
/* 0E5C74 7F0B3284 00402025 */ move $a0, $v0
|
|
/* 0E5C78 7F0B3288 0FC2E91C */ jal fogSetRenderFogColor
|
|
/* 0E5C7C 7F0B328C 24050001 */ li $a1, 1
|
|
/* 0E5C80 7F0B3290 0FC24102 */ jal get_debug_do_draw_bg
|
|
/* 0E5C84 7F0B3294 00408025 */ move $s0, $v0
|
|
/* 0E5C88 7F0B3298 50400009 */ beql $v0, $zero, .L7F0B32C0
|
|
/* 0E5C8C 7F0B329C 02008825 */ move $s1, $s0
|
|
/* 0E5C90 7F0B32A0 0FC2F328 */ jal sub_GAME_7F0BD8F0
|
|
/* 0E5C94 7F0B32A4 00000000 */ nop
|
|
/* 0E5C98 7F0B32A8 10400004 */ beqz $v0, .L7F0B32BC
|
|
/* 0E5C9C 7F0B32AC 02002025 */ move $a0, $s0
|
|
/* 0E5CA0 7F0B32B0 0FC2D6F5 */ jal sub_GAME_7F0B6898
|
|
/* 0E5CA4 7F0B32B4 92450000 */ lbu $a1, ($s2)
|
|
/* 0E5CA8 7F0B32B8 00408025 */ move $s0, $v0
|
|
.L7F0B32BC:
|
|
/* 0E5CAC 7F0B32BC 02008825 */ move $s1, $s0
|
|
.L7F0B32C0:
|
|
/* 0E5CB0 7F0B32C0 AE340000 */ sw $s4, ($s1)
|
|
/* 0E5CB4 7F0B32C4 0FC1E0FD */ jal currentPlayerGetProjectionMatrix
|
|
/* 0E5CB8 7F0B32C8 26100008 */ addiu $s0, $s0, 8
|
|
/* 0E5CBC 7F0B32CC 0C003838 */ jal osVirtualToPhysical
|
|
/* 0E5CC0 7F0B32D0 00402025 */ move $a0, $v0
|
|
/* 0E5CC4 7F0B32D4 AE220004 */ sw $v0, 4($s1)
|
|
/* 0E5CC8 7F0B32D8 0FC2E9A6 */ jal fogRenderClearFogMode
|
|
/* 0E5CCC 7F0B32DC 02002025 */ move $a0, $s0
|
|
/* 0E5CD0 7F0B32E0 0FC24104 */ jal get_debug_do_draw_obj
|
|
/* 0E5CD4 7F0B32E4 00408025 */ move $s0, $v0
|
|
/* 0E5CD8 7F0B32E8 10400009 */ beqz $v0, .L7F0B3310
|
|
/* 0E5CDC 7F0B32EC 00000000 */ nop
|
|
/* 0E5CE0 7F0B32F0 0FC2F328 */ jal sub_GAME_7F0BD8F0
|
|
/* 0E5CE4 7F0B32F4 00000000 */ nop
|
|
/* 0E5CE8 7F0B32F8 10400005 */ beqz $v0, .L7F0B3310
|
|
/* 0E5CEC 7F0B32FC 02002025 */ move $a0, $s0
|
|
/* 0E5CF0 7F0B3300 92450000 */ lbu $a1, ($s2)
|
|
/* 0E5CF4 7F0B3304 0FC0E9ED */ jal chrpropsRenderPass
|
|
/* 0E5CF8 7F0B3308 24060001 */ li $a2, 1
|
|
/* 0E5CFC 7F0B330C 00408025 */ move $s0, $v0
|
|
.L7F0B3310:
|
|
/* 0E5D00 7F0B3310 3C028004 */ lui $v0, %hi(g_BgNumberOfRoomsDrawn) # $v0, 0x8004
|
|
/* 0E5D04 7F0B3314 8C42DD1C */ lw $v0, %lo(g_BgNumberOfRoomsDrawn)($v0)
|
|
/* 0E5D08 7F0B3318 26730001 */ addiu $s3, $s3, 1
|
|
.L7F0B331C:
|
|
/* 0E5D0C 7F0B331C 0262082A */ slt $at, $s3, $v0
|
|
/* 0E5D10 7F0B3320 1420FFC7 */ bnez $at, .L7F0B3240
|
|
/* 0E5D14 7F0B3324 26520018 */ addiu $s2, $s2, 0x18
|
|
.L7F0B3328:
|
|
/* 0E5D18 7F0B3328 26B5FFFF */ addiu $s5, $s5, -1
|
|
/* 0E5D1C 7F0B332C 00157C00 */ sll $t7, $s5, 0x10
|
|
/* 0E5D20 7F0B3330 000FAC03 */ sra $s5, $t7, 0x10
|
|
/* 0E5D24 7F0B3334 02B7082A */ slt $at, $s5, $s7
|
|
/* 0E5D28 7F0B3338 1020FFBD */ beqz $at, .L7F0B3230
|
|
/* 0E5D2C 7F0B333C 00000000 */ nop
|
|
.L7F0B3340:
|
|
/* 0E5D30 7F0B3340 8FBF003C */ lw $ra, 0x3c($sp)
|
|
/* 0E5D34 7F0B3344 02001025 */ move $v0, $s0
|
|
/* 0E5D38 7F0B3348 8FB0001C */ lw $s0, 0x1c($sp)
|
|
/* 0E5D3C 7F0B334C 8FB10020 */ lw $s1, 0x20($sp)
|
|
/* 0E5D40 7F0B3350 8FB20024 */ lw $s2, 0x24($sp)
|
|
/* 0E5D44 7F0B3354 8FB30028 */ lw $s3, 0x28($sp)
|
|
/* 0E5D48 7F0B3358 8FB4002C */ lw $s4, 0x2c($sp)
|
|
/* 0E5D4C 7F0B335C 8FB50030 */ lw $s5, 0x30($sp)
|
|
/* 0E5D50 7F0B3360 8FB60034 */ lw $s6, 0x34($sp)
|
|
/* 0E5D54 7F0B3364 8FB70038 */ lw $s7, 0x38($sp)
|
|
/* 0E5D58 7F0B3368 03E00008 */ jr $ra
|
|
/* 0E5D5C 7F0B336C 27BD0040 */ addiu $sp, $sp, 0x40
|
|
)
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
s32 sub_GAME_7F0B4034(s32 room)
|
|
{
|
|
int i = room;
|
|
while (ptr_bgdata_room_fileposition_list[i].pPriMappingBin == 0)
|
|
{
|
|
i++;
|
|
}
|
|
return i;
|
|
}
|
|
|
|
|
|
s32 sub_GAME_7F0B4084(s32 room)
|
|
{
|
|
int i = room;
|
|
while (ptr_bgdata_room_fileposition_list[i].pSecMappingBin == 0)
|
|
{
|
|
i++;
|
|
}
|
|
return i;
|
|
}
|
|
|
|
|
|
s32 sub_GAME_7F0B40D4(s32 room)
|
|
{
|
|
int i = room;
|
|
while (ptr_bgdata_room_fileposition_list[i].pPointTableBin == 0)
|
|
{
|
|
i++;
|
|
}
|
|
return i;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
void load_bg_file(LEVEL_INDEX stagenum)
|
|
{
|
|
|
|
}
|
|
#else
|
|
|
|
#if defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel load_bg_file
|
|
/* 0E8C54 7F0B4124 27BDFF48 */ addiu $sp, $sp, -0xb8
|
|
/* 0E8C58 7F0B4128 AFB20020 */ sw $s2, 0x20($sp)
|
|
/* 0E8C5C 7F0B412C 3C128004 */ lui $s2, %hi(levelentry_index)
|
|
/* 0E8C60 7F0B4130 AFB00018 */ sw $s0, 0x18($sp)
|
|
/* 0E8C64 7F0B4134 26521400 */ addiu $s2, %lo(levelentry_index) # addiu $s2, $s2, 0x1400
|
|
/* 0E8C68 7F0B4138 3C108004 */ lui $s0, %hi(array_room_info)
|
|
/* 0E8C6C 7F0B413C 3C028004 */ lui $v0, %hi(MaxNumRooms)
|
|
/* 0E8C70 7F0B4140 AFBF003C */ sw $ra, 0x3c($sp)
|
|
/* 0E8C74 7F0B4144 AFBE0038 */ sw $fp, 0x38($sp)
|
|
/* 0E8C78 7F0B4148 AFB70034 */ sw $s7, 0x34($sp)
|
|
/* 0E8C7C 7F0B414C AFB60030 */ sw $s6, 0x30($sp)
|
|
/* 0E8C80 7F0B4150 AFB5002C */ sw $s5, 0x2c($sp)
|
|
/* 0E8C84 7F0B4154 AFB40028 */ sw $s4, 0x28($sp)
|
|
/* 0E8C88 7F0B4158 AFB30024 */ sw $s3, 0x24($sp)
|
|
/* 0E8C8C 7F0B415C AFB1001C */ sw $s1, 0x1c($sp)
|
|
/* 0E8C90 7F0B4160 AE400000 */ sw $zero, ($s2)
|
|
/* 0E8C94 7F0B4164 244242F4 */ addiu $v0, %lo(MaxNumRooms) # addiu $v0, $v0, 0x42f4
|
|
/* 0E8C98 7F0B4168 26101414 */ addiu $s0, %lo(array_room_info) # addiu $s0, $s0, 0x1414
|
|
.L7F0B416C:
|
|
/* 0E8C9C 7F0B416C 26100050 */ addiu $s0, $s0, 0x50
|
|
/* 0E8CA0 7F0B4170 0202082B */ sltu $at, $s0, $v0
|
|
/* 0E8CA4 7F0B4174 1420FFFD */ bnez $at, .L7F0B416C
|
|
/* 0E8CA8 7F0B4178 AE00FFDC */ sw $zero, -0x24($s0)
|
|
/* 0E8CAC 7F0B417C 3C028004 */ lui $v0, %hi(levelinfotable)
|
|
/* 0E8CB0 7F0B4180 2442448C */ addiu $v0, %lo(levelinfotable) # addiu $v0, $v0, 0x448c
|
|
/* 0E8CB4 7F0B4184 00008825 */ move $s1, $zero
|
|
.L7F0B4188:
|
|
/* 0E8CB8 7F0B4188 8C4E0000 */ lw $t6, ($v0)
|
|
/* 0E8CBC 7F0B418C 548E0003 */ bnel $a0, $t6, .L7F0B419C
|
|
/* 0E8CC0 7F0B4190 26310001 */ addiu $s1, $s1, 1
|
|
/* 0E8CC4 7F0B4194 AE510000 */ sw $s1, ($s2)
|
|
/* 0E8CC8 7F0B4198 26310001 */ addiu $s1, $s1, 1
|
|
.L7F0B419C:
|
|
/* 0E8CCC 7F0B419C 2A210026 */ slti $at, $s1, 0x26
|
|
/* 0E8CD0 7F0B41A0 1420FFF9 */ bnez $at, .L7F0B4188
|
|
/* 0E8CD4 7F0B41A4 24420018 */ addiu $v0, $v0, 0x18
|
|
/* 0E8CD8 7F0B41A8 0FC2ED34 */ jal init_lightfixture_tables
|
|
/* 0E8CDC 7F0B41AC AFA400B8 */ sw $a0, 0xb8($sp)
|
|
/* 0E8CE0 7F0B41B0 8E580000 */ lw $t8, ($s2)
|
|
/* 0E8CE4 7F0B41B4 24140018 */ li $s4, 24
|
|
/* 0E8CE8 7F0B41B8 3C118004 */ lui $s1, %hi(levelinfotable)
|
|
/* 0E8CEC 7F0B41BC 03140019 */ multu $t8, $s4
|
|
/* 0E8CF0 7F0B41C0 2631448C */ addiu $s1, %lo(levelinfotable) # addiu $s1, $s1, 0x448c
|
|
/* 0E8CF4 7F0B41C4 3C178008 */ lui $s7, %hi(ptr_bg_data)
|
|
/* 0E8CF8 7F0B41C8 26F7BF90 */ addiu $s7, %lo(ptr_bg_data) # addiu $s7, $s7, -0x4070
|
|
/* 0E8CFC 7F0B41CC 27A50070 */ addiu $a1, $sp, 0x70
|
|
/* 0E8D00 7F0B41D0 AEE50000 */ sw $a1, ($s7)
|
|
/* 0E8D04 7F0B41D4 00003025 */ move $a2, $zero
|
|
/* 0E8D08 7F0B41D8 24070040 */ li $a3, 64
|
|
/* 0E8D0C 7F0B41DC 0000C812 */ mflo $t9
|
|
/* 0E8D10 7F0B41E0 02394021 */ addu $t0, $s1, $t9
|
|
/* 0E8D14 7F0B41E4 0FC2F35F */ jal obLoadBGFileBytesAtOffset
|
|
/* 0E8D18 7F0B41E8 8D040004 */ lw $a0, 4($t0)
|
|
/* 0E8D1C 7F0B41EC 8EE20000 */ lw $v0, ($s7)
|
|
/* 0E8D20 7F0B41F0 3C168008 */ lui $s6, %hi(ptr_bgdata_offsets)
|
|
/* 0E8D24 7F0B41F4 26D6FF84 */ addiu $s6, %lo(ptr_bgdata_offsets) # addiu $s6, $s6, -0x7c
|
|
/* 0E8D28 7F0B41F8 AEC20000 */ sw $v0, ($s6)
|
|
/* 0E8D2C 7F0B41FC 8C4A0004 */ lw $t2, 4($v0)
|
|
/* 0E8D30 7F0B4200 3C13F100 */ lui $s3, 0xf100
|
|
/* 0E8D34 7F0B4204 3C158008 */ lui $s5, %hi(ptr_bgdata_room_fileposition_list)
|
|
/* 0E8D38 7F0B4208 01425821 */ addu $t3, $t2, $v0
|
|
/* 0E8D3C 7F0B420C 26B5FF8C */ addiu $s5, %lo(ptr_bgdata_room_fileposition_list) # addiu $s5, $s5, -0x74
|
|
/* 0E8D40 7F0B4210 01736021 */ addu $t4, $t3, $s3
|
|
/* 0E8D44 7F0B4214 AEAC0000 */ sw $t4, ($s5)
|
|
/* 0E8D48 7F0B4218 8D900018 */ lw $s0, 0x18($t4)
|
|
/* 0E8D4C 7F0B421C 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
|
|
/* 0E8D50 7F0B4220 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
|
|
/* 0E8D54 7F0B4224 02017024 */ and $t6, $s0, $at
|
|
/* 0E8D58 7F0B4228 25D0FFFF */ addiu $s0, $t6, -1
|
|
/* 0E8D5C 7F0B422C 360F000F */ ori $t7, $s0, 0xf
|
|
/* 0E8D60 7F0B4230 25F00001 */ addiu $s0, $t7, 1
|
|
/* 0E8D64 7F0B4234 02002025 */ move $a0, $s0
|
|
/* 0E8D68 7F0B4238 0C0025C8 */ jal mempAllocBytesInBank
|
|
/* 0E8D6C 7F0B423C 24050004 */ li $a1, 4
|
|
/* 0E8D70 7F0B4240 8E580000 */ lw $t8, ($s2)
|
|
/* 0E8D74 7F0B4244 AEE20000 */ sw $v0, ($s7)
|
|
/* 0E8D78 7F0B4248 00402825 */ move $a1, $v0
|
|
/* 0E8D7C 7F0B424C 03140019 */ multu $t8, $s4
|
|
/* 0E8D80 7F0B4250 00003025 */ move $a2, $zero
|
|
/* 0E8D84 7F0B4254 02003825 */ move $a3, $s0
|
|
/* 0E8D88 7F0B4258 0000C812 */ mflo $t9
|
|
/* 0E8D8C 7F0B425C 02394021 */ addu $t0, $s1, $t9
|
|
/* 0E8D90 7F0B4260 0FC2F35F */ jal obLoadBGFileBytesAtOffset
|
|
/* 0E8D94 7F0B4264 8D040004 */ lw $a0, 4($t0)
|
|
/* 0E8D98 7F0B4268 8E490000 */ lw $t1, ($s2)
|
|
/* 0E8D9C 7F0B426C 24050002 */ li $a1, 2
|
|
/* 0E8DA0 7F0B4270 00003025 */ move $a2, $zero
|
|
/* 0E8DA4 7F0B4274 01340019 */ multu $t1, $s4
|
|
/* 0E8DA8 7F0B4278 24070004 */ li $a3, 4
|
|
/* 0E8DAC 7F0B427C 00005012 */ mflo $t2
|
|
/* 0E8DB0 7F0B4280 022A5821 */ addu $t3, $s1, $t2
|
|
/* 0E8DB4 7F0B4284 0FC2F341 */ jal _fileNameLoadToBank
|
|
/* 0E8DB8 7F0B4288 8D640008 */ lw $a0, 8($t3)
|
|
/* 0E8DBC 7F0B428C 3C108008 */ lui $s0, %hi(gptr_stan)
|
|
/* 0E8DC0 7F0B4290 2610BF94 */ addiu $s0, %lo(gptr_stan) # addiu $s0, $s0, -0x406c
|
|
/* 0E8DC4 7F0B4294 AE020000 */ sw $v0, ($s0)
|
|
/* 0E8DC8 7F0B4298 00402025 */ move $a0, $v0
|
|
/* 0E8DCC 7F0B429C 00002825 */ move $a1, $zero
|
|
/* 0E8DD0 7F0B42A0 0FC2CBCB */ jal stanDetermineEOF
|
|
/* 0E8DD4 7F0B42A4 00403025 */ move $a2, $v0
|
|
/* 0E8DD8 7F0B42A8 0FC2BD6E */ jal stanLoadFile
|
|
/* 0E8DDC 7F0B42AC 8E040000 */ lw $a0, ($s0)
|
|
/* 0E8DE0 7F0B42B0 8E4C0000 */ lw $t4, ($s2)
|
|
/* 0E8DE4 7F0B42B4 01940019 */ multu $t4, $s4
|
|
/* 0E8DE8 7F0B42B8 00006812 */ mflo $t5
|
|
/* 0E8DEC 7F0B42BC 022D7021 */ addu $t6, $s1, $t5
|
|
/* 0E8DF0 7F0B42C0 0FC2D204 */ jal sub_GAME_7F0B4810
|
|
/* 0E8DF4 7F0B42C4 C5CC000C */ lwc1 $f12, 0xc($t6)
|
|
/* 0E8DF8 7F0B42C8 8E4F0000 */ lw $t7, ($s2)
|
|
/* 0E8DFC 7F0B42CC 01F40019 */ multu $t7, $s4
|
|
/* 0E8E00 7F0B42D0 0000C012 */ mflo $t8
|
|
/* 0E8E04 7F0B42D4 0238C821 */ addu $t9, $s1, $t8
|
|
/* 0E8E08 7F0B42D8 0FC2CA54 */ jal setLevelScale
|
|
/* 0E8E0C 7F0B42DC C72C000C */ lwc1 $f12, 0xc($t9)
|
|
/* 0E8E10 7F0B42E0 8E480000 */ lw $t0, ($s2)
|
|
/* 0E8E14 7F0B42E4 01140019 */ multu $t0, $s4
|
|
/* 0E8E18 7F0B42E8 00004812 */ mflo $t1
|
|
/* 0E8E1C 7F0B42EC 02295021 */ addu $t2, $s1, $t1
|
|
/* 0E8E20 7F0B42F0 0FC2456F */ jal sub_GAME_7F0915BC
|
|
/* 0E8E24 7F0B42F4 C54C000C */ lwc1 $f12, 0xc($t2)
|
|
/* 0E8E28 7F0B42F8 8E4B0000 */ lw $t3, ($s2)
|
|
/* 0E8E2C 7F0B42FC 01740019 */ multu $t3, $s4
|
|
/* 0E8E30 7F0B4300 00006012 */ mflo $t4
|
|
/* 0E8E34 7F0B4304 022C6821 */ addu $t5, $s1, $t4
|
|
/* 0E8E38 7F0B4308 0FC08B87 */ jal chrRemoved7F022E1C
|
|
/* 0E8E3C 7F0B430C C5AC000C */ lwc1 $f12, 0xc($t5)
|
|
/* 0E8E40 7F0B4310 8E4E0000 */ lw $t6, ($s2)
|
|
/* 0E8E44 7F0B4314 3C108004 */ lui $s0, %hi(mCurrentLevelVisibilityScale)
|
|
/* 0E8E48 7F0B4318 261013FC */ addiu $s0, %lo(mCurrentLevelVisibilityScale) # addiu $s0, $s0, 0x13fc
|
|
/* 0E8E4C 7F0B431C 01D40019 */ multu $t6, $s4
|
|
/* 0E8E50 7F0B4320 00007812 */ mflo $t7
|
|
/* 0E8E54 7F0B4324 022FC021 */ addu $t8, $s1, $t7
|
|
/* 0E8E58 7F0B4328 C7040010 */ lwc1 $f4, 0x10($t8)
|
|
/* 0E8E5C 7F0B432C E6040000 */ swc1 $f4, ($s0)
|
|
/* 0E8E60 7F0B4330 0FC225DB */ jal sub_GAME_7F08976C
|
|
/* 0E8E64 7F0B4334 C60C0000 */ lwc1 $f12, ($s0)
|
|
/* 0E8E68 7F0B4338 0FC16313 */ jal matrix_4x4_7F058C4C
|
|
/* 0E8E6C 7F0B433C C60C0000 */ lwc1 $f12, ($s0)
|
|
/* 0E8E70 7F0B4340 8EE20000 */ lw $v0, ($s7)
|
|
/* 0E8E74 7F0B4344 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007BF98)
|
|
/* 0E8E78 7F0B4348 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007FF88)
|
|
/* 0E8E7C 7F0B434C 8C590000 */ lw $t9, ($v0)
|
|
/* 0E8E80 7F0B4350 2484FF88 */ addiu $a0, %lo(dword_CODE_bss_8007FF88) # addiu $a0, $a0, -0x78
|
|
/* 0E8E84 7F0B4354 2463BF98 */ addiu $v1, %lo(dword_CODE_bss_8007BF98) # addiu $v1, $v1, -0x4068
|
|
/* 0E8E88 7F0B4358 24080001 */ li $t0, 1
|
|
/* 0E8E8C 7F0B435C AC880000 */ sw $t0, ($a0)
|
|
/* 0E8E90 7F0B4360 1720010E */ bnez $t9, .L7F0B479C
|
|
/* 0E8E94 7F0B4364 AC790000 */ sw $t9, ($v1)
|
|
/* 0E8E98 7F0B4368 240A0002 */ li $t2, 2
|
|
/* 0E8E9C 7F0B436C AC8A0000 */ sw $t2, ($a0)
|
|
/* 0E8EA0 7F0B4370 AEC20000 */ sw $v0, ($s6)
|
|
/* 0E8EA4 7F0B4374 8C4B0004 */ lw $t3, 4($v0)
|
|
/* 0E8EA8 7F0B4378 3C168004 */ lui $s6, %hi(MaxNumRooms)
|
|
/* 0E8EAC 7F0B437C 26D642F4 */ addiu $s6, %lo(MaxNumRooms) # addiu $s6, $s6, 0x42f4
|
|
/* 0E8EB0 7F0B4380 01626021 */ addu $t4, $t3, $v0
|
|
/* 0E8EB4 7F0B4384 01936821 */ addu $t5, $t4, $s3
|
|
/* 0E8EB8 7F0B4388 AEAD0000 */ sw $t5, ($s5)
|
|
/* 0E8EBC 7F0B438C AEC00000 */ sw $zero, ($s6)
|
|
/* 0E8EC0 7F0B4390 8DAE001C */ lw $t6, 0x1c($t5)
|
|
/* 0E8EC4 7F0B4394 00402825 */ move $a1, $v0
|
|
/* 0E8EC8 7F0B4398 11C00008 */ beqz $t6, .L7F0B43BC
|
|
/* 0E8ECC 7F0B439C 25A40018 */ addiu $a0, $t5, 0x18
|
|
/* 0E8ED0 7F0B43A0 8ECF0000 */ lw $t7, ($s6)
|
|
.L7F0B43A4:
|
|
/* 0E8ED4 7F0B43A4 24840018 */ addiu $a0, $a0, 0x18
|
|
/* 0E8ED8 7F0B43A8 25F80001 */ addiu $t8, $t7, 1
|
|
/* 0E8EDC 7F0B43AC AED80000 */ sw $t8, ($s6)
|
|
/* 0E8EE0 7F0B43B0 8C990004 */ lw $t9, 4($a0)
|
|
/* 0E8EE4 7F0B43B4 5720FFFB */ bnezl $t9, .L7F0B43A4
|
|
/* 0E8EE8 7F0B43B8 8ECF0000 */ lw $t7, ($s6)
|
|
.L7F0B43BC:
|
|
/* 0E8EEC 7F0B43BC 8CA80008 */ lw $t0, 8($a1)
|
|
/* 0E8EF0 7F0B43C0 3C1E8008 */ lui $fp, %hi(g_BgPortals)
|
|
/* 0E8EF4 7F0B43C4 27DEFF80 */ addiu $fp, %lo(g_BgPortals) # addiu $fp, $fp, -0x80
|
|
/* 0E8EF8 7F0B43C8 01024821 */ addu $t1, $t0, $v0
|
|
/* 0E8EFC 7F0B43CC 01335021 */ addu $t2, $t1, $s3
|
|
/* 0E8F00 7F0B43D0 AFCA0000 */ sw $t2, ($fp)
|
|
/* 0E8F04 7F0B43D4 8CA3000C */ lw $v1, 0xc($a1)
|
|
/* 0E8F08 7F0B43D8 14600004 */ bnez $v1, .L7F0B43EC
|
|
/* 0E8F0C 7F0B43DC 3C128008 */ lui $s2, %hi(dword_CODE_bss_8007FF90)
|
|
/* 0E8F10 7F0B43E0 2652FF90 */ addiu $s2, %lo(dword_CODE_bss_8007FF90) # addiu $s2, $s2, -0x70
|
|
/* 0E8F14 7F0B43E4 1000000F */ b .L7F0B4424
|
|
/* 0E8F18 7F0B43E8 AE400000 */ sw $zero, ($s2)
|
|
.L7F0B43EC:
|
|
/* 0E8F1C 7F0B43EC 3C128008 */ lui $s2, %hi(dword_CODE_bss_8007FF90)
|
|
/* 0E8F20 7F0B43F0 00625821 */ addu $t3, $v1, $v0
|
|
/* 0E8F24 7F0B43F4 2652FF90 */ addiu $s2, %lo(dword_CODE_bss_8007FF90) # addiu $s2, $s2, -0x70
|
|
/* 0E8F28 7F0B43F8 01736021 */ addu $t4, $t3, $s3
|
|
/* 0E8F2C 7F0B43FC AE4C0000 */ sw $t4, ($s2)
|
|
/* 0E8F30 7F0B4400 8CA40010 */ lw $a0, 0x10($a1)
|
|
/* 0E8F34 7F0B4404 3C018008 */ lui $at, %hi(dword_CODE_bss_8007FF94)
|
|
/* 0E8F38 7F0B4408 14800004 */ bnez $a0, .L7F0B441C
|
|
/* 0E8F3C 7F0B440C 00826821 */ addu $t5, $a0, $v0
|
|
/* 0E8F40 7F0B4410 3C018008 */ lui $at, %hi(dword_CODE_bss_8007FF94)
|
|
/* 0E8F44 7F0B4414 10000003 */ b .L7F0B4424
|
|
/* 0E8F48 7F0B4418 AC20FF94 */ sw $zero, %lo(dword_CODE_bss_8007FF94)($at)
|
|
.L7F0B441C:
|
|
/* 0E8F4C 7F0B441C 01B37021 */ addu $t6, $t5, $s3
|
|
/* 0E8F50 7F0B4420 AC2EFF94 */ sw $t6, %lo(dword_CODE_bss_8007FF94)($at)
|
|
.L7F0B4424:
|
|
/* 0E8F54 7F0B4424 8FC40000 */ lw $a0, ($fp)
|
|
/* 0E8F58 7F0B4428 00008025 */ move $s0, $zero
|
|
/* 0E8F5C 7F0B442C 8C8F0000 */ lw $t7, ($a0)
|
|
/* 0E8F60 7F0B4430 00801025 */ move $v0, $a0
|
|
/* 0E8F64 7F0B4434 11E0000B */ beqz $t7, .L7F0B4464
|
|
/* 0E8F68 7F0B4438 01E01825 */ move $v1, $t7
|
|
/* 0E8F6C 7F0B443C 8EF80000 */ lw $t8, ($s7)
|
|
.L7F0B4440:
|
|
/* 0E8F70 7F0B4440 26100008 */ addiu $s0, $s0, 8
|
|
/* 0E8F74 7F0B4444 0078C821 */ addu $t9, $v1, $t8
|
|
/* 0E8F78 7F0B4448 03334021 */ addu $t0, $t9, $s3
|
|
/* 0E8F7C 7F0B444C AC480000 */ sw $t0, ($v0)
|
|
/* 0E8F80 7F0B4450 8FC90000 */ lw $t1, ($fp)
|
|
/* 0E8F84 7F0B4454 01301021 */ addu $v0, $t1, $s0
|
|
/* 0E8F88 7F0B4458 8C430000 */ lw $v1, ($v0)
|
|
/* 0E8F8C 7F0B445C 5460FFF8 */ bnezl $v1, .L7F0B4440
|
|
/* 0E8F90 7F0B4460 8EF80000 */ lw $t8, ($s7)
|
|
.L7F0B4464:
|
|
/* 0E8F94 7F0B4464 8E440000 */ lw $a0, ($s2)
|
|
/* 0E8F98 7F0B4468 50800019 */ beql $a0, $zero, .L7F0B44D0
|
|
/* 0E8F9C 7F0B446C 8ED90000 */ lw $t9, ($s6)
|
|
/* 0E8FA0 7F0B4470 908A0000 */ lbu $t2, ($a0)
|
|
/* 0E8FA4 7F0B4474 00008025 */ move $s0, $zero
|
|
/* 0E8FA8 7F0B4478 00801825 */ move $v1, $a0
|
|
/* 0E8FAC 7F0B447C 11400013 */ beqz $t2, .L7F0B44CC
|
|
/* 0E8FB0 7F0B4480 314200FF */ andi $v0, $t2, 0xff
|
|
/* 0E8FB4 7F0B4484 24110064 */ li $s1, 100
|
|
.L7F0B4488:
|
|
/* 0E8FB8 7F0B4488 5622000C */ bnel $s1, $v0, .L7F0B44BC
|
|
/* 0E8FBC 7F0B448C 90620008 */ lbu $v0, 8($v1)
|
|
/* 0E8FC0 7F0B4490 8C6B0004 */ lw $t3, 4($v1)
|
|
/* 0E8FC4 7F0B4494 8EEC0000 */ lw $t4, ($s7)
|
|
/* 0E8FC8 7F0B4498 016C6821 */ addu $t5, $t3, $t4
|
|
/* 0E8FCC 7F0B449C 0FC2D7A2 */ jal getIndexOfPORTALID
|
|
/* 0E8FD0 7F0B44A0 01B32021 */ addu $a0, $t5, $s3
|
|
/* 0E8FD4 7F0B44A4 8E4E0000 */ lw $t6, ($s2)
|
|
/* 0E8FD8 7F0B44A8 01D07821 */ addu $t7, $t6, $s0
|
|
/* 0E8FDC 7F0B44AC ADE20004 */ sw $v0, 4($t7)
|
|
/* 0E8FE0 7F0B44B0 8E580000 */ lw $t8, ($s2)
|
|
/* 0E8FE4 7F0B44B4 03101821 */ addu $v1, $t8, $s0
|
|
/* 0E8FE8 7F0B44B8 90620008 */ lbu $v0, 8($v1)
|
|
.L7F0B44BC:
|
|
/* 0E8FEC 7F0B44BC 26100008 */ addiu $s0, $s0, 8
|
|
/* 0E8FF0 7F0B44C0 24630008 */ addiu $v1, $v1, 8
|
|
/* 0E8FF4 7F0B44C4 1440FFF0 */ bnez $v0, .L7F0B4488
|
|
/* 0E8FF8 7F0B44C8 00000000 */ nop
|
|
.L7F0B44CC:
|
|
/* 0E8FFC 7F0B44CC 8ED90000 */ lw $t9, ($s6)
|
|
.L7F0B44D0:
|
|
/* 0E9000 7F0B44D0 3C108004 */ lui $s0, %hi(array_room_info + 0x10 +0x40)
|
|
/* 0E9004 7F0B44D4 26101464 */ addiu $s0, %lo(array_room_info + 0x10 +0x40) # addiu $s0, $s0, 0x1464
|
|
/* 0E9008 7F0B44D8 2B210002 */ slti $at, $t9, 2
|
|
/* 0E900C 7F0B44DC 14200064 */ bnez $at, .L7F0B4670
|
|
/* 0E9010 7F0B44E0 24110001 */ li $s1, 1
|
|
/* 0E9014 7F0B44E4 8EA40000 */ lw $a0, ($s5)
|
|
/* 0E9018 7F0B44E8 24130018 */ li $s3, 24
|
|
/* 0E901C 7F0B44EC 2417FFFF */ li $s7, -1
|
|
/* 0E9020 7F0B44F0 24840018 */ addiu $a0, $a0, 0x18
|
|
.L7F0B44F4:
|
|
/* 0E9024 7F0B44F4 A2000002 */ sb $zero, 2($s0)
|
|
/* 0E9028 7F0B44F8 A2000035 */ sb $zero, 0x35($s0)
|
|
/* 0E902C 7F0B44FC 8C880004 */ lw $t0, 4($a0)
|
|
/* 0E9030 7F0B4500 26320001 */ addiu $s2, $s1, 1
|
|
/* 0E9034 7F0B4504 51000020 */ beql $t0, $zero, .L7F0B4588
|
|
/* 0E9038 7F0B4508 AE000014 */ sw $zero, 0x14($s0)
|
|
/* 0E903C 7F0B450C 26320001 */ addiu $s2, $s1, 1
|
|
/* 0E9040 7F0B4510 0FC2D00D */ jal sub_GAME_7F0B4034
|
|
/* 0E9044 7F0B4514 02402025 */ move $a0, $s2
|
|
/* 0E9048 7F0B4518 02202025 */ move $a0, $s1
|
|
/* 0E904C 7F0B451C 0FC2D021 */ jal sub_GAME_7F0B4084
|
|
/* 0E9050 7F0B4520 AFA20068 */ sw $v0, 0x68($sp)
|
|
/* 0E9054 7F0B4524 8FA50068 */ lw $a1, 0x68($sp)
|
|
/* 0E9058 7F0B4528 0045082A */ slt $at, $v0, $a1
|
|
/* 0E905C 7F0B452C 1420000B */ bnez $at, .L7F0B455C
|
|
/* 0E9060 7F0B4530 00000000 */ nop
|
|
/* 0E9064 7F0B4534 00B40019 */ multu $a1, $s4
|
|
/* 0E9068 7F0B4538 8EA30000 */ lw $v1, ($s5)
|
|
/* 0E906C 7F0B453C 00732021 */ addu $a0, $v1, $s3
|
|
/* 0E9070 7F0B4540 8C8C0004 */ lw $t4, 4($a0)
|
|
/* 0E9074 7F0B4544 00004812 */ mflo $t1
|
|
/* 0E9078 7F0B4548 00695021 */ addu $t2, $v1, $t1
|
|
/* 0E907C 7F0B454C 8D4B0004 */ lw $t3, 4($t2)
|
|
/* 0E9080 7F0B4550 016C6823 */ subu $t5, $t3, $t4
|
|
/* 0E9084 7F0B4554 1000000C */ b .L7F0B4588
|
|
/* 0E9088 7F0B4558 AE0D0014 */ sw $t5, 0x14($s0)
|
|
.L7F0B455C:
|
|
/* 0E908C 7F0B455C 00540019 */ multu $v0, $s4
|
|
/* 0E9090 7F0B4560 8EA30000 */ lw $v1, ($s5)
|
|
/* 0E9094 7F0B4564 00732021 */ addu $a0, $v1, $s3
|
|
/* 0E9098 7F0B4568 8C990004 */ lw $t9, 4($a0)
|
|
/* 0E909C 7F0B456C 00007012 */ mflo $t6
|
|
/* 0E90A0 7F0B4570 006E7821 */ addu $t7, $v1, $t6
|
|
/* 0E90A4 7F0B4574 8DF80008 */ lw $t8, 8($t7)
|
|
/* 0E90A8 7F0B4578 03194023 */ subu $t0, $t8, $t9
|
|
/* 0E90AC 7F0B457C 10000002 */ b .L7F0B4588
|
|
/* 0E90B0 7F0B4580 AE080014 */ sw $t0, 0x14($s0)
|
|
/* 0E90B4 7F0B4584 AE000014 */ sw $zero, 0x14($s0)
|
|
.L7F0B4588:
|
|
/* 0E90B8 7F0B4588 8C890008 */ lw $t1, 8($a0)
|
|
/* 0E90BC 7F0B458C 5120001E */ beql $t1, $zero, .L7F0B4608
|
|
/* 0E90C0 7F0B4590 AE000018 */ sw $zero, 0x18($s0)
|
|
/* 0E90C4 7F0B4594 0FC2D00D */ jal sub_GAME_7F0B4034
|
|
/* 0E90C8 7F0B4598 02402025 */ move $a0, $s2
|
|
/* 0E90CC 7F0B459C 00408825 */ move $s1, $v0
|
|
/* 0E90D0 7F0B45A0 0FC2D021 */ jal sub_GAME_7F0B4084
|
|
/* 0E90D4 7F0B45A4 02402025 */ move $a0, $s2
|
|
/* 0E90D8 7F0B45A8 0051082A */ slt $at, $v0, $s1
|
|
/* 0E90DC 7F0B45AC 1420000B */ bnez $at, .L7F0B45DC
|
|
/* 0E90E0 7F0B45B0 00000000 */ nop
|
|
/* 0E90E4 7F0B45B4 02340019 */ multu $s1, $s4
|
|
/* 0E90E8 7F0B45B8 8EA30000 */ lw $v1, ($s5)
|
|
/* 0E90EC 7F0B45BC 00732021 */ addu $a0, $v1, $s3
|
|
/* 0E90F0 7F0B45C0 8C8D0008 */ lw $t5, 8($a0)
|
|
/* 0E90F4 7F0B45C4 00005012 */ mflo $t2
|
|
/* 0E90F8 7F0B45C8 006A5821 */ addu $t3, $v1, $t2
|
|
/* 0E90FC 7F0B45CC 8D6C0004 */ lw $t4, 4($t3)
|
|
/* 0E9100 7F0B45D0 018D7023 */ subu $t6, $t4, $t5
|
|
/* 0E9104 7F0B45D4 1000000C */ b .L7F0B4608
|
|
/* 0E9108 7F0B45D8 AE0E0018 */ sw $t6, 0x18($s0)
|
|
.L7F0B45DC:
|
|
/* 0E910C 7F0B45DC 00540019 */ multu $v0, $s4
|
|
/* 0E9110 7F0B45E0 8EA30000 */ lw $v1, ($s5)
|
|
/* 0E9114 7F0B45E4 00732021 */ addu $a0, $v1, $s3
|
|
/* 0E9118 7F0B45E8 8C880008 */ lw $t0, 8($a0)
|
|
/* 0E911C 7F0B45EC 00007812 */ mflo $t7
|
|
/* 0E9120 7F0B45F0 006FC021 */ addu $t8, $v1, $t7
|
|
/* 0E9124 7F0B45F4 8F190008 */ lw $t9, 8($t8)
|
|
/* 0E9128 7F0B45F8 03284823 */ subu $t1, $t9, $t0
|
|
/* 0E912C 7F0B45FC 10000002 */ b .L7F0B4608
|
|
/* 0E9130 7F0B4600 AE090018 */ sw $t1, 0x18($s0)
|
|
/* 0E9134 7F0B4604 AE000018 */ sw $zero, 0x18($s0)
|
|
.L7F0B4608:
|
|
/* 0E9138 7F0B4608 8C8A0000 */ lw $t2, ($a0)
|
|
/* 0E913C 7F0B460C 5140000F */ beql $t2, $zero, .L7F0B464C
|
|
/* 0E9140 7F0B4610 AE000010 */ sw $zero, 0x10($s0)
|
|
/* 0E9144 7F0B4614 0FC2D035 */ jal sub_GAME_7F0B40D4
|
|
/* 0E9148 7F0B4618 02402025 */ move $a0, $s2
|
|
/* 0E914C 7F0B461C 00540019 */ multu $v0, $s4
|
|
/* 0E9150 7F0B4620 8EA30000 */ lw $v1, ($s5)
|
|
/* 0E9154 7F0B4624 8EC50000 */ lw $a1, ($s6)
|
|
/* 0E9158 7F0B4628 00732021 */ addu $a0, $v1, $s3
|
|
/* 0E915C 7F0B462C 8C8E0000 */ lw $t6, ($a0)
|
|
/* 0E9160 7F0B4630 00005812 */ mflo $t3
|
|
/* 0E9164 7F0B4634 006B6021 */ addu $t4, $v1, $t3
|
|
/* 0E9168 7F0B4638 8D8D0000 */ lw $t5, ($t4)
|
|
/* 0E916C 7F0B463C 01AE7823 */ subu $t7, $t5, $t6
|
|
/* 0E9170 7F0B4640 10000003 */ b .L7F0B4650
|
|
/* 0E9174 7F0B4644 AE0F0010 */ sw $t7, 0x10($s0)
|
|
/* 0E9178 7F0B4648 AE000010 */ sw $zero, 0x10($s0)
|
|
.L7F0B464C:
|
|
/* 0E917C 7F0B464C 8EC50000 */ lw $a1, ($s6)
|
|
.L7F0B4650:
|
|
/* 0E9180 7F0B4650 0245082A */ slt $at, $s2, $a1
|
|
/* 0E9184 7F0B4654 02408825 */ move $s1, $s2
|
|
/* 0E9188 7F0B4658 26100050 */ addiu $s0, $s0, 0x50
|
|
/* 0E918C 7F0B465C 26730018 */ addiu $s3, $s3, 0x18
|
|
/* 0E9190 7F0B4660 24840018 */ addiu $a0, $a0, 0x18
|
|
/* 0E9194 7F0B4664 1420FFA3 */ bnez $at, .L7F0B44F4
|
|
/* 0E9198 7F0B4668 AE17FFD8 */ sw $s7, -0x28($s0)
|
|
/* 0E919C 7F0B466C 24110001 */ li $s1, 1
|
|
.L7F0B4670:
|
|
/* 0E91A0 7F0B4670 0FC2F14C */ jal sub_GAME_7F0BC530
|
|
/* 0E91A4 7F0B4674 00000000 */ nop
|
|
/* 0E91A8 7F0B4678 8ED80000 */ lw $t8, ($s6)
|
|
/* 0E91AC 7F0B467C 2B010002 */ slti $at, $t8, 2
|
|
/* 0E91B0 7F0B4680 54200009 */ bnezl $at, .L7F0B46A8
|
|
/* 0E91B4 7F0B4684 8FC40000 */ lw $a0, ($fp)
|
|
.L7F0B4688:
|
|
/* 0E91B8 7F0B4688 0FC2E4CE */ jal sub_GAME_7F0B9338
|
|
/* 0E91BC 7F0B468C 02202025 */ move $a0, $s1
|
|
/* 0E91C0 7F0B4690 8ED90000 */ lw $t9, ($s6)
|
|
/* 0E91C4 7F0B4694 26310001 */ addiu $s1, $s1, 1
|
|
/* 0E91C8 7F0B4698 0239082A */ slt $at, $s1, $t9
|
|
/* 0E91CC 7F0B469C 1420FFFA */ bnez $at, .L7F0B4688
|
|
/* 0E91D0 7F0B46A0 00000000 */ nop
|
|
/* 0E91D4 7F0B46A4 8FC40000 */ lw $a0, ($fp)
|
|
.L7F0B46A8:
|
|
/* 0E91D8 7F0B46A8 3C038004 */ lui $v1, %hi(D_800443C4)
|
|
/* 0E91DC 7F0B46AC 246343C4 */ addiu $v1, %lo(D_800443C4) # addiu $v1, $v1, 0x43c4
|
|
/* 0E91E0 7F0B46B0 8C820000 */ lw $v0, ($a0)
|
|
/* 0E91E4 7F0B46B4 00008825 */ move $s1, $zero
|
|
/* 0E91E8 7F0B46B8 00008025 */ move $s0, $zero
|
|
/* 0E91EC 7F0B46BC 10400010 */ beqz $v0, .L7F0B4700
|
|
/* 0E91F0 7F0B46C0 00000000 */ nop
|
|
/* 0E91F4 7F0B46C4 02202025 */ move $a0, $s1
|
|
.L7F0B46C8:
|
|
/* 0E91F8 7F0B46C8 0FC2E64F */ jal sub_GAME_7F0B993C
|
|
/* 0E91FC 7F0B46CC AFA3004C */ sw $v1, 0x4c($sp)
|
|
/* 0E9200 7F0B46D0 8FC40000 */ lw $a0, ($fp)
|
|
/* 0E9204 7F0B46D4 8FA3004C */ lw $v1, 0x4c($sp)
|
|
/* 0E9208 7F0B46D8 26100008 */ addiu $s0, $s0, 8
|
|
/* 0E920C 7F0B46DC 00904021 */ addu $t0, $a0, $s0
|
|
/* 0E9210 7F0B46E0 A0620000 */ sb $v0, ($v1)
|
|
/* 0E9214 7F0B46E4 8D090000 */ lw $t1, ($t0)
|
|
/* 0E9218 7F0B46E8 26310001 */ addiu $s1, $s1, 1
|
|
/* 0E921C 7F0B46EC 24630001 */ addiu $v1, $v1, 1
|
|
/* 0E9220 7F0B46F0 5520FFF5 */ bnezl $t1, .L7F0B46C8
|
|
/* 0E9224 7F0B46F4 02202025 */ move $a0, $s1
|
|
/* 0E9228 7F0B46F8 00008825 */ move $s1, $zero
|
|
/* 0E922C 7F0B46FC 8C820000 */ lw $v0, ($a0)
|
|
.L7F0B4700:
|
|
/* 0E9230 7F0B4700 1040000B */ beqz $v0, .L7F0B4730
|
|
/* 0E9234 7F0B4704 00008025 */ move $s0, $zero
|
|
.L7F0B4708:
|
|
/* 0E9238 7F0B4708 0FC2E6E5 */ jal sub_GAME_7F0B9B94
|
|
/* 0E923C 7F0B470C 02202025 */ move $a0, $s1
|
|
/* 0E9240 7F0B4710 8FC40000 */ lw $a0, ($fp)
|
|
/* 0E9244 7F0B4714 26100008 */ addiu $s0, $s0, 8
|
|
/* 0E9248 7F0B4718 26310001 */ addiu $s1, $s1, 1
|
|
/* 0E924C 7F0B471C 00905021 */ addu $t2, $a0, $s0
|
|
/* 0E9250 7F0B4720 8D4B0000 */ lw $t3, ($t2)
|
|
/* 0E9254 7F0B4724 1560FFF8 */ bnez $t3, .L7F0B4708
|
|
/* 0E9258 7F0B4728 00000000 */ nop
|
|
/* 0E925C 7F0B472C 00008825 */ move $s1, $zero
|
|
.L7F0B4730:
|
|
/* 0E9260 7F0B4730 8ECC0000 */ lw $t4, ($s6)
|
|
/* 0E9264 7F0B4734 5980000A */ blezl $t4, .L7F0B4760
|
|
/* 0E9268 7F0B4738 8C8E0000 */ lw $t6, ($a0)
|
|
.L7F0B473C:
|
|
/* 0E926C 7F0B473C 0FC2E576 */ jal sub_GAME_7F0B95D8
|
|
/* 0E9270 7F0B4740 02202025 */ move $a0, $s1
|
|
/* 0E9274 7F0B4744 8ECD0000 */ lw $t5, ($s6)
|
|
/* 0E9278 7F0B4748 26310001 */ addiu $s1, $s1, 1
|
|
/* 0E927C 7F0B474C 022D082A */ slt $at, $s1, $t5
|
|
/* 0E9280 7F0B4750 1420FFFA */ bnez $at, .L7F0B473C
|
|
/* 0E9284 7F0B4754 00000000 */ nop
|
|
/* 0E9288 7F0B4758 8FC40000 */ lw $a0, ($fp)
|
|
/* 0E928C 7F0B475C 8C8E0000 */ lw $t6, ($a0)
|
|
.L7F0B4760:
|
|
/* 0E9290 7F0B4760 00008025 */ move $s0, $zero
|
|
/* 0E9294 7F0B4764 00801025 */ move $v0, $a0
|
|
/* 0E9298 7F0B4768 11C0000A */ beqz $t6, .L7F0B4794
|
|
/* 0E929C 7F0B476C 00000000 */ nop
|
|
/* 0E92A0 7F0B4770 904F0006 */ lbu $t7, 6($v0)
|
|
.L7F0B4774:
|
|
/* 0E92A4 7F0B4774 26100008 */ addiu $s0, $s0, 8
|
|
/* 0E92A8 7F0B4778 31F800FE */ andi $t8, $t7, 0xfe
|
|
/* 0E92AC 7F0B477C A0580006 */ sb $t8, 6($v0)
|
|
/* 0E92B0 7F0B4780 8FD90000 */ lw $t9, ($fp)
|
|
/* 0E92B4 7F0B4784 03301021 */ addu $v0, $t9, $s0
|
|
/* 0E92B8 7F0B4788 8C480000 */ lw $t0, ($v0)
|
|
/* 0E92BC 7F0B478C 5500FFF9 */ bnezl $t0, .L7F0B4774
|
|
/* 0E92C0 7F0B4790 904F0006 */ lbu $t7, 6($v0)
|
|
.L7F0B4794:
|
|
/* 0E92C4 7F0B4794 0FC2CDFB */ jal sub_GAME_7F0B37EC
|
|
/* 0E92C8 7F0B4798 00000000 */ nop
|
|
.L7F0B479C:
|
|
/* 0E92CC 7F0B479C 0FC2EA97 */ jal fogRemoved7F0BAA5C
|
|
/* 0E92D0 7F0B47A0 8FA400B8 */ lw $a0, 0xb8($sp)
|
|
/* 0E92D4 7F0B47A4 8FBF003C */ lw $ra, 0x3c($sp)
|
|
/* 0E92D8 7F0B47A8 240900C8 */ li $t1, 200
|
|
/* 0E92DC 7F0B47AC 3C018004 */ lui $at, %hi(D_800442F8)
|
|
/* 0E92E0 7F0B47B0 8FB00018 */ lw $s0, 0x18($sp)
|
|
/* 0E92E4 7F0B47B4 8FB1001C */ lw $s1, 0x1c($sp)
|
|
/* 0E92E8 7F0B47B8 8FB20020 */ lw $s2, 0x20($sp)
|
|
/* 0E92EC 7F0B47BC 8FB30024 */ lw $s3, 0x24($sp)
|
|
/* 0E92F0 7F0B47C0 8FB40028 */ lw $s4, 0x28($sp)
|
|
/* 0E92F4 7F0B47C4 8FB5002C */ lw $s5, 0x2c($sp)
|
|
/* 0E92F8 7F0B47C8 8FB60030 */ lw $s6, 0x30($sp)
|
|
/* 0E92FC 7F0B47CC 8FB70034 */ lw $s7, 0x34($sp)
|
|
/* 0E9300 7F0B47D0 8FBE0038 */ lw $fp, 0x38($sp)
|
|
/* 0E9304 7F0B47D4 AC2942F8 */ sw $t1, %lo(D_800442F8)($at)
|
|
/* 0E9308 7F0B47D8 03E00008 */ jr $ra
|
|
/* 0E930C 7F0B47DC 27BD00B8 */ addiu $sp, $sp, 0xb8
|
|
)
|
|
#endif
|
|
|
|
#if !defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel load_bg_file
|
|
/* 0E5E50 7F0B3460 27BDFF48 */ addiu $sp, $sp, -0xb8
|
|
/* 0E5E54 7F0B3464 AFB20020 */ sw $s2, 0x20($sp)
|
|
/* 0E5E58 7F0B3468 3C128004 */ lui $s2, %hi(levelentry_index) # $s2, 0x8004
|
|
/* 0E5E5C 7F0B346C AFB00018 */ sw $s0, 0x18($sp)
|
|
/* 0E5E60 7F0B3470 2652AC50 */ addiu $s2, %lo(levelentry_index) # addiu $s2, $s2, -0x53b0
|
|
/* 0E5E64 7F0B3474 3C108004 */ lui $s0, %hi(array_room_info) # $s0, 0x8004
|
|
/* 0E5E68 7F0B3478 3C028004 */ lui $v0, %hi(MaxNumRooms) # $v0, 0x8004
|
|
/* 0E5E6C 7F0B347C AFBF003C */ sw $ra, 0x3c($sp)
|
|
/* 0E5E70 7F0B3480 AFBE0038 */ sw $fp, 0x38($sp)
|
|
/* 0E5E74 7F0B3484 AFB70034 */ sw $s7, 0x34($sp)
|
|
/* 0E5E78 7F0B3488 AFB60030 */ sw $s6, 0x30($sp)
|
|
/* 0E5E7C 7F0B348C AFB5002C */ sw $s5, 0x2c($sp)
|
|
/* 0E5E80 7F0B3490 AFB40028 */ sw $s4, 0x28($sp)
|
|
/* 0E5E84 7F0B3494 AFB30024 */ sw $s3, 0x24($sp)
|
|
/* 0E5E88 7F0B3498 AFB1001C */ sw $s1, 0x1c($sp)
|
|
/* 0E5E8C 7F0B349C AE400000 */ sw $zero, ($s2)
|
|
/* 0E5E90 7F0B34A0 2442D7D4 */ addiu $v0, %lo(MaxNumRooms) # addiu $v0, $v0, -0x282c
|
|
/* 0E5E94 7F0B34A4 2610AC64 */ addiu $s0, %lo(array_room_info) # addiu $s0, $s0, -0x539c
|
|
.L7F0B34A8:
|
|
/* 0E5E98 7F0B34A8 26100050 */ addiu $s0, $s0, 0x50
|
|
/* 0E5E9C 7F0B34AC 0202082B */ sltu $at, $s0, $v0
|
|
/* 0E5EA0 7F0B34B0 1420FFFD */ bnez $at, .L7F0B34A8
|
|
/* 0E5EA4 7F0B34B4 AE00FFDC */ sw $zero, -0x24($s0)
|
|
/* 0E5EA8 7F0B34B8 3C028004 */ lui $v0, %hi(levelinfotable) # $v0, 0x8004
|
|
/* 0E5EAC 7F0B34BC 2442D96C */ addiu $v0, %lo(levelinfotable) # addiu $v0, $v0, -0x2694
|
|
/* 0E5EB0 7F0B34C0 00008825 */ move $s1, $zero
|
|
.L7F0B34C4:
|
|
/* 0E5EB4 7F0B34C4 8C4E0000 */ lw $t6, ($v0)
|
|
/* 0E5EB8 7F0B34C8 548E0003 */ bnel $a0, $t6, .L7F0B34D8
|
|
/* 0E5EBC 7F0B34CC 26310001 */ addiu $s1, $s1, 1
|
|
/* 0E5EC0 7F0B34D0 AE510000 */ sw $s1, ($s2)
|
|
/* 0E5EC4 7F0B34D4 26310001 */ addiu $s1, $s1, 1
|
|
.L7F0B34D8:
|
|
/* 0E5EC8 7F0B34D8 2A210026 */ slti $at, $s1, 0x26
|
|
/* 0E5ECC 7F0B34DC 1420FFF9 */ bnez $at, .L7F0B34C4
|
|
/* 0E5ED0 7F0B34E0 24420018 */ addiu $v0, $v0, 0x18
|
|
/* 0E5ED4 7F0B34E4 0FC2EA34 */ jal init_lightfixture_tables
|
|
/* 0E5ED8 7F0B34E8 AFA400B8 */ sw $a0, 0xb8($sp)
|
|
/* 0E5EDC 7F0B34EC 8E580000 */ lw $t8, ($s2)
|
|
/* 0E5EE0 7F0B34F0 24140018 */ li $s4, 24
|
|
/* 0E5EE4 7F0B34F4 3C118004 */ lui $s1, %hi(levelinfotable) # $s1, 0x8004
|
|
/* 0E5EE8 7F0B34F8 03140019 */ multu $t8, $s4
|
|
/* 0E5EEC 7F0B34FC 2631D96C */ addiu $s1, %lo(levelinfotable) # addiu $s1, $s1, -0x2694
|
|
/* 0E5EF0 7F0B3500 3C178007 */ lui $s7, %hi(ptr_bg_data) # $s7, 0x8007
|
|
/* 0E5EF4 7F0B3504 26F79EE0 */ addiu $s7, %lo(ptr_bg_data) # addiu $s7, $s7, -0x6120
|
|
/* 0E5EF8 7F0B3508 27A50070 */ addiu $a1, $sp, 0x70
|
|
/* 0E5EFC 7F0B350C AEE50000 */ sw $a1, ($s7)
|
|
/* 0E5F00 7F0B3510 00003025 */ move $a2, $zero
|
|
/* 0E5F04 7F0B3514 24070040 */ li $a3, 64
|
|
/* 0E5F08 7F0B3518 0000C812 */ mflo $t9
|
|
/* 0E5F0C 7F0B351C 02394021 */ addu $t0, $s1, $t9
|
|
/* 0E5F10 7F0B3520 0FC2F02F */ jal obLoadBGFileBytesAtOffset
|
|
/* 0E5F14 7F0B3524 8D040004 */ lw $a0, 4($t0)
|
|
/* 0E5F18 7F0B3528 8EE20000 */ lw $v0, ($s7)
|
|
/* 0E5F1C 7F0B352C 3C168007 */ lui $s6, %hi(ptr_bgdata_offsets) # $s6, 0x8007
|
|
/* 0E5F20 7F0B3530 26D6B3CC */ addiu $s6, %lo(ptr_bgdata_offsets) # addiu $s6, $s6, -0x4c34
|
|
/* 0E5F24 7F0B3534 AEC20000 */ sw $v0, ($s6)
|
|
/* 0E5F28 7F0B3538 8C4A0004 */ lw $t2, 4($v0)
|
|
/* 0E5F2C 7F0B353C 3C13F100 */ lui $s3, 0xf100
|
|
/* 0E5F30 7F0B3540 3C158007 */ lui $s5, %hi(ptr_bgdata_room_fileposition_list) # $s5, 0x8007
|
|
/* 0E5F34 7F0B3544 01425821 */ addu $t3, $t2, $v0
|
|
/* 0E5F38 7F0B3548 26B5B3D4 */ addiu $s5, %lo(ptr_bgdata_room_fileposition_list) # addiu $s5, $s5, -0x4c2c
|
|
/* 0E5F3C 7F0B354C 01736021 */ addu $t4, $t3, $s3
|
|
/* 0E5F40 7F0B3550 AEAC0000 */ sw $t4, ($s5)
|
|
/* 0E5F44 7F0B3554 8D900018 */ lw $s0, 0x18($t4)
|
|
/* 0E5F48 7F0B3558 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
|
|
/* 0E5F4C 7F0B355C 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
|
|
/* 0E5F50 7F0B3560 02017024 */ and $t6, $s0, $at
|
|
/* 0E5F54 7F0B3564 25D0FFFF */ addiu $s0, $t6, -1
|
|
/* 0E5F58 7F0B3568 360F000F */ ori $t7, $s0, 0xf
|
|
/* 0E5F5C 7F0B356C 25F00001 */ addiu $s0, $t7, 1
|
|
/* 0E5F60 7F0B3570 02002025 */ move $a0, $s0
|
|
/* 0E5F64 7F0B3574 0C0022E0 */ jal mempAllocBytesInBank
|
|
/* 0E5F68 7F0B3578 24050004 */ li $a1, 4
|
|
/* 0E5F6C 7F0B357C 8E580000 */ lw $t8, ($s2)
|
|
/* 0E5F70 7F0B3580 AEE20000 */ sw $v0, ($s7)
|
|
/* 0E5F74 7F0B3584 00402825 */ move $a1, $v0
|
|
/* 0E5F78 7F0B3588 03140019 */ multu $t8, $s4
|
|
/* 0E5F7C 7F0B358C 00003025 */ move $a2, $zero
|
|
/* 0E5F80 7F0B3590 02003825 */ move $a3, $s0
|
|
/* 0E5F84 7F0B3594 0000C812 */ mflo $t9
|
|
/* 0E5F88 7F0B3598 02394021 */ addu $t0, $s1, $t9
|
|
/* 0E5F8C 7F0B359C 0FC2F02F */ jal obLoadBGFileBytesAtOffset
|
|
/* 0E5F90 7F0B35A0 8D040004 */ lw $a0, 4($t0)
|
|
/* 0E5F94 7F0B35A4 8E490000 */ lw $t1, ($s2)
|
|
/* 0E5F98 7F0B35A8 24050002 */ li $a1, 2
|
|
/* 0E5F9C 7F0B35AC 00003025 */ move $a2, $zero
|
|
/* 0E5FA0 7F0B35B0 01340019 */ multu $t1, $s4
|
|
/* 0E5FA4 7F0B35B4 24070004 */ li $a3, 4
|
|
/* 0E5FA8 7F0B35B8 00005012 */ mflo $t2
|
|
/* 0E5FAC 7F0B35BC 022A5821 */ addu $t3, $s1, $t2
|
|
/* 0E5FB0 7F0B35C0 0FC2F053 */ jal _fileNameLoadToBank
|
|
/* 0E5FB4 7F0B35C4 8D640008 */ lw $a0, 8($t3)
|
|
/* 0E5FB8 7F0B35C8 3C108007 */ lui $s0, %hi(gptr_stan) # $s0, 0x8007
|
|
/* 0E5FBC 7F0B35CC 26109EE4 */ addiu $s0, %lo(gptr_stan) # addiu $s0, $s0, -0x611c
|
|
/* 0E5FC0 7F0B35D0 AE020000 */ sw $v0, ($s0)
|
|
/* 0E5FC4 7F0B35D4 00402025 */ move $a0, $v0
|
|
/* 0E5FC8 7F0B35D8 00002825 */ move $a1, $zero
|
|
/* 0E5FCC 7F0B35DC 0FC2C87B */ jal stanDetermineEOF
|
|
/* 0E5FD0 7F0B35E0 00403025 */ move $a2, $v0
|
|
/* 0E5FD4 7F0B35E4 0FC2BA1E */ jal stanLoadFile
|
|
/* 0E5FD8 7F0B35E8 8E040000 */ lw $a0, ($s0)
|
|
/* 0E5FDC 7F0B35EC 8E4C0000 */ lw $t4, ($s2)
|
|
/* 0E5FE0 7F0B35F0 01940019 */ multu $t4, $s4
|
|
/* 0E5FE4 7F0B35F4 00006812 */ mflo $t5
|
|
/* 0E5FE8 7F0B35F8 022D7021 */ addu $t6, $s1, $t5
|
|
/* 0E5FEC 7F0B35FC 0FC2CED3 */ jal sub_GAME_7F0B4810
|
|
/* 0E5FF0 7F0B3600 C5CC000C */ lwc1 $f12, 0xc($t6)
|
|
/* 0E5FF4 7F0B3604 8E4F0000 */ lw $t7, ($s2)
|
|
/* 0E5FF8 7F0B3608 01F40019 */ multu $t7, $s4
|
|
/* 0E5FFC 7F0B360C 0000C012 */ mflo $t8
|
|
/* 0E6000 7F0B3610 0238C821 */ addu $t9, $s1, $t8
|
|
/* 0E6004 7F0B3614 0FC2C704 */ jal setLevelScale
|
|
/* 0E6008 7F0B3618 C72C000C */ lwc1 $f12, 0xc($t9)
|
|
/* 0E600C 7F0B361C 8E480000 */ lw $t0, ($s2)
|
|
/* 0E6010 7F0B3620 01140019 */ multu $t0, $s4
|
|
/* 0E6014 7F0B3624 00004812 */ mflo $t1
|
|
/* 0E6018 7F0B3628 02295021 */ addu $t2, $s1, $t1
|
|
/* 0E601C 7F0B362C 0FC2428F */ jal sub_GAME_7F0915BC
|
|
/* 0E6020 7F0B3630 C54C000C */ lwc1 $f12, 0xc($t2)
|
|
/* 0E6024 7F0B3634 8E4B0000 */ lw $t3, ($s2)
|
|
/* 0E6028 7F0B3638 01740019 */ multu $t3, $s4
|
|
/* 0E602C 7F0B363C 00006012 */ mflo $t4
|
|
/* 0E6030 7F0B3640 022C6821 */ addu $t5, $s1, $t4
|
|
/* 0E6034 7F0B3644 0FC08B79 */ jal chrRemoved7F022E1C
|
|
/* 0E6038 7F0B3648 C5AC000C */ lwc1 $f12, 0xc($t5)
|
|
/* 0E603C 7F0B364C 8E4E0000 */ lw $t6, ($s2)
|
|
/* 0E6040 7F0B3650 3C108004 */ lui $s0, %hi(mCurrentLevelVisibilityScale) # $s0, 0x8004
|
|
/* 0E6044 7F0B3654 2610AC4C */ addiu $s0, %lo(mCurrentLevelVisibilityScale) # addiu $s0, $s0, -0x53b4
|
|
/* 0E6048 7F0B3658 01D40019 */ multu $t6, $s4
|
|
/* 0E604C 7F0B365C 00007812 */ mflo $t7
|
|
/* 0E6050 7F0B3660 022FC021 */ addu $t8, $s1, $t7
|
|
/* 0E6054 7F0B3664 C7040010 */ lwc1 $f4, 0x10($t8)
|
|
/* 0E6058 7F0B3668 E6040000 */ swc1 $f4, ($s0)
|
|
/* 0E605C 7F0B366C 0FC22635 */ jal sub_GAME_7F08976C
|
|
/* 0E6060 7F0B3670 C60C0000 */ lwc1 $f12, ($s0)
|
|
/* 0E6064 7F0B3674 0FC1643D */ jal matrix_4x4_7F058C4C
|
|
/* 0E6068 7F0B3678 C60C0000 */ lwc1 $f12, ($s0)
|
|
/* 0E606C 7F0B367C 8EE20000 */ lw $v0, ($s7)
|
|
/* 0E6070 7F0B3680 3C038007 */ lui $v1, %hi(dword_CODE_bss_8007BF98) # $v1, 0x8007
|
|
/* 0E6074 7F0B3684 3C048007 */ lui $a0, %hi(dword_CODE_bss_8007FF88) # $a0, 0x8007
|
|
/* 0E6078 7F0B3688 8C590000 */ lw $t9, ($v0)
|
|
/* 0E607C 7F0B368C 2484B3D0 */ addiu $a0, %lo(dword_CODE_bss_8007FF88) # addiu $a0, $a0, -0x4c30
|
|
/* 0E6080 7F0B3690 24639EE8 */ addiu $v1, %lo(dword_CODE_bss_8007BF98) # addiu $v1, $v1, -0x6118
|
|
/* 0E6084 7F0B3694 24080001 */ li $t0, 1
|
|
/* 0E6088 7F0B3698 AC880000 */ sw $t0, ($a0)
|
|
/* 0E608C 7F0B369C 1720010E */ bnez $t9, .L7F0B3AD8
|
|
/* 0E6090 7F0B36A0 AC790000 */ sw $t9, ($v1)
|
|
/* 0E6094 7F0B36A4 240A0002 */ li $t2, 2
|
|
/* 0E6098 7F0B36A8 AC8A0000 */ sw $t2, ($a0)
|
|
/* 0E609C 7F0B36AC AEC20000 */ sw $v0, ($s6)
|
|
/* 0E60A0 7F0B36B0 8C4B0004 */ lw $t3, 4($v0)
|
|
/* 0E60A4 7F0B36B4 3C168004 */ lui $s6, %hi(MaxNumRooms) # $s6, 0x8004
|
|
/* 0E60A8 7F0B36B8 26D6D7D4 */ addiu $s6, %lo(MaxNumRooms) # addiu $s6, $s6, -0x282c
|
|
/* 0E60AC 7F0B36BC 01626021 */ addu $t4, $t3, $v0
|
|
/* 0E60B0 7F0B36C0 01936821 */ addu $t5, $t4, $s3
|
|
/* 0E60B4 7F0B36C4 AEAD0000 */ sw $t5, ($s5)
|
|
/* 0E60B8 7F0B36C8 AEC00000 */ sw $zero, ($s6)
|
|
/* 0E60BC 7F0B36CC 8DAE001C */ lw $t6, 0x1c($t5)
|
|
/* 0E60C0 7F0B36D0 00402825 */ move $a1, $v0
|
|
/* 0E60C4 7F0B36D4 11C00008 */ beqz $t6, .L7F0B36F8
|
|
/* 0E60C8 7F0B36D8 25A40018 */ addiu $a0, $t5, 0x18
|
|
/* 0E60CC 7F0B36DC 8ECF0000 */ lw $t7, ($s6)
|
|
.L7F0B36E0:
|
|
/* 0E60D0 7F0B36E0 24840018 */ addiu $a0, $a0, 0x18
|
|
/* 0E60D4 7F0B36E4 25F80001 */ addiu $t8, $t7, 1
|
|
/* 0E60D8 7F0B36E8 AED80000 */ sw $t8, ($s6)
|
|
/* 0E60DC 7F0B36EC 8C990004 */ lw $t9, 4($a0)
|
|
/* 0E60E0 7F0B36F0 5720FFFB */ bnezl $t9, .L7F0B36E0
|
|
/* 0E60E4 7F0B36F4 8ECF0000 */ lw $t7, ($s6)
|
|
.L7F0B36F8:
|
|
/* 0E60E8 7F0B36F8 8CA80008 */ lw $t0, 8($a1)
|
|
/* 0E60EC 7F0B36FC 3C1E8007 */ lui $fp, %hi(g_BgPortals) # $fp, 0x8007
|
|
/* 0E60F0 7F0B3700 27DEB3C8 */ addiu $fp, %lo(g_BgPortals) # addiu $fp, $fp, -0x4c38
|
|
/* 0E60F4 7F0B3704 01024821 */ addu $t1, $t0, $v0
|
|
/* 0E60F8 7F0B3708 01335021 */ addu $t2, $t1, $s3
|
|
/* 0E60FC 7F0B370C AFCA0000 */ sw $t2, ($fp)
|
|
/* 0E6100 7F0B3710 8CA3000C */ lw $v1, 0xc($a1)
|
|
/* 0E6104 7F0B3714 14600004 */ bnez $v1, .L7F0B3728
|
|
/* 0E6108 7F0B3718 3C128007 */ lui $s2, %hi(dword_CODE_bss_8007FF90) # $s2, 0x8007
|
|
/* 0E610C 7F0B371C 2652B3D8 */ addiu $s2, %lo(dword_CODE_bss_8007FF90) # addiu $s2, $s2, -0x4c28
|
|
/* 0E6110 7F0B3720 1000000F */ b .L7F0B3760
|
|
/* 0E6114 7F0B3724 AE400000 */ sw $zero, ($s2)
|
|
.L7F0B3728:
|
|
/* 0E6118 7F0B3728 3C128007 */ lui $s2, %hi(dword_CODE_bss_8007FF90) # $s2, 0x8007
|
|
/* 0E611C 7F0B372C 00625821 */ addu $t3, $v1, $v0
|
|
/* 0E6120 7F0B3730 2652B3D8 */ addiu $s2, %lo(dword_CODE_bss_8007FF90) # addiu $s2, $s2, -0x4c28
|
|
/* 0E6124 7F0B3734 01736021 */ addu $t4, $t3, $s3
|
|
/* 0E6128 7F0B3738 AE4C0000 */ sw $t4, ($s2)
|
|
/* 0E612C 7F0B373C 8CA40010 */ lw $a0, 0x10($a1)
|
|
/* 0E6130 7F0B3740 3C018007 */ lui $at, %hi(dword_CODE_bss_8007FF94)
|
|
/* 0E6134 7F0B3744 14800004 */ bnez $a0, .L7F0B3758
|
|
/* 0E6138 7F0B3748 00826821 */ addu $t5, $a0, $v0
|
|
/* 0E613C 7F0B374C 3C018007 */ lui $at, %hi(dword_CODE_bss_8007FF94) # $at, 0x8007
|
|
/* 0E6140 7F0B3750 10000003 */ b .L7F0B3760
|
|
/* 0E6144 7F0B3754 AC20B3DC */ sw $zero, %lo(dword_CODE_bss_8007FF94)($at)
|
|
.L7F0B3758:
|
|
/* 0E6148 7F0B3758 01B37021 */ addu $t6, $t5, $s3
|
|
/* 0E614C 7F0B375C AC2EB3DC */ sw $t6, %lo(dword_CODE_bss_8007FF94)($at)
|
|
.L7F0B3760:
|
|
/* 0E6150 7F0B3760 8FC40000 */ lw $a0, ($fp)
|
|
/* 0E6154 7F0B3764 00008025 */ move $s0, $zero
|
|
/* 0E6158 7F0B3768 8C8F0000 */ lw $t7, ($a0)
|
|
/* 0E615C 7F0B376C 00801025 */ move $v0, $a0
|
|
/* 0E6160 7F0B3770 11E0000B */ beqz $t7, .L7F0B37A0
|
|
/* 0E6164 7F0B3774 01E01825 */ move $v1, $t7
|
|
/* 0E6168 7F0B3778 8EF80000 */ lw $t8, ($s7)
|
|
.L7F0B377C:
|
|
/* 0E616C 7F0B377C 26100008 */ addiu $s0, $s0, 8
|
|
/* 0E6170 7F0B3780 0078C821 */ addu $t9, $v1, $t8
|
|
/* 0E6174 7F0B3784 03334021 */ addu $t0, $t9, $s3
|
|
/* 0E6178 7F0B3788 AC480000 */ sw $t0, ($v0)
|
|
/* 0E617C 7F0B378C 8FC90000 */ lw $t1, ($fp)
|
|
/* 0E6180 7F0B3790 01301021 */ addu $v0, $t1, $s0
|
|
/* 0E6184 7F0B3794 8C430000 */ lw $v1, ($v0)
|
|
/* 0E6188 7F0B3798 5460FFF8 */ bnezl $v1, .L7F0B377C
|
|
/* 0E618C 7F0B379C 8EF80000 */ lw $t8, ($s7)
|
|
.L7F0B37A0:
|
|
/* 0E6190 7F0B37A0 8E440000 */ lw $a0, ($s2)
|
|
/* 0E6194 7F0B37A4 50800019 */ beql $a0, $zero, .L7F0B380C
|
|
/* 0E6198 7F0B37A8 8ED90000 */ lw $t9, ($s6)
|
|
/* 0E619C 7F0B37AC 908A0000 */ lbu $t2, ($a0)
|
|
/* 0E61A0 7F0B37B0 00008025 */ move $s0, $zero
|
|
/* 0E61A4 7F0B37B4 00801825 */ move $v1, $a0
|
|
/* 0E61A8 7F0B37B8 11400013 */ beqz $t2, .L7F0B3808
|
|
/* 0E61AC 7F0B37BC 314200FF */ andi $v0, $t2, 0xff
|
|
/* 0E61B0 7F0B37C0 24110064 */ li $s1, 100
|
|
.L7F0B37C4:
|
|
/* 0E61B4 7F0B37C4 5622000C */ bnel $s1, $v0, .L7F0B37F8
|
|
/* 0E61B8 7F0B37C8 90620008 */ lbu $v0, 8($v1)
|
|
/* 0E61BC 7F0B37CC 8C6B0004 */ lw $t3, 4($v1)
|
|
/* 0E61C0 7F0B37D0 8EEC0000 */ lw $t4, ($s7)
|
|
/* 0E61C4 7F0B37D4 016C6821 */ addu $t5, $t3, $t4
|
|
/* 0E61C8 7F0B37D8 0FC2D471 */ jal getIndexOfPORTALID
|
|
/* 0E61CC 7F0B37DC 01B32021 */ addu $a0, $t5, $s3
|
|
/* 0E61D0 7F0B37E0 8E4E0000 */ lw $t6, ($s2)
|
|
/* 0E61D4 7F0B37E4 01D07821 */ addu $t7, $t6, $s0
|
|
/* 0E61D8 7F0B37E8 ADE20004 */ sw $v0, 4($t7)
|
|
/* 0E61DC 7F0B37EC 8E580000 */ lw $t8, ($s2)
|
|
/* 0E61E0 7F0B37F0 03101821 */ addu $v1, $t8, $s0
|
|
/* 0E61E4 7F0B37F4 90620008 */ lbu $v0, 8($v1)
|
|
.L7F0B37F8:
|
|
/* 0E61E8 7F0B37F8 26100008 */ addiu $s0, $s0, 8
|
|
/* 0E61EC 7F0B37FC 24630008 */ addiu $v1, $v1, 8
|
|
/* 0E61F0 7F0B3800 1440FFF0 */ bnez $v0, .L7F0B37C4
|
|
/* 0E61F4 7F0B3804 00000000 */ nop
|
|
.L7F0B3808:
|
|
/* 0E61F8 7F0B3808 8ED90000 */ lw $t9, ($s6)
|
|
.L7F0B380C:
|
|
/* 0E61FC 7F0B380C 3C108004 */ lui $s0, %hi(array_room_info + 0x10 +0x40) # $s0, 0x8004
|
|
/* 0E6200 7F0B3810 2610ACB4 */ addiu $s0, %lo(array_room_info + 0x10 +0x40) # addiu $s0, $s0, -0x534c
|
|
/* 0E6204 7F0B3814 2B210002 */ slti $at, $t9, 2
|
|
/* 0E6208 7F0B3818 14200064 */ bnez $at, .L7F0B39AC
|
|
/* 0E620C 7F0B381C 24110001 */ li $s1, 1
|
|
/* 0E6210 7F0B3820 8EA40000 */ lw $a0, ($s5)
|
|
/* 0E6214 7F0B3824 24130018 */ li $s3, 24
|
|
/* 0E6218 7F0B3828 2417FFFF */ li $s7, -1
|
|
/* 0E621C 7F0B382C 24840018 */ addiu $a0, $a0, 0x18
|
|
.L7F0B3830:
|
|
/* 0E6220 7F0B3830 A2000002 */ sb $zero, 2($s0)
|
|
/* 0E6224 7F0B3834 A2000035 */ sb $zero, 0x35($s0)
|
|
/* 0E6228 7F0B3838 8C880004 */ lw $t0, 4($a0)
|
|
/* 0E622C 7F0B383C 26320001 */ addiu $s2, $s1, 1
|
|
/* 0E6230 7F0B3840 51000020 */ beql $t0, $zero, .L7F0B38C4
|
|
/* 0E6234 7F0B3844 AE000014 */ sw $zero, 0x14($s0)
|
|
/* 0E6238 7F0B3848 26320001 */ addiu $s2, $s1, 1
|
|
/* 0E623C 7F0B384C 0FC2CCDC */ jal sub_GAME_7F0B4034
|
|
/* 0E6240 7F0B3850 02402025 */ move $a0, $s2
|
|
/* 0E6244 7F0B3854 02202025 */ move $a0, $s1
|
|
/* 0E6248 7F0B3858 0FC2CCF0 */ jal sub_GAME_7F0B4084
|
|
/* 0E624C 7F0B385C AFA20068 */ sw $v0, 0x68($sp)
|
|
/* 0E6250 7F0B3860 8FA50068 */ lw $a1, 0x68($sp)
|
|
/* 0E6254 7F0B3864 0045082A */ slt $at, $v0, $a1
|
|
/* 0E6258 7F0B3868 1420000B */ bnez $at, .L7F0B3898
|
|
/* 0E625C 7F0B386C 00000000 */ nop
|
|
/* 0E6260 7F0B3870 00B40019 */ multu $a1, $s4
|
|
/* 0E6264 7F0B3874 8EA30000 */ lw $v1, ($s5)
|
|
/* 0E6268 7F0B3878 00732021 */ addu $a0, $v1, $s3
|
|
/* 0E626C 7F0B387C 8C8C0004 */ lw $t4, 4($a0)
|
|
/* 0E6270 7F0B3880 00004812 */ mflo $t1
|
|
/* 0E6274 7F0B3884 00695021 */ addu $t2, $v1, $t1
|
|
/* 0E6278 7F0B3888 8D4B0004 */ lw $t3, 4($t2)
|
|
/* 0E627C 7F0B388C 016C6823 */ subu $t5, $t3, $t4
|
|
/* 0E6280 7F0B3890 1000000C */ b .L7F0B38C4
|
|
/* 0E6284 7F0B3894 AE0D0014 */ sw $t5, 0x14($s0)
|
|
.L7F0B3898:
|
|
/* 0E6288 7F0B3898 00540019 */ multu $v0, $s4
|
|
/* 0E628C 7F0B389C 8EA30000 */ lw $v1, ($s5)
|
|
/* 0E6290 7F0B38A0 00732021 */ addu $a0, $v1, $s3
|
|
/* 0E6294 7F0B38A4 8C990004 */ lw $t9, 4($a0)
|
|
/* 0E6298 7F0B38A8 00007012 */ mflo $t6
|
|
/* 0E629C 7F0B38AC 006E7821 */ addu $t7, $v1, $t6
|
|
/* 0E62A0 7F0B38B0 8DF80008 */ lw $t8, 8($t7)
|
|
/* 0E62A4 7F0B38B4 03194023 */ subu $t0, $t8, $t9
|
|
/* 0E62A8 7F0B38B8 10000002 */ b .L7F0B38C4
|
|
/* 0E62AC 7F0B38BC AE080014 */ sw $t0, 0x14($s0)
|
|
/* 0E62B0 7F0B38C0 AE000014 */ sw $zero, 0x14($s0)
|
|
.L7F0B38C4:
|
|
/* 0E62B4 7F0B38C4 8C890008 */ lw $t1, 8($a0)
|
|
/* 0E62B8 7F0B38C8 5120001E */ beql $t1, $zero, .L7F0B3944
|
|
/* 0E62BC 7F0B38CC AE000018 */ sw $zero, 0x18($s0)
|
|
/* 0E62C0 7F0B38D0 0FC2CCDC */ jal sub_GAME_7F0B4034
|
|
/* 0E62C4 7F0B38D4 02402025 */ move $a0, $s2
|
|
/* 0E62C8 7F0B38D8 00408825 */ move $s1, $v0
|
|
/* 0E62CC 7F0B38DC 0FC2CCF0 */ jal sub_GAME_7F0B4084
|
|
/* 0E62D0 7F0B38E0 02402025 */ move $a0, $s2
|
|
/* 0E62D4 7F0B38E4 0051082A */ slt $at, $v0, $s1
|
|
/* 0E62D8 7F0B38E8 1420000B */ bnez $at, .L7F0B3918
|
|
/* 0E62DC 7F0B38EC 00000000 */ nop
|
|
/* 0E62E0 7F0B38F0 02340019 */ multu $s1, $s4
|
|
/* 0E62E4 7F0B38F4 8EA30000 */ lw $v1, ($s5)
|
|
/* 0E62E8 7F0B38F8 00732021 */ addu $a0, $v1, $s3
|
|
/* 0E62EC 7F0B38FC 8C8D0008 */ lw $t5, 8($a0)
|
|
/* 0E62F0 7F0B3900 00005012 */ mflo $t2
|
|
/* 0E62F4 7F0B3904 006A5821 */ addu $t3, $v1, $t2
|
|
/* 0E62F8 7F0B3908 8D6C0004 */ lw $t4, 4($t3)
|
|
/* 0E62FC 7F0B390C 018D7023 */ subu $t6, $t4, $t5
|
|
/* 0E6300 7F0B3910 1000000C */ b .L7F0B3944
|
|
/* 0E6304 7F0B3914 AE0E0018 */ sw $t6, 0x18($s0)
|
|
.L7F0B3918:
|
|
/* 0E6308 7F0B3918 00540019 */ multu $v0, $s4
|
|
/* 0E630C 7F0B391C 8EA30000 */ lw $v1, ($s5)
|
|
/* 0E6310 7F0B3920 00732021 */ addu $a0, $v1, $s3
|
|
/* 0E6314 7F0B3924 8C880008 */ lw $t0, 8($a0)
|
|
/* 0E6318 7F0B3928 00007812 */ mflo $t7
|
|
/* 0E631C 7F0B392C 006FC021 */ addu $t8, $v1, $t7
|
|
/* 0E6320 7F0B3930 8F190008 */ lw $t9, 8($t8)
|
|
/* 0E6324 7F0B3934 03284823 */ subu $t1, $t9, $t0
|
|
/* 0E6328 7F0B3938 10000002 */ b .L7F0B3944
|
|
/* 0E632C 7F0B393C AE090018 */ sw $t1, 0x18($s0)
|
|
/* 0E6330 7F0B3940 AE000018 */ sw $zero, 0x18($s0)
|
|
.L7F0B3944:
|
|
/* 0E6334 7F0B3944 8C8A0000 */ lw $t2, ($a0)
|
|
/* 0E6338 7F0B3948 5140000F */ beql $t2, $zero, .L7F0B3988
|
|
/* 0E633C 7F0B394C AE000010 */ sw $zero, 0x10($s0)
|
|
/* 0E6340 7F0B3950 0FC2CD04 */ jal sub_GAME_7F0B40D4
|
|
/* 0E6344 7F0B3954 02402025 */ move $a0, $s2
|
|
/* 0E6348 7F0B3958 00540019 */ multu $v0, $s4
|
|
/* 0E634C 7F0B395C 8EA30000 */ lw $v1, ($s5)
|
|
/* 0E6350 7F0B3960 8EC50000 */ lw $a1, ($s6)
|
|
/* 0E6354 7F0B3964 00732021 */ addu $a0, $v1, $s3
|
|
/* 0E6358 7F0B3968 8C8E0000 */ lw $t6, ($a0)
|
|
/* 0E635C 7F0B396C 00005812 */ mflo $t3
|
|
/* 0E6360 7F0B3970 006B6021 */ addu $t4, $v1, $t3
|
|
/* 0E6364 7F0B3974 8D8D0000 */ lw $t5, ($t4)
|
|
/* 0E6368 7F0B3978 01AE7823 */ subu $t7, $t5, $t6
|
|
/* 0E636C 7F0B397C 10000003 */ b .L7F0B398C
|
|
/* 0E6370 7F0B3980 AE0F0010 */ sw $t7, 0x10($s0)
|
|
/* 0E6374 7F0B3984 AE000010 */ sw $zero, 0x10($s0)
|
|
.L7F0B3988:
|
|
/* 0E6378 7F0B3988 8EC50000 */ lw $a1, ($s6)
|
|
.L7F0B398C:
|
|
/* 0E637C 7F0B398C 0245082A */ slt $at, $s2, $a1
|
|
/* 0E6380 7F0B3990 02408825 */ move $s1, $s2
|
|
/* 0E6384 7F0B3994 26100050 */ addiu $s0, $s0, 0x50
|
|
/* 0E6388 7F0B3998 26730018 */ addiu $s3, $s3, 0x18
|
|
/* 0E638C 7F0B399C 24840018 */ addiu $a0, $a0, 0x18
|
|
/* 0E6390 7F0B39A0 1420FFA3 */ bnez $at, .L7F0B3830
|
|
/* 0E6394 7F0B39A4 AE17FFD8 */ sw $s7, -0x28($s0)
|
|
/* 0E6398 7F0B39A8 24110001 */ li $s1, 1
|
|
.L7F0B39AC:
|
|
/* 0E639C 7F0B39AC 0FC2EE4C */ jal sub_GAME_7F0BC530
|
|
/* 0E63A0 7F0B39B0 00000000 */ nop
|
|
/* 0E63A4 7F0B39B4 8ED80000 */ lw $t8, ($s6)
|
|
/* 0E63A8 7F0B39B8 2B010002 */ slti $at, $t8, 2
|
|
/* 0E63AC 7F0B39BC 54200009 */ bnezl $at, .L7F0B39E4
|
|
/* 0E63B0 7F0B39C0 8FC40000 */ lw $a0, ($fp)
|
|
.L7F0B39C4:
|
|
/* 0E63B4 7F0B39C4 0FC2E175 */ jal sub_GAME_7F0B9338
|
|
/* 0E63B8 7F0B39C8 02202025 */ move $a0, $s1
|
|
/* 0E63BC 7F0B39CC 8ED90000 */ lw $t9, ($s6)
|
|
/* 0E63C0 7F0B39D0 26310001 */ addiu $s1, $s1, 1
|
|
/* 0E63C4 7F0B39D4 0239082A */ slt $at, $s1, $t9
|
|
/* 0E63C8 7F0B39D8 1420FFFA */ bnez $at, .L7F0B39C4
|
|
/* 0E63CC 7F0B39DC 00000000 */ nop
|
|
/* 0E63D0 7F0B39E0 8FC40000 */ lw $a0, ($fp)
|
|
.L7F0B39E4:
|
|
/* 0E63D4 7F0B39E4 3C038004 */ lui $v1, %hi(D_800443C4) # $v1, 0x8004
|
|
/* 0E63D8 7F0B39E8 2463D8A4 */ addiu $v1, %lo(D_800443C4) # addiu $v1, $v1, -0x275c
|
|
/* 0E63DC 7F0B39EC 8C820000 */ lw $v0, ($a0)
|
|
/* 0E63E0 7F0B39F0 00008825 */ move $s1, $zero
|
|
/* 0E63E4 7F0B39F4 00008025 */ move $s0, $zero
|
|
/* 0E63E8 7F0B39F8 10400010 */ beqz $v0, .L7F0B3A3C
|
|
/* 0E63EC 7F0B39FC 00000000 */ nop
|
|
/* 0E63F0 7F0B3A00 02202025 */ move $a0, $s1
|
|
.L7F0B3A04:
|
|
/* 0E63F4 7F0B3A04 0FC2E2F6 */ jal sub_GAME_7F0B993C
|
|
/* 0E63F8 7F0B3A08 AFA3004C */ sw $v1, 0x4c($sp)
|
|
/* 0E63FC 7F0B3A0C 8FC40000 */ lw $a0, ($fp)
|
|
/* 0E6400 7F0B3A10 8FA3004C */ lw $v1, 0x4c($sp)
|
|
/* 0E6404 7F0B3A14 26100008 */ addiu $s0, $s0, 8
|
|
/* 0E6408 7F0B3A18 00904021 */ addu $t0, $a0, $s0
|
|
/* 0E640C 7F0B3A1C A0620000 */ sb $v0, ($v1)
|
|
/* 0E6410 7F0B3A20 8D090000 */ lw $t1, ($t0)
|
|
/* 0E6414 7F0B3A24 26310001 */ addiu $s1, $s1, 1
|
|
/* 0E6418 7F0B3A28 24630001 */ addiu $v1, $v1, 1
|
|
/* 0E641C 7F0B3A2C 5520FFF5 */ bnezl $t1, .L7F0B3A04
|
|
/* 0E6420 7F0B3A30 02202025 */ move $a0, $s1
|
|
/* 0E6424 7F0B3A34 00008825 */ move $s1, $zero
|
|
/* 0E6428 7F0B3A38 8C820000 */ lw $v0, ($a0)
|
|
.L7F0B3A3C:
|
|
/* 0E642C 7F0B3A3C 1040000B */ beqz $v0, .L7F0B3A6C
|
|
/* 0E6430 7F0B3A40 00008025 */ move $s0, $zero
|
|
.L7F0B3A44:
|
|
/* 0E6434 7F0B3A44 0FC2E38C */ jal sub_GAME_7F0B9B94
|
|
/* 0E6438 7F0B3A48 02202025 */ move $a0, $s1
|
|
/* 0E643C 7F0B3A4C 8FC40000 */ lw $a0, ($fp)
|
|
/* 0E6440 7F0B3A50 26100008 */ addiu $s0, $s0, 8
|
|
/* 0E6444 7F0B3A54 26310001 */ addiu $s1, $s1, 1
|
|
/* 0E6448 7F0B3A58 00905021 */ addu $t2, $a0, $s0
|
|
/* 0E644C 7F0B3A5C 8D4B0000 */ lw $t3, ($t2)
|
|
/* 0E6450 7F0B3A60 1560FFF8 */ bnez $t3, .L7F0B3A44
|
|
/* 0E6454 7F0B3A64 00000000 */ nop
|
|
/* 0E6458 7F0B3A68 00008825 */ move $s1, $zero
|
|
.L7F0B3A6C:
|
|
/* 0E645C 7F0B3A6C 8ECC0000 */ lw $t4, ($s6)
|
|
/* 0E6460 7F0B3A70 5980000A */ blezl $t4, .L7F0B3A9C
|
|
/* 0E6464 7F0B3A74 8C8E0000 */ lw $t6, ($a0)
|
|
.L7F0B3A78:
|
|
/* 0E6468 7F0B3A78 0FC2E21D */ jal sub_GAME_7F0B95D8
|
|
/* 0E646C 7F0B3A7C 02202025 */ move $a0, $s1
|
|
/* 0E6470 7F0B3A80 8ECD0000 */ lw $t5, ($s6)
|
|
/* 0E6474 7F0B3A84 26310001 */ addiu $s1, $s1, 1
|
|
/* 0E6478 7F0B3A88 022D082A */ slt $at, $s1, $t5
|
|
/* 0E647C 7F0B3A8C 1420FFFA */ bnez $at, .L7F0B3A78
|
|
/* 0E6480 7F0B3A90 00000000 */ nop
|
|
/* 0E6484 7F0B3A94 8FC40000 */ lw $a0, ($fp)
|
|
/* 0E6488 7F0B3A98 8C8E0000 */ lw $t6, ($a0)
|
|
.L7F0B3A9C:
|
|
/* 0E648C 7F0B3A9C 00008025 */ move $s0, $zero
|
|
/* 0E6490 7F0B3AA0 00801025 */ move $v0, $a0
|
|
/* 0E6494 7F0B3AA4 11C0000A */ beqz $t6, .L7F0B3AD0
|
|
/* 0E6498 7F0B3AA8 00000000 */ nop
|
|
/* 0E649C 7F0B3AAC 904F0006 */ lbu $t7, 6($v0)
|
|
.L7F0B3AB0:
|
|
/* 0E64A0 7F0B3AB0 26100008 */ addiu $s0, $s0, 8
|
|
/* 0E64A4 7F0B3AB4 31F800FE */ andi $t8, $t7, 0xfe
|
|
/* 0E64A8 7F0B3AB8 A0580006 */ sb $t8, 6($v0)
|
|
/* 0E64AC 7F0B3ABC 8FD90000 */ lw $t9, ($fp)
|
|
/* 0E64B0 7F0B3AC0 03301021 */ addu $v0, $t9, $s0
|
|
/* 0E64B4 7F0B3AC4 8C480000 */ lw $t0, ($v0)
|
|
/* 0E64B8 7F0B3AC8 5500FFF9 */ bnezl $t0, .L7F0B3AB0
|
|
/* 0E64BC 7F0B3ACC 904F0006 */ lbu $t7, 6($v0)
|
|
.L7F0B3AD0:
|
|
/* 0E64C0 7F0B3AD0 0FC2CAAB */ jal sub_GAME_7F0B37EC
|
|
/* 0E64C4 7F0B3AD4 00000000 */ nop
|
|
.L7F0B3AD8:
|
|
/* 0E64C8 7F0B3AD8 0FC2E78B */ jal fogRemoved7F0BAA5C
|
|
/* 0E64CC 7F0B3ADC 8FA400B8 */ lw $a0, 0xb8($sp)
|
|
/* 0E64D0 7F0B3AE0 8FBF003C */ lw $ra, 0x3c($sp)
|
|
/* 0E64D4 7F0B3AE4 240900C8 */ li $t1, 200
|
|
/* 0E64D8 7F0B3AE8 3C018004 */ lui $at, %hi(D_800442F8) # $at, 0x8004
|
|
/* 0E64DC 7F0B3AEC 8FB00018 */ lw $s0, 0x18($sp)
|
|
/* 0E64E0 7F0B3AF0 8FB1001C */ lw $s1, 0x1c($sp)
|
|
/* 0E64E4 7F0B3AF4 8FB20020 */ lw $s2, 0x20($sp)
|
|
/* 0E64E8 7F0B3AF8 8FB30024 */ lw $s3, 0x24($sp)
|
|
/* 0E64EC 7F0B3AFC 8FB40028 */ lw $s4, 0x28($sp)
|
|
/* 0E64F0 7F0B3B00 8FB5002C */ lw $s5, 0x2c($sp)
|
|
/* 0E64F4 7F0B3B04 8FB60030 */ lw $s6, 0x30($sp)
|
|
/* 0E64F8 7F0B3B08 8FB70034 */ lw $s7, 0x34($sp)
|
|
/* 0E64FC 7F0B3B0C 8FBE0038 */ lw $fp, 0x38($sp)
|
|
/* 0E6500 7F0B3B10 AC29D7D8 */ sw $t1, %lo(D_800442F8)($at)
|
|
/* 0E6504 7F0B3B14 03E00008 */ jr $ra
|
|
/* 0E6508 7F0B3B18 27BD00B8 */ addiu $sp, $sp, 0xb8
|
|
)
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void cleanup_rooms(void) {
|
|
unload_rooms();
|
|
matrix_4x4_7F058C4C(1.0);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void sub_GAME_7F0B4810(f32 arg0) {
|
|
room_data_float1 = arg0;
|
|
room_data_float2 = (f32) (1.0f / arg0);
|
|
}
|
|
|
|
|
|
f32 get_room_data_float2(void){
|
|
return room_data_float2;
|
|
}
|
|
|
|
f32 get_room_data_float1(void){
|
|
return room_data_float1;
|
|
}
|
|
|
|
|
|
f32 sub_GAME_7F0B4848(void)
|
|
{
|
|
return levelinfotable[levelentry_index].unknownfloat / levelinfotable[levelentry_index].levelscale;
|
|
}
|
|
|
|
|
|
//sub_GAME_7F0B4878
|
|
f32 bgGetLevelVisibilityScale(void) {
|
|
return mCurrentLevelVisibilityScale;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
void sub_GAME_7F0B4884(void) {
|
|
|
|
}
|
|
#else
|
|
GLOBAL_ASM(
|
|
.late_rodata
|
|
/*D:80058C58*/
|
|
glabel jpt_80058C58
|
|
.word .L7F0B4914
|
|
.word .L7F0B4914
|
|
.word .L7F0B4914
|
|
.word .L7F0B491C
|
|
.word .L7F0B491C
|
|
.word .L7F0B491C
|
|
.word .L7F0B4914
|
|
.word .L7F0B491C
|
|
.word .L7F0B4914
|
|
|
|
.text
|
|
glabel sub_GAME_7F0B4884
|
|
/* 0E93B4 7F0B4884 27BDFFC0 */ addiu $sp, $sp, -0x40
|
|
/* 0E93B8 7F0B4888 AFBF003C */ sw $ra, 0x3c($sp)
|
|
/* 0E93BC 7F0B488C AFB60030 */ sw $s6, 0x30($sp)
|
|
/* 0E93C0 7F0B4890 3C018008 */ lui $at, %hi(num_visible_rooms_in_cur_global_vis_packet)
|
|
/* 0E93C4 7F0B4894 AFBE0038 */ sw $fp, 0x38($sp)
|
|
/* 0E93C8 7F0B4898 AFB70034 */ sw $s7, 0x34($sp)
|
|
/* 0E93CC 7F0B489C AFB5002C */ sw $s5, 0x2c($sp)
|
|
/* 0E93D0 7F0B48A0 AFB40028 */ sw $s4, 0x28($sp)
|
|
/* 0E93D4 7F0B48A4 AFB30024 */ sw $s3, 0x24($sp)
|
|
/* 0E93D8 7F0B48A8 AFB20020 */ sw $s2, 0x20($sp)
|
|
/* 0E93DC 7F0B48AC AFB1001C */ sw $s1, 0x1c($sp)
|
|
/* 0E93E0 7F0B48B0 AFB00018 */ sw $s0, 0x18($sp)
|
|
/* 0E93E4 7F0B48B4 2416FFFF */ li $s6, -1
|
|
/* 0E93E8 7F0B48B8 0FC26C54 */ jal get_cur_playernum
|
|
/* 0E93EC 7F0B48BC AC20C038 */ sw $zero, %lo(num_visible_rooms_in_cur_global_vis_packet)($at)
|
|
/* 0E93F0 7F0B48C0 0FC26D36 */ jal sub_GAME_7F09B4D8
|
|
/* 0E93F4 7F0B48C4 00402025 */ move $a0, $v0
|
|
/* 0E93F8 7F0B48C8 14400003 */ bnez $v0, .L7F0B48D8
|
|
/* 0E93FC 7F0B48CC 00000000 */ nop
|
|
/* 0E9400 7F0B48D0 0FC2D9BA */ jal sub_GAME_7F0B66E8
|
|
/* 0E9404 7F0B48D4 00000000 */ nop
|
|
.L7F0B48D8:
|
|
/* 0E9408 7F0B48D8 0FC1E94A */ jal get_camera_mode
|
|
/* 0E940C 7F0B48DC 00000000 */ nop
|
|
/* 0E9410 7F0B48E0 3C038004 */ lui $v1, %hi(D_800442F8)
|
|
/* 0E9414 7F0B48E4 244FFFFF */ addiu $t7, $v0, -1
|
|
/* 0E9418 7F0B48E8 246342F8 */ addiu $v1, %lo(D_800442F8) # addiu $v1, $v1, 0x42f8
|
|
/* 0E941C 7F0B48EC 240E0003 */ li $t6, 3
|
|
/* 0E9420 7F0B48F0 2DE10009 */ sltiu $at, $t7, 9
|
|
/* 0E9424 7F0B48F4 10200009 */ beqz $at, .L7F0B491C
|
|
/* 0E9428 7F0B48F8 AC6E0000 */ sw $t6, ($v1)
|
|
/* 0E942C 7F0B48FC 000F7880 */ sll $t7, $t7, 2
|
|
/* 0E9430 7F0B4900 3C018006 */ lui $at, %hi(jpt_80058C58)
|
|
/* 0E9434 7F0B4904 002F0821 */ addu $at, $at, $t7
|
|
/* 0E9438 7F0B4908 8C2F8C58 */ lw $t7, %lo(jpt_80058C58)($at)
|
|
.L7F0B490C:
|
|
/* 0E943C 7F0B490C 01E00008 */ jr $t7
|
|
/* 0E9440 7F0B4910 00000000 */ nop
|
|
.L7F0B4914:
|
|
/* 0E9444 7F0B4914 241800C8 */ li $t8, 200
|
|
/* 0E9448 7F0B4918 AC780000 */ sw $t8, ($v1)
|
|
def_7F0B490C:
|
|
.L7F0B491C:
|
|
/* 0E944C 7F0B491C 0FC227E6 */ jal bondviewGetCurrentPlayersRoom
|
|
/* 0E9450 7F0B4920 00000000 */ nop
|
|
/* 0E9454 7F0B4924 3C018004 */ lui $at, %hi(g_BgCurrentRoom)
|
|
/* 0E9458 7F0B4928 00409825 */ move $s3, $v0
|
|
/* 0E945C 7F0B492C 0FC227F5 */ jal bondviewGetCurrentPlayersPosition
|
|
/* 0E9460 7F0B4930 AC224838 */ sw $v0, %lo(g_BgCurrentRoom)($at)
|
|
/* 0E9464 7F0B4934 0FC22800 */ jal bondviewGetCurrentPlayersPosition3
|
|
/* 0E9468 7F0B4938 0040A025 */ move $s4, $v0
|
|
/* 0E946C 7F0B493C 3C038008 */ lui $v1, %hi(g_BgPortals)
|
|
/* 0E9470 7F0B4940 0040A825 */ move $s5, $v0
|
|
/* 0E9474 7F0B4944 8C63FF80 */ lw $v1, %lo(g_BgPortals)($v1)
|
|
/* 0E9478 7F0B4948 0000B825 */ move $s7, $zero
|
|
/* 0E947C 7F0B494C 241E000B */ li $fp, 11
|
|
/* 0E9480 7F0B4950 8C790000 */ lw $t9, ($v1)
|
|
.L7F0B4954:
|
|
/* 0E9484 7F0B4954 3C128004 */ lui $s2, %hi(D_800443C4)
|
|
/* 0E9488 7F0B4958 265243C4 */ addiu $s2, %lo(D_800443C4) # addiu $s2, $s2, 0x43c4
|
|
/* 0E948C 7F0B495C 13200025 */ beqz $t9, .L7F0B49F4
|
|
/* 0E9490 7F0B4960 00008025 */ move $s0, $zero
|
|
/* 0E9494 7F0B4964 00008825 */ move $s1, $zero
|
|
/* 0E9498 7F0B4968 00601025 */ move $v0, $v1
|
|
.L7F0B496C:
|
|
/* 0E949C 7F0B496C 92480000 */ lbu $t0, ($s2)
|
|
/* 0E94A0 7F0B4970 5500001B */ bnezl $t0, .L7F0B49E0
|
|
/* 0E94A4 7F0B4974 8C4E0008 */ lw $t6, 8($v0)
|
|
/* 0E94A8 7F0B4978 52160019 */ beql $s0, $s6, .L7F0B49E0
|
|
/* 0E94AC 7F0B497C 8C4E0008 */ lw $t6, 8($v0)
|
|
/* 0E94B0 7F0B4980 90490004 */ lbu $t1, 4($v0)
|
|
/* 0E94B4 7F0B4984 02002025 */ move $a0, $s0
|
|
/* 0E94B8 7F0B4988 02802825 */ move $a1, $s4
|
|
/* 0E94BC 7F0B498C 12690004 */ beq $s3, $t1, .L7F0B49A0
|
|
/* 0E94C0 7F0B4990 00000000 */ nop
|
|
/* 0E94C4 7F0B4994 904A0005 */ lbu $t2, 5($v0)
|
|
/* 0E94C8 7F0B4998 166A000D */ bne $s3, $t2, .L7F0B49D0
|
|
/* 0E94CC 7F0B499C 00000000 */ nop
|
|
.L7F0B49A0:
|
|
/* 0E94D0 7F0B49A0 0FC2E7C5 */ jal sub_GAME_7F0B9F14
|
|
/* 0E94D4 7F0B49A4 02A03025 */ move $a2, $s5
|
|
/* 0E94D8 7F0B49A8 10400009 */ beqz $v0, .L7F0B49D0
|
|
/* 0E94DC 7F0B49AC 3C038008 */ lui $v1, %hi(g_BgPortals)
|
|
/* 0E94E0 7F0B49B0 8C63FF80 */ lw $v1, %lo(g_BgPortals)($v1)
|
|
/* 0E94E4 7F0B49B4 0200B025 */ move $s6, $s0
|
|
/* 0E94E8 7F0B49B8 00711021 */ addu $v0, $v1, $s1
|
|
/* 0E94EC 7F0B49BC 904C0004 */ lbu $t4, 4($v0)
|
|
/* 0E94F0 7F0B49C0 904B0005 */ lbu $t3, 5($v0)
|
|
/* 0E94F4 7F0B49C4 026C6826 */ xor $t5, $s3, $t4
|
|
/* 0E94F8 7F0B49C8 1000000A */ b .L7F0B49F4
|
|
/* 0E94FC 7F0B49CC 016D9826 */ xor $s3, $t3, $t5
|
|
.L7F0B49D0:
|
|
/* 0E9500 7F0B49D0 3C038008 */ lui $v1, %hi(g_BgPortals)
|
|
/* 0E9504 7F0B49D4 8C63FF80 */ lw $v1, %lo(g_BgPortals)($v1)
|
|
/* 0E9508 7F0B49D8 00711021 */ addu $v0, $v1, $s1
|
|
/* 0E950C 7F0B49DC 8C4E0008 */ lw $t6, 8($v0)
|
|
.L7F0B49E0:
|
|
/* 0E9510 7F0B49E0 26100001 */ addiu $s0, $s0, 1
|
|
/* 0E9514 7F0B49E4 26520001 */ addiu $s2, $s2, 1
|
|
/* 0E9518 7F0B49E8 26310008 */ addiu $s1, $s1, 8
|
|
/* 0E951C 7F0B49EC 15C0FFDF */ bnez $t6, .L7F0B496C
|
|
/* 0E9520 7F0B49F0 24420008 */ addiu $v0, $v0, 8
|
|
.L7F0B49F4:
|
|
/* 0E9524 7F0B49F4 001078C0 */ sll $t7, $s0, 3
|
|
/* 0E9528 7F0B49F8 006FC021 */ addu $t8, $v1, $t7
|
|
/* 0E952C 7F0B49FC 8F190000 */ lw $t9, ($t8)
|
|
/* 0E9530 7F0B4A00 26F70001 */ addiu $s7, $s7, 1
|
|
/* 0E9534 7F0B4A04 13200003 */ beqz $t9, .L7F0B4A14
|
|
/* 0E9538 7F0B4A08 00000000 */ nop
|
|
/* 0E953C 7F0B4A0C 56FEFFD1 */ bnel $s7, $fp, .L7F0B4954
|
|
/* 0E9540 7F0B4A10 8C790000 */ lw $t9, ($v1)
|
|
.L7F0B4A14:
|
|
/* 0E9544 7F0B4A14 3C018004 */ lui $at, %hi(g_BgCurrentRoom)
|
|
/* 0E9548 7F0B4A18 0FC2E29B */ jal sub_GAME_7F0B8A6C
|
|
/* 0E954C 7F0B4A1C AC334838 */ sw $s3, %lo(g_BgCurrentRoom)($at)
|
|
/* 0E9550 7F0B4A20 8FBF003C */ lw $ra, 0x3c($sp)
|
|
/* 0E9554 7F0B4A24 8FB00018 */ lw $s0, 0x18($sp)
|
|
/* 0E9558 7F0B4A28 8FB1001C */ lw $s1, 0x1c($sp)
|
|
/* 0E955C 7F0B4A2C 8FB20020 */ lw $s2, 0x20($sp)
|
|
/* 0E9560 7F0B4A30 8FB30024 */ lw $s3, 0x24($sp)
|
|
/* 0E9564 7F0B4A34 8FB40028 */ lw $s4, 0x28($sp)
|
|
/* 0E9568 7F0B4A38 8FB5002C */ lw $s5, 0x2c($sp)
|
|
/* 0E956C 7F0B4A3C 8FB60030 */ lw $s6, 0x30($sp)
|
|
/* 0E9570 7F0B4A40 8FB70034 */ lw $s7, 0x34($sp)
|
|
/* 0E9574 7F0B4A44 8FBE0038 */ lw $fp, 0x38($sp)
|
|
/* 0E9578 7F0B4A48 03E00008 */ jr $ra
|
|
/* 0E957C 7F0B4A4C 27BD0040 */ addiu $sp, $sp, 0x40
|
|
)
|
|
#endif
|
|
|
|
|
|
|
|
void addToByteSetMaxSize15(u8* set, u8 newElement) {
|
|
s32 i = 0;
|
|
|
|
while (i < 0x10 && set[i] != 0xFF) {
|
|
if (newElement == set[i]) {
|
|
return;
|
|
}
|
|
i++;
|
|
}
|
|
|
|
if (i < 0xF) {
|
|
set[i] = newElement;
|
|
set[i+1] = -1;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
void sub_GAME_7F0B4AB4(void) {
|
|
|
|
}
|
|
#else
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B4AB4
|
|
/* 0E95E4 7F0B4AB4 27BDFEA0 */ addiu $sp, $sp, -0x160
|
|
/* 0E95E8 7F0B4AB8 AFB5002C */ sw $s5, 0x2c($sp)
|
|
/* 0E95EC 7F0B4ABC 3C158008 */ lui $s5, %hi(g_BgPortals)
|
|
/* 0E95F0 7F0B4AC0 26B5FF80 */ addiu $s5, %lo(g_BgPortals) # addiu $s5, $s5, -0x80
|
|
/* 0E95F4 7F0B4AC4 8EA80000 */ lw $t0, ($s5)
|
|
/* 0E95F8 7F0B4AC8 AFBF003C */ sw $ra, 0x3c($sp)
|
|
/* 0E95FC 7F0B4ACC AFBE0038 */ sw $fp, 0x38($sp)
|
|
/* 0E9600 7F0B4AD0 AFB70034 */ sw $s7, 0x34($sp)
|
|
/* 0E9604 7F0B4AD4 AFB60030 */ sw $s6, 0x30($sp)
|
|
/* 0E9608 7F0B4AD8 AFB40028 */ sw $s4, 0x28($sp)
|
|
/* 0E960C 7F0B4ADC AFB30024 */ sw $s3, 0x24($sp)
|
|
/* 0E9610 7F0B4AE0 AFB20020 */ sw $s2, 0x20($sp)
|
|
/* 0E9614 7F0B4AE4 AFB1001C */ sw $s1, 0x1c($sp)
|
|
/* 0E9618 7F0B4AE8 AFB00018 */ sw $s0, 0x18($sp)
|
|
/* 0E961C 7F0B4AEC AFA7016C */ sw $a3, 0x16c($sp)
|
|
/* 0E9620 7F0B4AF0 8D0E0000 */ lw $t6, ($t0)
|
|
/* 0E9624 7F0B4AF4 00809825 */ move $s3, $a0
|
|
/* 0E9628 7F0B4AF8 00A0A025 */ move $s4, $a1
|
|
/* 0E962C 7F0B4AFC 11C00013 */ beqz $t6, .L7F0B4B4C
|
|
/* 0E9630 7F0B4B00 00C0B025 */ move $s6, $a2
|
|
/* 0E9634 7F0B4B04 27B1005C */ addiu $s1, $sp, 0x5c
|
|
/* 0E9638 7F0B4B08 00009025 */ move $s2, $zero
|
|
/* 0E963C 7F0B4B0C AFA0012C */ sw $zero, 0x12c($sp)
|
|
/* 0E9640 7F0B4B10 8FA4012C */ lw $a0, 0x12c($sp)
|
|
.L7F0B4B14:
|
|
/* 0E9644 7F0B4B14 02602825 */ move $a1, $s3
|
|
/* 0E9648 7F0B4B18 0FC2E7C5 */ jal sub_GAME_7F0B9F14
|
|
/* 0E964C 7F0B4B1C 02803025 */ move $a2, $s4
|
|
/* 0E9650 7F0B4B20 A2220000 */ sb $v0, ($s1)
|
|
/* 0E9654 7F0B4B24 8FAF012C */ lw $t7, 0x12c($sp)
|
|
/* 0E9658 7F0B4B28 8EA80000 */ lw $t0, ($s5)
|
|
/* 0E965C 7F0B4B2C 26520008 */ addiu $s2, $s2, 8
|
|
/* 0E9660 7F0B4B30 25F80001 */ addiu $t8, $t7, 1
|
|
/* 0E9664 7F0B4B34 AFB8012C */ sw $t8, 0x12c($sp)
|
|
/* 0E9668 7F0B4B38 0112C821 */ addu $t9, $t0, $s2
|
|
/* 0E966C 7F0B4B3C 8F290000 */ lw $t1, ($t9)
|
|
/* 0E9670 7F0B4B40 26310001 */ addiu $s1, $s1, 1
|
|
/* 0E9674 7F0B4B44 5520FFF3 */ bnezl $t1, .L7F0B4B14
|
|
/* 0E9678 7F0B4B48 8FA4012C */ lw $a0, 0x12c($sp)
|
|
.L7F0B4B4C:
|
|
/* 0E967C 7F0B4B4C 27A30150 */ addiu $v1, $sp, 0x150
|
|
/* 0E9680 7F0B4B50 02C02025 */ move $a0, $s6
|
|
/* 0E9684 7F0B4B54 27A20158 */ addiu $v0, $sp, 0x158
|
|
.L7F0B4B58:
|
|
/* 0E9688 7F0B4B58 908A0000 */ lbu $t2, ($a0)
|
|
/* 0E968C 7F0B4B5C 24630001 */ addiu $v1, $v1, 1
|
|
/* 0E9690 7F0B4B60 0062082B */ sltu $at, $v1, $v0
|
|
/* 0E9694 7F0B4B64 24840001 */ addiu $a0, $a0, 1
|
|
/* 0E9698 7F0B4B68 1420FFFB */ bnez $at, .L7F0B4B58
|
|
/* 0E969C 7F0B4B6C A06AFFFF */ sb $t2, -1($v1)
|
|
/* 0E96A0 7F0B4B70 02C02025 */ move $a0, $s6
|
|
/* 0E96A4 7F0B4B74 27A20130 */ addiu $v0, $sp, 0x130
|
|
/* 0E96A8 7F0B4B78 27A30138 */ addiu $v1, $sp, 0x138
|
|
.L7F0B4B7C:
|
|
/* 0E96AC 7F0B4B7C 908B0000 */ lbu $t3, ($a0)
|
|
/* 0E96B0 7F0B4B80 24420001 */ addiu $v0, $v0, 1
|
|
/* 0E96B4 7F0B4B84 0043082B */ sltu $at, $v0, $v1
|
|
/* 0E96B8 7F0B4B88 24840001 */ addiu $a0, $a0, 1
|
|
/* 0E96BC 7F0B4B8C 1420FFFB */ bnez $at, .L7F0B4B7C
|
|
/* 0E96C0 7F0B4B90 A04BFFFF */ sb $t3, -1($v0)
|
|
/* 0E96C4 7F0B4B94 93AC0150 */ lbu $t4, 0x150($sp)
|
|
/* 0E96C8 7F0B4B98 240500FF */ li $a1, 255
|
|
/* 0E96CC 7F0B4B9C AFA00124 */ sw $zero, 0x124($sp)
|
|
/* 0E96D0 7F0B4BA0 10AC0009 */ beq $a1, $t4, .L7F0B4BC8
|
|
/* 0E96D4 7F0B4BA4 27BE0160 */ addiu $fp, $sp, 0x160
|
|
/* 0E96D8 7F0B4BA8 27A30150 */ addiu $v1, $sp, 0x150
|
|
/* 0E96DC 7F0B4BAC 27A20160 */ addiu $v0, $sp, 0x160
|
|
/* 0E96E0 7F0B4BB0 906D0001 */ lbu $t5, 1($v1)
|
|
.L7F0B4BB4:
|
|
/* 0E96E4 7F0B4BB4 24630001 */ addiu $v1, $v1, 1
|
|
/* 0E96E8 7F0B4BB8 50AD0004 */ beql $a1, $t5, .L7F0B4BCC
|
|
/* 0E96EC 7F0B4BBC AFA00124 */ sw $zero, 0x124($sp)
|
|
/* 0E96F0 7F0B4BC0 5462FFFC */ bnel $v1, $v0, .L7F0B4BB4
|
|
/* 0E96F4 7F0B4BC4 906D0001 */ lbu $t5, 1($v1)
|
|
.L7F0B4BC8:
|
|
/* 0E96F8 7F0B4BC8 AFA00124 */ sw $zero, 0x124($sp)
|
|
.L7F0B4BCC:
|
|
/* 0E96FC 7F0B4BCC 24170002 */ li $s7, 2
|
|
/* 0E9700 7F0B4BD0 24160001 */ li $s6, 1
|
|
/* 0E9704 7F0B4BD4 27B40130 */ addiu $s4, $sp, 0x130
|
|
/* 0E9708 7F0B4BD8 27B30140 */ addiu $s3, $sp, 0x140
|
|
.L7F0B4BDC:
|
|
/* 0E970C 7F0B4BDC 240E00FF */ li $t6, 255
|
|
/* 0E9710 7F0B4BE0 A3AE0140 */ sb $t6, 0x140($sp)
|
|
/* 0E9714 7F0B4BE4 AFA0012C */ sw $zero, 0x12c($sp)
|
|
/* 0E9718 7F0B4BE8 8D0F0000 */ lw $t7, ($t0)
|
|
/* 0E971C 7F0B4BEC 00009025 */ move $s2, $zero
|
|
/* 0E9720 7F0B4BF0 01001825 */ move $v1, $t0
|
|
/* 0E9724 7F0B4BF4 51E0003D */ beql $t7, $zero, .L7F0B4CEC
|
|
/* 0E9728 7F0B4BF8 93A40140 */ lbu $a0, 0x140($sp)
|
|
/* 0E972C 7F0B4BFC 93B80150 */ lbu $t8, 0x150($sp)
|
|
.L7F0B4C00:
|
|
/* 0E9730 7F0B4C00 8FB9012C */ lw $t9, 0x12c($sp)
|
|
/* 0E9734 7F0B4C04 27A9005C */ addiu $t1, $sp, 0x5c
|
|
/* 0E9738 7F0B4C08 10B8002E */ beq $a1, $t8, .L7F0B4CC4
|
|
/* 0E973C 7F0B4C0C 03298821 */ addu $s1, $t9, $t1
|
|
/* 0E9740 7F0B4C10 27AA0150 */ addiu $t2, $sp, 0x150
|
|
/* 0E9744 7F0B4C14 000A8021 */ addu $s0, $zero, $t2
|
|
/* 0E9748 7F0B4C18 92220000 */ lbu $v0, ($s1)
|
|
.L7F0B4C1C:
|
|
/* 0E974C 7F0B4C1C 16C20011 */ bne $s6, $v0, .L7F0B4C64
|
|
/* 0E9750 7F0B4C20 00000000 */ nop
|
|
/* 0E9754 7F0B4C24 906B0004 */ lbu $t3, 4($v1)
|
|
/* 0E9758 7F0B4C28 920C0000 */ lbu $t4, ($s0)
|
|
/* 0E975C 7F0B4C2C 02602025 */ move $a0, $s3
|
|
/* 0E9760 7F0B4C30 156C000C */ bne $t3, $t4, .L7F0B4C64
|
|
/* 0E9764 7F0B4C34 00000000 */ nop
|
|
/* 0E9768 7F0B4C38 0FC2D294 */ jal addToByteSetMaxSize15
|
|
/* 0E976C 7F0B4C3C 90650005 */ lbu $a1, 5($v1)
|
|
/* 0E9770 7F0B4C40 8EAD0000 */ lw $t5, ($s5)
|
|
/* 0E9774 7F0B4C44 02802025 */ move $a0, $s4
|
|
/* 0E9778 7F0B4C48 01B27021 */ addu $t6, $t5, $s2
|
|
/* 0E977C 7F0B4C4C 0FC2D294 */ jal addToByteSetMaxSize15
|
|
/* 0E9780 7F0B4C50 91C50005 */ lbu $a1, 5($t6)
|
|
/* 0E9784 7F0B4C54 8EA80000 */ lw $t0, ($s5)
|
|
/* 0E9788 7F0B4C58 A2200000 */ sb $zero, ($s1)
|
|
/* 0E978C 7F0B4C5C 300200FF */ andi $v0, $zero, 0xff
|
|
/* 0E9790 7F0B4C60 01121821 */ addu $v1, $t0, $s2
|
|
.L7F0B4C64:
|
|
/* 0E9794 7F0B4C64 56E20011 */ bnel $s7, $v0, .L7F0B4CAC
|
|
/* 0E9798 7F0B4C68 920A0001 */ lbu $t2, 1($s0)
|
|
/* 0E979C 7F0B4C6C 906F0005 */ lbu $t7, 5($v1)
|
|
/* 0E97A0 7F0B4C70 92180000 */ lbu $t8, ($s0)
|
|
/* 0E97A4 7F0B4C74 02602025 */ move $a0, $s3
|
|
/* 0E97A8 7F0B4C78 55F8000C */ bnel $t7, $t8, .L7F0B4CAC
|
|
/* 0E97AC 7F0B4C7C 920A0001 */ lbu $t2, 1($s0)
|
|
/* 0E97B0 7F0B4C80 0FC2D294 */ jal addToByteSetMaxSize15
|
|
/* 0E97B4 7F0B4C84 90650004 */ lbu $a1, 4($v1)
|
|
/* 0E97B8 7F0B4C88 8EB90000 */ lw $t9, ($s5)
|
|
/* 0E97BC 7F0B4C8C 02802025 */ move $a0, $s4
|
|
/* 0E97C0 7F0B4C90 03324821 */ addu $t1, $t9, $s2
|
|
/* 0E97C4 7F0B4C94 0FC2D294 */ jal addToByteSetMaxSize15
|
|
/* 0E97C8 7F0B4C98 91250004 */ lbu $a1, 4($t1)
|
|
/* 0E97CC 7F0B4C9C 8EA80000 */ lw $t0, ($s5)
|
|
/* 0E97D0 7F0B4CA0 A2200000 */ sb $zero, ($s1)
|
|
/* 0E97D4 7F0B4CA4 01121821 */ addu $v1, $t0, $s2
|
|
/* 0E97D8 7F0B4CA8 920A0001 */ lbu $t2, 1($s0)
|
|
.L7F0B4CAC:
|
|
/* 0E97DC 7F0B4CAC 240100FF */ li $at, 255
|
|
/* 0E97E0 7F0B4CB0 26100001 */ addiu $s0, $s0, 1
|
|
/* 0E97E4 7F0B4CB4 51410004 */ beql $t2, $at, .L7F0B4CC8
|
|
/* 0E97E8 7F0B4CB8 8FAB012C */ lw $t3, 0x12c($sp)
|
|
/* 0E97EC 7F0B4CBC 561EFFD7 */ bnel $s0, $fp, .L7F0B4C1C
|
|
/* 0E97F0 7F0B4CC0 92220000 */ lbu $v0, ($s1)
|
|
.L7F0B4CC4:
|
|
/* 0E97F4 7F0B4CC4 8FAB012C */ lw $t3, 0x12c($sp)
|
|
.L7F0B4CC8:
|
|
/* 0E97F8 7F0B4CC8 26520008 */ addiu $s2, $s2, 8
|
|
/* 0E97FC 7F0B4CCC 24630008 */ addiu $v1, $v1, 8
|
|
/* 0E9800 7F0B4CD0 256C0001 */ addiu $t4, $t3, 1
|
|
/* 0E9804 7F0B4CD4 AFAC012C */ sw $t4, 0x12c($sp)
|
|
/* 0E9808 7F0B4CD8 8C6D0000 */ lw $t5, ($v1)
|
|
/* 0E980C 7F0B4CDC 240500FF */ li $a1, 255
|
|
/* 0E9810 7F0B4CE0 55A0FFC7 */ bnezl $t5, .L7F0B4C00
|
|
/* 0E9814 7F0B4CE4 93B80150 */ lbu $t8, 0x150($sp)
|
|
/* 0E9818 7F0B4CE8 93A40140 */ lbu $a0, 0x140($sp)
|
|
.L7F0B4CEC:
|
|
/* 0E981C 7F0B4CEC 27A30150 */ addiu $v1, $sp, 0x150
|
|
/* 0E9820 7F0B4CF0 27A20140 */ addiu $v0, $sp, 0x140
|
|
/* 0E9824 7F0B4CF4 14A40003 */ bne $a1, $a0, .L7F0B4D04
|
|
/* 0E9828 7F0B4CF8 00000000 */ nop
|
|
/* 0E982C 7F0B4CFC 10000015 */ b .L7F0B4D54
|
|
/* 0E9830 7F0B4D00 93A20150 */ lbu $v0, 0x150($sp)
|
|
.L7F0B4D04:
|
|
/* 0E9834 7F0B4D04 904E0000 */ lbu $t6, ($v0)
|
|
/* 0E9838 7F0B4D08 24420001 */ addiu $v0, $v0, 1
|
|
/* 0E983C 7F0B4D0C 27AF0150 */ addiu $t7, $sp, 0x150
|
|
/* 0E9840 7F0B4D10 004F082B */ sltu $at, $v0, $t7
|
|
/* 0E9844 7F0B4D14 24630001 */ addiu $v1, $v1, 1
|
|
/* 0E9848 7F0B4D18 1420FFFA */ bnez $at, .L7F0B4D04
|
|
/* 0E984C 7F0B4D1C A06EFFFF */ sb $t6, -1($v1)
|
|
/* 0E9850 7F0B4D20 10A40009 */ beq $a1, $a0, .L7F0B4D48
|
|
/* 0E9854 7F0B4D24 AFA00124 */ sw $zero, 0x124($sp)
|
|
/* 0E9858 7F0B4D28 02601025 */ move $v0, $s3
|
|
/* 0E985C 7F0B4D2C 90580001 */ lbu $t8, 1($v0)
|
|
.L7F0B4D30:
|
|
/* 0E9860 7F0B4D30 24420001 */ addiu $v0, $v0, 1
|
|
/* 0E9864 7F0B4D34 27B90150 */ addiu $t9, $sp, 0x150
|
|
/* 0E9868 7F0B4D38 10B80003 */ beq $a1, $t8, .L7F0B4D48
|
|
/* 0E986C 7F0B4D3C 00000000 */ nop
|
|
/* 0E9870 7F0B4D40 5459FFFB */ bnel $v0, $t9, .L7F0B4D30
|
|
/* 0E9874 7F0B4D44 90580001 */ lbu $t8, 1($v0)
|
|
.L7F0B4D48:
|
|
/* 0E9878 7F0B4D48 14A4FFA4 */ bne $a1, $a0, .L7F0B4BDC
|
|
/* 0E987C 7F0B4D4C AFA00124 */ sw $zero, 0x124($sp)
|
|
/* 0E9880 7F0B4D50 93A20150 */ lbu $v0, 0x150($sp)
|
|
.L7F0B4D54:
|
|
/* 0E9884 7F0B4D54 10A20011 */ beq $a1, $v0, .L7F0B4D9C
|
|
/* 0E9888 7F0B4D58 8FA90124 */ lw $t1, 0x124($sp)
|
|
/* 0E988C 7F0B4D5C 8FAB016C */ lw $t3, 0x16c($sp)
|
|
/* 0E9890 7F0B4D60 27AA0150 */ addiu $t2, $sp, 0x150
|
|
/* 0E9894 7F0B4D64 012A1821 */ addu $v1, $t1, $t2
|
|
/* 0E9898 7F0B4D68 90620000 */ lbu $v0, ($v1)
|
|
/* 0E989C 7F0B4D6C 01692021 */ addu $a0, $t3, $t1
|
|
/* 0E98A0 7F0B4D70 A0820000 */ sb $v0, ($a0)
|
|
.L7F0B4D74:
|
|
/* 0E98A4 7F0B4D74 8FAD0124 */ lw $t5, 0x124($sp)
|
|
/* 0E98A8 7F0B4D78 24630001 */ addiu $v1, $v1, 1
|
|
/* 0E98AC 7F0B4D7C 24840001 */ addiu $a0, $a0, 1
|
|
/* 0E98B0 7F0B4D80 25AE0001 */ addiu $t6, $t5, 1
|
|
/* 0E98B4 7F0B4D84 29C10007 */ slti $at, $t6, 7
|
|
/* 0E98B8 7F0B4D88 10200004 */ beqz $at, .L7F0B4D9C
|
|
/* 0E98BC 7F0B4D8C AFAE0124 */ sw $t6, 0x124($sp)
|
|
/* 0E98C0 7F0B4D90 90620000 */ lbu $v0, ($v1)
|
|
/* 0E98C4 7F0B4D94 54A2FFF7 */ bnel $a1, $v0, .L7F0B4D74
|
|
/* 0E98C8 7F0B4D98 A0820000 */ sb $v0, ($a0)
|
|
.L7F0B4D9C:
|
|
/* 0E98CC 7F0B4D9C 8FB8016C */ lw $t8, 0x16c($sp)
|
|
/* 0E98D0 7F0B4DA0 8FB90124 */ lw $t9, 0x124($sp)
|
|
/* 0E98D4 7F0B4DA4 8FA60178 */ lw $a2, 0x178($sp)
|
|
/* 0E98D8 7F0B4DA8 240F00FF */ li $t7, 255
|
|
/* 0E98DC 7F0B4DAC 03194821 */ addu $t1, $t8, $t9
|
|
/* 0E98E0 7F0B4DB0 A12F0000 */ sb $t7, ($t1)
|
|
/* 0E98E4 7F0B4DB4 18C00013 */ blez $a2, .L7F0B4E04
|
|
/* 0E98E8 7F0B4DB8 AFA00124 */ sw $zero, 0x124($sp)
|
|
/* 0E98EC 7F0B4DBC 93AA0130 */ lbu $t2, 0x130($sp)
|
|
/* 0E98F0 7F0B4DC0 27A20130 */ addiu $v0, $sp, 0x130
|
|
/* 0E98F4 7F0B4DC4 8FA40170 */ lw $a0, 0x170($sp)
|
|
/* 0E98F8 7F0B4DC8 50AA000F */ beql $a1, $t2, .L7F0B4E08
|
|
/* 0E98FC 7F0B4DCC 8FAD0124 */ lw $t5, 0x124($sp)
|
|
/* 0E9900 7F0B4DD0 90430000 */ lbu $v1, ($v0)
|
|
/* 0E9904 7F0B4DD4 AC830000 */ sw $v1, ($a0)
|
|
.L7F0B4DD8:
|
|
/* 0E9908 7F0B4DD8 8FAB0124 */ lw $t3, 0x124($sp)
|
|
/* 0E990C 7F0B4DDC 24420001 */ addiu $v0, $v0, 1
|
|
/* 0E9910 7F0B4DE0 24840004 */ addiu $a0, $a0, 4
|
|
/* 0E9914 7F0B4DE4 256C0001 */ addiu $t4, $t3, 1
|
|
/* 0E9918 7F0B4DE8 0186082A */ slt $at, $t4, $a2
|
|
/* 0E991C 7F0B4DEC 10200005 */ beqz $at, .L7F0B4E04
|
|
/* 0E9920 7F0B4DF0 AFAC0124 */ sw $t4, 0x124($sp)
|
|
/* 0E9924 7F0B4DF4 90430000 */ lbu $v1, ($v0)
|
|
/* 0E9928 7F0B4DF8 240100FF */ li $at, 255
|
|
/* 0E992C 7F0B4DFC 5461FFF6 */ bnel $v1, $at, .L7F0B4DD8
|
|
/* 0E9930 7F0B4E00 AC830000 */ sw $v1, ($a0)
|
|
.L7F0B4E04:
|
|
/* 0E9934 7F0B4E04 8FAD0124 */ lw $t5, 0x124($sp)
|
|
.L7F0B4E08:
|
|
/* 0E9938 7F0B4E08 8FAE0174 */ lw $t6, 0x174($sp)
|
|
/* 0E993C 7F0B4E0C ADCD0000 */ sw $t5, ($t6)
|
|
/* 0E9940 7F0B4E10 8FBF003C */ lw $ra, 0x3c($sp)
|
|
/* 0E9944 7F0B4E14 8FBE0038 */ lw $fp, 0x38($sp)
|
|
/* 0E9948 7F0B4E18 8FB70034 */ lw $s7, 0x34($sp)
|
|
/* 0E994C 7F0B4E1C 8FB60030 */ lw $s6, 0x30($sp)
|
|
/* 0E9950 7F0B4E20 8FB5002C */ lw $s5, 0x2c($sp)
|
|
/* 0E9954 7F0B4E24 8FB40028 */ lw $s4, 0x28($sp)
|
|
/* 0E9958 7F0B4E28 8FB30024 */ lw $s3, 0x24($sp)
|
|
/* 0E995C 7F0B4E2C 8FB20020 */ lw $s2, 0x20($sp)
|
|
/* 0E9960 7F0B4E30 8FB1001C */ lw $s1, 0x1c($sp)
|
|
/* 0E9964 7F0B4E34 8FB00018 */ lw $s0, 0x18($sp)
|
|
/* 0E9968 7F0B4E38 03E00008 */ jr $ra
|
|
/* 0E996C 7F0B4E3C 27BD0160 */ addiu $sp, $sp, 0x160
|
|
)
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Address 0x7F0B4E40.
|
|
*/
|
|
Gfx *bgLevelRender(Gfx *arg0)
|
|
{
|
|
gSPSetLights1(arg0++, GlobalLight);
|
|
gSPLookAt(arg0++, sub_GAME_7F078474());
|
|
gSPSegment(arg0++, SPSEGMENT_BG_DL, ptr_bg_data);
|
|
|
|
if (dword_CODE_bss_8007FF88 == 1)
|
|
{
|
|
gSPDisplayList(arg0++, dword_CODE_bss_8007BF98);
|
|
}
|
|
else
|
|
{
|
|
arg0 = fogRenderClearFogMode(bgScissorCurrentPlayerViewDefault(sub_GAME_7F0B8D78(fogSetRenderFogColor(arg0, 0))));
|
|
}
|
|
|
|
gSPMatrix(arg0++, g_viProjectionMatrix, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
|
|
|
|
return bondviewGfxPlayerField5cMatrix(arg0++);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
f32 sub_GAME_7F0B4F9C(s32 arg0)
|
|
{
|
|
return dword_CODE_bss_8007FF94[arg0 + 1];
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Calls @see bgScissorCurrentPlayerView with default current player values.
|
|
* Address 0x7F0B4FB4.
|
|
*/
|
|
Gfx* bgScissorCurrentPlayerViewDefault(Gfx* arg0)
|
|
{
|
|
return bgScissorCurrentPlayerView(
|
|
arg0,
|
|
g_CurrentPlayer->viewleft,
|
|
g_CurrentPlayer->viewtop,
|
|
g_CurrentPlayer->viewleft + g_CurrentPlayer->viewx,
|
|
g_CurrentPlayer->viewtop + g_CurrentPlayer->viewy);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Same as @see bgScissorCurrentPlayerView, but accepts float parameters.
|
|
* Address 0x7F0B4FF4.
|
|
*/
|
|
Gfx* bgScissorCurrentPlayerViewF(Gfx* arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4)
|
|
{
|
|
return bgScissorCurrentPlayerView(
|
|
arg0,
|
|
(s32)arg1,
|
|
(s32)arg2,
|
|
ceilFloatToInt(arg3),
|
|
ceilFloatToInt(arg4));
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Specifies the drawing area (the scissoring box).
|
|
* View is bound to current player view properties, but parameters can clip to smaller area.
|
|
*
|
|
* @param arg0: Display list pointer
|
|
* @param left: Screen's left edge coordinates. Must be >= g_CurrentPlayer->viewleft otherwise ignored.
|
|
* @param top: Screen's top edge coordinates. Must be >= g_CurrentPlayer->viewtop otherwise ignored.
|
|
* @param width: Screen's right edge coordinates. Must be <= g_CurrentPlayer->viewleft+viewx otherwise ignored.
|
|
* @param height: Screen's left bottom coordinates. Must be <= g_CurrentPlayer->viewtop+viewy otherwise ignored.
|
|
*
|
|
* Address 0x7F0B5058.
|
|
*/
|
|
Gfx *bgScissorCurrentPlayerView(Gfx *arg0, s32 left, s32 top, s32 width, s32 height)
|
|
{
|
|
struct player *temp_v0;
|
|
|
|
temp_v0 = g_CurrentPlayer;
|
|
|
|
if (left < (s32) temp_v0->viewleft)
|
|
{
|
|
left = (s32) temp_v0->viewleft;
|
|
}
|
|
|
|
if (top < (s32) temp_v0->viewtop)
|
|
{
|
|
top = (s32) temp_v0->viewtop;
|
|
}
|
|
|
|
if (temp_v0->viewleft + temp_v0->viewx < width)
|
|
{
|
|
width = temp_v0->viewleft + temp_v0->viewx;
|
|
}
|
|
|
|
if (temp_v0->viewtop + temp_v0->viewy < height)
|
|
{
|
|
height = temp_v0->viewtop + temp_v0->viewy;
|
|
}
|
|
|
|
gDPSetScissor(arg0++, G_SC_NON_INTERLACE, left, top, width, height);
|
|
|
|
return arg0;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void sub_GAME_7F0B5168(void) {
|
|
s32 i;
|
|
|
|
for (i = 0; i < 200; i++) {
|
|
table_for_portals[i].unk0 = -1;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Unreferenced.
|
|
*
|
|
* Loosely checks that arg1 surrounds arg0. Requires points be ordered according to min/max.
|
|
*
|
|
* Address 0x7F0B519C.
|
|
*/
|
|
s32 bgRectIsInside(struct bbox2d *arg0, struct bbox2d *arg1)
|
|
{
|
|
if (arg1->min.x <= arg0->min.x)
|
|
{
|
|
if (arg0->min.x <= arg1->max.x)
|
|
{
|
|
if (arg1->min.y <= arg0->min.y)
|
|
{
|
|
if (arg0->min.y <= arg1->max.y)
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
void sub_GAME_7F0B5208(s32 arg0, void *arg1) {
|
|
? sp3C;
|
|
f32 sp40;
|
|
f32 sp5C;
|
|
f32 sp60;
|
|
f32 sp64;
|
|
f32 sp68;
|
|
s32 sp74;
|
|
? temp_ret;
|
|
s32 temp_v1;
|
|
s32 phi_v1;
|
|
void *phi_a2;
|
|
s32 phi_s6;
|
|
s32 phi_s1;
|
|
s32 phi_s2;
|
|
s32 phi_s3;
|
|
s32 phi_s4;
|
|
s32 phi_s5;
|
|
s32 phi_s6_2;
|
|
s32 phi_s1_2;
|
|
s32 phi_s2_2;
|
|
s32 phi_s3_2;
|
|
s32 phi_s4_2;
|
|
s32 phi_s5_2;
|
|
s32 phi_s1_3;
|
|
s32 phi_s2_3;
|
|
s32 phi_s3_3;
|
|
|
|
// Node 0
|
|
viGetZRange(&sp3C);
|
|
sp40 = (f32) (sp40 / mCurrentLevelVisibilityScale);
|
|
phi_v1 = 0;
|
|
phi_a2 = ((arg0 * 0x50) + &array_room_info);
|
|
phi_s6_2 = 0;
|
|
phi_s4_2 = 0;
|
|
phi_s5_2 = 0;
|
|
phi_s1_3 = 0;
|
|
phi_s2_3 = 0;
|
|
phi_s3_3 = 0;
|
|
loop_1:
|
|
// Node 1
|
|
if ((phi_v1 & 1) != 0)
|
|
{
|
|
// Node 2
|
|
sp5C = (f32) phi_a2->unk38;
|
|
}
|
|
else
|
|
{
|
|
// Node 3
|
|
sp5C = (f32) phi_a2->unk44;
|
|
}
|
|
// Node 4
|
|
if ((phi_v1 & 2) != 0)
|
|
{
|
|
// Node 5
|
|
sp60 = (f32) phi_a2->unk3C;
|
|
}
|
|
else
|
|
{
|
|
// Node 6
|
|
sp60 = (f32) phi_a2->unk48;
|
|
}
|
|
// Node 7
|
|
if ((phi_v1 & 4) != 0)
|
|
{
|
|
// Node 8
|
|
sp64 = (f32) phi_a2->unk40;
|
|
}
|
|
else
|
|
{
|
|
// Node 9
|
|
sp64 = (f32) phi_a2->unk4C;
|
|
}
|
|
// Node 10
|
|
sp74 = (s32) phi_v1;
|
|
temp_ret = sub_GAME_7F0B5488(&sp5C, &sp68, phi_a2);
|
|
if (temp_ret == 0)
|
|
{
|
|
// Node 11
|
|
phi_s1 = phi_s1_3;
|
|
if (sp40 <= -sp70)
|
|
{
|
|
// Node 12
|
|
phi_s1 = (phi_s1_3 + 1);
|
|
}
|
|
// Node 13
|
|
phi_s2 = phi_s2_3;
|
|
if (*arg1 <= sp68)
|
|
{
|
|
// Node 14
|
|
phi_s2 = (phi_s2_3 + 1);
|
|
}
|
|
// Node 15
|
|
phi_s3 = phi_s3_3;
|
|
if (sp68 <= arg1->unk8)
|
|
{
|
|
// Node 16
|
|
phi_s3 = (phi_s3_3 + 1);
|
|
}
|
|
// Node 17
|
|
phi_s4 = phi_s4_2;
|
|
if (arg1->unk4 <= sp6C)
|
|
{
|
|
// Node 18
|
|
phi_s4 = (phi_s4_2 + 1);
|
|
}
|
|
// Node 19
|
|
phi_s5 = phi_s5_2;
|
|
if (sp6C <= arg1->unkC)
|
|
{
|
|
// Node 20
|
|
phi_s5 = (phi_s5_2 + 1);
|
|
}
|
|
// Node 21
|
|
phi_s6 = (phi_s6_2 + 1);
|
|
}
|
|
else
|
|
{
|
|
// Node 22
|
|
phi_s1_2 = phi_s1_3;
|
|
if (sp40 <= -sp70)
|
|
{
|
|
// Node 23
|
|
phi_s1_2 = (phi_s1_3 + 1);
|
|
}
|
|
// Node 24
|
|
if (sp68 <= *arg1)
|
|
{
|
|
// Node 25
|
|
phi_s2_2 = (phi_s2_3 + 1);
|
|
phi_s3_2 = phi_s3_3;
|
|
}
|
|
else
|
|
{
|
|
// Node 26
|
|
phi_s2_2 = phi_s2_3;
|
|
phi_s3_2 = phi_s3_3;
|
|
if (arg1->unk8 <= sp68)
|
|
{
|
|
// Node 27
|
|
phi_s2_2 = phi_s2_3;
|
|
phi_s3_2 = (phi_s3_3 + 1);
|
|
}
|
|
}
|
|
// Node 28
|
|
if (sp6C <= arg1->unk4)
|
|
{
|
|
// Node 29
|
|
phi_s6 = phi_s6_2;
|
|
phi_s1 = phi_s1_2;
|
|
phi_s2 = phi_s2_2;
|
|
phi_s3 = phi_s3_2;
|
|
phi_s4 = (phi_s4_2 + 1);
|
|
phi_s5 = phi_s5_2;
|
|
}
|
|
else
|
|
{
|
|
// Node 30
|
|
phi_s6 = phi_s6_2;
|
|
phi_s1 = phi_s1_2;
|
|
phi_s2 = phi_s2_2;
|
|
phi_s3 = phi_s3_2;
|
|
phi_s4 = phi_s4_2;
|
|
phi_s5 = phi_s5_2;
|
|
if (arg1->unkC <= sp6C)
|
|
{
|
|
// Node 31
|
|
phi_s6 = phi_s6_2;
|
|
phi_s1 = phi_s1_2;
|
|
phi_s2 = phi_s2_2;
|
|
phi_s3 = phi_s3_2;
|
|
phi_s4 = phi_s4_2;
|
|
phi_s5 = (phi_s5_2 + 1);
|
|
}
|
|
}
|
|
}
|
|
// Node 32
|
|
temp_v1 = (phi_v1 + 1);
|
|
phi_v1 = temp_v1;
|
|
phi_a2 = sp38;
|
|
phi_s6_2 = phi_s6;
|
|
phi_s4_2 = phi_s4;
|
|
phi_s5_2 = phi_s5;
|
|
phi_s1_3 = phi_s1;
|
|
phi_s2_3 = phi_s2;
|
|
phi_s3_3 = phi_s3;
|
|
if (temp_v1 != 8)
|
|
{
|
|
goto loop_1;
|
|
}
|
|
// Node 33
|
|
if ((((((phi_s6 == 8) || (phi_s1 == 8)) || (phi_s2 == 8)) || (phi_s3 == 8)) || (phi_s4 == 8)) || (phi_s5 == 8))
|
|
{
|
|
// Node 39
|
|
}
|
|
else
|
|
{
|
|
|
|
}
|
|
// Node 40
|
|
return temp_ret;
|
|
}
|
|
#else
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B5208
|
|
/* 0E9D38 7F0B5208 27BDFF88 */ addiu $sp, $sp, -0x78
|
|
/* 0E9D3C 7F0B520C AFBF0034 */ sw $ra, 0x34($sp)
|
|
/* 0E9D40 7F0B5210 AFB60030 */ sw $s6, 0x30($sp)
|
|
/* 0E9D44 7F0B5214 AFB5002C */ sw $s5, 0x2c($sp)
|
|
/* 0E9D48 7F0B5218 AFB40028 */ sw $s4, 0x28($sp)
|
|
/* 0E9D4C 7F0B521C AFB30024 */ sw $s3, 0x24($sp)
|
|
/* 0E9D50 7F0B5220 AFB20020 */ sw $s2, 0x20($sp)
|
|
/* 0E9D54 7F0B5224 AFB1001C */ sw $s1, 0x1c($sp)
|
|
/* 0E9D58 7F0B5228 AFB00018 */ sw $s0, 0x18($sp)
|
|
/* 0E9D5C 7F0B522C AFA40078 */ sw $a0, 0x78($sp)
|
|
/* 0E9D60 7F0B5230 00A08025 */ move $s0, $a1
|
|
/* 0E9D64 7F0B5234 00008825 */ move $s1, $zero
|
|
/* 0E9D68 7F0B5238 0000B025 */ move $s6, $zero
|
|
/* 0E9D6C 7F0B523C 00009025 */ move $s2, $zero
|
|
/* 0E9D70 7F0B5240 00009825 */ move $s3, $zero
|
|
/* 0E9D74 7F0B5244 0000A025 */ move $s4, $zero
|
|
/* 0E9D78 7F0B5248 0000A825 */ move $s5, $zero
|
|
/* 0E9D7C 7F0B524C 0C0011AB */ jal viGetZRange
|
|
/* 0E9D80 7F0B5250 27A4003C */ addiu $a0, $sp, 0x3c
|
|
/* 0E9D84 7F0B5254 3C018004 */ lui $at, %hi(mCurrentLevelVisibilityScale)
|
|
/* 0E9D88 7F0B5258 C42613FC */ lwc1 $f6, %lo(mCurrentLevelVisibilityScale)($at)
|
|
/* 0E9D8C 7F0B525C C7A40040 */ lwc1 $f4, 0x40($sp)
|
|
/* 0E9D90 7F0B5260 8FAE0078 */ lw $t6, 0x78($sp)
|
|
/* 0E9D94 7F0B5264 3C188004 */ lui $t8, %hi(array_room_info)
|
|
/* 0E9D98 7F0B5268 46062203 */ div.s $f8, $f4, $f6
|
|
/* 0E9D9C 7F0B526C 000E7880 */ sll $t7, $t6, 2
|
|
/* 0E9DA0 7F0B5270 01EE7821 */ addu $t7, $t7, $t6
|
|
/* 0E9DA4 7F0B5274 000F7900 */ sll $t7, $t7, 4
|
|
/* 0E9DA8 7F0B5278 27181414 */ addiu $t8, %lo(array_room_info) # addiu $t8, $t8, 0x1414
|
|
/* 0E9DAC 7F0B527C 01F83021 */ addu $a2, $t7, $t8
|
|
/* 0E9DB0 7F0B5280 00001825 */ move $v1, $zero
|
|
/* 0E9DB4 7F0B5284 E7A80040 */ swc1 $f8, 0x40($sp)
|
|
/* 0E9DB8 7F0B5288 30790001 */ andi $t9, $v1, 1
|
|
.L7F0B528C:
|
|
/* 0E9DBC 7F0B528C 13200004 */ beqz $t9, .L7F0B52A0
|
|
/* 0E9DC0 7F0B5290 30680002 */ andi $t0, $v1, 2
|
|
/* 0E9DC4 7F0B5294 C4CA0038 */ lwc1 $f10, 0x38($a2)
|
|
/* 0E9DC8 7F0B5298 10000003 */ b .L7F0B52A8
|
|
/* 0E9DCC 7F0B529C E7AA005C */ swc1 $f10, 0x5c($sp)
|
|
.L7F0B52A0:
|
|
/* 0E9DD0 7F0B52A0 C4D00044 */ lwc1 $f16, 0x44($a2)
|
|
/* 0E9DD4 7F0B52A4 E7B0005C */ swc1 $f16, 0x5c($sp)
|
|
.L7F0B52A8:
|
|
/* 0E9DD8 7F0B52A8 11000004 */ beqz $t0, .L7F0B52BC
|
|
/* 0E9DDC 7F0B52AC 30690004 */ andi $t1, $v1, 4
|
|
/* 0E9DE0 7F0B52B0 C4D2003C */ lwc1 $f18, 0x3c($a2)
|
|
/* 0E9DE4 7F0B52B4 10000003 */ b .L7F0B52C4
|
|
/* 0E9DE8 7F0B52B8 E7B20060 */ swc1 $f18, 0x60($sp)
|
|
.L7F0B52BC:
|
|
/* 0E9DEC 7F0B52BC C4C40048 */ lwc1 $f4, 0x48($a2)
|
|
/* 0E9DF0 7F0B52C0 E7A40060 */ swc1 $f4, 0x60($sp)
|
|
.L7F0B52C4:
|
|
/* 0E9DF4 7F0B52C4 11200004 */ beqz $t1, .L7F0B52D8
|
|
/* 0E9DF8 7F0B52C8 27A4005C */ addiu $a0, $sp, 0x5c
|
|
/* 0E9DFC 7F0B52CC C4C60040 */ lwc1 $f6, 0x40($a2)
|
|
/* 0E9E00 7F0B52D0 10000003 */ b .L7F0B52E0
|
|
/* 0E9E04 7F0B52D4 E7A60064 */ swc1 $f6, 0x64($sp)
|
|
.L7F0B52D8:
|
|
/* 0E9E08 7F0B52D8 C4C8004C */ lwc1 $f8, 0x4c($a2)
|
|
/* 0E9E0C 7F0B52DC E7A80064 */ swc1 $f8, 0x64($sp)
|
|
.L7F0B52E0:
|
|
/* 0E9E10 7F0B52E0 27A50068 */ addiu $a1, $sp, 0x68
|
|
/* 0E9E14 7F0B52E4 AFA30074 */ sw $v1, 0x74($sp)
|
|
/* 0E9E18 7F0B52E8 0FC2D522 */ jal sub_GAME_7F0B5488
|
|
/* 0E9E1C 7F0B52EC AFA60038 */ sw $a2, 0x38($sp)
|
|
/* 0E9E20 7F0B52F0 8FA30074 */ lw $v1, 0x74($sp)
|
|
/* 0E9E24 7F0B52F4 8FA60038 */ lw $a2, 0x38($sp)
|
|
/* 0E9E28 7F0B52F8 14400025 */ bnez $v0, .L7F0B5390
|
|
/* 0E9E2C 7F0B52FC 24070008 */ li $a3, 8
|
|
/* 0E9E30 7F0B5300 C7AA0070 */ lwc1 $f10, 0x70($sp)
|
|
/* 0E9E34 7F0B5304 C7B20040 */ lwc1 $f18, 0x40($sp)
|
|
/* 0E9E38 7F0B5308 C7A40068 */ lwc1 $f4, 0x68($sp)
|
|
/* 0E9E3C 7F0B530C 46005407 */ neg.s $f16, $f10
|
|
/* 0E9E40 7F0B5310 C7AA0068 */ lwc1 $f10, 0x68($sp)
|
|
/* 0E9E44 7F0B5314 4610903E */ c.le.s $f18, $f16
|
|
/* 0E9E48 7F0B5318 C7B0006C */ lwc1 $f16, 0x6c($sp)
|
|
/* 0E9E4C 7F0B531C 45020003 */ bc1fl .L7F0B532C
|
|
/* 0E9E50 7F0B5320 C6060000 */ lwc1 $f6, ($s0)
|
|
/* 0E9E54 7F0B5324 26310001 */ addiu $s1, $s1, 1
|
|
/* 0E9E58 7F0B5328 C6060000 */ lwc1 $f6, ($s0)
|
|
.L7F0B532C:
|
|
/* 0E9E5C 7F0B532C 4604303E */ c.le.s $f6, $f4
|
|
/* 0E9E60 7F0B5330 C7A6006C */ lwc1 $f6, 0x6c($sp)
|
|
/* 0E9E64 7F0B5334 45020003 */ bc1fl .L7F0B5344
|
|
/* 0E9E68 7F0B5338 C6080008 */ lwc1 $f8, 8($s0)
|
|
/* 0E9E6C 7F0B533C 26520001 */ addiu $s2, $s2, 1
|
|
/* 0E9E70 7F0B5340 C6080008 */ lwc1 $f8, 8($s0)
|
|
.L7F0B5344:
|
|
/* 0E9E74 7F0B5344 4608503E */ c.le.s $f10, $f8
|
|
/* 0E9E78 7F0B5348 00000000 */ nop
|
|
/* 0E9E7C 7F0B534C 45020003 */ bc1fl .L7F0B535C
|
|
/* 0E9E80 7F0B5350 C6120004 */ lwc1 $f18, 4($s0)
|
|
/* 0E9E84 7F0B5354 26730001 */ addiu $s3, $s3, 1
|
|
/* 0E9E88 7F0B5358 C6120004 */ lwc1 $f18, 4($s0)
|
|
.L7F0B535C:
|
|
/* 0E9E8C 7F0B535C 4610903E */ c.le.s $f18, $f16
|
|
/* 0E9E90 7F0B5360 00000000 */ nop
|
|
/* 0E9E94 7F0B5364 45020003 */ bc1fl .L7F0B5374
|
|
/* 0E9E98 7F0B5368 C604000C */ lwc1 $f4, 0xc($s0)
|
|
/* 0E9E9C 7F0B536C 26940001 */ addiu $s4, $s4, 1
|
|
/* 0E9EA0 7F0B5370 C604000C */ lwc1 $f4, 0xc($s0)
|
|
.L7F0B5374:
|
|
/* 0E9EA4 7F0B5374 4604303E */ c.le.s $f6, $f4
|
|
/* 0E9EA8 7F0B5378 00000000 */ nop
|
|
/* 0E9EAC 7F0B537C 45000002 */ bc1f .L7F0B5388
|
|
/* 0E9EB0 7F0B5380 00000000 */ nop
|
|
/* 0E9EB4 7F0B5384 26B50001 */ addiu $s5, $s5, 1
|
|
.L7F0B5388:
|
|
/* 0E9EB8 7F0B5388 10000025 */ b .L7F0B5420
|
|
/* 0E9EBC 7F0B538C 26D60001 */ addiu $s6, $s6, 1
|
|
.L7F0B5390:
|
|
/* 0E9EC0 7F0B5390 C7A80070 */ lwc1 $f8, 0x70($sp)
|
|
/* 0E9EC4 7F0B5394 C7B00040 */ lwc1 $f16, 0x40($sp)
|
|
/* 0E9EC8 7F0B5398 C7A40068 */ lwc1 $f4, 0x68($sp)
|
|
/* 0E9ECC 7F0B539C 46004287 */ neg.s $f10, $f8
|
|
/* 0E9ED0 7F0B53A0 C7A60068 */ lwc1 $f6, 0x68($sp)
|
|
/* 0E9ED4 7F0B53A4 460A803E */ c.le.s $f16, $f10
|
|
/* 0E9ED8 7F0B53A8 C7B0006C */ lwc1 $f16, 0x6c($sp)
|
|
/* 0E9EDC 7F0B53AC 45020003 */ bc1fl .L7F0B53BC
|
|
/* 0E9EE0 7F0B53B0 C6120000 */ lwc1 $f18, ($s0)
|
|
/* 0E9EE4 7F0B53B4 26310001 */ addiu $s1, $s1, 1
|
|
/* 0E9EE8 7F0B53B8 C6120000 */ lwc1 $f18, ($s0)
|
|
.L7F0B53BC:
|
|
/* 0E9EEC 7F0B53BC 4612203E */ c.le.s $f4, $f18
|
|
/* 0E9EF0 7F0B53C0 C7B2006C */ lwc1 $f18, 0x6c($sp)
|
|
/* 0E9EF4 7F0B53C4 45020004 */ bc1fl .L7F0B53D8
|
|
/* 0E9EF8 7F0B53C8 C6080008 */ lwc1 $f8, 8($s0)
|
|
/* 0E9EFC 7F0B53CC 10000007 */ b .L7F0B53EC
|
|
/* 0E9F00 7F0B53D0 26520001 */ addiu $s2, $s2, 1
|
|
/* 0E9F04 7F0B53D4 C6080008 */ lwc1 $f8, 8($s0)
|
|
.L7F0B53D8:
|
|
/* 0E9F08 7F0B53D8 4606403E */ c.le.s $f8, $f6
|
|
/* 0E9F0C 7F0B53DC 00000000 */ nop
|
|
/* 0E9F10 7F0B53E0 45020003 */ bc1fl .L7F0B53F0
|
|
/* 0E9F14 7F0B53E4 C60A0004 */ lwc1 $f10, 4($s0)
|
|
/* 0E9F18 7F0B53E8 26730001 */ addiu $s3, $s3, 1
|
|
.L7F0B53EC:
|
|
/* 0E9F1C 7F0B53EC C60A0004 */ lwc1 $f10, 4($s0)
|
|
.L7F0B53F0:
|
|
/* 0E9F20 7F0B53F0 460A803E */ c.le.s $f16, $f10
|
|
/* 0E9F24 7F0B53F4 00000000 */ nop
|
|
/* 0E9F28 7F0B53F8 45020004 */ bc1fl .L7F0B540C
|
|
/* 0E9F2C 7F0B53FC C604000C */ lwc1 $f4, 0xc($s0)
|
|
/* 0E9F30 7F0B5400 10000007 */ b .L7F0B5420
|
|
/* 0E9F34 7F0B5404 26940001 */ addiu $s4, $s4, 1
|
|
/* 0E9F38 7F0B5408 C604000C */ lwc1 $f4, 0xc($s0)
|
|
.L7F0B540C:
|
|
/* 0E9F3C 7F0B540C 4612203E */ c.le.s $f4, $f18
|
|
/* 0E9F40 7F0B5410 00000000 */ nop
|
|
/* 0E9F44 7F0B5414 45020003 */ bc1fl .L7F0B5424
|
|
/* 0E9F48 7F0B5418 24630001 */ addiu $v1, $v1, 1
|
|
/* 0E9F4C 7F0B541C 26B50001 */ addiu $s5, $s5, 1
|
|
.L7F0B5420:
|
|
/* 0E9F50 7F0B5420 24630001 */ addiu $v1, $v1, 1
|
|
.L7F0B5424:
|
|
/* 0E9F54 7F0B5424 5467FF99 */ bnel $v1, $a3, .L7F0B528C
|
|
/* 0E9F58 7F0B5428 30790001 */ andi $t9, $v1, 1
|
|
/* 0E9F5C 7F0B542C 12C7000B */ beq $s6, $a3, .L7F0B545C
|
|
/* 0E9F60 7F0B5430 8FB00018 */ lw $s0, 0x18($sp)
|
|
/* 0E9F64 7F0B5434 12270009 */ beq $s1, $a3, .L7F0B545C
|
|
/* 0E9F68 7F0B5438 00000000 */ nop
|
|
/* 0E9F6C 7F0B543C 12470007 */ beq $s2, $a3, .L7F0B545C
|
|
/* 0E9F70 7F0B5440 00000000 */ nop
|
|
/* 0E9F74 7F0B5444 12670005 */ beq $s3, $a3, .L7F0B545C
|
|
/* 0E9F78 7F0B5448 00000000 */ nop
|
|
/* 0E9F7C 7F0B544C 12870003 */ beq $s4, $a3, .L7F0B545C
|
|
/* 0E9F80 7F0B5450 00000000 */ nop
|
|
/* 0E9F84 7F0B5454 16A70003 */ bne $s5, $a3, .L7F0B5464
|
|
/* 0E9F88 7F0B5458 24020001 */ li $v0, 1
|
|
.L7F0B545C:
|
|
/* 0E9F8C 7F0B545C 10000001 */ b .L7F0B5464
|
|
/* 0E9F90 7F0B5460 00001025 */ move $v0, $zero
|
|
.L7F0B5464:
|
|
/* 0E9F94 7F0B5464 8FBF0034 */ lw $ra, 0x34($sp)
|
|
/* 0E9F98 7F0B5468 8FB1001C */ lw $s1, 0x1c($sp)
|
|
/* 0E9F9C 7F0B546C 8FB20020 */ lw $s2, 0x20($sp)
|
|
/* 0E9FA0 7F0B5470 8FB30024 */ lw $s3, 0x24($sp)
|
|
/* 0E9FA4 7F0B5474 8FB40028 */ lw $s4, 0x28($sp)
|
|
/* 0E9FA8 7F0B5478 8FB5002C */ lw $s5, 0x2c($sp)
|
|
/* 0E9FAC 7F0B547C 8FB60030 */ lw $s6, 0x30($sp)
|
|
/* 0E9FB0 7F0B5480 03E00008 */ jr $ra
|
|
/* 0E9FB4 7F0B5484 27BD0078 */ addiu $sp, $sp, 0x78
|
|
)
|
|
#endif
|
|
|
|
|
|
s32 sub_GAME_7F0B5488(coord3d* arg0, coord3d* arg1)
|
|
{
|
|
Mtxf* temp_a0;
|
|
s32 var_v0;
|
|
|
|
temp_a0 = camGetWorldToScreenMtxf();
|
|
arg1->x = arg0->x * room_data_float2;
|
|
arg1->y = arg0->y * room_data_float2;
|
|
arg1->z = arg0->z * room_data_float2;
|
|
mtx4TransformVecInPlace(temp_a0, arg1);
|
|
|
|
sub_GAME_7F078060(arg1, arg1);
|
|
|
|
if (arg1->z > 0.0f)
|
|
{
|
|
return 0;
|
|
}
|
|
else
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
void sub_GAME_7F0B5528(void) {
|
|
|
|
}
|
|
#else
|
|
GLOBAL_ASM(
|
|
.late_rodata
|
|
glabel D_80058C7C
|
|
.word 0x3f666666 /*0.89999998*/
|
|
.text
|
|
glabel sub_GAME_7F0B5528
|
|
/* 0EA058 7F0B5528 27BDFF50 */ addiu $sp, $sp, -0xb0
|
|
/* 0EA05C 7F0B552C F7B40018 */ sdc1 $f20, 0x18($sp)
|
|
/* 0EA060 7F0B5530 4485A000 */ mtc1 $a1, $f20
|
|
/* 0EA064 7F0B5534 AFBF0054 */ sw $ra, 0x54($sp)
|
|
/* 0EA068 7F0B5538 AFB60048 */ sw $s6, 0x48($sp)
|
|
/* 0EA06C 7F0B553C 00C0B025 */ move $s6, $a2
|
|
/* 0EA070 7F0B5540 AFBE0050 */ sw $fp, 0x50($sp)
|
|
/* 0EA074 7F0B5544 AFB7004C */ sw $s7, 0x4c($sp)
|
|
/* 0EA078 7F0B5548 AFB50044 */ sw $s5, 0x44($sp)
|
|
/* 0EA07C 7F0B554C AFB40040 */ sw $s4, 0x40($sp)
|
|
/* 0EA080 7F0B5550 AFB3003C */ sw $s3, 0x3c($sp)
|
|
/* 0EA084 7F0B5554 AFB20038 */ sw $s2, 0x38($sp)
|
|
/* 0EA088 7F0B5558 AFB10034 */ sw $s1, 0x34($sp)
|
|
/* 0EA08C 7F0B555C AFB00030 */ sw $s0, 0x30($sp)
|
|
/* 0EA090 7F0B5560 F7B80028 */ sdc1 $f24, 0x28($sp)
|
|
/* 0EA094 7F0B5564 F7B60020 */ sdc1 $f22, 0x20($sp)
|
|
/* 0EA098 7F0B5568 0FC1E0F1 */ jal camGetWorldToScreenMtxf
|
|
/* 0EA09C 7F0B556C AFA400B0 */ sw $a0, 0xb0($sp)
|
|
/* 0EA0A0 7F0B5570 AFA200AC */ sw $v0, 0xac($sp)
|
|
/* 0EA0A4 7F0B5574 241E0001 */ li $fp, 1
|
|
/* 0EA0A8 7F0B5578 0C0011AB */ jal viGetZRange
|
|
/* 0EA0AC 7F0B557C 27A40098 */ addiu $a0, $sp, 0x98
|
|
/* 0EA0B0 7F0B5580 3C018004 */ lui $at, %hi(mCurrentLevelVisibilityScale)
|
|
/* 0EA0B4 7F0B5584 C42613FC */ lwc1 $f6, %lo(mCurrentLevelVisibilityScale)($at)
|
|
/* 0EA0B8 7F0B5588 C7A4009C */ lwc1 $f4, 0x9c($sp)
|
|
/* 0EA0BC 7F0B558C 3C138008 */ lui $s3, %hi(g_BgPortals)
|
|
/* 0EA0C0 7F0B5590 8FB500B0 */ lw $s5, 0xb0($sp)
|
|
/* 0EA0C4 7F0B5594 46062203 */ div.s $f8, $f4, $f6
|
|
/* 0EA0C8 7F0B5598 2673FF80 */ addiu $s3, %lo(g_BgPortals) # addiu $s3, $s3, -0x80
|
|
/* 0EA0CC 7F0B559C 8E6F0000 */ lw $t7, ($s3)
|
|
/* 0EA0D0 7F0B55A0 001570C0 */ sll $t6, $s5, 3
|
|
/* 0EA0D4 7F0B55A4 01C0A825 */ move $s5, $t6
|
|
/* 0EA0D8 7F0B55A8 01EEC021 */ addu $t8, $t7, $t6
|
|
/* 0EA0DC 7F0B55AC 00009025 */ move $s2, $zero
|
|
/* 0EA0E0 7F0B55B0 02C08025 */ move $s0, $s6
|
|
/* 0EA0E4 7F0B55B4 E7A8009C */ swc1 $f8, 0x9c($sp)
|
|
/* 0EA0E8 7F0B55B8 8F020000 */ lw $v0, ($t8)
|
|
/* 0EA0EC 7F0B55BC 90440000 */ lbu $a0, ($v0)
|
|
/* 0EA0F0 7F0B55C0 5880004E */ blezl $a0, .L7F0B56FC
|
|
/* 0EA0F4 7F0B55C4 4480B000 */ mtc1 $zero, $f22
|
|
/* 0EA0F8 7F0B55C8 3C018006 */ lui $at, %hi(D_80058C7C)
|
|
/* 0EA0FC 7F0B55CC 3C148004 */ lui $s4, %hi(room_data_float2)
|
|
/* 0EA100 7F0B55D0 4480B000 */ mtc1 $zero, $f22
|
|
/* 0EA104 7F0B55D4 269413F8 */ addiu $s4, %lo(room_data_float2) # addiu $s4, $s4, 0x13f8
|
|
/* 0EA108 7F0B55D8 C4388C7C */ lwc1 $f24, %lo(D_80058C7C)($at)
|
|
/* 0EA10C 7F0B55DC 00008825 */ move $s1, $zero
|
|
/* 0EA110 7F0B55E0 27B70080 */ addiu $s7, $sp, 0x80
|
|
/* 0EA114 7F0B55E4 0051C821 */ addu $t9, $v0, $s1
|
|
.L7F0B55E8:
|
|
/* 0EA118 7F0B55E8 C72A0004 */ lwc1 $f10, 4($t9)
|
|
/* 0EA11C 7F0B55EC 4616A032 */ c.eq.s $f20, $f22
|
|
/* 0EA120 7F0B55F0 02E02825 */ move $a1, $s7
|
|
/* 0EA124 7F0B55F4 E60A0000 */ swc1 $f10, ($s0)
|
|
/* 0EA128 7F0B55F8 8E680000 */ lw $t0, ($s3)
|
|
/* 0EA12C 7F0B55FC 01154821 */ addu $t1, $t0, $s5
|
|
/* 0EA130 7F0B5600 8D2A0000 */ lw $t2, ($t1)
|
|
/* 0EA134 7F0B5604 01515821 */ addu $t3, $t2, $s1
|
|
/* 0EA138 7F0B5608 C5720008 */ lwc1 $f18, 8($t3)
|
|
/* 0EA13C 7F0B560C E6120004 */ swc1 $f18, 4($s0)
|
|
/* 0EA140 7F0B5610 8E6C0000 */ lw $t4, ($s3)
|
|
/* 0EA144 7F0B5614 01956821 */ addu $t5, $t4, $s5
|
|
/* 0EA148 7F0B5618 8DAE0000 */ lw $t6, ($t5)
|
|
/* 0EA14C 7F0B561C 01D17821 */ addu $t7, $t6, $s1
|
|
/* 0EA150 7F0B5620 C5E4000C */ lwc1 $f4, 0xc($t7)
|
|
/* 0EA154 7F0B5624 45010012 */ bc1t .L7F0B5670
|
|
/* 0EA158 7F0B5628 E6040008 */ swc1 $f4, 8($s0)
|
|
/* 0EA15C 7F0B562C 0FC2E5B3 */ jal sub_GAME_7F0B96CC
|
|
/* 0EA160 7F0B5630 8FA400B0 */ lw $a0, 0xb0($sp)
|
|
/* 0EA164 7F0B5634 C7A80080 */ lwc1 $f8, 0x80($sp)
|
|
/* 0EA168 7F0B5638 C6060000 */ lwc1 $f6, ($s0)
|
|
/* 0EA16C 7F0B563C C6040004 */ lwc1 $f4, 4($s0)
|
|
/* 0EA170 7F0B5640 46144282 */ mul.s $f10, $f8, $f20
|
|
/* 0EA174 7F0B5644 460A3480 */ add.s $f18, $f6, $f10
|
|
/* 0EA178 7F0B5648 E6120000 */ swc1 $f18, ($s0)
|
|
/* 0EA17C 7F0B564C C7A80084 */ lwc1 $f8, 0x84($sp)
|
|
/* 0EA180 7F0B5650 C6120008 */ lwc1 $f18, 8($s0)
|
|
/* 0EA184 7F0B5654 46144182 */ mul.s $f6, $f8, $f20
|
|
/* 0EA188 7F0B5658 46062280 */ add.s $f10, $f4, $f6
|
|
/* 0EA18C 7F0B565C E60A0004 */ swc1 $f10, 4($s0)
|
|
/* 0EA190 7F0B5660 C7A80088 */ lwc1 $f8, 0x88($sp)
|
|
/* 0EA194 7F0B5664 46144102 */ mul.s $f4, $f8, $f20
|
|
/* 0EA198 7F0B5668 46049180 */ add.s $f6, $f18, $f4
|
|
/* 0EA19C 7F0B566C E6060008 */ swc1 $f6, 8($s0)
|
|
.L7F0B5670:
|
|
/* 0EA1A0 7F0B5670 C60A0000 */ lwc1 $f10, ($s0)
|
|
/* 0EA1A4 7F0B5674 C6880000 */ lwc1 $f8, ($s4)
|
|
/* 0EA1A8 7F0B5678 C6040004 */ lwc1 $f4, 4($s0)
|
|
/* 0EA1AC 7F0B567C 02002825 */ move $a1, $s0
|
|
/* 0EA1B0 7F0B5680 46085482 */ mul.s $f18, $f10, $f8
|
|
/* 0EA1B4 7F0B5684 C6080008 */ lwc1 $f8, 8($s0)
|
|
/* 0EA1B8 7F0B5688 E6120000 */ swc1 $f18, ($s0)
|
|
/* 0EA1BC 7F0B568C C6860000 */ lwc1 $f6, ($s4)
|
|
/* 0EA1C0 7F0B5690 46062282 */ mul.s $f10, $f4, $f6
|
|
/* 0EA1C4 7F0B5694 E60A0004 */ swc1 $f10, 4($s0)
|
|
/* 0EA1C8 7F0B5698 C6920000 */ lwc1 $f18, ($s4)
|
|
/* 0EA1CC 7F0B569C 46124102 */ mul.s $f4, $f8, $f18
|
|
/* 0EA1D0 7F0B56A0 E6040008 */ swc1 $f4, 8($s0)
|
|
/* 0EA1D4 7F0B56A4 0FC1611D */ jal mtx4TransformVecInPlace
|
|
/* 0EA1D8 7F0B56A8 8FA400AC */ lw $a0, 0xac($sp)
|
|
/* 0EA1DC 7F0B56AC C7A6009C */ lwc1 $f6, 0x9c($sp)
|
|
/* 0EA1E0 7F0B56B0 C6120008 */ lwc1 $f18, 8($s0)
|
|
/* 0EA1E4 7F0B56B4 46003287 */ neg.s $f10, $f6
|
|
/* 0EA1E8 7F0B56B8 46185202 */ mul.s $f8, $f10, $f24
|
|
/* 0EA1EC 7F0B56BC 4612403C */ c.lt.s $f8, $f18
|
|
/* 0EA1F0 7F0B56C0 00000000 */ nop
|
|
/* 0EA1F4 7F0B56C4 45020003 */ bc1fl .L7F0B56D4
|
|
/* 0EA1F8 7F0B56C8 8E780000 */ lw $t8, ($s3)
|
|
/* 0EA1FC 7F0B56CC 0000F025 */ move $fp, $zero
|
|
/* 0EA200 7F0B56D0 8E780000 */ lw $t8, ($s3)
|
|
.L7F0B56D4:
|
|
/* 0EA204 7F0B56D4 26520001 */ addiu $s2, $s2, 1
|
|
/* 0EA208 7F0B56D8 2631000C */ addiu $s1, $s1, 0xc
|
|
/* 0EA20C 7F0B56DC 0315C821 */ addu $t9, $t8, $s5
|
|
/* 0EA210 7F0B56E0 8F220000 */ lw $v0, ($t9)
|
|
/* 0EA214 7F0B56E4 2610000C */ addiu $s0, $s0, 0xc
|
|
/* 0EA218 7F0B56E8 90440000 */ lbu $a0, ($v0)
|
|
/* 0EA21C 7F0B56EC 0244082A */ slt $at, $s2, $a0
|
|
/* 0EA220 7F0B56F0 5420FFBD */ bnezl $at, .L7F0B55E8
|
|
/* 0EA224 7F0B56F4 0051C821 */ addu $t9, $v0, $s1
|
|
/* 0EA228 7F0B56F8 4480B000 */ mtc1 $zero, $f22
|
|
.L7F0B56FC:
|
|
/* 0EA22C 7F0B56FC 13C00003 */ beqz $fp, .L7F0B570C
|
|
/* 0EA230 7F0B5700 00803825 */ move $a3, $a0
|
|
/* 0EA234 7F0B5704 10000048 */ b .L7F0B5828
|
|
/* 0EA238 7F0B5708 00001025 */ move $v0, $zero
|
|
.L7F0B570C:
|
|
/* 0EA23C 7F0B570C 18800045 */ blez $a0, .L7F0B5824
|
|
/* 0EA240 7F0B5710 00009025 */ move $s2, $zero
|
|
/* 0EA244 7F0B5714 02C08025 */ move $s0, $s6
|
|
/* 0EA248 7F0B5718 2406000C */ li $a2, 12
|
|
.L7F0B571C:
|
|
/* 0EA24C 7F0B571C 26450001 */ addiu $a1, $s2, 1
|
|
/* 0EA250 7F0B5720 00A4001A */ div $zero, $a1, $a0
|
|
/* 0EA254 7F0B5724 C6100008 */ lwc1 $f16, 8($s0)
|
|
/* 0EA258 7F0B5728 00001810 */ mfhi $v1
|
|
/* 0EA25C 7F0B572C 00A09025 */ move $s2, $a1
|
|
/* 0EA260 7F0B5730 4610B03C */ c.lt.s $f22, $f16
|
|
/* 0EA264 7F0B5734 14800002 */ bnez $a0, .L7F0B5740
|
|
/* 0EA268 7F0B5738 00000000 */ nop
|
|
/* 0EA26C 7F0B573C 0007000D */ break 7
|
|
.L7F0B5740:
|
|
/* 0EA270 7F0B5740 2401FFFF */ li $at, -1
|
|
/* 0EA274 7F0B5744 14810004 */ bne $a0, $at, .L7F0B5758
|
|
/* 0EA278 7F0B5748 3C018000 */ lui $at, 0x8000
|
|
/* 0EA27C 7F0B574C 14A10002 */ bne $a1, $at, .L7F0B5758
|
|
/* 0EA280 7F0B5750 00000000 */ nop
|
|
/* 0EA284 7F0B5754 0006000D */ break 6
|
|
.L7F0B5758:
|
|
/* 0EA288 7F0B5758 4502000A */ bc1fl .L7F0B5784
|
|
/* 0EA28C 7F0B575C 4616803E */ c.le.s $f16, $f22
|
|
/* 0EA290 7F0B5760 00660019 */ multu $v1, $a2
|
|
/* 0EA294 7F0B5764 00004012 */ mflo $t0
|
|
/* 0EA298 7F0B5768 02C81021 */ addu $v0, $s6, $t0
|
|
/* 0EA29C 7F0B576C C44E0008 */ lwc1 $f14, 8($v0)
|
|
/* 0EA2A0 7F0B5770 4616703E */ c.le.s $f14, $f22
|
|
/* 0EA2A4 7F0B5774 00000000 */ nop
|
|
/* 0EA2A8 7F0B5778 4503000E */ bc1tl .L7F0B57B4
|
|
/* 0EA2AC 7F0B577C 46107181 */ sub.s $f6, $f14, $f16
|
|
/* 0EA2B0 7F0B5780 4616803E */ c.le.s $f16, $f22
|
|
.L7F0B5784:
|
|
/* 0EA2B4 7F0B5784 00000000 */ nop
|
|
/* 0EA2B8 7F0B5788 45020024 */ bc1fl .L7F0B581C
|
|
/* 0EA2BC 7F0B578C 00A4082A */ slt $at, $a1, $a0
|
|
/* 0EA2C0 7F0B5790 00660019 */ multu $v1, $a2
|
|
/* 0EA2C4 7F0B5794 00004812 */ mflo $t1
|
|
/* 0EA2C8 7F0B5798 02C91021 */ addu $v0, $s6, $t1
|
|
/* 0EA2CC 7F0B579C C44E0008 */ lwc1 $f14, 8($v0)
|
|
/* 0EA2D0 7F0B57A0 460EB03C */ c.lt.s $f22, $f14
|
|
/* 0EA2D4 7F0B57A4 00000000 */ nop
|
|
/* 0EA2D8 7F0B57A8 4502001C */ bc1fl .L7F0B581C
|
|
/* 0EA2DC 7F0B57AC 00A4082A */ slt $at, $a1, $a0
|
|
/* 0EA2E0 7F0B57B0 46107181 */ sub.s $f6, $f14, $f16
|
|
.L7F0B57B4:
|
|
/* 0EA2E4 7F0B57B4 C6000000 */ lwc1 $f0, ($s0)
|
|
/* 0EA2E8 7F0B57B8 C44A0000 */ lwc1 $f10, ($v0)
|
|
/* 0EA2EC 7F0B57BC 46008107 */ neg.s $f4, $f16
|
|
/* 0EA2F0 7F0B57C0 00E60019 */ multu $a3, $a2
|
|
/* 0EA2F4 7F0B57C4 46062303 */ div.s $f12, $f4, $f6
|
|
/* 0EA2F8 7F0B57C8 3C0B8008 */ lui $t3, %hi(g_BgPortals)
|
|
/* 0EA2FC 7F0B57CC 24E70001 */ addiu $a3, $a3, 1
|
|
/* 0EA300 7F0B57D0 46005201 */ sub.s $f8, $f10, $f0
|
|
/* 0EA304 7F0B57D4 00005012 */ mflo $t2
|
|
/* 0EA308 7F0B57D8 02CA1821 */ addu $v1, $s6, $t2
|
|
/* 0EA30C 7F0B57DC 2463000C */ addiu $v1, $v1, 0xc
|
|
/* 0EA310 7F0B57E0 460C4482 */ mul.s $f18, $f8, $f12
|
|
/* 0EA314 7F0B57E4 46009100 */ add.s $f4, $f18, $f0
|
|
/* 0EA318 7F0B57E8 E464FFF4 */ swc1 $f4, -0xc($v1)
|
|
/* 0EA31C 7F0B57EC C4460004 */ lwc1 $f6, 4($v0)
|
|
/* 0EA320 7F0B57F0 C6020004 */ lwc1 $f2, 4($s0)
|
|
/* 0EA324 7F0B57F4 E476FFFC */ swc1 $f22, -4($v1)
|
|
/* 0EA328 7F0B57F8 46023281 */ sub.s $f10, $f6, $f2
|
|
/* 0EA32C 7F0B57FC 460C5202 */ mul.s $f8, $f10, $f12
|
|
/* 0EA330 7F0B5800 46024480 */ add.s $f18, $f8, $f2
|
|
/* 0EA334 7F0B5804 E472FFF8 */ swc1 $f18, -8($v1)
|
|
/* 0EA338 7F0B5808 8D6BFF80 */ lw $t3, %lo(g_BgPortals)($t3)
|
|
/* 0EA33C 7F0B580C 01756021 */ addu $t4, $t3, $s5
|
|
/* 0EA340 7F0B5810 8D8D0000 */ lw $t5, ($t4)
|
|
/* 0EA344 7F0B5814 91A40000 */ lbu $a0, ($t5)
|
|
/* 0EA348 7F0B5818 00A4082A */ slt $at, $a1, $a0
|
|
.L7F0B581C:
|
|
/* 0EA34C 7F0B581C 1420FFBF */ bnez $at, .L7F0B571C
|
|
/* 0EA350 7F0B5820 2610000C */ addiu $s0, $s0, 0xc
|
|
.L7F0B5824:
|
|
/* 0EA354 7F0B5824 00E01025 */ move $v0, $a3
|
|
.L7F0B5828:
|
|
/* 0EA358 7F0B5828 8FBF0054 */ lw $ra, 0x54($sp)
|
|
/* 0EA35C 7F0B582C D7B40018 */ ldc1 $f20, 0x18($sp)
|
|
/* 0EA360 7F0B5830 D7B60020 */ ldc1 $f22, 0x20($sp)
|
|
/* 0EA364 7F0B5834 D7B80028 */ ldc1 $f24, 0x28($sp)
|
|
/* 0EA368 7F0B5838 8FB00030 */ lw $s0, 0x30($sp)
|
|
/* 0EA36C 7F0B583C 8FB10034 */ lw $s1, 0x34($sp)
|
|
/* 0EA370 7F0B5840 8FB20038 */ lw $s2, 0x38($sp)
|
|
/* 0EA374 7F0B5844 8FB3003C */ lw $s3, 0x3c($sp)
|
|
/* 0EA378 7F0B5848 8FB40040 */ lw $s4, 0x40($sp)
|
|
/* 0EA37C 7F0B584C 8FB50044 */ lw $s5, 0x44($sp)
|
|
/* 0EA380 7F0B5850 8FB60048 */ lw $s6, 0x48($sp)
|
|
/* 0EA384 7F0B5854 8FB7004C */ lw $s7, 0x4c($sp)
|
|
/* 0EA388 7F0B5858 8FBE0050 */ lw $fp, 0x50($sp)
|
|
/* 0EA38C 7F0B585C 03E00008 */ jr $ra
|
|
/* 0EA390 7F0B5860 27BD00B0 */ addiu $sp, $sp, 0xb0
|
|
)
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
void sub_GAME_7F0B5864(void) {
|
|
|
|
}
|
|
#else
|
|
#if defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B5864
|
|
/* 0EA394 7F0B5864 27BDFE90 */ addiu $sp, $sp, -0x170
|
|
/* 0EA398 7F0B5868 00047080 */ sll $t6, $a0, 2
|
|
/* 0EA39C 7F0B586C 01C47021 */ addu $t6, $t6, $a0
|
|
/* 0EA3A0 7F0B5870 3C0F8008 */ lui $t7, %hi(table_for_portals)
|
|
/* 0EA3A4 7F0B5874 AFB5003C */ sw $s5, 0x3c($sp)
|
|
/* 0EA3A8 7F0B5878 25EF1618 */ addiu $t7, %lo(table_for_portals) # addiu $t7, $t7, 0x1618
|
|
/* 0EA3AC 7F0B587C 000E7080 */ sll $t6, $t6, 2
|
|
/* 0EA3B0 7F0B5880 01CFA821 */ addu $s5, $t6, $t7
|
|
/* 0EA3B4 7F0B5884 8EB80000 */ lw $t8, ($s5)
|
|
/* 0EA3B8 7F0B5888 AFB60040 */ sw $s6, 0x40($sp)
|
|
/* 0EA3BC 7F0B588C AFB00028 */ sw $s0, 0x28($sp)
|
|
/* 0EA3C0 7F0B5890 00808025 */ move $s0, $a0
|
|
/* 0EA3C4 7F0B5894 00A0B025 */ move $s6, $a1
|
|
/* 0EA3C8 7F0B5898 AFBF0044 */ sw $ra, 0x44($sp)
|
|
/* 0EA3CC 7F0B589C AFB40038 */ sw $s4, 0x38($sp)
|
|
/* 0EA3D0 7F0B58A0 AFB30034 */ sw $s3, 0x34($sp)
|
|
/* 0EA3D4 7F0B58A4 AFB20030 */ sw $s2, 0x30($sp)
|
|
/* 0EA3D8 7F0B58A8 AFB1002C */ sw $s1, 0x2c($sp)
|
|
/* 0EA3DC 7F0B58AC F7B60020 */ sdc1 $f22, 0x20($sp)
|
|
/* 0EA3E0 7F0B58B0 0700000B */ bltz $t8, .L7F0B58E0
|
|
/* 0EA3E4 7F0B58B4 F7B40018 */ sdc1 $f20, 0x18($sp)
|
|
/* 0EA3E8 7F0B58B8 C6A40004 */ lwc1 $f4, 4($s5)
|
|
/* 0EA3EC 7F0B58BC E4A40000 */ swc1 $f4, ($a1)
|
|
/* 0EA3F0 7F0B58C0 C6A60008 */ lwc1 $f6, 8($s5)
|
|
/* 0EA3F4 7F0B58C4 E4A60004 */ swc1 $f6, 4($a1)
|
|
/* 0EA3F8 7F0B58C8 C6A8000C */ lwc1 $f8, 0xc($s5)
|
|
/* 0EA3FC 7F0B58CC E4A80008 */ swc1 $f8, 8($a1)
|
|
/* 0EA400 7F0B58D0 C6AA0010 */ lwc1 $f10, 0x10($s5)
|
|
/* 0EA404 7F0B58D4 E4AA000C */ swc1 $f10, 0xc($a1)
|
|
/* 0EA408 7F0B58D8 10000082 */ b .L7F0B5AE4
|
|
/* 0EA40C 7F0B58DC 8EA20000 */ lw $v0, ($s5)
|
|
.L7F0B58E0:
|
|
/* 0EA410 7F0B58E0 0FC2E664 */ jal sub_GAME_7F0B9990
|
|
/* 0EA414 7F0B58E4 02002025 */ move $a0, $s0
|
|
/* 0EA418 7F0B58E8 27B10080 */ addiu $s1, $sp, 0x80
|
|
/* 0EA41C 7F0B58EC 44050000 */ mfc1 $a1, $f0
|
|
/* 0EA420 7F0B58F0 46000586 */ mov.s $f22, $f0
|
|
/* 0EA424 7F0B58F4 02203025 */ move $a2, $s1
|
|
/* 0EA428 7F0B58F8 0FC2D54A */ jal sub_GAME_7F0B5528
|
|
/* 0EA42C 7F0B58FC 02002025 */ move $a0, $s0
|
|
/* 0EA430 7F0B5900 4480A000 */ mtc1 $zero, $f20
|
|
/* 0EA434 7F0B5904 0002C880 */ sll $t9, $v0, 2
|
|
/* 0EA438 7F0B5908 00409825 */ move $s3, $v0
|
|
/* 0EA43C 7F0B590C 4616A03C */ c.lt.s $f20, $f22
|
|
/* 0EA440 7F0B5910 0322C823 */ subu $t9, $t9, $v0
|
|
/* 0EA444 7F0B5914 02002025 */ move $a0, $s0
|
|
/* 0EA448 7F0B5918 45020008 */ bc1fl .L7F0B593C
|
|
/* 0EA44C 7F0B591C 00009025 */ move $s2, $zero
|
|
/* 0EA450 7F0B5920 4600B107 */ neg.s $f4, $f22
|
|
/* 0EA454 7F0B5924 0019C880 */ sll $t9, $t9, 2
|
|
/* 0EA458 7F0B5928 44052000 */ mfc1 $a1, $f4
|
|
/* 0EA45C 7F0B592C 0FC2D54A */ jal sub_GAME_7F0B5528
|
|
/* 0EA460 7F0B5930 02393021 */ addu $a2, $s1, $t9
|
|
/* 0EA464 7F0B5934 02629821 */ addu $s3, $s3, $v0
|
|
/* 0EA468 7F0B5938 00009025 */ move $s2, $zero
|
|
.L7F0B593C:
|
|
/* 0EA46C 7F0B593C 1A600039 */ blez $s3, .L7F0B5A24
|
|
/* 0EA470 7F0B5940 00008825 */ move $s1, $zero
|
|
/* 0EA474 7F0B5944 27B00080 */ addiu $s0, $sp, 0x80
|
|
/* 0EA478 7F0B5948 27B40078 */ addiu $s4, $sp, 0x78
|
|
.L7F0B594C:
|
|
/* 0EA47C 7F0B594C C6060008 */ lwc1 $f6, 8($s0)
|
|
/* 0EA480 7F0B5950 C7AE0074 */ lwc1 $f14, 0x74($sp)
|
|
/* 0EA484 7F0B5954 C7B0006C */ lwc1 $f16, 0x6c($sp)
|
|
/* 0EA488 7F0B5958 4614303E */ c.le.s $f6, $f20
|
|
/* 0EA48C 7F0B595C C7B20070 */ lwc1 $f18, 0x70($sp)
|
|
/* 0EA490 7F0B5960 C7B60068 */ lwc1 $f22, 0x68($sp)
|
|
/* 0EA494 7F0B5964 02002025 */ move $a0, $s0
|
|
/* 0EA498 7F0B5968 45020024 */ bc1fl .L7F0B59FC
|
|
/* 0EA49C 7F0B596C 26310001 */ addiu $s1, $s1, 1
|
|
/* 0EA4A0 7F0B5970 0FC1E018 */ jal sub_GAME_7F078060
|
|
/* 0EA4A4 7F0B5974 02802825 */ move $a1, $s4
|
|
/* 0EA4A8 7F0B5978 16400006 */ bnez $s2, .L7F0B5994
|
|
/* 0EA4AC 7F0B597C C7A20078 */ lwc1 $f2, 0x78($sp)
|
|
/* 0EA4B0 7F0B5980 C7B60078 */ lwc1 $f22, 0x78($sp)
|
|
/* 0EA4B4 7F0B5984 C7B0007C */ lwc1 $f16, 0x7c($sp)
|
|
/* 0EA4B8 7F0B5988 4600B486 */ mov.s $f18, $f22
|
|
/* 0EA4BC 7F0B598C 10000019 */ b .L7F0B59F4
|
|
/* 0EA4C0 7F0B5990 46008386 */ mov.s $f14, $f16
|
|
.L7F0B5994:
|
|
/* 0EA4C4 7F0B5994 C7B60068 */ lwc1 $f22, 0x68($sp)
|
|
/* 0EA4C8 7F0B5998 C7B20070 */ lwc1 $f18, 0x70($sp)
|
|
/* 0EA4CC 7F0B599C C7AC007C */ lwc1 $f12, 0x7c($sp)
|
|
/* 0EA4D0 7F0B59A0 4616103C */ c.lt.s $f2, $f22
|
|
/* 0EA4D4 7F0B59A4 C7B0006C */ lwc1 $f16, 0x6c($sp)
|
|
/* 0EA4D8 7F0B59A8 C7AE0074 */ lwc1 $f14, 0x74($sp)
|
|
/* 0EA4DC 7F0B59AC 45020003 */ bc1fl .L7F0B59BC
|
|
/* 0EA4E0 7F0B59B0 4602903C */ c.lt.s $f18, $f2
|
|
/* 0EA4E4 7F0B59B4 46001586 */ mov.s $f22, $f2
|
|
/* 0EA4E8 7F0B59B8 4602903C */ c.lt.s $f18, $f2
|
|
.L7F0B59BC:
|
|
/* 0EA4EC 7F0B59BC 00000000 */ nop
|
|
/* 0EA4F0 7F0B59C0 45020003 */ bc1fl .L7F0B59D0
|
|
/* 0EA4F4 7F0B59C4 4610603C */ c.lt.s $f12, $f16
|
|
/* 0EA4F8 7F0B59C8 46001486 */ mov.s $f18, $f2
|
|
/* 0EA4FC 7F0B59CC 4610603C */ c.lt.s $f12, $f16
|
|
.L7F0B59D0:
|
|
/* 0EA500 7F0B59D0 00000000 */ nop
|
|
/* 0EA504 7F0B59D4 45020003 */ bc1fl .L7F0B59E4
|
|
/* 0EA508 7F0B59D8 460C703C */ c.lt.s $f14, $f12
|
|
/* 0EA50C 7F0B59DC 46006406 */ mov.s $f16, $f12
|
|
/* 0EA510 7F0B59E0 460C703C */ c.lt.s $f14, $f12
|
|
.L7F0B59E4:
|
|
/* 0EA514 7F0B59E4 00000000 */ nop
|
|
/* 0EA518 7F0B59E8 45020003 */ bc1fl .L7F0B59F8
|
|
/* 0EA51C 7F0B59EC 26520001 */ addiu $s2, $s2, 1
|
|
/* 0EA520 7F0B59F0 46006386 */ mov.s $f14, $f12
|
|
.L7F0B59F4:
|
|
/* 0EA524 7F0B59F4 26520001 */ addiu $s2, $s2, 1
|
|
.L7F0B59F8:
|
|
/* 0EA528 7F0B59F8 26310001 */ addiu $s1, $s1, 1
|
|
.L7F0B59FC:
|
|
/* 0EA52C 7F0B59FC 2610000C */ addiu $s0, $s0, 0xc
|
|
/* 0EA530 7F0B5A00 E7AE0074 */ swc1 $f14, 0x74($sp)
|
|
/* 0EA534 7F0B5A04 E7B0006C */ swc1 $f16, 0x6c($sp)
|
|
/* 0EA538 7F0B5A08 E7B20070 */ swc1 $f18, 0x70($sp)
|
|
/* 0EA53C 7F0B5A0C 1633FFCF */ bne $s1, $s3, .L7F0B594C
|
|
/* 0EA540 7F0B5A10 E7B60068 */ swc1 $f22, 0x68($sp)
|
|
/* 0EA544 7F0B5A14 E7AE0074 */ swc1 $f14, 0x74($sp)
|
|
/* 0EA548 7F0B5A18 E7B0006C */ swc1 $f16, 0x6c($sp)
|
|
/* 0EA54C 7F0B5A1C E7B20070 */ swc1 $f18, 0x70($sp)
|
|
/* 0EA550 7F0B5A20 E7B60068 */ swc1 $f22, 0x68($sp)
|
|
.L7F0B5A24:
|
|
/* 0EA554 7F0B5A24 C7AE0074 */ lwc1 $f14, 0x74($sp)
|
|
/* 0EA558 7F0B5A28 C7B0006C */ lwc1 $f16, 0x6c($sp)
|
|
/* 0EA55C 7F0B5A2C C7B20070 */ lwc1 $f18, 0x70($sp)
|
|
/* 0EA560 7F0B5A30 16400006 */ bnez $s2, .L7F0B5A4C
|
|
/* 0EA564 7F0B5A34 C7B60068 */ lwc1 $f22, 0x68($sp)
|
|
/* 0EA568 7F0B5A38 E7B40074 */ swc1 $f20, 0x74($sp)
|
|
/* 0EA56C 7F0B5A3C E7B4006C */ swc1 $f20, 0x6c($sp)
|
|
/* 0EA570 7F0B5A40 E7B40070 */ swc1 $f20, 0x70($sp)
|
|
/* 0EA574 7F0B5A44 10000015 */ b .L7F0B5A9C
|
|
/* 0EA578 7F0B5A48 E7B40068 */ swc1 $f20, 0x68($sp)
|
|
.L7F0B5A4C:
|
|
/* 0EA57C 7F0B5A4C 4616903E */ c.le.s $f18, $f22
|
|
/* 0EA580 7F0B5A50 E7AE0074 */ swc1 $f14, 0x74($sp)
|
|
/* 0EA584 7F0B5A54 E7B0006C */ swc1 $f16, 0x6c($sp)
|
|
/* 0EA588 7F0B5A58 E7B20070 */ swc1 $f18, 0x70($sp)
|
|
/* 0EA58C 7F0B5A5C 45010005 */ bc1t .L7F0B5A74
|
|
/* 0EA590 7F0B5A60 E7B60068 */ swc1 $f22, 0x68($sp)
|
|
/* 0EA594 7F0B5A64 4610703E */ c.le.s $f14, $f16
|
|
/* 0EA598 7F0B5A68 E7AE0074 */ swc1 $f14, 0x74($sp)
|
|
/* 0EA59C 7F0B5A6C E7B0006C */ swc1 $f16, 0x6c($sp)
|
|
/* 0EA5A0 7F0B5A70 4500000A */ bc1f .L7F0B5A9C
|
|
.L7F0B5A74:
|
|
/* 0EA5A4 7F0B5A74 3C028008 */ lui $v0, %hi(g_CurrentPlayer)
|
|
/* 0EA5A8 7F0B5A78 8C42A0B0 */ lw $v0, %lo(g_CurrentPlayer)($v0)
|
|
/* 0EA5AC 7F0B5A7C C4481118 */ lwc1 $f8, 0x1118($v0)
|
|
/* 0EA5B0 7F0B5A80 E7A80068 */ swc1 $f8, 0x68($sp)
|
|
/* 0EA5B4 7F0B5A84 C44A111C */ lwc1 $f10, 0x111c($v0)
|
|
/* 0EA5B8 7F0B5A88 E7AA006C */ swc1 $f10, 0x6c($sp)
|
|
/* 0EA5BC 7F0B5A8C C4441120 */ lwc1 $f4, 0x1120($v0)
|
|
/* 0EA5C0 7F0B5A90 E7A40070 */ swc1 $f4, 0x70($sp)
|
|
/* 0EA5C4 7F0B5A94 C4461124 */ lwc1 $f6, 0x1124($v0)
|
|
/* 0EA5C8 7F0B5A98 E7A60074 */ swc1 $f6, 0x74($sp)
|
|
.L7F0B5A9C:
|
|
/* 0EA5CC 7F0B5A9C C7A80068 */ lwc1 $f8, 0x68($sp)
|
|
/* 0EA5D0 7F0B5AA0 02401025 */ move $v0, $s2
|
|
/* 0EA5D4 7F0B5AA4 E6C80000 */ swc1 $f8, ($s6)
|
|
/* 0EA5D8 7F0B5AA8 C7AA006C */ lwc1 $f10, 0x6c($sp)
|
|
/* 0EA5DC 7F0B5AAC C6C80000 */ lwc1 $f8, ($s6)
|
|
/* 0EA5E0 7F0B5AB0 E6CA0004 */ swc1 $f10, 4($s6)
|
|
/* 0EA5E4 7F0B5AB4 C7A40070 */ lwc1 $f4, 0x70($sp)
|
|
/* 0EA5E8 7F0B5AB8 E6C40008 */ swc1 $f4, 8($s6)
|
|
/* 0EA5EC 7F0B5ABC C7A60074 */ lwc1 $f6, 0x74($sp)
|
|
/* 0EA5F0 7F0B5AC0 E6C6000C */ swc1 $f6, 0xc($s6)
|
|
/* 0EA5F4 7F0B5AC4 E6A80004 */ swc1 $f8, 4($s5)
|
|
/* 0EA5F8 7F0B5AC8 C6CA0004 */ lwc1 $f10, 4($s6)
|
|
/* 0EA5FC 7F0B5ACC E6AA0008 */ swc1 $f10, 8($s5)
|
|
/* 0EA600 7F0B5AD0 C6C40008 */ lwc1 $f4, 8($s6)
|
|
/* 0EA604 7F0B5AD4 E6A4000C */ swc1 $f4, 0xc($s5)
|
|
/* 0EA608 7F0B5AD8 C6C6000C */ lwc1 $f6, 0xc($s6)
|
|
/* 0EA60C 7F0B5ADC AEB20000 */ sw $s2, ($s5)
|
|
/* 0EA610 7F0B5AE0 E6A60010 */ swc1 $f6, 0x10($s5)
|
|
.L7F0B5AE4:
|
|
/* 0EA614 7F0B5AE4 8FBF0044 */ lw $ra, 0x44($sp)
|
|
/* 0EA618 7F0B5AE8 D7B40018 */ ldc1 $f20, 0x18($sp)
|
|
/* 0EA61C 7F0B5AEC D7B60020 */ ldc1 $f22, 0x20($sp)
|
|
/* 0EA620 7F0B5AF0 8FB00028 */ lw $s0, 0x28($sp)
|
|
/* 0EA624 7F0B5AF4 8FB1002C */ lw $s1, 0x2c($sp)
|
|
/* 0EA628 7F0B5AF8 8FB20030 */ lw $s2, 0x30($sp)
|
|
/* 0EA62C 7F0B5AFC 8FB30034 */ lw $s3, 0x34($sp)
|
|
/* 0EA630 7F0B5B00 8FB40038 */ lw $s4, 0x38($sp)
|
|
/* 0EA634 7F0B5B04 8FB5003C */ lw $s5, 0x3c($sp)
|
|
/* 0EA638 7F0B5B08 8FB60040 */ lw $s6, 0x40($sp)
|
|
/* 0EA63C 7F0B5B0C 03E00008 */ jr $ra
|
|
/* 0EA640 7F0B5B10 27BD0170 */ addiu $sp, $sp, 0x170
|
|
)
|
|
#endif
|
|
|
|
#if !defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B5864
|
|
/* 0E7590 7F0B4BA0 27BDFE90 */ addiu $sp, $sp, -0x170
|
|
/* 0E7594 7F0B4BA4 00047080 */ sll $t6, $a0, 2
|
|
/* 0E7598 7F0B4BA8 01C47021 */ addu $t6, $t6, $a0
|
|
/* 0E759C 7F0B4BAC 3C0F8007 */ lui $t7, %hi(table_for_portals) # $t7, 0x8007
|
|
/* 0E75A0 7F0B4BB0 AFB5003C */ sw $s5, 0x3c($sp)
|
|
/* 0E75A4 7F0B4BB4 25EFBFC0 */ addiu $t7, %lo(table_for_portals) # addiu $t7, $t7, -0x4040
|
|
/* 0E75A8 7F0B4BB8 000E7080 */ sll $t6, $t6, 2
|
|
/* 0E75AC 7F0B4BBC 01CFA821 */ addu $s5, $t6, $t7
|
|
/* 0E75B0 7F0B4BC0 8EB80000 */ lw $t8, ($s5)
|
|
/* 0E75B4 7F0B4BC4 AFB60040 */ sw $s6, 0x40($sp)
|
|
/* 0E75B8 7F0B4BC8 AFB00028 */ sw $s0, 0x28($sp)
|
|
/* 0E75BC 7F0B4BCC 00808025 */ move $s0, $a0
|
|
/* 0E75C0 7F0B4BD0 00A0B025 */ move $s6, $a1
|
|
/* 0E75C4 7F0B4BD4 AFBF0044 */ sw $ra, 0x44($sp)
|
|
/* 0E75C8 7F0B4BD8 AFB40038 */ sw $s4, 0x38($sp)
|
|
/* 0E75CC 7F0B4BDC AFB30034 */ sw $s3, 0x34($sp)
|
|
/* 0E75D0 7F0B4BE0 AFB20030 */ sw $s2, 0x30($sp)
|
|
/* 0E75D4 7F0B4BE4 AFB1002C */ sw $s1, 0x2c($sp)
|
|
/* 0E75D8 7F0B4BE8 F7B60020 */ sdc1 $f22, 0x20($sp)
|
|
/* 0E75DC 7F0B4BEC 0700000B */ bltz $t8, .Leu7F0B4C1C
|
|
/* 0E75E0 7F0B4BF0 F7B40018 */ sdc1 $f20, 0x18($sp)
|
|
/* 0E75E4 7F0B4BF4 C6A40004 */ lwc1 $f4, 4($s5)
|
|
/* 0E75E8 7F0B4BF8 E4A40000 */ swc1 $f4, ($a1)
|
|
/* 0E75EC 7F0B4BFC C6A60008 */ lwc1 $f6, 8($s5)
|
|
/* 0E75F0 7F0B4C00 E4A60004 */ swc1 $f6, 4($a1)
|
|
/* 0E75F4 7F0B4C04 C6A8000C */ lwc1 $f8, 0xc($s5)
|
|
/* 0E75F8 7F0B4C08 E4A80008 */ swc1 $f8, 8($a1)
|
|
/* 0E75FC 7F0B4C0C C6AA0010 */ lwc1 $f10, 0x10($s5)
|
|
/* 0E7600 7F0B4C10 E4AA000C */ swc1 $f10, 0xc($a1)
|
|
/* 0E7604 7F0B4C14 10000082 */ b .L7F0B4E20
|
|
/* 0E7608 7F0B4C18 8EA20000 */ lw $v0, ($s5)
|
|
.Leu7F0B4C1C:
|
|
/* 0E760C 7F0B4C1C 0FC2E30B */ jal sub_GAME_7F0B9990
|
|
/* 0E7610 7F0B4C20 02002025 */ move $a0, $s0
|
|
/* 0E7614 7F0B4C24 27B10080 */ addiu $s1, $sp, 0x80
|
|
/* 0E7618 7F0B4C28 44050000 */ mfc1 $a1, $f0
|
|
/* 0E761C 7F0B4C2C 46000586 */ mov.s $f22, $f0
|
|
/* 0E7620 7F0B4C30 02203025 */ move $a2, $s1
|
|
/* 0E7624 7F0B4C34 0FC2D219 */ jal sub_GAME_7F0B5528
|
|
/* 0E7628 7F0B4C38 02002025 */ move $a0, $s0
|
|
/* 0E762C 7F0B4C3C 4480A000 */ mtc1 $zero, $f20
|
|
/* 0E7630 7F0B4C40 0002C880 */ sll $t9, $v0, 2
|
|
/* 0E7634 7F0B4C44 00409825 */ move $s3, $v0
|
|
/* 0E7638 7F0B4C48 4616A03C */ c.lt.s $f20, $f22
|
|
/* 0E763C 7F0B4C4C 0322C823 */ subu $t9, $t9, $v0
|
|
/* 0E7640 7F0B4C50 02002025 */ move $a0, $s0
|
|
/* 0E7644 7F0B4C54 45020008 */ bc1fl .L7F0B4C78
|
|
/* 0E7648 7F0B4C58 00009025 */ move $s2, $zero
|
|
/* 0E764C 7F0B4C5C 4600B107 */ neg.s $f4, $f22
|
|
/* 0E7650 7F0B4C60 0019C880 */ sll $t9, $t9, 2
|
|
/* 0E7654 7F0B4C64 44052000 */ mfc1 $a1, $f4
|
|
/* 0E7658 7F0B4C68 0FC2D219 */ jal sub_GAME_7F0B5528
|
|
/* 0E765C 7F0B4C6C 02393021 */ addu $a2, $s1, $t9
|
|
/* 0E7660 7F0B4C70 02629821 */ addu $s3, $s3, $v0
|
|
/* 0E7664 7F0B4C74 00009025 */ move $s2, $zero
|
|
.L7F0B4C78:
|
|
/* 0E7668 7F0B4C78 1A600039 */ blez $s3, .L7F0B4D60
|
|
/* 0E766C 7F0B4C7C 00008825 */ move $s1, $zero
|
|
/* 0E7670 7F0B4C80 27B00080 */ addiu $s0, $sp, 0x80
|
|
/* 0E7674 7F0B4C84 27B40078 */ addiu $s4, $sp, 0x78
|
|
.L7F0B4C88:
|
|
/* 0E7678 7F0B4C88 C6060008 */ lwc1 $f6, 8($s0)
|
|
/* 0E767C 7F0B4C8C C7AE0074 */ lwc1 $f14, 0x74($sp)
|
|
/* 0E7680 7F0B4C90 C7B0006C */ lwc1 $f16, 0x6c($sp)
|
|
/* 0E7684 7F0B4C94 4614303E */ c.le.s $f6, $f20
|
|
/* 0E7688 7F0B4C98 C7B20070 */ lwc1 $f18, 0x70($sp)
|
|
/* 0E768C 7F0B4C9C C7B60068 */ lwc1 $f22, 0x68($sp)
|
|
/* 0E7690 7F0B4CA0 02002025 */ move $a0, $s0
|
|
/* 0E7694 7F0B4CA4 45020024 */ bc1fl .L7F0B4D38
|
|
/* 0E7698 7F0B4CA8 26310001 */ addiu $s1, $s1, 1
|
|
/* 0E769C 7F0B4CAC 0FC1E038 */ jal sub_GAME_7F078060
|
|
/* 0E76A0 7F0B4CB0 02802825 */ move $a1, $s4
|
|
/* 0E76A4 7F0B4CB4 16400006 */ bnez $s2, .L7F0B4CD0
|
|
/* 0E76A8 7F0B4CB8 C7A20078 */ lwc1 $f2, 0x78($sp)
|
|
/* 0E76AC 7F0B4CBC C7B60078 */ lwc1 $f22, 0x78($sp)
|
|
/* 0E76B0 7F0B4CC0 C7B0007C */ lwc1 $f16, 0x7c($sp)
|
|
/* 0E76B4 7F0B4CC4 4600B486 */ mov.s $f18, $f22
|
|
/* 0E76B8 7F0B4CC8 10000019 */ b .Leu7F0B4D30
|
|
/* 0E76BC 7F0B4CCC 46008386 */ mov.s $f14, $f16
|
|
.L7F0B4CD0:
|
|
/* 0E76C0 7F0B4CD0 C7B60068 */ lwc1 $f22, 0x68($sp)
|
|
/* 0E76C4 7F0B4CD4 C7B20070 */ lwc1 $f18, 0x70($sp)
|
|
/* 0E76C8 7F0B4CD8 C7AC007C */ lwc1 $f12, 0x7c($sp)
|
|
/* 0E76CC 7F0B4CDC 4616103C */ c.lt.s $f2, $f22
|
|
/* 0E76D0 7F0B4CE0 C7B0006C */ lwc1 $f16, 0x6c($sp)
|
|
/* 0E76D4 7F0B4CE4 C7AE0074 */ lwc1 $f14, 0x74($sp)
|
|
/* 0E76D8 7F0B4CE8 45020003 */ bc1fl .L7F0B4CF8
|
|
/* 0E76DC 7F0B4CEC 4602903C */ c.lt.s $f18, $f2
|
|
/* 0E76E0 7F0B4CF0 46001586 */ mov.s $f22, $f2
|
|
/* 0E76E4 7F0B4CF4 4602903C */ c.lt.s $f18, $f2
|
|
.L7F0B4CF8:
|
|
/* 0E76E8 7F0B4CF8 00000000 */ nop
|
|
/* 0E76EC 7F0B4CFC 45020003 */ bc1fl .L7F0B4D0C
|
|
/* 0E76F0 7F0B4D00 4610603C */ c.lt.s $f12, $f16
|
|
/* 0E76F4 7F0B4D04 46001486 */ mov.s $f18, $f2
|
|
/* 0E76F8 7F0B4D08 4610603C */ c.lt.s $f12, $f16
|
|
.L7F0B4D0C:
|
|
/* 0E76FC 7F0B4D0C 00000000 */ nop
|
|
/* 0E7700 7F0B4D10 45020003 */ bc1fl .L7F0B4D20
|
|
/* 0E7704 7F0B4D14 460C703C */ c.lt.s $f14, $f12
|
|
/* 0E7708 7F0B4D18 46006406 */ mov.s $f16, $f12
|
|
/* 0E770C 7F0B4D1C 460C703C */ c.lt.s $f14, $f12
|
|
.L7F0B4D20:
|
|
/* 0E7710 7F0B4D20 00000000 */ nop
|
|
/* 0E7714 7F0B4D24 45020003 */ bc1fl .L7F0B4D34
|
|
/* 0E7718 7F0B4D28 26520001 */ addiu $s2, $s2, 1
|
|
/* 0E771C 7F0B4D2C 46006386 */ mov.s $f14, $f12
|
|
.Leu7F0B4D30:
|
|
/* 0E7720 7F0B4D30 26520001 */ addiu $s2, $s2, 1
|
|
.L7F0B4D34:
|
|
/* 0E7724 7F0B4D34 26310001 */ addiu $s1, $s1, 1
|
|
.L7F0B4D38:
|
|
/* 0E7728 7F0B4D38 2610000C */ addiu $s0, $s0, 0xc
|
|
/* 0E772C 7F0B4D3C E7AE0074 */ swc1 $f14, 0x74($sp)
|
|
/* 0E7730 7F0B4D40 E7B0006C */ swc1 $f16, 0x6c($sp)
|
|
/* 0E7734 7F0B4D44 E7B20070 */ swc1 $f18, 0x70($sp)
|
|
/* 0E7738 7F0B4D48 1633FFCF */ bne $s1, $s3, .L7F0B4C88
|
|
/* 0E773C 7F0B4D4C E7B60068 */ swc1 $f22, 0x68($sp)
|
|
/* 0E7740 7F0B4D50 E7AE0074 */ swc1 $f14, 0x74($sp)
|
|
/* 0E7744 7F0B4D54 E7B0006C */ swc1 $f16, 0x6c($sp)
|
|
/* 0E7748 7F0B4D58 E7B20070 */ swc1 $f18, 0x70($sp)
|
|
/* 0E774C 7F0B4D5C E7B60068 */ swc1 $f22, 0x68($sp)
|
|
.L7F0B4D60:
|
|
/* 0E7750 7F0B4D60 C7AE0074 */ lwc1 $f14, 0x74($sp)
|
|
/* 0E7754 7F0B4D64 C7B0006C */ lwc1 $f16, 0x6c($sp)
|
|
/* 0E7758 7F0B4D68 C7B20070 */ lwc1 $f18, 0x70($sp)
|
|
/* 0E775C 7F0B4D6C 16400006 */ bnez $s2, .L7F0B4D88
|
|
/* 0E7760 7F0B4D70 C7B60068 */ lwc1 $f22, 0x68($sp)
|
|
/* 0E7764 7F0B4D74 E7B40074 */ swc1 $f20, 0x74($sp)
|
|
/* 0E7768 7F0B4D78 E7B4006C */ swc1 $f20, 0x6c($sp)
|
|
/* 0E776C 7F0B4D7C E7B40070 */ swc1 $f20, 0x70($sp)
|
|
/* 0E7770 7F0B4D80 10000015 */ b .Leu7F0B4DD8
|
|
/* 0E7774 7F0B4D84 E7B40068 */ swc1 $f20, 0x68($sp)
|
|
.L7F0B4D88:
|
|
/* 0E7778 7F0B4D88 4616903E */ c.le.s $f18, $f22
|
|
/* 0E777C 7F0B4D8C E7AE0074 */ swc1 $f14, 0x74($sp)
|
|
/* 0E7780 7F0B4D90 E7B0006C */ swc1 $f16, 0x6c($sp)
|
|
/* 0E7784 7F0B4D94 E7B20070 */ swc1 $f18, 0x70($sp)
|
|
/* 0E7788 7F0B4D98 45010005 */ bc1t .L7F0B4DB0
|
|
/* 0E778C 7F0B4D9C E7B60068 */ swc1 $f22, 0x68($sp)
|
|
/* 0E7790 7F0B4DA0 4610703E */ c.le.s $f14, $f16
|
|
/* 0E7794 7F0B4DA4 E7AE0074 */ swc1 $f14, 0x74($sp)
|
|
/* 0E7798 7F0B4DA8 E7B0006C */ swc1 $f16, 0x6c($sp)
|
|
/* 0E779C 7F0B4DAC 4500000A */ bc1f .Leu7F0B4DD8
|
|
.L7F0B4DB0:
|
|
/* 0E77A0 7F0B4DB0 3C028007 */ lui $v0, %hi(g_CurrentPlayer) # $v0, 0x8007
|
|
/* 0E77A4 7F0B4DB4 8C428BC0 */ lw $v0, %lo(g_CurrentPlayer)($v0)
|
|
/* 0E77A8 7F0B4DB8 C4481110 */ lwc1 $f8, 0x1110($v0)
|
|
/* 0E77AC 7F0B4DBC E7A80068 */ swc1 $f8, 0x68($sp)
|
|
/* 0E77B0 7F0B4DC0 C44A1114 */ lwc1 $f10, 0x1114($v0)
|
|
/* 0E77B4 7F0B4DC4 E7AA006C */ swc1 $f10, 0x6c($sp)
|
|
/* 0E77B8 7F0B4DC8 C4441118 */ lwc1 $f4, 0x1118($v0)
|
|
/* 0E77BC 7F0B4DCC E7A40070 */ swc1 $f4, 0x70($sp)
|
|
/* 0E77C0 7F0B4DD0 C446111C */ lwc1 $f6, 0x111c($v0)
|
|
/* 0E77C4 7F0B4DD4 E7A60074 */ swc1 $f6, 0x74($sp)
|
|
.Leu7F0B4DD8:
|
|
/* 0E77C8 7F0B4DD8 C7A80068 */ lwc1 $f8, 0x68($sp)
|
|
/* 0E77CC 7F0B4DDC 02401025 */ move $v0, $s2
|
|
/* 0E77D0 7F0B4DE0 E6C80000 */ swc1 $f8, ($s6)
|
|
/* 0E77D4 7F0B4DE4 C7AA006C */ lwc1 $f10, 0x6c($sp)
|
|
/* 0E77D8 7F0B4DE8 C6C80000 */ lwc1 $f8, ($s6)
|
|
/* 0E77DC 7F0B4DEC E6CA0004 */ swc1 $f10, 4($s6)
|
|
/* 0E77E0 7F0B4DF0 C7A40070 */ lwc1 $f4, 0x70($sp)
|
|
/* 0E77E4 7F0B4DF4 E6C40008 */ swc1 $f4, 8($s6)
|
|
/* 0E77E8 7F0B4DF8 C7A60074 */ lwc1 $f6, 0x74($sp)
|
|
/* 0E77EC 7F0B4DFC E6C6000C */ swc1 $f6, 0xc($s6)
|
|
/* 0E77F0 7F0B4E00 E6A80004 */ swc1 $f8, 4($s5)
|
|
/* 0E77F4 7F0B4E04 C6CA0004 */ lwc1 $f10, 4($s6)
|
|
/* 0E77F8 7F0B4E08 E6AA0008 */ swc1 $f10, 8($s5)
|
|
/* 0E77FC 7F0B4E0C C6C40008 */ lwc1 $f4, 8($s6)
|
|
/* 0E7800 7F0B4E10 E6A4000C */ swc1 $f4, 0xc($s5)
|
|
/* 0E7804 7F0B4E14 C6C6000C */ lwc1 $f6, 0xc($s6)
|
|
/* 0E7808 7F0B4E18 AEB20000 */ sw $s2, ($s5)
|
|
/* 0E780C 7F0B4E1C E6A60010 */ swc1 $f6, 0x10($s5)
|
|
.L7F0B4E20:
|
|
/* 0E7810 7F0B4E20 8FBF0044 */ lw $ra, 0x44($sp)
|
|
/* 0E7814 7F0B4E24 D7B40018 */ ldc1 $f20, 0x18($sp)
|
|
/* 0E7818 7F0B4E28 D7B60020 */ ldc1 $f22, 0x20($sp)
|
|
/* 0E781C 7F0B4E2C 8FB00028 */ lw $s0, 0x28($sp)
|
|
/* 0E7820 7F0B4E30 8FB1002C */ lw $s1, 0x2c($sp)
|
|
/* 0E7824 7F0B4E34 8FB20030 */ lw $s2, 0x30($sp)
|
|
/* 0E7828 7F0B4E38 8FB30034 */ lw $s3, 0x34($sp)
|
|
/* 0E782C 7F0B4E3C 8FB40038 */ lw $s4, 0x38($sp)
|
|
/* 0E7830 7F0B4E40 8FB5003C */ lw $s5, 0x3c($sp)
|
|
/* 0E7834 7F0B4E44 8FB60040 */ lw $s6, 0x40($sp)
|
|
/* 0E7838 7F0B4E48 03E00008 */ jr $ra
|
|
/* 0E783C 7F0B4E4C 27BD0170 */ addiu $sp, $sp, 0x170
|
|
)
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Unreferenced.
|
|
*
|
|
* Address 0x7F0B5B14.
|
|
*/
|
|
Gfx *bgFillRectangle(Gfx *gdl, s32 ulx, s32 uly, s32 lrx, s32 lry)
|
|
{
|
|
gDPFillRectangle(gdl++, ulx, uly, lrx + 1, lry + 1);
|
|
return gdl;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Unreferenced.
|
|
*/
|
|
void bgFillRectangleWithSides(Gfx *gdl, s32 ulx, s32 uly, s32 lrx, s32 lry)
|
|
{
|
|
bgFillRectangle(
|
|
bgFillRectangle(
|
|
bgFillRectangle(
|
|
bgFillRectangle(gdl,
|
|
ulx, uly, lrx, uly), /* full rectangle */
|
|
lrx, uly, lrx, lry), /* right side */
|
|
ulx, lry, lrx, lry), /* bottom */
|
|
ulx, uly, ulx, lry); /* top */
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* Determines if two rectangles overlap, adjusting first argument to be the intersection.
|
|
*
|
|
* Returns 0 if no intersection (or edge equality), 1 otherwise.
|
|
*
|
|
* Address 0x7F0B5BDC.
|
|
*/
|
|
s32 bgRectIntersect(struct bbox2d *a, struct bbox2d *b)
|
|
{
|
|
a->min.x = a->min.x > b->min.x ? a->min.x : b->min.x;
|
|
a->min.y = a->min.y > b->min.y ? a->min.y : b->min.y;
|
|
a->max.x = b->max.x > a->max.x ? a->max.x : b->max.x;
|
|
a->max.y = b->max.y > a->max.y ? a->max.y : b->max.y;
|
|
|
|
if (a->min.x >= a->max.x) {
|
|
a->min.x = a->max.x;
|
|
return FALSE;
|
|
}
|
|
|
|
if (a->max.y <= a->min.y) {
|
|
a->min.y = a->max.y;
|
|
return FALSE;
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void sub_GAME_7F0B5CC0(struct bbox2d *a, struct bbox2d *b)
|
|
{
|
|
(a->min).x = ((a->min).x < (b->min).x) ? (a->min).x : (b->min).x;
|
|
(a->min).y = ((a->min).y < (b->min).y) ? (a->min).y : (b->min).y;
|
|
(a->max).x = ((a->max).x > (b->max).x) ? (a->max).x : (b->max).x;
|
|
(a->max).y = ((a->max).y > (b->max).y) ? (a->max).y : (b->max).y;
|
|
}
|
|
|
|
void bbox2dCopy(struct bbox2d *a, struct bbox2d *b)
|
|
{
|
|
(a->min).x = (b->min).x;
|
|
(a->min).y = (b->min).y;
|
|
(a->max).x = (b->max).x;
|
|
(a->max).y = (b->max).y;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
char *bgDebPrintPORTALID(s32 portID)
|
|
{
|
|
s32 temp_hi = (bgDebPortalOutLineNum + 1) % 0xA;
|
|
|
|
bgDebPortalOutLineNum = temp_hi;
|
|
sprintf(&bgDebPortalOutBuffer[temp_hi], "PORT%d", portID);
|
|
return &bgDebPortalOutBuffer[temp_hi];
|
|
}
|
|
#else
|
|
GLOBAL_ASM(
|
|
.rdata
|
|
/*D:80058C48*/
|
|
glabel aPortD
|
|
/*"PORT%d"*/
|
|
.word 0x504F5254, 0x25640000
|
|
|
|
|
|
|
|
.text
|
|
glabel bgDebPrintPORTALID
|
|
/* 0EA8AC 7F0B5D7C 3C028004 */ lui $v0, %hi(bgDebPortalOutLineNum)
|
|
/* 0EA8B0 7F0B5D80 8C424860 */ lw $v0, %lo(bgDebPortalOutLineNum)($v0)
|
|
/* 0EA8B4 7F0B5D84 2401000A */ li $at, 10
|
|
/* 0EA8B8 7F0B5D88 3C188008 */ lui $t8, %hi(bgDebPortalOutBuffer)
|
|
/* 0EA8BC 7F0B5D8C 24420001 */ addiu $v0, $v0, 1
|
|
/* 0EA8C0 7F0B5D90 0041001A */ div $zero, $v0, $at
|
|
/* 0EA8C4 7F0B5D94 00007010 */ mfhi $t6
|
|
/* 0EA8C8 7F0B5D98 000E78C0 */ sll $t7, $t6, 3
|
|
/* 0EA8CC 7F0B5D9C 27BDFFE0 */ addiu $sp, $sp, -0x20
|
|
/* 0EA8D0 7F0B5DA0 00803025 */ move $a2, $a0
|
|
/* 0EA8D4 7F0B5DA4 01EE7821 */ addu $t7, $t7, $t6
|
|
/* 0EA8D8 7F0B5DA8 2718C040 */ addiu $t8, %lo(bgDebPortalOutBuffer) # addiu $t8, $t8, -0x3fc0
|
|
/* 0EA8DC 7F0B5DAC AFBF0014 */ sw $ra, 0x14($sp)
|
|
/* 0EA8E0 7F0B5DB0 01F82021 */ addu $a0, $t7, $t8
|
|
/* 0EA8E4 7F0B5DB4 3C018004 */ lui $at, %hi(bgDebPortalOutLineNum)
|
|
/* 0EA8E8 7F0B5DB8 3C058006 */ lui $a1, %hi(aPortD)
|
|
/* 0EA8EC 7F0B5DBC AFA4001C */ sw $a0, 0x1c($sp)
|
|
/* 0EA8F0 7F0B5DC0 24A58C48 */ addiu $a1, %lo(aPortD) # addiu $a1, $a1, -0x73b8
|
|
/* 0EA8F4 7F0B5DC4 0C002B25 */ jal sprintf
|
|
/* 0EA8F8 7F0B5DC8 AC2E4860 */ sw $t6, %lo(bgDebPortalOutLineNum)($at)
|
|
/* 0EA8FC 7F0B5DCC 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* 0EA900 7F0B5DD0 8FA2001C */ lw $v0, 0x1c($sp)
|
|
/* 0EA904 7F0B5DD4 27BD0020 */ addiu $sp, $sp, 0x20
|
|
/* 0EA908 7F0B5DD8 03E00008 */ jr $ra
|
|
/* 0EA90C 7F0B5DDC 00000000 */ nop
|
|
)
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
char *bgDebPrintROOMID(s32 roomID)
|
|
{
|
|
s32 temp_hi = (bgDebRoomOutLineNum + 1) % 0xA;
|
|
|
|
bgDebRoomOutLineNum = temp_hi;
|
|
sprintf(&bgDebRoomOutBuffer[temp_hi], "ROOM%d", roomID);
|
|
return &bgDebRoomOutBuffer[temp_hi];
|
|
}
|
|
#else
|
|
GLOBAL_ASM(
|
|
.rdata
|
|
/*D:80058C50*/
|
|
glabel aRoomD
|
|
/*"ROOM%d"*/
|
|
.word 0x524F4F4D, 0x25640000
|
|
|
|
.text
|
|
glabel bgDebPrintROOMID
|
|
/* 0EA910 7F0B5DE0 3C028004 */ lui $v0, %hi(bgDebRoomOutLineNum)
|
|
/* 0EA914 7F0B5DE4 8C424864 */ lw $v0, %lo(bgDebRoomOutLineNum)($v0)
|
|
/* 0EA918 7F0B5DE8 2401000A */ li $at, 10
|
|
/* 0EA91C 7F0B5DEC 3C188008 */ lui $t8, %hi(bgDebRoomOutBuffer)
|
|
/* 0EA920 7F0B5DF0 24420001 */ addiu $v0, $v0, 1
|
|
/* 0EA924 7F0B5DF4 0041001A */ div $zero, $v0, $at
|
|
/* 0EA928 7F0B5DF8 00007010 */ mfhi $t6
|
|
/* 0EA92C 7F0B5DFC 000E78C0 */ sll $t7, $t6, 3
|
|
/* 0EA930 7F0B5E00 27BDFFE0 */ addiu $sp, $sp, -0x20
|
|
/* 0EA934 7F0B5E04 00803025 */ move $a2, $a0
|
|
/* 0EA938 7F0B5E08 01EE7821 */ addu $t7, $t7, $t6
|
|
/* 0EA93C 7F0B5E0C 2718C0A0 */ addiu $t8, %lo(bgDebRoomOutBuffer) # addiu $t8, $t8, -0x3f60
|
|
/* 0EA940 7F0B5E10 AFBF0014 */ sw $ra, 0x14($sp)
|
|
/* 0EA944 7F0B5E14 01F82021 */ addu $a0, $t7, $t8
|
|
/* 0EA948 7F0B5E18 3C018004 */ lui $at, %hi(bgDebRoomOutLineNum)
|
|
/* 0EA94C 7F0B5E1C 3C058006 */ lui $a1, %hi(aRoomD)
|
|
/* 0EA950 7F0B5E20 AFA4001C */ sw $a0, 0x1c($sp)
|
|
/* 0EA954 7F0B5E24 24A58C50 */ addiu $a1, %lo(aRoomD) # addiu $a1, $a1, -0x73b0
|
|
/* 0EA958 7F0B5E28 0C002B25 */ jal sprintf
|
|
/* 0EA95C 7F0B5E2C AC2E4864 */ sw $t6, %lo(bgDebRoomOutLineNum)($at)
|
|
/* 0EA960 7F0B5E30 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* 0EA964 7F0B5E34 8FA2001C */ lw $v0, 0x1c($sp)
|
|
/* 0EA968 7F0B5E38 27BD0020 */ addiu $sp, $sp, 0x20
|
|
/* 0EA96C 7F0B5E3C 03E00008 */ jr $ra
|
|
/* 0EA970 7F0B5E40 00000000 */ nop
|
|
)
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
s32 getMaxNumRooms(void) {
|
|
return MaxNumRooms;
|
|
}
|
|
|
|
/*
|
|
* Return butflags0 (confirmed u8)
|
|
*/
|
|
u8 getROOMID_Bitflags(s32 roomID)
|
|
{
|
|
return array_room_info[roomID].bitflags0;
|
|
}
|
|
|
|
/*
|
|
* Return butflags1 (confirmed u8)
|
|
*/
|
|
u8 getROOMID_Bitflags1(s32 roomID)
|
|
{
|
|
return array_room_info[roomID].bitflags1;
|
|
}
|
|
|
|
|
|
s32 getIndexOfPORTALID(s32 portalID)
|
|
{
|
|
s32 i;
|
|
|
|
for(i = 0; g_BgPortals[i].offset_portal != NULL; i++)
|
|
{
|
|
if (portalID == (s32)g_BgPortals[i].offset_portal)
|
|
{
|
|
return i;
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
|
|
void roomsHandleStateDebugging(void) {
|
|
? sp29;
|
|
? temp_ret;
|
|
void *phi_v1;
|
|
s32 phi_a0;
|
|
void *phi_v0;
|
|
s32 phi_a0_2;
|
|
s32 phi_a0_3;
|
|
|
|
// Node 0
|
|
temp_ret = debugIsRoomStateDebugEnabled();
|
|
if (temp_ret != 0)
|
|
{
|
|
// Node 1
|
|
phi_a0_3 = 1;
|
|
if (MaxNumRooms >= 2)
|
|
{
|
|
// Node 2
|
|
phi_v1 = &array_room_info + 0x10 +0x40;
|
|
phi_a0 = 1;
|
|
phi_v0 = &sp29;
|
|
loop_3:
|
|
// Node 3
|
|
if (phi_v1->unk2 != 0)
|
|
{
|
|
// Node 4
|
|
*phi_v0 = (s8) (((s32) phi_a0 % 0xa) + 0x30);
|
|
phi_a0_2 = (phi_a0 + 1);
|
|
}
|
|
else
|
|
{
|
|
// Node 5
|
|
*phi_v0 = (u8)0x2e;
|
|
phi_a0_2 = (phi_a0 + 1);
|
|
}
|
|
// Node 6
|
|
phi_v1 = (phi_v1 + 0x50);
|
|
phi_a0 = phi_a0_2;
|
|
phi_v0 = (phi_v0 + 1);
|
|
phi_a0_3 = phi_a0_2;
|
|
if (phi_a0_2 < MaxNumRooms)
|
|
{
|
|
goto loop_3;
|
|
}
|
|
}
|
|
// Node 7
|
|
(sp + phi_a0_3)->unk28 = (u8)0;
|
|
}
|
|
// Node 8
|
|
return temp_ret;
|
|
}
|
|
#else
|
|
|
|
#if defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel roomsHandleStateDebugging
|
|
/* 0EAA08 7F0B5ED8 27BDFF40 */ addiu $sp, $sp, -0xc0
|
|
/* 0EAA0C 7F0B5EDC AFBF0014 */ sw $ra, 0x14($sp)
|
|
/* 0EAA10 7F0B5EE0 0FC243F4 */ jal debugIsRoomStateDebugEnabled
|
|
/* 0EAA14 7F0B5EE4 00000000 */ nop
|
|
/* 0EAA18 7F0B5EE8 10400024 */ beqz $v0, .L7F0B5F7C
|
|
/* 0EAA1C 7F0B5EEC 3C078004 */ lui $a3, %hi(MaxNumRooms)
|
|
/* 0EAA20 7F0B5EF0 8CE742F4 */ lw $a3, %lo(MaxNumRooms)($a3)
|
|
/* 0EAA24 7F0B5EF4 3C038004 */ lui $v1, %hi(array_room_info + 0x10 +0x40)
|
|
/* 0EAA28 7F0B5EF8 24631464 */ addiu $v1, %lo(array_room_info + 0x10 +0x40) # addiu $v1, $v1, 0x1464
|
|
/* 0EAA2C 7F0B5EFC 28E10002 */ slti $at, $a3, 2
|
|
/* 0EAA30 7F0B5F00 1420001C */ bnez $at, .L7F0B5F74
|
|
/* 0EAA34 7F0B5F04 24040001 */ li $a0, 1
|
|
/* 0EAA38 7F0B5F08 27A20029 */ addiu $v0, $sp, 0x29
|
|
/* 0EAA3C 7F0B5F0C 2406002E */ li $a2, 46
|
|
/* 0EAA40 7F0B5F10 2405000A */ li $a1, 10
|
|
.L7F0B5F14:
|
|
/* 0EAA44 7F0B5F14 906E0002 */ lbu $t6, 2($v1)
|
|
/* 0EAA48 7F0B5F18 24630050 */ addiu $v1, $v1, 0x50
|
|
/* 0EAA4C 7F0B5F1C 51C00011 */ beql $t6, $zero, .L7F0B5F64
|
|
/* 0EAA50 7F0B5F20 A0460000 */ sb $a2, ($v0)
|
|
/* 0EAA54 7F0B5F24 0085001A */ div $zero, $a0, $a1
|
|
/* 0EAA58 7F0B5F28 00007810 */ mfhi $t7
|
|
/* 0EAA5C 7F0B5F2C 25F80030 */ addiu $t8, $t7, 0x30
|
|
/* 0EAA60 7F0B5F30 14A00002 */ bnez $a1, .L7F0B5F3C
|
|
/* 0EAA64 7F0B5F34 00000000 */ nop
|
|
/* 0EAA68 7F0B5F38 0007000D */ break 7
|
|
.L7F0B5F3C:
|
|
/* 0EAA6C 7F0B5F3C 2401FFFF */ li $at, -1
|
|
/* 0EAA70 7F0B5F40 14A10004 */ bne $a1, $at, .L7F0B5F54
|
|
/* 0EAA74 7F0B5F44 3C018000 */ lui $at, 0x8000
|
|
/* 0EAA78 7F0B5F48 14810002 */ bne $a0, $at, .L7F0B5F54
|
|
/* 0EAA7C 7F0B5F4C 00000000 */ nop
|
|
/* 0EAA80 7F0B5F50 0006000D */ break 6
|
|
.L7F0B5F54:
|
|
/* 0EAA84 7F0B5F54 A0580000 */ sb $t8, ($v0)
|
|
/* 0EAA88 7F0B5F58 10000003 */ b .L7F0B5F68
|
|
/* 0EAA8C 7F0B5F5C 24840001 */ addiu $a0, $a0, 1
|
|
/* 0EAA90 7F0B5F60 A0460000 */ sb $a2, ($v0)
|
|
.L7F0B5F64:
|
|
/* 0EAA94 7F0B5F64 24840001 */ addiu $a0, $a0, 1
|
|
.L7F0B5F68:
|
|
/* 0EAA98 7F0B5F68 0087082A */ slt $at, $a0, $a3
|
|
/* 0EAA9C 7F0B5F6C 1420FFE9 */ bnez $at, .L7F0B5F14
|
|
/* 0EAAA0 7F0B5F70 24420001 */ addiu $v0, $v0, 1
|
|
.L7F0B5F74:
|
|
/* 0EAAA4 7F0B5F74 03A4C821 */ addu $t9, $sp, $a0
|
|
/* 0EAAA8 7F0B5F78 A3200028 */ sb $zero, 0x28($t9)
|
|
.L7F0B5F7C:
|
|
/* 0EAAAC 7F0B5F7C 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* 0EAAB0 7F0B5F80 27BD00C0 */ addiu $sp, $sp, 0xc0
|
|
/* 0EAAB4 7F0B5F84 03E00008 */ jr $ra
|
|
/* 0EAAB8 7F0B5F88 00000000 */ nop
|
|
)
|
|
#endif
|
|
|
|
#if !defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel roomsHandleStateDebugging
|
|
/* 0E7C04 7F0B5214 27BDFF48 */ addiu $sp, $sp, -0xb8
|
|
/* 0E7C08 7F0B5218 AFBF0014 */ sw $ra, 0x14($sp)
|
|
/* 0E7C0C 7F0B521C 0FC2411A */ jal debugIsRoomStateDebugEnabled
|
|
/* 0E7C10 7F0B5220 00000000 */ nop
|
|
/* 0E7C14 7F0B5224 10400024 */ beqz $v0, .L7F0B52B8
|
|
/* 0E7C18 7F0B5228 3C078004 */ lui $a3, %hi(MaxNumRooms) # $a3, 0x8004
|
|
/* 0E7C1C 7F0B522C 8CE7D7D4 */ lw $a3, %lo(MaxNumRooms)($a3)
|
|
/* 0E7C20 7F0B5230 3C038004 */ lui $v1, %hi(array_room_info + 0x10 +0x40) # $v1, 0x8004
|
|
/* 0E7C24 7F0B5234 2463ACB4 */ addiu $v1, %lo(array_room_info + 0x10 +0x40) # addiu $v1, $v1, -0x534c
|
|
/* 0E7C28 7F0B5238 28E10002 */ slti $at, $a3, 2
|
|
/* 0E7C2C 7F0B523C 1420001C */ bnez $at, .L7F0B52B0
|
|
/* 0E7C30 7F0B5240 24040001 */ li $a0, 1
|
|
/* 0E7C34 7F0B5244 27A2002D */ addiu $v0, $sp, 0x2d
|
|
/* 0E7C38 7F0B5248 2406002E */ li $a2, 46
|
|
/* 0E7C3C 7F0B524C 2405000A */ li $a1, 10
|
|
.L7F0B5250:
|
|
/* 0E7C40 7F0B5250 906E0002 */ lbu $t6, 2($v1)
|
|
/* 0E7C44 7F0B5254 24630050 */ addiu $v1, $v1, 0x50
|
|
/* 0E7C48 7F0B5258 51C00011 */ beql $t6, $zero, .Leu7F0B52A0
|
|
/* 0E7C4C 7F0B525C A0460000 */ sb $a2, ($v0)
|
|
/* 0E7C50 7F0B5260 0085001A */ div $zero, $a0, $a1
|
|
/* 0E7C54 7F0B5264 00007810 */ mfhi $t7
|
|
/* 0E7C58 7F0B5268 25F80030 */ addiu $t8, $t7, 0x30
|
|
/* 0E7C5C 7F0B526C 14A00002 */ bnez $a1, .L7F0B5278
|
|
/* 0E7C60 7F0B5270 00000000 */ nop
|
|
/* 0E7C64 7F0B5274 0007000D */ break 7
|
|
.L7F0B5278:
|
|
/* 0E7C68 7F0B5278 2401FFFF */ li $at, -1
|
|
/* 0E7C6C 7F0B527C 14A10004 */ bne $a1, $at, .L7F0B5290
|
|
/* 0E7C70 7F0B5280 3C018000 */ lui $at, 0x8000
|
|
/* 0E7C74 7F0B5284 14810002 */ bne $a0, $at, .L7F0B5290
|
|
/* 0E7C78 7F0B5288 00000000 */ nop
|
|
/* 0E7C7C 7F0B528C 0006000D */ break 6
|
|
.L7F0B5290:
|
|
/* 0E7C80 7F0B5290 A0580000 */ sb $t8, ($v0)
|
|
/* 0E7C84 7F0B5294 10000003 */ b .L7F0B52A4
|
|
/* 0E7C88 7F0B5298 24840001 */ addiu $a0, $a0, 1
|
|
/* 0E7C8C 7F0B529C A0460000 */ sb $a2, ($v0)
|
|
.Leu7F0B52A0:
|
|
/* 0E7C90 7F0B52A0 24840001 */ addiu $a0, $a0, 1
|
|
.L7F0B52A4:
|
|
/* 0E7C94 7F0B52A4 0087082A */ slt $at, $a0, $a3
|
|
/* 0E7C98 7F0B52A8 1420FFE9 */ bnez $at, .L7F0B5250
|
|
/* 0E7C9C 7F0B52AC 24420001 */ addiu $v0, $v0, 1
|
|
.L7F0B52B0:
|
|
/* 0E7CA0 7F0B52B0 03A4C821 */ addu $t9, $sp, $a0
|
|
/* 0E7CA4 7F0B52B4 A320002C */ sb $zero, 0x2c($t9)
|
|
.L7F0B52B8:
|
|
/* 0E7CA8 7F0B52B8 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* 0E7CAC 7F0B52BC 27BD00B8 */ addiu $sp, $sp, 0xb8
|
|
/* 0E7CB0 7F0B52C0 03E00008 */ jr $ra
|
|
/* 0E7CB4 7F0B52C4 00000000 */ nop
|
|
)
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
|
|
u32 bgDecompress(u8* source, u8 *target)
|
|
{
|
|
u8 buffer[0x2100];
|
|
return decompressdata(source, target, buffer);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
void* sub_GAME_7F0B5FAC(int roomID, int* data, int size)
|
|
{
|
|
void *source;
|
|
void* dest;
|
|
|
|
s32 len;
|
|
|
|
|
|
|
|
len = array_room_info[roomID].csize_point_index_binary + 0xfU & 0xfffffff0;
|
|
if (size < len + 0x20) {
|
|
dest = -1;
|
|
}
|
|
else {
|
|
source = (size - len) + data;
|
|
obLoadBGFileBytesAtOffset(levelinfotable[levelentry_index].bg_seg_filename, source,
|
|
(ptr_bg_data+ &ptr_bgdata_room_fileposition_list[roomID] - ptr_bg_data) + 0xF1000000, len);
|
|
dest = bgDecompress(source,data);
|
|
array_room_info[roomID].usize_point_index_binary = dest;
|
|
array_room_info[roomID].ptr_point_index = data;
|
|
}
|
|
return dest;
|
|
}
|
|
#else
|
|
|
|
#if defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B5FAC
|
|
/* 0EAADC 7F0B5FAC 00047880 */ sll $t7, $a0, 2
|
|
/* 0EAAE0 7F0B5FB0 01E47821 */ addu $t7, $t7, $a0
|
|
/* 0EAAE4 7F0B5FB4 3C188004 */ lui $t8, %hi(array_room_info)
|
|
/* 0EAAE8 7F0B5FB8 27181414 */ addiu $t8, %lo(array_room_info) # addiu $t8, $t8, 0x1414
|
|
/* 0EAAEC 7F0B5FBC 000F7900 */ sll $t7, $t7, 4
|
|
/* 0EAAF0 7F0B5FC0 01F81821 */ addu $v1, $t7, $t8
|
|
/* 0EAAF4 7F0B5FC4 8C670010 */ lw $a3, 0x10($v1)
|
|
/* 0EAAF8 7F0B5FC8 2401FFF0 */ li $at, -16
|
|
/* 0EAAFC 7F0B5FCC 27BDFFD0 */ addiu $sp, $sp, -0x30
|
|
/* 0EAB00 7F0B5FD0 24E7000F */ addiu $a3, $a3, 0xf
|
|
/* 0EAB04 7F0B5FD4 00E1C824 */ and $t9, $a3, $at
|
|
/* 0EAB08 7F0B5FD8 272A0020 */ addiu $t2, $t9, 0x20
|
|
/* 0EAB0C 7F0B5FDC 00CA082A */ slt $at, $a2, $t2
|
|
/* 0EAB10 7F0B5FE0 AFBF0014 */ sw $ra, 0x14($sp)
|
|
/* 0EAB14 7F0B5FE4 AFA40030 */ sw $a0, 0x30($sp)
|
|
/* 0EAB18 7F0B5FE8 AFA50034 */ sw $a1, 0x34($sp)
|
|
/* 0EAB1C 7F0B5FEC AFA60038 */ sw $a2, 0x38($sp)
|
|
/* 0EAB20 7F0B5FF0 10200003 */ beqz $at, .L7F0B6000
|
|
/* 0EAB24 7F0B5FF4 03203825 */ move $a3, $t9
|
|
/* 0EAB28 7F0B5FF8 10000024 */ b .L7F0B608C
|
|
/* 0EAB2C 7F0B5FFC 2402FFFF */ li $v0, -1
|
|
.L7F0B6000:
|
|
/* 0EAB30 7F0B6000 8FAC0030 */ lw $t4, 0x30($sp)
|
|
/* 0EAB34 7F0B6004 24080018 */ li $t0, 24
|
|
/* 0EAB38 7F0B6008 3C198004 */ lui $t9, %hi(levelentry_index)
|
|
/* 0EAB3C 7F0B600C 01880019 */ multu $t4, $t0
|
|
/* 0EAB40 7F0B6010 8F391400 */ lw $t9, %lo(levelentry_index)($t9)
|
|
/* 0EAB44 7F0B6014 3C0B8008 */ lui $t3, %hi(ptr_bgdata_room_fileposition_list)
|
|
/* 0EAB48 7F0B6018 8D6BFF8C */ lw $t3, %lo(ptr_bgdata_room_fileposition_list)($t3)
|
|
/* 0EAB4C 7F0B601C 3C028008 */ lui $v0, %hi(ptr_bg_data)
|
|
/* 0EAB50 7F0B6020 8C42BF90 */ lw $v0, %lo(ptr_bg_data)($v0)
|
|
/* 0EAB54 7F0B6024 8FAA0038 */ lw $t2, 0x38($sp)
|
|
/* 0EAB58 7F0B6028 3C048004 */ lui $a0, %hi(levelinfotable)
|
|
/* 0EAB5C 7F0B602C 3C01F100 */ lui $at, 0xf100
|
|
/* 0EAB60 7F0B6030 01476023 */ subu $t4, $t2, $a3
|
|
/* 0EAB64 7F0B6034 00006812 */ mflo $t5
|
|
/* 0EAB68 7F0B6038 016D7021 */ addu $t6, $t3, $t5
|
|
/* 0EAB6C 7F0B603C 8DCF0000 */ lw $t7, ($t6)
|
|
/* 0EAB70 7F0B6040 03280019 */ multu $t9, $t0
|
|
/* 0EAB74 7F0B6044 8FAB0034 */ lw $t3, 0x34($sp)
|
|
/* 0EAB78 7F0B6048 01E2C021 */ addu $t8, $t7, $v0
|
|
/* 0EAB7C 7F0B604C 03023023 */ subu $a2, $t8, $v0
|
|
/* 0EAB80 7F0B6050 018B2821 */ addu $a1, $t4, $t3
|
|
/* 0EAB84 7F0B6054 00C13021 */ addu $a2, $a2, $at
|
|
/* 0EAB88 7F0B6058 AFA50018 */ sw $a1, 0x18($sp)
|
|
/* 0EAB8C 7F0B605C AFA3001C */ sw $v1, 0x1c($sp)
|
|
/* 0EAB90 7F0B6060 00004812 */ mflo $t1
|
|
/* 0EAB94 7F0B6064 00892021 */ addu $a0, $a0, $t1
|
|
/* 0EAB98 7F0B6068 0FC2F35F */ jal obLoadBGFileBytesAtOffset
|
|
/* 0EAB9C 7F0B606C 8C844490 */ lw $a0, %lo(levelinfotable+4)($a0)
|
|
/* 0EABA0 7F0B6070 8FA40018 */ lw $a0, 0x18($sp)
|
|
/* 0EABA4 7F0B6074 0FC2D7E3 */ jal bgDecompress
|
|
/* 0EABA8 7F0B6078 8FA50034 */ lw $a1, 0x34($sp)
|
|
/* 0EABAC 7F0B607C 8FA3001C */ lw $v1, 0x1c($sp)
|
|
/* 0EABB0 7F0B6080 8FAD0034 */ lw $t5, 0x34($sp)
|
|
/* 0EABB4 7F0B6084 AC62001C */ sw $v0, 0x1c($v1)
|
|
/* 0EABB8 7F0B6088 AC6D0004 */ sw $t5, 4($v1)
|
|
.L7F0B608C:
|
|
/* 0EABBC 7F0B608C 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* 0EABC0 7F0B6090 27BD0030 */ addiu $sp, $sp, 0x30
|
|
/* 0EABC4 7F0B6094 03E00008 */ jr $ra
|
|
/* 0EABC8 7F0B6098 00000000 */ nop
|
|
)
|
|
#endif
|
|
|
|
#if !defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B5FAC
|
|
/* 0EAADC 7F0B5FAC 00047880 */ sll $t7, $a0, 2
|
|
/* 0EAAE0 7F0B5FB0 01E47821 */ addu $t7, $t7, $a0
|
|
/* 0EAAE4 7F0B5FB4 3C188004 */ lui $t8, %hi(array_room_info)
|
|
/* 0EAAE8 7F0B5FB8 27181414 */ addiu $t8, %lo(array_room_info) # addiu $t8, $t8, 0x1414
|
|
/* 0EAAEC 7F0B5FBC 000F7900 */ sll $t7, $t7, 4
|
|
/* 0EAAF0 7F0B5FC0 01F81821 */ addu $v1, $t7, $t8
|
|
/* 0EAAF4 7F0B5FC4 8C670010 */ lw $a3, 0x10($v1)
|
|
/* 0EAAF8 7F0B5FC8 2401FFF0 */ li $at, -16
|
|
/* 0EAAFC 7F0B5FCC 27BDFFD0 */ addiu $sp, $sp, -0x30
|
|
/* 0EAB00 7F0B5FD0 24E7000F */ addiu $a3, $a3, 0xf
|
|
/* 0EAB04 7F0B5FD4 00E1C824 */ and $t9, $a3, $at
|
|
/* 0EAB08 7F0B5FD8 272A0020 */ addiu $t2, $t9, 0x20
|
|
/* 0EAB0C 7F0B5FDC 00CA082A */ slt $at, $a2, $t2
|
|
/* 0EAB10 7F0B5FE0 AFBF0014 */ sw $ra, 0x14($sp)
|
|
/* 0EAB14 7F0B5FE4 AFA40030 */ sw $a0, 0x30($sp)
|
|
/* 0EAB18 7F0B5FE8 AFA50034 */ sw $a1, 0x34($sp)
|
|
/* 0EAB1C 7F0B5FEC AFA60038 */ sw $a2, 0x38($sp)
|
|
/* 0EAB20 7F0B5FF0 10200003 */ beqz $at, .L7F0B6000
|
|
/* 0EAB24 7F0B5FF4 03203825 */ move $a3, $t9
|
|
/* 0EAB28 7F0B5FF8 10000024 */ b .L7F0B608C
|
|
/* 0EAB2C 7F0B5FFC 2402FFFF */ li $v0, -1
|
|
.L7F0B6000:
|
|
/* 0EAB30 7F0B6000 8FAC0030 */ lw $t4, 0x30($sp)
|
|
/* 0EAB34 7F0B6004 24080018 */ li $t0, 24
|
|
/* 0EAB38 7F0B6008 3C198004 */ lui $t9, %hi(levelentry_index)
|
|
/* 0EAB3C 7F0B600C 01880019 */ multu $t4, $t0
|
|
/* 0EAB40 7F0B6010 8F391400 */ lw $t9, %lo(levelentry_index)($t9)
|
|
/* 0EAB44 7F0B6014 3C0B8008 */ lui $t3, %hi(ptr_bgdata_room_fileposition_list)
|
|
/* 0EAB48 7F0B6018 8D6BFF8C */ lw $t3, %lo(ptr_bgdata_room_fileposition_list)($t3)
|
|
/* 0EAB4C 7F0B601C 3C028008 */ lui $v0, %hi(ptr_bg_data)
|
|
/* 0EAB50 7F0B6020 8C42BF90 */ lw $v0, %lo(ptr_bg_data)($v0)
|
|
/* 0EAB54 7F0B6024 8FAA0038 */ lw $t2, 0x38($sp)
|
|
/* 0EAB58 7F0B6028 3C048004 */ lui $a0, %hi(levelinfotable)
|
|
/* 0EAB5C 7F0B602C 3C01F100 */ lui $at, 0xf100
|
|
/* 0EAB60 7F0B6030 01476023 */ subu $t4, $t2, $a3
|
|
/* 0EAB64 7F0B6034 00006812 */ mflo $t5
|
|
/* 0EAB68 7F0B6038 016D7021 */ addu $t6, $t3, $t5
|
|
/* 0EAB6C 7F0B603C 8DCF0000 */ lw $t7, ($t6)
|
|
/* 0EAB70 7F0B6040 03280019 */ multu $t9, $t0
|
|
/* 0EAB74 7F0B6044 8FAB0034 */ lw $t3, 0x34($sp)
|
|
/* 0EAB78 7F0B6048 01E2C021 */ addu $t8, $t7, $v0
|
|
/* 0EAB7C 7F0B604C 03023023 */ subu $a2, $t8, $v0
|
|
/* 0EAB80 7F0B6050 018B2821 */ addu $a1, $t4, $t3
|
|
/* 0EAB84 7F0B6054 00C13021 */ addu $a2, $a2, $at
|
|
/* 0EAB88 7F0B6058 AFA50018 */ sw $a1, 0x18($sp)
|
|
/* 0EAB8C 7F0B605C AFA3001C */ sw $v1, 0x1c($sp)
|
|
/* 0EAB90 7F0B6060 00004812 */ mflo $t1
|
|
/* 0EAB94 7F0B6064 00892021 */ addu $a0, $a0, $t1
|
|
/* 0EAB98 7F0B6068 0FC2F35F */ jal obLoadBGFileBytesAtOffset
|
|
/* 0EAB9C 7F0B606C 8C844490 */ lw $a0, %lo(levelinfotable+4)($a0)
|
|
/* 0EABA0 7F0B6070 8FA40018 */ lw $a0, 0x18($sp)
|
|
/* 0EABA4 7F0B6074 0FC2D7E3 */ jal bgDecompress
|
|
/* 0EABA8 7F0B6078 8FA50034 */ lw $a1, 0x34($sp)
|
|
/* 0EABAC 7F0B607C 8FA3001C */ lw $v1, 0x1c($sp)
|
|
/* 0EABB0 7F0B6080 8FAD0034 */ lw $t5, 0x34($sp)
|
|
/* 0EABB4 7F0B6084 AC62001C */ sw $v0, 0x1c($v1)
|
|
/* 0EABB8 7F0B6088 AC6D0004 */ sw $t5, 4($v1)
|
|
.L7F0B608C:
|
|
/* 0EABBC 7F0B608C 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* 0EABC0 7F0B6090 27BD0030 */ addiu $sp, $sp, 0x30
|
|
/* 0EABC4 7F0B6094 03E00008 */ jr $ra
|
|
/* 0EABC8 7F0B6098 00000000 */ nop
|
|
)
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
u32 * sub_GAME_7F0B609C(int roomID, int *data, u32 size)
|
|
{
|
|
u32 dest;
|
|
u32 puVar1;
|
|
u8 *source;
|
|
u32 len;
|
|
|
|
len = array_room_info[roomID].csize_primary_DL_binary + 0xfU & 0xfffffff0;
|
|
if (size < len + 0x20) {
|
|
dest = 0xffffffff;
|
|
}
|
|
else {
|
|
source = (size - len) + data;
|
|
obLoadBGFileBytesAtOffset
|
|
(levelinfotable[levelentry_index].bg_seg_filename,source,
|
|
&ptr_bgdata_room_fileposition_list[roomID] + -0xf000000,len);
|
|
dest = bgDecompress(source,data);
|
|
puVar1 = (size - dest) + data;
|
|
sub_GAME_7F0CE794(data,puVar1,dest);
|
|
clear_light_fixturetable_in_room(roomID);
|
|
puVar1 = process_microcode_sort_display_modes_expand_image_calls(puVar1,dest,data,NULL);
|
|
if (dest < puVar1) {
|
|
dest = puVar1;
|
|
}
|
|
array_room_info[roomID].ptr_expanded_mapping_info = data;
|
|
array_room_info[roomID].usize_primary_DL_binary = dest;
|
|
}
|
|
return dest;
|
|
}
|
|
#else
|
|
|
|
#if defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B609C
|
|
/* 0EABCC 7F0B609C 00047880 */ sll $t7, $a0, 2
|
|
/* 0EABD0 7F0B60A0 01E47821 */ addu $t7, $t7, $a0
|
|
/* 0EABD4 7F0B60A4 3C188004 */ lui $t8, %hi(array_room_info)
|
|
/* 0EABD8 7F0B60A8 27181414 */ addiu $t8, %lo(array_room_info) # addiu $t8, $t8, 0x1414
|
|
/* 0EABDC 7F0B60AC 000F7900 */ sll $t7, $t7, 4
|
|
/* 0EABE0 7F0B60B0 01F84021 */ addu $t0, $t7, $t8
|
|
/* 0EABE4 7F0B60B4 8D070014 */ lw $a3, 0x14($t0)
|
|
/* 0EABE8 7F0B60B8 27BDFFC8 */ addiu $sp, $sp, -0x38
|
|
/* 0EABEC 7F0B60BC 2401FFF0 */ li $at, -16
|
|
/* 0EABF0 7F0B60C0 24E7000F */ addiu $a3, $a3, 0xf
|
|
/* 0EABF4 7F0B60C4 00E1C824 */ and $t9, $a3, $at
|
|
/* 0EABF8 7F0B60C8 272A0020 */ addiu $t2, $t9, 0x20
|
|
/* 0EABFC 7F0B60CC AFB00014 */ sw $s0, 0x14($sp)
|
|
/* 0EAC00 7F0B60D0 00CA082A */ slt $at, $a2, $t2
|
|
/* 0EAC04 7F0B60D4 00A08025 */ move $s0, $a1
|
|
/* 0EAC08 7F0B60D8 AFBF001C */ sw $ra, 0x1c($sp)
|
|
/* 0EAC0C 7F0B60DC AFB10018 */ sw $s1, 0x18($sp)
|
|
/* 0EAC10 7F0B60E0 AFA40038 */ sw $a0, 0x38($sp)
|
|
/* 0EAC14 7F0B60E4 AFA60040 */ sw $a2, 0x40($sp)
|
|
/* 0EAC18 7F0B60E8 10200003 */ beqz $at, .L7F0B60F8
|
|
/* 0EAC1C 7F0B60EC 03203825 */ move $a3, $t9
|
|
/* 0EAC20 7F0B60F0 10000035 */ b .L7F0B61C8
|
|
/* 0EAC24 7F0B60F4 2402FFFF */ li $v0, -1
|
|
.L7F0B60F8:
|
|
/* 0EAC28 7F0B60F8 8FAC0038 */ lw $t4, 0x38($sp)
|
|
/* 0EAC2C 7F0B60FC 24030018 */ li $v1, 24
|
|
/* 0EAC30 7F0B6100 3C198004 */ lui $t9, %hi(levelentry_index)
|
|
/* 0EAC34 7F0B6104 01830019 */ multu $t4, $v1
|
|
/* 0EAC38 7F0B6108 8F391400 */ lw $t9, %lo(levelentry_index)($t9)
|
|
/* 0EAC3C 7F0B610C 3C0B8008 */ lui $t3, %hi(ptr_bgdata_room_fileposition_list)
|
|
/* 0EAC40 7F0B6110 8D6BFF8C */ lw $t3, %lo(ptr_bgdata_room_fileposition_list)($t3)
|
|
/* 0EAC44 7F0B6114 3C028008 */ lui $v0, %hi(ptr_bg_data)
|
|
/* 0EAC48 7F0B6118 8C42BF90 */ lw $v0, %lo(ptr_bg_data)($v0)
|
|
/* 0EAC4C 7F0B611C 8FAA0040 */ lw $t2, 0x40($sp)
|
|
/* 0EAC50 7F0B6120 3C048004 */ lui $a0, %hi(levelinfotable)
|
|
/* 0EAC54 7F0B6124 3C01F100 */ lui $at, 0xf100
|
|
/* 0EAC58 7F0B6128 01476023 */ subu $t4, $t2, $a3
|
|
/* 0EAC5C 7F0B612C 00006812 */ mflo $t5
|
|
/* 0EAC60 7F0B6130 016D7021 */ addu $t6, $t3, $t5
|
|
/* 0EAC64 7F0B6134 8DCF0004 */ lw $t7, 4($t6)
|
|
/* 0EAC68 7F0B6138 03230019 */ multu $t9, $v1
|
|
/* 0EAC6C 7F0B613C 01908821 */ addu $s1, $t4, $s0
|
|
/* 0EAC70 7F0B6140 01E2C021 */ addu $t8, $t7, $v0
|
|
/* 0EAC74 7F0B6144 03023023 */ subu $a2, $t8, $v0
|
|
/* 0EAC78 7F0B6148 00C13021 */ addu $a2, $a2, $at
|
|
/* 0EAC7C 7F0B614C 02202825 */ move $a1, $s1
|
|
/* 0EAC80 7F0B6150 AFA80020 */ sw $t0, 0x20($sp)
|
|
/* 0EAC84 7F0B6154 00004812 */ mflo $t1
|
|
/* 0EAC88 7F0B6158 00892021 */ addu $a0, $a0, $t1
|
|
/* 0EAC8C 7F0B615C 0FC2F35F */ jal obLoadBGFileBytesAtOffset
|
|
/* 0EAC90 7F0B6160 8C844490 */ lw $a0, %lo(levelinfotable+4)($a0)
|
|
/* 0EAC94 7F0B6164 02202025 */ move $a0, $s1
|
|
/* 0EAC98 7F0B6168 0FC2D7E3 */ jal bgDecompress
|
|
/* 0EAC9C 7F0B616C 02002825 */ move $a1, $s0
|
|
/* 0EACA0 7F0B6170 8FAB0040 */ lw $t3, 0x40($sp)
|
|
/* 0EACA4 7F0B6174 00408825 */ move $s1, $v0
|
|
/* 0EACA8 7F0B6178 02002025 */ move $a0, $s0
|
|
/* 0EACAC 7F0B617C 01626823 */ subu $t5, $t3, $v0
|
|
/* 0EACB0 7F0B6180 01B02821 */ addu $a1, $t5, $s0
|
|
/* 0EACB4 7F0B6184 AFA50028 */ sw $a1, 0x28($sp)
|
|
/* 0EACB8 7F0B6188 0FC339E5 */ jal sub_GAME_7F0CE794
|
|
/* 0EACBC 7F0B618C 00403025 */ move $a2, $v0
|
|
/* 0EACC0 7F0B6190 0FC2F131 */ jal clear_light_fixturetable_in_room
|
|
/* 0EACC4 7F0B6194 8FA40038 */ lw $a0, 0x38($sp)
|
|
/* 0EACC8 7F0B6198 8FA40028 */ lw $a0, 0x28($sp)
|
|
/* 0EACCC 7F0B619C 02202825 */ move $a1, $s1
|
|
/* 0EACD0 7F0B61A0 02003025 */ move $a2, $s0
|
|
/* 0EACD4 7F0B61A4 0FC33846 */ jal process_microcode_sort_display_modes_expand_image_calls
|
|
/* 0EACD8 7F0B61A8 00003825 */ move $a3, $zero
|
|
/* 0EACDC 7F0B61AC 0222082A */ slt $at, $s1, $v0
|
|
/* 0EACE0 7F0B61B0 10200002 */ beqz $at, .L7F0B61BC
|
|
/* 0EACE4 7F0B61B4 8FA30020 */ lw $v1, 0x20($sp)
|
|
/* 0EACE8 7F0B61B8 00408825 */ move $s1, $v0
|
|
.L7F0B61BC:
|
|
/* 0EACEC 7F0B61BC AC700008 */ sw $s0, 8($v1)
|
|
/* 0EACF0 7F0B61C0 AC710020 */ sw $s1, 0x20($v1)
|
|
/* 0EACF4 7F0B61C4 02201025 */ move $v0, $s1
|
|
.L7F0B61C8:
|
|
/* 0EACF8 7F0B61C8 8FBF001C */ lw $ra, 0x1c($sp)
|
|
/* 0EACFC 7F0B61CC 8FB00014 */ lw $s0, 0x14($sp)
|
|
/* 0EAD00 7F0B61D0 8FB10018 */ lw $s1, 0x18($sp)
|
|
/* 0EAD04 7F0B61D4 03E00008 */ jr $ra
|
|
/* 0EAD08 7F0B61D8 27BD0038 */ addiu $sp, $sp, 0x38
|
|
)
|
|
#endif
|
|
|
|
#if !defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B609C
|
|
/* 0EABCC 7F0B609C 00047880 */ sll $t7, $a0, 2
|
|
/* 0EABD0 7F0B60A0 01E47821 */ addu $t7, $t7, $a0
|
|
/* 0EABD4 7F0B60A4 3C188004 */ lui $t8, %hi(array_room_info)
|
|
/* 0EABD8 7F0B60A8 27181414 */ addiu $t8, %lo(array_room_info) # addiu $t8, $t8, 0x1414
|
|
/* 0EABDC 7F0B60AC 000F7900 */ sll $t7, $t7, 4
|
|
/* 0EABE0 7F0B60B0 01F84021 */ addu $t0, $t7, $t8
|
|
/* 0EABE4 7F0B60B4 8D070014 */ lw $a3, 0x14($t0)
|
|
/* 0EABE8 7F0B60B8 27BDFFC8 */ addiu $sp, $sp, -0x38
|
|
/* 0EABEC 7F0B60BC 2401FFF0 */ li $at, -16
|
|
/* 0EABF0 7F0B60C0 24E7000F */ addiu $a3, $a3, 0xf
|
|
/* 0EABF4 7F0B60C4 00E1C824 */ and $t9, $a3, $at
|
|
/* 0EABF8 7F0B60C8 272A0020 */ addiu $t2, $t9, 0x20
|
|
/* 0EABFC 7F0B60CC AFB00014 */ sw $s0, 0x14($sp)
|
|
/* 0EAC00 7F0B60D0 00CA082A */ slt $at, $a2, $t2
|
|
/* 0EAC04 7F0B60D4 00A08025 */ move $s0, $a1
|
|
/* 0EAC08 7F0B60D8 AFBF001C */ sw $ra, 0x1c($sp)
|
|
/* 0EAC0C 7F0B60DC AFB10018 */ sw $s1, 0x18($sp)
|
|
/* 0EAC10 7F0B60E0 AFA40038 */ sw $a0, 0x38($sp)
|
|
/* 0EAC14 7F0B60E4 AFA60040 */ sw $a2, 0x40($sp)
|
|
/* 0EAC18 7F0B60E8 10200003 */ beqz $at, .L7F0B60F8
|
|
/* 0EAC1C 7F0B60EC 03203825 */ move $a3, $t9
|
|
/* 0EAC20 7F0B60F0 10000035 */ b .L7F0B61C8
|
|
/* 0EAC24 7F0B60F4 2402FFFF */ li $v0, -1
|
|
.L7F0B60F8:
|
|
/* 0EAC28 7F0B60F8 8FAC0038 */ lw $t4, 0x38($sp)
|
|
/* 0EAC2C 7F0B60FC 24030018 */ li $v1, 24
|
|
/* 0EAC30 7F0B6100 3C198004 */ lui $t9, %hi(levelentry_index)
|
|
/* 0EAC34 7F0B6104 01830019 */ multu $t4, $v1
|
|
/* 0EAC38 7F0B6108 8F391400 */ lw $t9, %lo(levelentry_index)($t9)
|
|
/* 0EAC3C 7F0B610C 3C0B8008 */ lui $t3, %hi(ptr_bgdata_room_fileposition_list)
|
|
/* 0EAC40 7F0B6110 8D6BFF8C */ lw $t3, %lo(ptr_bgdata_room_fileposition_list)($t3)
|
|
/* 0EAC44 7F0B6114 3C028008 */ lui $v0, %hi(ptr_bg_data)
|
|
/* 0EAC48 7F0B6118 8C42BF90 */ lw $v0, %lo(ptr_bg_data)($v0)
|
|
/* 0EAC4C 7F0B611C 8FAA0040 */ lw $t2, 0x40($sp)
|
|
/* 0EAC50 7F0B6120 3C048004 */ lui $a0, %hi(levelinfotable)
|
|
/* 0EAC54 7F0B6124 3C01F100 */ lui $at, 0xf100
|
|
/* 0EAC58 7F0B6128 01476023 */ subu $t4, $t2, $a3
|
|
/* 0EAC5C 7F0B612C 00006812 */ mflo $t5
|
|
/* 0EAC60 7F0B6130 016D7021 */ addu $t6, $t3, $t5
|
|
/* 0EAC64 7F0B6134 8DCF0004 */ lw $t7, 4($t6)
|
|
/* 0EAC68 7F0B6138 03230019 */ multu $t9, $v1
|
|
/* 0EAC6C 7F0B613C 01908821 */ addu $s1, $t4, $s0
|
|
/* 0EAC70 7F0B6140 01E2C021 */ addu $t8, $t7, $v0
|
|
/* 0EAC74 7F0B6144 03023023 */ subu $a2, $t8, $v0
|
|
/* 0EAC78 7F0B6148 00C13021 */ addu $a2, $a2, $at
|
|
/* 0EAC7C 7F0B614C 02202825 */ move $a1, $s1
|
|
/* 0EAC80 7F0B6150 AFA80020 */ sw $t0, 0x20($sp)
|
|
/* 0EAC84 7F0B6154 00004812 */ mflo $t1
|
|
/* 0EAC88 7F0B6158 00892021 */ addu $a0, $a0, $t1
|
|
/* 0EAC8C 7F0B615C 0FC2F35F */ jal obLoadBGFileBytesAtOffset
|
|
/* 0EAC90 7F0B6160 8C844490 */ lw $a0, %lo(levelinfotable+4)($a0)
|
|
/* 0EAC94 7F0B6164 02202025 */ move $a0, $s1
|
|
/* 0EAC98 7F0B6168 0FC2D7E3 */ jal bgDecompress
|
|
/* 0EAC9C 7F0B616C 02002825 */ move $a1, $s0
|
|
/* 0EACA0 7F0B6170 8FAB0040 */ lw $t3, 0x40($sp)
|
|
/* 0EACA4 7F0B6174 00408825 */ move $s1, $v0
|
|
/* 0EACA8 7F0B6178 02002025 */ move $a0, $s0
|
|
/* 0EACAC 7F0B617C 01626823 */ subu $t5, $t3, $v0
|
|
/* 0EACB0 7F0B6180 01B02821 */ addu $a1, $t5, $s0
|
|
/* 0EACB4 7F0B6184 AFA50028 */ sw $a1, 0x28($sp)
|
|
/* 0EACB8 7F0B6188 0FC339E5 */ jal sub_GAME_7F0CE794
|
|
/* 0EACBC 7F0B618C 00403025 */ move $a2, $v0
|
|
/* 0EACC0 7F0B6190 0FC2F131 */ jal clear_light_fixturetable_in_room
|
|
/* 0EACC4 7F0B6194 8FA40038 */ lw $a0, 0x38($sp)
|
|
/* 0EACC8 7F0B6198 8FA40028 */ lw $a0, 0x28($sp)
|
|
/* 0EACCC 7F0B619C 02202825 */ move $a1, $s1
|
|
/* 0EACD0 7F0B61A0 02003025 */ move $a2, $s0
|
|
/* 0EACD4 7F0B61A4 0FC33846 */ jal process_microcode_sort_display_modes_expand_image_calls
|
|
/* 0EACD8 7F0B61A8 00003825 */ move $a3, $zero
|
|
/* 0EACDC 7F0B61AC 0222082A */ slt $at, $s1, $v0
|
|
/* 0EACE0 7F0B61B0 10200002 */ beqz $at, .L7F0B61BC
|
|
/* 0EACE4 7F0B61B4 8FA30020 */ lw $v1, 0x20($sp)
|
|
/* 0EACE8 7F0B61B8 00408825 */ move $s1, $v0
|
|
.L7F0B61BC:
|
|
/* 0EACEC 7F0B61BC AC700008 */ sw $s0, 8($v1)
|
|
/* 0EACF0 7F0B61C0 AC710020 */ sw $s1, 0x20($v1)
|
|
/* 0EACF4 7F0B61C4 02201025 */ move $v0, $s1
|
|
.L7F0B61C8:
|
|
/* 0EACF8 7F0B61C8 8FBF001C */ lw $ra, 0x1c($sp)
|
|
/* 0EACFC 7F0B61CC 8FB00014 */ lw $s0, 0x14($sp)
|
|
/* 0EAD00 7F0B61D0 8FB10018 */ lw $s1, 0x18($sp)
|
|
/* 0EAD04 7F0B61D4 03E00008 */ jr $ra
|
|
/* 0EAD08 7F0B61D8 27BD0038 */ addiu $sp, $sp, 0x38
|
|
)
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
u32 sub_GAME_7F0B61DC(s32 roomID, u32 *data, s32 size)
|
|
{
|
|
u32 dest;
|
|
u32 puVar1;
|
|
u8 *source;
|
|
u32 len;
|
|
|
|
len = array_room_info[roomID].csize_secondary_DL_binary + 0xfU & 0xfffffff0;
|
|
if (size < len + 0x20)
|
|
{
|
|
dest = 0xffffffff;
|
|
}
|
|
else
|
|
{
|
|
source = (size - len) + data;
|
|
obLoadBGFileBytesAtOffset(levelinfotable[levelentry_index].bg_seg_filename,source, ptr_bgdata_room_fileposition_list[roomID].pos.z + -0xf000000,len);
|
|
dest = bgDecompress(source,data);
|
|
puVar1 = (size - dest) + data;
|
|
sub_GAME_7F0CE794(data,puVar1,dest);
|
|
puVar1 = process_microcode_sort_display_modes_expand_image_calls(puVar1,dest,data,NULL);
|
|
if (dest < puVar1) {
|
|
dest = puVar1;
|
|
}
|
|
array_room_info[roomID].ptr_secondary_expanded_mapping_info = data;
|
|
array_room_info[roomID].usize_secondary_DL_binary = dest;
|
|
}
|
|
return dest;
|
|
}
|
|
#else
|
|
|
|
#if defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B61DC
|
|
/* 0EAD0C 7F0B61DC 00047880 */ sll $t7, $a0, 2
|
|
/* 0EAD10 7F0B61E0 01E47821 */ addu $t7, $t7, $a0
|
|
/* 0EAD14 7F0B61E4 3C188004 */ lui $t8, %hi(array_room_info)
|
|
/* 0EAD18 7F0B61E8 27181414 */ addiu $t8, %lo(array_room_info) # addiu $t8, $t8, 0x1414
|
|
/* 0EAD1C 7F0B61EC 000F7900 */ sll $t7, $t7, 4
|
|
/* 0EAD20 7F0B61F0 01F84021 */ addu $t0, $t7, $t8
|
|
/* 0EAD24 7F0B61F4 8D070018 */ lw $a3, 0x18($t0)
|
|
/* 0EAD28 7F0B61F8 27BDFFC8 */ addiu $sp, $sp, -0x38
|
|
/* 0EAD2C 7F0B61FC 2401FFF0 */ li $at, -16
|
|
/* 0EAD30 7F0B6200 24E7000F */ addiu $a3, $a3, 0xf
|
|
/* 0EAD34 7F0B6204 00E1C824 */ and $t9, $a3, $at
|
|
/* 0EAD38 7F0B6208 272A0020 */ addiu $t2, $t9, 0x20
|
|
/* 0EAD3C 7F0B620C AFB10018 */ sw $s1, 0x18($sp)
|
|
/* 0EAD40 7F0B6210 00CA082A */ slt $at, $a2, $t2
|
|
/* 0EAD44 7F0B6214 00A08825 */ move $s1, $a1
|
|
/* 0EAD48 7F0B6218 AFBF001C */ sw $ra, 0x1c($sp)
|
|
/* 0EAD4C 7F0B621C AFB00014 */ sw $s0, 0x14($sp)
|
|
/* 0EAD50 7F0B6220 AFA40038 */ sw $a0, 0x38($sp)
|
|
/* 0EAD54 7F0B6224 AFA60040 */ sw $a2, 0x40($sp)
|
|
/* 0EAD58 7F0B6228 10200003 */ beqz $at, .L7F0B6238
|
|
/* 0EAD5C 7F0B622C 03203825 */ move $a3, $t9
|
|
/* 0EAD60 7F0B6230 10000033 */ b .L7F0B6300
|
|
/* 0EAD64 7F0B6234 2402FFFF */ li $v0, -1
|
|
.L7F0B6238:
|
|
/* 0EAD68 7F0B6238 8FAC0038 */ lw $t4, 0x38($sp)
|
|
/* 0EAD6C 7F0B623C 24030018 */ li $v1, 24
|
|
/* 0EAD70 7F0B6240 3C198004 */ lui $t9, %hi(levelentry_index)
|
|
/* 0EAD74 7F0B6244 01830019 */ multu $t4, $v1
|
|
/* 0EAD78 7F0B6248 8F391400 */ lw $t9, %lo(levelentry_index)($t9)
|
|
/* 0EAD7C 7F0B624C 3C0B8008 */ lui $t3, %hi(ptr_bgdata_room_fileposition_list)
|
|
/* 0EAD80 7F0B6250 8D6BFF8C */ lw $t3, %lo(ptr_bgdata_room_fileposition_list)($t3)
|
|
/* 0EAD84 7F0B6254 3C028008 */ lui $v0, %hi(ptr_bg_data)
|
|
/* 0EAD88 7F0B6258 8C42BF90 */ lw $v0, %lo(ptr_bg_data)($v0)
|
|
/* 0EAD8C 7F0B625C 8FAA0040 */ lw $t2, 0x40($sp)
|
|
/* 0EAD90 7F0B6260 3C048004 */ lui $a0, %hi(levelinfotable)
|
|
/* 0EAD94 7F0B6264 3C01F100 */ lui $at, 0xf100
|
|
/* 0EAD98 7F0B6268 01476023 */ subu $t4, $t2, $a3
|
|
/* 0EAD9C 7F0B626C 00006812 */ mflo $t5
|
|
/* 0EADA0 7F0B6270 016D7021 */ addu $t6, $t3, $t5
|
|
/* 0EADA4 7F0B6274 8DCF0008 */ lw $t7, 8($t6)
|
|
/* 0EADA8 7F0B6278 03230019 */ multu $t9, $v1
|
|
/* 0EADAC 7F0B627C 01918021 */ addu $s0, $t4, $s1
|
|
/* 0EADB0 7F0B6280 01E2C021 */ addu $t8, $t7, $v0
|
|
/* 0EADB4 7F0B6284 03023023 */ subu $a2, $t8, $v0
|
|
/* 0EADB8 7F0B6288 00C13021 */ addu $a2, $a2, $at
|
|
/* 0EADBC 7F0B628C 02002825 */ move $a1, $s0
|
|
/* 0EADC0 7F0B6290 AFA80020 */ sw $t0, 0x20($sp)
|
|
/* 0EADC4 7F0B6294 00004812 */ mflo $t1
|
|
/* 0EADC8 7F0B6298 00892021 */ addu $a0, $a0, $t1
|
|
/* 0EADCC 7F0B629C 0FC2F35F */ jal obLoadBGFileBytesAtOffset
|
|
/* 0EADD0 7F0B62A0 8C844490 */ lw $a0, %lo(levelinfotable+4)($a0)
|
|
/* 0EADD4 7F0B62A4 02002025 */ move $a0, $s0
|
|
/* 0EADD8 7F0B62A8 0FC2D7E3 */ jal bgDecompress
|
|
/* 0EADDC 7F0B62AC 02202825 */ move $a1, $s1
|
|
/* 0EADE0 7F0B62B0 8FAB0040 */ lw $t3, 0x40($sp)
|
|
/* 0EADE4 7F0B62B4 00408025 */ move $s0, $v0
|
|
/* 0EADE8 7F0B62B8 02202025 */ move $a0, $s1
|
|
/* 0EADEC 7F0B62BC 01626823 */ subu $t5, $t3, $v0
|
|
/* 0EADF0 7F0B62C0 01B12821 */ addu $a1, $t5, $s1
|
|
/* 0EADF4 7F0B62C4 AFA50028 */ sw $a1, 0x28($sp)
|
|
/* 0EADF8 7F0B62C8 0FC339E5 */ jal sub_GAME_7F0CE794
|
|
/* 0EADFC 7F0B62CC 00403025 */ move $a2, $v0
|
|
/* 0EAE00 7F0B62D0 8FA40028 */ lw $a0, 0x28($sp)
|
|
/* 0EAE04 7F0B62D4 02002825 */ move $a1, $s0
|
|
/* 0EAE08 7F0B62D8 02203025 */ move $a2, $s1
|
|
/* 0EAE0C 7F0B62DC 0FC33846 */ jal process_microcode_sort_display_modes_expand_image_calls
|
|
/* 0EAE10 7F0B62E0 00003825 */ move $a3, $zero
|
|
/* 0EAE14 7F0B62E4 0202082A */ slt $at, $s0, $v0
|
|
/* 0EAE18 7F0B62E8 10200002 */ beqz $at, .L7F0B62F4
|
|
/* 0EAE1C 7F0B62EC 8FA30020 */ lw $v1, 0x20($sp)
|
|
/* 0EAE20 7F0B62F0 00408025 */ move $s0, $v0
|
|
.L7F0B62F4:
|
|
/* 0EAE24 7F0B62F4 AC71000C */ sw $s1, 0xc($v1)
|
|
/* 0EAE28 7F0B62F8 AC700024 */ sw $s0, 0x24($v1)
|
|
/* 0EAE2C 7F0B62FC 02001025 */ move $v0, $s0
|
|
.L7F0B6300:
|
|
/* 0EAE30 7F0B6300 8FBF001C */ lw $ra, 0x1c($sp)
|
|
/* 0EAE34 7F0B6304 8FB00014 */ lw $s0, 0x14($sp)
|
|
/* 0EAE38 7F0B6308 8FB10018 */ lw $s1, 0x18($sp)
|
|
/* 0EAE3C 7F0B630C 03E00008 */ jr $ra
|
|
/* 0EAE40 7F0B6310 27BD0038 */ addiu $sp, $sp, 0x38
|
|
)
|
|
#endif
|
|
|
|
#if !defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B61DC
|
|
/* 0EAD0C 7F0B61DC 00047880 */ sll $t7, $a0, 2
|
|
/* 0EAD10 7F0B61E0 01E47821 */ addu $t7, $t7, $a0
|
|
/* 0EAD14 7F0B61E4 3C188004 */ lui $t8, %hi(array_room_info)
|
|
/* 0EAD18 7F0B61E8 27181414 */ addiu $t8, %lo(array_room_info) # addiu $t8, $t8, 0x1414
|
|
/* 0EAD1C 7F0B61EC 000F7900 */ sll $t7, $t7, 4
|
|
/* 0EAD20 7F0B61F0 01F84021 */ addu $t0, $t7, $t8
|
|
/* 0EAD24 7F0B61F4 8D070018 */ lw $a3, 0x18($t0)
|
|
/* 0EAD28 7F0B61F8 27BDFFC8 */ addiu $sp, $sp, -0x38
|
|
/* 0EAD2C 7F0B61FC 2401FFF0 */ li $at, -16
|
|
/* 0EAD30 7F0B6200 24E7000F */ addiu $a3, $a3, 0xf
|
|
/* 0EAD34 7F0B6204 00E1C824 */ and $t9, $a3, $at
|
|
/* 0EAD38 7F0B6208 272A0020 */ addiu $t2, $t9, 0x20
|
|
/* 0EAD3C 7F0B620C AFB10018 */ sw $s1, 0x18($sp)
|
|
/* 0EAD40 7F0B6210 00CA082A */ slt $at, $a2, $t2
|
|
/* 0EAD44 7F0B6214 00A08825 */ move $s1, $a1
|
|
/* 0EAD48 7F0B6218 AFBF001C */ sw $ra, 0x1c($sp)
|
|
/* 0EAD4C 7F0B621C AFB00014 */ sw $s0, 0x14($sp)
|
|
/* 0EAD50 7F0B6220 AFA40038 */ sw $a0, 0x38($sp)
|
|
/* 0EAD54 7F0B6224 AFA60040 */ sw $a2, 0x40($sp)
|
|
/* 0EAD58 7F0B6228 10200003 */ beqz $at, .L7F0B6238
|
|
/* 0EAD5C 7F0B622C 03203825 */ move $a3, $t9
|
|
/* 0EAD60 7F0B6230 10000033 */ b .L7F0B6300
|
|
/* 0EAD64 7F0B6234 2402FFFF */ li $v0, -1
|
|
.L7F0B6238:
|
|
/* 0EAD68 7F0B6238 8FAC0038 */ lw $t4, 0x38($sp)
|
|
/* 0EAD6C 7F0B623C 24030018 */ li $v1, 24
|
|
/* 0EAD70 7F0B6240 3C198004 */ lui $t9, %hi(levelentry_index)
|
|
/* 0EAD74 7F0B6244 01830019 */ multu $t4, $v1
|
|
/* 0EAD78 7F0B6248 8F391400 */ lw $t9, %lo(levelentry_index)($t9)
|
|
/* 0EAD7C 7F0B624C 3C0B8008 */ lui $t3, %hi(ptr_bgdata_room_fileposition_list)
|
|
/* 0EAD80 7F0B6250 8D6BFF8C */ lw $t3, %lo(ptr_bgdata_room_fileposition_list)($t3)
|
|
/* 0EAD84 7F0B6254 3C028008 */ lui $v0, %hi(ptr_bg_data)
|
|
/* 0EAD88 7F0B6258 8C42BF90 */ lw $v0, %lo(ptr_bg_data)($v0)
|
|
/* 0EAD8C 7F0B625C 8FAA0040 */ lw $t2, 0x40($sp)
|
|
/* 0EAD90 7F0B6260 3C048004 */ lui $a0, %hi(levelinfotable)
|
|
/* 0EAD94 7F0B6264 3C01F100 */ lui $at, 0xf100
|
|
/* 0EAD98 7F0B6268 01476023 */ subu $t4, $t2, $a3
|
|
/* 0EAD9C 7F0B626C 00006812 */ mflo $t5
|
|
/* 0EADA0 7F0B6270 016D7021 */ addu $t6, $t3, $t5
|
|
/* 0EADA4 7F0B6274 8DCF0008 */ lw $t7, 8($t6)
|
|
/* 0EADA8 7F0B6278 03230019 */ multu $t9, $v1
|
|
/* 0EADAC 7F0B627C 01918021 */ addu $s0, $t4, $s1
|
|
/* 0EADB0 7F0B6280 01E2C021 */ addu $t8, $t7, $v0
|
|
/* 0EADB4 7F0B6284 03023023 */ subu $a2, $t8, $v0
|
|
/* 0EADB8 7F0B6288 00C13021 */ addu $a2, $a2, $at
|
|
/* 0EADBC 7F0B628C 02002825 */ move $a1, $s0
|
|
/* 0EADC0 7F0B6290 AFA80020 */ sw $t0, 0x20($sp)
|
|
/* 0EADC4 7F0B6294 00004812 */ mflo $t1
|
|
/* 0EADC8 7F0B6298 00892021 */ addu $a0, $a0, $t1
|
|
/* 0EADCC 7F0B629C 0FC2F35F */ jal obLoadBGFileBytesAtOffset
|
|
/* 0EADD0 7F0B62A0 8C844490 */ lw $a0, %lo(levelinfotable+4)($a0)
|
|
/* 0EADD4 7F0B62A4 02002025 */ move $a0, $s0
|
|
/* 0EADD8 7F0B62A8 0FC2D7E3 */ jal bgDecompress
|
|
/* 0EADDC 7F0B62AC 02202825 */ move $a1, $s1
|
|
/* 0EADE0 7F0B62B0 8FAB0040 */ lw $t3, 0x40($sp)
|
|
/* 0EADE4 7F0B62B4 00408025 */ move $s0, $v0
|
|
/* 0EADE8 7F0B62B8 02202025 */ move $a0, $s1
|
|
/* 0EADEC 7F0B62BC 01626823 */ subu $t5, $t3, $v0
|
|
/* 0EADF0 7F0B62C0 01B12821 */ addu $a1, $t5, $s1
|
|
/* 0EADF4 7F0B62C4 AFA50028 */ sw $a1, 0x28($sp)
|
|
/* 0EADF8 7F0B62C8 0FC339E5 */ jal sub_GAME_7F0CE794
|
|
/* 0EADFC 7F0B62CC 00403025 */ move $a2, $v0
|
|
/* 0EAE00 7F0B62D0 8FA40028 */ lw $a0, 0x28($sp)
|
|
/* 0EAE04 7F0B62D4 02002825 */ move $a1, $s0
|
|
/* 0EAE08 7F0B62D8 02203025 */ move $a2, $s1
|
|
/* 0EAE0C 7F0B62DC 0FC33846 */ jal process_microcode_sort_display_modes_expand_image_calls
|
|
/* 0EAE10 7F0B62E0 00003825 */ move $a3, $zero
|
|
/* 0EAE14 7F0B62E4 0202082A */ slt $at, $s0, $v0
|
|
/* 0EAE18 7F0B62E8 10200002 */ beqz $at, .L7F0B62F4
|
|
/* 0EAE1C 7F0B62EC 8FA30020 */ lw $v1, 0x20($sp)
|
|
/* 0EAE20 7F0B62F0 00408025 */ move $s0, $v0
|
|
.L7F0B62F4:
|
|
/* 0EAE24 7F0B62F4 AC71000C */ sw $s1, 0xc($v1)
|
|
/* 0EAE28 7F0B62F8 AC700024 */ sw $s0, 0x24($v1)
|
|
/* 0EAE2C 7F0B62FC 02001025 */ move $v0, $s0
|
|
.L7F0B6300:
|
|
/* 0EAE30 7F0B6300 8FBF001C */ lw $ra, 0x1c($sp)
|
|
/* 0EAE34 7F0B6304 8FB00014 */ lw $s0, 0x14($sp)
|
|
/* 0EAE38 7F0B6308 8FB10018 */ lw $s1, 0x18($sp)
|
|
/* 0EAE3C 7F0B630C 03E00008 */ jr $ra
|
|
/* 0EAE40 7F0B6310 27BD0038 */ addiu $sp, $sp, 0x38
|
|
)
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
s32 bgCheckIfRoomModelNeedsLoad(s32 roomID)
|
|
{
|
|
array_room_info[roomID].field_35 = 1;
|
|
if (array_room_info[roomID].model_bin_loaded == FALSE)
|
|
{
|
|
sub_GAME_7F0B6368(roomID);
|
|
return 1;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
void sub_GAME_7F0B6368(s32 rooms) {
|
|
void *sp1C;
|
|
s32 sp20;
|
|
s32 sp28;
|
|
s32 sp2C;
|
|
void *temp_v1;
|
|
? temp_ret;
|
|
void *temp_v1_2;
|
|
? temp_ret_2;
|
|
? temp_ret_3;
|
|
void *temp_v1_5;
|
|
? temp_ret_4;
|
|
void *temp_v1_6;
|
|
s32 temp_t1;
|
|
s32 temp_a0;
|
|
void *temp_v1_3;
|
|
s32 temp_a0_2;
|
|
void *temp_v1_4;
|
|
void *phi_v1;
|
|
s32 phi_a3;
|
|
s32 phi_a3_2;
|
|
void *phi_v1_2;
|
|
void *phi_v1_3;
|
|
|
|
// Node 0
|
|
if (rooms < MaxNumRooms)
|
|
{
|
|
// Node 1
|
|
temp_v1 = ((rooms * 0x50) + &array_room_info);
|
|
if (temp_v1->unk2 == 0)
|
|
{
|
|
// Node 2
|
|
if (temp_v1->unk28 > 0)
|
|
{
|
|
// Node 3
|
|
sp2C = (s32) temp_v1->unk28;
|
|
sp1C = temp_v1;
|
|
sp28 = 0;
|
|
if (get_debug_joy2detailedit_flag(0) != 0)
|
|
{
|
|
// Node 4
|
|
sp2C = (s32) (sp2C + 0x400);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// Node 5
|
|
sp1C = temp_v1;
|
|
sp2C = memaGetLongestFree(0);
|
|
}
|
|
// Node 6
|
|
sp1C = (void *) temp_v1;
|
|
temp_ret = memaAlloc(sp2C, sp28);
|
|
temp_v1_2 = temp_v1;
|
|
sp20 = temp_ret;
|
|
if (temp_ret != 0)
|
|
{
|
|
// Node 7
|
|
if (temp_v1_2->unk10 != 0)
|
|
{
|
|
// Node 8
|
|
sp1C = temp_v1_2;
|
|
temp_ret_2 = sub_GAME_7F0B5FAC(rooms, temp_ret, sp2C, sp28);
|
|
if (temp_ret_2 >= 0)
|
|
{
|
|
// Node 9
|
|
sp1C = temp_v1_2;
|
|
sp28 = temp_ret_2;
|
|
redarken_lights_in_room(rooms, sp28);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// Node 10
|
|
temp_v1_2->unk4 = 0;
|
|
temp_v1_2->unk1C = 0;
|
|
}
|
|
// Node 11
|
|
phi_v1 = temp_v1_2;
|
|
phi_a3 = sp28;
|
|
if (temp_v1_2->unk14 != 0)
|
|
{
|
|
// Node 12
|
|
sp1C = (void *) temp_v1_2;
|
|
temp_ret_3 = sub_GAME_7F0B609C(rooms, (sp20 + sp28), (sp2C - sp28), sp28);
|
|
temp_v1_5 = temp_v1_2;
|
|
phi_v1 = temp_v1_5;
|
|
phi_a3 = sp28;
|
|
if (temp_ret_3 >= 0)
|
|
{
|
|
// Node 13
|
|
phi_v1 = temp_v1_5;
|
|
phi_a3 = (sp28 + temp_ret_3);
|
|
}
|
|
}
|
|
// Node 14
|
|
if (phi_v1->unk18 != 0)
|
|
{
|
|
// Node 15
|
|
sp1C = (void *) phi_v1;
|
|
temp_ret_4 = sub_GAME_7F0B61DC(rooms, (sp20 + phi_a3), (sp2C - phi_a3), phi_a3);
|
|
temp_v1_6 = phi_v1;
|
|
phi_a3_2 = sp28;
|
|
phi_v1_2 = temp_v1_6;
|
|
if (temp_ret_4 > 0)
|
|
{
|
|
// Node 16
|
|
phi_a3_2 = (sp28 + temp_ret_4);
|
|
phi_v1_2 = temp_v1_6;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// Node 17
|
|
phi_v1->unkC = 0;
|
|
phi_a3_2 = phi_a3;
|
|
phi_v1_2 = phi_v1;
|
|
}
|
|
// Node 18
|
|
temp_t1 = ((phi_a3_2 + 0x20) & -0x10);
|
|
phi_v1_2->unk28 = temp_t1;
|
|
phi_v1_2->unk2 = (u8)1;
|
|
phi_v1_3 = phi_v1_2;
|
|
if (sp2C != temp_t1)
|
|
{
|
|
// Node 19
|
|
sp1C = (void *) phi_v1_2;
|
|
memaRealloc(sp20, sp2C, temp_t1, phi_a3_2);
|
|
phi_v1_3 = phi_v1_2;
|
|
}
|
|
// Node 20
|
|
if (g_FogSkyIsEnabled != 0)
|
|
{
|
|
// Node 21
|
|
temp_a0 = phi_v1_3->unk8;
|
|
sp1C = (void *) phi_v1_3;
|
|
bgLoadFromDynamicCCRMLUT(temp_a0, (phi_v1_3->unk20 + temp_a0), CCRMLUT_PRIMARY_ADDFOG);
|
|
temp_v1_3 = phi_v1_3;
|
|
if (temp_v1_3->unkC != 0)
|
|
{
|
|
// Node 22
|
|
bgLoadFromDynamicCCRMLUT(temp_v1_3->unkC, (temp_v1_3->unk24 + temp_v1_3->unkC), CCRMLUT_SECONDARY_ADDFOG);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// Node 23
|
|
temp_a0_2 = phi_v1_3->unk8;
|
|
sp1C = (void *) phi_v1_3;
|
|
bgLoadFromDynamicCCRMLUT(temp_a0_2, (phi_v1_3->unk20 + temp_a0_2), CCRMLUT_PRIMARY);
|
|
temp_v1_4 = phi_v1_3;
|
|
if (temp_v1_4->unkC != 0)
|
|
{
|
|
// Node 24
|
|
bgLoadFromDynamicCCRMLUT(temp_v1_4->unkC, (temp_v1_4->unk24 + temp_v1_4->unkC), CCRMLUT_SECONDARY);
|
|
}
|
|
}
|
|
// Node 25
|
|
sub_GAME_7F0B6994(rooms);
|
|
roomsHandleStateDebugging();
|
|
}
|
|
}
|
|
}
|
|
// Node 26
|
|
return;
|
|
}
|
|
#else
|
|
#if defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B6368
|
|
/* 0EAE98 7F0B6368 3C0F8004 */ lui $t7, %hi(MaxNumRooms)
|
|
/* 0EAE9C 7F0B636C 8DEF42F4 */ lw $t7, %lo(MaxNumRooms)($t7)
|
|
/* 0EAEA0 7F0B6370 27BDFFD0 */ addiu $sp, $sp, -0x30
|
|
/* 0EAEA4 7F0B6374 AFBF0014 */ sw $ra, 0x14($sp)
|
|
/* 0EAEA8 7F0B6378 008F082A */ slt $at, $a0, $t7
|
|
/* 0EAEAC 7F0B637C AFA40030 */ sw $a0, 0x30($sp)
|
|
/* 0EAEB0 7F0B6380 1020008C */ beqz $at, .L7F0B65B4
|
|
/* 0EAEB4 7F0B6384 00003825 */ move $a3, $zero
|
|
/* 0EAEB8 7F0B6388 0004C880 */ sll $t9, $a0, 2
|
|
/* 0EAEBC 7F0B638C 0324C821 */ addu $t9, $t9, $a0
|
|
/* 0EAEC0 7F0B6390 3C088004 */ lui $t0, %hi(array_room_info)
|
|
/* 0EAEC4 7F0B6394 25081414 */ addiu $t0, %lo(array_room_info) # addiu $t0, $t0, 0x1414
|
|
/* 0EAEC8 7F0B6398 0019C900 */ sll $t9, $t9, 4
|
|
/* 0EAECC 7F0B639C 03281821 */ addu $v1, $t9, $t0
|
|
/* 0EAED0 7F0B63A0 90690002 */ lbu $t1, 2($v1)
|
|
/* 0EAED4 7F0B63A4 55200084 */ bnezl $t1, .L7F0B65B8
|
|
/* 0EAED8 7F0B63A8 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* 0EAEDC 7F0B63AC 8C620028 */ lw $v0, 0x28($v1)
|
|
/* 0EAEE0 7F0B63B0 5840000D */ blezl $v0, .L7F0B63E8
|
|
/* 0EAEE4 7F0B63B4 AFA3001C */ sw $v1, 0x1c($sp)
|
|
/* 0EAEE8 7F0B63B8 AFA2002C */ sw $v0, 0x2c($sp)
|
|
/* 0EAEEC 7F0B63BC AFA3001C */ sw $v1, 0x1c($sp)
|
|
/* 0EAEF0 7F0B63C0 0FC243EE */ jal get_debug_joy2detailedit_flag
|
|
/* 0EAEF4 7F0B63C4 AFA00028 */ sw $zero, 0x28($sp)
|
|
/* 0EAEF8 7F0B63C8 8FA3001C */ lw $v1, 0x1c($sp)
|
|
/* 0EAEFC 7F0B63CC 1040000B */ beqz $v0, .L7F0B63FC
|
|
/* 0EAF00 7F0B63D0 8FA70028 */ lw $a3, 0x28($sp)
|
|
/* 0EAF04 7F0B63D4 8FAA002C */ lw $t2, 0x2c($sp)
|
|
/* 0EAF08 7F0B63D8 254B0400 */ addiu $t3, $t2, 0x400
|
|
/* 0EAF0C 7F0B63DC 10000007 */ b .L7F0B63FC
|
|
/* 0EAF10 7F0B63E0 AFAB002C */ sw $t3, 0x2c($sp)
|
|
/* 0EAF14 7F0B63E4 AFA3001C */ sw $v1, 0x1c($sp)
|
|
.L7F0B63E8:
|
|
/* 0EAF18 7F0B63E8 0C0028DC */ jal memaGetLongestFree
|
|
/* 0EAF1C 7F0B63EC AFA70028 */ sw $a3, 0x28($sp)
|
|
/* 0EAF20 7F0B63F0 8FA3001C */ lw $v1, 0x1c($sp)
|
|
/* 0EAF24 7F0B63F4 8FA70028 */ lw $a3, 0x28($sp)
|
|
/* 0EAF28 7F0B63F8 AFA2002C */ sw $v0, 0x2c($sp)
|
|
.L7F0B63FC:
|
|
/* 0EAF2C 7F0B63FC 8FA4002C */ lw $a0, 0x2c($sp)
|
|
/* 0EAF30 7F0B6400 AFA3001C */ sw $v1, 0x1c($sp)
|
|
/* 0EAF34 7F0B6404 0C00278D */ jal memaAlloc
|
|
/* 0EAF38 7F0B6408 AFA70028 */ sw $a3, 0x28($sp)
|
|
/* 0EAF3C 7F0B640C 8FA3001C */ lw $v1, 0x1c($sp)
|
|
/* 0EAF40 7F0B6410 8FA70028 */ lw $a3, 0x28($sp)
|
|
/* 0EAF44 7F0B6414 10400067 */ beqz $v0, .L7F0B65B4
|
|
/* 0EAF48 7F0B6418 AFA20020 */ sw $v0, 0x20($sp)
|
|
/* 0EAF4C 7F0B641C 8C6C0010 */ lw $t4, 0x10($v1)
|
|
/* 0EAF50 7F0B6420 8FA40030 */ lw $a0, 0x30($sp)
|
|
/* 0EAF54 7F0B6424 00402825 */ move $a1, $v0
|
|
/* 0EAF58 7F0B6428 1180000E */ beqz $t4, .L7F0B6464
|
|
/* 0EAF5C 7F0B642C 8FA6002C */ lw $a2, 0x2c($sp)
|
|
/* 0EAF60 7F0B6430 AFA3001C */ sw $v1, 0x1c($sp)
|
|
/* 0EAF64 7F0B6434 0FC2D7EB */ jal sub_GAME_7F0B5FAC
|
|
/* 0EAF68 7F0B6438 AFA70028 */ sw $a3, 0x28($sp)
|
|
/* 0EAF6C 7F0B643C 8FA3001C */ lw $v1, 0x1c($sp)
|
|
/* 0EAF70 7F0B6440 0440000A */ bltz $v0, .L7F0B646C
|
|
/* 0EAF74 7F0B6444 8FA70028 */ lw $a3, 0x28($sp)
|
|
/* 0EAF78 7F0B6448 8FA40030 */ lw $a0, 0x30($sp)
|
|
/* 0EAF7C 7F0B644C AFA3001C */ sw $v1, 0x1c($sp)
|
|
/* 0EAF80 7F0B6450 0FC2EE5E */ jal redarken_lights_in_room
|
|
/* 0EAF84 7F0B6454 AFA20028 */ sw $v0, 0x28($sp)
|
|
/* 0EAF88 7F0B6458 8FA3001C */ lw $v1, 0x1c($sp)
|
|
/* 0EAF8C 7F0B645C 10000003 */ b .L7F0B646C
|
|
/* 0EAF90 7F0B6460 8FA70028 */ lw $a3, 0x28($sp)
|
|
.L7F0B6464:
|
|
/* 0EAF94 7F0B6464 AC600004 */ sw $zero, 4($v1)
|
|
/* 0EAF98 7F0B6468 AC60001C */ sw $zero, 0x1c($v1)
|
|
.L7F0B646C:
|
|
/* 0EAF9C 7F0B646C 8C6D0014 */ lw $t5, 0x14($v1)
|
|
/* 0EAFA0 7F0B6470 8FAE0020 */ lw $t6, 0x20($sp)
|
|
/* 0EAFA4 7F0B6474 8FA40030 */ lw $a0, 0x30($sp)
|
|
/* 0EAFA8 7F0B6478 11A0000A */ beqz $t5, .L7F0B64A4
|
|
/* 0EAFAC 7F0B647C 01C72821 */ addu $a1, $t6, $a3
|
|
/* 0EAFB0 7F0B6480 8FAF002C */ lw $t7, 0x2c($sp)
|
|
/* 0EAFB4 7F0B6484 AFA3001C */ sw $v1, 0x1c($sp)
|
|
/* 0EAFB8 7F0B6488 AFA70028 */ sw $a3, 0x28($sp)
|
|
/* 0EAFBC 7F0B648C 0FC2D827 */ jal sub_GAME_7F0B609C
|
|
/* 0EAFC0 7F0B6490 01E73023 */ subu $a2, $t7, $a3
|
|
/* 0EAFC4 7F0B6494 8FA3001C */ lw $v1, 0x1c($sp)
|
|
/* 0EAFC8 7F0B6498 04400002 */ bltz $v0, .L7F0B64A4
|
|
/* 0EAFCC 7F0B649C 8FA70028 */ lw $a3, 0x28($sp)
|
|
/* 0EAFD0 7F0B64A0 00E23821 */ addu $a3, $a3, $v0
|
|
.L7F0B64A4:
|
|
/* 0EAFD4 7F0B64A4 8C780018 */ lw $t8, 0x18($v1)
|
|
/* 0EAFD8 7F0B64A8 8FB90020 */ lw $t9, 0x20($sp)
|
|
/* 0EAFDC 7F0B64AC 8FA40030 */ lw $a0, 0x30($sp)
|
|
/* 0EAFE0 7F0B64B0 1300000B */ beqz $t8, .L7F0B64E0
|
|
/* 0EAFE4 7F0B64B4 03272821 */ addu $a1, $t9, $a3
|
|
/* 0EAFE8 7F0B64B8 8FA8002C */ lw $t0, 0x2c($sp)
|
|
/* 0EAFEC 7F0B64BC AFA3001C */ sw $v1, 0x1c($sp)
|
|
/* 0EAFF0 7F0B64C0 AFA70028 */ sw $a3, 0x28($sp)
|
|
/* 0EAFF4 7F0B64C4 0FC2D877 */ jal sub_GAME_7F0B61DC
|
|
/* 0EAFF8 7F0B64C8 01073023 */ subu $a2, $t0, $a3
|
|
/* 0EAFFC 7F0B64CC 8FA3001C */ lw $v1, 0x1c($sp)
|
|
/* 0EB000 7F0B64D0 18400004 */ blez $v0, .L7F0B64E4
|
|
/* 0EB004 7F0B64D4 8FA70028 */ lw $a3, 0x28($sp)
|
|
/* 0EB008 7F0B64D8 10000002 */ b .L7F0B64E4
|
|
/* 0EB00C 7F0B64DC 00E23821 */ addu $a3, $a3, $v0
|
|
.L7F0B64E0:
|
|
/* 0EB010 7F0B64E0 AC60000C */ sw $zero, 0xc($v1)
|
|
.L7F0B64E4:
|
|
/* 0EB014 7F0B64E4 8FAB002C */ lw $t3, 0x2c($sp)
|
|
/* 0EB018 7F0B64E8 24E20020 */ addiu $v0, $a3, 0x20
|
|
/* 0EB01C 7F0B64EC 2401FFF0 */ li $at, -16
|
|
/* 0EB020 7F0B64F0 00414824 */ and $t1, $v0, $at
|
|
/* 0EB024 7F0B64F4 240A0001 */ li $t2, 1
|
|
/* 0EB028 7F0B64F8 AC690028 */ sw $t1, 0x28($v1)
|
|
/* 0EB02C 7F0B64FC 11690007 */ beq $t3, $t1, .L7F0B651C
|
|
/* 0EB030 7F0B6500 A06A0002 */ sb $t2, 2($v1)
|
|
/* 0EB034 7F0B6504 8FA40020 */ lw $a0, 0x20($sp)
|
|
/* 0EB038 7F0B6508 01602825 */ move $a1, $t3
|
|
/* 0EB03C 7F0B650C 01203025 */ move $a2, $t1
|
|
/* 0EB040 7F0B6510 0C0028F7 */ jal memaRealloc
|
|
/* 0EB044 7F0B6514 AFA3001C */ sw $v1, 0x1c($sp)
|
|
/* 0EB048 7F0B6518 8FA3001C */ lw $v1, 0x1c($sp)
|
|
.L7F0B651C:
|
|
/* 0EB04C 7F0B651C 3C0C8008 */ lui $t4, %hi(g_FogSkyIsEnabled)
|
|
/* 0EB050 7F0B6520 8D8C25C0 */ lw $t4, %lo(g_FogSkyIsEnabled)($t4)
|
|
/* 0EB054 7F0B6524 24060006 */ li $a2, 6
|
|
/* 0EB058 7F0B6528 51800012 */ beql $t4, $zero, .L7F0B6574
|
|
/* 0EB05C 7F0B652C 8C640008 */ lw $a0, 8($v1)
|
|
/* 0EB060 7F0B6530 8C640008 */ lw $a0, 8($v1)
|
|
/* 0EB064 7F0B6534 8C6D0020 */ lw $t5, 0x20($v1)
|
|
/* 0EB068 7F0B6538 24060001 */ li $a2, 1
|
|
/* 0EB06C 7F0B653C AFA3001C */ sw $v1, 0x1c($sp)
|
|
/* 0EB070 7F0B6540 0FC2E990 */ jal bgLoadFromDynamicCCRMLUT
|
|
/* 0EB074 7F0B6544 01A42821 */ addu $a1, $t5, $a0
|
|
/* 0EB078 7F0B6548 8FA3001C */ lw $v1, 0x1c($sp)
|
|
/* 0EB07C 7F0B654C 8C64000C */ lw $a0, 0xc($v1)
|
|
/* 0EB080 7F0B6550 10800014 */ beqz $a0, .L7F0B65A4
|
|
/* 0EB084 7F0B6554 00000000 */ nop
|
|
/* 0EB088 7F0B6558 8C6E0024 */ lw $t6, 0x24($v1)
|
|
/* 0EB08C 7F0B655C 24060005 */ li $a2, 5
|
|
/* 0EB090 7F0B6560 0FC2E990 */ jal bgLoadFromDynamicCCRMLUT
|
|
/* 0EB094 7F0B6564 01C42821 */ addu $a1, $t6, $a0
|
|
/* 0EB098 7F0B6568 1000000E */ b .L7F0B65A4
|
|
/* 0EB09C 7F0B656C 00000000 */ nop
|
|
/* 0EB0A0 7F0B6570 8C640008 */ lw $a0, 8($v1)
|
|
.L7F0B6574:
|
|
/* 0EB0A4 7F0B6574 8C6F0020 */ lw $t7, 0x20($v1)
|
|
/* 0EB0A8 7F0B6578 AFA3001C */ sw $v1, 0x1c($sp)
|
|
/* 0EB0AC 7F0B657C 0FC2E990 */ jal bgLoadFromDynamicCCRMLUT
|
|
/* 0EB0B0 7F0B6580 01E42821 */ addu $a1, $t7, $a0
|
|
/* 0EB0B4 7F0B6584 8FA3001C */ lw $v1, 0x1c($sp)
|
|
/* 0EB0B8 7F0B6588 8C64000C */ lw $a0, 0xc($v1)
|
|
/* 0EB0BC 7F0B658C 10800005 */ beqz $a0, .L7F0B65A4
|
|
/* 0EB0C0 7F0B6590 00000000 */ nop
|
|
/* 0EB0C4 7F0B6594 8C780024 */ lw $t8, 0x24($v1)
|
|
/* 0EB0C8 7F0B6598 24060007 */ li $a2, 7
|
|
/* 0EB0CC 7F0B659C 0FC2E990 */ jal bgLoadFromDynamicCCRMLUT
|
|
/* 0EB0D0 7F0B65A0 03042821 */ addu $a1, $t8, $a0
|
|
.L7F0B65A4:
|
|
/* 0EB0D4 7F0B65A4 0FC2DA65 */ jal sub_GAME_7F0B6994
|
|
/* 0EB0D8 7F0B65A8 8FA40030 */ lw $a0, 0x30($sp)
|
|
/* 0EB0DC 7F0B65AC 0FC2D7B6 */ jal roomsHandleStateDebugging
|
|
/* 0EB0E0 7F0B65B0 00000000 */ nop
|
|
.L7F0B65B4:
|
|
/* 0EB0E4 7F0B65B4 8FBF0014 */ lw $ra, 0x14($sp)
|
|
.L7F0B65B8:
|
|
/* 0EB0E8 7F0B65B8 27BD0030 */ addiu $sp, $sp, 0x30
|
|
/* 0EB0EC 7F0B65BC 03E00008 */ jr $ra
|
|
/* 0EB0F0 7F0B65C0 00000000 */ nop
|
|
)
|
|
#endif
|
|
|
|
#if !defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B6368
|
|
/* 0E8094 7F0B56A4 3C0F8004 */ lui $t7, %hi(MaxNumRooms) # $t7, 0x8004
|
|
/* 0E8098 7F0B56A8 8DEFD7D4 */ lw $t7, %lo(MaxNumRooms)($t7)
|
|
/* 0E809C 7F0B56AC 27BDFFD0 */ addiu $sp, $sp, -0x30
|
|
/* 0E80A0 7F0B56B0 AFBF0014 */ sw $ra, 0x14($sp)
|
|
/* 0E80A4 7F0B56B4 008F082A */ slt $at, $a0, $t7
|
|
/* 0E80A8 7F0B56B8 AFA40030 */ sw $a0, 0x30($sp)
|
|
/* 0E80AC 7F0B56BC 1020008C */ beqz $at, .L7F0B58F0
|
|
/* 0E80B0 7F0B56C0 00003825 */ move $a3, $zero
|
|
/* 0E80B4 7F0B56C4 0004C880 */ sll $t9, $a0, 2
|
|
/* 0E80B8 7F0B56C8 0324C821 */ addu $t9, $t9, $a0
|
|
/* 0E80BC 7F0B56CC 3C088004 */ lui $t0, %hi(array_room_info) # $t0, 0x8004
|
|
/* 0E80C0 7F0B56D0 2508AC64 */ addiu $t0, %lo(array_room_info) # addiu $t0, $t0, -0x539c
|
|
/* 0E80C4 7F0B56D4 0019C900 */ sll $t9, $t9, 4
|
|
/* 0E80C8 7F0B56D8 03281821 */ addu $v1, $t9, $t0
|
|
/* 0E80CC 7F0B56DC 90690002 */ lbu $t1, 2($v1)
|
|
/* 0E80D0 7F0B56E0 55200084 */ bnezl $t1, .L7F0B58F4
|
|
/* 0E80D4 7F0B56E4 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* 0E80D8 7F0B56E8 8C620028 */ lw $v0, 0x28($v1)
|
|
/* 0E80DC 7F0B56EC 5840000D */ blezl $v0, .L7F0B5724
|
|
/* 0E80E0 7F0B56F0 AFA3001C */ sw $v1, 0x1c($sp)
|
|
/* 0E80E4 7F0B56F4 AFA2002C */ sw $v0, 0x2c($sp)
|
|
/* 0E80E8 7F0B56F8 AFA3001C */ sw $v1, 0x1c($sp)
|
|
/* 0E80EC 7F0B56FC 0FC24116 */ jal get_debug_joy2detailedit_flag
|
|
/* 0E80F0 7F0B5700 AFA00028 */ sw $zero, 0x28($sp)
|
|
/* 0E80F4 7F0B5704 8FA3001C */ lw $v1, 0x1c($sp)
|
|
/* 0E80F8 7F0B5708 1040000B */ beqz $v0, .L7F0B5738
|
|
/* 0E80FC 7F0B570C 8FA70028 */ lw $a3, 0x28($sp)
|
|
/* 0E8100 7F0B5710 8FAA002C */ lw $t2, 0x2c($sp)
|
|
/* 0E8104 7F0B5714 254B0400 */ addiu $t3, $t2, 0x400
|
|
/* 0E8108 7F0B5718 10000007 */ b .L7F0B5738
|
|
/* 0E810C 7F0B571C AFAB002C */ sw $t3, 0x2c($sp)
|
|
/* 0E8110 7F0B5720 AFA3001C */ sw $v1, 0x1c($sp)
|
|
.L7F0B5724:
|
|
/* 0E8114 7F0B5724 0C0025F4 */ jal memaGetLongestFree
|
|
/* 0E8118 7F0B5728 AFA70028 */ sw $a3, 0x28($sp)
|
|
/* 0E811C 7F0B572C 8FA3001C */ lw $v1, 0x1c($sp)
|
|
/* 0E8120 7F0B5730 8FA70028 */ lw $a3, 0x28($sp)
|
|
/* 0E8124 7F0B5734 AFA2002C */ sw $v0, 0x2c($sp)
|
|
.L7F0B5738:
|
|
/* 0E8128 7F0B5738 8FA4002C */ lw $a0, 0x2c($sp)
|
|
/* 0E812C 7F0B573C AFA3001C */ sw $v1, 0x1c($sp)
|
|
/* 0E8130 7F0B5740 0C0024A5 */ jal memaAlloc
|
|
/* 0E8134 7F0B5744 AFA70028 */ sw $a3, 0x28($sp)
|
|
/* 0E8138 7F0B5748 8FA3001C */ lw $v1, 0x1c($sp)
|
|
/* 0E813C 7F0B574C 8FA70028 */ lw $a3, 0x28($sp)
|
|
/* 0E8140 7F0B5750 10400067 */ beqz $v0, .L7F0B58F0
|
|
/* 0E8144 7F0B5754 AFA20020 */ sw $v0, 0x20($sp)
|
|
/* 0E8148 7F0B5758 8C6C0010 */ lw $t4, 0x10($v1)
|
|
/* 0E814C 7F0B575C 8FA40030 */ lw $a0, 0x30($sp)
|
|
/* 0E8150 7F0B5760 00402825 */ move $a1, $v0
|
|
/* 0E8154 7F0B5764 1180000E */ beqz $t4, .L7F0B57A0
|
|
/* 0E8158 7F0B5768 8FA6002C */ lw $a2, 0x2c($sp)
|
|
/* 0E815C 7F0B576C AFA3001C */ sw $v1, 0x1c($sp)
|
|
/* 0E8160 7F0B5770 0FC2D4BA */ jal sub_GAME_7F0B5FAC
|
|
/* 0E8164 7F0B5774 AFA70028 */ sw $a3, 0x28($sp)
|
|
/* 0E8168 7F0B5778 8FA3001C */ lw $v1, 0x1c($sp)
|
|
/* 0E816C 7F0B577C 0440000A */ bltz $v0, .L7F0B57A8
|
|
/* 0E8170 7F0B5780 8FA70028 */ lw $a3, 0x28($sp)
|
|
/* 0E8174 7F0B5784 8FA40030 */ lw $a0, 0x30($sp)
|
|
/* 0E8178 7F0B5788 AFA3001C */ sw $v1, 0x1c($sp)
|
|
/* 0E817C 7F0B578C 0FC2EB5E */ jal redarken_lights_in_room
|
|
/* 0E8180 7F0B5790 AFA20028 */ sw $v0, 0x28($sp)
|
|
/* 0E8184 7F0B5794 8FA3001C */ lw $v1, 0x1c($sp)
|
|
/* 0E8188 7F0B5798 10000003 */ b .L7F0B57A8
|
|
/* 0E818C 7F0B579C 8FA70028 */ lw $a3, 0x28($sp)
|
|
.L7F0B57A0:
|
|
/* 0E8190 7F0B57A0 AC600004 */ sw $zero, 4($v1)
|
|
/* 0E8194 7F0B57A4 AC60001C */ sw $zero, 0x1c($v1)
|
|
.L7F0B57A8:
|
|
/* 0E8198 7F0B57A8 8C6D0014 */ lw $t5, 0x14($v1)
|
|
/* 0E819C 7F0B57AC 8FAE0020 */ lw $t6, 0x20($sp)
|
|
/* 0E81A0 7F0B57B0 8FA40030 */ lw $a0, 0x30($sp)
|
|
/* 0E81A4 7F0B57B4 11A0000A */ beqz $t5, .L7F0B57E0
|
|
/* 0E81A8 7F0B57B8 01C72821 */ addu $a1, $t6, $a3
|
|
/* 0E81AC 7F0B57BC 8FAF002C */ lw $t7, 0x2c($sp)
|
|
/* 0E81B0 7F0B57C0 AFA3001C */ sw $v1, 0x1c($sp)
|
|
/* 0E81B4 7F0B57C4 AFA70028 */ sw $a3, 0x28($sp)
|
|
/* 0E81B8 7F0B57C8 0FC2D4F6 */ jal sub_GAME_7F0B609C
|
|
/* 0E81BC 7F0B57CC 01E73023 */ subu $a2, $t7, $a3
|
|
/* 0E81C0 7F0B57D0 8FA3001C */ lw $v1, 0x1c($sp)
|
|
/* 0E81C4 7F0B57D4 04400002 */ bltz $v0, .L7F0B57E0
|
|
/* 0E81C8 7F0B57D8 8FA70028 */ lw $a3, 0x28($sp)
|
|
/* 0E81CC 7F0B57DC 00E23821 */ addu $a3, $a3, $v0
|
|
.L7F0B57E0:
|
|
/* 0E81D0 7F0B57E0 8C780018 */ lw $t8, 0x18($v1)
|
|
/* 0E81D4 7F0B57E4 8FB90020 */ lw $t9, 0x20($sp)
|
|
/* 0E81D8 7F0B57E8 8FA40030 */ lw $a0, 0x30($sp)
|
|
/* 0E81DC 7F0B57EC 1300000B */ beqz $t8, .Leu7F0B581C
|
|
/* 0E81E0 7F0B57F0 03272821 */ addu $a1, $t9, $a3
|
|
/* 0E81E4 7F0B57F4 8FA8002C */ lw $t0, 0x2c($sp)
|
|
/* 0E81E8 7F0B57F8 AFA3001C */ sw $v1, 0x1c($sp)
|
|
/* 0E81EC 7F0B57FC AFA70028 */ sw $a3, 0x28($sp)
|
|
/* 0E81F0 7F0B5800 0FC2D546 */ jal sub_GAME_7F0B61DC
|
|
/* 0E81F4 7F0B5804 01073023 */ subu $a2, $t0, $a3
|
|
/* 0E81F8 7F0B5808 8FA3001C */ lw $v1, 0x1c($sp)
|
|
/* 0E81FC 7F0B580C 18400004 */ blez $v0, .L7F0B5820
|
|
/* 0E8200 7F0B5810 8FA70028 */ lw $a3, 0x28($sp)
|
|
/* 0E8204 7F0B5814 10000002 */ b .L7F0B5820
|
|
/* 0E8208 7F0B5818 00E23821 */ addu $a3, $a3, $v0
|
|
.Leu7F0B581C:
|
|
/* 0E820C 7F0B581C AC60000C */ sw $zero, 0xc($v1)
|
|
.L7F0B5820:
|
|
/* 0E8210 7F0B5820 8FAB002C */ lw $t3, 0x2c($sp)
|
|
/* 0E8214 7F0B5824 24E20020 */ addiu $v0, $a3, 0x20
|
|
/* 0E8218 7F0B5828 2401FFF0 */ li $at, -16
|
|
/* 0E821C 7F0B582C 00414824 */ and $t1, $v0, $at
|
|
/* 0E8220 7F0B5830 240A0001 */ li $t2, 1
|
|
/* 0E8224 7F0B5834 AC690028 */ sw $t1, 0x28($v1)
|
|
/* 0E8228 7F0B5838 11690007 */ beq $t3, $t1, .L7F0B5858
|
|
/* 0E822C 7F0B583C A06A0002 */ sb $t2, 2($v1)
|
|
/* 0E8230 7F0B5840 8FA40020 */ lw $a0, 0x20($sp)
|
|
/* 0E8234 7F0B5844 01602825 */ move $a1, $t3
|
|
/* 0E8238 7F0B5848 01203025 */ move $a2, $t1
|
|
/* 0E823C 7F0B584C 0C00260F */ jal memaRealloc
|
|
/* 0E8240 7F0B5850 AFA3001C */ sw $v1, 0x1c($sp)
|
|
/* 0E8244 7F0B5854 8FA3001C */ lw $v1, 0x1c($sp)
|
|
.L7F0B5858:
|
|
/* 0E8248 7F0B5858 3C0C8007 */ lui $t4, %hi(g_FogSkyIsEnabled) # $t4, 0x8007
|
|
/* 0E824C 7F0B585C 8D8CCF60 */ lw $t4, %lo(g_FogSkyIsEnabled)($t4)
|
|
/* 0E8250 7F0B5860 24060006 */ li $a2, 6
|
|
/* 0E8254 7F0B5864 51800012 */ beql $t4, $zero, .L7F0B58B0
|
|
/* 0E8258 7F0B5868 8C640008 */ lw $a0, 8($v1)
|
|
/* 0E825C 7F0B586C 8C640008 */ lw $a0, 8($v1)
|
|
/* 0E8260 7F0B5870 8C6D0020 */ lw $t5, 0x20($v1)
|
|
/* 0E8264 7F0B5874 24060001 */ li $a2, 1
|
|
/* 0E8268 7F0B5878 AFA3001C */ sw $v1, 0x1c($sp)
|
|
/* 0E826C 7F0B587C 0FC2E638 */ jal bgLoadFromDynamicCCRMLUT
|
|
/* 0E8270 7F0B5880 01A42821 */ addu $a1, $t5, $a0
|
|
/* 0E8274 7F0B5884 8FA3001C */ lw $v1, 0x1c($sp)
|
|
/* 0E8278 7F0B5888 8C64000C */ lw $a0, 0xc($v1)
|
|
/* 0E827C 7F0B588C 10800014 */ beqz $a0, .L7F0B58E0
|
|
/* 0E8280 7F0B5890 00000000 */ nop
|
|
/* 0E8284 7F0B5894 8C6E0024 */ lw $t6, 0x24($v1)
|
|
/* 0E8288 7F0B5898 24060005 */ li $a2, 5
|
|
/* 0E828C 7F0B589C 0FC2E638 */ jal bgLoadFromDynamicCCRMLUT
|
|
/* 0E8290 7F0B58A0 01C42821 */ addu $a1, $t6, $a0
|
|
/* 0E8294 7F0B58A4 1000000E */ b .L7F0B58E0
|
|
/* 0E8298 7F0B58A8 00000000 */ nop
|
|
/* 0E829C 7F0B58AC 8C640008 */ lw $a0, 8($v1)
|
|
.L7F0B58B0:
|
|
/* 0E82A0 7F0B58B0 8C6F0020 */ lw $t7, 0x20($v1)
|
|
/* 0E82A4 7F0B58B4 AFA3001C */ sw $v1, 0x1c($sp)
|
|
/* 0E82A8 7F0B58B8 0FC2E638 */ jal bgLoadFromDynamicCCRMLUT
|
|
/* 0E82AC 7F0B58BC 01E42821 */ addu $a1, $t7, $a0
|
|
/* 0E82B0 7F0B58C0 8FA3001C */ lw $v1, 0x1c($sp)
|
|
/* 0E82B4 7F0B58C4 8C64000C */ lw $a0, 0xc($v1)
|
|
/* 0E82B8 7F0B58C8 10800005 */ beqz $a0, .L7F0B58E0
|
|
/* 0E82BC 7F0B58CC 00000000 */ nop
|
|
/* 0E82C0 7F0B58D0 8C780024 */ lw $t8, 0x24($v1)
|
|
/* 0E82C4 7F0B58D4 24060007 */ li $a2, 7
|
|
/* 0E82C8 7F0B58D8 0FC2E638 */ jal bgLoadFromDynamicCCRMLUT
|
|
/* 0E82CC 7F0B58DC 03042821 */ addu $a1, $t8, $a0
|
|
.L7F0B58E0:
|
|
/* 0E82D0 7F0B58E0 0FC2D734 */ jal sub_GAME_7F0B6994
|
|
/* 0E82D4 7F0B58E4 8FA40030 */ lw $a0, 0x30($sp)
|
|
/* 0E82D8 7F0B58E8 0FC2D485 */ jal roomsHandleStateDebugging
|
|
/* 0E82DC 7F0B58EC 00000000 */ nop
|
|
.L7F0B58F0:
|
|
/* 0E82E0 7F0B58F0 8FBF0014 */ lw $ra, 0x14($sp)
|
|
.L7F0B58F4:
|
|
/* 0E82E4 7F0B58F4 27BD0030 */ addiu $sp, $sp, 0x30
|
|
/* 0E82E8 7F0B58F8 03E00008 */ jr $ra
|
|
/* 0E82EC 7F0B58FC 00000000 */ nop
|
|
)
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
void delete_room_data(s32 roomID)
|
|
{
|
|
|
|
if (array_room_info[roomID].ptr_unique_collision_points)
|
|
{
|
|
memaFree(array_room_info[roomID].ptr_unique_collision_points, (((s16)array_room_info[roomID].bitflags3 * 0x1C) + 0xF) & ~0xF);
|
|
array_room_info[roomID].ptr_unique_collision_points = 0;
|
|
}
|
|
|
|
if ( 0 < array_room_info[roomID].cur_room_totalsize)
|
|
{
|
|
if (array_room_info[roomID].ptr_point_index)
|
|
{
|
|
memaFree(array_room_info[roomID].ptr_point_index, array_room_info[roomID].cur_room_totalsize);
|
|
}
|
|
else
|
|
{
|
|
memaFree(array_room_info[roomID].ptr_expanded_mapping_info, array_room_info[roomID].cur_room_totalsize);
|
|
}
|
|
array_room_info[roomID].ptr_point_index = 0;
|
|
array_room_info[roomID].ptr_expanded_mapping_info = 0;
|
|
array_room_info[roomID].ptr_secondary_expanded_mapping_info = 0;
|
|
}
|
|
array_room_info[roomID].model_bin_loaded = 0;
|
|
roomsHandleStateDebugging();
|
|
}
|
|
#else
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel delete_room_data
|
|
/* 0EB0F4 7F0B65C4 00047080 */ sll $t6, $a0, 2
|
|
/* 0EB0F8 7F0B65C8 27BDFFE0 */ addiu $sp, $sp, -0x20
|
|
/* 0EB0FC 7F0B65CC 01C47021 */ addu $t6, $t6, $a0
|
|
/* 0EB100 7F0B65D0 3C0F8004 */ lui $t7, %hi(array_room_info)
|
|
/* 0EB104 7F0B65D4 AFB00018 */ sw $s0, 0x18($sp)
|
|
/* 0EB108 7F0B65D8 25EF1414 */ addiu $t7, %lo(array_room_info) # addiu $t7, $t7, 0x1414
|
|
/* 0EB10C 7F0B65DC 000E7100 */ sll $t6, $t6, 4
|
|
/* 0EB110 7F0B65E0 01CF8021 */ addu $s0, $t6, $t7
|
|
/* 0EB114 7F0B65E4 8E06002C */ lw $a2, 0x2c($s0)
|
|
/* 0EB118 7F0B65E8 AFBF001C */ sw $ra, 0x1c($sp)
|
|
/* 0EB11C 7F0B65EC 50C0000D */ beql $a2, $zero, .L7F0B6624
|
|
/* 0EB120 7F0B65F0 8E020028 */ lw $v0, 0x28($s0)
|
|
/* 0EB124 7F0B65F4 86050030 */ lh $a1, 0x30($s0)
|
|
/* 0EB128 7F0B65F8 2401FFF0 */ li $at, -16
|
|
/* 0EB12C 7F0B65FC 00C02025 */ move $a0, $a2
|
|
/* 0EB130 7F0B6600 0005C0C0 */ sll $t8, $a1, 3
|
|
/* 0EB134 7F0B6604 0305C023 */ subu $t8, $t8, $a1
|
|
/* 0EB138 7F0B6608 0018C080 */ sll $t8, $t8, 2
|
|
/* 0EB13C 7F0B660C 2705000F */ addiu $a1, $t8, 0xf
|
|
/* 0EB140 7F0B6610 00A1C824 */ and $t9, $a1, $at
|
|
/* 0EB144 7F0B6614 0C002808 */ jal memaFree
|
|
/* 0EB148 7F0B6618 03202825 */ move $a1, $t9
|
|
/* 0EB14C 7F0B661C AE00002C */ sw $zero, 0x2c($s0)
|
|
/* 0EB150 7F0B6620 8E020028 */ lw $v0, 0x28($s0)
|
|
.L7F0B6624:
|
|
/* 0EB154 7F0B6624 1840000E */ blez $v0, .L7F0B6660
|
|
/* 0EB158 7F0B6628 00000000 */ nop
|
|
/* 0EB15C 7F0B662C 8E040004 */ lw $a0, 4($s0)
|
|
/* 0EB160 7F0B6630 00402825 */ move $a1, $v0
|
|
/* 0EB164 7F0B6634 10800005 */ beqz $a0, .L7F0B664C
|
|
/* 0EB168 7F0B6638 00000000 */ nop
|
|
/* 0EB16C 7F0B663C 0C002808 */ jal memaFree
|
|
/* 0EB170 7F0B6640 00402825 */ move $a1, $v0
|
|
/* 0EB174 7F0B6644 10000004 */ b .L7F0B6658
|
|
/* 0EB178 7F0B6648 AE000004 */ sw $zero, 4($s0)
|
|
.L7F0B664C:
|
|
/* 0EB17C 7F0B664C 0C002808 */ jal memaFree
|
|
/* 0EB180 7F0B6650 8E040008 */ lw $a0, 8($s0)
|
|
/* 0EB184 7F0B6654 AE000004 */ sw $zero, 4($s0)
|
|
.L7F0B6658:
|
|
/* 0EB188 7F0B6658 AE000008 */ sw $zero, 8($s0)
|
|
/* 0EB18C 7F0B665C AE00000C */ sw $zero, 0xc($s0)
|
|
.L7F0B6660:
|
|
/* 0EB190 7F0B6660 0FC2D7B6 */ jal roomsHandleStateDebugging
|
|
/* 0EB194 7F0B6664 A2000002 */ sb $zero, 2($s0)
|
|
/* 0EB198 7F0B6668 8FBF001C */ lw $ra, 0x1c($sp)
|
|
/* 0EB19C 7F0B666C 8FB00018 */ lw $s0, 0x18($sp)
|
|
/* 0EB1A0 7F0B6670 27BD0020 */ addiu $sp, $sp, 0x20
|
|
/* 0EB1A4 7F0B6674 03E00008 */ jr $ra
|
|
/* 0EB1A8 7F0B6678 00000000 */ nop
|
|
)
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void unload_rooms(void)
|
|
{
|
|
s32 i;
|
|
|
|
for(i = 1; i < MaxNumRooms; i++)
|
|
{
|
|
if (array_room_info[i].model_bin_loaded)
|
|
{
|
|
delete_room_data(i);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
void sub_GAME_7F0B66E8(void)
|
|
{
|
|
s32 i;
|
|
|
|
for(i = 1; i < MaxNumRooms; i++)
|
|
{
|
|
if (array_room_info[i].field_35 == 0)
|
|
{
|
|
if (array_room_info[i].model_bin_loaded == 4)
|
|
{
|
|
delete_room_data(i);
|
|
}
|
|
else if (array_room_info[i].model_bin_loaded != 0)
|
|
{
|
|
array_room_info[i].model_bin_loaded = array_room_info[i].model_bin_loaded + 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Address 0x7F0B677C.
|
|
*/
|
|
Gfx *sub_GAME_7F0B677C(Gfx *arg0, s32 room_index)
|
|
{
|
|
if (room_index >= MaxNumRooms)
|
|
{
|
|
return arg0;
|
|
}
|
|
|
|
if ((D_8004485C != 0) || (D_80044858 == (room_index % 10)))
|
|
{
|
|
if (array_room_info[room_index].model_bin_loaded == 0)
|
|
{
|
|
if (D_800442F8 > 0)
|
|
{
|
|
D_800442F8--;
|
|
sub_GAME_7F0B6368(room_index);
|
|
}
|
|
}
|
|
|
|
if (array_room_info[room_index].model_bin_loaded == 0)
|
|
{
|
|
return arg0;
|
|
}
|
|
else
|
|
{
|
|
arg0 = sub_GAME_7F0BC9C4(arg0, room_index);
|
|
|
|
gSPSegment(arg0++, SPSEGMENT_BG_VTX, OS_K0_TO_PHYSICAL(array_room_info[room_index].ptr_point_index));
|
|
gSPDisplayList(arg0++, OS_K0_TO_PHYSICAL(array_room_info[room_index].ptr_expanded_mapping_info));
|
|
|
|
array_room_info[room_index].model_bin_loaded = 1;
|
|
}
|
|
}
|
|
|
|
return arg0;
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* Address 0x7F0B6898.
|
|
*/
|
|
Gfx *sub_GAME_7F0B6898(Gfx *arg0, s32 room_index)
|
|
{
|
|
if (room_index >= MaxNumRooms)
|
|
{
|
|
return arg0;
|
|
}
|
|
|
|
if (array_room_info[room_index].ptr_secondary_expanded_mapping_info == 0)
|
|
{
|
|
return arg0;
|
|
}
|
|
else if ((D_8004485C != 0) || (D_80044858 == (room_index % 10)))
|
|
{
|
|
if (array_room_info[room_index].model_bin_loaded != 0)
|
|
{
|
|
arg0 = sub_GAME_7F0BC9C4(arg0, room_index);
|
|
|
|
gSPSegment(arg0++, SPSEGMENT_BG_VTX, OS_K0_TO_PHYSICAL(array_room_info[room_index].ptr_point_index));
|
|
gSPDisplayList(arg0++, OS_K0_TO_PHYSICAL(array_room_info[room_index].ptr_secondary_expanded_mapping_info));
|
|
|
|
array_room_info[room_index].model_bin_loaded = 1;
|
|
}
|
|
else
|
|
{
|
|
sub_GAME_7F0B6368(room_index);
|
|
}
|
|
}
|
|
|
|
return arg0;
|
|
}
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
void sub_GAME_7F0B6994(s32 arg0) {
|
|
s32 sp24;
|
|
s32 sp3C;
|
|
s32 sp44;
|
|
void *temp_a1;
|
|
s32 temp_v1_8;
|
|
s32 temp_t8;
|
|
? temp_ret;
|
|
void *temp_a0;
|
|
s32 temp_t2;
|
|
s32 temp_a2;
|
|
void *temp_v1;
|
|
s32 temp_a3;
|
|
s32 temp_v1_2;
|
|
s32 temp_a2_2;
|
|
s32 temp_v1_3;
|
|
s32 temp_v1_4;
|
|
s32 temp_v1_5;
|
|
s32 temp_v1_6;
|
|
s32 temp_v1_7;
|
|
s32 temp_v1_9;
|
|
s32 phi_v1;
|
|
void *phi_t3;
|
|
s32 phi_t5;
|
|
s32 phi_v1_2;
|
|
s16 phi_ra;
|
|
s32 phi_t5_2;
|
|
void *phi_v1_3;
|
|
s32 phi_a2;
|
|
void *phi_t3_2;
|
|
void *phi_a1;
|
|
s32 phi_a2_2;
|
|
s32 phi_t5_3;
|
|
s32 phi_t5_4;
|
|
|
|
// Node 0
|
|
temp_a1 = ((arg0 * 0x50) + &array_room_info);
|
|
if (temp_a1->unk2C == 0)
|
|
{
|
|
// Node 1
|
|
sp44 = (s32) temp_a1->unk4;
|
|
phi_t5 = 0;
|
|
if (-0x48 != *temp_a1->unk8)
|
|
{
|
|
// Node 2
|
|
phi_v1 = *temp_a1->unk8;
|
|
phi_t3 = temp_a1->unk8;
|
|
phi_t5_4 = 0;
|
|
loop_3:
|
|
// Node 3
|
|
phi_t5_3 = phi_t5_4;
|
|
if (4 == phi_v1)
|
|
{
|
|
// Node 4
|
|
phi_t5_3 = (phi_t5_4 + 1);
|
|
}
|
|
// Node 5
|
|
temp_v1_8 = phi_t3->unk8;
|
|
phi_v1 = temp_v1_8;
|
|
phi_t3 = (phi_t3 + 8);
|
|
phi_t5 = phi_t5_3;
|
|
phi_t5_4 = phi_t5_3;
|
|
if (-0x48 != temp_v1_8)
|
|
{
|
|
goto loop_3;
|
|
}
|
|
}
|
|
// Node 6
|
|
temp_t8 = (((((phi_t5 * 8) - phi_t5) * 4) + 0xf) & -0x10);
|
|
sp24 = temp_t8;
|
|
sp3C = (s32) phi_t5;
|
|
temp_ret = memaAlloc(temp_t8, temp_a1, temp_a1->unk8);
|
|
if (temp_ret != 0)
|
|
{
|
|
// Node 7
|
|
sp28->unk2C = temp_ret;
|
|
sp28->unk30 = (s16) phi_t5;
|
|
if (-0x48 != *sp48)
|
|
{
|
|
// Node 8
|
|
phi_v1_2 = *sp48;
|
|
phi_ra = (u16)0;
|
|
phi_t5_2 = 0;
|
|
phi_t3_2 = sp48;
|
|
loop_9:
|
|
// Node 9
|
|
phi_t5_2 = phi_t5_2;
|
|
if (4 == phi_v1_2)
|
|
{
|
|
// Node 10
|
|
temp_a0 = (temp_ret + (((phi_t5_2 * 8) - phi_t5_2) * 4));
|
|
*temp_a0 = (s16) phi_ra;
|
|
temp_t2 = (arg0 * 0x18);
|
|
phi_v1_3 = (temp_ret + (((phi_t5_2 * 8) - phi_t5_2) * 4));
|
|
phi_a2 = 0;
|
|
loop_11:
|
|
// Node 11
|
|
temp_a2 = (phi_a2 + 1);
|
|
temp_v1 = (phi_v1_3 + 4);
|
|
*temp_v1 = 0x7fff;
|
|
temp_v1->unkC = -0x8000;
|
|
phi_v1_3 = temp_v1;
|
|
phi_a2 = temp_a2;
|
|
if (temp_a2 < 3)
|
|
{
|
|
goto loop_11;
|
|
}
|
|
// Node 12
|
|
temp_a3 = ((((u32) phi_t3_2->unk1 >> 4) & 0xf) + 1);
|
|
if (temp_a3 > 0)
|
|
{
|
|
// Node 13
|
|
phi_a1 = ((phi_t3_2->unk4 & 0xffffff) + sp44);
|
|
phi_a2_2 = 0;
|
|
loop_14:
|
|
// Node 14
|
|
temp_v1_2 = *phi_a1;
|
|
temp_a2_2 = (phi_a2_2 + 1);
|
|
if (temp_v1_2 < temp_a0->unk4)
|
|
{
|
|
// Node 15
|
|
temp_a0->unk4 = temp_v1_2;
|
|
}
|
|
// Node 16
|
|
temp_v1_3 = phi_a1->unk2;
|
|
if (temp_v1_3 < temp_a0->unk8)
|
|
{
|
|
// Node 17
|
|
temp_a0->unk8 = temp_v1_3;
|
|
}
|
|
// Node 18
|
|
temp_v1_4 = phi_a1->unk4;
|
|
if (temp_v1_4 < temp_a0->unkC)
|
|
{
|
|
// Node 19
|
|
temp_a0->unkC = temp_v1_4;
|
|
}
|
|
// Node 20
|
|
temp_v1_5 = *phi_a1;
|
|
if (temp_a0->unk10 < temp_v1_5)
|
|
{
|
|
// Node 21
|
|
temp_a0->unk10 = temp_v1_5;
|
|
}
|
|
// Node 22
|
|
temp_v1_6 = phi_a1->unk2;
|
|
if (temp_a0->unk14 < temp_v1_6)
|
|
{
|
|
// Node 23
|
|
temp_a0->unk14 = temp_v1_6;
|
|
}
|
|
// Node 24
|
|
temp_v1_7 = phi_a1->unk4;
|
|
if (temp_a0->unk18 < temp_v1_7)
|
|
{
|
|
// Node 25
|
|
temp_a0->unk18 = temp_v1_7;
|
|
}
|
|
// Node 26
|
|
phi_a1 = (phi_a1 + 0x10);
|
|
phi_a2_2 = temp_a2_2;
|
|
if (temp_a2_2 != temp_a3)
|
|
{
|
|
goto loop_14;
|
|
}
|
|
}
|
|
// Node 27
|
|
if (temp_a0->unk4 == temp_a0->unk10)
|
|
{
|
|
// Node 28
|
|
temp_a0->unk10 = (s32) (temp_a0->unk10 + 1);
|
|
}
|
|
// Node 29
|
|
if (temp_a0->unk8 == temp_a0->unk14)
|
|
{
|
|
// Node 30
|
|
temp_a0->unk14 = (s32) (temp_a0->unk14 + 1);
|
|
}
|
|
// Node 31
|
|
if (temp_a0->unkC == temp_a0->unk18)
|
|
{
|
|
// Node 32
|
|
temp_a0->unk18 = (s32) (temp_a0->unk18 + 1);
|
|
}
|
|
// Node 33
|
|
temp_a0->unk4 = (s32) (temp_a0->unk4 + (s32) (ptr_bgdata_room_fileposition_list + temp_t2)->unkC);
|
|
temp_a0->unk8 = (s32) (temp_a0->unk8 + (s32) (ptr_bgdata_room_fileposition_list + temp_t2)->unk10);
|
|
temp_a0->unkC = (s32) (temp_a0->unkC + (s32) (ptr_bgdata_room_fileposition_list + temp_t2)->unk14);
|
|
temp_a0->unk10 = (s32) (temp_a0->unk10 + (s32) (ptr_bgdata_room_fileposition_list + temp_t2)->unkC);
|
|
temp_a0->unk14 = (s32) (temp_a0->unk14 + (s32) (ptr_bgdata_room_fileposition_list + temp_t2)->unk10);
|
|
temp_a0->unk18 = (s32) (temp_a0->unk18 + (s32) (ptr_bgdata_room_fileposition_list + temp_t2)->unk14);
|
|
phi_t5_2 = (phi_t5_2 + 1);
|
|
}
|
|
// Node 34
|
|
temp_v1_9 = phi_t3_2->unk8;
|
|
phi_v1_2 = temp_v1_9;
|
|
phi_ra = (phi_ra + 1);
|
|
phi_t3_2 = (phi_t3_2 + 8);
|
|
if (-0x48 != temp_v1_9)
|
|
{
|
|
goto loop_9;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// Node 35
|
|
return;
|
|
}
|
|
#else
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B6994
|
|
/* 0EB4C4 7F0B6994 00047880 */ sll $t7, $a0, 2
|
|
/* 0EB4C8 7F0B6998 01E47821 */ addu $t7, $t7, $a0
|
|
/* 0EB4CC 7F0B699C 3C188004 */ lui $t8, %hi(array_room_info)
|
|
/* 0EB4D0 7F0B69A0 27181414 */ addiu $t8, %lo(array_room_info) # addiu $t8, $t8, 0x1414
|
|
/* 0EB4D4 7F0B69A4 000F7900 */ sll $t7, $t7, 4
|
|
/* 0EB4D8 7F0B69A8 01F82821 */ addu $a1, $t7, $t8
|
|
/* 0EB4DC 7F0B69AC 8CB9002C */ lw $t9, 0x2c($a1)
|
|
/* 0EB4E0 7F0B69B0 27BDFFB0 */ addiu $sp, $sp, -0x50
|
|
/* 0EB4E4 7F0B69B4 AFBF001C */ sw $ra, 0x1c($sp)
|
|
/* 0EB4E8 7F0B69B8 AFB10018 */ sw $s1, 0x18($sp)
|
|
/* 0EB4EC 7F0B69BC AFB00014 */ sw $s0, 0x14($sp)
|
|
/* 0EB4F0 7F0B69C0 172000C5 */ bnez $t9, .L7F0B6CD8
|
|
/* 0EB4F4 7F0B69C4 AFA40050 */ sw $a0, 0x50($sp)
|
|
/* 0EB4F8 7F0B69C8 8CAE0004 */ lw $t6, 4($a1)
|
|
/* 0EB4FC 7F0B69CC 8CA60008 */ lw $a2, 8($a1)
|
|
/* 0EB500 7F0B69D0 2410FFB8 */ li $s0, -72
|
|
/* 0EB504 7F0B69D4 AFAE0044 */ sw $t6, 0x44($sp)
|
|
/* 0EB508 7F0B69D8 80CF0000 */ lb $t7, ($a2)
|
|
/* 0EB50C 7F0B69DC 00006825 */ move $t5, $zero
|
|
/* 0EB510 7F0B69E0 2401FFF0 */ li $at, -16
|
|
/* 0EB514 7F0B69E4 120F000A */ beq $s0, $t7, .L7F0B6A10
|
|
/* 0EB518 7F0B69E8 00C05825 */ move $t3, $a2
|
|
/* 0EB51C 7F0B69EC 80C30000 */ lb $v1, ($a2)
|
|
/* 0EB520 7F0B69F0 24110004 */ li $s1, 4
|
|
.L7F0B69F4:
|
|
/* 0EB524 7F0B69F4 56230003 */ bnel $s1, $v1, .L7F0B6A04
|
|
/* 0EB528 7F0B69F8 81630008 */ lb $v1, 8($t3)
|
|
/* 0EB52C 7F0B69FC 25AD0001 */ addiu $t5, $t5, 1
|
|
/* 0EB530 7F0B6A00 81630008 */ lb $v1, 8($t3)
|
|
.L7F0B6A04:
|
|
/* 0EB534 7F0B6A04 256B0008 */ addiu $t3, $t3, 8
|
|
/* 0EB538 7F0B6A08 1603FFFA */ bne $s0, $v1, .L7F0B69F4
|
|
/* 0EB53C 7F0B6A0C 00000000 */ nop
|
|
.L7F0B6A10:
|
|
/* 0EB540 7F0B6A10 000D20C0 */ sll $a0, $t5, 3
|
|
/* 0EB544 7F0B6A14 008D2023 */ subu $a0, $a0, $t5
|
|
/* 0EB548 7F0B6A18 00042080 */ sll $a0, $a0, 2
|
|
/* 0EB54C 7F0B6A1C 2484000F */ addiu $a0, $a0, 0xf
|
|
/* 0EB550 7F0B6A20 0081C024 */ and $t8, $a0, $at
|
|
/* 0EB554 7F0B6A24 24110004 */ li $s1, 4
|
|
/* 0EB558 7F0B6A28 03002025 */ move $a0, $t8
|
|
/* 0EB55C 7F0B6A2C AFB80024 */ sw $t8, 0x24($sp)
|
|
/* 0EB560 7F0B6A30 AFA50028 */ sw $a1, 0x28($sp)
|
|
/* 0EB564 7F0B6A34 AFA60048 */ sw $a2, 0x48($sp)
|
|
/* 0EB568 7F0B6A38 0C00278D */ jal memaAlloc
|
|
/* 0EB56C 7F0B6A3C AFAD003C */ sw $t5, 0x3c($sp)
|
|
/* 0EB570 7F0B6A40 8FA50028 */ lw $a1, 0x28($sp)
|
|
/* 0EB574 7F0B6A44 8FA60048 */ lw $a2, 0x48($sp)
|
|
/* 0EB578 7F0B6A48 104000A3 */ beqz $v0, .L7F0B6CD8
|
|
/* 0EB57C 7F0B6A4C 8FAD003C */ lw $t5, 0x3c($sp)
|
|
/* 0EB580 7F0B6A50 ACA2002C */ sw $v0, 0x2c($a1)
|
|
/* 0EB584 7F0B6A54 A4AD0030 */ sh $t5, 0x30($a1)
|
|
/* 0EB588 7F0B6A58 80D90000 */ lb $t9, ($a2)
|
|
/* 0EB58C 7F0B6A5C 00006825 */ move $t5, $zero
|
|
/* 0EB590 7F0B6A60 0000F825 */ move $ra, $zero
|
|
/* 0EB594 7F0B6A64 1219009C */ beq $s0, $t9, .L7F0B6CD8
|
|
/* 0EB598 7F0B6A68 00C05825 */ move $t3, $a2
|
|
/* 0EB59C 7F0B6A6C 3C0C8008 */ lui $t4, %hi(ptr_bgdata_room_fileposition_list)
|
|
/* 0EB5A0 7F0B6A70 258CFF8C */ addiu $t4, %lo(ptr_bgdata_room_fileposition_list) # addiu $t4, $t4, -0x74
|
|
/* 0EB5A4 7F0B6A74 80C30000 */ lb $v1, ($a2)
|
|
/* 0EB5A8 7F0B6A78 24098000 */ li $t1, -32768
|
|
/* 0EB5AC 7F0B6A7C 24087FFF */ li $t0, 32767
|
|
.L7F0B6A80:
|
|
/* 0EB5B0 7F0B6A80 16230090 */ bne $s1, $v1, .L7F0B6CC4
|
|
/* 0EB5B4 7F0B6A84 000D70C0 */ sll $t6, $t5, 3
|
|
/* 0EB5B8 7F0B6A88 01CD7023 */ subu $t6, $t6, $t5
|
|
/* 0EB5BC 7F0B6A8C 000E7080 */ sll $t6, $t6, 2
|
|
/* 0EB5C0 7F0B6A90 004E2021 */ addu $a0, $v0, $t6
|
|
/* 0EB5C4 7F0B6A94 A49F0000 */ sh $ra, ($a0)
|
|
/* 0EB5C8 7F0B6A98 8FAA0050 */ lw $t2, 0x50($sp)
|
|
/* 0EB5CC 7F0B6A9C 000DC0C0 */ sll $t8, $t5, 3
|
|
/* 0EB5D0 7F0B6AA0 030DC023 */ subu $t8, $t8, $t5
|
|
/* 0EB5D4 7F0B6AA4 000A7880 */ sll $t7, $t2, 2
|
|
/* 0EB5D8 7F0B6AA8 0018C080 */ sll $t8, $t8, 2
|
|
/* 0EB5DC 7F0B6AAC 01EA7823 */ subu $t7, $t7, $t2
|
|
/* 0EB5E0 7F0B6AB0 000F50C0 */ sll $t2, $t7, 3
|
|
/* 0EB5E4 7F0B6AB4 00581821 */ addu $v1, $v0, $t8
|
|
/* 0EB5E8 7F0B6AB8 00003025 */ move $a2, $zero
|
|
.L7F0B6ABC:
|
|
/* 0EB5EC 7F0B6ABC 24C60001 */ addiu $a2, $a2, 1
|
|
/* 0EB5F0 7F0B6AC0 28C10003 */ slti $at, $a2, 3
|
|
/* 0EB5F4 7F0B6AC4 24630004 */ addiu $v1, $v1, 4
|
|
/* 0EB5F8 7F0B6AC8 AC680000 */ sw $t0, ($v1)
|
|
/* 0EB5FC 7F0B6ACC 1420FFFB */ bnez $at, .L7F0B6ABC
|
|
/* 0EB600 7F0B6AD0 AC69000C */ sw $t1, 0xc($v1)
|
|
/* 0EB604 7F0B6AD4 91670001 */ lbu $a3, 1($t3)
|
|
/* 0EB608 7F0B6AD8 8D6F0004 */ lw $t7, 4($t3)
|
|
/* 0EB60C 7F0B6ADC 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
|
|
/* 0EB610 7F0B6AE0 0007C902 */ srl $t9, $a3, 4
|
|
/* 0EB614 7F0B6AE4 332E000F */ andi $t6, $t9, 0xf
|
|
/* 0EB618 7F0B6AE8 8FB90044 */ lw $t9, 0x44($sp)
|
|
/* 0EB61C 7F0B6AEC 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
|
|
/* 0EB620 7F0B6AF0 25C70001 */ addiu $a3, $t6, 1
|
|
/* 0EB624 7F0B6AF4 01E1C024 */ and $t8, $t7, $at
|
|
/* 0EB628 7F0B6AF8 00003025 */ move $a2, $zero
|
|
/* 0EB62C 7F0B6AFC 18E00029 */ blez $a3, .L7F0B6BA4
|
|
/* 0EB630 7F0B6B00 03191821 */ addu $v1, $t8, $t9
|
|
/* 0EB634 7F0B6B04 00602825 */ move $a1, $v1
|
|
.L7F0B6B08:
|
|
/* 0EB638 7F0B6B08 84A30000 */ lh $v1, ($a1)
|
|
/* 0EB63C 7F0B6B0C 8C8E0004 */ lw $t6, 4($a0)
|
|
/* 0EB640 7F0B6B10 24C60001 */ addiu $a2, $a2, 1
|
|
/* 0EB644 7F0B6B14 006E082A */ slt $at, $v1, $t6
|
|
/* 0EB648 7F0B6B18 50200003 */ beql $at, $zero, .L7F0B6B28
|
|
/* 0EB64C 7F0B6B1C 84A30002 */ lh $v1, 2($a1)
|
|
/* 0EB650 7F0B6B20 AC830004 */ sw $v1, 4($a0)
|
|
/* 0EB654 7F0B6B24 84A30002 */ lh $v1, 2($a1)
|
|
.L7F0B6B28:
|
|
/* 0EB658 7F0B6B28 8C8F0008 */ lw $t7, 8($a0)
|
|
/* 0EB65C 7F0B6B2C 006F082A */ slt $at, $v1, $t7
|
|
/* 0EB660 7F0B6B30 50200003 */ beql $at, $zero, .L7F0B6B40
|
|
/* 0EB664 7F0B6B34 84A30004 */ lh $v1, 4($a1)
|
|
/* 0EB668 7F0B6B38 AC830008 */ sw $v1, 8($a0)
|
|
/* 0EB66C 7F0B6B3C 84A30004 */ lh $v1, 4($a1)
|
|
.L7F0B6B40:
|
|
/* 0EB670 7F0B6B40 8C98000C */ lw $t8, 0xc($a0)
|
|
/* 0EB674 7F0B6B44 0078082A */ slt $at, $v1, $t8
|
|
/* 0EB678 7F0B6B48 50200003 */ beql $at, $zero, .L7F0B6B58
|
|
/* 0EB67C 7F0B6B4C 84A30000 */ lh $v1, ($a1)
|
|
/* 0EB680 7F0B6B50 AC83000C */ sw $v1, 0xc($a0)
|
|
/* 0EB684 7F0B6B54 84A30000 */ lh $v1, ($a1)
|
|
.L7F0B6B58:
|
|
/* 0EB688 7F0B6B58 8C990010 */ lw $t9, 0x10($a0)
|
|
/* 0EB68C 7F0B6B5C 0323082A */ slt $at, $t9, $v1
|
|
/* 0EB690 7F0B6B60 50200003 */ beql $at, $zero, .L7F0B6B70
|
|
/* 0EB694 7F0B6B64 84A30002 */ lh $v1, 2($a1)
|
|
/* 0EB698 7F0B6B68 AC830010 */ sw $v1, 0x10($a0)
|
|
/* 0EB69C 7F0B6B6C 84A30002 */ lh $v1, 2($a1)
|
|
.L7F0B6B70:
|
|
/* 0EB6A0 7F0B6B70 8C8E0014 */ lw $t6, 0x14($a0)
|
|
/* 0EB6A4 7F0B6B74 01C3082A */ slt $at, $t6, $v1
|
|
/* 0EB6A8 7F0B6B78 50200003 */ beql $at, $zero, .L7F0B6B88
|
|
/* 0EB6AC 7F0B6B7C 84A30004 */ lh $v1, 4($a1)
|
|
/* 0EB6B0 7F0B6B80 AC830014 */ sw $v1, 0x14($a0)
|
|
/* 0EB6B4 7F0B6B84 84A30004 */ lh $v1, 4($a1)
|
|
.L7F0B6B88:
|
|
/* 0EB6B8 7F0B6B88 8C8F0018 */ lw $t7, 0x18($a0)
|
|
/* 0EB6BC 7F0B6B8C 01E3082A */ slt $at, $t7, $v1
|
|
/* 0EB6C0 7F0B6B90 10200002 */ beqz $at, .L7F0B6B9C
|
|
/* 0EB6C4 7F0B6B94 00000000 */ nop
|
|
/* 0EB6C8 7F0B6B98 AC830018 */ sw $v1, 0x18($a0)
|
|
.L7F0B6B9C:
|
|
/* 0EB6CC 7F0B6B9C 14C7FFDA */ bne $a2, $a3, .L7F0B6B08
|
|
/* 0EB6D0 7F0B6BA0 24A50010 */ addiu $a1, $a1, 0x10
|
|
.L7F0B6BA4:
|
|
/* 0EB6D4 7F0B6BA4 8C830010 */ lw $v1, 0x10($a0)
|
|
/* 0EB6D8 7F0B6BA8 8C980004 */ lw $t8, 4($a0)
|
|
/* 0EB6DC 7F0B6BAC 24790001 */ addiu $t9, $v1, 1
|
|
/* 0EB6E0 7F0B6BB0 57030003 */ bnel $t8, $v1, .L7F0B6BC0
|
|
/* 0EB6E4 7F0B6BB4 8C830014 */ lw $v1, 0x14($a0)
|
|
/* 0EB6E8 7F0B6BB8 AC990010 */ sw $t9, 0x10($a0)
|
|
/* 0EB6EC 7F0B6BBC 8C830014 */ lw $v1, 0x14($a0)
|
|
.L7F0B6BC0:
|
|
/* 0EB6F0 7F0B6BC0 8C8E0008 */ lw $t6, 8($a0)
|
|
/* 0EB6F4 7F0B6BC4 246F0001 */ addiu $t7, $v1, 1
|
|
/* 0EB6F8 7F0B6BC8 55C30003 */ bnel $t6, $v1, .L7F0B6BD8
|
|
/* 0EB6FC 7F0B6BCC 8C83000C */ lw $v1, 0xc($a0)
|
|
/* 0EB700 7F0B6BD0 AC8F0014 */ sw $t7, 0x14($a0)
|
|
/* 0EB704 7F0B6BD4 8C83000C */ lw $v1, 0xc($a0)
|
|
.L7F0B6BD8:
|
|
/* 0EB708 7F0B6BD8 8C850018 */ lw $a1, 0x18($a0)
|
|
/* 0EB70C 7F0B6BDC 14650003 */ bne $v1, $a1, .L7F0B6BEC
|
|
/* 0EB710 7F0B6BE0 24B80001 */ addiu $t8, $a1, 1
|
|
/* 0EB714 7F0B6BE4 AC980018 */ sw $t8, 0x18($a0)
|
|
/* 0EB718 7F0B6BE8 8C83000C */ lw $v1, 0xc($a0)
|
|
.L7F0B6BEC:
|
|
/* 0EB71C 7F0B6BEC 8D8E0000 */ lw $t6, ($t4)
|
|
/* 0EB720 7F0B6BF0 8C990004 */ lw $t9, 4($a0)
|
|
/* 0EB724 7F0B6BF4 8C980008 */ lw $t8, 8($a0)
|
|
/* 0EB728 7F0B6BF8 01CA7821 */ addu $t7, $t6, $t2
|
|
/* 0EB72C 7F0B6BFC C5E4000C */ lwc1 $f4, 0xc($t7)
|
|
/* 0EB730 7F0B6C00 25AD0001 */ addiu $t5, $t5, 1
|
|
/* 0EB734 7F0B6C04 4600218D */ trunc.w.s $f6, $f4
|
|
/* 0EB738 7F0B6C08 440E3000 */ mfc1 $t6, $f6
|
|
/* 0EB73C 7F0B6C0C 00000000 */ nop
|
|
/* 0EB740 7F0B6C10 032E7821 */ addu $t7, $t9, $t6
|
|
/* 0EB744 7F0B6C14 AC8F0004 */ sw $t7, 4($a0)
|
|
/* 0EB748 7F0B6C18 8D990000 */ lw $t9, ($t4)
|
|
/* 0EB74C 7F0B6C1C 032A7021 */ addu $t6, $t9, $t2
|
|
/* 0EB750 7F0B6C20 C5C80010 */ lwc1 $f8, 0x10($t6)
|
|
/* 0EB754 7F0B6C24 4600428D */ trunc.w.s $f10, $f8
|
|
/* 0EB758 7F0B6C28 44195000 */ mfc1 $t9, $f10
|
|
/* 0EB75C 7F0B6C2C 00000000 */ nop
|
|
/* 0EB760 7F0B6C30 03197021 */ addu $t6, $t8, $t9
|
|
/* 0EB764 7F0B6C34 AC8E0008 */ sw $t6, 8($a0)
|
|
/* 0EB768 7F0B6C38 8D8F0000 */ lw $t7, ($t4)
|
|
/* 0EB76C 7F0B6C3C 01EAC021 */ addu $t8, $t7, $t2
|
|
/* 0EB770 7F0B6C40 C7100014 */ lwc1 $f16, 0x14($t8)
|
|
/* 0EB774 7F0B6C44 8C980010 */ lw $t8, 0x10($a0)
|
|
/* 0EB778 7F0B6C48 4600848D */ trunc.w.s $f18, $f16
|
|
/* 0EB77C 7F0B6C4C 440E9000 */ mfc1 $t6, $f18
|
|
/* 0EB780 7F0B6C50 00000000 */ nop
|
|
/* 0EB784 7F0B6C54 006E7821 */ addu $t7, $v1, $t6
|
|
/* 0EB788 7F0B6C58 AC8F000C */ sw $t7, 0xc($a0)
|
|
/* 0EB78C 7F0B6C5C 8D990000 */ lw $t9, ($t4)
|
|
/* 0EB790 7F0B6C60 8C8F0014 */ lw $t7, 0x14($a0)
|
|
/* 0EB794 7F0B6C64 032A7021 */ addu $t6, $t9, $t2
|
|
/* 0EB798 7F0B6C68 C5C4000C */ lwc1 $f4, 0xc($t6)
|
|
/* 0EB79C 7F0B6C6C 4600218D */ trunc.w.s $f6, $f4
|
|
/* 0EB7A0 7F0B6C70 44193000 */ mfc1 $t9, $f6
|
|
/* 0EB7A4 7F0B6C74 00000000 */ nop
|
|
/* 0EB7A8 7F0B6C78 03197021 */ addu $t6, $t8, $t9
|
|
/* 0EB7AC 7F0B6C7C AC8E0010 */ sw $t6, 0x10($a0)
|
|
/* 0EB7B0 7F0B6C80 8D980000 */ lw $t8, ($t4)
|
|
/* 0EB7B4 7F0B6C84 8C8E0018 */ lw $t6, 0x18($a0)
|
|
/* 0EB7B8 7F0B6C88 030AC821 */ addu $t9, $t8, $t2
|
|
/* 0EB7BC 7F0B6C8C C7280010 */ lwc1 $f8, 0x10($t9)
|
|
/* 0EB7C0 7F0B6C90 4600428D */ trunc.w.s $f10, $f8
|
|
/* 0EB7C4 7F0B6C94 44185000 */ mfc1 $t8, $f10
|
|
/* 0EB7C8 7F0B6C98 00000000 */ nop
|
|
/* 0EB7CC 7F0B6C9C 01F8C821 */ addu $t9, $t7, $t8
|
|
/* 0EB7D0 7F0B6CA0 AC990014 */ sw $t9, 0x14($a0)
|
|
/* 0EB7D4 7F0B6CA4 8D8F0000 */ lw $t7, ($t4)
|
|
/* 0EB7D8 7F0B6CA8 01EAC021 */ addu $t8, $t7, $t2
|
|
/* 0EB7DC 7F0B6CAC C7100014 */ lwc1 $f16, 0x14($t8)
|
|
/* 0EB7E0 7F0B6CB0 4600848D */ trunc.w.s $f18, $f16
|
|
/* 0EB7E4 7F0B6CB4 440F9000 */ mfc1 $t7, $f18
|
|
/* 0EB7E8 7F0B6CB8 00000000 */ nop
|
|
/* 0EB7EC 7F0B6CBC 01CFC021 */ addu $t8, $t6, $t7
|
|
/* 0EB7F0 7F0B6CC0 AC980018 */ sw $t8, 0x18($a0)
|
|
.L7F0B6CC4:
|
|
/* 0EB7F4 7F0B6CC4 81630008 */ lb $v1, 8($t3)
|
|
/* 0EB7F8 7F0B6CC8 27FF0001 */ addiu $ra, $ra, 1
|
|
/* 0EB7FC 7F0B6CCC 256B0008 */ addiu $t3, $t3, 8
|
|
/* 0EB800 7F0B6CD0 1603FF6B */ bne $s0, $v1, .L7F0B6A80
|
|
/* 0EB804 7F0B6CD4 00000000 */ nop
|
|
.L7F0B6CD8:
|
|
/* 0EB808 7F0B6CD8 8FBF001C */ lw $ra, 0x1c($sp)
|
|
/* 0EB80C 7F0B6CDC 8FB00014 */ lw $s0, 0x14($sp)
|
|
/* 0EB810 7F0B6CE0 8FB10018 */ lw $s1, 0x18($sp)
|
|
/* 0EB814 7F0B6CE4 03E00008 */ jr $ra
|
|
/* 0EB818 7F0B6CE8 27BD0050 */ addiu $sp, $sp, 0x50
|
|
)
|
|
#endif
|
|
|
|
|
|
bool bgTestLineIntersectsBbox(coord3d *arg0, coord3d *arg1, s32 *arg2, s32 *arg3)
|
|
{
|
|
coord3d arg2f;
|
|
coord3d arg3f;
|
|
u32 stack[4];
|
|
f32 f0;
|
|
f32 f0_2;
|
|
f32 f2;
|
|
f32 f2_2;
|
|
f32 f6;
|
|
f32 f10;
|
|
f32 sp34;
|
|
f32 sp30;
|
|
f32 f16;
|
|
f32 f18;
|
|
f32 f18_2;
|
|
f32 sp20;
|
|
f32 f12;
|
|
f32 f12_2;
|
|
f32 f14;
|
|
f32 f14_2;
|
|
|
|
arg2f.f[0] = arg2[0];
|
|
arg2f.f[1] = arg2[1];
|
|
arg2f.f[2] = arg2[2];
|
|
|
|
arg3f.f[0] = arg3[0];
|
|
arg3f.f[1] = arg3[1];
|
|
arg3f.f[2] = arg3[2];
|
|
|
|
// x
|
|
f18 = arg1->x;
|
|
f16 = arg3f.x - arg0->x;
|
|
f14 = arg2f.x - arg0->x;
|
|
|
|
if (f18 < 0.0f)
|
|
{
|
|
f18 = -f18;
|
|
f14 = -f14;
|
|
f16 = -f16;
|
|
}
|
|
|
|
if (f14 < 0.0f && f16 < 0.0f)
|
|
{
|
|
return FALSE;
|
|
}
|
|
|
|
if (f16 < f14)
|
|
{
|
|
f32 tmp = f14;
|
|
f14 = f16;
|
|
f16 = tmp;
|
|
}
|
|
|
|
// y
|
|
f12 = arg1->y;
|
|
f2 = arg3f.y - arg0->y;
|
|
f0 = arg2f.y - arg0->y;
|
|
|
|
if (f12 < 0.0f)
|
|
{
|
|
f12 = -f12;
|
|
f0 = -f0;
|
|
f2 = -f2;
|
|
}
|
|
|
|
if (f0 < 0.0f && f2 < 0.0f)
|
|
{
|
|
return FALSE;
|
|
}
|
|
|
|
if (f2 < f0)
|
|
{
|
|
sp20 = f0;
|
|
f0 = f2;
|
|
f2 = sp20;
|
|
}
|
|
|
|
f6 = f14 * f12;
|
|
f10 = f0 * f18;
|
|
|
|
if (f10 < f6)
|
|
{
|
|
if (f2 * f18 < f6)
|
|
{
|
|
return FALSE;
|
|
}
|
|
|
|
sp34 = f14;
|
|
sp30 = f18;
|
|
}
|
|
else
|
|
{
|
|
if (f16 * f12 < f10)
|
|
{
|
|
return FALSE;
|
|
}
|
|
|
|
sp34 = f0;
|
|
sp30 = f12;
|
|
}
|
|
|
|
if (f16 * f12 < f2 * f18)
|
|
{
|
|
f0_2 = f16;
|
|
f14_2 = f18;
|
|
}
|
|
else
|
|
{
|
|
f0_2 = f2;
|
|
f14_2 = f12;
|
|
}
|
|
|
|
// z
|
|
f2_2 = arg1->z;
|
|
f12_2 = arg3f.z - arg0->z;
|
|
f18_2 = arg2f.z - arg0->z;
|
|
|
|
if (f2_2 < 0.0f)
|
|
{
|
|
f2_2 = -f2_2;
|
|
f18_2 = -f18_2;
|
|
f12_2 = -f12_2;
|
|
}
|
|
|
|
if (f18_2 < 0.0f && f12_2 < 0.0f)
|
|
{
|
|
return FALSE;
|
|
}
|
|
|
|
if (f12_2 < f18_2)
|
|
{
|
|
f32 tmp = f18_2;
|
|
f18_2 = f12_2;
|
|
f12_2 = tmp;
|
|
}
|
|
|
|
if (sp34 * f2_2 < f18_2 * sp30)
|
|
{
|
|
if (f0_2 * f2_2 < f18_2 * f14_2)
|
|
{
|
|
return FALSE;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (f12_2 * sp30 < sp34 * f2_2)
|
|
{
|
|
return FALSE;
|
|
}
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
?32 sub_GAME_7F0B7010(void *arg0, s32 arg1, ?32 arg2, void *arg3, s32 arg4, void *arg5) {
|
|
s32 sp54;
|
|
void *sp64;
|
|
s32 sp80;
|
|
s32 sp84;
|
|
s32 sp88;
|
|
s32 sp8C;
|
|
s32 sp90;
|
|
s32 sp94;
|
|
s32 sp9C;
|
|
s32 spA0;
|
|
s32 spA4;
|
|
? spA8;
|
|
s32 spC8;
|
|
s32 spCC;
|
|
s32 spD0;
|
|
s32 spD4;
|
|
s32 spD8;
|
|
s32 spDC;
|
|
s32 spE4;
|
|
s32 spE8;
|
|
s32 spEC;
|
|
s32 spF0;
|
|
f32 spF8;
|
|
?32 sp12C;
|
|
void *temp_t0;
|
|
void *temp_s3;
|
|
s32 temp_t2;
|
|
s32 temp_s1;
|
|
void *temp_a0;
|
|
void *temp_v1;
|
|
void *temp_v0;
|
|
void *temp_v0_4;
|
|
u32 temp_v0_5;
|
|
void *temp_a0_2;
|
|
void *temp_v1_2;
|
|
void *temp_v0_2;
|
|
void *temp_v0_6;
|
|
u32 temp_v0_7;
|
|
s32 temp_s5;
|
|
s32 temp_v0_3;
|
|
s32 phi_v0;
|
|
void *phi_s3;
|
|
void *phi_a0;
|
|
void *phi_v0_2;
|
|
void *phi_v0_3;
|
|
s16 phi_s0;
|
|
s32 phi_s5;
|
|
void *phi_a0_2;
|
|
void *phi_t0;
|
|
void *phi_v0_4;
|
|
void *phi_v0_5;
|
|
s16 phi_s0_2;
|
|
void *phi_t0_2;
|
|
|
|
// Node 0
|
|
temp_t0 = ((arg4 * 0x50) + &array_room_info);
|
|
temp_s3 = ((*arg3 * 8) + temp_t0->unk8);
|
|
spF0 = 0x7fffffff;
|
|
sp12C = 0;
|
|
temp_t2 = (temp_s3->unk1 & 0xf);
|
|
temp_s1 = ((temp_s3->unk4 & 0xffffff) + temp_t0->unk4);
|
|
if (temp_s3->unk8 != 4)
|
|
{
|
|
// Node 1
|
|
if (temp_s3->unk8 != -0x48)
|
|
{
|
|
// Node 2
|
|
sp64 = temp_t0;
|
|
phi_v0 = temp_s3->unk8;
|
|
phi_s3 = (temp_s3 + 8);
|
|
phi_t0_2 = &spA8;
|
|
loop_3:
|
|
// Node 3
|
|
if (phi_v0 == -0x41)
|
|
{
|
|
// Node 4
|
|
spD4 = (?32) D_80044868;
|
|
spD4.unk4 = (?32) D_80044868.unk4;
|
|
spD4.unk8 = (?32) D_80044868.unk8;
|
|
spC8 = (?32) D_80044874;
|
|
spC8.unk4 = (?32) D_80044874.unk4;
|
|
spC8.unk8 = (?32) D_80044874.unk8;
|
|
spE4 = (s32) (((s32) phi_s3->unk5 / 0xa) - temp_t2);
|
|
spE8 = (s32) (((s32) phi_s3->unk6 / 0xa) - temp_t2);
|
|
spEC = (s32) (((s32) phi_s3->unk7 / 0xa) - temp_t2);
|
|
sp54 = (s32) (arg4 * 0x18);
|
|
phi_a0 = &spE4;
|
|
loop_5:
|
|
// Node 5
|
|
temp_a0 = (phi_a0 + 4);
|
|
temp_v1 = (temp_s1 + (*phi_a0 * 0x10));
|
|
if (*temp_v1 < spD4)
|
|
{
|
|
// Node 6
|
|
spD4 = (s32) *temp_v1;
|
|
}
|
|
// Node 7
|
|
if (spC8 < *temp_v1)
|
|
{
|
|
// Node 8
|
|
spC8 = (s32) *temp_v1;
|
|
}
|
|
// Node 9
|
|
if (temp_v1->unk2 < spD8)
|
|
{
|
|
// Node 10
|
|
spD8 = (s32) temp_v1->unk2;
|
|
}
|
|
// Node 11
|
|
if (spCC < temp_v1->unk2)
|
|
{
|
|
// Node 12
|
|
spCC = (s32) temp_v1->unk2;
|
|
}
|
|
// Node 13
|
|
if (temp_v1->unk4 < spDC)
|
|
{
|
|
// Node 14
|
|
spDC = (s32) temp_v1->unk4;
|
|
}
|
|
// Node 15
|
|
if (spD0 < temp_v1->unk4)
|
|
{
|
|
// Node 16
|
|
spD0 = (s32) temp_v1->unk4;
|
|
}
|
|
// Node 17
|
|
phi_a0 = temp_a0;
|
|
if (temp_a0 != &spF0)
|
|
{
|
|
goto loop_5;
|
|
}
|
|
// Node 18
|
|
temp_v0 = (ptr_bgdata_room_fileposition_list + sp54);
|
|
spD4 = (s32) (spD4 + (s32) temp_v0->unkC);
|
|
spD8 = (s32) (spD8 + (s32) temp_v0->unk10);
|
|
spDC = (s32) (spDC + (s32) temp_v0->unk14);
|
|
spC8 = (s32) (spC8 + (s32) temp_v0->unkC);
|
|
spCC = (s32) (spCC + (s32) temp_v0->unk10);
|
|
spD0 = (s32) (spD0 + (s32) temp_v0->unk14);
|
|
phi_t0_2 = &spA8;
|
|
if (bgTestLineIntersectsBbox(arg0, arg2, &spD4, &spC8) != 0)
|
|
{
|
|
// Node 19
|
|
phi_t0_2 = &spA8;
|
|
if (sub_GAME_7F092890((temp_s1 + (spE4 * 0x10)), (temp_s1 + (spE8 * 0x10)), (temp_s1 + (spEC * 0x10)), ((sp54 + ptr_bgdata_room_fileposition_list) + 0xc), arg0, arg1, arg2, &spF8) != 0)
|
|
{
|
|
// Node 20
|
|
temp_v0_4 = phi_s3;
|
|
sp12C = 1;
|
|
phi_v0_3 = temp_v0_4;
|
|
if (0xfd != *phi_s3)
|
|
{
|
|
// Node 21
|
|
phi_v0_2 = temp_v0_4;
|
|
phi_v0_3 = temp_v0_4;
|
|
if ((u32) sp64->unk8 < (u32) phi_s3)
|
|
{
|
|
loop_22:
|
|
// Node 22
|
|
temp_v0_5 = (phi_v0_2 + -8);
|
|
phi_v0_3 = temp_v0_5;
|
|
if (0xfd != phi_v0_2->unk-8)
|
|
{
|
|
// Node 23
|
|
phi_v0_2 = temp_v0_5;
|
|
phi_v0_3 = temp_v0_5;
|
|
if ((u32) sp64->unk8 < temp_v0_5)
|
|
{
|
|
goto loop_22;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// Node 24
|
|
if (phi_v0_3 == sp64->unk8)
|
|
{
|
|
// Node 25
|
|
phi_s0 = (u16)-1;
|
|
}
|
|
else
|
|
{
|
|
// Node 26
|
|
phi_s0 = *((phi_v0_3->unk4 + -8) | 0x80000000);
|
|
}
|
|
// Node 27
|
|
if (check_if_imageID_is_light(phi_s0, ((s32) sp100 - (s32) arg0->unk8), arg0) != 0)
|
|
{
|
|
// Node 28
|
|
}
|
|
// Node 29
|
|
phi_t0_2 = &spA8;
|
|
if (0x4fd != 0)
|
|
{
|
|
// Node 30
|
|
phi_t0_2 = &spA8;
|
|
if (phi_s0 != 0x4fd)
|
|
{
|
|
// Node 31
|
|
*arg5 = spF8;
|
|
arg5->unk4 = spFC;
|
|
arg5->unk8 = sp100;
|
|
arg5->unkC = sp104;
|
|
arg5->unk10 = sp108;
|
|
arg5->unk14 = sp10C;
|
|
arg5->unk18 = (s32) ((spE4 * 0x10) + temp_s1);
|
|
arg5->unk1C = (s32) ((spE8 * 0x10) + temp_s1);
|
|
arg5->unk2A = (s16) phi_s0;
|
|
arg5->unk24 = (void *) phi_s3;
|
|
arg5->unk20 = (s32) ((spEC * 0x10) + temp_s1);
|
|
arg5->unk28 = (u16)0;
|
|
phi_t0_2 = &spA8;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// Node 32
|
|
phi_t0_2 = phi_t0_2;
|
|
if (phi_v0 == -0x4f)
|
|
{
|
|
// Node 33
|
|
sp54 = (s32) (arg4 * 0x18);
|
|
phi_s5 = 0;
|
|
phi_t0 = phi_t0_2;
|
|
loop_34:
|
|
// Node 34
|
|
sp8C = (?32) D_80044880;
|
|
sp8C.unk4 = (?32) D_80044880.unk4;
|
|
sp8C.unk8 = (?32) D_80044880.unk8;
|
|
sp80 = (?32) D_8004488C;
|
|
sp80.unk4 = (?32) D_8004488C.unk4;
|
|
sp80.unk8 = (?32) D_8004488C.unk8;
|
|
if (phi_s5 == 0)
|
|
{
|
|
// Node 35
|
|
sp9C = (s32) ((phi_s3->unk4 & 0xf) - temp_t2);
|
|
spA0 = (s32) (((u32) phi_s3->unk7 >> 4) - temp_t2);
|
|
spA4 = (s32) ((*phi_s3 & 0xf) - temp_t2);
|
|
}
|
|
else
|
|
{
|
|
// Node 36
|
|
if (phi_s5 == 1)
|
|
{
|
|
// Node 37
|
|
sp9C = (s32) ((phi_s3->unk6 & 0xf) - temp_t2);
|
|
spA0 = (s32) (((u32) phi_s3->unk6 >> 0xc) - temp_t2);
|
|
spA4 = (s32) (((u32) phi_s3->unk3 >> 4) - temp_t2);
|
|
}
|
|
else
|
|
{
|
|
// Node 38
|
|
if (phi_s5 == 2)
|
|
{
|
|
// Node 39
|
|
sp9C = (s32) ((phi_s3->unk4 & 0xf) - temp_t2);
|
|
spA0 = (s32) (((u32) phi_s3->unk5 >> 4) - temp_t2);
|
|
spA4 = (s32) ((phi_s3->unk2 & 0xf) - temp_t2);
|
|
}
|
|
else
|
|
{
|
|
// Node 40
|
|
sp9C = (s32) ((phi_s3->unk4 & 0xf) - temp_t2);
|
|
spA0 = (s32) (((u32) phi_s3->unk4 >> 0x1c) - temp_t2);
|
|
spA4 = (s32) (((u32) phi_s3->unk2 >> 0xc) - temp_t2);
|
|
}
|
|
}
|
|
}
|
|
// Node 41
|
|
phi_a0_2 = &sp9C;
|
|
loop_42:
|
|
// Node 42
|
|
temp_a0_2 = (phi_a0_2 + 4);
|
|
temp_v1_2 = (temp_s1 + (*phi_a0_2 * 0x10));
|
|
if (*temp_v1_2 < sp8C)
|
|
{
|
|
// Node 43
|
|
sp8C = (s32) *temp_v1_2;
|
|
}
|
|
// Node 44
|
|
if (sp80 < *temp_v1_2)
|
|
{
|
|
// Node 45
|
|
sp80 = (s32) *temp_v1_2;
|
|
}
|
|
// Node 46
|
|
if (temp_v1_2->unk2 < sp90)
|
|
{
|
|
// Node 47
|
|
sp90 = (s32) temp_v1_2->unk2;
|
|
}
|
|
// Node 48
|
|
if (sp84 < temp_v1_2->unk2)
|
|
{
|
|
// Node 49
|
|
sp84 = (s32) temp_v1_2->unk2;
|
|
}
|
|
// Node 50
|
|
if (temp_v1_2->unk4 < sp94)
|
|
{
|
|
// Node 51
|
|
sp94 = (s32) temp_v1_2->unk4;
|
|
}
|
|
// Node 52
|
|
if (sp88 < temp_v1_2->unk4)
|
|
{
|
|
// Node 53
|
|
sp88 = (s32) temp_v1_2->unk4;
|
|
}
|
|
// Node 54
|
|
phi_a0_2 = temp_a0_2;
|
|
if (temp_a0_2 != phi_t0)
|
|
{
|
|
goto loop_42;
|
|
}
|
|
// Node 55
|
|
temp_v0_2 = (ptr_bgdata_room_fileposition_list + sp54);
|
|
sp8C = (s32) (sp8C + (s32) temp_v0_2->unkC);
|
|
sp90 = (s32) (sp90 + (s32) temp_v0_2->unk10);
|
|
sp94 = (s32) (sp94 + (s32) temp_v0_2->unk14);
|
|
sp80 = (s32) (sp80 + (s32) temp_v0_2->unkC);
|
|
sp84 = (s32) (sp84 + (s32) temp_v0_2->unk10);
|
|
sp88 = (s32) (sp88 + (s32) temp_v0_2->unk14);
|
|
if (bgTestLineIntersectsBbox(arg0, arg2, &sp8C, &sp80) != 0)
|
|
{
|
|
// Node 56
|
|
if (sub_GAME_7F092890((temp_s1 + (sp9C * 0x10)), (temp_s1 + (spA0 * 0x10)), (temp_s1 + (spA4 * 0x10)), ((sp54 + ptr_bgdata_room_fileposition_list) + 0xc), arg0, arg1, arg2, &spF8) != 0)
|
|
{
|
|
// Node 57
|
|
temp_v0_6 = phi_s3;
|
|
sp12C = 1;
|
|
phi_v0_5 = temp_v0_6;
|
|
if (0xfd != *phi_s3)
|
|
{
|
|
// Node 58
|
|
phi_v0_4 = temp_v0_6;
|
|
phi_v0_5 = temp_v0_6;
|
|
if ((u32) sp64->unk8 < (u32) phi_s3)
|
|
{
|
|
loop_59:
|
|
// Node 59
|
|
temp_v0_7 = (phi_v0_4 + -8);
|
|
phi_v0_5 = temp_v0_7;
|
|
if (0xfd != phi_v0_4->unk-8)
|
|
{
|
|
// Node 60
|
|
phi_v0_4 = temp_v0_7;
|
|
phi_v0_5 = temp_v0_7;
|
|
if ((u32) sp64->unk8 < temp_v0_7)
|
|
{
|
|
goto loop_59;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// Node 61
|
|
if (phi_v0_5 == sp64->unk8)
|
|
{
|
|
// Node 62
|
|
phi_s0_2 = (u16)-1;
|
|
}
|
|
else
|
|
{
|
|
// Node 63
|
|
phi_s0_2 = *((phi_v0_5->unk4 + -8) | 0x80000000);
|
|
}
|
|
// Node 64
|
|
if (check_if_imageID_is_light(phi_s0_2, ((s32) sp100 - (s32) arg0->unk8), arg0) != 0)
|
|
{
|
|
// Node 65
|
|
}
|
|
// Node 66
|
|
if (0x4fd != 0)
|
|
{
|
|
// Node 67
|
|
if (phi_s0_2 != 0x4fd)
|
|
{
|
|
// Node 68
|
|
*arg5 = spF8;
|
|
arg5->unk4 = spFC;
|
|
arg5->unk8 = sp100;
|
|
arg5->unkC = sp104;
|
|
arg5->unk10 = sp108;
|
|
arg5->unk14 = sp10C;
|
|
arg5->unk18 = (s32) ((sp9C * 0x10) + temp_s1);
|
|
arg5->unk1C = (s32) ((spA0 * 0x10) + temp_s1);
|
|
arg5->unk2A = (s16) phi_s0_2;
|
|
arg5->unk24 = (void *) phi_s3;
|
|
arg5->unk20 = (s32) ((spA4 * 0x10) + temp_s1);
|
|
arg5->unk28 = (s16) (phi_s5 + 1);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// Node 69
|
|
temp_s5 = (phi_s5 + 1);
|
|
phi_s5 = temp_s5;
|
|
phi_t0 = &spA8;
|
|
phi_t0_2 = &spA8;
|
|
if (temp_s5 != 4)
|
|
{
|
|
goto loop_34;
|
|
}
|
|
}
|
|
}
|
|
// Node 70
|
|
temp_v0_3 = phi_s3->unk8;
|
|
if (temp_v0_3 != -0x48)
|
|
{
|
|
// Node 71
|
|
phi_v0 = temp_v0_3;
|
|
phi_s3 = (phi_s3 + 8);
|
|
if (temp_v0_3 != -0x48)
|
|
{
|
|
goto loop_3;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// Node 72
|
|
return sp12C;
|
|
}
|
|
#else
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B7010
|
|
/* 0EBB40 7F0B7010 27BDFEC0 */ addiu $sp, $sp, -0x140
|
|
/* 0EBB44 7F0B7014 8FAE0150 */ lw $t6, 0x150($sp)
|
|
/* 0EBB48 7F0B7018 3C188004 */ lui $t8, %hi(array_room_info)
|
|
/* 0EBB4C 7F0B701C AFBF004C */ sw $ra, 0x4c($sp)
|
|
/* 0EBB50 7F0B7020 000E7880 */ sll $t7, $t6, 2
|
|
/* 0EBB54 7F0B7024 01EE7821 */ addu $t7, $t7, $t6
|
|
/* 0EBB58 7F0B7028 AFBE0048 */ sw $fp, 0x48($sp)
|
|
/* 0EBB5C 7F0B702C AFB70044 */ sw $s7, 0x44($sp)
|
|
/* 0EBB60 7F0B7030 AFB60040 */ sw $s6, 0x40($sp)
|
|
/* 0EBB64 7F0B7034 AFB5003C */ sw $s5, 0x3c($sp)
|
|
/* 0EBB68 7F0B7038 AFB40038 */ sw $s4, 0x38($sp)
|
|
/* 0EBB6C 7F0B703C AFB30034 */ sw $s3, 0x34($sp)
|
|
/* 0EBB70 7F0B7040 AFB20030 */ sw $s2, 0x30($sp)
|
|
/* 0EBB74 7F0B7044 AFB1002C */ sw $s1, 0x2c($sp)
|
|
/* 0EBB78 7F0B7048 AFB00028 */ sw $s0, 0x28($sp)
|
|
/* 0EBB7C 7F0B704C AFA40140 */ sw $a0, 0x140($sp)
|
|
/* 0EBB80 7F0B7050 AFA50144 */ sw $a1, 0x144($sp)
|
|
/* 0EBB84 7F0B7054 AFA60148 */ sw $a2, 0x148($sp)
|
|
/* 0EBB88 7F0B7058 000F7900 */ sll $t7, $t7, 4
|
|
/* 0EBB8C 7F0B705C 27181414 */ addiu $t8, %lo(array_room_info) # addiu $t8, $t8, 0x1414
|
|
/* 0EBB90 7F0B7060 84F90000 */ lh $t9, ($a3)
|
|
/* 0EBB94 7F0B7064 01F84021 */ addu $t0, $t7, $t8
|
|
/* 0EBB98 7F0B7068 8D130008 */ lw $s3, 8($t0)
|
|
/* 0EBB9C 7F0B706C 001948C0 */ sll $t1, $t9, 3
|
|
/* 0EBBA0 7F0B7070 3C0D7FFF */ lui $t5, (0x7FFFFFFF >> 16) # lui $t5, 0x7fff
|
|
/* 0EBBA4 7F0B7074 01339821 */ addu $s3, $t1, $s3
|
|
/* 0EBBA8 7F0B7078 8E6B0004 */ lw $t3, 4($s3)
|
|
/* 0EBBAC 7F0B707C 92770001 */ lbu $s7, 1($s3)
|
|
/* 0EBBB0 7F0B7080 35ADFFFF */ ori $t5, (0x7FFFFFFF & 0xFFFF) # ori $t5, $t5, 0xffff
|
|
/* 0EBBB4 7F0B7084 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
|
|
/* 0EBBB8 7F0B7088 AFAD00F0 */ sw $t5, 0xf0($sp)
|
|
/* 0EBBBC 7F0B708C AFA0012C */ sw $zero, 0x12c($sp)
|
|
/* 0EBBC0 7F0B7090 82620008 */ lb $v0, 8($s3)
|
|
/* 0EBBC4 7F0B7094 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
|
|
/* 0EBBC8 7F0B7098 8D030004 */ lw $v1, 4($t0)
|
|
/* 0EBBCC 7F0B709C 01616024 */ and $t4, $t3, $at
|
|
/* 0EBBD0 7F0B70A0 24010004 */ li $at, 4
|
|
/* 0EBBD4 7F0B70A4 32EA000F */ andi $t2, $s7, 0xf
|
|
/* 0EBBD8 7F0B70A8 0140B825 */ move $s7, $t2
|
|
/* 0EBBDC 7F0B70AC 26730008 */ addiu $s3, $s3, 8
|
|
/* 0EBBE0 7F0B70B0 10410264 */ beq $v0, $at, .L7F0B7A44
|
|
/* 0EBBE4 7F0B70B4 01838821 */ addu $s1, $t4, $v1
|
|
/* 0EBBE8 7F0B70B8 2401FFB8 */ li $at, -72
|
|
/* 0EBBEC 7F0B70BC 10410261 */ beq $v0, $at, .L7F0B7A44
|
|
/* 0EBBF0 7F0B70C0 241600FD */ li $s6, 253
|
|
/* 0EBBF4 7F0B70C4 AFA80064 */ sw $t0, 0x64($sp)
|
|
/* 0EBBF8 7F0B70C8 27A800A8 */ addiu $t0, $sp, 0xa8
|
|
/* 0EBBFC 7F0B70CC 8FB40154 */ lw $s4, 0x154($sp)
|
|
/* 0EBC00 7F0B70D0 2401FFBF */ li $at, -65
|
|
.L7F0B70D4:
|
|
/* 0EBC04 7F0B70D4 1441011F */ bne $v0, $at, .L7F0B7554
|
|
/* 0EBC08 7F0B70D8 3C0E8004 */ lui $t6, %hi(D_80044868)
|
|
/* 0EBC0C 7F0B70DC 25CE4868 */ addiu $t6, %lo(D_80044868) # addiu $t6, $t6, 0x4868
|
|
/* 0EBC10 7F0B70E0 8DC10000 */ lw $at, ($t6)
|
|
/* 0EBC14 7F0B70E4 27A600D4 */ addiu $a2, $sp, 0xd4
|
|
/* 0EBC18 7F0B70E8 3C198004 */ lui $t9, %hi(D_80044874)
|
|
/* 0EBC1C 7F0B70EC ACC10000 */ sw $at, ($a2)
|
|
/* 0EBC20 7F0B70F0 8DD80004 */ lw $t8, 4($t6)
|
|
/* 0EBC24 7F0B70F4 27394874 */ addiu $t9, %lo(D_80044874) # addiu $t9, $t9, 0x4874
|
|
/* 0EBC28 7F0B70F8 27A700C8 */ addiu $a3, $sp, 0xc8
|
|
/* 0EBC2C 7F0B70FC ACD80004 */ sw $t8, 4($a2)
|
|
/* 0EBC30 7F0B7100 8DC10008 */ lw $at, 8($t6)
|
|
/* 0EBC34 7F0B7104 2405000A */ li $a1, 10
|
|
/* 0EBC38 7F0B7108 00001025 */ move $v0, $zero
|
|
/* 0EBC3C 7F0B710C ACC10008 */ sw $at, 8($a2)
|
|
/* 0EBC40 7F0B7110 8F210000 */ lw $at, ($t9)
|
|
/* 0EBC44 7F0B7114 27A400E4 */ addiu $a0, $sp, 0xe4
|
|
/* 0EBC48 7F0B7118 ACE10000 */ sw $at, ($a3)
|
|
/* 0EBC4C 7F0B711C 8F2A0004 */ lw $t2, 4($t9)
|
|
/* 0EBC50 7F0B7120 ACEA0004 */ sw $t2, 4($a3)
|
|
/* 0EBC54 7F0B7124 8F210008 */ lw $at, 8($t9)
|
|
/* 0EBC58 7F0B7128 ACE10008 */ sw $at, 8($a3)
|
|
/* 0EBC5C 7F0B712C 926B0005 */ lbu $t3, 5($s3)
|
|
/* 0EBC60 7F0B7130 0165001A */ div $zero, $t3, $a1
|
|
/* 0EBC64 7F0B7134 00006012 */ mflo $t4
|
|
/* 0EBC68 7F0B7138 01976823 */ subu $t5, $t4, $s7
|
|
/* 0EBC6C 7F0B713C AFAD00E4 */ sw $t5, 0xe4($sp)
|
|
/* 0EBC70 7F0B7140 926F0006 */ lbu $t7, 6($s3)
|
|
/* 0EBC74 7F0B7144 14A00002 */ bnez $a1, .L7F0B7150
|
|
/* 0EBC78 7F0B7148 00000000 */ nop
|
|
/* 0EBC7C 7F0B714C 0007000D */ break 7
|
|
.L7F0B7150:
|
|
/* 0EBC80 7F0B7150 2401FFFF */ li $at, -1
|
|
/* 0EBC84 7F0B7154 14A10004 */ bne $a1, $at, .L7F0B7168
|
|
/* 0EBC88 7F0B7158 3C018000 */ lui $at, 0x8000
|
|
/* 0EBC8C 7F0B715C 15610002 */ bne $t3, $at, .L7F0B7168
|
|
/* 0EBC90 7F0B7160 00000000 */ nop
|
|
/* 0EBC94 7F0B7164 0006000D */ break 6
|
|
.L7F0B7168:
|
|
/* 0EBC98 7F0B7168 01E5001A */ div $zero, $t7, $a1
|
|
/* 0EBC9C 7F0B716C 00007012 */ mflo $t6
|
|
/* 0EBCA0 7F0B7170 01D7C023 */ subu $t8, $t6, $s7
|
|
/* 0EBCA4 7F0B7174 AFB800E8 */ sw $t8, 0xe8($sp)
|
|
/* 0EBCA8 7F0B7178 92690007 */ lbu $t1, 7($s3)
|
|
/* 0EBCAC 7F0B717C 14A00002 */ bnez $a1, .L7F0B7188
|
|
/* 0EBCB0 7F0B7180 00000000 */ nop
|
|
/* 0EBCB4 7F0B7184 0007000D */ break 7
|
|
.L7F0B7188:
|
|
/* 0EBCB8 7F0B7188 2401FFFF */ li $at, -1
|
|
/* 0EBCBC 7F0B718C 14A10004 */ bne $a1, $at, .L7F0B71A0
|
|
/* 0EBCC0 7F0B7190 3C018000 */ lui $at, 0x8000
|
|
/* 0EBCC4 7F0B7194 15E10002 */ bne $t7, $at, .L7F0B71A0
|
|
/* 0EBCC8 7F0B7198 00000000 */ nop
|
|
/* 0EBCCC 7F0B719C 0006000D */ break 6
|
|
.L7F0B71A0:
|
|
/* 0EBCD0 7F0B71A0 0125001A */ div $zero, $t1, $a1
|
|
/* 0EBCD4 7F0B71A4 8FAB0150 */ lw $t3, 0x150($sp)
|
|
/* 0EBCD8 7F0B71A8 0000C812 */ mflo $t9
|
|
/* 0EBCDC 7F0B71AC 03375023 */ subu $t2, $t9, $s7
|
|
/* 0EBCE0 7F0B71B0 000B6080 */ sll $t4, $t3, 2
|
|
/* 0EBCE4 7F0B71B4 018B6023 */ subu $t4, $t4, $t3
|
|
/* 0EBCE8 7F0B71B8 000C60C0 */ sll $t4, $t4, 3
|
|
/* 0EBCEC 7F0B71BC AFAA00EC */ sw $t2, 0xec($sp)
|
|
/* 0EBCF0 7F0B71C0 AFAC0054 */ sw $t4, 0x54($sp)
|
|
/* 0EBCF4 7F0B71C4 14A00002 */ bnez $a1, .L7F0B71D0
|
|
/* 0EBCF8 7F0B71C8 00000000 */ nop
|
|
/* 0EBCFC 7F0B71CC 0007000D */ break 7
|
|
.L7F0B71D0:
|
|
/* 0EBD00 7F0B71D0 2401FFFF */ li $at, -1
|
|
/* 0EBD04 7F0B71D4 14A10004 */ bne $a1, $at, .L7F0B71E8
|
|
/* 0EBD08 7F0B71D8 3C018000 */ lui $at, 0x8000
|
|
/* 0EBD0C 7F0B71DC 15210002 */ bne $t1, $at, .L7F0B71E8
|
|
/* 0EBD10 7F0B71E0 00000000 */ nop
|
|
/* 0EBD14 7F0B71E4 0006000D */ break 6
|
|
.L7F0B71E8:
|
|
/* 0EBD18 7F0B71E8 8C8D0000 */ lw $t5, ($a0)
|
|
.L7F0B71EC:
|
|
/* 0EBD1C 7F0B71EC 8FAE00D4 */ lw $t6, 0xd4($sp)
|
|
/* 0EBD20 7F0B71F0 24840004 */ addiu $a0, $a0, 4
|
|
/* 0EBD24 7F0B71F4 000D7900 */ sll $t7, $t5, 4
|
|
/* 0EBD28 7F0B71F8 022F1821 */ addu $v1, $s1, $t7
|
|
/* 0EBD2C 7F0B71FC 84620000 */ lh $v0, ($v1)
|
|
/* 0EBD30 7F0B7200 27AC00F0 */ addiu $t4, $sp, 0xf0
|
|
/* 0EBD34 7F0B7204 004E082A */ slt $at, $v0, $t6
|
|
/* 0EBD38 7F0B7208 50200004 */ beql $at, $zero, .L7F0B721C
|
|
/* 0EBD3C 7F0B720C 8FB800C8 */ lw $t8, 0xc8($sp)
|
|
/* 0EBD40 7F0B7210 AFA200D4 */ sw $v0, 0xd4($sp)
|
|
/* 0EBD44 7F0B7214 84620000 */ lh $v0, ($v1)
|
|
/* 0EBD48 7F0B7218 8FB800C8 */ lw $t8, 0xc8($sp)
|
|
.L7F0B721C:
|
|
/* 0EBD4C 7F0B721C 0302082A */ slt $at, $t8, $v0
|
|
/* 0EBD50 7F0B7220 50200003 */ beql $at, $zero, .L7F0B7230
|
|
/* 0EBD54 7F0B7224 84620002 */ lh $v0, 2($v1)
|
|
/* 0EBD58 7F0B7228 AFA200C8 */ sw $v0, 0xc8($sp)
|
|
/* 0EBD5C 7F0B722C 84620002 */ lh $v0, 2($v1)
|
|
.L7F0B7230:
|
|
/* 0EBD60 7F0B7230 8FA900D8 */ lw $t1, 0xd8($sp)
|
|
/* 0EBD64 7F0B7234 0049082A */ slt $at, $v0, $t1
|
|
/* 0EBD68 7F0B7238 50200004 */ beql $at, $zero, .L7F0B724C
|
|
/* 0EBD6C 7F0B723C 8FB900CC */ lw $t9, 0xcc($sp)
|
|
/* 0EBD70 7F0B7240 AFA200D8 */ sw $v0, 0xd8($sp)
|
|
/* 0EBD74 7F0B7244 84620002 */ lh $v0, 2($v1)
|
|
/* 0EBD78 7F0B7248 8FB900CC */ lw $t9, 0xcc($sp)
|
|
.L7F0B724C:
|
|
/* 0EBD7C 7F0B724C 0322082A */ slt $at, $t9, $v0
|
|
/* 0EBD80 7F0B7250 50200003 */ beql $at, $zero, .L7F0B7260
|
|
/* 0EBD84 7F0B7254 84620004 */ lh $v0, 4($v1)
|
|
/* 0EBD88 7F0B7258 AFA200CC */ sw $v0, 0xcc($sp)
|
|
/* 0EBD8C 7F0B725C 84620004 */ lh $v0, 4($v1)
|
|
.L7F0B7260:
|
|
/* 0EBD90 7F0B7260 8FAA00DC */ lw $t2, 0xdc($sp)
|
|
/* 0EBD94 7F0B7264 004A082A */ slt $at, $v0, $t2
|
|
/* 0EBD98 7F0B7268 50200004 */ beql $at, $zero, .L7F0B727C
|
|
/* 0EBD9C 7F0B726C 8FAB00D0 */ lw $t3, 0xd0($sp)
|
|
/* 0EBDA0 7F0B7270 AFA200DC */ sw $v0, 0xdc($sp)
|
|
/* 0EBDA4 7F0B7274 84620004 */ lh $v0, 4($v1)
|
|
/* 0EBDA8 7F0B7278 8FAB00D0 */ lw $t3, 0xd0($sp)
|
|
.L7F0B727C:
|
|
/* 0EBDAC 7F0B727C 0162082A */ slt $at, $t3, $v0
|
|
/* 0EBDB0 7F0B7280 10200002 */ beqz $at, .L7F0B728C
|
|
/* 0EBDB4 7F0B7284 00000000 */ nop
|
|
/* 0EBDB8 7F0B7288 AFA200D0 */ sw $v0, 0xd0($sp)
|
|
.L7F0B728C:
|
|
/* 0EBDBC 7F0B728C 548CFFD7 */ bnel $a0, $t4, .L7F0B71EC
|
|
/* 0EBDC0 7F0B7290 8C8D0000 */ lw $t5, ($a0)
|
|
/* 0EBDC4 7F0B7294 3C0D8008 */ lui $t5, %hi(ptr_bgdata_room_fileposition_list)
|
|
/* 0EBDC8 7F0B7298 8DADFF8C */ lw $t5, %lo(ptr_bgdata_room_fileposition_list)($t5)
|
|
/* 0EBDCC 7F0B729C 8FAF0054 */ lw $t7, 0x54($sp)
|
|
/* 0EBDD0 7F0B72A0 8FAE00D4 */ lw $t6, 0xd4($sp)
|
|
/* 0EBDD4 7F0B72A4 8FAA00D8 */ lw $t2, 0xd8($sp)
|
|
/* 0EBDD8 7F0B72A8 01AF1021 */ addu $v0, $t5, $t7
|
|
/* 0EBDDC 7F0B72AC C444000C */ lwc1 $f4, 0xc($v0)
|
|
/* 0EBDE0 7F0B72B0 8FAF00DC */ lw $t7, 0xdc($sp)
|
|
/* 0EBDE4 7F0B72B4 8FA40140 */ lw $a0, 0x140($sp)
|
|
/* 0EBDE8 7F0B72B8 4600218D */ trunc.w.s $f6, $f4
|
|
/* 0EBDEC 7F0B72BC 8FA50148 */ lw $a1, 0x148($sp)
|
|
/* 0EBDF0 7F0B72C0 44093000 */ mfc1 $t1, $f6
|
|
/* 0EBDF4 7F0B72C4 00000000 */ nop
|
|
/* 0EBDF8 7F0B72C8 01C9C821 */ addu $t9, $t6, $t1
|
|
/* 0EBDFC 7F0B72CC AFB900D4 */ sw $t9, 0xd4($sp)
|
|
/* 0EBE00 7F0B72D0 C4480010 */ lwc1 $f8, 0x10($v0)
|
|
/* 0EBE04 7F0B72D4 8FB900C8 */ lw $t9, 0xc8($sp)
|
|
/* 0EBE08 7F0B72D8 4600428D */ trunc.w.s $f10, $f8
|
|
/* 0EBE0C 7F0B72DC 440C5000 */ mfc1 $t4, $f10
|
|
/* 0EBE10 7F0B72E0 00000000 */ nop
|
|
/* 0EBE14 7F0B72E4 014C6821 */ addu $t5, $t2, $t4
|
|
/* 0EBE18 7F0B72E8 AFAD00D8 */ sw $t5, 0xd8($sp)
|
|
/* 0EBE1C 7F0B72EC C4500014 */ lwc1 $f16, 0x14($v0)
|
|
/* 0EBE20 7F0B72F0 8FAD00CC */ lw $t5, 0xcc($sp)
|
|
/* 0EBE24 7F0B72F4 4600848D */ trunc.w.s $f18, $f16
|
|
/* 0EBE28 7F0B72F8 440E9000 */ mfc1 $t6, $f18
|
|
/* 0EBE2C 7F0B72FC 00000000 */ nop
|
|
/* 0EBE30 7F0B7300 01EE4821 */ addu $t1, $t7, $t6
|
|
/* 0EBE34 7F0B7304 AFA900DC */ sw $t1, 0xdc($sp)
|
|
/* 0EBE38 7F0B7308 C444000C */ lwc1 $f4, 0xc($v0)
|
|
/* 0EBE3C 7F0B730C 8FA900D0 */ lw $t1, 0xd0($sp)
|
|
/* 0EBE40 7F0B7310 4600218D */ trunc.w.s $f6, $f4
|
|
/* 0EBE44 7F0B7314 440A3000 */ mfc1 $t2, $f6
|
|
/* 0EBE48 7F0B7318 00000000 */ nop
|
|
/* 0EBE4C 7F0B731C 032A6021 */ addu $t4, $t9, $t2
|
|
/* 0EBE50 7F0B7320 AFAC00C8 */ sw $t4, 0xc8($sp)
|
|
/* 0EBE54 7F0B7324 C4480010 */ lwc1 $f8, 0x10($v0)
|
|
/* 0EBE58 7F0B7328 4600428D */ trunc.w.s $f10, $f8
|
|
/* 0EBE5C 7F0B732C 440F5000 */ mfc1 $t7, $f10
|
|
/* 0EBE60 7F0B7330 00000000 */ nop
|
|
/* 0EBE64 7F0B7334 01AF7021 */ addu $t6, $t5, $t7
|
|
/* 0EBE68 7F0B7338 AFAE00CC */ sw $t6, 0xcc($sp)
|
|
/* 0EBE6C 7F0B733C C4500014 */ lwc1 $f16, 0x14($v0)
|
|
/* 0EBE70 7F0B7340 4600848D */ trunc.w.s $f18, $f16
|
|
/* 0EBE74 7F0B7344 44199000 */ mfc1 $t9, $f18
|
|
/* 0EBE78 7F0B7348 00000000 */ nop
|
|
/* 0EBE7C 7F0B734C 01395021 */ addu $t2, $t1, $t9
|
|
/* 0EBE80 7F0B7350 0FC2DB3B */ jal bgTestLineIntersectsBbox
|
|
/* 0EBE84 7F0B7354 AFAA00D0 */ sw $t2, 0xd0($sp)
|
|
/* 0EBE88 7F0B7358 104001B3 */ beqz $v0, .L7F0B7A28
|
|
/* 0EBE8C 7F0B735C 27A800A8 */ addiu $t0, $sp, 0xa8
|
|
/* 0EBE90 7F0B7360 8FAC00E4 */ lw $t4, 0xe4($sp)
|
|
/* 0EBE94 7F0B7364 8FAD00E8 */ lw $t5, 0xe8($sp)
|
|
/* 0EBE98 7F0B7368 3C198008 */ lui $t9, %hi(ptr_bgdata_room_fileposition_list)
|
|
/* 0EBE9C 7F0B736C 000CC100 */ sll $t8, $t4, 4
|
|
/* 0EBEA0 7F0B7370 8F39FF8C */ lw $t9, %lo(ptr_bgdata_room_fileposition_list)($t9)
|
|
/* 0EBEA4 7F0B7374 8FAE00EC */ lw $t6, 0xec($sp)
|
|
/* 0EBEA8 7F0B7378 8FA90054 */ lw $t1, 0x54($sp)
|
|
/* 0EBEAC 7F0B737C 02382021 */ addu $a0, $s1, $t8
|
|
/* 0EBEB0 7F0B7380 8FB80148 */ lw $t8, 0x148($sp)
|
|
/* 0EBEB4 7F0B7384 8FAC0144 */ lw $t4, 0x144($sp)
|
|
/* 0EBEB8 7F0B7388 8FAA0140 */ lw $t2, 0x140($sp)
|
|
/* 0EBEBC 7F0B738C 000D7900 */ sll $t7, $t5, 4
|
|
/* 0EBEC0 7F0B7390 27AD00F8 */ addiu $t5, $sp, 0xf8
|
|
/* 0EBEC4 7F0B7394 000E5900 */ sll $t3, $t6, 4
|
|
/* 0EBEC8 7F0B7398 01393821 */ addu $a3, $t1, $t9
|
|
/* 0EBECC 7F0B739C 24E7000C */ addiu $a3, $a3, 0xc
|
|
/* 0EBED0 7F0B73A0 022B3021 */ addu $a2, $s1, $t3
|
|
/* 0EBED4 7F0B73A4 AFAD001C */ sw $t5, 0x1c($sp)
|
|
/* 0EBED8 7F0B73A8 022F2821 */ addu $a1, $s1, $t7
|
|
/* 0EBEDC 7F0B73AC AFB80018 */ sw $t8, 0x18($sp)
|
|
/* 0EBEE0 7F0B73B0 AFAC0014 */ sw $t4, 0x14($sp)
|
|
/* 0EBEE4 7F0B73B4 0FC24A24 */ jal sub_GAME_7F092890
|
|
/* 0EBEE8 7F0B73B8 AFAA0010 */ sw $t2, 0x10($sp)
|
|
/* 0EBEEC 7F0B73BC 1040019A */ beqz $v0, .L7F0B7A28
|
|
/* 0EBEF0 7F0B73C0 27A800A8 */ addiu $t0, $sp, 0xa8
|
|
/* 0EBEF4 7F0B73C4 8FA60140 */ lw $a2, 0x140($sp)
|
|
/* 0EBEF8 7F0B73C8 C7A400F8 */ lwc1 $f4, 0xf8($sp)
|
|
/* 0EBEFC 7F0B73CC C7B000FC */ lwc1 $f16, 0xfc($sp)
|
|
/* 0EBF00 7F0B73D0 C4C80000 */ lwc1 $f8, ($a2)
|
|
/* 0EBF04 7F0B73D4 4600218D */ trunc.w.s $f6, $f4
|
|
/* 0EBF08 7F0B73D8 C4C40004 */ lwc1 $f4, 4($a2)
|
|
/* 0EBF0C 7F0B73DC 02601025 */ move $v0, $s3
|
|
/* 0EBF10 7F0B73E0 4600428D */ trunc.w.s $f10, $f8
|
|
/* 0EBF14 7F0B73E4 440E3000 */ mfc1 $t6, $f6
|
|
/* 0EBF18 7F0B73E8 C7A80100 */ lwc1 $f8, 0x100($sp)
|
|
/* 0EBF1C 7F0B73EC 4600848D */ trunc.w.s $f18, $f16
|
|
/* 0EBF20 7F0B73F0 44095000 */ mfc1 $t1, $f10
|
|
/* 0EBF24 7F0B73F4 C4D00008 */ lwc1 $f16, 8($a2)
|
|
/* 0EBF28 7F0B73F8 4600218D */ trunc.w.s $f6, $f4
|
|
/* 0EBF2C 7F0B73FC 01C91823 */ subu $v1, $t6, $t1
|
|
/* 0EBF30 7F0B7400 00630019 */ multu $v1, $v1
|
|
/* 0EBF34 7F0B7404 440A9000 */ mfc1 $t2, $f18
|
|
/* 0EBF38 7F0B7408 44183000 */ mfc1 $t8, $f6
|
|
/* 0EBF3C 7F0B740C 4600428D */ trunc.w.s $f10, $f8
|
|
/* 0EBF40 7F0B7410 8FAB0064 */ lw $t3, 0x64($sp)
|
|
/* 0EBF44 7F0B7414 01582023 */ subu $a0, $t2, $t8
|
|
/* 0EBF48 7F0B7418 4600848D */ trunc.w.s $f18, $f16
|
|
/* 0EBF4C 7F0B741C 440F5000 */ mfc1 $t7, $f10
|
|
/* 0EBF50 7F0B7420 24180001 */ li $t8, 1
|
|
/* 0EBF54 7F0B7424 AFB8012C */ sw $t8, 0x12c($sp)
|
|
/* 0EBF58 7F0B7428 00004812 */ mflo $t1
|
|
/* 0EBF5C 7F0B742C 440E9000 */ mfc1 $t6, $f18
|
|
/* 0EBF60 7F0B7430 926D0000 */ lbu $t5, ($s3)
|
|
/* 0EBF64 7F0B7434 00840019 */ multu $a0, $a0
|
|
/* 0EBF68 7F0B7438 01EE2823 */ subu $a1, $t7, $t6
|
|
/* 0EBF6C 7F0B743C 8FAE0064 */ lw $t6, 0x64($sp)
|
|
/* 0EBF70 7F0B7440 0000C812 */ mflo $t9
|
|
/* 0EBF74 7F0B7444 01396021 */ addu $t4, $t1, $t9
|
|
/* 0EBF78 7F0B7448 00000000 */ nop
|
|
/* 0EBF7C 7F0B744C 00A50019 */ multu $a1, $a1
|
|
/* 0EBF80 7F0B7450 00005012 */ mflo $t2
|
|
/* 0EBF84 7F0B7454 018A9021 */ addu $s2, $t4, $t2
|
|
/* 0EBF88 7F0B7458 12CD000C */ beq $s6, $t5, .L7F0B748C
|
|
/* 0EBF8C 7F0B745C 0240F025 */ move $fp, $s2
|
|
/* 0EBF90 7F0B7460 8D630008 */ lw $v1, 8($t3)
|
|
/* 0EBF94 7F0B7464 0073082B */ sltu $at, $v1, $s3
|
|
/* 0EBF98 7F0B7468 50200009 */ beql $at, $zero, .L7F0B7490
|
|
/* 0EBF9C 7F0B746C 8DC90008 */ lw $t1, 8($t6)
|
|
/* 0EBFA0 7F0B7470 904FFFF8 */ lbu $t7, -8($v0)
|
|
.L7F0B7474:
|
|
/* 0EBFA4 7F0B7474 2442FFF8 */ addiu $v0, $v0, -8
|
|
/* 0EBFA8 7F0B7478 0062082B */ sltu $at, $v1, $v0
|
|
/* 0EBFAC 7F0B747C 52CF0004 */ beql $s6, $t7, .L7F0B7490
|
|
/* 0EBFB0 7F0B7480 8DC90008 */ lw $t1, 8($t6)
|
|
/* 0EBFB4 7F0B7484 5420FFFB */ bnezl $at, .L7F0B7474
|
|
/* 0EBFB8 7F0B7488 904FFFF8 */ lbu $t7, -8($v0)
|
|
.L7F0B748C:
|
|
/* 0EBFBC 7F0B748C 8DC90008 */ lw $t1, 8($t6)
|
|
.L7F0B7490:
|
|
/* 0EBFC0 7F0B7490 54490004 */ bnel $v0, $t1, .L7F0B74A4
|
|
/* 0EBFC4 7F0B7494 8C430004 */ lw $v1, 4($v0)
|
|
/* 0EBFC8 7F0B7498 10000006 */ b .L7F0B74B4
|
|
/* 0EBFCC 7F0B749C 2410FFFF */ li $s0, -1
|
|
/* 0EBFD0 7F0B74A0 8C430004 */ lw $v1, 4($v0)
|
|
.L7F0B74A4:
|
|
/* 0EBFD4 7F0B74A4 3C018000 */ lui $at, 0x8000
|
|
/* 0EBFD8 7F0B74A8 2463FFF8 */ addiu $v1, $v1, -8
|
|
/* 0EBFDC 7F0B74AC 0061C825 */ or $t9, $v1, $at
|
|
/* 0EBFE0 7F0B74B0 97300000 */ lhu $s0, ($t9)
|
|
.L7F0B74B4:
|
|
/* 0EBFE4 7F0B74B4 0FC2ED8C */ jal check_if_imageID_is_light
|
|
/* 0EBFE8 7F0B74B8 02002025 */ move $a0, $s0
|
|
/* 0EBFEC 7F0B74BC 10400002 */ beqz $v0, .L7F0B74C8
|
|
/* 0EBFF0 7F0B74C0 27A800A8 */ addiu $t0, $sp, 0xa8
|
|
/* 0EBFF4 7F0B74C4 265EFFFC */ addiu $fp, $s2, -4
|
|
.L7F0B74C8:
|
|
/* 0EBFF8 7F0B74C8 8FAC00F0 */ lw $t4, 0xf0($sp)
|
|
/* 0EBFFC 7F0B74CC 03CC082A */ slt $at, $fp, $t4
|
|
/* 0EC000 7F0B74D0 10200155 */ beqz $at, .L7F0B7A28
|
|
/* 0EC004 7F0B74D4 240104FD */ li $at, 1277
|
|
/* 0EC008 7F0B74D8 52010154 */ beql $s0, $at, .L7F0B7A2C
|
|
/* 0EC00C 7F0B74DC 82620008 */ lb $v0, 8($s3)
|
|
/* 0EC010 7F0B74E0 C7A400F8 */ lwc1 $f4, 0xf8($sp)
|
|
/* 0EC014 7F0B74E4 AFBE00F0 */ sw $fp, 0xf0($sp)
|
|
/* 0EC018 7F0B74E8 E6840000 */ swc1 $f4, ($s4)
|
|
/* 0EC01C 7F0B74EC C7A600FC */ lwc1 $f6, 0xfc($sp)
|
|
/* 0EC020 7F0B74F0 E6860004 */ swc1 $f6, 4($s4)
|
|
/* 0EC024 7F0B74F4 C7A80100 */ lwc1 $f8, 0x100($sp)
|
|
/* 0EC028 7F0B74F8 E6880008 */ swc1 $f8, 8($s4)
|
|
/* 0EC02C 7F0B74FC C7AA0104 */ lwc1 $f10, 0x104($sp)
|
|
/* 0EC030 7F0B7500 E68A000C */ swc1 $f10, 0xc($s4)
|
|
/* 0EC034 7F0B7504 C7B00108 */ lwc1 $f16, 0x108($sp)
|
|
/* 0EC038 7F0B7508 E6900010 */ swc1 $f16, 0x10($s4)
|
|
/* 0EC03C 7F0B750C C7B2010C */ lwc1 $f18, 0x10c($sp)
|
|
/* 0EC040 7F0B7510 E6920014 */ swc1 $f18, 0x14($s4)
|
|
/* 0EC044 7F0B7514 8FAA00E4 */ lw $t2, 0xe4($sp)
|
|
/* 0EC048 7F0B7518 000AC100 */ sll $t8, $t2, 4
|
|
/* 0EC04C 7F0B751C 03116821 */ addu $t5, $t8, $s1
|
|
/* 0EC050 7F0B7520 AE8D0018 */ sw $t5, 0x18($s4)
|
|
/* 0EC054 7F0B7524 8FAB00E8 */ lw $t3, 0xe8($sp)
|
|
/* 0EC058 7F0B7528 000B7900 */ sll $t7, $t3, 4
|
|
/* 0EC05C 7F0B752C 01F17021 */ addu $t6, $t7, $s1
|
|
/* 0EC060 7F0B7530 AE8E001C */ sw $t6, 0x1c($s4)
|
|
/* 0EC064 7F0B7534 8FA900EC */ lw $t1, 0xec($sp)
|
|
/* 0EC068 7F0B7538 A690002A */ sh $s0, 0x2a($s4)
|
|
/* 0EC06C 7F0B753C AE930024 */ sw $s3, 0x24($s4)
|
|
/* 0EC070 7F0B7540 0009C900 */ sll $t9, $t1, 4
|
|
/* 0EC074 7F0B7544 03316021 */ addu $t4, $t9, $s1
|
|
/* 0EC078 7F0B7548 AE8C0020 */ sw $t4, 0x20($s4)
|
|
/* 0EC07C 7F0B754C 10000136 */ b .L7F0B7A28
|
|
/* 0EC080 7F0B7550 A6800028 */ sh $zero, 0x28($s4)
|
|
.L7F0B7554:
|
|
/* 0EC084 7F0B7554 2401FFB1 */ li $at, -79
|
|
/* 0EC088 7F0B7558 14410133 */ bne $v0, $at, .L7F0B7A28
|
|
/* 0EC08C 7F0B755C 8FAA0150 */ lw $t2, 0x150($sp)
|
|
/* 0EC090 7F0B7560 000AC080 */ sll $t8, $t2, 2
|
|
/* 0EC094 7F0B7564 030AC023 */ subu $t8, $t8, $t2
|
|
/* 0EC098 7F0B7568 0018C0C0 */ sll $t8, $t8, 3
|
|
/* 0EC09C 7F0B756C AFB80054 */ sw $t8, 0x54($sp)
|
|
/* 0EC0A0 7F0B7570 0000A825 */ move $s5, $zero
|
|
.L7F0B7574:
|
|
/* 0EC0A4 7F0B7574 3C0B8004 */ lui $t3, %hi(D_80044880)
|
|
/* 0EC0A8 7F0B7578 256B4880 */ addiu $t3, %lo(D_80044880) # addiu $t3, $t3, 0x4880
|
|
/* 0EC0AC 7F0B757C 8D610000 */ lw $at, ($t3)
|
|
/* 0EC0B0 7F0B7580 27AD008C */ addiu $t5, $sp, 0x8c
|
|
/* 0EC0B4 7F0B7584 8D690004 */ lw $t1, 4($t3)
|
|
/* 0EC0B8 7F0B7588 ADA10000 */ sw $at, ($t5)
|
|
/* 0EC0BC 7F0B758C 8D610008 */ lw $at, 8($t3)
|
|
/* 0EC0C0 7F0B7590 3C0C8004 */ lui $t4, %hi(D_8004488C)
|
|
/* 0EC0C4 7F0B7594 258C488C */ addiu $t4, %lo(D_8004488C) # addiu $t4, $t4, 0x488c
|
|
/* 0EC0C8 7F0B7598 ADA90004 */ sw $t1, 4($t5)
|
|
/* 0EC0CC 7F0B759C ADA10008 */ sw $at, 8($t5)
|
|
/* 0EC0D0 7F0B75A0 8D810000 */ lw $at, ($t4)
|
|
/* 0EC0D4 7F0B75A4 27B90080 */ addiu $t9, $sp, 0x80
|
|
/* 0EC0D8 7F0B75A8 8D8E0004 */ lw $t6, 4($t4)
|
|
/* 0EC0DC 7F0B75AC AF210000 */ sw $at, ($t9)
|
|
/* 0EC0E0 7F0B75B0 8D810008 */ lw $at, 8($t4)
|
|
/* 0EC0E4 7F0B75B4 AF2E0004 */ sw $t6, 4($t9)
|
|
/* 0EC0E8 7F0B75B8 16A0000E */ bnez $s5, .L7F0B75F4
|
|
/* 0EC0EC 7F0B75BC AF210008 */ sw $at, 8($t9)
|
|
/* 0EC0F0 7F0B75C0 8E6F0004 */ lw $t7, 4($s3)
|
|
/* 0EC0F4 7F0B75C4 31ED000F */ andi $t5, $t7, 0xf
|
|
/* 0EC0F8 7F0B75C8 01B75823 */ subu $t3, $t5, $s7
|
|
/* 0EC0FC 7F0B75CC AFAB009C */ sw $t3, 0x9c($sp)
|
|
/* 0EC100 7F0B75D0 92690007 */ lbu $t1, 7($s3)
|
|
/* 0EC104 7F0B75D4 0009C102 */ srl $t8, $t1, 4
|
|
/* 0EC108 7F0B75D8 03175023 */ subu $t2, $t8, $s7
|
|
/* 0EC10C 7F0B75DC AFAA00A0 */ sw $t2, 0xa0($sp)
|
|
/* 0EC110 7F0B75E0 8E790000 */ lw $t9, ($s3)
|
|
/* 0EC114 7F0B75E4 332C000F */ andi $t4, $t9, 0xf
|
|
/* 0EC118 7F0B75E8 01977023 */ subu $t6, $t4, $s7
|
|
/* 0EC11C 7F0B75EC 1000002D */ b .L7F0B76A4
|
|
/* 0EC120 7F0B75F0 AFAE00A4 */ sw $t6, 0xa4($sp)
|
|
.L7F0B75F4:
|
|
/* 0EC124 7F0B75F4 24010001 */ li $at, 1
|
|
/* 0EC128 7F0B75F8 56A1000F */ bnel $s5, $at, .L7F0B7638
|
|
/* 0EC12C 7F0B75FC 24010002 */ li $at, 2
|
|
/* 0EC130 7F0B7600 926F0006 */ lbu $t7, 6($s3)
|
|
/* 0EC134 7F0B7604 31ED000F */ andi $t5, $t7, 0xf
|
|
/* 0EC138 7F0B7608 01B75823 */ subu $t3, $t5, $s7
|
|
/* 0EC13C 7F0B760C AFAB009C */ sw $t3, 0x9c($sp)
|
|
/* 0EC140 7F0B7610 96690006 */ lhu $t1, 6($s3)
|
|
/* 0EC144 7F0B7614 0009C302 */ srl $t8, $t1, 0xc
|
|
/* 0EC148 7F0B7618 03175023 */ subu $t2, $t8, $s7
|
|
/* 0EC14C 7F0B761C AFAA00A0 */ sw $t2, 0xa0($sp)
|
|
/* 0EC150 7F0B7620 92790003 */ lbu $t9, 3($s3)
|
|
/* 0EC154 7F0B7624 00196102 */ srl $t4, $t9, 4
|
|
/* 0EC158 7F0B7628 01977023 */ subu $t6, $t4, $s7
|
|
/* 0EC15C 7F0B762C 1000001D */ b .L7F0B76A4
|
|
/* 0EC160 7F0B7630 AFAE00A4 */ sw $t6, 0xa4($sp)
|
|
/* 0EC164 7F0B7634 24010002 */ li $at, 2
|
|
.L7F0B7638:
|
|
/* 0EC168 7F0B7638 56A1000F */ bnel $s5, $at, .L7F0B7678
|
|
/* 0EC16C 7F0B763C 926F0004 */ lbu $t7, 4($s3)
|
|
/* 0EC170 7F0B7640 966F0004 */ lhu $t7, 4($s3)
|
|
/* 0EC174 7F0B7644 31ED000F */ andi $t5, $t7, 0xf
|
|
/* 0EC178 7F0B7648 01B75823 */ subu $t3, $t5, $s7
|
|
/* 0EC17C 7F0B764C AFAB009C */ sw $t3, 0x9c($sp)
|
|
/* 0EC180 7F0B7650 92690005 */ lbu $t1, 5($s3)
|
|
/* 0EC184 7F0B7654 0009C102 */ srl $t8, $t1, 4
|
|
/* 0EC188 7F0B7658 03175023 */ subu $t2, $t8, $s7
|
|
/* 0EC18C 7F0B765C AFAA00A0 */ sw $t2, 0xa0($sp)
|
|
/* 0EC190 7F0B7660 92790002 */ lbu $t9, 2($s3)
|
|
/* 0EC194 7F0B7664 332C000F */ andi $t4, $t9, 0xf
|
|
/* 0EC198 7F0B7668 01977023 */ subu $t6, $t4, $s7
|
|
/* 0EC19C 7F0B766C 1000000D */ b .L7F0B76A4
|
|
/* 0EC1A0 7F0B7670 AFAE00A4 */ sw $t6, 0xa4($sp)
|
|
/* 0EC1A4 7F0B7674 926F0004 */ lbu $t7, 4($s3)
|
|
.L7F0B7678:
|
|
/* 0EC1A8 7F0B7678 31ED000F */ andi $t5, $t7, 0xf
|
|
/* 0EC1AC 7F0B767C 01B75823 */ subu $t3, $t5, $s7
|
|
/* 0EC1B0 7F0B7680 AFAB009C */ sw $t3, 0x9c($sp)
|
|
/* 0EC1B4 7F0B7684 8E690004 */ lw $t1, 4($s3)
|
|
/* 0EC1B8 7F0B7688 0009C702 */ srl $t8, $t1, 0x1c
|
|
/* 0EC1BC 7F0B768C 03175023 */ subu $t2, $t8, $s7
|
|
/* 0EC1C0 7F0B7690 AFAA00A0 */ sw $t2, 0xa0($sp)
|
|
/* 0EC1C4 7F0B7694 96790002 */ lhu $t9, 2($s3)
|
|
/* 0EC1C8 7F0B7698 00196302 */ srl $t4, $t9, 0xc
|
|
/* 0EC1CC 7F0B769C 01977023 */ subu $t6, $t4, $s7
|
|
/* 0EC1D0 7F0B76A0 AFAE00A4 */ sw $t6, 0xa4($sp)
|
|
.L7F0B76A4:
|
|
/* 0EC1D4 7F0B76A4 27A4009C */ addiu $a0, $sp, 0x9c
|
|
/* 0EC1D8 7F0B76A8 8C8F0000 */ lw $t7, ($a0)
|
|
.L7F0B76AC:
|
|
/* 0EC1DC 7F0B76AC 8FAB008C */ lw $t3, 0x8c($sp)
|
|
/* 0EC1E0 7F0B76B0 24840004 */ addiu $a0, $a0, 4
|
|
/* 0EC1E4 7F0B76B4 000F6900 */ sll $t5, $t7, 4
|
|
/* 0EC1E8 7F0B76B8 022D1821 */ addu $v1, $s1, $t5
|
|
/* 0EC1EC 7F0B76BC 84620000 */ lh $v0, ($v1)
|
|
/* 0EC1F0 7F0B76C0 004B082A */ slt $at, $v0, $t3
|
|
/* 0EC1F4 7F0B76C4 50200004 */ beql $at, $zero, .L7F0B76D8
|
|
/* 0EC1F8 7F0B76C8 8FA90080 */ lw $t1, 0x80($sp)
|
|
/* 0EC1FC 7F0B76CC AFA2008C */ sw $v0, 0x8c($sp)
|
|
/* 0EC200 7F0B76D0 84620000 */ lh $v0, ($v1)
|
|
/* 0EC204 7F0B76D4 8FA90080 */ lw $t1, 0x80($sp)
|
|
.L7F0B76D8:
|
|
/* 0EC208 7F0B76D8 0122082A */ slt $at, $t1, $v0
|
|
/* 0EC20C 7F0B76DC 50200003 */ beql $at, $zero, .L7F0B76EC
|
|
/* 0EC210 7F0B76E0 84620002 */ lh $v0, 2($v1)
|
|
/* 0EC214 7F0B76E4 AFA20080 */ sw $v0, 0x80($sp)
|
|
/* 0EC218 7F0B76E8 84620002 */ lh $v0, 2($v1)
|
|
.L7F0B76EC:
|
|
/* 0EC21C 7F0B76EC 8FB80090 */ lw $t8, 0x90($sp)
|
|
/* 0EC220 7F0B76F0 0058082A */ slt $at, $v0, $t8
|
|
/* 0EC224 7F0B76F4 50200004 */ beql $at, $zero, .L7F0B7708
|
|
/* 0EC228 7F0B76F8 8FAA0084 */ lw $t2, 0x84($sp)
|
|
/* 0EC22C 7F0B76FC AFA20090 */ sw $v0, 0x90($sp)
|
|
/* 0EC230 7F0B7700 84620002 */ lh $v0, 2($v1)
|
|
/* 0EC234 7F0B7704 8FAA0084 */ lw $t2, 0x84($sp)
|
|
.L7F0B7708:
|
|
/* 0EC238 7F0B7708 0142082A */ slt $at, $t2, $v0
|
|
/* 0EC23C 7F0B770C 50200003 */ beql $at, $zero, .L7F0B771C
|
|
/* 0EC240 7F0B7710 84620004 */ lh $v0, 4($v1)
|
|
/* 0EC244 7F0B7714 AFA20084 */ sw $v0, 0x84($sp)
|
|
/* 0EC248 7F0B7718 84620004 */ lh $v0, 4($v1)
|
|
.L7F0B771C:
|
|
/* 0EC24C 7F0B771C 8FB90094 */ lw $t9, 0x94($sp)
|
|
/* 0EC250 7F0B7720 0059082A */ slt $at, $v0, $t9
|
|
/* 0EC254 7F0B7724 50200004 */ beql $at, $zero, .L7F0B7738
|
|
/* 0EC258 7F0B7728 8FAC0088 */ lw $t4, 0x88($sp)
|
|
/* 0EC25C 7F0B772C AFA20094 */ sw $v0, 0x94($sp)
|
|
/* 0EC260 7F0B7730 84620004 */ lh $v0, 4($v1)
|
|
/* 0EC264 7F0B7734 8FAC0088 */ lw $t4, 0x88($sp)
|
|
.L7F0B7738:
|
|
/* 0EC268 7F0B7738 0182082A */ slt $at, $t4, $v0
|
|
/* 0EC26C 7F0B773C 10200002 */ beqz $at, .L7F0B7748
|
|
/* 0EC270 7F0B7740 00000000 */ nop
|
|
/* 0EC274 7F0B7744 AFA20088 */ sw $v0, 0x88($sp)
|
|
.L7F0B7748:
|
|
/* 0EC278 7F0B7748 5488FFD8 */ bnel $a0, $t0, .L7F0B76AC
|
|
/* 0EC27C 7F0B774C 8C8F0000 */ lw $t7, ($a0)
|
|
/* 0EC280 7F0B7750 3C0E8008 */ lui $t6, %hi(ptr_bgdata_room_fileposition_list)
|
|
/* 0EC284 7F0B7754 8DCEFF8C */ lw $t6, %lo(ptr_bgdata_room_fileposition_list)($t6)
|
|
/* 0EC288 7F0B7758 8FAF0054 */ lw $t7, 0x54($sp)
|
|
/* 0EC28C 7F0B775C 8FAD008C */ lw $t5, 0x8c($sp)
|
|
/* 0EC290 7F0B7760 8FAA0090 */ lw $t2, 0x90($sp)
|
|
/* 0EC294 7F0B7764 01CF1021 */ addu $v0, $t6, $t7
|
|
/* 0EC298 7F0B7768 C444000C */ lwc1 $f4, 0xc($v0)
|
|
/* 0EC29C 7F0B776C 8FAF0094 */ lw $t7, 0x94($sp)
|
|
/* 0EC2A0 7F0B7770 8FA40140 */ lw $a0, 0x140($sp)
|
|
/* 0EC2A4 7F0B7774 4600218D */ trunc.w.s $f6, $f4
|
|
/* 0EC2A8 7F0B7778 8FA50148 */ lw $a1, 0x148($sp)
|
|
/* 0EC2AC 7F0B777C 27A6008C */ addiu $a2, $sp, 0x8c
|
|
/* 0EC2B0 7F0B7780 27A70080 */ addiu $a3, $sp, 0x80
|
|
/* 0EC2B4 7F0B7784 44093000 */ mfc1 $t1, $f6
|
|
/* 0EC2B8 7F0B7788 00000000 */ nop
|
|
/* 0EC2BC 7F0B778C 01A9C021 */ addu $t8, $t5, $t1
|
|
/* 0EC2C0 7F0B7790 AFB8008C */ sw $t8, 0x8c($sp)
|
|
/* 0EC2C4 7F0B7794 C4480010 */ lwc1 $f8, 0x10($v0)
|
|
/* 0EC2C8 7F0B7798 8FB80080 */ lw $t8, 0x80($sp)
|
|
/* 0EC2CC 7F0B779C 4600428D */ trunc.w.s $f10, $f8
|
|
/* 0EC2D0 7F0B77A0 440C5000 */ mfc1 $t4, $f10
|
|
/* 0EC2D4 7F0B77A4 00000000 */ nop
|
|
/* 0EC2D8 7F0B77A8 014C7021 */ addu $t6, $t2, $t4
|
|
/* 0EC2DC 7F0B77AC AFAE0090 */ sw $t6, 0x90($sp)
|
|
/* 0EC2E0 7F0B77B0 C4500014 */ lwc1 $f16, 0x14($v0)
|
|
/* 0EC2E4 7F0B77B4 8FAE0084 */ lw $t6, 0x84($sp)
|
|
/* 0EC2E8 7F0B77B8 4600848D */ trunc.w.s $f18, $f16
|
|
/* 0EC2EC 7F0B77BC 440D9000 */ mfc1 $t5, $f18
|
|
/* 0EC2F0 7F0B77C0 00000000 */ nop
|
|
/* 0EC2F4 7F0B77C4 01ED4821 */ addu $t1, $t7, $t5
|
|
/* 0EC2F8 7F0B77C8 AFA90094 */ sw $t1, 0x94($sp)
|
|
/* 0EC2FC 7F0B77CC C444000C */ lwc1 $f4, 0xc($v0)
|
|
/* 0EC300 7F0B77D0 8FA90088 */ lw $t1, 0x88($sp)
|
|
/* 0EC304 7F0B77D4 4600218D */ trunc.w.s $f6, $f4
|
|
/* 0EC308 7F0B77D8 440A3000 */ mfc1 $t2, $f6
|
|
/* 0EC30C 7F0B77DC 00000000 */ nop
|
|
/* 0EC310 7F0B77E0 030A6021 */ addu $t4, $t8, $t2
|
|
/* 0EC314 7F0B77E4 AFAC0080 */ sw $t4, 0x80($sp)
|
|
/* 0EC318 7F0B77E8 C4480010 */ lwc1 $f8, 0x10($v0)
|
|
/* 0EC31C 7F0B77EC 4600428D */ trunc.w.s $f10, $f8
|
|
/* 0EC320 7F0B77F0 440F5000 */ mfc1 $t7, $f10
|
|
/* 0EC324 7F0B77F4 00000000 */ nop
|
|
/* 0EC328 7F0B77F8 01CF6821 */ addu $t5, $t6, $t7
|
|
/* 0EC32C 7F0B77FC AFAD0084 */ sw $t5, 0x84($sp)
|
|
/* 0EC330 7F0B7800 C4500014 */ lwc1 $f16, 0x14($v0)
|
|
/* 0EC334 7F0B7804 4600848D */ trunc.w.s $f18, $f16
|
|
/* 0EC338 7F0B7808 44189000 */ mfc1 $t8, $f18
|
|
/* 0EC33C 7F0B780C 00000000 */ nop
|
|
/* 0EC340 7F0B7810 01385021 */ addu $t2, $t1, $t8
|
|
/* 0EC344 7F0B7814 0FC2DB3B */ jal bgTestLineIntersectsBbox
|
|
/* 0EC348 7F0B7818 AFAA0088 */ sw $t2, 0x88($sp)
|
|
/* 0EC34C 7F0B781C 1040007E */ beqz $v0, .L7F0B7A18
|
|
/* 0EC350 7F0B7820 27A800A8 */ addiu $t0, $sp, 0xa8
|
|
/* 0EC354 7F0B7824 8FAC009C */ lw $t4, 0x9c($sp)
|
|
/* 0EC358 7F0B7828 8FAE00A0 */ lw $t6, 0xa0($sp)
|
|
/* 0EC35C 7F0B782C 3C188008 */ lui $t8, %hi(ptr_bgdata_room_fileposition_list)
|
|
/* 0EC360 7F0B7830 000C5900 */ sll $t3, $t4, 4
|
|
/* 0EC364 7F0B7834 8F18FF8C */ lw $t8, %lo(ptr_bgdata_room_fileposition_list)($t8)
|
|
/* 0EC368 7F0B7838 8FAD00A4 */ lw $t5, 0xa4($sp)
|
|
/* 0EC36C 7F0B783C 8FA90054 */ lw $t1, 0x54($sp)
|
|
/* 0EC370 7F0B7840 022B2021 */ addu $a0, $s1, $t3
|
|
/* 0EC374 7F0B7844 8FAB0148 */ lw $t3, 0x148($sp)
|
|
/* 0EC378 7F0B7848 8FAC0144 */ lw $t4, 0x144($sp)
|
|
/* 0EC37C 7F0B784C 8FAA0140 */ lw $t2, 0x140($sp)
|
|
/* 0EC380 7F0B7850 000E7900 */ sll $t7, $t6, 4
|
|
/* 0EC384 7F0B7854 27AE00F8 */ addiu $t6, $sp, 0xf8
|
|
/* 0EC388 7F0B7858 000DC900 */ sll $t9, $t5, 4
|
|
/* 0EC38C 7F0B785C 01383821 */ addu $a3, $t1, $t8
|
|
/* 0EC390 7F0B7860 24E7000C */ addiu $a3, $a3, 0xc
|
|
/* 0EC394 7F0B7864 02393021 */ addu $a2, $s1, $t9
|
|
/* 0EC398 7F0B7868 AFAE001C */ sw $t6, 0x1c($sp)
|
|
/* 0EC39C 7F0B786C 022F2821 */ addu $a1, $s1, $t7
|
|
/* 0EC3A0 7F0B7870 AFAB0018 */ sw $t3, 0x18($sp)
|
|
/* 0EC3A4 7F0B7874 AFAC0014 */ sw $t4, 0x14($sp)
|
|
/* 0EC3A8 7F0B7878 0FC24A24 */ jal sub_GAME_7F092890
|
|
/* 0EC3AC 7F0B787C AFAA0010 */ sw $t2, 0x10($sp)
|
|
/* 0EC3B0 7F0B7880 10400065 */ beqz $v0, .L7F0B7A18
|
|
/* 0EC3B4 7F0B7884 27A800A8 */ addiu $t0, $sp, 0xa8
|
|
/* 0EC3B8 7F0B7888 8FA60140 */ lw $a2, 0x140($sp)
|
|
/* 0EC3BC 7F0B788C C7A400F8 */ lwc1 $f4, 0xf8($sp)
|
|
/* 0EC3C0 7F0B7890 C7B000FC */ lwc1 $f16, 0xfc($sp)
|
|
/* 0EC3C4 7F0B7894 C4C80000 */ lwc1 $f8, ($a2)
|
|
/* 0EC3C8 7F0B7898 4600218D */ trunc.w.s $f6, $f4
|
|
/* 0EC3CC 7F0B789C C4C40004 */ lwc1 $f4, 4($a2)
|
|
/* 0EC3D0 7F0B78A0 02601025 */ move $v0, $s3
|
|
/* 0EC3D4 7F0B78A4 4600428D */ trunc.w.s $f10, $f8
|
|
/* 0EC3D8 7F0B78A8 440D3000 */ mfc1 $t5, $f6
|
|
/* 0EC3DC 7F0B78AC C7A80100 */ lwc1 $f8, 0x100($sp)
|
|
/* 0EC3E0 7F0B78B0 4600848D */ trunc.w.s $f18, $f16
|
|
/* 0EC3E4 7F0B78B4 44095000 */ mfc1 $t1, $f10
|
|
/* 0EC3E8 7F0B78B8 C4D00008 */ lwc1 $f16, 8($a2)
|
|
/* 0EC3EC 7F0B78BC 4600218D */ trunc.w.s $f6, $f4
|
|
/* 0EC3F0 7F0B78C0 01A91823 */ subu $v1, $t5, $t1
|
|
/* 0EC3F4 7F0B78C4 00630019 */ multu $v1, $v1
|
|
/* 0EC3F8 7F0B78C8 440A9000 */ mfc1 $t2, $f18
|
|
/* 0EC3FC 7F0B78CC 440B3000 */ mfc1 $t3, $f6
|
|
/* 0EC400 7F0B78D0 4600428D */ trunc.w.s $f10, $f8
|
|
/* 0EC404 7F0B78D4 8FB90064 */ lw $t9, 0x64($sp)
|
|
/* 0EC408 7F0B78D8 014B2023 */ subu $a0, $t2, $t3
|
|
/* 0EC40C 7F0B78DC 4600848D */ trunc.w.s $f18, $f16
|
|
/* 0EC410 7F0B78E0 440F5000 */ mfc1 $t7, $f10
|
|
/* 0EC414 7F0B78E4 240B0001 */ li $t3, 1
|
|
/* 0EC418 7F0B78E8 AFAB012C */ sw $t3, 0x12c($sp)
|
|
/* 0EC41C 7F0B78EC 00004812 */ mflo $t1
|
|
/* 0EC420 7F0B78F0 440D9000 */ mfc1 $t5, $f18
|
|
/* 0EC424 7F0B78F4 926E0000 */ lbu $t6, ($s3)
|
|
/* 0EC428 7F0B78F8 00840019 */ multu $a0, $a0
|
|
/* 0EC42C 7F0B78FC 01ED2823 */ subu $a1, $t7, $t5
|
|
/* 0EC430 7F0B7900 8FAD0064 */ lw $t5, 0x64($sp)
|
|
/* 0EC434 7F0B7904 0000C012 */ mflo $t8
|
|
/* 0EC438 7F0B7908 01386021 */ addu $t4, $t1, $t8
|
|
/* 0EC43C 7F0B790C 00000000 */ nop
|
|
/* 0EC440 7F0B7910 00A50019 */ multu $a1, $a1
|
|
/* 0EC444 7F0B7914 00005012 */ mflo $t2
|
|
/* 0EC448 7F0B7918 018A9021 */ addu $s2, $t4, $t2
|
|
/* 0EC44C 7F0B791C 12CE000C */ beq $s6, $t6, .L7F0B7950
|
|
/* 0EC450 7F0B7920 0240F025 */ move $fp, $s2
|
|
/* 0EC454 7F0B7924 8F230008 */ lw $v1, 8($t9)
|
|
/* 0EC458 7F0B7928 0073082B */ sltu $at, $v1, $s3
|
|
/* 0EC45C 7F0B792C 50200009 */ beql $at, $zero, .L7F0B7954
|
|
/* 0EC460 7F0B7930 8DA90008 */ lw $t1, 8($t5)
|
|
/* 0EC464 7F0B7934 904FFFF8 */ lbu $t7, -8($v0)
|
|
.L7F0B7938:
|
|
/* 0EC468 7F0B7938 2442FFF8 */ addiu $v0, $v0, -8
|
|
/* 0EC46C 7F0B793C 0062082B */ sltu $at, $v1, $v0
|
|
/* 0EC470 7F0B7940 52CF0004 */ beql $s6, $t7, .L7F0B7954
|
|
/* 0EC474 7F0B7944 8DA90008 */ lw $t1, 8($t5)
|
|
/* 0EC478 7F0B7948 5420FFFB */ bnezl $at, .L7F0B7938
|
|
/* 0EC47C 7F0B794C 904FFFF8 */ lbu $t7, -8($v0)
|
|
.L7F0B7950:
|
|
/* 0EC480 7F0B7950 8DA90008 */ lw $t1, 8($t5)
|
|
.L7F0B7954:
|
|
/* 0EC484 7F0B7954 54490004 */ bnel $v0, $t1, .L7F0B7968
|
|
/* 0EC488 7F0B7958 8C430004 */ lw $v1, 4($v0)
|
|
/* 0EC48C 7F0B795C 10000006 */ b .L7F0B7978
|
|
/* 0EC490 7F0B7960 2410FFFF */ li $s0, -1
|
|
/* 0EC494 7F0B7964 8C430004 */ lw $v1, 4($v0)
|
|
.L7F0B7968:
|
|
/* 0EC498 7F0B7968 3C018000 */ lui $at, 0x8000
|
|
/* 0EC49C 7F0B796C 2463FFF8 */ addiu $v1, $v1, -8
|
|
/* 0EC4A0 7F0B7970 0061C025 */ or $t8, $v1, $at
|
|
/* 0EC4A4 7F0B7974 97100000 */ lhu $s0, ($t8)
|
|
.L7F0B7978:
|
|
/* 0EC4A8 7F0B7978 0FC2ED8C */ jal check_if_imageID_is_light
|
|
/* 0EC4AC 7F0B797C 02002025 */ move $a0, $s0
|
|
/* 0EC4B0 7F0B7980 10400002 */ beqz $v0, .L7F0B798C
|
|
/* 0EC4B4 7F0B7984 27A800A8 */ addiu $t0, $sp, 0xa8
|
|
/* 0EC4B8 7F0B7988 265EFFFC */ addiu $fp, $s2, -4
|
|
.L7F0B798C:
|
|
/* 0EC4BC 7F0B798C 8FAC00F0 */ lw $t4, 0xf0($sp)
|
|
/* 0EC4C0 7F0B7990 03CC082A */ slt $at, $fp, $t4
|
|
/* 0EC4C4 7F0B7994 10200020 */ beqz $at, .L7F0B7A18
|
|
/* 0EC4C8 7F0B7998 240104FD */ li $at, 1277
|
|
/* 0EC4CC 7F0B799C 5201001F */ beql $s0, $at, .L7F0B7A1C
|
|
/* 0EC4D0 7F0B79A0 26B50001 */ addiu $s5, $s5, 1
|
|
/* 0EC4D4 7F0B79A4 C7A400F8 */ lwc1 $f4, 0xf8($sp)
|
|
/* 0EC4D8 7F0B79A8 AFBE00F0 */ sw $fp, 0xf0($sp)
|
|
/* 0EC4DC 7F0B79AC E6840000 */ swc1 $f4, ($s4)
|
|
/* 0EC4E0 7F0B79B0 C7A600FC */ lwc1 $f6, 0xfc($sp)
|
|
/* 0EC4E4 7F0B79B4 E6860004 */ swc1 $f6, 4($s4)
|
|
/* 0EC4E8 7F0B79B8 C7A80100 */ lwc1 $f8, 0x100($sp)
|
|
/* 0EC4EC 7F0B79BC E6880008 */ swc1 $f8, 8($s4)
|
|
/* 0EC4F0 7F0B79C0 C7AA0104 */ lwc1 $f10, 0x104($sp)
|
|
/* 0EC4F4 7F0B79C4 E68A000C */ swc1 $f10, 0xc($s4)
|
|
/* 0EC4F8 7F0B79C8 C7B00108 */ lwc1 $f16, 0x108($sp)
|
|
/* 0EC4FC 7F0B79CC E6900010 */ swc1 $f16, 0x10($s4)
|
|
/* 0EC500 7F0B79D0 C7B2010C */ lwc1 $f18, 0x10c($sp)
|
|
/* 0EC504 7F0B79D4 E6920014 */ swc1 $f18, 0x14($s4)
|
|
/* 0EC508 7F0B79D8 8FAA009C */ lw $t2, 0x9c($sp)
|
|
/* 0EC50C 7F0B79DC 000A5900 */ sll $t3, $t2, 4
|
|
/* 0EC510 7F0B79E0 01717021 */ addu $t6, $t3, $s1
|
|
/* 0EC514 7F0B79E4 AE8E0018 */ sw $t6, 0x18($s4)
|
|
/* 0EC518 7F0B79E8 8FB900A0 */ lw $t9, 0xa0($sp)
|
|
/* 0EC51C 7F0B79EC 26AA0001 */ addiu $t2, $s5, 1
|
|
/* 0EC520 7F0B79F0 00197900 */ sll $t7, $t9, 4
|
|
/* 0EC524 7F0B79F4 01F16821 */ addu $t5, $t7, $s1
|
|
/* 0EC528 7F0B79F8 AE8D001C */ sw $t5, 0x1c($s4)
|
|
/* 0EC52C 7F0B79FC 8FA900A4 */ lw $t1, 0xa4($sp)
|
|
/* 0EC530 7F0B7A00 A690002A */ sh $s0, 0x2a($s4)
|
|
/* 0EC534 7F0B7A04 AE930024 */ sw $s3, 0x24($s4)
|
|
/* 0EC538 7F0B7A08 0009C100 */ sll $t8, $t1, 4
|
|
/* 0EC53C 7F0B7A0C 03116021 */ addu $t4, $t8, $s1
|
|
/* 0EC540 7F0B7A10 AE8C0020 */ sw $t4, 0x20($s4)
|
|
/* 0EC544 7F0B7A14 A68A0028 */ sh $t2, 0x28($s4)
|
|
.L7F0B7A18:
|
|
/* 0EC548 7F0B7A18 26B50001 */ addiu $s5, $s5, 1
|
|
.L7F0B7A1C:
|
|
/* 0EC54C 7F0B7A1C 24010004 */ li $at, 4
|
|
/* 0EC550 7F0B7A20 16A1FED4 */ bne $s5, $at, .L7F0B7574
|
|
/* 0EC554 7F0B7A24 00000000 */ nop
|
|
.L7F0B7A28:
|
|
/* 0EC558 7F0B7A28 82620008 */ lb $v0, 8($s3)
|
|
.L7F0B7A2C:
|
|
/* 0EC55C 7F0B7A2C 24010004 */ li $at, 4
|
|
/* 0EC560 7F0B7A30 26730008 */ addiu $s3, $s3, 8
|
|
/* 0EC564 7F0B7A34 10410003 */ beq $v0, $at, .L7F0B7A44
|
|
/* 0EC568 7F0B7A38 2401FFB8 */ li $at, -72
|
|
/* 0EC56C 7F0B7A3C 5441FDA5 */ bnel $v0, $at, .L7F0B70D4
|
|
/* 0EC570 7F0B7A40 2401FFBF */ li $at, -65
|
|
.L7F0B7A44:
|
|
/* 0EC574 7F0B7A44 8FBF004C */ lw $ra, 0x4c($sp)
|
|
/* 0EC578 7F0B7A48 8FA2012C */ lw $v0, 0x12c($sp)
|
|
/* 0EC57C 7F0B7A4C 8FB00028 */ lw $s0, 0x28($sp)
|
|
/* 0EC580 7F0B7A50 8FB1002C */ lw $s1, 0x2c($sp)
|
|
/* 0EC584 7F0B7A54 8FB20030 */ lw $s2, 0x30($sp)
|
|
/* 0EC588 7F0B7A58 8FB30034 */ lw $s3, 0x34($sp)
|
|
/* 0EC58C 7F0B7A5C 8FB40038 */ lw $s4, 0x38($sp)
|
|
/* 0EC590 7F0B7A60 8FB5003C */ lw $s5, 0x3c($sp)
|
|
/* 0EC594 7F0B7A64 8FB60040 */ lw $s6, 0x40($sp)
|
|
/* 0EC598 7F0B7A68 8FB70044 */ lw $s7, 0x44($sp)
|
|
/* 0EC59C 7F0B7A6C 8FBE0048 */ lw $fp, 0x48($sp)
|
|
/* 0EC5A0 7F0B7A70 03E00008 */ jr $ra
|
|
/* 0EC5A4 7F0B7A74 27BD0140 */ addiu $sp, $sp, 0x140
|
|
)
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
void sub_GAME_7F0B7A78(void) {
|
|
|
|
}
|
|
#else
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B7A78
|
|
/* 0EC5A8 7F0B7A78 27BDFF28 */ addiu $sp, $sp, -0xd8
|
|
/* 0EC5AC 7F0B7A7C 3C0E7FFF */ lui $t6, (0x7FFFFFFF >> 16) # lui $t6, 0x7fff
|
|
/* 0EC5B0 7F0B7A80 35CEFFFF */ ori $t6, (0x7FFFFFFF & 0xFFFF) # ori $t6, $t6, 0xffff
|
|
/* 0EC5B4 7F0B7A84 AFBF0044 */ sw $ra, 0x44($sp)
|
|
/* 0EC5B8 7F0B7A88 AFBE0040 */ sw $fp, 0x40($sp)
|
|
/* 0EC5BC 7F0B7A8C AFB7003C */ sw $s7, 0x3c($sp)
|
|
/* 0EC5C0 7F0B7A90 AFB60038 */ sw $s6, 0x38($sp)
|
|
/* 0EC5C4 7F0B7A94 AFB50034 */ sw $s5, 0x34($sp)
|
|
/* 0EC5C8 7F0B7A98 AFB40030 */ sw $s4, 0x30($sp)
|
|
/* 0EC5CC 7F0B7A9C AFB3002C */ sw $s3, 0x2c($sp)
|
|
/* 0EC5D0 7F0B7AA0 AFB20028 */ sw $s2, 0x28($sp)
|
|
/* 0EC5D4 7F0B7AA4 AFB10024 */ sw $s1, 0x24($sp)
|
|
/* 0EC5D8 7F0B7AA8 AFB00020 */ sw $s0, 0x20($sp)
|
|
/* 0EC5DC 7F0B7AAC AFA600E0 */ sw $a2, 0xe0($sp)
|
|
/* 0EC5E0 7F0B7AB0 AFA0006C */ sw $zero, 0x6c($sp)
|
|
/* 0EC5E4 7F0B7AB4 AFAE0074 */ sw $t6, 0x74($sp)
|
|
/* 0EC5E8 7F0B7AB8 3C018004 */ lui $at, %hi(room_data_float1)
|
|
/* 0EC5EC 7F0B7ABC C42013F4 */ lwc1 $f0, %lo(room_data_float1)($at)
|
|
/* 0EC5F0 7F0B7AC0 C4840000 */ lwc1 $f4, ($a0)
|
|
/* 0EC5F4 7F0B7AC4 0006C080 */ sll $t8, $a2, 2
|
|
/* 0EC5F8 7F0B7AC8 0306C021 */ addu $t8, $t8, $a2
|
|
/* 0EC5FC 7F0B7ACC 46002182 */ mul.s $f6, $f4, $f0
|
|
/* 0EC600 7F0B7AD0 3C198004 */ lui $t9, %hi(array_room_info)
|
|
/* 0EC604 7F0B7AD4 27391414 */ addiu $t9, %lo(array_room_info) # addiu $t9, $t9, 0x1414
|
|
/* 0EC608 7F0B7AD8 0018C100 */ sll $t8, $t8, 4
|
|
/* 0EC60C 7F0B7ADC 03194021 */ addu $t0, $t8, $t9
|
|
/* 0EC610 7F0B7AE0 8D02002C */ lw $v0, 0x2c($t0)
|
|
/* 0EC614 7F0B7AE4 00E08825 */ move $s1, $a3
|
|
/* 0EC618 7F0B7AE8 E7A600C4 */ swc1 $f6, 0xc4($sp)
|
|
/* 0EC61C 7F0B7AEC C4880004 */ lwc1 $f8, 4($a0)
|
|
/* 0EC620 7F0B7AF0 46004282 */ mul.s $f10, $f8, $f0
|
|
/* 0EC624 7F0B7AF4 E7AA00C8 */ swc1 $f10, 0xc8($sp)
|
|
/* 0EC628 7F0B7AF8 C4900008 */ lwc1 $f16, 8($a0)
|
|
/* 0EC62C 7F0B7AFC 46008482 */ mul.s $f18, $f16, $f0
|
|
/* 0EC630 7F0B7B00 E7B200CC */ swc1 $f18, 0xcc($sp)
|
|
/* 0EC634 7F0B7B04 C4A40000 */ lwc1 $f4, ($a1)
|
|
/* 0EC638 7F0B7B08 46002182 */ mul.s $f6, $f4, $f0
|
|
/* 0EC63C 7F0B7B0C E7A600B8 */ swc1 $f6, 0xb8($sp)
|
|
/* 0EC640 7F0B7B10 C4A80004 */ lwc1 $f8, 4($a1)
|
|
/* 0EC644 7F0B7B14 C7A400B8 */ lwc1 $f4, 0xb8($sp)
|
|
/* 0EC648 7F0B7B18 C7A600C4 */ lwc1 $f6, 0xc4($sp)
|
|
/* 0EC64C 7F0B7B1C 46004282 */ mul.s $f10, $f8, $f0
|
|
/* 0EC650 7F0B7B20 46062201 */ sub.s $f8, $f4, $f6
|
|
/* 0EC654 7F0B7B24 C7A600CC */ lwc1 $f6, 0xcc($sp)
|
|
/* 0EC658 7F0B7B28 E7AA00BC */ swc1 $f10, 0xbc($sp)
|
|
/* 0EC65C 7F0B7B2C C4B00008 */ lwc1 $f16, 8($a1)
|
|
/* 0EC660 7F0B7B30 C7AA00BC */ lwc1 $f10, 0xbc($sp)
|
|
/* 0EC664 7F0B7B34 E7A800AC */ swc1 $f8, 0xac($sp)
|
|
/* 0EC668 7F0B7B38 46008482 */ mul.s $f18, $f16, $f0
|
|
/* 0EC66C 7F0B7B3C C7B000C8 */ lwc1 $f16, 0xc8($sp)
|
|
/* 0EC670 7F0B7B40 E7B200C0 */ swc1 $f18, 0xc0($sp)
|
|
/* 0EC674 7F0B7B44 C7A400C0 */ lwc1 $f4, 0xc0($sp)
|
|
/* 0EC678 7F0B7B48 46105481 */ sub.s $f18, $f10, $f16
|
|
/* 0EC67C 7F0B7B4C 46062201 */ sub.s $f8, $f4, $f6
|
|
/* 0EC680 7F0B7B50 E7B200B0 */ swc1 $f18, 0xb0($sp)
|
|
/* 0EC684 7F0B7B54 14400003 */ bnez $v0, .L7F0B7B64
|
|
/* 0EC688 7F0B7B58 E7A800B4 */ swc1 $f8, 0xb4($sp)
|
|
/* 0EC68C 7F0B7B5C 10000081 */ b .L7F0B7D64
|
|
/* 0EC690 7F0B7B60 00001025 */ move $v0, $zero
|
|
.L7F0B7B64:
|
|
/* 0EC694 7F0B7B64 85030030 */ lh $v1, 0x30($t0)
|
|
/* 0EC698 7F0B7B68 0000A025 */ move $s4, $zero
|
|
/* 0EC69C 7F0B7B6C 00409825 */ move $s3, $v0
|
|
/* 0EC6A0 7F0B7B70 1860005A */ blez $v1, .L7F0B7CDC
|
|
/* 0EC6A4 7F0B7B74 24550004 */ addiu $s5, $v0, 4
|
|
/* 0EC6A8 7F0B7B78 24560010 */ addiu $s6, $v0, 0x10
|
|
/* 0EC6AC 7F0B7B7C A7A300D2 */ sh $v1, 0xd2($sp)
|
|
/* 0EC6B0 7F0B7B80 AFA80058 */ sw $t0, 0x58($sp)
|
|
/* 0EC6B4 7F0B7B84 27BE00AC */ addiu $fp, $sp, 0xac
|
|
/* 0EC6B8 7F0B7B88 27B700C4 */ addiu $s7, $sp, 0xc4
|
|
.L7F0B7B8C:
|
|
/* 0EC6BC 7F0B7B8C 02E02025 */ move $a0, $s7
|
|
/* 0EC6C0 7F0B7B90 03C02825 */ move $a1, $fp
|
|
/* 0EC6C4 7F0B7B94 02A03025 */ move $a2, $s5
|
|
/* 0EC6C8 7F0B7B98 0FC2DB3B */ jal bgTestLineIntersectsBbox
|
|
/* 0EC6CC 7F0B7B9C 02C03825 */ move $a3, $s6
|
|
/* 0EC6D0 7F0B7BA0 10400047 */ beqz $v0, .L7F0B7CC0
|
|
/* 0EC6D4 7F0B7BA4 02E02025 */ move $a0, $s7
|
|
/* 0EC6D8 7F0B7BA8 8FA900E0 */ lw $t1, 0xe0($sp)
|
|
/* 0EC6DC 7F0B7BAC 27AA007C */ addiu $t2, $sp, 0x7c
|
|
/* 0EC6E0 7F0B7BB0 AFAA0014 */ sw $t2, 0x14($sp)
|
|
/* 0EC6E4 7F0B7BB4 27A500B8 */ addiu $a1, $sp, 0xb8
|
|
/* 0EC6E8 7F0B7BB8 03C03025 */ move $a2, $fp
|
|
/* 0EC6EC 7F0B7BBC 02603825 */ move $a3, $s3
|
|
/* 0EC6F0 7F0B7BC0 0FC2DC04 */ jal sub_GAME_7F0B7010
|
|
/* 0EC6F4 7F0B7BC4 AFA90010 */ sw $t1, 0x10($sp)
|
|
/* 0EC6F8 7F0B7BC8 1040003D */ beqz $v0, .L7F0B7CC0
|
|
/* 0EC6FC 7F0B7BCC C7AA007C */ lwc1 $f10, 0x7c($sp)
|
|
/* 0EC700 7F0B7BD0 C7B000C4 */ lwc1 $f16, 0xc4($sp)
|
|
/* 0EC704 7F0B7BD4 C7A60080 */ lwc1 $f6, 0x80($sp)
|
|
/* 0EC708 7F0B7BD8 C7A800C8 */ lwc1 $f8, 0xc8($sp)
|
|
/* 0EC70C 7F0B7BDC 46105481 */ sub.s $f18, $f10, $f16
|
|
/* 0EC710 7F0B7BE0 24090001 */ li $t1, 1
|
|
/* 0EC714 7F0B7BE4 AFA9006C */ sw $t1, 0x6c($sp)
|
|
/* 0EC718 7F0B7BE8 46083281 */ sub.s $f10, $f6, $f8
|
|
/* 0EC71C 7F0B7BEC 87A400A6 */ lh $a0, 0xa6($sp)
|
|
/* 0EC720 7F0B7BF0 4600910D */ trunc.w.s $f4, $f18
|
|
/* 0EC724 7F0B7BF4 C7B20084 */ lwc1 $f18, 0x84($sp)
|
|
/* 0EC728 7F0B7BF8 4600540D */ trunc.w.s $f16, $f10
|
|
/* 0EC72C 7F0B7BFC 44022000 */ mfc1 $v0, $f4
|
|
/* 0EC730 7F0B7C00 C7A400CC */ lwc1 $f4, 0xcc($sp)
|
|
/* 0EC734 7F0B7C04 00420019 */ multu $v0, $v0
|
|
/* 0EC738 7F0B7C08 44038000 */ mfc1 $v1, $f16
|
|
/* 0EC73C 7F0B7C0C 46049181 */ sub.s $f6, $f18, $f4
|
|
/* 0EC740 7F0B7C10 4600320D */ trunc.w.s $f8, $f6
|
|
/* 0EC744 7F0B7C14 00007012 */ mflo $t6
|
|
/* 0EC748 7F0B7C18 44054000 */ mfc1 $a1, $f8
|
|
/* 0EC74C 7F0B7C1C 00000000 */ nop
|
|
/* 0EC750 7F0B7C20 00630019 */ multu $v1, $v1
|
|
/* 0EC754 7F0B7C24 00007812 */ mflo $t7
|
|
/* 0EC758 7F0B7C28 01CFC021 */ addu $t8, $t6, $t7
|
|
/* 0EC75C 7F0B7C2C 00000000 */ nop
|
|
/* 0EC760 7F0B7C30 00A50019 */ multu $a1, $a1
|
|
/* 0EC764 7F0B7C34 0000C812 */ mflo $t9
|
|
/* 0EC768 7F0B7C38 03199021 */ addu $s2, $t8, $t9
|
|
/* 0EC76C 7F0B7C3C 0FC2ED8C */ jal check_if_imageID_is_light
|
|
/* 0EC770 7F0B7C40 02408025 */ move $s0, $s2
|
|
/* 0EC774 7F0B7C44 10400002 */ beqz $v0, .L7F0B7C50
|
|
/* 0EC778 7F0B7C48 8FAA0074 */ lw $t2, 0x74($sp)
|
|
/* 0EC77C 7F0B7C4C 2650FFFC */ addiu $s0, $s2, -4
|
|
.L7F0B7C50:
|
|
/* 0EC780 7F0B7C50 020A082A */ slt $at, $s0, $t2
|
|
/* 0EC784 7F0B7C54 5020001B */ beql $at, $zero, .L7F0B7CC4
|
|
/* 0EC788 7F0B7C58 87B900D2 */ lh $t9, 0xd2($sp)
|
|
/* 0EC78C 7F0B7C5C C7AA007C */ lwc1 $f10, 0x7c($sp)
|
|
/* 0EC790 7F0B7C60 AFB00074 */ sw $s0, 0x74($sp)
|
|
/* 0EC794 7F0B7C64 E62A0000 */ swc1 $f10, ($s1)
|
|
/* 0EC798 7F0B7C68 C7B00080 */ lwc1 $f16, 0x80($sp)
|
|
/* 0EC79C 7F0B7C6C E6300004 */ swc1 $f16, 4($s1)
|
|
/* 0EC7A0 7F0B7C70 C7B20084 */ lwc1 $f18, 0x84($sp)
|
|
/* 0EC7A4 7F0B7C74 E6320008 */ swc1 $f18, 8($s1)
|
|
/* 0EC7A8 7F0B7C78 C7A40088 */ lwc1 $f4, 0x88($sp)
|
|
/* 0EC7AC 7F0B7C7C E624000C */ swc1 $f4, 0xc($s1)
|
|
/* 0EC7B0 7F0B7C80 C7A6008C */ lwc1 $f6, 0x8c($sp)
|
|
/* 0EC7B4 7F0B7C84 E6260010 */ swc1 $f6, 0x10($s1)
|
|
/* 0EC7B8 7F0B7C88 C7A80090 */ lwc1 $f8, 0x90($sp)
|
|
/* 0EC7BC 7F0B7C8C E6280014 */ swc1 $f8, 0x14($s1)
|
|
/* 0EC7C0 7F0B7C90 8FAB0094 */ lw $t3, 0x94($sp)
|
|
/* 0EC7C4 7F0B7C94 AE2B0018 */ sw $t3, 0x18($s1)
|
|
/* 0EC7C8 7F0B7C98 8FAC0098 */ lw $t4, 0x98($sp)
|
|
/* 0EC7CC 7F0B7C9C AE2C001C */ sw $t4, 0x1c($s1)
|
|
/* 0EC7D0 7F0B7CA0 8FAD009C */ lw $t5, 0x9c($sp)
|
|
/* 0EC7D4 7F0B7CA4 AE2D0020 */ sw $t5, 0x20($s1)
|
|
/* 0EC7D8 7F0B7CA8 87AE00A6 */ lh $t6, 0xa6($sp)
|
|
/* 0EC7DC 7F0B7CAC A62E002A */ sh $t6, 0x2a($s1)
|
|
/* 0EC7E0 7F0B7CB0 8FAF00A0 */ lw $t7, 0xa0($sp)
|
|
/* 0EC7E4 7F0B7CB4 AE2F0024 */ sw $t7, 0x24($s1)
|
|
/* 0EC7E8 7F0B7CB8 87B800A4 */ lh $t8, 0xa4($sp)
|
|
/* 0EC7EC 7F0B7CBC A6380028 */ sh $t8, 0x28($s1)
|
|
.L7F0B7CC0:
|
|
/* 0EC7F0 7F0B7CC0 87B900D2 */ lh $t9, 0xd2($sp)
|
|
.L7F0B7CC4:
|
|
/* 0EC7F4 7F0B7CC4 26940001 */ addiu $s4, $s4, 1
|
|
/* 0EC7F8 7F0B7CC8 2673001C */ addiu $s3, $s3, 0x1c
|
|
/* 0EC7FC 7F0B7CCC 26B5001C */ addiu $s5, $s5, 0x1c
|
|
/* 0EC800 7F0B7CD0 1699FFAE */ bne $s4, $t9, .L7F0B7B8C
|
|
/* 0EC804 7F0B7CD4 26D6001C */ addiu $s6, $s6, 0x1c
|
|
/* 0EC808 7F0B7CD8 8FA80058 */ lw $t0, 0x58($sp)
|
|
.L7F0B7CDC:
|
|
/* 0EC80C 7F0B7CDC 8FA9006C */ lw $t1, 0x6c($sp)
|
|
/* 0EC810 7F0B7CE0 51200020 */ beql $t1, $zero, .L7F0B7D64
|
|
/* 0EC814 7F0B7CE4 8FA2006C */ lw $v0, 0x6c($sp)
|
|
/* 0EC818 7F0B7CE8 8E220024 */ lw $v0, 0x24($s1)
|
|
/* 0EC81C 7F0B7CEC 240400F5 */ li $a0, 245
|
|
/* 0EC820 7F0B7CF0 904A0000 */ lbu $t2, ($v0)
|
|
/* 0EC824 7F0B7CF4 508A000D */ beql $a0, $t2, .L7F0B7D2C
|
|
/* 0EC828 7F0B7CF8 8D0C0008 */ lw $t4, 8($t0)
|
|
/* 0EC82C 7F0B7CFC 8D030008 */ lw $v1, 8($t0)
|
|
/* 0EC830 7F0B7D00 0062082B */ sltu $at, $v1, $v0
|
|
/* 0EC834 7F0B7D04 50200009 */ beql $at, $zero, .L7F0B7D2C
|
|
/* 0EC838 7F0B7D08 8D0C0008 */ lw $t4, 8($t0)
|
|
/* 0EC83C 7F0B7D0C 904BFFF8 */ lbu $t3, -8($v0)
|
|
.L7F0B7D10:
|
|
/* 0EC840 7F0B7D10 2442FFF8 */ addiu $v0, $v0, -8
|
|
/* 0EC844 7F0B7D14 0062082B */ sltu $at, $v1, $v0
|
|
/* 0EC848 7F0B7D18 508B0004 */ beql $a0, $t3, .L7F0B7D2C
|
|
/* 0EC84C 7F0B7D1C 8D0C0008 */ lw $t4, 8($t0)
|
|
/* 0EC850 7F0B7D20 5420FFFB */ bnezl $at, .L7F0B7D10
|
|
/* 0EC854 7F0B7D24 904BFFF8 */ lbu $t3, -8($v0)
|
|
/* 0EC858 7F0B7D28 8D0C0008 */ lw $t4, 8($t0)
|
|
.L7F0B7D2C:
|
|
/* 0EC85C 7F0B7D2C 544C0006 */ bnel $v0, $t4, .L7F0B7D48
|
|
/* 0EC860 7F0B7D30 904D0001 */ lbu $t5, 1($v0)
|
|
/* 0EC864 7F0B7D34 2402FFFF */ li $v0, -1
|
|
/* 0EC868 7F0B7D38 A622002C */ sh $v0, 0x2c($s1)
|
|
/* 0EC86C 7F0B7D3C 10000008 */ b .L7F0B7D60
|
|
/* 0EC870 7F0B7D40 A622002E */ sh $v0, 0x2e($s1)
|
|
/* 0EC874 7F0B7D44 904D0001 */ lbu $t5, 1($v0)
|
|
.L7F0B7D48:
|
|
/* 0EC878 7F0B7D48 000D7142 */ srl $t6, $t5, 5
|
|
/* 0EC87C 7F0B7D4C A62E002C */ sh $t6, 0x2c($s1)
|
|
/* 0EC880 7F0B7D50 8C4F0000 */ lw $t7, ($v0)
|
|
/* 0EC884 7F0B7D54 000FC2C0 */ sll $t8, $t7, 0xb
|
|
/* 0EC888 7F0B7D58 0018CF82 */ srl $t9, $t8, 0x1e
|
|
/* 0EC88C 7F0B7D5C A639002E */ sh $t9, 0x2e($s1)
|
|
.L7F0B7D60:
|
|
/* 0EC890 7F0B7D60 8FA2006C */ lw $v0, 0x6c($sp)
|
|
.L7F0B7D64:
|
|
/* 0EC894 7F0B7D64 8FBF0044 */ lw $ra, 0x44($sp)
|
|
/* 0EC898 7F0B7D68 8FB00020 */ lw $s0, 0x20($sp)
|
|
/* 0EC89C 7F0B7D6C 8FB10024 */ lw $s1, 0x24($sp)
|
|
/* 0EC8A0 7F0B7D70 8FB20028 */ lw $s2, 0x28($sp)
|
|
/* 0EC8A4 7F0B7D74 8FB3002C */ lw $s3, 0x2c($sp)
|
|
/* 0EC8A8 7F0B7D78 8FB40030 */ lw $s4, 0x30($sp)
|
|
/* 0EC8AC 7F0B7D7C 8FB50034 */ lw $s5, 0x34($sp)
|
|
/* 0EC8B0 7F0B7D80 8FB60038 */ lw $s6, 0x38($sp)
|
|
/* 0EC8B4 7F0B7D84 8FB7003C */ lw $s7, 0x3c($sp)
|
|
/* 0EC8B8 7F0B7D88 8FBE0040 */ lw $fp, 0x40($sp)
|
|
/* 0EC8BC 7F0B7D8C 03E00008 */ jr $ra
|
|
/* 0EC8C0 7F0B7D90 27BD00D8 */ addiu $sp, $sp, 0xd8
|
|
)
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void sub_GAME_7F0B7D94(void) {
|
|
D_800448A0 = 0;
|
|
D_800448A4 = 0;
|
|
}
|
|
|
|
|
|
u8 sub_GAME_7F0B7DA8(s32 arg0)
|
|
{
|
|
s_room_info* room_info;
|
|
u8 tmp_flags;
|
|
u8 bitflags;
|
|
u8 out;
|
|
|
|
room_info = &array_room_info[arg0];
|
|
bitflags = room_info->bitflags2;
|
|
out = bitflags;
|
|
|
|
if ((s32) bitflags < 0xFF)
|
|
{
|
|
tmp_flags = bitflags + 1;
|
|
room_info->bitflags2 = tmp_flags;
|
|
out = tmp_flags & 0xFF;
|
|
}
|
|
|
|
return out;
|
|
}
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
void sub_GAME_7F0B7DE4(s32 arg0, s32 arg1, s32 arg2, s32 arg3, void *arg4) {
|
|
void *sp1C;
|
|
void *temp_v1;
|
|
void *temp_v0;
|
|
s32 temp_a0;
|
|
s32 phi_a0;
|
|
|
|
// Node 0
|
|
temp_v1 = ((D_800448A0 << 5) + &dword_CODE_bss_8007C100);
|
|
if ((arg3 < 2) || (sub_GAME_7F0B7DA8(((temp_v0->unk4 ^ temp_v0->unk5) ^ arg1)) < 9))
|
|
{
|
|
// Node 2
|
|
*temp_v1 = arg0;
|
|
temp_v1->unk4 = arg1;
|
|
temp_v1->unkC = (s32) arg3;
|
|
temp_v1->unk8 = arg2;
|
|
temp_v1->unk10 = (f32) *arg4;
|
|
temp_v1->unk14 = (f32) arg4->unk4;
|
|
temp_v1->unk18 = (f32) arg4->unk8;
|
|
temp_v1->unk1C = (f32) arg4->unkC;
|
|
temp_a0 = (*&D_800448A0 + 1);
|
|
*&D_800448A0 = temp_a0;
|
|
phi_a0 = temp_a0;
|
|
if (temp_a0 == 0x1f4)
|
|
{
|
|
// Node 3
|
|
*&D_800448A0 = 0;
|
|
phi_a0 = 0;
|
|
}
|
|
// Node 4
|
|
if (D_800448A4 == phi_a0)
|
|
{
|
|
// Node 5
|
|
*&D_800448A0 = (s32) (phi_a0 + -1);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
|
|
}
|
|
// Node 6
|
|
return;
|
|
}
|
|
#else
|
|
|
|
#if defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B7DE4
|
|
/* 0EC914 7F0B7DE4 3C088004 */ lui $t0, %hi(D_800448A0)
|
|
/* 0EC918 7F0B7DE8 250848A0 */ addiu $t0, %lo(D_800448A0) # addiu $t0, $t0, 0x48a0
|
|
/* 0EC91C 7F0B7DEC 8D0E0000 */ lw $t6, ($t0)
|
|
/* 0EC920 7F0B7DF0 27BDFFE0 */ addiu $sp, $sp, -0x20
|
|
/* 0EC924 7F0B7DF4 3C188008 */ lui $t8, %hi(dword_CODE_bss_8007C100)
|
|
/* 0EC928 7F0B7DF8 2718C100 */ addiu $t8, %lo(dword_CODE_bss_8007C100) # addiu $t8, $t8, -0x3f00
|
|
/* 0EC92C 7F0B7DFC 28E10002 */ slti $at, $a3, 2
|
|
/* 0EC930 7F0B7E00 000E7940 */ sll $t7, $t6, 5
|
|
/* 0EC934 7F0B7E04 AFBF0014 */ sw $ra, 0x14($sp)
|
|
/* 0EC938 7F0B7E08 AFA40020 */ sw $a0, 0x20($sp)
|
|
/* 0EC93C 7F0B7E0C AFA50024 */ sw $a1, 0x24($sp)
|
|
/* 0EC940 7F0B7E10 AFA60028 */ sw $a2, 0x28($sp)
|
|
/* 0EC944 7F0B7E14 14200012 */ bnez $at, .L7F0B7E60
|
|
/* 0EC948 7F0B7E18 01F81821 */ addu $v1, $t7, $t8
|
|
/* 0EC94C 7F0B7E1C 3C198008 */ lui $t9, %hi(g_BgPortals)
|
|
/* 0EC950 7F0B7E20 8F39FF80 */ lw $t9, %lo(g_BgPortals)($t9)
|
|
/* 0EC954 7F0B7E24 000650C0 */ sll $t2, $a2, 3
|
|
/* 0EC958 7F0B7E28 032A1021 */ addu $v0, $t9, $t2
|
|
/* 0EC95C 7F0B7E2C 904B0004 */ lbu $t3, 4($v0)
|
|
/* 0EC960 7F0B7E30 904C0005 */ lbu $t4, 5($v0)
|
|
/* 0EC964 7F0B7E34 AFA7002C */ sw $a3, 0x2c($sp)
|
|
/* 0EC968 7F0B7E38 AFA3001C */ sw $v1, 0x1c($sp)
|
|
/* 0EC96C 7F0B7E3C 016C6826 */ xor $t5, $t3, $t4
|
|
/* 0EC970 7F0B7E40 0FC2DF6A */ jal sub_GAME_7F0B7DA8
|
|
/* 0EC974 7F0B7E44 01A52026 */ xor $a0, $t5, $a1
|
|
/* 0EC978 7F0B7E48 3C088004 */ lui $t0, %hi(D_800448A0)
|
|
/* 0EC97C 7F0B7E4C 28410009 */ slti $at, $v0, 9
|
|
/* 0EC980 7F0B7E50 250848A0 */ addiu $t0, %lo(D_800448A0) # addiu $t0, $t0, 0x48a0
|
|
/* 0EC984 7F0B7E54 8FA3001C */ lw $v1, 0x1c($sp)
|
|
/* 0EC988 7F0B7E58 1020001E */ beqz $at, .L7F0B7ED4
|
|
/* 0EC98C 7F0B7E5C 8FA7002C */ lw $a3, 0x2c($sp)
|
|
.L7F0B7E60:
|
|
/* 0EC990 7F0B7E60 8FAF0020 */ lw $t7, 0x20($sp)
|
|
/* 0EC994 7F0B7E64 8FA20030 */ lw $v0, 0x30($sp)
|
|
/* 0EC998 7F0B7E68 240101F4 */ li $at, 500
|
|
/* 0EC99C 7F0B7E6C AC6F0000 */ sw $t7, ($v1)
|
|
/* 0EC9A0 7F0B7E70 8FB80024 */ lw $t8, 0x24($sp)
|
|
/* 0EC9A4 7F0B7E74 3C0B8004 */ lui $t3, %hi(D_800448A4)
|
|
/* 0EC9A8 7F0B7E78 AC780004 */ sw $t8, 4($v1)
|
|
/* 0EC9AC 7F0B7E7C 8FA90028 */ lw $t1, 0x28($sp)
|
|
/* 0EC9B0 7F0B7E80 AC67000C */ sw $a3, 0xc($v1)
|
|
/* 0EC9B4 7F0B7E84 AC690008 */ sw $t1, 8($v1)
|
|
/* 0EC9B8 7F0B7E88 C4440000 */ lwc1 $f4, ($v0)
|
|
/* 0EC9BC 7F0B7E8C E4640010 */ swc1 $f4, 0x10($v1)
|
|
/* 0EC9C0 7F0B7E90 C4460004 */ lwc1 $f6, 4($v0)
|
|
/* 0EC9C4 7F0B7E94 E4660014 */ swc1 $f6, 0x14($v1)
|
|
/* 0EC9C8 7F0B7E98 C4480008 */ lwc1 $f8, 8($v0)
|
|
/* 0EC9CC 7F0B7E9C E4680018 */ swc1 $f8, 0x18($v1)
|
|
/* 0EC9D0 7F0B7EA0 C44A000C */ lwc1 $f10, 0xc($v0)
|
|
/* 0EC9D4 7F0B7EA4 E46A001C */ swc1 $f10, 0x1c($v1)
|
|
/* 0EC9D8 7F0B7EA8 8D190000 */ lw $t9, ($t0)
|
|
/* 0EC9DC 7F0B7EAC 27240001 */ addiu $a0, $t9, 1
|
|
/* 0EC9E0 7F0B7EB0 14810003 */ bne $a0, $at, .L7F0B7EC0
|
|
/* 0EC9E4 7F0B7EB4 AD040000 */ sw $a0, ($t0)
|
|
/* 0EC9E8 7F0B7EB8 AD000000 */ sw $zero, ($t0)
|
|
/* 0EC9EC 7F0B7EBC 00002025 */ move $a0, $zero
|
|
.L7F0B7EC0:
|
|
/* 0EC9F0 7F0B7EC0 8D6B48A4 */ lw $t3, %lo(D_800448A4)($t3)
|
|
/* 0EC9F4 7F0B7EC4 248CFFFF */ addiu $t4, $a0, -1
|
|
/* 0EC9F8 7F0B7EC8 55640003 */ bnel $t3, $a0, .L7F0B7ED8
|
|
/* 0EC9FC 7F0B7ECC 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* 0ECA00 7F0B7ED0 AD0C0000 */ sw $t4, ($t0)
|
|
.L7F0B7ED4:
|
|
/* 0ECA04 7F0B7ED4 8FBF0014 */ lw $ra, 0x14($sp)
|
|
.L7F0B7ED8:
|
|
/* 0ECA08 7F0B7ED8 27BD0020 */ addiu $sp, $sp, 0x20
|
|
/* 0ECA0C 7F0B7EDC 03E00008 */ jr $ra
|
|
/* 0ECA10 7F0B7EE0 00000000 */ nop
|
|
)
|
|
#endif
|
|
|
|
#if !defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B7DE4
|
|
/* 0E9B10 7F0B7120 3C088004 */ lui $t0, %hi(D_800448A0) # $t0, 0x8004
|
|
/* 0E9B14 7F0B7124 2508DD88 */ addiu $t0, %lo(D_800448A0) # addiu $t0, $t0, -0x2278
|
|
/* 0E9B18 7F0B7128 8D0E0000 */ lw $t6, ($t0)
|
|
/* 0E9B1C 7F0B712C 27BDFFE0 */ addiu $sp, $sp, -0x20
|
|
/* 0E9B20 7F0B7130 3C188007 */ lui $t8, %hi(dword_CODE_bss_8007C100) # $t8, 0x8007
|
|
/* 0E9B24 7F0B7134 000E7880 */ sll $t7, $t6, 2
|
|
/* 0E9B28 7F0B7138 01EE7821 */ addu $t7, $t7, $t6
|
|
/* 0E9B2C 7F0B713C 000F7880 */ sll $t7, $t7, 2
|
|
/* 0E9B30 7F0B7140 2718A040 */ addiu $t8, %lo(dword_CODE_bss_8007C100) # addiu $t8, $t8, -0x5fc0
|
|
/* 0E9B34 7F0B7144 28C10002 */ slti $at, $a2, 2
|
|
/* 0E9B38 7F0B7148 AFBF0014 */ sw $ra, 0x14($sp)
|
|
/* 0E9B3C 7F0B714C AFA40020 */ sw $a0, 0x20($sp)
|
|
/* 0E9B40 7F0B7150 AFA50024 */ sw $a1, 0x24($sp)
|
|
/* 0E9B44 7F0B7154 14200014 */ bnez $at, .L7F0B71A8
|
|
/* 0E9B48 7F0B7158 01F81821 */ addu $v1, $t7, $t8
|
|
/* 0E9B4C 7F0B715C 3C198007 */ lui $t9, %hi(g_BgPortals) # $t9, 0x8007
|
|
/* 0E9B50 7F0B7160 8F39B3C8 */ lw $t9, %lo(g_BgPortals)($t9)
|
|
/* 0E9B54 7F0B7164 000550C0 */ sll $t2, $a1, 3
|
|
/* 0E9B58 7F0B7168 032A1021 */ addu $v0, $t9, $t2
|
|
/* 0E9B5C 7F0B716C 904B0004 */ lbu $t3, 4($v0)
|
|
/* 0E9B60 7F0B7170 904C0005 */ lbu $t4, 5($v0)
|
|
/* 0E9B64 7F0B7174 AFA7002C */ sw $a3, 0x2c($sp)
|
|
/* 0E9B68 7F0B7178 AFA60028 */ sw $a2, 0x28($sp)
|
|
/* 0E9B6C 7F0B717C 016C6826 */ xor $t5, $t3, $t4
|
|
/* 0E9B70 7F0B7180 01A42026 */ xor $a0, $t5, $a0
|
|
/* 0E9B74 7F0B7184 0FC2DC39 */ jal sub_GAME_7F0B7DA8
|
|
/* 0E9B78 7F0B7188 AFA3001C */ sw $v1, 0x1c($sp)
|
|
/* 0E9B7C 7F0B718C 3C088004 */ lui $t0, %hi(D_800448A0) # $t0, 0x8004
|
|
/* 0E9B80 7F0B7190 28410009 */ slti $at, $v0, 9
|
|
/* 0E9B84 7F0B7194 2508DD88 */ addiu $t0, %lo(D_800448A0) # addiu $t0, $t0, -0x2278
|
|
/* 0E9B88 7F0B7198 8FA3001C */ lw $v1, 0x1c($sp)
|
|
/* 0E9B8C 7F0B719C 8FA60028 */ lw $a2, 0x28($sp)
|
|
/* 0E9B90 7F0B71A0 1020001B */ beqz $at, .L7F0B7210
|
|
/* 0E9B94 7F0B71A4 8FA7002C */ lw $a3, 0x2c($sp)
|
|
.L7F0B71A8:
|
|
/* 0E9B98 7F0B71A8 8FAF0020 */ lw $t7, 0x20($sp)
|
|
/* 0E9B9C 7F0B71AC 240100FA */ li $at, 250
|
|
/* 0E9BA0 7F0B71B0 3C0A8004 */ lui $t2, %hi(D_800448A4) # $t2, 0x8004
|
|
/* 0E9BA4 7F0B71B4 A06F0000 */ sb $t7, ($v1)
|
|
/* 0E9BA8 7F0B71B8 8FB80024 */ lw $t8, 0x24($sp)
|
|
/* 0E9BAC 7F0B71BC A4660002 */ sh $a2, 2($v1)
|
|
/* 0E9BB0 7F0B71C0 A0780001 */ sb $t8, 1($v1)
|
|
/* 0E9BB4 7F0B71C4 C4E40000 */ lwc1 $f4, ($a3)
|
|
/* 0E9BB8 7F0B71C8 E4640004 */ swc1 $f4, 4($v1)
|
|
/* 0E9BBC 7F0B71CC C4E60004 */ lwc1 $f6, 4($a3)
|
|
/* 0E9BC0 7F0B71D0 E4660008 */ swc1 $f6, 8($v1)
|
|
/* 0E9BC4 7F0B71D4 C4E80008 */ lwc1 $f8, 8($a3)
|
|
/* 0E9BC8 7F0B71D8 E468000C */ swc1 $f8, 0xc($v1)
|
|
/* 0E9BCC 7F0B71DC C4EA000C */ lwc1 $f10, 0xc($a3)
|
|
/* 0E9BD0 7F0B71E0 E46A0010 */ swc1 $f10, 0x10($v1)
|
|
/* 0E9BD4 7F0B71E4 8D090000 */ lw $t1, ($t0)
|
|
/* 0E9BD8 7F0B71E8 25220001 */ addiu $v0, $t1, 1
|
|
/* 0E9BDC 7F0B71EC 14410003 */ bne $v0, $at, .L7F0B71FC
|
|
/* 0E9BE0 7F0B71F0 AD020000 */ sw $v0, ($t0)
|
|
/* 0E9BE4 7F0B71F4 AD000000 */ sw $zero, ($t0)
|
|
/* 0E9BE8 7F0B71F8 00001025 */ move $v0, $zero
|
|
.L7F0B71FC:
|
|
/* 0E9BEC 7F0B71FC 8D4ADD8C */ lw $t2, %lo(D_800448A4)($t2)
|
|
/* 0E9BF0 7F0B7200 244BFFFF */ addiu $t3, $v0, -1
|
|
/* 0E9BF4 7F0B7204 55420003 */ bnel $t2, $v0, .L7F0B7214
|
|
/* 0E9BF8 7F0B7208 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* 0E9BFC 7F0B720C AD0B0000 */ sw $t3, ($t0)
|
|
.L7F0B7210:
|
|
/* 0E9C00 7F0B7210 8FBF0014 */ lw $ra, 0x14($sp)
|
|
.L7F0B7214:
|
|
/* 0E9C04 7F0B7214 27BD0020 */ addiu $sp, $sp, 0x20
|
|
/* 0E9C08 7F0B7218 03E00008 */ jr $ra
|
|
/* 0E9C0C 7F0B721C 00000000 */ nop
|
|
)
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
void sub_GAME_7F0B7EE4(void) {
|
|
|
|
}
|
|
#else
|
|
|
|
#if defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B7EE4
|
|
/* 0ECA14 7F0B7EE4 27BDFFD8 */ addiu $sp, $sp, -0x28
|
|
/* 0ECA18 7F0B7EE8 3C038004 */ lui $v1, %hi(D_800448A4)
|
|
/* 0ECA1C 7F0B7EEC 246348A4 */ addiu $v1, %lo(D_800448A4) # addiu $v1, $v1, 0x48a4
|
|
/* 0ECA20 7F0B7EF0 3C188004 */ lui $t8, %hi(D_800448A0)
|
|
/* 0ECA24 7F0B7EF4 8F1848A0 */ lw $t8, %lo(D_800448A0)($t8)
|
|
/* 0ECA28 7F0B7EF8 8C680000 */ lw $t0, ($v1)
|
|
/* 0ECA2C 7F0B7EFC AFBF001C */ sw $ra, 0x1c($sp)
|
|
/* 0ECA30 7F0B7F00 AFA40028 */ sw $a0, 0x28($sp)
|
|
/* 0ECA34 7F0B7F04 8C8F0000 */ lw $t7, ($a0)
|
|
/* 0ECA38 7F0B7F08 0008C940 */ sll $t9, $t0, 5
|
|
/* 0ECA3C 7F0B7F0C 17080003 */ bne $t8, $t0, .L7F0B7F1C
|
|
/* 0ECA40 7F0B7F10 AFAF0020 */ sw $t7, 0x20($sp)
|
|
/* 0ECA44 7F0B7F14 10000017 */ b .L7F0B7F74
|
|
/* 0ECA48 7F0B7F18 00001025 */ move $v0, $zero
|
|
.L7F0B7F1C:
|
|
/* 0ECA4C 7F0B7F1C 3C098008 */ lui $t1, %hi(dword_CODE_bss_8007C100)
|
|
/* 0ECA50 7F0B7F20 2529C100 */ addiu $t1, %lo(dword_CODE_bss_8007C100) # addiu $t1, $t1, -0x3f00
|
|
/* 0ECA54 7F0B7F24 03291021 */ addu $v0, $t9, $t1
|
|
/* 0ECA58 7F0B7F28 8C450004 */ lw $a1, 4($v0)
|
|
/* 0ECA5C 7F0B7F2C 8C460008 */ lw $a2, 8($v0)
|
|
/* 0ECA60 7F0B7F30 8C47000C */ lw $a3, 0xc($v0)
|
|
/* 0ECA64 7F0B7F34 244A0010 */ addiu $t2, $v0, 0x10
|
|
/* 0ECA68 7F0B7F38 AFAA0010 */ sw $t2, 0x10($sp)
|
|
/* 0ECA6C 7F0B7F3C 0FC2DFE1 */ jal sub_GAME_7F0B7F84
|
|
/* 0ECA70 7F0B7F40 8FA40020 */ lw $a0, 0x20($sp)
|
|
/* 0ECA74 7F0B7F44 3C038004 */ lui $v1, %hi(D_800448A4)
|
|
/* 0ECA78 7F0B7F48 246348A4 */ addiu $v1, %lo(D_800448A4) # addiu $v1, $v1, 0x48a4
|
|
/* 0ECA7C 7F0B7F4C 8C6B0000 */ lw $t3, ($v1)
|
|
/* 0ECA80 7F0B7F50 240101F4 */ li $at, 500
|
|
/* 0ECA84 7F0B7F54 00402025 */ move $a0, $v0
|
|
/* 0ECA88 7F0B7F58 256C0001 */ addiu $t4, $t3, 1
|
|
/* 0ECA8C 7F0B7F5C 15810002 */ bne $t4, $at, .L7F0B7F68
|
|
/* 0ECA90 7F0B7F60 AC6C0000 */ sw $t4, ($v1)
|
|
/* 0ECA94 7F0B7F64 AC600000 */ sw $zero, ($v1)
|
|
.L7F0B7F68:
|
|
/* 0ECA98 7F0B7F68 8FAE0028 */ lw $t6, 0x28($sp)
|
|
/* 0ECA9C 7F0B7F6C 24020001 */ li $v0, 1
|
|
/* 0ECAA0 7F0B7F70 ADC40000 */ sw $a0, ($t6)
|
|
.L7F0B7F74:
|
|
/* 0ECAA4 7F0B7F74 8FBF001C */ lw $ra, 0x1c($sp)
|
|
/* 0ECAA8 7F0B7F78 27BD0028 */ addiu $sp, $sp, 0x28
|
|
/* 0ECAAC 7F0B7F7C 03E00008 */ jr $ra
|
|
/* 0ECAB0 7F0B7F80 00000000 */ nop
|
|
)
|
|
#endif
|
|
|
|
#if !defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B7EE4
|
|
/* 0E9C10 7F0B7220 3C038004 */ lui $v1, %hi(D_800448A4) # $v1, 0x8004
|
|
/* 0E9C14 7F0B7224 2463DD8C */ addiu $v1, %lo(D_800448A4) # addiu $v1, $v1, -0x2274
|
|
/* 0E9C18 7F0B7228 3C0E8004 */ lui $t6, %hi(D_800448A0) # $t6, 0x8004
|
|
/* 0E9C1C 7F0B722C 8DCEDD88 */ lw $t6, %lo(D_800448A0)($t6)
|
|
/* 0E9C20 7F0B7230 8C680000 */ lw $t0, ($v1)
|
|
/* 0E9C24 7F0B7234 27BDFFE8 */ addiu $sp, $sp, -0x18
|
|
/* 0E9C28 7F0B7238 AFBF0014 */ sw $ra, 0x14($sp)
|
|
/* 0E9C2C 7F0B723C 15C80003 */ bne $t6, $t0, .Leu7F0B724C
|
|
/* 0E9C30 7F0B7240 00087880 */ sll $t7, $t0, 2
|
|
/* 0E9C34 7F0B7244 10000014 */ b .L7F0B7298
|
|
/* 0E9C38 7F0B7248 00001025 */ move $v0, $zero
|
|
.Leu7F0B724C:
|
|
/* 0E9C3C 7F0B724C 01E87821 */ addu $t7, $t7, $t0
|
|
/* 0E9C40 7F0B7250 3C188007 */ lui $t8, %hi(dword_CODE_bss_8007C100) # $t8, 0x8007
|
|
/* 0E9C44 7F0B7254 2718A040 */ addiu $t8, %lo(dword_CODE_bss_8007C100) # addiu $t8, $t8, -0x5fc0
|
|
/* 0E9C48 7F0B7258 000F7880 */ sll $t7, $t7, 2
|
|
/* 0E9C4C 7F0B725C 01F81021 */ addu $v0, $t7, $t8
|
|
/* 0E9C50 7F0B7260 90440000 */ lbu $a0, ($v0)
|
|
/* 0E9C54 7F0B7264 90450001 */ lbu $a1, 1($v0)
|
|
/* 0E9C58 7F0B7268 84460002 */ lh $a2, 2($v0)
|
|
/* 0E9C5C 7F0B726C 0FC2DCAA */ jal sub_GAME_7F0B7F84
|
|
/* 0E9C60 7F0B7270 24470004 */ addiu $a3, $v0, 4
|
|
/* 0E9C64 7F0B7274 3C038004 */ lui $v1, %hi(D_800448A4) # $v1, 0x8004
|
|
/* 0E9C68 7F0B7278 2463DD8C */ addiu $v1, %lo(D_800448A4) # addiu $v1, $v1, -0x2274
|
|
/* 0E9C6C 7F0B727C 8C790000 */ lw $t9, ($v1)
|
|
/* 0E9C70 7F0B7280 240100FA */ li $at, 250
|
|
/* 0E9C74 7F0B7284 24020001 */ li $v0, 1
|
|
/* 0E9C78 7F0B7288 27290001 */ addiu $t1, $t9, 1
|
|
/* 0E9C7C 7F0B728C 15210002 */ bne $t1, $at, .L7F0B7298
|
|
/* 0E9C80 7F0B7290 AC690000 */ sw $t1, ($v1)
|
|
/* 0E9C84 7F0B7294 AC600000 */ sw $zero, ($v1)
|
|
.L7F0B7298:
|
|
/* 0E9C88 7F0B7298 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* 0E9C8C 7F0B729C 27BD0018 */ addiu $sp, $sp, 0x18
|
|
/* 0E9C90 7F0B72A0 03E00008 */ jr $ra
|
|
/* 0E9C94 7F0B72A4 00000000 */ nop
|
|
)
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
void sub_GAME_7F0B7F84(void) {
|
|
|
|
}
|
|
#else
|
|
|
|
#if defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B7F84
|
|
/* 0ECAB4 7F0B7F84 27BDFF80 */ addiu $sp, $sp, -0x80
|
|
/* 0ECAB8 7F0B7F88 3C028004 */ lui $v0, %hi(D_80044898)
|
|
/* 0ECABC 7F0B7F8C 24424898 */ addiu $v0, %lo(D_80044898) # addiu $v0, $v0, 0x4898
|
|
/* 0ECAC0 7F0B7F90 8C4E0000 */ lw $t6, ($v0)
|
|
/* 0ECAC4 7F0B7F94 AFB40030 */ sw $s4, 0x30($sp)
|
|
/* 0ECAC8 7F0B7F98 AFB3002C */ sw $s3, 0x2c($sp)
|
|
/* 0ECACC 7F0B7F9C AFB20028 */ sw $s2, 0x28($sp)
|
|
/* 0ECAD0 7F0B7FA0 28E10065 */ slti $at, $a3, 0x65
|
|
/* 0ECAD4 7F0B7FA4 25CF0001 */ addiu $t7, $t6, 1
|
|
/* 0ECAD8 7F0B7FA8 00809025 */ move $s2, $a0
|
|
/* 0ECADC 7F0B7FAC 00E09825 */ move $s3, $a3
|
|
/* 0ECAE0 7F0B7FB0 00C0A025 */ move $s4, $a2
|
|
/* 0ECAE4 7F0B7FB4 AFBF0034 */ sw $ra, 0x34($sp)
|
|
/* 0ECAE8 7F0B7FB8 AFB10024 */ sw $s1, 0x24($sp)
|
|
/* 0ECAEC 7F0B7FBC AFB00020 */ sw $s0, 0x20($sp)
|
|
/* 0ECAF0 7F0B7FC0 AFA50084 */ sw $a1, 0x84($sp)
|
|
/* 0ECAF4 7F0B7FC4 14200003 */ bnez $at, .L7F0B7FD4
|
|
/* 0ECAF8 7F0B7FC8 AC4F0000 */ sw $t7, ($v0)
|
|
/* 0ECAFC 7F0B7FCC 100000E1 */ b .L7F0B8354
|
|
/* 0ECB00 7F0B7FD0 00801025 */ move $v0, $a0
|
|
.L7F0B7FD4:
|
|
/* 0ECB04 7F0B7FD4 3C188004 */ lui $t8, %hi(D_8004489C)
|
|
/* 0ECB08 7F0B7FD8 8F18489C */ lw $t8, %lo(D_8004489C)($t8)
|
|
/* 0ECB0C 7F0B7FDC 0313082A */ slt $at, $t8, $s3
|
|
/* 0ECB10 7F0B7FE0 50200004 */ beql $at, $zero, .L7F0B7FF4
|
|
/* 0ECB14 7F0B7FE4 2A610010 */ slti $at, $s3, 0x10
|
|
/* 0ECB18 7F0B7FE8 100000DA */ b .L7F0B8354
|
|
/* 0ECB1C 7F0B7FEC 02401025 */ move $v0, $s2
|
|
/* 0ECB20 7F0B7FF0 2A610010 */ slti $at, $s3, 0x10
|
|
.L7F0B7FF4:
|
|
/* 0ECB24 7F0B7FF4 14200003 */ bnez $at, .L7F0B8004
|
|
/* 0ECB28 7F0B7FF8 3C198008 */ lui $t9, %hi(g_BgPortals)
|
|
/* 0ECB2C 7F0B7FFC 100000D5 */ b .L7F0B8354
|
|
/* 0ECB30 7F0B8000 02401025 */ move $v0, $s2
|
|
.L7F0B8004:
|
|
/* 0ECB34 7F0B8004 8F39FF80 */ lw $t9, %lo(g_BgPortals)($t9)
|
|
/* 0ECB38 7F0B8008 001410C0 */ sll $v0, $s4, 3
|
|
/* 0ECB3C 7F0B800C 3C0B8004 */ lui $t3, %hi(D_800442FC)
|
|
/* 0ECB40 7F0B8010 03224021 */ addu $t0, $t9, $v0
|
|
/* 0ECB44 7F0B8014 91090006 */ lbu $t1, 6($t0)
|
|
/* 0ECB48 7F0B8018 256B42FC */ addiu $t3, %lo(D_800442FC) # addiu $t3, $t3, 0x42fc
|
|
/* 0ECB4C 7F0B801C 028B1821 */ addu $v1, $s4, $t3
|
|
/* 0ECB50 7F0B8020 312A0001 */ andi $t2, $t1, 1
|
|
/* 0ECB54 7F0B8024 51400004 */ beql $t2, $zero, .L7F0B8038
|
|
/* 0ECB58 7F0B8028 AFA20044 */ sw $v0, 0x44($sp)
|
|
/* 0ECB5C 7F0B802C 100000C9 */ b .L7F0B8354
|
|
/* 0ECB60 7F0B8030 02401025 */ move $v0, $s2
|
|
/* 0ECB64 7F0B8034 AFA20044 */ sw $v0, 0x44($sp)
|
|
.L7F0B8038:
|
|
/* 0ECB68 7F0B8038 0FC227F5 */ jal bondviewGetCurrentPlayersPosition
|
|
/* 0ECB6C 7F0B803C AFA3003C */ sw $v1, 0x3c($sp)
|
|
/* 0ECB70 7F0B8040 00408025 */ move $s0, $v0
|
|
/* 0ECB74 7F0B8044 02802025 */ move $a0, $s4
|
|
/* 0ECB78 7F0B8048 0FC2E5B3 */ jal sub_GAME_7F0B96CC
|
|
/* 0ECB7C 7F0B804C 27A50054 */ addiu $a1, $sp, 0x54
|
|
/* 0ECB80 7F0B8050 C7A40054 */ lwc1 $f4, 0x54($sp)
|
|
/* 0ECB84 7F0B8054 C6060000 */ lwc1 $f6, ($s0)
|
|
/* 0ECB88 7F0B8058 C7AA0058 */ lwc1 $f10, 0x58($sp)
|
|
/* 0ECB8C 7F0B805C C6100004 */ lwc1 $f16, 4($s0)
|
|
/* 0ECB90 7F0B8060 46062202 */ mul.s $f8, $f4, $f6
|
|
/* 0ECB94 7F0B8064 C6060008 */ lwc1 $f6, 8($s0)
|
|
/* 0ECB98 7F0B8068 3C018004 */ lui $at, %hi(room_data_float1)
|
|
/* 0ECB9C 7F0B806C 46105482 */ mul.s $f18, $f10, $f16
|
|
/* 0ECBA0 7F0B8070 C7AA005C */ lwc1 $f10, 0x5c($sp)
|
|
/* 0ECBA4 7F0B8074 02802025 */ move $a0, $s4
|
|
/* 0ECBA8 7F0B8078 460A3402 */ mul.s $f16, $f6, $f10
|
|
/* 0ECBAC 7F0B807C 46124100 */ add.s $f4, $f8, $f18
|
|
/* 0ECBB0 7F0B8080 C43213F4 */ lwc1 $f18, %lo(room_data_float1)($at)
|
|
/* 0ECBB4 7F0B8084 46048200 */ add.s $f8, $f16, $f4
|
|
/* 0ECBB8 7F0B8088 46124082 */ mul.s $f2, $f8, $f18
|
|
/* 0ECBBC 7F0B808C 0FC2E664 */ jal sub_GAME_7F0B9990
|
|
/* 0ECBC0 7F0B8090 E7A20050 */ swc1 $f2, 0x50($sp)
|
|
/* 0ECBC4 7F0B8094 3C0C8008 */ lui $t4, %hi(g_BgPortals)
|
|
/* 0ECBC8 7F0B8098 8D8CFF80 */ lw $t4, %lo(g_BgPortals)($t4)
|
|
/* 0ECBCC 7F0B809C 8FAD0044 */ lw $t5, 0x44($sp)
|
|
/* 0ECBD0 7F0B80A0 8FAE0084 */ lw $t6, 0x84($sp)
|
|
/* 0ECBD4 7F0B80A4 C7A20050 */ lwc1 $f2, 0x50($sp)
|
|
/* 0ECBD8 7F0B80A8 018D1021 */ addu $v0, $t4, $t5
|
|
/* 0ECBDC 7F0B80AC 90430004 */ lbu $v1, 4($v0)
|
|
/* 0ECBE0 7F0B80B0 55C3000B */ bnel $t6, $v1, .L7F0B80E0
|
|
/* 0ECBE4 7F0B80B4 46001100 */ add.s $f4, $f2, $f0
|
|
/* 0ECBE8 7F0B80B8 46001181 */ sub.s $f6, $f2, $f0
|
|
/* 0ECBEC 7F0B80BC C7AA0064 */ lwc1 $f10, 0x64($sp)
|
|
/* 0ECBF0 7F0B80C0 90510005 */ lbu $s1, 5($v0)
|
|
/* 0ECBF4 7F0B80C4 4606503E */ c.le.s $f10, $f6
|
|
/* 0ECBF8 7F0B80C8 00000000 */ nop
|
|
/* 0ECBFC 7F0B80CC 4502000D */ bc1fl .L7F0B8104
|
|
/* 0ECC00 7F0B80D0 C7A80060 */ lwc1 $f8, 0x60($sp)
|
|
/* 0ECC04 7F0B80D4 1000009F */ b .L7F0B8354
|
|
/* 0ECC08 7F0B80D8 02401025 */ move $v0, $s2
|
|
/* 0ECC0C 7F0B80DC 46001100 */ add.s $f4, $f2, $f0
|
|
.L7F0B80E0:
|
|
/* 0ECC10 7F0B80E0 C7B00060 */ lwc1 $f16, 0x60($sp)
|
|
/* 0ECC14 7F0B80E4 00608825 */ move $s1, $v1
|
|
/* 0ECC18 7F0B80E8 4610203E */ c.le.s $f4, $f16
|
|
/* 0ECC1C 7F0B80EC 00000000 */ nop
|
|
/* 0ECC20 7F0B80F0 45020004 */ bc1fl .L7F0B8104
|
|
/* 0ECC24 7F0B80F4 C7A80060 */ lwc1 $f8, 0x60($sp)
|
|
/* 0ECC28 7F0B80F8 10000096 */ b .L7F0B8354
|
|
/* 0ECC2C 7F0B80FC 02401025 */ move $v0, $s2
|
|
/* 0ECC30 7F0B8100 C7A80060 */ lwc1 $f8, 0x60($sp)
|
|
.L7F0B8104:
|
|
/* 0ECC34 7F0B8104 C7A60064 */ lwc1 $f6, 0x64($sp)
|
|
/* 0ECC38 7F0B8108 46004481 */ sub.s $f18, $f8, $f0
|
|
/* 0ECC3C 7F0B810C 4602903C */ c.lt.s $f18, $f2
|
|
/* 0ECC40 7F0B8110 00000000 */ nop
|
|
/* 0ECC44 7F0B8114 45020012 */ bc1fl .L7F0B8160
|
|
/* 0ECC48 7F0B8118 904F0006 */ lbu $t7, 6($v0)
|
|
/* 0ECC4C 7F0B811C 46003280 */ add.s $f10, $f6, $f0
|
|
/* 0ECC50 7F0B8120 460A103C */ c.lt.s $f2, $f10
|
|
/* 0ECC54 7F0B8124 00000000 */ nop
|
|
/* 0ECC58 7F0B8128 4502000D */ bc1fl .L7F0B8160
|
|
/* 0ECC5C 7F0B812C 904F0006 */ lbu $t7, 6($v0)
|
|
/* 0ECC60 7F0B8130 3C028008 */ lui $v0, %hi(g_CurrentPlayer)
|
|
/* 0ECC64 7F0B8134 8C42A0B0 */ lw $v0, %lo(g_CurrentPlayer)($v0)
|
|
/* 0ECC68 7F0B8138 C4501118 */ lwc1 $f16, 0x1118($v0)
|
|
/* 0ECC6C 7F0B813C E7B00070 */ swc1 $f16, 0x70($sp)
|
|
/* 0ECC70 7F0B8140 C444111C */ lwc1 $f4, 0x111c($v0)
|
|
/* 0ECC74 7F0B8144 E7A40074 */ swc1 $f4, 0x74($sp)
|
|
/* 0ECC78 7F0B8148 C4481120 */ lwc1 $f8, 0x1120($v0)
|
|
/* 0ECC7C 7F0B814C E7A80078 */ swc1 $f8, 0x78($sp)
|
|
/* 0ECC80 7F0B8150 C4521124 */ lwc1 $f18, 0x1124($v0)
|
|
/* 0ECC84 7F0B8154 10000042 */ b .L7F0B8260
|
|
/* 0ECC88 7F0B8158 E7B2007C */ swc1 $f18, 0x7c($sp)
|
|
/* 0ECC8C 7F0B815C 904F0006 */ lbu $t7, 6($v0)
|
|
.L7F0B8160:
|
|
/* 0ECC90 7F0B8160 27A50070 */ addiu $a1, $sp, 0x70
|
|
/* 0ECC94 7F0B8164 02802025 */ move $a0, $s4
|
|
/* 0ECC98 7F0B8168 31F80002 */ andi $t8, $t7, 2
|
|
/* 0ECC9C 7F0B816C 13000021 */ beqz $t8, .L7F0B81F4
|
|
/* 0ECCA0 7F0B8170 00000000 */ nop
|
|
/* 0ECCA4 7F0B8174 0FC2D619 */ jal sub_GAME_7F0B5864
|
|
/* 0ECCA8 7F0B8178 02802025 */ move $a0, $s4
|
|
/* 0ECCAC 7F0B817C 14400003 */ bnez $v0, .L7F0B818C
|
|
/* 0ECCB0 7F0B8180 3C198008 */ lui $t9, %hi(g_BgPortals)
|
|
/* 0ECCB4 7F0B8184 10000073 */ b .L7F0B8354
|
|
/* 0ECCB8 7F0B8188 02401025 */ move $v0, $s2
|
|
.L7F0B818C:
|
|
/* 0ECCBC 7F0B818C 8F39FF80 */ lw $t9, %lo(g_BgPortals)($t9)
|
|
/* 0ECCC0 7F0B8190 8FA80044 */ lw $t0, 0x44($sp)
|
|
/* 0ECCC4 7F0B8194 8FAC0084 */ lw $t4, 0x84($sp)
|
|
/* 0ECCC8 7F0B8198 27A50070 */ addiu $a1, $sp, 0x70
|
|
/* 0ECCCC 7F0B819C 03281021 */ addu $v0, $t9, $t0
|
|
/* 0ECCD0 7F0B81A0 90490005 */ lbu $t1, 5($v0)
|
|
/* 0ECCD4 7F0B81A4 904A0004 */ lbu $t2, 4($v0)
|
|
/* 0ECCD8 7F0B81A8 012A5826 */ xor $t3, $t1, $t2
|
|
/* 0ECCDC 7F0B81AC 016C8826 */ xor $s1, $t3, $t4
|
|
/* 0ECCE0 7F0B81B0 0FC2D482 */ jal sub_GAME_7F0B5208
|
|
/* 0ECCE4 7F0B81B4 02202025 */ move $a0, $s1
|
|
/* 0ECCE8 7F0B81B8 14400003 */ bnez $v0, .L7F0B81C8
|
|
/* 0ECCEC 7F0B81BC 00000000 */ nop
|
|
/* 0ECCF0 7F0B81C0 10000064 */ b .L7F0B8354
|
|
/* 0ECCF4 7F0B81C4 02401025 */ move $v0, $s2
|
|
.L7F0B81C8:
|
|
/* 0ECCF8 7F0B81C8 3C028008 */ lui $v0, %hi(g_CurrentPlayer)
|
|
/* 0ECCFC 7F0B81CC 8C42A0B0 */ lw $v0, %lo(g_CurrentPlayer)($v0)
|
|
/* 0ECD00 7F0B81D0 C4461118 */ lwc1 $f6, 0x1118($v0)
|
|
/* 0ECD04 7F0B81D4 E7A60070 */ swc1 $f6, 0x70($sp)
|
|
/* 0ECD08 7F0B81D8 C44A111C */ lwc1 $f10, 0x111c($v0)
|
|
/* 0ECD0C 7F0B81DC E7AA0074 */ swc1 $f10, 0x74($sp)
|
|
/* 0ECD10 7F0B81E0 C4501120 */ lwc1 $f16, 0x1120($v0)
|
|
/* 0ECD14 7F0B81E4 E7B00078 */ swc1 $f16, 0x78($sp)
|
|
/* 0ECD18 7F0B81E8 C4441124 */ lwc1 $f4, 0x1124($v0)
|
|
/* 0ECD1C 7F0B81EC 1000000E */ b .L7F0B8228
|
|
/* 0ECD20 7F0B81F0 E7A4007C */ swc1 $f4, 0x7c($sp)
|
|
.L7F0B81F4:
|
|
/* 0ECD24 7F0B81F4 0FC2D619 */ jal sub_GAME_7F0B5864
|
|
/* 0ECD28 7F0B81F8 27A50070 */ addiu $a1, $sp, 0x70
|
|
/* 0ECD2C 7F0B81FC 14400003 */ bnez $v0, .L7F0B820C
|
|
/* 0ECD30 7F0B8200 27A40070 */ addiu $a0, $sp, 0x70
|
|
/* 0ECD34 7F0B8204 10000053 */ b .L7F0B8354
|
|
/* 0ECD38 7F0B8208 02401025 */ move $v0, $s2
|
|
.L7F0B820C:
|
|
/* 0ECD3C 7F0B820C 0FC2D6F7 */ jal bgRectIntersect
|
|
/* 0ECD40 7F0B8210 8FA50090 */ lw $a1, 0x90($sp)
|
|
/* 0ECD44 7F0B8214 3C058008 */ lui $a1, %hi(g_CurrentPlayer)
|
|
/* 0ECD48 7F0B8218 8CA5A0B0 */ lw $a1, %lo(g_CurrentPlayer)($a1)
|
|
/* 0ECD4C 7F0B821C 27A40070 */ addiu $a0, $sp, 0x70
|
|
/* 0ECD50 7F0B8220 0FC2D6F7 */ jal bgRectIntersect
|
|
/* 0ECD54 7F0B8224 24A51118 */ addiu $a1, $a1, 0x1118
|
|
.L7F0B8228:
|
|
/* 0ECD58 7F0B8228 C7A80070 */ lwc1 $f8, 0x70($sp)
|
|
/* 0ECD5C 7F0B822C C7B20078 */ lwc1 $f18, 0x78($sp)
|
|
/* 0ECD60 7F0B8230 C7A60074 */ lwc1 $f6, 0x74($sp)
|
|
/* 0ECD64 7F0B8234 C7AA007C */ lwc1 $f10, 0x7c($sp)
|
|
/* 0ECD68 7F0B8238 4608903E */ c.le.s $f18, $f8
|
|
/* 0ECD6C 7F0B823C 00000000 */ nop
|
|
/* 0ECD70 7F0B8240 45010005 */ bc1t .L7F0B8258
|
|
/* 0ECD74 7F0B8244 00000000 */ nop
|
|
/* 0ECD78 7F0B8248 4606503E */ c.le.s $f10, $f6
|
|
/* 0ECD7C 7F0B824C 00000000 */ nop
|
|
/* 0ECD80 7F0B8250 45020004 */ bc1fl .L7F0B8264
|
|
/* 0ECD84 7F0B8254 8FAD003C */ lw $t5, 0x3c($sp)
|
|
.L7F0B8258:
|
|
/* 0ECD88 7F0B8258 1000003E */ b .L7F0B8354
|
|
/* 0ECD8C 7F0B825C 02401025 */ move $v0, $s2
|
|
.L7F0B8260:
|
|
/* 0ECD90 7F0B8260 8FAD003C */ lw $t5, 0x3c($sp)
|
|
.L7F0B8264:
|
|
/* 0ECD94 7F0B8264 A1B30000 */ sb $s3, ($t5)
|
|
/* 0ECD98 7F0B8268 C7A40078 */ lwc1 $f4, 0x78($sp)
|
|
/* 0ECD9C 7F0B826C C7B00070 */ lwc1 $f16, 0x70($sp)
|
|
/* 0ECDA0 7F0B8270 C7B2007C */ lwc1 $f18, 0x7c($sp)
|
|
/* 0ECDA4 7F0B8274 C7A80074 */ lwc1 $f8, 0x74($sp)
|
|
/* 0ECDA8 7F0B8278 4604803C */ c.lt.s $f16, $f4
|
|
/* 0ECDAC 7F0B827C 00000000 */ nop
|
|
/* 0ECDB0 7F0B8280 45000013 */ bc1f .L7F0B82D0
|
|
/* 0ECDB4 7F0B8284 00000000 */ nop
|
|
/* 0ECDB8 7F0B8288 4612403C */ c.lt.s $f8, $f18
|
|
/* 0ECDBC 7F0B828C 3C0E8008 */ lui $t6, %hi(g_BgPortals)
|
|
/* 0ECDC0 7F0B8290 8FAF0044 */ lw $t7, 0x44($sp)
|
|
/* 0ECDC4 7F0B8294 4500000E */ bc1f .L7F0B82D0
|
|
/* 0ECDC8 7F0B8298 00000000 */ nop
|
|
/* 0ECDCC 7F0B829C 8DCEFF80 */ lw $t6, %lo(g_BgPortals)($t6)
|
|
/* 0ECDD0 7F0B82A0 02202025 */ move $a0, $s1
|
|
/* 0ECDD4 7F0B82A4 02602825 */ move $a1, $s3
|
|
/* 0ECDD8 7F0B82A8 01CFC021 */ addu $t8, $t6, $t7
|
|
/* 0ECDDC 7F0B82AC 93070006 */ lbu $a3, 6($t8)
|
|
/* 0ECDE0 7F0B82B0 27A60070 */ addiu $a2, $sp, 0x70
|
|
/* 0ECDE4 7F0B82B4 30F90002 */ andi $t9, $a3, 2
|
|
/* 0ECDE8 7F0B82B8 0FC2CE6F */ jal sub_GAME_7F0B39BC
|
|
/* 0ECDEC 7F0B82BC 03203825 */ move $a3, $t9
|
|
/* 0ECDF0 7F0B82C0 10400005 */ beqz $v0, .L7F0B82D8
|
|
/* 0ECDF4 7F0B82C4 3C048008 */ lui $a0, %hi(g_BgPortals)
|
|
/* 0ECDF8 7F0B82C8 10000022 */ b .L7F0B8354
|
|
/* 0ECDFC 7F0B82CC 02401025 */ move $v0, $s2
|
|
.L7F0B82D0:
|
|
/* 0ECE00 7F0B82D0 10000020 */ b .L7F0B8354
|
|
/* 0ECE04 7F0B82D4 02401025 */ move $v0, $s2
|
|
.L7F0B82D8:
|
|
/* 0ECE08 7F0B82D8 8C84FF80 */ lw $a0, %lo(g_BgPortals)($a0)
|
|
/* 0ECE0C 7F0B82DC 00008025 */ move $s0, $zero
|
|
/* 0ECE10 7F0B82E0 00001825 */ move $v1, $zero
|
|
/* 0ECE14 7F0B82E4 8C880000 */ lw $t0, ($a0)
|
|
/* 0ECE18 7F0B82E8 00801025 */ move $v0, $a0
|
|
/* 0ECE1C 7F0B82EC 51000019 */ beql $t0, $zero, .L7F0B8354
|
|
/* 0ECE20 7F0B82F0 02401025 */ move $v0, $s2
|
|
.L7F0B82F4:
|
|
/* 0ECE24 7F0B82F4 52140012 */ beql $s0, $s4, .L7F0B8340
|
|
/* 0ECE28 7F0B82F8 8C4D0008 */ lw $t5, 8($v0)
|
|
/* 0ECE2C 7F0B82FC 90490004 */ lbu $t1, 4($v0)
|
|
/* 0ECE30 7F0B8300 02402025 */ move $a0, $s2
|
|
/* 0ECE34 7F0B8304 02202825 */ move $a1, $s1
|
|
/* 0ECE38 7F0B8308 12290003 */ beq $s1, $t1, .L7F0B8318
|
|
/* 0ECE3C 7F0B830C 02003025 */ move $a2, $s0
|
|
/* 0ECE40 7F0B8310 904A0005 */ lbu $t2, 5($v0)
|
|
/* 0ECE44 7F0B8314 162A0009 */ bne $s1, $t2, .L7F0B833C
|
|
.L7F0B8318:
|
|
/* 0ECE48 7F0B8318 27AB0070 */ addiu $t3, $sp, 0x70
|
|
/* 0ECE4C 7F0B831C AFAB0010 */ sw $t3, 0x10($sp)
|
|
/* 0ECE50 7F0B8320 26670001 */ addiu $a3, $s3, 1
|
|
/* 0ECE54 7F0B8324 0FC2DF79 */ jal sub_GAME_7F0B7DE4
|
|
/* 0ECE58 7F0B8328 AFA30040 */ sw $v1, 0x40($sp)
|
|
/* 0ECE5C 7F0B832C 3C0C8008 */ lui $t4, %hi(g_BgPortals)
|
|
/* 0ECE60 7F0B8330 8D8CFF80 */ lw $t4, %lo(g_BgPortals)($t4)
|
|
/* 0ECE64 7F0B8334 8FA30040 */ lw $v1, 0x40($sp)
|
|
/* 0ECE68 7F0B8338 01831021 */ addu $v0, $t4, $v1
|
|
.L7F0B833C:
|
|
/* 0ECE6C 7F0B833C 8C4D0008 */ lw $t5, 8($v0)
|
|
.L7F0B8340:
|
|
/* 0ECE70 7F0B8340 26100001 */ addiu $s0, $s0, 1
|
|
/* 0ECE74 7F0B8344 24630008 */ addiu $v1, $v1, 8
|
|
/* 0ECE78 7F0B8348 15A0FFEA */ bnez $t5, .L7F0B82F4
|
|
/* 0ECE7C 7F0B834C 24420008 */ addiu $v0, $v0, 8
|
|
/* 0ECE80 7F0B8350 02401025 */ move $v0, $s2
|
|
.L7F0B8354:
|
|
/* 0ECE84 7F0B8354 8FBF0034 */ lw $ra, 0x34($sp)
|
|
/* 0ECE88 7F0B8358 8FB00020 */ lw $s0, 0x20($sp)
|
|
/* 0ECE8C 7F0B835C 8FB10024 */ lw $s1, 0x24($sp)
|
|
/* 0ECE90 7F0B8360 8FB20028 */ lw $s2, 0x28($sp)
|
|
/* 0ECE94 7F0B8364 8FB3002C */ lw $s3, 0x2c($sp)
|
|
/* 0ECE98 7F0B8368 8FB40030 */ lw $s4, 0x30($sp)
|
|
/* 0ECE9C 7F0B836C 03E00008 */ jr $ra
|
|
/* 0ECEA0 7F0B8370 27BD0080 */ addiu $sp, $sp, 0x80
|
|
)
|
|
#endif
|
|
|
|
#if !defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B7F84
|
|
/* 0E9C98 7F0B72A8 27BDFF90 */ addiu $sp, $sp, -0x70
|
|
/* 0E9C9C 7F0B72AC 3C028004 */ lui $v0, %hi(D_80044898) # $v0, 0x8004
|
|
/* 0E9CA0 7F0B72B0 2442DD80 */ addiu $v0, %lo(D_80044898) # addiu $v0, $v0, -0x2280
|
|
/* 0E9CA4 7F0B72B4 8C4E0000 */ lw $t6, ($v0)
|
|
/* 0E9CA8 7F0B72B8 AFB30020 */ sw $s3, 0x20($sp)
|
|
/* 0E9CAC 7F0B72BC AFB2001C */ sw $s2, 0x1c($sp)
|
|
/* 0E9CB0 7F0B72C0 28C10065 */ slti $at, $a2, 0x65
|
|
/* 0E9CB4 7F0B72C4 25CF0001 */ addiu $t7, $t6, 1
|
|
/* 0E9CB8 7F0B72C8 00C09025 */ move $s2, $a2
|
|
/* 0E9CBC 7F0B72CC 00A09825 */ move $s3, $a1
|
|
/* 0E9CC0 7F0B72D0 AFBF0024 */ sw $ra, 0x24($sp)
|
|
/* 0E9CC4 7F0B72D4 AFB10018 */ sw $s1, 0x18($sp)
|
|
/* 0E9CC8 7F0B72D8 AFB00014 */ sw $s0, 0x14($sp)
|
|
/* 0E9CCC 7F0B72DC AFA40070 */ sw $a0, 0x70($sp)
|
|
/* 0E9CD0 7F0B72E0 AFA7007C */ sw $a3, 0x7c($sp)
|
|
/* 0E9CD4 7F0B72E4 102000C8 */ beqz $at, .L7F0B7608
|
|
/* 0E9CD8 7F0B72E8 AC4F0000 */ sw $t7, ($v0)
|
|
/* 0E9CDC 7F0B72EC 3C188004 */ lui $t8, %hi(D_8004489C) # $t8, 0x8004
|
|
/* 0E9CE0 7F0B72F0 8F18DD84 */ lw $t8, %lo(D_8004489C)($t8)
|
|
/* 0E9CE4 7F0B72F4 0306082A */ slt $at, $t8, $a2
|
|
/* 0E9CE8 7F0B72F8 142000C3 */ bnez $at, .L7F0B7608
|
|
/* 0E9CEC 7F0B72FC 28C10010 */ slti $at, $a2, 0x10
|
|
/* 0E9CF0 7F0B7300 102000C1 */ beqz $at, .L7F0B7608
|
|
/* 0E9CF4 7F0B7304 3C198007 */ lui $t9, %hi(g_BgPortals) # $t9, 0x8007
|
|
/* 0E9CF8 7F0B7308 8F39B3C8 */ lw $t9, %lo(g_BgPortals)($t9)
|
|
/* 0E9CFC 7F0B730C 000510C0 */ sll $v0, $a1, 3
|
|
/* 0E9D00 7F0B7310 3C0B8004 */ lui $t3, %hi(D_800442FC) # $t3, 0x8004
|
|
/* 0E9D04 7F0B7314 03224021 */ addu $t0, $t9, $v0
|
|
/* 0E9D08 7F0B7318 91090006 */ lbu $t1, 6($t0)
|
|
/* 0E9D0C 7F0B731C 256BD7DC */ addiu $t3, %lo(D_800442FC) # addiu $t3, $t3, -0x2824
|
|
/* 0E9D10 7F0B7320 00AB1821 */ addu $v1, $a1, $t3
|
|
/* 0E9D14 7F0B7324 312A0001 */ andi $t2, $t1, 1
|
|
/* 0E9D18 7F0B7328 554000B8 */ bnezl $t2, .L7F0B760C
|
|
/* 0E9D1C 7F0B732C 8FBF0024 */ lw $ra, 0x24($sp)
|
|
/* 0E9D20 7F0B7330 AFA20034 */ sw $v0, 0x34($sp)
|
|
/* 0E9D24 7F0B7334 0FC22868 */ jal bondviewGetCurrentPlayersPosition
|
|
/* 0E9D28 7F0B7338 AFA3002C */ sw $v1, 0x2c($sp)
|
|
/* 0E9D2C 7F0B733C 00408025 */ move $s0, $v0
|
|
/* 0E9D30 7F0B7340 02602025 */ move $a0, $s3
|
|
/* 0E9D34 7F0B7344 0FC2E25A */ jal sub_GAME_7F0B96CC
|
|
/* 0E9D38 7F0B7348 27A50044 */ addiu $a1, $sp, 0x44
|
|
/* 0E9D3C 7F0B734C C7A40044 */ lwc1 $f4, 0x44($sp)
|
|
/* 0E9D40 7F0B7350 C6060000 */ lwc1 $f6, ($s0)
|
|
/* 0E9D44 7F0B7354 C7AA0048 */ lwc1 $f10, 0x48($sp)
|
|
/* 0E9D48 7F0B7358 C6100004 */ lwc1 $f16, 4($s0)
|
|
/* 0E9D4C 7F0B735C 46062202 */ mul.s $f8, $f4, $f6
|
|
/* 0E9D50 7F0B7360 C6060008 */ lwc1 $f6, 8($s0)
|
|
/* 0E9D54 7F0B7364 3C018004 */ lui $at, %hi(room_data_float1) # $at, 0x8004
|
|
/* 0E9D58 7F0B7368 46105482 */ mul.s $f18, $f10, $f16
|
|
/* 0E9D5C 7F0B736C C7AA004C */ lwc1 $f10, 0x4c($sp)
|
|
/* 0E9D60 7F0B7370 02602025 */ move $a0, $s3
|
|
/* 0E9D64 7F0B7374 460A3402 */ mul.s $f16, $f6, $f10
|
|
/* 0E9D68 7F0B7378 46124100 */ add.s $f4, $f8, $f18
|
|
/* 0E9D6C 7F0B737C C432AC44 */ lwc1 $f18, %lo(room_data_float1)($at)
|
|
/* 0E9D70 7F0B7380 46048200 */ add.s $f8, $f16, $f4
|
|
/* 0E9D74 7F0B7384 46124082 */ mul.s $f2, $f8, $f18
|
|
/* 0E9D78 7F0B7388 0FC2E30B */ jal sub_GAME_7F0B9990
|
|
/* 0E9D7C 7F0B738C E7A20040 */ swc1 $f2, 0x40($sp)
|
|
/* 0E9D80 7F0B7390 3C0C8007 */ lui $t4, %hi(g_BgPortals) # $t4, 0x8007
|
|
/* 0E9D84 7F0B7394 8D8CB3C8 */ lw $t4, %lo(g_BgPortals)($t4)
|
|
/* 0E9D88 7F0B7398 8FAD0034 */ lw $t5, 0x34($sp)
|
|
/* 0E9D8C 7F0B739C 8FAE0070 */ lw $t6, 0x70($sp)
|
|
/* 0E9D90 7F0B73A0 C7A20040 */ lwc1 $f2, 0x40($sp)
|
|
/* 0E9D94 7F0B73A4 018D1021 */ addu $v0, $t4, $t5
|
|
/* 0E9D98 7F0B73A8 90430004 */ lbu $v1, 4($v0)
|
|
/* 0E9D9C 7F0B73AC 55C3000B */ bnel $t6, $v1, .L7F0B73DC
|
|
/* 0E9DA0 7F0B73B0 46001100 */ add.s $f4, $f2, $f0
|
|
/* 0E9DA4 7F0B73B4 46001181 */ sub.s $f6, $f2, $f0
|
|
/* 0E9DA8 7F0B73B8 C7AA0054 */ lwc1 $f10, 0x54($sp)
|
|
/* 0E9DAC 7F0B73BC 90510005 */ lbu $s1, 5($v0)
|
|
/* 0E9DB0 7F0B73C0 4606503E */ c.le.s $f10, $f6
|
|
/* 0E9DB4 7F0B73C4 00000000 */ nop
|
|
/* 0E9DB8 7F0B73C8 4502000B */ bc1fl .L7F0B73F8
|
|
/* 0E9DBC 7F0B73CC C7A80050 */ lwc1 $f8, 0x50($sp)
|
|
/* 0E9DC0 7F0B73D0 1000008E */ b .L7F0B760C
|
|
/* 0E9DC4 7F0B73D4 8FBF0024 */ lw $ra, 0x24($sp)
|
|
/* 0E9DC8 7F0B73D8 46001100 */ add.s $f4, $f2, $f0
|
|
.L7F0B73DC:
|
|
/* 0E9DCC 7F0B73DC C7B00050 */ lwc1 $f16, 0x50($sp)
|
|
/* 0E9DD0 7F0B73E0 00608825 */ move $s1, $v1
|
|
/* 0E9DD4 7F0B73E4 4610203E */ c.le.s $f4, $f16
|
|
/* 0E9DD8 7F0B73E8 00000000 */ nop
|
|
/* 0E9DDC 7F0B73EC 45030087 */ bc1tl .L7F0B760C
|
|
/* 0E9DE0 7F0B73F0 8FBF0024 */ lw $ra, 0x24($sp)
|
|
/* 0E9DE4 7F0B73F4 C7A80050 */ lwc1 $f8, 0x50($sp)
|
|
.L7F0B73F8:
|
|
/* 0E9DE8 7F0B73F8 C7A60054 */ lwc1 $f6, 0x54($sp)
|
|
/* 0E9DEC 7F0B73FC 46004481 */ sub.s $f18, $f8, $f0
|
|
/* 0E9DF0 7F0B7400 4602903C */ c.lt.s $f18, $f2
|
|
/* 0E9DF4 7F0B7404 00000000 */ nop
|
|
/* 0E9DF8 7F0B7408 45020012 */ bc1fl .L7F0B7454
|
|
/* 0E9DFC 7F0B740C 904F0006 */ lbu $t7, 6($v0)
|
|
/* 0E9E00 7F0B7410 46003280 */ add.s $f10, $f6, $f0
|
|
/* 0E9E04 7F0B7414 460A103C */ c.lt.s $f2, $f10
|
|
/* 0E9E08 7F0B7418 00000000 */ nop
|
|
/* 0E9E0C 7F0B741C 4502000D */ bc1fl .L7F0B7454
|
|
/* 0E9E10 7F0B7420 904F0006 */ lbu $t7, 6($v0)
|
|
/* 0E9E14 7F0B7424 3C028007 */ lui $v0, %hi(g_CurrentPlayer) # $v0, 0x8007
|
|
/* 0E9E18 7F0B7428 8C428BC0 */ lw $v0, %lo(g_CurrentPlayer)($v0)
|
|
/* 0E9E1C 7F0B742C C4501110 */ lwc1 $f16, 0x1110($v0)
|
|
/* 0E9E20 7F0B7430 E7B00060 */ swc1 $f16, 0x60($sp)
|
|
/* 0E9E24 7F0B7434 C4441114 */ lwc1 $f4, 0x1114($v0)
|
|
/* 0E9E28 7F0B7438 E7A40064 */ swc1 $f4, 0x64($sp)
|
|
/* 0E9E2C 7F0B743C C4481118 */ lwc1 $f8, 0x1118($v0)
|
|
/* 0E9E30 7F0B7440 E7A80068 */ swc1 $f8, 0x68($sp)
|
|
/* 0E9E34 7F0B7444 C452111C */ lwc1 $f18, 0x111c($v0)
|
|
/* 0E9E38 7F0B7448 10000039 */ b .L7F0B7530
|
|
/* 0E9E3C 7F0B744C E7B2006C */ swc1 $f18, 0x6c($sp)
|
|
/* 0E9E40 7F0B7450 904F0006 */ lbu $t7, 6($v0)
|
|
.L7F0B7454:
|
|
/* 0E9E44 7F0B7454 27A50060 */ addiu $a1, $sp, 0x60
|
|
/* 0E9E48 7F0B7458 02602025 */ move $a0, $s3
|
|
/* 0E9E4C 7F0B745C 31F80002 */ andi $t8, $t7, 2
|
|
/* 0E9E50 7F0B7460 1300001C */ beqz $t8, .L7F0B74D4
|
|
/* 0E9E54 7F0B7464 00000000 */ nop
|
|
/* 0E9E58 7F0B7468 0FC2D2E8 */ jal sub_GAME_7F0B5864
|
|
/* 0E9E5C 7F0B746C 02602025 */ move $a0, $s3
|
|
/* 0E9E60 7F0B7470 10400065 */ beqz $v0, .L7F0B7608
|
|
/* 0E9E64 7F0B7474 3C198007 */ lui $t9, %hi(g_BgPortals) # $t9, 0x8007
|
|
/* 0E9E68 7F0B7478 8F39B3C8 */ lw $t9, %lo(g_BgPortals)($t9)
|
|
/* 0E9E6C 7F0B747C 8FA80034 */ lw $t0, 0x34($sp)
|
|
/* 0E9E70 7F0B7480 8FAC0070 */ lw $t4, 0x70($sp)
|
|
/* 0E9E74 7F0B7484 27A50060 */ addiu $a1, $sp, 0x60
|
|
/* 0E9E78 7F0B7488 03281021 */ addu $v0, $t9, $t0
|
|
/* 0E9E7C 7F0B748C 90490005 */ lbu $t1, 5($v0)
|
|
/* 0E9E80 7F0B7490 904A0004 */ lbu $t2, 4($v0)
|
|
/* 0E9E84 7F0B7494 012A5826 */ xor $t3, $t1, $t2
|
|
/* 0E9E88 7F0B7498 016C8826 */ xor $s1, $t3, $t4
|
|
/* 0E9E8C 7F0B749C 0FC2D151 */ jal sub_GAME_7F0B5208
|
|
/* 0E9E90 7F0B74A0 02202025 */ move $a0, $s1
|
|
/* 0E9E94 7F0B74A4 10400058 */ beqz $v0, .L7F0B7608
|
|
/* 0E9E98 7F0B74A8 3C028007 */ lui $v0, %hi(g_CurrentPlayer) # $v0, 0x8007
|
|
/* 0E9E9C 7F0B74AC 8C428BC0 */ lw $v0, %lo(g_CurrentPlayer)($v0)
|
|
/* 0E9EA0 7F0B74B0 C4461110 */ lwc1 $f6, 0x1110($v0)
|
|
/* 0E9EA4 7F0B74B4 E7A60060 */ swc1 $f6, 0x60($sp)
|
|
/* 0E9EA8 7F0B74B8 C44A1114 */ lwc1 $f10, 0x1114($v0)
|
|
/* 0E9EAC 7F0B74BC E7AA0064 */ swc1 $f10, 0x64($sp)
|
|
/* 0E9EB0 7F0B74C0 C4501118 */ lwc1 $f16, 0x1118($v0)
|
|
/* 0E9EB4 7F0B74C4 E7B00068 */ swc1 $f16, 0x68($sp)
|
|
/* 0E9EB8 7F0B74C8 C444111C */ lwc1 $f4, 0x111c($v0)
|
|
/* 0E9EBC 7F0B74CC 1000000C */ b .L7F0B7500
|
|
/* 0E9EC0 7F0B74D0 E7A4006C */ swc1 $f4, 0x6c($sp)
|
|
.L7F0B74D4:
|
|
/* 0E9EC4 7F0B74D4 0FC2D2E8 */ jal sub_GAME_7F0B5864
|
|
/* 0E9EC8 7F0B74D8 27A50060 */ addiu $a1, $sp, 0x60
|
|
/* 0E9ECC 7F0B74DC 1040004A */ beqz $v0, .L7F0B7608
|
|
/* 0E9ED0 7F0B74E0 27A40060 */ addiu $a0, $sp, 0x60
|
|
/* 0E9ED4 7F0B74E4 0FC2D3C6 */ jal bgRectIntersect
|
|
/* 0E9ED8 7F0B74E8 8FA5007C */ lw $a1, 0x7c($sp)
|
|
/* 0E9EDC 7F0B74EC 3C058007 */ lui $a1, %hi(g_CurrentPlayer) # $a1, 0x8007
|
|
/* 0E9EE0 7F0B74F0 8CA58BC0 */ lw $a1, %lo(g_CurrentPlayer)($a1)
|
|
/* 0E9EE4 7F0B74F4 27A40060 */ addiu $a0, $sp, 0x60
|
|
/* 0E9EE8 7F0B74F8 0FC2D3C6 */ jal bgRectIntersect
|
|
/* 0E9EEC 7F0B74FC 24A51110 */ addiu $a1, $a1, 0x1110
|
|
.L7F0B7500:
|
|
/* 0E9EF0 7F0B7500 C7A80060 */ lwc1 $f8, 0x60($sp)
|
|
/* 0E9EF4 7F0B7504 C7B20068 */ lwc1 $f18, 0x68($sp)
|
|
/* 0E9EF8 7F0B7508 C7A60064 */ lwc1 $f6, 0x64($sp)
|
|
/* 0E9EFC 7F0B750C C7AA006C */ lwc1 $f10, 0x6c($sp)
|
|
/* 0E9F00 7F0B7510 4608903E */ c.le.s $f18, $f8
|
|
/* 0E9F04 7F0B7514 00000000 */ nop
|
|
/* 0E9F08 7F0B7518 4503003C */ bc1tl .L7F0B760C
|
|
/* 0E9F0C 7F0B751C 8FBF0024 */ lw $ra, 0x24($sp)
|
|
/* 0E9F10 7F0B7520 4606503E */ c.le.s $f10, $f6
|
|
/* 0E9F14 7F0B7524 00000000 */ nop
|
|
/* 0E9F18 7F0B7528 45030038 */ bc1tl .L7F0B760C
|
|
/* 0E9F1C 7F0B752C 8FBF0024 */ lw $ra, 0x24($sp)
|
|
.L7F0B7530:
|
|
/* 0E9F20 7F0B7530 8FAD002C */ lw $t5, 0x2c($sp)
|
|
/* 0E9F24 7F0B7534 A1B20000 */ sb $s2, ($t5)
|
|
/* 0E9F28 7F0B7538 C7A40068 */ lwc1 $f4, 0x68($sp)
|
|
/* 0E9F2C 7F0B753C C7B00060 */ lwc1 $f16, 0x60($sp)
|
|
/* 0E9F30 7F0B7540 C7B2006C */ lwc1 $f18, 0x6c($sp)
|
|
/* 0E9F34 7F0B7544 C7A80064 */ lwc1 $f8, 0x64($sp)
|
|
/* 0E9F38 7F0B7548 4604803C */ c.lt.s $f16, $f4
|
|
/* 0E9F3C 7F0B754C 00000000 */ nop
|
|
/* 0E9F40 7F0B7550 4502002E */ bc1fl .L7F0B760C
|
|
/* 0E9F44 7F0B7554 8FBF0024 */ lw $ra, 0x24($sp)
|
|
/* 0E9F48 7F0B7558 4612403C */ c.lt.s $f8, $f18
|
|
/* 0E9F4C 7F0B755C 3C0E8007 */ lui $t6, %hi(g_BgPortals) # $t6, 0x8007
|
|
/* 0E9F50 7F0B7560 8FAF0034 */ lw $t7, 0x34($sp)
|
|
/* 0E9F54 7F0B7564 45020029 */ bc1fl .L7F0B760C
|
|
/* 0E9F58 7F0B7568 8FBF0024 */ lw $ra, 0x24($sp)
|
|
/* 0E9F5C 7F0B756C 8DCEB3C8 */ lw $t6, %lo(g_BgPortals)($t6)
|
|
/* 0E9F60 7F0B7570 02202025 */ move $a0, $s1
|
|
/* 0E9F64 7F0B7574 02402825 */ move $a1, $s2
|
|
/* 0E9F68 7F0B7578 01CFC021 */ addu $t8, $t6, $t7
|
|
/* 0E9F6C 7F0B757C 93070006 */ lbu $a3, 6($t8)
|
|
/* 0E9F70 7F0B7580 27A60060 */ addiu $a2, $sp, 0x60
|
|
/* 0E9F74 7F0B7584 30F90002 */ andi $t9, $a3, 2
|
|
/* 0E9F78 7F0B7588 0FC2CB1F */ jal sub_GAME_7F0B39BC
|
|
/* 0E9F7C 7F0B758C 03203825 */ move $a3, $t9
|
|
/* 0E9F80 7F0B7590 1440001D */ bnez $v0, .L7F0B7608
|
|
/* 0E9F84 7F0B7594 3C048007 */ lui $a0, %hi(g_BgPortals) # $a0, 0x8007
|
|
/* 0E9F88 7F0B7598 8C84B3C8 */ lw $a0, %lo(g_BgPortals)($a0)
|
|
/* 0E9F8C 7F0B759C 00008025 */ move $s0, $zero
|
|
/* 0E9F90 7F0B75A0 00001825 */ move $v1, $zero
|
|
/* 0E9F94 7F0B75A4 8C880000 */ lw $t0, ($a0)
|
|
/* 0E9F98 7F0B75A8 00801025 */ move $v0, $a0
|
|
/* 0E9F9C 7F0B75AC 51000017 */ beql $t0, $zero, .L7F0B760C
|
|
/* 0E9FA0 7F0B75B0 8FBF0024 */ lw $ra, 0x24($sp)
|
|
.L7F0B75B4:
|
|
/* 0E9FA4 7F0B75B4 52130010 */ beql $s0, $s3, .L7F0B75F8
|
|
/* 0E9FA8 7F0B75B8 8C4C0008 */ lw $t4, 8($v0)
|
|
/* 0E9FAC 7F0B75BC 90490004 */ lbu $t1, 4($v0)
|
|
/* 0E9FB0 7F0B75C0 02202025 */ move $a0, $s1
|
|
/* 0E9FB4 7F0B75C4 02002825 */ move $a1, $s0
|
|
/* 0E9FB8 7F0B75C8 12290003 */ beq $s1, $t1, .L7F0B75D8
|
|
/* 0E9FBC 7F0B75CC 26460001 */ addiu $a2, $s2, 1
|
|
/* 0E9FC0 7F0B75D0 904A0005 */ lbu $t2, 5($v0)
|
|
/* 0E9FC4 7F0B75D4 162A0007 */ bne $s1, $t2, .Leu7F0B75F4
|
|
.L7F0B75D8:
|
|
/* 0E9FC8 7F0B75D8 27A70060 */ addiu $a3, $sp, 0x60
|
|
/* 0E9FCC 7F0B75DC 0FC2DC48 */ jal sub_GAME_7F0B7DE4
|
|
/* 0E9FD0 7F0B75E0 AFA30030 */ sw $v1, 0x30($sp)
|
|
/* 0E9FD4 7F0B75E4 3C0B8007 */ lui $t3, %hi(g_BgPortals) # $t3, 0x8007
|
|
/* 0E9FD8 7F0B75E8 8D6BB3C8 */ lw $t3, %lo(g_BgPortals)($t3)
|
|
/* 0E9FDC 7F0B75EC 8FA30030 */ lw $v1, 0x30($sp)
|
|
/* 0E9FE0 7F0B75F0 01631021 */ addu $v0, $t3, $v1
|
|
.Leu7F0B75F4:
|
|
/* 0E9FE4 7F0B75F4 8C4C0008 */ lw $t4, 8($v0)
|
|
.L7F0B75F8:
|
|
/* 0E9FE8 7F0B75F8 26100001 */ addiu $s0, $s0, 1
|
|
/* 0E9FEC 7F0B75FC 24630008 */ addiu $v1, $v1, 8
|
|
/* 0E9FF0 7F0B7600 1580FFEC */ bnez $t4, .L7F0B75B4
|
|
/* 0E9FF4 7F0B7604 24420008 */ addiu $v0, $v0, 8
|
|
.L7F0B7608:
|
|
/* 0E9FF8 7F0B7608 8FBF0024 */ lw $ra, 0x24($sp)
|
|
.L7F0B760C:
|
|
/* 0E9FFC 7F0B760C 8FB00014 */ lw $s0, 0x14($sp)
|
|
/* 0EA000 7F0B7610 8FB10018 */ lw $s1, 0x18($sp)
|
|
/* 0EA004 7F0B7614 8FB2001C */ lw $s2, 0x1c($sp)
|
|
/* 0EA008 7F0B7618 8FB30020 */ lw $s3, 0x20($sp)
|
|
/* 0EA00C 7F0B761C 03E00008 */ jr $ra
|
|
/* 0EA010 7F0B7620 27BD0070 */ addiu $sp, $sp, 0x70
|
|
)
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Add to stack. Push and then increment position. Will wrap on overflow.
|
|
*
|
|
* Address 0x7F0B8374.
|
|
*/
|
|
s32 bgStackPush(s32 arg0)
|
|
{
|
|
g_BgStack[g_BgStackCount] = arg0;
|
|
g_BgStackCount = (s32) (g_BgStackCount + 1) % BG_STACK_SIZE;
|
|
return arg0;
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Pop from stack. Decrement position and retrieve from there. Wraps on underflow.
|
|
*
|
|
* Address 0x7F0B83B0.
|
|
*/
|
|
s32 bgStackPop(void)
|
|
{
|
|
s32 val;
|
|
|
|
// ok, who thought this was a good idea
|
|
val = g_BgStack[g_BgStackCount = (g_BgStackCount + (BG_STACK_SIZE-1)) % BG_STACK_SIZE];
|
|
return val;
|
|
}
|
|
|
|
|
|
|
|
s32 bgStackGetNthValueFromEnd(s32 n) {
|
|
return g_BgStack[((g_BgStackCount - n) + (BG_STACK_SIZE - 1)) % BG_STACK_SIZE];
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
void parse_global_vis_command_list(void) {
|
|
|
|
}
|
|
#else
|
|
#if defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.late_rodata
|
|
/*D:80058C80*/
|
|
glabel jpt_80058C80
|
|
.word if_statement
|
|
.word dont_exec_commands_even_on_return
|
|
.word endif_continue_exec
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word if_statement_pull_from_stack
|
|
.word toggle_exec_vs_ro
|
|
.word endif
|
|
|
|
/*D:80058CB4*/
|
|
glabel vis_command_jpt
|
|
.word break
|
|
.word push_to_stack
|
|
.word pull_from_stack
|
|
.word and_merge_last_two_on_stack
|
|
.word or_merge_last_two_on_stack
|
|
.word not_merge_last_two_on_stack
|
|
.word carrot_merge_last_two_on_stack
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word push_tf_if_in_range_rooms
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word force_visible
|
|
.word match_portal_vis
|
|
.word add_visible_room
|
|
.word remove_vis
|
|
.word visible_if_seen_through_portal
|
|
.word not_visible_if_seen_through_portal
|
|
.word disable_room
|
|
.word disable_room_range
|
|
.word preload_room
|
|
.word preload_room_range
|
|
.text
|
|
glabel parse_global_vis_command_list
|
|
/* 0ECF44 7F0B8414 27BDFF80 */ addiu $sp, $sp, -0x80
|
|
/* 0ECF48 7F0B8418 AFB30024 */ sw $s3, 0x24($sp)
|
|
/* 0ECF4C 7F0B841C AFB20020 */ sw $s2, 0x20($sp)
|
|
/* 0ECF50 7F0B8420 AFB1001C */ sw $s1, 0x1c($sp)
|
|
/* 0ECF54 7F0B8424 3C018008 */ lui $at, %hi(dword_CODE_bss_80081600 + 0x10)
|
|
/* 0ECF58 7F0B8428 00808825 */ move $s1, $a0
|
|
/* 0ECF5C 7F0B842C 00A09025 */ move $s2, $a1
|
|
/* 0ECF60 7F0B8430 AFBF003C */ sw $ra, 0x3c($sp)
|
|
/* 0ECF64 7F0B8434 AFBE0038 */ sw $fp, 0x38($sp)
|
|
/* 0ECF68 7F0B8438 AFB70034 */ sw $s7, 0x34($sp)
|
|
/* 0ECF6C 7F0B843C AFB60030 */ sw $s6, 0x30($sp)
|
|
/* 0ECF70 7F0B8440 AFB5002C */ sw $s5, 0x2c($sp)
|
|
/* 0ECF74 7F0B8444 AFB40028 */ sw $s4, 0x28($sp)
|
|
/* 0ECF78 7F0B8448 AFB00018 */ sw $s0, 0x18($sp)
|
|
/* 0ECF7C 7F0B844C 24130001 */ li $s3, 1
|
|
/* 0ECF80 7F0B8450 14800003 */ bnez $a0, .L7F0B8460
|
|
/* 0ECF84 7F0B8454 AC201610 */ sw $zero, %lo(dword_CODE_bss_80081600 + 0x10)($at)
|
|
/* 0ECF88 7F0B8458 10000166 */ b .L7F0B89F4
|
|
/* 0ECF8C 7F0B845C 00801025 */ move $v0, $a0
|
|
.L7F0B8460:
|
|
/* 0ECF90 7F0B8460 3C1E8008 */ lui $fp, %hi(g_CurrentPlayer)
|
|
/* 0ECF94 7F0B8464 3C168008 */ lui $s6, %hi(dword_CODE_bss_80081600)
|
|
/* 0ECF98 7F0B8468 3C148004 */ lui $s4, %hi(current_visibility)
|
|
/* 0ECF9C 7F0B846C 269448FC */ addiu $s4, %lo(current_visibility) # addiu $s4, $s4, 0x48fc
|
|
/* 0ECFA0 7F0B8470 26D61600 */ addiu $s6, %lo(dword_CODE_bss_80081600) # addiu $s6, $s6, 0x1600
|
|
/* 0ECFA4 7F0B8474 27DEA0B0 */ addiu $fp, %lo(g_CurrentPlayer) # addiu $fp, $fp, -0x5f50
|
|
/* 0ECFA8 7F0B8478 24170001 */ li $s7, 1
|
|
/* 0ECFAC 7F0B847C 24150001 */ li $s5, 1
|
|
.L7F0B8480:
|
|
/* 0ECFB0 7F0B8480 92240000 */ lbu $a0, ($s1)
|
|
.L7F0B8484:
|
|
/* 0ECFB4 7F0B8484 28810028 */ slti $at, $a0, 0x28
|
|
/* 0ECFB8 7F0B8488 14200009 */ bnez $at, .L7F0B84B0
|
|
/* 0ECFBC 7F0B848C 248EFFB0 */ addiu $t6, $a0, -0x50
|
|
/* 0ECFC0 7F0B8490 2DC1000D */ sltiu $at, $t6, 0xd
|
|
/* 0ECFC4 7F0B8494 10200156 */ beqz $at, .L7F0B89F0
|
|
/* 0ECFC8 7F0B8498 000E7080 */ sll $t6, $t6, 2
|
|
/* 0ECFCC 7F0B849C 3C018006 */ lui $at, %hi(jpt_80058C80)
|
|
/* 0ECFD0 7F0B84A0 002E0821 */ addu $at, $at, $t6
|
|
/* 0ECFD4 7F0B84A4 8C2E8C80 */ lw $t6, %lo(jpt_80058C80)($at)
|
|
/* 0ECFD8 7F0B84A8 01C00008 */ jr $t6
|
|
/* 0ECFDC 7F0B84AC 00000000 */ nop
|
|
.L7F0B84B0:
|
|
/* 0ECFE0 7F0B84B0 2C810028 */ sltiu $at, $a0, 0x28
|
|
/* 0ECFE4 7F0B84B4 1020014E */ beqz $at, .L7F0B89F0
|
|
/* 0ECFE8 7F0B84B8 00047880 */ sll $t7, $a0, 2
|
|
/* 0ECFEC 7F0B84BC 3C018006 */ lui $at, %hi(vis_command_jpt)
|
|
/* 0ECFF0 7F0B84C0 002F0821 */ addu $at, $at, $t7
|
|
/* 0ECFF4 7F0B84C4 8C2F8CB4 */ lw $t7, %lo(vis_command_jpt)($at)
|
|
/* 0ECFF8 7F0B84C8 01E00008 */ jr $t7
|
|
/* 0ECFFC 7F0B84CC 00000000 */ nop
|
|
break:
|
|
/* 0ED000 7F0B84D0 10000148 */ b .L7F0B89F4
|
|
/* 0ED004 7F0B84D4 02201025 */ move $v0, $s1
|
|
push_to_stack:
|
|
/* 0ED008 7F0B84D8 52400004 */ beql $s2, $zero, .L7F0B84EC
|
|
/* 0ED00C 7F0B84DC 92380001 */ lbu $t8, 1($s1)
|
|
/* 0ED010 7F0B84E0 0FC2E0DD */ jal bgStackPush
|
|
/* 0ED014 7F0B84E4 8E240004 */ lw $a0, 4($s1)
|
|
/* 0ED018 7F0B84E8 92380001 */ lbu $t8, 1($s1)
|
|
.L7F0B84EC:
|
|
/* 0ED01C 7F0B84EC 0018C8C0 */ sll $t9, $t8, 3
|
|
/* 0ED020 7F0B84F0 1000FFE3 */ b .L7F0B8480
|
|
/* 0ED024 7F0B84F4 02398821 */ addu $s1, $s1, $t9
|
|
pull_from_stack:
|
|
/* 0ED028 7F0B84F8 52400004 */ beql $s2, $zero, .L7F0B850C
|
|
/* 0ED02C 7F0B84FC 92280001 */ lbu $t0, 1($s1)
|
|
/* 0ED030 7F0B8500 0FC2E0EC */ jal bgStackPop
|
|
/* 0ED034 7F0B8504 00000000 */ nop
|
|
/* 0ED038 7F0B8508 92280001 */ lbu $t0, 1($s1)
|
|
.L7F0B850C:
|
|
/* 0ED03C 7F0B850C 000848C0 */ sll $t1, $t0, 3
|
|
/* 0ED040 7F0B8510 1000FFDB */ b .L7F0B8480
|
|
/* 0ED044 7F0B8514 02298821 */ addu $s1, $s1, $t1
|
|
and_merge_last_two_on_stack:
|
|
/* 0ED048 7F0B8518 52400008 */ beql $s2, $zero, .L7F0B853C
|
|
/* 0ED04C 7F0B851C 922A0001 */ lbu $t2, 1($s1)
|
|
/* 0ED050 7F0B8520 0FC2E0EC */ jal bgStackPop
|
|
/* 0ED054 7F0B8524 00000000 */ nop
|
|
/* 0ED058 7F0B8528 0FC2E0EC */ jal bgStackPop
|
|
/* 0ED05C 7F0B852C 00408025 */ move $s0, $v0
|
|
/* 0ED060 7F0B8530 0FC2E0DD */ jal bgStackPush
|
|
/* 0ED064 7F0B8534 00502024 */ and $a0, $v0, $s0
|
|
/* 0ED068 7F0B8538 922A0001 */ lbu $t2, 1($s1)
|
|
.L7F0B853C:
|
|
/* 0ED06C 7F0B853C 000A58C0 */ sll $t3, $t2, 3
|
|
/* 0ED070 7F0B8540 1000FFCF */ b .L7F0B8480
|
|
/* 0ED074 7F0B8544 022B8821 */ addu $s1, $s1, $t3
|
|
or_merge_last_two_on_stack:
|
|
/* 0ED078 7F0B8548 52400008 */ beql $s2, $zero, .L7F0B856C
|
|
/* 0ED07C 7F0B854C 922C0001 */ lbu $t4, 1($s1)
|
|
/* 0ED080 7F0B8550 0FC2E0EC */ jal bgStackPop
|
|
/* 0ED084 7F0B8554 00000000 */ nop
|
|
/* 0ED088 7F0B8558 0FC2E0EC */ jal bgStackPop
|
|
/* 0ED08C 7F0B855C 00408025 */ move $s0, $v0
|
|
/* 0ED090 7F0B8560 0FC2E0DD */ jal bgStackPush
|
|
/* 0ED094 7F0B8564 00502025 */ or $a0, $v0, $s0
|
|
/* 0ED098 7F0B8568 922C0001 */ lbu $t4, 1($s1)
|
|
.L7F0B856C:
|
|
/* 0ED09C 7F0B856C 000C68C0 */ sll $t5, $t4, 3
|
|
/* 0ED0A0 7F0B8570 1000FFC3 */ b .L7F0B8480
|
|
/* 0ED0A4 7F0B8574 022D8821 */ addu $s1, $s1, $t5
|
|
not_merge_last_two_on_stack:
|
|
/* 0ED0A8 7F0B8578 52400006 */ beql $s2, $zero, .L7F0B8594
|
|
/* 0ED0AC 7F0B857C 922E0001 */ lbu $t6, 1($s1)
|
|
/* 0ED0B0 7F0B8580 0FC2E0EC */ jal bgStackPop
|
|
/* 0ED0B4 7F0B8584 00000000 */ nop
|
|
/* 0ED0B8 7F0B8588 0FC2E0DD */ jal bgStackPush
|
|
/* 0ED0BC 7F0B858C 2C440001 */ sltiu $a0, $v0, 1
|
|
/* 0ED0C0 7F0B8590 922E0001 */ lbu $t6, 1($s1)
|
|
.L7F0B8594:
|
|
/* 0ED0C4 7F0B8594 000E78C0 */ sll $t7, $t6, 3
|
|
/* 0ED0C8 7F0B8598 1000FFB9 */ b .L7F0B8480
|
|
/* 0ED0CC 7F0B859C 022F8821 */ addu $s1, $s1, $t7
|
|
carrot_merge_last_two_on_stack:
|
|
/* 0ED0D0 7F0B85A0 52400008 */ beql $s2, $zero, .L7F0B85C4
|
|
/* 0ED0D4 7F0B85A4 92380001 */ lbu $t8, 1($s1)
|
|
/* 0ED0D8 7F0B85A8 0FC2E0EC */ jal bgStackPop
|
|
/* 0ED0DC 7F0B85AC 00000000 */ nop
|
|
/* 0ED0E0 7F0B85B0 0FC2E0EC */ jal bgStackPop
|
|
/* 0ED0E4 7F0B85B4 00408025 */ move $s0, $v0
|
|
/* 0ED0E8 7F0B85B8 0FC2E0DD */ jal bgStackPush
|
|
/* 0ED0EC 7F0B85BC 00502026 */ xor $a0, $v0, $s0
|
|
/* 0ED0F0 7F0B85C0 92380001 */ lbu $t8, 1($s1)
|
|
.L7F0B85C4:
|
|
/* 0ED0F4 7F0B85C4 0018C8C0 */ sll $t9, $t8, 3
|
|
/* 0ED0F8 7F0B85C8 1000FFAD */ b .L7F0B8480
|
|
/* 0ED0FC 7F0B85CC 02398821 */ addu $s1, $s1, $t9
|
|
push_tf_if_in_range_rooms:
|
|
/* 0ED100 7F0B85D0 1240000C */ beqz $s2, .L7F0B8604
|
|
/* 0ED104 7F0B85D4 3C028004 */ lui $v0, %hi(g_BgCurrentRoom)
|
|
/* 0ED108 7F0B85D8 8C424838 */ lw $v0, %lo(g_BgCurrentRoom)($v0)
|
|
/* 0ED10C 7F0B85DC 8E28000C */ lw $t0, 0xc($s1)
|
|
/* 0ED110 7F0B85E0 0048202A */ slt $a0, $v0, $t0
|
|
/* 0ED114 7F0B85E4 38840001 */ xori $a0, $a0, 1
|
|
/* 0ED118 7F0B85E8 10800004 */ beqz $a0, .L7F0B85FC
|
|
/* 0ED11C 7F0B85EC 00000000 */ nop
|
|
/* 0ED120 7F0B85F0 8E290014 */ lw $t1, 0x14($s1)
|
|
/* 0ED124 7F0B85F4 0122202A */ slt $a0, $t1, $v0
|
|
/* 0ED128 7F0B85F8 38840001 */ xori $a0, $a0, 1
|
|
.L7F0B85FC:
|
|
/* 0ED12C 7F0B85FC 0FC2E0DD */ jal bgStackPush
|
|
/* 0ED130 7F0B8600 00000000 */ nop
|
|
.L7F0B8604:
|
|
/* 0ED134 7F0B8604 922A0001 */ lbu $t2, 1($s1)
|
|
/* 0ED138 7F0B8608 000A58C0 */ sll $t3, $t2, 3
|
|
/* 0ED13C 7F0B860C 1000FF9C */ b .L7F0B8480
|
|
/* 0ED140 7F0B8610 022B8821 */ addu $s1, $s1, $t3
|
|
force_visible:
|
|
/* 0ED144 7F0B8614 5240000C */ beql $s2, $zero, .L7F0B8648
|
|
/* 0ED148 7F0B8618 922C0001 */ lbu $t4, 1($s1)
|
|
/* 0ED14C 7F0B861C 8FC20000 */ lw $v0, ($fp)
|
|
/* 0ED150 7F0B8620 C4441118 */ lwc1 $f4, 0x1118($v0)
|
|
/* 0ED154 7F0B8624 E6C40000 */ swc1 $f4, ($s6)
|
|
/* 0ED158 7F0B8628 C446111C */ lwc1 $f6, 0x111c($v0)
|
|
/* 0ED15C 7F0B862C E6C60004 */ swc1 $f6, 4($s6)
|
|
/* 0ED160 7F0B8630 C4481120 */ lwc1 $f8, 0x1120($v0)
|
|
/* 0ED164 7F0B8634 E6C80008 */ swc1 $f8, 8($s6)
|
|
/* 0ED168 7F0B8638 C44A1124 */ lwc1 $f10, 0x1124($v0)
|
|
/* 0ED16C 7F0B863C AE800000 */ sw $zero, ($s4)
|
|
/* 0ED170 7F0B8640 E6CA000C */ swc1 $f10, 0xc($s6)
|
|
/* 0ED174 7F0B8644 922C0001 */ lbu $t4, 1($s1)
|
|
.L7F0B8648:
|
|
/* 0ED178 7F0B8648 000C68C0 */ sll $t5, $t4, 3
|
|
/* 0ED17C 7F0B864C 1000FF8C */ b .L7F0B8480
|
|
/* 0ED180 7F0B8650 022D8821 */ addu $s1, $s1, $t5
|
|
match_portal_vis:
|
|
/* 0ED184 7F0B8654 12400010 */ beqz $s2, .L7F0B8698
|
|
/* 0ED188 7F0B8658 02C02825 */ move $a1, $s6
|
|
/* 0ED18C 7F0B865C 0FC2D619 */ jal sub_GAME_7F0B5864
|
|
/* 0ED190 7F0B8660 8E24000C */ lw $a0, 0xc($s1)
|
|
/* 0ED194 7F0B8664 54400004 */ bnezl $v0, .L7F0B8678
|
|
/* 0ED198 7F0B8668 8FC50000 */ lw $a1, ($fp)
|
|
/* 0ED19C 7F0B866C 1000000A */ b .L7F0B8698
|
|
/* 0ED1A0 7F0B8670 AE970000 */ sw $s7, ($s4)
|
|
/* 0ED1A4 7F0B8674 8FC50000 */ lw $a1, ($fp)
|
|
.L7F0B8678:
|
|
/* 0ED1A8 7F0B8678 02C02025 */ move $a0, $s6
|
|
/* 0ED1AC 7F0B867C 0FC2D6F7 */ jal bgRectIntersect
|
|
/* 0ED1B0 7F0B8680 24A51118 */ addiu $a1, $a1, 0x1118
|
|
/* 0ED1B4 7F0B8684 54400004 */ bnezl $v0, .L7F0B8698
|
|
/* 0ED1B8 7F0B8688 AE800000 */ sw $zero, ($s4)
|
|
/* 0ED1BC 7F0B868C 10000002 */ b .L7F0B8698
|
|
/* 0ED1C0 7F0B8690 AE970000 */ sw $s7, ($s4)
|
|
/* 0ED1C4 7F0B8694 AE800000 */ sw $zero, ($s4)
|
|
.L7F0B8698:
|
|
/* 0ED1C8 7F0B8698 922E0001 */ lbu $t6, 1($s1)
|
|
/* 0ED1CC 7F0B869C 000E78C0 */ sll $t7, $t6, 3
|
|
/* 0ED1D0 7F0B86A0 1000FF77 */ b .L7F0B8480
|
|
/* 0ED1D4 7F0B86A4 022F8821 */ addu $s1, $s1, $t7
|
|
visible_if_seen_through_portal:
|
|
/* 0ED1D8 7F0B86A8 12400016 */ beqz $s2, .L7F0B8704
|
|
/* 0ED1DC 7F0B86AC 27A50068 */ addiu $a1, $sp, 0x68
|
|
/* 0ED1E0 7F0B86B0 0FC2D619 */ jal sub_GAME_7F0B5864
|
|
/* 0ED1E4 7F0B86B4 8E24000C */ lw $a0, 0xc($s1)
|
|
/* 0ED1E8 7F0B86B8 50400013 */ beql $v0, $zero, .L7F0B8708
|
|
/* 0ED1EC 7F0B86BC 92390001 */ lbu $t9, 1($s1)
|
|
/* 0ED1F0 7F0B86C0 8FC50000 */ lw $a1, ($fp)
|
|
/* 0ED1F4 7F0B86C4 27A40068 */ addiu $a0, $sp, 0x68
|
|
/* 0ED1F8 7F0B86C8 0FC2D6F7 */ jal bgRectIntersect
|
|
/* 0ED1FC 7F0B86CC 24A51118 */ addiu $a1, $a1, 0x1118
|
|
/* 0ED200 7F0B86D0 5040000D */ beql $v0, $zero, .L7F0B8708
|
|
/* 0ED204 7F0B86D4 92390001 */ lbu $t9, 1($s1)
|
|
/* 0ED208 7F0B86D8 8E980000 */ lw $t8, ($s4)
|
|
/* 0ED20C 7F0B86DC 27A50068 */ addiu $a1, $sp, 0x68
|
|
/* 0ED210 7F0B86E0 02C02025 */ move $a0, $s6
|
|
/* 0ED214 7F0B86E4 13000005 */ beqz $t8, .L7F0B86FC
|
|
/* 0ED218 7F0B86E8 00000000 */ nop
|
|
/* 0ED21C 7F0B86EC 0FC2D756 */ jal bbox2dCopy
|
|
/* 0ED220 7F0B86F0 02C02025 */ move $a0, $s6
|
|
/* 0ED224 7F0B86F4 10000003 */ b .L7F0B8704
|
|
/* 0ED228 7F0B86F8 AE800000 */ sw $zero, ($s4)
|
|
.L7F0B86FC:
|
|
/* 0ED22C 7F0B86FC 0FC2D730 */ jal sub_GAME_7F0B5CC0
|
|
/* 0ED230 7F0B8700 27A50068 */ addiu $a1, $sp, 0x68
|
|
.L7F0B8704:
|
|
/* 0ED234 7F0B8704 92390001 */ lbu $t9, 1($s1)
|
|
.L7F0B8708:
|
|
/* 0ED238 7F0B8708 001940C0 */ sll $t0, $t9, 3
|
|
/* 0ED23C 7F0B870C 1000FF5C */ b .L7F0B8480
|
|
/* 0ED240 7F0B8710 02288821 */ addu $s1, $s1, $t0
|
|
not_visible_if_seen_through_portal:
|
|
/* 0ED244 7F0B8714 52400019 */ beql $s2, $zero, .L7F0B877C
|
|
/* 0ED248 7F0B8718 922A0001 */ lbu $t2, 1($s1)
|
|
/* 0ED24C 7F0B871C 8E890000 */ lw $t1, ($s4)
|
|
/* 0ED250 7F0B8720 27A50058 */ addiu $a1, $sp, 0x58
|
|
/* 0ED254 7F0B8724 55200015 */ bnezl $t1, .L7F0B877C
|
|
/* 0ED258 7F0B8728 922A0001 */ lbu $t2, 1($s1)
|
|
/* 0ED25C 7F0B872C 0FC2D619 */ jal sub_GAME_7F0B5864
|
|
/* 0ED260 7F0B8730 8E24000C */ lw $a0, 0xc($s1)
|
|
/* 0ED264 7F0B8734 54400004 */ bnezl $v0, .L7F0B8748
|
|
/* 0ED268 7F0B8738 8FC50000 */ lw $a1, ($fp)
|
|
/* 0ED26C 7F0B873C 1000000E */ b .L7F0B8778
|
|
/* 0ED270 7F0B8740 AE970000 */ sw $s7, ($s4)
|
|
/* 0ED274 7F0B8744 8FC50000 */ lw $a1, ($fp)
|
|
.L7F0B8748:
|
|
/* 0ED278 7F0B8748 27A40058 */ addiu $a0, $sp, 0x58
|
|
/* 0ED27C 7F0B874C 0FC2D6F7 */ jal bgRectIntersect
|
|
/* 0ED280 7F0B8750 24A51118 */ addiu $a1, $a1, 0x1118
|
|
/* 0ED284 7F0B8754 14400003 */ bnez $v0, .L7F0B8764
|
|
/* 0ED288 7F0B8758 02C02025 */ move $a0, $s6
|
|
/* 0ED28C 7F0B875C 10000006 */ b .L7F0B8778
|
|
/* 0ED290 7F0B8760 AE970000 */ sw $s7, ($s4)
|
|
.L7F0B8764:
|
|
/* 0ED294 7F0B8764 0FC2D6F7 */ jal bgRectIntersect
|
|
/* 0ED298 7F0B8768 27A50058 */ addiu $a1, $sp, 0x58
|
|
/* 0ED29C 7F0B876C 54400003 */ bnezl $v0, .L7F0B877C
|
|
/* 0ED2A0 7F0B8770 922A0001 */ lbu $t2, 1($s1)
|
|
/* 0ED2A4 7F0B8774 AE970000 */ sw $s7, ($s4)
|
|
.L7F0B8778:
|
|
/* 0ED2A8 7F0B8778 922A0001 */ lbu $t2, 1($s1)
|
|
.L7F0B877C:
|
|
/* 0ED2AC 7F0B877C 000A58C0 */ sll $t3, $t2, 3
|
|
/* 0ED2B0 7F0B8780 1000FF3F */ b .L7F0B8480
|
|
/* 0ED2B4 7F0B8784 022B8821 */ addu $s1, $s1, $t3
|
|
add_visible_room:
|
|
/* 0ED2B8 7F0B8788 52400017 */ beql $s2, $zero, .L7F0B87E8
|
|
/* 0ED2BC 7F0B878C 922F0001 */ lbu $t7, 1($s1)
|
|
/* 0ED2C0 7F0B8790 8E8C0000 */ lw $t4, ($s4)
|
|
/* 0ED2C4 7F0B8794 02C02825 */ move $a1, $s6
|
|
/* 0ED2C8 7F0B8798 55800013 */ bnezl $t4, .L7F0B87E8
|
|
/* 0ED2CC 7F0B879C 922F0001 */ lbu $t7, 1($s1)
|
|
/* 0ED2D0 7F0B87A0 0FC2D482 */ jal sub_GAME_7F0B5208
|
|
/* 0ED2D4 7F0B87A4 8E24000C */ lw $a0, 0xc($s1)
|
|
/* 0ED2D8 7F0B87A8 1040000E */ beqz $v0, .L7F0B87E4
|
|
/* 0ED2DC 7F0B87AC 00002825 */ move $a1, $zero
|
|
/* 0ED2E0 7F0B87B0 8E24000C */ lw $a0, 0xc($s1)
|
|
/* 0ED2E4 7F0B87B4 02C03025 */ move $a2, $s6
|
|
/* 0ED2E8 7F0B87B8 0FC2CE6F */ jal sub_GAME_7F0B39BC
|
|
/* 0ED2EC 7F0B87BC 00003825 */ move $a3, $zero
|
|
/* 0ED2F0 7F0B87C0 3C038008 */ lui $v1, %hi(num_visible_rooms_in_cur_global_vis_packet)
|
|
/* 0ED2F4 7F0B87C4 8C63C038 */ lw $v1, %lo(num_visible_rooms_in_cur_global_vis_packet)($v1)
|
|
/* 0ED2F8 7F0B87C8 8E2D000C */ lw $t5, 0xc($s1)
|
|
/* 0ED2FC 7F0B87CC 3C018008 */ lui $at, %hi(list_visible_rooms_in_cur_global_vis_packet)
|
|
/* 0ED300 7F0B87D0 00230821 */ addu $at, $at, $v1
|
|
/* 0ED304 7F0B87D4 A02DBFA0 */ sb $t5, %lo(list_visible_rooms_in_cur_global_vis_packet)($at)
|
|
/* 0ED308 7F0B87D8 3C018008 */ lui $at, %hi(num_visible_rooms_in_cur_global_vis_packet)
|
|
/* 0ED30C 7F0B87DC 246E0001 */ addiu $t6, $v1, 1
|
|
/* 0ED310 7F0B87E0 AC2EC038 */ sw $t6, %lo(num_visible_rooms_in_cur_global_vis_packet)($at)
|
|
.L7F0B87E4:
|
|
/* 0ED314 7F0B87E4 922F0001 */ lbu $t7, 1($s1)
|
|
.L7F0B87E8:
|
|
/* 0ED318 7F0B87E8 000FC0C0 */ sll $t8, $t7, 3
|
|
/* 0ED31C 7F0B87EC 1000FF24 */ b .L7F0B8480
|
|
/* 0ED320 7F0B87F0 02388821 */ addu $s1, $s1, $t8
|
|
disable_room:
|
|
/* 0ED324 7F0B87F4 52400009 */ beql $s2, $zero, .L7F0B881C
|
|
/* 0ED328 7F0B87F8 92290001 */ lbu $t1, 1($s1)
|
|
/* 0ED32C 7F0B87FC 8E39000C */ lw $t9, 0xc($s1)
|
|
/* 0ED330 7F0B8800 3C018004 */ lui $at, %hi(array_room_info + 0x10 +0x24)
|
|
/* 0ED334 7F0B8804 00194080 */ sll $t0, $t9, 2
|
|
/* 0ED338 7F0B8808 01194021 */ addu $t0, $t0, $t9
|
|
/* 0ED33C 7F0B880C 00084100 */ sll $t0, $t0, 4
|
|
/* 0ED340 7F0B8810 00280821 */ addu $at, $at, $t0
|
|
/* 0ED344 7F0B8814 A0351448 */ sb $s5, %lo(array_room_info + 0x10 +0x24)($at)
|
|
/* 0ED348 7F0B8818 92290001 */ lbu $t1, 1($s1)
|
|
.L7F0B881C:
|
|
/* 0ED34C 7F0B881C 000950C0 */ sll $t2, $t1, 3
|
|
/* 0ED350 7F0B8820 1000FF17 */ b .L7F0B8480
|
|
/* 0ED354 7F0B8824 022A8821 */ addu $s1, $s1, $t2
|
|
disable_room_range:
|
|
/* 0ED358 7F0B8828 52400013 */ beql $s2, $zero, .L7F0B8878
|
|
/* 0ED35C 7F0B882C 922F0001 */ lbu $t7, 1($s1)
|
|
/* 0ED360 7F0B8830 8E22000C */ lw $v0, 0xc($s1)
|
|
/* 0ED364 7F0B8834 8E2B0014 */ lw $t3, 0x14($s1)
|
|
/* 0ED368 7F0B8838 3C0D8004 */ lui $t5, %hi(array_room_info)
|
|
/* 0ED36C 7F0B883C 00026080 */ sll $t4, $v0, 2
|
|
/* 0ED370 7F0B8840 0162082A */ slt $at, $t3, $v0
|
|
/* 0ED374 7F0B8844 1420000B */ bnez $at, .L7F0B8874
|
|
/* 0ED378 7F0B8848 01826021 */ addu $t4, $t4, $v0
|
|
/* 0ED37C 7F0B884C 000C6100 */ sll $t4, $t4, 4
|
|
/* 0ED380 7F0B8850 25AD1414 */ addiu $t5, %lo(array_room_info) # addiu $t5, $t5, 0x1414
|
|
/* 0ED384 7F0B8854 018D1821 */ addu $v1, $t4, $t5
|
|
/* 0ED388 7F0B8858 A0750034 */ sb $s5, 0x34($v1)
|
|
.L7F0B885C:
|
|
/* 0ED38C 7F0B885C 8E2E0014 */ lw $t6, 0x14($s1)
|
|
/* 0ED390 7F0B8860 24420001 */ addiu $v0, $v0, 1
|
|
/* 0ED394 7F0B8864 24630050 */ addiu $v1, $v1, 0x50
|
|
/* 0ED398 7F0B8868 01C2082A */ slt $at, $t6, $v0
|
|
/* 0ED39C 7F0B886C 5020FFFB */ beql $at, $zero, .L7F0B885C
|
|
/* 0ED3A0 7F0B8870 A0750034 */ sb $s5, 0x34($v1)
|
|
.L7F0B8874:
|
|
/* 0ED3A4 7F0B8874 922F0001 */ lbu $t7, 1($s1)
|
|
.L7F0B8878:
|
|
/* 0ED3A8 7F0B8878 000FC0C0 */ sll $t8, $t7, 3
|
|
/* 0ED3AC 7F0B887C 1000FF00 */ b .L7F0B8480
|
|
/* 0ED3B0 7F0B8880 02388821 */ addu $s1, $s1, $t8
|
|
preload_room:
|
|
/* 0ED3B4 7F0B8884 52400009 */ beql $s2, $zero, .L7F0B88AC
|
|
/* 0ED3B8 7F0B8888 92280001 */ lbu $t0, 1($s1)
|
|
/* 0ED3BC 7F0B888C 52600007 */ beql $s3, $zero, .L7F0B88AC
|
|
/* 0ED3C0 7F0B8890 92280001 */ lbu $t0, 1($s1)
|
|
/* 0ED3C4 7F0B8894 0FC2D8C5 */ jal bgCheckIfRoomModelNeedsLoad
|
|
/* 0ED3C8 7F0B8898 8E24000C */ lw $a0, 0xc($s1)
|
|
/* 0ED3CC 7F0B889C 2C530001 */ sltiu $s3, $v0, 1
|
|
/* 0ED3D0 7F0B88A0 327900FF */ andi $t9, $s3, 0xff
|
|
/* 0ED3D4 7F0B88A4 03209825 */ move $s3, $t9
|
|
/* 0ED3D8 7F0B88A8 92280001 */ lbu $t0, 1($s1)
|
|
.L7F0B88AC:
|
|
/* 0ED3DC 7F0B88AC 000848C0 */ sll $t1, $t0, 3
|
|
/* 0ED3E0 7F0B88B0 1000FEF3 */ b .L7F0B8480
|
|
/* 0ED3E4 7F0B88B4 02298821 */ addu $s1, $s1, $t1
|
|
preload_room_range:
|
|
/* 0ED3E8 7F0B88B8 52400013 */ beql $s2, $zero, .L7F0B8908
|
|
/* 0ED3EC 7F0B88BC 922B0001 */ lbu $t3, 1($s1)
|
|
/* 0ED3F0 7F0B88C0 8E30000C */ lw $s0, 0xc($s1)
|
|
/* 0ED3F4 7F0B88C4 8E230014 */ lw $v1, 0x14($s1)
|
|
/* 0ED3F8 7F0B88C8 0070082A */ slt $at, $v1, $s0
|
|
/* 0ED3FC 7F0B88CC 5420000E */ bnezl $at, .L7F0B8908
|
|
/* 0ED400 7F0B88D0 922B0001 */ lbu $t3, 1($s1)
|
|
.L7F0B88D4:
|
|
/* 0ED404 7F0B88D4 52600008 */ beql $s3, $zero, .L7F0B88F8
|
|
/* 0ED408 7F0B88D8 26100001 */ addiu $s0, $s0, 1
|
|
/* 0ED40C 7F0B88DC 0FC2D8C5 */ jal bgCheckIfRoomModelNeedsLoad
|
|
/* 0ED410 7F0B88E0 02002025 */ move $a0, $s0
|
|
/* 0ED414 7F0B88E4 2C530001 */ sltiu $s3, $v0, 1
|
|
/* 0ED418 7F0B88E8 326A00FF */ andi $t2, $s3, 0xff
|
|
/* 0ED41C 7F0B88EC 01409825 */ move $s3, $t2
|
|
/* 0ED420 7F0B88F0 8E230014 */ lw $v1, 0x14($s1)
|
|
/* 0ED424 7F0B88F4 26100001 */ addiu $s0, $s0, 1
|
|
.L7F0B88F8:
|
|
/* 0ED428 7F0B88F8 0070082A */ slt $at, $v1, $s0
|
|
/* 0ED42C 7F0B88FC 1020FFF5 */ beqz $at, .L7F0B88D4
|
|
/* 0ED430 7F0B8900 00000000 */ nop
|
|
/* 0ED434 7F0B8904 922B0001 */ lbu $t3, 1($s1)
|
|
.L7F0B8908:
|
|
/* 0ED438 7F0B8908 000B60C0 */ sll $t4, $t3, 3
|
|
/* 0ED43C 7F0B890C 1000FEDC */ b .L7F0B8480
|
|
/* 0ED440 7F0B8910 022C8821 */ addu $s1, $s1, $t4
|
|
remove_vis:
|
|
/* 0ED444 7F0B8914 52400003 */ beql $s2, $zero, .L7F0B8924
|
|
/* 0ED448 7F0B8918 922D0001 */ lbu $t5, 1($s1)
|
|
/* 0ED44C 7F0B891C AE970000 */ sw $s7, ($s4)
|
|
/* 0ED450 7F0B8920 922D0001 */ lbu $t5, 1($s1)
|
|
.L7F0B8924:
|
|
/* 0ED454 7F0B8924 000D70C0 */ sll $t6, $t5, 3
|
|
/* 0ED458 7F0B8928 1000FED5 */ b .L7F0B8480
|
|
/* 0ED45C 7F0B892C 022E8821 */ addu $s1, $s1, $t6
|
|
if_statement:
|
|
/* 0ED460 7F0B8930 922F0001 */ lbu $t7, 1($s1)
|
|
/* 0ED464 7F0B8934 02402825 */ move $a1, $s2
|
|
/* 0ED468 7F0B8938 000FC0C0 */ sll $t8, $t7, 3
|
|
/* 0ED46C 7F0B893C 0FC2E105 */ jal parse_global_vis_command_list
|
|
/* 0ED470 7F0B8940 03112021 */ addu $a0, $t8, $s1
|
|
/* 0ED474 7F0B8944 90590001 */ lbu $t9, 1($v0)
|
|
/* 0ED478 7F0B8948 001940C0 */ sll $t0, $t9, 3
|
|
/* 0ED47C 7F0B894C 1000FECC */ b .L7F0B8480
|
|
/* 0ED480 7F0B8950 00488821 */ addu $s1, $v0, $t0
|
|
endif_continue_exec:
|
|
/* 0ED484 7F0B8954 92290001 */ lbu $t1, 1($s1)
|
|
/* 0ED488 7F0B8958 3C018008 */ lui $at, %hi(dword_CODE_bss_80081600 + 0x10)
|
|
/* 0ED48C 7F0B895C AC201610 */ sw $zero, %lo(dword_CODE_bss_80081600 + 0x10)($at)
|
|
/* 0ED490 7F0B8960 000950C0 */ sll $t2, $t1, 3
|
|
/* 0ED494 7F0B8964 10000023 */ b .L7F0B89F4
|
|
/* 0ED498 7F0B8968 022A1021 */ addu $v0, $s1, $t2
|
|
dont_exec_commands_even_on_return:
|
|
/* 0ED49C 7F0B896C 922B0001 */ lbu $t3, 1($s1)
|
|
/* 0ED4A0 7F0B8970 0012102B */ sltu $v0, $zero, $s2
|
|
/* 0ED4A4 7F0B8974 00009025 */ move $s2, $zero
|
|
/* 0ED4A8 7F0B8978 000B60C0 */ sll $t4, $t3, 3
|
|
/* 0ED4AC 7F0B897C 1040FEC0 */ beqz $v0, .L7F0B8480
|
|
/* 0ED4B0 7F0B8980 022C8821 */ addu $s1, $s1, $t4
|
|
/* 0ED4B4 7F0B8984 3C018008 */ lui $at, %hi(dword_CODE_bss_80081600 + 0x10)
|
|
/* 0ED4B8 7F0B8988 1000FEBD */ b .L7F0B8480
|
|
/* 0ED4BC 7F0B898C AC371610 */ sw $s7, %lo(dword_CODE_bss_80081600 + 0x10)($at)
|
|
if_statement_pull_from_stack:
|
|
/* 0ED4C0 7F0B8990 0FC2E0EC */ jal bgStackPop
|
|
/* 0ED4C4 7F0B8994 00000000 */ nop
|
|
/* 0ED4C8 7F0B8998 922D0001 */ lbu $t5, 1($s1)
|
|
/* 0ED4CC 7F0B899C 00522824 */ and $a1, $v0, $s2
|
|
/* 0ED4D0 7F0B89A0 000D70C0 */ sll $t6, $t5, 3
|
|
/* 0ED4D4 7F0B89A4 0FC2E105 */ jal parse_global_vis_command_list
|
|
/* 0ED4D8 7F0B89A8 01D12021 */ addu $a0, $t6, $s1
|
|
/* 0ED4DC 7F0B89AC 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_80081600 + 0x10)
|
|
/* 0ED4E0 7F0B89B0 8DEF1610 */ lw $t7, %lo(dword_CODE_bss_80081600 + 0x10)($t7)
|
|
/* 0ED4E4 7F0B89B4 00408825 */ move $s1, $v0
|
|
/* 0ED4E8 7F0B89B8 51E0FEB2 */ beql $t7, $zero, .L7F0B8484
|
|
/* 0ED4EC 7F0B89BC 92240000 */ lbu $a0, ($s1)
|
|
/* 0ED4F0 7F0B89C0 1000FEAF */ b .L7F0B8480
|
|
/* 0ED4F4 7F0B89C4 00009025 */ move $s2, $zero
|
|
toggle_exec_vs_ro:
|
|
/* 0ED4F8 7F0B89C8 92390001 */ lbu $t9, 1($s1)
|
|
/* 0ED4FC 7F0B89CC 3A580001 */ xori $t8, $s2, 1
|
|
/* 0ED500 7F0B89D0 03009025 */ move $s2, $t8
|
|
/* 0ED504 7F0B89D4 001940C0 */ sll $t0, $t9, 3
|
|
/* 0ED508 7F0B89D8 1000FEA9 */ b .L7F0B8480
|
|
/* 0ED50C 7F0B89DC 02288821 */ addu $s1, $s1, $t0
|
|
endif:
|
|
/* 0ED510 7F0B89E0 92290001 */ lbu $t1, 1($s1)
|
|
/* 0ED514 7F0B89E4 000950C0 */ sll $t2, $t1, 3
|
|
/* 0ED518 7F0B89E8 10000002 */ b .L7F0B89F4
|
|
/* 0ED51C 7F0B89EC 022A1021 */ addu $v0, $s1, $t2
|
|
invalid_type_terminate:
|
|
.L7F0B89F0:
|
|
/* 0ED520 7F0B89F0 02201025 */ move $v0, $s1
|
|
.L7F0B89F4:
|
|
/* 0ED524 7F0B89F4 8FBF003C */ lw $ra, 0x3c($sp)
|
|
/* 0ED528 7F0B89F8 8FB00018 */ lw $s0, 0x18($sp)
|
|
/* 0ED52C 7F0B89FC 8FB1001C */ lw $s1, 0x1c($sp)
|
|
/* 0ED530 7F0B8A00 8FB20020 */ lw $s2, 0x20($sp)
|
|
/* 0ED534 7F0B8A04 8FB30024 */ lw $s3, 0x24($sp)
|
|
/* 0ED538 7F0B8A08 8FB40028 */ lw $s4, 0x28($sp)
|
|
/* 0ED53C 7F0B8A0C 8FB5002C */ lw $s5, 0x2c($sp)
|
|
/* 0ED540 7F0B8A10 8FB60030 */ lw $s6, 0x30($sp)
|
|
/* 0ED544 7F0B8A14 8FB70034 */ lw $s7, 0x34($sp)
|
|
/* 0ED548 7F0B8A18 8FBE0038 */ lw $fp, 0x38($sp)
|
|
/* 0ED54C 7F0B8A1C 03E00008 */ jr $ra
|
|
/* 0ED550 7F0B8A20 27BD0080 */ addiu $sp, $sp, 0x80
|
|
)
|
|
#endif
|
|
|
|
#if !defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.late_rodata
|
|
/*D:80058C80*/
|
|
glabel jpt_80058C80
|
|
.word if_statement
|
|
.word dont_exec_commands_even_on_return
|
|
.word endif_continue_exec
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word if_statement_pull_from_stack
|
|
.word toggle_exec_vs_ro
|
|
.word endif
|
|
|
|
/*D:80058CB4*/
|
|
glabel vis_command_jpt
|
|
.word break
|
|
.word push_to_stack
|
|
.word pull_from_stack
|
|
.word and_merge_last_two_on_stack
|
|
.word or_merge_last_two_on_stack
|
|
.word not_merge_last_two_on_stack
|
|
.word carrot_merge_last_two_on_stack
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word push_tf_if_in_range_rooms
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word invalid_type_terminate
|
|
.word force_visible
|
|
.word match_portal_vis
|
|
.word add_visible_room
|
|
.word remove_vis
|
|
.word visible_if_seen_through_portal
|
|
.word not_visible_if_seen_through_portal
|
|
.word disable_room
|
|
.word disable_room_range
|
|
.word preload_room
|
|
.word preload_room_range
|
|
.text
|
|
glabel parse_global_vis_command_list
|
|
/* 0EA0B4 7F0B76C4 27BDFF80 */ addiu $sp, $sp, -0x80
|
|
/* 0EA0B8 7F0B76C8 AFB30024 */ sw $s3, 0x24($sp)
|
|
/* 0EA0BC 7F0B76CC AFB20020 */ sw $s2, 0x20($sp)
|
|
/* 0EA0C0 7F0B76D0 AFB1001C */ sw $s1, 0x1c($sp)
|
|
/* 0EA0C4 7F0B76D4 3C018007 */ lui $at, %hi(dword_CODE_bss_80081600 + 0x10) # $at, 0x8007
|
|
/* 0EA0C8 7F0B76D8 00808825 */ move $s1, $a0
|
|
/* 0EA0CC 7F0B76DC 00A09025 */ move $s2, $a1
|
|
/* 0EA0D0 7F0B76E0 AFBF003C */ sw $ra, 0x3c($sp)
|
|
/* 0EA0D4 7F0B76E4 AFBE0038 */ sw $fp, 0x38($sp)
|
|
/* 0EA0D8 7F0B76E8 AFB70034 */ sw $s7, 0x34($sp)
|
|
/* 0EA0DC 7F0B76EC AFB60030 */ sw $s6, 0x30($sp)
|
|
/* 0EA0E0 7F0B76F0 AFB5002C */ sw $s5, 0x2c($sp)
|
|
/* 0EA0E4 7F0B76F4 AFB40028 */ sw $s4, 0x28($sp)
|
|
/* 0EA0E8 7F0B76F8 AFB00018 */ sw $s0, 0x18($sp)
|
|
/* 0EA0EC 7F0B76FC 24130001 */ li $s3, 1
|
|
/* 0EA0F0 7F0B7700 14800003 */ bnez $a0, .L7F0B7710
|
|
/* 0EA0F4 7F0B7704 AC20BFB8 */ sw $zero, %lo(dword_CODE_bss_80081600 + 0x10)($at)
|
|
/* 0EA0F8 7F0B7708 10000166 */ b .L7F0B7CA4
|
|
/* 0EA0FC 7F0B770C 00801025 */ move $v0, $a0
|
|
.L7F0B7710:
|
|
/* 0EA100 7F0B7710 3C1E8007 */ lui $fp, %hi(g_CurrentPlayer) # $fp, 0x8007
|
|
/* 0EA104 7F0B7714 3C168007 */ lui $s6, %hi(dword_CODE_bss_80081600) # $s6, 0x8007
|
|
/* 0EA108 7F0B7718 3C148004 */ lui $s4, %hi(current_visibility) # $s4, 0x8004
|
|
/* 0EA10C 7F0B771C 2694DDE4 */ addiu $s4, %lo(current_visibility) # addiu $s4, $s4, -0x221c
|
|
/* 0EA110 7F0B7720 26D6BFA8 */ addiu $s6, %lo(dword_CODE_bss_80081600) # addiu $s6, $s6, -0x4058
|
|
/* 0EA114 7F0B7724 27DE8BC0 */ addiu $fp, %lo(g_CurrentPlayer) # addiu $fp, $fp, -0x7440
|
|
/* 0EA118 7F0B7728 24170001 */ li $s7, 1
|
|
/* 0EA11C 7F0B772C 24150001 */ li $s5, 1
|
|
.L7F0B7730:
|
|
/* 0EA120 7F0B7730 92240000 */ lbu $a0, ($s1)
|
|
.L7F0B7734:
|
|
/* 0EA124 7F0B7734 28810028 */ slti $at, $a0, 0x28
|
|
/* 0EA128 7F0B7738 14200009 */ bnez $at, .L7F0B7760
|
|
/* 0EA12C 7F0B773C 248EFFB0 */ addiu $t6, $a0, -0x50
|
|
/* 0EA130 7F0B7740 2DC1000D */ sltiu $at, $t6, 0xd
|
|
/* 0EA134 7F0B7744 10200156 */ beqz $at, .L7F0B7CA0
|
|
/* 0EA138 7F0B7748 000E7080 */ sll $t6, $t6, 2
|
|
/* 0EA13C 7F0B774C 3C018005 */ lui $at, %hi(jpt_80058C80)
|
|
/* 0EA140 7F0B7750 002E0821 */ addu $at, $at, $t6
|
|
/* 0EA144 7F0B7754 8C2ED6D0 */ lw $t6, %lo(jpt_80058C80)($at)
|
|
/* 0EA148 7F0B7758 01C00008 */ jr $t6
|
|
/* 0EA14C 7F0B775C 00000000 */ nop
|
|
.L7F0B7760:
|
|
/* 0EA150 7F0B7760 2C810028 */ sltiu $at, $a0, 0x28
|
|
/* 0EA154 7F0B7764 1020014E */ beqz $at, .L7F0B7CA0
|
|
/* 0EA158 7F0B7768 00047880 */ sll $t7, $a0, 2
|
|
/* 0EA15C 7F0B776C 3C018005 */ lui $at, %hi(vis_command_jpt)
|
|
/* 0EA160 7F0B7770 002F0821 */ addu $at, $at, $t7
|
|
/* 0EA164 7F0B7774 8C2FD704 */ lw $t7, %lo(vis_command_jpt)($at)
|
|
/* 0EA168 7F0B7778 01E00008 */ jr $t7
|
|
/* 0EA16C 7F0B777C 00000000 */ nop
|
|
break:
|
|
/* 0EA170 7F0B7780 10000148 */ b .L7F0B7CA4
|
|
/* 0EA174 7F0B7784 02201025 */ move $v0, $s1
|
|
push_to_stack:
|
|
/* 0EA178 7F0B7788 52400004 */ beql $s2, $zero, .L7F0B779C
|
|
/* 0EA17C 7F0B778C 92380001 */ lbu $t8, 1($s1)
|
|
/* 0EA180 7F0B7790 0FC2DD89 */ jal bgStackPush
|
|
/* 0EA184 7F0B7794 8E240004 */ lw $a0, 4($s1)
|
|
/* 0EA188 7F0B7798 92380001 */ lbu $t8, 1($s1)
|
|
.L7F0B779C:
|
|
/* 0EA18C 7F0B779C 0018C8C0 */ sll $t9, $t8, 3
|
|
/* 0EA190 7F0B77A0 1000FFE3 */ b .L7F0B7730
|
|
/* 0EA194 7F0B77A4 02398821 */ addu $s1, $s1, $t9
|
|
pull_from_stack:
|
|
/* 0EA198 7F0B77A8 52400004 */ beql $s2, $zero, .L7F0B77BC
|
|
/* 0EA19C 7F0B77AC 92280001 */ lbu $t0, 1($s1)
|
|
/* 0EA1A0 7F0B77B0 0FC2DD98 */ jal bgStackPop
|
|
/* 0EA1A4 7F0B77B4 00000000 */ nop
|
|
/* 0EA1A8 7F0B77B8 92280001 */ lbu $t0, 1($s1)
|
|
.L7F0B77BC:
|
|
/* 0EA1AC 7F0B77BC 000848C0 */ sll $t1, $t0, 3
|
|
/* 0EA1B0 7F0B77C0 1000FFDB */ b .L7F0B7730
|
|
/* 0EA1B4 7F0B77C4 02298821 */ addu $s1, $s1, $t1
|
|
and_merge_last_two_on_stack:
|
|
/* 0EA1B8 7F0B77C8 52400008 */ beql $s2, $zero, .L7F0B77EC
|
|
/* 0EA1BC 7F0B77CC 922A0001 */ lbu $t2, 1($s1)
|
|
/* 0EA1C0 7F0B77D0 0FC2DD98 */ jal bgStackPop
|
|
/* 0EA1C4 7F0B77D4 00000000 */ nop
|
|
/* 0EA1C8 7F0B77D8 0FC2DD98 */ jal bgStackPop
|
|
/* 0EA1CC 7F0B77DC 00408025 */ move $s0, $v0
|
|
/* 0EA1D0 7F0B77E0 0FC2DD89 */ jal bgStackPush
|
|
/* 0EA1D4 7F0B77E4 00502024 */ and $a0, $v0, $s0
|
|
/* 0EA1D8 7F0B77E8 922A0001 */ lbu $t2, 1($s1)
|
|
.L7F0B77EC:
|
|
/* 0EA1DC 7F0B77EC 000A58C0 */ sll $t3, $t2, 3
|
|
/* 0EA1E0 7F0B77F0 1000FFCF */ b .L7F0B7730
|
|
/* 0EA1E4 7F0B77F4 022B8821 */ addu $s1, $s1, $t3
|
|
or_merge_last_two_on_stack:
|
|
/* 0EA1E8 7F0B77F8 52400008 */ beql $s2, $zero, .L7F0B781C
|
|
/* 0EA1EC 7F0B77FC 922C0001 */ lbu $t4, 1($s1)
|
|
/* 0EA1F0 7F0B7800 0FC2DD98 */ jal bgStackPop
|
|
/* 0EA1F4 7F0B7804 00000000 */ nop
|
|
/* 0EA1F8 7F0B7808 0FC2DD98 */ jal bgStackPop
|
|
/* 0EA1FC 7F0B780C 00408025 */ move $s0, $v0
|
|
/* 0EA200 7F0B7810 0FC2DD89 */ jal bgStackPush
|
|
/* 0EA204 7F0B7814 00502025 */ or $a0, $v0, $s0
|
|
/* 0EA208 7F0B7818 922C0001 */ lbu $t4, 1($s1)
|
|
.L7F0B781C:
|
|
/* 0EA20C 7F0B781C 000C68C0 */ sll $t5, $t4, 3
|
|
/* 0EA210 7F0B7820 1000FFC3 */ b .L7F0B7730
|
|
/* 0EA214 7F0B7824 022D8821 */ addu $s1, $s1, $t5
|
|
not_merge_last_two_on_stack:
|
|
/* 0EA218 7F0B7828 52400006 */ beql $s2, $zero, .L7F0B7844
|
|
/* 0EA21C 7F0B782C 922E0001 */ lbu $t6, 1($s1)
|
|
/* 0EA220 7F0B7830 0FC2DD98 */ jal bgStackPop
|
|
/* 0EA224 7F0B7834 00000000 */ nop
|
|
/* 0EA228 7F0B7838 0FC2DD89 */ jal bgStackPush
|
|
/* 0EA22C 7F0B783C 2C440001 */ sltiu $a0, $v0, 1
|
|
/* 0EA230 7F0B7840 922E0001 */ lbu $t6, 1($s1)
|
|
.L7F0B7844:
|
|
/* 0EA234 7F0B7844 000E78C0 */ sll $t7, $t6, 3
|
|
/* 0EA238 7F0B7848 1000FFB9 */ b .L7F0B7730
|
|
/* 0EA23C 7F0B784C 022F8821 */ addu $s1, $s1, $t7
|
|
carrot_merge_last_two_on_stack:
|
|
/* 0EA240 7F0B7850 52400008 */ beql $s2, $zero, .L7F0B7874
|
|
/* 0EA244 7F0B7854 92380001 */ lbu $t8, 1($s1)
|
|
/* 0EA248 7F0B7858 0FC2DD98 */ jal bgStackPop
|
|
/* 0EA24C 7F0B785C 00000000 */ nop
|
|
/* 0EA250 7F0B7860 0FC2DD98 */ jal bgStackPop
|
|
/* 0EA254 7F0B7864 00408025 */ move $s0, $v0
|
|
/* 0EA258 7F0B7868 0FC2DD89 */ jal bgStackPush
|
|
/* 0EA25C 7F0B786C 00502026 */ xor $a0, $v0, $s0
|
|
/* 0EA260 7F0B7870 92380001 */ lbu $t8, 1($s1)
|
|
.L7F0B7874:
|
|
/* 0EA264 7F0B7874 0018C8C0 */ sll $t9, $t8, 3
|
|
/* 0EA268 7F0B7878 1000FFAD */ b .L7F0B7730
|
|
/* 0EA26C 7F0B787C 02398821 */ addu $s1, $s1, $t9
|
|
push_tf_if_in_range_rooms:
|
|
/* 0EA270 7F0B7880 1240000C */ beqz $s2, .L7F0B78B4
|
|
/* 0EA274 7F0B7884 3C028004 */ lui $v0, %hi(g_BgCurrentRoom) # $v0, 0x8004
|
|
/* 0EA278 7F0B7888 8C42DD18 */ lw $v0, %lo(g_BgCurrentRoom)($v0)
|
|
/* 0EA27C 7F0B788C 8E28000C */ lw $t0, 0xc($s1)
|
|
/* 0EA280 7F0B7890 0048202A */ slt $a0, $v0, $t0
|
|
/* 0EA284 7F0B7894 38840001 */ xori $a0, $a0, 1
|
|
/* 0EA288 7F0B7898 10800004 */ beqz $a0, .L7F0B78AC
|
|
/* 0EA28C 7F0B789C 00000000 */ nop
|
|
/* 0EA290 7F0B78A0 8E290014 */ lw $t1, 0x14($s1)
|
|
/* 0EA294 7F0B78A4 0122202A */ slt $a0, $t1, $v0
|
|
/* 0EA298 7F0B78A8 38840001 */ xori $a0, $a0, 1
|
|
.L7F0B78AC:
|
|
/* 0EA29C 7F0B78AC 0FC2DD89 */ jal bgStackPush
|
|
/* 0EA2A0 7F0B78B0 00000000 */ nop
|
|
.L7F0B78B4:
|
|
/* 0EA2A4 7F0B78B4 922A0001 */ lbu $t2, 1($s1)
|
|
/* 0EA2A8 7F0B78B8 000A58C0 */ sll $t3, $t2, 3
|
|
/* 0EA2AC 7F0B78BC 1000FF9C */ b .L7F0B7730
|
|
/* 0EA2B0 7F0B78C0 022B8821 */ addu $s1, $s1, $t3
|
|
force_visible:
|
|
/* 0EA2B4 7F0B78C4 5240000C */ beql $s2, $zero, .L7F0B78F8
|
|
/* 0EA2B8 7F0B78C8 922C0001 */ lbu $t4, 1($s1)
|
|
/* 0EA2BC 7F0B78CC 8FC20000 */ lw $v0, ($fp)
|
|
/* 0EA2C0 7F0B78D0 C4441110 */ lwc1 $f4, 0x1110($v0)
|
|
/* 0EA2C4 7F0B78D4 E6C40000 */ swc1 $f4, ($s6)
|
|
/* 0EA2C8 7F0B78D8 C4461114 */ lwc1 $f6, 0x1114($v0)
|
|
/* 0EA2CC 7F0B78DC E6C60004 */ swc1 $f6, 4($s6)
|
|
/* 0EA2D0 7F0B78E0 C4481118 */ lwc1 $f8, 0x1118($v0)
|
|
/* 0EA2D4 7F0B78E4 E6C80008 */ swc1 $f8, 8($s6)
|
|
/* 0EA2D8 7F0B78E8 C44A111C */ lwc1 $f10, 0x111c($v0)
|
|
/* 0EA2DC 7F0B78EC AE800000 */ sw $zero, ($s4)
|
|
/* 0EA2E0 7F0B78F0 E6CA000C */ swc1 $f10, 0xc($s6)
|
|
/* 0EA2E4 7F0B78F4 922C0001 */ lbu $t4, 1($s1)
|
|
.L7F0B78F8:
|
|
/* 0EA2E8 7F0B78F8 000C68C0 */ sll $t5, $t4, 3
|
|
/* 0EA2EC 7F0B78FC 1000FF8C */ b .L7F0B7730
|
|
/* 0EA2F0 7F0B7900 022D8821 */ addu $s1, $s1, $t5
|
|
match_portal_vis:
|
|
/* 0EA2F4 7F0B7904 12400010 */ beqz $s2, .L7F0B7948
|
|
/* 0EA2F8 7F0B7908 02C02825 */ move $a1, $s6
|
|
/* 0EA2FC 7F0B790C 0FC2D2E8 */ jal sub_GAME_7F0B5864
|
|
/* 0EA300 7F0B7910 8E24000C */ lw $a0, 0xc($s1)
|
|
/* 0EA304 7F0B7914 54400004 */ bnezl $v0, .L7F0B7928
|
|
/* 0EA308 7F0B7918 8FC50000 */ lw $a1, ($fp)
|
|
/* 0EA30C 7F0B791C 1000000A */ b .L7F0B7948
|
|
/* 0EA310 7F0B7920 AE970000 */ sw $s7, ($s4)
|
|
/* 0EA314 7F0B7924 8FC50000 */ lw $a1, ($fp)
|
|
.L7F0B7928:
|
|
/* 0EA318 7F0B7928 02C02025 */ move $a0, $s6
|
|
/* 0EA31C 7F0B792C 0FC2D3C6 */ jal bgRectIntersect
|
|
/* 0EA320 7F0B7930 24A51110 */ addiu $a1, $a1, 0x1110
|
|
/* 0EA324 7F0B7934 54400004 */ bnezl $v0, .L7F0B7948
|
|
/* 0EA328 7F0B7938 AE800000 */ sw $zero, ($s4)
|
|
/* 0EA32C 7F0B793C 10000002 */ b .L7F0B7948
|
|
/* 0EA330 7F0B7940 AE970000 */ sw $s7, ($s4)
|
|
/* 0EA334 7F0B7944 AE800000 */ sw $zero, ($s4)
|
|
.L7F0B7948:
|
|
/* 0EA338 7F0B7948 922E0001 */ lbu $t6, 1($s1)
|
|
/* 0EA33C 7F0B794C 000E78C0 */ sll $t7, $t6, 3
|
|
/* 0EA340 7F0B7950 1000FF77 */ b .L7F0B7730
|
|
/* 0EA344 7F0B7954 022F8821 */ addu $s1, $s1, $t7
|
|
visible_if_seen_through_portal:
|
|
/* 0EA348 7F0B7958 12400016 */ beqz $s2, .L7F0B79B4
|
|
/* 0EA34C 7F0B795C 27A50068 */ addiu $a1, $sp, 0x68
|
|
/* 0EA350 7F0B7960 0FC2D2E8 */ jal sub_GAME_7F0B5864
|
|
/* 0EA354 7F0B7964 8E24000C */ lw $a0, 0xc($s1)
|
|
/* 0EA358 7F0B7968 50400013 */ beql $v0, $zero, .L7F0B79B8
|
|
/* 0EA35C 7F0B796C 92390001 */ lbu $t9, 1($s1)
|
|
/* 0EA360 7F0B7970 8FC50000 */ lw $a1, ($fp)
|
|
/* 0EA364 7F0B7974 27A40068 */ addiu $a0, $sp, 0x68
|
|
/* 0EA368 7F0B7978 0FC2D3C6 */ jal bgRectIntersect
|
|
/* 0EA36C 7F0B797C 24A51110 */ addiu $a1, $a1, 0x1110
|
|
/* 0EA370 7F0B7980 5040000D */ beql $v0, $zero, .L7F0B79B8
|
|
/* 0EA374 7F0B7984 92390001 */ lbu $t9, 1($s1)
|
|
/* 0EA378 7F0B7988 8E980000 */ lw $t8, ($s4)
|
|
/* 0EA37C 7F0B798C 27A50068 */ addiu $a1, $sp, 0x68
|
|
/* 0EA380 7F0B7990 02C02025 */ move $a0, $s6
|
|
/* 0EA384 7F0B7994 13000005 */ beqz $t8, .L7F0B79AC
|
|
/* 0EA388 7F0B7998 00000000 */ nop
|
|
/* 0EA38C 7F0B799C 0FC2D425 */ jal bbox2dCopy
|
|
/* 0EA390 7F0B79A0 02C02025 */ move $a0, $s6
|
|
/* 0EA394 7F0B79A4 10000003 */ b .L7F0B79B4
|
|
/* 0EA398 7F0B79A8 AE800000 */ sw $zero, ($s4)
|
|
.L7F0B79AC:
|
|
/* 0EA39C 7F0B79AC 0FC2D3FF */ jal sub_GAME_7F0B5CC0
|
|
/* 0EA3A0 7F0B79B0 27A50068 */ addiu $a1, $sp, 0x68
|
|
.L7F0B79B4:
|
|
/* 0EA3A4 7F0B79B4 92390001 */ lbu $t9, 1($s1)
|
|
.L7F0B79B8:
|
|
/* 0EA3A8 7F0B79B8 001940C0 */ sll $t0, $t9, 3
|
|
/* 0EA3AC 7F0B79BC 1000FF5C */ b .L7F0B7730
|
|
/* 0EA3B0 7F0B79C0 02288821 */ addu $s1, $s1, $t0
|
|
not_visible_if_seen_through_portal:
|
|
/* 0EA3B4 7F0B79C4 52400019 */ beql $s2, $zero, .Leu7F0B7A2C
|
|
/* 0EA3B8 7F0B79C8 922A0001 */ lbu $t2, 1($s1)
|
|
/* 0EA3BC 7F0B79CC 8E890000 */ lw $t1, ($s4)
|
|
/* 0EA3C0 7F0B79D0 27A50058 */ addiu $a1, $sp, 0x58
|
|
/* 0EA3C4 7F0B79D4 55200015 */ bnezl $t1, .Leu7F0B7A2C
|
|
/* 0EA3C8 7F0B79D8 922A0001 */ lbu $t2, 1($s1)
|
|
/* 0EA3CC 7F0B79DC 0FC2D2E8 */ jal sub_GAME_7F0B5864
|
|
/* 0EA3D0 7F0B79E0 8E24000C */ lw $a0, 0xc($s1)
|
|
/* 0EA3D4 7F0B79E4 54400004 */ bnezl $v0, .L7F0B79F8
|
|
/* 0EA3D8 7F0B79E8 8FC50000 */ lw $a1, ($fp)
|
|
/* 0EA3DC 7F0B79EC 1000000E */ b .Leu7F0B7A28
|
|
/* 0EA3E0 7F0B79F0 AE970000 */ sw $s7, ($s4)
|
|
/* 0EA3E4 7F0B79F4 8FC50000 */ lw $a1, ($fp)
|
|
.L7F0B79F8:
|
|
/* 0EA3E8 7F0B79F8 27A40058 */ addiu $a0, $sp, 0x58
|
|
/* 0EA3EC 7F0B79FC 0FC2D3C6 */ jal bgRectIntersect
|
|
/* 0EA3F0 7F0B7A00 24A51110 */ addiu $a1, $a1, 0x1110
|
|
/* 0EA3F4 7F0B7A04 14400003 */ bnez $v0, .L7F0B7A14
|
|
/* 0EA3F8 7F0B7A08 02C02025 */ move $a0, $s6
|
|
/* 0EA3FC 7F0B7A0C 10000006 */ b .Leu7F0B7A28
|
|
/* 0EA400 7F0B7A10 AE970000 */ sw $s7, ($s4)
|
|
.L7F0B7A14:
|
|
/* 0EA404 7F0B7A14 0FC2D3C6 */ jal bgRectIntersect
|
|
/* 0EA408 7F0B7A18 27A50058 */ addiu $a1, $sp, 0x58
|
|
/* 0EA40C 7F0B7A1C 54400003 */ bnezl $v0, .Leu7F0B7A2C
|
|
/* 0EA410 7F0B7A20 922A0001 */ lbu $t2, 1($s1)
|
|
/* 0EA414 7F0B7A24 AE970000 */ sw $s7, ($s4)
|
|
.Leu7F0B7A28:
|
|
/* 0EA418 7F0B7A28 922A0001 */ lbu $t2, 1($s1)
|
|
.Leu7F0B7A2C:
|
|
/* 0EA41C 7F0B7A2C 000A58C0 */ sll $t3, $t2, 3
|
|
/* 0EA420 7F0B7A30 1000FF3F */ b .L7F0B7730
|
|
/* 0EA424 7F0B7A34 022B8821 */ addu $s1, $s1, $t3
|
|
add_visible_room:
|
|
/* 0EA428 7F0B7A38 52400017 */ beql $s2, $zero, .L7F0B7A98
|
|
/* 0EA42C 7F0B7A3C 922F0001 */ lbu $t7, 1($s1)
|
|
/* 0EA430 7F0B7A40 8E8C0000 */ lw $t4, ($s4)
|
|
/* 0EA434 7F0B7A44 02C02825 */ move $a1, $s6
|
|
/* 0EA438 7F0B7A48 55800013 */ bnezl $t4, .L7F0B7A98
|
|
/* 0EA43C 7F0B7A4C 922F0001 */ lbu $t7, 1($s1)
|
|
/* 0EA440 7F0B7A50 0FC2D151 */ jal sub_GAME_7F0B5208
|
|
/* 0EA444 7F0B7A54 8E24000C */ lw $a0, 0xc($s1)
|
|
/* 0EA448 7F0B7A58 1040000E */ beqz $v0, .L7F0B7A94
|
|
/* 0EA44C 7F0B7A5C 00002825 */ move $a1, $zero
|
|
/* 0EA450 7F0B7A60 8E24000C */ lw $a0, 0xc($s1)
|
|
/* 0EA454 7F0B7A64 02C03025 */ move $a2, $s6
|
|
/* 0EA458 7F0B7A68 0FC2CB1F */ jal sub_GAME_7F0B39BC
|
|
/* 0EA45C 7F0B7A6C 00003825 */ move $a3, $zero
|
|
/* 0EA460 7F0B7A70 3C038007 */ lui $v1, %hi(num_visible_rooms_in_cur_global_vis_packet) # $v1, 0x8007
|
|
/* 0EA464 7F0B7A74 8C639F7C */ lw $v1, %lo(num_visible_rooms_in_cur_global_vis_packet)($v1)
|
|
/* 0EA468 7F0B7A78 8E2D000C */ lw $t5, 0xc($s1)
|
|
/* 0EA46C 7F0B7A7C 3C018007 */ lui $at, %hi(list_visible_rooms_in_cur_global_vis_packet)
|
|
/* 0EA470 7F0B7A80 00230821 */ addu $at, $at, $v1
|
|
/* 0EA474 7F0B7A84 A02D9EF0 */ sb $t5, %lo(list_visible_rooms_in_cur_global_vis_packet)($at)
|
|
/* 0EA478 7F0B7A88 3C018007 */ lui $at, %hi(num_visible_rooms_in_cur_global_vis_packet) # $at, 0x8007
|
|
/* 0EA47C 7F0B7A8C 246E0001 */ addiu $t6, $v1, 1
|
|
/* 0EA480 7F0B7A90 AC2E9F7C */ sw $t6, %lo(num_visible_rooms_in_cur_global_vis_packet)($at)
|
|
.L7F0B7A94:
|
|
/* 0EA484 7F0B7A94 922F0001 */ lbu $t7, 1($s1)
|
|
.L7F0B7A98:
|
|
/* 0EA488 7F0B7A98 000FC0C0 */ sll $t8, $t7, 3
|
|
/* 0EA48C 7F0B7A9C 1000FF24 */ b .L7F0B7730
|
|
/* 0EA490 7F0B7AA0 02388821 */ addu $s1, $s1, $t8
|
|
disable_room:
|
|
/* 0EA494 7F0B7AA4 52400009 */ beql $s2, $zero, .L7F0B7ACC
|
|
/* 0EA498 7F0B7AA8 92290001 */ lbu $t1, 1($s1)
|
|
/* 0EA49C 7F0B7AAC 8E39000C */ lw $t9, 0xc($s1)
|
|
/* 0EA4A0 7F0B7AB0 3C018004 */ lui $at, %hi(array_room_info + 0x10 +0x24)
|
|
/* 0EA4A4 7F0B7AB4 00194080 */ sll $t0, $t9, 2
|
|
/* 0EA4A8 7F0B7AB8 01194021 */ addu $t0, $t0, $t9
|
|
/* 0EA4AC 7F0B7ABC 00084100 */ sll $t0, $t0, 4
|
|
/* 0EA4B0 7F0B7AC0 00280821 */ addu $at, $at, $t0
|
|
/* 0EA4B4 7F0B7AC4 A035AC98 */ sb $s5, %lo(array_room_info + 0x10 +0x24)($at)
|
|
/* 0EA4B8 7F0B7AC8 92290001 */ lbu $t1, 1($s1)
|
|
.L7F0B7ACC:
|
|
/* 0EA4BC 7F0B7ACC 000950C0 */ sll $t2, $t1, 3
|
|
/* 0EA4C0 7F0B7AD0 1000FF17 */ b .L7F0B7730
|
|
/* 0EA4C4 7F0B7AD4 022A8821 */ addu $s1, $s1, $t2
|
|
disable_room_range:
|
|
/* 0EA4C8 7F0B7AD8 52400013 */ beql $s2, $zero, .L7F0B7B28
|
|
/* 0EA4CC 7F0B7ADC 922F0001 */ lbu $t7, 1($s1)
|
|
/* 0EA4D0 7F0B7AE0 8E22000C */ lw $v0, 0xc($s1)
|
|
/* 0EA4D4 7F0B7AE4 8E2B0014 */ lw $t3, 0x14($s1)
|
|
/* 0EA4D8 7F0B7AE8 3C0D8004 */ lui $t5, %hi(array_room_info) # $t5, 0x8004
|
|
/* 0EA4DC 7F0B7AEC 00026080 */ sll $t4, $v0, 2
|
|
/* 0EA4E0 7F0B7AF0 0162082A */ slt $at, $t3, $v0
|
|
/* 0EA4E4 7F0B7AF4 1420000B */ bnez $at, .L7F0B7B24
|
|
/* 0EA4E8 7F0B7AF8 01826021 */ addu $t4, $t4, $v0
|
|
/* 0EA4EC 7F0B7AFC 000C6100 */ sll $t4, $t4, 4
|
|
/* 0EA4F0 7F0B7B00 25ADAC64 */ addiu $t5, %lo(array_room_info) # addiu $t5, $t5, -0x539c
|
|
/* 0EA4F4 7F0B7B04 018D1821 */ addu $v1, $t4, $t5
|
|
/* 0EA4F8 7F0B7B08 A0750034 */ sb $s5, 0x34($v1)
|
|
.L7F0B7B0C:
|
|
/* 0EA4FC 7F0B7B0C 8E2E0014 */ lw $t6, 0x14($s1)
|
|
/* 0EA500 7F0B7B10 24420001 */ addiu $v0, $v0, 1
|
|
/* 0EA504 7F0B7B14 24630050 */ addiu $v1, $v1, 0x50
|
|
/* 0EA508 7F0B7B18 01C2082A */ slt $at, $t6, $v0
|
|
/* 0EA50C 7F0B7B1C 5020FFFB */ beql $at, $zero, .L7F0B7B0C
|
|
/* 0EA510 7F0B7B20 A0750034 */ sb $s5, 0x34($v1)
|
|
.L7F0B7B24:
|
|
/* 0EA514 7F0B7B24 922F0001 */ lbu $t7, 1($s1)
|
|
.L7F0B7B28:
|
|
/* 0EA518 7F0B7B28 000FC0C0 */ sll $t8, $t7, 3
|
|
/* 0EA51C 7F0B7B2C 1000FF00 */ b .L7F0B7730
|
|
/* 0EA520 7F0B7B30 02388821 */ addu $s1, $s1, $t8
|
|
preload_room:
|
|
/* 0EA524 7F0B7B34 52400009 */ beql $s2, $zero, .L7F0B7B5C
|
|
/* 0EA528 7F0B7B38 92280001 */ lbu $t0, 1($s1)
|
|
/* 0EA52C 7F0B7B3C 52600007 */ beql $s3, $zero, .L7F0B7B5C
|
|
/* 0EA530 7F0B7B40 92280001 */ lbu $t0, 1($s1)
|
|
/* 0EA534 7F0B7B44 0FC2D594 */ jal bgCheckIfRoomModelNeedsLoad
|
|
/* 0EA538 7F0B7B48 8E24000C */ lw $a0, 0xc($s1)
|
|
/* 0EA53C 7F0B7B4C 2C530001 */ sltiu $s3, $v0, 1
|
|
/* 0EA540 7F0B7B50 327900FF */ andi $t9, $s3, 0xff
|
|
/* 0EA544 7F0B7B54 03209825 */ move $s3, $t9
|
|
/* 0EA548 7F0B7B58 92280001 */ lbu $t0, 1($s1)
|
|
.L7F0B7B5C:
|
|
/* 0EA54C 7F0B7B5C 000848C0 */ sll $t1, $t0, 3
|
|
/* 0EA550 7F0B7B60 1000FEF3 */ b .L7F0B7730
|
|
/* 0EA554 7F0B7B64 02298821 */ addu $s1, $s1, $t1
|
|
preload_room_range:
|
|
/* 0EA558 7F0B7B68 52400013 */ beql $s2, $zero, .L7F0B7BB8
|
|
/* 0EA55C 7F0B7B6C 922B0001 */ lbu $t3, 1($s1)
|
|
/* 0EA560 7F0B7B70 8E30000C */ lw $s0, 0xc($s1)
|
|
/* 0EA564 7F0B7B74 8E230014 */ lw $v1, 0x14($s1)
|
|
/* 0EA568 7F0B7B78 0070082A */ slt $at, $v1, $s0
|
|
/* 0EA56C 7F0B7B7C 5420000E */ bnezl $at, .L7F0B7BB8
|
|
/* 0EA570 7F0B7B80 922B0001 */ lbu $t3, 1($s1)
|
|
.L7F0B7B84:
|
|
/* 0EA574 7F0B7B84 52600008 */ beql $s3, $zero, .L7F0B7BA8
|
|
/* 0EA578 7F0B7B88 26100001 */ addiu $s0, $s0, 1
|
|
/* 0EA57C 7F0B7B8C 0FC2D594 */ jal bgCheckIfRoomModelNeedsLoad
|
|
/* 0EA580 7F0B7B90 02002025 */ move $a0, $s0
|
|
/* 0EA584 7F0B7B94 2C530001 */ sltiu $s3, $v0, 1
|
|
/* 0EA588 7F0B7B98 326A00FF */ andi $t2, $s3, 0xff
|
|
/* 0EA58C 7F0B7B9C 01409825 */ move $s3, $t2
|
|
/* 0EA590 7F0B7BA0 8E230014 */ lw $v1, 0x14($s1)
|
|
/* 0EA594 7F0B7BA4 26100001 */ addiu $s0, $s0, 1
|
|
.L7F0B7BA8:
|
|
/* 0EA598 7F0B7BA8 0070082A */ slt $at, $v1, $s0
|
|
/* 0EA59C 7F0B7BAC 1020FFF5 */ beqz $at, .L7F0B7B84
|
|
/* 0EA5A0 7F0B7BB0 00000000 */ nop
|
|
/* 0EA5A4 7F0B7BB4 922B0001 */ lbu $t3, 1($s1)
|
|
.L7F0B7BB8:
|
|
/* 0EA5A8 7F0B7BB8 000B60C0 */ sll $t4, $t3, 3
|
|
/* 0EA5AC 7F0B7BBC 1000FEDC */ b .L7F0B7730
|
|
/* 0EA5B0 7F0B7BC0 022C8821 */ addu $s1, $s1, $t4
|
|
remove_vis:
|
|
/* 0EA5B4 7F0B7BC4 52400003 */ beql $s2, $zero, .L7F0B7BD4
|
|
/* 0EA5B8 7F0B7BC8 922D0001 */ lbu $t5, 1($s1)
|
|
/* 0EA5BC 7F0B7BCC AE970000 */ sw $s7, ($s4)
|
|
/* 0EA5C0 7F0B7BD0 922D0001 */ lbu $t5, 1($s1)
|
|
.L7F0B7BD4:
|
|
/* 0EA5C4 7F0B7BD4 000D70C0 */ sll $t6, $t5, 3
|
|
/* 0EA5C8 7F0B7BD8 1000FED5 */ b .L7F0B7730
|
|
/* 0EA5CC 7F0B7BDC 022E8821 */ addu $s1, $s1, $t6
|
|
if_statement:
|
|
/* 0EA5D0 7F0B7BE0 922F0001 */ lbu $t7, 1($s1)
|
|
/* 0EA5D4 7F0B7BE4 02402825 */ move $a1, $s2
|
|
/* 0EA5D8 7F0B7BE8 000FC0C0 */ sll $t8, $t7, 3
|
|
/* 0EA5DC 7F0B7BEC 0FC2DDB1 */ jal parse_global_vis_command_list
|
|
/* 0EA5E0 7F0B7BF0 03112021 */ addu $a0, $t8, $s1
|
|
/* 0EA5E4 7F0B7BF4 90590001 */ lbu $t9, 1($v0)
|
|
/* 0EA5E8 7F0B7BF8 001940C0 */ sll $t0, $t9, 3
|
|
/* 0EA5EC 7F0B7BFC 1000FECC */ b .L7F0B7730
|
|
/* 0EA5F0 7F0B7C00 00488821 */ addu $s1, $v0, $t0
|
|
endif_continue_exec:
|
|
/* 0EA5F4 7F0B7C04 92290001 */ lbu $t1, 1($s1)
|
|
/* 0EA5F8 7F0B7C08 3C018007 */ lui $at, %hi(dword_CODE_bss_80081600 + 0x10) # $at, 0x8007
|
|
/* 0EA5FC 7F0B7C0C AC20BFB8 */ sw $zero, %lo(dword_CODE_bss_80081600 + 0x10)($at)
|
|
/* 0EA600 7F0B7C10 000950C0 */ sll $t2, $t1, 3
|
|
/* 0EA604 7F0B7C14 10000023 */ b .L7F0B7CA4
|
|
/* 0EA608 7F0B7C18 022A1021 */ addu $v0, $s1, $t2
|
|
dont_exec_commands_even_on_return:
|
|
/* 0EA60C 7F0B7C1C 922B0001 */ lbu $t3, 1($s1)
|
|
/* 0EA610 7F0B7C20 0012102B */ sltu $v0, $zero, $s2
|
|
/* 0EA614 7F0B7C24 00009025 */ move $s2, $zero
|
|
/* 0EA618 7F0B7C28 000B60C0 */ sll $t4, $t3, 3
|
|
/* 0EA61C 7F0B7C2C 1040FEC0 */ beqz $v0, .L7F0B7730
|
|
/* 0EA620 7F0B7C30 022C8821 */ addu $s1, $s1, $t4
|
|
/* 0EA624 7F0B7C34 3C018007 */ lui $at, %hi(dword_CODE_bss_80081600 + 0x10) # $at, 0x8007
|
|
/* 0EA628 7F0B7C38 1000FEBD */ b .L7F0B7730
|
|
/* 0EA62C 7F0B7C3C AC37BFB8 */ sw $s7, %lo(dword_CODE_bss_80081600 + 0x10)($at)
|
|
if_statement_pull_from_stack:
|
|
/* 0EA630 7F0B7C40 0FC2DD98 */ jal bgStackPop
|
|
/* 0EA634 7F0B7C44 00000000 */ nop
|
|
/* 0EA638 7F0B7C48 922D0001 */ lbu $t5, 1($s1)
|
|
/* 0EA63C 7F0B7C4C 00522824 */ and $a1, $v0, $s2
|
|
/* 0EA640 7F0B7C50 000D70C0 */ sll $t6, $t5, 3
|
|
/* 0EA644 7F0B7C54 0FC2DDB1 */ jal parse_global_vis_command_list
|
|
/* 0EA648 7F0B7C58 01D12021 */ addu $a0, $t6, $s1
|
|
/* 0EA64C 7F0B7C5C 3C0F8007 */ lui $t7, %hi(dword_CODE_bss_80081600 + 0x10) # $t7, 0x8007
|
|
/* 0EA650 7F0B7C60 8DEFBFB8 */ lw $t7, %lo(dword_CODE_bss_80081600 + 0x10)($t7)
|
|
/* 0EA654 7F0B7C64 00408825 */ move $s1, $v0
|
|
/* 0EA658 7F0B7C68 51E0FEB2 */ beql $t7, $zero, .L7F0B7734
|
|
/* 0EA65C 7F0B7C6C 92240000 */ lbu $a0, ($s1)
|
|
/* 0EA660 7F0B7C70 1000FEAF */ b .L7F0B7730
|
|
/* 0EA664 7F0B7C74 00009025 */ move $s2, $zero
|
|
toggle_exec_vs_ro:
|
|
/* 0EA668 7F0B7C78 92390001 */ lbu $t9, 1($s1)
|
|
/* 0EA66C 7F0B7C7C 3A580001 */ xori $t8, $s2, 1
|
|
/* 0EA670 7F0B7C80 03009025 */ move $s2, $t8
|
|
/* 0EA674 7F0B7C84 001940C0 */ sll $t0, $t9, 3
|
|
/* 0EA678 7F0B7C88 1000FEA9 */ b .L7F0B7730
|
|
/* 0EA67C 7F0B7C8C 02288821 */ addu $s1, $s1, $t0
|
|
endif:
|
|
/* 0EA680 7F0B7C90 92290001 */ lbu $t1, 1($s1)
|
|
/* 0EA684 7F0B7C94 000950C0 */ sll $t2, $t1, 3
|
|
/* 0EA688 7F0B7C98 10000002 */ b .L7F0B7CA4
|
|
/* 0EA68C 7F0B7C9C 022A1021 */ addu $v0, $s1, $t2
|
|
invalid_type_terminate:
|
|
.L7F0B7CA0:
|
|
/* 0EA690 7F0B7CA0 02201025 */ move $v0, $s1
|
|
.L7F0B7CA4:
|
|
/* 0EA694 7F0B7CA4 8FBF003C */ lw $ra, 0x3c($sp)
|
|
/* 0EA698 7F0B7CA8 8FB00018 */ lw $s0, 0x18($sp)
|
|
/* 0EA69C 7F0B7CAC 8FB1001C */ lw $s1, 0x1c($sp)
|
|
/* 0EA6A0 7F0B7CB0 8FB20020 */ lw $s2, 0x20($sp)
|
|
/* 0EA6A4 7F0B7CB4 8FB30024 */ lw $s3, 0x24($sp)
|
|
/* 0EA6A8 7F0B7CB8 8FB40028 */ lw $s4, 0x28($sp)
|
|
/* 0EA6AC 7F0B7CBC 8FB5002C */ lw $s5, 0x2c($sp)
|
|
/* 0EA6B0 7F0B7CC0 8FB60030 */ lw $s6, 0x30($sp)
|
|
/* 0EA6B4 7F0B7CC4 8FB70034 */ lw $s7, 0x34($sp)
|
|
/* 0EA6B8 7F0B7CC8 8FBE0038 */ lw $fp, 0x38($sp)
|
|
/* 0EA6BC 7F0B7CCC 03E00008 */ jr $ra
|
|
/* 0EA6C0 7F0B7CD0 27BD0080 */ addiu $sp, $sp, 0x80
|
|
)
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
// Something about portals. Void* are structs.
|
|
void *sub_GAME_7F0B8A24(s32 *cmd) {
|
|
|
|
current_visibility = 0;
|
|
if (!cmd)
|
|
{
|
|
return cmd;
|
|
}
|
|
|
|
bgStackGetNthValueFromEnd(0);
|
|
|
|
return parse_global_vis_command_list(cmd, 1);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
void sub_GAME_7F0B8A6C(void) {
|
|
|
|
}
|
|
#else
|
|
|
|
#if defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B8A6C
|
|
/* 0ED59C 7F0B8A6C 27BDFFA0 */ addiu $sp, $sp, -0x60
|
|
/* 0ED5A0 7F0B8A70 AFBF0024 */ sw $ra, 0x24($sp)
|
|
/* 0ED5A4 7F0B8A74 AFB10020 */ sw $s1, 0x20($sp)
|
|
/* 0ED5A8 7F0B8A78 0FC2E423 */ jal bgUpdateCurrentPlayerScreenMinMax
|
|
/* 0ED5AC 7F0B8A7C AFB0001C */ sw $s0, 0x1c($sp)
|
|
/* 0ED5B0 7F0B8A80 3C118008 */ lui $s1, %hi(g_CurrentPlayer)
|
|
/* 0ED5B4 7F0B8A84 2631A0B0 */ addiu $s1, %lo(g_CurrentPlayer) # addiu $s1, $s1, -0x5f50
|
|
/* 0ED5B8 7F0B8A88 8E220000 */ lw $v0, ($s1)
|
|
/* 0ED5BC 7F0B8A8C C4441118 */ lwc1 $f4, 0x1118($v0)
|
|
/* 0ED5C0 7F0B8A90 E7A40050 */ swc1 $f4, 0x50($sp)
|
|
/* 0ED5C4 7F0B8A94 C446111C */ lwc1 $f6, 0x111c($v0)
|
|
/* 0ED5C8 7F0B8A98 E7A60054 */ swc1 $f6, 0x54($sp)
|
|
/* 0ED5CC 7F0B8A9C C4481120 */ lwc1 $f8, 0x1120($v0)
|
|
/* 0ED5D0 7F0B8AA0 E7A80058 */ swc1 $f8, 0x58($sp)
|
|
/* 0ED5D4 7F0B8AA4 C44A1124 */ lwc1 $f10, 0x1124($v0)
|
|
/* 0ED5D8 7F0B8AA8 0FC2CEF1 */ jal sub_GAME_7F0B3BC4
|
|
/* 0ED5DC 7F0B8AAC E7AA005C */ swc1 $f10, 0x5c($sp)
|
|
/* 0ED5E0 7F0B8AB0 3C028004 */ lui $v0, %hi(array_room_info)
|
|
/* 0ED5E4 7F0B8AB4 3C038004 */ lui $v1, %hi(MaxNumRooms)
|
|
/* 0ED5E8 7F0B8AB8 246342F4 */ addiu $v1, %lo(MaxNumRooms) # addiu $v1, $v1, 0x42f4
|
|
/* 0ED5EC 7F0B8ABC 24421414 */ addiu $v0, %lo(array_room_info) # addiu $v0, $v0, 0x1414
|
|
.L7F0B8AC0:
|
|
/* 0ED5F0 7F0B8AC0 24420050 */ addiu $v0, $v0, 0x50
|
|
/* 0ED5F4 7F0B8AC4 0043082B */ sltu $at, $v0, $v1
|
|
/* 0ED5F8 7F0B8AC8 A040FFB0 */ sb $zero, -0x50($v0)
|
|
/* 0ED5FC 7F0B8ACC A040FFB1 */ sb $zero, -0x4f($v0)
|
|
/* 0ED600 7F0B8AD0 1420FFFB */ bnez $at, .L7F0B8AC0
|
|
/* 0ED604 7F0B8AD4 A040FFE4 */ sb $zero, -0x1c($v0)
|
|
/* 0ED608 7F0B8AD8 3C028004 */ lui $v0, %hi(D_800442FC)
|
|
/* 0ED60C 7F0B8ADC 3C038004 */ lui $v1, %hi(D_800443C4)
|
|
/* 0ED610 7F0B8AE0 246343C4 */ addiu $v1, %lo(D_800443C4) # addiu $v1, $v1, 0x43c4
|
|
/* 0ED614 7F0B8AE4 244242FC */ addiu $v0, %lo(D_800442FC) # addiu $v0, $v0, 0x42fc
|
|
.L7F0B8AE8:
|
|
/* 0ED618 7F0B8AE8 24420004 */ addiu $v0, $v0, 4
|
|
/* 0ED61C 7F0B8AEC A040FFFD */ sb $zero, -3($v0)
|
|
/* 0ED620 7F0B8AF0 A040FFFE */ sb $zero, -2($v0)
|
|
/* 0ED624 7F0B8AF4 A040FFFF */ sb $zero, -1($v0)
|
|
/* 0ED628 7F0B8AF8 1443FFFB */ bne $v0, $v1, .L7F0B8AE8
|
|
/* 0ED62C 7F0B8AFC A040FFFC */ sb $zero, -4($v0)
|
|
/* 0ED630 7F0B8B00 3C028004 */ lui $v0, %hi(D_80044858)
|
|
/* 0ED634 7F0B8B04 24424858 */ addiu $v0, %lo(D_80044858) # addiu $v0, $v0, 0x4858
|
|
/* 0ED638 7F0B8B08 8C4E0000 */ lw $t6, ($v0)
|
|
/* 0ED63C 7F0B8B0C 2401000A */ li $at, 10
|
|
/* 0ED640 7F0B8B10 25CF0001 */ addiu $t7, $t6, 1
|
|
/* 0ED644 7F0B8B14 01E1001A */ div $zero, $t7, $at
|
|
/* 0ED648 7F0B8B18 0000C010 */ mfhi $t8
|
|
/* 0ED64C 7F0B8B1C AC580000 */ sw $t8, ($v0)
|
|
/* 0ED650 7F0B8B20 3C018008 */ lui $at, %hi(dword_CODE_bss_8007FF98)
|
|
/* 0ED654 7F0B8B24 AC20FF98 */ sw $zero, %lo(dword_CODE_bss_8007FF98)($at)
|
|
/* 0ED658 7F0B8B28 3C018004 */ lui $at, %hi(D_80044898)
|
|
/* 0ED65C 7F0B8B2C 0FC2DF65 */ jal sub_GAME_7F0B7D94
|
|
/* 0ED660 7F0B8B30 AC204898 */ sw $zero, %lo(D_80044898)($at)
|
|
/* 0ED664 7F0B8B34 0FC2D45A */ jal sub_GAME_7F0B5168
|
|
/* 0ED668 7F0B8B38 00000000 */ nop
|
|
/* 0ED66C 7F0B8B3C 3C048008 */ lui $a0, %hi(dword_CODE_bss_8007FF90)
|
|
/* 0ED670 7F0B8B40 0FC2E289 */ jal sub_GAME_7F0B8A24
|
|
/* 0ED674 7F0B8B44 8C84FF90 */ lw $a0, %lo(dword_CODE_bss_8007FF90)($a0)
|
|
/* 0ED678 7F0B8B48 3C028004 */ lui $v0, %hi(levelentry_index)
|
|
/* 0ED67C 7F0B8B4C 8C421400 */ lw $v0, %lo(levelentry_index)($v0)
|
|
/* 0ED680 7F0B8B50 24030015 */ li $v1, 21
|
|
/* 0ED684 7F0B8B54 3C198008 */ lui $t9, %hi(g_BgPortals)
|
|
/* 0ED688 7F0B8B58 10620005 */ beq $v1, $v0, .L7F0B8B70
|
|
/* 0ED68C 7F0B8B5C 00000000 */ nop
|
|
/* 0ED690 7F0B8B60 8F39FF80 */ lw $t9, %lo(g_BgPortals)($t9)
|
|
/* 0ED694 7F0B8B64 8F2A0000 */ lw $t2, ($t9)
|
|
/* 0ED698 7F0B8B68 15400023 */ bnez $t2, .L7F0B8BF8
|
|
/* 0ED69C 7F0B8B6C 00000000 */ nop
|
|
.L7F0B8B70:
|
|
/* 0ED6A0 7F0B8B70 14620006 */ bne $v1, $v0, .L7F0B8B8C
|
|
/* 0ED6A4 7F0B8B74 24040009 */ li $a0, 9
|
|
/* 0ED6A8 7F0B8B78 8E260000 */ lw $a2, ($s1)
|
|
/* 0ED6AC 7F0B8B7C 00002825 */ move $a1, $zero
|
|
/* 0ED6B0 7F0B8B80 24070001 */ li $a3, 1
|
|
/* 0ED6B4 7F0B8B84 0FC2CE6F */ jal sub_GAME_7F0B39BC
|
|
/* 0ED6B8 7F0B8B88 24C61118 */ addiu $a2, $a2, 0x1118
|
|
.L7F0B8B8C:
|
|
/* 0ED6BC 7F0B8B8C 3C0B8004 */ lui $t3, %hi(MaxNumRooms)
|
|
/* 0ED6C0 7F0B8B90 8D6B42F4 */ lw $t3, %lo(MaxNumRooms)($t3)
|
|
/* 0ED6C4 7F0B8B94 24100001 */ li $s0, 1
|
|
/* 0ED6C8 7F0B8B98 29610002 */ slti $at, $t3, 2
|
|
/* 0ED6CC 7F0B8B9C 14200012 */ bnez $at, .L7F0B8BE8
|
|
/* 0ED6D0 7F0B8BA0 00000000 */ nop
|
|
/* 0ED6D4 7F0B8BA4 8E250000 */ lw $a1, ($s1)
|
|
.L7F0B8BA8:
|
|
/* 0ED6D8 7F0B8BA8 02002025 */ move $a0, $s0
|
|
/* 0ED6DC 7F0B8BAC 0FC2D482 */ jal sub_GAME_7F0B5208
|
|
/* 0ED6E0 7F0B8BB0 24A51118 */ addiu $a1, $a1, 0x1118
|
|
/* 0ED6E4 7F0B8BB4 10400006 */ beqz $v0, .L7F0B8BD0
|
|
/* 0ED6E8 7F0B8BB8 02002025 */ move $a0, $s0
|
|
/* 0ED6EC 7F0B8BBC 8E260000 */ lw $a2, ($s1)
|
|
/* 0ED6F0 7F0B8BC0 00002825 */ move $a1, $zero
|
|
/* 0ED6F4 7F0B8BC4 24070001 */ li $a3, 1
|
|
/* 0ED6F8 7F0B8BC8 0FC2CE6F */ jal sub_GAME_7F0B39BC
|
|
/* 0ED6FC 7F0B8BCC 24C61118 */ addiu $a2, $a2, 0x1118
|
|
.L7F0B8BD0:
|
|
/* 0ED700 7F0B8BD0 3C0C8004 */ lui $t4, %hi(MaxNumRooms)
|
|
/* 0ED704 7F0B8BD4 8D8C42F4 */ lw $t4, %lo(MaxNumRooms)($t4)
|
|
/* 0ED708 7F0B8BD8 26100001 */ addiu $s0, $s0, 1
|
|
/* 0ED70C 7F0B8BDC 020C082A */ slt $at, $s0, $t4
|
|
/* 0ED710 7F0B8BE0 5420FFF1 */ bnezl $at, .L7F0B8BA8
|
|
/* 0ED714 7F0B8BE4 8E250000 */ lw $a1, ($s1)
|
|
.L7F0B8BE8:
|
|
/* 0ED718 7F0B8BE8 3C048008 */ lui $a0, %hi(g_BgPortals)
|
|
/* 0ED71C 7F0B8BEC 8C84FF80 */ lw $a0, %lo(g_BgPortals)($a0)
|
|
/* 0ED720 7F0B8BF0 10000039 */ b .L7F0B8CD8
|
|
/* 0ED724 7F0B8BF4 8C820000 */ lw $v0, ($a0)
|
|
.L7F0B8BF8:
|
|
/* 0ED728 7F0B8BF8 14620006 */ bne $v1, $v0, .L7F0B8C14
|
|
/* 0ED72C 7F0B8BFC 24040009 */ li $a0, 9
|
|
/* 0ED730 7F0B8C00 8E260000 */ lw $a2, ($s1)
|
|
/* 0ED734 7F0B8C04 00002825 */ move $a1, $zero
|
|
/* 0ED738 7F0B8C08 24070001 */ li $a3, 1
|
|
/* 0ED73C 7F0B8C0C 0FC2CE6F */ jal sub_GAME_7F0B39BC
|
|
/* 0ED740 7F0B8C10 24C61118 */ addiu $a2, $a2, 0x1118
|
|
.L7F0B8C14:
|
|
/* 0ED744 7F0B8C14 8E260000 */ lw $a2, ($s1)
|
|
/* 0ED748 7F0B8C18 3C048004 */ lui $a0, %hi(g_BgCurrentRoom)
|
|
/* 0ED74C 7F0B8C1C 8C844838 */ lw $a0, %lo(g_BgCurrentRoom)($a0)
|
|
/* 0ED750 7F0B8C20 00002825 */ move $a1, $zero
|
|
/* 0ED754 7F0B8C24 24070001 */ li $a3, 1
|
|
/* 0ED758 7F0B8C28 0FC2CE6F */ jal sub_GAME_7F0B39BC
|
|
/* 0ED75C 7F0B8C2C 24C61118 */ addiu $a2, $a2, 0x1118
|
|
/* 0ED760 7F0B8C30 3C048008 */ lui $a0, %hi(g_BgPortals)
|
|
/* 0ED764 7F0B8C34 8C84FF80 */ lw $a0, %lo(g_BgPortals)($a0)
|
|
/* 0ED768 7F0B8C38 00008025 */ move $s0, $zero
|
|
/* 0ED76C 7F0B8C3C 00001825 */ move $v1, $zero
|
|
/* 0ED770 7F0B8C40 8C8D0000 */ lw $t5, ($a0)
|
|
/* 0ED774 7F0B8C44 00801025 */ move $v0, $a0
|
|
/* 0ED778 7F0B8C48 11A00016 */ beqz $t5, .L7F0B8CA4
|
|
.L7F0B8C4C:
|
|
/* 0ED77C 7F0B8C4C 3C058004 */ lui $a1, %hi(g_BgCurrentRoom)
|
|
/* 0ED780 7F0B8C50 8CA54838 */ lw $a1, %lo(g_BgCurrentRoom)($a1)
|
|
/* 0ED784 7F0B8C54 904E0004 */ lbu $t6, 4($v0)
|
|
/* 0ED788 7F0B8C58 00002025 */ move $a0, $zero
|
|
/* 0ED78C 7F0B8C5C 02003025 */ move $a2, $s0
|
|
/* 0ED790 7F0B8C60 10AE0003 */ beq $a1, $t6, .L7F0B8C70
|
|
/* 0ED794 7F0B8C64 24070001 */ li $a3, 1
|
|
/* 0ED798 7F0B8C68 904F0005 */ lbu $t7, 5($v0)
|
|
/* 0ED79C 7F0B8C6C 14AF0008 */ bne $a1, $t7, .L7F0B8C90
|
|
.L7F0B8C70:
|
|
/* 0ED7A0 7F0B8C70 27B80050 */ addiu $t8, $sp, 0x50
|
|
/* 0ED7A4 7F0B8C74 AFB80010 */ sw $t8, 0x10($sp)
|
|
/* 0ED7A8 7F0B8C78 0FC2DF79 */ jal sub_GAME_7F0B7DE4
|
|
/* 0ED7AC 7F0B8C7C AFA30034 */ sw $v1, 0x34($sp)
|
|
/* 0ED7B0 7F0B8C80 3C198008 */ lui $t9, %hi(g_BgPortals)
|
|
/* 0ED7B4 7F0B8C84 8F39FF80 */ lw $t9, %lo(g_BgPortals)($t9)
|
|
/* 0ED7B8 7F0B8C88 8FA30034 */ lw $v1, 0x34($sp)
|
|
/* 0ED7BC 7F0B8C8C 03231021 */ addu $v0, $t9, $v1
|
|
.L7F0B8C90:
|
|
/* 0ED7C0 7F0B8C90 8C4A0008 */ lw $t2, 8($v0)
|
|
/* 0ED7C4 7F0B8C94 26100001 */ addiu $s0, $s0, 1
|
|
/* 0ED7C8 7F0B8C98 24630008 */ addiu $v1, $v1, 8
|
|
/* 0ED7CC 7F0B8C9C 1540FFEB */ bnez $t2, .L7F0B8C4C
|
|
/* 0ED7D0 7F0B8CA0 24420008 */ addiu $v0, $v0, 8
|
|
.L7F0B8CA4:
|
|
/* 0ED7D4 7F0B8CA4 27B00044 */ addiu $s0, $sp, 0x44
|
|
/* 0ED7D8 7F0B8CA8 AFA00044 */ sw $zero, 0x44($sp)
|
|
/* 0ED7DC 7F0B8CAC 0FC2DFB9 */ jal sub_GAME_7F0B7EE4
|
|
/* 0ED7E0 7F0B8CB0 02002025 */ move $a0, $s0
|
|
/* 0ED7E4 7F0B8CB4 10400005 */ beqz $v0, .L7F0B8CCC
|
|
/* 0ED7E8 7F0B8CB8 00000000 */ nop
|
|
.L7F0B8CBC:
|
|
/* 0ED7EC 7F0B8CBC 0FC2DFB9 */ jal sub_GAME_7F0B7EE4
|
|
/* 0ED7F0 7F0B8CC0 02002025 */ move $a0, $s0
|
|
/* 0ED7F4 7F0B8CC4 1440FFFD */ bnez $v0, .L7F0B8CBC
|
|
/* 0ED7F8 7F0B8CC8 00000000 */ nop
|
|
.L7F0B8CCC:
|
|
/* 0ED7FC 7F0B8CCC 3C048008 */ lui $a0, %hi(g_BgPortals)
|
|
/* 0ED800 7F0B8CD0 8C84FF80 */ lw $a0, %lo(g_BgPortals)($a0)
|
|
/* 0ED804 7F0B8CD4 8C820000 */ lw $v0, ($a0)
|
|
.L7F0B8CD8:
|
|
/* 0ED808 7F0B8CD8 10400022 */ beqz $v0, .L7F0B8D64
|
|
/* 0ED80C 7F0B8CDC 24090001 */ li $t1, 1
|
|
/* 0ED810 7F0B8CE0 3C078004 */ lui $a3, %hi(array_room_info)
|
|
/* 0ED814 7F0B8CE4 24E71414 */ addiu $a3, %lo(array_room_info) # addiu $a3, $a3, 0x1414
|
|
/* 0ED818 7F0B8CE8 00801025 */ move $v0, $a0
|
|
/* 0ED81C 7F0B8CEC 24080050 */ li $t0, 80
|
|
/* 0ED820 7F0B8CF0 90430004 */ lbu $v1, 4($v0)
|
|
.L7F0B8CF4:
|
|
/* 0ED824 7F0B8CF4 90440005 */ lbu $a0, 5($v0)
|
|
/* 0ED828 7F0B8CF8 00680019 */ multu $v1, $t0
|
|
/* 0ED82C 7F0B8CFC 00005812 */ mflo $t3
|
|
/* 0ED830 7F0B8D00 00EB2821 */ addu $a1, $a3, $t3
|
|
/* 0ED834 7F0B8D04 90A60000 */ lbu $a2, ($a1)
|
|
/* 0ED838 7F0B8D08 10C00009 */ beqz $a2, .L7F0B8D30
|
|
/* 0ED83C 7F0B8D0C 00000000 */ nop
|
|
/* 0ED840 7F0B8D10 00880019 */ multu $a0, $t0
|
|
/* 0ED844 7F0B8D14 00006012 */ mflo $t4
|
|
/* 0ED848 7F0B8D18 00EC1821 */ addu $v1, $a3, $t4
|
|
/* 0ED84C 7F0B8D1C 906D0000 */ lbu $t5, ($v1)
|
|
/* 0ED850 7F0B8D20 15A00003 */ bnez $t5, .L7F0B8D30
|
|
/* 0ED854 7F0B8D24 00000000 */ nop
|
|
/* 0ED858 7F0B8D28 1000000A */ b .L7F0B8D54
|
|
/* 0ED85C 7F0B8D2C A0690001 */ sb $t1, 1($v1)
|
|
.L7F0B8D30:
|
|
/* 0ED860 7F0B8D30 00880019 */ multu $a0, $t0
|
|
/* 0ED864 7F0B8D34 00007012 */ mflo $t6
|
|
/* 0ED868 7F0B8D38 00EE7821 */ addu $t7, $a3, $t6
|
|
/* 0ED86C 7F0B8D3C 91F80000 */ lbu $t8, ($t7)
|
|
/* 0ED870 7F0B8D40 53000005 */ beql $t8, $zero, .L7F0B8D58
|
|
/* 0ED874 7F0B8D44 8C590008 */ lw $t9, 8($v0)
|
|
/* 0ED878 7F0B8D48 54C00003 */ bnezl $a2, .L7F0B8D58
|
|
/* 0ED87C 7F0B8D4C 8C590008 */ lw $t9, 8($v0)
|
|
/* 0ED880 7F0B8D50 A0A90001 */ sb $t1, 1($a1)
|
|
.L7F0B8D54:
|
|
/* 0ED884 7F0B8D54 8C590008 */ lw $t9, 8($v0)
|
|
.L7F0B8D58:
|
|
/* 0ED888 7F0B8D58 24420008 */ addiu $v0, $v0, 8
|
|
/* 0ED88C 7F0B8D5C 5720FFE5 */ bnezl $t9, .L7F0B8CF4
|
|
/* 0ED890 7F0B8D60 90430004 */ lbu $v1, 4($v0)
|
|
.L7F0B8D64:
|
|
/* 0ED894 7F0B8D64 8FBF0024 */ lw $ra, 0x24($sp)
|
|
/* 0ED898 7F0B8D68 8FB0001C */ lw $s0, 0x1c($sp)
|
|
/* 0ED89C 7F0B8D6C 8FB10020 */ lw $s1, 0x20($sp)
|
|
/* 0ED8A0 7F0B8D70 03E00008 */ jr $ra
|
|
/* 0ED8A4 7F0B8D74 27BD0060 */ addiu $sp, $sp, 0x60
|
|
)
|
|
#endif
|
|
|
|
#if !defined(LEFTOVERDEBUG)
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B8A6C
|
|
/* 0EA70C 7F0B7D1C 27BDFFB0 */ addiu $sp, $sp, -0x50
|
|
/* 0EA710 7F0B7D20 AFBF001C */ sw $ra, 0x1c($sp)
|
|
/* 0EA714 7F0B7D24 AFB10018 */ sw $s1, 0x18($sp)
|
|
/* 0EA718 7F0B7D28 0FC2E0CA */ jal bgUpdateCurrentPlayerScreenMinMax
|
|
/* 0EA71C 7F0B7D2C AFB00014 */ sw $s0, 0x14($sp)
|
|
/* 0EA720 7F0B7D30 3C118007 */ lui $s1, %hi(g_CurrentPlayer) # $s1, 0x8007
|
|
/* 0EA724 7F0B7D34 26318BC0 */ addiu $s1, %lo(g_CurrentPlayer) # addiu $s1, $s1, -0x7440
|
|
/* 0EA728 7F0B7D38 8E220000 */ lw $v0, ($s1)
|
|
/* 0EA72C 7F0B7D3C C4441110 */ lwc1 $f4, 0x1110($v0)
|
|
/* 0EA730 7F0B7D40 E7A40040 */ swc1 $f4, 0x40($sp)
|
|
/* 0EA734 7F0B7D44 C4461114 */ lwc1 $f6, 0x1114($v0)
|
|
/* 0EA738 7F0B7D48 E7A60044 */ swc1 $f6, 0x44($sp)
|
|
/* 0EA73C 7F0B7D4C C4481118 */ lwc1 $f8, 0x1118($v0)
|
|
/* 0EA740 7F0B7D50 E7A80048 */ swc1 $f8, 0x48($sp)
|
|
/* 0EA744 7F0B7D54 C44A111C */ lwc1 $f10, 0x111c($v0)
|
|
/* 0EA748 7F0B7D58 0FC2CBB3 */ jal sub_GAME_7F0B3BC4
|
|
/* 0EA74C 7F0B7D5C E7AA004C */ swc1 $f10, 0x4c($sp)
|
|
/* 0EA750 7F0B7D60 3C028004 */ lui $v0, %hi(array_room_info) # $v0, 0x8004
|
|
/* 0EA754 7F0B7D64 3C038004 */ lui $v1, %hi(MaxNumRooms) # $v1, 0x8004
|
|
/* 0EA758 7F0B7D68 2463D7D4 */ addiu $v1, %lo(MaxNumRooms) # addiu $v1, $v1, -0x282c
|
|
/* 0EA75C 7F0B7D6C 2442AC64 */ addiu $v0, %lo(array_room_info) # addiu $v0, $v0, -0x539c
|
|
.L7F0B7D70:
|
|
/* 0EA760 7F0B7D70 24420050 */ addiu $v0, $v0, 0x50
|
|
/* 0EA764 7F0B7D74 0043082B */ sltu $at, $v0, $v1
|
|
/* 0EA768 7F0B7D78 A040FFB0 */ sb $zero, -0x50($v0)
|
|
/* 0EA76C 7F0B7D7C A040FFB1 */ sb $zero, -0x4f($v0)
|
|
/* 0EA770 7F0B7D80 1420FFFB */ bnez $at, .L7F0B7D70
|
|
/* 0EA774 7F0B7D84 A040FFE4 */ sb $zero, -0x1c($v0)
|
|
/* 0EA778 7F0B7D88 3C028004 */ lui $v0, %hi(D_800442FC) # $v0, 0x8004
|
|
/* 0EA77C 7F0B7D8C 3C038004 */ lui $v1, %hi(D_800443C4) # $v1, 0x8004
|
|
/* 0EA780 7F0B7D90 2463D8A4 */ addiu $v1, %lo(D_800443C4) # addiu $v1, $v1, -0x275c
|
|
/* 0EA784 7F0B7D94 2442D7DC */ addiu $v0, %lo(D_800442FC) # addiu $v0, $v0, -0x2824
|
|
.L7F0B7D98:
|
|
/* 0EA788 7F0B7D98 24420004 */ addiu $v0, $v0, 4
|
|
/* 0EA78C 7F0B7D9C A040FFFD */ sb $zero, -3($v0)
|
|
/* 0EA790 7F0B7DA0 A040FFFE */ sb $zero, -2($v0)
|
|
/* 0EA794 7F0B7DA4 A040FFFF */ sb $zero, -1($v0)
|
|
/* 0EA798 7F0B7DA8 1443FFFB */ bne $v0, $v1, .L7F0B7D98
|
|
/* 0EA79C 7F0B7DAC A040FFFC */ sb $zero, -4($v0)
|
|
/* 0EA7A0 7F0B7DB0 3C028004 */ lui $v0, %hi(D_80044858) # $v0, 0x8004
|
|
/* 0EA7A4 7F0B7DB4 2442DD40 */ addiu $v0, %lo(D_80044858) # addiu $v0, $v0, -0x22c0
|
|
/* 0EA7A8 7F0B7DB8 8C4E0000 */ lw $t6, ($v0)
|
|
/* 0EA7AC 7F0B7DBC 2401000A */ li $at, 10
|
|
/* 0EA7B0 7F0B7DC0 25CF0001 */ addiu $t7, $t6, 1
|
|
/* 0EA7B4 7F0B7DC4 01E1001A */ div $zero, $t7, $at
|
|
/* 0EA7B8 7F0B7DC8 0000C010 */ mfhi $t8
|
|
/* 0EA7BC 7F0B7DCC AC580000 */ sw $t8, ($v0)
|
|
/* 0EA7C0 7F0B7DD0 3C018007 */ lui $at, %hi(dword_CODE_bss_8007FFA0 + 0xb40) # $at, 0x8007
|
|
/* 0EA7C4 7F0B7DD4 AC20BF20 */ sw $zero, %lo(dword_CODE_bss_8007FFA0 + 0xb40)($at)
|
|
/* 0EA7C8 7F0B7DD8 3C018004 */ lui $at, %hi(D_80044898) # $at, 0x8004
|
|
/* 0EA7CC 7F0B7DDC 0FC2DC34 */ jal sub_GAME_7F0B7D94
|
|
/* 0EA7D0 7F0B7DE0 AC20DD80 */ sw $zero, %lo(D_80044898)($at)
|
|
/* 0EA7D4 7F0B7DE4 0FC2D129 */ jal sub_GAME_7F0B5168
|
|
/* 0EA7D8 7F0B7DE8 00000000 */ nop
|
|
/* 0EA7DC 7F0B7DEC 3C048007 */ lui $a0, %hi(dword_CODE_bss_8007FF90) # $a0, 0x8007
|
|
/* 0EA7E0 7F0B7DF0 0FC2DF35 */ jal sub_GAME_7F0B8A24
|
|
/* 0EA7E4 7F0B7DF4 8C84B3D8 */ lw $a0, %lo(dword_CODE_bss_8007FF90)($a0)
|
|
/* 0EA7E8 7F0B7DF8 3C028004 */ lui $v0, %hi(levelentry_index) # $v0, 0x8004
|
|
/* 0EA7EC 7F0B7DFC 8C42AC50 */ lw $v0, %lo(levelentry_index)($v0)
|
|
/* 0EA7F0 7F0B7E00 24030015 */ li $v1, 21
|
|
/* 0EA7F4 7F0B7E04 3C198007 */ lui $t9, %hi(g_BgPortals) # $t9, 0x8007
|
|
/* 0EA7F8 7F0B7E08 10620005 */ beq $v1, $v0, .L7F0B7E20
|
|
/* 0EA7FC 7F0B7E0C 00000000 */ nop
|
|
/* 0EA800 7F0B7E10 8F39B3C8 */ lw $t9, %lo(g_BgPortals)($t9)
|
|
/* 0EA804 7F0B7E14 8F2A0000 */ lw $t2, ($t9)
|
|
/* 0EA808 7F0B7E18 15400021 */ bnez $t2, .L7F0B7EA0
|
|
/* 0EA80C 7F0B7E1C 00000000 */ nop
|
|
.L7F0B7E20:
|
|
/* 0EA810 7F0B7E20 14620006 */ bne $v1, $v0, .L7F0B7E3C
|
|
/* 0EA814 7F0B7E24 24040009 */ li $a0, 9
|
|
/* 0EA818 7F0B7E28 8E260000 */ lw $a2, ($s1)
|
|
/* 0EA81C 7F0B7E2C 00002825 */ move $a1, $zero
|
|
/* 0EA820 7F0B7E30 24070001 */ li $a3, 1
|
|
/* 0EA824 7F0B7E34 0FC2CB1F */ jal sub_GAME_7F0B39BC
|
|
/* 0EA828 7F0B7E38 24C61110 */ addiu $a2, $a2, 0x1110
|
|
.L7F0B7E3C:
|
|
/* 0EA82C 7F0B7E3C 3C0B8004 */ lui $t3, %hi(MaxNumRooms) # $t3, 0x8004
|
|
/* 0EA830 7F0B7E40 8D6BD7D4 */ lw $t3, %lo(MaxNumRooms)($t3)
|
|
/* 0EA834 7F0B7E44 24100001 */ li $s0, 1
|
|
/* 0EA838 7F0B7E48 29610002 */ slti $at, $t3, 2
|
|
/* 0EA83C 7F0B7E4C 14200012 */ bnez $at, .L7F0B7E98
|
|
/* 0EA840 7F0B7E50 00000000 */ nop
|
|
/* 0EA844 7F0B7E54 8E250000 */ lw $a1, ($s1)
|
|
.L7F0B7E58:
|
|
/* 0EA848 7F0B7E58 02002025 */ move $a0, $s0
|
|
/* 0EA84C 7F0B7E5C 0FC2D151 */ jal sub_GAME_7F0B5208
|
|
/* 0EA850 7F0B7E60 24A51110 */ addiu $a1, $a1, 0x1110
|
|
/* 0EA854 7F0B7E64 10400006 */ beqz $v0, .L7F0B7E80
|
|
/* 0EA858 7F0B7E68 02002025 */ move $a0, $s0
|
|
/* 0EA85C 7F0B7E6C 8E260000 */ lw $a2, ($s1)
|
|
/* 0EA860 7F0B7E70 00002825 */ move $a1, $zero
|
|
/* 0EA864 7F0B7E74 24070001 */ li $a3, 1
|
|
/* 0EA868 7F0B7E78 0FC2CB1F */ jal sub_GAME_7F0B39BC
|
|
/* 0EA86C 7F0B7E7C 24C61110 */ addiu $a2, $a2, 0x1110
|
|
.L7F0B7E80:
|
|
/* 0EA870 7F0B7E80 3C0C8004 */ lui $t4, %hi(MaxNumRooms) # $t4, 0x8004
|
|
/* 0EA874 7F0B7E84 8D8CD7D4 */ lw $t4, %lo(MaxNumRooms)($t4)
|
|
/* 0EA878 7F0B7E88 26100001 */ addiu $s0, $s0, 1
|
|
/* 0EA87C 7F0B7E8C 020C082A */ slt $at, $s0, $t4
|
|
/* 0EA880 7F0B7E90 5420FFF1 */ bnezl $at, .L7F0B7E58
|
|
/* 0EA884 7F0B7E94 8E250000 */ lw $a1, ($s1)
|
|
.L7F0B7E98:
|
|
/* 0EA888 7F0B7E98 10000033 */ b .L7F0B7F68
|
|
/* 0EA88C 7F0B7E9C 00000000 */ nop
|
|
.L7F0B7EA0:
|
|
/* 0EA890 7F0B7EA0 14620006 */ bne $v1, $v0, .L7F0B7EBC
|
|
/* 0EA894 7F0B7EA4 24040009 */ li $a0, 9
|
|
/* 0EA898 7F0B7EA8 8E260000 */ lw $a2, ($s1)
|
|
/* 0EA89C 7F0B7EAC 00002825 */ move $a1, $zero
|
|
/* 0EA8A0 7F0B7EB0 24070001 */ li $a3, 1
|
|
/* 0EA8A4 7F0B7EB4 0FC2CB1F */ jal sub_GAME_7F0B39BC
|
|
/* 0EA8A8 7F0B7EB8 24C61110 */ addiu $a2, $a2, 0x1110
|
|
.L7F0B7EBC:
|
|
/* 0EA8AC 7F0B7EBC 8E260000 */ lw $a2, ($s1)
|
|
/* 0EA8B0 7F0B7EC0 3C048004 */ lui $a0, %hi(g_BgCurrentRoom) # $a0, 0x8004
|
|
/* 0EA8B4 7F0B7EC4 8C84DD18 */ lw $a0, %lo(g_BgCurrentRoom)($a0)
|
|
/* 0EA8B8 7F0B7EC8 00002825 */ move $a1, $zero
|
|
/* 0EA8BC 7F0B7ECC 24070001 */ li $a3, 1
|
|
/* 0EA8C0 7F0B7ED0 0FC2CB1F */ jal sub_GAME_7F0B39BC
|
|
/* 0EA8C4 7F0B7ED4 24C61110 */ addiu $a2, $a2, 0x1110
|
|
/* 0EA8C8 7F0B7ED8 3C048007 */ lui $a0, %hi(g_BgPortals) # $a0, 0x8007
|
|
/* 0EA8CC 7F0B7EDC 8C84B3C8 */ lw $a0, %lo(g_BgPortals)($a0)
|
|
/* 0EA8D0 7F0B7EE0 00008025 */ move $s0, $zero
|
|
/* 0EA8D4 7F0B7EE4 00001825 */ move $v1, $zero
|
|
/* 0EA8D8 7F0B7EE8 8C8D0000 */ lw $t5, ($a0)
|
|
/* 0EA8DC 7F0B7EEC 00801025 */ move $v0, $a0
|
|
/* 0EA8E0 7F0B7EF0 11A00015 */ beqz $t5, .L7F0B7F48
|
|
.L7F0B7EF4:
|
|
/* 0EA8E4 7F0B7EF4 3C048004 */ lui $a0, %hi(g_BgCurrentRoom) # $a0, 0x8004
|
|
/* 0EA8E8 7F0B7EF8 8C84DD18 */ lw $a0, %lo(g_BgCurrentRoom)($a0)
|
|
/* 0EA8EC 7F0B7EFC 904E0004 */ lbu $t6, 4($v0)
|
|
/* 0EA8F0 7F0B7F00 02002825 */ move $a1, $s0
|
|
/* 0EA8F4 7F0B7F04 24060001 */ li $a2, 1
|
|
/* 0EA8F8 7F0B7F08 108E0004 */ beq $a0, $t6, .L7F0B7F1C
|
|
/* 0EA8FC 7F0B7F0C 27A70040 */ addiu $a3, $sp, 0x40
|
|
/* 0EA900 7F0B7F10 904F0005 */ lbu $t7, 5($v0)
|
|
/* 0EA904 7F0B7F14 548F0008 */ bnel $a0, $t7, .L7F0B7F38
|
|
/* 0EA908 7F0B7F18 8C590008 */ lw $t9, 8($v0)
|
|
.L7F0B7F1C:
|
|
/* 0EA90C 7F0B7F1C 0FC2DC48 */ jal sub_GAME_7F0B7DE4
|
|
/* 0EA910 7F0B7F20 AFA30028 */ sw $v1, 0x28($sp)
|
|
/* 0EA914 7F0B7F24 3C188007 */ lui $t8, %hi(g_BgPortals) # $t8, 0x8007
|
|
/* 0EA918 7F0B7F28 8F18B3C8 */ lw $t8, %lo(g_BgPortals)($t8)
|
|
/* 0EA91C 7F0B7F2C 8FA30028 */ lw $v1, 0x28($sp)
|
|
/* 0EA920 7F0B7F30 03031021 */ addu $v0, $t8, $v1
|
|
/* 0EA924 7F0B7F34 8C590008 */ lw $t9, 8($v0)
|
|
.L7F0B7F38:
|
|
/* 0EA928 7F0B7F38 26100001 */ addiu $s0, $s0, 1
|
|
/* 0EA92C 7F0B7F3C 24630008 */ addiu $v1, $v1, 8
|
|
/* 0EA930 7F0B7F40 1720FFEC */ bnez $t9, .L7F0B7EF4
|
|
/* 0EA934 7F0B7F44 24420008 */ addiu $v0, $v0, 8
|
|
.L7F0B7F48:
|
|
/* 0EA938 7F0B7F48 0FC2DC88 */ jal sub_GAME_7F0B7EE4
|
|
/* 0EA93C 7F0B7F4C 00000000 */ nop
|
|
/* 0EA940 7F0B7F50 10400005 */ beqz $v0, .L7F0B7F68
|
|
/* 0EA944 7F0B7F54 00000000 */ nop
|
|
.L7F0B7F58:
|
|
/* 0EA948 7F0B7F58 0FC2DC88 */ jal sub_GAME_7F0B7EE4
|
|
/* 0EA94C 7F0B7F5C 00000000 */ nop
|
|
/* 0EA950 7F0B7F60 1440FFFD */ bnez $v0, .L7F0B7F58
|
|
/* 0EA954 7F0B7F64 00000000 */ nop
|
|
.L7F0B7F68:
|
|
/* 0EA958 7F0B7F68 3C048007 */ lui $a0, %hi(g_BgPortals) # $a0, 0x8007
|
|
/* 0EA95C 7F0B7F6C 8C84B3C8 */ lw $a0, %lo(g_BgPortals)($a0)
|
|
/* 0EA960 7F0B7F70 3C078004 */ lui $a3, %hi(array_room_info) # $a3, 0x8004
|
|
/* 0EA964 7F0B7F74 24E7AC64 */ addiu $a3, %lo(array_room_info) # addiu $a3, $a3, -0x539c
|
|
/* 0EA968 7F0B7F78 8C8A0000 */ lw $t2, ($a0)
|
|
/* 0EA96C 7F0B7F7C 24090001 */ li $t1, 1
|
|
/* 0EA970 7F0B7F80 24080050 */ li $t0, 80
|
|
/* 0EA974 7F0B7F84 1140001E */ beqz $t2, .L7F0B8000
|
|
/* 0EA978 7F0B7F88 00801025 */ move $v0, $a0
|
|
/* 0EA97C 7F0B7F8C 90430004 */ lbu $v1, 4($v0)
|
|
.L7F0B7F90:
|
|
/* 0EA980 7F0B7F90 90440005 */ lbu $a0, 5($v0)
|
|
/* 0EA984 7F0B7F94 00680019 */ multu $v1, $t0
|
|
/* 0EA988 7F0B7F98 00005812 */ mflo $t3
|
|
/* 0EA98C 7F0B7F9C 00EB2821 */ addu $a1, $a3, $t3
|
|
/* 0EA990 7F0B7FA0 90A60000 */ lbu $a2, ($a1)
|
|
/* 0EA994 7F0B7FA4 10C00009 */ beqz $a2, .L7F0B7FCC
|
|
/* 0EA998 7F0B7FA8 00000000 */ nop
|
|
/* 0EA99C 7F0B7FAC 00880019 */ multu $a0, $t0
|
|
/* 0EA9A0 7F0B7FB0 00006012 */ mflo $t4
|
|
/* 0EA9A4 7F0B7FB4 00EC1821 */ addu $v1, $a3, $t4
|
|
/* 0EA9A8 7F0B7FB8 906D0000 */ lbu $t5, ($v1)
|
|
/* 0EA9AC 7F0B7FBC 15A00003 */ bnez $t5, .L7F0B7FCC
|
|
/* 0EA9B0 7F0B7FC0 00000000 */ nop
|
|
/* 0EA9B4 7F0B7FC4 1000000A */ b .L7F0B7FF0
|
|
/* 0EA9B8 7F0B7FC8 A0690001 */ sb $t1, 1($v1)
|
|
.L7F0B7FCC:
|
|
/* 0EA9BC 7F0B7FCC 00880019 */ multu $a0, $t0
|
|
/* 0EA9C0 7F0B7FD0 00007012 */ mflo $t6
|
|
/* 0EA9C4 7F0B7FD4 00EE7821 */ addu $t7, $a3, $t6
|
|
/* 0EA9C8 7F0B7FD8 91F80000 */ lbu $t8, ($t7)
|
|
/* 0EA9CC 7F0B7FDC 53000005 */ beql $t8, $zero, .L7F0B7FF4
|
|
/* 0EA9D0 7F0B7FE0 8C590008 */ lw $t9, 8($v0)
|
|
/* 0EA9D4 7F0B7FE4 54C00003 */ bnezl $a2, .L7F0B7FF4
|
|
/* 0EA9D8 7F0B7FE8 8C590008 */ lw $t9, 8($v0)
|
|
/* 0EA9DC 7F0B7FEC A0A90001 */ sb $t1, 1($a1)
|
|
.L7F0B7FF0:
|
|
/* 0EA9E0 7F0B7FF0 8C590008 */ lw $t9, 8($v0)
|
|
.L7F0B7FF4:
|
|
/* 0EA9E4 7F0B7FF4 24420008 */ addiu $v0, $v0, 8
|
|
/* 0EA9E8 7F0B7FF8 5720FFE5 */ bnezl $t9, .L7F0B7F90
|
|
/* 0EA9EC 7F0B7FFC 90430004 */ lbu $v1, 4($v0)
|
|
.L7F0B8000:
|
|
/* 0EA9F0 7F0B8000 8FBF001C */ lw $ra, 0x1c($sp)
|
|
/* 0EA9F4 7F0B8004 8FB00014 */ lw $s0, 0x14($sp)
|
|
/* 0EA9F8 7F0B8008 8FB10018 */ lw $s1, 0x18($sp)
|
|
/* 0EA9FC 7F0B800C 03E00008 */ jr $ra
|
|
/* 0EAA00 7F0B8010 27BD0050 */ addiu $sp, $sp, 0x50
|
|
)
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Address 0x7F0B8D78.
|
|
*/
|
|
Gfx *sub_GAME_7F0B8D78(Gfx *arg0)
|
|
{
|
|
s32 i;
|
|
if (levelentry_index == LEVEL_INDEX_DAM)
|
|
{
|
|
for (i=0; i<g_BgNumberOfRoomsDrawn; i++)
|
|
{
|
|
// The lake in dam is a single giant room, id 0x23
|
|
if (dword_CODE_bss_8007FFA0[i].roomid == 0x23)
|
|
{
|
|
// speculation in discord: unk1 is probably draw order or similar,
|
|
// this is a hack to draw the lake first.
|
|
dword_CODE_bss_8007FFA0[i].unk1 = 0;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
return bgScissorCurrentPlayerViewDefault(sub_GAME_7F0B3C8C(arg0));
|
|
}
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
void sub_GAME_7F0B8DF4(void) {
|
|
|
|
}
|
|
#else
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B8DF4
|
|
/* 0ED924 7F0B8DF4 3C088008 */ lui $t0, %hi(g_BgPortals)
|
|
/* 0ED928 7F0B8DF8 2508FF80 */ addiu $t0, %lo(g_BgPortals) # addiu $t0, $t0, -0x80
|
|
/* 0ED92C 7F0B8DFC 8D070000 */ lw $a3, ($t0)
|
|
/* 0ED930 7F0B8E00 27BDFFF0 */ addiu $sp, $sp, -0x10
|
|
/* 0ED934 7F0B8E04 AFB1000C */ sw $s1, 0xc($sp)
|
|
/* 0ED938 7F0B8E08 AFB00008 */ sw $s0, 8($sp)
|
|
/* 0ED93C 7F0B8E0C 8CEE0000 */ lw $t6, ($a3)
|
|
/* 0ED940 7F0B8E10 00A08025 */ move $s0, $a1
|
|
/* 0ED944 7F0B8E14 00C08825 */ move $s1, $a2
|
|
/* 0ED948 7F0B8E18 00001825 */ move $v1, $zero
|
|
/* 0ED94C 7F0B8E1C 11C00019 */ beqz $t6, .L7F0B8E84
|
|
/* 0ED950 7F0B8E20 00001025 */ move $v0, $zero
|
|
/* 0ED954 7F0B8E24 00002825 */ move $a1, $zero
|
|
/* 0ED958 7F0B8E28 00E03025 */ move $a2, $a3
|
|
/* 0ED95C 7F0B8E2C 90CF0004 */ lbu $t7, 4($a2)
|
|
.L7F0B8E30:
|
|
/* 0ED960 7F0B8E30 0003C880 */ sll $t9, $v1, 2
|
|
/* 0ED964 7F0B8E34 02194821 */ addu $t1, $s0, $t9
|
|
/* 0ED968 7F0B8E38 508F0005 */ beql $a0, $t7, .L7F0B8E50
|
|
/* 0ED96C 7F0B8E3C AD220000 */ sw $v0, ($t1)
|
|
/* 0ED970 7F0B8E40 90D80005 */ lbu $t8, 5($a2)
|
|
/* 0ED974 7F0B8E44 54980004 */ bnel $a0, $t8, .L7F0B8E58
|
|
/* 0ED978 7F0B8E48 0071082A */ slt $at, $v1, $s1
|
|
/* 0ED97C 7F0B8E4C AD220000 */ sw $v0, ($t1)
|
|
.L7F0B8E50:
|
|
/* 0ED980 7F0B8E50 24630001 */ addiu $v1, $v1, 1
|
|
/* 0ED984 7F0B8E54 0071082A */ slt $at, $v1, $s1
|
|
.L7F0B8E58:
|
|
/* 0ED988 7F0B8E58 54200004 */ bnezl $at, .L7F0B8E6C
|
|
/* 0ED98C 7F0B8E5C 8D0A0000 */ lw $t2, ($t0)
|
|
/* 0ED990 7F0B8E60 10000009 */ b .L7F0B8E88
|
|
/* 0ED994 7F0B8E64 00601025 */ move $v0, $v1
|
|
/* 0ED998 7F0B8E68 8D0A0000 */ lw $t2, ($t0)
|
|
.L7F0B8E6C:
|
|
/* 0ED99C 7F0B8E6C 24A50008 */ addiu $a1, $a1, 8
|
|
/* 0ED9A0 7F0B8E70 24420001 */ addiu $v0, $v0, 1
|
|
/* 0ED9A4 7F0B8E74 01453021 */ addu $a2, $t2, $a1
|
|
/* 0ED9A8 7F0B8E78 8CCB0000 */ lw $t3, ($a2)
|
|
/* 0ED9AC 7F0B8E7C 5560FFEC */ bnezl $t3, .L7F0B8E30
|
|
/* 0ED9B0 7F0B8E80 90CF0004 */ lbu $t7, 4($a2)
|
|
.L7F0B8E84:
|
|
/* 0ED9B4 7F0B8E84 00601025 */ move $v0, $v1
|
|
.L7F0B8E88:
|
|
/* 0ED9B8 7F0B8E88 8FB00008 */ lw $s0, 8($sp)
|
|
/* 0ED9BC 7F0B8E8C 8FB1000C */ lw $s1, 0xc($sp)
|
|
/* 0ED9C0 7F0B8E90 03E00008 */ jr $ra
|
|
/* 0ED9C4 7F0B8E94 27BD0010 */ addiu $sp, $sp, 0x10
|
|
)
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
s32 sub_GAME_7F0B8E98(s32 arg0, s32 arg1) {
|
|
s32 temp_v1;
|
|
void *temp_v0;
|
|
s32 temp_at;
|
|
void *phi_a2;
|
|
void *phi_v0;
|
|
s32 phi_v1;
|
|
s32 phi_v1_2;
|
|
|
|
// Node 0
|
|
phi_v1_2 = 0;
|
|
if (num_visible_rooms_in_cur_global_vis_packet > 0)
|
|
{
|
|
// Node 1
|
|
phi_v1_2 = 0;
|
|
if (arg1 > 0)
|
|
{
|
|
// Node 2
|
|
phi_a2 = (0 + &list_visible_rooms_in_cur_global_vis_packet);
|
|
phi_v0 = (arg0 + (0 * 4));
|
|
phi_v1 = 0;
|
|
loop_3:
|
|
// Node 3
|
|
temp_v1 = (phi_v1 + 1);
|
|
temp_v0 = (phi_v0 + 4);
|
|
temp_v0->unk-4 = (?32) *phi_a2;
|
|
temp_at = (temp_v1 < arg1);
|
|
phi_v1_2 = temp_v1;
|
|
if (temp_at != 0)
|
|
{
|
|
// Node 4
|
|
phi_a2 = (phi_a2 + 1);
|
|
phi_v0 = temp_v0;
|
|
phi_v1 = temp_v1;
|
|
phi_v1_2 = temp_v1;
|
|
if (temp_at != 0)
|
|
{
|
|
goto loop_3;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// Node 5
|
|
return phi_v1_2;
|
|
}
|
|
#else
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B8E98
|
|
/* 0ED9C8 7F0B8E98 3C078008 */ lui $a3, %hi(num_visible_rooms_in_cur_global_vis_packet)
|
|
/* 0ED9CC 7F0B8E9C 24E7C038 */ addiu $a3, %lo(num_visible_rooms_in_cur_global_vis_packet) # addiu $a3, $a3, -0x3fc8
|
|
/* 0ED9D0 7F0B8EA0 8CEE0000 */ lw $t6, ($a3)
|
|
/* 0ED9D4 7F0B8EA4 00001825 */ move $v1, $zero
|
|
/* 0ED9D8 7F0B8EA8 19C00012 */ blez $t6, .L7F0B8EF4
|
|
/* 0ED9DC 7F0B8EAC 00000000 */ nop
|
|
/* 0ED9E0 7F0B8EB0 18A00010 */ blez $a1, .L7F0B8EF4
|
|
/* 0ED9E4 7F0B8EB4 00007880 */ sll $t7, $zero, 2
|
|
/* 0ED9E8 7F0B8EB8 3C188008 */ lui $t8, %hi(list_visible_rooms_in_cur_global_vis_packet)
|
|
/* 0ED9EC 7F0B8EBC 2718BFA0 */ addiu $t8, %lo(list_visible_rooms_in_cur_global_vis_packet) # addiu $t8, $t8, -0x4060
|
|
/* 0ED9F0 7F0B8EC0 00183021 */ addu $a2, $zero, $t8
|
|
/* 0ED9F4 7F0B8EC4 008F1021 */ addu $v0, $a0, $t7
|
|
/* 0ED9F8 7F0B8EC8 90D90000 */ lbu $t9, ($a2)
|
|
.L7F0B8ECC:
|
|
/* 0ED9FC 7F0B8ECC 24630001 */ addiu $v1, $v1, 1
|
|
/* 0EDA00 7F0B8ED0 24420004 */ addiu $v0, $v0, 4
|
|
/* 0EDA04 7F0B8ED4 AC59FFFC */ sw $t9, -4($v0)
|
|
/* 0EDA08 7F0B8ED8 8CE80000 */ lw $t0, ($a3)
|
|
/* 0EDA0C 7F0B8EDC 24C60001 */ addiu $a2, $a2, 1
|
|
/* 0EDA10 7F0B8EE0 0068082A */ slt $at, $v1, $t0
|
|
/* 0EDA14 7F0B8EE4 10200003 */ beqz $at, .L7F0B8EF4
|
|
/* 0EDA18 7F0B8EE8 0065082A */ slt $at, $v1, $a1
|
|
/* 0EDA1C 7F0B8EEC 5420FFF7 */ bnezl $at, .L7F0B8ECC
|
|
/* 0EDA20 7F0B8EF0 90D90000 */ lbu $t9, ($a2)
|
|
.L7F0B8EF4:
|
|
/* 0EDA24 7F0B8EF4 03E00008 */ jr $ra
|
|
/* 0EDA28 7F0B8EF8 00601025 */ move $v0, $v1
|
|
)
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
void sub_GAME_7F0B8EFC(void) {
|
|
|
|
}
|
|
#else
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B8EFC
|
|
/* 0EDA2C 7F0B8EFC 27BDFFF0 */ addiu $sp, $sp, -0x10
|
|
/* 0EDA30 7F0B8F00 3C078008 */ lui $a3, %hi(g_BgPortals)
|
|
/* 0EDA34 7F0B8F04 8CE7FF80 */ lw $a3, %lo(g_BgPortals)($a3)
|
|
/* 0EDA38 7F0B8F08 AFB2000C */ sw $s2, 0xc($sp)
|
|
/* 0EDA3C 7F0B8F0C AFB10008 */ sw $s1, 8($sp)
|
|
/* 0EDA40 7F0B8F10 AFB00004 */ sw $s0, 4($sp)
|
|
/* 0EDA44 7F0B8F14 8CEE0000 */ lw $t6, ($a3)
|
|
/* 0EDA48 7F0B8F18 00808025 */ move $s0, $a0
|
|
/* 0EDA4C 7F0B8F1C 00A08825 */ move $s1, $a1
|
|
/* 0EDA50 7F0B8F20 00C09025 */ move $s2, $a2
|
|
/* 0EDA54 7F0B8F24 11C00024 */ beqz $t6, .L7F0B8FB8
|
|
/* 0EDA58 7F0B8F28 00001825 */ move $v1, $zero
|
|
/* 0EDA5C 7F0B8F2C 00002025 */ move $a0, $zero
|
|
/* 0EDA60 7F0B8F30 00E02825 */ move $a1, $a3
|
|
/* 0EDA64 7F0B8F34 90A20004 */ lbu $v0, 4($a1)
|
|
.L7F0B8F38:
|
|
/* 0EDA68 7F0B8F38 90A60005 */ lbu $a2, 5($a1)
|
|
/* 0EDA6C 7F0B8F3C 14500003 */ bne $v0, $s0, .L7F0B8F4C
|
|
/* 0EDA70 7F0B8F40 00000000 */ nop
|
|
/* 0EDA74 7F0B8F44 00C01025 */ move $v0, $a2
|
|
/* 0EDA78 7F0B8F48 02003025 */ move $a2, $s0
|
|
.L7F0B8F4C:
|
|
/* 0EDA7C 7F0B8F4C 54D00016 */ bnel $a2, $s0, .L7F0B8FA8
|
|
/* 0EDA80 7F0B8F50 8CA90008 */ lw $t1, 8($a1)
|
|
/* 0EDA84 7F0B8F54 18600008 */ blez $v1, .L7F0B8F78
|
|
/* 0EDA88 7F0B8F58 00003025 */ move $a2, $zero
|
|
/* 0EDA8C 7F0B8F5C 02203825 */ move $a3, $s1
|
|
.L7F0B8F60:
|
|
/* 0EDA90 7F0B8F60 8CEF0000 */ lw $t7, ($a3)
|
|
/* 0EDA94 7F0B8F64 24C60001 */ addiu $a2, $a2, 1
|
|
/* 0EDA98 7F0B8F68 504F000F */ beql $v0, $t7, .L7F0B8FA8
|
|
/* 0EDA9C 7F0B8F6C 8CA90008 */ lw $t1, 8($a1)
|
|
/* 0EDAA0 7F0B8F70 14C3FFFB */ bne $a2, $v1, .L7F0B8F60
|
|
/* 0EDAA4 7F0B8F74 24E70004 */ addiu $a3, $a3, 4
|
|
.L7F0B8F78:
|
|
/* 0EDAA8 7F0B8F78 0003C080 */ sll $t8, $v1, 2
|
|
/* 0EDAAC 7F0B8F7C 24630001 */ addiu $v1, $v1, 1
|
|
/* 0EDAB0 7F0B8F80 0238C821 */ addu $t9, $s1, $t8
|
|
/* 0EDAB4 7F0B8F84 0072082A */ slt $at, $v1, $s2
|
|
/* 0EDAB8 7F0B8F88 14200003 */ bnez $at, .L7F0B8F98
|
|
/* 0EDABC 7F0B8F8C AF220000 */ sw $v0, ($t9)
|
|
/* 0EDAC0 7F0B8F90 1000000A */ b .L7F0B8FBC
|
|
/* 0EDAC4 7F0B8F94 00601025 */ move $v0, $v1
|
|
.L7F0B8F98:
|
|
/* 0EDAC8 7F0B8F98 3C088008 */ lui $t0, %hi(g_BgPortals)
|
|
/* 0EDACC 7F0B8F9C 8D08FF80 */ lw $t0, %lo(g_BgPortals)($t0)
|
|
/* 0EDAD0 7F0B8FA0 01042821 */ addu $a1, $t0, $a0
|
|
/* 0EDAD4 7F0B8FA4 8CA90008 */ lw $t1, 8($a1)
|
|
.L7F0B8FA8:
|
|
/* 0EDAD8 7F0B8FA8 24840008 */ addiu $a0, $a0, 8
|
|
/* 0EDADC 7F0B8FAC 24A50008 */ addiu $a1, $a1, 8
|
|
/* 0EDAE0 7F0B8FB0 5520FFE1 */ bnezl $t1, .L7F0B8F38
|
|
/* 0EDAE4 7F0B8FB4 90A20004 */ lbu $v0, 4($a1)
|
|
.L7F0B8FB8:
|
|
/* 0EDAE8 7F0B8FB8 00601025 */ move $v0, $v1
|
|
.L7F0B8FBC:
|
|
/* 0EDAEC 7F0B8FBC 8FB00004 */ lw $s0, 4($sp)
|
|
/* 0EDAF0 7F0B8FC0 8FB10008 */ lw $s1, 8($sp)
|
|
/* 0EDAF4 7F0B8FC4 8FB2000C */ lw $s2, 0xc($sp)
|
|
/* 0EDAF8 7F0B8FC8 03E00008 */ jr $ra
|
|
/* 0EDAFC 7F0B8FCC 27BD0010 */ addiu $sp, $sp, 0x10
|
|
)
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
void sub_GAME_7F0B8FD0(s32 arg0, s32 arg1) {
|
|
s32 temp_v0;
|
|
s32 temp_v1;
|
|
void *phi_a0;
|
|
|
|
// Node 0
|
|
phi_a0 = g_BgPortals;
|
|
if (*g_BgPortals != 0)
|
|
{
|
|
loop_1:
|
|
// Node 1
|
|
temp_v0 = phi_a0->unk4;
|
|
temp_v1 = phi_a0->unk5;
|
|
if (temp_v0 == arg0)
|
|
{
|
|
// Node 2
|
|
if (temp_v1 == arg1)
|
|
{
|
|
// Node 3
|
|
return 1;
|
|
}
|
|
}
|
|
// Node 4
|
|
if (temp_v1 == arg0)
|
|
{
|
|
// Node 5
|
|
if (temp_v0 == arg1)
|
|
{
|
|
// Node 6
|
|
return 1;
|
|
}
|
|
}
|
|
// Node 7
|
|
phi_a0 = (phi_a0 + 8);
|
|
if (phi_a0->unk8 != 0)
|
|
{
|
|
goto loop_1;
|
|
}
|
|
}
|
|
// Node 8
|
|
return 0;
|
|
}
|
|
#else
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B8FD0
|
|
/* 0EDB00 7F0B8FD0 3C038008 */ lui $v1, %hi(g_BgPortals)
|
|
/* 0EDB04 7F0B8FD4 8C63FF80 */ lw $v1, %lo(g_BgPortals)($v1)
|
|
/* 0EDB08 7F0B8FD8 00803025 */ move $a2, $a0
|
|
/* 0EDB0C 7F0B8FDC 8C6E0000 */ lw $t6, ($v1)
|
|
/* 0EDB10 7F0B8FE0 00602025 */ move $a0, $v1
|
|
/* 0EDB14 7F0B8FE4 51C00014 */ beql $t6, $zero, .L7F0B9038
|
|
/* 0EDB18 7F0B8FE8 00001025 */ move $v0, $zero
|
|
/* 0EDB1C 7F0B8FEC 90820004 */ lbu $v0, 4($a0)
|
|
.L7F0B8FF0:
|
|
/* 0EDB20 7F0B8FF0 90830005 */ lbu $v1, 5($a0)
|
|
/* 0EDB24 7F0B8FF4 14460005 */ bne $v0, $a2, .L7F0B900C
|
|
/* 0EDB28 7F0B8FF8 00000000 */ nop
|
|
/* 0EDB2C 7F0B8FFC 14650003 */ bne $v1, $a1, .L7F0B900C
|
|
/* 0EDB30 7F0B9000 00000000 */ nop
|
|
/* 0EDB34 7F0B9004 03E00008 */ jr $ra
|
|
/* 0EDB38 7F0B9008 24020001 */ li $v0, 1
|
|
|
|
.L7F0B900C:
|
|
/* 0EDB3C 7F0B900C 54660006 */ bnel $v1, $a2, .L7F0B9028
|
|
/* 0EDB40 7F0B9010 8C8F0008 */ lw $t7, 8($a0)
|
|
/* 0EDB44 7F0B9014 54450004 */ bnel $v0, $a1, .L7F0B9028
|
|
/* 0EDB48 7F0B9018 8C8F0008 */ lw $t7, 8($a0)
|
|
/* 0EDB4C 7F0B901C 03E00008 */ jr $ra
|
|
/* 0EDB50 7F0B9020 24020001 */ li $v0, 1
|
|
|
|
/* 0EDB54 7F0B9024 8C8F0008 */ lw $t7, 8($a0)
|
|
.L7F0B9028:
|
|
/* 0EDB58 7F0B9028 24840008 */ addiu $a0, $a0, 8
|
|
/* 0EDB5C 7F0B902C 55E0FFF0 */ bnezl $t7, .L7F0B8FF0
|
|
/* 0EDB60 7F0B9030 90820004 */ lbu $v0, 4($a0)
|
|
/* 0EDB64 7F0B9034 00001025 */ move $v0, $zero
|
|
.L7F0B9038:
|
|
/* 0EDB68 7F0B9038 03E00008 */ jr $ra
|
|
/* 0EDB6C 7F0B903C 00000000 */ nop
|
|
)
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Unreferenced.
|
|
*
|
|
* Adjusts value in bgViewRelated and returns the new value.
|
|
*
|
|
* @param index: index into bgViewRelated.
|
|
* @param times: multiples value by this amount first.
|
|
* @param add: then adds this.
|
|
*
|
|
* Address 0x7F0B9040.
|
|
*/
|
|
f32 bgTimesAddViewRelatedMaybe(s32 index, f32 times, f32 add)
|
|
{
|
|
bgViewRelated[index] = (s32) (((f32) bgViewRelated[index] * times) + add);
|
|
return (f32) bgViewRelated[index];
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Address 0x7F0B908C.
|
|
*/
|
|
void bgUpdateCurrentPlayerScreenMinMax(void) {
|
|
f32 fx;
|
|
f32 fwidth;
|
|
f32 fy;
|
|
f32 fheight;
|
|
|
|
fx = (f32) bgViewRelated[0];
|
|
fy = (f32) bgViewRelated[1];
|
|
fwidth = (f32) viGetX() + (f32) bgViewRelated[2];
|
|
fheight = (f32) viGetY() + (f32) bgViewRelated[3];
|
|
|
|
g_CurrentPlayer->screenxminf = (f32) viGetViewLeft();
|
|
|
|
if (g_CurrentPlayer->screenxminf < fx)
|
|
{
|
|
g_CurrentPlayer->screenxminf = fx;
|
|
}
|
|
|
|
if (fwidth < g_CurrentPlayer->screenxminf)
|
|
{
|
|
g_CurrentPlayer->screenxminf = fwidth;
|
|
}
|
|
|
|
g_CurrentPlayer->screenyminf = (f32) viGetViewTop();
|
|
|
|
if (g_CurrentPlayer->screenyminf < fy)
|
|
{
|
|
g_CurrentPlayer->screenyminf = fy;
|
|
}
|
|
|
|
if (fheight < g_CurrentPlayer->screenyminf)
|
|
{
|
|
g_CurrentPlayer->screenyminf = fheight;
|
|
}
|
|
|
|
g_CurrentPlayer->screenxmaxf = (f32) (viGetViewLeft() + viGetViewWidth());
|
|
|
|
if ( g_CurrentPlayer->screenxmaxf < fx)
|
|
{
|
|
g_CurrentPlayer->screenxmaxf = fx;
|
|
}
|
|
|
|
if (fwidth < g_CurrentPlayer->screenxmaxf)
|
|
{
|
|
g_CurrentPlayer->screenxmaxf = fwidth;
|
|
}
|
|
|
|
g_CurrentPlayer->screenymaxf = (f32) (viGetViewTop() + viGetViewHeight());
|
|
|
|
if (g_CurrentPlayer->screenymaxf < fy)
|
|
{
|
|
g_CurrentPlayer->screenymaxf = fy;
|
|
}
|
|
|
|
if (fheight < g_CurrentPlayer->screenymaxf)
|
|
{
|
|
g_CurrentPlayer->screenymaxf = fheight;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
s32 sub_GAME_7F0B92B4(s32 arg0, void *arg1) {
|
|
void *temp_a2;
|
|
s32 temp_v0;
|
|
f32 temp_f18;
|
|
void *temp_a2_2;
|
|
s32 temp_v0_2;
|
|
void *temp_v1;
|
|
f32 temp_f18_2;
|
|
f32 phi_f18;
|
|
void *phi_v1;
|
|
s32 phi_v0;
|
|
f32 phi_f18_2;
|
|
void *phi_v1_2;
|
|
void *phi_a2;
|
|
|
|
// Node 0
|
|
temp_a2 = ((arg0 * 0x50) + &array_room_info);
|
|
temp_v0 = (0 + 1);
|
|
temp_f18 = ((temp_a2->unk44 + temp_a2->unk38) * 0.5f);
|
|
phi_f18 = temp_f18;
|
|
phi_v1 = arg1;
|
|
phi_v0 = temp_v0;
|
|
phi_f18_2 = temp_f18;
|
|
phi_v1_2 = arg1;
|
|
phi_a2 = temp_a2;
|
|
if (temp_v0 != 3)
|
|
{
|
|
loop_1:
|
|
// Node 1
|
|
*phi_v1 = (f32) phi_f18;
|
|
temp_a2_2 = (phi_a2 + 4);
|
|
temp_v0_2 = (phi_v0 + 1);
|
|
temp_v1 = (phi_v1 + 4);
|
|
temp_f18_2 = ((phi_a2->unk48 + temp_a2_2->unk38) * 0.5f);
|
|
phi_f18 = temp_f18_2;
|
|
phi_v1 = temp_v1;
|
|
phi_v0 = temp_v0_2;
|
|
phi_f18_2 = temp_f18_2;
|
|
phi_v1_2 = temp_v1;
|
|
phi_a2 = temp_a2_2;
|
|
if (temp_v0_2 != 3)
|
|
{
|
|
goto loop_1;
|
|
}
|
|
}
|
|
// Node 2
|
|
(phi_v1_2 + 4)->unk-4 = (f32) phi_f18_2;
|
|
return temp_v0;
|
|
}
|
|
#else
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B92B4
|
|
/* 0EDDE4 7F0B92B4 00047080 */ sll $t6, $a0, 2
|
|
/* 0EDDE8 7F0B92B8 01C47021 */ addu $t6, $t6, $a0
|
|
/* 0EDDEC 7F0B92BC 3C0F8004 */ lui $t7, %hi(array_room_info)
|
|
/* 0EDDF0 7F0B92C0 3C013F00 */ li $at, 0x3F000000 # 0.500000
|
|
/* 0EDDF4 7F0B92C4 25EF1414 */ addiu $t7, %lo(array_room_info) # addiu $t7, $t7, 0x1414
|
|
/* 0EDDF8 7F0B92C8 000E7100 */ sll $t6, $t6, 4
|
|
/* 0EDDFC 7F0B92CC 44810000 */ mtc1 $at, $f0
|
|
/* 0EDE00 7F0B92D0 01CF3021 */ addu $a2, $t6, $t7
|
|
/* 0EDE04 7F0B92D4 24040003 */ li $a0, 3
|
|
/* 0EDE08 7F0B92D8 00001025 */ move $v0, $zero
|
|
/* 0EDE0C 7F0B92DC 00A01825 */ move $v1, $a1
|
|
/* 0EDE10 7F0B92E0 C4D00044 */ lwc1 $f16, 0x44($a2)
|
|
/* 0EDE14 7F0B92E4 C4CE0038 */ lwc1 $f14, 0x38($a2)
|
|
/* 0EDE18 7F0B92E8 24420001 */ addiu $v0, $v0, 1
|
|
/* 0EDE1C 7F0B92EC 460E8380 */ add.s $f14, $f16, $f14
|
|
/* 0EDE20 7F0B92F0 46007482 */ mul.s $f18, $f14, $f0
|
|
/* 0EDE24 7F0B92F4 5044000C */ beql $v0, $a0, .L7F0B9328
|
|
/* 0EDE28 7F0B92F8 24C60004 */ addiu $a2, $a2, 4
|
|
/* 0EDE2C 7F0B92FC E4720000 */ swc1 $f18, ($v1)
|
|
.L7F0B9300:
|
|
/* 0EDE30 7F0B9300 C4D00048 */ lwc1 $f16, 0x48($a2)
|
|
/* 0EDE34 7F0B9304 24C60004 */ addiu $a2, $a2, 4
|
|
/* 0EDE38 7F0B9308 C4CE0038 */ lwc1 $f14, 0x38($a2)
|
|
/* 0EDE3C 7F0B930C 24420001 */ addiu $v0, $v0, 1
|
|
/* 0EDE40 7F0B9310 24630004 */ addiu $v1, $v1, 4
|
|
/* 0EDE44 7F0B9314 460E8380 */ add.s $f14, $f16, $f14
|
|
/* 0EDE48 7F0B9318 46007482 */ mul.s $f18, $f14, $f0
|
|
/* 0EDE4C 7F0B931C 5444FFF8 */ bnel $v0, $a0, .L7F0B9300
|
|
/* 0EDE50 7F0B9320 E4720000 */ swc1 $f18, ($v1)
|
|
/* 0EDE54 7F0B9324 24C60004 */ addiu $a2, $a2, 4
|
|
.L7F0B9328:
|
|
/* 0EDE58 7F0B9328 24630004 */ addiu $v1, $v1, 4
|
|
/* 0EDE5C 7F0B932C E472FFFC */ swc1 $f18, -4($v1)
|
|
/* 0EDE60 7F0B9330 03E00008 */ jr $ra
|
|
/* 0EDE64 7F0B9334 00000000 */ nop
|
|
)
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
void sub_GAME_7F0B9338(void) {
|
|
|
|
}
|
|
#else
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B9338
|
|
/* 0EDE68 7F0B9338 3C088008 */ lui $t0, %hi(ptr_bgdata_room_fileposition_list)
|
|
/* 0EDE6C 7F0B933C 2508FF8C */ addiu $t0, %lo(ptr_bgdata_room_fileposition_list) # addiu $t0, $t0, -0x74
|
|
/* 0EDE70 7F0B9340 8D0E0000 */ lw $t6, ($t0)
|
|
/* 0EDE74 7F0B9344 00041080 */ sll $v0, $a0, 2
|
|
/* 0EDE78 7F0B9348 27BDFFB0 */ addiu $sp, $sp, -0x50
|
|
/* 0EDE7C 7F0B934C 00441023 */ subu $v0, $v0, $a0
|
|
/* 0EDE80 7F0B9350 000210C0 */ sll $v0, $v0, 3
|
|
/* 0EDE84 7F0B9354 AFBF001C */ sw $ra, 0x1c($sp)
|
|
/* 0EDE88 7F0B9358 AFB00018 */ sw $s0, 0x18($sp)
|
|
/* 0EDE8C 7F0B935C 01C24821 */ addu $t1, $t6, $v0
|
|
/* 0EDE90 7F0B9360 8D2F0000 */ lw $t7, ($t1)
|
|
/* 0EDE94 7F0B9364 3C188004 */ lui $t8, %hi(array_room_info)
|
|
/* 0EDE98 7F0B9368 00808025 */ move $s0, $a0
|
|
/* 0EDE9C 7F0B936C 15E00035 */ bnez $t7, .L7F0B9444
|
|
/* 0EDEA0 7F0B9370 27181414 */ addiu $t8, %lo(array_room_info) # addiu $t8, $t8, 0x1414
|
|
/* 0EDEA4 7F0B9374 3C188008 */ lui $t8, %hi(dword_CODE_bss_8007B9DC)
|
|
/* 0EDEA8 7F0B9378 8F18B9DC */ lw $t8, %lo(dword_CODE_bss_8007B9DC)($t8)
|
|
/* 0EDEAC 7F0B937C 0004C880 */ sll $t9, $a0, 2
|
|
/* 0EDEB0 7F0B9380 3C0B8008 */ lui $t3, %hi(dword_CODE_bss_8007B128)
|
|
/* 0EDEB4 7F0B9384 0098082A */ slt $at, $a0, $t8
|
|
/* 0EDEB8 7F0B9388 1020008E */ beqz $at, .L7F0B95C4
|
|
/* 0EDEBC 7F0B938C 01795821 */ addu $t3, $t3, $t9
|
|
/* 0EDEC0 7F0B9390 8D6BB128 */ lw $t3, %lo(dword_CODE_bss_8007B128)($t3)
|
|
/* 0EDEC4 7F0B9394 00106080 */ sll $t4, $s0, 2
|
|
/* 0EDEC8 7F0B9398 01906021 */ addu $t4, $t4, $s0
|
|
/* 0EDECC 7F0B939C 11600089 */ beqz $t3, .L7F0B95C4
|
|
/* 0EDED0 7F0B93A0 00002025 */ move $a0, $zero
|
|
/* 0EDED4 7F0B93A4 00107080 */ sll $t6, $s0, 2
|
|
/* 0EDED8 7F0B93A8 01D07023 */ subu $t6, $t6, $s0
|
|
/* 0EDEDC 7F0B93AC 3C0D8004 */ lui $t5, %hi(array_room_info)
|
|
/* 0EDEE0 7F0B93B0 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_8007B358)
|
|
/* 0EDEE4 7F0B93B4 25EFB358 */ addiu $t7, %lo(dword_CODE_bss_8007B358) # addiu $t7, $t7, -0x4ca8
|
|
/* 0EDEE8 7F0B93B8 25AD1414 */ addiu $t5, %lo(array_room_info) # addiu $t5, $t5, 0x1414
|
|
/* 0EDEEC 7F0B93BC 000E7080 */ sll $t6, $t6, 2
|
|
/* 0EDEF0 7F0B93C0 000C6100 */ sll $t4, $t4, 4
|
|
/* 0EDEF4 7F0B93C4 018D2821 */ addu $a1, $t4, $t5
|
|
/* 0EDEF8 7F0B93C8 01CF3021 */ addu $a2, $t6, $t7
|
|
/* 0EDEFC 7F0B93CC 2407000C */ li $a3, 12
|
|
.L7F0B93D0:
|
|
/* 0EDF00 7F0B93D0 84C20000 */ lh $v0, ($a2)
|
|
/* 0EDF04 7F0B93D4 84C30006 */ lh $v1, 6($a2)
|
|
/* 0EDF08 7F0B93D8 8D0B0000 */ lw $t3, ($t0)
|
|
/* 0EDF0C 7F0B93DC 44822000 */ mtc1 $v0, $f4
|
|
/* 0EDF10 7F0B93E0 44834000 */ mtc1 $v1, $f8
|
|
/* 0EDF14 7F0B93E4 0062C021 */ addu $t8, $v1, $v0
|
|
/* 0EDF18 7F0B93E8 468021A0 */ cvt.s.w $f6, $f4
|
|
/* 0EDF1C 7F0B93EC 00106080 */ sll $t4, $s0, 2
|
|
/* 0EDF20 7F0B93F0 01906023 */ subu $t4, $t4, $s0
|
|
/* 0EDF24 7F0B93F4 000C60C0 */ sll $t4, $t4, 3
|
|
/* 0EDF28 7F0B93F8 016C6821 */ addu $t5, $t3, $t4
|
|
/* 0EDF2C 7F0B93FC 468042A0 */ cvt.s.w $f10, $f8
|
|
/* 0EDF30 7F0B9400 01A47021 */ addu $t6, $t5, $a0
|
|
/* 0EDF34 7F0B9404 24840004 */ addiu $a0, $a0, 4
|
|
/* 0EDF38 7F0B9408 E4A60038 */ swc1 $f6, 0x38($a1)
|
|
/* 0EDF3C 7F0B940C 24A50004 */ addiu $a1, $a1, 4
|
|
/* 0EDF40 7F0B9410 24C60002 */ addiu $a2, $a2, 2
|
|
/* 0EDF44 7F0B9414 E4AA0040 */ swc1 $f10, 0x40($a1)
|
|
/* 0EDF48 7F0B9418 07010003 */ bgez $t8, .L7F0B9428
|
|
/* 0EDF4C 7F0B941C 0018C843 */ sra $t9, $t8, 1
|
|
/* 0EDF50 7F0B9420 27010001 */ addiu $at, $t8, 1
|
|
/* 0EDF54 7F0B9424 0001C843 */ sra $t9, $at, 1
|
|
.L7F0B9428:
|
|
/* 0EDF58 7F0B9428 44998000 */ mtc1 $t9, $f16
|
|
/* 0EDF5C 7F0B942C 00000000 */ nop
|
|
/* 0EDF60 7F0B9430 468084A0 */ cvt.s.w $f18, $f16
|
|
/* 0EDF64 7F0B9434 1487FFE6 */ bne $a0, $a3, .L7F0B93D0
|
|
/* 0EDF68 7F0B9438 E5D2000C */ swc1 $f18, 0xc($t6)
|
|
/* 0EDF6C 7F0B943C 10000062 */ b .L7F0B95C8
|
|
/* 0EDF70 7F0B9440 8FBF001C */ lw $ra, 0x1c($sp)
|
|
.L7F0B9444:
|
|
/* 0EDF74 7F0B9444 00107880 */ sll $t7, $s0, 2
|
|
/* 0EDF78 7F0B9448 01F07821 */ addu $t7, $t7, $s0
|
|
/* 0EDF7C 7F0B944C 000F7900 */ sll $t7, $t7, 4
|
|
/* 0EDF80 7F0B9450 01F84021 */ addu $t0, $t7, $t8
|
|
/* 0EDF84 7F0B9454 910A0002 */ lbu $t2, 2($t0)
|
|
/* 0EDF88 7F0B9458 02002025 */ move $a0, $s0
|
|
/* 0EDF8C 7F0B945C 5540000C */ bnezl $t2, .L7F0B9490
|
|
/* 0EDF90 7F0B9460 8D060004 */ lw $a2, 4($t0)
|
|
/* 0EDF94 7F0B9464 AFA20030 */ sw $v0, 0x30($sp)
|
|
/* 0EDF98 7F0B9468 AFA80028 */ sw $t0, 0x28($sp)
|
|
/* 0EDF9C 7F0B946C 0FC2D8DA */ jal sub_GAME_7F0B6368
|
|
/* 0EDFA0 7F0B9470 A3AA0037 */ sb $t2, 0x37($sp)
|
|
/* 0EDFA4 7F0B9474 3C198008 */ lui $t9, %hi(ptr_bgdata_room_fileposition_list)
|
|
/* 0EDFA8 7F0B9478 8F39FF8C */ lw $t9, %lo(ptr_bgdata_room_fileposition_list)($t9)
|
|
/* 0EDFAC 7F0B947C 8FA20030 */ lw $v0, 0x30($sp)
|
|
/* 0EDFB0 7F0B9480 8FA80028 */ lw $t0, 0x28($sp)
|
|
/* 0EDFB4 7F0B9484 93AA0037 */ lbu $t2, 0x37($sp)
|
|
/* 0EDFB8 7F0B9488 03224821 */ addu $t1, $t9, $v0
|
|
/* 0EDFBC 7F0B948C 8D060004 */ lw $a2, 4($t0)
|
|
.L7F0B9490:
|
|
/* 0EDFC0 7F0B9490 8D19001C */ lw $t9, 0x1c($t0)
|
|
/* 0EDFC4 7F0B9494 240B7FFF */ li $t3, 32767
|
|
/* 0EDFC8 7F0B9498 240C7FFF */ li $t4, 32767
|
|
/* 0EDFCC 7F0B949C 03263821 */ addu $a3, $t9, $a2
|
|
/* 0EDFD0 7F0B94A0 240D7FFF */ li $t5, 32767
|
|
/* 0EDFD4 7F0B94A4 240E8001 */ li $t6, -32767
|
|
/* 0EDFD8 7F0B94A8 240F8001 */ li $t7, -32767
|
|
/* 0EDFDC 7F0B94AC 24188001 */ li $t8, -32767
|
|
/* 0EDFE0 7F0B94B0 00C7082B */ sltu $at, $a2, $a3
|
|
/* 0EDFE4 7F0B94B4 A7AB0038 */ sh $t3, 0x38($sp)
|
|
/* 0EDFE8 7F0B94B8 A7AC003A */ sh $t4, 0x3a($sp)
|
|
/* 0EDFEC 7F0B94BC A7AD003C */ sh $t5, 0x3c($sp)
|
|
/* 0EDFF0 7F0B94C0 A7AE003E */ sh $t6, 0x3e($sp)
|
|
/* 0EDFF4 7F0B94C4 A7AF0040 */ sh $t7, 0x40($sp)
|
|
/* 0EDFF8 7F0B94C8 10200017 */ beqz $at, .L7F0B9528
|
|
/* 0EDFFC 7F0B94CC A7B80042 */ sh $t8, 0x42($sp)
|
|
/* 0EE000 7F0B94D0 27A5003E */ addiu $a1, $sp, 0x3e
|
|
/* 0EE004 7F0B94D4 00C02025 */ move $a0, $a2
|
|
.L7F0B94D8:
|
|
/* 0EE008 7F0B94D8 27A30038 */ addiu $v1, $sp, 0x38
|
|
.L7F0B94DC:
|
|
/* 0EE00C 7F0B94DC 84820000 */ lh $v0, ($a0)
|
|
/* 0EE010 7F0B94E0 846B0000 */ lh $t3, ($v1)
|
|
/* 0EE014 7F0B94E4 004B082A */ slt $at, $v0, $t3
|
|
/* 0EE018 7F0B94E8 50200004 */ beql $at, $zero, .L7F0B94FC
|
|
/* 0EE01C 7F0B94EC 846C0006 */ lh $t4, 6($v1)
|
|
/* 0EE020 7F0B94F0 A4620000 */ sh $v0, ($v1)
|
|
/* 0EE024 7F0B94F4 84820000 */ lh $v0, ($a0)
|
|
/* 0EE028 7F0B94F8 846C0006 */ lh $t4, 6($v1)
|
|
.L7F0B94FC:
|
|
/* 0EE02C 7F0B94FC 0182082A */ slt $at, $t4, $v0
|
|
/* 0EE030 7F0B9500 50200003 */ beql $at, $zero, .L7F0B9510
|
|
/* 0EE034 7F0B9504 24630002 */ addiu $v1, $v1, 2
|
|
/* 0EE038 7F0B9508 A4620006 */ sh $v0, 6($v1)
|
|
/* 0EE03C 7F0B950C 24630002 */ addiu $v1, $v1, 2
|
|
.L7F0B9510:
|
|
/* 0EE040 7F0B9510 1465FFF2 */ bne $v1, $a1, .L7F0B94DC
|
|
/* 0EE044 7F0B9514 24840002 */ addiu $a0, $a0, 2
|
|
/* 0EE048 7F0B9518 24C60010 */ addiu $a2, $a2, 0x10
|
|
/* 0EE04C 7F0B951C 00C7082B */ sltu $at, $a2, $a3
|
|
/* 0EE050 7F0B9520 5420FFED */ bnezl $at, .L7F0B94D8
|
|
/* 0EE054 7F0B9524 00C02025 */ move $a0, $a2
|
|
.L7F0B9528:
|
|
/* 0EE058 7F0B9528 87AD0038 */ lh $t5, 0x38($sp)
|
|
/* 0EE05C 7F0B952C 87AE003A */ lh $t6, 0x3a($sp)
|
|
/* 0EE060 7F0B9530 C524000C */ lwc1 $f4, 0xc($t1)
|
|
/* 0EE064 7F0B9534 448D3000 */ mtc1 $t5, $f6
|
|
/* 0EE068 7F0B9538 448E9000 */ mtc1 $t6, $f18
|
|
/* 0EE06C 7F0B953C 87AF003C */ lh $t7, 0x3c($sp)
|
|
/* 0EE070 7F0B9540 46803220 */ cvt.s.w $f8, $f6
|
|
/* 0EE074 7F0B9544 87B8003E */ lh $t8, 0x3e($sp)
|
|
/* 0EE078 7F0B9548 87B90040 */ lh $t9, 0x40($sp)
|
|
/* 0EE07C 7F0B954C 87AB0042 */ lh $t3, 0x42($sp)
|
|
/* 0EE080 7F0B9550 468091A0 */ cvt.s.w $f6, $f18
|
|
/* 0EE084 7F0B9554 46082280 */ add.s $f10, $f4, $f8
|
|
/* 0EE088 7F0B9558 E50A0038 */ swc1 $f10, 0x38($t0)
|
|
/* 0EE08C 7F0B955C C5300010 */ lwc1 $f16, 0x10($t1)
|
|
/* 0EE090 7F0B9560 448F5000 */ mtc1 $t7, $f10
|
|
/* 0EE094 7F0B9564 46068100 */ add.s $f4, $f16, $f6
|
|
/* 0EE098 7F0B9568 468054A0 */ cvt.s.w $f18, $f10
|
|
/* 0EE09C 7F0B956C E504003C */ swc1 $f4, 0x3c($t0)
|
|
/* 0EE0A0 7F0B9570 C5280014 */ lwc1 $f8, 0x14($t1)
|
|
/* 0EE0A4 7F0B9574 44982000 */ mtc1 $t8, $f4
|
|
/* 0EE0A8 7F0B9578 46124400 */ add.s $f16, $f8, $f18
|
|
/* 0EE0AC 7F0B957C 468022A0 */ cvt.s.w $f10, $f4
|
|
/* 0EE0B0 7F0B9580 E5100040 */ swc1 $f16, 0x40($t0)
|
|
/* 0EE0B4 7F0B9584 C526000C */ lwc1 $f6, 0xc($t1)
|
|
/* 0EE0B8 7F0B9588 44998000 */ mtc1 $t9, $f16
|
|
/* 0EE0BC 7F0B958C 460A3200 */ add.s $f8, $f6, $f10
|
|
/* 0EE0C0 7F0B9590 46808120 */ cvt.s.w $f4, $f16
|
|
/* 0EE0C4 7F0B9594 E5080044 */ swc1 $f8, 0x44($t0)
|
|
/* 0EE0C8 7F0B9598 C5320010 */ lwc1 $f18, 0x10($t1)
|
|
/* 0EE0CC 7F0B959C 448B4000 */ mtc1 $t3, $f8
|
|
/* 0EE0D0 7F0B95A0 46049180 */ add.s $f6, $f18, $f4
|
|
/* 0EE0D4 7F0B95A4 46804420 */ cvt.s.w $f16, $f8
|
|
/* 0EE0D8 7F0B95A8 E5060048 */ swc1 $f6, 0x48($t0)
|
|
/* 0EE0DC 7F0B95AC C52A0014 */ lwc1 $f10, 0x14($t1)
|
|
/* 0EE0E0 7F0B95B0 46105480 */ add.s $f18, $f10, $f16
|
|
/* 0EE0E4 7F0B95B4 15400003 */ bnez $t2, .L7F0B95C4
|
|
/* 0EE0E8 7F0B95B8 E512004C */ swc1 $f18, 0x4c($t0)
|
|
/* 0EE0EC 7F0B95BC 0FC2D971 */ jal delete_room_data
|
|
/* 0EE0F0 7F0B95C0 02002025 */ move $a0, $s0
|
|
.L7F0B95C4:
|
|
/* 0EE0F4 7F0B95C4 8FBF001C */ lw $ra, 0x1c($sp)
|
|
.L7F0B95C8:
|
|
/* 0EE0F8 7F0B95C8 8FB00018 */ lw $s0, 0x18($sp)
|
|
/* 0EE0FC 7F0B95CC 27BD0050 */ addiu $sp, $sp, 0x50
|
|
/* 0EE100 7F0B95D0 03E00008 */ jr $ra
|
|
/* 0EE104 7F0B95D4 00000000 */ nop
|
|
)
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
void sub_GAME_7F0B95D8(s32 arg0) {
|
|
void *temp_a2;
|
|
void *temp_t8;
|
|
s32 temp_t0;
|
|
void *temp_a2_2;
|
|
s32 temp_a1;
|
|
void *phi_v1;
|
|
void *phi_a2;
|
|
s32 phi_a1;
|
|
s32 phi_t0;
|
|
void *phi_t2;
|
|
|
|
// Node 0
|
|
phi_v1 = g_BgPortals;
|
|
if (*g_BgPortals != 0)
|
|
{
|
|
loop_1:
|
|
// Node 1
|
|
if ((arg0 == phi_v1->unk4) || (arg0 == phi_v1->unk5))
|
|
{
|
|
// Node 3
|
|
temp_a2 = *phi_v1;
|
|
if (*temp_a2 > 0)
|
|
{
|
|
// Node 4
|
|
phi_a1 = 0;
|
|
phi_a2 = temp_a2;
|
|
loop_5:
|
|
// Node 5
|
|
phi_t0 = 0;
|
|
phi_t2 = ((arg0 * 0x50) + &array_room_info);
|
|
loop_6:
|
|
// Node 6
|
|
temp_t8 = ((phi_a2 + (((phi_a1 * 4) - phi_a1) * 4)) + phi_t0);
|
|
temp_t0 = (phi_t0 + 4);
|
|
if (temp_t8->unk4 < phi_t2->unk38)
|
|
{
|
|
// Node 7
|
|
phi_t2->unk38 = (f32) temp_t8->unk4;
|
|
}
|
|
// Node 8
|
|
if (phi_t2->unk44 < temp_t8->unk4)
|
|
{
|
|
// Node 9
|
|
phi_t2->unk44 = (f32) temp_t8->unk4;
|
|
}
|
|
// Node 10
|
|
temp_a2_2 = *phi_v1;
|
|
phi_a2 = temp_a2_2;
|
|
phi_t0 = temp_t0;
|
|
phi_t2 = (phi_t2 + 4);
|
|
if (temp_t0 != 0xc)
|
|
{
|
|
goto loop_6;
|
|
}
|
|
// Node 11
|
|
temp_a1 = (phi_a1 + 1);
|
|
phi_a1 = temp_a1;
|
|
phi_a2 = temp_a2_2;
|
|
if (temp_a1 < *temp_a2_2)
|
|
{
|
|
goto loop_5;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
|
|
}
|
|
// Node 12
|
|
phi_v1 = (phi_v1 + 8);
|
|
if (phi_v1->unk8 != 0)
|
|
{
|
|
goto loop_1;
|
|
}
|
|
}
|
|
// Node 13
|
|
return 0;
|
|
}
|
|
#else
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B95D8
|
|
/* 0EE108 7F0B95D8 3C058008 */ lui $a1, %hi(g_BgPortals)
|
|
/* 0EE10C 7F0B95DC 8CA5FF80 */ lw $a1, %lo(g_BgPortals)($a1)
|
|
/* 0EE110 7F0B95E0 00001025 */ move $v0, $zero
|
|
/* 0EE114 7F0B95E4 240B000C */ li $t3, 12
|
|
/* 0EE118 7F0B95E8 8CAE0000 */ lw $t6, ($a1)
|
|
/* 0EE11C 7F0B95EC 00A01825 */ move $v1, $a1
|
|
/* 0EE120 7F0B95F0 11C00034 */ beqz $t6, .L7F0B96C4
|
|
/* 0EE124 7F0B95F4 00000000 */ nop
|
|
/* 0EE128 7F0B95F8 906F0004 */ lbu $t7, 4($v1)
|
|
.L7F0B95FC:
|
|
/* 0EE12C 7F0B95FC 508F0005 */ beql $a0, $t7, .L7F0B9614
|
|
/* 0EE130 7F0B9600 8C660000 */ lw $a2, ($v1)
|
|
/* 0EE134 7F0B9604 90780005 */ lbu $t8, 5($v1)
|
|
/* 0EE138 7F0B9608 5498002B */ bnel $a0, $t8, .L7F0B96B8
|
|
/* 0EE13C 7F0B960C 8C790008 */ lw $t9, 8($v1)
|
|
/* 0EE140 7F0B9610 8C660000 */ lw $a2, ($v1)
|
|
.L7F0B9614:
|
|
/* 0EE144 7F0B9614 00046080 */ sll $t4, $a0, 2
|
|
/* 0EE148 7F0B9618 01846021 */ addu $t4, $t4, $a0
|
|
/* 0EE14C 7F0B961C 90D90000 */ lbu $t9, ($a2)
|
|
/* 0EE150 7F0B9620 000C6100 */ sll $t4, $t4, 4
|
|
/* 0EE154 7F0B9624 00002825 */ move $a1, $zero
|
|
/* 0EE158 7F0B9628 1B200022 */ blez $t9, .L7F0B96B4
|
|
/* 0EE15C 7F0B962C 3C0D8004 */ lui $t5, %hi(array_room_info)
|
|
/* 0EE160 7F0B9630 25AD1414 */ addiu $t5, %lo(array_room_info) # addiu $t5, $t5, 0x1414
|
|
/* 0EE164 7F0B9634 018D4821 */ addu $t1, $t4, $t5
|
|
/* 0EE168 7F0B9638 00004025 */ move $t0, $zero
|
|
.L7F0B963C:
|
|
/* 0EE16C 7F0B963C 01205025 */ move $t2, $t1
|
|
.L7F0B9640:
|
|
/* 0EE170 7F0B9640 00057080 */ sll $t6, $a1, 2
|
|
/* 0EE174 7F0B9644 01C57023 */ subu $t6, $t6, $a1
|
|
/* 0EE178 7F0B9648 000E7080 */ sll $t6, $t6, 2
|
|
/* 0EE17C 7F0B964C 00CE7821 */ addu $t7, $a2, $t6
|
|
/* 0EE180 7F0B9650 01E8C021 */ addu $t8, $t7, $t0
|
|
/* 0EE184 7F0B9654 C7000004 */ lwc1 $f0, 4($t8)
|
|
/* 0EE188 7F0B9658 C5440038 */ lwc1 $f4, 0x38($t2)
|
|
/* 0EE18C 7F0B965C 25080004 */ addiu $t0, $t0, 4
|
|
/* 0EE190 7F0B9660 4604003C */ c.lt.s $f0, $f4
|
|
/* 0EE194 7F0B9664 00000000 */ nop
|
|
/* 0EE198 7F0B9668 45020004 */ bc1fl .L7F0B967C
|
|
/* 0EE19C 7F0B966C C5460044 */ lwc1 $f6, 0x44($t2)
|
|
/* 0EE1A0 7F0B9670 E5400038 */ swc1 $f0, 0x38($t2)
|
|
/* 0EE1A4 7F0B9674 24420001 */ addiu $v0, $v0, 1
|
|
/* 0EE1A8 7F0B9678 C5460044 */ lwc1 $f6, 0x44($t2)
|
|
.L7F0B967C:
|
|
/* 0EE1AC 7F0B967C 4600303C */ c.lt.s $f6, $f0
|
|
/* 0EE1B0 7F0B9680 00000000 */ nop
|
|
/* 0EE1B4 7F0B9684 45020004 */ bc1fl .L7F0B9698
|
|
/* 0EE1B8 7F0B9688 254A0004 */ addiu $t2, $t2, 4
|
|
/* 0EE1BC 7F0B968C E5400044 */ swc1 $f0, 0x44($t2)
|
|
/* 0EE1C0 7F0B9690 24420001 */ addiu $v0, $v0, 1
|
|
/* 0EE1C4 7F0B9694 254A0004 */ addiu $t2, $t2, 4
|
|
.L7F0B9698:
|
|
/* 0EE1C8 7F0B9698 150BFFE9 */ bne $t0, $t3, .L7F0B9640
|
|
/* 0EE1CC 7F0B969C 8C660000 */ lw $a2, ($v1)
|
|
/* 0EE1D0 7F0B96A0 90C70000 */ lbu $a3, ($a2)
|
|
/* 0EE1D4 7F0B96A4 24A50001 */ addiu $a1, $a1, 1
|
|
/* 0EE1D8 7F0B96A8 00A7082A */ slt $at, $a1, $a3
|
|
/* 0EE1DC 7F0B96AC 5420FFE3 */ bnezl $at, .L7F0B963C
|
|
/* 0EE1E0 7F0B96B0 00004025 */ move $t0, $zero
|
|
.L7F0B96B4:
|
|
/* 0EE1E4 7F0B96B4 8C790008 */ lw $t9, 8($v1)
|
|
.L7F0B96B8:
|
|
/* 0EE1E8 7F0B96B8 24630008 */ addiu $v1, $v1, 8
|
|
/* 0EE1EC 7F0B96BC 5720FFCF */ bnezl $t9, .L7F0B95FC
|
|
/* 0EE1F0 7F0B96C0 906F0004 */ lbu $t7, 4($v1)
|
|
.L7F0B96C4:
|
|
/* 0EE1F4 7F0B96C4 03E00008 */ jr $ra
|
|
/* 0EE1F8 7F0B96C8 00000000 */ nop
|
|
)
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
void sub_GAME_7F0B96CC(void) {
|
|
|
|
}
|
|
#else
|
|
GLOBAL_ASM(
|
|
.late_rodata
|
|
glabel D_80058D54
|
|
.word 0x7f7fffff /*3.4028235e38*/
|
|
glabel D_80058D58
|
|
.word 0xff7fffff /*-3.4028235e38*/
|
|
.text
|
|
glabel sub_GAME_7F0B96CC
|
|
/* 0EE1FC 7F0B96CC 27BDFF88 */ addiu $sp, $sp, -0x78
|
|
/* 0EE200 7F0B96D0 3C0E8008 */ lui $t6, %hi(g_BgPortals)
|
|
/* 0EE204 7F0B96D4 8DCEFF80 */ lw $t6, %lo(g_BgPortals)($t6)
|
|
/* 0EE208 7F0B96D8 000440C0 */ sll $t0, $a0, 3
|
|
/* 0EE20C 7F0B96DC AFB00020 */ sw $s0, 0x20($sp)
|
|
/* 0EE210 7F0B96E0 00A08025 */ move $s0, $a1
|
|
/* 0EE214 7F0B96E4 AFBF0024 */ sw $ra, 0x24($sp)
|
|
/* 0EE218 7F0B96E8 F7B40018 */ sdc1 $f20, 0x18($sp)
|
|
/* 0EE21C 7F0B96EC 27A40078 */ addiu $a0, $sp, 0x78
|
|
/* 0EE220 7F0B96F0 27A6006C */ addiu $a2, $sp, 0x6c
|
|
/* 0EE224 7F0B96F4 00001025 */ move $v0, $zero
|
|
/* 0EE228 7F0B96F8 01C83821 */ addu $a3, $t6, $t0
|
|
/* 0EE22C 7F0B96FC 24C60004 */ addiu $a2, $a2, 4
|
|
/* 0EE230 7F0B9700 00C4082B */ sltu $at, $a2, $a0
|
|
/* 0EE234 7F0B9704 1020000B */ beqz $at, .L7F0B9734
|
|
/* 0EE238 7F0B9708 8CEF0000 */ lw $t7, ($a3)
|
|
.L7F0B970C:
|
|
/* 0EE23C 7F0B970C 01E21821 */ addu $v1, $t7, $v0
|
|
/* 0EE240 7F0B9710 C4740004 */ lwc1 $f20, 4($v1)
|
|
/* 0EE244 7F0B9714 C4720010 */ lwc1 $f18, 0x10($v1)
|
|
/* 0EE248 7F0B9718 24C60004 */ addiu $a2, $a2, 4
|
|
/* 0EE24C 7F0B971C 00C4082B */ sltu $at, $a2, $a0
|
|
/* 0EE250 7F0B9720 4612A481 */ sub.s $f18, $f20, $f18
|
|
/* 0EE254 7F0B9724 24420004 */ addiu $v0, $v0, 4
|
|
/* 0EE258 7F0B9728 E4D2FFF8 */ swc1 $f18, -8($a2)
|
|
/* 0EE25C 7F0B972C 1420FFF7 */ bnez $at, .L7F0B970C
|
|
/* 0EE260 7F0B9730 8CEF0000 */ lw $t7, ($a3)
|
|
.L7F0B9734:
|
|
/* 0EE264 7F0B9734 01E21821 */ addu $v1, $t7, $v0
|
|
/* 0EE268 7F0B9738 C4740004 */ lwc1 $f20, 4($v1)
|
|
/* 0EE26C 7F0B973C C4720010 */ lwc1 $f18, 0x10($v1)
|
|
/* 0EE270 7F0B9740 24420004 */ addiu $v0, $v0, 4
|
|
/* 0EE274 7F0B9744 4612A481 */ sub.s $f18, $f20, $f18
|
|
/* 0EE278 7F0B9748 E4D2FFFC */ swc1 $f18, -4($a2)
|
|
/* 0EE27C 7F0B974C 00001025 */ move $v0, $zero
|
|
/* 0EE280 7F0B9750 27A40060 */ addiu $a0, $sp, 0x60
|
|
/* 0EE284 7F0B9754 27A5006C */ addiu $a1, $sp, 0x6c
|
|
/* 0EE288 7F0B9758 24840004 */ addiu $a0, $a0, 4
|
|
/* 0EE28C 7F0B975C 0085082B */ sltu $at, $a0, $a1
|
|
/* 0EE290 7F0B9760 1020000B */ beqz $at, .L7F0B9790
|
|
/* 0EE294 7F0B9764 8CF80000 */ lw $t8, ($a3)
|
|
.L7F0B9768:
|
|
/* 0EE298 7F0B9768 03021821 */ addu $v1, $t8, $v0
|
|
/* 0EE29C 7F0B976C C474001C */ lwc1 $f20, 0x1c($v1)
|
|
/* 0EE2A0 7F0B9770 C4720010 */ lwc1 $f18, 0x10($v1)
|
|
/* 0EE2A4 7F0B9774 24840004 */ addiu $a0, $a0, 4
|
|
/* 0EE2A8 7F0B9778 0085082B */ sltu $at, $a0, $a1
|
|
/* 0EE2AC 7F0B977C 4612A481 */ sub.s $f18, $f20, $f18
|
|
/* 0EE2B0 7F0B9780 24420004 */ addiu $v0, $v0, 4
|
|
/* 0EE2B4 7F0B9784 E492FFF8 */ swc1 $f18, -8($a0)
|
|
/* 0EE2B8 7F0B9788 1420FFF7 */ bnez $at, .L7F0B9768
|
|
/* 0EE2BC 7F0B978C 8CF80000 */ lw $t8, ($a3)
|
|
.L7F0B9790:
|
|
/* 0EE2C0 7F0B9790 03021821 */ addu $v1, $t8, $v0
|
|
/* 0EE2C4 7F0B9794 C474001C */ lwc1 $f20, 0x1c($v1)
|
|
/* 0EE2C8 7F0B9798 C4720010 */ lwc1 $f18, 0x10($v1)
|
|
/* 0EE2CC 7F0B979C 24420004 */ addiu $v0, $v0, 4
|
|
/* 0EE2D0 7F0B97A0 4612A481 */ sub.s $f18, $f20, $f18
|
|
/* 0EE2D4 7F0B97A4 E492FFFC */ swc1 $f18, -4($a0)
|
|
/* 0EE2D8 7F0B97A8 C7A80070 */ lwc1 $f8, 0x70($sp)
|
|
/* 0EE2DC 7F0B97AC C7AA0068 */ lwc1 $f10, 0x68($sp)
|
|
/* 0EE2E0 7F0B97B0 C7A60064 */ lwc1 $f6, 0x64($sp)
|
|
/* 0EE2E4 7F0B97B4 460A4102 */ mul.s $f4, $f8, $f10
|
|
/* 0EE2E8 7F0B97B8 C7A80074 */ lwc1 $f8, 0x74($sp)
|
|
/* 0EE2EC 7F0B97BC 46083282 */ mul.s $f10, $f6, $f8
|
|
/* 0EE2F0 7F0B97C0 460A2181 */ sub.s $f6, $f4, $f10
|
|
/* 0EE2F4 7F0B97C4 E6060000 */ swc1 $f6, ($s0)
|
|
/* 0EE2F8 7F0B97C8 C7A40060 */ lwc1 $f4, 0x60($sp)
|
|
/* 0EE2FC 7F0B97CC C7A80074 */ lwc1 $f8, 0x74($sp)
|
|
/* 0EE300 7F0B97D0 C7A60068 */ lwc1 $f6, 0x68($sp)
|
|
/* 0EE304 7F0B97D4 C6100000 */ lwc1 $f16, ($s0)
|
|
/* 0EE308 7F0B97D8 46044282 */ mul.s $f10, $f8, $f4
|
|
/* 0EE30C 7F0B97DC C7A8006C */ lwc1 $f8, 0x6c($sp)
|
|
/* 0EE310 7F0B97E0 46083102 */ mul.s $f4, $f6, $f8
|
|
/* 0EE314 7F0B97E4 46045181 */ sub.s $f6, $f10, $f4
|
|
/* 0EE318 7F0B97E8 E6060004 */ swc1 $f6, 4($s0)
|
|
/* 0EE31C 7F0B97EC C7AA0064 */ lwc1 $f10, 0x64($sp)
|
|
/* 0EE320 7F0B97F0 C7A8006C */ lwc1 $f8, 0x6c($sp)
|
|
/* 0EE324 7F0B97F4 C7A60060 */ lwc1 $f6, 0x60($sp)
|
|
/* 0EE328 7F0B97F8 C6120004 */ lwc1 $f18, 4($s0)
|
|
/* 0EE32C 7F0B97FC 460A4102 */ mul.s $f4, $f8, $f10
|
|
/* 0EE330 7F0B9800 C7A80070 */ lwc1 $f8, 0x70($sp)
|
|
/* 0EE334 7F0B9804 46083282 */ mul.s $f10, $f6, $f8
|
|
/* 0EE338 7F0B9808 460A2181 */ sub.s $f6, $f4, $f10
|
|
/* 0EE33C 7F0B980C 46108202 */ mul.s $f8, $f16, $f16
|
|
/* 0EE340 7F0B9810 00000000 */ nop
|
|
/* 0EE344 7F0B9814 46129102 */ mul.s $f4, $f18, $f18
|
|
/* 0EE348 7F0B9818 E6060008 */ swc1 $f6, 8($s0)
|
|
/* 0EE34C 7F0B981C C60E0008 */ lwc1 $f14, 8($s0)
|
|
/* 0EE350 7F0B9820 AFA80040 */ sw $t0, 0x40($sp)
|
|
/* 0EE354 7F0B9824 460E7182 */ mul.s $f6, $f14, $f14
|
|
/* 0EE358 7F0B9828 46044280 */ add.s $f10, $f8, $f4
|
|
/* 0EE35C 7F0B982C 0C007DF8 */ jal sqrtf
|
|
/* 0EE360 7F0B9830 460A3300 */ add.s $f12, $f6, $f10
|
|
/* 0EE364 7F0B9834 44804000 */ mtc1 $zero, $f8
|
|
/* 0EE368 7F0B9838 8FA80040 */ lw $t0, 0x40($sp)
|
|
/* 0EE36C 7F0B983C 46000506 */ mov.s $f20, $f0
|
|
/* 0EE370 7F0B9840 46080032 */ c.eq.s $f0, $f8
|
|
/* 0EE374 7F0B9844 3C013F80 */ li $at, 0x3F800000 # 1.000000
|
|
/* 0EE378 7F0B9848 00001825 */ move $v1, $zero
|
|
/* 0EE37C 7F0B984C 45030005 */ bc1tl .L7F0B9864
|
|
/* 0EE380 7F0B9850 C6060000 */ lwc1 $f6, ($s0)
|
|
/* 0EE384 7F0B9854 44812000 */ mtc1 $at, $f4
|
|
/* 0EE388 7F0B9858 00000000 */ nop
|
|
/* 0EE38C 7F0B985C 46002503 */ div.s $f20, $f4, $f0
|
|
/* 0EE390 7F0B9860 C6060000 */ lwc1 $f6, ($s0)
|
|
.L7F0B9864:
|
|
/* 0EE394 7F0B9864 C6080004 */ lwc1 $f8, 4($s0)
|
|
/* 0EE398 7F0B9868 3C198008 */ lui $t9, %hi(g_BgPortals)
|
|
/* 0EE39C 7F0B986C 46143282 */ mul.s $f10, $f6, $f20
|
|
/* 0EE3A0 7F0B9870 C6060008 */ lwc1 $f6, 8($s0)
|
|
/* 0EE3A4 7F0B9874 3C018006 */ lui $at, %hi(D_80058D54)
|
|
/* 0EE3A8 7F0B9878 46144102 */ mul.s $f4, $f8, $f20
|
|
/* 0EE3AC 7F0B987C E60A0000 */ swc1 $f10, ($s0)
|
|
/* 0EE3B0 7F0B9880 46143282 */ mul.s $f10, $f6, $f20
|
|
/* 0EE3B4 7F0B9884 E6040004 */ swc1 $f4, 4($s0)
|
|
/* 0EE3B8 7F0B9888 E60A0008 */ swc1 $f10, 8($s0)
|
|
/* 0EE3BC 7F0B988C 8F39FF80 */ lw $t9, %lo(g_BgPortals)($t9)
|
|
/* 0EE3C0 7F0B9890 C4228D54 */ lwc1 $f2, %lo(D_80058D54)($at)
|
|
/* 0EE3C4 7F0B9894 3C018006 */ lui $at, %hi(D_80058D58)
|
|
/* 0EE3C8 7F0B9898 03284821 */ addu $t1, $t9, $t0
|
|
/* 0EE3CC 7F0B989C 8D250000 */ lw $a1, ($t1)
|
|
/* 0EE3D0 7F0B98A0 C42C8D58 */ lwc1 $f12, %lo(D_80058D58)($at)
|
|
/* 0EE3D4 7F0B98A4 90A60000 */ lbu $a2, ($a1)
|
|
/* 0EE3D8 7F0B98A8 00A01025 */ move $v0, $a1
|
|
/* 0EE3DC 7F0B98AC 18C0001C */ blez $a2, .L7F0B9920
|
|
/* 0EE3E0 7F0B98B0 00062080 */ sll $a0, $a2, 2
|
|
/* 0EE3E4 7F0B98B4 00862023 */ subu $a0, $a0, $a2
|
|
/* 0EE3E8 7F0B98B8 00042080 */ sll $a0, $a0, 2
|
|
/* 0EE3EC 7F0B98BC C60E0008 */ lwc1 $f14, 8($s0)
|
|
/* 0EE3F0 7F0B98C0 C6100000 */ lwc1 $f16, ($s0)
|
|
/* 0EE3F4 7F0B98C4 C6120004 */ lwc1 $f18, 4($s0)
|
|
.L7F0B98C8:
|
|
/* 0EE3F8 7F0B98C8 C4480004 */ lwc1 $f8, 4($v0)
|
|
/* 0EE3FC 7F0B98CC C4460008 */ lwc1 $f6, 8($v0)
|
|
/* 0EE400 7F0B98D0 2463000C */ addiu $v1, $v1, 0xc
|
|
/* 0EE404 7F0B98D4 46104102 */ mul.s $f4, $f8, $f16
|
|
/* 0EE408 7F0B98D8 0064082A */ slt $at, $v1, $a0
|
|
/* 0EE40C 7F0B98DC 46123282 */ mul.s $f10, $f6, $f18
|
|
/* 0EE410 7F0B98E0 C446000C */ lwc1 $f6, 0xc($v0)
|
|
/* 0EE414 7F0B98E4 460A2200 */ add.s $f8, $f4, $f10
|
|
/* 0EE418 7F0B98E8 46067102 */ mul.s $f4, $f14, $f6
|
|
/* 0EE41C 7F0B98EC 46082000 */ add.s $f0, $f4, $f8
|
|
/* 0EE420 7F0B98F0 4602003C */ c.lt.s $f0, $f2
|
|
/* 0EE424 7F0B98F4 00000000 */ nop
|
|
/* 0EE428 7F0B98F8 45020003 */ bc1fl .L7F0B9908
|
|
/* 0EE42C 7F0B98FC 4600603C */ c.lt.s $f12, $f0
|
|
/* 0EE430 7F0B9900 46000086 */ mov.s $f2, $f0
|
|
/* 0EE434 7F0B9904 4600603C */ c.lt.s $f12, $f0
|
|
.L7F0B9908:
|
|
/* 0EE438 7F0B9908 00000000 */ nop
|
|
/* 0EE43C 7F0B990C 45000002 */ bc1f .L7F0B9918
|
|
/* 0EE440 7F0B9910 00000000 */ nop
|
|
/* 0EE444 7F0B9914 46000306 */ mov.s $f12, $f0
|
|
.L7F0B9918:
|
|
/* 0EE448 7F0B9918 1420FFEB */ bnez $at, .L7F0B98C8
|
|
/* 0EE44C 7F0B991C 2442000C */ addiu $v0, $v0, 0xc
|
|
.L7F0B9920:
|
|
/* 0EE450 7F0B9920 E602000C */ swc1 $f2, 0xc($s0)
|
|
/* 0EE454 7F0B9924 E60C0010 */ swc1 $f12, 0x10($s0)
|
|
/* 0EE458 7F0B9928 8FBF0024 */ lw $ra, 0x24($sp)
|
|
/* 0EE45C 7F0B992C 8FB00020 */ lw $s0, 0x20($sp)
|
|
/* 0EE460 7F0B9930 D7B40018 */ ldc1 $f20, 0x18($sp)
|
|
/* 0EE464 7F0B9934 03E00008 */ jr $ra
|
|
/* 0EE468 7F0B9938 27BD0078 */ addiu $sp, $sp, 0x78
|
|
)
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Unknown, makes use of sub_GAME_7F0B96CC.
|
|
*
|
|
* Address 0x7F0B993C.
|
|
*/
|
|
s32 sub_GAME_7F0B993C(s32 arg0)
|
|
{
|
|
struct PortalMetric metric;
|
|
s32 padding;
|
|
|
|
sub_GAME_7F0B96CC(arg0, &metric);
|
|
|
|
if (((metric.normal.f[0] * metric.normal.f[0]) + (metric.normal.f[2] * metric.normal.f[2])) < 0.999f)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
f32 sub_GAME_7F0B9990(s32 arg0) {
|
|
void *temp_t8;
|
|
s32 temp_t9;
|
|
s32 temp_a0;
|
|
f32 temp_f2;
|
|
s32 temp_v1;
|
|
f32 temp_f2_6;
|
|
f32 temp_f2_2;
|
|
s32 temp_v1_2;
|
|
f32 temp_f2_3;
|
|
f32 temp_f2_4;
|
|
f32 temp_f2_5;
|
|
s32 phi_v1;
|
|
s32 phi_v1_2;
|
|
f32 phi_f2;
|
|
f32 phi_f2_2;
|
|
f32 phi_f2_3;
|
|
|
|
// Node 0
|
|
temp_t8 = (g_BgPortals + (arg0 * 8));
|
|
temp_t9 = (((s32) temp_t8->unk7 >> 4) & 0xf);
|
|
temp_a0 = -(s32) (temp_t9 & 3);
|
|
temp_f2 = ((f32) (temp_t8->unk7 & 0xf) * 0.25f);
|
|
phi_f2 = temp_f2;
|
|
if (temp_t9 != 0)
|
|
{
|
|
// Node 1
|
|
phi_v1 = temp_t9;
|
|
phi_v1_2 = temp_t9;
|
|
phi_f2_2 = temp_f2;
|
|
phi_f2_3 = temp_f2;
|
|
if (((temp_a0 == 0) || ((temp_a0 + temp_t9) != temp_v1)) || (temp_v1 != 0))
|
|
{
|
|
loop_4:
|
|
// Node 4
|
|
temp_f2_2 = (phi_f2_2 + phi_f2_2);
|
|
temp_v1_2 = (phi_v1_2 + -4);
|
|
temp_f2_3 = (temp_f2_2 + temp_f2_2);
|
|
temp_f2_4 = (temp_f2_3 + temp_f2_3);
|
|
temp_f2_5 = (temp_f2_4 + temp_f2_4);
|
|
phi_v1_2 = temp_v1_2;
|
|
phi_f2 = temp_f2_5;
|
|
phi_f2_2 = temp_f2_5;
|
|
if (temp_v1_2 != 0)
|
|
{
|
|
goto loop_4;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
|
|
}
|
|
}
|
|
// Node 5
|
|
return phi_f2;
|
|
}
|
|
#else
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B9990
|
|
/* 0EE4C0 7F0B9990 3C0E8008 */ lui $t6, %hi(g_BgPortals)
|
|
/* 0EE4C4 7F0B9994 8DCEFF80 */ lw $t6, %lo(g_BgPortals)($t6)
|
|
/* 0EE4C8 7F0B9998 000478C0 */ sll $t7, $a0, 3
|
|
/* 0EE4CC 7F0B999C 3C013E80 */ li $at, 0x3E800000 # 0.250000
|
|
/* 0EE4D0 7F0B99A0 01CFC021 */ addu $t8, $t6, $t7
|
|
/* 0EE4D4 7F0B99A4 93020007 */ lbu $v0, 7($t8)
|
|
/* 0EE4D8 7F0B99A8 44814000 */ mtc1 $at, $f8
|
|
/* 0EE4DC 7F0B99AC 3048000F */ andi $t0, $v0, 0xf
|
|
/* 0EE4E0 7F0B99B0 44882000 */ mtc1 $t0, $f4
|
|
/* 0EE4E4 7F0B99B4 00022903 */ sra $a1, $v0, 4
|
|
/* 0EE4E8 7F0B99B8 30B9000F */ andi $t9, $a1, 0xf
|
|
/* 0EE4EC 7F0B99BC 468021A0 */ cvt.s.w $f6, $f4
|
|
/* 0EE4F0 7F0B99C0 33240003 */ andi $a0, $t9, 3
|
|
/* 0EE4F4 7F0B99C4 03201825 */ move $v1, $t9
|
|
/* 0EE4F8 7F0B99C8 00042023 */ negu $a0, $a0
|
|
/* 0EE4FC 7F0B99CC 46083082 */ mul.s $f2, $f6, $f8
|
|
/* 0EE500 7F0B99D0 1320000E */ beqz $t9, .L7F0B9A0C
|
|
/* 0EE504 7F0B99D4 00000000 */ nop
|
|
/* 0EE508 7F0B99D8 10800006 */ beqz $a0, .L7F0B99F4
|
|
/* 0EE50C 7F0B99DC 00991021 */ addu $v0, $a0, $t9
|
|
.L7F0B99E0:
|
|
/* 0EE510 7F0B99E0 2463FFFF */ addiu $v1, $v1, -1
|
|
/* 0EE514 7F0B99E4 1443FFFE */ bne $v0, $v1, .L7F0B99E0
|
|
/* 0EE518 7F0B99E8 46021080 */ add.s $f2, $f2, $f2
|
|
/* 0EE51C 7F0B99EC 10600007 */ beqz $v1, .L7F0B9A0C
|
|
/* 0EE520 7F0B99F0 00000000 */ nop
|
|
.L7F0B99F4:
|
|
/* 0EE524 7F0B99F4 46021080 */ add.s $f2, $f2, $f2
|
|
/* 0EE528 7F0B99F8 2463FFFC */ addiu $v1, $v1, -4
|
|
/* 0EE52C 7F0B99FC 46021080 */ add.s $f2, $f2, $f2
|
|
/* 0EE530 7F0B9A00 46021080 */ add.s $f2, $f2, $f2
|
|
/* 0EE534 7F0B9A04 1460FFFB */ bnez $v1, .L7F0B99F4
|
|
/* 0EE538 7F0B9A08 46021080 */ add.s $f2, $f2, $f2
|
|
.L7F0B9A0C:
|
|
/* 0EE53C 7F0B9A0C 03E00008 */ jr $ra
|
|
/* 0EE540 7F0B9A10 46001006 */ mov.s $f0, $f2
|
|
)
|
|
#endif
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Unreferenced.
|
|
*
|
|
* Address 0x7F0B9A14.
|
|
*/
|
|
u8 bgGetDataPortalsControlBytes2(s32 arg0)
|
|
{
|
|
return g_BgPortals[arg0].controlbytes2;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
s32 sub_GAME_7F0B9A2C(s32 arg0) {
|
|
void *temp_v1;
|
|
s32 temp_v0;
|
|
s32 temp_t8;
|
|
s8 phi_v0;
|
|
|
|
// Node 0
|
|
temp_v1 = (g_BgPortals + (arg0 * 8));
|
|
temp_v0 = (temp_v1->unk7 + 1);
|
|
if (temp_v1->unk7 >= 0xff)
|
|
{
|
|
// Node 1
|
|
phi_v0 = (u8)0xff;
|
|
}
|
|
else
|
|
{
|
|
// Node 2
|
|
temp_t8 = (temp_v0 & 0xff);
|
|
phi_v0 = temp_t8;
|
|
if (((temp_t8 >> 4) & 0xf) > 0)
|
|
{
|
|
// Node 3
|
|
phi_v0 = ((temp_t8 | 8) & 0xff);
|
|
}
|
|
}
|
|
// Node 4
|
|
temp_v1->unk7 = (s8) phi_v0;
|
|
return temp_v0;
|
|
}
|
|
#else
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B9A2C
|
|
/* 0EE55C 7F0B9A2C 3C0E8008 */ lui $t6, %hi(g_BgPortals)
|
|
/* 0EE560 7F0B9A30 8DCEFF80 */ lw $t6, %lo(g_BgPortals)($t6)
|
|
/* 0EE564 7F0B9A34 000478C0 */ sll $t7, $a0, 3
|
|
/* 0EE568 7F0B9A38 01CF1821 */ addu $v1, $t6, $t7
|
|
/* 0EE56C 7F0B9A3C 90620007 */ lbu $v0, 7($v1)
|
|
/* 0EE570 7F0B9A40 284100FF */ slti $at, $v0, 0xff
|
|
/* 0EE574 7F0B9A44 14200003 */ bnez $at, .L7F0B9A54
|
|
/* 0EE578 7F0B9A48 24420001 */ addiu $v0, $v0, 1
|
|
/* 0EE57C 7F0B9A4C 10000009 */ b .L7F0B9A74
|
|
/* 0EE580 7F0B9A50 240200FF */ li $v0, 255
|
|
.L7F0B9A54:
|
|
/* 0EE584 7F0B9A54 305800FF */ andi $t8, $v0, 0xff
|
|
/* 0EE588 7F0B9A58 0018C903 */ sra $t9, $t8, 4
|
|
/* 0EE58C 7F0B9A5C 3328000F */ andi $t0, $t9, 0xf
|
|
/* 0EE590 7F0B9A60 19000004 */ blez $t0, .L7F0B9A74
|
|
/* 0EE594 7F0B9A64 03001025 */ move $v0, $t8
|
|
/* 0EE598 7F0B9A68 37020008 */ ori $v0, $t8, 8
|
|
/* 0EE59C 7F0B9A6C 304900FF */ andi $t1, $v0, 0xff
|
|
/* 0EE5A0 7F0B9A70 01201025 */ move $v0, $t1
|
|
.L7F0B9A74:
|
|
/* 0EE5A4 7F0B9A74 03E00008 */ jr $ra
|
|
/* 0EE5A8 7F0B9A78 A0620007 */ sb $v0, 7($v1)
|
|
)
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
s32 sub_GAME_7F0B9A7C(s32 arg0) {
|
|
void *temp_v1;
|
|
s8 temp_t1;
|
|
s8 phi_v0;
|
|
|
|
// Node 0
|
|
temp_v1 = (g_BgPortals + (arg0 * 8));
|
|
if ((((s32) temp_v1->unk7 >> 4) & 0xf) == 0)
|
|
{
|
|
// Node 1
|
|
phi_v0 = (s8) temp_v1->unk7;
|
|
if (temp_v1->unk7 > 0)
|
|
{
|
|
// Node 2
|
|
phi_v0 = ((temp_v1->unk7 + -1) & 0xff);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// Node 3
|
|
temp_t1 = ((temp_v1->unk7 + -1) & 0xff);
|
|
phi_v0 = temp_t1;
|
|
if ((temp_t1 & 0xf) < 8)
|
|
{
|
|
// Node 4
|
|
phi_v0 = ((temp_t1 + -8) & 0xff);
|
|
}
|
|
}
|
|
// Node 5
|
|
temp_v1->unk7 = (s8) phi_v0;
|
|
return temp_v1->unk7;
|
|
}
|
|
#else
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B9A7C
|
|
/* 0EE5AC 7F0B9A7C 3C0E8008 */ lui $t6, %hi(g_BgPortals)
|
|
/* 0EE5B0 7F0B9A80 8DCEFF80 */ lw $t6, %lo(g_BgPortals)($t6)
|
|
/* 0EE5B4 7F0B9A84 000478C0 */ sll $t7, $a0, 3
|
|
/* 0EE5B8 7F0B9A88 01CF1821 */ addu $v1, $t6, $t7
|
|
/* 0EE5BC 7F0B9A8C 90620007 */ lbu $v0, 7($v1)
|
|
/* 0EE5C0 7F0B9A90 0002C103 */ sra $t8, $v0, 4
|
|
/* 0EE5C4 7F0B9A94 3319000F */ andi $t9, $t8, 0xf
|
|
/* 0EE5C8 7F0B9A98 17200007 */ bnez $t9, .L7F0B9AB8
|
|
/* 0EE5CC 7F0B9A9C 00402825 */ move $a1, $v0
|
|
/* 0EE5D0 7F0B9AA0 18A0000E */ blez $a1, .L7F0B9ADC
|
|
/* 0EE5D4 7F0B9AA4 00000000 */ nop
|
|
/* 0EE5D8 7F0B9AA8 2442FFFF */ addiu $v0, $v0, -1
|
|
/* 0EE5DC 7F0B9AAC 304800FF */ andi $t0, $v0, 0xff
|
|
/* 0EE5E0 7F0B9AB0 1000000A */ b .L7F0B9ADC
|
|
/* 0EE5E4 7F0B9AB4 01001025 */ move $v0, $t0
|
|
.L7F0B9AB8:
|
|
/* 0EE5E8 7F0B9AB8 2442FFFF */ addiu $v0, $v0, -1
|
|
/* 0EE5EC 7F0B9ABC 304900FF */ andi $t1, $v0, 0xff
|
|
/* 0EE5F0 7F0B9AC0 312A000F */ andi $t2, $t1, 0xf
|
|
/* 0EE5F4 7F0B9AC4 29410008 */ slti $at, $t2, 8
|
|
/* 0EE5F8 7F0B9AC8 10200004 */ beqz $at, .L7F0B9ADC
|
|
/* 0EE5FC 7F0B9ACC 01201025 */ move $v0, $t1
|
|
/* 0EE600 7F0B9AD0 2522FFF8 */ addiu $v0, $t1, -8
|
|
/* 0EE604 7F0B9AD4 304B00FF */ andi $t3, $v0, 0xff
|
|
/* 0EE608 7F0B9AD8 01601025 */ move $v0, $t3
|
|
.L7F0B9ADC:
|
|
/* 0EE60C 7F0B9ADC 03E00008 */ jr $ra
|
|
/* 0EE610 7F0B9AE0 A0620007 */ sb $v0, 7($v1)
|
|
)
|
|
#endif
|
|
|
|
|
|
|
|
/**
|
|
* @param index: index into portal array.
|
|
*
|
|
* Address 0x7F0B9AE4.
|
|
*/
|
|
s32 bgGetDataPortalsControlBytes1Bit1(s32 index)
|
|
{
|
|
return g_BgPortals[index].controlbytes1 & 1;
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* @param index: index into portal array.
|
|
*
|
|
* Address 0x7F0B9B04.
|
|
*/
|
|
s32 bgGetDataPortalsControlBytes1Bit2(s32 index)
|
|
{
|
|
return g_BgPortals[index].controlbytes1 & 2;
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* @param index: index into portal array.
|
|
*
|
|
* Address 0x7F0B9B24.
|
|
*/
|
|
void bgSetDataPortalsControlBytes1Bit2(s32 index)
|
|
{
|
|
g_BgPortals[index].controlbytes1 |= 2;
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* @param index: index into portal array.
|
|
*
|
|
* Address 0x7F0B9B44.
|
|
*/
|
|
void bgClearDataPortalsControlBytes1Low2Bits(s32 index)
|
|
{
|
|
g_BgPortals[index].controlbytes1 &= 0xFD;
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* Swaps connected rooms.
|
|
*
|
|
* @param index: index into portal array.
|
|
*
|
|
* Address 0x7F0B9B64.
|
|
*/
|
|
s8 bgSwapConnectedRooms(s32 index)
|
|
{
|
|
u8 t;
|
|
|
|
t = g_BgPortals[index].connectedRoom1;
|
|
g_BgPortals[index].connectedRoom1 = g_BgPortals[index].connectedRoom2;
|
|
g_BgPortals[index].connectedRoom2 = t;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
f32 sub_GAME_7F0B9B94(s32 arg0) {
|
|
s32 sp24;
|
|
?32 sp28;
|
|
f32 sp34;
|
|
f32 sp38;
|
|
f32 sp3C;
|
|
f32 sp48;
|
|
f32 sp54;
|
|
void *temp_v0;
|
|
f32 temp_f0;
|
|
f32 phi_f16;
|
|
f32 phi_f18;
|
|
f32 phi_f14;
|
|
s32 phi_v0;
|
|
f32 phi_f12;
|
|
f32 phi_return;
|
|
|
|
// Node 0
|
|
temp_v0 = (g_BgPortals + (arg0 * 8));
|
|
sp28 = (?32) temp_v0->unk5;
|
|
sub_GAME_7F0B92B4(temp_v0->unk4, &sp54);
|
|
sub_GAME_7F0B92B4(sp28, &sp48);
|
|
sub_GAME_7F0B96CC(arg0, &sp34);
|
|
phi_f16 = sp3C;
|
|
phi_f18 = sp34;
|
|
phi_f14 = sp40;
|
|
phi_v0 = 0;
|
|
phi_f12 = sp44;
|
|
if (sp44 < ((sp5C * sp3C) + ((sp34 * sp54) + (sp38 * sp58))))
|
|
{
|
|
// Node 1
|
|
sp24 = 1;
|
|
bgSwapConnectedRooms(sp44, sp40, arg0);
|
|
sp38 = (f32) -sp38;
|
|
phi_f16 = -sp3C;
|
|
phi_f18 = -sp34;
|
|
phi_f14 = -sp44;
|
|
phi_v0 = 1;
|
|
phi_f12 = -sp40;
|
|
}
|
|
// Node 2
|
|
sp3C = (f32) phi_f16;
|
|
sp34 = (f32) phi_f18;
|
|
temp_f0 = ((sp50 * phi_f16) + ((phi_f18 * sp48) + (sp38 * sp4C)));
|
|
phi_return = temp_f0;
|
|
if (temp_f0 <= phi_f14)
|
|
{
|
|
// Node 3
|
|
phi_return = temp_f0;
|
|
if (phi_v0 != 0)
|
|
{
|
|
// Node 4
|
|
sp24 = (s32) phi_v0;
|
|
phi_return = bgSwapConnectedRooms(phi_f12, phi_f14, arg0);
|
|
}
|
|
}
|
|
// Node 5
|
|
return phi_return;
|
|
}
|
|
#else
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B9B94
|
|
/* 0EE6C4 7F0B9B94 3C0E8008 */ lui $t6, %hi(g_BgPortals)
|
|
/* 0EE6C8 7F0B9B98 8DCEFF80 */ lw $t6, %lo(g_BgPortals)($t6)
|
|
/* 0EE6CC 7F0B9B9C 27BDFFA0 */ addiu $sp, $sp, -0x60
|
|
/* 0EE6D0 7F0B9BA0 0004C0C0 */ sll $t8, $a0, 3
|
|
/* 0EE6D4 7F0B9BA4 AFBF0014 */ sw $ra, 0x14($sp)
|
|
/* 0EE6D8 7F0B9BA8 AFA40060 */ sw $a0, 0x60($sp)
|
|
/* 0EE6DC 7F0B9BAC 01D81021 */ addu $v0, $t6, $t8
|
|
/* 0EE6E0 7F0B9BB0 90590005 */ lbu $t9, 5($v0)
|
|
/* 0EE6E4 7F0B9BB4 90440004 */ lbu $a0, 4($v0)
|
|
/* 0EE6E8 7F0B9BB8 27A50054 */ addiu $a1, $sp, 0x54
|
|
/* 0EE6EC 7F0B9BBC 0FC2E4AD */ jal sub_GAME_7F0B92B4
|
|
/* 0EE6F0 7F0B9BC0 AFB90028 */ sw $t9, 0x28($sp)
|
|
/* 0EE6F4 7F0B9BC4 8FA40028 */ lw $a0, 0x28($sp)
|
|
/* 0EE6F8 7F0B9BC8 0FC2E4AD */ jal sub_GAME_7F0B92B4
|
|
/* 0EE6FC 7F0B9BCC 27A50048 */ addiu $a1, $sp, 0x48
|
|
/* 0EE700 7F0B9BD0 8FA40060 */ lw $a0, 0x60($sp)
|
|
/* 0EE704 7F0B9BD4 0FC2E5B3 */ jal sub_GAME_7F0B96CC
|
|
/* 0EE708 7F0B9BD8 27A50034 */ addiu $a1, $sp, 0x34
|
|
/* 0EE70C 7F0B9BDC C7A40038 */ lwc1 $f4, 0x38($sp)
|
|
/* 0EE710 7F0B9BE0 C7A60058 */ lwc1 $f6, 0x58($sp)
|
|
/* 0EE714 7F0B9BE4 C7B20034 */ lwc1 $f18, 0x34($sp)
|
|
/* 0EE718 7F0B9BE8 C7AA0054 */ lwc1 $f10, 0x54($sp)
|
|
/* 0EE71C 7F0B9BEC 46062202 */ mul.s $f8, $f4, $f6
|
|
/* 0EE720 7F0B9BF0 C7B0003C */ lwc1 $f16, 0x3c($sp)
|
|
/* 0EE724 7F0B9BF4 C7AC0044 */ lwc1 $f12, 0x44($sp)
|
|
/* 0EE728 7F0B9BF8 460A9102 */ mul.s $f4, $f18, $f10
|
|
/* 0EE72C 7F0B9BFC C7AA005C */ lwc1 $f10, 0x5c($sp)
|
|
/* 0EE730 7F0B9C00 C7AE0040 */ lwc1 $f14, 0x40($sp)
|
|
/* 0EE734 7F0B9C04 00001025 */ move $v0, $zero
|
|
/* 0EE738 7F0B9C08 8FA40060 */ lw $a0, 0x60($sp)
|
|
/* 0EE73C 7F0B9C0C 46082180 */ add.s $f6, $f4, $f8
|
|
/* 0EE740 7F0B9C10 46105102 */ mul.s $f4, $f10, $f16
|
|
/* 0EE744 7F0B9C14 46062080 */ add.s $f2, $f4, $f6
|
|
/* 0EE748 7F0B9C18 4602603C */ c.lt.s $f12, $f2
|
|
/* 0EE74C 7F0B9C1C 00000000 */ nop
|
|
/* 0EE750 7F0B9C20 45020012 */ bc1fl .L7F0B9C6C
|
|
/* 0EE754 7F0B9C24 C7A40038 */ lwc1 $f4, 0x38($sp)
|
|
/* 0EE758 7F0B9C28 24020001 */ li $v0, 1
|
|
/* 0EE75C 7F0B9C2C 0FC2E6D9 */ jal bgSwapConnectedRooms
|
|
/* 0EE760 7F0B9C30 AFA20024 */ sw $v0, 0x24($sp)
|
|
/* 0EE764 7F0B9C34 C7AC0044 */ lwc1 $f12, 0x44($sp)
|
|
/* 0EE768 7F0B9C38 C7A00040 */ lwc1 $f0, 0x40($sp)
|
|
/* 0EE76C 7F0B9C3C C7A80038 */ lwc1 $f8, 0x38($sp)
|
|
/* 0EE770 7F0B9C40 C7B0003C */ lwc1 $f16, 0x3c($sp)
|
|
/* 0EE774 7F0B9C44 C7B20034 */ lwc1 $f18, 0x34($sp)
|
|
/* 0EE778 7F0B9C48 46006387 */ neg.s $f14, $f12
|
|
/* 0EE77C 7F0B9C4C 46000307 */ neg.s $f12, $f0
|
|
/* 0EE780 7F0B9C50 46004287 */ neg.s $f10, $f8
|
|
/* 0EE784 7F0B9C54 8FA20024 */ lw $v0, 0x24($sp)
|
|
/* 0EE788 7F0B9C58 E7AA0038 */ swc1 $f10, 0x38($sp)
|
|
/* 0EE78C 7F0B9C5C E7AC0044 */ swc1 $f12, 0x44($sp)
|
|
/* 0EE790 7F0B9C60 46008407 */ neg.s $f16, $f16
|
|
/* 0EE794 7F0B9C64 46009487 */ neg.s $f18, $f18
|
|
/* 0EE798 7F0B9C68 C7A40038 */ lwc1 $f4, 0x38($sp)
|
|
.L7F0B9C6C:
|
|
/* 0EE79C 7F0B9C6C C7A6004C */ lwc1 $f6, 0x4c($sp)
|
|
/* 0EE7A0 7F0B9C70 C7AA0048 */ lwc1 $f10, 0x48($sp)
|
|
/* 0EE7A4 7F0B9C74 E7AE0040 */ swc1 $f14, 0x40($sp)
|
|
/* 0EE7A8 7F0B9C78 46062202 */ mul.s $f8, $f4, $f6
|
|
/* 0EE7AC 7F0B9C7C E7B0003C */ swc1 $f16, 0x3c($sp)
|
|
/* 0EE7B0 7F0B9C80 E7B20034 */ swc1 $f18, 0x34($sp)
|
|
/* 0EE7B4 7F0B9C84 460A9102 */ mul.s $f4, $f18, $f10
|
|
/* 0EE7B8 7F0B9C88 C7AA0050 */ lwc1 $f10, 0x50($sp)
|
|
/* 0EE7BC 7F0B9C8C 46082180 */ add.s $f6, $f4, $f8
|
|
/* 0EE7C0 7F0B9C90 46105102 */ mul.s $f4, $f10, $f16
|
|
/* 0EE7C4 7F0B9C94 46062000 */ add.s $f0, $f4, $f6
|
|
/* 0EE7C8 7F0B9C98 460E003E */ c.le.s $f0, $f14
|
|
/* 0EE7CC 7F0B9C9C 00000000 */ nop
|
|
/* 0EE7D0 7F0B9CA0 45020006 */ bc1fl .L7F0B9CBC
|
|
/* 0EE7D4 7F0B9CA4 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* 0EE7D8 7F0B9CA8 10400003 */ beqz $v0, .L7F0B9CB8
|
|
/* 0EE7DC 7F0B9CAC 8FA40060 */ lw $a0, 0x60($sp)
|
|
/* 0EE7E0 7F0B9CB0 0FC2E6D9 */ jal bgSwapConnectedRooms
|
|
/* 0EE7E4 7F0B9CB4 AFA20024 */ sw $v0, 0x24($sp)
|
|
.L7F0B9CB8:
|
|
/* 0EE7E8 7F0B9CB8 8FBF0014 */ lw $ra, 0x14($sp)
|
|
.L7F0B9CBC:
|
|
/* 0EE7EC 7F0B9CBC 27BD0060 */ addiu $sp, $sp, 0x60
|
|
/* 0EE7F0 7F0B9CC0 03E00008 */ jr $ra
|
|
/* 0EE7F4 7F0B9CC4 00000000 */ nop
|
|
)
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
void sub_GAME_7F0B9CC8(void) {
|
|
|
|
}
|
|
#else
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B9CC8
|
|
/* 0EE7F8 7F0B9CC8 27BDFFC0 */ addiu $sp, $sp, -0x40
|
|
/* 0EE7FC 7F0B9CCC AFBE0038 */ sw $fp, 0x38($sp)
|
|
/* 0EE800 7F0B9CD0 3C1E8008 */ lui $fp, %hi(g_BgPortals)
|
|
/* 0EE804 7F0B9CD4 27DEFF80 */ addiu $fp, %lo(g_BgPortals) # addiu $fp, $fp, -0x80
|
|
/* 0EE808 7F0B9CD8 8FC30000 */ lw $v1, ($fp)
|
|
/* 0EE80C 7F0B9CDC AFBF003C */ sw $ra, 0x3c($sp)
|
|
/* 0EE810 7F0B9CE0 AFB70034 */ sw $s7, 0x34($sp)
|
|
/* 0EE814 7F0B9CE4 AFB60030 */ sw $s6, 0x30($sp)
|
|
/* 0EE818 7F0B9CE8 AFB5002C */ sw $s5, 0x2c($sp)
|
|
/* 0EE81C 7F0B9CEC AFB40028 */ sw $s4, 0x28($sp)
|
|
/* 0EE820 7F0B9CF0 AFB30024 */ sw $s3, 0x24($sp)
|
|
/* 0EE824 7F0B9CF4 AFB20020 */ sw $s2, 0x20($sp)
|
|
/* 0EE828 7F0B9CF8 AFB1001C */ sw $s1, 0x1c($sp)
|
|
/* 0EE82C 7F0B9CFC AFB00018 */ sw $s0, 0x18($sp)
|
|
/* 0EE830 7F0B9D00 8C6E0000 */ lw $t6, ($v1)
|
|
/* 0EE834 7F0B9D04 00809025 */ move $s2, $a0
|
|
/* 0EE838 7F0B9D08 00A09825 */ move $s3, $a1
|
|
/* 0EE83C 7F0B9D0C 00C0B025 */ move $s6, $a2
|
|
/* 0EE840 7F0B9D10 00E0B825 */ move $s7, $a3
|
|
/* 0EE844 7F0B9D14 2414FFFF */ li $s4, -1
|
|
/* 0EE848 7F0B9D18 11C0001B */ beqz $t6, .L7F0B9D88
|
|
/* 0EE84C 7F0B9D1C 00008025 */ move $s0, $zero
|
|
/* 0EE850 7F0B9D20 00008825 */ move $s1, $zero
|
|
/* 0EE854 7F0B9D24 00601025 */ move $v0, $v1
|
|
/* 0EE858 7F0B9D28 90430004 */ lbu $v1, 4($v0)
|
|
.L7F0B9D2C:
|
|
/* 0EE85C 7F0B9D2C 16430004 */ bne $s2, $v1, .L7F0B9D40
|
|
/* 0EE860 7F0B9D30 00000000 */ nop
|
|
/* 0EE864 7F0B9D34 904F0005 */ lbu $t7, 5($v0)
|
|
/* 0EE868 7F0B9D38 526F0006 */ beql $s3, $t7, .L7F0B9D54
|
|
/* 0EE86C 7F0B9D3C 02002025 */ move $a0, $s0
|
|
.L7F0B9D40:
|
|
/* 0EE870 7F0B9D40 5663000B */ bnel $s3, $v1, .L7F0B9D70
|
|
/* 0EE874 7F0B9D44 8FD90000 */ lw $t9, ($fp)
|
|
/* 0EE878 7F0B9D48 90580005 */ lbu $t8, 5($v0)
|
|
/* 0EE87C 7F0B9D4C 16580007 */ bne $s2, $t8, .L7F0B9D6C
|
|
/* 0EE880 7F0B9D50 02002025 */ move $a0, $s0
|
|
.L7F0B9D54:
|
|
/* 0EE884 7F0B9D54 02C02825 */ move $a1, $s6
|
|
/* 0EE888 7F0B9D58 0FC2E7C5 */ jal sub_GAME_7F0B9F14
|
|
/* 0EE88C 7F0B9D5C 02E03025 */ move $a2, $s7
|
|
/* 0EE890 7F0B9D60 50400003 */ beql $v0, $zero, .L7F0B9D70
|
|
/* 0EE894 7F0B9D64 8FD90000 */ lw $t9, ($fp)
|
|
/* 0EE898 7F0B9D68 0200A025 */ move $s4, $s0
|
|
.L7F0B9D6C:
|
|
/* 0EE89C 7F0B9D6C 8FD90000 */ lw $t9, ($fp)
|
|
.L7F0B9D70:
|
|
/* 0EE8A0 7F0B9D70 26310008 */ addiu $s1, $s1, 8
|
|
/* 0EE8A4 7F0B9D74 26100001 */ addiu $s0, $s0, 1
|
|
/* 0EE8A8 7F0B9D78 03311021 */ addu $v0, $t9, $s1
|
|
/* 0EE8AC 7F0B9D7C 8C480000 */ lw $t0, ($v0)
|
|
/* 0EE8B0 7F0B9D80 5500FFEA */ bnezl $t0, .L7F0B9D2C
|
|
/* 0EE8B4 7F0B9D84 90430004 */ lbu $v1, 4($v0)
|
|
.L7F0B9D88:
|
|
/* 0EE8B8 7F0B9D88 8FBF003C */ lw $ra, 0x3c($sp)
|
|
/* 0EE8BC 7F0B9D8C 02801025 */ move $v0, $s4
|
|
/* 0EE8C0 7F0B9D90 8FB40028 */ lw $s4, 0x28($sp)
|
|
/* 0EE8C4 7F0B9D94 8FB00018 */ lw $s0, 0x18($sp)
|
|
/* 0EE8C8 7F0B9D98 8FB1001C */ lw $s1, 0x1c($sp)
|
|
/* 0EE8CC 7F0B9D9C 8FB20020 */ lw $s2, 0x20($sp)
|
|
/* 0EE8D0 7F0B9DA0 8FB30024 */ lw $s3, 0x24($sp)
|
|
/* 0EE8D4 7F0B9DA4 8FB5002C */ lw $s5, 0x2c($sp)
|
|
/* 0EE8D8 7F0B9DA8 8FB60030 */ lw $s6, 0x30($sp)
|
|
/* 0EE8DC 7F0B9DAC 8FB70034 */ lw $s7, 0x34($sp)
|
|
/* 0EE8E0 7F0B9DB0 8FBE0038 */ lw $fp, 0x38($sp)
|
|
/* 0EE8E4 7F0B9DB4 03E00008 */ jr $ra
|
|
/* 0EE8E8 7F0B9DB8 27BD0040 */ addiu $sp, $sp, 0x40
|
|
)
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Toggles control bytes 1 lowest bit, based on toggle parameter.
|
|
*
|
|
* @param index: index into data portals.
|
|
* @param toggle: When zero, sets lowest bit. Otherwise, clears lowest bit.
|
|
*
|
|
* Address 0x7F0B9DBC.
|
|
*/
|
|
void bgToggleDataPortalsContrlBytes1Bit1(s32 index, s32 toggle)
|
|
{
|
|
g_BgPortals[index].controlbytes1 = (g_BgPortals[index].controlbytes1 | 1) ^ (toggle != 0);
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Debug method, called from lvl.c.
|
|
* Something to do with portals.
|
|
*
|
|
* Address 0x7F0B9DE4.
|
|
*/
|
|
s32 bgDebugRemoved7F0B9DE4(s32 arg0, s32 arg1, s32 arg2)
|
|
{
|
|
#if DEBUG
|
|
// removed
|
|
#endif
|
|
|
|
return arg0;
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Debug method, called from lvl.c.
|
|
* Something to do with portals.
|
|
*
|
|
* Address 0x7F0B9DF4.
|
|
*/
|
|
void bgRemoved7F0B9DF4(s32 arg0)
|
|
{
|
|
#if DEBUG
|
|
// removed
|
|
#endif
|
|
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* Unreferenced.
|
|
*
|
|
* Address 0x7F0B9DFC.
|
|
*/
|
|
void bgRemoved7F0B9DFC(s32 arg0)
|
|
{
|
|
#if DEBUG
|
|
// removed
|
|
#endif
|
|
|
|
return;
|
|
}
|
|
|
|
s32 sub_GAME_7F0B9E04(coord3d *arg0, coord3d *arg1)
|
|
{
|
|
s32 bestportalnum = -1;
|
|
s32 count = 0;
|
|
f32 bestthing = MAXFLOAT;
|
|
f32 thisthing;
|
|
s32 i;
|
|
|
|
for (i = 0; g_BgPortals[i].offset_portal; i++)
|
|
{
|
|
if (sub_GAME_7F0B9F14(i, arg0, arg1) != 0)
|
|
{
|
|
thisthing = D_80044900;
|
|
|
|
if (thisthing < 0)
|
|
{
|
|
thisthing = -thisthing;
|
|
}
|
|
|
|
if (thisthing < bestthing)
|
|
{
|
|
if (count);
|
|
if (i);
|
|
bestportalnum = i;
|
|
bestthing = thisthing;
|
|
count++;
|
|
}
|
|
}
|
|
}
|
|
|
|
return bestportalnum;
|
|
}
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
s32 sub_GAME_7F0B9F14(s32 portalnum, struct coord *arg1, struct coord *arg2) {
|
|
|
|
}
|
|
#else
|
|
s32 sub_GAME_7F0B9F14(s32 portalnum, struct coord *arg1, struct coord *arg2);
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0B9F14
|
|
/* 0EEA44 7F0B9F14 27BDFF60 */ addiu $sp, $sp, -0xa0
|
|
/* 0EEA48 7F0B9F18 AFB00018 */ sw $s0, 0x18($sp)
|
|
/* 0EEA4C 7F0B9F1C 00A08025 */ move $s0, $a1
|
|
/* 0EEA50 7F0B9F20 AFBF001C */ sw $ra, 0x1c($sp)
|
|
/* 0EEA54 7F0B9F24 AFA400A0 */ sw $a0, 0xa0($sp)
|
|
/* 0EEA58 7F0B9F28 27A50060 */ addiu $a1, $sp, 0x60
|
|
/* 0EEA5C 7F0B9F2C AFA600A8 */ sw $a2, 0xa8($sp)
|
|
/* 0EEA60 7F0B9F30 A3A0004B */ sb $zero, 0x4b($sp)
|
|
/* 0EEA64 7F0B9F34 0FC2E5B3 */ jal sub_GAME_7F0B96CC
|
|
/* 0EEA68 7F0B9F38 A3A0004A */ sb $zero, 0x4a($sp)
|
|
/* 0EEA6C 7F0B9F3C 8FA600A8 */ lw $a2, 0xa8($sp)
|
|
/* 0EEA70 7F0B9F40 C6100000 */ lwc1 $f16, ($s0)
|
|
/* 0EEA74 7F0B9F44 3C018004 */ lui $at, %hi(room_data_float1)
|
|
/* 0EEA78 7F0B9F48 C4CA0000 */ lwc1 $f10, ($a2)
|
|
/* 0EEA7C 7F0B9F4C C42C13F4 */ lwc1 $f12, %lo(room_data_float1)($at)
|
|
/* 0EEA80 7F0B9F50 93AA004B */ lbu $t2, 0x4b($sp)
|
|
/* 0EEA84 7F0B9F54 46105181 */ sub.s $f6, $f10, $f16
|
|
/* 0EEA88 7F0B9F58 93AB004A */ lbu $t3, 0x4a($sp)
|
|
/* 0EEA8C 7F0B9F5C E7A6008C */ swc1 $f6, 0x8c($sp)
|
|
/* 0EEA90 7F0B9F60 C6080004 */ lwc1 $f8, 4($s0)
|
|
/* 0EEA94 7F0B9F64 C4C40004 */ lwc1 $f4, 4($a2)
|
|
/* 0EEA98 7F0B9F68 46082481 */ sub.s $f18, $f4, $f8
|
|
/* 0EEA9C 7F0B9F6C C7A80060 */ lwc1 $f8, 0x60($sp)
|
|
/* 0EEAA0 7F0B9F70 E7B20090 */ swc1 $f18, 0x90($sp)
|
|
/* 0EEAA4 7F0B9F74 C6100008 */ lwc1 $f16, 8($s0)
|
|
/* 0EEAA8 7F0B9F78 C4CA0008 */ lwc1 $f10, 8($a2)
|
|
/* 0EEAAC 7F0B9F7C 46105181 */ sub.s $f6, $f10, $f16
|
|
/* 0EEAB0 7F0B9F80 C7B00064 */ lwc1 $f16, 0x64($sp)
|
|
/* 0EEAB4 7F0B9F84 E7A60094 */ swc1 $f6, 0x94($sp)
|
|
/* 0EEAB8 7F0B9F88 C6040000 */ lwc1 $f4, ($s0)
|
|
/* 0EEABC 7F0B9F8C C60A0004 */ lwc1 $f10, 4($s0)
|
|
/* 0EEAC0 7F0B9F90 46082482 */ mul.s $f18, $f4, $f8
|
|
/* 0EEAC4 7F0B9F94 00000000 */ nop
|
|
/* 0EEAC8 7F0B9F98 46105182 */ mul.s $f6, $f10, $f16
|
|
/* 0EEACC 7F0B9F9C C7AA0068 */ lwc1 $f10, 0x68($sp)
|
|
/* 0EEAD0 7F0B9FA0 46069100 */ add.s $f4, $f18, $f6
|
|
/* 0EEAD4 7F0B9FA4 C6120008 */ lwc1 $f18, 8($s0)
|
|
/* 0EEAD8 7F0B9FA8 46125182 */ mul.s $f6, $f10, $f18
|
|
/* 0EEADC 7F0B9FAC 46043480 */ add.s $f18, $f6, $f4
|
|
/* 0EEAE0 7F0B9FB0 C4C60000 */ lwc1 $f6, ($a2)
|
|
/* 0EEAE4 7F0B9FB4 460C9382 */ mul.s $f14, $f18, $f12
|
|
/* 0EEAE8 7F0B9FB8 C4D20004 */ lwc1 $f18, 4($a2)
|
|
/* 0EEAEC 7F0B9FBC 46083102 */ mul.s $f4, $f6, $f8
|
|
/* 0EEAF0 7F0B9FC0 00000000 */ nop
|
|
/* 0EEAF4 7F0B9FC4 46109182 */ mul.s $f6, $f18, $f16
|
|
/* 0EEAF8 7F0B9FC8 C4D20008 */ lwc1 $f18, 8($a2)
|
|
/* 0EEAFC 7F0B9FCC 46125402 */ mul.s $f16, $f10, $f18
|
|
/* 0EEB00 7F0B9FD0 C7AA006C */ lwc1 $f10, 0x6c($sp)
|
|
/* 0EEB04 7F0B9FD4 46062200 */ add.s $f8, $f4, $f6
|
|
/* 0EEB08 7F0B9FD8 C7A6006C */ lwc1 $f6, 0x6c($sp)
|
|
/* 0EEB0C 7F0B9FDC 46088100 */ add.s $f4, $f16, $f8
|
|
/* 0EEB10 7F0B9FE0 4606703C */ c.lt.s $f14, $f6
|
|
/* 0EEB14 7F0B9FE4 460C2002 */ mul.s $f0, $f4, $f12
|
|
/* 0EEB18 7F0B9FE8 45000005 */ bc1f .L7F0BA000
|
|
/* 0EEB1C 7F0B9FEC 00000000 */ nop
|
|
/* 0EEB20 7F0B9FF0 4606003C */ c.lt.s $f0, $f6
|
|
/* 0EEB24 7F0B9FF4 00000000 */ nop
|
|
/* 0EEB28 7F0B9FF8 45010009 */ bc1t .L7F0BA020
|
|
/* 0EEB2C 7F0B9FFC 00000000 */ nop
|
|
.L7F0BA000:
|
|
/* 0EEB30 7F0BA000 460E503C */ c.lt.s $f10, $f14
|
|
/* 0EEB34 7F0BA004 3C013F00 */ li $at, 0x3F000000 # 0.500000
|
|
/* 0EEB38 7F0BA008 45020008 */ bc1fl .L7F0BA02C
|
|
/* 0EEB3C 7F0BA00C 46007480 */ add.s $f18, $f14, $f0
|
|
/* 0EEB40 7F0BA010 4600503C */ c.lt.s $f10, $f0
|
|
/* 0EEB44 7F0BA014 00000000 */ nop
|
|
/* 0EEB48 7F0BA018 45020004 */ bc1fl .L7F0BA02C
|
|
/* 0EEB4C 7F0BA01C 46007480 */ add.s $f18, $f14, $f0
|
|
.L7F0BA020:
|
|
/* 0EEB50 7F0BA020 1000008D */ b .L7F0BA258
|
|
/* 0EEB54 7F0BA024 00001025 */ move $v0, $zero
|
|
/* 0EEB58 7F0BA028 46007480 */ add.s $f18, $f14, $f0
|
|
.L7F0BA02C:
|
|
/* 0EEB5C 7F0BA02C 44818000 */ mtc1 $at, $f16
|
|
/* 0EEB60 7F0BA030 C7A4006C */ lwc1 $f4, 0x6c($sp)
|
|
/* 0EEB64 7F0BA034 8FAE00A0 */ lw $t6, 0xa0($sp)
|
|
/* 0EEB68 7F0BA038 46109202 */ mul.s $f8, $f18, $f16
|
|
/* 0EEB6C 7F0BA03C 3C0F8008 */ lui $t7, %hi(g_BgPortals)
|
|
/* 0EEB70 7F0BA040 8DEFFF80 */ lw $t7, %lo(g_BgPortals)($t7)
|
|
/* 0EEB74 7F0BA044 3C018004 */ lui $at, %hi(D_80044900)
|
|
/* 0EEB78 7F0BA048 000EC0C0 */ sll $t8, $t6, 3
|
|
/* 0EEB7C 7F0BA04C 01F84021 */ addu $t0, $t7, $t8
|
|
/* 0EEB80 7F0BA050 00003825 */ move $a3, $zero
|
|
/* 0EEB84 7F0BA054 46044181 */ sub.s $f6, $f8, $f4
|
|
/* 0EEB88 7F0BA058 00002025 */ move $a0, $zero
|
|
/* 0EEB8C 7F0BA05C E4264900 */ swc1 $f6, %lo(D_80044900)($at)
|
|
/* 0EEB90 7F0BA060 8D020000 */ lw $v0, ($t0)
|
|
/* 0EEB94 7F0BA064 90460000 */ lbu $a2, ($v0)
|
|
/* 0EEB98 7F0BA068 58C00073 */ blezl $a2, .L7F0BA238
|
|
/* 0EEB9C 7F0BA06C C7B2006C */ lwc1 $f18, 0x6c($sp)
|
|
/* 0EEBA0 7F0BA070 44801000 */ mtc1 $zero, $f2
|
|
/* 0EEBA4 7F0BA074 240C000C */ li $t4, 12
|
|
/* 0EEBA8 7F0BA078 24E90001 */ addiu $t1, $a3, 1
|
|
.L7F0BA07C:
|
|
/* 0EEBAC 7F0BA07C 0126001A */ div $zero, $t1, $a2
|
|
/* 0EEBB0 7F0BA080 00002810 */ mfhi $a1
|
|
/* 0EEBB4 7F0BA084 00446821 */ addu $t5, $v0, $a0
|
|
/* 0EEBB8 7F0BA088 C5B20004 */ lwc1 $f18, 4($t5)
|
|
/* 0EEBBC 7F0BA08C 00AC0019 */ multu $a1, $t4
|
|
/* 0EEBC0 7F0BA090 14C00002 */ bnez $a2, .L7F0BA09C
|
|
/* 0EEBC4 7F0BA094 00000000 */ nop
|
|
/* 0EEBC8 7F0BA098 0007000D */ break 7
|
|
.L7F0BA09C:
|
|
/* 0EEBCC 7F0BA09C 2401FFFF */ li $at, -1
|
|
/* 0EEBD0 7F0BA0A0 14C10004 */ bne $a2, $at, .L7F0BA0B4
|
|
/* 0EEBD4 7F0BA0A4 3C018000 */ lui $at, 0x8000
|
|
/* 0EEBD8 7F0BA0A8 15210002 */ bne $t1, $at, .L7F0BA0B4
|
|
/* 0EEBDC 7F0BA0AC 00000000 */ nop
|
|
/* 0EEBE0 7F0BA0B0 0006000D */ break 6
|
|
.L7F0BA0B4:
|
|
/* 0EEBE4 7F0BA0B4 00001812 */ mflo $v1
|
|
/* 0EEBE8 7F0BA0B8 0043C821 */ addu $t9, $v0, $v1
|
|
/* 0EEBEC 7F0BA0BC C72A0004 */ lwc1 $f10, 4($t9)
|
|
/* 0EEBF0 7F0BA0C0 46125401 */ sub.s $f16, $f10, $f18
|
|
/* 0EEBF4 7F0BA0C4 E7B00074 */ swc1 $f16, 0x74($sp)
|
|
/* 0EEBF8 7F0BA0C8 8D020000 */ lw $v0, ($t0)
|
|
/* 0EEBFC 7F0BA0CC 00437021 */ addu $t6, $v0, $v1
|
|
/* 0EEC00 7F0BA0D0 00447821 */ addu $t7, $v0, $a0
|
|
/* 0EEC04 7F0BA0D4 C5E40008 */ lwc1 $f4, 8($t7)
|
|
/* 0EEC08 7F0BA0D8 C5C80008 */ lwc1 $f8, 8($t6)
|
|
/* 0EEC0C 7F0BA0DC 46044181 */ sub.s $f6, $f8, $f4
|
|
/* 0EEC10 7F0BA0E0 C7A40094 */ lwc1 $f4, 0x94($sp)
|
|
/* 0EEC14 7F0BA0E4 E7A60078 */ swc1 $f6, 0x78($sp)
|
|
/* 0EEC18 7F0BA0E8 8D020000 */ lw $v0, ($t0)
|
|
/* 0EEC1C 7F0BA0EC C7A80078 */ lwc1 $f8, 0x78($sp)
|
|
/* 0EEC20 7F0BA0F0 0043C021 */ addu $t8, $v0, $v1
|
|
/* 0EEC24 7F0BA0F4 0044C821 */ addu $t9, $v0, $a0
|
|
/* 0EEC28 7F0BA0F8 C732000C */ lwc1 $f18, 0xc($t9)
|
|
/* 0EEC2C 7F0BA0FC C70A000C */ lwc1 $f10, 0xc($t8)
|
|
/* 0EEC30 7F0BA100 46044182 */ mul.s $f6, $f8, $f4
|
|
/* 0EEC34 7F0BA104 E7A80020 */ swc1 $f8, 0x20($sp)
|
|
/* 0EEC38 7F0BA108 46125401 */ sub.s $f16, $f10, $f18
|
|
/* 0EEC3C 7F0BA10C C7AA0090 */ lwc1 $f10, 0x90($sp)
|
|
/* 0EEC40 7F0BA110 C7A80074 */ lwc1 $f8, 0x74($sp)
|
|
/* 0EEC44 7F0BA114 E7B0007C */ swc1 $f16, 0x7c($sp)
|
|
/* 0EEC48 7F0BA118 C7B2007C */ lwc1 $f18, 0x7c($sp)
|
|
/* 0EEC4C 7F0BA11C 46125402 */ mul.s $f16, $f10, $f18
|
|
/* 0EEC50 7F0BA120 46103181 */ sub.s $f6, $f6, $f16
|
|
/* 0EEC54 7F0BA124 C7B0008C */ lwc1 $f16, 0x8c($sp)
|
|
/* 0EEC58 7F0BA128 46109482 */ mul.s $f18, $f18, $f16
|
|
/* 0EEC5C 7F0BA12C E7A60050 */ swc1 $f6, 0x50($sp)
|
|
/* 0EEC60 7F0BA130 46082102 */ mul.s $f4, $f4, $f8
|
|
/* 0EEC64 7F0BA134 46049481 */ sub.s $f18, $f18, $f4
|
|
/* 0EEC68 7F0BA138 460A4102 */ mul.s $f4, $f8, $f10
|
|
/* 0EEC6C 7F0BA13C C7A80020 */ lwc1 $f8, 0x20($sp)
|
|
/* 0EEC70 7F0BA140 E7B20054 */ swc1 $f18, 0x54($sp)
|
|
/* 0EEC74 7F0BA144 46088282 */ mul.s $f10, $f16, $f8
|
|
/* 0EEC78 7F0BA148 460A2401 */ sub.s $f16, $f4, $f10
|
|
/* 0EEC7C 7F0BA14C 46063202 */ mul.s $f8, $f6, $f6
|
|
/* 0EEC80 7F0BA150 00000000 */ nop
|
|
/* 0EEC84 7F0BA154 46129102 */ mul.s $f4, $f18, $f18
|
|
/* 0EEC88 7F0BA158 E7B00058 */ swc1 $f16, 0x58($sp)
|
|
/* 0EEC8C 7F0BA15C 46108182 */ mul.s $f6, $f16, $f16
|
|
/* 0EEC90 7F0BA160 46044280 */ add.s $f10, $f8, $f4
|
|
/* 0EEC94 7F0BA164 460A3000 */ add.s $f0, $f6, $f10
|
|
/* 0EEC98 7F0BA168 46020032 */ c.eq.s $f0, $f2
|
|
/* 0EEC9C 7F0BA16C 00000000 */ nop
|
|
/* 0EECA0 7F0BA170 45000003 */ bc1f .L7F0BA180
|
|
/* 0EECA4 7F0BA174 00000000 */ nop
|
|
/* 0EECA8 7F0BA178 10000037 */ b .L7F0BA258
|
|
/* 0EECAC 7F0BA17C 00001025 */ move $v0, $zero
|
|
.L7F0BA180:
|
|
/* 0EECB0 7F0BA180 8D0D0000 */ lw $t5, ($t0)
|
|
/* 0EECB4 7F0BA184 C7B20050 */ lwc1 $f18, 0x50($sp)
|
|
/* 0EECB8 7F0BA188 C7B00054 */ lwc1 $f16, 0x54($sp)
|
|
/* 0EECBC 7F0BA18C 01A41021 */ addu $v0, $t5, $a0
|
|
/* 0EECC0 7F0BA190 C4480004 */ lwc1 $f8, 4($v0)
|
|
/* 0EECC4 7F0BA194 C4460008 */ lwc1 $f6, 8($v0)
|
|
/* 0EECC8 7F0BA198 46089102 */ mul.s $f4, $f18, $f8
|
|
/* 0EECCC 7F0BA19C 00000000 */ nop
|
|
/* 0EECD0 7F0BA1A0 46068282 */ mul.s $f10, $f16, $f6
|
|
/* 0EECD4 7F0BA1A4 C446000C */ lwc1 $f6, 0xc($v0)
|
|
/* 0EECD8 7F0BA1A8 460A2200 */ add.s $f8, $f4, $f10
|
|
/* 0EECDC 7F0BA1AC C7A40058 */ lwc1 $f4, 0x58($sp)
|
|
/* 0EECE0 7F0BA1B0 46043282 */ mul.s $f10, $f6, $f4
|
|
/* 0EECE4 7F0BA1B4 46085180 */ add.s $f6, $f10, $f8
|
|
/* 0EECE8 7F0BA1B8 E7A6005C */ swc1 $f6, 0x5c($sp)
|
|
/* 0EECEC 7F0BA1BC C60A0000 */ lwc1 $f10, ($s0)
|
|
/* 0EECF0 7F0BA1C0 460A9202 */ mul.s $f8, $f18, $f10
|
|
/* 0EECF4 7F0BA1C4 C6120004 */ lwc1 $f18, 4($s0)
|
|
/* 0EECF8 7F0BA1C8 46128282 */ mul.s $f10, $f16, $f18
|
|
/* 0EECFC 7F0BA1CC C6120008 */ lwc1 $f18, 8($s0)
|
|
/* 0EED00 7F0BA1D0 460A4400 */ add.s $f16, $f8, $f10
|
|
/* 0EED04 7F0BA1D4 46049202 */ mul.s $f8, $f18, $f4
|
|
/* 0EED08 7F0BA1D8 46104280 */ add.s $f10, $f8, $f16
|
|
/* 0EED0C 7F0BA1DC 460C5002 */ mul.s $f0, $f10, $f12
|
|
/* 0EED10 7F0BA1E0 4606003C */ c.lt.s $f0, $f6
|
|
/* 0EED14 7F0BA1E4 00000000 */ nop
|
|
/* 0EED18 7F0BA1E8 45000007 */ bc1f .L7F0BA208
|
|
/* 0EED1C 7F0BA1EC 00000000 */ nop
|
|
/* 0EED20 7F0BA1F0 11600003 */ beqz $t3, .L7F0BA200
|
|
/* 0EED24 7F0BA1F4 00000000 */ nop
|
|
/* 0EED28 7F0BA1F8 10000017 */ b .L7F0BA258
|
|
/* 0EED2C 7F0BA1FC 00001025 */ move $v0, $zero
|
|
.L7F0BA200:
|
|
/* 0EED30 7F0BA200 10000005 */ b .L7F0BA218
|
|
/* 0EED34 7F0BA204 240A0001 */ li $t2, 1
|
|
.L7F0BA208:
|
|
/* 0EED38 7F0BA208 11400003 */ beqz $t2, .L7F0BA218
|
|
/* 0EED3C 7F0BA20C 240B0001 */ li $t3, 1
|
|
/* 0EED40 7F0BA210 10000011 */ b .L7F0BA258
|
|
/* 0EED44 7F0BA214 00001025 */ move $v0, $zero
|
|
.L7F0BA218:
|
|
/* 0EED48 7F0BA218 8D020000 */ lw $v0, ($t0)
|
|
/* 0EED4C 7F0BA21C 01203825 */ move $a3, $t1
|
|
/* 0EED50 7F0BA220 2484000C */ addiu $a0, $a0, 0xc
|
|
/* 0EED54 7F0BA224 90460000 */ lbu $a2, ($v0)
|
|
/* 0EED58 7F0BA228 0126082A */ slt $at, $t1, $a2
|
|
/* 0EED5C 7F0BA22C 5420FF93 */ bnezl $at, .L7F0BA07C
|
|
/* 0EED60 7F0BA230 24E90001 */ addiu $t1, $a3, 1
|
|
/* 0EED64 7F0BA234 C7B2006C */ lwc1 $f18, 0x6c($sp)
|
|
.L7F0BA238:
|
|
/* 0EED68 7F0BA238 24030002 */ li $v1, 2
|
|
/* 0EED6C 7F0BA23C 4612703C */ c.lt.s $f14, $f18
|
|
/* 0EED70 7F0BA240 00000000 */ nop
|
|
/* 0EED74 7F0BA244 45000003 */ bc1f .L7F0BA254
|
|
/* 0EED78 7F0BA248 00000000 */ nop
|
|
/* 0EED7C 7F0BA24C 10000001 */ b .L7F0BA254
|
|
/* 0EED80 7F0BA250 24030001 */ li $v1, 1
|
|
.L7F0BA254:
|
|
/* 0EED84 7F0BA254 00601025 */ move $v0, $v1
|
|
.L7F0BA258:
|
|
/* 0EED88 7F0BA258 8FBF001C */ lw $ra, 0x1c($sp)
|
|
/* 0EED8C 7F0BA25C 8FB00018 */ lw $s0, 0x18($sp)
|
|
/* 0EED90 7F0BA260 27BD00A0 */ addiu $sp, $sp, 0xa0
|
|
/* 0EED94 7F0BA264 03E00008 */ jr $ra
|
|
/* 0EED98 7F0BA268 00000000 */ nop
|
|
)
|
|
#endif
|
|
|
|
|
|
bool bgIsBboxOverlapping(coord3d *portalbbmin, coord3d *portalbbmax, coord3d *propbbmin, coord3d *propbbmax)
|
|
{
|
|
s32 i;
|
|
|
|
for (i = 0; i < 3; i++)
|
|
{
|
|
if (propbbmin->f[i] > portalbbmax->f[i] || propbbmax->f[i] < portalbbmin->f[i])
|
|
{
|
|
return FALSE;
|
|
}
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
void sub_GAME_7F0BA2D4(void) {
|
|
|
|
}
|
|
#else
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F0BA2D4
|
|
/* 0EEE04 7F0BA2D4 27BDFF48 */ addiu $sp, $sp, -0xb8
|
|
/* 0EEE08 7F0BA2D8 AFBF003C */ sw $ra, 0x3c($sp)
|
|
/* 0EEE0C 7F0BA2DC AFBE0038 */ sw $fp, 0x38($sp)
|
|
/* 0EEE10 7F0BA2E0 AFB70034 */ sw $s7, 0x34($sp)
|
|
/* 0EEE14 7F0BA2E4 AFB60030 */ sw $s6, 0x30($sp)
|
|
/* 0EEE18 7F0BA2E8 AFB5002C */ sw $s5, 0x2c($sp)
|
|
/* 0EEE1C 7F0BA2EC AFB40028 */ sw $s4, 0x28($sp)
|
|
/* 0EEE20 7F0BA2F0 AFB30024 */ sw $s3, 0x24($sp)
|
|
/* 0EEE24 7F0BA2F4 AFB20020 */ sw $s2, 0x20($sp)
|
|
/* 0EEE28 7F0BA2F8 AFB1001C */ sw $s1, 0x1c($sp)
|
|
/* 0EEE2C 7F0BA2FC AFB00018 */ sw $s0, 0x18($sp)
|
|
/* 0EEE30 7F0BA300 AFA700C4 */ sw $a3, 0xc4($sp)
|
|
/* 0EEE34 7F0BA304 3C018004 */ lui $at, %hi(room_data_float1)
|
|
/* 0EEE38 7F0BA308 C42013F4 */ lwc1 $f0, %lo(room_data_float1)($at)
|
|
/* 0EEE3C 7F0BA30C C4840000 */ lwc1 $f4, ($a0)
|
|
/* 0EEE40 7F0BA310 8CF10000 */ lw $s1, ($a3)
|
|
/* 0EEE44 7F0BA314 3C1E8004 */ lui $fp, %hi(D_80044904)
|
|
/* 0EEE48 7F0BA318 46002182 */ mul.s $f6, $f4, $f0
|
|
/* 0EEE4C 7F0BA31C 00C0A025 */ move $s4, $a2
|
|
/* 0EEE50 7F0BA320 00004025 */ move $t0, $zero
|
|
/* 0EEE54 7F0BA324 27DE4904 */ addiu $fp, %lo(D_80044904) # addiu $fp, $fp, 0x4904
|
|
/* 0EEE58 7F0BA328 27B00070 */ addiu $s0, $sp, 0x70
|
|
/* 0EEE5C 7F0BA32C 8FB500C8 */ lw $s5, 0xc8($sp)
|
|
/* 0EEE60 7F0BA330 27B60070 */ addiu $s6, $sp, 0x70
|
|
/* 0EEE64 7F0BA334 E7A600A0 */ swc1 $f6, 0xa0($sp)
|
|
/* 0EEE68 7F0BA338 C4880004 */ lwc1 $f8, 4($a0)
|
|
/* 0EEE6C 7F0BA33C 27B70064 */ addiu $s7, $sp, 0x64
|
|
/* 0EEE70 7F0BA340 46004282 */ mul.s $f10, $f8, $f0
|
|
/* 0EEE74 7F0BA344 E7AA00A4 */ swc1 $f10, 0xa4($sp)
|
|
/* 0EEE78 7F0BA348 C4900008 */ lwc1 $f16, 8($a0)
|
|
/* 0EEE7C 7F0BA34C 46008482 */ mul.s $f18, $f16, $f0
|
|
/* 0EEE80 7F0BA350 E7B200A8 */ swc1 $f18, 0xa8($sp)
|
|
/* 0EEE84 7F0BA354 C4A40000 */ lwc1 $f4, ($a1)
|
|
/* 0EEE88 7F0BA358 46002182 */ mul.s $f6, $f4, $f0
|
|
/* 0EEE8C 7F0BA35C E7A60094 */ swc1 $f6, 0x94($sp)
|
|
/* 0EEE90 7F0BA360 C4A80004 */ lwc1 $f8, 4($a1)
|
|
/* 0EEE94 7F0BA364 46004282 */ mul.s $f10, $f8, $f0
|
|
/* 0EEE98 7F0BA368 E7AA0098 */ swc1 $f10, 0x98($sp)
|
|
/* 0EEE9C 7F0BA36C C4B00008 */ lwc1 $f16, 8($a1)
|
|
/* 0EEEA0 7F0BA370 AFB1007C */ sw $s1, 0x7c($sp)
|
|
/* 0EEEA4 7F0BA374 46008482 */ mul.s $f18, $f16, $f0
|
|
/* 0EEEA8 7F0BA378 E7B2009C */ swc1 $f18, 0x9c($sp)
|
|
.L7F0BA37C:
|
|
/* 0EEEAC 7F0BA37C 0111082A */ slt $at, $t0, $s1
|
|
/* 0EEEB0 7F0BA380 1020007C */ beqz $at, .L7F0BA574
|
|
/* 0EEEB4 7F0BA384 00087880 */ sll $t7, $t0, 2
|
|
/* 0EEEB8 7F0BA388 028FC021 */ addu $t8, $s4, $t7
|
|
/* 0EEEBC 7F0BA38C 3C028008 */ lui $v0, %hi(g_BgPortals)
|
|
/* 0EEEC0 7F0BA390 8C42FF80 */ lw $v0, %lo(g_BgPortals)($v0)
|
|
/* 0EEEC4 7F0BA394 AFB8005C */ sw $t8, 0x5c($sp)
|
|
.L7F0BA398:
|
|
/* 0EEEC8 7F0BA398 8C490000 */ lw $t1, ($v0)
|
|
/* 0EEECC 7F0BA39C 8FB9005C */ lw $t9, 0x5c($sp)
|
|
/* 0EEED0 7F0BA3A0 00009025 */ move $s2, $zero
|
|
/* 0EEED4 7F0BA3A4 1120006C */ beqz $t1, .L7F0BA558
|
|
/* 0EEED8 7F0BA3A8 8F330000 */ lw $s3, ($t9)
|
|
/* 0EEEDC 7F0BA3AC AFA8008C */ sw $t0, 0x8c($sp)
|
|
/* 0EEEE0 7F0BA3B0 00403825 */ move $a3, $v0
|
|
/* 0EEEE4 7F0BA3B4 90EA0006 */ lbu $t2, 6($a3)
|
|
.L7F0BA3B8:
|
|
/* 0EEEE8 7F0BA3B8 314B0001 */ andi $t3, $t2, 1
|
|
/* 0EEEEC 7F0BA3BC 55600061 */ bnezl $t3, .L7F0BA544
|
|
/* 0EEEF0 7F0BA3C0 8CEA0008 */ lw $t2, 8($a3)
|
|
/* 0EEEF4 7F0BA3C4 90EC0004 */ lbu $t4, 4($a3)
|
|
/* 0EEEF8 7F0BA3C8 526C0005 */ beql $s3, $t4, .L7F0BA3E0
|
|
/* 0EEEFC 7F0BA3CC 8FC10000 */ lw $at, ($fp)
|
|
/* 0EEF00 7F0BA3D0 90ED0005 */ lbu $t5, 5($a3)
|
|
/* 0EEF04 7F0BA3D4 566D005B */ bnel $s3, $t5, .L7F0BA544
|
|
/* 0EEF08 7F0BA3D8 8CEA0008 */ lw $t2, 8($a3)
|
|
/* 0EEF0C 7F0BA3DC 8FC10000 */ lw $at, ($fp)
|
|
.L7F0BA3E0:
|
|
/* 0EEF10 7F0BA3E0 8FCF0004 */ lw $t7, 4($fp)
|
|
/* 0EEF14 7F0BA3E4 3C188004 */ lui $t8, %hi(D_80044910)
|
|
/* 0EEF18 7F0BA3E8 AEC10000 */ sw $at, ($s6)
|
|
/* 0EEF1C 7F0BA3EC 8FC10008 */ lw $at, 8($fp)
|
|
/* 0EEF20 7F0BA3F0 27184910 */ addiu $t8, %lo(D_80044910) # addiu $t8, $t8, 0x4910
|
|
/* 0EEF24 7F0BA3F4 AECF0004 */ sw $t7, 4($s6)
|
|
/* 0EEF28 7F0BA3F8 AEC10008 */ sw $at, 8($s6)
|
|
/* 0EEF2C 7F0BA3FC 8F010000 */ lw $at, ($t8)
|
|
/* 0EEF30 7F0BA400 00003025 */ move $a2, $zero
|
|
/* 0EEF34 7F0BA404 AEE10000 */ sw $at, ($s7)
|
|
/* 0EEF38 7F0BA408 8F090004 */ lw $t1, 4($t8)
|
|
/* 0EEF3C 7F0BA40C AEE90004 */ sw $t1, 4($s7)
|
|
/* 0EEF40 7F0BA410 8F010008 */ lw $at, 8($t8)
|
|
/* 0EEF44 7F0BA414 AEE10008 */ sw $at, 8($s7)
|
|
/* 0EEF48 7F0BA418 8CE50000 */ lw $a1, ($a3)
|
|
/* 0EEF4C 7F0BA41C 90AA0000 */ lbu $t2, ($a1)
|
|
/* 0EEF50 7F0BA420 1940001F */ blez $t2, .L7F0BA4A0
|
|
/* 0EEF54 7F0BA424 00002025 */ move $a0, $zero
|
|
.L7F0BA428:
|
|
/* 0EEF58 7F0BA428 27A30070 */ addiu $v1, $sp, 0x70
|
|
/* 0EEF5C 7F0BA42C 27A20064 */ addiu $v0, $sp, 0x64
|
|
.L7F0BA430:
|
|
/* 0EEF60 7F0BA430 00065880 */ sll $t3, $a2, 2
|
|
/* 0EEF64 7F0BA434 01665823 */ subu $t3, $t3, $a2
|
|
/* 0EEF68 7F0BA438 000B5880 */ sll $t3, $t3, 2
|
|
/* 0EEF6C 7F0BA43C 00AB6021 */ addu $t4, $a1, $t3
|
|
/* 0EEF70 7F0BA440 01846821 */ addu $t5, $t4, $a0
|
|
/* 0EEF74 7F0BA444 C5A00004 */ lwc1 $f0, 4($t5)
|
|
/* 0EEF78 7F0BA448 C4640000 */ lwc1 $f4, ($v1)
|
|
/* 0EEF7C 7F0BA44C 24840004 */ addiu $a0, $a0, 4
|
|
/* 0EEF80 7F0BA450 4604003C */ c.lt.s $f0, $f4
|
|
/* 0EEF84 7F0BA454 00000000 */ nop
|
|
/* 0EEF88 7F0BA458 45020003 */ bc1fl .L7F0BA468
|
|
/* 0EEF8C 7F0BA45C C4460000 */ lwc1 $f6, ($v0)
|
|
/* 0EEF90 7F0BA460 E4600000 */ swc1 $f0, ($v1)
|
|
/* 0EEF94 7F0BA464 C4460000 */ lwc1 $f6, ($v0)
|
|
.L7F0BA468:
|
|
/* 0EEF98 7F0BA468 24630004 */ addiu $v1, $v1, 4
|
|
/* 0EEF9C 7F0BA46C 4600303C */ c.lt.s $f6, $f0
|
|
/* 0EEFA0 7F0BA470 00000000 */ nop
|
|
/* 0EEFA4 7F0BA474 45020003 */ bc1fl .L7F0BA484
|
|
/* 0EEFA8 7F0BA478 24420004 */ addiu $v0, $v0, 4
|
|
/* 0EEFAC 7F0BA47C E4400000 */ swc1 $f0, ($v0)
|
|
/* 0EEFB0 7F0BA480 24420004 */ addiu $v0, $v0, 4
|
|
.L7F0BA484:
|
|
/* 0EEFB4 7F0BA484 1450FFEA */ bne $v0, $s0, .L7F0BA430
|
|
/* 0EEFB8 7F0BA488 8CE50000 */ lw $a1, ($a3)
|
|
/* 0EEFBC 7F0BA48C 90A20000 */ lbu $v0, ($a1)
|
|
/* 0EEFC0 7F0BA490 24C60001 */ addiu $a2, $a2, 1
|
|
/* 0EEFC4 7F0BA494 00C2082A */ slt $at, $a2, $v0
|
|
/* 0EEFC8 7F0BA498 5420FFE3 */ bnezl $at, .L7F0BA428
|
|
/* 0EEFCC 7F0BA49C 00002025 */ move $a0, $zero
|
|
.L7F0BA4A0:
|
|
/* 0EEFD0 7F0BA4A0 02C02025 */ move $a0, $s6
|
|
/* 0EEFD4 7F0BA4A4 02E02825 */ move $a1, $s7
|
|
/* 0EEFD8 7F0BA4A8 27A600A0 */ addiu $a2, $sp, 0xa0
|
|
/* 0EEFDC 7F0BA4AC 0FC2E89B */ jal bgIsBboxOverlapping
|
|
/* 0EEFE0 7F0BA4B0 27A70094 */ addiu $a3, $sp, 0x94
|
|
/* 0EEFE4 7F0BA4B4 1040001F */ beqz $v0, .L7F0BA534
|
|
/* 0EEFE8 7F0BA4B8 3C0E8008 */ lui $t6, %hi(g_BgPortals)
|
|
/* 0EEFEC 7F0BA4BC 8DCEFF80 */ lw $t6, %lo(g_BgPortals)($t6)
|
|
/* 0EEFF0 7F0BA4C0 00004025 */ move $t0, $zero
|
|
/* 0EEFF4 7F0BA4C4 0235082A */ slt $at, $s1, $s5
|
|
/* 0EEFF8 7F0BA4C8 01D23821 */ addu $a3, $t6, $s2
|
|
/* 0EEFFC 7F0BA4CC 90E20004 */ lbu $v0, 4($a3)
|
|
/* 0EF000 7F0BA4D0 16620003 */ bne $s3, $v0, .L7F0BA4E0
|
|
/* 0EF004 7F0BA4D4 00401825 */ move $v1, $v0
|
|
/* 0EF008 7F0BA4D8 10000001 */ b .L7F0BA4E0
|
|
/* 0EF00C 7F0BA4DC 90E30005 */ lbu $v1, 5($a3)
|
|
.L7F0BA4E0:
|
|
/* 0EF010 7F0BA4E0 1A200007 */ blez $s1, .L7F0BA500
|
|
/* 0EF014 7F0BA4E4 02801025 */ move $v0, $s4
|
|
.L7F0BA4E8:
|
|
/* 0EF018 7F0BA4E8 8C4F0000 */ lw $t7, ($v0)
|
|
/* 0EF01C 7F0BA4EC 106F0004 */ beq $v1, $t7, .L7F0BA500
|
|
/* 0EF020 7F0BA4F0 00000000 */ nop
|
|
/* 0EF024 7F0BA4F4 25080001 */ addiu $t0, $t0, 1
|
|
/* 0EF028 7F0BA4F8 1511FFFB */ bne $t0, $s1, .L7F0BA4E8
|
|
/* 0EF02C 7F0BA4FC 24420004 */ addiu $v0, $v0, 4
|
|
.L7F0BA500:
|
|
/* 0EF030 7F0BA500 1511000C */ bne $t0, $s1, .L7F0BA534
|
|
/* 0EF034 7F0BA504 00000000 */ nop
|
|
/* 0EF038 7F0BA508 10200004 */ beqz $at, .L7F0BA51C
|
|
/* 0EF03C 7F0BA50C 0011C880 */ sll $t9, $s1, 2
|
|
/* 0EF040 7F0BA510 0299C021 */ addu $t8, $s4, $t9
|
|
/* 0EF044 7F0BA514 AF030000 */ sw $v1, ($t8)
|
|
/* 0EF048 7F0BA518 26310001 */ addiu $s1, $s1, 1
|
|
.L7F0BA51C:
|
|
/* 0EF04C 7F0BA51C 0235082A */ slt $at, $s1, $s5
|
|
/* 0EF050 7F0BA520 14200004 */ bnez $at, .L7F0BA534
|
|
/* 0EF054 7F0BA524 00000000 */ nop
|
|
/* 0EF058 7F0BA528 8FA900C4 */ lw $t1, 0xc4($sp)
|
|
/* 0EF05C 7F0BA52C 10000018 */ b .L7F0BA590
|
|
/* 0EF060 7F0BA530 AD310000 */ sw $s1, ($t1)
|
|
.L7F0BA534:
|
|
/* 0EF064 7F0BA534 3C028008 */ lui $v0, %hi(g_BgPortals)
|
|
/* 0EF068 7F0BA538 8C42FF80 */ lw $v0, %lo(g_BgPortals)($v0)
|
|
/* 0EF06C 7F0BA53C 00523821 */ addu $a3, $v0, $s2
|
|
/* 0EF070 7F0BA540 8CEA0008 */ lw $t2, 8($a3)
|
|
.L7F0BA544:
|
|
/* 0EF074 7F0BA544 26520008 */ addiu $s2, $s2, 8
|
|
/* 0EF078 7F0BA548 24E70008 */ addiu $a3, $a3, 8
|
|
/* 0EF07C 7F0BA54C 5540FF9A */ bnezl $t2, .L7F0BA3B8
|
|
/* 0EF080 7F0BA550 90EA0006 */ lbu $t2, 6($a3)
|
|
/* 0EF084 7F0BA554 8FA8008C */ lw $t0, 0x8c($sp)
|
|
.L7F0BA558:
|
|
/* 0EF088 7F0BA558 8FAB005C */ lw $t3, 0x5c($sp)
|
|
/* 0EF08C 7F0BA55C 8FAD007C */ lw $t5, 0x7c($sp)
|
|
/* 0EF090 7F0BA560 25080001 */ addiu $t0, $t0, 1
|
|
/* 0EF094 7F0BA564 256C0004 */ addiu $t4, $t3, 4
|
|
/* 0EF098 7F0BA568 010D082A */ slt $at, $t0, $t5
|
|
/* 0EF09C 7F0BA56C 1420FF8A */ bnez $at, .L7F0BA398
|
|
/* 0EF0A0 7F0BA570 AFAC005C */ sw $t4, 0x5c($sp)
|
|
.L7F0BA574:
|
|
/* 0EF0A4 7F0BA574 8FAE007C */ lw $t6, 0x7c($sp)
|
|
/* 0EF0A8 7F0BA578 522E0004 */ beql $s1, $t6, .L7F0BA58C
|
|
/* 0EF0AC 7F0BA57C 8FAF00C4 */ lw $t7, 0xc4($sp)
|
|
/* 0EF0B0 7F0BA580 1000FF7E */ b .L7F0BA37C
|
|
/* 0EF0B4 7F0BA584 AFB1007C */ sw $s1, 0x7c($sp)
|
|
/* 0EF0B8 7F0BA588 8FAF00C4 */ lw $t7, 0xc4($sp)
|
|
.L7F0BA58C:
|
|
/* 0EF0BC 7F0BA58C ADF10000 */ sw $s1, ($t7)
|
|
.L7F0BA590:
|
|
/* 0EF0C0 7F0BA590 8FBF003C */ lw $ra, 0x3c($sp)
|
|
/* 0EF0C4 7F0BA594 8FB00018 */ lw $s0, 0x18($sp)
|
|
/* 0EF0C8 7F0BA598 8FB1001C */ lw $s1, 0x1c($sp)
|
|
/* 0EF0CC 7F0BA59C 8FB20020 */ lw $s2, 0x20($sp)
|
|
/* 0EF0D0 7F0BA5A0 8FB30024 */ lw $s3, 0x24($sp)
|
|
/* 0EF0D4 7F0BA5A4 8FB40028 */ lw $s4, 0x28($sp)
|
|
/* 0EF0D8 7F0BA5A8 8FB5002C */ lw $s5, 0x2c($sp)
|
|
/* 0EF0DC 7F0BA5AC 8FB60030 */ lw $s6, 0x30($sp)
|
|
/* 0EF0E0 7F0BA5B0 8FB70034 */ lw $s7, 0x34($sp)
|
|
/* 0EF0E4 7F0BA5B4 8FBE0038 */ lw $fp, 0x38($sp)
|
|
/* 0EF0E8 7F0BA5B8 03E00008 */ jr $ra
|
|
/* 0EF0EC 7F0BA5BC 27BD00B8 */ addiu $sp, $sp, 0xb8
|
|
)
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|