Use MainCallback wherever posible (#2184)

This commit is contained in:
Estellar
2025-10-14 05:41:27 -03:00
committed by GitHub
parent d05742ca05
commit f4f7c38255
20 changed files with 47 additions and 42 deletions

View File

@@ -12,6 +12,7 @@
#include "battle_util2.h"
#include "battle_bg.h"
#include "pokeball.h"
#include "main.h"
#define GET_BATTLER_SIDE(battler) (GetBattlerPosition(battler) & BIT_SIDE)
#define GET_BATTLER_SIDE2(battler) (gBattlerPositions[battler] & BIT_SIDE)
@@ -716,7 +717,7 @@ extern u16 gBattleMovePower;
extern u16 gMoveToLearn;
extern u8 gBattleMonForms[MAX_BATTLERS_COUNT];
extern void (*gPreBattleCallback1)(void);
extern MainCallback gPreBattleCallback1;
extern void (*gBattleMainFunc)(void);
extern struct BattleResults gBattleResults;
extern u8 gLeveledUpInBattle;

View File

@@ -2,6 +2,7 @@
#define GUARD_BATTLE_PYRAMID_BAG_H
#include "list_menu.h"
#include "main.h"
enum {
PYRAMIDBAG_LOC_FIELD,
@@ -29,7 +30,7 @@ enum {
struct PyramidBagMenu
{
void (*newScreenCallback)(void);
MainCallback newScreenCallback;
u8 tilemapBuffer[BG_SCREEN_SIZE];
u8 spriteIds[PBAG_SPRITE_COUNT];
u8 windowIds[5];
@@ -49,7 +50,7 @@ struct PyramidBagMenu
struct PyramidBagMenuState
{
void (*exitCallback)(void);
MainCallback exitCallback;
u8 location;
u16 cursorPosition;
u16 scrollPosition;
@@ -63,7 +64,7 @@ void CB2_PyramidBagMenuFromStartMenu(void);
void CB2_ReturnToPyramidBagMenu(void);
void UpdatePyramidBagList(void);
void UpdatePyramidBagCursorPos(void);
void GoToBattlePyramidBagMenu(u8 location, void (*exitCallback)(void));
void GoToBattlePyramidBagMenu(u8 location, MainCallback exitCallback);
void Task_CloseBattlePyramidBagMessage(u8 taskId);
void TryStoreHeldItemsInPyramidBag(void);
void ChooseItemsToTossFromPyramidBag(void);

View File

@@ -1,7 +1,9 @@
#ifndef GUARD_DODRIO_BERRY_PICKING_H
#define GUARD_DODRIO_BERRY_PICKING_H
void StartDodrioBerryPicking(u16 partyId, void (*exitCallback)(void));
#include "main.h"
void StartDodrioBerryPicking(u16 partyId, MainCallback exitCallback);
void IsDodrioInParty(void);
void ShowDodrioBerryPickingRecords(void);

View File

@@ -2,6 +2,7 @@
#define GUARD_ITEM_MENU_H
#include "item.h"
#include "main.h"
#include "menu_helpers.h"
enum {
@@ -47,7 +48,7 @@ enum {
struct BagPosition
{
void (*exitCallback)(void);
MainCallback exitCallback;
u8 location;
u8 pocket;
u16 pocketSwitchArrowPos;
@@ -59,7 +60,7 @@ extern struct BagPosition gBagPosition;
struct BagMenu
{
void (*newScreenCallback)(void);
MainCallback newScreenCallback;
u8 tilemapBuffer[BG_SCREEN_SIZE];
u8 spriteIds[ITEMMENUSPRITE_COUNT];
u8 windowIds[ITEMWIN_COUNT];
@@ -96,10 +97,10 @@ void CB2_BagMenuFromStartMenu(void);
u8 GetItemListPosition(u8 pocketId);
bool8 UseRegisteredKeyItemOnField(void);
void CB2_GoToSellMenu(void);
void GoToBagMenu(u8 location, u8 pocket, void ( *exitCallback)());
void GoToBagMenu(u8 location, u8 pocket, MainCallback exitCallback);
void DoWallyTutorialBagMenu(void);
void ResetBagScrollPositions(void);
void ChooseBerryForMachine(void (*exitCallback)(void));
void ChooseBerryForMachine(MainCallback exitCallback);
void CB2_ChooseBerry(void);
void Task_FadeAndCloseBagMenu(u8 taskId);
void BagMenu_YesNo(u8 taskId, u8 windowType, const struct YesNoFuncTable *funcTable);

View File

@@ -1,6 +1,8 @@
#ifndef GUARD_MAIL_H
#define GUARD_MAIL_H
#include "main.h"
#define IS_ITEM_MAIL(itemId) ((itemId == ITEM_ORANGE_MAIL \
|| itemId == ITEM_HARBOR_MAIL \
|| itemId == ITEM_GLITTER_MAIL \
@@ -15,7 +17,7 @@
|| itemId == ITEM_RETRO_MAIL))
// mail.h
void ReadMail(struct Mail *mail, void (*exitCallback)(void), bool8 hasText);
void ReadMail(struct Mail *mail, MainCallback exitCallback, bool8 hasText);
// mail_data.h
void ClearAllMail(void);

View File

@@ -1,6 +1,8 @@
#ifndef GUARD_RAYQUAZA_SCENE_H
#define GUARD_RAYQUAZA_SCENE_H
void DoRayquazaScene(u8 animId, bool8 endEarly, void (*exitCallback)(void));
#include "main.h"
void DoRayquazaScene(u8 animId, bool8 endEarly, MainCallback exitCallback);
#endif // GUARD_RAYQUAZA_SCENE_H

View File

@@ -1,6 +1,8 @@
#ifndef GUARD_SAVE_H
#define GUARD_SAVE_H
#include "main.h"
// Each 4 KiB flash sector contains 3968 bytes of actual data followed by a 128 byte footer.
// Only 12 bytes of the footer are used.
#define SECTOR_DATA_SIZE 3968
@@ -87,7 +89,7 @@ extern u32 gSaveCounter;
extern struct SaveSector *gFastSaveSector;
extern u16 gIncrementalSectorId;
extern u16 gSaveFileStatus;
extern void (*gGameContinueCallback)(void);
extern MainCallback gGameContinueCallback;
extern struct SaveSectorLocation gRamSaveSectorLocations[];
extern struct SaveSector gSaveDataBuffer;

View File

@@ -237,7 +237,7 @@ EWRAM_DATA u16 gBattleMovePower = 0;
EWRAM_DATA u16 gMoveToLearn = 0;
EWRAM_DATA u8 gBattleMonForms[MAX_BATTLERS_COUNT] = {0};
COMMON_DATA void (*gPreBattleCallback1)(void) = NULL;
COMMON_DATA MainCallback gPreBattleCallback1 = NULL;
COMMON_DATA void (*gBattleMainFunc)(void) = NULL;
COMMON_DATA struct BattleResults gBattleResults = {0};
COMMON_DATA u8 gLeveledUpInBattle = 0;

View File

@@ -16,7 +16,6 @@
#include "item_use.h"
#include "list_menu.h"
#include "mail.h"
#include "main.h"
#include "malloc.h"
#include "menu.h"
#include "menu_helpers.h"
@@ -414,7 +413,7 @@ void CB2_ReturnToPyramidBagMenu(void)
GoToBattlePyramidBagMenu(PYRAMIDBAG_LOC_PREV, gPyramidBagMenuState.exitCallback);
}
void GoToBattlePyramidBagMenu(u8 location, void (*exitCallback)(void))
void GoToBattlePyramidBagMenu(u8 location, MainCallback exitCallback)
{
gPyramidBagMenu = AllocZeroed(sizeof(*gPyramidBagMenu));

View File

@@ -10,7 +10,6 @@
#include "link.h"
#include "link_rfu.h"
#include "m4a.h"
#include "main.h"
#include "palette.h"
#include "minigame_countdown.h"
#include "random.h"
@@ -223,7 +222,7 @@ struct DodrioGame_ScoreResults
struct DodrioGame
{
/*0x0000*/ void (*exitCallback)(void);
/*0x0000*/ MainCallback exitCallback;
/*0x0004*/ u8 ALIGNED(4) taskId;
/*0x0008*/ u8 ALIGNED(4) playersReceived;
/*0x000C*/ u8 ALIGNED(4) startState;
@@ -661,7 +660,7 @@ static void (*const sMemberFuncs[])(void) =
[FUNC_WAIT_END_GAME] = WaitEndGame_Member
};
void StartDodrioBerryPicking(u16 partyId, void (*exitCallback)(void))
void StartDodrioBerryPicking(u16 partyId, MainCallback exitCallback)
{
sExitingGame = FALSE;

View File

@@ -106,7 +106,7 @@ enum {
struct FrontierPassData
{
void (*callback)(void);
MainCallback callback;
u16 state;
u16 battlePoints;
s16 cursorX;
@@ -137,14 +137,14 @@ struct FrontierPassGfx
struct FrontierPassSaved
{
void (*callback)(void);
MainCallback callback;
s16 cursorX;
s16 cursorY;
};
struct FrontierMapData
{
void (*callback)(void);
MainCallback callback;
struct Sprite *cursorSprite;
struct Sprite *playerHeadSprite;
struct Sprite *mapIndicatorSprite;
@@ -160,8 +160,8 @@ static EWRAM_DATA struct FrontierPassGfx *sPassGfx = NULL;
static EWRAM_DATA struct FrontierMapData *sMapData = NULL;
static EWRAM_DATA struct FrontierPassSaved sSavedPassData = {0};
static u32 AllocateFrontierPassData(void (*callback)(void));
static void ShowFrontierMap(void (*callback)(void));
static u32 AllocateFrontierPassData(MainCallback callback);
static void ShowFrontierMap(MainCallback callback);
static void CB2_InitFrontierPass(void);
static void DrawFrontierPassBg(void);
static void FreeCursorAndSymbolSprites(void);
@@ -604,7 +604,7 @@ static void LeaveFrontierPass(void)
FreeFrontierPassData();
}
static u32 AllocateFrontierPassData(void (*callback)(void))
static u32 AllocateFrontierPassData(MainCallback callback)
{
u8 i;
@@ -1363,7 +1363,7 @@ static void PrintOnFrontierMap(void);
static void InitFrontierMapSprites(void);
static void HandleFrontierMapCursorMove(u8 direction);
static void ShowFrontierMap(void (*callback)(void))
static void ShowFrontierMap(MainCallback callback)
{
if (sMapData != NULL)
SetMainCallback2(callback); // This line doesn't make sense at all, since it gets overwritten later anyway.

View File

@@ -24,7 +24,6 @@
#include "list_menu.h"
#include "link.h"
#include "mail.h"
#include "main.h"
#include "malloc.h"
#include "map_name_popup.h"
#include "menu.h"
@@ -578,7 +577,7 @@ void CB2_ChooseBerry(void)
}
// Choosing berry for Berry Blender or Berry Crush
void ChooseBerryForMachine(void (*exitCallback)(void))
void ChooseBerryForMachine(MainCallback exitCallback)
{
GoToBagMenu(ITEMMENULOCATION_BERRY_BLENDER_CRUSH, BERRIES_POCKET, exitCallback);
}
@@ -612,7 +611,7 @@ void QuizLadyOpenBagMenu(void)
gSpecialVar_Result = FALSE;
}
void GoToBagMenu(u8 location, u8 pocket, void ( *exitCallback)())
void GoToBagMenu(u8 location, u8 pocket, MainCallback exitCallback)
{
gBagMenu = AllocZeroed(sizeof(*gBagMenu));
if (gBagMenu == NULL)

View File

@@ -1,7 +1,6 @@
#include "global.h"
#include "mail.h"
#include "constants/items.h"
#include "main.h"
#include "overworld.h"
#include "task.h"
#include "scanline_effect.h"
@@ -443,7 +442,7 @@ static const struct MailLayout sMailLayouts_Tall[] = {
},
};
void ReadMail(struct Mail *mail, void (*exitCallback)(void), bool8 hasText)
void ReadMail(struct Mail *mail, MainCallback exitCallback, bool8 hasText)
{
u16 buffer[2];
u16 species;

View File

@@ -62,7 +62,7 @@ enum {
struct PokeblockMenuStruct
{
u8 tilemap[BG_SCREEN_SIZE];
void (*callbackOnUse)(void);
MainCallback callbackOnUse;
const u8 *pokeblockActionIds;
u8 numActions;
u8 caseId;
@@ -80,7 +80,7 @@ struct PokeblockMenuStruct
struct PokeblockSavedData
{
void (*callback)(void);
MainCallback callback;
u16 selectedRow;
u16 scrollOffset;
};

View File

@@ -4,7 +4,6 @@
#include "task.h"
#include "graphics.h"
#include "bg.h"
#include "main.h"
#include "malloc.h"
#include "palette.h"
#include "scanline_effect.h"
@@ -1285,7 +1284,7 @@ static const struct BgTemplate sBgTemplates_ChasesAway[] =
}
};
void DoRayquazaScene(u8 animId, bool8 endEarly, void (*exitCallback)(void))
void DoRayquazaScene(u8 animId, bool8 endEarly, MainCallback exitCallback)
{
sRayScene = AllocZeroed(sizeof(*sRayScene));
sRayScene->animId = animId;

View File

@@ -8,7 +8,6 @@
#include "load_save.h"
#include "overworld.h"
#include "pokemon_storage_system.h"
#include "main.h"
#include "trainer_hill.h"
#include "link.h"
#include "constants/game_stat.h"
@@ -88,7 +87,7 @@ COMMON_DATA struct SaveSector *gReadWriteSector = NULL; // Pointer to a buffer f
COMMON_DATA u16 gIncrementalSectorId = 0;
COMMON_DATA u16 gSaveUnusedVar = 0;
COMMON_DATA u16 gSaveFileStatus = 0;
COMMON_DATA void (*gGameContinueCallback)(void) = NULL;
COMMON_DATA MainCallback gGameContinueCallback = NULL;
COMMON_DATA struct SaveSectorLocation gRamSaveSectorLocations[NUM_SECTORS_PER_SLOT] = {0};
COMMON_DATA u16 gSaveUnusedVar2 = 0;
COMMON_DATA u16 gSaveAttemptStatus = 0;
@@ -887,7 +886,7 @@ u8 LoadGameSave(u8 saveType)
status = TryLoadSaveSlot(FULL_SAVE_SLOT, gRamSaveSectorLocations);
CopyPartyAndObjectsFromSave();
gSaveFileStatus = status;
gGameContinueCallback = 0;
gGameContinueCallback = NULL;
break;
case SAVE_HALL_OF_FAME:
status = TryLoadSaveSector(SECTOR_ID_HOF_1, gDecompressionBuffer, SECTOR_DATA_SIZE);

View File

@@ -326,7 +326,7 @@ static void CB2_ReturnToTitleScreen(void)
}
else
{
SetMainCallback2((MainCallback)gGameContinueCallback);
SetMainCallback2(gGameContinueCallback);
gGameContinueCallback = NULL;
}
}

View File

@@ -455,7 +455,7 @@ static void Task_GoToBuyOrSellMenu(u8 taskId)
if (!gPaletteFade.active)
{
DestroyTask(taskId);
SetMainCallback2((void *)((u16)tCallbackHi << 16 | (u16)tCallbackLo));
SetMainCallback2((MainCallback)((u16)tCallbackHi << 16 | (u16)tCallbackLo));
}
}

View File

@@ -77,7 +77,7 @@ struct TrainerCardData
u8 cardType;
bool8 isHoenn;
u16 blendColor;
void (*callback2)(void);
MainCallback callback2;
struct TrainerCard trainerCard;
u16 frontTilemap[600];
u16 backTilemap[600];

View File

@@ -50,7 +50,7 @@ enum {
struct UsePokeblockSession
{
void (*callback)(void);
void (*exitCallback)(void);
MainCallback exitCallback;
struct Pokeblock *pokeblock;
struct Pokemon *mon;
u8 stringBuffer[64];
@@ -162,7 +162,7 @@ extern const u16 gConditionText_Pal[];
// The below 3 are saved for returning to the screen after feeding a pokeblock to a mon
// so that the rest of the data can be freed
static EWRAM_DATA struct UsePokeblockSession *sInfo = NULL;
static EWRAM_DATA void (*sExitCallback)(void) = NULL;
static EWRAM_DATA MainCallback sExitCallback = NULL;
static EWRAM_DATA struct Pokeblock *sPokeblock = NULL;
EWRAM_DATA u8 gPokeblockMonId = 0;
EWRAM_DATA s16 gPokeblockGain = 0;