through sub_815DA3C
This commit is contained in:
@@ -5,136 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_815D96C
|
||||
sub_815D96C: @ 815D96C
|
||||
push {r4-r6,lr}
|
||||
movs r6, 0
|
||||
_0815D970:
|
||||
bl Random
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
movs r1, 0x64
|
||||
bl __umodsi3
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
cmp r0, 0x59
|
||||
bls _0815D994
|
||||
lsls r0, r6, 3
|
||||
subs r0, r6
|
||||
lsls r0, 2
|
||||
ldr r1, _0815D990 @ =gUnknown_8479D34
|
||||
b _0815D9B0
|
||||
.align 2, 0
|
||||
_0815D990: .4byte gUnknown_8479D34 + 4
|
||||
_0815D994:
|
||||
cmp r0, 0x3B
|
||||
bls _0815D9A8
|
||||
lsls r0, r6, 3
|
||||
subs r0, r6
|
||||
lsls r0, 2
|
||||
ldr r1, _0815D9A4 @ =gUnknown_8479D34 + 12
|
||||
b _0815D9B0
|
||||
.align 2, 0
|
||||
_0815D9A4: .4byte gUnknown_8479D34 + 12
|
||||
_0815D9A8:
|
||||
lsls r0, r6, 3
|
||||
subs r0, r6
|
||||
lsls r0, 2
|
||||
ldr r1, _0815D9E4 @ =gUnknown_8479D34 + 20
|
||||
_0815D9B0:
|
||||
adds r5, r0, r1
|
||||
movs r4, 0
|
||||
adds r6, 0x1
|
||||
_0815D9B6:
|
||||
adds r1, r5, r4
|
||||
ldrb r0, [r1]
|
||||
cmp r0, 0xFF
|
||||
beq _0815D9CC
|
||||
movs r2, 0xFA
|
||||
lsls r2, 2
|
||||
adds r0, r2, 0
|
||||
ldrb r1, [r1]
|
||||
adds r0, r1
|
||||
bl FlagClear
|
||||
_0815D9CC:
|
||||
adds r0, r4, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
cmp r4, 0x7
|
||||
bls _0815D9B6
|
||||
lsls r0, r6, 24
|
||||
lsrs r6, r0, 24
|
||||
cmp r6, 0xE
|
||||
bls _0815D970
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0815D9E4: .4byte gUnknown_8479D34 + 20
|
||||
thumb_func_end sub_815D96C
|
||||
|
||||
thumb_func_start sub_815D9E8
|
||||
sub_815D9E8: @ 815D9E8
|
||||
push {lr}
|
||||
bl sub_815DC8C
|
||||
ldr r1, _0815DA08 @ =gUnknown_847A230
|
||||
ldr r0, _0815DA0C @ =gSpecialVar_0x8004
|
||||
ldrh r0, [r0]
|
||||
lsls r0, 2
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
bl _call_via_r0
|
||||
bl sub_815DD2C
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0815DA08: .4byte gUnknown_847A230
|
||||
_0815DA0C: .4byte gSpecialVar_0x8004
|
||||
thumb_func_end sub_815D9E8
|
||||
|
||||
thumb_func_start sub_815DA10
|
||||
sub_815DA10: @ 815DA10
|
||||
ldr r1, _0815DA20 @ =gFacilityClassToTrainerClass
|
||||
ldr r0, _0815DA24 @ =gUnknown_203F45C
|
||||
ldr r0, [r0]
|
||||
adds r0, 0x3D
|
||||
ldrb r0, [r0]
|
||||
adds r0, r1
|
||||
ldrb r0, [r0]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0815DA20: .4byte gFacilityClassToTrainerClass
|
||||
_0815DA24: .4byte gUnknown_203F45C
|
||||
thumb_func_end sub_815DA10
|
||||
|
||||
thumb_func_start sub_815DA28
|
||||
sub_815DA28: @ 815DA28
|
||||
push {lr}
|
||||
ldr r1, _0815DA38 @ =gUnknown_203F45C
|
||||
ldr r1, [r1]
|
||||
movs r2, 0xB
|
||||
bl StringCopyN
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0815DA38: .4byte gUnknown_203F45C
|
||||
thumb_func_end sub_815DA28
|
||||
|
||||
thumb_func_start sub_815DA3C
|
||||
sub_815DA3C: @ 815DA3C
|
||||
ldr r1, _0815DA4C @ =gFacilityClassToPicIndex
|
||||
ldr r0, _0815DA50 @ =gUnknown_203F45C
|
||||
ldr r0, [r0]
|
||||
adds r0, 0x3D
|
||||
ldrb r0, [r0]
|
||||
adds r0, r1
|
||||
ldrb r0, [r0]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0815DA4C: .4byte gFacilityClassToPicIndex
|
||||
_0815DA50: .4byte gUnknown_203F45C
|
||||
thumb_func_end sub_815DA3C
|
||||
|
||||
thumb_func_start sub_815DA54
|
||||
sub_815DA54: @ 815DA54
|
||||
push {r4-r7,lr}
|
||||
|
||||
+21
-1
@@ -286,7 +286,27 @@ gUnknown_847A22C:: @ 847A22C
|
||||
.incbin "baserom.gba", 0x47A22C, 0x4
|
||||
|
||||
gUnknown_847A230:: @ 847A230
|
||||
.incbin "baserom.gba", 0x47A230, 0x54
|
||||
.4byte sub_815DD44
|
||||
.4byte sub_815DF54
|
||||
.4byte sub_815E160
|
||||
.4byte sub_815E1C0
|
||||
.4byte sub_815E1F0
|
||||
.4byte sub_815E218
|
||||
.4byte sub_815E28C
|
||||
.4byte sub_815E394
|
||||
.4byte sub_815E408
|
||||
.4byte sub_815E4B0
|
||||
.4byte sub_815E56C
|
||||
.4byte sub_815E5C4
|
||||
.4byte sub_815E5F0
|
||||
.4byte sub_815E658
|
||||
.4byte sub_815E720
|
||||
.4byte sub_815E88C
|
||||
.4byte sub_815E8B4
|
||||
.4byte sub_815E8CC
|
||||
.4byte sub_815E908
|
||||
.4byte sub_815E948
|
||||
.4byte sub_815E9C8
|
||||
|
||||
gUnknown_847A284:: @ 847A284
|
||||
.incbin "baserom.gba", 0x47A284, 0x30
|
||||
|
||||
+89
-2
@@ -3,7 +3,9 @@
|
||||
#include "constants/vars.h"
|
||||
#include "malloc.h"
|
||||
#include "save.h"
|
||||
#include "string_util.h"
|
||||
#include "event_data.h"
|
||||
#include "random.h"
|
||||
#include "cereader_tool.h"
|
||||
|
||||
struct UnkStruct_8479D34
|
||||
@@ -16,9 +18,49 @@ struct UnkStruct_8479D34
|
||||
u8 flags3[8];
|
||||
};
|
||||
|
||||
extern const struct UnkStruct_8479D34 gUnknown_8479D34[15];
|
||||
struct UnkStruct_203F458
|
||||
{
|
||||
/* 0x0000 */ u8 filler_0000[0x1F0C];
|
||||
};
|
||||
|
||||
struct UnkStruct_203F45C
|
||||
{
|
||||
/* 0x00 */ u8 unk_00[11];
|
||||
/* 0x0B */ u8 filler_0B[49];
|
||||
/* 0x3C */ u8 unk_3C;
|
||||
/* 0x3D */ u8 unk_3D;
|
||||
};
|
||||
|
||||
EWRAM_DATA struct UnkStruct_203F458 * gUnknown_203F458 = NULL;
|
||||
EWRAM_DATA struct UnkStruct_203F45C * gUnknown_203F45C = NULL;
|
||||
|
||||
void sub_815D96C(void);
|
||||
void sub_815DC8C(void); // setup
|
||||
void sub_815DD2C(void); // teardown
|
||||
void sub_815DD44(void);
|
||||
void sub_815DF54(void);
|
||||
void sub_815E160(void);
|
||||
void sub_815E1C0(void);
|
||||
void sub_815E1F0(void);
|
||||
void sub_815E218(void);
|
||||
void sub_815E28C(void);
|
||||
void sub_815E394(void);
|
||||
void sub_815E408(void);
|
||||
void sub_815E4B0(void);
|
||||
void sub_815E56C(void);
|
||||
void sub_815E5C4(void);
|
||||
void sub_815E5F0(void);
|
||||
void sub_815E658(void);
|
||||
void sub_815E720(void);
|
||||
void sub_815E88C(void);
|
||||
void sub_815E8B4(void);
|
||||
void sub_815E8CC(void);
|
||||
void sub_815E908(void);
|
||||
void sub_815E948(void);
|
||||
void sub_815E9C8(void);
|
||||
|
||||
extern const struct UnkStruct_8479D34 gUnknown_8479D34[15];
|
||||
extern void (*const gUnknown_847A230[])(void);
|
||||
|
||||
bool32 sub_815D7BC(void * dest, void * buffer)
|
||||
{
|
||||
@@ -78,7 +120,7 @@ void sub_815D8C8(void)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_815D8F8(void)
|
||||
void sub_815D8F8(void) // fakematching
|
||||
{
|
||||
u8 i;
|
||||
register u32 found_map asm("r4") = 0xFF;
|
||||
@@ -97,3 +139,48 @@ void sub_815D8F8(void)
|
||||
sub_815D96C();
|
||||
}
|
||||
}
|
||||
|
||||
void sub_815D96C(void)
|
||||
{
|
||||
u8 i, j;
|
||||
const u8 * flags;
|
||||
u16 rval;
|
||||
|
||||
for (i = 0; i < 15; i++)
|
||||
{
|
||||
rval = Random() % 100;
|
||||
if (rval >= 90)
|
||||
flags = gUnknown_8479D34[i].flags1;
|
||||
else if (rval >= 60)
|
||||
flags = gUnknown_8479D34[i].flags2;
|
||||
else
|
||||
flags = gUnknown_8479D34[i].flags3;
|
||||
for (j = 0; j < 8; j++)
|
||||
{
|
||||
if (flags[j] != 0xFF)
|
||||
FlagClear(FLAG_TRAINER_TOWER_START + flags[j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_815D9E8(void)
|
||||
{
|
||||
sub_815DC8C();
|
||||
gUnknown_847A230[gSpecialVar_0x8004]();
|
||||
sub_815DD2C();
|
||||
}
|
||||
|
||||
u8 sub_815DA10(void)
|
||||
{
|
||||
return gFacilityClassToTrainerClass[gUnknown_203F45C->unk_3D];
|
||||
}
|
||||
|
||||
void sub_815DA28(u8 * dest)
|
||||
{
|
||||
StringCopyN(dest, gUnknown_203F45C->unk_00, 11);
|
||||
}
|
||||
|
||||
u8 sub_815DA3C(void)
|
||||
{
|
||||
return gFacilityClassToPicIndex[gUnknown_203F45C->unk_3D];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user