diff --git a/include/constants/battle.h b/include/constants/battle.h index 9a84760390..6bb74e6bc8 100644 --- a/include/constants/battle.h +++ b/include/constants/battle.h @@ -28,6 +28,7 @@ #define BATTLE_TYPE_FORCED_SET_MODE (BATTLE_TYPE_DOUBLES | BATTLE_TYPE_LINK | BATTLE_TYPE_FRONTIER) #define BATTLE_TYPE_NO_AI_ITEMS (BATTLE_TYPE_LINK | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_SAFARI | BATTLE_TYPE_AI | BATTLE_TYPE_PAL_PARK) #define BATTLE_TYPE_NO_MOVES (BATTLE_TYPE_SAFARI | BATTLE_TYPE_PAL_PARK) +#define BATTLE_TYPE_NO_EXPERIENCE (BATTLE_TYPE_LINK | BATTLE_TYPE_SAFARI | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_PAL_PARK) #define MAX_LINK_BATTLERS 4 #define MAX_BATTLERS 4 diff --git a/include/overlay016/struct_ov16_0225BFFC_t.h b/include/overlay016/struct_ov16_0225BFFC_t.h index 7204546f9b..46b39442ed 100644 --- a/include/overlay016/struct_ov16_0225BFFC_t.h +++ b/include/overlay016/struct_ov16_0225BFFC_t.h @@ -25,7 +25,7 @@ struct BattlerData { void * unk_8C; u8 unk_90[256]; u8 unk_190; - u8 unk_191; + u8 battlerType; u8 bootState; u8 unk_193; UnkStruct_0201CD38 * unk_194; diff --git a/src/overlay016/battle_script.c b/src/overlay016/battle_script.c index c7d2b55be5..1b47e16045 100644 --- a/src/overlay016/battle_script.c +++ b/src/overlay016/battle_script.c @@ -141,7 +141,7 @@ static BOOL BtlCmd_JumpToSub(BattleSystem *battleSys, BattleContext *battleCtx); static BOOL BtlCmd_JumpToBattleEffect(BattleSystem *battleSys, BattleContext *battleCtx); static BOOL BtlCmd_JumpToMove(BattleSystem *battleSys, BattleContext *battleCtx); static BOOL BtlCmd_CheckCritical(BattleSystem *battleSys, BattleContext *battleCtx); -static BOOL ov16_02241D34(BattleSystem * param0, BattleContext * param1); +static BOOL BtlCmd_CalcExpGain(BattleSystem *battleSys, BattleContext *battleCtx); static BOOL ov16_02241EB0(BattleSystem * param0, BattleContext * param1); static BOOL ov16_02241EF0(BattleSystem * param0, BattleContext * param1); static BOOL ov16_02241F1C(BattleSystem * param0, BattleContext * param1); @@ -401,7 +401,7 @@ static const BtlCmd sBattleCommands[] = { BtlCmd_JumpToBattleEffect, BtlCmd_JumpToMove, BtlCmd_CheckCritical, - ov16_02241D34, + BtlCmd_CalcExpGain, ov16_02241EB0, ov16_02241EF0, ov16_02241F1C, @@ -651,7 +651,7 @@ static BOOL BtlCmd_SetEncounter(BattleSystem *battleSys, BattleContext *battleCt for (i = 0; i < maxBattlers; i++) { BattlerData *battlerData = BattleSystem_BattlerData(battleSys, i); - if (battlerData->unk_191 & BATTLER_TYPE_SOLO_ENEMY) { + if (battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) { BattleIO_SetEncounter(battleSys, i); BattleSystem_DexFlagSeen(battleSys, i); } @@ -696,7 +696,7 @@ static BOOL BtlCmd_ShowEncounter(BattleSystem *battleSys, BattleContext *battleC for (i = 0; i < maxBattlers; i++) { battlerData = BattleSystem_BattlerData(battleSys, i); - if ((battlerData->unk_191 & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { + if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { BattleIO_ShowEncounter(battleSys, i); BattleSystem_DexFlagSeen(battleSys, i); } @@ -710,7 +710,7 @@ static BOOL BtlCmd_ShowEncounter(BattleSystem *battleSys, BattleContext *battleC for (i = 0; i < maxBattlers; i++) { battlerData = BattleSystem_BattlerData(battleSys, i); - if (battlerData->unk_191 & BATTLER_TYPE_SOLO_ENEMY) { + if (battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) { BattleSystem_NoExpGain(battleCtx, i); BattleSystem_FlagExpGain(battleSys, battleCtx, i); BattleIO_ShowEncounter(battleSys, i); @@ -722,7 +722,7 @@ static BOOL BtlCmd_ShowEncounter(BattleSystem *battleSys, BattleContext *battleC case BTLSCR_ATTACKER: battlerData = BattleSystem_BattlerData(battleSys, battleCtx->attacker); - if ((battlerData->unk_191 & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { + if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { BattleSystem_FlagExpGain(battleSys, battleCtx, BATTLER_ENEMY_SLOT_1); BattleSystem_FlagExpGain(battleSys, battleCtx, BATTLER_ENEMY_SLOT_2); } else { @@ -737,7 +737,7 @@ static BOOL BtlCmd_ShowEncounter(BattleSystem *battleSys, BattleContext *battleC case BTLSCR_DEFENDER: battlerData = BattleSystem_BattlerData(battleSys, battleCtx->defender); - if ((battlerData->unk_191 & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { + if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { BattleSystem_FlagExpGain(battleSys, battleCtx, BATTLER_ENEMY_SLOT_1); BattleSystem_FlagExpGain(battleSys, battleCtx, BATTLER_ENEMY_SLOT_2); } else { @@ -752,7 +752,7 @@ static BOOL BtlCmd_ShowEncounter(BattleSystem *battleSys, BattleContext *battleC case BTLSCR_SWITCHED_MON: battlerData = BattleSystem_BattlerData(battleSys, battleCtx->switchedMon); - if ((battlerData->unk_191 & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { + if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { BattleSystem_FlagExpGain(battleSys, battleCtx, BATTLER_ENEMY_SLOT_1); BattleSystem_FlagExpGain(battleSys, battleCtx, BATTLER_ENEMY_SLOT_2); } else { @@ -802,7 +802,7 @@ static BOOL BtlCmd_ShowPokemon(BattleSystem *battleSys, BattleContext *battleCtx for (i = 0; i < maxBattlers; i++) { battlerData = BattleSystem_BattlerData(battleSys, i); - if ((battlerData->unk_191 & 0x1) == 0) { + if ((battlerData->battlerType & 0x1) == 0) { BattleIO_ShowPokemon(battleSys, i, NULL, 0); BattleSystem_DexFlagSeen(battleSys, i); } @@ -816,7 +816,7 @@ static BOOL BtlCmd_ShowPokemon(BattleSystem *battleSys, BattleContext *battleCtx for (i = 0; i < maxBattlers; i++) { battlerData = BattleSystem_BattlerData(battleSys, i); - if (battlerData->unk_191 & 0x1) { + if (battlerData->battlerType & 0x1) { BattleSystem_NoExpGain(battleCtx, i); BattleSystem_FlagExpGain(battleSys, battleCtx, i); BattleIO_ShowPokemon(battleSys, i, NULL, 0); @@ -828,7 +828,7 @@ static BOOL BtlCmd_ShowPokemon(BattleSystem *battleSys, BattleContext *battleCtx case BTLSCR_ATTACKER: battlerData = BattleSystem_BattlerData(battleSys, battleCtx->attacker); - if ((battlerData->unk_191 & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { + if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { BattleSystem_FlagExpGain(battleSys, battleCtx, BATTLER_ENEMY_SLOT_1); BattleSystem_FlagExpGain(battleSys, battleCtx, BATTLER_ENEMY_SLOT_2); } else { @@ -843,7 +843,7 @@ static BOOL BtlCmd_ShowPokemon(BattleSystem *battleSys, BattleContext *battleCtx case BTLSCR_DEFENDER: battlerData = BattleSystem_BattlerData(battleSys, battleCtx->defender); - if ((battlerData->unk_191 & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { + if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { BattleSystem_FlagExpGain(battleSys, battleCtx, BATTLER_ENEMY_SLOT_1); BattleSystem_FlagExpGain(battleSys, battleCtx, BATTLER_ENEMY_SLOT_2); } else { @@ -858,7 +858,7 @@ static BOOL BtlCmd_ShowPokemon(BattleSystem *battleSys, BattleContext *battleCtx case BTLSCR_SWITCHED_MON: battlerData = BattleSystem_BattlerData(battleSys, battleCtx->switchedMon); - if ((battlerData->unk_191 & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { + if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { BattleSystem_FlagExpGain(battleSys, battleCtx, BATTLER_ENEMY_SLOT_1); BattleSystem_FlagExpGain(battleSys, battleCtx, BATTLER_ENEMY_SLOT_2); } else { @@ -904,7 +904,7 @@ static BOOL BtlCmd_ReturnPokemon(BattleSystem *battleSys, BattleContext *battleC for (i = 0; i < maxBattlers; i++) { battlerData = BattleSystem_BattlerData(battleSys, i); - if ((battlerData->unk_191 & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { + if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { BattleIO_ReturnPokemon(battleSys, battleCtx, i); } } @@ -914,7 +914,7 @@ static BOOL BtlCmd_ReturnPokemon(BattleSystem *battleSys, BattleContext *battleC for (i = 0; i < maxBattlers; i++) { battlerData = BattleSystem_BattlerData(battleSys, i); - if ((battlerData->unk_191 & BATTLER_TYPE_SOLO_ENEMY) && + if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) && (battleCtx->battlersSwitchingMask & FlagIndex(i)) == FALSE) { BattleIO_ReturnPokemon(battleSys, battleCtx, i); } @@ -978,7 +978,7 @@ static BOOL BtlCmd_SetTrainerEncounter(BattleSystem *battleSys, BattleContext *b if (BattleSystem_BattleType(battleSys) & 0x10) { for (i = 0; i < maxBattlers; i++) { battlerData = BattleSystem_BattlerData(battleSys, i); - if (battlerData->unk_191 != BATTLER_TYPE_PLAYER_SIDE_SLOT_2) { + if (battlerData->battlerType != BATTLER_TYPE_PLAYER_SIDE_SLOT_2) { BattleIO_SetTrainerEncounter(battleSys, i); } } @@ -999,7 +999,7 @@ static BOOL BtlCmd_SetTrainerEncounter(BattleSystem *battleSys, BattleContext *b for (i = 0; i < maxBattlers; i++) { battlerData = BattleSystem_BattlerData(battleSys, i); - if ((battlerData->unk_191 & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { + if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { BattleIO_SetTrainerEncounter(battleSys, i); if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_2vs2) == FALSE @@ -1014,7 +1014,7 @@ static BOOL BtlCmd_SetTrainerEncounter(BattleSystem *battleSys, BattleContext *b for (i = 0; i < maxBattlers; i++) { battlerData = BattleSystem_BattlerData(battleSys, i); - if (battlerData->unk_191 & BATTLER_TYPE_SOLO_ENEMY) { + if (battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) { BattleIO_SetTrainerEncounter(battleSys, i); if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_2vs2) == FALSE @@ -1070,7 +1070,7 @@ static BOOL BtlCmd_ThrowTrainerBall(BattleSystem *battleSys, BattleContext *batt for (i = 0; i < maxBattlers; i++) { battlerData = BattleSystem_BattlerData(battleSys, i); - if ((battlerData->unk_191 & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { + if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { BattleIO_ThrowTrainerBall(battleSys, i, ballTypeIn); if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_2vs2) == FALSE @@ -1085,7 +1085,7 @@ static BOOL BtlCmd_ThrowTrainerBall(BattleSystem *battleSys, BattleContext *batt for (i = 0; i < maxBattlers; i++) { battlerData = BattleSystem_BattlerData(battleSys, i); - if (battlerData->unk_191 & BATTLER_TYPE_SOLO_ENEMY) { + if (battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) { BattleIO_ThrowTrainerBall(battleSys, i, ballTypeIn); if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_2vs2) == FALSE @@ -1140,7 +1140,7 @@ static BOOL BtlCmd_SlideTrainerOut(BattleSystem *battleSys, BattleContext *battl for (i = 0; i < maxBattlers; i++) { battlerData = BattleSystem_BattlerData(battleSys, i); - if ((battlerData->unk_191 & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { + if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { BattleIO_SlideTrainerOut(battleSys, i); if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_2vs2) == FALSE @@ -1155,7 +1155,7 @@ static BOOL BtlCmd_SlideTrainerOut(BattleSystem *battleSys, BattleContext *battl for (i = 0; i < maxBattlers; i++) { battlerData = BattleSystem_BattlerData(battleSys, i); - if (battlerData->unk_191 & BATTLER_TYPE_SOLO_ENEMY) { + if (battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) { BattleIO_SlideTrainerOut(battleSys, i); if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_2vs2) == FALSE @@ -1171,8 +1171,8 @@ static BOOL BtlCmd_SlideTrainerOut(BattleSystem *battleSys, BattleContext *battl for (i = 0; i < maxBattlers; i++) { battlerData = BattleSystem_BattlerData(battleSys, i); - if (battlerData->unk_191 == BATTLER_TYPE_SOLO_PLAYER - || battlerData->unk_191 == BATTLER_TYPE_PLAYER_SIDE_SLOT_1) { + if (battlerData->battlerType == BATTLER_TYPE_SOLO_PLAYER + || battlerData->battlerType == BATTLER_TYPE_PLAYER_SIDE_SLOT_1) { BattleIO_SlideTrainerOut(battleSys, i); break; } @@ -1183,8 +1183,8 @@ static BOOL BtlCmd_SlideTrainerOut(BattleSystem *battleSys, BattleContext *battl for (i = 0; i < maxBattlers; i++) { battlerData = BattleSystem_BattlerData(battleSys, i); - if (battlerData->unk_191 == BATTLER_TYPE_SOLO_ENEMY - || battlerData->unk_191 == BATTLER_TYPE_ENEMY_SIDE_SLOT_1) { + if (battlerData->battlerType == BATTLER_TYPE_SOLO_ENEMY + || battlerData->battlerType == BATTLER_TYPE_ENEMY_SIDE_SLOT_1) { BattleIO_SlideTrainerOut(battleSys, i); break; } @@ -1195,7 +1195,7 @@ static BOOL BtlCmd_SlideTrainerOut(BattleSystem *battleSys, BattleContext *battl for (i = 0; i < maxBattlers; i++) { battlerData = BattleSystem_BattlerData(battleSys, i); - if (battlerData->unk_191 == BATTLER_TYPE_PLAYER_SIDE_SLOT_2) { + if (battlerData->battlerType == BATTLER_TYPE_PLAYER_SIDE_SLOT_2) { BattleIO_SlideTrainerOut(battleSys, i); break; } @@ -1206,7 +1206,7 @@ static BOOL BtlCmd_SlideTrainerOut(BattleSystem *battleSys, BattleContext *battl for (i = 0; i < maxBattlers; i++) { battlerData = BattleSystem_BattlerData(battleSys, i); - if (battlerData->unk_191 == BATTLER_TYPE_ENEMY_SIDE_SLOT_2) { + if (battlerData->battlerType == BATTLER_TYPE_ENEMY_SIDE_SLOT_2) { BattleIO_SlideTrainerOut(battleSys, i); break; } @@ -1257,7 +1257,7 @@ static BOOL BtlCmd_SlideTrainerIn(BattleSystem *battleSys, BattleContext *battle for (i = 0; i < maxBattlers; i++) { battlerData = BattleSystem_BattlerData(battleSys, i); - if ((battlerData->unk_191 & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { + if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { BattleIO_SlideTrainerIn(battleSys, i, posIn); if (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_DOUBLES) { @@ -1271,7 +1271,7 @@ static BOOL BtlCmd_SlideTrainerIn(BattleSystem *battleSys, BattleContext *battle for (i = 0; i < maxBattlers; i++) { battlerData = BattleSystem_BattlerData(battleSys, i); - if (battlerData->unk_191 & BATTLER_TYPE_SOLO_ENEMY) { + if (battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) { BattleIO_SlideTrainerIn(battleSys, i, posIn); if (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_DOUBLES) { @@ -1285,8 +1285,8 @@ static BOOL BtlCmd_SlideTrainerIn(BattleSystem *battleSys, BattleContext *battle for (i = 0; i < maxBattlers; i++) { battlerData = BattleSystem_BattlerData(battleSys, i); - if (battlerData->unk_191 == BATTLER_TYPE_SOLO_PLAYER - || battlerData->unk_191 == BATTLER_TYPE_PLAYER_SIDE_SLOT_1) { + if (battlerData->battlerType == BATTLER_TYPE_SOLO_PLAYER + || battlerData->battlerType == BATTLER_TYPE_PLAYER_SIDE_SLOT_1) { BattleIO_SlideTrainerIn(battleSys, i, posIn); break; } @@ -1297,8 +1297,8 @@ static BOOL BtlCmd_SlideTrainerIn(BattleSystem *battleSys, BattleContext *battle for (i = 0; i < maxBattlers; i++) { battlerData = BattleSystem_BattlerData(battleSys, i); - if (battlerData->unk_191 == BATTLER_TYPE_SOLO_ENEMY - || battlerData->unk_191 == BATTLER_TYPE_ENEMY_SIDE_SLOT_1) { + if (battlerData->battlerType == BATTLER_TYPE_SOLO_ENEMY + || battlerData->battlerType == BATTLER_TYPE_ENEMY_SIDE_SLOT_1) { BattleIO_SlideTrainerIn(battleSys, i, posIn); break; } @@ -1309,7 +1309,7 @@ static BOOL BtlCmd_SlideTrainerIn(BattleSystem *battleSys, BattleContext *battle for (i = 0; i < maxBattlers; i++) { battlerData = BattleSystem_BattlerData(battleSys, i); - if (battlerData->unk_191 == BATTLER_TYPE_PLAYER_SIDE_SLOT_2) { + if (battlerData->battlerType == BATTLER_TYPE_PLAYER_SIDE_SLOT_2) { BattleIO_SlideTrainerIn(battleSys, i, posIn); break; } @@ -1320,7 +1320,7 @@ static BOOL BtlCmd_SlideTrainerIn(BattleSystem *battleSys, BattleContext *battle for (i = 0; i < maxBattlers; i++) { battlerData = BattleSystem_BattlerData(battleSys, i); - if (battlerData->unk_191 == BATTLER_TYPE_ENEMY_SIDE_SLOT_2) { + if (battlerData->battlerType == BATTLER_TYPE_ENEMY_SIDE_SLOT_2) { BattleIO_SlideTrainerIn(battleSys, i, posIn); break; } @@ -1376,7 +1376,7 @@ static BOOL BtlCmd_SlideHPGaugeIn(BattleSystem *battleSys, BattleContext *battle for (i = 0; i < maxBattlers; i++) { battlerData = BattleSystem_BattlerData(battleSys, i); - if ((battlerData->unk_191 & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { + if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { BattleIO_SlideHPGaugeIn(battleSys, battleCtx, i, 0); } } @@ -1386,7 +1386,7 @@ static BOOL BtlCmd_SlideHPGaugeIn(BattleSystem *battleSys, BattleContext *battle for (i = 0; i < maxBattlers; i++) { battlerData = BattleSystem_BattlerData(battleSys, i); - if (battlerData->unk_191 & BATTLER_TYPE_SOLO_ENEMY) { + if (battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) { BattleIO_SlideHPGaugeIn(battleSys, battleCtx, i, 0); } } @@ -1434,7 +1434,7 @@ static BOOL BtlCmd_SlideHPGaugeInWait(BattleSystem *battleSys, BattleContext *ba for (i = 0; i < maxBattlers; i++) { battlerData = BattleSystem_BattlerData(battleSys, i); - if ((battlerData->unk_191 & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { + if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { BattleIO_SlideHPGaugeIn(battleSys, battleCtx, i, wait); wait += 4; } @@ -1445,7 +1445,7 @@ static BOOL BtlCmd_SlideHPGaugeInWait(BattleSystem *battleSys, BattleContext *ba for (i = 0; i < maxBattlers; i++) { battlerData = BattleSystem_BattlerData(battleSys, i); - if (battlerData->unk_191 & BATTLER_TYPE_SOLO_ENEMY) { + if (battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) { BattleIO_SlideHPGaugeIn(battleSys, battleCtx, i, wait); wait += 4; } @@ -1492,7 +1492,7 @@ static BOOL BtlCmd_SlideHPGaugeOut(BattleSystem *battleSys, BattleContext *battl for (i = 0; i < maxBattlers; i++) { battlerData = BattleSystem_BattlerData(battleSys, i); - if ((battlerData->unk_191 & BATTLER_TYPE_SOLO_ENEMY) == FALSE + if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE && (battleCtx->battlersSwitchingMask & FlagIndex(i)) == FALSE) { BattleIO_SlideHPGaugeOut(battleSys, i); } @@ -1503,7 +1503,7 @@ static BOOL BtlCmd_SlideHPGaugeOut(BattleSystem *battleSys, BattleContext *battl for (i = 0; i < maxBattlers; i++) { battlerData = BattleSystem_BattlerData(battleSys, i); - if (battlerData->unk_191 & BATTLER_TYPE_SOLO_ENEMY) { + if (battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) { BattleIO_SlideHPGaugeOut(battleSys, i); } } @@ -2398,73 +2398,82 @@ static BOOL BtlCmd_CheckCritical(BattleSystem *battleSys, BattleContext *battleC return FALSE; } -static BOOL ov16_02241D34 (BattleSystem * param0, BattleContext * param1) +/** + * @brief Calculate the amount of experience to be given to each participating + * battler. + * + * Inputs: + * 1. The jump distance if no experience is to be given. i.e., the defeated + * battler is an ally, or the battle type explicitly forbids experience gain. + * + * Side effects: + * - battleCtx->gainedExp will be updated with the amount of experience to be + * given to each participating battler. + * - battleCtx->sharedExp will be updated with the amount of experience to be + * given to each participating battler which was holding an Exp Share. + * + * @param battleSys + * @param battleCtx + * @return FALSE + */ +static BOOL BtlCmd_CalcExpGain(BattleSystem *battleSys, BattleContext *battleCtx) { - int v0; - u32 v1 = BattleSystem_BattleType(param0); - BattlerData * v2 = BattleSystem_BattlerData(param0, param1->faintedMon); + int jump; + u32 battleType = BattleSystem_BattleType(battleSys); + BattlerData *battlerData = BattleSystem_BattlerData(battleSys, battleCtx->faintedMon); - BattleScript_Iter(param1, 1); - v0 = BattleScript_Read(param1); + BattleScript_Iter(battleCtx, 1); + jump = BattleScript_Read(battleCtx); - if ((v2->unk_191 & 0x1) && ((v1 & (0x4 | 0x20 | 0x80 | 0x200)) == 0)) { - { - int v3; - int v4; - int v5 = 0; - int v6 = 0; - u16 v7; - u16 v8; - int v9; - Pokemon * v10; + if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) && (battleType & BATTLE_TYPE_NO_EXPERIENCE) == FALSE) { + int i; + int totalMonsGainingExp = 0; + int totalMonsWithExpShare = 0; - for (v3 = 0; v3 < Party_GetCurrentCount(BattleSystem_Party(param0, 0)); v3++) { - v10 = BattleSystem_PartyPokemon(param0, 0, v3); + for (i = 0; i < Party_GetCurrentCount(BattleSystem_Party(battleSys, BATTLER_US)); i++) { + Pokemon *mon = BattleSystem_PartyPokemon(battleSys, BATTLER_US, i); - if ((Pokemon_GetValue(v10, MON_DATA_SPECIES, NULL)) && (Pokemon_GetValue(v10, MON_DATA_CURRENT_HP, NULL))) { - if (param1->monsGainingExp[(param1->faintedMon >> 1) & 1] & FlagIndex(v3)) { - v5++; - } - - v7 = Pokemon_GetValue(v10, MON_DATA_HELD_ITEM, NULL); - v9 = BattleSystem_GetItemData(param1, v7, 1); - - if (v9 == 51) { - v6++; - } - } - } - - v8 = PokemonPersonalData_GetSpeciesValue(param1->battleMons[param1->faintedMon].species, 9); - v8 = (v8 * param1->battleMons[param1->faintedMon].level) / 7; - - if (v6) { - param1->gainedExp = (v8 / 2) / v5; - - if (param1->gainedExp == 0) { - param1->gainedExp = 1; + if (Pokemon_GetValue(mon, MON_DATA_SPECIES, NULL) && Pokemon_GetValue(mon, MON_DATA_CURRENT_HP, NULL)) { + if (battleCtx->monsGainingExp[(battleCtx->faintedMon >> 1) & 1] & FlagIndex(i)) { + totalMonsGainingExp++; } - param1->sharedExp = (v8 / 2) / v6; - - if (param1->sharedExp == 0) { - param1->sharedExp = 1; + u16 item = Pokemon_GetValue(mon, MON_DATA_HELD_ITEM, NULL); + if (BattleSystem_GetItemData(battleCtx, item, ITEM_PARAM_HOLD_EFFECT) == HOLD_EFFECT_EXP_SHARE) { + totalMonsWithExpShare++; } - } else { - param1->gainedExp = v8 / v5; - - if (param1->gainedExp == 0) { - param1->gainedExp = 1; - } - - param1->sharedExp = 0; } } + + u16 exp = PokemonPersonalData_GetSpeciesValue(battleCtx->battleMons[battleCtx->faintedMon].species, MON_DATA_PERSONAL_BASE_EXP); + exp = (exp * battleCtx->battleMons[battleCtx->faintedMon].level) / 7; + + if (totalMonsWithExpShare) { + battleCtx->gainedExp = (exp / 2) / totalMonsGainingExp; + + if (battleCtx->gainedExp == 0) { + battleCtx->gainedExp = 1; + } + + battleCtx->sharedExp = (exp / 2) / totalMonsWithExpShare; + + if (battleCtx->sharedExp == 0) { + battleCtx->sharedExp = 1; + } + } else { + battleCtx->gainedExp = exp / totalMonsGainingExp; + + if (battleCtx->gainedExp == 0) { + battleCtx->gainedExp = 1; + } + + battleCtx->sharedExp = 0; + } } else { - BattleScript_Iter(param1, v0); + BattleScript_Iter(battleCtx, jump); } - return 0; + return FALSE; } static BOOL ov16_02241EB0 (BattleSystem * param0, BattleContext * param1) @@ -7455,7 +7464,7 @@ static BOOL ov16_02248204 (BattleSystem * param0, BattleContext * param1) for (v1 = 0; v1 < v3; v1++) { v2 = BattleSystem_BattlerData(param0, v1); - if ((v2->unk_191 & 0x1) == 0) { + if ((v2->battlerType & 0x1) == 0) { ov16_022667E8(param0, v1); } } @@ -7464,7 +7473,7 @@ static BOOL ov16_02248204 (BattleSystem * param0, BattleContext * param1) for (v1 = 0; v1 < v3; v1++) { v2 = BattleSystem_BattlerData(param0, v1); - if (v2->unk_191 & 0x1) { + if (v2->battlerType & 0x1) { ov16_022667E8(param0, v1); } } @@ -7494,7 +7503,7 @@ static BOOL ov16_02248294 (BattleSystem * param0, BattleContext * param1) for (v1 = 0; v1 < v3; v1++) { v2 = BattleSystem_BattlerData(param0, v1); - if ((v2->unk_191 & 0x1) == 0) { + if ((v2->battlerType & 0x1) == 0) { ov16_02266804(param0, v1); } } @@ -7503,7 +7512,7 @@ static BOOL ov16_02248294 (BattleSystem * param0, BattleContext * param1) for (v1 = 0; v1 < v3; v1++) { v2 = BattleSystem_BattlerData(param0, v1); - if (v2->unk_191 & 0x1) { + if (v2->battlerType & 0x1) { ov16_02266804(param0, v1); } } @@ -9500,7 +9509,7 @@ static int BattleScript_Battler(BattleSystem *battleSys, BattleContext *battleCt maxBattlers = BattleSystem_MaxBattlers(battleSys); for (battlerOut = 0; battlerOut < maxBattlers; battlerOut++) { battlerData = BattleSystem_BattlerData(battleSys, battlerOut); - if (battlerData->unk_191 & BATTLER_TYPE_SOLO_ENEMY) { + if (battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) { break; } } @@ -9510,7 +9519,7 @@ static int BattleScript_Battler(BattleSystem *battleSys, BattleContext *battleCt maxBattlers = BattleSystem_MaxBattlers(battleSys); for (battlerOut = 0; battlerOut < maxBattlers; battlerOut++) { battlerData = BattleSystem_BattlerData(battleSys, battlerOut); - if (battlerData->unk_191 == BATTLER_TYPE_ENEMY_SIDE_SLOT_1 || battlerData->unk_191 == BATTLER_TYPE_SOLO_ENEMY) { + if (battlerData->battlerType == BATTLER_TYPE_ENEMY_SIDE_SLOT_1 || battlerData->battlerType == BATTLER_TYPE_SOLO_ENEMY) { break; } } @@ -9526,7 +9535,7 @@ static int BattleScript_Battler(BattleSystem *battleSys, BattleContext *battleCt maxBattlers = BattleSystem_MaxBattlers(battleSys); for (battlerOut = 0; battlerOut < maxBattlers; battlerOut++) { battlerData = BattleSystem_BattlerData(battleSys, battlerOut); - if (battlerData->unk_191 == expectedBattlerType) { + if (battlerData->battlerType == expectedBattlerType) { break; } } @@ -9536,7 +9545,7 @@ static int BattleScript_Battler(BattleSystem *battleSys, BattleContext *battleCt maxBattlers = BattleSystem_MaxBattlers(battleSys); for (battlerOut = 0; battlerOut < maxBattlers; battlerOut++) { battlerData = BattleSystem_BattlerData(battleSys, battlerOut); - if ((battlerData->unk_191 & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { + if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { break; } } @@ -9546,8 +9555,8 @@ static int BattleScript_Battler(BattleSystem *battleSys, BattleContext *battleCt maxBattlers = BattleSystem_MaxBattlers(battleSys); for (battlerOut = 0; battlerOut < maxBattlers; battlerOut++) { battlerData = BattleSystem_BattlerData(battleSys, battlerOut); - if (battlerData->unk_191 == BATTLER_TYPE_PLAYER_SIDE_SLOT_1 - || battlerData->unk_191 == BATTLER_TYPE_SOLO_PLAYER) { + if (battlerData->battlerType == BATTLER_TYPE_PLAYER_SIDE_SLOT_1 + || battlerData->battlerType == BATTLER_TYPE_SOLO_PLAYER) { break; } } @@ -9563,7 +9572,7 @@ static int BattleScript_Battler(BattleSystem *battleSys, BattleContext *battleCt maxBattlers = BattleSystem_MaxBattlers(battleSys); for (battlerOut = 0; battlerOut < maxBattlers; battlerOut++) { battlerData = BattleSystem_BattlerData(battleSys, battlerOut); - if (battlerData->unk_191 == expectedBattlerType) { + if (battlerData->battlerType == expectedBattlerType) { break; } } diff --git a/src/overlay016/ov16_0225BFFC.c b/src/overlay016/ov16_0225BFFC.c index add80734fd..931d2efcce 100644 --- a/src/overlay016/ov16_0225BFFC.c +++ b/src/overlay016/ov16_0225BFFC.c @@ -167,7 +167,7 @@ BattlerData * ov16_0225BFFC (BattleSystem * param0, UnkStruct_ov16_0223C2C0 * pa MI_CpuClearFast(v0, sizeof(BattlerData)); v0->unk_190 = param1->unk_00; - v0->unk_191 = param1->unk_01; + v0->battlerType = param1->unk_01; v0->unk_1A0 = NARC_ctor(NARC_INDEX_POKETOOL__POKE_EDIT__PL_POKE_DATA, 5); return v0; @@ -182,11 +182,11 @@ void ov16_0225C038 (BattleSystem * param0, BattlerData * param1, int param2, int return; } - if ((param1->unk_191 & 0x1) && ((BattleSystem_BattleType(param0) & 0x1) == 0)) { + if ((param1->battlerType & 0x1) && ((BattleSystem_BattleType(param0) & 0x1) == 0)) { return; } - v0.unk_00 = Unk_ov16_0226F174[param1->unk_191]; + v0.unk_00 = Unk_ov16_0226F174[param1->battlerType]; v0.unk_04 = 5; v0.unk_08 = 4; v0.unk_0C = param1->unk_190; @@ -648,7 +648,7 @@ static void ov16_0225C558 (BattleSystem * param0, BattlerData * param1) v1 = ov16_0223E02C(param0); if (param1->bootState == 0x0) { - if ((v0 & 0x8) || (((v0 & 0x8) == 0) && (param1->unk_191 != 4))) { + if ((v0 & 0x8) || (((v0 & 0x8) == 0) && (param1->battlerType != 4))) { ov16_0226947C(v1, -0xd00, 0); } } @@ -717,7 +717,7 @@ static void ov16_0225C684 (BattleSystem * param0, BattlerData * param1) int v3; int v4; - if (param1->unk_191 & 0x1) { + if (param1->battlerType & 0x1) { v4 = 2; } else { v4 = 0; @@ -737,7 +737,7 @@ static void ov16_0225C684 (BattleSystem * param0, BattlerData * param1) v3 = sub_02076648(v0->unk_02, v0->unk_04, v4, v0->unk_01, v0->unk_08); ov16_0223F2FC(ov16_0223E0C8(param0), param1->unk_190, v3); - v3 = ov12_022384CC(param1->unk_191, 1) + v3; + v3 = ov12_022384CC(param1->battlerType, 1) + v3; sub_02007DEC(param1->unk_20, 1, v3); ov16_02266ABC(param0, param1->unk_190, v0->unk_00); diff --git a/src/overlay016/ov16_0225CBB8.c b/src/overlay016/ov16_0225CBB8.c index 69007e8ef4..bff481b297 100644 --- a/src/overlay016/ov16_0225CBB8.c +++ b/src/overlay016/ov16_0225CBB8.c @@ -341,14 +341,14 @@ void ov16_0225CBDC (BattleSystem * param0, BattlerData * param1, UnkStruct_ov16_ v4->unk_12 = 0; - if (param1->unk_191 & 0x1) { + if (param1->battlerType & 0x1) { v4->unk_13 = 2; v4->unk_0C = ov16_0223E020(param0, 1); - sub_0200D4C4(v4->unk_0C->unk_00, Unk_ov12_0223B0B8[param1->unk_191 & 1][0], (8 * 11)); + sub_0200D4C4(v4->unk_0C->unk_00, Unk_ov12_0223B0B8[param1->battlerType & 1][0], (8 * 11)); } else { v4->unk_13 = 0; v4->unk_0C = ov16_0223E020(param0, 0); - sub_0200D4C4(v4->unk_0C->unk_00, Unk_ov12_0223B0B8[param1->unk_191 & 1][0], (128 + 8)); + sub_0200D4C4(v4->unk_0C->unk_00, Unk_ov12_0223B0B8[param1->battlerType & 1][0], (128 + 8)); } if (param2->unk_01_2) { @@ -364,9 +364,9 @@ void ov16_0225CBDC (BattleSystem * param0, BattlerData * param1, UnkStruct_ov16_ sub_02078A80(param1->unk_1A0, &v7, param2->unk_02); sub_02078AA4(param1->unk_1A0, &v8, param2->unk_02); sub_02078AC8(param1->unk_1A0, &v9, param2->unk_02); - sub_020789BC(param1->unk_1A0, &v3[0], param2->unk_02, param1->unk_191); + sub_020789BC(param1->unk_1A0, &v3[0], param2->unk_02, param1->battlerType); - v4->unk_08 = param1->unk_20 = ov16_02263B30(param0, v2, &v1, Unk_ov12_0223B0B8[param1->unk_191][0], Unk_ov12_0223B0B8[param1->unk_191][1], Unk_ov12_0223B0B8[param1->unk_191][2], v6, v7, v8, v9, param1->unk_190, &v3[0], NULL); + v4->unk_08 = param1->unk_20 = ov16_02263B30(param0, v2, &v1, Unk_ov12_0223B0B8[param1->battlerType][0], Unk_ov12_0223B0B8[param1->battlerType][1], Unk_ov12_0223B0B8[param1->battlerType][2], v6, v7, v8, v9, param1->unk_190, &v3[0], NULL); if (v4->unk_13 == 2) { sub_020086FC(v4->unk_08, 8, 8, 0, 0x0); @@ -384,7 +384,7 @@ void ov16_0225CBDC (BattleSystem * param0, BattlerData * param1, UnkStruct_ov16_ v4->unk_14 = v11; } else { - v4->unk_14 = Unk_ov12_0223B0A0[param1->unk_191][0]; + v4->unk_14 = Unk_ov12_0223B0A0[param1->battlerType][0]; } v4->unk_00 = param0; @@ -394,7 +394,7 @@ void ov16_0225CBDC (BattleSystem * param0, BattlerData * param1, UnkStruct_ov16_ v4->unk_16 = param2->unk_02; v4->unk_2C = param2->unk_01_3; v4->unk_18 = param2->unk_08; - v4->unk_1C = param1->unk_191; + v4->unk_1C = param1->battlerType; v4->unk_24 = Pokemon_GetNatureOf(param2->unk_04); v4->unk_28 = param2->unk_01_2; @@ -416,7 +416,7 @@ void ov16_0225CE1C (BattleSystem * param0, BattlerData * param1, UnkStruct_ov16_ v2 = BattleSystem_BattleType(param0); v1 = (UnkStruct_ov16_0225EA80 *)Heap_AllocFromHeap(5, sizeof(UnkStruct_ov16_0225EA80)); - if (param1->unk_191 & 0x1) { + if (param1->battlerType & 0x1) { v1->unk_84 = 2; } else { v1->unk_84 = 0; @@ -445,7 +445,7 @@ void ov16_0225CE1C (BattleSystem * param0, BattlerData * param1, UnkStruct_ov16_ v1->unk_81 = param1->unk_190; v1->unk_86 = param2->unk_02; v1->unk_97 = param2->unk_01_3; - v1->unk_82 = param1->unk_191; + v1->unk_82 = param1->battlerType; v1->unk_88 = param2->unk_08; v1->unk_8C = param2->unk_0C; v1->unk_8D = Pokemon_GetNatureOf(param2->unk_04); @@ -468,7 +468,7 @@ void ov16_0225CF70 (BattleSystem * param0, BattlerData * param1, UnkStruct_ov16_ v2 = (UnkStruct_ov16_0225EA80 *)Heap_AllocFromHeap(5, sizeof(UnkStruct_ov16_0225EA80)); v2->unk_83 = 0; - if (param1->unk_191 & 0x1) { + if (param1->battlerType & 0x1) { v2->unk_84 = 2; } else { v2->unk_84 = 0; @@ -495,7 +495,7 @@ void ov16_0225CF70 (BattleSystem * param0, BattlerData * param1, UnkStruct_ov16_ v2->unk_81 = param1->unk_190; v2->unk_86 = param2->unk_02; v2->unk_97 = param2->unk_01_3; - v2->unk_82 = param1->unk_191; + v2->unk_82 = param1->battlerType; v2->unk_88 = param2->unk_08; v2->unk_8C = param2->unk_0C; v2->unk_8D = Pokemon_GetNatureOf(param2->unk_04); @@ -527,7 +527,7 @@ void ov16_0225D118 (BattleSystem * param0, BattlerData * param1, UnkStruct_ov16_ v1->unk_08 = param1->unk_20; v1->unk_68 = param2->unk_00; v1->unk_69 = param1->unk_190; - v1->unk_6A = param1->unk_191; + v1->unk_6A = param1->battlerType; v1->unk_6B = 0; v1->unk_6C = param2->unk_01; v1->unk_6E = param2->unk_02; @@ -554,7 +554,7 @@ void ov16_0225D1C4 (BattleSystem * param0, BattlerData * param1, UnkStruct_ov16_ v0->unk_04 = param1->unk_20; v0->unk_08 = param2->unk_00; v0->unk_09 = param1->unk_190; - v0->unk_0A = param1->unk_191; + v0->unk_0A = param1->battlerType; v0->unk_0B = 0; v0->unk_0C = param2->unk_01; @@ -572,30 +572,30 @@ void ov16_0225D228 (BattleSystem * param0, BattlerData * param1, UnkStruct_ov16_ v1 = (UnkStruct_ov16_02264650_1 *)Heap_AllocFromHeap(5, sizeof(UnkStruct_ov16_02264650_1)); v1->unk_0E = 0; - if (param1->unk_191 & 0x1) { + if (param1->battlerType & 0x1) { v1->unk_0F = 2; v1->unk_04 = ov16_0223E020(param0, 1); - sub_0200D4C4(v1->unk_04->unk_00, Unk_ov12_0223B0B8[param1->unk_191 & 1][0], (8 * 11)); + sub_0200D4C4(v1->unk_04->unk_00, Unk_ov12_0223B0B8[param1->battlerType & 1][0], (8 * 11)); } else { v1->unk_0F = 0; v1->unk_04 = ov16_0223E020(param0, 0); - sub_0200D4C4(v1->unk_04->unk_00, Unk_ov12_0223B0B8[param1->unk_191 & 1][0], (128 + 8)); + sub_0200D4C4(v1->unk_04->unk_00, Unk_ov12_0223B0B8[param1->battlerType & 1][0], (128 + 8)); } - if ((BattleSystem_BattleType(param0) & 0x8) || ((BattleSystem_BattleType(param0) & 0x10) && (param1->unk_191 & 0x1))) { - v2 = param1->unk_191; + if ((BattleSystem_BattleType(param0) & 0x8) || ((BattleSystem_BattleType(param0) & 0x10) && (param1->battlerType & 0x1))) { + v2 = param1->battlerType; } else { - v2 = param1->unk_191 & 1; + v2 = param1->battlerType & 1; } param2->unk_02 = ov16_02264768(param0, param1->unk_190, param2->unk_02); - v1->unk_08 = param1->unk_18 = ov16_022643B8(param0, v2, param2->unk_02, param1->unk_191, Unk_ov12_0223B0B8[v2][0], Unk_ov12_0223B0B8[v2][1]); + v1->unk_08 = param1->unk_18 = ov16_022643B8(param0, v2, param2->unk_02, param1->battlerType, Unk_ov12_0223B0B8[v2][0], Unk_ov12_0223B0B8[v2][1]); v1->unk_10 = Unk_ov12_0223B0A0[v2][0]; v1->unk_00 = param0; v1->unk_0C = param2->unk_00; v1->unk_0D = param1->unk_190; - v1->unk_14 = param1->unk_191; + v1->unk_14 = param1->battlerType; v1->unk_1C = 0; if ((v1->unk_14 == 0) || (v1->unk_14 == 2)) { @@ -618,7 +618,7 @@ void ov16_0225D360 (BattleSystem * param0, BattlerData * param1, UnkStruct_ov16_ v0->unk_09 = param1->unk_190; v0->unk_04 = param1; - if (param1->unk_191 & 0x1) { + if (param1->battlerType & 0x1) { v0->unk_0B = 2; v0->unk_0C = 0; } else { @@ -646,7 +646,7 @@ void ov16_0225D3CC (BattleSystem * param0, BattlerData * param1) v0->unk_09 = param1->unk_190; v0->unk_04 = param1; - if (param1->unk_191 & 0x1) { + if (param1->battlerType & 0x1) { v0->unk_0B = 2; } else { v0->unk_0B = 0; @@ -667,14 +667,14 @@ void ov16_0225D414 (BattleSystem * param0, BattlerData * param1, UnkStruct_ov16_ v3 = (UnkStruct_ov16_02260384 *)Heap_AllocFromHeap(5, sizeof(UnkStruct_ov16_02260384)); v3->unk_0A = 0; - if (param1->unk_191 & 0x1) { + if (param1->battlerType & 0x1) { v3->unk_0B = 2; } else { v3->unk_0B = 0; } - v3->unk_04 = param1->unk_18 = ov16_022643B8(param0, param1->unk_191 & 1, param2->unk_02, param1->unk_191, Unk_ov12_0223B0DC[param1->unk_191 & 1][0], Unk_ov12_0223B0DC[param1->unk_191 & 1][1]); - v3->unk_0C = Unk_ov12_0223B0A0[param1->unk_191 & 1][param2->unk_04]; + v3->unk_04 = param1->unk_18 = ov16_022643B8(param0, param1->battlerType & 1, param2->unk_02, param1->battlerType, Unk_ov12_0223B0DC[param1->battlerType & 1][0], Unk_ov12_0223B0DC[param1->battlerType & 1][1]); + v3->unk_0C = Unk_ov12_0223B0A0[param1->battlerType & 1][param2->unk_04]; v3->unk_00 = param0; v3->unk_08 = param2->unk_00; v3->unk_09 = param1->unk_190; @@ -691,7 +691,7 @@ void ov16_0225D4A8 (BattleSystem * param0, BattlerData * param1, UnkStruct_ov16_ v0->unk_0C = param0; v0->unk_24 = param1->unk_190; - v0->unk_25 = ov16_0226825C(param1->unk_191, BattleSystem_BattleType(param0)); + v0->unk_25 = ov16_0226825C(param1->battlerType, BattleSystem_BattleType(param0)); v0->unk_4C = param2->unk_00; v0->unk_28 = param2->unk_02; v0->unk_2C = param2->unk_04; @@ -739,7 +739,7 @@ void ov16_0225D5B8 (BattleSystem * param0, BattlerData * param1, UnkStruct_ov16_ v0->unk_00 = param0; v0->unk_08 = param2->unk_00; v0->unk_09 = param1->unk_190; - v0->unk_34 = param1->unk_191; + v0->unk_34 = param1->battlerType; v0->unk_04 = ¶m1->unk_28; v0->unk_23 = param2->unk_01; v0->unk_36 = param2->unk_24; @@ -785,7 +785,7 @@ void ov16_0225D698 (BattleSystem * param0, BattlerData * param1, UnkStruct_ov16_ v0->unk_00 = param0; v0->unk_1C = param1->unk_90[0]; v0->unk_1D = param1->unk_190; - v0->unk_1E = param1->unk_191; + v0->unk_1E = param1->battlerType; v0->unk_04 = ¶m1->unk_28; v0->unk_1F = param2->unk_01; @@ -813,7 +813,7 @@ void ov16_0225D708 (BattleSystem * param0, BattlerData * param1, UnkStruct_ov16_ v0->unk_00 = param0; v0->unk_0C = param1->unk_90[0]; v0->unk_0D = param1->unk_190; - v0->unk_0E = param1->unk_191; + v0->unk_0E = param1->battlerType; v0->unk_30 = param2->unk_02; v0->unk_04 = ¶m1->unk_28; v0->unk_32 = param2->unk_01; @@ -844,7 +844,7 @@ void ov16_0225D794 (BattleSystem * param0, BattlerData * param1, UnkStruct_ov16_ v0->unk_00 = param0; v0->unk_0C = param2->unk_00; v0->unk_0D = param1->unk_190; - v0->unk_0F = param1->unk_191; + v0->unk_0F = param1->battlerType; v0->unk_14 = param2->unk_01; v0->unk_15 = param2->unk_02; v0->unk_16 = param2->unk_03; @@ -1001,7 +1001,7 @@ void ov16_0225DA74 (BattleSystem * param0, BattlerData * param1, UnkStruct_ov16_ v0->unk_0C = param0; v0->unk_4C = param2->unk_00; v0->unk_24 = param1->unk_190; - v0->unk_25 = ov16_0226825C(param1->unk_191, BattleSystem_BattleType(param0)); + v0->unk_25 = ov16_0226825C(param1->battlerType, BattleSystem_BattleType(param0)); v0->unk_28 = param2->unk_02; v0->unk_2C = param2->unk_04; v0->unk_30 = param2->unk_08; @@ -1032,7 +1032,7 @@ void ov16_0225DB00 (BattleSystem * param0, BattlerData * param1, UnkStruct_ov v0->unk_3C = param2->unk_0C; v0->unk_40 = param2->unk_08 - v0->unk_38; - if (param1->unk_191 == 0) { + if (param1->battlerType == 0) { v0->unk_10 = sub_0200D9E8(ov16_022629DC, v0, 1000); return; } else { @@ -1047,7 +1047,7 @@ void ov16_0225DB74 (BattleSystem * param0, BattlerData * param1, UnkStruct_ov16_ v0 = (UnkStruct_ov16_0225DB74 *)Heap_AllocFromHeap(5, sizeof(UnkStruct_ov16_0225DB74)); - if (param1->unk_191 & 0x1) { + if (param1->battlerType & 0x1) { v0->unk_67 = 2; } else { v0->unk_67 = 0; @@ -1081,7 +1081,7 @@ void ov16_0225DC4C (BattleSystem * param0, BattlerData * param1, UnkStruct_ov16_ { int v0; - if (param1->unk_191 & 0x1) { + if (param1->battlerType & 0x1) { v0 = 117; } else { v0 = -117; @@ -1286,7 +1286,7 @@ void ov16_0225E008 (BattleSystem * param0, BattlerData * param1, UnkStruct_ov16_ v0->unk_0C = param0; v0->unk_24 = param1->unk_190; - v0->unk_25 = ov16_0226825C(param1->unk_191, BattleSystem_BattleType(param0)); + v0->unk_25 = ov16_0226825C(param1->battlerType, BattleSystem_BattleType(param0)); v0->unk_4C = param2->unk_00; v0->unk_28 = param2->unk_02; v0->unk_2C = param2->unk_04; @@ -1349,7 +1349,7 @@ void ov16_0225E134 (BattleSystem * param0, BattlerData * param1, UnkStruct_ov16_ v0->unk_00 = param0; v0->unk_04 = param2->unk_00; v0->unk_05 = param1->unk_190; - v0->unk_06 = param1->unk_191; + v0->unk_06 = param1->battlerType; for (v1 = 0; v1 < 6; v1++) { v0->unk_08[v1] = param2->unk_02[v1]; @@ -1370,7 +1370,7 @@ void ov16_0225E17C (BattleSystem * param0, BattlerData * param1, UnkStruct_ov16_ v0->unk_00 = param0; v0->unk_04 = param2->unk_00; v0->unk_05 = param1->unk_190; - v0->unk_06 = param1->unk_191; + v0->unk_06 = param1->battlerType; v0->unk_0E = 0; sub_0200D9E8(ov16_02263604, v0, 0); @@ -1387,7 +1387,7 @@ void ov16_0225E1B4 (BattleSystem * param0, BattlerData * param1, UnkStruct_ov16_ v0->unk_00 = param0; v0->unk_04 = param2->unk_00; v0->unk_05 = param1->unk_190; - v0->unk_06 = param1->unk_191; + v0->unk_06 = param1->battlerType; for (v1 = 0; v1 < 6; v1++) { v0->unk_08[v1] = param2->unk_02[v1]; @@ -1409,7 +1409,7 @@ void ov16_0225E200 (BattleSystem * param0, BattlerData * param1, UnkStruct_ov16_ v0->unk_00 = param0; v0->unk_04 = param2->unk_00; v0->unk_05 = param1->unk_190; - v0->unk_06 = param1->unk_191; + v0->unk_06 = param1->battlerType; v0->unk_0E = 1; sub_0200D9E8(ov16_02263604, v0, 0); @@ -1544,7 +1544,7 @@ void ov16_0225E468 (BattleSystem * param0, BattlerData * param1, UnkStruct_ov16_ { int v0; - if (param1->unk_191 & 0x1) { + if (param1->battlerType & 0x1) { v0 = 117; } else { v0 = -117; @@ -2681,10 +2681,10 @@ static void ov16_0225FD5C (UnkStruct_0201CD38 * param0, void * param1) sub_0200D0F4(v0->unk_04->unk_18); v0->unk_04->unk_18 = NULL; - sub_0200D070(v8, 20015 + v0->unk_04->unk_191); - sub_0200D080(v8, 20010 + v0->unk_04->unk_191); - sub_0200D090(v8, 20007 + v0->unk_04->unk_191); - sub_0200D0A0(v8, 20007 + v0->unk_04->unk_191); + sub_0200D070(v8, 20015 + v0->unk_04->battlerType); + sub_0200D080(v8, 20010 + v0->unk_04->battlerType); + sub_0200D090(v8, 20007 + v0->unk_04->battlerType); + sub_0200D0A0(v8, 20007 + v0->unk_04->battlerType); } v0->unk_0A = 6; } @@ -2735,10 +2735,10 @@ static void ov16_0225FD5C (UnkStruct_0201CD38 * param0, void * param1) sub_0200D0F4(v0->unk_04->unk_18); v0->unk_04->unk_18 = NULL; - sub_0200D070(v10, 20015 + v0->unk_04->unk_191); - sub_0200D080(v10, 20010 + v0->unk_04->unk_191); - sub_0200D090(v10, 20007 + v0->unk_04->unk_191); - sub_0200D0A0(v10, 20007 + v0->unk_04->unk_191); + sub_0200D070(v10, 20015 + v0->unk_04->battlerType); + sub_0200D080(v10, 20010 + v0->unk_04->battlerType); + sub_0200D090(v10, 20007 + v0->unk_04->battlerType); + sub_0200D0A0(v10, 20007 + v0->unk_04->battlerType); } v0->unk_0A = 6; } @@ -2825,10 +2825,10 @@ static void ov16_02260284 (UnkStruct_0201CD38 * param0, void * param1) sub_0200D0F4(v0->unk_04->unk_18); v0->unk_04->unk_18 = NULL; - sub_0200D070(v3, 20015 + v0->unk_04->unk_191); - sub_0200D080(v3, 20010 + v0->unk_04->unk_191); - sub_0200D090(v3, 20007 + v0->unk_04->unk_191); - sub_0200D0A0(v3, 20007 + v0->unk_04->unk_191); + sub_0200D070(v3, 20015 + v0->unk_04->battlerType); + sub_0200D080(v3, 20010 + v0->unk_04->battlerType); + sub_0200D090(v3, 20007 + v0->unk_04->battlerType); + sub_0200D0A0(v3, 20007 + v0->unk_04->battlerType); } ov16_02266ABC(v0->unk_00, v0->unk_09, v0->unk_08); Heap_FreeToHeap(param1); @@ -5580,7 +5580,7 @@ void ov16_02263730 (BattleSystem * param0, BattlerData * param1) } } } else if ((v0 & (0x8 | 0x80)) == (0x8 | 0x80)) { - if (param1->unk_191 & 0x1) { + if (param1->battlerType & 0x1) { if (ov16_0223ED60(param0)) { param1->unk_00.unk_00 = &ov16_02260AB4; param1->unk_00.unk_04 = &ov16_02260DB0; @@ -5606,7 +5606,7 @@ void ov16_02263730 (BattleSystem * param0, BattlerData * param1) param1->unk_00.unk_10 = &ov16_0226232C; param1->unk_00.unk_14 = &ov16_0226266C; param1->bootState = 0x0; - } else if (param1->unk_191 != BattleSystem_BattlerSlot(param0, ov16_0223F6E4(param0) * 2)) { + } else if (param1->battlerType != BattleSystem_BattlerSlot(param0, ov16_0223F6E4(param0) * 2)) { param1->unk_00.unk_00 = &ov16_02260AE4; param1->unk_00.unk_04 = &ov16_02260E78; param1->unk_00.unk_08 = &ov16_022610EC; @@ -5632,7 +5632,7 @@ void ov16_02263730 (BattleSystem * param0, BattlerData * param1) param1->unk_00.unk_10 = &ov16_0226232C; param1->unk_00.unk_14 = &ov16_0226266C; param1->bootState = 0x0; - } else if (param1->unk_191 != BattleSystem_BattlerSlot(param0, ov16_0223F6E4(param0))) { + } else if (param1->battlerType != BattleSystem_BattlerSlot(param0, ov16_0223F6E4(param0))) { param1->unk_00.unk_00 = &ov16_02260AE4; param1->unk_00.unk_04 = &ov16_02260E78; param1->unk_00.unk_08 = &ov16_022610EC; @@ -5658,7 +5658,7 @@ void ov16_02263730 (BattleSystem * param0, BattlerData * param1) param1->unk_00.unk_10 = &ov16_0226232C; param1->unk_00.unk_14 = &ov16_0226266C; param1->bootState = 0x0; - } else if (param1->unk_191 & 0x1) { + } else if (param1->battlerType & 0x1) { param1->unk_00.unk_00 = &ov16_02260AE4; param1->unk_00.unk_04 = &ov16_02260E78; param1->unk_00.unk_08 = &ov16_022610EC; @@ -5676,7 +5676,7 @@ void ov16_02263730 (BattleSystem * param0, BattlerData * param1) param1->bootState = 0x0; } } else if (v0 & 0x200) { - if (param1->unk_191 & 0x1) { + if (param1->battlerType & 0x1) { param1->unk_00.unk_00 = &ov16_02260B84; param1->unk_00.unk_04 = NULL; param1->unk_00.unk_08 = NULL; @@ -5694,7 +5694,7 @@ void ov16_02263730 (BattleSystem * param0, BattlerData * param1) param1->bootState = 0x0; } } else if (v0 & 0x20) { - if (param1->unk_191 & 0x1) { + if (param1->battlerType & 0x1) { param1->unk_00.unk_00 = &ov16_02260B04; param1->unk_00.unk_04 = NULL; param1->unk_00.unk_08 = NULL; @@ -5712,7 +5712,7 @@ void ov16_02263730 (BattleSystem * param0, BattlerData * param1) param1->bootState = 0x0; } } else { - if (param1->unk_191 & 0x1) { + if (param1->battlerType & 0x1) { param1->unk_00.unk_00 = &ov16_02260AB4; param1->unk_00.unk_04 = &ov16_02260DB0; param1->unk_00.unk_08 = &ov16_022610A8; @@ -5744,7 +5744,7 @@ void ov16_02263730 (BattleSystem * param0, BattlerData * param1) u8 Battler_Type (BattlerData * param0) { - return param0->unk_191; + return param0->battlerType; } u8 Battler_BootState (BattlerData *battler) @@ -5825,7 +5825,7 @@ static UnkStruct_02007C7C * ov16_02263B30 (BattleSystem * param0, UnkStruct_0200 static void ov16_02263C1C (BattleSystem * param0, BattlerData * param1, UnkStruct_ov16_0225C3F8 * param2, BattleMessage * param3) { - if (param1->unk_191 & 0x1) { + if (param1->battlerType & 0x1) { if (BattleSystem_BattleType(param0) & 0x4) { param3->id = 990; param3->tags = 27; @@ -5862,7 +5862,7 @@ static void ov16_02263C1C (BattleSystem * param0, BattlerData * param1, UnkStruc static void ov16_02263CF0 (BattleSystem * param0, BattlerData * param1, UnkStruct_ov16_0225C40C * param2, BattleMessage * param3) { - if (param1->unk_191 & 0x1) { + if (param1->battlerType & 0x1) { if ((BattleSystem_BattleType(param0) & 0x4) == 0) { param3->id = 972; param3->tags = 50; @@ -5956,7 +5956,7 @@ static void ov16_02263E7C (BattleSystem * param0, BattlerData * param1, UnkStruc v0 = BattleSystem_BattleType(param0); - if (param1->unk_191 & 0x1) { + if (param1->battlerType & 0x1) { if (v0 & 0x2) { v1 = param1->unk_190; v2 = BattleSystem_Partner(param0, param1->unk_190); diff --git a/src/overlay016/ov16_0226485C.c b/src/overlay016/ov16_0226485C.c index 0541bf14f9..71840a93f5 100644 --- a/src/overlay016/ov16_0226485C.c +++ b/src/overlay016/ov16_0226485C.c @@ -431,7 +431,7 @@ void BattleIO_ReturnPokemon (BattleSystem * param0, BattleContext * param1, int int v2; int v3; - if (param0->battlers[param2]->unk_191 & 0x1) { + if (param0->battlers[param2]->battlerType & 0x1) { v1 = 2; } else { v1 = 0; @@ -472,7 +472,7 @@ void ov16_02265050 (BattleSystem * param0, int param1, int param2) int v1; int v2; - if (param0->battlers[param1]->unk_191 & 0x1) { + if (param0->battlers[param1]->battlerType & 0x1) { v1 = 2; } else { v1 = 0; diff --git a/src/overlay114/ov114_0225C700.c b/src/overlay114/ov114_0225C700.c index 07b9645173..d2df5277b6 100644 --- a/src/overlay114/ov114_0225C700.c +++ b/src/overlay114/ov114_0225C700.c @@ -258,7 +258,7 @@ typedef struct { u8 unk_0C[2][192]; UnkStruct_0201CD38 * unk_18C; GXWndPlane unk_190; - GXWndPlane unk_191; + GXWndPlane battlerType; int unk_194; } UnkStruct_ov114_0225FAB8; @@ -3681,8 +3681,8 @@ static void ov114_0225F9B8 (UnkStruct_ov114_0225FAB8 * param0, UnkStruct_ov114_0 param0->unk_190 = G2_GetWndOutsidePlane(); param0->unk_194 = GX_GetVisibleWnd() & GX_WNDMASK_W1; - param0->unk_191.planeMask = GX_WND_PLANEMASK_BG0 | GX_WND_PLANEMASK_BG1 | GX_WND_PLANEMASK_BG2 | GX_WND_PLANEMASK_BG3; - param0->unk_191.effect = 1; + param0->battlerType.planeMask = GX_WND_PLANEMASK_BG0 | GX_WND_PLANEMASK_BG1 | GX_WND_PLANEMASK_BG2 | GX_WND_PLANEMASK_BG3; + param0->battlerType.effect = 1; sub_020177BC(ov114_0225FCF0, param0); sub_02021D0C(param0->unk_00[1], 2); @@ -3819,7 +3819,7 @@ static void ov114_0225FCF0 (void * param0) G2_SetWndOutsidePlane(v0->unk_190.planeMask, v0->unk_190.effect); v2 |= v0->unk_194; } else { - G2_SetWndOutsidePlane(v0->unk_191.planeMask, v0->unk_191.effect); + G2_SetWndOutsidePlane(v0->battlerType.planeMask, v0->battlerType.effect); v2 &= ~(GX_WNDMASK_W1 | v0->unk_194); }