Document BattleMon struct

This commit is contained in:
lhearachel 2023-08-26 14:43:04 -07:00
parent 460fc6bc99
commit 90914be11a
14 changed files with 1735 additions and 1727 deletions

View File

@ -5,10 +5,10 @@
#include "constants/pokemon.h"
#include "battle/ai_context.h"
#include "battle/battle_mon.h"
#include "overlay016/struct_ov16_0224B7CC_decl.h"
#include "overlay016/struct_ov16_02252060_decl.h"
#include "overlay016/struct_ov16_02252060_t.h"
#include "overlay016/struct_ov16_0225C300.h"
typedef struct FieldConditions {
@ -233,7 +233,7 @@ typedef struct BattleContext {
u8 ioBuffer[MAX_BATTLERS][BATTLE_IO_BUFFER_SIZE];
int battleScript[BATTLE_SCRIPT_SIZE_MAX];
UnkStruct_ov16_02252060 battleMons[MAX_BATTLERS];
BattleMon battleMons[MAX_BATTLERS];
u32 moveNumTemp;
u32 moveNumCurr;

132
include/battle/battle_mon.h Normal file
View File

@ -0,0 +1,132 @@
#ifndef POKEPLATINUM_BATTLE_MON_H
#define POKEPLATINUM_BATTLE_MON_H
#include "constants/moves.h"
#include "constants/pokemon.h"
#include "constants/string.h"
typedef struct MoveEffectsData {
u32 disabledTurns :3,
encoredTurns :3,
chargedTurns :2,
tauntedTurns :3,
protectSuccessTurns :2,
perishSongTurns :2,
rolloutCount :3,
furyCutterCount :3,
stockpileCount :3,
stockpileDefBoosts :3,
stockpileSpDefBoosts :3,
truantFlag :1,
flashFireFlag :1;
u32 battlerIdLockOn :2,
mimickedMoveSlot :4,
battlerIdBinding :2,
battlerIdMeanLook :2,
lastResortCount :3,
magnetRiseTurns :3,
healBlockTurns :3,
embargoTurns :3,
hasHeldItem :1, // this is specifically for tracking Unburden; 0 if no item was ever held, or if item is suppresed with Knock Off
metronomeTurns :4,
micleBerryActive :1,
custapBerryActive :1,
quickClawActive :1,
meFirstActive :1,
padding0004_1F :1;
int rechargeTurnCount;
int fakeOutTurnCount;
int slowStartTurnCount;
int meFirstTurnCount;
int substituteHP;
u32 transformedPID;
u16 disabledMove;
u16 bindingMove;
u16 encoredMove;
u16 encoredMoveSlot;
u16 lastResortMoves[4];
u16 choiceLockedMove;
u16 transformedGender;
int itemHPRecovery;
} MoveEffectsData;
typedef struct BattleMon {
u16 species;
u16 attack;
u16 defense;
u16 speed;
u16 spAttack;
u16 spDefense;
u16 moves[LEARNED_MOVES_MAX];
u32 hpIV :5,
attackIV :5,
defenseIV :5,
speedIV :5,
spAttackIV :5,
spDefenseIV :5,
isEgg :1,
hasNickname :1;
s8 statBoosts[NUM_BOOSTABLE_STATS];
int weight;
u8 type1;
u8 type2;
u8 formNum :5,
isShiny :1,
padding0026_06 :2;
u8 ability;
u32 weatherAbilityAnnounced :1,
intimidateAnnounced :1,
traceAnnounced :1,
downloadAnnounced :1,
anticipationAnnounced :1,
forewarnAnnounced :1,
slowStartAnnounced :1,
slowStartFinished :1,
friskAnnounced :1,
moldBreakerAnnounced :1,
pressureAnnounced :1,
padding0028_0B :21;
u8 ppCur[LEARNED_MOVES_MAX];
u8 ppUps[LEARNED_MOVES_MAX];
u8 level;
u8 friendship;
u16 nickname[MON_NAME_LEN + 1];
s32 curHP;
u32 maxHP;
u16 originalTrainerName[PERSON_NAME_LEN + 1];
u32 exp;
u32 pid;
u32 status;
u32 statusVolatile;
u32 originalTrainerId;
u16 heldItem;
u16 padding007A; // unused
u8 timesDamaged;
u8 trainerMessageFlags;
u8 gender :4,
originalTrainerGender :4;
u8 capturedBall;
u32 moveEffectsMask;
u32 moveEffectsTemp;
MoveEffectsData moveEffectsData;
} BattleMon;
#endif // POKEPLATINUM_BATTLE_MON_H

View File

@ -24,6 +24,7 @@
#define NUMBER_OF_MON_TYPES 18
#define MAX_PARTY_SIZE 6
#define NUM_BOOSTABLE_STATS 8
enum {
MON_DATA_PERSONALITY,

View File

@ -0,0 +1,7 @@
#ifndef POKEPLATINUM_CONSTANTS_STRING_H
#define POKEPLATINUM_CONSTANTS_STRING_H
#define MON_NAME_LEN 10
#define PERSON_NAME_LEN 7
#endif

View File

@ -4,7 +4,7 @@
#include "struct_defs/pokemon.h"
#include "struct_decls/struct_0207ADB4_decl.h"
#include "battle/battle_context.h"
#include "overlay016/struct_ov16_02252060_decl.h"
#include "battle/battle_mon.h"
#include "overlay016/struct_ov16_0225C300.h"
void ov16_0225177C(UnkStruct_0207ADB4 * param0, BattleContext * param1, int param2, int param3);
@ -20,7 +20,7 @@ void ov16_02252040(BattleContext * param0, int param1);
int ov16_02252060(BattleContext * param0, int param1, int param2, void * param3);
void ov16_022523E8(BattleContext * param0, int param1, int param2, const void * param3);
void ov16_02252A14(BattleContext * param0, int param1, int param2, int param3);
void ov16_02252A2C(UnkStruct_ov16_02252060 * param0, int param1, int param2);
void ov16_02252A2C(BattleMon * param0, int param1, int param2);
u8 ov16_02252EC8(UnkStruct_0207ADB4 * param0, BattleContext * param1, int param2, int param3, int param4);
void ov16_022535E0(BattleContext * param0, int param1);
void ov16_022535F0(UnkStruct_0207ADB4 * param0, BattleContext * param1, int param2);
@ -41,7 +41,7 @@ void ov16_02254744(UnkStruct_0207ADB4 * param0, BattleContext * param1, int para
void ov16_02254990(UnkStruct_0207ADB4 * param0, BattleContext * param1);
int ov16_02254A6C(UnkStruct_0207ADB4 * param0, BattleContext * param1, int param2, int param3, int param4);
BOOL ov16_02254CA8(UnkStruct_0207ADB4 * param0, BattleContext * param1, int param2, int param3, UnkStruct_ov16_0225C300 * param4);
int ov16_02254EE0(UnkStruct_ov16_02252060 * param0, u16 param1);
int ov16_02254EE0(BattleMon * param0, u16 param1);
int ov16_02254FA8(UnkStruct_0207ADB4 * param0, BattleContext * param1, int param2, int param3, int param4, int param5, int param6, u32 * param7);
void ov16_022552D4(BattleContext * param0, int param1, int param2, int param3, int param4, int param5, int param6, int param7, u32 * param8);
BOOL ov16_02255498(BattleContext * param0, int param1);

View File

@ -1,6 +0,0 @@
#ifndef POKEPLATINUM_STRUCT_OV16_02252060_DECL_H
#define POKEPLATINUM_STRUCT_OV16_02252060_DECL_H
typedef struct UnkStruct_ov16_02252060_t UnkStruct_ov16_02252060;
#endif // POKEPLATINUM_STRUCT_OV16_02252060_DECL_H

View File

@ -1,68 +0,0 @@
#ifndef POKEPLATINUM_STRUCT_OV16_02252060_T_H
#define POKEPLATINUM_STRUCT_OV16_02252060_T_H
#include "overlay016/struct_ov16_0225433C_decl.h"
#include "overlay016/struct_ov16_0225433C_t.h"
struct UnkStruct_ov16_02252060_t {
u16 unk_00;
u16 unk_02;
u16 unk_04;
u16 unk_06;
u16 unk_08;
u16 unk_0A;
u16 unk_0C[4];
u32 unk_14_0 : 5;
u32 unk_14_5 : 5;
u32 unk_14_10 : 5;
u32 unk_14_15 : 5;
u32 unk_14_20 : 5;
u32 unk_14_25 : 5;
u32 unk_14_30 : 1;
u32 unk_14_31 : 1;
s8 unk_18[8];
int unk_20;
u8 unk_24;
u8 unk_25;
u8 unk_26_0 : 5;
u8 unk_26_5 : 1;
u8 unk_26_6 : 2;
u8 unk_27;
u32 unk_28_0 : 1;
u32 unk_28_1 : 1;
u32 unk_28_2 : 1;
u32 unk_28_3 : 1;
u32 unk_28_4 : 1;
u32 unk_28_5 : 1;
u32 unk_28_6 : 1;
u32 unk_28_7 : 1;
u32 unk_28_8 : 1;
u32 unk_28_9 : 1;
u32 unk_28_10 : 1;
u32 unk_28_11 : 21;
u8 unk_2C[4];
u8 unk_30[4];
u8 unk_34;
u8 unk_35;
u16 unk_36[11];
s32 unk_4C;
u32 unk_50;
u16 unk_54[8];
u32 unk_64;
u32 unk_68;
u32 unk_6C;
u32 unk_70;
u32 unk_74;
u16 unk_78;
u16 unk_7A;
u8 unk_7C;
u8 unk_7D;
u8 unk_7E_0 : 4;
u8 unk_7E_4 : 4;
u8 unk_7F;
u32 unk_80;
u32 unk_84;
UnkStruct_ov16_0225433C unk_88;
};
#endif // POKEPLATINUM_STRUCT_OV16_02252060_T_H

View File

@ -1,6 +0,0 @@
#ifndef POKEPLATINUM_STRUCT_OV16_0225433C_DECL_H
#define POKEPLATINUM_STRUCT_OV16_0225433C_DECL_H
typedef struct UnkStruct_ov16_0225433C_t UnkStruct_ov16_0225433C;
#endif // POKEPLATINUM_STRUCT_OV16_0225433C_DECL_H

View File

@ -1,49 +0,0 @@
#ifndef POKEPLATINUM_STRUCT_OV16_0225433C_T_H
#define POKEPLATINUM_STRUCT_OV16_0225433C_T_H
struct UnkStruct_ov16_0225433C_t {
u32 unk_00_0 : 3;
u32 unk_00_3 : 3;
u32 unk_00_6 : 2;
u32 unk_00_8 : 3;
u32 unk_00_11 : 2;
u32 unk_00_13 : 2;
u32 unk_00_15 : 3;
u32 unk_00_18 : 3;
u32 unk_00_21 : 3;
u32 unk_00_24 : 3;
u32 unk_00_27 : 3;
u32 unk_00_30 : 1;
u32 unk_00_31 : 1;
u32 unk_04_0 : 2;
u32 unk_04_2 : 4;
u32 unk_04_6 : 2;
u32 unk_04_8 : 2;
u32 unk_04_10 : 3;
u32 unk_04_13 : 3;
u32 unk_04_16 : 3;
u32 unk_04_19 : 3;
u32 unk_04_22 : 1;
u32 unk_04_23 : 4;
u32 unk_04_27 : 1;
u32 unk_04_28 : 1;
u32 unk_04_29 : 1;
u32 unk_04_30 : 1;
u32 unk_04_31 : 1;
int unk_08;
int unk_0C;
int unk_10;
int unk_14;
int unk_18;
u32 unk_1C;
u16 unk_20;
u16 unk_22;
u16 unk_24;
u16 unk_26;
u16 unk_28[4];
u16 unk_30;
u16 unk_32;
int unk_34;
};
#endif // POKEPLATINUM_STRUCT_OV16_0225433C_T_H

View File

@ -405,7 +405,7 @@ static u8 ov14_0221FD44 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v2[0] = 0;
for (v0 = 1; v0 < 4; v0++) {
if (param1->battleMons[param1->aiContext.battlerIdAttacker].unk_0C[v0]) {
if (param1->battleMons[param1->aiContext.battlerIdAttacker].moves[v0]) {
if (v1[0] == param1->aiContext.moveCurrPP[v0]) {
v1[v3] = param1->aiContext.moveCurrPP[v0];
v2[v3++] = v0;
@ -438,7 +438,7 @@ static u8 ov14_0221FE38 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
s8 v8;
for (v0 = 0; v0 < 4; v0++) {
if ((v0 == param1->aiContext.battlerIdAttacker) || (param1->battleMons[v0].unk_4C == 0)) {
if ((v0 == param1->aiContext.battlerIdAttacker) || (param1->battleMons[v0].curHP == 0)) {
v5[v0] = -1;
v3[v0] = -1;
continue;
@ -486,7 +486,7 @@ static u8 ov14_0221FE38 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v11 = 1;
for (v12 = 1; v12 < 4; v12++) {
if (param1->battleMons[param1->aiContext.battlerIdAttacker].unk_0C[v12]) {
if (param1->battleMons[param1->aiContext.battlerIdAttacker].moves[v12]) {
if (v9[0] == param1->aiContext.moveCurrPP[v12]) {
v9[v11] = param1->aiContext.moveCurrPP[v12];
v10[v11] = v12;
@ -531,7 +531,7 @@ static u8 ov14_0221FE38 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
param1->aiContext.selectedTarget[param1->aiContext.battlerIdAttacker] = v4[(ov16_0223F4BC(param0) % v1)];
v8 = v5[param1->aiContext.selectedTarget[param1->aiContext.battlerIdAttacker]];
v7 = param1->battleMons[param1->aiContext.battlerIdAttacker].unk_0C[v8];
v7 = param1->battleMons[param1->aiContext.battlerIdAttacker].moves[v8];
if (param1->aiContext.moveTable[v7].unk_08 == 0x200) {
if (ov16_0223E208(param0, param1->aiContext.selectedTarget[param1->aiContext.battlerIdAttacker]) == 0) {
@ -555,10 +555,10 @@ static void ov14_02220078 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
case 0:
param1->aiScriptCursor = param1->aiScriptTemp[param1->aiContext.thinkingBitShift];
if (param1->battleMons[param1->aiContext.battlerIdAttacker].unk_2C[param1->aiContext.moveSlot] == 0) {
if (param1->battleMons[param1->aiContext.battlerIdAttacker].ppCur[param1->aiContext.moveSlot] == 0) {
param1->aiContext.moveNum = 0;
} else {
param1->aiContext.moveNum = param1->battleMons[param1->aiContext.battlerIdAttacker].unk_0C[param1->aiContext.moveSlot];
param1->aiContext.moveNum = param1->battleMons[param1->aiContext.battlerIdAttacker].moves[param1->aiContext.moveSlot];
}
param1->aiContext.scriptCursor++;
@ -678,7 +678,7 @@ static void ov14_022202B8 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v3 = ov14_02222CF0(param1);
v4 = ov14_02222CF0(param1);
v0 = ov14_02222D34(param1, v2);
v1 = param1->battleMons[v0].unk_4C * 100 / param1->battleMons[v0].unk_50;
v1 = param1->battleMons[v0].curHP * 100 / param1->battleMons[v0].maxHP;
if (v1 < v3) {
ov14_02222D24(param1, v4);
@ -699,7 +699,7 @@ static void ov14_02220310 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v3 = ov14_02222CF0(param1);
v4 = ov14_02222CF0(param1);
v0 = ov14_02222D34(param1, v2);
v1 = param1->battleMons[v0].unk_4C * 100 / param1->battleMons[v0].unk_50;
v1 = param1->battleMons[v0].curHP * 100 / param1->battleMons[v0].maxHP;
if (v1 > v3) {
ov14_02222D24(param1, v4);
@ -720,7 +720,7 @@ static void ov14_02220368 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v3 = ov14_02222CF0(param1);
v4 = ov14_02222CF0(param1);
v0 = ov14_02222D34(param1, v2);
v1 = param1->battleMons[v0].unk_4C * 100 / param1->battleMons[v0].unk_50;
v1 = param1->battleMons[v0].curHP * 100 / param1->battleMons[v0].maxHP;
if (v1 == v3) {
ov14_02222D24(param1, v4);
@ -741,7 +741,7 @@ static void ov14_022203C0 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v3 = ov14_02222CF0(param1);
v4 = ov14_02222CF0(param1);
v0 = ov14_02222D34(param1, v2);
v1 = param1->battleMons[v0].unk_4C * 100 / param1->battleMons[v0].unk_50;
v1 = param1->battleMons[v0].curHP * 100 / param1->battleMons[v0].maxHP;
if (v1 != v3) {
ov14_02222D24(param1, v4);
@ -762,7 +762,7 @@ static void ov14_02220418 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v3 = ov14_02222CF0(param1);
v0 = ov14_02222D34(param1, v1);
if (param1->battleMons[v0].unk_6C & v2) {
if (param1->battleMons[v0].status & v2) {
ov14_02222D24(param1, v3);
}
}
@ -781,7 +781,7 @@ static void ov14_02220464 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v3 = ov14_02222CF0(param1);
v0 = ov14_02222D34(param1, v1);
if ((param1->battleMons[v0].unk_6C & v2) == 0) {
if ((param1->battleMons[v0].status & v2) == 0) {
ov14_02222D24(param1, v3);
}
}
@ -800,7 +800,7 @@ static void ov14_022204B0 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v3 = ov14_02222CF0(param1);
v0 = ov14_02222D34(param1, v1);
if (param1->battleMons[v0].unk_70 & v2) {
if (param1->battleMons[v0].statusVolatile & v2) {
ov14_02222D24(param1, v3);
}
}
@ -819,7 +819,7 @@ static void ov14_022204FC (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v3 = ov14_02222CF0(param1);
v0 = ov14_02222D34(param1, v1);
if ((param1->battleMons[v0].unk_70 & v2) == 0) {
if ((param1->battleMons[v0].statusVolatile & v2) == 0) {
ov14_02222D24(param1, v3);
}
}
@ -838,7 +838,7 @@ static void ov14_02220548 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v3 = ov14_02222CF0(param1);
v0 = ov14_02222D34(param1, v1);
if (param1->battleMons[v0].unk_80 & v2) {
if (param1->battleMons[v0].moveEffectsMask & v2) {
ov14_02222D24(param1, v3);
}
}
@ -857,7 +857,7 @@ static void ov14_02220590 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v3 = ov14_02222CF0(param1);
v0 = ov14_02222D34(param1, v1);
if ((param1->battleMons[v0].unk_80 & v2) == 0) {
if ((param1->battleMons[v0].moveEffectsMask & v2) == 0) {
ov14_02222D24(param1, v3);
}
}
@ -1076,7 +1076,7 @@ static void ov14_0222089C (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v1 = ov14_02222CF0(param1);
for (v0 = 0; v0 < 4; v0++) {
if ((param1->battleMons[param1->aiContext.battlerIdAttacker].unk_0C[v0] != 0) && (param1->aiContext.moveTable[param1->battleMons[param1->aiContext.battlerIdAttacker].unk_0C[v0]].unk_03)) {
if ((param1->battleMons[param1->aiContext.battlerIdAttacker].moves[v0] != 0) && (param1->aiContext.moveTable[param1->battleMons[param1->aiContext.battlerIdAttacker].moves[v0]].unk_03)) {
break;
}
}
@ -1095,7 +1095,7 @@ static void ov14_02220900 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v1 = ov14_02222CF0(param1);
for (v0 = 0; v0 < 4; v0++) {
if ((param1->battleMons[param1->aiContext.battlerIdAttacker].unk_0C[v0] != 0) && (param1->aiContext.moveTable[param1->battleMons[param1->aiContext.battlerIdAttacker].unk_0C[v0]].unk_03)) {
if ((param1->battleMons[param1->aiContext.battlerIdAttacker].moves[v0] != 0) && (param1->aiContext.moveTable[param1->battleMons[param1->aiContext.battlerIdAttacker].moves[v0]].unk_03)) {
break;
}
}
@ -1218,7 +1218,7 @@ static void ov14_02220B34 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v5[v0] = ov16_02252060(param1, param1->aiContext.battlerIdAttacker, 10 + v0, NULL);
}
ov14_02222D7C(param0, param1, param1->aiContext.battlerIdAttacker, &param1->battleMons[param1->aiContext.battlerIdAttacker].unk_0C[0], &v3[0], param1->battleMons[param1->aiContext.battlerIdAttacker].unk_78, &v5[0], ov16_02255A4C(param1, param1->aiContext.battlerIdAttacker), param1->battleMons[param1->aiContext.battlerIdAttacker].unk_88.unk_04_19, v4);
ov14_02222D7C(param0, param1, param1->aiContext.battlerIdAttacker, &param1->battleMons[param1->aiContext.battlerIdAttacker].moves[0], &v3[0], param1->battleMons[param1->aiContext.battlerIdAttacker].heldItem, &v5[0], ov16_02255A4C(param1, param1->aiContext.battlerIdAttacker), param1->battleMons[param1->aiContext.battlerIdAttacker].moveEffectsData.embargoTurns, v4);
for (v0 = 0; v0 < 4; v0++) {
if (v3[v0] > v3[param1->aiContext.moveSlot]) {
@ -1366,17 +1366,17 @@ static void ov14_02220EA8 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v1 = ov14_02222CF0(param1);
v0 = ov14_02222D34(param1, v1);
if (param1->battleMons[v0].unk_80 & 0x200000) {
if (param1->battleMons[v0].moveEffectsMask & 0x200000) {
param1->aiContext.calcTemp = 0;
} else if ((param1->aiContext.battlerIdAttacker != v0) && (v1 != 3)) {
if (param1->aiContext.battlerAbilities[v0]) {
param1->aiContext.calcTemp = param1->aiContext.battlerAbilities[v0];
} else {
if ((param1->battleMons[v0].unk_27 == 23) || (param1->battleMons[v0].unk_27 == 42) || (param1->battleMons[v0].unk_27 == 71)) {
param1->aiContext.calcTemp = param1->battleMons[v0].unk_27;
if ((param1->battleMons[v0].ability == 23) || (param1->battleMons[v0].ability == 42) || (param1->battleMons[v0].ability == 71)) {
param1->aiContext.calcTemp = param1->battleMons[v0].ability;
} else {
v2 = sub_020759F0(param1->battleMons[v0].unk_00, 24);
v3 = sub_020759F0(param1->battleMons[v0].unk_00, 25);
v2 = sub_020759F0(param1->battleMons[v0].species, 24);
v3 = sub_020759F0(param1->battleMons[v0].species, 25);
if ((v2) && (v3)) {
if (ov16_0223F4BC(param0) & 1) {
@ -1392,7 +1392,7 @@ static void ov14_02220EA8 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
}
}
} else {
param1->aiContext.calcTemp = param1->battleMons[v0].unk_27;
param1->aiContext.calcTemp = param1->battleMons[v0].ability;
}
}
@ -1410,18 +1410,18 @@ static void ov14_02220F88 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v2 = ov14_02222CF0(param1);
v0 = ov14_02222D34(param1, v1);
if (param1->battleMons[v0].unk_80 & 0x200000) {
if (param1->battleMons[v0].moveEffectsMask & 0x200000) {
v3 = 0;
} else if ((v1 == 0) || (v1 == 2)) {
if (param1->aiContext.battlerAbilities[v0]) {
v3 = param1->aiContext.battlerAbilities[v0];
param1->aiContext.calcTemp = param1->aiContext.battlerAbilities[v0];
} else {
if ((param1->battleMons[v0].unk_27 == 23) || (param1->battleMons[v0].unk_27 == 42) || (param1->battleMons[v0].unk_27 == 71)) {
v3 = param1->battleMons[v0].unk_27;
if ((param1->battleMons[v0].ability == 23) || (param1->battleMons[v0].ability == 42) || (param1->battleMons[v0].ability == 71)) {
v3 = param1->battleMons[v0].ability;
} else {
v4 = sub_020759F0(param1->battleMons[v0].unk_00, 24);
v5 = sub_020759F0(param1->battleMons[v0].unk_00, 25);
v4 = sub_020759F0(param1->battleMons[v0].species, 24);
v5 = sub_020759F0(param1->battleMons[v0].species, 25);
if ((v4) && (v5)) {
if ((v4 != v2) && (v5 != v2)) {
@ -1437,7 +1437,7 @@ static void ov14_02220F88 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
}
}
} else {
v3 = param1->battleMons[v0].unk_27;
v3 = param1->battleMons[v0].ability;
}
if (v3 == 0) {
@ -1464,7 +1464,7 @@ static void ov14_02221060 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
for (v0 = 0; v0 < 4; v0++) {
v1 = 40;
v2 = 0;
v3 = param1->battleMons[param1->aiContext.battlerIdAttacker].unk_0C[v0];
v3 = param1->battleMons[param1->aiContext.battlerIdAttacker].moves[v0];
v4 = ov14_0222327C(param0, param1, param1->aiContext.battlerIdAttacker, v3);
if (v3) {
@ -1672,7 +1672,7 @@ static void ov14_0222147C (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v4 = ov14_02222CF0(param1);
v0 = ov14_02222D34(param1, v1);
if (param1->battleMons[v0].unk_18[v2] < v3) {
if (param1->battleMons[v0].statBoosts[v2] < v3) {
ov14_02222D24(param1, v4);
}
}
@ -1693,7 +1693,7 @@ static void ov14_022214D0 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v4 = ov14_02222CF0(param1);
v0 = ov14_02222D34(param1, v1);
if (param1->battleMons[v0].unk_18[v2] > v3) {
if (param1->battleMons[v0].statBoosts[v2] > v3) {
ov14_02222D24(param1, v4);
}
}
@ -1714,7 +1714,7 @@ static void ov14_02221524 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v4 = ov14_02222CF0(param1);
v0 = ov14_02222D34(param1, v1);
if (param1->battleMons[v0].unk_18[v2] == v3) {
if (param1->battleMons[v0].statBoosts[v2] == v3) {
ov14_02222D24(param1, v4);
}
}
@ -1735,7 +1735,7 @@ static void ov14_02221578 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v4 = ov14_02222CF0(param1);
v0 = ov14_02222D34(param1, v1);
if (param1->battleMons[v0].unk_18[v2] != v3) {
if (param1->battleMons[v0].statBoosts[v2] != v3) {
ov14_02222D24(param1, v4);
}
}
@ -1786,9 +1786,9 @@ static void ov14_022215CC (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v7[v0] = ov16_02252060(param1, param1->aiContext.battlerIdAttacker, 10 + v0, NULL);
}
v6 = ov14_02222E84(param0, param1, param1->aiContext.moveNum, param1->battleMons[param1->aiContext.battlerIdAttacker].unk_78, &v7[0], param1->aiContext.battlerIdAttacker, ov16_02255A4C(param1, param1->aiContext.battlerIdAttacker), param1->battleMons[param1->aiContext.battlerIdAttacker].unk_88.unk_04_19, v3);
v6 = ov14_02222E84(param0, param1, param1->aiContext.moveNum, param1->battleMons[param1->aiContext.battlerIdAttacker].heldItem, &v7[0], param1->aiContext.battlerIdAttacker, ov16_02255A4C(param1, param1->aiContext.battlerIdAttacker), param1->battleMons[param1->aiContext.battlerIdAttacker].moveEffectsData.embargoTurns, v3);
if (param1->battleMons[param1->aiContext.battlerIdDefender].unk_4C <= v6) {
if (param1->battleMons[param1->aiContext.battlerIdDefender].curHP <= v6) {
ov14_02222D24(param1, v2);
}
}
@ -1840,9 +1840,9 @@ static void ov14_022216F8 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v7[v0] = ov16_02252060(param1, param1->aiContext.battlerIdAttacker, 10 + v0, NULL);
}
v6 = ov14_02222E84(param0, param1, param1->aiContext.moveNum, param1->battleMons[param1->aiContext.battlerIdAttacker].unk_78, &v7[0], param1->aiContext.battlerIdAttacker, ov16_02255A4C(param1, param1->aiContext.battlerIdAttacker), param1->battleMons[param1->aiContext.battlerIdAttacker].unk_88.unk_04_19, v3);
v6 = ov14_02222E84(param0, param1, param1->aiContext.moveNum, param1->battleMons[param1->aiContext.battlerIdAttacker].heldItem, &v7[0], param1->aiContext.battlerIdAttacker, ov16_02255A4C(param1, param1->aiContext.battlerIdAttacker), param1->battleMons[param1->aiContext.battlerIdAttacker].moveEffectsData.embargoTurns, v3);
if (param1->battleMons[param1->aiContext.battlerIdDefender].unk_4C > v6) {
if (param1->battleMons[param1->aiContext.battlerIdDefender].curHP > v6) {
ov14_02222D24(param1, v2);
}
}
@ -1866,7 +1866,7 @@ static void ov14_02221824 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
switch (v2) {
case 1:
for (v0 = 0; v0 < 4; v0++) {
if (param1->battleMons[v1].unk_0C[v0] == v3) {
if (param1->battleMons[v1].moves[v0] == v3) {
break;
}
}
@ -1876,12 +1876,12 @@ static void ov14_02221824 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
}
break;
case 3:
if (param1->battleMons[v1].unk_4C == 0) {
if (param1->battleMons[v1].curHP == 0) {
break;
}
for (v0 = 0; v0 < 4; v0++) {
if (param1->battleMons[v1].unk_0C[v0] == v3) {
if (param1->battleMons[v1].moves[v0] == v3) {
break;
}
}
@ -1924,7 +1924,7 @@ static void ov14_022218E4 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
switch (v2) {
case 1:
for (v0 = 0; v0 < 4; v0++) {
if (param1->battleMons[v1].unk_0C[v0] == v3) {
if (param1->battleMons[v1].moves[v0] == v3) {
break;
}
}
@ -1934,12 +1934,12 @@ static void ov14_022218E4 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
}
break;
case 3:
if (param1->battleMons[v1].unk_4C == 0) {
if (param1->battleMons[v1].curHP == 0) {
break;
}
for (v0 = 0; v0 < 4; v0++) {
if (param1->battleMons[v1].unk_0C[v0] == v3) {
if (param1->battleMons[v1].moves[v0] == v3) {
break;
}
}
@ -1982,7 +1982,7 @@ static void ov14_022219A4 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
switch (v2) {
case 1:
for (v0 = 0; v0 < 4; v0++) {
if ((param1->battleMons[v1].unk_0C[v0]) && (param1->aiContext.moveTable[param1->battleMons[v1].unk_0C[v0]].unk_00 == v3)) {
if ((param1->battleMons[v1].moves[v0]) && (param1->aiContext.moveTable[param1->battleMons[v1].moves[v0]].unk_00 == v3)) {
break;
}
}
@ -2025,7 +2025,7 @@ static void ov14_02221A48 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
switch (v2) {
case 1:
for (v0 = 0; v0 < 4; v0++) {
if ((param1->battleMons[v1].unk_0C[v0]) && (param1->aiContext.moveTable[param1->battleMons[v1].unk_0C[v0]].unk_00 == v3)) {
if ((param1->battleMons[v1].moves[v0]) && (param1->aiContext.moveTable[param1->battleMons[v1].moves[v0]].unk_00 == v3)) {
break;
}
}
@ -2066,12 +2066,12 @@ static void ov14_02221AEC (UnkStruct_0207ADB4 * param0, BattleContext * param1)
switch (v2) {
case 0x0:
if (param1->battleMons[v0].unk_88.unk_00_0) {
if (param1->battleMons[v0].moveEffectsData.disabledTurns) {
ov14_02222D24(param1, v3);
}
break;
case 0x1:
if (param1->battleMons[v0].unk_88.unk_00_3) {
if (param1->battleMons[v0].moveEffectsData.encoredTurns) {
ov14_02222D24(param1, v3);
}
break;
@ -2092,12 +2092,12 @@ static void ov14_02221B5C (UnkStruct_0207ADB4 * param0, BattleContext * param1)
switch (v0) {
case 0x0:
if (param1->battleMons[param1->aiContext.battlerIdAttacker].unk_88.unk_20 == param1->aiContext.moveNum) {
if (param1->battleMons[param1->aiContext.battlerIdAttacker].moveEffectsData.disabledMove == param1->aiContext.moveNum) {
ov14_02222D24(param1, v1);
}
break;
case 0x1:
if (param1->battleMons[param1->aiContext.battlerIdAttacker].unk_88.unk_24 == param1->aiContext.moveNum) {
if (param1->battleMons[param1->aiContext.battlerIdAttacker].moveEffectsData.encoredMove == param1->aiContext.moveNum) {
ov14_02222D24(param1, v1);
}
break;
@ -2132,7 +2132,7 @@ static void ov14_02221BF0 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v1 = ov14_02222CF0(param1);
v0 = ov14_02222D34(param1, v1);
param1->aiContext.calcTemp = param1->battleMons[v0].unk_78;
param1->aiContext.calcTemp = param1->battleMons[v0].heldItem;
}
static void ov14_02221C24 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
@ -2148,7 +2148,7 @@ static void ov14_02221C24 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
if (param1->aiContext.battlerIdAttacker != v0) {
param1->aiContext.calcTemp = ov16_0225B0FC(param1, param1->aiContext.battlerHeldItems[v0], 1);
} else {
param1->aiContext.calcTemp = ov16_0225B0FC(param1, param1->battleMons[v0].unk_78, 1);
param1->aiContext.calcTemp = ov16_0225B0FC(param1, param1->battleMons[v0].heldItem, 1);
}
}
@ -2168,7 +2168,7 @@ static void ov14_02221C88 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v1 = ov14_02222D34(param1, v2);
if ((v1 & 1) == (param1->aiContext.battlerIdAttacker & 1)) {
v0 = param1->battleMons[v1].unk_78;
v0 = param1->battleMons[v1].heldItem;
} else {
v0 = param1->aiContext.battlerHeldItems[v1];
}
@ -2291,7 +2291,7 @@ static void ov14_02221EBC (UnkStruct_0207ADB4 * param0, BattleContext * param1)
static void ov14_02221EEC (UnkStruct_0207ADB4 * param0, BattleContext * param1)
{
ov14_02222D24(param1, 1);
param1->aiContext.calcTemp = param1->battleMons[param1->aiContext.battlerIdAttacker].unk_2C[param1->aiContext.moveSlot];
param1->aiContext.calcTemp = param1->battleMons[param1->aiContext.battlerIdAttacker].ppCur[param1->aiContext.moveSlot];
}
static void ov14_02221F1C (UnkStruct_0207ADB4 * param0, BattleContext * param1)
@ -2308,7 +2308,7 @@ static void ov14_02221F1C (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v0 = ov14_02222D34(param1, v1);
v3 = ov16_02256128(param0, param1, v0);
if ((param1->battleMons[v0].unk_88.unk_04_10 >= (v3 - 1)) && (v3 > 1)) {
if ((param1->battleMons[v0].moveEffectsData.lastResortCount >= (v3 - 1)) && (v3 > 1)) {
ov14_02222D24(param1, v2);
}
}
@ -2374,7 +2374,7 @@ static void ov14_02222090 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v1 = ov14_02222CF0(param1);
v0 = ov14_02222D34(param1, v1);
param1->aiContext.calcTemp = param1->totalTurns - param1->battleMons[v0].unk_88.unk_0C;
param1->aiContext.calcTemp = param1->totalTurns - param1->battleMons[v0].moveEffectsData.fakeOutTurnCount;
}
static void ov14_022220CC (UnkStruct_0207ADB4 * param0, BattleContext * param1)
@ -2400,7 +2400,7 @@ static void ov14_022220CC (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v9[v0] = ov16_02252060(param1, v4, 10 + v0, NULL);
}
v5 = ov14_02222D7C(param0, param1, param1->aiContext.battlerIdAttacker, &param1->battleMons[v4].unk_0C[0], &v7[0], param1->battleMons[v4].unk_78, &v9[0], ov16_02255A4C(param1, v4), param1->battleMons[v4].unk_88.unk_04_19, v2);
v5 = ov14_02222D7C(param0, param1, param1->aiContext.battlerIdAttacker, &param1->battleMons[v4].moves[0], &v7[0], param1->battleMons[v4].heldItem, &v9[0], ov16_02255A4C(param1, v4), param1->battleMons[v4].moveEffectsData.embargoTurns, v2);
for (v0 = 0; v0 < ov16_0223DF60(param0, v4); v0++) {
if (v0 != param1->selectedMonIndex[v4]) {
@ -2462,7 +2462,7 @@ static void ov14_02222298 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v9[v0] = ov16_02252060(param1, param1->aiContext.battlerIdAttacker, 10 + v0, NULL);
}
v6 = ov14_02222D7C(param0, param1, param1->aiContext.battlerIdAttacker, &param1->battleMons[param1->aiContext.battlerIdAttacker].unk_0C[0], &v8[0], param1->battleMons[param1->aiContext.battlerIdAttacker].unk_78, &v9[0], ov16_02255A4C(param1, param1->aiContext.battlerIdAttacker), param1->battleMons[param1->aiContext.battlerIdAttacker].unk_88.unk_04_19, v2);
v6 = ov14_02222D7C(param0, param1, param1->aiContext.battlerIdAttacker, &param1->battleMons[param1->aiContext.battlerIdAttacker].moves[0], &v8[0], param1->battleMons[param1->aiContext.battlerIdAttacker].heldItem, &v9[0], ov16_02255A4C(param1, param1->aiContext.battlerIdAttacker), param1->battleMons[param1->aiContext.battlerIdAttacker].moveEffectsData.embargoTurns, v2);
v4 = ov14_02222D34(param1, v1);
if (v2 == 1) {
@ -2471,7 +2471,7 @@ static void ov14_02222298 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v5 = 100;
}
v7 = ov14_02222E84(param0, param1, param1->moveNumPrevByBattler[v4], param1->battleMons[v4].unk_78, &v9[0], v4, ov16_02255A4C(param1, v4), param1->battleMons[v4].unk_88.unk_04_19, v5);
v7 = ov14_02222E84(param0, param1, param1->moveNumPrevByBattler[v4], param1->battleMons[v4].heldItem, &v9[0], v4, ov16_02255A4C(param1, v4), param1->battleMons[v4].moveEffectsData.embargoTurns, v5);
if (v7 > v6) {
ov14_02222D24(param1, v3);
@ -2492,8 +2492,8 @@ static void ov14_022223B0 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
param1->aiContext.calcTemp = 0;
for (v0 = 0x0; v0 < 0x8; v0++) {
if (param1->battleMons[v2].unk_18[v0] > 6) {
param1->aiContext.calcTemp += param1->battleMons[v2].unk_18[v0] - 6;
if (param1->battleMons[v2].statBoosts[v0] > 6) {
param1->aiContext.calcTemp += param1->battleMons[v2].statBoosts[v0] - 6;
}
}
}
@ -2510,7 +2510,7 @@ static void ov14_02222400 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v1 = ov14_02222CF0(param1);
v2 = ov14_02222D34(param1, v0);
param1->aiContext.calcTemp = param1->battleMons[v2].unk_18[v1] - param1->battleMons[param1->aiContext.battlerIdAttacker].unk_18[v1];
param1->aiContext.calcTemp = param1->battleMons[v2].statBoosts[v1] - param1->battleMons[param1->aiContext.battlerIdAttacker].statBoosts[v1];
}
static void ov14_02222450 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
@ -2586,28 +2586,28 @@ static void ov14_0222254C (BattleContext * param0, int param1, int * param2, int
{
switch (param4) {
case 0x0:
param2[0] = param0->battleMons[param0->aiContext.battlerIdAttacker].unk_4C;
param3[0] = param0->battleMons[param1].unk_4C;
param2[0] = param0->battleMons[param0->aiContext.battlerIdAttacker].curHP;
param3[0] = param0->battleMons[param1].curHP;
break;
case 0x1:
param2[0] = param0->battleMons[param0->aiContext.battlerIdAttacker].unk_02;
param3[0] = param0->battleMons[param1].unk_02;
param2[0] = param0->battleMons[param0->aiContext.battlerIdAttacker].attack;
param3[0] = param0->battleMons[param1].attack;
break;
case 0x2:
param2[0] = param0->battleMons[param0->aiContext.battlerIdAttacker].unk_04;
param3[0] = param0->battleMons[param1].unk_04;
param2[0] = param0->battleMons[param0->aiContext.battlerIdAttacker].defense;
param3[0] = param0->battleMons[param1].defense;
break;
case 0x4:
param2[0] = param0->battleMons[param0->aiContext.battlerIdAttacker].unk_08;
param3[0] = param0->battleMons[param1].unk_08;
param2[0] = param0->battleMons[param0->aiContext.battlerIdAttacker].spAttack;
param3[0] = param0->battleMons[param1].spAttack;
break;
case 0x5:
param2[0] = param0->battleMons[param0->aiContext.battlerIdAttacker].unk_0A;
param3[0] = param0->battleMons[param1].unk_0A;
param2[0] = param0->battleMons[param0->aiContext.battlerIdAttacker].spDefense;
param3[0] = param0->battleMons[param1].spDefense;
break;
case 0x3:
param2[0] = param0->battleMons[param0->aiContext.battlerIdAttacker].unk_06;
param3[0] = param0->battleMons[param1].unk_06;
param2[0] = param0->battleMons[param0->aiContext.battlerIdAttacker].speed;
param3[0] = param0->battleMons[param1].speed;
break;
default:
GF_ASSERT(0);
@ -2655,7 +2655,7 @@ static void ov14_02222648 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v6[v0] = ov16_02252060(param1, v7, 10 + v0, NULL);
}
ov14_02222D7C(param0, param1, v7, &param1->battleMons[v7].unk_0C[0], &v4[0], param1->battleMons[v7].unk_78, &v6[0], ov16_02255A4C(param1, v7), param1->battleMons[v7].unk_88.unk_04_19, v5);
ov14_02222D7C(param0, param1, v7, &param1->battleMons[v7].moves[0], &v4[0], param1->battleMons[v7].heldItem, &v6[0], ov16_02255A4C(param1, v7), param1->battleMons[v7].moveEffectsData.embargoTurns, v5);
v7 = ov16_0223E258(param0, param1->aiContext.battlerIdAttacker);
@ -2733,7 +2733,7 @@ static void ov14_02222844 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v1 = ov14_02222CF0(param1);
v0 = ov14_02222D34(param1, v1);
param1->aiContext.calcTemp = param1->battleMons[v0].unk_7E_0;
param1->aiContext.calcTemp = param1->battleMons[v0].gender;
}
static void ov14_0222287C (UnkStruct_0207ADB4 * param0, BattleContext * param1)
@ -2746,7 +2746,7 @@ static void ov14_0222287C (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v1 = ov14_02222CF0(param1);
v0 = ov14_02222D34(param1, v1);
if (param1->battleMons[v0].unk_88.unk_0C < param1->totalTurns) {
if (param1->battleMons[v0].moveEffectsData.fakeOutTurnCount < param1->totalTurns) {
param1->aiContext.calcTemp = 0;
} else {
param1->aiContext.calcTemp = 1;
@ -2763,7 +2763,7 @@ static void ov14_022228C8 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v1 = ov14_02222CF0(param1);
v0 = ov14_02222D34(param1, v1);
param1->aiContext.calcTemp = param1->battleMons[v0].unk_88.unk_00_21;
param1->aiContext.calcTemp = param1->battleMons[v0].moveEffectsData.stockpileCount;
}
static void ov14_02222900 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
@ -2816,7 +2816,7 @@ static void ov14_022229AC (UnkStruct_0207ADB4 * param0, BattleContext * param1)
if ((param1->moveNumProtect[v0] != 182) && (param1->moveNumProtect[v0] != 197) && (param1->moveNumProtect[v0] != 203)) {
param1->aiContext.calcTemp = 0;
} else {
param1->aiContext.calcTemp = param1->battleMons[v0].unk_88.unk_00_11;
param1->aiContext.calcTemp = param1->battleMons[v0].moveEffectsData.protectSuccessTurns;
}
}
@ -2861,17 +2861,17 @@ static void ov14_02222A6C (UnkStruct_0207ADB4 * param0, BattleContext * param1)
switch (v0) {
case 0x0:
if (param1->battleMons[param1->aiContext.battlerIdAttacker].unk_34 > param1->battleMons[param1->aiContext.battlerIdDefender].unk_34) {
if (param1->battleMons[param1->aiContext.battlerIdAttacker].level > param1->battleMons[param1->aiContext.battlerIdDefender].level) {
ov14_02222D24(param1, v1);
}
break;
case 0x1:
if (param1->battleMons[param1->aiContext.battlerIdAttacker].unk_34 < param1->battleMons[param1->aiContext.battlerIdDefender].unk_34) {
if (param1->battleMons[param1->aiContext.battlerIdAttacker].level < param1->battleMons[param1->aiContext.battlerIdDefender].level) {
ov14_02222D24(param1, v1);
}
break;
case 0x2:
if (param1->battleMons[param1->aiContext.battlerIdAttacker].unk_34 == param1->battleMons[param1->aiContext.battlerIdDefender].unk_34) {
if (param1->battleMons[param1->aiContext.battlerIdAttacker].level == param1->battleMons[param1->aiContext.battlerIdDefender].level) {
ov14_02222D24(param1, v1);
}
break;
@ -2887,7 +2887,7 @@ static void ov14_02222B10 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
ov14_02222D24(param1, 1);
v0 = ov14_02222CF0(param1);
if (param1->battleMons[param1->aiContext.battlerIdDefender].unk_88.unk_00_8) {
if (param1->battleMons[param1->aiContext.battlerIdDefender].moveEffectsData.tauntedTurns) {
ov14_02222D24(param1, v0);
}
}
@ -2900,7 +2900,7 @@ static void ov14_02222B48 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v0 = ov14_02222CF0(param1);
if (param1->battleMons[param1->aiContext.battlerIdDefender].unk_88.unk_00_8 == 0) {
if (param1->battleMons[param1->aiContext.battlerIdDefender].moveEffectsData.tauntedTurns == 0) {
ov14_02222D24(param1, v0);
}
}
@ -2930,7 +2930,7 @@ static void ov14_02222BB4 (UnkStruct_0207ADB4 * param0, BattleContext * param1)
v2 = ov14_02222CF0(param1);
v0 = ov14_02222D34(param1, v1);
if (param1->battleMons[v0].unk_88.unk_00_31) {
if (param1->battleMons[v0].moveEffectsData.flashFireFlag) {
ov14_02222D24(param1, v2);
}
}
@ -3200,17 +3200,17 @@ static s32 ov14_02222E84 (UnkStruct_0207ADB4 * param0, BattleContext * param1, u
break;
case 69:
case 101:
v5 = param1->battleMons[param5].unk_34;
v5 = param1->battleMons[param5].level;
break;
case 149:
v5 = param1->battleMons[param5].unk_34 * (ov16_0223F4BC(param0) % 11 + 5) / 10;
v5 = param1->battleMons[param5].level * (ov16_0223F4BC(param0) % 11 + 5) / 10;
break;
case 216:
v1 = param1->battleMons[param5].unk_35 * 10 / 25;
v1 = param1->battleMons[param5].friendship * 10 / 25;
v2 = 0;
break;
case 218:
v1 = (255 - param1->battleMons[param5].unk_35) * 10 / 25;
v1 = (255 - param1->battleMons[param5].friendship) * 10 / 25;
v2 = 0;
break;
case 222:
@ -3245,7 +3245,7 @@ static s32 ov14_02222E84 (UnkStruct_0207ADB4 * param0, BattleContext * param1, u
v6 = 0;
while (Unk_ov14_0222EE60[v6][0] != 0xffff) {
if (Unk_ov14_0222EE60[v6][0] >= param1->battleMons[param1->aiContext.battlerIdDefender].unk_20) {
if (Unk_ov14_0222EE60[v6][0] >= param1->battleMons[param1->aiContext.battlerIdDefender].weight) {
break;
}
@ -3347,7 +3347,7 @@ static int ov14_0222327C (UnkStruct_0207ADB4 * param0, BattleContext * param1, i
}
break;
case 237:
v0 = ((param1->battleMons[param2].unk_14_0 & 1) >> 0) | ((param1->battleMons[param2].unk_14_5 & 1) << 1) | ((param1->battleMons[param2].unk_14_10 & 1) << 2) | ((param1->battleMons[param2].unk_14_15 & 1) << 3) | ((param1->battleMons[param2].unk_14_20 & 1) << 4) | ((param1->battleMons[param2].unk_14_25 & 1) << 5);
v0 = ((param1->battleMons[param2].hpIV & 1) >> 0) | ((param1->battleMons[param2].attackIV & 1) << 1) | ((param1->battleMons[param2].defenseIV & 1) << 2) | ((param1->battleMons[param2].speedIV & 1) << 3) | ((param1->battleMons[param2].spAttackIV & 1) << 4) | ((param1->battleMons[param2].spDefenseIV & 1) << 5);
v0 = (v0 * 15 / 63) + 1;
if (v0 >= 9) {
@ -3385,7 +3385,7 @@ static int ov14_0222327C (UnkStruct_0207ADB4 * param0, BattleContext * param1, i
static BOOL ov14_022233F4 (BattleContext * param0, int param1)
{
if ((param0->battleMons[param1].unk_80 & 0x20) && (param0->battleMons[param1].unk_88.unk_00_13 == 0)) {
if ((param0->battleMons[param1].moveEffectsMask & 0x20) && (param0->battleMons[param1].moveEffectsData.perishSongTurns == 0)) {
param0->aiSwitchSelectedMonIndex[param1] = 6;
return 1;
}
@ -3405,9 +3405,9 @@ static BOOL ov14_0222342C (UnkStruct_0207ADB4 * param0, BattleContext * param1,
return 0;
}
if (param1->battleMons[param2 ^ 1].unk_27 == 25) {
if (param1->battleMons[param2 ^ 1].ability == 25) {
for (v0 = 0; v0 < 4; v0++) {
v2 = param1->battleMons[param2].unk_0C[v0];
v2 = param1->battleMons[param2].moves[v0];
v3 = ov14_0222327C(param0, param1, param2, v2);
if (v2) {
@ -3470,14 +3470,14 @@ static BOOL ov14_022235F0 (UnkStruct_0207ADB4 * param0, BattleContext * param1,
v11 = 0;
for (v0 = 0; v0 < 4; v0++) {
v6 = param1->battleMons[param2].unk_0C[v0];
v6 = param1->battleMons[param2].moves[v0];
v7 = ov14_0222327C(param0, param1, param2, v6);
if ((v6) && (param1->aiContext.moveTable[v6].unk_03)) {
v11++;
v8 = 0;
if (param1->battleMons[v2].unk_4C) {
if (param1->battleMons[v2].curHP) {
ov16_02254FA8(param0, param1, v6, v7, param2, v2, 0, &v8);
}
@ -3487,7 +3487,7 @@ static BOOL ov14_022235F0 (UnkStruct_0207ADB4 * param0, BattleContext * param1,
v8 = 0;
if (param1->battleMons[v3].unk_4C) {
if (param1->battleMons[v3].curHP) {
ov16_02254FA8(param0, param1, v6, v7, param2, v3, 0, &v8);
}
@ -3523,7 +3523,7 @@ static BOOL ov14_022235F0 (UnkStruct_0207ADB4 * param0, BattleContext * param1,
if ((v6) && (param1->aiContext.moveTable[v6].unk_03)) {
v8 = 0;
if (param1->battleMons[v2].unk_4C) {
if (param1->battleMons[v2].curHP) {
ov16_022552D4(param1, v6, v7, GetMonData(v12, MON_DATA_10, NULL), ov16_02255A4C(param1, v2), ov16_02258AB8(param1, v2), ov16_02252060(param1, v2, 27, NULL), ov16_02252060(param1, v2, 28, NULL), &v8);
}
@ -3536,7 +3536,7 @@ static BOOL ov14_022235F0 (UnkStruct_0207ADB4 * param0, BattleContext * param1,
v8 = 0;
if (param1->battleMons[v3].unk_4C) {
if (param1->battleMons[v3].curHP) {
ov16_022552D4(param1, v6, v7, GetMonData(v12, MON_DATA_10, NULL), ov16_02255A4C(param1, v3), ov16_02258AB8(param1, v3), ov16_02252060(param1, v3, 27, NULL), ov16_02252060(param1, v3, 28, NULL), &v8);
}
@ -3562,7 +3562,7 @@ static BOOL ov14_022235F0 (UnkStruct_0207ADB4 * param0, BattleContext * param1,
if ((v6) && (param1->aiContext.moveTable[v6].unk_03)) {
v8 = 0;
if (param1->battleMons[v2].unk_4C) {
if (param1->battleMons[v2].curHP) {
ov16_022552D4(param1, v6, v7, GetMonData(v12, MON_DATA_10, NULL), ov16_02255A4C(param1, v2), ov16_02258AB8(param1, v2), ov16_02252060(param1, v2, 27, NULL), ov16_02252060(param1, v2, 28, NULL), &v8);
}
@ -3575,7 +3575,7 @@ static BOOL ov14_022235F0 (UnkStruct_0207ADB4 * param0, BattleContext * param1,
v8 = 0;
if (param1->battleMons[v3].unk_4C) {
if (param1->battleMons[v3].curHP) {
ov16_022552D4(param1, v6, v7, GetMonData(v12, MON_DATA_10, NULL), ov16_02255A4C(param1, v3), ov16_02258AB8(param1, v3), ov16_02252060(param1, v3, 27, NULL), ov16_02252060(param1, v3, 28, NULL), &v8);
}
@ -3607,7 +3607,7 @@ static BOOL ov14_02223B34 (UnkStruct_0207ADB4 * param0, BattleContext * param1,
if ((param1->battlersSwitchingMask & sub_020787CC(v2)) == 0) {
for (v0 = 0; v0 < 4; v0++) {
v4 = param1->battleMons[param2].unk_0C[v0];
v4 = param1->battleMons[param2].moves[v0];
v5 = ov14_0222327C(param0, param1, param2, v4);
if (v4) {
@ -3635,7 +3635,7 @@ static BOOL ov14_02223B34 (UnkStruct_0207ADB4 * param0, BattleContext * param1,
if ((param1->battlersSwitchingMask & sub_020787CC(v2)) == 0) {
for (v0 = 0; v0 < 4; v0++) {
v4 = param1->battleMons[param2].unk_0C[v0];
v4 = param1->battleMons[param2].moves[v0];
v5 = ov14_0222327C(param0, param1, param2, v4);
if (v4) {
@ -3787,7 +3787,7 @@ static BOOL ov14_02223E10 (UnkStruct_0207ADB4 * param0, BattleContext * param1,
static BOOL ov14_02224070 (UnkStruct_0207ADB4 * param0, BattleContext * param1, int param2)
{
if (((param1->battleMons[param2].unk_6C & 0x7) == 0) || (ov16_02255A4C(param1, param2) != 30) || (param1->battleMons[param2].unk_4C < (param1->battleMons[param2].unk_50 / 2))) {
if (((param1->battleMons[param2].status & 0x7) == 0) || (ov16_02255A4C(param1, param2) != 30) || (param1->battleMons[param2].curHP < (param1->battleMons[param2].maxHP / 2))) {
return 0;
}
@ -3829,8 +3829,8 @@ static BOOL ov14_0222416C (UnkStruct_0207ADB4 * param0, BattleContext * param1,
v1 = 0;
for (v0 = 0x0; v0 < 0x8; v0++) {
if (param1->battleMons[param2].unk_18[v0] > 6) {
v1 += param1->battleMons[param2].unk_18[v0] - 6;
if (param1->battleMons[param2].statBoosts[v0] > 6) {
v1 += param1->battleMons[param2].statBoosts[v0] - 6;
}
}
@ -3845,7 +3845,7 @@ static BOOL ov14_022241A4 (UnkStruct_0207ADB4 * param0, BattleContext * param1,
int v5, v6;
Pokemon * v7;
if ((param1->battleMons[param2].unk_70 & (0xe000 | 0x4000000)) || (param1->battleMons[param2].unk_80 & 0x400) || (ov16_022555A4(param0, param1, 2, param2, 23)) || (ov16_022555A4(param0, param1, 2, param2, 71)) || ((ov16_022555A4(param0, param1, 6, param2, 42) && ((ov16_02252060(param1, param2, 27, NULL) == 8) || ((ov16_02252060(param1, param2, 28, NULL) == 8)))))) {
if ((param1->battleMons[param2].statusVolatile & (0xe000 | 0x4000000)) || (param1->battleMons[param2].moveEffectsMask & 0x400) || (ov16_022555A4(param0, param1, 2, param2, 23)) || (ov16_022555A4(param0, param1, 2, param2, 71)) || ((ov16_022555A4(param0, param1, 6, param2, 42) && ((ov16_02252060(param1, param2, 27, NULL) == 8) || ((ov16_02252060(param1, param2, 28, NULL) == 8)))))) {
return 0;
}
@ -3981,7 +3981,7 @@ BOOL ov14_022244B0 (UnkStruct_0207ADB4 * param0, int param1)
return v4;
}
if (v8->battleMons[param1].unk_80 & 0x4000000) {
if (v8->battleMons[param1].moveEffectsMask & 0x4000000) {
return v4;
}
@ -4004,7 +4004,7 @@ BOOL ov14_022244B0 (UnkStruct_0207ADB4 * param0, int param1)
}
if (v2 == 23) {
if ((v8->battleMons[param1].unk_4C < (v8->battleMons[param1].unk_50 / 4)) && (v8->battleMons[param1].unk_4C)) {
if ((v8->battleMons[param1].curHP < (v8->battleMons[param1].maxHP / 4)) && (v8->battleMons[param1].curHP)) {
v8->aiContext.usedItemType[param1 >> 1] = 0;
v4 = 1;
}
@ -4012,48 +4012,48 @@ BOOL ov14_022244B0 (UnkStruct_0207ADB4 * param0, int param1)
v3 = ov16_0225B0FC(v8, v2, 54);
if (v3) {
if ((v8->battleMons[param1].unk_4C) && ((v8->battleMons[param1].unk_4C < (v8->battleMons[param1].unk_50 / 4)) || ((v8->battleMons[param1].unk_50 - v8->battleMons[param1].unk_4C) > v3))) {
if ((v8->battleMons[param1].curHP) && ((v8->battleMons[param1].curHP < (v8->battleMons[param1].maxHP / 4)) || ((v8->battleMons[param1].maxHP - v8->battleMons[param1].curHP) > v3))) {
v8->aiContext.usedItemType[param1 >> 1] = 1;
v4 = 1;
}
}
} else if (ov16_0225B0FC(v8, v2, 15)) {
if (v8->battleMons[param1].unk_6C & 0x7) {
if (v8->battleMons[param1].status & 0x7) {
v8->aiContext.usedItemCondition[param1 >> 1] |= sub_020787CC(5);
v8->aiContext.usedItemType[param1 >> 1] = 2;
v4 = 1;
}
} else if (ov16_0225B0FC(v8, v2, 16)) {
if ((v8->battleMons[param1].unk_6C & 0x8) || (v8->battleMons[param1].unk_6C & 0x80)) {
if ((v8->battleMons[param1].status & 0x8) || (v8->battleMons[param1].status & 0x80)) {
v8->aiContext.usedItemCondition[param1 >> 1] |= sub_020787CC(4);
v8->aiContext.usedItemType[param1 >> 1] = 2;
v4 = 1;
}
} else if (ov16_0225B0FC(v8, v2, 17)) {
if (v8->battleMons[param1].unk_6C & 0x10) {
if (v8->battleMons[param1].status & 0x10) {
v8->aiContext.usedItemCondition[param1 >> 1] |= sub_020787CC(3);
v8->aiContext.usedItemType[param1 >> 1] = 2;
v4 = 1;
}
} else if (ov16_0225B0FC(v8, v2, 18)) {
if (v8->battleMons[param1].unk_6C & 0x20) {
if (v8->battleMons[param1].status & 0x20) {
v8->aiContext.usedItemCondition[param1 >> 1] |= sub_020787CC(2);
v8->aiContext.usedItemType[param1 >> 1] = 2;
v4 = 1;
}
} else if (ov16_0225B0FC(v8, v2, 19)) {
if (v8->battleMons[param1].unk_6C & 0x40) {
if (v8->battleMons[param1].status & 0x40) {
v8->aiContext.usedItemCondition[param1 >> 1] |= sub_020787CC(1);
v8->aiContext.usedItemType[param1 >> 1] = 2;
v4 = 1;
}
} else if (ov16_0225B0FC(v8, v2, 20)) {
if (v8->battleMons[param1].unk_70 & 0x7) {
if (v8->battleMons[param1].statusVolatile & 0x7) {
v8->aiContext.usedItemCondition[param1 >> 1] |= sub_020787CC(0);
v8->aiContext.usedItemType[param1 >> 1] = 2;
v4 = 1;
}
} else if ((v8->battleMons[param1].unk_88.unk_0C - v8->totalTurns) >= 0) {
} else if ((v8->battleMons[param1].moveEffectsData.fakeOutTurnCount - v8->totalTurns) >= 0) {
if (ov16_0225B0FC(v8, v2, 27)) {
v8->aiContext.usedItemCondition[param1 >> 1] = 0x1;
v8->aiContext.usedItemType[param1 >> 1] = 3;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -321,12 +321,12 @@ void ov16_02264AB4 (UnkStruct_0207ADB4 * param0, int param1)
int v1;
v0.unk_00 = 2;
v0.unk_01_0 = param0->unk_30->battleMons[param1].unk_7E_0;
v0.unk_01_2 = param0->unk_30->battleMons[param1].unk_26_5;
v0.unk_02 = param0->unk_30->battleMons[param1].unk_00;
v0.unk_04 = param0->unk_30->battleMons[param1].unk_68;
v0.unk_01_0 = param0->unk_30->battleMons[param1].gender;
v0.unk_01_2 = param0->unk_30->battleMons[param1].isShiny;
v0.unk_02 = param0->unk_30->battleMons[param1].species;
v0.unk_04 = param0->unk_30->battleMons[param1].pid;
v0.unk_08 = ov16_022599D0(param0->unk_30, param1, ov16_0223E1F8(param0, param1), 1);
v0.unk_01_3 = param0->unk_30->battleMons[param1].unk_26_0;
v0.unk_01_3 = param0->unk_30->battleMons[param1].formNum;
for (v1 = 0; v1 < 4; v1++) {
v0.unk_0C[v1] = ov16_02252060(param0->unk_30, param1, 6 + v1, NULL);
@ -344,14 +344,14 @@ void ov16_02264BB4 (UnkStruct_0207ADB4 * param0, int param1)
int v1;
v0.unk_00 = 3;
v0.unk_01_0 = param0->unk_30->battleMons[param1].unk_7E_0;
v0.unk_01_2 = param0->unk_30->battleMons[param1].unk_26_5;
v0.unk_02 = param0->unk_30->battleMons[param1].unk_00;
v0.unk_04 = param0->unk_30->battleMons[param1].unk_68;
v0.unk_01_0 = param0->unk_30->battleMons[param1].gender;
v0.unk_01_2 = param0->unk_30->battleMons[param1].isShiny;
v0.unk_02 = param0->unk_30->battleMons[param1].species;
v0.unk_04 = param0->unk_30->battleMons[param1].pid;
v0.unk_08 = ov16_022599D0(param0->unk_30, param1, ov16_0223E1F8(param0, param1), 1);
v0.unk_0C = param0->unk_30->selectedMonIndex[param1];
v0.unk_01_3 = param0->unk_30->battleMons[param1].unk_26_0;
v0.unk_10 = param0->unk_30->battleMons[param1].unk_7F;
v0.unk_01_3 = param0->unk_30->battleMons[param1].formNum;
v0.unk_10 = param0->unk_30->battleMons[param1].capturedBall;
v0.unk_48 = param0->unk_30->selectedMonIndex[ov16_0223E258(param0, param1)];
ov16_0223EF2C(param0, param1, v0.unk_0C);
@ -373,28 +373,28 @@ void ov16_02264CE8 (UnkStruct_0207ADB4 * param0, int param1, int param2, int par
v0.unk_00 = 4;
if (param0->unk_30->battleMons[param1].unk_70 & 0x200000) {
v0.unk_01_0 = param0->unk_30->battleMons[param1].unk_88.unk_32;
v0.unk_04 = param0->unk_30->battleMons[param1].unk_88.unk_1C;
if (param0->unk_30->battleMons[param1].statusVolatile & 0x200000) {
v0.unk_01_0 = param0->unk_30->battleMons[param1].moveEffectsData.transformedGender;
v0.unk_04 = param0->unk_30->battleMons[param1].moveEffectsData.transformedPID;
} else {
v0.unk_01_0 = param0->unk_30->battleMons[param1].unk_7E_0;
v0.unk_04 = param0->unk_30->battleMons[param1].unk_68;
v0.unk_01_0 = param0->unk_30->battleMons[param1].gender;
v0.unk_04 = param0->unk_30->battleMons[param1].pid;
}
v0.unk_01_2 = param0->unk_30->battleMons[param1].unk_26_5;
v0.unk_02 = param0->unk_30->battleMons[param1].unk_00;
v0.unk_01_2 = param0->unk_30->battleMons[param1].isShiny;
v0.unk_02 = param0->unk_30->battleMons[param1].species;
v0.unk_08 = ov16_022599D0(param0->unk_30, param1, ov16_0223E1F8(param0, param1), 0);
v0.unk_0C = param0->unk_30->selectedMonIndex[param1];
v0.unk_01_3 = param0->unk_30->battleMons[param1].unk_26_0;
v0.unk_01_3 = param0->unk_30->battleMons[param1].formNum;
if (param2) {
v0.unk_10 = param2;
} else {
v0.unk_10 = param0->unk_30->battleMons[param1].unk_7F;
v0.unk_10 = param0->unk_30->battleMons[param1].capturedBall;
}
v0.unk_14 = param3;
v0.unk_4C = ((param0->unk_30->battleMons[param1].unk_70 & 0x1000000) != 0);
v0.unk_4C = ((param0->unk_30->battleMons[param1].statusVolatile & 0x1000000) != 0);
ov16_0223EF2C(param0, param1, v0.unk_0C);
@ -407,16 +407,16 @@ void ov16_02264CE8 (UnkStruct_0207ADB4 * param0, int param1, int param2, int par
ov16_02252060(param0->unk_30, param1, 45, &v0.unk_30);
for (v1 = 0; v1 < 4; v1++) {
v0.unk_50[v1] = param0->unk_30->battleMons[v1].unk_00;
v0.unk_5C[v1] = param0->unk_30->battleMons[v1].unk_26_5;
v0.unk_60[v1] = param0->unk_30->battleMons[v1].unk_26_0;
v0.unk_50[v1] = param0->unk_30->battleMons[v1].species;
v0.unk_5C[v1] = param0->unk_30->battleMons[v1].isShiny;
v0.unk_60[v1] = param0->unk_30->battleMons[v1].formNum;
if (param0->unk_30->battleMons[v1].unk_70 & 0x200000) {
v0.unk_58[v1] = param0->unk_30->battleMons[v1].unk_88.unk_32;
v0.unk_64[v1] = param0->unk_30->battleMons[v1].unk_88.unk_1C;
if (param0->unk_30->battleMons[v1].statusVolatile & 0x200000) {
v0.unk_58[v1] = param0->unk_30->battleMons[v1].moveEffectsData.transformedGender;
v0.unk_64[v1] = param0->unk_30->battleMons[v1].moveEffectsData.transformedPID;
} else {
v0.unk_58[v1] = param0->unk_30->battleMons[v1].unk_7E_0;
v0.unk_64[v1] = param0->unk_30->battleMons[v1].unk_68;
v0.unk_58[v1] = param0->unk_30->battleMons[v1].gender;
v0.unk_64[v1] = param0->unk_30->battleMons[v1].pid;
}
}
@ -436,29 +436,29 @@ void ov16_02264EF8 (UnkStruct_0207ADB4 * param0, BattleContext * param1, int par
v1 = 0;
}
v2 = param0->unk_30->battleMons[param2].unk_26_0;
v2 = param0->unk_30->battleMons[param2].formNum;
v0.unk_00 = 5;
if (param0->unk_30->battleMons[param2].unk_70 & 0x200000) {
v0.unk_01 = sub_02076648(param0->unk_30->battleMons[param2].unk_00, param0->unk_30->battleMons[param2].unk_88.unk_32, v1, v2, param0->unk_30->battleMons[param2].unk_88.unk_1C);
if (param0->unk_30->battleMons[param2].statusVolatile & 0x200000) {
v0.unk_01 = sub_02076648(param0->unk_30->battleMons[param2].species, param0->unk_30->battleMons[param2].moveEffectsData.transformedGender, v1, v2, param0->unk_30->battleMons[param2].moveEffectsData.transformedPID);
} else {
v0.unk_01 = sub_02076648(param0->unk_30->battleMons[param2].unk_00, param0->unk_30->battleMons[param2].unk_7E_0, v1, v2, param0->unk_30->battleMons[param2].unk_68);
v0.unk_01 = sub_02076648(param0->unk_30->battleMons[param2].species, param0->unk_30->battleMons[param2].gender, v1, v2, param0->unk_30->battleMons[param2].pid);
}
v0.unk_02 = param0->unk_30->battleMons[param2].unk_7F;
v0.unk_04 = ((param0->unk_30->battleMons[param2].unk_70 & 0x1000000) != 0);
v0.unk_02 = param0->unk_30->battleMons[param2].capturedBall;
v0.unk_04 = ((param0->unk_30->battleMons[param2].statusVolatile & 0x1000000) != 0);
for (v3 = 0; v3 < 4; v3++) {
v0.unk_08[v3] = param1->battleMons[v3].unk_00;
v0.unk_14[v3] = param1->battleMons[v3].unk_26_5;
v0.unk_18[v3] = param1->battleMons[v3].unk_26_0;
v0.unk_08[v3] = param1->battleMons[v3].species;
v0.unk_14[v3] = param1->battleMons[v3].isShiny;
v0.unk_18[v3] = param1->battleMons[v3].formNum;
if (param1->battleMons[v3].unk_70 & 0x200000) {
v0.unk_10[v3] = param1->battleMons[v3].unk_88.unk_32;
v0.unk_1C[v3] = param1->battleMons[v3].unk_88.unk_1C;
if (param1->battleMons[v3].statusVolatile & 0x200000) {
v0.unk_10[v3] = param1->battleMons[v3].moveEffectsData.transformedGender;
v0.unk_1C[v3] = param1->battleMons[v3].moveEffectsData.transformedPID;
} else {
v0.unk_10[v3] = param1->battleMons[v3].unk_7E_0;
v0.unk_1C[v3] = param1->battleMons[v3].unk_68;
v0.unk_10[v3] = param1->battleMons[v3].gender;
v0.unk_1C[v3] = param1->battleMons[v3].pid;
}
}
@ -477,13 +477,13 @@ void ov16_02265050 (UnkStruct_0207ADB4 * param0, int param1, int param2)
v1 = 0;
}
v2 = param0->unk_30->battleMons[param1].unk_26_0;
v2 = param0->unk_30->battleMons[param1].formNum;
v0.unk_00 = 6;
if (param0->unk_30->battleMons[param1].unk_70 & 0x200000) {
v0.unk_01 = sub_02076648(param0->unk_30->battleMons[param1].unk_00, param0->unk_30->battleMons[param1].unk_88.unk_32, v1, v2, param0->unk_30->battleMons[param1].unk_88.unk_1C);
if (param0->unk_30->battleMons[param1].statusVolatile & 0x200000) {
v0.unk_01 = sub_02076648(param0->unk_30->battleMons[param1].species, param0->unk_30->battleMons[param1].moveEffectsData.transformedGender, v1, v2, param0->unk_30->battleMons[param1].moveEffectsData.transformedPID);
} else {
v0.unk_01 = sub_02076648(param0->unk_30->battleMons[param1].unk_00, param0->unk_30->battleMons[param1].unk_7E_0, v1, v2, param0->unk_30->battleMons[param1].unk_68);
v0.unk_01 = sub_02076648(param0->unk_30->battleMons[param1].species, param0->unk_30->battleMons[param1].gender, v1, v2, param0->unk_30->battleMons[param1].pid);
}
v0.unk_02 = param2;
@ -549,21 +549,21 @@ void ov16_022651DC (UnkStruct_0207ADB4 * param0, BattleContext * param1, int par
v3 = GetMonData(v1, MON_DATA_161, NULL);
v0.unk_00 = 12;
v0.unk_01 = param1->battleMons[param2].unk_34;
v0.unk_02 = param1->battleMons[param2].unk_4C;
v0.unk_04 = param1->battleMons[param2].unk_50;
v0.unk_01 = param1->battleMons[param2].level;
v0.unk_02 = param1->battleMons[param2].curHP;
v0.unk_04 = param1->battleMons[param2].maxHP;
v0.unk_06 = param1->selectedMonIndex[param2];
v0.unk_07_0 = ov16_02253F7C(param1, param2);
if (((param1->battleMons[param2].unk_00 == 29) || (param1->battleMons[param2].unk_00 == 32)) && (param1->battleMons[param2].unk_14_31 == 0)) {
if (((param1->battleMons[param2].species == 29) || (param1->battleMons[param2].species == 32)) && (param1->battleMons[param2].hasNickname == 0)) {
v0.unk_07_5 = 2;
} else {
v0.unk_07_5 = param1->battleMons[param2].unk_7E_0;
v0.unk_07_5 = param1->battleMons[param2].gender;
}
v0.unk_08 = param1->battleMons[param2].unk_64 - sub_02075AD0(v2, v3);
v0.unk_08 = param1->battleMons[param2].exp - sub_02075AD0(v2, v3);
v0.unk_0C = sub_02075AD0(v2, v3 + 1) - sub_02075AD0(v2, v3);
v0.unk_07_7 = ov16_0223F9E0(param0, param1->battleMons[param2].unk_00);
v0.unk_07_7 = ov16_0223F9E0(param0, param1->battleMons[param2].species);
v0.unk_10 = ov16_0223ED8C(param0);
v0.unk_14 = param3;
@ -727,11 +727,11 @@ void ov16_02265330 (UnkStruct_0207ADB4 * param0, BattleContext * param1, int par
v0.unk_20[v1] = ov16_02252060(param1, param2, 39 + v1, NULL);
}
v0.unk_24 = param1->battleMons[param2].unk_4C;
v0.unk_26 = param1->battleMons[param2].unk_50;
v0.unk_24 = param1->battleMons[param2].curHP;
v0.unk_26 = param1->battleMons[param2].maxHP;
if (v0.unk_24) {
if (param1->battleMons[param2].unk_6C) {
if (param1->battleMons[param2].status) {
v0.unk_28 = 3;
} else {
v0.unk_28 = 1;
@ -759,9 +759,9 @@ void ov16_022656F0 (UnkStruct_0207ADB4 * param0, BattleContext * param1, int par
v0.unk_01 = param1->selectedMonIndex[param2];
for (v1 = 0; v1 < 4; v1++) {
v0.unk_04[v1] = param1->battleMons[param2].unk_0C[v1];
v0.unk_0C[v1] = param1->battleMons[param2].unk_2C[v1];
v0.unk_10[v1] = MoveTable_GetMoveMaxPP(param1->battleMons[param2].unk_0C[v1], param1->battleMons[param2].unk_30[v1]);
v0.unk_04[v1] = param1->battleMons[param2].moves[v1];
v0.unk_0C[v1] = param1->battleMons[param2].ppCur[v1];
v0.unk_10[v1] = MoveTable_GetMoveMaxPP(param1->battleMons[param2].moves[v1], param1->battleMons[param2].ppUps[v1]);
}
v0.unk_02 = ov16_02254A6C(param0, param1, param2, 0, 0xffffffff);
@ -794,20 +794,20 @@ void ov16_022657AC (UnkStruct_0207ADB4 * param0, BattleContext * param1, int par
}
for (v1 = 0; v1 < 4; v1++) {
if (param1->battleMons[v1].unk_4C) {
v0.unk_04[v1].unk_04 = param1->battleMons[v1].unk_4C;
v0.unk_04[v1].unk_06 = param1->battleMons[v1].unk_50;
if (param1->battleMons[v1].curHP) {
v0.unk_04[v1].unk_04 = param1->battleMons[v1].curHP;
v0.unk_04[v1].unk_06 = param1->battleMons[v1].maxHP;
v0.unk_04[v1].unk_01_2 = 1;
if (((param1->battleMons[v1].unk_00 == 29) || (param1->battleMons[v1].unk_00 == 32)) && (param1->battleMons[v1].unk_14_31 == 0)) {
if (((param1->battleMons[v1].species == 29) || (param1->battleMons[v1].species == 32)) && (param1->battleMons[v1].hasNickname == 0)) {
v0.unk_04[v1].unk_01_0 = 2;
} else {
v0.unk_04[v1].unk_01_0 = param1->battleMons[v1].unk_7E_0;
v0.unk_04[v1].unk_01_0 = param1->battleMons[v1].gender;
}
v0.unk_04[v1].unk_00 = param1->selectedMonIndex[v1];
if (param1->battleMons[v1].unk_6C) {
if (param1->battleMons[v1].status) {
v0.unk_04[v1].unk_02 = 3;
} else {
v0.unk_04[v1].unk_02 = 1;
@ -842,7 +842,7 @@ void ov16_022658E8 (UnkStruct_0207ADB4 * param0, BattleContext * param1, int par
v0.unk_08[v1][v2] = param1->partyOrder[v1][v2];
}
v0.unk_20[v1] = param1->battleMons[v1].unk_88.unk_04_19;
v0.unk_20[v1] = param1->battleMons[v1].moveEffectsData.embargoTurns;
}
if (ov16_0223DF0C(param0) == (0x2 | 0x8 | 0x40)) {
@ -853,10 +853,10 @@ void ov16_022658E8 (UnkStruct_0207ADB4 * param0, BattleContext * param1, int par
} else if ((param1->battlersSwitchingMask & sub_020787CC(1)) == 0) {
v0.unk_01 = 0;
if (param1->battleMons[1].unk_80 & (0x40 | 0x80 | 0x40000 | 0x20000000)) {
if (param1->battleMons[1].moveEffectsMask & (0x40 | 0x80 | 0x40000 | 0x20000000)) {
v0.unk_02 = 1;
v0.unk_03 = 0;
} else if (param1->battleMons[1].unk_70 & 0x1000000) {
} else if (param1->battleMons[1].statusVolatile & 0x1000000) {
v0.unk_02 = 0;
v0.unk_03 = 1;
} else {
@ -866,10 +866,10 @@ void ov16_022658E8 (UnkStruct_0207ADB4 * param0, BattleContext * param1, int par
} else {
v0.unk_01 = 0;
if (param1->battleMons[3].unk_80 & (0x40 | 0x80 | 0x40000 | 0x20000000)) {
if (param1->battleMons[3].moveEffectsMask & (0x40 | 0x80 | 0x40000 | 0x20000000)) {
v0.unk_02 = 1;
v0.unk_03 = 0;
} else if (param1->battleMons[3].unk_70 & 0x1000000) {
} else if (param1->battleMons[3].statusVolatile & 0x1000000) {
v0.unk_02 = 0;
v0.unk_03 = 1;
} else {
@ -880,10 +880,10 @@ void ov16_022658E8 (UnkStruct_0207ADB4 * param0, BattleContext * param1, int par
} else if (ov16_0223DF0C(param0) == (0x0 | 0x0)) {
v0.unk_01 = 0;
if (param1->battleMons[1].unk_80 & (0x40 | 0x80 | 0x40000 | 0x20000000)) {
if (param1->battleMons[1].moveEffectsMask & (0x40 | 0x80 | 0x40000 | 0x20000000)) {
v0.unk_02 = 1;
v0.unk_03 = 0;
} else if (param1->battleMons[1].unk_70 & 0x1000000) {
} else if (param1->battleMons[1].statusVolatile & 0x1000000) {
v0.unk_02 = 0;
v0.unk_03 = 1;
} else {
@ -1000,18 +1000,18 @@ void ov16_02265C38 (UnkStruct_0207ADB4 * param0, BattleContext * param1, int par
v3 = GetMonData(v1, MON_DATA_161, NULL);
v0.unk_00 = 24;
v0.unk_01 = param1->battleMons[param2].unk_34;
v0.unk_02 = param1->battleMons[param2].unk_4C;
v0.unk_04 = param1->battleMons[param2].unk_50;
v0.unk_01 = param1->battleMons[param2].level;
v0.unk_02 = param1->battleMons[param2].curHP;
v0.unk_04 = param1->battleMons[param2].maxHP;
v0.unk_08 = param1->hpCalcTemp;
if (((param1->battleMons[param2].unk_00 == 29) || (param1->battleMons[param2].unk_00 == 32)) && (param1->battleMons[param2].unk_14_31 == 0)) {
if (((param1->battleMons[param2].species == 29) || (param1->battleMons[param2].species == 32)) && (param1->battleMons[param2].hasNickname == 0)) {
v0.unk_07 = 2;
} else {
v0.unk_07 = param1->battleMons[param2].unk_7E_0;
v0.unk_07 = param1->battleMons[param2].gender;
}
v0.unk_0C = param1->battleMons[param2].unk_64 - sub_02075AD0(v2, v3);
v0.unk_0C = param1->battleMons[param2].exp - sub_02075AD0(v2, v3);
v0.unk_10 = sub_02075AD0(v2, v3 + 1) - sub_02075AD0(v2, v3);
ov16_02264A04(param0, 1, param2, &v0, sizeof(UnkStruct_ov16_0225C35C));
@ -1030,7 +1030,7 @@ void ov16_02265D14 (UnkStruct_0207ADB4 * param0, BattleContext * param1, int par
v0.unk_00 = 25;
v0.unk_04 = param3;
v0.unk_08 = param1->battleMons[param2].unk_64 - sub_02075AD0(v2, v3);
v0.unk_08 = param1->battleMons[param2].exp - sub_02075AD0(v2, v3);
v0.unk_0C = sub_02075AD0(v2, v3 + 1) - sub_02075AD0(v2, v3);
ov16_02264A04(param0, 1, param2, &v0, sizeof(UnkStruct_ov16_0225C370));
@ -1042,30 +1042,30 @@ void ov16_02265D98 (UnkStruct_0207ADB4 * param0, BattleContext * param1, int par
int v1;
v0.unk_00 = 26;
v0.unk_02 = param1->battleMons[param2].unk_00;
v0.unk_08 = param1->battleMons[param2].unk_26_0;
v0.unk_09 = ((param1->battleMons[param2].unk_70 & 0x1000000) != 0);
v0.unk_0A = ((param1->battleMons[param2].unk_70 & 0x200000) != 0);
v0.unk_02 = param1->battleMons[param2].species;
v0.unk_08 = param1->battleMons[param2].formNum;
v0.unk_09 = ((param1->battleMons[param2].statusVolatile & 0x1000000) != 0);
v0.unk_0A = ((param1->battleMons[param2].statusVolatile & 0x200000) != 0);
if (param1->battleMons[param2].unk_70 & 0x200000) {
v0.unk_01 = param1->battleMons[param2].unk_88.unk_32;
v0.unk_04 = param1->battleMons[param2].unk_88.unk_1C;
if (param1->battleMons[param2].statusVolatile & 0x200000) {
v0.unk_01 = param1->battleMons[param2].moveEffectsData.transformedGender;
v0.unk_04 = param1->battleMons[param2].moveEffectsData.transformedPID;
} else {
v0.unk_01 = param1->battleMons[param2].unk_7E_0;
v0.unk_04 = param1->battleMons[param2].unk_68;
v0.unk_01 = param1->battleMons[param2].gender;
v0.unk_04 = param1->battleMons[param2].pid;
}
for (v1 = 0; v1 < 4; v1++) {
v0.unk_0C[v1] = param1->battleMons[v1].unk_00;
v0.unk_18[v1] = param1->battleMons[v1].unk_26_5;
v0.unk_1C[v1] = param1->battleMons[v1].unk_26_0;
v0.unk_0C[v1] = param1->battleMons[v1].species;
v0.unk_18[v1] = param1->battleMons[v1].isShiny;
v0.unk_1C[v1] = param1->battleMons[v1].formNum;
if (param1->battleMons[v1].unk_70 & 0x200000) {
v0.unk_14[v1] = param1->battleMons[v1].unk_88.unk_32;
v0.unk_20[v1] = param1->battleMons[v1].unk_88.unk_1C;
if (param1->battleMons[v1].statusVolatile & 0x200000) {
v0.unk_14[v1] = param1->battleMons[v1].moveEffectsData.transformedGender;
v0.unk_20[v1] = param1->battleMons[v1].moveEffectsData.transformedPID;
} else {
v0.unk_14[v1] = param1->battleMons[v1].unk_7E_0;
v0.unk_20[v1] = param1->battleMons[v1].unk_68;
v0.unk_14[v1] = param1->battleMons[v1].gender;
v0.unk_20[v1] = param1->battleMons[v1].pid;
}
}
@ -1096,19 +1096,19 @@ void ov16_02265EE8 (UnkStruct_0207ADB4 * param0, int param1, int param2)
v0.unk_00 = 29;
v0.unk_01 = param2;
v0.unk_02 = ((param0->unk_30->battleMons[param1].unk_70 & 0x1000000) != 0);
v0.unk_02 = ((param0->unk_30->battleMons[param1].statusVolatile & 0x1000000) != 0);
for (v1 = 0; v1 < 4; v1++) {
v0.unk_04[v1] = param0->unk_30->battleMons[v1].unk_00;
v0.unk_10[v1] = param0->unk_30->battleMons[v1].unk_26_5;
v0.unk_14[v1] = param0->unk_30->battleMons[v1].unk_26_0;
v0.unk_04[v1] = param0->unk_30->battleMons[v1].species;
v0.unk_10[v1] = param0->unk_30->battleMons[v1].isShiny;
v0.unk_14[v1] = param0->unk_30->battleMons[v1].formNum;
if (param0->unk_30->battleMons[v1].unk_70 & 0x200000) {
v0.unk_0C[v1] = param0->unk_30->battleMons[v1].unk_88.unk_32;
v0.unk_18[v1] = param0->unk_30->battleMons[v1].unk_88.unk_1C;
if (param0->unk_30->battleMons[v1].statusVolatile & 0x200000) {
v0.unk_0C[v1] = param0->unk_30->battleMons[v1].moveEffectsData.transformedGender;
v0.unk_18[v1] = param0->unk_30->battleMons[v1].moveEffectsData.transformedPID;
} else {
v0.unk_0C[v1] = param0->unk_30->battleMons[v1].unk_7E_0;
v0.unk_18[v1] = param0->unk_30->battleMons[v1].unk_68;
v0.unk_0C[v1] = param0->unk_30->battleMons[v1].gender;
v0.unk_18[v1] = param0->unk_30->battleMons[v1].pid;
}
}
@ -1157,7 +1157,7 @@ void ov16_02266058 (UnkStruct_0207ADB4 * param0, BattleContext * param1, int par
v0.unk_00 = 32;
v0.unk_01 = param3;
v0.unk_02 = (param1->hpTemp - param1->battleMons[1].unk_4C) * 100 / param1->hpTemp;
v0.unk_02 = (param1->hpTemp - param1->battleMons[1].curHP) * 100 / param1->hpTemp;
ov16_02264A04(param0, 1, param2, &v0, sizeof(UnkStruct_ov16_0225C3F8));
}
@ -1169,10 +1169,10 @@ void ov16_0226609C (UnkStruct_0207ADB4 * param0, BattleContext * param1, int par
v0.unk_00 = 33;
v0.unk_01 = param3;
if (param1->battleMons[1].unk_4C == 0) {
if (param1->battleMons[1].curHP == 0) {
v0.unk_02 = 1000;
} else {
v0.unk_02 = param1->battleMons[1].unk_4C * 1000 / param1->battleMons[1].unk_50;
v0.unk_02 = param1->battleMons[1].curHP * 1000 / param1->battleMons[1].maxHP;
}
ov16_02264A04(param0, 1, param2, &v0, sizeof(UnkStruct_ov16_0225C40C));
@ -1238,21 +1238,21 @@ void ov16_022661CC (UnkStruct_0207ADB4 * param0, BattleContext * param1, int par
v3 = GetMonData(v1, MON_DATA_161, NULL);
v0.unk_00 = 38;
v0.unk_01 = param1->battleMons[param2].unk_34;
v0.unk_02 = param1->battleMons[param2].unk_4C;
v0.unk_04 = param1->battleMons[param2].unk_50;
v0.unk_01 = param1->battleMons[param2].level;
v0.unk_02 = param1->battleMons[param2].curHP;
v0.unk_04 = param1->battleMons[param2].maxHP;
v0.unk_06 = param1->selectedMonIndex[param2];
v0.unk_07_0 = ov16_02253F7C(param1, param2);
if (((param1->battleMons[param2].unk_00 == 29) || (param1->battleMons[param2].unk_00 == 32)) && (param1->battleMons[param2].unk_14_31 == 0)) {
if (((param1->battleMons[param2].species == 29) || (param1->battleMons[param2].species == 32)) && (param1->battleMons[param2].hasNickname == 0)) {
v0.unk_07_5 = 2;
} else {
v0.unk_07_5 = param1->battleMons[param2].unk_7E_0;
v0.unk_07_5 = param1->battleMons[param2].gender;
}
v0.unk_08 = param1->battleMons[param2].unk_64 - sub_02075AD0(v2, v3);
v0.unk_08 = param1->battleMons[param2].exp - sub_02075AD0(v2, v3);
v0.unk_0C = sub_02075AD0(v2, v3 + 1) - sub_02075AD0(v2, v3);
v0.unk_07_7 = ov16_0223F9E0(param0, param1->battleMons[param2].unk_00);
v0.unk_07_7 = ov16_0223F9E0(param0, param1->battleMons[param2].species);
v0.unk_10 = ov16_0223ED8C(param0);
ov16_02264A04(param0, 1, param2, &v0, sizeof(UnkStruct_ov16_0225C468));
@ -1265,24 +1265,24 @@ void ov16_022662FC (UnkStruct_0207ADB4 * param0, BattleContext * param1, int par
v0.unk_00 = 39;
v0.unk_01_0 = param1->selectedMonIndex[param2];
v0.unk_01_4 = param1->battleMons[param2].unk_88.unk_04_2;
v0.unk_02 = param1->battleMons[param2].unk_4C;
v0.unk_0C = param1->battleMons[param2].unk_78;
v0.unk_01_4 = param1->battleMons[param2].moveEffectsData.mimickedMoveSlot;
v0.unk_02 = param1->battleMons[param2].curHP;
v0.unk_0C = param1->battleMons[param2].heldItem;
v0.unk_08 = param1->sideConditions[ov16_0223E208(param0, param2)].knockedOffItemBattlers;
v0.unk_1C = param1->battleMons[param2].unk_26_0;
v0.unk_20 = param1->battleMons[param2].unk_27;
v0.unk_1C = param1->battleMons[param2].formNum;
v0.unk_20 = param1->battleMons[param2].ability;
for (v1 = 0; v1 < 4; v1++) {
v0.unk_0E[v1] = param1->battleMons[param2].unk_0C[v1];
v0.unk_12[v1] = param1->battleMons[param2].unk_2C[v1];
v0.unk_0E[v1] = param1->battleMons[param2].moves[v1];
v0.unk_12[v1] = param1->battleMons[param2].ppCur[v1];
}
if (v0.unk_02) {
v0.unk_04 = (param1->battleMons[param2].unk_6C & (0xf00 ^ 0xffffffff));
v0.unk_18 = param1->battleMons[param2].unk_70;
v0.unk_04 = (param1->battleMons[param2].status & (0xf00 ^ 0xffffffff));
v0.unk_18 = param1->battleMons[param2].statusVolatile;
} else {
v0.unk_04 = 0;
v0.unk_18 = param1->battleMons[param2].unk_70;
v0.unk_18 = param1->battleMons[param2].statusVolatile;
}
if (param1->battleStatusMask2 & 0x4000000) {
@ -1321,7 +1321,7 @@ void ov16_02266498 (UnkStruct_0207ADB4 * param0, BattleContext * param1, int par
v0.unk_00 = 42;
v0.unk_02 = param3;
v0.unk_01 = param1->battleMons[param2].unk_27;
v0.unk_01 = param1->battleMons[param2].ability;
ov16_02264A04(param0, 1, param2, &v0, sizeof(UnkStruct_ov16_02266498));
}
@ -1355,18 +1355,18 @@ void ov16_0226651C (UnkStruct_0207ADB4 * param0, int param1)
UnkStruct_ov16_0225C684 v0;
v0.unk_00 = 45;
v0.unk_02 = param0->unk_30->battleMons[param1].unk_00;
v0.unk_05 = param0->unk_30->battleMons[param1].unk_26_5;
v0.unk_02 = param0->unk_30->battleMons[param1].species;
v0.unk_05 = param0->unk_30->battleMons[param1].isShiny;
if (param0->unk_30->battleMons[param1].unk_70 & 0x200000) {
v0.unk_04 = param0->unk_30->battleMons[param1].unk_88.unk_32;
v0.unk_08 = param0->unk_30->battleMons[param1].unk_88.unk_1C;
if (param0->unk_30->battleMons[param1].statusVolatile & 0x200000) {
v0.unk_04 = param0->unk_30->battleMons[param1].moveEffectsData.transformedGender;
v0.unk_08 = param0->unk_30->battleMons[param1].moveEffectsData.transformedPID;
} else {
v0.unk_04 = param0->unk_30->battleMons[param1].unk_7E_0;
v0.unk_08 = param0->unk_30->battleMons[param1].unk_68;
v0.unk_04 = param0->unk_30->battleMons[param1].gender;
v0.unk_08 = param0->unk_30->battleMons[param1].pid;
}
v0.unk_01 = param0->unk_30->battleMons[param1].unk_26_0;
v0.unk_01 = param0->unk_30->battleMons[param1].formNum;
ov16_02264A04(param0, 1, param1, &v0, sizeof(UnkStruct_ov16_0225C684));
}
@ -1461,16 +1461,16 @@ void ov16_0226673C (UnkStruct_0207ADB4 * param0, BattleContext * param1, int par
v1.unk_00 = 56;
for (v0 = 0; v0 < 4; v0++) {
v1.unk_18[v0] = param1->battleMons[v0].unk_00;
v1.unk_24[v0] = param1->battleMons[v0].unk_26_5;
v1.unk_28[v0] = param1->battleMons[v0].unk_26_0;
v1.unk_18[v0] = param1->battleMons[v0].species;
v1.unk_24[v0] = param1->battleMons[v0].isShiny;
v1.unk_28[v0] = param1->battleMons[v0].formNum;
if (param1->battleMons[v0].unk_70 & 0x200000) {
v1.unk_20[v0] = param1->battleMons[v0].unk_88.unk_32;
v1.unk_2C[v0] = param1->battleMons[v0].unk_88.unk_1C;
if (param1->battleMons[v0].statusVolatile & 0x200000) {
v1.unk_20[v0] = param1->battleMons[v0].moveEffectsData.transformedGender;
v1.unk_2C[v0] = param1->battleMons[v0].moveEffectsData.transformedPID;
} else {
v1.unk_20[v0] = param1->battleMons[v0].unk_7E_0;
v1.unk_2C[v0] = param1->battleMons[v0].unk_68;
v1.unk_20[v0] = param1->battleMons[v0].gender;
v1.unk_2C[v0] = param1->battleMons[v0].pid;
}
}
@ -1543,16 +1543,16 @@ void ov16_0226692C (UnkStruct_0207ADB4 * param0, BattleContext * param1, int par
v1.unk_00 = 62;
for (v0 = 0; v0 < 4; v0++) {
v1.unk_18[v0] = param1->battleMons[v0].unk_00;
v1.unk_24[v0] = param1->battleMons[v0].unk_26_5;
v1.unk_28[v0] = param1->battleMons[v0].unk_26_0;
v1.unk_18[v0] = param1->battleMons[v0].species;
v1.unk_24[v0] = param1->battleMons[v0].isShiny;
v1.unk_28[v0] = param1->battleMons[v0].formNum;
if (param1->battleMons[v0].unk_70 & 0x200000) {
v1.unk_20[v0] = param1->battleMons[v0].unk_88.unk_32;
v1.unk_2C[v0] = param1->battleMons[v0].unk_88.unk_1C;
if (param1->battleMons[v0].statusVolatile & 0x200000) {
v1.unk_20[v0] = param1->battleMons[v0].moveEffectsData.transformedGender;
v1.unk_2C[v0] = param1->battleMons[v0].moveEffectsData.transformedPID;
} else {
v1.unk_20[v0] = param1->battleMons[v0].unk_7E_0;
v1.unk_2C[v0] = param1->battleMons[v0].unk_68;
v1.unk_20[v0] = param1->battleMons[v0].gender;
v1.unk_2C[v0] = param1->battleMons[v0].pid;
}
}
@ -1688,7 +1688,7 @@ void ov16_02266B78 (UnkStruct_0207ADB4 * param0, BattleContext * param1, UnkStru
param2->unk_08 = param1->aiContext.moveTable[param7].unk_03;
}
param2->unk_0C = param1->battleMons[param5].unk_35;
param2->unk_0C = param1->battleMons[param5].friendship;
if ((ov16_022555A4(param0, param1, 8, 0, 13) == 0) && (ov16_022555A4(param0, param1, 8, 0, 76) == 0)) {
param2->unk_10 = param1->fieldConditionsMask;
@ -1697,21 +1697,21 @@ void ov16_02266B78 (UnkStruct_0207ADB4 * param0, BattleContext * param1, UnkStru
}
param2->unk_0A = param1->moveEffectChance;
param2->unk_0E_0 = ((param1->battleMons[param5].unk_70 & 0x1000000) != 0);
param2->unk_0E_1 = ((param1->battleMons[param5].unk_70 & 0x200000) != 0);
param2->unk_0E_0 = ((param1->battleMons[param5].statusVolatile & 0x1000000) != 0);
param2->unk_0E_1 = ((param1->battleMons[param5].statusVolatile & 0x200000) != 0);
for (v0 = 0; v0 < 4; v0++) {
param2->unk_18[v0] = param1->battleMons[v0].unk_00;
param2->unk_24[v0] = param1->battleMons[v0].unk_26_5;
param2->unk_28[v0] = param1->battleMons[v0].unk_26_0;
param2->unk_3C[v0] = param1->battleMons[v0].unk_80;
param2->unk_18[v0] = param1->battleMons[v0].species;
param2->unk_24[v0] = param1->battleMons[v0].isShiny;
param2->unk_28[v0] = param1->battleMons[v0].formNum;
param2->unk_3C[v0] = param1->battleMons[v0].moveEffectsMask;
if (param1->battleMons[v0].unk_70 & 0x200000) {
param2->unk_20[v0] = param1->battleMons[v0].unk_88.unk_32;
param2->unk_2C[v0] = param1->battleMons[v0].unk_88.unk_1C;
if (param1->battleMons[v0].statusVolatile & 0x200000) {
param2->unk_20[v0] = param1->battleMons[v0].moveEffectsData.transformedGender;
param2->unk_2C[v0] = param1->battleMons[v0].moveEffectsData.transformedPID;
} else {
param2->unk_20[v0] = param1->battleMons[v0].unk_7E_0;
param2->unk_2C[v0] = param1->battleMons[v0].unk_68;
param2->unk_20[v0] = param1->battleMons[v0].gender;
param2->unk_2C[v0] = param1->battleMons[v0].pid;
}
}
}