diff options
-rwxr-xr-x | asm/field_specials.s | 114 | ||||
-rwxr-xr-x | data/field_specials.s | 9 | ||||
-rwxr-xr-x[-rw-r--r--] | include/battle_tower.h | 1 | ||||
-rwxr-xr-x[-rw-r--r--] | include/pokeblock.h | 1 | ||||
-rwxr-xr-x[-rw-r--r--] | include/region_map.h | 2 | ||||
-rwxr-xr-x | src/field_specials.c | 37 |
6 files changed, 40 insertions, 124 deletions
diff --git a/asm/field_specials.s b/asm/field_specials.s index fe57202f3..ebc43c3ad 100755 --- a/asm/field_specials.s +++ b/asm/field_specials.s @@ -6,120 +6,6 @@ .text - 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} diff --git a/data/field_specials.s b/data/field_specials.s index 78cf99e2c..191f4d947 100755 --- a/data/field_specials.s +++ b/data/field_specials.s @@ -3,15 +3,6 @@ .section .rodata -gUnknown_083F83E0:: @ 83F83E0 - .byte 12, 2, 4, 5, 1, 8, 7, 11, 3, 10, 9, 6 - -gUnknown_083F83EC:: @ 83F83EC - .byte 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5 - -gUnknown_083F83F8:: @ 83F83F8 - .byte 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5 - gUnknown_083F8404:: @ 83F8404 .byte 2, 1, 2, 1 diff --git a/include/battle_tower.h b/include/battle_tower.h index 193905b93..75ea405ab 100644..100755 --- a/include/battle_tower.h +++ b/include/battle_tower.h @@ -3,5 +3,6 @@ void sub_8134AC0(void *); u16 sub_8135D3C(u8); +void sub_8135FF4(u8*); #endif // GUARD_BATTLE_TOWER_H diff --git a/include/pokeblock.h b/include/pokeblock.h index 257c83f1c..b925894db 100644..100755 --- a/include/pokeblock.h +++ b/include/pokeblock.h @@ -5,6 +5,7 @@ void sub_810B96C(void); void sub_810BA7C(u8); void ClearPokeblocks(void); void sub_810CA6C(s32); +u8 sub_810CB68(u8, u8*); s16 sub_810CAE4(u8, struct Pokeblock *); #endif // GUARD_POKEBLOCK_H diff --git a/include/region_map.h b/include/region_map.h index 0cef566f6..6dfa4dcf0 100644..100755 --- a/include/region_map.h +++ b/include/region_map.h @@ -6,7 +6,7 @@ void sub_80FAB10(void); u8 sub_80FAB60(void); void sub_80FBB3C(u16, u16); void sub_80FBCF0(u32, u8); -void sub_80FBFB4(u8 *str, u8 region, u8); +void sub_80FBFB4(u8 *str, u16 region, u8); void CopyMapName(); u8 *CopyLocationName(u8 *dest, u8 location); diff --git a/src/field_specials.c b/src/field_specials.c index 610d421a1..11f5e16f7 100755 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -3,7 +3,9 @@ #include "diploma.h" #include "fieldmap.h" #include "event_data.h" +#include "battle_tower.h" #include "field_map_obj.h" +#include "region_map.h" #include "field_region_map.h" #include "field_message_box.h" #include "field_camera.h" @@ -15,6 +17,7 @@ #include "songs.h" #include "string_util.h" #include "strings.h" +#include "pokeblock.h" #include "text.h" #include "wallclock.h" #include "tv.h" @@ -1742,3 +1745,37 @@ void RemoveCameraDummy(void) CameraObjectSetFollowedObjectId(GetPlayerAvatarObjectId()); RemoveFieldObjectByLocalIdAndMap(0x7f, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup); } + +u8 GetPokeblockNameByMonNature(void) +{ + return sub_810CB68(GetNature(&gPlayerParty[GetLeadMonIndex()]), gStringVar1); +} + +void GetSecretBaseNearbyMapName(void) +{ + sub_80FBFB4(gStringVar1, VarGet(VAR_SECRET_BASE_MAP), 0); +} + +u16 sub_810F404(void) +{ + return GetGameStat(GAME_STAT_BATTLE_TOWER_BEST_STREAK); +} + +void sub_810F414(void) +{ + sub_8135FF4(gStringVar1); +} + +const u8 gUnknown_083F83E0[] = {12, 2, 4, 5, 1, 8, 7, 11, 3, 10, 9, 6}; +const u8 gUnknown_083F83EC[] = {0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5}; +const u8 gUnknown_083F83F8[] = {3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5}; + +u8 sub_810F424(void) +{ + u32 v0 = gSaveBlock1.easyChatPairs[0].unk0_0 + gSaveBlock1.easyChatPairs[0].unk2 + gUnknown_083F83E0[gSpecialVar_0x8004]; + if (GetPriceReduction(2)) + { + return gUnknown_083F83F8[v0 % 12]; + } + return gUnknown_083F83EC[v0 % 12]; +} |