through sub_8080E6C
This commit is contained in:
-1024
File diff suppressed because it is too large
Load Diff
@@ -1,15 +0,0 @@
|
|||||||
.include "asm/macros.inc"
|
|
||||||
.include "constants/constants.inc"
|
|
||||||
|
|
||||||
.section .rodata
|
|
||||||
.align 2
|
|
||||||
|
|
||||||
gUnknown_83C6AB0:: @ 83C6AB0
|
|
||||||
.byte 0, 16, 11, 11, 2, 15
|
|
||||||
.2byte 0x125
|
|
||||||
|
|
||||||
gUnknown_83C6AB8:: @ 83C6AB8
|
|
||||||
.4byte gUnknown_841DF8B
|
|
||||||
.4byte gUnknown_841DF92
|
|
||||||
.4byte gUnknown_841DF99
|
|
||||||
.4byte gUnknown_841DFA0
|
|
||||||
@@ -1204,4 +1204,9 @@ extern const u8 EventScript_BagItemCanBeRegistered[];
|
|||||||
// fldeff_cut
|
// fldeff_cut
|
||||||
extern const u8 EventScript_FldEffCut[];
|
extern const u8 EventScript_FldEffCut[];
|
||||||
|
|
||||||
|
// cable_club
|
||||||
|
extern const u8 CableClub_Text_WhenAllPlayersReadyAConfirmBCancel[];
|
||||||
|
extern const u8 CableClub_Text_AwaitingLinkupBCancel[];
|
||||||
|
extern const u8 CableClub_Text_StartLinkWithXPlayersAConfirmBCancel[];
|
||||||
|
|
||||||
#endif //GUARD_EVENT_SCRIPTS_H
|
#endif //GUARD_EVENT_SCRIPTS_H
|
||||||
|
|||||||
@@ -8,5 +8,6 @@ bool8 sub_8098238(const u8 *message);
|
|||||||
bool8 ShowFieldAutoScrollMessage(const u8 *message);
|
bool8 ShowFieldAutoScrollMessage(const u8 *message);
|
||||||
void HideFieldMessageBox(void);
|
void HideFieldMessageBox(void);
|
||||||
bool8 IsFieldMessageBoxHidden(void);
|
bool8 IsFieldMessageBoxHidden(void);
|
||||||
|
bool8 textbox_any_visible(void);
|
||||||
|
|
||||||
#endif // GUARD_FIELD_MESSAGE_BOX_H
|
#endif // GUARD_FIELD_MESSAGE_BOX_H
|
||||||
|
|||||||
+4
-1
@@ -272,12 +272,15 @@ void ClearLinkCallback_2(void);
|
|||||||
void LinkRfu_SetRfuFuncToSend6600(void);
|
void LinkRfu_SetRfuFuncToSend6600(void);
|
||||||
void IntlConvertLinkPlayerName(struct LinkPlayer * linkPlayer);
|
void IntlConvertLinkPlayerName(struct LinkPlayer * linkPlayer);
|
||||||
bool8 IsWirelessAdapterConnected(void);
|
bool8 IsWirelessAdapterConnected(void);
|
||||||
bool8 sub_800A474(u8 a0);
|
bool8 sub_800A474(u8 blockRequestType);
|
||||||
void LinkVSync(void);
|
void LinkVSync(void);
|
||||||
bool8 HandleLinkConnection(void);
|
bool8 HandleLinkConnection(void);
|
||||||
void PrepareLocalLinkPlayerBlock(void);
|
void PrepareLocalLinkPlayerBlock(void);
|
||||||
void LinkPlayerFromBlock(u32 who);
|
void LinkPlayerFromBlock(u32 who);
|
||||||
void SetLinkErrorFromRfu(u32 status, u8 lastSendQueueCount, u8 lastRecvQueueCount, u8 unk_06);
|
void SetLinkErrorFromRfu(u32 status, u8 lastSendQueueCount, u8 lastRecvQueueCount, u8 unk_06);
|
||||||
u8 sub_800A8D4(void);
|
u8 sub_800A8D4(void);
|
||||||
|
void sub_800AA24(void);
|
||||||
|
void sub_800A900(u8 a0);
|
||||||
|
u8 sub_800A8A4(void);
|
||||||
|
|
||||||
#endif // GUARD_LINK_H
|
#endif // GUARD_LINK_H
|
||||||
|
|||||||
@@ -1141,4 +1141,11 @@ extern const u8 gText_BestScore2[];
|
|||||||
extern const u8 gText_ExcellentsInARow[];
|
extern const u8 gText_ExcellentsInARow[];
|
||||||
extern const u8 gText_PkmnJumpRecords[];
|
extern const u8 gText_PkmnJumpRecords[];
|
||||||
|
|
||||||
|
// cable_club
|
||||||
|
extern const u8 gUnknown_841DF82[];
|
||||||
|
extern const u8 gUnknown_841DF8B[];
|
||||||
|
extern const u8 gUnknown_841DF92[];
|
||||||
|
extern const u8 gUnknown_841DF99[];
|
||||||
|
extern const u8 gUnknown_841DFA0[];
|
||||||
|
|
||||||
#endif //GUARD_STRINGS_H
|
#endif //GUARD_STRINGS_H
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#ifndef GUARD_TRAINER_CARD_H
|
#ifndef GUARD_TRAINER_CARD_H
|
||||||
#define GUARD_TRAINER_CARD_H
|
#define GUARD_TRAINER_CARD_H
|
||||||
|
|
||||||
struct TrainerCard
|
struct TrainerCardRSE
|
||||||
{
|
{
|
||||||
/*0x00*/ u8 gender;
|
/*0x00*/ u8 gender;
|
||||||
/*0x01*/ u8 stars;
|
/*0x01*/ u8 stars;
|
||||||
@@ -25,6 +25,11 @@ struct TrainerCard
|
|||||||
/*0x24*/ u32 money;
|
/*0x24*/ u32 money;
|
||||||
/*0x28*/ u16 var_28[4];
|
/*0x28*/ u16 var_28[4];
|
||||||
/*0x30*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
/*0x30*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct TrainerCard
|
||||||
|
{
|
||||||
|
/*0x00*/ struct TrainerCardRSE rse;
|
||||||
/*0x38*/ u8 version;
|
/*0x38*/ u8 version;
|
||||||
/*0x3A*/ u16 var_3A;
|
/*0x3A*/ u16 var_3A;
|
||||||
/*0x3C*/ u32 berryCrushPoints;
|
/*0x3C*/ u32 berryCrushPoints;
|
||||||
|
|||||||
+2
-1
@@ -120,6 +120,7 @@ SECTIONS {
|
|||||||
src/field_fadetransition.o(.text);
|
src/field_fadetransition.o(.text);
|
||||||
src/field_screen_effect.o(.text);
|
src/field_screen_effect.o(.text);
|
||||||
src/battle_setup.o(.text);
|
src/battle_setup.o(.text);
|
||||||
|
src/cable_club.o(.text);
|
||||||
asm/cable_club.o(.text);
|
asm/cable_club.o(.text);
|
||||||
src/trainer_see.o(.text);
|
src/trainer_see.o(.text);
|
||||||
src/wild_encounter.o(.text);
|
src/wild_encounter.o(.text);
|
||||||
@@ -441,7 +442,7 @@ SECTIONS {
|
|||||||
data/field_weather.o(.rodata);
|
data/field_weather.o(.rodata);
|
||||||
src/field_screen_effect.o(.rodata);
|
src/field_screen_effect.o(.rodata);
|
||||||
src/battle_setup.o(.rodata);
|
src/battle_setup.o(.rodata);
|
||||||
data/cable_club.o(.rodata);
|
src/cable_club.o(.rodata);
|
||||||
src/trainer_see.o(.rodata);
|
src/trainer_see.o(.rodata);
|
||||||
src/wild_encounter.o(.rodata);
|
src/wild_encounter.o(.rodata);
|
||||||
data/field_effect.o(.rodata);
|
data/field_effect.o(.rodata);
|
||||||
|
|||||||
@@ -419,7 +419,7 @@ void ClearPlayerLinkBattleRecords(void)
|
|||||||
|
|
||||||
static void IncTrainerCardWinCount(s32 battlerId)
|
static void IncTrainerCardWinCount(s32 battlerId)
|
||||||
{
|
{
|
||||||
u16 *wins = &gTrainerCards[battlerId].linkBattleWins;
|
u16 *wins = &gTrainerCards[battlerId].rse.linkBattleWins;
|
||||||
(*wins)++;
|
(*wins)++;
|
||||||
if (*wins > 9999)
|
if (*wins > 9999)
|
||||||
*wins = 9999;
|
*wins = 9999;
|
||||||
@@ -427,7 +427,7 @@ static void IncTrainerCardWinCount(s32 battlerId)
|
|||||||
|
|
||||||
static void IncTrainerCardLossCount(s32 battlerId)
|
static void IncTrainerCardLossCount(s32 battlerId)
|
||||||
{
|
{
|
||||||
u16 *losses = &gTrainerCards[battlerId].linkBattleLosses;
|
u16 *losses = &gTrainerCards[battlerId].rse.linkBattleLosses;
|
||||||
(*losses)++;
|
(*losses)++;
|
||||||
if (*losses > 9999)
|
if (*losses > 9999)
|
||||||
*losses = 9999;
|
*losses = 9999;
|
||||||
@@ -453,7 +453,7 @@ void TryRecordLinkBattleOutcome(s32 battlerId)
|
|||||||
if (gSaveBlock1Ptr->location.mapGroup != MAP_GROUP(UNION_ROOM) || gSaveBlock1Ptr->location.mapNum != MAP_NUM(UNION_ROOM))
|
if (gSaveBlock1Ptr->location.mapGroup != MAP_GROUP(UNION_ROOM) || gSaveBlock1Ptr->location.mapNum != MAP_NUM(UNION_ROOM))
|
||||||
{
|
{
|
||||||
UpdateBattleOutcomeOnTrainerCards(battlerId);
|
UpdateBattleOutcomeOnTrainerCards(battlerId);
|
||||||
AddOpponentLinkBattleRecord(&gSaveBlock2Ptr->linkBattleRecords, gTrainerCards[battlerId].playerName, gTrainerCards[battlerId].trainerId, gBattleOutcome, gLinkPlayers[battlerId].language);
|
AddOpponentLinkBattleRecord(&gSaveBlock2Ptr->linkBattleRecords, gTrainerCards[battlerId].rse.playerName, gTrainerCards[battlerId].rse.trainerId, gBattleOutcome, gLinkPlayers[battlerId].language);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,397 @@
|
|||||||
|
#include "global.h"
|
||||||
|
#include "gflib.h"
|
||||||
|
#include "event_data.h"
|
||||||
|
#include "event_scripts.h"
|
||||||
|
#include "field_message_box.h"
|
||||||
|
#include "link.h"
|
||||||
|
#include "overworld.h"
|
||||||
|
#include "new_menu_helpers.h"
|
||||||
|
#include "script.h"
|
||||||
|
#include "strings.h"
|
||||||
|
#include "task.h"
|
||||||
|
#include "trainer_card.h"
|
||||||
|
#include "constants/songs.h"
|
||||||
|
|
||||||
|
void sub_80809F8(u8 taskId);
|
||||||
|
void sub_8080A4C(u8 taskId);
|
||||||
|
void sub_8080AD0(u8 taskId);
|
||||||
|
void sub_8080B20(u8 taskId);
|
||||||
|
void sub_8080BC8(u8 taskId);
|
||||||
|
void sub_8080C6C(u8 taskId);
|
||||||
|
void sub_8080CDC(u8 taskId);
|
||||||
|
void sub_8080DC0(u8 taskId);
|
||||||
|
void sub_8080E6C(u8 taskId);
|
||||||
|
void sub_8080F78(u8 taskId);
|
||||||
|
void sub_8080FB4(u8 taskId);
|
||||||
|
void sub_8080FF0(u8 taskId);
|
||||||
|
bool8 sub_808102C(u8 taskId);
|
||||||
|
|
||||||
|
static const struct WindowTemplate gUnknown_83C6AB0 = {
|
||||||
|
.bg = 0,
|
||||||
|
.tilemapLeft = 16,
|
||||||
|
.tilemapTop = 11,
|
||||||
|
.width = 11,
|
||||||
|
.height = 2,
|
||||||
|
.paletteNum = 15,
|
||||||
|
.baseBlock = 0x125
|
||||||
|
};
|
||||||
|
|
||||||
|
const u8 *const gUnknown_83C6AB8[] = {
|
||||||
|
gUnknown_841DF8B,
|
||||||
|
gUnknown_841DF92,
|
||||||
|
gUnknown_841DF99,
|
||||||
|
gUnknown_841DFA0
|
||||||
|
};
|
||||||
|
|
||||||
|
void sub_8080748(u8 a0, u8 a1)
|
||||||
|
{
|
||||||
|
u8 taskId;
|
||||||
|
if (FindTaskIdByFunc(sub_80809F8) == 0xFF)
|
||||||
|
{
|
||||||
|
taskId = CreateTask(sub_80809F8, 80);
|
||||||
|
gTasks[taskId].data[1] = a0;
|
||||||
|
gTasks[taskId].data[2] = a1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_808078C(u16 windowId, s32 num)
|
||||||
|
{
|
||||||
|
ConvertIntToDecimalStringN(gStringVar1, num, STR_CONV_MODE_LEFT_ALIGN, 1);
|
||||||
|
SetStdWindowBorderStyle(windowId, FALSE);
|
||||||
|
StringExpandPlaceholders(gStringVar4, gUnknown_841DF82);
|
||||||
|
AddTextPrinterParameterized(windowId, 2, gStringVar4, 0, 0, TEXT_SPEED_FF, NULL);
|
||||||
|
CopyWindowToVram(windowId, 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_80807E8(u16 windowId)
|
||||||
|
{
|
||||||
|
ClearStdWindowAndFrame(windowId, FALSE);
|
||||||
|
CopyWindowToVram(windowId, 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8080808(u8 taskId, u8 num)
|
||||||
|
{
|
||||||
|
s16 *data = gTasks[taskId].data;
|
||||||
|
if (num != data[3])
|
||||||
|
{
|
||||||
|
if (num < 2)
|
||||||
|
sub_80807E8(data[5]);
|
||||||
|
else
|
||||||
|
sub_808078C(data[5], num);
|
||||||
|
data[3] = num;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
u16 sub_8080844(u8 lower, u8 higher)
|
||||||
|
{
|
||||||
|
switch (GetLinkPlayerDataExchangeStatusTimed(lower, higher))
|
||||||
|
{
|
||||||
|
case EXCHANGE_COMPLETE:
|
||||||
|
return 1;
|
||||||
|
case EXCHANGE_IN_PROGRESS:
|
||||||
|
return 3;
|
||||||
|
case EXCHANGE_STAT_4:
|
||||||
|
return 7;
|
||||||
|
case EXCHANGE_STAT_5:
|
||||||
|
return 9;
|
||||||
|
case EXCHANGE_STAT_6:
|
||||||
|
ConvertIntToDecimalStringN(gStringVar1, GetLinkPlayerCount_2(), STR_CONV_MODE_LEFT_ALIGN, 1);
|
||||||
|
return 4;
|
||||||
|
default:
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool32 sub_80808BC(u8 taskId)
|
||||||
|
{
|
||||||
|
if (HasLinkErrorOccurred() == TRUE)
|
||||||
|
{
|
||||||
|
gTasks[taskId].func = sub_8080FF0;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool32 sub_80808F0(u8 taskId)
|
||||||
|
{
|
||||||
|
if (JOY_NEW(B_BUTTON) && !IsLinkConnectionEstablished())
|
||||||
|
{
|
||||||
|
gLinkType = 0;
|
||||||
|
gTasks[taskId].func = sub_8080FB4;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool32 sub_808093C(u8 taskId)
|
||||||
|
{
|
||||||
|
if (IsLinkConnectionEstablished())
|
||||||
|
{
|
||||||
|
SetSuppressLinkErrorMessage(TRUE);
|
||||||
|
}
|
||||||
|
if (JOY_NEW(B_BUTTON))
|
||||||
|
{
|
||||||
|
gLinkType = 0;
|
||||||
|
gTasks[taskId].func = sub_8080FB4;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool32 sub_8080990(u8 taskId)
|
||||||
|
{
|
||||||
|
if (GetSioMultiSI() == TRUE)
|
||||||
|
{
|
||||||
|
gTasks[taskId].func = sub_8080FF0;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_80809C4(u8 taskId)
|
||||||
|
{
|
||||||
|
gTasks[taskId].data[0]++;
|
||||||
|
if (gTasks[taskId].data[0] == 10)
|
||||||
|
{
|
||||||
|
sub_800A474(2);
|
||||||
|
DestroyTask(taskId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_80809F8(u8 taskId)
|
||||||
|
{
|
||||||
|
s16 *data = gTasks[taskId].data;
|
||||||
|
if (data[0] == 0)
|
||||||
|
{
|
||||||
|
OpenLinkTimed();
|
||||||
|
sub_800AA24();
|
||||||
|
ResetLinkPlayers();
|
||||||
|
data[5] = AddWindow(&gUnknown_83C6AB0);
|
||||||
|
}
|
||||||
|
else if (data[0] > 9)
|
||||||
|
{
|
||||||
|
gTasks[taskId].func = sub_8080A4C;
|
||||||
|
}
|
||||||
|
data[0]++;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8080A4C(u8 taskId)
|
||||||
|
{
|
||||||
|
u8 linkPlayerCount = GetLinkPlayerCount_2();
|
||||||
|
if (sub_80808F0(taskId) != TRUE && sub_808093C(taskId) != TRUE && linkPlayerCount >= 2)
|
||||||
|
{
|
||||||
|
SetSuppressLinkErrorMessage(TRUE);
|
||||||
|
gTasks[taskId].data[3] = 0;
|
||||||
|
if (IsLinkMaster() == TRUE)
|
||||||
|
{
|
||||||
|
PlaySE(SE_PIN);
|
||||||
|
ShowFieldAutoScrollMessage(CableClub_Text_WhenAllPlayersReadyAConfirmBCancel);
|
||||||
|
gTasks[taskId].func = sub_8080AD0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PlaySE(SE_BOO);
|
||||||
|
ShowFieldAutoScrollMessage(CableClub_Text_AwaitingLinkupBCancel);
|
||||||
|
gTasks[taskId].func = sub_8080CDC;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8080AD0(u8 taskId)
|
||||||
|
{
|
||||||
|
if (sub_80808F0(taskId) != TRUE && sub_8080990(taskId) != TRUE && sub_80808BC(taskId) != TRUE && !textbox_any_visible())
|
||||||
|
{
|
||||||
|
gTasks[taskId].data[3] = 0;
|
||||||
|
gTasks[taskId].func = sub_8080B20;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8080B20(u8 taskId)
|
||||||
|
{
|
||||||
|
s16 *data = gTasks[taskId].data;
|
||||||
|
s32 linkPlayerCount = GetLinkPlayerCount_2();
|
||||||
|
if (sub_80808F0(taskId) != TRUE && sub_8080990(taskId) != TRUE && sub_80808BC(taskId) != TRUE)
|
||||||
|
{
|
||||||
|
sub_8080808(taskId, linkPlayerCount);
|
||||||
|
if (JOY_NEW(A_BUTTON) && linkPlayerCount >= data[1])
|
||||||
|
{
|
||||||
|
sub_800A900(linkPlayerCount);
|
||||||
|
sub_80807E8(data[5]);
|
||||||
|
ConvertIntToDecimalStringN(gStringVar1, linkPlayerCount, STR_CONV_MODE_LEFT_ALIGN, 1);
|
||||||
|
ShowFieldAutoScrollMessage(CableClub_Text_StartLinkWithXPlayersAConfirmBCancel);
|
||||||
|
gTasks[taskId].func = sub_8080BC8;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8080BC8(u8 taskId)
|
||||||
|
{
|
||||||
|
if (sub_80808F0(taskId) != TRUE && sub_8080990(taskId) != TRUE && sub_80808BC(taskId) != TRUE && !textbox_any_visible())
|
||||||
|
{
|
||||||
|
if (GetSavedPlayerCount() != GetLinkPlayerCount_2())
|
||||||
|
{
|
||||||
|
ShowFieldAutoScrollMessage(CableClub_Text_WhenAllPlayersReadyAConfirmBCancel);
|
||||||
|
gTasks[taskId].func = sub_8080AD0;
|
||||||
|
}
|
||||||
|
else if (JOY_HELD(B_BUTTON))
|
||||||
|
{
|
||||||
|
ShowFieldAutoScrollMessage(CableClub_Text_WhenAllPlayersReadyAConfirmBCancel);
|
||||||
|
gTasks[taskId].func = sub_8080AD0;
|
||||||
|
}
|
||||||
|
else if (JOY_HELD(A_BUTTON))
|
||||||
|
{
|
||||||
|
PlaySE(SE_SELECT);
|
||||||
|
CheckShouldAdvanceLinkState();
|
||||||
|
gTasks[taskId].func = sub_8080C6C;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8080C6C(u8 taskId)
|
||||||
|
{
|
||||||
|
u8 lower = gTasks[taskId].data[1];
|
||||||
|
u8 higher = gTasks[taskId].data[2];
|
||||||
|
u16 *res;
|
||||||
|
if (sub_80808BC(taskId) != TRUE && sub_808102C(taskId) != TRUE)
|
||||||
|
{
|
||||||
|
if (GetLinkPlayerCount_2() != GetSavedPlayerCount())
|
||||||
|
{
|
||||||
|
gTasks[taskId].func = sub_8080FF0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
res = &gSpecialVar_Result;
|
||||||
|
*res = sub_8080844(lower, higher);
|
||||||
|
if (*res)
|
||||||
|
gTasks[taskId].func = sub_8080DC0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8080CDC(u8 taskId)
|
||||||
|
{
|
||||||
|
u8 lower = gTasks[taskId].data[1];
|
||||||
|
u8 higher = gTasks[taskId].data[2];
|
||||||
|
u16 *res;
|
||||||
|
if (sub_80808F0(taskId) != TRUE && sub_80808BC(taskId) != TRUE)
|
||||||
|
{
|
||||||
|
res = &gSpecialVar_Result;
|
||||||
|
*res = sub_8080844(lower, higher);
|
||||||
|
if (*res)
|
||||||
|
{
|
||||||
|
if (*res == 3 || *res == 4)
|
||||||
|
{
|
||||||
|
Link_TryStartSend5FFF();
|
||||||
|
HideFieldMessageBox();
|
||||||
|
gTasks[taskId].func = sub_8080F78;
|
||||||
|
}
|
||||||
|
else if (*res == 7 || *res == 9)
|
||||||
|
{
|
||||||
|
CloseLink();
|
||||||
|
HideFieldMessageBox();
|
||||||
|
gTasks[taskId].func = sub_8080F78;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gFieldLinkPlayerCount = GetLinkPlayerCount_2();
|
||||||
|
gLocalLinkPlayerId = GetMultiplayerId();
|
||||||
|
sub_800A900(gFieldLinkPlayerCount);
|
||||||
|
TrainerCard_GenerateCardForLinkPlayer((void*)gBlockSendBuffer);
|
||||||
|
gTasks[taskId].func = sub_8080E6C;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool32 sub_8080D8C(void)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
u16 version;
|
||||||
|
|
||||||
|
for (i = 0; i < GetLinkPlayerCount(); i++)
|
||||||
|
{
|
||||||
|
version = gLinkPlayers[i].version & 0xFF;
|
||||||
|
if (version == VERSION_RUBY || version == VERSION_SAPPHIRE)
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8080DC0(u8 taskId)
|
||||||
|
{
|
||||||
|
if (sub_80808BC(taskId) != TRUE)
|
||||||
|
{
|
||||||
|
if (gSpecialVar_Result == 4)
|
||||||
|
{
|
||||||
|
if (sub_8080D8C() == TRUE)
|
||||||
|
CloseLink();
|
||||||
|
else
|
||||||
|
Link_TryStartSend5FFF();
|
||||||
|
HideFieldMessageBox();
|
||||||
|
gTasks[taskId].func = sub_8080F78;
|
||||||
|
}
|
||||||
|
else if (gSpecialVar_Result == 3)
|
||||||
|
{
|
||||||
|
Link_TryStartSend5FFF();
|
||||||
|
HideFieldMessageBox();
|
||||||
|
gTasks[taskId].func = sub_8080F78;
|
||||||
|
}
|
||||||
|
else if (gSpecialVar_Result == 7 || gSpecialVar_Result == 9)
|
||||||
|
{
|
||||||
|
CloseLink();
|
||||||
|
HideFieldMessageBox();
|
||||||
|
gTasks[taskId].func = sub_8080F78;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gFieldLinkPlayerCount = GetLinkPlayerCount_2();
|
||||||
|
gLocalLinkPlayerId = GetMultiplayerId();
|
||||||
|
sub_800A900(gFieldLinkPlayerCount);
|
||||||
|
TrainerCard_GenerateCardForLinkPlayer((void*)gBlockSendBuffer);
|
||||||
|
gTasks[taskId].func = sub_8080E6C;
|
||||||
|
sub_800A474(2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8080E6C(u8 taskId)
|
||||||
|
{
|
||||||
|
u8 i;
|
||||||
|
u16 version;
|
||||||
|
u8 * dest;
|
||||||
|
if (sub_80808BC(taskId) != TRUE && GetBlockReceivedStatus() == sub_800A8A4())
|
||||||
|
{
|
||||||
|
for(i = 0; i < GetLinkPlayerCount(); i++)
|
||||||
|
{
|
||||||
|
version = gLinkPlayers[i].version & 0xFF;
|
||||||
|
if (version != VERSION_FIRE_RED && version != VERSION_LEAF_GREEN)
|
||||||
|
{
|
||||||
|
const struct TrainerCardRSE * src = (const struct TrainerCardRSE *)gBlockRecvBuffer[i];
|
||||||
|
gTrainerCards[i].rse = *src;
|
||||||
|
gTrainerCards[i].version = gLinkPlayers[i].version;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const struct TrainerCard * src = (const struct TrainerCard *)gBlockRecvBuffer[i];
|
||||||
|
gTrainerCards[i] = *src;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SetSuppressLinkErrorMessage(FALSE);
|
||||||
|
ResetBlockReceivedFlags();
|
||||||
|
HideFieldMessageBox();
|
||||||
|
if (gSpecialVar_Result == 1)
|
||||||
|
{
|
||||||
|
// Dumb trick required to match
|
||||||
|
if (gLinkType == 0x4411)
|
||||||
|
gFieldLinkPlayerCount += 0;
|
||||||
|
sub_80807E8(gTasks[taskId].data[5]);
|
||||||
|
EnableBothScriptContexts();
|
||||||
|
DestroyTask(taskId);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Link_TryStartSend5FFF();
|
||||||
|
gTasks[taskId].func = sub_8080F78;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+4
-4
@@ -796,7 +796,7 @@ u8 GetLinkPlayerDataExchangeStatusTimed(int lower, int upper)
|
|||||||
if (lower > cmpVal || cmpVal > upper)
|
if (lower > cmpVal || cmpVal > upper)
|
||||||
{
|
{
|
||||||
sPlayerDataExchangeStatus = EXCHANGE_STAT_6;
|
sPlayerDataExchangeStatus = EXCHANGE_STAT_6;
|
||||||
return 6;
|
return EXCHANGE_STAT_6;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1006,15 +1006,15 @@ bool8 SendBlock(u8 unused, const void *src, u16 size)
|
|||||||
return InitBlockSend(src, size);
|
return InitBlockSend(src, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool8 sub_800A474(u8 a0)
|
bool8 sub_800A474(u8 blockRequestType)
|
||||||
{
|
{
|
||||||
if (gWirelessCommType == 1)
|
if (gWirelessCommType == 1)
|
||||||
{
|
{
|
||||||
return sub_80FA0F8(a0);
|
return sub_80FA0F8(blockRequestType);
|
||||||
}
|
}
|
||||||
if (gLinkCallback == NULL)
|
if (gLinkCallback == NULL)
|
||||||
{
|
{
|
||||||
gBlockRequestType = a0;
|
gBlockRequestType = blockRequestType;
|
||||||
BuildSendCmd(LINKCMD_0xCCCC);
|
BuildSendCmd(LINKCMD_0xCCCC);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|||||||
+126
-122
@@ -348,28 +348,30 @@ static const u8 sUnknown_83CD95C[] = {7, 6, 0, 0};
|
|||||||
|
|
||||||
static const struct TrainerCard sLinkPlayerTrainerCardTemplate1 =
|
static const struct TrainerCard sLinkPlayerTrainerCardTemplate1 =
|
||||||
{
|
{
|
||||||
.gender = MALE,
|
.rse = {
|
||||||
.stars = 4,
|
.gender = MALE,
|
||||||
.hasPokedex = TRUE,
|
.stars = 4,
|
||||||
.caughtAllHoenn = TRUE,
|
.hasPokedex = TRUE,
|
||||||
.hasAllPaintings = TRUE,
|
.caughtAllHoenn = TRUE,
|
||||||
.hofDebutHours = 999,
|
.hasAllPaintings = TRUE,
|
||||||
.hofDebutMinutes = 59,
|
.hofDebutHours = 999,
|
||||||
.hofDebutSeconds = 59,
|
.hofDebutMinutes = 59,
|
||||||
.caughtMonsCount = 200,
|
.hofDebutSeconds = 59,
|
||||||
.trainerId = 0x6072,
|
.caughtMonsCount = 200,
|
||||||
.playTimeHours = 999,
|
.trainerId = 0x6072,
|
||||||
.playTimeMinutes = 59,
|
.playTimeHours = 999,
|
||||||
.linkBattleWins = 5535,
|
.playTimeMinutes = 59,
|
||||||
.linkBattleLosses = 5535,
|
.linkBattleWins = 5535,
|
||||||
.battleTowerWins = 5535,
|
.linkBattleLosses = 5535,
|
||||||
.battleTowerStraightWins = 5535,
|
.battleTowerWins = 5535,
|
||||||
.contestsWithFriends = 55555,
|
.battleTowerStraightWins = 5535,
|
||||||
.pokeblocksWithFriends = 44444,
|
.contestsWithFriends = 55555,
|
||||||
.pokemonTrades = 33333,
|
.pokeblocksWithFriends = 44444,
|
||||||
.money = 999999,
|
.pokemonTrades = 33333,
|
||||||
.var_28 = {0, 0, 0, 0},
|
.money = 999999,
|
||||||
.playerName = _("あかみ どりお"),
|
.var_28 = {0, 0, 0, 0},
|
||||||
|
.playerName = _("あかみ どりお")
|
||||||
|
},
|
||||||
.version = VERSION_FIRE_RED,
|
.version = VERSION_FIRE_RED,
|
||||||
.var_3A = 0,
|
.var_3A = 0,
|
||||||
.berryCrushPoints = 5555,
|
.berryCrushPoints = 5555,
|
||||||
@@ -386,28 +388,30 @@ static const struct TrainerCard sLinkPlayerTrainerCardTemplate1 =
|
|||||||
|
|
||||||
static const struct TrainerCard sLinkPlayerTrainerCardTemplate2 =
|
static const struct TrainerCard sLinkPlayerTrainerCardTemplate2 =
|
||||||
{
|
{
|
||||||
.gender = FEMALE,
|
.rse = {
|
||||||
.stars = 2,
|
.gender = FEMALE,
|
||||||
.hasPokedex = TRUE,
|
.stars = 2,
|
||||||
.caughtAllHoenn = TRUE,
|
.hasPokedex = TRUE,
|
||||||
.hasAllPaintings = TRUE,
|
.caughtAllHoenn = TRUE,
|
||||||
.hofDebutHours = 999,
|
.hasAllPaintings = TRUE,
|
||||||
.hofDebutMinutes = 59,
|
.hofDebutHours = 999,
|
||||||
.hofDebutSeconds = 59,
|
.hofDebutMinutes = 59,
|
||||||
.caughtMonsCount = 200,
|
.hofDebutSeconds = 59,
|
||||||
.trainerId = 0x6072,
|
.caughtMonsCount = 200,
|
||||||
.playTimeHours = 999,
|
.trainerId = 0x6072,
|
||||||
.playTimeMinutes = 59,
|
.playTimeHours = 999,
|
||||||
.linkBattleWins = 5535,
|
.playTimeMinutes = 59,
|
||||||
.linkBattleLosses = 5535,
|
.linkBattleWins = 5535,
|
||||||
.battleTowerWins = 65535,
|
.linkBattleLosses = 5535,
|
||||||
.battleTowerStraightWins = 65535,
|
.battleTowerWins = 65535,
|
||||||
.contestsWithFriends = 55555,
|
.battleTowerStraightWins = 65535,
|
||||||
.pokeblocksWithFriends = 44444,
|
.contestsWithFriends = 55555,
|
||||||
.pokemonTrades = 33333,
|
.pokeblocksWithFriends = 44444,
|
||||||
.money = 999999,
|
.pokemonTrades = 33333,
|
||||||
.var_28 = {0, 0, 0, 0},
|
.money = 999999,
|
||||||
.playerName = _("るびさふぁこ!"),
|
.var_28 = {0, 0, 0, 0},
|
||||||
|
.playerName = _("るびさふぁこ!")
|
||||||
|
},
|
||||||
.version = 0,
|
.version = 0,
|
||||||
.var_3A = 0,
|
.var_3A = 0,
|
||||||
.berryCrushPoints = 555,
|
.berryCrushPoints = 555,
|
||||||
@@ -744,16 +748,16 @@ static u8 GetTrainerStarCount(struct TrainerCard *trainerCard)
|
|||||||
{
|
{
|
||||||
u8 stars = 0;
|
u8 stars = 0;
|
||||||
|
|
||||||
if (trainerCard->hofDebutHours != 0 || trainerCard->hofDebutMinutes != 0 || trainerCard->hofDebutSeconds != 0)
|
if (trainerCard->rse.hofDebutHours != 0 || trainerCard->rse.hofDebutMinutes != 0 || trainerCard->rse.hofDebutSeconds != 0)
|
||||||
stars++;
|
stars++;
|
||||||
|
|
||||||
if (trainerCard->caughtAllHoenn)
|
if (trainerCard->rse.caughtAllHoenn)
|
||||||
stars++;
|
stars++;
|
||||||
|
|
||||||
if (trainerCard->battleTowerStraightWins > 49)
|
if (trainerCard->rse.battleTowerStraightWins > 49)
|
||||||
stars++;
|
stars++;
|
||||||
|
|
||||||
if (trainerCard->hasAllPaintings)
|
if (trainerCard->rse.hasAllPaintings)
|
||||||
stars++;
|
stars++;
|
||||||
|
|
||||||
return stars;
|
return stars;
|
||||||
@@ -764,63 +768,63 @@ static void SetPlayerCardData(struct TrainerCard *trainerCard, u8 cardType)
|
|||||||
u32 playTime;
|
u32 playTime;
|
||||||
u8 i;
|
u8 i;
|
||||||
|
|
||||||
trainerCard->gender = gSaveBlock2Ptr->playerGender;
|
trainerCard->rse.gender = gSaveBlock2Ptr->playerGender;
|
||||||
trainerCard->playTimeHours = gSaveBlock2Ptr->playTimeHours;
|
trainerCard->rse.playTimeHours = gSaveBlock2Ptr->playTimeHours;
|
||||||
trainerCard->playTimeMinutes = gSaveBlock2Ptr->playTimeMinutes;
|
trainerCard->rse.playTimeMinutes = gSaveBlock2Ptr->playTimeMinutes;
|
||||||
|
|
||||||
playTime = GetGameStat(GAME_STAT_FIRST_HOF_PLAY_TIME);
|
playTime = GetGameStat(GAME_STAT_FIRST_HOF_PLAY_TIME);
|
||||||
if (!GetGameStat(GAME_STAT_ENTERED_HOF))
|
if (!GetGameStat(GAME_STAT_ENTERED_HOF))
|
||||||
playTime = 0;
|
playTime = 0;
|
||||||
|
|
||||||
trainerCard->hofDebutHours = playTime >> 16;
|
trainerCard->rse.hofDebutHours = playTime >> 16;
|
||||||
trainerCard->hofDebutMinutes = (playTime >> 8) & 0xFF;
|
trainerCard->rse.hofDebutMinutes = (playTime >> 8) & 0xFF;
|
||||||
trainerCard->hofDebutSeconds = playTime & 0xFF;
|
trainerCard->rse.hofDebutSeconds = playTime & 0xFF;
|
||||||
if ((playTime >> 16) > 999)
|
if ((playTime >> 16) > 999)
|
||||||
{
|
{
|
||||||
trainerCard->hofDebutHours = 999;
|
trainerCard->rse.hofDebutHours = 999;
|
||||||
trainerCard->hofDebutMinutes = 59;
|
trainerCard->rse.hofDebutMinutes = 59;
|
||||||
trainerCard->hofDebutSeconds = 59;
|
trainerCard->rse.hofDebutSeconds = 59;
|
||||||
}
|
}
|
||||||
|
|
||||||
trainerCard->hasPokedex = FlagGet(FLAG_SYS_POKEDEX_GET);
|
trainerCard->rse.hasPokedex = FlagGet(FLAG_SYS_POKEDEX_GET);
|
||||||
trainerCard->caughtAllHoenn = HasAllHoennMons();
|
trainerCard->rse.caughtAllHoenn = HasAllHoennMons();
|
||||||
trainerCard->caughtMonsCount = GetCaughtMonsCount();
|
trainerCard->rse.caughtMonsCount = GetCaughtMonsCount();
|
||||||
|
|
||||||
trainerCard->trainerId = (gSaveBlock2Ptr->playerTrainerId[1] << 8) | gSaveBlock2Ptr->playerTrainerId[0];
|
trainerCard->rse.trainerId = (gSaveBlock2Ptr->playerTrainerId[1] << 8) | gSaveBlock2Ptr->playerTrainerId[0];
|
||||||
|
|
||||||
trainerCard->linkBattleWins = GetCappedGameStat(GAME_STAT_LINK_BATTLE_WINS, 9999);
|
trainerCard->rse.linkBattleWins = GetCappedGameStat(GAME_STAT_LINK_BATTLE_WINS, 9999);
|
||||||
trainerCard->linkBattleLosses = GetCappedGameStat(GAME_STAT_LINK_BATTLE_LOSSES, 9999);
|
trainerCard->rse.linkBattleLosses = GetCappedGameStat(GAME_STAT_LINK_BATTLE_LOSSES, 9999);
|
||||||
trainerCard->pokemonTrades = GetCappedGameStat(GAME_STAT_POKEMON_TRADES, 0xFFFF);
|
trainerCard->rse.pokemonTrades = GetCappedGameStat(GAME_STAT_POKEMON_TRADES, 0xFFFF);
|
||||||
|
|
||||||
trainerCard->battleTowerWins = 0;
|
trainerCard->rse.battleTowerWins = 0;
|
||||||
trainerCard->battleTowerStraightWins = 0;
|
trainerCard->rse.battleTowerStraightWins = 0;
|
||||||
trainerCard->contestsWithFriends = 0;
|
trainerCard->rse.contestsWithFriends = 0;
|
||||||
trainerCard->pokeblocksWithFriends = 0;
|
trainerCard->rse.pokeblocksWithFriends = 0;
|
||||||
|
|
||||||
trainerCard->hasAllPaintings = FALSE;
|
trainerCard->rse.hasAllPaintings = FALSE;
|
||||||
|
|
||||||
trainerCard->money = GetMoney(&gSaveBlock1Ptr->money);
|
trainerCard->rse.money = GetMoney(&gSaveBlock1Ptr->money);
|
||||||
|
|
||||||
for (i = 0; i < 4; i++)
|
for (i = 0; i < 4; i++)
|
||||||
trainerCard->var_28[i] = gSaveBlock1Ptr->easyChatProfile[i];
|
trainerCard->rse.var_28[i] = gSaveBlock1Ptr->easyChatProfile[i];
|
||||||
|
|
||||||
StringCopy(trainerCard->playerName, gSaveBlock2Ptr->playerName);
|
StringCopy(trainerCard->rse.playerName, gSaveBlock2Ptr->playerName);
|
||||||
|
|
||||||
if (cardType == CARD_TYPE_FRLG)
|
if (cardType == CARD_TYPE_FRLG)
|
||||||
{
|
{
|
||||||
trainerCard->stars = GetTrainerStarCount(trainerCard);
|
trainerCard->rse.stars = GetTrainerStarCount(trainerCard);
|
||||||
}
|
}
|
||||||
else if (cardType == CARD_TYPE_EMERALD)
|
else if (cardType == CARD_TYPE_EMERALD)
|
||||||
{
|
{
|
||||||
trainerCard->stars = 0;
|
trainerCard->rse.stars = 0;
|
||||||
if (trainerCard->hofDebutHours != 0 || (trainerCard->hofDebutMinutes != 0 || trainerCard->hofDebutSeconds != 0))
|
if (trainerCard->rse.hofDebutHours != 0 || (trainerCard->rse.hofDebutMinutes != 0 || trainerCard->rse.hofDebutSeconds != 0))
|
||||||
trainerCard->stars = cardType;
|
trainerCard->rse.stars = cardType;
|
||||||
|
|
||||||
if (HasAllKantoMons())
|
if (HasAllKantoMons())
|
||||||
trainerCard->stars++;
|
trainerCard->rse.stars++;
|
||||||
|
|
||||||
if (HasAllMons())
|
if (HasAllMons())
|
||||||
trainerCard->stars++;
|
trainerCard->rse.stars++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -833,11 +837,11 @@ void TrainerCard_GenerateCardForLinkPlayer(struct TrainerCard *trainerCard)
|
|||||||
if (GetCardType() != CARD_TYPE_FRLG)
|
if (GetCardType() != CARD_TYPE_FRLG)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
trainerCard->stars = id;
|
trainerCard->rse.stars = id;
|
||||||
if (trainerCard->hofDebutHours != 0 || trainerCard->hofDebutMinutes != 0 || trainerCard->hofDebutSeconds != 0)
|
if (trainerCard->rse.hofDebutHours != 0 || trainerCard->rse.hofDebutMinutes != 0 || trainerCard->rse.hofDebutSeconds != 0)
|
||||||
trainerCard->stars = 1;
|
trainerCard->rse.stars = 1;
|
||||||
|
|
||||||
trainerCard->caughtAllHoenn = HasAllKantoMons();
|
trainerCard->rse.caughtAllHoenn = HasAllKantoMons();
|
||||||
trainerCard->hasAllMons = HasAllMons();
|
trainerCard->hasAllMons = HasAllMons();
|
||||||
trainerCard->berriesPicked = gSaveBlock2Ptr->berryPick.berriesPicked;
|
trainerCard->berriesPicked = gSaveBlock2Ptr->berryPick.berriesPicked;
|
||||||
trainerCard->jumpsInRow = gSaveBlock2Ptr->pokeJump.jumpsInRow;
|
trainerCard->jumpsInRow = gSaveBlock2Ptr->pokeJump.jumpsInRow;
|
||||||
@@ -846,17 +850,17 @@ void TrainerCard_GenerateCardForLinkPlayer(struct TrainerCard *trainerCard)
|
|||||||
trainerCard->unionRoomNum = GetCappedGameStat(GAME_STAT_NUM_UNION_ROOM_BATTLES, 0xFFFF);
|
trainerCard->unionRoomNum = GetCappedGameStat(GAME_STAT_NUM_UNION_ROOM_BATTLES, 0xFFFF);
|
||||||
trainerCard->var_4C = TRUE;
|
trainerCard->var_4C = TRUE;
|
||||||
|
|
||||||
if (trainerCard->caughtAllHoenn)
|
if (trainerCard->rse.caughtAllHoenn)
|
||||||
trainerCard->stars++;
|
trainerCard->rse.stars++;
|
||||||
|
|
||||||
if (trainerCard->hasAllMons)
|
if (trainerCard->hasAllMons)
|
||||||
trainerCard->stars++;
|
trainerCard->rse.stars++;
|
||||||
|
|
||||||
if (trainerCard->berriesPicked >= 200 && trainerCard->jumpsInRow >= 200)
|
if (trainerCard->berriesPicked >= 200 && trainerCard->jumpsInRow >= 200)
|
||||||
trainerCard->stars++;
|
trainerCard->rse.stars++;
|
||||||
|
|
||||||
id = ((u16)trainerCard->trainerId) % 8;
|
id = ((u16)trainerCard->rse.trainerId) % 8;
|
||||||
if (trainerCard->gender == FEMALE)
|
if (trainerCard->rse.gender == FEMALE)
|
||||||
trainerCard->var_4F = sLinkTrainerCardFacilityClasses[1][id];
|
trainerCard->var_4F = sLinkTrainerCardFacilityClasses[1][id];
|
||||||
else
|
else
|
||||||
trainerCard->var_4F = sLinkTrainerCardFacilityClasses[0][id];
|
trainerCard->var_4F = sLinkTrainerCardFacilityClasses[0][id];
|
||||||
@@ -889,18 +893,18 @@ static void SetDataFromTrainerCard(void)
|
|||||||
sTrainerCardDataPtr->hasTrades = FALSE;
|
sTrainerCardDataPtr->hasTrades = FALSE;
|
||||||
|
|
||||||
memset(&sTrainerCardDataPtr->hasBadge, FALSE, BADGE_COUNT);
|
memset(&sTrainerCardDataPtr->hasBadge, FALSE, BADGE_COUNT);
|
||||||
if (sTrainerCardDataPtr->trainerCard.hasPokedex)
|
if (sTrainerCardDataPtr->trainerCard.rse.hasPokedex)
|
||||||
sTrainerCardDataPtr->hasPokedex++;
|
sTrainerCardDataPtr->hasPokedex++;
|
||||||
|
|
||||||
if (sTrainerCardDataPtr->trainerCard.hofDebutHours != 0
|
if (sTrainerCardDataPtr->trainerCard.rse.hofDebutHours != 0
|
||||||
|| sTrainerCardDataPtr->trainerCard.hofDebutMinutes != 0
|
|| sTrainerCardDataPtr->trainerCard.rse.hofDebutMinutes != 0
|
||||||
|| sTrainerCardDataPtr->trainerCard.hofDebutSeconds != 0)
|
|| sTrainerCardDataPtr->trainerCard.rse.hofDebutSeconds != 0)
|
||||||
sTrainerCardDataPtr->hasHofResult++;
|
sTrainerCardDataPtr->hasHofResult++;
|
||||||
|
|
||||||
if (sTrainerCardDataPtr->trainerCard.linkBattleWins != 0 || sTrainerCardDataPtr->trainerCard.linkBattleLosses != 0)
|
if (sTrainerCardDataPtr->trainerCard.rse.linkBattleWins != 0 || sTrainerCardDataPtr->trainerCard.rse.linkBattleLosses != 0)
|
||||||
sTrainerCardDataPtr->hasLinkResults++;
|
sTrainerCardDataPtr->hasLinkResults++;
|
||||||
|
|
||||||
if (sTrainerCardDataPtr->trainerCard.pokemonTrades != 0)
|
if (sTrainerCardDataPtr->trainerCard.rse.pokemonTrades != 0)
|
||||||
sTrainerCardDataPtr->hasTrades++;
|
sTrainerCardDataPtr->hasTrades++;
|
||||||
|
|
||||||
for (i = 0, badgeFlag = FLAG_BADGE01_GET; badgeFlag <= FLAG_BADGE08_GET; badgeFlag++, i++)
|
for (i = 0, badgeFlag = FLAG_BADGE01_GET; badgeFlag <= FLAG_BADGE08_GET; badgeFlag++, i++)
|
||||||
@@ -1094,7 +1098,7 @@ static void PrintNameOnCard(void)
|
|||||||
|
|
||||||
txtPtr = StringCopy(buffer[0], gText_TrainerCardName);
|
txtPtr = StringCopy(buffer[0], gText_TrainerCardName);
|
||||||
txtPtr = buffer[1];
|
txtPtr = buffer[1];
|
||||||
StringCopy(txtPtr, sTrainerCardDataPtr->trainerCard.playerName);
|
StringCopy(txtPtr, sTrainerCardDataPtr->trainerCard.rse.playerName);
|
||||||
ConvertInternationalString(txtPtr, sTrainerCardDataPtr->language);
|
ConvertInternationalString(txtPtr, sTrainerCardDataPtr->language);
|
||||||
StringAppend(buffer[0], txtPtr);
|
StringAppend(buffer[0], txtPtr);
|
||||||
AddTextPrinterParameterized3(1, sTrainerCardFontIds[1], sTrainerCardPlayerNameXPositions[sTrainerCardDataPtr->cardType], sTrainerCardPlayerNameYPositions[sTrainerCardDataPtr->cardType], sFireRedTrainerCardPage1TextColors, TEXT_SPEED_FF, buffer[0]);
|
AddTextPrinterParameterized3(1, sTrainerCardFontIds[1], sTrainerCardPlayerNameXPositions[sTrainerCardDataPtr->cardType], sTrainerCardPlayerNameYPositions[sTrainerCardDataPtr->cardType], sFireRedTrainerCardPage1TextColors, TEXT_SPEED_FF, buffer[0]);
|
||||||
@@ -1106,7 +1110,7 @@ static void PrintIdOnCard(void)
|
|||||||
u8* txtPtr;
|
u8* txtPtr;
|
||||||
|
|
||||||
txtPtr = StringCopy(buffer, gText_TrainerCardIDNo);
|
txtPtr = StringCopy(buffer, gText_TrainerCardIDNo);
|
||||||
ConvertIntToDecimalStringN(txtPtr, sTrainerCardDataPtr->trainerCard.trainerId, STR_CONV_MODE_LEADING_ZEROS, 5);
|
ConvertIntToDecimalStringN(txtPtr, sTrainerCardDataPtr->trainerCard.rse.trainerId, STR_CONV_MODE_LEADING_ZEROS, 5);
|
||||||
AddTextPrinterParameterized3(1, sTrainerCardFontIds[1], sTrainerCardIdXPositions[sTrainerCardDataPtr->cardType], sTrainerCardIdYPositions[sTrainerCardDataPtr->cardType], sFireRedTrainerCardPage1TextColors, TEXT_SPEED_FF, buffer);
|
AddTextPrinterParameterized3(1, sTrainerCardFontIds[1], sTrainerCardIdXPositions[sTrainerCardDataPtr->cardType], sTrainerCardIdYPositions[sTrainerCardDataPtr->cardType], sFireRedTrainerCardPage1TextColors, TEXT_SPEED_FF, buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1117,7 +1121,7 @@ static void PrintMoneyOnCard(void)
|
|||||||
u8 x;
|
u8 x;
|
||||||
|
|
||||||
txtPtr = StringCopy(buffer, gText_TrainerCardYen);
|
txtPtr = StringCopy(buffer, gText_TrainerCardYen);
|
||||||
ConvertIntToDecimalStringN(txtPtr, sTrainerCardDataPtr->trainerCard.money, STR_CONV_MODE_LEFT_ALIGN, 6);
|
ConvertIntToDecimalStringN(txtPtr, sTrainerCardDataPtr->trainerCard.rse.money, STR_CONV_MODE_LEFT_ALIGN, 6);
|
||||||
if (sTrainerCardDataPtr->cardType != CARD_TYPE_EMERALD)
|
if (sTrainerCardDataPtr->cardType != CARD_TYPE_EMERALD)
|
||||||
{
|
{
|
||||||
x = -122 - 6 * StringLength(buffer);
|
x = -122 - 6 * StringLength(buffer);
|
||||||
@@ -1147,7 +1151,7 @@ static void PrintPokedexOnCard(void)
|
|||||||
|
|
||||||
if (FlagGet(FLAG_SYS_POKEDEX_GET))
|
if (FlagGet(FLAG_SYS_POKEDEX_GET))
|
||||||
{
|
{
|
||||||
ConvertIntToDecimalStringN(buffer, sTrainerCardDataPtr->trainerCard.caughtMonsCount, 0, 3);
|
ConvertIntToDecimalStringN(buffer, sTrainerCardDataPtr->trainerCard.rse.caughtMonsCount, 0, 3);
|
||||||
if (sTrainerCardDataPtr->cardType != CARD_TYPE_EMERALD)
|
if (sTrainerCardDataPtr->cardType != CARD_TYPE_EMERALD)
|
||||||
{
|
{
|
||||||
x = -120 - 6 * StringLength(buffer);
|
x = -120 - 6 * StringLength(buffer);
|
||||||
@@ -1175,8 +1179,8 @@ static void PrintTimeOnCard(void)
|
|||||||
minutes = gSaveBlock2Ptr->playTimeMinutes;
|
minutes = gSaveBlock2Ptr->playTimeMinutes;
|
||||||
if (sTrainerCardDataPtr->isLink)
|
if (sTrainerCardDataPtr->isLink)
|
||||||
{
|
{
|
||||||
hours = sTrainerCardDataPtr->trainerCard.playTimeHours;
|
hours = sTrainerCardDataPtr->trainerCard.rse.playTimeHours;
|
||||||
minutes = sTrainerCardDataPtr->trainerCard.playTimeMinutes;
|
minutes = sTrainerCardDataPtr->trainerCard.rse.playTimeMinutes;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hours > 999)
|
if (hours > 999)
|
||||||
@@ -1221,7 +1225,7 @@ static void PrintProfilePhraseOnCard(void)
|
|||||||
|
|
||||||
static void PrintNameOnCard2(void)
|
static void PrintNameOnCard2(void)
|
||||||
{
|
{
|
||||||
StringCopy(sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_NAME], sTrainerCardDataPtr->trainerCard.playerName);
|
StringCopy(sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_NAME], sTrainerCardDataPtr->trainerCard.rse.playerName);
|
||||||
ConvertInternationalString(sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_NAME], sTrainerCardDataPtr->language);
|
ConvertInternationalString(sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_NAME], sTrainerCardDataPtr->language);
|
||||||
if (sTrainerCardDataPtr->cardType == CARD_TYPE_EMERALD)
|
if (sTrainerCardDataPtr->cardType == CARD_TYPE_EMERALD)
|
||||||
{
|
{
|
||||||
@@ -1254,13 +1258,13 @@ static void PrintHofTimeOnCard(void)
|
|||||||
|
|
||||||
if (sTrainerCardDataPtr->hasHofResult)
|
if (sTrainerCardDataPtr->hasHofResult)
|
||||||
{
|
{
|
||||||
ConvertIntToDecimalStringN(buffer, sTrainerCardDataPtr->trainerCard.hofDebutHours, STR_CONV_MODE_RIGHT_ALIGN, 3);
|
ConvertIntToDecimalStringN(buffer, sTrainerCardDataPtr->trainerCard.rse.hofDebutHours, STR_CONV_MODE_RIGHT_ALIGN, 3);
|
||||||
txtPtr = StringCopy(sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_HOF_TIME], buffer);
|
txtPtr = StringCopy(sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_HOF_TIME], buffer);
|
||||||
StringAppendN(sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_HOF_TIME], gText_Colon2, 2);
|
StringAppendN(sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_HOF_TIME], gText_Colon2, 2);
|
||||||
ConvertIntToDecimalStringN(buffer, sTrainerCardDataPtr->trainerCard.hofDebutMinutes, STR_CONV_MODE_LEADING_ZEROS, 2);
|
ConvertIntToDecimalStringN(buffer, sTrainerCardDataPtr->trainerCard.rse.hofDebutMinutes, STR_CONV_MODE_LEADING_ZEROS, 2);
|
||||||
StringAppendN(sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_HOF_TIME], buffer, 3);
|
StringAppendN(sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_HOF_TIME], buffer, 3);
|
||||||
StringAppendN(sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_HOF_TIME], gText_Colon2, 2);
|
StringAppendN(sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_HOF_TIME], gText_Colon2, 2);
|
||||||
ConvertIntToDecimalStringN(buffer, sTrainerCardDataPtr->trainerCard.hofDebutSeconds, STR_CONV_MODE_LEADING_ZEROS, 2);
|
ConvertIntToDecimalStringN(buffer, sTrainerCardDataPtr->trainerCard.rse.hofDebutSeconds, STR_CONV_MODE_LEADING_ZEROS, 2);
|
||||||
StringAppendN(sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_HOF_TIME], buffer, 3);
|
StringAppendN(sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_HOF_TIME], buffer, 3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1282,9 +1286,9 @@ static void PrintLinkResultsNumsOnCard(void)
|
|||||||
{
|
{
|
||||||
StringCopy(sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_LINK_RECORD], sLinkTrainerCardRecordStrings[sTrainerCardDataPtr->cardType]);
|
StringCopy(sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_LINK_RECORD], sLinkTrainerCardRecordStrings[sTrainerCardDataPtr->cardType]);
|
||||||
StringCopy(sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_WIN_LOSS], gText_WinLossRatio);
|
StringCopy(sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_WIN_LOSS], gText_WinLossRatio);
|
||||||
ConvertIntToDecimalStringN(buffer, sTrainerCardDataPtr->trainerCard.linkBattleWins, STR_CONV_MODE_RIGHT_ALIGN, 4);
|
ConvertIntToDecimalStringN(buffer, sTrainerCardDataPtr->trainerCard.rse.linkBattleWins, STR_CONV_MODE_RIGHT_ALIGN, 4);
|
||||||
StringCopy(sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_LINK_WINS], buffer);
|
StringCopy(sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_LINK_WINS], buffer);
|
||||||
ConvertIntToDecimalStringN(buffer, sTrainerCardDataPtr->trainerCard.linkBattleLosses, STR_CONV_MODE_RIGHT_ALIGN, 4);
|
ConvertIntToDecimalStringN(buffer, sTrainerCardDataPtr->trainerCard.rse.linkBattleLosses, STR_CONV_MODE_RIGHT_ALIGN, 4);
|
||||||
StringCopy(sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_LINK_LOSSES], buffer);
|
StringCopy(sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_LINK_LOSSES], buffer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1306,7 +1310,7 @@ static void PrintTradesNumOnCard(void)
|
|||||||
if (sTrainerCardDataPtr->hasTrades)
|
if (sTrainerCardDataPtr->hasTrades)
|
||||||
{
|
{
|
||||||
StringCopy(sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_TRADES], gText_PokemonTrades);
|
StringCopy(sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_TRADES], gText_PokemonTrades);
|
||||||
ConvertIntToDecimalStringN(sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_TRADE_COUNT], sTrainerCardDataPtr->trainerCard.pokemonTrades, STR_CONV_MODE_RIGHT_ALIGN, 5);
|
ConvertIntToDecimalStringN(sTrainerCardDataPtr->strings[TRAINER_CARD_STRING_TRADE_COUNT], sTrainerCardDataPtr->trainerCard.rse.pokemonTrades, STR_CONV_MODE_RIGHT_ALIGN, 5);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1447,9 +1451,9 @@ static bool8 SetTrainerCardBgsAndPals(void)
|
|||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if (sTrainerCardDataPtr->cardType == CARD_TYPE_EMERALD)
|
if (sTrainerCardDataPtr->cardType == CARD_TYPE_EMERALD)
|
||||||
LoadPalette(sEmeraldTrainerCardStarPals[sTrainerCardDataPtr->trainerCard.stars], 0, 96);
|
LoadPalette(sEmeraldTrainerCardStarPals[sTrainerCardDataPtr->trainerCard.rse.stars], 0, 96);
|
||||||
else
|
else
|
||||||
LoadPalette(sFireRedTrainerCardStarPals[sTrainerCardDataPtr->trainerCard.stars], 0, 96);
|
LoadPalette(sFireRedTrainerCardStarPals[sTrainerCardDataPtr->trainerCard.rse.stars], 0, 96);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
if (sTrainerCardDataPtr->cardType == CARD_TYPE_EMERALD)
|
if (sTrainerCardDataPtr->cardType == CARD_TYPE_EMERALD)
|
||||||
@@ -1458,9 +1462,9 @@ static bool8 SetTrainerCardBgsAndPals(void)
|
|||||||
LoadPalette(sFireRedTrainerCardBadges_Pal, 48, 32);
|
LoadPalette(sFireRedTrainerCardBadges_Pal, 48, 32);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
if (sTrainerCardDataPtr->cardType == CARD_TYPE_EMERALD && sTrainerCardDataPtr->trainerCard.gender != MALE)
|
if (sTrainerCardDataPtr->cardType == CARD_TYPE_EMERALD && sTrainerCardDataPtr->trainerCard.rse.gender != MALE)
|
||||||
LoadPalette(sEmeraldTrainerCardFemaleBackground_Pal, 16, 32);
|
LoadPalette(sEmeraldTrainerCardFemaleBackground_Pal, 16, 32);
|
||||||
else if (sTrainerCardDataPtr->trainerCard.gender != MALE)
|
else if (sTrainerCardDataPtr->trainerCard.rse.gender != MALE)
|
||||||
LoadPalette(sFireRedTrainerCardFemaleBackground_Pal, 16, 32);
|
LoadPalette(sFireRedTrainerCardFemaleBackground_Pal, 16, 32);
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
@@ -1525,7 +1529,7 @@ static void TrainerCard_PrintStarsAndBadgesOnCard(void)
|
|||||||
u16 tileNum = 192;
|
u16 tileNum = 192;
|
||||||
u8 palNum = 3;
|
u8 palNum = 3;
|
||||||
|
|
||||||
FillBgTilemapBufferRect(3, 143, 15, sUnknown_83CD95C[sTrainerCardDataPtr->cardType], sTrainerCardDataPtr->trainerCard.stars, 1, 4);
|
FillBgTilemapBufferRect(3, 143, 15, sUnknown_83CD95C[sTrainerCardDataPtr->cardType], sTrainerCardDataPtr->trainerCard.rse.stars, 1, 4);
|
||||||
if (!sTrainerCardDataPtr->isLink)
|
if (!sTrainerCardDataPtr->isLink)
|
||||||
{
|
{
|
||||||
x = 4;
|
x = 4;
|
||||||
@@ -1590,7 +1594,7 @@ static void sub_808B180(void)
|
|||||||
|
|
||||||
u8 GetTrainerCardStars(u8 cardId)
|
u8 GetTrainerCardStars(u8 cardId)
|
||||||
{
|
{
|
||||||
return gTrainerCards[cardId].stars;
|
return gTrainerCards[cardId].rse.stars;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_808B1D4(void)
|
static void sub_808B1D4(void)
|
||||||
@@ -1855,7 +1859,7 @@ static void sub_808B774(void)
|
|||||||
|
|
||||||
for (i = 0; i < 4; i++)
|
for (i = 0; i < 4; i++)
|
||||||
{
|
{
|
||||||
CopyEasyChatWord(sTrainerCardDataPtr->var_19[i], sTrainerCardDataPtr->trainerCard.var_28[i]);
|
CopyEasyChatWord(sTrainerCardDataPtr->var_19[i], sTrainerCardDataPtr->trainerCard.rse.var_28[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1879,26 +1883,26 @@ static u8 GetCardType(void)
|
|||||||
|
|
||||||
static void sub_808B838(void)
|
static void sub_808B838(void)
|
||||||
{
|
{
|
||||||
u8 val = sLinkTrainerCardFrontPics[sTrainerCardDataPtr->cardType][sTrainerCardDataPtr->trainerCard.gender];
|
u8 val = sLinkTrainerCardFrontPics[sTrainerCardDataPtr->cardType][sTrainerCardDataPtr->trainerCard.rse.gender];
|
||||||
|
|
||||||
if (InUnionRoom() == TRUE && gReceivedRemoteLinkPlayers == 1)
|
if (InUnionRoom() == TRUE && gReceivedRemoteLinkPlayers == 1)
|
||||||
{
|
{
|
||||||
val = sTrainerCardDataPtr->trainerCard.var_4F;
|
val = sTrainerCardDataPtr->trainerCard.var_4F;
|
||||||
sub_810C330(FacilityClassToPicIndex(val), TRUE, sTrainerCardPicPositions[sTrainerCardDataPtr->cardType][sTrainerCardDataPtr->trainerCard.gender][0],
|
sub_810C330(FacilityClassToPicIndex(val), TRUE, sTrainerCardPicPositions[sTrainerCardDataPtr->cardType][sTrainerCardDataPtr->trainerCard.rse.gender][0],
|
||||||
sTrainerCardPicPositions[sTrainerCardDataPtr->cardType][sTrainerCardDataPtr->trainerCard.gender][1], 8, 2);
|
sTrainerCardPicPositions[sTrainerCardDataPtr->cardType][sTrainerCardDataPtr->trainerCard.rse.gender][1], 8, 2);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (sTrainerCardDataPtr->cardType != CARD_TYPE_FRLG)
|
if (sTrainerCardDataPtr->cardType != CARD_TYPE_FRLG)
|
||||||
{
|
{
|
||||||
sub_810C330(FacilityClassToPicIndex(val), TRUE, sTrainerCardPicPositions[sTrainerCardDataPtr->cardType][sTrainerCardDataPtr->trainerCard.gender][0],
|
sub_810C330(FacilityClassToPicIndex(val), TRUE, sTrainerCardPicPositions[sTrainerCardDataPtr->cardType][sTrainerCardDataPtr->trainerCard.rse.gender][0],
|
||||||
sTrainerCardPicPositions[sTrainerCardDataPtr->cardType][sTrainerCardDataPtr->trainerCard.gender][1], 8, 2);
|
sTrainerCardPicPositions[sTrainerCardDataPtr->cardType][sTrainerCardDataPtr->trainerCard.rse.gender][1], 8, 2);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sub_810C330(PlayerGenderToFrontTrainerPicId_Debug(sTrainerCardDataPtr->trainerCard.gender, TRUE), TRUE,
|
sub_810C330(PlayerGenderToFrontTrainerPicId_Debug(sTrainerCardDataPtr->trainerCard.rse.gender, TRUE), TRUE,
|
||||||
sTrainerCardPicPositions[sTrainerCardDataPtr->cardType][sTrainerCardDataPtr->trainerCard.gender][0],
|
sTrainerCardPicPositions[sTrainerCardDataPtr->cardType][sTrainerCardDataPtr->trainerCard.rse.gender][0],
|
||||||
sTrainerCardPicPositions[sTrainerCardDataPtr->cardType][sTrainerCardDataPtr->trainerCard.gender][1],
|
sTrainerCardPicPositions[sTrainerCardDataPtr->cardType][sTrainerCardDataPtr->trainerCard.rse.gender][1],
|
||||||
8, 2);
|
8, 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+10
-10
@@ -4692,23 +4692,23 @@ static void ViewURoomPartnerTrainerCard(u8 *unused, struct UnkStruct_URoom * uro
|
|||||||
StringCopy(uroom->trainerCardStrbufs[0], gTrainerClassNames[sub_80447F0()]);
|
StringCopy(uroom->trainerCardStrbufs[0], gTrainerClassNames[sub_80447F0()]);
|
||||||
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, uroom->trainerCardStrbufs[0]);
|
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, uroom->trainerCardStrbufs[0]);
|
||||||
|
|
||||||
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, trainerCard->playerName);
|
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, trainerCard->rse.playerName);
|
||||||
|
|
||||||
StringCopy(uroom->field_174, gUnknown_84594B0[trainerCard->stars]);
|
StringCopy(uroom->field_174, gUnknown_84594B0[trainerCard->rse.stars]);
|
||||||
DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, uroom->field_174);
|
DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, uroom->field_174);
|
||||||
|
|
||||||
ConvertIntToDecimalStringN(uroom->trainerCardStrbufs[2], trainerCard->caughtMonsCount, STR_CONV_MODE_LEFT_ALIGN, 3);
|
ConvertIntToDecimalStringN(uroom->trainerCardStrbufs[2], trainerCard->rse.caughtMonsCount, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||||
DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, uroom->trainerCardStrbufs[2]);
|
DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, uroom->trainerCardStrbufs[2]);
|
||||||
|
|
||||||
ConvertIntToDecimalStringN(uroom->trainerCardStrbufs[3], trainerCard->playTimeHours, STR_CONV_MODE_LEFT_ALIGN, 3);
|
ConvertIntToDecimalStringN(uroom->trainerCardStrbufs[3], trainerCard->rse.playTimeHours, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||||
ConvertIntToDecimalStringN(uroom->trainerCardStrbufs[4], trainerCard->playTimeMinutes, STR_CONV_MODE_LEADING_ZEROS, 2);
|
ConvertIntToDecimalStringN(uroom->trainerCardStrbufs[4], trainerCard->rse.playTimeMinutes, STR_CONV_MODE_LEADING_ZEROS, 2);
|
||||||
DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, uroom->trainerCardStrbufs[3]);
|
DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, uroom->trainerCardStrbufs[3]);
|
||||||
DynamicPlaceholderTextUtil_SetPlaceholderPtr(5, uroom->trainerCardStrbufs[4]);
|
DynamicPlaceholderTextUtil_SetPlaceholderPtr(5, uroom->trainerCardStrbufs[4]);
|
||||||
|
|
||||||
DynamicPlaceholderTextUtil_ExpandPlaceholders(uroom->field_1A4, gUnknown_84594C4);
|
DynamicPlaceholderTextUtil_ExpandPlaceholders(uroom->field_1A4, gUnknown_84594C4);
|
||||||
StringCopy(gStringVar4, uroom->field_1A4);
|
StringCopy(gStringVar4, uroom->field_1A4);
|
||||||
|
|
||||||
n = trainerCard->linkBattleWins;
|
n = trainerCard->rse.linkBattleWins;
|
||||||
if (n > 9999)
|
if (n > 9999)
|
||||||
{
|
{
|
||||||
n = 9999;
|
n = 9999;
|
||||||
@@ -4716,7 +4716,7 @@ static void ViewURoomPartnerTrainerCard(u8 *unused, struct UnkStruct_URoom * uro
|
|||||||
ConvertIntToDecimalStringN(uroom->trainerCardStrbufs[0], n, STR_CONV_MODE_LEFT_ALIGN, 4);
|
ConvertIntToDecimalStringN(uroom->trainerCardStrbufs[0], n, STR_CONV_MODE_LEFT_ALIGN, 4);
|
||||||
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, uroom->trainerCardStrbufs[0]);
|
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, uroom->trainerCardStrbufs[0]);
|
||||||
|
|
||||||
n = trainerCard->linkBattleLosses;
|
n = trainerCard->rse.linkBattleLosses;
|
||||||
if (n > 9999)
|
if (n > 9999)
|
||||||
{
|
{
|
||||||
n = 9999;
|
n = 9999;
|
||||||
@@ -4724,12 +4724,12 @@ static void ViewURoomPartnerTrainerCard(u8 *unused, struct UnkStruct_URoom * uro
|
|||||||
ConvertIntToDecimalStringN(uroom->trainerCardStrbufs[1], n, STR_CONV_MODE_LEFT_ALIGN, 4);
|
ConvertIntToDecimalStringN(uroom->trainerCardStrbufs[1], n, STR_CONV_MODE_LEFT_ALIGN, 4);
|
||||||
DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, uroom->trainerCardStrbufs[1]);
|
DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, uroom->trainerCardStrbufs[1]);
|
||||||
|
|
||||||
ConvertIntToDecimalStringN(uroom->trainerCardStrbufs[2], trainerCard->pokemonTrades, STR_CONV_MODE_LEFT_ALIGN, 5);
|
ConvertIntToDecimalStringN(uroom->trainerCardStrbufs[2], trainerCard->rse.pokemonTrades, STR_CONV_MODE_LEFT_ALIGN, 5);
|
||||||
DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, uroom->trainerCardStrbufs[2]);
|
DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, uroom->trainerCardStrbufs[2]);
|
||||||
|
|
||||||
for (i = 0; i < 4; i++)
|
for (i = 0; i < 4; i++)
|
||||||
{
|
{
|
||||||
CopyEasyChatWord(uroom->trainerCardStrbufs[i + 3], trainerCard->var_28[i]);
|
CopyEasyChatWord(uroom->trainerCardStrbufs[i + 3], trainerCard->rse.var_28[i]);
|
||||||
DynamicPlaceholderTextUtil_SetPlaceholderPtr(i + 4, uroom->trainerCardStrbufs[i + 3]);
|
DynamicPlaceholderTextUtil_SetPlaceholderPtr(i + 4, uroom->trainerCardStrbufs[i + 3]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4743,7 +4743,7 @@ static void ViewURoomPartnerTrainerCard(u8 *unused, struct UnkStruct_URoom * uro
|
|||||||
}
|
}
|
||||||
else if (parent_child == MODE_CHILD)
|
else if (parent_child == MODE_CHILD)
|
||||||
{
|
{
|
||||||
DynamicPlaceholderTextUtil_ExpandPlaceholders(uroom->field_1A4, gUnknown_8459580[trainerCard->gender]);
|
DynamicPlaceholderTextUtil_ExpandPlaceholders(uroom->field_1A4, gUnknown_8459580[trainerCard->rse.gender]);
|
||||||
StringAppend(gStringVar4, uroom->field_1A4);
|
StringAppend(gStringVar4, uroom->field_1A4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user