Document some Quest Log
This commit is contained in:
+32
-30
@@ -6,6 +6,7 @@
|
||||
#include "link.h"
|
||||
#include "overworld.h"
|
||||
#include "quest_log.h"
|
||||
#include "constants/trainer_classes.h"
|
||||
|
||||
struct QuestLogStruct_TrainerBattleRecord
|
||||
{
|
||||
@@ -18,20 +19,20 @@ struct QuestLogStruct_TrainerBattleRecord
|
||||
|
||||
struct QuestLogStruct_WildBattleRecord
|
||||
{
|
||||
u16 v0;
|
||||
u16 v2;
|
||||
u8 v4;
|
||||
u16 defeatedSpecies;
|
||||
u16 caughtSpecies;
|
||||
u8 mapSec;
|
||||
};
|
||||
|
||||
static void sub_812C334(s32 *, s32 *);
|
||||
|
||||
void sub_812BFDC(void)
|
||||
void TrySetQuestLogBattleEvent(void)
|
||||
{
|
||||
if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_OLD_MAN_TUTORIAL | BATTLE_TYPE_POKEDUDE)) && (gBattleOutcome == B_OUTCOME_WON || gBattleOutcome == B_OUTCOME_CAUGHT))
|
||||
{
|
||||
struct QuestLogStruct_TrainerBattleRecord * questLogTrainerBattleRecord = Alloc(sizeof(struct QuestLogStruct_TrainerBattleRecord));
|
||||
struct QuestLogStruct_WildBattleRecord * questLogWildBattleRecord = Alloc(sizeof(struct QuestLogStruct_WildBattleRecord));
|
||||
u16 questLogMessageType;
|
||||
u16 eventId;
|
||||
u16 playerEndingHP;
|
||||
u16 playerMaxHP;
|
||||
|
||||
@@ -39,17 +40,17 @@ void sub_812BFDC(void)
|
||||
{
|
||||
switch (gTrainers[gTrainerBattleOpponent_A].trainerClass)
|
||||
{
|
||||
case 0x54:
|
||||
questLogMessageType = 30;
|
||||
case CLASS_LEADER_2:
|
||||
eventId = QL_EVENT_DEFEATED_GYM_LEADER;
|
||||
break;
|
||||
case 0x5a:
|
||||
questLogMessageType = 33;
|
||||
case CLASS_CHAMPION_2:
|
||||
eventId = QL_EVENT_DEFEATED_CHAMPION;
|
||||
break;
|
||||
case 0x57:
|
||||
questLogMessageType = 32;
|
||||
case CLASS_ELITE_FOUR_2:
|
||||
eventId = QL_EVENT_DEFEATED_E4_MEMBER;
|
||||
break;
|
||||
default:
|
||||
questLogMessageType = 34;
|
||||
eventId = QL_EVENT_DEFEATED_TRAINER;
|
||||
break;
|
||||
}
|
||||
questLogTrainerBattleRecord->v0 = gTrainerBattleOpponent_A;
|
||||
@@ -78,22 +79,22 @@ void sub_812BFDC(void)
|
||||
questLogTrainerBattleRecord->v6 = 1;
|
||||
if (playerEndingHP < playerMaxHP / 3)
|
||||
questLogTrainerBattleRecord->v6++;
|
||||
sub_8113550(questLogMessageType, (const u16 *)questLogTrainerBattleRecord);
|
||||
SetQuestLogEvent(eventId, (const u16 *)questLogTrainerBattleRecord);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gBattleOutcome == B_OUTCOME_WON)
|
||||
{
|
||||
questLogWildBattleRecord->v0 = GetMonData(gEnemyParty + 0, MON_DATA_SPECIES);
|
||||
questLogWildBattleRecord->v2 = SPECIES_NONE;
|
||||
questLogWildBattleRecord->defeatedSpecies = GetMonData(gEnemyParty, MON_DATA_SPECIES);
|
||||
questLogWildBattleRecord->caughtSpecies = SPECIES_NONE;
|
||||
}
|
||||
else
|
||||
else // gBattleOutcome == B_OUTCOME_CAUGHT
|
||||
{
|
||||
questLogWildBattleRecord->v0 = SPECIES_NONE;
|
||||
questLogWildBattleRecord->v2 = GetMonData(gEnemyParty + 0, MON_DATA_SPECIES);
|
||||
questLogWildBattleRecord->defeatedSpecies = SPECIES_NONE;
|
||||
questLogWildBattleRecord->caughtSpecies = GetMonData(gEnemyParty, MON_DATA_SPECIES);
|
||||
}
|
||||
questLogWildBattleRecord->v4 = GetCurrentRegionMapSectionId();
|
||||
sub_8113550(31, (const u16 *)questLogWildBattleRecord);
|
||||
questLogWildBattleRecord->mapSec = GetCurrentRegionMapSectionId();
|
||||
SetQuestLogEvent(QL_EVENT_DEFEATED_WILD_MON, (const u16 *)questLogWildBattleRecord);
|
||||
}
|
||||
Free(questLogTrainerBattleRecord);
|
||||
Free(questLogWildBattleRecord);
|
||||
@@ -106,13 +107,13 @@ struct QuestLogStruct_LinkBattleRecord
|
||||
u8 v1[3][7];
|
||||
};
|
||||
|
||||
void sub_812C224(void)
|
||||
void TrySetQuestLogLinkBattleEvent(void)
|
||||
{
|
||||
s32 sp0;
|
||||
s32 sp4[2];
|
||||
u16 r8;
|
||||
u16 eventId;
|
||||
s32 r3;
|
||||
u32 r0;
|
||||
bool32 inUnionRoom;
|
||||
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
|
||||
{
|
||||
@@ -120,7 +121,7 @@ void sub_812C224(void)
|
||||
r5->v0 = gBattleOutcome - 1; // 0 = won, 1 = lost, 2 = drew
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
|
||||
{
|
||||
r8 = 15;
|
||||
eventId = QL_EVENT_LINK_BATTLED_MULTI;
|
||||
sub_812C334(&sp0, sp4);
|
||||
for (r3 = 0; r3 < 7; r3++)
|
||||
{
|
||||
@@ -132,20 +133,21 @@ void sub_812C224(void)
|
||||
else
|
||||
{
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
|
||||
r8 = 14;
|
||||
eventId = QL_EVENT_LINK_BATTLED_DOUBLE;
|
||||
else
|
||||
{
|
||||
r0 = InUnionRoom();
|
||||
r8 = 13;
|
||||
if (r0 == TRUE)
|
||||
r8 = 19;
|
||||
inUnionRoom = InUnionRoom();
|
||||
eventId = QL_EVENT_LINK_BATTLED_SINGLE;
|
||||
|
||||
if (inUnionRoom == TRUE)
|
||||
eventId = QL_EVENT_LINK_BATTLED_UNION;
|
||||
}
|
||||
for (r3 = 0; r3 < 7; r3++)
|
||||
{
|
||||
r5->v1[0][r3] = gLinkPlayers[gBattleStruct->multiplayerId ^ 1].name[r3];
|
||||
}
|
||||
}
|
||||
sub_8113550(r8, (const u16 *)r5);
|
||||
SetQuestLogEvent(eventId, (const u16 *)r5);
|
||||
Free(r5);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user