through sub_812D814
This commit is contained in:
@@ -5,273 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_812D650
|
||||
sub_812D650: @ 812D650
|
||||
push {r4,lr}
|
||||
ldr r1, _0812D6A4 @ =gUnknown_20370C0
|
||||
ldrh r0, [r1]
|
||||
cmp r0, 0xF
|
||||
bhi _0812D69E
|
||||
ldr r0, _0812D6A8 @ =gSpecialVar_0x8005
|
||||
ldrh r4, [r0]
|
||||
adds r0, r4, 0
|
||||
cmp r0, 0x2
|
||||
bhi _0812D69E
|
||||
cmp r0, 0
|
||||
beq _0812D69E
|
||||
ldr r2, _0812D6AC @ =gSaveBlock1Ptr
|
||||
ldrh r3, [r1]
|
||||
cmp r0, 0x1
|
||||
bne _0812D684
|
||||
ldr r0, [r2]
|
||||
lsls r1, r3, 2
|
||||
adds r0, r1
|
||||
ldr r1, _0812D6B0 @ =0x00003a54
|
||||
adds r0, r1
|
||||
ldrb r0, [r0]
|
||||
lsls r0, 30
|
||||
lsrs r0, 30
|
||||
cmp r0, 0x2
|
||||
beq _0812D69E
|
||||
_0812D684:
|
||||
ldr r2, [r2]
|
||||
lsls r0, r3, 2
|
||||
adds r2, r0
|
||||
ldr r0, _0812D6B0 @ =0x00003a54
|
||||
adds r2, r0
|
||||
movs r1, 0x3
|
||||
ands r1, r4
|
||||
ldrb r3, [r2]
|
||||
movs r0, 0x4
|
||||
negs r0, r0
|
||||
ands r0, r3
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
_0812D69E:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0812D6A4: .4byte gUnknown_20370C0
|
||||
_0812D6A8: .4byte gSpecialVar_0x8005
|
||||
_0812D6AC: .4byte gSaveBlock1Ptr
|
||||
_0812D6B0: .4byte 0x00003a54
|
||||
thumb_func_end sub_812D650
|
||||
|
||||
thumb_func_start sub_812D6B4
|
||||
sub_812D6B4: @ 812D6B4
|
||||
push {r4,lr}
|
||||
ldr r0, _0812D6EC @ =gUnknown_203B0FC
|
||||
ldr r4, [r0]
|
||||
bl sub_812E064
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
adds r4, 0xC
|
||||
adds r4, r0
|
||||
ldrb r1, [r4]
|
||||
movs r2, 0
|
||||
ldr r0, _0812D6F0 @ =gSaveBlock1Ptr
|
||||
ldr r0, [r0]
|
||||
lsls r1, 2
|
||||
adds r0, r1
|
||||
ldr r1, _0812D6F4 @ =0x00003a54
|
||||
adds r0, r1
|
||||
ldrh r0, [r0]
|
||||
lsls r1, r0, 18
|
||||
movs r3, 0x1
|
||||
_0812D6DC:
|
||||
lsrs r0, r1, 20
|
||||
asrs r0, r2
|
||||
ands r0, r3
|
||||
cmp r0, 0
|
||||
bne _0812D6F8
|
||||
movs r0, 0
|
||||
b _0812D704
|
||||
.align 2, 0
|
||||
_0812D6EC: .4byte gUnknown_203B0FC
|
||||
_0812D6F0: .4byte gSaveBlock1Ptr
|
||||
_0812D6F4: .4byte 0x00003a54
|
||||
_0812D6F8:
|
||||
adds r0, r2, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r2, r0, 24
|
||||
cmp r2, 0x5
|
||||
bls _0812D6DC
|
||||
movs r0, 0x1
|
||||
_0812D704:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_812D6B4
|
||||
|
||||
thumb_func_start sub_812D70C
|
||||
sub_812D70C: @ 812D70C
|
||||
push {r4,lr}
|
||||
movs r4, 0xFA
|
||||
lsls r4, 2
|
||||
adds r0, r4, 0
|
||||
bl FreeSpriteTilesByTag
|
||||
adds r0, r4, 0
|
||||
bl FreeSpritePaletteByTag
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_812D70C
|
||||
|
||||
thumb_func_start sub_812D724
|
||||
sub_812D724: @ 812D724
|
||||
push {r4,lr}
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
movs r4, 0x22
|
||||
cmp r0, 0x2
|
||||
ble _0812D732
|
||||
movs r4, 0x3D
|
||||
_0812D732:
|
||||
movs r1, 0x3
|
||||
bl __modsi3
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
lsls r1, r0, 1
|
||||
adds r1, r0
|
||||
lsls r1, 4
|
||||
subs r1, r0
|
||||
adds r1, 0x72
|
||||
ldr r0, _0812D760 @ =gUnknown_845FC44
|
||||
lsls r1, 16
|
||||
asrs r1, 16
|
||||
adds r2, r4, 0
|
||||
movs r3, 0
|
||||
bl CreateSprite
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0812D760: .4byte gUnknown_845FC44
|
||||
thumb_func_end sub_812D724
|
||||
|
||||
thumb_func_start sub_812D764
|
||||
sub_812D764: @ 812D764
|
||||
push {lr}
|
||||
bl DestroySprite
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_812D764
|
||||
|
||||
thumb_func_start sub_812D770
|
||||
sub_812D770: @ 812D770
|
||||
push {lr}
|
||||
ldr r0, _0812D77C @ =0x000003e9
|
||||
bl FreeSpriteTilesByTag
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0812D77C: .4byte 0x000003e9
|
||||
thumb_func_end sub_812D770
|
||||
|
||||
thumb_func_start sub_812D780
|
||||
sub_812D780: @ 812D780
|
||||
push {lr}
|
||||
adds r3, r0, 0
|
||||
adds r2, r1, 0
|
||||
lsls r3, 24
|
||||
lsrs r3, 24
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
ldr r0, _0812D7C0 @ =gUnknown_845FC78
|
||||
adds r1, r3, 0
|
||||
movs r3, 0x8
|
||||
bl CreateSprite
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
ldr r1, _0812D7C4 @ =gSprites
|
||||
lsls r2, r0, 4
|
||||
adds r2, r0
|
||||
lsls r2, 2
|
||||
adds r2, r1
|
||||
ldrb r3, [r2, 0x5]
|
||||
movs r1, 0xD
|
||||
negs r1, r1
|
||||
ands r1, r3
|
||||
movs r3, 0x8
|
||||
orrs r1, r3
|
||||
movs r3, 0xF
|
||||
ands r1, r3
|
||||
movs r3, 0x20
|
||||
orrs r1, r3
|
||||
strb r1, [r2, 0x5]
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0812D7C0: .4byte gUnknown_845FC78
|
||||
_0812D7C4: .4byte gSprites
|
||||
thumb_func_end sub_812D780
|
||||
|
||||
thumb_func_start sub_812D7C8
|
||||
sub_812D7C8: @ 812D7C8
|
||||
push {r4,lr}
|
||||
ldr r4, _0812D7E0 @ =0x000003ea
|
||||
adds r0, r4, 0
|
||||
bl FreeSpriteTilesByTag
|
||||
adds r0, r4, 0
|
||||
bl FreeSpritePaletteByTag
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0812D7E0: .4byte 0x000003ea
|
||||
thumb_func_end sub_812D7C8
|
||||
|
||||
thumb_func_start sub_812D7E4
|
||||
sub_812D7E4: @ 812D7E4
|
||||
push {lr}
|
||||
ldr r0, _0812D7FC @ =gUnknown_845FCB8
|
||||
movs r1, 0xE2
|
||||
movs r2, 0x42
|
||||
movs r3, 0
|
||||
bl CreateSprite
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0812D7FC: .4byte gUnknown_845FCB8
|
||||
thumb_func_end sub_812D7E4
|
||||
|
||||
thumb_func_start sub_812D800
|
||||
sub_812D800: @ 812D800
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
bl FreeSpriteOamMatrix
|
||||
adds r0, r4, 0
|
||||
bl DestroySprite
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_812D800
|
||||
|
||||
thumb_func_start sub_812D814
|
||||
sub_812D814: @ 812D814
|
||||
push {lr}
|
||||
ldr r0, _0812D834 @ =0x000003ee
|
||||
bl FreeSpriteTilesByTag
|
||||
ldr r0, _0812D838 @ =0x000003ef
|
||||
bl FreeSpriteTilesByTag
|
||||
movs r0, 0xFC
|
||||
lsls r0, 2
|
||||
bl FreeSpriteTilesByTag
|
||||
ldr r0, _0812D83C @ =0x000003f1
|
||||
bl FreeSpriteTilesByTag
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0812D834: .4byte 0x000003ee
|
||||
_0812D838: .4byte 0x000003ef
|
||||
_0812D83C: .4byte 0x000003f1
|
||||
thumb_func_end sub_812D814
|
||||
|
||||
thumb_func_start sub_812D840
|
||||
sub_812D840: @ 812D840
|
||||
push {lr}
|
||||
|
||||
@@ -23,6 +23,14 @@
|
||||
#include "field_map_obj.h"
|
||||
#include "text_window.h"
|
||||
|
||||
#define SPRITETAG_1000 1000
|
||||
#define SPRITETAG_1001 1001
|
||||
#define SPRITETAG_1002 1002
|
||||
#define SPRITETAG_1006 1006
|
||||
#define SPRITETAG_1007 1007
|
||||
#define SPRITETAG_1008 1008
|
||||
#define SPRITETAG_1009 1009
|
||||
|
||||
struct FameCheckerData
|
||||
{
|
||||
MainCallback unk_00;
|
||||
@@ -119,6 +127,9 @@ extern const struct BgTemplate gUnknown_845FBF4[4];
|
||||
extern const struct SpriteSheet gUnknown_845FB9C[];
|
||||
extern const struct SpritePalette gUnknown_845FBDC[];
|
||||
extern const struct WindowTemplate gUnknown_845FC04[];
|
||||
extern const struct SpriteTemplate gUnknown_845FC44;
|
||||
extern const struct SpriteTemplate gUnknown_845FC78;
|
||||
extern const struct SpriteTemplate gUnknown_845FCB8;
|
||||
|
||||
void sub_812C380(void)
|
||||
{
|
||||
@@ -742,3 +753,83 @@ void sub_812D5EC(void)
|
||||
sub_812D650();
|
||||
}
|
||||
}
|
||||
|
||||
void sub_812D650(void)
|
||||
{
|
||||
if (gUnknown_20370C0 < 16 && gSpecialVar_0x8005 < 3)
|
||||
{
|
||||
if (gSpecialVar_0x8005 == 0)
|
||||
return;
|
||||
if (gSpecialVar_0x8005 == 1 && gSaveBlock1Ptr->fameChecker[gUnknown_20370C0].unk_0_0 == 2)
|
||||
return;
|
||||
gSaveBlock1Ptr->fameChecker[gUnknown_20370C0].unk_0_0 = gSpecialVar_0x8005;
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_812D6B4(void)
|
||||
{
|
||||
u8 r2;
|
||||
u8 r1 = gUnknown_203B0FC->unk_0C[sub_812E064()];
|
||||
for (r2 = 0; r2 < 6; r2++)
|
||||
{
|
||||
if (!((gSaveBlock1Ptr->fameChecker[r1].unk_0_2 >> r2) & 1))
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_812D70C(void)
|
||||
{
|
||||
FreeSpriteTilesByTag(SPRITETAG_1000);
|
||||
FreeSpritePaletteByTag(SPRITETAG_1000);
|
||||
}
|
||||
|
||||
u8 sub_812D724(s16 a0)
|
||||
{
|
||||
s16 r4 = a0 >= 3 ? 61 : 34;
|
||||
s16 r1 = 47 * (a0 % 3) + 0x72;
|
||||
return CreateSprite(&gUnknown_845FC44, r1, r4, 0);
|
||||
}
|
||||
|
||||
void sub_812D764(struct Sprite * sprite)
|
||||
{
|
||||
DestroySprite(sprite);
|
||||
}
|
||||
|
||||
void sub_812D770(void)
|
||||
{
|
||||
FreeSpriteTilesByTag(SPRITETAG_1001);
|
||||
}
|
||||
|
||||
u8 sub_812D780(u8 x, u8 y)
|
||||
{
|
||||
u8 spriteId = CreateSprite(&gUnknown_845FC78, x, y, 8);
|
||||
gSprites[spriteId].oam.priority = 2;
|
||||
gSprites[spriteId].oam.paletteNum = 2;
|
||||
return spriteId;
|
||||
}
|
||||
|
||||
void sub_812D7C8(void)
|
||||
{
|
||||
FreeSpriteTilesByTag(SPRITETAG_1002);
|
||||
FreeSpritePaletteByTag(SPRITETAG_1002);
|
||||
}
|
||||
|
||||
u8 sub_812D7E4(void)
|
||||
{
|
||||
return CreateSprite(&gUnknown_845FCB8, 0xe2, 0x42, 0);
|
||||
}
|
||||
|
||||
void sub_812D800(struct Sprite * sprite)
|
||||
{
|
||||
FreeSpriteOamMatrix(sprite);
|
||||
DestroySprite(sprite);
|
||||
}
|
||||
|
||||
void sub_812D814(void)
|
||||
{
|
||||
FreeSpriteTilesByTag(SPRITETAG_1006);
|
||||
FreeSpriteTilesByTag(SPRITETAG_1007);
|
||||
FreeSpriteTilesByTag(SPRITETAG_1008);
|
||||
FreeSpriteTilesByTag(SPRITETAG_1009);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user