battle setup file is decompiled
This commit is contained in:
@@ -12,6 +12,7 @@
|
||||
#include "window.h"
|
||||
#include "palette.h"
|
||||
#include "battle_controllers.h"
|
||||
#include "battle_setup.h"
|
||||
|
||||
extern u16 gLastUsedItem;
|
||||
extern u8 gLastUsedAbility;
|
||||
@@ -54,8 +55,6 @@ extern void sub_81D5554(u8 *txtPtr, u16 trainerId); // pokenav
|
||||
extern void GetEreaderTrainerName(u8 *txtPtr);
|
||||
extern void sub_81A36D0(u8 arg0, u16 trainerId); // battle_frontier_2
|
||||
extern void sub_81D572C(u8 arg0, u16 trainerId); // pokenav
|
||||
extern const u8* GetTrainer1LoseText(void); // battle_setup
|
||||
extern const u8* GetTrainer2LoseText(void); // battle_setup
|
||||
extern void GetFrontierTrainerName(u8 *dst, u16 trainerId);
|
||||
extern s32 GetStringCenterAlignXOffsetWithLetterSpacing(u8 fontId, const u8 *str, s32 totalWidth, s16 letterSpacing);
|
||||
extern u8 GetTextSpeedInRecordedBattle(void);
|
||||
@@ -2068,7 +2067,7 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst)
|
||||
}
|
||||
else
|
||||
{
|
||||
toCpy = GetTrainer1LoseText();
|
||||
toCpy = GetTrainerALoseText();
|
||||
}
|
||||
break;
|
||||
case B_TXT_TRAINER1_WIN_TEXT: // trainerA win text
|
||||
@@ -2165,7 +2164,7 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst)
|
||||
}
|
||||
else
|
||||
{
|
||||
toCpy = GetTrainer2LoseText();
|
||||
toCpy = GetTrainerBLoseText();
|
||||
}
|
||||
break;
|
||||
case B_TXT_TRAINER2_WIN_TEXT:
|
||||
|
||||
1200
src/battle_setup.c
1200
src/battle_setup.c
File diff suppressed because it is too large
Load Diff
@@ -1155,7 +1155,7 @@ u8 GetMonsStateToDoubles_2(void)
|
||||
s32 aliveCount = 0;
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < 6; i++)
|
||||
for (i = 0; i < PARTY_SIZE; i++)
|
||||
{
|
||||
u32 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL);
|
||||
if (species != SPECIES_EGG && species != SPECIES_NONE
|
||||
|
||||
32
src/scrcmd.c
32
src/scrcmd.c
@@ -656,7 +656,7 @@ bool8 ScrCmd_fadescreenspeed(struct ScriptContext *ctx)
|
||||
bool8 ScrCmd_fadescreenswapbuffers(struct ScriptContext *ctx)
|
||||
{
|
||||
u8 mode = ScriptReadByte(ctx);
|
||||
|
||||
|
||||
switch (mode)
|
||||
{
|
||||
case 1:
|
||||
@@ -1445,7 +1445,7 @@ bool8 ScrCmd_drawboxtext(struct ScriptContext *ctx)
|
||||
u8 top = ScriptReadByte(ctx);
|
||||
u8 multichoiceId = ScriptReadByte(ctx);
|
||||
u8 ignoreBPress = ScriptReadByte(ctx);
|
||||
|
||||
|
||||
/*if (Multichoice(left, top, multichoiceId, ignoreBPress) == TRUE)
|
||||
{
|
||||
ScriptContext1_Stop();
|
||||
@@ -1501,31 +1501,31 @@ bool8 ScrCmd_braillemessage(struct ScriptContext *ctx)
|
||||
u8 y;
|
||||
|
||||
StringExpandPlaceholders(gStringVar4, ptr + 6);
|
||||
|
||||
|
||||
width = GetStringWidth(6, gStringVar4, -1) / 8;
|
||||
|
||||
|
||||
if (width > 0x1C)
|
||||
width = 0x1C;
|
||||
|
||||
|
||||
for (i = 0, height = 4; gStringVar4[i] != 0xFF;)
|
||||
{
|
||||
if (gStringVar4[i++] == 0xFE)
|
||||
height += 3;
|
||||
}
|
||||
|
||||
|
||||
if (height > 0x12)
|
||||
height = 0x12;
|
||||
|
||||
|
||||
x = width + 2;
|
||||
temp1 = (0x1E - x) / 2;
|
||||
x = temp1 + 1;
|
||||
temp1 = ((x - temp1 - 1) * 8 + 3);
|
||||
|
||||
|
||||
y = height + 2;
|
||||
temp2 = (0x14 - y) / 2;
|
||||
y = temp2 + 2;
|
||||
temp2 = ((y - temp2 - 1) * 8);
|
||||
|
||||
|
||||
sub_8198A50(&template1, 0, x, y, width, height, 0xF, 0x1);
|
||||
template2 = template1;
|
||||
gUnknown_03000F30 = AddWindow(&template2);
|
||||
@@ -1924,7 +1924,7 @@ bool8 ScrCmd_hidemoneybox(struct ScriptContext *ctx)
|
||||
{
|
||||
/*u8 x = ScriptReadByte(ctx);
|
||||
u8 y = ScriptReadByte(ctx);*/
|
||||
|
||||
|
||||
HideMoneyBox();
|
||||
return FALSE;
|
||||
}
|
||||
@@ -1979,13 +1979,13 @@ bool8 ScrCmd_dotrainerbattle(struct ScriptContext *ctx)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 ScrCmd_ontrainerbattleend(struct ScriptContext *ctx)
|
||||
bool8 ScrCmd_gotobattleendscript(struct ScriptContext *ctx)
|
||||
{
|
||||
ctx->scriptPtr = BattleSetup_GetScriptAddrAfterBattle();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 ScrCmd_ontrainerbattleendgoto(struct ScriptContext *ctx)
|
||||
bool8 ScrCmd_gototrainerscript(struct ScriptContext *ctx)
|
||||
{
|
||||
ctx->scriptPtr = BattleSetup_GetTrainerPostBattleScript();
|
||||
return FALSE;
|
||||
@@ -1995,7 +1995,7 @@ bool8 ScrCmd_checktrainerflag(struct ScriptContext *ctx)
|
||||
{
|
||||
u16 index = VarGet(ScriptReadHalfword(ctx));
|
||||
|
||||
ctx->comparisonResult = HasTrainerAlreadyBeenFought(index);
|
||||
ctx->comparisonResult = HasTrainerBeenFought(index);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -2003,7 +2003,7 @@ bool8 ScrCmd_settrainerflag(struct ScriptContext *ctx)
|
||||
{
|
||||
u16 index = VarGet(ScriptReadHalfword(ctx));
|
||||
|
||||
trainer_flag_set(index);
|
||||
SetTrainerFlag(index);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -2011,7 +2011,7 @@ bool8 ScrCmd_cleartrainerflag(struct ScriptContext *ctx)
|
||||
{
|
||||
u16 index = VarGet(ScriptReadHalfword(ctx));
|
||||
|
||||
trainer_flag_clear(index);
|
||||
ClearTrainerFlag(index);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -2374,7 +2374,7 @@ bool8 ScrCmd_checkmonobedience(struct ScriptContext *ctx)
|
||||
bool8 ScrCmd_cmdCF(struct ScriptContext *ctx)
|
||||
{
|
||||
const u8* v1 = sub_8099244();
|
||||
|
||||
|
||||
if (v1)
|
||||
{
|
||||
((u8*)gUnknown_020375C0) = ctx->scriptPtr;
|
||||
|
||||
@@ -1282,7 +1282,7 @@ u8 sub_80EA20C(u8 secretBaseRecordId)
|
||||
return (gSaveBlock1Ptr->secretBases[secretBaseRecordId].trainerId[0] % 5) + (gSaveBlock1Ptr->secretBases[secretBaseRecordId].gender * 5);
|
||||
}
|
||||
|
||||
const u8 *sub_80EA250(void)
|
||||
const u8 *GetSecretBaseTrainerLoseText(void)
|
||||
{
|
||||
u8 param;
|
||||
|
||||
|
||||
68
src/trainer_see.c
Normal file
68
src/trainer_see.c
Normal file
@@ -0,0 +1,68 @@
|
||||
#include "global.h"
|
||||
#include "trainer_see.h"
|
||||
#include "battle_setup.h"
|
||||
|
||||
extern u8 gApproachingTrainerId;
|
||||
extern u8 gNoOfApproachingTrainers;
|
||||
extern u8 gUnknown_030060AC;
|
||||
extern u16 gUnknown_03006080;
|
||||
|
||||
// this file's functions
|
||||
u8 CheckIfTrainerWantsBattle(u8 mapObjectId);
|
||||
|
||||
bool8 CheckForTrainersWantingBattle(void)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
gNoOfApproachingTrainers = 0;
|
||||
gApproachingTrainerId = 0;
|
||||
|
||||
for (i = 0; i < MAP_OBJECTS_COUNT; i++)
|
||||
{
|
||||
u8 retVal;
|
||||
|
||||
if (!gMapObjects[i].active)
|
||||
continue;
|
||||
if (gMapObjects[i].trainerType != 1 && gMapObjects[i].trainerType != 3)
|
||||
continue;
|
||||
|
||||
retVal = CheckIfTrainerWantsBattle(i);
|
||||
if (retVal == 2)
|
||||
break; // two trainers has been found
|
||||
|
||||
if (retVal == 0) // no trainers
|
||||
continue;
|
||||
|
||||
if (gNoOfApproachingTrainers > 1)
|
||||
break;
|
||||
if (GetMonsStateToDoubles_2() != 0) // one trainer found and cant have a double battle
|
||||
break;
|
||||
}
|
||||
|
||||
if (gNoOfApproachingTrainers == 1)
|
||||
{
|
||||
ResetTrainerOpponentIds();
|
||||
ConfigureAndSetUpOneTrainerBattle(gApproachingTrainers[gNoOfApproachingTrainers - 1].mapObjectId,
|
||||
gApproachingTrainers[gNoOfApproachingTrainers - 1].trainerScriptPtr);
|
||||
gUnknown_030060AC = 1;
|
||||
return TRUE;
|
||||
}
|
||||
else if (gNoOfApproachingTrainers == 2)
|
||||
{
|
||||
ResetTrainerOpponentIds();
|
||||
for (i = 0; i < gNoOfApproachingTrainers; i++, gApproachingTrainerId++)
|
||||
{
|
||||
ConfigureTwoTrainersBattle(gApproachingTrainers[i].mapObjectId,
|
||||
gApproachingTrainers[i].trainerScriptPtr);
|
||||
}
|
||||
SetUpTwoTrainersBattle();
|
||||
gApproachingTrainerId = 0;
|
||||
gUnknown_030060AC = 1;
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
gUnknown_030060AC = 0;
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user