summaryrefslogtreecommitdiff
path: root/src/berry_crush.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/berry_crush.c')
-rwxr-xr-xsrc/berry_crush.c71
1 files changed, 31 insertions, 40 deletions
diff --git a/src/berry_crush.c b/src/berry_crush.c
index 2175d2abb..96b00ba2b 100755
--- a/src/berry_crush.c
+++ b/src/berry_crush.c
@@ -146,49 +146,38 @@ struct BerryCrushGame
{
MainCallback unk0;
u32 (* unk4)(struct BerryCrushGame *, u8 *);
-
u8 unk8;
u8 unk9;
u8 unkA;
u8 unkB;
-
u8 unkC;
u8 unkD;
-
u8 unkE;
u8 unkF;
-
u16 unk10;
u16 unk12;
u16 unk14;
-
u16 unk16;
s16 unk18;
s16 unk1A;
- s32 unk1C;
+ int unk1C;
s32 unk20;
u8 unk24;
-
u8 unk25_0:1;
u8 unk25_1:1;
u8 unk25_2:1;
u8 unk25_3:1;
u8 unk25_4:1;
u8 unk25_5:3;
-
u16 unk26;
-
u16 unk28;
s16 unk2A;
s16 unk2C;
-
s16 unk2E;
s16 unk30;
s16 unk32;
s16 unk34;
-
u8 unk36[0xA];
-
struct BerryCrushGame_40 unk40;
struct BerryCrushGame_5C unk5C;
union BerryCrushGame_68 unk68;
@@ -215,7 +204,7 @@ void sub_8022524(struct BerryCrushGame_138 *, u16);
void sub_8022B28(struct Sprite *);
void sub_8022554(struct BerryCrushGame_138 *r0);
void sub_8024578(struct BerryCrushGame *);
-void sub_8024644(u8 *, u8, u8, u16, u8);
+void sub_8024644(u8 *, u32, u32, u32, u32);
static void sub_8022A20(struct Sprite *sprite);
static u32 BerryCrushCommand_BeginNormalPaletteFade(struct BerryCrushGame *r6, u8 *r1);
static u32 sub_8022CB0(struct BerryCrushGame *r4, u8 *r5);
@@ -1676,7 +1665,7 @@ static void Task_ShowBerryCrushRankings(u8 taskId)
CopyWindowToVram(data[1], 3);
break;
case 2:
- if (JOY_NEW(A_BUTTON | B_BUTTON))
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
break;
else
return;
@@ -1997,29 +1986,29 @@ static u32 BerryCrushCommand_BeginNormalPaletteFade(struct BerryCrushGame *game,
// byte 9: if TRUE, communicate on fade complete
u16 color;
- u32 selectedPals[2];
-
- selectedPals[0] = (u32)params[0];
- selectedPals[1] = (u32)params[1];
- selectedPals[1] <<= 8;
-
- selectedPals[0] |= selectedPals[1];
- selectedPals[1] = (u32)params[2];
- selectedPals[1] <<= 16;
-
- selectedPals[0] |= selectedPals[1];
- selectedPals[1] = (u32)params[3];
- selectedPals[1] <<= 24;
+ u32 selectedPals;
+ selectedPals = ({
+#ifndef NONMATCHING
+ register u32 value asm("r2");
+ register u32 b asm("r3");
+#else
+ 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;
+ });
- selectedPals[0] |= selectedPals[1];
params[0] = params[9];
- color = params[8];
- color <<= 8;
- color |= params[7];
+ color = params[8] << 8;
+ color |= params[7] << 0;
gPaletteFade.bufferTransferDisabled = FALSE;
- BeginNormalPaletteFade(selectedPals[0], params[4], params[5], params[6], color);
+ BeginNormalPaletteFade(selectedPals, params[4], params[5], params[6], color);
UpdatePaletteFade();
game->unkE = 2;
return 0;
@@ -2401,7 +2390,7 @@ void sub_802339C(struct BerryCrushGame *r4)
}
}
}
- if (r8 >= 2)
+ if (r8 > 1)
{
for (r7 = 0; r7 < r4->unk9; ++r7)
{
@@ -2509,9 +2498,9 @@ void sub_8023558(struct BerryCrushGame *r3)
void sub_80236B8(struct BerryCrushGame *r5)
{
- if (JOY_NEW(A_BUTTON))
+ if (gMain.newKeys & A_BUTTON)
r5->unk5C.unk02_2 = 1;
- if (JOY_HELD(A_BUTTON))
+ if (gMain.heldKeys & 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];
@@ -2591,7 +2580,6 @@ void sub_802385C(struct BerryCrushGame *r5)
for (r4 = 0; r4 < r5->unk9; ++r4)
r5->unk68.as_four_players.others[r4].unk4.as_2d_bytes[1][5] = 0;
#endif
-
if ((gRecvCmds[0][0] & 0xFF00) != RFUCMD_SEND_PACKET
|| gRecvCmds[0][1] != 2)
{
@@ -2978,7 +2966,7 @@ static u32 sub_8024048(struct BerryCrushGame *r5, u8 *r6)
--r5->unk138.unk0;
return 0;
}
- if (!(JOY_NEW(A_BUTTON)))
+ if (!(gMain.newKeys & A_BUTTON))
return 0;
PlaySE(SE_SELECT);
sub_802222C(r5);
@@ -3281,11 +3269,14 @@ static void BerryCrush_SetPaletteFadeParams(u8 *params, bool8 communicateAfter,
params[9] = communicateAfter;
}
-void sub_8024644(u8 *r0, u8 r1, u8 r2, u16 r3, u8 r5)
+void sub_8024644(u8 *r0, u32 r1, u32 r2, u32 r3, u32 r5)
{
+ u8 sp[4];
+
+ 0[(u16 *)sp] = r3;
r0[0] = r1;
r0[1] = r2;
- r0[2] = ((u8 *)&r3)[0];
- r0[3] = ((u8 *)&r3)[1];
+ r0[2] = sp[0];
+ r0[3] = sp[1];
r0[4] = r5;
}