Files
Retnuhytnuob 14547ba828 Cleanup AI comments, add usage disclaimer. (#264)
* cleanup data dump comments
* AI usage disclaimer
2026-09-12 22:59:53 -05:00

443 lines
15 KiB
C

#ifndef GUARD_VARIABLES_H
#define GUARD_VARIABLES_H
#include "gba/gba.h"
#include "gba/m4a_internal.h"
#include "types.h"
#include "constants/areas.h"
#include "constants/fields.h"
#include "constants/high_scores.h"
#include "constants/pinball_game.h"
#define SPECIES_DEX_UNSEEN 0
#define SPECIES_DEX_SEEN 1
#define SPECIES_DEX_SHARED 2
#define SPECIES_DEX_SHARED_AND_SEEN 3
#define SPECIES_DEX_CAUGHT 4
// Place all external variable declarations in this file
extern struct {u16 rubyTransitionFrames[5]; u16 sapphireTransitionFrames[5];} gFieldTransitionAnimData;
extern s8 gFieldSelectSoftReset;
extern struct ToneData gPokemonCryToneBank0[];
extern struct ToneData gPokemonCryToneBank1[];
extern struct ToneData gPokemonCryToneBank2[];
extern struct ToneData gPokemonCryToneBank3[];
extern u16 gOptionsBGMList[];
struct ButtonInfoView
{
u16 buttonName;
u16 tileNum;
u8 shape;
u8 size;
u8 x;
u8 y;
};
/***
* index button associations:
* 0 : A button
* 1 : B button
* 2 : Select button
* 3 : Start button
* 4 : Right arrow
* 5 : Left arrow
* 6 : Up arrow
* 7 : Down arrow
* 8 : R button
* 9 : L button
* 10 : Combiner sprite
***/
extern struct ButtonInfoView gButtonInfoTable[11];
extern struct {u8 tileId; s16 frameDuration;} gButtonAnimData[];
extern u16 gOptionsSEList[];
extern u8 gCustomButtonConfigs[][10];
extern u8 gDefaultButtonConfigs[4][10];
extern void (*const gOptionsStateFuncs[])(void);
extern u32 gHighScoreNameEntry[HIGH_SCORE_NAME_LENGTH];
extern u16 gPaletteFadeBuffers[3][BG_PLTT_SIZE];
extern u16 gTempGfxBuffer[];
extern u8 gEReaderTextTileBuffer[3][0x800];
//extern ? gOamBuffer;
//extern ? IntrMain_Buffer;
extern u16 gBG0TilemapBuffer[];
//extern ? SoundMainRAM_Buffer;
extern u16 sGbPlayerCurKeys;
extern u16 sGbPlayerPrevKeys;
struct RfuSIO32Id {
u8 MS_mode; //either 0 or 1
u16 count;
u16 send_id;
u16 recv_id;
u8 filler[0xA-0x8];
u16 lastId;
// size 0xC
};
extern struct RfuSIO32Id gSio32Id;
extern u32 gSio32ReceivedData;
extern u32 gSio32RemoteDeviceId;
//extern ? gTitlescreen;
//extern ? gEraseSaveDataAccessStep;
//extern ? gEraseSaveDataAccessCounter;
//extern ? gEReaderAccessStep;
//extern ? gEReaderAccessCounter;
//extern ? gTitleTransitionActive;
//extern ? gTitleRestartDebounce;
//extern ? gDpcmSampleBuffer;
//extern ? gIntrTable;
//extern ? gMain;
//extern ? gVBlankIntrFuncPtr;
//extern ? gMainCallback;
//extern ? gUnknown_0200FBA0;
//extern ? gUnknown_02017BD0;
//extern ? gUnknown_02017BD4;
//extern ? gUnknown_02017BE0;
//extern ? gVCountIntrFuncPtr;
//extern ? gRumbleLoopCounter;
//extern ? gRumbleFrameCounter;
//extern ? gRumbleMotorMode;
//extern ? gSio32ReconnectTimer;
//extern ? gSio32SerialEnabled;
//extern ? gRumblePatternIndex;
//extern ? gRumblePatternPosition;
//extern ? gRumbleCommand;
//extern ? gRumblePaused;
//extern ? gRumbleSpeedMode;
//extern ? gGameBoyPlayerEnabled;
//extern ? gSio32CommState;
extern s8 gAutoDisplayTitlescreenMenu;
//extern ? gTitleNoSaveMenuSpriteSets;
//extern ? gTitleSavedMenuSpriteSets;
//extern ? gTitleReturnedFromMenu;
extern s16 gEReaderReceivedCardId;
//extern ? gHighScoreEntrySource;
//extern ? gCurrentPinballGame;
//extern ? gBoardConfig;
//extern ? gSoundInfo;
//extern ? gPokemonCryMusicPlayers;
//extern ? gMPlayJumpTable;
//extern ? gCgbChans;
//extern ? gPokemonCryTracks;
//extern ? gPokemonCrySong;
//extern ? gMPlayInfo_BGM;
//extern ? gMPlayMemAccArea;
extern const u16 gWildMonLocations[AREA_COUNT][2][WILD_MON_LOCATION_COUNT];
extern const s16 gSineTable[];
extern const struct OamData gEmptyOamData[128];
extern const Palette gGbPlayerPalettes[];
extern const u8 gGbPlayerGfx[];
extern const u8 gGbPlayerTilemap[];
extern StateFunc gTitlescreenStateFuncs[];
//extern ? gIntroCopyright_Gfx;
//extern ? gIntroCopyright_Pal;
//extern ? gIntroScene1TorchicSprites_Pals;
//extern ? gIntroScene1TorchicSprites_Gfx;
extern const Palette gGBAButtonIcons_Pals[];
extern const u8 gOptionsSprites_Gfx[];
extern const IntrFunc gIntrTableTemplate[14];
//extern ? gRumblePattern0;
//extern ? gRumblePattern1;
//extern ? gRumblePattern2;
//extern ? gRumblePattern3;
//extern ? gRumblePattern4;
//extern ? gRumblePattern5;
//extern ? gRumblePattern6;
//extern ? gRumblePattern7;
//extern ? gRumblePattern8;
//extern ? gRumblePattern9;
//extern ? gRumblePattern10;
//extern ? gRumblePattern11;
//extern ? gRumblePattern12;
//extern ? gRumblePattern13;
//extern ? gRumblePattern14;
extern const int *gRumblePatterns[];
extern const u16 gEReaderTextGlyphTable[][3*0x18];
extern const s8 gScorePaletteAnimOffsets[3]; //Sized based on call using gHighScoreScreenState.paletteAnimPhase + data
extern const s8 gScorePaletteResetOffsets[3]; //Same as above
extern const s16 gTitleMenuStateTable[11];
extern const s8 gTitlePressStartAnimDurations[4];
extern const s8 gTitleMenuSlideInAnimData[6][2];
extern const s8 gTitleMenuSlideOutAnimSpriteGroupData[9][2];
extern const u16 gTitleNoSaveMenuActions[4];
extern const u16 gTitleSavedMenuActions[];
extern const struct SpriteSet *const gTitlePressStartSpriteSets[];
extern const u8 *const gTitleNoSaveDefaultSprites[7];
extern const u8 *const gTitleNoSaveAnimSprites[];
extern const s8 gTitleMenuRetractDurations[];
extern const u8 *const gTitleSavedDefaultSprites[7];
extern const u8 *const gTitleSavedAnimSprites[];
extern const s16 gEReaderAccessButtonSequence[];
//extern ? gMonPortraitGroupPals;
//extern ? gMonPortraitGroupGfx;
//extern ? gMonHatchSpriteGroup0_Gfx;
//extern ? gMonHatchSpriteGroup1_Gfx;
//extern ? gMonHatchSpriteGroup2_Gfx;
//extern ? gMonHatchSpriteGroup3_Gfx;
//extern ? gMonHatchSpriteGroup4_Gfx;
extern const u8 gMonHatchSpriteGroup5_Gfx[];
extern struct VectorU16 gFieldSelectBallSpeedPositions[];
extern const struct SpriteSet *const gFieldSelectSpriteSets[];
extern const struct SpriteSet *const gNameEntryCursorSpriteSets[];
extern const struct SpriteSet *const gHighScoreScreenSpriteSets[];
extern const struct SpriteSet *const gCompletionBannerSpriteSets[];
extern void (*gFieldSelectStateFuncs[])(void);
extern u8 gFieldSelectBG0Tilemap[];
extern u8 gFieldSelectWindow_Gfx[];
//extern ? gUnknown_080A4000;
extern u8 gFieldSelectFrameShadowTilemap[];
extern u8 gFieldSelectMiniFields_Gfx[];
//extern ? gUnknown_080A8020;
extern u8 gFieldSelectWindowTilemap[];
extern u16 gFieldSelectBGPals[];
extern u16 gFieldSelectSpritePals[];
extern u8 gFieldSelectSpriteGfx[];
extern u8 gEReaderText_Gfx[];
extern const u8 gTitlescreenBgTilemap[];
extern const u16 gTitlescreenBg_Pals[];
extern const u8 gTitlescreenBg_Gfx[];
extern const u8 gTitlescreenSpritesNoSavedGame_Gfx[];
//extern ? gUnknown_081306C0;
extern const u8 gTitlescreenSpritesSavedGame_Gfx[];
//extern ? gUnknown_081376E0;
extern const u16 gTitlescreenSprites_Pals[];
//extern ? gMonHatchSpriteGroup0_Pals;
//extern ? gMonHatchSpriteGroup1_Pals;
//extern ? gMonHatchSpriteGroup2_Pals;
//extern ? gMonHatchSpriteGroup3_Pals;
//extern ? gMonHatchSpriteGroup4_Pals;
//extern ? gMonHatchSpriteGroup5_Pals;
//extern ? gMonPortraitsGroup0_Gfx;
//extern ? gMonPortraitsGroup1_Gfx;
//extern ? gMonPortraitsGroup2_Gfx;
//extern ? gMonPortraitsGroup3_Gfx;
//extern ? gMonPortraitsGroup4_Gfx;
//extern ? gMonPortraitsGroup5_Gfx;
//extern ? gMonPortraitsGroup6_Gfx;
//extern ? gMonPortraitsGroup7_Gfx;
//extern ? gMonPortraitsGroup8_Gfx;
//extern ? gMonPortraitsGroup9_Gfx;
//extern ? gMonPortraitsGroup10_Gfx;
//extern ? gMonPortraitsGroup11_Gfx;
//extern ? gMonPortraitsGroup12_Gfx;
//extern ? gMonPortraitsGroup13_Gfx;
//extern ? gMonPortraitsGroup0_Pals;
//extern ? gMonPortraitsGroup1_Pals;
//extern ? gMonPortraitsGroup2_Pals;
//extern ? gMonPortraitsGroup3_Pals;
//extern ? gMonPortraitsGroup4_Pals;
//extern ? gMonPortraitsGroup5_Pals;
//extern ? gMonPortraitsGroup6_Pals;
//extern ? gMonPortraitsGroup7_Pals;
//extern ? gMonPortraitsGroup8_Pals;
//extern ? gMonPortraitsGroup9_Pals;
//extern ? gMonPortraitsGroup10_Pals;
//extern ? gMonPortraitsGroup11_Pals;
//extern ? gMonPortraitsGroup12_Pals;
//extern ? gMonPortraitsGroup13_Pals;
extern struct VectorU16 gTitleNoSaveArrowPositions[4];
extern struct VectorU16 gTitleNoSaveSelectorPositions[4];
extern struct VectorU16 gTitleSavedArrowPositions[5];
extern struct VectorU16 gTitleSavedSelectorPositions[5];
extern const struct VectorU32 gHighScoreNamePixelPositions[2][8];
struct CollisionCorrectionEntry
{
s8 correctionX;
s8 correctionY;
u16 angleThreshold;
};
extern struct CollisionCorrectionEntry gWallCollisionPositionCorrection[8];
extern struct CollisionCorrectionEntry gFlipperCollisionAngleCorrection[3];
extern u16 gPokedexVramBuffer[];
extern s16 gPokedexNumOwned;
extern s16 gPokedexSelectedMon;
extern s8 gLinkExchangeResult;
extern s16 gPokedexNumSeen;
extern s16 gPokedexListPosition;
extern StateFunc gPokedexStateFuncs[];
extern u16 gPokedexBg1_Tilemap[];
extern u16 gPokedexBgText_Gfx[];
extern u16 gPokedexBg2_Tilemap[];
extern u16 gPokedexBg_Gfx[];
extern u16 gPokedexBg3_Tilemap[];
extern const Palette gPokedexBackground_Pals[];
extern const Palette gPokedexSprites_Pals[];
extern u8 gPokedexSprites_Gfx[];
extern s16 gPokedexAnimatedIconFrame;
extern s16 gPokedexAnimatedIconTimer;
extern s16 gPokedexCursorOffset;
extern s16 gPokedexCursorBlinkOffset;
extern s16 gPokedexBlinkTimer;
extern s16 gPokedexScrollWaitFrames;
extern s8 gPokedexScrollActive;
extern s16 gPokedexSpriteAnimFrame;
extern s16 gPokedexSpriteAnimTimer;
extern s16 gPokedexPageIndicatorTimer;
extern s16 gPokedexShowAnimSprite;
extern s16 gPokedexShowPortrait;
extern s16 gPokedexShowCatchHatch[2];
extern s16 gPokedexDetailFrameCount;
extern s16 gPokedexInfoWindowSlideStep;
extern s8 gPokedexButtonPromptFrame;
extern s8 gPokedexShowButtonPrompt;
extern s16 gPokedexSpriteCategory;
extern s8 gPokedexShowCompletionBadge;
extern s16 gPokedexLinkStateTimer;
extern s8 gPokedexShowPopupWindow;
/****
* Yellow confirmation/info window mode
* 0= Transmession connection prompt,
* 1= Transferring in progress?
* 2= transmission error message
* 3= transfer complete?
* 4= delete save data confirmation
* ****/
extern s8 gPokedexPopupTypeIndex;
extern s8 gPokedex_EraseSaveDataAccessCounter;
extern s8 gPokedex_EraseSaveDataAccessStep;
extern s8 gPokedexDescriptionPage;
extern s8 gPokedexShowPageIndicator;
extern s8 gPokedexPageIndicatorBlink;
extern s8 gPokedexSpriteIndexBase;
extern s16 gPokedexFlags[];
extern s16 gPokedexFlagExchangeBuffer[];
extern s16 gPokedexListEntryCount;
extern u32 gMergedSapphireScoreIndex;
extern u32 gMergedRubyScoreIndex;
extern u16 gDexInfoWindowEmptyTextRowTiles[];
extern u16 gDexInfoWindowMiddleRowTiles[];
extern u16 gDexInfoWindowBottomRowTiles[];
extern u16 gDexInfoWindowEmptyRowTiles[];
extern u16 gPokedexInfoWindowBackupTiles[];
extern u16 gPokedexInfoWindowTilemap[];
extern u16 gRayquazaBodyCollisionMap[0x4000];
extern s16 gDexAnimationIx[];
extern s16 gTitleRevealJingle[][10][2];
extern u8 gLinkExchangeStep;
extern const struct PokemonSpecies gSpeciesInfo[];
extern const struct SpriteSet * const gEReaderSpriteSets[13];
extern u8 (*gMonHatchSpriteGroupGfx[])[0x10E0];
extern const Palette *gMonHatchSpriteGroupPals[];
extern u32 gLinkStatusResult;
extern s16 gLinkSendBuffer[];
extern u16 gLinkRecvBuffer[][2];
extern u32 gLinkConnectionState;
extern u8 gLinkPlayerCount;
extern u8 gLinkNegotiationFlags;
extern u16 gLinkExchangeFrameCounter;
extern s16 gLinkTimeoutCounter;
extern s8 gPokedexLinkTransferPhase;
extern s8 gEReaderLinkHandshakeStarted;
extern s8 gEReaderLinkDataReceived;
extern s8 gEReaderLinkAckSent;
extern const u16 gHighScoreCharToTileMap[];
extern s16 gScoreDigitBuffer[];
struct HighScoreNamePosition
{
u32 yBaseOffset;
u32 yPixelPosition;
u32 fieldWidth;
};
extern const struct HighScoreNamePosition gHighScoreNamePositions[][8];
extern struct Vector16 gIntroScene1Torchic_BGAnimTiming[0x8];
extern s16 gIntroScene1Torchic_TileOffsets[0x8];
struct UnkStruct_0202ADA0{
s16 posX;
s16 posY;
s16 velX;
s16 velY;
s16 animFrame;
s16 frameTimer;
};
extern struct UnkStruct_0202ADA0 gIntroBGParams[4];
extern s32 gIntroPalFadeLevel;
extern const struct SpriteSet *const gIntroScene1Torchic_SpriteSets[];
extern struct Vector16 gIntroScene1Torchic_ScaleOffsets[0x4];
extern s32 gIntroScaleY;
extern const struct SpriteSet *const gIntroScene3Treecko_SpriteSets[];
extern const struct SpriteSet *const gIntroScene5Mudkip_SpriteSets[];
extern const Palette gIntroScene4PlusleMinun_Pal[];
extern u8 gIntroScene4PlusleMinun_BG3Tilemap[];
extern u8 gIntroScene4PlusleMinunSprites_Gfx[];
extern u8 gIntroScene4PlusleMinun_BG0Tiles[];
extern u8 gIntroScene4PlusleMinun_BG1Tiles[];
extern u16 gTextTilemapBuffer[];
extern const Palette gIntroScene5Mudkip_Pal[];
extern u8 gIntroScene5Mudkip_BG2Tilemap[];
extern u8 gIntroScene5Mudkip_BG1Tiles[];
extern u8 gIntroScene5Mudkip_BG3Tilemap[];
extern u8 gIntroScene5MudkipText_Gfx[];
extern u8 gIntroScene5Mudkip_BG0Tilemap[];
extern u8 gIntroScene5MudkipSprites_Gfx[];
extern s16 gIntroScene5Mudkip_TileOffsets[];
extern s8 gIntroScene6ChinchouVelocityIndex;
extern s8 gIntroScene6ChinchouEntitySpawnIndex;
extern const Palette gIntroScene6Chinchou_Pal[];
extern u8 gIntroScene6Chinchou_BG3Tilemap[];
extern u8 gIntroScene6ChinchouSprites_Gfx[];
extern u8 gIntroScene6Chinchou_BG2Tilemap[];
extern u8 gIntroScene6Chinchou_BG0Tilemap[];
extern u8 gIntroScene6Chinchou_BG1Tiles[];
extern u8 gIntroScene6ChinchouStars_Gfx[];
extern u8 gIntroScene6Chinchou_BounceFlags[];
extern const struct SpriteSet *const gIntroScene6Chinchou_SpriteSets[];
extern s16 gIntroWailmerScaleX;
extern s16 gIntroWailmerScaleY;
extern const struct SpriteSet *const gIntroScene7Parade_SpriteSets[];
extern const struct SpriteSetTableEntry gFieldSpriteSets[];
extern const Palette gIntroScene7Parade_Pal[];
extern u8 gIntroScene7Parade_BG3Tilemap[];
extern u8 gIntroScene7ParadeSprites_Gfx[];
extern u8 gIntroScene7Parade_BG2Tiles[];
extern u8 gIntroScene7Parade_BG0Tiles[];
extern u8 gIntroScene7Parade_BG1Tiles[];
extern u8 gIntroScene7ParadeWailmer_Gfx[];
extern s8 gLinkExchangeSendPhase;
extern const Palette gIntroScene8WailmerLaunch_Pal[];
extern u8 gIntroScene8WailmerLaunch_BG2Tilemap[];
extern u8 gIntroScene8WailmerLaunchExplosion_Gfx[];
extern u8 gIntroScene8WailmerLaunch_Gfx[];
extern s8 gIntroScene9BallFlight_BallXFrameAdjustTable[];
extern s8 gIntroObjWhiteFlash;
extern s8 gIntroBGWhiteFlash;
extern const Palette gIntroScene9BallFlight_Pal[];
extern u8 gIntroScene9BallFlight_BG3Tilemap[];
extern u8 gIntroScene9BallFlightClouds_Gfx[];
extern u8 gIntroScene9BallFlightall_Gfx[];
extern u16 gCommonAndEggWeights[];
extern u16 gMain_saveData_pokedexFlags_90[10];
extern u16 Sio32ConnectionData[4];
extern u32 gSio32SendData;
/*
Note: gMain lives at gUnknown_0200B0C0 in running memory.
anything from there to gUnknown_0200FAE0 is part of that object.
*/
#endif // GUARD_VARIABLES_H