summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2021-07-06 16:00:48 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2021-07-06 16:00:48 -0400
commit70004a2f6065cfd79e451beafb8e7f2e72fd1288 (patch)
tree4bcd43ca2c05fc35612a500436ed04709b616a83 /src
parente4f0217a6ab6b86312df947f8c8bce7a9fc5e554 (diff)
Match atk5D_getmoneyreward
Diffstat (limited to 'src')
-rw-r--r--src/battle_script_commands.c294
1 files changed, 15 insertions, 279 deletions
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index cdaaa521a..7583b3c05 100644
--- a/src/battle_script_commands.c
+++ b/src/battle_script_commands.c
@@ -5474,12 +5474,17 @@ static void atk5C_hitanimation(void)
gBattlescriptCurrInstr += 2;
}
-#ifdef NONMATCHING
static void atk5D_getmoneyreward(void)
{
u32 i = 0;
u8 lvl = 0;
u32 money_to_give;
+
+ const struct TrainerMonNoItemDefaultMoves * party1;
+ const struct TrainerMonNoItemCustomMoves * party2;
+ const struct TrainerMonItemDefaultMoves * party3;
+ const struct TrainerMonItemCustomMoves * party4;
+
if (gTrainerBattleOpponent == SECRET_BASE_OPPONENT)
{
money_to_give = 20 * eSecretBaseRecord->party.levels[0] * gBattleStruct->moneyMultiplier;
@@ -5490,26 +5495,26 @@ static void atk5D_getmoneyreward(void)
{
case 0:
{
- const struct TrainerMonNoItemDefaultMoves *data = gTrainers[gTrainerBattleOpponent].party.NoItemDefaultMoves;
- lvl = data[gTrainers[gTrainerBattleOpponent].partySize - 1].level;
+ party1 = gTrainers[gTrainerBattleOpponent].party.NoItemDefaultMoves;
+ lvl = party1[gTrainers[gTrainerBattleOpponent].partySize - 1].level;
}
break;
case 1:
{
- const struct TrainerMonNoItemCustomMoves *data = gTrainers[gTrainerBattleOpponent].party.NoItemCustomMoves;
- lvl = data[gTrainers[gTrainerBattleOpponent].partySize - 1].level;
+ party2 = gTrainers[gTrainerBattleOpponent].party.NoItemCustomMoves;
+ lvl = party2[gTrainers[gTrainerBattleOpponent].partySize - 1].level;
}
break;
case 2:
{
- const struct TrainerMonItemDefaultMoves *data = gTrainers[gTrainerBattleOpponent].party.ItemDefaultMoves;
- lvl = data[gTrainers[gTrainerBattleOpponent].partySize - 1].level;
+ party3 = gTrainers[gTrainerBattleOpponent].party.ItemDefaultMoves;
+ lvl = party3[gTrainers[gTrainerBattleOpponent].partySize - 1].level;
}
break;
case 3:
{
- const struct TrainerMonItemCustomMoves *data = gTrainers[gTrainerBattleOpponent].party.ItemCustomMoves;
- lvl = data[gTrainers[gTrainerBattleOpponent].partySize - 1].level;
+ party4 = gTrainers[gTrainerBattleOpponent].party.ItemCustomMoves;
+ lvl = party4[gTrainers[gTrainerBattleOpponent].partySize - 1].level;
}
break;
}
@@ -5517,7 +5522,7 @@ static void atk5D_getmoneyreward(void)
if (gTrainerMoney[i].trainerClass == gTrainers[gTrainerBattleOpponent].trainerClass)
break;
}
-
+ party4 = gTrainers[gTrainerBattleOpponent].party.ItemCustomMoves; // Needed to match. Has no effect.
money_to_give = 4 * lvl * gBattleStruct->moneyMultiplier * (gBattleTypeFlags & BATTLE_TYPE_DOUBLE ? 2 : 1) * gTrainerMoney[i].baseMoney;
}
@@ -5525,275 +5530,6 @@ static void atk5D_getmoneyreward(void)
PREPARE_WORD_NUMBER_BUFFER(gBattleTextBuff1, 5, money_to_give);
gBattlescriptCurrInstr += 1;
}
-#else
-NAKED
-static void atk5D_getmoneyreward(void)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r8\n\
- push {r7}\n\
- movs r6, 0\n\
- movs r5, 0\n\
- ldr r0, _08024048 @ =gTrainerBattleOpponent\n\
- ldrh r2, [r0]\n\
- movs r1, 0x80\n\
- lsls r1, 3\n\
- cmp r2, r1\n\
- bne _08024058\n\
- ldr r0, _0802404C @ =gSharedMem + 0x17000\n\
- adds r1, r0, 0\n\
- adds r1, 0x94\n\
- ldrb r2, [r1]\n\
- ldr r1, _08024050 @ =0xfffff056\n\
- adds r0, r1\n\
- ldrb r1, [r0]\n\
- lsls r0, r1, 2\n\
- adds r0, r1\n\
- lsls r0, 2\n\
- adds r4, r2, 0\n\
- muls r4, r0\n\
- ldr r0, _08024054 @ =gSaveBlock1 + 0x490\n\
- mov r8, r0\n\
- b _08024140\n\
- .align 2, 0\n\
-_08024048: .4byte gTrainerBattleOpponent\n\
-_0802404C: .4byte gSharedMem + 0x17000\n\
-_08024050: .4byte 0xfffff056\n\
-_08024054: .4byte gSaveBlock1 + 0x490\n\
-_08024058:\n\
- ldr r2, _08024074 @ =gTrainers\n\
- ldrh r1, [r0]\n\
- lsls r0, r1, 2\n\
- adds r0, r1\n\
- lsls r3, r0, 3\n\
- adds r4, r3, r2\n\
- ldrb r1, [r4]\n\
- cmp r1, 0x1\n\
- beq _080240AE\n\
- cmp r1, 0x1\n\
- bgt _08024078\n\
- cmp r1, 0\n\
- beq _08024082\n\
- b _080240C4\n\
- .align 2, 0\n\
-_08024074: .4byte gTrainers\n\
-_08024078:\n\
- cmp r1, 0x2\n\
- beq _08024098\n\
- cmp r1, 0x3\n\
- beq _080240AE\n\
- b _080240C4\n\
-_08024082:\n\
- adds r0, r2, 0\n\
- adds r0, 0x24\n\
- adds r0, r3, r0\n\
- ldr r1, [r0]\n\
- adds r0, r4, 0\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- lsls r0, 3\n\
- adds r0, r1\n\
- subs r0, 0x8\n\
- b _080240C2\n\
-_08024098:\n\
- adds r0, r2, 0\n\
- adds r0, 0x24\n\
- adds r0, r3, r0\n\
- ldr r1, [r0]\n\
- adds r0, r4, 0\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- lsls r0, 3\n\
- adds r0, r1\n\
- subs r0, 0x8\n\
- b _080240C2\n\
-_080240AE:\n\
- adds r0, r2, 0\n\
- adds r0, 0x24\n\
- adds r0, r3, r0\n\
- ldr r1, [r0]\n\
- adds r0, r4, 0\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- lsls r0, 4\n\
- adds r0, r1\n\
- subs r0, 0x10\n\
-_080240C2:\n\
- ldrb r5, [r0, 0x2]\n\
-_080240C4:\n\
- ldr r0, _08024120 @ =gTrainerMoney\n\
- lsls r1, r6, 2\n\
- adds r3, r1, r0\n\
- ldrb r1, [r3]\n\
- mov r12, r0\n\
- lsls r4, r5, 2\n\
- ldr r5, _08024124 @ =gSharedMem\n\
- ldr r7, _08024128 @ =gBattleTypeFlags\n\
- ldr r0, _0802412C @ =gSaveBlock1 + 0x490\n\
- mov r8, r0\n\
- cmp r1, 0xFF\n\
- beq _080240FE\n\
- ldr r2, _08024130 @ =gTrainers\n\
- ldr r0, _08024134 @ =gTrainerBattleOpponent\n\
- ldrh r1, [r0]\n\
- lsls r0, r1, 2\n\
- adds r0, r1\n\
- lsls r0, 3\n\
- adds r0, r2\n\
- ldrb r2, [r0, 0x1]\n\
- adds r1, r3, 0\n\
-_080240EE:\n\
- ldrb r0, [r1]\n\
- cmp r0, r2\n\
- beq _080240FE\n\
- adds r1, 0x4\n\
- adds r6, 0x1\n\
- ldrb r0, [r1]\n\
- cmp r0, 0xFF\n\
- bne _080240EE\n\
-_080240FE:\n\
- ldr r1, _08024138 @ =0x00016056\n\
- adds r0, r5, r1\n\
- ldrb r0, [r0]\n\
- adds r3, r4, 0\n\
- muls r3, r0\n\
- lsls r0, r6, 2\n\
- add r0, r12\n\
- ldrb r2, [r0, 0x1]\n\
- ldrh r1, [r7]\n\
- movs r0, 0x1\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _0802413C\n\
- lsls r0, r2, 1\n\
- adds r4, r3, 0\n\
- muls r4, r0\n\
- b _08024140\n\
- .align 2, 0\n\
-_08024120: .4byte gTrainerMoney\n\
-_08024124: .4byte gSharedMem\n\
-_08024128: .4byte gBattleTypeFlags\n\
-_0802412C: .4byte gSaveBlock1 + 0x490\n\
-_08024130: .4byte gTrainers\n\
-_08024134: .4byte gTrainerBattleOpponent\n\
-_08024138: .4byte 0x00016056\n\
-_0802413C:\n\
- adds r4, r3, 0\n\
- muls r4, r2\n\
-_08024140:\n\
- mov r0, r8\n\
- adds r1, r4, 0\n\
- bl AddMoney\n\
- ldr r1, _0802418C @ =gBattleTextBuff1\n\
- movs r0, 0xFD\n\
- strb r0, [r1]\n\
- movs r0, 0x1\n\
- strb r0, [r1, 0x1]\n\
- movs r0, 0x4\n\
- strb r0, [r1, 0x2]\n\
- movs r0, 0x5\n\
- strb r0, [r1, 0x3]\n\
- strb r4, [r1, 0x4]\n\
- movs r0, 0xFF\n\
- lsls r0, 8\n\
- ands r0, r4\n\
- lsrs r0, 8\n\
- strb r0, [r1, 0x5]\n\
- movs r0, 0xFF\n\
- lsls r0, 16\n\
- ands r0, r4\n\
- lsrs r0, 16\n\
- strb r0, [r1, 0x6]\n\
- lsrs r0, r4, 24\n\
- strb r0, [r1, 0x7]\n\
- movs r0, 0xFF\n\
- strb r0, [r1, 0x8]\n\
- ldr r1, _08024190 @ =gBattlescriptCurrInstr\n\
- ldr r0, [r1]\n\
- adds r0, 0x1\n\
- str r0, [r1]\n\
- pop {r3}\n\
- mov r8, r3\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_0802418C: .4byte gBattleTextBuff1\n\
-_08024190: .4byte gBattlescriptCurrInstr\n\
- .syntax divided");
-}
-#endif //NONMATCHING
-
-/*
-static u32 GetTrainerMoneyToGive(u16 trainerId)
-{
- u32 i = 0;
- u32 lastMonLevel = 0;
- u32 moneyReward = 0;
-
- if (trainerId == SECRET_BASE_OPPONENT)
- {
- moneyReward = 20 * eSecretBaseRecord->partyLevels[0] * gBattleStruct->moneyMultiplier;
- }
- else
- {
- switch (gTrainers[trainerId].partyFlags)
- {
- case 0:
- {
- const struct TrainerMonNoItemDefaultMoves *party = gTrainers[trainerId].party.NoItemDefaultMoves;
- lastMonLevel = party[gTrainers[trainerId].partySize - 1].lvl;
- }
- break;
- case F_TRAINER_PARTY_CUSTOM_MOVESET:
- {
- const struct TrainerMonNoItemCustomMoves *party = gTrainers[trainerId].party.NoItemCustomMoves;
- lastMonLevel = party[gTrainers[trainerId].partySize - 1].lvl;
- }
- break;
- case F_TRAINER_PARTY_HELD_ITEM:
- {
- const struct TrainerMonItemDefaultMoves *party = gTrainers[trainerId].party.ItemDefaultMoves;
- lastMonLevel = party[gTrainers[trainerId].partySize - 1].lvl;
- }
- break;
- case F_TRAINER_PARTY_CUSTOM_MOVESET | F_TRAINER_PARTY_HELD_ITEM:
- {
- const struct TrainerMonItemCustomMoves *party = gTrainers[trainerId].party.ItemCustomMoves;
- lastMonLevel = party[gTrainers[trainerId].partySize - 1].lvl;
- }
- break;
- }
-
- for (; gTrainerMoneyTable[i].classId != 0xFF; i++)
- {
- if (gTrainerMoneyTable[i].classId == gTrainers[trainerId].trainerClass)
- break;
- }
-
- if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
- moneyReward = 4 * lastMonLevel * gBattleStruct->moneyMultiplier * 2 * gTrainerMoneyTable[i].value;
- else
- moneyReward = 4 * lastMonLevel * gBattleStruct->moneyMultiplier * gTrainerMoneyTable[i].value;
- }
-
- return moneyReward;
-}
-
-static void atk5D_getmoneyreward(void)
-{
- u32 moneyReward = GetTrainerMoneyToGive(gTrainerBattleOpponent_A);
- if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS)
- moneyReward += GetTrainerMoneyToGive(gTrainerBattleOpponent_B);
-
- AddMoney(&gSaveBlock1Ptr->money, moneyReward);
-
- PREPARE_WORD_NUMBER_BUFFER(gBattleTextBuff1, 5, moneyReward)
-
- gBattlescriptCurrInstr++;
-}
-*/
static void atk5E(void)
{