Fix some trainer card link access
This commit is contained in:
+28
-28
@@ -110,7 +110,7 @@ static bool8 HasAllFrontierSymbols(void);
|
||||
static u8 GetRubyTrainerStars(struct TrainerCard*);
|
||||
static u16 GetCaughtMonsCount(void);
|
||||
static void SetPlayerCardData(struct TrainerCard*, u8);
|
||||
static void TrainerCard_GenerateCardForLinkPlayer(struct TrainerCard*);
|
||||
static void TrainerCard_GenerateCardForPlayer(struct TrainerCard*);
|
||||
static u8 VersionToCardType(u8);
|
||||
static void SetDataFromTrainerCard(void);
|
||||
static void InitGpuRegs(void);
|
||||
@@ -750,29 +750,13 @@ static void SetPlayerCardData(struct TrainerCard *trainerCard, u8 cardType)
|
||||
}
|
||||
}
|
||||
|
||||
static void TrainerCard_GenerateCardForLinkPlayer(struct TrainerCard *trainerCard)
|
||||
static void TrainerCard_GenerateCardForPlayer(struct TrainerCard *trainerCard)
|
||||
{
|
||||
memset(trainerCard, 0, sizeof(struct TrainerCard));
|
||||
trainerCard->version = GAME_VERSION;
|
||||
SetPlayerCardData(trainerCard, CARD_TYPE_EMERALD);
|
||||
trainerCard->hasAllSymbols = HasAllFrontierSymbols();
|
||||
trainerCard->frontierBP = gSaveBlock2Ptr->frontier.cardBattlePoints;
|
||||
if (trainerCard->hasAllSymbols)
|
||||
trainerCard->stars++;
|
||||
|
||||
if (trainerCard->gender == FEMALE)
|
||||
trainerCard->facilityClass = gLinkPlayerFacilityClasses[(trainerCard->trainerId % NUM_FEMALE_LINK_FACILITY_CLASSES) + NUM_MALE_LINK_FACILITY_CLASSES];
|
||||
else
|
||||
trainerCard->facilityClass = gLinkPlayerFacilityClasses[trainerCard->trainerId % NUM_MALE_LINK_FACILITY_CLASSES];
|
||||
}
|
||||
|
||||
void TrainerCard_GenerateCardForPlayer(struct TrainerCard *trainerCard)
|
||||
{
|
||||
memset(trainerCard, 0, 0x60);
|
||||
trainerCard->version = GAME_VERSION;
|
||||
SetPlayerCardData(trainerCard, CARD_TYPE_EMERALD);
|
||||
trainerCard->hasAllFrontierSymbols = HasAllFrontierSymbols();
|
||||
*((u16*)&trainerCard->berryCrushPoints) = gSaveBlock2Ptr->frontier.cardBattlePoints;
|
||||
trainerCard->frontierBP = gSaveBlock2Ptr->frontier.cardBattlePoints;
|
||||
if (trainerCard->hasAllFrontierSymbols)
|
||||
trainerCard->stars++;
|
||||
|
||||
@@ -782,7 +766,23 @@ void TrainerCard_GenerateCardForPlayer(struct TrainerCard *trainerCard)
|
||||
trainerCard->facilityClass = gLinkPlayerFacilityClasses[trainerCard->trainerId % NUM_MALE_LINK_FACILITY_CLASSES];
|
||||
}
|
||||
|
||||
void CopyTrainerCardData(struct TrainerCard *dst, u16 *src, u8 gameVersion)
|
||||
void TrainerCard_GenerateCardForLinkPlayer(struct TrainerCard *trainerCard)
|
||||
{
|
||||
memset(trainerCard, 0, 0x60);
|
||||
trainerCard->version = GAME_VERSION;
|
||||
SetPlayerCardData(trainerCard, CARD_TYPE_EMERALD);
|
||||
trainerCard->linkHasAllFrontierSymbols = HasAllFrontierSymbols();
|
||||
*((u16*)&trainerCard->linkPoints.frontier) = gSaveBlock2Ptr->frontier.cardBattlePoints;
|
||||
if (trainerCard->linkHasAllFrontierSymbols)
|
||||
trainerCard->stars++;
|
||||
|
||||
if (trainerCard->gender == FEMALE)
|
||||
trainerCard->facilityClass = gLinkPlayerFacilityClasses[(trainerCard->trainerId % NUM_FEMALE_LINK_FACILITY_CLASSES) + NUM_MALE_LINK_FACILITY_CLASSES];
|
||||
else
|
||||
trainerCard->facilityClass = gLinkPlayerFacilityClasses[trainerCard->trainerId % NUM_MALE_LINK_FACILITY_CLASSES];
|
||||
}
|
||||
|
||||
void CopyTrainerCardData(struct TrainerCard *dst, struct TrainerCard *src, u8 gameVersion)
|
||||
{
|
||||
memset(dst, 0, sizeof(struct TrainerCard));
|
||||
dst->version = gameVersion;
|
||||
@@ -797,9 +797,9 @@ void CopyTrainerCardData(struct TrainerCard *dst, u16 *src, u8 gameVersion)
|
||||
break;
|
||||
case CARD_TYPE_EMERALD:
|
||||
memcpy(dst, src, 0x60);
|
||||
dst->berryCrushPoints = 0;
|
||||
dst->hasAllSymbols = src[29];
|
||||
dst->frontierBP = src[30];
|
||||
dst->linkPoints.frontier = 0;
|
||||
dst->hasAllFrontierSymbols = src->linkHasAllFrontierSymbols;
|
||||
dst->frontierBP = *((u16*)&src->linkPoints.frontier);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1243,13 +1243,13 @@ static void PrintTradesStringOnCard(void)
|
||||
|
||||
static void BufferBerryCrushPoints(void)
|
||||
{
|
||||
if (sData->cardType == CARD_TYPE_FRLG && sData->trainerCard.berryCrushPoints)
|
||||
ConvertIntToDecimalStringN(sData->textBerryCrushPts, sData->trainerCard.berryCrushPoints, STR_CONV_MODE_RIGHT_ALIGN, 5);
|
||||
if (sData->cardType == CARD_TYPE_FRLG && sData->trainerCard.linkPoints.berryCrush)
|
||||
ConvertIntToDecimalStringN(sData->textBerryCrushPts, sData->trainerCard.linkPoints.berryCrush, STR_CONV_MODE_RIGHT_ALIGN, 5);
|
||||
}
|
||||
|
||||
static void PrintBerryCrushStringOnCard(void)
|
||||
{
|
||||
if (sData->cardType == CARD_TYPE_FRLG && sData->trainerCard.berryCrushPoints)
|
||||
if (sData->cardType == CARD_TYPE_FRLG && sData->trainerCard.linkPoints.berryCrush)
|
||||
PrintStatOnBackOfCard(4, gText_BerryCrush, sData->textBerryCrushPts, sTrainerCardStatColors);
|
||||
}
|
||||
|
||||
@@ -1524,7 +1524,7 @@ static void DrawCardBackStats(void)
|
||||
FillBgTilemapBufferRect(3, 141, 27, 9, 1, 1, 1);
|
||||
FillBgTilemapBufferRect(3, 157, 27, 10, 1, 1, 1);
|
||||
}
|
||||
if (sData->trainerCard.berryCrushPoints)
|
||||
if (sData->trainerCard.linkPoints.berryCrush)
|
||||
{
|
||||
FillBgTilemapBufferRect(3, 141, 21, 13, 1, 1, 1);
|
||||
FillBgTilemapBufferRect(3, 157, 21, 14, 1, 1, 1);
|
||||
@@ -1803,7 +1803,7 @@ void ShowPlayerTrainerCard(void (*callback)(void))
|
||||
sData->isLink = FALSE;
|
||||
|
||||
sData->language = GAME_LANGUAGE;
|
||||
TrainerCard_GenerateCardForLinkPlayer(&sData->trainerCard);
|
||||
TrainerCard_GenerateCardForPlayer(&sData->trainerCard);
|
||||
SetMainCallback2(CB2_InitTrainerCard);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user