diff options
Diffstat (limited to 'src')
-rwxr-xr-x | src/battle_anim_effects_2.c | 12 | ||||
-rw-r--r-- | src/pokedex.c | 388 | ||||
-rw-r--r-- | src/region_map.c | 6 | ||||
-rw-r--r-- | src/use_pokeblock.c | 58 |
4 files changed, 40 insertions, 424 deletions
diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index cf85e697a..133742446 100755 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -79,8 +79,8 @@ static void AnimAngel(struct Sprite *); static void AnimPinkHeart(struct Sprite *); static void AnimDevil(struct Sprite *); static void AnimFurySwipes(struct Sprite *); -static void AnimMovmentWaves(struct Sprite *); -static void AnimMovmentWaves_Step(struct Sprite *); +static void AnimMovementWaves(struct Sprite *); +static void AnimMovementWaves_Step(struct Sprite *); static void AnimJaggedMusicNote(struct Sprite *); static void AnimJaggedMusicNote_Step(struct Sprite *); static void AnimPerishSongMusicNote2(struct Sprite *); @@ -1163,7 +1163,7 @@ const struct SpriteTemplate gMovementWavesSpriteTemplate = .anims = gMovementWavesAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimMovmentWaves, + .callback = AnimMovementWaves, }; static const union AffineAnimCmd sAffineAnims_UproarDistortion[] = @@ -3606,7 +3606,7 @@ static void AnimFurySwipes(struct Sprite *sprite) } } -static void AnimMovmentWaves(struct Sprite *sprite) +static void AnimMovementWaves(struct Sprite *sprite) { if (!gBattleAnimArgs[2]) { @@ -3633,11 +3633,11 @@ static void AnimMovmentWaves(struct Sprite *sprite) sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[1]; StartSpriteAnim(sprite, sprite->data[1]); - sprite->callback = AnimMovmentWaves_Step; + sprite->callback = AnimMovementWaves_Step; } } -static void AnimMovmentWaves_Step(struct Sprite *sprite) +static void AnimMovementWaves_Step(struct Sprite *sprite) { if (sprite->animEnded) { diff --git a/src/pokedex.c b/src/pokedex.c index ba05969ae..080548553 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -3859,9 +3859,7 @@ static void LoadScreenSelectBarSubmenu(u16 unused) { CopyToBgTilemapBuffer(1, gPokedexScreenSelectBarSubmenu_Tilemap, 0, 0); } -#ifdef NONMATCHING -// This doesn't match because gcc flips the naming of the r3 and r4 -// registers. + static void HighlightScreenSelectBarItem(u8 selectedScreen, u16 unused) { u8 i; @@ -3871,10 +3869,14 @@ static void HighlightScreenSelectBarItem(u8 selectedScreen, u16 unused) for (i = 0; i < SCREEN_COUNT; i++) { u8 row = (i * 7) + 1; - u16 newPalette = 0x4000; + u16 newPalette; - if (i == selectedScreen) - newPalette = 0x2000; + do + { + newPalette = 0x4000; + if (i == selectedScreen) + newPalette = 0x2000; + } while (0); for (j = 0; j < 7; j++) { @@ -3884,74 +3886,7 @@ static void HighlightScreenSelectBarItem(u8 selectedScreen, u16 unused) } CopyBgTilemapBufferToVram(1); } -#else -__attribute__((naked)) -static void HighlightScreenSelectBarItem(u8 selectedScreen, u16 unused) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r8\n\ - push {r7}\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r8, r0\n\ - movs r0, 0x1\n\ - bl GetBgTilemapBuffer\n\ - adds r7, r0, 0\n\ - movs r1, 0\n\ -_080BFD22:\n\ - lsls r0, r1, 3\n\ - subs r0, r1\n\ - adds r0, 0x1\n\ - lsls r0, 24\n\ - lsrs r5, r0, 24\n\ - movs r3, 0x80\n\ - lsls r3, 7\n\ - cmp r1, r8\n\ - bne _080BFD38\n\ - movs r3, 0x80\n\ - lsls r3, 6\n\ -_080BFD38:\n\ - movs r2, 0\n\ - adds r6, r1, 0x1\n\ - ldr r4, =0x00000fff\n\ -_080BFD3E:\n\ - adds r1, r5, r2\n\ - lsls r1, 1\n\ - adds r1, r7\n\ - ldrh r0, [r1]\n\ - ands r0, r4\n\ - orrs r0, r3\n\ - strh r0, [r1]\n\ - adds r1, 0x40\n\ - ldrh r0, [r1]\n\ - ands r0, r4\n\ - orrs r0, r3\n\ - strh r0, [r1]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 24\n\ - lsrs r2, r0, 24\n\ - cmp r2, 0x6\n\ - bls _080BFD3E\n\ - lsls r0, r6, 24\n\ - lsrs r1, r0, 24\n\ - cmp r1, 0x3\n\ - bls _080BFD22\n\ - movs r0, 0x1\n\ - bl CopyBgTilemapBufferToVram\n\ - pop {r3}\n\ - mov r8, r3\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided\n"); -} -#endif -#ifdef NONMATCHING -// This doesn't match because gcc flips the naming of the r3 and r4 -// registers. static void HighlightSubmenuScreenSelectBarItem(u8 a, u16 b) { u8 i; @@ -3963,10 +3898,13 @@ static void HighlightSubmenuScreenSelectBarItem(u8 a, u16 b) u8 row = i * 7 + 1; u32 newPalette; - if (i == a || i == 3) - newPalette = 0x2000; - else - newPalette = 0x4000; + do + { + if (i == a || i == 3) + newPalette = 0x2000; + else + newPalette = 0x4000; + } while (0); for (j = 0; j < 7; j++) { @@ -3976,75 +3914,6 @@ static void HighlightSubmenuScreenSelectBarItem(u8 a, u16 b) } CopyBgTilemapBufferToVram(1); } -#else -__attribute__((naked)) -static void HighlightSubmenuScreenSelectBarItem(u8 a, u16 b) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r8\n\ - push {r7}\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r8, r0\n\ - movs r0, 0x1\n\ - bl GetBgTilemapBuffer\n\ - adds r7, r0, 0\n\ - movs r1, 0\n\ -_080BFD92:\n\ - lsls r0, r1, 3\n\ - subs r0, r1\n\ - adds r0, 0x1\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - cmp r1, r8\n\ - beq _080BFDA4\n\ - cmp r1, 0x3\n\ - bne _080BFDAA\n\ -_080BFDA4:\n\ - movs r3, 0x80\n\ - lsls r3, 6\n\ - b _080BFDAE\n\ -_080BFDAA:\n\ - movs r3, 0x80\n\ - lsls r3, 7\n\ -_080BFDAE:\n\ - movs r2, 0\n\ - adds r5, r1, 0x1\n\ - ldr r4, =0x00000fff\n\ -_080BFDB4:\n\ - adds r1, r6, r2\n\ - lsls r1, 1\n\ - adds r1, r7\n\ - ldrh r0, [r1]\n\ - ands r0, r4\n\ - orrs r0, r3\n\ - strh r0, [r1]\n\ - adds r1, 0x40\n\ - ldrh r0, [r1]\n\ - ands r0, r4\n\ - orrs r0, r3\n\ - strh r0, [r1]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 24\n\ - lsrs r2, r0, 24\n\ - cmp r2, 0x6\n\ - bls _080BFDB4\n\ - lsls r0, r5, 24\n\ - lsrs r1, r0, 24\n\ - cmp r1, 0x3\n\ - bls _080BFD92\n\ - movs r0, 0x1\n\ - bl CopyBgTilemapBufferToVram\n\ - pop {r3}\n\ - mov r8, r3\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided\n"); -} -#endif #define tState data[0] #define tDexNum data[1] @@ -4298,11 +4167,12 @@ static void PrintMonHeight(u16 height, u8 left, u8 top) PrintInfoScreenText(buffer, left, top); } -#ifdef NONMATCHING -// This doesn't match because gcc manages to avoid using the stack -// to store local variables. static void PrintMonWeight(u16 weight, u8 left, u8 top) { +#ifndef NONMATCHING + asm("":::"r9"); +{ +#endif u8 buffer[16]; bool8 output; u8 i = 0; @@ -4358,226 +4228,10 @@ static void PrintMonWeight(u16 weight, u8 left, u8 top) buffer[i++] = CHAR_PERIOD; buffer[i++] = EOS; PrintInfoScreenText(buffer, left, top); -} -#else -__attribute__((naked)) -static void PrintMonWeight(u16 weight, u8 left, u8 top) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x14\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - lsls r1, 24\n\ - lsrs r1, 24\n\ - mov r10, r1\n\ - lsls r2, 24\n\ - lsrs r2, 24\n\ - str r2, [sp, 0x10]\n\ - ldr r5, =0x000186a0\n\ - muls r0, r5\n\ - ldr r1, =0x000011b8\n\ - bl __divsi3\n\ - adds r7, r0, 0\n\ - movs r1, 0xA\n\ - bl __umodsi3\n\ - cmp r0, 0x4\n\ - bls _080C0494\n\ - adds r7, 0xA\n\ -_080C0494:\n\ - movs r0, 0\n\ - mov r8, r0\n\ - mov r4, sp\n\ - adds r0, r7, 0\n\ - adds r1, r5, 0\n\ - bl __udivsi3\n\ - adds r0, 0xA1\n\ - strb r0, [r4]\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0xA1\n\ - bne _080C04C0\n\ - movs r6, 0x1\n\ - mov r1, sp\n\ - movs r0, 0x77\n\ - strb r0, [r1]\n\ - b _080C04C6\n\ - .pool\n\ -_080C04C0:\n\ - movs r1, 0x1\n\ - mov r8, r1\n\ - movs r6, 0x1\n\ -_080C04C6:\n\ - ldr r1, =0x000186a0\n\ - adds r0, r7, 0\n\ - bl __umodsi3\n\ - adds r7, r0, 0\n\ - mov r4, sp\n\ - adds r4, 0x1\n\ - ldr r1, =0x00002710\n\ - bl __udivsi3\n\ - adds r0, 0xA1\n\ - strb r0, [r4]\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0xA1\n\ - bne _080C0504\n\ - mov r2, r8\n\ - cmp r2, 0\n\ - bne _080C0504\n\ - adds r1, r6, 0\n\ - adds r0, r1, 0x1\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - add r1, sp\n\ - movs r0, 0x77\n\ - strb r0, [r1]\n\ - b _080C050E\n\ - .pool\n\ -_080C0504:\n\ - movs r3, 0x1\n\ - mov r8, r3\n\ - adds r0, r6, 0x1\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ -_080C050E:\n\ - ldr r1, =0x00002710\n\ - adds r0, r7, 0\n\ - bl __umodsi3\n\ - adds r7, r0, 0\n\ - mov r0, sp\n\ - adds r4, r0, r6\n\ - movs r1, 0xFA\n\ - lsls r1, 2\n\ - adds r0, r7, 0\n\ - bl __udivsi3\n\ - adds r0, 0xA1\n\ - strb r0, [r4]\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0xA1\n\ - bne _080C054C\n\ - mov r1, r8\n\ - cmp r1, 0\n\ - bne _080C054C\n\ - adds r1, r6, 0\n\ - adds r0, r1, 0x1\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - add r1, sp\n\ - movs r0, 0x77\n\ - strb r0, [r1]\n\ - b _080C0552\n\ - .pool\n\ -_080C054C:\n\ - adds r0, r6, 0x1\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ -_080C0552:\n\ - movs r1, 0xFA\n\ - lsls r1, 2\n\ - adds r0, r7, 0\n\ - bl __umodsi3\n\ - adds r7, r0, 0\n\ - adds r1, r6, 0\n\ - adds r0, r1, 0x1\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - adds r5, r6, 0\n\ - mov r2, sp\n\ - adds r4, r2, r1\n\ - adds r0, r7, 0\n\ - movs r1, 0x64\n\ - bl __udivsi3\n\ - adds r0, 0xA1\n\ - movs r3, 0\n\ - mov r9, r3\n\ - strb r0, [r4]\n\ - adds r0, r7, 0\n\ - movs r1, 0x64\n\ - bl __umodsi3\n\ - adds r7, r0, 0\n\ - adds r0, r5, 0x1\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - adds r1, r6, 0\n\ - mov r2, sp\n\ - adds r0, r2, r5\n\ - movs r3, 0xAD\n\ - mov r8, r3\n\ - mov r2, r8\n\ - strb r2, [r0]\n\ - adds r0, r1, 0x1\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - adds r5, r6, 0\n\ - mov r3, sp\n\ - adds r4, r3, r1\n\ - adds r0, r7, 0\n\ - movs r1, 0xA\n\ - bl __udivsi3\n\ - adds r0, 0xA1\n\ - strb r0, [r4]\n\ - adds r0, r5, 0x1\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - adds r1, r6, 0\n\ - mov r2, sp\n\ - adds r0, r2, r5\n\ - mov r3, r9\n\ - strb r3, [r0]\n\ - adds r0, r1, 0x1\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - adds r2, r6, 0\n\ - add r1, sp\n\ - movs r0, 0xE0\n\ - strb r0, [r1]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - adds r3, r6, 0\n\ - mov r0, sp\n\ - adds r1, r0, r2\n\ - movs r0, 0xD6\n\ - strb r0, [r1]\n\ - adds r0, r3, 0x1\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - adds r2, r6, 0\n\ - mov r0, sp\n\ - adds r1, r0, r3\n\ - movs r0, 0xE7\n\ - strb r0, [r1]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r3, sp\n\ - adds r1, r3, r2\n\ - mov r2, r8\n\ - strb r2, [r1]\n\ - adds r1, r3, r0\n\ - movs r0, 0xFF\n\ - strb r0, [r1]\n\ - mov r0, sp\n\ - mov r1, r10\n\ - ldr r2, [sp, 0x10]\n\ - bl PrintInfoScreenText\n\ - add sp, 0x14\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .syntax divided\n"); +#ifndef NONMATCHING } #endif +} const u8 *GetPokedexCategoryName(u16 dexNum) // unused { diff --git a/src/region_map.c b/src/region_map.c index e183261b9..8a15ca30d 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -301,7 +301,7 @@ static const u8 sMapHealLocations[][3] = {MAP_GROUP(LILYCOVE_CITY), MAP_NUM(LILYCOVE_CITY), HEAL_LOCATION_LILYCOVE_CITY}, {MAP_GROUP(MOSSDEEP_CITY), MAP_NUM(MOSSDEEP_CITY), HEAL_LOCATION_MOSSDEEP_CITY}, {MAP_GROUP(SOOTOPOLIS_CITY), MAP_NUM(SOOTOPOLIS_CITY), HEAL_LOCATION_SOOTOPOLIS_CITY}, - {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), HEAL_LOCATION_EVER_GRANDE_CITY}, + {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), HEAL_LOCATION_EVER_GRANDE_CITY_1}, {MAP_GROUP(ROUTE101), MAP_NUM(ROUTE101), 0}, {MAP_GROUP(ROUTE102), MAP_NUM(ROUTE102), 0}, {MAP_GROUP(ROUTE103), MAP_NUM(ROUTE103), 0}, @@ -1998,10 +1998,10 @@ static void CB_ExitFlyMap(void) SetWarpDestinationToHealLocation(HEAL_LOCATION_BATTLE_FRONTIER_OUTSIDE_EAST); break; case MAPSEC_LITTLEROOT_TOWN: - SetWarpDestinationToHealLocation(gSaveBlock2Ptr->playerGender == MALE ? HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE : HEAL_LOCATION_LITTLEROOT_TOWN_MAYS_HOUSE); + SetWarpDestinationToHealLocation(gSaveBlock2Ptr->playerGender == MALE ? HEAL_LOCATION_LITTLEROOT_TOWN_1 : HEAL_LOCATION_LITTLEROOT_TOWN_2); break; case MAPSEC_EVER_GRANDE_CITY: - SetWarpDestinationToHealLocation(FlagGet(FLAG_LANDMARK_POKEMON_LEAGUE) && sFlyMap->regionMap.posWithinMapSec == 0 ? HEAL_LOCATION_EVER_GRANDE_CITY_POKEMON_LEAGUE : HEAL_LOCATION_EVER_GRANDE_CITY); + SetWarpDestinationToHealLocation(FlagGet(FLAG_LANDMARK_POKEMON_LEAGUE) && sFlyMap->regionMap.posWithinMapSec == 0 ? HEAL_LOCATION_EVER_GRANDE_CITY_2 : HEAL_LOCATION_EVER_GRANDE_CITY_1); break; default: if (sMapHealLocations[sFlyMap->regionMap.mapSecId][2] != 0) diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index a0c8d8e2d..5079edb37 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -937,62 +937,24 @@ void Pokeblock_MenuWindowTextPrint(const u8 *message) AddTextPrinterParameterized(2, 1, gStringVar4, 0, 1, 0, NULL); } -// This function is a joke. -#ifdef NONMATCHING void Pokeblock_BufferEnhancedStatText(u8 *dest, u8 statId, s16 a2) { - if (a2 != 0) + switch (a2) { + case 1 ... 32767: + a2 = 0; + // fallthrough + case -32768 ... -1: + if (a2) + dest[(u16)a2] += 0; // something you can't imagine StringCopy(dest, sContestStatNames[statId]); StringAppend(dest, gText_WasEnhanced); - } - else - { + break; + case 0: StringCopy(dest, gText_NothingChanged); + break; } } -#else -NAKED -void Pokeblock_BufferEnhancedStatText(u8 *dest, u8 statId, s16 a2) -{ - asm(".syntax unified\n\ -push {r4,lr}\n\ - adds r4, r0, 0\n\ - lsls r1, 24\n\ - lsrs r3, r1, 24\n\ - lsls r2, 16\n\ - lsrs r0, r2, 16\n\ - asrs r2, 16\n\ - cmp r2, 0\n\ - beq _08167010\n\ - cmp r2, 0\n\ - ble _08166FEC\n\ - movs r0, 0\n\ -_08166FEC:\n\ - lsls r0, 16\n\ - ldr r1, =sContestStatNames\n\ - lsls r0, r3, 2\n\ - adds r0, r1\n\ - ldr r1, [r0]\n\ - adds r0, r4, 0\n\ - bl StringCopy\n\ - ldr r1, =gText_WasEnhanced\n\ - adds r0, r4, 0\n\ - bl StringAppend\n\ - b _08167018\n\ - .pool\n\ -_08167010:\n\ - ldr r1, =gText_NothingChanged\n\ - adds r0, r4, 0\n\ - bl StringCopy\n\ -_08167018:\n\ - pop {r4}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided\n"); -} -#endif void Pokeblock_GetMonContestStats(struct Pokemon *mon, u8 *data) { |