mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-03-21 17:55:13 -05:00
Document ball seal functions in unk_0202C9F4 (#854)
This commit is contained in:
parent
8a88ccf51b
commit
7cc60e9e60
|
|
@ -17,13 +17,13 @@ u8 BallSeal_GetX(const BallSeal *seal);
|
|||
u8 BallSeal_GetY(const BallSeal *seal);
|
||||
SealCounts *SealCase_GetSealsObtained(SealCase *sealCase);
|
||||
u8 SealCase_GetSealCount(const SealCounts *seals, int sealNum);
|
||||
BOOL sub_0202CA94(const BallCapsule *param0, int param1);
|
||||
int sub_0202CAB0(const SealCase *param0, int param1);
|
||||
void sub_0202CADC(SealCounts *param0, int param1, int param2);
|
||||
BOOL sub_0202CAE0(SealCase *param0, int param1, s16 param2);
|
||||
BOOL sub_0202CB20(SealCase *param0, int param1, s16 param2);
|
||||
BOOL sub_0202CB70(SealCase *param0, int param1, s16 param2);
|
||||
int sub_0202CBA8(const SealCase *param0);
|
||||
int sub_0202CBC8(const SealCase *param0, int param1);
|
||||
BOOL SealIsOnCapsule(const BallCapsule *ballCapsule, int sealId);
|
||||
int SealCase_CountSealOccurrenceInUse(const SealCase *sealCase, int sealId);
|
||||
void SealCase_SetSealQuantity(SealCounts *sealCounts, int sealId, int quantity);
|
||||
BOOL GiveOrTakeSeal(SealCase *sealCase, int sealId, s16 quantity);
|
||||
BOOL GiveOrTakeSeal2(SealCase *sealCase, int sealId, s16 quantity);
|
||||
BOOL SealCase_CheckSealCount(SealCase *sealCase, int sealId, s16 quantity);
|
||||
int SealCase_CountUniqueSeals(const SealCase *sealCase);
|
||||
int SealCase_CountSealOccurrenceAnywhere(const SealCase *sealCase, int sealId);
|
||||
|
||||
#endif // POKEPLATINUM_UNK_0202C9F4_H
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@ static u32 CalcTotalBallSeals(SaveData *saveData)
|
|||
|
||||
u32 total = 0;
|
||||
for (i = 1; i <= 80; i++) {
|
||||
total += sub_0202CBC8(sealCase, i);
|
||||
total += SealCase_CountSealOccurrenceAnywhere(sealCase, i);
|
||||
}
|
||||
|
||||
return total;
|
||||
|
|
|
|||
|
|
@ -974,7 +974,7 @@ static void Shop_ShowQtyWithinInventory(ShopMenu *shopMenu)
|
|||
} else if (shopMenu->martType == MART_TYPE_FRONTIER) {
|
||||
inventoryQty = Bag_GetItemQuantity(shopMenu->destInventory, shopMenu->itemId, HEAP_ID_FIELD2);
|
||||
} else if (shopMenu->martType == MART_TYPE_SEAL) {
|
||||
inventoryQty = sub_0202CBC8(shopMenu->destInventory, shopMenu->itemId);
|
||||
inventoryQty = SealCase_CountSealOccurrenceAnywhere(shopMenu->destInventory, shopMenu->itemId);
|
||||
} else {
|
||||
inventoryQty = 0;
|
||||
}
|
||||
|
|
@ -1049,7 +1049,7 @@ static u8 Shop_ShowPurchaseMessage(ShopMenu *shopMenu)
|
|||
canFitItem = TRUE;
|
||||
}
|
||||
} else {
|
||||
canFitItem = sub_0202CB70(shopMenu->destInventory, shopMenu->itemId, shopMenu->itemAmount);
|
||||
canFitItem = SealCase_CheckSealCount(shopMenu->destInventory, shopMenu->itemId, shopMenu->itemAmount);
|
||||
}
|
||||
|
||||
if (canFitItem == FALSE) {
|
||||
|
|
@ -1222,7 +1222,7 @@ static u8 Shop_ConfirmItemPurchase(ShopMenu *shopMenu)
|
|||
} else if (shopMenu->martType == MART_TYPE_DECOR) {
|
||||
Underground_TryAddGoodPC(shopMenu->destInventory, shopMenu->itemId);
|
||||
} else {
|
||||
sub_0202CAE0(shopMenu->destInventory, shopMenu->itemId, shopMenu->itemAmount);
|
||||
GiveOrTakeSeal(shopMenu->destInventory, shopMenu->itemId, shopMenu->itemAmount);
|
||||
}
|
||||
|
||||
Shop_TakeMoney(shopMenu, shopMenu->itemPrice * shopMenu->itemAmount);
|
||||
|
|
|
|||
|
|
@ -194,7 +194,7 @@ void ov76_0223BA90(UnkStruct_ov76_0223DE00 *param0, int param1)
|
|||
|
||||
for (v0 = 0; v0 < (80 + 1); v0++) {
|
||||
for (v1 = 0; v1 < 12; v1++) {
|
||||
v5 = sub_0202CA94(param0->unk_04[v1].unk_04, v0);
|
||||
v5 = SealIsOnCapsule(param0->unk_04[v1].unk_04, v0);
|
||||
|
||||
if (v5) {
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ void ov76_0223D384(UnkStruct_ov76_0223DE00 *param0)
|
|||
int i;
|
||||
|
||||
for (i = 0; i < (80 + 1); i++) {
|
||||
sub_0202CADC(param0->unk_64, i, param0->unk_80[i]);
|
||||
SealCase_SetSealQuantity(param0->unk_64, i, param0->unk_80[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -605,7 +605,7 @@ void ov76_0223DA34(u32 param0, enum TouchScreenButtonState param1, void *param2)
|
|||
v1 = sub_02098164(v0->unk_418.unk_08[param0]);
|
||||
|
||||
ov76_0223CDC4(&v0->unk_D4.unk_18[0], v1);
|
||||
sub_0202CAE0(v0->unk_00->unk_20, v0->unk_418.unk_08[param0], -1);
|
||||
GiveOrTakeSeal(v0->unk_00->unk_20, v0->unk_418.unk_08[param0], -1);
|
||||
ov76_0223CD20(v0, param0);
|
||||
Sound_PlayEffect(SEQ_SE_DP_BOX02);
|
||||
} else {
|
||||
|
|
@ -1150,7 +1150,7 @@ static BOOL ov76_0223DF94(UnkStruct_ov76_0223DE00 *param0)
|
|||
ov76_0223B184(param0->unk_324[v13].unk_0C, param0->unk_324[v13].unk_08, 0);
|
||||
|
||||
if (v16 == 0) {
|
||||
sub_0202CB20(param0->unk_00->unk_20, param0->unk_324[v13].unk_04, +1);
|
||||
GiveOrTakeSeal2(param0->unk_00->unk_20, param0->unk_324[v13].unk_04, +1);
|
||||
ov76_0223CC8C(param0);
|
||||
ov76_0223B704(param0, v13);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3390,7 +3390,7 @@ static BOOL ScrCmd_2AB(ScriptContext *ctx)
|
|||
u16 *destVar = ScriptContext_GetVarPointer(ctx);
|
||||
|
||||
SealCase *sealCase = SaveData_GetSealCase(ctx->fieldSystem->saveData);
|
||||
*destVar = sub_0202CBA8(sealCase);
|
||||
*destVar = SealCase_CountUniqueSeals(sealCase);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
|
@ -3401,7 +3401,7 @@ static BOOL ScrCmd_093(ScriptContext *ctx)
|
|||
u16 *v2 = ScriptContext_GetVarPointer(ctx);
|
||||
|
||||
SealCase *v0 = SaveData_GetSealCase(ctx->fieldSystem->saveData);
|
||||
*v2 = sub_0202CBC8(v0, v1);
|
||||
*v2 = SealCase_CountSealOccurrenceAnywhere(v0, v1);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
|
@ -3411,7 +3411,7 @@ static BOOL ScrCmd_094(ScriptContext *ctx)
|
|||
u16 v0 = ScriptContext_GetVar(ctx);
|
||||
u16 v1 = ScriptContext_GetVar(ctx);
|
||||
|
||||
sub_0202CAE0(SaveData_GetSealCase(ctx->fieldSystem->saveData), v0, v1);
|
||||
GiveOrTakeSeal(SaveData_GetSealCase(ctx->fieldSystem->saveData), v0, v1);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -463,7 +463,7 @@ static BOOL CanReceiveCosmetic(FieldSystem *fieldSystem, GiftData *dummy)
|
|||
|
||||
switch (type) {
|
||||
case MG_COSMETICS_SEAL:
|
||||
return sub_0202CB70(SaveData_GetSealCase(fieldSystem->saveData), id, 1);
|
||||
return SealCase_CheckSealCount(SaveData_GetSealCase(fieldSystem->saveData), id, 1);
|
||||
case MG_COSMETICS_ACCESSORY:
|
||||
return TRUE;
|
||||
case MG_COSMETICS_BACKDROP:
|
||||
|
|
@ -481,7 +481,7 @@ static void GiveCosmetic(FieldSystem *fieldSystem, GiftData *dummy)
|
|||
|
||||
switch (type) {
|
||||
case MG_COSMETICS_SEAL:
|
||||
sub_0202CAE0(SaveData_GetSealCase(fieldSystem->saveData), id, 1);
|
||||
GiveOrTakeSeal(SaveData_GetSealCase(fieldSystem->saveData), id, 1);
|
||||
break;
|
||||
case MG_COSMETICS_ACCESSORY:
|
||||
sub_02029E2C(sub_02029D04(sub_0202A750(fieldSystem->saveData)), id, 1);
|
||||
|
|
|
|||
|
|
@ -40,10 +40,10 @@ void SealCase_CopyCapsuleFromId(SealCase *sealCase, BallCapsule *dst, int capsul
|
|||
BallCapsule_Copy(dst, SealCase_GetCapsuleById(sealCase, capsuleId));
|
||||
}
|
||||
|
||||
BallSeal *BallCapsule_GetBallSeals(BallCapsule *ballCapsule, int sealNum)
|
||||
BallSeal *BallCapsule_GetBallSeals(BallCapsule *ballCapsule, int sealId)
|
||||
{
|
||||
GF_ASSERT(sealNum < SEALS_PER_CAPSULE);
|
||||
return &ballCapsule->seals[sealNum];
|
||||
GF_ASSERT(sealId < SEALS_PER_CAPSULE);
|
||||
return &ballCapsule->seals[sealId];
|
||||
}
|
||||
|
||||
u8 BallSeal_GetSealType(const BallSeal *seal)
|
||||
|
|
@ -66,17 +66,17 @@ SealCounts *SealCase_GetSealsObtained(SealCase *sealCase)
|
|||
return &sealCase->seals;
|
||||
}
|
||||
|
||||
u8 SealCase_GetSealCount(const SealCounts *seals, int sealNum)
|
||||
u8 SealCase_GetSealCount(const SealCounts *seals, int sealId)
|
||||
{
|
||||
return seals->count[sealNum];
|
||||
return seals->count[sealId];
|
||||
}
|
||||
|
||||
BOOL sub_0202CA94(const BallCapsule *ballCapsule, int param1)
|
||||
BOOL SealIsOnCapsule(const BallCapsule *ballCapsule, int sealId)
|
||||
{
|
||||
int v0, i;
|
||||
int unused, i;
|
||||
|
||||
for (i = 0; i < SEALS_PER_CAPSULE; i++) {
|
||||
if (ballCapsule->seals[i].type == (param1 + 1)) {
|
||||
if (ballCapsule->seals[i].type == (sealId + 1)) {
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
|
@ -84,14 +84,14 @@ BOOL sub_0202CA94(const BallCapsule *ballCapsule, int param1)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
int sub_0202CAB0(const SealCase *sealCase, int param1)
|
||||
int SealCase_CountSealOccurrenceInUse(const SealCase *sealCase, int sealId)
|
||||
{
|
||||
int i, j;
|
||||
int count = 0;
|
||||
|
||||
for (i = 0; i < TOTAL_CAPSULES; i++) {
|
||||
for (j = 0; j < SEALS_PER_CAPSULE; j++) {
|
||||
if (sealCase->capsules[i].seals[j].type == (param1 + 1)) {
|
||||
if (sealCase->capsules[i].seals[j].type == (sealId + 1)) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
|
@ -100,28 +100,28 @@ int sub_0202CAB0(const SealCase *sealCase, int param1)
|
|||
return count;
|
||||
}
|
||||
|
||||
void sub_0202CADC(SealCounts *seals, int param1, int param2)
|
||||
void SealCase_SetSealQuantity(SealCounts *seals, int sealId, int quantity)
|
||||
{
|
||||
seals->count[param1] = param2;
|
||||
seals->count[sealId] = quantity;
|
||||
}
|
||||
|
||||
BOOL sub_0202CAE0(SealCase *param0, int param1, s16 param2)
|
||||
BOOL GiveOrTakeSeal(SealCase *sealCase, int sealId, s16 quantity)
|
||||
{
|
||||
int v0;
|
||||
int v1;
|
||||
int num;
|
||||
int total;
|
||||
|
||||
v0 = sub_0202CAB0(param0, param1 - 1);
|
||||
v1 = v0 + param0->seals.count[param1 - 1];
|
||||
num = SealCase_CountSealOccurrenceInUse(sealCase, sealId - 1);
|
||||
total = num + sealCase->seals.count[sealId - 1];
|
||||
|
||||
if (param2 < 0) {
|
||||
if (param0->seals.count[param1 - 1] + param2 >= 0) {
|
||||
param0->seals.count[param1 - 1] += param2;
|
||||
if (quantity < 0) {
|
||||
if (sealCase->seals.count[sealId - 1] + quantity >= 0) {
|
||||
sealCase->seals.count[sealId - 1] += quantity;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
} else {
|
||||
if (v1 + param2 <= MAX_SEALS_PER_TYPE) {
|
||||
param0->seals.count[param1 - 1] += param2;
|
||||
if (total + quantity <= MAX_SEALS_PER_TYPE) {
|
||||
sealCase->seals.count[sealId - 1] += quantity;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -130,26 +130,26 @@ BOOL sub_0202CAE0(SealCase *param0, int param1, s16 param2)
|
|||
return 1;
|
||||
}
|
||||
|
||||
BOOL sub_0202CB20(SealCase *sealCase, int param1, s16 param2)
|
||||
BOOL GiveOrTakeSeal2(SealCase *sealCase, int sealId, s16 quantity)
|
||||
{
|
||||
int v0;
|
||||
int v1;
|
||||
int num;
|
||||
int total;
|
||||
|
||||
v0 = sub_0202CAB0(sealCase, param1 - 1);
|
||||
v1 = v0;
|
||||
num = SealCase_CountSealOccurrenceInUse(sealCase, sealId - 1);
|
||||
total = num;
|
||||
|
||||
if (param2 < 0) {
|
||||
if (sealCase->seals.count[param1 - 1] + param2 >= 0) {
|
||||
sealCase->seals.count[param1 - 1] += param2;
|
||||
if (quantity < 0) {
|
||||
if (sealCase->seals.count[sealId - 1] + quantity >= 0) {
|
||||
sealCase->seals.count[sealId - 1] += quantity;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
} else {
|
||||
if (v1 + param2 <= MAX_SEALS_PER_TYPE) {
|
||||
sealCase->seals.count[param1 - 1] += param2;
|
||||
if (total + quantity <= MAX_SEALS_PER_TYPE) {
|
||||
sealCase->seals.count[sealId - 1] += quantity;
|
||||
|
||||
if (sealCase->seals.count[param1 - 1] >= MAX_SEALS_PER_TYPE) {
|
||||
sealCase->seals.count[param1 - 1] = MAX_SEALS_PER_TYPE;
|
||||
if (sealCase->seals.count[sealId - 1] >= MAX_SEALS_PER_TYPE) {
|
||||
sealCase->seals.count[sealId - 1] = MAX_SEALS_PER_TYPE;
|
||||
}
|
||||
} else {
|
||||
return 0;
|
||||
|
|
@ -159,19 +159,19 @@ BOOL sub_0202CB20(SealCase *sealCase, int param1, s16 param2)
|
|||
return 1;
|
||||
}
|
||||
|
||||
BOOL sub_0202CB70(SealCase *sealCase, int param1, s16 param2)
|
||||
BOOL SealCase_CheckSealCount(SealCase *sealCase, int sealId, s16 quantity)
|
||||
{
|
||||
int v0 = sub_0202CAB0(sealCase, param1 - 1);
|
||||
int v1 = v0 + sealCase->seals.count[param1 - 1];
|
||||
int num = SealCase_CountSealOccurrenceInUse(sealCase, sealId - 1);
|
||||
int total = num + sealCase->seals.count[sealId - 1];
|
||||
|
||||
if (param2 < 0) {
|
||||
if (sealCase->seals.count[param1 - 1] + param2 >= 0) {
|
||||
if (quantity < 0) {
|
||||
if (sealCase->seals.count[sealId - 1] + quantity >= 0) {
|
||||
return TRUE;
|
||||
} else {
|
||||
return FALSE;
|
||||
}
|
||||
} else {
|
||||
if (v1 + param2 <= MAX_SEALS_PER_TYPE) {
|
||||
if (total + quantity <= MAX_SEALS_PER_TYPE) {
|
||||
return TRUE;
|
||||
} else {
|
||||
return FALSE;
|
||||
|
|
@ -181,27 +181,27 @@ BOOL sub_0202CB70(SealCase *sealCase, int param1, s16 param2)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
int sub_0202CBA8(const SealCase *sealCase)
|
||||
int SealCase_CountUniqueSeals(const SealCase *sealCase)
|
||||
{
|
||||
int i;
|
||||
int v1 = 0;
|
||||
int totalUnique = 0;
|
||||
|
||||
for (i = 1; i < SEAL_ID_MAX; i++) {
|
||||
if (sub_0202CBC8(sealCase, i) != 0) {
|
||||
v1++;
|
||||
if (SealCase_CountSealOccurrenceAnywhere(sealCase, i) != 0) {
|
||||
totalUnique++;
|
||||
}
|
||||
}
|
||||
|
||||
return v1;
|
||||
return totalUnique;
|
||||
}
|
||||
|
||||
int sub_0202CBC8(const SealCase *sealCase, int param1)
|
||||
int SealCase_CountSealOccurrenceAnywhere(const SealCase *sealCase, int sealId)
|
||||
{
|
||||
int v0;
|
||||
int v1;
|
||||
int num;
|
||||
int total;
|
||||
|
||||
v0 = sub_0202CAB0(sealCase, param1 - 1);
|
||||
v1 = v0 + sealCase->seals.count[param1 - 1];
|
||||
num = SealCase_CountSealOccurrenceInUse(sealCase, sealId - 1);
|
||||
total = num + sealCase->seals.count[sealId - 1];
|
||||
|
||||
return v1;
|
||||
return total;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -98,13 +98,13 @@ static int sub_02097B18(ApplicationManager *appMan, int *param1)
|
|||
int v2 = 0;
|
||||
int v3;
|
||||
|
||||
v3 = (sub_0202CBA8(v0->unk_00->unk_20));
|
||||
v3 = (SealCase_CountUniqueSeals(v0->unk_00->unk_20));
|
||||
|
||||
if (v3 % 8) {
|
||||
v2 = 1;
|
||||
}
|
||||
|
||||
v0->unk_418.unk_04 = (sub_0202CBA8(v0->unk_00->unk_20) / 8) + v2;
|
||||
v0->unk_418.unk_04 = (SealCase_CountUniqueSeals(v0->unk_00->unk_20) / 8) + v2;
|
||||
}
|
||||
|
||||
if (v0->unk_418.unk_04 > (SEAL_ID_MAX / 8)) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user