summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGriffinR <griffin.g.richards@gmail.com>2021-11-13 23:26:46 -0500
committerGitHub <noreply@github.com>2021-11-13 23:26:46 -0500
commitf42eafc85b007cd27e90bc9a1350d589e31bda43 (patch)
tree7a09999f6ac2fc2d1b36ece5ec484ec6527a201f /src
parent4c4fa1f25e55e41f469604a984a820f5a7f30e90 (diff)
parent8d18d03c791c40bad532c62f217b0f82aadec6d2 (diff)
Merge branch 'master' into doc-banim
Diffstat (limited to 'src')
-rw-r--r--src/apprentice.c6
-rw-r--r--src/battle_anim_mons.c4
-rw-r--r--src/battle_anim_sound_tasks.c56
-rw-r--r--src/battle_controller_link_opponent.c2
-rw-r--r--src/battle_controller_link_partner.c2
-rw-r--r--src/battle_controller_opponent.c2
-rw-r--r--src/battle_controller_player.c2
-rw-r--r--src/battle_controller_player_partner.c2
-rw-r--r--src/battle_controller_recorded_opponent.c2
-rw-r--r--src/battle_controller_recorded_player.c2
-rw-r--r--src/battle_controller_safari.c2
-rw-r--r--src/battle_controller_wally.c4
-rw-r--r--src/battle_dome.c38
-rw-r--r--src/battle_factory_screen.c88
-rw-r--r--src/battle_interface.c290
-rw-r--r--src/battle_main.c8
-rw-r--r--src/battle_message.c2
-rw-r--r--src/battle_pyramid_bag.c14
-rw-r--r--src/battle_records.c20
-rw-r--r--src/battle_script_commands.c16
-rw-r--r--src/battle_setup.c3
-rw-r--r--src/battle_transition_frontier.c6
-rw-r--r--src/berry_blender.c52
-rwxr-xr-xsrc/berry_crush.c32
-rw-r--r--src/berry_fix_program.c26
-rwxr-xr-xsrc/berry_powder.c2
-rw-r--r--src/berry_tag_screen.c4
-rw-r--r--src/braille.c319
-rw-r--r--src/cable_club.c10
-rw-r--r--src/contest.c4
-rw-r--r--src/contest_painting.c6
-rw-r--r--src/contest_util.c4
-rw-r--r--src/credits.c8
-rw-r--r--src/crt0.s99
-rwxr-xr-xsrc/data/object_events/movement_action_func_tables.h40
-rw-r--r--src/daycare.c4
-rw-r--r--src/decoration.c10
-rw-r--r--src/diploma.c6
-rw-r--r--src/dodrio_berry_picking.c126
-rw-r--r--src/easy_chat.c50
-rw-r--r--src/egg_hatch.c12
-rwxr-xr-xsrc/ereader_helpers.c4
-rw-r--r--src/event_object_movement.c24
-rw-r--r--src/evolution_scene.c2
-rw-r--r--src/field_effect.c26
-rw-r--r--src/field_player_avatar.c4
-rw-r--r--src/field_region_map.c2
-rw-r--r--src/field_screen_effect.c4
-rw-r--r--src/field_specials.c28
-rw-r--r--src/frontier_pass.c24
-rw-r--r--src/frontier_util.c124
-rw-r--r--src/graphics.c8
-rw-r--r--src/hall_of_fame.c75
-rw-r--r--src/intro.c6
-rwxr-xr-xsrc/item_menu.c40
-rw-r--r--src/link.c8
-rw-r--r--src/list_menu.c18
-rw-r--r--src/load_save.c19
-rw-r--r--src/m4a_1.s32
-rw-r--r--src/mail.c4
-rw-r--r--src/main.c4
-rw-r--r--src/main_menu.c110
-rw-r--r--src/map_name_popup.c4
-rw-r--r--src/match_call.c14
-rw-r--r--src/mauville_old_man.c10
-rw-r--r--src/menu.c437
-rw-r--r--src/menu_helpers.c16
-rw-r--r--src/menu_specialized.c34
-rw-r--r--src/mirage_tower.c4
-rw-r--r--src/money.c4
-rw-r--r--src/move_relearner.c2
-rw-r--r--src/mystery_event_menu.c4
-rw-r--r--src/mystery_gift_menu.c40
-rw-r--r--src/mystery_gift_view.c20
-rw-r--r--src/naming_screen.c26
-rw-r--r--src/option_menu.c32
-rw-r--r--src/overworld.c18
-rw-r--r--src/palette.c244
-rwxr-xr-xsrc/party_menu.c30
-rw-r--r--src/player_pc.c16
-rw-r--r--src/pokeball.c17
-rw-r--r--src/pokeblock.c6
-rw-r--r--src/pokeblock_feed.c2
-rw-r--r--src/pokedex.c62
-rw-r--r--src/pokedex_area_region_map.c13
-rwxr-xr-xsrc/pokedex_area_screen.c4
-rw-r--r--src/pokedex_cry_screen.c6
-rw-r--r--src/pokemon.c4
-rwxr-xr-xsrc/pokemon_jump.c58
-rw-r--r--src/pokemon_storage_system.c60
-rw-r--r--src/pokemon_summary_screen.c22
-rw-r--r--src/pokenav_conditions_2.c28
-rw-r--r--src/pokenav_conditions_3.c12
-rw-r--r--src/pokenav_main_menu.c10
-rwxr-xr-xsrc/pokenav_match_call_2.c28
-rw-r--r--src/pokenav_match_call_ui.c50
-rw-r--r--src/pokenav_menu_handler_2.c16
-rwxr-xr-xsrc/pokenav_region_map.c34
-rw-r--r--src/pokenav_ribbons_1.c10
-rw-r--r--src/pokenav_ribbons_2.c30
-rw-r--r--src/rayquaza_scene.c30
-rw-r--r--src/record_mixing.c12
-rw-r--r--src/recorded_battle.c16
-rw-r--r--src/region_map.c2
-rw-r--r--src/reload_save.c2
-rw-r--r--src/reset_rtc_screen.c10
-rw-r--r--src/rom_header.s63
-rw-r--r--src/rom_header_gf.c165
-rw-r--r--src/roulette.c66
-rw-r--r--src/save.c571
-rw-r--r--src/save_failed_screen.c10
-rw-r--r--src/scrcmd.c9
-rw-r--r--src/script_menu.c48
-rw-r--r--src/secret_base.c2
-rwxr-xr-xsrc/shop.c8
-rw-r--r--src/slot_machine.c12
-rw-r--r--src/sound.c100
-rw-r--r--src/start_menu.c62
-rw-r--r--src/starter_choose.c18
-rw-r--r--src/strings.c8
-rw-r--r--src/trade.c53
-rw-r--r--src/trader.c2
-rwxr-xr-xsrc/trainer_card.c64
-rw-r--r--src/trainer_hill.c8
-rw-r--r--src/union_room.c22
-rw-r--r--src/union_room_battle.c2
-rwxr-xr-xsrc/union_room_chat.c92
-rw-r--r--src/use_pokeblock.c34
-rw-r--r--src/wallclock.c16
-rw-r--r--src/wild_encounter.c2
-rw-r--r--src/wireless_communication_status_screen.c16
131 files changed, 2553 insertions, 2350 deletions
diff --git a/src/apprentice.c b/src/apprentice.c
index 032b76715..6255b9215 100644
--- a/src/apprentice.c
+++ b/src/apprentice.c
@@ -643,9 +643,9 @@ static void CreateApprenticeMenu(u8 menu)
SetStandardWindowBorderStyle(windowId, 0);
for (i = 0; i < count; i++)
- AddTextPrinterParameterized(windowId, FONT_NORMAL, strings[i], 8, (i * 16) + 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(windowId, FONT_NORMAL, strings[i], 8, (i * 16) + 1, TEXT_SKIP_DRAW, NULL);
- InitMenuInUpperLeftCornerPlaySoundWhenAPressed(windowId, count, 0);
+ InitMenuInUpperLeftCornerNormal(windowId, count, 0);
CreateChooseAnswerTask(TRUE, count, windowId);
}
@@ -691,7 +691,7 @@ static u8 CreateAndShowWindow(u8 left, u8 top, u8 width, u8 height)
windowId = AddWindow(&winTemplate);
PutWindowTilemap(windowId);
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_FULL);
return windowId;
}
diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c
index ae0db0b87..a03196ee1 100644
--- a/src/battle_anim_mons.c
+++ b/src/battle_anim_mons.c
@@ -724,9 +724,9 @@ static void TranslateSpriteToBattleAttackerPos(struct Sprite *sprite)
#undef sTargetY
// Unused
-static void sub_80A67A4(struct Sprite *sprite)
+static void EndUnkPaletteAnim(struct Sprite *sprite)
{
- ResetPaletteStructByUid(sprite->data[5]);
+ PaletteStruct_ResetById(sprite->data[5]);
DestroySpriteAndMatrix(sprite);
}
diff --git a/src/battle_anim_sound_tasks.c b/src/battle_anim_sound_tasks.c
index 6068b0f33..6b14d3863 100644
--- a/src/battle_anim_sound_tasks.c
+++ b/src/battle_anim_sound_tasks.c
@@ -168,7 +168,7 @@ void SoundTask_PlayCryHighPitch(u8 taskId)
}
if (species != SPECIES_NONE)
- PlayCry3(species, pan, 3);
+ PlayCry_ByMode(species, pan, CRY_MODE_HIGH_PITCH);
DestroyAnimVisualTask(taskId);
}
@@ -219,10 +219,10 @@ void SoundTask_PlayDoubleCry(u8 taskId)
if (species != SPECIES_NONE)
{
- if (gBattleAnimArgs[1] == 0xFF)
- PlayCry3(species, pan, 9);
- else
- PlayCry3(species, pan, 7);
+ if (gBattleAnimArgs[1] == DOUBLE_CRY_GROWL)
+ PlayCry_ByMode(species, pan, CRY_MODE_GROWL_1);
+ else // DOUBLE_CRY_ROAR
+ PlayCry_ByMode(species, pan, CRY_MODE_ROAR_1);
gTasks[taskId].func = SoundTask_PlayDoubleCry_Step;
}
@@ -243,19 +243,19 @@ static void SoundTask_PlayDoubleCry_Step(u8 taskId)
}
else
{
- if (gTasks[taskId].data[0] == 0xFF)
+ if (gTasks[taskId].data[0] == DOUBLE_CRY_GROWL)
{
if (!IsCryPlaying())
{
- PlayCry3(species, pan, 10);
+ PlayCry_ByMode(species, pan, CRY_MODE_GROWL_2);
DestroyAnimVisualTask(taskId);
}
}
- else
+ else // DOUBLE_CRY_ROAR
{
if (!IsCryPlaying())
{
- PlayCry3(species, pan, 8);
+ PlayCry_ByMode(species, pan, CRY_MODE_ROAR_2);
DestroyAnimVisualTask(taskId);
}
}
@@ -275,12 +275,18 @@ void SoundTask_WaitForCry(u8 taskId)
}
}
+
+#define tSpecies data[1]
+#define tPan data[2]
+#define tState data[9]
+#define tLastCry data[10] // If it's not the last cry, don't try to restore the BGM, because another is coming
+
void SoundTask_PlayCryWithEcho(u8 taskId)
{
u16 species;
s8 pan;
- gTasks[taskId].data[10] = gBattleAnimArgs[0];
+ gTasks[taskId].tLastCry = gBattleAnimArgs[0];
pan = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER);
if (IsContest())
@@ -288,8 +294,8 @@ void SoundTask_PlayCryWithEcho(u8 taskId)
else
species = gAnimBattlerSpecies[gBattleAnimAttacker];
- gTasks[taskId].data[1] = species;
- gTasks[taskId].data[2] = pan;
+ gTasks[taskId].tSpecies = species;
+ gTasks[taskId].tPan = pan;
if (species != SPECIES_NONE)
gTasks[taskId].func = SoundTask_PlayCryWithEcho_Step;
@@ -299,38 +305,44 @@ void SoundTask_PlayCryWithEcho(u8 taskId)
static void SoundTask_PlayCryWithEcho_Step(u8 taskId)
{
- u16 species = gTasks[taskId].data[1];
- s8 pan = gTasks[taskId].data[2];
+ u16 species = gTasks[taskId].tSpecies;
+ s8 pan = gTasks[taskId].tPan;
- switch (gTasks[taskId].data[9])
+ // Note the cases are not in order of execution
+ switch (gTasks[taskId].tState)
{
case 2:
- PlayCry6(species, pan, 4);
- gTasks[taskId].data[9]++;
+ PlayCry_DuckNoRestore(species, pan, CRY_MODE_ECHO_START);
+ gTasks[taskId].tState++;
break;
case 1:
case 3:
case 4:
- gTasks[taskId].data[9]++;
+ gTasks[taskId].tState++;
break;
case 5:
if (IsCryPlaying())
break;
case 0:
StopCryAndClearCrySongs();
- gTasks[taskId].data[9]++;
+ gTasks[taskId].tState++;
break;
default:
- if (gTasks[taskId].data[10] == 0)
- PlayCry6(species, pan, 6);
+ if (!gTasks[taskId].tLastCry)
+ PlayCry_DuckNoRestore(species, pan, CRY_MODE_ECHO_END);
else
- PlayCry3(species, pan, 6);
+ PlayCry_ByMode(species, pan, CRY_MODE_ECHO_END);
DestroyAnimVisualTask(taskId);
break;
}
}
+#undef tSpecies
+#undef tPan
+#undef tState
+#undef tLastCry
+
void SoundTask_PlaySE1WithPanning(u8 taskId)
{
u16 songId = gBattleAnimArgs[0];
diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c
index 6def51870..2ec2e61dc 100644
--- a/src/battle_controller_link_opponent.c
+++ b/src/battle_controller_link_opponent.c
@@ -1681,7 +1681,7 @@ static void LinkOpponentHandleFaintingCry(void)
{
u16 species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
- PlayCry3(species, 25, 5);
+ PlayCry_ByMode(species, 25, CRY_MODE_FAINT);
LinkOpponentBufferExecCompleted();
}
diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c
index a8cbd7dfd..0fa156a43 100644
--- a/src/battle_controller_link_partner.c
+++ b/src/battle_controller_link_partner.c
@@ -1513,7 +1513,7 @@ static void LinkPartnerHandleFaintingCry(void)
{
u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
- PlayCry3(species, -25, 5);
+ PlayCry_ByMode(species, -25, CRY_MODE_FAINT);
LinkPartnerBufferExecCompleted();
}
diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c
index 9aeb3e81b..8e1a8327a 100644
--- a/src/battle_controller_opponent.c
+++ b/src/battle_controller_opponent.c
@@ -1847,7 +1847,7 @@ static void OpponentHandleFaintingCry(void)
{
u16 species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
- PlayCry3(species, 25, 5);
+ PlayCry_ByMode(species, 25, CRY_MODE_FAINT);
OpponentBufferExecCompleted();
}
diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c
index 20ef730bd..ff5591e55 100644
--- a/src/battle_controller_player.c
+++ b/src/battle_controller_player.c
@@ -2926,7 +2926,7 @@ static void PlayerHandleFaintingCry(void)
{
u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
- PlayCry3(species, -25, 5);
+ PlayCry_ByMode(species, -25, CRY_MODE_FAINT);
PlayerBufferExecCompleted();
}
diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c
index b2fd4520f..2c9098271 100644
--- a/src/battle_controller_player_partner.c
+++ b/src/battle_controller_player_partner.c
@@ -1763,7 +1763,7 @@ static void PlayerPartnerHandleFaintingCry(void)
{
u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
- PlayCry3(species, -25, 5);
+ PlayCry_ByMode(species, -25, CRY_MODE_FAINT);
PlayerPartnerBufferExecCompleted();
}
diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c
index a8c159563..54156da35 100644
--- a/src/battle_controller_recorded_opponent.c
+++ b/src/battle_controller_recorded_opponent.c
@@ -1621,7 +1621,7 @@ static void RecordedOpponentHandleFaintingCry(void)
{
u16 species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
- PlayCry3(species, 25, 5);
+ PlayCry_ByMode(species, 25, CRY_MODE_FAINT);
RecordedOpponentBufferExecCompleted();
}
diff --git a/src/battle_controller_recorded_player.c b/src/battle_controller_recorded_player.c
index c7015dd0b..a28e87a42 100644
--- a/src/battle_controller_recorded_player.c
+++ b/src/battle_controller_recorded_player.c
@@ -1644,7 +1644,7 @@ static void RecordedPlayerHandleFaintingCry(void)
{
u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
- PlayCry3(species, -25, 5);
+ PlayCry_ByMode(species, -25, CRY_MODE_FAINT);
RecordedPlayerBufferExecCompleted();
}
diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c
index a26f31b92..78a57a0f7 100644
--- a/src/battle_controller_safari.c
+++ b/src/battle_controller_safari.c
@@ -616,7 +616,7 @@ static void SafariHandleFaintingCry(void)
{
u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
- PlayCry1(species, 25);
+ PlayCry_Normal(species, 25);
SafariBufferExecCompleted();
}
diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c
index 376f76ab6..f7c331257 100644
--- a/src/battle_controller_wally.c
+++ b/src/battle_controller_wally.c
@@ -1415,7 +1415,9 @@ static void WallyHandleFaintingCry(void)
{
u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
- PlayCry1(species, 25);
+ // Seems that it doesn't bother using CRY_MODE_FAINT because
+ // Wally's Pokémon during the tutorial is never intended to faint.
+ PlayCry_Normal(species, 25);
WallyBufferExecCompleted();
}
diff --git a/src/battle_dome.c b/src/battle_dome.c
index 1ff89420e..45df83c7c 100644
--- a/src/battle_dome.c
+++ b/src/battle_dome.c
@@ -3428,7 +3428,7 @@ static void Task_HandleInfoCardInput(u8 taskId)
for (i = windowId; i < windowId + 9; i++)
{
- CopyWindowToVram(i, 2);
+ CopyWindowToVram(i, COPYWIN_GFX);
FillWindowPixelBuffer(i, PIXEL_FILL(0));
}
gTasks[taskId].tState = STATE_REACT_INPUT;
@@ -4358,7 +4358,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTourneyId)
textPrinter.currentChar = gStringVar1;
textPrinter.windowId = windowId;
PutWindowTilemap(windowId);
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_FULL);
AddTextPrinter(&textPrinter, 0, NULL);
textPrinter.letterSpacing = 0;
@@ -4380,12 +4380,12 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTourneyId)
textPrinter.currentX = 0;
PutWindowTilemap(1 + i + windowId);
- CopyWindowToVram(1 + i + windowId, 3);
+ CopyWindowToVram(1 + i + windowId, COPYWIN_FULL);
AddTextPrinter(&textPrinter, 0, NULL);
}
PutWindowTilemap(windowId + 4);
- CopyWindowToVram(windowId + 4, 3);
+ CopyWindowToVram(windowId + 4, COPYWIN_FULL);
// Print text about trainers potential in the tourney
if (trainerId == TRAINER_FRONTIER_BRAIN)
@@ -4861,7 +4861,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo)
textPrinter.windowId = windowId + 8;
textPrinter.fontId = FONT_NORMAL;
PutWindowTilemap(windowId + 8);
- CopyWindowToVram(windowId + 8, 3);
+ CopyWindowToVram(windowId + 8, COPYWIN_FULL);
textPrinter.currentX = 0;
textPrinter.currentY = textPrinter.y = 0;
AddTextPrinter(&textPrinter, 0, NULL);
@@ -4881,7 +4881,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo)
textPrinter.currentX = GetStringCenterAlignXOffsetWithLetterSpacing(textPrinter.fontId, textPrinter.currentChar, 0x40, textPrinter.letterSpacing);
textPrinter.currentY = textPrinter.y = 2;
PutWindowTilemap(windowId + 6);
- CopyWindowToVram(windowId + 6, 3);
+ CopyWindowToVram(windowId + 6, COPYWIN_FULL);
AddTextPrinter(&textPrinter, 0, NULL);
// Print right trainer's name.
@@ -4897,7 +4897,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo)
textPrinter.currentX = GetStringCenterAlignXOffsetWithLetterSpacing(textPrinter.fontId, textPrinter.currentChar, 0x40, textPrinter.letterSpacing);
textPrinter.currentY = textPrinter.y = 2;
PutWindowTilemap(windowId + 7);
- CopyWindowToVram(windowId + 7, 3);
+ CopyWindowToVram(windowId + 7, COPYWIN_FULL);
AddTextPrinter(&textPrinter, 0, NULL);
// Print match number.
@@ -4907,7 +4907,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo)
textPrinter.currentX = GetStringCenterAlignXOffsetWithLetterSpacing(textPrinter.fontId, textPrinter.currentChar, 0xA0, textPrinter.letterSpacing);
textPrinter.currentY = textPrinter.y = 2;
PutWindowTilemap(windowId + 5);
- CopyWindowToVram(windowId + 5, 3);
+ CopyWindowToVram(windowId + 5, COPYWIN_FULL);
AddTextPrinter(&textPrinter, 0, NULL);
}
@@ -5281,10 +5281,10 @@ static void Task_ShowTourneyTree(u8 taskId)
gBattle_BG0_Y = 0;
gBattle_BG1_X = 0;
gBattle_BG1_Y = 0;
- ChangeBgX(2, 0, 0);
- ChangeBgY(2, 0, 0);
- ChangeBgX(3, 0, 0);
- ChangeBgY(3, 0xB00, 0);
+ ChangeBgX(2, 0, BG_COORD_SET);
+ ChangeBgY(2, 0, BG_COORD_SET);
+ ChangeBgX(3, 0, BG_COORD_SET);
+ ChangeBgY(3, 0xB00, BG_COORD_SET);
gTasks[taskId].tState++;
break;
case 1:
@@ -5442,9 +5442,9 @@ static void Task_ShowTourneyTree(u8 taskId)
PutWindowTilemap(0);
PutWindowTilemap(1);
PutWindowTilemap(2);
- CopyWindowToVram(0, 3);
- CopyWindowToVram(1, 3);
- CopyWindowToVram(2, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
+ CopyWindowToVram(1, COPYWIN_FULL);
+ CopyWindowToVram(2, COPYWIN_FULL);
SetHBlankCallback(HblankCb_TourneyTree);
SetVBlankCallback(VblankCb_TourneyTree);
if (r4 == 2)
@@ -5597,8 +5597,8 @@ static void CB2_TourneyTree(void)
static void VblankCb_TourneyInfoCard(void)
{
- ChangeBgX(3, 0x80, 1);
- ChangeBgY(3, 0x80, 2);
+ ChangeBgX(3, 0x80, BG_COORD_ADD);
+ ChangeBgY(3, 0x80, BG_COORD_SUB);
SetGpuReg(REG_OFFSET_BG0HOFS, gBattle_BG0_X);
SetGpuReg(REG_OFFSET_BG0VOFS, gBattle_BG0_Y);
SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
@@ -5693,8 +5693,8 @@ static void VblankCb_TourneyTree(void)
SetGpuReg(REG_OFFSET_BG0VOFS, gBattle_BG0_Y);
SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
- ChangeBgY(2, 0x80, 2);
- ChangeBgY(3, 0x80, 1);
+ ChangeBgY(2, 0x80, BG_COORD_SUB);
+ ChangeBgY(3, 0x80, BG_COORD_ADD);
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
diff --git a/src/battle_factory_screen.c b/src/battle_factory_screen.c
index cd0a44e38..247b8712f 100644
--- a/src/battle_factory_screen.c
+++ b/src/battle_factory_screen.c
@@ -1147,12 +1147,12 @@ static void CB2_InitSelectScreen(void)
sSelectMonPicBgTilesetBuffer = AllocZeroed(0x440);
sSelectMenuTilemapBuffer = Alloc(BG_SCREEN_SIZE);
sSelectMonPicBgTilemapBuffer = AllocZeroed(BG_SCREEN_SIZE);
- ChangeBgX(0, 0, 0);
- ChangeBgY(0, 0, 0);
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
- ChangeBgX(3, 0, 0);
- ChangeBgY(3, 0, 0);
+ ChangeBgX(0, 0, BG_COORD_SET);
+ ChangeBgY(0, 0, BG_COORD_SET);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
+ ChangeBgX(3, 0, BG_COORD_SET);
+ ChangeBgY(3, 0, BG_COORD_SET);
SetGpuReg(REG_OFFSET_BLDCNT, 0);
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
SetGpuReg(REG_OFFSET_BLDY, 0);
@@ -1854,7 +1854,7 @@ static void Select_ErasePopupMenu(u8 windowId)
gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = TRUE;
gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = TRUE;
FillWindowPixelBuffer(windowId, PIXEL_FILL(0));
- CopyWindowToVram(windowId, 2);
+ CopyWindowToVram(windowId, COPYWIN_GFX);
ClearWindowTilemap(windowId);
}
@@ -1862,7 +1862,7 @@ static void Select_PrintRentalPkmnString(void)
{
FillWindowPixelBuffer(SELECT_WIN_TITLE, PIXEL_FILL(0));
AddTextPrinterParameterized(SELECT_WIN_TITLE, FONT_NORMAL, gText_RentalPkmn2, 2, 1, 0, NULL);
- CopyWindowToVram(SELECT_WIN_TITLE, 3);
+ CopyWindowToVram(SELECT_WIN_TITLE, COPYWIN_FULL);
}
static void Select_PrintMonSpecies(void)
@@ -1876,7 +1876,7 @@ static void Select_PrintMonSpecies(void)
StringCopy(gStringVar4, gSpeciesNames[species]);
x = GetStringRightAlignXOffset(FONT_NORMAL, gStringVar4, 86);
AddTextPrinterParameterized3(SELECT_WIN_SPECIES, FONT_NORMAL, x, 1, sSpeciesNameTextColors, 0, gStringVar4);
- CopyWindowToVram(SELECT_WIN_SPECIES, 2);
+ CopyWindowToVram(SELECT_WIN_SPECIES, COPYWIN_GFX);
}
static void Select_PrintSelectMonString(void)
@@ -1894,14 +1894,14 @@ static void Select_PrintSelectMonString(void)
str = gText_TheseThreePkmnOkay;
AddTextPrinterParameterized(SELECT_WIN_INFO, FONT_NORMAL, str, 2, 5, 0, NULL);
- CopyWindowToVram(SELECT_WIN_INFO, 2);
+ CopyWindowToVram(SELECT_WIN_INFO, COPYWIN_GFX);
}
static void Select_PrintCantSelectSameMon(void)
{
FillWindowPixelBuffer(SELECT_WIN_INFO, PIXEL_FILL(0));
AddTextPrinterParameterized(SELECT_WIN_INFO, FONT_NORMAL, gText_CantSelectSamePkmn, 2, 5, 0, NULL);
- CopyWindowToVram(SELECT_WIN_INFO, 2);
+ CopyWindowToVram(SELECT_WIN_INFO, COPYWIN_GFX);
}
static void Select_PrintMenuOptions(void)
@@ -1917,7 +1917,7 @@ static void Select_PrintMenuOptions(void)
AddTextPrinterParameterized3(SELECT_WIN_OPTIONS, FONT_NORMAL, 7, 17, sMenuOptionTextColors, 0, gText_Rent);
AddTextPrinterParameterized3(SELECT_WIN_OPTIONS, FONT_NORMAL, 7, 33, sMenuOptionTextColors, 0, gText_Others2);
- CopyWindowToVram(SELECT_WIN_OPTIONS, 3);
+ CopyWindowToVram(SELECT_WIN_OPTIONS, COPYWIN_FULL);
}
static void Select_PrintYesNoOptions(void)
@@ -1926,7 +1926,7 @@ static void Select_PrintYesNoOptions(void)
FillWindowPixelBuffer(SELECT_WIN_YES_NO, PIXEL_FILL(0));
AddTextPrinterParameterized3(SELECT_WIN_YES_NO, FONT_NORMAL, 7, 1, sMenuOptionTextColors, 0, gText_Yes2);
AddTextPrinterParameterized3(SELECT_WIN_YES_NO, FONT_NORMAL, 7, 17, sMenuOptionTextColors, 0, gText_No2);
- CopyWindowToVram(SELECT_WIN_YES_NO, 3);
+ CopyWindowToVram(SELECT_WIN_YES_NO, COPYWIN_FULL);
}
static u8 Select_RunMenuOptionFunc(void)
@@ -1996,7 +1996,7 @@ static void Select_PrintMonCategory(void)
CopyMonCategoryText(SpeciesToNationalPokedexNum(species), text);
x = GetStringRightAlignXOffset(FONT_NORMAL, text, 0x76);
AddTextPrinterParameterized(SELECT_WIN_MON_CATEGORY, FONT_NORMAL, text, x, 1, 0, NULL);
- CopyWindowToVram(SELECT_WIN_MON_CATEGORY, 2);
+ CopyWindowToVram(SELECT_WIN_MON_CATEGORY, COPYWIN_GFX);
}
}
@@ -3012,7 +3012,7 @@ static void Swap_Task_ScreenInfoTransitionOut(u8 taskId)
if (!gPaletteFade.active)
{
FillWindowPixelBuffer(SWAP_WIN_ACTION_FADE, PIXEL_FILL(0));
- CopyWindowToVram(SWAP_WIN_ACTION_FADE, 2);
+ CopyWindowToVram(SWAP_WIN_ACTION_FADE, COPYWIN_GFX);
if (sFactorySwapScreen->inEnemyScreen == TRUE)
{
// Start "Pkmn for Swap" button slide offscreen
@@ -3150,7 +3150,7 @@ static void Swap_Task_ScreenInfoTransitionIn(u8 taskId)
break;
case 6:
FillWindowPixelBuffer(SWAP_WIN_ACTION_FADE, PIXEL_FILL(0));
- CopyWindowToVram(SWAP_WIN_ACTION_FADE, 2);
+ CopyWindowToVram(SWAP_WIN_ACTION_FADE, COPYWIN_GFX);
gTasks[taskId].tState++;
break;
case 7:
@@ -3280,14 +3280,14 @@ static void CB2_InitSwapScreen(void)
sSwapMonPicBgTilesetBuffer = AllocZeroed(0x440);
sSwapMenuTilemapBuffer = Alloc(BG_SCREEN_SIZE);
sSwapMonPicBgTilemapBuffer = AllocZeroed(BG_SCREEN_SIZE);
- ChangeBgX(0, 0, 0);
- ChangeBgY(0, 0, 0);
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
- ChangeBgX(2, 0, 0);
- ChangeBgY(2, 0, 0);
- ChangeBgX(3, 0, 0);
- ChangeBgY(3, 0, 0);
+ ChangeBgX(0, 0, BG_COORD_SET);
+ ChangeBgY(0, 0, BG_COORD_SET);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
+ ChangeBgX(2, 0, BG_COORD_SET);
+ ChangeBgY(2, 0, BG_COORD_SET);
+ ChangeBgX(3, 0, BG_COORD_SET);
+ ChangeBgY(3, 0, BG_COORD_SET);
SetGpuReg(REG_OFFSET_BLDY, 0);
SetGpuReg(REG_OFFSET_MOSAIC, 0);
SetGpuReg(REG_OFFSET_WIN0H, 0);
@@ -3724,7 +3724,7 @@ static void Swap_ErasePopupMenu(u8 windowId)
gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = TRUE;
gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = TRUE;
FillWindowPixelBuffer(windowId, PIXEL_FILL(0));
- CopyWindowToVram(windowId, 2);
+ CopyWindowToVram(windowId, COPYWIN_GFX);
ClearWindowTilemap(windowId);
}
@@ -3732,14 +3732,14 @@ static void Swap_EraseSpeciesWindow(void)
{
PutWindowTilemap(SWAP_WIN_SPECIES);
FillWindowPixelBuffer(SWAP_WIN_SPECIES, PIXEL_FILL(0));
- CopyWindowToVram(SWAP_WIN_SPECIES, 2);
+ CopyWindowToVram(SWAP_WIN_SPECIES, COPYWIN_GFX);
}
static void Swap_EraseSpeciesAtFadeWindow(void)
{
PutWindowTilemap(SWAP_WIN_SPECIES_AT_FADE);
FillWindowPixelBuffer(SWAP_WIN_SPECIES_AT_FADE, PIXEL_FILL(0));
- CopyWindowToVram(SWAP_WIN_SPECIES_AT_FADE, 2);
+ CopyWindowToVram(SWAP_WIN_SPECIES_AT_FADE, COPYWIN_GFX);
}
static void Swap_EraseActionFadeWindow(void)
@@ -3747,14 +3747,14 @@ static void Swap_EraseActionFadeWindow(void)
Swap_EraseSpeciesWindow();
PutWindowTilemap(SWAP_WIN_ACTION_FADE);
FillWindowPixelBuffer(SWAP_WIN_ACTION_FADE, PIXEL_FILL(0));
- CopyWindowToVram(SWAP_WIN_ACTION_FADE, 2);
+ CopyWindowToVram(SWAP_WIN_ACTION_FADE, COPYWIN_GFX);
}
static void Swap_PrintPkmnSwap(void)
{
FillWindowPixelBuffer(SWAP_WIN_TITLE, PIXEL_FILL(1));
AddTextPrinterParameterized(SWAP_WIN_TITLE, FONT_NORMAL, gText_PkmnSwap, 2, 1, 0, NULL);
- CopyWindowToVram(SWAP_WIN_TITLE, 3);
+ CopyWindowToVram(SWAP_WIN_TITLE, COPYWIN_FULL);
}
static void Swap_PrintMonSpecies(void)
@@ -3765,7 +3765,7 @@ static void Swap_PrintMonSpecies(void)
FillWindowPixelBuffer(SWAP_WIN_SPECIES, PIXEL_FILL(0));
if (sFactorySwapScreen->cursorPos >= FRONTIER_PARTY_SIZE)
{
- CopyWindowToVram(SWAP_WIN_SPECIES, 2);
+ CopyWindowToVram(SWAP_WIN_SPECIES, COPYWIN_GFX);
}
else
{
@@ -3777,7 +3777,7 @@ static void Swap_PrintMonSpecies(void)
StringCopy(gStringVar4, gSpeciesNames[species]);
x = GetStringRightAlignXOffset(FONT_NORMAL, gStringVar4, 86);
AddTextPrinterParameterized3(SWAP_WIN_SPECIES, FONT_NORMAL, x, 1, sSwapSpeciesNameTextColors, 0, gStringVar4);
- CopyWindowToVram(SWAP_WIN_SPECIES, 3);
+ CopyWindowToVram(SWAP_WIN_SPECIES, COPYWIN_FULL);
}
}
@@ -3785,7 +3785,7 @@ static void Swap_PrintOnInfoWindow(const u8 *str)
{
FillWindowPixelBuffer(SWAP_WIN_INFO, PIXEL_FILL(0));
AddTextPrinterParameterized(SWAP_WIN_INFO, FONT_NORMAL, str, 2, 5, 0, NULL);
- CopyWindowToVram(SWAP_WIN_INFO, 2);
+ CopyWindowToVram(SWAP_WIN_INFO, COPYWIN_GFX);
}
static void Swap_PrintMenuOptions(void)
@@ -3795,7 +3795,7 @@ static void Swap_PrintMenuOptions(void)
AddTextPrinterParameterized3(SWAP_WIN_OPTIONS, FONT_NORMAL, 15, 1, sSwapMenuOptionsTextColors, 0, gText_Summary2);
AddTextPrinterParameterized3(SWAP_WIN_OPTIONS, FONT_NORMAL, 15, 17, sSwapMenuOptionsTextColors, 0, gText_Swap);
AddTextPrinterParameterized3(SWAP_WIN_OPTIONS, FONT_NORMAL, 15, 33, sSwapMenuOptionsTextColors, 0, gText_Rechoose);
- CopyWindowToVram(SWAP_WIN_OPTIONS, 3);
+ CopyWindowToVram(SWAP_WIN_OPTIONS, COPYWIN_FULL);
}
static void Swap_PrintYesNoOptions(void)
@@ -3804,7 +3804,7 @@ static void Swap_PrintYesNoOptions(void)
FillWindowPixelBuffer(SWAP_WIN_YES_NO, PIXEL_FILL(0));
AddTextPrinterParameterized3(SWAP_WIN_YES_NO, FONT_NORMAL, 7, 1, sSwapMenuOptionsTextColors, 0, gText_Yes3);
AddTextPrinterParameterized3(SWAP_WIN_YES_NO, FONT_NORMAL, 7, 17, sSwapMenuOptionsTextColors, 0, gText_No3);
- CopyWindowToVram(SWAP_WIN_YES_NO, 3);
+ CopyWindowToVram(SWAP_WIN_YES_NO, COPYWIN_FULL);
}
static void Swap_PrintActionString(const u8 *str, u32 y, u32 windowId)
@@ -3824,7 +3824,7 @@ static void Swap_PrintActionStrings(void)
Swap_PrintActionString(gText_Cancel3, 24, SWAP_WIN_ACTION_FADE);
break;
}
- CopyWindowToVram(SWAP_WIN_ACTION_FADE, 3);
+ CopyWindowToVram(SWAP_WIN_ACTION_FADE, COPYWIN_FULL);
}
static void Swap_PrintActionStrings2(void)
@@ -3838,7 +3838,7 @@ static void Swap_PrintActionStrings2(void)
Swap_PrintActionString(gText_Cancel3, 32, SWAP_WIN_OPTIONS);
break;
}
- CopyWindowToVram(SWAP_WIN_OPTIONS, 3);
+ CopyWindowToVram(SWAP_WIN_OPTIONS, COPYWIN_FULL);
}
static void Swap_PrintOneActionString(u8 which)
@@ -3853,7 +3853,7 @@ static void Swap_PrintOneActionString(u8 which)
Swap_PrintActionString(gText_Cancel3, 32, SWAP_WIN_OPTIONS);
break;
}
- CopyWindowToVram(SWAP_WIN_OPTIONS, 3);
+ CopyWindowToVram(SWAP_WIN_OPTIONS, COPYWIN_FULL);
}
// For printing the species name once its selected. Keep the current fade but don't keep fading in and out
@@ -3874,7 +3874,7 @@ static void Swap_PrintMonSpeciesAtFade(void)
FillWindowPixelBuffer(SWAP_WIN_SPECIES_AT_FADE, PIXEL_FILL(0));
if (sFactorySwapScreen->cursorPos >= FRONTIER_PARTY_SIZE)
{
- CopyWindowToVram(SWAP_WIN_SPECIES_AT_FADE, 3);
+ CopyWindowToVram(SWAP_WIN_SPECIES_AT_FADE, COPYWIN_FULL);
}
else
{
@@ -3886,7 +3886,7 @@ static void Swap_PrintMonSpeciesAtFade(void)
StringCopy(gStringVar4, gSpeciesNames[species]);
x = GetStringRightAlignXOffset(FONT_NORMAL, gStringVar4, 86);
AddTextPrinterParameterized3(SWAP_WIN_SPECIES_AT_FADE, FONT_NORMAL, x, 1, sSwapSpeciesNameTextColors, 0, gStringVar4);
- CopyWindowToVram(SWAP_WIN_SPECIES_AT_FADE, 3);
+ CopyWindowToVram(SWAP_WIN_SPECIES_AT_FADE, COPYWIN_FULL);
}
}
@@ -3901,7 +3901,7 @@ static void Swap_PrintMonSpeciesForTransition(void)
if (sFactorySwapScreen->cursorPos >= FRONTIER_PARTY_SIZE)
{
- CopyWindowToVram(SWAP_WIN_SPECIES, 2);
+ CopyWindowToVram(SWAP_WIN_SPECIES, COPYWIN_GFX);
}
else
{
@@ -3913,7 +3913,7 @@ static void Swap_PrintMonSpeciesForTransition(void)
StringCopy(gStringVar4, gSpeciesNames[species]);
x = GetStringRightAlignXOffset(FONT_NORMAL, gStringVar4, 86);
AddTextPrinterParameterized3(SWAP_WIN_SPECIES, FONT_NORMAL, x, 1, sSwapSpeciesNameTextColors, 0, gStringVar4);
- CopyWindowToVram(SWAP_WIN_SPECIES, 3);
+ CopyWindowToVram(SWAP_WIN_SPECIES, COPYWIN_FULL);
}
}
@@ -3927,7 +3927,7 @@ static void Swap_PrintMonCategory(void)
FillWindowPixelBuffer(SWAP_WIN_MON_CATEGORY, PIXEL_FILL(0));
if (monId >= FRONTIER_PARTY_SIZE)
{
- CopyWindowToVram(SWAP_WIN_MON_CATEGORY, 2);
+ CopyWindowToVram(SWAP_WIN_MON_CATEGORY, COPYWIN_GFX);
}
else
{
@@ -3939,7 +3939,7 @@ static void Swap_PrintMonCategory(void)
CopyMonCategoryText(SpeciesToNationalPokedexNum(species), text);
x = GetStringRightAlignXOffset(FONT_NORMAL, text, 0x76);
AddTextPrinterParameterized(SWAP_WIN_MON_CATEGORY, FONT_NORMAL, text, x, 1, 0, NULL);
- CopyWindowToVram(SWAP_WIN_MON_CATEGORY, 2);
+ CopyWindowToVram(SWAP_WIN_MON_CATEGORY, COPYWIN_GFX);
}
}
@@ -4126,7 +4126,7 @@ static void Swap_TaskCantHaveSameMons(u8 taskId)
if (sFactorySwapScreen->monPicAnimating != TRUE)
{
FillWindowPixelBuffer(SWAP_WIN_ACTION_FADE, PIXEL_FILL(0));
- CopyWindowToVram(SWAP_WIN_ACTION_FADE, 2);
+ CopyWindowToVram(SWAP_WIN_ACTION_FADE, COPYWIN_GFX);
gTasks[taskId].tState++;
}
break;
diff --git a/src/battle_interface.c b/src/battle_interface.c
index 17497cb2f..96bab7f90 100644
--- a/src/battle_interface.c
+++ b/src/battle_interface.c
@@ -9,7 +9,6 @@
#include "string_util.h"
#include "text.h"
#include "sound.h"
-#include "constants/songs.h"
#include "decompress.h"
#include "task.h"
#include "util.h"
@@ -20,10 +19,12 @@
#include "international_string_util.h"
#include "safari_zone.h"
#include "battle_anim.h"
-#include "constants/battle_anim.h"
-#include "constants/rgb.h"
#include "data.h"
#include "pokemon_summary_screen.h"
+#include "strings.h"
+#include "constants/battle_anim.h"
+#include "constants/rgb.h"
+#include "constants/songs.h"
struct TestingBar
{
@@ -157,15 +158,6 @@ enum
HEALTHBOX_GFX_FRAME_END_BAR,
};
-// strings
-extern const u8 gText_Slash[];
-extern const u8 gText_HighlightDarkGray[];
-extern const u8 gText_DynColor2[];
-extern const u8 gText_DynColor2Male[];
-extern const u8 gText_DynColor1Female[];
-
-// this file's functions
-
static const u8 *GetHealthboxElementGfxPtr(u8 elementId);
static u8* AddTextPrinterAndCreateWindowOnHealthbox(const u8 *str, u32 x, u32 y, u32 bgColor, u32 *windowId);
@@ -178,27 +170,26 @@ static void SafariTextIntoHealthboxObject(void *dest, u8 *windowTileData, u32 wi
static void HpTextIntoHealthboxObject(void *dest, u8 *windowTileData, u32 windowWidth);
static void FillHealthboxObject(void *dest, u32 arg1, u32 arg2);
-static void sub_8073E08(u8 taskId);
-static void sub_8073F98(u8 taskId);
-static void sub_8073E64(u8 taskId);
+static void Task_HidePartyStatusSummary_BattleStart_1(u8 taskId);
+static void Task_HidePartyStatusSummary_BattleStart_2(u8 taskId);
+static void Task_HidePartyStatusSummary_DuringBattle(u8 taskId);
static void SpriteCB_HealthBoxOther(struct Sprite *sprite);
static void SpriteCB_HealthBar(struct Sprite *sprite);
-static void sub_8074158(struct Sprite *sprite);
-static void sub_8074090(struct Sprite *sprite);
-static void SpriteCB_StatusSummaryBar(struct Sprite *sprite);
-static void SpriteCB_StatusSummaryBallsOnBattleStart(struct Sprite *sprite);
-static void SpriteCB_StatusSummaryBallsOnSwitchout(struct Sprite *sprite);
+static void SpriteCB_StatusSummaryBar_Enter(struct Sprite *sprite);
+static void SpriteCB_StatusSummaryBar_Exit(struct Sprite *sprite);
+static void SpriteCB_StatusSummaryBalls_Enter(struct Sprite *sprite);
+static void SpriteCB_StatusSummaryBalls_Exit(struct Sprite *sprite);
+static void SpriteCB_StatusSummaryBalls_OnSwitchout(struct Sprite *sprite);
static u8 GetStatusIconForBattlerId(u8 statusElementId, u8 battlerId);
static s32 CalcNewBarValue(s32 maxValue, s32 currValue, s32 receivedValue, s32 *arg3, u8 arg4, u16 arg5);
static u8 GetScaledExpFraction(s32 currValue, s32 receivedValue, s32 maxValue, u8 scale);
static void MoveBattleBarGraphically(u8 battlerId, u8 whichBar);
static u8 CalcBarFilledPixels(s32 maxValue, s32 oldValue, s32 receivedValue, s32 *currValue, u8 *arg4, u8 scale);
-static void sub_8074F88(struct TestingBar *barInfo, s32 *arg1, u16 *arg2);
+static void Debug_TestHealthBar_Helper(struct TestingBar *barInfo, s32 *arg1, u16 *arg2);
-// const rom data
-static const struct OamData sUnknown_0832C138 =
+static const struct OamData sOamData_64x32 =
{
.y = 0,
.affineMode = ST_OAM_AFFINE_OFF,
@@ -220,7 +211,7 @@ static const struct SpriteTemplate sHealthboxPlayerSpriteTemplates[2] =
{
.tileTag = TAG_HEALTHBOX_PLAYER1_TILE,
.paletteTag = TAG_HEALTHBOX_PAL,
- .oam = &sUnknown_0832C138,
+ .oam = &sOamData_64x32,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
@@ -229,7 +220,7 @@ static const struct SpriteTemplate sHealthboxPlayerSpriteTemplates[2] =
{
.tileTag = TAG_HEALTHBOX_PLAYER2_TILE,
.paletteTag = TAG_HEALTHBOX_PAL,
- .oam = &sUnknown_0832C138,
+ .oam = &sOamData_64x32,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
@@ -242,7 +233,7 @@ static const struct SpriteTemplate sHealthboxOpponentSpriteTemplates[2] =
{
.tileTag = TAG_HEALTHBOX_OPPONENT1_TILE,
.paletteTag = TAG_HEALTHBOX_PAL,
- .oam = &sUnknown_0832C138,
+ .oam = &sOamData_64x32,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
@@ -251,7 +242,7 @@ static const struct SpriteTemplate sHealthboxOpponentSpriteTemplates[2] =
{
.tileTag = TAG_HEALTHBOX_OPPONENT2_TILE,
.paletteTag = TAG_HEALTHBOX_PAL,
- .oam = &sUnknown_0832C138,
+ .oam = &sOamData_64x32,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
@@ -263,7 +254,7 @@ static const struct SpriteTemplate sHealthboxSafariSpriteTemplate =
{
.tileTag = TAG_HEALTHBOX_SAFARI_TILE,
.paletteTag = TAG_HEALTHBOX_PAL,
- .oam = &sUnknown_0832C138,
+ .oam = &sOamData_64x32,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
@@ -327,7 +318,7 @@ static const struct SpriteTemplate sHealthbarSpriteTemplates[MAX_BATTLERS_COUNT]
}
};
-static const struct Subsprite sUnknown_0832C220[] =
+static const struct Subsprite sUnused_Subsprites_0[] =
{
{
.x = DISPLAY_WIDTH,
@@ -371,7 +362,7 @@ static const struct Subsprite sUnknown_0832C220[] =
}
};
-static const struct Subsprite sUnknown_0832C234[] =
+static const struct Subsprite sUnused_Subsprites_2[] =
{
{
.x = DISPLAY_WIDTH,
@@ -415,7 +406,7 @@ static const struct Subsprite sUnknown_0832C234[] =
}
};
-static const struct Subsprite sUnknown_0832C248[] =
+static const struct Subsprite sUnused_Subsprites_1[] =
{
{
.x = DISPLAY_WIDTH,
@@ -435,7 +426,7 @@ static const struct Subsprite sUnknown_0832C248[] =
}
};
-static const struct Subsprite sUnknown_0832C250[] =
+static const struct Subsprite sUnused_Subsprites_3[] =
{
{
.x = DISPLAY_WIDTH,
@@ -455,7 +446,7 @@ static const struct Subsprite sUnknown_0832C250[] =
}
};
-static const struct Subsprite sUnknown_0832C258[] =
+static const struct Subsprite sHealthBar_Subsprites_Player[] =
{
{
.x = DISPLAY_WIDTH,
@@ -475,7 +466,7 @@ static const struct Subsprite sUnknown_0832C258[] =
}
};
-static const struct Subsprite sUnknown_0832C260[] =
+static const struct Subsprite sHealthBar_Subsprites_Opponent[] =
{
{
.x = DISPLAY_WIDTH,
@@ -503,25 +494,24 @@ static const struct Subsprite sUnknown_0832C260[] =
}
};
-// unused subsprite table
-static const struct SubspriteTable sUnknown_0832C26C[] =
+static const struct SubspriteTable sUnused_SubspriteTable[] =
{
- {ARRAY_COUNT(sUnknown_0832C220), sUnknown_0832C220},
- {ARRAY_COUNT(sUnknown_0832C248), sUnknown_0832C248},
- {ARRAY_COUNT(sUnknown_0832C234), sUnknown_0832C234},
- {ARRAY_COUNT(sUnknown_0832C250), sUnknown_0832C250}
+ {ARRAY_COUNT(sUnused_Subsprites_0), sUnused_Subsprites_0},
+ {ARRAY_COUNT(sUnused_Subsprites_1), sUnused_Subsprites_1},
+ {ARRAY_COUNT(sUnused_Subsprites_2), sUnused_Subsprites_2},
+ {ARRAY_COUNT(sUnused_Subsprites_3), sUnused_Subsprites_3}
};
-static const struct SubspriteTable sUnknown_0832C28C[] =
+static const struct SubspriteTable sHealthBar_SubspriteTables[] =
{
- {ARRAY_COUNT(sUnknown_0832C258), sUnknown_0832C258},
- {ARRAY_COUNT(sUnknown_0832C260), sUnknown_0832C260}
+ [B_SIDE_PLAYER] = {ARRAY_COUNT(sHealthBar_Subsprites_Player), sHealthBar_Subsprites_Player},
+ [B_SIDE_OPPONENT] = {ARRAY_COUNT(sHealthBar_Subsprites_Opponent), sHealthBar_Subsprites_Opponent}
};
-static const struct Subsprite sStatusSummaryBar_Subsprites_0[] =
+static const struct Subsprite sStatusSummaryBar_Subsprites_Enter[] =
{
{
- .x = 160,
+ .x = 32 * 5,
.y = 0,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
@@ -529,7 +519,7 @@ static const struct Subsprite sStatusSummaryBar_Subsprites_0[] =
.priority = 1
},
{
- .x = 192,
+ .x = 32 * 6,
.y = 0,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
@@ -537,7 +527,7 @@ static const struct Subsprite sStatusSummaryBar_Subsprites_0[] =
.priority = 1
},
{
- .x = 224,
+ .x = 32 * 7,
.y = 0,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
@@ -554,10 +544,10 @@ static const struct Subsprite sStatusSummaryBar_Subsprites_0[] =
}
};
-static const struct Subsprite sUnknown_0832C2AC[] =
+static const struct Subsprite sStatusSummaryBar_Subsprites_Exit[] =
{
{
- .x = 160,
+ .x = 32 * 5,
.y = 0,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
@@ -565,7 +555,7 @@ static const struct Subsprite sUnknown_0832C2AC[] =
.priority = 1
},
{
- .x = 192,
+ .x = 32 * 6,
.y = 0,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
@@ -573,7 +563,7 @@ static const struct Subsprite sUnknown_0832C2AC[] =
.priority = 1
},
{
- .x = 224,
+ .x = 32 * 7,
.y = 0,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
@@ -581,7 +571,7 @@ static const struct Subsprite sUnknown_0832C2AC[] =
.priority = 1
},
{
- .x = 0,
+ .x = 32 * 0,
.y = 0,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
@@ -589,7 +579,7 @@ static const struct Subsprite sUnknown_0832C2AC[] =
.priority = 1
},
{
- .x = 32,
+ .x = 32 * 1,
.y = 0,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
@@ -597,7 +587,7 @@ static const struct Subsprite sUnknown_0832C2AC[] =
.priority = 1
},
{
- .x = 64,
+ .x = 32 * 2,
.y = 0,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
@@ -606,14 +596,14 @@ static const struct Subsprite sUnknown_0832C2AC[] =
}
};
-static const struct SubspriteTable sStatusSummaryBar_SubspriteTable[] =
+static const struct SubspriteTable sStatusSummaryBar_SubspriteTable_Enter[] =
{
- {ARRAY_COUNT(sStatusSummaryBar_Subsprites_0), sStatusSummaryBar_Subsprites_0}
+ {ARRAY_COUNT(sStatusSummaryBar_Subsprites_Enter), sStatusSummaryBar_Subsprites_Enter}
};
-static const struct SubspriteTable sUnknown_0832C2CC[] =
+static const struct SubspriteTable sStatusSummaryBar_SubspriteTable_Exit[] =
{
- {ARRAY_COUNT(sUnknown_0832C2AC), sUnknown_0832C2AC}
+ {ARRAY_COUNT(sStatusSummaryBar_Subsprites_Exit), sStatusSummaryBar_Subsprites_Exit}
};
// unused unknown image
@@ -676,23 +666,23 @@ static const struct OamData sOamData_StatusSummaryBalls =
static const struct SpriteTemplate sStatusSummaryBarSpriteTemplates[2] =
{
- {
+ { // Player
.tileTag = TAG_STATUS_SUMMARY_BAR_TILE,
.paletteTag = TAG_STATUS_SUMMARY_BAR_PAL,
- .oam = &sUnknown_0832C138,
+ .oam = &sOamData_64x32,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = SpriteCB_StatusSummaryBar
+ .callback = SpriteCB_StatusSummaryBar_Enter
},
- {
+ { // Opponent
.tileTag = TAG_STATUS_SUMMARY_BAR_TILE,
.paletteTag = TAG_STATUS_SUMMARY_BAR_PAL,
- .oam = &sUnknown_0832C138,
+ .oam = &sOamData_64x32,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = SpriteCB_StatusSummaryBar
+ .callback = SpriteCB_StatusSummaryBar_Enter
}
};
@@ -705,7 +695,7 @@ static const struct SpriteTemplate sStatusSummaryBallsSpriteTemplates[2] =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = SpriteCB_StatusSummaryBallsOnBattleStart
+ .callback = SpriteCB_StatusSummaryBalls_Enter
},
{
.tileTag = TAG_STATUS_SUMMARY_BALLS_TILE,
@@ -714,7 +704,7 @@ static const struct SpriteTemplate sStatusSummaryBallsSpriteTemplates[2] =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = SpriteCB_StatusSummaryBallsOnBattleStart
+ .callback = SpriteCB_StatusSummaryBalls_Enter
}
};
@@ -739,23 +729,28 @@ static const u16 sStatusIconColors[] =
[PAL_STATUS_BRN] = RGB(28, 14, 10),
};
-static const struct WindowTemplate sHealthboxWindowTemplate = {0, 0, 0, 8, 2, 0, 0}; // width = 8, height = 2
-
-// code
+static const struct WindowTemplate sHealthboxWindowTemplate = {
+ .bg = 0,
+ .tilemapLeft = 0,
+ .tilemapTop = 0,
+ .width = 8,
+ .height = 2,
+ .paletteNum = 0,
+ .baseBlock = 0
+};
static s32 DummiedOutFunction(s16 unused1, s16 unused2, s32 unused3)
{
return 9;
}
-void sub_8072308(s16 number, u16 *dest, bool8 unk)
+
+static void Debug_DrawNumber(s16 number, u16 *dest, bool8 unk)
{
s8 i, j;
u8 buff[4];
for (i = 0; i < 4; i++)
- {
buff[i] = 0;
- }
for (i = 3; ; i--)
{
@@ -767,9 +762,8 @@ void sub_8072308(s16 number, u16 *dest, bool8 unk)
else
{
for (; i > -1; i--)
- {
buff[i] = 0xFF;
- }
+
if (buff[3] == 0xFF)
buff[3] = 0;
break;
@@ -819,12 +813,12 @@ void sub_8072308(s16 number, u16 *dest, bool8 unk)
}
}
-
-void sub_80724A8(s16 arg0, s16 arg1, u16 *arg2)
+// Unused
+static void Debug_DrawNumberPair(s16 number1, s16 number2, u16 *arg2)
{
arg2[4] = 0x1E;
- sub_8072308(arg1, arg2, 0);
- sub_8072308(arg0, arg2 + 5, 1);
+ Debug_DrawNumber(number2, arg2, 0);
+ Debug_DrawNumber(number1, arg2 + 5, 1);
}
// Because the healthbox is too large to fit into one sprite, it is divided into two sprites.
@@ -910,7 +904,7 @@ u8 CreateBattlerHealthboxSprites(u8 battlerId)
healthbarSpriteId = CreateSpriteAtEnd(&sHealthbarSpriteTemplates[gBattlerPositions[battlerId]], 140, 60, 0);
healthBarSpritePtr = &gSprites[healthbarSpriteId];
- SetSubspriteTables(healthBarSpritePtr, &sUnknown_0832C28C[GetBattlerSide(battlerId)]);
+ SetSubspriteTables(healthBarSpritePtr, &sHealthBar_SubspriteTables[GetBattlerSide(battlerId)]);
healthBarSpritePtr->subspriteMode = SUBSPRITES_IGNORE_PRIORITY;
healthBarSpritePtr->oam.priority = 1;
@@ -1299,7 +1293,7 @@ static void PrintSafariMonInfo(u8 healthboxSpriteId, struct Pokemon *mon)
barFontGfx = &gMonSpritesGfxPtr->barFontGfx[0x520 + (GetBattlerPosition(gSprites[healthboxSpriteId].hMain_Battler) * 384)];
var = 5;
nature = GetNature(mon);
- StringCopy(text + 6, gNatureNamePointers[nature]);
+ StringCopy(&text[6], gNatureNamePointers[nature]);
RenderTextHandleBold(barFontGfx, FONT_BOLD, text);
for (j = 6, i = 0; i < var; i++, j++)
@@ -1328,8 +1322,8 @@ static void PrintSafariMonInfo(u8 healthboxSpriteId, struct Pokemon *mon)
}
healthBarSpriteId = gSprites[healthboxSpriteId].hMain_HealthBarSpriteId;
- ConvertIntToDecimalStringN(text + 6, gBattleStruct->safariCatchFactor, STR_CONV_MODE_RIGHT_ALIGN, 2);
- ConvertIntToDecimalStringN(text + 9, gBattleStruct->safariEscapeFactor, STR_CONV_MODE_RIGHT_ALIGN, 2);
+ ConvertIntToDecimalStringN(&text[6], gBattleStruct->safariCatchFactor, STR_CONV_MODE_RIGHT_ALIGN, 2);
+ ConvertIntToDecimalStringN(&text[9], gBattleStruct->safariEscapeFactor, STR_CONV_MODE_RIGHT_ALIGN, 2);
text[5] = CHAR_SPACE;
text[8] = CHAR_SLASH;
RenderTextHandleBold(gMonSpritesGfxPtr->barFontGfx, FONT_BOLD, text);
@@ -1424,7 +1418,7 @@ void SwapHpBarsWithHpText(void)
#define tSummaryBarSpriteId data[1]
#define tBallIconSpriteId(n) data[3 + n]
#define tIsBattleStart data[10]
-#define tData15 data[15]
+#define tBlend data[15]
u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo, u8 arg2, bool8 isBattleStart)
{
@@ -1471,7 +1465,7 @@ u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo,
LoadSpritePalette(&sStatusSummaryBallsSpritePal);
summaryBarSpriteId = CreateSprite(&sStatusSummaryBarSpriteTemplates[isOpponent], bar_X, bar_Y, 10);
- SetSubspriteTables(&gSprites[summaryBarSpriteId], sStatusSummaryBar_SubspriteTable);
+ SetSubspriteTables(&gSprites[summaryBarSpriteId], sStatusSummaryBar_SubspriteTable_Enter);
gSprites[summaryBarSpriteId].x2 = bar_pos2_X;
gSprites[summaryBarSpriteId].data[0] = bar_data0;
@@ -1490,7 +1484,7 @@ u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo,
ballIconSpritesIds[i] = CreateSpriteAtEnd(&sStatusSummaryBallsSpriteTemplates[isOpponent], bar_X, bar_Y - 4, 9);
if (!isBattleStart)
- gSprites[ballIconSpritesIds[i]].callback = SpriteCB_StatusSummaryBallsOnSwitchout;
+ gSprites[ballIconSpritesIds[i]].callback = SpriteCB_StatusSummaryBalls_OnSwitchout;
if (!isOpponent)
{
@@ -1522,42 +1516,49 @@ u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo,
{
for (i = 0; i < PARTY_SIZE; i++)
{
- if (partyInfo[i].hp == 0xFFFF) // empty slot or an egg
+ if (partyInfo[i].hp == HP_EMPTY_SLOT)
{
+ // empty slot or an egg
gSprites[ballIconSpritesIds[i]].oam.tileNum += 1;
gSprites[ballIconSpritesIds[i]].data[7] = 1;
}
- else if (partyInfo[i].hp == 0) // fainted mon
+ else if (partyInfo[i].hp == 0)
{
+ // fainted mon
gSprites[ballIconSpritesIds[i]].oam.tileNum += 3;
}
- else if (partyInfo[i].status != 0) // mon with major status
+ else if (partyInfo[i].status != 0)
{
+ // mon with major status
gSprites[ballIconSpritesIds[i]].oam.tileNum += 2;
}
}
}
else
{
- for (i = 0, var = 5, j = 0; j < PARTY_SIZE; j++)
+ for (i = 0, var = PARTY_SIZE - 1, j = 0; j < PARTY_SIZE; j++)
{
- if (partyInfo[j].hp == 0xFFFF) // empty slot or an egg
+ if (partyInfo[j].hp == HP_EMPTY_SLOT)
{
+ // empty slot or an egg
gSprites[ballIconSpritesIds[var]].oam.tileNum += 1;
gSprites[ballIconSpritesIds[var]].data[7] = 1;
var--;
continue;
}
- else if (partyInfo[j].hp == 0) // fainted mon
+ else if (partyInfo[j].hp == 0)
{
+ // fainted mon
gSprites[ballIconSpritesIds[i]].oam.tileNum += 3;
}
else if (gBattleTypeFlags & BATTLE_TYPE_ARENA && gBattleStruct->arenaLostPlayerMons & gBitTable[j])
{
+ // fainted arena mon
gSprites[ballIconSpritesIds[i]].oam.tileNum += 3;
}
- else if (partyInfo[j].status != 0) // mon with major status
+ else if (partyInfo[j].status != 0)
{
+ // mon with primary status
gSprites[ballIconSpritesIds[i]].oam.tileNum += 2;
}
i++;
@@ -1568,19 +1569,22 @@ u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo,
{
if (gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_TWO_OPPONENTS))
{
- for (var = 5, i = 0; i < PARTY_SIZE; i++)
+ for (var = PARTY_SIZE - 1, i = 0; i < PARTY_SIZE; i++)
{
- if (partyInfo[i].hp == 0xFFFF) // empty slot or an egg
+ if (partyInfo[i].hp == HP_EMPTY_SLOT)
{
+ // empty slot or an egg
gSprites[ballIconSpritesIds[var]].oam.tileNum += 1;
gSprites[ballIconSpritesIds[var]].data[7] = 1;
}
- else if (partyInfo[i].hp == 0) // fainted mon
+ else if (partyInfo[i].hp == 0)
{
+ // fainted mon
gSprites[ballIconSpritesIds[var]].oam.tileNum += 3;
}
- else if (partyInfo[i].status != 0) // mon with major status
+ else if (partyInfo[i].status != 0)
{
+ // mon with primary status
gSprites[ballIconSpritesIds[var]].oam.tileNum += 2;
}
var--;
@@ -1590,24 +1594,28 @@ u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo,
{
for (var = 0, i = 0, j = 0; j < PARTY_SIZE; j++)
{
- if (partyInfo[j].hp == 0xFFFF) // empty slot or an egg
+ if (partyInfo[j].hp == HP_EMPTY_SLOT)
{
+ // empty slot or an egg
gSprites[ballIconSpritesIds[i]].oam.tileNum += 1;
gSprites[ballIconSpritesIds[i]].data[7] = 1;
i++;
continue;
}
- else if (partyInfo[j].hp == 0) // fainted mon
+ else if (partyInfo[j].hp == 0)
{
- gSprites[ballIconSpritesIds[5 - var]].oam.tileNum += 3;
+ // fainted mon
+ gSprites[ballIconSpritesIds[PARTY_SIZE - 1 - var]].oam.tileNum += 3;
}
- else if (gBattleTypeFlags & BATTLE_TYPE_ARENA && gBattleStruct->arenaLostOpponentMons & gBitTable[j]) // hmm...?
+ else if (gBattleTypeFlags & BATTLE_TYPE_ARENA && gBattleStruct->arenaLostOpponentMons & gBitTable[j])
{
- gSprites[ballIconSpritesIds[5 - var]].oam.tileNum += 3;
+ // fainted arena mon
+ gSprites[ballIconSpritesIds[PARTY_SIZE - 1 - var]].oam.tileNum += 3;
}
- else if (partyInfo[j].status != 0) // mon with major status
+ else if (partyInfo[j].status != 0)
{
- gSprites[ballIconSpritesIds[5 - var]].oam.tileNum += 2;
+ // mon with primary status
+ gSprites[ballIconSpritesIds[PARTY_SIZE - 1 - var]].oam.tileNum += 2;
}
var++;
}
@@ -1632,6 +1640,7 @@ u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo,
return taskId;
}
+// Slide the party summary tray back offscreen
void Task_HidePartyStatusSummary(u8 taskId)
{
u8 ballIconSpriteIds[PARTY_SIZE];
@@ -1650,7 +1659,7 @@ void Task_HidePartyStatusSummary(u8 taskId)
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND);
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 0));
- gTasks[taskId].tData15 = 16;
+ gTasks[taskId].tBlend = 16;
for (i = 0; i < PARTY_SIZE; i++)
gSprites[ballIconSpriteIds[i]].oam.objMode = ST_OAM_OBJ_BLEND;
@@ -1663,51 +1672,51 @@ void Task_HidePartyStatusSummary(u8 taskId)
{
if (GetBattlerSide(battlerId) != B_SIDE_PLAYER)
{
- gSprites[ballIconSpriteIds[5 - i]].data[1] = 7 * i;
- gSprites[ballIconSpriteIds[5 - i]].data[3] = 0;
- gSprites[ballIconSpriteIds[5 - i]].data[4] = 0;
- gSprites[ballIconSpriteIds[5 - i]].callback = sub_8074158;
+ gSprites[ballIconSpriteIds[PARTY_SIZE - 1 - i]].data[1] = 7 * i;
+ gSprites[ballIconSpriteIds[PARTY_SIZE - 1 - i]].data[3] = 0;
+ gSprites[ballIconSpriteIds[PARTY_SIZE - 1 - i]].data[4] = 0;
+ gSprites[ballIconSpriteIds[PARTY_SIZE - 1 - i]].callback = SpriteCB_StatusSummaryBalls_Exit;
}
else
{
gSprites[ballIconSpriteIds[i]].data[1] = 7 * i;
gSprites[ballIconSpriteIds[i]].data[3] = 0;
gSprites[ballIconSpriteIds[i]].data[4] = 0;
- gSprites[ballIconSpriteIds[i]].callback = sub_8074158;
+ gSprites[ballIconSpriteIds[i]].callback = SpriteCB_StatusSummaryBalls_Exit;
}
}
gSprites[summaryBarSpriteId].data[0] /= 2;
gSprites[summaryBarSpriteId].data[1] = 0;
- gSprites[summaryBarSpriteId].callback = sub_8074090;
- SetSubspriteTables(&gSprites[summaryBarSpriteId], sUnknown_0832C2CC);
- gTasks[taskId].func = sub_8073E08;
+ gSprites[summaryBarSpriteId].callback = SpriteCB_StatusSummaryBar_Exit;
+ SetSubspriteTables(&gSprites[summaryBarSpriteId], sStatusSummaryBar_SubspriteTable_Exit);
+ gTasks[taskId].func = Task_HidePartyStatusSummary_BattleStart_1;
}
else
{
- gTasks[taskId].func = sub_8073F98;
+ gTasks[taskId].func = Task_HidePartyStatusSummary_DuringBattle;
}
}
-static void sub_8073E08(u8 taskId)
+static void Task_HidePartyStatusSummary_BattleStart_1(u8 taskId)
{
if ((gTasks[taskId].data[11]++ % 2) == 0)
{
- if (--gTasks[taskId].tData15 < 0)
+ if (--gTasks[taskId].tBlend < 0)
return;
- SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[15], 16 - gTasks[taskId].data[15]));
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].tBlend, 16 - gTasks[taskId].tBlend));
}
- if (gTasks[taskId].tData15 == 0)
- gTasks[taskId].func = sub_8073E64;
+ if (gTasks[taskId].tBlend == 0)
+ gTasks[taskId].func = Task_HidePartyStatusSummary_BattleStart_2;
}
-static void sub_8073E64(u8 taskId)
+static void Task_HidePartyStatusSummary_BattleStart_2(u8 taskId)
{
u8 ballIconSpriteIds[PARTY_SIZE];
s32 i;
u8 battlerId = gTasks[taskId].tBattler;
- if (--gTasks[taskId].tData15 == -1)
+ if (--gTasks[taskId].tBlend == -1)
{
u8 summaryBarSpriteId = gTasks[taskId].tSummaryBarSpriteId;
@@ -1731,7 +1740,7 @@ static void sub_8073E64(u8 taskId)
for (i = 1; i < PARTY_SIZE; i++)
DestroySprite(&gSprites[ballIconSpriteIds[i]]);
}
- else if (gTasks[taskId].tData15 == -3)
+ else if (gTasks[taskId].tBlend == -3)
{
gBattleSpritesDataPtr->healthBoxesData[battlerId].partyStatusSummaryShown = 0;
SetGpuReg(REG_OFFSET_BLDCNT, 0);
@@ -1740,17 +1749,17 @@ static void sub_8073E64(u8 taskId)
}
}
-static void sub_8073F98(u8 taskId)
+static void Task_HidePartyStatusSummary_DuringBattle(u8 taskId)
{
u8 ballIconSpriteIds[PARTY_SIZE];
s32 i;
u8 battlerId = gTasks[taskId].tBattler;
- if (--gTasks[taskId].tData15 >= 0)
+ if (--gTasks[taskId].tBlend >= 0)
{
- SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[15], 16 - gTasks[taskId].data[15]));
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].tBlend, 16 - gTasks[taskId].tBlend));
}
- else if (gTasks[taskId].tData15 == -1)
+ else if (gTasks[taskId].tBlend == -1)
{
u8 summaryBarSpriteId = gTasks[taskId].tSummaryBarSpriteId;
@@ -1763,7 +1772,7 @@ static void sub_8073F98(u8 taskId)
for (i = 1; i < PARTY_SIZE; i++)
DestroySprite(&gSprites[ballIconSpriteIds[i]]);
}
- else if (gTasks[taskId].tData15 == -3)
+ else if (gTasks[taskId].tBlend == -3)
{
gBattleSpritesDataPtr->healthBoxesData[battlerId].partyStatusSummaryShown = 0;
SetGpuReg(REG_OFFSET_BLDCNT, 0);
@@ -1776,15 +1785,15 @@ static void sub_8073F98(u8 taskId)
#undef tSummaryBarSpriteId
#undef tBallIconSpriteId
#undef tIsBattleStart
-#undef tData15
+#undef tBlend
-static void SpriteCB_StatusSummaryBar(struct Sprite *sprite)
+static void SpriteCB_StatusSummaryBar_Enter(struct Sprite *sprite)
{
if (sprite->x2 != 0)
sprite->x2 += sprite->data[0];
}
-static void sub_8074090(struct Sprite *sprite)
+static void SpriteCB_StatusSummaryBar_Exit(struct Sprite *sprite)
{
sprite->data[1] += 32;
if (sprite->data[0] > 0)
@@ -1794,7 +1803,7 @@ static void sub_8074090(struct Sprite *sprite)
sprite->data[1] &= 0xF;
}
-static void SpriteCB_StatusSummaryBallsOnBattleStart(struct Sprite *sprite)
+static void SpriteCB_StatusSummaryBalls_Enter(struct Sprite *sprite)
{
u8 var1;
u16 var2;
@@ -1839,7 +1848,7 @@ static void SpriteCB_StatusSummaryBallsOnBattleStart(struct Sprite *sprite)
}
}
-static void sub_8074158(struct Sprite *sprite)
+static void SpriteCB_StatusSummaryBalls_Exit(struct Sprite *sprite)
{
u8 var1;
u16 var2;
@@ -1865,7 +1874,7 @@ static void sub_8074158(struct Sprite *sprite)
}
}
-static void SpriteCB_StatusSummaryBallsOnSwitchout(struct Sprite *sprite)
+static void SpriteCB_StatusSummaryBalls_OnSwitchout(struct Sprite *sprite)
{
u8 barSpriteId = sprite->data[0];
@@ -1882,7 +1891,7 @@ static void UpdateNickInHealthbox(u8 healthboxSpriteId, struct Pokemon *mon)
u16 species;
u8 gender;
- StringCopy(gDisplayedStringBattle, gText_HighlightDarkGray);
+ StringCopy(gDisplayedStringBattle, gText_HealthboxNickname);
GetMonData(mon, MON_DATA_NICKNAME, nickname);
StringGetEnd10(nickname);
ptr = StringAppend(gDisplayedStringBattle, nickname);
@@ -1898,15 +1907,15 @@ static void UpdateNickInHealthbox(u8 healthboxSpriteId, struct Pokemon *mon)
switch (gender)
{
default:
- StringCopy(ptr, gText_DynColor2);
+ StringCopy(ptr, gText_HealthboxGender_None);
windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(gDisplayedStringBattle, 0, 3, 2, &windowId);
break;
case MON_MALE:
- StringCopy(ptr, gText_DynColor2Male);
+ StringCopy(ptr, gText_HealthboxGender_Male);
windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(gDisplayedStringBattle, 0, 3, 2, &windowId);
break;
case MON_FEMALE:
- StringCopy(ptr, gText_DynColor1Female);
+ StringCopy(ptr, gText_HealthboxGender_Female);
windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(gDisplayedStringBattle, 0, 3, 2, &windowId);
break;
}
@@ -2422,8 +2431,9 @@ static u8 CalcBarFilledPixels(s32 maxValue, s32 oldValue, s32 receivedValue, s32
return filledPixels;
}
+// Unused
// These two functions seem as if they were made for testing the health bar.
-static s16 sub_8074F28(struct TestingBar *barInfo, s32 *currValue, u16 *arg2, s32 arg3)
+static s16 Debug_TestHealthBar(struct TestingBar *barInfo, s32 *currValue, u16 *arg2, s32 arg3)
{
s16 ret, var;
@@ -2431,7 +2441,7 @@ static s16 sub_8074F28(struct TestingBar *barInfo, s32 *currValue, u16 *arg2, s3
barInfo->oldValue,
barInfo->receivedValue,
currValue, B_HEALTHBAR_PIXELS / 8, 1);
- sub_8074F88(barInfo, currValue, arg2);
+ Debug_TestHealthBar_Helper(barInfo, currValue, arg2);
if (barInfo->maxValue < B_HEALTHBAR_PIXELS)
var = *currValue >> 8;
@@ -2443,7 +2453,7 @@ static s16 sub_8074F28(struct TestingBar *barInfo, s32 *currValue, u16 *arg2, s3
return ret;
}
-static void sub_8074F88(struct TestingBar *barInfo, s32 *currValue, u16 *arg2)
+static void Debug_TestHealthBar_Helper(struct TestingBar *barInfo, s32 *currValue, u16 *arg2)
{
u8 sp8[6];
u16 sp10[6];
@@ -2525,7 +2535,7 @@ static u8* AddTextPrinterAndCreateWindowOnHealthbox(const u8 *str, u32 x, u32 y,
color[1] = 1;
color[2] = 3;
- AddTextPrinterParameterized4(winId, FONT_SMALL, x, y, 0, 0, color, -1, str);
+ AddTextPrinterParameterized4(winId, FONT_SMALL, x, y, 0, 0, color, TEXT_SKIP_DRAW, str);
*windowId = winId;
return (u8*)(GetWindowAttribute(winId, WINDOW_TILE_DATA));
diff --git a/src/battle_main.c b/src/battle_main.c
index 2b849aaf9..ac00567a0 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -682,7 +682,7 @@ static void CB2_InitBattleInternal(void)
{
CreateNPCTrainerParty(&gEnemyParty[0], gTrainerBattleOpponent_A, TRUE);
if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS)
- CreateNPCTrainerParty(&gEnemyParty[3], gTrainerBattleOpponent_B, FALSE);
+ CreateNPCTrainerParty(&gEnemyParty[PARTY_SIZE / 2], gTrainerBattleOpponent_B, FALSE);
SetWildMonHeldItem();
}
@@ -3492,7 +3492,7 @@ static void BattleIntroDrawPartySummaryScreens(void)
if (GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_NONE
|| GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_EGG)
{
- hpStatus[i].hp = 0xFFFF;
+ hpStatus[i].hp = HP_EMPTY_SLOT;
hpStatus[i].status = 0;
}
else
@@ -3510,7 +3510,7 @@ static void BattleIntroDrawPartySummaryScreens(void)
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_NONE
|| GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_EGG)
{
- hpStatus[i].hp = 0xFFFF;
+ hpStatus[i].hp = HP_EMPTY_SLOT;
hpStatus[i].status = 0;
}
else
@@ -3536,7 +3536,7 @@ static void BattleIntroDrawPartySummaryScreens(void)
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_NONE
|| GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_EGG)
{
- hpStatus[i].hp = 0xFFFF;
+ hpStatus[i].hp = HP_EMPTY_SLOT;
hpStatus[i].status = 0;
}
else
diff --git a/src/battle_message.c b/src/battle_message.c
index 31f256e3c..b88eedfb3 100644
--- a/src/battle_message.c
+++ b/src/battle_message.c
@@ -3113,7 +3113,7 @@ void BattlePutTextOnWindow(const u8 *text, u8 windowId)
if (copyToVram)
{
PutWindowTilemap(windowId);
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_FULL);
}
}
diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c
index ea6e79f86..d1b946146 100644
--- a/src/battle_pyramid_bag.c
+++ b/src/battle_pyramid_bag.c
@@ -673,7 +673,7 @@ static void PrintItemQuantity(u8 windowId, u32 itemIndex, u8 y)
2);
StringExpandPlaceholders(gStringVar4, gText_xVar1);
xAlign = GetStringRightAlignXOffset(FONT_NARROW, gStringVar4, 119);
- PyramidBagPrint_Quantity(windowId, gStringVar4, xAlign, y, 0, 0, TEXT_SPEED_FF, COLORID_DARK_GRAY);
+ PyramidBagPrint_Quantity(windowId, gStringVar4, xAlign, y, 0, 0, TEXT_SKIP_DRAW, COLORID_DARK_GRAY);
}
static void PrintItemDescription(s32 listMenuId)
@@ -978,8 +978,8 @@ static void OpenContextMenu(u8 taskId)
static void PrintMenuActionText_SingleRow(u8 windowId)
{
- AddItemMenuActionTextPrinters(windowId, FONT_NARROW, 8, 1, 0, 0x10, gPyramidBagMenu->menuActionsCount, sMenuActions, gPyramidBagMenu->menuActionIds);
- InitMenuInUpperLeftCornerPlaySoundWhenAPressed(windowId, gPyramidBagMenu->menuActionsCount, 0);
+ PrintMenuActionTexts(windowId, FONT_NARROW, 8, 1, 0, 0x10, gPyramidBagMenu->menuActionsCount, sMenuActions, gPyramidBagMenu->menuActionIds);
+ InitMenuInUpperLeftCornerNormal(windowId, gPyramidBagMenu->menuActionsCount, 0);
}
static void PrintMenuActionText_MultiRow(u8 windowId, u8 horizontalCount, u8 verticalCount)
@@ -1020,7 +1020,7 @@ static void HandleMenuActionInput_2x2(u8 taskId)
if (id > 0 && IsValidMenuAction(id - 2))
{
PlaySE(SE_SELECT);
- ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_UP);
+ ChangeMenuGridCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_UP);
}
}
else if (JOY_NEW(DPAD_DOWN))
@@ -1028,7 +1028,7 @@ static void HandleMenuActionInput_2x2(u8 taskId)
if (id < gPyramidBagMenu->menuActionsCount - 2 && IsValidMenuAction(id + 2))
{
PlaySE(SE_SELECT);
- ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_DOWN);
+ ChangeMenuGridCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_DOWN);
}
}
else if (JOY_NEW(DPAD_LEFT) || GetLRKeysPressed() == MENU_L_PRESSED)
@@ -1036,7 +1036,7 @@ static void HandleMenuActionInput_2x2(u8 taskId)
if (id & 1 && IsValidMenuAction(id - 1))
{
PlaySE(SE_SELECT);
- ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_LEFT, MENU_CURSOR_DELTA_NONE);
+ ChangeMenuGridCursorPosition(MENU_CURSOR_DELTA_LEFT, MENU_CURSOR_DELTA_NONE);
}
}
else if (JOY_NEW(DPAD_RIGHT) || GetLRKeysPressed() == MENU_R_PRESSED)
@@ -1044,7 +1044,7 @@ static void HandleMenuActionInput_2x2(u8 taskId)
if (!(id & 1) && IsValidMenuAction(id + 1))
{
PlaySE(SE_SELECT);
- ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_RIGHT, MENU_CURSOR_DELTA_NONE);
+ ChangeMenuGridCursorPosition(MENU_CURSOR_DELTA_RIGHT, MENU_CURSOR_DELTA_NONE);
}
}
else if (JOY_NEW(A_BUTTON))
diff --git a/src/battle_records.c b/src/battle_records.c
index 5c8c92d84..f576d5912 100644
--- a/src/battle_records.c
+++ b/src/battle_records.c
@@ -334,7 +334,7 @@ void ShowLinkBattleRecords(void)
}
PutWindowTilemap(gRecordsWindowId);
- CopyWindowToVram(gRecordsWindowId, 3);
+ CopyWindowToVram(gRecordsWindowId, COPYWIN_FULL);
}
void RemoveRecordsWindow(void)
@@ -382,7 +382,7 @@ static void RemoveTrainerHillRecordsWindow(u8 windowId)
{
FillWindowPixelBuffer(windowId, PIXEL_FILL(0));
ClearWindowTilemap(windowId);
- CopyWindowToVram(windowId, 2);
+ CopyWindowToVram(windowId, COPYWIN_GFX);
RemoveWindow(windowId);
}
@@ -425,14 +425,14 @@ static void ClearTasksAndGraphicalStructs(void)
static void ResetBgCoordinates(void)
{
- ChangeBgX(0, 0, 0);
- ChangeBgY(0, 0, 0);
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
- ChangeBgX(2, 0, 0);
- ChangeBgY(2, 0, 0);
- ChangeBgX(3, 0, 0);
- ChangeBgY(3, 0, 0);
+ ChangeBgX(0, 0, BG_COORD_SET);
+ ChangeBgY(0, 0, BG_COORD_SET);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
+ ChangeBgX(2, 0, BG_COORD_SET);
+ ChangeBgY(2, 0, BG_COORD_SET);
+ ChangeBgX(3, 0, BG_COORD_SET);
+ ChangeBgY(3, 0, BG_COORD_SET);
}
static void SetDispcntReg(void)
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index 92e5b31e9..391e82850 100644
--- a/src/battle_script_commands.c
+++ b/src/battle_script_commands.c
@@ -5921,7 +5921,7 @@ static void Cmd_drawlvlupbox(void)
// Draw page 1 of level up box
DrawLevelUpWindow1();
PutWindowTilemap(B_WIN_LEVEL_UP_BOX);
- CopyWindowToVram(B_WIN_LEVEL_UP_BOX, 3);
+ CopyWindowToVram(B_WIN_LEVEL_UP_BOX, COPYWIN_FULL);
gBattleScripting.drawlvlupboxState++;
break;
case 5:
@@ -5939,7 +5939,7 @@ static void Cmd_drawlvlupbox(void)
// Draw page 2 of level up box
PlaySE(SE_SELECT);
DrawLevelUpWindow2();
- CopyWindowToVram(B_WIN_LEVEL_UP_BOX, 2);
+ CopyWindowToVram(B_WIN_LEVEL_UP_BOX, COPYWIN_GFX);
gBattleScripting.drawlvlupboxState++;
}
break;
@@ -5956,10 +5956,10 @@ static void Cmd_drawlvlupbox(void)
if (!SlideOutLevelUpBanner())
{
ClearWindowTilemap(B_WIN_LEVEL_UP_BANNER);
- CopyWindowToVram(B_WIN_LEVEL_UP_BANNER, 1);
+ CopyWindowToVram(B_WIN_LEVEL_UP_BANNER, COPYWIN_MAP);
ClearWindowTilemap(B_WIN_LEVEL_UP_BOX);
- CopyWindowToVram(B_WIN_LEVEL_UP_BOX, 1);
+ CopyWindowToVram(B_WIN_LEVEL_UP_BOX, COPYWIN_MAP);
SetBgAttribute(2, BG_ATTR_PRIORITY, 2);
ShowBg(2);
@@ -6004,7 +6004,7 @@ static void InitLevelUpBanner(void)
LoadPalette(sLevelUpBanner_Pal, 0x60, 0x20);
CopyToWindowPixelBuffer(B_WIN_LEVEL_UP_BANNER, sLevelUpBanner_Gfx, 0, 0);
PutWindowTilemap(B_WIN_LEVEL_UP_BANNER);
- CopyWindowToVram(B_WIN_LEVEL_UP_BANNER, 3);
+ CopyWindowToVram(B_WIN_LEVEL_UP_BANNER, COPYWIN_FULL);
PutMonIconOnLvlUpBanner();
}
@@ -6053,7 +6053,7 @@ static void DrawLevelUpBannerText(void)
printerTemplate.bgColor = TEXT_COLOR_TRANSPARENT;
printerTemplate.shadowColor = TEXT_COLOR_DARK_GRAY;
- AddTextPrinter(&printerTemplate, TEXT_SPEED_FF, NULL);
+ AddTextPrinter(&printerTemplate, TEXT_SKIP_DRAW, NULL);
txtPtr = gStringVar4;
*(txtPtr)++ = CHAR_EXTRA_SYMBOL;
@@ -6083,9 +6083,9 @@ static void DrawLevelUpBannerText(void)
printerTemplate.y = 10;
printerTemplate.currentY = 10;
- AddTextPrinter(&printerTemplate, TEXT_SPEED_FF, NULL);
+ AddTextPrinter(&printerTemplate, TEXT_SKIP_DRAW, NULL);
- CopyWindowToVram(B_WIN_LEVEL_UP_BANNER, 2);
+ CopyWindowToVram(B_WIN_LEVEL_UP_BANNER, COPYWIN_GFX);
}
static bool8 SlideOutLevelUpBanner(void)
diff --git a/src/battle_setup.c b/src/battle_setup.c
index a1b01f9c1..a9d4eeddf 100644
--- a/src/battle_setup.c
+++ b/src/battle_setup.c
@@ -46,6 +46,7 @@
#include "constants/maps.h"
#include "constants/trainers.h"
#include "constants/trainer_hill.h"
+#include "constants/weather.h"
enum {
TRANSITION_TYPE_NORMAL,
@@ -686,7 +687,7 @@ u8 BattleSetup_GetTerrainId(void)
}
if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(ROUTE113) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE113))
return BATTLE_TERRAIN_SAND;
- if (GetSav1Weather() == 8)
+ if (GetSav1Weather() == WEATHER_SANDSTORM)
return BATTLE_TERRAIN_SAND;
return BATTLE_TERRAIN_PLAIN;
diff --git a/src/battle_transition_frontier.c b/src/battle_transition_frontier.c
index e1cb03d8d..a1a39abda 100644
--- a/src/battle_transition_frontier.c
+++ b/src/battle_transition_frontier.c
@@ -378,9 +378,9 @@ static bool8 Circles_Init(struct Task *task)
LoadLogoGfx();
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL);
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16));
- ChangeBgX(0, 0, 0);
- ChangeBgY(0, 0, 0);
- ChangeBgY(0, 0x500, 2);
+ ChangeBgX(0, 0, BG_COORD_SET);
+ ChangeBgY(0, 0, BG_COORD_SET);
+ ChangeBgY(0, 0x500, BG_COORD_SUB);
task->tTimer = 0;
task->tState++;
diff --git a/src/berry_blender.c b/src/berry_blender.c
index 65008dae0..27ea641ce 100644
--- a/src/berry_blender.c
+++ b/src/berry_blender.c
@@ -1013,10 +1013,10 @@ static void DrawBlenderBg(void)
ShowBg(0);
ShowBg(1);
SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP);
- ChangeBgX(0, 0, 0);
- ChangeBgY(0, 0, 0);
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
+ ChangeBgX(0, 0, BG_COORD_SET);
+ ChangeBgY(0, 0, BG_COORD_SET);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
}
static void InitBerryBlenderWindows(void)
@@ -1616,7 +1616,7 @@ static void PrintPlayerNames(void)
Blender_AddTextPrinter(i, text, xPos, 1, 0, 1);
PutWindowTilemap(i);
- CopyWindowToVram(i, 3);
+ CopyWindowToVram(i, COPYWIN_FULL);
}
}
}
@@ -2684,7 +2684,7 @@ static void CB2_EndBlenderGame(void)
if (sBerryBlender->arrowIdToPlayerId[i] != NO_PLAYER)
{
PutWindowTilemap(i);
- CopyWindowToVram(i, 3);
+ CopyWindowToVram(i, COPYWIN_FULL);
}
}
break;
@@ -2696,7 +2696,7 @@ static void CB2_EndBlenderGame(void)
if (sBerryBlender->arrowIdToPlayerId[i] != NO_PLAYER)
{
PutWindowTilemap(i);
- CopyWindowToVram(i, 3);
+ CopyWindowToVram(i, COPYWIN_FULL);
}
}
break;
@@ -2785,7 +2785,7 @@ static bool8 LinkPlayAgainHandleSaving(void)
}
break;
case 2:
- FullSaveGame();
+ WriteSaveBlock2();
sBerryBlender->linkPlayAgainState++;
sBerryBlender->framesToWait = 0;
break;
@@ -2799,7 +2799,7 @@ static bool8 LinkPlayAgainHandleSaving(void)
case 4:
if (IsLinkTaskFinished())
{
- if (CheckSaveFile())
+ if (WriteSaveBlock1Sector())
{
sBerryBlender->linkPlayAgainState = 5;
}
@@ -3495,7 +3495,7 @@ static bool8 PrintBlendingResults(void)
u8 *txtPtr;
xPos = GetStringCenterAlignXOffset(FONT_NORMAL, sText_BlendingResults, 0xA8);
- Blender_AddTextPrinter(5, sText_BlendingResults, xPos, 1, TEXT_SPEED_FF, 0);
+ Blender_AddTextPrinter(5, sText_BlendingResults, xPos, 1, TEXT_SKIP_DRAW, 0);
if (sBerryBlender->numPlayers == BLENDER_MAX_PLAYERS)
yPos = 17;
@@ -3510,15 +3510,15 @@ static bool8 PrintBlendingResults(void)
StringAppend(sBerryBlender->stringVar, sText_Dot);
StringAppend(sBerryBlender->stringVar, gText_Space);
StringAppend(sBerryBlender->stringVar, gLinkPlayers[place].name);
- Blender_AddTextPrinter(5, sBerryBlender->stringVar, 8, yPos, TEXT_SPEED_FF, 3);
+ Blender_AddTextPrinter(5, sBerryBlender->stringVar, 8, yPos, TEXT_SKIP_DRAW, 3);
StringCopy(sBerryBlender->stringVar, sBerryBlender->blendedBerries[place].name);
ConvertInternationalString(sBerryBlender->stringVar, gLinkPlayers[place].language);
StringAppend(sBerryBlender->stringVar, sText_SpaceBerry);
- Blender_AddTextPrinter(5, sBerryBlender->stringVar, 0x54, yPos, TEXT_SPEED_FF, 3);
+ Blender_AddTextPrinter(5, sBerryBlender->stringVar, 0x54, yPos, TEXT_SKIP_DRAW, 3);
}
- Blender_AddTextPrinter(5, sText_MaximumSpeed, 0, 0x51, TEXT_SPEED_FF, 3);
+ Blender_AddTextPrinter(5, sText_MaximumSpeed, 0, 0x51, TEXT_SKIP_DRAW, 3);
ConvertIntToDecimalStringN(sBerryBlender->stringVar, sBerryBlender->maxRPM / 100, STR_CONV_MODE_RIGHT_ALIGN, 3);
StringAppend(sBerryBlender->stringVar, sText_Dot);
@@ -3527,8 +3527,8 @@ static bool8 PrintBlendingResults(void)
StringAppend(sBerryBlender->stringVar, sText_RPM);
xPos = GetStringRightAlignXOffset(FONT_NORMAL, sBerryBlender->stringVar, 0xA8);
- Blender_AddTextPrinter(5, sBerryBlender->stringVar, xPos, 0x51, TEXT_SPEED_FF, 3);
- Blender_AddTextPrinter(5, sText_Time, 0, 0x61, TEXT_SPEED_FF, 3);
+ Blender_AddTextPrinter(5, sBerryBlender->stringVar, xPos, 0x51, TEXT_SKIP_DRAW, 3);
+ Blender_AddTextPrinter(5, sText_Time, 0, 0x61, TEXT_SKIP_DRAW, 3);
seconds = (sBerryBlender->gameFrameTime / 60) % 60;
minutes = (sBerryBlender->gameFrameTime / (60 * 60));
@@ -3540,12 +3540,12 @@ static bool8 PrintBlendingResults(void)
StringAppend(sBerryBlender->stringVar, sText_Sec);
xPos = GetStringRightAlignXOffset(FONT_NORMAL, sBerryBlender->stringVar, 0xA8);
- Blender_AddTextPrinter(5, sBerryBlender->stringVar, xPos, 0x61, TEXT_SPEED_FF, 3);
+ Blender_AddTextPrinter(5, sBerryBlender->stringVar, xPos, 0x61, TEXT_SKIP_DRAW, 3);
sBerryBlender->framesToWait = 0;
sBerryBlender->mainState++;
- CopyWindowToVram(5, 2);
+ CopyWindowToVram(5, COPYWIN_GFX);
}
break;
case 4:
@@ -3562,7 +3562,7 @@ static bool8 PrintBlendingResults(void)
if (sBerryBlender->arrowIdToPlayerId[i] != NO_PLAYER)
{
PutWindowTilemap(i);
- CopyWindowToVram(i, 3);
+ CopyWindowToVram(i, COPYWIN_FULL);
}
}
@@ -3694,7 +3694,7 @@ static bool8 PrintBlendingRanking(void)
case 3:
DrawStdFrameWithCustomTileAndPalette(5, 0, 1, 0xD);
xPos = GetStringCenterAlignXOffset(FONT_NORMAL, sText_Ranking, 168);
- Blender_AddTextPrinter(5, sText_Ranking, xPos, 1, TEXT_SPEED_FF, 0);
+ Blender_AddTextPrinter(5, sText_Ranking, xPos, 1, TEXT_SKIP_DRAW, 0);
sBerryBlender->scoreIconIds[SCORE_BEST] = CreateSprite(&sSpriteTemplate_ScoreSymbols, 128, 52, 0);
StartSpriteAnim(&gSprites[sBerryBlender->scoreIconIds[SCORE_BEST]], SCOREANIM_BEST_STATIC);
@@ -3718,20 +3718,20 @@ static bool8 PrintBlendingRanking(void)
StringAppend(sBerryBlender->stringVar, sText_Dot);
StringAppend(sBerryBlender->stringVar, gText_Space);
StringAppend(sBerryBlender->stringVar, gLinkPlayers[place].name);
- Blender_AddTextPrinter(5, sBerryBlender->stringVar, 0, yPos, TEXT_SPEED_FF, 3);
+ Blender_AddTextPrinter(5, sBerryBlender->stringVar, 0, yPos, TEXT_SKIP_DRAW, 3);
ConvertIntToDecimalStringN(sBerryBlender->stringVar, sBerryBlender->scores[place][SCORE_BEST], STR_CONV_MODE_RIGHT_ALIGN, 3);
- Blender_AddTextPrinter(5, sBerryBlender->stringVar, 78, yPos, TEXT_SPEED_FF, 3);
+ Blender_AddTextPrinter(5, sBerryBlender->stringVar, 78, yPos, TEXT_SKIP_DRAW, 3);
ConvertIntToDecimalStringN(sBerryBlender->stringVar, sBerryBlender->scores[place][SCORE_GOOD], STR_CONV_MODE_RIGHT_ALIGN, 3);
- Blender_AddTextPrinter(5, sBerryBlender->stringVar, 78 + 32, yPos, TEXT_SPEED_FF, 3);
+ Blender_AddTextPrinter(5, sBerryBlender->stringVar, 78 + 32, yPos, TEXT_SKIP_DRAW, 3);
ConvertIntToDecimalStringN(sBerryBlender->stringVar, sBerryBlender->scores[place][SCORE_MISS], STR_CONV_MODE_RIGHT_ALIGN, 3);
- Blender_AddTextPrinter(5, sBerryBlender->stringVar, 78 + 64, yPos, TEXT_SPEED_FF, 3);
+ Blender_AddTextPrinter(5, sBerryBlender->stringVar, 78 + 64, yPos, TEXT_SKIP_DRAW, 3);
}
PutWindowTilemap(5);
- CopyWindowToVram(5, 3);
+ CopyWindowToVram(5, COPYWIN_FULL);
sBerryBlender->framesToWait = 0;
sBerryBlender->mainState++;
@@ -3788,7 +3788,7 @@ void ShowBerryBlenderRecordWindow(void)
}
PutWindowTilemap(gRecordsWindowId);
- CopyWindowToVram(gRecordsWindowId, 3);
+ CopyWindowToVram(gRecordsWindowId, COPYWIN_FULL);
}
static void Task_PlayPokeblockFanfare(u8 taskId)
@@ -3890,7 +3890,7 @@ static bool32 Blender_PrintText(s16 *textState, const u8 *string, s32 textSpeed)
DrawDialogFrameWithCustomTileAndPalette(4, FALSE, 0x14, 0xF);
Blender_AddTextPrinter(4, string, 0, 1, textSpeed, 0);
PutWindowTilemap(4);
- CopyWindowToVram(4, 3);
+ CopyWindowToVram(4, COPYWIN_FULL);
(*textState)++;
break;
case 1:
diff --git a/src/berry_crush.c b/src/berry_crush.c
index 8ac6bb312..9b8323e2d 100755
--- a/src/berry_crush.c
+++ b/src/berry_crush.c
@@ -1202,12 +1202,12 @@ static s32 ShowGameDisplay(void)
SetBgTilemapBuffer(1, game->gfx.bgBuffers[0]);
SetBgTilemapBuffer(2, game->gfx.bgBuffers[2]);
SetBgTilemapBuffer(3, game->gfx.bgBuffers[3]);
- ChangeBgX(0, 0, 0);
- ChangeBgY(0, 0, 0);
- ChangeBgX(2, 0, 0);
- ChangeBgY(2, 0, 0);
- ChangeBgX(3, 0, 0);
- ChangeBgY(3, 0, 0);
+ ChangeBgX(0, 0, BG_COORD_SET);
+ ChangeBgY(0, 0, BG_COORD_SET);
+ ChangeBgX(2, 0, BG_COORD_SET);
+ ChangeBgY(2, 0, BG_COORD_SET);
+ ChangeBgX(3, 0, BG_COORD_SET);
+ ChangeBgY(3, 0, BG_COORD_SET);
SetGpuReg(REG_OFFSET_BLDCNT, 0);
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
break;
@@ -1249,8 +1249,8 @@ static s32 ShowGameDisplay(void)
CreateWirelessStatusIndicatorSprite(0, 0);
CreateGameSprites(game);
SetGpuReg(REG_OFFSET_BG1VOFS, -gSpriteCoordOffsetY);
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
break;
case 9:
gPaletteFade.bufferTransferDisabled = FALSE;
@@ -1778,7 +1778,7 @@ static bool32 OpenResultsWindow(struct BerryCrushGame *game, struct BerryCrushGa
PrintCrushingResults(game);
break;
case 5:
- CopyWindowToVram(gfx->resultsWindowId, 3);
+ CopyWindowToVram(gfx->resultsWindowId, COPYWIN_FULL);
gfx->resultsState = 0;
return TRUE;
}
@@ -1841,7 +1841,7 @@ static void Task_ShowRankings(u8 taskId)
yPos += 16;
score = 0;
}
- CopyWindowToVram(tWindowId, 3);
+ CopyWindowToVram(tWindowId, COPYWIN_FULL);
break;
case 2:
if (JOY_NEW(A_BUTTON | B_BUTTON))
@@ -1938,7 +1938,7 @@ static void DrawPlayerNameWindows(struct BerryCrushGame *game)
game->players[i].name
);
}
- CopyWindowToVram(game->gfx.nameWindowIds[i], 3);
+ CopyWindowToVram(game->gfx.nameWindowIds[i], COPYWIN_FULL);
}
CopyBgTilemapBufferToVram(0);
}
@@ -2264,7 +2264,7 @@ static u32 Cmd_PrintMessage(struct BerryCrushGame *game, u8 *args)
{
AddTextPrinterParameterized2(0, FONT_NORMAL, sMessages[args[0]], game->textSpeed, 0, 2, 1, 3);
}
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
break;
case 1:
if (!IsTextPrinterActive(0))
@@ -3243,11 +3243,11 @@ static u32 Cmd_SaveGame(struct BerryCrushGame *game, u8 *args)
return 0;
DrawDialogueFrame(0, 0);
AddTextPrinterParameterized2(0, FONT_NORMAL, gText_SavingDontTurnOffPower, 0, 0, 2, 1, 3);
- CopyWindowToVram(0, 3);
- CreateTask(Task_LinkSave, 0);
+ CopyWindowToVram(0, COPYWIN_FULL);
+ CreateTask(Task_LinkFullSave, 0);
break;
case 3:
- if (FuncIsActiveTask(Task_LinkSave))
+ if (FuncIsActiveTask(Task_LinkFullSave))
return 0;
break;
case 4:
@@ -3394,7 +3394,7 @@ static u32 Cmd_StopGame(struct BerryCrushGame *game, u8 *args)
AddTextPrinterParameterized2(0, FONT_NORMAL, sMessages[MSG_NO_BERRIES], game->textSpeed, 0, 2, 1, 3);
else
AddTextPrinterParameterized2(0, FONT_NORMAL, sMessages[MSG_DROPPED], game->textSpeed, 0, 2, 1, 3);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
break;
case 1:
if (IsTextPrinterActive(0))
diff --git a/src/berry_fix_program.c b/src/berry_fix_program.c
index 9b0da5bd2..e8c4bc7e6 100644
--- a/src/berry_fix_program.c
+++ b/src/berry_fix_program.c
@@ -290,10 +290,10 @@ static void BerryFix_GpuSet(void)
ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, sBerryFixBgTemplates, ARRAY_COUNT(sBerryFixBgTemplates));
- ChangeBgX(0, 0, 0);
- ChangeBgY(0, 0, 0);
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
+ ChangeBgX(0, 0, BG_COORD_SET);
+ ChangeBgY(0, 0, BG_COORD_SET);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
InitWindows(sBerryFixWindowTemplates);
DeactivateAllTextPrinters();
@@ -305,23 +305,23 @@ static void BerryFix_GpuSet(void)
width = GetStringWidth(FONT_SMALL, sText_Emerald, 0);
left = (120 - width) / 2;
- AddTextPrinterParameterized3(2, FONT_SMALL, left, 3, sGameTitleTextColors, TEXT_SPEED_FF, sText_Emerald);
+ AddTextPrinterParameterized3(2, FONT_SMALL, left, 3, sGameTitleTextColors, TEXT_SKIP_DRAW, sText_Emerald);
width = GetStringWidth(FONT_SMALL, sText_RubySapphire, 0);
left = (120 - width) / 2 + 120;
- AddTextPrinterParameterized3(2, FONT_SMALL, left, 3, sGameTitleTextColors, TEXT_SPEED_FF, sText_RubySapphire);
+ AddTextPrinterParameterized3(2, FONT_SMALL, left, 3, sGameTitleTextColors, TEXT_SKIP_DRAW, sText_RubySapphire);
width = GetStringWidth(FONT_SMALL, sText_RubySapphire, 0);
left = (112 - width) / 2;
- AddTextPrinterParameterized3(3, FONT_SMALL, left, 0, sGameTitleTextColors, TEXT_SPEED_FF, sText_RubySapphire);
+ AddTextPrinterParameterized3(3, FONT_SMALL, left, 0, sGameTitleTextColors, TEXT_SKIP_DRAW, sText_RubySapphire);
width = GetStringWidth(FONT_NORMAL, sText_BerryProgramUpdate, 0);
left = (208 - width) / 2;
- AddTextPrinterParameterized3(0, FONT_NORMAL, left, 2, sBerryProgramTextColors, TEXT_SPEED_FF, sText_BerryProgramUpdate);
+ AddTextPrinterParameterized3(0, FONT_NORMAL, left, 2, sBerryProgramTextColors, TEXT_SKIP_DRAW, sText_BerryProgramUpdate);
- CopyWindowToVram(2, 2);
- CopyWindowToVram(3, 2);
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(2, COPYWIN_GFX);
+ CopyWindowToVram(3, COPYWIN_GFX);
+ CopyWindowToVram(0, COPYWIN_GFX);
}
static int BerryFix_TrySetScene(int scene)
@@ -346,9 +346,9 @@ static void BerryFix_SetScene(int scene)
{
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32);
FillWindowPixelBuffer(1, PIXEL_FILL(10));
- AddTextPrinterParameterized3(1, FONT_NORMAL, 0, 0, sBerryProgramTextColors, -1, sBerryProgramTexts[scene]);
+ AddTextPrinterParameterized3(1, FONT_NORMAL, 0, 0, sBerryProgramTextColors, TEXT_SKIP_DRAW, sBerryProgramTexts[scene]);
PutWindowTilemap(1);
- CopyWindowToVram(1, 2);
+ CopyWindowToVram(1, COPYWIN_GFX);
switch (scene)
{
case SCENE_ENSURE_CONNECT:
diff --git a/src/berry_powder.c b/src/berry_powder.c
index d933dbff1..96f14d6e4 100755
--- a/src/berry_powder.c
+++ b/src/berry_powder.c
@@ -211,7 +211,7 @@ static void PrintBerryPowderAmount(u8 windowId, int amount, u8 x, u8 y, u8 speed
static void DrawPlayerPowderAmount(u8 windowId, u16 baseTileOffset, u8 paletteNum, u32 amount)
{
DrawStdFrameWithCustomTileAndPalette(windowId, FALSE, baseTileOffset, paletteNum);
- AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_Powder, 0, 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_Powder, 0, 1, TEXT_SKIP_DRAW, NULL);
PrintBerryPowderAmount(windowId, amount, 26, 17, 0);
}
diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c
index 21070cb94..92b1f65d1 100644
--- a/src/berry_tag_screen.c
+++ b/src/berry_tag_screen.c
@@ -409,7 +409,7 @@ static void PrintBerryNumberAndName(void)
static void PrintBerrySize(void)
{
const struct Berry *berry = GetBerryInfo(sBerryTag->berryId);
- AddTextPrinterParameterized(WIN_SIZE_FIRM, FONT_NORMAL, gText_SizeSlash, 0, 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(WIN_SIZE_FIRM, FONT_NORMAL, gText_SizeSlash, 0, 1, TEXT_SKIP_DRAW, NULL);
if (berry->size != 0)
{
u32 inches, fraction;
@@ -434,7 +434,7 @@ static void PrintBerrySize(void)
static void PrintBerryFirmness(void)
{
const struct Berry *berry = GetBerryInfo(sBerryTag->berryId);
- AddTextPrinterParameterized(WIN_SIZE_FIRM, FONT_NORMAL, gText_FirmSlash, 0, 0x11, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(WIN_SIZE_FIRM, FONT_NORMAL, gText_FirmSlash, 0, 0x11, TEXT_SKIP_DRAW, NULL);
if (berry->firmness != 0)
AddTextPrinterParameterized(WIN_SIZE_FIRM, FONT_NORMAL, sBerryFirmnessStrings[berry->firmness - 1], 0x28, 0x11, 0, NULL);
else
diff --git a/src/braille.c b/src/braille.c
index 4e22a12ef..b4ee43ad0 100644
--- a/src/braille.c
+++ b/src/braille.c
@@ -21,187 +21,174 @@ u16 FontFunc_Braille(struct TextPrinter *textPrinter)
switch (textPrinter->state)
{
- case 0:
- if (JOY_HELD(A_BUTTON | B_BUTTON) && subStruct->hasPrintBeenSpedUp)
+ case RENDER_STATE_HANDLE_CHAR:
+ if (JOY_HELD(A_BUTTON | B_BUTTON) && subStruct->hasPrintBeenSpedUp)
+ {
+ textPrinter->delayCounter = 0;
+ }
+ if (textPrinter->delayCounter && textPrinter->textSpeed)
+ {
+ textPrinter->delayCounter --;
+ if (gTextFlags.canABSpeedUpPrint && JOY_NEW(A_BUTTON | B_BUTTON))
{
+ subStruct->hasPrintBeenSpedUp = TRUE;
textPrinter->delayCounter = 0;
}
- if (textPrinter->delayCounter && textPrinter->textSpeed)
- {
- textPrinter->delayCounter --;
- if (gTextFlags.canABSpeedUpPrint && JOY_NEW(A_BUTTON | B_BUTTON))
- {
- subStruct->hasPrintBeenSpedUp = TRUE;
- textPrinter->delayCounter = 0;
- }
- return 3;
- }
- if (gTextFlags.autoScroll)
- {
- textPrinter->delayCounter = 3;
- }
- else
- {
- textPrinter->delayCounter = textPrinter->textSpeed;
- }
+ return RENDER_UPDATE;
+ }
+ if (gTextFlags.autoScroll)
+ textPrinter->delayCounter = 3;
+ else
+ textPrinter->delayCounter = textPrinter->textSpeed;
+
+ char_ = *textPrinter->printerTemplate.currentChar++;
+ switch (char_)
+ {
+ case EOS:
+ return RENDER_FINISH;
+ case CHAR_NEWLINE:
+ textPrinter->printerTemplate.currentX = textPrinter->printerTemplate.x;
+ textPrinter->printerTemplate.currentY += gFonts[textPrinter->printerTemplate.fontId].maxLetterHeight + textPrinter->printerTemplate.lineSpacing;
+ return RENDER_REPEAT;
+ case PLACEHOLDER_BEGIN:
+ textPrinter->printerTemplate.currentChar++;
+ return RENDER_REPEAT;
+ case EXT_CTRL_CODE_BEGIN:
char_ = *textPrinter->printerTemplate.currentChar++;
switch (char_)
{
- case EOS:
- return 1;
- case CHAR_NEWLINE:
- textPrinter->printerTemplate.currentX = textPrinter->printerTemplate.x;
- textPrinter->printerTemplate.currentY += gFonts[textPrinter->printerTemplate.fontId].maxLetterHeight + textPrinter->printerTemplate.lineSpacing;
- return 2;
- case PLACEHOLDER_BEGIN:
- textPrinter->printerTemplate.currentChar++;
- return 2;
- case EXT_CTRL_CODE_BEGIN:
- char_ = *textPrinter->printerTemplate.currentChar++;
- switch (char_)
- {
- case EXT_CTRL_CODE_COLOR:
- textPrinter->printerTemplate.fgColor = *textPrinter->printerTemplate.currentChar++;
- GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor);
- return 2;
- case EXT_CTRL_CODE_HIGHLIGHT:
- textPrinter->printerTemplate.bgColor = *textPrinter->printerTemplate.currentChar++;
- GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor);
- return 2;
- case EXT_CTRL_CODE_SHADOW:
- textPrinter->printerTemplate.shadowColor = *textPrinter->printerTemplate.currentChar++;
- GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor);
- return 2;
- case EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW:
- textPrinter->printerTemplate.fgColor = *textPrinter->printerTemplate.currentChar;
- textPrinter->printerTemplate.bgColor = *++textPrinter->printerTemplate.currentChar;
- textPrinter->printerTemplate.shadowColor = *++textPrinter->printerTemplate.currentChar;
- textPrinter->printerTemplate.currentChar++;
+ case EXT_CTRL_CODE_COLOR:
+ textPrinter->printerTemplate.fgColor = *textPrinter->printerTemplate.currentChar++;
+ GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor);
+ return RENDER_REPEAT;
+ case EXT_CTRL_CODE_HIGHLIGHT:
+ textPrinter->printerTemplate.bgColor = *textPrinter->printerTemplate.currentChar++;
+ GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor);
+ return RENDER_REPEAT;
+ case EXT_CTRL_CODE_SHADOW:
+ textPrinter->printerTemplate.shadowColor = *textPrinter->printerTemplate.currentChar++;
+ GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor);
+ return RENDER_REPEAT;
+ case EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW:
+ textPrinter->printerTemplate.fgColor = *textPrinter->printerTemplate.currentChar;
+ textPrinter->printerTemplate.bgColor = *++textPrinter->printerTemplate.currentChar;
+ textPrinter->printerTemplate.shadowColor = *++textPrinter->printerTemplate.currentChar;
+ textPrinter->printerTemplate.currentChar++;
- GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor);
- return 2;
- case EXT_CTRL_CODE_PALETTE:
- textPrinter->printerTemplate.currentChar++;
- return 2;
- case EXT_CTRL_CODE_FONT:
- subStruct->fontId = *textPrinter->printerTemplate.currentChar;
- textPrinter->printerTemplate.currentChar++;
- return 2;
- case EXT_CTRL_CODE_RESET_SIZE:
- return 2;
- case EXT_CTRL_CODE_PAUSE:
- textPrinter->delayCounter = *textPrinter->printerTemplate.currentChar++;
- textPrinter->state = 6;
- return 2;
- case EXT_CTRL_CODE_PAUSE_UNTIL_PRESS:
- textPrinter->state = 1;
- if (gTextFlags.autoScroll)
- {
- subStruct->autoScrollDelay = 0;
- }
- return 3;
- case EXT_CTRL_CODE_WAIT_SE:
- textPrinter->state = 5;
- return 3;
- case EXT_CTRL_CODE_PLAY_BGM:
- case EXT_CTRL_CODE_PLAY_SE:
- textPrinter->printerTemplate.currentChar += 2;
- return 2;
- case EXT_CTRL_CODE_ESCAPE:
- char_ = *++textPrinter->printerTemplate.currentChar;
- break;
- case EXT_CTRL_CODE_SHIFT_TEXT:
- textPrinter->printerTemplate.currentX = textPrinter->printerTemplate.x + *textPrinter->printerTemplate.currentChar++;
- return 2;
- case EXT_CTRL_CODE_SHIFT_DOWN:
- textPrinter->printerTemplate.currentY = textPrinter->printerTemplate.y + *textPrinter->printerTemplate.currentChar++;
- return 2;
- case EXT_CTRL_CODE_FILL_WINDOW:
- FillWindowPixelBuffer(textPrinter->printerTemplate.windowId, PIXEL_FILL(textPrinter->printerTemplate.bgColor));
- return 2;
- }
- break;
- case CHAR_PROMPT_CLEAR:
- textPrinter->state = 2;
- TextPrinterInitDownArrowCounters(textPrinter);
- return 3;
- case CHAR_PROMPT_SCROLL:
- textPrinter->state = 3;
- TextPrinterInitDownArrowCounters(textPrinter);
- return 3;
- case CHAR_EXTRA_SYMBOL:
- char_ = *textPrinter->printerTemplate.currentChar++| 0x100;
- break;
- case CHAR_KEYPAD_ICON:
- textPrinter->printerTemplate.currentChar++;
- return 0;
- }
- DecompressGlyph_Braille(char_);
- CopyGlyphToWindow(textPrinter);
- textPrinter->printerTemplate.currentX += gCurGlyph.width + textPrinter->printerTemplate.letterSpacing;
- return 0;
- case 1:
- if (TextPrinterWait(textPrinter))
- {
- textPrinter->state = 0;
- }
- return 3;
- case 2:
- if (TextPrinterWaitWithDownArrow(textPrinter))
- {
+ GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor);
+ return RENDER_REPEAT;
+ case EXT_CTRL_CODE_PALETTE:
+ textPrinter->printerTemplate.currentChar++;
+ return RENDER_REPEAT;
+ case EXT_CTRL_CODE_FONT:
+ subStruct->fontId = *textPrinter->printerTemplate.currentChar;
+ textPrinter->printerTemplate.currentChar++;
+ return RENDER_REPEAT;
+ case EXT_CTRL_CODE_RESET_SIZE:
+ return RENDER_REPEAT;
+ case EXT_CTRL_CODE_PAUSE:
+ textPrinter->delayCounter = *textPrinter->printerTemplate.currentChar++;
+ textPrinter->state = RENDER_STATE_PAUSE;
+ return RENDER_REPEAT;
+ case EXT_CTRL_CODE_PAUSE_UNTIL_PRESS:
+ textPrinter->state = RENDER_STATE_WAIT;
+ if (gTextFlags.autoScroll)
+ subStruct->autoScrollDelay = 0;
+ return RENDER_UPDATE;
+ case EXT_CTRL_CODE_WAIT_SE:
+ textPrinter->state = RENDER_STATE_WAIT_SE;
+ return RENDER_UPDATE;
+ case EXT_CTRL_CODE_PLAY_BGM:
+ case EXT_CTRL_CODE_PLAY_SE:
+ textPrinter->printerTemplate.currentChar += 2;
+ return RENDER_REPEAT;
+ case EXT_CTRL_CODE_ESCAPE:
+ char_ = *++textPrinter->printerTemplate.currentChar;
+ break;
+ case EXT_CTRL_CODE_SHIFT_TEXT:
+ textPrinter->printerTemplate.currentX = textPrinter->printerTemplate.x + *textPrinter->printerTemplate.currentChar++;
+ return RENDER_REPEAT;
+ case EXT_CTRL_CODE_SHIFT_DOWN:
+ textPrinter->printerTemplate.currentY = textPrinter->printerTemplate.y + *textPrinter->printerTemplate.currentChar++;
+ return RENDER_REPEAT;
+ case EXT_CTRL_CODE_FILL_WINDOW:
FillWindowPixelBuffer(textPrinter->printerTemplate.windowId, PIXEL_FILL(textPrinter->printerTemplate.bgColor));
- textPrinter->printerTemplate.currentX = textPrinter->printerTemplate.x;
- textPrinter->printerTemplate.currentY = textPrinter->printerTemplate.y;
- textPrinter->state = 0;
- }
- return 3;
- case 3:
- if (TextPrinterWaitWithDownArrow(textPrinter))
- {
- TextPrinterClearDownArrow(textPrinter);
- textPrinter->scrollDistance = gFonts[textPrinter->printerTemplate.fontId].maxLetterHeight + textPrinter->printerTemplate.lineSpacing;
- textPrinter->printerTemplate.currentX = textPrinter->printerTemplate.x;
- textPrinter->state = 4;
- }
- return 3;
- case 4:
- if (textPrinter->scrollDistance)
- {
- if (textPrinter->scrollDistance < sScrollDistances[gSaveBlock2Ptr->optionsTextSpeed])
- {
- ScrollWindow(textPrinter->printerTemplate.windowId, 0, textPrinter->scrollDistance, PIXEL_FILL(textPrinter->printerTemplate.bgColor));
- textPrinter->scrollDistance = 0;
- }
- else
- {
- ScrollWindow(textPrinter->printerTemplate.windowId, 0, sScrollDistances[gSaveBlock2Ptr->optionsTextSpeed], PIXEL_FILL(textPrinter->printerTemplate.bgColor));
- textPrinter->scrollDistance -= sScrollDistances[gSaveBlock2Ptr->optionsTextSpeed];
- }
- CopyWindowToVram(textPrinter->printerTemplate.windowId, 2);
- }
- else
- {
- textPrinter->state = 0;
- }
- return 3;
- case 5:
- if (!IsSEPlaying())
- {
- textPrinter->state = 0;
+ return RENDER_REPEAT;
}
- return 3;
- case 6:
- if (textPrinter->delayCounter)
+ break;
+ case CHAR_PROMPT_CLEAR:
+ textPrinter->state = RENDER_STATE_CLEAR;
+ TextPrinterInitDownArrowCounters(textPrinter);
+ return RENDER_UPDATE;
+ case CHAR_PROMPT_SCROLL:
+ textPrinter->state = RENDER_STATE_SCROLL_START;
+ TextPrinterInitDownArrowCounters(textPrinter);
+ return RENDER_UPDATE;
+ case CHAR_EXTRA_SYMBOL:
+ char_ = *textPrinter->printerTemplate.currentChar++| 0x100;
+ break;
+ case CHAR_KEYPAD_ICON:
+ textPrinter->printerTemplate.currentChar++;
+ return RENDER_PRINT;
+ }
+ DecompressGlyph_Braille(char_);
+ CopyGlyphToWindow(textPrinter);
+ textPrinter->printerTemplate.currentX += gCurGlyph.width + textPrinter->printerTemplate.letterSpacing;
+ return RENDER_PRINT;
+ case RENDER_STATE_WAIT:
+ if (TextPrinterWait(textPrinter))
+ textPrinter->state = RENDER_STATE_HANDLE_CHAR;
+ return RENDER_UPDATE;
+ case RENDER_STATE_CLEAR:
+ if (TextPrinterWaitWithDownArrow(textPrinter))
+ {
+ FillWindowPixelBuffer(textPrinter->printerTemplate.windowId, PIXEL_FILL(textPrinter->printerTemplate.bgColor));
+ textPrinter->printerTemplate.currentX = textPrinter->printerTemplate.x;
+ textPrinter->printerTemplate.currentY = textPrinter->printerTemplate.y;
+ textPrinter->state = RENDER_STATE_HANDLE_CHAR;
+ }
+ return RENDER_UPDATE;
+ case RENDER_STATE_SCROLL_START:
+ if (TextPrinterWaitWithDownArrow(textPrinter))
+ {
+ TextPrinterClearDownArrow(textPrinter);
+ textPrinter->scrollDistance = gFonts[textPrinter->printerTemplate.fontId].maxLetterHeight + textPrinter->printerTemplate.lineSpacing;
+ textPrinter->printerTemplate.currentX = textPrinter->printerTemplate.x;
+ textPrinter->state = RENDER_STATE_SCROLL;
+ }
+ return RENDER_UPDATE;
+ case RENDER_STATE_SCROLL:
+ if (textPrinter->scrollDistance)
+ {
+ if (textPrinter->scrollDistance < sScrollDistances[gSaveBlock2Ptr->optionsTextSpeed])
{
- textPrinter->delayCounter --;
+ ScrollWindow(textPrinter->printerTemplate.windowId, 0, textPrinter->scrollDistance, PIXEL_FILL(textPrinter->printerTemplate.bgColor));
+ textPrinter->scrollDistance = 0;
}
else
{
- textPrinter->state = 0;
+ ScrollWindow(textPrinter->printerTemplate.windowId, 0, sScrollDistances[gSaveBlock2Ptr->optionsTextSpeed], PIXEL_FILL(textPrinter->printerTemplate.bgColor));
+ textPrinter->scrollDistance -= sScrollDistances[gSaveBlock2Ptr->optionsTextSpeed];
}
- return 3;
+ CopyWindowToVram(textPrinter->printerTemplate.windowId, COPYWIN_GFX);
+ }
+ else
+ {
+ textPrinter->state = RENDER_STATE_HANDLE_CHAR;
+ }
+ return RENDER_UPDATE;
+ case RENDER_STATE_WAIT_SE:
+ if (!IsSEPlaying())
+ textPrinter->state = RENDER_STATE_HANDLE_CHAR;
+ return RENDER_UPDATE;
+ case RENDER_STATE_PAUSE:
+ if (textPrinter->delayCounter)
+ textPrinter->delayCounter --;
+ else
+ textPrinter->state = RENDER_STATE_HANDLE_CHAR;
+ return RENDER_UPDATE;
}
- return 1;
+ return RENDER_FINISH;
}
static void DecompressGlyph_Braille(u16 glyph)
diff --git a/src/cable_club.c b/src/cable_club.c
index 1284aee77..1f943b03a 100644
--- a/src/cable_club.c
+++ b/src/cable_club.c
@@ -100,16 +100,16 @@ static void PrintNumPlayersInLink(u16 windowId, u32 numPlayers)
SetStandardWindowBorderStyle(windowId, 0);
StringExpandPlaceholders(gStringVar4, gText_NumPlayerLink);
xPos = GetStringCenterAlignXOffset(FONT_NORMAL, gStringVar4, 88);
- AddTextPrinterParameterized(windowId, FONT_NORMAL, gStringVar4, xPos, 1, 0xFF, NULL);
- CopyWindowToVram(windowId, 3);
+ AddTextPrinterParameterized(windowId, FONT_NORMAL, gStringVar4, xPos, 1, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(windowId, COPYWIN_FULL);
}
static void ClearLinkPlayerCountWindow(u16 windowId)
{
- // Following this call with a copy-to-vram with mode 3 is identical to
+ // Following this call with a copy-to-vram with mode COPYWIN_FULL is identical to
// calling ClearStdWindowAndFrame(windowId, TRUE).
ClearStdWindowAndFrame(windowId, FALSE);
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_FULL);
}
static void UpdateLinkPlayerCountDisplay(u8 taskId, u8 numPlayers)
@@ -1078,7 +1078,7 @@ static void Task_EnterCableClubSeat(u8 taskId)
case 3:
// Exit, failure
SetLinkWaitingForScript();
- sub_8197AE8(TRUE);
+ EraseFieldMessageBox(TRUE);
DestroyTask(taskId);
EnableBothScriptContexts();
break;
diff --git a/src/contest.c b/src/contest.c
index 1cd8f18b0..b5a035ff8 100644
--- a/src/contest.c
+++ b/src/contest.c
@@ -1667,7 +1667,7 @@ static void Task_HideMoveSelectScreen(u8 taskId)
{
FillWindowPixelBuffer(MOVE_WINDOWS_START + i, PIXEL_FILL(0));
PutWindowTilemap(MOVE_WINDOWS_START + i);
- CopyWindowToVram(MOVE_WINDOWS_START + i, 2);
+ CopyWindowToVram(MOVE_WINDOWS_START + i, COPYWIN_GFX);
}
Contest_SetBgCopyFlags(0);
// This seems to be a bug; it should have just copied PLTT_BUFFER_SIZE.
@@ -3377,7 +3377,7 @@ static void DrawStatusSymbols(void)
static void ContestClearGeneralTextWindow(void)
{
FillWindowPixelBuffer(WIN_GENERAL_TEXT, PIXEL_FILL(0));
- CopyWindowToVram(WIN_GENERAL_TEXT, 2);
+ CopyWindowToVram(WIN_GENERAL_TEXT, COPYWIN_GFX);
Contest_SetBgCopyFlags(0);
}
diff --git a/src/contest_painting.c b/src/contest_painting.c
index db6bf4455..e71cf391f 100644
--- a/src/contest_painting.c
+++ b/src/contest_painting.c
@@ -267,14 +267,14 @@ static void InitContestPaintingWindow(void)
{
ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates));
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
SetBgTilemapBuffer(1, AllocZeroed(BG_SCREEN_SIZE));
sWindowId = AddWindow(&sWindowTemplate);
DeactivateAllTextPrinters();
FillWindowPixelBuffer(sWindowId, PIXEL_FILL(0));
PutWindowTilemap(sWindowId);
- CopyWindowToVram(sWindowId, 3);
+ CopyWindowToVram(sWindowId, COPYWIN_FULL);
ShowBg(1);
}
diff --git a/src/contest_util.c b/src/contest_util.c
index e1c95d4a2..6fd74a68a 100644
--- a/src/contest_util.c
+++ b/src/contest_util.c
@@ -1181,7 +1181,7 @@ static s32 DrawResultsTextWindow(const u8 *text, u8 spriteId)
if (strWidth > 30)
strWidth = 30;
- AddTextPrinterParameterized3(windowId, FONT_NORMAL, (strWidth * 8 - origWidth) / 2, 1, sContestLinkTextColors, -1, text);
+ AddTextPrinterParameterized3(windowId, FONT_NORMAL, (strWidth * 8 - origWidth) / 2, 1, sContestLinkTextColors, TEXT_SKIP_DRAW, text);
{
s32 i;
struct Sprite *sprite;
@@ -1578,7 +1578,7 @@ static void SpriteCB_WinnerMonSlideIn(struct Sprite *sprite)
{
if (++sprite->data[0] == 10)
{
- PlayCry1(sprite->data[1], 0);
+ PlayCry_Normal(sprite->data[1], 0);
sprite->data[1] = 0;
}
}
diff --git a/src/credits.c b/src/credits.c
index de7597e32..43c8d6628 100644
--- a/src/credits.c
+++ b/src/credits.c
@@ -369,7 +369,7 @@ static void InitCreditsBgsAndWindows(void)
InitWindows(sWindowTemplates);
DeactivateAllTextPrinters();
PutWindowTilemap(0);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
ShowBg(0);
}
@@ -401,7 +401,7 @@ static void PrintCreditsText(const u8 *string, u8 y, bool8 isTitle)
}
x = GetStringCenterAlignXOffsetWithLetterSpacing(FONT_NORMAL, string, DISPLAY_WIDTH, 1);
- AddTextPrinterParameterized4(0, FONT_NORMAL, x, y, 1, 0, color, -1, string);
+ AddTextPrinterParameterized4(0, FONT_NORMAL, x, y, 1, 0, color, TEXT_SKIP_DRAW, string);
}
#define tMainTaskId data[1]
@@ -761,7 +761,7 @@ static void Task_UpdatePage(u8 taskId)
sCreditsEntryPointerTable[gTasks[taskId].tCurrentPage][i]->text,
5 + i * 16,
sCreditsEntryPointerTable[gTasks[taskId].tCurrentPage][i]->isTitle);
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
gTasks[taskId].tCurrentPage++;
gTasks[taskId].tState++;
@@ -811,7 +811,7 @@ static void Task_UpdatePage(u8 taskId)
{
// Still more Credits pages to show, return to state 2 to print
FillWindowPixelBuffer(0, PIXEL_FILL(0));
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
gTasks[taskId].tState = 2;
}
return;
diff --git a/src/crt0.s b/src/crt0.s
index 672fc94f2..7c679c13b 100644
--- a/src/crt0.s
+++ b/src/crt0.s
@@ -1,108 +1,9 @@
-#include "constants/global.h"
.include "constants/gba_constants.inc"
.syntax unified
- .global Start
-
- .text
-
.arm
-Start: @ 8000000
- b Init
-
- .include "asm/rom_header.inc"
-
-@ 80000C0
- .word 0
-
- .global GPIOPortData
-GPIOPortData: @ 80000C4
- .2byte 0
-
- .global GPIOPortDirection
-GPIOPortDirection: @ 80000C6
- .2byte 0
-
- .global GPIOPortReadEnable
-GPIOPortReadEnable: @ 80000C8
- .2byte 0
-
-@ 80000CA
- .2byte 0
-
-@ 80000CC
- .space 0x34
-
- .4byte GAME_VERSION
- .4byte GAME_LANGUAGE
-
- .ascii "pokemon emerald version"
- .space 9
-
- .4byte gMonFrontPicTable
- .4byte gMonBackPicTable
- .4byte gMonPaletteTable
- .4byte gMonShinyPaletteTable
- .4byte gMonIconTable
- .4byte gMonIconPaletteIndices
- .4byte gMonIconPaletteTable
- .4byte gSpeciesNames
- .4byte gMoveNames
- .4byte gDecorations
-
- .4byte 0x00001270 @ offsetof(struct SaveBlock1, flags)
- .4byte 0x0000139c @ offsetof(struct SaveBlock1, vars)
- .4byte 0x00000018 @ offsetof(struct SaveBlock2, pokedex)
- .4byte 0x00000988 @ offsetof(struct SaveBlock1, seen1)
- .4byte 0x00003b24 @ offsetof(struct SaveBlock1, seen2)
- .4byte 0x00000046 @ ?
- .4byte 0x000008e4 @ ?
- .4byte 0x000008ac @ ?
- .4byte 0x00000182 @ NATIONAL_DEX_COUNT?
-
- .byte 0x07, 0x0a, 0x0a, 0x0a, 0x0c, 0x0c, 0x06, 0x0c
- .byte 0x06, 0x10, 0x12, 0x0c, 0x0f, 0x0b, 0x01, 0x08
-
- .4byte 0x0000000c @ ?
- .4byte 0x00000f2c @ sizeof(struct SaveBlock2)
- .4byte 0x00003d88 @ sizeof(struct SaveBlock1)
- .4byte 0x00000234 @ offsetof(struct SaveBlock1, playerPartyCount)
- .4byte 0x00000238 @ offsetof(struct SaveBlock1, playerParty)
- .4byte 0x00000009 @ offsetof(struct SaveBlock2, specialSaveWarpFlags)
- .4byte 0x0000000a @ offsetof(struct SaveBlock2, playerTrainerId)
- .4byte 0x00000000 @ offsetof(struct SaveBlock2, playerName)
- .4byte 0x00000008 @ offsetof(struct SaveBlock2, playerGender)
- .4byte 0x00000ca8 @ offsetof(struct SaveBlock2, frontier.challengeStatus)
- .4byte 0x00000ca8 @ offsetof(struct SaveBlock2, frontier.challengeStatus)
- .4byte 0x000031c7 @ offsetof(struct SaveBlock1, externalEventFlags)
- .4byte 0x000031b3 @ offsetof(struct SaveBlock1, externalEventData)
- .4byte 0x00000000
-
- .4byte gBaseStats
- .4byte gAbilityNames
- .4byte gAbilityDescriptionPointers
- .4byte gItems
- .4byte gBattleMoves
- .4byte gBallSpriteSheets
- .4byte gBallSpritePalettes
-
- .4byte 0x000000a8 @ offsetof(struct SaveBlock2, gcnLinkFlags)
- .4byte 0x00000864 @ ?
- .4byte 0x0000089b @ ?
-
- .byte 0x1e, 0x1e, 0x10, 0x40
-
- .4byte 0x0000322e @ offsetof(struct SaveBlock1, ? part-way into mysteryGift)
- .4byte 0x00000498 @ offsetof(struct SaveBlock1, pcItems)
- .4byte 0x000031a8 @ offsetof(struct SaveBlock1, giftRibbons)
- .4byte 0x000031f8 @ offsetof(struct SaveBlock1, enigmaBerry)
- .4byte 0x00000034 @ offsetof(struct SaveBlock1, mapView)
- .4byte 0x00000000
- .4byte 0x00000000
-
- .arm
.align 2, 0
.global Init
Init: @ 8000204
diff --git a/src/data/object_events/movement_action_func_tables.h b/src/data/object_events/movement_action_func_tables.h
index aa55c31ef..f601cf82b 100755
--- a/src/data/object_events/movement_action_func_tables.h
+++ b/src/data/object_events/movement_action_func_tables.h
@@ -73,10 +73,10 @@ u8 MovementAction_WalkInPlaceFastDown_Step0(struct ObjectEvent *, struct Sprite
u8 MovementAction_WalkInPlaceFastUp_Step0(struct ObjectEvent *, struct Sprite *);
u8 MovementAction_WalkInPlaceFastLeft_Step0(struct ObjectEvent *, struct Sprite *);
u8 MovementAction_WalkInPlaceFastRight_Step0(struct ObjectEvent *, struct Sprite *);
-u8 MovementAction_WalkInPlaceFastestDown_Step0(struct ObjectEvent *, struct Sprite *);
-u8 MovementAction_WalkInPlaceFastestUp_Step0(struct ObjectEvent *, struct Sprite *);
-u8 MovementAction_WalkInPlaceFastestLeft_Step0(struct ObjectEvent *, struct Sprite *);
-u8 MovementAction_WalkInPlaceFastestRight_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementAction_WalkInPlaceFasterDown_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementAction_WalkInPlaceFasterUp_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementAction_WalkInPlaceFasterLeft_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementAction_WalkInPlaceFasterRight_Step0(struct ObjectEvent *, struct Sprite *);
u8 MovementAction_RideWaterCurrentDown_Step0(struct ObjectEvent *, struct Sprite *);
u8 MovementAction_RideWaterCurrentDown_Step1(struct ObjectEvent *, struct Sprite *);
u8 MovementAction_RideWaterCurrentUp_Step0(struct ObjectEvent *, struct Sprite *);
@@ -299,10 +299,10 @@ u8 (*const gMovementActionFuncs_WalkInPlaceFastDown[])(struct ObjectEvent *, str
u8 (*const gMovementActionFuncs_WalkInPlaceFastUp[])(struct ObjectEvent *, struct Sprite *);
u8 (*const gMovementActionFuncs_WalkInPlaceFastLeft[])(struct ObjectEvent *, struct Sprite *);
u8 (*const gMovementActionFuncs_WalkInPlaceFastRight[])(struct ObjectEvent *, struct Sprite *);
-u8 (*const gMovementActionFuncs_WalkInPlaceFastestDown[])(struct ObjectEvent *, struct Sprite *);
-u8 (*const gMovementActionFuncs_WalkInPlaceFastestUp[])(struct ObjectEvent *, struct Sprite *);
-u8 (*const gMovementActionFuncs_WalkInPlaceFastestLeft[])(struct ObjectEvent *, struct Sprite *);
-u8 (*const gMovementActionFuncs_WalkInPlaceFastestRight[])(struct ObjectEvent *, struct Sprite *);
+u8 (*const gMovementActionFuncs_WalkInPlaceFasterDown[])(struct ObjectEvent *, struct Sprite *);
+u8 (*const gMovementActionFuncs_WalkInPlaceFasterUp[])(struct ObjectEvent *, struct Sprite *);
+u8 (*const gMovementActionFuncs_WalkInPlaceFasterLeft[])(struct ObjectEvent *, struct Sprite *);
+u8 (*const gMovementActionFuncs_WalkInPlaceFasterRight[])(struct ObjectEvent *, struct Sprite *);
u8 (*const gMovementActionFuncs_RideWaterCurrentDown[])(struct ObjectEvent *, struct Sprite *);
u8 (*const gMovementActionFuncs_RideWaterCurrentUp[])(struct ObjectEvent *, struct Sprite *);
u8 (*const gMovementActionFuncs_RideWaterCurrentLeft[])(struct ObjectEvent *, struct Sprite *);
@@ -459,10 +459,10 @@ u8 (*const *const gMovementActionFuncs[])(struct ObjectEvent *, struct Sprite *)
[MOVEMENT_ACTION_WALK_IN_PLACE_FAST_UP] = gMovementActionFuncs_WalkInPlaceFastUp,
[MOVEMENT_ACTION_WALK_IN_PLACE_FAST_LEFT] = gMovementActionFuncs_WalkInPlaceFastLeft,
[MOVEMENT_ACTION_WALK_IN_PLACE_FAST_RIGHT] = gMovementActionFuncs_WalkInPlaceFastRight,
- [MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_DOWN] = gMovementActionFuncs_WalkInPlaceFastestDown,
- [MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_UP] = gMovementActionFuncs_WalkInPlaceFastestUp,
- [MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_LEFT] = gMovementActionFuncs_WalkInPlaceFastestLeft,
- [MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_RIGHT] = gMovementActionFuncs_WalkInPlaceFastestRight,
+ [MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_DOWN] = gMovementActionFuncs_WalkInPlaceFasterDown,
+ [MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_UP] = gMovementActionFuncs_WalkInPlaceFasterUp,
+ [MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_LEFT] = gMovementActionFuncs_WalkInPlaceFasterLeft,
+ [MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_RIGHT] = gMovementActionFuncs_WalkInPlaceFasterRight,
[MOVEMENT_ACTION_RIDE_WATER_CURRENT_DOWN] = gMovementActionFuncs_RideWaterCurrentDown,
[MOVEMENT_ACTION_RIDE_WATER_CURRENT_UP] = gMovementActionFuncs_RideWaterCurrentUp,
[MOVEMENT_ACTION_RIDE_WATER_CURRENT_LEFT] = gMovementActionFuncs_RideWaterCurrentLeft,
@@ -859,26 +859,26 @@ u8 (*const gMovementActionFuncs_WalkInPlaceFastRight[])(struct ObjectEvent *, st
MovementAction_PauseSpriteAnim,
};
-u8 (*const gMovementActionFuncs_WalkInPlaceFastestDown[])(struct ObjectEvent *, struct Sprite *) = {
- MovementAction_WalkInPlaceFastestDown_Step0,
+u8 (*const gMovementActionFuncs_WalkInPlaceFasterDown[])(struct ObjectEvent *, struct Sprite *) = {
+ MovementAction_WalkInPlaceFasterDown_Step0,
MovementAction_WalkInPlace_Step1,
MovementAction_PauseSpriteAnim,
};
-u8 (*const gMovementActionFuncs_WalkInPlaceFastestUp[])(struct ObjectEvent *, struct Sprite *) = {
- MovementAction_WalkInPlaceFastestUp_Step0,
+u8 (*const gMovementActionFuncs_WalkInPlaceFasterUp[])(struct ObjectEvent *, struct Sprite *) = {
+ MovementAction_WalkInPlaceFasterUp_Step0,
MovementAction_WalkInPlace_Step1,
MovementAction_PauseSpriteAnim,
};
-u8 (*const gMovementActionFuncs_WalkInPlaceFastestLeft[])(struct ObjectEvent *, struct Sprite *) = {
- MovementAction_WalkInPlaceFastestLeft_Step0,
+u8 (*const gMovementActionFuncs_WalkInPlaceFasterLeft[])(struct ObjectEvent *, struct Sprite *) = {
+ MovementAction_WalkInPlaceFasterLeft_Step0,
MovementAction_WalkInPlace_Step1,
MovementAction_PauseSpriteAnim,
};
-u8 (*const gMovementActionFuncs_WalkInPlaceFastestRight[])(struct ObjectEvent *, struct Sprite *) = {
- MovementAction_WalkInPlaceFastestRight_Step0,
+u8 (*const gMovementActionFuncs_WalkInPlaceFasterRight[])(struct ObjectEvent *, struct Sprite *) = {
+ MovementAction_WalkInPlaceFasterRight_Step0,
MovementAction_WalkInPlace_Step1,
MovementAction_PauseSpriteAnim,
};
diff --git a/src/daycare.c b/src/daycare.c
index eb17147b5..c900e3493 100644
--- a/src/daycare.c
+++ b/src/daycare.c
@@ -1199,7 +1199,7 @@ static void DaycareAddTextPrinter(u8 windowId, const u8 *text, u32 x, u32 y)
printer.bgColor = 1;
printer.shadowColor = 3;
- AddTextPrinter(&printer, 0xFF, NULL);
+ AddTextPrinter(&printer, TEXT_SKIP_DRAW, NULL);
}
static void DaycarePrintMonNickname(struct DayCare *daycare, u8 windowId, u32 daycareSlotId, u32 y)
@@ -1285,7 +1285,7 @@ void ShowDaycareLevelMenu(void)
menuTemplate.windowId = windowId;
listMenuTaskId = ListMenuInit(&menuTemplate, 0, 0);
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_FULL);
daycareMenuTaskId = CreateTask(Task_HandleDaycareLevelMenuInput, 3);
gTasks[daycareMenuTaskId].tMenuListTaskId = listMenuTaskId;
diff --git a/src/decoration.c b/src/decoration.c
index 52d1054c9..bb2dea7f9 100644
--- a/src/decoration.c
+++ b/src/decoration.c
@@ -557,7 +557,7 @@ static void AddDecorationActionsWindow(void)
{
u8 windowId = AddDecorationWindow(WINDOW_MAIN_MENU);
PrintMenuTable(windowId, ARRAY_COUNT(sDecorationMainMenuActions), sDecorationMainMenuActions);
- InitMenuInUpperLeftCornerPlaySoundWhenAPressed(windowId, ARRAY_COUNT(sDecorationMainMenuActions), sDecorationActionsCursorPos);
+ InitMenuInUpperLeftCornerNormal(windowId, ARRAY_COUNT(sDecorationMainMenuActions), sDecorationActionsCursorPos);
}
static void InitDecorationActionsWindow(void)
@@ -697,7 +697,7 @@ static void InitDecorationCategoriesWindow(u8 taskId)
{
u8 windowId = AddDecorationWindow(WINDOW_DECORATION_CATEGORIES);
PrintDecorationCategoryMenuItems(taskId);
- InitMenuInUpperLeftCornerPlaySoundWhenAPressed(windowId, DECORCAT_COUNT + 1, sCurDecorationCategory);
+ InitMenuInUpperLeftCornerNormal(windowId, DECORCAT_COUNT + 1, sCurDecorationCategory);
gTasks[taskId].func = HandleDecorationCategoriesMenuInput;
}
@@ -705,7 +705,7 @@ static void ReinitDecorationCategoriesWindow(u8 taskId)
{
FillWindowPixelBuffer(sDecorMenuWindowIds[WINDOW_DECORATION_CATEGORIES], PIXEL_FILL(1));
PrintDecorationCategoryMenuItems(taskId);
- InitMenuInUpperLeftCornerPlaySoundWhenAPressed(sDecorMenuWindowIds[WINDOW_DECORATION_CATEGORIES], DECORCAT_COUNT + 1, sCurDecorationCategory);
+ InitMenuInUpperLeftCornerNormal(sDecorMenuWindowIds[WINDOW_DECORATION_CATEGORIES], DECORCAT_COUNT + 1, sCurDecorationCategory);
gTasks[taskId].func = HandleDecorationCategoriesMenuInput;
}
@@ -723,9 +723,9 @@ static void PrintDecorationCategoryMenuItems(u8 taskId)
{
// Only DOLL and CUSHION decorations are enabled when decorating the player's room.
if (shouldDisable == TRUE && i != DECORCAT_DOLL && i != DECORCAT_CUSHION)
- PrintDecorationCategoryMenuItem(windowId, i, 8, i * 16, TRUE, TEXT_SPEED_FF);
+ PrintDecorationCategoryMenuItem(windowId, i, 8, i * 16, TRUE, TEXT_SKIP_DRAW);
else
- PrintDecorationCategoryMenuItem(windowId, i, 8, i * 16, FALSE, TEXT_SPEED_FF);
+ PrintDecorationCategoryMenuItem(windowId, i, 8, i * 16, FALSE, TEXT_SKIP_DRAW);
}
AddTextPrinterParameterized(windowId, FONT_NORMAL, gTasks[taskId].tDecorationMenuCommand == DECOR_MENU_TRADE ? gText_Exit : gText_Cancel, 8, i * 16 + 1, 0, NULL);
diff --git a/src/diploma.c b/src/diploma.c
index ffb1447eb..76b4ae65c 100644
--- a/src/diploma.c
+++ b/src/diploma.c
@@ -83,7 +83,7 @@ void CB2_ShowDiploma(void)
LZDecompressWram(sDiplomaTilemap, sDiplomaTilemapPtr);
CopyBgTilemapBufferToVram(1);
DisplayDiplomaText();
- BlendPalettes(-1, 16, 0);
+ BlendPalettes(PALETTES_ALL, 16, RGB_BLACK);
BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK);
EnableInterrupts(1);
SetVBlankCallback(VBlankCB);
@@ -140,7 +140,7 @@ static void DisplayDiplomaText(void)
StringExpandPlaceholders(gStringVar4, gText_PokedexDiploma);
PrintDiplomaText(gStringVar4, 0, 1);
PutWindowTilemap(0);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
}
static const struct BgTemplate sDiplomaBgTemplates[2] =
@@ -205,5 +205,5 @@ static void PrintDiplomaText(u8 *text, u8 var1, u8 var2)
{
u8 color[3] = {0, 2, 3};
- AddTextPrinterParameterized4(0, FONT_NORMAL, var1, var2, 0, 0, color, -1, text);
+ AddTextPrinterParameterized4(0, FONT_NORMAL, var1, var2, 0, 0, color, TEXT_SKIP_DRAW, text);
}
diff --git a/src/dodrio_berry_picking.c b/src/dodrio_berry_picking.c
index 838e8ed94..691ca6b2a 100644
--- a/src/dodrio_berry_picking.c
+++ b/src/dodrio_berry_picking.c
@@ -1352,14 +1352,14 @@ static void ResetGame(void)
}
break;
case 2:
- ChangeBgX(0, 0, 0);
- ChangeBgY(0, 0, 0);
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
- ChangeBgX(2, 0, 0);
- ChangeBgY(2, 0, 0);
- ChangeBgX(3, 0, 0);
- ChangeBgY(3, 0, 0);
+ ChangeBgX(0, 0, BG_COORD_SET);
+ ChangeBgY(0, 0, BG_COORD_SET);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
+ ChangeBgX(2, 0, BG_COORD_SET);
+ ChangeBgY(2, 0, BG_COORD_SET);
+ ChangeBgX(3, 0, BG_COORD_SET);
+ ChangeBgY(3, 0, BG_COORD_SET);
sGame->state++;
break;
case 3:
@@ -2968,7 +2968,7 @@ static void Task_ShowDodrioBerryPickingRecords(u8 taskId)
window.width = width;
tWindowId = AddWindow(&window);
PrintRecordsText(tWindowId, width);
- CopyWindowToVram(tWindowId, 3);
+ CopyWindowToVram(tWindowId, COPYWIN_FULL);
tState++;
break;
case 1:
@@ -2979,7 +2979,7 @@ static void Task_ShowDodrioBerryPickingRecords(u8 taskId)
if (JOY_NEW(A_BUTTON | B_BUTTON))
{
rbox_fill_rectangle(tWindowId);
- CopyWindowToVram(tWindowId, 1);
+ CopyWindowToVram(tWindowId, COPYWIN_MAP);
tState++;
}
break;
@@ -3008,14 +3008,14 @@ static void PrintRecordsText(u8 windowId, s32 width)
LoadUserWindowBorderGfx_(windowId, 0x21D, 0xD0);
DrawTextBorderOuter(windowId, 0x21D, 0xD);
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
- AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_BerryPickingRecords, GetStringCenterAlignXOffset(FONT_NORMAL, gText_BerryPickingRecords, width * 8), 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_BerryPickingRecords, GetStringCenterAlignXOffset(FONT_NORMAL, gText_BerryPickingRecords, width * 8), 1, TEXT_SKIP_DRAW, NULL);
for (i = 0; i < NUM_RECORD_TYPES; i++)
{
ConvertIntToDecimalStringN(gStringVar1, recordNums[i], STR_CONV_MODE_LEFT_ALIGN, sRecordNumMaxDigits[i]);
numWidth = GetStringWidth(FONT_NORMAL, gStringVar1, -1);
- AddTextPrinterParameterized(windowId, FONT_NORMAL, sRecordsTexts[i], 0, sRecordTextYCoords[i][0], TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(windowId, FONT_NORMAL, sRecordsTexts[i], 0, sRecordTextYCoords[i][0], TEXT_SKIP_DRAW, NULL);
x = (width * 8) - numWidth;
- AddTextPrinterParameterized(windowId, FONT_NORMAL, gStringVar1, x, sRecordNumYCoords[i][0], TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(windowId, FONT_NORMAL, gStringVar1, x, sRecordNumYCoords[i][0], TEXT_SKIP_DRAW, NULL);
}
PutWindowTilemap(windowId);
}
@@ -3056,16 +3056,16 @@ static const u16 sDebug_BerryResults[MAX_RFU_PLAYERS][4] =
};
static const u8 sJPText_Vowels[] = _("あいうえおかき");
-static const u8 sText_ABCDEFG[] = _("ABCDEFG");
-static const u8 sText_0123456[] = _("0123456");
+static const u8 sText_Letters[] = _("ABCDEFG");
+static const u8 sText_Digits[] = _("0123456");
static const u8 *const sDebug_PlayerNames[] =
{
sJPText_Vowels,
sJPText_Vowels,
sJPText_Vowels,
- sText_ABCDEFG,
- sText_0123456
+ sText_Letters,
+ sText_Digits
};
static void Debug_UpdateNumPlayers(void)
@@ -4649,8 +4649,8 @@ static void ShowNames(void)
if (playerId == GetMultiplayerId())
colorsId = COLORID_BLUE;
name = GetPlayerName(playerId);
- AddTextPrinterParameterized3(sGfx->windowIds[i], FONT_NORMAL, left, 1, sTextColorTable[colorsId], -1, name);
- CopyWindowToVram(sGfx->windowIds[i], 2);
+ AddTextPrinterParameterized3(sGfx->windowIds[i], FONT_NORMAL, left, 1, sTextColorTable[colorsId], TEXT_SKIP_DRAW, name);
+ CopyWindowToVram(sGfx->windowIds[i], COPYWIN_GFX);
window.baseBlock += 0xE;
DrawMessageWindow(&window);
}
@@ -4733,15 +4733,15 @@ static void PrintRankedScores(u8 numPlayers_)
u8 playerId = playersByRanking[i];
u32 points = scoreResults[playerId].score;
- AddTextPrinterParameterized(sGfx->windowIds[1], FONT_NORMAL, sRankingTexts[scoreResults[playerId].ranking], 8, sRankingYCoords[i], -1, NULL);
+ AddTextPrinterParameterized(sGfx->windowIds[1], FONT_NORMAL, sRankingTexts[scoreResults[playerId].ranking], 8, sRankingYCoords[i], TEXT_SKIP_DRAW, NULL);
if (playerId == GetMultiplayerId())
colorsId = COLORID_BLUE;
name = GetPlayerName(playerId);
- AddTextPrinterParameterized3(sGfx->windowIds[1], FONT_NORMAL, 28, sRankingYCoords[i], sTextColorTable[colorsId], -1, name);
+ AddTextPrinterParameterized3(sGfx->windowIds[1], FONT_NORMAL, 28, sRankingYCoords[i], sTextColorTable[colorsId], TEXT_SKIP_DRAW, name);
ConvertIntToDecimalStringN(numString, points, STR_CONV_MODE_LEFT_ALIGN, 7);
numWidth = GetStringWidth(FONT_NORMAL, numString, -1);
- AddTextPrinterParameterized(sGfx->windowIds[1], FONT_NORMAL, numString, x - numWidth, sRankingYCoords[i], -1, NULL);
- AddTextPrinterParameterized(sGfx->windowIds[1], FONT_NORMAL, gText_SpacePoints, x, sRankingYCoords[i], -1, NULL);
+ AddTextPrinterParameterized(sGfx->windowIds[1], FONT_NORMAL, numString, x - numWidth, sRankingYCoords[i], TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(sGfx->windowIds[1], FONT_NORMAL, gText_SpacePoints, x, sRankingYCoords[i], TEXT_SKIP_DRAW, NULL);
}
}
@@ -4772,8 +4772,8 @@ static void ShowResults(void)
FillWindowPixelBuffer(sGfx->windowIds[1], PIXEL_FILL(1));
strWidth = GetStringWidth(FONT_NORMAL, gText_BerryPickingResults, -1);
x = (224 - strWidth) / 2;
- AddTextPrinterParameterized(sGfx->windowIds[0], FONT_NORMAL, gText_BerryPickingResults, x, 1, -1, NULL);
- AddTextPrinterParameterized(sGfx->windowIds[1], FONT_NORMAL, gText_10P30P50P50P, 68, 17, -1, NULL);
+ AddTextPrinterParameterized(sGfx->windowIds[0], FONT_NORMAL, gText_BerryPickingResults, x, 1, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(sGfx->windowIds[1], FONT_NORMAL, gText_10P30P50P50P, 68, 17, TEXT_SKIP_DRAW, NULL);
for (i = 0; i < numPlayers; i++)
{
u8 colorsId = COLORID_GRAY;
@@ -4781,7 +4781,7 @@ static void ShowResults(void)
colorsId = COLORID_BLUE;
name = GetPlayerName(i);
- AddTextPrinterParameterized3(sGfx->windowIds[1], FONT_NORMAL, 0, sResultsYCoords[i], sTextColorTable[colorsId], -1, name);
+ AddTextPrinterParameterized3(sGfx->windowIds[1], FONT_NORMAL, 0, sResultsYCoords[i], sTextColorTable[colorsId], TEXT_SKIP_DRAW, name);
for (j = 0; j < 4; j++)
{
u32 width;
@@ -4793,13 +4793,13 @@ static void ShowResults(void)
// If player got the most of a berry type, highlight their number in red
if (maxBerriesPicked == berriesPicked && maxBerriesPicked != 0)
- AddTextPrinterParameterized3(sGfx->windowIds[1], FONT_NORMAL, sResultsXCoords[j] - width, sResultsYCoords[i], sTextColorTable[COLORID_RED], -1, gStringVar4);
+ AddTextPrinterParameterized3(sGfx->windowIds[1], FONT_NORMAL, sResultsXCoords[j] - width, sResultsYCoords[i], sTextColorTable[COLORID_RED], TEXT_SKIP_DRAW, gStringVar4);
else
- AddTextPrinterParameterized(sGfx->windowIds[1], FONT_NORMAL, gStringVar4, sResultsXCoords[j] - width, sResultsYCoords[i], -1, NULL);
+ AddTextPrinterParameterized(sGfx->windowIds[1], FONT_NORMAL, gStringVar4, sResultsXCoords[j] - width, sResultsYCoords[i], TEXT_SKIP_DRAW, NULL);
}
}
- CopyWindowToVram(sGfx->windowIds[0], 2);
- CopyWindowToVram(sGfx->windowIds[1], 2);
+ CopyWindowToVram(sGfx->windowIds[0], COPYWIN_GFX);
+ CopyWindowToVram(sGfx->windowIds[1], COPYWIN_GFX);
sGfx->state++;
break;
case 3:
@@ -4826,13 +4826,13 @@ static void ShowResults(void)
FillWindowPixelBuffer(sGfx->windowIds[1], PIXEL_FILL(1));
strWidth = GetStringWidth(FONT_NORMAL, gText_AnnouncingRankings, -1);
x = (224 - strWidth) / 2;
- AddTextPrinterParameterized(sGfx->windowIds[0], FONT_NORMAL, gText_AnnouncingRankings, x, 1, -1, NULL);
+ AddTextPrinterParameterized(sGfx->windowIds[0], FONT_NORMAL, gText_AnnouncingRankings, x, 1, TEXT_SKIP_DRAW, NULL);
sGfx->state++;
break;
case 6:
PrintRankedScores(numPlayers);
- CopyWindowToVram(sGfx->windowIds[0], 2);
- CopyWindowToVram(sGfx->windowIds[1], 2);
+ CopyWindowToVram(sGfx->windowIds[0], COPYWIN_GFX);
+ CopyWindowToVram(sGfx->windowIds[1], COPYWIN_GFX);
sGfx->state++;
break;
case 7:
@@ -4872,12 +4872,12 @@ static void ShowResults(void)
FillWindowPixelBuffer(sGfx->windowIds[1], PIXEL_FILL(1));
strWidth = GetStringWidth(FONT_NORMAL, gText_AnnouncingPrizes, -1);
x = (224 - strWidth) / 2;
- AddTextPrinterParameterized(sGfx->windowIds[0], FONT_NORMAL, gText_AnnouncingPrizes, x, 1, -1, NULL);
+ AddTextPrinterParameterized(sGfx->windowIds[0], FONT_NORMAL, gText_AnnouncingPrizes, x, 1, TEXT_SKIP_DRAW, NULL);
DynamicPlaceholderTextUtil_Reset();
CopyItemName(GetPrizeItemId(), gStringVar1);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gText_FirstPlacePrize);
- AddTextPrinterParameterized(sGfx->windowIds[1], FONT_NORMAL, gStringVar4, 0, 1, -1, NULL);
+ AddTextPrinterParameterized(sGfx->windowIds[1], FONT_NORMAL, gStringVar4, 0, 1, TEXT_SKIP_DRAW, NULL);
prizeState = TryGivePrize();
if (prizeState != PRIZE_RECEIVED && prizeState != NO_PRIZE)
{
@@ -4888,10 +4888,10 @@ static void ShowResults(void)
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gText_CantHoldAnyMore);
else if (prizeState == PRIZE_FILLED_BAG)
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gText_FilledStorageSpace);
- AddTextPrinterParameterized(sGfx->windowIds[1], FONT_NORMAL, gStringVar4, 0, 41, -1, NULL);
+ AddTextPrinterParameterized(sGfx->windowIds[1], FONT_NORMAL, gStringVar4, 0, 41, TEXT_SKIP_DRAW, NULL);
}
- CopyWindowToVram(sGfx->windowIds[0], 2);
- CopyWindowToVram(sGfx->windowIds[1], 2);
+ CopyWindowToVram(sGfx->windowIds[0], COPYWIN_GFX);
+ CopyWindowToVram(sGfx->windowIds[1], COPYWIN_GFX);
sGfx->state++;
break;
case 10:
@@ -4946,12 +4946,12 @@ static void Msg_WantToPlayAgain(void)
// Print text
FillWindowPixelBuffer(sGfx->windowIds[WIN_PLAY_AGAIN], PIXEL_FILL(1));
FillWindowPixelBuffer(sGfx->windowIds[WIN_YES_NO], PIXEL_FILL(1));
- AddTextPrinterParameterized(sGfx->windowIds[WIN_PLAY_AGAIN], FONT_NORMAL, gText_WantToPlayAgain, 0, 5, -1, NULL);
- AddTextPrinterParameterized(sGfx->windowIds[WIN_YES_NO], FONT_NORMAL, gText_Yes, 8, 1, -1, NULL);
- AddTextPrinterParameterized(sGfx->windowIds[WIN_YES_NO], FONT_NORMAL, gText_No, 8, 17, -1, NULL);
- AddTextPrinterParameterized(sGfx->windowIds[WIN_YES_NO], FONT_NORMAL, gText_SelectorArrow2, 0, 1, -1, NULL);
- CopyWindowToVram(sGfx->windowIds[WIN_PLAY_AGAIN], 2);
- CopyWindowToVram(sGfx->windowIds[WIN_YES_NO], 2);
+ AddTextPrinterParameterized(sGfx->windowIds[WIN_PLAY_AGAIN], FONT_NORMAL, gText_WantToPlayAgain, 0, 5, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(sGfx->windowIds[WIN_YES_NO], FONT_NORMAL, gText_Yes, 8, 1, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(sGfx->windowIds[WIN_YES_NO], FONT_NORMAL, gText_No, 8, 17, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(sGfx->windowIds[WIN_YES_NO], FONT_NORMAL, gText_SelectorArrow2, 0, 1, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(sGfx->windowIds[WIN_PLAY_AGAIN], COPYWIN_GFX);
+ CopyWindowToVram(sGfx->windowIds[WIN_YES_NO], COPYWIN_GFX);
sGfx->state++;
break;
case 2:
@@ -4970,10 +4970,10 @@ static void Msg_WantToPlayAgain(void)
if (y == PLAY_AGAIN_NONE)
y = PLAY_AGAIN_YES;
FillWindowPixelBuffer(sGfx->windowIds[WIN_YES_NO], PIXEL_FILL(1));
- AddTextPrinterParameterized(sGfx->windowIds[WIN_YES_NO], FONT_NORMAL, gText_Yes, 8, 1, -1, NULL);
- AddTextPrinterParameterized(sGfx->windowIds[WIN_YES_NO], FONT_NORMAL, gText_No, 8, 17, -1, NULL);
- AddTextPrinterParameterized(sGfx->windowIds[WIN_YES_NO], FONT_NORMAL, gText_SelectorArrow2, 0, ((y - 1) * 16) + 1, -1, NULL);
- CopyWindowToVram(sGfx->windowIds[WIN_YES_NO], 3);
+ AddTextPrinterParameterized(sGfx->windowIds[WIN_YES_NO], FONT_NORMAL, gText_Yes, 8, 1, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(sGfx->windowIds[WIN_YES_NO], FONT_NORMAL, gText_No, 8, 17, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(sGfx->windowIds[WIN_YES_NO], FONT_NORMAL, gText_SelectorArrow2, 0, ((y - 1) * 16) + 1, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(sGfx->windowIds[WIN_YES_NO], COPYWIN_FULL);
// Increment state only if A or B button have been pressed.
if (JOY_NEW(A_BUTTON))
@@ -5029,18 +5029,18 @@ static void Msg_SavingDontTurnOff(void)
sGfx->state++;
break;
case 1:
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
sGfx->state++;
break;
case 2:
if (!IsDma3ManagerBusyWithBgCopy())
{
- CreateTask(Task_LinkSave, 0);
+ CreateTask(Task_LinkFullSave, 0);
sGfx->state++;
}
break;
case 3:
- if (!FuncIsActiveTask(Task_LinkSave))
+ if (!FuncIsActiveTask(Task_LinkFullSave))
sGfx->state++;
break;
default:
@@ -5063,8 +5063,8 @@ static void Msg_CommunicationStandby(void)
break;
case 1:
FillWindowPixelBuffer(sGfx->windowIds[0], PIXEL_FILL(1));
- AddTextPrinterParameterized(sGfx->windowIds[0], FONT_NORMAL, gText_CommunicationStandby3, 0, 5, -1, NULL);
- CopyWindowToVram(sGfx->windowIds[0], 2);
+ AddTextPrinterParameterized(sGfx->windowIds[0], FONT_NORMAL, gText_CommunicationStandby3, 0, 5, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(sGfx->windowIds[0], COPYWIN_GFX);
sGfx->state++;
break;
case 2:
@@ -5103,8 +5103,8 @@ static void Msg_SomeoneDroppedOut(void)
break;
case 1:
FillWindowPixelBuffer(sGfx->windowIds[0], PIXEL_FILL(1));
- AddTextPrinterParameterized(sGfx->windowIds[0], FONT_NORMAL, gText_SomeoneDroppedOut, 0, 5, -1, NULL);
- CopyWindowToVram(sGfx->windowIds[0], 2);
+ AddTextPrinterParameterized(sGfx->windowIds[0], FONT_NORMAL, gText_SomeoneDroppedOut, 0, 5, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(sGfx->windowIds[0], COPYWIN_GFX);
sGfx->state++;
break;
case 2:
@@ -5172,14 +5172,14 @@ static void InitBgs(void)
SetGpuReg(REG_OFFSET_DISPCNT, 0);
ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates));
- ChangeBgX(0, 0, 0);
- ChangeBgY(0, 0, 0);
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
- ChangeBgX(2, 0, 0);
- ChangeBgY(2, 0, 0);
- ChangeBgX(3, 0, 0);
- ChangeBgY(3, 0, 0);
+ ChangeBgX(0, 0, BG_COORD_SET);
+ ChangeBgY(0, 0, BG_COORD_SET);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
+ ChangeBgX(2, 0, BG_COORD_SET);
+ ChangeBgY(2, 0, BG_COORD_SET);
+ ChangeBgX(3, 0, BG_COORD_SET);
+ ChangeBgY(3, 0, BG_COORD_SET);
InitStandardTextBoxWindows();
InitTextBoxGfxAndPrinters();
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP);
diff --git a/src/easy_chat.c b/src/easy_chat.c
index 2adcaf1d2..1b992caf2 100644
--- a/src/easy_chat.c
+++ b/src/easy_chat.c
@@ -3900,14 +3900,14 @@ static bool8 InitEasyChatScreenControl_(void)
static void InitEasyChatBgs(void)
{
- ChangeBgX(3, 0, 0);
- ChangeBgY(3, 0, 0);
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
- ChangeBgX(2, 0, 0);
- ChangeBgY(2, 0, 0);
- ChangeBgX(0, 0, 0);
- ChangeBgY(0, 0, 0);
+ ChangeBgX(3, 0, BG_COORD_SET);
+ ChangeBgY(3, 0, BG_COORD_SET);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
+ ChangeBgX(2, 0, BG_COORD_SET);
+ ChangeBgY(2, 0, BG_COORD_SET);
+ ChangeBgX(0, 0, BG_COORD_SET);
+ ChangeBgY(0, 0, BG_COORD_SET);
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON);
}
@@ -3932,9 +3932,9 @@ static void PrintTitle(void)
xOffset = GetStringCenterAlignXOffset(FONT_NORMAL, titleText, 144);
FillWindowPixelBuffer(0, PIXEL_FILL(0));
- PrintEasyChatTextWithColors(0, FONT_NORMAL, titleText, xOffset, 1, TEXT_SPEED_FF, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY);
+ PrintEasyChatTextWithColors(0, FONT_NORMAL, titleText, xOffset, 1, TEXT_SKIP_DRAW, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY);
PutWindowTilemap(0);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
}
static void PrintEasyChatText(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16))
@@ -4003,12 +4003,12 @@ static void PrintEasyChatStdMessage(u8 msgId)
FillWindowPixelBuffer(1, PIXEL_FILL(1));
if (text1)
- PrintEasyChatText(1, FONT_NORMAL, text1, 0, 1, TEXT_SPEED_FF, 0);
+ PrintEasyChatText(1, FONT_NORMAL, text1, 0, 1, TEXT_SKIP_DRAW, 0);
if (text2)
- PrintEasyChatText(1, FONT_NORMAL, text2, 0, 17, TEXT_SPEED_FF, 0);
+ PrintEasyChatText(1, FONT_NORMAL, text2, 0, 17, TEXT_SKIP_DRAW, 0);
- CopyWindowToVram(1, 3);
+ CopyWindowToVram(1, COPYWIN_FULL);
}
static void CreateEasyChatYesNoMenu(u8 initialCursorPos)
@@ -4099,10 +4099,10 @@ static void PrintCurrentPhrase(void)
}
*str = EOS;
- PrintEasyChatText(sScreenControl->windowId, FONT_NORMAL, sScreenControl->phrasePrintBuffer, 0, i * 16 + 1, TEXT_SPEED_FF, 0);
+ PrintEasyChatText(sScreenControl->windowId, FONT_NORMAL, sScreenControl->phrasePrintBuffer, 0, i * 16 + 1, TEXT_SKIP_DRAW, 0);
}
- CopyWindowToVram(sScreenControl->windowId, 3);
+ CopyWindowToVram(sScreenControl->windowId, COPYWIN_FULL);
}
static void BufferFrameTilemap(u16 *tilemap)
@@ -4216,7 +4216,7 @@ static void InitLowerWindowText(u32 whichText)
break;
}
- CopyWindowToVram(2, 2);
+ CopyWindowToVram(2, COPYWIN_GFX);
}
static void PrintKeyboardText(void)
@@ -4245,7 +4245,7 @@ static void PrintKeyboardGroupNames(void)
return;
}
- PrintEasyChatText(2, FONT_NORMAL, GetEasyChatWordGroupName(groupId), x * 84 + 10, y, TEXT_SPEED_FF, NULL);
+ PrintEasyChatText(2, FONT_NORMAL, GetEasyChatWordGroupName(groupId), x * 84 + 10, y, TEXT_SKIP_DRAW, NULL);
}
y += 16;
@@ -4257,7 +4257,7 @@ static void PrintKeyboardAlphabet(void)
u32 i;
for (i = 0; i < ARRAY_COUNT(sEasyChatKeyboardAlphabet); i++)
- PrintEasyChatText(2, FONT_NORMAL, sEasyChatKeyboardAlphabet[i], 10, 97 + i * 16, TEXT_SPEED_FF, NULL);
+ PrintEasyChatText(2, FONT_NORMAL, sEasyChatKeyboardAlphabet[i], 10, 97 + i * 16, TEXT_SKIP_DRAW, NULL);
}
static void PrintInitialWordSelectText(void)
@@ -4328,16 +4328,16 @@ static void PrintWordSelectText(u8 scrollOffset, u8 numRows)
{
CopyEasyChatWordPadded(sScreenControl->wordSelectPrintBuffer, easyChatWord, 0);
if (!DummyWordCheck(easyChatWord))
- PrintEasyChatText(2, FONT_NORMAL, sScreenControl->wordSelectPrintBuffer, (j * 13 + 3) * 8, y, TEXT_SPEED_FF, NULL);
+ PrintEasyChatText(2, FONT_NORMAL, sScreenControl->wordSelectPrintBuffer, (j * 13 + 3) * 8, y, TEXT_SKIP_DRAW, NULL);
else // Never reached
- PrintEasyChatTextWithColors(2, FONT_NORMAL, sScreenControl->wordSelectPrintBuffer, (j * 13 + 3) * 8, y, TEXT_SPEED_FF, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_RED, TEXT_COLOR_LIGHT_GRAY);
+ PrintEasyChatTextWithColors(2, FONT_NORMAL, sScreenControl->wordSelectPrintBuffer, (j * 13 + 3) * 8, y, TEXT_SKIP_DRAW, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_RED, TEXT_COLOR_LIGHT_GRAY);
}
}
y += 16;
}
- CopyWindowToVram(2, 2);
+ CopyWindowToVram(2, COPYWIN_GFX);
}
static void EraseWordSelectRows(u8 scrollOffset, u8 numRows)
@@ -4369,7 +4369,7 @@ static void EraseWordSelectRows(u8 scrollOffset, u8 numRows)
static void ClearWordSelectWindow(void)
{
FillWindowPixelBuffer(2, PIXEL_FILL(1));
- CopyWindowToVram(2, 2);
+ CopyWindowToVram(2, COPYWIN_GFX);
}
static void InitLowerWindowAnim(int winAnimType)
@@ -4550,7 +4550,7 @@ static void BufferLowerWindowFrame(int left, int top, int width, int height)
static void ResetLowerWindowScroll(void)
{
- ChangeBgY(2, 0x800, 0);
+ ChangeBgY(2, 0x800, BG_COORD_SET);
sScreenControl->scrollOffset = 0;
}
@@ -4572,7 +4572,7 @@ static void InitLowerWindowScroll(s16 scrollChange, u8 speed)
}
else
{
- ChangeBgY(2, bgY, 0);
+ ChangeBgY(2, bgY, BG_COORD_SET);
}
}
@@ -4587,7 +4587,7 @@ static bool8 UpdateLowerWindowScroll(void)
}
else
{
- ChangeBgY(2, sScreenControl->scrollSpeed, 1);
+ ChangeBgY(2, sScreenControl->scrollSpeed, BG_COORD_ADD);
return TRUE;
}
}
diff --git a/src/egg_hatch.c b/src/egg_hatch.c
index 25a61fcf6..283ec753a 100644
--- a/src/egg_hatch.c
+++ b/src/egg_hatch.c
@@ -495,10 +495,10 @@ static void CB2_EggHatch_0(void)
ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, sBgTemplates_EggHatch, ARRAY_COUNT(sBgTemplates_EggHatch));
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
- ChangeBgX(0, 0, 0);
- ChangeBgY(0, 0, 0);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
+ ChangeBgX(0, 0, BG_COORD_SET);
+ ChangeBgY(0, 0, BG_COORD_SET);
SetBgAttribute(1, BG_ATTR_PRIORITY, 2);
SetBgTilemapBuffer(1, Alloc(0x1000));
@@ -640,11 +640,11 @@ static void CB2_EggHatch_1(void)
case 5:
GetMonNickname2(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar1);
StringExpandPlaceholders(gStringVar4, gText_HatchedFromEgg);
- EggHatchPrintMessage(sEggHatchData->windowId, gStringVar4, 0, 3, 0xFF);
+ EggHatchPrintMessage(sEggHatchData->windowId, gStringVar4, 0, 3, TEXT_SKIP_DRAW);
PlayFanfare(MUS_EVOLVED);
sEggHatchData->CB2_state++;
PutWindowTilemap(sEggHatchData->windowId);
- CopyWindowToVram(sEggHatchData->windowId, 3);
+ CopyWindowToVram(sEggHatchData->windowId, COPYWIN_FULL);
break;
case 6:
if (IsFanfareTaskInactive())
diff --git a/src/ereader_helpers.c b/src/ereader_helpers.c
index 9a93707d8..0de87602e 100755
--- a/src/ereader_helpers.c
+++ b/src/ereader_helpers.c
@@ -481,7 +481,7 @@ static bool32 TryWriteTrainerHill_Internal(struct EReaderTrainerHillSet * hillSe
}
hillTag->checksum = CalcByteArraySum((u8 *)hillTag->floors, NUM_TRAINER_HILL_FLOORS * sizeof(struct TrHillFloor));
- if (TryWriteSpecialSaveSection(SECTOR_ID_TRAINER_HILL, (u8 *)hillTag) != SAVE_STATUS_OK)
+ if (TryWriteSpecialSaveSector(SECTOR_ID_TRAINER_HILL, (u8 *)hillTag) != SAVE_STATUS_OK)
return FALSE;
return TRUE;
@@ -497,7 +497,7 @@ bool32 TryWriteTrainerHill(struct EReaderTrainerHillSet * hillSet)
static bool32 TryReadTrainerHill_Internal(struct EReaderTrainerHillSet * dest, u8 * buffer)
{
- if (TryReadSpecialSaveSection(SECTOR_ID_TRAINER_HILL, buffer) != SAVE_STATUS_OK)
+ if (TryReadSpecialSaveSector(SECTOR_ID_TRAINER_HILL, buffer) != SAVE_STATUS_OK)
return FALSE;
memcpy(dest, buffer, sizeof(struct EReaderTrainerHillSet));
diff --git a/src/event_object_movement.c b/src/event_object_movement.c
index a1fbb0b6e..107ee47ab 100644
--- a/src/event_object_movement.c
+++ b/src/event_object_movement.c
@@ -987,12 +987,12 @@ const u8 gWalkInPlaceFastMovementActions[] = {
MOVEMENT_ACTION_WALK_IN_PLACE_FAST_LEFT,
MOVEMENT_ACTION_WALK_IN_PLACE_FAST_RIGHT,
};
-const u8 gWalkInPlaceFastestMovementActions[] = {
- MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_DOWN,
- MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_DOWN,
- MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_UP,
- MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_LEFT,
- MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_RIGHT,
+const u8 gWalkInPlaceFasterMovementActions[] = {
+ MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_DOWN,
+ MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_DOWN,
+ MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_UP,
+ MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_LEFT,
+ MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_RIGHT,
};
const u8 gAcroWheelieFaceDirectionMovementActions[] = {
MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN,
@@ -4407,7 +4407,7 @@ movement_type_def(MovementType_RunInPlace, gMovementTypeFuncs_RunInPlace)
bool8 MovementType_RunInPlace_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ClearObjectEventMovement(objectEvent, sprite);
- ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkInPlaceFastestMovementAction(objectEvent->facingDirection));
+ ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkInPlaceFasterMovementAction(objectEvent->facingDirection));
sprite->sTypeFuncId = 1;
return TRUE;
}
@@ -4926,7 +4926,7 @@ dirn_to_anim(GetJumpSpecialMovementAction, gJumpSpecialMovementActions);
dirn_to_anim(GetWalkInPlaceSlowMovementAction, gWalkInPlaceSlowMovementActions);
dirn_to_anim(GetWalkInPlaceNormalMovementAction, gWalkInPlaceNormalMovementActions);
dirn_to_anim(GetWalkInPlaceFastMovementAction, gWalkInPlaceFastMovementActions);
-dirn_to_anim(GetWalkInPlaceFastestMovementAction, gWalkInPlaceFastestMovementActions);
+dirn_to_anim(GetWalkInPlaceFasterMovementAction, gWalkInPlaceFasterMovementActions);
bool8 ObjectEventFaceOppositeDirection(struct ObjectEvent *objectEvent, u8 direction)
{
@@ -5753,25 +5753,25 @@ bool8 MovementAction_WalkInPlaceFastRight_Step0(struct ObjectEvent *objectEvent,
return MovementAction_WalkInPlace_Step1(objectEvent, sprite);
}
-bool8 MovementAction_WalkInPlaceFastestDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
+bool8 MovementAction_WalkInPlaceFasterDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
InitMoveInPlace(objectEvent, sprite, DIR_SOUTH, GetMoveDirectionFasterAnimNum(DIR_SOUTH), 4);
return MovementAction_WalkInPlace_Step1(objectEvent, sprite);
}
-bool8 MovementAction_WalkInPlaceFastestUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
+bool8 MovementAction_WalkInPlaceFasterUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
InitMoveInPlace(objectEvent, sprite, DIR_NORTH, GetMoveDirectionFasterAnimNum(DIR_NORTH), 4);
return MovementAction_WalkInPlace_Step1(objectEvent, sprite);
}
-bool8 MovementAction_WalkInPlaceFastestLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
+bool8 MovementAction_WalkInPlaceFasterLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
InitMoveInPlace(objectEvent, sprite, DIR_WEST, GetMoveDirectionFasterAnimNum(DIR_WEST), 4);
return MovementAction_WalkInPlace_Step1(objectEvent, sprite);
}
-bool8 MovementAction_WalkInPlaceFastestRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
+bool8 MovementAction_WalkInPlaceFasterRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
InitMoveInPlace(objectEvent, sprite, DIR_EAST, GetMoveDirectionFasterAnimNum(DIR_EAST), 4);
return MovementAction_WalkInPlace_Step1(objectEvent, sprite);
diff --git a/src/evolution_scene.c b/src/evolution_scene.c
index 1d583343f..99ff26821 100644
--- a/src/evolution_scene.c
+++ b/src/evolution_scene.c
@@ -1094,7 +1094,7 @@ static void Task_TradeEvolutionScene(u8 taskId)
case T_EVOSTATE_INTRO_CRY:
if (!IsTextPrinterActive(0))
{
- PlayCry1(gTasks[taskId].tPreEvoSpecies, 0);
+ PlayCry_Normal(gTasks[taskId].tPreEvoSpecies, 0);
gTasks[taskId].tState++;
}
break;
diff --git a/src/field_effect.c b/src/field_effect.c
index 7e1ebdff4..3f0ba2455 100644
--- a/src/field_effect.c
+++ b/src/field_effect.c
@@ -2163,7 +2163,7 @@ static bool8 LavaridgeGym1FWarpEffect_AshPuff(struct Task *task, struct ObjectEv
} else
{
task->data[1]++;
- ObjectEventSetHeldMovement(objectEvent, GetWalkInPlaceFastestMovementAction(objectEvent->facingDirection));
+ ObjectEventSetHeldMovement(objectEvent, GetWalkInPlaceFasterMovementAction(objectEvent->facingDirection));
PlaySE(SE_LAVARIDGE_FALL_WARP);
}
}
@@ -2565,15 +2565,17 @@ bool8 FldEff_FieldMoveShowMon(void)
return FALSE;
}
+#define SHOW_MON_CRY_NO_DUCKING (1 << 31)
+
bool8 FldEff_FieldMoveShowMonInit(void)
{
struct Pokemon *pokemon;
- u32 flag = gFieldEffectArguments[0] & 0x80000000;
+ bool32 noDucking = gFieldEffectArguments[0] & SHOW_MON_CRY_NO_DUCKING;
pokemon = &gPlayerParty[(u8)gFieldEffectArguments[0]];
gFieldEffectArguments[0] = GetMonData(pokemon, MON_DATA_SPECIES);
gFieldEffectArguments[1] = GetMonData(pokemon, MON_DATA_OT_ID);
gFieldEffectArguments[2] = GetMonData(pokemon, MON_DATA_PERSONALITY);
- gFieldEffectArguments[0] |= flag;
+ gFieldEffectArguments[0] |= noDucking;
FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON);
FieldEffectActiveListRemove(FLDEFF_FIELD_MOVE_SHOW_MON_INIT);
return FALSE;
@@ -2913,17 +2915,17 @@ static bool8 SlideIndoorBannerOffscreen(struct Task *task)
static u8 InitFieldMoveMonSprite(u32 species, u32 otId, u32 personality)
{
- u16 v0;
+ bool16 noDucking;
u8 monSprite;
struct Sprite *sprite;
- v0 = (species & 0x80000000) >> 16;
- species &= 0x7fffffff;
+ noDucking = (species & SHOW_MON_CRY_NO_DUCKING) >> 16;
+ species &= ~SHOW_MON_CRY_NO_DUCKING;
monSprite = CreateMonSprite_FieldMove(species, otId, personality, 320, 80, 0);
sprite = &gSprites[monSprite];
sprite->callback = SpriteCallbackDummy;
sprite->oam.priority = 0;
sprite->sSpecies = species;
- sprite->data[6] = v0;
+ sprite->data[6] = noDucking;
return monSprite;
}
@@ -2935,13 +2937,9 @@ static void SpriteCB_FieldMoveMonSlideOnscreen(struct Sprite *sprite)
sprite->sOnscreenTimer = 30;
sprite->callback = SpriteCB_FieldMoveMonWaitAfterCry;
if (sprite->data[6])
- {
- PlayCry2(sprite->sSpecies, 0, 0x7d, 0xa);
- }
+ PlayCry_NormalNoDucking(sprite->sSpecies, 0, CRY_VOLUME_RS, CRY_PRIORITY_NORMAL);
else
- {
- PlayCry1(sprite->sSpecies, 0);
- }
+ PlayCry_Normal(sprite->sSpecies, 0);
}
}
@@ -3021,7 +3019,7 @@ static void SurfFieldEffect_ShowMon(struct Task *task)
objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
if (ObjectEventCheckHeldMovementStatus(objectEvent))
{
- gFieldEffectArguments[0] = task->tMonId | 0x80000000;
+ gFieldEffectArguments[0] = task->tMonId | SHOW_MON_CRY_NO_DUCKING;
FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT);
task->tState++;
}
diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c
index 00ac41e52..9e54823a6 100644
--- a/src/field_player_avatar.c
+++ b/src/field_player_avatar.c
@@ -903,7 +903,7 @@ static bool8 PlayerAnimIsMultiFrameStationary(void)
if (movementActionId <= MOVEMENT_ACTION_FACE_RIGHT
|| (movementActionId >= MOVEMENT_ACTION_DELAY_1 && movementActionId <= MOVEMENT_ACTION_DELAY_16)
- || (movementActionId >= MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_DOWN && movementActionId <= MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_RIGHT)
+ || (movementActionId >= MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_DOWN && movementActionId <= MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_RIGHT)
|| (movementActionId >= MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN && movementActionId <= MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_RIGHT)
|| (movementActionId >= MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_DOWN && movementActionId <= MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_RIGHT))
return TRUE;
@@ -1764,7 +1764,7 @@ static bool8 Fishing_InitDots(struct Task *task)
{
u32 randVal;
- sub_819786C(0, TRUE);
+ LoadMessageBoxAndFrameGfx(0, TRUE);
task->tStep++;
task->tFrameCounter = 0;
task->tNumDots = 0;
diff --git a/src/field_region_map.c b/src/field_region_map.c
index 9dcc65c9a..26ae736a6 100644
--- a/src/field_region_map.c
+++ b/src/field_region_map.c
@@ -213,6 +213,6 @@ static void PrintRegionMapSecName(void)
else
{
FillWindowPixelBuffer(0, PIXEL_FILL(1));
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
}
}
diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c
index e573fe5ab..c27ec6c4c 100644
--- a/src/field_screen_effect.c
+++ b/src/field_screen_effect.c
@@ -1145,7 +1145,7 @@ static void Task_OrbEffect(u8 taskId)
tState = 1;
break;
case 1:
- sub_8199DF0(0, PIXEL_FILL(1), 0, 1);
+ BgDmaFill(0, PIXEL_FILL(1), 0, 1);
LoadOrbEffectPalette(tBlueOrb);
StartUpdateOrbFlashEffect(tCenterX, tCenterY, 1, 160, 1, 2);
tState = 2;
@@ -1190,7 +1190,7 @@ static void Task_OrbEffect(u8 taskId)
if (UpdateOrbEffectBlend(tShakeDir) == TRUE)
{
tState = 5;
- sub_8199DF0(0, PIXEL_FILL(0), 0, 1);
+ BgDmaFill(0, PIXEL_FILL(0), 0, 1);
}
}
break;
diff --git a/src/field_specials.c b/src/field_specials.c
index c85940162..ef569ca00 100644
--- a/src/field_specials.c
+++ b/src/field_specials.c
@@ -1911,13 +1911,13 @@ void ShowDeptStoreElevatorFloorSelect(void)
SetStandardWindowBorderStyle(sTutorMoveAndElevatorWindowId, 0);
xPos = GetStringCenterAlignXOffset(FONT_NORMAL, gText_ElevatorNowOn, 64);
- AddTextPrinterParameterized(sTutorMoveAndElevatorWindowId, FONT_NORMAL, gText_ElevatorNowOn, xPos, 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(sTutorMoveAndElevatorWindowId, FONT_NORMAL, gText_ElevatorNowOn, xPos, 1, TEXT_SKIP_DRAW, NULL);
xPos = GetStringCenterAlignXOffset(FONT_NORMAL, gDeptStoreFloorNames[gSpecialVar_0x8005], 64);
- AddTextPrinterParameterized(sTutorMoveAndElevatorWindowId, FONT_NORMAL, gDeptStoreFloorNames[gSpecialVar_0x8005], xPos, 17, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(sTutorMoveAndElevatorWindowId, FONT_NORMAL, gDeptStoreFloorNames[gSpecialVar_0x8005], xPos, 17, TEXT_SKIP_DRAW, NULL);
PutWindowTilemap(sTutorMoveAndElevatorWindowId);
- CopyWindowToVram(sTutorMoveAndElevatorWindowId, 3);
+ CopyWindowToVram(sTutorMoveAndElevatorWindowId, COPYWIN_FULL);
}
void CloseDeptStoreElevatorWindow(void)
@@ -2723,7 +2723,7 @@ static void CloseScrollableMultichoice(u8 taskId)
Free(sScrollableMultichoice_ListMenuItem);
ClearStdWindowAndFrameToTransparent(task->tWindowId, 1);
FillWindowPixelBuffer(task->tWindowId, PIXEL_FILL(0));
- CopyWindowToVram(task->tWindowId, 2);
+ CopyWindowToVram(task->tWindowId, COPYWIN_GFX);
RemoveWindow(task->tWindowId);
DestroyTask(taskId);
EnableBothScriptContexts();
@@ -2976,7 +2976,7 @@ void ShowBattlePointsWindow(void)
sBattlePointsWindowId = AddWindow(&sBattlePoints_WindowTemplate);
SetStandardWindowBorderStyle(sBattlePointsWindowId, 0);
UpdateBattlePointsWindow();
- CopyWindowToVram(sBattlePointsWindowId, 2);
+ CopyWindowToVram(sBattlePointsWindowId, COPYWIN_GFX);
}
void CloseBattlePointsWindow(void)
@@ -2988,25 +2988,17 @@ void CloseBattlePointsWindow(void)
void TakeFrontierBattlePoints(void)
{
if (gSaveBlock2Ptr->frontier.battlePoints < gSpecialVar_0x8004)
- {
gSaveBlock2Ptr->frontier.battlePoints = 0;
- }
else
- {
gSaveBlock2Ptr->frontier.battlePoints -= gSpecialVar_0x8004;
- }
}
void GiveFrontierBattlePoints(void)
{
if (gSaveBlock2Ptr->frontier.battlePoints + gSpecialVar_0x8004 > MAX_BATTLE_FRONTIER_POINTS)
- {
gSaveBlock2Ptr->frontier.battlePoints = MAX_BATTLE_FRONTIER_POINTS;
- }
else
- {
gSaveBlock2Ptr->frontier.battlePoints = gSaveBlock2Ptr->frontier.battlePoints + gSpecialVar_0x8004;
- }
}
u16 GetFrontierBattlePoints(void)
@@ -3028,7 +3020,7 @@ void ShowFrontierExchangeCornerItemIconWindow(void)
sFrontierExchangeCorner_ItemIconWindowId = AddWindow(&sFrontierExchangeCorner_ItemIconWindowTemplate);
SetStandardWindowBorderStyle(sFrontierExchangeCorner_ItemIconWindowId, 0);
- CopyWindowToVram(sFrontierExchangeCorner_ItemIconWindowId, 2);
+ CopyWindowToVram(sFrontierExchangeCorner_ItemIconWindowId, COPYWIN_GFX);
}
void CloseFrontierExchangeCornerItemIconWindow(void)
@@ -3244,11 +3236,11 @@ void ScrollableMultichoice_RedrawPersistentMenu(void)
SetStandardWindowBorderStyle(task->tWindowId, 0);
for (i = 0; i < MAX_SCROLL_MULTI_ON_SCREEN; i++)
- AddTextPrinterParameterized5(task->tWindowId, FONT_NORMAL, sScrollableMultichoiceOptions[gSpecialVar_0x8004][scrollOffset + i], 10, i * 16, TEXT_SPEED_FF, NULL, 0, 0);
+ AddTextPrinterParameterized5(task->tWindowId, FONT_NORMAL, sScrollableMultichoiceOptions[gSpecialVar_0x8004][scrollOffset + i], 10, i * 16, TEXT_SKIP_DRAW, NULL, 0, 0);
- AddTextPrinterParameterized(task->tWindowId, FONT_NORMAL, gText_SelectorArrow, 0, selectedRow * 16, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(task->tWindowId, FONT_NORMAL, gText_SelectorArrow, 0, selectedRow * 16, TEXT_SKIP_DRAW, NULL);
PutWindowTilemap(task->tWindowId);
- CopyWindowToVram(task->tWindowId, 3);
+ CopyWindowToVram(task->tWindowId, COPYWIN_FULL);
}
}
@@ -3303,7 +3295,7 @@ void ScrollableMultichoice_ClosePersistentMenu(void)
ClearStdWindowAndFrameToTransparent(task->tWindowId, TRUE);
FillWindowPixelBuffer(task->tWindowId, PIXEL_FILL(0));
ClearWindowTilemap(task->tWindowId);
- CopyWindowToVram(task->tWindowId, 2);
+ CopyWindowToVram(task->tWindowId, COPYWIN_GFX);
RemoveWindow(task->tWindowId);
DestroyTask(taskId);
}
diff --git a/src/frontier_pass.c b/src/frontier_pass.c
index 699e19c7a..8ce1e14dc 100644
--- a/src/frontier_pass.c
+++ b/src/frontier_pass.c
@@ -561,14 +561,14 @@ static void ResetGpuRegsAndBgs(void)
SetGpuReg(REG_OFFSET_BG2CNT, 0);
SetGpuReg(REG_OFFSET_BG1CNT, 0);
SetGpuReg(REG_OFFSET_BG0CNT, 0);
- ChangeBgX(0, 0, 0);
- ChangeBgY(0, 0, 0);
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
- ChangeBgX(2, 0, 0);
- ChangeBgY(2, 0, 0);
- ChangeBgX(3, 0, 0);
- ChangeBgY(3, 0, 0);
+ ChangeBgX(0, 0, BG_COORD_SET);
+ ChangeBgY(0, 0, BG_COORD_SET);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
+ ChangeBgX(2, 0, BG_COORD_SET);
+ ChangeBgY(2, 0, BG_COORD_SET);
+ ChangeBgX(3, 0, BG_COORD_SET);
+ ChangeBgY(3, 0, BG_COORD_SET);
SetGpuReg(REG_OFFSET_BLDCNT, 0);
SetGpuReg(REG_OFFSET_BLDY, 0);
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
@@ -1166,7 +1166,7 @@ static void ShowAndPrintWindows(void)
PrintAreaDescription(sPassData->cursorArea);
for (i = 0; i < WINDOW_COUNT; i++)
- CopyWindowToVram(i, 3);
+ CopyWindowToVram(i, COPYWIN_FULL);
CopyBgTilemapBufferToVram(0);
}
@@ -1180,7 +1180,7 @@ static void PrintAreaDescription(u8 cursorArea)
else if (cursorArea != CURSOR_AREA_NOTHING)
AddTextPrinterParameterized3(WINDOW_DESCRIPTION, FONT_NORMAL, 2, 0, sTextColors[1], 0, sPassAreaDescriptions[cursorArea]);
- CopyWindowToVram(WINDOW_DESCRIPTION, 3);
+ CopyWindowToVram(WINDOW_DESCRIPTION, COPYWIN_FULL);
CopyBgTilemapBufferToVram(0);
}
@@ -1723,7 +1723,7 @@ static void PrintOnFrontierMap(void)
AddTextPrinterParameterized3(MAP_WINDOW_DESCRIPTION, FONT_NORMAL, 4, 0, sTextColors[0], 0, sMapLandmarks[sMapData->cursorPos].description);
for (i = 0; i < MAP_WINDOW_COUNT; i++)
- CopyWindowToVram(i, 3);
+ CopyWindowToVram(i, COPYWIN_FULL);
CopyBgTilemapBufferToVram(0);
}
@@ -1755,7 +1755,7 @@ static void HandleFrontierMapCursorMove(u8 direction)
AddTextPrinterParameterized3(MAP_WINDOW_DESCRIPTION, FONT_NORMAL, 4, 0, sTextColors[0], 0, sMapLandmarks[sMapData->cursorPos].description);
for (i = 0; i < MAP_WINDOW_COUNT; i++)
- CopyWindowToVram(i, 3);
+ CopyWindowToVram(i, COPYWIN_FULL);
CopyBgTilemapBufferToVram(0);
PlaySE(SE_DEX_SCROLL);
diff --git a/src/frontier_util.c b/src/frontier_util.c
index 25153b05c..03d7b0cb5 100644
--- a/src/frontier_util.c
+++ b/src/frontier_util.c
@@ -960,7 +960,7 @@ static void PrintAligned(const u8 *str, s32 y)
{
s32 x = GetStringCenterAlignXOffset(FONT_NORMAL, str, 224);
y = (y * 8) + 1;
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, str, x, y, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, str, x, y, TEXT_SKIP_DRAW, NULL);
}
static void PrintHyphens(s32 y)
@@ -973,18 +973,18 @@ static void PrintHyphens(s32 y)
text[i] = EOS;
y = (y * 8) + 1;
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, text, 4, y, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, text, 4, y, TEXT_SKIP_DRAW, NULL);
}
// Battle Tower records.
static void TowerPrintStreak(const u8 *str, u16 num, u8 x1, u8 x2, u8 y)
{
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, str, x1, y, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, str, x1, y, TEXT_SKIP_DRAW, NULL);
if (num > MAX_STREAK)
num = MAX_STREAK;
ConvertIntToDecimalStringN(gStringVar1, num, STR_CONV_MODE_RIGHT_ALIGN, 4);
StringExpandPlaceholders(gStringVar4, gText_WinStreak);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gStringVar4, x2, y, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gStringVar4, x2, y, TEXT_SKIP_DRAW, NULL);
}
static void TowerPrintRecordStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 x2, u8 y)
@@ -1056,15 +1056,15 @@ static void ShowTowerResultsWindow(u8 battleMode)
StringExpandPlaceholders(gStringVar4, gText_LinkMultiBattleRoomResults);
PrintAligned(gStringVar4, 2);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_Lv502, 16, 49, TEXT_SPEED_FF, NULL);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_OpenLv, 16, 97, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_Lv502, 16, 49, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_OpenLv, 16, 97, TEXT_SKIP_DRAW, NULL);
PrintHyphens(10);
TowerPrintPrevOrCurrentStreak(battleMode, FRONTIER_LVL_50, 72, 132, 49);
TowerPrintRecordStreak(battleMode, FRONTIER_LVL_50, 72, 132, 65);
TowerPrintPrevOrCurrentStreak(battleMode, FRONTIER_LVL_OPEN, 72, 132, 97);
TowerPrintRecordStreak(battleMode, FRONTIER_LVL_OPEN, 72, 132, 113);
PutWindowTilemap(gRecordsWindowId);
- CopyWindowToVram(gRecordsWindowId, 3);
+ CopyWindowToVram(gRecordsWindowId, COPYWIN_FULL);
}
// Battle Dome records.
@@ -1079,10 +1079,10 @@ static u16 DomeGetWinStreak(u8 battleMode, u8 lvlMode)
static void PrintTwoStrings(const u8 *str1, const u8 *str2, u16 num, u8 x1, u8 x2, u8 y)
{
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, str1, x1, y, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, str1, x1, y, TEXT_SKIP_DRAW, NULL);
ConvertIntToDecimalStringN(gStringVar1, num, STR_CONV_MODE_RIGHT_ALIGN, 4);
StringExpandPlaceholders(gStringVar4, str2);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gStringVar4, x2, y, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gStringVar4, x2, y, TEXT_SKIP_DRAW, NULL);
}
static void DomePrintPrevOrCurrentStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 x2, u8 y)
@@ -1123,8 +1123,8 @@ static void ShowDomeResultsWindow(u8 battleMode)
StringExpandPlaceholders(gStringVar4, gText_DoubleBattleTourneyResults);
PrintAligned(gStringVar4, 0);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_Lv502, 8, 33, TEXT_SPEED_FF, NULL);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_OpenLv, 8, 97, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_Lv502, 8, 33, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_OpenLv, 8, 97, TEXT_SKIP_DRAW, NULL);
PrintHyphens(10);
DomePrintPrevOrCurrentStreak(battleMode, FRONTIER_LVL_50, 64, 121, 33);
PrintTwoStrings(gText_Record, gText_ClearStreak, gSaveBlock2Ptr->frontier.domeRecordWinStreaks[battleMode][FRONTIER_LVL_50], 64, 121, 49);
@@ -1133,18 +1133,18 @@ static void ShowDomeResultsWindow(u8 battleMode)
PrintTwoStrings(gText_Record, gText_ClearStreak, gSaveBlock2Ptr->frontier.domeRecordWinStreaks[battleMode][FRONTIER_LVL_OPEN], 64, 121, 113);
PrintTwoStrings(gText_Total, gText_Championships, gSaveBlock2Ptr->frontier.domeTotalChampionships[battleMode][FRONTIER_LVL_OPEN], 64, 112, 129);
PutWindowTilemap(gRecordsWindowId);
- CopyWindowToVram(gRecordsWindowId, 3);
+ CopyWindowToVram(gRecordsWindowId, COPYWIN_FULL);
}
// Battle Palace records.
static void PalacePrintStreak(const u8 *str, u16 num, u8 x1, u8 x2, u8 y)
{
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, str, x1, y, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, str, x1, y, TEXT_SKIP_DRAW, NULL);
if (num > MAX_STREAK)
num = MAX_STREAK;
ConvertIntToDecimalStringN(gStringVar1, num, STR_CONV_MODE_RIGHT_ALIGN, 4);
StringExpandPlaceholders(gStringVar4, gText_WinStreak);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gStringVar4, x2, y, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gStringVar4, x2, y, TEXT_SKIP_DRAW, NULL);
}
static void PalacePrintRecordStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 x2, u8 y)
@@ -1199,15 +1199,15 @@ static void ShowPalaceResultsWindow(u8 battleMode)
StringExpandPlaceholders(gStringVar4, gText_DoubleBattleHallResults);
PrintAligned(gStringVar4, 2);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_Lv502, 16, 49, TEXT_SPEED_FF, NULL);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_OpenLv, 16, 97, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_Lv502, 16, 49, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_OpenLv, 16, 97, TEXT_SKIP_DRAW, NULL);
PrintHyphens(10);
PalacePrintPrevOrCurrentStreak(battleMode, FRONTIER_LVL_50, 72, 131, 49);
PalacePrintRecordStreak(battleMode, FRONTIER_LVL_50, 72, 131, 65);
PalacePrintPrevOrCurrentStreak(battleMode, FRONTIER_LVL_OPEN, 72, 131, 97);
PalacePrintRecordStreak(battleMode, FRONTIER_LVL_OPEN, 72, 131, 113);
PutWindowTilemap(gRecordsWindowId);
- CopyWindowToVram(gRecordsWindowId, 3);
+ CopyWindowToVram(gRecordsWindowId, COPYWIN_FULL);
}
// Battle Pike records.
@@ -1222,10 +1222,10 @@ static u16 PikeGetWinStreak(u8 lvlMode)
static void PikePrintCleared(const u8 *str1, const u8 *str2, u16 num, u8 x1, u8 x2, u8 y)
{
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, str1, x1, y, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, str1, x1, y, TEXT_SKIP_DRAW, NULL);
ConvertIntToDecimalStringN(gStringVar1, num, STR_CONV_MODE_RIGHT_ALIGN, 4);
StringExpandPlaceholders(gStringVar4, str2);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gStringVar4, x2, y, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gStringVar4, x2, y, TEXT_SKIP_DRAW, NULL);
}
static void PikePrintPrevOrCurrentStreak(u8 lvlMode, u8 x1, u8 x2, u8 y)
@@ -1251,8 +1251,8 @@ static void ShowPikeResultsWindow(void)
FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1));
StringExpandPlaceholders(gStringVar4, gText_BattleChoiceResults);
PrintAligned(gStringVar4, 0);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_Lv502, 8, 33, TEXT_SPEED_FF, NULL);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_OpenLv, 8, 97, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_Lv502, 8, 33, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_OpenLv, 8, 97, TEXT_SKIP_DRAW, NULL);
PrintHyphens(10);
PikePrintPrevOrCurrentStreak(FRONTIER_LVL_50, 64, 114, 33);
PikePrintCleared(gText_Record, gText_RoomsCleared, gSaveBlock2Ptr->frontier.pikeRecordStreaks[FRONTIER_LVL_50], 64, 114, 49);
@@ -1261,18 +1261,18 @@ static void ShowPikeResultsWindow(void)
PikePrintCleared(gText_Record, gText_RoomsCleared, gSaveBlock2Ptr->frontier.pikeRecordStreaks[FRONTIER_LVL_OPEN], 64, 114, 113);
PikePrintCleared(gText_Total, gText_TimesCleared, gSaveBlock2Ptr->frontier.pikeTotalStreaks[FRONTIER_LVL_OPEN], 64, 114, 129);
PutWindowTilemap(gRecordsWindowId);
- CopyWindowToVram(gRecordsWindowId, 3);
+ CopyWindowToVram(gRecordsWindowId, COPYWIN_FULL);
}
// Battle Arena records.
static void ArenaPrintStreak(const u8 *str, u16 num, u8 x1, u8 x2, u8 y)
{
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, str, x1, y, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, str, x1, y, TEXT_SKIP_DRAW, NULL);
if (num > MAX_STREAK)
num = MAX_STREAK;
ConvertIntToDecimalStringN(gStringVar1, num, STR_CONV_MODE_RIGHT_ALIGN, 4);
StringExpandPlaceholders(gStringVar4, gText_KOsInARow);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gStringVar4, x2, y, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gStringVar4, x2, y, TEXT_SKIP_DRAW, NULL);
}
static void ArenaPrintRecordStreak(u8 lvlMode, u8 x1, u8 x2, u8 y)
@@ -1314,29 +1314,29 @@ static void ShowArenaResultsWindow(void)
PrintHyphens(10);
StringExpandPlaceholders(gStringVar4, gText_SetKOTourneyResults);
PrintAligned(gStringVar4, 2);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_Lv502, 16, 49, TEXT_SPEED_FF, NULL);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_OpenLv, 16, 97, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_Lv502, 16, 49, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_OpenLv, 16, 97, TEXT_SKIP_DRAW, NULL);
ArenaPrintPrevOrCurrentStreak(FRONTIER_LVL_50, 72, 126, 49);
ArenaPrintRecordStreak(FRONTIER_LVL_50, 72, 126, 65);
ArenaPrintPrevOrCurrentStreak(FRONTIER_LVL_OPEN, 72, 126, 97);
ArenaPrintRecordStreak(FRONTIER_LVL_OPEN, 72, 126, 113);
PutWindowTilemap(gRecordsWindowId);
- CopyWindowToVram(gRecordsWindowId, 3);
+ CopyWindowToVram(gRecordsWindowId, COPYWIN_FULL);
}
// Battle Factory records.
static void FactoryPrintStreak(const u8 *str, u16 num1, u16 num2, u8 x1, u8 x2, u8 x3, u8 y)
{
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, str, x1, y, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, str, x1, y, TEXT_SKIP_DRAW, NULL);
if (num1 > MAX_STREAK)
num1 = MAX_STREAK;
ConvertIntToDecimalStringN(gStringVar1, num1, STR_CONV_MODE_RIGHT_ALIGN, 4);
StringExpandPlaceholders(gStringVar4, gText_WinStreak);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gStringVar4, x2, y, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gStringVar4, x2, y, TEXT_SKIP_DRAW, NULL);
ConvertIntToDecimalStringN(gStringVar1, num2, STR_CONV_MODE_RIGHT_ALIGN, 4);
StringExpandPlaceholders(gStringVar4, gText_TimesVar1);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gStringVar4, x3, y, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gStringVar4, x3, y, TEXT_SKIP_DRAW, NULL);
}
static void FactoryPrintRecordStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 x2, u8 x3, u8 y)
@@ -1403,27 +1403,27 @@ static void ShowFactoryResultsWindow(u8 battleMode)
StringExpandPlaceholders(gStringVar4, gText_BattleSwapDoubleResults);
PrintAligned(gStringVar4, 0);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_Lv502, 8, 33, TEXT_SPEED_FF, NULL);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_RentalSwap, 152, 33, TEXT_SPEED_FF, NULL);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_OpenLv, 8, 97, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_Lv502, 8, 33, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_RentalSwap, 152, 33, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_OpenLv, 8, 97, TEXT_SKIP_DRAW, NULL);
PrintHyphens(10);
FactoryPrintPrevOrCurrentStreak(battleMode, FRONTIER_LVL_50, 8, 64, 158, 49);
FactoryPrintRecordStreak(battleMode, FRONTIER_LVL_50, 8, 64, 158, 65);
FactoryPrintPrevOrCurrentStreak(battleMode, FRONTIER_LVL_OPEN, 8, 64, 158, 113);
FactoryPrintRecordStreak(battleMode, FRONTIER_LVL_OPEN, 8, 64, 158, 129);
PutWindowTilemap(gRecordsWindowId);
- CopyWindowToVram(gRecordsWindowId, 3);
+ CopyWindowToVram(gRecordsWindowId, COPYWIN_FULL);
}
// Battle Pyramid records.
static void PyramidPrintStreak(const u8 *str, u16 num, u8 x1, u8 x2, u8 y)
{
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, str, x1, y, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, str, x1, y, TEXT_SKIP_DRAW, NULL);
if (num > MAX_STREAK)
num = MAX_STREAK;
ConvertIntToDecimalStringN(gStringVar1, num, STR_CONV_MODE_RIGHT_ALIGN, 4);
StringExpandPlaceholders(gStringVar4, gText_FloorsCleared);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gStringVar4, x2, y, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gStringVar4, x2, y, TEXT_SKIP_DRAW, NULL);
}
static void PyramidPrintRecordStreak(u8 lvlMode, u8 x1, u8 x2, u8 y)
@@ -1464,15 +1464,15 @@ static void ShowPyramidResultsWindow(void)
FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1));
StringExpandPlaceholders(gStringVar4, gText_BattleQuestResults);
PrintAligned(gStringVar4, 2);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_Lv502, 8, 49, TEXT_SPEED_FF, NULL);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_OpenLv, 8, 97, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_Lv502, 8, 49, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_OpenLv, 8, 97, TEXT_SKIP_DRAW, NULL);
PrintHyphens(10);
PyramidPrintPrevOrCurrentStreak(FRONTIER_LVL_50, 64, 111, 49);
PyramidPrintRecordStreak(FRONTIER_LVL_50, 64, 111, 65);
PyramidPrintPrevOrCurrentStreak(FRONTIER_LVL_OPEN, 64, 111, 97);
PyramidPrintRecordStreak(FRONTIER_LVL_OPEN, 64, 111, 113);
PutWindowTilemap(gRecordsWindowId);
- CopyWindowToVram(gRecordsWindowId, 3);
+ CopyWindowToVram(gRecordsWindowId, COPYWIN_FULL);
}
// Link contest records. Why is it in this file?
@@ -1488,42 +1488,42 @@ static void ShowLinkContestResultsWindow(void)
StringExpandPlaceholders(gStringVar4, gText_LinkContestResults);
x = GetStringCenterAlignXOffset(FONT_NORMAL, gStringVar4, 208);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gStringVar4, x, 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gStringVar4, x, 1, TEXT_SKIP_DRAW, NULL);
str = gText_1st;
x = GetStringRightAlignXOffset(FONT_NORMAL, str, 38) + 50;
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, str, x, 25, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, str, x, 25, TEXT_SKIP_DRAW, NULL);
str = gText_2nd;
x = GetStringRightAlignXOffset(FONT_NORMAL, str, 38) + 88;
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, str, x, 25, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, str, x, 25, TEXT_SKIP_DRAW, NULL);
str = gText_3rd;
x = GetStringRightAlignXOffset(FONT_NORMAL, str, 38) + 126;
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, str, x, 25, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, str, x, 25, TEXT_SKIP_DRAW, NULL);
str = gText_4th;
x = GetStringRightAlignXOffset(FONT_NORMAL, str, 38) + 164;
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, str, x, 25, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, str, x, 25, TEXT_SKIP_DRAW, NULL);
x = 6;
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_Cool, x, 41, TEXT_SPEED_FF, NULL);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_Beauty, x, 57, TEXT_SPEED_FF, NULL);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_Cute, x, 73, TEXT_SPEED_FF, NULL);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_Smart, x, 89, TEXT_SPEED_FF, NULL);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_Tough, x, 105, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_Cool, x, 41, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_Beauty, x, 57, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_Cute, x, 73, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_Smart, x, 89, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_Tough, x, 105, TEXT_SKIP_DRAW, NULL);
for (i = 0; i < CONTEST_CATEGORIES_COUNT; i++)
{
for (j = 0; j < CONTESTANT_COUNT; j++)
{
ConvertIntToDecimalStringN(gStringVar4, gSaveBlock2Ptr->contestLinkResults[i][j], STR_CONV_MODE_RIGHT_ALIGN, 4);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gStringVar4, (j * 38) + 64, (i * 16) + 41, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gStringVar4, (j * 38) + 64, (i * 16) + 41, TEXT_SKIP_DRAW, NULL);
}
}
PutWindowTilemap(gRecordsWindowId);
- CopyWindowToVram(gRecordsWindowId, 3);
+ CopyWindowToVram(gRecordsWindowId, COPYWIN_FULL);
}
static void CheckPutFrontierTVShowOnAir(void)
@@ -2224,18 +2224,18 @@ static void Print1PRecord(s32 position, s32 x, s32 y, struct RankingHall1P *hall
u8 text[32];
u16 winStreak;
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_123Dot[position], x * 8, (8 * (y + 5 * position)) + 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_123Dot[position], x * 8, (8 * (y + 5 * position)) + 1, TEXT_SKIP_DRAW, NULL);
hallRecord->name[PLAYER_NAME_LENGTH] = EOS;
if (hallRecord->winStreak)
{
TVShowConvertInternationalString(text, hallRecord->name, hallRecord->language);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, text, (x + 2) * 8, (8 * (y + 5 * position)) + 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, text, (x + 2) * 8, (8 * (y + 5 * position)) + 1, TEXT_SKIP_DRAW, NULL);
winStreak = hallRecord->winStreak;
if (winStreak > MAX_STREAK)
winStreak = MAX_STREAK;
ConvertIntToDecimalStringN(gStringVar2, winStreak, STR_CONV_MODE_RIGHT_ALIGN, 4);
StringExpandPlaceholders(gStringVar4, sHallFacilityToRecordsText[hallFacilityId]);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gStringVar4, GetStringRightAlignXOffset(FONT_NORMAL, sHallFacilityToRecordsText[hallFacilityId], 0xC8), (8 * (y + 5 * position)) + 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gStringVar4, GetStringRightAlignXOffset(FONT_NORMAL, sHallFacilityToRecordsText[hallFacilityId], 0xC8), (8 * (y + 5 * position)) + 1, TEXT_SKIP_DRAW, NULL);
}
}
@@ -2244,25 +2244,25 @@ static void Print2PRecord(s32 position, s32 x, s32 y, struct RankingHall2P *hall
u8 text[32];
u16 winStreak;
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_123Dot[position], x * 8, (8 * (y + 5 * position)) + 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gText_123Dot[position], x * 8, (8 * (y + 5 * position)) + 1, TEXT_SKIP_DRAW, NULL);
if (hallRecord->winStreak)
{
hallRecord->name1[PLAYER_NAME_LENGTH] = EOS;
hallRecord->name2[PLAYER_NAME_LENGTH] = EOS;
TVShowConvertInternationalString(text, hallRecord->name1, hallRecord->language);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, text, (x + 2) * 8, (8 * (y + 5 * position - 1)) + 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, text, (x + 2) * 8, (8 * (y + 5 * position - 1)) + 1, TEXT_SKIP_DRAW, NULL);
if (IsStringJapanese(hallRecord->name2))
TVShowConvertInternationalString(text, hallRecord->name2, LANGUAGE_JAPANESE);
else
StringCopy(text, hallRecord->name2);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, text, (x + 4) * 8, (8 * (y + 5 * position + 1)) + 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, text, (x + 4) * 8, (8 * (y + 5 * position + 1)) + 1, TEXT_SKIP_DRAW, NULL);
winStreak = hallRecord->winStreak;
if (winStreak > MAX_STREAK)
winStreak = MAX_STREAK;
ConvertIntToDecimalStringN(gStringVar2, winStreak, STR_CONV_MODE_RIGHT_ALIGN, 4);
StringExpandPlaceholders(gStringVar4, sHallFacilityToRecordsText[RANKING_HALL_TOWER_LINK]);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gStringVar4, GetStringRightAlignXOffset(FONT_NORMAL, sHallFacilityToRecordsText[RANKING_HALL_TOWER_LINK], 0xC8), (8 * (y + 5 * position)) + 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gStringVar4, GetStringRightAlignXOffset(FONT_NORMAL, sHallFacilityToRecordsText[RANKING_HALL_TOWER_LINK], 0xC8), (8 * (y + 5 * position)) + 1, TEXT_SKIP_DRAW, NULL);
}
}
@@ -2343,9 +2343,9 @@ static void PrintHallRecords(s32 hallFacilityId, s32 lvlMode)
StringCopy(gStringVar1, sRecordsWindowChallengeTexts[hallFacilityId][0]);
StringExpandPlaceholders(gStringVar4, sRecordsWindowChallengeTexts[hallFacilityId][1]);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gStringVar4, 0, 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, gStringVar4, 0, 1, TEXT_SKIP_DRAW, NULL);
x = GetStringRightAlignXOffset(FONT_NORMAL, sLevelModeText[lvlMode], 0xD0);
- AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, sLevelModeText[lvlMode], x, 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, FONT_NORMAL, sLevelModeText[lvlMode], x, 1, TEXT_SKIP_DRAW, NULL);
if (hallFacilityId == RANKING_HALL_TOWER_LINK)
{
gSaveBlock2Ptr->frontier.opponentNames[0][PLAYER_NAME_LENGTH] = EOS;
@@ -2369,14 +2369,14 @@ void ShowRankingHallRecordsWindow(void)
FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1));
PrintHallRecords(gSpecialVar_0x8005, FRONTIER_LVL_50);
PutWindowTilemap(gRecordsWindowId);
- CopyWindowToVram(gRecordsWindowId, 3);
+ CopyWindowToVram(gRecordsWindowId, COPYWIN_FULL);
}
void ScrollRankingHallRecordsWindow(void)
{
FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1));
PrintHallRecords(gSpecialVar_0x8005, FRONTIER_LVL_OPEN);
- CopyWindowToVram(gRecordsWindowId, 2);
+ CopyWindowToVram(gRecordsWindowId, COPYWIN_GFX);
}
void ClearRankingHallRecords(void)
diff --git a/src/graphics.c b/src/graphics.c
index b4e1dfabe..73825aebf 100644
--- a/src/graphics.c
+++ b/src/graphics.c
@@ -1272,10 +1272,10 @@ const u32 gPokedexAreaScreenAreaUnknown_Gfx[] = INCBIN_U32("graphics/pokedex/are
// seems to be fire red leftovers, but the menu elements is reused in the item menu for TM descriptions.
-const u16 gFireRedMenuElements1_Pal[] = INCBIN_U16("graphics/interface_fr/menu1.gbapal");
-const u16 gFireRedMenuElements2_Pal[] = INCBIN_U16("graphics/interface_fr/menu2.gbapal");
-const u16 gFireRedMenuElements3_Pal[] = INCBIN_U16("graphics/interface_fr/menu3.gbapal");
-const u8 gFireRedMenuElements_Gfx[] = INCBIN_U8("graphics/interface_fr/menu.4bpp"); //the types are reused for item menu
+const u16 gMenuInfoElements1_Pal[] = INCBIN_U16("graphics/interface/menu_info1.gbapal");
+const u16 gMenuInfoElements2_Pal[] = INCBIN_U16("graphics/interface/menu_info2.gbapal");
+const u16 gMenuInfoElements3_Pal[] = INCBIN_U16("graphics/interface/menu_info3.gbapal");
+const u8 gMenuInfoElements_Gfx[] = INCBIN_U8("graphics/interface/menu_info.4bpp"); //the types are reused for item menu
const u8 gBagMenuHMIcon_Gfx[] = INCBIN_U8("graphics/interface/hm.4bpp");
diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c
index 8d69b03bc..d134f2265 100644
--- a/src/hall_of_fame.c
+++ b/src/hall_of_fame.c
@@ -343,7 +343,6 @@ static const struct HallofFameMon sDummyFameMon =
static const u8 sHallOfFame_SlotOrder[] = {
2, 1, 3,
6, 4, 5,
- 0, 0
};
// code
@@ -487,12 +486,12 @@ static void Task_Hof_InitTeamSaveData(u8 taskId)
if (!gHasHallOfFameRecords)
{
- memset(gDecompressionBuffer, 0, 0x2000);
+ memset(gDecompressionBuffer, 0, SECTOR_SIZE * NUM_HOF_SECTORS);
}
else
{
- if (Save_LoadGameData(SAVE_HALL_OF_FAME) != SAVE_STATUS_OK)
- memset(gDecompressionBuffer, 0, 0x2000);
+ if (LoadGameSave(SAVE_HALL_OF_FAME) != SAVE_STATUS_OK)
+ memset(gDecompressionBuffer, 0, SECTOR_SIZE * NUM_HOF_SECTORS);
}
for (i = 0; i < HALL_OF_FAME_MAX_TEAMS; i++, lastSavedTeam++)
@@ -515,7 +514,7 @@ static void Task_Hof_InitTeamSaveData(u8 taskId)
DrawDialogueFrame(0, 0);
AddTextPrinterParameterized2(0, FONT_NORMAL, gText_SavingDontTurnOffPower, 0, NULL, 2, 1, 3);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
gTasks[taskId].func = Task_Hof_TrySaveData;
}
@@ -676,7 +675,7 @@ static void Task_Hof_DoConfetti(u8 taskId)
}
BeginNormalPaletteFade(sHofFadePalettes, 0, 12, 12, RGB(16, 29, 24));
FillWindowPixelBuffer(0, PIXEL_FILL(0));
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
gTasks[taskId].tFrameCount = 7;
gTasks[taskId].func = Task_Hof_WaitToDisplayPlayer;
}
@@ -725,7 +724,7 @@ static void Task_Hof_WaitAndPrintPlayerInfo(u8 taskId)
HallOfFame_PrintPlayerInfo(1, 2);
DrawDialogueFrame(0, 0);
AddTextPrinterParameterized2(0, FONT_NORMAL, gText_LeagueChamp, 0, NULL, 2, 1, 3);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
gTasks[taskId].func = Task_Hof_ExitOnKeyPressed;
}
}
@@ -853,7 +852,7 @@ void CB2_DoHallOfFamePC(void)
gTasks[taskId].tMonSpriteId(i) = SPRITE_NONE;
}
- sHofMonPtr = AllocZeroed(0x2000);
+ sHofMonPtr = AllocZeroed(SECTOR_SIZE * NUM_HOF_SECTORS);
SetMainCallback2(CB2_HallOfFame);
}
break;
@@ -862,8 +861,8 @@ void CB2_DoHallOfFamePC(void)
static void Task_HofPC_CopySaveData(u8 taskId)
{
- sub_81980F0(0, 0x1E, 0, 0xC, 0x226);
- if (Save_LoadGameData(SAVE_HALL_OF_FAME) != SAVE_STATUS_OK)
+ HofPCTopBar_AddWindow(0, 30, 0, 12, 0x226);
+ if (LoadGameSave(SAVE_HALL_OF_FAME) != SAVE_STATUS_OK)
{
gTasks[taskId].func = Task_HofPC_PrintDataIsCorrupted;
}
@@ -872,7 +871,7 @@ static void Task_HofPC_CopySaveData(u8 taskId)
u16 i;
struct HallofFameTeam* savedTeams;
- CpuCopy16(gDecompressionBuffer, sHofMonPtr, 0x2000);
+ CpuCopy16(gDecompressionBuffer, sHofMonPtr, SECTOR_SIZE * NUM_HOF_SECTORS);
savedTeams = sHofMonPtr;
for (i = 0; i < HALL_OF_FAME_MAX_TEAMS; i++, savedTeams++)
{
@@ -950,9 +949,9 @@ static void Task_HofPC_DrawSpritesPrintText(u8 taskId)
StringExpandPlaceholders(gStringVar4, gText_HOFNumber);
if (gTasks[taskId].tCurrTeamNo <= 0)
- sub_8198204(gStringVar4, gText_PickCancel, 0, 0, TRUE);
+ HofPCTopBar_PrintPair(gStringVar4, gText_PickCancel, FALSE, 0, TRUE);
else
- sub_8198204(gStringVar4, gText_PickNextCancel, 0, 0, TRUE);
+ HofPCTopBar_PrintPair(gStringVar4, gText_PickNextCancel, FALSE, 0, TRUE);
gTasks[taskId].func = Task_HofPC_PrintMonInfo;
}
@@ -983,7 +982,7 @@ static void Task_HofPC_PrintMonInfo(u8 taskId)
if (currMon->species != SPECIES_EGG)
{
StopCryAndClearCrySongs();
- PlayCry1(currMon->species, 0);
+ PlayCry_Normal(currMon->species, 0);
}
HallOfFame_PrintMonInfo(currMon, 0, 14);
@@ -1073,7 +1072,7 @@ static void Task_HofPC_HandleExit(u8 taskId)
HideBg(0);
HideBg(1);
HideBg(3);
- sub_8198314();
+ HofPCTopBar_RemoveWindow();
FreeAllWindowBuffers();
UnsetBgTilemapBuffer(1);
UnsetBgTilemapBuffer(3);
@@ -1091,10 +1090,10 @@ static void Task_HofPC_HandleExit(u8 taskId)
static void Task_HofPC_PrintDataIsCorrupted(u8 taskId)
{
- sub_8198180(gText_AButtonExit, 8, TRUE);
+ HofPCTopBar_Print(gText_AButtonExit, 8, TRUE);
DrawDialogueFrame(0, 0);
AddTextPrinterParameterized2(0, FONT_NORMAL, gText_HOFCorrupted, 0, NULL, 2, 1, 3);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
gTasks[taskId].func = Task_HofPC_ExitOnButtonPress;
}
@@ -1115,7 +1114,7 @@ static void HallOfFame_PrintWelcomeText(u8 unusedPossiblyWindowId, u8 unused2)
FillWindowPixelBuffer(0, PIXEL_FILL(0));
PutWindowTilemap(0);
AddTextPrinterParameterized3(0, FONT_NORMAL, GetStringCenterAlignXOffset(FONT_NORMAL, gText_WelcomeToHOF, 0xD0), 1, sMonInfoTextColors, 0, gText_WelcomeToHOF);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
}
static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u8 unused2)
@@ -1150,7 +1149,7 @@ static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u
*(stringPtr)++ = CHAR_QUESTION_MARK;
}
stringPtr[0] = EOS;
- AddTextPrinterParameterized3(0, FONT_NORMAL, 0x10, 1, sMonInfoTextColors, -1, text);
+ AddTextPrinterParameterized3(0, FONT_NORMAL, 0x10, 1, sMonInfoTextColors, TEXT_SKIP_DRAW, text);
}
// nick, species names, gender and level
@@ -1159,13 +1158,13 @@ static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u
if (currMon->species == SPECIES_EGG)
{
width = GetStringCenterAlignXOffset(FONT_NORMAL, text, 0xD0);
- AddTextPrinterParameterized3(0, FONT_NORMAL, width, 1, sMonInfoTextColors, -1, text);
- CopyWindowToVram(0, 3);
+ AddTextPrinterParameterized3(0, FONT_NORMAL, width, 1, sMonInfoTextColors, TEXT_SKIP_DRAW, text);
+ CopyWindowToVram(0, COPYWIN_FULL);
}
else
{
width = GetStringRightAlignXOffset(FONT_NORMAL, text, 0x80);
- AddTextPrinterParameterized3(0, FONT_NORMAL, width, 1, sMonInfoTextColors, -1, text);
+ AddTextPrinterParameterized3(0, FONT_NORMAL, width, 1, sMonInfoTextColors, TEXT_SKIP_DRAW, text);
text[0] = CHAR_SLASH;
stringPtr = StringCopy(text + 1, gSpeciesNames[currMon->species]);
@@ -1186,17 +1185,17 @@ static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u
}
stringPtr[0] = EOS;
- AddTextPrinterParameterized3(0, FONT_NORMAL, 0x80, 1, sMonInfoTextColors, -1, text);
+ AddTextPrinterParameterized3(0, FONT_NORMAL, 0x80, 1, sMonInfoTextColors, TEXT_SKIP_DRAW, text);
stringPtr = StringCopy(text, gText_Level);
ConvertIntToDecimalStringN(stringPtr, currMon->lvl, STR_CONV_MODE_LEFT_ALIGN, 3);
- AddTextPrinterParameterized3(0, FONT_NORMAL, 0x24, 0x11, sMonInfoTextColors, -1, text);
+ AddTextPrinterParameterized3(0, FONT_NORMAL, 0x24, 0x11, sMonInfoTextColors, TEXT_SKIP_DRAW, text);
stringPtr = StringCopy(text, gText_IDNumber);
ConvertIntToDecimalStringN(stringPtr, (u16)(currMon->tid), STR_CONV_MODE_LEADING_ZEROS, 5);
- AddTextPrinterParameterized3(0, FONT_NORMAL, 0x68, 0x11, sMonInfoTextColors, -1, text);
+ AddTextPrinterParameterized3(0, FONT_NORMAL, 0x68, 0x11, sMonInfoTextColors, TEXT_SKIP_DRAW, text);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
}
}
@@ -1209,10 +1208,10 @@ static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2)
FillWindowPixelBuffer(1, PIXEL_FILL(1));
PutWindowTilemap(1);
DrawStdFrameWithCustomTileAndPalette(1, FALSE, 0x21D, 0xD);
- AddTextPrinterParameterized3(1, FONT_NORMAL, 0, 1, sPlayerInfoTextColors, -1, gText_Name);
+ AddTextPrinterParameterized3(1, FONT_NORMAL, 0, 1, sPlayerInfoTextColors, TEXT_SKIP_DRAW, gText_Name);
width = GetStringRightAlignXOffset(FONT_NORMAL, gSaveBlock2Ptr->playerName, 0x70);
- AddTextPrinterParameterized3(1, FONT_NORMAL, width, 1, sPlayerInfoTextColors, -1, gSaveBlock2Ptr->playerName);
+ AddTextPrinterParameterized3(1, FONT_NORMAL, width, 1, sPlayerInfoTextColors, TEXT_SKIP_DRAW, gSaveBlock2Ptr->playerName);
trainerId = (gSaveBlock2Ptr->playerTrainerId[0]) | (gSaveBlock2Ptr->playerTrainerId[1] << 8);
AddTextPrinterParameterized3(1, FONT_NORMAL, 0, 0x11, sPlayerInfoTextColors, 0, gText_IDNumber);
@@ -1223,9 +1222,9 @@ static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2)
text[4] = (trainerId % 10) / 1 + CHAR_0;
text[5] = EOS;
width = GetStringRightAlignXOffset(FONT_NORMAL, text, 0x70);
- AddTextPrinterParameterized3(1, FONT_NORMAL, width, 0x11, sPlayerInfoTextColors, -1, text);
+ AddTextPrinterParameterized3(1, FONT_NORMAL, width, 0x11, sPlayerInfoTextColors, TEXT_SKIP_DRAW, text);
- AddTextPrinterParameterized3(1, FONT_NORMAL, 0, 0x21, sPlayerInfoTextColors, -1, gText_Time);
+ AddTextPrinterParameterized3(1, FONT_NORMAL, 0, 0x21, sPlayerInfoTextColors, TEXT_SKIP_DRAW, gText_Time);
text[0] = (gSaveBlock2Ptr->playTimeHours / 100) + CHAR_0;
text[1] = (gSaveBlock2Ptr->playTimeHours % 100) / 10 + CHAR_0;
text[2] = (gSaveBlock2Ptr->playTimeHours % 10) + CHAR_0;
@@ -1241,9 +1240,9 @@ static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2)
text[6] = EOS;
width = GetStringRightAlignXOffset(FONT_NORMAL, text, 0x70);
- AddTextPrinterParameterized3(1, FONT_NORMAL, width, 0x21, sPlayerInfoTextColors, -1, text);
+ AddTextPrinterParameterized3(1, FONT_NORMAL, width, 0x21, sPlayerInfoTextColors, TEXT_SKIP_DRAW, text);
- CopyWindowToVram(1, 3);
+ CopyWindowToVram(1, COPYWIN_FULL);
}
static void ClearVramOamPltt_LoadHofPal(void)
@@ -1296,12 +1295,12 @@ static void InitHofBgs(void)
InitBgsFromTemplates(0, sHof_BgTemplates, ARRAY_COUNT(sHof_BgTemplates));
SetBgTilemapBuffer(1, sHofGfxPtr->tilemap1);
SetBgTilemapBuffer(3, sHofGfxPtr->tilemap2);
- ChangeBgX(0, 0, 0);
- ChangeBgY(0, 0, 0);
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
- ChangeBgX(3, 0, 0);
- ChangeBgY(3, 0, 0);
+ ChangeBgX(0, 0, BG_COORD_SET);
+ ChangeBgY(0, 0, BG_COORD_SET);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
+ ChangeBgX(3, 0, BG_COORD_SET);
+ ChangeBgY(3, 0, BG_COORD_SET);
}
static bool8 LoadHofBgs(void)
diff --git a/src/intro.c b/src/intro.c
index 5cf99c97e..418e143cf 100644
--- a/src/intro.c
+++ b/src/intro.c
@@ -1145,7 +1145,7 @@ void CB2_InitCopyrightScreenAfterBootup(void)
SetSaveBlocksPointers(GetSaveBlocksPointersBaseOffset());
ResetMenuAndMonGlobals();
Save_ResetSaveCounters();
- Save_LoadGameData(SAVE_NORMAL);
+ LoadGameSave(SAVE_NORMAL);
if (gSaveFileStatus == SAVE_STATUS_EMPTY || gSaveFileStatus == SAVE_STATUS_CORRUPT)
Sav2_ClearSetDefault();
SetPokemonCryStereo(gSaveBlock2Ptr->optionsSound);
@@ -1925,7 +1925,7 @@ static void Task_Scene3_Groudon(u8 taskId)
tScreenX = 80;
tScreenY = 41;
tDelay = 16;
- PlayCryInternal(SPECIES_GROUDON, 0, 100, 10, 0);
+ PlayCryInternal(SPECIES_GROUDON, 0, 100, CRY_PRIORITY_NORMAL, CRY_MODE_NORMAL);
tState++;
}
break;
@@ -2127,7 +2127,7 @@ static void Task_Scene3_Kyogre(u8 taskId)
{
tDelay = 1;
tState++;
- PlayCryInternal(SPECIES_KYOGRE, 0, 120, 10, 0);
+ PlayCryInternal(SPECIES_KYOGRE, 0, 120, CRY_PRIORITY_NORMAL, CRY_MODE_NORMAL);
}
}
break;
diff --git a/src/item_menu.c b/src/item_menu.c
index 470757f8d..56ef3cba3 100755
--- a/src/item_menu.c
+++ b/src/item_menu.c
@@ -974,7 +974,7 @@ static void BagMenu_ItemPrintCallback(u8 windowId, u32 itemIndex, u8 y)
ConvertIntToDecimalStringN(gStringVar1, itemQuantity, STR_CONV_MODE_RIGHT_ALIGN, BERRY_CAPACITY_DIGITS);
StringExpandPlaceholders(gStringVar4, gText_xVar1);
offset = GetStringRightAlignXOffset(FONT_NARROW, gStringVar4, 119);
- BagMenu_Print(windowId, FONT_NARROW, gStringVar4, offset, y, 0, 0, TEXT_SPEED_FF, COLORID_NORMAL);
+ BagMenu_Print(windowId, FONT_NARROW, gStringVar4, offset, y, 0, 0, TEXT_SKIP_DRAW, COLORID_NORMAL);
}
else if (gBagPosition.pocket != KEYITEMS_POCKET && ItemId_GetImportance(itemId) == FALSE)
{
@@ -982,7 +982,7 @@ static void BagMenu_ItemPrintCallback(u8 windowId, u32 itemIndex, u8 y)
ConvertIntToDecimalStringN(gStringVar1, itemQuantity, STR_CONV_MODE_RIGHT_ALIGN, BAG_ITEM_CAPACITY_DIGITS);
StringExpandPlaceholders(gStringVar4, gText_xVar1);
offset = GetStringRightAlignXOffset(FONT_NARROW, gStringVar4, 119);
- BagMenu_Print(windowId, FONT_NARROW, gStringVar4, offset, y, 0, 0, TEXT_SPEED_FF, COLORID_NORMAL);
+ BagMenu_Print(windowId, FONT_NARROW, gStringVar4, offset, y, 0, 0, TEXT_SKIP_DRAW, COLORID_NORMAL);
}
else
{
@@ -1204,7 +1204,7 @@ static void PrintItemSoldAmount(int windowId, int numSold, int moneyEarned)
u8 numDigits = (gBagPosition.pocket == BERRIES_POCKET) ? BERRY_CAPACITY_DIGITS : BAG_ITEM_CAPACITY_DIGITS;
ConvertIntToDecimalStringN(gStringVar1, numSold, STR_CONV_MODE_LEADING_ZEROS, numDigits);
StringExpandPlaceholders(gStringVar4, gText_xVar1);
- AddTextPrinterParameterized(windowId, FONT_NORMAL, gStringVar4, 0, 1, TEXT_SPEED_FF, 0);
+ AddTextPrinterParameterized(windowId, FONT_NORMAL, gStringVar4, 0, 1, TEXT_SKIP_DRAW, 0);
PrintMoneyAmount(windowId, 38, 1, moneyEarned, 0);
}
@@ -1667,8 +1667,8 @@ static void OpenContextMenu(u8 taskId)
static void PrintContextMenuItems(u8 windowId)
{
- AddItemMenuActionTextPrinters(windowId, FONT_NARROW, 8, 1, 0, 16, gBagMenu->contextMenuNumItems, sItemMenuActions, gBagMenu->contextMenuItemsPtr);
- InitMenuInUpperLeftCornerPlaySoundWhenAPressed(windowId, gBagMenu->contextMenuNumItems, 0);
+ PrintMenuActionTexts(windowId, FONT_NARROW, 8, 1, 0, 16, gBagMenu->contextMenuNumItems, sItemMenuActions, gBagMenu->contextMenuItemsPtr);
+ InitMenuInUpperLeftCornerNormal(windowId, gBagMenu->contextMenuNumItems, 0);
}
static void PrintContextMenuItemGrid(u8 windowId, u8 columns, u8 rows)
@@ -1720,7 +1720,7 @@ static void Task_ItemContext_MultipleRows(u8 taskId)
if (cursorPos > 0 && IsValidContextMenuPos(cursorPos - 2))
{
PlaySE(SE_SELECT);
- ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_UP);
+ ChangeMenuGridCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_UP);
}
}
else if (JOY_NEW(DPAD_DOWN))
@@ -1728,7 +1728,7 @@ static void Task_ItemContext_MultipleRows(u8 taskId)
if (cursorPos < (gBagMenu->contextMenuNumItems - 2) && IsValidContextMenuPos(cursorPos + 2))
{
PlaySE(SE_SELECT);
- ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_DOWN);
+ ChangeMenuGridCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_DOWN);
}
}
else if (JOY_NEW(DPAD_LEFT) || GetLRKeysPressed() == MENU_L_PRESSED)
@@ -1736,7 +1736,7 @@ static void Task_ItemContext_MultipleRows(u8 taskId)
if ((cursorPos & 1) && IsValidContextMenuPos(cursorPos - 1))
{
PlaySE(SE_SELECT);
- ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_LEFT, MENU_CURSOR_DELTA_NONE);
+ ChangeMenuGridCursorPosition(MENU_CURSOR_DELTA_LEFT, MENU_CURSOR_DELTA_NONE);
}
}
else if (JOY_NEW(DPAD_RIGHT) || GetLRKeysPressed() == MENU_R_PRESSED)
@@ -1744,7 +1744,7 @@ static void Task_ItemContext_MultipleRows(u8 taskId)
if (!(cursorPos & 1) && IsValidContextMenuPos(cursorPos + 1))
{
PlaySE(SE_SELECT);
- ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_RIGHT, MENU_CURSOR_DELTA_NONE);
+ ChangeMenuGridCursorPosition(MENU_CURSOR_DELTA_RIGHT, MENU_CURSOR_DELTA_NONE);
}
}
else if (JOY_NEW(A_BUTTON))
@@ -2039,7 +2039,7 @@ bool8 UseRegisteredKeyItemOnField(void)
if (InUnionRoom() == TRUE || InBattlePyramid() || InBattlePike() || InMultiPartnerRoom() == TRUE)
return FALSE;
HideMapNamePopUpWindow();
- ChangeBgY_ScreenOff(0, 0, 0);
+ ChangeBgY_ScreenOff(0, 0, BG_COORD_SET);
if (gSaveBlock1Ptr->registeredItem != ITEM_NONE)
{
if (CheckBagHasItem(gSaveBlock1Ptr->registeredItem, 1) == TRUE)
@@ -2417,11 +2417,11 @@ static void PrintPocketNames(const u8 *pocketName1, const u8 *pocketName2)
windowId = AddWindow(&window);
FillWindowPixelBuffer(windowId, PIXEL_FILL(0));
offset = GetStringCenterAlignXOffset(FONT_NORMAL, pocketName1, 0x40);
- BagMenu_Print(windowId, FONT_NORMAL, pocketName1, offset, 1, 0, 0, TEXT_SPEED_FF, COLORID_POCKET_NAME);
+ BagMenu_Print(windowId, FONT_NORMAL, pocketName1, offset, 1, 0, 0, TEXT_SKIP_DRAW, COLORID_POCKET_NAME);
if (pocketName2)
{
offset = GetStringCenterAlignXOffset(FONT_NORMAL, pocketName2, 0x40);
- BagMenu_Print(windowId, FONT_NORMAL, pocketName2, offset + 0x40, 1, 0, 0, TEXT_SPEED_FF, COLORID_POCKET_NAME);
+ BagMenu_Print(windowId, FONT_NORMAL, pocketName2, offset + 0x40, 1, 0, 0, TEXT_SKIP_DRAW, COLORID_POCKET_NAME);
}
CpuCopy32((u8*)GetWindowAttribute(windowId, WINDOW_TILE_DATA), gBagMenu->pocketNameBuffer, sizeof(gBagMenu->pocketNameBuffer));
RemoveWindow(windowId);
@@ -2439,7 +2439,7 @@ static void CopyPocketNameToWindow(u32 a)
CpuCopy32(tileDataBuffer[0][a], windowTileData, 0x100); // Top half of pocket name
b = a + 16;
CpuCopy32(tileDataBuffer[0][b], windowTileData + 0x100, 0x100); // Bottom half of pocket name
- CopyWindowToVram(WIN_POCKET_NAME, 2);
+ CopyWindowToVram(WIN_POCKET_NAME, COPYWIN_GFX);
}
static void LoadBagMenuTextWindows(void)
@@ -2544,7 +2544,7 @@ static void PrepareTMHMMoveWindow(void)
BlitMenuInfoIcon(WIN_TMHM_INFO_ICONS, MENU_INFO_ICON_POWER, 0, 12);
BlitMenuInfoIcon(WIN_TMHM_INFO_ICONS, MENU_INFO_ICON_ACCURACY, 0, 24);
BlitMenuInfoIcon(WIN_TMHM_INFO_ICONS, MENU_INFO_ICON_PP, 0, 36);
- CopyWindowToVram(WIN_TMHM_INFO_ICONS, 2);
+ CopyWindowToVram(WIN_TMHM_INFO_ICONS, COPYWIN_GFX);
}
static void PrintTMHMMoveData(u16 itemId)
@@ -2557,8 +2557,8 @@ static void PrintTMHMMoveData(u16 itemId)
if (itemId == ITEM_NONE)
{
for (i = 0; i < 4; i++)
- BagMenu_Print(WIN_TMHM_INFO, FONT_NORMAL, gText_ThreeDashes, 7, i * 12, 0, 0, TEXT_SPEED_FF, COLORID_TMHM_INFO);
- CopyWindowToVram(WIN_TMHM_INFO, 2);
+ BagMenu_Print(WIN_TMHM_INFO, FONT_NORMAL, gText_ThreeDashes, 7, i * 12, 0, 0, TEXT_SKIP_DRAW, COLORID_TMHM_INFO);
+ CopyWindowToVram(WIN_TMHM_INFO, COPYWIN_GFX);
}
else
{
@@ -2575,7 +2575,7 @@ static void PrintTMHMMoveData(u16 itemId)
ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[moveId].power, STR_CONV_MODE_RIGHT_ALIGN, 3);
text = gStringVar1;
}
- BagMenu_Print(WIN_TMHM_INFO, FONT_NORMAL, text, 7, 12, 0, 0, TEXT_SPEED_FF, COLORID_TMHM_INFO);
+ BagMenu_Print(WIN_TMHM_INFO, FONT_NORMAL, text, 7, 12, 0, 0, TEXT_SKIP_DRAW, COLORID_TMHM_INFO);
// Print TMHM accuracy
if (gBattleMoves[moveId].accuracy == 0)
@@ -2587,12 +2587,12 @@ static void PrintTMHMMoveData(u16 itemId)
ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[moveId].accuracy, STR_CONV_MODE_RIGHT_ALIGN, 3);
text = gStringVar1;
}
- BagMenu_Print(WIN_TMHM_INFO, FONT_NORMAL, text, 7, 24, 0, 0, TEXT_SPEED_FF, COLORID_TMHM_INFO);
+ BagMenu_Print(WIN_TMHM_INFO, FONT_NORMAL, text, 7, 24, 0, 0, TEXT_SKIP_DRAW, COLORID_TMHM_INFO);
// Print TMHM pp
ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[moveId].pp, STR_CONV_MODE_RIGHT_ALIGN, 3);
- BagMenu_Print(WIN_TMHM_INFO, FONT_NORMAL, gStringVar1, 7, 36, 0, 0, TEXT_SPEED_FF, COLORID_TMHM_INFO);
+ BagMenu_Print(WIN_TMHM_INFO, FONT_NORMAL, gStringVar1, 7, 36, 0, 0, TEXT_SKIP_DRAW, COLORID_TMHM_INFO);
- CopyWindowToVram(WIN_TMHM_INFO, 2);
+ CopyWindowToVram(WIN_TMHM_INFO, COPYWIN_GFX);
}
}
diff --git a/src/link.c b/src/link.c
index 5aee79d9b..01cc06e7c 100644
--- a/src/link.c
+++ b/src/link.c
@@ -1648,8 +1648,8 @@ static void ErrorMsg_MoveCloserToPartner(void)
AddTextPrinterParameterized3(2, FONT_SHORT_COPY_1, 2, 1, sTextColors, 0, gText_MoveCloserToLinkPartner);
PutWindowTilemap(0);
PutWindowTilemap(2);
- CopyWindowToVram(0, 0);
- CopyWindowToVram(2, 3);
+ CopyWindowToVram(0, COPYWIN_NONE); // Does nothing
+ CopyWindowToVram(2, COPYWIN_FULL);
}
static void ErrorMsg_CheckConnections(void)
@@ -1660,8 +1660,8 @@ static void ErrorMsg_CheckConnections(void)
AddTextPrinterParameterized3(1, FONT_SHORT_COPY_1, 2, 0, sTextColors, 0, gText_CommErrorCheckConnections);
PutWindowTilemap(1);
PutWindowTilemap(2);
- CopyWindowToVram(1, 0);
- CopyWindowToVram(2, 3);
+ CopyWindowToVram(1, COPYWIN_NONE); // Does nothing
+ CopyWindowToVram(2, COPYWIN_FULL);
}
static void CB2_PrintErrorMessage(void)
diff --git a/src/list_menu.c b/src/list_menu.c
index 84b917eec..ccb183891 100644
--- a/src/list_menu.c
+++ b/src/list_menu.c
@@ -330,7 +330,7 @@ s32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const str
gMultiuseListMenuTemplate = *listMenuTemplate;
gMultiuseListMenuTemplate.windowId = sMysteryGiftLinkMenu.windowId;
sMysteryGiftLinkMenu.listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0);
- CopyWindowToVram(sMysteryGiftLinkMenu.windowId, 1);
+ CopyWindowToVram(sMysteryGiftLinkMenu.windowId, COPYWIN_MAP);
sMysteryGiftLinkMenu.state = 1;
break;
case 1:
@@ -364,7 +364,7 @@ s32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const str
}
}
- CopyWindowToVram(sMysteryGiftLinkMenu.windowId, 1);
+ CopyWindowToVram(sMysteryGiftLinkMenu.windowId, COPYWIN_MAP);
}
break;
case 2:
@@ -381,7 +381,7 @@ u8 ListMenuInit(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16
{
u8 taskId = ListMenuInitInternal(listMenuTemplate, scrollOffset, selectedRow);
PutWindowTilemap(listMenuTemplate->windowId);
- CopyWindowToVram(listMenuTemplate->windowId, 2);
+ CopyWindowToVram(listMenuTemplate->windowId, COPYWIN_GFX);
return taskId;
}
@@ -401,7 +401,7 @@ u8 ListMenuInitInRect(struct ListMenuTemplate *listMenuTemplate, struct ListMenu
rect[i].height,
rect[i].palNum);
}
- CopyWindowToVram(listMenuTemplate->windowId, 2);
+ CopyWindowToVram(listMenuTemplate->windowId, COPYWIN_GFX);
return taskId;
}
@@ -489,7 +489,7 @@ void RedrawListMenu(u8 listTaskId)
FillWindowPixelBuffer(list->template.windowId, PIXEL_FILL(list->template.fillValue));
ListMenuPrintEntries(list, list->scrollOffset, 0, list->template.maxShowed);
ListMenuDrawCursor(list);
- CopyWindowToVram(list->template.windowId, 2);
+ CopyWindowToVram(list->template.windowId, COPYWIN_GFX);
}
// unused
@@ -604,7 +604,7 @@ static void ListMenuPrint(struct ListMenu *list, const u8 *str, u8 x, u8 y)
gListMenuOverride.fontId,
x, y,
gListMenuOverride.lettersSpacing,
- 0, colors, TEXT_SPEED_FF, str);
+ 0, colors, TEXT_SKIP_DRAW, str);
gListMenuOverride.enabled = FALSE;
}
@@ -617,7 +617,7 @@ static void ListMenuPrint(struct ListMenu *list, const u8 *str, u8 x, u8 y)
list->template.fontId,
x, y,
list->template.lettersSpacing,
- 0, colors, TEXT_SPEED_FF, str);
+ 0, colors, TEXT_SKIP_DRAW, str);
}
}
@@ -862,7 +862,7 @@ static bool8 ListMenuChangeSelection(struct ListMenu *list, bool8 updateCursorAn
ListMenuErasePrintedCursor(list, oldSelectedRow);
ListMenuDrawCursor(list);
ListMenuCallSelectionChangedCallback(list, FALSE);
- CopyWindowToVram(list->template.windowId, 2);
+ CopyWindowToVram(list->template.windowId, COPYWIN_GFX);
break;
case 2:
case 3:
@@ -870,7 +870,7 @@ static bool8 ListMenuChangeSelection(struct ListMenu *list, bool8 updateCursorAn
ListMenuScroll(list, cursorCount, movingDown);
ListMenuDrawCursor(list);
ListMenuCallSelectionChangedCallback(list, FALSE);
- CopyWindowToVram(list->template.windowId, 2);
+ CopyWindowToVram(list->template.windowId, COPYWIN_GFX);
break;
}
}
diff --git a/src/load_save.c b/src/load_save.c
index 1ba5a1600..f2b12acf0 100644
--- a/src/load_save.c
+++ b/src/load_save.c
@@ -29,14 +29,9 @@ struct LoadedSaveData
};
// EWRAM DATA
-EWRAM_DATA struct SaveBlock2 gSaveblock2 = {0};
-EWRAM_DATA u8 gSaveblock2_DMA[SAVEBLOCK_MOVE_RANGE] = {0};
-
-EWRAM_DATA struct SaveBlock1 gSaveblock1 = {0};
-EWRAM_DATA u8 gSaveblock1_DMA[SAVEBLOCK_MOVE_RANGE] = {0};
-
-EWRAM_DATA struct PokemonStorage gPokemonStorage = {0};
-EWRAM_DATA u8 gSaveblock3_DMA[SAVEBLOCK_MOVE_RANGE] = {0};
+EWRAM_DATA struct SaveBlock2DMA gSaveblock2 = {0};
+EWRAM_DATA struct SaveBlock1DMA gSaveblock1 = {0};
+EWRAM_DATA struct PokemonStorageDMA gPokemonStorage = {0};
EWRAM_DATA struct LoadedSaveData gLoadedSaveData = {0};
EWRAM_DATA u32 gLastEncryptionKey = 0;
@@ -63,12 +58,12 @@ void CheckForFlashMemory(void)
void ClearSav2(void)
{
- CpuFill16(0, &gSaveblock2, sizeof(struct SaveBlock2) + sizeof(gSaveblock2_DMA));
+ CpuFill16(0, &gSaveblock2, sizeof(struct SaveBlock2DMA));
}
void ClearSav1(void)
{
- CpuFill16(0, &gSaveblock1, sizeof(struct SaveBlock1) + sizeof(gSaveblock1_DMA));
+ CpuFill16(0, &gSaveblock1, sizeof(struct SaveBlock1DMA));
}
// Offset is the sum of the trainer id bytes
@@ -198,13 +193,13 @@ void LoadObjectEvents(void)
gObjectEvents[i] = gSaveBlock1Ptr->objectEvents[i];
}
-void SaveSerializedGame(void)
+void CopyPartyAndObjectsToSave(void)
{
SavePlayerParty();
SaveObjectEvents();
}
-void LoadSerializedGame(void)
+void CopyPartyAndObjectsFromSave(void)
{
LoadPlayerParty();
LoadObjectEvents();
diff --git a/src/m4a_1.s b/src/m4a_1.s
index 62b913c86..f71a5546e 100644
--- a/src/m4a_1.s
+++ b/src/m4a_1.s
@@ -302,7 +302,7 @@ _081DD044:
ldrb r0, [r4, o_SoundChannel_type]
tst r0, TONEDATA_TYPE_CMP | TONEDATA_TYPE_REV
beq _081DD068
- bl sub_82DF49C
+ bl SoundMainRAM_Unk1
b _081DD228
_081DD068:
mov r10, r10, lsl 16
@@ -465,8 +465,9 @@ _081DD25E:
.pool
thumb_func_end SoundMainRAM
- arm_func_start sub_82DF49C
-sub_82DF49C:
+@ Not present in GBA SDK 3.0
+ arm_func_start SoundMainRAM_Unk1
+SoundMainRAM_Unk1:
ldr r6, [r4, o_SoundChannel_wav]
ldrb r0, [r4, o_SoundChannel_statusFlags]
tst r0, SOUND_CHANNEL_SF_SPECIAL
@@ -505,10 +506,10 @@ _081DD2B4:
ldrb r0, [r4, o_SoundChannel_type]
tst r0, TONEDATA_TYPE_REV
bne _081DD3C0
- bl sub_82DF758
+ bl SoundMainRAM_Unk2
mov r0, r1
add r3, r3, 0x1
- bl sub_82DF758
+ bl SoundMainRAM_Unk2
sub r1, r1, r0
_081DD308:
ldr r6, [r5]
@@ -534,11 +535,11 @@ _081DD310:
b _081DD364
_081DD358:
add r3, r3, lr
- bl sub_82DF758
+ bl SoundMainRAM_Unk2
mov r0, r1
_081DD364:
add r3, r3, 0x1
- bl sub_82DF758
+ bl SoundMainRAM_Unk2
sub r1, r1, r0
_081DD370:
adds r5, r5, 0x40000000
@@ -565,10 +566,10 @@ _081DD3B0:
b _081DD3B0
_081DD3C0:
sub r3, r3, 0x1
- bl sub_82DF758
+ bl SoundMainRAM_Unk2
mov r0, r1
sub r3, r3, 0x1
- bl sub_82DF758
+ bl SoundMainRAM_Unk2
sub r1, r1, r0
_081DD3D8:
ldr r6, [r5]
@@ -594,11 +595,11 @@ _081DD3E0:
b _081DD434
_081DD428:
sub r3, r3, lr
- bl sub_82DF758
+ bl SoundMainRAM_Unk2
mov r0, r1
_081DD434:
sub r3, r3, 0x1
- bl sub_82DF758
+ bl SoundMainRAM_Unk2
sub r1, r1, r0
_081DD440:
adds r5, r5, 0x40000000
@@ -663,10 +664,11 @@ _081DD4F4:
str r7, [r5, 0x630]
str r6, [r5], 0x4
pop {r8,r12,pc}
- arm_func_end sub_82DF49C
+ arm_func_end SoundMainRAM_Unk1
- arm_func_start sub_82DF758
-sub_82DF758:
+@ Not present in GBA SDK 3.0
+ arm_func_start SoundMainRAM_Unk2
+SoundMainRAM_Unk2:
push {r0,r2,r5-r7,lr}
mov r0, r3, lsr 6
ldr r1, [r4, o_SoundChannel_xpi]
@@ -704,7 +706,7 @@ _081DD594:
ldrsb r1, [r5, r0]
pop {r0,r2,r5-r7,pc}
.pool
- arm_func_end sub_82DF758
+ arm_func_end SoundMainRAM_Unk2
thumb_func_start SoundMainBTM
SoundMainBTM:
diff --git a/src/mail.c b/src/mail.c
index f1350c4e1..651fcbb84 100644
--- a/src/mail.c
+++ b/src/mail.c
@@ -698,8 +698,8 @@ static void PrintMailText(void)
box_x = GetStringCenterAlignXOffset(FONT_NORMAL, signature, sMailRead->signatureWidth) + 104;
box_y = sMailRead->layout->signatureYPos + 88;
AddTextPrinterParameterized3(0, FONT_NORMAL, box_x, box_y, sTextColors, 0, signature);
- CopyWindowToVram(0, 3);
- CopyWindowToVram(1, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
+ CopyWindowToVram(1, COPYWIN_FULL);
}
static void VBlankCB_MailRead(void)
diff --git a/src/main.c b/src/main.c
index 215f85c46..2b96a8698 100644
--- a/src/main.c
+++ b/src/main.c
@@ -172,8 +172,8 @@ static void InitMainCallbacks(void)
gMain.vblankCounter2 = 0;
gMain.callback1 = NULL;
SetMainCallback2(CB2_InitCopyrightScreenAfterBootup);
- gSaveBlock2Ptr = &gSaveblock2;
- gPokemonStoragePtr = &gPokemonStorage;
+ gSaveBlock2Ptr = &gSaveblock2.block;
+ gPokemonStoragePtr = &gPokemonStorage.block;
}
static void CallCallbacks(void)
diff --git a/src/main_menu.c b/src/main_menu.c
index 637719dea..601e66cb9 100644
--- a/src/main_menu.c
+++ b/src/main_menu.c
@@ -583,10 +583,10 @@ static u32 InitMainMenu(bool8 returningFromOptionsMenu)
BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_WHITEALPHA); // fade to white
ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, sMainMenuBgTemplates, ARRAY_COUNT(sMainMenuBgTemplates));
- ChangeBgX(0, 0, 0);
- ChangeBgY(0, 0, 0);
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
+ ChangeBgX(0, 0, BG_COORD_SET);
+ ChangeBgY(0, 0, BG_COORD_SET);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
InitWindows(sWindowTemplates_MainMenu);
DeactivateAllTextPrinters();
LoadMainMenuWindowFrameTiles(0, MAIN_MENU_BORDER_TILE);
@@ -780,12 +780,12 @@ static void Task_DisplayMainMenu(u8 taskId)
default:
FillWindowPixelBuffer(0, PIXEL_FILL(0xA));
FillWindowPixelBuffer(1, PIXEL_FILL(0xA));
- AddTextPrinterParameterized3(0, FONT_NORMAL, 0, 1, sTextColor_Headers, -1, gText_MainMenuNewGame);
- AddTextPrinterParameterized3(1, FONT_NORMAL, 0, 1, sTextColor_Headers, -1, gText_MainMenuOption);
+ AddTextPrinterParameterized3(0, FONT_NORMAL, 0, 1, sTextColor_Headers, TEXT_SKIP_DRAW, gText_MainMenuNewGame);
+ AddTextPrinterParameterized3(1, FONT_NORMAL, 0, 1, sTextColor_Headers, TEXT_SKIP_DRAW, gText_MainMenuOption);
PutWindowTilemap(0);
PutWindowTilemap(1);
- CopyWindowToVram(0, 2);
- CopyWindowToVram(1, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
+ CopyWindowToVram(1, COPYWIN_GFX);
DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[0], MAIN_MENU_BORDER_TILE);
DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[1], MAIN_MENU_BORDER_TILE);
break;
@@ -793,16 +793,16 @@ static void Task_DisplayMainMenu(u8 taskId)
FillWindowPixelBuffer(2, PIXEL_FILL(0xA));
FillWindowPixelBuffer(3, PIXEL_FILL(0xA));
FillWindowPixelBuffer(4, PIXEL_FILL(0xA));
- AddTextPrinterParameterized3(2, FONT_NORMAL, 0, 1, sTextColor_Headers, -1, gText_MainMenuContinue);
- AddTextPrinterParameterized3(3, FONT_NORMAL, 0, 1, sTextColor_Headers, -1, gText_MainMenuNewGame);
- AddTextPrinterParameterized3(4, FONT_NORMAL, 0, 1, sTextColor_Headers, -1, gText_MainMenuOption);
+ AddTextPrinterParameterized3(2, FONT_NORMAL, 0, 1, sTextColor_Headers, TEXT_SKIP_DRAW, gText_MainMenuContinue);
+ AddTextPrinterParameterized3(3, FONT_NORMAL, 0, 1, sTextColor_Headers, TEXT_SKIP_DRAW, gText_MainMenuNewGame);
+ AddTextPrinterParameterized3(4, FONT_NORMAL, 0, 1, sTextColor_Headers, TEXT_SKIP_DRAW, gText_MainMenuOption);
MainMenu_FormatSavegameText();
PutWindowTilemap(2);
PutWindowTilemap(3);
PutWindowTilemap(4);
- CopyWindowToVram(2, 2);
- CopyWindowToVram(3, 2);
- CopyWindowToVram(4, 2);
+ CopyWindowToVram(2, COPYWIN_GFX);
+ CopyWindowToVram(3, COPYWIN_GFX);
+ CopyWindowToVram(4, COPYWIN_GFX);
DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[2], MAIN_MENU_BORDER_TILE);
DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[3], MAIN_MENU_BORDER_TILE);
DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[4], MAIN_MENU_BORDER_TILE);
@@ -812,19 +812,19 @@ static void Task_DisplayMainMenu(u8 taskId)
FillWindowPixelBuffer(3, PIXEL_FILL(0xA));
FillWindowPixelBuffer(4, PIXEL_FILL(0xA));
FillWindowPixelBuffer(5, PIXEL_FILL(0xA));
- AddTextPrinterParameterized3(2, FONT_NORMAL, 0, 1, sTextColor_Headers, -1, gText_MainMenuContinue);
- AddTextPrinterParameterized3(3, FONT_NORMAL, 0, 1, sTextColor_Headers, -1, gText_MainMenuNewGame);
- AddTextPrinterParameterized3(4, FONT_NORMAL, 0, 1, sTextColor_Headers, -1, gText_MainMenuMysteryGift);
- AddTextPrinterParameterized3(5, FONT_NORMAL, 0, 1, sTextColor_Headers, -1, gText_MainMenuOption);
+ AddTextPrinterParameterized3(2, FONT_NORMAL, 0, 1, sTextColor_Headers, TEXT_SKIP_DRAW, gText_MainMenuContinue);
+ AddTextPrinterParameterized3(3, FONT_NORMAL, 0, 1, sTextColor_Headers, TEXT_SKIP_DRAW, gText_MainMenuNewGame);
+ AddTextPrinterParameterized3(4, FONT_NORMAL, 0, 1, sTextColor_Headers, TEXT_SKIP_DRAW, gText_MainMenuMysteryGift);
+ AddTextPrinterParameterized3(5, FONT_NORMAL, 0, 1, sTextColor_Headers, TEXT_SKIP_DRAW, gText_MainMenuOption);
MainMenu_FormatSavegameText();
PutWindowTilemap(2);
PutWindowTilemap(3);
PutWindowTilemap(4);
PutWindowTilemap(5);
- CopyWindowToVram(2, 2);
- CopyWindowToVram(3, 2);
- CopyWindowToVram(4, 2);
- CopyWindowToVram(5, 2);
+ CopyWindowToVram(2, COPYWIN_GFX);
+ CopyWindowToVram(3, COPYWIN_GFX);
+ CopyWindowToVram(4, COPYWIN_GFX);
+ CopyWindowToVram(5, COPYWIN_GFX);
DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[2], MAIN_MENU_BORDER_TILE);
DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[3], MAIN_MENU_BORDER_TILE);
DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[4], MAIN_MENU_BORDER_TILE);
@@ -836,22 +836,22 @@ static void Task_DisplayMainMenu(u8 taskId)
FillWindowPixelBuffer(4, PIXEL_FILL(0xA));
FillWindowPixelBuffer(5, PIXEL_FILL(0xA));
FillWindowPixelBuffer(6, PIXEL_FILL(0xA));
- AddTextPrinterParameterized3(2, FONT_NORMAL, 0, 1, sTextColor_Headers, -1, gText_MainMenuContinue);
- AddTextPrinterParameterized3(3, FONT_NORMAL, 0, 1, sTextColor_Headers, -1, gText_MainMenuNewGame);
- AddTextPrinterParameterized3(4, FONT_NORMAL, 0, 1, sTextColor_Headers, -1, gText_MainMenuMysteryGift2);
- AddTextPrinterParameterized3(5, FONT_NORMAL, 0, 1, sTextColor_Headers, -1, gText_MainMenuMysteryEvents);
- AddTextPrinterParameterized3(6, FONT_NORMAL, 0, 1, sTextColor_Headers, -1, gText_MainMenuOption);
+ AddTextPrinterParameterized3(2, FONT_NORMAL, 0, 1, sTextColor_Headers, TEXT_SKIP_DRAW, gText_MainMenuContinue);
+ AddTextPrinterParameterized3(3, FONT_NORMAL, 0, 1, sTextColor_Headers, TEXT_SKIP_DRAW, gText_MainMenuNewGame);
+ AddTextPrinterParameterized3(4, FONT_NORMAL, 0, 1, sTextColor_Headers, TEXT_SKIP_DRAW, gText_MainMenuMysteryGift2);
+ AddTextPrinterParameterized3(5, FONT_NORMAL, 0, 1, sTextColor_Headers, TEXT_SKIP_DRAW, gText_MainMenuMysteryEvents);
+ AddTextPrinterParameterized3(6, FONT_NORMAL, 0, 1, sTextColor_Headers, TEXT_SKIP_DRAW, gText_MainMenuOption);
MainMenu_FormatSavegameText();
PutWindowTilemap(2);
PutWindowTilemap(3);
PutWindowTilemap(4);
PutWindowTilemap(5);
PutWindowTilemap(6);
- CopyWindowToVram(2, 2);
- CopyWindowToVram(3, 2);
- CopyWindowToVram(4, 2);
- CopyWindowToVram(5, 2);
- CopyWindowToVram(6, 2);
+ CopyWindowToVram(2, COPYWIN_GFX);
+ CopyWindowToVram(3, COPYWIN_GFX);
+ CopyWindowToVram(4, COPYWIN_GFX);
+ CopyWindowToVram(5, COPYWIN_GFX);
+ CopyWindowToVram(6, COPYWIN_GFX);
DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[2], MAIN_MENU_BORDER_TILE);
DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[3], MAIN_MENU_BORDER_TILE);
DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[4], MAIN_MENU_BORDER_TILE);
@@ -861,8 +861,8 @@ static void Task_DisplayMainMenu(u8 taskId)
gTasks[tScrollArrowTaskId].func = Task_ScrollIndicatorArrowPairOnMainMenu;
if (sCurrItemAndOptionMenuCheck == 4)
{
- ChangeBgY(0, 0x2000, 1);
- ChangeBgY(1, 0x2000, 1);
+ ChangeBgY(0, 0x2000, BG_COORD_ADD);
+ ChangeBgY(1, 0x2000, BG_COORD_ADD);
tIsScrolled = TRUE;
gTasks[tScrollArrowTaskId].tArrowTaskIsScrolled = TRUE;
}
@@ -901,8 +901,8 @@ static bool8 HandleMainMenuInput(u8 taskId)
{
if (tMenuType == HAS_MYSTERY_EVENTS && tIsScrolled == TRUE && tCurrItem == 1)
{
- ChangeBgY(0, 0x2000, 2);
- ChangeBgY(1, 0x2000, 2);
+ ChangeBgY(0, 0x2000, BG_COORD_SUB);
+ ChangeBgY(1, 0x2000, BG_COORD_SUB);
gTasks[tScrollArrowTaskId].tArrowTaskIsScrolled = tIsScrolled = FALSE;
}
tCurrItem--;
@@ -913,8 +913,8 @@ static bool8 HandleMainMenuInput(u8 taskId)
{
if (tMenuType == HAS_MYSTERY_EVENTS && tCurrItem == 3 && tIsScrolled == FALSE)
{
- ChangeBgY(0, 0x2000, 1);
- ChangeBgY(1, 0x2000, 1);
+ ChangeBgY(0, 0x2000, BG_COORD_ADD);
+ ChangeBgY(1, 0x2000, BG_COORD_ADD);
gTasks[tScrollArrowTaskId].tArrowTaskIsScrolled = tIsScrolled = TRUE;
}
tCurrItem++;
@@ -1048,8 +1048,8 @@ static void Task_HandleMainMenuAPressed(u8 taskId)
}
break;
}
- ChangeBgY(0, 0, 0);
- ChangeBgY(1, 0, 0);
+ ChangeBgY(0, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
switch (action)
{
case ACTION_NEW_GAME:
@@ -1330,7 +1330,7 @@ static void Task_NewGameBirchSpeech_WaitForSpriteFadeInWelcome(u8 taskId)
LoadMessageBoxGfx(0, 0xFC, 0xF0);
NewGameBirchSpeech_ShowDialogueWindow(0, 1);
PutWindowTilemap(0);
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
NewGameBirchSpeech_ClearWindow(0);
StringExpandPlaceholders(gStringVar4, gText_Birch_Welcome);
AddTextPrinterForMessage(1);
@@ -1855,7 +1855,7 @@ static void CB2_NewGameBirchSpeech_ReturnFromNamingScreen(void)
LoadMainMenuWindowFrameTiles(0, 0xF3);
LoadMessageBoxGfx(0, 0xFC, 0xF0);
PutWindowTilemap(0);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
}
static void SpriteCB_Null(struct Sprite *sprite)
@@ -2090,9 +2090,9 @@ static void NewGameBirchSpeech_ShowGenderMenu(void)
DrawMainMenuWindowBorder(&gNewGameBirchSpeechTextWindows[1], 0xF3);
FillWindowPixelBuffer(1, PIXEL_FILL(1));
PrintMenuTable(1, ARRAY_COUNT(sMenuActions_Gender), sMenuActions_Gender);
- InitMenuInUpperLeftCornerPlaySoundWhenAPressed(1, 2, 0);
+ InitMenuInUpperLeftCornerNormal(1, 2, 0);
PutWindowTilemap(1);
- CopyWindowToVram(1, 3);
+ CopyWindowToVram(1, COPYWIN_FULL);
}
static s8 NewGameBirchSpeech_ProcessGenderMenuInput(void)
@@ -2119,7 +2119,7 @@ static void CreateMainMenuErrorWindow(const u8* str)
FillWindowPixelBuffer(7, PIXEL_FILL(1));
AddTextPrinterParameterized(7, FONT_NORMAL, str, 0, 1, 2, 0);
PutWindowTilemap(7);
- CopyWindowToVram(7, 2);
+ CopyWindowToVram(7, COPYWIN_GFX);
DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[7], MAIN_MENU_BORDER_TILE);
SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(9, DISPLAY_WIDTH - 9));
SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(113, DISPLAY_HEIGHT - 1));
@@ -2136,8 +2136,8 @@ static void MainMenu_FormatSavegameText(void)
static void MainMenu_FormatSavegamePlayer(void)
{
StringExpandPlaceholders(gStringVar4, gText_ContinueMenuPlayer);
- AddTextPrinterParameterized3(2, FONT_NORMAL, 0, 17, sTextColor_MenuInfo, -1, gStringVar4);
- AddTextPrinterParameterized3(2, FONT_NORMAL, GetStringRightAlignXOffset(FONT_NORMAL, gSaveBlock2Ptr->playerName, 100), 17, sTextColor_MenuInfo, -1, gSaveBlock2Ptr->playerName);
+ AddTextPrinterParameterized3(2, FONT_NORMAL, 0, 17, sTextColor_MenuInfo, TEXT_SKIP_DRAW, gStringVar4);
+ AddTextPrinterParameterized3(2, FONT_NORMAL, GetStringRightAlignXOffset(FONT_NORMAL, gSaveBlock2Ptr->playerName, 100), 17, sTextColor_MenuInfo, TEXT_SKIP_DRAW, gSaveBlock2Ptr->playerName);
}
static void MainMenu_FormatSavegameTime(void)
@@ -2146,11 +2146,11 @@ static void MainMenu_FormatSavegameTime(void)
u8* ptr;
StringExpandPlaceholders(gStringVar4, gText_ContinueMenuTime);
- AddTextPrinterParameterized3(2, FONT_NORMAL, 0x6C, 17, sTextColor_MenuInfo, -1, gStringVar4);
+ AddTextPrinterParameterized3(2, FONT_NORMAL, 0x6C, 17, sTextColor_MenuInfo, TEXT_SKIP_DRAW, gStringVar4);
ptr = ConvertIntToDecimalStringN(str, gSaveBlock2Ptr->playTimeHours, STR_CONV_MODE_LEFT_ALIGN, 3);
*ptr = 0xF0;
ConvertIntToDecimalStringN(ptr + 1, gSaveBlock2Ptr->playTimeMinutes, STR_CONV_MODE_LEADING_ZEROS, 2);
- AddTextPrinterParameterized3(2, FONT_NORMAL, GetStringRightAlignXOffset(FONT_NORMAL, str, 0xD0), 17, sTextColor_MenuInfo, -1, str);
+ AddTextPrinterParameterized3(2, FONT_NORMAL, GetStringRightAlignXOffset(FONT_NORMAL, str, 0xD0), 17, sTextColor_MenuInfo, TEXT_SKIP_DRAW, str);
}
static void MainMenu_FormatSavegamePokedex(void)
@@ -2165,9 +2165,9 @@ static void MainMenu_FormatSavegamePokedex(void)
else
dexCount = GetHoennPokedexCount(FLAG_GET_CAUGHT);
StringExpandPlaceholders(gStringVar4, gText_ContinueMenuPokedex);
- AddTextPrinterParameterized3(2, FONT_NORMAL, 0, 33, sTextColor_MenuInfo, -1, gStringVar4);
+ AddTextPrinterParameterized3(2, FONT_NORMAL, 0, 33, sTextColor_MenuInfo, TEXT_SKIP_DRAW, gStringVar4);
ConvertIntToDecimalStringN(str, dexCount, STR_CONV_MODE_LEFT_ALIGN, 3);
- AddTextPrinterParameterized3(2, FONT_NORMAL, GetStringRightAlignXOffset(FONT_NORMAL, str, 100), 33, sTextColor_MenuInfo, -1, str);
+ AddTextPrinterParameterized3(2, FONT_NORMAL, GetStringRightAlignXOffset(FONT_NORMAL, str, 100), 33, sTextColor_MenuInfo, TEXT_SKIP_DRAW, str);
}
}
@@ -2183,9 +2183,9 @@ static void MainMenu_FormatSavegameBadges(void)
badgeCount++;
}
StringExpandPlaceholders(gStringVar4, gText_ContinueMenuBadges);
- AddTextPrinterParameterized3(2, FONT_NORMAL, 0x6C, 33, sTextColor_MenuInfo, -1, gStringVar4);
+ AddTextPrinterParameterized3(2, FONT_NORMAL, 0x6C, 33, sTextColor_MenuInfo, TEXT_SKIP_DRAW, gStringVar4);
ConvertIntToDecimalStringN(str, badgeCount, STR_CONV_MODE_LEADING_ZEROS, 1);
- AddTextPrinterParameterized3(2, FONT_NORMAL, GetStringRightAlignXOffset(FONT_NORMAL, str, 0xD0), 33, sTextColor_MenuInfo, -1, str);
+ AddTextPrinterParameterized3(2, FONT_NORMAL, GetStringRightAlignXOffset(FONT_NORMAL, str, 0xD0), 33, sTextColor_MenuInfo, TEXT_SKIP_DRAW, str);
}
static void LoadMainMenuWindowFrameTiles(u8 bgId, u16 tileOffset)
@@ -2232,7 +2232,7 @@ static void NewGameBirchSpeech_ClearGenderWindow(u8 windowId, bool8 copyToVram)
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
ClearWindowTilemap(windowId);
if (copyToVram == TRUE)
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_FULL);
}
static void NewGameBirchSpeech_ClearWindow(u8 windowId)
@@ -2244,7 +2244,7 @@ static void NewGameBirchSpeech_ClearWindow(u8 windowId)
u8 winHeight = GetWindowAttribute(windowId, WINDOW_HEIGHT);
FillWindowPixelRect(windowId, bgColor, 0, 0, maxCharWidth * winWidth, maxCharHeight * winHeight);
- CopyWindowToVram(windowId, 2);
+ CopyWindowToVram(windowId, COPYWIN_GFX);
}
static void NewGameBirchSpeech_WaitForThisIsPokemonText(struct TextPrinterTemplate *printer, u16 a)
diff --git a/src/map_name_popup.c b/src/map_name_popup.c
index 88a06eed4..e44fb3383 100644
--- a/src/map_name_popup.c
+++ b/src/map_name_popup.c
@@ -329,8 +329,8 @@ static void ShowMapNamePopUpWindow(void)
mapDisplayHeader[0] = EXT_CTRL_CODE_BEGIN;
mapDisplayHeader[1] = EXT_CTRL_CODE_HIGHLIGHT;
mapDisplayHeader[2] = TEXT_COLOR_TRANSPARENT;
- AddTextPrinterParameterized(GetMapNamePopUpWindowId(), FONT_NARROW, mapDisplayHeader, x, 3, 0xFF, NULL);
- CopyWindowToVram(GetMapNamePopUpWindowId(), 3);
+ AddTextPrinterParameterized(GetMapNamePopUpWindowId(), FONT_NARROW, mapDisplayHeader, x, 3, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(GetMapNamePopUpWindowId(), COPYWIN_FULL);
}
#define TILE_TOP_EDGE_START 0x21D
diff --git a/src/match_call.c b/src/match_call.c
index 4c77b8764..9e4659ee6 100644
--- a/src/match_call.c
+++ b/src/match_call.c
@@ -1263,7 +1263,7 @@ static bool32 MatchCall_LoadGfx(u8 taskId)
FillWindowPixelBuffer(tWindowId, PIXEL_FILL(8));
LoadPalette(sMatchCallWindow_Pal, 0xE0, sizeof(sMatchCallWindow_Pal));
LoadPalette(sPokenavIcon_Pal, 0xF0, sizeof(sPokenavIcon_Pal));
- ChangeBgY(0, -0x2000, 0);
+ ChangeBgY(0, -0x2000, BG_COORD_SET);
return TRUE;
}
@@ -1277,7 +1277,7 @@ static bool32 MatchCall_DrawWindow(u8 taskId)
DrawMatchCallTextBoxBorder_Internal(tWindowId, TILE_MC_WINDOW, 14);
WriteSequenceToBgTilemapBuffer(0, (0xF << 12) | TILE_POKENAV_ICON, 1, 15, 4, 4, 17, 1);
tIconTaskId = CreateTask(Task_SpinPokenavIcon, 10);
- CopyWindowToVram(tWindowId, 2);
+ CopyWindowToVram(tWindowId, COPYWIN_GFX);
CopyBgTilemapBufferToVram(0);
return TRUE;
}
@@ -1297,9 +1297,9 @@ static bool32 MatchCall_ReadyIntro(u8 taskId)
static bool32 MatchCall_SlideWindowIn(u8 taskId)
{
- if (ChangeBgY(0, 0x600, 1) >= 0)
+ if (ChangeBgY(0, 0x600, BG_COORD_ADD) >= 0)
{
- ChangeBgY(0, 0, 0);
+ ChangeBgY(0, 0, BG_COORD_SET);
return TRUE;
}
@@ -1329,7 +1329,7 @@ static bool32 MatchCall_PrintMessage(u8 taskId)
if (!RunMatchCallTextPrinter(tWindowId) && !IsSEPlaying() && JOY_NEW(A_BUTTON | B_BUTTON))
{
FillWindowPixelBuffer(tWindowId, PIXEL_FILL(8));
- CopyWindowToVram(tWindowId, 2);
+ CopyWindowToVram(tWindowId, COPYWIN_GFX);
PlaySE(SE_POKENAV_HANG_UP);
return TRUE;
}
@@ -1340,7 +1340,7 @@ static bool32 MatchCall_PrintMessage(u8 taskId)
static bool32 MatchCall_SlideWindowOut(u8 taskId)
{
s16 *data = gTasks[taskId].data;
- if (ChangeBgY(0, 0x600, 2) <= -0x2000)
+ if (ChangeBgY(0, 0x600, BG_COORD_SUB) <= -0x2000)
{
FillBgTilemapBufferRect_Palette0(0, 0, 0, 14, 30, 6);
DestroyTask(tIconTaskId);
@@ -1357,7 +1357,7 @@ static bool32 MatchCall_EndCall(u8 taskId)
u8 playerObjectId;
if (!IsDma3ManagerBusyWithBgCopy() && !IsSEPlaying())
{
- ChangeBgY(0, 0, 0);
+ ChangeBgY(0, 0, BG_COORD_SET);
if (!sMatchCallState.triggeredFromScript)
{
LoadMessageBoxAndBorderGfx();
diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c
index a9f7df744..06c3b8288 100644
--- a/src/mauville_old_man.c
+++ b/src/mauville_old_man.c
@@ -449,7 +449,7 @@ static void DrawSongTextWindow(const u8 * str)
DrawDialogueFrame(0, 0);
AddTextPrinterParameterized(0, FONT_NORMAL, str, 0, 1, 1, DisableTextPrinters);
gDisableTextPrinters = TRUE;
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
}
static void BardSing(struct Task *task, struct BardSong *song)
@@ -1343,11 +1343,11 @@ static void PrintStoryList(void)
u16 gameStatID = sStorytellerPtr->gameStatIDs[i];
if (gameStatID == 0)
break;
- AddTextPrinterParameterized(sStorytellerWindowId, FONT_NORMAL, GetStoryTitleByStat(gameStatID), 8, 16 * i + 1, 0xFF, NULL);
+ AddTextPrinterParameterized(sStorytellerWindowId, FONT_NORMAL, GetStoryTitleByStat(gameStatID), 8, 16 * i + 1, TEXT_SKIP_DRAW, NULL);
}
- AddTextPrinterParameterized(sStorytellerWindowId, FONT_NORMAL, gText_Exit, 8, 16 * i + 1, 0xFF, NULL);
- InitMenuInUpperLeftCornerPlaySoundWhenAPressed(sStorytellerWindowId, GetFreeStorySlot() + 1, 0);
- CopyWindowToVram(sStorytellerWindowId, 3);
+ AddTextPrinterParameterized(sStorytellerWindowId, FONT_NORMAL, gText_Exit, 8, 16 * i + 1, TEXT_SKIP_DRAW, NULL);
+ InitMenuInUpperLeftCornerNormal(sStorytellerWindowId, GetFreeStorySlot() + 1, 0);
+ CopyWindowToVram(sStorytellerWindowId, COPYWIN_FULL);
}
static void Task_StoryListMenu(u8 taskId)
diff --git a/src/menu.c b/src/menu.c
index b8f09063d..6b915f9ce 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -48,19 +48,30 @@ struct Menu
bool8 APressMuted;
};
+static u16 AddWindowParameterized(u8, u8, u8, u8, u8, u8, u16);
+static void WindowFunc_DrawStandardFrame(u8, u8, u8, u8, u8, u8);
+static void WindowFunc_DrawDialogueFrame(u8, u8, u8, u8, u8, u8);
+static void WindowFunc_ClearStdWindowAndFrame(u8, u8, u8, u8, u8, u8);
+static void WindowFunc_ClearDialogWindowAndFrame(u8, u8, u8, u8, u8, u8);
+static void WindowFunc_DrawDialogFrameWithCustomTileAndPalette(u8, u8, u8, u8, u8, u8);
+static void WindowFunc_ClearDialogWindowAndFrameNullPalette(u8, u8, u8, u8, u8, u8);
+static void WindowFunc_DrawStdFrameWithCustomTileAndPalette(u8, u8, u8, u8, u8, u8);
+static void WindowFunc_ClearStdWindowAndFrameToTransparent(u8, u8, u8, u8, u8, u8);
+static void task_free_buf_after_copying_tile_data_to_vram(u8 taskId);
+
static EWRAM_DATA u8 sStartMenuWindowId = 0;
static EWRAM_DATA u8 sMapNamePopupWindowId = 0;
static EWRAM_DATA struct Menu sMenu = {0};
static EWRAM_DATA u16 sTileNum = 0;
static EWRAM_DATA u8 sPaletteNum = 0;
static EWRAM_DATA u8 sYesNoWindowId = 0;
-static EWRAM_DATA u8 sWindowId = 0;
+static EWRAM_DATA u8 sHofPCTopBarWindowId = 0;
static EWRAM_DATA u16 sFiller = 0; // needed to align
static EWRAM_DATA bool8 sScheduledBgCopiesToVram[4] = {FALSE};
static EWRAM_DATA u16 sTempTileDataBufferIdx = 0;
static EWRAM_DATA void *sTempTileDataBuffer[0x20] = {NULL};
-const u16 gStandardMenuPalette[] = INCBIN_U16("graphics/interface/860F074.gbapal");
+const u16 gStandardMenuPalette[] = INCBIN_U16("graphics/interface/std_menu.gbapal");
static const u8 sTextSpeedFrameDelays[] =
{
@@ -94,10 +105,10 @@ static const struct WindowTemplate sYesNo_WindowTemplates =
.baseBlock = 0x125
};
-const u16 gUnknown_0860F0B0[] = INCBIN_U16("graphics/interface/860F0B0.gbapal");
-const u8 sTextColors[] = { TEXT_DYNAMIC_COLOR_6, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY };
+static const u16 sHofPC_TopBar_Pal[] = INCBIN_U16("graphics/interface/hof_pc_topbar.gbapal");
+static const u8 sTextColors[] = { TEXT_DYNAMIC_COLOR_6, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY };
-// Table of move info icon offsets in graphics/interface_fr/menu.png
+// Table of move info icon offsets in graphics/interface/menu_info.png
static const struct MenuInfoIcon sMenuInfoIcons[] =
{ // { width, height, offset }
{ 12, 12, 0x00 }, // Unused
@@ -128,19 +139,6 @@ static const struct MenuInfoIcon sMenuInfoIcons[] =
[MENU_INFO_ICON_BALL_BLUE] = { 8, 8, 0xAF }, // For placed decorations in player's room
};
-
-// Forward declarations
-void WindowFunc_DrawStandardFrame(u8, u8, u8, u8, u8, u8);
-void WindowFunc_DrawDialogueFrame(u8, u8, u8, u8, u8, u8);
-void WindowFunc_ClearStdWindowAndFrame(u8, u8, u8, u8, u8, u8);
-void WindowFunc_ClearDialogWindowAndFrame(u8, u8, u8, u8, u8, u8);
-void WindowFunc_DrawDialogFrameWithCustomTileAndPalette(u8, u8, u8, u8, u8, u8);
-void WindowFunc_ClearDialogWindowAndFrameNullPalette(u8, u8, u8, u8, u8, u8);
-void WindowFunc_DrawStdFrameWithCustomTileAndPalette(u8, u8, u8, u8, u8, u8);
-void WindowFunc_ClearStdWindowAndFrameToTransparent(u8, u8, u8, u8, u8, u8);
-void sub_8198C78(void);
-void task_free_buf_after_copying_tile_data_to_vram(u8 taskId);
-
void InitStandardTextBoxWindows(void)
{
InitWindows(sStandardTextBox_WindowTemplates);
@@ -155,8 +153,8 @@ void FreeAllOverworldWindowBuffers(void)
void InitTextBoxGfxAndPrinters(void)
{
- ChangeBgX(0, 0, 0);
- ChangeBgY(0, 0, 0);
+ ChangeBgX(0, 0, BG_COORD_SET);
+ ChangeBgY(0, 0, BG_COORD_SET);
DeactivateAllTextPrinters();
LoadMessageBoxAndBorderGfx();
}
@@ -220,7 +218,7 @@ void DrawDialogueFrame(u8 windowId, bool8 copyToVram)
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
PutWindowTilemap(windowId);
if (copyToVram == TRUE)
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_FULL);
}
void DrawStdWindowFrame(u8 windowId, bool8 copyToVram)
@@ -229,7 +227,7 @@ void DrawStdWindowFrame(u8 windowId, bool8 copyToVram)
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
PutWindowTilemap(windowId);
if (copyToVram == TRUE)
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_FULL);
}
void ClearDialogWindowAndFrame(u8 windowId, bool8 copyToVram)
@@ -238,7 +236,7 @@ void ClearDialogWindowAndFrame(u8 windowId, bool8 copyToVram)
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
ClearWindowTilemap(windowId);
if (copyToVram == TRUE)
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_FULL);
}
void ClearStdWindowAndFrame(u8 windowId, bool8 copyToVram)
@@ -247,10 +245,10 @@ void ClearStdWindowAndFrame(u8 windowId, bool8 copyToVram)
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
ClearWindowTilemap(windowId);
if (copyToVram == TRUE)
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_FULL);
}
-void WindowFunc_DrawStandardFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
+static void WindowFunc_DrawStandardFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
{
int i;
@@ -317,7 +315,7 @@ void WindowFunc_DrawStandardFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width
STD_WINDOW_PALETTE_NUM);
}
-void WindowFunc_DrawDialogueFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
+static void WindowFunc_DrawDialogueFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
{
FillBgTilemapBufferRect(bg,
DLG_WINDOW_BASE_TILE_NUM + 1,
@@ -412,12 +410,12 @@ void WindowFunc_DrawDialogueFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width
DLG_WINDOW_PALETTE_NUM);
}
-void WindowFunc_ClearStdWindowAndFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
+static void WindowFunc_ClearStdWindowAndFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
{
FillBgTilemapBufferRect(bg, 0, tilemapLeft - 1, tilemapTop - 1, width + 2, height + 2, STD_WINDOW_PALETTE_NUM);
}
-void WindowFunc_ClearDialogWindowAndFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
+static void WindowFunc_ClearDialogWindowAndFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
{
FillBgTilemapBufferRect(bg, 0, tilemapLeft - 3, tilemapTop - 1, width + 6, height + 2, STD_WINDOW_PALETTE_NUM);
}
@@ -427,7 +425,7 @@ void SetStandardWindowBorderStyle(u8 windowId, bool8 copyToVram)
DrawStdFrameWithCustomTileAndPalette(windowId, copyToVram, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM);
}
-void sub_819786C(u8 windowId, bool8 copyToVram)
+void LoadMessageBoxAndFrameGfx(u8 windowId, bool8 copyToVram)
{
LoadMessageBoxGfx(windowId, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM * 0x10);
DrawDialogFrameWithCustomTileAndPalette(windowId, copyToVram, DLG_WINDOW_BASE_TILE_NUM, 0xF);
@@ -461,7 +459,7 @@ void DisplayItemMessageOnField(u8 taskId, const u8 *string, TaskFunc callback)
{
LoadMessageBoxAndBorderGfx();
DisplayMessageAndContinueTask(taskId, 0, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM, FONT_NORMAL, GetPlayerTextSpeedDelay(), string, callback);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
}
void DisplayYesNoMenuDefaultYes(void)
@@ -490,10 +488,10 @@ u8 GetPlayerTextSpeedDelay(void)
return sTextSpeedFrameDelays[speed];
}
-u8 sub_81979C4(u8 a1)
+u8 AddStartMenuWindow(u8 numActions)
{
if (sStartMenuWindowId == WINDOW_NONE)
- sStartMenuWindowId = sub_8198AA4(0, 0x16, 1, 7, (a1 * 2) + 2, 0xF, 0x139);
+ sStartMenuWindowId = AddWindowParameterized(0, 22, 1, 7, (numActions * 2) + 2, 15, 0x139);
return sStartMenuWindowId;
}
@@ -526,7 +524,7 @@ static u16 GetStandardFrameBaseTileNum(void)
u8 AddMapNamePopUpWindow(void)
{
if (sMapNamePopupWindowId == WINDOW_NONE)
- sMapNamePopupWindowId = sub_8198AA4(0, 1, 1, 10, 3, 14, 0x107);
+ sMapNamePopupWindowId = AddWindowParameterized(0, 1, 1, 10, 3, 14, 0x107);
return sMapNamePopupWindowId;
}
@@ -550,7 +548,7 @@ void AddTextPrinterWithCallbackForMessage(bool8 a1, void (*callback)(struct Text
AddTextPrinterParameterized2(0, FONT_NORMAL, gStringVar4, GetPlayerTextSpeedDelay(), callback, 2, 1, 3);
}
-void sub_8197AE8(bool8 copyToVram)
+void EraseFieldMessageBox(bool8 copyToVram)
{
FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 0x11);
if (copyToVram == TRUE)
@@ -565,11 +563,11 @@ void DrawDialogFrameWithCustomTileAndPalette(u8 windowId, bool8 copyToVram, u16
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
PutWindowTilemap(windowId);
if (copyToVram == TRUE)
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_FULL);
}
// Never used.
-void DrawDialogFrameWithCustomTile(u8 windowId, bool8 copyToVram, u16 tileNum)
+static void DrawDialogFrameWithCustomTile(u8 windowId, bool8 copyToVram, u16 tileNum)
{
sTileNum = tileNum;
sPaletteNum = GetWindowAttribute(windowId, WINDOW_PALETTE_NUM);
@@ -577,10 +575,10 @@ void DrawDialogFrameWithCustomTile(u8 windowId, bool8 copyToVram, u16 tileNum)
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
PutWindowTilemap(windowId);
if (copyToVram == TRUE)
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_FULL);
}
-void WindowFunc_DrawDialogFrameWithCustomTileAndPalette(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
+static void WindowFunc_DrawDialogFrameWithCustomTileAndPalette(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
{
FillBgTilemapBufferRect(bg,
sTileNum + 1,
@@ -682,10 +680,10 @@ void ClearDialogWindowAndFrameToTransparent(u8 windowId, bool8 copyToVram)
FillWindowPixelBuffer(windowId, PIXEL_FILL(0));
ClearWindowTilemap(windowId);
if (copyToVram == TRUE)
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_FULL);
}
-void WindowFunc_ClearDialogWindowAndFrameNullPalette(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
+static void WindowFunc_ClearDialogWindowAndFrameNullPalette(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
{
FillBgTilemapBufferRect(bg, 0, tilemapLeft - 3, tilemapTop - 1, width + 6, height + 2, 0);
}
@@ -698,7 +696,7 @@ void DrawStdFrameWithCustomTileAndPalette(u8 windowId, bool8 copyToVram, u16 bas
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
PutWindowTilemap(windowId);
if (copyToVram == TRUE)
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_FULL);
}
// Never used.
@@ -710,10 +708,10 @@ void DrawStdFrameWithCustomTile(u8 windowId, bool8 copyToVram, u16 baseTileNum)
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
PutWindowTilemap(windowId);
if (copyToVram == TRUE)
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_FULL);
}
-void WindowFunc_DrawStdFrameWithCustomTileAndPalette(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
+static void WindowFunc_DrawStdFrameWithCustomTileAndPalette(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
{
FillBgTilemapBufferRect(bg,
sTileNum + 0,
@@ -779,15 +777,16 @@ void ClearStdWindowAndFrameToTransparent(u8 windowId, bool8 copyToVram)
FillWindowPixelBuffer(windowId, PIXEL_FILL(0));
ClearWindowTilemap(windowId);
if (copyToVram == TRUE)
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_FULL);
}
-void WindowFunc_ClearStdWindowAndFrameToTransparent(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
+static void WindowFunc_ClearStdWindowAndFrameToTransparent(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
{
FillBgTilemapBufferRect(bg, 0, tilemapLeft - 1, tilemapTop - 1, width + 2, height + 2, 0);
}
-u8 sub_81980F0(u8 bg, u8 xPos, u8 yPos, u8 palette, u16 baseTile)
+// Creates the window used to display the info bar at the top of the HOF PC that shows the controls and team number.
+u8 HofPCTopBar_AddWindow(u8 bg, u8 xPos, u8 yPos, u8 palette, u16 baseTile)
{
struct WindowTemplate window;
memset(&window, 0, sizeof(window));
@@ -799,51 +798,54 @@ u8 sub_81980F0(u8 bg, u8 xPos, u8 yPos, u8 palette, u16 baseTile)
window.tilemapTop = yPos;
window.height = 2;
- window.tilemapLeft = 0x1E - xPos;
+ window.tilemapLeft = 30 - xPos;
window.width = xPos;
window.paletteNum = palette;
window.baseBlock = baseTile;
- sWindowId = AddWindow(&window);
+ sHofPCTopBarWindowId = AddWindow(&window);
if (palette > 15)
palette = 15 * 16;
else
palette *= 16;
- LoadPalette(gUnknown_0860F0B0, palette, sizeof(gUnknown_0860F0B0));
- return sWindowId;
+ LoadPalette(sHofPC_TopBar_Pal, palette, sizeof(sHofPC_TopBar_Pal));
+ return sHofPCTopBarWindowId;
}
-void sub_8198180(const u8 *string, u8 a2, bool8 copyToVram)
+// All the below functions checking WINDOW_NONE only handle failure of AddWindow in the above function.
+// Because sHofPCTopBarWindowId is not initialized to WINDOW_NONE anywhere it does not handle
+// the window not having been drawn yet.
+void HofPCTopBar_Print(const u8 *string, u8 left, bool8 copyToVram)
{
u16 width = 0;
- if (sWindowId != WINDOW_NONE)
+ if (sHofPCTopBarWindowId != WINDOW_NONE)
{
- PutWindowTilemap(sWindowId);
- FillWindowPixelBuffer(sWindowId, PIXEL_FILL(15));
+ PutWindowTilemap(sHofPCTopBarWindowId);
+ FillWindowPixelBuffer(sHofPCTopBarWindowId, PIXEL_FILL(15));
width = GetStringWidth(FONT_SMALL, string, 0);
- AddTextPrinterParameterized3(sWindowId,
+ AddTextPrinterParameterized3(sHofPCTopBarWindowId,
FONT_SMALL,
- 0xEC - (GetWindowAttribute(sWindowId, WINDOW_TILEMAP_LEFT) * 8) - a2 - width,
+ 236 - (GetWindowAttribute(sHofPCTopBarWindowId, WINDOW_TILEMAP_LEFT) * 8) - left - width,
1,
sTextColors,
0,
string);
if (copyToVram)
- CopyWindowToVram(sWindowId, 3);
+ CopyWindowToVram(sHofPCTopBarWindowId, COPYWIN_FULL);
}
}
-void sub_8198204(const u8 *string, const u8 *string2, u8 a3, u8 a4, bool8 copyToVram)
+void HofPCTopBar_PrintPair(const u8 *string, const u8 *string2, bool8 noBg, u8 left, bool8 copyToVram)
{
u8 color[3];
u16 width = 0;
- if (sWindowId != WINDOW_NONE)
+ if (sHofPCTopBarWindowId != WINDOW_NONE)
{
- if (a3 != 0)
+ if (noBg)
{
color[0] = TEXT_COLOR_TRANSPARENT;
color[1] = TEXT_COLOR_WHITE;
@@ -855,53 +857,55 @@ void sub_8198204(const u8 *string, const u8 *string2, u8 a3, u8 a4, bool8 copyTo
color[1] = TEXT_COLOR_WHITE;
color[2] = TEXT_COLOR_DARK_GRAY;
}
- PutWindowTilemap(sWindowId);
- FillWindowPixelBuffer(sWindowId, PIXEL_FILL(15));
+ PutWindowTilemap(sHofPCTopBarWindowId);
+ FillWindowPixelBuffer(sHofPCTopBarWindowId, PIXEL_FILL(15));
if (string2 != NULL)
{
width = GetStringWidth(FONT_SMALL, string2, 0);
- AddTextPrinterParameterized3(sWindowId,
+ AddTextPrinterParameterized3(sHofPCTopBarWindowId,
FONT_SMALL,
- 0xEC - (GetWindowAttribute(sWindowId, WINDOW_TILEMAP_LEFT) * 8) - a4 - width,
+ 236 - (GetWindowAttribute(sHofPCTopBarWindowId, WINDOW_TILEMAP_LEFT) * 8) - left - width,
1,
color,
0,
string2);
}
- AddTextPrinterParameterized4(sWindowId, FONT_NORMAL, 4, 1, 0, 0, color, 0, string);
+ AddTextPrinterParameterized4(sHofPCTopBarWindowId, FONT_NORMAL, 4, 1, 0, 0, color, 0, string);
if (copyToVram)
- CopyWindowToVram(sWindowId, 3);
+ CopyWindowToVram(sHofPCTopBarWindowId, COPYWIN_FULL);
}
}
-void sub_81982D8(void)
+// Unused
+static void HofPCTopBar_CopyToVram(void)
{
- if (sWindowId != WINDOW_NONE)
- CopyWindowToVram(sWindowId, 3);
+ if (sHofPCTopBarWindowId != WINDOW_NONE)
+ CopyWindowToVram(sHofPCTopBarWindowId, COPYWIN_FULL);
}
-void sub_81982F0(void)
+// Unused
+static void HofPCTopBar_Clear(void)
{
- if (sWindowId != WINDOW_NONE)
+ if (sHofPCTopBarWindowId != WINDOW_NONE)
{
- FillWindowPixelBuffer(sWindowId, PIXEL_FILL(15));
- CopyWindowToVram(sWindowId, 3);
+ FillWindowPixelBuffer(sHofPCTopBarWindowId, PIXEL_FILL(15));
+ CopyWindowToVram(sHofPCTopBarWindowId, COPYWIN_FULL);
}
}
-void sub_8198314(void)
+void HofPCTopBar_RemoveWindow(void)
{
- if (sWindowId != WINDOW_NONE)
+ if (sHofPCTopBarWindowId != WINDOW_NONE)
{
- FillWindowPixelBuffer(sWindowId, PIXEL_FILL(0));
- ClearWindowTilemap(sWindowId);
- CopyWindowToVram(sWindowId, 3);
- RemoveWindow(sWindowId);
- sWindowId = WINDOW_NONE;
+ FillWindowPixelBuffer(sHofPCTopBarWindowId, PIXEL_FILL(0));
+ ClearWindowTilemap(sHofPCTopBarWindowId);
+ CopyWindowToVram(sHofPCTopBarWindowId, COPYWIN_FULL);
+ RemoveWindow(sHofPCTopBarWindowId);
+ sHofPCTopBarWindowId = WINDOW_NONE;
}
}
-u8 sub_8198348(u8 windowId, u8 fontId, u8 left, u8 top, u8 cursorHeight, u8 numChoices, u8 initialCursorPos, u8 a7)
+static u8 InitMenu(u8 windowId, u8 fontId, u8 left, u8 top, u8 cursorHeight, u8 numChoices, u8 initialCursorPos, bool8 muteAPress)
{
s32 pos;
@@ -912,7 +916,7 @@ u8 sub_8198348(u8 windowId, u8 fontId, u8 left, u8 top, u8 cursorHeight, u8 numC
sMenu.windowId = windowId;
sMenu.fontId = fontId;
sMenu.optionHeight = cursorHeight;
- sMenu.APressMuted = a7;
+ sMenu.APressMuted = muteAPress;
pos = initialCursorPos;
@@ -925,15 +929,17 @@ u8 sub_8198348(u8 windowId, u8 fontId, u8 left, u8 top, u8 cursorHeight, u8 numC
return sMenu.cursorPos;
}
-u8 sub_81983AC(u8 windowId, u8 fontId, u8 left, u8 top, u8 cursorHeight, u8 numChoices, u8 initialCursorPos)
+// There is no muted version of this, so the version that plays sound when A is pressed is the "Normal" one.
+u8 InitMenuNormal(u8 windowId, u8 fontId, u8 left, u8 top, u8 cursorHeight, u8 numChoices, u8 initialCursorPos)
{
- return sub_8198348(windowId, fontId, left, top, cursorHeight, numChoices, initialCursorPos, 0);
+ return InitMenu(windowId, fontId, left, top, cursorHeight, numChoices, initialCursorPos, FALSE);
}
-u8 sub_81983EC(u8 windowId, u8 fontId, u8 left, u8 top, u8 numChoices, u8 initialCursorPos)
+// Unused
+static u8 InitMenuDefaultCursorHeight(u8 windowId, u8 fontId, u8 left, u8 top, u8 numChoices, u8 initialCursorPos)
{
u8 cursorHeight = GetMenuCursorDimensionByFont(fontId, 1);
- return sub_81983AC(windowId, fontId, left, top, cursorHeight, numChoices, initialCursorPos);
+ return InitMenuNormal(windowId, fontId, left, top, cursorHeight, numChoices, initialCursorPos);
}
void RedrawMenuCursor(u8 oldPos, u8 newPos)
@@ -1099,32 +1105,30 @@ s8 Menu_ProcessInputNoWrapAround_other(void)
return MENU_NOTHING_CHOSEN;
}
-void PrintTextArray(u8 windowId, u8 fontId, u8 left, u8 top, u8 lineHeight, u8 itemCount, const struct MenuAction *menuActions)
+void PrintMenuActionTextsAtPos(u8 windowId, u8 fontId, u8 left, u8 top, u8 lineHeight, u8 itemCount, const struct MenuAction *menuActions)
{
u8 i;
for (i = 0; i < itemCount; i++)
- {
- AddTextPrinterParameterized(windowId, fontId, menuActions[i].text, left, (lineHeight * i) + top, 0xFF, NULL);
- }
- CopyWindowToVram(windowId, 2);
+ AddTextPrinterParameterized(windowId, fontId, menuActions[i].text, left, (lineHeight * i) + top, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(windowId, COPYWIN_GFX);
}
-void sub_81987BC(u8 windowId, u8 fontId, u8 left, u8 top, u8 lineHeight, u8 itemCount, const struct MenuAction *menuActions, u8 a6, u8 a7)
+// Unused
+static void PrintMenuActionTextsWithSpacing(u8 windowId, u8 fontId, u8 left, u8 top, u8 lineHeight, u8 itemCount, const struct MenuAction *menuActions, u8 letterSpacing, u8 lineSpacing)
{
u8 i;
for (i = 0; i < itemCount; i++)
- {
- AddTextPrinterParameterized5(windowId, fontId, menuActions[i].text, left, (lineHeight * i) + top, 0xFF, NULL, a6, a7);
- }
- CopyWindowToVram(windowId, 2);
+ AddTextPrinterParameterized5(windowId, fontId, menuActions[i].text, left, (lineHeight * i) + top, TEXT_SKIP_DRAW, NULL, letterSpacing, lineSpacing);
+ CopyWindowToVram(windowId, COPYWIN_GFX);
}
-void sub_8198854(u8 windowId, u8 fontId, u8 lineHeight, u8 itemCount, const struct MenuAction *menuActions)
+// Unused
+static void PrintMenuActionTextsAtTop(u8 windowId, u8 fontId, u8 lineHeight, u8 itemCount, const struct MenuAction *menuActions)
{
- PrintTextArray(windowId, fontId, GetFontAttribute(fontId, 0), 1, lineHeight, itemCount, menuActions);
+ PrintMenuActionTextsAtPos(windowId, fontId, GetFontAttribute(fontId, FONTATTR_MAX_LETTER_WIDTH), 1, lineHeight, itemCount, menuActions);
}
-void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineHeight, u8 itemCount, const struct MenuAction *menuActions, const u8 *actionIds)
+void PrintMenuActionTexts(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineHeight, u8 itemCount, const struct MenuAction *menuActions, const u8 *actionIds)
{
u8 i;
struct TextPrinterTemplate printer;
@@ -1145,15 +1149,16 @@ void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 l
printer.currentChar = menuActions[actionIds[i]].text;
printer.y = (lineHeight * i) + top;
printer.currentY = printer.y;
- AddTextPrinter(&printer, 0xFF, NULL);
+ AddTextPrinter(&printer, TEXT_SKIP_DRAW, NULL);
}
- CopyWindowToVram(windowId, 2);
+ CopyWindowToVram(windowId, COPYWIN_GFX);
}
-void sub_81989B8(u8 windowId, u8 fontId, u8 lineHeight, u8 itemCount, const struct MenuAction *menuActions, const u8 *actionIds)
+// Unused
+static void PrintMenuActionTextsAtTopById(u8 windowId, u8 fontId, u8 lineHeight, u8 itemCount, const struct MenuAction *menuActions, const u8 *actionIds)
{
- AddItemMenuActionTextPrinters(windowId, fontId, GetFontAttribute(fontId, FONTATTR_MAX_LETTER_WIDTH), 1, GetFontAttribute(fontId, FONTATTR_LETTER_SPACING), lineHeight, itemCount, menuActions, actionIds);
+ PrintMenuActionTexts(windowId, fontId, GetFontAttribute(fontId, FONTATTR_MAX_LETTER_WIDTH), 1, GetFontAttribute(fontId, FONTATTR_LETTER_SPACING), lineHeight, itemCount, menuActions, actionIds);
}
void SetWindowTemplateFields(struct WindowTemplate *template, u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock)
@@ -1174,14 +1179,15 @@ struct WindowTemplate CreateWindowTemplate(u8 bg, u8 left, u8 top, u8 width, u8
return template;
}
-u16 sub_8198AA4(u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock)
+u16 AddWindowParameterized(u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock)
{
struct WindowTemplate template;
SetWindowTemplateFields(&template, bg, left, top, width, height, paletteNum, baseBlock);
return AddWindow(&template);
}
-void sub_8198AF8(const struct WindowTemplate *window, u8 fontId, u8 left, u8 top, u16 baseTileNum, u8 paletteNum, u8 initialCursorPos)
+// As opposed to CreateYesNoMenu, which has a hard-coded position.
+static void CreateYesNoMenuAtPos(const struct WindowTemplate *window, u8 fontId, u8 left, u8 top, u16 baseTileNum, u8 paletteNum, u8 initialCursorPos)
{
struct TextPrinterTemplate printer;
@@ -1202,47 +1208,46 @@ void sub_8198AF8(const struct WindowTemplate *window, u8 fontId, u8 left, u8 top
printer.letterSpacing = GetFontAttribute(fontId, FONTATTR_LETTER_SPACING);
printer.lineSpacing = GetFontAttribute(fontId, FONTATTR_LINE_SPACING);
- AddTextPrinter(&printer, TEXT_SPEED_FF, NULL);
+ AddTextPrinter(&printer, TEXT_SKIP_DRAW, NULL);
- sub_81983AC(sYesNoWindowId, fontId, left, top, GetFontAttribute(fontId, FONTATTR_MAX_LETTER_HEIGHT), 2, initialCursorPos);
+ InitMenuNormal(sYesNoWindowId, fontId, left, top, GetFontAttribute(fontId, FONTATTR_MAX_LETTER_HEIGHT), 2, initialCursorPos);
}
-void sub_8198C34(const struct WindowTemplate *window, u8 fontId, u16 baseTileNum, u8 paletteNum)
+static void CreateYesNoMenuInTopLeft(const struct WindowTemplate *window, u8 fontId, u16 baseTileNum, u8 paletteNum)
{
- sub_8198AF8(window, fontId, 0, 1, baseTileNum, paletteNum, 0);
+ CreateYesNoMenuAtPos(window, fontId, 0, 1, baseTileNum, paletteNum, 0);
}
s8 Menu_ProcessInputNoWrapClearOnChoose(void)
{
s8 result = Menu_ProcessInputNoWrap();
if (result != MENU_NOTHING_CHOSEN)
- sub_8198C78();
+ EraseYesNoWindow();
return result;
}
-void sub_8198C78(void)
+void EraseYesNoWindow(void)
{
ClearStdWindowAndFrameToTransparent(sYesNoWindowId, TRUE);
RemoveWindow(sYesNoWindowId);
}
-void sub_8198C94(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 a5, u8 a6, u8 a7, const struct MenuAction *menuActions)
+static void PrintMenuActionGridText(u8 windowId, u8 fontId, u8 left, u8 top, u8 width, u8 height, u8 columns, u8 rows, const struct MenuAction *menuActions)
{
u8 i;
u8 j;
- for (i = 0; i < a7; i++)
+ for (i = 0; i < rows; i++)
{
- for (j = 0; j < a6; j++)
- {
- AddTextPrinterParameterized(windowId, fontId, menuActions[(i * a6) + j].text, (a4 * j) + left, (a5 * i) + top, 0xFF, NULL);
- }
+ for (j = 0; j < columns; j++)
+ AddTextPrinterParameterized(windowId, fontId, menuActions[(i * columns) + j].text, (width * j) + left, (height * i) + top, TEXT_SKIP_DRAW, NULL);
}
- CopyWindowToVram(windowId, 2);
+ CopyWindowToVram(windowId, COPYWIN_GFX);
}
-void sub_8198D54(u8 windowId, u8 fontId, u8 a2, u8 a3, u8 a4, u8 a5, const struct MenuAction *menuActions)
+// Unused
+static void PrintMenuActionGridTextAtTop(u8 windowId, u8 fontId, u8 a2, u8 a3, u8 a4, u8 a5, const struct MenuAction *menuActions)
{
- sub_8198C94(windowId, fontId, GetFontAttribute(fontId, 0), 0, a2, a3, a4, a5, menuActions);
+ PrintMenuActionGridText(windowId, fontId, GetFontAttribute(fontId, FONTATTR_MAX_LETTER_WIDTH), 0, a2, a3, a4, a5, menuActions);
}
void PrintMenuActionGrid(u8 windowId, u8 fontId, u8 left, u8 top, u8 optionWidth, u8 horizontalCount, u8 verticalCount, const struct MenuAction *menuActions, const u8 *actionIds)
@@ -1269,11 +1274,11 @@ void PrintMenuActionGrid(u8 windowId, u8 fontId, u8 left, u8 top, u8 optionWidth
printer.y = (GetFontAttribute(fontId, FONTATTR_MAX_LETTER_HEIGHT) * i) + top;
printer.currentX = printer.x;
printer.currentY = printer.y;
- AddTextPrinter(&printer, 0xFF, NULL);
+ AddTextPrinter(&printer, TEXT_SKIP_DRAW, NULL);
}
}
- CopyWindowToVram(windowId, 2);
+ CopyWindowToVram(windowId, COPYWIN_GFX);
}
// Unused
@@ -1282,7 +1287,7 @@ static void PrintMenuActionGrid_TopLeft(u8 windowId, u8 fontId, u8 optionWidth,
PrintMenuActionGrid(windowId, fontId, GetFontAttribute(fontId, FONTATTR_MAX_LETTER_WIDTH), 0, optionWidth, horizontalCount, verticalCount, menuActions, actionIds);
}
-u8 sub_8198F58(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 cursorHeight, u8 a6, u8 a7, u8 numChoices, u8 a9)
+static u8 InitMenuGrid(u8 windowId, u8 fontId, u8 left, u8 top, u8 optionWidth, u8 optionHeight, u8 columns, u8 rows, u8 numChoices, u8 cursorPos)
{
s32 pos;
@@ -1292,12 +1297,12 @@ u8 sub_8198F58(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 cursorHeight,
sMenu.maxCursorPos = numChoices - 1;
sMenu.windowId = windowId;
sMenu.fontId = fontId;
- sMenu.optionWidth = a4;
- sMenu.optionHeight = cursorHeight;
- sMenu.columns = a6;
- sMenu.rows = a7;
+ sMenu.optionWidth = optionWidth;
+ sMenu.optionHeight = optionHeight;
+ sMenu.columns = columns;
+ sMenu.rows = rows;
- pos = a9;
+ pos = cursorPos;
if (pos < 0 || pos > sMenu.maxCursorPos)
sMenu.cursorPos = 0;
@@ -1305,42 +1310,34 @@ u8 sub_8198F58(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 cursorHeight,
sMenu.cursorPos = pos;
// Why call this when it's not gonna move?
- ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_NONE);
+ ChangeMenuGridCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_NONE);
return sMenu.cursorPos;
}
// Unused
-u8 sub_8198FD4(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 a5, u8 a6, u8 a7)
+static u8 InitMenuGridDefaultCursorHeight(u8 windowId, u8 fontId, u8 left, u8 top, u8 width, u8 columns, u8 rows, u8 cursorPos)
{
u8 cursorHeight = GetMenuCursorDimensionByFont(fontId, 1);
- u8 numChoices = a5 * a6;
- return sub_8198F58(windowId, fontId, left, top, a4, cursorHeight, a5, a6, numChoices, a7);
+ u8 numChoices = columns * rows;
+ return InitMenuGrid(windowId, fontId, left, top, width, cursorHeight, columns, rows, numChoices, cursorPos);
}
-void sub_8199060(u8 oldCursorPos, u8 newCursorPos)
+// Erase cursor at old position, draw cursor at new position.
+static void MoveMenuGridCursor(u8 oldCursorPos, u8 newCursorPos)
{
u8 cursorWidth = GetMenuCursorDimensionByFont(sMenu.fontId, 0);
u8 cursorHeight = GetMenuCursorDimensionByFont(sMenu.fontId, 1);
+
u8 xPos = (oldCursorPos % sMenu.columns) * sMenu.optionWidth + sMenu.left;
u8 yPos = (oldCursorPos / sMenu.columns) * sMenu.optionHeight + sMenu.top;
- FillWindowPixelRect(sMenu.windowId,
- PIXEL_FILL(1),
- xPos,
- yPos,
- cursorWidth,
- cursorHeight);
+ FillWindowPixelRect(sMenu.windowId, PIXEL_FILL(1), xPos, yPos, cursorWidth, cursorHeight);
+
xPos = (newCursorPos % sMenu.columns) * sMenu.optionWidth + sMenu.left;
yPos = (newCursorPos / sMenu.columns) * sMenu.optionHeight + sMenu.top;
- AddTextPrinterParameterized(sMenu.windowId,
- sMenu.fontId,
- gText_SelectorArrow3,
- xPos,
- yPos,
- 0,
- 0);
+ AddTextPrinterParameterized(sMenu.windowId, sMenu.fontId, gText_SelectorArrow3, xPos, yPos, 0, 0);
}
-u8 ChangeListMenuCursorPosition(s8 deltaX, s8 deltaY)
+u8 ChangeMenuGridCursorPosition(s8 deltaX, s8 deltaY)
{
u8 oldPos = sMenu.cursorPos;
@@ -1371,7 +1368,7 @@ u8 ChangeListMenuCursorPosition(s8 deltaX, s8 deltaY)
}
else
{
- sub_8199060(oldPos, sMenu.cursorPos);
+ MoveMenuGridCursor(oldPos, sMenu.cursorPos);
return sMenu.cursorPos;
}
}
@@ -1405,12 +1402,13 @@ u8 ChangeGridMenuCursorPosition(s8 deltaX, s8 deltaY)
}
else
{
- sub_8199060(oldPos, sMenu.cursorPos);
+ MoveMenuGridCursor(oldPos, sMenu.cursorPos);
return sMenu.cursorPos;
}
}
-s8 sub_8199284(void)
+// Unused
+static s8 Menu_ProcessGridInput_NoSoundLimit(void)
{
if (JOY_NEW(A_BUTTON))
{
@@ -1424,32 +1422,32 @@ s8 sub_8199284(void)
else if (JOY_NEW(DPAD_UP))
{
PlaySE(SE_SELECT);
- ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_UP);
+ ChangeMenuGridCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_UP);
return MENU_NOTHING_CHOSEN;
}
else if (JOY_NEW(DPAD_DOWN))
{
PlaySE(SE_SELECT);
- ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_DOWN);
+ ChangeMenuGridCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_DOWN);
return MENU_NOTHING_CHOSEN;
}
else if (JOY_NEW(DPAD_LEFT) || GetLRKeysPressed() == MENU_L_PRESSED)
{
PlaySE(SE_SELECT);
- ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_LEFT, MENU_CURSOR_DELTA_NONE);
+ ChangeMenuGridCursorPosition(MENU_CURSOR_DELTA_LEFT, MENU_CURSOR_DELTA_NONE);
return MENU_NOTHING_CHOSEN;
}
else if (JOY_NEW(DPAD_RIGHT) || GetLRKeysPressed() == MENU_R_PRESSED)
{
PlaySE(SE_SELECT);
- ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_RIGHT, MENU_CURSOR_DELTA_NONE);
+ ChangeMenuGridCursorPosition(MENU_CURSOR_DELTA_RIGHT, MENU_CURSOR_DELTA_NONE);
return MENU_NOTHING_CHOSEN;
}
return MENU_NOTHING_CHOSEN;
}
-s8 Menu_ProcessInputGridLayout(void)
+s8 Menu_ProcessGridInput(void)
{
u8 oldPos = sMenu.cursorPos;
@@ -1490,7 +1488,8 @@ s8 Menu_ProcessInputGridLayout(void)
return MENU_NOTHING_CHOSEN;
}
-s8 sub_81993D8(void)
+// Unused
+static s8 Menu_ProcessGridInputRepeat_NoSoundLimit(void)
{
if (JOY_NEW(A_BUTTON))
{
@@ -1501,36 +1500,36 @@ s8 sub_81993D8(void)
{
return MENU_B_PRESSED;
}
- else if ((JOY_REPEAT(DPAD_ANY)) == DPAD_UP)
+ else if (JOY_REPEAT(DPAD_ANY) == DPAD_UP)
{
PlaySE(SE_SELECT);
- ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_UP);
+ ChangeMenuGridCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_UP);
return MENU_NOTHING_CHOSEN;
}
- else if ((JOY_REPEAT(DPAD_ANY)) == DPAD_DOWN)
+ else if (JOY_REPEAT(DPAD_ANY) == DPAD_DOWN)
{
PlaySE(SE_SELECT);
- ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_DOWN);
+ ChangeMenuGridCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_DOWN);
return MENU_NOTHING_CHOSEN;
}
- else if ((JOY_REPEAT(DPAD_ANY)) == DPAD_LEFT || GetLRKeysPressedAndHeld() == MENU_L_PRESSED)
+ else if (JOY_REPEAT(DPAD_ANY) == DPAD_LEFT || GetLRKeysPressedAndHeld() == MENU_L_PRESSED)
{
PlaySE(SE_SELECT);
- ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_LEFT, MENU_CURSOR_DELTA_NONE);
+ ChangeMenuGridCursorPosition(MENU_CURSOR_DELTA_LEFT, MENU_CURSOR_DELTA_NONE);
return MENU_NOTHING_CHOSEN;
}
- else if ((JOY_REPEAT(DPAD_ANY)) == DPAD_RIGHT || GetLRKeysPressedAndHeld() == MENU_R_PRESSED)
+ else if (JOY_REPEAT(DPAD_ANY) == DPAD_RIGHT || GetLRKeysPressedAndHeld() == MENU_R_PRESSED)
{
PlaySE(SE_SELECT);
- ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_RIGHT, MENU_CURSOR_DELTA_NONE);
+ ChangeMenuGridCursorPosition(MENU_CURSOR_DELTA_RIGHT, MENU_CURSOR_DELTA_NONE);
return MENU_NOTHING_CHOSEN;
}
return MENU_NOTHING_CHOSEN;
}
-//Unused
-s8 sub_8199484(void)
+// Unused
+static s8 Menu_ProcessGridInputRepeat(void)
{
u8 oldPos = sMenu.cursorPos;
@@ -1594,7 +1593,8 @@ u8 InitMenuInUpperLeftCorner(u8 windowId, u8 itemCount, u8 initialCursorPos, boo
return Menu_MoveCursor(0);
}
-u8 InitMenuInUpperLeftCornerPlaySoundWhenAPressed(u8 windowId, u8 itemCount, u8 initialCursorPos)
+// There is no muted version of this function, so the version that plays sound when A is pressed is the "Normal" one.
+u8 InitMenuInUpperLeftCornerNormal(u8 windowId, u8 itemCount, u8 initialCursorPos)
{
return InitMenuInUpperLeftCorner(windowId, itemCount, initialCursorPos, FALSE);
}
@@ -1604,14 +1604,12 @@ void PrintMenuTable(u8 windowId, u8 itemCount, const struct MenuAction *menuActi
u32 i;
for (i = 0; i < itemCount; i++)
- {
- AddTextPrinterParameterized(windowId, 1, menuActions[i].text, 8, (i * 16) + 1, 0xFF, NULL);
- }
+ AddTextPrinterParameterized(windowId, 1, menuActions[i].text, 8, (i * 16) + 1, TEXT_SKIP_DRAW, NULL);
- CopyWindowToVram(windowId, 2);
+ CopyWindowToVram(windowId, COPYWIN_GFX);
}
-void sub_81995E4(u8 windowId, u8 itemCount, const struct MenuAction *menuActions, const u8 *actionIds)
+void PrintMenuActionTextsInUpperLeftCorner(u8 windowId, u8 itemCount, const struct MenuAction *menuActions, const u8 *actionIds)
{
u8 i;
struct TextPrinterTemplate printer;
@@ -1632,10 +1630,10 @@ void sub_81995E4(u8 windowId, u8 itemCount, const struct MenuAction *menuActions
printer.currentChar = menuActions[actionIds[i]].text;
printer.y = (i * 16) + 1;
printer.currentY = (i * 16) + 1;
- AddTextPrinter(&printer, 0xFF, NULL);
+ AddTextPrinter(&printer, TEXT_SKIP_DRAW, NULL);
}
- CopyWindowToVram(windowId, 2);
+ CopyWindowToVram(windowId, COPYWIN_GFX);
}
void CreateYesNoMenu(const struct WindowTemplate *window, u16 baseTileNum, u8 paletteNum, u8 initialCursorPos)
@@ -1659,8 +1657,8 @@ void CreateYesNoMenu(const struct WindowTemplate *window, u16 baseTileNum, u8 pa
printer.letterSpacing = 0;
printer.lineSpacing = 0;
- AddTextPrinter(&printer, 0xFF, NULL);
- InitMenuInUpperLeftCornerPlaySoundWhenAPressed(sYesNoWindowId, 2, initialCursorPos);
+ AddTextPrinter(&printer, TEXT_SKIP_DRAW, NULL);
+ InitMenuInUpperLeftCornerNormal(sYesNoWindowId, 2, initialCursorPos);
}
void PrintMenuGridTable(u8 windowId, u8 optionWidth, u8 columns, u8 rows, const struct MenuAction *menuActions)
@@ -1670,12 +1668,13 @@ void PrintMenuGridTable(u8 windowId, u8 optionWidth, u8 columns, u8 rows, const
for (i = 0; i < rows; i++)
{
for (j = 0; j < columns; j++)
- AddTextPrinterParameterized(windowId, 1, menuActions[(i * columns) + j].text, (optionWidth * j) + 8, (i * 16) + 1, 0xFF, NULL);
+ AddTextPrinterParameterized(windowId, 1, menuActions[(i * columns) + j].text, (optionWidth * j) + 8, (i * 16) + 1, TEXT_SKIP_DRAW, NULL);
}
- CopyWindowToVram(windowId, 2);
+ CopyWindowToVram(windowId, COPYWIN_GFX);
}
-void sub_819983C(u8 windowId, u8 a4, u8 itemCount, u8 itemCount2, const struct MenuAction *menuActions, const u8 *actionIds)
+// Unused
+static void PrintMenuActionGridTextNoSpacing(u8 windowId, u8 optionWidth, u8 columns, u8 rows, const struct MenuAction *menuActions, const u8 *actionIds)
{
u8 i;
u8 j;
@@ -1690,20 +1689,20 @@ void sub_819983C(u8 windowId, u8 a4, u8 itemCount, u8 itemCount2, const struct M
printer.letterSpacing = 0;
printer.lineSpacing = 0;
- for (i = 0; i < itemCount2; i++)
+ for (i = 0; i < rows; i++)
{
- for (j = 0; j < itemCount; j++)
+ for (j = 0; j < columns; j++)
{
- printer.currentChar = menuActions[actionIds[(itemCount * i) + j]].text;
- printer.x = (a4 * j) + 8;
+ printer.currentChar = menuActions[actionIds[(columns * i) + j]].text;
+ printer.x = (optionWidth * j) + 8;
printer.y = (16 * i) + 1;
printer.currentX = printer.x;
printer.currentY = printer.y;
- AddTextPrinter(&printer, 0xFF, NULL);
+ AddTextPrinter(&printer, TEXT_SKIP_DRAW, NULL);
}
}
- CopyWindowToVram(windowId, 2);
+ CopyWindowToVram(windowId, COPYWIN_GFX);
}
u8 InitMenuActionGrid(u8 windowId, u8 optionWidth, u8 columns, u8 rows, u8 initialCursorPos)
@@ -1729,7 +1728,7 @@ u8 InitMenuActionGrid(u8 windowId, u8 optionWidth, u8 columns, u8 rows, u8 initi
sMenu.cursorPos = pos;
// Why call this when it's not gonna move?
- ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_NONE);
+ ChangeMenuGridCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_NONE);
return sMenu.cursorPos;
}
@@ -1890,51 +1889,46 @@ void CopyToBufferFromBgTilemap(u8 bgId, u16 *dest, u8 left, u8 top, u8 width, u8
for (i = 0; i < height; i++)
{
for (j = 0; j < width; j++)
- {
dest[(i * width) + j] = src[(i + top) * 32 + j + left];
- }
}
}
-void sub_8199D3C(void *ptr, int delta, int width, int height, bool32 is8BPP)
+void AddValToTilemapBuffer(void *ptr, int delta, int width, int height, bool32 isAffine)
{
int i;
int area = width * height;
- if (is8BPP == TRUE)
+ if (isAffine == TRUE)
{
u8 *as8BPP = ptr;
for (i = 0; i < area; i++)
- {
as8BPP[i] += delta;
- }
}
else
{
+ // Limit add to first 10 bits
u16 *as4BPP = ptr;
for (i = 0; i < area; i++)
- {
as4BPP[i] = (as4BPP[i] & 0xFC00) | ((as4BPP[i] + delta) & 0x3FF);
- }
}
}
void ResetBgPositions(void)
{
- ChangeBgX(0, 0, 0);
- ChangeBgX(1, 0, 0);
- ChangeBgX(2, 0, 0);
- ChangeBgX(3, 0, 0);
- ChangeBgY(0, 0, 0);
- ChangeBgY(1, 0, 0);
- ChangeBgY(2, 0, 0);
- ChangeBgY(3, 0, 0);
+ ChangeBgX(0, 0, BG_COORD_SET);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgX(2, 0, BG_COORD_SET);
+ ChangeBgX(3, 0, BG_COORD_SET);
+ ChangeBgY(0, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
+ ChangeBgY(2, 0, BG_COORD_SET);
+ ChangeBgY(3, 0, BG_COORD_SET);
}
-void sub_8199DF0(u32 bg, u8 a1, int a2, int a3)
+void BgDmaFill(u32 bg, u8 value, int offset, int size)
{
- int temp = (!GetBgAttribute(bg, BG_ATTR_PALETTEMODE)) ? 0x20 : 0x40;
- void *addr = (void *)((GetBgAttribute(bg, BG_ATTR_CHARBASEINDEX) * 0x4000) + (GetBgAttribute(bg, BG_ATTR_BASETILE) + a2) * temp);
- RequestDma3Fill(a1 << 24 | a1 << 16 | a1 << 8 | a1, addr + VRAM, a3 * temp, 1);
+ int temp = (!GetBgAttribute(bg, BG_ATTR_PALETTEMODE)) ? 32 : 64;
+ void *addr = (void *)((GetBgAttribute(bg, BG_ATTR_CHARBASEINDEX) * 0x4000) + (GetBgAttribute(bg, BG_ATTR_BASETILE) + offset) * temp);
+ RequestDma3Fill(value << 24 | value << 16 | value << 8 | value, VRAM + addr, size * temp, 1);
}
void AddTextPrinterParameterized3(u8 windowId, u8 fontId, u8 left, u8 top, const u8 *color, s8 speed, const u8 *str)
@@ -2009,11 +2003,10 @@ void PrintPlayerNameOnWindow(u8 windowId, const u8 *src, u16 x, u16 y)
StringExpandPlaceholders(gStringVar4, src);
- AddTextPrinterParameterized(windowId, 1, gStringVar4, x, y, 0xFF, 0);
+ AddTextPrinterParameterized(windowId, 1, gStringVar4, x, y, TEXT_SKIP_DRAW, 0);
}
-// Unused. Similar to BlitBitmapRect4Bit.
-void sub_819A080(const struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 srcY, u16 dstX, u16 dstY, u16 width, u16 height)
+static void UnusedBlitBitmapRect(const struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 srcY, u16 dstX, u16 dstY, u16 width, u16 height)
{
int loopSrcY, loopDstY, loopSrcX, loopDstX, xEnd, yEnd, multiplierSrcY, multiplierDstY;
const u8 *pixelsSrc;
@@ -2030,8 +2023,8 @@ void sub_819A080(const struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 src
else
yEnd = srcY + height;
- multiplierSrcY = (src->width + (src->width & 7)) >> 3;
- multiplierDstY = (dst->width + (dst->width & 7)) >> 3;
+ multiplierSrcY = (src->width + (src->width % 8)) >> 3;
+ multiplierDstY = (dst->width + (dst->width % 8)) >> 3;
for (loopSrcY = srcY, loopDstY = dstY; loopSrcY < yEnd; loopSrcY++, loopDstY++)
{
@@ -2040,14 +2033,14 @@ void sub_819A080(const struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 src
pixelsSrc = src->pixels + ((loopSrcX >> 1) & 3) + ((loopSrcX >> 3) << 5) + (((loopSrcY >> 3) * multiplierSrcY) << 5) + ((u32)(loopSrcY << 29) >> 27);
pixelsDst = (void*) dst->pixels + ((loopDstX >> 1) & 3) + ((loopDstX >> 3) << 5) + ((( loopDstY >> 3) * multiplierDstY) << 5) + ((u32)(loopDstY << 29) >> 27);
- if ((uintptr_t)pixelsDst & 0x1)
+ if ((uintptr_t)pixelsDst & 1)
{
pixelsDst--;
- if (loopDstX & 0x1)
+ if (loopDstX & 1)
{
toOrr = *(vu16*)pixelsDst;
toOrr &= 0x0fff;
- if (loopSrcX & 0x1)
+ if (loopSrcX & 1)
toOrr |= ((*pixelsSrc & 0xf0) << 8);
else
toOrr |= ((*pixelsSrc & 0x0f) << 12);
@@ -2056,7 +2049,7 @@ void sub_819A080(const struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 src
{
toOrr = *(vu16*)pixelsDst;
toOrr &= 0xf0ff;
- if (loopSrcX & 0x1)
+ if (loopSrcX & 1)
toOrr |= ((*pixelsSrc & 0xf0) << 4);
else
toOrr |= ((*pixelsSrc & 0x0f) << 8);
@@ -2088,12 +2081,14 @@ void sub_819A080(const struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 src
}
}
-void sub_819A25C(u8 palOffset, u16 speciesId)
+// Unused
+static void LoadMonIconPalAtOffset(u8 palOffset, u16 speciesId)
{
LoadPalette(GetValidMonIconPalettePtr(speciesId), palOffset, 0x20);
}
-void sub_819A27C(u8 windowId, u16 speciesId, u32 personality, u16 x, u16 y)
+// Unused
+static void DrawMonIconAtPos(u8 windowId, u16 speciesId, u32 personality, u16 x, u16 y)
{
BlitBitmapToWindow(windowId, GetMonIconPtr(speciesId, personality, 1), x, y, 32, 32);
}
@@ -2106,13 +2101,13 @@ void ListMenuLoadStdPalAt(u8 palOffset, u8 palId)
{
case 0:
default:
- palette = gFireRedMenuElements1_Pal;
+ palette = gMenuInfoElements1_Pal;
break;
case 1:
- palette = gFireRedMenuElements2_Pal;
+ palette = gMenuInfoElements2_Pal;
break;
case 2:
- palette = gFireRedMenuElements3_Pal;
+ palette = gMenuInfoElements3_Pal;
break;
}
@@ -2121,7 +2116,7 @@ void ListMenuLoadStdPalAt(u8 palOffset, u8 palId)
void BlitMenuInfoIcon(u8 windowId, u8 iconId, u16 x, u16 y)
{
- BlitBitmapRectToWindow(windowId, gFireRedMenuElements_Gfx + sMenuInfoIcons[iconId].offset * 32, 0, 0, 128, 128, x, y, sMenuInfoIcons[iconId].width, sMenuInfoIcons[iconId].height);
+ BlitBitmapRectToWindow(windowId, &gMenuInfoElements_Gfx[sMenuInfoIcons[iconId].offset * 32], 0, 0, 128, 128, x, y, sMenuInfoIcons[iconId].width, sMenuInfoIcons[iconId].height);
}
void BufferSaveMenuText(u8 textId, u8 *dest, u8 color)
diff --git a/src/menu_helpers.c b/src/menu_helpers.c
index 3e6b6a914..5bc197010 100644
--- a/src/menu_helpers.c
+++ b/src/menu_helpers.c
@@ -106,14 +106,14 @@ void ResetVramOamAndBgCntRegs(void)
void ResetAllBgsCoordinates(void)
{
- ChangeBgX(0, 0, 0);
- ChangeBgY(0, 0, 0);
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
- ChangeBgX(2, 0, 0);
- ChangeBgY(2, 0, 0);
- ChangeBgX(3, 0, 0);
- ChangeBgY(3, 0, 0);
+ ChangeBgX(0, 0, BG_COORD_SET);
+ ChangeBgY(0, 0, BG_COORD_SET);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
+ ChangeBgX(2, 0, BG_COORD_SET);
+ ChangeBgY(2, 0, BG_COORD_SET);
+ ChangeBgX(3, 0, BG_COORD_SET);
+ ChangeBgY(3, 0, BG_COORD_SET);
}
void SetVBlankHBlankCallbacksToNull(void)
diff --git a/src/menu_specialized.c b/src/menu_specialized.c
index 6e13a769f..3a6a60885 100644
--- a/src/menu_specialized.c
+++ b/src/menu_specialized.c
@@ -268,7 +268,7 @@ static void MailboxMenu_ItemPrintFunc(u8 windowId, u32 itemId, u8 y)
length = StringLength(buffer);
if (length < PLAYER_NAME_LENGTH - 1)
ConvertInternationalString(buffer, LANGUAGE_JAPANESE);
- AddTextPrinterParameterized4(windowId, FONT_NORMAL, 8, y, 0, 0, sPlayerNameTextColors, -1, buffer);
+ AddTextPrinterParameterized4(windowId, FONT_NORMAL, 8, y, 0, 0, sPlayerNameTextColors, TEXT_SKIP_DRAW, buffer);
}
u8 MailboxMenu_CreateList(struct PlayerPCItemPageStruct *page)
@@ -740,30 +740,30 @@ static void MoveRelearnerLoadBattleMoveDescription(u32 chosenMove)
FillWindowPixelBuffer(0, PIXEL_FILL(1));
str = gText_MoveRelearnerBattleMoves;
x = GetStringCenterAlignXOffset(FONT_NORMAL, str, 0x80);
- AddTextPrinterParameterized(0, FONT_NORMAL, str, x, 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(0, FONT_NORMAL, str, x, 1, TEXT_SKIP_DRAW, NULL);
str = gText_MoveRelearnerPP;
- AddTextPrinterParameterized(0, FONT_NORMAL, str, 4, 0x29, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(0, FONT_NORMAL, str, 4, 0x29, TEXT_SKIP_DRAW, NULL);
str = gText_MoveRelearnerPower;
x = GetStringRightAlignXOffset(FONT_NORMAL, str, 0x6A);
- AddTextPrinterParameterized(0, FONT_NORMAL, str, x, 0x19, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(0, FONT_NORMAL, str, x, 0x19, TEXT_SKIP_DRAW, NULL);
str = gText_MoveRelearnerAccuracy;
x = GetStringRightAlignXOffset(FONT_NORMAL, str, 0x6A);
- AddTextPrinterParameterized(0, FONT_NORMAL, str, x, 0x29, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(0, FONT_NORMAL, str, x, 0x29, TEXT_SKIP_DRAW, NULL);
if (chosenMove == LIST_CANCEL)
{
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
return;
}
move = &gBattleMoves[chosenMove];
str = gTypeNames[move->type];
- AddTextPrinterParameterized(0, FONT_NORMAL, str, 4, 0x19, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(0, FONT_NORMAL, str, 4, 0x19, TEXT_SKIP_DRAW, NULL);
x = 4 + GetStringWidth(FONT_NORMAL, gText_MoveRelearnerPP, 0);
ConvertIntToDecimalStringN(buffer, move->pp, STR_CONV_MODE_LEFT_ALIGN, 2);
- AddTextPrinterParameterized(0, FONT_NORMAL, buffer, x, 0x29, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(0, FONT_NORMAL, buffer, x, 0x29, TEXT_SKIP_DRAW, NULL);
if (move->power < 2)
{
@@ -774,7 +774,7 @@ static void MoveRelearnerLoadBattleMoveDescription(u32 chosenMove)
ConvertIntToDecimalStringN(buffer, move->power, STR_CONV_MODE_LEFT_ALIGN, 3);
str = buffer;
}
- AddTextPrinterParameterized(0, FONT_NORMAL, str, 0x6A, 0x19, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(0, FONT_NORMAL, str, 0x6A, 0x19, TEXT_SKIP_DRAW, NULL);
if (move->accuracy == 0)
{
@@ -785,7 +785,7 @@ static void MoveRelearnerLoadBattleMoveDescription(u32 chosenMove)
ConvertIntToDecimalStringN(buffer, move->accuracy, STR_CONV_MODE_LEFT_ALIGN, 3);
str = buffer;
}
- AddTextPrinterParameterized(0, FONT_NORMAL, str, 0x6A, 0x29, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(0, FONT_NORMAL, str, 0x6A, 0x29, TEXT_SKIP_DRAW, NULL);
str = gMoveDescriptionPointers[chosenMove - 1];
AddTextPrinterParameterized(0, FONT_NARROW, str, 0, 0x41, 0, NULL);
@@ -801,30 +801,30 @@ static void MoveRelearnerMenuLoadContestMoveDescription(u32 chosenMove)
FillWindowPixelBuffer(1, PIXEL_FILL(1));
str = gText_MoveRelearnerContestMovesTitle;
x = GetStringCenterAlignXOffset(FONT_NORMAL, str, 0x80);
- AddTextPrinterParameterized(1, FONT_NORMAL, str, x, 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(1, FONT_NORMAL, str, x, 1, TEXT_SKIP_DRAW, NULL);
str = gText_MoveRelearnerAppeal;
x = GetStringRightAlignXOffset(FONT_NORMAL, str, 0x5C);
- AddTextPrinterParameterized(1, FONT_NORMAL, str, x, 0x19, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(1, FONT_NORMAL, str, x, 0x19, TEXT_SKIP_DRAW, NULL);
str = gText_MoveRelearnerJam;
x = GetStringRightAlignXOffset(FONT_NORMAL, str, 0x5C);
- AddTextPrinterParameterized(1, FONT_NORMAL, str, x, 0x29, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(1, FONT_NORMAL, str, x, 0x29, TEXT_SKIP_DRAW, NULL);
if (chosenMove == MENU_NOTHING_CHOSEN)
{
- CopyWindowToVram(1, 2);
+ CopyWindowToVram(1, COPYWIN_GFX);
return;
}
move = &gContestMoves[chosenMove];
str = gContestMoveTypeTextPointers[move->contestCategory];
- AddTextPrinterParameterized(1, FONT_NORMAL, str, 4, 0x19, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(1, FONT_NORMAL, str, 4, 0x19, TEXT_SKIP_DRAW, NULL);
str = gContestEffectDescriptionPointers[move->effect];
- AddTextPrinterParameterized(1, FONT_NARROW, str, 0, 0x41, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(1, FONT_NARROW, str, 0, 0x41, TEXT_SKIP_DRAW, NULL);
- CopyWindowToVram(1, 2);
+ CopyWindowToVram(1, COPYWIN_GFX);
}
static void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list)
diff --git a/src/mirage_tower.c b/src/mirage_tower.c
index 7fc883ca1..9473b0f82 100644
--- a/src/mirage_tower.c
+++ b/src/mirage_tower.c
@@ -536,8 +536,8 @@ static void InitMirageTowerShake(u8 taskId)
case 1:
sMirageTowerGfxBuffer = (u8 *)AllocZeroed(MIRAGE_TOWER_GFX_LENGTH);
sMirageTowerTilemapBuffer = (u8 *)AllocZeroed(BG_SCREEN_SIZE);
- ChangeBgX(0, 0, 0);
- ChangeBgY(0, 0, 0);
+ ChangeBgX(0, 0, BG_COORD_SET);
+ ChangeBgY(0, 0, BG_COORD_SET);
gTasks[taskId].tState++;
break;
case 2:
diff --git a/src/money.c b/src/money.c
index db571939a..c331462d4 100644
--- a/src/money.c
+++ b/src/money.c
@@ -171,7 +171,7 @@ void DrawMoneyBox(int amount, u8 x, u8 y)
sMoneyBoxWindowId = AddWindow(&template);
FillWindowPixelBuffer(sMoneyBoxWindowId, PIXEL_FILL(0));
PutWindowTilemap(sMoneyBoxWindowId);
- CopyWindowToVram(sMoneyBoxWindowId, 1);
+ CopyWindowToVram(sMoneyBoxWindowId, COPYWIN_MAP);
PrintMoneyAmountInMoneyBoxWithBorder(sMoneyBoxWindowId, 0x214, 14, amount);
AddMoneyLabelObject((8 * x) + 19, (8 * y) + 11);
}
@@ -180,7 +180,7 @@ void HideMoneyBox(void)
{
RemoveMoneyLabelObject();
ClearStdWindowAndFrameToTransparent(sMoneyBoxWindowId, FALSE);
- CopyWindowToVram(sMoneyBoxWindowId, 2);
+ CopyWindowToVram(sMoneyBoxWindowId, COPYWIN_GFX);
RemoveWindow(sMoneyBoxWindowId);
}
diff --git a/src/move_relearner.c b/src/move_relearner.c
index 554f84fe9..92d230616 100644
--- a/src/move_relearner.c
+++ b/src/move_relearner.c
@@ -687,7 +687,7 @@ static void DoMoveRelearnerMain(void)
ShowTeachMoveText(TRUE);
}
RemoveScrollArrows();
- CopyWindowToVram(3, 2);
+ CopyWindowToVram(3, COPYWIN_GFX);
break;
case MENU_STATE_TRY_OVERWRITE_MOVE:
if (!gPaletteFade.active)
diff --git a/src/mystery_event_menu.c b/src/mystery_event_menu.c
index 4467dd52e..717931268 100644
--- a/src/mystery_event_menu.c
+++ b/src/mystery_event_menu.c
@@ -133,7 +133,7 @@ static void CB2_MysteryEventMenu(void)
case 0:
DrawStdFrameWithCustomTileAndPalette(0, 1, 1, 0xD);
PutWindowTilemap(0);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
ShowBg(0);
BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK);
gMain.state++;
@@ -181,7 +181,7 @@ static void CB2_MysteryEventMenu(void)
DrawStdFrameWithCustomTileAndPalette(1, 1, 1, 0xD);
PrintMysteryMenuText(1, gText_LoadingEvent, 1, 2, 0);
PutWindowTilemap(1);
- CopyWindowToVram(1, 3);
+ CopyWindowToVram(1, COPYWIN_FULL);
gMain.state++;
}
else if (JOY_NEW(B_BUTTON))
diff --git a/src/mystery_gift_menu.c b/src/mystery_gift_menu.c
index a00761f96..b970711fd 100644
--- a/src/mystery_gift_menu.c
+++ b/src/mystery_gift_menu.c
@@ -387,14 +387,14 @@ static bool32 HandleMysteryGiftOrEReaderSetup(s32 isEReader)
ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, sBGTemplates, ARRAY_COUNT(sBGTemplates));
- ChangeBgX(0, 0, 0);
- ChangeBgY(0, 0, 0);
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
- ChangeBgX(2, 0, 0);
- ChangeBgY(2, 0, 0);
- ChangeBgX(3, 0, 0);
- ChangeBgY(3, 0, 0);
+ ChangeBgX(0, 0, BG_COORD_SET);
+ ChangeBgY(0, 0, BG_COORD_SET);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
+ ChangeBgX(2, 0, BG_COORD_SET);
+ ChangeBgY(2, 0, BG_COORD_SET);
+ ChangeBgX(3, 0, BG_COORD_SET);
+ ChangeBgY(3, 0, BG_COORD_SET);
SetBgTilemapBuffer(3, Alloc(BG_SCREEN_SIZE));
SetBgTilemapBuffer(2, Alloc(BG_SCREEN_SIZE));
@@ -490,9 +490,9 @@ void PrintMysteryGiftOrEReaderTopMenu(bool8 isEReader, bool32 useCancel)
options = gJPText_DecideStop;
}
- AddTextPrinterParameterized4(0, FONT_NORMAL, 4, 1, 0, 0, sTextColors_TopMenu, TEXT_SPEED_FF, header);
- AddTextPrinterParameterized4(0, FONT_SMALL, GetStringRightAlignXOffset(FONT_SMALL, options, 0xDE), 1, 0, 0, sTextColors_TopMenu, TEXT_SPEED_FF, options);
- CopyWindowToVram(0, 2);
+ AddTextPrinterParameterized4(0, FONT_NORMAL, 4, 1, 0, 0, sTextColors_TopMenu, TEXT_SKIP_DRAW, header);
+ AddTextPrinterParameterized4(0, FONT_SMALL, GetStringRightAlignXOffset(FONT_SMALL, options, 0xDE), 1, 0, 0, sTextColors_TopMenu, TEXT_SKIP_DRAW, options);
+ CopyWindowToVram(0, COPYWIN_GFX);
PutWindowTilemap(0);
}
@@ -540,14 +540,14 @@ void AddTextPrinterToWindow1(const u8 *str)
AddTextPrinterParameterized4(1, FONT_NORMAL, 0, 1, 0, 0, sMG_Ereader_TextColor_2, 0, gStringVar4);
DrawTextBorderOuter(1, 0x001, 0xF);
PutWindowTilemap(1);
- CopyWindowToVram(1, 3);
+ CopyWindowToVram(1, COPYWIN_FULL);
}
static void ClearTextWindow(void)
{
rbox_fill_rectangle(1);
ClearWindowTilemap(1);
- CopyWindowToVram(1, 1);
+ CopyWindowToVram(1, COPYWIN_MAP);
}
#define DOWN_ARROW_X 208
@@ -649,7 +649,7 @@ static u32 MysteryGift_HandleThreeOptionMenu(u8 * unused0, u16 * unused1, u8 whi
if (response != LIST_NOTHING_CHOSEN)
{
ClearWindowTilemap(2);
- CopyWindowToVram(2, 1);
+ CopyWindowToVram(2, COPYWIN_MAP);
}
return response;
}
@@ -671,7 +671,7 @@ s8 DoMysteryGiftYesNo(u8 * textState, u16 * windowId, bool8 yesNoBoxPlacement, c
FillWindowPixelBuffer(*windowId, 0x11);
AddTextPrinterParameterized4(*windowId, FONT_NORMAL, 0, 1, 0, 0, sMG_Ereader_TextColor_2, 0, gStringVar4);
DrawTextBorderOuter(*windowId, 0x001, 0x0F);
- CopyWindowToVram(*windowId, 2);
+ CopyWindowToVram(*windowId, COPYWIN_GFX);
PutWindowTilemap(*windowId);
(*textState)++;
break;
@@ -693,7 +693,7 @@ s8 DoMysteryGiftYesNo(u8 * textState, u16 * windowId, bool8 yesNoBoxPlacement, c
*textState = 0;
rbox_fill_rectangle(*windowId);
ClearWindowTilemap(*windowId);
- CopyWindowToVram(*windowId, 1);
+ CopyWindowToVram(*windowId, COPYWIN_MAP);
RemoveWindow(*windowId);
return input;
}
@@ -702,7 +702,7 @@ s8 DoMysteryGiftYesNo(u8 * textState, u16 * windowId, bool8 yesNoBoxPlacement, c
*textState = 0;
rbox_fill_rectangle(*windowId);
ClearWindowTilemap(*windowId);
- CopyWindowToVram(*windowId, 1);
+ CopyWindowToVram(*windowId, COPYWIN_MAP);
RemoveWindow(*windowId);
return MENU_B_PRESSED;
}
@@ -728,7 +728,7 @@ static s32 HandleGiftSelectMenu(u8 * textState, u16 * windowId, bool32 cannotTos
FillWindowPixelBuffer(*windowId, 0x11);
AddTextPrinterParameterized4(*windowId, FONT_NORMAL, 0, 1, 0, 0, sMG_Ereader_TextColor_2, 0, gStringVar4);
DrawTextBorderOuter(*windowId, 0x001, 0x0F);
- CopyWindowToVram(*windowId, 2);
+ CopyWindowToVram(*windowId, COPYWIN_GFX);
PutWindowTilemap(*windowId);
(*textState)++;
break;
@@ -753,7 +753,7 @@ static s32 HandleGiftSelectMenu(u8 * textState, u16 * windowId, bool32 cannotTos
*textState = 0;
rbox_fill_rectangle(*windowId);
ClearWindowTilemap(*windowId);
- CopyWindowToVram(*windowId, 1);
+ CopyWindowToVram(*windowId, COPYWIN_MAP);
RemoveWindow(*windowId);
return input;
}
@@ -762,7 +762,7 @@ static s32 HandleGiftSelectMenu(u8 * textState, u16 * windowId, bool32 cannotTos
*textState = 0;
rbox_fill_rectangle(*windowId);
ClearWindowTilemap(*windowId);
- CopyWindowToVram(*windowId, 1);
+ CopyWindowToVram(*windowId, COPYWIN_MAP);
RemoveWindow(*windowId);
return LIST_CANCEL;
}
diff --git a/src/mystery_gift_view.c b/src/mystery_gift_view.c
index 400367b92..3047a219e 100644
--- a/src/mystery_gift_view.c
+++ b/src/mystery_gift_view.c
@@ -479,7 +479,7 @@ static void DrawCardWindow(u8 whichWindow)
}
break;
}
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_FULL);
}
static void CreateCardSprites(void)
@@ -678,10 +678,10 @@ s32 WonderNews_Enter(void)
case 1:
if (UpdatePaletteFade())
return 0;
- ChangeBgY(0, 0, 0);
- ChangeBgY(1, 0, 0);
- ChangeBgY(2, 0, 0);
- ChangeBgY(3, 0, 0);
+ ChangeBgY(0, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
+ ChangeBgY(2, 0, BG_COORD_SET);
+ ChangeBgY(3, 0, BG_COORD_SET);
SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, DISPLAY_WIDTH));
SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(26, 152));
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ);
@@ -753,7 +753,7 @@ s32 WonderNews_Exit(bool32 useCancel)
case 1:
if (UpdatePaletteFade())
return 0;
- ChangeBgY(2, 0, 0);
+ ChangeBgY(2, 0, BG_COORD_SET);
SetGpuReg(REG_OFFSET_WIN0H, 0);
SetGpuReg(REG_OFFSET_WIN0V, 0);
SetGpuReg(REG_OFFSET_WININ, 0);
@@ -777,8 +777,8 @@ s32 WonderNews_Exit(bool32 useCancel)
RemoveWindow(sWonderNewsData->windowIds[NEWS_WIN_TITLE]);
break;
case 4:
- ChangeBgY(2, 0, 0);
- ChangeBgY(3, 0, 0);
+ ChangeBgY(2, 0, BG_COORD_SET);
+ ChangeBgY(3, 0, BG_COORD_SET);
if (sWonderNewsData->arrowTaskId != TASK_NONE)
{
RemoveScrollIndicatorArrowPair(sWonderNewsData->arrowTaskId);
@@ -905,8 +905,8 @@ static void DrawNewsWindows(void)
sNews_TextColorTable[sWonderNewsData->gfx->bodyTextPal],
0, sWonderNewsData->bodyText[i]);
- CopyWindowToVram(sWonderNewsData->windowIds[NEWS_WIN_TITLE], 3);
- CopyWindowToVram(sWonderNewsData->windowIds[NEWS_WIN_BODY], 3);
+ CopyWindowToVram(sWonderNewsData->windowIds[NEWS_WIN_TITLE], COPYWIN_FULL);
+ CopyWindowToVram(sWonderNewsData->windowIds[NEWS_WIN_BODY], COPYWIN_FULL);
}
static void UpdateNewsScroll(void)
diff --git a/src/naming_screen.c b/src/naming_screen.c
index 65629215c..dcd60259b 100644
--- a/src/naming_screen.c
+++ b/src/naming_screen.c
@@ -516,14 +516,14 @@ static void NamingScreen_InitBGs(void)
ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates));
- ChangeBgX(0, 0, 0);
- ChangeBgY(0, 0, 0);
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
- ChangeBgX(2, 0, 0);
- ChangeBgY(2, 0, 0);
- ChangeBgX(3, 0, 0);
- ChangeBgY(3, 0, 0);
+ ChangeBgX(0, 0, BG_COORD_SET);
+ ChangeBgY(0, 0, BG_COORD_SET);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
+ ChangeBgX(2, 0, BG_COORD_SET);
+ ChangeBgY(2, 0, BG_COORD_SET);
+ ChangeBgX(3, 0, BG_COORD_SET);
+ ChangeBgY(3, 0, BG_COORD_SET);
InitStandardTextBoxWindows();
InitTextBoxGfxAndPrinters();
@@ -741,7 +741,7 @@ static void DisplaySentToPCMessage(void)
DrawDialogueFrame(0, 0);
gTextFlags.canABSpeedUpPrint = TRUE;
AddTextPrinterParameterized2(0, FONT_NORMAL, gStringVar4, GetPlayerTextSpeedDelay(), 0, 2, 1, 3);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
}
static bool8 MainState_WaitSentToPCMessage(void)
@@ -1781,7 +1781,7 @@ static void DrawGenderIcon(void)
StringCopy(text, gText_FemaleSymbol);
isFemale = TRUE;
}
- AddTextPrinterParameterized3(sNamingScreen->windows[WIN_TEXT_ENTRY], FONT_NORMAL, 0x68, 1, sGenderColors[isFemale], -1, text);
+ AddTextPrinterParameterized3(sNamingScreen->windows[WIN_TEXT_ENTRY], FONT_NORMAL, 0x68, 1, sGenderColors[isFemale], TEXT_SKIP_DRAW, text);
}
}
@@ -1921,11 +1921,11 @@ static void DrawTextEntry(void)
temp[1] = gText_ExpandedPlaceholder_Empty[0];
extraWidth = (IsWideLetter(temp[0]) == TRUE) ? 2 : 0;
- AddTextPrinterParameterized(sNamingScreen->windows[WIN_TEXT_ENTRY], FONT_NORMAL, temp, i * 8 + x + extraWidth, 1, 0xFF, NULL);
+ AddTextPrinterParameterized(sNamingScreen->windows[WIN_TEXT_ENTRY], FONT_NORMAL, temp, i * 8 + x + extraWidth, 1, TEXT_SKIP_DRAW, NULL);
}
TryDrawGenderIcon();
- CopyWindowToVram(sNamingScreen->windows[WIN_TEXT_ENTRY], 2);
+ CopyWindowToVram(sNamingScreen->windows[WIN_TEXT_ENTRY], COPYWIN_GFX);
PutWindowTilemap(sNamingScreen->windows[WIN_TEXT_ENTRY]);
}
@@ -2012,7 +2012,7 @@ static void PrintControls(void)
FillWindowPixelBuffer(sNamingScreen->windows[WIN_BANNER], PIXEL_FILL(15));
AddTextPrinterParameterized3(sNamingScreen->windows[WIN_BANNER], FONT_SMALL, 2, 1, color, 0, gText_MoveOkBack);
PutWindowTilemap(sNamingScreen->windows[WIN_BANNER]);
- CopyWindowToVram(sNamingScreen->windows[WIN_BANNER], 3);
+ CopyWindowToVram(sNamingScreen->windows[WIN_BANNER], COPYWIN_FULL);
}
static void CB2_NamingScreen(void)
diff --git a/src/option_menu.c b/src/option_menu.c
index d96ed1ecf..e66bddd7f 100644
--- a/src/option_menu.c
+++ b/src/option_menu.c
@@ -173,14 +173,14 @@ void CB2_InitOptionMenu(void)
SetGpuReg(REG_OFFSET_DISPCNT, 0);
ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, sOptionMenuBgTemplates, ARRAY_COUNT(sOptionMenuBgTemplates));
- ChangeBgX(0, 0, 0);
- ChangeBgY(0, 0, 0);
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
- ChangeBgX(2, 0, 0);
- ChangeBgY(2, 0, 0);
- ChangeBgX(3, 0, 0);
- ChangeBgY(3, 0, 0);
+ ChangeBgX(0, 0, BG_COORD_SET);
+ ChangeBgY(0, 0, BG_COORD_SET);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
+ ChangeBgX(2, 0, BG_COORD_SET);
+ ChangeBgY(2, 0, BG_COORD_SET);
+ ChangeBgX(3, 0, BG_COORD_SET);
+ ChangeBgY(3, 0, BG_COORD_SET);
InitWindows(sOptionMenuWinTemplates);
DeactivateAllTextPrinters();
SetGpuReg(REG_OFFSET_WIN0H, 0);
@@ -251,7 +251,7 @@ void CB2_InitOptionMenu(void)
FrameType_DrawChoices(gTasks[taskId].data[TD_FRAMETYPE]);
HighlightOptionMenuItem(gTasks[taskId].data[TD_MENUSELECTION]);
- CopyWindowToVram(WIN_OPTIONS, 3);
+ CopyWindowToVram(WIN_OPTIONS, COPYWIN_FULL);
gMain.state++;
break;
}
@@ -351,7 +351,7 @@ static void Task_OptionMenuProcessInput(u8 taskId)
if (sArrowPressed)
{
sArrowPressed = FALSE;
- CopyWindowToVram(WIN_OPTIONS, 2);
+ CopyWindowToVram(WIN_OPTIONS, COPYWIN_GFX);
}
}
}
@@ -400,7 +400,7 @@ static void DrawOptionMenuChoice(const u8 *text, u8 x, u8 y, u8 style)
}
dst[i] = EOS;
- AddTextPrinterParameterized(WIN_OPTIONS, FONT_NORMAL, dst, x, y + 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(WIN_OPTIONS, FONT_NORMAL, dst, x, y + 1, TEXT_SKIP_DRAW, NULL);
}
static u8 TextSpeed_ProcessInput(u8 selection)
@@ -626,8 +626,8 @@ static void ButtonMode_DrawChoices(u8 selection)
static void DrawTextOption(void)
{
FillWindowPixelBuffer(WIN_TEXT_OPTION, PIXEL_FILL(1));
- AddTextPrinterParameterized(WIN_TEXT_OPTION, FONT_NORMAL, gText_Option, 8, 1, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(WIN_TEXT_OPTION, 3);
+ AddTextPrinterParameterized(WIN_TEXT_OPTION, FONT_NORMAL, gText_Option, 8, 1, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(WIN_TEXT_OPTION, COPYWIN_FULL);
}
static void DrawOptionMenuTexts(void)
@@ -636,10 +636,8 @@ static void DrawOptionMenuTexts(void)
FillWindowPixelBuffer(WIN_OPTIONS, PIXEL_FILL(1));
for (i = 0; i < MENUITEM_COUNT; i++)
- {
- AddTextPrinterParameterized(WIN_OPTIONS, FONT_NORMAL, sOptionMenuItemsNames[i], 8, (i * 16) + 1, TEXT_SPEED_FF, NULL);
- }
- CopyWindowToVram(WIN_OPTIONS, 3);
+ AddTextPrinterParameterized(WIN_OPTIONS, FONT_NORMAL, sOptionMenuItemsNames[i], 8, (i * 16) + 1, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(WIN_OPTIONS, COPYWIN_FULL);
}
#define TILE_TOP_CORNER_L 0x1A2
diff --git a/src/overworld.c b/src/overworld.c
index 8b32b286c..a44d3c050 100644
--- a/src/overworld.c
+++ b/src/overworld.c
@@ -1254,7 +1254,7 @@ static void PlayAmbientCry(void)
return;
pan = (Random() % 88) + 212;
volume = (Random() % 30) + 50;
- PlayCry2(sAmbientCrySpecies, pan, volume, 1);
+ PlayCry_NormalNoDucking(sAmbientCrySpecies, pan, volume, CRY_PRIORITY_AMBIENT);
}
void UpdateAmbientCry(s16 *state, u16 *delayCounter)
@@ -2101,14 +2101,14 @@ static void InitOverworldGraphicsRegisters(void)
ScheduleBgCopyTilemapToVram(1);
ScheduleBgCopyTilemapToVram(2);
ScheduleBgCopyTilemapToVram(3);
- ChangeBgX(0, 0, 0);
- ChangeBgY(0, 0, 0);
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
- ChangeBgX(2, 0, 0);
- ChangeBgY(2, 0, 0);
- ChangeBgX(3, 0, 0);
- ChangeBgY(3, 0, 0);
+ ChangeBgX(0, 0, BG_COORD_SET);
+ ChangeBgY(0, 0, BG_COORD_SET);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
+ ChangeBgX(2, 0, BG_COORD_SET);
+ ChangeBgY(2, 0, BG_COORD_SET);
+ ChangeBgX(3, 0, BG_COORD_SET);
+ ChangeBgY(3, 0, BG_COORD_SET);
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_WIN0_ON | DISPCNT_WIN1_ON
| DISPCNT_OBJ_1D_MAP | DISPCNT_HBLANK_INTERVAL);
ShowBg(0);
diff --git a/src/palette.c b/src/palette.c
index e106ce685..9fec449bc 100644
--- a/src/palette.c
+++ b/src/palette.c
@@ -16,36 +16,38 @@ enum
// These are structs for some unused palette system.
// The full functionality of this system is unknown.
+#define NUM_PALETTE_STRUCTS 16
+
struct PaletteStructTemplate
{
- u16 uid;
+ u16 id;
u16 *src;
- u16 pst_field_8_0:1;
- u16 pst_field_8_1:9;
+ bool16 pst_field_8_0:1;
+ u16 unused:9;
u16 size:5;
- u16 pst_field_9_7:1;
- u8 pst_field_A;
+ u8 time1;
u8 srcCount:5;
- u8 pst_field_B_5:3;
- u8 pst_field_C;
+ u8 state:3;
+ u8 time2;
};
struct PaletteStruct
{
- const struct PaletteStructTemplate *base;
- u32 ps_field_4_0:1;
- u16 ps_field_4_1:1;
+ const struct PaletteStructTemplate *template;
+ bool32 active:1;
+ bool32 flag:1;
u32 baseDestOffset:9;
- u16 destOffset:10;
- u16 srcIndex:7;
- u8 ps_field_8;
- u8 ps_field_9;
+ u32 destOffset:10;
+ u32 srcIndex:7;
+ u8 countdown1;
+ u8 countdown2;
};
-static void unused_sub_80A1CDC(struct PaletteStruct *, u32 *);
-static void unused_sub_80A1E40(struct PaletteStruct *, u32 *);
-static void unused_sub_80A1F00(struct PaletteStruct *);
-static u8 GetPaletteNumByUid(u16);
+static void PaletteStruct_Copy(struct PaletteStruct *, u32 *);
+static void PaletteStruct_Blend(struct PaletteStruct *, u32 *);
+static void PaletteStruct_TryEnd(struct PaletteStruct *);
+static void PaletteStruct_Reset(u8);
+static u8 PaletteStruct_GetPalNum(u16);
static u8 UpdateNormalPaletteFade(void);
static void BeginFastPaletteFadeInternal(u8);
static u8 UpdateFastPaletteFade(void);
@@ -58,15 +60,15 @@ static void Task_BlendPalettesGradually(u8 taskId);
// unaligned word reads are issued in BlendPalette otherwise
ALIGNED(4) EWRAM_DATA u16 gPlttBufferUnfaded[PLTT_BUFFER_SIZE] = {0};
ALIGNED(4) EWRAM_DATA u16 gPlttBufferFaded[PLTT_BUFFER_SIZE] = {0};
-EWRAM_DATA struct PaletteStruct sPaletteStructs[0x10] = {0};
+EWRAM_DATA struct PaletteStruct sPaletteStructs[NUM_PALETTE_STRUCTS] = {0};
EWRAM_DATA struct PaletteFadeControl gPaletteFade = {0};
static EWRAM_DATA u32 sFiller = 0;
static EWRAM_DATA u32 sPlttBufferTransferPending = 0;
EWRAM_DATA u8 gPaletteDecompressionBuffer[PLTT_DECOMP_BUFFER_SIZE] = {0};
static const struct PaletteStructTemplate gDummyPaletteStructTemplate = {
- .uid = 0xFFFF,
- .pst_field_B_5 = 1
+ .id = 0xFFFF,
+ .state = 1
};
static const u8 sRoundedDownGrayscaleMap[] = {
@@ -82,20 +84,20 @@ static const u8 sRoundedDownGrayscaleMap[] = {
void LoadCompressedPalette(const u32 *src, u16 offset, u16 size)
{
LZDecompressWram(src, gPaletteDecompressionBuffer);
- CpuCopy16(gPaletteDecompressionBuffer, gPlttBufferUnfaded + offset, size);
- CpuCopy16(gPaletteDecompressionBuffer, gPlttBufferFaded + offset, size);
+ CpuCopy16(gPaletteDecompressionBuffer, &gPlttBufferUnfaded[offset], size);
+ CpuCopy16(gPaletteDecompressionBuffer, &gPlttBufferFaded[offset], size);
}
void LoadPalette(const void *src, u16 offset, u16 size)
{
- CpuCopy16(src, gPlttBufferUnfaded + offset, size);
- CpuCopy16(src, gPlttBufferFaded + offset, size);
+ CpuCopy16(src, &gPlttBufferUnfaded[offset], size);
+ CpuCopy16(src, &gPlttBufferFaded[offset], size);
}
void FillPalette(u16 value, u16 offset, u16 size)
{
- CpuFill16(value, gPlttBufferUnfaded + offset, size);
- CpuFill16(value, gPlttBufferFaded + offset, size);
+ CpuFill16(value, &gPlttBufferUnfaded[offset], size);
+ CpuFill16(value, &gPlttBufferFaded[offset], size);
}
void TransferPlttBuffer(void)
@@ -105,7 +107,7 @@ void TransferPlttBuffer(void)
void *src = gPlttBufferFaded;
void *dest = (void *)PLTT;
DmaCopy16(3, src, dest, PLTT_SIZE);
- sPlttBufferTransferPending = 0;
+ sPlttBufferTransferPending = FALSE;
if (gPaletteFade.mode == HARDWARE_FADE && gPaletteFade.active)
UpdateBlendRegisters();
}
@@ -135,13 +137,13 @@ void ResetPaletteFade(void)
{
u8 i;
- for (i = 0; i < 16; i++)
- ResetPaletteStruct(i);
+ for (i = 0; i < NUM_PALETTE_STRUCTS; i++)
+ PaletteStruct_Reset(i);
ResetPaletteFadeControl();
}
-void ReadPlttIntoBuffers(void)
+static void ReadPlttIntoBuffers(void)
{
u16 i;
u16 *pltt = (u16 *)PLTT;
@@ -178,7 +180,7 @@ bool8 BeginNormalPaletteFade(u32 selectedPalettes, s8 delay, u8 startY, u8 targe
gPaletteFade.y = startY;
gPaletteFade.targetY = targetY;
gPaletteFade.blendColor = color;
- gPaletteFade.active = 1;
+ gPaletteFade.active = TRUE;
gPaletteFade.mode = NORMAL_FADE;
if (startY < targetY)
@@ -189,9 +191,9 @@ bool8 BeginNormalPaletteFade(u32 selectedPalettes, s8 delay, u8 startY, u8 targe
UpdatePaletteFade();
temp = gPaletteFade.bufferTransferDisabled;
- gPaletteFade.bufferTransferDisabled = 0;
+ gPaletteFade.bufferTransferDisabled = FALSE;
CpuCopy32(gPlttBufferFaded, (void *)PLTT, PLTT_SIZE);
- sPlttBufferTransferPending = 0;
+ sPlttBufferTransferPending = FALSE;
if (gPaletteFade.mode == HARDWARE_FADE && gPaletteFade.active)
UpdateBlendRegisters();
gPaletteFade.bufferTransferDisabled = temp;
@@ -199,55 +201,55 @@ bool8 BeginNormalPaletteFade(u32 selectedPalettes, s8 delay, u8 startY, u8 targe
}
}
-bool8 unref_sub_80A1C1C(u32 a1, u8 a2, u8 a3, u8 a4, u16 a5)
+// Unused
+static bool8 BeginPlttFade(u32 selectedPalettes, u8 delay, u8 startY, u8 targetY, u16 blendColor)
{
ReadPlttIntoBuffers();
- return BeginNormalPaletteFade(a1, a2, a3, a4, a5);
+ return BeginNormalPaletteFade(selectedPalettes, delay, startY, targetY, blendColor);
}
-void unref_sub_80A1C64(u8 a1, u32 *a2)
+// Unused
+static void PaletteStruct_Run(u8 a1, u32 *unkFlags)
{
u8 i;
- for (i = 0; i < 16; i++)
+ for (i = 0; i < NUM_PALETTE_STRUCTS; i++)
{
struct PaletteStruct *palstruct = &sPaletteStructs[i];
- if (palstruct->ps_field_4_0)
+ if (palstruct->active)
{
- if (palstruct->base->pst_field_8_0 == a1)
+ if (palstruct->template->pst_field_8_0 == a1)
{
- u8 val1 = palstruct->srcIndex;
- u8 val2 = palstruct->base->srcCount;
- if (val1 == val2)
+ if (palstruct->srcIndex == palstruct->template->srcCount)
{
- unused_sub_80A1F00(palstruct);
- if (!palstruct->ps_field_4_0)
+ PaletteStruct_TryEnd(palstruct);
+ if (!palstruct->active)
continue;
}
- if (palstruct->ps_field_8 == 0)
- unused_sub_80A1CDC(palstruct, a2);
+ if (palstruct->countdown1 == 0)
+ PaletteStruct_Copy(palstruct, unkFlags);
else
- palstruct->ps_field_8--;
+ palstruct->countdown1--;
- unused_sub_80A1E40(palstruct, a2);
+ PaletteStruct_Blend(palstruct, unkFlags);
}
}
}
}
-static void unused_sub_80A1CDC(struct PaletteStruct *a1, u32 *a2)
+static void PaletteStruct_Copy(struct PaletteStruct *a1, u32 *unkFlags)
{
s32 srcIndex;
s32 srcCount;
u8 i = 0;
- u16 srcOffset = a1->srcIndex * a1->base->size;
+ u16 srcOffset = a1->srcIndex * a1->template->size;
- if (!a1->base->pst_field_8_0)
+ if (!a1->template->pst_field_8_0)
{
- while (i < a1->base->size)
+ while (i < a1->template->size)
{
- gPlttBufferUnfaded[a1->destOffset] = a1->base->src[srcOffset];
- gPlttBufferFaded[a1->destOffset] = a1->base->src[srcOffset];
+ gPlttBufferUnfaded[a1->destOffset] = a1->template->src[srcOffset];
+ gPlttBufferFaded[a1->destOffset] = a1->template->src[srcOffset];
i++;
a1->destOffset++;
srcOffset++;
@@ -255,9 +257,9 @@ static void unused_sub_80A1CDC(struct PaletteStruct *a1, u32 *a2)
}
else
{
- while (i < a1->base->size)
+ while (i < a1->template->size)
{
- gPlttBufferFaded[a1->destOffset] = a1->base->src[srcOffset];
+ gPlttBufferFaded[a1->destOffset] = a1->template->src[srcOffset];
i++;
a1->destOffset++;
srcOffset++;
@@ -265,33 +267,33 @@ static void unused_sub_80A1CDC(struct PaletteStruct *a1, u32 *a2)
}
a1->destOffset = a1->baseDestOffset;
- a1->ps_field_8 = a1->base->pst_field_A;
+ a1->countdown1 = a1->template->time1;
a1->srcIndex++;
srcIndex = a1->srcIndex;
- srcCount = a1->base->srcCount;
+ srcCount = a1->template->srcCount;
if (srcIndex >= srcCount)
{
- if (a1->ps_field_9)
- a1->ps_field_9--;
+ if (a1->countdown2)
+ a1->countdown2--;
a1->srcIndex = 0;
}
- *a2 |= 1 << (a1->baseDestOffset >> 4);
+ *unkFlags |= 1 << (a1->baseDestOffset >> 4);
}
-static void unused_sub_80A1E40(struct PaletteStruct *a1, u32 *a2)
+static void PaletteStruct_Blend(struct PaletteStruct *a1, u32 *unkFlags)
{
if (gPaletteFade.active && ((1 << (a1->baseDestOffset >> 4)) & gPaletteFade_selectedPalettes))
{
- if (!a1->base->pst_field_8_0)
+ if (!a1->template->pst_field_8_0)
{
if (gPaletteFade.delayCounter != gPaletteFade_delay)
{
BlendPalette(
a1->baseDestOffset,
- a1->base->size,
+ a1->template->size,
gPaletteFade.y,
gPaletteFade.blendColor);
}
@@ -300,64 +302,64 @@ static void unused_sub_80A1E40(struct PaletteStruct *a1, u32 *a2)
{
if (!gPaletteFade.delayCounter)
{
- if (a1->ps_field_8 != a1->base->pst_field_A)
+ if (a1->countdown1 != a1->template->time1)
{
- u32 srcOffset = a1->srcIndex * a1->base->size;
+ u32 srcOffset = a1->srcIndex * a1->template->size;
u8 i;
- for (i = 0; i < a1->base->size; i++)
- gPlttBufferFaded[a1->baseDestOffset + i] = a1->base->src[srcOffset + i];
+ for (i = 0; i < a1->template->size; i++)
+ gPlttBufferFaded[a1->baseDestOffset + i] = a1->template->src[srcOffset + i];
}
}
}
}
}
-static void unused_sub_80A1F00(struct PaletteStruct *a1)
+static void PaletteStruct_TryEnd(struct PaletteStruct *pal)
{
- if (!a1->ps_field_9)
+ if (pal->countdown2 == 0)
{
- s32 val = a1->base->pst_field_B_5;
+ s32 state = pal->template->state;
- if (!val)
+ if (state == 0)
{
- a1->srcIndex = 0;
- a1->ps_field_8 = a1->base->pst_field_A;
- a1->ps_field_9 = a1->base->pst_field_C;
- a1->destOffset = a1->baseDestOffset;
+ pal->srcIndex = 0;
+ pal->countdown1 = pal->template->time1;
+ pal->countdown2 = pal->template->time2;
+ pal->destOffset = pal->baseDestOffset;
}
else
{
- if (val < 0)
+ if (state < 0)
return;
- if (val > 2)
+ if (state > 2)
return;
- ResetPaletteStructByUid(a1->base->uid);
+ PaletteStruct_ResetById(pal->template->id);
}
}
else
{
- a1->ps_field_9--;
+ pal->countdown2--;
}
}
-void ResetPaletteStructByUid(u16 a1)
+void PaletteStruct_ResetById(u16 id)
{
- u8 paletteNum = GetPaletteNumByUid(a1);
- if (paletteNum != 16)
- ResetPaletteStruct(paletteNum);
+ u8 paletteNum = PaletteStruct_GetPalNum(id);
+ if (paletteNum != NUM_PALETTE_STRUCTS)
+ PaletteStruct_Reset(paletteNum);
}
-void ResetPaletteStruct(u8 paletteNum)
+static void PaletteStruct_Reset(u8 paletteNum)
{
- sPaletteStructs[paletteNum].base = &gDummyPaletteStructTemplate;
- sPaletteStructs[paletteNum].ps_field_4_0 = 0;
+ sPaletteStructs[paletteNum].template = &gDummyPaletteStructTemplate;
+ sPaletteStructs[paletteNum].active = FALSE;
sPaletteStructs[paletteNum].baseDestOffset = 0;
sPaletteStructs[paletteNum].destOffset = 0;
sPaletteStructs[paletteNum].srcIndex = 0;
- sPaletteStructs[paletteNum].ps_field_4_1 = 0;
- sPaletteStructs[paletteNum].ps_field_8 = 0;
- sPaletteStructs[paletteNum].ps_field_9 = 0;
+ sPaletteStructs[paletteNum].flag = 0;
+ sPaletteStructs[paletteNum].countdown1 = 0;
+ sPaletteStructs[paletteNum].countdown2 = 0;
}
void ResetPaletteFadeControl(void)
@@ -368,41 +370,41 @@ void ResetPaletteFadeControl(void)
gPaletteFade.y = 0;
gPaletteFade.targetY = 0;
gPaletteFade.blendColor = 0;
- gPaletteFade.active = 0;
+ gPaletteFade.active = FALSE;
gPaletteFade.multipurpose2 = 0; // assign same value twice
gPaletteFade.yDec = 0;
- gPaletteFade.bufferTransferDisabled = 0;
- gPaletteFade.shouldResetBlendRegisters = 0;
- gPaletteFade.hardwareFadeFinishing = 0;
- gPaletteFade.softwareFadeFinishing = 0;
+ gPaletteFade.bufferTransferDisabled = FALSE;
+ gPaletteFade.shouldResetBlendRegisters = FALSE;
+ gPaletteFade.hardwareFadeFinishing = FALSE;
+ gPaletteFade.softwareFadeFinishing = FALSE;
gPaletteFade.softwareFadeFinishingCounter = 0;
gPaletteFade.objPaletteToggle = 0;
gPaletteFade.deltaY = 2;
}
-void unref_sub_80A2048(u16 uid)
+static void PaletteStruct_SetUnusedFlag(u16 id)
{
- u8 paletteNum = GetPaletteNumByUid(uid);
- if (paletteNum != 16)
- sPaletteStructs[paletteNum].ps_field_4_1 = 1;
+ u8 paletteNum = PaletteStruct_GetPalNum(id);
+ if (paletteNum != NUM_PALETTE_STRUCTS)
+ sPaletteStructs[paletteNum].flag = TRUE;
}
-void unref_sub_80A2074(u16 uid)
+static void PaletteStruct_ClearUnusedFlag(u16 id)
{
- u8 paletteNum = GetPaletteNumByUid(uid);
- if (paletteNum != 16)
- sPaletteStructs[paletteNum].ps_field_4_1 = 0;
+ u8 paletteNum = PaletteStruct_GetPalNum(id);
+ if (paletteNum != NUM_PALETTE_STRUCTS)
+ sPaletteStructs[paletteNum].flag = FALSE;
}
-static u8 GetPaletteNumByUid(u16 uid)
+static u8 PaletteStruct_GetPalNum(u16 id)
{
u8 i;
- for (i = 0; i < 16; i++)
- if (sPaletteStructs[i].base->uid == uid)
+ for (i = 0; i < NUM_PALETTE_STRUCTS; i++)
+ if (sPaletteStructs[i].template->id == id)
return i;
- return 16;
+ return NUM_PALETTE_STRUCTS;
}
static u8 UpdateNormalPaletteFade(void)
@@ -460,7 +462,7 @@ static u8 UpdateNormalPaletteFade(void)
if (gPaletteFade.y == gPaletteFade.targetY)
{
gPaletteFade_selectedPalettes = 0;
- gPaletteFade.softwareFadeFinishing = 1;
+ gPaletteFade.softwareFadeFinishing = TRUE;
}
else
{
@@ -557,7 +559,7 @@ static void BeginFastPaletteFadeInternal(u8 submode)
{
gPaletteFade.y = 31;
gPaletteFade_submode = submode & 0x3F;
- gPaletteFade.active = 1;
+ gPaletteFade.active = TRUE;
gPaletteFade.mode = FAST_FADE;
if (submode == FAST_FADE_IN_FROM_BLACK)
@@ -719,7 +721,7 @@ static u8 UpdateFastPaletteFade(void)
}
gPaletteFade.mode = NORMAL_FADE;
- gPaletteFade.softwareFadeFinishing = 1;
+ gPaletteFade.softwareFadeFinishing = TRUE;
}
// gPaletteFade.active cannot change since the last time it was checked. So this
@@ -734,10 +736,10 @@ void BeginHardwarePaletteFade(u8 blendCnt, u8 delay, u8 y, u8 targetY, u8 should
gPaletteFade_delay = delay;
gPaletteFade.y = y;
gPaletteFade.targetY = targetY;
- gPaletteFade.active = 1;
+ gPaletteFade.active = TRUE;
gPaletteFade.mode = HARDWARE_FADE;
gPaletteFade.shouldResetBlendRegisters = shouldResetBlendRegisters & 1;
- gPaletteFade.hardwareFadeFinishing = 0;
+ gPaletteFade.hardwareFadeFinishing = FALSE;
if (y < targetY)
gPaletteFade.yDec = 0;
@@ -784,7 +786,7 @@ static u8 UpdateHardwarePaletteFade(void)
gPaletteFade_blendCnt = 0;
gPaletteFade.y = 0;
}
- gPaletteFade.shouldResetBlendRegisters = 0;
+ gPaletteFade.shouldResetBlendRegisters = FALSE;
}
// gPaletteFade.active cannot change since the last time it was checked. So this
@@ -798,11 +800,11 @@ static void UpdateBlendRegisters(void)
SetGpuReg(REG_OFFSET_BLDY, gPaletteFade.y);
if (gPaletteFade.hardwareFadeFinishing)
{
- gPaletteFade.hardwareFadeFinishing = 0;
+ gPaletteFade.hardwareFadeFinishing = FALSE;
gPaletteFade.mode = 0;
gPaletteFade_blendCnt = 0;
gPaletteFade.y = 0;
- gPaletteFade.active = 0;
+ gPaletteFade.active = FALSE;
}
}
@@ -812,8 +814,8 @@ static bool8 IsSoftwarePaletteFadeFinishing(void)
{
if (gPaletteFade.softwareFadeFinishingCounter == 4)
{
- gPaletteFade.active = 0;
- gPaletteFade.softwareFadeFinishing = 0;
+ gPaletteFade.active = FALSE;
+ gPaletteFade.softwareFadeFinishing = FALSE;
gPaletteFade.softwareFadeFinishingCounter = 0;
}
else
@@ -950,7 +952,7 @@ void TintPalette_CustomTone(u16 *palette, u16 count, u16 rTone, u16 gTone, u16 b
#define tId data[8]
// Blend the selected palettes in a series of steps toward or away from the color.
-// Only used by the Groudon/Kyogre fight scene to flash the screen for lightning
+// Only used by the Groudon/Kyogre fight scene to flash the screen for lightning.
// One call is used to fade the bg from white, while another fades the duo from black
void BlendPalettesGradually(u32 selectedPalettes, s8 delay, u8 coeff, u8 coeffTarget, u16 color, u8 priority, u8 id)
{
@@ -987,8 +989,8 @@ static bool32 IsBlendPalettesGraduallyTaskActive(u8 id)
for (i = 0; i < NUM_TASKS; i++)
if ((gTasks[i].isActive == TRUE)
- && (gTasks[i].func == Task_BlendPalettesGradually)
- && (gTasks[i].tId == id))
+ && (gTasks[i].func == Task_BlendPalettesGradually)
+ && (gTasks[i].tId == id))
return TRUE;
return FALSE;
diff --git a/src/party_menu.c b/src/party_menu.c
index 1c02a4fe8..43f522034 100755
--- a/src/party_menu.c
+++ b/src/party_menu.c
@@ -754,7 +754,7 @@ static void RenderPartyMenuBox(u8 slot)
LoadPartyBoxPalette(&sPartyMenuBoxes[slot], PARTY_PAL_NO_MON);
else
LoadPartyBoxPalette(&sPartyMenuBoxes[slot], PARTY_PAL_MULTI_ALT);
- CopyWindowToVram(sPartyMenuBoxes[slot].windowId, 2);
+ CopyWindowToVram(sPartyMenuBoxes[slot].windowId, COPYWIN_GFX);
PutWindowTilemap(sPartyMenuBoxes[slot].windowId);
ScheduleBgCopyTilemapToVram(2);
}
@@ -764,7 +764,7 @@ static void RenderPartyMenuBox(u8 slot)
{
DrawEmptySlot(sPartyMenuBoxes[slot].windowId);
LoadPartyBoxPalette(&sPartyMenuBoxes[slot], PARTY_PAL_NO_MON);
- CopyWindowToVram(sPartyMenuBoxes[slot].windowId, 2);
+ CopyWindowToVram(sPartyMenuBoxes[slot].windowId, COPYWIN_GFX);
}
else
{
@@ -2036,9 +2036,9 @@ static void CreateCancelConfirmWindows(bool8 chooseHalf)
confirmWindowId = AddWindow(&sConfirmButtonWindowTemplate);
FillWindowPixelBuffer(confirmWindowId, PIXEL_FILL(0));
mainOffset = GetStringCenterAlignXOffset(FONT_SMALL, gMenuText_Confirm, 48);
- AddTextPrinterParameterized4(confirmWindowId, FONT_SMALL, mainOffset, 1, 0, 0, sFontColorTable[0], -1, gMenuText_Confirm);
+ AddTextPrinterParameterized4(confirmWindowId, FONT_SMALL, mainOffset, 1, 0, 0, sFontColorTable[0], TEXT_SKIP_DRAW, gMenuText_Confirm);
PutWindowTilemap(confirmWindowId);
- CopyWindowToVram(confirmWindowId, 2);
+ CopyWindowToVram(confirmWindowId, COPYWIN_GFX);
cancelWindowId = AddWindow(&sMultiCancelButtonWindowTemplate);
offset = 0;
}
@@ -2053,15 +2053,15 @@ static void CreateCancelConfirmWindows(bool8 chooseHalf)
if (gPartyMenu.menuType != PARTY_MENU_TYPE_SPIN_TRADE)
{
mainOffset = GetStringCenterAlignXOffset(FONT_SMALL, gText_Cancel, 48);
- AddTextPrinterParameterized3(cancelWindowId, FONT_SMALL, mainOffset + offset, 1, sFontColorTable[0], -1, gText_Cancel);
+ AddTextPrinterParameterized3(cancelWindowId, FONT_SMALL, mainOffset + offset, 1, sFontColorTable[0], TEXT_SKIP_DRAW, gText_Cancel);
}
else
{
mainOffset = GetStringCenterAlignXOffset(FONT_SMALL, gText_Cancel2, 48);
- AddTextPrinterParameterized3(cancelWindowId, FONT_SMALL, mainOffset + offset, 1, sFontColorTable[0], -1, gText_Cancel2);
+ AddTextPrinterParameterized3(cancelWindowId, FONT_SMALL, mainOffset + offset, 1, sFontColorTable[0], TEXT_SKIP_DRAW, gText_Cancel2);
}
PutWindowTilemap(cancelWindowId);
- CopyWindowToVram(cancelWindowId, 2);
+ CopyWindowToVram(cancelWindowId, COPYWIN_GFX);
ScheduleBgCopyTilemapToVram(0);
}
}
@@ -2354,7 +2354,7 @@ static void DisplayPartyPokemonHPBar(u16 hp, u16 maxhp, struct PartyMenuBox *men
FillWindowPixelRect(menuBox->windowId, 0x0D, menuBox->infoRects->dimensions[20] + hpFraction, menuBox->infoRects->dimensions[21], menuBox->infoRects->dimensions[22] - hpFraction, 1);
FillWindowPixelRect(menuBox->windowId, 0x02, menuBox->infoRects->dimensions[20] + hpFraction, menuBox->infoRects->dimensions[21] + 1, menuBox->infoRects->dimensions[22] - hpFraction, 2);
}
- CopyWindowToVram(menuBox->windowId, 2);
+ CopyWindowToVram(menuBox->windowId, COPYWIN_GFX);
}
static void DisplayPartyPokemonDescriptionText(u8 stringID, struct PartyMenuBox *menuBox, u8 c)
@@ -2481,7 +2481,7 @@ static u8 DisplaySelectionWindow(u8 windowType)
AddTextPrinterParameterized4(sPartyMenuInternal->windowId[0], FONT_NORMAL, cursorDimension, (i * 16) + 1, letterSpacing, 0, sFontColorTable[fontColorsId], 0, sCursorOptions[sPartyMenuInternal->actions[i]].text);
}
- InitMenuInUpperLeftCorner(sPartyMenuInternal->windowId[0], sPartyMenuInternal->numActions, 0, 1);
+ InitMenuInUpperLeftCorner(sPartyMenuInternal->windowId[0], sPartyMenuInternal->numActions, 0, TRUE);
ScheduleBgCopyTilemapToVram(2);
return sPartyMenuInternal->windowId[0];
@@ -4504,11 +4504,11 @@ static void ShowMoveSelectWindow(u8 slot)
for (i = 0; i < MAX_MON_MOVES; i++)
{
move = GetMonData(&gPlayerParty[slot], MON_DATA_MOVE1 + i);
- AddTextPrinterParameterized(windowId, fontId, gMoveNames[move], 8, (i * 16) + 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(windowId, fontId, gMoveNames[move], 8, (i * 16) + 1, TEXT_SKIP_DRAW, NULL);
if (move != MOVE_NONE)
moveCount++;
}
- InitMenuInUpperLeftCornerPlaySoundWhenAPressed(windowId, moveCount, 0);
+ InitMenuInUpperLeftCornerNormal(windowId, moveCount, 0);
ScheduleBgCopyTilemapToVram(2);
}
@@ -4954,7 +4954,7 @@ static void DisplayLevelUpStatsPg1(u8 taskId)
arrayPtr[12] = CreateLevelUpStatsWindow();
DrawLevelUpWindowPg1(arrayPtr[12], arrayPtr, &arrayPtr[6], TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY);
- CopyWindowToVram(arrayPtr[12], 2);
+ CopyWindowToVram(arrayPtr[12], COPYWIN_GFX);
ScheduleBgCopyTilemapToVram(2);
}
@@ -4963,7 +4963,7 @@ static void DisplayLevelUpStatsPg2(u8 taskId)
s16 *arrayPtr = sPartyMenuInternal->data;
DrawLevelUpWindowPg2(arrayPtr[12], &arrayPtr[6], TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY);
- CopyWindowToVram(arrayPtr[12], 2);
+ CopyWindowToVram(arrayPtr[12], COPYWIN_GFX);
ScheduleBgCopyTilemapToVram(2);
}
@@ -6056,7 +6056,7 @@ static void Task_InitMultiPartnerPartySlideIn(u8 taskId)
// The first slide step also sets the sprites offscreen
gTasks[taskId].tXPos = 256;
SlideMultiPartyMenuBoxSpritesOneStep(taskId);
- ChangeBgX(2, 0x10000, 0);
+ ChangeBgX(2, 0x10000, BG_COORD_SET);
gTasks[taskId].func = Task_MultiPartnerPartySlideIn;
}
@@ -6112,7 +6112,7 @@ static void SlideMultiPartyMenuBoxSpritesOneStep(u8 taskId)
MoveMultiPartyMenuBoxSprite(sPartyMenuBoxes[i].statusSpriteId, tXPos - 8);
}
}
- ChangeBgX(2, 0x800, 1);
+ ChangeBgX(2, 0x800, BG_COORD_ADD);
}
#undef tXpos
diff --git a/src/player_pc.c b/src/player_pc.c
index b83ecdaba..06f58fdeb 100644
--- a/src/player_pc.c
+++ b/src/player_pc.c
@@ -399,8 +399,8 @@ static void InitPlayerPCMenu(u8 taskId)
windowTemplate.width = GetMaxWidthInSubsetOfMenuTable(sPlayerPCMenuActions, sTopMenuOptionOrder, sTopMenuNumOptions);
tWindowId = AddWindow(&windowTemplate);
SetStandardWindowBorderStyle(tWindowId, 0);
- sub_81995E4(tWindowId, sTopMenuNumOptions, sPlayerPCMenuActions, sTopMenuOptionOrder);
- InitMenuInUpperLeftCornerPlaySoundWhenAPressed(tWindowId, sTopMenuNumOptions, 0);
+ PrintMenuActionTextsInUpperLeftCorner(tWindowId, sTopMenuNumOptions, sPlayerPCMenuActions, sTopMenuOptionOrder);
+ InitMenuInUpperLeftCornerNormal(tWindowId, sTopMenuNumOptions, 0);
ScheduleBgCopyTilemapToVram(0);
gTasks[taskId].func = PlayerPCProcessMenuInput;
}
@@ -511,7 +511,7 @@ static void InitItemStorageMenu(u8 taskId, u8 var)
tWindowId = AddWindow(&windowTemplate);
SetStandardWindowBorderStyle(tWindowId, 0);
PrintMenuTable(tWindowId, ARRAY_COUNT(sItemStorage_MenuActions), sItemStorage_MenuActions);
- InitMenuInUpperLeftCornerPlaySoundWhenAPressed(tWindowId, 4, var);
+ InitMenuInUpperLeftCornerNormal(tWindowId, 4, var);
ScheduleBgCopyTilemapToVram(0);
ItemStorageMenuPrint(sItemStorage_OptionDescriptions[var]);
}
@@ -753,7 +753,7 @@ static void Mailbox_PrintMailOptions(u8 taskId)
{
u8 windowId = MailboxMenu_AddWindow(MAILBOXWIN_OPTIONS);
PrintMenuTable(windowId, ARRAY_COUNT(gMailboxMailOptions), gMailboxMailOptions);
- InitMenuInUpperLeftCornerPlaySoundWhenAPressed(windowId, 4, 0);
+ InitMenuInUpperLeftCornerNormal(windowId, 4, 0);
ScheduleBgCopyTilemapToVram(0);
gTasks[taskId].func = Mailbox_MailOptionsProcessInput;
}
@@ -1027,13 +1027,13 @@ static void ItemStorage_PrintMenuItem(u8 windowId, u32 id, u8 yOffset)
if (sItemStorageMenu->toSwapPos != NOT_SWAPPING)
{
if (sItemStorageMenu->toSwapPos == (u8)id)
- ItemStorage_DrawSwapArrow(yOffset, 0, TEXT_SPEED_FF);
+ ItemStorage_DrawSwapArrow(yOffset, 0, TEXT_SKIP_DRAW);
else
- ItemStorage_DrawSwapArrow(yOffset, 0xFF, TEXT_SPEED_FF);
+ ItemStorage_DrawSwapArrow(yOffset, 0xFF, TEXT_SKIP_DRAW);
}
ConvertIntToDecimalStringN(gStringVar1, gSaveBlock1Ptr->pcItems[id].quantity, STR_CONV_MODE_RIGHT_ALIGN, 3);
StringExpandPlaceholders(gStringVar4, gText_xVar1);
- AddTextPrinterParameterized(windowId, FONT_NARROW, gStringVar4, GetStringRightAlignXOffset(FONT_NARROW, gStringVar4, 104), yOffset, 0xFF, NULL);
+ AddTextPrinterParameterized(windowId, FONT_NARROW, gStringVar4, GetStringRightAlignXOffset(FONT_NARROW, gStringVar4, 104), yOffset, TEXT_SKIP_DRAW, NULL);
}
}
@@ -1144,7 +1144,7 @@ static void ItemStorage_CreateListMenu(u8 taskId)
text = gText_WithdrawItem;
x = GetStringCenterAlignXOffset(FONT_NORMAL, text, 104);
AddTextPrinterParameterized(sItemStorageMenu->windowIds[ITEMPC_WIN_TITLE], FONT_NORMAL, text, x, 1, 0, NULL);
- CopyWindowToVram(sItemStorageMenu->windowIds[ITEMPC_WIN_ICON], 2);
+ CopyWindowToVram(sItemStorageMenu->windowIds[ITEMPC_WIN_ICON], COPYWIN_GFX);
ItemStorage_CompactList();
ItemStorage_CompactCursor();
ItemStorage_RefreshListMenu();
diff --git a/src/pokeball.c b/src/pokeball.c
index bf485c0f0..501d86ca3 100644
--- a/src/pokeball.c
+++ b/src/pokeball.c
@@ -641,7 +641,7 @@ static void SpriteCB_BallThrow_Shake(struct Sprite *sprite)
#define tCryTaskSpecies data[0]
#define tCryTaskPan data[1]
#define tCryTaskWantedCry data[2]
-#define tCryTaskBattler data[3]
+#define tCryTaskBattler data[3]
#define tCryTaskMonSpriteId data[4]
#define tCryTaskMonPtr1 data[5]
#define tCryTaskMonPtr2 data[6]
@@ -665,10 +665,11 @@ static void Task_PlayCryWhenReleasedFromBall(u8 taskId)
gTasks[taskId].tCryTaskState = wantedCry + 1;
break;
case 1:
+ // Play single cry
if (ShouldPlayNormalMonCry(mon) == TRUE)
- PlayCry3(species, pan, 0);
+ PlayCry_ByMode(species, pan, CRY_MODE_NORMAL);
else
- PlayCry3(species, pan, 11);
+ PlayCry_ByMode(species, pan, CRY_MODE_WEAK);
gBattleSpritesDataPtr->healthBoxesData[battlerId].waitForCry = FALSE;
DestroyTask(taskId);
break;
@@ -680,10 +681,11 @@ static void Task_PlayCryWhenReleasedFromBall(u8 taskId)
case 20:
if (gTasks[taskId].tCryTaskFrames == 0)
{
+ // Play first doubles cry
if (ShouldPlayNormalMonCry(mon) == TRUE)
- PlayCry4(species, pan, 1);
+ PlayCry_ReleaseDouble(species, pan, CRY_MODE_DOUBLES);
else
- PlayCry4(species, pan, 12);
+ PlayCry_ReleaseDouble(species, pan, CRY_MODE_WEAK_DOUBLES);
gBattleSpritesDataPtr->healthBoxesData[battlerId].waitForCry = FALSE;
DestroyTask(taskId);
@@ -719,10 +721,11 @@ static void Task_PlayCryWhenReleasedFromBall(u8 taskId)
gTasks[taskId].tCryTaskFrames--;
break;
}
+ // Play second doubles cry
if (ShouldPlayNormalMonCry(mon) == TRUE)
- PlayCry4(species, pan, 0);
+ PlayCry_ReleaseDouble(species, pan, CRY_MODE_NORMAL);
else
- PlayCry4(species, pan, 11);
+ PlayCry_ReleaseDouble(species, pan, CRY_MODE_WEAK);
gBattleSpritesDataPtr->healthBoxesData[battlerId].waitForCry = FALSE;
DestroyTask(taskId);
diff --git a/src/pokeblock.c b/src/pokeblock.c
index 44893b283..58348e1cc 100644
--- a/src/pokeblock.c
+++ b/src/pokeblock.c
@@ -802,7 +802,7 @@ static void DrawPokeblockInfo(s32 pkblId)
for (i = 0; i < FLAVOR_COUNT; i++)
CopyToBgTilemapBufferRect(2, rectTilemapSrc, (i / 3 * 6) + 1, (i % 3 * 2) + 13, 1, 2);
- CopyWindowToVram(7, 2);
+ CopyWindowToVram(7, COPYWIN_GFX);
}
ScheduleBgCopyTilemapToVram(0);
@@ -1149,8 +1149,8 @@ static void ShowPokeblockActionsWindow(u8 taskId)
DestroyScrollArrows();
DrawStdFrameWithCustomTileAndPalette(tWindowId, 0, 1, 0xE);
- sub_81995E4(tWindowId, sPokeblockMenu->numActions, sPokeblockMenuActions, sPokeblockMenu->pokeblockActionIds);
- InitMenuInUpperLeftCornerPlaySoundWhenAPressed(tWindowId, sPokeblockMenu->numActions, 0);
+ PrintMenuActionTextsInUpperLeftCorner(tWindowId, sPokeblockMenu->numActions, sPokeblockMenuActions, sPokeblockMenu->pokeblockActionIds);
+ InitMenuInUpperLeftCornerNormal(tWindowId, sPokeblockMenu->numActions, 0);
PutWindowTilemap(tWindowId);
ScheduleBgCopyTilemapToVram(1);
diff --git a/src/pokeblock_feed.c b/src/pokeblock_feed.c
index da9b7767c..98a76421c 100644
--- a/src/pokeblock_feed.c
+++ b/src/pokeblock_feed.c
@@ -945,7 +945,7 @@ static void SpriteCB_MonJumpForPokeblock(struct Sprite* sprite)
// Play cry at jump peak
if (sprite->sSpeed == 0)
- PlayCry1(sprite->sSpecies, 0);
+ PlayCry_Normal(sprite->sSpecies, 0);
if (sprite->sSpeed == 9)
sprite->callback = SpriteCallbackDummy;
diff --git a/src/pokedex.c b/src/pokedex.c
index 8a8576243..b41937302 100644
--- a/src/pokedex.c
+++ b/src/pokedex.c
@@ -2081,7 +2081,7 @@ static bool8 LoadPokedexListPage(u8 page)
InitWindows(sPokemonList_WindowTemplate);
DeactivateAllTextPrinters();
PutWindowTilemap(0);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
gMain.state = 1;
break;
case 1:
@@ -2324,7 +2324,7 @@ static void PrintMonDexNumAndName(u8 windowId, u8 fontId, const u8* str, u8 left
color[0] = TEXT_COLOR_TRANSPARENT;
color[1] = TEXT_DYNAMIC_COLOR_6;
color[2] = TEXT_COLOR_LIGHT_GRAY;
- AddTextPrinterParameterized4(windowId, fontId, left * 8, (top * 8) + 1, 0, 0, color, -1, str);
+ AddTextPrinterParameterized4(windowId, fontId, left * 8, (top * 8) + 1, 0, 0, color, TEXT_SKIP_DRAW, str);
}
// u16 ignored is passed but never used
@@ -2412,7 +2412,7 @@ static void CreateMonListEntry(u8 position, u16 b, u16 ignored)
}
break;
}
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
}
static void CreateMonDexNum(u16 entryNum, u8 left, u8 top, u16 unused)
@@ -3167,7 +3167,7 @@ static void PrintInfoScreenText(const u8* str, u8 left, u8 top)
color[1] = TEXT_DYNAMIC_COLOR_6;
color[2] = TEXT_COLOR_LIGHT_GRAY;
- AddTextPrinterParameterized4(0, FONT_NORMAL, left, top, 0, 0, color, -1, str);
+ AddTextPrinterParameterized4(0, FONT_NORMAL, left, top, 0, 0, color, TEXT_SKIP_DRAW, str);
}
#define tScrolling data[0]
@@ -3248,7 +3248,7 @@ static void Task_LoadInfoScreen(u8 taskId)
PutWindowTilemap(WIN_INFO);
PutWindowTilemap(WIN_FOOTPRINT);
DrawFootprint(WIN_FOOTPRINT, sPokedexListItem->dexNum);
- CopyWindowToVram(WIN_FOOTPRINT, 2);
+ CopyWindowToVram(WIN_FOOTPRINT, COPYWIN_GFX);
gMain.state++;
break;
case 2:
@@ -3264,7 +3264,7 @@ static void Task_LoadInfoScreen(u8 taskId)
PrintMonInfo(sPokedexListItem->dexNum, sPokedexView->dexMode == DEX_MODE_HOENN ? FALSE : TRUE, sPokedexListItem->owned, 0);
if (!sPokedexListItem->owned)
LoadPalette(gPlttBufferUnfaded + 1, 0x31, 0x1E);
- CopyWindowToVram(WIN_INFO, 3);
+ CopyWindowToVram(WIN_INFO, COPYWIN_FULL);
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(3);
@@ -3309,7 +3309,7 @@ static void Task_LoadInfoScreen(u8 taskId)
if (!gTasks[taskId].tSkipCry)
{
StopCryAndClearCrySongs();
- PlayCry2(NationalPokedexNumToSpecies(sPokedexListItem->dexNum), 0, 125, 10);
+ PlayCry_NormalNoDucking(NationalPokedexNumToSpecies(sPokedexListItem->dexNum), 0, CRY_VOLUME_RS, CRY_PRIORITY_NORMAL);
}
else
{
@@ -3594,8 +3594,8 @@ static void Task_LoadCryScreen(u8 taskId)
cryMeter.yPos = 3;
if (LoadCryMeter(&cryMeter, 3))
gMain.state++;
- CopyWindowToVram(WIN_VU_METER, 2);
- CopyWindowToVram(WIN_INFO, 3);
+ CopyWindowToVram(WIN_VU_METER, COPYWIN_GFX);
+ CopyWindowToVram(WIN_INFO, COPYWIN_FULL);
CopyBgTilemapBufferToVram(0);
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(2);
@@ -3780,7 +3780,7 @@ static void Task_LoadSizeScreen(u8 taskId)
SetOamMatrix(2, gPokedexEntries[sPokedexListItem->dexNum].pokemonScale, 0, 0, gPokedexEntries[sPokedexListItem->dexNum].pokemonScale);
LoadPalette(sSizeScreenSilhouette_Pal, (gSprites[spriteId].oam.paletteNum + 16) * 16, 0x20);
gTasks[taskId].tMonSpriteId = spriteId;
- CopyWindowToVram(WIN_INFO, 3);
+ CopyWindowToVram(WIN_INFO, COPYWIN_FULL);
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(3);
@@ -3975,7 +3975,7 @@ static void Task_DisplayCaughtMonDexPage(u8 taskId)
PutWindowTilemap(WIN_INFO);
PutWindowTilemap(WIN_FOOTPRINT);
DrawFootprint(WIN_FOOTPRINT, gTasks[taskId].tDexNum);
- CopyWindowToVram(WIN_FOOTPRINT, 2);
+ CopyWindowToVram(WIN_FOOTPRINT, COPYWIN_GFX);
ResetPaletteFade();
LoadPokedexBgPalette(FALSE);
gTasks[taskId].tState++;
@@ -3985,7 +3985,7 @@ static void Task_DisplayCaughtMonDexPage(u8 taskId)
break;
case 3:
PrintMonInfo(dexNum, IsNationalPokedexEnabled(), 1, 1);
- CopyWindowToVram(WIN_INFO, 3);
+ CopyWindowToVram(WIN_INFO, COPYWIN_FULL);
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(3);
gTasks[taskId].tState++;
@@ -4010,7 +4010,7 @@ static void Task_DisplayCaughtMonDexPage(u8 taskId)
case 6:
if (!gPaletteFade.active)
{
- PlayCry1(NationalPokedexNumToSpecies(dexNum), 0);
+ PlayCry_Normal(NationalPokedexNumToSpecies(dexNum), 0);
gTasks[taskId].tPalTimer = 0;
gTasks[taskId].func = Task_HandleCaughtMonPageInput;
}
@@ -4474,7 +4474,7 @@ static void PrintInfoSubMenuText(u8 windowId, const u8 *str, u8 left, u8 top)
color[1] = TEXT_DYNAMIC_COLOR_6;
color[2] = TEXT_COLOR_LIGHT_GRAY;
- AddTextPrinterParameterized4(windowId, FONT_NORMAL, left, top, 0, 0, color, -1, str);
+ AddTextPrinterParameterized4(windowId, FONT_NORMAL, left, top, 0, 0, color, TEXT_SKIP_DRAW, str);
}
static void UnusedPrintNum(u8 windowId, u16 num, u8 left, u8 top)
@@ -4781,7 +4781,7 @@ static void PrintSearchText(const u8 *str, u32 x, u32 y)
color[0] = TEXT_COLOR_TRANSPARENT;
color[1] = TEXT_DYNAMIC_COLOR_6;
color[2] = TEXT_COLOR_DARK_GRAY;
- AddTextPrinterParameterized4(0, FONT_NORMAL, x, y, 0, 0, color, -1, str);
+ AddTextPrinterParameterized4(0, FONT_NORMAL, x, y, 0, 0, color, TEXT_SKIP_DRAW, str);
}
static void ClearSearchMenuRect(u32 x, u32 y, u32 width, u32 height)
@@ -4847,7 +4847,7 @@ static void Task_LoadSearchMenu(u8 taskId)
SetDefaultSearchModeAndOrder(taskId);
HighlightSelectedSearchTopBarItem(SEARCH_TOPBAR_SEARCH);
PrintSelectedSearchParameters(taskId);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(3);
@@ -4901,7 +4901,7 @@ static void Task_SwitchToSearchMenuTopBar(u8 taskId)
{
HighlightSelectedSearchTopBarItem(gTasks[taskId].tTopBarItem);
PrintSelectedSearchParameters(taskId);
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
CopyBgTilemapBufferToVram(3);
gTasks[taskId].func = Task_HandleSearchTopBarInput;
}
@@ -4940,7 +4940,7 @@ static void Task_HandleSearchTopBarInput(u8 taskId)
PlaySE(SE_DEX_PAGE);
gTasks[taskId].tTopBarItem--;
HighlightSelectedSearchTopBarItem(gTasks[taskId].tTopBarItem);
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
CopyBgTilemapBufferToVram(3);
}
if (JOY_NEW(DPAD_RIGHT) && gTasks[taskId].tTopBarItem < SEARCH_TOPBAR_CANCEL)
@@ -4948,7 +4948,7 @@ static void Task_HandleSearchTopBarInput(u8 taskId)
PlaySE(SE_DEX_PAGE);
gTasks[taskId].tTopBarItem++;
HighlightSelectedSearchTopBarItem(gTasks[taskId].tTopBarItem);
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
CopyBgTilemapBufferToVram(3);
}
}
@@ -4957,7 +4957,7 @@ static void Task_SwitchToSearchMenu(u8 taskId)
{
HighlightSelectedSearchMenuItem(gTasks[taskId].tTopBarItem, gTasks[taskId].tMenuItem);
PrintSelectedSearchParameters(taskId);
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
CopyBgTilemapBufferToVram(3);
gTasks[taskId].func = Task_HandleSearchMenuInput;
}
@@ -5013,7 +5013,7 @@ static void Task_HandleSearchMenuInput(u8 taskId)
EraseAndPrintSearchTextBox(gText_SearchingPleaseWait);
gTasks[taskId].func = Task_StartPokedexSearch;
PlaySE(SE_DEX_SEARCH);
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
}
}
else
@@ -5029,7 +5029,7 @@ static void Task_HandleSearchMenuInput(u8 taskId)
PlaySE(SE_SELECT);
gTasks[taskId].tMenuItem = movementMap[gTasks[taskId].tMenuItem][0];
HighlightSelectedSearchMenuItem(gTasks[taskId].tTopBarItem, gTasks[taskId].tMenuItem);
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
CopyBgTilemapBufferToVram(3);
}
if (JOY_NEW(DPAD_RIGHT) && movementMap[gTasks[taskId].tMenuItem][1] != 0xFF)
@@ -5037,7 +5037,7 @@ static void Task_HandleSearchMenuInput(u8 taskId)
PlaySE(SE_SELECT);
gTasks[taskId].tMenuItem = movementMap[gTasks[taskId].tMenuItem][1];
HighlightSelectedSearchMenuItem(gTasks[taskId].tTopBarItem, gTasks[taskId].tMenuItem);
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
CopyBgTilemapBufferToVram(3);
}
if (JOY_NEW(DPAD_UP) && movementMap[gTasks[taskId].tMenuItem][2] != 0xFF)
@@ -5045,7 +5045,7 @@ static void Task_HandleSearchMenuInput(u8 taskId)
PlaySE(SE_SELECT);
gTasks[taskId].tMenuItem = movementMap[gTasks[taskId].tMenuItem][2];
HighlightSelectedSearchMenuItem(gTasks[taskId].tTopBarItem, gTasks[taskId].tMenuItem);
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
CopyBgTilemapBufferToVram(3);
}
if (JOY_NEW(DPAD_DOWN) && movementMap[gTasks[taskId].tMenuItem][3] != 0xFF)
@@ -5053,7 +5053,7 @@ static void Task_HandleSearchMenuInput(u8 taskId)
PlaySE(SE_SELECT);
gTasks[taskId].tMenuItem = movementMap[gTasks[taskId].tMenuItem][3];
HighlightSelectedSearchMenuItem(gTasks[taskId].tTopBarItem, gTasks[taskId].tMenuItem);
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
CopyBgTilemapBufferToVram(3);
}
}
@@ -5086,7 +5086,7 @@ static void Task_WaitAndCompleteSearch(u8 taskId)
EraseAndPrintSearchTextBox(gText_NoMatchingPkmnWereFound);
}
gTasks[taskId].func = Task_SearchCompleteWaitForInput;
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
}
}
@@ -5126,7 +5126,7 @@ static void Task_SelectSearchMenuItem(u8 taskId)
PrintSearchParameterText(taskId);
PrintSelectorArrow(*cursorPos);
gTasks[taskId].func = Task_HandleSearchParameterInput;
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
CopyBgTilemapBufferToVram(3);
}
@@ -5151,7 +5151,7 @@ static void Task_HandleSearchParameterInput(u8 taskId)
ClearSearchParameterBoxText();
DrawOrEraseSearchParameterBox(TRUE);
gTasks[taskId].func = Task_SwitchToSearchMenu;
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
CopyBgTilemapBufferToVram(3);
return;
}
@@ -5163,7 +5163,7 @@ static void Task_HandleSearchParameterInput(u8 taskId)
*cursorPos = gTasks[taskId].tCursorPos;
*scrollOffset = gTasks[taskId].tScrollOffset;
gTasks[taskId].func = Task_SwitchToSearchMenu;
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
CopyBgTilemapBufferToVram(3);
return;
}
@@ -5190,7 +5190,7 @@ static void Task_HandleSearchParameterInput(u8 taskId)
{
PlaySE(SE_SELECT);
EraseAndPrintSearchTextBox(texts[*cursorPos + *scrollOffset].description);
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
}
return;
}
@@ -5216,7 +5216,7 @@ static void Task_HandleSearchParameterInput(u8 taskId)
{
PlaySE(SE_SELECT);
EraseAndPrintSearchTextBox(texts[*cursorPos + *scrollOffset].description);
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
}
return;
}
diff --git a/src/pokedex_area_region_map.c b/src/pokedex_area_region_map.c
index 1ee5ca988..2ec2c5c8d 100644
--- a/src/pokedex_area_region_map.c
+++ b/src/pokedex_area_region_map.c
@@ -17,6 +17,7 @@ static const u32 sPokedexAreaMapAffine_Tilemap[] = INCBIN_U32("graphics/interfac
void LoadPokedexAreaMapGfx(const struct PokedexAreaMapTemplate *template)
{
u8 mode;
+ void * tilemap;
sPokedexAreaMapBgNum = Alloc(sizeof(sPokedexAreaMapBgNum));
mode = template->mode;
@@ -24,7 +25,8 @@ void LoadPokedexAreaMapGfx(const struct PokedexAreaMapTemplate *template)
{
SetBgAttribute(template->bg, BG_ATTR_METRIC, 0);
DecompressAndCopyTileDataToVram(template->bg, sPokedexAreaMap_Gfx, 0, template->offset, 0);
- sub_8199D3C(DecompressAndCopyTileDataToVram(template->bg, sPokedexAreaMap_Tilemap, 0, 0, 1), template->offset, 32, 32, FALSE);
+ tilemap = DecompressAndCopyTileDataToVram(template->bg, sPokedexAreaMap_Tilemap, 0, 0, 1);
+ AddValToTilemapBuffer(tilemap, template->offset, 32, 32, FALSE); // template->offset is always 0, so this does nothing.
}
else
{
@@ -32,11 +34,12 @@ void LoadPokedexAreaMapGfx(const struct PokedexAreaMapTemplate *template)
SetBgAttribute(template->bg, BG_ATTR_METRIC, 2);
SetBgAttribute(template->bg, BG_ATTR_TYPE, BG_TYPE_AFFINE); // This does nothing. BG_ATTR_TYPE can't be set with this function
DecompressAndCopyTileDataToVram(template->bg, sPokedexAreaMapAffine_Gfx, 0, template->offset, 0);
- sub_8199D3C(DecompressAndCopyTileDataToVram(template->bg, sPokedexAreaMapAffine_Tilemap, 0, 0, 1), template->offset, 64, 64, TRUE);
+ tilemap = DecompressAndCopyTileDataToVram(template->bg, sPokedexAreaMapAffine_Tilemap, 0, 0, 1);
+ AddValToTilemapBuffer(tilemap, template->offset, 64, 64, TRUE); // template->offset is always 0, so this does nothing.
}
- ChangeBgX(template->bg, 0, 0);
- ChangeBgY(template->bg, 0, 0);
+ ChangeBgX(template->bg, 0, BG_COORD_SET);
+ ChangeBgY(template->bg, 0, BG_COORD_SET);
SetBgAttribute(template->bg, BG_ATTR_PALETTEMODE, 1);
CpuCopy32(sPokedexAreaMap_Pal, &gPlttBufferUnfaded[0x70], 0x60);
*sPokedexAreaMapBgNum = template->bg;
@@ -62,5 +65,5 @@ void FreePokedexAreaMapBgNum(void)
void PokedexAreaMapChangeBgY(u32 a0)
{
- ChangeBgY(*sPokedexAreaMapBgNum, a0 * 0x100, 0);
+ ChangeBgY(*sPokedexAreaMapBgNum, a0 * 0x100, BG_COORD_SET);
}
diff --git a/src/pokedex_area_screen.c b/src/pokedex_area_screen.c
index 2f0d676cb..e2973dcab 100755
--- a/src/pokedex_area_screen.c
+++ b/src/pokedex_area_screen.c
@@ -319,7 +319,7 @@ static bool8 DrawAreaGlow(void)
}
return TRUE;
case 4:
- ChangeBgY(2, -0x800, 0);
+ ChangeBgY(2, -0x800, BG_COORD_SET);
break;
default:
return FALSE;
@@ -367,7 +367,7 @@ static void FindMapsWithMon(u16 species)
}
}
- for (i = 0; gWildMonHeaders[i].mapGroup != 0xFF; i++)
+ for (i = 0; gWildMonHeaders[i].mapGroup != MAP_GROUP(UNDEFINED); i++)
{
if (MapHasMon(&gWildMonHeaders[i], species))
{
diff --git a/src/pokedex_cry_screen.c b/src/pokedex_cry_screen.c
index 350946f3b..28e2bd163 100644
--- a/src/pokedex_cry_screen.c
+++ b/src/pokedex_cry_screen.c
@@ -345,7 +345,7 @@ void CryScreenPlayButton(u16 species)
static void PlayCryScreenCry(u16 species)
{
- PlayCry2(species, 0, 125, 10);
+ PlayCry_NormalNoDucking(species, 0, CRY_VOLUME_RS, CRY_PRIORITY_NORMAL);
sDexCryScreen->cryState = 1;
}
@@ -432,7 +432,7 @@ static void DrawWaveformSegment(u8 position, u8 amplitude)
static void DrawWaveformWindow(u8 windowId)
{
- CopyWindowToVram(windowId, 2);
+ CopyWindowToVram(windowId, COPYWIN_GFX);
}
// rsVertical is leftover from a very different version of this function in RS
@@ -443,7 +443,7 @@ static void ShiftWaveformOver(u8 windowId, s16 offset, bool8 rsVertical)
if (!rsVertical)
{
u8 bg = GetWindowAttribute(windowId, WINDOW_BG);
- ChangeBgX(bg, offset << 8, 0);
+ ChangeBgX(bg, offset << 8, BG_COORD_SET);
}
}
diff --git a/src/pokemon.c b/src/pokemon.c
index 0f943734b..1607e1a40 100644
--- a/src/pokemon.c
+++ b/src/pokemon.c
@@ -6690,14 +6690,14 @@ void DoMonFrontSpriteAnimation(struct Sprite* sprite, u16 species, bool8 noCry,
{
// No animation, only check if cry needs to be played
if (!noCry)
- PlayCry1(species, pan);
+ PlayCry_Normal(species, pan);
sprite->callback = SpriteCallbackDummy;
}
else
{
if (!noCry)
{
- PlayCry1(species, pan);
+ PlayCry_Normal(species, pan);
if (HasTwoFramesAnimation(species))
StartSpriteAnim(sprite, 1);
}
diff --git a/src/pokemon_jump.c b/src/pokemon_jump.c
index fb1505c6c..f6aa82391 100755
--- a/src/pokemon_jump.c
+++ b/src/pokemon_jump.c
@@ -1282,12 +1282,12 @@ static bool32 SavePokeJump(void)
case 2:
if (AreLinkQueuesEmpty())
{
- CreateTask(Task_LinkSave, 6);
+ CreateTask(Task_LinkFullSave, 6);
sPokemonJump->mainState++;
}
break;
case 3:
- if (!FuncIsActiveTask(Task_LinkSave))
+ if (!FuncIsActiveTask(Task_LinkFullSave))
{
ClearMessageWindow();
sPokemonJump->mainState++;
@@ -3313,8 +3313,8 @@ static void Msg_WantToPlayAgain(void)
{
case 0:
sPokemonJumpGfx->msgWindowId = AddMessageWindow(1, 8, 20, 2);
- AddTextPrinterParameterized(sPokemonJumpGfx->msgWindowId, FONT_NORMAL, gText_WantToPlayAgain2, 0, 1, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(sPokemonJumpGfx->msgWindowId, 2);
+ AddTextPrinterParameterized(sPokemonJumpGfx->msgWindowId, FONT_NORMAL, gText_WantToPlayAgain2, 0, 1, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(sPokemonJumpGfx->msgWindowId, COPYWIN_GFX);
sPokemonJumpGfx->mainState++;
break;
case 1:
@@ -3340,8 +3340,8 @@ static void Msg_SavingDontTurnOff(void)
{
case 0:
sPokemonJumpGfx->msgWindowId = AddMessageWindow(2, 7, 26, 4);
- AddTextPrinterParameterized(sPokemonJumpGfx->msgWindowId, FONT_NORMAL, gText_SavingDontTurnOffPower, 0, 1, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(sPokemonJumpGfx->msgWindowId, 2);
+ AddTextPrinterParameterized(sPokemonJumpGfx->msgWindowId, FONT_NORMAL, gText_SavingDontTurnOffPower, 0, 1, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(sPokemonJumpGfx->msgWindowId, COPYWIN_GFX);
sPokemonJumpGfx->mainState++;
break;
case 1:
@@ -3366,7 +3366,7 @@ static void EraseMessage(void)
{
case 0:
ClearMessageWindow();
- sub_8198C78();
+ EraseYesNoWindow();
CopyBgTilemapBufferToVram(BG_INTERFACE);
sPokemonJumpGfx->mainState++;
break;
@@ -3383,8 +3383,8 @@ static void Msg_SomeoneDroppedOut(void)
{
case 0:
sPokemonJumpGfx->msgWindowId = AddMessageWindow(2, 8, 22, 4);
- AddTextPrinterParameterized(sPokemonJumpGfx->msgWindowId, FONT_NORMAL, gText_SomeoneDroppedOut2, 0, 1, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(sPokemonJumpGfx->msgWindowId, 2);
+ AddTextPrinterParameterized(sPokemonJumpGfx->msgWindowId, FONT_NORMAL, gText_SomeoneDroppedOut2, 0, 1, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(sPokemonJumpGfx->msgWindowId, COPYWIN_GFX);
sPokemonJumpGfx->mainState++;
break;
case 1:
@@ -3409,8 +3409,8 @@ static void Msg_CommunicationStandby(void)
{
case 0:
sPokemonJumpGfx->msgWindowId = AddMessageWindow(7, 10, 16, 2);
- AddTextPrinterParameterized(sPokemonJumpGfx->msgWindowId, FONT_NORMAL, gText_CommunicationStandby4, 0, 1, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(sPokemonJumpGfx->msgWindowId, 2);
+ AddTextPrinterParameterized(sPokemonJumpGfx->msgWindowId, FONT_NORMAL, gText_CommunicationStandby4, 0, 1, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(sPokemonJumpGfx->msgWindowId, COPYWIN_GFX);
sPokemonJumpGfx->mainState++;
break;
case 1:
@@ -3487,8 +3487,8 @@ static void PrintPrizeMessage(u16 itemId, u16 quantity)
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, sPokemonJumpGfx->itemQuantityStr);
DynamicPlaceholderTextUtil_ExpandPlaceholders(sPokemonJumpGfx->prizeMsg, gText_AwesomeWonF701F700);
sPokemonJumpGfx->msgWindowId = AddMessageWindow(4, 8, 22, 4);
- AddTextPrinterParameterized(sPokemonJumpGfx->msgWindowId, FONT_NORMAL, sPokemonJumpGfx->prizeMsg, 0, 1, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(sPokemonJumpGfx->msgWindowId, 2);
+ AddTextPrinterParameterized(sPokemonJumpGfx->msgWindowId, FONT_NORMAL, sPokemonJumpGfx->prizeMsg, 0, 1, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(sPokemonJumpGfx->msgWindowId, COPYWIN_GFX);
sPokemonJumpGfx->fanfare = MUS_LEVEL_UP;
sPokemonJumpGfx->msgWindowState = 0;
}
@@ -3500,8 +3500,8 @@ static void PrintPrizeFilledBagMessage(u16 itemId)
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, sPokemonJumpGfx->itemName);
DynamicPlaceholderTextUtil_ExpandPlaceholders(sPokemonJumpGfx->prizeMsg, gText_FilledStorageSpace2);
sPokemonJumpGfx->msgWindowId = AddMessageWindow(4, 8, 22, 4);
- AddTextPrinterParameterized(sPokemonJumpGfx->msgWindowId, FONT_NORMAL, sPokemonJumpGfx->prizeMsg, 0, 1, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(sPokemonJumpGfx->msgWindowId, 2);
+ AddTextPrinterParameterized(sPokemonJumpGfx->msgWindowId, FONT_NORMAL, sPokemonJumpGfx->prizeMsg, 0, 1, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(sPokemonJumpGfx->msgWindowId, COPYWIN_GFX);
sPokemonJumpGfx->fanfare = MUS_DUMMY;
sPokemonJumpGfx->msgWindowState = 0;
}
@@ -3513,8 +3513,8 @@ static void PrintNoRoomForPrizeMessage(u16 itemId)
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, sPokemonJumpGfx->itemName);
DynamicPlaceholderTextUtil_ExpandPlaceholders(sPokemonJumpGfx->prizeMsg, gText_CantHoldMore);
sPokemonJumpGfx->msgWindowId = AddMessageWindow(4, 9, 22, 2);
- AddTextPrinterParameterized(sPokemonJumpGfx->msgWindowId, FONT_NORMAL, sPokemonJumpGfx->prizeMsg, 0, 1, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(sPokemonJumpGfx->msgWindowId, 2);
+ AddTextPrinterParameterized(sPokemonJumpGfx->msgWindowId, FONT_NORMAL, sPokemonJumpGfx->prizeMsg, 0, 1, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(sPokemonJumpGfx->msgWindowId, COPYWIN_GFX);
sPokemonJumpGfx->fanfare = MUS_DUMMY;
sPokemonJumpGfx->msgWindowState = 0;
}
@@ -3558,7 +3558,7 @@ static void ClearMessageWindow(void)
if (sPokemonJumpGfx->msgWindowId != WINDOW_NONE)
{
rbox_fill_rectangle(sPokemonJumpGfx->msgWindowId);
- CopyWindowToVram(sPokemonJumpGfx->msgWindowId, 1);
+ CopyWindowToVram(sPokemonJumpGfx->msgWindowId, COPYWIN_MAP);
sPokemonJumpGfx->msgWindowState = 0;
}
}
@@ -3732,7 +3732,7 @@ static void SetMonSpriteY(u32 id, s16 y)
static void UpdateVineSwing(int vineState)
{
UpdateVineAnim(sPokemonJumpGfx, vineState);
- ChangeBgY(BG_VENUSAUR, (sVenusaurStates[vineState] * 5) << 13, 0);
+ ChangeBgY(BG_VENUSAUR, (sVenusaurStates[vineState] * 5) << 13, BG_COORD_SET);
}
static int DoSameJumpTimeBonus(u8 flags)
@@ -3857,8 +3857,8 @@ static void PrintPokeJumpPlayerName(int multiplayerId, u8 bgColor, u8 fgColor, u
FillWindowPixelBuffer(sPokemonJumpGfx->nameWindowIds[multiplayerId], 0);
x = 64 - GetStringWidth(FONT_NORMAL, GetPokeJumpPlayerName(multiplayerId), -1);
x /= 2;
- AddTextPrinterParameterized3(sPokemonJumpGfx->nameWindowIds[multiplayerId], FONT_NORMAL, x, 1, colors, -1, GetPokeJumpPlayerName(multiplayerId));
- CopyWindowToVram(sPokemonJumpGfx->nameWindowIds[multiplayerId], 2);
+ AddTextPrinterParameterized3(sPokemonJumpGfx->nameWindowIds[multiplayerId], FONT_NORMAL, x, 1, colors, TEXT_SKIP_DRAW, GetPokeJumpPlayerName(multiplayerId));
+ CopyWindowToVram(sPokemonJumpGfx->nameWindowIds[multiplayerId], COPYWIN_GFX);
}
static void PrintPokeJumpPlayerNames(bool32 highlightSelf)
@@ -3896,8 +3896,8 @@ static void DrawPlayerNameWindows(void)
static void ShowBonus(u8 bonusId)
{
sPokemonJumpGfx->bonusTimer = 0;
- ChangeBgX(BG_BONUSES, (bonusId / 2) * 256 * 256, 0);
- ChangeBgY(BG_BONUSES, (((bonusId % 2) * 256) - 40) * 256, 0);
+ ChangeBgX(BG_BONUSES, (bonusId / 2) * 256 * 256, BG_COORD_SET);
+ ChangeBgY(BG_BONUSES, (((bonusId % 2) * 256) - 40) * 256, BG_COORD_SET);
ShowBg(BG_BONUSES);
CreateTask(Task_UpdateBonus, 4);
}
@@ -3910,7 +3910,7 @@ static bool32 UpdateBonus(void)
}
else
{
- ChangeBgY(BG_BONUSES, 128, 1);
+ ChangeBgY(BG_BONUSES, 128, BG_COORD_ADD);
if (++sPokemonJumpGfx->bonusTimer >= 32)
HideBg(BG_BONUSES);
return TRUE;
@@ -4176,7 +4176,7 @@ static void Task_ShowPokemonJumpRecords(u8 taskId)
window.width = width;
tWindowId = AddWindow(&window);
PrintRecordsText(tWindowId, width);
- CopyWindowToVram(tWindowId, 3);
+ CopyWindowToVram(tWindowId, COPYWIN_FULL);
tState++;
break;
case 1:
@@ -4187,7 +4187,7 @@ static void Task_ShowPokemonJumpRecords(u8 taskId)
if (JOY_NEW(A_BUTTON | B_BUTTON))
{
rbox_fill_rectangle(tWindowId);
- CopyWindowToVram(tWindowId, 1);
+ CopyWindowToVram(tWindowId, COPYWIN_MAP);
tState++;
}
break;
@@ -4217,14 +4217,14 @@ static void PrintRecordsText(u16 windowId, int width)
LoadUserWindowBorderGfx_(windowId, 0x21D, 0xD0);
DrawTextBorderOuter(windowId, 0x21D, 0xD);
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
- AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_PkmnJumpRecords, GetStringCenterAlignXOffset(FONT_NORMAL, gText_PkmnJumpRecords, width * 8), 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_PkmnJumpRecords, GetStringCenterAlignXOffset(FONT_NORMAL, gText_PkmnJumpRecords, width * 8), 1, TEXT_SKIP_DRAW, NULL);
for (i = 0; i < ARRAY_COUNT(sRecordsTexts); i++)
{
- AddTextPrinterParameterized(windowId, FONT_NORMAL, sRecordsTexts[i], 0, 25 + (i * 16), TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(windowId, FONT_NORMAL, sRecordsTexts[i], 0, 25 + (i * 16), TEXT_SKIP_DRAW, NULL);
ConvertIntToDecimalStringN(gStringVar1, recordNums[i], STR_CONV_MODE_LEFT_ALIGN, 5);
TruncateToFirstWordOnly(gStringVar1);
x = (width * 8) - GetStringWidth(FONT_NORMAL, gStringVar1, 0);
- AddTextPrinterParameterized(windowId, FONT_NORMAL, gStringVar1, x, 25 + (i * 16), TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(windowId, FONT_NORMAL, gStringVar1, x, 25 + (i * 16), TEXT_SKIP_DRAW, NULL);
}
PutWindowTilemap(windowId);
}
diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c
index ee2d9b1a7..f18dc68d1 100644
--- a/src/pokemon_storage_system.c
+++ b/src/pokemon_storage_system.c
@@ -1358,7 +1358,7 @@ void DrawTextWindowAndBufferTiles(const u8 *string, void *dst, u8 zero1, u8 zero
txtColor[0] = zero2;
txtColor[1] = TEXT_DYNAMIC_COLOR_6;
txtColor[2] = TEXT_DYNAMIC_COLOR_5;
- AddTextPrinterParameterized4(windowId, FONT_NORMAL, 0, 1, 0, 0, txtColor, -1, string);
+ AddTextPrinterParameterized4(windowId, FONT_NORMAL, 0, 1, 0, 0, txtColor, TEXT_SKIP_DRAW, string);
tileBytesToBuffer = bytesToBuffer;
if (tileBytesToBuffer > 6u)
@@ -1402,7 +1402,7 @@ static void UnusedDrawTextWindow(const u8 *string, void *dst, u16 offset, u8 bgC
txtColor[0] = bgColor;
txtColor[1] = fgColor;
txtColor[2] = shadowColor;
- AddTextPrinterParameterized4(windowId, FONT_NORMAL, 0, 2, 0, 0, txtColor, -1, string);
+ AddTextPrinterParameterized4(windowId, FONT_NORMAL, 0, 2, 0, 0, txtColor, TEXT_SKIP_DRAW, string);
CpuCopy16(tileData1, dst, tileSize);
CpuCopy16(tileData2, dst + offset, tileSize);
RemoveWindow(windowId);
@@ -1561,9 +1561,9 @@ static void Task_PCMainMenu(u8 taskId)
LoadMessageBoxAndBorderGfx();
DrawDialogueFrame(0, 0);
FillWindowPixelBuffer(0, PIXEL_FILL(1));
- AddTextPrinterParameterized2(0, FONT_NORMAL, sMainMenuTexts[task->tSelectedOption].desc, TEXT_SPEED_FF, NULL, 2, 1, 3);
- CopyWindowToVram(0, 3);
- CopyWindowToVram(task->tWindowId, 3);
+ AddTextPrinterParameterized2(0, FONT_NORMAL, sMainMenuTexts[task->tSelectedOption].desc, TEXT_SKIP_DRAW, NULL, 2, 1, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
+ CopyWindowToVram(task->tWindowId, COPYWIN_FULL);
task->tState++;
break;
case STATE_FADE_IN:
@@ -1699,7 +1699,7 @@ static void CreateMainMenu(u8 whichMenu, s16 *windowIdPtr)
DrawStdWindowFrame(windowId, FALSE);
PrintMenuTable(windowId, OPTIONS_COUNT, (void *)sMainMenuTexts);
- InitMenuInUpperLeftCornerPlaySoundWhenAPressed(windowId, OPTIONS_COUNT, whichMenu);
+ InitMenuInUpperLeftCornerNormal(windowId, OPTIONS_COUNT, whichMenu);
*windowIdPtr = windowId;
}
@@ -1951,13 +1951,13 @@ static void ChooseBoxMenu_PrintInfo(void)
// Print box name
center = GetStringCenterAlignXOffset(FONT_NORMAL, boxName, 64);
- AddTextPrinterParameterized3(windowId, FONT_NORMAL, center, 1, sChooseBoxMenu_TextColors, TEXT_SPEED_FF, boxName);
+ AddTextPrinterParameterized3(windowId, FONT_NORMAL, center, 1, sChooseBoxMenu_TextColors, TEXT_SKIP_DRAW, boxName);
// Print #/30 for number of Pokémon in the box
ConvertIntToDecimalStringN(numBoxMonsText, numInBox, STR_CONV_MODE_RIGHT_ALIGN, 2);
StringAppend(numBoxMonsText, sText_OutOf30);
center = GetStringCenterAlignXOffset(FONT_NORMAL, numBoxMonsText, 64);
- AddTextPrinterParameterized3(windowId, FONT_NORMAL, center, 17, sChooseBoxMenu_TextColors, TEXT_SPEED_FF, numBoxMonsText);
+ AddTextPrinterParameterized3(windowId, FONT_NORMAL, center, 17, sChooseBoxMenu_TextColors, TEXT_SKIP_DRAW, numBoxMonsText);
winTileData = GetWindowAttribute(windowId, WINDOW_TILE_DATA);
CpuCopy32((void *)winTileData, (void *)OBJ_VRAM0 + 0x100 + (GetSpriteTileStartByTag(sChooseBoxMenu->tileTag) * 32), 0x400);
@@ -3827,8 +3827,8 @@ static void SetScrollingBackground(void)
static void ScrollBackground(void)
{
- ChangeBgX(3, 128, 1);
- ChangeBgY(3, 128, 2);
+ ChangeBgX(3, 128, BG_COORD_ADD);
+ ChangeBgY(3, 128, BG_COORD_SUB);
}
static void LoadPokeStorageMenuGfx(void)
@@ -4005,20 +4005,20 @@ static void PrintDisplayMonInfo(void)
FillWindowPixelBuffer(0, PIXEL_FILL(1));
if (sStorage->boxOption != OPTION_MOVE_ITEMS)
{
- AddTextPrinterParameterized(0, FONT_NORMAL, sStorage->displayMonNameText, 6, 0, TEXT_SPEED_FF, NULL);
- AddTextPrinterParameterized(0, FONT_SHORT, sStorage->displayMonSpeciesName, 6, 15, TEXT_SPEED_FF, NULL);
- AddTextPrinterParameterized(0, FONT_SHORT, sStorage->displayMonGenderLvlText, 10, 29, TEXT_SPEED_FF, NULL);
- AddTextPrinterParameterized(0, FONT_SMALL, sStorage->displayMonItemName, 6, 43, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(0, FONT_NORMAL, sStorage->displayMonNameText, 6, 0, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(0, FONT_SHORT, sStorage->displayMonSpeciesName, 6, 15, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(0, FONT_SHORT, sStorage->displayMonGenderLvlText, 10, 29, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(0, FONT_SMALL, sStorage->displayMonItemName, 6, 43, TEXT_SKIP_DRAW, NULL);
}
else
{
- AddTextPrinterParameterized(0, FONT_SMALL, sStorage->displayMonItemName, 6, 0, TEXT_SPEED_FF, NULL);
- AddTextPrinterParameterized(0, FONT_NORMAL, sStorage->displayMonNameText, 6, 13, TEXT_SPEED_FF, NULL);
- AddTextPrinterParameterized(0, FONT_SHORT, sStorage->displayMonSpeciesName, 6, 28, TEXT_SPEED_FF, NULL);
- AddTextPrinterParameterized(0, FONT_SHORT, sStorage->displayMonGenderLvlText, 10, 42, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(0, FONT_SMALL, sStorage->displayMonItemName, 6, 0, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(0, FONT_NORMAL, sStorage->displayMonNameText, 6, 13, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(0, FONT_SHORT, sStorage->displayMonSpeciesName, 6, 28, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(0, FONT_SHORT, sStorage->displayMonGenderLvlText, 10, 42, TEXT_SKIP_DRAW, NULL);
}
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
if (sStorage->displayMonSpecies != SPECIES_NONE)
{
UpdateMonMarkingTiles(sStorage->displayMonMarkings, sStorage->markingComboTilesPtr);
@@ -4319,10 +4319,10 @@ static void PrintMessage(u8 id)
DynamicPlaceholderTextUtil_ExpandPlaceholders(sStorage->messageText, sMessages[id].text);
FillWindowPixelBuffer(1, PIXEL_FILL(1));
- AddTextPrinterParameterized(1, FONT_NORMAL, sStorage->messageText, 0, 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(1, FONT_NORMAL, sStorage->messageText, 0, 1, TEXT_SKIP_DRAW, NULL);
DrawTextBorderOuter(1, 2, 14);
PutWindowTilemap(1);
- CopyWindowToVram(1, 2);
+ CopyWindowToVram(1, COPYWIN_GFX);
ScheduleBgCopyTilemapToVram(0);
}
@@ -8024,7 +8024,7 @@ static void AddMenu(void)
ClearWindowTilemap(sStorage->menuWindowId);
DrawStdFrameWithCustomTileAndPalette(sStorage->menuWindowId, FALSE, 11, 14);
PrintMenuTable(sStorage->menuWindowId, sStorage->menuItemsCount, (void*)sStorage->menuItems);
- InitMenuInUpperLeftCornerPlaySoundWhenAPressed(sStorage->menuWindowId, sStorage->menuItemsCount, 0);
+ InitMenuInUpperLeftCornerNormal(sStorage->menuWindowId, sStorage->menuItemsCount, 0);
ScheduleBgCopyTilemapToVram(0);
sStorage->menuUnusedField = 0;
}
@@ -8184,14 +8184,14 @@ static bool8 MultiMove_Start(void)
GetCursorBoxColumnAndRow(&sMultiMove->fromColumn, &sMultiMove->fromRow);
sMultiMove->toColumn = sMultiMove->fromColumn;
sMultiMove->toRow = sMultiMove->fromRow;
- ChangeBgX(0, -1024, 0);
- ChangeBgY(0, -1024, 0);
+ ChangeBgX(0, -1024, BG_COORD_SET);
+ ChangeBgY(0, -1024, BG_COORD_SET);
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x20, 0x20);
FillWindowPixelBuffer8Bit(sStorage->multiMoveWindowId, PIXEL_FILL(0));
MultiMove_SetIconToBg(sMultiMove->fromColumn, sMultiMove->fromRow);
SetBgAttribute(0, BG_ATTR_PALETTEMODE, 1);
PutWindowTilemap(sStorage->multiMoveWindowId);
- CopyWindowToVram8Bit(sStorage->multiMoveWindowId, 3);
+ CopyWindowToVram8Bit(sStorage->multiMoveWindowId, COPYWIN_FULL);
BlendPalettes(0x3F00, 8, RGB_WHITE);
StartCursorAnim(CURSOR_ANIM_OPEN);
SetGpuRegBits(REG_OFFSET_BG0CNT, BGCNT_256COLOR);
@@ -8247,7 +8247,7 @@ static bool8 MultiMove_ChangeSelection(void)
MultiMove_UpdateSelectedIcons();
sMultiMove->toColumn = sMultiMove->cursorColumn;
sMultiMove->toRow = sMultiMove->cursorRow;
- CopyWindowToVram8Bit(sStorage->multiMoveWindowId, 2);
+ CopyWindowToVram8Bit(sStorage->multiMoveWindowId, COPYWIN_GFX);
sMultiMove->state++;
}
break;
@@ -8499,8 +8499,8 @@ static u8 MultiMove_UpdateMove(void)
{
if (sMultiMove->bgMoveSteps != 0)
{
- ChangeBgX(0, sMultiMove->bgX, 1);
- ChangeBgY(0, sMultiMove->bgY, 1);
+ ChangeBgX(0, sMultiMove->bgX, BG_COORD_ADD);
+ ChangeBgY(0, sMultiMove->bgY, BG_COORD_ADD);
sMultiMove->bgMoveSteps--;
}
@@ -8605,8 +8605,8 @@ static void MultiMove_SetPlacedMonData(void)
static void MultiMove_ResetBg(void)
{
- ChangeBgX(0, 0, 0);
- ChangeBgY(0, 0, 0);
+ ChangeBgX(0, 0, BG_COORD_SET);
+ ChangeBgY(0, 0, BG_COORD_SET);
SetBgAttribute(0, BG_ATTR_PALETTEMODE, 0);
ClearGpuRegBits(REG_OFFSET_BG0CNT, BGCNT_256COLOR);
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32);
diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c
index 5a4858620..c5aeb6b47 100644
--- a/src/pokemon_summary_screen.c
+++ b/src/pokemon_summary_screen.c
@@ -1462,7 +1462,7 @@ static void SetDefaultTilemaps(void)
TilemapFiveMovesDisplay(sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], 1, FALSE);
SetBgTilemapBuffer(1, sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0]);
SetBgTilemapBuffer(2, sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0]);
- ChangeBgX(2, 0x10000, 1);
+ ChangeBgX(2, 0x10000, BG_COORD_ADD);
ClearWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_SPECIES);
ClearWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATUS);
}
@@ -1778,12 +1778,12 @@ static void PssScrollRight(u8 taskId) // Scroll right
SetBgAttribute(1, BG_ATTR_PRIORITY, 2);
ScheduleBgCopyTilemapToVram(2);
}
- ChangeBgX(data[1], 0, 0);
+ ChangeBgX(data[1], 0, BG_COORD_SET);
SetBgTilemapBuffer(data[1], sMonSummaryScreen->bgTilemapBuffers[sMonSummaryScreen->currPageIndex][0]);
ShowBg(1);
ShowBg(2);
}
- ChangeBgX(data[1], 0x2000, 1);
+ ChangeBgX(data[1], 0x2000, BG_COORD_ADD);
data[0] += 32;
if (data[0] > 0xFF)
gTasks[taskId].func = PssScrollRightEnd;
@@ -1811,9 +1811,9 @@ static void PssScrollLeft(u8 taskId) // Scroll left
data[1] = 2;
else
data[1] = 1;
- ChangeBgX(data[1], 0x10000, 0);
+ ChangeBgX(data[1], 0x10000, BG_COORD_SET);
}
- ChangeBgX(data[1], 0x2000, 2);
+ ChangeBgX(data[1], 0x2000, BG_COORD_SUB);
data[0] += 32;
if (data[0] > 0xFF)
gTasks[taskId].func = PssScrollLeftEnd;
@@ -1837,7 +1837,7 @@ static void PssScrollLeftEnd(u8 taskId) // display left
if (sMonSummaryScreen->currPageIndex > 1)
{
SetBgTilemapBuffer(data[1], sMonSummaryScreen->bgTilemapBuffers[sMonSummaryScreen->currPageIndex - 1][0]);
- ChangeBgX(data[1], 0x10000, 0);
+ ChangeBgX(data[1], 0x10000, BG_COORD_SET);
}
ShowBg(1);
ShowBg(2);
@@ -2681,9 +2681,9 @@ static void DrawContestMoveHearts(u16 move)
static void LimitEggSummaryPageDisplay(void) // If the pokemon is an egg, limit the number of pages displayed to 1
{
if (sMonSummaryScreen->summary.isEgg)
- ChangeBgX(3, 0x10000, 0);
+ ChangeBgX(3, 0x10000, BG_COORD_SET);
else
- ChangeBgX(3, 0, 0);
+ ChangeBgX(3, 0, BG_COORD_SET);
}
static void ResetWindows(void)
@@ -3677,7 +3677,7 @@ static void AddAndFillMoveNamesWindow(void)
{
u8 windowId = AddWindowFromTemplateList(sPageMovesTemplate, PSS_DATA_WINDOW_MOVE_NAMES);
FillWindowPixelRect(windowId, PIXEL_FILL(0), 0, 66, 72, 16);
- CopyWindowToVram(windowId, 2);
+ CopyWindowToVram(windowId, COPYWIN_GFX);
}
static void SwapMovesNamesPP(u8 moveIndex1, u8 moveIndex2)
@@ -3929,9 +3929,9 @@ static void PlayMonCry(void)
if (!summary->isEgg)
{
if (ShouldPlayNormalMonCry(&sMonSummaryScreen->currentMon) == TRUE)
- PlayCry3(summary->species2, 0, 0);
+ PlayCry_ByMode(summary->species2, 0, CRY_MODE_NORMAL);
else
- PlayCry3(summary->species2, 0, 11);
+ PlayCry_ByMode(summary->species2, 0, CRY_MODE_WEAK);
}
}
diff --git a/src/pokenav_conditions_2.c b/src/pokenav_conditions_2.c
index 089a56e26..4799b163c 100644
--- a/src/pokenav_conditions_2.c
+++ b/src/pokenav_conditions_2.c
@@ -199,12 +199,12 @@ u32 LoopedTask_OpenPartyConditionGraph(s32 state)
return LT_INC_AND_PAUSE;
case 1:
InitBgTemplates(sPartyConditionBgTemplates, ARRAY_COUNT(sPartyConditionBgTemplates));
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
- ChangeBgX(2, 0, 0);
- ChangeBgY(2, 0, 0);
- ChangeBgX(3, 0, 0);
- ChangeBgY(3, 0, 0);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
+ ChangeBgX(2, 0, BG_COORD_SET);
+ ChangeBgY(2, 0, BG_COORD_SET);
+ ChangeBgX(3, 0, BG_COORD_SET);
+ ChangeBgY(3, 0, BG_COORD_SET);
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON | DISPCNT_WIN1_ON | DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG3_ON);
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG3);
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4));
@@ -240,8 +240,8 @@ u32 LoopedTask_OpenPartyConditionGraph(s32 state)
SetConditionGraphIOWindows(2);
return LT_INC_AND_PAUSE;
case 5:
- sub_8199DF0(1, 0, 0, 1);
- sub_8199DF0(1, 17, 1, 1);
+ BgDmaFill(1, 0, 0, 1);
+ BgDmaFill(1, 17, 1, 1);
CpuFill32(0, structPtr->tilemapBuffers[1], BG_SCREEN_SIZE);
SetBgTilemapBuffer(1, structPtr->tilemapBuffers[1]);
return LT_INC_AND_PAUSE;
@@ -596,9 +596,9 @@ bool32 UpdateConditionGraphWindows(u8 mode, u16 bufferIndex, bool8 winMode)
{
case 0:
if (winMode)
- CopyWindowToVram(structPtr->nameGenderWindowId, 3);
+ CopyWindowToVram(structPtr->nameGenderWindowId, COPYWIN_FULL);
else
- CopyWindowToVram(structPtr->nameGenderWindowId, 2);
+ CopyWindowToVram(structPtr->nameGenderWindowId, COPYWIN_GFX);
if (IsConditionMenuSearchMode() == TRUE)
{
@@ -612,9 +612,9 @@ bool32 UpdateConditionGraphWindows(u8 mode, u16 bufferIndex, bool8 winMode)
}
case 1:
if (winMode)
- CopyWindowToVram(structPtr->listIndexWindowId, 3);
+ CopyWindowToVram(structPtr->listIndexWindowId, COPYWIN_FULL);
else
- CopyWindowToVram(structPtr->listIndexWindowId, 2);
+ CopyWindowToVram(structPtr->listIndexWindowId, COPYWIN_GFX);
structPtr->windowModeState = 0;
return TRUE;
@@ -628,8 +628,8 @@ void CopyUnusedConditionWindowsToVram(void)
{
struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU);
- CopyWindowToVram(structPtr->unusedWindowId1, 3);
- CopyWindowToVram(structPtr->unusedWindowId2, 3);
+ CopyWindowToVram(structPtr->unusedWindowId1, COPYWIN_FULL);
+ CopyWindowToVram(structPtr->unusedWindowId2, COPYWIN_FULL);
}
void sub_81CE964(struct Sprite *sprite)
diff --git a/src/pokenav_conditions_3.c b/src/pokenav_conditions_3.c
index 0e5a9b785..1172774d7 100644
--- a/src/pokenav_conditions_3.c
+++ b/src/pokenav_conditions_3.c
@@ -448,8 +448,8 @@ static u32 LoopedTask_OpenConditionSearchResults(s32 state)
case 4:
if (FreeTempTileDataBuffersIfPossible())
return LT_PAUSE;
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
ShowBg(1);
ShowBg(2);
HideBg(3);
@@ -644,7 +644,7 @@ static void AddSearchResultListMenuWindow(struct PokenavSub8 *searchList)
{
searchList->winid = AddWindow(&sSearchResultListMenuWindowTemplate);
PutWindowTilemap(searchList->winid);
- CopyWindowToVram(searchList->winid, 1);
+ CopyWindowToVram(searchList->winid, COPYWIN_MAP);
PrintSearchResultListMenuItems(searchList);
}
@@ -655,10 +655,10 @@ static void PrintSearchResultListMenuItems(struct PokenavSub8 *searchList)
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1);
*gStringVar1 = EOS;
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar2, gText_NumberF700);
- AddTextPrinterParameterized(searchList->winid, FONT_NORMAL, gStringVar2, 4, 1, 0xFF, NULL);
+ AddTextPrinterParameterized(searchList->winid, FONT_NORMAL, gStringVar2, 4, 1, TEXT_SKIP_DRAW, NULL);
ConvertIntToDecimalStringN(gStringVar1, r7, STR_CONV_MODE_RIGHT_ALIGN, 3);
- AddTextPrinterParameterized(searchList->winid, FONT_NORMAL, gStringVar1, 34, 1, 0xFF, NULL);
- CopyWindowToVram(searchList->winid, 2);
+ AddTextPrinterParameterized(searchList->winid, FONT_NORMAL, gStringVar1, 34, 1, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(searchList->winid, COPYWIN_GFX);
}
static void InitConditionSearchListMenuTemplate(void)
diff --git a/src/pokenav_main_menu.c b/src/pokenav_main_menu.c
index 0166cc10c..714c8221a 100644
--- a/src/pokenav_main_menu.c
+++ b/src/pokenav_main_menu.c
@@ -421,9 +421,9 @@ static u32 LoopedTask_SlideMenuHeaderUp(s32 a0)
case 0:
return LT_INC_AND_PAUSE;
case 2:
- if (ChangeBgY(0, 384, 1) >= 0x2000u)
+ if (ChangeBgY(0, 384, BG_COORD_ADD) >= 0x2000u)
{
- ChangeBgY(0, 0x2000, 0);
+ ChangeBgY(0, 0x2000, BG_COORD_SET);
return LT_FINISH;
}
@@ -433,9 +433,9 @@ static u32 LoopedTask_SlideMenuHeaderUp(s32 a0)
static u32 LoopedTask_SlideMenuHeaderDown(s32 a0)
{
- if (ChangeBgY(0, 384, 2) <= 0)
+ if (ChangeBgY(0, 384, BG_COORD_SUB) <= 0)
{
- ChangeBgY(0, 0, 0);
+ ChangeBgY(0, 0, BG_COORD_SET);
return LT_FINISH;
}
return LT_PAUSE;
@@ -555,7 +555,7 @@ static void InitHelpBar(void)
structPtr->helpBarWindowId = 0;
DrawHelpBar(structPtr->helpBarWindowId);
PutWindowTilemap(structPtr->helpBarWindowId);
- CopyWindowToVram(structPtr->helpBarWindowId, 3); // TODO: Use a defined constant here.
+ CopyWindowToVram(structPtr->helpBarWindowId, COPYWIN_FULL);
}
void PrintHelpBarText(u32 textId)
diff --git a/src/pokenav_match_call_2.c b/src/pokenav_match_call_2.c
index 727aa3694..8f2220957 100755
--- a/src/pokenav_match_call_2.c
+++ b/src/pokenav_match_call_2.c
@@ -322,8 +322,8 @@ static u32 LoopedTask_OpenMatchCall(s32 taskState)
{
case 0:
InitBgTemplates(sMatchCallBgTemplates, ARRAY_COUNT(sMatchCallBgTemplates));
- ChangeBgX(2, 0, 0);
- ChangeBgY(2, 0, 0);
+ ChangeBgX(2, 0, BG_COORD_SET);
+ ChangeBgY(2, 0, BG_COORD_SET);
DecompressAndCopyTileDataToVram(2, sMatchCallUI_Gfx, 0, 0, 0);
SetBgTilemapBuffer(2, state->unk1024);
CopyToBgTilemapBuffer(2, sMatchCallUI_Tilemap, 0, 0);
@@ -335,7 +335,7 @@ static u32 LoopedTask_OpenMatchCall(s32 taskState)
if (FreeTempTileDataBuffersIfPossible())
return LT_PAUSE;
- sub_8199DF0(1, 0, 0, 1);
+ BgDmaFill(1, 0, 0, 1);
SetBgTilemapBuffer(1, state->unk24);
FillBgTilemapBufferRect_Palette0(1, 0x1000, 0, 0, 32, 20);
CopyPaletteIntoBufferUnfaded(gUnknown_086226E0, 0x10, 0x20);
@@ -367,8 +367,8 @@ static u32 LoopedTask_OpenMatchCall(s32 taskState)
PrintMatchCallLocation(state, 0);
return LT_INC_AND_PAUSE;
case 6:
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
ShowBg(2);
ShowBg(3);
ShowBg(1);
@@ -942,7 +942,7 @@ static void DrawMatchCallLeftColumnWindows(struct Pokenav4Struct *state)
PutWindowTilemap(state->locWindowId);
FillWindowPixelBuffer(state->infoBoxWindowId, PIXEL_FILL(1));
PutWindowTilemap(state->infoBoxWindowId);
- CopyWindowToVram(state->locWindowId, 1);
+ CopyWindowToVram(state->locWindowId, COPYWIN_MAP);
}
static void UpdateMatchCallInfoBox(struct Pokenav4Struct *state)
@@ -952,7 +952,7 @@ static void UpdateMatchCallInfoBox(struct Pokenav4Struct *state)
PrintNumberRegistered(state->infoBoxWindowId);
PrintNumberOfBattlesLabel(state->infoBoxWindowId);
PrintNumberOfBattles(state->infoBoxWindowId);
- CopyWindowToVram(state->infoBoxWindowId, 2);
+ CopyWindowToVram(state->infoBoxWindowId, COPYWIN_GFX);
}
static void PrintNumberRegisteredLabel(u16 windowId)
@@ -986,14 +986,14 @@ static void PrintNumberOfBattles(u16 windowId)
static void PrintMatchCallInfoLabel(u16 windowId, const u8 *str, int top)
{
int y = top * 16 + 1;
- AddTextPrinterParameterized(windowId, FONT_NARROW, str, 2, y, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(windowId, FONT_NARROW, str, 2, y, TEXT_SKIP_DRAW, NULL);
}
static void PrintMatchCallInfoNumber(u16 windowId, const u8 *str, int top)
{
int x = GetStringRightAlignXOffset(FONT_NARROW, str, 86);
int y = top * 16 + 1;
- AddTextPrinterParameterized(windowId, FONT_NARROW, str, x, y, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(windowId, FONT_NARROW, str, x, y, TEXT_SKIP_DRAW, NULL);
}
static void PrintMatchCallLocation(struct Pokenav4Struct *state, int arg1)
@@ -1023,10 +1023,10 @@ static void PrintMatchCallSelectionOptions(struct Pokenav4Struct *state)
if (optionText == MATCH_CALL_OPTION_COUNT)
break;
- AddTextPrinterParameterized(state->infoBoxWindowId, FONT_NARROW, sMatchCallOptionTexts[optionText], 16, i * 16 + 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(state->infoBoxWindowId, FONT_NARROW, sMatchCallOptionTexts[optionText], 16, i * 16 + 1, TEXT_SKIP_DRAW, NULL);
}
- CopyWindowToVram(state->infoBoxWindowId, 2);
+ CopyWindowToVram(state->infoBoxWindowId, COPYWIN_GFX);
}
static bool32 sub_81CBFC4(struct Pokenav4Struct *state)
@@ -1055,7 +1055,7 @@ static void UpdateWindowsToShowCheckPage(struct Pokenav4Struct *state)
{
CloseMatchCallSelectOptionsWindow(state);
FillWindowPixelBuffer(state->infoBoxWindowId, PIXEL_FILL(1));
- CopyWindowToVram(state->infoBoxWindowId, 2);
+ CopyWindowToVram(state->infoBoxWindowId, COPYWIN_GFX);
}
static void sub_81CC034(struct Pokenav4Struct *state)
@@ -1072,7 +1072,7 @@ static void DrawMsgBoxForMatchCallMsg(struct Pokenav4Struct *state)
DrawMatchCallTextBoxBorder(state->msgBoxWindowId, 1, 4);
FillWindowPixelBuffer(state->msgBoxWindowId, PIXEL_FILL(1));
PutWindowTilemap(state->msgBoxWindowId);
- CopyWindowToVram(state->msgBoxWindowId, 3);
+ CopyWindowToVram(state->msgBoxWindowId, COPYWIN_FULL);
sprite = PauseSpinningPokenavSprite();
sprite->x = 24;
sprite->y = 112;
@@ -1085,7 +1085,7 @@ static void DrawMsgBoxForCloseByMsg(struct Pokenav4Struct *state)
DrawTextBorderOuter(state->msgBoxWindowId, 1, 4);
FillWindowPixelBuffer(state->msgBoxWindowId, PIXEL_FILL(1));
PutWindowTilemap(state->msgBoxWindowId);
- CopyWindowToVram(state->msgBoxWindowId, 3);
+ CopyWindowToVram(state->msgBoxWindowId, COPYWIN_FULL);
}
static bool32 IsDma3ManagerBusyWithBgCopy2(struct Pokenav4Struct *state)
diff --git a/src/pokenav_match_call_ui.c b/src/pokenav_match_call_ui.c
index 5a6de2c00..47226ca72 100644
--- a/src/pokenav_match_call_ui.c
+++ b/src/pokenav_match_call_ui.c
@@ -169,13 +169,13 @@ u32 LoopedTask_sub_81C8254(s32 state)
void sub_81C82E4(struct PokenavSub17 *matchCall)
{
u16 tileNum = (matchCall->list.listWindow.unk1 << 12) | matchCall->list.listWindow.unk6;
- sub_8199DF0(matchCall->list.listWindow.bg, PIXEL_FILL(1), matchCall->list.listWindow.unk6, 1);
- sub_8199DF0(matchCall->list.listWindow.bg, PIXEL_FILL(4), matchCall->list.listWindow.unk6 + 1, 1);
+ BgDmaFill(matchCall->list.listWindow.bg, PIXEL_FILL(1), matchCall->list.listWindow.unk6, 1);
+ BgDmaFill(matchCall->list.listWindow.bg, PIXEL_FILL(4), matchCall->list.listWindow.unk6 + 1, 1);
SetBgTilemapBuffer(matchCall->list.listWindow.bg, matchCall->tilemapBuffer);
FillBgTilemapBufferRect_Palette0(matchCall->list.listWindow.bg, tileNum, 0, 0, 32, 32);
- ChangeBgY(matchCall->list.listWindow.bg, 0, 0);
- ChangeBgX(matchCall->list.listWindow.bg, 0, 0);
- ChangeBgY(matchCall->list.listWindow.bg, matchCall->list.listWindow.unk3 << 11, 2);
+ ChangeBgY(matchCall->list.listWindow.bg, 0, BG_COORD_SET);
+ ChangeBgX(matchCall->list.listWindow.bg, 0, BG_COORD_SET);
+ ChangeBgY(matchCall->list.listWindow.bg, matchCall->list.listWindow.unk3 << 11, BG_COORD_SUB);
CopyBgTilemapBufferToVram(matchCall->list.listWindow.bg);
}
@@ -183,7 +183,7 @@ void sub_81C835C(struct PokenavListMenuWindow *listWindow)
{
FillWindowPixelBuffer(listWindow->windowId, PIXEL_FILL(1));
PutWindowTilemap(listWindow->windowId);
- CopyWindowToVram(listWindow->windowId, 1);
+ CopyWindowToVram(listWindow->windowId, COPYWIN_MAP);
}
void sub_81C837C(struct MatchCallWindowState *state, struct PokenavSub17Substruct *a1)
@@ -231,9 +231,9 @@ u32 LoopedTask_sub_81C83F0(s32 state)
if (++structPtr->listWindow.unkC >= structPtr->listWindow.unkE)
{
if (structPtr->unk38 != NULL)
- CopyWindowToVram(structPtr->listWindow.windowId, 3);
+ CopyWindowToVram(structPtr->listWindow.windowId, COPYWIN_FULL);
else
- CopyWindowToVram(structPtr->listWindow.windowId, 2);
+ CopyWindowToVram(structPtr->listWindow.windowId, COPYWIN_GFX);
return LT_INC_AND_PAUSE;
}
else
@@ -295,9 +295,9 @@ void sub_81C8568(s32 a0, struct PokenavSub17Substruct *list)
list->unk20 = GetBgY(list->listWindow.bg);
list->unk24 = list->unk20 + (a0 << 12);
if (a0 > 0)
- list->unk30 = 1;
+ list->unk30 = BG_COORD_ADD;
else
- list->unk30 = 2;
+ list->unk30 = BG_COORD_SUB;
list->unk2C = a0;
list->loopedTaskId = CreateLoopedTask(LoopedTask_sub_81C85A0, 6);
}
@@ -319,12 +319,12 @@ u32 LoopedTask_sub_81C85A0(s32 state)
flag = FALSE;
y = GetBgY(subPtr->listWindow.bg);
v1 = ChangeBgY(subPtr->listWindow.bg, 0x1000, subPtr->unk30);
- if (subPtr->unk30 == 2)
+ if (subPtr->unk30 == BG_COORD_SUB)
{
if ((y > subPtr->unk24 || y <= subPtr->unk20) && v1 <= subPtr->unk24)
flag = TRUE;
}
- else
+ else // BG_COORD_ADD
{
if ((y < subPtr->unk24 || y >= subPtr->unk20) && v1 >= subPtr->unk24)
flag = TRUE;
@@ -333,7 +333,7 @@ u32 LoopedTask_sub_81C85A0(s32 state)
if (flag)
{
subPtr->listWindow.unkA = (subPtr->listWindow.unkA + subPtr->unk2C) & 0xF;
- ChangeBgY(subPtr->listWindow.bg, subPtr->unk24, 0);
+ ChangeBgY(subPtr->listWindow.bg, subPtr->unk24, BG_COORD_SET);
return LT_FINISH;
}
return LT_PAUSE;
@@ -494,7 +494,7 @@ void sub_81C8838(void)
struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
struct MatchCallWindowState *subPtr = &structPtr->unk888;
structPtr->list.unk38(structPtr->list.listWindow.windowId, subPtr->windowTopIndex + subPtr->selectedIndexOffset, (structPtr->list.listWindow.unkA + subPtr->selectedIndexOffset) & 0xF);
- CopyWindowToVram(structPtr->list.listWindow.windowId, 1);
+ CopyWindowToVram(structPtr->list.listWindow.windowId, COPYWIN_MAP);
}
// TODO:
@@ -672,7 +672,7 @@ void sub_81C8B70(struct PokenavListMenuWindow *listWindow, s32 a1, s32 a2)
if (a1 + a2 <= 16)
{
CpuFastFill8(PIXEL_FILL(1), v1 + a1 * v2, a2 * v2);
- CopyWindowToVram(listWindow->windowId, 2);
+ CopyWindowToVram(listWindow->windowId, COPYWIN_GFX);
}
else
{
@@ -681,13 +681,13 @@ void sub_81C8B70(struct PokenavListMenuWindow *listWindow, s32 a1, s32 a2)
CpuFastFill8(PIXEL_FILL(1), v1 + a1 * v2, v3 * v2);
CpuFastFill8(PIXEL_FILL(1), v1, v4 * v2);
- CopyWindowToVram(listWindow->windowId, 2);
+ CopyWindowToVram(listWindow->windowId, COPYWIN_GFX);
}
for (a2--; a2 != -1; a1 = (a1 + 1) & 0xF, a2--)
ClearRematchPokeballIcon(listWindow->windowId, a1);
- CopyWindowToVram(listWindow->windowId, 1);
+ CopyWindowToVram(listWindow->windowId, COPYWIN_MAP);
}
void sub_81C8C64(struct PokenavListMenuWindow *listWindow, u32 a1)
@@ -712,18 +712,18 @@ void sub_81C8CB4(struct MatchCallWindowState *state, struct PokenavSub17Substruc
list->unk34(state->unk10 + state->unkC * state->windowTopIndex, list->unkTextBuffer);
list->unk38(list->listWindow.windowId, state->windowTopIndex, list->listWindow.unkA);
FillWindowPixelRect(list->listWindow.windowId, PIXEL_FILL(4), 0, list->listWindow.unkA * 16, list->listWindow.unk4 * 8, 16);
- AddTextPrinterParameterized3(list->listWindow.windowId, list->listWindow.fontId, 8, (list->listWindow.unkA * 16) + 1, colors, TEXT_SPEED_FF, list->unkTextBuffer);
+ AddTextPrinterParameterized3(list->listWindow.windowId, list->listWindow.fontId, 8, (list->listWindow.unkA * 16) + 1, colors, TEXT_SKIP_DRAW, list->unkTextBuffer);
sub_81C8C64(&list->listWindow, 1);
- CopyWindowRectToVram(list->listWindow.windowId, 3, 0, list->listWindow.unkA * 2, list->listWindow.unk4, 2);
+ CopyWindowRectToVram(list->listWindow.windowId, COPYWIN_FULL, 0, list->listWindow.unkA * 2, list->listWindow.unk4, 2);
}
void sub_81C8D4C(struct MatchCallWindowState *state, struct PokenavSub17Substruct *list)
{
list->unk34(state->unk10 + state->unkC * state->windowTopIndex, list->unkTextBuffer);
FillWindowPixelRect(list->listWindow.windowId, PIXEL_FILL(1), 0, list->listWindow.unkA * 16, list->listWindow.unk4 * 8, 16);
- AddTextPrinterParameterized(list->listWindow.windowId, list->listWindow.fontId, list->unkTextBuffer, 8, list->listWindow.unkA * 16 + 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(list->listWindow.windowId, list->listWindow.fontId, list->unkTextBuffer, 8, list->listWindow.unkA * 16 + 1, TEXT_SKIP_DRAW, NULL);
sub_81C8C64(&list->listWindow, 0);
- CopyWindowToVram(list->listWindow.windowId, 3);
+ CopyWindowToVram(list->listWindow.windowId, COPYWIN_FULL);
}
void PrintMatchCallFieldNames(struct PokenavSub17Substruct *list, u32 fieldId)
@@ -733,8 +733,8 @@ void PrintMatchCallFieldNames(struct PokenavSub17Substruct *list, u32 fieldId)
u32 top = (list->listWindow.unkA + 1 + (fieldId * 2)) & 0xF;
FillWindowPixelRect(list->listWindow.windowId, PIXEL_FILL(1), 0, top << 4, list->listWindow.unk4, 16);
- AddTextPrinterParameterized3(list->listWindow.windowId, FONT_NARROW, 2, (top << 4) + 1, colors, -1, fieldNames[fieldId]);
- CopyWindowRectToVram(list->listWindow.windowId, 2, 0, top << 1, list->listWindow.unk4, 2);
+ AddTextPrinterParameterized3(list->listWindow.windowId, FONT_NARROW, 2, (top << 4) + 1, colors, TEXT_SKIP_DRAW, fieldNames[fieldId]);
+ CopyWindowRectToVram(list->listWindow.windowId, COPYWIN_GFX, 0, top << 1, list->listWindow.unk4, 2);
}
static void PrintMatchCallFlavorText(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *list, u32 checkPageEntry)
@@ -754,8 +754,8 @@ static void PrintMatchCallFlavorText(struct MatchCallWindowState *a0, struct Pok
if (str != NULL)
{
FillWindowTilesByRow(list->listWindow.windowId, 1, r6 * 2, list->listWindow.unk4 - 1, 2);
- AddTextPrinterParameterized(list->listWindow.windowId, FONT_NARROW, str, 2, (r6 << 4) + 1, TEXT_SPEED_FF, NULL);
- CopyWindowRectToVram(list->listWindow.windowId, 2, 0, r6 * 2, list->listWindow.unk4, 2);
+ AddTextPrinterParameterized(list->listWindow.windowId, FONT_NARROW, str, 2, (r6 << 4) + 1, TEXT_SKIP_DRAW, NULL);
+ CopyWindowRectToVram(list->listWindow.windowId, COPYWIN_GFX, 0, r6 * 2, list->listWindow.unk4, 2);
}
}
diff --git a/src/pokenav_menu_handler_2.c b/src/pokenav_menu_handler_2.c
index ded4c7007..bcfe94cb7 100644
--- a/src/pokenav_menu_handler_2.c
+++ b/src/pokenav_menu_handler_2.c
@@ -415,12 +415,12 @@ static u32 LoopedTask_OpenMenu(s32 state)
CopyToBgTilemapBuffer(1, gPokenavMessageBox_Tilemap, 0, 0);
CopyBgTilemapBufferToVram(1);
CopyPaletteIntoBufferUnfaded(gPokenavMessageBox_Pal, 0x10, 0x20);
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
- ChangeBgX(2, 0, 0);
- ChangeBgY(2, 0, 0);
- ChangeBgX(3, 0, 0);
- ChangeBgY(3, 0, 0);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
+ ChangeBgX(2, 0, BG_COORD_SET);
+ ChangeBgY(2, 0, BG_COORD_SET);
+ ChangeBgX(3, 0, BG_COORD_SET);
+ ChangeBgY(3, 0, BG_COORD_SET);
return LT_INC_AND_PAUSE;
case 1:
if (FreeTempTileDataBuffersIfPossible())
@@ -1125,7 +1125,7 @@ static void AddOptionDescriptionWindow(void)
ptr->optionDescWindowId = AddWindow(&sOptionDescWindowTemplate);
PutWindowTilemap(ptr->optionDescWindowId);
FillWindowPixelBuffer(ptr->optionDescWindowId, PIXEL_FILL(6));
- CopyWindowToVram(ptr->optionDescWindowId, 3);
+ CopyWindowToVram(ptr->optionDescWindowId, COPYWIN_FULL);
}
static void PrintCurrentOptionDescription(void)
@@ -1168,7 +1168,7 @@ static void DestroyMovingDotsBgTask(void)
static void Task_MoveBgDots(u8 taskId)
{
- ChangeBgX(3, 0x80, 1);
+ ChangeBgX(3, 0x80, BG_COORD_ADD);
}
static void CreateBgDotPurplePalTask(void)
diff --git a/src/pokenav_region_map.c b/src/pokenav_region_map.c
index 07788a5d3..89bd2f7c7 100755
--- a/src/pokenav_region_map.c
+++ b/src/pokenav_region_map.c
@@ -501,8 +501,8 @@ static void FreeCityZoomViewGfx(void)
static void LoadPokenavRegionMapGfx(struct Pokenav5Struct_2 *state)
{
- sub_8199DF0(1, PIXEL_FILL(0), 0x40, 1);
- sub_8199DF0(1, PIXEL_FILL(1), 0x41, 1);
+ BgDmaFill(1, PIXEL_FILL(0), 0x40, 1);
+ BgDmaFill(1, PIXEL_FILL(1), 0x41, 1);
CpuFill16(0x1040, state->tilemapBuffer, 0x800);
SetBgTilemapBuffer(1, state->tilemapBuffer);
state->infoWindowId = AddWindow(&sMapSecInfoWindowTemplate);
@@ -511,15 +511,15 @@ static void LoadPokenavRegionMapGfx(struct Pokenav5Struct_2 *state)
DecompressAndCopyTileDataToVram(1, sRegionMapCityZoomTiles_Gfx, 0, 0, 0);
FillWindowPixelBuffer(state->infoWindowId, PIXEL_FILL(1));
PutWindowTilemap(state->infoWindowId);
- CopyWindowToVram(state->infoWindowId, 3);
+ CopyWindowToVram(state->infoWindowId, COPYWIN_FULL);
CopyPaletteIntoBufferUnfaded(sMapSecInfoWindow_Pal, 0x10, 0x20);
CopyPaletteIntoBufferUnfaded(gRegionMapCityZoomTiles_Pal, 0x30, 0x20);
if (!IsRegionMapZoomed())
- ChangeBgY(1, -0x6000, 0);
+ ChangeBgY(1, -0x6000, BG_COORD_SET);
else
- ChangeBgY(1, 0, 0);
+ ChangeBgY(1, 0, BG_COORD_SET);
- ChangeBgX(1, 0, 0);
+ ChangeBgX(1, 0, BG_COORD_SET);
}
static bool32 TryFreeTempTileDataBuffers(void)
@@ -535,26 +535,26 @@ static void UpdateMapSecInfoWindow(struct Pokenav5Struct_2 *state)
case MAPSECTYPE_CITY_CANFLY:
FillWindowPixelBuffer(state->infoWindowId, PIXEL_FILL(1));
PutWindowRectTilemap(state->infoWindowId, 0, 0, 12, 2);
- AddTextPrinterParameterized(state->infoWindowId, FONT_NARROW, regionMap->mapSecName, 0, 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(state->infoWindowId, FONT_NARROW, regionMap->mapSecName, 0, 1, TEXT_SKIP_DRAW, NULL);
DrawCityMap(state, regionMap->mapSecId, regionMap->posWithinMapSec);
- CopyWindowToVram(state->infoWindowId, 3);
+ CopyWindowToVram(state->infoWindowId, COPYWIN_FULL);
SetCityZoomTextInvisibility(FALSE);
break;
case MAPSECTYPE_CITY_CANTFLY:
FillWindowPixelBuffer(state->infoWindowId, PIXEL_FILL(1));
PutWindowRectTilemap(state->infoWindowId, 0, 0, 12, 2);
- AddTextPrinterParameterized(state->infoWindowId, FONT_NARROW, regionMap->mapSecName, 0, 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(state->infoWindowId, FONT_NARROW, regionMap->mapSecName, 0, 1, TEXT_SKIP_DRAW, NULL);
FillBgTilemapBufferRect(1, 0x1041, 17, 6, 12, 11, 17);
- CopyWindowToVram(state->infoWindowId, 3);
+ CopyWindowToVram(state->infoWindowId, COPYWIN_FULL);
SetCityZoomTextInvisibility(TRUE);
break;
case MAPSECTYPE_ROUTE:
case MAPSECTYPE_BATTLE_FRONTIER:
FillWindowPixelBuffer(state->infoWindowId, PIXEL_FILL(1));
PutWindowTilemap(state->infoWindowId);
- AddTextPrinterParameterized(state->infoWindowId, FONT_NARROW, regionMap->mapSecName, 0, 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(state->infoWindowId, FONT_NARROW, regionMap->mapSecName, 0, 1, TEXT_SKIP_DRAW, NULL);
PrintLandmarkNames(state, regionMap->mapSecId, regionMap->posWithinMapSec);
- CopyWindowToVram(state->infoWindowId, 3);
+ CopyWindowToVram(state->infoWindowId, COPYWIN_FULL);
SetCityZoomTextInvisibility(TRUE);
break;
case MAPSECTYPE_NONE:
@@ -587,9 +587,9 @@ static void Task_ChangeBgYForZoom(u8 taskId)
{
if (gTasks[taskId].tZoomIn)
{
- if (ChangeBgY(1, 0x480, 1) >= 0)
+ if (ChangeBgY(1, 0x480, BG_COORD_ADD) >= 0)
{
- ChangeBgY(1, 0, 0);
+ ChangeBgY(1, 0, BG_COORD_SET);
DestroyTask(taskId);
}
@@ -597,9 +597,9 @@ static void Task_ChangeBgYForZoom(u8 taskId)
}
else
{
- if (ChangeBgY(1, 0x480, 2) <= -0x6000)
+ if (ChangeBgY(1, 0x480, BG_COORD_SUB) <= -0x6000)
{
- ChangeBgY(1, -0x6000, 0);
+ ChangeBgY(1, -0x6000, BG_COORD_SET);
DestroyTask(taskId);
}
@@ -654,7 +654,7 @@ static void PrintLandmarkNames(struct Pokenav5Struct_2 *state, int mapSecId, int
break;
StringCopyPadded(gStringVar1, landmarkName, CHAR_SPACE, 12);
- AddTextPrinterParameterized(state->infoWindowId, FONT_NARROW, gStringVar1, 0, i * 16 + 17, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(state->infoWindowId, FONT_NARROW, gStringVar1, 0, i * 16 + 17, TEXT_SKIP_DRAW, NULL);
i++;
}
}
diff --git a/src/pokenav_ribbons_1.c b/src/pokenav_ribbons_1.c
index 3d8611a4a..862128967 100644
--- a/src/pokenav_ribbons_1.c
+++ b/src/pokenav_ribbons_1.c
@@ -439,8 +439,8 @@ static u32 LoopedTask_OpenRibbonsMonList(s32 state)
return LT_PAUSE;
if (!UpdateMonListBgs())
return LT_PAUSE;
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
ShowBg(1);
return LT_INC_AND_PAUSE;
case 2:
@@ -652,7 +652,7 @@ static void AddRibbonsMonListWindow(struct PokenavSub10 *monMenu)
PutWindowTilemap(monMenu->winid);
r2 = GetRibbonsMonListCount();
sub_81D02B0(monMenu->winid, 0, r2);
- CopyWindowToVram(monMenu->winid, 1);
+ CopyWindowToVram(monMenu->winid, COPYWIN_MAP);
sub_81D0288(monMenu);
}
@@ -661,7 +661,7 @@ static void sub_81D0288(struct PokenavSub10 *monMenu)
s32 r4 = GetSelectedPokenavListIndex();
s32 r2 = GetRibbonsMonListCount();
sub_81D02B0(monMenu->winid, r4 + 1, r2);
- CopyWindowToVram(monMenu->winid, 2);
+ CopyWindowToVram(monMenu->winid, COPYWIN_GFX);
}
static void sub_81D02B0(s32 windowId, s32 val1, s32 val2)
@@ -674,7 +674,7 @@ static void sub_81D02B0(s32 windowId, s32 val1, s32 val2)
*ptr++ = CHAR_SLASH;
ConvertIntToDecimalStringN(ptr, val2, STR_CONV_MODE_RIGHT_ALIGN, 3);
x = GetStringCenterAlignXOffset(FONT_NORMAL, strbuf, 56);
- AddTextPrinterParameterized(windowId, FONT_NORMAL, strbuf, x, 1, 0xFF, NULL);
+ AddTextPrinterParameterized(windowId, FONT_NORMAL, strbuf, x, 1, TEXT_SKIP_DRAW, NULL);
}
static void InitMonRibbonPokenavListMenuTemplate(void)
diff --git a/src/pokenav_ribbons_2.c b/src/pokenav_ribbons_2.c
index 75d9f5bd0..ef08ba392 100644
--- a/src/pokenav_ribbons_2.c
+++ b/src/pokenav_ribbons_2.c
@@ -578,7 +578,7 @@ static u32 LoopedTask_OpenRibbonsSummaryMenu(s32 state)
case 1:
if (!FreeTempTileDataBuffersIfPossible())
{
- sub_8199DF0(1, 0, 0, 1);
+ BgDmaFill(1, 0, 0, 1);
DecompressAndCopyTileDataToVram(1, sRibbonIconsSmall_Gfx, 0, 1, 0);
SetBgTilemapBuffer(1, structPtr->tilemapBuffers[1]);
FillBgTilemapBufferRect_Palette0(1, 0, 0, 0, 32, 20);
@@ -631,10 +631,10 @@ static u32 LoopedTask_OpenRibbonsSummaryMenu(s32 state)
if (!IsDma3ManagerBusyWithBgCopy())
{
CreateBigRibbonSprite(structPtr);
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
- ChangeBgX(2, 0, 0);
- ChangeBgY(2, 0, 0);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
+ ChangeBgX(2, 0, BG_COORD_SET);
+ ChangeBgY(2, 0, BG_COORD_SET);
ShowBg(1);
ShowBg(2);
HideBg(3);
@@ -809,8 +809,8 @@ static void PrintCurrentMonRibbonCount(struct PokenavSub14 *structPtr)
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gText_RibbonsF700);
FillWindowPixelBuffer(structPtr->ribbonCountWindowId, PIXEL_FILL(4));
- AddTextPrinterParameterized3(structPtr->ribbonCountWindowId, FONT_NORMAL, 0, 1, color, -1, gStringVar4);
- CopyWindowToVram(structPtr->ribbonCountWindowId, 2);
+ AddTextPrinterParameterized3(structPtr->ribbonCountWindowId, FONT_NORMAL, 0, 1, color, TEXT_SKIP_DRAW, gStringVar4);
+ CopyWindowToVram(structPtr->ribbonCountWindowId, COPYWIN_GFX);
}
static void PrintRibbonNameAndDescription(struct PokenavSub14 *structPtr)
@@ -824,7 +824,7 @@ static void PrintRibbonNameAndDescription(struct PokenavSub14 *structPtr)
{
// Print normal ribbon name/description
for (i = 0; i < 2; i++)
- AddTextPrinterParameterized3(structPtr->ribbonCountWindowId, FONT_NORMAL, 0, (i * 16) + 1, color, -1, gRibbonDescriptionPointers[ribbonId][i]);
+ AddTextPrinterParameterized3(structPtr->ribbonCountWindowId, FONT_NORMAL, 0, (i * 16) + 1, color, TEXT_SKIP_DRAW, gRibbonDescriptionPointers[ribbonId][i]);
}
else
{
@@ -840,10 +840,10 @@ static void PrintRibbonNameAndDescription(struct PokenavSub14 *structPtr)
// Print gift ribbon name/description
ribbonId--;
for (i = 0; i < 2; i++)
- AddTextPrinterParameterized3(structPtr->ribbonCountWindowId, FONT_NORMAL, 0, (i * 16) + 1, color, -1, gGiftRibbonDescriptionPointers[ribbonId][i]);
+ AddTextPrinterParameterized3(structPtr->ribbonCountWindowId, FONT_NORMAL, 0, (i * 16) + 1, color, TEXT_SKIP_DRAW, gGiftRibbonDescriptionPointers[ribbonId][i]);
}
- CopyWindowToVram(structPtr->ribbonCountWindowId, 2);
+ CopyWindowToVram(structPtr->ribbonCountWindowId, COPYWIN_GFX);
}
static const struct WindowTemplate sRibbonSummaryMonNameWindowTemplate =
@@ -877,7 +877,7 @@ static void PrintRibbbonsSummaryMonInfo(struct PokenavSub14 *structPtr)
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
GetMonNicknameLevelGender(gStringVar3, &level, &gender);
- AddTextPrinterParameterized(windowId, FONT_NORMAL, gStringVar3, 0, 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(windowId, FONT_NORMAL, gStringVar3, 0, 1, TEXT_SKIP_DRAW, NULL);
switch (gender)
{
case MON_MALE:
@@ -896,8 +896,8 @@ static void PrintRibbbonsSummaryMonInfo(struct PokenavSub14 *structPtr)
*(txtPtr++) = CHAR_EXTRA_SYMBOL;
*(txtPtr++) = CHAR_LV_2;
ConvertIntToDecimalStringN(txtPtr, level, STR_CONV_MODE_LEFT_ALIGN, 3);
- AddTextPrinterParameterized(windowId, FONT_NORMAL, gStringVar1, 60, 1, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(windowId, 2);
+ AddTextPrinterParameterized(windowId, FONT_NORMAL, gStringVar1, 60, 1, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(windowId, COPYWIN_GFX);
}
static const struct WindowTemplate sRibbonMonListIndexWindowTemplate[] =
@@ -933,8 +933,8 @@ static void PrintRibbonsMonListIndex(struct PokenavSub14 *structPtr)
*(txtPtr++) = CHAR_SLASH;
ConvertIntToDecimalStringN(txtPtr, count, STR_CONV_MODE_RIGHT_ALIGN, 3);
x = GetStringCenterAlignXOffset(FONT_NORMAL, gStringVar1, 56);
- AddTextPrinterParameterized(structPtr->listIdxWindowId, FONT_NORMAL, gStringVar1, x, 1, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(structPtr->listIdxWindowId, 2);
+ AddTextPrinterParameterized(structPtr->listIdxWindowId, FONT_NORMAL, gStringVar1, x, 1, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(structPtr->listIdxWindowId, COPYWIN_GFX);
}
static void ResetSpritesAndDrawMonFrontPic(struct PokenavSub14 *structPtr)
diff --git a/src/rayquaza_scene.c b/src/rayquaza_scene.c
index 642fe6233..634b0651a 100644
--- a/src/rayquaza_scene.c
+++ b/src/rayquaza_scene.c
@@ -1757,8 +1757,8 @@ static void DuoFight_LightningLong(void)
static void DuoFight_AnimateRain(void)
{
- ChangeBgX(2, 0x400, 1);
- ChangeBgY(2, 0x800, 2);
+ ChangeBgX(2, 0x400, BG_COORD_ADD);
+ ChangeBgY(2, 0x800, BG_COORD_SUB);
}
// Only used by the full version, which pans up at the end (so scene objects move down)
@@ -1772,7 +1772,7 @@ static void DuoFight_PanOffScene(u8 taskId)
bgY = GetBgY(1);
if (GetBgY(1) == 0 || bgY > 0x8000)
- ChangeBgY(1, 0x400, 2);
+ ChangeBgY(1, 0x400, BG_COORD_SUB);
if (tTimer != 16)
{
@@ -1795,7 +1795,7 @@ static void Task_DuoFightEnd(u8 taskId)
if (!gPaletteFade.active)
{
DestroyTask(tHelperTaskId);
- ChangeBgY(1, 0, 0);
+ ChangeBgY(1, 0, BG_COORD_SET);
SetVBlankCallback(NULL);
ScanlineEffect_Stop();
ResetSpriteData();
@@ -2579,8 +2579,8 @@ static void Task_RayCharges_ShakeRayquaza(u8 taskId)
s16 *data = gTasks[taskId].data;
if ((tTimer & 3) == 0)
{
- ChangeBgX(1, (Random() % 8 - 4) << 8, 0);
- ChangeBgY(1, (Random() % 8 - 4) << 8, 0);
+ ChangeBgX(1, (Random() % 8 - 4) << 8, BG_COORD_SET);
+ ChangeBgY(1, (Random() % 8 - 4) << 8, BG_COORD_SET);
}
tTimer++;
@@ -2592,16 +2592,16 @@ static void Task_RayCharges_FlyOffscreen(u8 taskId)
s16 *data = gTasks[taskId].data;
if (tState == 0)
{
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
tState++;
tOffset = 10;
tShakeDir = -1;
}
else if (tState == 1)
{
- ChangeBgX(1, tOffset << 8, 2);
- ChangeBgY(1, tOffset << 8, 1);
+ ChangeBgX(1, tOffset << 8, BG_COORD_SUB);
+ ChangeBgY(1, tOffset << 8, BG_COORD_ADD);
tOffset += tShakeDir;
if (tOffset == -10)
tShakeDir *= -1;
@@ -2616,12 +2616,12 @@ static void Task_RayCharges_FlyOffscreen(u8 taskId)
static void RayCharges_AnimateBg(void)
{
// Update yellow orbs
- ChangeBgX(2, 0x400, 2);
- ChangeBgY(2, 0x400, 1);
+ ChangeBgX(2, 0x400, BG_COORD_SUB);
+ ChangeBgY(2, 0x400, BG_COORD_ADD);
// Update blue streaks
- ChangeBgX(0, 0x800, 2);
- ChangeBgY(0, 0x800, 1);
+ ChangeBgX(0, 0x800, BG_COORD_SUB);
+ ChangeBgY(0, 0x800, BG_COORD_ADD);
}
static void Task_RayChargesEnd(u8 taskId)
@@ -3064,7 +3064,7 @@ static void SpriteCB_ChasesAway_Rayquaza(struct Sprite *sprite)
ChasesAway_SetRayquazaAnim(sprite, 3, 48, 16);
sprite->x2 = 1;
gSprites[sprite->sTailSpriteId].x2 = 1;
- PlayCry1(SPECIES_RAYQUAZA, 0);
+ PlayCry_Normal(SPECIES_RAYQUAZA, 0);
CreateTask(Task_ChasesAway_AnimateRing, 0);
}
else
diff --git a/src/record_mixing.c b/src/record_mixing.c
index 2197d8542..6efded838 100644
--- a/src/record_mixing.c
+++ b/src/record_mixing.c
@@ -287,7 +287,7 @@ static void PrintTextOnRecordMixing(const u8 *src)
{
DrawDialogueFrame(0, 0);
AddTextPrinterParameterized(0, FONT_NORMAL, src, 0, 1, 0, NULL);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
}
#define tCounter data[0]
@@ -1002,11 +1002,11 @@ static void Task_DoRecordMixing(u8 taskId)
case 2:
// Mixing Ruby/Sapphire records.
SetContinueGameWarpStatusToDynamicWarp();
- FullSaveGame();
+ WriteSaveBlock2();
task->tState++;
break;
case 3:
- if (CheckSaveFile())
+ if (WriteSaveBlock1Sector())
{
ClearContinueGameWarpStatus2();
task->tState = 4;
@@ -1030,12 +1030,12 @@ static void Task_DoRecordMixing(u8 taskId)
case 6:
if (!Rfu_SetLinkRecovery(FALSE))
{
- CreateTask(Task_LinkSave, 5);
+ CreateTask(Task_LinkFullSave, 5);
task->tState++;
}
break;
- case 7: // wait for Task_LinkSave to finish.
- if (!FuncIsActiveTask(Task_LinkSave))
+ case 7: // wait for Task_LinkFullSave to finish.
+ if (!FuncIsActiveTask(Task_LinkFullSave))
{
if (gWirelessCommType)
{
diff --git a/src/recorded_battle.c b/src/recorded_battle.c
index e6d5b165b..fd2b3a06b 100644
--- a/src/recorded_battle.c
+++ b/src/recorded_battle.c
@@ -306,14 +306,14 @@ static bool32 IsRecordedBattleSaveValid(struct RecordedBattleSave *save)
return TRUE;
}
-static bool32 RecordedBattleToSave(struct RecordedBattleSave *battleSave, struct RecordedBattleSave *saveSection)
+static bool32 RecordedBattleToSave(struct RecordedBattleSave *battleSave, struct RecordedBattleSave *saveSector)
{
- memset(saveSection, 0, SECTOR_SIZE);
- memcpy(saveSection, battleSave, sizeof(*battleSave));
+ memset(saveSector, 0, SECTOR_SIZE);
+ memcpy(saveSector, battleSave, sizeof(*battleSave));
- saveSection->checksum = CalcByteArraySum((void*)(saveSection), sizeof(*saveSection) - 4);
+ saveSector->checksum = CalcByteArraySum((void*)(saveSector), sizeof(*saveSector) - 4);
- if (TryWriteSpecialSaveSection(SECTOR_ID_RECORDED_BATTLE, (void*)(saveSection)) != SAVE_STATUS_OK)
+ if (TryWriteSpecialSaveSector(SECTOR_ID_RECORDED_BATTLE, (void*)(saveSector)) != SAVE_STATUS_OK)
return FALSE;
else
return TRUE;
@@ -477,9 +477,9 @@ bool32 MoveRecordedBattleToSaveData(void)
return ret;
}
-static bool32 TryCopyRecordedBattleSaveData(struct RecordedBattleSave *dst, struct SaveSection *saveBuffer)
+static bool32 TryCopyRecordedBattleSaveData(struct RecordedBattleSave *dst, struct SaveSector *saveBuffer)
{
- if (TryReadSpecialSaveSection(SECTOR_ID_RECORDED_BATTLE, (void*)(saveBuffer)) != SAVE_STATUS_OK)
+ if (TryReadSpecialSaveSector(SECTOR_ID_RECORDED_BATTLE, (void*)(saveBuffer)) != SAVE_STATUS_OK)
return FALSE;
memcpy(dst, saveBuffer, sizeof(struct RecordedBattleSave));
@@ -492,7 +492,7 @@ static bool32 TryCopyRecordedBattleSaveData(struct RecordedBattleSave *dst, stru
static bool32 CopyRecordedBattleFromSave(struct RecordedBattleSave *dst)
{
- struct SaveSection *savBuffer = AllocZeroed(sizeof(struct SaveSection));
+ struct SaveSector *savBuffer = AllocZeroed(SECTOR_SIZE);
bool32 ret = TryCopyRecordedBattleSaveData(dst, savBuffer);
Free(savBuffer);
diff --git a/src/region_map.c b/src/region_map.c
index 46539205b..021ef7c71 100644
--- a/src/region_map.c
+++ b/src/region_map.c
@@ -1819,7 +1819,7 @@ static void DrawFlyDestTextWindow(void)
DrawStdFrameWithCustomTileAndPalette(0, FALSE, 101, 13);
}
FillWindowPixelBuffer(0, PIXEL_FILL(1));
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
ScheduleBgCopyTilemapToVram(0);
sDrawFlyDestTextWindow = FALSE;
}
diff --git a/src/reload_save.c b/src/reload_save.c
index cdbb2f227..5425d1c7c 100644
--- a/src/reload_save.c
+++ b/src/reload_save.c
@@ -21,7 +21,7 @@ void ReloadSave(void)
SetSaveBlocksPointers(GetSaveBlocksPointersBaseOffset());
ResetMenuAndMonGlobals();
Save_ResetSaveCounters();
- Save_LoadGameData(SAVE_NORMAL);
+ LoadGameSave(SAVE_NORMAL);
if (gSaveFileStatus == SAVE_STATUS_EMPTY || gSaveFileStatus == SAVE_STATUS_CORRUPT)
Sav2_ClearSetDefault();
SetPokemonCryStereo(gSaveBlock2Ptr->optionsSound);
diff --git a/src/reset_rtc_screen.c b/src/reset_rtc_screen.c
index 5fe1a6013..25e3a7330 100644
--- a/src/reset_rtc_screen.c
+++ b/src/reset_rtc_screen.c
@@ -381,7 +381,7 @@ static void PrintTime(u8 windowId, u8 x, u8 y, u16 days, u8 hours, u8 minutes, u
ConvertIntToDecimalStringN(gStringVar1, seconds, STR_CONV_MODE_LEADING_ZEROS, 2);
dest = StringCopy(dest, gStringVar1);
- AddTextPrinterParameterized(windowId, FONT_NORMAL, gStringVar4, x, y, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(windowId, FONT_NORMAL, gStringVar4, x, y, TEXT_SKIP_DRAW, NULL);
}
static void ShowChooseTimeWindow(u8 windowId, u16 days, u8 hours, u8 minutes, u8 seconds)
@@ -493,7 +493,7 @@ static void Task_ResetRtc_HandleInput(u8 taskId)
{
PlaySE(SE_SELECT);
PrintTime(tWindowId, 0, 1, tDays, tHours, tMinutes, tSeconds);
- CopyWindowToVram(tWindowId, 2);
+ CopyWindowToVram(tWindowId, COPYWIN_GFX);
}
}
@@ -578,7 +578,7 @@ static void Task_ShowResetRtcPrompt(u8 taskId)
case 0:
DrawStdFrameWithCustomTileAndPalette(0, FALSE, 0x214, 0xE);
- AddTextPrinterParameterized(0, FONT_NORMAL, gText_PresentTime, 0, 1, TEXT_SPEED_FF, 0);
+ AddTextPrinterParameterized(0, FONT_NORMAL, gText_PresentTime, 0, 1, TEXT_SKIP_DRAW, 0);
PrintTime(
0,
0,
@@ -588,7 +588,7 @@ static void Task_ShowResetRtcPrompt(u8 taskId)
gLocalTime.minutes,
gLocalTime.seconds);
- AddTextPrinterParameterized(0, FONT_NORMAL, gText_PreviousTime, 0, 33, TEXT_SPEED_FF, 0);
+ AddTextPrinterParameterized(0, FONT_NORMAL, gText_PreviousTime, 0, 33, TEXT_SKIP_DRAW, 0);
PrintTime(
0,
0,
@@ -599,7 +599,7 @@ static void Task_ShowResetRtcPrompt(u8 taskId)
gSaveBlock2Ptr->lastBerryTreeUpdate.seconds);
ShowMessage(gText_ResetRTCConfirmCancel);
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
ScheduleBgCopyTilemapToVram(0);
tState++;
case 1:
diff --git a/src/rom_header.s b/src/rom_header.s
new file mode 100644
index 000000000..5ed45124d
--- /dev/null
+++ b/src/rom_header.s
@@ -0,0 +1,63 @@
+@ Note: ROM header data is empty space here.
+@ It's populated by gbafix using data provided in the Makefile.
+
+ .global Start
+Start: @ 8000000
+ b Init
+
+ .global RomHeaderNintendoLogo
+RomHeaderNintendoLogo:
+ .space 156
+
+RomHeaderGameTitle:
+ .space 12
+
+ .global RomHeaderGameCode
+RomHeaderGameCode:
+ .space 4
+
+RomHeaderMakerCode:
+ .space 2
+
+RomHeaderMagic:
+ .byte 0
+
+RomHeaderMainUnitCode:
+ .byte 0
+
+RomHeaderDeviceType:
+ .byte 0
+
+RomHeaderReserved1:
+ .space 7
+
+ .global RomHeaderSoftwareVersion
+RomHeaderSoftwareVersion:
+ .byte 0
+
+RomHeaderChecksum:
+ .byte 0
+
+RomHeaderReserved2:
+ .space 2
+
+@ 80000C0
+ .word 0
+
+ .global GPIOPortData
+GPIOPortData: @ 80000C4
+ .2byte 0
+
+ .global GPIOPortDirection
+GPIOPortDirection: @ 80000C6
+ .2byte 0
+
+ .global GPIOPortReadEnable
+GPIOPortReadEnable: @ 80000C8
+ .2byte 0
+
+@ 80000CA
+ .2byte 0
+
+@ 80000CC
+ .space 0x34
diff --git a/src/rom_header_gf.c b/src/rom_header_gf.c
new file mode 100644
index 000000000..782a05c75
--- /dev/null
+++ b/src/rom_header_gf.c
@@ -0,0 +1,165 @@
+#include "global.h"
+#include "data.h"
+#include "pokemon_icon.h"
+#include "decoration.h"
+#include "battle_main.h"
+#include "item.h"
+#include "pokeball.h"
+
+struct GFRomHeader
+{
+ u32 version;
+ u32 language;
+ u8 gameName[32];
+ const struct CompressedSpriteSheet * monFrontPics;
+ const struct CompressedSpriteSheet * monBackPics;
+ const struct CompressedSpritePalette * monNormalPalettes;
+ const struct CompressedSpritePalette * monShinyPalettes;
+ const u8 * const * monIcons;
+ const u8 * monIconPaletteIds;
+ const struct SpritePalette * monIconPalettes;
+ const u8 (* monSpeciesNames)[];
+ const u8 (* moveNames)[];
+ const struct Decoration * decorations;
+ u32 flagsOffset;
+ u32 varsOffset;
+ u32 pokedexOffset;
+ u32 seen1Offset;
+ u32 seen2Offset;
+ u32 pokedexVar;
+ u32 pokedexFlag;
+ u32 mysteryEventFlag;
+ u32 pokedexCount;
+ u8 unk1;
+ u8 unk2;
+ u8 unk3;
+ u8 unk4;
+ u8 unk5;
+ u8 unk6;
+ u8 unk7;
+ u8 unk8;
+ u8 unk9;
+ u8 unk10;
+ u8 unk11;
+ u8 unk12;
+ u8 unk13;
+ u8 unk14;
+ u8 unk15;
+ u8 unk16;
+ u8 unk17;
+ u32 saveBlock2Size;
+ u32 saveBlock1Size;
+ u32 partyCountOffset;
+ u32 partyOffset;
+ u32 warpFlagsOffset;
+ u32 trainerIdOffset;
+ u32 playerNameOffset;
+ u32 playerGenderOffset;
+ u32 frontierStatusOffset;
+ u32 frontierStatusOffset2;
+ u32 externalEventFlagsOffset;
+ u32 externalEventDataOffset;
+ u32 unk18;
+ const struct BaseStats * baseStats;
+ const u8 (* abilityNames)[];
+ const u8 * const * abilityDescriptions;
+ const struct Item * items;
+ const struct BattleMove * moves;
+ const struct CompressedSpriteSheet * ballGfx;
+ const struct CompressedSpritePalette * ballPalettes;
+ u32 gcnLinkFlagsOffset;
+ u32 gameClearFlag;
+ u32 ribbonFlag;
+ u8 bagCountItems;
+ u8 bagCountKeyItems;
+ u8 bagCountPokeballs;
+ u8 bagCountTMHMs;
+ u8 bagCountBerries;
+ u8 pcItemsCount;
+ u32 pcItemsOffset;
+ u32 giftRibbonsOffset;
+ u32 enigmaBerryOffset;
+ u32 mapViewOffset;
+ u32 unk19;
+ u32 unk20;
+};
+
+// This seems to need to be in the text section for some reason.
+// To avoid a changed section attributes warning it's put in a special .text.consts section.
+__attribute__((section(".text.consts")))
+static const struct GFRomHeader sGFRomHeader = {
+ .version = GAME_VERSION,
+ .language = GAME_LANGUAGE,
+ .gameName = "pokemon emerald version",
+ .monFrontPics = gMonFrontPicTable,
+ .monBackPics = gMonBackPicTable,
+ .monNormalPalettes = gMonPaletteTable,
+ .monShinyPalettes = gMonShinyPaletteTable,
+ .monIcons = gMonIconTable,
+ .monIconPaletteIds = gMonIconPaletteIndices,
+ .monIconPalettes = gMonIconPaletteTable,
+ .monSpeciesNames = gSpeciesNames,
+ .moveNames = gMoveNames,
+ .decorations = gDecorations,
+ .flagsOffset = offsetof(struct SaveBlock1, flags),
+ .varsOffset = offsetof(struct SaveBlock1, vars),
+ .pokedexOffset = offsetof(struct SaveBlock2, pokedex),
+ .seen1Offset = offsetof(struct SaveBlock1, seen1),
+ .seen2Offset = offsetof(struct SaveBlock1, seen2),
+ .pokedexVar = VAR_NATIONAL_DEX - VARS_START,
+ .pokedexFlag = FLAG_RECEIVED_POKEDEX_FROM_BIRCH,
+ .mysteryEventFlag = FLAG_SYS_MYSTERY_EVENT_ENABLE,
+ .pokedexCount = NATIONAL_DEX_COUNT,
+ .unk1 = 0x07,
+ .unk2 = 0x0a,
+ .unk3 = 0x0a,
+ .unk4 = 0x0a,
+ .unk5 = 0x0c,
+ .unk6 = 0x0c,
+ .unk7 = 0x06,
+ .unk8 = 0x0c,
+ .unk9 = 0x06,
+ .unk10 = 0x10,
+ .unk11 = 0x12,
+ .unk12 = 0x0c,
+ .unk13 = 0x0f,
+ .unk14 = 0x0b,
+ .unk15 = 0x01,
+ .unk16 = 0x08,
+ .unk17 = 0x0c,
+ .saveBlock2Size = sizeof(struct SaveBlock2),
+ .saveBlock1Size = sizeof(struct SaveBlock1),
+ .partyCountOffset = offsetof(struct SaveBlock1, playerPartyCount),
+ .partyOffset = offsetof(struct SaveBlock1, playerParty),
+ .warpFlagsOffset = offsetof(struct SaveBlock2, specialSaveWarpFlags),
+ .trainerIdOffset = offsetof(struct SaveBlock2, playerTrainerId),
+ .playerNameOffset = offsetof(struct SaveBlock2, playerName),
+ .playerGenderOffset = offsetof(struct SaveBlock2, playerGender),
+ .frontierStatusOffset = offsetof(struct SaveBlock2, frontier.challengeStatus),
+ .frontierStatusOffset2 = offsetof(struct SaveBlock2, frontier.challengeStatus),
+ .externalEventFlagsOffset = offsetof(struct SaveBlock1, externalEventFlags),
+ .externalEventDataOffset = offsetof(struct SaveBlock1, externalEventData),
+ .unk18 = 0x00000000,
+ .baseStats = gBaseStats,
+ .abilityNames = gAbilityNames,
+ .abilityDescriptions = gAbilityDescriptionPointers,
+ .items = gItems,
+ .moves = gBattleMoves,
+ .ballGfx = gBallSpriteSheets,
+ .ballPalettes = gBallSpritePalettes,
+ .gcnLinkFlagsOffset = offsetof(struct SaveBlock2, gcnLinkFlags),
+ .gameClearFlag = FLAG_SYS_GAME_CLEAR,
+ .ribbonFlag = FLAG_SYS_RIBBON_GET,
+ .bagCountItems = BAG_ITEMS_COUNT,
+ .bagCountKeyItems = BAG_KEYITEMS_COUNT,
+ .bagCountPokeballs = BAG_POKEBALLS_COUNT,
+ .bagCountTMHMs = BAG_TMHM_COUNT,
+ .bagCountBerries = BAG_BERRIES_COUNT,
+ .pcItemsCount = PC_ITEMS_COUNT,
+ .pcItemsOffset = offsetof(struct SaveBlock1, pcItems),
+ .giftRibbonsOffset = offsetof(struct SaveBlock1, giftRibbons),
+ .enigmaBerryOffset = offsetof(struct SaveBlock1, enigmaBerry),
+ .mapViewOffset = offsetof(struct SaveBlock1, mapView),
+ .unk19 = 0x00000000,
+ .unk20 = 0x00000000, // 0xFFFFFFFF in FRLG
+};
diff --git a/src/roulette.c b/src/roulette.c
index ea0f9332b..5b870fb60 100644
--- a/src/roulette.c
+++ b/src/roulette.c
@@ -1223,8 +1223,8 @@ static void CB2_LoadRoulette(void)
SetMultiplierSprite(SELECTION_NONE);
DrawGridBackground(SELECTION_NONE);
DrawStdWindowFrame(sTextWindowId, FALSE);
- AddTextPrinterParameterized(sTextWindowId, FONT_NORMAL, Roulette_Text_ControlsInstruction, 0, 1, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(sTextWindowId, 3);
+ AddTextPrinterParameterized(sTextWindowId, FONT_NORMAL, Roulette_Text_ControlsInstruction, 0, 1, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(sTextWindowId, COPYWIN_FULL);
gSpriteCoordOffsetX = -60;
gSpriteCoordOffsetY = 0;
break;
@@ -1294,8 +1294,8 @@ static void Task_AskKeepPlaying(u8 taskId)
{
DisplayYesNoMenuDefaultYes();
DrawStdWindowFrame(sTextWindowId, 0);
- AddTextPrinterParameterized(sTextWindowId, FONT_NORMAL, Roulette_Text_KeepPlaying, 0, 1, TEXT_SPEED_FF, 0);
- CopyWindowToVram(sTextWindowId, 3);
+ AddTextPrinterParameterized(sTextWindowId, FONT_NORMAL, Roulette_Text_KeepPlaying, 0, 1, TEXT_SKIP_DRAW, 0);
+ CopyWindowToVram(sTextWindowId, COPYWIN_FULL);
DoYesNoFuncWithChoice(taskId, &sYesNoTable_KeepPlaying);
}
@@ -1806,23 +1806,23 @@ static void Task_PrintSpinResult(u8 taskId)
{
PlayFanfare(MUS_SLOTS_JACKPOT);
DrawStdWindowFrame(sTextWindowId, FALSE);
- AddTextPrinterParameterized(sTextWindowId, FONT_NORMAL, Roulette_Text_Jackpot, 0, 1, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(sTextWindowId, 3);
+ AddTextPrinterParameterized(sTextWindowId, FONT_NORMAL, Roulette_Text_Jackpot, 0, 1, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(sTextWindowId, COPYWIN_FULL);
}
else
{
PlayFanfare(MUS_SLOTS_WIN);
DrawStdWindowFrame(sTextWindowId, FALSE);
- AddTextPrinterParameterized(sTextWindowId, FONT_NORMAL, Roulette_Text_ItsAHit, 0, 1, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(sTextWindowId, 3);
+ AddTextPrinterParameterized(sTextWindowId, FONT_NORMAL, Roulette_Text_ItsAHit, 0, 1, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(sTextWindowId, COPYWIN_FULL);
}
break;
case FALSE:
default:
m4aSongNumStart(SE_FAILURE);
DrawStdWindowFrame(sTextWindowId, FALSE);
- AddTextPrinterParameterized(sTextWindowId, FONT_NORMAL, Roulette_Text_NothingDoing, 0, 1, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(sTextWindowId, 3);
+ AddTextPrinterParameterized(sTextWindowId, FONT_NORMAL, Roulette_Text_NothingDoing, 0, 1, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(sTextWindowId, COPYWIN_FULL);
break;
}
gTasks[taskId].data[1] = 0;
@@ -1866,8 +1866,8 @@ static void Task_PrintPayout(u8 taskId)
ConvertIntToDecimalStringN(gStringVar1, (sRoulette->minBet * gTasks[taskId].tMultiplier), STR_CONV_MODE_LEFT_ALIGN, 2);
StringExpandPlaceholders(gStringVar4, Roulette_Text_YouveWonXCoins);
DrawStdWindowFrame(sTextWindowId, FALSE);
- AddTextPrinterParameterized(sTextWindowId, FONT_NORMAL, gStringVar4, 0, 1, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(sTextWindowId, 3);
+ AddTextPrinterParameterized(sTextWindowId, FONT_NORMAL, gStringVar4, 0, 1, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(sTextWindowId, COPYWIN_FULL);
gTasks[taskId].tPayout = (sRoulette->minBet * gTasks[taskId].tMultiplier);
gTasks[taskId].data[7] = 0;
gTasks[taskId].func = Task_GivePayout;
@@ -1902,16 +1902,16 @@ static void Task_TryPrintEndTurnMsg(u8 taskId)
{
// Reached Ball 6, clear board
DrawStdWindowFrame(sTextWindowId, FALSE);
- AddTextPrinterParameterized(sTextWindowId, FONT_NORMAL, Roulette_Text_BoardWillBeCleared, 0, 1, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(sTextWindowId, 3);
+ AddTextPrinterParameterized(sTextWindowId, FONT_NORMAL, Roulette_Text_BoardWillBeCleared, 0, 1, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(sTextWindowId, COPYWIN_FULL);
StartTaskAfterDelayOrInput(taskId, Task_ClearBoard, NO_DELAY, A_BUTTON | B_BUTTON);
}
else if (gTasks[taskId].tCoins == MAX_COINS)
{
// Player maxed out coins
DrawStdWindowFrame(sTextWindowId, FALSE);
- AddTextPrinterParameterized(sTextWindowId, FONT_NORMAL, Roulette_Text_CoinCaseIsFull, 0, 1, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(sTextWindowId, 3);
+ AddTextPrinterParameterized(sTextWindowId, FONT_NORMAL, Roulette_Text_CoinCaseIsFull, 0, 1, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(sTextWindowId, COPYWIN_FULL);
StartTaskAfterDelayOrInput(taskId, Task_AskKeepPlaying, NO_DELAY, A_BUTTON | B_BUTTON);
}
else
@@ -1924,8 +1924,8 @@ static void Task_TryPrintEndTurnMsg(u8 taskId)
{
// Player out of coins
DrawStdWindowFrame(sTextWindowId, FALSE);
- AddTextPrinterParameterized(sTextWindowId, FONT_NORMAL, Roulette_Text_NoCoinsLeft, 0, 1, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(sTextWindowId, 3);
+ AddTextPrinterParameterized(sTextWindowId, FONT_NORMAL, Roulette_Text_NoCoinsLeft, 0, 1, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(sTextWindowId, COPYWIN_FULL);
StartTaskAfterDelayOrInput(taskId, Task_StopPlaying, 60, A_BUTTON | B_BUTTON);
}
}
@@ -1949,8 +1949,8 @@ static void Task_ClearBoard(u8 taskId)
if (gTasks[taskId].tCoins == MAX_COINS)
{
DrawStdWindowFrame(sTextWindowId, FALSE);
- AddTextPrinterParameterized(sTextWindowId, FONT_NORMAL, Roulette_Text_CoinCaseIsFull, 0, 1, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(sTextWindowId, 3);
+ AddTextPrinterParameterized(sTextWindowId, FONT_NORMAL, Roulette_Text_CoinCaseIsFull, 0, 1, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(sTextWindowId, COPYWIN_FULL);
StartTaskAfterDelayOrInput(taskId, Task_AskKeepPlaying, NO_DELAY, A_BUTTON | B_BUTTON);
}
else
@@ -3426,8 +3426,8 @@ static void Task_PrintMinBet(u8 taskId)
ConvertIntToDecimalStringN(gStringVar1, minBet, STR_CONV_MODE_LEADING_ZEROS, 1);
StringExpandPlaceholders(gStringVar4, Roulette_Text_PlayMinimumWagerIsX);
DrawStdWindowFrame(0, FALSE);
- AddTextPrinterParameterized(0, FONT_NORMAL, gStringVar4, 0, 1, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(0, 3);
+ AddTextPrinterParameterized(0, FONT_NORMAL, gStringVar4, 0, 1, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(0, COPYWIN_FULL);
gTasks[taskId].func = Task_ShowMinBetYesNo;
}
}
@@ -3445,8 +3445,8 @@ static void Task_PrintRouletteEntryMsg(u8 taskId)
{
// Special rate for Game Corner service day (only at second table)
DrawStdWindowFrame(0, FALSE);
- AddTextPrinterParameterized(0, FONT_NORMAL, Roulette_Text_SpecialRateTable, 0, 1, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(0, 3);
+ AddTextPrinterParameterized(0, FONT_NORMAL, Roulette_Text_SpecialRateTable, 0, 1, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(0, COPYWIN_FULL);
gTasks[taskId].func = Task_PrintMinBet;
}
else
@@ -3454,8 +3454,8 @@ static void Task_PrintRouletteEntryMsg(u8 taskId)
// Print minimum bet
StringExpandPlaceholders(gStringVar4, Roulette_Text_PlayMinimumWagerIsX);
DrawStdWindowFrame(0, FALSE);
- AddTextPrinterParameterized(0, FONT_NORMAL, gStringVar4, 0, 1, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(0, 3);
+ AddTextPrinterParameterized(0, FONT_NORMAL, gStringVar4, 0, 1, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(0, COPYWIN_FULL);
gTasks[taskId].func = Task_ShowMinBetYesNo;
}
}
@@ -3464,8 +3464,8 @@ static void Task_PrintRouletteEntryMsg(u8 taskId)
// Not enough for minimum bet
StringExpandPlaceholders(gStringVar4, Roulette_Text_NotEnoughCoins);
DrawStdWindowFrame(0, FALSE);
- AddTextPrinterParameterized(0, FONT_NORMAL, gStringVar4, 0, 1, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(0, 3);
+ AddTextPrinterParameterized(0, FONT_NORMAL, gStringVar4, 0, 1, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(0, COPYWIN_FULL);
gTasks[taskId].func = Task_NotEnoughForMinBet;
gTasks[taskId].tCoins = 0;
gTasks[taskId].data[0] = 0;
@@ -4449,13 +4449,13 @@ static void SetBallStuck(struct Sprite *sprite)
if (sRoulette->useTaillow)
{
if (sprite->sStuckOnWheelLeft)
- PlayCry1(SPECIES_TAILLOW, -63);
+ PlayCry_Normal(SPECIES_TAILLOW, -63);
else
- PlayCry1(SPECIES_TAILLOW, 63);
+ PlayCry_Normal(SPECIES_TAILLOW, 63);
}
else
{
- PlayCry1(SPECIES_SHROOMISH, -63);
+ PlayCry_Normal(SPECIES_SHROOMISH, -63);
}
slotsToSkip = 2;
@@ -4719,9 +4719,9 @@ static void SpriteCB_Taillow_FlyIn(struct Sprite *sprite)
{
m4aSongNumStartOrChange(SE_TAILLOW_WING_FLAP);
if (sRoulette->ball->sStuckOnWheelLeft == 0)
- PlayCry1(SPECIES_TAILLOW, 63);
+ PlayCry_Normal(SPECIES_TAILLOW, 63);
else
- PlayCry1(SPECIES_TAILLOW, -63);
+ PlayCry_Normal(SPECIES_TAILLOW, -63);
StartSpriteAnim(sprite, sRoulette->ball->sStuckOnWheelLeft + 2);
sprite->data[1] = 45;
sprite->callback = SpriteCB_Taillow_PickUpBall;
diff --git a/src/save.c b/src/save.c
index 3c8f4360d..b53956438 100644
--- a/src/save.c
+++ b/src/save.c
@@ -13,13 +13,13 @@
#include "link.h"
#include "constants/game_stat.h"
-static u16 CalculateChecksum(void *data, u16 size);
-static bool8 DoReadFlashWholeSection(u8 sector, struct SaveSection *section);
-static u8 GetSaveValidStatus(const struct SaveSectionLocation *location);
-static u8 sub_8152E10(u16 a1, const struct SaveSectionLocation *location);
-static u8 ClearSaveData_2(u16 a1, const struct SaveSectionLocation *location);
-static u8 TryWriteSector(u8 sector, u8 *data);
-static u8 HandleWriteSector(u16 a1, const struct SaveSectionLocation *location);
+static u16 CalculateChecksum(void *, u16);
+static bool8 ReadFlashSector(u8, struct SaveSector *);
+static u8 GetSaveValidStatus(const struct SaveSectorLocation *);
+static u8 CopySaveSlotData(u16, struct SaveSectorLocation *);
+static u8 TryWriteSector(u8, u8 *);
+static u8 HandleWriteSector(u16, const struct SaveSectorLocation *);
+static u8 HandleReplaceSector(u16, const struct SaveSectorLocation *);
// Divide save blocks into individual chunks to be written to flash sectors
@@ -38,11 +38,10 @@ static u8 HandleWriteSector(u16 a1, const struct SaveSectionLocation *location);
* so that the same data is not always being written to the same sector. This
* might be done to reduce wear on the flash memory, but I'm not sure, since all
* 14 sectors get written anyway.
+ *
+ * See SECTOR_ID_* constants in save.h
*/
-// (u8 *)structure was removed from the first statement of the macro in Emerald.
-// This is because malloc is used to allocate addresses so storing the raw
-// addresses should not be done in the offsets information.
#define SAVEBLOCK_CHUNK(structure, chunkNum) \
{ \
chunkNum * SECTOR_DATA_SIZE, \
@@ -50,42 +49,45 @@ static u8 HandleWriteSector(u16 a1, const struct SaveSectionLocation *location);
min(sizeof(structure) - chunkNum * SECTOR_DATA_SIZE, SECTOR_DATA_SIZE) : 0 \
}
-static const struct SaveSectionOffsets sSaveSectionOffsets[] =
+struct
{
- SAVEBLOCK_CHUNK(gSaveblock2, 0),
-
- SAVEBLOCK_CHUNK(gSaveblock1, 0),
- SAVEBLOCK_CHUNK(gSaveblock1, 1),
- SAVEBLOCK_CHUNK(gSaveblock1, 2),
- SAVEBLOCK_CHUNK(gSaveblock1, 3),
-
- SAVEBLOCK_CHUNK(gPokemonStorage, 0),
- SAVEBLOCK_CHUNK(gPokemonStorage, 1),
- SAVEBLOCK_CHUNK(gPokemonStorage, 2),
- SAVEBLOCK_CHUNK(gPokemonStorage, 3),
- SAVEBLOCK_CHUNK(gPokemonStorage, 4),
- SAVEBLOCK_CHUNK(gPokemonStorage, 5),
- SAVEBLOCK_CHUNK(gPokemonStorage, 6),
- SAVEBLOCK_CHUNK(gPokemonStorage, 7),
- SAVEBLOCK_CHUNK(gPokemonStorage, 8),
+ u16 offset;
+ u16 size;
+} static const sSaveSlotLayout[NUM_SECTORS_PER_SLOT] =
+{
+ SAVEBLOCK_CHUNK(struct SaveBlock2, 0), // SECTOR_ID_SAVEBLOCK2
+
+ SAVEBLOCK_CHUNK(struct SaveBlock1, 0), // SECTOR_ID_SAVEBLOCK1_START
+ SAVEBLOCK_CHUNK(struct SaveBlock1, 1),
+ SAVEBLOCK_CHUNK(struct SaveBlock1, 2),
+ SAVEBLOCK_CHUNK(struct SaveBlock1, 3), // SECTOR_ID_SAVEBLOCK1_END
+
+ SAVEBLOCK_CHUNK(struct PokemonStorage, 0), // SECTOR_ID_PKMN_STORAGE_START
+ SAVEBLOCK_CHUNK(struct PokemonStorage, 1),
+ SAVEBLOCK_CHUNK(struct PokemonStorage, 2),
+ SAVEBLOCK_CHUNK(struct PokemonStorage, 3),
+ SAVEBLOCK_CHUNK(struct PokemonStorage, 4),
+ SAVEBLOCK_CHUNK(struct PokemonStorage, 5),
+ SAVEBLOCK_CHUNK(struct PokemonStorage, 6),
+ SAVEBLOCK_CHUNK(struct PokemonStorage, 7),
+ SAVEBLOCK_CHUNK(struct PokemonStorage, 8), // SECTOR_ID_PKMN_STORAGE_END
};
-// iwram common
u16 gLastWrittenSector;
u32 gLastSaveCounter;
u16 gLastKnownGoodSector;
u32 gDamagedSaveSectors;
u32 gSaveCounter;
-struct SaveSection *gFastSaveSection;
-u16 gUnknown_03006208;
+struct SaveSector *gReadWriteSector; // Pointer to a buffer for reading/writing a sector
+u16 gIncrementalSectorId;
u16 gSaveUnusedVar;
u16 gSaveFileStatus;
void (*gGameContinueCallback)(void);
-struct SaveSectionLocation gRamSaveSectionLocations[NUM_SECTORS_PER_SLOT];
+struct SaveSectorLocation gRamSaveSectorLocations[NUM_SECTORS_PER_SLOT];
u16 gSaveUnusedVar2;
u16 gSaveAttemptStatus;
-EWRAM_DATA struct SaveSection gSaveDataBuffer = {0};
+EWRAM_DATA struct SaveSector gSaveDataBuffer = {0}; // Buffer used for reading/writing sectors
EWRAM_DATA static u8 sUnusedVar = 0;
void ClearSaveData(void)
@@ -107,20 +109,20 @@ void Save_ResetSaveCounters(void)
gDamagedSaveSectors = 0;
}
-static bool32 SetDamagedSectorBits(u8 op, u8 bit)
+static bool32 SetDamagedSectorBits(u8 op, u8 sectorId)
{
bool32 retVal = FALSE;
switch (op)
{
case ENABLE:
- gDamagedSaveSectors |= (1 << bit);
+ gDamagedSaveSectors |= (1 << sectorId);
break;
case DISABLE:
- gDamagedSaveSectors &= ~(1 << bit);
+ gDamagedSaveSectors &= ~(1 << sectorId);
break;
case CHECK: // unused
- if (gDamagedSaveSectors & (1 << bit))
+ if (gDamagedSaveSectors & (1 << sectorId))
retVal = TRUE;
break;
}
@@ -128,31 +130,35 @@ static bool32 SetDamagedSectorBits(u8 op, u8 bit)
return retVal;
}
-static u8 SaveWriteToFlash(u16 sectorId, const struct SaveSectionLocation *location)
+static u8 WriteSaveSectorOrSlot(u16 sectorId, const struct SaveSectorLocation *locations)
{
u32 status;
u16 i;
- gFastSaveSection = &gSaveDataBuffer;
+ gReadWriteSector = &gSaveDataBuffer;
- if (sectorId != 0xFFFF) // for link
+ if (sectorId != FULL_SAVE_SLOT)
{
- status = HandleWriteSector(sectorId, location);
+ // A sector was specified, just write that sector.
+ // This is never reached, FULL_SAVE_SLOT is always used instead.
+ status = HandleWriteSector(sectorId, locations);
}
else
{
+ // No sector was specified, write full save slot.
gLastKnownGoodSector = gLastWrittenSector; // backup the current written sector before attempting to write.
gLastSaveCounter = gSaveCounter;
gLastWrittenSector++;
- gLastWrittenSector = gLastWrittenSector % NUM_SECTORS_PER_SLOT; // array count save sector locations
+ gLastWrittenSector = gLastWrittenSector % NUM_SECTORS_PER_SLOT;
gSaveCounter++;
status = SAVE_STATUS_OK;
for (i = 0; i < NUM_SECTORS_PER_SLOT; i++)
- HandleWriteSector(i, location);
+ HandleWriteSector(i, locations);
- if (gDamagedSaveSectors != 0) // skip the damaged sector.
+ if (gDamagedSaveSectors)
{
+ // At least one sector save failed
status = SAVE_STATUS_ERROR;
gLastWrittenSector = gLastKnownGoodSector;
gSaveCounter = gLastSaveCounter;
@@ -162,98 +168,107 @@ static u8 SaveWriteToFlash(u16 sectorId, const struct SaveSectionLocation *locat
return status;
}
-static u8 HandleWriteSector(u16 sectorId, const struct SaveSectionLocation *location)
+static u8 HandleWriteSector(u16 sectorId, const struct SaveSectorLocation *locations)
{
u16 i;
u16 sector;
u8 *data;
u16 size;
+ // Adjust sector id for current save slot
sector = sectorId + gLastWrittenSector;
sector %= NUM_SECTORS_PER_SLOT;
sector += NUM_SECTORS_PER_SLOT * (gSaveCounter % NUM_SAVE_SLOTS);
- data = location[sectorId].data;
- size = location[sectorId].size;
+ // Get current save data
+ data = locations[sectorId].data;
+ size = locations[sectorId].size;
- // clear save section.
- for (i = 0; i < sizeof(struct SaveSection); i++)
- ((char *)gFastSaveSection)[i] = 0;
+ // Clear temp save sector
+ for (i = 0; i < SECTOR_SIZE; i++)
+ ((u8 *)gReadWriteSector)[i] = 0;
- gFastSaveSection->id = sectorId;
- gFastSaveSection->security = UNKNOWN_CHECK_VALUE;
- gFastSaveSection->counter = gSaveCounter;
+ // Set footer data
+ gReadWriteSector->id = sectorId;
+ gReadWriteSector->security = SECTOR_SECURITY_NUM;
+ gReadWriteSector->counter = gSaveCounter;
+ // Copy current data to temp buffer for writing
for (i = 0; i < size; i++)
- gFastSaveSection->data[i] = data[i];
+ gReadWriteSector->data[i] = data[i];
+
+ gReadWriteSector->checksum = CalculateChecksum(data, size);
- gFastSaveSection->checksum = CalculateChecksum(data, size);
- return TryWriteSector(sector, gFastSaveSection->data);
+ return TryWriteSector(sector, gReadWriteSector->data);
}
-static u8 HandleWriteSectorNBytes(u8 sector, u8 *data, u16 size)
+static u8 HandleWriteSectorNBytes(u8 sectorId, u8 *data, u16 size)
{
u16 i;
- struct SaveSection *section = &gSaveDataBuffer;
+ struct SaveSector *sector = &gSaveDataBuffer;
- for (i = 0; i < sizeof(struct SaveSection); i++)
- ((char *)section)[i] = 0;
+ // Clear temp save sector
+ for (i = 0; i < SECTOR_SIZE; i++)
+ ((u8 *)sector)[i] = 0;
- section->security = UNKNOWN_CHECK_VALUE;
+ sector->security = SECTOR_SECURITY_NUM;
+ // Copy data to temp buffer for writing
for (i = 0; i < size; i++)
- section->data[i] = data[i];
+ sector->data[i] = data[i];
- section->id = CalculateChecksum(data, size); // though this appears to be incorrect, it might be some sector checksum instead of a whole save checksum and only appears to be relevent to HOF data, if used.
- return TryWriteSector(sector, section->data);
+ sector->id = CalculateChecksum(data, size); // though this appears to be incorrect, it might be some sector checksum instead of a whole save checksum and only appears to be relevent to HOF data, if used.
+ return TryWriteSector(sectorId, sector->data);
}
static u8 TryWriteSector(u8 sector, u8 *data)
{
- if (ProgramFlashSectorAndVerify(sector, data) != 0) // is damaged?
+ if (ProgramFlashSectorAndVerify(sector, data)) // is damaged?
{
- SetDamagedSectorBits(ENABLE, sector); // set damaged sector bits.
+ // Failed
+ SetDamagedSectorBits(ENABLE, sector);
return SAVE_STATUS_ERROR;
}
else
{
- SetDamagedSectorBits(DISABLE, sector); // unset damaged sector bits. it's safe now.
+ // Succeeded
+ SetDamagedSectorBits(DISABLE, sector);
return SAVE_STATUS_OK;
}
}
-static u32 RestoreSaveBackupVarsAndIncrement(const struct SaveSectionLocation *location) // location is unused
+static u32 RestoreSaveBackupVarsAndIncrement(const struct SaveSectorLocation *locations)
{
- gFastSaveSection = &gSaveDataBuffer;
+ gReadWriteSector = &gSaveDataBuffer;
gLastKnownGoodSector = gLastWrittenSector;
gLastSaveCounter = gSaveCounter;
gLastWrittenSector++;
gLastWrittenSector %= NUM_SECTORS_PER_SLOT;
gSaveCounter++;
- gUnknown_03006208 = 0;
+ gIncrementalSectorId = 0;
gDamagedSaveSectors = 0;
return 0;
}
-static u32 RestoreSaveBackupVars(const struct SaveSectionLocation *location) // only ever called once, and gSaveBlock2 is passed to this function. location is unused
+static u32 RestoreSaveBackupVars(const struct SaveSectorLocation *locations)
{
- gFastSaveSection = &gSaveDataBuffer;
+ gReadWriteSector = &gSaveDataBuffer;
gLastKnownGoodSector = gLastWrittenSector;
gLastSaveCounter = gSaveCounter;
- gUnknown_03006208 = 0;
+ gIncrementalSectorId = 0;
gDamagedSaveSectors = 0;
return 0;
}
-static u8 sub_81529D4(u16 sectorId, const struct SaveSectionLocation *location)
+static u8 HandleWriteIncrementalSector(u16 numSectors, const struct SaveSectorLocation *locations)
{
u8 status;
- if (gUnknown_03006208 < sectorId - 1)
+ if (gIncrementalSectorId < numSectors - 1)
{
status = SAVE_STATUS_OK;
- HandleWriteSector(gUnknown_03006208, location);
- gUnknown_03006208++;
+ HandleWriteSector(gIncrementalSectorId, locations);
+ gIncrementalSectorId++;
if (gDamagedSaveSectors)
{
status = SAVE_STATUS_ERROR;
@@ -263,17 +278,18 @@ static u8 sub_81529D4(u16 sectorId, const struct SaveSectionLocation *location)
}
else
{
+ // Exceeded max sector, finished
status = SAVE_STATUS_ERROR;
}
return status;
}
-static u8 sub_8152A34(u16 sectorId, const struct SaveSectionLocation *location)
+static u8 HandleReplaceSectorAndVerify(u16 sectorId, const struct SaveSectorLocation *locations)
{
u8 status = SAVE_STATUS_OK;
- ClearSaveData_2(sectorId - 1, location);
+ HandleReplaceSector(sectorId - 1, locations);
if (gDamagedSaveSectors)
{
@@ -284,7 +300,8 @@ static u8 sub_8152A34(u16 sectorId, const struct SaveSectionLocation *location)
return status;
}
-static u8 ClearSaveData_2(u16 sectorId, const struct SaveSectionLocation *location)
+// Similar to HandleWriteSector, but fully erases the sector first, and skips writing the first security byte
+static u8 HandleReplaceSector(u16 sectorId, const struct SaveSectorLocation *locations)
{
u16 i;
u16 sector;
@@ -292,35 +309,39 @@ static u8 ClearSaveData_2(u16 sectorId, const struct SaveSectionLocation *locati
u16 size;
u8 status;
+ // Adjust sector id for current save slot
sector = sectorId + gLastWrittenSector;
sector %= NUM_SECTORS_PER_SLOT;
sector += NUM_SECTORS_PER_SLOT * (gSaveCounter % NUM_SAVE_SLOTS);
- data = location[sectorId].data;
- size = location[sectorId].size;
+ // Get current save data
+ data = locations[sectorId].data;
+ size = locations[sectorId].size;
- // clear temp save section.
- for (i = 0; i < sizeof(struct SaveSection); i++)
- ((char *)gFastSaveSection)[i] = 0;
+ // Clear temp save sector.
+ for (i = 0; i < SECTOR_SIZE; i++)
+ ((u8 *)gReadWriteSector)[i] = 0;
- gFastSaveSection->id = sectorId;
- gFastSaveSection->security = UNKNOWN_CHECK_VALUE;
- gFastSaveSection->counter = gSaveCounter;
+ // Set footer data
+ gReadWriteSector->id = sectorId;
+ gReadWriteSector->security = SECTOR_SECURITY_NUM;
+ gReadWriteSector->counter = gSaveCounter;
- // set temp section's data.
+ // Copy current data to temp buffer for writing
for (i = 0; i < size; i++)
- gFastSaveSection->data[i] = data[i];
+ gReadWriteSector->data[i] = data[i];
- // calculate checksum.
- gFastSaveSection->checksum = CalculateChecksum(data, size);
+ gReadWriteSector->checksum = CalculateChecksum(data, size);
+ // Erase old save data
EraseFlashSector(sector);
status = SAVE_STATUS_OK;
- for (i = 0; i < sizeof(struct UnkSaveSection); i++)
+ // Write new save data up to security field
+ for (i = 0; i < SECTOR_SECURITY_OFFSET; i++)
{
- if (ProgramFlashByte(sector, i, ((u8 *)gFastSaveSection)[i]))
+ if (ProgramFlashByte(sector, i, ((u8 *)gReadWriteSector)[i]))
{
status = SAVE_STATUS_ERROR;
break;
@@ -329,16 +350,20 @@ static u8 ClearSaveData_2(u16 sectorId, const struct SaveSectionLocation *locati
if (status == SAVE_STATUS_ERROR)
{
+ // Writing save data failed
SetDamagedSectorBits(ENABLE, sector);
return SAVE_STATUS_ERROR;
}
else
{
+ // Writing save data succeeded, write security and counter
status = SAVE_STATUS_OK;
- for (i = 0; i < 7; i++)
+ // Write security (skipping the first byte) and counter fields.
+ // The byte of security that is skipped is instead written by WriteSectorSecurityByte or WriteSectorSecurityByte_NoOffset
+ for (i = 0; i < SECTOR_SIZE - (SECTOR_SECURITY_OFFSET + 1); i++)
{
- if (ProgramFlashByte(sector, 0xFF9 + i, ((u8 *)gFastSaveSection)[0xFF9 + i]))
+ if (ProgramFlashByte(sector, SECTOR_SECURITY_OFFSET + 1 + i, ((u8 *)gReadWriteSector)[SECTOR_SECURITY_OFFSET + 1 + i]))
{
status = SAVE_STATUS_ERROR;
break;
@@ -347,28 +372,31 @@ static u8 ClearSaveData_2(u16 sectorId, const struct SaveSectionLocation *locati
if (status == SAVE_STATUS_ERROR)
{
+ // Writing security/counter failed
SetDamagedSectorBits(ENABLE, sector);
return SAVE_STATUS_ERROR;
}
else
{
+ // Succeeded
SetDamagedSectorBits(DISABLE, sector);
return SAVE_STATUS_OK;
}
}
}
-static u8 sav12_xor_get(u16 sectorId, const struct SaveSectionLocation *location)
+static u8 WriteSectorSecurityByte_NoOffset(u16 sectorId, const struct SaveSectorLocation *locations)
{
- u16 sector;
-
- sector = sectorId + gLastWrittenSector; // no sub 1?
+ // Adjust sector id for current save slot
+ // This first line lacking -1 is the only difference from WriteSectorSecurityByte
+ u16 sector = sectorId + gLastWrittenSector;
sector %= NUM_SECTORS_PER_SLOT;
sector += NUM_SECTORS_PER_SLOT * (gSaveCounter % NUM_SAVE_SLOTS);
- if (ProgramFlashByte(sector, sizeof(struct UnkSaveSection), 0x25))
+ // Write just the first byte of the security field, which was skipped by HandleReplaceSector
+ if (ProgramFlashByte(sector, SECTOR_SECURITY_OFFSET, SECTOR_SECURITY_NUM & 0xFF))
{
- // sector is damaged, so enable the bit in gDamagedSaveSectors and restore the last written sector and save counter.
+ // Sector is damaged, so enable the bit in gDamagedSaveSectors and restore the last written sector and save counter.
SetDamagedSectorBits(ENABLE, sector);
gLastWrittenSector = gLastKnownGoodSector;
gSaveCounter = gLastSaveCounter;
@@ -376,22 +404,23 @@ static u8 sav12_xor_get(u16 sectorId, const struct SaveSectionLocation *location
}
else
{
+ // Succeeded
SetDamagedSectorBits(DISABLE, sector);
return SAVE_STATUS_OK;
}
}
-static u8 sub_8152CAC(u16 sectorId, const struct SaveSectionLocation *location)
+static u8 CopySectorSecurityByte(u16 sectorId, const struct SaveSectorLocation *locations)
{
- u16 sector;
-
- sector = sectorId + gLastWrittenSector - 1;
+ // Adjust sector id for current save slot
+ u16 sector = sectorId + gLastWrittenSector - 1;
sector %= NUM_SECTORS_PER_SLOT;
sector += NUM_SECTORS_PER_SLOT * (gSaveCounter % NUM_SAVE_SLOTS);
- if (ProgramFlashByte(sector, sizeof(struct UnkSaveSection), ((u8 *)gFastSaveSection)[sizeof(struct UnkSaveSection)]))
+ // Copy just the first byte of the security field from the read/write buffer
+ if (ProgramFlashByte(sector, SECTOR_SECURITY_OFFSET, ((u8 *)gReadWriteSector)[SECTOR_SECURITY_OFFSET]))
{
- // sector is damaged, so enable the bit in gDamagedSaveSectors and restore the last written sector and save counter.
+ // Sector is damaged, so enable the bit in gDamagedSaveSectors and restore the last written sector and save counter.
SetDamagedSectorBits(ENABLE, sector);
gLastWrittenSector = gLastKnownGoodSector;
gSaveCounter = gLastSaveCounter;
@@ -399,22 +428,23 @@ static u8 sub_8152CAC(u16 sectorId, const struct SaveSectionLocation *location)
}
else
{
+ // Succeded
SetDamagedSectorBits(DISABLE, sector);
return SAVE_STATUS_OK;
}
}
-static u8 sub_8152D44(u16 sectorId, const struct SaveSectionLocation *location)
+static u8 WriteSectorSecurityByte(u16 sectorId, const struct SaveSectorLocation *locations)
{
- u16 sector;
-
- sector = sectorId + gLastWrittenSector - 1; // no sub 1?
+ // Adjust sector id for current save slot
+ u16 sector = sectorId + gLastWrittenSector - 1;
sector %= NUM_SECTORS_PER_SLOT;
sector += NUM_SECTORS_PER_SLOT * (gSaveCounter % NUM_SAVE_SLOTS);
- if (ProgramFlashByte(sector, sizeof(struct UnkSaveSection), 0x25))
+ // Write just the first byte of the security field, which was skipped by HandleReplaceSector
+ if (ProgramFlashByte(sector, SECTOR_SECURITY_OFFSET, SECTOR_SECURITY_NUM & 0xFF))
{
- // sector is damaged, so enable the bit in gDamagedSaveSectors and restore the last written sector and save counter.
+ // Sector is damaged, so enable the bit in gDamagedSaveSectors and restore the last written sector and save counter.
SetDamagedSectorBits(ENABLE, sector);
gLastWrittenSector = gLastKnownGoodSector;
gSaveCounter = gLastSaveCounter;
@@ -422,29 +452,32 @@ static u8 sub_8152D44(u16 sectorId, const struct SaveSectionLocation *location)
}
else
{
+ // Succeeded
SetDamagedSectorBits(DISABLE, sector);
return SAVE_STATUS_OK;
}
}
-static u8 sub_8152DD0(u16 a1, const struct SaveSectionLocation *location)
+static u8 TryLoadSaveSlot(u16 sectorId, struct SaveSectorLocation *locations)
{
u8 status;
- gFastSaveSection = &gSaveDataBuffer;
- if (a1 != 0xFFFF)
+ gReadWriteSector = &gSaveDataBuffer;
+ if (sectorId != FULL_SAVE_SLOT)
{
+ // This function may not be used with a specific sector id
status = SAVE_STATUS_ERROR;
}
else
{
- status = GetSaveValidStatus(location);
- sub_8152E10(0xFFFF, location);
+ status = GetSaveValidStatus(locations);
+ CopySaveSlotData(FULL_SAVE_SLOT, locations);
}
return status;
}
-static u8 sub_8152E10(u16 a1, const struct SaveSectionLocation *location)
+// sectorId arg is ignored, this always reads the full save slot
+static u8 CopySaveSlotData(u16 sectorId, struct SaveSectorLocation *locations)
{
u16 i;
u16 checksum;
@@ -453,96 +486,102 @@ static u8 sub_8152E10(u16 a1, const struct SaveSectionLocation *location)
for (i = 0; i < NUM_SECTORS_PER_SLOT; i++)
{
- DoReadFlashWholeSection(i + slotOffset, gFastSaveSection);
- id = gFastSaveSection->id;
+ ReadFlashSector(i + slotOffset, gReadWriteSector);
+
+ id = gReadWriteSector->id;
if (id == 0)
gLastWrittenSector = i;
- checksum = CalculateChecksum(gFastSaveSection->data, location[id].size);
- if (gFastSaveSection->security == UNKNOWN_CHECK_VALUE
- && gFastSaveSection->checksum == checksum)
+
+ checksum = CalculateChecksum(gReadWriteSector->data, locations[id].size);
+
+ // Only copy data for sectors whose security and checksum fields are correct
+ if (gReadWriteSector->security == SECTOR_SECURITY_NUM && gReadWriteSector->checksum == checksum)
{
u16 j;
- for (j = 0; j < location[id].size; j++)
- ((u8 *)location[id].data)[j] = gFastSaveSection->data[j];
+ for (j = 0; j < locations[id].size; j++)
+ ((u8 *)locations[id].data)[j] = gReadWriteSector->data[j];
}
}
return SAVE_STATUS_OK;
}
-static u8 GetSaveValidStatus(const struct SaveSectionLocation *location)
+static u8 GetSaveValidStatus(const struct SaveSectorLocation *locations)
{
u16 i;
u16 checksum;
u32 saveSlot1Counter = 0;
u32 saveSlot2Counter = 0;
- u32 slotCheckField = 0;
+ u32 validSectorFlags = 0;
bool8 securityPassed = FALSE;
u8 saveSlot1Status;
u8 saveSlot2Status;
- // check save slot 1.
+ // Check save slot 1
for (i = 0; i < NUM_SECTORS_PER_SLOT; i++)
{
- DoReadFlashWholeSection(i, gFastSaveSection);
- if (gFastSaveSection->security == UNKNOWN_CHECK_VALUE)
+ ReadFlashSector(i, gReadWriteSector);
+ if (gReadWriteSector->security == SECTOR_SECURITY_NUM)
{
securityPassed = TRUE;
- checksum = CalculateChecksum(gFastSaveSection->data, location[gFastSaveSection->id].size);
- if (gFastSaveSection->checksum == checksum)
+ checksum = CalculateChecksum(gReadWriteSector->data, locations[gReadWriteSector->id].size);
+ if (gReadWriteSector->checksum == checksum)
{
- saveSlot1Counter = gFastSaveSection->counter;
- slotCheckField |= 1 << gFastSaveSection->id;
+ saveSlot1Counter = gReadWriteSector->counter;
+ validSectorFlags |= 1 << gReadWriteSector->id;
}
}
}
if (securityPassed)
{
- if (slotCheckField == 0x3FFF)
+ if (validSectorFlags == (1 << NUM_SECTORS_PER_SLOT) - 1)
saveSlot1Status = SAVE_STATUS_OK;
else
saveSlot1Status = SAVE_STATUS_ERROR;
}
else
{
+ // No sectors in slot 1 have the security number, treat it as empty
saveSlot1Status = SAVE_STATUS_EMPTY;
}
- slotCheckField = 0;
+ validSectorFlags = 0;
securityPassed = FALSE;
- // check save slot 2.
+ // Check save slot 2
for (i = 0; i < NUM_SECTORS_PER_SLOT; i++)
{
- DoReadFlashWholeSection(i + NUM_SECTORS_PER_SLOT, gFastSaveSection);
- if (gFastSaveSection->security == UNKNOWN_CHECK_VALUE)
+ ReadFlashSector(i + NUM_SECTORS_PER_SLOT, gReadWriteSector);
+ if (gReadWriteSector->security == SECTOR_SECURITY_NUM)
{
securityPassed = TRUE;
- checksum = CalculateChecksum(gFastSaveSection->data, location[gFastSaveSection->id].size);
- if (gFastSaveSection->checksum == checksum)
+ checksum = CalculateChecksum(gReadWriteSector->data, locations[gReadWriteSector->id].size);
+ if (gReadWriteSector->checksum == checksum)
{
- saveSlot2Counter = gFastSaveSection->counter;
- slotCheckField |= 1 << gFastSaveSection->id;
+ saveSlot2Counter = gReadWriteSector->counter;
+ validSectorFlags |= 1 << gReadWriteSector->id;
}
}
}
if (securityPassed)
{
- if (slotCheckField == 0x3FFF)
+ if (validSectorFlags == (1 << NUM_SECTORS_PER_SLOT) - 1)
saveSlot2Status = SAVE_STATUS_OK;
else
saveSlot2Status = SAVE_STATUS_ERROR;
}
else
{
+ // No sectors in slot 2 have the security number, treat it as empty.
saveSlot2Status = SAVE_STATUS_EMPTY;
}
if (saveSlot1Status == SAVE_STATUS_OK && saveSlot2Status == SAVE_STATUS_OK)
{
- if ((saveSlot1Counter == -1 && saveSlot2Counter == 0) || (saveSlot1Counter == 0 && saveSlot2Counter == -1))
+ if ((saveSlot1Counter == -1 && saveSlot2Counter == 0)
+ || (saveSlot1Counter == 0 && saveSlot2Counter == -1))
{
if ((unsigned)(saveSlot1Counter + 1) < (unsigned)(saveSlot2Counter + 1))
gSaveCounter = saveSlot2Counter;
@@ -559,63 +598,71 @@ static u8 GetSaveValidStatus(const struct SaveSectionLocation *location)
return SAVE_STATUS_OK;
}
+ // One or both save slots are not OK
+
if (saveSlot1Status == SAVE_STATUS_OK)
{
gSaveCounter = saveSlot1Counter;
if (saveSlot2Status == SAVE_STATUS_ERROR)
- return SAVE_STATUS_ERROR;
- return SAVE_STATUS_OK;
+ return SAVE_STATUS_ERROR; // Slot 2 errored
+ return SAVE_STATUS_OK; // Slot 1 is OK, slot 2 is empty
}
if (saveSlot2Status == SAVE_STATUS_OK)
{
gSaveCounter = saveSlot2Counter;
if (saveSlot1Status == SAVE_STATUS_ERROR)
- return SAVE_STATUS_ERROR;
- return SAVE_STATUS_OK;
+ return SAVE_STATUS_ERROR; // Slot 1 errored
+ return SAVE_STATUS_OK; // Slot 2 is OK, slot 1 is empty
}
- if (saveSlot1Status == SAVE_STATUS_EMPTY && saveSlot2Status == SAVE_STATUS_EMPTY)
+ // Neither slot is OK, check if both are empty
+ if (saveSlot1Status == SAVE_STATUS_EMPTY
+ && saveSlot2Status == SAVE_STATUS_EMPTY)
{
gSaveCounter = 0;
gLastWrittenSector = 0;
return SAVE_STATUS_EMPTY;
}
+ // Both slots errored
gSaveCounter = 0;
gLastWrittenSector = 0;
return SAVE_STATUS_CORRUPT;
}
-static u8 sub_81530DC(u8 sectorId, u8 *data, u16 size)
+static u8 TryLoadSaveSector(u8 sectorId, u8 *data, u16 size)
{
u16 i;
- struct SaveSection *section = &gSaveDataBuffer;
- DoReadFlashWholeSection(sectorId, section);
- if (section->security == UNKNOWN_CHECK_VALUE)
+ struct SaveSector *sector = &gSaveDataBuffer;
+ ReadFlashSector(sectorId, sector);
+ if (sector->security == SECTOR_SECURITY_NUM)
{
- u16 checksum = CalculateChecksum(section->data, size);
- if (section->id == checksum)
+ u16 checksum = CalculateChecksum(sector->data, size);
+ if (sector->id == checksum)
{
+ // Security and checksum are correct, copy data
for (i = 0; i < size; i++)
- data[i] = section->data[i];
+ data[i] = sector->data[i];
return SAVE_STATUS_OK;
}
else
{
+ // Incorrect checksum
return SAVE_STATUS_CORRUPT;
}
}
else
{
+ // Incorrect security value
return SAVE_STATUS_EMPTY;
}
}
// Return value always ignored
-static bool8 DoReadFlashWholeSection(u8 sector, struct SaveSection *section)
+static bool8 ReadFlashSector(u8 sectorId, struct SaveSector *sector)
{
- ReadFlash(sector, 0, section->data, sizeof(struct SaveSection));
+ ReadFlash(sectorId, 0, sector->data, SECTOR_SIZE);
return TRUE;
}
@@ -635,21 +682,20 @@ static u16 CalculateChecksum(void *data, u16 size)
static void UpdateSaveAddresses(void)
{
- int i = 0;
-
- gRamSaveSectionLocations[i].data = (void*)(gSaveBlock2Ptr) + sSaveSectionOffsets[i].toAdd;
- gRamSaveSectionLocations[i].size = sSaveSectionOffsets[i].size;
+ int i = SECTOR_ID_SAVEBLOCK2;
+ gRamSaveSectorLocations[i].data = (void*)(gSaveBlock2Ptr) + sSaveSlotLayout[i].offset;
+ gRamSaveSectorLocations[i].size = sSaveSlotLayout[i].size;
for (i = SECTOR_ID_SAVEBLOCK1_START; i <= SECTOR_ID_SAVEBLOCK1_END; i++)
{
- gRamSaveSectionLocations[i].data = (void*)(gSaveBlock1Ptr) + sSaveSectionOffsets[i].toAdd;
- gRamSaveSectionLocations[i].size = sSaveSectionOffsets[i].size;
+ gRamSaveSectorLocations[i].data = (void*)(gSaveBlock1Ptr) + sSaveSlotLayout[i].offset;
+ gRamSaveSectorLocations[i].size = sSaveSlotLayout[i].size;
}
for (; i <= SECTOR_ID_PKMN_STORAGE_END; i++) //setting i to SECTOR_ID_PKMN_STORAGE_START does not match
{
- gRamSaveSectionLocations[i].data = (void*)(gPokemonStoragePtr) + sSaveSectionOffsets[i].toAdd;
- gRamSaveSectionLocations[i].size = sSaveSectionOffsets[i].size;
+ gRamSaveSectorLocations[i].data = (void*)(gPokemonStoragePtr) + sSaveSlotLayout[i].offset;
+ gRamSaveSectorLocations[i].size = sSaveSlotLayout[i].size;
}
}
@@ -663,43 +709,48 @@ u8 HandleSavingData(u8 saveType)
UpdateSaveAddresses();
switch (saveType)
{
- case SAVE_HALL_OF_FAME_ERASE_BEFORE: // deletes HOF before overwriting HOF completely. unused
+ case SAVE_HALL_OF_FAME_ERASE_BEFORE:
+ // Unused. Erases the special save sectors (HOF, Trainer Hill, Recorded Battle)
+ // before overwriting HOF.
for (i = SECTOR_ID_HOF_1; i < SECTORS_COUNT; i++)
EraseFlashSector(i);
- case SAVE_HALL_OF_FAME: // hall of fame.
+ // fallthrough
+ case SAVE_HALL_OF_FAME:
if (GetGameStat(GAME_STAT_ENTERED_HOF) < 999)
IncrementGameStat(GAME_STAT_ENTERED_HOF);
- SaveSerializedGame();
- SaveWriteToFlash(0xFFFF, gRamSaveSectionLocations);
+
+ // Write the full save slot first
+ CopyPartyAndObjectsToSave();
+ WriteSaveSectorOrSlot(FULL_SAVE_SLOT, gRamSaveSectorLocations);
+
+ // Save the Hall of Fame
tempAddr = gDecompressionBuffer;
HandleWriteSectorNBytes(SECTOR_ID_HOF_1, tempAddr, SECTOR_DATA_SIZE);
HandleWriteSectorNBytes(SECTOR_ID_HOF_2, tempAddr + SECTOR_DATA_SIZE, SECTOR_DATA_SIZE);
break;
- case SAVE_NORMAL: // normal save. also called by overwriting your own save.
+ case SAVE_NORMAL:
default:
- SaveSerializedGame();
- SaveWriteToFlash(0xFFFF, gRamSaveSectionLocations);
+ CopyPartyAndObjectsToSave();
+ WriteSaveSectorOrSlot(FULL_SAVE_SLOT, gRamSaveSectorLocations);
break;
- case SAVE_LINK: // Link and Battle Frontier
- case SAVE_LINK2: // Unused
- SaveSerializedGame();
+ case SAVE_LINK:
+ case SAVE_LINK2:
+ // Used by link / Battle Frontier
+ // Write only SaveBlocks 1 and 2 (skips the PC)
+ CopyPartyAndObjectsToSave();
for(i = SECTOR_ID_SAVEBLOCK2; i <= SECTOR_ID_SAVEBLOCK1_END; i++)
- ClearSaveData_2(i, gRamSaveSectionLocations);
+ HandleReplaceSector(i, gRamSaveSectorLocations);
for(i = SECTOR_ID_SAVEBLOCK2; i <= SECTOR_ID_SAVEBLOCK1_END; i++)
- sav12_xor_get(i, gRamSaveSectionLocations);
+ WriteSectorSecurityByte_NoOffset(i, gRamSaveSectorLocations);
break;
- // Support for Ereader was removed in Emerald.
- /*
- case EREADER_SAVE: // used in mossdeep "game corner" before/after battling old man e-reader trainer
- SaveSerializedGame();
- SaveWriteToFlash(0, gRamSaveSectionLocations);
- break;
- */
case SAVE_OVERWRITE_DIFFERENT_FILE:
+ // Erase Hall of Fame
for (i = SECTOR_ID_HOF_1; i < SECTORS_COUNT; i++)
- EraseFlashSector(i); // erase HOF.
- SaveSerializedGame();
- SaveWriteToFlash(0xFFFF, gRamSaveSectionLocations);
+ EraseFlashSector(i);
+
+ // Overwrite save slot
+ CopyPartyAndObjectsToSave();
+ WriteSaveSectorOrSlot(FULL_SAVE_SLOT, gRamSaveSectorLocations);
break;
}
gTrainerHillVBlankCounter = backupVar;
@@ -728,75 +779,91 @@ u8 TrySavingData(u8 saveType)
}
}
-bool8 sub_8153380(void) // trade.c
+bool8 LinkFullSave_Init(void)
{
if (gFlashMemoryPresent != TRUE)
return TRUE;
UpdateSaveAddresses();
- SaveSerializedGame();
- RestoreSaveBackupVarsAndIncrement(gRamSaveSectionLocations);
+ CopyPartyAndObjectsToSave();
+ RestoreSaveBackupVarsAndIncrement(gRamSaveSectorLocations);
return FALSE;
}
-bool8 sub_81533AC(void) // trade.c
+bool8 LinkFullSave_WriteSector(void)
{
- u8 status = sub_81529D4(NUM_SECTORS_PER_SLOT, gRamSaveSectionLocations);
+ u8 status = HandleWriteIncrementalSector(NUM_SECTORS_PER_SLOT, gRamSaveSectorLocations);
if (gDamagedSaveSectors)
DoSaveFailedScreen(SAVE_NORMAL);
+
+ // In this case "error" either means that an actual error was encountered
+ // or that the given max sector has been reached (meaning it has finished successfully).
+ // If there was an actual error the save failed screen above will also be shown.
if (status == SAVE_STATUS_ERROR)
return TRUE;
else
return FALSE;
}
-bool8 sub_81533E0(void) // trade.c
+bool8 LinkFullSave_ReplaceLastSector(void)
{
- sub_8152A34(NUM_SECTORS_PER_SLOT, gRamSaveSectionLocations);
+ HandleReplaceSectorAndVerify(NUM_SECTORS_PER_SLOT, gRamSaveSectorLocations);
if (gDamagedSaveSectors)
DoSaveFailedScreen(SAVE_NORMAL);
return FALSE;
}
-bool8 sub_8153408(void) // trade.c
+bool8 LinkFullSave_SetLastSectorSecurity(void)
{
- sub_8152CAC(NUM_SECTORS_PER_SLOT, gRamSaveSectionLocations);
+ CopySectorSecurityByte(NUM_SECTORS_PER_SLOT, gRamSaveSectorLocations);
if (gDamagedSaveSectors)
DoSaveFailedScreen(SAVE_NORMAL);
return FALSE;
}
-u8 FullSaveGame(void)
+u8 WriteSaveBlock2(void)
{
if (gFlashMemoryPresent != TRUE)
return TRUE;
UpdateSaveAddresses();
- SaveSerializedGame();
- RestoreSaveBackupVars(gRamSaveSectionLocations);
- sub_8152A34(gUnknown_03006208 + 1, gRamSaveSectionLocations);
+ CopyPartyAndObjectsToSave();
+ RestoreSaveBackupVars(gRamSaveSectorLocations);
+
+ // Because RestoreSaveBackupVars is called immediately prior, gIncrementalSectorId will always be 0 below,
+ // so this function only saves the first sector (SECTOR_ID_SAVEBLOCK2)
+ HandleReplaceSectorAndVerify(gIncrementalSectorId + 1, gRamSaveSectorLocations);
return FALSE;
}
-bool8 CheckSaveFile(void)
+// Used in conjunction with WriteSaveBlock2 to write both for certain link saves.
+// This will be called repeatedly in a task, writing each sector of SaveBlock1 incrementally.
+// It returns TRUE when finished.
+bool8 WriteSaveBlock1Sector(void)
{
- u8 retVal = FALSE;
- u16 sectorId = ++gUnknown_03006208;
+ u8 finished = FALSE;
+ u16 sectorId = ++gIncrementalSectorId; // Because WriteSaveBlock2 will have been called prior, this will be SECTOR_ID_SAVEBLOCK1_START
if (sectorId <= SECTOR_ID_SAVEBLOCK1_END)
{
- sub_8152A34(gUnknown_03006208 + 1, gRamSaveSectionLocations);
- sub_8152D44(sectorId, gRamSaveSectionLocations);
+ // Write a single sector of SaveBlock1
+ HandleReplaceSectorAndVerify(gIncrementalSectorId + 1, gRamSaveSectorLocations);
+ WriteSectorSecurityByte(sectorId, gRamSaveSectorLocations);
}
else
{
- sub_8152D44(sectorId, gRamSaveSectionLocations);
- retVal = TRUE;
+ // Beyond SaveBlock1, don't write the sector.
+ // Does write 1 byte of the next sector's security field, but as these
+ // are the same for all valid sectors it doesn't matter.
+ WriteSectorSecurityByte(sectorId, gRamSaveSectorLocations);
+ finished = TRUE;
}
+
if (gDamagedSaveSectors)
DoSaveFailedScreen(SAVE_LINK);
- return retVal;
+
+ return finished;
}
-u8 Save_LoadGameData(u8 saveType)
+u8 LoadGameSave(u8 saveType)
{
u8 status;
@@ -811,15 +878,15 @@ u8 Save_LoadGameData(u8 saveType)
{
case SAVE_NORMAL:
default:
- status = sub_8152DD0(0xFFFF, gRamSaveSectionLocations);
- LoadSerializedGame();
+ status = TryLoadSaveSlot(FULL_SAVE_SLOT, gRamSaveSectorLocations);
+ CopyPartyAndObjectsFromSave();
gSaveFileStatus = status;
gGameContinueCallback = 0;
break;
case SAVE_HALL_OF_FAME:
- status = sub_81530DC(SECTOR_ID_HOF_1, gDecompressionBuffer, SECTOR_DATA_SIZE);
+ status = TryLoadSaveSector(SECTOR_ID_HOF_1, gDecompressionBuffer, SECTOR_DATA_SIZE);
if (status == SAVE_STATUS_OK)
- status = sub_81530DC(SECTOR_ID_HOF_2, gDecompressionBuffer + SECTOR_DATA_SIZE, SECTOR_DATA_SIZE);
+ status = TryLoadSaveSector(SECTOR_ID_HOF_2, &gDecompressionBuffer[SECTOR_DATA_SIZE], SECTOR_DATA_SIZE);
break;
}
@@ -829,29 +896,29 @@ u8 Save_LoadGameData(u8 saveType)
u16 GetSaveBlocksPointersBaseOffset(void)
{
u16 i, slotOffset;
- struct SaveSection* savSection;
+ struct SaveSector* sector;
- savSection = gFastSaveSection = &gSaveDataBuffer;
+ sector = gReadWriteSector = &gSaveDataBuffer;
if (gFlashMemoryPresent != TRUE)
return 0;
UpdateSaveAddresses();
- GetSaveValidStatus(gRamSaveSectionLocations);
+ GetSaveValidStatus(gRamSaveSectorLocations);
slotOffset = NUM_SECTORS_PER_SLOT * (gSaveCounter % NUM_SAVE_SLOTS);
for (i = 0; i < NUM_SECTORS_PER_SLOT; i++)
{
- DoReadFlashWholeSection(i + slotOffset, gFastSaveSection);
+ ReadFlashSector(i + slotOffset, gReadWriteSector);
// Base offset for SaveBlock2 is calculated using the trainer id
- if (gFastSaveSection->id == SECTOR_ID_SAVEBLOCK2)
- return savSection->data[offsetof(struct SaveBlock2, playerTrainerId[0])] +
- savSection->data[offsetof(struct SaveBlock2, playerTrainerId[1])] +
- savSection->data[offsetof(struct SaveBlock2, playerTrainerId[2])] +
- savSection->data[offsetof(struct SaveBlock2, playerTrainerId[3])];
+ if (gReadWriteSector->id == SECTOR_ID_SAVEBLOCK2)
+ return sector->data[offsetof(struct SaveBlock2, playerTrainerId[0])] +
+ sector->data[offsetof(struct SaveBlock2, playerTrainerId[1])] +
+ sector->data[offsetof(struct SaveBlock2, playerTrainerId[2])] +
+ sector->data[offsetof(struct SaveBlock2, playerTrainerId[3])];
}
return 0;
}
-u32 TryReadSpecialSaveSection(u8 sector, u8* dst)
+u32 TryReadSpecialSaveSector(u8 sector, u8* dst)
{
s32 i;
s32 size;
@@ -859,19 +926,21 @@ u32 TryReadSpecialSaveSection(u8 sector, u8* dst)
if (sector != SECTOR_ID_TRAINER_HILL && sector != SECTOR_ID_RECORDED_BATTLE)
return SAVE_STATUS_ERROR;
- ReadFlash(sector, 0, (u8 *)&gSaveDataBuffer, sizeof(struct SaveSection));
- if (*(u32*)(&gSaveDataBuffer.data[0]) != SPECIAL_SECTION_SENTINEL)
+
+ ReadFlash(sector, 0, (u8 *)&gSaveDataBuffer, SECTOR_SIZE);
+ if (*(u32*)(&gSaveDataBuffer.data[0]) != SPECIAL_SECTOR_SENTINEL)
return SAVE_STATUS_ERROR;
- // copies whole save section except u32 counter
+
+ // Copies whole save sector except u32 counter
i = 0;
- size = 0xFFB;
- savData = &gSaveDataBuffer.data[4];
+ size = SECTOR_COUNTER_OFFSET - 1;
+ savData = &gSaveDataBuffer.data[4]; // data[4] to skip past SPECIAL_SECTOR_SENTINEL
for (; i <= size; i++)
dst[i] = savData[i];
return SAVE_STATUS_OK;
}
-u32 TryWriteSpecialSaveSection(u8 sector, u8* src)
+u32 TryWriteSpecialSaveSector(u8 sector, u8* src)
{
s32 i;
s32 size;
@@ -882,12 +951,12 @@ u32 TryWriteSpecialSaveSection(u8 sector, u8* src)
return SAVE_STATUS_ERROR;
savDataBuffer = &gSaveDataBuffer;
- *(u32*)(savDataBuffer) = SPECIAL_SECTION_SENTINEL;
+ *(u32*)(savDataBuffer) = SPECIAL_SECTOR_SENTINEL;
- // copies whole save section except u32 counter
+ // Copies whole save sector except u32 counter
i = 0;
- size = 0xFFB;
- savData = &gSaveDataBuffer.data[4];
+ size = SECTOR_COUNTER_OFFSET - 1;
+ savData = &gSaveDataBuffer.data[4]; // data[4] to skip past SPECIAL_SECTOR_SENTINEL
for (; i <= size; i++)
savData[i] = src[i];
if (ProgramFlashSectorAndVerify(sector, savDataBuffer) != 0)
@@ -895,11 +964,13 @@ u32 TryWriteSpecialSaveSection(u8 sector, u8* src)
return SAVE_STATUS_OK;
}
-#define tState data[0]
-#define tTimer data[1]
-#define tPartialSave data[2]
+#define tState data[0]
+#define tTimer data[1]
+#define tInBattleTower data[2]
-void Task_LinkSave(u8 taskId)
+// Note that this is very different from TrySavingData(SAVE_LINK).
+// Most notably it does save the PC data.
+void Task_LinkFullSave(u8 taskId)
{
s16* data = gTasks[taskId].data;
@@ -916,15 +987,15 @@ void Task_LinkSave(u8 taskId)
case 2:
if (IsLinkTaskFinished())
{
- if (!tPartialSave)
+ if (!tInBattleTower)
SaveMapView();
tState = 3;
}
break;
case 3:
- if (!tPartialSave)
+ if (!tInBattleTower)
SetContinueGameWarpStatusToDynamicWarp();
- sub_8153380();
+ LinkFullSave_Init();
tState = 4;
break;
case 4:
@@ -935,17 +1006,17 @@ void Task_LinkSave(u8 taskId)
}
break;
case 5:
- if (sub_81533AC())
+ if (LinkFullSave_WriteSector())
tState = 6;
else
- tState = 4;
+ tState = 4; // Not finished, delay again
break;
case 6:
- sub_81533E0();
+ LinkFullSave_ReplaceLastSector();
tState = 7;
break;
case 7:
- if (!tPartialSave)
+ if (!tInBattleTower)
ClearContinueGameWarpStatus2();
SetLinkStandbyCallback();
tState = 8;
@@ -953,7 +1024,7 @@ void Task_LinkSave(u8 taskId)
case 8:
if (IsLinkTaskFinished())
{
- sub_8153408();
+ LinkFullSave_SetLastSectorSecurity();
tState = 9;
}
break;
@@ -974,7 +1045,3 @@ void Task_LinkSave(u8 taskId)
break;
}
}
-
-#undef tState
-#undef tTimer
-#undef tPartialSave
diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c
index 4f0373270..9b32a938f 100644
--- a/src/save_failed_screen.c
+++ b/src/save_failed_screen.c
@@ -222,8 +222,8 @@ static void CB2_SaveFailedScreen(void)
DrawStdFrameWithCustomTileAndPalette(sWindowIds[CLOCK_WIN_ID], FALSE, 0x214, 0xE);
FillWindowPixelBuffer(sWindowIds[CLOCK_WIN_ID], PIXEL_FILL(1)); // backwards?
FillWindowPixelBuffer(sWindowIds[TEXT_WIN_ID], PIXEL_FILL(1));
- CopyWindowToVram(sWindowIds[CLOCK_WIN_ID], 2); // again?
- CopyWindowToVram(sWindowIds[TEXT_WIN_ID], 1);
+ CopyWindowToVram(sWindowIds[CLOCK_WIN_ID], COPYWIN_GFX); // again?
+ CopyWindowToVram(sWindowIds[TEXT_WIN_ID], COPYWIN_MAP);
SaveFailedScreenTextPrint(gText_SaveFailedCheckingBackup, 1, 0);
BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK);
EnableInterrupts(1);
@@ -363,9 +363,10 @@ static bool8 VerifySectorWipe(u16 sector)
ReadFlash(sector, 0, (u8 *)ptr, SECTOR_SIZE);
- for (i = 0; i < 0x400; i++, ptr++)
+ // 1/4 because ptr is u32
+ for (i = 0; i < SECTOR_SIZE / 4; i++, ptr++)
if (*ptr)
- return TRUE;
+ return TRUE; // Sector has nonzero data, failed
return FALSE;
}
@@ -375,6 +376,7 @@ static bool8 WipeSector(u16 sector)
u16 i, j;
bool8 failed = TRUE;
+ // Attempt to wipe sector with an arbitrary attempt limit of 130
for (i = 0; failed && i < 130; i++)
{
for (j = 0; j < SECTOR_SIZE; j++)
diff --git a/src/scrcmd.c b/src/scrcmd.c
index 57f133d0d..6007fb493 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -49,6 +49,7 @@
#include "tv.h"
#include "window.h"
#include "constants/event_objects.h"
+#include "constants/maps.h"
typedef u16 (*SpecialFunc)(void);
typedef void (*NativeFunc)(void);
@@ -790,7 +791,7 @@ bool8 ScrCmd_warphole(struct ScriptContext *ctx)
u16 y;
PlayerGetDestCoords(&x, &y);
- if (mapGroup == 0xFF && mapNum == 0xFF)
+ if (mapGroup == MAP_GROUP(UNDEFINED) && mapNum == MAP_NUM(UNDEFINED))
SetWarpDestinationToFixedHoleWarp(x - MAP_OFFSET, y - MAP_OFFSET);
else
SetWarpDestination(mapGroup, mapNum, -1, x - MAP_OFFSET, y - MAP_OFFSET);
@@ -1532,8 +1533,8 @@ bool8 ScrCmd_braillemessage(struct ScriptContext *ctx)
DrawStdWindowFrame(gBrailleWindowId, 0);
PutWindowTilemap(gBrailleWindowId);
FillWindowPixelBuffer(gBrailleWindowId, PIXEL_FILL(1));
- AddTextPrinterParameterized(gBrailleWindowId, FONT_BRAILLE, gStringVar4, xText, yText, 0xFF, 0x0);
- CopyWindowToVram(gBrailleWindowId, 3);
+ AddTextPrinterParameterized(gBrailleWindowId, FONT_BRAILLE, gStringVar4, xText, yText, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(gBrailleWindowId, COPYWIN_FULL);
return FALSE;
}
@@ -2026,7 +2027,7 @@ bool8 ScrCmd_playmoncry(struct ScriptContext *ctx)
u16 species = VarGet(ScriptReadHalfword(ctx));
u16 mode = VarGet(ScriptReadHalfword(ctx));
- PlayCry5(species, mode);
+ PlayCry_Script(species, mode);
return FALSE;
}
diff --git a/src/script_menu.c b/src/script_menu.c
index f0dccd9f9..ae0fe91e6 100644
--- a/src/script_menu.c
+++ b/src/script_menu.c
@@ -109,7 +109,7 @@ static void DrawMultichoiceMenu(u8 left, u8 top, u8 multichoiceId, bool8 ignoreB
windowId = CreateWindowFromRect(left, top, newWidth, count * 2);
SetStandardWindowBorderStyle(windowId, 0);
PrintMenuTable(windowId, count, actions);
- InitMenuInUpperLeftCornerPlaySoundWhenAPressed(windowId, count, cursorPos);
+ InitMenuInUpperLeftCornerNormal(windowId, count, cursorPos);
ScheduleBgCopyTilemapToVram(0);
InitMultichoiceCheckWrap(ignoreBPress, count, windowId, multichoiceId);
}
@@ -280,7 +280,7 @@ bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, bool8 ignore
SetStandardWindowBorderStyle(gTasks[taskId].tWindowId, 0);
PrintMenuGridTable(gTasks[taskId].tWindowId, newWidth * 8, columnCount, rowCount, sMultichoiceLists[multichoiceId].list);
InitMenuActionGrid(gTasks[taskId].tWindowId, newWidth * 8, columnCount, rowCount, 0);
- CopyWindowToVram(gTasks[taskId].tWindowId, 3);
+ CopyWindowToVram(gTasks[taskId].tWindowId, COPYWIN_FULL);
return TRUE;
}
}
@@ -288,7 +288,7 @@ bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, bool8 ignore
static void Task_HandleMultichoiceGridInput(u8 taskId)
{
s16 *data = gTasks[taskId].data;
- s8 selection = Menu_ProcessInputGridLayout();
+ s8 selection = Menu_ProcessGridInput();
switch (selection)
{
@@ -353,33 +353,33 @@ static void CreatePCMultichoice(void)
numChoices = 4;
windowId = CreateWindowFromRect(0, 0, width, 8);
SetStandardWindowBorderStyle(windowId, 0);
- AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_HallOfFame, y, 33, TEXT_SPEED_FF, NULL);
- AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_LogOff, y, 49, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_HallOfFame, y, 33, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_LogOff, y, 49, TEXT_SKIP_DRAW, NULL);
}
else
{
numChoices = 3;
windowId = CreateWindowFromRect(0, 0, width, 6);
SetStandardWindowBorderStyle(windowId, 0);
- AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_LogOff, y, 33, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_LogOff, y, 33, TEXT_SKIP_DRAW, NULL);
}
// Change PC name if player has met Lanette
if (FlagGet(FLAG_SYS_PC_LANETTE))
- AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_LanettesPC, y, 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_LanettesPC, y, 1, TEXT_SKIP_DRAW, NULL);
else
- AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_SomeonesPC, y, 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_SomeonesPC, y, 1, TEXT_SKIP_DRAW, NULL);
StringExpandPlaceholders(gStringVar4, gText_PlayersPC);
PrintPlayerNameOnWindow(windowId, gStringVar4, y, 17);
- InitMenuInUpperLeftCornerPlaySoundWhenAPressed(windowId, numChoices, 0);
- CopyWindowToVram(windowId, 3);
+ InitMenuInUpperLeftCornerNormal(windowId, numChoices, 0);
+ CopyWindowToVram(windowId, COPYWIN_FULL);
InitMultichoiceCheckWrap(FALSE, numChoices, windowId, MULTI_PC);
}
void ScriptMenu_DisplayPCStartupPrompt(void)
{
- sub_819786C(0, TRUE);
+ LoadMessageBoxAndFrameGfx(0, TRUE);
AddTextPrinterParameterized2(0, FONT_NORMAL, gText_WhichPCShouldBeAccessed, 0, NULL, 2, 1, 3);
}
@@ -527,13 +527,13 @@ static void CreateLilycoveSSTidalMultichoice(void)
{
if (sLilycoveSSTidalSelections[i] != 0xFF)
{
- AddTextPrinterParameterized(windowId, FONT_NORMAL, sLilycoveSSTidalDestinations[sLilycoveSSTidalSelections[i]], 8, selectionCount * 16 + 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(windowId, FONT_NORMAL, sLilycoveSSTidalDestinations[sLilycoveSSTidalSelections[i]], 8, selectionCount * 16 + 1, TEXT_SKIP_DRAW, NULL);
selectionCount++;
}
}
- InitMenuInUpperLeftCornerPlaySoundWhenAPressed(windowId, count, count - 1);
- CopyWindowToVram(windowId, 3);
+ InitMenuInUpperLeftCornerNormal(windowId, count, count - 1);
+ CopyWindowToVram(windowId, COPYWIN_FULL);
InitMultichoiceCheckWrap(FALSE, count, windowId, MULTI_SSTIDAL_LILYCOVE);
}
}
@@ -688,17 +688,17 @@ static void CreateStartMenuForPokenavTutorial(void)
{
u8 windowId = CreateWindowFromRect(21, 0, 7, 18);
SetStandardWindowBorderStyle(windowId, 0);
- AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_MenuOptionPokedex, 8, 9, TEXT_SPEED_FF, NULL);
- AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_MenuOptionPokemon, 8, 25, TEXT_SPEED_FF, NULL);
- AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_MenuOptionBag, 8, 41, TEXT_SPEED_FF, NULL);
- AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_MenuOptionPokenav, 8, 57, TEXT_SPEED_FF, NULL);
- AddTextPrinterParameterized(windowId, FONT_NORMAL, gSaveBlock2Ptr->playerName, 8, 73, TEXT_SPEED_FF, NULL);
- AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_MenuOptionSave, 8, 89, TEXT_SPEED_FF, NULL);
- AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_MenuOptionOption, 8, 105, TEXT_SPEED_FF, NULL);
- AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_MenuOptionExit, 8, 121, TEXT_SPEED_FF, NULL);
- sub_81983AC(windowId, FONT_NORMAL, 0, 9, 16, ARRAY_COUNT(MultichoiceList_ForcedStartMenu), 0);
+ AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_MenuOptionPokedex, 8, 9, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_MenuOptionPokemon, 8, 25, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_MenuOptionBag, 8, 41, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_MenuOptionPokenav, 8, 57, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(windowId, FONT_NORMAL, gSaveBlock2Ptr->playerName, 8, 73, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_MenuOptionSave, 8, 89, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_MenuOptionOption, 8, 105, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_MenuOptionExit, 8, 121, TEXT_SKIP_DRAW, NULL);
+ InitMenuNormal(windowId, FONT_NORMAL, 0, 9, 16, ARRAY_COUNT(MultichoiceList_ForcedStartMenu), 0);
InitMultichoiceNoWrap(FALSE, ARRAY_COUNT(MultichoiceList_ForcedStartMenu), windowId, MULTI_FORCED_START_MENU);
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_FULL);
}
#define tWindowId data[6]
diff --git a/src/secret_base.c b/src/secret_base.c
index 12f6df5ab..72560ee23 100644
--- a/src/secret_base.c
+++ b/src/secret_base.c
@@ -1028,7 +1028,7 @@ static void ShowRegistryMenuActions(u8 taskId)
tActionWindowId = AddWindow(&template);
SetStandardWindowBorderStyle(tActionWindowId, 0);
PrintMenuTable(tActionWindowId, ARRAY_COUNT(sRegistryMenuActions), sRegistryMenuActions);
- InitMenuInUpperLeftCornerPlaySoundWhenAPressed(tActionWindowId, 2, 0);
+ InitMenuInUpperLeftCornerNormal(tActionWindowId, 2, 0);
ScheduleBgCopyTilemapToVram(0);
gTasks[taskId].func = HandleRegistryMenuActionsInput;
}
diff --git a/src/shop.c b/src/shop.c
index 817146d78..fa4a73bbb 100755
--- a/src/shop.c
+++ b/src/shop.c
@@ -301,9 +301,9 @@ static u8 CreateShopMenu(u8 martType)
SetStandardWindowBorderStyle(sMartInfo.windowId, 0);
PrintMenuTable(sMartInfo.windowId, numMenuItems, sMartInfo.menuActions);
- InitMenuInUpperLeftCornerPlaySoundWhenAPressed(sMartInfo.windowId, numMenuItems, 0);
+ InitMenuInUpperLeftCornerNormal(sMartInfo.windowId, numMenuItems, 0);
PutWindowTilemap(sMartInfo.windowId);
- CopyWindowToVram(sMartInfo.windowId, 1);
+ CopyWindowToVram(sMartInfo.windowId, COPYWIN_MAP);
return CreateTask(Task_ShopMenu, 8);
}
@@ -577,7 +577,7 @@ static void BuyMenuPrintPriceInList(u8 windowId, u32 itemId, u8 y)
StringExpandPlaceholders(gStringVar4, gText_PokedollarVar1);
x = GetStringRightAlignXOffset(FONT_NARROW, gStringVar4, 0x78);
- AddTextPrinterParameterized4(windowId, FONT_NARROW, x, y, 0, 0, sShopBuyMenuTextColors[1], -1, gStringVar4);
+ AddTextPrinterParameterized4(windowId, FONT_NARROW, x, y, 0, 0, sShopBuyMenuTextColors[1], TEXT_SKIP_DRAW, gStringVar4);
}
}
@@ -1145,7 +1145,7 @@ static void BuyMenuPrintItemQuantityAndPrice(u8 taskId)
s16 *data = gTasks[taskId].data;
FillWindowPixelBuffer(4, PIXEL_FILL(1));
- PrintMoneyAmount(4, 38, 1, sShopData->totalCost, TEXT_SPEED_FF);
+ PrintMoneyAmount(4, 38, 1, sShopData->totalCost, TEXT_SKIP_DRAW);
ConvertIntToDecimalStringN(gStringVar1, tItemCount, STR_CONV_MODE_LEADING_ZEROS, BAG_ITEM_CAPACITY_DIGITS);
StringExpandPlaceholders(gStringVar4, gText_xVar1);
BuyMenuPrint(4, gStringVar4, 0, 1, 0, 0);
diff --git a/src/slot_machine.c b/src/slot_machine.c
index 7d4610273..1c21f230d 100644
--- a/src/slot_machine.c
+++ b/src/slot_machine.c
@@ -1254,7 +1254,7 @@ static bool8 SlotAction_PrintMsg_Need3Coins(struct Task *task)
{
DrawDialogueFrame(0, 0);
AddTextPrinterParameterized(0, FONT_NORMAL, gText_YouDontHaveThreeCoins, 0, 1, 0, 0);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
sSlotMachine->state = SLOT_ACTION_WAIT_MSG_NEED_3_COINS;
return FALSE;
}
@@ -1519,7 +1519,7 @@ static bool8 SlotAction_AskQuit(struct Task *task)
{
DrawDialogueFrame(0, 0);
AddTextPrinterParameterized(0, FONT_NORMAL, gText_QuitTheGame, 0, 1, 0, 0);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
CreateYesNoMenuParameterized(0x15, 7, 0x214, 0x180, 0xE, 0xF);
sSlotMachine->state = SLOT_ACTION_HANDLE_QUIT_INPUT;
return FALSE;
@@ -1551,7 +1551,7 @@ static bool8 SlotAction_PrintMsg_9999Coins(struct Task *task)
{
DrawDialogueFrame(0, 0);
AddTextPrinterParameterized(0, FONT_NORMAL, gText_YouveGot9999Coins, 0, 1, 0, 0);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
sSlotMachine->state = SLOT_ACTION_WAIT_MSG_MAX_COINS;
return FALSE;
}
@@ -1572,7 +1572,7 @@ static bool8 SlotAction_PrintMsg_NoMoreCoins(struct Task *task)
{
DrawDialogueFrame(0, 0);
AddTextPrinterParameterized(0, FONT_NORMAL, gText_YouveRunOutOfCoins, 0, 1, 0, 0);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
sSlotMachine->state = SLOT_ACTION_WAIT_MSG_NO_MORE_COINS;
return FALSE;
}
@@ -3445,7 +3445,7 @@ static void InfoBox_DrawWindow(struct Task *task)
static void InfoBox_AddText(struct Task *task)
{
AddTextPrinterParameterized3(1, FONT_NORMAL, 2, 5, sColors_ReeltimeHelp, 0, gText_ReelTimeHelp);
- CopyWindowToVram(1, 3);
+ CopyWindowToVram(1, COPYWIN_FULL);
BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB(0, 0, 0));
task->tState++;
}
@@ -3456,7 +3456,7 @@ static void InfoBox_AwaitPlayerInput(struct Task *task)
{
FillWindowPixelBuffer(1, PIXEL_FILL(0));
ClearWindowTilemap(1);
- CopyWindowToVram(1, 1);
+ CopyWindowToVram(1, COPYWIN_MAP);
RemoveWindow(1);
BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB(0, 0, 0));
task->tState++;
diff --git a/src/sound.c b/src/sound.c
index 8c3cd3997..ad9993b54 100644
--- a/src/sound.c
+++ b/src/sound.c
@@ -26,7 +26,7 @@ static u16 sFanfareCounter;
bool8 gDisableMusic;
extern struct ToneData gCryTable[];
-extern struct ToneData gCryTable2[];
+extern struct ToneData gCryTable_Reverse[];
static void Task_Fanfare(u8 taskId);
static void CreateFanfareTask(void);
@@ -54,8 +54,6 @@ static const struct Fanfare sFanfares[] = {
[FANFARE_REGISTER_MATCH_CALL] = { MUS_REGISTER_MATCH_CALL, 135 },
};
-#define CRY_VOLUME 120 // was 125 in R/S
-
void InitMapMusic(void)
{
gDisableMusic = FALSE;
@@ -300,73 +298,76 @@ bool8 IsBGMStopped(void)
return FALSE;
}
-void PlayCry1(u16 species, s8 pan)
+void PlayCry_Normal(u16 species, s8 pan)
{
m4aMPlayVolumeControl(&gMPlayInfo_BGM, TRACKS_ALL, 85);
- PlayCryInternal(species, pan, CRY_VOLUME, 10, 0);
+ PlayCryInternal(species, pan, CRY_VOLUME, CRY_PRIORITY_NORMAL, CRY_MODE_NORMAL);
gPokemonCryBGMDuckingCounter = 2;
RestoreBGMVolumeAfterPokemonCry();
}
-void PlayCry2(u16 species, s8 pan, s8 volume, u8 priority)
+void PlayCry_NormalNoDucking(u16 species, s8 pan, s8 volume, u8 priority)
{
- PlayCryInternal(species, pan, volume, priority, 0);
+ PlayCryInternal(species, pan, volume, priority, CRY_MODE_NORMAL);
}
-void PlayCry3(u16 species, s8 pan, u8 mode)
+// Assuming it's not CRY_MODE_DOUBLES, this is equivalent to PlayCry_Normal except it allows other modes.
+void PlayCry_ByMode(u16 species, s8 pan, u8 mode)
{
- if (mode == 1)
+ if (mode == CRY_MODE_DOUBLES)
{
- PlayCryInternal(species, pan, CRY_VOLUME, 10, 1);
+ PlayCryInternal(species, pan, CRY_VOLUME, CRY_PRIORITY_NORMAL, mode);
}
else
{
m4aMPlayVolumeControl(&gMPlayInfo_BGM, TRACKS_ALL, 85);
- PlayCryInternal(species, pan, CRY_VOLUME, 10, mode);
+ PlayCryInternal(species, pan, CRY_VOLUME, CRY_PRIORITY_NORMAL, mode);
gPokemonCryBGMDuckingCounter = 2;
RestoreBGMVolumeAfterPokemonCry();
}
}
-void PlayCry4(u16 species, s8 pan, u8 mode)
+// Used when releasing multiple Pokémon at once in battle.
+void PlayCry_ReleaseDouble(u16 species, s8 pan, u8 mode)
{
- if (mode == 1)
+ if (mode == CRY_MODE_DOUBLES)
{
- PlayCryInternal(species, pan, CRY_VOLUME, 10, 1);
+ PlayCryInternal(species, pan, CRY_VOLUME, CRY_PRIORITY_NORMAL, mode);
}
else
{
if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI))
m4aMPlayVolumeControl(&gMPlayInfo_BGM, TRACKS_ALL, 85);
- PlayCryInternal(species, pan, CRY_VOLUME, 10, mode);
+ PlayCryInternal(species, pan, CRY_VOLUME, CRY_PRIORITY_NORMAL, mode);
}
}
-void PlayCry6(u16 species, s8 pan, u8 mode) // not present in R/S
+// Duck the BGM but don't restore it. Not present in R/S
+void PlayCry_DuckNoRestore(u16 species, s8 pan, u8 mode)
{
- if (mode == 1)
+ if (mode == CRY_MODE_DOUBLES)
{
- PlayCryInternal(species, pan, CRY_VOLUME, 10, 1);
+ PlayCryInternal(species, pan, CRY_VOLUME, CRY_PRIORITY_NORMAL, mode);
}
else
{
m4aMPlayVolumeControl(&gMPlayInfo_BGM, TRACKS_ALL, 85);
- PlayCryInternal(species, pan, CRY_VOLUME, 10, mode);
+ PlayCryInternal(species, pan, CRY_VOLUME, CRY_PRIORITY_NORMAL, mode);
gPokemonCryBGMDuckingCounter = 2;
}
}
-void PlayCry5(u16 species, u8 mode)
+void PlayCry_Script(u16 species, u8 mode)
{
m4aMPlayVolumeControl(&gMPlayInfo_BGM, TRACKS_ALL, 85);
- PlayCryInternal(species, 0, CRY_VOLUME, 10, mode);
+ PlayCryInternal(species, 0, CRY_VOLUME, CRY_PRIORITY_NORMAL, mode);
gPokemonCryBGMDuckingCounter = 2;
RestoreBGMVolumeAfterPokemonCry();
}
void PlayCryInternal(u16 species, s8 pan, s8 volume, u8 priority, u8 mode)
{
- bool32 v0;
+ bool32 reverse;
u32 release;
u32 length;
u32 pitch;
@@ -375,76 +376,80 @@ void PlayCryInternal(u16 species, s8 pan, s8 volume, u8 priority, u8 mode)
u8 table;
species--;
+
+ // Set default values
+ // May be overridden depending on mode.
length = 140;
- v0 = FALSE;
+ reverse = FALSE;
release = 0;
pitch = 15360;
chorus = 0;
switch (mode)
{
- case 0:
+ case CRY_MODE_NORMAL:
break;
- case 1:
+ case CRY_MODE_DOUBLES:
length = 20;
release = 225;
break;
- case 2:
+ case CRY_MODE_ENCOUNTER:
release = 225;
pitch = 15600;
chorus = 20;
volume = 90;
break;
- case 3:
+ case CRY_MODE_HIGH_PITCH:
length = 50;
release = 200;
pitch = 15800;
chorus = 20;
volume = 90;
break;
- case 4:
+ case CRY_MODE_ECHO_START:
length = 25;
- v0 = TRUE;
+ reverse = TRUE;
release = 100;
pitch = 15600;
chorus = 192;
volume = 90;
break;
- case 5:
+ case CRY_MODE_FAINT:
release = 200;
pitch = 14440;
break;
- case 6:
+ case CRY_MODE_ECHO_END:
release = 220;
pitch = 15555;
chorus = 192;
volume = 70;
break;
- case 7:
+ case CRY_MODE_ROAR_1:
length = 10;
release = 100;
pitch = 14848;
break;
- case 8:
+ case CRY_MODE_ROAR_2:
length = 60;
release = 225;
pitch = 15616;
break;
- case 9:
+ case CRY_MODE_GROWL_1:
length = 15;
- v0 = TRUE;
+ reverse = TRUE;
release = 125;
pitch = 15200;
break;
- case 10:
+ case CRY_MODE_GROWL_2:
length = 100;
release = 225;
pitch = 15200;
break;
- case 12:
+ case CRY_MODE_WEAK_DOUBLES:
length = 20;
release = 225;
- case 11:
+ // fallthrough
+ case CRY_MODE_WEAK:
pitch = 15000;
break;
}
@@ -463,28 +468,29 @@ void PlayCryInternal(u16 species, s8 pan, s8 volume, u8 priority, u8 mode)
// If you wish to expand pokemon, you need to
// append new cases to the switch.
species = SpeciesToCryId(species);
- index = species & 0x7F;
+ index = species % 128;
table = species / 128;
+ #define GET_CRY(speciesIndex, tableId, reversed) \
+ ((reversed) ? &gCryTable_Reverse[(128 * (tableId)) + (speciesIndex)] : &gCryTable[(128 * (tableId)) + (speciesIndex)])
+
switch (table)
{
case 0:
- gMPlay_PokemonCry = SetPokemonCryTone(
- v0 ? &gCryTable2[(128 * 0) + index] : &gCryTable[(128 * 0) + index]);
+ gMPlay_PokemonCry = SetPokemonCryTone(GET_CRY(index, 0, reverse));
break;
case 1:
- gMPlay_PokemonCry = SetPokemonCryTone(
- v0 ? &gCryTable2[(128 * 1) + index] : &gCryTable[(128 * 1) + index]);
+ gMPlay_PokemonCry = SetPokemonCryTone(GET_CRY(index, 1, reverse));
break;
case 2:
- gMPlay_PokemonCry = SetPokemonCryTone(
- v0 ? &gCryTable2[(128 * 2) + index] : &gCryTable[(128 * 2) + index]);
+ gMPlay_PokemonCry = SetPokemonCryTone(GET_CRY(index, 2, reverse));
break;
case 3:
- gMPlay_PokemonCry = SetPokemonCryTone(
- v0 ? &gCryTable2[(128 * 3) + index] : &gCryTable[(128 * 3) + index]);
+ gMPlay_PokemonCry = SetPokemonCryTone(GET_CRY(index, 3, reverse));
break;
}
+
+ #undef GET_CRY
}
bool8 IsCryFinished(void)
diff --git a/src/start_menu.c b/src/start_menu.c
index dcff75ff6..90230c3dd 100644
--- a/src/start_menu.c
+++ b/src/start_menu.c
@@ -386,8 +386,8 @@ static void ShowSafariBallsWindow(void)
DrawStdWindowFrame(sSafariBallsWindowId, FALSE);
ConvertIntToDecimalStringN(gStringVar1, gNumSafariBalls, STR_CONV_MODE_RIGHT_ALIGN, 2);
StringExpandPlaceholders(gStringVar4, gText_SafariBallStock);
- AddTextPrinterParameterized(sSafariBallsWindowId, FONT_NORMAL, gStringVar4, 0, 1, 0xFF, NULL);
- CopyWindowToVram(sSafariBallsWindowId, 2);
+ AddTextPrinterParameterized(sSafariBallsWindowId, FONT_NORMAL, gStringVar4, 0, 1, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(sSafariBallsWindowId, COPYWIN_GFX);
}
static void ShowPyramidFloorWindow(void)
@@ -401,8 +401,8 @@ static void ShowPyramidFloorWindow(void)
DrawStdWindowFrame(sBattlePyramidFloorWindowId, FALSE);
StringCopy(gStringVar1, sPyramidFloorNames[gSaveBlock2Ptr->frontier.curChallengeBattleNum]);
StringExpandPlaceholders(gStringVar4, gText_BattlePyramidFloor);
- AddTextPrinterParameterized(sBattlePyramidFloorWindowId, FONT_NORMAL, gStringVar4, 0, 1, 0xFF, NULL);
- CopyWindowToVram(sBattlePyramidFloorWindowId, 2);
+ AddTextPrinterParameterized(sBattlePyramidFloorWindowId, FONT_NORMAL, gStringVar4, 0, 1, TEXT_SKIP_DRAW, NULL);
+ CopyWindowToVram(sBattlePyramidFloorWindowId, COPYWIN_GFX);
}
static void RemoveExtraStartMenuWindows(void)
@@ -410,7 +410,7 @@ static void RemoveExtraStartMenuWindows(void)
if (GetSafariZoneFlag())
{
ClearStdWindowAndFrameToTransparent(sSafariBallsWindowId, FALSE);
- CopyWindowToVram(sSafariBallsWindowId, 2);
+ CopyWindowToVram(sSafariBallsWindowId, COPYWIN_GFX);
RemoveWindow(sSafariBallsWindowId);
}
if (InBattlePyramid())
@@ -433,7 +433,7 @@ static bool32 PrintStartMenuActions(s8 *pIndex, u32 count)
else
{
StringExpandPlaceholders(gStringVar4, sStartMenuItems[sCurrentStartMenuActions[index]].text);
- AddTextPrinterParameterized(GetStartMenuWindowId(), FONT_NORMAL, gStringVar4, 8, (index << 4) + 9, 0xFF, NULL);
+ AddTextPrinterParameterized(GetStartMenuWindowId(), FONT_NORMAL, gStringVar4, 8, (index << 4) + 9, TEXT_SKIP_DRAW, NULL);
}
index++;
@@ -466,7 +466,7 @@ static bool32 InitStartMenuStep(void)
break;
case 2:
LoadMessageBoxAndBorderGfx();
- DrawStdWindowFrame(sub_81979C4(sNumStartMenuActions), FALSE);
+ DrawStdWindowFrame(AddStartMenuWindow(sNumStartMenuActions), FALSE);
sInitStartMenuData[1] = 0;
sInitStartMenuData[0]++;
break;
@@ -482,8 +482,8 @@ static bool32 InitStartMenuStep(void)
sInitStartMenuData[0]++;
break;
case 5:
- sStartMenuCursorPos = sub_81983AC(GetStartMenuWindowId(), FONT_NORMAL, 0, 9, 16, sNumStartMenuActions, sStartMenuCursorPos);
- CopyWindowToVram(GetStartMenuWindowId(), TRUE);
+ sStartMenuCursorPos = InitMenuNormal(GetStartMenuWindowId(), FONT_NORMAL, 0, 9, 16, sNumStartMenuActions, sStartMenuCursorPos);
+ CopyWindowToVram(GetStartMenuWindowId(), COPYWIN_MAP);
return TRUE;
}
@@ -876,7 +876,7 @@ void SaveGame(void)
static void ShowSaveMessage(const u8 *message, u8 (*saveCallback)(void))
{
StringExpandPlaceholders(gStringVar4, message);
- sub_819786C(0, TRUE);
+ LoadMessageBoxAndFrameGfx(0, TRUE);
AddTextPrinterForMessage_2(TRUE);
sSavingComplete = TRUE;
sSaveDialogCallback = saveCallback;
@@ -1200,7 +1200,7 @@ static bool32 InitSaveWindowAfterLinkBattle(u8 *state)
break;
case 3:
ShowBg(0);
- BlendPalettes(-1, 16, 0);
+ BlendPalettes(PALETTES_ALL, 16, RGB_BLACK);
SetVBlankCallback(VBlankCB_LinkBattleSave);
EnableInterrupts(1);
break;
@@ -1240,14 +1240,14 @@ static void Task_SaveAfterLinkBattle(u8 taskId)
AddTextPrinterParameterized2(0,
FONT_NORMAL,
gText_SavingDontTurnOffPower,
- TEXT_SPEED_FF,
+ TEXT_SKIP_DRAW,
NULL,
TEXT_COLOR_DARK_GRAY,
TEXT_COLOR_WHITE,
TEXT_COLOR_LIGHT_GRAY);
DrawTextBorderOuter(0, 8, 14);
PutWindowTilemap(0);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK);
if (gWirelessCommType != 0 && InUnionRoom())
@@ -1269,11 +1269,11 @@ static void Task_SaveAfterLinkBattle(u8 taskId)
break;
case 1:
SetContinueGameWarpStatusToDynamicWarp();
- FullSaveGame();
+ WriteSaveBlock2();
*state = 2;
break;
case 2:
- if (CheckSaveFile())
+ if (WriteSaveBlock1Sector())
{
ClearContinueGameWarpStatus2();
*state = 3;
@@ -1290,11 +1290,11 @@ static void Task_SaveAfterLinkBattle(u8 taskId)
DestroyTask(taskId);
break;
case 5:
- CreateTask(Task_LinkSave, 5);
+ CreateTask(Task_LinkFullSave, 5);
*state = 6;
break;
case 6:
- if (!FuncIsActiveTask(Task_LinkSave))
+ if (!FuncIsActiveTask(Task_LinkFullSave))
{
*state = 3;
}
@@ -1330,40 +1330,40 @@ static void ShowSaveInfoWindow(void)
// Print region name
yOffset = 1;
BufferSaveMenuText(SAVE_MENU_LOCATION, gStringVar4, TEXT_COLOR_GREEN);
- AddTextPrinterParameterized(sSaveInfoWindowId, FONT_NORMAL, gStringVar4, 0, yOffset, 0xFF, NULL);
+ AddTextPrinterParameterized(sSaveInfoWindowId, FONT_NORMAL, gStringVar4, 0, yOffset, TEXT_SKIP_DRAW, NULL);
// Print player name
yOffset += 16;
- AddTextPrinterParameterized(sSaveInfoWindowId, FONT_NORMAL, gText_SavingPlayer, 0, yOffset, 0xFF, NULL);
+ AddTextPrinterParameterized(sSaveInfoWindowId, FONT_NORMAL, gText_SavingPlayer, 0, yOffset, TEXT_SKIP_DRAW, NULL);
BufferSaveMenuText(SAVE_MENU_NAME, gStringVar4, color);
xOffset = GetStringRightAlignXOffset(FONT_NORMAL, gStringVar4, 0x70);
PrintPlayerNameOnWindow(sSaveInfoWindowId, gStringVar4, xOffset, yOffset);
// Print badge count
yOffset += 16;
- AddTextPrinterParameterized(sSaveInfoWindowId, FONT_NORMAL, gText_SavingBadges, 0, yOffset, 0xFF, NULL);
+ AddTextPrinterParameterized(sSaveInfoWindowId, FONT_NORMAL, gText_SavingBadges, 0, yOffset, TEXT_SKIP_DRAW, NULL);
BufferSaveMenuText(SAVE_MENU_BADGES, gStringVar4, color);
xOffset = GetStringRightAlignXOffset(FONT_NORMAL, gStringVar4, 0x70);
- AddTextPrinterParameterized(sSaveInfoWindowId, FONT_NORMAL, gStringVar4, xOffset, yOffset, 0xFF, NULL);
+ AddTextPrinterParameterized(sSaveInfoWindowId, FONT_NORMAL, gStringVar4, xOffset, yOffset, TEXT_SKIP_DRAW, NULL);
if (FlagGet(FLAG_SYS_POKEDEX_GET) == TRUE)
{
// Print pokedex count
yOffset += 16;
- AddTextPrinterParameterized(sSaveInfoWindowId, FONT_NORMAL, gText_SavingPokedex, 0, yOffset, 0xFF, NULL);
+ AddTextPrinterParameterized(sSaveInfoWindowId, FONT_NORMAL, gText_SavingPokedex, 0, yOffset, TEXT_SKIP_DRAW, NULL);
BufferSaveMenuText(SAVE_MENU_CAUGHT, gStringVar4, color);
xOffset = GetStringRightAlignXOffset(FONT_NORMAL, gStringVar4, 0x70);
- AddTextPrinterParameterized(sSaveInfoWindowId, FONT_NORMAL, gStringVar4, xOffset, yOffset, 0xFF, NULL);
+ AddTextPrinterParameterized(sSaveInfoWindowId, FONT_NORMAL, gStringVar4, xOffset, yOffset, TEXT_SKIP_DRAW, NULL);
}
// Print play time
yOffset += 16;
- AddTextPrinterParameterized(sSaveInfoWindowId, FONT_NORMAL, gText_SavingTime, 0, yOffset, 0xFF, NULL);
+ AddTextPrinterParameterized(sSaveInfoWindowId, FONT_NORMAL, gText_SavingTime, 0, yOffset, TEXT_SKIP_DRAW, NULL);
BufferSaveMenuText(SAVE_MENU_PLAY_TIME, gStringVar4, color);
xOffset = GetStringRightAlignXOffset(FONT_NORMAL, gStringVar4, 0x70);
- AddTextPrinterParameterized(sSaveInfoWindowId, FONT_NORMAL, gStringVar4, xOffset, yOffset, 0xFF, NULL);
+ AddTextPrinterParameterized(sSaveInfoWindowId, FONT_NORMAL, gStringVar4, xOffset, yOffset, TEXT_SKIP_DRAW, NULL);
- CopyWindowToVram(sSaveInfoWindowId, 2);
+ CopyWindowToVram(sSaveInfoWindowId, COPYWIN_GFX);
}
static void RemoveSaveInfoWindow(void)
@@ -1374,23 +1374,23 @@ static void RemoveSaveInfoWindow(void)
static void Task_WaitForBattleTowerLinkSave(u8 taskId)
{
- if (!FuncIsActiveTask(Task_LinkSave))
+ if (!FuncIsActiveTask(Task_LinkFullSave))
{
DestroyTask(taskId);
EnableBothScriptContexts();
}
}
-#define tPartialSave data[2]
+#define tInBattleTower data[2]
void SaveForBattleTowerLink(void)
{
- u8 taskId = CreateTask(Task_LinkSave, 5);
- gTasks[taskId].tPartialSave = TRUE;
+ u8 taskId = CreateTask(Task_LinkFullSave, 5);
+ gTasks[taskId].tInBattleTower = TRUE;
gTasks[CreateTask(Task_WaitForBattleTowerLinkSave, 6)].data[1] = taskId;
}
-#undef tPartialSave
+#undef tInBattleTower
static void HideStartMenuWindow(void)
{
diff --git a/src/starter_choose.c b/src/starter_choose.c
index 942f60273..ca393c4d8 100644
--- a/src/starter_choose.c
+++ b/src/starter_choose.c
@@ -389,14 +389,14 @@ void CB2_ChooseStarter(void)
SetGpuReg(REG_OFFSET_BG1CNT, 0);
SetGpuReg(REG_OFFSET_BG0CNT, 0);
- ChangeBgX(0, 0, 0);
- ChangeBgY(0, 0, 0);
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
- ChangeBgX(2, 0, 0);
- ChangeBgY(2, 0, 0);
- ChangeBgX(3, 0, 0);
- ChangeBgY(3, 0, 0);
+ ChangeBgX(0, 0, BG_COORD_SET);
+ ChangeBgY(0, 0, BG_COORD_SET);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
+ ChangeBgX(2, 0, BG_COORD_SET);
+ ChangeBgY(2, 0, BG_COORD_SET);
+ ChangeBgX(3, 0, BG_COORD_SET);
+ ChangeBgY(3, 0, BG_COORD_SET);
DmaFill16(3, 0, VRAM, VRAM_SIZE);
DmaFill32(3, 0, OAM, OAM_SIZE);
@@ -532,7 +532,7 @@ static void Task_WaitForStarterSprite(u8 taskId)
static void Task_AskConfirmStarter(u8 taskId)
{
- PlayCry1(GetStarterPokemon(gTasks[taskId].tStarterSelection), 0);
+ PlayCry_Normal(GetStarterPokemon(gTasks[taskId].tStarterSelection), 0);
FillWindowPixelBuffer(0, PIXEL_FILL(1));
AddTextPrinterParameterized(0, FONT_NORMAL, gText_ConfirmStarterChoice, 0, 1, 0, NULL);
ScheduleBgCopyTilemapToVram(0);
diff --git a/src/strings.c b/src/strings.c
index 3785766ce..a77e67a84 100644
--- a/src/strings.c
+++ b/src/strings.c
@@ -1242,11 +1242,11 @@ const u8 gText_ContestantsMonWon[] = _("{STR_VAR_1}'s {STR_VAR_2} won!");
const u8 gText_CommunicationStandby[] = _("Communication standby…");
const u8 gText_ColorDarkGray[] = _("{COLOR DARK_GRAY}");
const u8 gText_ColorDynamic6WhiteDynamic5[] = _("{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR6 WHITE DYNAMIC_COLOR5}"); // Unused
-const u8 gText_HighlightDarkGray[] = _("{HIGHLIGHT DARK_GRAY}");
+const u8 gText_HealthboxNickname[] = _("{HIGHLIGHT DARK_GRAY}");
const u8 gText_EmptySpace2[] = _(" "); // Unused
-const u8 gText_DynColor2Male[] = _("{COLOR DYNAMIC_COLOR2}♂");
-const u8 gText_DynColor1Female[] = _("{COLOR DYNAMIC_COLOR1}♀");
-const u8 gText_DynColor2[] = _("{COLOR DYNAMIC_COLOR2}");
+const u8 gText_HealthboxGender_Male[] = _("{COLOR DYNAMIC_COLOR2}♂");
+const u8 gText_HealthboxGender_Female[] = _("{COLOR DYNAMIC_COLOR1}♀");
+const u8 gText_HealthboxGender_None[] = _("{COLOR DYNAMIC_COLOR2}");
const u8 gText_Upper[] = _("UPPER");
const u8 gText_Lower[] = _("lower");
const u8 gText_Others[] = _("OTHERS");
diff --git a/src/trade.c b/src/trade.c
index 475b82d5e..a1e4f7094 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -1395,9 +1395,9 @@ static void TradeMenuProcessInput(void)
DrawTextBorderOuter(1, 1, 14);
FillWindowPixelBuffer(1, PIXEL_FILL(1));
PrintMenuTable(1, ARRAY_COUNT(sSelectTradeMonActions), sSelectTradeMonActions);
- InitMenuInUpperLeftCornerPlaySoundWhenAPressed(1, 2, 0);
+ InitMenuInUpperLeftCornerNormal(1, 2, 0);
PutWindowTilemap(1);
- CopyWindowToVram(1, 3);
+ CopyWindowToVram(1, COPYWIN_FULL);
sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_SELECTED_MON;
}
// Cursor is in partner's party
@@ -1584,7 +1584,7 @@ static void RestoreNicknamesCoveredByYesNo(void)
for (i = 0; i < sTradeMenuData->partyCounts[1] - 4; i++)
{
PutWindowTilemap(i + 12);
- CopyWindowToVram(i + 12, 1);
+ CopyWindowToVram(i + 12, COPYWIN_MAP);
}
}
@@ -1855,9 +1855,9 @@ static void DrawTradeMenuParty(u8 whichParty)
BufferTradeMonMoves(movesString, selectedMonParty, partyIdx);
AddTextPrinterParameterized4((whichParty * 2) + 15, FONT_NORMAL, 0, 0, 0, 0, sTradeTextColors, 0, movesString);
PutWindowTilemap((whichParty * 2) + 14);
- CopyWindowToVram((whichParty * 2) + 14, 3);
+ CopyWindowToVram((whichParty * 2) + 14, COPYWIN_FULL);
PutWindowTilemap((whichParty * 2) + 15);
- CopyWindowToVram((whichParty * 2) + 15, 3);
+ CopyWindowToVram((whichParty * 2) + 15, COPYWIN_FULL);
sTradeMenuData->drawPartyState[whichParty]++;
break;
case 4:
@@ -1929,7 +1929,7 @@ static void PrintMonNicknameForTradeMenu(u8 whichParty, u8 windowId, u8 *nicknam
xPos = GetStringCenterAlignXOffset(FONT_SMALL, nickname, 64);
AddTextPrinterParameterized3(windowId, FONT_SMALL, xPos, 4, sTradeTextColors, 0, nickname);
PutWindowTilemap(windowId);
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_FULL);
}
static void PrintPartyNicknamesForTradeMenu(u8 whichParty)
@@ -2153,10 +2153,10 @@ static void DoQueuedActions(void)
static void PrintTradeMessage(u8 messageId)
{
FillWindowPixelBuffer(0, PIXEL_FILL(1));
- AddTextPrinterParameterized(0, FONT_NORMAL, sTradeMessages[messageId], 0, 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(0, FONT_NORMAL, sTradeMessages[messageId], 0, 1, TEXT_SKIP_DRAW, NULL);
DrawTextBorderOuter(0, 20, 12);
PutWindowTilemap(0);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
}
static bool8 LoadTradeMenuSpriteSheetsAndPalettes(void)
@@ -2899,7 +2899,7 @@ void LinkTradeDrawWindow(void)
{
FillWindowPixelBuffer(0, PIXEL_FILL(15));
PutWindowTilemap(0);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
}
static void InitTradeBgInternal(void)
@@ -2907,8 +2907,8 @@ static void InitTradeBgInternal(void)
SetGpuReg(REG_OFFSET_DISPCNT, 0);
ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, sTradeSequenceBgTemplates, ARRAY_COUNT(sTradeSequenceBgTemplates));
- ChangeBgX(0, 0, 0);
- ChangeBgY(0, 0, 0);
+ ChangeBgX(0, 0, BG_COORD_SET);
+ ChangeBgY(0, 0, BG_COORD_SET);
SetBgTilemapBuffer(0, Alloc(BG_SCREEN_SIZE));
SetBgTilemapBuffer(1, Alloc(BG_SCREEN_SIZE));
SetBgTilemapBuffer(3, Alloc(BG_SCREEN_SIZE));
@@ -2976,7 +2976,7 @@ static void CB2_InGameTrade(void)
LoadTradeMonPic(TRADE_PARTNER, 1);
FillWindowPixelBuffer(0, PIXEL_FILL(15));
PutWindowTilemap(0);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
gMain.state++;
break;
case 9:
@@ -3398,7 +3398,7 @@ static bool8 AnimateTradeSequenceCable(void)
DrawTextOnTradeWindow(0, gStringVar4, 0);
if (sTradeData->monSpecies[TRADE_PLAYER] != SPECIES_EGG)
- PlayCry1(sTradeData->monSpecies[TRADE_PLAYER], 0);
+ PlayCry_Normal(sTradeData->monSpecies[TRADE_PLAYER], 0);
sTradeData->state = TS_STATE_BYE_BYE;
sTradeData->timer = 0;
@@ -3433,7 +3433,7 @@ static bool8 AnimateTradeSequenceCable(void)
{
SetTradeSequenceBgGpuRegs(4);
FillWindowPixelBuffer(0, PIXEL_FILL(15));
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
sTradeData->state++;
}
break;
@@ -3869,7 +3869,7 @@ static bool8 AnimateTradeSequenceWireless(void)
DrawTextOnTradeWindow(0, gStringVar4, 0);
if (sTradeData->monSpecies[TRADE_PLAYER] != SPECIES_EGG)
- PlayCry1(sTradeData->monSpecies[TRADE_PLAYER], 0);
+ PlayCry_Normal(sTradeData->monSpecies[TRADE_PLAYER], 0);
sTradeData->state = TS_STATE_BYE_BYE;
sTradeData->timer = 0;
@@ -3904,7 +3904,7 @@ static bool8 AnimateTradeSequenceWireless(void)
{
SetTradeSequenceBgGpuRegs(4);
FillWindowPixelBuffer(0, PIXEL_FILL(15));
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
sTradeData->state++;
}
break;
@@ -4654,30 +4654,29 @@ static void CB2_SaveAndEndTrade(void)
MysteryGift_TryIncrementStat(CARD_STAT_NUM_TRADES, gLinkPlayers[GetMultiplayerId() ^ 1].trainerId);
SetContinueGameWarpStatusToDynamicWarp();
- sub_8153380();
+ LinkFullSave_Init();
gMain.state++;
sTradeData->timer = 0;
break;
case 51:
if (++sTradeData->timer == 5)
- {
gMain.state++;
- }
break;
case 52:
- if (sub_81533AC())
+ if (LinkFullSave_WriteSector())
{
ClearContinueGameWarpStatus2();
gMain.state = 4;
}
else
{
+ // Save isn't finished, delay again
sTradeData->timer = 0;
gMain.state = 51;
}
break;
case 4:
- sub_81533E0();
+ LinkFullSave_ReplaceLastSector();
gMain.state = 40;
sTradeData->timer = 0;
break;
@@ -4709,7 +4708,7 @@ static void CB2_SaveAndEndTrade(void)
case 42:
if (_IsLinkTaskFinished())
{
- sub_8153408();
+ LinkFullSave_SetLastSectorSecurity();
gMain.state = 5;
}
break;
@@ -4834,7 +4833,7 @@ void DrawTextOnTradeWindow(u8 windowId, const u8 *str, u8 speed)
sTradeData->textColors[1] = TEXT_COLOR_WHITE;
sTradeData->textColors[2] = TEXT_COLOR_GREEN;
AddTextPrinterParameterized4(windowId, FONT_NORMAL, 0, 2, 0, 0, sTradeData->textColors, speed, str);
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_FULL);
}
#define idx data[0]
@@ -4965,7 +4964,7 @@ static void CB2_SaveAndEndWirelessTrade(void)
StringExpandPlaceholders(gStringVar4, gText_SavingDontTurnOffPower);
DrawTextOnTradeWindow(0, gStringVar4, 0);
IncrementGameStat(GAME_STAT_POKEMON_TRADES);
- sub_8153380();
+ LinkFullSave_Init();
sTradeData->timer = 0;
}
break;
@@ -4974,7 +4973,7 @@ static void CB2_SaveAndEndWirelessTrade(void)
gMain.state = 4;
break;
case 4:
- if (sub_81533AC())
+ if (LinkFullSave_WriteSector())
{
gMain.state = 5;
}
@@ -4985,7 +4984,7 @@ static void CB2_SaveAndEndWirelessTrade(void)
}
break;
case 5:
- sub_81533E0();
+ LinkFullSave_ReplaceLastSector();
gMain.state = 6;
sTradeData->timer = 0;
break;
@@ -5013,7 +5012,7 @@ static void CB2_SaveAndEndWirelessTrade(void)
case 8:
if (_IsLinkTaskFinished())
{
- sub_8153408();
+ LinkFullSave_SetLastSectorSecurity();
gMain.state = 9;
}
break;
diff --git a/src/trader.c b/src/trader.c
index c65d5ff87..1d4424e75 100644
--- a/src/trader.c
+++ b/src/trader.c
@@ -82,7 +82,7 @@ void CreateAvailableDecorationsMenu(u8 taskId)
AddTextPrinterParameterized(data[3], FONT_NORMAL, gDecorations[trader->decorations[i]].name, 8, 16 * i + 1, 255, NULL);
}
AddTextPrinterParameterized(data[3], FONT_NORMAL, gText_Exit, 8, 16 * i + 1, 255, NULL);
- InitMenuInUpperLeftCornerPlaySoundWhenAPressed(data[3], 5, 0);
+ InitMenuInUpperLeftCornerNormal(data[3], 5, 0);
ScheduleBgCopyTilemapToVram(0);
}
diff --git a/src/trainer_card.c b/src/trainer_card.c
index 6ebd61576..264f15742 100755
--- a/src/trainer_card.c
+++ b/src/trainer_card.c
@@ -498,7 +498,7 @@ static void Task_TrainerCard(u8 taskId)
SetCloseLinkCallback();
DrawDialogueFrame(0, 1);
AddTextPrinterParameterized(0, FONT_NORMAL, gText_WaitingTrainerFinishReading, 0, 1, 255, 0);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
sData->mainState = STATE_CLOSE_CARD_LINK;
break;
case STATE_CLOSE_CARD_LINK:
@@ -884,14 +884,14 @@ static void InitBgsAndWindows(void)
{
ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, sTrainerCardBgTemplates, ARRAY_COUNT(sTrainerCardBgTemplates));
- ChangeBgX(0, 0, 0);
- ChangeBgY(0, 0, 0);
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
- ChangeBgX(2, 0, 0);
- ChangeBgY(2, 0, 0);
- ChangeBgX(3, 0, 0);
- ChangeBgY(3, 0, 0);
+ ChangeBgX(0, 0, BG_COORD_SET);
+ ChangeBgY(0, 0, BG_COORD_SET);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
+ ChangeBgX(2, 0, BG_COORD_SET);
+ ChangeBgY(2, 0, BG_COORD_SET);
+ ChangeBgX(3, 0, BG_COORD_SET);
+ ChangeBgY(3, 0, BG_COORD_SET);
InitWindows(sTrainerCardWindowTemplates);
DeactivateAllTextPrinters();
LoadMessageBoxAndBorderGfx();
@@ -1001,9 +1001,9 @@ static void PrintNameOnCardFront(void)
StringCopy(txtPtr, sData->trainerCard.playerName);
ConvertInternationalString(txtPtr, sData->language);
if (sData->cardType == CARD_TYPE_FRLG)
- AddTextPrinterParameterized3(1, FONT_NORMAL, 20, 28, sTrainerCardTextColors, TEXT_SPEED_FF, buffer);
+ AddTextPrinterParameterized3(1, FONT_NORMAL, 20, 28, sTrainerCardTextColors, TEXT_SKIP_DRAW, buffer);
else
- AddTextPrinterParameterized3(1, FONT_NORMAL, 16, 33, sTrainerCardTextColors, TEXT_SPEED_FF, buffer);
+ AddTextPrinterParameterized3(1, FONT_NORMAL, 16, 33, sTrainerCardTextColors, TEXT_SKIP_DRAW, buffer);
}
static void PrintIdOnCard(void)
@@ -1025,7 +1025,7 @@ static void PrintIdOnCard(void)
top = 9;
}
- AddTextPrinterParameterized3(1, FONT_NORMAL, xPos, top, sTrainerCardTextColors, TEXT_SPEED_FF, buffer);
+ AddTextPrinterParameterized3(1, FONT_NORMAL, xPos, top, sTrainerCardTextColors, TEXT_SKIP_DRAW, buffer);
}
static void PrintMoneyOnCard(void)
@@ -1034,9 +1034,9 @@ static void PrintMoneyOnCard(void)
u8 top;
if (!sData->isHoenn)
- AddTextPrinterParameterized3(1, FONT_NORMAL, 20, 56, sTrainerCardTextColors, TEXT_SPEED_FF, gText_TrainerCardMoney);
+ AddTextPrinterParameterized3(1, FONT_NORMAL, 20, 56, sTrainerCardTextColors, TEXT_SKIP_DRAW, gText_TrainerCardMoney);
else
- AddTextPrinterParameterized3(1, FONT_NORMAL, 16, 57, sTrainerCardTextColors, TEXT_SPEED_FF, gText_TrainerCardMoney);
+ AddTextPrinterParameterized3(1, FONT_NORMAL, 16, 57, sTrainerCardTextColors, TEXT_SKIP_DRAW, gText_TrainerCardMoney);
ConvertIntToDecimalStringN(gStringVar1, sData->trainerCard.money, STR_CONV_MODE_LEFT_ALIGN, 6);
StringExpandPlaceholders(gStringVar4, gText_PokedollarVar1);
@@ -1050,7 +1050,7 @@ static void PrintMoneyOnCard(void)
xOffset = GetStringRightAlignXOffset(FONT_NORMAL, gStringVar4, 128);
top = 57;
}
- AddTextPrinterParameterized3(1, FONT_NORMAL, xOffset, top, sTrainerCardTextColors, TEXT_SPEED_FF, gStringVar4);
+ AddTextPrinterParameterized3(1, FONT_NORMAL, xOffset, top, sTrainerCardTextColors, TEXT_SKIP_DRAW, gStringVar4);
}
static u16 GetCaughtMonsCount(void)
@@ -1068,9 +1068,9 @@ static void PrintPokedexOnCard(void)
if (FlagGet(FLAG_SYS_POKEDEX_GET))
{
if (!sData->isHoenn)
- AddTextPrinterParameterized3(1, FONT_NORMAL, 20, 72, sTrainerCardTextColors, TEXT_SPEED_FF, gText_TrainerCardPokedex);
+ AddTextPrinterParameterized3(1, FONT_NORMAL, 20, 72, sTrainerCardTextColors, TEXT_SKIP_DRAW, gText_TrainerCardPokedex);
else
- AddTextPrinterParameterized3(1, FONT_NORMAL, 16, 73, sTrainerCardTextColors, TEXT_SPEED_FF, gText_TrainerCardPokedex);
+ AddTextPrinterParameterized3(1, FONT_NORMAL, 16, 73, sTrainerCardTextColors, TEXT_SKIP_DRAW, gText_TrainerCardPokedex);
StringCopy(ConvertIntToDecimalStringN(gStringVar4, sData->trainerCard.caughtMonsCount, STR_CONV_MODE_LEFT_ALIGN, 3), gText_EmptyString6);
if (!sData->isHoenn)
{
@@ -1082,7 +1082,7 @@ static void PrintPokedexOnCard(void)
xOffset = GetStringRightAlignXOffset(FONT_NORMAL, gStringVar4, 128);
top = 73;
}
- AddTextPrinterParameterized3(1, FONT_NORMAL, xOffset, top, sTrainerCardTextColors, TEXT_SPEED_FF, gStringVar4);
+ AddTextPrinterParameterized3(1, FONT_NORMAL, xOffset, top, sTrainerCardTextColors, TEXT_SKIP_DRAW, gStringVar4);
}
}
@@ -1096,9 +1096,9 @@ static void PrintTimeOnCard(void)
u32 x, y, totalWidth;
if (!sData->isHoenn)
- AddTextPrinterParameterized3(1, FONT_NORMAL, 20, 88, sTrainerCardTextColors, TEXT_SPEED_FF, gText_TrainerCardTime);
+ AddTextPrinterParameterized3(1, FONT_NORMAL, 20, 88, sTrainerCardTextColors, TEXT_SKIP_DRAW, gText_TrainerCardTime);
else
- AddTextPrinterParameterized3(1, FONT_NORMAL, 16, 89, sTrainerCardTextColors, TEXT_SPEED_FF, gText_TrainerCardTime);
+ AddTextPrinterParameterized3(1, FONT_NORMAL, 16, 89, sTrainerCardTextColors, TEXT_SKIP_DRAW, gText_TrainerCardTime);
if (sData->isLink)
{
@@ -1132,12 +1132,12 @@ static void PrintTimeOnCard(void)
FillWindowPixelRect(1, PIXEL_FILL(0), x, y, totalWidth, 15);
ConvertIntToDecimalStringN(gStringVar4, hours, STR_CONV_MODE_RIGHT_ALIGN, 3);
- AddTextPrinterParameterized3(1, FONT_NORMAL, x, y, sTrainerCardTextColors, TEXT_SPEED_FF, gStringVar4);
+ AddTextPrinterParameterized3(1, FONT_NORMAL, x, y, sTrainerCardTextColors, TEXT_SKIP_DRAW, gStringVar4);
x += 18;
- AddTextPrinterParameterized3(1, FONT_NORMAL, x, y, sTimeColonTextColors[sData->timeColonInvisible], TEXT_SPEED_FF, gText_Colon2);
+ AddTextPrinterParameterized3(1, FONT_NORMAL, x, y, sTimeColonTextColors[sData->timeColonInvisible], TEXT_SKIP_DRAW, gText_Colon2);
x += width;
ConvertIntToDecimalStringN(gStringVar4, minutes, STR_CONV_MODE_LEADING_ZEROS, 2);
- AddTextPrinterParameterized3(1, FONT_NORMAL, x, y, sTrainerCardTextColors, TEXT_SPEED_FF, gStringVar4);
+ AddTextPrinterParameterized3(1, FONT_NORMAL, x, y, sTrainerCardTextColors, TEXT_SKIP_DRAW, gStringVar4);
}
static void PrintProfilePhraseOnCard(void)
@@ -1147,10 +1147,10 @@ static void PrintProfilePhraseOnCard(void)
if (sData->isLink)
{
- AddTextPrinterParameterized3(1, FONT_NORMAL, 8, yOffsetsLine1[sData->isHoenn], sTrainerCardTextColors, TEXT_SPEED_FF, sData->easyChatProfile[0]);
- AddTextPrinterParameterized3(1, FONT_NORMAL, GetStringWidth(FONT_NORMAL, sData->easyChatProfile[0], 0) + 14, yOffsetsLine1[sData->isHoenn], sTrainerCardTextColors, TEXT_SPEED_FF, sData->easyChatProfile[1]);
- AddTextPrinterParameterized3(1, FONT_NORMAL, 8, yOffsetsLine2[sData->isHoenn], sTrainerCardTextColors, TEXT_SPEED_FF, sData->easyChatProfile[2]);
- AddTextPrinterParameterized3(1, FONT_NORMAL, GetStringWidth(FONT_NORMAL, sData->easyChatProfile[2], 0) + 14, yOffsetsLine2[sData->isHoenn], sTrainerCardTextColors, TEXT_SPEED_FF, sData->easyChatProfile[3]);
+ AddTextPrinterParameterized3(1, FONT_NORMAL, 8, yOffsetsLine1[sData->isHoenn], sTrainerCardTextColors, TEXT_SKIP_DRAW, sData->easyChatProfile[0]);
+ AddTextPrinterParameterized3(1, FONT_NORMAL, GetStringWidth(FONT_NORMAL, sData->easyChatProfile[0], 0) + 14, yOffsetsLine1[sData->isHoenn], sTrainerCardTextColors, TEXT_SKIP_DRAW, sData->easyChatProfile[1]);
+ AddTextPrinterParameterized3(1, FONT_NORMAL, 8, yOffsetsLine2[sData->isHoenn], sTrainerCardTextColors, TEXT_SKIP_DRAW, sData->easyChatProfile[2]);
+ AddTextPrinterParameterized3(1, FONT_NORMAL, GetStringWidth(FONT_NORMAL, sData->easyChatProfile[2], 0) + 14, yOffsetsLine2[sData->isHoenn], sTrainerCardTextColors, TEXT_SKIP_DRAW, sData->easyChatProfile[3]);
}
}
@@ -1168,9 +1168,9 @@ static void BufferNameForCardBack(void)
static void PrintNameOnCardBack(void)
{
if (!sData->isHoenn)
- AddTextPrinterParameterized3(1, FONT_NORMAL, 136, 9, sTrainerCardTextColors, TEXT_SPEED_FF, sData->textPlayersCard);
+ AddTextPrinterParameterized3(1, FONT_NORMAL, 136, 9, sTrainerCardTextColors, TEXT_SKIP_DRAW, sData->textPlayersCard);
else
- AddTextPrinterParameterized3(1, FONT_NORMAL, GetStringRightAlignXOffset(FONT_NORMAL, sData->textPlayersCard, 216), 9, sTrainerCardTextColors, TEXT_SPEED_FF, sData->textPlayersCard);
+ AddTextPrinterParameterized3(1, FONT_NORMAL, GetStringRightAlignXOffset(FONT_NORMAL, sData->textPlayersCard, 216), 9, sTrainerCardTextColors, TEXT_SKIP_DRAW, sData->textPlayersCard);
}
static const u8 sText_HofTime[] = _("{STR_VAR_1}:{STR_VAR_2}:{STR_VAR_3}");
@@ -1191,8 +1191,8 @@ static void PrintStatOnBackOfCard(u8 top, const u8* statName, u8* stat, const u8
static const u8 xOffsets[] = {8, 16};
static const u8 widths[] = {216, 216};
- AddTextPrinterParameterized3(1, FONT_NORMAL, xOffsets[sData->isHoenn], top * 16 + 33, sTrainerCardTextColors, TEXT_SPEED_FF, statName);
- AddTextPrinterParameterized3(1, FONT_NORMAL, GetStringRightAlignXOffset(FONT_NORMAL, stat, widths[sData->isHoenn]), top * 16 + 33, color, TEXT_SPEED_FF, stat);
+ AddTextPrinterParameterized3(1, FONT_NORMAL, xOffsets[sData->isHoenn], top * 16 + 33, sTrainerCardTextColors, TEXT_SKIP_DRAW, statName);
+ AddTextPrinterParameterized3(1, FONT_NORMAL, GetStringRightAlignXOffset(FONT_NORMAL, stat, widths[sData->isHoenn]), top * 16 + 33, color, TEXT_SKIP_DRAW, stat);
}
static void PrintHofDebutTimeOnCard(void)
@@ -1408,7 +1408,7 @@ static void LoadStickerGfx(void)
static void DrawTrainerCardWindow(u8 windowId)
{
PutWindowTilemap(windowId);
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_FULL);
}
static u8 SetCardBgsAndPals(void)
diff --git a/src/trainer_hill.c b/src/trainer_hill.c
index 621f81133..2c34f196e 100644
--- a/src/trainer_hill.c
+++ b/src/trainer_hill.c
@@ -591,12 +591,12 @@ void PrintOnTrainerHillRecordsWindow(void)
SetUpDataStruct();
FillWindowPixelBuffer(0, PIXEL_FILL(0));
x = GetStringCenterAlignXOffset(FONT_NORMAL, gText_TimeBoard, 0xD0);
- AddTextPrinterParameterized3(0, FONT_NORMAL, x, 2, sRecordWinColors, TEXT_SPEED_FF, gText_TimeBoard);
+ AddTextPrinterParameterized3(0, FONT_NORMAL, x, 2, sRecordWinColors, TEXT_SKIP_DRAW, gText_TimeBoard);
y = 18;
for (i = 0; i < 4; i++)
{
- AddTextPrinterParameterized3(0, FONT_NORMAL, 0, y, sRecordWinColors, TEXT_SPEED_FF, sTagMatchStrings[i]);
+ AddTextPrinterParameterized3(0, FONT_NORMAL, 0, y, sRecordWinColors, TEXT_SKIP_DRAW, sTagMatchStrings[i]);
y += 15;
total = GetTimerValue(&gSaveBlock1Ptr->trainerHillTimes[i]);
minutes = total / (60 * 60);
@@ -609,12 +609,12 @@ void PrintOnTrainerHillRecordsWindow(void)
ConvertIntToDecimalStringN(gStringVar3, secondsFraction, STR_CONV_MODE_LEADING_ZEROS, 2);
StringExpandPlaceholders(StringCopy(gStringVar4, gText_TimeCleared), gText_XMinYDotZSec);
x = GetStringRightAlignXOffset(FONT_NORMAL, gStringVar4, 0xD0);
- AddTextPrinterParameterized3(0, FONT_NORMAL, x, y, sRecordWinColors, TEXT_SPEED_FF, gStringVar4);
+ AddTextPrinterParameterized3(0, FONT_NORMAL, x, y, sRecordWinColors, TEXT_SKIP_DRAW, gStringVar4);
y += 17;
}
PutWindowTilemap(0);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
FreeDataStruct();
}
diff --git a/src/union_room.c b/src/union_room.c
index 5196c1cdb..1400a0b1d 100644
--- a/src/union_room.c
+++ b/src/union_room.c
@@ -306,7 +306,7 @@ static void PrintNumPlayersWaitingForMsg(u8 windowId, u8 capacityCode, u8 string
break;
}
- CopyWindowToVram(windowId, 2);
+ CopyWindowToVram(windowId, COPYWIN_GFX);
}
static void PrintPlayerNameAndIdOnWindow(u8 windowId)
@@ -434,7 +434,7 @@ static void Task_TryBecomeLinkLeader(u8 taskId)
FillWindowPixelBuffer(data->bButtonCancelWindowId, PIXEL_FILL(2));
PrintUnionRoomText(data->bButtonCancelWindowId, 0, sText_BButtonCancel, 8, 1, UR_COLOR_CANCEL);
PutWindowTilemap(data->bButtonCancelWindowId);
- CopyWindowToVram(data->bButtonCancelWindowId, 2);
+ CopyWindowToVram(data->bButtonCancelWindowId, COPYWIN_GFX);
DrawStdWindowFrame(data->listWindowId, FALSE);
gMultiuseListMenuTemplate = sListMenuTemplate_PossibleGroupMembers;
@@ -443,7 +443,7 @@ static void Task_TryBecomeLinkLeader(u8 taskId)
DrawStdWindowFrame(data->nPlayerModeWindowId, FALSE);
PutWindowTilemap(data->nPlayerModeWindowId);
- CopyWindowToVram(data->nPlayerModeWindowId, 2);
+ CopyWindowToVram(data->nPlayerModeWindowId, COPYWIN_GFX);
CopyBgTilemapBufferToVram(0);
data->playerCount = 1;
@@ -1014,7 +1014,7 @@ static void Task_TryJoinLinkGroup(u8 taskId)
FillWindowPixelBuffer(data->bButtonCancelWindowId, PIXEL_FILL(2));
PrintUnionRoomText(data->bButtonCancelWindowId, 0, sText_ChooseJoinCancel, 8, 1, UR_COLOR_CANCEL);
PutWindowTilemap(data->bButtonCancelWindowId);
- CopyWindowToVram(data->bButtonCancelWindowId, 2);
+ CopyWindowToVram(data->bButtonCancelWindowId, COPYWIN_GFX);
DrawStdWindowFrame(data->listWindowId, FALSE);
gMultiuseListMenuTemplate = sListMenuTemplate_UnionRoomGroups;
@@ -1024,7 +1024,7 @@ static void Task_TryJoinLinkGroup(u8 taskId)
DrawStdWindowFrame(data->playerNameAndIdWindowId, FALSE);
PutWindowTilemap(data->playerNameAndIdWindowId);
PrintPlayerNameAndIdOnWindow(data->playerNameAndIdWindowId);
- CopyWindowToVram(data->playerNameAndIdWindowId, 2);
+ CopyWindowToVram(data->playerNameAndIdWindowId, COPYWIN_GFX);
CopyBgTilemapBufferToVram(0);
data->leaderId = 0;
@@ -2131,7 +2131,7 @@ static void Task_CardOrNewsWithFriend(u8 taskId)
FillWindowPixelBuffer(data->playerNameAndIdWindowId, PIXEL_FILL(1));
PutWindowTilemap(data->playerNameAndIdWindowId);
PrintPlayerNameAndIdOnWindow(data->playerNameAndIdWindowId);
- CopyWindowToVram(data->playerNameAndIdWindowId, 2);
+ CopyWindowToVram(data->playerNameAndIdWindowId, COPYWIN_GFX);
CopyBgTilemapBufferToVram(0);
data->leaderId = 0;
@@ -3637,7 +3637,7 @@ static s8 UnionRoomHandleYesNo(u8 *state, bool32 noDraw)
case 1:
if (noDraw)
{
- sub_8198C78();
+ EraseYesNoWindow();
*state = 0;
return -3;
}
@@ -3658,7 +3658,7 @@ static u8 CreateTradeBoardWindow(const struct WindowTemplate * template)
DrawStdWindowFrame(windowId, FALSE);
FillWindowPixelBuffer(windowId, PIXEL_FILL(15));
PrintUnionRoomText(windowId, 1, sText_NameWantedOfferLv, 8, 1, UR_COLOR_TRADE_BOARD_OTHER);
- CopyWindowToVram(windowId, 2);
+ CopyWindowToVram(windowId, COPYWIN_GFX);
PutWindowTilemap(windowId);
return windowId;
}
@@ -3689,7 +3689,7 @@ static s32 ListMenuHandler_AllItemsAvailable(u8 *state, u8 *windowId, u8 *listMe
gMultiuseListMenuTemplate = *menuTemplate;
gMultiuseListMenuTemplate.windowId = *windowId;
*listMenuId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0);
- CopyWindowToVram(*windowId, TRUE);
+ CopyWindowToVram(*windowId, COPYWIN_MAP);
(*state)++;
break;
case 1:
@@ -3736,7 +3736,7 @@ static s32 TradeBoardMenuHandler(u8 *state, u8 *mainWindowId, u8 *listMenuId, u8
(*state)++;
break;
case 1:
- CopyWindowToVram(*mainWindowId, TRUE);
+ CopyWindowToVram(*mainWindowId, COPYWIN_MAP);
(*state)++;
break;
case 2:
@@ -3852,7 +3852,7 @@ static void PrintUnionRoomText(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y
break;
}
- AddTextPrinter(&printerTemplate, TEXT_SPEED_FF, NULL);
+ AddTextPrinter(&printerTemplate, TEXT_SKIP_DRAW, NULL);
}
static void ClearRfuPlayerList(struct RfuPlayer *players, u8 count)
diff --git a/src/union_room_battle.c b/src/union_room_battle.c
index 6c4dfc268..1ec8be77b 100644
--- a/src/union_room_battle.c
+++ b/src/union_room_battle.c
@@ -89,7 +89,7 @@ static bool32 PrintUnionRoomBattleMessage(s16 * state, const u8 * str, s32 speed
DrawTextBorderOuter(0, 0x001, 0xD);
AddTextPrinterForUnionRoomBattle(0, str, 0, 1, speed);
PutWindowTilemap(0);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
(*state)++;
break;
case 1:
diff --git a/src/union_room_chat.c b/src/union_room_chat.c
index abf517ef9..22268ef4a 100755
--- a/src/union_room_chat.c
+++ b/src/union_room_chat.c
@@ -2276,7 +2276,7 @@ static bool32 Display_ShowKeyboardSwapMenu(u8 *state)
{
case 0:
ShowKeyboardSwapMenu();
- CopyWindowToVram(3, 3);
+ CopyWindowToVram(3, COPYWIN_FULL);
break;
case 1:
return IsDma3ManagerBusyWithBgCopy();
@@ -2292,7 +2292,7 @@ static bool32 Display_HideKeyboardSwapMenu(u8 *state)
{
case 0:
HideKeyboardSwapMenu();
- CopyWindowToVram(3, 3);
+ CopyWindowToVram(3, COPYWIN_FULL);
break;
case 1:
return IsDma3ManagerBusyWithBgCopy();
@@ -2312,7 +2312,7 @@ static bool32 Display_SwitchPages(u8 *state)
return TRUE;
PrintCurrentKeyboardPage();
- CopyWindowToVram(2, 2);
+ CopyWindowToVram(2, COPYWIN_GFX);
break;
case 1:
if (IsDma3ManagerBusyWithBgCopy())
@@ -2345,7 +2345,7 @@ static bool32 Display_AskQuitChatting(u8 *state)
case 0:
AddStdMessageWindow(STDMESSAGE_QUIT_CHATTING, 0);
AddYesNoMenuAt(23, 11, 1);
- CopyWindowToVram(sDisplay->messageWindowId, 3);
+ CopyWindowToVram(sDisplay->messageWindowId, COPYWIN_FULL);
break;
case 1:
return IsDma3ManagerBusyWithBgCopy();
@@ -2389,7 +2389,7 @@ static bool32 Display_UpdateMessageBuffer(u8 *state)
FillTextEntryWindow(x, width, 0);
str = GetMessageEntryBuffer();
DrawTextEntryMessage(0, str, 3, 1, 2);
- CopyWindowToVram(1, 2);
+ CopyWindowToVram(1, COPYWIN_GFX);
break;
case 1:
if (!IsDma3ManagerBusyWithBgCopy())
@@ -2418,13 +2418,13 @@ static bool32 Display_AskRegisterText(u8 *state)
length = StringLength_Multibyte(str);
FillTextEntryWindow(x, length, PIXEL_FILL(6));
DrawTextEntryMessage(x, str, 0, 4, 5);
- CopyWindowToVram(1, 2);
+ CopyWindowToVram(1, COPYWIN_GFX);
break;
case 1:
if (!IsDma3ManagerBusyWithBgCopy())
{
AddStdMessageWindow(STDMESSAGE_REGISTER_WHERE, 16);
- CopyWindowToVram(sDisplay->messageWindowId, 3);
+ CopyWindowToVram(sDisplay->messageWindowId, COPYWIN_FULL);
}
else
{
@@ -2459,13 +2459,13 @@ static bool32 Display_CancelRegister(u8 *state)
length = StringLength_Multibyte(str);
FillTextEntryWindow(x, length, PIXEL_FILL(0));
DrawTextEntryMessage(x, str, 3, 1, 2);
- CopyWindowToVram(1, 2);
+ CopyWindowToVram(1, COPYWIN_GFX);
break;
case 1:
if (!IsDma3ManagerBusyWithBgCopy())
{
HideStdMessageWindow();
- CopyWindowToVram(sDisplay->messageWindowId, 3);
+ CopyWindowToVram(sDisplay->messageWindowId, COPYWIN_FULL);
}
else
{
@@ -2497,7 +2497,7 @@ static bool32 Display_ReturnToKeyboard(u8 *state)
{
case 0:
PrintCurrentKeyboardPage();
- CopyWindowToVram(2, 2);
+ CopyWindowToVram(2, COPYWIN_GFX);
(*state)++;
break;
case 1:
@@ -2523,7 +2523,7 @@ static bool32 Display_ScrollChat(u8 *state)
str = GetLastReceivedMessage();
colorIdx = GetReceivedPlayerIndex();
PrintChatMessage(row, str, colorIdx);
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
break;
case 1:
if (IsDma3ManagerBusyWithBgCopy())
@@ -2543,7 +2543,7 @@ static bool32 Display_ScrollChat(u8 *state)
// fall through
case 2:
ScrollWindow(0, 0, 5, PIXEL_FILL(1));
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
sDisplay->scrollCount++;
(*state)++;
// fall through
@@ -2588,7 +2588,7 @@ static bool32 Display_PrintInputText(u8 *state)
{
case 0:
AddStdMessageWindow(STDMESSAGE_INPUT_TEXT, 16);
- CopyWindowToVram(sDisplay->messageWindowId, 3);
+ CopyWindowToVram(sDisplay->messageWindowId, COPYWIN_FULL);
(*state)++;
break;
case 1:
@@ -2604,7 +2604,7 @@ static bool32 Display_PrintExitingChat(u8 *state)
{
case 0:
AddStdMessageWindow(STDMESSAGE_EXITING_CHAT, 0);
- CopyWindowToVram(sDisplay->messageWindowId, 3);
+ CopyWindowToVram(sDisplay->messageWindowId, COPYWIN_FULL);
(*state)++;
break;
case 1:
@@ -2625,7 +2625,7 @@ static bool32 Display_PrintLeaderLeft(u8 *state)
str = GetChatHostName();
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, str);
AddStdMessageWindow(STDMESSAGE_LEADER_LEFT, 0);
- CopyWindowToVram(sDisplay->messageWindowId, 3);
+ CopyWindowToVram(sDisplay->messageWindowId, COPYWIN_FULL);
(*state)++;
break;
case 1:
@@ -2642,7 +2642,7 @@ static bool32 Display_AskSave(u8 *state)
case 0:
AddStdMessageWindow(STDMESSAGE_ASK_SAVE, 0);
AddYesNoMenuAt(23, 10, 1);
- CopyWindowToVram(sDisplay->messageWindowId, 3);
+ CopyWindowToVram(sDisplay->messageWindowId, COPYWIN_FULL);
(*state)++;
break;
case 1:
@@ -2659,7 +2659,7 @@ static bool32 Display_AskOverwriteSave(u8 *state)
case 0:
AddStdMessageWindow(STDMESSAGE_ASK_OVERWRITE, 0);
AddYesNoMenuAt(23, 10, 1);
- CopyWindowToVram(sDisplay->messageWindowId, 3);
+ CopyWindowToVram(sDisplay->messageWindowId, COPYWIN_FULL);
(*state)++;
break;
case 1:
@@ -2675,7 +2675,7 @@ static bool32 Display_PrintSavingDontTurnOff(u8 *state)
{
case 0:
AddStdMessageWindow(STDMESSAGE_SAVING_NO_OFF, 0);
- CopyWindowToVram(sDisplay->messageWindowId, 3);
+ CopyWindowToVram(sDisplay->messageWindowId, COPYWIN_FULL);
(*state)++;
break;
case 1:
@@ -2693,7 +2693,7 @@ static bool32 Display_PrintSavedTheGame(u8 *state)
DynamicPlaceholderTextUtil_Reset();
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gSaveBlock2Ptr->playerName);
AddStdMessageWindow(STDMESSAGE_SAVED_THE_GAME, 0);
- CopyWindowToVram(sDisplay->messageWindowId, 3);
+ CopyWindowToVram(sDisplay->messageWindowId, COPYWIN_FULL);
(*state)++;
break;
case 1:
@@ -2710,7 +2710,7 @@ static bool32 Display_AskConfirmLeaderLeave(u8 *state)
case 0:
AddStdMessageWindow(STDMESSAGE_WARN_LEADER_LEAVE, 0);
AddYesNoMenuAt(23, 10, 1);
- CopyWindowToVram(sDisplay->messageWindowId, 3);
+ CopyWindowToVram(sDisplay->messageWindowId, COPYWIN_FULL);
(*state)++;
break;
case 1:
@@ -2740,10 +2740,10 @@ static void AddYesNoMenuAt(u8 left, u8 top, u8 initialCursorPos)
{
FillWindowPixelBuffer(sDisplay->yesNoMenuWindowId, PIXEL_FILL(1));
PutWindowTilemap(sDisplay->yesNoMenuWindowId);
- AddTextPrinterParameterized(sDisplay->yesNoMenuWindowId, FONT_NORMAL, gText_Yes, 8, 1, TEXT_SPEED_FF, NULL);
- AddTextPrinterParameterized(sDisplay->yesNoMenuWindowId, FONT_NORMAL, gText_No, 8, 17, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(sDisplay->yesNoMenuWindowId, FONT_NORMAL, gText_Yes, 8, 1, TEXT_SKIP_DRAW, NULL);
+ AddTextPrinterParameterized(sDisplay->yesNoMenuWindowId, FONT_NORMAL, gText_No, 8, 17, TEXT_SKIP_DRAW, NULL);
DrawTextBorderOuter(sDisplay->yesNoMenuWindowId, 1, 13);
- InitMenuInUpperLeftCornerPlaySoundWhenAPressed(sDisplay->yesNoMenuWindowId, 2, initialCursorPos);
+ InitMenuInUpperLeftCornerNormal(sDisplay->yesNoMenuWindowId, 2, initialCursorPos);
}
}
@@ -2803,7 +2803,7 @@ static void AddStdMessageWindow(int msgId, u16 bg0vofs)
str = sDisplayStdMessages[msgId].text;
}
- ChangeBgY(0, bg0vofs * 256, 0);
+ ChangeBgY(0, bg0vofs * 256, BG_COORD_SET);
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
PutWindowTilemap(windowId);
if (sDisplayStdMessages[msgId].boxType == 1)
@@ -2815,7 +2815,7 @@ static void AddStdMessageWindow(int msgId, u16 bg0vofs)
str,
sDisplayStdMessages[msgId].x + 8,
sDisplayStdMessages[msgId].y + 8,
- TEXT_SPEED_FF,
+ TEXT_SKIP_DRAW,
NULL,
sDisplayStdMessages[msgId].letterSpacing,
sDisplayStdMessages[msgId].lineSpacing);
@@ -2829,7 +2829,7 @@ static void AddStdMessageWindow(int msgId, u16 bg0vofs)
str,
sDisplayStdMessages[msgId].x,
sDisplayStdMessages[msgId].y,
- TEXT_SPEED_FF,
+ TEXT_SKIP_DRAW,
NULL,
sDisplayStdMessages[msgId].letterSpacing,
sDisplayStdMessages[msgId].lineSpacing);
@@ -2846,7 +2846,7 @@ static void HideStdMessageWindow(void)
ClearWindowTilemap(sDisplay->messageWindowId);
}
- ChangeBgY(0, 0, 0);
+ ChangeBgY(0, 0, BG_COORD_SET);
}
static void DestroyStdMessageWindow(void)
@@ -2877,7 +2877,7 @@ static void DrawTextEntryMessage(u16 x, u8 *str, u8 bgColor, u8 fgColor, u8 shad
strBuffer[1] = EXT_CTRL_CODE_MIN_LETTER_SPACING;
strBuffer[2] = 8;
StringCopy(&strBuffer[3], str);
- AddTextPrinterParameterized3(1, FONT_SHORT, x * 8, 1, color, TEXT_SPEED_FF, strBuffer);
+ AddTextPrinterParameterized3(1, FONT_SHORT, x * 8, 1, color, TEXT_SKIP_DRAW, strBuffer);
}
static void PrintCurrentKeyboardPage(void)
@@ -2912,7 +2912,7 @@ static void PrintCurrentKeyboardPage(void)
return;
StringCopy(&str[3], sUnionRoomKeyboardText[page][i]);
- AddTextPrinterParameterized3(2, FONT_SMALL, left, top, color, TEXT_SPEED_FF, str);
+ AddTextPrinterParameterized3(2, FONT_SMALL, left, top, color, TEXT_SKIP_DRAW, str);
}
}
else
@@ -2923,7 +2923,7 @@ static void PrintCurrentKeyboardPage(void)
str2 = GetRegisteredTextByRow(i);
if (GetStringWidth(FONT_SMALL, str2, 0) <= 40)
{
- AddTextPrinterParameterized3(2, FONT_SMALL, left, top, color, TEXT_SPEED_FF, str2);
+ AddTextPrinterParameterized3(2, FONT_SMALL, left, top, color, TEXT_SKIP_DRAW, str2);
}
else
{
@@ -2934,8 +2934,8 @@ static void PrintCurrentKeyboardPage(void)
StringCopyN_Multibyte(str, str2, length);
} while (GetStringWidth(FONT_SMALL, str, 0) > 35);
- AddTextPrinterParameterized3(2, FONT_SMALL, left, top, color, TEXT_SPEED_FF, str);
- AddTextPrinterParameterized3(2, FONT_SMALL, left + 35, top, color, TEXT_SPEED_FF, sText_Ellipsis);
+ AddTextPrinterParameterized3(2, FONT_SMALL, left, top, color, TEXT_SKIP_DRAW, str);
+ AddTextPrinterParameterized3(2, FONT_SMALL, left + 35, top, color, TEXT_SKIP_DRAW, sText_Ellipsis);
}
}
}
@@ -2987,8 +2987,8 @@ static void ShowKeyboardSwapMenu(void)
{
FillWindowPixelBuffer(3, PIXEL_FILL(1));
DrawTextBorderOuter(3, 1, 13);
- PrintTextArray(3, FONT_SHORT, 8, 1, 14, 5, sKeyboardPageTitleTexts);
- sub_81983AC(3, FONT_SHORT, 0, 1, 14, 5, GetCurrentKeyboardPage());
+ PrintMenuActionTextsAtPos(3, FONT_SHORT, 8, 1, 14, 5, sKeyboardPageTitleTexts);
+ InitMenuNormal(3, FONT_SHORT, 0, 1, 14, 5, GetCurrentKeyboardPage());
PutWindowTilemap(3);
}
@@ -3006,19 +3006,19 @@ static void PrintChatMessage(u16 row, u8 *str, u8 colorIdx)
color[1] = colorIdx * 2 + 2;
color[2] = colorIdx * 2 + 3;
FillWindowPixelRect(0, PIXEL_FILL(1), 0, row * 15, 168, 15);
- AddTextPrinterParameterized3(0, FONT_SHORT, 0, row * 15 + 1, color, TEXT_SPEED_FF, str);
+ AddTextPrinterParameterized3(0, FONT_SHORT, 0, row * 15 + 1, color, TEXT_SKIP_DRAW, str);
}
static void ResetGpuBgState(void)
{
- ChangeBgX(0, 0, 0);
- ChangeBgY(0, 0, 0);
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
- ChangeBgX(2, 0, 0);
- ChangeBgY(2, 0, 0);
- ChangeBgX(3, 0, 0);
- ChangeBgY(3, 0, 0);
+ ChangeBgX(0, 0, BG_COORD_SET);
+ ChangeBgY(0, 0, BG_COORD_SET);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
+ ChangeBgX(2, 0, BG_COORD_SET);
+ ChangeBgY(2, 0, BG_COORD_SET);
+ ChangeBgX(3, 0, BG_COORD_SET);
+ ChangeBgY(3, 0, BG_COORD_SET);
ShowBg(0);
ShowBg(1);
ShowBg(2);
@@ -3085,14 +3085,14 @@ static void LoadChatMessagesWindow(void)
LoadPalette(sUnk_Palette2, 0xF0, sizeof(sUnk_Palette2));
PutWindowTilemap(0);
FillWindowPixelBuffer(0, PIXEL_FILL(1));
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_FULL);
}
static void LoadKeyboardWindow(void)
{
PutWindowTilemap(2);
PrintCurrentKeyboardPage();
- CopyWindowToVram(2, 3);
+ CopyWindowToVram(2, COPYWIN_FULL);
}
static void LoadTextEntryWindow(void)
@@ -3107,7 +3107,7 @@ static void LoadTextEntryWindow(void)
FillWindowPixelBuffer(1, PIXEL_FILL(0));
PutWindowTilemap(1);
- CopyWindowToVram(1, 3);
+ CopyWindowToVram(1, COPYWIN_FULL);
}
static void LoadKeyboardSwapWindow(void)
diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c
index dcfc27d91..9f8918ba2 100644
--- a/src/use_pokeblock.c
+++ b/src/use_pokeblock.c
@@ -878,7 +878,7 @@ static void AskUsePokeblock(void)
DrawTextBorderOuter(WIN_TEXT, 151, 14);
AddTextPrinterParameterized(WIN_TEXT, FONT_NORMAL, gStringVar4, 0, 1, 0, NULL);
PutWindowTilemap(WIN_TEXT);
- CopyWindowToVram(WIN_TEXT, 3);
+ CopyWindowToVram(WIN_TEXT, COPYWIN_FULL);
CreateYesNoMenu(&sUsePokeblockYesNoWinTemplate, 151, 14, 0);
}
@@ -919,7 +919,7 @@ static void PrintFirstEnhancement(void)
PrintMenuWindowText(gStringVar4);
PutWindowTilemap(WIN_TEXT);
- CopyWindowToVram(WIN_TEXT, 3);
+ CopyWindowToVram(WIN_TEXT, COPYWIN_FULL);
}
static bool8 TryPrintNextEnhancement(void)
@@ -943,7 +943,7 @@ static bool8 TryPrintNextEnhancement(void)
BufferEnhancedStatText(gStringVar4, sInfo->statId, sInfo->enhancements[sInfo->statId]);
PrintMenuWindowText(gStringVar4);
- CopyWindowToVram(WIN_TEXT, 2);
+ CopyWindowToVram(WIN_TEXT, COPYWIN_GFX);
return TRUE;
}
@@ -954,14 +954,14 @@ static void PrintWontEatAnymore(void)
DrawTextBorderOuter(WIN_TEXT, 151, 14);
AddTextPrinterParameterized(WIN_TEXT, FONT_NORMAL, gText_WontEatAnymore, 0, 1, 0, NULL);
PutWindowTilemap(WIN_TEXT);
- CopyWindowToVram(WIN_TEXT, 3);
+ CopyWindowToVram(WIN_TEXT, COPYWIN_FULL);
}
static void EraseMenuWindow(void)
{
rbox_fill_rectangle(WIN_TEXT);
ClearWindowTilemap(WIN_TEXT);
- CopyWindowToVram(WIN_TEXT, 3);
+ CopyWindowToVram(WIN_TEXT, COPYWIN_FULL);
}
static void PrintMenuWindowText(const u8 *message)
@@ -1316,14 +1316,14 @@ static bool8 LoadUsePokeblockMenuGfx(void)
switch (sMenu->info.helperState)
{
case 0:
- ChangeBgX(0, 0, 0);
- ChangeBgY(0, 0, 0);
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
- ChangeBgX(2, 0, 0);
- ChangeBgY(2, 0, 0);
- ChangeBgX(3, 0, 0);
- ChangeBgY(3, 136 << 6, 0);
+ ChangeBgX(0, 0, BG_COORD_SET);
+ ChangeBgY(0, 0, BG_COORD_SET);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
+ ChangeBgX(2, 0, BG_COORD_SET);
+ ChangeBgY(2, 0, BG_COORD_SET);
+ ChangeBgX(3, 0, BG_COORD_SET);
+ ChangeBgY(3, 136 << 6, BG_COORD_SET);
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON | DISPCNT_WIN1_ON);
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1);
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4));
@@ -1399,13 +1399,13 @@ static void UpdateMonInfoText(u16 loadId, bool8 firstPrint)
if (firstPrint)
{
- CopyWindowToVram(WIN_NAME, 3);
- CopyWindowToVram(WIN_NATURE, 3);
+ CopyWindowToVram(WIN_NAME, COPYWIN_FULL);
+ CopyWindowToVram(WIN_NATURE, COPYWIN_FULL);
}
else
{
- CopyWindowToVram(WIN_NAME, 2);
- CopyWindowToVram(WIN_NATURE, 2);
+ CopyWindowToVram(WIN_NAME, COPYWIN_GFX);
+ CopyWindowToVram(WIN_NATURE, COPYWIN_GFX);
}
}
diff --git a/src/wallclock.c b/src/wallclock.c
index 407c89c49..759b1d11f 100644
--- a/src/wallclock.c
+++ b/src/wallclock.c
@@ -628,14 +628,14 @@ static void LoadWallClockGraphics(void)
SetGpuReg(REG_OFFSET_BG2CNT, 0);
SetGpuReg(REG_OFFSET_BG1CNT, 0);
SetGpuReg(REG_OFFSET_BG0CNT, 0);
- ChangeBgX(0, 0, 0);
- ChangeBgY(0, 0, 0);
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
- ChangeBgX(2, 0, 0);
- ChangeBgY(2, 0, 0);
- ChangeBgX(3, 0, 0);
- ChangeBgY(3, 0, 0);
+ ChangeBgX(0, 0, BG_COORD_SET);
+ ChangeBgY(0, 0, BG_COORD_SET);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
+ ChangeBgX(2, 0, BG_COORD_SET);
+ ChangeBgY(2, 0, BG_COORD_SET);
+ ChangeBgX(3, 0, BG_COORD_SET);
+ ChangeBgY(3, 0, BG_COORD_SET);
DmaFillLarge16(3, 0, (void *)VRAM, VRAM_SIZE, 0x1000);
DmaClear32(3, (void *)OAM, OAM_SIZE);
DmaClear16(3, (void *)PLTT, PLTT_SIZE);
diff --git a/src/wild_encounter.c b/src/wild_encounter.c
index 458882853..65d8c86d0 100644
--- a/src/wild_encounter.c
+++ b/src/wild_encounter.c
@@ -301,7 +301,7 @@ static u16 GetCurrentMapWildMonHeaderId(void)
for (i = 0; ; i++)
{
const struct WildPokemonHeader *wildHeader = &gWildMonHeaders[i];
- if (wildHeader->mapGroup == 0xFF)
+ if (wildHeader->mapGroup == MAP_GROUP(UNDEFINED))
break;
if (gWildMonHeaders[i].mapGroup == gSaveBlock1Ptr->location.mapGroup &&
diff --git a/src/wireless_communication_status_screen.c b/src/wireless_communication_status_screen.c
index 295eab97f..ffb86488a 100644
--- a/src/wireless_communication_status_screen.c
+++ b/src/wireless_communication_status_screen.c
@@ -189,10 +189,10 @@ static void CB2_InitWirelessCommunicationScreen(void)
sStatusScreen->taskId = CreateTask(Task_WirelessCommunicationScreen, 0);
sStatusScreen->rfuTaskId = CreateTask_ListenToWireless();
sStatusScreen->prevGroupCounts[GROUPTYPE_TOTAL] = 1;
- ChangeBgX(0, 0, 0);
- ChangeBgY(0, 0, 0);
- ChangeBgX(1, 0, 0);
- ChangeBgY(1, 0, 0);
+ ChangeBgX(0, 0, BG_COORD_SET);
+ ChangeBgY(0, 0, BG_COORD_SET);
+ ChangeBgX(1, 0, BG_COORD_SET);
+ ChangeBgY(1, 0, BG_COORD_SET);
LoadPalette(sBgTiles_Pal, 0x00, 0x20);
Menu_LoadStdPalAt(0xF0);
DynamicPlaceholderTextUtil_Reset();
@@ -243,9 +243,9 @@ static void PrintHeaderTexts(void)
}
WCSS_AddTextPrinterParameterized(1, FONT_NORMAL, sHeaderTexts[i + 1], 0, 30 * i + 8, COLORMODE_RED);
PutWindowTilemap(0);
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
PutWindowTilemap(1);
- CopyWindowToVram(1, 2);
+ CopyWindowToVram(1, COPYWIN_GFX);
}
#define tState data[0]
@@ -285,7 +285,7 @@ static void Task_WirelessCommunicationScreen(u8 taskId)
WCSS_AddTextPrinterParameterized(2, FONT_NORMAL, gStringVar4, 12, 98, COLORMODE_RED);
}
PutWindowTilemap(2);
- CopyWindowToVram(2, 3);
+ CopyWindowToVram(2, COPYWIN_FULL);
}
if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON))
{
@@ -344,7 +344,7 @@ static void WCSS_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *
break;
}
- AddTextPrinterParameterized4(windowId, fontId, x, y, 0, 0, color, -1, str);
+ AddTextPrinterParameterized4(windowId, fontId, x, y, 0, 0, color, TEXT_SKIP_DRAW, str);
}
static u32 CountPlayersInGroupAndGetActivity(struct RfuPlayer * player, u32 * groupCounts)