summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-11-25 20:14:34 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2018-11-25 20:14:34 -0500
commit1f9c58abedd92168b75e2d44abd6521fd82c78b2 (patch)
treeb595eaefdae0fccb873e2849812c107b94f50a3e
parentf05f41b89a0de0e0c32a06d6477de0d5e2fad243 (diff)
through sub_812D814
-rw-r--r--asm/fame_checker.s267
-rw-r--r--src/fame_checker.c91
2 files changed, 91 insertions, 267 deletions
diff --git a/asm/fame_checker.s b/asm/fame_checker.s
index 37bce8ba5..f907c448e 100644
--- a/asm/fame_checker.s
+++ b/asm/fame_checker.s
@@ -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}
diff --git a/src/fame_checker.c b/src/fame_checker.c
index d309e59a3..c5039fa5f 100644
--- a/src/fame_checker.c
+++ b/src/fame_checker.c
@@ -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);
+}