Merge pull request #638 from GriffinRichards/doc-ql

Document some quest log
This commit is contained in:
GriffinR
2023-08-31 11:13:49 -04:00
committed by GitHub
48 changed files with 2953 additions and 2681 deletions
+1 -1
View File
@@ -449,7 +449,7 @@ struct BattleStruct
u16 castformPalette[MAX_BATTLERS_COUNT][16];
u8 wishPerishSongState;
u8 wishPerishSongBattlerId;
u8 field_182;
u8 lastAttackerToFaintOpponent;
// align 4
union {
struct LinkBattlerHeader linkBattlerHeader;
+29 -28
View File
@@ -5,6 +5,12 @@
#define QL_STATE_PLAYBACK 2
#define QL_STATE_PLAYBACK_LAST 3
#define QL_PLAYBACK_STATE_STOPPED 0
#define QL_PLAYBACK_STATE_RUNNING 1
#define QL_PLAYBACK_STATE_RECORDING 2
#define QL_PLAYBACK_STATE_ACTION_END 3
#define QL_PLAYBACK_STATE_RECORDING_NO_DELAY 4
#define QL_START_NORMAL 1
#define QL_START_WARP 2
@@ -16,9 +22,9 @@
#define QL_IS_PLAYBACK_STATE (gQuestLogState == QL_STATE_PLAYBACK || gQuestLogState == QL_STATE_PLAYBACK_LAST)
#define QL_EVENT_0 0 // Null
#define QL_EVENT_1 1 // Null
#define QL_EVENT_2 2 // Null
#define QL_EVENT_INPUT 0 // Null
#define QL_EVENT_GFX_CHANGE 1 // Null
#define QL_EVENT_MOVEMENT 2 // Null
#define QL_EVENT_SWITCHED_PARTY_ORDER 3
#define QL_EVENT_USED_ITEM 4
#define QL_EVENT_GAVE_HELD_ITEM 5
@@ -55,12 +61,12 @@
#define QL_EVENT_USED_FIELD_MOVE 36
#define QL_EVENT_BOUGHT_ITEM 37
#define QL_EVENT_SOLD_ITEM 38
#define QL_EVENT_39 39 // Null
#define QL_EVENT_OBTAINED_ITEM 40
#define QL_EVENT_41 41 // Null
#define QL_EVENT_SCENE_END 39 // Null
#define QL_EVENT_OBTAINED_STORY_ITEM 40
#define QL_EVENT_WAIT 41 // Null
#define QL_EVENT_ARRIVED 42
#define QL_EVENT_USED_POKEMART QL_EVENT_BOUGHT_ITEM - 1 // Used as a start pos for QL_EVENT_BOUGHT_ITEM / QL_EVENT_SOLD_ITEM
#define QL_EVENT_USED_POKEMART (QL_EVENT_BOUGHT_ITEM - 1) // Used as a start pos for QL_EVENT_BOUGHT_ITEM / QL_EVENT_SOLD_ITEM
#define IS_LINK_QL_EVENT(event)((event) >= QL_EVENT_LINK_TRADED && (event) <= QL_EVENT_LINK_BATTLED_UNION)
#define IS_VALID_QL_EVENT(event)((event) >= QL_EVENT_SWITCHED_PARTY_ORDER && (event) <= QL_EVENT_ARRIVED)
@@ -128,28 +134,23 @@
#define QL_DEPARTED_MISC_BUILDING_1 8
#define QL_DEPARTED_MISC_BUILDING_2 9
#define QL_INPUT_OFF 0
#define QL_INPUT_UP 1
#define QL_INPUT_DOWN 2
#define QL_INPUT_LEFT 3
#define QL_INPUT_RIGHT 4
#define QL_INPUT_L 5
#define QL_INPUT_R 6
#define QL_INPUT_START 7
#define QL_INPUT_OFF 0
#define QL_INPUT_UP 1
#define QL_INPUT_DOWN 2
#define QL_INPUT_LEFT 3
#define QL_INPUT_RIGHT 4
#define QL_INPUT_L 5
#define QL_INPUT_R 6
#define QL_INPUT_START 7
#define QL_INPUT_SELECT 8
#define QL_INPUT_A 9
#define QL_INPUT_B 10
#define QL_INPUT_A 9
#define QL_INPUT_B 10
#define FANCLUB_MEMBER1 0
#define FANCLUB_MEMBER2 1
#define FANCLUB_MEMBER3 2
#define FANCLUB_MEMBER4 3
#define FANCLUB_MEMBER5 4
#define FANCLUB_MEMBER6 5
#define FANCLUB_MEMBER7 6
#define FANCLUB_MEMBER8 7
#define NUM_TRAINER_FAN_CLUB_MEMBERS 8
#define QL_ACTION_MOVEMENT 0
#define QL_ACTION_GFX_CHANGE 1
#define QL_ACTION_INPUT 2
#define QL_ACTION_EMPTY 3
#define QL_ACTION_WAIT 254
#define QL_ACTION_SCENE_END 255
#endif //GUARD_CONSTANTS_QUEST_LOG_H
+15
View File
@@ -0,0 +1,15 @@
#ifndef GUARD_CONSTANTS_TRAINER_FAN_CLUB_H
#define GUARD_CONSTANTS_TRAINER_FAN_CLUB_H
#define FANCLUB_MEMBER1 0
#define FANCLUB_MEMBER2 1
#define FANCLUB_MEMBER3 2
#define FANCLUB_MEMBER4 3
#define FANCLUB_MEMBER5 4
#define FANCLUB_MEMBER6 5
#define FANCLUB_MEMBER7 6
#define FANCLUB_MEMBER8 7
#define NUM_TRAINER_FAN_CLUB_MEMBERS 8
#endif //GUARD_CONSTANTS_TRAINER_FAN_CLUB_H
+1 -1
View File
@@ -126,7 +126,7 @@ void MoveCoords(u8, s16 *, s16 *);
bool8 ObjectEventIsHeldMovementActive(struct ObjectEvent *);
u8 ObjectEventClearHeldMovementIfFinished(struct ObjectEvent *);
u8 GetObjectEventIdByPosition(u16 x, u16 y, u8 elevation);
void UpdateQuestLogObjectEventCurrentMovement(struct ObjectEvent *, struct Sprite *);
void QL_UpdateObjectEventCurrentMovement(struct ObjectEvent *, struct Sprite *);
bool8 ObjectEventSetHeldMovement(struct ObjectEvent *, u8);
void ShiftStillObjectEventCoords(struct ObjectEvent *);
void OverrideMovementTypeForObjectEvent(const struct ObjectEvent *, u8);
+1 -1
View File
@@ -21,7 +21,7 @@ struct FieldInput
u8 dpadDirection;
};
extern struct FieldInput gInputToStoreInQuestLogMaybe;
extern struct FieldInput gFieldInputRecord;
void RestartWildEncounterImmunitySteps(void);
void ClearPoisonStepCounter(void);
+13 -14
View File
@@ -550,7 +550,7 @@ struct RecordMixingDayCareMail
bool16 holdsItem[DAYCARE_MON_COUNT];
};
struct QuestLogNPCData
struct QuestLogObjectEventTemplate
{
u32 x:8;
u32 negx:1;
@@ -579,12 +579,12 @@ struct QuestLogObjectEvent
/*0x01*/ u8 spriteAffineAnimPausedBackup:1;
/*0x01*/ u8 disableJumpLandingGroundEffect:1;
/*0x02*/ u8 fixedPriority:1;
/*0x02*/ u8 mapobj_unk_18:4;
/*0x02*/ u8 unused_02_5:3;
/*0x03*/ u8 mapobj_unk_0B_0:4;
/*0x03*/ u8 elevation:4;
/*0x02*/ u8 facingDirection:4;
/*0x02*/ u8 unused:3;
/*0x03*/ u8 currentElevation:4;
/*0x03*/ u8 previousElevation:4;
/*0x04*/ u8 graphicsId;
/*0x05*/ u8 animPattern;
/*0x05*/ u8 movementType;
/*0x06*/ u8 trainerType;
/*0x07*/ u8 localId;
/*0x08*/ u8 mapNum;
@@ -597,21 +597,20 @@ struct QuestLogObjectEvent
/*0x11*/ u8 animId;
};
struct QuestLog
// This represents all the data needed to display a single scene for the "Quest Log" when the player resumes playing.
//
struct QuestLogScene
{
/*0x0000*/ u8 startType;
/*0x0000*/ u8 startType; // QL_START_NORMAL / QL_START_WARP
/*0x0001*/ u8 mapGroup;
/*0x0002*/ u8 mapNum;
/*0x0003*/ u8 warpId;
/*0x0004*/ s16 x;
/*0x0006*/ s16 y;
/*0x0008*/ struct QuestLogObjectEvent unk_008[OBJECT_EVENTS_COUNT];
// These arrays hold the game state for
// playing back the quest log
/*0x0008*/ struct QuestLogObjectEvent objectEvents[OBJECT_EVENTS_COUNT];
/*0x0148*/ u8 flags[NUM_FLAG_BYTES];
/*0x02c8*/ u16 vars[VARS_COUNT];
/*0x0468*/ struct QuestLogNPCData npcData[64];
/*0x0468*/ struct QuestLogObjectEventTemplate objectEventTemplates[OBJECT_EVENT_TEMPLATES_COUNT];
/*0x0568*/ u16 script[128];
/*0x0668*/ u16 end[0];
};
@@ -780,7 +779,7 @@ struct SaveBlock1
/*0x0EE0*/ u8 flags[NUM_FLAG_BYTES];
/*0x1000*/ u16 vars[VARS_COUNT];
/*0x1200*/ u32 gameStats[NUM_GAME_STATS];
/*0x1300*/ struct QuestLog questLog[QUEST_LOG_SCENE_COUNT];
/*0x1300*/ struct QuestLogScene questLog[QUEST_LOG_SCENE_COUNT];
/*0x2CA0*/ u16 easyChatProfile[EASY_CHAT_BATTLE_WORDS_COUNT];
/*0x2CAC*/ u16 easyChatBattleStart[EASY_CHAT_BATTLE_WORDS_COUNT];
/*0x2CB8*/ u16 easyChatBattleWon[EASY_CHAT_BATTLE_WORDS_COUNT];
+2 -9
View File
@@ -3,6 +3,7 @@
#include "pokemon_storage_system.h"
#include "mon_markings.h"
#include "quest_log.h"
// The maximum number of Pokémon icons that can appear on-screen.
// By default the limit is 40 (though in practice only 37 can be).
@@ -273,14 +274,6 @@ struct PokeStorageItemIcon
u8 active;
};
struct PokeStorageQuestLogData
{
u16 species1;
u16 species2;
u8 box1;
u8 box2;
};
struct PokemonStorageSystemData
{
u8 state;
@@ -426,7 +419,7 @@ struct PokemonStorageSystemData
struct PokeStorageItemIcon itemIcons[MAX_ITEM_ICONS];
u16 movingItemId;
u16 itemInfoWindowOffset;
struct PokeStorageQuestLogData pokeStorageQuestLogData;
struct QuestLogEvent_MovedBoxMon questLogData;
u16 unusedField2;
u16 displayMonPalOffset;
u16 *displayMonTilePtr;
+188 -49
View File
@@ -3,63 +3,202 @@
#include "global.h"
#include "quest_log_battle.h"
#include "constants/quest_log.h"
#include "field_control_avatar.h"
#include "constants/quest_log.h"
#include "constants/battle.h"
// Layout of Quest Log script commands
#define QL_CMD_EVENT_MASK 0x0FFF
#define QL_CMD_COUNT_SHIFT 12
#define QL_CMD_COUNT_MASK (0xF << QL_CMD_COUNT_SHIFT)
// Parameter to QuestLog_OnEscalatorWarp
#define QL_ESCALATOR_OUT 1
#define QL_ESCALATOR_IN 2
struct QuestLogEntry
struct QuestLogAction
{
// When command == 2, these fields have different meanings
u8 localId; // cmd == 2: Pressed A/B, checked wild, held direction, took step
u8 mapNum; // cmd == 2: Always set to 0
u8 mapGroup; // cmd == 2: Dpad direction
u8 animId; // cmd == 2: Always set to 0
union {
struct {
u8 localId;
u8 mapNum;
u8 mapGroup;
u8 movementActionId;
} a; // Data when type == 0
struct {
u8 localId;
u8 mapNum;
u8 mapGroup;
u8 gfxState;
} b; // Data when type == 1
u8 fieldInput[4]; // Data when type == 2
u8 raw[4];
} data;
u16 duration;
u8 command;
u8 type;
};
struct UnkStruct_203B044
struct QuestLogRepeatEventTracker
{
u8 id;
u8 unk_1;
u16 unk_2;
u8 numRepeats;
u16 counter;
};
// Event data structs
// QL_EVENT_SWITCHED_PARTY_ORDER
struct QuestLogEvent_SwitchedPartyOrder
{
u16 species1;
u16 species2;
};
// QL_EVENT_USED_ITEM
// QL_EVENT_GAVE_HELD_ITEM
// QL_EVENT_GAVE_HELD_ITEM_BAG
// QL_EVENT_GAVE_HELD_ITEM_PC
// QL_EVENT_TOOK_HELD_ITEM
// QL_EVENT_DEPOSITED_ITEM_PC
// QL_EVENT_WITHDREW_ITEM_PC
struct QuestLogEvent_Item
{
u16 itemId;
u16 unused;
u16 species;
u16 itemParam;
};
// QL_EVENT_SWAPPED_HELD_ITEM
// QL_EVENT_SWAPPED_HELD_ITEM_PC
struct QuestLogEvent_SwappedHeldItem
{
u16 takenItemId;
u16 givenItemId;
u16 species;
};
// QL_EVENT_LINK_TRADED
// QL_EVENT_LINK_TRADED_UNION
struct QuestLogEvent_Traded
{
u16 speciesSent;
u16 speciesReceived;
u8 partnerName[PLAYER_NAME_LENGTH];
};
// QL_EVENT_LINK_BATTLED_SINGLE
// QL_EVENT_LINK_BATTLED_DOUBLE
// QL_EVENT_LINK_BATTLED_MULTI
// QL_EVENT_LINK_BATTLED_UNION
struct QuestLogEvent_LinkBattle
{
u8 outcome;
u8 playerNames[MAX_BATTLERS_COUNT - 1][PLAYER_NAME_LENGTH];
};
// QL_EVENT_SWITCHED_MONS_BETWEEN_BOXES
// QL_EVENT_SWITCHED_MONS_WITHIN_BOX
// QL_EVENT_SWITCHED_PARTY_MON_FOR_PC_MON
// QL_EVENT_MOVED_MON_BETWEEN_BOXES
// QL_EVENT_MOVED_MON_WITHIN_BOX
// QL_EVENT_WITHDREW_MON_PC
// QL_EVENT_DEPOSITED_MON_PC
// QL_EVENT_SWITCHED_MULTIPLE_MONS
struct QuestLogEvent_MovedBoxMon
{
u16 species1;
u16 species2;
u8 box1;
u8 box2;
};
// QL_EVENT_DEFEATED_TRAINER
// QL_EVENT_DEFEATED_GYM_LEADER
// QL_EVENT_DEFEATED_E4_MEMBER
// QL_EVENT_DEFEATED_CHAMPION
struct QuestLogEvent_TrainerBattle
{
u16 trainerId;
u16 speciesOpponent;
u16 speciesPlayer;
u8 hpFractionId;
u8 mapSec;
};
// QL_EVENT_DEFEATED_WILD_MON
struct QuestLogEvent_WildBattle
{
u16 defeatedSpecies;
u16 caughtSpecies;
u8 mapSec;
};
// QL_EVENT_DEPARTED
struct QuestLogEvent_Departed
{
u8 mapSec;
u8 locationId;
};
// QL_EVENT_USED_FIELD_MOVE
struct QuestLogEvent_FieldMove
{
u16 species;
u8 fieldMove;
u8 mapSec;
};
// QL_EVENT_BOUGHT_ITEM
// QL_EVENT_SOLD_ITEM
struct QuestLogEvent_Shop
{
u32 totalMoney; // Total amount of money spent buying or earned selling
u16 lastItemId;
u16 itemQuantity; // Total number of items bought or sold
u8 mapSec;
bool8 hasMultipleTransactions;
u8 logEventId; // Either 0 (empty), 1 (bought) or 2 (sold)
};
// QL_EVENT_OBTAINED_STORY_ITEM
struct QuestLogEvent_StoryItem
{
u16 itemId;
u8 mapSec;
};
extern u8 gQuestLogState;
extern u8 gQuestLogPlaybackState;
extern struct FieldInput gQuestLogFieldInput;
extern struct UnkStruct_203B044 gUnknown_203B044;
extern u16 *gUnknown_203AE04;
extern u16 *sEventRecordingPointer;
extern u16 sQuestLogCursor;
extern struct QuestLogRepeatEventTracker gQuestLogRepeatEventTracker;
extern u16 *gQuestLogDefeatedWildMonRecord;
extern u16 *gQuestLogRecordingPointer;
extern u16 gQuestLogCurActionIdx;
void QuestLogRecordPlayerAvatarGfxTransition(u8);
void SetQuestLogEvent(u16, const u16 *);
void SetQLPlayedTheSlots(void);
void QuestLog_RecordEnteredMap(u16);
u8 sub_8112CAC(void);
bool8 QuestLog_SchedulePlaybackCB(void (*func)(void));
u8 QL_GetPlaybackState(void);
bool8 QL_AvoidDisplay(void (*func)(void));
void QuestLog_BackUpPalette(u16 offset, u16 size);
void CommitQuestLogWindow1(void);
void QuestLog_DrawPreviouslyOnQuestHeaderIfInPlaybackMode(void);
void ResetQuestLog(void);
void ResetTrainerFanClub(void);
void TrySetUpQuestLogScenes_ElseContinueFromSave(u8 taskId);
void TryStartQuestLogPlayback(u8 taskId);
void SaveQuestLogData(void);
void QuestLog_CutRecording(void);
u8 sub_8112CAC(void);
void ResetDeferredLinkEvent(void);
void FinishRecordingQuestLogScene(void);
void QL_FinishRecordingScene(void);
void QuestLogEvents_HandleEndTrainerBattle(void);
void *QuestLogGetFlagOrVarPtr(bool8 isFlag, u16 idx);
void QuestLogSetFlagOrVar(bool8 isFlag, u16 idx, u16 value);
void SetQuestLogRecordAndPlaybackPointers(void *oldSave);
void sub_811246C(struct Sprite *sprite);
void QL_AddASLROffset(void *oldSaveBlockPtr);
void QL_UpdateObject(struct Sprite *sprite);
void QuestLogRecordNPCStep(u8 a0, u8 a1, u8 a2, u8 a3);
bool8 sub_8111C2C(void);
bool8 QL_IsTrainerSightDisabled(void);
void QuestLog_OnEscalatorWarp(u8 direction);
void QuestLogRecordPlayerAvatarGfxTransitionWithDuration(u8 movementActionId, u8 duration);
void Special_UpdateTrainerFansAfterLinkBattle(void);
@@ -67,39 +206,39 @@ void QuestLogRecordPlayerStep(u8 movementActionId);
void QuestLogRecordPlayerStepWithDuration(u8 movementActionId, u8 duration);
void QuestLogRecordNPCStepWithDuration(u8 localId, u8 mapNum, u8 mapGroup, u8 movementActionId, u8 duration);
void QL_AfterRecordFishActionSuccessful(void);
void sub_8110920(void);
void sub_8111708(void);
void sub_81127F8(struct FieldInput * a0);
void sub_8112B3C(void);
void QL_ResetDefeatedWildMonRecord(void);
void QL_RestoreMapLayoutId(void);
void QL_RecordFieldInput(struct FieldInput * fieldInput);
void QL_TryRunActions(void);
void RunQuestLogCB(void);
void sub_8111C68(void);
void QL_HandleInput(void);
bool8 QuestLogScenePlaybackIsEnding(void);
void sub_8115798(void);
void SetQuestLogEvent_Arrived(void);
bool8 QuestLog_ShouldEndSceneOnMapChange(void);
void QuestLog_AdvancePlayhead_(void);
void QuestLog_InitPalettesBackup(void);
void sub_8110FCC(void);
void QL_InitSceneObjectsAndActions(void);
u8 GetQuestLogStartType(void);
void sub_81113E4(void);
void sub_8111438(void);
void StartRecordingQuestLogEntry(u16 eventId);
bool8 WillCommandOfSizeFitInSav1Record(u16 *cursor, size_t size);
bool8 sub_8110944(const void *a0, size_t cmdSize);
void QL_CopySaveState(void);
void QL_ResetPartyAndPC(void);
void QL_StartRecordingAction(u16 eventId);
bool8 QL_IsRoomToSaveAction(const void *cursor, size_t size);
bool8 QL_IsRoomToSaveEvent(const void *cursor, size_t size);
void sub_8113BD8(void);
void ResetUnk203B044(void);
u16 *TryRecordEvent39_NoParams(u16 *);
u16 *sub_8113C8C(u16 *, struct QuestLogEntry *);
u16 *sub_8113CC8(u16 *, struct QuestLogEntry *);
u16 *sub_8113D08(u16 *, struct QuestLogEntry *);
u16 *sub_8113D48(u16 *, struct QuestLogEntry *);
u16 *sub_8113D94(u16 *, struct QuestLogEntry *);
void QL_ResetEventStates(void);
void QL_ResetRepeatEventTracker(void);
u16 *QL_RecordAction_SceneEnd(u16 *);
u16 *QL_LoadAction_Wait(u16 *, struct QuestLogAction *);
u16 *QL_RecordAction_Input(u16 *, struct QuestLogAction *);
u16 *QL_LoadAction_Input(u16 *, struct QuestLogAction *);
u16 *QL_RecordAction_MovementOrGfxChange(u16 *, struct QuestLogAction *);
u16 *QL_LoadAction_MovementOrGfxChange(u16 *, struct QuestLogAction *);
void QL_EnableRecordingSteps(void);
u16 *QuestLog_SkipCommand(u16 *, u16 **);
void sub_8113ABC(const u16 *);
u16 *sub_8113C20(u16 *, struct QuestLogEntry *);
bool8 sub_8113AE8(const u16 *);
bool8 sub_8113B44(const u16 *);
void TryRecordEvent41_IncCursor(u16);
u16 *QL_SkipCommand(u16 *, u16 **);
void QL_UpdateLastDepartedLocation(const u16 *);
u16 *QL_LoadAction_SceneEnd(u16 *, struct QuestLogAction *);
bool8 QL_LoadEvent(const u16 *);
bool8 QL_TryRepeatEvent(const u16 *);
void QL_RecordWait(u16);
#endif //GUARD_QUEST_LOG_H
+3 -3
View File
@@ -3,8 +3,8 @@
#include "global.h"
void SetQuestLogObjectEventsData(struct QuestLog *);
void SetSav1ObjectEventsFromQuestLog(struct QuestLog *, struct ObjectEventTemplate *);
void sub_815A540(void);
void QL_RecordObjects(struct QuestLogScene *);
void QL_LoadObjects(struct QuestLogScene *, struct ObjectEventTemplate *);
void QL_TryStopSurfing(void);
#endif //GUARD_QUEST_LOG_OBJECTS_H
+13 -9
View File
@@ -3,15 +3,19 @@
#include "global.h"
#define QL_PLAYER_GFX_NORMAL 0
#define QL_PLAYER_GFX_BIKE 1
#define QL_PLAYER_GFX_FISH 2
#define QL_PLAYER_GFX_SURF 3
#define QL_PLAYER_GFX_STOP_SURF_S 4
#define QL_PLAYER_GFX_STOP_SURF_N 5
#define QL_PLAYER_GFX_STOP_SURF_W 6
#define QL_PLAYER_GFX_STOP_SURF_E 7
#define QL_PLAYER_GFX_VSSEEKER 8
enum {
QL_PLAYER_GFX_NORMAL,
QL_PLAYER_GFX_BIKE,
QL_PLAYER_GFX_FISH,
QL_PLAYER_GFX_SURF,
QL_PLAYER_GFX_STOP_SURF_S,
QL_PLAYER_GFX_STOP_SURF_N,
QL_PLAYER_GFX_STOP_SURF_W,
QL_PLAYER_GFX_STOP_SURF_E,
QL_PLAYER_GFX_VSSEEKER,
QL_PLAYER_GFX_NONE = 0xFF
};
void QuestLogUpdatePlayerSprite(u8 state);
bool32 QuestLogTryRecordPlayerAvatarGfxTransition(u8 state);
+1 -1
View File
@@ -14,7 +14,7 @@ bool8 CreatePCMenu(void);
void ScriptMenu_DisplayPCStartupPrompt(void);
bool8 (*ScriptMenu_HidePokemonPic(void))(void);
void QLPlaybackCB_DestroyScriptMenuMonPicSprites(void);
void QL_DestroyAbortedDisplay(void);
void PicboxCancel(void);
#endif //GUARD_SCRIPT_MENU_H
+1 -1
View File
@@ -10,7 +10,7 @@ void CreatePokemartMenu(const u16 *itemsForSale);
void CreateDecorationShop1Menu(const u16 *);
void CreateDecorationShop2Menu(const u16 *);
u8 GetMartFontId(void);
void RecordItemPurchase(u16 a0, u16 a1, u8 a2);
void RecordItemTransaction(u16 itemId, u16 quantity, u8 logEventId);
// buy_menu_helper
void BuyMenuInitWindows(bool32 isSellingTM);