start pss
This commit is contained in:
@@ -1,15 +1,121 @@
|
||||
|
||||
// Includes
|
||||
#include "global.h"
|
||||
|
||||
// Static type declarations
|
||||
|
||||
// Static RAM declarations
|
||||
#include "pokemon_storage_system.h"
|
||||
#include "pokemon.h"
|
||||
#include "species.h"
|
||||
#include "event_data.h"
|
||||
#include "string_util.h"
|
||||
#include "text.h"
|
||||
|
||||
IWRAM_DATA u8 gUnknown_03000F78[0x188];
|
||||
|
||||
// Static ROM declarations
|
||||
u8 CountMonsInBox(u8 boxId)
|
||||
{
|
||||
u16 i, count;
|
||||
|
||||
// .rodata
|
||||
for (i = 0, count = 0; i < IN_BOX_COUNT; i++)
|
||||
{
|
||||
if (GetBoxMonDataFromAnyBox(boxId, i, MON_DATA_SPECIES) != SPECIES_NONE)
|
||||
count++;
|
||||
}
|
||||
|
||||
// .text
|
||||
return count;
|
||||
}
|
||||
|
||||
s16 GetFirstFreeBoxSpot(u8 boxId)
|
||||
{
|
||||
u16 i;
|
||||
|
||||
for (i = 0; i < IN_BOX_COUNT; i++)
|
||||
{
|
||||
if (GetBoxMonDataFromAnyBox(boxId, i, MON_DATA_SPECIES) == SPECIES_NONE)
|
||||
return i;
|
||||
}
|
||||
|
||||
return -1; // all spots are taken
|
||||
}
|
||||
|
||||
u8 CountPartyNonEggMons(void)
|
||||
{
|
||||
u16 i, count;
|
||||
|
||||
for (i = 0, count = 0; i < PARTY_SIZE; i++)
|
||||
{
|
||||
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) != SPECIES_NONE
|
||||
&& !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG))
|
||||
{
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
u8 CountPartyAliveNonEggMonsExcept(u8 slotToIgnore)
|
||||
{
|
||||
u16 i, count;
|
||||
|
||||
for (i = 0, count = 0; i < PARTY_SIZE; i++)
|
||||
{
|
||||
if (i != slotToIgnore
|
||||
&& GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) != SPECIES_NONE
|
||||
&& !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)
|
||||
&& GetMonData(&gPlayerParty[i], MON_DATA_HP) != 0)
|
||||
{
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
u16 CountPartyAliveNonEggMons_IgnoreVar0x8004Slot(void)
|
||||
{
|
||||
return CountPartyAliveNonEggMonsExcept(gSpecialVar_0x8004);
|
||||
}
|
||||
|
||||
u8 CountPartyMons(void)
|
||||
{
|
||||
u16 i, count;
|
||||
|
||||
for (i = 0, count = 0; i < PARTY_SIZE; i++)
|
||||
{
|
||||
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) != SPECIES_NONE)
|
||||
{
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
static u8 *StringCopyAndFillWithSpaces(u8 *dst, const u8 *src, u16 n)
|
||||
{
|
||||
u8 *str;
|
||||
|
||||
for (str = StringCopy(dst, src); str < dst + n; str++)
|
||||
*str = CHAR_SPACE;
|
||||
|
||||
*str = EOS;
|
||||
return str;
|
||||
}
|
||||
|
||||
static void sub_80C7128(u16 *dst, u16 dstToAdd, u16 dstToMul, const u16 *src, u16 srcToAdd, u16 srcToMul, u32 size, u16 count, u16 srcBy)
|
||||
{
|
||||
u16 i;
|
||||
|
||||
size <<= 0x11;
|
||||
dst += (dstToMul * 32) + dstToAdd;
|
||||
src += (srcToMul * srcBy) + srcToAdd;
|
||||
|
||||
i = 0;
|
||||
if (i < count)
|
||||
{
|
||||
size >>= 1;
|
||||
for (i = 0; i < count; i++)
|
||||
{
|
||||
CpuSet(src, dst, size >> 0x10);
|
||||
dst += 0x20;
|
||||
src += srcBy;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user