mirror of
https://github.com/pret/pokepinballrs.git
synced 2026-09-26 05:31:12 -04:00
d55c2eb214
Helper macros: * BoardIn/NotInActivityMobe * Start Of Even Bonus loop & RayquazaCatchChanceTrip States: * Bonus stage loop * Sapphire Shop Gate (plusle/minun) & index consts + shock wall anim state * Spoink Launcher * Makuhita * Seedot * Zigzagoon * Pelipper * Nuzleaf
767 lines
30 KiB
C
767 lines
30 KiB
C
#ifndef GUARD_FUNCTIONS_H
|
|
#define GUARD_FUNCTIONS_H
|
|
|
|
// Place all external function declarations in this file
|
|
|
|
// src/gbplayer.c
|
|
|
|
void InitGameBoyPlayer(void);
|
|
void EnableGbPlayerRumble(void);
|
|
void DisableGbPlayerRumble(void);
|
|
int IsGbPlayerReady(void);
|
|
void RestoreDefaultInterrupts(void);
|
|
void PlayRumble(int arg0);
|
|
void SetRumbleMode(int arg0);
|
|
void SetRumblePaused(int arg0);
|
|
void ProcessRumbleFrame(void);
|
|
void InitSio32Hardware(void);
|
|
extern u32 Sio32ValidateResponse(u8 param_1);
|
|
extern u32 Sio32BuildCommand(u8 param_1);
|
|
void Sio32IDIntr(void);
|
|
|
|
// src/main.c
|
|
|
|
void AgbMain(void);
|
|
void Main_09BC(void);
|
|
void VBlankIntr(void);
|
|
void VCountIntr(void);
|
|
void SerialIntr(void);
|
|
void Timer3Intr(void);
|
|
void IntrDummy(void);
|
|
s16 Sin(u16 arg0);
|
|
s16 Cos(u16 arg0);
|
|
|
|
// sin table produces values from 0 - 20000
|
|
#define TRIG_SCALE 20000
|
|
|
|
/* Multiply value by sin(angle).
|
|
|
|
Works in most cases; compiles differently with some values, like -100, where the negative
|
|
plus optimizer pre-reduction causes it to fall in a different position.
|
|
Use the MulNegSinSpecial for those cases */
|
|
#define MulSin(value, angle) (((value) * (Sin(angle))) / TRIG_SCALE)
|
|
|
|
/* Multiply value by cos(angle).*/
|
|
#define MulCos(value, angle) (((value) * (Cos(angle))) / TRIG_SCALE)
|
|
|
|
// Multiply -value by sin(angle). (used in cases where compile optimization order matters)
|
|
#define MulNegSinSpecial(value, angle) (-((Sin(angle)) * (value)) / TRIG_SCALE)
|
|
|
|
void DisableVBlankInterrupts(void);
|
|
void MainLoopIter(void);
|
|
void DefaultMainCallback(void);
|
|
|
|
// src/rom_3219C.c
|
|
|
|
void PickSpeciesForCatchEmMode(void);
|
|
|
|
// src/rom_850.c
|
|
|
|
u16 IsInVblank(void);
|
|
void SetMainCallback(void (*func)(void));
|
|
void ResetMainCallback(void);
|
|
void SetVBlankIntrFunc(void (*func)(void));
|
|
void ResetVBlankIntrFunc(void);
|
|
void SetVCountIntrFunc(void (*func)(void));
|
|
void ResetVCountIntrFunc(void);
|
|
|
|
// src/titlescreen.c
|
|
|
|
void TitlescreenMain(void);
|
|
void LoadTitlescreenGraphics(void);
|
|
void InitTitlescreenStates(void);
|
|
void TitleScreen1_WaitForStartButton(void);
|
|
void TitleScreen2_AnimatePressStartSelected(void);
|
|
void TitleScreen9_DeleteSaveConfirmation(void);
|
|
void TitleScreen3_AnimateMenuSlideIn(void);
|
|
void TitleScreen4_MenuInputNoSavedGame(void);
|
|
void TitleScreen7_ProcessMenuItemSelected_NoSavedGame(void);
|
|
void TitleScreen5_MenuInputSavedGame(void);
|
|
void TitleScreen8_ProcessMenuItemSelected_SavedGame(void);
|
|
void TitleScreen6_AnimCloseMenu(void);
|
|
void TitleScreen10_ExecMenuSelection(void);
|
|
void TitleScreen11_FadeToAction(void);
|
|
|
|
// src/util.c
|
|
|
|
void SetMainGameState(u16 mainState);
|
|
void FadeInScreen(void);
|
|
void FadeOutScreen(void);
|
|
s16 LoadSpriteSets(const struct SpriteSet *const *spriteSets, u16 numSpriteSets, struct SpriteGroup *spriteGroups);
|
|
void ResetDisplayState(void);
|
|
void ClearGraphicsMemory(void);
|
|
void ClearBgTilemapAndOffsets(void);
|
|
void ClearSprites(void);
|
|
void DrawTextToTilemap(u8 *arg0, s16 arg1, s16 arg2);
|
|
u8 *FormatIntToString(int arg0, u8 *arg1, int arg2, s16 arg3);
|
|
void SetMatrixScale(s16 xScale, s16 yScale, s16 matrixNum);
|
|
|
|
// src/bonus_field_select.s
|
|
|
|
extern void BonusFieldSelectMain(void);
|
|
extern void LoadBonusFieldSelectGraphics(void);
|
|
extern void InitBonusFieldSelectState(void);
|
|
extern void BonusFieldSelect_Menu(void);
|
|
extern void BonusFieldSelect_FadeToSelection(void);
|
|
extern void RenderBonusFieldSelectSprites(void);
|
|
|
|
// src/ereader.c
|
|
|
|
extern void EReaderMain(void);
|
|
extern void LoadEReaderGraphics(void);
|
|
extern void InitEReaderTextState(void);
|
|
extern void Ereader_ShowInstructions(void);
|
|
extern void Ereader_AnimateLinkCable(void);
|
|
extern void Ereader_Communicating(void);
|
|
extern void Ereader_ShowLinkTimeout(void);
|
|
extern void Ereader_CloseSuccessfulTransmission(void);
|
|
extern void Ereader_ShowSuccessPopup(void);
|
|
extern void Ereader_ShowPrizeText(void);
|
|
extern void Ereader_FadeScreenToMenu(void);
|
|
extern void ClearEReaderTextRows(void);
|
|
extern void DrawEReaderTextPage(s8);
|
|
extern void DrawEReaderTextCharacter(s8, s8);
|
|
extern void BlinkEReaderTextCursor(s8, u16);
|
|
extern s16 GetEReaderCardIndex(void);
|
|
extern void UpdateEReaderSprites(void);
|
|
extern void UpdateEReaderSpritesViaOam(void);
|
|
extern void InitEReaderLinkBuffers(void);
|
|
extern s32 PrepareEReaderLinkSendCmd(void);
|
|
extern s16 ProcessEReaderLinkReceive(void);
|
|
|
|
// src/field_select.s
|
|
|
|
extern void FieldSelectMain(void);
|
|
extern void LoadFieldSelectGraphics(void);
|
|
extern void FieldSelect_State1_8C7C(void);
|
|
extern void FieldSelect_State2_8F64(void);
|
|
|
|
// src/high_scores.s
|
|
extern void HighScoresMain(void);
|
|
extern void IdleHighScoresMain(void);
|
|
extern void LoadHighScoreGraphics(void);
|
|
extern void InitHighScoreData(void);
|
|
extern void HighScore_ShowCompletionBanner(void);
|
|
extern void HighScore_FlashNewEntry(void);
|
|
extern void HighScore_BrowseScores(void);
|
|
|
|
// asm/high_scores.s
|
|
|
|
extern void HighScore_NameEntry(void);
|
|
extern void HighScore_InitLinkExchange(void);
|
|
//extern ? HighScore_LinkRetryWait();
|
|
//extern ? HighScore_LinkError();
|
|
//extern ? HighScore_LinkSuccess();
|
|
//extern ? HighScore_ResetConfirmation();
|
|
//extern ? HighScore_ExitToTitle();
|
|
//extern ? IdleHighScore_LoadGraphics();
|
|
extern void InitIdleHighScoreData(void);
|
|
//extern ? IdleHighScore_Exit();
|
|
//extern ? HighScore_ReloadAfterLink();
|
|
//extern ? HighScore_ShowMergedScores();
|
|
//extern ? HighScore_ReturnToMain();
|
|
extern void UpdateNameEntryCursor(void);
|
|
extern void RenderHighScoreSprites(void);
|
|
extern void RenderCompletionBanner(void);
|
|
extern void InitLinkExchangeBuffers(void);
|
|
extern s16 HighScore_ProcessLinkExchange(void);
|
|
extern s16 ProcessLinkSendData(void);
|
|
extern s16 MasterSendHighScores();
|
|
extern s16 SlaveSendHighScores();
|
|
extern s16 MasterReceiveHighScores(void);
|
|
extern s16 SlaveReceiveHighScores(void);
|
|
extern void DrawAllHighScoreText(void);
|
|
extern void FormatScoreDigits(u32, u32);
|
|
extern int CompareScores(u32, u32, u32, u32);
|
|
extern s32 GetNewHighScoreIndex(u32, u32, u32);
|
|
extern void InsertNewHighScore(u32, u32, u32, int);
|
|
extern u32 MergeReceivedTopScore(u32);
|
|
extern void PrintHighScoreNameChar(u32, u32, s16, u32);
|
|
extern void SetDefaultHighScores(void);
|
|
extern void AnimateScoreTilemapPalette(u32, u32, s16);
|
|
extern void ResetScoreTilemapPalette(u32, u32, s16);
|
|
extern s8 CheckAllPokemonCaught(void);
|
|
extern void FadeInFromWhite(void (*func)(void));
|
|
extern void FadeOutToWhite(void (*func)(void));
|
|
extern void FadeInWithCustomPalettes(u8 *, const Palette *, void (*func)(void));
|
|
extern void FadeOutToBlack(void (*func)(void));
|
|
extern void InterpolatePaletteStep(u16);
|
|
extern void DarkenPalette(const Palette *, u8 *, u16, u16); // Very much subject to change
|
|
extern void BrightenPalette(const Palette *, u8 *, u16, u16);
|
|
extern void FlashWhiteTransitionIn(void);
|
|
extern void FlashWhiteTransitionOut(void);
|
|
extern void UnblankLCD(void);
|
|
extern void ForceBlankLCD(void);
|
|
extern void DisableDisplayInterrupts(void);
|
|
extern void PrintString(u16 glyph, u16 color, int x, int y, int arg4, int arg5);
|
|
|
|
// src/intro.c
|
|
extern void IntroMain(void);
|
|
extern void Intro_State0_929C(void);
|
|
extern void Intro_State1_9348(void);
|
|
extern void Intro_State2_9370(void);
|
|
extern void Intro_State3_938C(void);
|
|
extern void Intro_State4_93D0(void);
|
|
extern void IntroVBlankCallback(void);
|
|
extern void IntroScene1_00_LoadTitleLettersAndTorchicScene(void);
|
|
extern void IntroScene1Torchic_InitVars(void);
|
|
|
|
// asm/intro.s
|
|
|
|
extern void IntroScene1TitleText_01_TitleLetterBounceReveal(void);
|
|
extern void IntroScene1TitleText_02_TitleRecedeToBackground(void);
|
|
extern void IntroScene1TitleText_03_1PxText(void);
|
|
extern void IntroScene1Torchic_04_LargeSparkle(void);
|
|
extern void IntroScene1Torchic_05_SpeedLineFadeIn(void);
|
|
extern void IntroScene1Torchic_06_BrightenPokeballFlyTowardsScreen(void);
|
|
extern void IntroScene1Torchic_07_TorchicRiseAndBGSplit(void);
|
|
extern void nullsub_4(void);
|
|
//extern ? IntroScene1Torchic_09_OrangeTextScrolls();
|
|
//extern ? nullsub_5();
|
|
//extern ? nullsub_17();
|
|
//extern ? IntroScene1Torchic_12_FlashWhite();
|
|
extern void IntroScene1Torchic_RenderTitleSprite(void);
|
|
extern void IntroScene1Torchic_RenderScaledTitle(void);
|
|
extern void IntroScene1Torchic_RenderAllSprites(void);
|
|
//extern ? IntroScene1Torchic_13_ResetTilemap();
|
|
//extern ? IntroScene2Pikas_14_LoadPinkYellowBackground();
|
|
extern void IntroScene2Pikas_InitVars(void);
|
|
//extern ? nullsub_6();
|
|
//extern ? IntroScene2Pikas_16_PikaPairRising();
|
|
//extern ? nullsub_7();
|
|
//extern ? IntroScene2Pikas_18_FlashWhite();
|
|
//extern ? IntroScene2Pikas_19_ResetTilemap();
|
|
//extern ? IntroScene3Treecko_20_LoadTreeckoFlipperBall();
|
|
//extern ? IntroScene3Treecko_InitVars();
|
|
//extern ? IntroScene3Treecko_21_MoveTreeckoFlipperBallAndSplit();
|
|
//extern ? IntroScene3Treecko_22_FlipperHitTextScroll();
|
|
//extern ? nullsub_8();
|
|
//extern ? IntroScene3Treecko_24_FlashWhite();
|
|
//extern ? IntroScene3Treecko_RenderPokeball();
|
|
//extern ? IntroScene3Treecko_25_ResetTilemap();
|
|
//extern ? IntroScene4PlusleMinun_26_LoadTealWhiteBackground();
|
|
//extern ? IntroScene4PlusleMinun_InitVars();
|
|
//extern ? nullsub_9();
|
|
//extern ? IntroScene4PlusleMinun_28_PlusleMinunTextScroll();
|
|
//extern ? nullsub_10();
|
|
//extern ? IntroScene4PlusleMinun_30_FlashWhite();
|
|
//extern ? IntroScene4PlusleMinun_31_ResetTilemap();
|
|
//extern ? IntroScene5Mudkip_32_LoadMudkipBallScene();
|
|
//extern ? IntroScene5Mudkip_InitVars();
|
|
//extern ? IntroScene5Mudkip_33_MoveMudkipBallSplit();
|
|
//extern ? IntroScene5Mudkip_34_MoveMudkipBallTextScroll();
|
|
//extern ? nullsub_11();
|
|
//extern ? IntroScene5Mudkip_36_FlashWhite();
|
|
//extern ? IntroScene5Mudkip_RenderAllSprites();
|
|
//extern ? IntroScene5Mudkip_37_ResetTilemap();
|
|
//extern ? IntroScene6Chinchou_38_LoadChinchou();
|
|
//extern ? IntroScene6Chinchou_InitVars();
|
|
//extern ? IntroScene6Chinchou_39_MoveChinchouBallAndStars();
|
|
//extern ? IntroScene6Chinchou_40_MoveChinchouAndStars();
|
|
//extern ? IntroScene6Chinchou_41_FlashWhiteClearSprites();
|
|
//extern ? IntroScene6Chinchou_RenderStarSprites();
|
|
//extern ? IntroScene6Chinchou_42_FrameAdvance();
|
|
//extern ? IntroScene7Parade_43_LoadPinkYellowBackground();
|
|
//extern ? IntroScene7Parade_InitVars();
|
|
//extern ? IntroScene7Parade_44_MoveMakuhita();
|
|
//extern ? IntroScene7Parade_45_MoveMakuhitaAndSpoink();
|
|
//extern ? IntroScene7Parade_46_MoveMakuhitaPelipperAndSpoink();
|
|
//extern ? IntroScene7Parade_47_MoveMakuhitaPelipperWailmerAndSpoink();
|
|
//extern ? IntroScene7Parade_48_MoveWailmerShake();
|
|
//extern ? IntroScene7Parade_49_FlashWhite();
|
|
//extern ? IntroScene7Parade_RenderWailmer();
|
|
//extern ? IntroScene7Parade_50_ResetTilemap();
|
|
//extern ? IntroScene8WailmerLaunch_51_LoadWailmerBlastBackground();
|
|
//extern ? IntroScene8WailmerLaunch_InitVars();
|
|
//extern ? IntroScene8WailmerLaunch_52_BallAppearTimer();
|
|
//extern ? IntroScene8WailmerLaunch_53_MoveBallStarsAndWailmer();
|
|
//extern ? IntroScene8WailmerLaunch_54_MoveStarsAndWailmer();
|
|
//extern ? nullsub_12();
|
|
//extern ? nullsub_13();
|
|
//extern ? IntroScene8WailmerLaunch_57_FlashWhiteClearSprites();
|
|
//extern ? IntroScene8WailmerLaunch_RenderAllSprites();
|
|
//extern ? IntroScene8WailmerLaunch_58_ResetTilemap();
|
|
//extern ? IntroScene9BallFlight_59_LoadSkySpeedOrbs();
|
|
//extern ? IntroScene9BallFlight_InitVars();
|
|
//extern ? IntroScene9BallFlight_60_MoveBallAndSky();
|
|
//extern ? IntroScene9BallFlight_61_MoveSky();
|
|
//extern ? IntroScene9BallFlight_62_MoveBallSkyFadeWhite();
|
|
//extern ? nullsub_14();
|
|
//extern ? IntroSceneX_64_HoldWhitescreen();
|
|
//extern ? IntroSceneX_64_EndIntro();
|
|
|
|
// asm/libagbsyscall.s
|
|
|
|
//extern ? CpuSet();
|
|
//extern ? LZ77UnCompWram();
|
|
//extern ? RegisterRamReset();
|
|
//extern ? Sqrt();
|
|
//extern ? VBlankIntrWait();
|
|
|
|
// asm/m4a_1.s
|
|
|
|
//extern ? umul3232H32();
|
|
//extern ? SoundMain();
|
|
//extern ? SoundMainRAM();
|
|
//extern ? SoundMainBTM();
|
|
//extern ? RealClearChain();
|
|
//extern ? ply_fine();
|
|
//extern ? MPlayJumpTableCopy();
|
|
//extern ? ld_r3_tp_adr_i();
|
|
//extern ? ply_goto();
|
|
//extern ? ply_patt();
|
|
//extern ? ply_pend();
|
|
//extern ? ply_rept();
|
|
//extern ? ply_prio();
|
|
//extern ? ply_tempo();
|
|
//extern ? ply_keysh();
|
|
//extern ? ply_voice();
|
|
//extern ? ply_vol();
|
|
//extern ? ply_pan();
|
|
//extern ? ply_bend();
|
|
//extern ? ply_bendr();
|
|
//extern ? ply_lfodl();
|
|
//extern ? ply_modt();
|
|
//extern ? ply_tune();
|
|
//extern ? ply_port();
|
|
//extern ? m4aSoundVSync();
|
|
//extern ? MPlayMain();
|
|
//extern ? TrackStop();
|
|
//extern ? ChnVolSetAsm();
|
|
//extern ? ply_note();
|
|
//extern ? ply_endtie();
|
|
//extern ? clear_modM();
|
|
//extern ? ld_r3_tp_adr_i();
|
|
//extern ? ply_lfos();
|
|
//extern ? ply_mod();
|
|
|
|
// asm/m4a_3.s
|
|
|
|
//extern ? CgbSound();
|
|
|
|
// asm/options.s
|
|
|
|
extern void Options_Main();
|
|
//extern ? Options_LoadGraphics();
|
|
extern void Options_InitStates(void);
|
|
//extern ? Options_HandleInput();
|
|
//extern ? Options_State2_51C3C();
|
|
//extern ? Options_State3_51C60();
|
|
extern void UpdateOptionsSpritePositions(void);
|
|
extern void CaptureButtonConfigInput(void);
|
|
extern void InitCustomButtonConfigDisplay(void);
|
|
extern void SetButtonConfigInputs(s8);
|
|
|
|
// asm/pokedex.s
|
|
|
|
extern void PokedexMain(void);
|
|
//extern ? LoadPokedexGraphics();
|
|
extern void InitPokedexState(void);
|
|
//extern ? Pokedex_HandleListInput();
|
|
//extern ? Pokedex_PostScrollRefresh();
|
|
//extern ? Pokedex_InfoWindowSlideIn();
|
|
//extern ? Pokedex_DetailViewInput();
|
|
//extern ? Pokedex_InfoWindowSlideOut();
|
|
//extern ? Pokedex_LinkSetup();
|
|
//extern ? Pokedex_LinkTransferLoop();
|
|
//extern ? Pokedex_LinkRetryDelay();
|
|
//extern ? Pokedex_LinkErrorTimeout();
|
|
//extern ? Pokedex_LinkSuccessSequence();
|
|
//extern ? Pokedex_DeleteConfirmation();
|
|
//extern ? Pokedex_ReturnToTitle();
|
|
//extern ? BlitGlyphToTileBuffer();
|
|
extern void LoadMonAnimationSprite(s16);
|
|
extern s16 CheckMonHasAnimation(s16);
|
|
extern void ResetPokedex(void);
|
|
|
|
// asm/rom_1068C.s
|
|
|
|
extern void CopyString(int, int, int, int, int, int);
|
|
void SetStringPalette(int, int, int, int, u16);
|
|
extern void CopyBgTilesRect(void *volatile, void *volatile, s16, s16);
|
|
//extern ? FadeOutToWhite();
|
|
extern void ClearHighScoreNameEntry(void);
|
|
|
|
// asm/rom_11B9C.s
|
|
|
|
//extern ? InitFrameProcess5_BallMovement_AllBoards();
|
|
extern void InitBallState(s16);
|
|
//extern ? UpdateFrameProcess5_BallMovement_MainBoards();
|
|
extern void InitFrameProcess6_Collision_AllBoards();
|
|
extern void UpdateFrameProcess6_Collision_AllBoards();
|
|
extern u16 DetectBallCollision(struct Vector16*);
|
|
extern void ComputeFlipperBounce(struct Vector16*, struct Vector16*, s16);
|
|
extern void ComputeWallReflection(u16, struct Vector16*, struct Vector16*);
|
|
extern void ApplyBounceBackForce(u16, struct Vector32*, u16);
|
|
extern u16 PixelWalkCollisionDetection(struct Vector16*, struct Vector16);
|
|
extern u16 CheckFlipperCollision(struct Vector16*, u16*);
|
|
extern u16 CheckCatchTargetCollision(struct Vector16*, u16*);
|
|
extern void ProcessBonusTrapPhysics(void);
|
|
extern u16 LookupFlipperCollisionMap(struct Vector16 r0, s16 r1, u16 *r2, s16 r3);
|
|
//extern ? ComputeFlipperLaunchVelocity();
|
|
//extern ? CollisionCheck_Ruby();
|
|
void CheckRubyBoardCollision(struct Vector16*, u16*, u8*);
|
|
void ProcessRubyCollisionEvent(u8, s16*, u16*);
|
|
//extern ? CollisionCheck_Sapphire();
|
|
extern void CheckSapphireBumperCollision(struct Vector16 *arg0, s16* arg1, u8* arg2);
|
|
extern void ProcessSapphireCollisionEvent(u8, u16*, u16*);
|
|
//extern ? CollisionCheck_Dusclops();
|
|
extern void CheckDusclopsEntitiesCollision(struct Vector16 *arg0, s16* arg1, u8* arg2);
|
|
extern void CheckDusclopsAbsorbZoneHit(u8, u16*, u16*);
|
|
//extern ? CollisionCheck_Kecleon();
|
|
extern void CheckKecleonEntityCollision(struct Vector16 *, u16 *, u8 *);
|
|
extern void ProcessKecleonBallDisturbanceCollisionEvent(u8, u16 *, u16 *);
|
|
extern void ProcessKecleonSkulkingDisturbanceCollisionEvent(struct Vector16 *);
|
|
//extern ? CollisionCheck_Kyogre();
|
|
extern void CheckKyogreEntityCollision(struct Vector16 *, u16 *, u8 *);
|
|
extern void ProcessKyogreCollisionEvent(u8, u16 *, u16 *);
|
|
//extern ? CollisionCheck_Groudon();
|
|
extern void CheckGroudonEntityCollision(struct Vector16 *, u16 *, u8 *);
|
|
extern void ProcessGroudonCollisionEvent(u8, u16 *, u16 *);
|
|
extern s16 CollisionCheck_Rayquaza(struct Vector16*, u16*);
|
|
extern void CheckRayquazaEntityCollision(struct Vector16*, u16*, u8*);
|
|
extern void ProcessRayquazaCollisionEvent(u8, u16*, u16*);
|
|
extern s16 CollisionCheck_Spheal(struct Vector16*, u16*);
|
|
extern void CheckSphealEntityCollision(struct Vector16*, u16*, u8*);
|
|
extern void ProcessSphealCollisionEvent(u8, u16*, u16*);
|
|
extern void PinballGameMain();
|
|
extern void IdlePinballGameMain();
|
|
extern void PinballGameIdle0_19048(void);//gMain.subState = 0
|
|
extern void PinballGameIdle1_19190(void);//gMain.subState = 1
|
|
extern void PinballGame_State2_4ABC8(void);//gMain.subState = 2
|
|
extern void PinballGameIdle3_19288(void);//gMain.subState = 3
|
|
//extern ? InitFrameProcess4_FlipperLogic_AllBoards();
|
|
extern void DetermineFlipperBallSide(struct Vector16 arg0);
|
|
//extern ? UpdateFrameProcess4_FlipperLogic_MainBoards();
|
|
extern void UpdateMainBoardFlipperPhysics(void);
|
|
extern void UpdateFrameProcess4_FlipperLogic_BonusBoards(void);
|
|
extern void UpdateBonusBoardFlipperPhysics(void);
|
|
//extern ? InitFrameProcess3_BoardLogic_RubyBoard();
|
|
//extern ? UpdateFrameProcess3_BoardLogic_RubyBoard();
|
|
extern void RequestBoardStateTransition(u8);
|
|
extern void BoardStateDispatcher(void);
|
|
//extern ? InitFieldIdle();
|
|
//extern ? UpdateFieldIdle();
|
|
//extern ? HandleBoardStateTransitionTeardown();
|
|
//extern ? UpdateRubyBoardEntityRendering();
|
|
//extern ? UpdateRubyBoardEntityLogic();
|
|
//extern ? HandleRubyFlipperButtonInput();
|
|
extern void ProcessBannerCameraTransition(void);
|
|
//extern ? RenderBannerSlideAnimation();
|
|
|
|
extern void DispatchRubyCatchModeInit();
|
|
extern void UpdateRubyCatchModeAnimation(void);
|
|
//extern ? InitSharpedoCatchMode();
|
|
extern void AnimateSharpedoCatchSequence();
|
|
extern void InitRubyEggHatchMode(void);
|
|
//extern ? AnimateEggHatchSequence();
|
|
//extern ? InitRubyEvolutionShopMode();
|
|
//extern ? AnimateRubyEvolutionShopSequence();
|
|
extern void UpdateShopEntryAnimation(s16);
|
|
extern void InitCenterTrapMode(void);
|
|
extern void AnimateCenterTrapSequence(void);
|
|
extern void TransitionToBonusField(void);
|
|
extern void LoadPortraitGraphics(s16, s16);
|
|
extern void UpdatePortraitSpritePositions(void);
|
|
extern void ClampPortraitSpritesToOffscreen(void);
|
|
//extern ? UpdateNuzleafEntity();
|
|
//extern ? SelectShopDoorState();
|
|
//extern ? AnimateShopDoor();
|
|
//extern ? DrawWhiscash();
|
|
//extern ? RubyPond_EntityLogic();
|
|
//extern ? RubyPondTriBumperHandleHitAndDraw();
|
|
//extern ? AnimateSharpedoEntity();
|
|
extern void UpdatePikachuChargeCounter();
|
|
extern void DrawPikachuSpinner();
|
|
//extern ? UpdateChikoritaAttackAnimation();
|
|
//extern ? AnimateChikoritaSprite();
|
|
//extern ? UpdateGulpinBossState();
|
|
//extern ? UpdateSideBumperAnimation();
|
|
//extern ? DrawSideBumperSprites();
|
|
extern void UpdateKickbackLogic();
|
|
extern void PichuArrivalSequence();
|
|
extern void ResetCatchState(s16);
|
|
//extern ? InitCatchTrigger();
|
|
//extern ? UpdateCatchTrigger();
|
|
extern void FullCatchStateCleanup(void);
|
|
//extern ? InitBonusStageSelect();
|
|
//extern ? UpdateBonusStageSelect();
|
|
extern void ShowBonusTrapSprite(void);
|
|
extern void AnimateBonusTrapSprite(void);
|
|
extern void ProcessChargeIndicator();
|
|
//extern ? UpdateRubyEvolutionShopSprite();
|
|
extern void RenderEvolutionUI(s16);
|
|
extern void AnimateCoinReward();
|
|
extern void InitTotodileEggDelivery();
|
|
//extern ? AnimateTotodileEggDelivery();
|
|
//extern ? InitAerodactylEggDelivery();
|
|
//extern ? AnimateAerodactylEggDelivery();
|
|
extern void LoadPokemonNameGraphics();
|
|
extern void UpdatePokemonNamePosition();
|
|
extern void HidePokemonNameDisplay();
|
|
extern void InitWasCaughtBanner(void);
|
|
extern void AnimateWasCaughtBanner(void);
|
|
extern void InitRubyEggHatchAnimation(void);
|
|
//extern ? UpdateRubyEggHatchAnimation();
|
|
//extern ? UpdateHatchCave();
|
|
extern void CleanupEggModeState(void);
|
|
//extern ? InitEggMode();
|
|
//extern ? UpdateEggMode();
|
|
extern void DisableCatchTileDisplay(void);
|
|
extern void RevealCatchTilesSequential(void);
|
|
extern void RevealCatchTilesBurst(void);
|
|
//extern ? InitBoardIntroMode();
|
|
//extern ? UpdateBoardIntroMode();
|
|
extern void UpdateBoardArrowAnimState(void);
|
|
extern void SetBoardArrowState(s16);
|
|
extern void CleanupTravelModeState(void);
|
|
//extern ? InitTravelMode();
|
|
//extern ? UpdateTravelMode();
|
|
extern void CleanupEvolutionModeState(void);
|
|
//extern ? InitEvolutionMode();
|
|
//extern ? UpdateEvolutionMode();
|
|
extern void UpdateEvolutionItemAnimation(void);
|
|
extern void CleanupCatchEmState(void);
|
|
//extern ? InitCatchEmMode();
|
|
//extern ? UpdateCatchEmMode();
|
|
//extern ? InitJirachiBonus();
|
|
//extern ? UpdateJirachiBonus();
|
|
extern void LoadCatchSpriteGraphics(void);
|
|
extern void LoadMonFieldSpriteGraphics(void);
|
|
extern void DrawCatchMonBoardSprite(void);
|
|
extern void CleanupCatchMonBoardSprite(void);
|
|
extern void DrawJirachiSprites(void);
|
|
extern void CleanupJirachiSprites(void);
|
|
extern void CheckCatchTileRevealState(void);
|
|
extern void PlayCatchMonAppearsAnimation(void);
|
|
extern void ResetCatchFrameState(void);
|
|
extern void InitSequentialTileParticles(void);
|
|
extern void UpdateSequentialTileParticles(void);
|
|
extern void InitBurstTileParticles(void);
|
|
extern void UpdateBurstTileParticles(void);
|
|
extern void InitRouletteWheel(void);
|
|
extern void RunRouletteWheel(void);
|
|
extern void GivePrize();
|
|
//extern ? sub_2C518();
|
|
//extern ? UpdateMakuhitaEntity();
|
|
//extern ? DrawRubyRampPrize();
|
|
extern void AnimateOneUpSprite();
|
|
extern void AnimateBannerSlide(void);
|
|
extern void UpdateSpoinkAnimation();
|
|
extern void DrawSpoinkSprite();
|
|
extern void RunEvolutionCutscene(void);
|
|
//extern ? sub_2DE54();
|
|
extern void RunTravelEventCutscene(void);
|
|
extern void DecrementPelipperTimer();
|
|
extern void UpdatePelipperPondEntity();
|
|
extern void AnimateWailmerEntity();
|
|
extern void UpdateZigzagoonEntity();
|
|
extern void DrawZigzagoonAndRouletteStopPrompt();
|
|
extern void UpdateSapphireShopGateLogic();
|
|
extern void DrawSapphireShopGuards();
|
|
extern void CalculateRubyBumperBounce();
|
|
extern void HandleRubyBumperHit();
|
|
extern void InitSapphireEggHatchAnimation();
|
|
extern void UpdateSapphireEggHatchAnimation();
|
|
extern void UpdateSapphireSeedotCollection();
|
|
extern void DrawSapphireSeedotAndBasketSprites();
|
|
extern void UpdateSapphireShopSignAnimation();
|
|
extern void DrawSapphireShopSignSprite(void);
|
|
extern void UpdateSapphireHatchMachine();
|
|
extern void DrawBoardEdgeBanner(void);
|
|
extern void RestoreBoardObjPalettes(s16);
|
|
extern void RegisterCaptureOrEvolution(s16);
|
|
|
|
extern void BuildSpeciesWeightsForCatchEmMode(void);
|
|
|
|
// asm/rom_3219C.s
|
|
|
|
extern void BuildSpeciesWeightsForEggMode(void);
|
|
extern void PickSpeciesForEggMode(void);
|
|
//extern ? InitFrameProcess3_BoardLogic_SapphireBoard();
|
|
//extern ? UpdateFrameProcess3_BoardLogic_SapphireBoard();
|
|
extern void UpdateSapphireBoardEntityRendering();
|
|
extern void UpdateSapphireBoardEntityLogic();
|
|
extern void DispatchSapphireCatchModeInit();
|
|
extern void UpdateSapphireCatchModeAnimation();
|
|
extern void InitSapphireEvolutionShopCatch();
|
|
extern void UpdateSapphireEvolutionShopSequence();
|
|
extern void InitSapphireWailmerCatch();
|
|
extern void UpdateSapphireWailmerCatchSequence();
|
|
//extern ? InitFrameProcess3_BoardLogic_DusclopsBoard();
|
|
//extern ? UpdateFrameProcess3_BoardLogic_DusclopsBoard();
|
|
extern void SwapDuskullEntityIndex(s16 index1, s16 index2);
|
|
extern void DuskullPhase_ProcessEntityLogic();
|
|
extern void DuskullPhase_ProcessGraphics();
|
|
extern void DusclopsPhase_ProcessEntityLogicAndGraphics();
|
|
extern void FadeToMainBoard();
|
|
extern void ProcessBonusBannerAndScoring();
|
|
extern void HideDusclopsSprites();
|
|
extern void TransitionFromBonusToMainBoard(void);
|
|
//extern ? InitFrameProcess3_BoardLogic_KecleonBoard();
|
|
//extern ? UpdateFrameProcess3_BoardLogic_KecleonBoard();
|
|
//extern ? UpdateKecleonEntityLogic();
|
|
//extern ? UpdateKecleonScopeItem();
|
|
//extern ? UpdateKecleonScopeVision();
|
|
//extern ? RenderKecleonBoardElements();
|
|
//extern ? SortKecleonSpritesByY();
|
|
//extern ? InitFrameProcess3_BoardLogic_KyogreBoard();
|
|
//extern ? UpdateFrameProcess3_BoardLogic_KyogreBoard();
|
|
extern void UpdateKyogreEntityLogic(void);
|
|
extern void RenderKyogreSprites(void);
|
|
extern void UpdateKyogreFieldEntities(void);
|
|
//extern ? sub_3A150();
|
|
extern void HideKyogreSplashSprite(void);
|
|
extern void AnimateKyogreBackground(void);
|
|
//extern ? InitFrameProcess3_BoardLogic_GroudonBoard();
|
|
//extern ? UpdateFrameProcess3_BoardLogic_GroudonBoard();
|
|
extern void UpdateGroudonEntityLogic(void);
|
|
extern void RenderGroudonSprites(void);
|
|
extern void UpdateGroudonFieldEntities(void);
|
|
extern void HideGroudonShockwaveSprite(void);
|
|
extern void AnimateGroudonBackground(void);
|
|
//extern ? InitFrameProcess3_BoardLogic_RayquazaBoard();
|
|
//extern ? UpdateFrameProcess3_BoardLogic_RayquazaBoard();
|
|
extern void UpdateRayquazaEntityLogic(void);
|
|
extern void RenderRayquazaSprites(void);
|
|
extern void UpdateRayquazaMinionsAndEffects(void);
|
|
extern void UpdateLightningGrabEntity(void);
|
|
extern void RenderWindCloudSprites(void);
|
|
extern void UpdateRayquazaIntroSequence(void);
|
|
//extern ? InitFrameProcess3_BoardLogic_SphealBoard();
|
|
//extern ? UpdateFrameProcess3_BoardLogic_SphealBoard();
|
|
extern void UpdateSealeoEntityLogic(void);
|
|
extern void UpdateSphealEntityLogic(void);
|
|
extern void UpdateSphealScoreAndDelivery(void);
|
|
extern void SphealBoard_WhiscashDeliversBall(void);
|
|
extern void SphealBoard_PelipperDeliversBall(void);
|
|
extern void UpdateSealeoKnockdownPhysics(void);
|
|
extern void AnimateSphealBackground(void);
|
|
extern void UpdateSphealResultsScreen(void);
|
|
extern void loadFieldBoardGraphics(void);
|
|
extern void SetBoardCollisionConfig(s16);
|
|
extern void UpdateScrollingBackgroundTiles(void);
|
|
//extern ? InitFrameProcess1_PauseLogic_AllBoards();
|
|
//extern ? UpdateFrameProcess1_PauseLogic_AllBoards();
|
|
extern void BonusStage_HandleModeChangeFlags();
|
|
extern void DebugMenu_RenderAndHandleInput(void);
|
|
extern void GameOverAnimation(void);
|
|
extern void EndOfBallSequence(void);
|
|
extern void BallSaverAnimation(void);
|
|
extern void ClearDebugTextDisplay(void);
|
|
extern void DebugMoveBallPosition(void);
|
|
extern void DebugToggleBallSpeed(void);
|
|
extern void EndOfBallBonusSummary(void);
|
|
extern void PauseGame(void);
|
|
extern void UnpauseGame(void);
|
|
extern void PositionPauseMenuSprites(void);
|
|
extern void AnimatePauseMenuOverlay(void);
|
|
extern void IdleGameFrameUpdate();
|
|
extern void IdleBonusFieldFrameUpdate();
|
|
extern void SaveGameStateSnapshot(s16);
|
|
//extern ? InitFrameProcess8_HudUpdate_AllBoards();
|
|
extern void UpdateFrameProcess8_HudUpdate_AllBoards(void);
|
|
extern void PinballGame_State0_49ED4(void);
|
|
extern void ProcessEventTimer(void);
|
|
extern void ResetEventState(void);
|
|
//extern ? InitFrameProcess2_CameraShakeDrain_AllBoards();
|
|
//extern ? UpdateFrameProcess2_CameraShakeDrain_MainBoards();
|
|
//extern ? UpdateFrameProcess2_CameraShakeDrain_BonusBoards();
|
|
extern void ProcessTiltInput(void);
|
|
extern void ProcessMainBoardBallDrainAndLaunch(void);
|
|
extern void ProcessBonusBoardBallDrain(void);
|
|
extern void ResetBoardStateOnDeath(void);
|
|
extern void UpdateRubyBoardAnimations(void);
|
|
extern void AnimateRubySlingshotHit(void);
|
|
extern void LoadShopItemGraphics(s16);
|
|
extern void DrawRubyProgressDigits(void);
|
|
extern void AnimateRubyTrapIndicator(void);
|
|
extern void AnimateRubyCatchLightBlink(void);
|
|
extern void AnimateRubyHoleIndicators(void);
|
|
extern void DrawRubyModeTimerDisplay(void);
|
|
extern void AnimateRubyCatchArrowPalette(void);
|
|
extern void AnimateRubyEvoArrowPalette(void);
|
|
extern void AnimateRubyShopRampArrow(void);
|
|
extern void AnimateRubyCatchProgressArrow(void);
|
|
extern void AnimateRubyBallPowerUpSequence(void);
|
|
extern void DrawRubyBallPowerUpLights(void);
|
|
extern void UpdateCoinRewardTimer(void);
|
|
extern void DrawRubyCoinRewardMeter(void);
|
|
extern void DrawRubyEvoArrowProgress(void);
|
|
extern void DrawRubyCatchArrowProgress(void);
|
|
extern void UpdateSapphireBoardAnimations(void);
|
|
extern void DrawSapphireProgressDigits(void);
|
|
extern void AnimateSapphireSlingshotHit(void);
|
|
extern void AnimateSapphireTrapIndicator(void);
|
|
extern void AnimateRotatingBackground(void);
|
|
extern void AnimateSapphireCatchLightBlink(void);
|
|
extern void AnimateSapphireHoleIndicators(void);
|
|
extern void DrawSapphireModeTimerDisplay(void);
|
|
extern void DrawSapphireCoinRewardMeter(void);
|
|
extern void AnimateSapphireHatchArrow(void);
|
|
extern void AnimateSapphireBumperArrowPalette(void);
|
|
extern void DrawSapphireEvoArrowProgress(void);
|
|
extern void DrawSapphireCatchArrowProgress(void);
|
|
extern void AnimateSapphireHatchArrowFlash(void);
|
|
extern void AnimateSapphireShopArrow(void);
|
|
extern void DrawSapphireBallPowerUpLights(void);
|
|
extern void AnimateHatchMachineSpinner(void);
|
|
extern void AnimatePelipperBumper(void);
|
|
extern void InitFrameProcess0_DefaultSpriteState_RubyBoard(void);
|
|
//extern ? UpdateFrameProcess0_DefaultSpriteState_RubyBoard();
|
|
extern void InitFrameProcess0_DefaultSpriteState_SapphireBoard(void);
|
|
//extern ? UpdateFrameProcess0_DefaultSpriteState_SapphireBoard();
|
|
extern void InitFrameProcess0_DefaultSpriteState_DusclopsBoard(void);
|
|
//extern ? UpdateFrameProcess0_DefaultSpriteState_DusclopsBoard();
|
|
extern void InitFrameProcess0_DefaultSpriteState_KecleonBoard(void);
|
|
//extern ? nullsub_20();
|
|
extern void InitFrameProcess0_DefaultSpriteState_KyogreBoard(void);
|
|
//extern ? UpdateFrameProcess0_DefaultSpriteState_KyogreBoard();
|
|
extern void InitFrameProcess0_DefaultSpriteState_GroudonBoard(void);
|
|
//extern ? UpdateFrameProcess0_DefaultSpriteState_GroudonBoard();
|
|
extern void InitFrameProcess0_DefaultSpriteState_RayquazaBoard(void);
|
|
//extern ? UpdateFrameProcess0_DefaultSpriteState_RayquazaBoard();
|
|
extern void InitFrameProcess0_DefaultSpriteState_SphealBoard(void);
|
|
//extern ? UpdateFrameProcess0_DefaultSpriteState_SphealBoard();
|
|
|
|
// asm/rom_528AC.s
|
|
|
|
//extern ? SpeciesRSToCryId();
|
|
void PlayCry_Normal(u16, s8);
|
|
extern void PlayCry_NormalNoDucking(u16, s8, s8, u8);
|
|
//extern ? PlayCryInternal();
|
|
extern void SaveFile_LoadGameData(void);
|
|
//extern ? LoadSaveDataFromSram();
|
|
extern void SaveFile_WriteToSram(void);
|
|
extern void SaveFile_SetPokedexFlags(s16, u8);
|
|
extern void SaveFile_ReadSavedGamePresent(void);
|
|
extern void ResetSaveFile(void);
|
|
|
|
// asm/rom_9BC.s
|
|
|
|
//extern void sub_13FC(void); // dead declaration — no definition or call sites
|
|
//extern ? Sio32EncodePacket();
|
|
//extern ? Sio32ValidateResponse();
|
|
//extern ? Sio32VerifyChecksum();
|
|
//extern ? Sio32BuildCommand();
|
|
//extern ? EncodeRumbleCommand();
|
|
extern void Sio32TimeoutIntr(void);
|
|
extern s16 LoadSpriteSetsWithCpuCopy(const struct SpriteSet *const *spriteSets, u16 numSpriteSets, struct SpriteGroup *spriteGroups);
|
|
//extern ? nullsub_16();
|
|
extern void ResetSerialIO(void);
|
|
extern void SetupDefaultInterrupts(void);
|
|
extern void ResetLinkState(void);
|
|
extern void ResetSerialAndInterrupts(void);
|
|
|
|
// asm/start.s
|
|
|
|
|
|
// asm/titlescreen.s
|
|
|
|
//extern ? RenderTitlePressStartSprites();
|
|
extern void RenderTitleMenuNoSavedGame(void);
|
|
extern void RenderTitleMenuSavedGame(void);
|
|
extern void DeleteSaveFile(void);
|
|
|
|
#endif // GUARD_FUNCTIONS_H
|