Merge pull request #316 from Viperio19/journal-documentation
Some checks failed
build / build (push) Has been cancelled

Journal documentation
This commit is contained in:
Rachel 2024-12-17 08:17:05 -08:00 committed by GitHub
commit 20d0c83f6a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
71 changed files with 3205 additions and 3142 deletions

View File

@ -2,6 +2,7 @@
.include "consts/badges.inc"
.include "consts/game_records.inc"
.include "consts/items.inc"
.include "consts/journal.inc"
.include "consts/map.inc"
.include "consts/moves.inc"
.include "consts/poketch.inc"
@ -2464,13 +2465,13 @@
.short 460
.endm
.macro ScrCmd_1CD arg0, arg1, arg2, arg3, arg4
.macro CreateJournalEvent eventType, eventParam, unused1, unused2, unused3
.short 461
.short \arg0
.short \arg1
.short \arg2
.short \arg3
.short \arg4
.short \eventType
.short \eventParam
.short \unused1
.short \unused2
.short \unused3
.endm
.macro ScrCmd_1CE

86
consts/journal.json Normal file
View File

@ -0,0 +1,86 @@
{
"definitions": {
"@JournalLocationEventType": {
"type": "enum",
"values": [
"LOCATION_EVENT_NONE",
"LOCATION_EVENT_RESTED_AT_HOME",
"LOCATION_EVENT_LEFT_RESEARCH_LAB",
"LOCATION_EVENT_USED_PC_BOX",
"LOCATION_EVENT_SHOPPED_AT_MART",
"LOCATION_EVENT_LOTS_OF_SHOPPING",
"LOCATION_EVENT_SOLD_A_LITTLE",
"LOCATION_EVENT_SOLD_A_LOT",
"LOCATION_EVENT_BUSINESS_AT_MART",
"LOCATION_EVENT_GYM_WAS_TOO_TOUGH",
"LOCATION_EVENT_BEAT_GYM_LEADER",
"LOCATION_EVENT_BEAT_ELITE_FOUR_MEMBER",
"LOCATION_EVENT_BEAT_CHAMPION",
"LOCATION_EVENT_ARRIVED_IN_LOCATION",
"LOCATION_EVENT_LEFT_CAVE",
"LOCATION_EVENT_LEFT_BUILDING",
"LOCATION_EVENT_GAME_CORNER",
"LOCATION_EVENT_SAFARI_GAME",
"LOCATION_EVENT_ITEM_WAS_OBTAINED",
"LOCATION_EVENT_USED_CUT",
"LOCATION_EVENT_FLEW_TO_LOCATION",
"LOCATION_EVENT_USED_SURF",
"LOCATION_EVENT_USED_STRENGTH",
"LOCATION_EVENT_USED_DEFOG",
"LOCATION_EVENT_USED_ROCK_SMASH",
"LOCATION_EVENT_USED_WATERFALL",
"LOCATION_EVENT_USED_ROCK_CLIMB",
"LOCATION_EVENT_USED_FLASH",
"LOCATION_EVENT_WARPED_TO_LOCATION",
"LOCATION_EVENT_USED_DIG",
"LOCATION_EVENT_LURED_POKEMON",
"LOCATION_EVENT_UNUSED",
"LOCATION_EVENT_USED_MILK_DRINK",
"LOCATION_EVENT_USED_SOFTBOILED",
"LOCATION_EVENT_DUG_UNDERGROUND",
"LOCATION_EVENT_BUILT_SECRET_BASE",
"LOCATION_EVENT_BATTLE_TOWER",
"LOCATION_EVENT_BATTLE_FACTORY",
"LOCATION_EVENT_BATTLE_CASTLE",
"LOCATION_EVENT_BATTLE_HALL",
"LOCATION_EVENT_BATTLE_ARCADE"
]
},
"@JournalOnlineEventType": {
"type": "enum",
"values": [
"ONLINE_EVENT_NONE",
"ONLINE_EVENT_SINGLE_BATTLE",
"ONLINE_EVENT_DOUBLE_BATTLE",
"ONLINE_EVENT_MULTI_BATTLE",
"ONLINE_EVENT_MIX_SINGLE_BATTLE",
"ONLINE_EVENT_MIX_MULTI_BATTLE",
"ONLINE_EVENT_GREETED_IN_UNION_ROOM",
"ONLINE_EVENT_GOT_POKEMON_FROM_TRADE",
"ONLINE_EVENT_DREW_PICTURES",
"ONLINE_EVENT_GOT_POKEMON_IN_FRIEND_TRADE",
"ONLINE_EVENT_CHATTED_WITH_OTHERS",
"ONLINE_EVENT_UNION_BATTLE",
"ONLINE_EVENT_MIXED_RECORDS",
"ONLINE_EVENT_PLACED_IN_CONTEST",
"ONLINE_EVENT_MADE_POFFINS",
"ONLINE_EVENT_GOT_POKEMON_GTS",
"ONLINE_EVENT_BATTLE_ROOM",
"ONLINE_EVENT_SPIN_TRADE",
"ONLINE_EVENT_WATCHED_BATTLE_VIDEOS",
"ONLINE_EVENT_CHECKED_RANKINGS",
"ONLINE_EVENT_CHECKED_DRESS_UP_DATA",
"ONLINE_EVENT_CHECKED_BOX_DATA",
"ONLINE_EVENT_CHATTED_IN_PLAZA",
"ONLINE_EVENT_GOT_TAP_TOY",
"ONLINE_EVENT_PLAZA_MINIGAME",
"ONLINE_EVENT_PLAYED_WITH_FOOTPRINT_STAMP",
"ONLINE_EVENT_VIEWED_PLAZA_VISITOR_PROFILES",
"ONLINE_EVENT_READ_PLAZA_NEWS",
"ONLINE_EVENT_JOINED_PARADE",
"ONLINE_EVENT_WIFI_CLUB"
]
}
}
}

View File

@ -7,6 +7,7 @@ consts_manifest_basenames = [
'game_records',
'gender',
'items',
'journal',
'map',
'movement',
'moves',

View File

@ -0,0 +1,18 @@
#ifndef POKEPLATINUM_JOURNAL_CONTROLLER_H
#define POKEPLATINUM_JOURNAL_CONTROLLER_H
#include "overlay_manager.h"
enum JournalState {
JOURNAL_STATE_OPEN = 0,
JOURNAL_STATE_HANDLE_INPUT,
JOURNAL_STATE_TURN_LEFT,
JOURNAL_STATE_TURN_RIGHT,
JOURNAL_STATE_CLOSE,
};
int JournalController_Init(OverlayManager *ovyManager, int *state);
int JournalController_Main(OverlayManager *ovyManager, int *state);
int JournalController_Exit(OverlayManager *ovyManager, int *state);
#endif // POKEPLATINUM_JOURNAL_CONTROLLER_H

View File

@ -0,0 +1,10 @@
#ifndef POKEPLATINUM_JOURNAL_PRINTER_H
#define POKEPLATINUM_JOURNAL_PRINTER_H
#include "applications/journal_display/struct_ov81_021D1610.h"
void ov81_021D1610(UnkStruct_ov81_021D1610 *param0);
void ov81_021D1634(UnkStruct_ov81_021D1610 *param0);
void ov81_021D164C(UnkStruct_ov81_021D1610 *param0, u32 param1);
#endif // POKEPLATINUM_JOURNAL_PRINTER_H

View File

@ -10,26 +10,26 @@
#include "trainer_info.h"
typedef struct {
BgConfig *unk_00;
Window unk_04[4];
JournalEntry *unk_44;
TrainerInfo *unk_48;
SaveData *unk_4C;
MessageLoader *unk_50;
StringTemplate *unk_54;
Strbuf *unk_58;
BgConfig *bgConfig;
Window window[4];
JournalEntry *journalEntry;
TrainerInfo *trainerInfo;
SaveData *saveData;
MessageLoader *loader;
StringTemplate *template;
Strbuf *strbuf;
u16 unk_5C[1024];
u16 unk_85C[1024];
s8 unk_105C;
s8 page;
u8 padding_105D;
s8 unk_105E;
s8 state;
s8 unk_105F;
s8 unk_1060;
u8 unk_1061;
u8 unk_1062;
u8 unk_1063;
u8 unk_1064;
u8 unk_1065[3];
u8 bgLayer1;
u8 bgLayer2;
u8 bgLayer3;
u8 bgLayer4;
u8 unused[3];
} UnkStruct_ov81_021D1610;
#endif // POKEPLATINUM_STRUCT_OV81_021D1610_H

View File

@ -24,6 +24,8 @@ enum HeapId {
HEAP_ID_OPTIONS_MENU = 38,
HEAP_ID_JOURNAL = 42,
HEAP_ID_CHOOSE_STARTER_APP = 47,
HEAP_ID_GAME_START = 77,

View File

@ -8,15 +8,18 @@
#define POKEMON_CAUGHT 1
#define POKEMON_DEFEATED 2
#define MAX_JOURNAL_LOCATION_EVENTS 4
#define MAX_JOURNAL_ONLINE_EVENTS 2
enum JournalDataType {
JOURNAL_TITLE = 0,
JOURNAL_UNK_04,
JOURNAL_LOCATION,
JOURNAL_MON,
JOURNAL_TRAINER,
JOURNAL_UNK_1C,
JOURNAL_ONLINE_EVENT,
};
typedef struct {
typedef struct JournalEntryTitle {
u32 year : 7;
u32 month : 4;
u32 week : 3;
@ -24,7 +27,15 @@ typedef struct {
u32 mapID : 13;
} JournalEntryTitle;
typedef struct {
typedef struct JournalEntryLocationEvent {
u8 eventType;
u8 padding_01;
u16 locationID; // can be a mapID, a mapLabelTextID, or an index refering to a gym
u16 trainerID;
u16 item;
} JournalEntryLocationEvent;
typedef struct JournalEntryMon {
u8 battleResult;
u8 stringVariant : 2;
u8 timeOfDay : 4;
@ -32,18 +43,29 @@ typedef struct {
u16 species;
} JournalEntryMon;
typedef struct {
u16 unk_00_0 : 1;
typedef struct JournalEntryTrainer {
u16 standard : 1;
u16 trainerID : 15;
u16 mapID;
} JournalEntryTrainer;
typedef struct {
typedef struct JournalEntryOnlineEvent {
u8 eventType;
u8 result : 4; // can be a battle result, the placement in a contest, or an index refering to a plaza minigame
u8 unused1 : 1;
u8 unused2 : 1;
u8 unused3 : 2;
u16 playerName1[TRAINER_NAME_LEN + 1];
u16 playerName2[TRAINER_NAME_LEN + 1];
u16 pokemonName[12];
} JournalEntryOnlineEvent;
typedef struct JournalEntry {
JournalEntryTitle title;
u32 unk_04[4];
u32 locationEvents[MAX_JOURNAL_LOCATION_EVENTS];
JournalEntryMon mon;
JournalEntryTrainer trainer;
u8 unk_1C[2][42];
u8 onlineEvents[MAX_JOURNAL_ONLINE_EVENTS][42];
} JournalEntry;
int Journal_SaveSize(void);
@ -53,51 +75,51 @@ JournalEntry *Journal_GetSavedPage(JournalEntry *journalEntry, BOOL journalAcqui
BOOL Journal_CheckOpenOnContinue(JournalEntry *journalEntry, BOOL journalAcquired);
void JournalEntry_SaveData(JournalEntry *journalEntry, void *data, u8 dataType);
void *JournalEntry_CreateTitle(u16 mapID, u32 heapID);
void *sub_0202BCE4(u32 heapID);
void *sub_0202BCF0(u32 heapID);
void *sub_0202BCFC(u32 heapID);
void *sub_0202BD08(u32 heapID);
void *sub_0202BD14(u32 heapID);
void *sub_0202BD20(u32 heapID);
void *sub_0202BD2C(u32 heapID);
void *sub_0202BD38(u32 heapID);
void *sub_0202BD44(u16 defeatedGym, u32 heapID);
void *sub_0202BD58(u16 trainerType, u16 trainerID, u32 heapID);
void *sub_0202BD70(u16 trainerID, u32 heapID);
void *sub_0202BD84(u16 trainerID, u32 heapID);
void *sub_0202BD98(u16 mapID, u32 heapID);
void *sub_0202BDAC(u16 mapLabelTextID, u32 heapID);
void *sub_0202BDC0(u16 mapLabelTextID, u32 heapID);
void *sub_0202BDD4(u32 heapID);
void *sub_0202BDE0(u32 heapID);
void *sub_0202BDEC(u16 param0, u32 heapID);
void *sub_0202BE00(u8 param0, u16 param1, u32 heapID);
void *sub_0202BE14(u32 heapID);
void *sub_0202BE20(u32 heapID);
void *sub_0202BE2C(u32 heapID, u32 param1);
void *JournalEntry_CreateMonCaught(const PlayTime *playTime, u16 species, u8 gender, u8 timeOfDay, u32 heapID);
void *JournalEntry_CreateMonDefeated(const PlayTime *playTime, u16 species, u8 gender, u8 timeOfDay, u32 heapID);
void *JournalEntry_InitTrainer(u16 mapID, u16 trainerID, u32 heapID);
void *sub_0202BFCC(u16 *param0, u8 param1, u8 param2, u32 heapID);
void *sub_0202C00C(u16 *param0, u8 param1, u8 param2, u32 heapID);
void *sub_0202C04C(u16 *param0, u16 *param1, u8 param2, u8 param3, u8 param4, u32 heapID);
void *sub_0202C0AC(u16 *param0, u8 param1, u8 param2, u32 heapID);
void *sub_0202C0EC(u16 *trainerName, u8 trainerGender, u32 heapID);
void *sub_0202C11C(u16 *param0, u8 param1, u16 *param2, u8 param3, u32 heapID);
void *sub_0202C168(u32 heapID);
void *sub_0202C174(u16 *param0, u8 param1, u8 param2, u32 heapID);
void *sub_0202C1B4(u32 heapID);
void *sub_0202C1C0(u8 param0, u32 heapID);
void *sub_0202C1E0(u32 heapID);
void *sub_0202C1EC(u16 *param0, u8 param1, u16 *param2, u8 param3, u32 heapID);
void *sub_0202C238(u32 heapID);
void *sub_0202C244(u32 heapID, u32 param1);
void *sub_0202C250(const u16 *param0, u8 param1, u32 heapID, u32 param3);
void *sub_0202C280(int param0, u32 heapID, u32 param2);
void *JournalEntry_CreateEventRestedAtHome(u32 heapID);
void *JournalEntry_CreateEventLeftResearchLab(u32 heapID);
void *JournalEntry_CreateEventUsedPCBox(u32 heapID);
void *JournalEntry_CreateEventShoppedAtMart(u32 heapID);
void *JournalEntry_CreateEventLotsOfShopping(u32 heapID);
void *JournalEntry_CreateEventSoldALittle(u32 heapID);
void *JournalEntry_CreateEventSoldALot(u32 heapID);
void *JournalEntry_CreateEventBusinessAtMart(u32 heapID);
void *JournalEntry_CreateEventGymTooTough(u16 defeatedGym, u32 heapID);
void *JournalEntry_CreateEventGymLeader(u16 trainerType, u16 trainerID, u32 heapID);
void *JournalEntry_CreateEventEliteFour(u16 trainerID, u32 heapID);
void *JournalEntry_CreateEventChampion(u16 trainerID, u32 heapID);
void *JournalEntry_CreateEventArrivedInLocation(u16 mapID, u32 heapID);
void *JournalEntry_CreateEventLeftCave(u16 mapLabelTextID, u32 heapID);
void *JournalEntry_CreateEventLeftBuilding(u16 mapLabelTextID, u32 heapID);
void *JournalEntry_CreateEventGameCorner(u32 heapID);
void *JournalEntry_CreateEventSafariGame(u32 heapID);
void *JournalEntry_CreateEventObtainedItem(u16 item, u32 heapID);
void *JournalEntry_CreateEventUsedMove(u8 moveIndex, u16 mapID, u32 heapID);
void *JournalEntry_CreateEventDugUnderground(u32 heapID);
void *JournalEntry_CreateEventBuiltSecretBase(u32 heapID);
void *JournalEntry_CreateEventBattleFacility(u32 heapID, u32 eventType);
void *JournalEntry_CreateEventMonCaught(const PlayTime *playTime, u16 species, u8 gender, u8 timeOfDay, u32 heapID);
void *JournalEntry_CreateEventMonDefeated(const PlayTime *playTime, u16 species, u8 gender, u8 timeOfDay, u32 heapID);
void *JournalEntry_CreateEventStandardTrainer(u16 mapID, u16 trainerID, u32 heapID);
void *JournalEntry_CreateEventSingleBattle(u16 *opponentName, u8 opponentGender, u8 battleResult, u32 heapID);
void *JournalEntry_CreateEventDoubleBattle(u16 *opponentName, u8 opponentGender, u8 battleResult, u32 heapID);
void *JournalEntry_CreateEventMultiBattle(u16 *opponentName1, u16 *opponentName2, u8 opponentGender1, u8 opponentGender2, u8 battleResult, u32 heapID);
void *JournalEntry_CreateEventMixSingleBattle(u16 *opponentName, u8 opponentGender, u8 battleResult, u32 heapID);
void *JournalEntry_CreateEventGreetedInUnionRoom(u16 *trainerName, u8 trainerGender, u32 heapID);
void *JournalEntry_CreateEventGotPokemonFromTrade(u16 *otName, u8 otGender, u16 *pokemonName, u8 pokemonGender, u32 heapID);
void *JournalEntry_CreateEventDrewPictures(u32 heapID);
void *JournalEntry_CreateEventUnionBattle(u16 *opponentName, u8 opponentGender, u8 battleResult, u32 heapID);
void *JournalEntry_CreateEventMixedRecords(u32 heapID);
void *JournalEntry_CreateEventPlacedInContest(u8 placement, u32 heapID);
void *JournalEntry_CreateEventMadePoffins(u32 heapID);
void *JournalEntry_CreateEventGotPokemonGTS(u16 *otName, u8 otGender, u16 *pokemonName, u8 pokemonGender, u32 heapID);
void *JournalEntry_CreateEventBattleRoom(u32 heapID);
void *JournalEntry_CreateEventMisc(u32 heapID, u32 eventType);
void *JournalEntry_CreateEventInteraction(const u16 *playerName, u8 playerGender, u32 heapID, u32 eventType);
void *JournalEntry_CreateEventPlazaMinigame(int minigame, u32 heapID, u32 eventType);
void JournalEntry_GetData(JournalEntry *journalEntry, void *dest, u8 dataType, u8 page);
void sub_0202C5C4(TrainerInfo *trainerInfo, JournalEntry *journalEntry, u32 currMapID, u32 prevMapID, u32 heapID);
u32 sub_0202C6A4(u32 param0);
void sub_0202C704(JournalEntry *journalEntry, u32 mapID, u32 heapID);
void sub_0202C720(JournalEntry *journalEntry, u16 mapID, u16 trainerID, u32 heapID);
void JournalEntry_CreateAndSaveEventMapTransition(TrainerInfo *trainerInfo, JournalEntry *journalEntry, u32 currMapID, u32 prevMapID, u32 heapID);
u32 sub_0202C6A4(u32 mapLabelTextID);
void JournalEntry_CreateAndSaveEventArrivedInLocation(JournalEntry *journalEntry, u32 mapID, u32 heapID);
void JournalEntry_CreateAndSaveEventTrainer(JournalEntry *journalEntry, u16 mapID, u16 trainerID, u32 heapID);
#endif // POKEPLATINUM_JOURNAL_H

View File

@ -1,10 +0,0 @@
#ifndef POKEPLATINUM_OV81_021D0D80_H
#define POKEPLATINUM_OV81_021D0D80_H
#include "overlay_manager.h"
int ov81_021D0D80(OverlayManager *param0, int *param1);
int ov81_021D0E70(OverlayManager *param0, int *param1);
int ov81_021D0EC4(OverlayManager *param0, int *param1);
#endif // POKEPLATINUM_OV81_021D0D80_H

View File

@ -1,10 +0,0 @@
#ifndef POKEPLATINUM_OV81_021D1610_H
#define POKEPLATINUM_OV81_021D1610_H
#include "overlay081/struct_ov81_021D1610.h"
void ov81_021D1610(UnkStruct_ov81_021D1610 *param0);
void ov81_021D1634(UnkStruct_ov81_021D1610 *param0);
void ov81_021D164C(UnkStruct_ov81_021D1610 *param0, u32 param1);
#endif // POKEPLATINUM_OV81_021D1610_H

View File

@ -1,12 +0,0 @@
#ifndef POKEPLATINUM_STRUCT_0202BCC8_H
#define POKEPLATINUM_STRUCT_0202BCC8_H
typedef struct {
u8 unk_00;
u8 padding_01;
u16 unk_02;
u16 unk_04;
u16 unk_06;
} UnkStruct_0202BCC8;
#endif // POKEPLATINUM_STRUCT_0202BCC8_H

View File

@ -1,15 +0,0 @@
#ifndef POKEPLATINUM_STRUCT_0202BFCC_H
#define POKEPLATINUM_STRUCT_0202BFCC_H
typedef struct {
u8 unk_00;
u8 unk_01_0 : 4;
u8 unk_01_4 : 1;
u8 unk_01_5 : 1;
u8 unk_01_6 : 2;
u16 unk_02[8];
u16 unk_12[8];
u16 unk_22[12];
} UnkStruct_0202BFCC;
#endif // POKEPLATINUM_STRUCT_0202BFCC_H

View File

@ -1321,11 +1321,11 @@ Overlay overlay80
Object main.nef.p/src_overlay080_ov80_021D2AF4.c.o
}
Overlay overlay81
Overlay journal_display
{
After main
Object main.nef.p/src_overlay081_ov81_021D0D80.c.o
Object main.nef.p/src_overlay081_ov81_021D1610.c.o
Object main.nef.p/src_applications_journal_display_journal_controller.c.o
Object main.nef.p/src_applications_journal_display_journal_printer.c.o
}
Overlay overlay82

View File

@ -80,7 +80,7 @@ d7a304050d0049809b21cf75937e4d14aaf858c5 *overlay77.sbin
8571cf57764db093c9ce385586894659297b783e *choose_starter.sbin
b8c85f32459d20b3a6cfde5a1e349215dd0157a0 *overlay79.sbin
0ba83af5f2cafb311dbc552d77cb1b6b4f45d34e *overlay80.sbin
1982ed52ba9469dd625dc5951277fd1c001b26af *overlay81.sbin
1982ed52ba9469dd625dc5951277fd1c001b26af *journal_display.sbin
429a576c3e5a24f25167051957b22f194d2af781 *overlay82.sbin
1904a30bcfb722856130ab7b3d0e79fd0070520d *overlay83.sbin
8bd6a805631e2d661f9d5889e568a72e60f93a04 *overlay84.sbin

View File

@ -287,7 +287,7 @@ _04DC:
CallIfEq 0x40BE, 1, _05B9
CallIfEq 0x40BE, 2, _05CD
IncrementGameRecord RECORD_UNK_058
ScrCmd_1CD 40, 0, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_BATTLE_ARCADE, 0, 0, 0, 0
ScrCmd_1F8
ScrCmd_2C4 15
CallIfEq 0x40BE, 2, _0545

View File

@ -284,7 +284,7 @@ _04D0:
CallIfEq 0x40BD, 1, _05AD
CallIfEq 0x40BD, 2, _05C1
IncrementGameRecord RECORD_UNK_058
ScrCmd_1CD 38, 0, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_BATTLE_CASTLE, 0, 0, 0, 0
ScrCmd_1F8
ScrCmd_2C4 11
CallIfEq 0x40BD, 2, _0539

View File

@ -236,7 +236,7 @@ _03C1:
CallIfEq 0x40B8, 1, _049E
CallIfEq 0x40B8, 2, _04B2
IncrementGameRecord RECORD_UNK_058
ScrCmd_1CD 37, 0, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_BATTLE_FACTORY, 0, 0, 0, 0
ScrCmd_1F8
ScrCmd_2C4 3
CallIfEq 0x40B8, 2, _042A

View File

@ -403,7 +403,7 @@ _06C3:
CallIfEq 0x40BB, 1, _07A0
CallIfEq 0x40BB, 2, _07B4
IncrementGameRecord RECORD_UNK_058
ScrCmd_1CD 39, 0, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_BATTLE_HALL, 0, 0, 0, 0
ScrCmd_1F8
ScrCmd_2C4 9
CallIfEq 0x40BB, 2, _072C

View File

@ -445,7 +445,7 @@ _0734:
_0746:
IncrementGameRecord RECORD_UNK_058
ScrCmd_1CD 36, 0, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_BATTLE_TOWER, 0, 0, 0, 0
FadeScreen 6, 1, 0, 0
WaitFadeScreen
Warp MAP_HEADER_BATTLE_TOWER_ELEVATOR, 0, 3, 6, 0

View File

@ -18,7 +18,7 @@ _0016:
FacePlayer
CheckBadgeAcquired BADGE_ID_MINE, 0x800C
GoToIfEq 0x800C, 1, _0107
ScrCmd_1CD 9, 35, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_GYM_WAS_TOO_TOUGH, 35, 0, 0, 0
Message 0
CloseMessage
StartTrainerBattle trainer_leader_byron
@ -38,7 +38,7 @@ _0016:
SetTrainerFlag trainer_ace_trainer_breanna
SetTrainerFlag trainer_black_belt_ricky
SetTrainerFlag trainer_worker_gerardo
ScrCmd_1CD 10, 35, trainer_leader_byron, 0, 0
CreateJournalEvent LOCATION_EVENT_BEAT_GYM_LEADER, 35, trainer_leader_byron, 0, 0
ClearFlag 0x1B2
ClearFlag 0x2CC
ClearFlag 0x1B8

View File

@ -64,7 +64,7 @@ _0094:
FacePlayer
CheckBadgeAcquired BADGE_ID_FOREST, 0x800C
GoToIfEq 0x800C, 1, _0161
ScrCmd_1CD 9, 67, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_GYM_WAS_TOO_TOUGH, 67, 0, 0, 0
Message 0
CloseMessage
StartTrainerBattle trainer_leader_gardenia
@ -82,7 +82,7 @@ _0094:
SetTrainerFlag trainer_lass_caroline
SetTrainerFlag trainer_beauty_lindsay
ClearFlag 0x1FC
ScrCmd_1CD 10, 67, trainer_leader_gardenia, 0, 0
CreateJournalEvent LOCATION_EVENT_BEAT_GYM_LEADER, 67, trainer_leader_gardenia, 0, 0
Message 3
GoTo _0177
End

View File

@ -81,7 +81,7 @@ _00EA:
GoToIfEq 0x800C, 0, _0133
FadeScreen 6, 1, 0, 0
WaitFadeScreen
ScrCmd_1CD 16, 0, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_GAME_CORNER, 0, 0, 0, 0
ScrCmd_267 0x8004
ScrCmd_0A1
FadeScreen 6, 1, 1, 0

View File

@ -42,7 +42,7 @@ _0086:
_0096:
CheckBadgeAcquired BADGE_ID_RELIC, 0x800C
GoToIfEq 0x800C, 1, _0173
ScrCmd_1CD 9, 100, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_GYM_WAS_TOO_TOUGH, 100, 0, 0, 0
Message 0
CloseMessage
StartTrainerBattle trainer_leader_fantina
@ -63,7 +63,7 @@ _0096:
SetTrainerFlag trainer_school_kid_chance
SetTrainerFlag trainer_school_kid_mackenzie
SetTrainerFlag trainer_youngster_donny
ScrCmd_1CD 10, 100, trainer_leader_fantina, 0, 0
CreateJournalEvent LOCATION_EVENT_BEAT_GYM_LEADER, 100, trainer_leader_fantina, 0, 0
SetVar 0x407B, 1
SetFlag 0x206
ClearFlag 0x207

View File

@ -55,7 +55,7 @@ _00AB:
_00BB:
CheckBadgeAcquired BADGE_ID_RELIC, 0x800C
GoToIfEq 0x800C, 1, _01A0
ScrCmd_1CD 9, 91, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_GYM_WAS_TOO_TOUGH, 91, 0, 0, 0
Message 0
CloseMessage
SetFlag 142
@ -78,7 +78,7 @@ _00BB:
SetTrainerFlag trainer_school_kid_chance
SetTrainerFlag trainer_school_kid_mackenzie
SetTrainerFlag trainer_youngster_donny
ScrCmd_1CD 10, 91, trainer_leader_fantina, 0, 0
CreateJournalEvent LOCATION_EVENT_BEAT_GYM_LEADER, 91, trainer_leader_fantina, 0, 0
SetVar 0x407B, 1
SetFlag 0x206
ClearFlag 0x207

View File

@ -13,7 +13,7 @@ _000E:
FacePlayer
CheckBadgeAcquired BADGE_ID_COAL, 0x800C
GoToIfEq 0x800C, 1, _0103
ScrCmd_1CD 9, 47, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_GYM_WAS_TOO_TOUGH, 47, 0, 0, 0
Message 0
CloseMessage
StartTrainerBattle trainer_leader_roark
@ -34,7 +34,7 @@ _000E:
SetVar 0x40F0, 1
SetVar 0x4076, 1
SetVar 0x4079, 2
ScrCmd_1CD 10, 47, trainer_leader_roark, 0, 0
CreateJournalEvent LOCATION_EVENT_BEAT_GYM_LEADER, 47, trainer_leader_roark, 0, 0
SetVar 0x4077, 3
ClearFlag 0x17A
ClearFlag 0x19D

View File

@ -45,7 +45,7 @@ _0076:
FacePlayer
CheckBadgeAcquired BADGE_ID_FEN, 0x800C
GoToIfEq 0x800C, 1, _0155
ScrCmd_1CD 9, 122, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_GYM_WAS_TOO_TOUGH, 122, 0, 0, 0
Message 0
CloseMessage
StartTrainerBattle trainer_leader_wake
@ -67,7 +67,7 @@ _0076:
SetVar 0x407C, 3
SetFlag 0x20C
SetFlag 0x156
ScrCmd_1CD 10, 122, trainer_leader_wake, 0, 0
CreateJournalEvent LOCATION_EVENT_BEAT_GYM_LEADER, 122, trainer_leader_wake, 0, 0
Message 3
GoTo _010D
End

View File

@ -38,11 +38,11 @@ _0082:
Return
_008A:
ScrCmd_1CD 11, trainer_elite_four_aaron, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_BEAT_ELITE_FOUR_MEMBER, trainer_elite_four_aaron, 0, 0, 0
Return
_0098:
ScrCmd_1CD 11, trainer_elite_four_aaron_rematch, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_BEAT_ELITE_FOUR_MEMBER, trainer_elite_four_aaron_rematch, 0, 0, 0
Return
_00A6:

View File

@ -38,11 +38,11 @@ _0082:
Return
_008A:
ScrCmd_1CD 11, trainer_elite_four_bertha, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_BEAT_ELITE_FOUR_MEMBER, trainer_elite_four_bertha, 0, 0, 0
Return
_0098:
ScrCmd_1CD 11, trainer_elite_four_bertha_rematch, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_BEAT_ELITE_FOUR_MEMBER, trainer_elite_four_bertha_rematch, 0, 0, 0
Return
_00A6:

View File

@ -67,11 +67,11 @@ _00FD:
Return
_0105:
ScrCmd_1CD 12, trainer_champion_cynthia, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_BEAT_CHAMPION, trainer_champion_cynthia, 0, 0, 0
Return
_0113:
ScrCmd_1CD 12, trainer_champion_cynthia_rematch, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_BEAT_CHAMPION, trainer_champion_cynthia_rematch, 0, 0, 0
Return
_0121:

View File

@ -40,11 +40,11 @@ _00A8:
Return
_00B0:
ScrCmd_1CD 11, trainer_elite_four_flint, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_BEAT_ELITE_FOUR_MEMBER, trainer_elite_four_flint, 0, 0, 0
Return
_00BE:
ScrCmd_1CD 11, trainer_elite_four_flint_rematch, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_BEAT_ELITE_FOUR_MEMBER, trainer_elite_four_flint_rematch, 0, 0, 0
Return
_00CC:

View File

@ -38,11 +38,11 @@ _0082:
Return
_008A:
ScrCmd_1CD 11, trainer_elite_four_lucian, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_BEAT_ELITE_FOUR_MEMBER, trainer_elite_four_lucian, 0, 0, 0
Return
_0098:
ScrCmd_1CD 11, trainer_elite_four_lucian_rematch, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_BEAT_ELITE_FOUR_MEMBER, trainer_elite_four_lucian_rematch, 0, 0, 0
Return
_00A6:

View File

@ -22,7 +22,7 @@ _0025:
FacePlayer
CheckBadgeAcquired BADGE_ID_ICICLE, 0x800C
GoToIfEq 0x800C, 1, _00F8
ScrCmd_1CD 9, 167, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_GYM_WAS_TOO_TOUGH, 167, 0, 0, 0
Message 0
CloseMessage
StartTrainerBattle trainer_leader_candice
@ -41,7 +41,7 @@ _0025:
SetTrainerFlag trainer_ace_trainer_savannah
SetTrainerFlag trainer_ace_trainer_alicia
SetTrainerFlag trainer_ace_trainer_brenna
ScrCmd_1CD 10, 167, trainer_leader_candice, 0, 0
CreateJournalEvent LOCATION_EVENT_BEAT_GYM_LEADER, 167, trainer_leader_candice, 0, 0
SetFlag 0x1BF
Message 3
GoTo _00B0

View File

@ -27,7 +27,7 @@ _0027:
FacePlayer
CheckBadgeAcquired BADGE_ID_BEACON, 0x800C
GoToIfEq 0x800C, 1, _0104
ScrCmd_1CD 9, 156, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_GYM_WAS_TOO_TOUGH, 156, 0, 0, 0
Message 0
CloseMessage
StartTrainerBattle trainer_leader_volkner
@ -50,7 +50,7 @@ _0027:
SetTrainerFlag trainer_school_kid_tiera
SetVar 0x407E, 2
// BUG: trainer_leader_roark should be trainer_leader_volkner
ScrCmd_1CD 10, 156, trainer_leader_roark, 0, 0
CreateJournalEvent LOCATION_EVENT_BEAT_GYM_LEADER, 156, trainer_leader_roark, 0, 0
Message 3
GoTo _00BC

View File

@ -2389,7 +2389,7 @@ _204B:
End
_205E:
ScrCmd_1CD 18, 0x8004, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_ITEM_WAS_OBTAINED, 0x8004, 0, 0, 0
Message 9
WaitABXPadPress
SetVar 0x800C, 1

View File

@ -55,7 +55,7 @@ _00AE:
WaitTime 7, 0x800C
ScrCmd_065 0x800D
ScrCmd_201 0x8004
ScrCmd_1CD 19, 0x8004, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_USED_CUT, 0x8004, 0, 0, 0
_00E8:
WaitTime 1, 0x800C
GoToIfEq 0x8005, 0, _00E8
@ -72,7 +72,7 @@ _0103:
WaitTime 7, 0x800C
ScrCmd_065 0x800D
ScrCmd_201 0x8004
ScrCmd_1CD 19, 0x8004, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_USED_CUT, 0x8004, 0, 0, 0
_0133:
WaitTime 1, 0x800C
GoToIfEq 0x8005, 0, _0133
@ -156,7 +156,7 @@ _0284:
WaitTime 10, 0x800C
ScrCmd_065 0x800D
ScrCmd_201 0x8004
ScrCmd_1CD 24, 0x8004, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_USED_ROCK_SMASH, 0x8004, 0, 0, 0
_02B2:
WaitTime 1, 0x800C
GoToIfEq 0x8005, 0, _02B2
@ -173,7 +173,7 @@ _02CD:
WaitTime 10, 0x800C
ScrCmd_065 0x800D
ScrCmd_201 0x8004
ScrCmd_1CD 24, 0x8004, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_USED_ROCK_SMASH, 0x8004, 0, 0, 0
_02FD:
WaitTime 1, 0x800C
GoToIfEq 0x8005, 0, _02FD
@ -216,7 +216,7 @@ _0381:
WaitABXPadPress
CloseMessage
ScrCmd_201 0x8004
ScrCmd_1CD 22, 0x8004, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_USED_STRENGTH, 0x8004, 0, 0, 0
GoTo _066D
End
@ -240,7 +240,7 @@ _03CC:
WaitABXPadPress
CloseMessage
ScrCmd_201 0x8004
ScrCmd_1CD 22, 0x8004, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_USED_STRENGTH, 0x8004, 0, 0, 0
GoTo _0675
_040E:
@ -281,7 +281,7 @@ _0487:
CloseMessage
ScrCmd_0BF 0x8004
ScrCmd_201 0x8004
ScrCmd_1CD 26, 0x8004, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_USED_ROCK_CLIMB, 0x8004, 0, 0, 0
GoTo _0671
End
@ -292,7 +292,7 @@ _04B9:
CloseMessage
ScrCmd_0BF 0x8000
ScrCmd_201 0x8004
ScrCmd_1CD 26, 0x8004, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_USED_ROCK_CLIMB, 0x8004, 0, 0, 0
ReleaseAll
End
@ -322,7 +322,7 @@ _051F:
CloseMessage
ScrCmd_0C0 0x8004
ScrCmd_201 0x8004
ScrCmd_1CD 21, 0x8004, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_USED_SURF, 0x8004, 0, 0, 0
GoTo _0671
End
@ -335,7 +335,7 @@ _0551:
ScrCmd_0C0 0x8000
ScrCmd_062 0xFF
ScrCmd_201 0x8004
ScrCmd_1CD 21, 0x8004, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_USED_SURF, 0x8004, 0, 0, 0
ReleaseAll
End
@ -366,7 +366,7 @@ _05C3:
CloseMessage
ScrCmd_0C5 0x8004
ScrCmd_201 0x8004
ScrCmd_1CD 23, 0x8004, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_USED_DEFOG, 0x8004, 0, 0, 0
ScrCmd_201 0x8004
CallIfEq 0x8004, 0x169, _0606
GoTo _0671
@ -386,7 +386,7 @@ _060C:
PlayFanfare SEQ_SE_DP_FBRADE
ScrCmd_0C4
ScrCmd_201 0x8004
ScrCmd_1CD 23, 0x8004, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_USED_DEFOG, 0x8004, 0, 0, 0
ScrCmd_201 0x8004
CallIfEq 0x8004, 0x169, _0606
GoTo _0675
@ -443,7 +443,7 @@ _06D2:
CloseMessage
ScrCmd_0C1 0x8004
ScrCmd_201 0x8004
ScrCmd_1CD 25, 0x8004, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_USED_WATERFALL, 0x8004, 0, 0, 0
GoTo _0671
End
@ -456,7 +456,7 @@ _0704:
ScrCmd_0C1 0x8000
ScrCmd_062 0xFF
ScrCmd_201 0x8004
ScrCmd_1CD 25, 0x8004, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_USED_WATERFALL, 0x8004, 0, 0, 0
ReleaseAll
End

View File

@ -21,7 +21,7 @@ _0022:
FacePlayer
CheckBadgeAcquired BADGE_ID_COBBLE, 0x800C
GoToIfEq 0x800C, 1, _00FF
ScrCmd_1CD 9, 133, 0, 0, 0
CreateJournalEvent LOCATION_EVENT_GYM_WAS_TOO_TOUGH, 133, 0, 0, 0
Message 0
CloseMessage
StartTrainerBattle trainer_leader_maylene
@ -38,7 +38,7 @@ _0022:
SetTrainerFlag trainer_black_belt_darren
SetTrainerFlag trainer_black_belt_rafael
SetTrainerFlag trainer_black_belt_jeffery
ScrCmd_1CD 10, 133, trainer_leader_maylene, 0, 0
CreateJournalEvent LOCATION_EVENT_BEAT_GYM_LEADER, 133, trainer_leader_maylene, 0, 0
SetFlag 0x1A3
ClearFlag 0x1A8
SetVar 0x407D, 1

View File

@ -1,199 +1,199 @@
<?xml version="1.0"?>
<body language="English">
<key value="11837" />
<row id="journal_entries_00000" index="0">
<row id="journal_entries_started_from_location" index="0">
<attribute name="window_context_name">used</attribute>
<language name="English">Started from {STRVAR_1 4, 0, 0}.</language>
</row>
<row id="journal_entries_00001" index="1">
<row id="journal_entries_date" index="1">
<attribute name="window_context_name">used</attribute>
<language name="English">{STRVAR_1 74, 0, 0} {STRVAR_1 51, 1, 0}</language>
</row>
<row id="journal_entries_00002" index="2">
<row id="journal_entries_sunday" index="2">
<attribute name="window_context_name">used</attribute>
<language name="English">Sunday</language>
</row>
<row id="journal_entries_00003" index="3">
<row id="journal_entries_monday" index="3">
<attribute name="window_context_name">used</attribute>
<language name="English">Monday</language>
</row>
<row id="journal_entries_00004" index="4">
<row id="journal_entries_tuesday" index="4">
<attribute name="window_context_name">used</attribute>
<language name="English">Tuesday</language>
</row>
<row id="journal_entries_00005" index="5">
<row id="journal_entries_wednesday" index="5">
<attribute name="window_context_name">used</attribute>
<language name="English">Wednesday</language>
</row>
<row id="journal_entries_00006" index="6">
<row id="journal_entries_thursday" index="6">
<attribute name="window_context_name">used</attribute>
<language name="English">Thursday</language>
</row>
<row id="journal_entries_00007" index="7">
<row id="journal_entries_friday" index="7">
<attribute name="window_context_name">used</attribute>
<language name="English">Friday</language>
</row>
<row id="journal_entries_00008" index="8">
<row id="journal_entries_saturday" index="8">
<attribute name="window_context_name">used</attribute>
<language name="English">Saturday</language>
</row>
<row id="journal_entries_00009" index="9">
<row id="journal_entries_rested_at_home" index="9">
<attribute name="window_context_name">used</attribute>
<language name="English">Rested comfortably at home.</language>
</row>
<row id="journal_entries_00010" index="10">
<row id="journal_entries_left_research_lab" index="10">
<attribute name="window_context_name">used</attribute>
<language name="English">Left the Research Lab.</language>
</row>
<row id="journal_entries_00011" index="11">
<row id="journal_entries_used_pc_box" index="11">
<attribute name="window_context_name">used</attribute>
<language name="English">Used a PC Box.</language>
</row>
<row id="journal_entries_00012" index="12">
<row id="journal_entries_shopped_at_poke_mart" index="12">
<attribute name="window_context_name">used</attribute>
<language name="English">Shopped at a Poké Mart.</language>
</row>
<row id="journal_entries_00013" index="13">
<row id="journal_entries_lots_of_shopping_at_poke_mart" index="13">
<attribute name="window_context_name">used</attribute>
<language name="English">Did lots of shopping at a Poké Mart.</language>
</row>
<row id="journal_entries_00014" index="14">
<row id="journal_entries_sold_a_little_at_poke_mart" index="14">
<attribute name="window_context_name">used</attribute>
<language name="English">Sold a little at a Poké Mart.</language>
</row>
<row id="journal_entries_00015" index="15">
<row id="journal_entries_sold_a_lot_at_poke_mart" index="15">
<attribute name="window_context_name">used</attribute>
<language name="English">Sold a lot at a Poké Mart.</language>
</row>
<row id="journal_entries_00016" index="16">
<row id="journal_entries_did_business_at_poke_mart" index="16">
<attribute name="window_context_name">used</attribute>
<language name="English">Did some business at a Poké Mart.</language>
</row>
<row id="journal_entries_00017" index="17">
<row id="journal_entries_gym_was_too_tough" index="17">
<attribute name="window_context_name">used</attribute>
<language name="English">{STRVAR_1 32, 0, 0} was too tough...</language>
</row>
<row id="journal_entries_00018" index="18">
<row id="journal_entries_beat_locations_gym_leader" index="18">
<attribute name="window_context_name">used</attribute>
<language name="English">Beat {STRVAR_1 32, 0, 0}s {STRVAR_1 67, 1, 0}!</language>
</row>
<row id="journal_entries_00019" index="19">
<row id="journal_entries_beat_elite_four_member" index="19">
<attribute name="window_context_name">used</attribute>
<language name="English">Beat Elite 4 {STRVAR_1 67, 0, 0}!</language>
</row>
<row id="journal_entries_00020" index="20">
<row id="journal_entries_beat_champion" index="20">
<attribute name="window_context_name">used</attribute>
<language name="English">Defeated the Champion, {STRVAR_1 67, 0, 0}!</language>
</row>
<row id="journal_entries_00021" index="21">
<row id="journal_entries_arrived_in_location" index="21">
<attribute name="window_context_name">used</attribute>
<language name="English">Arrived in {STRVAR_1 4, 0, 0}.</language>
</row>
<row id="journal_entries_00022" index="22">
<row id="journal_entries_got_through_location" index="22">
<attribute name="window_context_name">used</attribute>
<language name="English">Got through {STRVAR_1 4, 0, 0}.</language>
</row>
<row id="journal_entries_00023" index="23">
<row id="journal_entries_departed_from_location" index="23">
<attribute name="window_context_name">used</attribute>
<language name="English">Departed from {STRVAR_1 4, 0, 0}.</language>
</row>
<row id="journal_entries_00024" index="24">
<row id="journal_entries_exited_from_location" index="24">
<attribute name="window_context_name">used</attribute>
<language name="English">Exited from {STRVAR_1 4, 0, 0}.</language>
</row>
<row id="journal_entries_00025" index="25">
<row id="journal_entries_played_at_battle_tower" index="25">
<attribute name="window_context_name">used</attribute>
<language name="English">Played at the Battle Tower.</language>
</row>
<row id="journal_entries_00026" index="26">
<row id="journal_entries_played_at_battle_factory" index="26">
<attribute name="window_context_name">used</attribute>
<language name="English">Played at the Battle Factory.</language>
</row>
<row id="journal_entries_00027" index="27">
<row id="journal_entries_played_at_battle_castle" index="27">
<attribute name="window_context_name">used</attribute>
<language name="English">Played at the Battle Castle.</language>
</row>
<row id="journal_entries_00028" index="28">
<row id="journal_entries_played_at_battle_hall" index="28">
<attribute name="window_context_name">used</attribute>
<language name="English">Played at the Battle Hall.</language>
</row>
<row id="journal_entries_00029" index="29">
<row id="journal_entries_played_at_battle_arcade" index="29">
<attribute name="window_context_name">used</attribute>
<language name="English">Played at the Battle Arcade.</language>
</row>
<row id="journal_entries_00030" index="30">
<row id="journal_entries_played_at_game_corner" index="30">
<attribute name="window_context_name">used</attribute>
<language name="English">Had fun at the Game Corner.</language>
</row>
<row id="journal_entries_00031" index="31">
<row id="journal_entries_played_safari_game" index="31">
<attribute name="window_context_name">used</attribute>
<language name="English">Went wild on the Safari Game.</language>
</row>
<row id="journal_entries_00032" index="32">
<row id="journal_entries_dug_underground" index="32">
<attribute name="window_context_name">used</attribute>
<language name="English">Dug for Treasure underground.</language>
</row>
<row id="journal_entries_00033" index="33">
<row id="journal_entries_built_secret_base" index="33">
<attribute name="window_context_name">used</attribute>
<language name="English">Built a Secret Base underground.</language>
</row>
<row id="journal_entries_00034" index="34">
<row id="journal_entries_item_was_obtained" index="34">
<attribute name="window_context_name">used</attribute>
<language name="English">{STRVAR_1 66, 0, 0} was obtained.</language>
</row>
<row id="journal_entries_00035" index="35">
<row id="journal_entries_used_cut_at_location" index="35">
<attribute name="window_context_name">used</attribute>
<language name="English">Used Cut at {STRVAR_1 4, 0, 0}.</language>
</row>
<row id="journal_entries_00036" index="36">
<row id="journal_entries_flew_to_location" index="36">
<attribute name="window_context_name">used</attribute>
<language name="English">Flew to {STRVAR_1 4, 0, 0}.</language>
</row>
<row id="journal_entries_00037" index="37">
<row id="journal_entries_used_surf_at_location" index="37">
<attribute name="window_context_name">used</attribute>
<language name="English">Used Surf at {STRVAR_1 4, 0, 0}.</language>
</row>
<row id="journal_entries_00038" index="38">
<row id="journal_entries_used_strength_at_location" index="38">
<attribute name="window_context_name">used</attribute>
<language name="English">Used Strength at {STRVAR_1 4, 0, 0}.</language>
</row>
<row id="journal_entries_00039" index="39">
<row id="journal_entries_used_flash_at_location" index="39">
<attribute name="window_context_name">used</attribute>
<language name="English">Used Flash at {STRVAR_1 4, 0, 0}.</language>
</row>
<row id="journal_entries_00040" index="40">
<row id="journal_entries_used_rock_smash_at_location" index="40">
<attribute name="window_context_name">used</attribute>
<language name="English">Used Rock Smash at {STRVAR_1 4, 0, 0}.</language>
</row>
<row id="journal_entries_00041" index="41">
<row id="journal_entries_used_waterfall_at_location" index="41">
<attribute name="window_context_name">used</attribute>
<language name="English">Used Waterfall at {STRVAR_1 4, 0, 0}.</language>
</row>
<row id="journal_entries_00042" index="42">
<row id="journal_entries_used_rock_climb_at_location" index="42">
<attribute name="window_context_name">used</attribute>
<language name="English">Used Rock Climb at {STRVAR_1 4, 0, 0}.</language>
</row>
<row id="journal_entries_00043" index="43">
<row id="journal_entries_used_defog_at_location" index="43">
<attribute name="window_context_name">used</attribute>
<language name="English">Used Defog at {STRVAR_1 4, 0, 0}.</language>
</row>
<row id="journal_entries_00044" index="44">
<row id="journal_entries_used_dig_at_location" index="44">
<attribute name="window_context_name">used</attribute>
<language name="English">Used Dig at {STRVAR_1 4, 0, 0}.</language>
</row>
<row id="journal_entries_00045" index="45">
<row id="journal_entries_lured_pokemon" index="45">
<attribute name="window_context_name">used</attribute>
<language name="English">Lured Pokémon with a sweet aroma.</language>
</row>
<row id="journal_entries_00046" index="46">
<row id="journal_entries_warped_to_location" index="46">
<attribute name="window_context_name">used</attribute>
<language name="English">Warped to {STRVAR_1 4, 0, 0}.</language>
</row>
<row id="journal_entries_00047" index="47">
<row id="journal_entries_used_softboiled" index="47">
<attribute name="window_context_name">used</attribute>
<language name="English">Shared HP using Softboiled.</language>
</row>
<row id="journal_entries_00048" index="48">
<row id="journal_entries_used_milk_drink" index="48">
<attribute name="window_context_name">used</attribute>
<language name="English">Shared HP using Milk Drink.</language>
</row>
@ -229,187 +229,187 @@
<attribute name="window_context_name">used</attribute>
<language name="English">Defeated a female {STRVAR_1 69, 0, 0}.</language>
</row>
<row id="journal_entries_00057" index="57">
<row id="journal_entries_battled_trainer_at_location" index="57">
<attribute name="window_context_name">used</attribute>
<language name="English">Battled {STRVAR_1 67, 1, 0} at {STRVAR_1 70, 0, 0}.</language>
</row>
<row id="journal_entries_00058" index="58">
<row id="journal_entries_beat_trainer_at_location" index="58">
<attribute name="window_context_name">used</attribute>
<language name="English">Beat {STRVAR_1 67, 1, 0} at {STRVAR_1 71, 0, 0}.</language>
</row>
<row id="journal_entries_00059" index="59">
<row id="journal_entries_beat_trainer_at_location_2" index="59">
<attribute name="window_context_name">used</attribute>
<language name="English">Beat {STRVAR_1 67, 1, 0} at {STRVAR_1 72, 0, 0}.</language>
</row>
<row id="journal_entries_00060" index="60">
<row id="journal_entries_met_locations_trainer" index="60">
<attribute name="window_context_name">used</attribute>
<language name="English">Met {STRVAR_1 73, 0, 0}s {STRVAR_1 67, 1, 0}!</language>
</row>
<row id="journal_entries_00061" index="61">
<row id="journal_entries_rival_name" index="61">
<attribute name="window_context_name">used</attribute>
<language name="English">{STRVAR_1 67, 1, 0}</language>
</row>
<row id="journal_entries_00062" index="62">
<row id="journal_entries_beat_player_single" index="62">
<attribute name="window_context_name">used</attribute>
<language name="English">Beat {STRVAR_1 75, 0, 0} (Single).</language>
</row>
<row id="journal_entries_00063" index="63">
<row id="journal_entries_lost_to_player_single" index="63">
<attribute name="window_context_name">used</attribute>
<language name="English">Lost to {STRVAR_1 75, 0, 0} (Single).</language>
</row>
<row id="journal_entries_00064" index="64">
<row id="journal_entries_tied_player_single" index="64">
<attribute name="window_context_name">used</attribute>
<language name="English">Tied {STRVAR_1 75, 0, 0} (Single).</language>
</row>
<row id="journal_entries_00065" index="65">
<row id="journal_entries_beat_player_double" index="65">
<attribute name="window_context_name">used</attribute>
<language name="English">Beat {STRVAR_1 75, 0, 0} (Double).</language>
</row>
<row id="journal_entries_00066" index="66">
<row id="journal_entries_lost_to_player_double" index="66">
<attribute name="window_context_name">used</attribute>
<language name="English">Lost to {STRVAR_1 75, 0, 0} (Double).</language>
</row>
<row id="journal_entries_00067" index="67">
<row id="journal_entries_tied_player_double" index="67">
<attribute name="window_context_name">used</attribute>
<language name="English">Tied {STRVAR_1 75, 0, 0} (Double).</language>
</row>
<row id="journal_entries_00068" index="68">
<row id="journal_entries_beat_players_multi" index="68">
<attribute name="window_context_name">used</attribute>
<language name="English">Beat {STRVAR_1 75, 0, 0} &amp; {STRVAR_1 75, 1, 0} (Multi).</language>
</row>
<row id="journal_entries_00069" index="69">
<row id="journal_entries_lost_to_players_multi" index="69">
<attribute name="window_context_name">used</attribute>
<language name="English">Lost to {STRVAR_1 75, 0, 0} &amp; {STRVAR_1 75, 1, 0} (Multi).</language>
</row>
<row id="journal_entries_00070" index="70">
<row id="journal_entries_tied_players_multi" index="70">
<attribute name="window_context_name">used</attribute>
<language name="English">Tied {STRVAR_1 75, 0, 0} &amp; {STRVAR_1 75, 1, 0} (Multi).</language>
</row>
<row id="journal_entries_00071" index="71">
<row id="journal_entries_beat_player_mix" index="71">
<attribute name="window_context_name">used</attribute>
<language name="English">Beat {STRVAR_1 75, 0, 0} (Mix).</language>
</row>
<row id="journal_entries_00072" index="72">
<row id="journal_entries_lost_to_player_mix" index="72">
<attribute name="window_context_name">used</attribute>
<language name="English">Lost to {STRVAR_1 75, 0, 0} (Mix).</language>
</row>
<row id="journal_entries_00073" index="73">
<row id="journal_entries_tied_player_mix" index="73">
<attribute name="window_context_name">used</attribute>
<language name="English">Tied {STRVAR_1 75, 0, 0} (Mix).</language>
</row>
<row id="journal_entries_00074" index="74">
<row id="journal_entries_beat_players_mix" index="74">
<attribute name="window_context_name">used</attribute>
<language name="English">Beat {STRVAR_1 75, 0, 0} &amp; {STRVAR_1 75, 1, 0} (Mix).</language>
</row>
<row id="journal_entries_00075" index="75">
<row id="journal_entries_lost_to_players_mix" index="75">
<attribute name="window_context_name">used</attribute>
<language name="English">Lost to {STRVAR_1 75, 0, 0} &amp; {STRVAR_1 75, 1, 0} (Mix).</language>
</row>
<row id="journal_entries_00076" index="76">
<row id="journal_entries_tied_players_mix" index="76">
<attribute name="window_context_name">used</attribute>
<language name="English">Tied {STRVAR_1 75, 0, 0} &amp; {STRVAR_1 75, 1, 0} (Mix).</language>
</row>
<row id="journal_entries_00077" index="77">
<row id="journal_entries_greeted_player_in_union_room" index="77">
<attribute name="window_context_name">used</attribute>
<language name="English">Greeted {STRVAR_1 67, 0, 0} in Union Room.</language>
</row>
<row id="journal_entries_00078" index="78">
<row id="journal_entries_got_pokemon_from_player" index="78">
<attribute name="window_context_name">used</attribute>
<language name="English">Got {STRVAR_1 68, 1, 0} from {STRVAR_1 67, 0, 0}.</language>
</row>
<row id="journal_entries_00079" index="79">
<row id="journal_entries_drew_pictures_with_others" index="79">
<attribute name="window_context_name">used</attribute>
<language name="English">Drew pictures with others.</language>
</row>
<row id="journal_entries_00080" index="80">
<row id="journal_entries_got_pokemon_in_friend_trade" index="80">
<attribute name="window_context_name">used</attribute>
<language name="English">Got {STRVAR_1 68, 0, 0} in a friend trade.</language>
</row>
<row id="journal_entries_00081" index="81">
<row id="journal_entries_chatted_with_others" index="81">
<attribute name="window_context_name">used</attribute>
<language name="English">Chatted with others.</language>
</row>
<row id="journal_entries_00082" index="82">
<row id="journal_entries_beat_player_union" index="82">
<attribute name="window_context_name">used</attribute>
<language name="English">Beat {STRVAR_1 67, 0, 0} (Union).</language>
</row>
<row id="journal_entries_00083" index="83">
<row id="journal_entries_lost_to_player_union" index="83">
<attribute name="window_context_name">used</attribute>
<language name="English">Lost to {STRVAR_1 67, 0, 0} (Union).</language>
</row>
<row id="journal_entries_00084" index="84">
<row id="journal_entries_tied_player_union" index="84">
<attribute name="window_context_name">used</attribute>
<language name="English">Tied {STRVAR_1 67, 0, 0} (Union).</language>
</row>
<row id="journal_entries_00085" index="85">
<row id="journal_entries_mixed_records" index="85">
<attribute name="window_context_name">used</attribute>
<language name="English">Mixed records with friends.</language>
</row>
<row id="journal_entries_00086" index="86">
<row id="journal_entries_did_spin_trade" index="86">
<attribute name="window_context_name">used</attribute>
<language name="English">Had a friendly Spin Trade session.</language>
</row>
<row id="journal_entries_00087" index="87">
<row id="journal_entries_placed_number_in_contest" index="87">
<attribute name="window_context_name">used</attribute>
<language name="English">Placed no. {STRVAR_1 50, 0, 0} in a Contest.</language>
</row>
<row id="journal_entries_00088" index="88">
<row id="journal_entries_made_poffins_in_group" index="88">
<attribute name="window_context_name">used</attribute>
<language name="English">Made Poffins in a group.</language>
</row>
<row id="journal_entries_00089" index="89">
<row id="journal_entries_got_players_pokemon_gts" index="89">
<attribute name="window_context_name">used</attribute>
<language name="English">Got {STRVAR_1 67, 0, 0}s {STRVAR_1 68, 1, 0} (GTS).</language>
</row>
<row id="journal_entries_00090" index="90">
<row id="journal_entries_watched_battle_videos" index="90">
<attribute name="window_context_name">used</attribute>
<language name="English">Watched everyones Battle Videos.</language>
</row>
<row id="journal_entries_00091" index="91">
<row id="journal_entries_checked_rankings" index="91">
<attribute name="window_context_name">used</attribute>
<language name="English">Checked everyones rankings.</language>
</row>
<row id="journal_entries_00092" index="92">
<row id="journal_entries_checked_dress_up_data" index="92">
<attribute name="window_context_name">used</attribute>
<language name="English">Checked everyones Dress-Up Data.</language>
</row>
<row id="journal_entries_00093" index="93">
<row id="journal_entries_checked_box_data" index="93">
<attribute name="window_context_name">used</attribute>
<language name="English">Checked everyones Box Data.</language>
</row>
<row id="journal_entries_00094" index="94">
<row id="journal_entries_won_in_battle_room" index="94">
<attribute name="window_context_name">used</attribute>
<language name="English">Won in the Wi-Fi Battle Room!</language>
</row>
<row id="journal_entries_00095" index="95">
<row id="journal_entries_chatted_with_player_in_plaza" index="95">
<attribute name="window_context_name">used</attribute>
<language name="English">Chatted with {STRVAR_1 3, 0, 0} in the Plaza.</language>
</row>
<row id="journal_entries_00096" index="96">
<row id="journal_entries_got_tap_toy_from_player" index="96">
<attribute name="window_context_name">used</attribute>
<language name="English">Got a Tap Toy from {STRVAR_1 3, 0, 0}.</language>
</row>
<row id="journal_entries_00097" index="97">
<row id="journal_entries_played_plaza_mini_game" index="97">
<attribute name="window_context_name">used</attribute>
<language name="English">Played {STRVAR_6 0, 0, 0}.</language>
</row>
<row id="journal_entries_00098" index="98">
<row id="journal_entries_played_with_footprint_stamp" index="98">
<attribute name="window_context_name">used</attribute>
<language name="English">Played with the Footprint Stamp.</language>
</row>
<row id="journal_entries_00099" index="99">
<row id="journal_entries_viewed_plaza_visitor_profiles" index="99">
<attribute name="window_context_name">used</attribute>
<language name="English">Viewed the Plaza Visitor Profiles.</language>
</row>
<row id="journal_entries_00100" index="100">
<row id="journal_entries_read_plaza_news" index="100">
<attribute name="window_context_name">used</attribute>
<language name="English">Read the Plaza News.</language>
</row>
<row id="journal_entries_00101" index="101">
<row id="journal_entries_joined_parade" index="101">
<attribute name="window_context_name">used</attribute>
<language name="English">Joined a Parade.</language>
</row>
<row id="journal_entries_00102" index="102">
<row id="journal_entries_played_at_wi_fi_club" index="102">
<attribute name="window_context_name">used</attribute>
<language name="English">Played at the Wi-Fi Club.</language>
</row>

View File

@ -1,507 +1,507 @@
<?xml version="1.0"?>
<body language="English">
<key value="2566" />
<row id="pl_msg_00000433_00000" index="0">
<row id="location_names_00000" index="0">
<attribute name="window_context_name">used</attribute>
<language name="English">Mystery Zone</language>
</row>
<row id="pl_msg_00000433_00001" index="1">
<row id="location_names_00001" index="1">
<attribute name="window_context_name">used</attribute>
<language name="English">Twinleaf Town</language>
</row>
<row id="pl_msg_00000433_00002" index="2">
<row id="location_names_00002" index="2">
<attribute name="window_context_name">used</attribute>
<language name="English">Sandgem Town</language>
</row>
<row id="pl_msg_00000433_00003" index="3">
<row id="location_names_00003" index="3">
<attribute name="window_context_name">used</attribute>
<language name="English">Floaroma Town</language>
</row>
<row id="pl_msg_00000433_00004" index="4">
<row id="location_names_00004" index="4">
<attribute name="window_context_name">used</attribute>
<language name="English">Solaceon Town</language>
</row>
<row id="pl_msg_00000433_00005" index="5">
<row id="location_names_00005" index="5">
<attribute name="window_context_name">used</attribute>
<language name="English">Celestic Town</language>
</row>
<row id="pl_msg_00000433_00006" index="6">
<row id="location_names_00006" index="6">
<attribute name="window_context_name">used</attribute>
<language name="English">Jubilife City</language>
</row>
<row id="pl_msg_00000433_00007" index="7">
<row id="location_names_00007" index="7">
<attribute name="window_context_name">used</attribute>
<language name="English">Canalave City</language>
</row>
<row id="pl_msg_00000433_00008" index="8">
<row id="location_names_00008" index="8">
<attribute name="window_context_name">used</attribute>
<language name="English">Oreburgh City</language>
</row>
<row id="pl_msg_00000433_00009" index="9">
<row id="location_names_00009" index="9">
<attribute name="window_context_name">used</attribute>
<language name="English">Eterna City</language>
</row>
<row id="pl_msg_00000433_00010" index="10">
<row id="location_names_00010" index="10">
<attribute name="window_context_name">used</attribute>
<language name="English">Hearthome City</language>
</row>
<row id="pl_msg_00000433_00011" index="11">
<row id="location_names_00011" index="11">
<attribute name="window_context_name">used</attribute>
<language name="English">Pastoria City</language>
</row>
<row id="pl_msg_00000433_00012" index="12">
<row id="location_names_00012" index="12">
<attribute name="window_context_name">used</attribute>
<language name="English">Veilstone City</language>
</row>
<row id="pl_msg_00000433_00013" index="13">
<row id="location_names_00013" index="13">
<attribute name="window_context_name">used</attribute>
<language name="English">Sunyshore City</language>
</row>
<row id="pl_msg_00000433_00014" index="14">
<row id="location_names_00014" index="14">
<attribute name="window_context_name">used</attribute>
<language name="English">Snowpoint City</language>
</row>
<row id="pl_msg_00000433_00015" index="15">
<row id="location_names_00015" index="15">
<attribute name="window_context_name">used</attribute>
<language name="English">Pokémon League</language>
</row>
<row id="pl_msg_00000433_00016" index="16">
<row id="location_names_00016" index="16">
<attribute name="window_context_name">used</attribute>
<language name="English">Route 201</language>
</row>
<row id="pl_msg_00000433_00017" index="17">
<row id="location_names_00017" index="17">
<attribute name="window_context_name">used</attribute>
<language name="English">Route 202</language>
</row>
<row id="pl_msg_00000433_00018" index="18">
<row id="location_names_00018" index="18">
<attribute name="window_context_name">used</attribute>
<language name="English">Route 203</language>
</row>
<row id="pl_msg_00000433_00019" index="19">
<row id="location_names_00019" index="19">
<attribute name="window_context_name">used</attribute>
<language name="English">Route 204</language>
</row>
<row id="pl_msg_00000433_00020" index="20">
<row id="location_names_00020" index="20">
<attribute name="window_context_name">used</attribute>
<language name="English">Route 205</language>
</row>
<row id="pl_msg_00000433_00021" index="21">
<row id="location_names_00021" index="21">
<attribute name="window_context_name">used</attribute>
<language name="English">Route 206</language>
</row>
<row id="pl_msg_00000433_00022" index="22">
<row id="location_names_00022" index="22">
<attribute name="window_context_name">used</attribute>
<language name="English">Route 207</language>
</row>
<row id="pl_msg_00000433_00023" index="23">
<row id="location_names_00023" index="23">
<attribute name="window_context_name">used</attribute>
<language name="English">Route 208</language>
</row>
<row id="pl_msg_00000433_00024" index="24">
<row id="location_names_00024" index="24">
<attribute name="window_context_name">used</attribute>
<language name="English">Route 209</language>
</row>
<row id="pl_msg_00000433_00025" index="25">
<row id="location_names_00025" index="25">
<attribute name="window_context_name">used</attribute>
<language name="English">Route 210</language>
</row>
<row id="pl_msg_00000433_00026" index="26">
<row id="location_names_00026" index="26">
<attribute name="window_context_name">used</attribute>
<language name="English">Route 211</language>
</row>
<row id="pl_msg_00000433_00027" index="27">
<row id="location_names_00027" index="27">
<attribute name="window_context_name">used</attribute>
<language name="English">Route 212</language>
</row>
<row id="pl_msg_00000433_00028" index="28">
<row id="location_names_00028" index="28">
<attribute name="window_context_name">used</attribute>
<language name="English">Route 213</language>
</row>
<row id="pl_msg_00000433_00029" index="29">
<row id="location_names_00029" index="29">
<attribute name="window_context_name">used</attribute>
<language name="English">Route 214</language>
</row>
<row id="pl_msg_00000433_00030" index="30">
<row id="location_names_00030" index="30">
<attribute name="window_context_name">used</attribute>
<language name="English">Route 215</language>
</row>
<row id="pl_msg_00000433_00031" index="31">
<row id="location_names_00031" index="31">
<attribute name="window_context_name">used</attribute>
<language name="English">Route 216</language>
</row>
<row id="pl_msg_00000433_00032" index="32">
<row id="location_names_00032" index="32">
<attribute name="window_context_name">used</attribute>
<language name="English">Route 217</language>
</row>
<row id="pl_msg_00000433_00033" index="33">
<row id="location_names_00033" index="33">
<attribute name="window_context_name">used</attribute>
<language name="English">Route 218</language>
</row>
<row id="pl_msg_00000433_00034" index="34">
<row id="location_names_00034" index="34">
<attribute name="window_context_name">used</attribute>
<language name="English">Route 219</language>
</row>
<row id="pl_msg_00000433_00035" index="35">
<row id="location_names_00035" index="35">
<attribute name="window_context_name">used</attribute>
<language name="English">Route 220</language>
</row>
<row id="pl_msg_00000433_00036" index="36">
<row id="location_names_00036" index="36">
<attribute name="window_context_name">used</attribute>
<language name="English">Route 221</language>
</row>
<row id="pl_msg_00000433_00037" index="37">
<row id="location_names_00037" index="37">
<attribute name="window_context_name">used</attribute>
<language name="English">Route 222</language>
</row>
<row id="pl_msg_00000433_00038" index="38">
<row id="location_names_00038" index="38">
<attribute name="window_context_name">used</attribute>
<language name="English">Route 223</language>
</row>
<row id="pl_msg_00000433_00039" index="39">
<row id="location_names_00039" index="39">
<attribute name="window_context_name">used</attribute>
<language name="English">Route 224</language>
</row>
<row id="pl_msg_00000433_00040" index="40">
<row id="location_names_00040" index="40">
<attribute name="window_context_name">used</attribute>
<language name="English">Route 225</language>
</row>
<row id="pl_msg_00000433_00041" index="41">
<row id="location_names_00041" index="41">
<attribute name="window_context_name">used</attribute>
<language name="English">Route 226</language>
</row>
<row id="pl_msg_00000433_00042" index="42">
<row id="location_names_00042" index="42">
<attribute name="window_context_name">used</attribute>
<language name="English">Route 227</language>
</row>
<row id="pl_msg_00000433_00043" index="43">
<row id="location_names_00043" index="43">
<attribute name="window_context_name">used</attribute>
<language name="English">Route 228</language>
</row>
<row id="pl_msg_00000433_00044" index="44">
<row id="location_names_00044" index="44">
<attribute name="window_context_name">used</attribute>
<language name="English">Route 229</language>
</row>
<row id="pl_msg_00000433_00045" index="45">
<row id="location_names_00045" index="45">
<attribute name="window_context_name">used</attribute>
<language name="English">Route 230</language>
</row>
<row id="pl_msg_00000433_00046" index="46">
<row id="location_names_00046" index="46">
<attribute name="window_context_name">used</attribute>
<language name="English">Oreburgh Mine</language>
</row>
<row id="pl_msg_00000433_00047" index="47">
<row id="location_names_00047" index="47">
<attribute name="window_context_name">used</attribute>
<language name="English">Valley Windworks</language>
</row>
<row id="pl_msg_00000433_00048" index="48">
<row id="location_names_00048" index="48">
<attribute name="window_context_name">used</attribute>
<language name="English">Eterna Forest</language>
</row>
<row id="pl_msg_00000433_00049" index="49">
<row id="location_names_00049" index="49">
<attribute name="window_context_name">used</attribute>
<language name="English">Fuego Ironworks</language>
</row>
<row id="pl_msg_00000433_00050" index="50">
<row id="location_names_00050" index="50">
<attribute name="window_context_name">used</attribute>
<language name="English">Mt. Coronet</language>
</row>
<row id="pl_msg_00000433_00051" index="51">
<row id="location_names_00051" index="51">
<attribute name="window_context_name">used</attribute>
<language name="English">Spear Pillar</language>
</row>
<row id="pl_msg_00000433_00052" index="52">
<row id="location_names_00052" index="52">
<attribute name="window_context_name">used</attribute>
<language name="English">Great Marsh</language>
</row>
<row id="pl_msg_00000433_00053" index="53">
<row id="location_names_00053" index="53">
<attribute name="window_context_name">used</attribute>
<language name="English">Solaceon Ruins</language>
</row>
<row id="pl_msg_00000433_00054" index="54">
<row id="location_names_00054" index="54">
<attribute name="window_context_name">used</attribute>
<language name="English">Victory Road</language>
</row>
<row id="pl_msg_00000433_00055" index="55">
<row id="location_names_00055" index="55">
<attribute name="window_context_name">used</attribute>
<language name="English">Pal Park</language>
</row>
<row id="pl_msg_00000433_00056" index="56">
<row id="location_names_00056" index="56">
<attribute name="window_context_name">used</attribute>
<language name="English">Amity Square</language>
</row>
<row id="pl_msg_00000433_00057" index="57">
<row id="location_names_00057" index="57">
<attribute name="window_context_name">used</attribute>
<language name="English">Ravaged Path</language>
</row>
<row id="pl_msg_00000433_00058" index="58">
<row id="location_names_00058" index="58">
<attribute name="window_context_name">used</attribute>
<language name="English">Floaroma Meadow</language>
</row>
<row id="pl_msg_00000433_00059" index="59">
<row id="location_names_00059" index="59">
<attribute name="window_context_name">used</attribute>
<language name="English">Oreburgh Gate</language>
</row>
<row id="pl_msg_00000433_00060" index="60">
<row id="location_names_00060" index="60">
<attribute name="window_context_name">used</attribute>
<language name="English">Fullmoon Island</language>
</row>
<row id="pl_msg_00000433_00061" index="61">
<row id="location_names_00061" index="61">
<attribute name="window_context_name">used</attribute>
<language name="English">Sendoff Spring</language>
</row>
<row id="pl_msg_00000433_00062" index="62">
<row id="location_names_00062" index="62">
<attribute name="window_context_name">used</attribute>
<language name="English">Turnback Cave</language>
</row>
<row id="pl_msg_00000433_00063" index="63">
<row id="location_names_00063" index="63">
<attribute name="window_context_name">used</attribute>
<language name="English">Flower Paradise</language>
</row>
<row id="pl_msg_00000433_00064" index="64">
<row id="location_names_00064" index="64">
<attribute name="window_context_name">used</attribute>
<language name="English">Snowpoint Temple</language>
</row>
<row id="pl_msg_00000433_00065" index="65">
<row id="location_names_00065" index="65">
<attribute name="window_context_name">used</attribute>
<language name="English">Wayward Cave</language>
</row>
<row id="pl_msg_00000433_00066" index="66">
<row id="location_names_00066" index="66">
<attribute name="window_context_name">used</attribute>
<language name="English">Ruin Maniac Cave</language>
</row>
<row id="pl_msg_00000433_00067" index="67">
<row id="location_names_00067" index="67">
<attribute name="window_context_name">used</attribute>
<language name="English">Maniac Tunnel</language>
</row>
<row id="pl_msg_00000433_00068" index="68">
<row id="location_names_00068" index="68">
<attribute name="window_context_name">used</attribute>
<language name="English">Trophy Garden</language>
</row>
<row id="pl_msg_00000433_00069" index="69">
<row id="location_names_00069" index="69">
<attribute name="window_context_name">used</attribute>
<language name="English">Iron Island</language>
</row>
<row id="pl_msg_00000433_00070" index="70">
<row id="location_names_00070" index="70">
<attribute name="window_context_name">used</attribute>
<language name="English">Old Chateau</language>
</row>
<row id="pl_msg_00000433_00071" index="71">
<row id="location_names_00071" index="71">
<attribute name="window_context_name">used</attribute>
<language name="English">Galactic HQ</language>
</row>
<row id="pl_msg_00000433_00072" index="72">
<row id="location_names_00072" index="72">
<attribute name="window_context_name">used</attribute>
<language name="English">Verity Lakefront</language>
</row>
<row id="pl_msg_00000433_00073" index="73">
<row id="location_names_00073" index="73">
<attribute name="window_context_name">used</attribute>
<language name="English">Valor Lakefront</language>
</row>
<row id="pl_msg_00000433_00074" index="74">
<row id="location_names_00074" index="74">
<attribute name="window_context_name">used</attribute>
<language name="English">Acuity Lakefront</language>
</row>
<row id="pl_msg_00000433_00075" index="75">
<row id="location_names_00075" index="75">
<attribute name="window_context_name">used</attribute>
<language name="English">Spring Path</language>
</row>
<row id="pl_msg_00000433_00076" index="76">
<row id="location_names_00076" index="76">
<attribute name="window_context_name">used</attribute>
<language name="English">Lake Verity</language>
</row>
<row id="pl_msg_00000433_00077" index="77">
<row id="location_names_00077" index="77">
<attribute name="window_context_name">used</attribute>
<language name="English">Lake Valor</language>
</row>
<row id="pl_msg_00000433_00078" index="78">
<row id="location_names_00078" index="78">
<attribute name="window_context_name">used</attribute>
<language name="English">Lake Acuity</language>
</row>
<row id="pl_msg_00000433_00079" index="79">
<row id="location_names_00079" index="79">
<attribute name="window_context_name">used</attribute>
<language name="English">Newmoon Island</language>
</row>
<row id="pl_msg_00000433_00080" index="80">
<row id="location_names_00080" index="80">
<attribute name="window_context_name">used</attribute>
<language name="English">Battle Tower</language>
</row>
<row id="pl_msg_00000433_00081" index="81">
<row id="location_names_00081" index="81">
<attribute name="window_context_name">used</attribute>
<language name="English">Fight Area</language>
</row>
<row id="pl_msg_00000433_00082" index="82">
<row id="location_names_00082" index="82">
<attribute name="window_context_name">used</attribute>
<language name="English">Survival Area</language>
</row>
<row id="pl_msg_00000433_00083" index="83">
<row id="location_names_00083" index="83">
<attribute name="window_context_name">used</attribute>
<language name="English">Resort Area</language>
</row>
<row id="pl_msg_00000433_00084" index="84">
<row id="location_names_00084" index="84">
<attribute name="window_context_name">used</attribute>
<language name="English">Stark Mountain</language>
</row>
<row id="pl_msg_00000433_00085" index="85">
<row id="location_names_00085" index="85">
<attribute name="window_context_name">used</attribute>
<language name="English">Seabreak Path</language>
</row>
<row id="pl_msg_00000433_00086" index="86">
<row id="location_names_00086" index="86">
<attribute name="window_context_name">used</attribute>
<language name="English">Hall of Origin</language>
</row>
<row id="pl_msg_00000433_00087" index="87">
<row id="location_names_00087" index="87">
<attribute name="window_context_name">used</attribute>
<language name="English">Verity Cavern</language>
</row>
<row id="pl_msg_00000433_00088" index="88">
<row id="location_names_00088" index="88">
<attribute name="window_context_name">used</attribute>
<language name="English">Valor Cavern</language>
</row>
<row id="pl_msg_00000433_00089" index="89">
<row id="location_names_00089" index="89">
<attribute name="window_context_name">used</attribute>
<language name="English">Acuity Cavern</language>
</row>
<row id="pl_msg_00000433_00090" index="90">
<row id="location_names_00090" index="90">
<attribute name="window_context_name">used</attribute>
<language name="English">Jubilife TV</language>
</row>
<row id="pl_msg_00000433_00091" index="91">
<row id="location_names_00091" index="91">
<attribute name="window_context_name">used</attribute>
<language name="English">Pokétch Co.</language>
</row>
<row id="pl_msg_00000433_00092" index="92">
<row id="location_names_00092" index="92">
<attribute name="window_context_name">used</attribute>
<language name="English">GTS</language>
</row>
<row id="pl_msg_00000433_00093" index="93">
<row id="location_names_00093" index="93">
<attribute name="window_context_name">used</attribute>
<language name="English">Trainers School</language>
</row>
<row id="pl_msg_00000433_00094" index="94">
<row id="location_names_00094" index="94">
<attribute name="window_context_name">used</attribute>
<language name="English">Mining Museum</language>
</row>
<row id="pl_msg_00000433_00095" index="95">
<row id="location_names_00095" index="95">
<attribute name="window_context_name">used</attribute>
<language name="English">Flower Shop</language>
</row>
<row id="pl_msg_00000433_00096" index="96">
<row id="location_names_00096" index="96">
<attribute name="window_context_name">used</attribute>
<language name="English">Cycle Shop</language>
</row>
<row id="pl_msg_00000433_00097" index="97">
<row id="location_names_00097" index="97">
<attribute name="window_context_name">used</attribute>
<language name="English">Contest Hall</language>
</row>
<row id="pl_msg_00000433_00098" index="98">
<row id="location_names_00098" index="98">
<attribute name="window_context_name">used</attribute>
<language name="English">Poffin House</language>
</row>
<row id="pl_msg_00000433_00099" index="99">
<row id="location_names_00099" index="99">
<attribute name="window_context_name">used</attribute>
<language name="English">Foreign Building</language>
</row>
<row id="pl_msg_00000433_00100" index="100">
<row id="location_names_00100" index="100">
<attribute name="window_context_name">used</attribute>
<language name="English">Pokémon Day Care</language>
</row>
<row id="pl_msg_00000433_00101" index="101">
<row id="location_names_00101" index="101">
<attribute name="window_context_name">used</attribute>
<language name="English">Veilstone Store</language>
</row>
<row id="pl_msg_00000433_00102" index="102">
<row id="location_names_00102" index="102">
<attribute name="window_context_name">used</attribute>
<language name="English">Game Corner</language>
</row>
<row id="pl_msg_00000433_00103" index="103">
<row id="location_names_00103" index="103">
<attribute name="window_context_name">used</attribute>
<language name="English">Canalave Library</language>
</row>
<row id="pl_msg_00000433_00104" index="104">
<row id="location_names_00104" index="104">
<attribute name="window_context_name">used</attribute>
<language name="English">Vista Lighthouse</language>
</row>
<row id="pl_msg_00000433_00105" index="105">
<row id="location_names_00105" index="105">
<attribute name="window_context_name">used</attribute>
<language name="English">Sunyshore Market</language>
</row>
<row id="pl_msg_00000433_00106" index="106">
<row id="location_names_00106" index="106">
<attribute name="window_context_name">used</attribute>
<language name="English">Pokémon Mansion</language>
</row>
<row id="pl_msg_00000433_00107" index="107">
<row id="location_names_00107" index="107">
<attribute name="window_context_name">used</attribute>
<language name="English">Footstep House</language>
</row>
<row id="pl_msg_00000433_00108" index="108">
<row id="location_names_00108" index="108">
<attribute name="window_context_name">used</attribute>
<language name="English">Café</language>
</row>
<row id="pl_msg_00000433_00109" index="109">
<row id="location_names_00109" index="109">
<attribute name="window_context_name">used</attribute>
<language name="English">Grand Lake</language>
</row>
<row id="pl_msg_00000433_00110" index="110">
<row id="location_names_00110" index="110">
<attribute name="window_context_name">used</attribute>
<language name="English">Restaurant</language>
</row>
<row id="pl_msg_00000433_00111" index="111">
<row id="location_names_00111" index="111">
<attribute name="window_context_name">used</attribute>
<language name="English">Battle Park</language>
</row>
<row id="pl_msg_00000433_00112" index="112">
<row id="location_names_00112" index="112">
<attribute name="window_context_name">used</attribute>
<language name="English">Battle Frontier</language>
</row>
<row id="pl_msg_00000433_00113" index="113">
<row id="location_names_00113" index="113">
<attribute name="window_context_name">used</attribute>
<language name="English">Battle Factory</language>
</row>
<row id="pl_msg_00000433_00114" index="114">
<row id="location_names_00114" index="114">
<attribute name="window_context_name">used</attribute>
<language name="English">Battle Castle</language>
</row>
<row id="pl_msg_00000433_00115" index="115">
<row id="location_names_00115" index="115">
<attribute name="window_context_name">used</attribute>
<language name="English">Battle Arcade</language>
</row>
<row id="pl_msg_00000433_00116" index="116">
<row id="location_names_00116" index="116">
<attribute name="window_context_name">used</attribute>
<language name="English">Battle Hall</language>
</row>
<row id="pl_msg_00000433_00117" index="117">
<row id="location_names_00117" index="117">
<attribute name="window_context_name">used</attribute>
<language name="English">Distortion World</language>
</row>
<row id="pl_msg_00000433_00118" index="118">
<row id="location_names_00118" index="118">
<attribute name="window_context_name">used</attribute>
<language name="English">Global Terminal</language>
</row>
<row id="pl_msg_00000433_00119" index="119">
<row id="location_names_00119" index="119">
<attribute name="window_context_name">used</attribute>
<language name="English">Villa</language>
</row>
<row id="pl_msg_00000433_00120" index="120">
<row id="location_names_00120" index="120">
<attribute name="window_context_name">used</attribute>
<language name="English">Battleground</language>
</row>
<row id="pl_msg_00000433_00121" index="121">
<row id="location_names_00121" index="121">
<attribute name="window_context_name">used</attribute>
<language name="English">ROTOMs Room</language>
</row>
<row id="pl_msg_00000433_00122" index="122">
<row id="location_names_00122" index="122">
<attribute name="window_context_name">used</attribute>
<language name="English">T.G. Eterna Bldg</language>
</row>
<row id="pl_msg_00000433_00123" index="123">
<row id="location_names_00123" index="123">
<attribute name="window_context_name">used</attribute>
<language name="English">Iron Ruins</language>
</row>
<row id="pl_msg_00000433_00124" index="124">
<row id="location_names_00124" index="124">
<attribute name="window_context_name">used</attribute>
<language name="English">Iceberg Ruins</language>
</row>
<row id="pl_msg_00000433_00125" index="125">
<row id="location_names_00125" index="125">
<attribute name="window_context_name">used</attribute>
<language name="English">Rock Peak Ruins</language>
</row>

View File

@ -0,0 +1,535 @@
#include "applications/journal_display/journal_controller.h"
#include <nitro.h>
#include <string.h>
#include "constants/heap.h"
#include "consts/sdat.h"
#include "struct_defs/struct_02099F80.h"
#include "applications/journal_display/journal_printer.h"
#include "applications/journal_display/struct_ov81_021D1610.h"
#include "bg_window.h"
#include "core_sys.h"
#include "font.h"
#include "graphics.h"
#include "gx_layers.h"
#include "heap.h"
#include "journal.h"
#include "message.h"
#include "narc.h"
#include "overlay_manager.h"
#include "save_player.h"
#include "savedata.h"
#include "strbuf.h"
#include "string_template.h"
#include "trainer_info.h"
#include "unk_020041CC.h"
#include "unk_02005474.h"
#include "unk_0200F174.h"
#include "unk_02017728.h"
#include "unk_020393C8.h"
#include "unk_0208C098.h"
static void JournalController_MainCallback(void *data);
static void JournalController_SetVRAMBanks(void);
static void JournalController_SetupBgs(BgConfig *param0);
static void JournalController_TeardownBgs(BgConfig *param0);
static void ov81_021D1050(UnkStruct_ov81_021D1610 *param0);
static void ov81_021D1130(UnkStruct_ov81_021D1610 *param0);
static void ov81_021D115C(UnkStruct_ov81_021D1610 *param0);
static int JournalController_IsOpeningTransitionDone(UnkStruct_ov81_021D1610 *param0);
static int JournalController_HandleInput(UnkStruct_ov81_021D1610 *param0);
static int JournalController_TurnPageLeft(UnkStruct_ov81_021D1610 *param0);
static int JournalController_TurnPageRight(UnkStruct_ov81_021D1610 *param0);
static int JournalController_IsClosingTransitionDone(UnkStruct_ov81_021D1610 *param0);
static u8 JournalController_NewDirectionPageExists(UnkStruct_ov81_021D1610 *param0, s8 pageChance);
static void ov81_021D1360(UnkStruct_ov81_021D1610 *param0);
static void ov81_021D140C(UnkStruct_ov81_021D1610 *param0, u8 bgLayer, u8 palette);
static void ov81_021D1434(UnkStruct_ov81_021D1610 *param0);
static u8 ov81_021D14E0(UnkStruct_ov81_021D1610 *param0);
static u8 ov81_021D156C(UnkStruct_ov81_021D1610 *param0);
static const u8 Unk_ov81_021D33E8[9][32] = {
{ 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xA, 0xB, 0xC, 0xD, 0xE, 0xF, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F },
{ 0x0, 0x1, 0x2, 0x3, 0x6, 0x7, 0x8, 0x9, 0xA, 0xB, 0xC, 0xD, 0xE, 0xF, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF },
{ 0x0, 0x1, 0x2, 0x3, 0x8, 0x9, 0xA, 0xB, 0xC, 0xD, 0xE, 0xF, 0x10, 0x11, 0x12, 0x13, 0x14, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },
{ 0x0, 0x1, 0x2, 0x3, 0x8, 0x9, 0xA, 0xB, 0xC, 0xD, 0xE, 0xF, 0x10, 0x11, 0x12, 0x13, 0x1C, 0x1D, 0x1E, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },
{ 0x0, 0x1, 0x2, 0x3, 0x8, 0x9, 0xA, 0xB, 0xC, 0xD, 0xE, 0xF, 0x10, 0x11, 0x12, 0x13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },
{ 0x0, 0x1, 0xA, 0xB, 0xC, 0xD, 0xE, 0xF, 0x10, 0x11, 0x12, 0x13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },
{ 0xE, 0xF, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },
{ 0x1C, 0x1D, 0x1E, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },
{ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
};
int JournalController_Init(OverlayManager *ovyManager, int *state)
{
UnkStruct_ov81_021D1610 *v0;
SaveData *v1;
SetMainCallback(NULL, NULL);
DisableHBlank();
GXLayers_DisableEngineALayers();
GXLayers_DisableEngineBLayers();
GX_SetVisiblePlane(0);
GXS_SetVisiblePlane(0);
G2_BlendNone();
G2S_BlendNone();
SetAutorepeat(4, 8);
Heap_Create(HEAP_ID_APPLICATION, HEAP_ID_JOURNAL, 0x20000);
v1 = OverlayManager_Args(ovyManager);
v0 = OverlayManager_NewData(ovyManager, sizeof(UnkStruct_ov81_021D1610), HEAP_ID_JOURNAL);
memset(v0, 0, sizeof(UnkStruct_ov81_021D1610));
v0->bgConfig = BgConfig_New(HEAP_ID_JOURNAL);
v0->saveData = v1;
v0->journalEntry = SaveData_GetJournal(v1);
v0->trainerInfo = SaveData_GetTrainerInfo(v1);
sub_0208C120(0, HEAP_ID_JOURNAL);
Font_UseImmediateGlyphAccess(FONT_SYSTEM, HEAP_ID_JOURNAL);
JournalController_SetVRAMBanks();
JournalController_SetupBgs(v0->bgConfig);
ov81_021D1050(v0);
ov81_021D1130(v0);
ov81_021D1610(v0);
ov81_021D164C(v0, 0);
ov81_021D1434(v0);
SetMainCallback(JournalController_MainCallback, v0);
GXLayers_TurnBothDispOn();
sub_02039734();
GXLayers_EngineAToggleLayers(GX_PLANEMASK_OBJ, 1);
sub_02004550(67, 0, 0);
return TRUE;
}
int JournalController_Main(OverlayManager *ovyManager, int *state)
{
UnkStruct_ov81_021D1610 *v0 = OverlayManager_Data(ovyManager);
switch (*state) {
case JOURNAL_STATE_OPEN:
*state = JournalController_IsOpeningTransitionDone(v0);
break;
case JOURNAL_STATE_HANDLE_INPUT:
*state = JournalController_HandleInput(v0);
break;
case JOURNAL_STATE_TURN_LEFT:
*state = JournalController_TurnPageLeft(v0);
break;
case JOURNAL_STATE_TURN_RIGHT:
*state = JournalController_TurnPageRight(v0);
break;
case JOURNAL_STATE_CLOSE:
if (JournalController_IsClosingTransitionDone(v0) == 1) {
return TRUE;
}
}
return FALSE;
}
int JournalController_Exit(OverlayManager *ovyManager, int *state)
{
UnkStruct_ov81_021D1610 *v0 = OverlayManager_Data(ovyManager);
SetMainCallback(NULL, NULL);
ov81_021D1634(v0);
JournalController_TeardownBgs(v0->bgConfig);
ov81_021D115C(v0);
Font_UseLazyGlyphAccess(FONT_SYSTEM);
OverlayManager_FreeData(ovyManager);
Heap_Destroy(HEAP_ID_JOURNAL);
return TRUE;
}
static void JournalController_MainCallback(void *data)
{
UnkStruct_ov81_021D1610 *v0 = data;
Bg_RunScheduledUpdates(v0->bgConfig);
OS_SetIrqCheckFlag(OS_IE_V_BLANK);
}
static void JournalController_SetVRAMBanks(void)
{
UnkStruct_02099F80 v0 = {
GX_VRAM_BG_256_AB,
GX_VRAM_BGEXTPLTT_NONE,
GX_VRAM_SUB_BG_128_C,
GX_VRAM_SUB_BGEXTPLTT_NONE,
GX_VRAM_OBJ_64_E,
GX_VRAM_OBJEXTPLTT_NONE,
GX_VRAM_SUB_OBJ_16_I,
GX_VRAM_SUB_OBJEXTPLTT_NONE,
GX_VRAM_TEX_NONE,
GX_VRAM_TEXPLTT_NONE
};
GXLayers_SetBanks(&v0);
}
static void JournalController_SetupBgs(BgConfig *bgConfig)
{
GraphicsModes v0 = {
GX_DISPMODE_GRAPHICS,
GX_BGMODE_0,
GX_BGMODE_0,
GX_BG0_AS_2D,
};
SetAllGraphicsModes(&v0);
BgTemplate v1 = {
0,
0,
0x800,
0,
1,
GX_BG_COLORMODE_16,
GX_BG_SCRBASE_0xf800,
GX_BG_CHARBASE_0x10000,
GX_BG_EXTPLTT_01,
0,
0,
0,
0
};
Bg_InitFromTemplate(bgConfig, 0, &v1, 0);
Bg_ClearTilemap(bgConfig, 0);
BgTemplate v2 = {
0,
0,
0x800,
0,
1,
GX_BG_COLORMODE_16,
GX_BG_SCRBASE_0xf000,
GX_BG_CHARBASE_0x20000,
GX_BG_EXTPLTT_01,
2,
0,
0,
0
};
Bg_InitFromTemplate(bgConfig, 1, &v2, 0);
Bg_ClearTilemap(bgConfig, 1);
BgTemplate v3 = {
0,
0,
0x800,
0,
1,
GX_BG_COLORMODE_16,
GX_BG_SCRBASE_0xe800,
GX_BG_CHARBASE_0x00000,
GX_BG_EXTPLTT_01,
1,
0,
0,
0
};
Bg_InitFromTemplate(bgConfig, 2, &v3, 0);
BgTemplate v4 = {
0,
0,
0x800,
0,
1,
GX_BG_COLORMODE_16,
GX_BG_SCRBASE_0xe000,
GX_BG_CHARBASE_0x00000,
GX_BG_EXTPLTT_01,
3,
0,
0,
0
};
Bg_InitFromTemplate(bgConfig, 3, &v4, 0);
Bg_ClearTilesRange(0, 32, 0, HEAP_ID_JOURNAL);
Bg_ClearTilesRange(1, 32, 0, HEAP_ID_JOURNAL);
}
static void JournalController_TeardownBgs(BgConfig *bgConfig)
{
GXLayers_DisableEngineALayers();
Bg_FreeTilemapBuffer(bgConfig, BG_LAYER_MAIN_3);
Bg_FreeTilemapBuffer(bgConfig, BG_LAYER_MAIN_2);
Bg_FreeTilemapBuffer(bgConfig, BG_LAYER_MAIN_1);
Bg_FreeTilemapBuffer(bgConfig, BG_LAYER_MAIN_0);
Heap_FreeToHeapExplicit(HEAP_ID_JOURNAL, bgConfig);
}
static void ov81_021D1050(UnkStruct_ov81_021D1610 *param0)
{
u16 *v0;
NARC *v1 = NARC_ctor(NARC_INDEX_GRAPHIC__F_NOTE_GRA, HEAP_ID_JOURNAL);
if (TrainerInfo_Gender(param0->trainerInfo) == 0) {
Graphics_LoadTilesToBgLayerFromOpenNARC(v1, 2, param0->bgConfig, 2, 0, 0, 0, HEAP_ID_JOURNAL);
Graphics_LoadTilemapToBgLayerFromOpenNARC(v1, 0, param0->bgConfig, 2, 0, 0, 0, HEAP_ID_JOURNAL);
Graphics_LoadPaletteFromOpenNARC(v1, 4, 0, 0, 0, HEAP_ID_JOURNAL);
} else {
Graphics_LoadTilesToBgLayerFromOpenNARC(v1, 3, param0->bgConfig, 2, 0, 0, 0, HEAP_ID_JOURNAL);
Graphics_LoadTilemapToBgLayerFromOpenNARC(v1, 1, param0->bgConfig, 2, 0, 0, 0, HEAP_ID_JOURNAL);
Graphics_LoadPaletteFromOpenNARC(v1, 5, 0, 0, 0, HEAP_ID_JOURNAL);
}
NARC_dtor(v1);
v0 = Bg_GetTilemapBuffer(param0->bgConfig, 2);
MI_CpuCopy16(v0, param0->unk_5C, 0x800);
Bg_LoadTilemapBuffer(param0->bgConfig, 3, param0->unk_5C, 0x800);
Font_LoadTextPalette(0, 15 * 32, HEAP_ID_JOURNAL);
Bg_MaskPalette(4, 0);
}
static void ov81_021D1130(UnkStruct_ov81_021D1610 *param0)
{
param0->loader = MessageLoader_Init(0, 26, 366, HEAP_ID_JOURNAL);
param0->template = StringTemplate_Default(HEAP_ID_JOURNAL);
param0->strbuf = Strbuf_Init(128, HEAP_ID_JOURNAL);
}
static void ov81_021D115C(UnkStruct_ov81_021D1610 *param0)
{
MessageLoader_Free(param0->loader);
StringTemplate_Free(param0->template);
Strbuf_Free(param0->strbuf);
}
static int JournalController_IsOpeningTransitionDone(UnkStruct_ov81_021D1610 *param0)
{
if (IsScreenTransitionDone() == TRUE) {
return JOURNAL_STATE_HANDLE_INPUT;
}
return JOURNAL_STATE_OPEN;
}
static int JournalController_HandleInput(UnkStruct_ov81_021D1610 *param0)
{
if (gCoreSys.pressedKeys & PAD_KEY_LEFT) {
if (JournalController_NewDirectionPageExists(param0, -1) == 1) {
return JOURNAL_STATE_TURN_LEFT;
}
return JOURNAL_STATE_HANDLE_INPUT;
}
if (gCoreSys.pressedKeys & (PAD_BUTTON_A | PAD_KEY_RIGHT)) {
if (JournalController_NewDirectionPageExists(param0, 1) == 1) {
return JOURNAL_STATE_TURN_RIGHT;
}
return JOURNAL_STATE_HANDLE_INPUT;
}
if (gCoreSys.pressedKeys & PAD_BUTTON_B) {
if (param0->page != 0) {
if (JournalController_NewDirectionPageExists(param0, -1) == 1) {
return JOURNAL_STATE_TURN_LEFT;
}
} else {
sub_0208C120(1, HEAP_ID_JOURNAL);
return JOURNAL_STATE_CLOSE;
}
}
if (gCoreSys.pressedKeys & PAD_BUTTON_START) {
sub_0208C120(1, HEAP_ID_JOURNAL);
return JOURNAL_STATE_CLOSE;
}
return JOURNAL_STATE_HANDLE_INPUT;
}
static int JournalController_TurnPageLeft(UnkStruct_ov81_021D1610 *param0)
{
switch (param0->state) {
case 0:
ov81_021D1360(param0);
ov81_021D140C(param0, param0->bgLayer3, param0->page - 1);
param0->page--;
ov81_021D164C(param0, param0->unk_1060 ^ 1);
param0->state = 1;
Sound_PlayEffect(SEQ_SE_DP_MEKURU3);
break;
case 1:
if (ov81_021D14E0(param0) == TRUE) {
param0->unk_105F = 0;
param0->state = 0;
param0->unk_1060 ^= 1;
Bg_LoadToTilemapRect(param0->bgConfig, param0->bgLayer2, param0->unk_85C, 0, 0, 32, 32);
Bg_LoadToTilemapRect(param0->bgConfig, param0->bgLayer1, param0->unk_5C, 0, 0, 32, 32);
Bg_ScheduleTilemapTransfer(param0->bgConfig, param0->bgLayer2);
Bg_ScheduleTilemapTransfer(param0->bgConfig, param0->bgLayer1);
return JOURNAL_STATE_HANDLE_INPUT;
}
}
return JOURNAL_STATE_TURN_LEFT;
}
static int JournalController_TurnPageRight(UnkStruct_ov81_021D1610 *param0)
{
switch (param0->state) {
case 0:
ov81_021D1360(param0);
param0->page++;
ov81_021D164C(param0, param0->unk_1060 ^ 1);
param0->state = 1;
Sound_PlayEffect(SEQ_SE_DP_MEKURU3);
break;
case 1:
if (ov81_021D156C(param0) == TRUE) {
param0->unk_105F = 0;
param0->state = 0;
param0->unk_1060 ^= 1;
return JOURNAL_STATE_HANDLE_INPUT;
}
}
return JOURNAL_STATE_TURN_RIGHT;
}
static int JournalController_IsClosingTransitionDone(UnkStruct_ov81_021D1610 *param0)
{
return IsScreenTransitionDone();
}
static void ov81_021D1360(UnkStruct_ov81_021D1610 *param0)
{
if (param0->unk_1060 == 0) {
param0->bgLayer2 = 0;
param0->bgLayer1 = 2;
param0->bgLayer4 = 1;
param0->bgLayer3 = 3;
} else {
param0->bgLayer2 = 1;
param0->bgLayer1 = 3;
param0->bgLayer4 = 0;
param0->bgLayer3 = 2;
}
}
static u8 JournalController_PageExists(UnkStruct_ov81_021D1610 *param0, u8 param1)
{
JournalEntryTitle journalEntryTitle;
JournalEntry_GetData(param0->journalEntry, &journalEntryTitle, JOURNAL_TITLE, param1);
if (journalEntryTitle.year == 0 && journalEntryTitle.month == 0 && journalEntryTitle.day == 0) {
return FALSE;
}
return TRUE;
}
static u8 JournalController_NewDirectionPageExists(UnkStruct_ov81_021D1610 *param0, s8 pageChange)
{
if (pageChange == 1) {
if (param0->page != 9 && JournalController_PageExists(param0, param0->page + 1) == TRUE) {
return TRUE;
}
} else if (param0->page != 0 && JournalController_PageExists(param0, param0->page - 1) == TRUE) {
return TRUE;
}
return FALSE;
}
static void ov81_021D140C(UnkStruct_ov81_021D1610 *param0, u8 bgLayer, u8 palette)
{
Bg_ChangeTilemapRectPalette(param0->bgConfig, bgLayer, 0, 0, 32, 32, palette);
Bg_ScheduleTilemapTransfer(param0->bgConfig, bgLayer);
}
static void ov81_021D1434(UnkStruct_ov81_021D1610 *param0)
{
u16 *v0 = Bg_GetTilemapBuffer(param0->bgConfig, 0);
MI_CpuCopy16(v0, param0->unk_85C, 0x800);
}
static void ov81_021D1450(UnkStruct_ov81_021D1610 *param0, u16 *param1, u16 param2, u16 param3)
{
u16 *v0 = Bg_GetTilemapBuffer(param0->bgConfig, param2);
u16 j, i;
for (i = 0; i < 32; i++) {
if (Unk_ov81_021D33E8[param3][i] == 0xff) {
Bg_FillTilemapRect(param0->bgConfig, param2, 0, i, 0, 1, 32, 0);
continue;
}
for (j = 0; j < 32; j++) {
v0[j * 32 + i] = param1[j * 32 + Unk_ov81_021D33E8[param3][i]];
}
}
Bg_ScheduleTilemapTransfer(param0->bgConfig, param2);
}
static u8 ov81_021D14E0(UnkStruct_ov81_021D1610 *param0)
{
ov81_021D1450(param0, param0->unk_85C, param0->bgLayer2, param0->unk_105F);
ov81_021D1450(param0, param0->unk_5C, param0->bgLayer1, param0->unk_105F);
ov81_021D140C(param0, param0->bgLayer1, param0->page + 1);
param0->unk_105F++;
if (param0->unk_105F == 9) {
Bg_SetPriority(param0->bgLayer4, 0);
Bg_SetPriority(param0->bgLayer3, 1);
Bg_SetPriority(param0->bgLayer2, 2);
Bg_SetPriority(param0->bgLayer1, 3);
return TRUE;
}
return FALSE;
}
static u8 ov81_021D156C(UnkStruct_ov81_021D1610 *param0)
{
ov81_021D1450(param0, param0->unk_85C, param0->bgLayer4, 8 - param0->unk_105F);
ov81_021D1450(param0, param0->unk_5C, param0->bgLayer3, 8 - param0->unk_105F);
ov81_021D140C(param0, param0->bgLayer3, param0->page);
if (param0->unk_105F == 1) {
Bg_SetPriority(param0->bgLayer4, 0);
Bg_SetPriority(param0->bgLayer3, 1);
Bg_SetPriority(param0->bgLayer2, 2);
Bg_SetPriority(param0->bgLayer1, 3);
}
param0->unk_105F++;
if (param0->unk_105F == 9) {
return TRUE;
}
return FALSE;
}

File diff suppressed because it is too large Load Diff

View File

@ -954,19 +954,19 @@ static void UpdateJournal(FieldSystem *fieldSystem, FieldBattleDTO *dto)
if (fieldSystem->unk_78.unk_02 >= 5) {
caughtMon = Party_GetPokemonBySlotIndex(dto->parties[1], 0);
journalEntryMon = JournalEntry_CreateMonDefeated(SaveData_GetPlayTime(fieldSystem->saveData), Pokemon_GetValue(caughtMon, MON_DATA_SPECIES, 0), Pokemon_GetValue(caughtMon, MON_DATA_GENDER, 0), dto->timeOfDay, HEAP_ID_FIELDMAP);
journalEntryMon = JournalEntry_CreateEventMonDefeated(SaveData_GetPlayTime(fieldSystem->saveData), Pokemon_GetValue(caughtMon, MON_DATA_SPECIES, 0), Pokemon_GetValue(caughtMon, MON_DATA_GENDER, 0), dto->timeOfDay, HEAP_ID_FIELDMAP);
JournalEntry_SaveData(fieldSystem->journalEntry, journalEntryMon, JOURNAL_MON);
}
} else if (resultMask == BATTLE_RESULT_CAPTURED_MON) {
int caughtBattlerIdx = dto->caughtBattlerIdx;
caughtMon = Party_GetPokemonBySlotIndex(dto->parties[caughtBattlerIdx], 0);
journalEntryMon = JournalEntry_CreateMonCaught(SaveData_GetPlayTime(fieldSystem->saveData), Pokemon_GetValue(caughtMon, MON_DATA_SPECIES, 0), Pokemon_GetValue(caughtMon, MON_DATA_GENDER, 0), dto->timeOfDay, HEAP_ID_FIELDMAP);
journalEntryMon = JournalEntry_CreateEventMonCaught(SaveData_GetPlayTime(fieldSystem->saveData), Pokemon_GetValue(caughtMon, MON_DATA_SPECIES, 0), Pokemon_GetValue(caughtMon, MON_DATA_GENDER, 0), dto->timeOfDay, HEAP_ID_FIELDMAP);
JournalEntry_SaveData(fieldSystem->journalEntry, journalEntryMon, JOURNAL_MON);
}
} else if ((battleType & BATTLE_TYPE_TRAINER) || (battleType & BATTLE_TYPE_TAG)) {
if (resultMask == BATTLE_RESULT_WIN) {
sub_0202C720(fieldSystem->journalEntry, fieldSystem->location->mapId, dto->trainerIDs[BATTLER_ENEMY_SLOT_1], HEAP_ID_FIELDMAP);
JournalEntry_CreateAndSaveEventTrainer(fieldSystem->journalEntry, fieldSystem->location->mapId, dto->trainerIDs[BATTLER_ENEMY_SLOT_1], HEAP_ID_FIELDMAP);
}
}
}

View File

@ -85,7 +85,7 @@ FieldBattleDTO *FieldBattleDTO_New(enum HeapId heapID, u32 battleType)
dto->background = BACKGROUND_PLAIN;
dto->terrain = TERRAIN_MAX;
dto->mapLabelTextID = pl_msg_00000433_00000;
dto->mapLabelTextID = location_names_00000;
dto->timeOfDay = TOD_MORNING;
dto->mapEvolutionMethod = 0;
dto->visitedContestHall = TRUE;

View File

@ -4,6 +4,7 @@
#include <string.h>
#include "constants/field/map_load.h"
#include "consts/journal.h"
#include "struct_decls/pokedexdata_decl.h"
#include "struct_decls/struct_0207AE68_decl.h"
@ -1736,25 +1737,25 @@ BOOL sub_0203C434(FieldTask *taskMan)
menu = FieldTask_GetEnv(taskMan);
v3 = *((u32 *)menu->unk_260);
Heap_FreeToHeapExplicit(11, menu->unk_260);
Heap_FreeToHeapExplicit(HEAP_ID_FIELDMAP, menu->unk_260);
v2 = (UnkStruct_0203D8AC *)menu->unk_25C;
if (!(v2->unk_10)) {
Heap_FreeToHeapExplicit(11, menu->unk_25C);
Heap_FreeToHeapExplicit(HEAP_ID_FIELDMAP, menu->unk_25C);
menu->unk_25C = sub_0203D390(fieldSystem, &menu->unk_24C, v3);
sub_0203B674(menu, sub_0203B7C0);
} else {
Pokemon *v4;
Pokemon *mon;
void *v5;
void *v6;
void *journalEntryLocationEvent;
v4 = Party_GetPokemonBySlotIndex(Party_GetFromSavedata(fieldSystem->saveData), v3);
v5 = sub_0207064C(11, fieldSystem, v4, v2->unk_1C, v2->unk_14 * 32 + 16, v2->unk_18 * 32 + 16);
v6 = sub_0202BE00((20 - 19), v2->unk_1C, 11);
mon = Party_GetPokemonBySlotIndex(Party_GetFromSavedata(fieldSystem->saveData), v3);
v5 = sub_0207064C(HEAP_ID_FIELDMAP, fieldSystem, mon, v2->unk_1C, v2->unk_14 * 32 + 16, v2->unk_18 * 32 + 16);
journalEntryLocationEvent = JournalEntry_CreateEventUsedMove(LOCATION_EVENT_FLEW_TO_LOCATION - LOCATION_EVENT_USED_CUT, v2->unk_1C, HEAP_ID_FIELDMAP);
JournalEntry_SaveData(fieldSystem->journalEntry, v6, JOURNAL_UNK_04);
Heap_FreeToHeapExplicit(11, menu->unk_25C);
JournalEntry_SaveData(fieldSystem->journalEntry, journalEntryLocationEvent, JOURNAL_LOCATION);
Heap_FreeToHeapExplicit(HEAP_ID_FIELDMAP, menu->unk_25C);
FieldSystem_StartFieldMap(fieldSystem);
menu->unk_22C = sub_02070680;
@ -1762,7 +1763,7 @@ BOOL sub_0203C434(FieldTask *taskMan)
menu->state = FIELD_MENU_STATE_10;
}
return 0;
return FALSE;
}
BOOL sub_0203C50C(FieldTask *taskMan)

File diff suppressed because it is too large Load Diff

View File

@ -825,8 +825,8 @@ pokeplatinum_c = files(
'overlay080/ov80_021D1458.c',
'overlay080/ov80_021D2A08.c',
'overlay080/ov80_021D2AF4.c',
'overlay081/ov81_021D0D80.c',
'overlay081/ov81_021D1610.c',
'applications/journal_display/journal_controller.c',
'applications/journal_display/journal_printer.c',
'overlay082/ov82_0223B140.c',
'overlay082/ov82_0223B2E0.c',
'overlay083/ov83_0223B5A0.c',

View File

@ -3,6 +3,8 @@
#include <nitro.h>
#include <string.h>
#include "consts/journal.h"
#include "struct_decls/struct_0203A790_decl.h"
#include "struct_decls/struct_02061AB4_decl.h"
@ -200,15 +202,15 @@ BOOL ov6_022472E8(FieldTask *task)
static void ov6_0224732C(FieldSystem *fieldSystem, UnkStruct_ov6_02247100 *param1)
{
void *v0;
void *journalEntryLocationEvent;
if (param1->unk_08 == 2) {
v0 = sub_0202BE00((28 - 19), fieldSystem->location->mapId, 4);
journalEntryLocationEvent = JournalEntry_CreateEventUsedMove(LOCATION_EVENT_WARPED_TO_LOCATION - LOCATION_EVENT_USED_CUT, fieldSystem->location->mapId, HEAP_ID_FIELD);
} else {
return;
}
JournalEntry_SaveData(fieldSystem->journalEntry, v0, JOURNAL_UNK_04);
JournalEntry_SaveData(fieldSystem->journalEntry, journalEntryLocationEvent, JOURNAL_LOCATION);
}
static int ov6_02247354(FieldTask *task, FieldSystem *fieldSystem, UnkStruct_ov6_02247100 *param2)

View File

@ -393,7 +393,7 @@ static u8 ov7_0224D250(FieldSystem *fieldSystem, UnkStruct_ov7_0224D008 *param1)
}
if (gCoreSys.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) {
void *v0;
void *journalEntryLocationEvent;
Window_EraseMessageBox(&param1->unk_08[1], 0);
Window_Remove(&param1->unk_08[1]);
@ -401,24 +401,24 @@ static u8 ov7_0224D250(FieldSystem *fieldSystem, UnkStruct_ov7_0224D008 *param1)
StringTemplate_Free(param1->unk_8C);
Strbuf_Free(param1->unk_298);
if (param1->unk_2A9 == 0) {
if ((MapHeader_GetMapLabelTextID(fieldSystem->location->mapId) != 101) && (fieldSystem->location->mapId != 81) && (fieldSystem->location->mapId != 446)) {
if ((param1->unk_2A7 != 0) && (param1->unk_2A8 != 0)) {
v0 = sub_0202BD38(11);
JournalEntry_SaveData(param1->unk_27C, v0, JOURNAL_UNK_04);
} else if (param1->unk_2A7 > 1) {
v0 = sub_0202BD14(11);
JournalEntry_SaveData(param1->unk_27C, v0, JOURNAL_UNK_04);
} else if (param1->unk_2A8 > 1) {
v0 = sub_0202BD2C(11);
JournalEntry_SaveData(param1->unk_27C, v0, JOURNAL_UNK_04);
} else if (param1->unk_2A7 != 0) {
v0 = sub_0202BD08(11);
JournalEntry_SaveData(param1->unk_27C, v0, JOURNAL_UNK_04);
} else if (param1->unk_2A8 != 0) {
v0 = sub_0202BD20(11);
JournalEntry_SaveData(param1->unk_27C, v0, JOURNAL_UNK_04);
}
if (param1->unk_2A9 == 0 && MapHeader_GetMapLabelTextID(fieldSystem->location->mapId) != 101
&& fieldSystem->location->mapId != MAP_HEADER_ETERNA_CITY_NORTH_HOUSE
&& fieldSystem->location->mapId != MAP_HEADER_CELESTIC_TOWN_NORTHWEST_HOUSE) {
if (param1->unk_2A7 != 0 && param1->unk_2A8 != 0) {
journalEntryLocationEvent = JournalEntry_CreateEventBusinessAtMart(HEAP_ID_FIELDMAP);
JournalEntry_SaveData(param1->unk_27C, journalEntryLocationEvent, JOURNAL_LOCATION);
} else if (param1->unk_2A7 > 1) {
journalEntryLocationEvent = JournalEntry_CreateEventLotsOfShopping(HEAP_ID_FIELDMAP);
JournalEntry_SaveData(param1->unk_27C, journalEntryLocationEvent, JOURNAL_LOCATION);
} else if (param1->unk_2A8 > 1) {
journalEntryLocationEvent = JournalEntry_CreateEventSoldALot(HEAP_ID_FIELDMAP);
JournalEntry_SaveData(param1->unk_27C, journalEntryLocationEvent, JOURNAL_LOCATION);
} else if (param1->unk_2A7 != 0) {
journalEntryLocationEvent = JournalEntry_CreateEventShoppedAtMart(HEAP_ID_FIELDMAP);
JournalEntry_SaveData(param1->unk_27C, journalEntryLocationEvent, JOURNAL_LOCATION);
} else if (param1->unk_2A8 != 0) {
journalEntryLocationEvent = JournalEntry_CreateEventSoldALittle(HEAP_ID_FIELDMAP);
JournalEntry_SaveData(param1->unk_27C, journalEntryLocationEvent, JOURNAL_LOCATION);
}
}

View File

@ -2391,12 +2391,12 @@ static void ov10_02222720(UnkStruct_ov10_0221FB28 *param0)
static void ov10_022227A4(UnkStruct_ov10_0221F800 *param0)
{
void *v0;
u16 *v1;
u16 *v2;
u8 v3;
u8 v4;
u8 v5;
void *journalEntryOnlineEvent;
u16 *opponentName1;
u16 *opponentName2;
u8 opponentGender1;
u8 opponentGender2;
u8 battleResult;
u8 v6;
if (param0->unk_00 == NULL) {
@ -2404,73 +2404,73 @@ static void ov10_022227A4(UnkStruct_ov10_0221F800 *param0)
}
v6 = CommSys_CurNetId();
v5 = param0->unk_2A - 1;
battleResult = param0->unk_2A - 1;
if (MapHeader_IsUnionRoom(param0->unk_00->mapHeaderID) == 1) {
v3 = TrainerClass_Gender(param0->unk_00->trainerData[v6 ^ 1].class);
v1 = Heap_AllocFromHeap(param0->unk_24, sizeof(u16) * 8);
opponentGender1 = TrainerClass_Gender(param0->unk_00->trainerData[v6 ^ 1].class);
opponentName1 = Heap_AllocFromHeap(param0->unk_24, sizeof(u16) * (TRAINER_NAME_LEN + 1));
Strbuf_ToChars(param0->unk_14[sub_020362F4(v6 ^ 1)], v1, 8);
v0 = sub_0202C174(v1, v3, v5, param0->unk_24);
Heap_FreeToHeap(v1);
Strbuf_ToChars(param0->unk_14[sub_020362F4(v6 ^ 1)], opponentName1, TRAINER_NAME_LEN + 1);
journalEntryOnlineEvent = JournalEntry_CreateEventUnionBattle(opponentName1, opponentGender1, battleResult, param0->unk_24);
Heap_FreeToHeap(opponentName1);
} else {
switch (sub_0203895C()) {
case 1:
v3 = TrainerClass_Gender(param0->unk_00->trainerData[v6 ^ 1].class);
v1 = Heap_AllocFromHeap(param0->unk_24, sizeof(u16) * 8);
opponentGender1 = TrainerClass_Gender(param0->unk_00->trainerData[v6 ^ 1].class);
opponentName1 = Heap_AllocFromHeap(param0->unk_24, sizeof(u16) * (TRAINER_NAME_LEN + 1));
Strbuf_ToChars(param0->unk_14[sub_020362F4(v6 ^ 1)], v1, 8);
Strbuf_ToChars(param0->unk_14[sub_020362F4(v6 ^ 1)], opponentName1, TRAINER_NAME_LEN + 1);
v0 = sub_0202BFCC(v1, v3, v5, param0->unk_24);
Heap_FreeToHeap(v1);
journalEntryOnlineEvent = JournalEntry_CreateEventSingleBattle(opponentName1, opponentGender1, battleResult, param0->unk_24);
Heap_FreeToHeap(opponentName1);
break;
case 2:
v3 = TrainerClass_Gender(param0->unk_00->trainerData[v6 ^ 1].class);
v1 = Heap_AllocFromHeap(param0->unk_24, sizeof(u16) * 8);
opponentGender1 = TrainerClass_Gender(param0->unk_00->trainerData[v6 ^ 1].class);
opponentName1 = Heap_AllocFromHeap(param0->unk_24, sizeof(u16) * (TRAINER_NAME_LEN + 1));
Strbuf_ToChars(param0->unk_14[sub_020362F4(v6 ^ 1)], v1, 8);
Strbuf_ToChars(param0->unk_14[sub_020362F4(v6 ^ 1)], opponentName1, TRAINER_NAME_LEN + 1);
v0 = sub_0202C00C(v1, v3, v5, param0->unk_24);
Heap_FreeToHeap(v1);
journalEntryOnlineEvent = JournalEntry_CreateEventDoubleBattle(opponentName1, opponentGender1, battleResult, param0->unk_24);
Heap_FreeToHeap(opponentName1);
break;
case 3:
v3 = TrainerClass_Gender(param0->unk_00->trainerData[v6 ^ 1].class);
v1 = Heap_AllocFromHeap(param0->unk_24, sizeof(u16) * 8);
opponentGender1 = TrainerClass_Gender(param0->unk_00->trainerData[v6 ^ 1].class);
opponentName1 = Heap_AllocFromHeap(param0->unk_24, sizeof(u16) * (TRAINER_NAME_LEN + 1));
Strbuf_ToChars(param0->unk_14[sub_020362F4(v6 ^ 1)], v1, 8);
Strbuf_ToChars(param0->unk_14[sub_020362F4(v6 ^ 1)], opponentName1, TRAINER_NAME_LEN + 1);
v0 = sub_0202C0AC(v1, v3, v5, param0->unk_24);
Heap_FreeToHeap(v1);
journalEntryOnlineEvent = JournalEntry_CreateEventMixSingleBattle(opponentName1, opponentGender1, battleResult, param0->unk_24);
Heap_FreeToHeap(opponentName1);
break;
case 4:
v1 = Heap_AllocFromHeap(param0->unk_24, sizeof(u16) * 8);
v2 = Heap_AllocFromHeap(param0->unk_24, sizeof(u16) * 8);
opponentName1 = Heap_AllocFromHeap(param0->unk_24, sizeof(u16) * (TRAINER_NAME_LEN + 1));
opponentName2 = Heap_AllocFromHeap(param0->unk_24, sizeof(u16) * (TRAINER_NAME_LEN + 1));
if (ov10_02220AD0() == 1) {
v3 = TrainerClass_Gender(param0->unk_00->trainerData[1].class);
v4 = TrainerClass_Gender(param0->unk_00->trainerData[3].class);
opponentGender1 = TrainerClass_Gender(param0->unk_00->trainerData[1].class);
opponentGender2 = TrainerClass_Gender(param0->unk_00->trainerData[3].class);
Strbuf_ToChars(param0->unk_14[1], v1, 8);
Strbuf_ToChars(param0->unk_14[3], v2, 8);
Strbuf_ToChars(param0->unk_14[1], opponentName1, TRAINER_NAME_LEN + 1);
Strbuf_ToChars(param0->unk_14[3], opponentName2, TRAINER_NAME_LEN + 1);
} else {
v3 = TrainerClass_Gender(param0->unk_00->trainerData[0].class);
v4 = TrainerClass_Gender(param0->unk_00->trainerData[2].class);
opponentGender1 = TrainerClass_Gender(param0->unk_00->trainerData[0].class);
opponentGender2 = TrainerClass_Gender(param0->unk_00->trainerData[2].class);
Strbuf_ToChars(param0->unk_14[0], v1, 8);
Strbuf_ToChars(param0->unk_14[2], v2, 8);
Strbuf_ToChars(param0->unk_14[0], opponentName1, TRAINER_NAME_LEN + 1);
Strbuf_ToChars(param0->unk_14[2], opponentName2, TRAINER_NAME_LEN + 1);
}
v0 = sub_0202C04C(v1, v2, v3, v4, v5, param0->unk_24);
journalEntryOnlineEvent = JournalEntry_CreateEventMultiBattle(opponentName1, opponentName2, opponentGender1, opponentGender2, battleResult, param0->unk_24);
Heap_FreeToHeap(v1);
Heap_FreeToHeap(v2);
Heap_FreeToHeap(opponentName1);
Heap_FreeToHeap(opponentName2);
break;
default:
return;
}
}
JournalEntry_SaveData(param0->unk_00->journalEntry, v0, JOURNAL_UNK_1C);
JournalEntry_SaveData(param0->unk_00->journalEntry, journalEntryOnlineEvent, JOURNAL_ONLINE_EVENT);
}
static void ov10_022229D4(UnkStruct_ov10_0221FB28 *param0)

View File

@ -1666,10 +1666,10 @@ static void ov23_0223F118(SysTask *param0, void *param1)
static void ov23_0223F70C(FieldSystem *fieldSystem)
{
UnkStruct_ov23_0223EE80 *v0;
void *v1 = sub_0202BE14(11);
void *journalEntryLocationEvent = JournalEntry_CreateEventDugUnderground(HEAP_ID_FIELDMAP);
JournalEntry_SaveData(fieldSystem->journalEntry, v1, JOURNAL_UNK_04);
v0 = Heap_AllocFromHeapAtEnd(11, sizeof(UnkStruct_ov23_0223EE80));
JournalEntry_SaveData(fieldSystem->journalEntry, journalEntryLocationEvent, JOURNAL_LOCATION);
v0 = Heap_AllocFromHeapAtEnd(HEAP_ID_FIELDMAP, sizeof(UnkStruct_ov23_0223EE80));
MI_CpuFill8(v0, 0, sizeof(UnkStruct_ov23_0223EE80));
v0->fieldSystem = fieldSystem;

View File

@ -2015,10 +2015,10 @@ void ov23_0224CF18(int param0, int param1, void *param2, void *param3)
sub_02029824(v1);
}
if ((v0->unk_01 == 3) || (v0->unk_01 == 4)) {
void *v6 = sub_0202BE20(11);
if (v0->unk_01 == 3 || v0->unk_01 == 4) {
void *journalEntryLocationEvent = JournalEntry_CreateEventBuiltSecretBase(HEAP_ID_FIELDMAP);
JournalEntry_SaveData(Unk_ov23_022577AC->fieldSystem->journalEntry, v6, JOURNAL_UNK_04);
JournalEntry_SaveData(Unk_ov23_022577AC->fieldSystem->journalEntry, journalEntryLocationEvent, JOURNAL_LOCATION);
GameRecords_IncrementTrainerScore(SaveData_GetGameRecordsPtr(Unk_ov23_022577AC->fieldSystem->saveData), TRAINER_SCORE_EVENT_UNK_35);
}
}

View File

@ -301,13 +301,13 @@ int ov58_021D1018(OverlayManager *param0, int *param1)
UnkStruct_02095EAC *v0 = OverlayManager_Data(param0);
UnkStruct_0203DDFC *v1 = (UnkStruct_0203DDFC *)OverlayManager_Args(param0);
int v2;
void *v3;
void *journalEntryOnlineEvent;
switch (*param1) {
case 0:
v3 = sub_0202C168(39);
journalEntryOnlineEvent = JournalEntry_CreateEventDrewPictures(39);
JournalEntry_SaveData(v1->unk_04, v3, JOURNAL_UNK_1C);
JournalEntry_SaveData(v1->unk_04, journalEntryOnlineEvent, JOURNAL_ONLINE_EVENT);
SetMainCallback(NULL, NULL);
sub_0200A4E4(v0->unk_1D4[0][0]);
sub_0200A4E4(v0->unk_1D4[1][0]);

View File

@ -1080,12 +1080,11 @@ static int ov59_021D1DA0(UnkStruct_020961E8 *param0, int param1)
static int ov59_021D1DC8(UnkStruct_020961E8 *param0, int param1)
{
void *v0;
gCoreSys.inhibitReset = 1;
v0 = sub_0202C1B4(51);
JournalEntry_SaveData(param0->unk_08->unk_10, v0, JOURNAL_UNK_1C);
void *journalEntryOnlineEvent = JournalEntry_CreateEventMixedRecords(51);
JournalEntry_SaveData(param0->unk_08->unk_10, journalEntryOnlineEvent, JOURNAL_ONLINE_EVENT);
GameRecords_IncrementTrainerScore(param0->unk_08->records, TRAINER_SCORE_EVENT_UNK_20);
sub_02038ED4(&param0->unk_404);

View File

@ -4,6 +4,8 @@
#include <nitro.h>
#include <string.h>
#include "consts/journal.h"
#include "struct_decls/pokedexdata_decl.h"
#include "struct_decls/struct_02012B20_decl.h"
#include "struct_decls/struct_0202B370_decl.h"
@ -187,7 +189,7 @@ static void ov65_02232DC0(UnkStruct_ov65_0222EBE0 * param0, int param1);
static u32 ov65_022319B8(UnkStruct_ov65_0222EBE0 * param0);
static void ov65_02231A0C(void);
static BOOL ov65_02231A54(void);
static void ov65_02231A74(UnkStruct_ov65_0222EBE0 * param0, u32 param1);
static void ov65_02231A74(UnkStruct_ov65_0222EBE0 * param0, u32 unused);
static void ov65_0222F6EC(UnkStruct_ov65_0222EBE0 * param0);
static void ov65_0223500C(UnkStruct_ov65_0222EBE0 * param0, BOOL param1);
static void ov65_0223503C(UnkStruct_ov65_0222EBE0 * param0);
@ -3835,15 +3837,15 @@ static BOOL ov65_02231A54 (void)
return 1;
}
static void ov65_02231A74 (UnkStruct_ov65_0222EBE0 * param0, u32 param1)
static void ov65_02231A74(UnkStruct_ov65_0222EBE0 * param0, u32 unused)
{
void * v0;
JournalEntry * v1;
void *journalEntryOnlineEvent;
JournalEntry *journalEntry;
v1 = SaveData_GetJournal(param0->unk_160);
v0 = sub_0202C244(54, 29);
journalEntry = SaveData_GetJournal(param0->unk_160);
journalEntryOnlineEvent = JournalEntry_CreateEventMisc(54, ONLINE_EVENT_WIFI_CLUB);
JournalEntry_SaveData(v1, v0, JOURNAL_UNK_1C);
JournalEntry_SaveData(journalEntry, journalEntryOnlineEvent, JOURNAL_ONLINE_EVENT);
}
static int ov65_02231A98 (UnkStruct_ov65_0222EBE0 * param0, int param1)

View File

@ -3,6 +3,8 @@
#include <nitro.h>
#include <string.h>
#include "consts/journal.h"
#include "struct_defs/struct_0200C738.h"
#include "struct_defs/struct_0207DE04.h"
#include "struct_defs/struct_0207DFAC.h"
@ -191,7 +193,7 @@ static void ov65_02237940(UnkStruct_ov65_022367A8 *param0, UnkStruct_ov65_022379
static void ov65_0223796C(UnkStruct_ov65_022367A8 *param0, UnkStruct_ov65_02237908 *param1);
static void ov65_02237970(UnkStruct_ov65_022367A8 *param0);
static BOOL ov65_02237A10(UnkStruct_ov65_022367A8 *param0);
static void ov65_02237A24(UnkStruct_0207DE04 *param0, u32 param1);
static void ov65_02237A24(UnkStruct_0207DE04 *param0, u32 heapID);
static void ov65_02237A44(UnkStruct_ov65_022367A8 *param0);
static BOOL ov65_02237A54(UnkStruct_ov65_022367A8 *param0);
static BOOL ov65_02237A70(UnkStruct_ov65_022367A8 *param0, UnkStruct_0207DE04 *param1, u32 param2);
@ -1602,16 +1604,16 @@ static BOOL ov65_02237A10(UnkStruct_ov65_022367A8 *param0)
return 0;
}
static void ov65_02237A24(UnkStruct_0207DE04 *param0, u32 param1)
static void ov65_02237A24(UnkStruct_0207DE04 *param0, u32 heapID)
{
void *v0;
JournalEntry *v1;
void *journalEntryOnlineEvent;
JournalEntry *journalEntry;
UnkStruct_0207E060 *v2;
v1 = SaveData_GetJournal(param0->unk_08);
v0 = sub_0202C244(param1, 29);
journalEntry = SaveData_GetJournal(param0->unk_08);
journalEntryOnlineEvent = JournalEntry_CreateEventMisc(heapID, ONLINE_EVENT_WIFI_CLUB);
JournalEntry_SaveData(v1, v0, JOURNAL_UNK_1C);
JournalEntry_SaveData(journalEntry, journalEntryOnlineEvent, JOURNAL_ONLINE_EVENT);
}
static void ov65_02237A44(UnkStruct_ov65_022367A8 *param0)

View File

@ -7,6 +7,7 @@
#include "constants/species.h"
#include "consts/game_records.h"
#include "consts/journal.h"
#include "struct_decls/pokedexdata_decl.h"
#include "struct_decls/struct_02014FB0_decl.h"
@ -1734,86 +1735,80 @@ void ov66_0222EEE4(UnkStruct_ov66_0222DFF8 *param0, u32 param1)
void ov66_0222EEF4(UnkStruct_ov66_0222DFF8 *param0, u32 param1)
{
UnkStruct_ov66_0222E71C *v0;
TrainerInfo *v1;
void *v2;
JournalEntry *v3;
TrainerInfo *trainerInfo;
void *journalEntryOnlineEvent;
JournalEntry *journalEntry;
v3 = SaveData_GetJournal(param0->unk_00);
journalEntry = SaveData_GetJournal(param0->unk_00);
v0 = (UnkStruct_ov66_0222E71C *)ov66_0222E374(param0, param1);
if (v0 != NULL) {
v1 = TrainerInfo_New(112);
ov66_0222E640(v0, v1, 112);
v2 = sub_0202C250(TrainerInfo_Name(v1), v0->unk_38, 112, 22);
trainerInfo = TrainerInfo_New(112);
ov66_0222E640(v0, trainerInfo, 112);
journalEntryOnlineEvent = JournalEntry_CreateEventInteraction(TrainerInfo_Name(trainerInfo), v0->unk_38, 112, ONLINE_EVENT_CHATTED_IN_PLAZA);
JournalEntry_SaveData(v3, v2, JOURNAL_UNK_1C);
Heap_FreeToHeap(v1);
JournalEntry_SaveData(journalEntry, journalEntryOnlineEvent, JOURNAL_ONLINE_EVENT);
Heap_FreeToHeap(trainerInfo);
}
}
void ov66_0222EF44(UnkStruct_ov66_0222DFF8 *param0, u32 param1)
{
UnkStruct_ov66_0222E71C *v0;
TrainerInfo *v1;
void *v2;
JournalEntry *v3;
TrainerInfo *trainerInfo;
void *journalEntryOnlineEvent;
JournalEntry *journalEntry;
v3 = SaveData_GetJournal(param0->unk_00);
journalEntry = SaveData_GetJournal(param0->unk_00);
v0 = (UnkStruct_ov66_0222E71C *)ov66_0222E374(param0, param1);
if (v0 != NULL) {
v1 = TrainerInfo_New(112);
ov66_0222E640(v0, v1, 112);
trainerInfo = TrainerInfo_New(112);
ov66_0222E640(v0, trainerInfo, 112);
journalEntryOnlineEvent = JournalEntry_CreateEventInteraction(TrainerInfo_Name(trainerInfo), v0->unk_38, 112, ONLINE_EVENT_GOT_TAP_TOY);
v2 = sub_0202C250(TrainerInfo_Name(v1), v0->unk_38, 112, 23);
JournalEntry_SaveData(v3, v2, JOURNAL_UNK_1C);
Heap_FreeToHeap(v1);
JournalEntry_SaveData(journalEntry, journalEntryOnlineEvent, JOURNAL_ONLINE_EVENT);
Heap_FreeToHeap(trainerInfo);
}
}
void ov66_0222EF94(UnkStruct_ov66_0222DFF8 *param0, enum PlazaMinigame param1)
void ov66_0222EF94(UnkStruct_ov66_0222DFF8 *param0, enum PlazaMinigame minigame)
{
void *v0;
JournalEntry *v1;
void *journalEntryOnlineEvent;
JournalEntry *journalEntry = SaveData_GetJournal(param0->unk_00);
v1 = SaveData_GetJournal(param0->unk_00);
switch (param1) {
switch (minigame) {
case UnkEnum_ov66_022324D0_00:
case UnkEnum_ov66_022324D0_01:
case UnkEnum_ov66_022324D0_02:
v0 = sub_0202C280(param1, 112, 24);
journalEntryOnlineEvent = JournalEntry_CreateEventPlazaMinigame(minigame, 112, ONLINE_EVENT_PLAZA_MINIGAME);
break;
case UnkEnum_ov66_022324D0_03:
case UnkEnum_ov66_022324D0_04:
v0 = sub_0202C244(112, 25);
journalEntryOnlineEvent = JournalEntry_CreateEventMisc(112, ONLINE_EVENT_PLAYED_WITH_FOOTPRINT_STAMP);
break;
case UnkEnum_ov66_022324D0_05:
v0 = sub_0202C244(112, 26);
journalEntryOnlineEvent = JournalEntry_CreateEventMisc(112, ONLINE_EVENT_VIEWED_PLAZA_VISITOR_PROFILES);
break;
case UnkEnum_ov66_022324D0_06:
v0 = sub_0202C244(112, 27);
journalEntryOnlineEvent = JournalEntry_CreateEventMisc(112, ONLINE_EVENT_READ_PLAZA_NEWS);
break;
default:
v0 = NULL;
journalEntryOnlineEvent = NULL;
break;
}
if (v0) {
JournalEntry_SaveData(v1, v0, JOURNAL_UNK_1C);
if (journalEntryOnlineEvent) {
JournalEntry_SaveData(journalEntry, journalEntryOnlineEvent, JOURNAL_ONLINE_EVENT);
}
}
void ov66_0222F000(UnkStruct_ov66_0222DFF8 *param0)
{
void *v0;
JournalEntry *v1;
JournalEntry *journalEntry = SaveData_GetJournal(param0->unk_00);
void *journalEntryOnlineEvent = JournalEntry_CreateEventMisc(112, ONLINE_EVENT_JOINED_PARADE);
v1 = SaveData_GetJournal(param0->unk_00);
v0 = sub_0202C244(112, 28);
JournalEntry_SaveData(v1, v0, JOURNAL_UNK_1C);
JournalEntry_SaveData(journalEntry, journalEntryOnlineEvent, JOURNAL_ONLINE_EVENT);
}
void ov66_0222F020(UnkStruct_ov66_0222DFF8 *param0)

View File

@ -1,551 +0,0 @@
#include "overlay081/ov81_021D0D80.h"
#include <nitro.h>
#include <string.h>
#include "struct_defs/struct_02099F80.h"
#include "overlay081/ov81_021D1610.h"
#include "overlay081/struct_ov81_021D1610.h"
#include "bg_window.h"
#include "core_sys.h"
#include "font.h"
#include "graphics.h"
#include "gx_layers.h"
#include "heap.h"
#include "journal.h"
#include "message.h"
#include "narc.h"
#include "overlay_manager.h"
#include "save_player.h"
#include "savedata.h"
#include "strbuf.h"
#include "string_template.h"
#include "trainer_info.h"
#include "unk_020041CC.h"
#include "unk_02005474.h"
#include "unk_0200F174.h"
#include "unk_02017728.h"
#include "unk_020393C8.h"
#include "unk_0208C098.h"
static void ov81_021D0F00(void *param0);
static void ov81_021D0F20(void);
static void ov81_021D0F40(BgConfig *param0);
static void ov81_021D101C(BgConfig *param0);
static void ov81_021D1050(UnkStruct_ov81_021D1610 *param0);
static void ov81_021D1130(UnkStruct_ov81_021D1610 *param0);
static void ov81_021D115C(UnkStruct_ov81_021D1610 *param0);
static int ov81_021D1174(UnkStruct_ov81_021D1610 *param0);
static int ov81_021D1188(UnkStruct_ov81_021D1610 *param0);
static int ov81_021D120C(UnkStruct_ov81_021D1610 *param0);
static int ov81_021D12E8(UnkStruct_ov81_021D1610 *param0);
static int ov81_021D1358(UnkStruct_ov81_021D1610 *param0);
static u8 ov81_021D13CC(UnkStruct_ov81_021D1610 *param0, s8 param1);
static void ov81_021D1360(UnkStruct_ov81_021D1610 *param0);
static void ov81_021D140C(UnkStruct_ov81_021D1610 *param0, u8 param1, u8 param2);
static void ov81_021D1434(UnkStruct_ov81_021D1610 *param0);
static u8 ov81_021D14E0(UnkStruct_ov81_021D1610 *param0);
static u8 ov81_021D156C(UnkStruct_ov81_021D1610 *param0);
static const u8 Unk_ov81_021D33E8[9][32] = {
{ 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xA, 0xB, 0xC, 0xD, 0xE, 0xF, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F },
{ 0x0, 0x1, 0x2, 0x3, 0x6, 0x7, 0x8, 0x9, 0xA, 0xB, 0xC, 0xD, 0xE, 0xF, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF },
{ 0x0, 0x1, 0x2, 0x3, 0x8, 0x9, 0xA, 0xB, 0xC, 0xD, 0xE, 0xF, 0x10, 0x11, 0x12, 0x13, 0x14, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },
{ 0x0, 0x1, 0x2, 0x3, 0x8, 0x9, 0xA, 0xB, 0xC, 0xD, 0xE, 0xF, 0x10, 0x11, 0x12, 0x13, 0x1C, 0x1D, 0x1E, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },
{ 0x0, 0x1, 0x2, 0x3, 0x8, 0x9, 0xA, 0xB, 0xC, 0xD, 0xE, 0xF, 0x10, 0x11, 0x12, 0x13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },
{ 0x0, 0x1, 0xA, 0xB, 0xC, 0xD, 0xE, 0xF, 0x10, 0x11, 0x12, 0x13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },
{ 0xE, 0xF, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },
{ 0x1C, 0x1D, 0x1E, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },
{ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
};
int ov81_021D0D80(OverlayManager *param0, int *param1)
{
UnkStruct_ov81_021D1610 *v0;
SaveData *v1;
SetMainCallback(NULL, NULL);
DisableHBlank();
GXLayers_DisableEngineALayers();
GXLayers_DisableEngineBLayers();
GX_SetVisiblePlane(0);
GXS_SetVisiblePlane(0);
G2_BlendNone();
G2S_BlendNone();
SetAutorepeat(4, 8);
Heap_Create(3, 42, 0x20000);
v1 = OverlayManager_Args(param0);
v0 = OverlayManager_NewData(param0, sizeof(UnkStruct_ov81_021D1610), 42);
memset(v0, 0, sizeof(UnkStruct_ov81_021D1610));
v0->unk_00 = BgConfig_New(42);
v0->unk_4C = v1;
v0->unk_44 = SaveData_GetJournal(v1);
v0->unk_48 = SaveData_GetTrainerInfo(v1);
sub_0208C120(0, 42);
Font_UseImmediateGlyphAccess(FONT_SYSTEM, 42);
ov81_021D0F20();
ov81_021D0F40(v0->unk_00);
ov81_021D1050(v0);
ov81_021D1130(v0);
ov81_021D1610(v0);
ov81_021D164C(v0, 0);
ov81_021D1434(v0);
SetMainCallback(ov81_021D0F00, v0);
GXLayers_TurnBothDispOn();
sub_02039734();
GXLayers_EngineAToggleLayers(GX_PLANEMASK_OBJ, 1);
sub_02004550(67, 0, 0);
return 1;
}
int ov81_021D0E70(OverlayManager *param0, int *param1)
{
UnkStruct_ov81_021D1610 *v0 = OverlayManager_Data(param0);
switch (*param1) {
case 0:
*param1 = ov81_021D1174(v0);
break;
case 1:
*param1 = ov81_021D1188(v0);
break;
case 2:
*param1 = ov81_021D120C(v0);
break;
case 3:
*param1 = ov81_021D12E8(v0);
break;
case 4:
if (ov81_021D1358(v0) == 1) {
return 1;
}
}
return 0;
}
int ov81_021D0EC4(OverlayManager *param0, int *param1)
{
UnkStruct_ov81_021D1610 *v0 = OverlayManager_Data(param0);
SetMainCallback(NULL, NULL);
ov81_021D1634(v0);
ov81_021D101C(v0->unk_00);
ov81_021D115C(v0);
Font_UseLazyGlyphAccess(FONT_SYSTEM);
OverlayManager_FreeData(param0);
Heap_Destroy(42);
return 1;
}
static void ov81_021D0F00(void *param0)
{
UnkStruct_ov81_021D1610 *v0 = param0;
Bg_RunScheduledUpdates(v0->unk_00);
OS_SetIrqCheckFlag(OS_IE_V_BLANK);
}
static void ov81_021D0F20(void)
{
UnkStruct_02099F80 v0 = {
GX_VRAM_BG_256_AB,
GX_VRAM_BGEXTPLTT_NONE,
GX_VRAM_SUB_BG_128_C,
GX_VRAM_SUB_BGEXTPLTT_NONE,
GX_VRAM_OBJ_64_E,
GX_VRAM_OBJEXTPLTT_NONE,
GX_VRAM_SUB_OBJ_16_I,
GX_VRAM_SUB_OBJEXTPLTT_NONE,
GX_VRAM_TEX_NONE,
GX_VRAM_TEXPLTT_NONE
};
GXLayers_SetBanks(&v0);
}
static void ov81_021D0F40(BgConfig *param0)
{
{
GraphicsModes v0 = {
GX_DISPMODE_GRAPHICS,
GX_BGMODE_0,
GX_BGMODE_0,
GX_BG0_AS_2D,
};
SetAllGraphicsModes(&v0);
}
{
BgTemplate v1 = {
0,
0,
0x800,
0,
1,
GX_BG_COLORMODE_16,
GX_BG_SCRBASE_0xf800,
GX_BG_CHARBASE_0x10000,
GX_BG_EXTPLTT_01,
0,
0,
0,
0
};
Bg_InitFromTemplate(param0, 0, &v1, 0);
Bg_ClearTilemap(param0, 0);
}
{
BgTemplate v2 = {
0,
0,
0x800,
0,
1,
GX_BG_COLORMODE_16,
GX_BG_SCRBASE_0xf000,
GX_BG_CHARBASE_0x20000,
GX_BG_EXTPLTT_01,
2,
0,
0,
0
};
Bg_InitFromTemplate(param0, 1, &v2, 0);
Bg_ClearTilemap(param0, 1);
}
{
BgTemplate v3 = {
0,
0,
0x800,
0,
1,
GX_BG_COLORMODE_16,
GX_BG_SCRBASE_0xe800,
GX_BG_CHARBASE_0x00000,
GX_BG_EXTPLTT_01,
1,
0,
0,
0
};
Bg_InitFromTemplate(param0, 2, &v3, 0);
}
{
BgTemplate v4 = {
0,
0,
0x800,
0,
1,
GX_BG_COLORMODE_16,
GX_BG_SCRBASE_0xe000,
GX_BG_CHARBASE_0x00000,
GX_BG_EXTPLTT_01,
3,
0,
0,
0
};
Bg_InitFromTemplate(param0, 3, &v4, 0);
}
Bg_ClearTilesRange(0, 32, 0, 42);
Bg_ClearTilesRange(1, 32, 0, 42);
}
static void ov81_021D101C(BgConfig *param0)
{
GXLayers_DisableEngineALayers();
Bg_FreeTilemapBuffer(param0, 3);
Bg_FreeTilemapBuffer(param0, 2);
Bg_FreeTilemapBuffer(param0, 1);
Bg_FreeTilemapBuffer(param0, 0);
Heap_FreeToHeapExplicit(42, param0);
}
static void ov81_021D1050(UnkStruct_ov81_021D1610 *param0)
{
u16 *v0;
NARC *v1;
v1 = NARC_ctor(NARC_INDEX_GRAPHIC__F_NOTE_GRA, 42);
if (TrainerInfo_Gender(param0->unk_48) == 0) {
Graphics_LoadTilesToBgLayerFromOpenNARC(v1, 2, param0->unk_00, 2, 0, 0, 0, 42);
Graphics_LoadTilemapToBgLayerFromOpenNARC(v1, 0, param0->unk_00, 2, 0, 0, 0, 42);
Graphics_LoadPaletteFromOpenNARC(v1, 4, 0, 0, 0, 42);
} else {
Graphics_LoadTilesToBgLayerFromOpenNARC(v1, 3, param0->unk_00, 2, 0, 0, 0, 42);
Graphics_LoadTilemapToBgLayerFromOpenNARC(v1, 1, param0->unk_00, 2, 0, 0, 0, 42);
Graphics_LoadPaletteFromOpenNARC(v1, 5, 0, 0, 0, 42);
}
NARC_dtor(v1);
v0 = Bg_GetTilemapBuffer(param0->unk_00, 2);
MI_CpuCopy16(v0, param0->unk_5C, 0x800);
Bg_LoadTilemapBuffer(param0->unk_00, 3, param0->unk_5C, 0x800);
Font_LoadTextPalette(0, 15 * 32, 42);
Bg_MaskPalette(4, 0);
}
static void ov81_021D1130(UnkStruct_ov81_021D1610 *param0)
{
param0->unk_50 = MessageLoader_Init(0, 26, 366, 42);
param0->unk_54 = StringTemplate_Default(42);
param0->unk_58 = Strbuf_Init(128, 42);
}
static void ov81_021D115C(UnkStruct_ov81_021D1610 *param0)
{
MessageLoader_Free(param0->unk_50);
StringTemplate_Free(param0->unk_54);
Strbuf_Free(param0->unk_58);
}
static int ov81_021D1174(UnkStruct_ov81_021D1610 *param0)
{
if (IsScreenTransitionDone() == 1) {
return 1;
}
return 0;
}
static int ov81_021D1188(UnkStruct_ov81_021D1610 *param0)
{
if (gCoreSys.pressedKeys & PAD_KEY_LEFT) {
if (ov81_021D13CC(param0, -1) == 1) {
return 2;
}
return 1;
}
if (gCoreSys.pressedKeys & (PAD_BUTTON_A | PAD_KEY_RIGHT)) {
if (ov81_021D13CC(param0, 1) == 1) {
return 3;
}
return 1;
}
if (gCoreSys.pressedKeys & PAD_BUTTON_B) {
if (param0->unk_105C != 0) {
if (ov81_021D13CC(param0, -1) == 1) {
return 2;
}
} else {
sub_0208C120(1, 42);
return 4;
}
}
if (gCoreSys.pressedKeys & PAD_BUTTON_START) {
sub_0208C120(1, 42);
return 4;
}
return 1;
}
static int ov81_021D120C(UnkStruct_ov81_021D1610 *param0)
{
switch (param0->unk_105E) {
case 0:
ov81_021D1360(param0);
ov81_021D140C(param0, param0->unk_1063, param0->unk_105C - 1);
param0->unk_105C--;
ov81_021D164C(param0, param0->unk_1060 ^ 1);
param0->unk_105E = 1;
Sound_PlayEffect(1681);
break;
case 1:
if (ov81_021D14E0(param0) == 1) {
param0->unk_105F = 0;
param0->unk_105E = 0;
param0->unk_1060 ^= 1;
Bg_LoadToTilemapRect(param0->unk_00, param0->unk_1062, param0->unk_85C, 0, 0, 32, 32);
Bg_LoadToTilemapRect(param0->unk_00, param0->unk_1061, param0->unk_5C, 0, 0, 32, 32);
Bg_ScheduleTilemapTransfer(param0->unk_00, param0->unk_1062);
Bg_ScheduleTilemapTransfer(param0->unk_00, param0->unk_1061);
return 1;
}
}
return 2;
}
static int ov81_021D12E8(UnkStruct_ov81_021D1610 *param0)
{
switch (param0->unk_105E) {
case 0:
ov81_021D1360(param0);
param0->unk_105C++;
ov81_021D164C(param0, param0->unk_1060 ^ 1);
param0->unk_105E = 1;
Sound_PlayEffect(1681);
break;
case 1:
if (ov81_021D156C(param0) == 1) {
param0->unk_105F = 0;
param0->unk_105E = 0;
param0->unk_1060 ^= 1;
return 1;
}
}
return 3;
}
static int ov81_021D1358(UnkStruct_ov81_021D1610 *param0)
{
return IsScreenTransitionDone();
}
static void ov81_021D1360(UnkStruct_ov81_021D1610 *param0)
{
if (param0->unk_1060 == 0) {
param0->unk_1062 = 0;
param0->unk_1061 = 2;
param0->unk_1064 = 1;
param0->unk_1063 = 3;
} else {
param0->unk_1062 = 1;
param0->unk_1061 = 3;
param0->unk_1064 = 0;
param0->unk_1063 = 2;
}
}
static u8 ov81_021D13A0(UnkStruct_ov81_021D1610 *param0, u8 param1)
{
JournalEntryTitle journalEntryTitle;
JournalEntry_GetData(param0->unk_44, &journalEntryTitle, JOURNAL_TITLE, param1);
if ((journalEntryTitle.year == 0) && (journalEntryTitle.month == 0) && (journalEntryTitle.day == 0)) {
return 0;
}
return 1;
}
static u8 ov81_021D13CC(UnkStruct_ov81_021D1610 *param0, s8 param1)
{
if (param1 == 1) {
if (param0->unk_105C != 9) {
if (ov81_021D13A0(param0, param0->unk_105C + 1) == 1) {
return 1;
}
}
} else {
if (param0->unk_105C != 0) {
if (ov81_021D13A0(param0, param0->unk_105C - 1) == 1) {
return 1;
}
}
}
return 0;
}
static void ov81_021D140C(UnkStruct_ov81_021D1610 *param0, u8 param1, u8 param2)
{
Bg_ChangeTilemapRectPalette(param0->unk_00, param1, 0, 0, 32, 32, param2);
Bg_ScheduleTilemapTransfer(param0->unk_00, param1);
}
static void ov81_021D1434(UnkStruct_ov81_021D1610 *param0)
{
u16 *v0;
v0 = Bg_GetTilemapBuffer(param0->unk_00, 0);
MI_CpuCopy16(v0, param0->unk_85C, 0x800);
}
static void ov81_021D1450(UnkStruct_ov81_021D1610 *param0, u16 *param1, u16 param2, u16 param3)
{
u16 *v0;
u16 v1, v2;
v0 = Bg_GetTilemapBuffer(param0->unk_00, param2);
for (v2 = 0; v2 < 32; v2++) {
if (Unk_ov81_021D33E8[param3][v2] == 0xff) {
Bg_FillTilemapRect(param0->unk_00, param2, 0, v2, 0, 1, 32, 0);
continue;
}
for (v1 = 0; v1 < 32; v1++) {
v0[v1 * 32 + v2] = param1[v1 * 32 + Unk_ov81_021D33E8[param3][v2]];
}
}
Bg_ScheduleTilemapTransfer(param0->unk_00, param2);
}
static u8 ov81_021D14E0(UnkStruct_ov81_021D1610 *param0)
{
ov81_021D1450(param0, param0->unk_85C, param0->unk_1062, param0->unk_105F);
ov81_021D1450(param0, param0->unk_5C, param0->unk_1061, param0->unk_105F);
ov81_021D140C(param0, param0->unk_1061, param0->unk_105C + 1);
param0->unk_105F++;
if (param0->unk_105F == 9) {
Bg_SetPriority(param0->unk_1064, 0);
Bg_SetPriority(param0->unk_1063, 1);
Bg_SetPriority(param0->unk_1062, 2);
Bg_SetPriority(param0->unk_1061, 3);
return 1;
}
return 0;
}
static u8 ov81_021D156C(UnkStruct_ov81_021D1610 *param0)
{
ov81_021D1450(param0, param0->unk_85C, param0->unk_1064, 8 - param0->unk_105F);
ov81_021D1450(param0, param0->unk_5C, param0->unk_1063, 8 - param0->unk_105F);
ov81_021D140C(param0, param0->unk_1063, param0->unk_105C);
if (param0->unk_105F == 1) {
Bg_SetPriority(param0->unk_1064, 0);
Bg_SetPriority(param0->unk_1063, 1);
Bg_SetPriority(param0->unk_1062, 2);
Bg_SetPriority(param0->unk_1061, 3);
}
param0->unk_105F++;
if (param0->unk_105F == 9) {
return 1;
}
return 0;
}

File diff suppressed because it is too large Load Diff

View File

@ -795,13 +795,11 @@ static int ov83_0223C258(UnkStruct_ov83_0223C344 *param0, UnkStruct_ov83_0223B78
ov83_0223EC8C(&param1->unk_6A0, 4);
}
{
void *v0;
void *journalEntryOnlineEvent;
if (param1->unk_1490 == 1) {
v0 = sub_0202C1E0(param1->unk_00);
JournalEntry_SaveData(param0->unk_10->unk_1C, v0, JOURNAL_UNK_1C);
}
if (param1->unk_1490 == 1) {
journalEntryOnlineEvent = JournalEntry_CreateEventMadePoffins(param1->unk_00);
JournalEntry_SaveData(param0->unk_10->unk_1C, journalEntryOnlineEvent, JOURNAL_ONLINE_EVENT);
}
}

View File

@ -107,7 +107,7 @@ static int ov88_0223CF30(int param0, int param1, UnkStruct_ov88_0223C8AC *param2
static void ov88_0223CF68(int param0, CellActor *param1, int param2);
static int ov88_0223CFF4(u32 *param0, int *param1, CellActor *param2, UnkStruct_ov88_0223C8AC *param3, int param4);
static int ov88_0223C800(int param0, Pokemon *param1, u8 *param2, ArchivedSprite *param3);
static void ov88_0223E7F0(JournalEntry *param0, Pokemon *param1);
static void ov88_0223E7F0(JournalEntry *journalEntry, Pokemon *mon);
static void ov88_0223D140(ChatotCry *param0);
static void ov88_0223E894(UnkStruct_02095E80 *param0);
static void ov88_0223E8B4(UnkStruct_02095E80 *param0);
@ -2527,15 +2527,15 @@ static void ov88_0223E694(Party *param0, Party *param1, int param2, int param3,
Heap_FreeToHeap(v1);
}
static void ov88_0223E7F0(JournalEntry *param0, Pokemon *param1)
static void ov88_0223E7F0(JournalEntry *journalEntry, Pokemon *mon)
{
void *v0;
TrainerInfo *v1 = CommInfo_TrainerInfo(CommSys_CurNetId() ^ 1);
u16 v2[10 + 1];
void *journalEntryOnlineEvent;
TrainerInfo *trainerInfo = CommInfo_TrainerInfo(CommSys_CurNetId() ^ 1);
u16 nickname[MON_NAME_LEN + 1];
Pokemon_GetValue(param1, MON_DATA_NICKNAME, v2);
v0 = sub_0202C11C((u16 *)TrainerInfo_Name(v1), TrainerInfo_Gender(v1), v2, Pokemon_GetGender(param1), 26);
JournalEntry_SaveData(param0, v0, JOURNAL_UNK_1C);
Pokemon_GetValue(mon, MON_DATA_NICKNAME, nickname);
journalEntryOnlineEvent = JournalEntry_CreateEventGotPokemonFromTrade((u16 *)TrainerInfo_Name(trainerInfo), TrainerInfo_Gender(trainerInfo), nickname, Pokemon_GetGender(mon), 26);
JournalEntry_SaveData(journalEntry, journalEntryOnlineEvent, JOURNAL_ONLINE_EVENT);
}
static void ov88_0223E848(UnkStruct_02095E80 *param0)

View File

@ -1392,15 +1392,15 @@ static void ov94_02243E2C(UnkStruct_0202C878 *param0, UnkStruct_ov94_0223BA88 *p
sub_02038FDC(param0, param1->unk_11E, param1->unk_11F, param1->unk_123);
}
static void ov94_02243E48(JournalEntry *param0, UnkStruct_ov94_0223BA88 *param1)
static void ov94_02243E48(JournalEntry *journalEntry, UnkStruct_ov94_0223BA88 *param1)
{
void *v0;
u16 v1[10 + 1];
Pokemon *v2 = (Pokemon *)param1->unk_00.unk_00;
void *journalEntryOnlineEvent;
u16 nickname[MON_NAME_LEN + 1];
Pokemon *mon = (Pokemon *)param1->unk_00.unk_00;
Pokemon_GetValue(v2, MON_DATA_NICKNAME, v1);
v0 = sub_0202C1EC(param1->unk_10C, param1->unk_F6, v1, Pokemon_GetGender(v2), 62);
JournalEntry_SaveData(param0, v0, JOURNAL_UNK_1C);
Pokemon_GetValue(mon, MON_DATA_NICKNAME, nickname);
journalEntryOnlineEvent = JournalEntry_CreateEventGotPokemonGTS(param1->unk_10C, param1->unk_F6, nickname, Pokemon_GetGender(mon), 62);
JournalEntry_SaveData(journalEntry, journalEntryOnlineEvent, JOURNAL_ONLINE_EVENT);
}
static int ov94_02243E84(UnkStruct_ov94_0223FD4C *param0, UnkStruct_ov94_0223BA88 *param1)

View File

@ -4,6 +4,7 @@
#include <string.h>
#include "consts/game_records.h"
#include "consts/journal.h"
#include "struct_decls/struct_0200C6E4_decl.h"
#include "struct_decls/struct_0200C704_decl.h"
@ -1351,11 +1352,9 @@ static int ov109_021D19FC(UnkStruct_ov109_021D0F70 *param0)
static int ov109_021D1A14(UnkStruct_ov109_021D0F70 *param0)
{
void *v0;
void *journalEntryOnlineEvent = JournalEntry_CreateEventMisc(95, ONLINE_EVENT_SPIN_TRADE);
v0 = sub_0202C244(95, 17);
JournalEntry_SaveData(param0->unk_CC->unk_14.unk_18, v0, JOURNAL_UNK_1C);
JournalEntry_SaveData(param0->unk_CC->unk_14.unk_18, journalEntryOnlineEvent, JOURNAL_ONLINE_EVENT);
GameRecords_IncrementRecordValue(param0->unk_CC->unk_14.records, RECORD_UNK_119);
GameRecords_IncrementTrainerScore(param0->unk_CC->unk_14.records, TRAINER_SCORE_EVENT_UNK_45);
ov109_021D2634(param0, 11);

View File

@ -4,6 +4,7 @@
#include <string.h>
#include "consts/game_records.h"
#include "consts/journal.h"
#include "struct_defs/struct_02099F80.h"
#include "struct_defs/struct_0209BF64.h"
@ -1050,15 +1051,15 @@ static int ov109_021D4CA8(UnkStruct_ov109_021D5140 *param0, int param1)
static int ov109_021D4CC8(UnkStruct_ov109_021D5140 *param0, int param1)
{
void *v0;
void *journalEntryOnlineEvent;
gCoreSys.inhibitReset = 1;
v0 = sub_0202C1B4(95);
JournalEntry_SaveData(param0->unk_0C->unk_14.unk_18, v0, JOURNAL_UNK_1C);
journalEntryOnlineEvent = JournalEntry_CreateEventMixedRecords(95);
JournalEntry_SaveData(param0->unk_0C->unk_14.unk_18, journalEntryOnlineEvent, JOURNAL_ONLINE_EVENT);
v0 = sub_0202C244(95, 17);
JournalEntry_SaveData(param0->unk_0C->unk_14.unk_18, v0, JOURNAL_UNK_1C);
journalEntryOnlineEvent = JournalEntry_CreateEventMisc(95, ONLINE_EVENT_SPIN_TRADE);
JournalEntry_SaveData(param0->unk_0C->unk_14.unk_18, journalEntryOnlineEvent, JOURNAL_ONLINE_EVENT);
GameRecords_IncrementTrainerScore(param0->unk_0C->unk_14.records, TRAINER_SCORE_EVENT_UNK_20);
sub_02038ED4(&param0->unk_414);
param0->unk_3B8 = 28;

View File

@ -8,6 +8,7 @@
#include "constants/heap.h"
#include "constants/overworld_weather.h"
#include "constants/species.h"
#include "consts/journal.h"
#include "consts/scrcmd.h"
#include "struct_decls/pokedexdata_decl.h"
@ -559,7 +560,7 @@ static BOOL ScrCmd_1C3(ScriptContext *ctx);
static BOOL ScrCmd_1C4(ScriptContext *ctx);
static BOOL ScrCmd_1C5(ScriptContext *ctx);
static BOOL ScrCmd_GiveJournal(ScriptContext *ctx);
static BOOL ScrCmd_1CD(ScriptContext *ctx);
static BOOL ScrCmd_CreateJournalEvent(ScriptContext *ctx);
static BOOL ScrCmd_1CE(ScriptContext *ctx);
static BOOL ScrCmd_1D2(ScriptContext *ctx);
static BOOL ScrCmd_1D3(ScriptContext *ctx);
@ -1226,7 +1227,7 @@ const ScrCmdFunc Unk_020EAC58[] = {
ScrCmd_1CA,
ScrCmd_1CB,
ScrCmd_GiveJournal,
ScrCmd_1CD,
ScrCmd_CreateJournalEvent,
ScrCmd_1CE,
ScrCmd_Strength,
ScrCmd_Flash,
@ -3878,20 +3879,20 @@ static BOOL sub_02041CF4(ScriptContext *ctx)
v2 = *v0;
if (FieldSystem_IsRunningApplication(fieldSystem)) {
return 0;
return FALSE;
}
if (v2->unk_08 == 1) {
void *v3;
void *journalEntryLocationEvent;
v3 = sub_0202BCFC(11);
JournalEntry_SaveData(fieldSystem->journalEntry, v3, JOURNAL_UNK_04);
journalEntryLocationEvent = JournalEntry_CreateEventUsedPCBox(HEAP_ID_FIELDMAP);
JournalEntry_SaveData(fieldSystem->journalEntry, journalEntryLocationEvent, JOURNAL_LOCATION);
}
Heap_FreeToHeap(*v0);
*v0 = NULL;
return 1;
return TRUE;
}
static BOOL sub_02041D3C(ScriptContext *ctx)
@ -6105,53 +6106,53 @@ static BOOL ScrCmd_GiveJournal(ScriptContext *ctx)
return FALSE;
}
static BOOL ScrCmd_1CD(ScriptContext *ctx)
static BOOL ScrCmd_CreateJournalEvent(ScriptContext *ctx)
{
u8 v0;
u16 v1 = ScriptContext_GetVar(ctx);
u16 v2 = ScriptContext_GetVar(ctx);
u16 v3 = ScriptContext_GetVar(ctx);
u16 v4 = ScriptContext_GetVar(ctx);
u16 v5 = ScriptContext_GetVar(ctx);
void **v6 = FieldSystem_GetScriptMemberPtr(ctx->fieldSystem, SCRIPT_MANAGER_DATA_PTR);
u8 dataType;
u16 eventType = ScriptContext_GetVar(ctx);
u16 eventParam = ScriptContext_GetVar(ctx);
u16 unused1 = ScriptContext_GetVar(ctx);
u16 unused2 = ScriptContext_GetVar(ctx);
u16 unused3 = ScriptContext_GetVar(ctx);
void **data = FieldSystem_GetScriptMemberPtr(ctx->fieldSystem, SCRIPT_MANAGER_DATA_PTR);
switch (v1) {
case 16:
v0 = JOURNAL_UNK_04;
*v6 = sub_0202BDD4(4);
switch (eventType) {
case LOCATION_EVENT_GAME_CORNER:
dataType = JOURNAL_LOCATION;
*data = JournalEntry_CreateEventGameCorner(HEAP_ID_FIELD);
break;
case 17:
v0 = JOURNAL_UNK_04;
*v6 = sub_0202BDE0(4);
case LOCATION_EVENT_SAFARI_GAME:
dataType = JOURNAL_LOCATION;
*data = JournalEntry_CreateEventSafariGame(HEAP_ID_FIELD);
break;
case 18:
v0 = JOURNAL_UNK_04;
*v6 = sub_0202BDEC(v2, 4);
case LOCATION_EVENT_ITEM_WAS_OBTAINED:
dataType = JOURNAL_LOCATION;
*data = JournalEntry_CreateEventObtainedItem(eventParam, HEAP_ID_FIELD);
break;
case 19:
case 21:
case 22:
case 23:
case 24:
case 25:
case 26:
v0 = JOURNAL_UNK_04;
*v6 = sub_0202BE00(v1 - 19, v2, 4);
case LOCATION_EVENT_USED_CUT:
case LOCATION_EVENT_USED_SURF:
case LOCATION_EVENT_USED_STRENGTH:
case LOCATION_EVENT_USED_DEFOG:
case LOCATION_EVENT_USED_ROCK_SMASH:
case LOCATION_EVENT_USED_WATERFALL:
case LOCATION_EVENT_USED_ROCK_CLIMB:
dataType = JOURNAL_LOCATION;
*data = JournalEntry_CreateEventUsedMove(eventType - LOCATION_EVENT_USED_CUT, eventParam, HEAP_ID_FIELD);
break;
case 36:
case 37:
case 39:
case 38:
case 40:
v0 = JOURNAL_UNK_04;
*v6 = sub_0202BE2C(4, v1);
case LOCATION_EVENT_BATTLE_TOWER:
case LOCATION_EVENT_BATTLE_FACTORY:
case LOCATION_EVENT_BATTLE_CASTLE:
case LOCATION_EVENT_BATTLE_HALL:
case LOCATION_EVENT_BATTLE_ARCADE:
dataType = JOURNAL_LOCATION;
*data = JournalEntry_CreateEventBattleFacility(HEAP_ID_FIELD, eventType);
break;
default:
return 1;
return TRUE;
}
JournalEntry_SaveData(ctx->fieldSystem->journalEntry, *v6, v0);
return 1;
JournalEntry_SaveData(ctx->fieldSystem->journalEntry, *data, dataType);
return TRUE;
}
static BOOL ScrCmd_1CE(ScriptContext *ctx)
@ -6394,15 +6395,15 @@ static BOOL ScrCmd_202(ScriptContext *ctx)
case 1:
SystemFlag_ClearSafariGameActive(v3);
sub_0206D720(ctx->fieldSystem);
void *v6 = sub_0202BDE0(4);
void *journalEntryLocationEvent = JournalEntry_CreateEventSafariGame(HEAP_ID_FIELD);
JournalEntry_SaveData(ctx->fieldSystem->journalEntry, v6, JOURNAL_UNK_04);
JournalEntry_SaveData(ctx->fieldSystem->journalEntry, journalEntryLocationEvent, JOURNAL_LOCATION);
*v0 = 0;
*v1 = 0;
break;
}
return 0;
return FALSE;
}
static BOOL ScrCmd_206(ScriptContext *ctx)

View File

@ -39,6 +39,7 @@
#include "struct_defs/struct_02098C44.h"
#include "struct_defs/struct_020997B8.h"
#include "applications/journal_display/journal_controller.h"
#include "applications/options_menu.h"
#include "applications/pokemon_summary_screen/main.h"
#include "battle/ov16_0223B140.h"
@ -61,7 +62,6 @@
#include "overlay071/ov71_0223B140.h"
#include "overlay072/ov72_0223D7A0.h"
#include "overlay080/ov80_021D0D80.h"
#include "overlay081/ov81_021D0D80.h"
#include "overlay084/const_ov84_02241130.h"
#include "overlay084/ov84_0223B5A0.h"
#include "overlay085/ov85_02241440.h"
@ -161,7 +161,7 @@ FS_EXTERN_OVERLAY(overlay72);
FS_EXTERN_OVERLAY(options_menu);
FS_EXTERN_OVERLAY(choose_starter);
FS_EXTERN_OVERLAY(overlay80);
FS_EXTERN_OVERLAY(overlay81);
FS_EXTERN_OVERLAY(journal_display);
FS_EXTERN_OVERLAY(overlay84);
FS_EXTERN_OVERLAY(overlay85);
FS_EXTERN_OVERLAY(overlay86);
@ -362,16 +362,16 @@ void sub_0203D2E4(FieldSystem *fieldSystem, void *param1)
void sub_0203D30C(FieldSystem *fieldSystem, void *param1)
{
FS_EXTERN_OVERLAY(overlay81);
FS_EXTERN_OVERLAY(journal_display);
const OverlayManagerTemplate v0 = {
ov81_021D0D80,
ov81_021D0E70,
ov81_021D0EC4,
FS_OVERLAY_ID(overlay81)
const OverlayManagerTemplate template = {
JournalController_Init,
JournalController_Main,
JournalController_Exit,
FS_OVERLAY_ID(journal_display)
};
FieldSystem_StartChildProcess(fieldSystem, &v0, fieldSystem->saveData);
FieldSystem_StartChildProcess(fieldSystem, &template, fieldSystem->saveData);
}
void sub_0203D334(FieldSystem *fieldSystem, void *param1)

View File

@ -652,11 +652,11 @@ void sub_0204A660(UnkStruct_0204AFC4 *param0, SaveData *param1)
sub_0204A5EC(param0, param1, 0, v0);
}
void sub_0204A7A4(UnkStruct_0204AFC4 *param0, SaveData *param1, JournalEntry *param2)
void sub_0204A7A4(UnkStruct_0204AFC4 *param0, SaveData *param1, JournalEntry *journalEntry)
{
u32 v0 = 0;
int v1;
void *v2;
void *journalEntryOnlineEvent;
u16 v3, v4, v5;
GameRecords *v6;
UnkStruct_0203068C *v7;
@ -702,9 +702,9 @@ void sub_0204A7A4(UnkStruct_0204AFC4 *param0, SaveData *param1, JournalEntry *pa
sub_0204ACC8(param0);
sub_0204A5EC(param0, param1, 1, v0);
if (param0->unk_0F == 4) {
v2 = sub_0202C238(param0->unk_04);
JournalEntry_SaveData(param2, v2, JOURNAL_UNK_1C);
if (param0->unk_0F == HEAP_ID_FIELD) {
journalEntryOnlineEvent = JournalEntry_CreateEventBattleRoom(param0->unk_04);
JournalEntry_SaveData(journalEntry, journalEntryOnlineEvent, JOURNAL_ONLINE_EVENT);
}
}

View File

@ -688,24 +688,22 @@ int sub_0205B9EC(UnkStruct_0205B43C *param0, int param1)
void sub_0205BA08(int param0, int param1, void *param2, void *param3)
{
FieldSystem *fieldSystem = (FieldSystem *)param3;
TrainerCard *v1 = (TrainerCard *)param2;
TrainerInfo *v2 = CommInfo_TrainerInfo(CommSys_CurNetId() ^ 1);
void *v3;
TrainerCard *trainerCard = (TrainerCard *)param2;
TrainerInfo *trainerInfo = CommInfo_TrainerInfo(CommSys_CurNetId() ^ 1);
void *journalEntryOnlineEvent;
{
int v4, v5 = 0;
u8 *v6 = (u8 *)param2;
int i, v5 = 0;
u8 *v6 = (u8 *)param2;
for (v4 = 0; v4 < sizeof(TrainerCard); v4++) {
v5 ^= v6[v4];
}
for (i = 0; i < sizeof(TrainerCard); i++) {
v5 ^= v6[i];
}
v1->unk_66A = 1;
trainerCard->unk_66A = 1;
if (param0 != CommSys_CurNetId()) {
v3 = sub_0202C0EC((u16 *)TrainerInfo_Name(v2), TrainerInfo_Gender(v2), 31);
JournalEntry_SaveData(fieldSystem->journalEntry, v3, JOURNAL_UNK_1C);
journalEntryOnlineEvent = JournalEntry_CreateEventGreetedInUnionRoom((u16 *)TrainerInfo_Name(trainerInfo), TrainerInfo_Gender(trainerInfo), 31);
JournalEntry_SaveData(fieldSystem->journalEntry, journalEntryOnlineEvent, JOURNAL_ONLINE_EVENT);
}
}

View File

@ -139,8 +139,8 @@ static BOOL sub_020705DC(FieldSystem *fieldSystem)
{
int v0 = sub_0203A87C(fieldSystem->location->mapId);
if ((v0 != 0) && (sub_0203A920(fieldSystem, v0) == 0)) {
sub_0202C704(fieldSystem->journalEntry, fieldSystem->location->mapId, 32);
if (v0 != 0 && sub_0203A920(fieldSystem, v0) == 0) {
JournalEntry_CreateAndSaveEventArrivedInLocation(fieldSystem->journalEntry, fieldSystem->location->mapId, HEAP_ID_FIELD_TASK);
return TRUE;
}
@ -152,7 +152,7 @@ static BOOL sub_02070610(FieldSystem *fieldSystem)
Location *location = FieldOverworldState_GetPrevLocation(SaveData_GetFieldOverworldState(fieldSystem->saveData));
if (location->mapId != fieldSystem->location->mapId) {
sub_0202C5C4(SaveData_GetTrainerInfo(fieldSystem->saveData), fieldSystem->journalEntry, fieldSystem->location->mapId, location->mapId, 32);
JournalEntry_CreateAndSaveEventMapTransition(SaveData_GetTrainerInfo(fieldSystem->saveData), fieldSystem->journalEntry, fieldSystem->location->mapId, location->mapId, HEAP_ID_FIELD_TASK);
return TRUE;
}

View File

@ -4,6 +4,7 @@
#include <string.h>
#include "constants/field/map_load.h"
#include "consts/journal.h"
#include "struct_decls/struct_02061AB4_decl.h"
#include "struct_defs/struct_0203D8AC.h"
@ -760,15 +761,13 @@ static BOOL sub_02071050(FieldTask *param0)
UnkStruct_020711C8 *v1 = FieldTask_GetEnv(param0);
void *v2 = ov6_02247488(fieldSystem, v1->unk_00, 11);
{
void *v3 = sub_0202BE00((29 - 19), fieldSystem->location->mapId, 4);
JournalEntry_SaveData(fieldSystem->journalEntry, v3, JOURNAL_UNK_04);
}
void *journalEntryLocationEvent = JournalEntry_CreateEventUsedMove((LOCATION_EVENT_USED_DIG - LOCATION_EVENT_USED_CUT), fieldSystem->location->mapId, HEAP_ID_FIELD);
JournalEntry_SaveData(fieldSystem->journalEntry, journalEntryLocationEvent, JOURNAL_LOCATION);
Heap_FreeToHeap(v1);
FieldTask_InitJump(param0, ov6_022474AC, v2);
return 0;
return FALSE;
}
static int sub_020710A4(const UnkStruct_02070950 *param0)
@ -802,8 +801,8 @@ static void sub_020710D4(UnkStruct_020709CC *param0, const UnkStruct_02070950 *p
v1->unk_25C = v2;
v1->state = FIELD_MENU_STATE_10;
v4 = sub_0202BE00((30 - 19), fieldSystem->location->mapId, 11);
JournalEntry_SaveData(fieldSystem->journalEntry, v4, JOURNAL_UNK_04);
v4 = JournalEntry_CreateEventUsedMove((30 - 19), fieldSystem->location->mapId, 11);
JournalEntry_SaveData(fieldSystem->journalEntry, v4, JOURNAL_LOCATION);
}
static int sub_02071130(const UnkStruct_02070950 *param0)

View File

@ -2443,23 +2443,23 @@ static int ProcessWindowInput(GameWindowLayout *param0)
break;
case 3:
if (UpdatePokemonStatus(param0, param0->unk_B11, 1) == 1) {
Pokemon *v0;
Pokemon *mon;
Strbuf *v1;
void *v2;
void *journalEntryLocationEvent;
FieldSystem *fieldSystem;
v0 = Party_GetPokemonBySlotIndex(param0->unk_5A4->unk_00, param0->unk_B11);
mon = Party_GetPokemonBySlotIndex(param0->unk_5A4->unk_00, param0->unk_B11);
v1 = MessageLoader_GetNewStrbuf(param0->unk_69C, 64);
StringTemplate_SetNickname(param0->unk_6A0, 0, Pokemon_GetBoxPokemon(v0));
StringTemplate_SetNickname(param0->unk_6A0, 0, Pokemon_GetBoxPokemon(mon));
StringTemplate_SetNumber(param0->unk_6A0, 1, param0->unk_B14[2], 3, 0, 1);
StringTemplate_Format(param0->unk_6A0, param0->unk_6A4, v1);
Strbuf_Free(v1);
sub_02082708(param0, 0xffffffff, 1);
v2 = sub_0202BE00((u8)param0->unk_B14[3], 0, 12);
journalEntryLocationEvent = JournalEntry_CreateEventUsedMove((u8)param0->unk_B14[3], 0, 12);
fieldSystem = param0->unk_5A4->unk_1C;
JournalEntry_SaveData(fieldSystem->journalEntry, v2, JOURNAL_UNK_04);
JournalEntry_SaveData(fieldSystem->journalEntry, journalEntryLocationEvent, JOURNAL_LOCATION);
param0->unk_B14[1] = 4;
param0->unk_B0E = 30;
return 24;

View File

@ -4,6 +4,8 @@
#include <nitro.h>
#include <string.h>
#include "consts/journal.h"
#include "struct_defs/struct_0208BA84.h"
#include "struct_defs/struct_0208C06C.h"
@ -76,10 +78,10 @@ void sub_0208BA84(UnkStruct_0208BA84 *param0, BOOL param1, int param2)
static void sub_0208BA8C(SaveData *param0, int param1, u32 param2)
{
JournalEntry *v0 = SaveData_GetJournal(param0);
void *v1 = sub_0202C244(param1, param2);
JournalEntry *journalEntry = SaveData_GetJournal(param0);
void *journalEntryOnlineEvent = JournalEntry_CreateEventMisc(param1, param2);
JournalEntry_SaveData(v0, v1, JOURNAL_UNK_1C);
JournalEntry_SaveData(journalEntry, journalEntryOnlineEvent, JOURNAL_ONLINE_EVENT);
}
static void sub_0208BAAC(OverlayManager *param0, int param1)
@ -102,31 +104,29 @@ static void sub_0208BAAC(OverlayManager *param0, int param1)
v0->unk_14->unk_00 = param1;
v0->unk_14->unk_81C[v0->unk_14->unk_534.unk_1A4] = sub_0208C034(v0->unk_14, v0->unk_14->unk_00);
{
int v1;
int eventType;
switch (param1) {
case 2:
v1 = 18;
break;
case 3:
v1 = 19;
break;
case 4:
v1 = 19;
break;
case 5:
v1 = 20;
break;
case 6:
v1 = 21;
break;
default:
return;
}
sub_0208BA8C(v0->saveData, 119, v1);
switch (param1) {
case 2:
eventType = ONLINE_EVENT_WATCHED_BATTLE_VIDEOS;
break;
case 3:
eventType = ONLINE_EVENT_CHECKED_RANKINGS;
break;
case 4:
eventType = ONLINE_EVENT_CHECKED_RANKINGS;
break;
case 5:
eventType = ONLINE_EVENT_CHECKED_DRESS_UP_DATA;
break;
case 6:
eventType = ONLINE_EVENT_CHECKED_BOX_DATA;
break;
default:
return;
}
sub_0208BA8C(v0->saveData, 119, eventType);
}
static int sub_0208BB6C(OverlayManager *param0, int *param1)

View File

@ -1573,11 +1573,9 @@ void sub_02094BB4(UnkStruct_02095C48 *param0, int *param1, int *param2, int *par
}
}
void sub_02094C44(UnkStruct_02095C48 *param0, SaveData *param1, u32 param2, JournalEntry *param3)
void sub_02094C44(UnkStruct_02095C48 *param0, SaveData *param1, u32 param2, JournalEntry *journalEntry)
{
int v0;
v0 = 0;
int v0 = 0;
switch (param0->unk_00.unk_111) {
case 3:
@ -1590,23 +1588,16 @@ void sub_02094C44(UnkStruct_02095C48 *param0, SaveData *param1, u32 param2, Jour
}
if (param0->unk_155 == 0) {
{
VarsFlags *v1;
VarsFlags *v1 = SaveData_GetVarsFlags(param0->unk_1970);
v1 = SaveData_GetVarsFlags(param0->unk_1970);
if ((param0->unk_00.unk_111 == 2) && (param0->unk_00.unk_110 >= 3) && (sub_02094790(param0) == 0)) {
if (SystemFlag_CheckContestMaster(v1, param0->unk_00.unk_10F) == 0) {
SystemFlag_SetContestMaster(v1, param0->unk_00.unk_10F);
}
}
if (param0->unk_00.unk_111 == 2 && param0->unk_00.unk_110 >= 3 && sub_02094790(param0) == 0
&& SystemFlag_CheckContestMaster(v1, param0->unk_00.unk_10F) == 0) {
SystemFlag_SetContestMaster(v1, param0->unk_00.unk_10F);
}
if (sub_02094790(param0) == 0) {
int v2;
u8 v3 = 1;
v2 = sub_02095A3C(param0->unk_00.unk_110, param0->unk_00.unk_10F);
int v2 = sub_02095A3C(param0->unk_00.unk_110, param0->unk_00.unk_10F);
if (Pokemon_GetValue(param0->unk_1974, v2, NULL) == 0) {
v0 = 1;
@ -1616,71 +1607,47 @@ void sub_02094C44(UnkStruct_02095C48 *param0, SaveData *param1, u32 param2, Jour
sub_0206DDB8(param0->unk_1970, param0->unk_1974, v2);
}
{
TVBroadcast *v4;
TVBroadcast *v4 = SaveData_TVBroadcast(param0->unk_1970);
sub_0206CF14(v4, param0->unk_1974, param0->unk_00.unk_10F, param0->unk_00.unk_110, param0->unk_00.unk_118[param0->unk_00.unk_113].unk_08 + 1);
v4 = SaveData_TVBroadcast(param0->unk_1970);
sub_0206CF14(v4, param0->unk_1974, param0->unk_00.unk_10F, param0->unk_00.unk_110, param0->unk_00.unk_118[param0->unk_00.unk_113].unk_08 + 1);
GameRecords *v5 = SaveData_GetGameRecordsPtr(param0->unk_1970);
GameRecords_IncrementRecordValue(v5, RECORD_UNK_090);
if (sub_02094790(param0) == 0) {
GameRecords_IncrementRecordValue(v5, RECORD_UNK_092);
GameRecords_IncrementTrainerScore(v5, TRAINER_SCORE_EVENT_UNK_13);
}
{
GameRecords *v5;
v5 = SaveData_GetGameRecordsPtr(param0->unk_1970);
GameRecords_IncrementRecordValue(v5, RECORD_UNK_090);
if (sub_02094790(param0) == 0) {
GameRecords_IncrementRecordValue(v5, RECORD_UNK_092);
GameRecords_IncrementTrainerScore(v5, TRAINER_SCORE_EVENT_UNK_13);
}
if (v0 == 1) {
GameRecords_IncrementRecordValue(v5, RECORD_UNK_094);
}
if (v0 == 1) {
GameRecords_IncrementRecordValue(v5, RECORD_UNK_094);
}
{
int v6;
PokedexData *v7;
int i;
PokedexData *v7 = SaveData_Pokedex(param0->unk_1970);
v7 = SaveData_Pokedex(param0->unk_1970);
for (v6 = param0->unk_00.unk_117; v6 < 4; v6++) {
sub_020272A4(v7, param0->unk_00.unk_00[v6]);
}
for (i = param0->unk_00.unk_117; i < 4; i++) {
sub_020272A4(v7, param0->unk_00.unk_00[i]);
}
} else {
sub_0202F134(param0->unk_1970, param0->unk_00.unk_10F, param0->unk_00.unk_118[param0->unk_00.unk_113].unk_08);
{
GameRecords *v8;
GameRecords *records = SaveData_GetGameRecordsPtr(param0->unk_1970);
GameRecords_IncrementRecordValue(records, RECORD_UNK_091);
v8 = SaveData_GetGameRecordsPtr(param0->unk_1970);
GameRecords_IncrementRecordValue(v8, RECORD_UNK_091);
if (sub_02094790(param0) == 0) {
GameRecords_IncrementRecordValue(v8, RECORD_UNK_093);
GameRecords_IncrementTrainerScore(v8, TRAINER_SCORE_EVENT_UNK_19);
}
if (sub_02094790(param0) == 0) {
GameRecords_IncrementRecordValue(records, RECORD_UNK_093);
GameRecords_IncrementTrainerScore(records, TRAINER_SCORE_EVENT_UNK_19);
}
{
void *v9;
JournalEntry *v10;
void *journalEntryOnlineEvent = JournalEntry_CreateEventPlacedInContest(param0->unk_00.unk_118[param0->unk_00.unk_113].unk_08 + 1, 11);
JournalEntry *unused = SaveData_GetJournal(param0->unk_1970);
v9 = sub_0202C1C0(param0->unk_00.unk_118[param0->unk_00.unk_113].unk_08 + 1, 11);
v10 = SaveData_GetJournal(param0->unk_1970);
JournalEntry_SaveData(param3, v9, JOURNAL_UNK_1C);
}
JournalEntry_SaveData(journalEntry, journalEntryOnlineEvent, JOURNAL_ONLINE_EVENT);
}
if (sub_02094790(param0) == 0) {
UnkStruct_0202A750 *v11;
UnkStruct_02029C88 *v12;
v11 = sub_0202A750(param0->unk_1970);
v12 = sub_02029CD0(v11, param0->unk_00.unk_10F);
UnkStruct_0202A750 *v11 = sub_0202A750(param0->unk_1970);
UnkStruct_02029C88 *v12 = sub_02029CD0(v11, param0->unk_00.unk_10F);
sub_0202A25C(v12);
sub_0202A390(v12, param0->unk_00.unk_E8[param0->unk_00.unk_113]);