Match sub_08018738

This commit is contained in:
Tal Hayon 2022-05-09 17:39:00 +03:00
parent dba74f4c92
commit 9730543780
4 changed files with 17 additions and 34 deletions

View File

@ -317,29 +317,3 @@ _0801872A:
pop {r4, r5, r6, pc} pop {r4, r5, r6, pc}
.align 2, 0 .align 2, 0
_08018734: .4byte gUnk_080C9CBC _08018734: .4byte gUnk_080C9CBC
thumb_func_start sub_08018738
sub_08018738: @ 0x08018738
push {r4, lr}
adds r2, r0, #0
adds r4, r1, #0
lsls r0, r4, #2
adds r0, r0, r4
lsls r0, r0, #2
ldr r1, _08018764 @ =gUnk_080FE320
adds r0, r0, r1
ldr r1, _08018768 @ =gRoomControls
ldrh r0, [r0, #2]
ldrh r1, [r1, #4]
cmp r0, r1
bne _08018760
adds r0, r2, #0
bl CheckKinstoneFused
adds r1, r0, #0
adds r0, r4, #0
bl sub_0801876C
_08018760:
pop {r4, pc}
.align 2, 0
_08018764: .4byte gUnk_080FE320
_08018768: .4byte gRoomControls

View File

@ -20,8 +20,8 @@ extern Input gInput; /**< Input instance. */
typedef struct { typedef struct {
u8 evt_type; u8 evt_type;
u8 entity_idx; u8 entity_idx;
u8 _2; u8 area;
u8 _3; u8 room;
u16 _4; u16 _4;
u16 _6; u16 _6;
u16 x; u16 x;

View File

@ -2682,22 +2682,22 @@ void sub_08054968(void) {
void sub_08054974(s32 param_1, s32 param_2) { void sub_08054974(s32 param_1, s32 param_2) {
struct_080FE320* ptr = &gUnk_080FE320[param_1]; struct_080FE320* ptr = &gUnk_080FE320[param_1];
SetCurrentRoomPropertyList(ptr->_2, ptr->_3); SetCurrentRoomPropertyList(ptr->area, ptr->room);
gRoomControls.area = ptr->_2; gRoomControls.area = ptr->area;
gRoomControls.room = ptr->_3; gRoomControls.room = ptr->room;
LoadGfxGroups(); LoadGfxGroups();
gArea.localFlagOffset = GetFlagBankOffset(gRoomControls.area); gArea.localFlagOffset = GetFlagBankOffset(gRoomControls.area);
if (param_2 != 0) { if (param_2 != 0) {
LoadAuxiliaryRoom(ptr->_2, ptr->_3); LoadAuxiliaryRoom(ptr->area, ptr->room);
} else { } else {
sub_08052FF4(ptr->_2, ptr->_3); sub_08052FF4(ptr->area, ptr->room);
InitializeCamera(); InitializeCamera();
gUpdateVisibleTiles = 1; gUpdateVisibleTiles = 1;
} }
gScreen.lcd.displayControl &= 0x1fff; gScreen.lcd.displayControl &= 0x1fff;
gRoomControls.scroll_x = gRoomControls.origin_x + ptr->_4; gRoomControls.scroll_x = gRoomControls.origin_x + ptr->_4;
gRoomControls.scroll_y = gRoomControls.origin_y + ptr->_6; gRoomControls.scroll_y = gRoomControls.origin_y + ptr->_6;
if (ptr->_2 == 2) { if (ptr->area == AREA_HYRULE_TOWN) {
TryLoadPrologueHyruleTown(); TryLoadPrologueHyruleTown();
} }
sub_08018710(gUI.field_0x3); sub_08018710(gUI.field_0x3);

View File

@ -22,6 +22,15 @@ void sub_08018BB4(int);
void sub_08018A58(int); void sub_08018A58(int);
void sub_08018B50(int); void sub_08018B50(int);
void sub_080189EC(int); void sub_080189EC(int);
void sub_0801876C(int, int);
void sub_08018738(u32 param_1, int param_2) {
struct_080FE320* ptr = &gUnk_080FE320[param_2];
if (ptr->area == gRoomControls.area && ptr->room == gRoomControls.room) {
sub_0801876C(param_2, CheckKinstoneFused(param_1));
}
}
void sub_0801876C(int param_1, int param_2) { void sub_0801876C(int param_1, int param_2) {
Entity* roomEnt; Entity* roomEnt;