summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@users.noreply.github.com>2020-04-12 10:12:37 -0400
committerGitHub <noreply@github.com>2020-04-12 10:12:37 -0400
commit6001e107993d1da69decdf479abf8a661ad57dda (patch)
tree9a430f0b70e0a24965378724f1bd28cd1a193dc1 /src
parent2880cf2a51ea36fa36f00d9ecf07177e5955c882 (diff)
parent7a562d6bae78fd7c62ed2f804fd8dcc555d85d18 (diff)
Merge pull request #321 from PikalaxALT/modern_gcc
Get pokefirered_modern to build
Diffstat (limited to 'src')
-rw-r--r--src/battle_anim.c10
-rw-r--r--src/battle_anim_effects_2.c14
-rw-r--r--src/battle_anim_mon_movement.c1
-rw-r--r--src/battle_anim_special.c2
-rw-r--r--src/battle_controller_player.c2
-rw-r--r--src/battle_interface.c1
-rw-r--r--src/battle_main.c10
-rw-r--r--src/battle_message.c2
-rw-r--r--src/battle_records.c4
-rw-r--r--src/battle_script_commands.c14
-rw-r--r--src/battle_transition.c12
-rw-r--r--src/berry.c2
-rw-r--r--src/berry_crush.c156
-rw-r--r--src/berry_crush_2.c1393
-rw-r--r--src/berry_crush_3.c756
-rw-r--r--src/berry_pouch.c2
-rw-r--r--src/bg.c8
-rw-r--r--src/braille_text.c2
-rw-r--r--src/cable_club.c4
-rw-r--r--src/clear_save_data_screen.c4
-rw-r--r--src/credits.c10
-rw-r--r--src/daycare.c6
-rw-r--r--src/dma3_manager.c23
-rw-r--r--src/dodrio_berry_picking.c4
-rw-r--r--src/dodrio_berry_picking_2.c30
-rw-r--r--src/easy_chat_3.c12
-rw-r--r--src/fame_checker.c6
-rw-r--r--src/field_door.c2
-rw-r--r--src/field_fadetransition.c2
-rw-r--r--src/field_screen_effect.c4
-rw-r--r--src/field_specials.c6
-rw-r--r--src/fldeff_flash.c2
-rw-r--r--src/hall_of_fame.c14
-rw-r--r--src/help_system.c12
-rw-r--r--src/help_system_812B1E0.c2
-rw-r--r--src/intro.c470
-rw-r--r--src/item_menu.c16
-rw-r--r--src/item_pc.c44
-rw-r--r--src/learn_move.c24
-rw-r--r--src/link.c20
-rw-r--r--src/link_rfu_2.c18
-rw-r--r--src/list_menu.c14
-rw-r--r--src/mail.c4
-rw-r--r--src/main.c52
-rw-r--r--src/main_menu.c26
-rw-r--r--src/map_name_popup.c6
-rw-r--r--src/map_preview_screen.c2
-rw-r--r--src/math_util.c18
-rw-r--r--src/menu.c32
-rw-r--r--src/menu_helpers.c36
-rw-r--r--src/mevent_show_card.c2
-rw-r--r--src/mevent_show_news.c4
-rw-r--r--src/mon_markings.c4
-rw-r--r--src/money.c2
-rw-r--r--src/multiboot.c4
-rw-r--r--src/mystery_gift_menu.c24
-rw-r--r--src/naming_screen.c6
-rw-r--r--src/new_menu_helpers.c12
-rw-r--r--src/oak_speech.c22
-rw-r--r--src/option_menu.c6
-rw-r--r--src/overworld.c14
-rw-r--r--src/party_menu.c14
-rw-r--r--src/play_time.c2
-rw-r--r--src/player_pc.c4
-rw-r--r--src/pokedex_screen.c24
-rw-r--r--src/pokemon_jump.c2
-rw-r--r--src/pokemon_jump_2.c4
-rw-r--r--src/pokemon_jump_4.c18
-rw-r--r--src/pokemon_jump_6.c4
-rw-r--r--src/pokemon_special_anim_scene.c14
-rw-r--r--src/pokemon_storage_system_2.c4
-rw-r--r--src/pokemon_storage_system_3.c34
-rw-r--r--src/pokemon_storage_system_4.c4
-rw-r--r--src/pokemon_storage_system_7.c4
-rw-r--r--src/quest_log.c18
-rw-r--r--src/region_map.c22
-rw-r--r--src/save.c2
-rw-r--r--src/save_failed_screen.c8
-rw-r--r--src/scrcmd.c2
-rw-r--r--src/shop.c4
-rw-r--r--src/slot_machine.c12
-rw-r--r--src/sound.c10
-rw-r--r--src/start_menu.c14
-rw-r--r--src/strings.c18
-rw-r--r--src/task.c2
-rw-r--r--src/teachy_tv.c6
-rw-r--r--src/text.c2
-rw-r--r--src/text_printer.c4
-rw-r--r--src/tm_case.c10
-rw-r--r--src/trade.c16
-rw-r--r--src/trade_scene.c10
-rw-r--r--src/trainer_card.c6
-rw-r--r--src/trainer_tower.c4
-rw-r--r--src/union_room.c38
-rw-r--r--src/union_room_battle.c6
-rw-r--r--src/union_room_chat.c2
-rw-r--r--src/union_room_chat_display.c50
-rw-r--r--src/util.c4
-rw-r--r--src/window.c44
-rw-r--r--src/window_8bpp.c12
-rw-r--r--src/wireless_communication_status_screen.c6
101 files changed, 2087 insertions, 1793 deletions
diff --git a/src/battle_anim.c b/src/battle_anim.c
index af387bb08..41f44a42c 100644
--- a/src/battle_anim.c
+++ b/src/battle_anim.c
@@ -2257,8 +2257,8 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2)
if (!toBG_2)
{
- RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(8)), 0x2000, 1);
- RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(28)), 0x1000, 1);
+ RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(8)), 0x2000, DMA3_32BIT);
+ RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(28)), 0x1000, DMA3_32BIT);
sub_80752A0(&animBg);
CpuFill16(toBG_2, animBg.bgTiles, 0x1000);
CpuFill16(toBG_2, animBg.bgTilemap, 0x800);
@@ -2282,8 +2282,8 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2)
}
else
{
- RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(12)), 0x2000, 1);
- RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(30)), 0x1000, 1);
+ RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(12)), 0x2000, DMA3_32BIT);
+ RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(30)), 0x1000, DMA3_32BIT);
sub_80752C8(&animBg, 2);
CpuFill16(0, animBg.bgTiles + 0x1000, 0x1000);
CpuFill16(0, animBg.bgTilemap + 0x400, 0x800);
@@ -2840,7 +2840,7 @@ s8 BattleAnimAdjustPanning2(s8 pan)
return pan;
}
-s16 KeepPanInRange(s16 panArg, int oldPan)
+s16 KeepPanInRange(s16 panArg, s32 oldPan)
{
s16 pan = panArg;
diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c
index 510b8eabb..94423bab9 100644
--- a/src/battle_anim_effects_2.c
+++ b/src/battle_anim_effects_2.c
@@ -1532,7 +1532,7 @@ void AnimAirWaveProjectile(struct Sprite *sprite)
{
sprite->data[0] = 8;
task->data[5] = 4;
- a = sub_80D8B90(0x1000);
+ a = MathUtil_Inv16(0x1000);
sprite->pos1.x += sprite->pos2.x;
sprite->pos1.y += sprite->pos2.y;
sprite->pos2.y = 0;
@@ -1551,8 +1551,8 @@ void AnimAirWaveProjectile(struct Sprite *sprite)
sprite->data[1] = 0;
sprite->data[6] = 0;
sprite->data[5] = 0;
- sprite->data[3] = sub_80D8AA0(sub_80D8AA0(b, a), sub_80D8B90(0x1C0));
- sprite->data[4] = sub_80D8AA0(sub_80D8AA0(c, a), sub_80D8B90(0x1C0));
+ sprite->data[3] = MathUtil_Mul16(MathUtil_Mul16(b, a), MathUtil_Inv16(0x1C0));
+ sprite->data[4] = MathUtil_Mul16(MathUtil_Mul16(c, a), MathUtil_Inv16(0x1C0));
sprite->callback = AnimAirWaveProjectile_Step1;
}
}
@@ -1643,18 +1643,18 @@ void AnimTask_AirCutterProjectile(u8 taskId)
else
xDiff = attackerX - targetX;
- gTasks[taskId].data[5] = sub_80D8AA0(xDiff, sub_80D8B90(gBattleAnimArgs[2] & ~1));
- gTasks[taskId].data[6] = sub_80D8AA0(gTasks[taskId].data[5], 0x80);
+ gTasks[taskId].data[5] = MathUtil_Mul16(xDiff, MathUtil_Inv16(gBattleAnimArgs[2] & ~1));
+ gTasks[taskId].data[6] = MathUtil_Mul16(gTasks[taskId].data[5], 0x80);
gTasks[taskId].data[7] = gBattleAnimArgs[2];
if (targetY >= attackerY)
{
yDiff = targetY - attackerY;
- gTasks[taskId].data[8] = sub_80D8AA0(yDiff, sub_80D8B90(gTasks[taskId].data[5])) & ~1;
+ gTasks[taskId].data[8] = MathUtil_Mul16(yDiff, MathUtil_Inv16(gTasks[taskId].data[5])) & ~1;
}
else
{
yDiff = attackerY - targetY;
- gTasks[taskId].data[8] = sub_80D8AA0(yDiff, sub_80D8B90(gTasks[taskId].data[5])) | 1;
+ gTasks[taskId].data[8] = MathUtil_Mul16(yDiff, MathUtil_Inv16(gTasks[taskId].data[5])) | 1;
}
gTasks[taskId].data[3] = gBattleAnimArgs[3];
diff --git a/src/battle_anim_mon_movement.c b/src/battle_anim_mon_movement.c
index ffd66871c..8ed996993 100644
--- a/src/battle_anim_mon_movement.c
+++ b/src/battle_anim_mon_movement.c
@@ -4,6 +4,7 @@
#include "task.h"
#include "trig.h"
+#undef abs
#define abs(x) ((x) < 0 ? -(x) : (x))
static void AnimTask_ShakeMonStep(u8 taskId);
diff --git a/src/battle_anim_special.c b/src/battle_anim_special.c
index 296e670bd..c753f5dc4 100644
--- a/src/battle_anim_special.c
+++ b/src/battle_anim_special.c
@@ -2027,7 +2027,7 @@ void sub_80F15C8(u8 taskId)
break;
case 2:
spriteId = gBattlerSpriteIds[gBattleAnimAttacker];
- RequestDma3Fill(0, (void *)OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * TILE_SIZE_4BPP, 0x800, 1);
+ RequestDma3Fill(0, (void *)OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * TILE_SIZE_4BPP, 0x800, DMA3_32BIT);
ClearBehindSubstituteBit(gBattleAnimAttacker);
DestroyAnimVisualTask(taskId);
break;
diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c
index 97e833ffd..f65ec46c3 100644
--- a/src/battle_controller_player.c
+++ b/src/battle_controller_player.c
@@ -796,7 +796,7 @@ static void sub_802F610(void)
{
if (gWirelessCommType == 0)
{
- if (gReceivedRemoteLinkPlayers == 0)
+ if (!gReceivedRemoteLinkPlayers)
{
m4aSongNumStop(SE_HINSI);
gMain.inBattle = 0;
diff --git a/src/battle_interface.c b/src/battle_interface.c
index 107999045..7a8f4eb67 100644
--- a/src/battle_interface.c
+++ b/src/battle_interface.c
@@ -16,6 +16,7 @@
destWidth - w; \
})
+#undef abs
#define abs(a) ((a) < 0 ? -(a) : (a))
#define Q_24_8(n) ((s32)((n) * 256))
diff --git a/src/battle_main.c b/src/battle_main.c
index f91386e6e..04a4a2acc 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -935,7 +935,7 @@ static void CB2_HandleStartBattle(void)
case 1:
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
- if (gReceivedRemoteLinkPlayers != 0)
+ if (gReceivedRemoteLinkPlayers)
{
if (IsLinkTaskFinished())
{
@@ -1107,7 +1107,7 @@ static void CB2_PreInitMultiBattle(void)
switch (gBattleCommunication[MULTIUSE_STATE])
{
case 0:
- if (gReceivedRemoteLinkPlayers != 0 && IsLinkTaskFinished())
+ if (gReceivedRemoteLinkPlayers && IsLinkTaskFinished())
{
sub_80108C4();
SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->field_184, sizeof(gMultiPartnerParty));
@@ -1153,7 +1153,7 @@ static void CB2_PreInitMultiBattle(void)
SetMainCallback2(CB2_InitBattleInternal);
}
}
- else if (gReceivedRemoteLinkPlayers == 0)
+ else if (!gReceivedRemoteLinkPlayers)
{
gBattleTypeFlags = *savedBattleTypeFlags;
gMain.savedCallback = *savedCallback;
@@ -1190,7 +1190,7 @@ static void CB2_HandleStartMultiBattle(void)
LoadWirelessStatusIndicatorSpriteGfx();
break;
case 1:
- if (gReceivedRemoteLinkPlayers != 0)
+ if (gReceivedRemoteLinkPlayers)
{
if (IsLinkTaskFinished())
{
@@ -3843,7 +3843,7 @@ static void ReturnFromBattleToOverworld(void)
RandomlyGivePartyPokerus(gPlayerParty);
PartySpreadPokerus(gPlayerParty);
}
- if (!(gBattleTypeFlags & BATTLE_TYPE_LINK) || gReceivedRemoteLinkPlayers == 0)
+ if (!(gBattleTypeFlags & BATTLE_TYPE_LINK) || !gReceivedRemoteLinkPlayers)
{
gSpecialVar_Result = gBattleOutcome;
gMain.inBattle = FALSE;
diff --git a/src/battle_message.c b/src/battle_message.c
index 55667de7d..648f055b1 100644
--- a/src/battle_message.c
+++ b/src/battle_message.c
@@ -2453,7 +2453,7 @@ void BattlePutTextOnWindow(const u8 *text, u8 windowId) {
if (!(textFlags & 0x80))
{
PutWindowTilemap(windowId);
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_BOTH);
}
}
diff --git a/src/battle_records.c b/src/battle_records.c
index 7d9ddffe4..a32276199 100644
--- a/src/battle_records.c
+++ b/src/battle_records.c
@@ -198,7 +198,7 @@ static void ClearWindowCommitAndRemove(u8 windowId)
{
FillWindowPixelBuffer(windowId, PIXEL_FILL(0));
ClearWindowTilemap(windowId);
- CopyWindowToVram(windowId, 2);
+ CopyWindowToVram(windowId, COPYWIN_GFX);
RemoveWindow(windowId);
}
@@ -557,7 +557,7 @@ static void PrintBattleRecords(void)
static void CommitWindow(u8 windowId)
{
PutWindowTilemap(windowId);
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_BOTH);
}
static void LoadFrameGfxOnBg(u8 bg)
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index aacb2fbe4..c88516272 100644
--- a/src/battle_script_commands.c
+++ b/src/battle_script_commands.c
@@ -5764,7 +5764,7 @@ static void atk6C_drawlvlupbox(void)
case 4:
DrawLevelUpWindow1();
PutWindowTilemap(12);
- CopyWindowToVram(12, 3);
+ CopyWindowToVram(12, COPYWIN_BOTH);
++gBattleScripting.atk6C_state;
break;
case 5:
@@ -5780,7 +5780,7 @@ static void atk6C_drawlvlupbox(void)
{
PlaySE(SE_SELECT);
DrawLevelUpWindow2();
- CopyWindowToVram(12, 2);
+ CopyWindowToVram(12, COPYWIN_GFX);
++gBattleScripting.atk6C_state;
}
break;
@@ -5796,9 +5796,9 @@ static void atk6C_drawlvlupbox(void)
if (!sub_8026648())
{
ClearWindowTilemap(13);
- CopyWindowToVram(13, 1);
+ CopyWindowToVram(13, COPYWIN_MAP);
ClearWindowTilemap(12);
- CopyWindowToVram(12, 1);
+ CopyWindowToVram(12, COPYWIN_MAP);
SetBgAttribute(2, BG_ATTR_PRIORITY, 2);
ShowBg(2);
gBattleScripting.atk6C_state = 10;
@@ -5840,7 +5840,7 @@ static void sub_8026480(void)
LoadPalette(gUnknown_82506D0, 0x60, 0x20);
CopyToWindowPixelBuffer(13, gUnknown_82506F0, 0, 0);
PutWindowTilemap(13);
- CopyWindowToVram(13, 3);
+ CopyWindowToVram(13, COPYWIN_BOTH);
PutMonIconOnLvlUpBox();
}
@@ -5909,8 +5909,8 @@ static void PutLevelAndGenderOnLvlUpBox(void)
}
printerTemplate.y = 10;
printerTemplate.currentY = 10;
- AddTextPrinter(&printerTemplate, 0xFF, NULL);
- CopyWindowToVram(13, 2);
+ AddTextPrinter(&printerTemplate, TEXT_SPEED_FF, NULL);
+ CopyWindowToVram(13, COPYWIN_GFX);
}
static bool8 sub_8026648(void)
diff --git a/src/battle_transition.c b/src/battle_transition.c
index b33d72f15..e7fea0865 100644
--- a/src/battle_transition.c
+++ b/src/battle_transition.c
@@ -1109,12 +1109,10 @@ static void SpriteCB_BT_Phase2SlidingPokeballs(struct Sprite *sprite)
if (posX != sprite->data[2])
{
- u32 var;
u16 *ptr;
sprite->data[2] = posX;
- var = (((GetGpuReg(REG_OFFSET_BG0CNT) >> 8) & 0x1F) << 11);
- ptr = (u16 *)(VRAM + var);
+ ptr = (u16 *)BG_SCREEN_ADDR((GetGpuReg(REG_OFFSET_BG0CNT) >> 8) & 0x1F);
SOME_VRAM_STORE(ptr, posY - 2, posX, 0xF001);
SOME_VRAM_STORE(ptr, posY - 1, posX, 0xF001);
SOME_VRAM_STORE(ptr, posY - 0, posX, 0xF001);
@@ -3512,7 +3510,7 @@ static void BT_GetBg0TilesetBase(u16 **tilesetPtr)
u16 charBase;
charBase = GetGpuReg(REG_OFFSET_BG0CNT) >> 2;
- charBase <<= 0xE;
+ charBase <<= 14;
*tilesetPtr = (u16 *)(VRAM + charBase);
}
@@ -3522,8 +3520,8 @@ static void BT_GetBg0TilemapAndTilesetBase(u16 **tilemapPtr, u16 **tilesetPtr)
screenBase = (GetGpuReg(REG_OFFSET_BG0CNT) >> 8) & 0x1F;
charBase = GetGpuReg(REG_OFFSET_BG0CNT) >> 2;
- screenBase <<= 0xB;
- charBase <<= 0xE;
+ screenBase <<= 11;
+ charBase <<= 14;
*tilemapPtr = (u16 *)(VRAM + screenBase);
*tilesetPtr = (u16 *)(VRAM + charBase);
}
@@ -3546,7 +3544,7 @@ static void BT_GenerateCircle(s16 *buffer, s16 x, s16 y, s16 radius)
s16 i;
memset(buffer, 0xA, 320);
- // 64 iterations because we only want to cover [0, π/2) discretely.
+ // 64 iterations because we only want to cover [0, π/2) discretely.
for (i = 0; i < 64; ++i)
{
s16 sinResult, cosResult, leftX, topY, bottomY, nextTopY, nextBottomY, winVal;
diff --git a/src/berry.c b/src/berry.c
index b92a41ed4..ef6999e9a 100644
--- a/src/berry.c
+++ b/src/berry.c
@@ -867,7 +867,7 @@ const struct Berry gBerries[] = {
};
-const struct UnkStruct_0858AB24 gUnknown_83DFC9C[] = {
+const struct BerryCrushStats gBerryCrushStats[] = {
{ 50, 20},
{ 50, 20},
{ 50, 20},
diff --git a/src/berry_crush.c b/src/berry_crush.c
index e59cad21a..12e1a823e 100644
--- a/src/berry_crush.c
+++ b/src/berry_crush.c
@@ -13,28 +13,29 @@
#include "constants/songs.h"
#include "constants/items.h"
-static EWRAM_DATA struct BerryCrushGame *gUnknown_203F3DC = NULL;
+static EWRAM_DATA struct BerryCrushGame *sBerryCrushGamePtr = NULL;
-static void sub_814B860(void);
-static void sub_814BA6C(void);
-static void sub_814BA80(void);
-static void sub_814BA98(u8 taskId);
+static void BerryCrush_InitPlayerNamesAndTextSpeed(struct BerryCrushGame *game);
+static void CB2_ReturnToBerryCrushGameFromBerryPouch(void);
+static void VBlankCB_BerryCrush(void);
+static void CB2_BerryCrush(void);
+static void Task_RunBerryCrushGame(u8 taskId);
-struct BerryCrushGame *sub_814B6F0(void)
+struct BerryCrushGame *GetBerryCrushGame(void)
{
- return gUnknown_203F3DC;
+ return sBerryCrushGamePtr;
}
-u32 sub_814B6FC(MainCallback callback)
+u32 ExitBerryCrushWithCallback(MainCallback callback)
{
- if (!gUnknown_203F3DC)
+ if (sBerryCrushGamePtr == NULL)
return 2;
- if (!callback)
- callback = gUnknown_203F3DC->unk0;
+ if (callback == NULL)
+ callback = sBerryCrushGamePtr->savedCallback;
- DestroyTask(gUnknown_203F3DC->unkA);
- FREE_AND_SET_NULL(gUnknown_203F3DC);
+ DestroyTask(sBerryCrushGamePtr->taskId);
+ FREE_AND_SET_NULL(sBerryCrushGamePtr);
SetMainCallback2(callback);
if (callback == CB2_ReturnToField)
{
@@ -70,8 +71,8 @@ void StartBerryCrush(MainCallback callback)
return;
}
- gUnknown_203F3DC = AllocZeroed(sizeof(*gUnknown_203F3DC));
- if (!gUnknown_203F3DC)
+ sBerryCrushGamePtr = AllocZeroed(sizeof(*sBerryCrushGamePtr));
+ if (!sBerryCrushGamePtr)
{
SetMainCallback2(callback);
Rfu.linkman_param[0] = 0;
@@ -80,109 +81,110 @@ void StartBerryCrush(MainCallback callback)
return;
}
- gUnknown_203F3DC->unk0 = callback;
- gUnknown_203F3DC->unk8 = multiplayerId;
- gUnknown_203F3DC->unk9 = playerCount;
- sub_814BABC(gUnknown_203F3DC);
- gUnknown_203F3DC->unk12 = 1;
- gUnknown_203F3DC->unkE = 1;
- gUnknown_203F3DC->unkF = 6;
- sub_814D564(gUnknown_203F3DC->unk36, 1, -1, 0, 16, 0, 0);
- sub_814BB4C(4, 1, gUnknown_203F3DC->unk36);
- SetMainCallback2(sub_814BA80);
- gUnknown_203F3DC->unkA = CreateTask(sub_814BA98, 8);
+ sBerryCrushGamePtr->savedCallback = callback;
+ sBerryCrushGamePtr->localId = multiplayerId;
+ sBerryCrushGamePtr->playerCount = playerCount;
+ BerryCrush_InitPlayerNamesAndTextSpeed(sBerryCrushGamePtr);
+ sBerryCrushGamePtr->gameState = 1;
+ sBerryCrushGamePtr->nextCmd = BCCMD_BeginNormalPaletteFade;
+ sBerryCrushGamePtr->afterPalFadeCmd = BCCMD_SignalReadyToBegin;
+ BerryCrush_SetPaletteFadeParams(sBerryCrushGamePtr->commandParams, TRUE, 0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
+ BerryCrush_RunOrScheduleCommand(BCCMD_InitGfx, 1, sBerryCrushGamePtr->commandParams);
+ SetMainCallback2(CB2_BerryCrush);
+ sBerryCrushGamePtr->taskId = CreateTask(Task_RunBerryCrushGame, 8);
}
-static void sub_814B860(void)
+static void CB2_ReturnToBerryCrushGameFromBerryPouch(void)
{
if (gSpecialVar_ItemId < FIRST_BERRY_INDEX || gSpecialVar_ItemId > LAST_BERRY_INDEX + 1)
gSpecialVar_ItemId = ITEM_CHERI_BERRY;
else
RemoveBagItem(gSpecialVar_ItemId, 1);
- gUnknown_203F3DC->unk68.as_four_players.others[gUnknown_203F3DC->unk8].unk0 = gSpecialVar_ItemId - FIRST_BERRY_INDEX;
- gUnknown_203F3DC->unkE = 1;
- gUnknown_203F3DC->unkF = 9;
- sub_814D564(gUnknown_203F3DC->unk36, 0, -1, 0, 16, 0, 0);
- sub_814BB4C(4, 1, gUnknown_203F3DC->unk36);
- gUnknown_203F3DC->unkA = CreateTask(sub_814BA98, 8);
- SetMainCallback2(sub_814BA80);
+ sBerryCrushGamePtr->unk68.as_four_players.others[sBerryCrushGamePtr->localId].berryId = gSpecialVar_ItemId - FIRST_BERRY_INDEX;
+ sBerryCrushGamePtr->nextCmd = BCCMD_BeginNormalPaletteFade;
+ sBerryCrushGamePtr->afterPalFadeCmd = BCCMD_WaitForOthersToPickBerries;
+ BerryCrush_SetPaletteFadeParams(sBerryCrushGamePtr->commandParams, FALSE, 0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
+ BerryCrush_RunOrScheduleCommand(BCCMD_InitGfx, 1, sBerryCrushGamePtr->commandParams);
+ sBerryCrushGamePtr->taskId = CreateTask(Task_RunBerryCrushGame, 8);
+ SetMainCallback2(CB2_BerryCrush);
}
-void sub_814B8F0(void)
+void CB2_BerryCrush_GoToBerryPouch(void)
{
- DestroyTask(gUnknown_203F3DC->unkA);
- InitBerryPouch(BERRYPOUCH_FROMBERRYCRUSH, sub_814B860, FALSE);
+ DestroyTask(sBerryCrushGamePtr->taskId);
+ InitBerryPouch(BERRYPOUCH_FROMBERRYCRUSH, CB2_ReturnToBerryCrushGameFromBerryPouch, FALSE);
}
-void sub_814B914(void)
+void BerryCrush_SetVBlankCallback(void)
{
- SetVBlankCallback(sub_814BA6C);
+ SetVBlankCallback(VBlankCB_BerryCrush);
}
-void sub_814B924(void)
+void BerryCrush_UnsetVBlankCallback(void)
{
SetVBlankCallback(NULL);
}
-void sub_814B930(void)
+void BerryCrush_UpdateSav2Records(void)
{
u32 var0, var1;
- var0 = gUnknown_203F3DC->unk68.as_four_players.unk00.unk04;
+ // unk0A / (unk04 / 60)
+ var0 = sBerryCrushGamePtr->unk68.as_four_players.unk00.unk04;
var0 <<= 8;
- var0 = sub_80D8B68(var0, 60 << 8);
- var1 = gUnknown_203F3DC->unk68.as_four_players.unk00.unk0A;
+ var0 = MathUtil_Div32(var0, 60 << 8);
+ var1 = sBerryCrushGamePtr->unk68.as_four_players.unk00.unk0A;
var1 <<= 8;
- var1 = sub_80D8B68(var1, var0) & 0xFFFF;
- gUnknown_203F3DC->unk16 = var1;
- switch (gUnknown_203F3DC->unk9)
+ var1 = MathUtil_Div32(var1, var0) & 0xFFFF;
+ sBerryCrushGamePtr->pressingSpeed = var1;
+ switch (sBerryCrushGamePtr->playerCount)
{
case 2:
- if (gUnknown_203F3DC->unk16 > gSaveBlock2Ptr->berryCrush.berryCrushResults[0])
+ if (sBerryCrushGamePtr->pressingSpeed > gSaveBlock2Ptr->berryCrush.berryCrushResults[0])
{
- gUnknown_203F3DC->unk25_1 = 1;
- gSaveBlock2Ptr->berryCrush.berryCrushResults[0] = gUnknown_203F3DC->unk16;
+ sBerryCrushGamePtr->unk25_1 = 1;
+ gSaveBlock2Ptr->berryCrush.berryCrushResults[0] = sBerryCrushGamePtr->pressingSpeed;
}
break;
case 3:
- if (gUnknown_203F3DC->unk16 > gSaveBlock2Ptr->berryCrush.berryCrushResults[1])
+ if (sBerryCrushGamePtr->pressingSpeed > gSaveBlock2Ptr->berryCrush.berryCrushResults[1])
{
- gUnknown_203F3DC->unk25_1 = 1;
- gSaveBlock2Ptr->berryCrush.berryCrushResults[1] = gUnknown_203F3DC->unk16;
+ sBerryCrushGamePtr->unk25_1 = 1;
+ gSaveBlock2Ptr->berryCrush.berryCrushResults[1] = sBerryCrushGamePtr->pressingSpeed;
}
break;
case 4:
- if (gUnknown_203F3DC->unk16 > gSaveBlock2Ptr->berryCrush.berryCrushResults[2])
+ if (sBerryCrushGamePtr->pressingSpeed > gSaveBlock2Ptr->berryCrush.berryCrushResults[2])
{
- gUnknown_203F3DC->unk25_1 = 1;
- gSaveBlock2Ptr->berryCrush.berryCrushResults[2] = gUnknown_203F3DC->unk16;
+ sBerryCrushGamePtr->unk25_1 = 1;
+ gSaveBlock2Ptr->berryCrush.berryCrushResults[2] = sBerryCrushGamePtr->pressingSpeed;
}
break;
case 5:
- if (gUnknown_203F3DC->unk16 > gSaveBlock2Ptr->berryCrush.berryCrushResults[3])
+ if (sBerryCrushGamePtr->pressingSpeed > gSaveBlock2Ptr->berryCrush.berryCrushResults[3])
{
- gUnknown_203F3DC->unk25_1 = 1;
- gSaveBlock2Ptr->berryCrush.berryCrushResults[3] = gUnknown_203F3DC->unk16;
+ sBerryCrushGamePtr->unk25_1 = 1;
+ gSaveBlock2Ptr->berryCrush.berryCrushResults[3] = sBerryCrushGamePtr->pressingSpeed;
}
break;
}
- gUnknown_203F3DC->unk1C = gUnknown_203F3DC->unk68.as_four_players.unk00.unk00;
- if (GiveBerryPowder(gUnknown_203F3DC->unk1C))
+ sBerryCrushGamePtr->powder = sBerryCrushGamePtr->unk68.as_four_players.unk00.unk00;
+ if (GiveBerryPowder(sBerryCrushGamePtr->powder))
return;
- gUnknown_203F3DC->unk25_0 = 1;
+ sBerryCrushGamePtr->unk25_0 = 1;
}
-static void sub_814BA6C(void)
+static void VBlankCB_BerryCrush(void)
{
TransferPlttBuffer();
LoadOam();
ProcessSpriteCopyRequests();
}
-static void sub_814BA80(void)
+static void CB2_BerryCrush(void)
{
RunTasks();
RunTextPrinters();
@@ -190,39 +192,39 @@ static void sub_814BA80(void)
BuildOamBuffer();
}
-static void sub_814BA98(u8 taskId)
+static void Task_RunBerryCrushGame(u8 taskId)
{
- if (gUnknown_203F3DC->unk4)
- gUnknown_203F3DC->unk4(gUnknown_203F3DC, gUnknown_203F3DC->unk36);
+ if (sBerryCrushGamePtr->cmdCallback != NULL)
+ sBerryCrushGamePtr->cmdCallback(sBerryCrushGamePtr, sBerryCrushGamePtr->commandParams);
- sub_814D9CC(gUnknown_203F3DC);
+ sub_814D9CC(sBerryCrushGamePtr);
}
-void sub_814BABC(struct BerryCrushGame *arg0)
+void BerryCrush_InitPlayerNamesAndTextSpeed(struct BerryCrushGame *game)
{
u8 i;
- for (i = 0; i < arg0->unk9; i++)
+ for (i = 0; i < game->playerCount; i++)
{
- StringCopy(PLAYER_UNK14(arg0, i), gLinkPlayers[i].name);
- arg0->unk68.as_five_players.unk1C[i].unk14[PLAYER_NAME_LENGTH] = EOS;
+ StringCopy(BERRYCRUSH_PLAYER_NAME(game, i), gLinkPlayers[i].name);
+ game->unk68.as_five_players.players[i].unk14[PLAYER_NAME_LENGTH] = EOS;
}
for (; i < 5; i++)
{
- memset(PLAYER_UNK14(arg0, i), 1, PLAYER_NAME_LENGTH);
- arg0->unk68.as_five_players.unk1C[i].unk14[PLAYER_NAME_LENGTH] = EOS;
+ memset(BERRYCRUSH_PLAYER_NAME(game, i), 1, PLAYER_NAME_LENGTH);
+ game->unk68.as_five_players.players[i].unk14[PLAYER_NAME_LENGTH] = EOS;
}
switch (gSaveBlock2Ptr->optionsTextSpeed)
{
case OPTIONS_TEXT_SPEED_SLOW:
- arg0->unkB = 8;
+ game->textSpeed = 8;
break;
case OPTIONS_TEXT_SPEED_MID:
- arg0->unkB = 4;
+ game->textSpeed = 4;
break;
case OPTIONS_TEXT_SPEED_FAST:
- arg0->unkB = 1;
+ game->textSpeed = 1;
break;
}
}
diff --git a/src/berry_crush_2.c b/src/berry_crush_2.c
index e76f33988..f195be954 100644
--- a/src/berry_crush_2.c
+++ b/src/berry_crush_2.c
@@ -16,33 +16,33 @@
#include "strings.h"
#include "constants/songs.h"
-static u32 sub_814BBB8(struct BerryCrushGame * berryCrushGame, u8 *params);
-static u32 sub_814BC10(struct BerryCrushGame * berryCrushGame, u8 *params);
-static u32 sub_814BC74(struct BerryCrushGame * berryCrushGame, u8 *params);
-static u32 sub_814BD7C(struct BerryCrushGame * berryCrushGame, u8 *params);
-static u32 sub_814BD9C(struct BerryCrushGame * berryCrushGame, u8 *params);
-static u32 sub_814BDBC(struct BerryCrushGame * berryCrushGame, u8 *params);
-static u32 sub_814BE0C(struct BerryCrushGame * berryCrushGame, u8 *params);
-static u32 sub_814BE64(struct BerryCrushGame * berryCrushGame, u8 *params);
-static u32 sub_814BE7C(struct BerryCrushGame * berryCrushGame, u8 *params);
-static u32 sub_814BFD0(struct BerryCrushGame * berryCrushGame, u8 *params);
-static u32 sub_814C118(struct BerryCrushGame * berryCrushGame, u8 *params);
-static u32 sub_814C24C(struct BerryCrushGame * berryCrushGame, u8 *params);
-static u32 sub_814C850(struct BerryCrushGame * berryCrushGame, u8 *params);
-static u32 sub_814C8F8(struct BerryCrushGame * berryCrushGame, u8 *params);
-static u32 sub_814C990(struct BerryCrushGame * berryCrushGame, u8 *params);
-static u32 sub_814CB20(struct BerryCrushGame * berryCrushGame, u8 *params);
-static u32 sub_814CC0C(struct BerryCrushGame * berryCrushGame, u8 *params);
-static u32 sub_814CFA8(struct BerryCrushGame * berryCrushGame, u8 *params);
-static u32 sub_814D094(struct BerryCrushGame * berryCrushGame, u8 *params);
-static u32 sub_814D188(struct BerryCrushGame * berryCrushGame, u8 *params);
-static u32 sub_814D240(struct BerryCrushGame * berryCrushGame, u8 *params);
-static u32 sub_814D31C(struct BerryCrushGame * berryCrushGame, u8 *params);
-static u32 sub_814D3A4(struct BerryCrushGame * berryCrushGame, u8 *params);
-static u32 sub_814D468(struct BerryCrushGame * berryCrushGame, u8 *params);
-static u32 sub_814D4C8(struct BerryCrushGame * berryCrushGame, u8 *params);
-void sub_814D4D8(struct BerryCrushGame * r4);
-void sub_814D5A4(u8 *r0, u32 r1, u32 r2, u32 r3, u32 r5);
+static u32 BerryCrushCommand_BeginNormalPaletteFade(struct BerryCrushGame * game, u8 *params);
+static u32 BerryCrushCommand_WaitPaletteFade(struct BerryCrushGame * game, u8 *params);
+static u32 BerryCrushCommand_PrintMessage(struct BerryCrushGame * game, u8 *params);
+static u32 BerryCrushCommand_InitGfx(struct BerryCrushGame * game, u8 *params);
+static u32 BerryCrushCommand_TeardownGfx(struct BerryCrushGame * game, u8 *params);
+static u32 BerryCrushCommand_SignalReadyToBegin(struct BerryCrushGame * game, u8 *params);
+static u32 BerryCrushCommand_AskPickBerry(struct BerryCrushGame * game, u8 *params);
+static u32 BerryCrushCommand_GoToBerryPouch(struct BerryCrushGame * game, u8 *params);
+static u32 BerryCrushCommand_WaitForOthersToPickBerries(struct BerryCrushGame * game, u8 *params);
+static u32 BerryCrushCommand_DropBerriesIntoCrusher(struct BerryCrushGame * game, u8 *params);
+static u32 BerryCrushCommand_DropLid(struct BerryCrushGame * game, u8 *params);
+static u32 BerryCrushCommand_Countdown(struct BerryCrushGame * game, u8 *params);
+static u32 BerryCrushCommand_PlayGame_Master(struct BerryCrushGame * game, u8 *params);
+static u32 BerryCrushCommand_PlayGame_Slave(struct BerryCrushGame * game, u8 *params);
+static u32 BerryCrushCommand_FinishGame(struct BerryCrushGame * game, u8 *params);
+static u32 BerryCrushCommand_HandleTimeUp(struct BerryCrushGame * game, u8 *params);
+static u32 BerryCrushCommand_TabulateResults(struct BerryCrushGame * game, u8 *params);
+static u32 BerryCrushCommand_ShowResults(struct BerryCrushGame * game, u8 *params);
+static u32 BerryCrushCommand_SaveTheGame(struct BerryCrushGame * game, u8 *params);
+static u32 BerryCrushCommand_AskPlayAgain(struct BerryCrushGame * game, u8 *params);
+static u32 BerryCrushCommand_CommunicatePlayAgainResponses(struct BerryCrushGame * game, u8 *params);
+static u32 BerryCrushCommand_FadeOutToPlayAgain(struct BerryCrushGame * game, u8 *params);
+static u32 BerryCrushCommand_PlayAgainFailureMessage(struct BerryCrushGame * game, u8 *params);
+static u32 BerryCrushCommand_GracefulExit(struct BerryCrushGame * game, u8 *params);
+static u32 BerryCrushCommand_Quit(struct BerryCrushGame * game, u8 *params);
+static void sub_814D4D8(struct BerryCrushGame * game);
+static void BerryCrush_SetShowMessageParams(u8 *params, u8 stringId, u8 flags, u16 waitKeys, u8 followupCmd);
static const u8 gUnknown_846E2E0[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
static const u8 gUnknown_846E2E8[] = {0x00, 0x01, 0x02, 0x03, 0x05, 0x00, 0x00, 0x00};
@@ -63,45 +63,45 @@ ALIGNED(4) const u8 gUnknown_846E314[][4] = {
{0x03, 0x05, 0x03, 0x00}
};
-static const u8 *const gUnknown_846E328[] = {
- gUnknown_841CE3C,
- gUnknown_841CE78,
- gUnknown_841CEA8,
- gUnknown_841CF14,
- gUnknown_841CF50,
- gUnknown_841CF70,
- gUnknown_841CFA0,
- gUnknown_841CFD4,
- gUnknown_841D008
+static const u8 *const sBerryCrushMessages[] = {
+ gText_BerryCrush_AreYouReady,
+ gText_BerryCrush_WaitForOthersToChooseBerry,
+ gText_BerryCrush_GainedXUnitsOfPowder,
+ gText_BerryCrush_RecordingGameResults,
+ gText_BerryCrush_WantToPlayAgain,
+ gText_BerryCrush_NoBerries,
+ gText_BerryCrush_MemberDroppedOut,
+ gText_BerryCrush_TimeUp,
+ gText_BerryCrush_CommunicationStandby
};
-static u32 (*const gUnknown_846E34C[])(struct BerryCrushGame * berryCrushGame, u8 *params) = {
+static u32 (*const sBerryCrushCommands[])(struct BerryCrushGame * berryCrushGame, u8 *params) = {
NULL,
- sub_814BBB8,
- sub_814BC10,
- sub_814BC74,
- sub_814BD7C,
- sub_814BD9C,
- sub_814BDBC,
- sub_814BE0C,
- sub_814BE64,
- sub_814BE7C,
- sub_814BFD0,
- sub_814C118,
- sub_814C24C,
- sub_814C850,
- sub_814C8F8,
- sub_814C990,
- sub_814CB20,
- sub_814CC0C,
- sub_814CFA8,
- sub_814D094,
- sub_814D188,
- sub_814D240,
- sub_814D31C,
- sub_814D3A4,
- sub_814D468,
- sub_814D4C8
+ BerryCrushCommand_BeginNormalPaletteFade,
+ BerryCrushCommand_WaitPaletteFade,
+ BerryCrushCommand_PrintMessage,
+ BerryCrushCommand_InitGfx,
+ BerryCrushCommand_TeardownGfx,
+ BerryCrushCommand_SignalReadyToBegin,
+ BerryCrushCommand_AskPickBerry,
+ BerryCrushCommand_GoToBerryPouch,
+ BerryCrushCommand_WaitForOthersToPickBerries,
+ BerryCrushCommand_DropBerriesIntoCrusher,
+ BerryCrushCommand_DropLid,
+ BerryCrushCommand_Countdown,
+ BerryCrushCommand_PlayGame_Master,
+ BerryCrushCommand_PlayGame_Slave,
+ BerryCrushCommand_FinishGame,
+ BerryCrushCommand_HandleTimeUp,
+ BerryCrushCommand_TabulateResults,
+ BerryCrushCommand_ShowResults,
+ BerryCrushCommand_SaveTheGame,
+ BerryCrushCommand_AskPlayAgain,
+ BerryCrushCommand_CommunicatePlayAgainResponses,
+ BerryCrushCommand_FadeOutToPlayAgain,
+ BerryCrushCommand_PlayAgainFailureMessage,
+ BerryCrushCommand_GracefulExit,
+ BerryCrushCommand_Quit
};
static const u8 gUnknown_846E3B4[][4] = {
@@ -111,161 +111,167 @@ static const u8 gUnknown_846E3B4[][4] = {
{0x04, 0x08, 0x0c, 0x11}
};
-static const u8 gUnknown_846E3C4[] = {0x05, 0x07, 0x09, 0x0c};
+static const u8 gUnknown_846E3C4[] = {5, 7, 9, 12};
-static const u8 gUnknown_846E3C8[] = {0x03, 0x07, 0x0F, 0x1F};
+static const u8 sReceivedPlayerBitmasks[] = {0x03, 0x07, 0x0F, 0x1F};
-void sub_814BB4C(u16 r5, u8 r4, u8 *r7)
+void BerryCrush_RunOrScheduleCommand(u16 command, u8 runMode, u8 *params)
{
- struct BerryCrushGame * r6 = sub_814B6F0();
+ struct BerryCrushGame * game = GetBerryCrushGame();
- if (r5 > 25)
- r5 = 0;
- switch (r4)
+ if (command >= NELEMS(sBerryCrushCommands))
+ command = 0;
+ switch (runMode)
{
case 0:
- if (r5 != 0)
- gUnknown_846E34C[r5](r6, r7);
- if (r6->unkE > 25)
- r6->unkE = r4;
- r6->unk4 = gUnknown_846E34C[r6->unkE];
+ // Call now and set followup to game->nextCmd
+ if (command != 0)
+ sBerryCrushCommands[command](game, params);
+ if (game->nextCmd >= NELEMS(sBerryCrushCommands))
+ game->nextCmd = 0;
+ game->cmdCallback = sBerryCrushCommands[game->nextCmd];
break;
case 1:
- r6->unk4 = gUnknown_846E34C[r5];
+ // Schedule for next frame
+ game->cmdCallback = sBerryCrushCommands[command];
break;
}
}
-static u32 sub_814BBB8(struct BerryCrushGame * r6, u8 *r1)
+static u32 BerryCrushCommand_BeginNormalPaletteFade(struct BerryCrushGame * game, u8 *params)
{
- u16 r4;
- u32 r0;
-#ifndef NONMATCHING // fake match, nobody can write such code
- register u32 r2 asm("r2");
- register u32 r3 asm("r3");
+ // params points to packed values:
+ // bytes 0-3: selectedPals (bitfield)
+ // byte 4: delay
+ // byte 5: startY
+ // byte 6: stopY
+ // bytes 7-8: fade color
+ // byte 9: if TRUE, communicate on fade complete
- r2 = r1[0];
- r3 = r1[1];
- r3 <<= 8;
- r2 |= r3;
- r3 = r1[2];
- r3 <<= 16;
- r2 |= r3;
- r3 = r1[3];
- r3 <<= 24;
- r0 = r2;
- r0 |= r3;
+ u16 color;
+ u32 selectedPals;
+ selectedPals = ({
+#ifndef NONMATCHING
+ register u32 value asm("r2");
+ register u32 b asm("r3");
#else
- u32 r2;
+ u32 value;
+ u32 b;
+#endif //NONMATCHING
+ value = params[0] << 0;
+ value |= (b = params[1] << 8);
+ value |= (b = params[2] << 16);
+ value |= (b = params[3] << 24);
+ value;
+ });
+
+ params[0] = params[9];
+
+ color = params[8] << 8;
+ color |= params[7] << 0;
- r0 = T1_READ_32(r1);
-#endif
- r2 = r1[9];
- r1[0] = r2;
- r4 = r1[8] << 8;
- r2 = r1[7];
- r4 |= r2;
gPaletteFade.bufferTransferDisabled = FALSE;
- BeginNormalPaletteFade(r0, r1[4], r1[5], r1[6], r4);
+ BeginNormalPaletteFade(selectedPals, params[4], params[5], params[6], color);
UpdatePaletteFade();
- r6->unkE = 2;
+ game->nextCmd = BCCMD_WaitPaletteFade;
return 0;
}
-static u32 sub_814BC10(struct BerryCrushGame * r4, u8 *r5)
+static u32 BerryCrushCommand_WaitPaletteFade(struct BerryCrushGame * game, u8 *params)
{
- switch (r4->unkC)
+ switch (game->cmdState)
{
case 0:
if (UpdatePaletteFade())
return 0;
- if(r5[0] != 0)
- ++r4->unkC;
+ if(params[0] != 0)
+ ++game->cmdState;
else
- r4->unkC = 3;
+ game->cmdState = 3;
return 0;
case 1:
LinkRfu_SetRfuFuncToSend6600();
- ++r4->unkC;
+ ++game->cmdState;
return 0;
case 2:
if (IsLinkTaskFinished())
{
- ++r4->unkC;
+ ++game->cmdState;
return 0;
}
return 0;
case 3:
- sub_814BB4C(r4->unkF, 1, NULL);
- r4->unkC = 0;
+ BerryCrush_RunOrScheduleCommand(game->afterPalFadeCmd, 1, NULL);
+ game->cmdState = 0;
return 0;
default:
- ++r4->unkC;
+ ++game->cmdState;
return 0;
}
}
-static u32 sub_814BC74(struct BerryCrushGame * r7, u8 *r5)
+static u32 BerryCrushCommand_PrintMessage(struct BerryCrushGame * game, u8 *params)
{
- u16 r4 = r5[3];
+ u16 waitKeys;
- r4 <<= 8;
- r4 |= r5[2];
- switch (r7->unkC)
+ waitKeys = params[3];
+ waitKeys <<= 8;
+ waitKeys |= params[2] << 0;
+ switch (game->cmdState)
{
case 0:
- DrawDialogueFrame(0, 0);
- if (r5[1] & 2)
+ DrawDialogueFrame(0, FALSE);
+ if (params[1] & 2)
{
- StringExpandPlaceholders(gStringVar4, gUnknown_846E328[r5[0]]);
- AddTextPrinterParameterized2(0, 2, gStringVar4, r7->unkB, 0, 2, 1, 3);
+ StringExpandPlaceholders(gStringVar4, sBerryCrushMessages[params[0]]);
+ AddTextPrinterParameterized2(0, 2, gStringVar4, game->textSpeed, 0, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GREY);
}
else
{
- AddTextPrinterParameterized2(0, 2, gUnknown_846E328[r5[0]], r7->unkB, 0, 2, 1, 3);
+ AddTextPrinterParameterized2(0, 2, sBerryCrushMessages[params[0]], game->textSpeed, NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GREY);
}
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_BOTH);
break;
case 1:
if (!IsTextPrinterActive(0))
{
- if (r4 == 0)
- ++r7->unkC;
+ if (waitKeys == 0)
+ ++game->cmdState;
break;
}
return 0;
case 2:
- if (!(r4 & gMain.newKeys))
+ if (!(waitKeys & gMain.newKeys))
return 0;
break;
case 3:
- if (r5[1] & 1)
+ if (params[1] & 1)
ClearDialogWindowAndFrame(0, TRUE);
- sub_814BB4C(r7->unkE, 1, NULL);
- r7->unkC = r5[4];
+ BerryCrush_RunOrScheduleCommand(game->nextCmd, 1, NULL);
+ game->cmdState = params[4];
return 0;
}
- ++r7->unkC;
+ ++game->cmdState;
return 0;
}
-static u32 sub_814BD7C(struct BerryCrushGame * r4, UNUSED u8 *r1)
+static u32 BerryCrushCommand_InitGfx(struct BerryCrushGame * game, UNUSED u8 *params)
{
- if (sub_814D5C8() != 0)
- sub_814BB4C(r4->unkE, 0, r4->unk36);
+ if (BerryCrush_InitBgs() != 0)
+ BerryCrush_RunOrScheduleCommand(game->nextCmd, 0, game->commandParams);
return 0;
}
-static u32 sub_814BD9C(struct BerryCrushGame * r4, UNUSED u8 *r1)
+static u32 BerryCrushCommand_TeardownGfx(struct BerryCrushGame * game, UNUSED u8 *params)
{
- if (sub_814D888() != 0)
- sub_814BB4C(r4->unkE, 0, r4->unk36);
+ if (BerryCrush_TeardownBgs() != 0)
+ BerryCrush_RunOrScheduleCommand(game->nextCmd, 0, game->commandParams);
return 0;
}
-static u32 sub_814BDBC(struct BerryCrushGame * r4, UNUSED u8 *r1)
+static u32 BerryCrushCommand_SignalReadyToBegin(struct BerryCrushGame * game, UNUSED u8 *params)
{
- switch (r4->unkC)
+ switch (game->cmdState)
{
case 0:
LinkRfu_SetRfuFuncToSend6600();
@@ -274,55 +280,55 @@ static u32 sub_814BDBC(struct BerryCrushGame * r4, UNUSED u8 *r1)
if (IsLinkTaskFinished())
{
PlayNewMapMusic(MUS_SLOT);
- sub_814BB4C(7, 1, NULL);
- r4->unk12 = 3;
- r4->unkC = 0;
+ BerryCrush_RunOrScheduleCommand(BCCMD_AskPickBerry, 1, NULL);
+ game->gameState = 3;
+ game->cmdState = 0;
}
return 0;
}
- ++r4->unkC;
+ ++game->cmdState;
return 0;
}
-static u32 sub_814BE0C(struct BerryCrushGame * r4, u8 *r5)
+static u32 BerryCrushCommand_AskPickBerry(struct BerryCrushGame * game, u8 *params)
{
- switch (r4->unkC)
+ switch (game->cmdState)
{
default:
- ++r4->unkC;
+ ++game->cmdState;
break;
case 0:
- sub_814D4D8(r4);
- sub_814D5A4(r5, 0, 1, 0, 1);
- r4->unkE = 7;
- sub_814BB4C(3, 1, NULL);
+ sub_814D4D8(game);
+ BerryCrush_SetShowMessageParams(params, BCTEXT_AREYOUREADY, 1, 0, BCCMD_BeginNormalPaletteFade);
+ game->nextCmd = BCCMD_AskPickBerry;
+ BerryCrush_RunOrScheduleCommand(BCCMD_PrintMessage, 1, NULL);
break;
case 1:
- r4->unkE = 8;
- sub_814BB4C(5, 1, NULL);
- r4->unkC = 2;
+ game->nextCmd = BCCMD_GoToBerryPouch;
+ BerryCrush_RunOrScheduleCommand(BCCMD_TeardownGfx, 1, NULL);
+ game->cmdState = 2;
break;
}
return 0;
}
-static u32 sub_814BE64(struct BerryCrushGame * r0, UNUSED u8 *r1)
+static u32 BerryCrushCommand_GoToBerryPouch(struct BerryCrushGame * game, UNUSED u8 *params)
{
- r0->unk4 = NULL;
- SetMainCallback2(sub_814B8F0);
+ game->cmdCallback = NULL;
+ SetMainCallback2(CB2_BerryCrush_GoToBerryPouch);
return 0;
}
-static u32 sub_814BE7C(struct BerryCrushGame * r5, u8 *r2)
+static u32 BerryCrushCommand_WaitForOthersToPickBerries(struct BerryCrushGame * game, u8 *params)
{
- u8 r3;
+ u8 i;
- switch (r5->unkC)
+ switch (game->cmdState)
{
case 0:
- sub_814D5A4(r2, 1, 0, 0, 1);
- r5->unkE = 9;
- sub_814BB4C(3, 1, NULL);
+ BerryCrush_SetShowMessageParams(params, BCTEXT_WAITFOROTHERS, 0, 0, BCCMD_BeginNormalPaletteFade);
+ game->nextCmd = BCCMD_WaitForOthersToPickBerries;
+ BerryCrush_RunOrScheduleCommand(BCCMD_PrintMessage, 1, NULL);
return 0;
case 1:
LinkRfu_SetRfuFuncToSend6600();
@@ -330,126 +336,126 @@ static u32 sub_814BE7C(struct BerryCrushGame * r5, u8 *r2)
case 2:
if (!IsLinkTaskFinished())
return 0;
- memset(r5->unk40.unk2, 0, sizeof(r5->unk40.unk2));
- r5->unk40.unk2[0] = r5->unk68.as_four_players.others[r5->unk8].unk0;
- SendBlock(0, r5->unk40.unk2, 2);
+ memset(game->sendCmd + 1, 0, sizeof(game->sendCmd) - 2);
+ game->sendCmd[1] = game->unk68.as_four_players.others[game->localId].berryId;
+ SendBlock(0, game->sendCmd + 1, 2);
break;
case 3:
if (!IsLinkTaskFinished())
return 0;
- r5->unk10 = 0;
+ game->unk10 = 0;
break;
case 4:
- if (GetBlockReceivedStatus() != gUnknown_846E3C8[r5->unk9 - 2])
+ if (GetBlockReceivedStatus() != sReceivedPlayerBitmasks[game->playerCount - 2])
return 0;
- for (r3 = 0; r3 < r5->unk9; ++r3)
+ for (i = 0; i < game->playerCount; ++i)
{
- r5->unk68.as_four_players.others[r3].unk0 = gBlockRecvBuffer[r3][0];
- if (r5->unk68.as_four_players.others[r3].unk0 > 0xB0)
- r5->unk68.as_four_players.others[r3].unk0 = 0;
- r5->unk18 += gUnknown_83DFC9C[r5->unk68.as_four_players.others[r3].unk0].unk0;
- r5->unk1C += gUnknown_83DFC9C[r5->unk68.as_four_players.others[r3].unk0].unk1;
+ game->unk68.as_four_players.others[i].berryId = gBlockRecvBuffer[i][0];
+ if (game->unk68.as_four_players.others[i].berryId > 0xB0)
+ game->unk68.as_four_players.others[i].berryId = 0;
+ game->unk18 += gBerryCrushStats[game->unk68.as_four_players.others[i].berryId].unk0;
+ game->powder += gBerryCrushStats[game->unk68.as_four_players.others[i].berryId].powder;
}
- r5->unk10 = 0;
+ game->unk10 = 0;
ResetBlockReceivedFlags();
- r5->unk20 = sub_80D8B68(r5->unk18 << 8, 0x2000);
+ game->unk20 = MathUtil_Div32(game->unk18 << 8, 0x2000);
break;
case 5:
- ClearDialogWindowAndFrame(0, 1);
- sub_814BB4C(10, 1, NULL);
- r5->unk12 = 4;
- r5->unkC = 0;
+ ClearDialogWindowAndFrame(0, TRUE);
+ BerryCrush_RunOrScheduleCommand(BCCMD_DropBerriesIntoCrusher, 1, NULL);
+ game->gameState = 4;
+ game->cmdState = 0;
return 0;
}
- ++r5->unkC;
+ ++game->cmdState;
return 0;
}
-static u32 sub_814BFD0(struct BerryCrushGame * r4, UNUSED u8 *r1)
+static u32 BerryCrushCommand_DropBerriesIntoCrusher(struct BerryCrushGame * game, UNUSED u8 *params)
{
- switch (r4->unkC)
+ switch (game->cmdState)
{
case 0:
- sub_814DA24(r4, &r4->unk138);
+ BerryCrush_CreateBerrySprites(game, &game->spritesManager);
LinkRfu_SetRfuFuncToSend6600();
break;
case 1:
if (!IsLinkTaskFinished())
return 0;
- r4->unk138.unk0 = 0;
- r4->unk138.unk1 = 0;
- r4->unk138.unk2 = 0;
- r4->unk138.unk3 = 0;
+ game->spritesManager.animBerryIdx = 0;
+ game->spritesManager.unk1 = 0;
+ game->spritesManager.unk2 = 0;
+ game->spritesManager.unk3 = 0;
break;
case 2:
- r4->unk138.unk38[r4->unk138.unk0]->callback = sub_814DB84;
- r4->unk138.unk38[r4->unk138.unk0]->affineAnimPaused = FALSE;
+ game->spritesManager.berrySprites[game->spritesManager.animBerryIdx]->callback = SpriteCB_DropBerryIntoCrusher;
+ game->spritesManager.berrySprites[game->spritesManager.animBerryIdx]->affineAnimPaused = FALSE;
PlaySE(SE_NAGERU);
break;
case 3:
- if (r4->unk138.unk38[r4->unk138.unk0]->callback == sub_814DB84)
+ if (game->spritesManager.berrySprites[game->spritesManager.animBerryIdx]->callback == SpriteCB_DropBerryIntoCrusher)
return 0;
- r4->unk138.unk38[r4->unk138.unk0] = NULL;
- ++r4->unk138.unk0;
+ game->spritesManager.berrySprites[game->spritesManager.animBerryIdx] = NULL;
+ ++game->spritesManager.animBerryIdx;
LinkRfu_SetRfuFuncToSend6600();
break;
case 4:
if (!IsLinkTaskFinished())
return 0;
- if (r4->unk138.unk0 < r4->unk9)
+ if (game->spritesManager.animBerryIdx < game->playerCount)
{
- r4->unkC = 2;
+ game->cmdState = 2;
return 0;
}
- r4->unk138.unk0 = 0;
+ game->spritesManager.animBerryIdx = 0;
break;
case 5:
- sub_814DC24(r4, &r4->unk138);
+ BerryCrushFreeBerrySpriteGfx(game, &game->spritesManager);
LinkRfu_SetRfuFuncToSend6600();
break;
case 6:
if (!IsLinkTaskFinished())
return 0;
PlaySE(SE_RU_HYUU);
- sub_814BB4C(11, 1, NULL);
- r4->unk12 = 5;
- r4->unkC = 0;
+ BerryCrush_RunOrScheduleCommand(BCCMD_DropLid, 1, NULL);
+ game->gameState = 5;
+ game->cmdState = 0;
return 0;
}
- ++r4->unkC;
+ ++game->cmdState;
return 0;
}
-static u32 sub_814C118(struct BerryCrushGame * r4, UNUSED u8 *r1)
+static u32 BerryCrushCommand_DropLid(struct BerryCrushGame * game, UNUSED u8 *params)
{
- switch (r4->unkC)
+ switch (game->cmdState)
{
case 0:
- r4->unk2A += 4;
- if (r4->unk2A < 0)
+ game->depth += 4;
+ if (game->depth < 0)
return 0;
- r4->unk2A = 0;
- r4->unk138.unk1 = 4;
- r4->unk138.unk0 = 0;
- r4->unk138.unk2 = gUnknown_846E2F0[r4->unk138.unk1][0];
+ game->depth = 0;
+ game->spritesManager.unk1 = 4;
+ game->spritesManager.animBerryIdx = 0;
+ game->spritesManager.unk2 = gUnknown_846E2F0[game->spritesManager.unk1][0];
PlaySE(SE_W070);
break;
case 1:
- r4->unk2C = gUnknown_846E2F0[r4->unk138.unk1][r4->unk138.unk0];
- SetGpuReg(REG_OFFSET_BG0VOFS, -r4->unk2C);
- SetGpuReg(REG_OFFSET_BG2VOFS, -r4->unk2C);
- SetGpuReg(REG_OFFSET_BG3VOFS, -r4->unk2C);
- ++r4->unk138.unk0;
- if (r4->unk138.unk0 < r4->unk138.unk2)
+ game->vibration = gUnknown_846E2F0[game->spritesManager.unk1][game->spritesManager.animBerryIdx];
+ SetGpuReg(REG_OFFSET_BG0VOFS, -game->vibration);
+ SetGpuReg(REG_OFFSET_BG2VOFS, -game->vibration);
+ SetGpuReg(REG_OFFSET_BG3VOFS, -game->vibration);
+ ++game->spritesManager.animBerryIdx;
+ if (game->spritesManager.animBerryIdx < game->spritesManager.unk2)
return 0;
- if (r4->unk138.unk1 == 0)
+ if (game->spritesManager.unk1 == 0)
break;
- --r4->unk138.unk1;
- r4->unk138.unk2 = gUnknown_846E2F0[r4->unk138.unk1][0];
- r4->unk138.unk0 = 0;
+ --game->spritesManager.unk1;
+ game->spritesManager.unk2 = gUnknown_846E2F0[game->spritesManager.unk1][0];
+ game->spritesManager.animBerryIdx = 0;
return 0;
case 2:
- r4->unk2C = 0;
+ game->vibration = 0;
SetGpuReg(REG_OFFSET_BG0VOFS, 0);
SetGpuReg(REG_OFFSET_BG2VOFS, 0);
SetGpuReg(REG_OFFSET_BG3VOFS, 0);
@@ -458,19 +464,22 @@ static u32 sub_814C118(struct BerryCrushGame * r4, UNUSED u8 *r1)
case 3:
if (!IsLinkTaskFinished())
return 0;
- sub_814BB4C(12, 1, NULL);
- r4->unk12 = 6;
- r4->unkC = 0;
+ BerryCrush_RunOrScheduleCommand(BCCMD_Countdown, 1, NULL);
+ game->gameState = 6;
+ game->cmdState = 0;
return 0;
}
- ++r4->unkC;
+ ++game->cmdState;
return 0;
}
-static u32 sub_814C24C(struct BerryCrushGame * r4, UNUSED u8 *r1)
+static u32 BerryCrushCommand_Countdown(struct BerryCrushGame * game, UNUSED u8 *params)
{
- switch (r4-> unkC)
+ switch (game-> cmdState)
{
+ case 0:
+ LinkRfu_SetRfuFuncToSend6600();
+ break;
case 1:
if (!IsLinkTaskFinished())
return 0;
@@ -479,424 +488,422 @@ static u32 sub_814C24C(struct BerryCrushGame * r4, UNUSED u8 *r1)
case 2:
if (IsMinigameCountdownRunning())
return 0;
- // fallthrough
- case 0:
LinkRfu_SetRfuFuncToSend6600();
break;
case 3:
if (!IsLinkTaskFinished())
return 0;
- r4->unk138.unk0 = 0;
- r4->unk138.unk1 = 0;
- r4->unk138.unk2 = 0;
- r4->unk138.unk3 = 0;
- r4->unk10 = 0;
- if (r4->unk8 == 0)
- sub_814BB4C(13, 1, NULL);
+ game->spritesManager.animBerryIdx = 0;
+ game->spritesManager.unk1 = 0;
+ game->spritesManager.unk2 = 0;
+ game->spritesManager.unk3 = 0;
+ game->unk10 = 0;
+ if (game->localId == 0)
+ BerryCrush_RunOrScheduleCommand(BCCMD_PlayGame_Master, 1, NULL);
else
- sub_814BB4C(14, 1, NULL);
- r4->unk12 = 7;
- r4->unkC = 0;
+ BerryCrush_RunOrScheduleCommand(BCCMD_PlayGame_Slave, 1, NULL);
+ game->gameState = 7;
+ game->cmdState = 0;
return 0;
}
- ++r4->unkC;
+ ++game->cmdState;
return 0;
}
-void sub_814C2FC(struct BerryCrushGame * r4)
+static void BerryCrush_ProcessGamePartnerInput(struct BerryCrushGame * game)
{
- u8 r8 = 0;
+ u8 numPressedA = 0;
u16 r3;
- u16 *r2;
- u8 r7 = 0;
+ u16 *curRecvCmd;
+ u8 i = 0;
s32 r2_ = 0;
s32 r0;
- for (r7 = 0; r7 < r4->unk9; ++r7)
+ for (i = 0; i < game->playerCount; ++i)
{
- r2 = gRecvCmds[r7];
- if ((r2[0] & 0xFF00) == 0x2F00
- && r2[1] == 2)
+ curRecvCmd = gRecvCmds[i];
+ if ((curRecvCmd[0] & 0xFF00) == 0x2F00
+ && curRecvCmd[1] == 2)
{
- if ((u8)r2[2] & 4)
+ if ((u8)curRecvCmd[2] & 4) // pushedAButton
{
- r4->unk5C.unk02_3 |= gUnknown_846E2E0[r7];
- r4->unk68.as_four_players.others[r7].unk4.as_2d_bytes[1][5] = 1;
- ++r4->unk68.as_four_players.others[r7].unk4.as_hwords[3];
- ++r8;
- r3 = r4->unk28 - r4->unk68.as_four_players.others[r7].unk2;
- if (r3 >= r4->unk68.as_four_players.others[r7].unk4.as_hwords[1] - 1
- && r3 <= r4->unk68.as_four_players.others[r7].unk4.as_hwords[1] + 1)
+ game->localState.unk02_3 |= gUnknown_846E2E0[i];
+ game->unk68.as_four_players.others[i].unk4.as_2d_bytes[1][5] = 1;
+ ++game->unk68.as_four_players.others[i].unk4.as_hwords[3];
+ ++numPressedA;
+ r3 = game->timer - game->unk68.as_four_players.others[i].unk2;
+ if (r3 >= game->unk68.as_four_players.others[i].unk4.as_hwords[1] - 1
+ && r3 <= game->unk68.as_four_players.others[i].unk4.as_hwords[1] + 1)
{
- ++r4->unk68.as_four_players.others[r7].unk4.as_hwords[0];
- r4->unk68.as_four_players.others[r7].unk4.as_hwords[1] = r3;
- if (r4->unk68.as_four_players.others[r7].unk4.as_hwords[0] > r4->unk68.as_four_players.others[r7].unk4.as_hwords[2])
- r4->unk68.as_four_players.others[r7].unk4.as_hwords[2] = r4->unk68.as_four_players.others[r7].unk4.as_hwords[0];
+ ++game->unk68.as_four_players.others[i].unk4.as_hwords[0];
+ game->unk68.as_four_players.others[i].unk4.as_hwords[1] = r3;
+ if (game->unk68.as_four_players.others[i].unk4.as_hwords[0] > game->unk68.as_four_players.others[i].unk4.as_hwords[2])
+ game->unk68.as_four_players.others[i].unk4.as_hwords[2] = game->unk68.as_four_players.others[i].unk4.as_hwords[0];
}
else
{
- r4->unk68.as_four_players.others[r7].unk4.as_hwords[0] = 0;
- r4->unk68.as_four_players.others[r7].unk4.as_hwords[1] = r3;
+ game->unk68.as_four_players.others[i].unk4.as_hwords[0] = 0;
+ game->unk68.as_four_players.others[i].unk4.as_hwords[1] = r3;
}
- r4->unk68.as_four_players.others[r7].unk2 = r4->unk28;
- if (++r4->unk68.as_four_players.others[r7].unk4.as_2d_bytes[1][4] > 2)
- r4->unk68.as_four_players.others[r7].unk4.as_2d_bytes[1][4] = 0;
+ game->unk68.as_four_players.others[i].unk2 = game->timer;
+ if (++game->unk68.as_four_players.others[i].unk4.as_2d_bytes[1][4] > 2)
+ game->unk68.as_four_players.others[i].unk4.as_2d_bytes[1][4] = 0;
}
else
{
- r4->unk68.as_four_players.others[r7].unk4.as_2d_bytes[1][5] = 0;
+ game->unk68.as_four_players.others[i].unk4.as_2d_bytes[1][5] = 0;
}
}
}
- if (r8 > 1)
+ if (numPressedA > 1)
{
- for (r7 = 0; r7 < r4->unk9; ++r7)
+ for (i = 0; i < game->playerCount; ++i)
{
- if (r4->unk68.as_four_players.others[r7].unk4.as_2d_bytes[1][5] != 0)
+ if (game->unk68.as_four_players.others[i].unk4.as_2d_bytes[1][5] != 0)
{
- r4->unk68.as_four_players.others[r7].unk4.as_2d_bytes[1][5] |= 2;
- ++r4->unk68.as_four_players.others[r7].unk4.as_hwords[4];
+ game->unk68.as_four_players.others[i].unk4.as_2d_bytes[1][5] |= 2;
+ ++game->unk68.as_four_players.others[i].unk4.as_hwords[4];
}
}
}
- if (r8 != 0)
+ if (numPressedA != 0)
{
- r4->unk2E += r8;
- r8 += gUnknown_846E2E8[r8 - 1];
- r4->unk34 += r8;
- r4->unk1A += r8;
- r0 = r4->unk18;
- r2_ = r4->unk1A;
+ game->unk2E += numPressedA;
+ numPressedA += gUnknown_846E2E8[numPressedA - 1];
+ game->unk34 += numPressedA;
+ game->unk1A += numPressedA;
+ r0 = game->unk18;
+ r2_ = game->unk1A;
if (r0 - r2_ > 0)
{
r2_ <<= 8;
- r2_ = sub_80D8B68(r2_, r4->unk20);
+ r2_ = MathUtil_Div32(r2_, game->unk20);
r2_ >>= 8;
- r4->unk24 = r2_;
+ game->unk24 = r2_;
}
else
{
- r4->unk24 = 32;
- r4->unk5C.unk02_0 = 1;
+ game->unk24 = 32;
+ game->localState.unk02_0 = 1;
}
}
}
-void sub_814C4B8(struct BerryCrushGame * r3)
+static void BerryCrush_BuildLocalState(struct BerryCrushGame * game)
{
- u8 r6 = 0;
+ u8 count = 0;
u16 r1 = 0;
- u8 r4 = 0;
+ u8 i = 0;
- for (r4 = 0; r4 < r3->unk9; ++r4)
+ for (i = 0; i < game->playerCount; ++i)
{
- if (r3->unk68.as_four_players.others[r4].unk4.as_2d_bytes[1][5] != 0)
+ if (game->unk68.as_four_players.others[i].unk4.as_2d_bytes[1][5] != 0)
{
- ++r6;
- r1 = r3->unk68.as_four_players.others[r4].unk4.as_2d_bytes[1][4] + 1;
- if (r3->unk68.as_four_players.others[r4].unk4.as_2d_bytes[1][5] & 2)
+ ++count;
+ r1 = game->unk68.as_four_players.others[i].unk4.as_2d_bytes[1][4] + 1;
+ if (game->unk68.as_four_players.others[i].unk4.as_2d_bytes[1][5] & 2)
r1 |= 4;
- r1 <<= 3 * r4;
- r3->unk5C.unk08 |= r1;
+ r1 <<= 3 * i;
+ game->localState.unk08 |= r1;
}
}
- r3->unk5C.unk04 = r3->unk24;
- if (r6 == 0)
+ game->localState.unk04 = game->unk24;
+ if (count == 0)
{
- if (r3->unk138.unk3 != 0)
- ++r3->unk138.unk0;
+ if (game->spritesManager.unk3 != 0)
+ ++game->spritesManager.animBerryIdx;
else
goto SET_UNK5F_0;
}
else
{
- if (r3->unk138.unk3 != 0)
+ if (game->spritesManager.unk3 != 0)
{
- if (r6 != r3->unk138.unk1)
+ if (count != game->spritesManager.unk1)
{
- r3->unk138.unk1 = r6 - 1;
- r3->unk138.unk2 = gUnknown_846E314[r6 - 1][0];
+ game->spritesManager.unk1 = count - 1;
+ game->spritesManager.unk2 = gUnknown_846E314[count - 1][0];
}
else
{
- ++r3->unk138.unk0;
+ ++game->spritesManager.animBerryIdx;
}
}
else
{
- r3->unk138.unk0 = 0;
- r3->unk138.unk1 = r6 - 1;
- r3->unk138.unk2 = gUnknown_846E314[r6 - 1][0];
- r3->unk138.unk3 = 1;
+ game->spritesManager.animBerryIdx = 0;
+ game->spritesManager.unk1 = count - 1;
+ game->spritesManager.unk2 = gUnknown_846E314[count - 1][0];
+ game->spritesManager.unk3 = 1;
}
}
- if (r3->unk138.unk3 != 0)
+ if (game->spritesManager.unk3 != 0)
{
- if (r3->unk138.unk0 >= r3->unk138.unk2)
+ if (game->spritesManager.animBerryIdx >= game->spritesManager.unk2)
{
- r3->unk138.unk0 = 0;
- r3->unk138.unk1 = 0;
- r3->unk138.unk2 = 0;
- r3->unk138.unk3 = 0;
+ game->spritesManager.animBerryIdx = 0;
+ game->spritesManager.unk1 = 0;
+ game->spritesManager.unk2 = 0;
+ game->spritesManager.unk3 = 0;
r1 = 0;
}
else
{
- r1 = gUnknown_846E314[r3->unk138.unk1][r3->unk138.unk0 + 1];
+ r1 = gUnknown_846E314[game->spritesManager.unk1][game->spritesManager.animBerryIdx + 1];
}
- r3->unk5C.unk03 = r1;
+ game->localState.unk03 = r1;
}
else
{
SET_UNK5F_0:
- r3->unk5C.unk03 = 0;
+ game->localState.unk03 = 0;
}
- r3->unk5C.unk06 = r3->unk26;
+ game->localState.unk06 = game->unk26;
}
-void sub_814C618(struct BerryCrushGame * r5)
+static void BerryCrush_HandlePlayerInput(struct BerryCrushGame * game)
{
- if (gMain.newKeys & A_BUTTON)
- r5->unk5C.unk02_2 = 1;
- if (gMain.heldKeys & A_BUTTON)
+ if (JOY_NEW(A_BUTTON))
+ game->localState.pushedAButton = TRUE;
+ if (JOY_HELD(A_BUTTON))
{
- if (r5->unk68.as_four_players.others[r5->unk8].unk4.as_hwords[5] < r5->unk28)
- ++r5->unk68.as_four_players.others[r5->unk8].unk4.as_hwords[5];
+ if (game->unk68.as_four_players.others[game->localId].unk4.as_hwords[5] < game->timer)
+ ++game->unk68.as_four_players.others[game->localId].unk4.as_hwords[5];
}
- if (r5->unk8 != 0 && r5->unk5C.unk02_2 == 0)
+ if (game->localId != 0 && !game->localState.pushedAButton)
return;
- r5->unk5C.unk00 = 2;
- if (r5->unk28 % 30 == 0)
+ game->localState.unk00 = 2;
+ if (game->timer % 30 == 0)
{
- if (r5->unk2E > gUnknown_846E3C4[r5->unk9 - 2])
+ if (game->unk2E > gUnknown_846E3C4[game->playerCount - 2])
{
- ++r5->unk30;
- r5->unk25_4 = 1;
+ ++game->unk30;
+ game->unk25_4 = 1;
}
else
{
- r5->unk25_4 = 0;
+ game->unk25_4 = 0;
}
- r5->unk2E = 0;
- ++r5->unk32;
+ game->unk2E = 0;
+ ++game->unk32;
}
- if (r5->unk28 % 15 == 0)
+ if (game->timer % 15 == 0)
{
- if (r5->unk34 < gUnknown_846E3B4[r5->unk9 - 2][0])
- r5->unk25_5 = 0;
- else if (r5->unk34 < gUnknown_846E3B4[r5->unk9 - 2][1])
- r5->unk25_5 = 1;
- else if (r5->unk34 < gUnknown_846E3B4[r5->unk9 - 2][2])
- r5->unk34 = 2; // typo since r5->unk34 will be reset?
- else if (r5->unk34 < gUnknown_846E3B4[r5->unk9 - 2][3])
- r5->unk34 = 3; // typo since r5->unk34 will be reset?
+ if (game->unk34 < gUnknown_846E3B4[game->playerCount - 2][0])
+ game->unk25_5 = 0;
+ else if (game->unk34 < gUnknown_846E3B4[game->playerCount - 2][1])
+ game->unk25_5 = 1;
+ else if (game->unk34 < gUnknown_846E3B4[game->playerCount - 2][2])
+ game->unk34 = 2; // typo since game->unk34 will be reset?
+ else if (game->unk34 < gUnknown_846E3B4[game->playerCount - 2][3])
+ game->unk34 = 3; // typo since game->unk34 will be reset?
else
- r5->unk25_5 = 4;
- r5->unk34 = 0;
+ game->unk25_5 = 4;
+ game->unk34 = 0;
}
else
{
- ++r5->unk10;
- if (r5->unk10 > 60)
+ ++game->unk10;
+ if (game->unk10 > 60)
{
- if (r5->unk10 > 70)
+ if (game->unk10 > 70)
{
sub_80FBA44();
- r5->unk10 = 0;
+ game->unk10 = 0;
}
- else if (r5->unk5C.unk02_3 == 0)
+ else if (game->localState.unk02_3 == 0)
{
sub_80FBA44();
- r5->unk10 = 0;
+ game->unk10 = 0;
}
}
}
- if (r5->unk28 >= 36000)
- r5->unk5C.unk02_0 = 1;
- r5->unk5C.unk02_1 = r5->unk25_4;
- r5->unk5C.unk0A = r5->unk25_5;
- memcpy(r5->unk40.unk2, &r5->unk5C, sizeof(r5->unk40.unk2));
- RfuPrepareSend0x2f00(r5->unk40.unk2);
+ if (game->timer >= 36000)
+ game->localState.unk02_0 = 1;
+ game->localState.unk02_1 = game->unk25_4;
+ game->localState.unk0A = game->unk25_5;
+ memcpy(&game->sendCmd[1], &game->localState, sizeof(game->sendCmd) - 2);
+ RfuPrepareSend0x2f00(game->sendCmd + 1);
}
-void sub_814C7BC(struct BerryCrushGame * r5)
+static void BerryCrush_UpdateGameState(struct BerryCrushGame * game)
{
struct BerryCrushGame_4E * r4_;
#ifndef NONMATCHING
- register u32 r4 asm("r4");
- register u32 r0 asm("r0");
+ register u32 i asm("r4");
+ register u32 iPlusPlus asm("r0");
- for (r4 = 0; r4 < r5->unk9; r4 = (u8)r0)
+ for (i = 0; i < game->playerCount; i = (u8)iPlusPlus)
{
- r5->unk68.as_four_players.others[r4].unk4.as_2d_bytes[1][5] = 0;
- r0 = r4 + 1;
+ game->unk68.as_four_players.others[i].unk4.as_2d_bytes[1][5] = 0;
+ iPlusPlus = i + 1;
}
#else
- u8 r4;
+ u8 i;
- for (r4 = 0; r4 < r5->unk9; ++r4)
- r5->unk68.as_four_players.others[r4].unk4.as_2d_bytes[1][5] = 0;
+ for (i = 0; i < game->playerCount; ++i)
+ game->unk68.as_four_players.others[i].unk4.as_2d_bytes[1][5] = 0;
#endif
if ((gRecvCmds[0][0] & 0xFF00) != 0x2F00
|| gRecvCmds[0][1] != 2)
{
- r5->unk25_2 = 0;
+ game->unk25_2 = 0;
}
else
{
- r4_ = &r5->unk40.unkE;
+ r4_ = (struct BerryCrushGame_4E *)&game->recvCmd;
memcpy(r4_, gRecvCmds, sizeof(struct BerryCrushGame_4E));
- r5->unk2A = r4_->unk6;
- r5->unk2C = r4_->unk5;
- r5->unk28 = r4_->unk8;
- sub_814DC5C(r5, &r5->unk138);
- if (r4_->unk4_0)
- r5->unk25_3 = 1;
+ game->depth = r4_->data.unk04;
+ game->vibration = r4_->data.unk03;
+ game->timer = r4_->data.unk06;
+ sub_814DC5C(game, &game->spritesManager);
+ if (r4_->data.unk02_0)
+ game->unk25_3 = 1;
}
}
-static u32 sub_814C850(struct BerryCrushGame * r4, UNUSED u8 *r1)
+static u32 BerryCrushCommand_PlayGame_Master(struct BerryCrushGame * game, UNUSED u8 *params)
{
- memset(&r4->unk5C, 0, sizeof(r4->unk5C));
- memset(&r4->unk40.unkE, 0, sizeof(r4->unk40.unkE));
- sub_814C7BC(r4);
- SetGpuReg(REG_OFFSET_BG0VOFS, -r4->unk2C);
- SetGpuReg(REG_OFFSET_BG2VOFS, -r4->unk2C);
- SetGpuReg(REG_OFFSET_BG3VOFS, -r4->unk2C);
- if (r4->unk25_3)
+ memset(&game->localState, 0, sizeof(game->localState));
+ memset(&game->recvCmd, 0, sizeof(game->recvCmd));
+ BerryCrush_UpdateGameState(game);
+ SetGpuReg(REG_OFFSET_BG0VOFS, -game->vibration);
+ SetGpuReg(REG_OFFSET_BG2VOFS, -game->vibration);
+ SetGpuReg(REG_OFFSET_BG3VOFS, -game->vibration);
+ if (game->unk25_3)
{
- if (r4->unk28 >= 36000)
+ if (game->timer >= 36000)
{
- r4->unk28 = 36000;
- sub_814BB4C(16, 1, NULL);
+ game->timer = 36000;
+ BerryCrush_RunOrScheduleCommand(BCCMD_HandleTimeUp, 1, NULL);
}
else
{
- sub_814BB4C(15, 1, NULL);
+ BerryCrush_RunOrScheduleCommand(BCCMD_FinishGame, 1, NULL);
}
- r4->unk10 = 0;
- r4->unkC = 0;
+ game->unk10 = 0;
+ game->cmdState = 0;
return 0;
}
else
{
- ++r4->unk26;
- sub_814C2FC(r4);
- sub_814C4B8(r4);
- sub_814C618(r4);
+ ++game->unk26;
+ BerryCrush_ProcessGamePartnerInput(game);
+ BerryCrush_BuildLocalState(game);
+ BerryCrush_HandlePlayerInput(game);
return 0;
}
}
-static u32 sub_814C8F8(struct BerryCrushGame * r4, UNUSED u8 *r1)
+static u32 BerryCrushCommand_PlayGame_Slave(struct BerryCrushGame * game, UNUSED u8 *params)
{
- memset(&r4->unk5C, 0, sizeof(r4->unk5C));
- memset(&r4->unk40.unkE, 0, sizeof(r4->unk40.unkE));
- sub_814C7BC(r4);
- SetGpuReg(REG_OFFSET_BG0VOFS, -r4->unk2C);
- SetGpuReg(REG_OFFSET_BG2VOFS, -r4->unk2C);
- SetGpuReg(REG_OFFSET_BG3VOFS, -r4->unk2C);
- if (r4->unk25_3)
+ memset(&game->localState, 0, sizeof(game->localState));
+ memset(&game->recvCmd, 0, sizeof(game->recvCmd));
+ BerryCrush_UpdateGameState(game);
+ SetGpuReg(REG_OFFSET_BG0VOFS, -game->vibration);
+ SetGpuReg(REG_OFFSET_BG2VOFS, -game->vibration);
+ SetGpuReg(REG_OFFSET_BG3VOFS, -game->vibration);
+ if (game->unk25_3)
{
- if (r4->unk28 >= 36000)
+ if (game->timer >= 36000)
{
- r4->unk28 = 36000;
- sub_814BB4C(16, 1, NULL);
+ game->timer = 36000;
+ BerryCrush_RunOrScheduleCommand(BCCMD_HandleTimeUp, 1, NULL);
}
else
{
- sub_814BB4C(15, 1, NULL);
+ BerryCrush_RunOrScheduleCommand(BCCMD_FinishGame, 1, NULL);
}
- r4->unk10 = 0;
- r4->unkC = 0;
+ game->unk10 = 0;
+ game->cmdState = 0;
return 0;
}
else
{
- sub_814C618(r4);
+ BerryCrush_HandlePlayerInput(game);
return 0;
}
}
-static u32 sub_814C990(struct BerryCrushGame * r4, UNUSED u8 *r1)
+static u32 BerryCrushCommand_FinishGame(struct BerryCrushGame * game, UNUSED u8 *params)
{
- switch (r4->unkC)
+ switch (game->cmdState)
{
case 0:
- r4->unk12 = 8;
+ game->gameState = 8;
PlaySE(SE_W070);
BlendPalettes(0xFFFFFFFF, 8, RGB(31, 31, 0));
- r4->unk138.unk0 = 2;
+ game->spritesManager.animBerryIdx = 2;
break;
case 1:
- if (--r4->unk138.unk0 != 255)
+ if (--game->spritesManager.animBerryIdx != 255)
return 0;
BlendPalettes(0xFFFFFFFF, 0, RGB(31, 31, 0));
- r4->unk138.unk1 = 4;
- r4->unk138.unk0 = 0;
- r4->unk138.unk2 = gUnknown_846E2F0[r4->unk138.unk1][0];
+ game->spritesManager.unk1 = 4;
+ game->spritesManager.animBerryIdx = 0;
+ game->spritesManager.unk2 = gUnknown_846E2F0[game->spritesManager.unk1][0];
break;
case 2:
- r4->unk2C = gUnknown_846E2F0[r4->unk138.unk1][r4->unk138.unk0];
- SetGpuReg(REG_OFFSET_BG0VOFS, -r4->unk2C);
- SetGpuReg(REG_OFFSET_BG2VOFS, -r4->unk2C);
- SetGpuReg(REG_OFFSET_BG3VOFS, -r4->unk2C);
- if (++r4->unk138.unk0 < r4->unk138.unk2)
+ game->vibration = gUnknown_846E2F0[game->spritesManager.unk1][game->spritesManager.animBerryIdx];
+ SetGpuReg(REG_OFFSET_BG0VOFS, -game->vibration);
+ SetGpuReg(REG_OFFSET_BG2VOFS, -game->vibration);
+ SetGpuReg(REG_OFFSET_BG3VOFS, -game->vibration);
+ if (++game->spritesManager.animBerryIdx < game->spritesManager.unk2)
return 0;
- if (r4->unk138.unk1 != 0)
+ if (game->spritesManager.unk1 != 0)
{
- --r4->unk138.unk1;
- r4->unk138.unk2 = gUnknown_846E2F0[r4->unk138.unk1][0];
- r4->unk138.unk0 = 0;
+ --game->spritesManager.unk1;
+ game->spritesManager.unk2 = gUnknown_846E2F0[game->spritesManager.unk1][0];
+ game->spritesManager.animBerryIdx = 0;
return 0;
}
break;
case 3:
- r4->unk2C = 0;
+ game->vibration = 0;
SetGpuReg(REG_OFFSET_BG0VOFS, 0);
SetGpuReg(REG_OFFSET_BG2VOFS, 0);
SetGpuReg(REG_OFFSET_BG3VOFS, 0);
break;
case 4:
- if (!sub_814DE50(r4, &r4->unk138))
+ if (!sub_814DE50(game, &game->spritesManager))
return 0;
LinkRfu_SetRfuFuncToSend6600();
- r4->unk10 = 0;
+ game->unk10 = 0;
break;
case 5:
if (!IsLinkTaskFinished())
return 0;
- sub_814BB4C(17, 1, NULL);
- r4->unk10 = 0;
- r4->unkC = 0;
+ BerryCrush_RunOrScheduleCommand(BCCMD_TabulateResults, 1, NULL);
+ game->unk10 = 0;
+ game->cmdState = 0;
return 0;
}
- ++r4->unkC;
+ ++game->cmdState;
return 0;
}
-static u32 sub_814CB20(struct BerryCrushGame * r5, u8 *r6)
+static u32 BerryCrushCommand_HandleTimeUp(struct BerryCrushGame * game, u8 *params)
{
- switch (r5->unkC)
+ switch (game->cmdState)
{
case 0:
- r5->unk12 = 9;
+ game->gameState = 9;
PlaySE(SE_HAZURE);
BlendPalettes(0xFFFFFFFF, 8, RGB(31, 0, 0));
- r5->unk138.unk0 = 4;
+ game->spritesManager.animBerryIdx = 4;
break;
case 1:
- if (--r5->unk138.unk0 != 255)
+ if (--game->spritesManager.animBerryIdx != 255)
return 0;
BlendPalettes(0xFFFFFFFF, 0, RGB(31, 0, 0));
- r5->unk138.unk0 = 0;
+ game->spritesManager.animBerryIdx = 0;
break;
case 2:
- if (!sub_814DE50(r5, &r5->unk138))
+ if (!sub_814DE50(game, &game->spritesManager))
return 0;
LinkRfu_SetRfuFuncToSend6600();
- r5->unk10 = 0;
+ game->unk10 = 0;
SetGpuReg(REG_OFFSET_BG0VOFS, 0);
SetGpuReg(REG_OFFSET_BG2VOFS, 0);
SetGpuReg(REG_OFFSET_BG3VOFS, 0);
@@ -904,87 +911,89 @@ static u32 sub_814CB20(struct BerryCrushGame * r5, u8 *r6)
case 3:
if (!IsLinkTaskFinished())
return 0;
- ConvertIntToDecimalStringN(gStringVar1, r5->unk1C, STR_CONV_MODE_LEFT_ALIGN, 6);
- sub_814D5A4(r6, 7, 1, 0, 0);
- r5->unkE = 19;
- sub_814BB4C(3, 1, NULL);
- r5->unk10 = 0;
- r5->unkC = 0;
+ ConvertIntToDecimalStringN(gStringVar1, game->powder, STR_CONV_MODE_LEFT_ALIGN, 6);
+ BerryCrush_SetShowMessageParams(params, BCTEXT_TIMEUP, 1, 0, 0);
+ game->nextCmd = BCCMD_SaveTheGame;
+ BerryCrush_RunOrScheduleCommand(BCCMD_PrintMessage, 1, NULL);
+ game->unk10 = 0;
+ game->cmdState = 0;
return 0;
}
- ++r5->unkC;
+ ++game->cmdState;
return 0;
}
-static u32 sub_814CC0C(struct BerryCrushGame * r7, UNUSED u8 *r1)
+static u32 BerryCrushCommand_TabulateResults(struct BerryCrushGame * game, UNUSED u8 *params)
{
- u8 r8, r4_;
+ u8 i, j;
s32 r2;
s32 r4;
u8 r6; // ???
- switch (r7->unkC)
+ switch (game->cmdState)
{
case 0:
- memset(r7->unk40.unk2, 0, 2 * sizeof(u16));
- if (r7->unk68.as_four_players.others[r7->unk8].unk4.as_hwords[5] > r7->unk28)
- r7->unk68.as_four_players.others[r7->unk8].unk4.as_hwords[5] = r7->unk28;
- r7->unk40.unk2[0] = r7->unk68.as_four_players.others[r7->unk8].unk4.as_hwords[5];
- SendBlock(0, r7->unk40.unk2, 2);
+ memset(game->sendCmd + 1, 0, 2 * sizeof(u16));
+ if (game->unk68.as_four_players.others[game->localId].unk4.as_hwords[5] > game->timer)
+ game->unk68.as_four_players.others[game->localId].unk4.as_hwords[5] = game->timer;
+ game->sendCmd[1] = game->unk68.as_four_players.others[game->localId].unk4.as_hwords[5];
+ SendBlock(0, game->sendCmd + 1, 2);
break;
case 1:
if (!IsLinkTaskFinished())
return 0;
- r7->unk10 = 0;
+ game->unk10 = 0;
break;
case 2:
- if (GetBlockReceivedStatus() != gUnknown_846E3C8[r7->unk9 - 2])
+ if (GetBlockReceivedStatus() != sReceivedPlayerBitmasks[game->playerCount - 2])
return 0;
- for (r8 = 0; r8 < r7->unk9; ++r8)
- r7->unk68.as_four_players.others[r8].unk4.as_hwords[5] = gBlockRecvBuffer[r8][0];
- r7->unk10 = 0;
- r7->unk40.unk2[0] = 0;
+ for (i = 0; i < game->playerCount; ++i)
+ game->unk68.as_four_players.others[i].unk4.as_hwords[5] = gBlockRecvBuffer[i][0];
+ game->unk10 = 0;
+ game->sendCmd[1] = 0;
ResetBlockReceivedFlags();
- if (r7->unk8 == 0)
- r7->unkC = 3;
+ if (game->localId == 0)
+ game->cmdState = 3;
else
- r7->unkC = 6;
+ game->cmdState = 6;
return 0;
case 3:
memset(
- &r7->unk68,
+ &game->unk68,
0,
sizeof(struct BerryCrushGame_68_x_SubStruct)
);
- r7->unk68.as_four_players.unk00.unk04 = r7->unk28;
- r7->unk68.as_four_players.unk00.unk06 = r7->unk18 / (r7->unk28 / 60);
- r2 = sub_80D8AE0(r7->unk30 << 8, 0x3200);
- r2 = sub_80D8B68(r2, r7->unk32 << 8) + 0x3200;
+ game->unk68.as_four_players.unk00.unk04 = game->timer;
+ game->unk68.as_four_players.unk00.unk06 = game->unk18 / (game->timer / 60);
+ // (unk30 * 50 / unk32) + 50
+ r2 = MathUtil_Mul32(game->unk30 << 8, 50 << 8);
+ r2 = MathUtil_Div32(r2, game->unk32 << 8) + (50 << 8);
r2 >>= 8;
- r7->unk68.as_four_players.unk00.unk08 = r2 & 0x7F;
+ game->unk68.as_four_players.unk00.unk08 = r2 & 0x7F;
+ // powder + playerCount * (r2 / 100)
r2 <<= 8;
- r2 = sub_80D8B68(r2, 0x6400);
- r4 = (r7->unk1C * r7->unk9) << 8;
- r4 = sub_80D8AE0(r4, r2);
- r7->unk68.as_four_players.unk00.unk00 = r4 >> 8;
- r7->unk68.as_five_players.unk1C[0].unk4.as_2d_bytes[0][7] = Random() % 3;
- for (r6 = 0, r8 = 0; r8 < r7->unk9; ++r8)
+ r2 = MathUtil_Div32(r2, 100 << 8);
+ r4 = (game->powder * game->playerCount) << 8;
+ r4 = MathUtil_Mul32(r4, r2);
+ game->unk68.as_four_players.unk00.unk00 = r4 >> 8;
+ game->unk68.as_five_players.players[0].unk4.as_2d_bytes[0][7] = Random() % 3;
+ for (r6 = 0, i = 0; i < game->playerCount; ++i)
{
- r7->unk68.as_five_players.unk1C[0].unk4.as_2d_bytes[0][r8] = r8;
- r7->unk68.as_five_players.unk1C[0].unk4.as_2d_bytes[1][r8] = r8;
- r7->unk68.as_four_players.unk00.unk0C[0][r8] = r7->unk68.as_four_players.others[r8].unk4.as_hwords[3];
- r7->unk68.as_four_players.unk00.unk0A += r7->unk68.as_four_players.unk00.unk0C[0][r8];
- switch (r7->unk68.as_five_players.unk1C[0].unk4.as_2d_bytes[0][7])
+ game->unk68.as_five_players.players[0].unk4.as_2d_bytes[0][i] = i;
+ game->unk68.as_five_players.players[0].unk4.as_2d_bytes[1][i] = i;
+ game->unk68.as_four_players.unk00.stats[0][i] = game->unk68.as_four_players.others[i].unk4.as_hwords[3];
+ game->unk68.as_four_players.unk00.unk0A += game->unk68.as_four_players.unk00.stats[0][i];
+ switch (game->unk68.as_five_players.players[0].unk4.as_2d_bytes[0][7])
{
case 0:
- if (r7->unk68.as_four_players.others[r8].unk4.as_hwords[3] != 0)
+ if (game->unk68.as_four_players.others[i].unk4.as_hwords[3] != 0)
{
- r2 = r7->unk68.as_four_players.others[r8].unk4.as_hwords[2];
+ r2 = game->unk68.as_four_players.others[i].unk4.as_hwords[2];
r2 <<= 8;
- r2 = sub_80D8AE0(r2, 0x6400);
- r4 = r7->unk68.as_four_players.others[r8].unk4.as_hwords[3];
+ r2 = MathUtil_Mul32(r2, 0x6400);
+ r4 = game->unk68.as_four_players.others[i].unk4.as_hwords[3];
r4 <<= 8;
- r4 = sub_80D8B68(r2, r4);
+ r4 = MathUtil_Div32(r2, r4);
}
else
{
@@ -992,14 +1001,14 @@ static u32 sub_814CC0C(struct BerryCrushGame * r7, UNUSED u8 *r1)
}
break;
case 1:
- if (r7->unk68.as_four_players.others[r8].unk4.as_hwords[3] != 0)
+ if (game->unk68.as_four_players.others[i].unk4.as_hwords[3] != 0)
{
- r2 = r7->unk68.as_four_players.others[r8].unk4.as_hwords[4];
+ r2 = game->unk68.as_four_players.others[i].unk4.as_hwords[4];
r2 <<= 8;
- r2 = sub_80D8AE0(r2, 0x6400);
- r4 = r7->unk68.as_four_players.others[r8].unk4.as_hwords[3];
+ r2 = MathUtil_Mul32(r2, 0x6400);
+ r4 = game->unk68.as_four_players.others[i].unk4.as_hwords[3];
r4 <<= 8;
- r4 = sub_80D8B68(r2, r4);
+ r4 = MathUtil_Div32(r2, r4);
}
else
{
@@ -1007,160 +1016,160 @@ static u32 sub_814CC0C(struct BerryCrushGame * r7, UNUSED u8 *r1)
}
break;
case 2:
- if (r7->unk68.as_four_players.others[r8].unk4.as_hwords[3] == 0)
+ if (game->unk68.as_four_players.others[i].unk4.as_hwords[3] == 0)
{
r4 = 0;
}
- else if (r7->unk68.as_four_players.others[r8].unk4.as_hwords[5] >= r7->unk28)
+ else if (game->unk68.as_four_players.others[i].unk4.as_hwords[5] >= game->timer)
{
r4 = 0x6400;
}
else
{
- r2 = r7->unk68.as_four_players.others[r8].unk4.as_hwords[5];
+ r2 = game->unk68.as_four_players.others[i].unk4.as_hwords[5];
r2 <<= 8;
- r2 = sub_80D8AE0(r2, 0x6400);
- r4 = r7->unk28;
+ r2 = MathUtil_Mul32(r2, 0x6400);
+ r4 = game->timer;
r4 <<= 8;
- r4 = sub_80D8B68(r2, r4);
+ r4 = MathUtil_Div32(r2, r4);
}
break;
}
r4 >>= 4;
- r7->unk68.as_four_players.unk00.unk0C[1][r8] = r4;
+ game->unk68.as_four_players.unk00.stats[1][i] = r4;
}
break;
case 4:
- for (r6 = 0, r8 = 0; r8 < r7->unk9 - 1; ++r8)
+ for (r6 = 0, i = 0; i < game->playerCount - 1; ++i)
{
- for (r4_ = r7->unk9 - 1; r4_ > r8; --r4_)
+ for (j = game->playerCount - 1; j > i; --j)
{
u16 r0;
u8 r3;
- u16 *sp00 = r7->unk68.as_four_players.unk00.unk0C[0];
- u8 *sp04 = r7->unk68.as_five_players.unk1C[0].unk4.as_2d_bytes[0];
- u8 *r10 = r7->unk68.as_five_players.unk1C[0].unk4.as_2d_bytes[1];
- u16 *r9 = r7->unk68.as_four_players.unk00.unk0C[1];
- s32 r12 = r4_ - 1;
- u16 *p1 = sp00 + r12; // these have to be here
- u16 *p2 = sp00 + r4_; // to swap operands. macro?
+ u16 *numPresses_p = game->unk68.as_four_players.unk00.stats[0];
+ u8 *sp04 = game->unk68.as_five_players.players[0].unk4.as_2d_bytes[0];
+ u8 *r10 = game->unk68.as_five_players.players[0].unk4.as_2d_bytes[1];
+ u16 *r9 = game->unk68.as_four_players.unk00.stats[1];
+ s32 r12 = j - 1;
+ u16 *p1 = numPresses_p + r12; // these have to be here
+ u16 *p2 = numPresses_p + j; // to swap operands. macro?
if (*p1 < *p2)
{
- r0 = sp00[r4_];
- sp00[r4_] = sp00[r12];
- sp00[r12] = r0;
- r3 = sp04[r4_];
- sp04[r4_] = sp04[r12];
+ r0 = numPresses_p[j];
+ numPresses_p[j] = numPresses_p[r12];
+ numPresses_p[r12] = r0;
+ r3 = sp04[j];
+ sp04[j] = sp04[r12];
sp04[r12] = r3;
}
p1 = r9 + r12;
- p2 = r9 + r4_;
+ p2 = r9 + j;
if (*p1 < *p2)
{
- r0 = r9[r4_];
- r9[r4_] = r9[r12];
+ r0 = r9[j];
+ r9[j] = r9[r12];
r9[r12] = r0;
- r3 = r10[r4_];
- r10[r4_] = r10[r12];
+ r3 = r10[j];
+ r10[j] = r10[r12];
r10[r12] = r3;
}
}
}
SendBlock(
0,
- &r7->unk68,
+ &game->unk68,
sizeof(struct BerryCrushGame_68_x_SubStruct)
);
break;
case 5:
if (!IsLinkTaskFinished())
return 0;
- r7->unk10 = 0;
+ game->unk10 = 0;
break;
case 6:
if (GetBlockReceivedStatus() != 1)
return 0;
memset(
- &r7->unk68,
+ &game->unk68,
0,
sizeof(struct BerryCrushGame_68_x_SubStruct)
);
memcpy(
- &r7->unk68,
+ &game->unk68,
gBlockRecvBuffer,
sizeof(struct BerryCrushGame_68_x_SubStruct)
);
ResetBlockReceivedFlags();
- r7->unk10 = 0;
+ game->unk10 = 0;
break;
case 7:
- sub_814B930();
- sub_814BB4C(18, 1, NULL);
- r7->unk12 = 11;
- r7->unkC = 0;
- r7->unk24 = 0;
+ BerryCrush_UpdateSav2Records();
+ BerryCrush_RunOrScheduleCommand(BCCMD_ShowResults, 1, NULL);
+ game->gameState = 11;
+ game->cmdState = 0;
+ game->unk24 = 0;
return 0;
}
- ++r7->unkC;
+ ++game->cmdState;
return 0;
}
-static u32 sub_814CFA8(struct BerryCrushGame * r5, u8 *r6)
+static u32 BerryCrushCommand_ShowResults(struct BerryCrushGame * game, u8 *params)
{
- switch (r5->unkC)
+ switch (game->cmdState)
{
case 0:
- if (!sub_814E644(r5, &r5->unk138))
+ if (!sub_814E644(game, &game->spritesManager))
return 0;
break;
case 1:
CopyBgTilemapBufferToVram(0);
- r5->unk138.unk0 = 30;
+ game->spritesManager.animBerryIdx = 30;
break;
case 2:
- if (r5->unk138.unk0 != 0)
+ if (game->spritesManager.animBerryIdx != 0)
{
- --r5->unk138.unk0;
+ --game->spritesManager.animBerryIdx;
return 0;
}
- if (!(gMain.newKeys & A_BUTTON))
+ if (!JOY_NEW(A_BUTTON))
return 0;
PlaySE(SE_SELECT);
- sub_814E80C(r5);
+ sub_814E80C(game);
break;
case 3:
- if (r5->unk12 <= 12)
+ if (game->gameState <= 12)
{
- ++r5->unk12;
- r5->unkC = 0;
+ ++game->gameState;
+ game->cmdState = 0;
return 0;
}
break;
case 4:
- ConvertIntToDecimalStringN(gStringVar1, r5->unk1C, STR_CONV_MODE_LEFT_ALIGN, 6);
+ ConvertIntToDecimalStringN(gStringVar1, game->powder, STR_CONV_MODE_LEFT_ALIGN, 6);
ConvertIntToDecimalStringN(gStringVar2, GetBerryPowder(), STR_CONV_MODE_LEFT_ALIGN, 6);
- sub_814D5A4(r6, 2, 3, 0, 0);
- r5->unkE = 19;
- sub_814BB4C(3, 1, NULL);
- r5->unkC = 0;
+ BerryCrush_SetShowMessageParams(params, BCTEXT_GAINEDPOWDER, 3, 0, 0);
+ game->nextCmd = BCCMD_SaveTheGame;
+ BerryCrush_RunOrScheduleCommand(BCCMD_PrintMessage, 1, NULL);
+ game->cmdState = 0;
return 0;
}
- ++r5->unkC;
+ ++game->cmdState;
return 0;
}
-static u32 sub_814D094(struct BerryCrushGame * r5, u8 *r4)
+static u32 BerryCrushCommand_SaveTheGame(struct BerryCrushGame * game, u8 *params)
{
- switch (r5->unkC)
+ switch (game->cmdState)
{
case 0:
- if (r5->unk28 >= 36000)
- sub_814EB04(&r5->unk138);
- sub_814D5A4(r4, 8, 0, 0, 1);
- r5->unkE = 19;
- sub_814BB4C(3, 1, NULL);
- r5->unkC = 0;
+ if (game->timer >= 36000)
+ BerryCrush_HideTimerSprites(&game->spritesManager);
+ BerryCrush_SetShowMessageParams(params, BCTEXT_COMMSTANDBY, 0, 0, BCCMD_BeginNormalPaletteFade);
+ game->nextCmd = BCCMD_SaveTheGame;
+ BerryCrush_RunOrScheduleCommand(BCCMD_PrintMessage, 1, NULL);
+ game->cmdState = 0;
return 0;
case 1:
LinkRfu_SetRfuFuncToSend6600();
@@ -1168,26 +1177,26 @@ static u32 sub_814D094(struct BerryCrushGame * r5, u8 *r4)
case 2:
if (!IsLinkTaskFinished())
return 0;
- DrawDialogueFrame(0, 0);
- AddTextPrinterParameterized2(0, 2, gText_SavingDontTurnOffThePower2, 0, 0, 2, 1, 3);
- CopyWindowToVram(0, 3);
- CreateTask(sub_80DA634, 0);
+ DrawDialogueFrame(0, FALSE);
+ AddTextPrinterParameterized2(0, 2, gText_SavingDontTurnOffThePower2, 0, NULL, 2, 1, 3);
+ CopyWindowToVram(0, COPYWIN_BOTH);
+ CreateTask(Task_SaveGame_UpdatedLinkRecords, 0);
break;
case 3:
- if (FuncIsActiveTask(sub_80DA634))
+ if (FuncIsActiveTask(Task_SaveGame_UpdatedLinkRecords))
return 0;
break;
case 4:
- sub_814BB4C(20, 1, NULL);
- r5->unk12 = 15;
- r5->unkC = 0;
+ BerryCrush_RunOrScheduleCommand(BCCMD_AskPlayAgain, 1, NULL);
+ game->gameState = 15;
+ game->cmdState = 0;
return 0;
}
- ++r5->unkC;
+ ++game->cmdState;
return 0;
}
-static u32 sub_814D188(struct BerryCrushGame * r5, u8 *r6)
+static u32 BerryCrushCommand_AskPlayAgain(struct BerryCrushGame * game, u8 *params)
{
s32 r4;
#ifndef NONMATCHING
@@ -1196,14 +1205,14 @@ static u32 sub_814D188(struct BerryCrushGame * r5, u8 *r6)
s32 r0;
#endif
- switch (r5->unkC)
+ switch (game->cmdState)
{
case 0:
- sub_814D5A4(r6, 4, 0, 0, 1);
- r5->unkE = 20;
- sub_814BB4C(3, 1, NULL);
+ BerryCrush_SetShowMessageParams(params, BCTEXT_ASKPLAYAGAIN, 0, 0, BCCMD_BeginNormalPaletteFade);
+ game->nextCmd = BCCMD_AskPlayAgain;
+ BerryCrush_RunOrScheduleCommand(BCCMD_PrintMessage, 1, NULL);
r0 = 0;
- r5->unkC = r0; // dunno what it's doing because it's already in case 0
+ game->cmdState = r0; // dunno what it's doing because it's already in case 0
return 0;
case 1:
DisplayYesNoMenuDefaultYes();
@@ -1211,35 +1220,35 @@ static u32 sub_814D188(struct BerryCrushGame * r5, u8 *r6)
case 2:
if ((r4 = Menu_ProcessInputNoWrapClearOnChoose()) != -2)
{
- memset(r5->unk40.unk2, 0, sizeof(r5->unk40.unk2));
+ memset(game->sendCmd + 1, 0, sizeof(game->sendCmd) - 2);
if (r4 == 0)
{
if (CheckHasAtLeastOneBerry())
- r5->unk14 = 0;
+ game->unk14 = 0;
else
- r5->unk14 = 3;
+ game->unk14 = 3;
}
else
{
- r5->unk14 = 1;
+ game->unk14 = 1;
}
- ClearDialogWindowAndFrame(0, 1);
- sub_814D5A4(r6, 8, 0, 0, 0);
- r5->unkE = 21;
- sub_814BB4C(3, 1, NULL);
- r5->unkC = 0;
+ ClearDialogWindowAndFrame(0, TRUE);
+ BerryCrush_SetShowMessageParams(params, BCTEXT_COMMSTANDBY, 0, 0, 0);
+ game->nextCmd = BCCMD_CommunicatePlayAgainResponses;
+ BerryCrush_RunOrScheduleCommand(BCCMD_PrintMessage, 1, NULL);
+ game->cmdState = 0;
}
return 0;
}
- ++r5->unkC;
+ ++game->cmdState;
return 0;
}
-static u32 sub_814D240(struct BerryCrushGame * r4, UNUSED u8 *r1)
+static u32 BerryCrushCommand_CommunicatePlayAgainResponses(struct BerryCrushGame * game, UNUSED u8 *params)
{
- u8 r5 = 0;
+ u8 i = 0;
- switch (r4->unkC)
+ switch (game->cmdState)
{
case 0:
LinkRfu_SetRfuFuncToSend6600();
@@ -1247,38 +1256,38 @@ static u32 sub_814D240(struct BerryCrushGame * r4, UNUSED u8 *r1)
case 1:
if (!IsLinkTaskFinished())
return 0;
- r4->unk40.unk2[0] = r4->unk14;
- r4->unk40.unkE.unk0 = 0;
- SendBlock(0, r4->unk40.unk2, sizeof(u16));
+ game->sendCmd[1] = game->unk14;
+ game->recvCmd[0] = 0;
+ SendBlock(0, game->sendCmd + 1, sizeof(u16));
break;
case 2:
if (!IsLinkTaskFinished())
return 0;
- r4->unk10 = 0;
+ game->unk10 = 0;
break;
case 3:
- if (GetBlockReceivedStatus() != gUnknown_846E3C8[r4->unk9 - 2])
+ if (GetBlockReceivedStatus() != sReceivedPlayerBitmasks[game->playerCount - 2])
return 0;
- for (; r5 < r4->unk9; ++r5)
- r4->unk40.unkE.unk0 += gBlockRecvBuffer[r5][0];
- if (r4->unk40.unkE.unk0 != 0)
- sub_814BB4C(23, 1, NULL);
+ for (; i < game->playerCount; ++i)
+ game->recvCmd[0] += gBlockRecvBuffer[i][0];
+ if (game->recvCmd[0] != 0)
+ BerryCrush_RunOrScheduleCommand(BCCMD_PlayAgainFailureMessage, 1, NULL);
else
- sub_814BB4C(22, 1, NULL);
+ BerryCrush_RunOrScheduleCommand(BCCMD_FadeOutToPlayAgain, 1, NULL);
ResetBlockReceivedFlags();
- r4->unk40.unk2[0] = 0;
- r4->unk40.unkE.unk0 = 0;
- r4->unk10 = 0;
- r4->unkC = 0;
+ game->sendCmd[1] = 0;
+ game->recvCmd[0] = 0;
+ game->unk10 = 0;
+ game->cmdState = 0;
return 0;
}
- ++r4->unkC;
+ ++game->cmdState;
return 0;
}
-static u32 sub_814D31C(struct BerryCrushGame * r5, UNUSED u8 *r1)
+static u32 BerryCrushCommand_FadeOutToPlayAgain(struct BerryCrushGame * game, UNUSED u8 *params)
{
- switch (r5->unkC)
+ switch (game->cmdState)
{
case 0:
BeginNormalPaletteFade(0xFFFFFFFF, 1, 0, 0x10, RGB_BLACK);
@@ -1289,57 +1298,57 @@ static u32 sub_814D31C(struct BerryCrushGame * r5, UNUSED u8 *r1)
return 0;
break;
case 2:
- ClearDialogWindowAndFrame(0, 1);
- sub_814DA04(r5);
+ ClearDialogWindowAndFrame(0, TRUE);
+ sub_814DA04(game);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK);
UpdatePaletteFade();
break;
case 3:
if (UpdatePaletteFade())
return 0;
- sub_814BB4C(7, 1, NULL);
- r5->unk12 = 3;
- r5->unkC = 0;
+ BerryCrush_RunOrScheduleCommand(BCCMD_AskPickBerry, 1, NULL);
+ game->gameState = 3;
+ game->cmdState = 0;
return 0;
}
- ++r5->unkC;
+ ++game->cmdState;
return 0;
}
-static u32 sub_814D3A4(struct BerryCrushGame * r5, UNUSED u8 *r1)
+static u32 BerryCrushCommand_PlayAgainFailureMessage(struct BerryCrushGame * game, UNUSED u8 *params)
{
- switch (r5->unkC)
+ switch (game->cmdState)
{
case 0:
- DrawDialogueFrame(0, 0);
- if (r5->unk14 == 3)
- AddTextPrinterParameterized2(0, 2, gUnknown_846E328[5], r5->unkB, 0, 2, 1, 3);
+ DrawDialogueFrame(0, FALSE);
+ if (game->unk14 == 3)
+ AddTextPrinterParameterized2(0, 2, sBerryCrushMessages[BCTEXT_CANCEL_NOBERRIES], game->textSpeed, NULL, 2, 1, 3);
else
- AddTextPrinterParameterized2(0, 2, gUnknown_846E328[6], r5->unkB, 0, 2, 1, 3);
- CopyWindowToVram(0, 3);
+ AddTextPrinterParameterized2(0, 2, sBerryCrushMessages[BCTEXT_CANCEL_DROPPEDOUT], game->textSpeed, NULL, 2, 1, 3);
+ CopyWindowToVram(0, COPYWIN_BOTH);
break;
case 1:
if (IsTextPrinterActive(0))
return 0;
- r5->unk138.unk0 = 120;
+ game->spritesManager.animBerryIdx = 120;
break;
case 2:
- if (r5->unk138.unk0 != 0)
- --r5->unk138.unk0;
+ if (game->spritesManager.animBerryIdx != 0)
+ --game->spritesManager.animBerryIdx;
else
{
- sub_814BB4C(24, 1, NULL);
- r5->unkC = 0;
+ BerryCrush_RunOrScheduleCommand(BCCMD_GracefulExit, 1, NULL);
+ game->cmdState = 0;
}
return 0;
}
- ++r5->unkC;
+ ++game->cmdState;
return 0;
}
-static u32 sub_814D468(struct BerryCrushGame * r5, UNUSED u8 *r1)
+static u32 BerryCrushCommand_GracefulExit(struct BerryCrushGame * game, UNUSED u8 *params)
{
- switch (r5->unkC)
+ switch (game->cmdState)
{
case 0:
LinkRfu_SetRfuFuncToSend6600();
@@ -1350,131 +1359,83 @@ static u32 sub_814D468(struct BerryCrushGame * r5, UNUSED u8 *r1)
Link_TryStartSend5FFF();
break;
case 2:
- if (gReceivedRemoteLinkPlayers != 0)
+ if (gReceivedRemoteLinkPlayers)
return 0;
- r5->unkE = 25;
- sub_814BB4C(5, 1, NULL);
- r5->unkC = 2; // ???
+ game->nextCmd = BCCMD_Quit;
+ BerryCrush_RunOrScheduleCommand(BCCMD_TeardownGfx, 1, NULL);
+ game->cmdState = 2; // ???
return 0;
}
- ++r5->unkC;
+ ++game->cmdState;
return 0;
}
-static u32 sub_814D4C8(UNUSED struct BerryCrushGame * r0, UNUSED u8 *r1)
+static u32 BerryCrushCommand_Quit(UNUSED struct BerryCrushGame * game, UNUSED u8 *params)
{
- sub_814B6FC(NULL);
+ ExitBerryCrushWithCallback(NULL);
return 0;
}
-void sub_814D4D8(struct BerryCrushGame * r4)
+static void sub_814D4D8(struct BerryCrushGame * game)
{
u8 r5 = 0;
IncrementGameStat(GAME_STAT_BERRY_CRUSH_POINTS);
- r4->unkD = 0;
- r4->unk10 = 0;
- r4->unk12 = 2;
- r4->unk14 = 0;
- r4->unk1C = 0;
- r4->unk18 = 0;
- r4->unk1A = 0;
- r4->unk20 = 0;
- r4->unk24 = 0;
- r4->unk25_0 = 0;
- r4->unk25_1 = 0;
- r4->unk25_2 = 0;
- r4->unk25_3 = 0;
- r4->unk25_4 = 0;
- r4->unk25_5 = 0;
- r4->unk26 = 0;
- r4->unk28 = 0;
- r4->unk2E = 0;
- r4->unk32 = -1;
- r4->unk30 = 0;
- r4->unk34 = 0;
+ game->unkD = 0;
+ game->unk10 = 0;
+ game->gameState = 2;
+ game->unk14 = 0;
+ game->powder = 0;
+ game->unk18 = 0;
+ game->unk1A = 0;
+ game->unk20 = 0;
+ game->unk24 = 0;
+ game->unk25_0 = 0;
+ game->unk25_1 = 0;
+ game->unk25_2 = 0;
+ game->unk25_3 = FALSE;
+ game->unk25_4 = 0;
+ game->unk25_5 = 0;
+ game->unk26 = 0;
+ game->timer = 0;
+ game->unk2E = 0;
+ game->unk32 = -1;
+ game->unk30 = 0;
+ game->unk34 = 0;
for (; r5 < 5; ++r5) // why is it 5 instead of 4? fillerBC isn't sufficient for one player
{
- r4->unk68.as_four_players.others[r5].unk0 = -1;
- r4->unk68.as_four_players.others[r5].unk2 = 0;
- r4->unk68.as_four_players.others[r5].unk4.as_hwords[0] = 0;
- r4->unk68.as_four_players.others[r5].unk4.as_hwords[1] = 1;
- r4->unk68.as_four_players.others[r5].unk4.as_hwords[2] = 0;
- r4->unk68.as_four_players.others[r5].unk4.as_hwords[3] = 0;
- r4->unk68.as_four_players.others[r5].unk4.as_hwords[4] = 0;
- r4->unk68.as_four_players.others[r5].unk4.as_hwords[5] = 0;
- r4->unk68.as_four_players.others[r5].unk4.as_2d_bytes[1][4] = 0;
- r4->unk68.as_four_players.others[r5].unk4.as_2d_bytes[1][5] = 0;
+ game->unk68.as_four_players.others[r5].berryId = -1;
+ game->unk68.as_four_players.others[r5].unk2 = 0;
+ game->unk68.as_four_players.others[r5].unk4.as_hwords[0] = 0;
+ game->unk68.as_four_players.others[r5].unk4.as_hwords[1] = 1;
+ game->unk68.as_four_players.others[r5].unk4.as_hwords[2] = 0;
+ game->unk68.as_four_players.others[r5].unk4.as_hwords[3] = 0;
+ game->unk68.as_four_players.others[r5].unk4.as_hwords[4] = 0;
+ game->unk68.as_four_players.others[r5].unk4.as_hwords[5] = 0;
+ game->unk68.as_four_players.others[r5].unk4.as_2d_bytes[1][4] = 0;
+ game->unk68.as_four_players.others[r5].unk4.as_2d_bytes[1][5] = 0;
}
}
-#ifdef NONMATCHING
-void sub_814D564(u8 *r0, u32 r1, s32 r2, u32 r3, u32 r5, u32 r6, u32 r4)
-{
- u8 sp[8];
- u8 *p;
-
- 1[(u32 *)sp] = r2;
- 0[(u16 *)sp] = r4;
- p = &sp[4];
- r0[0] = p[0];
- r0[1] = p[1];
- r0[2] = p[2];
- r0[3] = p[3];
- r0[4] = r3;
- r0[5] = r5;
- r0[6] = r6;
- r0[7] = sp[0];
- r0[8] = sp[1];
- r0[9] = r1;
-}
-#else
-NAKED
-void sub_814D564(u8 *r0, u32 r1, s32 r2, u32 r3, u32 r5, u32 r6, u32 r4)
+void BerryCrush_SetPaletteFadeParams(u8 *params, bool8 communicateAfter, u32 selectedPals, s8 delay, u8 startY, u8 targetY, u16 palette)
{
- asm_unified("\n\
- push {r4-r6,lr}\n\
- sub sp, 0x8\n\
- str r2, [sp, 0x4]\n\
- ldr r5, [sp, 0x18]\n\
- ldr r6, [sp, 0x1C]\n\
- ldr r4, [sp, 0x20]\n\
- mov r2, sp\n\
- strh r4, [r2]\n\
- add r4, sp, 0x4\n\
- ldrb r2, [r4]\n\
- strb r2, [r0]\n\
- ldrb r2, [r4, 0x1]\n\
- strb r2, [r0, 0x1]\n\
- ldrb r2, [r4, 0x2]\n\
- strb r2, [r0, 0x2]\n\
- ldrb r2, [r4, 0x3]\n\
- strb r2, [r0, 0x3]\n\
- strb r3, [r0, 0x4]\n\
- strb r5, [r0, 0x5]\n\
- strb r6, [r0, 0x6]\n\
- mov r2, sp\n\
- ldrb r2, [r2]\n\
- strb r2, [r0, 0x7]\n\
- mov r2, sp\n\
- ldrb r2, [r2, 0x1]\n\
- strb r2, [r0, 0x8]\n\
- strb r1, [r0, 0x9]\n\
- add sp, 0x8\n\
- pop {r4-r6}\n\
- pop {r0}\n\
- bx r0");
+ params[0] = ((u8 *)&selectedPals)[0];
+ params[1] = ((u8 *)&selectedPals)[1];
+ params[2] = ((u8 *)&selectedPals)[2];
+ params[3] = ((u8 *)&selectedPals)[3];
+ params[4] = delay;
+ params[5] = startY;
+ params[6] = targetY;
+ params[7] = ((u8 *)&palette)[0];
+ params[8] = ((u8 *)&palette)[1];
+ params[9] = communicateAfter;
}
-#endif
-void sub_814D5A4(u8 *r0, u32 r1, u32 r2, u32 r3, u32 r5)
+void BerryCrush_SetShowMessageParams(u8 *params, u8 stringId, u8 flags, u16 waitKeys, u8 followupCmd)
{
- u8 sp[4];
-
- 0[(u16 *)sp] = r3;
- r0[0] = r1;
- r0[1] = r2;
- r0[2] = sp[0];
- r0[3] = sp[1];
- r0[4] = r5;
+ params[0] = stringId;
+ params[1] = flags;
+ params[2] = ((u8 *)&waitKeys)[0];
+ params[3] = ((u8 *)&waitKeys)[1];
+ params[4] = followupCmd;
}
diff --git a/src/berry_crush_3.c b/src/berry_crush_3.c
index 13f392fb4..7713cf6aa 100644
--- a/src/berry_crush_3.c
+++ b/src/berry_crush_3.c
@@ -21,23 +21,23 @@
#include "constants/items.h"
#include "constants/songs.h"
-static void sub_814DEC0(struct BerryCrushGame_138 * arg0, u16 arg1);
-static void sub_814DF44(u8 windowId, u8 left, u8 colorId, const u8 *string);
-static void sub_814DFA4(struct BerryCrushGame * sp0C, u8 sp10, u8 sp14, u8 r3);
+static void FramesToMinSec(struct BerryCrushGame_138 * arg0, u16 arg1);
+static void PrintTextCentered(u8 windowId, u8 left, u8 colorId, const u8 *string);
+static void PrintBerryCrushResultWindow(struct BerryCrushGame * sp0C, u8 sp10, u8 sp14, u8 r3);
static void sub_814E32C(struct BerryCrushGame * r8);
static void Task_ShowBerryCrushRankings(u8 r4);
-static void sub_814EAD4(struct BerryCrushGame_138 * r4, u16 r1);
+static void BerryCrush_PrintTimeOnSprites(struct BerryCrushGame_138 * r4, u16 r1);
static void sub_814EB38(struct BerryCrushGame * r5);
static void sub_814EBB0(struct BerryCrushGame * r6);
static void sub_814EC80(struct BerryCrushGame * r6);
static void sub_814ECE0(struct BerryCrushGame * r6);
static void sub_814EF10(struct BerryCrushGame * r5);
-static void sub_814EFD0(struct Sprite * sprite);
+static void SpriteCB_BerryCrushImpact(struct Sprite * sprite);
static void sub_814EFFC(struct Sprite * sprite);
static void sub_814F044(struct Sprite * sprite);
static void sub_814F0D8(struct Sprite * sprite);
-static const struct BgTemplate gUnknown_846E3CC[] = {
+static const struct BgTemplate sBgTemplates[] = {
{
.bg = 0,
.charBaseIndex = 2,
@@ -101,7 +101,7 @@ static const u8 sBerryCrushTextColorTable[][3] = {
}
};
-static const struct WindowTemplate gUnknown_846E3F0 = {
+static const struct WindowTemplate sWindowTemplate_BerryCrushRankings = {
.bg = 0,
.tilemapLeft = 3,
.tilemapTop = 4,
@@ -188,25 +188,27 @@ static const u8 gUnknown_846E448[][4] = {
{ 12, 14, 15, 16}
};
-static const u32 gUnknown_846E450[] = {
- 50000000,
- 25000000,
- 12500000,
- 6250000,
- 3125000,
- 1562500,
- 781250,
- 390625
+static const u32 sPressingSpeedConversionTable[] = {
+ // Decimal point is vertically aligned with the pixel
+ // directly between the >< below.
+ 50000000, // 50
+ 25000000, // 25
+ 12500000, // 12.5
+ 6250000, // 6.25
+ 3125000, // 3.125
+ 1562500, // 1.5625
+ 781250, // 0.78125
+ 390625 // 0.390625
};
-static const u16 gUnknown_846E470[] = INCBIN_U16("graphics/link_games/unk_846E4D0.gbapal");
-static const u16 gUnknown_846E490[] = INCBIN_U16("graphics/link_games/unk_846E7FC.gbapal");
-static const u16 gUnknown_846E4B0[] = INCBIN_U16("graphics/link_games/unk_846ECC4.gbapal");
+static const u16 sBerryCrushCorePal[] = INCBIN_U16("graphics/link_games/unk_846E4D0.gbapal");
+static const u16 sBerryCrushImpactAndSparklesPal[] = INCBIN_U16("graphics/link_games/unk_846E7FC.gbapal");
+static const u16 sBerryCrushTImerPal[] = INCBIN_U16("graphics/link_games/unk_846ECC4.gbapal");
-static const u32 gUnknown_846E4D0[] = INCBIN_U32("graphics/link_games/unk_846E4D0.4bpp.lz");
-static const u32 gUnknown_846E7FC[] = INCBIN_U32("graphics/link_games/unk_846E7FC.4bpp.lz");
-static const u32 gUnknown_846EB78[] = INCBIN_U32("graphics/link_games/unk_846EB78.4bpp.lz");
-static const u32 gUnknown_846ECC4[] = INCBIN_U32("graphics/link_games/unk_846ECC4.4bpp.lz");
+static const u32 sBerryCrushCoreTiles[] = INCBIN_U32("graphics/link_games/unk_846E4D0.4bpp.lz");
+static const u32 sBerryCrushImpactTiles[] = INCBIN_U32("graphics/link_games/unk_846E7FC.4bpp.lz");
+static const u32 sBerryCrushPowderSparklesTiles[] = INCBIN_U32("graphics/link_games/unk_846EB78.4bpp.lz");
+static const u32 sBerryCrushTimerTiles[] = INCBIN_U32("graphics/link_games/unk_846ECC4.4bpp.lz");
static const u32 gBerryCrushGrinderTopTilemap[] = INCBIN_U32("graphics/link_games/unk_846ED90.bin.lz");
static const u32 gBerryCrushContainerCapTilemap[] = INCBIN_U32("graphics/link_games/unk_846EEC0.bin.lz");
@@ -219,50 +221,50 @@ static const u8 gUnknown_846F280[][5] = {
{0, 1, 3, 2, 4}
};
-static const struct BerryCrushGame_138_C gUnknown_846F294[] = {
- {0x00, 0x00, 0x00, 0x0000, 0xfff0, 0x0000, 0x0000},
- {0x01, 0x00, 0x03, 0xffe4, 0xfffc, 0xffe8, 0x0010},
- {0x02, 0x00, 0x06, 0xfff0, 0x0014, 0xfff8, 0x0010},
- {0x03, 0x14, 0x03, 0x001c, 0xfffc, 0x0020, 0xfff8},
- {0x04, 0x14, 0x06, 0x0010, 0x0014, 0x0010, 0xfff8}
+static const struct BerryCrushPlayerSeatCoords gUnknown_846F294[] = {
+ {0, 0, 0, 0, -16, 0, 0},
+ {1, 0, 3, -28, -4, -24, 16},
+ {2, 0, 6, -16, 20, -8, 16},
+ {3, 20, 3, 28, -4, 32, -8},
+ {4, 20, 6, 16, 20, 16, -8}
};
static const s8 gUnknown_846F2D0[][2] = {
- {0x00, 0x00},
- {0xff, 0x00},
- {0x01, 0x01}
+ { 0, 0},
+ {-1, 0},
+ { 1, 1}
};
static const s8 gUnknown_846F2D6[][2] = {
- {0x00, 0x00},
- {0xf0, 0xfc},
- {0x10, 0xfc},
- {0xf8, 0xfe},
- {0x08, 0xfe},
- {0xe8, 0xf8},
- {0x18, 0xf8},
- {0xe0, 0xf4},
- {0x20, 0xf4},
- {0xd8, 0xf0},
- {0x28, 0xf0}
+ { 0, 0},
+ {-16, -4},
+ { 16, -4},
+ { -8, -2},
+ { 8, -2},
+ {-24, -8},
+ { 24, -8},
+ {-32, -12},
+ { 32, -12},
+ {-40, -16},
+ { 40, -16}
};
-static const u16 gUnknown_846F2EC[] = {
+static const u16 sPlayerBerrySpriteTags[] = {
5, 6, 7, 8, 9
};
-static const struct CompressedSpriteSheet gUnknown_846F2F8[] = {
- {gUnknown_846E4D0, 0x0800, 1},
- {gUnknown_846E7FC, 0x0e00, 2},
- {gUnknown_846EB78, 0x0700, 3},
- {gUnknown_846ECC4, 0x02c0, 4},
+static const struct CompressedSpriteSheet sSpriteSheets[] = {
+ {sBerryCrushCoreTiles, 0x0800, 1},
+ {sBerryCrushImpactTiles, 0x0e00, 2},
+ {sBerryCrushPowderSparklesTiles, 0x0700, 3},
+ {sBerryCrushTimerTiles, 0x02c0, 4},
{}
};
-static const struct SpritePalette gUnknown_846F320[] = {
- {gUnknown_846E470, 1},
- {gUnknown_846E490, 2},
- {gUnknown_846E4B0, 4},
+static const struct SpritePalette sSpritePals[] = {
+ {sBerryCrushCorePal, 1},
+ {sBerryCrushImpactAndSparklesPal, 2},
+ {sBerryCrushTImerPal, 4},
{}
};
@@ -330,21 +332,21 @@ static const union AffineAnimCmd gUnknown_846F3D4[] = {
AFFINEANIMCMD_JUMP(1)
};
-static const union AnimCmd *const gUnknown_846F3EC[] = {
+static const union AnimCmd *const sAnimTable_BerryCrushCore[] = {
gUnknown_846F340
};
-static const union AnimCmd *const gUnknown_846F3F0[] = {
+static const union AnimCmd *const sAnimTable_BerryCrushImpact[] = {
gUnknown_846F348,
gUnknown_846F358
};
-static const union AnimCmd *const gUnknown_846F3F8[] = {
+static const union AnimCmd *const sAnimTable_BerryCrushPowderSparkles[] = {
gUnknown_846F36C,
gUnknown_846F388
};
-static const union AnimCmd *const gUnknown_846F400[] = {
+static const union AnimCmd *const sAnimTable_BerryCrushTimer[] = {
gUnknown_846F3AC
};
@@ -358,43 +360,43 @@ static const union AffineAnimCmd *const gUnknown_846F408[] = {
};
-static const struct SpriteTemplate gUnknown_846F410 = {
+static const struct SpriteTemplate sSpriteTemplate_BerryCrushCore = {
.tileTag = 1,
.paletteTag = 1,
.oam = &gOamData_AffineOff_ObjNormal_64x64,
- .anims = gUnknown_846F3EC,
+ .anims = sAnimTable_BerryCrushCore,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy
};
-static const struct SpriteTemplate gUnknown_846F428 = {
+static const struct SpriteTemplate sSpriteTemplate_BerryCrushImpact = {
.tileTag = 2,
.paletteTag = 2,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
- .anims = gUnknown_846F3F0,
+ .anims = sAnimTable_BerryCrushImpact,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_814EFD0
+ .callback = SpriteCB_BerryCrushImpact
};
-static const struct SpriteTemplate gUnknown_846F440 = {
+static const struct SpriteTemplate sSpriteTemplate_BerryCrushPowderSparkles = {
.tileTag = 3,
.paletteTag = 2,
.oam = &gOamData_AffineOff_ObjNormal_16x16,
- .anims = gUnknown_846F3F8,
+ .anims = sAnimTable_BerryCrushPowderSparkles,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy
};
-static const struct SpriteTemplate gUnknown_846F458 = {
+static const struct SpriteTemplate sSpriteTemplate_BerryCrushTimer = {
.tileTag = 4,
.paletteTag = 4,
.oam = &gOamData_AffineOff_ObjNormal_8x16,
- .anims = gUnknown_846F400,
+ .anims = sAnimTable_BerryCrushTimer,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy
};
-static const struct SpriteTemplate gUnknown_846F470 = {
+static const struct SpriteTemplate sSpriteTemplate_PlayerBerry = {
.tileTag = 5,
.paletteTag = 5,
.oam = &gOamData_AffineDouble_ObjNormal_32x32,
@@ -403,7 +405,7 @@ static const struct SpriteTemplate gUnknown_846F470 = {
.callback = SpriteCallbackDummy
};
-static const struct DigitObjUtilTemplate gUnknown_846F488[] = {
+static const struct DigitObjUtilTemplate sDigitObjTemplates[] = {
{
.strConvMode = 1,
.shape = SPRITE_SHAPE(8x16),
@@ -413,8 +415,8 @@ static const struct DigitObjUtilTemplate gUnknown_846F488[] = {
.xDelta = 8,
.x = 156,
.y = 0,
- .spriteSheet = {.compressed = &gUnknown_846F2F8[3]},
- .spritePal = &gUnknown_846F320[2],
+ .spriteSheet = {.compressed = &sSpriteSheets[3]},
+ .spritePal = &sSpritePals[2],
}, {
.strConvMode = 0,
.shape = SPRITE_SHAPE(8x16),
@@ -424,8 +426,8 @@ static const struct DigitObjUtilTemplate gUnknown_846F488[] = {
.xDelta = 8,
.x = 180,
.y = 0,
- .spriteSheet = {.compressed = &gUnknown_846F2F8[3]},
- .spritePal = &gUnknown_846F320[2],
+ .spriteSheet = {.compressed = &sSpriteSheets[3]},
+ .spritePal = &sSpritePals[2],
}, {
.strConvMode = 0,
.shape = SPRITE_SHAPE(8x16),
@@ -435,12 +437,12 @@ static const struct DigitObjUtilTemplate gUnknown_846F488[] = {
.xDelta = 8,
.x = 204,
.y = 0,
- .spriteSheet = {.compressed = &gUnknown_846F2F8[3]},
- .spritePal = &gUnknown_846F320[2],
+ .spriteSheet = {.compressed = &sSpriteSheets[3]},
+ .spritePal = &sSpritePals[2],
}
};
-static const u8 *const gUnknown_846F4B8[] = {
+static const u8 *const sBCRankingHeaders[] = {
gText_SpaceTimes,
gText_XDotY,
gText_StrVar1Berry,
@@ -449,13 +451,13 @@ static const u8 *const gUnknown_846F4B8[] = {
gText_PressingPowerRankings
};
-int sub_814D5C8(void)
+int BerryCrush_InitBgs(void)
{
- struct BerryCrushGame * var0 = sub_814B6F0();
- if (!var0)
+ struct BerryCrushGame * game = GetBerryCrushGame();
+ if (game == NULL)
return -1;
- switch (var0->unkC)
+ switch (game->cmdState)
{
case 0:
SetVBlankCallback(NULL);
@@ -475,11 +477,11 @@ int sub_814D5C8(void)
FreeAllSpritePalettes();
break;
case 3:
- ResetBgsAndClearDma3BusyFlags(0);
- InitBgsFromTemplates(0, gUnknown_846E3CC, NELEMS(gUnknown_846E3CC));
- SetBgTilemapBuffer(1, var0->unk1C0);
- SetBgTilemapBuffer(2, var0->unk21C0);
- SetBgTilemapBuffer(3, var0->unk31C0);
+ ResetBgsAndClearDma3BusyFlags(FALSE);
+ InitBgsFromTemplates(0, sBgTemplates, NELEMS(sBgTemplates));
+ SetBgTilemapBuffer(1, game->bg1Buffer);
+ SetBgTilemapBuffer(2, game->bg2Buffer);
+ SetBgTilemapBuffer(3, game->bg3Buffer);
ChangeBgX(0, 0, 0);
ChangeBgY(0, 0, 0);
ChangeBgX(2, 0, 0);
@@ -508,8 +510,8 @@ int sub_814D5C8(void)
InitStandardTextBoxWindows();
ResetBg0();
- sub_814EB38(var0);
- sub_814EBB0(var0);
+ sub_814EB38(game);
+ sub_814EBB0(game);
gPaletteFade.bufferTransferDisabled = TRUE;
break;
case 7:
@@ -517,7 +519,7 @@ int sub_814D5C8(void)
CopyToBgTilemapBuffer(1, gBerryCrushGrinderTopTilemap, 0, 0);
CopyToBgTilemapBuffer(2, gBerryCrushContainerCapTilemap, 0, 0);
CopyToBgTilemapBuffer(3, gBerryCrushBackgroundTilemap, 0, 0);
- sub_814EC80(var0);
+ sub_814EC80(game);
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(3);
@@ -525,7 +527,7 @@ int sub_814D5C8(void)
case 8:
LoadWirelessStatusIndicatorSpriteGfx();
CreateWirelessStatusIndicatorSprite(0, 0);
- sub_814ECE0(var0);
+ sub_814ECE0(game);
SetGpuReg(REG_OFFSET_BG1VOFS, -gSpriteCoordOffsetY);
ChangeBgX(1, 0, 0);
ChangeBgY(1, 0, 0);
@@ -538,22 +540,22 @@ int sub_814D5C8(void)
ShowBg(2);
ShowBg(3);
SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP);
- sub_814B914();
- var0->unkC = 0;
+ BerryCrush_SetVBlankCallback();
+ game->cmdState = 0;
return 1;
}
- var0->unkC++;
+ game->cmdState++;
return 0;
}
-int sub_814D888(void)
+int BerryCrush_TeardownBgs(void)
{
- struct BerryCrushGame * var0 = sub_814B6F0();
+ struct BerryCrushGame * var0 = GetBerryCrushGame();
if (!var0)
return -1;
- switch (var0->unkC)
+ switch (var0->cmdState)
{
case 0:
LinkRfu_SetRfuFuncToSend6600();
@@ -599,35 +601,35 @@ int sub_814D888(void)
DigitObjUtil_Teardown();
break;
case 7:
- var0->unkC = 0;
+ var0->cmdState = 0;
return 1;
}
- var0->unkC++;
+ var0->cmdState++;
return 0;
}
-int sub_814D9CC(struct BerryCrushGame * arg0)
+int sub_814D9CC(struct BerryCrushGame * game)
{
- gSpriteCoordOffsetY = arg0->unk2A + arg0->unk2C;
+ gSpriteCoordOffsetY = game->depth + game->vibration;
SetGpuReg(REG_OFFSET_BG1VOFS, -gSpriteCoordOffsetY);
- if (arg0->unk12 == 7)
+ if (game->gameState == 7)
{
- sub_814EAD4(&arg0->unk138, arg0->unk28);
+ BerryCrush_PrintTimeOnSprites(&game->spritesManager, game->timer);
}
return 0;
}
-void sub_814DA04(struct BerryCrushGame * arg0)
+void sub_814DA04(struct BerryCrushGame * game)
{
- arg0->unk2A = -104;
- arg0->unk2C = 0;
+ game->depth = -104;
+ game->vibration = 0;
gSpriteCoordOffsetX = 0;
gSpriteCoordOffsetY = -104;
}
-void sub_814DA24(struct BerryCrushGame * arg0, struct BerryCrushGame_138 * arg1)
+void BerryCrush_CreateBerrySprites(struct BerryCrushGame * game, struct BerryCrushGame_138 * spritesManager)
{
u8 i;
u8 spriteId;
@@ -637,24 +639,24 @@ void sub_814DA24(struct BerryCrushGame * arg0, struct BerryCrushGame_138 * arg1)
s16 var5;
u32 var6;
- for (i = 0; i < arg0->unk9; i++)
+ for (i = 0; i < game->playerCount; i++)
{
spriteId = AddItemIconObjectWithCustomObjectTemplate(
- &gUnknown_846F470,
- gUnknown_846F2EC[i],
- gUnknown_846F2EC[i],
- arg0->unk68.as_four_players.others[i].unk0 + FIRST_BERRY_INDEX);
- arg1->unk38[i] = &gSprites[spriteId];
- arg1->unk38[i]->oam.priority = 3;
- arg1->unk38[i]->affineAnimPaused = TRUE;
- arg1->unk38[i]->pos1.x = arg1->unkC[i]->unk8 + 120;
- arg1->unk38[i]->pos1.y = -16;
- data = arg1->unk38[i]->data;
+ &sSpriteTemplate_PlayerBerry,
+ sPlayerBerrySpriteTags[i],
+ sPlayerBerrySpriteTags[i],
+ game->unk68.as_four_players.others[i].berryId + FIRST_BERRY_INDEX);
+ spritesManager->berrySprites[i] = &gSprites[spriteId];
+ spritesManager->berrySprites[i]->oam.priority = 3;
+ spritesManager->berrySprites[i]->affineAnimPaused = TRUE;
+ spritesManager->berrySprites[i]->pos1.x = spritesManager->seatCoords[i]->unk8 + 120;
+ spritesManager->berrySprites[i]->pos1.y = -16;
+ data = spritesManager->berrySprites[i]->data;
var5 = 512;
data[1] = var5;
data[2] = 32;
data[7] = 112;
- var0 = arg1->unkC[i]->unkA - arg1->unkC[i]->unk8;
+ var0 = spritesManager->seatCoords[i]->unkA - spritesManager->seatCoords[i]->unk8;
var3 = var0;
if (var0 < 0)
var3 += 3;
@@ -663,19 +665,19 @@ void sub_814DA24(struct BerryCrushGame * arg0, struct BerryCrushGame_138 * arg1)
var0 *= 128;
var6 = var5 + 32;
var6 = var6 / 2;
- var1 = sub_80D8B40(7, 0x3F80, var6);
- data[0] = (u16)arg1->unk38[i]->pos1.x * 128;
- data[3] = sub_80D8B40(7, var0, var1);
- var1 = sub_80D8ABC(7, var1, 85);
+ var1 = MathUtil_Div16Shift(7, 0x3F80, var6);
+ data[0] = (u16)spritesManager->berrySprites[i]->pos1.x * 128;
+ data[3] = MathUtil_Div16Shift(7, var0, var1);
+ var1 = MathUtil_Mul16Shift(7, var1, 85);
data[4] = 0;
- data[5] = sub_80D8B40(7, 0x3F80, var1);
+ data[5] = MathUtil_Div16Shift(7, 0x3F80, var1);
data[7] |= 0x8000;
- if (arg1->unkC[i]->unk8 < 0)
- StartSpriteAffineAnim(arg1->unk38[i], 1);
+ if (spritesManager->seatCoords[i]->unk8 < 0)
+ StartSpriteAffineAnim(spritesManager->berrySprites[i], 1);
}
}
-void sub_814DB84(struct Sprite * sprite)
+void SpriteCB_DropBerryIntoCrusher(struct Sprite * sprite)
{
s16 *data = sprite->data;
@@ -702,17 +704,17 @@ void sub_814DB84(struct Sprite * sprite)
}
}
-void sub_814DC24(struct BerryCrushGame * arg0, UNUSED struct BerryCrushGame_138 * arg1)
+void BerryCrushFreeBerrySpriteGfx(struct BerryCrushGame * arg0, UNUSED struct BerryCrushGame_138 * arg1)
{
u8 i;
- for (i = 0; i < arg0->unk9; i++)
+ for (i = 0; i < arg0->playerCount; i++)
{
- FreeSpritePaletteByTag(gUnknown_846F2EC[i]);
- FreeSpriteTilesByTag(gUnknown_846F2EC[i]);
+ FreeSpritePaletteByTag(sPlayerBerrySpriteTags[i]);
+ FreeSpriteTilesByTag(sPlayerBerrySpriteTags[i]);
}
}
-void sub_814DC5C(struct BerryCrushGame * arg0, struct BerryCrushGame_138 * arg1)
+void sub_814DC5C(struct BerryCrushGame * game, struct BerryCrushGame_138 * manager)
{
u8 sp4;
struct BerryCrushGame_4E * var4E;
@@ -720,47 +722,47 @@ void sub_814DC5C(struct BerryCrushGame * arg0, struct BerryCrushGame_138 * arg1)
u16 var, var2;
sp4 = 0;
- var4E = &arg0->unk40.unkE;
- for (i = 0; i < arg0->unk9; i++)
+ var4E = (struct BerryCrushGame_4E *)&game->recvCmd;
+ for (i = 0; i < game->playerCount; i++)
{
- var = var4E->unkA >> (i * 3);
+ var = var4E->data.unk08 >> (i * 3);
var &= 7;
if (var)
{
sp4++;
if (var & 0x4)
- StartSpriteAnim(arg1->unk24[i], 1);
+ StartSpriteAnim(manager->impactSprites[i], 1);
else
- StartSpriteAnim(arg1->unk24[i], 0);
+ StartSpriteAnim(manager->impactSprites[i], 0);
- arg1->unk24[i]->invisible = FALSE;
- arg1->unk24[i]->animPaused = FALSE;
- arg1->unk24[i]->pos2.x = gUnknown_846F2D0[(var % 4) - 1][0];
- arg1->unk24[i]->pos2.y = gUnknown_846F2D0[(var % 4) - 1][1];
+ manager->impactSprites[i]->invisible = FALSE;
+ manager->impactSprites[i]->animPaused = FALSE;
+ manager->impactSprites[i]->pos2.x = gUnknown_846F2D0[(var % 4) - 1][0];
+ manager->impactSprites[i]->pos2.y = gUnknown_846F2D0[(var % 4) - 1][1];
}
}
if (sp4 == 0)
{
- arg0->unk25_2 = 0;
+ game->unk25_2 = 0;
}
else
{
- var = (u8)(arg0->unk28 % 3);
+ var = (u8)(game->timer % 3);
var2 = var;
- for (i = 0; i < var4E->unkC * 2 + 3; i++)
+ for (i = 0; i < var4E->data.unk0A * 2 + 3; i++)
{
- if (arg1->unk4C[i]->invisible)
+ if (manager->sparkleSprites[i]->invisible)
{
- arg1->unk4C[i]->callback = sub_814F0D8;
- arg1->unk4C[i]->pos1.x = gUnknown_846F2D6[i][0] + 120;
- arg1->unk4C[i]->pos1.y = gUnknown_846F2D6[i][1] + 136 - (var * 4);
- arg1->unk4C[i]->pos2.x = gUnknown_846F2D6[i][0] + (gUnknown_846F2D6[i][0] / (var2 * 4));
- arg1->unk4C[i]->pos2.y = gUnknown_846F2D6[i][1];
- if (var4E->unk4_1)
- StartSpriteAnim(arg1->unk4C[i], 1);
+ manager->sparkleSprites[i]->callback = sub_814F0D8;
+ manager->sparkleSprites[i]->pos1.x = gUnknown_846F2D6[i][0] + 120;
+ manager->sparkleSprites[i]->pos1.y = gUnknown_846F2D6[i][1] + 136 - (var * 4);
+ manager->sparkleSprites[i]->pos2.x = gUnknown_846F2D6[i][0] + (gUnknown_846F2D6[i][0] / (var2 * 4));
+ manager->sparkleSprites[i]->pos2.y = gUnknown_846F2D6[i][1];
+ if (var4E->data.unk02_1)
+ StartSpriteAnim(manager->sparkleSprites[i], 1);
else
- StartSpriteAnim(arg1->unk4C[i], 0);
+ StartSpriteAnim(manager->sparkleSprites[i], 0);
var++;
if (var > 3)
@@ -768,9 +770,9 @@ void sub_814DC5C(struct BerryCrushGame * arg0, struct BerryCrushGame_138 * arg1)
}
}
- if (arg0->unk25_2)
+ if (game->unk25_2)
{
- arg0->unk25_2 = 0;
+ game->unk25_2 = 0;
}
else
{
@@ -779,7 +781,7 @@ void sub_814DC5C(struct BerryCrushGame * arg0, struct BerryCrushGame_138 * arg1)
else
PlaySE(SE_TOY_KABE);
- arg0->unk25_2 = 1;
+ game->unk25_2 = 1;
}
}
}
@@ -788,235 +790,238 @@ bool32 sub_814DE50(struct BerryCrushGame * arg0, struct BerryCrushGame_138 * arg
{
u8 i;
- for (i = 0; i < arg0->unk9; i++)
+ for (i = 0; i < arg0->playerCount; i++)
{
- if (!arg1->unk24[i]->invisible)
+ if (!arg1->impactSprites[i]->invisible)
return FALSE;
}
for (i = 0; i < 11; i++)
{
- if (!arg1->unk4C[i]->invisible)
+ if (!arg1->sparkleSprites[i]->invisible)
return FALSE;
}
- if (arg0->unk2C != 0)
- arg0->unk2C = 0;
+ if (arg0->vibration != 0)
+ arg0->vibration = 0;
return TRUE;
}
-static void sub_814DEC0(struct BerryCrushGame_138 * arg0, u16 arg1)
+static void FramesToMinSec(struct BerryCrushGame_138 * manager, u16 frames)
{
u8 i = 0;
- u32 r7 = 0;
+ u32 fractionalFrames = 0;
s16 r3 = 0;
- arg0->unk4 = arg1 / 3600;
- arg0->unk6 = (arg1 % 3600) / 60;
- r3 = sub_80D8AA0((arg1 % 60) << 8, 4);
+ manager->minutes = frames / 3600;
+ manager->secondsInt = (frames % 3600) / 60;
+ r3 = MathUtil_Mul16((frames % 60) << 8, 4);
for (i = 0; i < 8; i++)
{
if ((r3 >> (7 - i)) & 1)
- r7 += gUnknown_846E450[i];
+ fractionalFrames += sPressingSpeedConversionTable[i];
}
- arg0->unk8 = r7 / 1000000;
+ manager->secondsFrac = fractionalFrames / 1000000;
}
-static void sub_814DF44(u8 windowId, u8 left, u8 colorId, const u8 *string)
+static void PrintTextCentered(u8 windowId, u8 left, u8 colorId, const u8 *string)
{
left = (left * 4) - (GetStringWidth(2, string, -1) / 2u);
AddTextPrinterParameterized3(windowId, 2, left, 0, sBerryCrushTextColorTable[colorId], 0, string);
}
-static void sub_814DFA4(struct BerryCrushGame * sp0C, u8 sp10, u8 sp14, u8 sp18)
+static void PrintBerryCrushResultWindow(struct BerryCrushGame * game, u8 command, u8 x, u8 y)
{
- u8 r8 = 0;
- u8 sp1C = 0;
- u8 sp20 = 0;
- u8 r2;
- s32 r3;
- u8 r7;
- union BerryCrushGame_68 * sp24 = &sp0C->unk68;
- s32 sp30;
-
- for (; r8 < sp0C->unk9; r8++)
+ u8 i = 0;
+ u8 linkPlayerId = 0;
+ u8 linkIdToPrint = 0;
+ u8 j;
+ s32 score;
+ u8 realX;
+ union BerryCrushGame_68 * bcPlayers = &game->unk68;
+ s32 realX2;
+
+ for (; i < game->playerCount; i++)
{
DynamicPlaceholderTextUtil_Reset();
- switch (sp10)
+ switch (command)
{
case 0:
- sp1C = sp24->as_five_players.unk1C[0].unk4.as_2d_bytes[sp10][r8];
- if (r8 != 0 && sp24->as_four_players.unk00.unk0C[sp10][r8] != sp24->as_four_players.unk00.unk0C[sp10][r8 - 1])
+ // Number of presses
+ linkPlayerId = bcPlayers->as_five_players.players[0].unk4.as_2d_bytes[command][i];
+ if (i != 0 && bcPlayers->as_four_players.unk00.stats[command][i] != bcPlayers->as_four_players.unk00.stats[command][i - 1])
{
- sp20 = r8;
+ linkIdToPrint = i;
}
- ConvertIntToDecimalStringN(gStringVar1, sp24->as_four_players.unk00.unk0C[sp10][r8], STR_CONV_MODE_RIGHT_ALIGN, 4);
- r7 = sp14 - GetStringWidth(2, gUnknown_846F4B8[sp10], -1) - 4;
- AddTextPrinterParameterized3(sp0C->unk138.unk82, 2, r7, sp18 + 14 * r8, sBerryCrushTextColorTable[0], 0, gUnknown_846F4B8[sp10]);
- AddTextPrinterParameterized3(sp0C->unk138.unk82, 2, r7 - 24, sp18 + 14 * r8, sBerryCrushTextColorTable[0], 0, gStringVar1);
+ ConvertIntToDecimalStringN(gStringVar1, bcPlayers->as_four_players.unk00.stats[command][i], STR_CONV_MODE_RIGHT_ALIGN, 4);
+ realX = x - GetStringWidth(2, sBCRankingHeaders[command], -1) - 4;
+ AddTextPrinterParameterized3(game->spritesManager.unk82, 2, realX, y + 14 * i, sBerryCrushTextColorTable[0], 0, sBCRankingHeaders[command]);
+ AddTextPrinterParameterized3(game->spritesManager.unk82, 2, realX - 24, y + 14 * i, sBerryCrushTextColorTable[0], 0, gStringVar1);
break;
case 1:
- sp1C = sp24->as_five_players.unk1C[0].unk4.as_2d_bytes[sp10][r8];
- if (r8 != 0 && sp24->as_four_players.unk00.unk0C[sp10][r8] != sp24->as_four_players.unk00.unk0C[sp10][r8 - 1])
+ // Neatness
+ linkPlayerId = bcPlayers->as_five_players.players[0].unk4.as_2d_bytes[command][i];
+ if (i != 0 && bcPlayers->as_four_players.unk00.stats[command][i] != bcPlayers->as_four_players.unk00.stats[command][i - 1])
{
- sp20 = r8;
+ linkIdToPrint = i;
}
- ConvertIntToDecimalStringN(gStringVar1, sp24->as_four_players.unk00.unk0C[sp10][r8] >> 4, STR_CONV_MODE_RIGHT_ALIGN, 3);
- r3 = 0;
- r7 = sp24->as_four_players.unk00.unk0C[sp10][r8] & 15;
- for (r2 = 0; r2 < 4; r2++)
+ ConvertIntToDecimalStringN(gStringVar1, bcPlayers->as_four_players.unk00.stats[command][i] >> 4, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ score = 0;
+ realX = bcPlayers->as_four_players.unk00.stats[command][i] & 15;
+ for (j = 0; j < 4; j++)
{
- if ((r7 >> (3 - r2)) & 1)
- r3 += gUnknown_846E450[r2];
+ if ((realX >> (3 - j)) & 1)
+ score += sPressingSpeedConversionTable[j];
}
- r7 = r3 / 1000000u;
- ConvertIntToDecimalStringN(gStringVar2, r7, STR_CONV_MODE_LEADING_ZEROS, 2);
- StringExpandPlaceholders(gStringVar4, gUnknown_846F4B8[sp10]);
- sp30 = sp14 - 4;
- AddTextPrinterParameterized3(sp0C->unk138.unk82, 2, sp30 - GetStringWidth(2, gStringVar4, 0), sp18 + 14 * r8, sBerryCrushTextColorTable[0], 0, gStringVar4);
+ realX = score / 1000000u;
+ ConvertIntToDecimalStringN(gStringVar2, realX, STR_CONV_MODE_LEADING_ZEROS, 2);
+ StringExpandPlaceholders(gStringVar4, sBCRankingHeaders[command]);
+ realX2 = x - 4;
+ AddTextPrinterParameterized3(game->spritesManager.unk82, 2, realX2 - GetStringWidth(2, gStringVar4, 0), y + 14 * i, sBerryCrushTextColorTable[0], 0, gStringVar4);
break;
case 2:
- sp1C = r8;
- sp20 = r8;
- r2 = sp0C->unk68.as_five_players.unk1C[r8].unk14[12];
- if (r2 >= LAST_BERRY_INDEX - FIRST_BERRY_INDEX + 2)
- r2 = 0;
- StringCopy(gStringVar1, gBerries[r2].name);
- StringExpandPlaceholders(gStringVar4, gUnknown_846F4B8[sp10]);
- AddTextPrinterParameterized3(sp0C->unk138.unk82, 2, sp14 - GetStringWidth(2, gStringVar4, -1) - 4, sp18 + 14 * r8, sBerryCrushTextColorTable[0], 0, gStringVar4);
+ // Berry names
+ linkPlayerId = i;
+ linkIdToPrint = i;
+ j = game->unk68.as_five_players.players[i].unk14[12];
+ if (j >= LAST_BERRY_INDEX - FIRST_BERRY_INDEX + 2)
+ j = 0;
+ StringCopy(gStringVar1, gBerries[j].name);
+ StringExpandPlaceholders(gStringVar4, sBCRankingHeaders[command]);
+ AddTextPrinterParameterized3(game->spritesManager.unk82, 2, x - GetStringWidth(2, gStringVar4, -1) - 4, y + 14 * i, sBerryCrushTextColorTable[0], 0, gStringVar4);
break;
}
- if (sp1C == sp0C->unk8)
+ if (linkPlayerId == game->localId)
StringCopy(gStringVar3, gText_1_ClrLtGryShdwBlk_Dynamic0);
else
StringCopy(gStringVar3, gText_1_Dynamic0);
- gStringVar3[0] = sp20 + CHAR_1;
- DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, PLAYER_UNK14(sp0C, sp1C));
+ gStringVar3[0] = linkIdToPrint + CHAR_1;
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, BERRYCRUSH_PLAYER_NAME(game, linkPlayerId));
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gStringVar3);
- AddTextPrinterParameterized3(sp0C->unk138.unk82, 2, 4, sp18 + 14 * r8, sBerryCrushTextColorTable[0], 0, gStringVar4);
+ AddTextPrinterParameterized3(game->spritesManager.unk82, 2, 4, y + 14 * i, sBerryCrushTextColorTable[0], 0, gStringVar4);
}
}
-static void sub_814E32C(struct BerryCrushGame * r8)
+static void sub_814E32C(struct BerryCrushGame * game)
{
- u8 r10 = 0;
- u8 r6 = 0;
- u32 sp0C = 0;
- union BerryCrushGame_68 *sp10 = &r8->unk68;
- u8 r7 = GetWindowAttribute(r8->unk138.unk82, WINDOW_HEIGHT) * 8 - 42;
+ u8 i = 0;
+ u8 x = 0;
+ u32 score = 0;
+ union BerryCrushGame_68 *players = &game->unk68;
+ u8 y = GetWindowAttribute(game->spritesManager.unk82, WINDOW_HEIGHT) * 8 - 42;
- sub_814DEC0(&r8->unk138, sp10->as_four_players.unk00.unk04);
- AddTextPrinterParameterized3(r8->unk138.unk82, 2, 2, r7, sBerryCrushTextColorTable[0], 0, gText_TimeColon);
+ FramesToMinSec(&game->spritesManager, players->as_four_players.unk00.unk04);
+ AddTextPrinterParameterized3(game->spritesManager.unk82, 2, 2, y, sBerryCrushTextColorTable[0], 0, gText_TimeColon);
- r6 = 190 - (u8)GetStringWidth(2, gText_SpaceSec, 0);
- AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColorTable[0], 0, gText_SpaceSec);
+ x = 190 - (u8)GetStringWidth(2, gText_SpaceSec, 0);
+ AddTextPrinterParameterized3(game->spritesManager.unk82, 2, x, y, sBerryCrushTextColorTable[0], 0, gText_SpaceSec);
- r6 -= 32;
- ConvertIntToDecimalStringN(gStringVar1, r8->unk138.unk6, STR_CONV_MODE_LEADING_ZEROS, 2);
- ConvertIntToDecimalStringN(gStringVar2, r8->unk138.unk8, STR_CONV_MODE_LEADING_ZEROS, 2);
+ x -= 32;
+ ConvertIntToDecimalStringN(gStringVar1, game->spritesManager.secondsInt, STR_CONV_MODE_LEADING_ZEROS, 2);
+ ConvertIntToDecimalStringN(gStringVar2, game->spritesManager.secondsFrac, STR_CONV_MODE_LEADING_ZEROS, 2);
StringExpandPlaceholders(gStringVar4, gText_XDotY2);
- AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColorTable[0], 0, gStringVar4);
+ AddTextPrinterParameterized3(game->spritesManager.unk82, 2, x, y, sBerryCrushTextColorTable[0], 0, gStringVar4);
- r6 -= (u8)GetStringWidth(2, gText_SpaceMin, 0) + 3;
- AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColorTable[0], 0, gText_SpaceMin);
+ x -= (u8)GetStringWidth(2, gText_SpaceMin, 0) + 3;
+ AddTextPrinterParameterized3(game->spritesManager.unk82, 2, x, y, sBerryCrushTextColorTable[0], 0, gText_SpaceMin);
- r6 -= 9;
- ConvertIntToDecimalStringN(gStringVar1, r8->unk138.unk4, STR_CONV_MODE_LEADING_ZEROS, 1);
+ x -= 9;
+ ConvertIntToDecimalStringN(gStringVar1, game->spritesManager.minutes, STR_CONV_MODE_LEADING_ZEROS, 1);
StringExpandPlaceholders(gStringVar4, gText_StrVar1);
- AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColorTable[0], 0, gStringVar4);
+ AddTextPrinterParameterized3(game->spritesManager.unk82, 2, x, y, sBerryCrushTextColorTable[0], 0, gStringVar4);
- r7 += 14;
- AddTextPrinterParameterized3(r8->unk138.unk82, 2, 2, r7, sBerryCrushTextColorTable[0], 0, gText_PressingSpeed);
+ y += 14;
+ AddTextPrinterParameterized3(game->spritesManager.unk82, 2, 2, y, sBerryCrushTextColorTable[0], 0, gText_PressingSpeed);
- r6 = 190 - (u8)GetStringWidth(2, gText_TimesPerSec, 0);
- AddTextPrinterParameterized3(r8->unk138.unk82, 3, r6, r7, sBerryCrushTextColorTable[0], 0, gText_TimesPerSec);
+ x = 190 - (u8)GetStringWidth(2, gText_TimesPerSec, 0);
+ AddTextPrinterParameterized3(game->spritesManager.unk82, 3, x, y, sBerryCrushTextColorTable[0], 0, gText_TimesPerSec);
- for (r10 = 0; r10 < 8; ++r10)
- if (((u8)r8->unk16 >> (7 - r10)) & 1)
- sp0C += *(r10 + gUnknown_846E450); // It's accessed in a different way here for unknown reason
- ConvertIntToDecimalStringN(gStringVar1, r8->unk16 >> 8, STR_CONV_MODE_RIGHT_ALIGN, 3);
- ConvertIntToDecimalStringN(gStringVar2, sp0C / 1000000, STR_CONV_MODE_LEADING_ZEROS, 2);
+ for (i = 0; i < 8; ++i)
+ if (((u8)game->pressingSpeed >> (7 - i)) & 1)
+ score += *(i + sPressingSpeedConversionTable); // It's accessed in a different way here for unknown reason
+ ConvertIntToDecimalStringN(gStringVar1, game->pressingSpeed >> 8, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ ConvertIntToDecimalStringN(gStringVar2, score / 1000000, STR_CONV_MODE_LEADING_ZEROS, 2);
StringExpandPlaceholders(gStringVar4, gText_XDotY3);
- r6 -= 38;
- if (r8->unk25_1)
- AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColorTable[5], 0, gStringVar4);
+ x -= 38;
+ if (game->unk25_1)
+ AddTextPrinterParameterized3(game->spritesManager.unk82, 2, x, y, sBerryCrushTextColorTable[5], 0, gStringVar4);
else
- AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColorTable[0], 0, gStringVar4);
+ AddTextPrinterParameterized3(game->spritesManager.unk82, 2, x, y, sBerryCrushTextColorTable[0], 0, gStringVar4);
- r7 += 14;
- AddTextPrinterParameterized3(r8->unk138.unk82, 2, 2, r7, sBerryCrushTextColorTable[0], 0, gText_Silkiness);
+ y += 14;
+ AddTextPrinterParameterized3(game->spritesManager.unk82, 2, 2, y, sBerryCrushTextColorTable[0], 0, gText_Silkiness);
- ConvertIntToDecimalStringN(gStringVar1, sp10->as_four_players.unk00.unk08, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ ConvertIntToDecimalStringN(gStringVar1, players->as_four_players.unk00.unk08, STR_CONV_MODE_RIGHT_ALIGN, 3);
StringExpandPlaceholders(gStringVar4, gText_Var1Percent);
- r6 = 190 - (u8)GetStringWidth(2, gStringVar4, 0);
- AddTextPrinterParameterized3(r8->unk138.unk82, 2, r6, r7, sBerryCrushTextColorTable[0], 0, gStringVar4);
+ x = 190 - (u8)GetStringWidth(2, gStringVar4, 0);
+ AddTextPrinterParameterized3(game->spritesManager.unk82, 2, x, y, sBerryCrushTextColorTable[0], 0, gStringVar4);
}
-bool32 sub_814E644(struct BerryCrushGame * r4, struct BerryCrushGame_138 * r6)
+bool32 sub_814E644(struct BerryCrushGame * game, struct BerryCrushGame_138 * spriteManager)
{
- u8 r5;
+ u8 playerCountMinus2;
struct WindowTemplate template;
- switch (r6->unk80)
+ switch (spriteManager->unk80)
{
case 0:
- r5 = r4->unk9 - 2;
- sub_814EB04(r6);
- memcpy(&template, &gUnknown_846E428[r4->unk12 - 11], sizeof(struct WindowTemplate));
- if (r4->unk12 == 13)
- template.height = gUnknown_846E448[1][r5];
+ playerCountMinus2 = game->playerCount - 2;
+ BerryCrush_HideTimerSprites(spriteManager);
+ memcpy(&template, &gUnknown_846E428[game->gameState - 11], sizeof(struct WindowTemplate));
+ if (game->gameState == 13)
+ template.height = gUnknown_846E448[1][playerCountMinus2];
else
- template.height = gUnknown_846E448[0][r5];
- r6->unk82 = AddWindow(&template);
+ template.height = gUnknown_846E448[0][playerCountMinus2];
+ spriteManager->unk82 = AddWindow(&template);
break;
case 1:
- PutWindowTilemap(r6->unk82);
- FillWindowPixelBuffer(r6->unk82, PIXEL_FILL(0));
+ PutWindowTilemap(spriteManager->unk82);
+ FillWindowPixelBuffer(spriteManager->unk82, PIXEL_FILL(0));
break;
case 2:
- TextWindow_SetStdFrame0_WithPal(r6->unk82, 0x21D, 0xD0);
- DrawStdFrameWithCustomTileAndPalette(r6->unk82, 0, 541, 13);
+ TextWindow_SetStdFrame0_WithPal(spriteManager->unk82, 0x21D, 0xD0);
+ DrawStdFrameWithCustomTileAndPalette(spriteManager->unk82, FALSE, 541, 13);
break;
case 3:
- r5 = r4->unk9 - 2;
- switch (r4->unk12)
+ playerCountMinus2 = game->playerCount - 2;
+ switch (game->gameState)
{
case 11:
- sub_814DF44(r6->unk82, 22, 3, gText_PressesRankings);
- sub_814DFA4(r4, 0, 0xB0, 8 * gUnknown_846E448[0][r5] - r4->unk9 * 14);
- r6->unk80 = 5;
+ PrintTextCentered(spriteManager->unk82, 22, 3, gText_PressesRankings);
+ PrintBerryCrushResultWindow(game, 0, 0xB0, 8 * gUnknown_846E448[0][playerCountMinus2] - game->playerCount * 14);
+ spriteManager->unk80 = 5;
return FALSE;
case 12:
- sub_814DF44(r6->unk82, 22, 4, gUnknown_846F4B8[r4->unk68.as_five_players.unk1C[0].unk4.as_2d_bytes[0][7] + 3]);
- sub_814DFA4(r4, 1, 0xB0, 8 * gUnknown_846E448[0][r5] - r4->unk9 * 14);
- r6->unk80 = 5;
+ PrintTextCentered(spriteManager->unk82, 22, 4, sBCRankingHeaders[game->unk68.as_five_players.players[0].unk4.as_2d_bytes[0][7] + 3]);
+ PrintBerryCrushResultWindow(game, 1, 0xB0, 8 * gUnknown_846E448[0][playerCountMinus2] - game->playerCount * 14);
+ spriteManager->unk80 = 5;
return FALSE;
case 13:
- sub_814DF44(r6->unk82, 24, 3, gText_CrushingResults);
- sub_814DFA4(r4, 2, 0xC0, 0x10);
+ PrintTextCentered(spriteManager->unk82, 24, 3, gText_CrushingResults);
+ PrintBerryCrushResultWindow(game, 2, 0xC0, 0x10);
break;
}
break;
case 4:
- sub_814E32C(r4);
+ sub_814E32C(game);
break;
case 5:
- CopyWindowToVram(r6->unk82, 3);
- r6->unk80 = 0;
+ CopyWindowToVram(spriteManager->unk82, COPYWIN_BOTH);
+ spriteManager->unk80 = 0;
return TRUE;
}
- ++r6->unk80;
+ ++spriteManager->unk80;
return FALSE;
}
-void sub_814E80C(struct BerryCrushGame * r4)
+void sub_814E80C(struct BerryCrushGame * game)
{
- ClearStdWindowAndFrameToTransparent(r4->unk138.unk82, 1);
- RemoveWindow(r4->unk138.unk82);
- sub_814EBB0(r4);
+ ClearStdWindowAndFrameToTransparent(game->spritesManager.unk82, 1);
+ RemoveWindow(game->spritesManager.unk82);
+ sub_814EBB0(game);
}
static void Task_ShowBerryCrushRankings(u8 taskId)
@@ -1029,7 +1034,7 @@ static void Task_ShowBerryCrushRankings(u8 taskId)
switch (data[0])
{
case 0:
- data[1] = AddWindow(&gUnknown_846E3F0);
+ data[1] = AddWindow(&sWindowTemplate_BerryCrushRankings);
PutWindowTilemap(data[1]);
FillWindowPixelBuffer(data[1], PIXEL_FILL(0));
TextWindow_SetStdFrame0_WithPal(data[1], 0x21D, 0xD0);
@@ -1073,7 +1078,7 @@ static void Task_ShowBerryCrushRankings(u8 taskId)
for (j = 0; j < 8; ++j)
{
if (((data[i + 2] & 0xFF) >> (7 - j)) & 1)
- score += gUnknown_846E450[j];
+ score += sPressingSpeedConversionTable[j];
}
ConvertIntToDecimalStringN(gStringVar1, (u16)data[i + 2] >> 8, STR_CONV_MODE_RIGHT_ALIGN, 3);
ConvertIntToDecimalStringN(gStringVar2, score / 1000000, STR_CONV_MODE_LEADING_ZEROS, 2);
@@ -1093,7 +1098,7 @@ static void Task_ShowBerryCrushRankings(u8 taskId)
yPos += 14;
score = 0;
}
- CopyWindowToVram(data[1], 3);
+ CopyWindowToVram(data[1], COPYWIN_BOTH);
break;
case 2:
if (gMain.newKeys & (A_BUTTON | B_BUTTON))
@@ -1125,80 +1130,79 @@ void ShowBerryCrushRankings(void)
gTasks[taskId].data[5] = gSaveBlock2Ptr->berryCrush.berryCrushResults[3];
}
-static void sub_814EAD4(struct BerryCrushGame_138 * r4, u16 r1)
+static void BerryCrush_PrintTimeOnSprites(struct BerryCrushGame_138 * manager, u16 frames)
{
- sub_814DEC0(r4, r1);
- DigitObjUtil_PrintNumOn(0, r4->unk4);
- DigitObjUtil_PrintNumOn(1, r4->unk6);
- DigitObjUtil_PrintNumOn(2, r4->unk8);
+ FramesToMinSec(manager, frames);
+ DigitObjUtil_PrintNumOn(0, manager->minutes);
+ DigitObjUtil_PrintNumOn(1, manager->secondsInt);
+ DigitObjUtil_PrintNumOn(2, manager->secondsFrac);
}
-void sub_814EB04(struct BerryCrushGame_138 * r0)
+void BerryCrush_HideTimerSprites(struct BerryCrushGame_138 * manager)
{
- r0->unk78[0]->invisible = TRUE;
- r0->unk78[1]->invisible = TRUE;
+ manager->timerSprites[0]->invisible = TRUE;
+ manager->timerSprites[1]->invisible = TRUE;
DigitObjUtil_HideOrShow(2, 1);
DigitObjUtil_HideOrShow(1, 1);
DigitObjUtil_HideOrShow(0, 1);
}
-static void sub_814EB38(struct BerryCrushGame * r5)
+static void sub_814EB38(struct BerryCrushGame * game)
{
- u8 r6;
+ u8 i;
- for (r6 = 0; r6 < r5->unk9; ++r6)
+ for (i = 0; i < game->playerCount; ++i)
{
- r5->unk138.unkC[r6] = &gUnknown_846F294[gUnknown_846F280[r5->unk9 - 2][r6]];
- r5->unk138.unk83[r6] = AddWindow(&gUnknown_846E3F8[r5->unk138.unkC[r6]->unk0]);
- PutWindowTilemap(r5->unk138.unk83[r6]);
- FillWindowPixelBuffer(r5->unk138.unk83[r6], 0);
+ game->spritesManager.seatCoords[i] = &gUnknown_846F294[gUnknown_846F280[game->playerCount - 2][i]];
+ game->spritesManager.unk83[i] = AddWindow(&gUnknown_846E3F8[game->spritesManager.seatCoords[i]->unk0]);
+ PutWindowTilemap(game->spritesManager.unk83[i]);
+ FillWindowPixelBuffer(game->spritesManager.unk83[i], PIXEL_FILL(0));
}
}
-static void sub_814EBB0(struct BerryCrushGame * r6)
+static void sub_814EBB0(struct BerryCrushGame * game)
{
- u8 r7, r2;
- u8 *r4;
+ u8 i;
- for (r7 = 0; r7 < r6->unk9; ++r7)
+ for (i = 0; i < game->playerCount; ++i)
{
- PutWindowTilemap(r6->unk138.unk83[r7]);
- if (r7 == r6->unk8)
+ PutWindowTilemap(game->spritesManager.unk83[i]);
+ if (i == game->localId)
{
AddTextPrinterParameterized4(
- r6->unk138.unk83[r7],
+ game->spritesManager.unk83[i],
2,
- 36 - GetStringWidth(2, PLAYER_UNK14(r6, r7), 0) / 2u,
+ 36 - GetStringWidth(2, BERRYCRUSH_PLAYER_NAME(game, i), 0) / 2u,
1,
0,
0,
sBerryCrushTextColorTable[1],
0,
- PLAYER_UNK14(r6, r7)
+ BERRYCRUSH_PLAYER_NAME(game, i)
);
}
else
{
AddTextPrinterParameterized4(
- r6->unk138.unk83[r7],
+ game->spritesManager.unk83[i],
2,
- 36 - GetStringWidth(2, PLAYER_UNK14(r6, r7), 0) / 2u,
+ 36 - GetStringWidth(2, BERRYCRUSH_PLAYER_NAME(game, i), 0) / 2u,
1,
0,
0,
sBerryCrushTextColorTable[2],
0,
- PLAYER_UNK14(r6, r7)
+ BERRYCRUSH_PLAYER_NAME(game, i)
);
}
- CopyWindowToVram(r6->unk138.unk83[r7], 3);
+ CopyWindowToVram(game->spritesManager.unk83[i], COPYWIN_BOTH);
}
CopyBgTilemapBufferToVram(0);
}
-static void sub_814EC80(struct BerryCrushGame * r6)
+static void sub_814EC80(struct BerryCrushGame * game)
{
- u8 r5 = 0;
+ u8 i = 0;
const u32 *r0 = gUnknown_8EB0ADC;
#ifndef NONMATCHING // r4, r5, r6 register roulette
register u8 *r4 asm("r4") = gDecompressionBuffer;
@@ -1209,14 +1213,14 @@ static void sub_814EC80(struct BerryCrushGame * r6)
#endif
LZ77UnCompWram(r0, r4);
- for (; r5 < r6->unk9; ++r5)
+ for (; i < game->playerCount; ++i)
{
- r0_ = r6->unk138.unkC[r5]->unk0;
+ r0_ = game->spritesManager.seatCoords[i]->unk0;
CopyToBgTilemapBufferRect(
3,
&r4[r0_ * 40],
- r6->unk138.unkC[r5]->unk1,
- r6->unk138.unkC[r5]->unk2,
+ game->spritesManager.seatCoords[i]->unk1,
+ game->spritesManager.seatCoords[i]->unk2,
10,
2
);
@@ -1224,69 +1228,69 @@ static void sub_814EC80(struct BerryCrushGame * r6)
CopyBgTilemapBufferToVram(3);
}
-static void sub_814ECE0(struct BerryCrushGame * r6)
+static void sub_814ECE0(struct BerryCrushGame * game)
{
- u8 r5 = 0;
- u8 r2;
+ u8 i = 0;
+ u8 spriteId;
- r6->unk2A = -104;
- r6->unk2C = 0;
+ game->depth = -104;
+ game->vibration = 0;
gSpriteCoordOffsetX = 0;
gSpriteCoordOffsetY = -104;
- for (; r5 < 4; ++r5)
- LoadCompressedSpriteSheet(&gUnknown_846F2F8[r5]);
- LoadSpritePalettes(gUnknown_846F320);
- r2 = CreateSprite(&gUnknown_846F410, 120, 88, 5);
- r6->unk138.unk20 = &gSprites[r2];
- r6->unk138.unk20->oam.priority = 3;
- r6->unk138.unk20->coordOffsetEnabled = TRUE;
- r6->unk138.unk20->animPaused = TRUE;
- for (r5 = 0; r5 < r6->unk9; ++r5)
+ for (; i < 4; ++i)
+ LoadCompressedSpriteSheet(&sSpriteSheets[i]);
+ LoadSpritePalettes(sSpritePals);
+ spriteId = CreateSprite(&sSpriteTemplate_BerryCrushCore, 120, 88, 5);
+ game->spritesManager.coreSprite = &gSprites[spriteId];
+ game->spritesManager.coreSprite->oam.priority = 3;
+ game->spritesManager.coreSprite->coordOffsetEnabled = TRUE;
+ game->spritesManager.coreSprite->animPaused = TRUE;
+ for (i = 0; i < game->playerCount; ++i)
{
- r2 = CreateSprite(
- &gUnknown_846F428,
- r6->unk138.unkC[r5]->unk4 + 120,
- r6->unk138.unkC[r5]->unk6 + 32,
+ spriteId = CreateSprite(
+ &sSpriteTemplate_BerryCrushImpact,
+ game->spritesManager.seatCoords[i]->unk4 + 120,
+ game->spritesManager.seatCoords[i]->unk6 + 32,
0
);
- r6->unk138.unk24[r5] = &gSprites[r2];
- r6->unk138.unk24[r5]->oam.priority = 1;
- r6->unk138.unk24[r5]->invisible = TRUE;
- r6->unk138.unk24[r5]->coordOffsetEnabled = TRUE;
- r6->unk138.unk24[r5]->animPaused = TRUE;
+ game->spritesManager.impactSprites[i] = &gSprites[spriteId];
+ game->spritesManager.impactSprites[i]->oam.priority = 1;
+ game->spritesManager.impactSprites[i]->invisible = TRUE;
+ game->spritesManager.impactSprites[i]->coordOffsetEnabled = TRUE;
+ game->spritesManager.impactSprites[i]->animPaused = TRUE;
}
- for (r5 = 0; r5 < NELEMS(r6->unk138.unk4C); ++r5)
+ for (i = 0; i < NELEMS(game->spritesManager.sparkleSprites); ++i)
{
- r2 = CreateSprite(
- &gUnknown_846F440,
- gUnknown_846F2D6[r5][0] + 120,
- gUnknown_846F2D6[r5][1] + 136,
+ spriteId = CreateSprite(
+ &sSpriteTemplate_BerryCrushPowderSparkles,
+ gUnknown_846F2D6[i][0] + 120,
+ gUnknown_846F2D6[i][1] + 136,
6
);
- r6->unk138.unk4C[r5] = &gSprites[r2];
- r6->unk138.unk4C[r5]->oam.priority = 3;
- r6->unk138.unk4C[r5]->invisible = TRUE;
- r6->unk138.unk4C[r5]->animPaused = TRUE;
- r6->unk138.unk4C[r5]->data[0] = r5;
+ game->spritesManager.sparkleSprites[i] = &gSprites[spriteId];
+ game->spritesManager.sparkleSprites[i]->oam.priority = 3;
+ game->spritesManager.sparkleSprites[i]->invisible = TRUE;
+ game->spritesManager.sparkleSprites[i]->animPaused = TRUE;
+ game->spritesManager.sparkleSprites[i]->data[0] = i;
}
- for (r5 = 0; r5 < NELEMS(r6->unk138.unk78); ++r5)
+ for (i = 0; i < NELEMS(game->spritesManager.timerSprites); ++i)
{
- r2 = CreateSprite(
- &gUnknown_846F458,
- 24 * r5 + 176,
+ spriteId = CreateSprite(
+ &sSpriteTemplate_BerryCrushTimer,
+ 24 * i + 176,
8,
0
);
- r6->unk138.unk78[r5] = &gSprites[r2];
- r6->unk138.unk78[r5]->oam.priority = 0;
- r6->unk138.unk78[r5]->invisible = FALSE;
- r6->unk138.unk78[r5]->animPaused = FALSE;
+ game->spritesManager.timerSprites[i] = &gSprites[spriteId];
+ game->spritesManager.timerSprites[i]->oam.priority = 0;
+ game->spritesManager.timerSprites[i]->invisible = FALSE;
+ game->spritesManager.timerSprites[i]->animPaused = FALSE;
}
- DigitObjUtil_CreatePrinter(0, 0, &gUnknown_846F488[0]);
- DigitObjUtil_CreatePrinter(1, 0, &gUnknown_846F488[1]);
- DigitObjUtil_CreatePrinter(2, 0, &gUnknown_846F488[2]);
- if (r6->unk12 == 1)
- sub_814EB04(&r6->unk138);
+ DigitObjUtil_CreatePrinter(0, 0, &sDigitObjTemplates[0]);
+ DigitObjUtil_CreatePrinter(1, 0, &sDigitObjTemplates[1]);
+ DigitObjUtil_CreatePrinter(2, 0, &sDigitObjTemplates[2]);
+ if (game->gameState == 1)
+ BerryCrush_HideTimerSprites(&game->spritesManager);
}
static void sub_814EF10(struct BerryCrushGame * r5)
@@ -1300,20 +1304,20 @@ static void sub_814EF10(struct BerryCrushGame * r5)
FreeSpritePaletteByTag(4);
FreeSpritePaletteByTag(2);
FreeSpritePaletteByTag(1);
- for (; r4 < NELEMS(r5->unk138.unk78); ++r4)
- DestroySprite(r5->unk138.unk78[r4]);
+ for (; r4 < NELEMS(r5->spritesManager.timerSprites); ++r4)
+ DestroySprite(r5->spritesManager.timerSprites[r4]);
DigitObjUtil_DeletePrinter(2);
DigitObjUtil_DeletePrinter(1);
DigitObjUtil_DeletePrinter(0);
- for (r4 = 0; r4 < NELEMS(r5->unk138.unk4C); ++r4)
- DestroySprite(r5->unk138.unk4C[r4]);
- for (r4 = 0; r4 < r5->unk9; ++r4)
- DestroySprite(r5->unk138.unk24[r4]);
- if (r5->unk138.unk20->inUse)
- DestroySprite(r5->unk138.unk20);
+ for (r4 = 0; r4 < NELEMS(r5->spritesManager.sparkleSprites); ++r4)
+ DestroySprite(r5->spritesManager.sparkleSprites[r4]);
+ for (r4 = 0; r4 < r5->playerCount; ++r4)
+ DestroySprite(r5->spritesManager.impactSprites[r4]);
+ if (r5->spritesManager.coreSprite->inUse)
+ DestroySprite(r5->spritesManager.coreSprite);
}
-static void sub_814EFD0(struct Sprite * sprite)
+static void SpriteCB_BerryCrushImpact(struct Sprite * sprite)
{
if (sprite->animEnded)
{
@@ -1370,12 +1374,12 @@ static void sub_814F0D8(struct Sprite * sprite)
r7[2] = 32;
r7[7] = 168;
r4 = sprite->pos2.x * 128;
- r5 = sub_80D8B40(7, (168 - sprite->pos1.y) << 7, (r2 + 32) >> 1);
+ r5 = MathUtil_Div16Shift(7, (168 - sprite->pos1.y) << 7, (r2 + 32) >> 1);
sprite->data[0] = sprite->pos1.x << 7;
- r7[3] = sub_80D8B40(7, r4, r5);
- r2 = sub_80D8ABC(7, r5, 85);
+ r7[3] = MathUtil_Div16Shift(7, r4, r5);
+ r2 = MathUtil_Mul16Shift(7, r5, 85);
r7[4] = r8;
- r7[5] = sub_80D8B40(7, 0x3F80, r2);
+ r7[5] = MathUtil_Div16Shift(7, 0x3F80, r2);
r7[6] = sprite->pos2.x / 4;
r7[7] |= 0x8000;
sprite->pos2.y = r8;
diff --git a/src/berry_pouch.c b/src/berry_pouch.c
index 9798dd441..b6a5763fb 100644
--- a/src/berry_pouch.c
+++ b/src/berry_pouch.c
@@ -744,7 +744,7 @@ static void BerryPouchSetArrowCursorAt(u8 y, u8 colorIdx)
width = GetMenuCursorDimensionByFont(2, 0);
height = GetMenuCursorDimensionByFont(2, 1);
FillWindowPixelRect(0, 0, 1, y, width, height);
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
}
else
{
diff --git a/src/bg.c b/src/bg.c
index 2acba9d26..598f402af 100644
--- a/src/bg.c
+++ b/src/bg.c
@@ -180,7 +180,7 @@ u8 LoadBgVram(u8 bg, const void *src, u16 size, u16 destOffset, u8 mode)
offset = destOffset + offset;
- cursor = RequestDma3Copy(src, (void*)(offset + BG_VRAM), size, 0);
+ cursor = RequestDma3Copy(src, (void*)(offset + BG_VRAM), size, DMA3_16BIT);
if (cursor == -1)
{
@@ -472,7 +472,7 @@ u16 Unused_LoadBgPalette(u8 bg, const void *src, u16 size, u16 destOffset)
if (IsInvalidBg32(bg) == FALSE)
{
paletteOffset = (sGpuBgConfigs2[bg].basePalette * 0x20) + (destOffset * 2);
- cursor = RequestDma3Copy(src, (void*)(paletteOffset + BG_PLTT), size, 0);
+ cursor = RequestDma3Copy(src, (void*)(paletteOffset + BG_PLTT), size, DMA3_16BIT);
if (cursor == -1)
{
@@ -500,7 +500,7 @@ bool8 IsDma3ManagerBusyWithBgCopy(void)
if ((sDmaBusyBitfield[div] & (1 << mod)))
{
- s8 reqSpace = CheckForSpaceForDma3Request(i);
+ s8 reqSpace = WaitDma3Request(i);
if (reqSpace == -1)
return TRUE;
sDmaBusyBitfield[div] &= ~(1 << mod);
@@ -567,7 +567,7 @@ u16 GetBgAttribute(u8 bg, u8 attributeId)
return GetBgControlAttribute(bg, BG_CTRL_ATTR_MOSAIC);
case BG_ATTR_WRAPAROUND:
return GetBgControlAttribute(bg, BG_CTRL_ATTR_WRAPAROUND);
- case BG_ATTR_TEXTORAFFINEMODE:
+ case BG_ATTR_MAPSIZE:
switch (GetBgType(bg))
{
case 0:
diff --git a/src/braille_text.c b/src/braille_text.c
index 8a4114fce..9be01bf75 100644
--- a/src/braille_text.c
+++ b/src/braille_text.c
@@ -175,7 +175,7 @@ u16 Font6Func(struct TextPrinter *textPrinter)
ScrollWindow(textPrinter->printerTemplate.windowId, 0, gUnknown_846FB08[gSaveBlock2Ptr->optionsTextSpeed], PIXEL_FILL(textPrinter->printerTemplate.bgColor));
textPrinter->scrollDistance -= gUnknown_846FB08[gSaveBlock2Ptr->optionsTextSpeed];
}
- CopyWindowToVram(textPrinter->printerTemplate.windowId, 2);
+ CopyWindowToVram(textPrinter->printerTemplate.windowId, COPYWIN_GFX);
}
else
{
diff --git a/src/cable_club.c b/src/cable_club.c
index 73fa82d42..349740c9e 100644
--- a/src/cable_club.c
+++ b/src/cable_club.c
@@ -80,13 +80,13 @@ static void PrintNewCountOnLinkPlayerCountDisplayWindow(u16 windowId, s32 num)
SetStdWindowBorderStyle(windowId, FALSE);
StringExpandPlaceholders(gStringVar4, gUnknown_841DF82);
AddTextPrinterParameterized(windowId, 2, gStringVar4, 0, 0, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_BOTH);
}
static void DestroyLinkPlayerCountDisplayWindow(u16 windowId)
{
ClearStdWindowAndFrame(windowId, FALSE);
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_BOTH);
}
static void UpdateLinkPlayerCountDisplay(u8 taskId, u8 num)
diff --git a/src/clear_save_data_screen.c b/src/clear_save_data_screen.c
index b6f8b83e9..fe28c1ec7 100644
--- a/src/clear_save_data_screen.c
+++ b/src/clear_save_data_screen.c
@@ -107,7 +107,7 @@ static void Task_DrawClearSaveDataScreen(u8 taskId)
case 4:
DrawStdFrameWithCustomTileAndPalette(1, TRUE, 0x001, 0xF);
AddTextPrinterParameterized4(1, 2, 0, 3, 1, 1, sTextColor, 0, gUnknown_841B69E);
- CopyWindowToVram(1, 2);
+ CopyWindowToVram(1, COPYWIN_GFX);
break;
case 5:
CreateYesNoMenu(&sWindowTemplates[0], 2, 0, 2, 0x001, 0xF, 1);
@@ -139,7 +139,7 @@ static void Task_HandleYesNoMenu(u8 taskId)
PlaySE(SE_SELECT);
FillWindowPixelBuffer(1, PIXEL_FILL(1));
AddTextPrinterParameterized4(1, 2, 0, 3, 1, 1, sTextColor, 0, gUnknown_841B6B9);
- CopyWindowToVram(1, 3);
+ CopyWindowToVram(1, COPYWIN_BOTH);
ClearSaveData();
break;
case MENU_NOTHING_CHOSEN:
diff --git a/src/credits.c b/src/credits.c
index 3be5c8fa5..e00587ff2 100644
--- a/src/credits.c
+++ b/src/credits.c
@@ -761,7 +761,7 @@ static void CreateCreditsWindow(void)
sCreditsMgr->windowId = AddWindow(&sCreditsWindowTemplate);
FillWindowPixelBuffer(sCreditsMgr->windowId, PIXEL_FILL(0));
PutWindowTilemap(sCreditsMgr->windowId);
- CopyWindowToVram(sCreditsMgr->windowId, 3);
+ CopyWindowToVram(sCreditsMgr->windowId, COPYWIN_BOTH);
sCreditsMgr->windowIsActive = TRUE;
}
@@ -931,7 +931,7 @@ static s32 RollCredits(void)
sCreditsMgr->mainseqno = CREDITSSCENE_PRINT_DELAY;
return sCreditsMgr->canSpeedThrough;
case CREDITSSCENE_PRINT_DELAY:
- CopyWindowToVram(sCreditsMgr->windowId, 2);
+ CopyWindowToVram(sCreditsMgr->windowId, COPYWIN_GFX);
sCreditsMgr->timer = sCreditsScript[sCreditsMgr->scrcmdidx].duration;
sCreditsMgr->scrcmdidx++;
BeginNormalPaletteFade(0x00008000, 0, 16, 0, RGB_BLACK);
@@ -1781,9 +1781,9 @@ static void LoadCreditsMonPic(u8 whichMon)
CopyToWindowPixelBuffer(2, (const void *)sWindow2Map_Pikachu, 0, 0);
break;
}
- CopyWindowToVram(0, 2);
- CopyWindowToVram(1, 2);
- CopyWindowToVram(2, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
+ CopyWindowToVram(1, COPYWIN_GFX);
+ CopyWindowToVram(2, COPYWIN_GFX);
}
static u16 GetCreditsMonSpecies(u8 whichMon)
diff --git a/src/daycare.c b/src/daycare.c
index 1e50a7c09..d4d907e3d 100644
--- a/src/daycare.c
+++ b/src/daycare.c
@@ -70,7 +70,7 @@ static void CreateRandomEggShardSprite(void);
static void CreateEggShardSprite(u8 x, u8 y, s16 data1, s16 data2, s16 data3, u8 spriteAnimIndex);
// IWRAM bss
-static IWRAM_DATA struct EggHatchData *sEggHatchData;
+static struct EggHatchData *sEggHatchData;
// RAM buffers used to assist with BuildEggMoveset()
EWRAM_DATA static u16 sHatchedEggLevelUpMoves[EGG_LVL_UP_MOVES_ARRAY_COUNT] = {0};
@@ -1540,7 +1540,7 @@ void ShowDaycareLevelMenu(void)
menuTemplate.windowId = windowId;
listMenuTaskId = ListMenuInit(&menuTemplate, 0, 0);
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_BOTH);
daycareMenuTaskId = CreateTask(Task_HandleDaycareLevelMenuInput, 3);
gTasks[daycareMenuTaskId].tMenuListTaskId = listMenuTaskId;
@@ -1935,7 +1935,7 @@ static void CB2_EggHatch_1(void)
PlayFanfare(MUS_FANFA5);
sEggHatchData->CB2_state++;
PutWindowTilemap(sEggHatchData->windowId);
- CopyWindowToVram(sEggHatchData->windowId, 3);
+ CopyWindowToVram(sEggHatchData->windowId, COPYWIN_BOTH);
break;
case 6:
if (IsFanfareTaskInactive())
diff --git a/src/dma3_manager.c b/src/dma3_manager.c
index ec2cb932f..a3a2374be 100644
--- a/src/dma3_manager.c
+++ b/src/dma3_manager.c
@@ -3,12 +3,7 @@
#define MAX_DMA_REQUESTS 128
-#define DMA_REQUEST_COPY32 1
-#define DMA_REQUEST_FILL32 2
-#define DMA_REQUEST_COPY16 3
-#define DMA_REQUEST_FILL16 4
-
-static /*IWRAM_DATA*/ struct {
+static struct {
/* 0x00 */ const u8 *src;
/* 0x04 */ u8 *dest;
/* 0x08 */ u16 size;
@@ -26,7 +21,7 @@ void ClearDma3Requests(void)
gDma3ManagerLocked = TRUE;
gDma3RequestCursor = 0;
- for(i = 0; i < (u8)ARRAY_COUNT(gDma3Requests); i++)
+ for(i = 0; i < (u8)NELEMS(gDma3Requests); i++)
{
gDma3Requests[i].size = 0;
gDma3Requests[i].src = 0;
@@ -108,10 +103,10 @@ s16 RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode)
gDma3Requests[cursor].dest = dest;
gDma3Requests[cursor].size = size;
- if(mode == 1)
- gDma3Requests[cursor].mode = mode;
+ if(mode == DMA3_32BIT)
+ gDma3Requests[cursor].mode = DMA_REQUEST_COPY32;
else
- gDma3Requests[cursor].mode = 3;
+ gDma3Requests[cursor].mode = DMA_REQUEST_COPY16;
gDma3ManagerLocked = FALSE;
return (s16)cursor;
@@ -146,10 +141,10 @@ s16 RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode)
gDma3Requests[cursor].mode = mode;
gDma3Requests[cursor].value = value;
- if(mode == 1)
- gDma3Requests[cursor].mode = 2;
+ if(mode == DMA3_32BIT)
+ gDma3Requests[cursor].mode = DMA_REQUEST_FILL32;
else
- gDma3Requests[cursor].mode = 4;
+ gDma3Requests[cursor].mode = DMA_REQUEST_FILL16;
gDma3ManagerLocked = FALSE;
return (s16)cursor;
@@ -167,7 +162,7 @@ s16 RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode)
return -1;
}
-s16 CheckForSpaceForDma3Request(s16 index)
+s16 WaitDma3Request(s16 index)
{
int current = 0;
diff --git a/src/dodrio_berry_picking.c b/src/dodrio_berry_picking.c
index ea6d46df2..936d458da 100644
--- a/src/dodrio_berry_picking.c
+++ b/src/dodrio_berry_picking.c
@@ -2342,7 +2342,7 @@ static void Task_ShowDodrioBerryPickingRecords(u8 taskId)
case 0:
data[1] = AddWindow(&sUnknown_84755E0);
sub_81538D0(data[1]);
- CopyWindowToVram(data[1], 3);
+ CopyWindowToVram(data[1], COPYWIN_BOTH);
data[0]++;
break;
case 1:
@@ -2353,7 +2353,7 @@ static void Task_ShowDodrioBerryPickingRecords(u8 taskId)
if (JOY_NEW(A_BUTTON | B_BUTTON))
{
rbox_fill_rectangle(data[1]);
- CopyWindowToVram(data[1], 1);
+ CopyWindowToVram(data[1], COPYWIN_MAP);
data[0]++;
}
break;
diff --git a/src/dodrio_berry_picking_2.c b/src/dodrio_berry_picking_2.c
index e170ac903..ea2ea060d 100644
--- a/src/dodrio_berry_picking_2.c
+++ b/src/dodrio_berry_picking_2.c
@@ -1055,7 +1055,7 @@ static void sub_8154B34(void)
colorsId = 2;
name = sub_81533C4(id);
AddTextPrinterParameterized3(gUnknown_203F440->unk3008[i], 0, left, 1, sTextColorTable[colorsId], -1, name);
- CopyWindowToVram(gUnknown_203F440->unk3008[i], 2);
+ CopyWindowToVram(gUnknown_203F440->unk3008[i], COPYWIN_GFX);
window.baseBlock += 0xE;
sub_8154868(&window);
}
@@ -1199,8 +1199,8 @@ static void sub_8154F80(void)
AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], 0, sp0C, sUnknown_8478EA8[j] - width, sUnknown_8478EB0[i], -1, NULL);
}
}
- CopyWindowToVram(gUnknown_203F440->unk3008[0], 2);
- CopyWindowToVram(gUnknown_203F440->unk3008[1], 2);
+ CopyWindowToVram(gUnknown_203F440->unk3008[0], COPYWIN_GFX);
+ CopyWindowToVram(gUnknown_203F440->unk3008[1], COPYWIN_GFX);
gUnknown_203F440->state++;
break;
case 3:
@@ -1232,8 +1232,8 @@ static void sub_8154F80(void)
break;
case 6:
sub_8154D9C(playersCount);
- CopyWindowToVram(gUnknown_203F440->unk3008[0], 2);
- CopyWindowToVram(gUnknown_203F440->unk3008[1], 2);
+ CopyWindowToVram(gUnknown_203F440->unk3008[0], COPYWIN_GFX);
+ CopyWindowToVram(gUnknown_203F440->unk3008[1], COPYWIN_GFX);
gUnknown_203F440->state++;
break;
case 7:
@@ -1291,8 +1291,8 @@ static void sub_8154F80(void)
DynamicPlaceholderTextUtil_ExpandPlaceholders(sp0C, gText_FilledStorageSpace);
AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], 0, sp0C, 8, 40, -1, NULL);
}
- CopyWindowToVram(gUnknown_203F440->unk3008[0], 2);
- CopyWindowToVram(gUnknown_203F440->unk3008[1], 2);
+ CopyWindowToVram(gUnknown_203F440->unk3008[0], COPYWIN_GFX);
+ CopyWindowToVram(gUnknown_203F440->unk3008[1], COPYWIN_GFX);
gUnknown_203F440->state++;
break;
case 10:
@@ -1349,8 +1349,8 @@ static void sub_81556E0(void)
AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], 2, gText_Yes, 8, 2, -1, NULL);
AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], 2, gText_No, 8, 16, -1, NULL);
AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], 2, gText_SelectorArrow2, 0, 2, -1, NULL);
- CopyWindowToVram(gUnknown_203F440->unk3008[0], 2);
- CopyWindowToVram(gUnknown_203F440->unk3008[1], 2);
+ CopyWindowToVram(gUnknown_203F440->unk3008[0], COPYWIN_GFX);
+ CopyWindowToVram(gUnknown_203F440->unk3008[1], COPYWIN_GFX);
gUnknown_203F440->state++;
break;
case 2:
@@ -1370,7 +1370,7 @@ static void sub_81556E0(void)
AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], 2, gText_Yes, 8, 2, -1, NULL);
AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], 2, gText_No, 8, 16, -1, NULL);
AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], 2, gText_SelectorArrow2, 0, y == 1 ? 2 : 16, -1, NULL);
- CopyWindowToVram(gUnknown_203F440->unk3008[1], 3);
+ CopyWindowToVram(gUnknown_203F440->unk3008[1], COPYWIN_BOTH);
// Increment state only if A or B button have been pressed.
if (JOY_NEW(A_BUTTON))
{
@@ -1425,18 +1425,18 @@ static void sub_8155A78(void)
gUnknown_203F440->state++;
break;
case 1:
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_BOTH);
gUnknown_203F440->state++;
break;
case 2:
if (!IsDma3ManagerBusyWithBgCopy())
{
- CreateTask(sub_80DA634, 0);
+ CreateTask(Task_SaveGame_UpdatedLinkRecords, 0);
gUnknown_203F440->state++;
}
break;
case 3:
- if (!FuncIsActiveTask(sub_80DA634))
+ if (!FuncIsActiveTask(Task_SaveGame_UpdatedLinkRecords))
gUnknown_203F440->state++;
break;
default:
@@ -1460,7 +1460,7 @@ static void sub_8155B4C(void)
case 1:
FillWindowPixelBuffer(gUnknown_203F440->unk3008[0], PIXEL_FILL(1));
AddTextPrinterParameterized(gUnknown_203F440->unk3008[0], 2, gText_CommunicationStandby3, 0, 6, -1, NULL);
- CopyWindowToVram(gUnknown_203F440->unk3008[0], 2);
+ CopyWindowToVram(gUnknown_203F440->unk3008[0], COPYWIN_GFX);
gUnknown_203F440->state++;
break;
case 2:
@@ -1500,7 +1500,7 @@ static void sub_8155C80(void)
case 1:
FillWindowPixelBuffer(gUnknown_203F440->unk3008[0], PIXEL_FILL(1));
AddTextPrinterParameterized(gUnknown_203F440->unk3008[0], 2, gText_SomeoneDroppedOut, 0, 6, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(gUnknown_203F440->unk3008[0], 2);
+ CopyWindowToVram(gUnknown_203F440->unk3008[0], COPYWIN_GFX);
gUnknown_203F440->state++;
break;
case 2:
diff --git a/src/easy_chat_3.c b/src/easy_chat_3.c
index 1501762bc..c904494bb 100644
--- a/src/easy_chat_3.c
+++ b/src/easy_chat_3.c
@@ -1323,7 +1323,7 @@ static void PrintTitleText(void)
FillWindowPixelBuffer(0, PIXEL_FILL(0));
EC_AddTextPrinterParameterized2(0, 1, titleText, xOffset, 0, TEXT_SPEED_FF, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY);
PutWindowTilemap(0);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_BOTH);
}
static void EC_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16))
@@ -1379,7 +1379,7 @@ static void PrintECInterfaceTextById(u8 direction)
if (text2)
EC_AddTextPrinterParameterized(1, 1, text2, 0, 16, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(1, 3);
+ CopyWindowToVram(1, COPYWIN_BOTH);
}
static void EC_CreateYesNoMenuWithInitialCursorPos(u8 initialCursorPos)
@@ -1454,7 +1454,7 @@ static void PrintECFields(void)
EC_AddTextPrinterParameterized(sEasyChatGraphicsResources->windowId, 1, sEasyChatGraphicsResources->ecPrintBuffer, 0, i * 16, TEXT_SPEED_FF, NULL);
}
- CopyWindowToVram(sEasyChatGraphicsResources->windowId, 3);
+ CopyWindowToVram(sEasyChatGraphicsResources->windowId, COPYWIN_BOTH);
}
static void DrawECFrameInTilemapBuffer(u16 *tilemap)
@@ -1537,7 +1537,7 @@ static void PrintECMenuById(u32 id)
break;
}
- CopyWindowToVram(2, 2);
+ CopyWindowToVram(2, COPYWIN_GFX);
}
static void PrintECGroupOrAlphaMenu(void)
@@ -1659,7 +1659,7 @@ static void PrintECRowsWin2(u8 row, u8 remrow)
}
- CopyWindowToVram(2, 2);
+ CopyWindowToVram(2, COPYWIN_GFX);
}
static void ClearECRowsWin2(u8 row, u8 remrow)
@@ -1690,7 +1690,7 @@ static void ClearECRowsWin2(u8 row, u8 remrow)
static void ClearWin2AndCopyToVram(void)
{
FillWindowPixelBuffer(2, PIXEL_FILL(1));
- CopyWindowToVram(2, 2);
+ CopyWindowToVram(2, COPYWIN_GFX);
}
static void StartWin2FrameAnim(int animNo)
diff --git a/src/fame_checker.c b/src/fame_checker.c
index cccdbf604..395babb23 100644
--- a/src/fame_checker.c
+++ b/src/fame_checker.c
@@ -792,7 +792,7 @@ static void Setup_DrawMsgAndListBoxes(void)
static void FC_PutWindowTilemapAndCopyWindowToVramMode3(u8 windowId)
{
PutWindowTilemap(windowId);
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_BOTH);
}
static bool8 SetMessageSelectorIconObjMode(u8 spriteId, u8 objMode)
@@ -853,7 +853,7 @@ static void FC_DestroyWindow(u8 windowId)
{
FillWindowPixelBuffer(windowId, 0);
ClearWindowTilemap(windowId);
- CopyWindowToVram(windowId, 2);
+ CopyWindowToVram(windowId, COPYWIN_GFX);
RemoveWindow(windowId);
}
@@ -1376,7 +1376,7 @@ static u8 FC_PopulateListMenu(void)
static void FC_PutWindowTilemapAndCopyWindowToVramMode3_2(u8 windowId)
{
PutWindowTilemap(windowId);
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_BOTH);
}
static void FC_CreateScrollIndicatorArrowPair(void)
diff --git a/src/field_door.c b/src/field_door.c
index e17ef0d5a..59b72f3ab 100644
--- a/src/field_door.c
+++ b/src/field_door.c
@@ -470,7 +470,7 @@ bool8 FieldIsDoorAnimationRunning(void)
return FuncIsActiveTask(Task_AnimateDoor);
}
-u16 GetDoorSoundEffect(x, y)
+u16 GetDoorSoundEffect(int x, int y)
{
if (GetDoorSoundType(sDoorGraphics, x, y) == DOOR_SOUND_NORMAL)
return MUS_W_DOOR;
diff --git a/src/field_fadetransition.c b/src/field_fadetransition.c
index 478c89bad..7f89bc8b5 100644
--- a/src/field_fadetransition.c
+++ b/src/field_fadetransition.c
@@ -668,7 +668,7 @@ static void Task_ReturnFromLinkRoomWarp(u8 taskId)
}
break;
case 2:
- if (gReceivedRemoteLinkPlayers == 0)
+ if (!gReceivedRemoteLinkPlayers)
{
WarpIntoMap();
SetMainCallback2(CB2_LoadMap);
diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c
index a926e5937..db5173651 100644
--- a/src/field_screen_effect.c
+++ b/src/field_screen_effect.c
@@ -396,7 +396,7 @@ static void Task_RushInjuredPokemonToCenter(u8 taskId)
Menu_LoadStdPalAt(0xF0);
FillWindowPixelBuffer(windowId, PIXEL_FILL(0));
PutWindowTilemap(windowId);
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_BOTH);
loc = GetHealLocation(1);
if (gSaveBlock1Ptr->lastHealLocation.mapGroup == loc->group
&& gSaveBlock1Ptr->lastHealLocation.mapNum == loc->map
@@ -425,7 +425,7 @@ static void Task_RushInjuredPokemonToCenter(u8 taskId)
case 5:
windowId = gTasks[taskId].data[1];
ClearWindowTilemap(windowId);
- CopyWindowToVram(windowId, 1);
+ CopyWindowToVram(windowId, COPYWIN_MAP);
RemoveWindow(windowId);
palette_bg_faded_fill_black();
FadeInFromBlack();
diff --git a/src/field_specials.c b/src/field_specials.c
index 26a1d75e6..a127eb774 100644
--- a/src/field_specials.c
+++ b/src/field_specials.c
@@ -1104,7 +1104,7 @@ void DrawElevatorCurrentFloorWindow(void)
strwidth = GetStringWidth(2, floorname, 0);
AddTextPrinterParameterized(sElevatorCurrentFloorWindowId, 2, floorname, 56 - strwidth, 16, 0xFF, NULL);
PutWindowTilemap(sElevatorCurrentFloorWindowId);
- CopyWindowToVram(sElevatorCurrentFloorWindowId, 3);
+ CopyWindowToVram(sElevatorCurrentFloorWindowId, COPYWIN_BOTH);
}
}
@@ -1365,7 +1365,7 @@ static void Task_CreateScriptListMenu(u8 taskId)
Task_CreateMenuRemoveScrollIndicatorArrowPair(taskId);
task->data[14] = ListMenuInit(&sFieldSpecialsListMenuTemplate, task->data[7], task->data[8]);
PutWindowTilemap(task->data[13]);
- CopyWindowToVram(task->data[13], 3);
+ CopyWindowToVram(task->data[13], COPYWIN_BOTH);
gTasks[taskId].func = Task_ListMenuHandleInput;
}
@@ -1448,7 +1448,7 @@ static void Task_DestroyListMenu(u8 taskId)
ClearStdWindowAndFrameToTransparent(task->data[13], TRUE);
FillWindowPixelBuffer(task->data[13], PIXEL_FILL(0));
ClearWindowTilemap(task->data[13]);
- CopyWindowToVram(task->data[13], 2);
+ CopyWindowToVram(task->data[13], COPYWIN_GFX);
RemoveWindow(task->data[13]);
DestroyTask(taskId);
EnableBothScriptContexts();
diff --git a/src/fldeff_flash.c b/src/fldeff_flash.c
index 58cb4c251..0c5f96cb3 100644
--- a/src/fldeff_flash.c
+++ b/src/fldeff_flash.c
@@ -436,7 +436,7 @@ static void Task_MapPreviewScreen_0(u8 taskId)
if (!MapPreview_IsGfxLoadFinished())
{
data[4] = MapPreview_CreateMapNameWindow(data[3]);
- CopyWindowToVram(data[4], 3);
+ CopyWindowToVram(data[4], COPYWIN_BOTH);
data[0]++;
}
break;
diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c
index 1652538a3..2838675f7 100644
--- a/src/hall_of_fame.c
+++ b/src/hall_of_fame.c
@@ -456,7 +456,7 @@ static void Task_Hof_InitTeamSaveData(u8 taskId)
DrawDialogueFrame(0, 0);
AddTextPrinterParameterized2(0, 2, gText_SavingDontTurnOffThePower2, 0, NULL, 2, 1, 3);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_BOTH);
gTasks[taskId].func = Task_Hof_TrySaveData;
}
@@ -594,7 +594,7 @@ static void Task_Hof_ApplauseAndConfetti(u8 taskId)
}
BeginNormalPaletteFade(sSelectedPaletteIndices, 0, 12, 12, HALL_OF_FAME_BG_PAL);
FillWindowPixelBuffer(0, PIXEL_FILL(0));
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_BOTH);
gTasks[taskId].data[3] = 7;
gTasks[taskId].func = Task_Hof_WaitBorderFadeAway;
}
@@ -642,7 +642,7 @@ static void Task_Hof_WaitAndPrintPlayerInfo(u8 taskId)
HallOfFame_PrintPlayerInfo(1, 2);
DrawDialogueFrame(0, 0);
AddTextPrinterParameterized2(0, 2, gText_LeagueChamp, 0, NULL, 2, 1, 3);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_BOTH);
gTasks[taskId].func = Task_Hof_ExitOnKeyPressed;
}
}
@@ -972,7 +972,7 @@ static void Task_HofPC_PrintDataIsCorrupted(u8 taskId)
TopBarWindowPrintString(gText_ABUTTONExit, 8, TRUE);
DrawDialogueFrame(0, 0);
AddTextPrinterParameterized2(0, 2, gText_HOFCorrupted, 0, NULL, 2, 1, 3);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_BOTH);
gTasks[taskId].func = Task_HofPC_ExitOnButtonPress;
}
@@ -988,7 +988,7 @@ static void HallOfFame_PrintWelcomeText(u8 not, u8 used)
FillWindowPixelBuffer(0, PIXEL_FILL(0));
PutWindowTilemap(0);
AddTextPrinterParameterized3(0, 2, x, 1, sTextColors[0], 0, gText_WelcomeToHOF);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_BOTH);
}
static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u8 unused2)
@@ -1075,7 +1075,7 @@ static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u
AddTextPrinterParameterized3(0, 2, 0x60, 0x11, sTextColors[0], 0, text);
}
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_BOTH);
}
static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2)
@@ -1118,7 +1118,7 @@ static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2)
AddTextPrinterParameterized3(1, 2, textWidth - 36, 32, sTextColors[1], 0, text);
- CopyWindowToVram(1, 3);
+ CopyWindowToVram(1, COPYWIN_BOTH);
}
static void ClearVramOamPltt_LoadHofPal(void)
diff --git a/src/help_system.c b/src/help_system.c
index eeeb0a65f..9c794f878 100644
--- a/src/help_system.c
+++ b/src/help_system.c
@@ -74,9 +74,9 @@ u8 RunHelpSystemCallback(void)
sVideoState.state = 2;
break;
case 2:
- RequestDma3Fill(0, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, 0);
- RequestDma3Copy(sPals, (void *)PLTT, sizeof(sPals), 0);
- RequestDma3Copy(sTiles, gDecompressionBuffer + 0x3EE0, sizeof(sTiles), 0);
+ RequestDma3Fill(0, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, DMA3_16BIT);
+ RequestDma3Copy(sPals, (void *)PLTT, sizeof(sPals), DMA3_16BIT);
+ RequestDma3Copy(sTiles, gDecompressionBuffer + 0x3EE0, sizeof(sTiles), DMA3_16BIT);
sVideoState.state = 3;
break;
case 3:
@@ -160,7 +160,7 @@ void SaveMapGPURegs(void)
void SaveMapTiles(void)
{
- RequestDma3Copy((void *)BG_CHAR_ADDR(3), sMapTilesBackup, BG_CHAR_SIZE, 0);
+ RequestDma3Copy((void *)BG_CHAR_ADDR(3), sMapTilesBackup, BG_CHAR_SIZE, DMA3_16BIT);
}
void SaveMapTextColors(void)
@@ -189,7 +189,7 @@ void RestoreGPURegs(void)
void RestoreMapTiles(void)
{
- RequestDma3Copy(sMapTilesBackup, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, 0);
+ RequestDma3Copy(sMapTilesBackup, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, DMA3_16BIT);
}
void RestoreMapTextColors(void)
@@ -203,7 +203,7 @@ void RestoreMapTextColors(void)
void CommitTilemap(void)
{
- RequestDma3Copy(gDecompressionBuffer, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, 0);
+ RequestDma3Copy(gDecompressionBuffer, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, DMA3_16BIT);
}
void HS_DrawBgTilemapRect(u16 baseTile, u8 left, u8 top, u8 width, u8 height, u16 increment)
diff --git a/src/help_system_812B1E0.c b/src/help_system_812B1E0.c
index f3ec0ba85..d9ee16cfa 100644
--- a/src/help_system_812B1E0.c
+++ b/src/help_system_812B1E0.c
@@ -1880,7 +1880,7 @@ bool8 HelpSystem_UpdateHasntSeenIntro(void)
bool8 sub_812B45C(void)
{
- if (gReceivedRemoteLinkPlayers == 1)
+ if (gReceivedRemoteLinkPlayers == TRUE)
return FALSE;
return TRUE;
}
diff --git a/src/intro.c b/src/intro.c
index ec15d7473..802c00851 100644
--- a/src/intro.c
+++ b/src/intro.c
@@ -47,18 +47,18 @@ static EWRAM_DATA u16 gUnknown_203AB06 = 0;
static EWRAM_DATA u16 gUnknown_203AB08 = 0;
static EWRAM_DATA u16 gUnknown_203AB0A = 0;
static EWRAM_DATA u16 gUnknown_203AB0C = 0;
-static EWRAM_DATA u16 gUnknown_203AB0E = 0;
-static EWRAM_DATA u16 gUnknown_203AB10 = 0;
-static EWRAM_DATA u16 gUnknown_203AB12 = 0;
-static EWRAM_DATA u16 gUnknown_203AB14 = 0;
-static EWRAM_DATA u16 gUnknown_203AB16 = 0;
-static EWRAM_DATA u16 gUnknown_203AB18 = 0;
-static EWRAM_DATA u16 gUnknown_203AB1A = 0;
-static EWRAM_DATA u16 gUnknown_203AB1C = 0;
-static EWRAM_DATA u16 gUnknown_203AB1E = 0;
-static EWRAM_DATA u16 gUnknown_203AB20 = 0;
-static EWRAM_DATA u16 gUnknown_203AB22 = 0;
-static EWRAM_DATA u16 gUnknown_203AB24 = 0;
+static EWRAM_DATA u16 sLargeStarXSpeed = 0;
+static EWRAM_DATA u16 sLargeStarYSpeed = 0;
+static EWRAM_DATA u16 sTrailingSparklesXmodMask = 0;
+static EWRAM_DATA u16 sUnusedVarRelatedToGameFreakStars = 0;
+static EWRAM_DATA u16 sTrailingSparklesSpawnRate = 0;
+static EWRAM_DATA u16 sTrailingSparklesFlickerStartTime = 0;
+static EWRAM_DATA u16 sTrailingSparklesDestroySpriteTime = 0;
+static EWRAM_DATA u16 sTrailingSparklesGravityShift = 0;
+static EWRAM_DATA u16 sTrailingSparklesXspeed = 0;
+static EWRAM_DATA u16 sTrailingSparklesYspeed = 0;
+static EWRAM_DATA u16 sTrailingSparklesXprecision = 0;
+static EWRAM_DATA u16 sTrailingSparklesYprecision = 0;
static void CB2_SetUpIntro(void);
static void CB2_Intro(void);
@@ -181,30 +181,111 @@ static const u32 sSpriteTiles_GengarSwipe[] = INCBIN_U32("graphics/intro/unk_840
static const u32 sSpriteTiles_NidorinoRecoilDust[] = INCBIN_U32("graphics/intro/unk_840BAE0.4bpp.lz");
static const struct BgTemplate sBgTemplates_GameFreakScene[] = {
- { 3, 3, 31, 0, 0, 3, 0x000 },
- { 2, 3, 30, 0, 0, 2, 0x010 }
+ {
+ .bg = 3,
+ .charBaseIndex = 3,
+ .mapBaseIndex = 31,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 3,
+ .baseTile = 0x000
+ }, {
+ .bg = 2,
+ .charBaseIndex = 3,
+ .mapBaseIndex = 30,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 2,
+ .baseTile = 0x010
+ }
};
static const struct BgTemplate sBgTemplates_FightScene1[] = {
- { 0, 0, 28, 2, 0, 0, 0x000 },
- { 1, 1, 30, 2, 0, 0, 0x000 }
+ {
+ .bg = 0,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 28,
+ .screenSize = 2,
+ .paletteMode = 0,
+ .priority = 0,
+ .baseTile = 0x000
+ }, {
+ .bg = 1,
+ .charBaseIndex = 1,
+ .mapBaseIndex = 30,
+ .screenSize = 2,
+ .paletteMode = 0,
+ .priority = 0,
+ .baseTile = 0x000
+ }
};
static const struct BgTemplate sBgTemplates_FightScene2[] = {
- { 3, 1, 30, 2, 0, 3, 0x000 },
- { 0, 0, 29, 0, 0, 0, 0x000 },
- { 2, 3, 27, 0, 0, 2, 0x000 },
- { 1, 2, 28, 0, 0, 1, 0x000 }
+ {
+ .bg = 3,
+ .charBaseIndex = 1,
+ .mapBaseIndex = 30,
+ .screenSize = 2,
+ .paletteMode = 0,
+ .priority = 3,
+ .baseTile = 0x000
+ }, {
+ .bg = 0,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 29,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 0,
+ .baseTile = 0x000
+ }, {
+ .bg = 2,
+ .charBaseIndex = 3,
+ .mapBaseIndex = 27,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 2,
+ .baseTile = 0x000
+ }, {
+ .bg = 1,
+ .charBaseIndex = 2,
+ .mapBaseIndex = 28,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 1,
+ .baseTile = 0x000
+ }
};
static const struct BgTemplate sBgTemplates_FightScene3[] = {
- { 1, 0, 29, 0, 0, 1, 0x000 },
- { 0, 1, 30, 2, 0, 0, 0x000 }
+ {
+ .bg = 1,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 29,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 1,
+ .baseTile = 0x000
+ }, {
+ .bg = 0,
+ .charBaseIndex = 1,
+ .mapBaseIndex = 30,
+ .screenSize = 2,
+ .paletteMode = 0,
+ .priority = 0,
+ .baseTile = 0x000
+ }
};
static const struct WindowTemplate sWindowTemplate[] = {
- { 2, 6, 4, 18, 9, 0xD, 0x000 },
- DUMMY_WIN_TEMPLATE
+ {
+ .bg = 2,
+ .tilemapLeft = 6,
+ .tilemapTop = 4,
+ .width = 18,
+ .height = 9,
+ .paletteNum = 0xD,
+ .baseBlock = 0x000
+ }, DUMMY_WIN_TEMPLATE
};
static const u8 sGengarBackSpritePos2UpdateMods[][2] = {
@@ -241,9 +322,31 @@ static const struct Coords16 sTrailingSparkleCoords[] = {
{0x0098, 0x0056}
};
-static const struct OamData gOamData_840BC2C = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, .shape = ST_OAM_SQUARE, .matrixNum = 0, .size = ST_OAM_SIZE_1, .tileNum = 0x000, .priority = 2, .paletteNum = 0 };
+static const struct OamData gOamData_840BC2C = {
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = FALSE,
+ .bpp = ST_OAM_4BPP,
+ .shape = ST_OAM_SQUARE,
+ .matrixNum = 0,
+ .size = ST_OAM_SIZE_1,
+ .tileNum = 0x000,
+ .priority = 2,
+ .paletteNum = 0
+};
-static const struct OamData gOamData_840BC34 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, .shape = ST_OAM_SQUARE, .matrixNum = 0, .size = ST_OAM_SIZE_0, .tileNum = 0x000, .priority = 2, .paletteNum = 0 };
+static const struct OamData gOamData_840BC34 = {
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = FALSE,
+ .bpp = ST_OAM_4BPP,
+ .shape = ST_OAM_SQUARE,
+ .matrixNum = 0,
+ .size = ST_OAM_SIZE_0,
+ .tileNum = 0x000,
+ .priority = 2,
+ .paletteNum = 0
+};
static const union AnimCmd gAnimCmd_840BC3C[] = {
ANIMCMD_FRAME(0, 4),
@@ -266,11 +369,38 @@ static const union AnimCmd *const gAnimCmdTable_840BC64[] = {
gAnimCmd_840BC50
};
-static const struct SpriteTemplate sSpriteTemplate_LargeStar = {0, 0, &gOamData_840BC2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCB_LargeStar};
+static const struct SpriteTemplate sSpriteTemplate_LargeStar = {
+ .tileTag = 0,
+ .paletteTag = 0,
+ .oam = &gOamData_840BC2C,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCB_LargeStar
+};
-static const struct SpriteTemplate sSpriteTemplate_TrailingSparkles = {1, 1, &gOamData_840BC34, gAnimCmdTable_840BC64, NULL, gDummySpriteAffineAnimTable, SpriteCB_TrailingSparkles};
+static const struct SpriteTemplate sSpriteTemplate_TrailingSparkles = {
+ .tileTag = 1,
+ .paletteTag = 1,
+ .oam = &gOamData_840BC34,
+ .anims = gAnimCmdTable_840BC64,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCB_TrailingSparkles
+};
-static const struct OamData gOamData_840BC9C = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, .shape = ST_OAM_SQUARE, .matrixNum = 0, .size = ST_OAM_SIZE_2, .tileNum = 0x000, .priority = 2, .paletteNum = 0 };
+static const struct OamData gOamData_840BC9C = {
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = FALSE,
+ .bpp = ST_OAM_4BPP,
+ .shape = ST_OAM_SQUARE,
+ .matrixNum = 0,
+ .size = ST_OAM_SIZE_2,
+ .tileNum = 0x000,
+ .priority = 2,
+ .paletteNum = 0
+};
static const union AnimCmd gAnimCmd_840BCA4[] = {
ANIMCMD_FRAME(0, 8),
@@ -284,17 +414,74 @@ static const union AnimCmd *const gAnimCmdTable_840BCB8[] = {
gAnimCmd_840BCA4
};
-static const struct SpriteTemplate sSpriteTemplate_RevealGameFreakTextSparkles = {2, 1, &gOamData_840BC9C, gAnimCmdTable_840BCB8, NULL, gDummySpriteAffineAnimTable, SpriteCB_RevealGameFreakTextSparkles};
+static const struct SpriteTemplate sSpriteTemplate_RevealGameFreakTextSparkles = {
+ .tileTag = 2,
+ .paletteTag = 1,
+ .oam = &gOamData_840BC9C,
+ .anims = gAnimCmdTable_840BCB8,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCB_RevealGameFreakTextSparkles
+};
-static const struct OamData gOamData_840BCD4 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, .mosaic = FALSE, .bpp = ST_OAM_4BPP, .shape = ST_OAM_V_RECTANGLE, .matrixNum = 0, .size = ST_OAM_SIZE_3, .tileNum = 0x000, .priority = 3, .paletteNum = 0 };
+static const struct OamData gOamData_840BCD4 = {
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_BLEND,
+ .mosaic = FALSE,
+ .bpp = ST_OAM_4BPP,
+ .shape = ST_OAM_V_RECTANGLE,
+ .matrixNum = 0,
+ .size = ST_OAM_SIZE_3,
+ .tileNum = 0x000,
+ .priority = 3,
+ .paletteNum = 0
+};
-static const struct SpriteTemplate sSpriteTemplate_GameFreakLogoArt = {3, 3, &gOamData_840BCD4, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy};
+static const struct SpriteTemplate sSpriteTemplate_GameFreakLogoArt = {
+ .tileTag = 3,
+ .paletteTag = 3,
+ .oam = &gOamData_840BCD4,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy
+};
-static const struct OamData gOamData_840BCF4 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, .mosaic = FALSE, .bpp = ST_OAM_4BPP, .shape = ST_OAM_H_RECTANGLE, .matrixNum = 0, .size = ST_OAM_SIZE_1, .tileNum = 0x000, .priority = 3, .paletteNum = 0 };
+static const struct OamData gOamData_840BCF4 = {
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_BLEND,
+ .mosaic = FALSE,
+ .bpp = ST_OAM_4BPP,
+ .shape = ST_OAM_H_RECTANGLE,
+ .matrixNum = 0,
+ .size = ST_OAM_SIZE_1,
+ .tileNum = 0x000,
+ .priority = 3,
+ .paletteNum = 0
+};
-static const struct SpriteTemplate sSpriteTemplate_PresentsText = {4, 3, &gOamData_840BCF4, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy};
+static const struct SpriteTemplate sSpriteTemplate_PresentsText = {
+ .tileTag = 4,
+ .paletteTag = 3,
+ .oam = &gOamData_840BCF4,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy
+};
-static const struct OamData gOamData_840BD14 = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, .shape = ST_OAM_SQUARE, .matrixNum = 0, .size = ST_OAM_SIZE_3, .tileNum = 0x000, .priority = 1, .paletteNum = 0 };
+static const struct OamData gOamData_840BD14 = {
+ .affineMode = ST_OAM_AFFINE_DOUBLE,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = FALSE,
+ .bpp = ST_OAM_4BPP,
+ .shape = ST_OAM_SQUARE,
+ .matrixNum = 0,
+ .size = ST_OAM_SIZE_3,
+ .tileNum = 0x000,
+ .priority = 1,
+ .paletteNum = 0
+};
static const union AnimCmd gAnimCmd_840BD1C[] = {
ANIMCMD_FRAME(0, 1),
@@ -345,15 +532,61 @@ static const union AffineAnimCmd *const sAffineAnimTable_NidorinoAnim[] = {
gAffineAnimCmd_840BD68
};
-static const struct SpriteTemplate sSpriteTemplate_NidorinoAnim = {5, 7, &gOamData_840BD14, sAnimTable_NidorinoAnim, NULL, sAffineAnimTable_NidorinoAnim, SpriteCallbackDummy};
+static const struct SpriteTemplate sSpriteTemplate_NidorinoAnim = {
+ .tileTag = 5,
+ .paletteTag = 7,
+ .oam = &gOamData_840BD14,
+ .anims = sAnimTable_NidorinoAnim,
+ .images = NULL,
+ .affineAnims = sAffineAnimTable_NidorinoAnim,
+ .callback = SpriteCallbackDummy
+};
-static const struct OamData gOamData_840BDA0 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, .shape = ST_OAM_SQUARE, .matrixNum = 0, .size = ST_OAM_SIZE_3, .tileNum = 0x000, .priority = 1, .paletteNum = 0 };
+static const struct OamData gOamData_840BDA0 = {
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = FALSE,
+ .bpp = ST_OAM_4BPP,
+ .shape = ST_OAM_SQUARE,
+ .matrixNum = 0,
+ .size = ST_OAM_SIZE_3,
+ .tileNum = 0x000,
+ .priority = 1,
+ .paletteNum = 0
+};
-static const struct SpriteTemplate sSpriteTemplate_NidorinoStatic = {7, 7, &gOamData_840BDA0, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy};
+static const struct SpriteTemplate sSpriteTemplate_NidorinoStatic = {
+ .tileTag = 7,
+ .paletteTag = 7,
+ .oam = &gOamData_840BDA0,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy
+};
-static const struct SpriteTemplate sSpriteTemplate_GengarStatic = {6, 6, &gOamData_840BDA0, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy};
+static const struct SpriteTemplate sSpriteTemplate_GengarStatic = {
+ .tileTag = 6,
+ .paletteTag = 6,
+ .oam = &gOamData_840BDA0,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy
+};
-static const struct OamData gOamData_840BDD8 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, .shape = ST_OAM_H_RECTANGLE, .matrixNum = 0, .size = ST_OAM_SIZE_3, .tileNum = 0x000, .priority = 0, .paletteNum = 0 };
+static const struct OamData gOamData_840BDD8 = {
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = FALSE,
+ .bpp = ST_OAM_4BPP,
+ .shape = ST_OAM_H_RECTANGLE,
+ .matrixNum = 0,
+ .size = ST_OAM_SIZE_3,
+ .tileNum = 0x000,
+ .priority = 0,
+ .paletteNum = 0
+};
static const union AnimCmd gAnimCmds_840BDE0[] = {
ANIMCMD_FRAME(0, 0),
@@ -371,9 +604,28 @@ static const union AnimCmd *const gAnimCmdTable_840BDF4[] = {
gAnimCmds_840BDE8
};
-static const struct SpriteTemplate sSpriteTemplate_Grass = {8, 8, &gOamData_840BDD8, gAnimCmdTable_840BDF4, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy};
+static const struct SpriteTemplate sSpriteTemplate_Grass = {
+ .tileTag = 8,
+ .paletteTag = 8,
+ .oam = &gOamData_840BDD8,
+ .anims = gAnimCmdTable_840BDF4,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy
+};
-static const struct OamData gOamData_840BE14 = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, .shape = ST_OAM_SQUARE, .matrixNum = 0, .size = ST_OAM_SIZE_3, .tileNum = 0x000, .priority = 1, .paletteNum = 0 };
+static const struct OamData gOamData_840BE14 = {
+ .affineMode = ST_OAM_AFFINE_DOUBLE,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = FALSE,
+ .bpp = ST_OAM_4BPP,
+ .shape = ST_OAM_SQUARE,
+ .matrixNum = 0,
+ .size = ST_OAM_SIZE_3,
+ .tileNum = 0x000,
+ .priority = 1,
+ .paletteNum = 0
+};
static const union AnimCmd gAnimCmd_840BE1C[] = {
ANIMCMD_FRAME(0, 0),
@@ -402,9 +654,28 @@ static const union AnimCmd *const gAnimCmdTable_840BE3C[] = {
gAnimCmd_840BE34
};
-static const struct SpriteTemplate sSpriteTemplate_GengarBack = {9, 6, &gOamData_840BE14, gAnimCmdTable_840BE3C, NULL, sAffineAnimTable_NidorinoAnim, SpriteCallbackDummy};
+static const struct SpriteTemplate sSpriteTemplate_GengarBack = {
+ .tileTag = 9,
+ .paletteTag = 6,
+ .oam = &gOamData_840BE14,
+ .anims = gAnimCmdTable_840BE3C,
+ .images = NULL,
+ .affineAnims = sAffineAnimTable_NidorinoAnim,
+ .callback = SpriteCallbackDummy
+};
-static const struct OamData gOamData_840BE64 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, .shape = ST_OAM_V_RECTANGLE, .matrixNum = 0, .size = ST_OAM_SIZE_3, .tileNum = 0x000, .priority = 1, .paletteNum = 0 };
+static const struct OamData gOamData_840BE64 = {
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = FALSE,
+ .bpp = ST_OAM_4BPP,
+ .shape = ST_OAM_V_RECTANGLE,
+ .matrixNum = 0,
+ .size = ST_OAM_SIZE_3,
+ .tileNum = 0x000,
+ .priority = 1,
+ .paletteNum = 0
+};
static const union AnimCmd gAnimCmd_840BE6C[] = {
ANIMCMD_FRAME(0, 8),
@@ -423,9 +694,28 @@ static const union AnimCmd *const gAnimCmdTable_840BE84[] = {
gAnimCmd_840BE78
};
-static const struct SpriteTemplate sSpriteTemplate_GengarSwipe = {10, 10, &gOamData_840BE64, gAnimCmdTable_840BE84, NULL, gDummySpriteAffineAnimTable, SpriteCB_GengarSwipe};
+static const struct SpriteTemplate sSpriteTemplate_GengarSwipe = {
+ .tileTag = 10,
+ .paletteTag = 10,
+ .oam = &gOamData_840BE64,
+ .anims = gAnimCmdTable_840BE84,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCB_GengarSwipe
+};
-static const struct OamData gOamData_840BEA4 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, .shape = ST_OAM_SQUARE, .matrixNum = 0, .size = ST_OAM_SIZE_1, .tileNum = 0x000, .priority = 1, .paletteNum = 0 };
+static const struct OamData gOamData_840BEA4 = {
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = FALSE,
+ .bpp = ST_OAM_4BPP,
+ .shape = ST_OAM_SQUARE,
+ .matrixNum = 0,
+ .size = ST_OAM_SIZE_1,
+ .tileNum = 0x000,
+ .priority = 1,
+ .paletteNum = 0
+};
static const union AnimCmd gAnimCmd_840BEAC[] = {
ANIMCMD_FRAME(0, 10),
@@ -439,7 +729,15 @@ static const union AnimCmd *const gAnimCmdTable_840BEC0[] = {
gAnimCmd_840BEAC
};
-static const struct SpriteTemplate sSpriteTemplate_NidorinoRecoilDust = {11, 11, &gOamData_840BEA4, gAnimCmdTable_840BEC0, NULL, gDummySpriteAffineAnimTable, SpriteCB_NidorinoRecoilDust};
+static const struct SpriteTemplate sSpriteTemplate_NidorinoRecoilDust = {
+ .tileTag = 11,
+ .paletteTag = 11,
+ .oam = &gOamData_840BEA4,
+ .anims = gAnimCmdTable_840BEC0,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCB_NidorinoRecoilDust
+};
static const struct CompressedSpriteSheet sFightSceneSpriteSheets[] = {
{sSpriteTiles_GengarStatic, 0x0800, 6},
@@ -694,7 +992,7 @@ static void IntroCB_Init(struct IntroSequenceData * this)
FillWindowPixelBuffer(0, PIXEL_FILL(0));
BlitBitmapToWindow(0, this->gamefreakTextBitmap, 0, 40, 144, 16);
PutWindowTilemap(0);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_BOTH);
this->state++;
break;
case 1:
@@ -820,7 +1118,7 @@ static void IntroCB_GameFreakScene_CreateGameFreakLogo(struct IntroSequenceData
{
BlitBitmapToWindow(0, this->gamefreakLogoArtSpriteTiles, 0x38, 0x06, 0x20, 0x40);
BlitBitmapToWindow(0, this->gamefreakTextBitmap, 0x00, 0x28, 0x90, 0x10);
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
this->state++;
}
break;
@@ -1473,58 +1771,58 @@ static void GameFreakScene_LoadGfxCreateStar(void)
{
int i;
u8 spriteId;
- static EWRAM_DATA u32 gUnknown_203AB28 = 0;
+ static EWRAM_DATA u32 sTrailingSparklesRngSeed = 0;
for (i = 0; i < NELEMS(sSpriteSheets_GameFreakScene); i++)
{
LoadCompressedSpriteSheet(&sSpriteSheets_GameFreakScene[i]);
}
LoadSpritePalettes(sSpritePalettes_GameFreakScene);
- gUnknown_203AB0E = 0x60;
- gUnknown_203AB10 = 0x10;
- gUnknown_203AB12 = 0x07;
- gUnknown_203AB14 = 0x05;
- gUnknown_203AB16 = 0x08;
- gUnknown_203AB18 = 0x5A;
- gUnknown_203AB1A = 0x78;
- gUnknown_203AB1E = 0x01;
- gUnknown_203AB20 = 0x01;
- gUnknown_203AB22 = 0x05;
- gUnknown_203AB24 = 0x05;
- if (gUnknown_203AB28 == 0)
- gUnknown_203AB28 = 354128453;
+ sLargeStarXSpeed = 0x60;
+ sLargeStarYSpeed = 0x10;
+ sTrailingSparklesXmodMask = 0x07;
+ sUnusedVarRelatedToGameFreakStars = 5;
+ sTrailingSparklesSpawnRate = 8;
+ sTrailingSparklesFlickerStartTime = 90;
+ sTrailingSparklesDestroySpriteTime = 120;
+ sTrailingSparklesXspeed = 1;
+ sTrailingSparklesYspeed = 1;
+ sTrailingSparklesXprecision = 5;
+ sTrailingSparklesYprecision = 5;
+ if (sTrailingSparklesRngSeed == 0)
+ sTrailingSparklesRngSeed = 354128453;
spriteId = CreateSprite(&sSpriteTemplate_LargeStar, 0xF8, 0x37, 0);
if (spriteId != MAX_SPRITES)
{
gSprites[spriteId].data[0] = 0xF80;
gSprites[spriteId].data[1] = 0x370;
- gSprites[spriteId].data[2] = gUnknown_203AB0E;
- gSprites[spriteId].data[3] = gUnknown_203AB10;
- StoreWordInTwoHalfwords((u16 *)&gSprites[spriteId].data[6], gUnknown_203AB28);
+ gSprites[spriteId].data[2] = sLargeStarXSpeed;
+ gSprites[spriteId].data[3] = sLargeStarYSpeed;
+ StoreWordInTwoHalfwords((u16 *)&gSprites[spriteId].data[6], sTrailingSparklesRngSeed);
}
}
static void GameFreakScene_TrailingSparklesGen(s16 x, s16 y, u16 a2)
{
- static EWRAM_DATA s16 gUnknown_203AB2C = 0;
+ static EWRAM_DATA s16 sYmod = 0;
u8 spriteId;
- s16 r4 = (a2 & gUnknown_203AB12) + 2;
- s16 r2 = gUnknown_203AB2C;
- gUnknown_203AB2C++;
- if (gUnknown_203AB2C > 3)
- gUnknown_203AB2C = -3;
- x += r4;
- y += r2;
+ s16 xMod = (a2 & sTrailingSparklesXmodMask) + 2;
+ s16 yMod = sYmod;
+ sYmod++;
+ if (sYmod > 3)
+ sYmod = -3;
+ x += xMod;
+ y += yMod;
if (x >= 1 && x <= 0xEF)
{
spriteId = CreateSprite(&sSpriteTemplate_TrailingSparkles, x, y, 1);
if (spriteId != MAX_SPRITES)
{
- gSprites[spriteId].data[0] = x << gUnknown_203AB22;
- gSprites[spriteId].data[1] = y << gUnknown_203AB24;
- gSprites[spriteId].data[2] = gUnknown_203AB1E * r4;
- gSprites[spriteId].data[3] = gUnknown_203AB20 * r2;
+ gSprites[spriteId].data[0] = x << sTrailingSparklesXprecision;
+ gSprites[spriteId].data[1] = y << sTrailingSparklesYprecision;
+ gSprites[spriteId].data[2] = sTrailingSparklesXspeed * xMod;
+ gSprites[spriteId].data[3] = sTrailingSparklesYspeed * yMod;
}
}
}
@@ -1747,7 +2045,7 @@ static void Task_FightScene3_Bg0Scroll(u8 taskId)
static void SpriteCB_LargeStar(struct Sprite * sprite)
{
- u32 v;
+ unsigned v;
sprite->data[0] -= sprite->data[2];
sprite->data[1] += sprite->data[3];
sprite->data[4] += 48;
@@ -1755,7 +2053,7 @@ static void SpriteCB_LargeStar(struct Sprite * sprite)
sprite->pos1.y = sprite->data[1] >> 4;
sprite->pos2.y = gSineTable[(sprite->data[4] >> 4) + 0x40] >> 5;
sprite->data[5]++;
- if (sprite->data[5] % gUnknown_203AB16)
+ if (sprite->data[5] % sTrailingSparklesSpawnRate)
{
LoadWordFromTwoHalfwords(&sprite->data[6], &v);
v = v * 1103515245 + 24691;
@@ -1776,14 +2074,14 @@ static void SpriteCB_TrailingSparkles(struct Sprite * sprite)
sprite->data[4]++;
sprite->data[5] += sprite->data[4];
sprite->data[7]++;
- sprite->pos1.x = (u16)sprite->data[0] >> gUnknown_203AB22;
- sprite->pos1.y = sprite->data[1] >> gUnknown_203AB24;
- if (gUnknown_203AB1C && sprite->data[3] < 0)
- sprite->pos2.y = sprite->data[5] >> gUnknown_203AB1C;
- if (sprite->data[7] > gUnknown_203AB18)
+ sprite->pos1.x = (u16)sprite->data[0] >> sTrailingSparklesXprecision;
+ sprite->pos1.y = sprite->data[1] >> sTrailingSparklesYprecision;
+ if (sTrailingSparklesGravityShift && sprite->data[3] < 0)
+ sprite->pos2.y = sprite->data[5] >> sTrailingSparklesGravityShift;
+ if (sprite->data[7] > sTrailingSparklesFlickerStartTime)
{
sprite->invisible = !sprite->invisible;
- if (sprite->data[7] > gUnknown_203AB1A)
+ if (sprite->data[7] > sTrailingSparklesDestroySpriteTime)
DestroySprite(sprite);
}
if (sprite->pos1.y + sprite->pos2.y < 0 || sprite->pos1.y + sprite->pos2.y > 160)
diff --git a/src/item_menu.c b/src/item_menu.c
index ff59f0985..5ab87c9a0 100644
--- a/src/item_menu.c
+++ b/src/item_menu.c
@@ -1596,7 +1596,7 @@ static void Task_ItemMenuAction_ToggleSelect(u8 taskId)
DestroyListMenuTask(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]);
Bag_BuildListMenuTemplate(gBagMenuState.pocket);
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]);
- CopyWindowToVram(0, 1);
+ CopyWindowToVram(0, COPYWIN_MAP);
Task_ItemMenuAction_Cancel(taskId);
}
@@ -1608,7 +1608,7 @@ static void Task_ItemMenuAction_Give(u8 taskId)
HideBagWindow(6);
PutWindowTilemap(0);
PutWindowTilemap(1);
- CopyWindowToVram(0, 1);
+ CopyWindowToVram(0, COPYWIN_MAP);
if (!CanWriteMailHere(itemId))
DisplayItemMessageInBag(taskId, 2, gText_CantWriteMailHere, Task_WaitAButtonAndCloseContextMenu);
else if (!itemid_is_unique(itemId))
@@ -1694,7 +1694,7 @@ static void Task_ItemMenuAction_BattleUse(u8 taskId)
HideBagWindow(6);
PutWindowTilemap(0);
PutWindowTilemap(1);
- CopyWindowToVram(0, 1);
+ CopyWindowToVram(0, COPYWIN_MAP);
ItemId_GetBattleFunc(gSpecialVar_ItemId)(taskId);
}
}
@@ -2131,7 +2131,7 @@ static void Task_Bag_OldManTutorial(u8 taskId)
HideBagWindow(6);
PutWindowTilemap(0);
PutWindowTilemap(1);
- CopyWindowToVram(0, 1);
+ CopyWindowToVram(0, COPYWIN_MAP);
DestroyListMenuTask(data[0], NULL, NULL);
RestorePlayerBag();
Bag_BeginCloseWin0Animation();
@@ -2242,7 +2242,7 @@ static void Task_Bag_TeachyTvRegister(u8 taskId)
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]);
Bag_FillMessageBoxWithPalette(0);
bag_menu_print_cursor_(data[0], 1);
- CopyWindowToVram(0, 1);
+ CopyWindowToVram(0, COPYWIN_MAP);
break;
case 510:
case 612:
@@ -2305,7 +2305,7 @@ static void Task_Bag_TeachyTvCatching(u8 taskId)
HideBagWindow(6);
PutWindowTilemap(0);
PutWindowTilemap(1);
- CopyWindowToVram(0, 1);
+ CopyWindowToVram(0, COPYWIN_MAP);
DestroyListMenuTask(data[0], NULL, NULL);
RestorePlayerBag();
Bag_BeginCloseWin0Animation();
@@ -2347,7 +2347,7 @@ static void Task_Bag_TeachyTvStatus(u8 taskId)
HideBagWindow(6);
PutWindowTilemap(0);
PutWindowTilemap(1);
- CopyWindowToVram(0, 1);
+ CopyWindowToVram(0, COPYWIN_MAP);
DestroyListMenuTask(data[0], NULL, NULL);
RestorePlayerBag();
gItemUseCB = ItemUseCB_MedicineStep;
@@ -2388,7 +2388,7 @@ static void Task_Bag_TeachyTvTMs(u8 taskId)
HideBagWindow(6);
PutWindowTilemap(0);
PutWindowTilemap(1);
- CopyWindowToVram(0, 1);
+ CopyWindowToVram(0, COPYWIN_MAP);
DestroyListMenuTask(data[0], NULL, NULL);
RestorePlayerBag();
sBagMenuDisplay->exitCB = Pokedude_InitTMCase;
diff --git a/src/item_pc.c b/src/item_pc.c
index dce96d59d..8ce9cd6a9 100644
--- a/src/item_pc.c
+++ b/src/item_pc.c
@@ -120,14 +120,14 @@ static const struct MenuAction sItemPcSubmenuOptions[] = {
{gFameCheckerText_Cancel, {.void_u8 = Task_ItemPcCancel}}
};
-static const u8 gUnknown_8453F8C[][3] = {
- {0, 1, 2},
- {0, 2, 3},
- {0, 3, 2},
- {0, 10, 2}
+static const u8 sTextColors[][3] = {
+ {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY},
+ {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY},
+ {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_GREY, TEXT_COLOR_DARK_GREY},
+ {TEXT_COLOR_TRANSPARENT, TEXT_DYNAMIC_COLOR_1, TEXT_COLOR_DARK_GREY}
};
-static const struct WindowTemplate gUnknown_8453F98[] = {
+static const struct WindowTemplate sWindowTemplates[] = {
{
.bg = 0,
.tilemapLeft = 0x07,
@@ -179,7 +179,7 @@ static const struct WindowTemplate gUnknown_8453F98[] = {
}, DUMMY_WIN_TEMPLATE
};
-static const struct WindowTemplate gUnknown_8453FD0[] = {
+static const struct WindowTemplate sSubwindowTemplates[] = {
{
.bg = 0,
.tilemapLeft = 0x06,
@@ -207,11 +207,11 @@ static const struct WindowTemplate gUnknown_8453FD0[] = {
}
};
-void ItemPc_Init(u8 a0, MainCallback callback)
+void ItemPc_Init(u8 kind, MainCallback callback)
{
u8 i;
- if (a0 >= 2)
+ if (kind >= 2)
{
SetMainCallback2(callback);
return;
@@ -221,7 +221,7 @@ void ItemPc_Init(u8 a0, MainCallback callback)
SetMainCallback2(callback);
return;
}
- if (a0 != 1)
+ if (kind != 1)
{
sListMenuState.savedCallback = callback;
sListMenuState.scroll = sListMenuState.row = 0;
@@ -373,7 +373,7 @@ static bool8 ItemPc_DoGfxSetup(void)
else
{
BeginPCScreenEffect_TurnOn(0, 0, 0);
- ItemPc_SetInitializedFlag(1);
+ ItemPc_SetInitializedFlag(TRUE);
PlaySE(SE_PC_LOGIN);
}
gMain.state++;
@@ -702,15 +702,15 @@ static void ItemPc_SetScrollPosition(void)
}
}
-static void ItemPc_SetMessageWindowPalette(int a0)
+static void ItemPc_SetMessageWindowPalette(int palIdx)
{
- SetBgTilemapPalette(1, 0, 14, 30, 6, a0 + 1);
+ SetBgTilemapPalette(1, 0, 14, 30, 6, palIdx + 1);
ScheduleBgCopyTilemapToVram(1);
}
-void ItemPc_SetInitializedFlag(u8 a0)
+void ItemPc_SetInitializedFlag(bool8 flag)
{
- sListMenuState.initialized = a0;
+ sListMenuState.initialized = flag;
}
static void Task_ItemPcMain(u8 taskId)
@@ -740,7 +740,7 @@ static void Task_ItemPcMain(u8 taskId)
break;
case -2:
PlaySE(SE_SELECT);
- ItemPc_SetInitializedFlag(0);
+ ItemPc_SetInitializedFlag(FALSE);
gTasks[taskId].func = Task_ItemPcTurnOff1;
break;
default:
@@ -965,9 +965,9 @@ static void ItemPc_WithdrawMultipleInitWindow(u16 slotId)
ScheduleBgCopyTilemapToVram(0);
}
-static void sub_810E670(s16 quantity)
+static void UpdateWithdrawQuantityDisplay(s16 quantity)
{
- FillWindowPixelRect(3, 0x11, 10, 10, 28, 12);
+ FillWindowPixelRect(3, PIXEL_FILL(1), 10, 10, 28, 12);
ConvertIntToDecimalStringN(gStringVar1, quantity, STR_CONV_MODE_LEADING_ZEROS, 3);
StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1);
ItemPc_AddTextPrinterParameterized(3, 0, gStringVar4, 8, 10, 1, 0, 0, 1);
@@ -978,7 +978,7 @@ static void Task_ItemPcHandleWithdrawMultiple(u8 taskId)
s16 * data = gTasks[taskId].data;
if (AdjustQuantityAccordingToDPadInput(&data[8], data[2]) == TRUE)
- sub_810E670(data[8]);
+ UpdateWithdrawQuantityDisplay(data[8]);
else if (JOY_NEW(A_BUTTON))
{
PlaySE(SE_SELECT);
@@ -1067,7 +1067,7 @@ static void ItemPc_InitWindows(void)
{
u8 i;
- InitWindows(gUnknown_8453F98);
+ InitWindows(sWindowTemplates);
DeactivateAllTextPrinters();
TextWindow_SetUserSelectedFrame(0, 0x3C0, 0xE0);
TextWindow_SetStdFrame0_WithPal(0, 0x3A3, 0xC0);
@@ -1106,7 +1106,7 @@ static void unused_ItemPc_AddTextPrinterParameterized(u8 windowId, const u8 * st
static void ItemPc_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx)
{
- AddTextPrinterParameterized4(windowId, fontId, x, y, letterSpacing, lineSpacing, gUnknown_8453F8C[colorIdx], speed, str);
+ AddTextPrinterParameterized4(windowId, fontId, x, y, letterSpacing, lineSpacing, sTextColors[colorIdx], speed, str);
}
static void ItemPc_SetBorderStyleOnWindow(u8 windowId)
@@ -1118,7 +1118,7 @@ static u8 ItemPc_GetOrCreateSubwindow(u8 idx)
{
if (sSubmenuWindowIds[idx] == 0xFF)
{
- sSubmenuWindowIds[idx] = AddWindow(&gUnknown_8453FD0[idx]);
+ sSubmenuWindowIds[idx] = AddWindow(&sSubwindowTemplates[idx]);
DrawStdFrameWithCustomTileAndPalette(sSubmenuWindowIds[idx], TRUE, 0x3A3, 0x0C);
}
diff --git a/src/learn_move.c b/src/learn_move.c
index d444b5d40..c28e99647 100644
--- a/src/learn_move.c
+++ b/src/learn_move.c
@@ -594,7 +594,7 @@ static void PrintTeachWhichMoveToStrVar1(bool8 onInit)
StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToMon);
PrintTextOnWindow(7, gStringVar4, 0, 2, 0, 2);
PutWindowTilemap(7);
- CopyWindowToVram(7, 3);
+ CopyWindowToVram(7, COPYWIN_BOTH);
}
}
@@ -714,7 +714,7 @@ static void MoveRelearnerMenuHandleInput(void)
static void MoveLearnerInitListMenu(void)
{
sMoveRelearner->listMenuTaskId = ListMenuInit(&gMultiuseListMenuTemplate, sMoveRelearner->listMenuScrollPos, sMoveRelearner->listMenuScrollRow);
- CopyWindowToVram(6, 1);
+ CopyWindowToVram(6, COPYWIN_MAP);
}
static void PrintMoveInfo(u16 move)
@@ -760,8 +760,8 @@ static void LoadMoveInfoUI(void)
PutWindowTilemap(5);
PutWindowTilemap(2);
PutWindowTilemap(7);
- CopyWindowToVram(0, 2);
- CopyWindowToVram(1, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
+ CopyWindowToVram(1, COPYWIN_GFX);
}
static void PrintMoveInfoHandleCancel_CopyToVram(void)
@@ -776,15 +776,15 @@ static void PrintMoveInfoHandleCancel_CopyToVram(void)
for (i = 2; i < 6; i++)
{
FillWindowPixelBuffer(i, PIXEL_FILL(0));
- CopyWindowToVram(i, 2);
+ CopyWindowToVram(i, COPYWIN_GFX);
}
}
- CopyWindowToVram(3, 2);
- CopyWindowToVram(4, 2);
- CopyWindowToVram(2, 2);
- CopyWindowToVram(2, 2);
- CopyWindowToVram(5, 2);
- CopyWindowToVram(7, 3);
+ CopyWindowToVram(3, COPYWIN_GFX);
+ CopyWindowToVram(4, COPYWIN_GFX);
+ CopyWindowToVram(2, COPYWIN_GFX);
+ CopyWindowToVram(2, COPYWIN_GFX);
+ CopyWindowToVram(5, COPYWIN_GFX);
+ CopyWindowToVram(7, COPYWIN_BOTH);
}
static void MoveRelearnerMenu_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list)
@@ -803,7 +803,7 @@ static s8 YesNoMenuProcessInput(void)
if (input != -2)
{
PutWindowTilemap(6);
- CopyWindowToVram(6, 1);
+ CopyWindowToVram(6, COPYWIN_MAP);
}
return input;
}
diff --git a/src/link.c b/src/link.c
index e11ba4f29..eac984b47 100644
--- a/src/link.c
+++ b/src/link.c
@@ -380,7 +380,7 @@ void OpenLink(void)
{
sub_80F86F4();
}
- gReceivedRemoteLinkPlayers = 0;
+ gReceivedRemoteLinkPlayers = FALSE;
for (i = 0; i < MAX_LINK_PLAYERS; i++)
{
gRemoteLinkPlayersNotReceived[i] = TRUE;
@@ -515,9 +515,9 @@ void HandleReceiveRemoteLinkPlayer(u8 who)
{
count += gRemoteLinkPlayersNotReceived[i];
}
- if (count == 0 && gReceivedRemoteLinkPlayers == 0)
+ if (count == 0 && !gReceivedRemoteLinkPlayers)
{
- gReceivedRemoteLinkPlayers = 1;
+ gReceivedRemoteLinkPlayers = TRUE;
}
}
@@ -1513,7 +1513,7 @@ void sub_800AE1C(void)
PutWindowTilemap(0);
PutWindowTilemap(2);
CopyWindowToVram(0, 0);
- CopyWindowToVram(2, 3);
+ CopyWindowToVram(2, COPYWIN_BOTH);
ShowBg(0);
ShowBg(1);
}
@@ -1526,7 +1526,7 @@ void sub_800AED0(void)
PutWindowTilemap(1);
PutWindowTilemap(2);
CopyWindowToVram(1, 0);
- CopyWindowToVram(2, 3);
+ CopyWindowToVram(2, COPYWIN_BOTH);
ShowBg(0);
}
@@ -1656,7 +1656,7 @@ bool8 HandleLinkConnection(void)
{
gLinkStatus = LinkMain1(&gShouldAdvanceLinkState, gSendCmd, gRecvCmds);
LinkMain2(&gMain.heldKeys);
- if ((gLinkStatus & LINK_STAT_RECEIVED_NOTHING) && sub_8058318() == TRUE)
+ if ((gLinkStatus & LINK_STAT_RECEIVED_NOTHING) && IsSendingKeysOverCable() == TRUE)
{
return TRUE;
}
@@ -1665,7 +1665,7 @@ bool8 HandleLinkConnection(void)
{
r4 = LinkRfuMain1();
r5 = LinkRfuMain2();
- if (sub_8058318() == TRUE)
+ if (IsSendingKeysOverCable() == TRUE)
{
if (r4 == TRUE || IsRfuRecvQueueEmpty() || r5)
{
@@ -1678,7 +1678,7 @@ bool8 HandleLinkConnection(void)
void SetWirelessCommType1(void)
{
- if (gReceivedRemoteLinkPlayers == 0)
+ if (!gReceivedRemoteLinkPlayers)
{
gWirelessCommType = 1;
}
@@ -1686,7 +1686,7 @@ void SetWirelessCommType1(void)
static void SetWirelessCommType0(void)
{
- if (gReceivedRemoteLinkPlayers == 0)
+ if (!gReceivedRemoteLinkPlayers)
{
gWirelessCommType = 0;
}
@@ -1694,7 +1694,7 @@ static void SetWirelessCommType0(void)
void SetWirelessCommType0_UnusedCopy(void)
{
- if (gReceivedRemoteLinkPlayers == 0)
+ if (!gReceivedRemoteLinkPlayers)
{
gWirelessCommType = 0;
}
diff --git a/src/link_rfu_2.c b/src/link_rfu_2.c
index f3e7ce274..77672f5d8 100644
--- a/src/link_rfu_2.c
+++ b/src/link_rfu_2.c
@@ -45,7 +45,7 @@ static void RfuFunc_SendNextBlock(void);
static void RfuFunc_SendLastBlock(void);
static void CallRfuFunc(void);
static void sub_80FA738(void);
-static int sub_80FA788(void);
+static s32 sub_80FA788(void);
static void sub_80FA834(u8 taskId);
static void sub_80FA9D0(u16 a0);
static void ValidateAndReceivePokemonSioInfo(void * a0);
@@ -712,7 +712,7 @@ static bool32 sub_80F911C(void)
if (!lman.acceptSlot_flag)
{
LinkRfu_Shutdown();
- gReceivedRemoteLinkPlayers = 0;
+ gReceivedRemoteLinkPlayers = FALSE;
return FALSE;
}
}
@@ -985,7 +985,7 @@ static void RfuHandleReceiveCommand(u8 unused)
switch (gRecvCmds[i][0] & 0xff00)
{
case RFU_COMMAND_0x7800:
- if (Rfu.parent_child == MODE_CHILD && gReceivedRemoteLinkPlayers != 0)
+ if (Rfu.parent_child == MODE_CHILD && gReceivedRemoteLinkPlayers)
return;
// fallthrough
case RFU_COMMAND_0x7700:
@@ -1017,7 +1017,7 @@ static void RfuHandleReceiveCommand(u8 unused)
{
Rfu.cmd_8800_recvbuf[i].receiving = 2;
Rfu_SetBlockReceivedFlag(i);
- if (GetHostRFUtgtGname()->activity == (ACTIVITY_CHAT | IN_UNION_ROOM) && gReceivedRemoteLinkPlayers != 0 && Rfu.parent_child == MODE_CHILD)
+ if (GetHostRFUtgtGname()->activity == (ACTIVITY_CHAT | IN_UNION_ROOM) && gReceivedRemoteLinkPlayers && Rfu.parent_child == MODE_CHILD)
ValidateAndReceivePokemonSioInfo(gBlockRecvBuffer);
}
}
@@ -1035,11 +1035,11 @@ static void RfuHandleReceiveCommand(u8 unused)
case RFU_COMMAND_0xed00:
if (Rfu.parent_child == MODE_CHILD)
{
- if (gReceivedRemoteLinkPlayers != 0)
+ if (gReceivedRemoteLinkPlayers)
{
if (gRecvCmds[i][1] & gRfuLinkStatus->connSlotFlag)
{
- gReceivedRemoteLinkPlayers = 0;
+ gReceivedRemoteLinkPlayers = FALSE;
rfu_LMAN_requestChangeAgbClockMaster();
Rfu.unk_ce4 = gRecvCmds[i][2];
}
@@ -1283,7 +1283,7 @@ static void RfuFunc_End5F00_PowerDownRfu(void)
{
rfu_clearAllSlot();
rfu_LMAN_powerDownRFU();
- gReceivedRemoteLinkPlayers = 0;
+ gReceivedRemoteLinkPlayers = FALSE;
Rfu.isShuttingDown = TRUE;
Rfu.RfuFunc = NULL;
}
@@ -1682,7 +1682,7 @@ static void sub_80FA834(u8 taskId)
break;
case 6:
DestroyTask(taskId);
- gReceivedRemoteLinkPlayers = 1;
+ gReceivedRemoteLinkPlayers = TRUE;
Rfu.unk_ce8 = FALSE;
rfu_LMAN_setLinkRecovery(1, 600);
if (Rfu.unionRoomChatters)
@@ -1836,7 +1836,7 @@ static void sub_80FACF0(u8 taskId)
{
ReceiveRfuLinkPlayers((const struct SioInfo *)gBlockRecvBuffer);
ResetBlockReceivedFlag(0);
- gReceivedRemoteLinkPlayers = 1;
+ gReceivedRemoteLinkPlayers = TRUE;
DestroyTask(taskId);
}
break;
diff --git a/src/list_menu.c b/src/list_menu.c
index 5232708f3..b794953de 100644
--- a/src/list_menu.c
+++ b/src/list_menu.c
@@ -122,7 +122,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:
@@ -155,7 +155,7 @@ s32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const str
break;
}
}
- CopyWindowToVram(sMysteryGiftLinkMenu.windowId, 1);
+ CopyWindowToVram(sMysteryGiftLinkMenu.windowId, COPYWIN_MAP);
}
break;
case 2:
@@ -171,7 +171,7 @@ u8 ListMenuInit(const struct ListMenuTemplate *listMenuTemplate, u16 cursorPos,
{
u8 taskId = ListMenuInitInternal(listMenuTemplate, cursorPos, itemsAbove);
PutWindowTilemap(listMenuTemplate->windowId);
- CopyWindowToVram(listMenuTemplate->windowId, 2);
+ CopyWindowToVram(listMenuTemplate->windowId, COPYWIN_GFX);
return taskId;
}
@@ -182,7 +182,7 @@ u8 ListMenuInitInRect(const struct ListMenuTemplate *listMenuTemplate, const str
for (i = 0; rect[i].palNum != 0xFF; i++)
PutWindowRectTilemapOverridePalette(listMenuTemplate->windowId, rect[i].x, rect[i].y, rect[i].width, rect[i].height, rect[i].palNum);
- CopyWindowToVram(listMenuTemplate->windowId, 2);
+ CopyWindowToVram(listMenuTemplate->windowId, COPYWIN_GFX);
return taskId;
}
@@ -266,7 +266,7 @@ void RedrawListMenu(u8 listTaskId)
FillWindowPixelBuffer(list->template.windowId, PIXEL_FILL(list->template.fillValue));
ListMenuPrintEntries(list, list->cursorPos, 0, list->template.maxShowed);
ListMenuDrawCursor(list);
- CopyWindowToVram(list->template.windowId, 2);
+ CopyWindowToVram(list->template.windowId, COPYWIN_GFX);
}
static void ChangeListMenuPals(u8 listTaskId, u8 cursorPal, u8 fillValue, u8 cursorShadowPal)
@@ -611,7 +611,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:
@@ -619,7 +619,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/mail.c b/src/mail.c
index 0e9a8db41..34242f1b6 100644
--- a/src/mail.c
+++ b/src/mail.c
@@ -677,8 +677,8 @@ static void AddMailMessagePrinters(void)
width = GetStringWidth(1, gText_From, 0);
AddTextPrinterParameterized3(1, 1, sMailViewResources->nameX, sMailViewResources->messageLayout->nameY, sTextColor, 0, gText_From);
AddTextPrinterParameterized3(1, 1, sMailViewResources->nameX + width, sMailViewResources->messageLayout->nameY, sTextColor, 0, sMailViewResources->authorNameBuffer);
- CopyWindowToVram(0, 3);
- CopyWindowToVram(1, 3);
+ CopyWindowToVram(0, COPYWIN_BOTH);
+ CopyWindowToVram(1, COPYWIN_BOTH);
}
static void VBlankCB_ShowMail(void)
diff --git a/src/main.c b/src/main.c
index be025c79f..1573a2c5b 100644
--- a/src/main.c
+++ b/src/main.c
@@ -28,11 +28,15 @@ const u8 gGameVersion = GAME_VERSION;
const u8 gGameLanguage = GAME_LANGUAGE;
+#if MODERN
+const char BuildDateTime[] = __DATE__ " " __TIME__;
+#else
#if REVISION == 0
const char BuildDateTime[] = "2004 04 26 11:20";
#else
const char BuildDateTime[] = "2004 07 20 09:30";
-#endif
+#endif //REVISION
+#endif //MODERN
const IntrFunc gIntrTableTemplate[] =
{
@@ -84,7 +88,37 @@ void EnableVCountIntrAtLine150(void);
void AgbMain()
{
+#if MODERN
+ // Modern compilers are liberal with the stack on entry to this function,
+ // so RegisterRamReset may crash if it resets IWRAM.
+ RegisterRamReset(RESET_ALL & ~RESET_IWRAM);
+ asm("mov\tr1, #0xC0\n"
+ "\tlsl\tr1, r1, #0x12\n"
+ "\tmov\tr2, #0xFC\n"
+ "\tlsl\tr2, r2, #0x7\n"
+ "\tadd\tr2, r1, r2\n"
+ "\tmov\tr0, #0\n"
+ "\tmov\tr3, r0\n"
+ "\tmov\tr4, r0\n"
+ "\tmov\tr5, r0\n"
+ ".LCU%=:\n"
+ "\tstmia\tr1!, {r0, r3, r4, r5}\n"
+ "\tstmia\tr1!, {r0, r3, r4, r5}\n"
+ "\tstmia\tr1!, {r0, r3, r4, r5}\n"
+ "\tstmia\tr1!, {r0, r3, r4, r5}\n"
+ "\tstmia\tr1!, {r0, r3, r4, r5}\n"
+ "\tstmia\tr1!, {r0, r3, r4, r5}\n"
+ "\tstmia\tr1!, {r0, r3, r4, r5}\n"
+ "\tstmia\tr1!, {r0, r3, r4, r5}\n"
+ "\tcmp\tr1, r2\n"
+ "\tbcc\t.LCU%=\n"
+ :
+ :
+ : "r0", "r1", "r2", "r3", "r4", "r5", "memory"
+ );
+#else
RegisterRamReset(RESET_ALL);
+#endif //MODERN
*(vu16 *)BG_PLTT = RGB_WHITE;
InitGpuRegManager();
REG_WAITCNT = WAITCNT_PREFETCH_ENABLE | WAITCNT_WS0_S_1 | WAITCNT_WS0_N_3;
@@ -98,7 +132,7 @@ void AgbMain()
InitMapMusic();
ClearDma3Requests();
ResetBgs();
- InitHeap(gHeap, 0x1C000);
+ InitHeap(gHeap, HEAP_SIZE);
SetDefaultFontsPointer();
gSoftResetDisabled = FALSE;
@@ -128,7 +162,7 @@ void AgbMain()
DoSoftReset();
}
- if (sub_80582E0() == 1)
+ if (Overworld_SendKeysToLinkIsRunning() == TRUE)
{
gLinkTransferringData = TRUE;
UpdateLinkAndCallCallbacks();
@@ -139,7 +173,7 @@ void AgbMain()
gLinkTransferringData = FALSE;
UpdateLinkAndCallCallbacks();
- if (sub_8058274() == 1)
+ if (Overworld_RecvKeysFromLinkIsRunning() == 1)
{
gMain.newKeys = 0;
ClearSpriteCopyRequests();
@@ -259,16 +293,16 @@ static void ReadKeys(void)
gMain.heldKeys = gMain.heldKeysRaw;
// Remap L to A if the L=A option is enabled.
- if (gSaveBlock2Ptr->optionsButtonMode == 2)
+ if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_L_EQUALS_A)
{
- if (gMain.newKeys & L_BUTTON)
+ if (JOY_NEW(L_BUTTON))
gMain.newKeys |= A_BUTTON;
- if (gMain.heldKeys & L_BUTTON)
+ if (JOY_HELD(L_BUTTON))
gMain.heldKeys |= A_BUTTON;
}
- if (gMain.newKeys & gMain.watchedKeysMask)
+ if (JOY_NEW(gMain.watchedKeysMask))
gMain.watchedKeysPressed = TRUE;
}
@@ -289,7 +323,7 @@ void InitIntrHandlers(void)
REG_IME = 1;
- EnableInterrupts(0x1);
+ EnableInterrupts(INTR_FLAG_VBLANK);
}
void SetVBlankCallback(IntrCallback callback)
diff --git a/src/main_menu.c b/src/main_menu.c
index 00ecd0fe3..8d5343852 100644
--- a/src/main_menu.c
+++ b/src/main_menu.c
@@ -352,7 +352,7 @@ static void Task_PrintMainMenuText(u8 taskId)
AddTextPrinterParameterized3(MAIN_MENU_WINDOW_NEWGAME_ONLY, 2, 2, 2, sTextColor1, -1, gText_NewGame);
MainMenu_DrawWindow(&sWindowTemplate[MAIN_MENU_WINDOW_NEWGAME_ONLY]);
PutWindowTilemap(MAIN_MENU_WINDOW_NEWGAME_ONLY);
- CopyWindowToVram(MAIN_MENU_WINDOW_NEWGAME_ONLY, 3);
+ CopyWindowToVram(MAIN_MENU_WINDOW_NEWGAME_ONLY, COPYWIN_BOTH);
break;
case MAIN_MENU_CONTINUE:
FillWindowPixelBuffer(MAIN_MENU_WINDOW_CONTINUE, PIXEL_FILL(10));
@@ -364,8 +364,8 @@ static void Task_PrintMainMenuText(u8 taskId)
MainMenu_DrawWindow(&sWindowTemplate[MAIN_MENU_WINDOW_NEWGAME]);
PutWindowTilemap(MAIN_MENU_WINDOW_CONTINUE);
PutWindowTilemap(MAIN_MENU_WINDOW_NEWGAME);
- CopyWindowToVram(MAIN_MENU_WINDOW_CONTINUE, 2);
- CopyWindowToVram(MAIN_MENU_WINDOW_NEWGAME, 3);
+ CopyWindowToVram(MAIN_MENU_WINDOW_CONTINUE, COPYWIN_GFX);
+ CopyWindowToVram(MAIN_MENU_WINDOW_NEWGAME, COPYWIN_BOTH);
break;
case MAIN_MENU_MYSTERYGIFT:
FillWindowPixelBuffer(MAIN_MENU_WINDOW_CONTINUE, PIXEL_FILL(10));
@@ -382,9 +382,9 @@ static void Task_PrintMainMenuText(u8 taskId)
PutWindowTilemap(MAIN_MENU_WINDOW_CONTINUE);
PutWindowTilemap(MAIN_MENU_WINDOW_NEWGAME);
PutWindowTilemap(MAIN_MENU_WINDOW_MYSTERYGIFT);
- CopyWindowToVram(MAIN_MENU_WINDOW_CONTINUE, 2);
- CopyWindowToVram(MAIN_MENU_WINDOW_NEWGAME, 2);
- CopyWindowToVram(MAIN_MENU_WINDOW_MYSTERYGIFT, 3);
+ CopyWindowToVram(MAIN_MENU_WINDOW_CONTINUE, COPYWIN_GFX);
+ CopyWindowToVram(MAIN_MENU_WINDOW_NEWGAME, COPYWIN_GFX);
+ CopyWindowToVram(MAIN_MENU_WINDOW_MYSTERYGIFT, COPYWIN_BOTH);
break;
}
gTasks[taskId].func = Task_WaitDma3AndFadeIn;
@@ -392,7 +392,7 @@ static void Task_PrintMainMenuText(u8 taskId)
static void Task_WaitDma3AndFadeIn(u8 taskId)
{
- if (CheckForSpaceForDma3Request(-1) != -1)
+ if (WaitDma3Request(-1) != -1)
{
gTasks[taskId].func = Task_UpdateVisualSelection;
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0xFFFF);
@@ -534,7 +534,7 @@ static void Task_ReturnToTileScreen(u8 taskId)
static void MoveWindowByMenuTypeAndCursorPos(u8 menuType, u8 cursorPos)
{
u16 win0vTop, win0vBot;
- SetGpuReg(REG_OFFSET_WIN0H, 0x12DE);
+ SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(18, 222));
switch (menuType)
{
default:
@@ -578,8 +578,8 @@ static bool8 HandleMenuInput(u8 taskId)
{
PlaySE(SE_SELECT);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
- SetGpuReg(REG_OFFSET_WIN0H, 0xF0);
- SetGpuReg(REG_OFFSET_WIN0V, 0xA0);
+ SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 240));
+ SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0, 160));
gTasks[taskId].func = Task_ReturnToTileScreen;
}
else if (JOY_NEW(DPAD_UP) && gTasks[taskId].tCursorPos > 0)
@@ -602,9 +602,9 @@ static void PrintMessageOnWindow4(const u8 *str)
MainMenu_DrawWindow(&sWindowTemplate[4]);
AddTextPrinterParameterized3(MAIN_MENU_WINDOW_ERROR, 2, 0, 2, sTextColor1, 2, str);
PutWindowTilemap(MAIN_MENU_WINDOW_ERROR);
- CopyWindowToVram(MAIN_MENU_WINDOW_ERROR, 2);
- SetGpuReg(REG_OFFSET_WIN0H, 0x13DD);
- SetGpuReg(REG_OFFSET_WIN0V, 0x739D);
+ CopyWindowToVram(MAIN_MENU_WINDOW_ERROR, COPYWIN_GFX);
+ SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE( 19, 221));
+ SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(115, 157));
}
static void PrintContinueStats(void)
diff --git a/src/map_name_popup.c b/src/map_name_popup.c
index b490722a5..6629fcac5 100644
--- a/src/map_name_popup.c
+++ b/src/map_name_popup.c
@@ -84,7 +84,7 @@ static void Task_MapNamePopup(u8 taskId)
if (task->tReshow)
{
MapNamePopupPrintMapNameOnWindow(task->tWindowId);
- CopyWindowToVram(task->tWindowId, 2);
+ CopyWindowToVram(task->tWindowId, COPYWIN_GFX);
task->tState = 1;
task->tReshow = FALSE;
}
@@ -100,7 +100,7 @@ static void Task_MapNamePopup(u8 taskId)
if (task->tWindowExists && !task->tWindowCleared)
{
rbox_fill_rectangle(task->tWindowId);
- CopyWindowToVram(task->tWindowId, 1);
+ CopyWindowToVram(task->tWindowId, COPYWIN_MAP);
task->tWindowCleared = TRUE;
}
task->tState = 7;
@@ -183,7 +183,7 @@ static u16 MapNamePopupCreateWindow(bool32 palintoFadedBuffer)
DrawTextBorderOuter(windowId, r6, 0xD);
PutWindowTilemap(windowId);
MapNamePopupPrintMapNameOnWindow(windowId);
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_BOTH);
return windowId;
}
diff --git a/src/map_preview_screen.c b/src/map_preview_screen.c
index 33e69a8a0..91f2c64c9 100644
--- a/src/map_preview_screen.c
+++ b/src/map_preview_screen.c
@@ -479,7 +479,7 @@ static void Task_RunMapPreviewScreenForest(u8 taskId)
case 0:
if (!MapPreview_IsGfxLoadFinished() && !IsDma3ManagerBusyWithBgCopy())
{
- CopyWindowToVram(data[11], 3);
+ CopyWindowToVram(data[11], COPYWIN_BOTH);
data[0]++;
}
break;
diff --git a/src/math_util.c b/src/math_util.c
index 466a31921..f77c82608 100644
--- a/src/math_util.c
+++ b/src/math_util.c
@@ -1,6 +1,6 @@
#include "global.h"
-s16 sub_80D8AA0(s16 x, s16 y)
+s16 MathUtil_Mul16(s16 x, s16 y)
{
s32 result;
@@ -10,7 +10,7 @@ s16 sub_80D8AA0(s16 x, s16 y)
return result;
}
-s16 sub_80D8ABC(u8 s, s16 x, s16 y)
+s16 MathUtil_Mul16Shift(u8 s, s16 x, s16 y)
{
s32 result;
@@ -20,7 +20,7 @@ s16 sub_80D8ABC(u8 s, s16 x, s16 y)
return result;
}
-s32 sub_80D8AE0(s32 x, s32 y)
+s32 MathUtil_Mul32(s32 x, s32 y)
{
s64 result;
@@ -30,7 +30,7 @@ s32 sub_80D8AE0(s32 x, s32 y)
return result;
}
-s16 sub_80D8B1C(s16 x, s16 y)
+s16 MathUtil_Div16(s16 x, s16 y)
{
if (y == 0)
{
@@ -39,7 +39,7 @@ s16 sub_80D8B1C(s16 x, s16 y)
return (x << 8) / y;
}
-s16 sub_80D8B40(u8 s, s16 x, s16 y)
+s16 MathUtil_Div16Shift(u8 s, s16 x, s16 y)
{
if (y == 0)
{
@@ -48,7 +48,7 @@ s16 sub_80D8B40(u8 s, s16 x, s16 y)
return (x << s) / y;
}
-s32 sub_80D8B68(s32 x, s32 y)
+s32 MathUtil_Div32(s32 x, s32 y)
{
s64 _x;
@@ -61,7 +61,7 @@ s32 sub_80D8B68(s32 x, s32 y)
return _x / y;
}
-s16 sub_80D8B90(s16 y)
+s16 MathUtil_Inv16(s16 y)
{
s32 x;
@@ -69,7 +69,7 @@ s16 sub_80D8B90(s16 y)
return x / y;
}
-s16 sub_80D8BA8(u8 s, s16 y)
+s16 MathUtil_Inv16Shift(u8 s, s16 y)
{
s32 x;
@@ -77,7 +77,7 @@ s16 sub_80D8BA8(u8 s, s16 y)
return x / y;
}
-s32 sub_80D8BC8(s32 y)
+s32 MathUtil_Inv32(s32 y)
{
s64 x;
diff --git a/src/menu.c b/src/menu.c
index 03cdaed09..9b7abe642 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -44,7 +44,7 @@ void DrawDialogFrameWithCustomTileAndPalette(u8 windowId, bool8 copyToVram, u16
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
PutWindowTilemap(windowId);
if (copyToVram == TRUE)
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_BOTH);
}
// not used
@@ -56,7 +56,7 @@ static void DrawDialogFrameWithCustomTile(u8 windowId, bool8 copyToVram, u16 til
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
PutWindowTilemap(windowId);
if (copyToVram == TRUE)
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_BOTH);
}
static void WindowFunc_DrawDialogFrameWithCustomTileAndPalette(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
@@ -96,7 +96,7 @@ void ClearDialogWindowAndFrameToTransparent(u8 windowId, bool8 copyToVram)
FillWindowPixelBuffer(windowId, PIXEL_FILL(0));
ClearWindowTilemap(windowId);
if (copyToVram == TRUE)
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_BOTH);
}
static void WindowFunc_ClearDialogWindowAndFrameNullPalette(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
@@ -112,7 +112,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_BOTH);
}
// not used
@@ -124,7 +124,7 @@ static void DrawStdFrameWithCustomTile(u8 windowId, bool8 copyToVram, u16 baseTi
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
PutWindowTilemap(windowId);
if (copyToVram == TRUE)
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_BOTH);
}
static void WindowFunc_DrawStdFrameWithCustomTileAndPalette(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
@@ -145,7 +145,7 @@ void ClearStdWindowAndFrameToTransparent(u8 windowId, bool8 copyToVram)
FillWindowPixelBuffer(windowId, PIXEL_FILL(0));
ClearWindowTilemap(windowId);
if (copyToVram == TRUE)
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_BOTH);
}
static void WindowFunc_ClearStdWindowAndFrameToTransparent(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
@@ -195,7 +195,7 @@ void TopBarWindowPrintString(const u8 *string, u8 unused, bool8 copyToVram)
width = GetStringWidth(0, string, 0);
AddTextPrinterParameterized3(sTopBarWindowId, 0, -20 - width, 1, gUnknown_8456618, 0, string);
if (copyToVram)
- CopyWindowToVram(sTopBarWindowId, 3);
+ CopyWindowToVram(sTopBarWindowId, COPYWIN_BOTH);
}
}
@@ -228,7 +228,7 @@ void TopBarWindowPrintTwoStrings(const u8 *string, const u8 *string2, bool8 fgCo
}
AddTextPrinterParameterized4(sTopBarWindowId, 1, 4, 1, 0, 0, color, 0, string);
if (copyToVram)
- CopyWindowToVram(sTopBarWindowId, 3);
+ CopyWindowToVram(sTopBarWindowId, COPYWIN_BOTH);
}
}
@@ -236,7 +236,7 @@ void TopBarWindowPrintTwoStrings(const u8 *string, const u8 *string2, bool8 fgCo
static void CopyTopBarWindowToVram(void)
{
if (sTopBarWindowId != 0xFF)
- CopyWindowToVram(sTopBarWindowId, 3);
+ CopyWindowToVram(sTopBarWindowId, COPYWIN_BOTH);
}
void ClearTopBarWindow(void)
@@ -244,7 +244,7 @@ void ClearTopBarWindow(void)
if (sTopBarWindowId != 0xFF)
{
FillWindowPixelBuffer(sTopBarWindowId, PIXEL_FILL(15));
- CopyWindowToVram(sTopBarWindowId, 3);
+ CopyWindowToVram(sTopBarWindowId, COPYWIN_BOTH);
}
}
@@ -254,7 +254,7 @@ void DestroyTopBarWindow(void)
{
FillWindowPixelBuffer(sTopBarWindowId, PIXEL_FILL(0));
ClearWindowTilemap(sTopBarWindowId);
- CopyWindowToVram(sTopBarWindowId, 3);
+ CopyWindowToVram(sTopBarWindowId, COPYWIN_BOTH);
RemoveWindow(sTopBarWindowId);
sTopBarWindowId = 0xFF;
}
@@ -457,7 +457,7 @@ void PrintTextArray(u8 windowId, u8 fontId, u8 left, u8 top, u8 lineHeight, u8 i
for (i = 0; i < itemCount; i++)
AddTextPrinterParameterized(windowId, fontId, strs[i].text, left, (lineHeight * i) + top, 0xFF, NULL);
- CopyWindowToVram(windowId, 2);
+ CopyWindowToVram(windowId, COPYWIN_GFX);
}
void MultichoiceList_PrintItems(u8 windowId, u8 fontId, u8 left, u8 top, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, u8 letterSpacing, u8 lineSpacing)
@@ -466,7 +466,7 @@ void MultichoiceList_PrintItems(u8 windowId, u8 fontId, u8 left, u8 top, u8 line
for (i = 0; i < itemCount; i++)
AddTextPrinterParameterized5(windowId, fontId, strs[i].text, left, (lineHeight * i) + top, 0xFF, NULL, letterSpacing, lineSpacing);
- CopyWindowToVram(windowId, 2);
+ CopyWindowToVram(windowId, COPYWIN_GFX);
}
void UnionRoomAndTradeMenuPrintOptions(u8 windowId, u8 fontId, u8 lineHeight, u8 itemCount, const struct MenuAction *strs)
@@ -498,7 +498,7 @@ void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 l
printer.currentY = printer.y;
AddTextPrinter(&printer, 0xFF, NULL);
}
- CopyWindowToVram(windowId, 2);
+ CopyWindowToVram(windowId, COPYWIN_GFX);
}
// not used
@@ -583,7 +583,7 @@ void MultichoiceGrid_PrintItems(u8 windowId, u8 fontId, u8 itemWidth, u8 itemHei
for (i = 0; i < rows; ++i)
for (j = 0; j < cols; ++j)
AddTextPrinterParameterized(windowId, fontId, strs[i * cols + j].text, itemWidth * j + width, yOffset + itemHeight * i, 0xFF, 0);
- CopyWindowToVram(windowId, 2);
+ CopyWindowToVram(windowId, COPYWIN_GFX);
}
//not used
@@ -598,7 +598,7 @@ static void MultichoiceGrid_PrintItemsCustomOrder(u8 windowId, u8 fontId, u8 ite
for (i = 0; i < rows; ++i)
for (j = 0; j < cols; ++j)
AddTextPrinterParameterized(windowId, fontId, strs[orderArray[i * cols + j]].text, itemWidth * j + width, itemHeight * i, 0xFF, 0);
- CopyWindowToVram(windowId, 2);
+ CopyWindowToVram(windowId, COPYWIN_GFX);
}
static u8 MultichoiceGrid_InitCursorInternal(u8 windowId, u8 fontId, u8 left, u8 top, u8 optionWidth, u8 cursorHeight, u8 cols, u8 rows, u8 numChoices, u8 cursorPos)
diff --git a/src/menu_helpers.c b/src/menu_helpers.c
index a4794e1af..6649a543a 100644
--- a/src/menu_helpers.c
+++ b/src/menu_helpers.c
@@ -169,17 +169,17 @@ void ResetAllBgsCoordinatesAndBgCntRegs(void)
ChangeBgY(3, 0, 0);
}
-bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1)
+bool8 AdjustQuantityAccordingToDPadInput(s16 *quantity_p, u16 qmax)
{
- s16 valBefore = (*arg0);
+ s16 valBefore = (*quantity_p);
if (JOY_REPT(DPAD_ANY) == DPAD_UP)
{
- (*arg0)++;
- if ((*arg0) > arg1)
- (*arg0) = 1;
+ (*quantity_p)++;
+ if ((*quantity_p) > qmax)
+ (*quantity_p) = 1;
- if ((*arg0) == valBefore)
+ if ((*quantity_p) == valBefore)
{
return FALSE;
}
@@ -191,10 +191,10 @@ bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1)
}
else if (JOY_REPT(DPAD_ANY) == DPAD_DOWN)
{
- (*arg0)--;
- if ((*arg0) <= 0)
- (*arg0) = arg1;
- if ((*arg0) == valBefore)
+ (*quantity_p)--;
+ if ((*quantity_p) <= 0)
+ (*quantity_p) = qmax;
+ if ((*quantity_p) == valBefore)
{
return FALSE;
}
@@ -206,10 +206,10 @@ bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1)
}
else if (JOY_REPT(DPAD_ANY) == DPAD_RIGHT)
{
- (*arg0) += 10;
- if ((*arg0) > arg1)
- (*arg0) = arg1;
- if ((*arg0) == valBefore)
+ (*quantity_p) += 10;
+ if ((*quantity_p) > qmax)
+ (*quantity_p) = qmax;
+ if ((*quantity_p) == valBefore)
{
return FALSE;
}
@@ -221,10 +221,10 @@ bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1)
}
else if (JOY_REPT(DPAD_ANY) == DPAD_LEFT)
{
- (*arg0) -= 10;
- if ((*arg0) <= 0)
- (*arg0) = 1;
- if ((*arg0) == valBefore)
+ (*quantity_p) -= 10;
+ if ((*quantity_p) <= 0)
+ (*quantity_p) = 1;
+ if ((*quantity_p) == valBefore)
{
return FALSE;
}
diff --git a/src/mevent_show_card.c b/src/mevent_show_card.c
index 0452c60b9..a23f26f42 100644
--- a/src/mevent_show_card.c
+++ b/src/mevent_show_card.c
@@ -397,7 +397,7 @@ static void sub_8145D18(u8 whichWindow)
}
break;
}
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_BOTH);
}
static void sub_8146060(void)
diff --git a/src/mevent_show_news.c b/src/mevent_show_news.c
index 029a6ca99..df03e8aa2 100644
--- a/src/mevent_show_news.c
+++ b/src/mevent_show_news.c
@@ -326,8 +326,8 @@ static void sub_8146A30(void)
{
AddTextPrinterParameterized3(sWork->windowIds[1], 3, 0, 16 * i + 2, sTextPals[sWork->bgSpec->textPal2], 0, sWork->messages[i]);
}
- CopyWindowToVram(sWork->windowIds[0], 3);
- CopyWindowToVram(sWork->windowIds[1], 3);
+ CopyWindowToVram(sWork->windowIds[0], COPYWIN_BOTH);
+ CopyWindowToVram(sWork->windowIds[1], COPYWIN_BOTH);
}
static void sub_8146B58(void)
diff --git a/src/mon_markings.c b/src/mon_markings.c
index feb8a255a..7e44a77b0 100644
--- a/src/mon_markings.c
+++ b/src/mon_markings.c
@@ -507,8 +507,8 @@ static struct Sprite * CreateMonMarkingSprite(u16 tileTag, u16 paletteTag, const
return NULL;
}
-void sub_80BEBD0(u8 markings, void * dest)
+void RequestDma3LoadMonMarking(u8 markings, void * dest)
{
- RequestDma3Copy(&sMonMarkingsTiles[64 * markings], dest, 0x80, 1);
+ RequestDma3Copy(&sMonMarkingsTiles[64 * markings], dest, 0x80, DMA3_32BIT);
}
diff --git a/src/money.c b/src/money.c
index 3fa52bb8c..4fdb1311d 100644
--- a/src/money.c
+++ b/src/money.c
@@ -131,6 +131,6 @@ void DrawMoneyBox(int amount, u8 x, u8 y)
void HideMoneyBox(void)
{
ClearStdWindowAndFrameToTransparent(sMoneyBoxWindowId, FALSE);
- CopyWindowToVram(sMoneyBoxWindowId, 2);
+ CopyWindowToVram(sMoneyBoxWindowId, COPYWIN_GFX);
RemoveWindow(sMoneyBoxWindowId);
}
diff --git a/src/multiboot.c b/src/multiboot.c
index cfc9821d2..b44c421dc 100644
--- a/src/multiboot.c
+++ b/src/multiboot.c
@@ -1,7 +1,7 @@
#include "global.h"
#include "multiboot.h"
-static IWRAM_DATA u16 MultiBoot_required_data[MULTIBOOT_NCHILD];
+static u16 MultiBoot_required_data[MULTIBOOT_NCHILD];
static int MultiBootSend(struct MultiBootParam *mp, u16 data);
static int MultiBootHandShake(struct MultiBootParam *mp);
@@ -390,7 +390,7 @@ static int MultiBootHandShake(struct MultiBootParam *mp)
#undef must_data
}
-static void MultiBootWaitCycles(u32 cycles)
+static NOINLINE void MultiBootWaitCycles(u32 cycles)
{
asm("mov r2, pc");
asm("lsr r2, #24");
diff --git a/src/mystery_gift_menu.c b/src/mystery_gift_menu.c
index a207cee96..3c4766dcd 100644
--- a/src/mystery_gift_menu.c
+++ b/src/mystery_gift_menu.c
@@ -478,7 +478,7 @@ void PrintMysteryGiftOrEReaderTopMenu(bool8 mg_or_ereader, bool32 usePickOkCance
AddTextPrinterParameterized4(0, 2, 2, 2, 0, 0, sMG_Ereader_TextColor_1, 0, gJPText_MysteryGift);
AddTextPrinterParameterized4(0, 0, 0x78, 2, 0, 0, sMG_Ereader_TextColor_1, 0, gJPText_DecideStop);
}
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
PutWindowTilemap(0);
}
@@ -530,14 +530,14 @@ void AddTextPrinterToWindow1(const u8 *str)
AddTextPrinterParameterized4(1, 2, 0, 2, 0, 2, sMG_Ereader_TextColor_2, 0, gStringVar4);
DrawTextBorderOuter(1, 0x001, 0xF);
PutWindowTilemap(1);
- CopyWindowToVram(1, 3);
+ CopyWindowToVram(1, COPYWIN_BOTH);
}
void ClearTextWindow(void)
{
rbox_fill_rectangle(1);
ClearWindowTilemap(1);
- CopyWindowToVram(1, 1);
+ CopyWindowToVram(1, COPYWIN_MAP);
}
bool32 MG_PrintTextOnWindow1AndWaitButton(u8 *textState, const u8 *str)
@@ -645,7 +645,7 @@ u32 MysteryGift_HandleThreeOptionMenu(u8 * unused0, u16 * unused1, u8 whichMenu)
if (response != -1)
{
ClearWindowTilemap(2);
- CopyWindowToVram(2, 1);
+ CopyWindowToVram(2, COPYWIN_MAP);
}
return response;
}
@@ -670,7 +670,7 @@ s8 mevent_message_print_and_prompt_yes_no(u8 * textState, u16 * windowId, bool8
FillWindowPixelBuffer(*windowId, 0x11);
AddTextPrinterParameterized4(*windowId, 2, 0, 2, 0, 2, sMG_Ereader_TextColor_2, 0, gStringVar4);
DrawTextBorderOuter(*windowId, 0x001, 0x0F);
- CopyWindowToVram(*windowId, 2);
+ CopyWindowToVram(*windowId, COPYWIN_GFX);
PutWindowTilemap(*windowId);
(*textState)++;
break;
@@ -694,7 +694,7 @@ s8 mevent_message_print_and_prompt_yes_no(u8 * textState, u16 * windowId, bool8
*textState = 0;
rbox_fill_rectangle(*windowId);
ClearWindowTilemap(*windowId);
- CopyWindowToVram(*windowId, 1);
+ CopyWindowToVram(*windowId, COPYWIN_MAP);
RemoveWindow(*windowId);
return input;
}
@@ -703,7 +703,7 @@ s8 mevent_message_print_and_prompt_yes_no(u8 * textState, u16 * windowId, bool8
*textState = 0;
rbox_fill_rectangle(*windowId);
ClearWindowTilemap(*windowId);
- CopyWindowToVram(*windowId, 1);
+ CopyWindowToVram(*windowId, COPYWIN_MAP);
RemoveWindow(*windowId);
return -1;
}
@@ -731,7 +731,7 @@ s32 HandleMysteryGiftListMenu(u8 * textState, u16 * windowId, bool32 cannotToss,
FillWindowPixelBuffer(*windowId, 0x11);
AddTextPrinterParameterized4(*windowId, 2, 0, 2, 0, 2, sMG_Ereader_TextColor_2, 0, gStringVar4);
DrawTextBorderOuter(*windowId, 0x001, 0x0F);
- CopyWindowToVram(*windowId, 2);
+ CopyWindowToVram(*windowId, COPYWIN_GFX);
PutWindowTilemap(*windowId);
(*textState)++;
break;
@@ -764,7 +764,7 @@ s32 HandleMysteryGiftListMenu(u8 * textState, u16 * windowId, bool32 cannotToss,
*textState = 0;
rbox_fill_rectangle(*windowId);
ClearWindowTilemap(*windowId);
- CopyWindowToVram(*windowId, 1);
+ CopyWindowToVram(*windowId, COPYWIN_MAP);
RemoveWindow(*windowId);
return input;
}
@@ -773,7 +773,7 @@ s32 HandleMysteryGiftListMenu(u8 * textState, u16 * windowId, bool32 cannotToss,
*textState = 0;
rbox_fill_rectangle(*windowId);
ClearWindowTilemap(*windowId);
- CopyWindowToVram(*windowId, 1);
+ CopyWindowToVram(*windowId, COPYWIN_MAP);
RemoveWindow(*windowId);
return -2;
}
@@ -1252,7 +1252,7 @@ void task00_mystery_gift(u8 taskId)
data->state = 6;
break;
case 6:
- if (gReceivedRemoteLinkPlayers != 0)
+ if (gReceivedRemoteLinkPlayers)
{
ClearScreenInBg0(TRUE);
data->state = 7;
@@ -1600,7 +1600,7 @@ void task00_mystery_gift(u8 taskId)
}
break;
case 30:
- if (gReceivedRemoteLinkPlayers != 0)
+ if (gReceivedRemoteLinkPlayers)
{
ClearScreenInBg0(1);
data->state = 31;
diff --git a/src/naming_screen.c b/src/naming_screen.c
index 1a41c8c0b..5d00cefbc 100644
--- a/src/naming_screen.c
+++ b/src/naming_screen.c
@@ -708,7 +708,7 @@ static void pokemon_transfer_to_pc_with_message(void)
DrawDialogueFrame(0, FALSE);
gTextFlags.canABSpeedUpPrint = TRUE;
AddTextPrinterParameterized2(0, 2, gStringVar4, GetTextSpeedSetting(), NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GREY);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_BOTH);
}
static bool8 sub_809E1D4(void)
@@ -1804,7 +1804,7 @@ static void PrintBufferCharactersOnScreen(void)
}
CallAddGenderIconFunc();
- CopyWindowToVram(sNamingScreenData->windows[2], 2);
+ CopyWindowToVram(sNamingScreenData->windows[2], COPYWIN_GFX);
PutWindowTilemap(sNamingScreenData->windows[2]);
}
@@ -1887,7 +1887,7 @@ static void sub_809FAE4(void)
FillWindowPixelBuffer(sNamingScreenData->windows[4], PIXEL_FILL(15));
AddTextPrinterParameterized3(sNamingScreenData->windows[4], 0, 236 - strwidth, 0, color, 0, gText_MoveOkBack);
PutWindowTilemap(sNamingScreenData->windows[4]);
- CopyWindowToVram(sNamingScreenData->windows[4], 3);
+ CopyWindowToVram(sNamingScreenData->windows[4], COPYWIN_BOTH);
}
static void sub_809FB70(void)
diff --git a/src/new_menu_helpers.c b/src/new_menu_helpers.c
index 9da0dea80..556d83a69 100644
--- a/src/new_menu_helpers.c
+++ b/src/new_menu_helpers.c
@@ -299,7 +299,7 @@ void DecompressAndLoadBgGfxUsingHeap2(u8 bgId, const void *src, u32 size, u16 of
static void TaskFreeBufAfterCopyingTileDataToVram(u8 taskId)
{
- if (!CheckForSpaceForDma3Request(gTasks[taskId].data[0]))
+ if (!WaitDma3Request(gTasks[taskId].data[0]))
{
Free((void *)GetWordTaskArg(taskId, 1));
DestroyTask(taskId);
@@ -471,7 +471,7 @@ void DrawDialogueFrame(u8 windowId, bool8 copyToVram)
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
PutWindowTilemap(windowId);
if (copyToVram == TRUE)
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_BOTH);
}
void DrawStdWindowFrame(u8 windowId, bool8 copyToVram)
@@ -480,7 +480,7 @@ void DrawStdWindowFrame(u8 windowId, bool8 copyToVram)
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
PutWindowTilemap(windowId);
if (copyToVram == TRUE)
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_BOTH);
}
void ClearDialogWindowAndFrame(u8 windowId, bool8 copyToVram)
@@ -489,7 +489,7 @@ void ClearDialogWindowAndFrame(u8 windowId, bool8 copyToVram)
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
ClearWindowTilemap(windowId);
if (copyToVram == TRUE)
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_BOTH);
if (gQuestLogState == QL_STATE_PLAYBACK)
CommitQuestLogWindow1();
}
@@ -500,7 +500,7 @@ void ClearStdWindowAndFrame(u8 windowId, bool8 copyToVram)
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
ClearWindowTilemap(windowId);
if (copyToVram == TRUE)
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_BOTH);
}
static void WindowFunc_DrawStandardFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
@@ -644,7 +644,7 @@ void DisplayItemMessageOnField(u8 taskId, u8 textSpeed, const u8 *string, TaskFu
{
LoadStdWindowFrameGfx();
DisplayMessageAndContinueTask(taskId, 0, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM, textSpeed, GetTextSpeedSetting(), string, callback);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_BOTH);
}
void DisplayYesNoMenuDefaultYes(void)
diff --git a/src/oak_speech.c b/src/oak_speech.c
index 3d0c656d7..e279091c2 100644
--- a/src/oak_speech.c
+++ b/src/oak_speech.c
@@ -584,7 +584,7 @@ static void CreateHelpDocsPage1(void)
PutWindowTilemap(sOakSpeechResources->unk_0014[0]);
FillWindowPixelBuffer(sOakSpeechResources->unk_0014[0], 0x00);
AddTextPrinterParameterized4(sOakSpeechResources->unk_0014[0], 2, 2, 0, 1, 1, sTextColor_HelpSystem, 0, gNewGame_HelpDocs1);
- CopyWindowToVram(sOakSpeechResources->unk_0014[0], 3);
+ CopyWindowToVram(sOakSpeechResources->unk_0014[0], COPYWIN_BOTH);
FillBgTilemapBufferRect_Palette0(1, 0x3000, 1, 3, 5, 16);
CopyBgTilemapBufferToVram(1);
}
@@ -606,7 +606,7 @@ static void Task_OakSpeech4(u8 taskId)
PutWindowTilemap(sOakSpeechResources->unk_0014[i]);
FillWindowPixelBuffer(sOakSpeechResources->unk_0014[i], 0x00);
AddTextPrinterParameterized4(sOakSpeechResources->unk_0014[i], 2, 6, 0, 1, 1, sTextColor_HelpSystem, 0, sHelpDocsPtrs[i + r7 * 3]);
- CopyWindowToVram(sOakSpeechResources->unk_0014[i], 3);
+ CopyWindowToVram(sOakSpeechResources->unk_0014[i], COPYWIN_BOTH);
}
if (sOakSpeechResources->unk_0012 == 1)
@@ -675,7 +675,7 @@ static void Task_OakSpeech3(u8 taskId)
{
FillWindowPixelBuffer(sOakSpeechResources->unk_0014[i], 0x00);
ClearWindowTilemap(sOakSpeechResources->unk_0014[i]);
- CopyWindowToVram(sOakSpeechResources->unk_0014[i], 3);
+ CopyWindowToVram(sOakSpeechResources->unk_0014[i], COPYWIN_BOTH);
RemoveWindow(sOakSpeechResources->unk_0014[i]);
sOakSpeechResources->unk_0014[i] = 0;
}
@@ -699,7 +699,7 @@ static void Task_OakSpeech5(u8 taskId)
{
FillWindowPixelBuffer(sOakSpeechResources->unk_0014[i], 0x00);
ClearWindowTilemap(sOakSpeechResources->unk_0014[i]);
- CopyWindowToVram(sOakSpeechResources->unk_0014[i], 3);
+ CopyWindowToVram(sOakSpeechResources->unk_0014[i], COPYWIN_BOTH);
RemoveWindow(sOakSpeechResources->unk_0014[i]);
sOakSpeechResources->unk_0014[i] = 0;
}
@@ -733,7 +733,7 @@ static void Task_OakSpeech6(u8 taskId)
data[14] = AddWindow(&sNewGameAdventureIntroWindowTemplates[0]);
PutWindowTilemap(data[14]);
FillWindowPixelBuffer(data[14], 0x00);
- CopyWindowToVram(data[14], 3);
+ CopyWindowToVram(data[14], COPYWIN_BOTH);
sOakSpeechResources->unk_0012 = 0;
gMain.state = 0;
data[15] = 16;
@@ -856,7 +856,7 @@ static void Task_OakSpeech8(u8 taskId)
DestroyTopBarWindow();
FillWindowPixelBuffer(data[14], 0x00);
ClearWindowTilemap(data[14]);
- CopyWindowToVram(data[14], 3);
+ CopyWindowToVram(data[14], COPYWIN_BOTH);
RemoveWindow(data[14]);
data[14] = 0;
FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 30, 20);
@@ -902,7 +902,7 @@ static void Task_OakSpeech9(u8 taskId)
{ \
AddTextPrinterParameterized2(0, 4, str, speed, NULL, 2, 1, 3); \
} \
- CopyWindowToVram(0, 3); \
+ CopyWindowToVram(0, COPYWIN_BOTH); \
})
static void Task_OakSpeech10(u8 taskId)
@@ -1072,7 +1072,7 @@ static void Task_OakSpeech19(u8 taskId)
sOakSpeechResources->textColor[2] = 3;
AddTextPrinterParameterized3(gTasks[taskId].data[13], 2, 8, 17, sOakSpeechResources->textColor, 0, gText_Girl);
Menu_InitCursor(gTasks[taskId].data[13], 2, 0, 1, GetFontAttribute(2, 1) + 2, 2, 0);
- CopyWindowToVram(gTasks[taskId].data[13], 3);
+ CopyWindowToVram(gTasks[taskId].data[13], COPYWIN_BOTH);
gTasks[taskId].func = Task_OakSpeech20;
}
}
@@ -1419,8 +1419,8 @@ static void Task_OakSpeech39(u8 taskId)
PlaySE(SE_TK_WARPIN);
r0 = data[2];
data[2] -= 32;
- x = sub_80D8B90(r0 - 8);
- y = sub_80D8B90(data[2] - 16);
+ x = MathUtil_Inv16(r0 - 8);
+ y = MathUtil_Inv16(data[2] - 16);
SetBgAffine(2, 0x7800, 0x5400, 0x78, 0x54, x, y, 0);
if (data[2] <= 96)
{
@@ -1869,7 +1869,7 @@ static void PrintNameChoiceOptions(u8 taskId, u8 state)
AddTextPrinterParameterized(data[13], 2, textPtrs[i], 8, 16 * (i + 1) + 1, 0, NULL);
}
Menu_InitCursor(data[13], 2, 0, 1, 16, 5, 0);
- CopyWindowToVram(data[13], 3);
+ CopyWindowToVram(data[13], COPYWIN_BOTH);
}
static void GetDefaultName(u8 arg0, u8 namePick)
diff --git a/src/option_menu.c b/src/option_menu.c
index 5a7bc42e4..383f21ae1 100644
--- a/src/option_menu.c
+++ b/src/option_menu.c
@@ -318,7 +318,7 @@ static void OptionMenu_PickSwitchCancel(void)
FillWindowPixelBuffer(2, PIXEL_FILL(15));
AddTextPrinterParameterized3(2, 0, x, 0, sOptionMenuPickSwitchCancelTextColor, 0, gText_PickSwitchCancel);
PutWindowTilemap(2);
- CopyWindowToVram(2, 3);
+ CopyWindowToVram(2, COPYWIN_BOTH);
}
static void OptionMenu_ResetSpriteData(void)
@@ -500,7 +500,7 @@ static void BufferOptionMenuString(u8 selection)
break;
}
PutWindowTilemap(1);
- CopyWindowToVram(1, 3);
+ CopyWindowToVram(1, COPYWIN_BOTH);
}
static void CloseAndSaveOptionMenu(u8 taskId)
@@ -524,7 +524,7 @@ static void PrintOptionMenuHeader(void)
FillWindowPixelBuffer(0, PIXEL_FILL(1));
AddTextPrinterParameterized(WIN_TEXT_OPTION, 2, gText_MenuOption, 8, 1, TEXT_SPEED_FF, NULL);
PutWindowTilemap(0);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_BOTH);
}
static void DrawOptionMenuBg(void)
diff --git a/src/overworld.c b/src/overworld.c
index f36429dde..505541e51 100644
--- a/src/overworld.c
+++ b/src/overworld.c
@@ -3192,7 +3192,7 @@ bool32 Overworld_LinkRecvQueueLengthMoreThan2(void)
return sReceivingFromLink;
}
-bool32 sub_8058274(void)
+bool32 Overworld_RecvKeysFromLinkIsRunning(void)
{
u8 temp;
@@ -3218,7 +3218,7 @@ bool32 sub_8058274(void)
return FALSE;
}
-bool32 sub_80582E0(void)
+bool32 Overworld_SendKeysToLinkIsRunning(void)
{
if (GetLinkSendQueueLength() < 2)
return FALSE;
@@ -3232,7 +3232,7 @@ bool32 sub_80582E0(void)
return FALSE;
}
-bool32 sub_8058318(void)
+bool32 IsSendingKeysOverCable(void)
{
if (gWirelessCommType != 0)
return FALSE;
@@ -3298,17 +3298,17 @@ static void InitLinkPlayerObjectEventPos(struct ObjectEvent *objEvent, s16 x, s1
ObjectEventUpdateZCoord(objEvent);
}
-static void sub_8058488(u8 linkPlayerId, u8 a2)
+static void SetLinkPlayerObjectRange(u8 linkPlayerId, u8 range)
{
if (gLinkPlayerObjectEvents[linkPlayerId].active)
{
u8 objEventId = gLinkPlayerObjectEvents[linkPlayerId].objEventId;
struct ObjectEvent *objEvent = &gObjectEvents[objEventId];
- objEvent->range.as_byte = a2;
+ objEvent->range.as_byte = range;
}
}
-static void sub_80584B8(u8 linkPlayerId)
+static void DestroyLinkPlayerOBject(u8 linkPlayerId)
{
struct LinkPlayerObjectEvent *linkPlayerObjEvent = &gLinkPlayerObjectEvents[linkPlayerId];
u8 objEventId = linkPlayerObjEvent->objEventId;
@@ -3349,7 +3349,7 @@ static u8 GetLinkPlayerElevation(u8 linkPlayerId)
return objEvent->currentElevation;
}
-static s32 sub_8058590(u8 linkPlayerId)
+static s32 GetLinkPlayerObjectStepTimer(u8 linkPlayerId)
{
u8 objEventId = gLinkPlayerObjectEvents[linkPlayerId].objEventId;
struct ObjectEvent *objEvent = &gObjectEvents[objEventId];
diff --git a/src/party_menu.c b/src/party_menu.c
index 93c6c6398..b8ad7d830 100644
--- a/src/party_menu.c
+++ b/src/party_menu.c
@@ -731,7 +731,7 @@ static void RenderPartyMenuBox(u8 slot)
{
DisplayPartyPokemonDataForMultiBattle(slot);
LoadPartyBoxPalette(&sPartyMenuBoxes[slot], PARTY_PAL_MULTI_ALT);
- CopyWindowToVram(sPartyMenuBoxes[slot].windowId, 2);
+ CopyWindowToVram(sPartyMenuBoxes[slot].windowId, COPYWIN_GFX);
PutWindowTilemap(sPartyMenuBoxes[slot].windowId);
ScheduleBgCopyTilemapToVram(2);
}
@@ -740,7 +740,7 @@ static void RenderPartyMenuBox(u8 slot)
if (GetMonData(&gPlayerParty[slot], MON_DATA_SPECIES) == SPECIES_NONE)
{
DrawEmptySlot(sPartyMenuBoxes[slot].windowId);
- CopyWindowToVram(sPartyMenuBoxes[slot].windowId, 2);
+ CopyWindowToVram(sPartyMenuBoxes[slot].windowId, COPYWIN_GFX);
}
else
{
@@ -2159,7 +2159,7 @@ static void CreateCancelConfirmWindows(bool8 chooseHalf)
FillWindowPixelBuffer(confirmWindowId, PIXEL_FILL(0));
AddTextPrinterParameterized4(confirmWindowId, 0, (48 - GetStringWidth(0, gMenuText_Confirm, 0)) / 2u, 1, 0, 0, sFontColorTable[0], -1, gMenuText_Confirm);
PutWindowTilemap(confirmWindowId);
- CopyWindowToVram(confirmWindowId, 2);
+ CopyWindowToVram(confirmWindowId, COPYWIN_GFX);
cancelWindowId = AddWindow(&sMultiCancelButtonWindowTemplate);
offset = 0;
}
@@ -2181,7 +2181,7 @@ static void CreateCancelConfirmWindows(bool8 chooseHalf)
AddTextPrinterParameterized3(cancelWindowId, 0, offset, 1, sFontColorTable[0], -1, gOtherText_Exit);
}
PutWindowTilemap(cancelWindowId);
- CopyWindowToVram(cancelWindowId, 2);
+ CopyWindowToVram(cancelWindowId, COPYWIN_GFX);
ScheduleBgCopyTilemapToVram(0);
}
}
@@ -2467,7 +2467,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)
@@ -5132,7 +5132,7 @@ static void DisplayLevelUpStatsPg1(u8 taskId)
arrayPtr[12] = CreateLevelUpStatsWindow();
DrawLevelUpWindowPg1(arrayPtr[12], arrayPtr, &arrayPtr[6], 1, 2, 3);
- CopyWindowToVram(arrayPtr[12], 2);
+ CopyWindowToVram(arrayPtr[12], COPYWIN_GFX);
ScheduleBgCopyTilemapToVram(2);
}
@@ -5141,7 +5141,7 @@ static void DisplayLevelUpStatsPg2(u8 taskId)
s16 *arrayPtr = sPartyMenuInternal->data;
DrawLevelUpWindowPg2(arrayPtr[12], &arrayPtr[6], 1, 2, 3);
- CopyWindowToVram(arrayPtr[12], 2);
+ CopyWindowToVram(arrayPtr[12], COPYWIN_GFX);
ScheduleBgCopyTilemapToVram(2);
}
diff --git a/src/play_time.c b/src/play_time.c
index 04f4b2040..966840505 100644
--- a/src/play_time.c
+++ b/src/play_time.c
@@ -1,6 +1,6 @@
#include "play_time.h"
-static IWRAM_DATA u8 sPlayTimeCounterState;
+static u8 sPlayTimeCounterState;
enum
{
diff --git a/src/player_pc.c b/src/player_pc.c
index 1c6c9c3d4..63131f83e 100644
--- a/src/player_pc.c
+++ b/src/player_pc.c
@@ -392,7 +392,7 @@ static void Task_WithdrawItem_WaitFadeAndGoToItemStorage(u8 taskId)
static void Task_WithdrawItemBeginFade(u8 taskId)
{
gTasks[taskId].func = Task_WithdrawItem_WaitFadeAndGoToItemStorage;
- ItemPc_SetInitializedFlag(0);
+ ItemPc_SetInitializedFlag(FALSE);
FadeScreen(FADE_TO_BLACK, 0);
}
@@ -401,7 +401,7 @@ static void Task_PlayerPcCancel(u8 taskId)
s16 *data = gTasks[taskId].data;
ClearStdWindowAndFrameToTransparent(tWindowId, FALSE);
ClearWindowTilemap(tWindowId);
- CopyWindowToVram(tWindowId, 1);
+ CopyWindowToVram(tWindowId, COPYWIN_MAP);
RemoveWindow(tWindowId);
Task_ReturnToTopMenu(taskId);
}
diff --git a/src/pokedex_screen.c b/src/pokedex_screen.c
index d80a2eefa..2216a94df 100644
--- a/src/pokedex_screen.c
+++ b/src/pokedex_screen.c
@@ -516,11 +516,11 @@ void sub_8102C28(void)
FillWindowPixelBuffer(1, PIXEL_FILL(15));
sub_8104C2C(gUnknown_8415DB8);
PutWindowTilemap(0);
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
PutWindowTilemap(1);
- CopyWindowToVram(1, 2);
+ CopyWindowToVram(1, COPYWIN_GFX);
PutWindowTilemap(gUnknown_203ACF0->field_16);
- CopyWindowToVram(gUnknown_203ACF0->field_16, 2);
+ CopyWindowToVram(gUnknown_203ACF0->field_16, COPYWIN_GFX);
}
void sub_8102EC0(s32 itemIndex, bool8 onInit, struct ListMenu *list)
@@ -538,7 +538,7 @@ void sub_8102EC0(s32 itemIndex, bool8 onInit, struct ListMenu *list)
LoadPalette(gUnknown_84520F4[itemIndex].pal, 0x10, 0x20);
}
PutWindowTilemap(gUnknown_203ACF0->field_15);
- CopyWindowToVram(gUnknown_203ACF0->field_15, 2);
+ CopyWindowToVram(gUnknown_203ACF0->field_15, COPYWIN_GFX);
}
void sub_8102F48(u8 windowId, s32 itemId, u8 y)
@@ -631,8 +631,8 @@ void sub_810317C(void)
sub_8106E78(gUnknown_8415F3D, 1);
FillWindowPixelBuffer(1, PIXEL_FILL(15));
sub_8104C2C(gText_PickOKExit);
- CopyWindowToVram(0, 2);
- CopyWindowToVram(1, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
+ CopyWindowToVram(1, COPYWIN_GFX);
}
void sub_8103238(u8 taskId)
@@ -717,8 +717,8 @@ void sub_810345C(void)
sub_8106E78(gUnknown_8415F4A, 1);
FillWindowPixelBuffer(1, PIXEL_FILL(15));
sub_8104C2C(gText_PickOKExit);
- CopyWindowToVram(0, 2);
- CopyWindowToVram(1, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
+ CopyWindowToVram(1, COPYWIN_GFX);
}
u16 sub_8103518(u8 a0)
@@ -1841,7 +1841,7 @@ bool8 sub_8104C64(u16 a0, u8 a1, u8 a2)
FillWindowPixelBuffer(gUnknown_203ACF0->field_20[a1], PIXEL_FILL(0));
sub_81049FC(gUnknown_203ACF0->field_20[a1], a0, a1 * 16 + 16);
PutWindowTilemap(gUnknown_203ACF0->field_20[a1]);
- CopyWindowToVram(gUnknown_203ACF0->field_20[a1], 2);
+ CopyWindowToVram(gUnknown_203ACF0->field_20[a1], COPYWIN_GFX);
}
else
PutWindowTilemap(gUnknown_203ACF0->field_20[a1]);
@@ -1861,7 +1861,7 @@ bool8 sub_8104C64(u16 a0, u8 a1, u8 a2)
if (sub_8104AB0(a0, FLAG_GET_CAUGHT, TRUE))
BlitBitmapRectToWindow(gUnknown_203ACF0->field_24[a1], gUnknown_8443600, 0, 0, 8, 8, 2, 3, 8, 8);
PutWindowTilemap(gUnknown_203ACF0->field_24[a1]);
- CopyWindowToVram(gUnknown_203ACF0->field_24[a1], 2);
+ CopyWindowToVram(gUnknown_203ACF0->field_24[a1], COPYWIN_GFX);
}
}
else
@@ -1906,11 +1906,11 @@ bool8 sub_8104F0C(bool8 a0)
sub_8106E78(gDexCategoryNamePtrs[gUnknown_203ACF0->field_28], 0);
sub_8104EC0(0, sub_8106AF8(gUnknown_203ACF0->field_2B), sub_8106AF8(gUnknown_203ACF0->field_2A - 1), 160, 2);
}
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
FillWindowPixelBuffer(1, PIXEL_FILL(15));
if (!a0)
sub_8104C2C(gUnknown_8415F6C);
- CopyWindowToVram(1, 2);
+ CopyWindowToVram(1, COPYWIN_GFX);
if (gUnknown_203ACF0->field_18[0] != 0xFFFF)
sub_8104C64(gUnknown_203ACF0->field_18[0], 0, gUnknown_203ACF0->field_2C);
if (gUnknown_203ACF0->field_18[1] != 0xFFFF)
diff --git a/src/pokemon_jump.c b/src/pokemon_jump.c
index 063176151..2b2d77d91 100644
--- a/src/pokemon_jump.c
+++ b/src/pokemon_jump.c
@@ -234,7 +234,7 @@ static void sub_8147A34(u8 taskId)
u16 packet[6];
s16 *data = gTasks[taskId].data;
- if (gReceivedRemoteLinkPlayers != 0)
+ if (gReceivedRemoteLinkPlayers)
{
if (gRecvCmds[0][1] == 0x7FFF)
data[11] = gRecvCmds[0][2];
diff --git a/src/pokemon_jump_2.c b/src/pokemon_jump_2.c
index 9f2f9e404..f1f6e2906 100644
--- a/src/pokemon_jump_2.c
+++ b/src/pokemon_jump_2.c
@@ -1003,12 +1003,12 @@ static bool32 sub_814881C(void)
case 2:
if (sub_8149804())
{
- CreateTask(sub_80DA634, 6);
+ CreateTask(Task_SaveGame_UpdatedLinkRecords, 6);
gUnknown_203F3D4->unk8++;
}
break;
case 3:
- if (!FuncIsActiveTask(sub_80DA634))
+ if (!FuncIsActiveTask(Task_SaveGame_UpdatedLinkRecords))
{
sub_814A6CC();
gUnknown_203F3D4->unk8++;
diff --git a/src/pokemon_jump_4.c b/src/pokemon_jump_4.c
index 123aafdc1..f72710c42 100644
--- a/src/pokemon_jump_4.c
+++ b/src/pokemon_jump_4.c
@@ -337,7 +337,7 @@ static void sub_814A0C8(void)
case 0:
gUnknown_203F3D8->unk12 = sub_814A754(1, 8, 20, 2);
AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gText_WantToPlayAgain2, 0, 2, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(gUnknown_203F3D8->unk12, 2);
+ CopyWindowToVram(gUnknown_203F3D8->unk12, COPYWIN_GFX);
gUnknown_203F3D8->unk4++;
break;
case 1:
@@ -364,7 +364,7 @@ static void sub_814A174(void)
case 0:
gUnknown_203F3D8->unk12 = sub_814A754(2, 7, 26, 4);
AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gText_SavingDontTurnOffPower, 0, 2, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(gUnknown_203F3D8->unk12, 2);
+ CopyWindowToVram(gUnknown_203F3D8->unk12, COPYWIN_GFX);
gUnknown_203F3D8->unk4++;
break;
case 1:
@@ -407,7 +407,7 @@ static void sub_814A264(void)
case 0:
gUnknown_203F3D8->unk12 = sub_814A754(2, 8, 22, 4);
AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gText_SomeoneDroppedOut2, 0, 2, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(gUnknown_203F3D8->unk12, 2);
+ CopyWindowToVram(gUnknown_203F3D8->unk12, COPYWIN_GFX);
gUnknown_203F3D8->unk4++;
break;
case 1:
@@ -433,7 +433,7 @@ static void sub_814A308(void)
case 0:
gUnknown_203F3D8->unk12 = sub_814A754(7, 10, 16, 2);
AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gText_CommunicationStandby4, 0, 2, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(gUnknown_203F3D8->unk12, 2);
+ CopyWindowToVram(gUnknown_203F3D8->unk12, COPYWIN_GFX);
gUnknown_203F3D8->unk4++;
break;
case 1:
@@ -526,7 +526,7 @@ void sub_814A468(u16 itemId, u16 quantity)
DynamicPlaceholderTextUtil_ExpandPlaceholders(gUnknown_203F3D8->strBuff, gText_AwesomeWonF701F700);
gUnknown_203F3D8->unk12 = sub_814A754(4, 8, 22, 4);
AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gUnknown_203F3D8->strBuff, 0, 2, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(gUnknown_203F3D8->unk12, 2);
+ CopyWindowToVram(gUnknown_203F3D8->unk12, COPYWIN_GFX);
gUnknown_203F3D8->unk14 = MUS_FANFA1;
gUnknown_203F3D8->unkD = 0;
}
@@ -539,7 +539,7 @@ void sub_814A53C(u16 itemId)
DynamicPlaceholderTextUtil_ExpandPlaceholders(gUnknown_203F3D8->strBuff, gText_FilledStorageSpace2);
gUnknown_203F3D8->unk12 = sub_814A754(4, 8, 22, 4);
AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gUnknown_203F3D8->strBuff, 0, 2, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(gUnknown_203F3D8->unk12, 2);
+ CopyWindowToVram(gUnknown_203F3D8->unk12, COPYWIN_GFX);
gUnknown_203F3D8->unk14 = 0;
gUnknown_203F3D8->unkD = 0;
}
@@ -552,7 +552,7 @@ void sub_814A5B4(u16 itemId)
DynamicPlaceholderTextUtil_ExpandPlaceholders(gUnknown_203F3D8->strBuff, gText_CantHoldMore);
gUnknown_203F3D8->unk12 = sub_814A754(4, 9, 22, 2);
AddTextPrinterParameterized(gUnknown_203F3D8->unk12, 2, gUnknown_203F3D8->strBuff, 0, 2, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(gUnknown_203F3D8->unk12, 2);
+ CopyWindowToVram(gUnknown_203F3D8->unk12, COPYWIN_GFX);
gUnknown_203F3D8->unk14 = 0;
gUnknown_203F3D8->unkD = 0;
}
@@ -596,7 +596,7 @@ void sub_814A6CC(void)
if (gUnknown_203F3D8->unk12 != 0xFF)
{
rbox_fill_rectangle(gUnknown_203F3D8->unk12);
- CopyWindowToVram(gUnknown_203F3D8->unk12, 1);
+ CopyWindowToVram(gUnknown_203F3D8->unk12, COPYWIN_MAP);
gUnknown_203F3D8->unkD = 0;
}
}
@@ -857,7 +857,7 @@ static void sub_814AB98(int multiplayerId, u8 clr1, u8 clr2, u8 clr3)
x = 64 - GetStringWidth(0, sub_81499E0(multiplayerId), -1);
x /= 2;
AddTextPrinterParameterized3(gUnknown_203F3D8->unk1C[multiplayerId], 0, x, 2, colors, -1, sub_81499E0(multiplayerId));
- CopyWindowToVram(gUnknown_203F3D8->unk1C[multiplayerId], 2);
+ CopyWindowToVram(gUnknown_203F3D8->unk1C[multiplayerId], COPYWIN_GFX);
}
static void sub_814AC30(bool32 arg0)
diff --git a/src/pokemon_jump_6.c b/src/pokemon_jump_6.c
index 1e213ad75..575c5c8a1 100644
--- a/src/pokemon_jump_6.c
+++ b/src/pokemon_jump_6.c
@@ -76,7 +76,7 @@ static void Task_ShowPokemonJumpRecords(u8 taskId)
case 0:
data[1] = AddWindow(&gUnknown_846E2CC);
sub_814B5C4(data[1]);
- CopyWindowToVram(data[1], 3);
+ CopyWindowToVram(data[1], COPYWIN_BOTH);
data[0]++;
break;
case 1:
@@ -87,7 +87,7 @@ static void Task_ShowPokemonJumpRecords(u8 taskId)
if (JOY_NEW(A_BUTTON | B_BUTTON))
{
rbox_fill_rectangle(data[1]);
- CopyWindowToVram(data[1], 1);
+ CopyWindowToVram(data[1], COPYWIN_MAP);
data[0]++;
}
break;
diff --git a/src/pokemon_special_anim_scene.c b/src/pokemon_special_anim_scene.c
index 2d65c24a7..b2e04e7e0 100644
--- a/src/pokemon_special_anim_scene.c
+++ b/src/pokemon_special_anim_scene.c
@@ -336,12 +336,12 @@ void InitPokemonSpecialAnimScene(struct PokemonSpecialAnimScene * buffer, u16 an
ChangeBgY(3, 0, 0);
SetBgTilemapBuffer(0, buffer->field_0914);
SetBgTilemapBuffer(3, buffer->field_1914);
- RequestDma3Fill(0, (void *)BG_VRAM, 0x20, TRUE);
+ RequestDma3Fill(0, (void *)BG_VRAM, 0x20, DMA3_32BIT);
FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 0, 32, 32);
LoadBgGfxByAnimType(animType);
FillWindowPixelBuffer(0, PIXEL_FILL(0));
TextWindow_SetUserSelectedFrame(0, 0x000, 0xe0);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_BOTH);
ShowBg(0);
ShowBg(3);
HideBg(1);
@@ -370,14 +370,14 @@ void PSA_ShowMessageWindow(void)
PutWindowTilemap(0);
FillWindowPixelBuffer(0, PIXEL_FILL(1));
DrawTextBorderOuter(0, 0x001, 0xE);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_BOTH);
}
void PSA_HideMessageWindow(void)
{
ClearWindowTilemap(0);
ClearStdWindowAndFrameToTransparent(0, FALSE);
- CopyWindowToVram(0, 1);
+ CopyWindowToVram(0, COPYWIN_MAP);
}
void PSA_PrintMessage(u8 messageId)
@@ -448,7 +448,7 @@ void PSA_PrintMessage(u8 messageId)
void PSA_AfterPoof_ClearMessageWindow(void)
{
FillWindowPixelBuffer(0, PIXEL_FILL(1));
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
}
bool8 PSA_IsMessagePrintTaskActive(void)
@@ -612,12 +612,12 @@ UNUSED void PSA_DrawLevelUpWindowPg1(u16 *statsBefore, u16 *statsAfter)
DrawTextBorderOuter(1, 0x001, 0xE);
DrawLevelUpWindowPg1(1, statsBefore, statsAfter, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY);
PutWindowTilemap(1);
- CopyWindowToVram(1, 3);
+ CopyWindowToVram(1, COPYWIN_BOTH);
}
UNUSED void PSA_DrawLevelUpWindowPg2(u16 *currStats)
{
DrawLevelUpWindowPg2(1, currStats, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY);
- CopyWindowToVram(1, 2);
+ CopyWindowToVram(1, COPYWIN_GFX);
}
UNUSED bool8 PSA_IsCopyingLevelUpWindowToVram(void)
diff --git a/src/pokemon_storage_system_2.c b/src/pokemon_storage_system_2.c
index b806e7afa..d8be81b62 100644
--- a/src/pokemon_storage_system_2.c
+++ b/src/pokemon_storage_system_2.c
@@ -247,8 +247,8 @@ static void Task_PokemonStorageSystemPC(u8 taskId)
DrawDialogueFrame(0, 0);
FillWindowPixelBuffer(0, PIXEL_FILL(1));
AddTextPrinterParameterized2(0, 2, sUnknown_83CDA20[task->data[1]].desc, TEXT_SPEED_FF, NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GREY);
- CopyWindowToVram(0, 3);
- CopyWindowToVram(task->data[15], 3);
+ CopyWindowToVram(0, COPYWIN_BOTH);
+ CopyWindowToVram(task->data[15], COPYWIN_BOTH);
task->data[0]++;
break;
case 1:
diff --git a/src/pokemon_storage_system_3.c b/src/pokemon_storage_system_3.c
index 7ae451b69..6cb7b5640 100644
--- a/src/pokemon_storage_system_3.c
+++ b/src/pokemon_storage_system_3.c
@@ -74,8 +74,8 @@ static void LoadPSSMenuGfx(void);
static bool8 InitPSSWindows(void);
static void LoadWaveformSpritePalette(void);
static void sub_808F078(void);
-static void sub_808F0F4(void);
-static void sub_808F164(void);
+static void PSS_CreateMonMarkingSprite(void);
+static void CreateWaveformSprites(void);
static void RefreshCursorMonData(void);
static void BoxSetMosaic(void);
static void SpriteCB_CursorMon_Mosaic(struct Sprite * sprite);
@@ -2158,22 +2158,22 @@ static void sub_808F078(void)
SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(1) | BGCNT_CHARBASE(1) | BGCNT_16COLOR | BGCNT_SCREENBASE(30));
LoadCursorMonSprite();
- sub_808F0F4();
- sub_808F164();
+ PSS_CreateMonMarkingSprite();
+ CreateWaveformSprites();
RefreshCursorMonData();
}
-static void sub_808F0F4(void)
+static void PSS_CreateMonMarkingSprite(void)
{
- gPSSData->field_D94 = CreateMonMarkingSprite_AllOff(TAG_TILE_10, TAG_PAL_DAC8, NULL);
- gPSSData->field_D94->oam.priority = 1;
- gPSSData->field_D94->subpriority = 1;
- gPSSData->field_D94->pos1.x = 40;
- gPSSData->field_D94->pos1.y = 150;
- gPSSData->field_DA0 = (void *)OBJ_VRAM0 + 32 * GetSpriteTileStartByTag(TAG_TILE_10);
+ gPSSData->monMarkingSprite = CreateMonMarkingSprite_AllOff(TAG_TILE_10, TAG_PAL_DAC8, NULL);
+ gPSSData->monMarkingSprite->oam.priority = 1;
+ gPSSData->monMarkingSprite->subpriority = 1;
+ gPSSData->monMarkingSprite->pos1.x = 40;
+ gPSSData->monMarkingSprite->pos1.y = 150;
+ gPSSData->monMarkingSpriteTileStart = (void *)OBJ_VRAM0 + 32 * GetSpriteTileStartByTag(TAG_TILE_10);
}
-static void sub_808F164(void)
+static void CreateWaveformSprites(void)
{
u16 i;
struct SpriteSheet sheet = sWaveformSpriteSheet;
@@ -2309,15 +2309,15 @@ static void PrintCursorMonInfo(void)
}
}
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
if (gPSSData->cursorMonSpecies != SPECIES_NONE)
{
- sub_80BEBD0(gPSSData->cursorMonMarkings, gPSSData->field_DA0);
- gPSSData->field_D94->invisible = FALSE;
+ RequestDma3LoadMonMarking(gPSSData->cursorMonMarkings, gPSSData->monMarkingSpriteTileStart);
+ gPSSData->monMarkingSprite->invisible = FALSE;
}
else
{
- gPSSData->field_D94->invisible = TRUE;
+ gPSSData->monMarkingSprite->invisible = TRUE;
}
}
@@ -2597,7 +2597,7 @@ static void PrintStorageActionText(u8 id)
AddTextPrinterParameterized(1, 1, gPSSData->field_2190, 0, 2, TEXT_SPEED_FF, NULL);
DrawTextBorderOuter(1, 2, 13);
PutWindowTilemap(1);
- CopyWindowToVram(1, 2);
+ CopyWindowToVram(1, COPYWIN_GFX);
ScheduleBgCopyTilemapToVram(0);
}
diff --git a/src/pokemon_storage_system_4.c b/src/pokemon_storage_system_4.c
index 392d17574..b1b5408fe 100644
--- a/src/pokemon_storage_system_4.c
+++ b/src/pokemon_storage_system_4.c
@@ -996,10 +996,10 @@ static void sub_8091420(u8 taskId)
case 0:
gPSSData->field_2D2 = 0;
gPSSData->bg2_X = 0;
- task->data[1] = RequestDma3Fill(0, gPSSData->field_4AC4, 0x1000, 1);
+ task->data[1] = RequestDma3Fill(0, gPSSData->field_4AC4, 0x1000, DMA3_32BIT);
break;
case 1:
- if (CheckForSpaceForDma3Request(task->data[1]) == -1)
+ if (WaitDma3Request(task->data[1]) == -1)
return;
SetBgTilemapBuffer(2, gPSSData->field_4AC4);
diff --git a/src/pokemon_storage_system_7.c b/src/pokemon_storage_system_7.c
index 367477a89..769787c24 100644
--- a/src/pokemon_storage_system_7.c
+++ b/src/pokemon_storage_system_7.c
@@ -128,7 +128,7 @@ static bool8 sub_8095138(void)
sub_80956A4(sMoveMonsPtr->fromRow, sMoveMonsPtr->fromColumn);
SetBgAttribute(0, BG_ATTR_PALETTEMODE, 1);
PutWindowTilemap(gPSSData->field_2200);
- CopyWindowToVram8Bit(gPSSData->field_2200, 3);
+ CopyWindowToVram8Bit(gPSSData->field_2200, COPYWIN_BOTH);
BlendPalettes(0x3F00, 8, RGB_WHITE);
sub_8094D14(2);
SetGpuRegBits(REG_OFFSET_BG0CNT, BGCNT_256COLOR);
@@ -184,7 +184,7 @@ static bool8 sub_80952A0(void)
sub_8095520();
sMoveMonsPtr->toRow = sMoveMonsPtr->field_6;
sMoveMonsPtr->toColumn = sMoveMonsPtr->field_7;
- CopyWindowToVram8Bit(gPSSData->field_2200, 2);
+ CopyWindowToVram8Bit(gPSSData->field_2200, COPYWIN_GFX);
sMoveMonsPtr->state++;
}
break;
diff --git a/src/quest_log.c b/src/quest_log.c
index 2ba377bd9..c149217d9 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -503,15 +503,15 @@ void DrawPreviouslyOnQuestHeader(u8 sceneNum)
AddTextPrinterParameterized4(sQuestLogHeaderWindowIds[0], 2, 2, 2, 1, 2, sTextColors, 0, gStringVar4);
PutWindowTilemap(sQuestLogHeaderWindowIds[0]);
PutWindowTilemap(sQuestLogHeaderWindowIds[1]);
- CopyWindowToVram(sQuestLogHeaderWindowIds[0], 2);
- CopyWindowToVram(sQuestLogHeaderWindowIds[2], 2);
- CopyWindowToVram(sQuestLogHeaderWindowIds[1], 3);
+ CopyWindowToVram(sQuestLogHeaderWindowIds[0], COPYWIN_GFX);
+ CopyWindowToVram(sQuestLogHeaderWindowIds[2], COPYWIN_GFX);
+ CopyWindowToVram(sQuestLogHeaderWindowIds[1], COPYWIN_BOTH);
}
void CommitQuestLogWindow1(void)
{
PutWindowTilemap(sQuestLogHeaderWindowIds[1]);
- CopyWindowToVram(sQuestLogHeaderWindowIds[1], 1);
+ CopyWindowToVram(sQuestLogHeaderWindowIds[1], COPYWIN_MAP);
}
static void QuestLogPlaybackSetObjectEventTemplates(u8 sceneNum)
@@ -1040,9 +1040,9 @@ static void QuestLog_CloseTextWindow(void)
{
ClearWindowTilemap(sQuestLogHeaderWindowIds[2]);
FillWindowPixelRect(sQuestLogHeaderWindowIds[2], 15, 0, 0, 0xf0, 0x30);
- CopyWindowToVram(sQuestLogHeaderWindowIds[2], 2);
+ CopyWindowToVram(sQuestLogHeaderWindowIds[2], COPYWIN_GFX);
PutWindowTilemap(sQuestLogHeaderWindowIds[1]);
- CopyWindowToVram(sQuestLogHeaderWindowIds[1], 1);
+ CopyWindowToVram(sQuestLogHeaderWindowIds[1], COPYWIN_MAP);
}
static void QuestLog_SkipToEndOfPlayback(s8 delay)
@@ -1163,7 +1163,7 @@ static void Task_EndQuestLog(u8 taskId)
for (i = 0; i < 3; i++)
{
ClearWindowTilemap(sQuestLogHeaderWindowIds[i]);
- CopyWindowToVram(sQuestLogHeaderWindowIds[i], 1);
+ CopyWindowToVram(sQuestLogHeaderWindowIds[i], COPYWIN_MAP);
RemoveWindow(sQuestLogHeaderWindowIds[i]);
}
tTimer = 0;
@@ -1207,8 +1207,8 @@ static bool8 sub_81121D8(u8 taskId)
sub_80716F8(gPlttBufferUnfaded + 0x100, gPlttBufferFaded + 0x100, 0x100, 0x0F - data[1]);
FillWindowPixelRect(sQuestLogHeaderWindowIds[0], 0x00, 0, sQuestLogHeaderWindowTemplates[0].height * 8 - 1 - data[1], sQuestLogHeaderWindowTemplates[0].width * 8, 1);
FillWindowPixelRect(sQuestLogHeaderWindowIds[1], 0x00, 0, data[1], sQuestLogHeaderWindowTemplates[1].width * 8, 1);
- CopyWindowToVram(sQuestLogHeaderWindowIds[0], 2);
- CopyWindowToVram(sQuestLogHeaderWindowIds[1], 2);
+ CopyWindowToVram(sQuestLogHeaderWindowIds[0], COPYWIN_GFX);
+ CopyWindowToVram(sQuestLogHeaderWindowIds[1], COPYWIN_GFX);
data[1]++;
return FALSE;
}
diff --git a/src/region_map.c b/src/region_map.c
index 81bd4aca4..bbc8a40f9 100644
--- a/src/region_map.c
+++ b/src/region_map.c
@@ -1889,7 +1889,7 @@ static void DisplayCurrentMapName(void)
GetMapName(sRegionMap->mapName, GetMapsecUnderCursor(), 0);
AddTextPrinterParameterized3(WIN_MAP_NAME, 2, 2, 2, sTextColor_White, 0, sRegionMap->mapName);
PutWindowTilemap(WIN_MAP_NAME);
- CopyWindowToVram(WIN_MAP_NAME, 2);
+ CopyWindowToVram(WIN_MAP_NAME, COPYWIN_GFX);
SetGpuWindowDims(WIN_MAP_NAME, &sMapsecNameWindowDims[WIN_MAP_NAME]);
}
}
@@ -1921,16 +1921,16 @@ static void DisplayCurrentDungeonName(void)
StringCopy(sRegionMap->dungeonName, sMapNames[descOffset]);
AddTextPrinterParameterized3(WIN_DUNGEON_NAME, 2, 12, 2, sTextColorTable[GetSelectedMapsecType(LAYER_DUNGEON) - 2], 0, sRegionMap->dungeonName);
PutWindowTilemap(WIN_DUNGEON_NAME);
- CopyWindowToVram(WIN_DUNGEON_NAME, 3);
+ CopyWindowToVram(WIN_DUNGEON_NAME, COPYWIN_BOTH);
}
}
static void ClearMapsecNameText(void)
{
FillWindowPixelBuffer(WIN_MAP_NAME, PIXEL_FILL(0));
- CopyWindowToVram(WIN_MAP_NAME, 3);
+ CopyWindowToVram(WIN_MAP_NAME, COPYWIN_BOTH);
FillWindowPixelBuffer(WIN_DUNGEON_NAME, PIXEL_FILL(0));
- CopyWindowToVram(WIN_DUNGEON_NAME, 3);
+ CopyWindowToVram(WIN_DUNGEON_NAME, COPYWIN_BOTH);
}
static void BufferRegionMapBg(u8 bg, u16 *map)
@@ -2493,7 +2493,7 @@ static void Task_DrawDungeonMapPreviewFlavorText(u8 taskId)
break;
case 2:
FillWindowPixelBuffer(WIN_MAP_PREVIEW, PIXEL_FILL(0));
- CopyWindowToVram(WIN_MAP_PREVIEW, 3);
+ CopyWindowToVram(WIN_MAP_PREVIEW, COPYWIN_BOTH);
PutWindowTilemap(WIN_MAP_PREVIEW);
sDungeonMapPreview->drawState++;
break;
@@ -2503,7 +2503,7 @@ static void Task_DrawDungeonMapPreviewFlavorText(u8 taskId)
{
AddTextPrinterParameterized3(WIN_MAP_PREVIEW, 2, 4, 0, sTextColor_Green, -1, GetDungeonName(GetDungeonMapsecUnderCursor()));
AddTextPrinterParameterized3(WIN_MAP_PREVIEW, 2, 2, 14, sTextColor_White, -1, GetDungeonFlavorText(GetDungeonMapsecUnderCursor()));
- CopyWindowToVram(WIN_MAP_PREVIEW, 3);
+ CopyWindowToVram(WIN_MAP_PREVIEW, COPYWIN_BOTH);
sDungeonMapPreview->drawState++;
}
// Tint image
@@ -2522,7 +2522,7 @@ static void Task_DrawDungeonMapPreviewFlavorText(u8 taskId)
if (JOY_NEW(B_BUTTON) || JOY_NEW(A_BUTTON))
{
FillWindowPixelBuffer(WIN_MAP_PREVIEW, PIXEL_FILL(0));
- CopyWindowToVram(WIN_MAP_PREVIEW, 3);
+ CopyWindowToVram(WIN_MAP_PREVIEW, COPYWIN_BOTH);
sDungeonMapPreview->mainState++;
sDungeonMapPreview->drawState++;
}
@@ -3002,8 +3002,8 @@ static void Task_MapCloseAnim(u8 taskId)
{
case 0:
ClearOrDrawTopBar(TRUE);
- CopyWindowToVram(WIN_TOPBAR_LEFT, 3);
- CopyWindowToVram(WIN_TOPBAR_RIGHT, 3);
+ CopyWindowToVram(WIN_TOPBAR_LEFT, COPYWIN_BOTH);
+ CopyWindowToVram(WIN_TOPBAR_RIGHT, COPYWIN_BOTH);
sMapOpenCloseAnim->closeState++;
break;
case 1:
@@ -4285,7 +4285,7 @@ static void PrintTopBarTextLeft(const u8 *str)
else
FillWindowPixelBuffer(WIN_TOPBAR_LEFT, PIXEL_FILL(15));
AddTextPrinterParameterized3(WIN_TOPBAR_LEFT, 0, 0, 0, sTextColors, 0, str);
- CopyWindowToVram(WIN_TOPBAR_LEFT, 2);
+ CopyWindowToVram(WIN_TOPBAR_LEFT, COPYWIN_GFX);
}
static void PrintTopBarTextRight(const u8 *str)
@@ -4295,7 +4295,7 @@ static void PrintTopBarTextRight(const u8 *str)
else
FillWindowPixelBuffer(WIN_TOPBAR_RIGHT, PIXEL_FILL(15));
AddTextPrinterParameterized3(WIN_TOPBAR_RIGHT, 0, 0, 0, sTextColors, 0, str);
- CopyWindowToVram(WIN_TOPBAR_RIGHT, 3);
+ CopyWindowToVram(WIN_TOPBAR_RIGHT, COPYWIN_BOTH);
}
static void ClearOrDrawTopBar(bool8 clear)
diff --git a/src/save.c b/src/save.c
index 3c192c098..d5993182c 100644
--- a/src/save.c
+++ b/src/save.c
@@ -846,7 +846,7 @@ u32 TryWriteSpecialSaveSection(u8 sector, u8* src)
return 1;
}
-void sub_80DA634(u8 taskId)
+void Task_SaveGame_UpdatedLinkRecords(u8 taskId)
{
switch (gTasks[taskId].data[0])
{
diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c
index e71910485..9c29323ba 100644
--- a/src/save_failed_screen.c
+++ b/src/save_failed_screen.c
@@ -53,8 +53,8 @@ bool32 RunSaveFailedScreen(void)
sSaveFailedScreenState = 2;
break;
case 2:
- RequestDma3Fill(0, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, 0);
- RequestDma3Copy(sSaveFailedScreenPals, (void *)PLTT, 0x20, 0);
+ RequestDma3Fill(0, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, DMA3_16BIT);
+ RequestDma3Copy(sSaveFailedScreenPals, (void *)PLTT, 0x20, DMA3_16BIT);
sSaveFailedScreenState = 3;
break;
case 3:
@@ -118,12 +118,12 @@ static void BlankPalettes(void)
static void RequestDmaCopyFromScreenBuffer(void)
{
- RequestDma3Copy(gDecompressionBuffer + 0x3800, (void *)BG_SCREEN_ADDR(31), 0x500, 0);
+ RequestDma3Copy(gDecompressionBuffer + 0x3800, (void *)BG_SCREEN_ADDR(31), 0x500, DMA3_16BIT);
}
static void RequestDmaCopyFromCharBuffer(void)
{
- RequestDma3Copy(gDecompressionBuffer + 0x020, (void *)BG_CHAR_ADDR(3) + 0x20, 0x2300, 0);
+ RequestDma3Copy(gDecompressionBuffer + 0x020, (void *)BG_CHAR_ADDR(3) + 0x20, 0x2300, DMA3_16BIT);
}
static void FillBgMapBufferRect(u16 baseBlock, u8 left, u8 top, u8 width, u8 height, u16 blockOffset)
diff --git a/src/scrcmd.c b/src/scrcmd.c
index 75761f0a3..3b6c73b68 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -1277,7 +1277,7 @@ bool8 ScrCmd_loadhelp(struct ScriptContext * ctx)
if (msg == NULL)
msg = (const u8 *)ctx->data[0];
DrawHelpMessageWindowWithText(msg);
- CopyWindowToVram(GetStartMenuWindowId(), 1);
+ CopyWindowToVram(GetStartMenuWindowId(), COPYWIN_MAP);
return FALSE;
}
diff --git a/src/shop.c b/src/shop.c
index 66b9fdb49..37dffdb81 100644
--- a/src/shop.c
+++ b/src/shop.c
@@ -227,7 +227,7 @@ static u8 CreateShopMenu(u8 a0)
PrintTextArray(sShopMenuWindowId, 2, GetMenuCursorDimensionByFont(2, 0), 2, 16, 3, sShopMenuActions_BuySellQuit);
Menu_InitCursor(sShopMenuWindowId, 2, 0, 2, 16, 3, 0);
PutWindowTilemap(sShopMenuWindowId);
- CopyWindowToVram(sShopMenuWindowId, 1);
+ CopyWindowToVram(sShopMenuWindowId, COPYWIN_MAP);
return CreateTask(Task_ShopMenu, 8);
}
@@ -657,7 +657,7 @@ static void BuyMenuPrintCursorAtYPosition(u8 y, u8 a1)
if (a1 == 0xFF)
{
FillWindowPixelRect(4, 0, 1, y, GetFontAttribute(2, FONTATTR_MAX_LETTER_WIDTH), GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT));
- CopyWindowToVram(4, 2);
+ CopyWindowToVram(4, COPYWIN_GFX);
}
else
{
diff --git a/src/slot_machine.c b/src/slot_machine.c
index 7fb199419..074e8a36f 100644
--- a/src/slot_machine.c
+++ b/src/slot_machine.c
@@ -1952,9 +1952,9 @@ static bool8 SlotsTask_GraphicsInit(u8 * state, struct SlotMachineSetupTaskData
SetVBlankCallback(NULL);
ResetSpriteData();
FreeAllSpritePalettes();
- RequestDma3Fill(0, (void *)OAM, OAM_SIZE, 1);
- RequestDma3Fill(0, (void *)VRAM, 0x20, 1);
- RequestDma3Fill(0, (void *)(VRAM + 0xC000), 0x20, 1);
+ RequestDma3Fill(0, (void *)OAM, OAM_SIZE, DMA3_32BIT);
+ RequestDma3Fill(0, (void *)VRAM, 0x20, DMA3_32BIT);
+ RequestDma3Fill(0, (void *)(VRAM + 0xC000), 0x20, DMA3_32BIT);
SetGpuReg(REG_OFFSET_DISPCNT, 0);
ResetBgPositions();
ResetBgsAndClearDma3BusyFlags(FALSE);
@@ -2119,7 +2119,7 @@ static bool8 SlotsTask_MessageOutOfCoins(u8 * state, struct SlotMachineSetupTask
{
case 0:
Slot_PrintOnWindow0(gString_OutOfCoins);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_BOTH);
(*state)++;
break;
case 1:
@@ -2137,7 +2137,7 @@ static bool8 SlotsTask_AskQuitPlaying(u8 * state, struct SlotMachineSetupTaskDat
case 0:
Slot_PrintOnWindow0(gString_QuitPlaying);
Slot_CreateYesNoMenu(0);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_BOTH);
(*state)++;
break;
case 1:
@@ -2155,7 +2155,7 @@ static bool8 SlotsTask_DestroyYesNoMenu(u8 * state, struct SlotMachineSetupTaskD
case 0:
Slot_ClearWindow0();
Slot_DestroyYesNoMenu();
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_BOTH);
(*state)++;
break;
case 1:
diff --git a/src/sound.c b/src/sound.c
index ed3f368ad..7f93f7a59 100644
--- a/src/sound.c
+++ b/src/sound.c
@@ -23,11 +23,11 @@ EWRAM_DATA struct MusicPlayerInfo* gMPlay_PokemonCry = NULL;
EWRAM_DATA u8 gPokemonCryBGMDuckingCounter = 0;
// iwram bss
-/*IWRAM_DATA*/ static u16 sCurrentMapMusic;
-/*IWRAM_DATA*/ static u16 sNextMapMusic;
-/*IWRAM_DATA*/ static u8 sMapMusicState;
-/*IWRAM_DATA*/ static u8 sMapMusicFadeInSpeed;
-/*IWRAM_DATA*/ static u16 sFanfareCounter;
+static u16 sCurrentMapMusic;
+static u16 sNextMapMusic;
+static u8 sMapMusicState;
+static u8 sMapMusicFadeInSpeed;
+static u16 sFanfareCounter;
// iwram common
bool8 gDisableMusic;
diff --git a/src/start_menu.c b/src/start_menu.c
index d52ef47ef..1cc06aa99 100644
--- a/src/start_menu.c
+++ b/src/start_menu.c
@@ -255,7 +255,7 @@ static void DrawSafariZoneStatsWindow(void)
ConvertIntToDecimalStringN(gStringVar3, gNumSafariBalls, STR_CONV_MODE_RIGHT_ALIGN, 2);
StringExpandPlaceholders(gStringVar4, gUnknown_84162A9);
AddTextPrinterParameterized(sSafariZoneStatsWindowId,2, gStringVar4, 4, 3, 0xFF, NULL);
- CopyWindowToVram(sSafariZoneStatsWindowId, 2);
+ CopyWindowToVram(sSafariZoneStatsWindowId, COPYWIN_GFX);
}
static void DestroySafariZoneStatsWindow(void)
@@ -263,7 +263,7 @@ static void DestroySafariZoneStatsWindow(void)
if (GetSafariZoneFlag())
{
ClearStdWindowAndFrameToTransparent(sSafariZoneStatsWindowId, FALSE);
- CopyWindowToVram(sSafariZoneStatsWindowId, 2);
+ CopyWindowToVram(sSafariZoneStatsWindowId, COPYWIN_GFX);
RemoveWindow(sSafariZoneStatsWindowId);
}
}
@@ -324,7 +324,7 @@ static s8 DoDrawStartMenu(void)
{
DrawHelpMessageWindowWithText(sStartMenuDescPointers[sStartMenuOrder[sStartMenuCursorPos]]);
}
- CopyWindowToVram(GetStartMenuWindowId(), 1);
+ CopyWindowToVram(GetStartMenuWindowId(), COPYWIN_MAP);
return TRUE;
}
return FALSE;
@@ -913,7 +913,7 @@ static void task50_after_link_battle_save(u8 taskId)
AddTextPrinterParameterized2(0, 2, gText_SavingDontTurnOffThePower2, 0xFF, NULL, 2, 1, 3);
DrawTextBorderOuter(0, 0x008, 0x0F);
PutWindowTilemap(0);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_BOTH);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
if (gWirelessCommType != 0 && InUnionRoom())
data[0] = 5;
@@ -942,11 +942,11 @@ static void task50_after_link_battle_save(u8 taskId)
DestroyTask(taskId);
break;
case 5:
- CreateTask(sub_80DA634, 5);
+ CreateTask(Task_SaveGame_UpdatedLinkRecords, 5);
data[0] = 6;
break;
case 6:
- if (!FuncIsActiveTask(sub_80DA634))
+ if (!FuncIsActiveTask(Task_SaveGame_UpdatedLinkRecords))
data[0] = 3;
break;
}
@@ -981,7 +981,7 @@ static void PrintSaveStats(void)
AddTextPrinterParameterized3(sSaveStatsWindowId, 0, 2, y, sTextColor_StatName, -1, gSaveStatName_Time);
SaveStatToString(SAVE_STAT_TIME, gStringVar4, 2);
AddTextPrinterParameterized3(sSaveStatsWindowId, 0, 60, y, sTextColor_StatValue, -1, gStringVar4);
- CopyWindowToVram(sSaveStatsWindowId, 2);
+ CopyWindowToVram(sSaveStatsWindowId, COPYWIN_GFX);
}
static void CloseSaveStatsWindow(void)
diff --git a/src/strings.c b/src/strings.c
index 29bbd2fdf..eefd52b90 100644
--- a/src/strings.c
+++ b/src/strings.c
@@ -1023,15 +1023,15 @@ const u8 gText_WantToPlayAgain[] = _("Want to play again?");
const u8 gText_SomeoneDroppedOut[] = _("Somebody dropped out.\nThe link will be canceled.");
const u8 gText_SpacePoints[] = _(" points");
const u8 gText_CommunicationStandby3[] = _("Communication standby…");
-ALIGNED(4) const u8 gUnknown_841CE3C[] = _("Are you ready to BERRY-CRUSH?\nPlease pick a BERRY for use.\p");
-ALIGNED(4) const u8 gUnknown_841CE78[] = _("Please wait while each member\nchooses a BERRY.");
-ALIGNED(4) const u8 gUnknown_841CEA8[] = _("{PAUSE_MUSIC}{PLAY_BGM MUS_FANFA1}You ended up with {STR_VAR_1} units of\nsilky-smooth BERRY POWDER.{RESUME_MUSIC}\pYour total amount of BERRY POWDER\nis {STR_VAR_2}.\p");
-ALIGNED(4) const u8 gUnknown_841CF14[] = _("Recording your game results in the\nsave file.\nPlease wait.");
-ALIGNED(4) const u8 gUnknown_841CF50[] = _("Want to play BERRY CRUSH again?");
-ALIGNED(4) const u8 gUnknown_841CF70[] = _("You have no BERRIES.\nThe game will be canceled.");
-ALIGNED(4) const u8 gUnknown_841CFA0[] = _("A member dropped out.\nThe game will be canceled.");
-ALIGNED(4) const u8 gUnknown_841CFD4[] = _("Time's up.\pGood BERRY POWDER could not be\nmade…\p");
-ALIGNED(4) const u8 gUnknown_841D008[] = _("Communication standby…");
+ALIGNED(4) const u8 gText_BerryCrush_AreYouReady[] = _("Are you ready to BERRY-CRUSH?\nPlease pick a BERRY for use.\p");
+ALIGNED(4) const u8 gText_BerryCrush_WaitForOthersToChooseBerry[] = _("Please wait while each member\nchooses a BERRY.");
+ALIGNED(4) const u8 gText_BerryCrush_GainedXUnitsOfPowder[] = _("{PAUSE_MUSIC}{PLAY_BGM MUS_FANFA1}You ended up with {STR_VAR_1} units of\nsilky-smooth BERRY POWDER.{RESUME_MUSIC}\pYour total amount of BERRY POWDER\nis {STR_VAR_2}.\p");
+ALIGNED(4) const u8 gText_BerryCrush_RecordingGameResults[] = _("Recording your game results in the\nsave file.\nPlease wait.");
+ALIGNED(4) const u8 gText_BerryCrush_WantToPlayAgain[] = _("Want to play BERRY CRUSH again?");
+ALIGNED(4) const u8 gText_BerryCrush_NoBerries[] = _("You have no BERRIES.\nThe game will be canceled.");
+ALIGNED(4) const u8 gText_BerryCrush_MemberDroppedOut[] = _("A member dropped out.\nThe game will be canceled.");
+ALIGNED(4) const u8 gText_BerryCrush_TimeUp[] = _("Time's up.\pGood BERRY POWDER could not be\nmade…\p");
+ALIGNED(4) const u8 gText_BerryCrush_CommunicationStandby[] = _("Communication standby…");
ALIGNED(4) const u8 gText_1_ClrLtGryShdwBlk_Dynamic0[] = _("1. {COLOR LIGHT_GRAY}{SHADOW BLACK}{DYNAMIC 0x00}");
const u8 gText_1_Dynamic0[] = _("1. {DYNAMIC 0x00}");
ALIGNED(4) const u8 gText_SpaceTimes[] = _(" times");
diff --git a/src/task.c b/src/task.c
index fafa7c70d..83800a440 100644
--- a/src/task.c
+++ b/src/task.c
@@ -201,7 +201,7 @@ u8 GetTaskCount(void)
return count;
}
-void SetWordTaskArg(u8 taskId, u8 dataElem, u32 value)
+void SetWordTaskArg(u8 taskId, u8 dataElem, unsigned long value)
{
if (dataElem <= 14)
{
diff --git a/src/teachy_tv.c b/src/teachy_tv.c
index 6924f8e9d..f919220c9 100644
--- a/src/teachy_tv.c
+++ b/src/teachy_tv.c
@@ -541,7 +541,7 @@ static void TeachyTvCreateAndRenderRbox(void)
FillWindowPixelBuffer(0, 0xCC);
PutWindowTilemap(0);
PutWindowTilemap(1);
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
}
static u8 TeachyTvSetupWindow(void)
@@ -811,7 +811,7 @@ static void TeachyTvRenderMsgAndSwitchClusterFuncs(u8 taskId)
sResources->grassAnimDisabled = 1;
TeachyTvSetSpriteCoordsAndSwitchFrame(data[1], 0, 0, 0);
FillWindowPixelBuffer(0, 0xCC);
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
TeachyTvClearBg1EndGraphicText();
data[2] = 0;
data[3] = 0;
@@ -937,7 +937,7 @@ static void TTVcmd_EraseTextWindowIfKeyPressed(u8 taskId)
if (JOY_NEW(A_BUTTON | B_BUTTON))
{
FillWindowPixelBuffer(0, 0xCC);
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
++data[3];
}
}
diff --git a/src/text.c b/src/text.c
index 9e0bb4c5f..7d739f564 100644
--- a/src/text.c
+++ b/src/text.c
@@ -876,7 +876,7 @@ u16 RenderText(struct TextPrinter *textPrinter)
ScrollWindow(textPrinter->printerTemplate.windowId, 0, sWindowVerticalScrollSpeeds[gSaveBlock2Ptr->optionsTextSpeed], PIXEL_FILL(textPrinter->printerTemplate.bgColor));
textPrinter->scrollDistance -= sWindowVerticalScrollSpeeds[gSaveBlock2Ptr->optionsTextSpeed];
}
- CopyWindowToVram(textPrinter->printerTemplate.windowId, 2);
+ CopyWindowToVram(textPrinter->printerTemplate.windowId, COPYWIN_GFX);
}
else
{
diff --git a/src/text_printer.c b/src/text_printer.c
index 28377b55a..0d1f86114 100644
--- a/src/text_printer.c
+++ b/src/text_printer.c
@@ -108,7 +108,7 @@ bool16 AddTextPrinter(struct TextPrinterTemplate *textSubPrinter, u8 speed, void
}
if (speed != TEXT_SPEED_FF)
- CopyWindowToVram(sTempTextPrinter.printerTemplate.windowId, 2);
+ CopyWindowToVram(sTempTextPrinter.printerTemplate.windowId, COPYWIN_GFX);
sTextPrinters[textSubPrinter->windowId].active = 0;
}
return TRUE;
@@ -126,7 +126,7 @@ void RunTextPrinters(void)
temp = RenderFont(&sTextPrinters[i]);
switch (temp) {
case 0:
- CopyWindowToVram(sTextPrinters[i].printerTemplate.windowId, 2);
+ CopyWindowToVram(sTextPrinters[i].printerTemplate.windowId, COPYWIN_GFX);
case 3:
if (sTextPrinters[i].callback != 0)
sTextPrinters[i].callback(&sTextPrinters[i].printerTemplate, temp);
diff --git a/src/tm_case.c b/src/tm_case.c
index 0ec19d134..060723949 100644
--- a/src/tm_case.c
+++ b/src/tm_case.c
@@ -602,7 +602,7 @@ static void PrintListMenuCursorAt_WithColorIdx(u8 a0, u8 a1)
if (a1 == 0xFF)
{
FillWindowPixelRect(0, 0, 0, a0, GetFontAttribute(2, 0), GetFontAttribute(2, 1));
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
}
else
{
@@ -797,7 +797,7 @@ static void Task_SelectTMAction_FromFieldBag(u8 taskId)
if (itemid_is_unique(gSpecialVar_ItemId))
{
PlaceHMTileInWindow(2, 0, 2);
- CopyWindowToVram(2, 2);
+ CopyWindowToVram(2, COPYWIN_GFX);
}
ScheduleBgCopyTilemapToVram(0);
ScheduleBgCopyTilemapToVram(1);
@@ -1341,7 +1341,7 @@ static void DrawMoveInfoUIMarkers(void)
BlitMoveInfoIcon(4, 20, 0, 12);
BlitMoveInfoIcon(4, 21, 0, 24);
BlitMoveInfoIcon(4, 22, 0, 36);
- CopyWindowToVram(4, 2);
+ CopyWindowToVram(4, COPYWIN_GFX);
}
static void TMCase_MoveCursor_UpdatePrintedTMInfo(u16 itemId)
@@ -1357,7 +1357,7 @@ static void TMCase_MoveCursor_UpdatePrintedTMInfo(u16 itemId)
{
AddTextPrinterParameterized_ColorByIndex(5, 3, gText_ThreeHyphens, 7, 12 * i, 0, 0, 0xFF, 3);
}
- CopyWindowToVram(5, 2);
+ CopyWindowToVram(5, COPYWIN_GFX);
}
else
{
@@ -1381,7 +1381,7 @@ static void TMCase_MoveCursor_UpdatePrintedTMInfo(u16 itemId)
AddTextPrinterParameterized_ColorByIndex(5, 3, str, 7, 24, 0, 0, 0xFF, 3);
ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[move].pp, STR_CONV_MODE_RIGHT_ALIGN, 3);
AddTextPrinterParameterized_ColorByIndex(5, 3, gStringVar1, 7, 36, 0, 0, 0xFF, 3);
- CopyWindowToVram(5, 2);
+ CopyWindowToVram(5, COPYWIN_GFX);
}
}
diff --git a/src/trade.c b/src/trade.c
index 81403cb7d..7da209d60 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -1233,7 +1233,7 @@ static void TradeMenuCB_13(void)
}
else
{
- if (gReceivedRemoteLinkPlayers == 0)
+ if (!gReceivedRemoteLinkPlayers)
{
Free(sSpriteTextTileBuffer);
FreeAllWindowBuffers();
@@ -1742,7 +1742,7 @@ static void TradeMenuCB_0(void)
UnionRoomAndTradeMenuPrintOptions(1, 3, 16, 2, sMenuAction_SummaryTrade);
Menu_InitCursor(1, 3, 0, 0, 16, 2, 0);
PutWindowTilemap(1);
- CopyWindowToVram(1, 3);
+ CopyWindowToVram(1, COPYWIN_BOTH);
sTradeMenuResourcesPtr->tradeMenuCBnum = 1;
}
else if (sTradeMenuResourcesPtr->tradeMenuCursorPosition < 12)
@@ -1915,7 +1915,7 @@ static void CommitWindows(void)
for (i = 0; i < sTradeMenuResourcesPtr->partyCounts[1] - 4; i++)
{
PutWindowTilemap(i + 12);
- CopyWindowToVram(i + 12, 1);
+ CopyWindowToVram(i + 12, COPYWIN_MAP);
}
}
@@ -2174,9 +2174,9 @@ static void HandleRedrawTradeMenuOnSide(u8 side)
BuildMovesString(movesString, whichParty, partyIdx);
AddTextPrinterParameterized4((side * 2) + 15, 1, 0, 0, 0, 0, sTextColor_PartyMonNickname, 0, movesString);
PutWindowTilemap((side * 2) + 14);
- CopyWindowToVram((side * 2) + 14, 3);
+ CopyWindowToVram((side * 2) + 14, COPYWIN_BOTH);
PutWindowTilemap((side * 2) + 15);
- CopyWindowToVram((side * 2) + 15, 3);
+ CopyWindowToVram((side * 2) + 15, COPYWIN_BOTH);
sTradeMenuResourcesPtr->menuRedrawState[side]++;
break;
case 4:
@@ -2244,7 +2244,7 @@ static void PrintPartyMonNickname(u8 whichParty, u8 windowId, const u8 *str)
xPos = (64u - GetStringWidth(0, str, GetFontAttribute(0, FONTATTR_LETTER_SPACING))) / 2;
AddTextPrinterParameterized3(windowId, 0, xPos, 4, sTextColor_PartyMonNickname, speed, str);
PutWindowTilemap(windowId);
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_BOTH);
}
static void PrintPartyNicknames(u8 whichParty)
@@ -2455,7 +2455,7 @@ static void PrintTradeErrorOrStatusMessage(u8 idx)
AddTextPrinterParameterized(0, 3, sTradeErrorOrStatusMessagePtrs[idx], 0, 2, 0xFF, NULL);
DrawTextBorderOuter(0, 0x014, 12);
PutWindowTilemap(0);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_BOTH);
}
static bool8 LoadUISprites(void)
@@ -2686,7 +2686,7 @@ s32 Trade_CalcLinkPlayerCompatibilityParam(void)
s32 val;
u16 version;
- if (gReceivedRemoteLinkPlayers != 0)
+ if (gReceivedRemoteLinkPlayers)
{
val = 0;
version = (gLinkPlayers[GetMultiplayerId() ^ 1].version & 0xFF);
diff --git a/src/trade_scene.c b/src/trade_scene.c
index e23a2e307..cc78d9a1e 100644
--- a/src/trade_scene.c
+++ b/src/trade_scene.c
@@ -923,7 +923,7 @@ void LinkTradeDrawWindow(void)
{
FillWindowPixelBuffer(0, PIXEL_FILL(15));
PutWindowTilemap(0);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_BOTH);
}
static void TradeAnimInit_LoadGfx(void)
@@ -1000,7 +1000,7 @@ static void CB2_InitTradeAnim_InGameTrade(void)
LoadTradeMonPic(1, 1);
FillWindowPixelBuffer(0, PIXEL_FILL(15));
PutWindowTilemap(0);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_BOTH);
gMain.state++;
break;
case 9:
@@ -1331,7 +1331,7 @@ static bool8 DoTradeAnim_Cable(void)
{
SetTradeSequenceBgGpuRegs(4);
FillWindowPixelBuffer(0, PIXEL_FILL(15));
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_BOTH);
sTradeData->state++;
}
break;
@@ -1828,7 +1828,7 @@ static bool8 DoTradeAnim_Wireless(void)
{
SetTradeSequenceBgGpuRegs(4);
FillWindowPixelBuffer(0, PIXEL_FILL(15));
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_BOTH);
sTradeData->state++;
}
break;
@@ -2769,7 +2769,7 @@ void DrawTextOnTradeWindow(u8 windowId, const u8 *str, s8 speed)
sTradeData->textColor[1] = 1;
sTradeData->textColor[2] = 6;
AddTextPrinterParameterized4(windowId, 2, 0, 2, 0, 2, sTradeData->textColor, speed, str);
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_BOTH);
}
static void Task_AnimateWirelessSignal(u8 taskId)
diff --git a/src/trainer_card.c b/src/trainer_card.c
index 33440e5a5..98799b502 100644
--- a/src/trainer_card.c
+++ b/src/trainer_card.c
@@ -624,7 +624,7 @@ static void Task_TrainerCard(u8 taskId)
Link_TryStartSend5FFF();
DrawDialogueFrame(0, 1);
AddTextPrinterParameterized(0, 2, gText_WaitingTrainerFinishReading, 0, 1, TEXT_SPEED_FF, 0);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_BOTH);
sTrainerCardDataPtr->mainState = STATE_CLOSE_CARD_LINK;
break;
case STATE_CLOSE_CARD_LINK:
@@ -1467,7 +1467,7 @@ static void LoadStickerGfx(void)
static void DrawTrainerCardWindow(u8 windowId)
{
PutWindowTilemap(windowId);
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_BOTH);
}
static bool8 SetTrainerCardBgsAndPals(void)
@@ -1765,7 +1765,7 @@ static bool8 Task_DrawFlippedCardSide(struct Task* task)
return FALSE;
}
sTrainerCardDataPtr->flipDrawState++;
- } while (gReceivedRemoteLinkPlayers == 0);
+ } while (!gReceivedRemoteLinkPlayers);
return FALSE;
}
diff --git a/src/trainer_tower.c b/src/trainer_tower.c
index 06c4a2fad..60f096cda 100644
--- a/src/trainer_tower.c
+++ b/src/trainer_tower.c
@@ -915,7 +915,7 @@ static void ShowResultsBoard(void)
}
PutWindowTilemap(windowId);
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_BOTH);
VarSet(VAR_TEMP_1, windowId);
}
@@ -1068,7 +1068,7 @@ void PrintTrainerTowerRecords(void)
}
PutWindowTilemap(windowId);
- CopyWindowToVram(windowId, 3);
+ CopyWindowToVram(windowId, COPYWIN_BOTH);
FreeTrainerTowerDataStruct();
}
diff --git a/src/union_room.c b/src/union_room.c
index ea9b213ab..1eb5f3ed1 100644
--- a/src/union_room.c
+++ b/src/union_room.c
@@ -687,7 +687,7 @@ static void PrintNumPlayersWaitingForMsg(u8 windowId, u8 capacityCode, u8 count)
break;
}
- CopyWindowToVram(windowId, 2);
+ CopyWindowToVram(windowId, COPYWIN_GFX);
}
static void PrintPlayerNameAndIdOnWindow(u8 windowId)
@@ -770,7 +770,7 @@ static void Task_TryBecomeLinkLeader(u8 taskId)
FillWindowPixelBuffer(data->bButtonCancelWindowId, PIXEL_FILL(2));
UR_AddTextPrinterParameterized(data->bButtonCancelWindowId, 0, gUnknown_845747C, 8, 2, UR_COLOR_WHT_DKE_LTE);
PutWindowTilemap(data->bButtonCancelWindowId);
- CopyWindowToVram(data->bButtonCancelWindowId, 2);
+ CopyWindowToVram(data->bButtonCancelWindowId, COPYWIN_GFX);
DrawStdWindowFrame(data->listWindowId, FALSE);
gMultiuseListMenuTemplate = sListMenuTemplate_PossibleGroupMembers;
@@ -779,7 +779,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;
@@ -1034,7 +1034,7 @@ static void Task_TryBecomeLinkLeader(u8 taskId)
}
else
{
- if (gReceivedRemoteLinkPlayers != 0)
+ if (gReceivedRemoteLinkPlayers)
{
UpdateGameData_GroupLockedIn(TRUE);
CreateTask_RunScriptAndFadeToActivity();
@@ -1312,7 +1312,7 @@ static void Task_TryJoinLinkGroup(u8 taskId)
FillWindowPixelBuffer(data->bButtonCancelWindowId, PIXEL_FILL(2));
UR_AddTextPrinterParameterized(data->bButtonCancelWindowId, 0, gUnknown_8458FC8, 8, 2, UR_COLOR_WHT_DKE_LTE);
PutWindowTilemap(data->bButtonCancelWindowId);
- CopyWindowToVram(data->bButtonCancelWindowId, 2);
+ CopyWindowToVram(data->bButtonCancelWindowId, COPYWIN_GFX);
DrawStdWindowFrame(data->listWindowId, FALSE);
gMultiuseListMenuTemplate = sListMenuTemplate_UnionRoomGroups;
@@ -1322,7 +1322,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;
@@ -1385,7 +1385,7 @@ static void Task_TryJoinLinkGroup(u8 taskId)
}
break;
case 6:
- if (gReceivedRemoteLinkPlayers != 0)
+ if (gReceivedRemoteLinkPlayers)
{
sPlayerCurrActivity = data->field_0->arr[data->leaderId].gname_uname.gname.activity;
RfuSetErrorStatus(0, 0);
@@ -2233,7 +2233,7 @@ static void Task_MEvent_Leader(u8 taskId)
{
data->state = 13;
}
- else if (gReceivedRemoteLinkPlayers != 0)
+ else if (gReceivedRemoteLinkPlayers)
{
UpdateGameData_GroupLockedIn(TRUE);
data->state++;
@@ -2313,7 +2313,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;
@@ -2365,7 +2365,7 @@ static void Task_CardOrNewsWithFriend(u8 taskId)
data->state = 5;
break;
case 5:
- if (gReceivedRemoteLinkPlayers != 0)
+ if (gReceivedRemoteLinkPlayers)
{
sPlayerCurrActivity = data->field_0->arr[data->leaderId].gname_uname.gname.activity;
data->state = 10;
@@ -2530,7 +2530,7 @@ static void Task_CardOrNewsOverWireless(u8 taskId)
data->state = 5;
break;
case 5:
- if (gReceivedRemoteLinkPlayers != 0)
+ if (gReceivedRemoteLinkPlayers)
{
sPlayerCurrActivity = data->field_0->arr[data->leaderId].gname_uname.gname.activity;
data->state = 12;
@@ -2855,7 +2855,7 @@ static void Task_RunUnionRoom(u8 taskId)
break;
}
- if (gReceivedRemoteLinkPlayers != 0)
+ if (gReceivedRemoteLinkPlayers)
{
CreateTrainerCardInBuffer(gBlockSendBuffer, TRUE);
CreateTask(Task_ExchangeCards, 5);
@@ -2872,7 +2872,7 @@ static void Task_RunUnionRoom(u8 taskId)
}
break;
case 30:
- if (gReceivedRemoteLinkPlayers == 0)
+ if (!gReceivedRemoteLinkPlayers)
{
HandleCancelTrade(FALSE);
UpdateUnionGroupMemberFacing(taskData[0], taskData[1], data->field_0);
@@ -2888,7 +2888,7 @@ static void Task_RunUnionRoom(u8 taskId)
var5 = ListMenuHandler_AllItemsAvailable(&data->textState, &data->topListMenuWindowId, &data->topListMenuListMenuId, &sWindowTemplate_InviteToActivity, &sListMenuTemplate_InviteToActivity);
if (var5 != -1)
{
- if (gReceivedRemoteLinkPlayers == 0)
+ if (!gReceivedRemoteLinkPlayers)
{
data->state = 28;
}
@@ -2947,7 +2947,7 @@ static void Task_RunUnionRoom(u8 taskId)
data->state = 29;
break;
case 29:
- if (gReceivedRemoteLinkPlayers == 0)
+ if (!gReceivedRemoteLinkPlayers)
{
StringCopy(gStringVar4, gUnknown_8458434);
data->state = 28;
@@ -3064,7 +3064,7 @@ static void Task_RunUnionRoom(u8 taskId)
else
UnionRoom_ScheduleFieldMessageWithFollowupState(30, gUnknown_84585E8[playerGender]);
}
- if (gReceivedRemoteLinkPlayers != 0)
+ if (gReceivedRemoteLinkPlayers)
data->state = 16;
break;
case 11:
@@ -3079,7 +3079,7 @@ static void Task_RunUnionRoom(u8 taskId)
HandleCancelTrade(FALSE);
data->state = 2;
}
- else if (gReceivedRemoteLinkPlayers != 0)
+ else if (gReceivedRemoteLinkPlayers)
{
CreateTrainerCardInBuffer(gBlockSendBuffer, TRUE);
CreateTask(Task_ExchangeCards, 5);
@@ -3168,7 +3168,7 @@ static void Task_RunUnionRoom(u8 taskId)
break;
case 36:
// You said no
- if (gReceivedRemoteLinkPlayers == 0)
+ if (!gReceivedRemoteLinkPlayers)
{
sPlayerCurrActivity = IN_UNION_ROOM;
UnionRoom_ScheduleFieldMessageWithFollowupState(37, gStringVar4);
@@ -3859,7 +3859,7 @@ static u8 CreateTradeBoardWindow(const struct WindowTemplate * template)
FillWindowPixelBuffer(windowId, PIXEL_FILL(15));
UR_AddTextPrinterParameterized(windowId, 0, gUnknown_8459378, 8, 1, UR_COLOR_DN5_DN6_LTB);
PutWindowTilemap(windowId);
- CopyWindowToVram(windowId, 2);
+ CopyWindowToVram(windowId, COPYWIN_GFX);
return windowId;
}
diff --git a/src/union_room_battle.c b/src/union_room_battle.c
index c6b5f485b..3d5ef39eb 100644
--- a/src/union_room_battle.c
+++ b/src/union_room_battle.c
@@ -78,7 +78,7 @@ static bool32 UnionRoomBattle_PrintTextOnWindow0(s16 * state, const u8 * str, s3
DrawTextBorderOuter(0, 0x001, 0xD);
UnionRoomBattle_CreateTextPrinter(0, str, 0, 2, speed);
PutWindowTilemap(0);
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_BOTH);
(*state)++;
break;
case 1:
@@ -190,7 +190,7 @@ void CB2_UnionRoomBattle(void)
}
break;
case 6:
- if (gReceivedRemoteLinkPlayers == 0)
+ if (!gReceivedRemoteLinkPlayers)
{
gMain.state++;
}
@@ -202,7 +202,7 @@ void CB2_UnionRoomBattle(void)
}
break;
case 8:
- if (gReceivedRemoteLinkPlayers == 0)
+ if (!gReceivedRemoteLinkPlayers)
{
gMain.state++;
}
diff --git a/src/union_room_chat.c b/src/union_room_chat.c
index 4ac4c62cb..5d19dc9cd 100644
--- a/src/union_room_chat.c
+++ b/src/union_room_chat.c
@@ -543,7 +543,7 @@ static void ChatEntryRoutine_AskQuitChatting(void)
}
break;
case 5:
- if (gReceivedRemoteLinkPlayers == 0)
+ if (!gReceivedRemoteLinkPlayers)
{
GoToRoutine(CHATENTRYROUTINE_SAVEANDEXIT);
}
diff --git a/src/union_room_chat_display.c b/src/union_room_chat_display.c
index 54aef8d65..27ce26a02 100644
--- a/src/union_room_chat_display.c
+++ b/src/union_room_chat_display.c
@@ -488,7 +488,7 @@ static bool32 DisplaySubtask_PrintWin3(u8 *state)
{
case 0:
PrintKeyboardSwapTextsOnWin3();
- CopyWindowToVram(3, 3);
+ CopyWindowToVram(3, COPYWIN_BOTH);
break;
case 1:
return IsDma3ManagerBusyWithBgCopy();
@@ -504,7 +504,7 @@ static bool32 DisplaySubtask_HideWin3(u8 *state)
{
case 0:
ClearWin3();
- CopyWindowToVram(3, 3);
+ CopyWindowToVram(3, COPYWIN_BOTH);
break;
case 1:
return IsDma3ManagerBusyWithBgCopy();
@@ -524,7 +524,7 @@ static bool32 DisplaySubtask_SwitchPages(u8 *state)
return TRUE;
PrintCurrentKeyboardPage();
- CopyWindowToVram(2, 2);
+ CopyWindowToVram(2, COPYWIN_GFX);
break;
case 1:
if (IsDma3ManagerBusyWithBgCopy())
@@ -557,7 +557,7 @@ static bool32 DisplaySubtask_ShowQuitChattingDialog(u8 *state)
case 0:
PlaceStdMessageWindow(STDMESSAGE_QUIT_CHATTING, 0);
PlaceYesNoMenuAt(23, 11, 1);
- CopyWindowToVram(sWork->messageWindowId, 3);
+ CopyWindowToVram(sWork->messageWindowId, COPYWIN_BOTH);
break;
case 1:
return IsDma3ManagerBusyWithBgCopy();
@@ -601,7 +601,7 @@ static bool32 DisplaySubtask_UpdateMessageBuffer(u8 *state)
FillWin1Rect(start, length, PIXEL_FILL(0));
str = UnionRoomChat_GetMessageEntryBuffer();
PrintOnWin1Parameterized(0, str, TEXT_COLOR_LIGHT_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY);
- CopyWindowToVram(1, 2);
+ CopyWindowToVram(1, COPYWIN_GFX);
break;
case 1:
if (!IsDma3ManagerBusyWithBgCopy())
@@ -630,13 +630,13 @@ static bool32 DisplaySubtask_PrintRegisterWhere(u8 *state)
length = StringLength_Multibyte(str);
FillWin1Rect(var0, length, PIXEL_FILL(6));
PrintOnWin1Parameterized(var0, str, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_RED, TEXT_COLOR_LIGHT_RED);
- CopyWindowToVram(1, 2);
+ CopyWindowToVram(1, COPYWIN_GFX);
break;
case 1:
if (!IsDma3ManagerBusyWithBgCopy())
{
PlaceStdMessageWindow(STDMESSAGE_REGISTER_WHERE, 16);
- CopyWindowToVram(sWork->messageWindowId, 3);
+ CopyWindowToVram(sWork->messageWindowId, COPYWIN_BOTH);
}
else
{
@@ -671,13 +671,13 @@ static bool32 DisplaySubtask_CancelRegister(u8 *state)
length = StringLength_Multibyte(str);
FillWin1Rect(x, length, PIXEL_FILL(0));
PrintOnWin1Parameterized(x, str, TEXT_COLOR_LIGHT_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY);
- CopyWindowToVram(1, 2);
+ CopyWindowToVram(1, COPYWIN_GFX);
break;
case 1:
if (!IsDma3ManagerBusyWithBgCopy())
{
HideStdMessageWindow();
- CopyWindowToVram(sWork->messageWindowId, 3);
+ CopyWindowToVram(sWork->messageWindowId, COPYWIN_BOTH);
}
else
{
@@ -709,7 +709,7 @@ static bool32 DisplaySubtask_ReturnToKeyboard(u8 *state)
{
case 0:
PrintCurrentKeyboardPage();
- CopyWindowToVram(2, 2);
+ CopyWindowToVram(2, COPYWIN_GFX);
(*state)++;
break;
case 1:
@@ -735,7 +735,7 @@ static bool32 DisplaySubtask_ScrollChat(u8 *state)
str = UnionRoomChat_GetLastReceivedMessage();
colorIdx = UnionRoomChat_GetReceivedPlayerIndex();
PrintTextOnWin0Colorized(row, str, colorIdx);
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
break;
case 1:
if (IsDma3ManagerBusyWithBgCopy())
@@ -755,7 +755,7 @@ static bool32 DisplaySubtask_ScrollChat(u8 *state)
// fall through
case 2:
ScrollWindow(0, 0, 5, PIXEL_FILL(1));
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
sWork->scrollCount++;
(*state)++;
// fall through
@@ -800,7 +800,7 @@ static bool32 DisplaySubtask_PrintInputText(u8 *state)
{
case 0:
PlaceStdMessageWindow(STDMESSAGE_INPUT_TEXT, 16);
- CopyWindowToVram(sWork->messageWindowId, 3);
+ CopyWindowToVram(sWork->messageWindowId, COPYWIN_BOTH);
(*state)++;
break;
case 1:
@@ -816,7 +816,7 @@ static bool32 DisplaySubtask_PrintExitingChat(u8 *state)
{
case 0:
PlaceStdMessageWindow(STDMESSAGE_EXITING_CHAT, 0);
- CopyWindowToVram(sWork->messageWindowId, 3);
+ CopyWindowToVram(sWork->messageWindowId, COPYWIN_BOTH);
(*state)++;
break;
case 1:
@@ -837,7 +837,7 @@ static bool32 DisplaySubtask_PrintLeaderLeft(u8 *state)
str = UnionRoomChat_GetNameOfPlayerWhoDisbandedChat();
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, str);
PlaceStdMessageWindow(STDMESSAGE_LEADER_LEFT, 0);
- CopyWindowToVram(sWork->messageWindowId, 3);
+ CopyWindowToVram(sWork->messageWindowId, COPYWIN_BOTH);
(*state)++;
break;
case 1:
@@ -854,7 +854,7 @@ static bool32 DisplaySubtask_AskSave(u8 *state)
case 0:
PlaceStdMessageWindow(STDMESSAGE_ASK_SAVE, 0);
PlaceYesNoMenuAt(23, 10, 1);
- CopyWindowToVram(sWork->messageWindowId, 3);
+ CopyWindowToVram(sWork->messageWindowId, COPYWIN_BOTH);
(*state)++;
break;
case 1:
@@ -871,7 +871,7 @@ static bool32 DisplaySubtask_AskOverwriteSave(u8 *state)
case 0:
PlaceStdMessageWindow(STDMESSAGE_ASK_OVERWRITE, 0);
PlaceYesNoMenuAt(23, 10, 1);
- CopyWindowToVram(sWork->messageWindowId, 3);
+ CopyWindowToVram(sWork->messageWindowId, COPYWIN_BOTH);
(*state)++;
break;
case 1:
@@ -887,7 +887,7 @@ static bool32 DisplaySubtask_PrintSavingDontTurnOffPower(u8 *state)
{
case 0:
PlaceStdMessageWindow(STDMESSAGE_SAVING_NO_OFF, 0);
- CopyWindowToVram(sWork->messageWindowId, 3);
+ CopyWindowToVram(sWork->messageWindowId, COPYWIN_BOTH);
(*state)++;
break;
case 1:
@@ -905,7 +905,7 @@ static bool32 DisplaySubtask_PrintSavedTheGame(u8 *state)
DynamicPlaceholderTextUtil_Reset();
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gSaveBlock2Ptr->playerName);
PlaceStdMessageWindow(STDMESSAGE_SAVED_THE_GAME, 0);
- CopyWindowToVram(sWork->messageWindowId, 3);
+ CopyWindowToVram(sWork->messageWindowId, COPYWIN_BOTH);
(*state)++;
break;
case 1:
@@ -922,7 +922,7 @@ static bool32 DisplaySubtask_ShowConfirmLeaderLeaveDialog(u8 *state)
case 0:
PlaceStdMessageWindow(STDMESSAGE_WARN_LEADER_LEAVE, 0);
PlaceYesNoMenuAt(23, 10, 1);
- CopyWindowToVram(sWork->messageWindowId, 3);
+ CopyWindowToVram(sWork->messageWindowId, COPYWIN_BOTH);
(*state)++;
break;
case 1:
@@ -1252,7 +1252,7 @@ static void SetBgTilemapWorkBuffers(void)
static void ClearBg0(void)
{
- RequestDma3Fill(0, (void *)BG_CHAR_ADDR(0), 0x20, 1);
+ RequestDma3Fill(0, (void *)BG_CHAR_ADDR(0), 0x20, DMA3_32BIT);
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32);
CopyBgTilemapBufferToVram(0);
}
@@ -1279,7 +1279,7 @@ static void LoadLinkMiscMenuGfx(void)
static void LoadBg1Pal8(void)
{
LoadPalette(sBg1Pal8, 0x80, 0x20);
- RequestDma3Fill(0, (void *)BG_CHAR_ADDR(1) + 0x20, 0x20, 1);
+ RequestDma3Fill(0, (void *)BG_CHAR_ADDR(1) + 0x20, 0x20, DMA3_32BIT);
}
static void LoadWin0(void)
@@ -1287,21 +1287,21 @@ static void LoadWin0(void)
LoadPalette(sWin0PalF, 0xF0, 0x20);
PutWindowTilemap(0);
FillWindowPixelBuffer(0, PIXEL_FILL(1));
- CopyWindowToVram(0, 3);
+ CopyWindowToVram(0, COPYWIN_BOTH);
}
static void LoadWin2(void)
{
PutWindowTilemap(2);
PrintCurrentKeyboardPage();
- CopyWindowToVram(2, 3);
+ CopyWindowToVram(2, COPYWIN_BOTH);
}
static void LoadWin1(void)
{
FillWindowPixelBuffer(1, PIXEL_FILL(0));
PutWindowTilemap(1);
- CopyWindowToVram(1, 3);
+ CopyWindowToVram(1, COPYWIN_BOTH);
}
static void LoadWin3(void)
diff --git a/src/util.c b/src/util.c
index b32799584..5423e0a2d 100644
--- a/src/util.c
+++ b/src/util.c
@@ -120,13 +120,13 @@ u8 CreateInvisibleSpriteWithCallback(void (*callback)(struct Sprite *))
return sprite;
}
-void StoreWordInTwoHalfwords(u16 *h, u32 w)
+void StoreWordInTwoHalfwords(u16 *h, unsigned w)
{
h[0] = (u16)(w);
h[1] = (u16)(w >> 16);
}
-void LoadWordFromTwoHalfwords(u16 *h, u32 *w)
+void LoadWordFromTwoHalfwords(u16 *h, unsigned *w)
{
*w = h[0] | (s16)h[1] << 16;
}
diff --git a/src/window.c b/src/window.c
index a7cec4186..1828202a6 100644
--- a/src/window.c
+++ b/src/window.c
@@ -21,11 +21,11 @@ bool16 InitWindows(const struct WindowTemplate *templates)
void *bgTilemapBuffer;
int j;
u8 bgLayer;
- u16 attrib;
+ u16 bgSize;
u8* allocatedTilemapBuffer;
int allocatedBaseBlock;
- for (i = 0; i < 0x4; ++i)
+ for (i = 0; i < 4; ++i)
{
bgTilemapBuffer = GetBgTilemapBuffer(i);
if (bgTilemapBuffer != NULL)
@@ -34,13 +34,13 @@ bool16 InitWindows(const struct WindowTemplate *templates)
gWindowBgTilemapBuffers[i] = bgTilemapBuffer;
}
- for (i = 0; i < 0x20; ++i)
+ for (i = 0; i < WINDOWS_MAX; ++i)
{
gWindows[i].window = sDummyWindowTemplate;
gWindows[i].tileData = NULL;
}
- for (i = 0, allocatedBaseBlock = 0, bgLayer = templates[i].bg; bgLayer != 0xFF && i < 0x20; ++i, bgLayer = templates[i].bg)
+ for (i = 0, allocatedBaseBlock = 0, bgLayer = templates[i].bg; bgLayer != 0xFF && i < WINDOWS_MAX; ++i, bgLayer = templates[i].bg)
{
if (gWindowTileAutoAllocEnabled == TRUE)
{
@@ -51,11 +51,11 @@ bool16 InitWindows(const struct WindowTemplate *templates)
if (gWindowBgTilemapBuffers[bgLayer] == NULL)
{
- attrib = GetBgAttribute(bgLayer, 0x8);
+ bgSize = GetBgAttribute(bgLayer, BG_ATTR_MAPSIZE);
- if (attrib != 0xFFFF)
+ if (bgSize != 0xFFFF)
{
- allocatedTilemapBuffer = Alloc(attrib);
+ allocatedTilemapBuffer = Alloc(bgSize);
if (allocatedTilemapBuffer == NULL)
{
@@ -63,7 +63,7 @@ bool16 InitWindows(const struct WindowTemplate *templates)
return FALSE;
}
- for (j = 0; j < attrib; ++j)
+ for (j = 0; j < bgSize; ++j)
allocatedTilemapBuffer[j] = 0;
gWindowBgTilemapBuffers[bgLayer] = allocatedTilemapBuffer;
@@ -103,17 +103,17 @@ u16 AddWindow(const struct WindowTemplate *template)
u16 win;
u8 bgLayer;
int allocatedBaseBlock;
- u16 attrib;
+ u16 bgSize;
u8 *allocatedTilemapBuffer;
int i;
- for (win = 0; win < 0x20; ++win)
+ for (win = 0; win < WINDOWS_MAX; ++win)
{
if ((bgLayer = gWindows[win].window.bg) == 0xFF)
break;
}
- if (win == 0x20)
+ if (win == WINDOWS_MAX)
return 0xFF;
bgLayer = template->bg;
@@ -129,16 +129,16 @@ u16 AddWindow(const struct WindowTemplate *template)
if (gWindowBgTilemapBuffers[bgLayer] == NULL)
{
- attrib = GetBgAttribute(bgLayer, 0x8);
+ bgSize = GetBgAttribute(bgLayer, BG_ATTR_MAPSIZE);
- if (attrib != 0xFFFF)
+ if (bgSize != 0xFFFF)
{
- allocatedTilemapBuffer = Alloc(attrib);
+ allocatedTilemapBuffer = Alloc(bgSize);
if (allocatedTilemapBuffer == NULL)
return 0xFF;
- for (i = 0; i < attrib; ++i)
+ for (i = 0; i < bgSize; ++i)
allocatedTilemapBuffer[i] = 0;
gWindowBgTilemapBuffers[bgLayer] = allocatedTilemapBuffer;
@@ -210,7 +210,7 @@ void FreeAllWindowBuffers(void)
}
}
- for (i = 0; i < 0x20; ++i)
+ for (i = 0; i < WINDOWS_MAX; ++i)
{
if (gWindows[i].tileData != NULL)
{
@@ -227,13 +227,13 @@ void CopyWindowToVram(u8 windowId, u8 mode)
switch (mode)
{
- case 1:
+ case COPYWIN_MAP:
CopyBgTilemapBufferToVram(windowLocal.window.bg);
break;
- case 2:
+ case COPYWIN_GFX:
LoadBgTiles(windowLocal.window.bg, windowLocal.tileData, windowSize, windowLocal.window.baseBlock);
break;
- case 3:
+ case COPYWIN_BOTH:
LoadBgTiles(windowLocal.window.bg, windowLocal.tileData, windowSize, windowLocal.window.baseBlock);
CopyBgTilemapBufferToVram(windowLocal.window.bg);
break;
@@ -246,7 +246,7 @@ void PutWindowTilemap(u8 windowId)
WriteSequenceToBgTilemapBuffer(
windowLocal.window.bg,
- GetBgAttribute(windowLocal.window.bg, 0xA) + windowLocal.window.baseBlock,
+ GetBgAttribute(windowLocal.window.bg, BG_ATTR_BASETILE) + windowLocal.window.baseBlock,
windowLocal.window.tilemapLeft,
windowLocal.window.tilemapTop,
windowLocal.window.width,
@@ -258,7 +258,7 @@ void PutWindowTilemap(u8 windowId)
void PutWindowRectTilemapOverridePalette(u8 windowId, u8 x, u8 y, u8 width, u8 height, u8 palette)
{
struct Window windowLocal = gWindows[windowId];
- u16 currentRow = windowLocal.window.baseBlock + (y * windowLocal.window.width) + x + GetBgAttribute(windowLocal.window.bg, 0xA);
+ u16 currentRow = windowLocal.window.baseBlock + (y * windowLocal.window.width) + x + GetBgAttribute(windowLocal.window.bg, BG_ATTR_BASETILE);
int i;
for (i = 0; i < height; ++i)
@@ -294,7 +294,7 @@ void ClearWindowTilemap(u8 windowId)
void PutWindowRectTilemap(u8 windowId, u8 x, u8 y, u8 width, u8 height)
{
struct Window windowLocal = gWindows[windowId];
- u16 currentRow = windowLocal.window.baseBlock + (y * windowLocal.window.width) + x + GetBgAttribute(windowLocal.window.bg, 0xA);
+ u16 currentRow = windowLocal.window.baseBlock + (y * windowLocal.window.width) + x + GetBgAttribute(windowLocal.window.bg, BG_ATTR_BASETILE);
int i;
for (i = 0; i < height; ++i)
diff --git a/src/window_8bpp.c b/src/window_8bpp.c
index 441dbbef8..a96785339 100644
--- a/src/window_8bpp.c
+++ b/src/window_8bpp.c
@@ -16,7 +16,7 @@ u16 AddWindow8Bit(const struct WindowTemplate *template)
u8* memAddress;
u8 bgLayer;
- for (windowId = 0; windowId < 32; windowId++)
+ for (windowId = 0; windowId < WINDOWS_MAX; windowId++)
{
if (gWindows[windowId].window.bg == 0xFF)
break;
@@ -24,9 +24,9 @@ u16 AddWindow8Bit(const struct WindowTemplate *template)
if (windowId == WINDOWS_MAX)
return 0xFF;
bgLayer = template->bg;
- if (gWindowBgTilemapBuffers[bgLayer] == 0)
+ if (gWindowBgTilemapBuffers[bgLayer] == NULL)
{
- u16 attribute = GetBgAttribute(bgLayer, 8);
+ u16 attribute = GetBgAttribute(bgLayer, BG_ATTR_MAPSIZE);
if (attribute != 0xFFFF)
{
s32 i;
@@ -101,13 +101,13 @@ void CopyWindowToVram8Bit(u8 windowId, u8 mode)
switch (mode)
{
- case 1:
+ case COPYWIN_MAP:
CopyBgTilemapBufferToVram(sWindowPtr->window.bg);
break;
- case 2:
+ case COPYWIN_GFX:
LoadBgTiles(sWindowPtr->window.bg, sWindowPtr->tileData, sWindowSize, sWindowPtr->window.baseBlock);
break;
- case 3:
+ case COPYWIN_BOTH:
LoadBgTiles(sWindowPtr->window.bg, sWindowPtr->tileData, sWindowSize, sWindowPtr->window.baseBlock);
CopyBgTilemapBufferToVram(sWindowPtr->window.bg);
break;
diff --git a/src/wireless_communication_status_screen.c b/src/wireless_communication_status_screen.c
index f8f552711..f67da122f 100644
--- a/src/wireless_communication_status_screen.c
+++ b/src/wireless_communication_status_screen.c
@@ -254,9 +254,9 @@ static void PrintHeaderTexts(void)
}
WCSS_AddTextPrinterParameterized(1, 3, sHeaderTextPtrs[i + 1], 0, 30 * i + 10, 2);
PutWindowTilemap(0);
- CopyWindowToVram(0, 2);
+ CopyWindowToVram(0, COPYWIN_GFX);
PutWindowTilemap(1);
- CopyWindowToVram(1, 2);
+ CopyWindowToVram(1, COPYWIN_GFX);
}
static void Task_WirelessCommunicationScreen(u8 taskId)
@@ -292,7 +292,7 @@ static void Task_WirelessCommunicationScreen(u8 taskId)
WCSS_AddTextPrinterParameterized(2, 3, gStringVar4, 4, 100, 2);
}
PutWindowTilemap(2);
- CopyWindowToVram(2, 3);
+ CopyWindowToVram(2, COPYWIN_BOTH);
}
if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON))
{