mirror of https://github.com/pret/pokeemerald.git
start pss
This commit is contained in:
parent
af197ccd3b
commit
fa3691ca40
|
@ -5,289 +5,9 @@
|
||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start CountMonsInBox
|
|
||||||
CountMonsInBox: @ 80C6FA0
|
|
||||||
push {r4-r6,lr}
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r6, r0, 24
|
|
||||||
movs r4, 0
|
|
||||||
movs r5, 0
|
|
||||||
_080C6FAA:
|
|
||||||
lsls r1, r4, 24
|
|
||||||
lsrs r1, 24
|
|
||||||
adds r0, r6, 0
|
|
||||||
movs r2, 0xB
|
|
||||||
bl GetBoxMonDataFromAnyBox
|
|
||||||
cmp r0, 0
|
|
||||||
beq _080C6FC0
|
|
||||||
adds r0, r5, 0x1
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r5, r0, 16
|
|
||||||
_080C6FC0:
|
|
||||||
adds r0, r4, 0x1
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r4, r0, 16
|
|
||||||
cmp r4, 0x1D
|
|
||||||
bls _080C6FAA
|
|
||||||
lsls r0, r5, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end CountMonsInBox
|
|
||||||
|
|
||||||
thumb_func_start sub_80C6FD4
|
|
||||||
sub_80C6FD4: @ 80C6FD4
|
|
||||||
push {r4,r5,lr}
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r5, r0, 24
|
|
||||||
movs r4, 0
|
|
||||||
_080C6FDC:
|
|
||||||
lsls r1, r4, 24
|
|
||||||
lsrs r1, 24
|
|
||||||
adds r0, r5, 0
|
|
||||||
movs r2, 0xB
|
|
||||||
bl GetBoxMonDataFromAnyBox
|
|
||||||
cmp r0, 0
|
|
||||||
bne _080C6FF2
|
|
||||||
lsls r0, r4, 16
|
|
||||||
asrs r0, 16
|
|
||||||
b _080C7000
|
|
||||||
_080C6FF2:
|
|
||||||
adds r0, r4, 0x1
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r4, r0, 16
|
|
||||||
cmp r4, 0x1D
|
|
||||||
bls _080C6FDC
|
|
||||||
movs r0, 0x1
|
|
||||||
negs r0, r0
|
|
||||||
_080C7000:
|
|
||||||
pop {r4,r5}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_80C6FD4
|
|
||||||
|
|
||||||
thumb_func_start sub_80C7008
|
|
||||||
sub_80C7008: @ 80C7008
|
|
||||||
push {r4-r6,lr}
|
|
||||||
movs r5, 0
|
|
||||||
movs r6, 0
|
|
||||||
_080C700E:
|
|
||||||
movs r0, 0x64
|
|
||||||
adds r1, r5, 0
|
|
||||||
muls r1, r0
|
|
||||||
ldr r0, =gPlayerParty
|
|
||||||
adds r4, r1, r0
|
|
||||||
adds r0, r4, 0
|
|
||||||
movs r1, 0xB
|
|
||||||
bl GetMonData
|
|
||||||
cmp r0, 0
|
|
||||||
beq _080C7036
|
|
||||||
adds r0, r4, 0
|
|
||||||
movs r1, 0x2D
|
|
||||||
bl GetMonData
|
|
||||||
cmp r0, 0
|
|
||||||
bne _080C7036
|
|
||||||
adds r0, r6, 0x1
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r6, r0, 16
|
|
||||||
_080C7036:
|
|
||||||
adds r0, r5, 0x1
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r5, r0, 16
|
|
||||||
cmp r5, 0x5
|
|
||||||
bls _080C700E
|
|
||||||
lsls r0, r6, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_80C7008
|
|
||||||
|
|
||||||
thumb_func_start sub_80C7050
|
|
||||||
sub_80C7050: @ 80C7050
|
|
||||||
push {r4-r7,lr}
|
|
||||||
lsls r0, 24
|
|
||||||
movs r5, 0
|
|
||||||
movs r6, 0
|
|
||||||
lsrs r7, r0, 24
|
|
||||||
_080C705A:
|
|
||||||
cmp r5, r7
|
|
||||||
beq _080C7092
|
|
||||||
movs r0, 0x64
|
|
||||||
adds r1, r5, 0
|
|
||||||
muls r1, r0
|
|
||||||
ldr r0, =gPlayerParty
|
|
||||||
adds r4, r1, r0
|
|
||||||
adds r0, r4, 0
|
|
||||||
movs r1, 0xB
|
|
||||||
bl GetMonData
|
|
||||||
cmp r0, 0
|
|
||||||
beq _080C7092
|
|
||||||
adds r0, r4, 0
|
|
||||||
movs r1, 0x2D
|
|
||||||
bl GetMonData
|
|
||||||
cmp r0, 0
|
|
||||||
bne _080C7092
|
|
||||||
adds r0, r4, 0
|
|
||||||
movs r1, 0x39
|
|
||||||
bl GetMonData
|
|
||||||
cmp r0, 0
|
|
||||||
beq _080C7092
|
|
||||||
adds r0, r6, 0x1
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r6, r0, 16
|
|
||||||
_080C7092:
|
|
||||||
adds r0, r5, 0x1
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r5, r0, 16
|
|
||||||
cmp r5, 0x5
|
|
||||||
bls _080C705A
|
|
||||||
lsls r0, r6, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_80C7050
|
|
||||||
|
|
||||||
thumb_func_start sub_80C70AC
|
|
||||||
sub_80C70AC: @ 80C70AC
|
|
||||||
push {lr}
|
|
||||||
ldr r0, =gSpecialVar_0x8004
|
|
||||||
ldrb r0, [r0]
|
|
||||||
bl sub_80C7050
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_80C70AC
|
|
||||||
|
|
||||||
thumb_func_start sub_80C70C4
|
|
||||||
sub_80C70C4: @ 80C70C4
|
|
||||||
push {r4,r5,lr}
|
|
||||||
movs r4, 0
|
|
||||||
movs r5, 0
|
|
||||||
_080C70CA:
|
|
||||||
movs r0, 0x64
|
|
||||||
muls r0, r4
|
|
||||||
ldr r1, =gPlayerParty
|
|
||||||
adds r0, r1
|
|
||||||
movs r1, 0xB
|
|
||||||
bl GetMonData
|
|
||||||
cmp r0, 0
|
|
||||||
beq _080C70E2
|
|
||||||
adds r0, r5, 0x1
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r5, r0, 16
|
|
||||||
_080C70E2:
|
|
||||||
adds r0, r4, 0x1
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r4, r0, 16
|
|
||||||
cmp r4, 0x5
|
|
||||||
bls _080C70CA
|
|
||||||
lsls r0, r5, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
pop {r4,r5}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_80C70C4
|
|
||||||
|
|
||||||
thumb_func_start sub_80C70FC
|
|
||||||
sub_80C70FC: @ 80C70FC
|
|
||||||
push {r4,r5,lr}
|
|
||||||
adds r5, r0, 0
|
|
||||||
lsls r4, r2, 16
|
|
||||||
lsrs r4, 16
|
|
||||||
bl StringCopy
|
|
||||||
adds r1, r0, 0
|
|
||||||
adds r5, r4
|
|
||||||
cmp r1, r5
|
|
||||||
bcs _080C711A
|
|
||||||
movs r0, 0
|
|
||||||
_080C7112:
|
|
||||||
strb r0, [r1]
|
|
||||||
adds r1, 0x1
|
|
||||||
cmp r1, r5
|
|
||||||
bcc _080C7112
|
|
||||||
_080C711A:
|
|
||||||
movs r0, 0xFF
|
|
||||||
strb r0, [r1]
|
|
||||||
adds r0, r1, 0
|
|
||||||
pop {r4,r5}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_80C70FC
|
|
||||||
|
|
||||||
thumb_func_start sub_80C7128
|
|
||||||
sub_80C7128: @ 80C7128
|
|
||||||
push {r4-r7,lr}
|
|
||||||
mov r7, r9
|
|
||||||
mov r6, r8
|
|
||||||
push {r6,r7}
|
|
||||||
adds r6, r0, 0
|
|
||||||
adds r7, r3, 0
|
|
||||||
ldr r5, [sp, 0x1C]
|
|
||||||
ldr r4, [sp, 0x20]
|
|
||||||
ldr r0, [sp, 0x24]
|
|
||||||
mov r9, r0
|
|
||||||
ldr r0, [sp, 0x28]
|
|
||||||
ldr r3, [sp, 0x2C]
|
|
||||||
lsls r1, 16
|
|
||||||
lsrs r1, 16
|
|
||||||
lsls r2, 16
|
|
||||||
lsls r5, 16
|
|
||||||
lsrs r5, 16
|
|
||||||
lsls r4, 16
|
|
||||||
lsrs r4, 16
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r0, 16
|
|
||||||
mov r8, r0
|
|
||||||
lsls r3, 16
|
|
||||||
lsrs r3, 16
|
|
||||||
mov r0, r9
|
|
||||||
lsls r0, 17
|
|
||||||
mov r9, r0
|
|
||||||
lsrs r2, 11
|
|
||||||
adds r2, r1
|
|
||||||
lsls r2, 1
|
|
||||||
adds r6, r2
|
|
||||||
adds r0, r4, 0
|
|
||||||
muls r0, r3
|
|
||||||
adds r0, r5
|
|
||||||
lsls r0, 1
|
|
||||||
adds r7, r0
|
|
||||||
movs r4, 0
|
|
||||||
cmp r4, r8
|
|
||||||
bcs _080C7198
|
|
||||||
mov r0, r9
|
|
||||||
lsrs r0, 1
|
|
||||||
mov r9, r0
|
|
||||||
lsls r5, r3, 1
|
|
||||||
_080C717E:
|
|
||||||
adds r0, r7, 0
|
|
||||||
adds r1, r6, 0
|
|
||||||
mov r3, r9
|
|
||||||
lsrs r2, r3, 16
|
|
||||||
bl CpuSet
|
|
||||||
adds r6, 0x40
|
|
||||||
adds r7, r5
|
|
||||||
adds r0, r4, 0x1
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r4, r0, 16
|
|
||||||
cmp r4, r8
|
|
||||||
bcc _080C717E
|
|
||||||
_080C7198:
|
|
||||||
pop {r3,r4}
|
|
||||||
mov r8, r3
|
|
||||||
mov r9, r4
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end sub_80C7128
|
|
||||||
|
|
||||||
thumb_func_start sub_80C71A4
|
thumb_func_start sub_80C71A4
|
||||||
sub_80C71A4: @ 80C71A4
|
sub_80C71A4: @ 80C71A4
|
||||||
|
@ -578,7 +298,7 @@ _080C73F6:
|
||||||
ldrsh r4, [r5, r3]
|
ldrsh r4, [r5, r3]
|
||||||
cmp r4, 0
|
cmp r4, 0
|
||||||
bne _080C7428
|
bne _080C7428
|
||||||
bl sub_80C70C4
|
bl CountPartyMons
|
||||||
lsls r0, 24
|
lsls r0, 24
|
||||||
lsrs r0, 24
|
lsrs r0, 24
|
||||||
cmp r0, 0x6
|
cmp r0, 0x6
|
||||||
|
@ -601,7 +321,7 @@ _080C7428:
|
||||||
ldrsh r0, [r5, r1]
|
ldrsh r0, [r5, r1]
|
||||||
cmp r0, 0x1
|
cmp r0, 0x1
|
||||||
bne _080C745C
|
bne _080C745C
|
||||||
bl sub_80C70C4
|
bl CountPartyMons
|
||||||
lsls r0, 24
|
lsls r0, 24
|
||||||
lsrs r4, r0, 24
|
lsrs r4, r0, 24
|
||||||
cmp r4, 0x1
|
cmp r4, 0x1
|
||||||
|
@ -13381,7 +13101,7 @@ sub_80CE19C: @ 80CE19C
|
||||||
lsls r0, 24
|
lsls r0, 24
|
||||||
lsrs r6, r0, 24
|
lsrs r6, r0, 24
|
||||||
adds r0, r6, 0
|
adds r0, r6, 0
|
||||||
bl sub_80C6FD4
|
bl GetFirstFreeBoxSpot
|
||||||
lsls r0, 16
|
lsls r0, 16
|
||||||
lsrs r4, r0, 16
|
lsrs r4, r0, 16
|
||||||
asrs r0, 16
|
asrs r0, 16
|
||||||
|
@ -14127,7 +13847,7 @@ _080CE838:
|
||||||
ldr r2, =0x00002187
|
ldr r2, =0x00002187
|
||||||
adds r1, r2
|
adds r1, r2
|
||||||
strb r0, [r1]
|
strb r0, [r1]
|
||||||
bl sub_80C70C4
|
bl CountPartyMons
|
||||||
ldr r1, [r4]
|
ldr r1, [r4]
|
||||||
subs r0, 0x1
|
subs r0, 0x1
|
||||||
ldr r2, =0x00002186
|
ldr r2, =0x00002186
|
||||||
|
@ -14347,7 +14067,7 @@ sub_80CEA30: @ 80CEA30
|
||||||
bne _080CEA64
|
bne _080CEA64
|
||||||
ldr r0, =gUnknown_02039D79
|
ldr r0, =gUnknown_02039D79
|
||||||
ldrb r0, [r0]
|
ldrb r0, [r0]
|
||||||
bl sub_80C7050
|
bl CountPartyAliveNonEggMonsExcept
|
||||||
lsls r0, 24
|
lsls r0, 24
|
||||||
cmp r0, 0
|
cmp r0, 0
|
||||||
bne _080CEA64
|
bne _080CEA64
|
||||||
|
@ -14376,7 +14096,7 @@ sub_80CEA6C: @ 80CEA6C
|
||||||
bne _080CEAAC
|
bne _080CEAAC
|
||||||
ldr r0, =gUnknown_02039D79
|
ldr r0, =gUnknown_02039D79
|
||||||
ldrb r0, [r0]
|
ldrb r0, [r0]
|
||||||
bl sub_80C7050
|
bl CountPartyAliveNonEggMonsExcept
|
||||||
lsls r0, 24
|
lsls r0, 24
|
||||||
cmp r0, 0
|
cmp r0, 0
|
||||||
bne _080CEAAC
|
bne _080CEAAC
|
||||||
|
|
|
@ -142,8 +142,8 @@ gSpecials:: @ 81DBA64
|
||||||
def_special sub_8122A30
|
def_special sub_8122A30
|
||||||
def_special sub_80D6EDC
|
def_special sub_80D6EDC
|
||||||
def_special CalculatePlayerPartyCount
|
def_special CalculatePlayerPartyCount
|
||||||
def_special sub_80C7008
|
def_special CountPartyNonEggMons
|
||||||
def_special sub_80C70AC
|
def_special CountPartyAliveNonEggMons_IgnoreVar0x8004Slot
|
||||||
def_special sub_80F88E8
|
def_special sub_80F88E8
|
||||||
def_special sub_80F88DC
|
def_special sub_80F88DC
|
||||||
def_special sub_80F8864
|
def_special sub_80F8864
|
||||||
|
|
|
@ -1,8 +1,12 @@
|
||||||
#ifndef GUARD_POKEMON_STORAGE_SYSTEM_H
|
#ifndef GUARD_POKEMON_STORAGE_SYSTEM_H
|
||||||
#define GUARD_POKEMON_STORAGE_SYSTEM_H
|
#define GUARD_POKEMON_STORAGE_SYSTEM_H
|
||||||
|
|
||||||
|
#define TOTAL_BOXES_COUNT 14
|
||||||
|
#define IN_BOX_COUNT 30
|
||||||
|
|
||||||
u8* GetBoxNamePtr(u8 boxNumber);
|
u8* GetBoxNamePtr(u8 boxNumber);
|
||||||
struct BoxPokemon *GetBoxedMonPtr(u8, u8);
|
struct BoxPokemon *GetBoxedMonPtr(u8, u8);
|
||||||
void SetBoxMonNickFromAnyBox(u8, u8, u8 *);
|
void SetBoxMonNickFromAnyBox(u8, u8, u8 *);
|
||||||
|
u32 GetBoxMonDataFromAnyBox(u8 boxId, u8 monPosition, u32 request);
|
||||||
|
|
||||||
#endif // GUARD_POKEMON_STORAGE_SYSTEM_H
|
#endif // GUARD_POKEMON_STORAGE_SYSTEM_H
|
||||||
|
|
|
@ -129,6 +129,7 @@ SECTIONS {
|
||||||
asm/option_menu.o(.text);
|
asm/option_menu.o(.text);
|
||||||
asm/pokedex.o(.text);
|
asm/pokedex.o(.text);
|
||||||
asm/trainer_card.o(.text);
|
asm/trainer_card.o(.text);
|
||||||
|
src/pokemon_storage_system.o(.text);
|
||||||
asm/pokemon_storage_system.o(.text);
|
asm/pokemon_storage_system.o(.text);
|
||||||
asm/pokemon_icon.o(.text);
|
asm/pokemon_icon.o(.text);
|
||||||
asm/script_movement.o(.text);
|
asm/script_movement.o(.text);
|
||||||
|
|
|
@ -75,7 +75,7 @@ extern void CreateYesNoMenu(const struct WindowTemplate*, u16, u8, u8);
|
||||||
extern void DoNamingScreen(u8, const u8*, u16, u8, u32, MainCallback);
|
extern void DoNamingScreen(u8, const u8*, u16, u8, u32, MainCallback);
|
||||||
extern void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, struct TextColor* colors, s8 speed, u8 *str);
|
extern void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, struct TextColor* colors, s8 speed, u8 *str);
|
||||||
extern u16 sub_80D22D0(void);
|
extern u16 sub_80D22D0(void);
|
||||||
extern u8 sub_80C7050(u8);
|
extern u8 CountPartyAliveNonEggMonsExcept(u8);
|
||||||
|
|
||||||
static void Task_EggHatch(u8 taskID);
|
static void Task_EggHatch(u8 taskID);
|
||||||
static void CB2_EggHatch_0(void);
|
static void CB2_EggHatch_0(void);
|
||||||
|
@ -888,6 +888,6 @@ u8 GetEggStepsToSubtract(void)
|
||||||
u16 sub_80722E0(void)
|
u16 sub_80722E0(void)
|
||||||
{
|
{
|
||||||
u16 value = sub_80D22D0();
|
u16 value = sub_80D22D0();
|
||||||
value += sub_80C7050(6);
|
value += CountPartyAliveNonEggMonsExcept(6);
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,15 +1,121 @@
|
||||||
|
|
||||||
// Includes
|
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
#include "pokemon_storage_system.h"
|
||||||
// Static type declarations
|
#include "pokemon.h"
|
||||||
|
#include "species.h"
|
||||||
// Static RAM declarations
|
#include "event_data.h"
|
||||||
|
#include "string_util.h"
|
||||||
|
#include "text.h"
|
||||||
|
|
||||||
IWRAM_DATA u8 gUnknown_03000F78[0x188];
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue