through sub_812D814

This commit is contained in:
PikalaxALT
2018-11-25 20:14:34 -05:00
parent f05f41b89a
commit 1f9c58abed
2 changed files with 91 additions and 267 deletions
-267
View File
@@ -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}
+91
View File
@@ -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);
}