through sub_80C1A94
This commit is contained in:
@@ -5,310 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_80C195C
|
||||
sub_80C195C: @ 80C195C
|
||||
push {r4-r6,lr}
|
||||
adds r6, r2, 0
|
||||
lsls r1, 24
|
||||
lsrs r5, r1, 24
|
||||
ldr r4, _080C19E0 @ =gUnknown_20399DC
|
||||
ldr r0, _080C19E4 @ =0x00003e28
|
||||
bl AllocZeroed
|
||||
str r0, [r4]
|
||||
bl sub_80C3580
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0xB8
|
||||
bne _080C197C
|
||||
movs r0, 0xBC
|
||||
_080C197C:
|
||||
bl sub_80F8544
|
||||
ldr r1, [r4]
|
||||
movs r2, 0xF5
|
||||
lsls r2, 6
|
||||
adds r1, r2
|
||||
str r0, [r1]
|
||||
cmp r0, 0
|
||||
bne _080C199E
|
||||
movs r0, 0x8A
|
||||
bl sub_80F8544
|
||||
ldr r1, [r4]
|
||||
movs r3, 0xF5
|
||||
lsls r3, 6
|
||||
adds r1, r3
|
||||
str r0, [r1]
|
||||
_080C199E:
|
||||
ldr r0, [r4]
|
||||
ldr r1, _080C19E8 @ =0x00003d48
|
||||
adds r0, r1
|
||||
movs r2, 0
|
||||
strb r2, [r0]
|
||||
ldr r0, [r4]
|
||||
ldr r3, _080C19EC @ =0x00003d4a
|
||||
adds r0, r3
|
||||
strb r2, [r0]
|
||||
ldr r0, [r4]
|
||||
subs r3, 0x6
|
||||
adds r1, r0, r3
|
||||
str r6, [r1]
|
||||
ldr r1, _080C19F0 @ =0x00003e14
|
||||
adds r0, r1
|
||||
strh r2, [r0]
|
||||
movs r0, 0
|
||||
bl sub_80C4AAC
|
||||
bl sub_80C4BE4
|
||||
bl sub_80C0CA0
|
||||
ldr r1, _080C19F4 @ =gTasks
|
||||
lsls r0, r5, 2
|
||||
adds r0, r5
|
||||
lsls r0, 3
|
||||
adds r0, r1
|
||||
ldr r1, _080C19F8 @ =sub_80C1A94
|
||||
str r1, [r0]
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080C19E0: .4byte gUnknown_20399DC
|
||||
_080C19E4: .4byte 0x00003e28
|
||||
_080C19E8: .4byte 0x00003d48
|
||||
_080C19EC: .4byte 0x00003d4a
|
||||
_080C19F0: .4byte 0x00003e14
|
||||
_080C19F4: .4byte gTasks
|
||||
_080C19F8: .4byte sub_80C1A94
|
||||
thumb_func_end sub_80C195C
|
||||
|
||||
thumb_func_start sub_80C19FC
|
||||
sub_80C19FC: @ 80C19FC
|
||||
push {lr}
|
||||
ldr r0, _080C1A18 @ =gUnknown_20399DC
|
||||
ldr r1, [r0]
|
||||
ldr r2, _080C1A1C @ =0x00003d4a
|
||||
adds r0, r1, r2
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x1
|
||||
beq _080C1A3A
|
||||
cmp r0, 0x1
|
||||
bgt _080C1A20
|
||||
cmp r0, 0
|
||||
beq _080C1A2A
|
||||
b _080C1A72
|
||||
.align 2, 0
|
||||
_080C1A18: .4byte gUnknown_20399DC
|
||||
_080C1A1C: .4byte 0x00003d4a
|
||||
_080C1A20:
|
||||
cmp r0, 0x2
|
||||
beq _080C1A50
|
||||
cmp r0, 0x3
|
||||
beq _080C1A5E
|
||||
b _080C1A72
|
||||
_080C1A2A:
|
||||
movs r2, 0xF5
|
||||
lsls r2, 6
|
||||
adds r0, r1, r2
|
||||
ldr r0, [r0]
|
||||
ldr r0, [r0, 0x4]
|
||||
bl LZ77UnCompWram
|
||||
b _080C1A76
|
||||
_080C1A3A:
|
||||
movs r2, 0xF5
|
||||
lsls r2, 6
|
||||
adds r0, r1, r2
|
||||
ldr r0, [r0]
|
||||
ldr r0, [r0, 0x8]
|
||||
movs r2, 0xE1
|
||||
lsls r2, 6
|
||||
adds r1, r2
|
||||
bl LZ77UnCompWram
|
||||
b _080C1A76
|
||||
_080C1A50:
|
||||
movs r2, 0xE1
|
||||
lsls r2, 6
|
||||
movs r0, 0x2
|
||||
movs r3, 0
|
||||
bl LoadBgTiles
|
||||
b _080C1A76
|
||||
_080C1A5E:
|
||||
movs r2, 0xF5
|
||||
lsls r2, 6
|
||||
adds r0, r1, r2
|
||||
ldr r0, [r0]
|
||||
ldr r0, [r0, 0xC]
|
||||
movs r1, 0xD0
|
||||
movs r2, 0x60
|
||||
bl LoadPalette
|
||||
b _080C1A76
|
||||
_080C1A72:
|
||||
movs r0, 0x1
|
||||
b _080C1A86
|
||||
_080C1A76:
|
||||
ldr r0, _080C1A8C @ =gUnknown_20399DC
|
||||
ldr r1, [r0]
|
||||
ldr r0, _080C1A90 @ =0x00003d4a
|
||||
adds r1, r0
|
||||
ldrb r0, [r1]
|
||||
adds r0, 0x1
|
||||
strb r0, [r1]
|
||||
movs r0, 0
|
||||
_080C1A86:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080C1A8C: .4byte gUnknown_20399DC
|
||||
_080C1A90: .4byte 0x00003d4a
|
||||
thumb_func_end sub_80C19FC
|
||||
|
||||
thumb_func_start sub_80C1A94
|
||||
sub_80C1A94: @ 80C1A94
|
||||
push {r4,lr}
|
||||
lsls r0, 24
|
||||
lsrs r2, r0, 24
|
||||
ldr r1, _080C1AB8 @ =gUnknown_20399DC
|
||||
ldr r0, [r1]
|
||||
ldr r3, _080C1ABC @ =0x00003d48
|
||||
adds r0, r3
|
||||
ldrb r0, [r0]
|
||||
adds r4, r1, 0
|
||||
cmp r0, 0x9
|
||||
bls _080C1AAC
|
||||
b _080C1BD0
|
||||
_080C1AAC:
|
||||
lsls r0, 2
|
||||
ldr r1, _080C1AC0 @ =_080C1AC4
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_080C1AB8: .4byte gUnknown_20399DC
|
||||
_080C1ABC: .4byte 0x00003d48
|
||||
_080C1AC0: .4byte _080C1AC4
|
||||
.align 2, 0
|
||||
_080C1AC4:
|
||||
.4byte _080C1AEC
|
||||
.4byte _080C1B04
|
||||
.4byte _080C1B12
|
||||
.4byte _080C1B34
|
||||
.4byte _080C1B54
|
||||
.4byte _080C1B5C
|
||||
.4byte _080C1B74
|
||||
.4byte _080C1B84
|
||||
.4byte _080C1B9C
|
||||
.4byte _080C1BBC
|
||||
_080C1AEC:
|
||||
bl sub_80C08E0
|
||||
ldr r0, _080C1AFC @ =gUnknown_20399DC
|
||||
ldr r1, [r0]
|
||||
ldr r0, _080C1B00 @ =0x00003d48
|
||||
adds r1, r0
|
||||
b _080C1BCA
|
||||
.align 2, 0
|
||||
_080C1AFC: .4byte gUnknown_20399DC
|
||||
_080C1B00: .4byte 0x00003d48
|
||||
_080C1B04:
|
||||
bl sub_80C19FC
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _080C1BD0
|
||||
b _080C1BC2
|
||||
_080C1B12:
|
||||
bl sub_80C1E94
|
||||
ldr r0, _080C1B28 @ =gUnknown_8418E9E
|
||||
bl sub_80C4E74
|
||||
ldr r0, _080C1B2C @ =gUnknown_20399DC
|
||||
ldr r1, [r0]
|
||||
ldr r0, _080C1B30 @ =0x00003d48
|
||||
adds r1, r0
|
||||
b _080C1BCA
|
||||
.align 2, 0
|
||||
_080C1B28: .4byte gUnknown_8418E9E
|
||||
_080C1B2C: .4byte gUnknown_20399DC
|
||||
_080C1B30: .4byte 0x00003d48
|
||||
_080C1B34:
|
||||
ldr r1, [r4]
|
||||
movs r3, 0xE1
|
||||
lsls r3, 6
|
||||
adds r1, r3
|
||||
movs r0, 0x2
|
||||
bl sub_80C1E78
|
||||
movs r0, 0x2
|
||||
bl CopyBgTilemapBufferToVram
|
||||
ldr r1, [r4]
|
||||
ldr r0, _080C1B50 @ =0x00003d48
|
||||
adds r1, r0
|
||||
b _080C1BCA
|
||||
.align 2, 0
|
||||
_080C1B50: .4byte 0x00003d48
|
||||
_080C1B54:
|
||||
movs r0, 0x2
|
||||
bl ShowBg
|
||||
b _080C1BC2
|
||||
_080C1B5C:
|
||||
bl sub_80C08F4
|
||||
ldr r0, _080C1B6C @ =gUnknown_20399DC
|
||||
ldr r1, [r0]
|
||||
ldr r0, _080C1B70 @ =0x00003d48
|
||||
adds r1, r0
|
||||
b _080C1BCA
|
||||
.align 2, 0
|
||||
_080C1B6C: .4byte gUnknown_20399DC
|
||||
_080C1B70: .4byte 0x00003d48
|
||||
_080C1B74:
|
||||
movs r0, 0
|
||||
bl sub_80C1F80
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _080C1BD0
|
||||
b _080C1BC2
|
||||
_080C1B84:
|
||||
ldr r0, _080C1B94 @ =gTasks
|
||||
lsls r1, r2, 2
|
||||
adds r1, r2
|
||||
lsls r1, 3
|
||||
adds r1, r0
|
||||
ldr r0, _080C1B98 @ =sub_80C1BE0
|
||||
str r0, [r1]
|
||||
b _080C1BD0
|
||||
.align 2, 0
|
||||
_080C1B94: .4byte gTasks
|
||||
_080C1B98: .4byte sub_80C1BE0
|
||||
_080C1B9C:
|
||||
movs r0, 0x1
|
||||
bl sub_80C1F80
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _080C1BD0
|
||||
ldr r0, _080C1BB4 @ =gUnknown_20399DC
|
||||
ldr r1, [r0]
|
||||
ldr r0, _080C1BB8 @ =0x00003d48
|
||||
adds r1, r0
|
||||
b _080C1BCA
|
||||
.align 2, 0
|
||||
_080C1BB4: .4byte gUnknown_20399DC
|
||||
_080C1BB8: .4byte 0x00003d48
|
||||
_080C1BBC:
|
||||
adds r0, r2, 0
|
||||
bl sub_80C1E14
|
||||
_080C1BC2:
|
||||
ldr r0, _080C1BD8 @ =gUnknown_20399DC
|
||||
ldr r1, [r0]
|
||||
ldr r3, _080C1BDC @ =0x00003d48
|
||||
adds r1, r3
|
||||
_080C1BCA:
|
||||
ldrb r0, [r1]
|
||||
adds r0, 0x1
|
||||
strb r0, [r1]
|
||||
_080C1BD0:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080C1BD8: .4byte gUnknown_20399DC
|
||||
_080C1BDC: .4byte 0x00003d48
|
||||
thumb_func_end sub_80C1A94
|
||||
|
||||
thumb_func_start sub_80C1BE0
|
||||
sub_80C1BE0: @ 80C1BE0
|
||||
push {r4-r7,lr}
|
||||
|
||||
@@ -49,5 +49,6 @@ void sub_80F85BC(u16 a0);
|
||||
u16 sub_80F856C(u8 id);
|
||||
bool8 sub_80F8110(u8 mapsec, bool8 forceFirstTime);
|
||||
bool32 sub_80F83B0(void);
|
||||
const struct MapPreviewScreen * sub_80F8544(u8 mapsec);
|
||||
|
||||
#endif //GUARD_MAP_PREVIEW_SCREEN_H
|
||||
|
||||
@@ -1008,6 +1008,7 @@ extern const u8 gUnknown_8418EB5[];
|
||||
extern const u8 gUnknown_8418E8B[];
|
||||
extern const u8 gUnknown_8418E8D[];
|
||||
extern const u8 gUnknown_8418E95[];
|
||||
extern const u8 gUnknown_8418E9E[];
|
||||
extern const u8 gUnknown_8418EA7[];
|
||||
extern const u8 gUnknown_8418EB0[];
|
||||
extern const u8 gUnknown_8418EBC[];
|
||||
|
||||
+115
-1
@@ -13,6 +13,7 @@
|
||||
#include "menu.h"
|
||||
#include "string_util.h"
|
||||
#include "strings.h"
|
||||
#include "map_preview_screen.h"
|
||||
#include "constants/flags.h"
|
||||
#include "constants/songs.h"
|
||||
#include "constants/region_map.h"
|
||||
@@ -84,9 +85,23 @@ struct UnkStruct_83F1B3C
|
||||
const u8 *field_8;
|
||||
};
|
||||
|
||||
struct UnkStruct_20399DC
|
||||
{
|
||||
u16 field_0000[0x1C20];
|
||||
u16 field_3840[0x280];
|
||||
const struct MapPreviewScreen * field_3D40;
|
||||
TaskFunc field_3D44;
|
||||
u8 field_3D48;
|
||||
u8 field_3D49;
|
||||
u8 field_3D4A;
|
||||
u8 filler_3D4B[0xC9];
|
||||
u16 field_3E14;
|
||||
u8 filler_3E16[0x12];
|
||||
}; // size = 0x3E28
|
||||
|
||||
EWRAM_DATA struct UnkStruct_20399D4 * gUnknown_20399D4 = NULL;
|
||||
EWRAM_DATA struct UnkStruct_20399D8 * gUnknown_20399D8 = NULL;
|
||||
EWRAM_DATA void * gUnknown_20399DC = NULL;
|
||||
EWRAM_DATA struct UnkStruct_20399DC * gUnknown_20399DC = NULL;
|
||||
EWRAM_DATA void * gUnknown_20399E0 = NULL;
|
||||
EWRAM_DATA void * gUnknown_20399E4 = NULL;
|
||||
EWRAM_DATA void * gUnknown_20399E8 = NULL;
|
||||
@@ -127,6 +142,12 @@ bool8 sub_80C16D0(void);
|
||||
void sub_80C1754(u8 a0, u16 a1, u16 a2);
|
||||
void sub_80C176C(u8 a0, u16 a1, u16 a2);
|
||||
void sub_80C1880(void);
|
||||
void sub_80C1A94(u8 taskId);
|
||||
void sub_80C1BE0(u8 taskId);
|
||||
void sub_80C1E14(u8 taskId);
|
||||
void sub_80C1E94(void);
|
||||
void sub_80C1E78(u8 bgId, const u16 * tilemap);
|
||||
bool8 sub_80C1F80(u8 a0);
|
||||
void sub_80C4AAC(u8 a0);
|
||||
void sub_80C4BE4(void);
|
||||
void sub_80C4C2C(u8 a0, u16 a1, u16 a2);
|
||||
@@ -1198,3 +1219,96 @@ const u8 *sub_80C1920(u16 a0)
|
||||
}
|
||||
return gUnknown_8418EC3;
|
||||
}
|
||||
|
||||
void sub_80C195C(u8 a0, u8 taskId, TaskFunc taskFunc)
|
||||
{
|
||||
u8 r0;
|
||||
gUnknown_20399DC = AllocZeroed(sizeof(struct UnkStruct_20399DC));
|
||||
r0 = sub_80C3580();
|
||||
if (r0 == MAPSEC_TANOBY_CHAMBERS)
|
||||
r0 = MAPSEC_MONEAN_CHAMBER;
|
||||
gUnknown_20399DC->field_3D40 = sub_80F8544(r0);
|
||||
if (gUnknown_20399DC->field_3D40 == NULL)
|
||||
gUnknown_20399DC->field_3D40 = sub_80F8544(MAPSEC_ROCK_TUNNEL);
|
||||
gUnknown_20399DC->field_3D48 = 0;
|
||||
gUnknown_20399DC->field_3D4A = 0;
|
||||
gUnknown_20399DC->field_3D44 = taskFunc;
|
||||
gUnknown_20399DC->field_3E14 = 0;
|
||||
sub_80C4AAC(0);
|
||||
sub_80C4BE4();
|
||||
sub_80C0CA0();
|
||||
gTasks[taskId].func = sub_80C1A94;
|
||||
}
|
||||
|
||||
bool8 sub_80C19FC(void)
|
||||
{
|
||||
switch (gUnknown_20399DC->field_3D4A)
|
||||
{
|
||||
case 0:
|
||||
LZ77UnCompWram(gUnknown_20399DC->field_3D40->tilesptr, gUnknown_20399DC->field_0000);
|
||||
break;
|
||||
case 1:
|
||||
LZ77UnCompWram(gUnknown_20399DC->field_3D40->tilemapptr, gUnknown_20399DC->field_3840);
|
||||
break;
|
||||
case 2:
|
||||
LoadBgTiles(2, gUnknown_20399DC->field_0000, 0x3840, 0x000);
|
||||
break;
|
||||
case 3:
|
||||
LoadPalette(gUnknown_20399DC->field_3D40->palptr, 0xD0, 0x60);
|
||||
break;
|
||||
default:
|
||||
return TRUE;
|
||||
}
|
||||
gUnknown_20399DC->field_3D4A++;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_80C1A94(u8 taskId)
|
||||
{
|
||||
switch (gUnknown_20399DC->field_3D48)
|
||||
{
|
||||
case 0:
|
||||
sub_80C08E0();
|
||||
gUnknown_20399DC->field_3D48++;
|
||||
break;
|
||||
case 1:
|
||||
if (sub_80C19FC() == TRUE)
|
||||
gUnknown_20399DC->field_3D48++;
|
||||
break;
|
||||
case 2:
|
||||
sub_80C1E94();
|
||||
sub_80C4E74(gUnknown_8418E9E);
|
||||
gUnknown_20399DC->field_3D48++;
|
||||
break;
|
||||
case 3:
|
||||
sub_80C1E78(2, gUnknown_20399DC->field_3840);
|
||||
CopyBgTilemapBufferToVram(2);
|
||||
gUnknown_20399DC->field_3D48++;
|
||||
break;
|
||||
case 4:
|
||||
ShowBg(2);
|
||||
gUnknown_20399DC->field_3D48++;
|
||||
break;
|
||||
case 5:
|
||||
sub_80C08F4();
|
||||
gUnknown_20399DC->field_3D48++;
|
||||
break;
|
||||
case 6:
|
||||
if (sub_80C1F80(0) == TRUE)
|
||||
gUnknown_20399DC->field_3D48++;
|
||||
break;
|
||||
case 7:
|
||||
gTasks[taskId].func = sub_80C1BE0;
|
||||
break;
|
||||
case 8:
|
||||
if (sub_80C1F80(1) == TRUE)
|
||||
{
|
||||
gUnknown_20399DC->field_3D48++;
|
||||
}
|
||||
break;
|
||||
case 9:
|
||||
sub_80C1E14(taskId);
|
||||
gUnknown_20399DC->field_3D48++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user