.include "constants/gba_constants.inc" .include "constants/species_constants.inc" .include "asm/macros.inc" .syntax unified .text thumb_func_start SetSSTidalFlag SetSSTidalFlag: @ 810D980 push {lr} ldr r0, _0810D998 @ =0x0000082d bl FlagSet ldr r0, _0810D99C @ =0x0000404a bl GetVarPointer movs r1, 0 strh r1, [r0] pop {r0} bx r0 .align 2, 0 _0810D998: .4byte 0x0000082d _0810D99C: .4byte 0x0000404a thumb_func_end SetSSTidalFlag thumb_func_start ResetSSTidalFlag ResetSSTidalFlag: @ 810D9A0 push {lr} ldr r0, _0810D9AC @ =0x0000082d bl FlagReset pop {r0} bx r0 .align 2, 0 _0810D9AC: .4byte 0x0000082d thumb_func_end ResetSSTidalFlag thumb_func_start CountSSTidalStep CountSSTidalStep: @ 810D9B0 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 ldr r0, _0810D9DC @ =0x0000082d bl FlagGet lsls r0, 24 cmp r0, 0 beq _0810D9D6 ldr r0, _0810D9E0 @ =0x0000404a bl GetVarPointer ldrh r1, [r0] adds r1, r4, r1 strh r1, [r0] lsls r1, 16 lsrs r1, 16 cmp r1, 0xCC bhi _0810D9E4 _0810D9D6: movs r0, 0 b _0810D9E6 .align 2, 0 _0810D9DC: .4byte 0x0000082d _0810D9E0: .4byte 0x0000404a _0810D9E4: movs r0, 0x1 _0810D9E6: pop {r4} pop {r1} bx r1 thumb_func_end CountSSTidalStep thumb_func_start GetSSTidalLocation GetSSTidalLocation: @ 810D9EC push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r0 adds r5, r1, 0 adds r6, r2, 0 adds r7, r3, 0 ldr r0, _0810DA1C @ =0x0000404a bl GetVarPointer adds r4, r0, 0 ldr r0, _0810DA20 @ =0x000040b4 bl GetVarPointer ldrh r0, [r0] subs r0, 0x1 cmp r0, 0x9 bhi _0810DAB2 lsls r0, 2 ldr r1, _0810DA24 @ =_0810DA28 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0810DA1C: .4byte 0x0000404a _0810DA20: .4byte 0x000040b4 _0810DA24: .4byte _0810DA28 .align 2, 0 _0810DA28: .4byte _0810DA50 .4byte _0810DA60 .4byte _0810DA54 .4byte _0810DA58 .4byte _0810DA58 .4byte _0810DA5C .4byte _0810DA88 .4byte _0810DA50 .4byte _0810DA54 .4byte _0810DA5C _0810DA50: movs r0, 0x1 b _0810DABE _0810DA54: movs r0, 0x4 b _0810DABE _0810DA58: movs r0, 0x2 b _0810DABE _0810DA5C: movs r0, 0x3 b _0810DABE _0810DA60: ldrh r0, [r4] cmp r0, 0x3B bhi _0810DA70 movs r0, 0x31 strb r0, [r5] ldrh r0, [r4] adds r0, 0x13 b _0810DAB0 _0810DA70: cmp r0, 0x8B bhi _0810DA7E movs r0, 0x30 strb r0, [r5] ldrh r0, [r4] subs r0, 0x3C b _0810DAB0 _0810DA7E: movs r0, 0x2F strb r0, [r5] ldrh r0, [r4] subs r0, 0x8C b _0810DAB0 _0810DA88: ldrh r0, [r4] cmp r0, 0x41 bhi _0810DA98 movs r0, 0x2F strb r0, [r5] ldrh r1, [r4] movs r0, 0x41 b _0810DAAE _0810DA98: cmp r0, 0x91 bhi _0810DAA6 movs r0, 0x30 strb r0, [r5] ldrh r1, [r4] movs r0, 0x91 b _0810DAAE _0810DAA6: movs r0, 0x31 strb r0, [r5] ldrh r1, [r4] movs r0, 0xE0 _0810DAAE: subs r0, r1 _0810DAB0: strh r0, [r6] _0810DAB2: movs r0, 0 mov r1, r8 strb r0, [r1] movs r0, 0x14 strh r0, [r7] movs r0, 0 _0810DABE: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end GetSSTidalLocation thumb_func_start GetLinkPartnerNames GetLinkPartnerNames: @ 810DAC8 push {r4-r7,lr} mov r7, r8 push {r7} movs r6, 0 bl sub_8008218 lsls r0, 24 lsrs r7, r0, 24 bl sub_800820C lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 cmp r4, r5 bcs _0810DB12 ldr r0, _0810DB20 @ =gUnknown_083D1464 mov r8, r0 _0810DAEA: cmp r7, r4 beq _0810DB08 lsls r0, r6, 2 add r0, r8 ldr r0, [r0] lsls r1, r4, 3 subs r1, r4 lsls r1, 2 ldr r2, _0810DB24 @ =gLinkPlayers + 0x8 adds r1, r2 bl StringCopy adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0810DB08: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _0810DAEA _0810DB12: adds r0, r5, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0810DB20: .4byte gUnknown_083D1464 _0810DB24: .4byte gLinkPlayers + 0x8 thumb_func_end GetLinkPartnerNames thumb_func_start SpawnBerryBlenderLinkPlayerSprites SpawnBerryBlenderLinkPlayerSprites: @ 810DB28 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 movs r7, 0 movs r0, 0 mov r9, r0 mov r8, r0 ldr r1, _0810DB74 @ =gUnknown_083F8358 add r0, sp, 0x8 movs r2, 0x4 bl memcpy add r4, sp, 0xC ldr r1, _0810DB78 @ =gUnknown_083F835C adds r0, r4, 0 movs r2, 0x8 bl memcpy bl sub_8008218 lsls r0, 24 lsrs r0, 24 mov r10, r0 bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0x2 beq _0810DB94 cmp r0, 0x2 bgt _0810DB7C cmp r0, 0x1 beq _0810DBC0 b _0810DBD2 .align 2, 0 _0810DB74: .4byte gUnknown_083F8358 _0810DB78: .4byte gUnknown_083F835C _0810DB7C: cmp r1, 0x3 beq _0810DB86 cmp r1, 0x4 beq _0810DBA8 b _0810DBD2 _0810DB86: movs r7, 0x2 ldr r1, _0810DB90 @ =gSaveBlock1 ldrh r0, [r1] subs r0, 0x1 b _0810DBAE .align 2, 0 _0810DB90: .4byte gSaveBlock1 _0810DB94: movs r7, 0x1 ldr r0, _0810DBA4 @ =gSaveBlock1 ldrh r1, [r0] mov r9, r1 ldrh r0, [r0, 0x2] subs r0, 0x1 b _0810DBCC .align 2, 0 _0810DBA4: .4byte gSaveBlock1 _0810DBA8: ldr r1, _0810DBBC @ =gSaveBlock1 ldrh r0, [r1] adds r0, 0x1 _0810DBAE: lsls r0, 16 lsrs r0, 16 mov r9, r0 ldrh r1, [r1, 0x2] mov r8, r1 b _0810DBD2 .align 2, 0 _0810DBBC: .4byte gSaveBlock1 _0810DBC0: movs r7, 0x3 ldr r0, _0810DBD8 @ =gSaveBlock1 ldrh r4, [r0] mov r9, r4 ldrh r0, [r0, 0x2] adds r0, 0x1 _0810DBCC: lsls r0, 16 lsrs r0, 16 mov r8, r0 _0810DBD2: movs r6, 0 b _0810DC5C .align 2, 0 _0810DBD8: .4byte gSaveBlock1 _0810DBDC: cmp r10, r6 beq _0810DC56 ldr r1, _0810DC74 @ =gLinkPlayers lsls r0, r6, 3 subs r0, r6 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x13] movs r0, 0 bl GetRivalAvatarGraphicsIdByStateIdAndGender lsls r0, 24 lsrs r0, 24 mov r1, sp adds r1, r7 adds r1, 0x8 ldrb r1, [r1] movs r2, 0xF0 subs r2, r6 lsls r2, 24 lsrs r2, 24 lsls r5, r7, 1 mov r3, sp adds r3, r5 adds r3, 0xC ldrb r3, [r3] lsls r3, 24 asrs r3, 24 mov r12, r3 mov r4, r9 lsls r3, r4, 16 asrs r3, 16 add r3, r12 adds r3, 0x7 lsls r3, 16 asrs r3, 16 mov r4, sp adds r4, 0xD adds r4, r5 ldrb r4, [r4] lsls r4, 24 asrs r4, 24 mov r12, r4 mov r5, r8 lsls r4, r5, 16 asrs r4, 16 add r4, r12 adds r4, 0x7 lsls r4, 16 asrs r4, 16 str r4, [sp] movs r4, 0 str r4, [sp, 0x4] bl SpawnSpecialFieldObjectParametrized adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x4 bne _0810DC56 movs r7, 0 _0810DC56: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0810DC5C: ldr r0, _0810DC78 @ =gSpecialVar_0x8004 ldrh r0, [r0] cmp r6, r0 bcc _0810DBDC add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810DC74: .4byte gLinkPlayers _0810DC78: .4byte gSpecialVar_0x8004 thumb_func_end SpawnBerryBlenderLinkPlayerSprites thumb_func_start MauvilleGymSpecial1 MauvilleGymSpecial1: @ 810DC7C push {r4,r5,lr} movs r4, 0 ldr r5, _0810DC9C @ =gUnknown_083F8364 _0810DC82: ldr r0, _0810DCA0 @ =gSpecialVar_0x8004 ldrh r0, [r0] cmp r4, r0 bne _0810DCA8 lsls r1, r4, 2 adds r1, r5 ldrb r0, [r1] ldrb r1, [r1, 0x1] ldr r2, _0810DCA4 @ =0x00000206 bl MapGridSetMetatileIdAt b _0810DCB6 .align 2, 0 _0810DC9C: .4byte gUnknown_083F8364 _0810DCA0: .4byte gSpecialVar_0x8004 _0810DCA4: .4byte 0x00000206 _0810DCA8: lsls r1, r4, 2 adds r1, r5 ldrb r0, [r1] ldrb r1, [r1, 0x1] ldr r2, _0810DCC8 @ =0x00000205 bl MapGridSetMetatileIdAt _0810DCB6: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _0810DC82 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810DCC8: .4byte 0x00000205 thumb_func_end MauvilleGymSpecial1 thumb_func_start MauvilleGymSpecial2 MauvilleGymSpecial2: @ 810DCCC push {r4-r6,lr} movs r5, 0xC _0810DCD0: movs r4, 0x7 adds r6, r5, 0x1 _0810DCD4: adds r0, r4, 0 adds r1, r5, 0 bl MapGridGetMetatileIdAt ldr r1, _0810DCF0 @ =0xfffffde6 adds r0, r1 cmp r0, 0x37 bls _0810DCE6 b _0810DEC0 _0810DCE6: lsls r0, 2 ldr r1, _0810DCF4 @ =_0810DCF8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0810DCF0: .4byte 0xfffffde6 _0810DCF4: .4byte _0810DCF8 .align 2, 0 _0810DCF8: .4byte _0810DE7E .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DDD8 .4byte _0810DDDE .4byte _0810DE18 .4byte _0810DE20 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DDE8 .4byte _0810DDEE .4byte _0810DE28 .4byte _0810DE30 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DDF8 .4byte _0810DDFE .4byte _0810DE38 .4byte _0810DE40 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DE08 .4byte _0810DE10 .4byte _0810DE48 .4byte _0810DE50 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DE58 .4byte _0810DE68 .4byte _0810DE78 .4byte _0810DEA0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DE60 .4byte _0810DE70 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEB6 .4byte _0810DEA8 _0810DDD8: movs r2, 0x8C lsls r2, 2 b _0810DEAC _0810DDDE: ldr r2, _0810DDE4 @ =0x00000231 b _0810DEAC .align 2, 0 _0810DDE4: .4byte 0x00000231 _0810DDE8: movs r2, 0x8E lsls r2, 2 b _0810DEAC _0810DDEE: ldr r2, _0810DDF4 @ =0x00000239 b _0810DEAC .align 2, 0 _0810DDF4: .4byte 0x00000239 _0810DDF8: movs r2, 0x88 lsls r2, 2 b _0810DEAC _0810DDFE: ldr r2, _0810DE04 @ =0x00000221 b _0810DEAC .align 2, 0 _0810DE04: .4byte 0x00000221 _0810DE08: ldr r2, _0810DE0C @ =0x00000e28 b _0810DEAC .align 2, 0 _0810DE0C: .4byte 0x00000e28 _0810DE10: ldr r2, _0810DE14 @ =0x00000e29 b _0810DEAC .align 2, 0 _0810DE14: .4byte 0x00000e29 _0810DE18: ldr r2, _0810DE1C @ =0x00000232 b _0810DEAC .align 2, 0 _0810DE1C: .4byte 0x00000232 _0810DE20: ldr r2, _0810DE24 @ =0x00000233 b _0810DEAC .align 2, 0 _0810DE24: .4byte 0x00000233 _0810DE28: ldr r2, _0810DE2C @ =0x0000023a b _0810DEAC .align 2, 0 _0810DE2C: .4byte 0x0000023a _0810DE30: ldr r2, _0810DE34 @ =0x0000023b b _0810DEAC .align 2, 0 _0810DE34: .4byte 0x0000023b _0810DE38: ldr r2, _0810DE3C @ =0x00000222 b _0810DEAC .align 2, 0 _0810DE3C: .4byte 0x00000222 _0810DE40: ldr r2, _0810DE44 @ =0x00000223 b _0810DEAC .align 2, 0 _0810DE44: .4byte 0x00000223 _0810DE48: ldr r2, _0810DE4C @ =0x00000e2a b _0810DEAC .align 2, 0 _0810DE4C: .4byte 0x00000e2a _0810DE50: ldr r2, _0810DE54 @ =0x00000e2b b _0810DEAC .align 2, 0 _0810DE54: .4byte 0x00000e2b _0810DE58: ldr r2, _0810DE5C @ =0x00000e42 b _0810DEAC .align 2, 0 _0810DE5C: .4byte 0x00000e42 _0810DE60: ldr r2, _0810DE64 @ =0x0000021a b _0810DEAC .align 2, 0 _0810DE64: .4byte 0x0000021a _0810DE68: ldr r2, _0810DE6C @ =0x00000e43 b _0810DEAC .align 2, 0 _0810DE6C: .4byte 0x00000e43 _0810DE70: ldr r2, _0810DE74 @ =0x0000021a b _0810DEAC .align 2, 0 _0810DE74: .4byte 0x0000021a _0810DE78: movs r2, 0xE4 lsls r2, 4 b _0810DEAC _0810DE7E: subs r1, r5, 0x1 adds r0, r4, 0 bl MapGridGetMetatileIdAt movs r1, 0x90 lsls r1, 2 cmp r0, r1 bne _0810DE98 ldr r2, _0810DE94 @ =0x00000e48 b _0810DEAC .align 2, 0 _0810DE94: .4byte 0x00000e48 _0810DE98: ldr r2, _0810DE9C @ =0x00000e49 b _0810DEAC .align 2, 0 _0810DE9C: .4byte 0x00000e49 _0810DEA0: ldr r2, _0810DEA4 @ =0x00000e41 b _0810DEAC .align 2, 0 _0810DEA4: .4byte 0x00000e41 _0810DEA8: movs r2, 0xE5 lsls r2, 4 _0810DEAC: adds r0, r4, 0 adds r1, r5, 0 bl MapGridSetMetatileIdAt b _0810DEC0 _0810DEB6: ldr r2, _0810DED8 @ =0x00000251 adds r0, r4, 0 adds r1, r5, 0 bl MapGridSetMetatileIdAt _0810DEC0: adds r4, 0x1 cmp r4, 0xF bgt _0810DEC8 b _0810DCD4 _0810DEC8: adds r5, r6, 0 cmp r5, 0x17 bgt _0810DED0 b _0810DCD0 _0810DED0: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810DED8: .4byte 0x00000251 thumb_func_end MauvilleGymSpecial2 thumb_func_start MauvilleGymSpecial3 MauvilleGymSpecial3: @ 810DEDC push {r4-r6,lr} ldr r4, _0810DF18 @ =gUnknown_083F8364 movs r5, 0x2 _0810DEE2: ldrb r0, [r4] ldrb r1, [r4, 0x1] ldr r2, _0810DF1C @ =0x00000206 bl MapGridSetMetatileIdAt adds r4, 0x4 subs r5, 0x1 cmp r5, 0 bge _0810DEE2 movs r5, 0xC _0810DEF6: movs r4, 0x7 adds r6, r5, 0x1 _0810DEFA: adds r0, r4, 0 adds r1, r5, 0 bl MapGridGetMetatileIdAt ldr r1, _0810DF20 @ =0xfffffde0 adds r0, r1 cmp r0, 0x30 bls _0810DF0C b _0810E056 _0810DF0C: lsls r0, 2 ldr r1, _0810DF24 @ =_0810DF28 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0810DF18: .4byte gUnknown_083F8364 _0810DF1C: .4byte 0x00000206 _0810DF20: .4byte 0xfffffde0 _0810DF24: .4byte _0810DF28 .align 2, 0 _0810DF28: .4byte _0810DFEC .4byte _0810DFF2 .4byte _0810E00C .4byte _0810E014 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810DFFC .4byte _0810E002 .4byte _0810E01C .4byte _0810E024 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E02C .4byte _0810E034 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E03C .4byte _0810E03C .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E04C _0810DFEC: movs r2, 0x8C lsls r2, 2 b _0810E03E _0810DFF2: ldr r2, _0810DFF8 @ =0x00000231 b _0810E03E .align 2, 0 _0810DFF8: .4byte 0x00000231 _0810DFFC: movs r2, 0x8E lsls r2, 2 b _0810E03E _0810E002: ldr r2, _0810E008 @ =0x00000239 b _0810E03E .align 2, 0 _0810E008: .4byte 0x00000239 _0810E00C: ldr r2, _0810E010 @ =0x00000232 b _0810E03E .align 2, 0 _0810E010: .4byte 0x00000232 _0810E014: ldr r2, _0810E018 @ =0x00000233 b _0810E03E .align 2, 0 _0810E018: .4byte 0x00000233 _0810E01C: ldr r2, _0810E020 @ =0x0000023a b _0810E03E .align 2, 0 _0810E020: .4byte 0x0000023a _0810E024: ldr r2, _0810E028 @ =0x0000023b b _0810E03E .align 2, 0 _0810E028: .4byte 0x0000023b _0810E02C: ldr r2, _0810E030 @ =0x00000e42 b _0810E03E .align 2, 0 _0810E030: .4byte 0x00000e42 _0810E034: ldr r2, _0810E038 @ =0x00000e43 b _0810E03E .align 2, 0 _0810E038: .4byte 0x00000e43 _0810E03C: ldr r2, _0810E048 @ =0x0000021a _0810E03E: adds r0, r4, 0 adds r1, r5, 0 bl MapGridSetMetatileIdAt b _0810E056 .align 2, 0 _0810E048: .4byte 0x0000021a _0810E04C: ldr r2, _0810E06C @ =0x00000251 adds r0, r4, 0 adds r1, r5, 0 bl MapGridSetMetatileIdAt _0810E056: adds r4, 0x1 cmp r4, 0xF bgt _0810E05E b _0810DEFA _0810E05E: adds r5, r6, 0 cmp r5, 0x17 bgt _0810E066 b _0810DEF6 _0810E066: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810E06C: .4byte 0x00000251 thumb_func_end MauvilleGymSpecial3 thumb_func_start PetalburgGymSpecial1 PetalburgGymSpecial1: @ 810E070 push {lr} ldr r0, _0810E090 @ =gUnknown_02039258 movs r1, 0 strb r1, [r0] ldr r0, _0810E094 @ =gUnknown_02039259 strb r1, [r0] movs r0, 0x2C bl PlaySE ldr r0, _0810E098 @ =Task_PetalburgGym movs r1, 0x8 bl CreateTask pop {r0} bx r0 .align 2, 0 _0810E090: .4byte gUnknown_02039258 _0810E094: .4byte gUnknown_02039259 _0810E098: .4byte Task_PetalburgGym thumb_func_end PetalburgGymSpecial1 thumb_func_start Task_PetalburgGym Task_PetalburgGym: @ 810E09C push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r0, _0810E0E4 @ =gUnknown_083F8370 ldr r5, _0810E0E8 @ =gUnknown_02039259 ldrb r1, [r5] adds r0, r1, r0 ldr r4, _0810E0EC @ =gUnknown_02039258 ldrb r2, [r4] ldrb r0, [r0] cmp r0, r2 bne _0810E0F8 ldr r0, _0810E0F0 @ =gSpecialVar_0x8004 ldrb r0, [r0] ldr r2, _0810E0F4 @ =gUnknown_083F8376 lsls r1, 1 adds r1, r2 ldrh r1, [r1] bl PetalburgGymFunc movs r0, 0 strb r0, [r4] ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bne _0810E0FC adds r0, r6, 0 bl DestroyTask bl EnableBothScriptContexts b _0810E0FC .align 2, 0 _0810E0E4: .4byte gUnknown_083F8370 _0810E0E8: .4byte gUnknown_02039259 _0810E0EC: .4byte gUnknown_02039258 _0810E0F0: .4byte gSpecialVar_0x8004 _0810E0F4: .4byte gUnknown_083F8376 _0810E0F8: adds r0, r2, 0x1 strb r0, [r4] _0810E0FC: pop {r4-r6} pop {r0} bx r0 thumb_func_end Task_PetalburgGym thumb_func_start PetalburgGymFunc PetalburgGymFunc: @ 810E104 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r2, r1, 16 movs r7, 0 subs r0, 0x1 cmp r0, 0x7 bhi _0810E1CC lsls r0, 2 ldr r1, _0810E128 @ =_0810E12C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0810E128: .4byte _0810E12C .align 2, 0 _0810E12C: .4byte _0810E14C .4byte _0810E15E .4byte _0810E170 .4byte _0810E182 .4byte _0810E190 .4byte _0810E1A6 .4byte _0810E1B2 .4byte _0810E1C0 _0810E14C: movs r7, 0x2 mov r1, sp movs r0, 0x1 strh r0, [r1] movs r0, 0x7 strh r0, [r1, 0x2] add r1, sp, 0x8 movs r0, 0x68 b _0810E1A0 _0810E15E: movs r7, 0x2 mov r1, sp movs r0, 0x1 strh r0, [r1] movs r0, 0x7 strh r0, [r1, 0x2] add r1, sp, 0x8 movs r0, 0x4E b _0810E1A0 _0810E170: movs r7, 0x2 mov r1, sp movs r0, 0x1 strh r0, [r1] movs r0, 0x7 strh r0, [r1, 0x2] add r1, sp, 0x8 movs r0, 0x5B b _0810E1A0 _0810E182: movs r7, 0x1 mov r1, sp movs r0, 0x7 strh r0, [r1] add r1, sp, 0x8 movs r0, 0x27 b _0810E1CA _0810E190: movs r7, 0x2 mov r1, sp movs r0, 0x1 strh r0, [r1] movs r0, 0x7 strh r0, [r1, 0x2] add r1, sp, 0x8 movs r0, 0x34 _0810E1A0: strh r0, [r1] strh r0, [r1, 0x2] b _0810E1CC _0810E1A6: movs r7, 0x1 mov r0, sp strh r7, [r0] add r1, sp, 0x8 movs r0, 0x41 b _0810E1CA _0810E1B2: movs r7, 0x1 mov r1, sp movs r0, 0x7 strh r0, [r1] add r1, sp, 0x8 movs r0, 0xD b _0810E1CA _0810E1C0: movs r7, 0x1 mov r0, sp strh r7, [r0] add r1, sp, 0x8 movs r0, 0x1A _0810E1CA: strh r0, [r1] _0810E1CC: movs r6, 0 cmp r6, r7 bcs _0810E21E movs r1, 0xC0 lsls r1, 4 adds r0, r1, 0 adds r1, r2, 0 orrs r1, r0 lsls r1, 16 mov r9, r1 adds r1, r2, 0 adds r1, 0x8 orrs r1, r0 lsls r1, 16 mov r8, r1 _0810E1EA: lsls r1, r6, 1 mov r3, sp adds r5, r3, r1 ldrh r0, [r5] adds r0, 0x7 add r4, sp, 0x8 adds r4, r1 ldrh r1, [r4] adds r1, 0x7 mov r3, r9 lsrs r2, r3, 16 bl MapGridSetMetatileIdAt ldrh r0, [r5] adds r0, 0x7 ldrh r1, [r4] adds r1, 0x8 mov r3, r8 lsrs r2, r3, 16 bl MapGridSetMetatileIdAt adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, r7 bcc _0810E1EA _0810E21E: bl DrawWholeMapView add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end PetalburgGymFunc thumb_func_start PetalburgGymSpecial2 PetalburgGymSpecial2: @ 810E230 push {lr} ldr r0, _0810E244 @ =gSpecialVar_0x8004 ldrb r0, [r0] ldr r1, _0810E248 @ =gUnknown_083F8376 ldrh r1, [r1, 0x8] bl PetalburgGymFunc pop {r0} bx r0 .align 2, 0 _0810E244: .4byte gSpecialVar_0x8004 _0810E248: .4byte gUnknown_083F8376 thumb_func_end PetalburgGymSpecial2 thumb_func_start ShowFieldMessageStringVar4 ShowFieldMessageStringVar4: @ 810E24C push {lr} ldr r0, _0810E258 @ =gStringVar4 bl ShowFieldMessage pop {r0} bx r0 .align 2, 0 _0810E258: .4byte gStringVar4 thumb_func_end ShowFieldMessageStringVar4 thumb_func_start StorePlayerCoordsInVars StorePlayerCoordsInVars: @ 810E25C ldr r1, _0810E26C @ =gSpecialVar_0x8004 ldr r2, _0810E270 @ =gSaveBlock1 ldrh r0, [r2] strh r0, [r1] ldr r1, _0810E274 @ =gSpecialVar_0x8005 ldrh r0, [r2, 0x2] strh r0, [r1] bx lr .align 2, 0 _0810E26C: .4byte gSpecialVar_0x8004 _0810E270: .4byte gSaveBlock1 _0810E274: .4byte gSpecialVar_0x8005 thumb_func_end StorePlayerCoordsInVars thumb_func_start GetPlayerTrainerIdOnesDigit GetPlayerTrainerIdOnesDigit: @ 810E278 push {lr} ldr r0, _0810E294 @ =gSaveBlock2 ldrb r1, [r0, 0xB] lsls r1, 8 ldrb r0, [r0, 0xA] orrs r0, r1 movs r1, 0xA bl __umodsi3 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0810E294: .4byte gSaveBlock2 thumb_func_end GetPlayerTrainerIdOnesDigit thumb_func_start GetPlayerBigGuyGirlString GetPlayerBigGuyGirlString: @ 810E298 push {lr} ldr r0, _0810E2AC @ =gSaveBlock2 ldrb r0, [r0, 0x8] cmp r0, 0 bne _0810E2B8 ldr r0, _0810E2B0 @ =gStringVar1 ldr r1, _0810E2B4 @ =gOtherText_BigGuy bl StringCopy b _0810E2C0 .align 2, 0 _0810E2AC: .4byte gSaveBlock2 _0810E2B0: .4byte gStringVar1 _0810E2B4: .4byte gOtherText_BigGuy _0810E2B8: ldr r0, _0810E2C4 @ =gStringVar1 ldr r1, _0810E2C8 @ =gOtherText_BigGirl bl StringCopy _0810E2C0: pop {r0} bx r0 .align 2, 0 _0810E2C4: .4byte gStringVar1 _0810E2C8: .4byte gOtherText_BigGirl thumb_func_end GetPlayerBigGuyGirlString thumb_func_start GetRivalSonDaughterString GetRivalSonDaughterString: @ 810E2CC push {lr} ldr r0, _0810E2E0 @ =gSaveBlock2 ldrb r0, [r0, 0x8] cmp r0, 0 bne _0810E2EC ldr r0, _0810E2E4 @ =gStringVar1 ldr r1, _0810E2E8 @ =gOtherText_Daughter bl StringCopy b _0810E2F4 .align 2, 0 _0810E2E0: .4byte gSaveBlock2 _0810E2E4: .4byte gStringVar1 _0810E2E8: .4byte gOtherText_Daughter _0810E2EC: ldr r0, _0810E2F8 @ =gStringVar1 ldr r1, _0810E2FC @ =gOtherText_Son bl StringCopy _0810E2F4: pop {r0} bx r0 .align 2, 0 _0810E2F8: .4byte gStringVar1 _0810E2FC: .4byte gOtherText_Son thumb_func_end GetRivalSonDaughterString thumb_func_start sub_810E300 sub_810E300: @ 810E300 ldr r0, _0810E308 @ =gUnknown_02024D26 ldrb r0, [r0] bx lr .align 2, 0 _0810E308: .4byte gUnknown_02024D26 thumb_func_end sub_810E300 thumb_func_start CableCarWarp CableCarWarp: @ 810E30C push {lr} sub sp, 0x4 ldr r0, _0810E32C @ =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0 beq _0810E330 movs r2, 0x1 negs r2, r2 movs r0, 0x4 str r0, [sp] movs r0, 0x13 movs r1, 0 movs r3, 0x6 bl warp1_set b _0810E342 .align 2, 0 _0810E32C: .4byte gSpecialVar_0x8004 _0810E330: movs r2, 0x1 negs r2, r2 movs r0, 0x4 str r0, [sp] movs r0, 0x13 movs r1, 0x1 movs r3, 0x6 bl warp1_set _0810E342: add sp, 0x4 pop {r0} bx r0 thumb_func_end CableCarWarp thumb_func_start SetFlagInVar SetFlagInVar: @ 810E348 push {lr} ldr r0, _0810E358 @ =gSpecialVar_0x8004 ldrh r0, [r0] bl FlagSet pop {r0} bx r0 .align 2, 0 _0810E358: .4byte gSpecialVar_0x8004 thumb_func_end SetFlagInVar thumb_func_start GetWeekCount GetWeekCount: @ 810E35C push {lr} ldr r0, _0810E37C @ =gLocalTime movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0x7 bl __divsi3 lsls r0, 16 lsrs r0, 16 ldr r1, _0810E380 @ =0x0000270f cmp r0, r1 bls _0810E376 adds r0, r1, 0 _0810E376: pop {r1} bx r1 .align 2, 0 _0810E37C: .4byte gLocalTime _0810E380: .4byte 0x0000270f thumb_func_end GetWeekCount thumb_func_start GetLeadMonFriendshipScore GetLeadMonFriendshipScore: @ 810E384 push {r4,lr} bl GetLeadMonIndex lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r1, r0 ldr r0, _0810E3A8 @ =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x20 bl GetMonData cmp r0, 0xFF bne _0810E3AC movs r0, 0x6 b _0810E3FE .align 2, 0 _0810E3A8: .4byte gPlayerParty _0810E3AC: adds r0, r4, 0 movs r1, 0x20 bl GetMonData cmp r0, 0xC7 bls _0810E3BC movs r0, 0x5 b _0810E3FE _0810E3BC: adds r0, r4, 0 movs r1, 0x20 bl GetMonData cmp r0, 0x95 bls _0810E3CC movs r0, 0x4 b _0810E3FE _0810E3CC: adds r0, r4, 0 movs r1, 0x20 bl GetMonData cmp r0, 0x63 bls _0810E3DC movs r0, 0x3 b _0810E3FE _0810E3DC: adds r0, r4, 0 movs r1, 0x20 bl GetMonData cmp r0, 0x31 bls _0810E3EC movs r0, 0x2 b _0810E3FE _0810E3EC: adds r0, r4, 0 movs r1, 0x20 bl GetMonData cmp r0, 0 bne _0810E3FC movs r0, 0 b _0810E3FE _0810E3FC: movs r0, 0x1 _0810E3FE: pop {r4} pop {r1} bx r1 thumb_func_end GetLeadMonFriendshipScore thumb_func_start CB2_FieldShowRegionMap CB2_FieldShowRegionMap: @ 810E404 push {lr} ldr r0, _0810E410 @ =c2_exit_to_overworld_1_continue_scripts_restart_music bl FieldInitRegionMap pop {r0} bx r0 .align 2, 0 _0810E410: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music thumb_func_end CB2_FieldShowRegionMap thumb_func_start FieldShowRegionMap FieldShowRegionMap: @ 810E414 push {lr} ldr r0, _0810E420 @ =CB2_FieldShowRegionMap bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _0810E420: .4byte CB2_FieldShowRegionMap thumb_func_end FieldShowRegionMap thumb_func_start DoPCTurnOnEffect DoPCTurnOnEffect: @ 810E424 push {r4,lr} ldr r4, _0810E460 @ =Task_PCTurnOnEffect adds r0, r4, 0 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0810E458 adds r0, r4, 0 movs r1, 0x8 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0810E464 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0 strh r2, [r1, 0x8] strh r0, [r1, 0xA] strh r2, [r1, 0xC] strh r2, [r1, 0xE] strh r2, [r1, 0x10] _0810E458: pop {r4} pop {r0} bx r0 .align 2, 0 _0810E460: .4byte Task_PCTurnOnEffect _0810E464: .4byte gTasks thumb_func_end DoPCTurnOnEffect thumb_func_start Task_PCTurnOnEffect Task_PCTurnOnEffect: @ 810E468 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _0810E48C @ =gTasks adds r1, r0 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 bne _0810E486 adds r0, r1, 0 bl PCTurnOffEffect_0 _0810E486: pop {r0} bx r0 .align 2, 0 _0810E48C: .4byte gTasks thumb_func_end Task_PCTurnOnEffect thumb_func_start PCTurnOffEffect_0 PCTurnOffEffect_0: @ 810E490 push {r4-r6,lr} adds r4, r0, 0 movs r6, 0 movs r5, 0 movs r1, 0xE ldrsh r0, [r4, r1] cmp r0, 0x6 bne _0810E4FC strh r5, [r4, 0xE] bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0x3 beq _0810E4C4 cmp r0, 0x3 bgt _0810E4BA cmp r0, 0x2 beq _0810E4C0 b _0810E4CC _0810E4BA: cmp r1, 0x4 beq _0810E4C8 b _0810E4CC _0810E4C0: movs r6, 0 b _0810E4CA _0810E4C4: movs r6, 0xFF b _0810E4CA _0810E4C8: movs r6, 0x1 _0810E4CA: movs r5, 0xFF _0810E4CC: movs r1, 0x10 ldrsh r0, [r4, r1] lsls r1, r6, 24 asrs r1, 24 lsls r2, r5, 24 asrs r2, 24 bl PCTurnOffEffect_1 bl DrawWholeMapView ldrh r0, [r4, 0x10] movs r1, 0x1 eors r0, r1 strh r0, [r4, 0x10] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 bne _0810E4FC ldrb r0, [r4, 0xA] bl DestroyTask _0810E4FC: ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] pop {r4-r6} pop {r0} bx r0 thumb_func_end PCTurnOffEffect_0 thumb_func_start PCTurnOffEffect_1 PCTurnOffEffect_1: @ 810E508 push {r4,r5,lr} lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r4, r2, 24 movs r3, 0 lsls r0, 16 cmp r0, 0 beq _0810E544 ldr r0, _0810E528 @ =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0 bne _0810E52C movs r3, 0x4 b _0810E566 .align 2, 0 _0810E528: .4byte gSpecialVar_0x8004 _0810E52C: cmp r0, 0x1 bne _0810E538 ldr r3, _0810E534 @ =0x0000025a b _0810E566 .align 2, 0 _0810E534: .4byte 0x0000025a _0810E538: cmp r0, 0x2 bne _0810E566 ldr r3, _0810E540 @ =0x00000259 b _0810E566 .align 2, 0 _0810E540: .4byte 0x00000259 _0810E544: ldr r0, _0810E550 @ =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0 bne _0810E554 movs r3, 0x5 b _0810E566 .align 2, 0 _0810E550: .4byte gSpecialVar_0x8004 _0810E554: cmp r0, 0x1 bne _0810E560 ldr r3, _0810E55C @ =0x0000027f b _0810E566 .align 2, 0 _0810E55C: .4byte 0x0000027f _0810E560: cmp r0, 0x2 bne _0810E566 ldr r3, _0810E594 @ =0x0000027e _0810E566: ldr r2, _0810E598 @ =gSaveBlock1 movs r5, 0 ldrsh r0, [r2, r5] lsls r1, 24 asrs r1, 24 adds r0, r1 adds r0, 0x7 movs r5, 0x2 ldrsh r1, [r2, r5] lsls r2, r4, 24 asrs r2, 24 adds r1, r2 adds r1, 0x7 movs r4, 0xC0 lsls r4, 4 adds r2, r4, 0 orrs r3, r2 adds r2, r3, 0 bl MapGridSetMetatileIdAt pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810E594: .4byte 0x0000027e _0810E598: .4byte gSaveBlock1 thumb_func_end PCTurnOffEffect_1 thumb_func_start DoPCTurnOffEffect DoPCTurnOffEffect: @ 810E59C push {lr} bl PCTurnOffEffect pop {r0} bx r0 thumb_func_end DoPCTurnOffEffect thumb_func_start PCTurnOffEffect PCTurnOffEffect: @ 810E5A8 push {r4-r6,lr} movs r6, 0 movs r5, 0 movs r4, 0 bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0x3 beq _0810E5D2 cmp r0, 0x3 bgt _0810E5C8 cmp r0, 0x2 beq _0810E5CE b _0810E5DA _0810E5C8: cmp r1, 0x4 beq _0810E5D6 b _0810E5DA _0810E5CE: movs r6, 0 b _0810E5D8 _0810E5D2: movs r6, 0xFF b _0810E5D8 _0810E5D6: movs r6, 0x1 _0810E5D8: movs r5, 0xFF _0810E5DA: ldr r0, _0810E5E8 @ =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0 bne _0810E5EC movs r4, 0x4 b _0810E5FE .align 2, 0 _0810E5E8: .4byte gSpecialVar_0x8004 _0810E5EC: cmp r0, 0x1 bne _0810E5F8 ldr r4, _0810E5F4 @ =0x0000025a b _0810E5FE .align 2, 0 _0810E5F4: .4byte 0x0000025a _0810E5F8: cmp r0, 0x2 bne _0810E5FE ldr r4, _0810E630 @ =0x00000259 _0810E5FE: ldr r2, _0810E634 @ =gSaveBlock1 movs r1, 0 ldrsh r0, [r2, r1] lsls r1, r6, 24 asrs r1, 24 adds r0, r1 adds r0, 0x7 movs r3, 0x2 ldrsh r1, [r2, r3] lsls r2, r5, 24 asrs r2, 24 adds r1, r2 adds r1, 0x7 movs r3, 0xC0 lsls r3, 4 adds r2, r3, 0 orrs r4, r2 adds r2, r4, 0 bl MapGridSetMetatileIdAt bl DrawWholeMapView pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810E630: .4byte 0x00000259 _0810E634: .4byte gSaveBlock1 thumb_func_end PCTurnOffEffect thumb_func_start DoLotteryCornerComputerEffect DoLotteryCornerComputerEffect: @ 810E638 push {r4,lr} ldr r4, _0810E674 @ =Task_LotteryCornerComputerEffect adds r0, r4, 0 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0810E66C adds r0, r4, 0 movs r1, 0x8 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0810E678 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0 strh r2, [r1, 0x8] strh r0, [r1, 0xA] strh r2, [r1, 0xC] strh r2, [r1, 0xE] strh r2, [r1, 0x10] _0810E66C: pop {r4} pop {r0} bx r0 .align 2, 0 _0810E674: .4byte Task_LotteryCornerComputerEffect _0810E678: .4byte gTasks thumb_func_end DoLotteryCornerComputerEffect thumb_func_start Task_LotteryCornerComputerEffect Task_LotteryCornerComputerEffect: @ 810E67C push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _0810E6A0 @ =gTasks adds r1, r0 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 bne _0810E69A adds r0, r1, 0 bl LotteryCornerComputerEffect _0810E69A: pop {r0} bx r0 .align 2, 0 _0810E6A0: .4byte gTasks thumb_func_end Task_LotteryCornerComputerEffect thumb_func_start LotteryCornerComputerEffect LotteryCornerComputerEffect: @ 810E6A4 push {r4,lr} adds r4, r0, 0 movs r1, 0xE ldrsh r0, [r4, r1] cmp r0, 0x6 bne _0810E712 movs r0, 0 strh r0, [r4, 0xE] movs r1, 0x10 ldrsh r0, [r4, r1] cmp r0, 0 beq _0810E6DC ldr r2, _0810E6D4 @ =0x00000e9d movs r0, 0x12 movs r1, 0x8 bl MapGridSetMetatileIdAt ldr r2, _0810E6D8 @ =0x00000ea5 movs r0, 0x12 movs r1, 0x9 bl MapGridSetMetatileIdAt b _0810E6F2 .align 2, 0 _0810E6D4: .4byte 0x00000e9d _0810E6D8: .4byte 0x00000ea5 _0810E6DC: ldr r2, _0810E720 @ =0x00000e58 movs r0, 0x12 movs r1, 0x8 bl MapGridSetMetatileIdAt movs r2, 0xE6 lsls r2, 4 movs r0, 0x12 movs r1, 0x9 bl MapGridSetMetatileIdAt _0810E6F2: bl DrawWholeMapView ldrh r0, [r4, 0x10] movs r1, 0x1 eors r0, r1 strh r0, [r4, 0x10] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 bne _0810E712 ldrb r0, [r4, 0xA] bl DestroyTask _0810E712: ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] pop {r4} pop {r0} bx r0 .align 2, 0 _0810E720: .4byte 0x00000e58 thumb_func_end LotteryCornerComputerEffect thumb_func_start EndLotteryCornerComputerEffect EndLotteryCornerComputerEffect: @ 810E724 push {lr} ldr r2, _0810E744 @ =0x00000e9d movs r0, 0x12 movs r1, 0x8 bl MapGridSetMetatileIdAt ldr r2, _0810E748 @ =0x00000ea5 movs r0, 0x12 movs r1, 0x9 bl MapGridSetMetatileIdAt bl DrawWholeMapView pop {r0} bx r0 .align 2, 0 _0810E744: .4byte 0x00000e9d _0810E748: .4byte 0x00000ea5 thumb_func_end EndLotteryCornerComputerEffect thumb_func_start SetDepartmentStoreFloorVar SetDepartmentStoreFloorVar: @ 810E74C push {lr} ldr r0, _0810E768 @ =gSaveBlock1 ldrb r0, [r0, 0x15] subs r0, 0x11 lsls r0, 24 asrs r0, 24 cmp r0, 0x5 bhi _0810E79C lsls r0, 2 ldr r1, _0810E76C @ =_0810E770 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0810E768: .4byte gSaveBlock1 _0810E76C: .4byte _0810E770 .align 2, 0 _0810E770: .4byte _0810E79C .4byte _0810E788 .4byte _0810E78C .4byte _0810E790 .4byte _0810E794 .4byte _0810E798 _0810E788: movs r1, 0x1 b _0810E79E _0810E78C: movs r1, 0x2 b _0810E79E _0810E790: movs r1, 0x3 b _0810E79E _0810E794: movs r1, 0x4 b _0810E79E _0810E798: movs r1, 0xF b _0810E79E _0810E79C: movs r1, 0 _0810E79E: ldr r0, _0810E7A8 @ =0x00004043 bl VarSet pop {r0} bx r0 .align 2, 0 _0810E7A8: .4byte 0x00004043 thumb_func_end SetDepartmentStoreFloorVar thumb_func_start ScriptAddElevatorMenuItem ScriptAddElevatorMenuItem: @ 810E7AC push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r2, 24 mov r12, r2 lsls r3, 24 lsrs r3, 24 mov r8, r3 ldr r0, _0810E81C @ =gSpecialVar_0x8004 ldrh r1, [r0] adds r2, r0, 0 ldr r3, _0810E820 @ =gUnknown_03000760 cmp r1, 0 bne _0810E7E8 movs r1, 0 adds r5, r3, 0 movs r4, 0x10 _0810E7D8: lsls r0, r1, 2 adds r0, r5 strb r4, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x13 bls _0810E7D8 _0810E7E8: ldrh r0, [r2] lsls r0, 2 adds r0, r3 strb r6, [r0] ldrh r0, [r2] lsls r0, 2 adds r0, r3 strb r7, [r0, 0x1] ldrh r0, [r2] lsls r0, 2 adds r0, r3 mov r1, r12 strb r1, [r0, 0x2] ldrh r0, [r2] lsls r0, 2 adds r0, r3 mov r1, r8 strb r1, [r0, 0x3] ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810E81C: .4byte gSpecialVar_0x8004 _0810E820: .4byte gUnknown_03000760 thumb_func_end ScriptAddElevatorMenuItem thumb_func_start ScriptShowElevatorMenu ScriptShowElevatorMenu: @ 810E824 push {r4,r5,lr} movs r4, 0 ldr r5, _0810E868 @ =gUnknown_0203925A strb r4, [r5] ldr r0, _0810E86C @ =gUnknown_0203925B strb r4, [r0] movs r0, 0x10 movs r1, 0 movs r2, 0 movs r3, 0 bl ScriptAddElevatorMenuItem ldr r2, _0810E870 @ =gUnknown_03000760 ldrb r0, [r2] cmp r0, 0x10 beq _0810E85C adds r1, r5, 0 _0810E846: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r2 ldrb r0, [r0] cmp r0, 0x10 bne _0810E846 _0810E85C: bl sub_810E874 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810E868: .4byte gUnknown_0203925A _0810E86C: .4byte gUnknown_0203925B _0810E870: .4byte gUnknown_03000760 thumb_func_end ScriptShowElevatorMenu thumb_func_start sub_810E874 sub_810E874: @ 810E874 push {r4-r6,lr} sub sp, 0x8 bl ScriptContext2_Enable ldr r4, _0810E8B8 @ =gUnknown_0203925A ldrb r0, [r4] cmp r0, 0x5 bls _0810E8C0 movs r0, 0 movs r1, 0 movs r2, 0x8 movs r3, 0xB bl MenuDrawTextWindow movs r4, 0 str r4, [sp] movs r0, 0x7 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x1 movs r3, 0x5 bl InitMenu ldr r0, _0810E8BC @ =gUnknown_0203925C strb r4, [r0] bl sub_80F944C bl LoadScrollIndicatorPalette bl sub_810ECD4 b _0810E8E8 .align 2, 0 _0810E8B8: .4byte gUnknown_0203925A _0810E8BC: .4byte gUnknown_0203925C _0810E8C0: ldrb r3, [r4] lsls r3, 1 adds r3, 0x1 lsls r3, 24 lsrs r3, 24 movs r0, 0 movs r1, 0 movs r2, 0x8 bl MenuDrawTextWindow ldrb r3, [r4] movs r0, 0 str r0, [sp] movs r0, 0x7 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl InitMenu _0810E8E8: movs r4, 0 ldr r1, _0810E938 @ =gUnknown_03000760 ldrb r0, [r1] cmp r0, 0x10 beq _0810E924 ldr r6, _0810E93C @ =gUnknown_083F8380 adds r5, r1, 0 _0810E8F6: lsls r0, r4, 2 adds r0, r5 ldrb r0, [r0] lsls r0, 2 adds r0, r6 ldr r0, [r0] lsls r2, r4, 1 adds r2, 0x1 lsls r2, 24 lsrs r2, 24 movs r1, 0x1 bl MenuPrint adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 bhi _0810E924 lsls r0, r4, 2 adds r0, r5 ldrb r0, [r0] cmp r0, 0x10 bne _0810E8F6 _0810E924: bl sub_810E944 ldr r0, _0810E940 @ =sub_810E984 movs r1, 0x8 bl CreateTask add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810E938: .4byte gUnknown_03000760 _0810E93C: .4byte gUnknown_083F8380 _0810E940: .4byte sub_810E984 thumb_func_end sub_810E874 thumb_func_start sub_810E944 sub_810E944: @ 810E944 push {lr} movs r0, 0x14 movs r1, 0 movs r2, 0x1D movs r3, 0x5 bl MenuDrawTextWindow ldr r0, _0810E978 @ =gOtherText_NowOn movs r1, 0x15 movs r2, 0x1 movs r3, 0x40 bl sub_8072BD8 ldr r1, _0810E97C @ =gUnknown_083F8380 ldr r0, _0810E980 @ =gSpecialVar_0x8005 ldrh r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x15 movs r2, 0x3 movs r3, 0x40 bl sub_8072BD8 pop {r0} bx r0 .align 2, 0 _0810E978: .4byte gOtherText_NowOn _0810E97C: .4byte gUnknown_083F8380 _0810E980: .4byte gSpecialVar_0x8005 thumb_func_end sub_810E944 thumb_func_start sub_810E984 sub_810E984: @ 810E984 push {r4-r6,lr} sub sp, 0x8 lsls r0, 24 lsrs r6, r0, 24 ldr r0, _0810EA44 @ =gMain ldrh r0, [r0, 0x2E] cmp r0, 0x40 bne _0810E9B8 ldr r1, _0810EA48 @ =gUnknown_0203925B ldrb r0, [r1] cmp r0, 0 beq _0810E9B8 subs r0, 0x1 strb r0, [r1] bl GetMenuCursorPos lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x1 negs r0, r0 bl MoveMenuCursorNoWrap adds r0, r4, 0 movs r1, 0x40 bl sub_810EAC8 _0810E9B8: ldr r0, _0810EA44 @ =gMain ldrh r0, [r0, 0x2E] cmp r0, 0x80 bne _0810E9E8 ldr r2, _0810EA48 @ =gUnknown_0203925B ldrb r1, [r2] ldr r0, _0810EA4C @ =gUnknown_0203925A ldrb r0, [r0] subs r0, 0x1 cmp r1, r0 beq _0810E9E8 adds r0, r1, 0x1 strb r0, [r2] bl GetMenuCursorPos lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x1 bl MoveMenuCursorNoWrap adds r0, r4, 0 movs r1, 0x80 bl sub_810EAC8 _0810E9E8: ldr r0, _0810EA44 @ =gMain ldrh r2, [r0, 0x2E] movs r5, 0x1 adds r1, r5, 0 ands r1, r2 cmp r1, 0 beq _0810EA94 ldr r1, _0810EA50 @ =gUnknown_03000760 ldr r4, _0810EA48 @ =gUnknown_0203925B ldrb r0, [r4] lsls r0, 2 adds r0, r1 movs r1, 0x1 ldrsb r1, [r0, r1] movs r2, 0x2 ldrsb r2, [r0, r2] movs r3, 0x1 negs r3, r3 movs r0, 0x2 str r0, [sp] str r5, [sp, 0x4] movs r0, 0 bl saved_warp2_set_2 ldr r1, _0810EA54 @ =gSpecialVar_0x8005 ldrh r0, [r1] ldrb r2, [r4] cmp r0, r2 bne _0810EA5C ldr r1, _0810EA58 @ =gScriptResult movs r0, 0 strh r0, [r1] movs r0, 0x5 bl PlaySE movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0xC bl MenuZeroFillWindowRect adds r0, r6, 0 bl sub_810EC9C b _0810EABC .align 2, 0 _0810EA44: .4byte gMain _0810EA48: .4byte gUnknown_0203925B _0810EA4C: .4byte gUnknown_0203925A _0810EA50: .4byte gUnknown_03000760 _0810EA54: .4byte gSpecialVar_0x8005 _0810EA58: .4byte gScriptResult _0810EA5C: ldr r0, _0810EA88 @ =gScriptResult strh r5, [r0] ldrb r0, [r4] strh r0, [r1] bl sub_810EBEC ldr r0, _0810EA8C @ =gScriptLastTalked ldrb r0, [r0] ldr r2, _0810EA90 @ =gSaveBlock1 ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] movs r3, 0x1 bl FieldObjectTurnByLocalIdAndMap bl sub_810EEDC bl MenuZeroFillScreen adds r0, r6, 0 bl DestroyTask b _0810EABC .align 2, 0 _0810EA88: .4byte gScriptResult _0810EA8C: .4byte gScriptLastTalked _0810EA90: .4byte gSaveBlock1 _0810EA94: movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _0810EABC ldr r0, _0810EAC4 @ =gScriptResult strh r1, [r0] movs r0, 0x5 bl PlaySE bl sub_810EEDC movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0xC bl MenuZeroFillWindowRect adds r0, r6, 0 bl sub_810EC9C _0810EABC: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810EAC4: .4byte gScriptResult thumb_func_end sub_810E984 thumb_func_start sub_810EAC8 sub_810EAC8: @ 810EAC8 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r2, r0, 24 adds r5, r2, 0 lsls r1, 24 lsrs r1, 24 adds r3, r1, 0 movs r7, 0 movs r4, 0 ldr r0, _0810EAEC @ =gUnknown_0203925A ldrb r0, [r0] cmp r0, 0x4 bhi _0810EAF0 movs r0, 0 b _0810EB78 .align 2, 0 _0810EAEC: .4byte gUnknown_0203925A _0810EAF0: cmp r1, 0x40 bne _0810EB04 cmp r2, 0 bne _0810EB18 ldr r0, _0810EB00 @ =gUnknown_0203925B ldrb r4, [r0] movs r7, 0x1 b _0810EB1C .align 2, 0 _0810EB00: .4byte gUnknown_0203925B _0810EB04: cmp r3, 0x80 bne _0810EB18 cmp r5, 0x4 bne _0810EB18 ldr r0, _0810EB84 @ =gUnknown_0203925B ldrb r0, [r0] subs r0, 0x4 lsls r0, 24 lsrs r4, r0, 24 movs r7, 0x1 _0810EB18: cmp r7, 0 beq _0810EB76 _0810EB1C: adds r0, r4, 0 movs r1, 0x5 bl sub_810EB90 movs r0, 0x2 movs r1, 0x1 movs r2, 0x7 movs r3, 0xA bl MenuFillWindowRectWithBlankTile movs r5, 0 ldr r2, _0810EB88 @ =gUnknown_03000760 lsls r1, r4, 2 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x10 beq _0810EB76 ldr r0, _0810EB8C @ =gUnknown_083F8380 mov r8, r0 adds r6, r2, 0 _0810EB44: adds r0, r1, r6 ldrb r0, [r0] lsls r0, 2 add r0, r8 ldr r0, [r0] lsls r2, r5, 1 adds r2, 0x1 lsls r2, 24 lsrs r2, 24 movs r1, 0x1 bl MenuPrint adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x4 bhi _0810EB76 lsls r1, r4, 2 adds r0, r1, r6 ldrb r0, [r0] cmp r0, 0x10 bne _0810EB44 _0810EB76: adds r0, r7, 0 _0810EB78: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0810EB84: .4byte gUnknown_0203925B _0810EB88: .4byte gUnknown_03000760 _0810EB8C: .4byte gUnknown_083F8380 thumb_func_end sub_810EAC8 thumb_func_start sub_810EB90 sub_810EB90: @ 810EB90 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 cmp r4, 0 bne _0810EBB4 ldr r0, _0810EBB0 @ =gUnknown_0203925C ldrb r1, [r0] movs r2, 0x2 eors r1, r2 strb r1, [r0] movs r0, 0 bl DestroyVerticalScrollIndicator b _0810EBB8 .align 2, 0 _0810EBB0: .4byte gUnknown_0203925C _0810EBB4: bl sub_810ECB0 _0810EBB8: adds r1, r4, r5 ldr r0, _0810EBC8 @ =gUnknown_0203925A ldrb r0, [r0] cmp r1, r0 bge _0810EBCC bl sub_810ECD4 b _0810EBE0 .align 2, 0 _0810EBC8: .4byte gUnknown_0203925A _0810EBCC: cmp r1, r0 bne _0810EBE0 ldr r0, _0810EBE8 @ =gUnknown_0203925C ldrb r1, [r0] movs r2, 0x1 eors r1, r2 strb r1, [r0] movs r0, 0x1 bl DestroyVerticalScrollIndicator _0810EBE0: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810EBE8: .4byte gUnknown_0203925C thumb_func_end sub_810EB90 thumb_func_start sub_810EBEC sub_810EBEC: @ 810EBEC push {lr} ldr r0, _0810EC2C @ =sub_810EC34 movs r1, 0x9 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0810EC30 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 movs r2, 0x1 strh r2, [r1, 0x8] strh r0, [r1, 0xA] strh r0, [r1, 0xC] strh r0, [r1, 0xE] strh r2, [r1, 0x10] movs r0, 0x3 strh r0, [r1, 0x12] movs r0, 0 bl SetCameraPanningCallback bl sub_810ECFC movs r0, 0x59 bl PlaySE pop {r0} bx r0 .align 2, 0 _0810EC2C: .4byte sub_810EC34 _0810EC30: .4byte gTasks thumb_func_end sub_810EBEC thumb_func_start sub_810EC34 sub_810EC34: @ 810EC34 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _0810EC98 @ =gTasks adds r4, r0, r1 ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] movs r1, 0xA ldrsh r0, [r4, r1] movs r2, 0x12 ldrsh r1, [r4, r2] bl __modsi3 cmp r0, 0 bne _0810EC92 strh r0, [r4, 0xA] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] movs r1, 0xE ldrsh r0, [r4, r1] cmp r0, 0 bne _0810EC92 ldrh r0, [r4, 0x10] negs r0, r0 strh r0, [r4, 0x10] movs r2, 0x10 ldrsh r1, [r4, r2] movs r0, 0 bl SetCameraPanning movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0x17 bne _0810EC92 movs r0, 0x49 bl PlaySE adds r0, r5, 0 bl sub_810EC9C bl InstallCameraPanAheadCallback _0810EC92: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810EC98: .4byte gTasks thumb_func_end sub_810EC34 thumb_func_start sub_810EC9C sub_810EC9C: @ 810EC9C push {lr} lsls r0, 24 lsrs r0, 24 bl DestroyTask bl EnableBothScriptContexts pop {r0} bx r0 thumb_func_end sub_810EC9C thumb_func_start sub_810ECB0 sub_810ECB0: @ 810ECB0 push {lr} ldr r2, _0810ECD0 @ =gUnknown_0203925C ldrb r1, [r2] lsrs r0, r1, 1 cmp r0, 0x1 beq _0810ECCC movs r0, 0x2 orrs r0, r1 strb r0, [r2] movs r0, 0 movs r1, 0x24 movs r2, 0x8 bl CreateVerticalScrollIndicators _0810ECCC: pop {r0} bx r0 .align 2, 0 _0810ECD0: .4byte gUnknown_0203925C thumb_func_end sub_810ECB0 thumb_func_start sub_810ECD4 sub_810ECD4: @ 810ECD4 push {lr} ldr r2, _0810ECF8 @ =gUnknown_0203925C ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0810ECF2 movs r0, 0x1 orrs r0, r1 strb r0, [r2] movs r0, 0x1 movs r1, 0x24 movs r2, 0x48 bl CreateVerticalScrollIndicators _0810ECF2: pop {r0} bx r0 .align 2, 0 _0810ECF8: .4byte gUnknown_0203925C thumb_func_end sub_810ECD4 thumb_func_start sub_810ECFC sub_810ECFC: @ 810ECFC push {r4,lr} ldr r4, _0810ED38 @ =sub_810ED40 adds r0, r4, 0 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0810ED30 adds r0, r4, 0 movs r1, 0x8 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0810ED3C @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0 strh r2, [r1, 0x8] strh r0, [r1, 0xA] strh r2, [r1, 0xC] strh r2, [r1, 0xE] strh r2, [r1, 0x10] _0810ED30: pop {r4} pop {r0} bx r0 .align 2, 0 _0810ED38: .4byte sub_810ED40 _0810ED3C: .4byte gTasks thumb_func_end sub_810ECFC thumb_func_start sub_810ED40 sub_810ED40: @ 810ED40 push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _0810ED5C @ =gTasks adds r0, r1 bl sub_810ED60 pop {r0} bx r0 .align 2, 0 _0810ED5C: .4byte gTasks thumb_func_end sub_810ED40 thumb_func_start sub_810ED60 sub_810ED60: @ 810ED60 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0xE ldrsh r0, [r5, r1] cmp r0, 0x8 beq _0810ED6E b _0810EEB2 _0810ED6E: movs r0, 0 strh r0, [r5, 0xE] movs r1, 0x10 ldrsh r0, [r5, r1] cmp r0, 0 beq _0810EE14 ldr r2, _0810EDFC @ =0x00000e68 movs r0, 0x7 movs r1, 0x7 bl MapGridSetMetatileIdAt ldr r4, _0810EE00 @ =0x00000e69 movs r0, 0x8 movs r1, 0x7 adds r2, r4, 0 bl MapGridSetMetatileIdAt movs r0, 0x9 movs r1, 0x7 adds r2, r4, 0 bl MapGridSetMetatileIdAt ldr r2, _0810EE04 @ =0x00000e6a movs r0, 0xA movs r1, 0x7 bl MapGridSetMetatileIdAt movs r2, 0xE7 lsls r2, 4 movs r0, 0x7 movs r1, 0x8 bl MapGridSetMetatileIdAt adds r4, 0x8 movs r0, 0x8 movs r1, 0x8 adds r2, r4, 0 bl MapGridSetMetatileIdAt movs r0, 0x9 movs r1, 0x8 adds r2, r4, 0 bl MapGridSetMetatileIdAt ldr r2, _0810EE08 @ =0x00000e72 movs r0, 0xA movs r1, 0x8 bl MapGridSetMetatileIdAt ldr r2, _0810EE0C @ =0x00000e78 movs r0, 0x7 movs r1, 0x9 bl MapGridSetMetatileIdAt adds r4, 0x8 movs r0, 0x8 movs r1, 0x9 adds r2, r4, 0 bl MapGridSetMetatileIdAt movs r0, 0x9 movs r1, 0x9 adds r2, r4, 0 bl MapGridSetMetatileIdAt ldr r2, _0810EE10 @ =0x00000e7a movs r0, 0xA movs r1, 0x9 bl MapGridSetMetatileIdAt b _0810EE92 .align 2, 0 _0810EDFC: .4byte 0x00000e68 _0810EE00: .4byte 0x00000e69 _0810EE04: .4byte 0x00000e6a _0810EE08: .4byte 0x00000e72 _0810EE0C: .4byte 0x00000e78 _0810EE10: .4byte 0x00000e7a _0810EE14: ldr r2, _0810EEC0 @ =0x00000e6b movs r0, 0x7 movs r1, 0x7 bl MapGridSetMetatileIdAt ldr r4, _0810EEC4 @ =0x00000e6c movs r0, 0x8 movs r1, 0x7 adds r2, r4, 0 bl MapGridSetMetatileIdAt movs r0, 0x9 movs r1, 0x7 adds r2, r4, 0 bl MapGridSetMetatileIdAt ldr r2, _0810EEC8 @ =0x00000e6d movs r0, 0xA movs r1, 0x7 bl MapGridSetMetatileIdAt ldr r2, _0810EECC @ =0x00000e73 movs r0, 0x7 movs r1, 0x8 bl MapGridSetMetatileIdAt adds r4, 0x8 movs r0, 0x8 movs r1, 0x8 adds r2, r4, 0 bl MapGridSetMetatileIdAt movs r0, 0x9 movs r1, 0x8 adds r2, r4, 0 bl MapGridSetMetatileIdAt ldr r2, _0810EED0 @ =0x00000e75 movs r0, 0xA movs r1, 0x8 bl MapGridSetMetatileIdAt ldr r2, _0810EED4 @ =0x00000e7b movs r0, 0x7 movs r1, 0x9 bl MapGridSetMetatileIdAt adds r4, 0x8 movs r0, 0x8 movs r1, 0x9 adds r2, r4, 0 bl MapGridSetMetatileIdAt movs r0, 0x9 movs r1, 0x9 adds r2, r4, 0 bl MapGridSetMetatileIdAt ldr r2, _0810EED8 @ =0x00000e7d movs r0, 0xA movs r1, 0x9 bl MapGridSetMetatileIdAt _0810EE92: bl DrawWholeMapView ldrh r0, [r5, 0x10] movs r1, 0x1 eors r0, r1 strh r0, [r5, 0x10] ldrh r0, [r5, 0xC] adds r0, 0x1 strh r0, [r5, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 bne _0810EEB2 ldrb r0, [r5, 0xA] bl DestroyTask _0810EEB2: ldrh r0, [r5, 0xE] adds r0, 0x1 strh r0, [r5, 0xE] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810EEC0: .4byte 0x00000e6b _0810EEC4: .4byte 0x00000e6c _0810EEC8: .4byte 0x00000e6d _0810EECC: .4byte 0x00000e73 _0810EED0: .4byte 0x00000e75 _0810EED4: .4byte 0x00000e7b _0810EED8: .4byte 0x00000e7d thumb_func_end sub_810ED60 thumb_func_start sub_810EEDC sub_810EEDC: @ 810EEDC push {r4,lr} ldr r4, _0810EF08 @ =gUnknown_0203925C ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0810EEF0 movs r0, 0x1 bl DestroyVerticalScrollIndicator _0810EEF0: ldrb r0, [r4] lsrs r0, 1 cmp r0, 0x1 bne _0810EEFE movs r0, 0 bl DestroyVerticalScrollIndicator _0810EEFE: bl BuyMenuFreeMemory pop {r4} pop {r0} bx r0 .align 2, 0 _0810EF08: .4byte gUnknown_0203925C thumb_func_end sub_810EEDC thumb_func_start SetTrickHouseEndRoomFlag SetTrickHouseEndRoomFlag: @ 810EF0C push {lr} ldr r1, _0810EF1C @ =gSpecialVar_0x8004 ldr r0, _0810EF20 @ =0x00000259 strh r0, [r1] bl FlagSet pop {r0} bx r0 .align 2, 0 _0810EF1C: .4byte gSpecialVar_0x8004 _0810EF20: .4byte 0x00000259 thumb_func_end SetTrickHouseEndRoomFlag thumb_func_start ResetTrickHouseEndRoomFlag ResetTrickHouseEndRoomFlag: @ 810EF24 push {lr} ldr r1, _0810EF34 @ =gSpecialVar_0x8004 ldr r0, _0810EF38 @ =0x00000259 strh r0, [r1] bl FlagReset pop {r0} bx r0 .align 2, 0 _0810EF34: .4byte gSpecialVar_0x8004 _0810EF38: .4byte 0x00000259 thumb_func_end ResetTrickHouseEndRoomFlag thumb_func_start CheckLeadMonCool CheckLeadMonCool: @ 810EF3C push {lr} bl GetLeadMonIndex lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0810EF5C @ =gPlayerParty adds r0, r1 movs r1, 0x16 bl GetMonData cmp r0, 0xC7 bls _0810EF60 movs r0, 0x1 b _0810EF62 .align 2, 0 _0810EF5C: .4byte gPlayerParty _0810EF60: movs r0, 0 _0810EF62: pop {r1} bx r1 thumb_func_end CheckLeadMonCool thumb_func_start CheckLeadMonBeauty CheckLeadMonBeauty: @ 810EF68 push {lr} bl GetLeadMonIndex lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0810EF88 @ =gPlayerParty adds r0, r1 movs r1, 0x17 bl GetMonData cmp r0, 0xC7 bls _0810EF8C movs r0, 0x1 b _0810EF8E .align 2, 0 _0810EF88: .4byte gPlayerParty _0810EF8C: movs r0, 0 _0810EF8E: pop {r1} bx r1 thumb_func_end CheckLeadMonBeauty thumb_func_start CheckLeadMonCute CheckLeadMonCute: @ 810EF94 push {lr} bl GetLeadMonIndex lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0810EFB4 @ =gPlayerParty adds r0, r1 movs r1, 0x18 bl GetMonData cmp r0, 0xC7 bls _0810EFB8 movs r0, 0x1 b _0810EFBA .align 2, 0 _0810EFB4: .4byte gPlayerParty _0810EFB8: movs r0, 0 _0810EFBA: pop {r1} bx r1 thumb_func_end CheckLeadMonCute thumb_func_start CheckLeadMonSmart CheckLeadMonSmart: @ 810EFC0 push {lr} bl GetLeadMonIndex lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0810EFE0 @ =gPlayerParty adds r0, r1 movs r1, 0x21 bl GetMonData cmp r0, 0xC7 bls _0810EFE4 movs r0, 0x1 b _0810EFE6 .align 2, 0 _0810EFE0: .4byte gPlayerParty _0810EFE4: movs r0, 0 _0810EFE6: pop {r1} bx r1 thumb_func_end CheckLeadMonSmart thumb_func_start CheckLeadMonTough CheckLeadMonTough: @ 810EFEC push {lr} bl GetLeadMonIndex lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0810F00C @ =gPlayerParty adds r0, r1 movs r1, 0x2F bl GetMonData cmp r0, 0xC7 bls _0810F010 movs r0, 0x1 b _0810F012 .align 2, 0 _0810F00C: .4byte gPlayerParty _0810F010: movs r0, 0 _0810F012: pop {r1} bx r1 thumb_func_end CheckLeadMonTough thumb_func_start IsGrassTypeInParty IsGrassTypeInParty: @ 810F018 push {r4-r6,lr} movs r5, 0 ldr r6, _0810F068 @ =gBaseStats _0810F01E: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _0810F06C @ =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x5 bl GetMonData cmp r0, 0 beq _0810F074 adds r0, r4, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _0810F074 adds r0, r4, 0 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r0, 16 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r6 ldrb r0, [r1, 0x6] cmp r0, 0xC beq _0810F060 ldrb r0, [r1, 0x7] cmp r0, 0xC bne _0810F074 _0810F060: ldr r1, _0810F070 @ =gScriptResult movs r0, 0x1 b _0810F082 .align 2, 0 _0810F068: .4byte gBaseStats _0810F06C: .4byte gPlayerParty _0810F070: .4byte gScriptResult _0810F074: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _0810F01E ldr r1, _0810F08C @ =gScriptResult movs r0, 0 _0810F082: strh r0, [r1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810F08C: .4byte gScriptResult thumb_func_end IsGrassTypeInParty thumb_func_start ShowGlassWorkshopMenu ShowGlassWorkshopMenu: @ 810F090 push {r4,r5,lr} sub sp, 0x8 bl ScriptContext2_Enable movs r0, 0 movs r1, 0 movs r2, 0xA movs r3, 0xB bl MenuDrawTextWindow movs r4, 0 str r4, [sp] movs r0, 0x9 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x1 movs r3, 0x5 bl InitMenu ldr r0, _0810F104 @ =gUnknown_0203925C strb r4, [r0] bl sub_80F944C bl LoadScrollIndicatorPalette bl sub_810F2B4 ldr r5, _0810F108 @ =gUnknown_083F83C0 _0810F0CA: lsls r0, r4, 2 adds r0, r5 ldr r0, [r0] lsls r2, r4, 1 adds r2, 0x1 lsls r2, 24 lsrs r2, 24 movs r1, 0x1 bl MenuPrint adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 bls _0810F0CA ldr r1, _0810F10C @ =gUnknown_0203925B movs r0, 0 strb r0, [r1] ldr r1, _0810F110 @ =gUnknown_0203925A movs r0, 0x8 strb r0, [r1] ldr r0, _0810F114 @ =sub_810F118 movs r1, 0x8 bl CreateTask add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810F104: .4byte gUnknown_0203925C _0810F108: .4byte gUnknown_083F83C0 _0810F10C: .4byte gUnknown_0203925B _0810F110: .4byte gUnknown_0203925A _0810F114: .4byte sub_810F118 thumb_func_end ShowGlassWorkshopMenu thumb_func_start sub_810F118 sub_810F118: @ 810F118 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0810F1E4 @ =gMain ldrh r0, [r0, 0x2E] cmp r0, 0x40 bne _0810F14A ldr r1, _0810F1E8 @ =gUnknown_0203925B ldrb r0, [r1] cmp r0, 0 beq _0810F14A subs r0, 0x1 strb r0, [r1] bl GetMenuCursorPos lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x1 negs r0, r0 bl MoveMenuCursorNoWrap adds r0, r4, 0 movs r1, 0x40 bl sub_810F1F4 _0810F14A: ldr r0, _0810F1E4 @ =gMain ldrh r0, [r0, 0x2E] cmp r0, 0x80 bne _0810F17A ldr r2, _0810F1E8 @ =gUnknown_0203925B ldrb r1, [r2] ldr r0, _0810F1EC @ =gUnknown_0203925A ldrb r0, [r0] subs r0, 0x1 cmp r1, r0 beq _0810F17A adds r0, r1, 0x1 strb r0, [r2] bl GetMenuCursorPos lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x1 bl MoveMenuCursorNoWrap adds r0, r4, 0 movs r1, 0x80 bl sub_810F1F4 _0810F17A: ldr r4, _0810F1E4 @ =gMain ldrh r1, [r4, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0810F1AE bl sub_8072DEC ldr r0, _0810F1F0 @ =gScriptResult ldr r1, _0810F1E8 @ =gUnknown_0203925B ldrb r1, [r1] strh r1, [r0] movs r0, 0x5 bl PlaySE bl sub_810EEDC movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0xC bl MenuZeroFillWindowRect adds r0, r5, 0 bl sub_810EC9C _0810F1AE: ldrh r1, [r4, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0810F1DE bl sub_8072DEC ldr r1, _0810F1F0 @ =gScriptResult movs r0, 0x7F strh r0, [r1] movs r0, 0x5 bl PlaySE bl sub_810EEDC movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0xC bl MenuZeroFillWindowRect adds r0, r5, 0 bl sub_810EC9C _0810F1DE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810F1E4: .4byte gMain _0810F1E8: .4byte gUnknown_0203925B _0810F1EC: .4byte gUnknown_0203925A _0810F1F0: .4byte gScriptResult thumb_func_end sub_810F118 thumb_func_start sub_810F1F4 sub_810F1F4: @ 810F1F4 push {r4-r7,lr} lsls r0, 24 lsrs r2, r0, 24 adds r5, r2, 0 lsls r1, 24 lsrs r1, 24 adds r3, r1, 0 movs r6, 0 movs r4, 0 ldr r0, _0810F214 @ =gUnknown_0203925A ldrb r0, [r0] cmp r0, 0x4 bhi _0810F218 movs r0, 0 b _0810F282 .align 2, 0 _0810F214: .4byte gUnknown_0203925A _0810F218: cmp r1, 0x40 bne _0810F22C cmp r2, 0 bne _0810F240 ldr r0, _0810F228 @ =gUnknown_0203925B ldrb r4, [r0] movs r6, 0x1 b _0810F244 .align 2, 0 _0810F228: .4byte gUnknown_0203925B _0810F22C: cmp r3, 0x80 bne _0810F240 cmp r5, 0x4 bne _0810F240 ldr r0, _0810F288 @ =gUnknown_0203925B ldrb r0, [r0] subs r0, 0x4 lsls r0, 24 lsrs r4, r0, 24 movs r6, 0x1 _0810F240: cmp r6, 0 beq _0810F280 _0810F244: adds r0, r4, 0 movs r1, 0x5 bl GlassWorkshopUpdateScrollIndicators movs r0, 0x2 movs r1, 0x1 movs r2, 0x9 movs r3, 0xA bl MenuFillWindowRectWithBlankTile movs r5, 0 ldr r7, _0810F28C @ =gUnknown_083F83C0 _0810F25C: lsls r0, r4, 2 adds r0, r7 ldr r0, [r0] lsls r2, r5, 1 adds r2, 0x1 lsls r2, 24 lsrs r2, 24 movs r1, 0x1 bl MenuPrint adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x4 bls _0810F25C _0810F280: adds r0, r6, 0 _0810F282: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0810F288: .4byte gUnknown_0203925B _0810F28C: .4byte gUnknown_083F83C0 thumb_func_end sub_810F1F4 thumb_func_start sub_810F290 sub_810F290: @ 810F290 push {lr} ldr r2, _0810F2B0 @ =gUnknown_0203925C ldrb r1, [r2] lsrs r0, r1, 1 cmp r0, 0x1 beq _0810F2AC movs r0, 0x2 orrs r0, r1 strb r0, [r2] movs r0, 0 movs r1, 0x2C movs r2, 0x8 bl CreateVerticalScrollIndicators _0810F2AC: pop {r0} bx r0 .align 2, 0 _0810F2B0: .4byte gUnknown_0203925C thumb_func_end sub_810F290 thumb_func_start sub_810F2B4 sub_810F2B4: @ 810F2B4 push {lr} ldr r2, _0810F2D8 @ =gUnknown_0203925C ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0810F2D2 movs r0, 0x1 orrs r0, r1 strb r0, [r2] movs r0, 0x1 movs r1, 0x2C movs r2, 0x58 bl CreateVerticalScrollIndicators _0810F2D2: pop {r0} bx r0 .align 2, 0 _0810F2D8: .4byte gUnknown_0203925C thumb_func_end sub_810F2B4 thumb_func_start GlassWorkshopUpdateScrollIndicators GlassWorkshopUpdateScrollIndicators: @ 810F2DC push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 cmp r4, 0 bne _0810F300 ldr r0, _0810F2FC @ =gUnknown_0203925C ldrb r1, [r0] movs r2, 0x2 eors r1, r2 strb r1, [r0] movs r0, 0 bl DestroyVerticalScrollIndicator b _0810F304 .align 2, 0 _0810F2FC: .4byte gUnknown_0203925C _0810F300: bl sub_810F290 _0810F304: adds r1, r4, r5 ldr r0, _0810F314 @ =gUnknown_0203925A ldrb r0, [r0] cmp r1, r0 bge _0810F318 bl sub_810F2B4 b _0810F32C .align 2, 0 _0810F314: .4byte gUnknown_0203925A _0810F318: cmp r1, r0 bne _0810F32C ldr r0, _0810F334 @ =gUnknown_0203925C ldrb r1, [r0] movs r2, 0x1 eors r1, r2 strb r1, [r0] movs r0, 0x1 bl DestroyVerticalScrollIndicator _0810F32C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810F334: .4byte gUnknown_0203925C thumb_func_end GlassWorkshopUpdateScrollIndicators thumb_func_start SpawnCameraDummy SpawnCameraDummy: @ 810F338 push {lr} sub sp, 0x8 ldr r0, _0810F380 @ =gSaveBlock1 ldrh r3, [r0] adds r3, 0x7 lsls r3, 16 asrs r3, 16 ldrh r0, [r0, 0x2] adds r0, 0x7 lsls r0, 16 asrs r0, 16 str r0, [sp] movs r0, 0x3 str r0, [sp, 0x4] movs r0, 0x7 movs r1, 0x8 movs r2, 0x7F bl SpawnSpecialFieldObjectParametrized lsls r0, 24 lsrs r0, 24 ldr r2, _0810F384 @ =gMapObjects lsls r1, r0, 3 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r0, [r1, 0x1] movs r2, 0x20 orrs r0, r2 strb r0, [r1, 0x1] ldrb r0, [r1, 0x4] bl CameraObjectSetFollowedObjectId add sp, 0x8 pop {r0} bx r0 .align 2, 0 _0810F380: .4byte gSaveBlock1 _0810F384: .4byte gMapObjects thumb_func_end SpawnCameraDummy thumb_func_start RemoveCameraDummy RemoveCameraDummy: @ 810F388 push {lr} bl GetPlayerAvatarObjectId lsls r0, 24 lsrs r0, 24 bl CameraObjectSetFollowedObjectId ldr r0, _0810F3A8 @ =gSaveBlock1 ldrb r1, [r0, 0x5] ldrb r2, [r0, 0x4] movs r0, 0x7F bl RemoveFieldObjectByLocalIdAndMap pop {r0} bx r0 .align 2, 0 _0810F3A8: .4byte gSaveBlock1 thumb_func_end RemoveCameraDummy thumb_func_start GetPokeblockNameByMonNature GetPokeblockNameByMonNature: @ 810F3AC push {lr} bl GetLeadMonIndex lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0810F3D4 @ =gPlayerParty adds r0, r1 bl GetNature lsls r0, 24 lsrs r0, 24 ldr r1, _0810F3D8 @ =gStringVar1 bl sub_810CB68 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0810F3D4: .4byte gPlayerParty _0810F3D8: .4byte gStringVar1 thumb_func_end GetPokeblockNameByMonNature thumb_func_start GetSecretBaseNearbyMapName GetSecretBaseNearbyMapName: @ 810F3DC push {r4,lr} ldr r4, _0810F3FC @ =gStringVar1 ldr r0, _0810F400 @ =0x00004026 bl VarGet adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 movs r2, 0 bl sub_80FBFB4 pop {r4} pop {r0} bx r0 .align 2, 0 _0810F3FC: .4byte gStringVar1 _0810F400: .4byte 0x00004026 thumb_func_end GetSecretBaseNearbyMapName thumb_func_start sub_810F404 sub_810F404: @ 810F404 push {lr} movs r0, 0x20 bl GetGameStat lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end sub_810F404 thumb_func_start sub_810F414 sub_810F414: @ 810F414 push {lr} ldr r0, _0810F420 @ =gStringVar1 bl sub_8135FF4 pop {r0} bx r0 .align 2, 0 _0810F420: .4byte gStringVar1 thumb_func_end sub_810F414 thumb_func_start sub_810F424 sub_810F424: @ 810F424 push {r4,r5,lr} ldr r2, _0810F458 @ =gSaveBlock1 ldr r1, _0810F45C @ =0x00002dd4 adds r0, r2, r1 ldrb r1, [r0] lsls r1, 25 ldr r0, _0810F460 @ =0x00002dd6 adds r2, r0 lsrs r1, 25 ldrh r2, [r2] adds r1, r2 ldr r2, _0810F464 @ =gUnknown_083F83E0 ldr r0, _0810F468 @ =gSpecialVar_0x8004 ldrh r0, [r0] adds r0, r2 ldrb r0, [r0] adds r5, r1, r0 movs r0, 0x2 bl GetPriceReduction lsls r0, 24 cmp r0, 0 bne _0810F470 ldr r4, _0810F46C @ =gUnknown_083F83EC b _0810F472 .align 2, 0 _0810F458: .4byte gSaveBlock1 _0810F45C: .4byte 0x00002dd4 _0810F460: .4byte 0x00002dd6 _0810F464: .4byte gUnknown_083F83E0 _0810F468: .4byte gSpecialVar_0x8004 _0810F46C: .4byte gUnknown_083F83EC _0810F470: ldr r4, _0810F484 @ =gUnknown_083F83F8 _0810F472: adds r0, r5, 0 movs r1, 0xC bl __umodsi3 adds r0, r4 ldrb r0, [r0] pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0810F484: .4byte gUnknown_083F83F8 thumb_func_end sub_810F424 thumb_func_start sub_810F488 sub_810F488: @ 810F488 push {lr} ldr r1, _0810F4A0 @ =gSpecialVar_0x8004 ldr r0, _0810F4A4 @ =0x00000277 strh r0, [r1] bl FlagGet lsls r0, 24 cmp r0, 0 beq _0810F4A8 movs r0, 0x1 b _0810F4AA .align 2, 0 _0810F4A0: .4byte gSpecialVar_0x8004 _0810F4A4: .4byte 0x00000277 _0810F4A8: movs r0, 0 _0810F4AA: pop {r1} bx r1 thumb_func_end sub_810F488 thumb_func_start sub_810F4B0 sub_810F4B0: @ 810F4B0 push {lr} ldr r1, _0810F4C8 @ =gSpecialVar_0x8004 movs r0, 0x9E lsls r0, 2 strh r0, [r1] bl FlagGet lsls r0, 24 cmp r0, 0 beq _0810F4CC movs r0, 0x1 b _0810F4CE .align 2, 0 _0810F4C8: .4byte gSpecialVar_0x8004 _0810F4CC: movs r0, 0 _0810F4CE: pop {r1} bx r1 thumb_func_end sub_810F4B0 thumb_func_start sub_810F4D4 sub_810F4D4: @ 810F4D4 push {lr} ldr r1, _0810F4EC @ =gSpecialVar_0x8004 ldr r0, _0810F4F0 @ =0x00000279 strh r0, [r1] bl FlagGet lsls r0, 24 cmp r0, 0 beq _0810F4F4 movs r0, 0x1 b _0810F4F6 .align 2, 0 _0810F4EC: .4byte gSpecialVar_0x8004 _0810F4F0: .4byte 0x00000279 _0810F4F4: movs r0, 0 _0810F4F6: pop {r1} bx r1 thumb_func_end sub_810F4D4 thumb_func_start sub_810F4FC sub_810F4FC: @ 810F4FC push {lr} ldr r1, _0810F514 @ =gSpecialVar_0x8004 ldr r0, _0810F518 @ =0x0000027a strh r0, [r1] bl FlagGet lsls r0, 24 cmp r0, 0 beq _0810F51C movs r0, 0x1 b _0810F51E .align 2, 0 _0810F514: .4byte gSpecialVar_0x8004 _0810F518: .4byte 0x0000027a _0810F51C: movs r0, 0 _0810F51E: pop {r1} bx r1 thumb_func_end sub_810F4FC thumb_func_start LeadMonHasEffortRibbon LeadMonHasEffortRibbon: @ 810F524 push {lr} bl GetLeadMonIndex lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0810F548 @ =gPlayerParty adds r0, r1 movs r1, 0x47 movs r2, 0 bl GetMonData lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0810F548: .4byte gPlayerParty thumb_func_end LeadMonHasEffortRibbon thumb_func_start GivLeadMonEffortRibbon GivLeadMonEffortRibbon: @ 810F54C push {lr} sub sp, 0x4 movs r0, 0x2A bl IncrementGameStat ldr r0, _0810F580 @ =0x0000083b bl FlagSet movs r1, 0x1 mov r0, sp strb r1, [r0] bl GetLeadMonIndex lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0810F584 @ =gPlayerParty adds r0, r1 movs r1, 0x47 mov r2, sp bl SetMonData add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0810F580: .4byte 0x0000083b _0810F584: .4byte gPlayerParty thumb_func_end GivLeadMonEffortRibbon thumb_func_start GetLeadMonEVCount GetLeadMonEVCount: @ 810F588 push {lr} bl GetLeadMonIndex lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0810F5AC @ =gPlayerParty adds r0, r1 bl GetMonEVCount lsls r0, 16 ldr r1, _0810F5B0 @ =0x01fd0000 cmp r0, r1 bhi _0810F5B4 movs r0, 0 b _0810F5B6 .align 2, 0 _0810F5AC: .4byte gPlayerParty _0810F5B0: .4byte 0x01fd0000 _0810F5B4: movs r0, 0x1 _0810F5B6: pop {r1} bx r1 thumb_func_end GetLeadMonEVCount thumb_func_start sub_810F5BC sub_810F5BC: @ 810F5BC push {lr} movs r0, 0xC7 bl FlagGet lsls r0, 24 cmp r0, 0 bne _0810F610 ldr r0, _0810F5E8 @ =gSaveBlock1 ldrh r1, [r0, 0x4] movs r0, 0x83 lsls r0, 3 cmp r1, r0 bne _0810F610 subs r0, 0x75 bl FlagGet lsls r0, 24 cmp r0, 0 beq _0810F5F0 ldr r0, _0810F5EC @ =0x0000409a movs r1, 0x4 b _0810F602 .align 2, 0 _0810F5E8: .4byte gSaveBlock1 _0810F5EC: .4byte 0x0000409a _0810F5F0: movs r0, 0xE9 lsls r0, 2 bl FlagGet lsls r0, 24 cmp r0, 0 beq _0810F610 ldr r0, _0810F60C @ =0x0000409a movs r1, 0x5 _0810F602: bl VarSet movs r0, 0x1 b _0810F612 .align 2, 0 _0810F60C: .4byte 0x0000409a _0810F610: movs r0, 0 _0810F612: pop {r1} bx r1 thumb_func_end sub_810F5BC thumb_func_start SetShoalItemFlag SetShoalItemFlag: @ 810F618 push {lr} ldr r0, _0810F624 @ =0x0000085f bl FlagSet pop {r0} bx r0 .align 2, 0 _0810F624: .4byte 0x0000085f thumb_func_end SetShoalItemFlag thumb_func_start PutZigzagoonInPlayerParty PutZigzagoonInPlayerParty: @ 810F628 push {r4,r5,lr} sub sp, 0x14 ldr r5, _0810F690 @ =gPlayerParty movs r1, 0x90 lsls r1, 1 movs r4, 0 str r4, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] adds r0, r5, 0 movs r2, 0x7 movs r3, 0x20 bl CreateMon movs r1, 0x1 add r0, sp, 0x10 strh r1, [r0] adds r0, r5, 0 movs r1, 0x2E add r2, sp, 0x10 bl SetMonData add r1, sp, 0x10 movs r0, 0x21 strh r0, [r1] adds r0, r5, 0 movs r1, 0xD add r2, sp, 0x10 bl SetMonData add r0, sp, 0x10 strh r4, [r0] adds r0, r5, 0 movs r1, 0xE add r2, sp, 0x10 bl SetMonData adds r0, r5, 0 movs r1, 0xF add r2, sp, 0x10 bl SetMonData adds r0, r5, 0 movs r1, 0x10 add r2, sp, 0x10 bl SetMonData add sp, 0x14 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810F690: .4byte gPlayerParty thumb_func_end PutZigzagoonInPlayerParty thumb_func_start IsStarterInParty IsStarterInParty: @ 810F694 push {r4-r6,lr} ldr r0, _0810F6D0 @ =0x00004023 bl VarGet lsls r0, 16 lsrs r0, 16 bl GetStarterPokemon lsls r0, 16 lsrs r6, r0, 16 bl CalculatePlayerPartyCount lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 cmp r4, r5 bcs _0810F6E2 _0810F6B6: movs r0, 0x64 muls r0, r4 ldr r1, _0810F6D4 @ =gPlayerParty adds r0, r1 movs r1, 0x41 movs r2, 0 bl GetMonData cmp r0, r6 bne _0810F6D8 movs r0, 0x1 b _0810F6E4 .align 2, 0 _0810F6D0: .4byte 0x00004023 _0810F6D4: .4byte gPlayerParty _0810F6D8: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _0810F6B6 _0810F6E2: movs r0, 0 _0810F6E4: pop {r4-r6} pop {r1} bx r1 thumb_func_end IsStarterInParty thumb_func_start CheckFreePokemonStorageSpace CheckFreePokemonStorageSpace: @ 810F6EC push {r4-r6,lr} movs r5, 0 _0810F6F0: movs r4, 0 lsls r1, r5, 2 adds r1, r5 lsls r0, r1, 4 subs r0, r1 lsls r6, r0, 5 _0810F6FC: lsls r0, r4, 2 adds r0, r4 lsls r0, 4 ldr r1, _0810F718 @ =gPokemonStorage + 0x4 adds r0, r1 adds r0, r6, r0 movs r1, 0xB movs r2, 0 bl GetBoxMonData cmp r0, 0 bne _0810F71C movs r0, 0x1 b _0810F732 .align 2, 0 _0810F718: .4byte gPokemonStorage + 0x4 _0810F71C: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1D bls _0810F6FC adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0xD bls _0810F6F0 movs r0, 0 _0810F732: pop {r4-r6} pop {r1} bx r1 thumb_func_end CheckFreePokemonStorageSpace thumb_func_start IsPokerusInParty IsPokerusInParty: @ 810F738 push {lr} ldr r0, _0810F74C @ =gPlayerParty movs r1, 0x3F bl CheckPartyPokerus lsls r0, 24 cmp r0, 0 beq _0810F750 movs r0, 0x1 b _0810F752 .align 2, 0 _0810F74C: .4byte gPlayerParty _0810F750: movs r0, 0 _0810F752: pop {r1} bx r1 thumb_func_end IsPokerusInParty thumb_func_start sub_810F758 sub_810F758: @ 810F758 push {lr} ldr r0, _0810F798 @ =sub_810F7A8 movs r1, 0x9 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0810F79C @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _0810F7A0 @ =gSpecialVar_0x8005 ldrh r2, [r0] movs r0, 0 strh r2, [r1, 0x8] strh r0, [r1, 0xA] strh r0, [r1, 0xC] strh r0, [r1, 0xE] ldr r0, _0810F7A4 @ =gSpecialVar_0x8004 ldrh r0, [r0] strh r0, [r1, 0x10] movs r0, 0x5 strh r0, [r1, 0x12] movs r0, 0 bl SetCameraPanningCallback movs r0, 0xD6 bl PlaySE pop {r0} bx r0 .align 2, 0 _0810F798: .4byte sub_810F7A8 _0810F79C: .4byte gTasks _0810F7A0: .4byte gSpecialVar_0x8005 _0810F7A4: .4byte gSpecialVar_0x8004 thumb_func_end sub_810F758 thumb_func_start sub_810F7A8 sub_810F7A8: @ 810F7A8 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _0810F810 @ =gTasks adds r4, r0, r1 ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] movs r1, 0xA ldrsh r0, [r4, r1] movs r2, 0x12 ldrsh r1, [r4, r2] bl __modsi3 cmp r0, 0 bne _0810F808 strh r0, [r4, 0xA] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] movs r1, 0xE ldrsh r0, [r4, r1] cmp r0, 0 bne _0810F808 ldrh r0, [r4, 0x8] negs r0, r0 strh r0, [r4, 0x8] ldrh r0, [r4, 0x10] negs r0, r0 strh r0, [r4, 0x10] movs r2, 0x8 ldrsh r0, [r4, r2] movs r2, 0x10 ldrsh r1, [r4, r2] bl SetCameraPanning movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0x8 bne _0810F808 adds r0, r5, 0 bl sub_810F814 bl InstallCameraPanAheadCallback _0810F808: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810F810: .4byte gTasks thumb_func_end sub_810F7A8 thumb_func_start sub_810F814 sub_810F814: @ 810F814 push {lr} lsls r0, 24 lsrs r0, 24 bl DestroyTask bl EnableBothScriptContexts pop {r0} bx r0 thumb_func_end sub_810F814 thumb_func_start sub_810F828 sub_810F828: @ 810F828 push {lr} movs r0, 0xAE lsls r0, 2 bl FlagGet lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_810F828 thumb_func_start SetRoute119Weather SetRoute119Weather: @ 810F83C push {lr} bl get_map_light_from_warp0 lsls r0, 24 lsrs r0, 24 bl is_light_level_1_2_3_5_or_6 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0810F858 movs r0, 0x14 bl SetSav1Weather _0810F858: pop {r0} bx r0 thumb_func_end SetRoute119Weather thumb_func_start SetRoute123Weather SetRoute123Weather: @ 810F85C push {lr} bl get_map_light_from_warp0 lsls r0, 24 lsrs r0, 24 bl is_light_level_1_2_3_5_or_6 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0810F878 movs r0, 0x15 bl SetSav1Weather _0810F878: pop {r0} bx r0 thumb_func_end SetRoute123Weather thumb_func_start GetLeadMonIndex GetLeadMonIndex: @ 810F87C push {r4-r6,lr} bl CalculatePlayerPartyCount lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 cmp r5, r6 bcs _0810F8CA _0810F88C: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _0810F8BC @ =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x41 movs r2, 0 bl GetMonData movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _0810F8C0 adds r0, r4, 0 movs r1, 0x41 movs r2, 0 bl GetMonData cmp r0, 0 beq _0810F8C0 adds r0, r5, 0 b _0810F8CC .align 2, 0 _0810F8BC: .4byte gPlayerParty _0810F8C0: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, r6 bcc _0810F88C _0810F8CA: movs r0, 0 _0810F8CC: pop {r4-r6} pop {r1} bx r1 thumb_func_end GetLeadMonIndex thumb_func_start ScriptGetPartyMonSpecies ScriptGetPartyMonSpecies: @ 810F8D4 push {lr} ldr r0, _0810F8F4 @ =gSpecialVar_0x8004 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0810F8F8 @ =gPlayerParty adds r0, r1 movs r1, 0x41 movs r2, 0 bl GetMonData lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 .align 2, 0 _0810F8F4: .4byte gSpecialVar_0x8004 _0810F8F8: .4byte gPlayerParty thumb_func_end ScriptGetPartyMonSpecies thumb_func_start sub_810F8FC sub_810F8FC: @ 810F8FC push {lr} movs r0, 0x6 bl sub_805ADDC pop {r0} bx r0 thumb_func_end sub_810F8FC thumb_func_start sub_810F908 sub_810F908: @ 810F908 push {r4,lr} ldr r0, _0810F928 @ =0x000040c2 bl VarGet lsls r0, 16 lsrs r0, 16 adds r3, r0, 0 ldr r2, _0810F92C @ =gLocalTime movs r1, 0 ldrsh r0, [r2, r1] subs r0, r3 cmp r0, 0x6 ble _0810F930 movs r0, 0 b _0810F948 .align 2, 0 _0810F928: .4byte 0x000040c2 _0810F92C: .4byte gLocalTime _0810F930: ldrh r1, [r2] movs r4, 0 ldrsh r0, [r2, r4] cmp r0, 0 blt _0810F946 subs r1, r3 movs r0, 0x7 subs r0, r1 lsls r0, 16 lsrs r0, 16 b _0810F948 _0810F946: movs r0, 0x8 _0810F948: pop {r4} pop {r1} bx r1 thumb_func_end sub_810F908 thumb_func_start sub_810F950 sub_810F950: @ 810F950 push {r4,lr} ldr r0, _0810F964 @ =0x000040c2 ldr r4, _0810F968 @ =gLocalTime ldrh r1, [r4] bl VarSet ldrh r0, [r4] pop {r4} pop {r1} bx r1 .align 2, 0 _0810F964: .4byte 0x000040c2 _0810F968: .4byte gLocalTime thumb_func_end sub_810F950 thumb_func_start sub_810F96C sub_810F96C: @ 810F96C push {r4,lr} ldr r0, _0810F994 @ =gSpecialVar_0x8004 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0810F998 @ =gPlayerParty adds r0, r1 ldr r4, _0810F99C @ =gStringVar1 movs r1, 0x7 adds r2, r4, 0 bl GetMonData ldr r0, _0810F9A0 @ =gSaveBlock2 adds r1, r4, 0 bl StringCompareWithoutExtCtrlCodes cmp r0, 0 beq _0810F9A4 movs r0, 0x1 b _0810F9A6 .align 2, 0 _0810F994: .4byte gSpecialVar_0x8004 _0810F998: .4byte gPlayerParty _0810F99C: .4byte gStringVar1 _0810F9A0: .4byte gSaveBlock2 _0810F9A4: movs r0, 0 _0810F9A6: pop {r4} pop {r1} bx r1 thumb_func_end sub_810F96C thumb_func_start sub_810F9AC sub_810F9AC: @ 810F9AC push {r4,r5,lr} ldr r2, _0810F9C0 @ =gScriptResult ldrh r1, [r2] ldr r0, _0810F9C4 @ =0x0000270f cmp r1, r0 bls _0810F9C8 movs r0, 0 bl sub_80BF088 b _0810FA4A .align 2, 0 _0810F9C0: .4byte gScriptResult _0810F9C4: .4byte 0x0000270f _0810F9C8: ldr r0, _0810F9D8 @ =0x000003e7 cmp r1, r0 bls _0810F9E0 ldr r4, _0810F9DC @ =gStringVar1 movs r0, 0xA1 strb r0, [r4] adds r4, 0x1 b _0810FA04 .align 2, 0 _0810F9D8: .4byte 0x000003e7 _0810F9DC: .4byte gStringVar1 _0810F9E0: cmp r1, 0x63 bls _0810F9F4 ldr r4, _0810F9F0 @ =gStringVar1 movs r0, 0xA1 strb r0, [r4] strb r0, [r4, 0x1] adds r4, 0x2 b _0810FA04 .align 2, 0 _0810F9F0: .4byte gStringVar1 _0810F9F4: cmp r1, 0x9 bls _0810FA24 ldr r4, _0810FA20 @ =gStringVar1 movs r0, 0xA1 strb r0, [r4] strb r0, [r4, 0x1] strb r0, [r4, 0x2] adds r4, 0x3 _0810FA04: ldrh r5, [r2] adds r0, r5, 0 bl sub_80BF0B8 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 bl ConvertIntToDecimalStringN b _0810FA4A .align 2, 0 _0810FA20: .4byte gStringVar1 _0810FA24: ldr r4, _0810FA50 @ =gStringVar1 movs r0, 0xA1 strb r0, [r4] strb r0, [r4, 0x1] strb r0, [r4, 0x2] strb r0, [r4, 0x3] adds r4, 0x4 ldrh r5, [r2] adds r0, r5, 0 bl sub_80BF0B8 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 bl ConvertIntToDecimalStringN _0810FA4A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810FA50: .4byte gStringVar1 thumb_func_end sub_810F9AC thumb_func_start ResetFanClub ResetFanClub: @ 810FA54 ldr r0, _0810FA68 @ =gSaveBlock1 ldr r2, _0810FA6C @ =0x000013c2 adds r1, r0, r2 movs r2, 0 strh r2, [r1] ldr r1, _0810FA70 @ =0x000013c4 adds r0, r1 strh r2, [r0] bx lr .align 2, 0 _0810FA68: .4byte gSaveBlock1 _0810FA6C: .4byte 0x000013c2 _0810FA70: .4byte 0x000013c4 thumb_func_end ResetFanClub thumb_func_start sub_810FA74 sub_810FA74: @ 810FA74 push {lr} bl sub_810FF30 lsls r0, 24 cmp r0, 0 beq _0810FA90 bl sub_810FCE8 ldr r0, _0810FA94 @ =gSaveBlock1 ldr r1, _0810FA98 @ =gSaveBlock2 ldrh r1, [r1, 0xE] ldr r2, _0810FA9C @ =0x000013c4 adds r0, r2 strh r1, [r0] _0810FA90: pop {r0} bx r0 .align 2, 0 _0810FA94: .4byte gSaveBlock1 _0810FA98: .4byte gSaveBlock2 _0810FA9C: .4byte 0x000013c4 thumb_func_end sub_810FA74 thumb_func_start sub_810FAA0 sub_810FAA0: @ 810FAA0 push {r4,lr} ldr r4, _0810FAF0 @ =gSaveBlock1 ldr r1, _0810FAF4 @ =0x000013c2 adds r0, r4, r1 ldrh r0, [r0] lsrs r0, 7 movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _0810FAE8 bl sub_810FF48 bl sub_810FD80 ldr r0, _0810FAF8 @ =gSaveBlock2 ldrh r1, [r0, 0xE] ldr r2, _0810FAFC @ =0x000013c4 adds r0, r4, r2 strh r1, [r0] ldr r0, _0810FB00 @ =0x00000315 bl FlagReset ldr r0, _0810FB04 @ =0x00000316 bl FlagReset ldr r0, _0810FB08 @ =0x00000317 bl FlagReset movs r0, 0xC6 lsls r0, 2 bl FlagReset ldr r0, _0810FB0C @ =0x00004095 movs r1, 0x1 bl VarSet _0810FAE8: pop {r4} pop {r0} bx r0 .align 2, 0 _0810FAF0: .4byte gSaveBlock1 _0810FAF4: .4byte 0x000013c2 _0810FAF8: .4byte gSaveBlock2 _0810FAFC: .4byte 0x000013c4 _0810FB00: .4byte 0x00000315 _0810FB04: .4byte 0x00000316 _0810FB08: .4byte 0x00000317 _0810FB0C: .4byte 0x00004095 thumb_func_end sub_810FAA0 thumb_func_start sub_810FB10 sub_810FB10: @ 810FB10 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0810FB54 @ =0x00004095 bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 bne _0810FB80 ldr r0, _0810FB58 @ =gSaveBlock1 ldr r1, _0810FB5C @ =0x000013c2 adds r4, r0, r1 ldrh r2, [r4] movs r1, 0x7F ands r1, r2 ldr r0, _0810FB60 @ =gUnknown_083F8404 adds r0, r5, r0 ldrb r0, [r0] adds r1, r0 cmp r1, 0x13 ble _0810FB7C bl sub_810FCB0 lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 bhi _0810FB68 bl sub_810FB9C ldrh r1, [r4] ldr r0, _0810FB64 @ =0x0000ff80 ands r0, r1 b _0810FB7E .align 2, 0 _0810FB54: .4byte 0x00004095 _0810FB58: .4byte gSaveBlock1 _0810FB5C: .4byte 0x000013c2 _0810FB60: .4byte gUnknown_083F8404 _0810FB64: .4byte 0x0000ff80 _0810FB68: ldrh r0, [r4] ldr r1, _0810FB78 @ =0x0000ff80 ands r1, r0 movs r0, 0x14 orrs r1, r0 strh r1, [r4] b _0810FB80 .align 2, 0 _0810FB78: .4byte 0x0000ff80 _0810FB7C: adds r0, r2, r0 _0810FB7E: strh r0, [r4] _0810FB80: ldr r0, _0810FB94 @ =gSaveBlock1 ldr r1, _0810FB98 @ =0x000013c2 adds r0, r1 ldrb r1, [r0] movs r0, 0x7F ands r0, r1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0810FB94: .4byte gSaveBlock1 _0810FB98: .4byte 0x000013c2 thumb_func_end sub_810FB10 thumb_func_start sub_810FB9C sub_810FB9C: @ 810FB9C push {r4-r7,lr} sub sp, 0x4 movs r3, 0 movs r5, 0 ldr r7, _0810FBD8 @ =gSaveBlock1 + 0x13C2 movs r6, 0x1 _0810FBA8: ldrh r1, [r7] ldr r0, _0810FBDC @ =gUnknown_083F8408 adds r0, r5, r0 ldrb r4, [r0] asrs r1, r4 ands r1, r6 cmp r1, 0 bne _0810FBE0 adds r3, r5, 0 str r3, [sp] bl Random adds r1, r6, 0 ands r1, r0 ldr r3, [sp] cmp r1, 0 beq _0810FBE0 adds r0, r6, 0 lsls r0, r4 ldrh r1, [r7] orrs r0, r1 strh r0, [r7] b _0810FC00 .align 2, 0 _0810FBD8: .4byte gSaveBlock1 + 0x13C2 _0810FBDC: .4byte gUnknown_083F8408 _0810FBE0: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x7 bls _0810FBA8 ldr r2, _0810FC0C @ =gSaveBlock1 ldr r0, _0810FC10 @ =0x000013c2 adds r2, r0 ldr r1, _0810FC14 @ =gUnknown_083F8408 adds r1, r3, r1 movs r0, 0x1 ldrb r1, [r1] lsls r0, r1 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] _0810FC00: adds r0, r3, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0810FC0C: .4byte gSaveBlock1 _0810FC10: .4byte 0x000013c2 _0810FC14: .4byte gUnknown_083F8408 thumb_func_end sub_810FB9C thumb_func_start sub_810FC18 sub_810FC18: @ 810FC18 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 movs r0, 0 mov r8, r0 bl sub_810FCB0 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bne _0810FC3E movs r0, 0 b _0810FC94 _0810FC34: lsls r4, r6 ldrh r0, [r2] eors r4, r0 strh r4, [r2] b _0810FC92 _0810FC3E: movs r5, 0 ldr r2, _0810FCA0 @ =gSaveBlock1 + 0x13C2 movs r4, 0x1 _0810FC44: ldrh r1, [r2] ldr r7, _0810FCA4 @ =gUnknown_083F8410 adds r0, r5, r7 ldrb r6, [r0] asrs r1, r6 ands r1, r4 cmp r1, 0 beq _0810FC66 mov r8, r5 str r2, [sp] bl Random adds r1, r4, 0 ands r1, r0 ldr r2, [sp] cmp r1, 0 bne _0810FC34 _0810FC66: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x7 bls _0810FC44 ldr r0, _0810FCA8 @ =gSaveBlock1 ldr r1, _0810FCAC @ =0x000013c2 adds r4, r0, r1 ldrh r1, [r4] mov r2, r8 adds r0, r2, r7 ldrb r2, [r0] adds r0, r1, 0 asrs r0, r2 movs r3, 0x1 ands r0, r3 cmp r0, 0 beq _0810FC92 adds r0, r3, 0 lsls r0, r2 eors r1, r0 strh r1, [r4] _0810FC92: mov r0, r8 _0810FC94: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0810FCA0: .4byte gSaveBlock1 + 0x13C2 _0810FCA4: .4byte gUnknown_083F8410 _0810FCA8: .4byte gSaveBlock1 _0810FCAC: .4byte 0x000013c2 thumb_func_end sub_810FC18 thumb_func_start sub_810FCB0 sub_810FCB0: @ 810FCB0 push {r4,r5,lr} movs r3, 0 movs r2, 0 ldr r0, _0810FCE4 @ =gSaveBlock1 + 0x13C2 ldrh r4, [r0] movs r5, 0x1 _0810FCBC: adds r1, r2, 0 adds r1, 0x8 adds r0, r4, 0 asrs r0, r1 ands r0, r5 cmp r0, 0 beq _0810FCD0 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 _0810FCD0: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x7 bls _0810FCBC adds r0, r3, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0810FCE4: .4byte gSaveBlock1 + 0x13C2 thumb_func_end sub_810FCB0 thumb_func_start sub_810FCE8 sub_810FCE8: @ 810FCE8 push {r4-r7,lr} mov r7, r8 push {r7} movs r5, 0 ldr r2, _0810FD08 @ =gSaveBlock2 ldrh r1, [r2, 0xE] ldr r0, _0810FD0C @ =0x000003e6 cmp r1, r0 bhi _0810FD54 ldr r7, _0810FD10 @ =gSaveBlock1 adds r6, r2, 0 ldr r0, _0810FD14 @ =0x000013c4 adds r0, r7 mov r8, r0 b _0810FD36 .align 2, 0 _0810FD08: .4byte gSaveBlock2 _0810FD0C: .4byte 0x000003e6 _0810FD10: .4byte gSaveBlock1 _0810FD14: .4byte 0x000013c4 _0810FD18: ldrh r1, [r6, 0xE] ldr r0, _0810FD4C @ =0x000013c4 adds r4, r7, r0 ldrh r0, [r4] subs r1, r0 cmp r1, 0xB ble _0810FD54 bl sub_810FC18 ldrh r0, [r4] adds r0, 0xC strh r0, [r4] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _0810FD36: bl sub_810FCB0 lsls r0, 16 lsrs r0, 16 cmp r0, 0x4 bhi _0810FD50 ldrh r0, [r6, 0xE] mov r1, r8 strh r0, [r1] b _0810FD54 .align 2, 0 _0810FD4C: .4byte 0x000013c4 _0810FD50: cmp r5, 0x8 bne _0810FD18 _0810FD54: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_810FCE8 thumb_func_start sub_810FD60 sub_810FD60: @ 810FD60 ldr r0, _0810FD74 @ =gSaveBlock1 ldr r1, _0810FD78 @ =0x000013c2 adds r0, r1 ldrh r0, [r0] ldr r1, _0810FD7C @ =gSpecialVar_0x8004 ldrh r1, [r1] asrs r0, r1 movs r1, 0x1 ands r0, r1 bx lr .align 2, 0 _0810FD74: .4byte gSaveBlock1 _0810FD78: .4byte 0x000013c2 _0810FD7C: .4byte gSpecialVar_0x8004 thumb_func_end sub_810FD60 thumb_func_start sub_810FD80 sub_810FD80: @ 810FD80 ldr r2, _0810FDA4 @ =gSaveBlock1 ldr r0, _0810FDA8 @ =0x000013c2 adds r2, r0 ldrh r1, [r2] movs r3, 0x80 lsls r3, 6 adds r0, r3, 0 orrs r0, r1 movs r3, 0x80 lsls r3, 1 adds r1, r3, 0 orrs r0, r1 movs r3, 0x80 lsls r3, 3 adds r1, r3, 0 orrs r0, r1 strh r0, [r2] bx lr .align 2, 0 _0810FDA4: .4byte gSaveBlock1 _0810FDA8: .4byte 0x000013c2 thumb_func_end sub_810FD80 thumb_func_start sub_810FDAC sub_810FDAC: @ 810FDAC push {lr} movs r3, 0 movs r2, 0 ldr r0, _0810FDC8 @ =gSpecialVar_0x8004 ldrh r0, [r0] subs r0, 0x8 cmp r0, 0x7 bhi _0810FE0C lsls r0, 2 ldr r1, _0810FDCC @ =_0810FDD0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0810FDC8: .4byte gSpecialVar_0x8004 _0810FDCC: .4byte _0810FDD0 .align 2, 0 _0810FDD0: .4byte _0810FE0C .4byte _0810FE0C .4byte _0810FDF0 .4byte _0810FDF6 .4byte _0810FDFC .4byte _0810FE02 .4byte _0810FE08 .4byte _0810FE0C _0810FDF0: movs r3, 0 movs r2, 0x3 b _0810FE0C _0810FDF6: movs r3, 0 movs r2, 0x1 b _0810FE0C _0810FDFC: movs r3, 0x1 movs r2, 0 b _0810FE0C _0810FE02: movs r3, 0 movs r2, 0x4 b _0810FE0C _0810FE08: movs r3, 0x1 movs r2, 0x5 _0810FE0C: ldr r0, _0810FE18 @ =gSaveBlock1 + 0x30B8 adds r1, r3, 0 bl sub_810FE1C pop {r0} bx r0 .align 2, 0 _0810FE18: .4byte gSaveBlock1 + 0x30B8 thumb_func_end sub_810FDAC thumb_func_start sub_810FE1C sub_810FE1C: @ 810FE1C push {r4,lr} lsls r1, 24 lsls r2, 24 lsrs r2, 24 lsrs r1, 20 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0xFF bne _0810FED0 cmp r2, 0x5 bhi _0810FEBC lsls r0, r2, 2 ldr r1, _0810FE3C @ =_0810FE40 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0810FE3C: .4byte _0810FE40 .align 2, 0 _0810FE40: .4byte _0810FEBC .4byte _0810FE58 .4byte _0810FE6C .4byte _0810FE80 .4byte _0810FE94 .4byte _0810FEA8 _0810FE58: ldr r0, _0810FE64 @ =gStringVar1 ldr r1, _0810FE68 @ =gOtherText_Steven bl StringCopy b _0810FEF2 .align 2, 0 _0810FE64: .4byte gStringVar1 _0810FE68: .4byte gOtherText_Steven _0810FE6C: ldr r0, _0810FE78 @ =gStringVar1 ldr r1, _0810FE7C @ =gOtherText_Brawly bl StringCopy b _0810FEF2 .align 2, 0 _0810FE78: .4byte gStringVar1 _0810FE7C: .4byte gOtherText_Brawly _0810FE80: ldr r0, _0810FE8C @ =gStringVar1 ldr r1, _0810FE90 @ =gOtherText_Winona bl StringCopy b _0810FEF2 .align 2, 0 _0810FE8C: .4byte gStringVar1 _0810FE90: .4byte gOtherText_Winona _0810FE94: ldr r0, _0810FEA0 @ =gStringVar1 ldr r1, _0810FEA4 @ =gOtherText_Phoebe bl StringCopy b _0810FEF2 .align 2, 0 _0810FEA0: .4byte gStringVar1 _0810FEA4: .4byte gOtherText_Phoebe _0810FEA8: ldr r0, _0810FEB4 @ =gStringVar1 ldr r1, _0810FEB8 @ =gOtherText_Glacia bl StringCopy b _0810FEF2 .align 2, 0 _0810FEB4: .4byte gStringVar1 _0810FEB8: .4byte gOtherText_Glacia _0810FEBC: ldr r0, _0810FEC8 @ =gStringVar1 ldr r1, _0810FECC @ =gOtherText_Wallace bl StringCopy b _0810FEF2 .align 2, 0 _0810FEC8: .4byte gStringVar1 _0810FECC: .4byte gOtherText_Wallace _0810FED0: ldr r4, _0810FEF8 @ =gStringVar1 adds r0, r4, 0 movs r2, 0x7 bl StringCopyN movs r0, 0xFF strb r0, [r4, 0x7] ldrb r0, [r4] cmp r0, 0xFC bne _0810FEF2 ldrb r0, [r4, 0x1] cmp r0, 0x15 bne _0810FEF2 adds r0, r4, 0 movs r1, 0x1 bl ConvertInternationalString _0810FEF2: pop {r4} pop {r0} bx r0 .align 2, 0 _0810FEF8: .4byte gStringVar1 thumb_func_end sub_810FE1C thumb_func_start sub_810FEFC sub_810FEFC: @ 810FEFC push {lr} ldr r0, _0810FF20 @ =0x00004095 bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 bne _0810FF2C bl sub_810FA74 ldr r0, _0810FF24 @ =gUnknown_02024D26 ldrb r0, [r0] cmp r0, 0x1 bne _0810FF28 bl sub_810FB9C b _0810FF2C .align 2, 0 _0810FF20: .4byte 0x00004095 _0810FF24: .4byte gUnknown_02024D26 _0810FF28: bl sub_810FC18 _0810FF2C: pop {r0} bx r0 thumb_func_end sub_810FEFC thumb_func_start sub_810FF30 sub_810FF30: @ 810FF30 ldr r0, _0810FF40 @ =gSaveBlock1 ldr r1, _0810FF44 @ =0x000013c2 adds r0, r1 ldrh r0, [r0] lsrs r0, 7 movs r1, 0x1 ands r0, r1 bx lr .align 2, 0 _0810FF40: .4byte gSaveBlock1 _0810FF44: .4byte 0x000013c2 thumb_func_end sub_810FF30 thumb_func_start sub_810FF48 sub_810FF48: @ 810FF48 ldr r0, _0810FF58 @ =gSaveBlock1 ldr r1, _0810FF5C @ =0x000013c2 adds r0, r1 ldrh r2, [r0] movs r1, 0x80 orrs r1, r2 strh r1, [r0] bx lr .align 2, 0 _0810FF58: .4byte gSaveBlock1 _0810FF5C: .4byte 0x000013c2 thumb_func_end sub_810FF48 thumb_func_start sub_810FF60 sub_810FF60: @ 810FF60 push {lr} ldr r0, _0810FF74 @ =gSpecialVar_0x8004 ldrb r0, [r0] bl sub_810FB10 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0810FF74: .4byte gSpecialVar_0x8004 thumb_func_end sub_810FF60 .align 2, 0 @ Don't pad with nop.