diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-11-25 20:14:34 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-11-25 20:14:34 -0500 |
commit | 1f9c58abedd92168b75e2d44abd6521fd82c78b2 (patch) | |
tree | b595eaefdae0fccb873e2849812c107b94f50a3e | |
parent | f05f41b89a0de0e0c32a06d6477de0d5e2fad243 (diff) |
through sub_812D814
-rw-r--r-- | asm/fame_checker.s | 267 | ||||
-rw-r--r-- | src/fame_checker.c | 91 |
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); +} |