mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-26 03:34:15 +01:00
Document some generic argument names
This commit is contained in:
parent
ef4d99c87e
commit
5e6d8a77e4
@ -109,7 +109,7 @@ void *LoadPointerFromVars(s16 bottom, s16 top);
|
|||||||
void StorePointerInVars(s16 *bottom, s16 *top, const void *ptr);
|
void StorePointerInVars(s16 *bottom, s16 *top, const void *ptr);
|
||||||
void InitPrioritiesForVisibleBattlers(void);
|
void InitPrioritiesForVisibleBattlers(void);
|
||||||
void GetBattleAnimBg1Data(struct BattleAnimBgData*);
|
void GetBattleAnimBg1Data(struct BattleAnimBgData*);
|
||||||
void GetBattleAnimBgData(struct BattleAnimBgData*, u32 arg1);
|
void GetBattleAnimBgData(struct BattleAnimBgData*, u32 bgId);
|
||||||
u8 GetBattlerSpriteSubpriority(u8 battlerId);
|
u8 GetBattlerSpriteSubpriority(u8 battlerId);
|
||||||
bool8 TranslateAnimHorizontalArc(struct Sprite *sprite);
|
bool8 TranslateAnimHorizontalArc(struct Sprite *sprite);
|
||||||
void TranslateSpriteLinearByIdFixedPoint(struct Sprite *sprite);
|
void TranslateSpriteLinearByIdFixedPoint(struct Sprite *sprite);
|
||||||
@ -181,7 +181,7 @@ enum
|
|||||||
u8 GetBattlerSpriteCoord(u8 battlerId, u8 attributeId);
|
u8 GetBattlerSpriteCoord(u8 battlerId, u8 attributeId);
|
||||||
|
|
||||||
bool8 IsBattlerSpritePresent(u8 battlerId);
|
bool8 IsBattlerSpritePresent(u8 battlerId);
|
||||||
void ClearBattleAnimBg(u32 arg0);
|
void ClearBattleAnimBg(u32 bgId);
|
||||||
u8 GetAnimBattlerSpriteId(u8 wantedBattler);
|
u8 GetAnimBattlerSpriteId(u8 wantedBattler);
|
||||||
bool8 IsDoubleBattle(void);
|
bool8 IsDoubleBattle(void);
|
||||||
u8 GetBattleBgPaletteNum(void);
|
u8 GetBattleBgPaletteNum(void);
|
||||||
@ -213,7 +213,7 @@ u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 selectedPalettes,
|
|||||||
|
|
||||||
// battle_anim_utility_funcs.c
|
// battle_anim_utility_funcs.c
|
||||||
void InitStatsChangeAnimation(u8);
|
void InitStatsChangeAnimation(u8);
|
||||||
void StartMonScrollingBgMask(u8 taskId, int unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, u8 arg6, u8 arg7, const u32 *arg8, const u32 *arg9, const u32 *palette);
|
void StartMonScrollingBgMask(u8 taskId, int unused, u16 scrollSpeed, u8 battler, bool8 includePartner, u8 numFadeSteps, u8 fadeStepDelay, u8 duration, const u32 *gfx, const u32 *tilemap, const u32 *palette);
|
||||||
|
|
||||||
// battle_anim_effects_1.c
|
// battle_anim_effects_1.c
|
||||||
void SetSpriteNextToMonHead(u8 battler, struct Sprite* sprite);
|
void SetSpriteNextToMonHead(u8 battler, struct Sprite* sprite);
|
||||||
|
@ -222,7 +222,7 @@ void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringId);
|
|||||||
void BtlController_EmitChooseAction(u8 bufferId, u8 action, u16 itemId);
|
void BtlController_EmitChooseAction(u8 bufferId, u8 action, u16 itemId);
|
||||||
void BtlController_EmitYesNoBox(u8 bufferId);
|
void BtlController_EmitYesNoBox(u8 bufferId);
|
||||||
void BtlController_EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData);
|
void BtlController_EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData);
|
||||||
void BtlController_EmitChooseItem(u8 bufferId, u8* arg1);
|
void BtlController_EmitChooseItem(u8 bufferId, u8* battlePartyOrder);
|
||||||
void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 slotId, u8 abilityId, u8* data);
|
void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 slotId, u8 abilityId, u8* data);
|
||||||
void BtlController_EmitCmd23(u8 bufferId); // unused
|
void BtlController_EmitCmd23(u8 bufferId); // unused
|
||||||
void BtlController_EmitHealthBarUpdate(u8 bufferId, u16 hpValue);
|
void BtlController_EmitHealthBarUpdate(u8 bufferId, u16 hpValue);
|
||||||
@ -233,11 +233,11 @@ void BtlController_EmitStatusXor(u8 bufferId, u8 b); // unused
|
|||||||
void BtlController_EmitDataTransfer(u8 bufferId, u16 size, void *data);
|
void BtlController_EmitDataTransfer(u8 bufferId, u16 size, void *data);
|
||||||
void BtlController_EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data); // unused
|
void BtlController_EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data); // unused
|
||||||
void BtlController_EmitPlayBGM(u8 bufferId, u16 songId, void *data); // unused
|
void BtlController_EmitPlayBGM(u8 bufferId, u16 songId, void *data); // unused
|
||||||
void BtlController_EmitCmd32(u8 bufferId, u16 size, void *c); // unused
|
void BtlController_EmitCmd32(u8 bufferId, u16 size, void *data); // unused
|
||||||
void BtlController_EmitTwoReturnValues(u8 bufferId, u8 arg1, u16 arg2);
|
void BtlController_EmitTwoReturnValues(u8 bufferId, u8 ret8, u16 ret16);
|
||||||
void BtlController_EmitChosenMonReturnValue(u8 bufferId, u8 b, u8 *c);
|
void BtlController_EmitChosenMonReturnValue(u8 bufferId, u8 partyId, u8 *battlePartyOrder);
|
||||||
void BtlController_EmitOneReturnValue(u8 bufferId, u16 arg1);
|
void BtlController_EmitOneReturnValue(u8 bufferId, u16 ret);
|
||||||
void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 b);
|
void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 ret);
|
||||||
void BtlController_EmitClearUnkVar(u8 bufferId); // unused
|
void BtlController_EmitClearUnkVar(u8 bufferId); // unused
|
||||||
void BtlController_EmitSetUnkVar(u8 bufferId, u8 b); // unused
|
void BtlController_EmitSetUnkVar(u8 bufferId, u8 b); // unused
|
||||||
void BtlController_EmitClearUnkFlag(u8 bufferId); // unused
|
void BtlController_EmitClearUnkFlag(u8 bufferId); // unused
|
||||||
@ -254,7 +254,7 @@ void BtlController_EmitHidePartyStatusSummary(u8 bufferId);
|
|||||||
void BtlController_EmitEndBounceEffect(u8 bufferId);
|
void BtlController_EmitEndBounceEffect(u8 bufferId);
|
||||||
void BtlController_EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible);
|
void BtlController_EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible);
|
||||||
void BtlController_EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument);
|
void BtlController_EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument);
|
||||||
void BtlController_EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 record);
|
void BtlController_EmitLinkStandbyMsg(u8 bufferId, u8 mode, bool32 record);
|
||||||
void BtlController_EmitResetActionMoveSelection(u8 bufferId, u8 caseId);
|
void BtlController_EmitResetActionMoveSelection(u8 bufferId, u8 caseId);
|
||||||
void BtlController_EmitEndLinkBattle(u8 bufferId, u8 battleOutcome);
|
void BtlController_EmitEndLinkBattle(u8 bufferId, u8 battleOutcome);
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ void DecompressTrainerBackPic(u16 backPicId, u8 battlerId);
|
|||||||
void BattleGfxSfxDummy3(u8 gender);
|
void BattleGfxSfxDummy3(u8 gender);
|
||||||
void FreeTrainerFrontPicPalette(u16 frontPicId);
|
void FreeTrainerFrontPicPalette(u16 frontPicId);
|
||||||
bool8 BattleLoadAllHealthBoxesGfx(u8 state);
|
bool8 BattleLoadAllHealthBoxesGfx(u8 state);
|
||||||
void LoadBattleBarGfx(u8 arg0);
|
void LoadBattleBarGfx(u8 unused);
|
||||||
bool8 BattleInitAllSprites(u8 *state1, u8 *battlerId);
|
bool8 BattleInitAllSprites(u8 *state1, u8 *battlerId);
|
||||||
void ClearSpritesHealthboxAnimData(void);
|
void ClearSpritesHealthboxAnimData(void);
|
||||||
void CopyAllBattleSpritesInvisibilities(void);
|
void CopyAllBattleSpritesInvisibilities(void);
|
||||||
|
@ -74,7 +74,7 @@ void SwapHpBarsWithHpText(void);
|
|||||||
u8 CreatePartyStatusSummarySprites(u8 battler, struct HpAndStatus *partyInfo, u8 arg2, bool8 isBattleStart);
|
u8 CreatePartyStatusSummarySprites(u8 battler, struct HpAndStatus *partyInfo, u8 arg2, bool8 isBattleStart);
|
||||||
void Task_HidePartyStatusSummary(u8 taskId);
|
void Task_HidePartyStatusSummary(u8 taskId);
|
||||||
void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elementId);
|
void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elementId);
|
||||||
s32 MoveBattleBar(u8 battler, u8 healthboxSpriteId, u8 whichBar, u8 arg3);
|
s32 MoveBattleBar(u8 battler, u8 healthboxSpriteId, u8 whichBar, u8 unused);
|
||||||
u8 GetScaledHPFraction(s16 hp, s16 maxhp, u8 scale);
|
u8 GetScaledHPFraction(s16 hp, s16 maxhp, u8 scale);
|
||||||
u8 GetHPBarLevel(s16 hp, s16 maxhp);
|
u8 GetHPBarLevel(s16 hp, s16 maxhp);
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ void BattleSetup_StartLegendaryBattle(void);
|
|||||||
void StartGroudonKyogreBattle(void);
|
void StartGroudonKyogreBattle(void);
|
||||||
void StartRegiBattle(void);
|
void StartRegiBattle(void);
|
||||||
u8 BattleSetup_GetTerrainId(void);
|
u8 BattleSetup_GetTerrainId(void);
|
||||||
u8 GetSpecialBattleTransition(s32 arg0);
|
u8 GetSpecialBattleTransition(s32 id);
|
||||||
void ChooseStarter(void);
|
void ChooseStarter(void);
|
||||||
void ResetTrainerOpponentIds(void);
|
void ResetTrainerOpponentIds(void);
|
||||||
void SetMapVarsToTrainer(void);
|
void SetMapVarsToTrainer(void);
|
||||||
|
@ -66,7 +66,7 @@ void PressurePPLoseOnUsingPerishSong(u8 attacker);
|
|||||||
void PressurePPLoseOnUsingImprison(u8 attacker);
|
void PressurePPLoseOnUsingImprison(u8 attacker);
|
||||||
void MarkAllBattlersForControllerExec(void); // unused
|
void MarkAllBattlersForControllerExec(void); // unused
|
||||||
void MarkBattlerForControllerExec(u8 battlerId);
|
void MarkBattlerForControllerExec(u8 battlerId);
|
||||||
void MarkBattlerReceivedLinkData(u8 arg0);
|
void MarkBattlerReceivedLinkData(u8 battlerId);
|
||||||
void CancelMultiTurnMoves(u8 battlerId);
|
void CancelMultiTurnMoves(u8 battlerId);
|
||||||
bool8 WasUnableToUseMove(u8 battlerId);
|
bool8 WasUnableToUseMove(u8 battlerId);
|
||||||
void PrepareStringBattle(u16 stringId, u8 battlerId);
|
void PrepareStringBattle(u16 stringId, u8 battlerId);
|
||||||
|
@ -18,9 +18,9 @@ struct DigitObjUtilTemplate
|
|||||||
bool32 DigitObjUtil_Init(u32 count);
|
bool32 DigitObjUtil_Init(u32 count);
|
||||||
void DigitObjUtil_Free(void);
|
void DigitObjUtil_Free(void);
|
||||||
bool32 DigitObjUtil_CreatePrinter(u32 id, s32 num, const struct DigitObjUtilTemplate *template);
|
bool32 DigitObjUtil_CreatePrinter(u32 id, s32 num, const struct DigitObjUtilTemplate *template);
|
||||||
void DigitObjUtil_PrintNumOn(u32 id, s32 arg1);
|
void DigitObjUtil_PrintNumOn(u32 id, s32 num);
|
||||||
void DigitObjUtil_DeletePrinter(u32 id);
|
void DigitObjUtil_DeletePrinter(u32 id);
|
||||||
void DigitObjUtil_HideOrShow(u32 id, bool32 arg1);
|
void DigitObjUtil_HideOrShow(u32 id, bool32 hide);
|
||||||
u8 GetTilesPerImage(u32 shape, u32 size);
|
u8 GetTilesPerImage(u32 shape, u32 size);
|
||||||
|
|
||||||
#endif // GUARD_DIGIT_OBJ_UTIL_H
|
#endif // GUARD_DIGIT_OBJ_UTIL_H
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
void LoadEvoSparkleSpriteAndPal(void);
|
void LoadEvoSparkleSpriteAndPal(void);
|
||||||
|
|
||||||
u8 EvolutionSparkles_SpiralUpward(u16 arg0);
|
u8 EvolutionSparkles_SpiralUpward(u16 palNum);
|
||||||
u8 EvolutionSparkles_ArcDown(void);
|
u8 EvolutionSparkles_ArcDown(void);
|
||||||
u8 EvolutionSparkles_CircleInward(void);
|
u8 EvolutionSparkles_CircleInward(void);
|
||||||
u8 EvolutionSparkles_SprayAndFlash(u16 species);
|
u8 EvolutionSparkles_SprayAndFlash(u16 species);
|
||||||
|
@ -22,7 +22,7 @@ void PlaySecretBaseMusicNoteMatSound(s16 metatileId);
|
|||||||
void DoSecretBaseGlitterMatSparkle(void);
|
void DoSecretBaseGlitterMatSparkle(void);
|
||||||
bool8 FldEff_SandPillar(void);
|
bool8 FldEff_SandPillar(void);
|
||||||
void InteractWithShieldOrTVDecoration(void);
|
void InteractWithShieldOrTVDecoration(void);
|
||||||
bool8 IsLargeBreakableDecoration(u16 arg0, u8 arg1);
|
bool8 IsLargeBreakableDecoration(u16 metatileId, bool8 checkBase);
|
||||||
void FldEffPoison_Start(void);
|
void FldEffPoison_Start(void);
|
||||||
bool32 FldEffPoison_IsActive(void);
|
bool32 FldEffPoison_IsActive(void);
|
||||||
void DoWateringBerryTreeAnim(void);
|
void DoWateringBerryTreeAnim(void);
|
||||||
|
@ -98,9 +98,9 @@ struct CursorStruct
|
|||||||
extern struct ScrollArrowsTemplate gTempScrollArrowTemplate;
|
extern struct ScrollArrowsTemplate gTempScrollArrowTemplate;
|
||||||
extern struct ListMenuTemplate gMultiuseListMenuTemplate;
|
extern struct ListMenuTemplate gMultiuseListMenuTemplate;
|
||||||
|
|
||||||
s32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const struct ListMenuTemplate *listMenuTemplate, u8 arg2, u16 tileNum, u16 palNum);
|
s32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const struct ListMenuTemplate *listMenuTemplate, u8 drawMode, u16 tileNum, u16 palNum);
|
||||||
u8 ListMenuInit(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow);
|
u8 ListMenuInit(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow);
|
||||||
u8 ListMenuInitInRect(struct ListMenuTemplate *listMenuTemplate, struct ListMenuWindowRect *arg1, u16 scrollOffset, u16 selectedRow);
|
u8 ListMenuInitInRect(struct ListMenuTemplate *listMenuTemplate, struct ListMenuWindowRect *rect, u16 scrollOffset, u16 selectedRow);
|
||||||
s32 ListMenu_ProcessInput(u8 listTaskId);
|
s32 ListMenu_ProcessInput(u8 listTaskId);
|
||||||
void DestroyListMenuTask(u8 listTaskId, u16 *scrollOffset, u16 *selectedRow);
|
void DestroyListMenuTask(u8 listTaskId, u16 *scrollOffset, u16 *selectedRow);
|
||||||
void RedrawListMenu(u8 listTaskId);
|
void RedrawListMenu(u8 listTaskId);
|
||||||
@ -111,10 +111,10 @@ void ListMenuGetCurrentItemArrayId(u8 listTaskId, u16 *arrayId);
|
|||||||
void ListMenuGetScrollAndRow(u8 listTaskId, u16 *scrollOffset, u16 *selectedRow);
|
void ListMenuGetScrollAndRow(u8 listTaskId, u16 *scrollOffset, u16 *selectedRow);
|
||||||
u16 ListMenuGetYCoordForPrintingArrowCursor(u8 listTaskId);
|
u16 ListMenuGetYCoordForPrintingArrowCursor(u8 listTaskId);
|
||||||
void ListMenuOverrideSetColors(u8 cursorPal, u8 fillValue, u8 cursorShadowPal);
|
void ListMenuOverrideSetColors(u8 cursorPal, u8 fillValue, u8 cursorShadowPal);
|
||||||
void ListMenuDefaultCursorMoveFunc(s32 arg0, u8 arg1, struct ListMenu *list);
|
void ListMenuDefaultCursorMoveFunc(s32 itemIndex, u8 onInit, struct ListMenu *list);
|
||||||
s32 ListMenuGetUnkIndicatorsStructFields(u8 taskId, u8 field);
|
s32 ListMenuGetUnkIndicatorsStructFields(u8 taskId, u8 field);
|
||||||
void ListMenuSetUnkIndicatorsStructField(u8 taskId, u8 field, s32 value);
|
void ListMenuSetUnkIndicatorsStructField(u8 taskId, u8 field, s32 value);
|
||||||
u8 AddScrollIndicatorArrowPair(const struct ScrollArrowsTemplate *arrowInfo, u16 *arg1);
|
u8 AddScrollIndicatorArrowPair(const struct ScrollArrowsTemplate *arrowInfo, u16 *scrollOffset);
|
||||||
u8 AddScrollIndicatorArrowPairParameterized(u32 arrowType, s32 commonPos, s32 firstPos, s32 secondPos, s32 fullyDownThreshold, s32 tileTag, s32 palTag, u16 *currItemPtr);
|
u8 AddScrollIndicatorArrowPairParameterized(u32 arrowType, s32 commonPos, s32 firstPos, s32 secondPos, s32 fullyDownThreshold, s32 tileTag, s32 palTag, u16 *currItemPtr);
|
||||||
void RemoveScrollIndicatorArrowPair(u8 taskId);
|
void RemoveScrollIndicatorArrowPair(u8 taskId);
|
||||||
void Task_ScrollIndicatorArrowPairOnMainMenu(u8 taskId);
|
void Task_ScrollIndicatorArrowPairOnMainMenu(u8 taskId);
|
||||||
|
@ -56,7 +56,7 @@ void SetStandardWindowBorderStyle(u8 windowId, bool8 copyToVram);
|
|||||||
void DisplayYesNoMenuDefaultYes(void);
|
void DisplayYesNoMenuDefaultYes(void);
|
||||||
u32 GetPlayerTextSpeed(void);
|
u32 GetPlayerTextSpeed(void);
|
||||||
u8 GetPlayerTextSpeedDelay(void);
|
u8 GetPlayerTextSpeedDelay(void);
|
||||||
void Menu_LoadStdPalAt(u16 arg0);
|
void Menu_LoadStdPalAt(u16 offset);
|
||||||
void AddTextPrinterWithCallbackForMessage(bool8 a1, void (*callback)(struct TextPrinterTemplate *, u16));
|
void AddTextPrinterWithCallbackForMessage(bool8 a1, void (*callback)(struct TextPrinterTemplate *, u16));
|
||||||
void BgDmaFill(u32 bg, u8 a1, int a2, int a3);
|
void BgDmaFill(u32 bg, u8 a1, int a2, int a3);
|
||||||
void AddTextPrinterParameterized3(u8 windowId, u8 fontId, u8 left, u8 top, const u8 *color, s8 speed, const u8 *str);
|
void AddTextPrinterParameterized3(u8 windowId, u8 fontId, u8 left, u8 top, const u8 *color, s8 speed, const u8 *str);
|
||||||
|
@ -18,11 +18,11 @@ struct YesNoFuncTable
|
|||||||
void ResetVramOamAndBgCntRegs(void);
|
void ResetVramOamAndBgCntRegs(void);
|
||||||
void ResetAllBgsCoordinates(void);
|
void ResetAllBgsCoordinates(void);
|
||||||
void SetVBlankHBlankCallbacksToNull(void);
|
void SetVBlankHBlankCallbacksToNull(void);
|
||||||
void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 arg2, u8 arg3, u8 fontId, u8 textSpeed, const u8 *string, void *taskFunc);
|
void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 tileNum, u8 paletteNum, u8 fontId, u8 textSpeed, const u8 *string, void *taskFunc);
|
||||||
bool16 RunTextPrintersRetIsActive(u8 textPrinterId);
|
bool16 RunTextPrintersRetIsActive(u8 textPrinterId);
|
||||||
void DoYesNoFuncWithChoice(u8 taskId, const struct YesNoFuncTable *data);
|
void DoYesNoFuncWithChoice(u8 taskId, const struct YesNoFuncTable *data);
|
||||||
void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *template, u8 arg2, u8 arg3, u8 arg4, u16 tileStart, u8 palette, const struct YesNoFuncTable *yesNo);
|
void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *template, u8 unused1, u8 unused2, u8 unused3, u16 tileStart, u8 palette, const struct YesNoFuncTable *yesNo);
|
||||||
bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1);
|
bool8 AdjustQuantityAccordingToDPadInput(s16 *quantity, u16 max);
|
||||||
u8 GetLRKeysPressed(void);
|
u8 GetLRKeysPressed(void);
|
||||||
u8 GetLRKeysPressedAndHeld(void);
|
u8 GetLRKeysPressedAndHeld(void);
|
||||||
bool8 IsHoldingItemAllowed(u16 itemId);
|
bool8 IsHoldingItemAllowed(u16 itemId);
|
||||||
|
@ -95,7 +95,7 @@ void ConditionGraph_Draw(struct ConditionGraph *graph);
|
|||||||
bool8 ConditionGraph_TryUpdate(struct ConditionGraph *graph);
|
bool8 ConditionGraph_TryUpdate(struct ConditionGraph *graph);
|
||||||
void ConditionGraph_Update(struct ConditionGraph *graph);
|
void ConditionGraph_Update(struct ConditionGraph *graph);
|
||||||
void ConditionGraph_CalcPositions(u8 *conditions, struct UCoords16 *positions);
|
void ConditionGraph_CalcPositions(u8 *conditions, struct UCoords16 *positions);
|
||||||
void ConditionGraph_SetNewPositions(struct ConditionGraph *graph, struct UCoords16 *arg1, struct UCoords16 *arg2);
|
void ConditionGraph_SetNewPositions(struct ConditionGraph *graph, struct UCoords16 *old, struct UCoords16 *new);
|
||||||
|
|
||||||
// Condition menu
|
// Condition menu
|
||||||
bool8 ConditionMenu_UpdateMonEnter(struct ConditionGraph *graph, s16 *x);
|
bool8 ConditionMenu_UpdateMonEnter(struct ConditionGraph *graph, s16 *x);
|
||||||
|
@ -337,7 +337,7 @@ u8 GetBoxMonGender(struct BoxPokemon *boxMon);
|
|||||||
u8 GetGenderFromSpeciesAndPersonality(u16 species, u32 personality);
|
u8 GetGenderFromSpeciesAndPersonality(u16 species, u32 personality);
|
||||||
void SetMultiuseSpriteTemplateToPokemon(u16 speciesTag, u8 battlerPosition);
|
void SetMultiuseSpriteTemplateToPokemon(u16 speciesTag, u8 battlerPosition);
|
||||||
void SetMultiuseSpriteTemplateToTrainerBack(u16 trainerSpriteId, u8 battlerPosition);
|
void SetMultiuseSpriteTemplateToTrainerBack(u16 trainerSpriteId, u8 battlerPosition);
|
||||||
void SetMultiuseSpriteTemplateToTrainerFront(u16 arg0, u8 battlerPosition);
|
void SetMultiuseSpriteTemplateToTrainerFront(u16 trainerPicId, u8 battlerPosition);
|
||||||
|
|
||||||
// These are full type signatures for GetMonData() and GetBoxMonData(),
|
// These are full type signatures for GetMonData() and GetBoxMonData(),
|
||||||
// but they are not used since some code erroneously omits the third arg.
|
// but they are not used since some code erroneously omits the third arg.
|
||||||
@ -426,8 +426,8 @@ void SetWildMonHeldItem(void);
|
|||||||
bool8 IsMonShiny(struct Pokemon *mon);
|
bool8 IsMonShiny(struct Pokemon *mon);
|
||||||
bool8 IsShinyOtIdPersonality(u32 otId, u32 personality);
|
bool8 IsShinyOtIdPersonality(u32 otId, u32 personality);
|
||||||
const u8 *GetTrainerPartnerName(void);
|
const u8 *GetTrainerPartnerName(void);
|
||||||
void BattleAnimateFrontSprite(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3);
|
void BattleAnimateFrontSprite(struct Sprite* sprite, u16 species, bool8 noCry, u8 panMode);
|
||||||
void DoMonFrontSpriteAnimation(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3);
|
void DoMonFrontSpriteAnimation(struct Sprite* sprite, u16 species, bool8 noCry, u8 panModeAnimFlag);
|
||||||
void PokemonSummaryDoMonAnimation(struct Sprite* sprite, u16 species, bool8 oneFrame);
|
void PokemonSummaryDoMonAnimation(struct Sprite* sprite, u16 species, bool8 oneFrame);
|
||||||
void StopPokemonAnimationDelayTask(void);
|
void StopPokemonAnimationDelayTask(void);
|
||||||
void BattleAnimateBackSprite(struct Sprite* sprite, u16 species);
|
void BattleAnimateBackSprite(struct Sprite* sprite, u16 species);
|
||||||
|
@ -26,7 +26,7 @@ struct PokemonStorage
|
|||||||
|
|
||||||
extern struct PokemonStorage *gPokemonStoragePtr;
|
extern struct PokemonStorage *gPokemonStoragePtr;
|
||||||
|
|
||||||
void DrawTextWindowAndBufferTiles(const u8 *string, void *dst, u8 arg2, u8 arg3, s32 bytesToBuffer);
|
void DrawTextWindowAndBufferTiles(const u8 *string, void *dst, u8 zero1, u8 zero2, s32 bytesToBuffer);
|
||||||
u8 CountMonsInBox(u8 boxId);
|
u8 CountMonsInBox(u8 boxId);
|
||||||
s16 GetFirstFreeBoxSpot(u8 boxId);
|
s16 GetFirstFreeBoxSpot(u8 boxId);
|
||||||
u8 CountPartyAliveNonEggMonsExcept(u8 slotToIgnore);
|
u8 CountPartyAliveNonEggMonsExcept(u8 slotToIgnore);
|
||||||
@ -52,7 +52,7 @@ void ZeroBoxMonAt(u8 boxId, u8 boxPosition);
|
|||||||
void BoxMonAtToMon(u8 boxId, u8 boxPosition, struct Pokemon *dst);
|
void BoxMonAtToMon(u8 boxId, u8 boxPosition, struct Pokemon *dst);
|
||||||
struct BoxPokemon *GetBoxedMonPtr(u8 boxId, u8 boxPosition);
|
struct BoxPokemon *GetBoxedMonPtr(u8 boxId, u8 boxPosition);
|
||||||
u8 *GetBoxNamePtr(u8 boxId);
|
u8 *GetBoxNamePtr(u8 boxId);
|
||||||
s16 AdvanceStorageMonIndex(struct BoxPokemon *boxMons, u8 currIndex, u8 maxIndex, u8 arg3);
|
s16 AdvanceStorageMonIndex(struct BoxPokemon *boxMons, u8 currIndex, u8 maxIndex, u8 mode);
|
||||||
bool8 CheckFreePokemonStorageSpace(void);
|
bool8 CheckFreePokemonStorageSpace(void);
|
||||||
bool32 CheckBoxMonSanityAt(u32 boxId, u32 boxPosition);
|
bool32 CheckBoxMonSanityAt(u32 boxId, u32 boxPosition);
|
||||||
u32 CountStorageNonEggMons(void);
|
u32 CountStorageNonEggMons(void);
|
||||||
|
@ -356,10 +356,10 @@ void MatchCall_GetNameAndDesc(u32 idx, const u8 **desc, const u8 **name);
|
|||||||
// pokenav_main_menu.c
|
// pokenav_main_menu.c
|
||||||
bool32 InitPokenavMainMenu(void);
|
bool32 InitPokenavMainMenu(void);
|
||||||
void CopyPaletteIntoBufferUnfaded(const u16 *palette, u32 bufferOffset, u32 size);
|
void CopyPaletteIntoBufferUnfaded(const u16 *palette, u32 bufferOffset, u32 size);
|
||||||
void RunMainMenuLoopedTask(u32 a0);
|
void RunMainMenuLoopedTask(u32 state);
|
||||||
u32 IsActiveMenuLoopTaskActive(void);
|
u32 IsActiveMenuLoopTaskActive(void);
|
||||||
void LoadLeftHeaderGfxForIndex(u32 arg0);
|
void LoadLeftHeaderGfxForIndex(u32 menuGfxId);
|
||||||
void ShowLeftHeaderGfx(u32 menugfxId, bool32 arg1, bool32 isOnRightSide);
|
void ShowLeftHeaderGfx(u32 menugfxId, bool32 isMain, bool32 isOnRightSide);
|
||||||
void PokenavFadeScreen(s32 fadeType);
|
void PokenavFadeScreen(s32 fadeType);
|
||||||
bool32 AreLeftHeaderSpritesMoving(void);
|
bool32 AreLeftHeaderSpritesMoving(void);
|
||||||
void InitBgTemplates(const struct BgTemplate *templates, int count);
|
void InitBgTemplates(const struct BgTemplate *templates, int count);
|
||||||
@ -373,7 +373,7 @@ void PokenavCopyPalette(const u16 *a0, const u16 *a1, int a2, int a3, int a4, u1
|
|||||||
void FadeToBlackExceptPrimary(void);
|
void FadeToBlackExceptPrimary(void);
|
||||||
struct Sprite *GetSpinningPokenavSprite(void);
|
struct Sprite *GetSpinningPokenavSprite(void);
|
||||||
void HideSpinningPokenavSprite(void);
|
void HideSpinningPokenavSprite(void);
|
||||||
void UpdateRegionMapRightHeaderTiles(u32 arg0);
|
void UpdateRegionMapRightHeaderTiles(u32 menuGfxId);
|
||||||
void HideMainOrSubMenuLeftHeader(u32 id, bool32 onRightSide);
|
void HideMainOrSubMenuLeftHeader(u32 id, bool32 onRightSide);
|
||||||
void SlideMenuHeaderUp(void);
|
void SlideMenuHeaderUp(void);
|
||||||
void PokenavFillPalette(u32 palIndex, u16 fillValue);
|
void PokenavFillPalette(u32 palIndex, u16 fillValue);
|
||||||
@ -417,8 +417,8 @@ int GetMatchCallTrainerPic(int index);
|
|||||||
const u8 *GetMatchCallFlavorText(int index, int textType);
|
const u8 *GetMatchCallFlavorText(int index, int textType);
|
||||||
const u8 *GetMatchCallMessageText(int index, bool8 *newRematchRequest);
|
const u8 *GetMatchCallMessageText(int index, bool8 *newRematchRequest);
|
||||||
u16 GetMatchCallOptionCursorPos(void);
|
u16 GetMatchCallOptionCursorPos(void);
|
||||||
u16 GetMatchCallOptionId(int arg0);
|
u16 GetMatchCallOptionId(int optionId);
|
||||||
void BufferMatchCallNameAndDesc(struct PokenavMatchCallEntry * arg0, u8 *str);
|
void BufferMatchCallNameAndDesc(struct PokenavMatchCallEntry *matchCallEntry, u8 *str);
|
||||||
u8 GetMatchTableMapSectionId(int rematchIndex);
|
u8 GetMatchTableMapSectionId(int rematchIndex);
|
||||||
int GetIndexDeltaOfNextCheckPageDown(int index);
|
int GetIndexDeltaOfNextCheckPageDown(int index);
|
||||||
int GetIndexDeltaOfNextCheckPageUp(int index);
|
int GetIndexDeltaOfNextCheckPageUp(int index);
|
||||||
|
@ -69,7 +69,7 @@ u32 CountPlayerTrainerStars(void);
|
|||||||
u8 GetTrainerCardStars(u8 cardId);
|
u8 GetTrainerCardStars(u8 cardId);
|
||||||
void CopyTrainerCardData(struct TrainerCard *dst, struct TrainerCard *src, u8 gameVersion);
|
void CopyTrainerCardData(struct TrainerCard *dst, struct TrainerCard *src, u8 gameVersion);
|
||||||
void ShowPlayerTrainerCard(void (*callback)(void));
|
void ShowPlayerTrainerCard(void (*callback)(void));
|
||||||
void ShowTrainerCardInLink(u8 arg0, void (*callback)(void));
|
void ShowTrainerCardInLink(u8 cardId, void (*callback)(void));
|
||||||
void TrainerCard_GenerateCardForLinkPlayer(struct TrainerCard *);
|
void TrainerCard_GenerateCardForLinkPlayer(struct TrainerCard *);
|
||||||
|
|
||||||
#endif // GUARD_TRAINER_CARD_H
|
#endif // GUARD_TRAINER_CARD_H
|
||||||
|
@ -7,9 +7,9 @@
|
|||||||
#include "data/bard_music/default_sound.h"
|
#include "data/bard_music/default_sound.h"
|
||||||
#include "data/bard_music/length_table.h"
|
#include "data/bard_music/length_table.h"
|
||||||
|
|
||||||
static s16 CalcWordPitch(int arg0, int songPos)
|
static s16 CalcWordPitch(int pitchIdx, int songPos)
|
||||||
{
|
{
|
||||||
return sBardSoundPitchTables[arg0][songPos];
|
return sBardSoundPitchTables[pitchIdx][songPos];
|
||||||
}
|
}
|
||||||
|
|
||||||
const struct BardSound *GetWordSounds(u16 word)
|
const struct BardSound *GetWordSounds(u16 word)
|
||||||
|
@ -3717,6 +3717,26 @@ void AnimTask_SlideMonForFocusBand(u8 taskId)
|
|||||||
gTasks[taskId].func = AnimTask_SlideMonForFocusBand_Step1;
|
gTasks[taskId].func = AnimTask_SlideMonForFocusBand_Step1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define IDX_ACTIVE_SPRITES 2 // Used by the sprite callback to modify the number of active sprites
|
||||||
|
|
||||||
|
// Task data for AnimTask_SquishAndSweatDroplets
|
||||||
|
#define tState data[0]
|
||||||
|
#define tTimer data[1]
|
||||||
|
#define tActiveSprites data[IDX_ACTIVE_SPRITES]
|
||||||
|
#define tNumSquishes data[3]
|
||||||
|
#define tBaseX data[4]
|
||||||
|
#define tBaseY data[5]
|
||||||
|
#define tSubpriority data[6]
|
||||||
|
// data[7]-data[15] used by PrepareAffineAnimInTaskData
|
||||||
|
#define tBattlerSpriteId data[15]
|
||||||
|
|
||||||
|
// Sprite data for AnimFacadeSweatDrop
|
||||||
|
#define sTimer data[0]
|
||||||
|
#define sVelocX data[1]
|
||||||
|
#define sVelocY data[2]
|
||||||
|
#define sTaskId data[3]
|
||||||
|
#define sActiveSpritesIdx data[4]
|
||||||
|
|
||||||
// Squishes the mon vertically and emits sweat droplets a few times.
|
// Squishes the mon vertically and emits sweat droplets a few times.
|
||||||
// arg 0: battler
|
// arg 0: battler
|
||||||
// arg 1: num squishes
|
// arg 1: num squishes
|
||||||
@ -3728,20 +3748,20 @@ void AnimTask_SquishAndSweatDroplets(u8 taskId)
|
|||||||
if (!gBattleAnimArgs[1])
|
if (!gBattleAnimArgs[1])
|
||||||
DestroyAnimVisualTask(taskId);
|
DestroyAnimVisualTask(taskId);
|
||||||
|
|
||||||
task->data[0] = 0;
|
task->tState = 0;
|
||||||
task->data[1] = 0;
|
task->tTimer = 0;
|
||||||
task->data[2] = 0;
|
task->tActiveSprites = 0;
|
||||||
task->data[3] = gBattleAnimArgs[1];
|
task->tNumSquishes = gBattleAnimArgs[1];
|
||||||
if (gBattleAnimArgs[0] == ANIM_ATTACKER)
|
if (gBattleAnimArgs[0] == ANIM_ATTACKER)
|
||||||
battler = gBattleAnimAttacker;
|
battler = gBattleAnimAttacker;
|
||||||
else
|
else
|
||||||
battler = gBattleAnimTarget;
|
battler = gBattleAnimTarget;
|
||||||
|
|
||||||
task->data[4] = GetBattlerSpriteCoord(battler, BATTLER_COORD_X);
|
task->tBaseX = GetBattlerSpriteCoord(battler, BATTLER_COORD_X);
|
||||||
task->data[5] = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y);
|
task->tBaseY = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y);
|
||||||
task->data[6] = GetBattlerSpriteSubpriority(battler);
|
task->tSubpriority = GetBattlerSpriteSubpriority(battler);
|
||||||
task->data[15] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
|
task->tBattlerSpriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
|
||||||
PrepareAffineAnimInTaskData(task, task->data[15], gFacadeSquishAffineAnimCmds);
|
PrepareAffineAnimInTaskData(task, task->tBattlerSpriteId, gFacadeSquishAffineAnimCmds);
|
||||||
task->func = AnimTask_SquishAndSweatDroplets_Step;
|
task->func = AnimTask_SquishAndSweatDroplets_Step;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3749,37 +3769,40 @@ static void AnimTask_SquishAndSweatDroplets_Step(u8 taskId)
|
|||||||
{
|
{
|
||||||
struct Task *task = &gTasks[taskId];
|
struct Task *task = &gTasks[taskId];
|
||||||
|
|
||||||
switch (task->data[0])
|
switch (task->tState)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
task->data[1]++;
|
task->tTimer++;
|
||||||
if (task->data[1] == 6)
|
if (task->tTimer == 6)
|
||||||
CreateSweatDroplets(taskId, TRUE);
|
CreateSweatDroplets(taskId, TRUE);
|
||||||
|
|
||||||
if (task->data[1] == 18)
|
if (task->tTimer == 18)
|
||||||
CreateSweatDroplets(taskId, FALSE);
|
CreateSweatDroplets(taskId, FALSE);
|
||||||
|
|
||||||
if (!RunAffineAnimFromTaskData(task))
|
if (!RunAffineAnimFromTaskData(task))
|
||||||
{
|
{
|
||||||
if (--task->data[3] == 0)
|
if (--task->tNumSquishes == 0)
|
||||||
{
|
{
|
||||||
task->data[0]++;
|
// Animation is finished
|
||||||
|
task->tState++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
task->data[1] = 0;
|
// Animation continues, more droplet sprites to create
|
||||||
PrepareAffineAnimInTaskData(task, task->data[15], gFacadeSquishAffineAnimCmds);
|
task->tTimer = 0;
|
||||||
|
PrepareAffineAnimInTaskData(task, task->tBattlerSpriteId, gFacadeSquishAffineAnimCmds);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
if (task->data[2] == 0)
|
// Wait for sprites to be destroyed before ending task
|
||||||
|
if (task->tActiveSprites == 0)
|
||||||
DestroyAnimVisualTask(taskId);
|
DestroyAnimVisualTask(taskId);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void CreateSweatDroplets(u8 taskId, bool8 arg1)
|
static void CreateSweatDroplets(u8 taskId, bool8 lowerDroplets)
|
||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
s8 xOffset, yOffset;
|
s8 xOffset, yOffset;
|
||||||
@ -3788,7 +3811,7 @@ static void CreateSweatDroplets(u8 taskId, bool8 arg1)
|
|||||||
s16 yCoords[2];
|
s16 yCoords[2];
|
||||||
|
|
||||||
task = &gTasks[taskId];
|
task = &gTasks[taskId];
|
||||||
if (!arg1)
|
if (!lowerDroplets)
|
||||||
{
|
{
|
||||||
xOffset = 18;
|
xOffset = 18;
|
||||||
yOffset = -20;
|
yOffset = -20;
|
||||||
@ -3799,39 +3822,54 @@ static void CreateSweatDroplets(u8 taskId, bool8 arg1)
|
|||||||
yOffset = 20;
|
yOffset = 20;
|
||||||
}
|
}
|
||||||
|
|
||||||
xCoords[0] = task->data[4] - xOffset;
|
xCoords[0] = task->tBaseX - xOffset;
|
||||||
xCoords[1] = task->data[4] - xOffset - 4;
|
xCoords[1] = task->tBaseX - xOffset - 4;
|
||||||
xCoords[2] = task->data[4] + xOffset;
|
xCoords[2] = task->tBaseX + xOffset;
|
||||||
xCoords[3] = task->data[4] + xOffset + 4;
|
xCoords[3] = task->tBaseX + xOffset + 4;
|
||||||
yCoords[0] = task->data[5] + yOffset;
|
yCoords[0] = task->tBaseY + yOffset;
|
||||||
yCoords[1] = task->data[5] + yOffset + 6;
|
yCoords[1] = task->tBaseY + yOffset + 6;
|
||||||
|
|
||||||
for (i = 0; i < 4; i++)
|
for (i = 0; i < 4; i++)
|
||||||
{
|
{
|
||||||
u8 spriteId = CreateSprite(&gFacadeSweatDropSpriteTemplate, xCoords[i], yCoords[i & 1], task->data[6] - 5);
|
u8 spriteId = CreateSprite(&gFacadeSweatDropSpriteTemplate, xCoords[i], yCoords[i & 1], task->tSubpriority - 5);
|
||||||
if (spriteId != MAX_SPRITES)
|
if (spriteId != MAX_SPRITES)
|
||||||
{
|
{
|
||||||
gSprites[spriteId].data[0] = 0;
|
gSprites[spriteId].sTimer = 0;
|
||||||
gSprites[spriteId].data[1] = i < 2 ? -2 : 2;
|
gSprites[spriteId].sVelocX = i < 2 ? -2 : 2; // First two travel left, remaining travel right
|
||||||
gSprites[spriteId].data[2] = -1;
|
gSprites[spriteId].sVelocY = -1;
|
||||||
gSprites[spriteId].data[3] = taskId;
|
gSprites[spriteId].sTaskId = taskId;
|
||||||
gSprites[spriteId].data[4] = 2;
|
gSprites[spriteId].sActiveSpritesIdx = IDX_ACTIVE_SPRITES;
|
||||||
task->data[2]++;
|
task->tActiveSprites++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void AnimFacadeSweatDrop(struct Sprite *sprite)
|
static void AnimFacadeSweatDrop(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
sprite->x += sprite->data[1];
|
sprite->x += sprite->sVelocX;
|
||||||
sprite->y += sprite->data[2];
|
sprite->y += sprite->sVelocY;
|
||||||
if (++sprite->data[0] > 6)
|
if (++sprite->sTimer > 6)
|
||||||
{
|
{
|
||||||
gTasks[sprite->data[3]].data[sprite->data[4]]--;
|
gTasks[sprite->sTaskId].data[sprite->sActiveSpritesIdx]--;
|
||||||
DestroySprite(sprite);
|
DestroySprite(sprite);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#undef IDX_ACTIVE_SPRITES
|
||||||
|
#undef tState
|
||||||
|
#undef tTimer
|
||||||
|
#undef tActiveSprites
|
||||||
|
#undef tNumSquishes
|
||||||
|
#undef tBaseX
|
||||||
|
#undef tBaseY
|
||||||
|
#undef tSubpriority
|
||||||
|
#undef tBattlerSpriteId
|
||||||
|
#undef sTimer
|
||||||
|
#undef sVelocX
|
||||||
|
#undef sVelocY
|
||||||
|
#undef sTaskId
|
||||||
|
#undef sActiveSpritesIdx
|
||||||
|
|
||||||
// Blends the mon sprite's color with a rotating set of colors.
|
// Blends the mon sprite's color with a rotating set of colors.
|
||||||
// arg 0: battler
|
// arg 0: battler
|
||||||
// arg 1: duration
|
// arg 1: duration
|
||||||
@ -3927,6 +3965,26 @@ static void AnimRoarNoiseLine_Step(struct Sprite *sprite)
|
|||||||
DestroyAnimSprite(sprite);
|
DestroyAnimSprite(sprite);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define IDX_ACTIVE_SPRITES 10 // Used by the sprite callback to modify the number of active sprites
|
||||||
|
|
||||||
|
// Task data for AnimTask_GlareEyeDots
|
||||||
|
#define tState data[0]
|
||||||
|
#define tTimer data[1]
|
||||||
|
#define tPairNum data[2]
|
||||||
|
#define tPairMax data[5]
|
||||||
|
#define tDotOffset data[6]
|
||||||
|
#define tIsContest data[7]
|
||||||
|
#define tActiveSprites data[IDX_ACTIVE_SPRITES]
|
||||||
|
#define tStartX data[11]
|
||||||
|
#define tStartY data[12]
|
||||||
|
#define tEndX data[13]
|
||||||
|
#define tEndY data[14]
|
||||||
|
|
||||||
|
// Sprite data for AnimGlareEyeDot
|
||||||
|
#define sTimer data[0]
|
||||||
|
#define sTaskId data[1]
|
||||||
|
#define sActiveSpritesIdx data[2]
|
||||||
|
|
||||||
// Makes a series of dots in a trail from the attacker to the target.
|
// Makes a series of dots in a trail from the attacker to the target.
|
||||||
// arg 0: unused
|
// arg 0: unused
|
||||||
void AnimTask_GlareEyeDots(u8 taskId)
|
void AnimTask_GlareEyeDots(u8 taskId)
|
||||||
@ -3935,25 +3993,25 @@ void AnimTask_GlareEyeDots(u8 taskId)
|
|||||||
|
|
||||||
if (IsContest())
|
if (IsContest())
|
||||||
{
|
{
|
||||||
task->data[5] = 8;
|
task->tPairMax = 8;
|
||||||
task->data[6] = 3;
|
task->tDotOffset = 3;
|
||||||
task->data[7] = 1;
|
task->tIsContest = TRUE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
task->data[5] = 12;
|
task->tPairMax = 12;
|
||||||
task->data[6] = 3;
|
task->tDotOffset = 3;
|
||||||
task->data[7] = 0;
|
task->tIsContest = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
|
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
|
||||||
task->data[11] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_HEIGHT) / 4;
|
task->tStartX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_HEIGHT) / 4;
|
||||||
else
|
else
|
||||||
task->data[11] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) - GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_HEIGHT) / 4;
|
task->tStartX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) - GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_HEIGHT) / 4;
|
||||||
|
|
||||||
task->data[12] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) - GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_HEIGHT) / 4;
|
task->tStartY = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) - GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_HEIGHT) / 4;
|
||||||
task->data[13] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
|
task->tEndX = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
|
||||||
task->data[14] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
|
task->tEndY = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
|
||||||
task->func = AnimTask_GlareEyeDots_Step;
|
task->func = AnimTask_GlareEyeDots_Step;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3963,103 +4021,122 @@ static void AnimTask_GlareEyeDots_Step(u8 taskId)
|
|||||||
s16 x, y;
|
s16 x, y;
|
||||||
struct Task *task = &gTasks[taskId];
|
struct Task *task = &gTasks[taskId];
|
||||||
|
|
||||||
switch (task->data[0])
|
switch (task->tState)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
if (++task->data[1] > 3)
|
// Wait to create next pair of dots
|
||||||
|
if (++task->tTimer > 3)
|
||||||
{
|
{
|
||||||
task->data[1] = 0;
|
task->tTimer = 0;
|
||||||
GetGlareEyeDotCoords(
|
GetGlareEyeDotCoords(
|
||||||
task->data[11],
|
task->tStartX,
|
||||||
task->data[12],
|
task->tStartY,
|
||||||
task->data[13],
|
task->tEndX,
|
||||||
task->data[14],
|
task->tEndY,
|
||||||
task->data[5],
|
task->tPairMax,
|
||||||
task->data[2],
|
task->tPairNum,
|
||||||
&x,
|
&x,
|
||||||
&y);
|
&y);
|
||||||
|
|
||||||
|
// Create dot pair
|
||||||
for (i = 0; i < 2; i++)
|
for (i = 0; i < 2; i++)
|
||||||
{
|
{
|
||||||
u8 spriteId = CreateSprite(&gGlareEyeDotSpriteTemplate, x, y, 35);
|
u8 spriteId = CreateSprite(&gGlareEyeDotSpriteTemplate, x, y, 35);
|
||||||
if (spriteId != MAX_SPRITES)
|
if (spriteId != MAX_SPRITES)
|
||||||
{
|
{
|
||||||
if (task->data[7] == 0)
|
if (!task->tIsContest)
|
||||||
{
|
{
|
||||||
if (i == 0)
|
if (i == 0)
|
||||||
gSprites[spriteId].x2 = gSprites[spriteId].y2 = -task->data[6];
|
gSprites[spriteId].x2 = gSprites[spriteId].y2 = -task->tDotOffset;
|
||||||
else
|
else
|
||||||
gSprites[spriteId].x2 = gSprites[spriteId].y2 = task->data[6];
|
gSprites[spriteId].x2 = gSprites[spriteId].y2 = task->tDotOffset;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (i == 0)
|
if (i == 0)
|
||||||
{
|
{
|
||||||
gSprites[spriteId].x2 = -task->data[6];
|
gSprites[spriteId].x2 = -task->tDotOffset;
|
||||||
gSprites[spriteId].y2 = task->data[6];
|
gSprites[spriteId].y2 = task->tDotOffset;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gSprites[spriteId].x2 = task->data[6];
|
gSprites[spriteId].x2 = task->tDotOffset;
|
||||||
gSprites[spriteId].y2 = -task->data[6];
|
gSprites[spriteId].y2 = -task->tDotOffset;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gSprites[spriteId].data[0] = 0;
|
gSprites[spriteId].sTimer = 0;
|
||||||
gSprites[spriteId].data[1] = taskId;
|
gSprites[spriteId].sTaskId = taskId;
|
||||||
gSprites[spriteId].data[2] = 10;
|
gSprites[spriteId].sActiveSpritesIdx = IDX_ACTIVE_SPRITES;
|
||||||
task->data[10]++;
|
task->tActiveSprites++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (task->data[2] == task->data[5])
|
if (task->tPairNum == task->tPairMax)
|
||||||
task->data[0]++;
|
task->tState++;
|
||||||
|
|
||||||
task->data[2]++;
|
task->tPairNum++;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
if (task->data[10] == 0)
|
// Wait for sprites to be destroyed before ending task
|
||||||
|
if (task->tActiveSprites == 0)
|
||||||
DestroyAnimVisualTask(taskId);
|
DestroyAnimVisualTask(taskId);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void GetGlareEyeDotCoords(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u8 arg4, u8 arg5, s16 *x, s16 *y)
|
static void GetGlareEyeDotCoords(s16 startX, s16 startY, s16 endX, s16 endY, u8 pairMax, u8 pairNum, s16 *x, s16 *y)
|
||||||
{
|
{
|
||||||
int x2;
|
int x2;
|
||||||
int y2;
|
int y2;
|
||||||
|
|
||||||
if (arg5 == 0)
|
if (pairNum == 0)
|
||||||
{
|
{
|
||||||
*x = arg0;
|
*x = startX;
|
||||||
*y = arg1;
|
*y = startY;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (arg5 >= arg4)
|
if (pairNum >= pairMax)
|
||||||
{
|
{
|
||||||
*x = arg2;
|
*x = endX;
|
||||||
*y = arg3;
|
*y = endY;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
arg4--;
|
pairMax--;
|
||||||
x2 = (arg0 << 8) + arg5 * (((arg2 - arg0) << 8) / arg4);
|
x2 = (startX << 8) + pairNum * (((endX - startX) << 8) / pairMax);
|
||||||
y2 = (arg1 << 8) + arg5 * (((arg3 - arg1) << 8) / arg4);
|
y2 = (startY << 8) + pairNum * (((endY - startY) << 8) / pairMax);
|
||||||
*x = x2 >> 8;
|
*x = x2 >> 8;
|
||||||
*y = y2 >> 8;
|
*y = y2 >> 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void AnimGlareEyeDot(struct Sprite *sprite)
|
static void AnimGlareEyeDot(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
if (++sprite->data[0] > 36)
|
if (++sprite->sTimer > 36)
|
||||||
{
|
{
|
||||||
gTasks[sprite->data[1]].data[sprite->data[2]]--;
|
gTasks[sprite->sTaskId].data[sprite->sActiveSpritesIdx]--;
|
||||||
DestroySprite(sprite);
|
DestroySprite(sprite);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#undef IDX_ACTIVE_SPRITES
|
||||||
|
#undef tState
|
||||||
|
#undef tTimer
|
||||||
|
#undef tPairNum
|
||||||
|
#undef tPairMax
|
||||||
|
#undef tDotOffset
|
||||||
|
#undef tIsContest
|
||||||
|
#undef tActiveSprites
|
||||||
|
#undef tStartX
|
||||||
|
#undef tStartY
|
||||||
|
#undef tEndX
|
||||||
|
#undef tEndY
|
||||||
|
#undef sTimer
|
||||||
|
#undef sTaskId
|
||||||
|
#undef sActiveSpritesIdx
|
||||||
|
|
||||||
// Moves a pawprint in a straight line.
|
// Moves a pawprint in a straight line.
|
||||||
// arg 0: initial x position
|
// arg 0: initial x position
|
||||||
// arg 1: initial y position
|
// arg 1: initial y position
|
||||||
|
@ -96,8 +96,8 @@ static void PlayerCmdEnd(void);
|
|||||||
static void PlayerBufferRunCommand(void);
|
static void PlayerBufferRunCommand(void);
|
||||||
static void HandleInputChooseTarget(void);
|
static void HandleInputChooseTarget(void);
|
||||||
static void HandleInputChooseMove(void);
|
static void HandleInputChooseMove(void);
|
||||||
static void MoveSelectionCreateCursorAt(u8 cursorPos, u8 arg1);
|
static void MoveSelectionCreateCursorAt(u8, u8);
|
||||||
static void MoveSelectionDestroyCursorAt(u8 cursorPos);
|
static void MoveSelectionDestroyCursorAt(u8);
|
||||||
static void MoveSelectionDisplayPpNumber(void);
|
static void MoveSelectionDisplayPpNumber(void);
|
||||||
static void MoveSelectionDisplayPpString(void);
|
static void MoveSelectionDisplayPpString(void);
|
||||||
static void MoveSelectionDisplayMoveType(void);
|
static void MoveSelectionDisplayMoveType(void);
|
||||||
@ -106,18 +106,18 @@ static void HandleMoveSwitching(void);
|
|||||||
static void SwitchIn_HandleSoundAndEnd(void);
|
static void SwitchIn_HandleSoundAndEnd(void);
|
||||||
static void WaitForMonSelection(void);
|
static void WaitForMonSelection(void);
|
||||||
static void CompleteWhenChoseItem(void);
|
static void CompleteWhenChoseItem(void);
|
||||||
static void Task_LaunchLvlUpAnim(u8 taskId);
|
static void Task_LaunchLvlUpAnim(u8);
|
||||||
static void Task_PrepareToGiveExpWithExpBar(u8 taskId);
|
static void Task_PrepareToGiveExpWithExpBar(u8);
|
||||||
static void DestroyExpTaskAndCompleteOnInactiveTextPrinter(u8 taskId);
|
static void DestroyExpTaskAndCompleteOnInactiveTextPrinter(u8);
|
||||||
static void Task_GiveExpWithExpBar(u8 taskId);
|
static void Task_GiveExpWithExpBar(u8);
|
||||||
static void Task_UpdateLvlInHealthbox(u8 taskId);
|
static void Task_UpdateLvlInHealthbox(u8);
|
||||||
static void PrintLinkStandbyMsg(void);
|
static void PrintLinkStandbyMsg(void);
|
||||||
static u32 CopyPlayerMonData(u8 monId, u8 *dst);
|
static u32 CopyPlayerMonData(u8, u8 *);
|
||||||
static void SetPlayerMonData(u8 monId);
|
static void SetPlayerMonData(u8);
|
||||||
static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit);
|
static void StartSendOutAnim(u8, bool8);
|
||||||
static void DoSwitchOutAnimation(void);
|
static void DoSwitchOutAnimation(void);
|
||||||
static void PlayerDoMoveAnimation(void);
|
static void PlayerDoMoveAnimation(void);
|
||||||
static void Task_StartSendOutAnim(u8 taskId);
|
static void Task_StartSendOutAnim(u8);
|
||||||
static void EndDrawPartyStatusSummary(void);
|
static void EndDrawPartyStatusSummary(void);
|
||||||
|
|
||||||
static void (*const sPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
|
static void (*const sPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
|
||||||
@ -1507,11 +1507,11 @@ static void MoveSelectionDisplayMoveType(void)
|
|||||||
BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MOVE_TYPE);
|
BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MOVE_TYPE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void MoveSelectionCreateCursorAt(u8 cursorPosition, u8 arg1)
|
static void MoveSelectionCreateCursorAt(u8 cursorPosition, u8 baseTileNum)
|
||||||
{
|
{
|
||||||
u16 src[2];
|
u16 src[2];
|
||||||
src[0] = arg1 + 1;
|
src[0] = baseTileNum + 1;
|
||||||
src[1] = arg1 + 2;
|
src[1] = baseTileNum + 2;
|
||||||
|
|
||||||
CopyToBgTilemapBufferRect_ChangePalette(0, src, 9 * (cursorPosition & 1) + 1, 55 + (cursorPosition & 2), 1, 2, 0x11);
|
CopyToBgTilemapBufferRect_ChangePalette(0, src, 9 * (cursorPosition & 1) + 1, 55 + (cursorPosition & 2), 1, 2, 0x11);
|
||||||
CopyBgTilemapBufferToVram(0);
|
CopyBgTilemapBufferToVram(0);
|
||||||
@ -1527,7 +1527,7 @@ static void MoveSelectionDestroyCursorAt(u8 cursorPosition)
|
|||||||
CopyBgTilemapBufferToVram(0);
|
CopyBgTilemapBufferToVram(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActionSelectionCreateCursorAt(u8 cursorPosition, u8 arg1)
|
void ActionSelectionCreateCursorAt(u8 cursorPosition, u8 baseTileNum)
|
||||||
{
|
{
|
||||||
u16 src[2];
|
u16 src[2];
|
||||||
src[0] = 1;
|
src[0] = 1;
|
||||||
|
@ -1168,13 +1168,13 @@ void BtlController_EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpN
|
|||||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sizeof(*movePpData) + 4);
|
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sizeof(*movePpData) + 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BtlController_EmitChooseItem(u8 bufferId, u8 *arg1)
|
void BtlController_EmitChooseItem(u8 bufferId, u8 *battlePartyOrder)
|
||||||
{
|
{
|
||||||
s32 i;
|
s32 i;
|
||||||
|
|
||||||
sBattleBuffersTransferData[0] = CONTROLLER_OPENBAG;
|
sBattleBuffersTransferData[0] = CONTROLLER_OPENBAG;
|
||||||
for (i = 0; i < 3; i++)
|
for (i = 0; i < PARTY_SIZE / 2; i++)
|
||||||
sBattleBuffersTransferData[1 + i] = arg1[i];
|
sBattleBuffersTransferData[1 + i] = battlePartyOrder[i];
|
||||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1309,12 +1309,12 @@ void BtlController_EmitCmd32(u8 bufferId, u16 size, void *data)
|
|||||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, size + 3);
|
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, size + 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BtlController_EmitTwoReturnValues(u8 bufferId, u8 arg1, u16 arg2)
|
void BtlController_EmitTwoReturnValues(u8 bufferId, u8 ret8, u16 ret16)
|
||||||
{
|
{
|
||||||
sBattleBuffersTransferData[0] = CONTROLLER_TWORETURNVALUES;
|
sBattleBuffersTransferData[0] = CONTROLLER_TWORETURNVALUES;
|
||||||
sBattleBuffersTransferData[1] = arg1;
|
sBattleBuffersTransferData[1] = ret8;
|
||||||
sBattleBuffersTransferData[2] = arg2;
|
sBattleBuffersTransferData[2] = ret16;
|
||||||
sBattleBuffersTransferData[3] = (arg2 & 0xFF00) >> 8;
|
sBattleBuffersTransferData[3] = (ret16 & 0xFF00) >> 8;
|
||||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1329,20 +1329,20 @@ void BtlController_EmitChosenMonReturnValue(u8 bufferId, u8 partyId, u8 *battleP
|
|||||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 5);
|
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BtlController_EmitOneReturnValue(u8 bufferId, u16 arg1)
|
void BtlController_EmitOneReturnValue(u8 bufferId, u16 ret)
|
||||||
{
|
{
|
||||||
sBattleBuffersTransferData[0] = CONTROLLER_ONERETURNVALUE;
|
sBattleBuffersTransferData[0] = CONTROLLER_ONERETURNVALUE;
|
||||||
sBattleBuffersTransferData[1] = arg1;
|
sBattleBuffersTransferData[1] = ret;
|
||||||
sBattleBuffersTransferData[2] = (arg1 & 0xFF00) >> 8;
|
sBattleBuffersTransferData[2] = (ret & 0xFF00) >> 8;
|
||||||
sBattleBuffersTransferData[3] = 0;
|
sBattleBuffersTransferData[3] = 0;
|
||||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 b)
|
void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 ret)
|
||||||
{
|
{
|
||||||
sBattleBuffersTransferData[0] = CONTROLLER_ONERETURNVALUE_DUPLICATE;
|
sBattleBuffersTransferData[0] = CONTROLLER_ONERETURNVALUE_DUPLICATE;
|
||||||
sBattleBuffersTransferData[1] = b;
|
sBattleBuffersTransferData[1] = ret;
|
||||||
sBattleBuffersTransferData[2] = (b & 0xFF00) >> 8;
|
sBattleBuffersTransferData[2] = (ret & 0xFF00) >> 8;
|
||||||
sBattleBuffersTransferData[3] = 0;
|
sBattleBuffersTransferData[3] = 0;
|
||||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||||
}
|
}
|
||||||
|
@ -73,40 +73,39 @@ struct TourneyTreeLineSection
|
|||||||
#define tMode data[2]
|
#define tMode data[2]
|
||||||
#define tPrevTaskId data[3]
|
#define tPrevTaskId data[3]
|
||||||
|
|
||||||
// This file's functions.
|
static u8 GetDomeTrainerMonIvs(u16);
|
||||||
static u8 GetDomeTrainerMonIvs(u16 trainerId);
|
static void SwapDomeTrainers(int, int, u16 *);
|
||||||
static void SwapDomeTrainers(int id1, int id2, u16 *statsArray);
|
static void CalcDomeMonStats(u16, int, int, u8, u8, int *);
|
||||||
static void CalcDomeMonStats(u16 species, int level, int ivs, u8 evBits, u8 nature, int *stats);
|
static void CreateDomeOpponentMons(u16);
|
||||||
static void CreateDomeOpponentMons(u16 tournamentTrainerId);
|
static int SelectOpponentMonsUsingPersonality(u16, bool8);
|
||||||
static int SelectOpponentMonsUsingPersonality(u16 tournamentTrainerId, bool8 arg1);
|
static int SelectOpponentMonsUsingOtId(u16, bool8);
|
||||||
static int SelectOpponentMonsUsingOtId(u16 tournamentTrainerId, bool8 arg1);
|
static int GetTypeEffectivenessPoints(int, int, int);
|
||||||
static int GetTypeEffectivenessPoints(int move, int species, int arg2);
|
static int SelectOpponentMonsFromParty(int *, bool8);
|
||||||
static int SelectOpponentMonsFromParty(int *arr, bool8 arg1);
|
static void Task_ShowTourneyInfoCard(u8);
|
||||||
static void Task_ShowTourneyInfoCard(u8 taskId);
|
static void Task_HandleInfoCardInput(u8);
|
||||||
static void Task_HandleInfoCardInput(u8 taskId);
|
static u8 Task_GetInfoCardInput(u8);
|
||||||
static u8 Task_GetInfoCardInput(u8 taskId);
|
|
||||||
static void SetFacilityTrainerAndMonPtrs(void);
|
static void SetFacilityTrainerAndMonPtrs(void);
|
||||||
static int TrainerIdToTournamentId(u16 trainerId);
|
static int TrainerIdToTournamentId(u16);
|
||||||
static u16 TrainerIdOfPlayerOpponent(void);
|
static u16 TrainerIdOfPlayerOpponent(void);
|
||||||
static void Task_ShowTourneyTree(u8 taskId);
|
static void Task_ShowTourneyTree(u8);
|
||||||
static void Task_HandleStaticTourneyTreeInput(u8 taskId);
|
static void Task_HandleStaticTourneyTreeInput(u8);
|
||||||
static void CB2_TourneyTree(void);
|
static void CB2_TourneyTree(void);
|
||||||
static void VblankCb_TourneyInfoCard(void);
|
static void VblankCb_TourneyInfoCard(void);
|
||||||
static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo);
|
static void DisplayMatchInfoOnCard(u8, u8);
|
||||||
static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTourneyId);
|
static void DisplayTrainerInfoOnCard(u8, u8);
|
||||||
static int BufferDomeWinString(u8, u8*);
|
static int BufferDomeWinString(u8, u8*);
|
||||||
static u8 GetDomeBrainTrainerPicId(void);
|
static u8 GetDomeBrainTrainerPicId(void);
|
||||||
static u8 GetDomeBrainTrainerClass(void);
|
static u8 GetDomeBrainTrainerClass(void);
|
||||||
static void CopyDomeBrainTrainerName(u8 *str);
|
static void CopyDomeBrainTrainerName(u8 *);
|
||||||
static void CopyDomeTrainerName(u8 *str, u16 trainerId);
|
static void CopyDomeTrainerName(u8 *, u16);
|
||||||
static void HblankCb_TourneyTree(void);
|
static void HblankCb_TourneyTree(void);
|
||||||
static void VblankCb_TourneyTree(void);
|
static void VblankCb_TourneyTree(void);
|
||||||
static u8 UpdateTourneyTreeCursor(u8 taskId);
|
static u8 UpdateTourneyTreeCursor(u8);
|
||||||
static void DecideRoundWinners(u8 roundId);
|
static void DecideRoundWinners(u8);
|
||||||
static u8 GetOpposingNPCTournamentIdByRound(u8 tournamentId, u8);
|
static u8 GetOpposingNPCTournamentIdByRound(u8, u8);
|
||||||
static void DrawTourneyAdvancementLine(u8, u8);
|
static void DrawTourneyAdvancementLine(u8, u8);
|
||||||
static void SpriteCb_HorizontalScrollArrow(struct Sprite *sprite);
|
static void SpriteCb_HorizontalScrollArrow(struct Sprite *);
|
||||||
static void SpriteCb_VerticalScrollArrow(struct Sprite *sprite);
|
static void SpriteCb_VerticalScrollArrow(struct Sprite *);
|
||||||
static void InitDomeChallenge(void);
|
static void InitDomeChallenge(void);
|
||||||
static void GetDomeData(void);
|
static void GetDomeData(void);
|
||||||
static void SetDomeData(void);
|
static void SetDomeData(void);
|
||||||
@ -130,7 +129,6 @@ static void BufferLastDomeWinnerName(void);
|
|||||||
static void InitRandomTourneyTreeResults(void);
|
static void InitRandomTourneyTreeResults(void);
|
||||||
static void InitDomeTrainers(void);
|
static void InitDomeTrainers(void);
|
||||||
|
|
||||||
// EWRAM variables.
|
|
||||||
EWRAM_DATA u32 gPlayerPartyLostHP = 0; // never read
|
EWRAM_DATA u32 gPlayerPartyLostHP = 0; // never read
|
||||||
static EWRAM_DATA u32 sPlayerPartyMaxHP = 0; // never read
|
static EWRAM_DATA u32 sPlayerPartyMaxHP = 0; // never read
|
||||||
static EWRAM_DATA struct TourneyTreeInfoCard *sInfoCard = {0};
|
static EWRAM_DATA struct TourneyTreeInfoCard *sInfoCard = {0};
|
||||||
@ -2080,7 +2078,6 @@ static const u8 sTourneyTreeLineSectionArrayCounts[DOME_TOURNAMENT_TRAINERS_COUN
|
|||||||
{ARRAY_COUNT(sLineSectionTrainer16Round1), ARRAY_COUNT(sLineSectionTrainer16Round2), ARRAY_COUNT(sLineSectionTrainer16Semifinal), ARRAY_COUNT(sLineSectionTrainer16Final)},
|
{ARRAY_COUNT(sLineSectionTrainer16Round1), ARRAY_COUNT(sLineSectionTrainer16Round2), ARRAY_COUNT(sLineSectionTrainer16Semifinal), ARRAY_COUNT(sLineSectionTrainer16Final)},
|
||||||
};
|
};
|
||||||
|
|
||||||
// code
|
|
||||||
void CallBattleDomeFunction(void)
|
void CallBattleDomeFunction(void)
|
||||||
{
|
{
|
||||||
sBattleDomeFunctions[gSpecialVar_0x8004]();
|
sBattleDomeFunctions[gSpecialVar_0x8004]();
|
||||||
|
@ -353,12 +353,12 @@ void SpriteCB_WaitForBattlerBallReleaseAnim(struct Sprite *sprite)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void UnusedDoBattleSpriteAffineAnim(struct Sprite *sprite, bool8 arg1)
|
static void UnusedDoBattleSpriteAffineAnim(struct Sprite *sprite, bool8 pointless)
|
||||||
{
|
{
|
||||||
sprite->animPaused = TRUE;
|
sprite->animPaused = TRUE;
|
||||||
sprite->callback = SpriteCallbackDummy;
|
sprite->callback = SpriteCallbackDummy;
|
||||||
|
|
||||||
if (!arg1)
|
if (!pointless)
|
||||||
StartSpriteAffineAnim(sprite, 1);
|
StartSpriteAffineAnim(sprite, 1);
|
||||||
else
|
else
|
||||||
StartSpriteAffineAnim(sprite, 1);
|
StartSpriteAffineAnim(sprite, 1);
|
||||||
@ -783,7 +783,7 @@ bool8 BattleLoadAllHealthBoxesGfx(u8 state)
|
|||||||
return retVal;
|
return retVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
void LoadBattleBarGfx(u8 arg0)
|
void LoadBattleBarGfx(u8 unused)
|
||||||
{
|
{
|
||||||
LZDecompressWram(gBattleInterfaceGfx_BattleBar, gMonSpritesGfxPtr->barFontGfx);
|
LZDecompressWram(gBattleInterfaceGfx_BattleBar, gMonSpritesGfxPtr->barFontGfx);
|
||||||
}
|
}
|
||||||
|
@ -158,36 +158,36 @@ enum
|
|||||||
HEALTHBOX_GFX_FRAME_END_BAR,
|
HEALTHBOX_GFX_FRAME_END_BAR,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const u8 *GetHealthboxElementGfxPtr(u8 elementId);
|
static const u8 *GetHealthboxElementGfxPtr(u8);
|
||||||
static u8* AddTextPrinterAndCreateWindowOnHealthbox(const u8 *str, u32 x, u32 y, u32 bgColor, u32 *windowId);
|
static u8* AddTextPrinterAndCreateWindowOnHealthbox(const u8 *, u32, u32, u32, u32 *);
|
||||||
|
|
||||||
static void RemoveWindowOnHealthbox(u32 windowId);
|
static void RemoveWindowOnHealthbox(u32 windowId);
|
||||||
static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent);
|
static void UpdateHpTextInHealthboxInDoubles(u8, s16, u8);
|
||||||
static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId);
|
static void UpdateStatusIconInHealthbox(u8);
|
||||||
|
|
||||||
static void TextIntoHealthboxObject(void *dest, u8 *windowTileData, s32 windowWidth);
|
static void TextIntoHealthboxObject(void *, u8 *, s32);
|
||||||
static void SafariTextIntoHealthboxObject(void *dest, u8 *windowTileData, u32 windowWidth);
|
static void SafariTextIntoHealthboxObject(void *, u8 *, u32);
|
||||||
static void HpTextIntoHealthboxObject(void *dest, u8 *windowTileData, u32 windowWidth);
|
static void HpTextIntoHealthboxObject(void *, u8 *, u32);
|
||||||
static void FillHealthboxObject(void *dest, u32 arg1, u32 arg2);
|
static void FillHealthboxObject(void *, u32, u32);
|
||||||
|
|
||||||
static void Task_HidePartyStatusSummary_BattleStart_1(u8 taskId);
|
static void Task_HidePartyStatusSummary_BattleStart_1(u8);
|
||||||
static void Task_HidePartyStatusSummary_BattleStart_2(u8 taskId);
|
static void Task_HidePartyStatusSummary_BattleStart_2(u8);
|
||||||
static void Task_HidePartyStatusSummary_DuringBattle(u8 taskId);
|
static void Task_HidePartyStatusSummary_DuringBattle(u8);
|
||||||
|
|
||||||
static void SpriteCB_HealthBoxOther(struct Sprite *sprite);
|
static void SpriteCB_HealthBoxOther(struct Sprite *);
|
||||||
static void SpriteCB_HealthBar(struct Sprite *sprite);
|
static void SpriteCB_HealthBar(struct Sprite *);
|
||||||
static void SpriteCB_StatusSummaryBar_Enter(struct Sprite *sprite);
|
static void SpriteCB_StatusSummaryBar_Enter(struct Sprite *);
|
||||||
static void SpriteCB_StatusSummaryBar_Exit(struct Sprite *sprite);
|
static void SpriteCB_StatusSummaryBar_Exit(struct Sprite *);
|
||||||
static void SpriteCB_StatusSummaryBalls_Enter(struct Sprite *sprite);
|
static void SpriteCB_StatusSummaryBalls_Enter(struct Sprite *);
|
||||||
static void SpriteCB_StatusSummaryBalls_Exit(struct Sprite *sprite);
|
static void SpriteCB_StatusSummaryBalls_Exit(struct Sprite *);
|
||||||
static void SpriteCB_StatusSummaryBalls_OnSwitchout(struct Sprite *sprite);
|
static void SpriteCB_StatusSummaryBalls_OnSwitchout(struct Sprite *);
|
||||||
|
|
||||||
static u8 GetStatusIconForBattlerId(u8 statusElementId, u8 battlerId);
|
static u8 GetStatusIconForBattlerId(u8, u8);
|
||||||
static s32 CalcNewBarValue(s32 maxValue, s32 currValue, s32 receivedValue, s32 *arg3, u8 arg4, u16 arg5);
|
static s32 CalcNewBarValue(s32, s32, s32, s32 *, u8, u16);
|
||||||
static u8 GetScaledExpFraction(s32 currValue, s32 receivedValue, s32 maxValue, u8 scale);
|
static u8 GetScaledExpFraction(s32, s32, s32, u8);
|
||||||
static void MoveBattleBarGraphically(u8 battlerId, u8 whichBar);
|
static void MoveBattleBarGraphically(u8, u8);
|
||||||
static u8 CalcBarFilledPixels(s32 maxValue, s32 oldValue, s32 receivedValue, s32 *currValue, u8 *arg4, u8 scale);
|
static u8 CalcBarFilledPixels(s32, s32, s32, s32 *, u8 *, u8);
|
||||||
static void Debug_TestHealthBar_Helper(struct TestingBar *barInfo, s32 *arg1, u16 *arg2);
|
static void Debug_TestHealthBar_Helper(struct TestingBar *, s32 *, u16 *);
|
||||||
|
|
||||||
static const struct OamData sOamData_64x32 =
|
static const struct OamData sOamData_64x32 =
|
||||||
{
|
{
|
||||||
@ -814,11 +814,11 @@ static void Debug_DrawNumber(s16 number, u16 *dest, bool8 unk)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Unused
|
// Unused
|
||||||
static void Debug_DrawNumberPair(s16 number1, s16 number2, u16 *arg2)
|
static void Debug_DrawNumberPair(s16 number1, s16 number2, u16 *dest)
|
||||||
{
|
{
|
||||||
arg2[4] = 0x1E;
|
dest[4] = 0x1E;
|
||||||
Debug_DrawNumber(number2, arg2, 0);
|
Debug_DrawNumber(number2, dest, 0);
|
||||||
Debug_DrawNumber(number1, arg2 + 5, 1);
|
Debug_DrawNumber(number1, dest + 5, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Because the healthbox is too large to fit into one sprite, it is divided into two sprites.
|
// Because the healthbox is too large to fit into one sprite, it is divided into two sprites.
|
||||||
@ -2453,19 +2453,19 @@ static s16 Debug_TestHealthBar(struct TestingBar *barInfo, s32 *currValue, u16 *
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void Debug_TestHealthBar_Helper(struct TestingBar *barInfo, s32 *currValue, u16 *arg2)
|
static void Debug_TestHealthBar_Helper(struct TestingBar *barInfo, s32 *currValue, u16 *dest)
|
||||||
{
|
{
|
||||||
u8 sp8[6];
|
u8 sp8[6];
|
||||||
u16 sp10[6];
|
u16 src[6];
|
||||||
u8 i;
|
u8 i;
|
||||||
|
|
||||||
CalcBarFilledPixels(barInfo->maxValue, barInfo->oldValue,
|
CalcBarFilledPixels(barInfo->maxValue, barInfo->oldValue,
|
||||||
barInfo->receivedValue, currValue, sp8, B_HEALTHBAR_PIXELS / 8);
|
barInfo->receivedValue, currValue, sp8, B_HEALTHBAR_PIXELS / 8);
|
||||||
|
|
||||||
for (i = 0; i < 6; i++)
|
for (i = 0; i < 6; i++)
|
||||||
sp10[i] = (barInfo->unkC_0 << 12) | (barInfo->unk10 + sp8[i]);
|
src[i] = (barInfo->unkC_0 << 12) | (barInfo->unk10 + sp8[i]);
|
||||||
|
|
||||||
CpuCopy16(sp10, arg2, sizeof(sp10));
|
CpuCopy16(src, dest, sizeof(src));
|
||||||
}
|
}
|
||||||
|
|
||||||
static u8 GetScaledExpFraction(s32 oldValue, s32 receivedValue, s32 maxValue, u8 scale)
|
static u8 GetScaledExpFraction(s32 oldValue, s32 receivedValue, s32 maxValue, u8 scale)
|
||||||
|
@ -83,18 +83,18 @@ static void ClearPyramidPartyHeldItems(void);
|
|||||||
static void SetPyramidFloorPalette(void);
|
static void SetPyramidFloorPalette(void);
|
||||||
static void BattlePyramidStartMenu(void);
|
static void BattlePyramidStartMenu(void);
|
||||||
static void RestorePyramidPlayerParty(void);
|
static void RestorePyramidPlayerParty(void);
|
||||||
static void InitPyramidBagItems(u8 lvlMode);
|
static void InitPyramidBagItems(u8);
|
||||||
static u8 GetPyramidFloorTemplateId(void);
|
static u8 GetPyramidFloorTemplateId(void);
|
||||||
static u8 GetPostBattleDirectionHintTextIndex(int *, u8, u8);
|
static u8 GetPostBattleDirectionHintTextIndex(int *, u8, u8);
|
||||||
static void Task_SetPyramidFloorPalette(u8 taskId);
|
static void Task_SetPyramidFloorPalette(u8);
|
||||||
static void MarkPyramidTrainerAsBattled(u16 trainerId);
|
static void MarkPyramidTrainerAsBattled(u16);
|
||||||
static void GetPyramidFloorLayoutOffsets(u8 *layoutOffsets);
|
static void GetPyramidFloorLayoutOffsets(u8 *);
|
||||||
static void GetPyramidEntranceAndExitSquareIds(u8 *, u8 *);
|
static void GetPyramidEntranceAndExitSquareIds(u8 *, u8 *);
|
||||||
static void SetPyramidObjectPositionsUniformly(u8);
|
static void SetPyramidObjectPositionsUniformly(u8);
|
||||||
static bool8 SetPyramidObjectPositionsInAndNearSquare(u8, u8);
|
static bool8 SetPyramidObjectPositionsInAndNearSquare(u8, u8);
|
||||||
static bool8 SetPyramidObjectPositionsNearSquare(u8, u8);
|
static bool8 SetPyramidObjectPositionsNearSquare(u8, u8);
|
||||||
static bool8 TrySetPyramidObjectEventPositionInSquare(u8 arg0, u8 *floorLayoutOffsets, u8 squareId, u8 objectEventId);
|
static bool8 TrySetPyramidObjectEventPositionInSquare(u8, u8 *, u8, u8);
|
||||||
static bool8 TrySetPyramidObjectEventPositionAtCoords(bool8 objType, u8 x, u8 y, u8 *floorLayoutOffsets, u8 squareId, u8 objectEventId);
|
static bool8 TrySetPyramidObjectEventPositionAtCoords(bool8, u8, u8, u8 *, u8, u8);
|
||||||
|
|
||||||
// Const rom data.
|
// Const rom data.
|
||||||
#define ABILITY_RANDOM 2 // For wild mons data.
|
#define ABILITY_RANDOM 2 // For wild mons data.
|
||||||
|
@ -92,11 +92,22 @@ static const struct SpriteTemplate sEvoSparkleSpriteTemplate =
|
|||||||
.callback = SpriteCB_Sparkle_Dummy
|
.callback = SpriteCB_Sparkle_Dummy
|
||||||
};
|
};
|
||||||
|
|
||||||
static const s16 sEvoSparkleMatrices[] =
|
static const u16 sEvoSparkleMatrices[] =
|
||||||
{
|
{
|
||||||
0x3C0, 0x380, 0x340, 0x300, 0x2C0, 0x280, 0x240, 0x200, 0x1C0,
|
0x3C0, 0x380, 0x340, 0x300, 0x2C0, 0x280,
|
||||||
0x180, 0x140, 0x100, -4, 0x10, -3, 0x30, -2, 0x50,
|
0x240, 0x200, 0x1C0, 0x180, 0x140, 0x100
|
||||||
-1, 0x70, 0x1, 0x70, 0x2, 0x50, 0x3, 0x30, 0x4, 0x10
|
};
|
||||||
|
|
||||||
|
static const s16 sUnused[] =
|
||||||
|
{
|
||||||
|
-4, 0x10,
|
||||||
|
-3, 0x30,
|
||||||
|
-2, 0x50,
|
||||||
|
-1, 0x70,
|
||||||
|
1, 0x70,
|
||||||
|
2, 0x50,
|
||||||
|
3, 0x30,
|
||||||
|
4, 0x10
|
||||||
};
|
};
|
||||||
|
|
||||||
static void SpriteCB_Sparkle_Dummy(struct Sprite *sprite)
|
static void SpriteCB_Sparkle_Dummy(struct Sprite *sprite)
|
||||||
@ -107,30 +118,33 @@ static void SpriteCB_Sparkle_Dummy(struct Sprite *sprite)
|
|||||||
static void SetEvoSparklesMatrices(void)
|
static void SetEvoSparklesMatrices(void)
|
||||||
{
|
{
|
||||||
u16 i;
|
u16 i;
|
||||||
for (i = 0; i < 12; i++)
|
for (i = 0; i < ARRAY_COUNT(sEvoSparkleMatrices); i++)
|
||||||
{
|
|
||||||
SetOamMatrix(20 + i, sEvoSparkleMatrices[i], 0, 0, sEvoSparkleMatrices[i]);
|
SetOamMatrix(20 + i, sEvoSparkleMatrices[i], 0, 0, sEvoSparkleMatrices[i]);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define sSpeed data[3]
|
||||||
|
#define sAmplitude data[5]
|
||||||
|
#define sTrigIdx data[6]
|
||||||
|
#define sTimer data[7]
|
||||||
|
|
||||||
static void SpriteCB_Sparkle_SpiralUpward(struct Sprite* sprite)
|
static void SpriteCB_Sparkle_SpiralUpward(struct Sprite* sprite)
|
||||||
{
|
{
|
||||||
if (sprite->y > 8)
|
if (sprite->y > 8)
|
||||||
{
|
{
|
||||||
u8 matrixNum;
|
u8 matrixNum;
|
||||||
|
|
||||||
sprite->y = 88 - (sprite->data[7] * sprite->data[7]) / 80;
|
sprite->y = 88 - (sprite->sTimer * sprite->sTimer) / 80;
|
||||||
sprite->y2 = Sin((u8)(sprite->data[6]), sprite->data[5]) / 4;
|
sprite->y2 = Sin((u8)sprite->sTrigIdx, sprite->sAmplitude) / 4;
|
||||||
sprite->x2 = Cos((u8)(sprite->data[6]), sprite->data[5]);
|
sprite->x2 = Cos((u8)sprite->sTrigIdx, sprite->sAmplitude);
|
||||||
sprite->data[6] += 4;
|
sprite->sTrigIdx += 4;
|
||||||
if (sprite->data[7] & 1)
|
if (sprite->sTimer & 1)
|
||||||
sprite->data[5]--;
|
sprite->sAmplitude--;
|
||||||
sprite->data[7]++;
|
sprite->sTimer++;
|
||||||
if (sprite->y2 > 0)
|
if (sprite->y2 > 0)
|
||||||
sprite->subpriority = 1;
|
sprite->subpriority = 1;
|
||||||
else
|
else
|
||||||
sprite->subpriority = 20;
|
sprite->subpriority = 20;
|
||||||
matrixNum = sprite->data[5] / 4 + 20;
|
matrixNum = sprite->sAmplitude / 4 + 20;
|
||||||
if (matrixNum > 31)
|
if (matrixNum > 31)
|
||||||
matrixNum = 31;
|
matrixNum = 31;
|
||||||
sprite->oam.matrixNum = matrixNum;
|
sprite->oam.matrixNum = matrixNum;
|
||||||
@ -139,17 +153,17 @@ static void SpriteCB_Sparkle_SpiralUpward(struct Sprite* sprite)
|
|||||||
DestroySprite(sprite);
|
DestroySprite(sprite);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void CreateSparkle_SpiralUpward(u8 arg0)
|
static void CreateSparkle_SpiralUpward(u8 trigIdx)
|
||||||
{
|
{
|
||||||
u8 spriteID = CreateSprite(&sEvoSparkleSpriteTemplate, 120, 88, 0);
|
u8 spriteId = CreateSprite(&sEvoSparkleSpriteTemplate, DISPLAY_WIDTH / 2, 88, 0);
|
||||||
if (spriteID != MAX_SPRITES)
|
if (spriteId != MAX_SPRITES)
|
||||||
{
|
{
|
||||||
gSprites[spriteID].data[5] = 48;
|
gSprites[spriteId].sAmplitude = 48;
|
||||||
gSprites[spriteID].data[6] = arg0;
|
gSprites[spriteId].sTrigIdx = trigIdx;
|
||||||
gSprites[spriteID].data[7] = 0;
|
gSprites[spriteId].sTimer = 0;
|
||||||
gSprites[spriteID].oam.affineMode = ST_OAM_AFFINE_NORMAL;
|
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
|
||||||
gSprites[spriteID].oam.matrixNum = 31;
|
gSprites[spriteId].oam.matrixNum = 31;
|
||||||
gSprites[spriteID].callback = SpriteCB_Sparkle_SpiralUpward;
|
gSprites[spriteId].callback = SpriteCB_Sparkle_SpiralUpward;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -157,85 +171,85 @@ static void SpriteCB_Sparkle_ArcDown(struct Sprite* sprite)
|
|||||||
{
|
{
|
||||||
if (sprite->y < 88)
|
if (sprite->y < 88)
|
||||||
{
|
{
|
||||||
sprite->y = 8 + (sprite->data[7] * sprite->data[7]) / 5;
|
sprite->y = 8 + (sprite->sTimer * sprite->sTimer) / 5;
|
||||||
sprite->y2 = Sin((u8)(sprite->data[6]), sprite->data[5]) / 4;
|
sprite->y2 = Sin((u8)sprite->sTrigIdx, sprite->sAmplitude) / 4;
|
||||||
sprite->x2 = Cos((u8)(sprite->data[6]), sprite->data[5]);
|
sprite->x2 = Cos((u8)sprite->sTrigIdx, sprite->sAmplitude);
|
||||||
sprite->data[5] = 8 + Sin((u8)(sprite->data[7] * 4), 40);
|
sprite->sAmplitude = 8 + Sin((u8)(sprite->sTimer * 4), 40);
|
||||||
sprite->data[7]++;
|
sprite->sTimer++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
DestroySprite(sprite);
|
DestroySprite(sprite);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void CreateSparkle_ArcDown(u8 arg0)
|
static void CreateSparkle_ArcDown(u8 trigIdx)
|
||||||
{
|
{
|
||||||
u8 spriteID = CreateSprite(&sEvoSparkleSpriteTemplate, 120, 8, 0);
|
u8 spriteId = CreateSprite(&sEvoSparkleSpriteTemplate, DISPLAY_WIDTH / 2, 8, 0);
|
||||||
if (spriteID != MAX_SPRITES)
|
if (spriteId != MAX_SPRITES)
|
||||||
{
|
{
|
||||||
gSprites[spriteID].data[5] = 8;
|
gSprites[spriteId].sAmplitude = 8;
|
||||||
gSprites[spriteID].data[6] = arg0;
|
gSprites[spriteId].sTrigIdx = trigIdx;
|
||||||
gSprites[spriteID].data[7] = 0;
|
gSprites[spriteId].sTimer = 0;
|
||||||
gSprites[spriteID].oam.affineMode = ST_OAM_AFFINE_NORMAL;
|
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
|
||||||
gSprites[spriteID].oam.matrixNum = 25;
|
gSprites[spriteId].oam.matrixNum = 25;
|
||||||
gSprites[spriteID].subpriority = 1;
|
gSprites[spriteId].subpriority = 1;
|
||||||
gSprites[spriteID].callback = SpriteCB_Sparkle_ArcDown;
|
gSprites[spriteId].callback = SpriteCB_Sparkle_ArcDown;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void SpriteCB_Sparkle_CircleInward(struct Sprite* sprite)
|
static void SpriteCB_Sparkle_CircleInward(struct Sprite* sprite)
|
||||||
{
|
{
|
||||||
if (sprite->data[5] > 8)
|
if (sprite->sAmplitude > 8)
|
||||||
{
|
{
|
||||||
sprite->y2 = Sin((u8)(sprite->data[6]), sprite->data[5]);
|
sprite->y2 = Sin((u8)sprite->sTrigIdx, sprite->sAmplitude);
|
||||||
sprite->x2 = Cos((u8)(sprite->data[6]), sprite->data[5]);
|
sprite->x2 = Cos((u8)sprite->sTrigIdx, sprite->sAmplitude);
|
||||||
sprite->data[5] -= sprite->data[3];
|
sprite->sAmplitude -= sprite->sSpeed;
|
||||||
sprite->data[6] += 4;
|
sprite->sTrigIdx += 4;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
DestroySprite(sprite);
|
DestroySprite(sprite);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void CreateSparkle_CircleInward(u8 arg0, u8 arg1)
|
static void CreateSparkle_CircleInward(u8 trigIdx, u8 speed)
|
||||||
{
|
{
|
||||||
u8 spriteID = CreateSprite(&sEvoSparkleSpriteTemplate, 120, 56, 0);
|
u8 spriteId = CreateSprite(&sEvoSparkleSpriteTemplate, DISPLAY_WIDTH / 2, 56, 0);
|
||||||
if (spriteID != MAX_SPRITES)
|
if (spriteId != MAX_SPRITES)
|
||||||
{
|
{
|
||||||
gSprites[spriteID].data[3] = arg1;
|
gSprites[spriteId].sSpeed = speed;
|
||||||
gSprites[spriteID].data[5] = 120;
|
gSprites[spriteId].sAmplitude = 120;
|
||||||
gSprites[spriteID].data[6] = arg0;
|
gSprites[spriteId].sTrigIdx = trigIdx;
|
||||||
gSprites[spriteID].data[7] = 0;
|
gSprites[spriteId].sTimer = 0;
|
||||||
gSprites[spriteID].oam.affineMode = ST_OAM_AFFINE_NORMAL;
|
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
|
||||||
gSprites[spriteID].oam.matrixNum = 31;
|
gSprites[spriteId].oam.matrixNum = 31;
|
||||||
gSprites[spriteID].subpriority = 1;
|
gSprites[spriteId].subpriority = 1;
|
||||||
gSprites[spriteID].callback = SpriteCB_Sparkle_CircleInward;
|
gSprites[spriteId].callback = SpriteCB_Sparkle_CircleInward;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void SpriteCB_Sparkle_Spray(struct Sprite* sprite)
|
static void SpriteCB_Sparkle_Spray(struct Sprite* sprite)
|
||||||
{
|
{
|
||||||
if (!(sprite->data[7] & 3))
|
if (!(sprite->sTimer & 3))
|
||||||
sprite->y++;
|
sprite->y++;
|
||||||
if (sprite->data[6] < 128)
|
if (sprite->sTrigIdx < 128)
|
||||||
{
|
{
|
||||||
u8 matrixNum;
|
u8 matrixNum;
|
||||||
|
|
||||||
sprite->y2 = -Sin((u8)(sprite->data[6]), sprite->data[5]);
|
sprite->y2 = -Sin((u8)sprite->sTrigIdx, sprite->sAmplitude);
|
||||||
sprite->x = 120 + (sprite->data[3] * sprite->data[7]) / 3;
|
sprite->x = (DISPLAY_WIDTH / 2) + (sprite->sSpeed * sprite->sTimer) / 3;
|
||||||
sprite->data[6]++;
|
sprite->sTrigIdx++;
|
||||||
matrixNum = 31 - (sprite->data[6] * 12 / 128);
|
matrixNum = 31 - (sprite->sTrigIdx * 12 / 128);
|
||||||
if (sprite->data[6] > 64)
|
if (sprite->sTrigIdx > 64)
|
||||||
sprite->subpriority = 1;
|
sprite->subpriority = 1;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sprite->invisible = FALSE;
|
sprite->invisible = FALSE;
|
||||||
sprite->subpriority = 20;
|
sprite->subpriority = 20;
|
||||||
if (sprite->data[6] > 112 && sprite->data[6] & 1)
|
if (sprite->sTrigIdx > 112 && sprite->sTrigIdx & 1)
|
||||||
sprite->invisible = TRUE;
|
sprite->invisible = TRUE;
|
||||||
}
|
}
|
||||||
if (matrixNum < 20)
|
if (matrixNum < 20)
|
||||||
matrixNum = 20;
|
matrixNum = 20;
|
||||||
sprite->oam.matrixNum = matrixNum;
|
sprite->oam.matrixNum = matrixNum;
|
||||||
sprite->data[7]++;
|
sprite->sTimer++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
DestroySprite(sprite);
|
DestroySprite(sprite);
|
||||||
@ -243,16 +257,16 @@ static void SpriteCB_Sparkle_Spray(struct Sprite* sprite)
|
|||||||
|
|
||||||
static void CreateSparkle_Spray(u8 id)
|
static void CreateSparkle_Spray(u8 id)
|
||||||
{
|
{
|
||||||
u8 spriteID = CreateSprite(&sEvoSparkleSpriteTemplate, 120, 56, 0);
|
u8 spriteId = CreateSprite(&sEvoSparkleSpriteTemplate, DISPLAY_WIDTH / 2, 56, 0);
|
||||||
if (spriteID != MAX_SPRITES)
|
if (spriteId != MAX_SPRITES)
|
||||||
{
|
{
|
||||||
gSprites[spriteID].data[3] = 3 - (Random() % 7);
|
gSprites[spriteId].sSpeed = 3 - (Random() % 7);
|
||||||
gSprites[spriteID].data[5] = 48 + (Random() & 0x3F);
|
gSprites[spriteId].sAmplitude = 48 + (Random() & 0x3F);
|
||||||
gSprites[spriteID].data[7] = 0;
|
gSprites[spriteId].sTimer = 0;
|
||||||
gSprites[spriteID].oam.affineMode = ST_OAM_AFFINE_NORMAL;
|
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
|
||||||
gSprites[spriteID].oam.matrixNum = 31;
|
gSprites[spriteId].oam.matrixNum = 31;
|
||||||
gSprites[spriteID].subpriority = 20;
|
gSprites[spriteId].subpriority = 20;
|
||||||
gSprites[spriteID].callback = SpriteCB_Sparkle_Spray;
|
gSprites[spriteId].callback = SpriteCB_Sparkle_Spray;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -289,7 +303,7 @@ static void Task_Sparkles_SpiralUpward(u8 taskId)
|
|||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
for (i = 0; i < 4; i++)
|
for (i = 0; i < 4; i++)
|
||||||
CreateSparkle_SpiralUpward((0x78 & gTasks[taskId].tTimer) * 2 + i * 64);
|
CreateSparkle_SpiralUpward((gTasks[taskId].tTimer & 120) * 2 + i * 64);
|
||||||
}
|
}
|
||||||
gTasks[taskId].tTimer++;
|
gTasks[taskId].tTimer++;
|
||||||
}
|
}
|
||||||
|
@ -312,14 +312,14 @@ static void ListMenuDummyTask(u8 taskId)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
s32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const struct ListMenuTemplate *listMenuTemplate, u8 arg2, u16 tileNum, u16 palNum)
|
s32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const struct ListMenuTemplate *listMenuTemplate, u8 drawMode, u16 tileNum, u16 palNum)
|
||||||
{
|
{
|
||||||
switch (sMysteryGiftLinkMenu.state)
|
switch (sMysteryGiftLinkMenu.state)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
default:
|
default:
|
||||||
sMysteryGiftLinkMenu.windowId = AddWindow(windowTemplate);
|
sMysteryGiftLinkMenu.windowId = AddWindow(windowTemplate);
|
||||||
switch (arg2)
|
switch (drawMode)
|
||||||
{
|
{
|
||||||
case 2:
|
case 2:
|
||||||
LoadUserWindowBorderGfx(sMysteryGiftLinkMenu.windowId, tileNum, palNum);
|
LoadUserWindowBorderGfx(sMysteryGiftLinkMenu.windowId, tileNum, palNum);
|
||||||
@ -346,13 +346,13 @@ s32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const str
|
|||||||
}
|
}
|
||||||
if (sMysteryGiftLinkMenu.state == 2)
|
if (sMysteryGiftLinkMenu.state == 2)
|
||||||
{
|
{
|
||||||
if (arg2 == 0)
|
if (drawMode == 0)
|
||||||
{
|
{
|
||||||
ClearWindowTilemap(sMysteryGiftLinkMenu.windowId);
|
ClearWindowTilemap(sMysteryGiftLinkMenu.windowId);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
switch (arg2)
|
switch (drawMode)
|
||||||
{
|
{
|
||||||
case 0: // can never be reached, because of the if statement above
|
case 0: // can never be reached, because of the if statement above
|
||||||
ClearStdWindowAndFrame(sMysteryGiftLinkMenu.windowId, FALSE);
|
ClearStdWindowAndFrame(sMysteryGiftLinkMenu.windowId, FALSE);
|
||||||
|
@ -153,7 +153,7 @@ void DoYesNoFuncWithChoice(u8 taskId, const struct YesNoFuncTable *data)
|
|||||||
gTasks[taskId].func = Task_CallYesOrNoCallback;
|
gTasks[taskId].func = Task_CallYesOrNoCallback;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *template, u8 arg2, u8 arg3, u8 arg4, u16 tileStart, u8 palette, const struct YesNoFuncTable *yesNo)
|
void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *template, u8 unused1, u8 unused2, u8 unused3, u16 tileStart, u8 palette, const struct YesNoFuncTable *yesNo)
|
||||||
{
|
{
|
||||||
CreateYesNoMenu(template, tileStart, palette, 0);
|
CreateYesNoMenu(template, tileStart, palette, 0);
|
||||||
sYesNo = *yesNo;
|
sYesNo = *yesNo;
|
||||||
@ -176,17 +176,18 @@ static void Task_CallYesOrNoCallback(u8 taskId)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1)
|
// Returns TRUE if the quantity was changed, FALSE if it remained the same
|
||||||
|
bool8 AdjustQuantityAccordingToDPadInput(s16 *quantity, u16 max)
|
||||||
{
|
{
|
||||||
s16 valBefore = (*arg0);
|
s16 valBefore = *quantity;
|
||||||
|
|
||||||
if ((JOY_REPEAT(DPAD_ANY)) == DPAD_UP)
|
if (JOY_REPEAT(DPAD_ANY) == DPAD_UP)
|
||||||
{
|
{
|
||||||
(*arg0)++;
|
(*quantity)++;
|
||||||
if ((*arg0) > arg1)
|
if (*quantity > max)
|
||||||
(*arg0) = 1;
|
*quantity = 1;
|
||||||
|
|
||||||
if ((*arg0) == valBefore)
|
if (*quantity == valBefore)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
@ -196,13 +197,13 @@ bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ((JOY_REPEAT(DPAD_ANY)) == DPAD_DOWN)
|
else if (JOY_REPEAT(DPAD_ANY) == DPAD_DOWN)
|
||||||
{
|
{
|
||||||
(*arg0)--;
|
(*quantity)--;
|
||||||
if ((*arg0) <= 0)
|
if (*quantity <= 0)
|
||||||
(*arg0) = arg1;
|
*quantity = max;
|
||||||
|
|
||||||
if ((*arg0) == valBefore)
|
if (*quantity == valBefore)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
@ -212,13 +213,13 @@ bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ((JOY_REPEAT(DPAD_ANY)) == DPAD_RIGHT)
|
else if (JOY_REPEAT(DPAD_ANY) == DPAD_RIGHT)
|
||||||
{
|
{
|
||||||
(*arg0) += 10;
|
*quantity += 10;
|
||||||
if ((*arg0) > arg1)
|
if (*quantity > max)
|
||||||
(*arg0) = arg1;
|
*quantity = max;
|
||||||
|
|
||||||
if ((*arg0) == valBefore)
|
if (*quantity == valBefore)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
@ -228,13 +229,13 @@ bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ((JOY_REPEAT(DPAD_ANY)) == DPAD_LEFT)
|
else if (JOY_REPEAT(DPAD_ANY) == DPAD_LEFT)
|
||||||
{
|
{
|
||||||
(*arg0) -= 10;
|
*quantity -= 10;
|
||||||
if ((*arg0) <= 0)
|
if (*quantity <= 0)
|
||||||
(*arg0) = 1;
|
*quantity = 1;
|
||||||
|
|
||||||
if ((*arg0) == valBefore)
|
if (*quantity == valBefore)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
@ -230,7 +230,7 @@ static u32 Client_Run(struct MysteryGiftClient * client)
|
|||||||
MysteryGift_TrySaveStamp(client->recvBuffer);
|
MysteryGift_TrySaveStamp(client->recvBuffer);
|
||||||
break;
|
break;
|
||||||
case CLI_SAVE_RAM_SCRIPT:
|
case CLI_SAVE_RAM_SCRIPT:
|
||||||
InitRamScript_NoObjectEvent(client->recvBuffer, 1000);
|
InitRamScript_NoObjectEvent(client->recvBuffer, sizeof(struct RamScriptData));
|
||||||
break;
|
break;
|
||||||
case CLI_RECV_EREADER_TRAINER:
|
case CLI_RECV_EREADER_TRAINER:
|
||||||
memcpy(&gSaveBlock2Ptr->frontier.ereaderTrainer, client->recvBuffer, sizeof(gSaveBlock2Ptr->frontier.ereaderTrainer));
|
memcpy(&gSaveBlock2Ptr->frontier.ereaderTrainer, client->recvBuffer, sizeof(gSaveBlock2Ptr->frontier.ereaderTrainer));
|
||||||
|
@ -438,7 +438,7 @@ static void SpriteCB_BallThrow(struct Sprite *sprite)
|
|||||||
sprite->y2 = 0;
|
sprite->y2 = 0;
|
||||||
sprite->data[5] = 0;
|
sprite->data[5] = 0;
|
||||||
ballId = ItemIdToBallId(GetBattlerPokeballItemId(opponentBattler));
|
ballId = ItemIdToBallId(GetBattlerPokeballItemId(opponentBattler));
|
||||||
AnimateBallOpenParticles(sprite->x, sprite->y - 5, 1, 0x1C, ballId);
|
AnimateBallOpenParticles(sprite->x, sprite->y - 5, 1, 28, ballId);
|
||||||
sprite->data[0] = LaunchBallFadeMonTask(FALSE, opponentBattler, 14, ballId);
|
sprite->data[0] = LaunchBallFadeMonTask(FALSE, opponentBattler, 14, ballId);
|
||||||
sprite->sBattler = opponentBattler;
|
sprite->sBattler = opponentBattler;
|
||||||
sprite->data[7] = noOfShakes;
|
sprite->data[7] = noOfShakes;
|
||||||
@ -752,7 +752,7 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite)
|
|||||||
|
|
||||||
StartSpriteAnim(sprite, 1);
|
StartSpriteAnim(sprite, 1);
|
||||||
ballId = ItemIdToBallId(GetBattlerPokeballItemId(battlerId));
|
ballId = ItemIdToBallId(GetBattlerPokeballItemId(battlerId));
|
||||||
AnimateBallOpenParticles(sprite->x, sprite->y - 5, 1, 0x1C, ballId);
|
AnimateBallOpenParticles(sprite->x, sprite->y - 5, 1, 28, ballId);
|
||||||
sprite->data[0] = LaunchBallFadeMonTask(TRUE, sprite->sBattler, 14, ballId);
|
sprite->data[0] = LaunchBallFadeMonTask(TRUE, sprite->sBattler, 14, ballId);
|
||||||
sprite->callback = HandleBallAnimEnd;
|
sprite->callback = HandleBallAnimEnd;
|
||||||
|
|
||||||
@ -1000,14 +1000,14 @@ static void SpriteCB_OpponentMonSendOut(struct Sprite *sprite)
|
|||||||
|
|
||||||
#undef sBattler
|
#undef sBattler
|
||||||
|
|
||||||
static u8 AnimateBallOpenParticlesForPokeball(u8 x, u8 y, u8 kindOfStars, u8 d)
|
static u8 AnimateBallOpenParticlesForPokeball(u8 x, u8 y, u8 kindOfStars, u8 subpriority)
|
||||||
{
|
{
|
||||||
return AnimateBallOpenParticles(x, y, kindOfStars, d, BALL_POKE);
|
return AnimateBallOpenParticles(x, y, kindOfStars, subpriority, BALL_POKE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static u8 LaunchBallFadeMonTaskForPokeball(bool8 unFadeLater, u8 battlerId, u32 arg2)
|
static u8 LaunchBallFadeMonTaskForPokeball(bool8 unFadeLater, u8 battlerId, u32 selectedPalettes)
|
||||||
{
|
{
|
||||||
return LaunchBallFadeMonTask(unFadeLater, battlerId, arg2, BALL_POKE);
|
return LaunchBallFadeMonTask(unFadeLater, battlerId, selectedPalettes, BALL_POKE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pokeball in Birch intro, and when receiving via trade
|
// Pokeball in Birch intro, and when receiving via trade
|
||||||
@ -1041,24 +1041,24 @@ static void SpriteCB_PokeballReleaseMon(struct Sprite *sprite)
|
|||||||
{
|
{
|
||||||
if (sprite->data[1] == 0)
|
if (sprite->data[1] == 0)
|
||||||
{
|
{
|
||||||
u8 r5;
|
u8 subpriority;
|
||||||
u8 r7 = sprite->data[0];
|
u8 spriteId = sprite->data[0];
|
||||||
u8 battlerId = sprite->data[2];
|
u8 battlerId = sprite->data[2];
|
||||||
u32 r4 = (u16)sprite->data[3] | ((u16)sprite->data[4] << 16);
|
u32 selectedPalettes = (u16)sprite->data[3] | ((u16)sprite->data[4] << 16);
|
||||||
|
|
||||||
if (sprite->subpriority != 0)
|
if (sprite->subpriority != 0)
|
||||||
r5 = sprite->subpriority - 1;
|
subpriority = sprite->subpriority - 1;
|
||||||
else
|
else
|
||||||
r5 = 0;
|
subpriority = 0;
|
||||||
|
|
||||||
StartSpriteAnim(sprite, 1);
|
StartSpriteAnim(sprite, 1);
|
||||||
AnimateBallOpenParticlesForPokeball(sprite->x, sprite->y - 5, sprite->oam.priority, r5);
|
AnimateBallOpenParticlesForPokeball(sprite->x, sprite->y - 5, sprite->oam.priority, subpriority);
|
||||||
sprite->data[1] = LaunchBallFadeMonTaskForPokeball(1, battlerId, r4);
|
sprite->data[1] = LaunchBallFadeMonTaskForPokeball(1, battlerId, selectedPalettes);
|
||||||
sprite->callback = SpriteCB_ReleasedMonFlyOut;
|
sprite->callback = SpriteCB_ReleasedMonFlyOut;
|
||||||
gSprites[r7].invisible = FALSE;
|
gSprites[spriteId].invisible = FALSE;
|
||||||
StartSpriteAffineAnim(&gSprites[r7], BATTLER_AFFINE_EMERGE);
|
StartSpriteAffineAnim(&gSprites[spriteId], BATTLER_AFFINE_EMERGE);
|
||||||
AnimateSprite(&gSprites[r7]);
|
AnimateSprite(&gSprites[spriteId]);
|
||||||
gSprites[r7].data[1] = 0x1000;
|
gSprites[spriteId].data[1] = 0x1000;
|
||||||
sprite->data[7] = 0;
|
sprite->data[7] = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1134,19 +1134,19 @@ static void SpriteCB_TradePokeball(struct Sprite *sprite)
|
|||||||
{
|
{
|
||||||
if (sprite->data[1] == 0)
|
if (sprite->data[1] == 0)
|
||||||
{
|
{
|
||||||
u8 r6;
|
u8 subpriority;
|
||||||
u8 monSpriteId = sprite->data[0];
|
u8 monSpriteId = sprite->data[0];
|
||||||
u8 r8 = sprite->data[2];
|
u8 battlerId = sprite->data[2];
|
||||||
u32 r5 = (u16)sprite->data[3] | ((u16)sprite->data[4] << 16);
|
u32 selectedPalettes = (u16)sprite->data[3] | ((u16)sprite->data[4] << 16);
|
||||||
|
|
||||||
if (sprite->subpriority != 0)
|
if (sprite->subpriority != 0)
|
||||||
r6 = sprite->subpriority - 1;
|
subpriority = sprite->subpriority - 1;
|
||||||
else
|
else
|
||||||
r6 = 0;
|
subpriority = 0;
|
||||||
|
|
||||||
StartSpriteAnim(sprite, 1);
|
StartSpriteAnim(sprite, 1);
|
||||||
AnimateBallOpenParticlesForPokeball(sprite->x, sprite->y - 5, sprite->oam.priority, r6);
|
AnimateBallOpenParticlesForPokeball(sprite->x, sprite->y - 5, sprite->oam.priority, subpriority);
|
||||||
sprite->data[1] = LaunchBallFadeMonTaskForPokeball(1, r8, r5);
|
sprite->data[1] = LaunchBallFadeMonTaskForPokeball(1, battlerId, selectedPalettes);
|
||||||
sprite->callback = SpriteCB_TradePokeballSendOff;
|
sprite->callback = SpriteCB_TradePokeballSendOff;
|
||||||
#ifdef BUGFIX
|
#ifdef BUGFIX
|
||||||
// FIX: If this is used on a sprite that has previously had an affine animation, it will not
|
// FIX: If this is used on a sprite that has previously had an affine animation, it will not
|
||||||
|
@ -5379,10 +5379,10 @@ u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit)
|
|||||||
return offset;
|
return offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void BufferStatRoseMessage(s32 arg0)
|
static void BufferStatRoseMessage(s32 statIdx)
|
||||||
{
|
{
|
||||||
gBattlerTarget = gBattlerInMenuId;
|
gBattlerTarget = gBattlerInMenuId;
|
||||||
StringCopy(gBattleTextBuff1, gStatNamesTable[sStatsToRaise[arg0]]);
|
StringCopy(gBattleTextBuff1, gStatNamesTable[sStatsToRaise[statIdx]]);
|
||||||
StringCopy(gBattleTextBuff2, gText_StatRose);
|
StringCopy(gBattleTextBuff2, gText_StatRose);
|
||||||
BattleStringExpandPlaceholdersToDisplayedString(gText_DefendersStatRose);
|
BattleStringExpandPlaceholdersToDisplayedString(gText_DefendersStatRose);
|
||||||
}
|
}
|
||||||
|
@ -2205,7 +2205,7 @@ static bool32 AreLinkQueuesEmpty(void)
|
|||||||
return !gRfu.recvQueue.count && !gRfu.sendQueue.count;
|
return !gRfu.recvQueue.count && !gRfu.sendQueue.count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int GetNumPlayersForBonus(u8 *arg0)
|
static int GetNumPlayersForBonus(u8 *atJumpPeak)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
int flags = 0;
|
int flags = 0;
|
||||||
@ -2213,7 +2213,7 @@ static int GetNumPlayersForBonus(u8 *arg0)
|
|||||||
|
|
||||||
for (; i < MAX_RFU_PLAYERS; i++)
|
for (; i < MAX_RFU_PLAYERS; i++)
|
||||||
{
|
{
|
||||||
if (arg0[i])
|
if (atJumpPeak[i])
|
||||||
{
|
{
|
||||||
flags |= 1 << i;
|
flags |= 1 << i;
|
||||||
count++;
|
count++;
|
||||||
|
@ -8476,11 +8476,11 @@ static void MultiMove_ClearIconFromBg(u8 x, u8 y)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void MultiMove_InitMove(u16 x, u16 y, u16 arg2)
|
static void MultiMove_InitMove(u16 x, u16 y, u16 moveSteps)
|
||||||
{
|
{
|
||||||
sMultiMove->bgX = x;
|
sMultiMove->bgX = x;
|
||||||
sMultiMove->bgY = y;
|
sMultiMove->bgY = y;
|
||||||
sMultiMove->bgMoveSteps = arg2;
|
sMultiMove->bgMoveSteps = moveSteps;
|
||||||
}
|
}
|
||||||
|
|
||||||
static u8 MultiMove_UpdateMove(void)
|
static u8 MultiMove_UpdateMove(void)
|
||||||
|
@ -332,7 +332,7 @@ u8 *CopyStringLeftAlignedToConditionData(u8 *dst, const u8 *src, s16 n)
|
|||||||
return dst;
|
return dst;
|
||||||
}
|
}
|
||||||
|
|
||||||
static u8 *CopyConditionMonNameGender(u8 *str, u16 listId, bool8 arg3)
|
static u8 *CopyConditionMonNameGender(u8 *str, u16 listId, bool8 skipPadding)
|
||||||
{
|
{
|
||||||
u16 boxId, monId, gender, species, level, lvlDigits;
|
u16 boxId, monId, gender, species, level, lvlDigits;
|
||||||
struct BoxPokemon *boxMon;
|
struct BoxPokemon *boxMon;
|
||||||
@ -412,7 +412,7 @@ static u8 *CopyConditionMonNameGender(u8 *str, u16 listId, bool8 arg3)
|
|||||||
str_ = ConvertIntToDecimalStringN(str_, level, STR_CONV_MODE_LEFT_ALIGN, 3);
|
str_ = ConvertIntToDecimalStringN(str_, level, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||||
lvlDigits = str_ - txtPtr;
|
lvlDigits = str_ - txtPtr;
|
||||||
*(str_++) = CHAR_SPACE;
|
*(str_++) = CHAR_SPACE;
|
||||||
if (!arg3)
|
if (!skipPadding)
|
||||||
{
|
{
|
||||||
lvlDigits = 3 - lvlDigits;
|
lvlDigits = 3 - lvlDigits;
|
||||||
while (lvlDigits-- != 0)
|
while (lvlDigits-- != 0)
|
||||||
|
@ -81,14 +81,11 @@ static const u8 sMovement_FaceUp[] =
|
|||||||
MOVEMENT_ACTION_STEP_END
|
MOVEMENT_ACTION_STEP_END
|
||||||
};
|
};
|
||||||
|
|
||||||
// This file's functions.
|
static void SaveRotatingTileObject(u8, u8);
|
||||||
static void SaveRotatingTileObject(u8 eventTemplateId, u8 arg1);
|
static void TurnUnsavedRotatingTileObject(u8, u8);
|
||||||
static void TurnUnsavedRotatingTileObject(u8 eventTemplateId, u8 arg1);
|
|
||||||
|
|
||||||
// EWRAM vars
|
|
||||||
EWRAM_DATA static struct RotatingTilePuzzle *sRotatingTilePuzzle = NULL;
|
EWRAM_DATA static struct RotatingTilePuzzle *sRotatingTilePuzzle = NULL;
|
||||||
|
|
||||||
// code
|
|
||||||
void InitRotatingTilePuzzle(bool8 isTrickHouse)
|
void InitRotatingTilePuzzle(bool8 isTrickHouse)
|
||||||
{
|
{
|
||||||
if (sRotatingTilePuzzle == NULL)
|
if (sRotatingTilePuzzle == NULL)
|
||||||
|
Loading…
Reference in New Issue
Block a user