diff --git a/include/field_overworld_state.h b/include/field_overworld_state.h index 1697751b56..4ca05cf6d6 100644 --- a/include/field_overworld_state.h +++ b/include/field_overworld_state.h @@ -30,9 +30,9 @@ UnkStruct_020556C4 *sub_0203A76C(FieldOverworldState *param0); int FieldOverworldState_GetCameraType(const FieldOverworldState *param0); void FieldOverworldState_SetCameraType(FieldOverworldState *param0, int param1); PlayerData *FieldOverworldState_GetPlayerData(FieldOverworldState *param0); -u16 *sub_0203A784(FieldOverworldState *param0); -u16 *sub_0203A788(FieldOverworldState *param0); -u16 *sub_0203A78C(FieldOverworldState *param0); +u16 *FieldOverworldState_GetSafariBallCount(FieldOverworldState *param0); +u16 *FieldOverworldState_GetSafariStepCount(FieldOverworldState *param0); +u16 *FieldOverworldState_GetPoisonStepCount(FieldOverworldState *param0); FieldOverworldState *SaveData_GetFieldOverworldState(SaveData *param0); FieldOverworldSave *SaveData_GetFieldOverworldSave(SaveData *param0); void FieldSystem_SaveObjects(FieldSystem *fieldSystem); diff --git a/include/overlay005/ov5_021EF4BC.h b/include/overlay005/ov5_021EF4BC.h index 374b2c6c1d..13f32c4302 100644 --- a/include/overlay005/ov5_021EF4BC.h +++ b/include/overlay005/ov5_021EF4BC.h @@ -7,6 +7,6 @@ UnkStruct_ov5_021EF4F8 *ov5_021EF4BC(u32 param0, HBlankSystem *param1); void ov5_021EF4F8(UnkStruct_ov5_021EF4F8 *param0); -void ov5_021EF518(UnkStruct_ov5_021EF4F8 *param0); +void Field_DoPoisonEffect(UnkStruct_ov5_021EF4F8 *param0); #endif // POKEPLATINUM_OV5_021EF4BC_H diff --git a/include/struct_decls/struct_0203A790_decl.h b/include/struct_decls/struct_0203A790_decl.h index 49d0f0f980..78621e74fd 100644 --- a/include/struct_decls/struct_0203A790_decl.h +++ b/include/struct_decls/struct_0203A790_decl.h @@ -1,6 +1,6 @@ #ifndef POKEPLATINUM_STRUCT_0203A790_DECL_H #define POKEPLATINUM_STRUCT_0203A790_DECL_H -typedef struct UnkStruct_0203A790_t FieldOverworldState; +typedef struct FieldOverworldState FieldOverworldState; #endif // POKEPLATINUM_STRUCT_0203A790_DECL_H diff --git a/include/unk_02054884.h b/include/unk_02054884.h index 256f17699e..aa5768c246 100644 --- a/include/unk_02054884.h +++ b/include/unk_02054884.h @@ -18,7 +18,7 @@ Pokemon *Party_FindFirstEligibleBattler(const Party *party); Pokemon *Party_FindFirstHatchedMon(const Party *party); BOOL Party_HasTwoAliveMons(const Party *party); void Party_GiveChampionRibbons(Party *party); -int sub_02054B04(Party *param0, u16 param1); +int Pokemon_DoPoisonDamage(Party *param0, u16 param1); BOOL Pokemon_TrySurvivePoison(Pokemon *mon); #endif // POKEPLATINUM_UNK_02054884_H diff --git a/src/encounter.c b/src/encounter.c index 0abdf505b2..bdb0be7235 100644 --- a/src/encounter.c +++ b/src/encounter.c @@ -457,7 +457,7 @@ static BOOL FieldTask_SafariEncounter(FieldTask *task) FieldSystem *fieldSystem = FieldTask_GetFieldSystem(task); Encounter *encounter = FieldTask_GetEnv(task); int *state = FieldTask_GetState(task); - u16 *ballCount = sub_0203A784(SaveData_GetFieldOverworldState(fieldSystem->saveData)); + u16 *ballCount = FieldOverworldState_GetSafariBallCount(SaveData_GetFieldOverworldState(fieldSystem->saveData)); switch (*state) { case 0: diff --git a/src/field_battle_data_transfer.c b/src/field_battle_data_transfer.c index d4fe908bb0..9e6175bc7c 100644 --- a/src/field_battle_data_transfer.c +++ b/src/field_battle_data_transfer.c @@ -429,7 +429,7 @@ void FieldBattleDTO_UpdateFieldSystem(const FieldBattleDTO *dto, FieldSystem *fi Party *party = Party_GetFromSavedata(fieldSystem->saveData); Bag *bag = SaveData_GetBag(fieldSystem->saveData); PokedexData *pokedex = SaveData_Pokedex(fieldSystem->saveData); - u16 *fieldSysSafariBalls = sub_0203A784(SaveData_GetFieldOverworldState(fieldSystem->saveData)); + u16 *fieldSysSafariBalls = FieldOverworldState_GetSafariBallCount(SaveData_GetFieldOverworldState(fieldSystem->saveData)); TrainerInfo_Copy(dto->trainerInfo[BATTLER_PLAYER_SLOT_1], trainerInfo); Party_cpy(dto->parties[BATTLER_PLAYER_SLOT_1], party); diff --git a/src/field_menu.c b/src/field_menu.c index c310f52451..e394741610 100644 --- a/src/field_menu.c +++ b/src/field_menu.c @@ -686,7 +686,7 @@ static void sub_0203B094(FieldTask *taskMan) v5 = MessageLoader_GetNewStrbuf(v2, 11); if (v6 == 0) { - u16 *v7 = sub_0203A784(SaveData_GetFieldOverworldState(fieldSystem->saveData)); + u16 *v7 = FieldOverworldState_GetSafariBallCount(SaveData_GetFieldOverworldState(fieldSystem->saveData)); StringTemplate_SetNumber(v3, 0, *v7, 2, 0, 1); } else { diff --git a/src/field_overworld_state.c b/src/field_overworld_state.c index b45449dd5c..09f14f9859 100644 --- a/src/field_overworld_state.c +++ b/src/field_overworld_state.c @@ -16,7 +16,7 @@ #include "unk_0203A7D8.h" #include "unk_020556C4.h" -typedef struct UnkStruct_0203A790_t { +typedef struct FieldOverworldState { Location player; Location entrance; Location previous; @@ -28,9 +28,9 @@ typedef struct UnkStruct_0203A790_t { u8 cameraType; UnkStruct_020556C4 unk_6C; PlayerData playerData; - u16 unk_94; - u16 unk_96; - u16 unk_98; + u16 poisonSteps; + u16 safariSteps; + u16 safariBalls; u16 unk_9A; u16 unk_9C; } FieldOverworldState; @@ -140,19 +140,19 @@ PlayerData *FieldOverworldState_GetPlayerData(FieldOverworldState *fieldState) return &fieldState->playerData; } -u16 *sub_0203A784(FieldOverworldState *fieldState) +u16 *FieldOverworldState_GetSafariBallCount(FieldOverworldState *fieldState) { - return &fieldState->unk_98; + return &fieldState->safariBalls; } -u16 *sub_0203A788(FieldOverworldState *fieldState) +u16 *FieldOverworldState_GetSafariStepCount(FieldOverworldState *fieldState) { - return &fieldState->unk_96; + return &fieldState->safariSteps; } -u16 *sub_0203A78C(FieldOverworldState *fieldState) +u16 *FieldOverworldState_GetPoisonStepCount(FieldOverworldState *fieldState) { - return &fieldState->unk_94; + return &fieldState->poisonSteps; } FieldOverworldState *SaveData_GetFieldOverworldState(SaveData *saveData) diff --git a/src/overlay005/field_control.c b/src/overlay005/field_control.c index 409c05b058..4e17a8a9aa 100644 --- a/src/overlay005/field_control.c +++ b/src/overlay005/field_control.c @@ -896,7 +896,7 @@ static void Field_CalculateFriendship(FieldSystem *fieldSystem) static BOOL Field_UpdatePoison(FieldSystem *fieldSystem) { Party *party = Party_GetFromSavedata(fieldSystem->saveData); - u16 *poisonSteps = sub_0203A78C(SaveData_GetFieldOverworldState(fieldSystem->saveData)); + u16 *poisonSteps = FieldOverworldState_GetPoisonStepCount(SaveData_GetFieldOverworldState(fieldSystem->saveData)); (*poisonSteps)++; (*poisonSteps) %= 4; @@ -905,14 +905,14 @@ static BOOL Field_UpdatePoison(FieldSystem *fieldSystem) return FALSE; } - switch (sub_02054B04(party, MapHeader_GetMapLabelTextID(fieldSystem->location->mapId))) { + switch (Pokemon_DoPoisonDamage(party, MapHeader_GetMapLabelTextID(fieldSystem->location->mapId))) { case 0: return FALSE; case 1: - ov5_021EF518(fieldSystem->unk_04->unk_20); + Field_DoPoisonEffect(fieldSystem->unk_04->unk_20); return FALSE; case 2: - ov5_021EF518(fieldSystem->unk_04->unk_20); + Field_DoPoisonEffect(fieldSystem->unk_04->unk_20); ScriptManager_Set(fieldSystem, 2003, NULL); return TRUE; } @@ -926,14 +926,14 @@ static BOOL Field_UpdateSafari(FieldSystem *fieldSystem) return FALSE; } - u16 *balls = sub_0203A784(SaveData_GetFieldOverworldState(fieldSystem->saveData)); + u16 *balls = FieldOverworldState_GetSafariBallCount(SaveData_GetFieldOverworldState(fieldSystem->saveData)); if (*balls == 0) { ScriptManager_Set(fieldSystem, 8802, NULL); return TRUE; } - u16 *steps = sub_0203A788(SaveData_GetFieldOverworldState(fieldSystem->saveData)); + u16 *steps = FieldOverworldState_GetSafariStepCount(SaveData_GetFieldOverworldState(fieldSystem->saveData)); (*steps)++; if (*steps >= 500) { diff --git a/src/overlay005/ov5_021EF4BC.c b/src/overlay005/ov5_021EF4BC.c index feacd7321a..cfea846be6 100644 --- a/src/overlay005/ov5_021EF4BC.c +++ b/src/overlay005/ov5_021EF4BC.c @@ -60,7 +60,7 @@ void ov5_021EF4F8(UnkStruct_ov5_021EF4F8 *param0) Heap_FreeToHeap(param0); } -void ov5_021EF518(UnkStruct_ov5_021EF4F8 *param0) +void Field_DoPoisonEffect(UnkStruct_ov5_021EF4F8 *param0) { GF_ASSERT(param0->unk_00 == 0); diff --git a/src/overlay006/ov6_02240C9C.c b/src/overlay006/ov6_02240C9C.c index 0a22916da7..8a1280ed4d 100644 --- a/src/overlay006/ov6_02240C9C.c +++ b/src/overlay006/ov6_02240C9C.c @@ -1389,7 +1389,7 @@ static void ov6_02242328(FieldSystem *fieldSystem, const BOOL param1, FieldBattl if (!param1) { *param2 = FieldBattleDTO_New(11, (0x0 | 0x0)); } else { - u16 *v0 = sub_0203A784(SaveData_GetFieldOverworldState(fieldSystem->saveData)); + u16 *v0 = FieldOverworldState_GetSafariBallCount(SaveData_GetFieldOverworldState(fieldSystem->saveData)); *param2 = FieldBattleDTO_NewSafari(11, *v0); } } diff --git a/src/scrcmd.c b/src/scrcmd.c index 629dcb0780..a476266fbe 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -6381,8 +6381,8 @@ static BOOL ScrCmd_202(ScriptContext *ctx) TVBroadcast *v4 = SaveData_TVBroadcast(ctx->fieldSystem->saveData); int v5 = ScriptContext_ReadByte(ctx); - v0 = sub_0203A784(v2); - v1 = sub_0203A788(v2); + v0 = FieldOverworldState_GetSafariBallCount(v2); + v1 = FieldOverworldState_GetSafariStepCount(v2); switch (v5) { case 0: diff --git a/src/unk_02054884.c b/src/unk_02054884.c index 6f3147480f..cf492754ec 100644 --- a/src/unk_02054884.c +++ b/src/unk_02054884.c @@ -175,41 +175,41 @@ void Party_GiveChampionRibbons(Party *party) } } -int sub_02054B04(Party *param0, u16 param1) +int Pokemon_DoPoisonDamage(Party *param0, u16 param1) { - int v0 = 0; - int v1 = 0; - int v2, v3; - Pokemon *v4; + int numPoisoned = 0; + int numFainted = 0; + int i, partyCount; + Pokemon *mon; - v3 = Party_GetCurrentCount(param0); + partyCount = Party_GetCurrentCount(param0); - for (v2 = 0; v2 < v3; v2++) { - v4 = Party_GetPokemonBySlotIndex(param0, v2); + for (i = 0; i < partyCount; i++) { + mon = Party_GetPokemonBySlotIndex(param0, i); - if (Pokemon_CanBattle(v4)) { - if (Pokemon_GetValue(v4, MON_DATA_STATUS_CONDITION, NULL) & (MON_CONDITION_TOXIC | MON_CONDITION_POISON)) { - u32 v5 = Pokemon_GetValue(v4, MON_DATA_CURRENT_HP, NULL); + if (Pokemon_CanBattle(mon)) { + if (Pokemon_GetValue(mon, MON_DATA_STATUS_CONDITION, NULL) & (MON_CONDITION_TOXIC | MON_CONDITION_POISON)) { + u32 hp = Pokemon_GetValue(mon, MON_DATA_CURRENT_HP, NULL); - if (v5 > 1) { - v5--; + if (hp > 1) { + hp--; } - Pokemon_SetValue(v4, MON_DATA_CURRENT_HP, &v5); + Pokemon_SetValue(mon, MON_DATA_CURRENT_HP, &hp); - if (v5 == 1) { - v1++; - Pokemon_UpdateFriendship(v4, 7, param1); + if (hp == 1) { + numFainted++; + Pokemon_UpdateFriendship(mon, 7, param1); } - v0++; + numPoisoned++; } } } - if (v1) { + if (numFainted) { return 2; - } else if (v0) { + } else if (numPoisoned) { return 1; } else { return 0;