summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/berry_crush.c80
1 files changed, 49 insertions, 31 deletions
diff --git a/src/berry_crush.c b/src/berry_crush.c
index 4b34b054d..9f1dc208f 100644
--- a/src/berry_crush.c
+++ b/src/berry_crush.c
@@ -93,6 +93,24 @@ enum {
CMD_CLOSE_LINK,
CMD_QUIT,
};
+
+// Args for Cmd_BeginNormalPaletteFade
+#define bSelectedPals(i) args[0 + i]
+#define bDelay args[4]
+#define bStartY args[5]
+#define bTargetY args[6]
+#define bPalette(i) args[7 + i]
+#define bCommunicateAfter args[9]
+
+// Args for Cmd_WaitPaletteFade
+#define bWaitFadeCommAfter args[0]
+
+// Args for Cmd_PrintMessage
+#define bMsgId args[0]
+#define bFlags args[1]
+#define bKeys(i) args[2 + i]
+#define bNextCmdState args[4]
+
#define F_MSG_CLEAR (1 << 0)
#define F_MSG_EXPAND (1 << 1)
@@ -1181,28 +1199,28 @@ static u32 Cmd_BeginNormalPaletteFade(struct BerryCrushGame * game, u8 *args)
u16 color;
u32 selectedPals[2];
- selectedPals[0] = (u32)args[0];
+ selectedPals[0] = (u32)bSelectedPals(0);
- selectedPals[1] = (u32)args[1];
+ selectedPals[1] = (u32)bSelectedPals(1);
selectedPals[1] <<= 8;
selectedPals[0] |= selectedPals[1];
- selectedPals[1] = (u32)args[2];
+ selectedPals[1] = (u32)bSelectedPals(2);
selectedPals[1] <<= 16;
selectedPals[0] |= selectedPals[1];
- selectedPals[1] = (u32)args[3];
+ selectedPals[1] = (u32)bSelectedPals(3);
selectedPals[1] <<= 24;
selectedPals[0] |= selectedPals[1];
- args[0] = args[9];
+ bWaitFadeCommAfter = bCommunicateAfter;
- color = args[8];
+ color = bPalette(1);
color <<= 8;
- color |= args[7];
+ color |= bPalette(0);
gPaletteFade.bufferTransferDisabled = FALSE;
- BeginNormalPaletteFade(selectedPals[0], args[4], args[5], args[6], color);
+ BeginNormalPaletteFade(selectedPals[0], bDelay, bStartY, bTargetY, color);
UpdatePaletteFade();
game->nextCmd = CMD_WAIT_FADE;
return 0;
@@ -1215,7 +1233,7 @@ static u32 Cmd_WaitPaletteFade(struct BerryCrushGame * game, u8 *args)
case 0:
if (UpdatePaletteFade())
return 0;
- if(args[0] != 0)
+ if (bWaitFadeCommAfter)
++game->cmdState;
else
game->cmdState = 3;
@@ -1251,22 +1269,22 @@ static u32 Cmd_PrintMessage(struct BerryCrushGame * game, u8 *args)
u16 keys;
- keys = args[3];
+ keys = bKeys(1);
keys <<= 8;
- keys |= args[2] << 0;
+ keys |= bKeys(0) << 0;
switch (game->cmdState)
{
case 0:
DrawDialogueFrame(0, FALSE);
- if (args[1] & F_MSG_EXPAND)
+ if (bFlags & F_MSG_EXPAND)
{
- StringExpandPlaceholders(gStringVar4, sMessages[args[0]]);
+ StringExpandPlaceholders(gStringVar4, sMessages[bMsgId]);
AddTextPrinterParameterized2(0, 2, gStringVar4, game->textSpeed, 0, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
}
else
{
- AddTextPrinterParameterized2(0, 2, sMessages[args[0]], game->textSpeed, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
+ AddTextPrinterParameterized2(0, 2, sMessages[bMsgId], game->textSpeed, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
}
CopyWindowToVram(0, COPYWIN_BOTH);
break;
@@ -1283,10 +1301,10 @@ static u32 Cmd_PrintMessage(struct BerryCrushGame * game, u8 *args)
return 0;
break;
case 3:
- if (args[1] & F_MSG_CLEAR)
+ if (bFlags & F_MSG_CLEAR)
ClearDialogWindowAndFrame(0, TRUE);
RunOrScheduleCommand(game->nextCmd, SCHEDULE_CMD, NULL);
- game->cmdState = args[4];
+ game->cmdState = bNextCmdState;
return 0;
}
++game->cmdState;
@@ -2458,25 +2476,25 @@ static void ResetGame(struct BerryCrushGame * game)
static void SetPaletteFadeArgs(u8 *args, bool8 communicateAfter, u32 selectedPals, s8 delay, u8 startY, u8 targetY, u16 palette)
{
- args[0] = ((u8 *)&selectedPals)[0];
- args[1] = ((u8 *)&selectedPals)[1];
- args[2] = ((u8 *)&selectedPals)[2];
- args[3] = ((u8 *)&selectedPals)[3];
- args[4] = delay;
- args[5] = startY;
- args[6] = targetY;
- args[7] = ((u8 *)&palette)[0];
- args[8] = ((u8 *)&palette)[1];
- args[9] = communicateAfter;
+ bSelectedPals(0) = ((u8 *)&selectedPals)[0];
+ bSelectedPals(1) = ((u8 *)&selectedPals)[1];
+ bSelectedPals(2) = ((u8 *)&selectedPals)[2];
+ bSelectedPals(3) = ((u8 *)&selectedPals)[3];
+ bDelay = delay;
+ bStartY = startY;
+ bTargetY = targetY;
+ bPalette(0) = ((u8 *)&palette)[0];
+ bPalette(1) = ((u8 *)&palette)[1];
+ bCommunicateAfter = communicateAfter;
}
static void SetPrintMessageArgs(u8 *args, u8 stringId, u8 flags, u16 waitKeys, u8 followupCmd)
{
- args[0] = stringId;
- args[1] = flags;
- args[2] = ((u8 *)&waitKeys)[0];
- args[3] = ((u8 *)&waitKeys)[1];
- args[4] = followupCmd;
+ bMsgId = stringId;
+ bFlags = flags;
+ bKeys(0) = ((u8 *)&waitKeys)[0];
+ bKeys(1) = ((u8 *)&waitKeys)[1];
+ bNextCmdState = followupCmd;
}
// GF file break