diff options
Diffstat (limited to 'src/field/field_poison.c')
-rw-r--r-- | src/field/field_poison.c | 143 |
1 files changed, 0 insertions, 143 deletions
diff --git a/src/field/field_poison.c b/src/field/field_poison.c deleted file mode 100644 index 49678f269..000000000 --- a/src/field/field_poison.c +++ /dev/null @@ -1,143 +0,0 @@ -#include "global.h" -#include "field_poison.h" -#include "field_message_box.h" -#include "fldeff_poison.h" -#include "pokemon.h" -#include "pokemon_summary_screen.h" -#include "script.h" -#include "string_util.h" -#include "task.h" -#include "text.h" - -extern u16 gSpecialVar_Result; -extern u8 fieldPoisonText_PokemonFainted[]; - -bool32 CheckMonIsValid(struct Pokemon *pkmn) -{ - // UB: Too few arguments for function 'GetMonData' - u16 species2 = GetMonData(pkmn, MON_DATA_SPECIES2); - - if (species2 == 0 || species2 == 0x19C) - return FALSE; - else - return TRUE; -} - -bool32 AllMonsFainted(void) -{ - struct Pokemon *pkmn = &gPlayerParty[0]; - int i; - - for (i = 0; i < 6; i++, pkmn++) - { - // UB: Too few arguments for function 'GetMonData' - if (CheckMonIsValid(pkmn) && GetMonData(pkmn, MON_DATA_HP) != 0) - return FALSE; - } - return TRUE; -} - -void MonFaintFromPoisonOnField(u8 partyMember) -{ - struct Pokemon *pkmn = &gPlayerParty[partyMember]; - u32 val = 0; - - AdjustFriendship(pkmn, 7); - SetMonData(pkmn, MON_DATA_STATUS, (u8*)&val); - GetMonData(pkmn, MON_DATA_NICKNAME, gStringVar1); - StringGetEnd10(gStringVar1); -} - -bool32 CheckMonFaintedFromPoison(u8 partyMember) -{ - struct Pokemon *pkmn = &gPlayerParty[partyMember]; - - // UB: Too few arguments for function 'GetMonData' - if (CheckMonIsValid(pkmn) && GetMonData(pkmn, MON_DATA_HP) == 0 - && pokemon_ailments_get_primary(GetMonData(pkmn, MON_DATA_STATUS)) == 1) - return TRUE; - else - return FALSE; -} - -//Task data -enum -{ - TD_STATE, - TD_PARTY_MEMBER, -}; - -void Task_WhiteOut(u8 taskId) -{ - s16 *taskData = gTasks[taskId].data; - - switch (taskData[TD_STATE]) - { - case 0: //Check if Pokemon have fainted due to poison - while (taskData[TD_PARTY_MEMBER] < 6) - { - if (CheckMonFaintedFromPoison(taskData[TD_PARTY_MEMBER])) - { - MonFaintFromPoisonOnField(taskData[TD_PARTY_MEMBER]); - ShowFieldMessage(fieldPoisonText_PokemonFainted); - taskData[TD_STATE]++; - return; - } - taskData[TD_PARTY_MEMBER]++; - } - taskData[TD_STATE] = 2; - break; - case 1: //Wait for message box to disappear - if (IsFieldMessageBoxHidden()) - taskData[TD_STATE]--; //Check next party member - break; - case 2: //Done checking Pokemon - if (AllMonsFainted()) - gSpecialVar_Result = 1; - else - gSpecialVar_Result = 0; - EnableBothScriptContexts(); - DestroyTask(taskId); - break; - } -} - -void ExecuteWhiteOut(void) -{ - CreateTask(Task_WhiteOut, 0x50); - ScriptContext1_Stop(); -} - -s32 DoPoisonFieldEffect(void) -{ - struct Pokemon *pkmn = &gPlayerParty[0]; - u32 numPoisoned = 0; - u32 numFainting = 0; - int i; - - for (i = 0; i < 6; i++) - { - u32 hp; - - // UB: Too few arguments for function 'GetMonData' - if (GetMonData(pkmn, MON_DATA_SANITY_BIT2) != 0 - && pokemon_ailments_get_primary(GetMonData(pkmn, MON_DATA_STATUS)) == 1) - { - hp = GetMonData(pkmn, MON_DATA_HP); - if (hp != 0) - hp--; - if (hp == 0) - numFainting++; //Pokemon will now faint due to poison - SetMonData(pkmn, MON_DATA_HP, &hp); - numPoisoned++; - } - pkmn++; - } - if (numFainting != 0 || numPoisoned != 0) - DoFieldPoisonEffect(); - if (numFainting != 0) - return 2; - if (numPoisoned != 0) - return 1; - return 0; -} |