Synced src/mon_markings.c and partly synced PSS
This commit is contained in:
@@ -14,8 +14,8 @@ enum
|
||||
void AllocBoxPartyPokemonDropdowns(u8 num);
|
||||
void FreeBoxPartyPokemonDropdowns(void);
|
||||
void CopyAllBoxPartyPokemonDropdownsToVram(void);
|
||||
void SetBoxPartyPokemonDropdownMap2(u8 idx, u8 bgId, const void * src, u16 width, u16 height);
|
||||
void SetBoxPartyPokemonDropdownMap1Tiles(u8 idx, const void * src);
|
||||
void SetBoxPartyPokemonDropdownMap2(u8 idx, u8 bgId, const void *src, u16 width, u16 height);
|
||||
void SetBoxPartyPokemonDropdownMap1Tiles(u8 idx, const void *src);
|
||||
void SetBoxPartyPokemonDropdownMap2Pos(u8 idx, u16 x, u16 y);
|
||||
void SetBoxPartyPokemonDropdownMap2Rect(u8 idx, u16 x, u16 y, u16 width, u16 height);
|
||||
void AdjustBoxPartyPokemonDropdownPos(u8 a0, u8 a1, s8 a2);
|
||||
|
||||
@@ -31,6 +31,6 @@ void EReaderHelper_Timer3Callback(void);
|
||||
void EReaderHelper_SaveRegsState(void);
|
||||
void EReaderHelper_ClearsSendRecvMgr(void);
|
||||
void EReaderHelper_RestoreRegsState(void);
|
||||
u16 EReaderHandleTransfer(u8 mode, size_t size, const void * src, void * dest);
|
||||
u16 EReaderHandleTransfer(u8 mode, size_t size, const void *src, void *dest);
|
||||
|
||||
#endif //GUARD_EREADER_HELPERS_H
|
||||
|
||||
@@ -156,14 +156,14 @@ bool32 RfuUnionObjectIsWarping(u8 objectEventId);
|
||||
u8 GetJumpSpecialMovementAction(u32 direction);
|
||||
void EnableObjectGroundEffectsByXY(s16 x, s16 y);
|
||||
void MoveObjectEventToMapCoords(struct ObjectEvent *objectEvent, s16 x, s16 y);
|
||||
u8 CreateCopySpriteAt(struct Sprite * sprite, s16 x, s16 y, u8 subpriority);
|
||||
u8 CreateCopySpriteAt(struct Sprite *sprite, s16 x, s16 y, u8 subpriority);
|
||||
u16 GetObjectPaletteTag(u8 paletteIndex);
|
||||
void SetSpritePosToMapCoords(s16 x, s16 y, s16 *x2, s16 *y2);
|
||||
void UpdateObjectEventSpriteVisibility(struct Sprite *sprite, bool8 invisible);
|
||||
bool8 AreZCoordsCompatible(u8, u8);
|
||||
u8 ZCoordToPriority(u8 z);
|
||||
void ObjectEventUpdateZCoord(struct ObjectEvent *pObject);
|
||||
void SetObjectSubpriorityByZCoord(u8 z, struct Sprite * sprite, u8 offset);
|
||||
void SetObjectSubpriorityByZCoord(u8 z, struct Sprite *sprite, u8 offset);
|
||||
bool8 IsZCoordMismatchAt(u8, s16, s16);
|
||||
void MakeObjectTemplateFromObjectEventGraphicsInfo(u16 graphicsId, void (*callback)(struct Sprite *), struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables);
|
||||
u8 AddCameraObject(u8 trackedSpriteId);
|
||||
|
||||
@@ -20,12 +20,12 @@ void StartEscalatorWarp(u8 metatileBehavior, u8 priority);
|
||||
void StartLavaridgeGymB1FWarp(u8 a0);
|
||||
void StartLavaridgeGym1FWarp(u8 a0);
|
||||
void ApplyGlobalFieldPaletteTint(u8 paletteIdx);
|
||||
void FreeResourcesAndDestroySprite(struct Sprite * sprite, u8 spriteId);
|
||||
void FreeResourcesAndDestroySprite(struct Sprite *sprite, u8 spriteId);
|
||||
u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, bool8 unused);
|
||||
void ReturnToFieldFromFlyMapSelect(void);
|
||||
void MultiplyInvertedPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b);
|
||||
void SpriteCB_PopOutOfAsh(struct Sprite * sprite);
|
||||
void SpriteCB_AshLaunch(struct Sprite * sprite);
|
||||
void SpriteCB_PopOutOfAsh(struct Sprite *sprite);
|
||||
void SpriteCB_AshLaunch(struct Sprite *sprite);
|
||||
void FieldEffectActiveListClear(void);
|
||||
|
||||
#endif //GUARD_FIELD_EFFECTS_H
|
||||
|
||||
@@ -25,20 +25,20 @@ u8 FindTallGrassFieldEffectSpriteId(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s
|
||||
void ShowWarpArrowSprite(u8 spriteId, u8 direction, s16 x, s16 y);
|
||||
void SetSpriteInvisible(u8 spriteId);
|
||||
void SetSurfBlob_PlayerOffset(u8 spriteId, bool8 hasOffset, s16 offset);
|
||||
void UpdateJumpImpactEffect(struct Sprite * sprite);
|
||||
void UpdateShadowFieldEffect(struct Sprite * sprite);
|
||||
void UpdateBubblesFieldEffect(struct Sprite * sprite);
|
||||
void UpdateSparkleFieldEffect(struct Sprite * sprite);
|
||||
void UpdateTallGrassFieldEffect(struct Sprite * sprite);
|
||||
void WaitFieldEffectSpriteAnim(struct Sprite * sprite);
|
||||
void UpdateAshFieldEffect(struct Sprite * sprite);
|
||||
void UpdateSurfBlobFieldEffect(struct Sprite * sprite);
|
||||
void UpdateFootprintsTireTracksFieldEffect(struct Sprite * sprite);
|
||||
void UpdateSplashFieldEffect(struct Sprite * sprite);
|
||||
void UpdateShortGrassFieldEffect(struct Sprite * sprite);
|
||||
void UpdateLongGrassFieldEffect(struct Sprite * sprite);
|
||||
void UpdateSandPileFieldEffect(struct Sprite * sprite);
|
||||
void UpdateDisguiseFieldEffect(struct Sprite * sprite);
|
||||
void UpdateHotSpringsWaterFieldEffect(struct Sprite * sprite);
|
||||
void UpdateJumpImpactEffect(struct Sprite *sprite);
|
||||
void UpdateShadowFieldEffect(struct Sprite *sprite);
|
||||
void UpdateBubblesFieldEffect(struct Sprite *sprite);
|
||||
void UpdateSparkleFieldEffect(struct Sprite *sprite);
|
||||
void UpdateTallGrassFieldEffect(struct Sprite *sprite);
|
||||
void WaitFieldEffectSpriteAnim(struct Sprite *sprite);
|
||||
void UpdateAshFieldEffect(struct Sprite *sprite);
|
||||
void UpdateSurfBlobFieldEffect(struct Sprite *sprite);
|
||||
void UpdateFootprintsTireTracksFieldEffect(struct Sprite *sprite);
|
||||
void UpdateSplashFieldEffect(struct Sprite *sprite);
|
||||
void UpdateShortGrassFieldEffect(struct Sprite *sprite);
|
||||
void UpdateLongGrassFieldEffect(struct Sprite *sprite);
|
||||
void UpdateSandPileFieldEffect(struct Sprite *sprite);
|
||||
void UpdateDisguiseFieldEffect(struct Sprite *sprite);
|
||||
void UpdateHotSpringsWaterFieldEffect(struct Sprite *sprite);
|
||||
|
||||
#endif //GUARD_FIELD_EFFECT_HELPERS_H
|
||||
|
||||
@@ -13,7 +13,7 @@ u8 GetPlayerMovementDirection(void);
|
||||
u8 PlayerGetCopyableMovement(void);
|
||||
void MovePlayerNotOnBike(u8 direction, u16 heldKeys);
|
||||
|
||||
void MovementType_Player(struct Sprite * sprite);
|
||||
void MovementType_Player(struct Sprite *sprite);
|
||||
void HandleEnforcedLookDirectionOnPlayerStopMoving(void);
|
||||
void StopPlayerAvatar(void);
|
||||
void GetXYCoordsOneStepInFrontOfPlayer(s16 *xPtr, s16 *yPtr);
|
||||
|
||||
+3
-3
@@ -2980,7 +2980,7 @@ extern const u8 gFile_graphics_items_icon_palettes_soda_pop_palette[];
|
||||
extern const u8 gFile_graphics_items_icons_lemonade_sheet[];
|
||||
extern const u8 gFile_graphics_items_icon_palettes_lemonade_palette[];
|
||||
extern const u8 gFile_graphics_items_icons_moomoo_milk_sheet[];
|
||||
extern const u8 gFile_graphics_items_icon_palettes_moomoo_milk_palette[];;
|
||||
extern const u8 gFile_graphics_items_icon_palettes_moomoo_milk_palette[];
|
||||
extern const u8 gFile_graphics_items_icon_palettes_energy_powder_palette[];
|
||||
extern const u8 gFile_graphics_items_icons_energy_root_sheet[];
|
||||
extern const u8 gFile_graphics_items_icon_palettes_energy_root_palette[];
|
||||
@@ -4829,8 +4829,8 @@ extern const u16 gTradeButtons_Gfx[];
|
||||
extern const u16 gTradeMenuMonBox_Tilemap[];
|
||||
|
||||
// mon_markings
|
||||
extern const u16 gUnknown_8E9CBBC[];
|
||||
extern const u16 gUnknown_8E9CB9C[];
|
||||
extern const u16 gMonMarkingsMenu_Gfx[];
|
||||
extern const u16 gMonMarkingsMenu_Pal[];
|
||||
|
||||
// hall_of_fame
|
||||
extern const u32 gFile_graphics_misc_confetti_sheet[];
|
||||
|
||||
@@ -22,7 +22,7 @@ void ItemMenuIcons_MoveInsertIndicatorBar(s16 x, u16 y);
|
||||
void ItemMenuIcons_ToggleInsertIndicatorBarVisibility(bool8 invisible);
|
||||
void SetBagVisualPocketId(u8);
|
||||
void ShakeBagSprite(void);
|
||||
const void * GetItemIconGfxPtr(u16 itemId, u8 ptrId);
|
||||
const void *GetItemIconGfxPtr(u16 itemId, u8 ptrId);
|
||||
void CreateBagOrSatchelSprite(u8 animNum);
|
||||
|
||||
#endif // GUARD_ITEM_MENU_ICONS
|
||||
|
||||
+1
-1
@@ -190,7 +190,7 @@ struct Link
|
||||
|
||||
struct BlockRequest
|
||||
{
|
||||
void * address;
|
||||
void *address;
|
||||
u32 size;
|
||||
};
|
||||
|
||||
|
||||
+1
-1
@@ -221,7 +221,7 @@ void DestroyWirelessStatusIndicatorSprite(void);
|
||||
void MEvent_CreateTask_CardOrNewsWithFriend(u32 arg0);
|
||||
void MEvent_CreateTask_CardOrNewsOverWireless(u32 arg0);
|
||||
void MEvent_CreateTask_Leader(u32 arg0);
|
||||
void Rfu_SendPacket(void * data);
|
||||
void Rfu_SendPacket(void *data);
|
||||
u8 CreateTask_ListenToWireless(void);
|
||||
void LinkRfu_DestroyIdleTask(void);
|
||||
void InitRFUAPI(void);
|
||||
|
||||
@@ -43,9 +43,9 @@ struct MapPreviewScreen
|
||||
u8 mapsec;
|
||||
u8 type;
|
||||
u16 flagId;
|
||||
const void * tilesptr;
|
||||
const void * tilemapptr;
|
||||
const void * palptr;
|
||||
const void *tilesptr;
|
||||
const void *tilemapptr;
|
||||
const void *palptr;
|
||||
};
|
||||
|
||||
u16 MapPreview_CreateMapNameWindow(u8 id);
|
||||
|
||||
+3
-3
@@ -25,7 +25,7 @@ struct MEvent_Str_1
|
||||
{
|
||||
u16 status;
|
||||
size_t size;
|
||||
const void * data;
|
||||
const void *data;
|
||||
};
|
||||
|
||||
struct MEvent_Str_2
|
||||
@@ -63,8 +63,8 @@ void MEvent_WonderCardResetUnk08_6(struct WonderCard * buffer);
|
||||
bool32 MEvent_ReceiveDistributionMon(const u16 * data);
|
||||
void BuildMEventClientHeader(struct MEventClientHeaderStruct * data);
|
||||
bool32 ValidateMEventClientHeader(const struct MEventClientHeaderStruct * data);
|
||||
u32 sub_8144418(const u16 * a0, const struct MEventClientHeaderStruct * a1, void * unused);
|
||||
u32 MEvent_CanPlayerReceiveDistributionMon(const u16 * a0, const struct MEventClientHeaderStruct * a1, void * unused);
|
||||
u32 sub_8144418(const u16 * a0, const struct MEventClientHeaderStruct * a1, void *unused);
|
||||
u32 MEvent_CanPlayerReceiveDistributionMon(const u16 * a0, const struct MEventClientHeaderStruct * a1, void *unused);
|
||||
bool32 sub_8144474(const struct MEventClientHeaderStruct * a0, const u16 * a1);
|
||||
u16 sub_81444B0(const struct MEventClientHeaderStruct * a0, u32 command);
|
||||
bool32 InitWonderCardResources(struct WonderCard * r5, struct WonderCardMetadata * r6);
|
||||
|
||||
+12
-12
@@ -18,8 +18,8 @@ struct mevent_srv_sub
|
||||
u16 sendCounter;
|
||||
u16 sendCRC;
|
||||
u16 sendSize;
|
||||
void * recvBfr;
|
||||
const void * sendBfr;
|
||||
void *recvBfr;
|
||||
const void *sendBfr;
|
||||
u32 (*recvFunc)(struct mevent_srv_sub *);
|
||||
u32 (*sendFunc)(struct mevent_srv_sub *);
|
||||
};
|
||||
@@ -59,10 +59,10 @@ struct mevent_client
|
||||
u32 mainseqno;
|
||||
u32 flag;
|
||||
u32 cmdidx;
|
||||
void * sendBuffer;
|
||||
void * recvBuffer;
|
||||
void *sendBuffer;
|
||||
void *recvBuffer;
|
||||
struct mevent_client_cmd * cmdBuffer;
|
||||
void * buffer;
|
||||
void *buffer;
|
||||
struct mevent_srv_sub manager;
|
||||
};
|
||||
|
||||
@@ -70,7 +70,7 @@ struct mevent_server_cmd
|
||||
{
|
||||
u32 instr;
|
||||
bool32 flag;
|
||||
void * parameter;
|
||||
void *parameter;
|
||||
};
|
||||
|
||||
// Server commands
|
||||
@@ -99,13 +99,13 @@ struct mevent_srv_common
|
||||
u32 mainseqno;
|
||||
u32 cmdidx;
|
||||
const struct mevent_server_cmd * cmdBuffer;
|
||||
void * recvBuffer;
|
||||
void *recvBuffer;
|
||||
struct WonderCard * card;
|
||||
struct WonderNews * news;
|
||||
struct MEventClientHeaderStruct * mevent_unk1442cc;
|
||||
void * sendBuffer1;
|
||||
void *sendBuffer1;
|
||||
u32 sendBuffer1Size;
|
||||
void * sendBuffer2;
|
||||
void *sendBuffer2;
|
||||
u32 sendBuffer2Size;
|
||||
u32 sendWord;
|
||||
struct mevent_srv_sub manager;
|
||||
@@ -114,13 +114,13 @@ struct mevent_srv_common
|
||||
u32 mevent_srv_sub_recv(struct mevent_srv_sub * svr);
|
||||
u32 mevent_srv_sub_send(struct mevent_srv_sub * svr);
|
||||
void mevent_srv_sub_init(struct mevent_srv_sub * svr, u32 sendPlayerNo, u32 recvPlayerNo);
|
||||
void mevent_srv_sub_init_send(struct mevent_srv_sub * svr, u32 ident, const void * src, u32 size);
|
||||
void mevent_srv_sub_init_recv(struct mevent_srv_sub * svr, u32 ident, void * dest);
|
||||
void mevent_srv_sub_init_send(struct mevent_srv_sub * svr, u32 ident, const void *src, u32 size);
|
||||
void mevent_srv_sub_init_recv(struct mevent_srv_sub * svr, u32 ident, void *dest);
|
||||
|
||||
void mevent_client_do_init(void);
|
||||
u32 mevent_client_do_exec(u16 * a0);
|
||||
void mevent_client_inc_flag(void);
|
||||
void * mevent_client_get_buffer(void);
|
||||
void *mevent_client_get_buffer(void);
|
||||
void mevent_client_set_param(u32 a0);
|
||||
void mevent_srv_init_wnews(void);
|
||||
void mevent_srv_new_wcard(void);
|
||||
|
||||
+18
-16
@@ -1,33 +1,35 @@
|
||||
#ifndef GUARD_MON_MARKINGS_H
|
||||
#define GUARD_MON_MARKINGS_H
|
||||
|
||||
struct PokemonMarkMenu
|
||||
#define NUM_MON_MARKINGS 4
|
||||
|
||||
struct MonMarkingsMenu
|
||||
{
|
||||
/*0x0000*/ u16 baseTileTag;
|
||||
/*0x0002*/ u16 basePaletteTag;
|
||||
/*0x0004*/ u8 markings; // bit flags
|
||||
/*0x0005*/ s8 cursorPos;
|
||||
/*0x0006*/ bool8 markingsArray[4];
|
||||
/*0x0006*/ bool8 markingsArray[NUM_MON_MARKINGS];
|
||||
/*0x000A*/ u8 cursorBaseY;
|
||||
/*0x000B*/ bool8 spriteSheetLoadRequired;
|
||||
/*0x000C*/ struct Sprite * menuWindowSprites[2]; // upper and lower halves of menu window
|
||||
/*0x0014*/ struct Sprite * menuMarkingSprites[4];
|
||||
/*0x0024*/ struct Sprite * unkSprite;
|
||||
/*0x0028*/ struct Sprite * menuTextSprite;
|
||||
/*0x000C*/ struct Sprite *windowSprites[2]; // upper and lower halves of menu window
|
||||
/*0x0014*/ struct Sprite *markingSprites[NUM_MON_MARKINGS];
|
||||
/*0x0024*/ struct Sprite *cursorSprite;
|
||||
/*0x0028*/ struct Sprite *textSprite;
|
||||
/*0x002C*/ const u8 *frameTiles;
|
||||
/*0x0030*/ const u16 *framePalette;
|
||||
/*0x0034*/ u8 menuWindowSpriteTiles[0x1000];
|
||||
/*0x1034*/ u8 filler1034[0x80];
|
||||
/*0x0034*/ u8 windowSpriteTiles[0x1000];
|
||||
/*0x1034*/ u8 unused[0x80];
|
||||
/*0x10B4*/ u8 tileLoadState;
|
||||
}; // 10b8
|
||||
|
||||
void SetMonMarkingsMenuPointer(struct PokemonMarkMenu * markMenu);
|
||||
void LoadMonMarkingsFrameGfx(void);
|
||||
void DrawMonMarkingsMenu(u8 markings, s16 x, s16 y);
|
||||
void TeardownMonMarkingsMenu(void);
|
||||
bool8 MonMarkingsHandleInput(void);
|
||||
struct Sprite * CreateMonMarkingSprite_SelectCombo(u16 tileTag, u16 paletteTag, const u16 *palette);
|
||||
struct Sprite * CreateMonMarkingSprite_AllOff(u16 tileTag, u16 paletteTag, const u16 *palette);
|
||||
void RequestDma3LoadMonMarking(u8 markings, void * dest);
|
||||
void InitMonMarkingsMenu(struct MonMarkingsMenu *ptr);
|
||||
void BufferMonMarkingsMenuTiles(void);
|
||||
void OpenMonMarkingsMenu(u8 markings, s16 x, s16 y);
|
||||
void FreeMonMarkingsMenu(void);
|
||||
bool8 HandleMonMarkingsMenuInput(void);
|
||||
struct Sprite *CreateMonMarkingAllCombosSprite(u16 tileTag, u16 paletteTag, const u16 *palette);
|
||||
struct Sprite *CreateMonMarkingComboSprite(u16 tileTag, u16 paletteTag, const u16 *palette);
|
||||
void UpdateMonMarkingTiles(u8 markings, void *dest);
|
||||
|
||||
#endif //GUARD_MON_MARKINGS_H
|
||||
|
||||
@@ -14,7 +14,7 @@ void *DecompressAndCopyTileDataToVram(u8 bgId, const void *src, u32 size, u16 of
|
||||
void *DecompressAndCopyTileDataToVram2(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
|
||||
void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
|
||||
void DecompressAndLoadBgGfxUsingHeap2(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
|
||||
void * MallocAndDecompress(const void * src, u32 * size);
|
||||
void *MallocAndDecompress(const void *src, u32 * size);
|
||||
void SetBgTilemapPalette(u8 bgId, u8 left, u8 top, u8 width, u8 height, u8 palette);
|
||||
void CopyToBufferFromBgTilemap(u8 bgId, u16 *dest, u8 left, u8 top, u8 width, u8 height);
|
||||
void ResetBgPositions(void);
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
struct PAM_TaskData
|
||||
{
|
||||
struct SubspriteTable subsprites;
|
||||
void * buffer;
|
||||
void *buffer;
|
||||
u8 unk_0C;
|
||||
u8 spr_id;
|
||||
u16 tilesTag;
|
||||
|
||||
@@ -19,10 +19,10 @@ void DestroyMonIcon(struct Sprite *);
|
||||
u16 GetUnownLetterByPersonality(u32 personality);
|
||||
void SpriteCB_MonIcon(struct Sprite *);
|
||||
u8 CreateMonIcon(u16 species, SpriteCallback callback, s16 x, s16 y, u8 subpriority, u32 personality, bool32 extra);
|
||||
u8 UpdateMonIconFrame(struct Sprite * sprite);
|
||||
u8 UpdateMonIconFrame(struct Sprite *sprite);
|
||||
void LoadMonIconPalette(u16 iconId);
|
||||
void FreeMonIconPalette(u16 iconId);
|
||||
void SetPartyHPBarSprite(struct Sprite * sprite, u8 animNum);
|
||||
void SetPartyHPBarSprite(struct Sprite *sprite, u8 animNum);
|
||||
u8 GetMonIconPaletteIndexFromSpecies(u16 species);
|
||||
u16 GetIconSpecies(u16 species, u32 personality);
|
||||
void LoadMonIconPalettesAt(u16 offset);
|
||||
|
||||
@@ -25,8 +25,8 @@ struct PokemonSpecialAnimScene
|
||||
u16 monSpriteY1;
|
||||
u16 monSpriteY2;
|
||||
u8 lastCloseness;
|
||||
struct Sprite * monSprite;
|
||||
struct Sprite * itemIconSprite;
|
||||
struct Sprite *monSprite;
|
||||
struct Sprite *itemIconSprite;
|
||||
u8 textBuf[0x900];
|
||||
u8 field_0914[BG_SCREEN_SIZE];
|
||||
u8 field_1114[BG_SCREEN_SIZE];
|
||||
|
||||
@@ -26,6 +26,7 @@ enum
|
||||
WALLPAPER_PLAIN,
|
||||
WALLPAPER_COUNT
|
||||
};
|
||||
#define MAX_DEFAULT_WALLPAPER WALLPAPER_SAVANNA
|
||||
|
||||
u8 *GetBoxNamePtr(u8 boxNumber);
|
||||
struct BoxPokemon *GetBoxedMonPtr(u8 boxId, u8 monPosition);
|
||||
|
||||
@@ -7,8 +7,15 @@
|
||||
#define IN_BOX_COLUMNS 5
|
||||
#define IN_BOX_ROWS 6
|
||||
|
||||
#define MAX_MON_ICONS 40
|
||||
// The maximum number of Pokémon icons that can appear on-screen.
|
||||
// By default the limit is 40 (though in practice only 37 can be).
|
||||
#define MAX_MON_ICONS (IN_BOX_COUNT + PARTY_SIZE + 1 >= 40 ? IN_BOX_COUNT + PARTY_SIZE + 1 : 40)
|
||||
|
||||
// The maximum number of item icons that can appear on-screen while
|
||||
// moving held items. 1 in the cursor, and 2 more while switching
|
||||
// between 2 Pokémon with held items
|
||||
#define MAX_ITEM_ICONS 3
|
||||
|
||||
#define MAX_MENU_ITEMS 7
|
||||
|
||||
enum
|
||||
@@ -167,19 +174,19 @@ struct StorageAction
|
||||
u8 format;
|
||||
};
|
||||
|
||||
struct UnkPSSStruct_2002370
|
||||
struct ChooseBoxMenu
|
||||
{
|
||||
struct Sprite *unk_0000;
|
||||
struct Sprite *unk_0004[4];
|
||||
u32 unk_0014[3]; // unused
|
||||
struct Sprite *unk_0020[2];
|
||||
struct Sprite *menuSprite;
|
||||
struct Sprite *menuSideSprites[4];
|
||||
u32 unused1[3];
|
||||
struct Sprite *arrowSprites[2];
|
||||
u8 buffer[0x200]; // passed but not used
|
||||
u8 strbuf[20];
|
||||
bool32 loadPal;
|
||||
u16 tilesTag;
|
||||
bool32 loadedPalette;
|
||||
u16 tileTag;
|
||||
u16 paletteTag;
|
||||
u8 curBox;
|
||||
u8 unk_0245; // unused
|
||||
u8 unused3;
|
||||
u8 subpriority;
|
||||
};
|
||||
|
||||
@@ -189,19 +196,19 @@ struct StorageMenu
|
||||
int textId;
|
||||
};
|
||||
|
||||
struct UnkStruct_2000028
|
||||
struct UnkUtilData
|
||||
{
|
||||
const u8 *unk_00;
|
||||
u8 *unk_04;
|
||||
u16 unk_08;
|
||||
u16 unk_0a;
|
||||
u16 newField;
|
||||
void (*unk_0c)(struct UnkStruct_2000028 *data);
|
||||
void (*unk_0c)(struct UnkUtilData *data);
|
||||
};
|
||||
|
||||
struct UnkStruct_2000020
|
||||
struct UnkUtil
|
||||
{
|
||||
struct UnkStruct_2000028 *unk_00;
|
||||
struct UnkUtilData *unk_00;
|
||||
u8 unk_04;
|
||||
u8 unk_05;
|
||||
};
|
||||
@@ -231,115 +238,115 @@ struct PokemonStorageSystemData
|
||||
u8 screenChangeType;
|
||||
bool8 isReshowingPSS;
|
||||
u8 taskId;
|
||||
struct UnkStruct_2000020 unk_0020;
|
||||
struct UnkStruct_2000028 unk_0028[8];
|
||||
u16 field_B0[528 / 2];
|
||||
u16 field_2C0;
|
||||
u16 field_2C2;
|
||||
u8 field_2C4;
|
||||
u8 field_2C5;
|
||||
struct UnkUtil unkUtil;
|
||||
struct UnkUtilData unkUtilData[8];
|
||||
u16 partyMenuTilemapBuffer[0x108];
|
||||
u16 partyMenuUnused1; // Never read
|
||||
u16 partyMenuY;
|
||||
u8 partyMenuUnused2; // Unused
|
||||
u8 partyMenuMoveTimer;
|
||||
u8 showPartyMenuState;
|
||||
bool8 unk_02C7;
|
||||
u8 unk_02C8;
|
||||
bool8 unk_02C9;
|
||||
bool8 closeBoxFlashing;
|
||||
u8 closeBoxFlashTimer;
|
||||
bool8 closeBoxFlashState;
|
||||
s16 newCurrBoxId;
|
||||
u16 bg2_X;
|
||||
s16 field_2CE;
|
||||
u16 field_2D0;
|
||||
u8 field_2D2;
|
||||
u8 field_2D3;
|
||||
u8 field_2D4;
|
||||
u16 field_2D6;
|
||||
s16 field_2D8;
|
||||
u16 field_2DA;
|
||||
u16 field_2DC;
|
||||
u16 field_2DE;
|
||||
u16 field_2E0;
|
||||
u8 filler[22];
|
||||
s16 scrollSpeed;
|
||||
u16 scrollTimer;
|
||||
u8 wallpaperOffset;
|
||||
u8 scrollUnused1; // Never read
|
||||
u8 scrollToBoxIdUnused; // Never read
|
||||
u16 scrollUnused2; // Never read
|
||||
s16 scrollDirectionUnused; // Never read.
|
||||
u16 scrollUnused3; // Never read
|
||||
u16 scrollUnused4; // Never read
|
||||
u16 scrollUnused5; // Never read
|
||||
u16 scrollUnused6; // Never read
|
||||
u8 filler1[22];
|
||||
u8 field_2F8[512];
|
||||
u8 field_4F8[512];
|
||||
u8 field_6F8;
|
||||
u8 field_6F9;
|
||||
u8 field_6FA;
|
||||
s8 field_6FB;
|
||||
u16 field_6FC[16];
|
||||
u16 field_71C;
|
||||
u16 field_71E;
|
||||
struct Sprite *field_720[2];
|
||||
struct Sprite *field_728[2];
|
||||
struct Sprite *field_730[2];
|
||||
u32 field_738;
|
||||
u8 field_73C[80];
|
||||
u16 field_78C;
|
||||
u8 boxTitleCycleId;
|
||||
u8 wallpaperLoadState; // Written to, but never read.
|
||||
u8 wallpaperLoadBoxId;
|
||||
s8 wallpaperLoadDir;
|
||||
u16 boxTitlePal[16];
|
||||
u16 boxTitlePalOffset;
|
||||
u16 boxTitleAltPalOffset;
|
||||
struct Sprite *curBoxTitleSprites[2];
|
||||
struct Sprite *nextBoxTitleSprites[2];
|
||||
struct Sprite *arrowSprites[2];
|
||||
u32 wallpaperPalBits;
|
||||
u8 filler2[80]; // Unused
|
||||
u16 unkUnused1; // Never read.
|
||||
s16 wallpaperSetId;
|
||||
s16 wallpaperId;
|
||||
u16 field_792[360];
|
||||
u16 wallpaperTilemap[360];
|
||||
u8 wallpaperChangeState;
|
||||
u8 field_A63;
|
||||
u8 field_A64;
|
||||
s8 field_A65;
|
||||
u8 scrollState;
|
||||
u8 scrollToBoxId;
|
||||
s8 scrollDirection;
|
||||
// u8 *wallpaperTiles; // used only in Emerald for Walda
|
||||
/* 0a68 */ struct Sprite *movingMonSprite;
|
||||
/* 0a6c */ struct Sprite *partySprites[PARTY_SIZE];
|
||||
/* 0a84 */ struct Sprite *boxMonsSprites[IN_BOX_COUNT];
|
||||
/* 0afc */ struct Sprite **field_B00;
|
||||
/* 0b00 */ struct Sprite **field_B04;
|
||||
/* 0b04 */ u16 field_B08[MAX_MON_ICONS];
|
||||
/* 0b54 */ u16 field_B58[MAX_MON_ICONS];
|
||||
/* 0afc */ struct Sprite **shiftMonSpritePtr;
|
||||
/* 0b00 */ struct Sprite **releaseMonSpritePtr;
|
||||
/* 0b04 */ u16 numIconsPerSpecies[MAX_MON_ICONS];
|
||||
/* 0b54 */ u16 iconSpeciesList[MAX_MON_ICONS];
|
||||
/* 0ba4 */ u16 boxSpecies[IN_BOX_COUNT];
|
||||
/* 0be0 */ u32 boxPersonalities[IN_BOX_COUNT];
|
||||
/* 0c58 */ u8 field_C5C;
|
||||
/* 0c59 */ u8 field_C5D;
|
||||
/* 0c5a */ u8 field_C5E;
|
||||
/* 0c5c */ u16 field_C60;
|
||||
/* 0c5e */ s16 field_C62;
|
||||
/* 0c60 */ s16 field_C64;
|
||||
/* 0c62 */ u16 field_C66;
|
||||
/* 0c64 */ u8 field_C68;
|
||||
/* 0c65 */ s8 field_C69;
|
||||
/* 0c66 */ u8 field_C6A;
|
||||
/* 0c67 */ u8 field_C6B;
|
||||
/* 0c58 */ u8 incomingBoxId;
|
||||
/* 0c59 */ u8 shiftTimer;
|
||||
/* 0c5a */ u8 numPartyToCompact;
|
||||
/* 0c5c */ u16 iconScrollDistance;
|
||||
/* 0c5e */ s16 iconScrollPos;
|
||||
/* 0c60 */ s16 iconScrollSpeed;
|
||||
/* 0c62 */ u16 iconScrollNumIncoming;
|
||||
/* 0c64 */ u8 iconScrollCurColumn;
|
||||
/* 0c65 */ s8 iconScrollDirection; // Unnecessary duplicate of scrollDirection
|
||||
/* 0c66 */ u8 iconScrollState;
|
||||
/* 0c67 */ u8 iconScrollToBoxId; // Unused duplicate of scrollToBoxId
|
||||
/* 0c68 */ struct WindowTemplate menuWindow;
|
||||
/* 0c70 */ struct StorageMenu menuItems[MAX_MENU_ITEMS];
|
||||
/* 0ca8 */ u8 menuItemsCount;
|
||||
/* 0ca9 */ u8 menuWidth;
|
||||
/* 0caa */ u8 field_CAE;
|
||||
/* 0cac */ u16 field_CB0;
|
||||
/* 0cb0 */ struct Sprite *field_CB4;
|
||||
/* 0cb4 */ struct Sprite *field_CB8;
|
||||
/* 0cb8 */ s32 field_CBC;
|
||||
/* 0cbc */ s32 field_CC0;
|
||||
/* 0cc0 */ u32 field_CC4;
|
||||
/* 0cc4 */ u32 field_CC8;
|
||||
/* 0cc8 */ s16 field_CCC;
|
||||
/* 0cca */ s16 field_CCE;
|
||||
/* 0ccc */ u16 field_CD0;
|
||||
/* 0cce */ s8 field_CD2;
|
||||
/* 0ccf */ s8 field_CD3;
|
||||
/* 0cd0 */ u8 field_CD4;
|
||||
/* 0cd1 */ u8 field_CD5;
|
||||
/* 0cd2 */ u8 field_CD6;
|
||||
/* 0cd3 */ u8 field_CD7;
|
||||
/* 0cd4 */ u8 field_CD8[2];
|
||||
/* 0cd8 */ const u32 *cursorMonPalette;
|
||||
/* 0cdc */ u32 cursorMonPersonality;
|
||||
/* 0ce0 */ u16 cursorMonSpecies;
|
||||
/* 0ce2 */ u16 cursorMonItem;
|
||||
/* 0ce4 */ u16 field_CE8;
|
||||
/* 0caa */ u8 menuUnusedField; // Never read.
|
||||
/* 0cac */ u16 menuWindowId;
|
||||
/* 0cb0 */ struct Sprite *cursorSprite;
|
||||
/* 0cb4 */ struct Sprite *cursorShadowSprite;
|
||||
/* 0cb8 */ s32 cursorNewX;
|
||||
/* 0cbc */ s32 cursorNewY;
|
||||
/* 0cc0 */ u32 cursorSpeedX;
|
||||
/* 0cc4 */ u32 cursorSpeedY;
|
||||
/* 0cc8 */ s16 cursorTargetX;
|
||||
/* 0cca */ s16 cursorTargetY;
|
||||
/* 0ccc */ u16 cursorMoveSteps;
|
||||
/* 0cce */ s8 cursorVerticalWrap;
|
||||
/* 0ccf */ s8 cursorHorizontalWrap;
|
||||
/* 0cd0 */ u8 newCursorArea;
|
||||
/* 0cd1 */ u8 newCursorPosition;
|
||||
/* 0cd2 */ u8 cursorPrevHorizPos;
|
||||
/* 0cd3 */ u8 cursorFlipTimer;
|
||||
/* 0cd4 */ u8 cursorPalNums[2];
|
||||
/* 0cd8 */ const u32 *displayMonPalette;
|
||||
/* 0cdc */ u32 displayMonPersonality;
|
||||
/* 0ce0 */ u16 displayMonSpecies;
|
||||
/* 0ce2 */ u16 displayMonItemId;
|
||||
/* 0ce4 */ u16 displayUnusedVar;
|
||||
/* 0ce6 */ bool8 setMosaic;
|
||||
/* 0ce7 */ u8 cursorMonMarkings;
|
||||
/* 0ce8 */ u8 cursorMonLevel;
|
||||
/* 0ce9 */ bool8 cursorMonIsEgg;
|
||||
/* 0cea */ u8 cursorMonNick[POKEMON_NAME_LENGTH + 1];
|
||||
/* 0cf5 */ u8 cursorMonTexts[4][36];
|
||||
/* 0ce7 */ u8 displayMonMarkings;
|
||||
/* 0ce8 */ u8 displayMonLevel;
|
||||
/* 0ce9 */ bool8 displayMonIsEgg;
|
||||
/* 0cea */ u8 displayMonName[POKEMON_NAME_LENGTH + 1];
|
||||
/* 0cf5 */ u8 displayMonTexts[4][36];
|
||||
/* 0d88 */ bool8 (*monPlaceChangeFunc)(void);
|
||||
/* 0d8c */ u8 monPlaceChangeState;
|
||||
/* 0d8d */ u8 field_D91;
|
||||
/* 0d90 */ struct Sprite *monMarkingSprite;
|
||||
/* 0d94 */ struct Sprite *field_D98[2];
|
||||
/* 0d9c */ u16 *monMarkingSpriteTileStart;
|
||||
/* 0da0 */ struct PokemonMarkMenu field_DA4;
|
||||
/* 1e58 */ struct UnkPSSStruct_2002370 field_1E5C;
|
||||
/* 0d8d */ u8 shiftBoxId;
|
||||
/* 0d90 */ struct Sprite *markingComboSprite;
|
||||
/* 0d94 */ struct Sprite *waveformSprites[2];
|
||||
/* 0d9c */ u16 *markingComboTilesPtr;
|
||||
/* 0da0 */ struct MonMarkingsMenu markMenu;
|
||||
/* 1e58 */ struct ChooseBoxMenu field_1E5C;
|
||||
/* 20a0 */ struct Pokemon movingMon;
|
||||
/* 2104 */ struct Pokemon field_2108;
|
||||
/* 2168 */ u8 field_216C;
|
||||
@@ -392,12 +399,12 @@ void SetCurrentBox(u8 boxId);
|
||||
void BoxMonAtToMon(u8 boxId, u8 boxPosition, struct Pokemon * dst);
|
||||
void SetBoxMonAt(u8 boxId, u8 boxPosition, struct BoxPokemon * src);
|
||||
|
||||
void Cb2_ExitPSS(void);
|
||||
void CB2_ExitPokeStorage(void);
|
||||
void FreeBoxSelectionPopupSpriteGfx(void);
|
||||
void sub_808C940(u8 curBox);
|
||||
void sub_808C950(void);
|
||||
u8 HandleBoxChooseSelectionInput(void);
|
||||
void LoadBoxSelectionPopupSpriteGfx(struct UnkPSSStruct_2002370 *a0, u16 tileTag, u16 palTag, u8 a3, bool32 loadPal);
|
||||
void LoadChooseBoxMenuGfx(struct ChooseBoxMenu *a0, u16 tileTag, u16 palTag, u8 a3, bool32 loadPal);
|
||||
void SetCurrentBoxMonData(u8 boxPosition, s32 request, const void *value);
|
||||
u32 GetCurrentBoxMonData(u8 boxPosition, s32 request);
|
||||
u32 GetAndCopyBoxMonDataAt(u8 boxId, u8 boxPosition, s32 request, void *dst);
|
||||
@@ -438,7 +445,7 @@ const u8 *GetMovingItemName(void);
|
||||
void sub_80966F4(void);
|
||||
bool8 sub_8096728(void);
|
||||
bool8 sub_80967C0(void);
|
||||
void sub_8096BE4(struct UnkStruct_2000020 *arg0, struct UnkStruct_2000028 *arg1, u32 arg2);
|
||||
void sub_8096BE4(struct UnkUtil *arg0, struct UnkUtilData *arg1, u32 arg2);
|
||||
void sub_8096BF8(void);
|
||||
void AddMenu(void);
|
||||
bool8 CanMovePartyMon(void);
|
||||
@@ -475,7 +482,7 @@ bool8 IsCursorOnBox(void);
|
||||
bool8 IsCursorInBox(void);
|
||||
|
||||
void sub_808FFAC(void);
|
||||
struct Sprite * CreateMonIconSprite(u16 species, u32 pid, s16 x, s16 y, u8 priority, u8 subpriority);
|
||||
struct Sprite *CreateMonIconSprite(u16 species, u32 pid, s16 x, s16 y, u8 priority, u8 subpriority);
|
||||
void CreatePartyMonsSprites(bool8 species);
|
||||
void sub_80909F4(void);
|
||||
bool8 sub_8090A60(void);
|
||||
|
||||
+1
-1
@@ -85,7 +85,7 @@ void sub_81113E4(void);
|
||||
void sub_8111438(void);
|
||||
void StartRecordingQuestLogEntry(u16 eventId);
|
||||
bool8 WillCommandOfSizeFitInSav1Record(u16 *cursor, size_t size);
|
||||
bool8 sub_8110944(const void * a0, size_t cmdSize);
|
||||
bool8 sub_8110944(const void *a0, size_t cmdSize);
|
||||
|
||||
void sub_8113BD8(void);
|
||||
void ResetUnk203B044(void);
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
|
||||
struct TextWindowGraphics
|
||||
{
|
||||
const void * tiles;
|
||||
const void * palette;
|
||||
const void *tiles;
|
||||
const void *palette;
|
||||
};
|
||||
|
||||
extern const u16 gUnknown_8470B0C[];
|
||||
@@ -14,6 +14,6 @@ extern const u16 gUnknown_8471DEC[][16];
|
||||
|
||||
extern const struct TextWindowGraphics gUserFrames[];
|
||||
|
||||
const struct TextWindowGraphics * GetUserFrameGraphicsInfo(u8 idx);
|
||||
const struct TextWindowGraphics *GetWindowFrameTilesPal(u8 idx);
|
||||
|
||||
#endif //GUARD_TEXT_WINDOW_GRAPHICS_H
|
||||
|
||||
@@ -918,7 +918,7 @@ static void rfu_LMAN_REQ_callback(u16 reqCommandId, u16 reqResult)
|
||||
{
|
||||
lman.reserveDisconnectSlot_flag = 0;
|
||||
lman.acceptCount = 0;
|
||||
lman.acceptSlot_flag = 0;;
|
||||
lman.acceptSlot_flag = 0;
|
||||
lman.parent_child = MODE_NEUTRAL;
|
||||
rfu_LMAN_managerChangeAgbClockMaster();
|
||||
if (reqCommandId == ID_STOP_MODE_REQ)
|
||||
|
||||
@@ -12,15 +12,15 @@ static void AnimTask_ShakeMon2Step(u8 taskId);
|
||||
static void AnimTask_ShakeMonInPlaceStep(u8 taskId);
|
||||
static void AnimTask_ShakeAndSinkMonStep(u8 taskId);
|
||||
static void AnimTask_TranslateMonEllipticalStep(u8 taskId);
|
||||
static void DoHorizontalLunge(struct Sprite * sprite);
|
||||
static void ReverseHorizontalLungeDirection(struct Sprite * sprite);
|
||||
static void DoVerticalDip(struct Sprite * sprite);
|
||||
static void ReverseVerticalDipDirection(struct Sprite * sprite);
|
||||
static void SlideMonToOriginalPos(struct Sprite * sprite);
|
||||
static void SlideMonToOriginalPosStep(struct Sprite * sprite);
|
||||
static void SlideMonToOffset(struct Sprite * sprite);
|
||||
static void sub_8099394(struct Sprite * sprite);
|
||||
static void sub_809946C(struct Sprite * sprite);
|
||||
static void DoHorizontalLunge(struct Sprite *sprite);
|
||||
static void ReverseHorizontalLungeDirection(struct Sprite *sprite);
|
||||
static void DoVerticalDip(struct Sprite *sprite);
|
||||
static void ReverseVerticalDipDirection(struct Sprite *sprite);
|
||||
static void SlideMonToOriginalPos(struct Sprite *sprite);
|
||||
static void SlideMonToOriginalPosStep(struct Sprite *sprite);
|
||||
static void SlideMonToOffset(struct Sprite *sprite);
|
||||
static void sub_8099394(struct Sprite *sprite);
|
||||
static void sub_809946C(struct Sprite *sprite);
|
||||
static void AnimTask_WindUpLungePart1(u8 taskId);
|
||||
static void AnimTask_WindUpLungePart2(u8 taskId);
|
||||
static void sub_80996B8(u8 taskId);
|
||||
@@ -383,7 +383,7 @@ void AnimTask_TranslateMonEllipticalRespectSide(u8 taskId)
|
||||
// horizontally, and then moves back in the opposite direction.
|
||||
// arg 0: duration of single lunge direction
|
||||
// arg 1: x pixel delta that is applied each frame
|
||||
static void DoHorizontalLunge(struct Sprite * sprite)
|
||||
static void DoHorizontalLunge(struct Sprite *sprite)
|
||||
{
|
||||
sprite->invisible = TRUE;
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
@@ -398,7 +398,7 @@ static void DoHorizontalLunge(struct Sprite * sprite)
|
||||
sprite->callback = TranslateMonSpriteLinear;
|
||||
}
|
||||
|
||||
static void ReverseHorizontalLungeDirection(struct Sprite * sprite)
|
||||
static void ReverseHorizontalLungeDirection(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[0] = sprite->data[4];
|
||||
sprite->data[1] = -sprite->data[1];
|
||||
@@ -411,7 +411,7 @@ static void ReverseHorizontalLungeDirection(struct Sprite * sprite)
|
||||
// arg 0: duration of single dip direction
|
||||
// arg 1: y pixel delta that is applied each frame
|
||||
// arg 2: battler
|
||||
static void DoVerticalDip(struct Sprite * sprite)
|
||||
static void DoVerticalDip(struct Sprite *sprite)
|
||||
{
|
||||
u8 spriteId;
|
||||
sprite->invisible = TRUE;
|
||||
@@ -425,7 +425,7 @@ static void DoVerticalDip(struct Sprite * sprite)
|
||||
sprite->callback = TranslateMonSpriteLinear;
|
||||
}
|
||||
|
||||
static void ReverseVerticalDipDirection(struct Sprite * sprite)
|
||||
static void ReverseVerticalDipDirection(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[0] = sprite->data[4];
|
||||
sprite->data[2] = -sprite->data[2];
|
||||
@@ -438,7 +438,7 @@ static void ReverseVerticalDipDirection(struct Sprite * sprite)
|
||||
// arg 0: 1 = target or 0 = attacker
|
||||
// arg 1: direction (0 = horizontal and vertical, 1 = horizontal only, 2 = vertical only)
|
||||
// arg 2: duration
|
||||
static void SlideMonToOriginalPos(struct Sprite * sprite)
|
||||
static void SlideMonToOriginalPos(struct Sprite *sprite)
|
||||
{
|
||||
u8 spriteId;
|
||||
if (gBattleAnimArgs[0] == 0)
|
||||
@@ -465,7 +465,7 @@ static void SlideMonToOriginalPos(struct Sprite * sprite)
|
||||
sprite->callback = SlideMonToOriginalPosStep;
|
||||
}
|
||||
|
||||
static void SlideMonToOriginalPosStep(struct Sprite * sprite)
|
||||
static void SlideMonToOriginalPosStep(struct Sprite *sprite)
|
||||
{
|
||||
u8 data7 = sprite->data[7];
|
||||
struct Sprite *otherSprite = &gSprites[sprite->data[7] >> 8];
|
||||
@@ -495,7 +495,7 @@ static void SlideMonToOriginalPosStep(struct Sprite * sprite)
|
||||
// arg 2: target y pixel offset
|
||||
// arg 3: mirror vertical translation for opposite battle side
|
||||
// arg 4: duration
|
||||
static void SlideMonToOffset(struct Sprite * sprite)
|
||||
static void SlideMonToOffset(struct Sprite *sprite)
|
||||
{
|
||||
u8 battlerId;
|
||||
u8 spriteId;
|
||||
@@ -524,7 +524,7 @@ static void SlideMonToOffset(struct Sprite * sprite)
|
||||
sprite->callback = TranslateMonSpriteLinearFixedPoint;
|
||||
}
|
||||
|
||||
static void sub_8099394(struct Sprite * sprite)
|
||||
static void sub_8099394(struct Sprite *sprite)
|
||||
{
|
||||
u8 battlerId;
|
||||
u8 spriteId;
|
||||
@@ -557,7 +557,7 @@ static void sub_8099394(struct Sprite * sprite)
|
||||
sprite->callback = TranslateMonSpriteLinearFixedPoint;
|
||||
}
|
||||
|
||||
static void sub_809946C(struct Sprite * sprite)
|
||||
static void sub_809946C(struct Sprite *sprite)
|
||||
{
|
||||
gSprites[sprite->data[5]].x2 = 0;
|
||||
gSprites[sprite->data[5]].y2 = 0;
|
||||
|
||||
@@ -151,19 +151,19 @@ enum
|
||||
HEALTHBOX_GFX_117, //unknown_D1300C
|
||||
};
|
||||
|
||||
static void SpriteCB_HealthBoxOther(struct Sprite * sprite);
|
||||
static void SpriteCB_HealthBar(struct Sprite * sprite);
|
||||
static void SpriteCB_HealthBoxOther(struct Sprite *sprite);
|
||||
static void SpriteCB_HealthBar(struct Sprite *sprite);
|
||||
static const u8 *GetHealthboxElementGfxPtr(u8 which);
|
||||
static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent);
|
||||
static void sub_8049388(u8 taskId);
|
||||
static void sub_80493E4(u8 taskId);
|
||||
static void sub_8049568(struct Sprite * sprite);
|
||||
static void sub_8049630(struct Sprite * sprite);
|
||||
static void sub_8049568(struct Sprite *sprite);
|
||||
static void sub_8049630(struct Sprite *sprite);
|
||||
static void sub_804948C(u8 taskId);
|
||||
static void SpriteCB_StatusSummaryBallsOnSwitchout(struct Sprite * sprite);
|
||||
static void SpriteCB_StatusSummaryBallsOnSwitchout(struct Sprite *sprite);
|
||||
static void UpdateStatusIconInHealthbox(u8 spriteId);
|
||||
static void SpriteCB_StatusSummaryBar(struct Sprite * sprite);
|
||||
static void SpriteCB_StatusSummaryBallsOnBattleStart(struct Sprite * sprite);
|
||||
static void SpriteCB_StatusSummaryBar(struct Sprite *sprite);
|
||||
static void SpriteCB_StatusSummaryBallsOnBattleStart(struct Sprite *sprite);
|
||||
static u8 GetStatusIconForBattlerId(u8 statusElementId, u8 battlerId);
|
||||
static void MoveBattleBarGraphically(u8 battlerId, u8 whichBar);
|
||||
static u8 GetScaledExpFraction(s32 oldValue, s32 receivedValue, s32 maxValue, u8 scale);
|
||||
|
||||
@@ -205,19 +205,19 @@ static void ClearWindowCommitAndRemove(u8 windowId)
|
||||
static void ResetGpu(void)
|
||||
{
|
||||
{
|
||||
void * dest = (void *)VRAM;
|
||||
void *dest = (void *)VRAM;
|
||||
u32 size = VRAM_SIZE;
|
||||
DmaClearLarge16(3, dest, size, 0x1000);
|
||||
}
|
||||
|
||||
{
|
||||
void * dest = (void *)OAM;
|
||||
void *dest = (void *)OAM;
|
||||
u32 size = OAM_SIZE;
|
||||
DmaClear32(3, dest, size);
|
||||
}
|
||||
|
||||
{
|
||||
void * dest = (void *)PLTT;
|
||||
void *dest = (void *)PLTT;
|
||||
u32 size = PLTT_SIZE;
|
||||
DmaClear16(3, dest, size);
|
||||
}
|
||||
|
||||
+10
-10
@@ -387,10 +387,10 @@ static void DrawPlayerNameWindows(struct BerryCrushGame * game);
|
||||
static void CopyPlayerNameWindowGfxToBg(struct BerryCrushGame * game);
|
||||
static void CreateGameSprites(struct BerryCrushGame * game);
|
||||
static void DestroyGameSprites(struct BerryCrushGame * game);
|
||||
static void SpriteCB_Impact(struct Sprite * sprite);
|
||||
static void SpriteCB_Sparkle_End(struct Sprite * sprite);
|
||||
static void SpriteCB_Sparkle(struct Sprite * sprite);
|
||||
static void SpriteCB_Sparkle_Init(struct Sprite * sprite);
|
||||
static void SpriteCB_Impact(struct Sprite *sprite);
|
||||
static void SpriteCB_Sparkle_End(struct Sprite *sprite);
|
||||
static void SpriteCB_Sparkle(struct Sprite *sprite);
|
||||
static void SpriteCB_Sparkle_Init(struct Sprite *sprite);
|
||||
static struct BerryCrushGame *GetBerryCrushGame(void);
|
||||
static u32 QuitBerryCrush(MainCallback callback);
|
||||
static void ChooseBerry(void);
|
||||
@@ -410,7 +410,7 @@ static bool32 OpenResultsWindow(struct BerryCrushGame *game, struct BerryCrushGa
|
||||
static void CloseResultsWindow(struct BerryCrushGame *game);
|
||||
static void ResetCrusherPos(struct BerryCrushGame *game);
|
||||
static void HideTimer(struct BerryCrushGame_Gfx *gfx);
|
||||
static void SpriteCB_DropBerryIntoCrusher(struct Sprite * sprite);
|
||||
static void SpriteCB_DropBerryIntoCrusher(struct Sprite *sprite);
|
||||
|
||||
static const u8 sBitTable[] = {
|
||||
1 << 0,
|
||||
@@ -2728,7 +2728,7 @@ static void CreateBerrySprites(struct BerryCrushGame * game, struct BerryCrushGa
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCB_DropBerryIntoCrusher(struct Sprite * sprite)
|
||||
static void SpriteCB_DropBerryIntoCrusher(struct Sprite *sprite)
|
||||
{
|
||||
s16 *data = sprite->data;
|
||||
|
||||
@@ -3387,7 +3387,7 @@ static void DestroyGameSprites(struct BerryCrushGame * game)
|
||||
DestroySprite(game->gfx.coreSprite);
|
||||
}
|
||||
|
||||
static void SpriteCB_Impact(struct Sprite * sprite)
|
||||
static void SpriteCB_Impact(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->animEnded)
|
||||
{
|
||||
@@ -3396,7 +3396,7 @@ static void SpriteCB_Impact(struct Sprite * sprite)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCB_Sparkle_End(struct Sprite * sprite)
|
||||
static void SpriteCB_Sparkle_End(struct Sprite *sprite)
|
||||
{
|
||||
u8 r1 = 0;
|
||||
SpriteCallback r5 = SpriteCallbackDummy;
|
||||
@@ -3425,7 +3425,7 @@ static void SpriteCB_Sparkle_End(struct Sprite * sprite)
|
||||
#define MASK_TARGET_Y 0x7FFF
|
||||
#define F_MOVE_HORIZ 0x8000
|
||||
|
||||
static void SpriteCB_Sparkle(struct Sprite * sprite)
|
||||
static void SpriteCB_Sparkle(struct Sprite *sprite)
|
||||
{
|
||||
s16 *data = sprite->data;
|
||||
|
||||
@@ -3447,7 +3447,7 @@ static void SpriteCB_Sparkle(struct Sprite * sprite)
|
||||
sprite->callback = SpriteCB_Sparkle_End;
|
||||
}
|
||||
|
||||
static void SpriteCB_Sparkle_Init(struct Sprite * sprite)
|
||||
static void SpriteCB_Sparkle_Init(struct Sprite *sprite)
|
||||
{
|
||||
s16 *data = sprite->data;
|
||||
s16 xMult, var;
|
||||
|
||||
@@ -20,7 +20,7 @@ typedef struct {
|
||||
|
||||
// Static RAM declarations
|
||||
|
||||
const void * gUnknown_3005EF0;
|
||||
const void *gUnknown_3005EF0;
|
||||
int gUnknown_3005EF4;
|
||||
size_t gUnknown_3005EF8;
|
||||
struct MultiBootParam gUnknown_3005F00;
|
||||
|
||||
@@ -17,8 +17,8 @@ struct BPPD_Struct
|
||||
{
|
||||
struct BPPD_MapRect map1Rect;
|
||||
struct BPPD_MapRect map2Rect;
|
||||
const void * src1;
|
||||
const void * src2;
|
||||
const void *src1;
|
||||
const void *src2;
|
||||
u16 src1Height;
|
||||
u16 src1Width;
|
||||
u16 src2Width;
|
||||
@@ -80,7 +80,7 @@ void CopyAllBoxPartyPokemonDropdownsToVram(void)
|
||||
}
|
||||
}
|
||||
|
||||
void SetBoxPartyPokemonDropdownMap2(u8 idx, u8 bgId, const void * src, u16 width, u16 height)
|
||||
void SetBoxPartyPokemonDropdownMap2(u8 idx, u8 bgId, const void *src, u16 width, u16 height)
|
||||
{
|
||||
u16 screenSize;
|
||||
u16 bgType;
|
||||
@@ -112,7 +112,7 @@ void SetBoxPartyPokemonDropdownMap2(u8 idx, u8 bgId, const void * src, u16 width
|
||||
}
|
||||
}
|
||||
|
||||
void SetBoxPartyPokemonDropdownMap1Tiles(u8 idx, const void * src)
|
||||
void SetBoxPartyPokemonDropdownMap1Tiles(u8 idx, const void *src)
|
||||
{
|
||||
if (idx < sBoxPartyPokemonDropdownCount)
|
||||
{
|
||||
@@ -191,7 +191,7 @@ static void PushMap1(u8 idx)
|
||||
{
|
||||
int i;
|
||||
int run = sBoxPartyPokemonDropdownPtr[idx].mapSize * sBoxPartyPokemonDropdownPtr[idx].src1Height;
|
||||
const void * addr = sBoxPartyPokemonDropdownPtr[idx].src1 + run * sBoxPartyPokemonDropdownPtr[idx].map1Rect.destY2 + sBoxPartyPokemonDropdownPtr[idx].map1Rect.destX2 * sBoxPartyPokemonDropdownPtr[idx].mapSize;
|
||||
const void *addr = sBoxPartyPokemonDropdownPtr[idx].src1 + run * sBoxPartyPokemonDropdownPtr[idx].map1Rect.destY2 + sBoxPartyPokemonDropdownPtr[idx].map1Rect.destX2 * sBoxPartyPokemonDropdownPtr[idx].mapSize;
|
||||
for (i = 0; i < sBoxPartyPokemonDropdownPtr[idx].map1Rect.height; i++)
|
||||
{
|
||||
CopyToBgTilemapBufferRect(sBoxPartyPokemonDropdownPtr[idx].bgId, addr, sBoxPartyPokemonDropdownPtr[idx].map1Rect.destX2, sBoxPartyPokemonDropdownPtr[idx].map1Rect.destY2 + i, sBoxPartyPokemonDropdownPtr[idx].map1Rect.width, 1);
|
||||
@@ -203,7 +203,7 @@ static void PushMap2(u8 idx)
|
||||
{
|
||||
int i;
|
||||
int run = sBoxPartyPokemonDropdownPtr[idx].mapSize * sBoxPartyPokemonDropdownPtr[idx].src2Width;
|
||||
const void * addr = sBoxPartyPokemonDropdownPtr[idx].src2 + run * sBoxPartyPokemonDropdownPtr[idx].map2Rect.destY + sBoxPartyPokemonDropdownPtr[idx].map2Rect.destX * sBoxPartyPokemonDropdownPtr[idx].mapSize;
|
||||
const void *addr = sBoxPartyPokemonDropdownPtr[idx].src2 + run * sBoxPartyPokemonDropdownPtr[idx].map2Rect.destY + sBoxPartyPokemonDropdownPtr[idx].map2Rect.destX * sBoxPartyPokemonDropdownPtr[idx].mapSize;
|
||||
for (i = 0; i < sBoxPartyPokemonDropdownPtr[idx].map2Rect.height; i++)
|
||||
{
|
||||
CopyToBgTilemapBufferRect(sBoxPartyPokemonDropdownPtr[idx].bgId, addr, sBoxPartyPokemonDropdownPtr[idx].map2Rect.destX2, sBoxPartyPokemonDropdownPtr[idx].map2Rect.destY2 + i, sBoxPartyPokemonDropdownPtr[idx].map2Rect.width, 1);
|
||||
|
||||
+2
-2
@@ -64,7 +64,7 @@ bool32 CEReaderTool_SaveTrainerTower(struct EReaderTrainerTowerSet * ttdata)
|
||||
return result;
|
||||
}
|
||||
|
||||
static bool32 CEReaderTool_LoadTrainerTower_r(struct EReaderTrainerTowerSet * ttdata, void * buffer)
|
||||
static bool32 CEReaderTool_LoadTrainerTower_r(struct EReaderTrainerTowerSet * ttdata, void *buffer)
|
||||
{
|
||||
if (TryCopySpecialSaveSection(SECTOR_TTOWER(0), buffer) != 1)
|
||||
return FALSE;
|
||||
@@ -81,7 +81,7 @@ static bool32 CEReaderTool_LoadTrainerTower_r(struct EReaderTrainerTowerSet * tt
|
||||
|
||||
bool32 CEReaderTool_LoadTrainerTower(struct EReaderTrainerTowerSet * ttdata)
|
||||
{
|
||||
void * buffer = AllocZeroed(0x1000);
|
||||
void *buffer = AllocZeroed(0x1000);
|
||||
bool32 success = CEReaderTool_LoadTrainerTower_r(ttdata, buffer);
|
||||
Free(buffer);
|
||||
return success;
|
||||
|
||||
@@ -29,13 +29,13 @@ static EWRAM_DATA u16 *gUnknown_203F42C[4] = {NULL};
|
||||
static EWRAM_DATA struct DodrioStruct_2022CF4 * gUnknown_203F43C = NULL;
|
||||
static EWRAM_DATA struct DodrioSubstruct_0160 * gUnknown_203F440 = NULL;
|
||||
|
||||
static void sub_8153B9C(struct Sprite * sprite);
|
||||
static u32 sub_8153C30(struct Sprite * sprite);
|
||||
static u32 sub_8153CA0(struct Sprite * sprite);
|
||||
static void sub_8153B9C(struct Sprite *sprite);
|
||||
static u32 sub_8153C30(struct Sprite *sprite);
|
||||
static u32 sub_8153CA0(struct Sprite *sprite);
|
||||
static void sub_8153D48(bool8 a0, u8 a1);
|
||||
static void nullsub_97(struct Sprite * sprite);
|
||||
static void nullsub_97(struct Sprite *sprite);
|
||||
static void sub_8154324(bool8 a0);
|
||||
static void sub_81543E8(struct Sprite * sprite);
|
||||
static void sub_81543E8(struct Sprite *sprite);
|
||||
static s16 sub_8154608(u8 a0, u8 a1);
|
||||
static void sub_8154A08(u8 taskId);
|
||||
static void sub_8154A2C(void);
|
||||
@@ -304,7 +304,7 @@ void sub_8153AFC(struct DodrioSubstruct_318C * arg0, u8 arg1, u8 id, u8 arg3)
|
||||
sub_8153D48(TRUE, id);
|
||||
}
|
||||
|
||||
static void sub_8153B9C(struct Sprite * sprite)
|
||||
static void sub_8153B9C(struct Sprite *sprite)
|
||||
{
|
||||
switch (sprite->data[0])
|
||||
{
|
||||
@@ -321,7 +321,7 @@ static void sub_8153B9C(struct Sprite * sprite)
|
||||
|
||||
void sub_8153BC0(u8 unused)
|
||||
{
|
||||
struct Sprite * sprite = &gSprites[*gUnknown_203F3E4[GetMultiplayerId()]];
|
||||
struct Sprite *sprite = &gSprites[*gUnknown_203F3E4[GetMultiplayerId()]];
|
||||
sprite->data[0] = 1;
|
||||
sprite->data[1] = 0;
|
||||
sprite->data[2] = 0;
|
||||
@@ -331,7 +331,7 @@ void sub_8153BC0(u8 unused)
|
||||
|
||||
void sub_8153BF8(u8 unused)
|
||||
{
|
||||
struct Sprite * sprite = &gSprites[*gUnknown_203F3E4[GetMultiplayerId()]];
|
||||
struct Sprite *sprite = &gSprites[*gUnknown_203F3E4[GetMultiplayerId()]];
|
||||
sprite->data[0] = 2;
|
||||
sprite->data[1] = 0;
|
||||
sprite->data[2] = 0;
|
||||
@@ -339,7 +339,7 @@ void sub_8153BF8(u8 unused)
|
||||
sprite->data[4] = 0;
|
||||
}
|
||||
|
||||
static u32 sub_8153C30(struct Sprite * sprite)
|
||||
static u32 sub_8153C30(struct Sprite *sprite)
|
||||
{
|
||||
s8 var;
|
||||
u8 mod = (++sprite->data[1] / 2) % 4;
|
||||
@@ -368,7 +368,7 @@ static u32 sub_8153C30(struct Sprite * sprite)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static u32 sub_8153CA0(struct Sprite * sprite)
|
||||
static u32 sub_8153CA0(struct Sprite *sprite)
|
||||
{
|
||||
u8 mod = (++sprite->data[1] / 13) % 4;
|
||||
|
||||
@@ -388,7 +388,7 @@ void sub_8153D08(u8 count)
|
||||
u8 i;
|
||||
for (i = 0; i < count; i++)
|
||||
{
|
||||
struct Sprite * sprite = &gSprites[*gUnknown_203F3E4[i]];
|
||||
struct Sprite *sprite = &gSprites[*gUnknown_203F3E4[i]];
|
||||
if (sprite != NULL)
|
||||
DestroySpriteAndFreeResources(sprite);
|
||||
// Memory should be freed here but is not.
|
||||
@@ -412,7 +412,7 @@ void sub_8153DA8(u8 id, u8 frameNum)
|
||||
StartSpriteAnim(&gSprites[*gUnknown_203F3E4[id]], frameNum);
|
||||
}
|
||||
|
||||
static void nullsub_97(struct Sprite * sprite)
|
||||
static void nullsub_97(struct Sprite *sprite)
|
||||
{
|
||||
|
||||
}
|
||||
@@ -422,7 +422,7 @@ void sub_8153DD8(void)
|
||||
u8 i;
|
||||
for (i = 0; i < 10; i++)
|
||||
{
|
||||
struct Sprite * sprite = &gSprites[gUnknown_203F43C->unk2A[i]];
|
||||
struct Sprite *sprite = &gSprites[gUnknown_203F43C->unk2A[i]];
|
||||
sprite->x = (i * 16) + 48;
|
||||
sprite->y = -8 - (i * 8);
|
||||
gUnknown_203F43C->unkC[i] = 0;
|
||||
@@ -466,7 +466,7 @@ void sub_8153ED8(void)
|
||||
u8 i;
|
||||
for (i = 0; i < 10; i++)
|
||||
{
|
||||
struct Sprite * sprite = &gSprites[gUnknown_203F43C->unk2A[i]];
|
||||
struct Sprite *sprite = &gSprites[gUnknown_203F43C->unk2A[i]];
|
||||
if (sprite != NULL)
|
||||
DestroySpriteAndFreeResources(sprite);
|
||||
}
|
||||
@@ -479,7 +479,7 @@ bool32 sub_8153F1C(void)
|
||||
bool32 r3 = FALSE;
|
||||
for (i = 0; i < 10; i++)
|
||||
{
|
||||
struct Sprite * sprite = &gSprites[gUnknown_203F43C->unk2A[i]];
|
||||
struct Sprite *sprite = &gSprites[gUnknown_203F43C->unk2A[i]];
|
||||
gUnknown_203F43C->unk16[i] = 2;
|
||||
if (gUnknown_203F43C->unkC[i] != 0 && sprite->y == 8)
|
||||
continue;
|
||||
@@ -621,7 +621,7 @@ void sub_815417C(void)
|
||||
|
||||
void sub_8154274(void)
|
||||
{
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
u8 i;
|
||||
|
||||
for (i = 0; i < 11; i++)
|
||||
@@ -677,7 +677,7 @@ static void sub_81543C4(u8 spriteId)
|
||||
#define sKeepPosX data[10]
|
||||
#endif // BUGFIX
|
||||
|
||||
static void sub_81543E8(struct Sprite * sprite)
|
||||
static void sub_81543E8(struct Sprite *sprite)
|
||||
{
|
||||
u8 i;
|
||||
static const u8 array[] = {30, 20};
|
||||
@@ -735,7 +735,7 @@ void sub_81544F0(void)
|
||||
u8 i;
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
struct Sprite * sprite = &gSprites[*gUnknown_203F3F8[i]];
|
||||
struct Sprite *sprite = &gSprites[*gUnknown_203F3F8[i]];
|
||||
sprite->sKeepPosX = TRUE;
|
||||
sprite->x = gUnknown_8478E0E[i][0];
|
||||
sprite->y = gUnknown_8478E0E[i][1];
|
||||
@@ -747,7 +747,7 @@ void sub_8154540(void)
|
||||
u8 i;
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
struct Sprite * sprite = &gSprites[*gUnknown_203F3F8[i]];
|
||||
struct Sprite *sprite = &gSprites[*gUnknown_203F3F8[i]];
|
||||
sprite->sKeepPosX = FALSE;
|
||||
}
|
||||
}
|
||||
@@ -757,7 +757,7 @@ void sub_8154578(void)
|
||||
u8 i;
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
struct Sprite * sprite = &gSprites[*gUnknown_203F3F8[i]];
|
||||
struct Sprite *sprite = &gSprites[*gUnknown_203F3F8[i]];
|
||||
if (sprite)
|
||||
DestroySprite(sprite);
|
||||
FREE_AND_SET_NULL(gUnknown_203F3F8[i]);
|
||||
@@ -833,8 +833,8 @@ void sub_81546C0(void)
|
||||
|
||||
static void sub_81546EC(u8 frameId)
|
||||
{
|
||||
LoadBgTiles(0, GetUserFrameGraphicsInfo(frameId)->tiles, 0x120, 1);
|
||||
LoadPalette(GetUserFrameGraphicsInfo(frameId)->palette, 0xA0, 0x20);
|
||||
LoadBgTiles(0, GetWindowFrameTilesPal(frameId)->tiles, 0x120, 1);
|
||||
LoadPalette(GetWindowFrameTilesPal(frameId)->palette, 0xA0, 0x20);
|
||||
}
|
||||
|
||||
static void sub_8154720(void)
|
||||
|
||||
+14
-14
@@ -23,16 +23,16 @@ struct ECWork
|
||||
u16 bg2ScrollRow;
|
||||
int tgtBgY;
|
||||
int deltaBgY;
|
||||
struct Sprite * selectDestFieldCursorSprite;
|
||||
struct Sprite * rectCursorSpriteRight;
|
||||
struct Sprite * rectCursorSpriteLeft;
|
||||
struct Sprite * selectWordCursorSprite;
|
||||
struct Sprite * selectGroupHelpSprite;
|
||||
struct Sprite * modeIconsSprite;
|
||||
struct Sprite * upTriangleCursorSprite;
|
||||
struct Sprite * downTriangleCursorSprite;
|
||||
struct Sprite * startPgUpButtonSprite;
|
||||
struct Sprite * selectPgDnButtonSprite;
|
||||
struct Sprite *selectDestFieldCursorSprite;
|
||||
struct Sprite *rectCursorSpriteRight;
|
||||
struct Sprite *rectCursorSpriteLeft;
|
||||
struct Sprite *selectWordCursorSprite;
|
||||
struct Sprite *selectGroupHelpSprite;
|
||||
struct Sprite *modeIconsSprite;
|
||||
struct Sprite *upTriangleCursorSprite;
|
||||
struct Sprite *downTriangleCursorSprite;
|
||||
struct Sprite *startPgUpButtonSprite;
|
||||
struct Sprite *selectPgDnButtonSprite;
|
||||
u16 bg1TilemapBuffer[BG_SCREEN_SIZE / 2];
|
||||
u16 bg3TilemapBuffer[BG_SCREEN_SIZE / 2];
|
||||
};
|
||||
@@ -104,7 +104,7 @@ static int GetBg2ScrollRow(void);
|
||||
static void SetRegWin0Coords(u8 left, u8 top, u8 right, u8 bottom);
|
||||
static void LoadSpriteGfx(void);
|
||||
static void CreateSelectDestFieldCursorSprite(void);
|
||||
static void SpriteCB_BounceCursor(struct Sprite * sprite);
|
||||
static void SpriteCB_BounceCursor(struct Sprite *sprite);
|
||||
static void SetSelectDestFieldCursorSpritePosAndResetAnim(u8 x, u8 y);
|
||||
static void FreezeSelectDestFieldCursorSprite(void);
|
||||
static void UnfreezeSelectDestFieldCursorSprite(void);
|
||||
@@ -114,7 +114,7 @@ static void EC_MoveCursor(void);
|
||||
static void MoveCursor_Group(s8 a0, s8 a1);
|
||||
static void MoveCursor_Alpha(s8 a0, s8 a1);
|
||||
static void CreateSelectWordCursorSprite(void);
|
||||
static void SpriteCB_SelectWordCursorSprite(struct Sprite * sprite);
|
||||
static void SpriteCB_SelectWordCursorSprite(struct Sprite *sprite);
|
||||
static void SetSelectWordCursorSpritePos(void);
|
||||
static void SetSelectWordCursorSpritePosExplicit(u8 x, u8 y);
|
||||
static void DestroySelectWordCursorSprite(void);
|
||||
@@ -1933,7 +1933,7 @@ static void CreateSelectDestFieldCursorSprite(void)
|
||||
gSprites[spriteId].data[1] = 1;
|
||||
}
|
||||
|
||||
static void SpriteCB_BounceCursor(struct Sprite * sprite)
|
||||
static void SpriteCB_BounceCursor(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[1])
|
||||
{
|
||||
@@ -2076,7 +2076,7 @@ static void CreateSelectWordCursorSprite(void)
|
||||
SetSelectWordCursorSpritePos();
|
||||
}
|
||||
|
||||
static void SpriteCB_SelectWordCursorSprite(struct Sprite * sprite)
|
||||
static void SpriteCB_SelectWordCursorSprite(struct Sprite *sprite)
|
||||
{
|
||||
if (++sprite->data[0] > 2)
|
||||
{
|
||||
|
||||
@@ -34,7 +34,7 @@ static u16 sSavedTm3Cnt;
|
||||
static u16 sSavedSioCnt;
|
||||
static u16 sSavedRCnt;
|
||||
|
||||
int EReader_Send(size_t size, const void * src)
|
||||
int EReader_Send(size_t size, const void *src)
|
||||
{
|
||||
int result;
|
||||
EReaderHelper_SaveRegsState();
|
||||
@@ -73,7 +73,7 @@ int EReader_Send(size_t size, const void * src)
|
||||
return result;
|
||||
}
|
||||
|
||||
int EReader_Recv(void * dest)
|
||||
int EReader_Recv(void *dest)
|
||||
{
|
||||
int result;
|
||||
EReaderHelper_SaveRegsState();
|
||||
@@ -147,7 +147,7 @@ static void OpenSerial32(void)
|
||||
sCounter2 = 0;
|
||||
}
|
||||
|
||||
u16 EReaderHandleTransfer(u8 mode, size_t size, const void * data, void * recvBuffer)
|
||||
u16 EReaderHandleTransfer(u8 mode, size_t size, const void *data, void *recvBuffer)
|
||||
{
|
||||
switch (sSendRecvMgr.state)
|
||||
{
|
||||
@@ -240,7 +240,7 @@ static bool16 DetermineSendRecvState(u8 mode)
|
||||
return resp;
|
||||
}
|
||||
|
||||
static void SetUpTransferManager(size_t size, const void * data, void * recvBuffer)
|
||||
static void SetUpTransferManager(size_t size, const void *data, void *recvBuffer)
|
||||
{
|
||||
if (sSendRecvMgr.master_slave)
|
||||
{
|
||||
|
||||
+10
-10
@@ -94,7 +94,7 @@ static u8 MovementType_VsSeeker4D_Callback(struct ObjectEvent *, struct Sprite *
|
||||
static u8 MovementType_VsSeeker4E_Callback(struct ObjectEvent *, struct Sprite *);
|
||||
static u8 MovementType_VsSeeker4F_Callback(struct ObjectEvent *, struct Sprite *);
|
||||
static void sub_8064544(struct ObjectEvent *, struct Sprite *);
|
||||
static void DoObjectUnionRoomWarpYDisplacement(struct Sprite * sprite);
|
||||
static void DoObjectUnionRoomWarpYDisplacement(struct Sprite *sprite);
|
||||
static void MovementType_None(struct Sprite *);
|
||||
static void MovementType_LookAround(struct Sprite *);
|
||||
static void MovementType_WanderAround(struct Sprite *);
|
||||
@@ -8840,37 +8840,37 @@ void UnfreezeObjectEvents(void)
|
||||
#define tSpeed data[4]
|
||||
#define tStepNo data[5]
|
||||
|
||||
static void little_step(struct Sprite * sprite, u8 direction)
|
||||
static void little_step(struct Sprite *sprite, u8 direction)
|
||||
{
|
||||
sprite->x += sDirectionToVectors[direction].x;
|
||||
sprite->y += sDirectionToVectors[direction].y;
|
||||
}
|
||||
|
||||
static void double_little_steps(struct Sprite * sprite, u8 direction)
|
||||
static void double_little_steps(struct Sprite *sprite, u8 direction)
|
||||
{
|
||||
sprite->x += 2 * (u16)sDirectionToVectors[direction].x;
|
||||
sprite->y += 2 * (u16)sDirectionToVectors[direction].y;
|
||||
}
|
||||
|
||||
static void triple_little_steps(struct Sprite * sprite, u8 direction)
|
||||
static void triple_little_steps(struct Sprite *sprite, u8 direction)
|
||||
{
|
||||
sprite->x += 2 * (u16)sDirectionToVectors[direction].x + (u16)sDirectionToVectors[direction].x;
|
||||
sprite->y += 2 * (u16)sDirectionToVectors[direction].y + (u16)sDirectionToVectors[direction].y;
|
||||
}
|
||||
|
||||
static void quad_little_steps(struct Sprite * sprite, u8 direction)
|
||||
static void quad_little_steps(struct Sprite *sprite, u8 direction)
|
||||
{
|
||||
sprite->x += 4 * (u16)sDirectionToVectors[direction].x;
|
||||
sprite->y += 4 * (u16)sDirectionToVectors[direction].y;
|
||||
}
|
||||
|
||||
static void oct_little_steps(struct Sprite * sprite, u8 direction)
|
||||
static void oct_little_steps(struct Sprite *sprite, u8 direction)
|
||||
{
|
||||
sprite->x += 8 * (u16)sDirectionToVectors[direction].x;
|
||||
sprite->y += 8 * (u16)sDirectionToVectors[direction].y;
|
||||
}
|
||||
|
||||
void SetSpriteDataForNormalStep(struct Sprite * sprite, u8 direction, u8 speed)
|
||||
void SetSpriteDataForNormalStep(struct Sprite *sprite, u8 direction, u8 speed)
|
||||
{
|
||||
sprite->tDirection = direction;
|
||||
sprite->tSpeed = speed;
|
||||
@@ -9322,7 +9322,7 @@ void RfuUnionObjectStartWarp(u8 objectEventId, u8 animNo)
|
||||
}
|
||||
}
|
||||
|
||||
static void DoObjectUnionRoomWarpYDisplacementUpwards(struct Sprite * sprite)
|
||||
static void DoObjectUnionRoomWarpYDisplacementUpwards(struct Sprite *sprite)
|
||||
{
|
||||
switch (sprite->tUnionRoomWarpAnimState)
|
||||
{
|
||||
@@ -9342,7 +9342,7 @@ static void DoObjectUnionRoomWarpYDisplacementUpwards(struct Sprite * sprite)
|
||||
}
|
||||
}
|
||||
|
||||
static void DoObjectUnionRoomWarpYDisplacementDownwards(struct Sprite * sprite)
|
||||
static void DoObjectUnionRoomWarpYDisplacementDownwards(struct Sprite *sprite)
|
||||
{
|
||||
switch (sprite->tUnionRoomWarpAnimState)
|
||||
{
|
||||
@@ -9360,7 +9360,7 @@ static void DoObjectUnionRoomWarpYDisplacementDownwards(struct Sprite * sprite)
|
||||
}
|
||||
}
|
||||
|
||||
static void DoObjectUnionRoomWarpYDisplacement(struct Sprite * sprite)
|
||||
static void DoObjectUnionRoomWarpYDisplacement(struct Sprite *sprite)
|
||||
{
|
||||
switch (sprite->tUnionRoomWarpAnimNo)
|
||||
{
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
#include "evolution_graphics.h"
|
||||
#include "constants/songs.h"
|
||||
|
||||
static void SpriteCallbackDummy_EvoSparkles(struct Sprite * sprite);
|
||||
static void SpriteCallbackDummy_EvoSparkles(struct Sprite *sprite);
|
||||
static void EvoTask_PreEvoSparkleSet1Init(u8 taskId);
|
||||
static void EvoTask_CreatePreEvoSparkleSet1(u8 taskId);
|
||||
static void EvoTask_WaitForPre1SparklesToGoUp(u8 taskId);
|
||||
@@ -90,7 +90,7 @@ static const s16 sUnref_841EF28[][2] = {
|
||||
{ 4, 0x10}
|
||||
};
|
||||
|
||||
static void SpriteCallbackDummy_EvoSparkles(struct Sprite * sprite)
|
||||
static void SpriteCallbackDummy_EvoSparkles(struct Sprite *sprite)
|
||||
{
|
||||
|
||||
}
|
||||
@@ -102,7 +102,7 @@ static void SetEvoSparklesMatrices(void)
|
||||
SetOamMatrix(i + 20, sEvolutionSparkleMatrixScales[i], 0, 0, sEvolutionSparkleMatrixScales[i]);
|
||||
}
|
||||
|
||||
static void SpriteCB_PreEvoSparkleSet1(struct Sprite * sprite)
|
||||
static void SpriteCB_PreEvoSparkleSet1(struct Sprite *sprite)
|
||||
{
|
||||
u8 mnum;
|
||||
if (sprite->y > 8)
|
||||
@@ -143,7 +143,7 @@ static void CreatePreEvoSparkleSet1(u8 a0)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCB_PreEvoSparkleSet2(struct Sprite * sprite)
|
||||
static void SpriteCB_PreEvoSparkleSet2(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->y < 88)
|
||||
{
|
||||
@@ -174,7 +174,7 @@ static void CreatePreEvoSparkleSet2(u8 a0)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCB_PostEvoSparkleSet1(struct Sprite * sprite)
|
||||
static void SpriteCB_PostEvoSparkleSet1(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[5] > 8)
|
||||
{
|
||||
@@ -205,7 +205,7 @@ static void CreatePostEvoSparkleSet1(u8 a0, u8 a1)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCB_PostEvoSparkleSet2(struct Sprite * sprite)
|
||||
static void SpriteCB_PostEvoSparkleSet2(struct Sprite *sprite)
|
||||
{
|
||||
u8 mnum;
|
||||
if ((sprite->data[7] & 3) == 0)
|
||||
@@ -481,7 +481,7 @@ static void EvoTask_CreatePostEvoSparklesSet2Trade(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCallbackDummy_MonSprites(struct Sprite * sprite)
|
||||
static void SpriteCallbackDummy_MonSprites(struct Sprite *sprite)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
+5
-5
@@ -100,7 +100,7 @@ static void DestroyPersonPicSprite(u8 taskId, u16 who);
|
||||
static void UpdateIconDescriptionBox(u8 whichText);
|
||||
static void UpdateIconDescriptionBoxOff(void);
|
||||
static void FC_CreateListMenu(void);
|
||||
static void SpriteCB_FCSpinningPokeball(struct Sprite * sprite);
|
||||
static void SpriteCB_FCSpinningPokeball(struct Sprite *sprite);
|
||||
static void InitListMenuTemplate(void);
|
||||
static void FC_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu * list);
|
||||
static void Task_SwitchToPickMode(u8 taskId);
|
||||
@@ -1164,7 +1164,7 @@ void FullyUnlockFameChecker(void)
|
||||
|
||||
static void FCSetup_ClearVideoRegisters(void)
|
||||
{
|
||||
void * vram = (void *)VRAM;
|
||||
void *vram = (void *)VRAM;
|
||||
DmaClearLarge16(3, vram, VRAM_SIZE, 0x1000);
|
||||
DmaClear32(3, OAM, OAM_SIZE);
|
||||
DmaClear16(3, PLTT, PLTT_SIZE);
|
||||
@@ -1268,7 +1268,7 @@ static u8 CreateFlavorTextIconSelectorCursorSprite(s16 where)
|
||||
return CreateSprite(&sSpriteTemplate_SelectorCursor, x, y, 0);
|
||||
}
|
||||
|
||||
static void SpriteCB_DestroyFlavorTextIconSelectorCursor(struct Sprite * sprite)
|
||||
static void SpriteCB_DestroyFlavorTextIconSelectorCursor(struct Sprite *sprite)
|
||||
{
|
||||
DestroySprite(sprite);
|
||||
}
|
||||
@@ -1297,7 +1297,7 @@ static u8 CreateSpinningPokeballSprite(void)
|
||||
return CreateSprite(&sSpinningPokeballSpriteTemplate, 0xe2, 0x42, 0);
|
||||
}
|
||||
|
||||
static void SpriteCB_DestroySpinningPokeball(struct Sprite * sprite)
|
||||
static void SpriteCB_DestroySpinningPokeball(struct Sprite *sprite)
|
||||
{
|
||||
FreeSpriteOamMatrix(sprite);
|
||||
DestroySprite(sprite);
|
||||
@@ -1311,7 +1311,7 @@ static void FreeNonTrainerPicTiles(void)
|
||||
FreeSpriteTilesByTag(SPRITETAG_BILL);
|
||||
}
|
||||
|
||||
static void SpriteCB_FCSpinningPokeball(struct Sprite * sprite)
|
||||
static void SpriteCB_FCSpinningPokeball(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[0] == 1)
|
||||
{
|
||||
|
||||
+62
-62
@@ -485,7 +485,7 @@ static void FieldEffectScript_CallNative(const u8 **script, u32 *result)
|
||||
*script += sizeof(u32);
|
||||
}
|
||||
|
||||
static void FieldEffectFreeGraphicsResources(struct Sprite * sprite)
|
||||
static void FieldEffectFreeGraphicsResources(struct Sprite *sprite)
|
||||
{
|
||||
u16 tileStart = sprite->sheetTileStart;
|
||||
u8 paletteNum = sprite->oam.paletteNum;
|
||||
@@ -494,7 +494,7 @@ static void FieldEffectFreeGraphicsResources(struct Sprite * sprite)
|
||||
FieldEffectFreePaletteIfUnused(paletteNum);
|
||||
}
|
||||
|
||||
void FieldEffectStop(struct Sprite * sprite, u8 fldeff)
|
||||
void FieldEffectStop(struct Sprite *sprite, u8 fldeff)
|
||||
{
|
||||
FieldEffectFreeGraphicsResources(sprite);
|
||||
FieldEffectActiveListRemove(fldeff);
|
||||
@@ -625,7 +625,7 @@ static u8 CreateMonSprite_FieldMove(u16 species, u32 otId, u32 personality, s16
|
||||
return spriteId;
|
||||
}
|
||||
|
||||
void FreeResourcesAndDestroySprite(struct Sprite * sprite, u8 spriteId)
|
||||
void FreeResourcesAndDestroySprite(struct Sprite *sprite, u8 spriteId)
|
||||
{
|
||||
ResetPreservedPalettesInWeather();
|
||||
if (sprite->oam.affineMode != ST_OAM_AFFINE_OFF)
|
||||
@@ -1172,7 +1172,7 @@ static void Task_FallWarpFieldEffect(u8 taskId)
|
||||
static bool8 FallWarpEffect_1(struct Task * task)
|
||||
{
|
||||
struct ObjectEvent * playerObject;
|
||||
struct Sprite * playerSprite;
|
||||
struct Sprite *playerSprite;
|
||||
playerObject = &gObjectEvents[gPlayerAvatar.objectEventId];
|
||||
playerSprite = &gSprites[gPlayerAvatar.spriteId];
|
||||
CameraObjectReset2();
|
||||
@@ -1198,7 +1198,7 @@ static bool8 FallWarpEffect_2(struct Task * task)
|
||||
|
||||
static bool8 FallWarpEffect_3(struct Task * task)
|
||||
{
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
s16 centerToCornerVecY;
|
||||
sprite = &gSprites[gPlayerAvatar.spriteId];
|
||||
centerToCornerVecY = -(sprite->centerToCornerVecY << 1);
|
||||
@@ -1214,7 +1214,7 @@ static bool8 FallWarpEffect_3(struct Task * task)
|
||||
static bool8 FallWarpEffect_4(struct Task * task)
|
||||
{
|
||||
struct ObjectEvent * objectEvent;
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
|
||||
objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
|
||||
sprite = &gSprites[gPlayerAvatar.spriteId];
|
||||
@@ -1402,7 +1402,7 @@ static bool8 EscalatorWarpEffect_6(struct Task * task)
|
||||
|
||||
static void Escalator_AnimatePlayerGoingDown(struct Task * task)
|
||||
{
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
sprite = &gSprites[gPlayerAvatar.spriteId];
|
||||
sprite->x2 = Cos(0x84, task->data[2]);
|
||||
sprite->y2 = Sin(0x94, task->data[2]);
|
||||
@@ -1415,7 +1415,7 @@ static void Escalator_AnimatePlayerGoingDown(struct Task * task)
|
||||
|
||||
static void Escalator_AnimatePlayerGoingUp(struct Task * task)
|
||||
{
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
sprite = &gSprites[gPlayerAvatar.spriteId];
|
||||
sprite->x2 = Cos(0x7c, task->data[2]);
|
||||
sprite->y2 = Sin(0x76, task->data[2]);
|
||||
@@ -1499,7 +1499,7 @@ static bool8 EscalatorWarpInEffect_1(struct Task * task)
|
||||
|
||||
static bool8 EscalatorWarpInEffect_2(struct Task * task)
|
||||
{
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
sprite = &gSprites[gPlayerAvatar.spriteId];
|
||||
sprite->x2 = Cos(0x84, task->data[1]);
|
||||
sprite->y2 = Sin(0x94, task->data[1]);
|
||||
@@ -1509,7 +1509,7 @@ static bool8 EscalatorWarpInEffect_2(struct Task * task)
|
||||
|
||||
static bool8 EscalatorWarpInEffect_3(struct Task * task)
|
||||
{
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
sprite = &gSprites[gPlayerAvatar.spriteId];
|
||||
sprite->x2 = Cos(0x84, task->data[1]);
|
||||
sprite->y2 = Sin(0x94, task->data[1]);
|
||||
@@ -1530,7 +1530,7 @@ static bool8 EscalatorWarpInEffect_3(struct Task * task)
|
||||
|
||||
static bool8 EscalatorWarpInEffect_4(struct Task * task)
|
||||
{
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
sprite = &gSprites[gPlayerAvatar.spriteId];
|
||||
sprite->x2 = Cos(0x7c, task->data[1]);
|
||||
sprite->y2 = Sin(0x76, task->data[1]);
|
||||
@@ -1540,7 +1540,7 @@ static bool8 EscalatorWarpInEffect_4(struct Task * task)
|
||||
|
||||
static bool8 EscalatorWarpInEffect_5(struct Task * task)
|
||||
{
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
sprite = &gSprites[gPlayerAvatar.spriteId];
|
||||
sprite->x2 = Cos(0x7c, task->data[1]);
|
||||
sprite->y2 = Sin(0x76, task->data[1]);
|
||||
@@ -1723,20 +1723,20 @@ static bool8 DiveFieldEffect_TryWarp(struct Task *task)
|
||||
}
|
||||
|
||||
static void Task_LavaridgeGymB1FWarp(u8 taskId);
|
||||
static bool8 LavaridgeGymB1FWarpEffect_1(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite);
|
||||
static bool8 LavaridgeGymB1FWarpEffect_2(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite);
|
||||
static bool8 LavaridgeGymB1FWarpEffect_3(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite);
|
||||
static bool8 LavaridgeGymB1FWarpEffect_4(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite);
|
||||
static bool8 LavaridgeGymB1FWarpEffect_5(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite);
|
||||
static bool8 LavaridgeGymB1FWarpEffect_6(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite);
|
||||
static bool8 LavaridgeGymB1FWarpEffect_1(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite);
|
||||
static bool8 LavaridgeGymB1FWarpEffect_2(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite);
|
||||
static bool8 LavaridgeGymB1FWarpEffect_3(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite);
|
||||
static bool8 LavaridgeGymB1FWarpEffect_4(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite);
|
||||
static bool8 LavaridgeGymB1FWarpEffect_5(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite);
|
||||
static bool8 LavaridgeGymB1FWarpEffect_6(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite);
|
||||
static void FieldCB_LavaridgeGymB1FWarpExit(void);
|
||||
static void Task_LavaridgeGymB1FWarpExit(u8 taskId);
|
||||
static bool8 LavaridgeGymB1FWarpExitEffect_1(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite);
|
||||
static bool8 LavaridgeGymB1FWarpExitEffect_2(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite);
|
||||
static bool8 LavaridgeGymB1FWarpExitEffect_3(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite);
|
||||
static bool8 LavaridgeGymB1FWarpExitEffect_4(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite);
|
||||
static bool8 LavaridgeGymB1FWarpExitEffect_1(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite);
|
||||
static bool8 LavaridgeGymB1FWarpExitEffect_2(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite);
|
||||
static bool8 LavaridgeGymB1FWarpExitEffect_3(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite);
|
||||
static bool8 LavaridgeGymB1FWarpExitEffect_4(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite);
|
||||
|
||||
static bool8 (*const sLavaridgeGymB1FWarpEffectFuncs[])(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite) = {
|
||||
static bool8 (*const sLavaridgeGymB1FWarpEffectFuncs[])(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite) = {
|
||||
LavaridgeGymB1FWarpEffect_1,
|
||||
LavaridgeGymB1FWarpEffect_2,
|
||||
LavaridgeGymB1FWarpEffect_3,
|
||||
@@ -1755,7 +1755,7 @@ static void Task_LavaridgeGymB1FWarp(u8 taskId)
|
||||
while (sLavaridgeGymB1FWarpEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId], &gObjectEvents[gPlayerAvatar.objectEventId], &gSprites[gPlayerAvatar.spriteId]));
|
||||
}
|
||||
|
||||
static bool8 LavaridgeGymB1FWarpEffect_1(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite)
|
||||
static bool8 LavaridgeGymB1FWarpEffect_1(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite)
|
||||
{
|
||||
FreezeObjectEvents();
|
||||
CameraObjectReset2();
|
||||
@@ -1767,7 +1767,7 @@ static bool8 LavaridgeGymB1FWarpEffect_1(struct Task * task, struct ObjectEvent
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static bool8 LavaridgeGymB1FWarpEffect_2(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite)
|
||||
static bool8 LavaridgeGymB1FWarpEffect_2(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite)
|
||||
{
|
||||
SetCameraPanning(0, task->data[1]);
|
||||
task->data[1] = -task->data[1];
|
||||
@@ -1780,7 +1780,7 @@ static bool8 LavaridgeGymB1FWarpEffect_2(struct Task * task, struct ObjectEvent
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 LavaridgeGymB1FWarpEffect_3(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite)
|
||||
static bool8 LavaridgeGymB1FWarpEffect_3(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite)
|
||||
{
|
||||
sprite->y2 = 0;
|
||||
task->data[3] = 1;
|
||||
@@ -1794,7 +1794,7 @@ static bool8 LavaridgeGymB1FWarpEffect_3(struct Task * task, struct ObjectEvent
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static bool8 LavaridgeGymB1FWarpEffect_4(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite)
|
||||
static bool8 LavaridgeGymB1FWarpEffect_4(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite)
|
||||
{
|
||||
s16 centerToCornerVecY;
|
||||
SetCameraPanning(0, task->data[1]);
|
||||
@@ -1837,7 +1837,7 @@ static bool8 LavaridgeGymB1FWarpEffect_4(struct Task * task, struct ObjectEvent
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 LavaridgeGymB1FWarpEffect_5(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite)
|
||||
static bool8 LavaridgeGymB1FWarpEffect_5(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite)
|
||||
{
|
||||
TryFadeOutOldMapMusic();
|
||||
WarpFadeOutScreen();
|
||||
@@ -1845,7 +1845,7 @@ static bool8 LavaridgeGymB1FWarpEffect_5(struct Task * task, struct ObjectEvent
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 LavaridgeGymB1FWarpEffect_6(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite)
|
||||
static bool8 LavaridgeGymB1FWarpEffect_6(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite)
|
||||
{
|
||||
if (!gPaletteFade.active && BGMusicStopped() == TRUE)
|
||||
{
|
||||
@@ -1857,7 +1857,7 @@ static bool8 LavaridgeGymB1FWarpEffect_6(struct Task * task, struct ObjectEvent
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 (*const sLavaridgeGymB1FWarpExitEffectFuncs[])(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite) = {
|
||||
static bool8 (*const sLavaridgeGymB1FWarpExitEffectFuncs[])(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite) = {
|
||||
LavaridgeGymB1FWarpExitEffect_1,
|
||||
LavaridgeGymB1FWarpExitEffect_2,
|
||||
LavaridgeGymB1FWarpExitEffect_3,
|
||||
@@ -1879,7 +1879,7 @@ static void Task_LavaridgeGymB1FWarpExit(u8 taskId)
|
||||
while (sLavaridgeGymB1FWarpExitEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId], &gObjectEvents[gPlayerAvatar.objectEventId], &gSprites[gPlayerAvatar.spriteId]));
|
||||
}
|
||||
|
||||
static bool8 LavaridgeGymB1FWarpExitEffect_1(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite)
|
||||
static bool8 LavaridgeGymB1FWarpExitEffect_1(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite)
|
||||
{
|
||||
CameraObjectReset2();
|
||||
FreezeObjectEvents();
|
||||
@@ -1889,7 +1889,7 @@ static bool8 LavaridgeGymB1FWarpExitEffect_1(struct Task * task, struct ObjectEv
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 LavaridgeGymB1FWarpExitEffect_2(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite)
|
||||
static bool8 LavaridgeGymB1FWarpExitEffect_2(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite)
|
||||
{
|
||||
if (IsWeatherNotFadingIn())
|
||||
{
|
||||
@@ -1903,7 +1903,7 @@ static bool8 LavaridgeGymB1FWarpExitEffect_2(struct Task * task, struct ObjectEv
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 LavaridgeGymB1FWarpExitEffect_3(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite)
|
||||
static bool8 LavaridgeGymB1FWarpExitEffect_3(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite)
|
||||
{
|
||||
sprite = &gSprites[task->data[1]];
|
||||
if (sprite->animCmdIndex > 1)
|
||||
@@ -1917,7 +1917,7 @@ static bool8 LavaridgeGymB1FWarpExitEffect_3(struct Task * task, struct ObjectEv
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 LavaridgeGymB1FWarpExitEffect_4(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite)
|
||||
static bool8 LavaridgeGymB1FWarpExitEffect_4(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite)
|
||||
{
|
||||
if (ObjectEventClearHeldMovementIfFinished(objectEvent))
|
||||
{
|
||||
@@ -1930,13 +1930,13 @@ static bool8 LavaridgeGymB1FWarpExitEffect_4(struct Task * task, struct ObjectEv
|
||||
}
|
||||
|
||||
static void Task_LavaridgeGym1FWarp(u8 taskId);
|
||||
static bool8 LavaridgeGym1FWarpEffect_1(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite);
|
||||
static bool8 LavaridgeGym1FWarpEffect_2(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite);
|
||||
static bool8 LavaridgeGym1FWarpEffect_3(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite);
|
||||
static bool8 LavaridgeGym1FWarpEffect_4(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite);
|
||||
static bool8 LavaridgeGym1FWarpEffect_5(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite);
|
||||
static bool8 LavaridgeGym1FWarpEffect_1(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite);
|
||||
static bool8 LavaridgeGym1FWarpEffect_2(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite);
|
||||
static bool8 LavaridgeGym1FWarpEffect_3(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite);
|
||||
static bool8 LavaridgeGym1FWarpEffect_4(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite);
|
||||
static bool8 LavaridgeGym1FWarpEffect_5(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite);
|
||||
|
||||
static bool8 (*const sLavaridgeGym1FWarpEffectFuncs[])(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite) = {
|
||||
static bool8 (*const sLavaridgeGym1FWarpEffectFuncs[])(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite) = {
|
||||
LavaridgeGym1FWarpEffect_1,
|
||||
LavaridgeGym1FWarpEffect_2,
|
||||
LavaridgeGym1FWarpEffect_3,
|
||||
@@ -1955,7 +1955,7 @@ u8 FldEff_LavaridgeGymWarp(void)
|
||||
return spriteId;
|
||||
}
|
||||
|
||||
void SpriteCB_AshLaunch(struct Sprite * sprite)
|
||||
void SpriteCB_AshLaunch(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->animEnded)
|
||||
{
|
||||
@@ -1973,7 +1973,7 @@ static void Task_LavaridgeGym1FWarp(u8 taskId)
|
||||
while(sLavaridgeGym1FWarpEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId], &gObjectEvents[gPlayerAvatar.objectEventId], &gSprites[gPlayerAvatar.spriteId]));
|
||||
}
|
||||
|
||||
static bool8 LavaridgeGym1FWarpEffect_1(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite)
|
||||
static bool8 LavaridgeGym1FWarpEffect_1(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite)
|
||||
{
|
||||
FreezeObjectEvents();
|
||||
CameraObjectReset2();
|
||||
@@ -1983,7 +1983,7 @@ static bool8 LavaridgeGym1FWarpEffect_1(struct Task * task, struct ObjectEvent *
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 LavaridgeGym1FWarpEffect_2(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite)
|
||||
static bool8 LavaridgeGym1FWarpEffect_2(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite)
|
||||
{
|
||||
if (ObjectEventClearHeldMovementIfFinished(objectEvent))
|
||||
{
|
||||
@@ -2005,7 +2005,7 @@ static bool8 LavaridgeGym1FWarpEffect_2(struct Task * task, struct ObjectEvent *
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 LavaridgeGym1FWarpEffect_3(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite)
|
||||
static bool8 LavaridgeGym1FWarpEffect_3(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite)
|
||||
{
|
||||
if (gSprites[task->data[1]].animCmdIndex == 2)
|
||||
{
|
||||
@@ -2015,7 +2015,7 @@ static bool8 LavaridgeGym1FWarpEffect_3(struct Task * task, struct ObjectEvent *
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 LavaridgeGym1FWarpEffect_4(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite)
|
||||
static bool8 LavaridgeGym1FWarpEffect_4(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite)
|
||||
{
|
||||
if (!FieldEffectActiveListContains(FLDEFF_POP_OUT_OF_ASH))
|
||||
{
|
||||
@@ -2026,7 +2026,7 @@ static bool8 LavaridgeGym1FWarpEffect_4(struct Task * task, struct ObjectEvent *
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 LavaridgeGym1FWarpEffect_5(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite * sprite)
|
||||
static bool8 LavaridgeGym1FWarpEffect_5(struct Task * task, struct ObjectEvent * objectEvent, struct Sprite *sprite)
|
||||
{
|
||||
if (!gPaletteFade.active && BGMusicStopped() == TRUE)
|
||||
{
|
||||
@@ -2048,7 +2048,7 @@ u8 FldEff_PopOutOfAsh(void)
|
||||
return spriteId;
|
||||
}
|
||||
|
||||
void SpriteCB_PopOutOfAsh(struct Sprite * sprite)
|
||||
void SpriteCB_PopOutOfAsh(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->animEnded)
|
||||
{
|
||||
@@ -2397,7 +2397,7 @@ static void TeleportFieldEffectTask3(struct Task * task)
|
||||
{
|
||||
u8 spinDirections[5] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH};
|
||||
struct ObjectEvent * objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
|
||||
struct Sprite * sprite = &gSprites[gPlayerAvatar.spriteId];
|
||||
struct Sprite *sprite = &gSprites[gPlayerAvatar.spriteId];
|
||||
if ((--task->data[1]) <= 0)
|
||||
{
|
||||
task->data[1] = 4;
|
||||
@@ -2462,7 +2462,7 @@ static void Task_DoTeleportInFieldEffect(u8 taskId)
|
||||
|
||||
static void TeleportInFieldEffectTask1(struct Task * task)
|
||||
{
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
s16 centerToCornerVecY;
|
||||
if (IsWeatherNotFadingIn())
|
||||
{
|
||||
@@ -2483,7 +2483,7 @@ static void TeleportInFieldEffectTask2(struct Task * task)
|
||||
{
|
||||
u8 spinDirections[5] = {1, 3, 4, 2, 1};
|
||||
struct ObjectEvent * objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
|
||||
struct Sprite * sprite = &gSprites[gPlayerAvatar.spriteId];
|
||||
struct Sprite *sprite = &gSprites[gPlayerAvatar.spriteId];
|
||||
if ((sprite->y2 += task->data[1]) >= -8)
|
||||
{
|
||||
if (task->data[13] == 0)
|
||||
@@ -2559,9 +2559,9 @@ static void AnimateIndoorShowMonBg(struct Task * task);
|
||||
static bool8 SlideIndoorBannerOnscreen(struct Task * task);
|
||||
static bool8 SlideIndoorBannerOffscreen(struct Task * task);
|
||||
static u8 InitFieldMoveMonSprite(u32 species, u32 otId, u32 personality);
|
||||
static void SpriteCB_FieldMoveMonSlideOnscreen(struct Sprite * sprite);
|
||||
static void SpriteCB_FieldMoveMonWaitAfterCry(struct Sprite * sprite);
|
||||
static void SpriteCB_FieldMoveMonSlideOffscreen(struct Sprite * sprite);
|
||||
static void SpriteCB_FieldMoveMonSlideOnscreen(struct Sprite *sprite);
|
||||
static void SpriteCB_FieldMoveMonWaitAfterCry(struct Sprite *sprite);
|
||||
static void SpriteCB_FieldMoveMonSlideOffscreen(struct Sprite *sprite);
|
||||
|
||||
static void (*const sShowMonOutdoorsEffectFuncs[])(struct Task * task) = {
|
||||
ShowMonEffect_Outdoors_1,
|
||||
@@ -2915,7 +2915,7 @@ static u8 InitFieldMoveMonSprite(u32 species, u32 otId, u32 personality)
|
||||
{
|
||||
bool16 playCry;
|
||||
u8 monSprite;
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
playCry = (species & 0x80000000) >> 16;
|
||||
species &= 0x7fffffff;
|
||||
monSprite = CreateMonSprite_FieldMove(species, otId, personality, 0x140, 0x50, 0);
|
||||
@@ -2927,7 +2927,7 @@ static u8 InitFieldMoveMonSprite(u32 species, u32 otId, u32 personality)
|
||||
return monSprite;
|
||||
}
|
||||
|
||||
static void SpriteCB_FieldMoveMonSlideOnscreen(struct Sprite * sprite)
|
||||
static void SpriteCB_FieldMoveMonSlideOnscreen(struct Sprite *sprite)
|
||||
{
|
||||
if ((sprite->x -= 20) <= 0x78)
|
||||
{
|
||||
@@ -2945,7 +2945,7 @@ static void SpriteCB_FieldMoveMonSlideOnscreen(struct Sprite * sprite)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCB_FieldMoveMonWaitAfterCry(struct Sprite * sprite)
|
||||
static void SpriteCB_FieldMoveMonWaitAfterCry(struct Sprite *sprite)
|
||||
{
|
||||
if ((--sprite->data[1]) == 0)
|
||||
{
|
||||
@@ -2953,7 +2953,7 @@ static void SpriteCB_FieldMoveMonWaitAfterCry(struct Sprite * sprite)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCB_FieldMoveMonSlideOffscreen(struct Sprite * sprite)
|
||||
static void SpriteCB_FieldMoveMonSlideOffscreen(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->x < -0x40)
|
||||
{
|
||||
@@ -3137,12 +3137,12 @@ static void UseVsSeekerEffect_4(struct Task * task)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCB_NPCFlyOut(struct Sprite * sprite);
|
||||
static void SpriteCB_NPCFlyOut(struct Sprite *sprite);
|
||||
|
||||
u8 FldEff_NpcFlyOut(void)
|
||||
{
|
||||
u8 spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_BIRD], 0x78, 0, 1);
|
||||
struct Sprite * sprite = &gSprites[spriteId];
|
||||
struct Sprite *sprite = &gSprites[spriteId];
|
||||
|
||||
sprite->oam.paletteNum = 0;
|
||||
sprite->oam.priority = 1;
|
||||
@@ -3152,9 +3152,9 @@ u8 FldEff_NpcFlyOut(void)
|
||||
return spriteId;
|
||||
}
|
||||
|
||||
static void SpriteCB_NPCFlyOut(struct Sprite * sprite)
|
||||
static void SpriteCB_NPCFlyOut(struct Sprite *sprite)
|
||||
{
|
||||
struct Sprite * npcSprite;
|
||||
struct Sprite *npcSprite;
|
||||
|
||||
sprite->x2 = Cos(sprite->data[2], 0x8c);
|
||||
sprite->y2 = Sin(sprite->data[2], 0x48);
|
||||
@@ -3748,7 +3748,7 @@ u32 FldEff_MoveDeoxysRock(void)
|
||||
static void Task_MoveDeoxysRock_Step(u8 taskId)
|
||||
{
|
||||
s16 *data = gTasks[taskId].data;
|
||||
struct Sprite * sprite = &gSprites[data[1]];
|
||||
struct Sprite *sprite = &gSprites[data[1]];
|
||||
struct ObjectEvent * objectEvent;
|
||||
switch (data[0])
|
||||
{
|
||||
|
||||
+75
-75
@@ -13,26 +13,26 @@
|
||||
|
||||
#define OBJ_EVENT_PAL_TAG_NONE 0x11FF // duplicate of define in event_object_movement.c
|
||||
|
||||
static void UpdateObjectReflectionSprite(struct Sprite * sprite);
|
||||
static void LoadObjectReflectionPalette(struct ObjectEvent * objectEvent, struct Sprite * sprite);
|
||||
static void UpdateObjectReflectionSprite(struct Sprite *sprite);
|
||||
static void LoadObjectReflectionPalette(struct ObjectEvent * objectEvent, struct Sprite *sprite);
|
||||
static void LoadObjectHighBridgeReflectionPalette(struct ObjectEvent * objectEvent, u8 paletteNum);
|
||||
static void LoadObjectRegularReflectionPalette(struct ObjectEvent * objectEvent, u8 paletteNum);
|
||||
static void UpdateGrassFieldEffectSubpriority(struct Sprite * sprite, u8 z, u8 offset);
|
||||
static void FadeFootprintsTireTracks_Step0(struct Sprite * sprite);
|
||||
static void FadeFootprintsTireTracks_Step1(struct Sprite * sprite);
|
||||
static void UpdateFeetInFlowingWaterFieldEffect(struct Sprite * sprite);
|
||||
static void UpdateAshFieldEffect_Step0(struct Sprite * sprite);
|
||||
static void UpdateAshFieldEffect_Step1(struct Sprite * sprite);
|
||||
static void UpdateAshFieldEffect_Step2(struct Sprite * sprite);
|
||||
static void SynchroniseSurfAnim(struct ObjectEvent * objectEvent, struct Sprite * sprite);
|
||||
static void SynchroniseSurfPosition(struct ObjectEvent * objectEvent, struct Sprite * sprite);
|
||||
static void CreateBobbingEffect(struct ObjectEvent * objectEvent, struct Sprite * linkedSprite, struct Sprite * sprite);
|
||||
static void SpriteCB_UnderwaterSurfBlob(struct Sprite * sprite);
|
||||
static void UpdateGrassFieldEffectSubpriority(struct Sprite *sprite, u8 z, u8 offset);
|
||||
static void FadeFootprintsTireTracks_Step0(struct Sprite *sprite);
|
||||
static void FadeFootprintsTireTracks_Step1(struct Sprite *sprite);
|
||||
static void UpdateFeetInFlowingWaterFieldEffect(struct Sprite *sprite);
|
||||
static void UpdateAshFieldEffect_Step0(struct Sprite *sprite);
|
||||
static void UpdateAshFieldEffect_Step1(struct Sprite *sprite);
|
||||
static void UpdateAshFieldEffect_Step2(struct Sprite *sprite);
|
||||
static void SynchroniseSurfAnim(struct ObjectEvent * objectEvent, struct Sprite *sprite);
|
||||
static void SynchroniseSurfPosition(struct ObjectEvent * objectEvent, struct Sprite *sprite);
|
||||
static void CreateBobbingEffect(struct ObjectEvent * objectEvent, struct Sprite *linkedSprite, struct Sprite *sprite);
|
||||
static void SpriteCB_UnderwaterSurfBlob(struct Sprite *sprite);
|
||||
static u32 ShowDisguiseFieldEffect(u8 fldEff, u8 templateIdx, u8 paletteNum);
|
||||
|
||||
void SetUpReflection(struct ObjectEvent * objectEvent, struct Sprite * sprite, bool8 stillReflection)
|
||||
void SetUpReflection(struct ObjectEvent * objectEvent, struct Sprite *sprite, bool8 stillReflection)
|
||||
{
|
||||
struct Sprite * reflectionSprite;
|
||||
struct Sprite *reflectionSprite;
|
||||
|
||||
reflectionSprite = &gSprites[CreateCopySpriteAt(sprite, sprite->x, sprite->y, 0x98)];
|
||||
reflectionSprite->callback = UpdateObjectReflectionSprite;
|
||||
@@ -58,7 +58,7 @@ static s16 GetReflectionVerticalOffset(struct ObjectEvent * objectEvent)
|
||||
return GetObjectEventGraphicsInfo(objectEvent->graphicsId)->height - 2;
|
||||
}
|
||||
|
||||
static void LoadObjectReflectionPalette(struct ObjectEvent * objectEvent, struct Sprite * sprite)
|
||||
static void LoadObjectReflectionPalette(struct ObjectEvent * objectEvent, struct Sprite *sprite)
|
||||
{
|
||||
u8 bridgeType;
|
||||
u16 bridgeReflectionVerticalOffsets[] = { 12, 28, 44 };
|
||||
@@ -111,10 +111,10 @@ static void LoadObjectHighBridgeReflectionPalette(struct ObjectEvent * objectEve
|
||||
}
|
||||
}
|
||||
|
||||
static void UpdateObjectReflectionSprite(struct Sprite * reflectionSprite)
|
||||
static void UpdateObjectReflectionSprite(struct Sprite *reflectionSprite)
|
||||
{
|
||||
struct ObjectEvent * objectEvent;
|
||||
struct Sprite * mainSprite;
|
||||
struct Sprite *mainSprite;
|
||||
|
||||
objectEvent = &gObjectEvents[reflectionSprite->data[0]];
|
||||
mainSprite = &gSprites[objectEvent->spriteId];
|
||||
@@ -164,7 +164,7 @@ extern const struct SpriteTemplate * const gFieldEffectObjectTemplatePointers[];
|
||||
u8 CreateWarpArrowSprite(void)
|
||||
{
|
||||
u8 spriteId;
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
|
||||
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_ARROW], 0, 0, 0x52);
|
||||
if (spriteId != MAX_SPRITES)
|
||||
@@ -186,7 +186,7 @@ void ShowWarpArrowSprite(u8 spriteId, u8 direction, s16 x, s16 y)
|
||||
{
|
||||
s16 x2;
|
||||
s16 y2;
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
|
||||
sprite = &gSprites[spriteId];
|
||||
if (sprite->invisible || sprite->data[0] != x || sprite->data[1] != y)
|
||||
@@ -236,11 +236,11 @@ u32 FldEff_Shadow(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void UpdateShadowFieldEffect(struct Sprite * sprite)
|
||||
void UpdateShadowFieldEffect(struct Sprite *sprite)
|
||||
{
|
||||
u8 objectEventId;
|
||||
struct ObjectEvent * objectEvent;
|
||||
struct Sprite * linkedSprite;
|
||||
struct Sprite *linkedSprite;
|
||||
|
||||
if (TryGetObjectEventIdByLocalIdAndMap(sprite->data[0], sprite->data[1], sprite->data[2], &objectEventId))
|
||||
{
|
||||
@@ -270,7 +270,7 @@ u32 FldEff_TallGrass(void)
|
||||
s16 x;
|
||||
s16 y;
|
||||
u8 spriteId;
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
|
||||
x = gFieldEffectArguments[0];
|
||||
y = gFieldEffectArguments[1];
|
||||
@@ -295,7 +295,7 @@ u32 FldEff_TallGrass(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void UpdateTallGrassFieldEffect(struct Sprite * sprite)
|
||||
void UpdateTallGrassFieldEffect(struct Sprite *sprite)
|
||||
{
|
||||
u8 mapNum;
|
||||
u8 mapGroup;
|
||||
@@ -339,7 +339,7 @@ void UpdateTallGrassFieldEffect(struct Sprite * sprite)
|
||||
u32 FldEff_JumpTallGrass(void)
|
||||
{
|
||||
u8 spriteId;
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
|
||||
SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 12);
|
||||
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_TALL_GRASS], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
|
||||
@@ -356,7 +356,7 @@ u32 FldEff_JumpTallGrass(void)
|
||||
|
||||
u8 FindTallGrassFieldEffectSpriteId(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y)
|
||||
{
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
u8 i;
|
||||
|
||||
for (i = 0; i < MAX_SPRITES; i++)
|
||||
@@ -377,7 +377,7 @@ u32 FldEff_LongGrass(void)
|
||||
s16 x;
|
||||
s16 y;
|
||||
u8 spriteId;
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
|
||||
x = gFieldEffectArguments[0];
|
||||
y = gFieldEffectArguments[1];
|
||||
@@ -402,7 +402,7 @@ u32 FldEff_LongGrass(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void UpdateLongGrassFieldEffect(struct Sprite * sprite)
|
||||
void UpdateLongGrassFieldEffect(struct Sprite *sprite)
|
||||
{
|
||||
u8 mapNum;
|
||||
u8 mapGroup;
|
||||
@@ -442,7 +442,7 @@ void UpdateLongGrassFieldEffect(struct Sprite * sprite)
|
||||
u32 FldEff_JumpLongGrass(void)
|
||||
{
|
||||
u8 spriteId;
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
|
||||
SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
|
||||
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_LONG_GRASS], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
|
||||
@@ -462,7 +462,7 @@ u32 FldEff_ShortGrass(void)
|
||||
u8 objectEventId;
|
||||
struct ObjectEvent * objectEvent;
|
||||
u8 spriteId;
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
|
||||
objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
|
||||
objectEvent = &gObjectEvents[objectEventId];
|
||||
@@ -481,13 +481,13 @@ u32 FldEff_ShortGrass(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void UpdateShortGrassFieldEffect(struct Sprite * sprite)
|
||||
void UpdateShortGrassFieldEffect(struct Sprite *sprite)
|
||||
{
|
||||
u8 objectEventId;
|
||||
s16 x;
|
||||
s16 y;
|
||||
const struct ObjectEventGraphicsInfo * graphicsInfo;
|
||||
struct Sprite * linkedSprite;
|
||||
struct Sprite *linkedSprite;
|
||||
|
||||
if (TryGetObjectEventIdByLocalIdAndMap(sprite->data[0], sprite->data[1], sprite->data[2], &objectEventId) || !gObjectEvents[objectEventId].inShortGrass)
|
||||
{
|
||||
@@ -520,7 +520,7 @@ void UpdateShortGrassFieldEffect(struct Sprite * sprite)
|
||||
u32 FldEff_SandFootprints(void)
|
||||
{
|
||||
u8 spriteId;
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
|
||||
SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
|
||||
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SAND_FOOTPRINTS], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
|
||||
@@ -538,7 +538,7 @@ u32 FldEff_SandFootprints(void)
|
||||
u32 FldEff_DeepSandFootprints(void)
|
||||
{
|
||||
u8 spriteId;
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
|
||||
SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
|
||||
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_DEEP_SAND_FOOTPRINTS], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
|
||||
@@ -556,7 +556,7 @@ u32 FldEff_DeepSandFootprints(void)
|
||||
u32 FldEff_BikeTireTracks(void)
|
||||
{
|
||||
u8 spriteId;
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
|
||||
SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
|
||||
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_BIKE_TIRE_TRACKS], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
|
||||
@@ -571,17 +571,17 @@ u32 FldEff_BikeTireTracks(void)
|
||||
return spriteId;
|
||||
}
|
||||
|
||||
void (*const gFadeFootprintsTireTracksFuncs[])(struct Sprite * sprite) = {
|
||||
void (*const gFadeFootprintsTireTracksFuncs[])(struct Sprite *sprite) = {
|
||||
FadeFootprintsTireTracks_Step0,
|
||||
FadeFootprintsTireTracks_Step1
|
||||
};
|
||||
|
||||
void UpdateFootprintsTireTracksFieldEffect(struct Sprite * sprite)
|
||||
void UpdateFootprintsTireTracksFieldEffect(struct Sprite *sprite)
|
||||
{
|
||||
gFadeFootprintsTireTracksFuncs[sprite->data[0]](sprite);
|
||||
}
|
||||
|
||||
static void FadeFootprintsTireTracks_Step0(struct Sprite * sprite)
|
||||
static void FadeFootprintsTireTracks_Step0(struct Sprite *sprite)
|
||||
{
|
||||
// Wait 40 frames before the flickering starts.
|
||||
if (++sprite->data[1] > 40)
|
||||
@@ -590,7 +590,7 @@ static void FadeFootprintsTireTracks_Step0(struct Sprite * sprite)
|
||||
UpdateObjectEventSpriteVisibility(sprite, FALSE);
|
||||
}
|
||||
|
||||
static void FadeFootprintsTireTracks_Step1(struct Sprite * sprite)
|
||||
static void FadeFootprintsTireTracks_Step1(struct Sprite *sprite)
|
||||
{
|
||||
sprite->invisible ^= 1;
|
||||
sprite->data[1]++;
|
||||
@@ -606,9 +606,9 @@ u32 FldEff_Splash(void)
|
||||
u8 objectEventId;
|
||||
struct ObjectEvent * objectEvent;
|
||||
u8 spriteId;
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
const struct ObjectEventGraphicsInfo * graphicsInfo;
|
||||
struct Sprite * linkedSprite;
|
||||
struct Sprite *linkedSprite;
|
||||
|
||||
objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
|
||||
objectEvent = &gObjectEvents[objectEventId];
|
||||
@@ -629,7 +629,7 @@ u32 FldEff_Splash(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void UpdateSplashFieldEffect(struct Sprite * sprite)
|
||||
void UpdateSplashFieldEffect(struct Sprite *sprite)
|
||||
{
|
||||
u8 objectEventId;
|
||||
|
||||
@@ -648,7 +648,7 @@ void UpdateSplashFieldEffect(struct Sprite * sprite)
|
||||
u32 FldEff_JumpSmallSplash(void)
|
||||
{
|
||||
u8 spriteId;
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
|
||||
SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 12);
|
||||
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_SMALL_SPLASH], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
|
||||
@@ -666,7 +666,7 @@ u32 FldEff_JumpSmallSplash(void)
|
||||
u32 FldEff_JumpBigSplash(void)
|
||||
{
|
||||
u8 spriteId;
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
|
||||
SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
|
||||
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_BIG_SPLASH], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
|
||||
@@ -686,7 +686,7 @@ u32 FldEff_FeetInFlowingWater(void)
|
||||
u8 objectEventId;
|
||||
struct ObjectEvent * objectEvent;
|
||||
u8 spriteId;
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
const struct ObjectEventGraphicsInfo * graphicsInfo;
|
||||
|
||||
objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
|
||||
@@ -710,10 +710,10 @@ u32 FldEff_FeetInFlowingWater(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void UpdateFeetInFlowingWaterFieldEffect(struct Sprite * sprite)
|
||||
static void UpdateFeetInFlowingWaterFieldEffect(struct Sprite *sprite)
|
||||
{
|
||||
u8 objectEventId;
|
||||
struct Sprite * linkedSprite;
|
||||
struct Sprite *linkedSprite;
|
||||
struct ObjectEvent * objectEvent;
|
||||
|
||||
if (TryGetObjectEventIdByLocalIdAndMap(sprite->data[0], sprite->data[1], sprite->data[2], &objectEventId) || !gObjectEvents[objectEventId].inShallowFlowingWater)
|
||||
@@ -743,7 +743,7 @@ static void UpdateFeetInFlowingWaterFieldEffect(struct Sprite * sprite)
|
||||
u32 FldEff_Ripple(void)
|
||||
{
|
||||
u8 spriteId;
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
|
||||
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_RIPPLE], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
|
||||
if (spriteId != MAX_SPRITES)
|
||||
@@ -761,7 +761,7 @@ u32 FldEff_HotSpringsWater(void)
|
||||
u8 objectEventId;
|
||||
struct ObjectEvent * objectEvent;
|
||||
u8 spriteId;
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
|
||||
objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
|
||||
objectEvent = &gObjectEvents[objectEventId];
|
||||
@@ -780,11 +780,11 @@ u32 FldEff_HotSpringsWater(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void UpdateHotSpringsWaterFieldEffect(struct Sprite * sprite)
|
||||
void UpdateHotSpringsWaterFieldEffect(struct Sprite *sprite)
|
||||
{
|
||||
u8 objectEventId;
|
||||
const struct ObjectEventGraphicsInfo * graphicsInfo;
|
||||
struct Sprite * linkedSprite;
|
||||
struct Sprite *linkedSprite;
|
||||
|
||||
if (TryGetObjectEventIdByLocalIdAndMap(sprite->data[0], sprite->data[1], sprite->data[2], &objectEventId) || !gObjectEvents[objectEventId].inHotSprings)
|
||||
{
|
||||
@@ -885,7 +885,7 @@ u32 FldEff_Ash(void)
|
||||
s16 x;
|
||||
s16 y;
|
||||
u8 spriteId;
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
|
||||
x = gFieldEffectArguments[0];
|
||||
y = gFieldEffectArguments[1];
|
||||
@@ -904,18 +904,18 @@ u32 FldEff_Ash(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void (*const gAshFieldEffectFuncs[])(struct Sprite * sprite) = {
|
||||
void (*const gAshFieldEffectFuncs[])(struct Sprite *sprite) = {
|
||||
UpdateAshFieldEffect_Step0,
|
||||
UpdateAshFieldEffect_Step1,
|
||||
UpdateAshFieldEffect_Step2
|
||||
};
|
||||
|
||||
void UpdateAshFieldEffect(struct Sprite * sprite)
|
||||
void UpdateAshFieldEffect(struct Sprite *sprite)
|
||||
{
|
||||
gAshFieldEffectFuncs[sprite->data[0]](sprite);
|
||||
}
|
||||
|
||||
static void UpdateAshFieldEffect_Step0(struct Sprite * sprite)
|
||||
static void UpdateAshFieldEffect_Step0(struct Sprite *sprite)
|
||||
{
|
||||
sprite->invisible = TRUE;
|
||||
sprite->animPaused = TRUE;
|
||||
@@ -923,7 +923,7 @@ static void UpdateAshFieldEffect_Step0(struct Sprite * sprite)
|
||||
sprite->data[0] = 1;
|
||||
}
|
||||
|
||||
static void UpdateAshFieldEffect_Step1(struct Sprite * sprite)
|
||||
static void UpdateAshFieldEffect_Step1(struct Sprite *sprite)
|
||||
{
|
||||
sprite->invisible = FALSE;
|
||||
sprite->animPaused = FALSE;
|
||||
@@ -933,7 +933,7 @@ static void UpdateAshFieldEffect_Step1(struct Sprite * sprite)
|
||||
sprite->data[0] = 2;
|
||||
}
|
||||
|
||||
static void UpdateAshFieldEffect_Step2(struct Sprite * sprite)
|
||||
static void UpdateAshFieldEffect_Step2(struct Sprite *sprite)
|
||||
{
|
||||
UpdateObjectEventSpriteVisibility(sprite, FALSE);
|
||||
if (sprite->animEnded)
|
||||
@@ -1089,7 +1089,7 @@ static void CreateBobbingEffect(struct ObjectEvent *objectEvent, struct Sprite *
|
||||
u8 StartUnderwaterSurfBlobBobbing(u8 oldSpriteId)
|
||||
{
|
||||
u8 spriteId;
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
|
||||
spriteId = CreateSpriteAtEnd(&gDummySpriteTemplate, 0, 0, -1);
|
||||
sprite = &gSprites[spriteId];
|
||||
@@ -1100,9 +1100,9 @@ u8 StartUnderwaterSurfBlobBobbing(u8 oldSpriteId)
|
||||
return spriteId;
|
||||
}
|
||||
|
||||
static void SpriteCB_UnderwaterSurfBlob(struct Sprite * sprite)
|
||||
static void SpriteCB_UnderwaterSurfBlob(struct Sprite *sprite)
|
||||
{
|
||||
struct Sprite * oldSprite;
|
||||
struct Sprite *oldSprite;
|
||||
|
||||
oldSprite = &gSprites[sprite->data[0]];
|
||||
if (((sprite->data[2]++) & 0x03) == 0)
|
||||
@@ -1118,7 +1118,7 @@ static void SpriteCB_UnderwaterSurfBlob(struct Sprite * sprite)
|
||||
u32 FldEff_Dust(void)
|
||||
{
|
||||
u8 spriteId;
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
|
||||
SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 12);
|
||||
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_GROUND_IMPACT_DUST], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
|
||||
@@ -1138,7 +1138,7 @@ u32 FldEff_SandPile(void)
|
||||
u8 objectEventId;
|
||||
struct ObjectEvent * objectEvent;
|
||||
u8 spriteId;
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
const struct ObjectEventGraphicsInfo * graphicsInfo;
|
||||
|
||||
objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
|
||||
@@ -1161,7 +1161,7 @@ u32 FldEff_SandPile(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void UpdateSandPileFieldEffect(struct Sprite * sprite)
|
||||
void UpdateSandPileFieldEffect(struct Sprite *sprite)
|
||||
{
|
||||
u8 objectEventId;
|
||||
s16 x;
|
||||
@@ -1194,7 +1194,7 @@ void UpdateSandPileFieldEffect(struct Sprite * sprite)
|
||||
u32 FldEff_Bubbles(void)
|
||||
{
|
||||
u8 spriteId;
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
|
||||
SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 0);
|
||||
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_BUBBLES], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x52);
|
||||
@@ -1207,7 +1207,7 @@ u32 FldEff_Bubbles(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void UpdateBubblesFieldEffect(struct Sprite * sprite)
|
||||
void UpdateBubblesFieldEffect(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[0] += 0x80;
|
||||
sprite->data[0] &= 0x100;
|
||||
@@ -1222,7 +1222,7 @@ void UpdateBubblesFieldEffect(struct Sprite * sprite)
|
||||
u32 FldEff_BerryTreeGrowthSparkle(void)
|
||||
{
|
||||
/*u8 spriteId;
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
|
||||
SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 4);
|
||||
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SPARKLE], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
|
||||
@@ -1255,7 +1255,7 @@ u32 ShowSandDisguiseFieldEffect(void)
|
||||
static u32 ShowDisguiseFieldEffect(u8 fldEff, u8 templateIdx, u8 paletteNum)
|
||||
{
|
||||
u8 spriteId;
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
|
||||
if (TryGetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2], &spriteId))
|
||||
{
|
||||
@@ -1276,11 +1276,11 @@ static u32 ShowDisguiseFieldEffect(u8 fldEff, u8 templateIdx, u8 paletteNum)
|
||||
return spriteId;
|
||||
}
|
||||
|
||||
void UpdateDisguiseFieldEffect(struct Sprite * sprite)
|
||||
void UpdateDisguiseFieldEffect(struct Sprite *sprite)
|
||||
{
|
||||
u8 objectEventId;
|
||||
const struct ObjectEventGraphicsInfo * graphicsInfo;
|
||||
struct Sprite * linkedSprite;
|
||||
struct Sprite *linkedSprite;
|
||||
|
||||
if (TryGetObjectEventIdByLocalIdAndMap(sprite->data[2], sprite->data[3], sprite->data[4], &objectEventId))
|
||||
{
|
||||
@@ -1318,7 +1318,7 @@ void StartRevealDisguise(struct ObjectEvent * objectEvent)
|
||||
|
||||
bool8 UpdateRevealDisguise(struct ObjectEvent * objectEvent)
|
||||
{
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
|
||||
if (objectEvent->directionSequenceIndex == 2)
|
||||
{
|
||||
@@ -1354,7 +1354,7 @@ u32 FldEff_Sparkle(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void UpdateSparkleFieldEffect(struct Sprite * sprite)
|
||||
void UpdateSparkleFieldEffect(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[0] == 0)
|
||||
{
|
||||
@@ -1372,7 +1372,7 @@ void UpdateSparkleFieldEffect(struct Sprite * sprite)
|
||||
FieldEffectStop(sprite, FLDEFF_SPARKLE);
|
||||
}
|
||||
|
||||
void UpdateJumpImpactEffect(struct Sprite * sprite)
|
||||
void UpdateJumpImpactEffect(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->animEnded)
|
||||
{
|
||||
@@ -1385,7 +1385,7 @@ void UpdateJumpImpactEffect(struct Sprite * sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void WaitFieldEffectSpriteAnim(struct Sprite * sprite)
|
||||
void WaitFieldEffectSpriteAnim(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->animEnded)
|
||||
FieldEffectStop(sprite, sprite->data[0]);
|
||||
@@ -1393,12 +1393,12 @@ void WaitFieldEffectSpriteAnim(struct Sprite * sprite)
|
||||
UpdateObjectEventSpriteVisibility(sprite, FALSE);
|
||||
}
|
||||
|
||||
static void UpdateGrassFieldEffectSubpriority(struct Sprite * sprite, u8 z, u8 offset)
|
||||
static void UpdateGrassFieldEffectSubpriority(struct Sprite *sprite, u8 z, u8 offset)
|
||||
{
|
||||
u8 i;
|
||||
s16 var, xhi, lyhi, yhi, ylo;
|
||||
const struct ObjectEventGraphicsInfo * graphicsInfo; // Unused Variable
|
||||
struct Sprite * linkedSprite;
|
||||
struct Sprite *linkedSprite;
|
||||
|
||||
SetObjectSubpriorityByZCoord(z, sprite, offset);
|
||||
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
|
||||
|
||||
@@ -32,7 +32,7 @@ static EWRAM_DATA u8 sTeleportSavedFacingDirection = DIR_NONE;
|
||||
EWRAM_DATA struct ObjectEvent gObjectEvents[OBJECT_EVENTS_COUNT] = {};
|
||||
EWRAM_DATA struct PlayerAvatar gPlayerAvatar = {};
|
||||
|
||||
static u8 ObjectEventCB2_NoMovement2(struct ObjectEvent * object, struct Sprite * sprite);
|
||||
static u8 ObjectEventCB2_NoMovement2(struct ObjectEvent * object, struct Sprite *sprite);
|
||||
static bool8 TryUpdatePlayerSpinDirection(void);
|
||||
static bool8 TryInterruptObjectEventSpecialAnim(struct ObjectEvent * playerObjEvent, u8 direction);
|
||||
static void npc_clear_strange_bits(struct ObjectEvent * playerObjEvent);
|
||||
@@ -128,7 +128,7 @@ void MovementType_Player(struct Sprite *sprite)
|
||||
UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, ObjectEventCB2_NoMovement2);
|
||||
}
|
||||
|
||||
static u8 ObjectEventCB2_NoMovement2(struct ObjectEvent * object, struct Sprite * sprite)
|
||||
static u8 ObjectEventCB2_NoMovement2(struct ObjectEvent * object, struct Sprite *sprite)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@@ -1952,7 +1952,7 @@ static bool8 Fishing16(struct Task *task)
|
||||
#undef tFrameCounter
|
||||
#undef tFishingRod
|
||||
|
||||
void AlignFishingAnimationFrames(struct Sprite * playerSprite)
|
||||
void AlignFishingAnimationFrames(struct Sprite *playerSprite)
|
||||
{
|
||||
u8 animCmdIndex;
|
||||
u8 animType;
|
||||
|
||||
+6
-6
@@ -28,9 +28,9 @@ static void FieldCallback_CutGrass(void);
|
||||
static void FieldCallback_CutTree(void);
|
||||
static void FieldMoveCallback_CutGrass(void);
|
||||
static void SetCutGrassMetatileAt(s16 x, s16 y);
|
||||
static void SpriteCallback_CutGrass_Init(struct Sprite * sprite);
|
||||
static void SpriteCallback_CutGrass_Run(struct Sprite * sprite);
|
||||
static void SpriteCallback_CutGrass_Cleanup(struct Sprite * sprite);
|
||||
static void SpriteCallback_CutGrass_Init(struct Sprite *sprite);
|
||||
static void SpriteCallback_CutGrass_Run(struct Sprite *sprite);
|
||||
static void SpriteCallback_CutGrass_Cleanup(struct Sprite *sprite);
|
||||
static void FieldMoveCallback_CutTree(void);
|
||||
|
||||
static const u16 sCutGrassMetatileMapping[][2] = {
|
||||
@@ -251,7 +251,7 @@ static void SetCutGrassMetatileAt(s16 x, s16 y)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCallback_CutGrass_Init(struct Sprite * sprite)
|
||||
static void SpriteCallback_CutGrass_Init(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[0] = 8;
|
||||
sprite->data[1] = 0;
|
||||
@@ -259,7 +259,7 @@ static void SpriteCallback_CutGrass_Init(struct Sprite * sprite)
|
||||
sprite->callback = SpriteCallback_CutGrass_Run;
|
||||
}
|
||||
|
||||
static void SpriteCallback_CutGrass_Run(struct Sprite * sprite)
|
||||
static void SpriteCallback_CutGrass_Run(struct Sprite *sprite)
|
||||
{
|
||||
sprite->x2 = Sin(sprite->data[2], sprite->data[0]);
|
||||
sprite->y2 = Cos(sprite->data[2], sprite->data[0]);
|
||||
@@ -274,7 +274,7 @@ static void SpriteCallback_CutGrass_Run(struct Sprite * sprite)
|
||||
sprite->callback = SpriteCallback_CutGrass_Cleanup;
|
||||
}
|
||||
|
||||
static void SpriteCallback_CutGrass_Cleanup(struct Sprite * sprite)
|
||||
static void SpriteCallback_CutGrass_Cleanup(struct Sprite *sprite)
|
||||
{
|
||||
u8 i;
|
||||
for (i = 1; i < CUT_GRASS_SPRITE_COUNT; i++)
|
||||
|
||||
+2
-2
@@ -1255,8 +1255,8 @@ const u32 gPSSMenu_Gfx[] = INCBIN_U32("graphics/interface/box_tiles.4bpp.lz");
|
||||
|
||||
const u32 gUnknown_8E9CAEC[] = INCBIN_U32("graphics/unknown/unknown_E9CAEC.bin.lz");
|
||||
|
||||
const u16 gUnknown_8E9CB9C[] = INCBIN_U16("graphics/misc/markings2.gbapal");
|
||||
const u16 gUnknown_8E9CBBC[] = INCBIN_U16("graphics/misc/markings2.4bpp");
|
||||
const u16 gMonMarkingsMenu_Pal[] = INCBIN_U16("graphics/misc/markings2.gbapal");
|
||||
const u16 gMonMarkingsMenu_Gfx[] = INCBIN_U16("graphics/misc/markings2.4bpp");
|
||||
|
||||
const u16 gTradeMenu_Pal[] = INCBIN_U16("graphics/trade/menu.gbapal");
|
||||
const u16 gTradeButtons_Pal[] = INCBIN_U16("graphics/trade/unknown_DDB444.gbapal");
|
||||
|
||||
+4
-4
@@ -87,8 +87,8 @@ static void ClearVramOamPltt_LoadHofPal(void);
|
||||
static void HofInit_ResetGpuBuffersAndLoadConfettiGfx(void);
|
||||
static void Hof_InitBgs(void);
|
||||
static bool8 DrawHofBackground(void);
|
||||
static void SpriteCB_GetOnScreen(struct Sprite * sprite);
|
||||
static void SpriteCB_Confetti(struct Sprite * sprite);
|
||||
static void SpriteCB_GetOnScreen(struct Sprite *sprite);
|
||||
static void SpriteCB_Confetti(struct Sprite *sprite);
|
||||
static bool8 Hof_SpawnConfetti(void);
|
||||
|
||||
static const struct BgTemplate sHof_BgTemplates[] = {
|
||||
@@ -1213,12 +1213,12 @@ static bool8 DrawHofBackground(void)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void SpriteCB_EndGetOnScreen(struct Sprite * sprite)
|
||||
static void SpriteCB_EndGetOnScreen(struct Sprite *sprite)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
static void SpriteCB_GetOnScreen(struct Sprite * sprite)
|
||||
static void SpriteCB_GetOnScreen(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->x != sprite->data[1]
|
||||
|| sprite->y != sprite->data[2])
|
||||
|
||||
+38
-38
@@ -27,12 +27,12 @@ struct IntroSequenceData
|
||||
u8 taskId;
|
||||
bool8 gengarAttackLanded;
|
||||
u16 data[6];
|
||||
struct Sprite * gameFreakLogoArtSprite;
|
||||
struct Sprite * nidorinoAnimSprite;
|
||||
struct Sprite * gengarStaticSprite;
|
||||
struct Sprite * nidorinoStaticSprite;
|
||||
struct Sprite * grassSprite;
|
||||
struct Sprite * gengarBackSpriteArray[4];
|
||||
struct Sprite *gameFreakLogoArtSprite;
|
||||
struct Sprite *nidorinoAnimSprite;
|
||||
struct Sprite *gengarStaticSprite;
|
||||
struct Sprite *nidorinoStaticSprite;
|
||||
struct Sprite *grassSprite;
|
||||
struct Sprite *gengarBackSpriteArray[4];
|
||||
u8 filler_0038[0x4];
|
||||
u8 gamefreakLogoArtSpriteTiles[0x400];
|
||||
u8 gamefreakTextBitmap[0x400];
|
||||
@@ -85,7 +85,7 @@ static void IntroCB_FightScene3(struct IntroSequenceData * ptr);
|
||||
static void FightScene3_StartBg1Scroll(void);
|
||||
static void Task_FightScene3_ForestBgScroll(u8 taskId);
|
||||
static void CreateGrassSprite(struct IntroSequenceData * ptr);
|
||||
static void SpriteCB_Grass(struct Sprite * sprite);
|
||||
static void SpriteCB_Grass(struct Sprite *sprite);
|
||||
static void IntroCB_FightScene4(struct IntroSequenceData * ptr);
|
||||
static void CreateGengarBackSprite(struct IntroSequenceData * ptr);
|
||||
static void FightScene4_StartNidorinoAffineAnim(struct IntroSequenceData * ptr);
|
||||
@@ -96,31 +96,31 @@ static void GameFreakScene_StartTrailingSparkleSpawner(void);
|
||||
static void Task_GameFreakScene_TrailingSparkleSpawner(u8 taskId);
|
||||
static void GameFreakScene_StartRevealGameFreakTextSparklesSpawner(void);
|
||||
static void Task_RevealGameFreakTextSparklesSpawner(u8 taskId);
|
||||
static struct Sprite * CreateGameFreakLogoArtSprite(void);
|
||||
static struct Sprite *CreateGameFreakLogoArtSprite(void);
|
||||
static void FightScene4_StartGengarAttack(struct IntroSequenceData * ptr);
|
||||
static void Task_FightScene4_GengarAttack(u8 taskId);
|
||||
static void FightScene4_CreateGengarSwipeSprites(void);
|
||||
static void SpriteCB_GengarSwipe(struct Sprite * sprite);
|
||||
static void SpriteCB_GengarSwipe(struct Sprite *sprite);
|
||||
static void Task_FightScene3_Bg0Scroll(u8 taskId);
|
||||
static void SpriteCB_LargeStar(struct Sprite * sprite);
|
||||
static void SpriteCB_TrailingSparkles(struct Sprite * sprite);
|
||||
static void SpriteCB_TrailingSparkles2(struct Sprite * sprite);
|
||||
static void SpriteCB_RevealGameFreakTextSparkles(struct Sprite * sprite);
|
||||
static void SpriteCB_LargeStar(struct Sprite *sprite);
|
||||
static void SpriteCB_TrailingSparkles(struct Sprite *sprite);
|
||||
static void SpriteCB_TrailingSparkles2(struct Sprite *sprite);
|
||||
static void SpriteCB_RevealGameFreakTextSparkles(struct Sprite *sprite);
|
||||
static void CreateNidorinoAnimSprite(struct IntroSequenceData * ptr);
|
||||
static void StartNidorinoAnimSpriteSlideIn(struct Sprite * sprite, s16 x0, s16 x1, u16 speed);
|
||||
static void SpriteCB_NidorinoAnimSpriteSlideIn(struct Sprite * sprite);
|
||||
static void StartNidorinoAnimSpriteSlideIn(struct Sprite *sprite, s16 x0, s16 x1, u16 speed);
|
||||
static void SpriteCB_NidorinoAnimSpriteSlideIn(struct Sprite *sprite);
|
||||
static bool32 IsNidorinoAnimSpriteSlideInRunning(struct IntroSequenceData * ptr);
|
||||
static void FightScene4_NidorinoRearsUp(struct IntroSequenceData * ptr);
|
||||
static void SpriteCB_NidorinoRearsUp(struct Sprite * sprite);
|
||||
static void SpriteCB_NidorinoRearsUp(struct Sprite *sprite);
|
||||
static void FightScene4_StartNidorinoRecoilAnim(struct IntroSequenceData * ptr);
|
||||
static void SpriteCB_NidorinoRecoil(struct Sprite * sprite);
|
||||
static void SpriteCB_NidorinoRecoil(struct Sprite *sprite);
|
||||
static bool8 FightScene4_NidorinoAnimIsRunning(struct IntroSequenceData * ptr);
|
||||
static void CreateNidorinoRecoilDustSprites(s16 a1, s16 a2, s16 a3);
|
||||
static void SpriteCB_NidorinoRecoilDust(struct Sprite * sprite);
|
||||
static void StartSpriteHopToPosAnim(struct Sprite * sprite, u16 a1, s16 a2, u8 a3);
|
||||
static void SpriteCB_HopToPos(struct Sprite * sprite);
|
||||
static void SpriteCB_NidorinoRecoilDust(struct Sprite *sprite);
|
||||
static void StartSpriteHopToPosAnim(struct Sprite *sprite, u16 a1, s16 a2, u8 a3);
|
||||
static void SpriteCB_HopToPos(struct Sprite *sprite);
|
||||
static void StartNidorinoAnim_LaunchSelfAtGengarAnim(struct IntroSequenceData * ptr);
|
||||
static void SpriteCB_NidorinoAnim_LaunchSelfAtGengar(struct Sprite * sprite);
|
||||
static void SpriteCB_NidorinoAnim_LaunchSelfAtGengar(struct Sprite *sprite);
|
||||
static void LoadFightSceneSpriteTilesAndPals(void);
|
||||
#if REVISION >= 1
|
||||
static void Rev1_GameFreakScene_CreatePresentsText(void);
|
||||
@@ -1524,7 +1524,7 @@ static void CreateGrassSprite(struct IntroSequenceData * this)
|
||||
this->grassSprite = NULL;
|
||||
}
|
||||
|
||||
static void SpriteCB_Grass(struct Sprite * sprite)
|
||||
static void SpriteCB_Grass(struct Sprite *sprite)
|
||||
{
|
||||
s16 * data = sprite->data;
|
||||
|
||||
@@ -1695,7 +1695,7 @@ static void IntroCB_FightScene4(struct IntroSequenceData * this)
|
||||
}
|
||||
}
|
||||
|
||||
static void FightScene_CalcCenterToCornerVec(struct Sprite * sprite)
|
||||
static void FightScene_CalcCenterToCornerVec(struct Sprite *sprite)
|
||||
{
|
||||
CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode);
|
||||
}
|
||||
@@ -1730,7 +1730,7 @@ static void FightScene4_StartNidorinoAffineAnim(struct IntroSequenceData * this)
|
||||
StartSpriteAffineAnim(this->nidorinoAnimSprite, 1);
|
||||
}
|
||||
|
||||
static void SpriteCB_DummyButNotDummy(struct Sprite * sprite)
|
||||
static void SpriteCB_DummyButNotDummy(struct Sprite *sprite)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -1889,7 +1889,7 @@ static void Task_RevealGameFreakTextSparklesSpawner(u8 taskId)
|
||||
data[0] = 0;
|
||||
}
|
||||
|
||||
static struct Sprite * CreateGameFreakLogoArtSprite(void)
|
||||
static struct Sprite *CreateGameFreakLogoArtSprite(void)
|
||||
{
|
||||
u8 spriteId = CreateSprite(&sSpriteTemplate_GameFreakLogoArt, 120, 70, 4);
|
||||
return &gSprites[spriteId];
|
||||
@@ -2009,7 +2009,7 @@ static void FightScene4_CreateGengarSwipeSprites(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCB_GengarSwipe(struct Sprite * sprite)
|
||||
static void SpriteCB_GengarSwipe(struct Sprite *sprite)
|
||||
{
|
||||
sprite->invisible ^= TRUE;
|
||||
if (sprite->animEnded)
|
||||
@@ -2043,7 +2043,7 @@ static void Task_FightScene3_Bg0Scroll(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCB_LargeStar(struct Sprite * sprite)
|
||||
static void SpriteCB_LargeStar(struct Sprite *sprite)
|
||||
{
|
||||
unsigned v;
|
||||
sprite->data[0] -= sprite->data[2];
|
||||
@@ -2065,7 +2065,7 @@ static void SpriteCB_LargeStar(struct Sprite * sprite)
|
||||
DestroySprite(sprite);
|
||||
}
|
||||
|
||||
static void SpriteCB_TrailingSparkles(struct Sprite * sprite)
|
||||
static void SpriteCB_TrailingSparkles(struct Sprite *sprite)
|
||||
{
|
||||
u32 v;
|
||||
|
||||
@@ -2088,7 +2088,7 @@ static void SpriteCB_TrailingSparkles(struct Sprite * sprite)
|
||||
DestroySprite(sprite);
|
||||
}
|
||||
|
||||
static void SpriteCB_TrailingSparkles2(struct Sprite * sprite)
|
||||
static void SpriteCB_TrailingSparkles2(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[2])
|
||||
{
|
||||
@@ -2137,7 +2137,7 @@ static void SpriteCB_TrailingSparkles2(struct Sprite * sprite)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCB_RevealGameFreakTextSparkles(struct Sprite * sprite)
|
||||
static void SpriteCB_RevealGameFreakTextSparkles(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->animEnded)
|
||||
DestroySprite(sprite);
|
||||
@@ -2149,7 +2149,7 @@ static void CreateNidorinoAnimSprite(struct IntroSequenceData * this)
|
||||
this->nidorinoAnimSprite = &gSprites[spriteId];
|
||||
}
|
||||
|
||||
static void StartNidorinoAnimSpriteSlideIn(struct Sprite * sprite, s16 x0, s16 x1, u16 speed)
|
||||
static void StartNidorinoAnimSpriteSlideIn(struct Sprite *sprite, s16 x0, s16 x1, u16 speed)
|
||||
{
|
||||
sprite->data[0] = x0 << 4;
|
||||
sprite->data[1] = ((x1 - x0) << 4) / speed;
|
||||
@@ -2161,7 +2161,7 @@ static void StartNidorinoAnimSpriteSlideIn(struct Sprite * sprite, s16 x0, s16 x
|
||||
sprite->callback = SpriteCB_NidorinoAnimSpriteSlideIn;
|
||||
}
|
||||
|
||||
static void SpriteCB_NidorinoAnimSpriteSlideIn(struct Sprite * sprite)
|
||||
static void SpriteCB_NidorinoAnimSpriteSlideIn(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[4]++;
|
||||
if (sprite->data[4] >= 40)
|
||||
@@ -2192,7 +2192,7 @@ static void FightScene4_NidorinoRearsUp(struct IntroSequenceData * ptr)
|
||||
ptr->nidorinoAnimSprite->callback = SpriteCB_NidorinoRearsUp;
|
||||
}
|
||||
|
||||
static void SpriteCB_NidorinoRearsUp(struct Sprite * sprite)
|
||||
static void SpriteCB_NidorinoRearsUp(struct Sprite *sprite)
|
||||
{
|
||||
switch (sprite->data[0])
|
||||
{
|
||||
@@ -2244,7 +2244,7 @@ static void FightScene4_StartNidorinoRecoilAnim(struct IntroSequenceData * ptr)
|
||||
ptr->nidorinoAnimSprite->callback = SpriteCB_NidorinoRecoil;
|
||||
}
|
||||
|
||||
static void SpriteCB_NidorinoRecoil(struct Sprite * sprite)
|
||||
static void SpriteCB_NidorinoRecoil(struct Sprite *sprite)
|
||||
{
|
||||
switch (sprite->data[0])
|
||||
{
|
||||
@@ -2326,7 +2326,7 @@ static void CreateNidorinoRecoilDustSprites(s16 x, s16 y, s16 seed)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCB_NidorinoRecoilDust(struct Sprite * sprite)
|
||||
static void SpriteCB_NidorinoRecoilDust(struct Sprite *sprite)
|
||||
{
|
||||
s16 * data = sprite->data;
|
||||
|
||||
@@ -2354,7 +2354,7 @@ static void SpriteCB_NidorinoRecoilDust(struct Sprite * sprite)
|
||||
}
|
||||
}
|
||||
|
||||
static void StartSpriteHopToPosAnim(struct Sprite * sprite, u16 a1, s16 a2, u8 a3)
|
||||
static void StartSpriteHopToPosAnim(struct Sprite *sprite, u16 a1, s16 a2, u8 a3)
|
||||
{
|
||||
sprite->data[0] = 0;
|
||||
sprite->data[1] = a1;
|
||||
@@ -2368,7 +2368,7 @@ static void StartSpriteHopToPosAnim(struct Sprite * sprite, u16 a1, s16 a2, u8 a
|
||||
sprite->callback = SpriteCB_HopToPos;
|
||||
}
|
||||
|
||||
static void SpriteCB_HopToPos(struct Sprite * sprite)
|
||||
static void SpriteCB_HopToPos(struct Sprite *sprite)
|
||||
{
|
||||
switch (sprite->data[0])
|
||||
{
|
||||
@@ -2434,7 +2434,7 @@ static void StartNidorinoAnim_LaunchSelfAtGengarAnim(struct IntroSequenceData *
|
||||
ptr->nidorinoAnimSprite->callback = SpriteCB_NidorinoAnim_LaunchSelfAtGengar;
|
||||
}
|
||||
|
||||
static void SpriteCB_NidorinoAnim_LaunchSelfAtGengar(struct Sprite * sprite)
|
||||
static void SpriteCB_NidorinoAnim_LaunchSelfAtGengar(struct Sprite *sprite)
|
||||
{
|
||||
switch (sprite->data[0])
|
||||
{
|
||||
|
||||
+1
-1
@@ -64,7 +64,7 @@ struct BagSlots
|
||||
|
||||
EWRAM_DATA struct BagStruct gBagMenuState = {};
|
||||
static EWRAM_DATA struct BagMenuAlloc * sBagMenuDisplay = NULL;
|
||||
static EWRAM_DATA void * sBagBgTilemapBuffer = NULL;
|
||||
static EWRAM_DATA void *sBagBgTilemapBuffer = NULL;
|
||||
static EWRAM_DATA struct ListMenuItem * sListMenuItems = NULL;
|
||||
static EWRAM_DATA u8 (*sListMenuItemStrings)[19] = NULL;
|
||||
static EWRAM_DATA u8 sContextMenuItemsBuffer[4] = {};
|
||||
|
||||
+10
-10
@@ -6,11 +6,11 @@
|
||||
#include "constants/items.h"
|
||||
|
||||
static EWRAM_DATA u8 sItemMenuIconSpriteIds[12] = {0};
|
||||
static EWRAM_DATA void * sItemIconTilesBuffer = NULL;
|
||||
static EWRAM_DATA void * sItemIconTilesBufferPadded = NULL;
|
||||
static EWRAM_DATA void *sItemIconTilesBuffer = NULL;
|
||||
static EWRAM_DATA void *sItemIconTilesBufferPadded = NULL;
|
||||
|
||||
static void SpriteCB_BagVisualSwitchingPockets(struct Sprite * sprite);
|
||||
static void SpriteCB_ShakeBagSprite(struct Sprite * sprite);
|
||||
static void SpriteCB_BagVisualSwitchingPockets(struct Sprite *sprite);
|
||||
static void SpriteCB_ShakeBagSprite(struct Sprite *sprite);
|
||||
|
||||
static const struct OamData sOamData_BagOrSatchel = {
|
||||
.affineMode = ST_OAM_AFFINE_NORMAL,
|
||||
@@ -561,13 +561,13 @@ void CreateBagOrSatchelSprite(u8 animNum)
|
||||
|
||||
void SetBagVisualPocketId(u8 animNum)
|
||||
{
|
||||
struct Sprite * sprite = &gSprites[sItemMenuIconSpriteIds[0]];
|
||||
struct Sprite *sprite = &gSprites[sItemMenuIconSpriteIds[0]];
|
||||
sprite->y2 = -5;
|
||||
sprite->callback = SpriteCB_BagVisualSwitchingPockets;
|
||||
StartSpriteAnim(sprite, animNum);
|
||||
}
|
||||
|
||||
static void SpriteCB_BagVisualSwitchingPockets(struct Sprite * sprite)
|
||||
static void SpriteCB_BagVisualSwitchingPockets(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->y2 != 0)
|
||||
sprite->y2++;
|
||||
@@ -577,7 +577,7 @@ static void SpriteCB_BagVisualSwitchingPockets(struct Sprite * sprite)
|
||||
|
||||
void ShakeBagSprite(void)
|
||||
{
|
||||
struct Sprite * sprite = &gSprites[sItemMenuIconSpriteIds[0]];
|
||||
struct Sprite *sprite = &gSprites[sItemMenuIconSpriteIds[0]];
|
||||
if (sprite->affineAnimEnded)
|
||||
{
|
||||
StartSpriteAffineAnim(sprite, 1);
|
||||
@@ -585,7 +585,7 @@ void ShakeBagSprite(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCB_ShakeBagSprite(struct Sprite * sprite)
|
||||
static void SpriteCB_ShakeBagSprite(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->affineAnimEnded)
|
||||
{
|
||||
@@ -658,7 +658,7 @@ static bool8 TryAllocItemIconTilesBuffers(void)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void CopyItemIconPicTo4x4Buffer(const void * src, void * dest)
|
||||
void CopyItemIconPicTo4x4Buffer(const void *src, void *dest)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
@@ -760,7 +760,7 @@ void DestroyItemMenuIcon(u8 idx)
|
||||
}
|
||||
}
|
||||
|
||||
const void * GetItemIconGfxPtr(u16 itemId, u8 attrId)
|
||||
const void *GetItemIconGfxPtr(u16 itemId, u8 attrId)
|
||||
{
|
||||
if (itemId > ITEM_N_A)
|
||||
itemId = ITEM_NONE;
|
||||
|
||||
+8
-8
@@ -28,11 +28,11 @@ static void Task_ItemfinderUnderfootDigUpItem(u8 taskId);
|
||||
static void DestroyArrowAndStarTiles(void);
|
||||
static void LoadArrowAndStarTiles(void);
|
||||
static void CreateArrowSprite(u8 animNum, u8 direction);
|
||||
static void SpriteCallback_Arrow(struct Sprite * sprite);
|
||||
static void SpriteCallback_DestroyArrow(struct Sprite * sprite);
|
||||
static void SpriteCallback_Arrow(struct Sprite *sprite);
|
||||
static void SpriteCallback_DestroyArrow(struct Sprite *sprite);
|
||||
static u8 CreateStarSprite(void);
|
||||
static void SpriteCallback_Star(struct Sprite * sprite);
|
||||
static void SpriteCallback_DestroyStar(struct Sprite * sprite);
|
||||
static void SpriteCallback_Star(struct Sprite *sprite);
|
||||
static void SpriteCallback_DestroyStar(struct Sprite *sprite);
|
||||
|
||||
#define ARROW_TILE_TAG 2000
|
||||
|
||||
@@ -592,7 +592,7 @@ static void CreateArrowSprite(u8 animNum, u8 direction)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCallback_Arrow(struct Sprite * sprite)
|
||||
static void SpriteCallback_Arrow(struct Sprite *sprite)
|
||||
{
|
||||
s16 x, y;
|
||||
sprite->spCurX += sprite->spDeltaX;
|
||||
@@ -606,7 +606,7 @@ static void SpriteCallback_Arrow(struct Sprite * sprite)
|
||||
sprite->callback = SpriteCallback_DestroyArrow;
|
||||
}
|
||||
|
||||
static void SpriteCallback_DestroyArrow(struct Sprite * sprite)
|
||||
static void SpriteCallback_DestroyArrow(struct Sprite *sprite)
|
||||
{
|
||||
FreeSpriteOamMatrix(sprite);
|
||||
DestroySprite(sprite);
|
||||
@@ -629,7 +629,7 @@ static u8 CreateStarSprite(void)
|
||||
return spriteId;
|
||||
}
|
||||
|
||||
static void SpriteCallback_Star(struct Sprite * sprite)
|
||||
static void SpriteCallback_Star(struct Sprite *sprite)
|
||||
{
|
||||
s16 x, y;
|
||||
sprite->spCurX += sprite->spDeltaX;
|
||||
@@ -643,7 +643,7 @@ static void SpriteCallback_Star(struct Sprite * sprite)
|
||||
sprite->callback = SpriteCallback_DestroyStar;
|
||||
}
|
||||
|
||||
static void SpriteCallback_DestroyStar(struct Sprite * sprite)
|
||||
static void SpriteCallback_DestroyStar(struct Sprite *sprite)
|
||||
{
|
||||
DestroySprite(sprite);
|
||||
}
|
||||
|
||||
+2
-2
@@ -159,7 +159,7 @@ static void MoveRelearnerStateMachine(void);
|
||||
static void DrawTextBorderOnWindows6and7(void);
|
||||
static void PrintTeachWhichMoveToStrVar1(bool8 onInit);
|
||||
static void InitMoveRelearnerStateVariables(void);
|
||||
static void SpriteCB_ListMenuScrollIndicators(struct Sprite * sprite);
|
||||
static void SpriteCB_ListMenuScrollIndicators(struct Sprite *sprite);
|
||||
static void SpawnListMenuScrollIndicatorSprites(void);
|
||||
static void MoveRelearnerInitListMenuBuffersEtc(void);
|
||||
static void MoveRelearnerMenuHandleInput(void);
|
||||
@@ -711,7 +711,7 @@ static void InitMoveRelearnerStateVariables(void)
|
||||
sMoveRelearner->learnableMoves[i] = MOVE_NONE;
|
||||
}
|
||||
|
||||
static void SpriteCB_ListMenuScrollIndicators(struct Sprite * sprite)
|
||||
static void SpriteCB_ListMenuScrollIndicators(struct Sprite *sprite)
|
||||
{
|
||||
s16 abcissa = (sprite->data[1] * 10) & 0xFF;
|
||||
switch (sprite->data[0])
|
||||
|
||||
+2
-2
@@ -61,7 +61,7 @@ static void UpdateChildStatuses(void);
|
||||
static s32 GetRfuRecvStatus(void);
|
||||
static void sub_80FA834(u8 taskId);
|
||||
static void ClearSelectedLinkPlayerIds(u16 disconnectMask);
|
||||
static void ValidateAndReceivePokemonSioInfo(void * a0);
|
||||
static void ValidateAndReceivePokemonSioInfo(void *a0);
|
||||
static void Task_ExchangeLinkPlayers(u8 taskId);
|
||||
static void sub_80FACF0(u8 taskId);
|
||||
static void GetLinkmanErrorParams(u32 msg);
|
||||
@@ -1220,7 +1220,7 @@ static void RfuPrepareSendBuffer(u16 command)
|
||||
}
|
||||
}
|
||||
|
||||
void Rfu_SendPacket(void * data)
|
||||
void Rfu_SendPacket(void *data)
|
||||
{
|
||||
if (IsSendCmdComplete() && !RfuHasErrored())
|
||||
{
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
// Some of these functions have different signatures, so we need to make this
|
||||
// an array of void pointers or a struct. It's simpler to just make it an array
|
||||
// for now.
|
||||
void * const gMPlayJumpTableTemplate[] =
|
||||
void *const gMPlayJumpTableTemplate[] =
|
||||
{
|
||||
ply_fine,
|
||||
ply_goto,
|
||||
|
||||
+3
-3
@@ -45,9 +45,9 @@ struct MailAttrStruct
|
||||
|
||||
struct MailGfxData
|
||||
{
|
||||
const void * pal;
|
||||
const void * tiles;
|
||||
const void * map;
|
||||
const void *pal;
|
||||
const void *tiles;
|
||||
const void *map;
|
||||
u32 size;
|
||||
u16 textpals[2];
|
||||
};
|
||||
|
||||
+2
-2
@@ -677,8 +677,8 @@ static void PrintBadgeCount(void)
|
||||
|
||||
static void LoadUserFrameToBg(u8 bgId)
|
||||
{
|
||||
LoadBgTiles(bgId, GetUserFrameGraphicsInfo(gSaveBlock2Ptr->optionsWindowFrameType)->tiles, 0x120, 0x1B1);
|
||||
LoadPalette(GetUserFrameGraphicsInfo(gSaveBlock2Ptr->optionsWindowFrameType)->palette, 0x20, 0x20);
|
||||
LoadBgTiles(bgId, GetWindowFrameTilesPal(gSaveBlock2Ptr->optionsWindowFrameType)->tiles, 0x120, 0x1B1);
|
||||
LoadPalette(GetWindowFrameTilesPal(gSaveBlock2Ptr->optionsWindowFrameType)->palette, 0x20, 0x20);
|
||||
MainMenu_EraseWindow(&sWindowTemplate[MAIN_MENU_WINDOW_ERROR]);
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -75,7 +75,7 @@ struct MEvent_Str_1 sMEventSendToEReaderManager;
|
||||
|
||||
static EWRAM_DATA bool32 sReceivedWonderCardIsValid = FALSE;
|
||||
|
||||
void SendUnknownSerialData_Init(struct MEvent_Str_1 *mgr, size_t size, const void * data)
|
||||
void SendUnknownSerialData_Init(struct MEvent_Str_1 *mgr, size_t size, const void *data)
|
||||
{
|
||||
vu16 imeBak = REG_IME;
|
||||
REG_IME = 0;
|
||||
@@ -799,7 +799,7 @@ bool32 ValidateMEventClientHeader(const struct MEventClientHeaderStruct * data)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
u32 sub_8144418(const u16 * a0, const struct MEventClientHeaderStruct * a1, void * unused)
|
||||
u32 sub_8144418(const u16 * a0, const struct MEventClientHeaderStruct * a1, void *unused)
|
||||
{
|
||||
if (a1->id == 0)
|
||||
return 0;
|
||||
@@ -808,7 +808,7 @@ u32 sub_8144418(const u16 * a0, const struct MEventClientHeaderStruct * a1, void
|
||||
return 2;
|
||||
}
|
||||
|
||||
u32 MEvent_CanPlayerReceiveDistributionMon(const u16 * a0, const struct MEventClientHeaderStruct * a1, void * unused)
|
||||
u32 MEvent_CanPlayerReceiveDistributionMon(const u16 * a0, const struct MEventClientHeaderStruct * a1, void *unused)
|
||||
{
|
||||
s32 numSpaces = a1->maxDistributionMons - CountReceivedDistributionMons(&a1->unk_20, a1->maxDistributionMons);
|
||||
if (numSpaces == 0)
|
||||
|
||||
+1
-1
@@ -43,7 +43,7 @@ void mevent_client_inc_flag(void)
|
||||
s_mevent_client_ptr->flag++;
|
||||
}
|
||||
|
||||
void * mevent_client_get_buffer(void)
|
||||
void *mevent_client_get_buffer(void)
|
||||
{
|
||||
return s_mevent_client_ptr->buffer;
|
||||
}
|
||||
|
||||
+5
-5
@@ -41,7 +41,7 @@ u32 mevent_srv_common_do_exec(u16 * a0)
|
||||
return result;
|
||||
}
|
||||
|
||||
static void mevent_srv_init_common(struct mevent_srv_common * svr, const void * cmdBuffer, u32 sendPlayerNo, u32 recvPlayerNo)
|
||||
static void mevent_srv_init_common(struct mevent_srv_common * svr, const void *cmdBuffer, u32 sendPlayerNo, u32 recvPlayerNo)
|
||||
{
|
||||
svr->unk_00 = 0;
|
||||
svr->mainseqno = 0;
|
||||
@@ -62,13 +62,13 @@ static void mevent_srv_free_resources(struct mevent_srv_common * svr)
|
||||
Free(svr->mevent_unk1442cc);
|
||||
}
|
||||
|
||||
static void mevent_srv_common_init_send(struct mevent_srv_common * svr, u32 ident, const void * src, u32 size)
|
||||
static void mevent_srv_common_init_send(struct mevent_srv_common * svr, u32 ident, const void *src, u32 size)
|
||||
{
|
||||
AGB_ASSERT_EX(size <= ME_SEND_BUF_SIZE, ABSPATH("mevent_server.c"), 257);
|
||||
mevent_srv_sub_init_send(&svr->manager, ident, src, size);
|
||||
}
|
||||
|
||||
static void * mevent_first_if_not_null_else_second(void * a0, void * a1)
|
||||
static void *mevent_first_if_not_null_else_second(void *a0, void *a1)
|
||||
{
|
||||
if (a0 != NULL)
|
||||
return a0;
|
||||
@@ -76,7 +76,7 @@ static void * mevent_first_if_not_null_else_second(void * a0, void * a1)
|
||||
return a1;
|
||||
}
|
||||
|
||||
static u32 mevent_compare_pointers(void * a0, void * a1)
|
||||
static u32 mevent_compare_pointers(void *a0, void *a1)
|
||||
{
|
||||
if (a1 < a0)
|
||||
return 0;
|
||||
@@ -119,7 +119,7 @@ static u32 common_mainseq_4(struct mevent_srv_common * svr)
|
||||
{
|
||||
// process command
|
||||
const struct mevent_server_cmd * cmd = &svr->cmdBuffer[svr->cmdidx];
|
||||
void * ptr;
|
||||
void *ptr;
|
||||
svr->cmdidx++;
|
||||
|
||||
switch (cmd->instr)
|
||||
|
||||
@@ -34,7 +34,7 @@ void mevent_srv_sub_init(struct mevent_srv_sub * svr, u32 sendPlayerNo, u32 recv
|
||||
svr->recvFunc = mevent_receive_func;
|
||||
}
|
||||
|
||||
void mevent_srv_sub_init_send(struct mevent_srv_sub * svr, u32 ident, const void * src, u32 size)
|
||||
void mevent_srv_sub_init_send(struct mevent_srv_sub * svr, u32 ident, const void *src, u32 size)
|
||||
{
|
||||
svr->seqno = 0;
|
||||
svr->sendIdent = ident;
|
||||
@@ -47,7 +47,7 @@ void mevent_srv_sub_init_send(struct mevent_srv_sub * svr, u32 ident, const void
|
||||
svr->sendBfr = src;
|
||||
}
|
||||
|
||||
void mevent_srv_sub_init_recv(struct mevent_srv_sub * svr, u32 ident, void * dest)
|
||||
void mevent_srv_sub_init_recv(struct mevent_srv_sub * svr, u32 ident, void *dest)
|
||||
{
|
||||
svr->seqno = 0;
|
||||
svr->recvIdent = ident;
|
||||
@@ -57,7 +57,7 @@ void mevent_srv_sub_init_recv(struct mevent_srv_sub * svr, u32 ident, void * des
|
||||
svr->recvBfr = dest;
|
||||
}
|
||||
|
||||
static void mevent_recv_block(u32 recv_idx, void * dest, size_t size)
|
||||
static void mevent_recv_block(u32 recv_idx, void *dest, size_t size)
|
||||
{
|
||||
memcpy(dest, gBlockRecvBuffer[recv_idx], size);
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ static void Task_MinigameCountdown(u8 taskId);
|
||||
static bool32 RunMinigameCountdownDigitsAnim(u8 spriteId);
|
||||
static void StartStartGraphic(u8 spriteId1, u8 spriteId2, u8 spriteId3);
|
||||
static bool32 IsStartGraphicAnimRunning(u8 spriteId);
|
||||
static void SpriteCB_Start(struct Sprite * sprite);
|
||||
static void SpriteCB_Start(struct Sprite *sprite);
|
||||
static void Load321StartGfx(u16 tilesTag, u16 palTag);
|
||||
static u8 CreateNumberSprite(u16 tilesTag, u16 palTag, s16 x, s16 y, u8 subpriority);
|
||||
static void CreateStartSprite(u16 tilesTag, u16 palTag, s16 x, s16 y, u8 subpriority, s16 * spriteId2_p, s16 * spriteId3_p);
|
||||
@@ -75,7 +75,7 @@ static void Task_MinigameCountdown(u8 taskId)
|
||||
|
||||
static bool32 RunMinigameCountdownDigitsAnim(u8 spriteId)
|
||||
{
|
||||
struct Sprite * sprite = &gSprites[spriteId];
|
||||
struct Sprite *sprite = &gSprites[spriteId];
|
||||
|
||||
switch (sprite->data[0])
|
||||
{
|
||||
@@ -160,7 +160,7 @@ static bool32 IsStartGraphicAnimRunning(u8 spriteId)
|
||||
return gSprites[spriteId].callback == SpriteCB_Start;
|
||||
}
|
||||
|
||||
static void SpriteCB_Start(struct Sprite * sprite)
|
||||
static void SpriteCB_Start(struct Sprite *sprite)
|
||||
{
|
||||
s16 * data = sprite->data;
|
||||
s32 y;
|
||||
|
||||
+427
-331
@@ -5,510 +5,606 @@
|
||||
#include "graphics.h"
|
||||
#include "constants/songs.h"
|
||||
|
||||
static EWRAM_DATA struct PokemonMarkMenu * sMenu = NULL;
|
||||
#define ANIM_CURSOR (NUM_MON_MARKINGS * 2)
|
||||
#define ANIM_TEXT (ANIM_CURSOR + 1)
|
||||
|
||||
static void CreateMonMarkingsMenuSprites(s16 x, s16 y, u16 tilesTag, u16 paletteTag);
|
||||
static void nullsub_62(struct Sprite * sprite);
|
||||
static void SpriteCB_MarkingIcon(struct Sprite * sprite);
|
||||
static void SpriteCB_Cursor(struct Sprite * sprite);
|
||||
static struct Sprite * CreateMonMarkingSprite(u16 tilesTag, u16 paletteTag, const u16 *palette, u16 size);
|
||||
#define SELECTION_OK NUM_MON_MARKINGS
|
||||
#define SELECTION_CANCEL (SELECTION_OK + 1)
|
||||
|
||||
static void CreateMonMarkingsMenuSprites(s16, s16, u16, u16);
|
||||
static void SpriteCB_Dummy(struct Sprite *);
|
||||
static void SpriteCB_Marking(struct Sprite *);
|
||||
static void SpriteCB_Cursor(struct Sprite *);
|
||||
static struct Sprite *CreateMarkingComboSprite(u16, u16, const u16 *, u16);
|
||||
|
||||
static const u16 sMonMarkingsPal[] = INCBIN_U16("graphics/misc/mon_markings.gbapal");
|
||||
static const u16 sMonMarkingsTiles[] = INCBIN_U16("graphics/misc/mon_markings.4bpp");
|
||||
static const u16 sMonMarkings_Gfx[] = INCBIN_U16("graphics/misc/mon_markings.4bpp");
|
||||
static const u8 sUnref_83EE828[] = {0x09, 0x50, 0x13, 0x02, 0xFF};
|
||||
|
||||
static const struct OamData sOamData_64x64 = {
|
||||
.shape = SPRITE_SHAPE(64x64),
|
||||
.size = SPRITE_SIZE(64x64)
|
||||
};
|
||||
|
||||
static const struct OamData sOamData_8x8 = {
|
||||
.shape = SPRITE_SHAPE(8x8),
|
||||
.size = SPRITE_SIZE(8x8)
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnimCmd_MenuMark_CircleOff[] = {
|
||||
ANIMCMD_FRAME(0x0, 5),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnimCmd_MenuMark_CircleOn[] = {
|
||||
ANIMCMD_FRAME(0x1, 5),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnimCmd_MenuMark_SquareOff[] = {
|
||||
ANIMCMD_FRAME(0x2, 5),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnimCmd_MenuMark_SquareOn[] = {
|
||||
ANIMCMD_FRAME(0x3, 5),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnimCmd_MenuMark_TriangleOff[] = {
|
||||
ANIMCMD_FRAME(0x4, 5),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnimCmd_MenuMark_TriangleOn[] = {
|
||||
ANIMCMD_FRAME(0x5, 5),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnimCmd_MenuMark_HeartOff[] = {
|
||||
ANIMCMD_FRAME(0x6, 5),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnimCmd_MenuMark_HeartOn[] = {
|
||||
ANIMCMD_FRAME(0x7, 5),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnimCmd_MenuMark_Cursor[] = {
|
||||
ANIMCMD_FRAME(0x8, 5),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnimCmd_MenuMark_Blank[] = {
|
||||
ANIMCMD_FRAME(0x9, 5),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd *const sSpriteAnimTable_MenuMark[] = {
|
||||
sAnimCmd_MenuMark_CircleOff,
|
||||
sAnimCmd_MenuMark_CircleOn,
|
||||
sAnimCmd_MenuMark_SquareOff,
|
||||
sAnimCmd_MenuMark_SquareOn,
|
||||
sAnimCmd_MenuMark_TriangleOff,
|
||||
sAnimCmd_MenuMark_TriangleOn,
|
||||
sAnimCmd_MenuMark_HeartOff,
|
||||
sAnimCmd_MenuMark_HeartOn,
|
||||
sAnimCmd_MenuMark_Cursor,
|
||||
sAnimCmd_MenuMark_Blank
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnimCmd_Frame_0[] = {
|
||||
ANIMCMD_FRAME(0x0, 5),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnimCmd_Frame_1[] = {
|
||||
ANIMCMD_FRAME(0x40, 5),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd *const sSpriteAnimTable_Frame[] = {
|
||||
sAnimCmd_Frame_0,
|
||||
sAnimCmd_Frame_1
|
||||
};
|
||||
|
||||
static const struct OamData sOamData_32x8 = {
|
||||
.shape = SPRITE_SHAPE(32x8),
|
||||
.size = SPRITE_SIZE(32x8)
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnimCmd_MonMark_0000[] = {
|
||||
ANIMCMD_FRAME(0x0, 5),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnimCmd_MonMark_1000[] = {
|
||||
ANIMCMD_FRAME(0x4, 5),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnimCmd_MonMark_0100[] = {
|
||||
ANIMCMD_FRAME(0x8, 5),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnimCmd_MonMark_1100[] = {
|
||||
ANIMCMD_FRAME(0xc, 5),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnimCmd_MonMark_0010[] = {
|
||||
ANIMCMD_FRAME(0x10, 5),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnimCmd_MonMark_1010[] = {
|
||||
ANIMCMD_FRAME(0x14, 5),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnimCmd_MonMark_0110[] = {
|
||||
ANIMCMD_FRAME(0x18, 5),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnimCmd_MonMark_1110[] = {
|
||||
ANIMCMD_FRAME(0x1c, 5),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnimCmd_MonMark_0001[] = {
|
||||
ANIMCMD_FRAME(0x20, 5),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnimCmd_MonMark_1001[] = {
|
||||
ANIMCMD_FRAME(0x24, 5),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnimCmd_MonMark_0101[] = {
|
||||
ANIMCMD_FRAME(0x28, 5),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnimCmd_MonMark_1101[] = {
|
||||
ANIMCMD_FRAME(0x2c, 5),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnimCmd_MonMark_0011[] = {
|
||||
ANIMCMD_FRAME(0x30, 5),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnimCmd_MonMark_1011[] = {
|
||||
ANIMCMD_FRAME(0x34, 5),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnimCmd_MonMark_0111[] = {
|
||||
ANIMCMD_FRAME(0x38, 5),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnimCmd_MonMark_1111[] = {
|
||||
ANIMCMD_FRAME(0x3c, 5),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd *const sSpriteAnimTable_MonMarkSet[] = {
|
||||
sAnimCmd_MonMark_0000,
|
||||
sAnimCmd_MonMark_1000,
|
||||
sAnimCmd_MonMark_0100,
|
||||
sAnimCmd_MonMark_1100,
|
||||
sAnimCmd_MonMark_0010,
|
||||
sAnimCmd_MonMark_1010,
|
||||
sAnimCmd_MonMark_0110,
|
||||
sAnimCmd_MonMark_1110,
|
||||
sAnimCmd_MonMark_0001,
|
||||
sAnimCmd_MonMark_1001,
|
||||
sAnimCmd_MonMark_0101,
|
||||
sAnimCmd_MonMark_1101,
|
||||
sAnimCmd_MonMark_0011,
|
||||
sAnimCmd_MonMark_1011,
|
||||
sAnimCmd_MonMark_0111,
|
||||
sAnimCmd_MonMark_1111
|
||||
};
|
||||
|
||||
void SetMonMarkingsMenuPointer(struct PokemonMarkMenu * markMenu)
|
||||
static const struct OamData sOamData_MenuWindow =
|
||||
{
|
||||
sMenu = markMenu;
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(64x64),
|
||||
.x = 0,
|
||||
.matrixNum = 0,
|
||||
.size = SPRITE_SIZE(64x64),
|
||||
.tileNum = 0,
|
||||
.priority = 0,
|
||||
.paletteNum = 0,
|
||||
.affineParam = 0,
|
||||
};
|
||||
|
||||
// Used for the markings, OK/Cancel text, and cursor sprites
|
||||
static const struct OamData sOamData_8x8 =
|
||||
{
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(8x8),
|
||||
.x = 0,
|
||||
.matrixNum = 0,
|
||||
.size = SPRITE_SIZE(8x8),
|
||||
.tileNum = 0,
|
||||
.priority = 0,
|
||||
.paletteNum = 0,
|
||||
.affineParam = 0,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_Marking_CircleOff[] =
|
||||
{
|
||||
ANIMCMD_FRAME(0, 5),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_Marking_CircleOn[] =
|
||||
{
|
||||
ANIMCMD_FRAME(1, 5),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_Marking_SquareOff[] =
|
||||
{
|
||||
ANIMCMD_FRAME(2, 5),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_Marking_SquareOn[] =
|
||||
{
|
||||
ANIMCMD_FRAME(3, 5),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_Marking_TriangleOff[] =
|
||||
{
|
||||
ANIMCMD_FRAME(4, 5),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_Marking_TriangleOn[] =
|
||||
{
|
||||
ANIMCMD_FRAME(5, 5),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_Marking_HeartOff[] =
|
||||
{
|
||||
ANIMCMD_FRAME(6, 5),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_Marking_HeartOn[] =
|
||||
{
|
||||
ANIMCMD_FRAME(7, 5),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_Cursor[] =
|
||||
{
|
||||
ANIMCMD_FRAME(8, 5),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_OKCancelText[] =
|
||||
{
|
||||
ANIMCMD_FRAME(9, 5),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd *const sAnims_MenuSprite[] =
|
||||
{
|
||||
sAnim_Marking_CircleOff,
|
||||
sAnim_Marking_CircleOn,
|
||||
sAnim_Marking_SquareOff,
|
||||
sAnim_Marking_SquareOn,
|
||||
sAnim_Marking_TriangleOff,
|
||||
sAnim_Marking_TriangleOn,
|
||||
sAnim_Marking_HeartOff,
|
||||
sAnim_Marking_HeartOn,
|
||||
[ANIM_CURSOR] = sAnim_Cursor,
|
||||
[ANIM_TEXT] = sAnim_OKCancelText,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_MenuWindow_UpperHalf[] =
|
||||
{
|
||||
ANIMCMD_FRAME(0, 5),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_MenuWindow_LowerHalf[] =
|
||||
{
|
||||
ANIMCMD_FRAME(64, 5),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd *const sAnims_MenuWindow[] =
|
||||
{
|
||||
sAnim_MenuWindow_UpperHalf,
|
||||
sAnim_MenuWindow_LowerHalf,
|
||||
};
|
||||
|
||||
static const struct OamData sOamData_MarkingCombo =
|
||||
{
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(32x8),
|
||||
.x = 0,
|
||||
.matrixNum = 0,
|
||||
.size = SPRITE_SIZE(32x8),
|
||||
.tileNum = 0,
|
||||
.priority = 0,
|
||||
.paletteNum = 0,
|
||||
.affineParam = 0,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_MarkingCombo_AllOff[] =
|
||||
{
|
||||
ANIMCMD_FRAME(0, 5),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_MarkingCombo_Circle[] =
|
||||
{
|
||||
ANIMCMD_FRAME(4, 5),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_MarkingCombo_Square[] =
|
||||
{
|
||||
ANIMCMD_FRAME(8, 5),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_MarkingCombo_CircleSquare[] =
|
||||
{
|
||||
ANIMCMD_FRAME(12, 5),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_MarkingCombo_Triangle[] =
|
||||
{
|
||||
ANIMCMD_FRAME(16, 5),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_MarkingCombo_CircleTriangle[] =
|
||||
{
|
||||
ANIMCMD_FRAME(20, 5),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_MarkingCombo_SquareTriangle[] =
|
||||
{
|
||||
ANIMCMD_FRAME(24, 5),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_MarkingCombo_CircleSquareTriangle[] =
|
||||
{
|
||||
ANIMCMD_FRAME(28, 5),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_MarkingCombo_Heart[] =
|
||||
{
|
||||
ANIMCMD_FRAME(32, 5),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_MarkingCombo_CircleHeart[] =
|
||||
{
|
||||
ANIMCMD_FRAME(36, 5),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_MarkingCombo_SquareHeart[] =
|
||||
{
|
||||
ANIMCMD_FRAME(40, 5),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_MarkingCombo_CircleSquareHeart[] =
|
||||
{
|
||||
ANIMCMD_FRAME(44, 5),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_MarkingCombo_TriangleHeart[] =
|
||||
{
|
||||
ANIMCMD_FRAME(48, 5),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_MarkingCombo_CircleTriangleHeart[] =
|
||||
{
|
||||
ANIMCMD_FRAME(52, 5),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_MarkingCombo_SquareTriangleHeart[] =
|
||||
{
|
||||
ANIMCMD_FRAME(56, 5),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_MarkingCombo_AllOn[] =
|
||||
{
|
||||
ANIMCMD_FRAME(60, 5),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd *const sAnims_MarkingCombo[] =
|
||||
{
|
||||
sAnim_MarkingCombo_AllOff,
|
||||
sAnim_MarkingCombo_Circle,
|
||||
sAnim_MarkingCombo_Square,
|
||||
sAnim_MarkingCombo_CircleSquare,
|
||||
sAnim_MarkingCombo_Triangle,
|
||||
sAnim_MarkingCombo_CircleTriangle,
|
||||
sAnim_MarkingCombo_SquareTriangle,
|
||||
sAnim_MarkingCombo_CircleSquareTriangle,
|
||||
sAnim_MarkingCombo_Heart,
|
||||
sAnim_MarkingCombo_CircleHeart,
|
||||
sAnim_MarkingCombo_SquareHeart,
|
||||
sAnim_MarkingCombo_CircleSquareHeart,
|
||||
sAnim_MarkingCombo_TriangleHeart,
|
||||
sAnim_MarkingCombo_CircleTriangleHeart,
|
||||
sAnim_MarkingCombo_SquareTriangleHeart,
|
||||
sAnim_MarkingCombo_AllOn,
|
||||
};
|
||||
|
||||
static EWRAM_DATA struct MonMarkingsMenu *sMenu = NULL;
|
||||
|
||||
void InitMonMarkingsMenu(struct MonMarkingsMenu *ptr)
|
||||
{
|
||||
sMenu = ptr;
|
||||
}
|
||||
|
||||
static void GetUserFrameForMonMarkings(void)
|
||||
static void BufferMenuWindowTiles(void)
|
||||
{
|
||||
const struct TextWindowGraphics * frame = GetUserFrameGraphicsInfo(gSaveBlock2Ptr->optionsWindowFrameType);
|
||||
const struct TextWindowGraphics *frame = GetWindowFrameTilesPal(gSaveBlock2Ptr->optionsWindowFrameType);
|
||||
sMenu->frameTiles = frame->tiles;
|
||||
sMenu->framePalette = frame->palette;
|
||||
sMenu->tileLoadState = 0;
|
||||
CpuFill16(0, sMenu->menuWindowSpriteTiles, sizeof(sMenu->menuWindowSpriteTiles));
|
||||
CpuFill16(0, sMenu->windowSpriteTiles, sizeof(sMenu->windowSpriteTiles));
|
||||
}
|
||||
|
||||
static bool8 DoLoadMonMarkingsFrameGfx(void)
|
||||
static bool8 BufferMenuFrameTiles(void)
|
||||
{
|
||||
u16 i;
|
||||
u8 *menuWindowSpriteTiles = &sMenu->menuWindowSpriteTiles[256 * sMenu->tileLoadState];
|
||||
u8 *dest = sMenu->windowSpriteTiles + sMenu->tileLoadState * 0x100;
|
||||
|
||||
switch (sMenu->tileLoadState)
|
||||
{
|
||||
case 0:
|
||||
CpuFastCopy(sMenu->frameTiles + 0x00, menuWindowSpriteTiles, 0x20);
|
||||
CpuFastCopy(sMenu->frameTiles, dest, TILE_SIZE_4BPP);
|
||||
for (i = 0; i < 6; i++)
|
||||
CpuFastCopy(sMenu->frameTiles + 0x20, menuWindowSpriteTiles + 0x20 * (i + 1), 0x20);
|
||||
CpuFastCopy(sMenu->frameTiles + 0x40, menuWindowSpriteTiles + 0x20 * 7, 0x20);
|
||||
CpuFastCopy(sMenu->frameTiles + TILE_SIZE_4BPP, dest + TILE_SIZE_4BPP * (i + 1), TILE_SIZE_4BPP);
|
||||
|
||||
CpuFastCopy(sMenu->frameTiles + TILE_SIZE_4BPP * 2, dest + TILE_SIZE_4BPP * 7, TILE_SIZE_4BPP);
|
||||
sMenu->tileLoadState++;
|
||||
break;
|
||||
default:
|
||||
CpuFastCopy(sMenu->frameTiles + 0x60, menuWindowSpriteTiles + 0x00, 0x20);
|
||||
CpuFastCopy(sMenu->frameTiles + TILE_SIZE_4BPP * 3, dest, TILE_SIZE_4BPP);
|
||||
for (i = 0; i < 6; i++)
|
||||
CpuFastCopy(sMenu->frameTiles + 0x80, menuWindowSpriteTiles + 0x20 * (i + 1), 0x20);
|
||||
CpuFastCopy(sMenu->frameTiles + 0xA0, menuWindowSpriteTiles + 0x20 * 7, 0x20);
|
||||
CpuFastCopy(sMenu->frameTiles + TILE_SIZE_4BPP * 4, dest + TILE_SIZE_4BPP * (i + 1), TILE_SIZE_4BPP);
|
||||
|
||||
CpuFastCopy(sMenu->frameTiles + TILE_SIZE_4BPP * 5, dest + TILE_SIZE_4BPP * 7, TILE_SIZE_4BPP);
|
||||
sMenu->tileLoadState++;
|
||||
break;
|
||||
case 13:
|
||||
CpuFastCopy(sMenu->frameTiles + 0xC0, menuWindowSpriteTiles + 0x00, 0x20);
|
||||
CpuFastCopy(sMenu->frameTiles + TILE_SIZE_4BPP * 6, dest, TILE_SIZE_4BPP);
|
||||
for (i = 0; i < 6; i++)
|
||||
CpuFastCopy(sMenu->frameTiles + 0xE0, menuWindowSpriteTiles + 0x20 * (i + 1), 0x20);
|
||||
CpuFastCopy(sMenu->frameTiles + 0x100, menuWindowSpriteTiles + 0x20 * 7, 0x20);
|
||||
CpuFastCopy(sMenu->frameTiles + TILE_SIZE_4BPP * 7, dest + TILE_SIZE_4BPP * (i + 1), TILE_SIZE_4BPP);
|
||||
|
||||
CpuFastCopy(sMenu->frameTiles + TILE_SIZE_4BPP * 8, dest + TILE_SIZE_4BPP * 7, TILE_SIZE_4BPP);
|
||||
sMenu->tileLoadState++;
|
||||
return FALSE;
|
||||
case 14:
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void LoadMonMarkingsFrameGfx(void)
|
||||
void BufferMonMarkingsMenuTiles(void)
|
||||
{
|
||||
GetUserFrameForMonMarkings();
|
||||
while (DoLoadMonMarkingsFrameGfx())
|
||||
{}
|
||||
BufferMenuWindowTiles();
|
||||
while (BufferMenuFrameTiles());
|
||||
}
|
||||
|
||||
void DrawMonMarkingsMenu(u8 markings, s16 x, s16 y)
|
||||
void OpenMonMarkingsMenu(u8 markings, s16 x, s16 y)
|
||||
{
|
||||
u16 i;
|
||||
sMenu->cursorPos = 0;
|
||||
sMenu->markings = markings;
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
for (i = 0; i < NUM_MON_MARKINGS; i++)
|
||||
sMenu->markingsArray[i] = (sMenu->markings >> i) & 1;
|
||||
}
|
||||
CreateMonMarkingsMenuSprites(x, y, sMenu->baseTileTag, sMenu->basePaletteTag);;
|
||||
CreateMonMarkingsMenuSprites(x, y, sMenu->baseTileTag, sMenu->basePaletteTag);
|
||||
}
|
||||
|
||||
void TeardownMonMarkingsMenu(void)
|
||||
void FreeMonMarkingsMenu(void)
|
||||
{
|
||||
u16 i;
|
||||
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
FreeSpriteTilesByTag(sMenu->baseTileTag + i);
|
||||
}
|
||||
FreeSpritePaletteByTag(sMenu->basePaletteTag);
|
||||
FreeSpritePaletteByTag(sMenu->basePaletteTag + 1);
|
||||
for (i = 0; i < 2; i++)
|
||||
for (i = 0; i < ARRAY_COUNT(sMenu->windowSprites); i++)
|
||||
{
|
||||
if (sMenu->menuWindowSprites[i] == NULL)
|
||||
if (sMenu->windowSprites[i] == NULL)
|
||||
return; // break;
|
||||
DestroySprite(sMenu->menuWindowSprites[i]);
|
||||
DestroySprite(sMenu->windowSprites[i]);
|
||||
}
|
||||
for (i = 0; i < 4; i++)
|
||||
for (i = 0; i < NUM_MON_MARKINGS; i++)
|
||||
{
|
||||
if (sMenu->menuMarkingSprites[i] == NULL)
|
||||
if (sMenu->markingSprites[i] == NULL)
|
||||
return; // break;
|
||||
DestroySprite(sMenu->menuMarkingSprites[i]);
|
||||
DestroySprite(sMenu->markingSprites[i]);
|
||||
}
|
||||
if (sMenu->unkSprite != NULL)
|
||||
DestroySprite(sMenu->unkSprite);
|
||||
if (sMenu->menuTextSprite != NULL)
|
||||
DestroySprite(sMenu->menuTextSprite);
|
||||
if (sMenu->cursorSprite != NULL)
|
||||
DestroySprite(sMenu->cursorSprite);
|
||||
if (sMenu->textSprite != NULL)
|
||||
DestroySprite(sMenu->textSprite);
|
||||
}
|
||||
|
||||
bool8 MonMarkingsHandleInput(void)
|
||||
bool8 HandleMonMarkingsMenuInput(void)
|
||||
{
|
||||
u16 i;
|
||||
|
||||
if (JOY_NEW(DPAD_UP))
|
||||
{
|
||||
s8 pos;
|
||||
PlaySE(SE_SELECT);
|
||||
if (--sMenu->cursorPos < 0)
|
||||
sMenu->cursorPos = 5;
|
||||
pos = --sMenu->cursorPos;
|
||||
if (pos < 0)
|
||||
sMenu->cursorPos = SELECTION_CANCEL;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (JOY_NEW(DPAD_DOWN))
|
||||
{
|
||||
s8 pos;
|
||||
PlaySE(SE_SELECT);
|
||||
if (++sMenu->cursorPos > 5)
|
||||
pos = ++sMenu->cursorPos;
|
||||
if (pos > SELECTION_CANCEL)
|
||||
sMenu->cursorPos = 0;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (JOY_NEW(A_BUTTON))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
|
||||
switch (sMenu->cursorPos)
|
||||
{
|
||||
case 4:
|
||||
case SELECTION_OK:
|
||||
sMenu->markings = 0;
|
||||
for (i = 0; i < 4; i++)
|
||||
for (i = 0; i < NUM_MON_MARKINGS; i++)
|
||||
sMenu->markings |= sMenu->markingsArray[i] << i;
|
||||
return FALSE;
|
||||
case 5:
|
||||
case SELECTION_CANCEL:
|
||||
return FALSE;
|
||||
}
|
||||
sMenu->markingsArray[sMenu->cursorPos] = sMenu->markingsArray[sMenu->cursorPos] ? FALSE : TRUE;
|
||||
|
||||
sMenu->markingsArray[sMenu->cursorPos] = !sMenu->markingsArray[sMenu->cursorPos];
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (JOY_NEW(B_BUTTON))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void CreateMonMarkingsMenuSprites(s16 x, s16 y, u16 tilesTag, u16 paletteTag)
|
||||
#define sMarkingId data[0]
|
||||
#define sCursorYOffset data[0]
|
||||
|
||||
static void CreateMonMarkingsMenuSprites(s16 x, s16 y, u16 baseTileTag, u16 basePaletteTag)
|
||||
{
|
||||
u16 i;
|
||||
u8 spriteId;
|
||||
struct SpriteSheet sheets[] = {
|
||||
{
|
||||
.data = sMenu->menuWindowSpriteTiles,
|
||||
.size = 0x1000,
|
||||
.tag = tilesTag
|
||||
}, {
|
||||
.data = gUnknown_8E9CBBC,
|
||||
.size = 0x320,
|
||||
.tag = tilesTag + 1
|
||||
}, {}
|
||||
|
||||
struct SpriteSheet sheets[] =
|
||||
{
|
||||
{ sMenu->windowSpriteTiles, 0x1000, baseTileTag },
|
||||
{ gMonMarkingsMenu_Gfx, 0x320, baseTileTag + 1 },
|
||||
{}
|
||||
};
|
||||
struct SpritePalette palettes[] = {
|
||||
{
|
||||
.data = sMenu->framePalette,
|
||||
.tag = paletteTag
|
||||
}, {
|
||||
.data = gUnknown_8E9CB9C,
|
||||
.tag = paletteTag + 1
|
||||
}, {}
|
||||
|
||||
struct SpritePalette palettes[] =
|
||||
{
|
||||
{ sMenu->framePalette, basePaletteTag },
|
||||
{ gMonMarkingsMenu_Pal, basePaletteTag + 1},
|
||||
{}
|
||||
};
|
||||
struct SpriteTemplate sprTemplate = {
|
||||
.tileTag = tilesTag,
|
||||
.paletteTag = paletteTag,
|
||||
.oam = &sOamData_64x64,
|
||||
.anims = sSpriteAnimTable_Frame,
|
||||
|
||||
struct SpriteTemplate template =
|
||||
{
|
||||
.tileTag = baseTileTag,
|
||||
.paletteTag = basePaletteTag,
|
||||
.oam = &sOamData_MenuWindow,
|
||||
.anims = sAnims_MenuWindow,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = nullsub_62
|
||||
.callback = SpriteCB_Dummy,
|
||||
};
|
||||
|
||||
LoadSpriteSheets(sheets);
|
||||
LoadSpritePalettes(palettes);
|
||||
|
||||
for (i = 0; i < 2; i++)
|
||||
// Create window sprites
|
||||
for (i = 0; i < ARRAY_COUNT(sMenu->windowSprites); i++)
|
||||
{
|
||||
spriteId = CreateSprite(&sprTemplate, x + 32, y + 32, 1);
|
||||
spriteId = CreateSprite(&template, x + 32, y + 32, 1);
|
||||
if (spriteId != MAX_SPRITES)
|
||||
{
|
||||
sMenu->menuWindowSprites[i] = &gSprites[spriteId];
|
||||
sMenu->windowSprites[i] = &gSprites[spriteId];
|
||||
StartSpriteAnim(&gSprites[spriteId], i);
|
||||
}
|
||||
else
|
||||
{
|
||||
sMenu->menuWindowSprites[i] = NULL;
|
||||
sMenu->windowSprites[i] = NULL;
|
||||
return;
|
||||
}
|
||||
}
|
||||
sMenu->windowSprites[1]->y = y + 96;
|
||||
|
||||
sMenu->menuWindowSprites[1]->y = y + 96;
|
||||
|
||||
sprTemplate.tileTag++;
|
||||
sprTemplate.paletteTag++;
|
||||
sprTemplate.anims = sSpriteAnimTable_MenuMark;
|
||||
sprTemplate.callback = SpriteCB_MarkingIcon;
|
||||
sprTemplate.oam = &sOamData_8x8;
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
// Create marking sprites
|
||||
template.tileTag++;
|
||||
template.paletteTag++;
|
||||
template.anims = sAnims_MenuSprite;
|
||||
template.callback = SpriteCB_Marking;
|
||||
template.oam = &sOamData_8x8;
|
||||
for (i = 0; i < NUM_MON_MARKINGS; i++)
|
||||
{
|
||||
spriteId = CreateSprite(&sprTemplate, x + 32, y + 16 + 16 * i, 0);
|
||||
spriteId = CreateSprite(&template, x + 32, y + 16 + 16 * i, 0);
|
||||
if (spriteId != MAX_SPRITES)
|
||||
{
|
||||
sMenu->menuMarkingSprites[i] = &gSprites[spriteId];
|
||||
gSprites[spriteId].data[0] = i;
|
||||
sMenu->markingSprites[i] = &gSprites[spriteId];
|
||||
gSprites[spriteId].sMarkingId = i;
|
||||
}
|
||||
else
|
||||
{
|
||||
sMenu->menuMarkingSprites[i] = NULL;
|
||||
sMenu->markingSprites[i] = NULL;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
sprTemplate.callback = SpriteCallbackDummy;
|
||||
|
||||
spriteId = CreateSprite(&sprTemplate, 0, 0, 0);
|
||||
|
||||
// Create OK/Cancel text sprite
|
||||
template.callback = SpriteCallbackDummy;
|
||||
spriteId = CreateSprite(&template, 0, 0, 0);
|
||||
if (spriteId != MAX_SPRITES)
|
||||
{
|
||||
sMenu->menuTextSprite = &gSprites[spriteId];
|
||||
sMenu->menuTextSprite->oam.shape = ST_OAM_SQUARE;
|
||||
sMenu->menuTextSprite->oam.size = 2;
|
||||
StartSpriteAnim(sMenu->menuTextSprite, 9);
|
||||
sMenu->menuTextSprite->x = x + 32;
|
||||
sMenu->menuTextSprite->y = y + 80;
|
||||
CalcCenterToCornerVec(sMenu->menuTextSprite, 1, 2, 0);
|
||||
sMenu->textSprite = &gSprites[spriteId];
|
||||
sMenu->textSprite->oam.shape = SPRITE_SHAPE(32x32);
|
||||
sMenu->textSprite->oam.size = SPRITE_SIZE(32x32);
|
||||
StartSpriteAnim(sMenu->textSprite, ANIM_TEXT);
|
||||
sMenu->textSprite->x = x + 32;
|
||||
sMenu->textSprite->y = y + 80;
|
||||
CalcCenterToCornerVec(sMenu->textSprite, SPRITE_SHAPE(32x16), SPRITE_SIZE(32x16), ST_OAM_AFFINE_OFF);
|
||||
}
|
||||
else
|
||||
{
|
||||
sMenu->menuTextSprite = NULL;
|
||||
sMenu->textSprite = NULL;
|
||||
}
|
||||
|
||||
sprTemplate.callback = SpriteCB_Cursor;
|
||||
|
||||
spriteId = CreateSprite(&sprTemplate, x + 12, 0, 0);
|
||||
|
||||
// Create cursor sprite
|
||||
template.callback = SpriteCB_Cursor;
|
||||
spriteId = CreateSprite(&template, x + 12, 0, 0);
|
||||
if (spriteId != MAX_SPRITES)
|
||||
{
|
||||
sMenu->unkSprite = &gSprites[spriteId];
|
||||
sMenu->unkSprite->data[0] = y + 16;
|
||||
StartSpriteAnim(sMenu->unkSprite, 8);
|
||||
sMenu->cursorSprite = &gSprites[spriteId];
|
||||
sMenu->cursorSprite->sCursorYOffset = y + 16;
|
||||
StartSpriteAnim(sMenu->cursorSprite, ANIM_CURSOR);
|
||||
}
|
||||
else
|
||||
{
|
||||
sMenu->unkSprite = NULL;
|
||||
sMenu->cursorSprite = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static void nullsub_62(struct Sprite * sprite)
|
||||
{}
|
||||
|
||||
static void SpriteCB_MarkingIcon(struct Sprite * sprite)
|
||||
static void SpriteCB_Dummy(struct Sprite *sprite)
|
||||
{
|
||||
if (sMenu->markingsArray[sprite->data[0]])
|
||||
StartSpriteAnim(sprite, 2 * sprite->data[0] + 1);
|
||||
}
|
||||
|
||||
static void SpriteCB_Marking(struct Sprite *sprite)
|
||||
{
|
||||
if (sMenu->markingsArray[sprite->sMarkingId])
|
||||
StartSpriteAnim(sprite, 2 * sprite->sMarkingId + 1); // Set marking 'on'
|
||||
else
|
||||
StartSpriteAnim(sprite, 2 * sprite->data[0] + 0);
|
||||
StartSpriteAnim(sprite, 2 * sprite->sMarkingId); // Set marking 'off'
|
||||
}
|
||||
|
||||
static void SpriteCB_Cursor(struct Sprite * sprite)
|
||||
#undef sMarkingId
|
||||
|
||||
static void SpriteCB_Cursor(struct Sprite *sprite)
|
||||
{
|
||||
sprite->y = 16 * sMenu->cursorPos + sprite->data[0];
|
||||
sprite->y = (16 * sMenu->cursorPos) + sprite->sCursorYOffset;
|
||||
}
|
||||
|
||||
struct Sprite * CreateMonMarkingSprite_SelectCombo(u16 tileTag, u16 paletteTag, const u16 *palette)
|
||||
#undef sCursorYOffset
|
||||
|
||||
// Creates a mon marking combination sprite with a spritesheet that holds every possible combination, used by the summary screen / Pokénav
|
||||
struct Sprite *CreateMonMarkingAllCombosSprite(u16 tileTag, u16 paletteTag, const u16 *palette)
|
||||
{
|
||||
if (palette == NULL)
|
||||
palette = sMonMarkingsPal;
|
||||
return CreateMonMarkingSprite(tileTag, paletteTag, palette, 16);
|
||||
return CreateMarkingComboSprite(tileTag, paletteTag, palette, 1 << NUM_MON_MARKINGS);
|
||||
}
|
||||
|
||||
struct Sprite * CreateMonMarkingSprite_AllOff(u16 tileTag, u16 paletteTag, const u16 *palette)
|
||||
// Creates a mon marking combination sprite with a spritesheet that holds only one combination, used for the currently selected PC mon
|
||||
struct Sprite *CreateMonMarkingComboSprite(u16 tileTag, u16 paletteTag, const u16 *palette)
|
||||
{
|
||||
if (palette == NULL)
|
||||
palette = sMonMarkingsPal;
|
||||
return CreateMonMarkingSprite(tileTag, paletteTag, palette, 1);
|
||||
return CreateMarkingComboSprite(tileTag, paletteTag, palette, 1);
|
||||
}
|
||||
|
||||
static struct Sprite * CreateMonMarkingSprite(u16 tileTag, u16 paletteTag, const u16 *palette, u16 size)
|
||||
static struct Sprite *CreateMarkingComboSprite(u16 tileTag, u16 paletteTag, const u16 *palette, u16 size)
|
||||
{
|
||||
u8 spriteId;
|
||||
struct SpriteTemplate sprTemplate;
|
||||
struct SpriteSheet sheet = { sMonMarkingsTiles, 0x80, tileTag };
|
||||
struct SpriteTemplate template;
|
||||
struct SpriteSheet sheet = { sMonMarkings_Gfx, 0x80, tileTag };
|
||||
struct SpritePalette sprPalette = { palette, paletteTag };
|
||||
|
||||
sprTemplate.tileTag = tileTag;
|
||||
sprTemplate.paletteTag = paletteTag;
|
||||
sprTemplate.oam = &sOamData_32x8;
|
||||
sprTemplate.anims = sSpriteAnimTable_MonMarkSet;
|
||||
sprTemplate.images = NULL;
|
||||
sprTemplate.affineAnims = gDummySpriteAffineAnimTable;
|
||||
sprTemplate.callback = nullsub_62;
|
||||
template.tileTag = tileTag;
|
||||
template.paletteTag = paletteTag;
|
||||
template.oam = &sOamData_MarkingCombo;
|
||||
template.anims = sAnims_MarkingCombo;
|
||||
template.images = NULL;
|
||||
template.affineAnims = gDummySpriteAffineAnimTable;
|
||||
template.callback = SpriteCB_Dummy;
|
||||
|
||||
sheet.size = size * 0x80;
|
||||
|
||||
LoadSpriteSheet(&sheet);
|
||||
LoadSpritePalette(&sprPalette);
|
||||
|
||||
spriteId = CreateSprite(&sprTemplate, 0, 0, 0);
|
||||
spriteId = CreateSprite(&template, 0, 0, 0);
|
||||
if (spriteId != MAX_SPRITES)
|
||||
return &gSprites[spriteId];
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void RequestDma3LoadMonMarking(u8 markings, void * dest)
|
||||
// Update what combination is shown, used for sprites created with CreateMonMarkingComboSprite
|
||||
void UpdateMonMarkingTiles(u8 markings, void *dest)
|
||||
{
|
||||
RequestDma3Copy(&sMonMarkingsTiles[64 * markings], dest, 0x80, DMA3_32BIT);
|
||||
RequestDma3Copy(&sMonMarkings_Gfx[64 * markings], dest, 0x80, DMA3_32BIT);
|
||||
}
|
||||
|
||||
|
||||
+10
-10
@@ -139,9 +139,9 @@ static void Task_809E58C(u8 taskId);
|
||||
static u16 sub_809E644(u8 tag);
|
||||
static void sub_809E6B8(u8 a0);
|
||||
static void sub_809E6E0(struct Task * task, u8 a1, u8 a2);
|
||||
static void sub_809E700(struct Sprite * sprite);
|
||||
static void sub_809E7F0(struct Sprite * sprite);
|
||||
static void sub_809E83C(struct Sprite * sprite);
|
||||
static void sub_809E700(struct Sprite *sprite);
|
||||
static void sub_809E7F0(struct Sprite *sprite);
|
||||
static void sub_809E83C(struct Sprite *sprite);
|
||||
static void sub_809E898(void);
|
||||
static void CursorInit(void);
|
||||
static void SetCursorPos(s16 x, s16 y);
|
||||
@@ -153,11 +153,11 @@ static bool8 IsCursorAnimFinished(void);
|
||||
static u8 GetCurrentPageColumnCount(void);
|
||||
static void CreatePageSwitcherSprites(void);
|
||||
static void sub_809EC20(void);
|
||||
static bool8 PageSwapSpritesCB_Init(struct Sprite * sprite);
|
||||
static bool8 PageSwapSpritesCB_Idle(struct Sprite * sprite);
|
||||
static bool8 PageSwapSpritesCB_SwapHide(struct Sprite * sprite);
|
||||
static bool8 PageSwapSpritesCB_SwapShow(struct Sprite * sprite);
|
||||
static void sub_809ED88(u8 a0, struct Sprite * spr1, struct Sprite * spr2);
|
||||
static bool8 PageSwapSpritesCB_Init(struct Sprite *sprite);
|
||||
static bool8 PageSwapSpritesCB_Idle(struct Sprite *sprite);
|
||||
static bool8 PageSwapSpritesCB_SwapHide(struct Sprite *sprite);
|
||||
static bool8 PageSwapSpritesCB_SwapShow(struct Sprite *sprite);
|
||||
static void sub_809ED88(u8 a0, struct Sprite *spr1, struct Sprite *spr2);
|
||||
static void CreateBackOkSprites(void);
|
||||
static void CreateUnderscoreSprites(void);
|
||||
static void CreateInputTargetIcon(void);
|
||||
@@ -1163,7 +1163,7 @@ static void sub_809EC20(void)
|
||||
sprite->data[1] = sNamingScreenData->currentPage;
|
||||
}
|
||||
|
||||
static bool8 (*const sPageSwapSpritesCBs[])(struct Sprite * sprite) = {
|
||||
static bool8 (*const sPageSwapSpritesCBs[])(struct Sprite *sprite) = {
|
||||
PageSwapSpritesCB_Init,
|
||||
PageSwapSpritesCB_Idle,
|
||||
PageSwapSpritesCB_SwapHide,
|
||||
@@ -1230,7 +1230,7 @@ static bool8 PageSwapSpritesCB_SwapShow(struct Sprite *sprite)
|
||||
static const u16 gUnknown_83E2388[] = {1, 3, 2};
|
||||
static const u16 gUnknown_83E238E[] = {4, 6, 5};
|
||||
|
||||
static void sub_809ED88(u8 page, struct Sprite * sprite1, struct Sprite * sprite2)
|
||||
static void sub_809ED88(u8 page, struct Sprite *sprite1, struct Sprite *sprite2)
|
||||
{
|
||||
sprite2->oam.paletteNum = IndexOfSpritePaletteTag(gUnknown_83E2388[page]);
|
||||
sprite1->sheetTileStart = GetSpriteTileStartByTag(gUnknown_83E238E[page]);
|
||||
|
||||
+4
-4
@@ -19,9 +19,9 @@
|
||||
|
||||
struct OakSpeechResources
|
||||
{
|
||||
void * solidColorsGfx;
|
||||
void * trainerPicTilemapBuffer;
|
||||
void * unk_0008;
|
||||
void *solidColorsGfx;
|
||||
void *trainerPicTilemapBuffer;
|
||||
void *unk_0008;
|
||||
u8 filler_000C[4];
|
||||
u16 hasPlayerBeenNamed;
|
||||
u16 unk_0012;
|
||||
@@ -1639,7 +1639,7 @@ static void CreateNidoranFSprite(u8 taskId)
|
||||
gTasks[taskId].data[4] = spriteId;
|
||||
}
|
||||
|
||||
static void SpriteCB_PikaSync(struct Sprite * sprite)
|
||||
static void SpriteCB_PikaSync(struct Sprite *sprite)
|
||||
{
|
||||
sprite->y2 = gSprites[sprite->data[0]].animCmdIndex;
|
||||
}
|
||||
|
||||
+5
-5
@@ -286,7 +286,7 @@ static void SetOptionMenuTask(void)
|
||||
|
||||
static void InitOptionMenuBg(void)
|
||||
{
|
||||
void * dest = (void *)VRAM;
|
||||
void *dest = (void *)VRAM;
|
||||
DmaClearLarge16(3, dest, VRAM_SIZE, 0x1000);
|
||||
DmaClear32(3, (void *)OAM, OAM_SIZE);
|
||||
DmaClear16(3, (void *)PLTT, PLTT_SIZE);
|
||||
@@ -337,10 +337,10 @@ static bool8 LoadOptionMenuPalette(void)
|
||||
switch (sOptionMenuPtr->loadPaletteState)
|
||||
{
|
||||
case 0:
|
||||
LoadBgTiles(1, GetUserFrameGraphicsInfo(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->tiles, 0x120, 0x1AA);
|
||||
LoadBgTiles(1, GetWindowFrameTilesPal(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->tiles, 0x120, 0x1AA);
|
||||
break;
|
||||
case 1:
|
||||
LoadPalette(GetUserFrameGraphicsInfo(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->palette, 0x20, 0x20);
|
||||
LoadPalette(GetWindowFrameTilesPal(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->palette, 0x20, 0x20);
|
||||
break;
|
||||
case 2:
|
||||
LoadPalette(sOptionMenuPalette, 0x10, 0x20);
|
||||
@@ -381,8 +381,8 @@ static void Task_OptionMenu(u8 taskId)
|
||||
sOptionMenuPtr->loadState++;
|
||||
break;
|
||||
case 2:
|
||||
LoadBgTiles(1, GetUserFrameGraphicsInfo(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->tiles, 0x120, 0x1AA);
|
||||
LoadPalette(GetUserFrameGraphicsInfo(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->palette, 0x20, 0x20);
|
||||
LoadBgTiles(1, GetWindowFrameTilesPal(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->tiles, 0x120, 0x1AA);
|
||||
LoadPalette(GetWindowFrameTilesPal(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->palette, 0x20, 0x20);
|
||||
BufferOptionMenuString(sOptionMenuPtr->cursorPos);
|
||||
break;
|
||||
case 3:
|
||||
|
||||
+1
-1
@@ -210,7 +210,7 @@ static void MovementStatusHandler_EnterFreeMode(struct LinkPlayerObjectEvent *,
|
||||
static void MovementStatusHandler_TryAdvanceScript(struct LinkPlayerObjectEvent *, struct ObjectEvent *);
|
||||
static u8 FlipVerticalAndClearForced(u8 newFacing, u8 oldFacing);
|
||||
static u8 LinkPlayerDetectCollision(u8 selfObjEventId, u8 a2, s16 x, s16 y);
|
||||
static void SpriteCB_LinkPlayer(struct Sprite * sprite);
|
||||
static void SpriteCB_LinkPlayer(struct Sprite *sprite);
|
||||
|
||||
extern const struct MapLayout * gMapLayouts[];
|
||||
extern const struct MapHeader *const *gMapGroups[];
|
||||
|
||||
@@ -941,7 +941,7 @@ void CB2_OpenPokedexFromStartMenu(void)
|
||||
SetHelpContext(HELPCONTEXT_POKEDEX);
|
||||
}
|
||||
|
||||
#define FREE_IF_NOT_NULL(ptr0) ({ void * ptr = (ptr0); if (ptr) Free(ptr); })
|
||||
#define FREE_IF_NOT_NULL(ptr0) ({ void *ptr = (ptr0); if (ptr) Free(ptr); })
|
||||
|
||||
bool8 DoClosePokedex(void)
|
||||
{
|
||||
|
||||
+6
-6
@@ -17,7 +17,7 @@ struct MonIconSpriteTemplate
|
||||
};
|
||||
|
||||
static u8 CreateMonIconSprite(const struct MonIconSpriteTemplate * template, s16 x, s16 y, u8 subpriority);
|
||||
static void DestroyMonIconInternal(struct Sprite * sprite);
|
||||
static void DestroyMonIconInternal(struct Sprite *sprite);
|
||||
|
||||
const u16 gMonIconPalettes[][16] = {
|
||||
INCBIN_U16("graphics/pokemon/icon_palettes/icon_palette_0.gbapal"),
|
||||
@@ -1118,7 +1118,7 @@ const u8 *GetMonIconPtr(u16 species, u32 personality, bool32 extra)
|
||||
return GetMonIconTiles(GetIconSpecies(species, personality), extra);
|
||||
}
|
||||
|
||||
void DestroyMonIcon(struct Sprite * sprite)
|
||||
void DestroyMonIcon(struct Sprite *sprite)
|
||||
{
|
||||
DestroyMonIconInternal(sprite);
|
||||
}
|
||||
@@ -1171,7 +1171,7 @@ void FreeMonIconPalette(u16 species)
|
||||
FreeSpritePaletteByTag(gMonIconPaletteTable[palIndex].tag);
|
||||
}
|
||||
|
||||
void SpriteCB_MonIcon(struct Sprite * sprite)
|
||||
void SpriteCB_MonIcon(struct Sprite *sprite)
|
||||
{
|
||||
UpdateMonIconFrame(sprite);
|
||||
}
|
||||
@@ -1208,7 +1208,7 @@ u8 GetMonIconPaletteIndexFromSpecies(u16 species)
|
||||
return gMonIconPaletteIndices[species];
|
||||
}
|
||||
|
||||
u8 UpdateMonIconFrame(struct Sprite * sprite)
|
||||
u8 UpdateMonIconFrame(struct Sprite *sprite)
|
||||
{
|
||||
u8 result = 0;
|
||||
|
||||
@@ -1268,14 +1268,14 @@ static u8 CreateMonIconSprite(const struct MonIconSpriteTemplate * iconTemplate,
|
||||
return spriteId;
|
||||
}
|
||||
|
||||
static void DestroyMonIconInternal(struct Sprite * sprite)
|
||||
static void DestroyMonIconInternal(struct Sprite *sprite)
|
||||
{
|
||||
struct SpriteFrameImage image = { NULL, sSpriteImageSizes[sprite->oam.shape][sprite->oam.size] };
|
||||
sprite->images = ℑ
|
||||
DestroySprite(sprite);
|
||||
}
|
||||
|
||||
void SetPartyHPBarSprite(struct Sprite * sprite, u8 animNum)
|
||||
void SetPartyHPBarSprite(struct Sprite *sprite, u8 animNum)
|
||||
{
|
||||
sprite->animNum = animNum;
|
||||
sprite->animDelayCounter = 0;
|
||||
|
||||
@@ -15,38 +15,38 @@
|
||||
|
||||
static void LoadBgGfxByAnimType(u16 animType);
|
||||
static void Task_ZoomAnim(u8 taskId);
|
||||
static void SetSpriteWithCloseness(struct Sprite * sprite, u8 closeness);
|
||||
static bool8 IsZoomSpriteCBActive(struct Sprite * sprite);
|
||||
static void MonSpriteZoom_UpdateYPos(struct Sprite * sprite, u8 closeness);
|
||||
static void ItemSpriteZoom_UpdateYPos(struct Sprite * sprite, u8 closeness);
|
||||
static void SetSpriteWithCloseness(struct Sprite *sprite, u8 closeness);
|
||||
static bool8 IsZoomSpriteCBActive(struct Sprite *sprite);
|
||||
static void MonSpriteZoom_UpdateYPos(struct Sprite *sprite, u8 closeness);
|
||||
static void ItemSpriteZoom_UpdateYPos(struct Sprite *sprite, u8 closeness);
|
||||
static void StartMonWiggleAnim(struct PokemonSpecialAnimScene * scene, u8 frameLen, u8 niter, u8 amplitude);
|
||||
static void StopMonWiggleAnim(struct PokemonSpecialAnimScene * scene);
|
||||
static void SpriteCallback_MonSpriteWiggle(struct Sprite * sprite);
|
||||
static void SpriteCallback_MonSpriteWiggle(struct Sprite *sprite);
|
||||
static void LoadMonSpriteGraphics(u16 *tilees, u16 *palette);
|
||||
static struct Sprite * PSA_CreateItemIconObject(u16 itemId);
|
||||
static struct Sprite *PSA_CreateItemIconObject(u16 itemId);
|
||||
static u16 GetBlendColorByItemId(u16 itemId);
|
||||
static void Task_ItemUseOnMonAnim(u8 taskId);
|
||||
static void CreateSprites_UseItem_OutwardSpiralDots(u8 taskId, s16 *data, struct Sprite * sprite);
|
||||
static void SpriteCB_OutwardSpiralDots(struct Sprite * sprite);
|
||||
static void InitItemIconSpriteState(struct PokemonSpecialAnimScene * scene, struct Sprite * sprite, u8 closeness);
|
||||
static void CreateSprites_UseItem_OutwardSpiralDots(u8 taskId, s16 *data, struct Sprite *sprite);
|
||||
static void SpriteCB_OutwardSpiralDots(struct Sprite *sprite);
|
||||
static void InitItemIconSpriteState(struct PokemonSpecialAnimScene * scene, struct Sprite *sprite, u8 closeness);
|
||||
static void MachineSetWobbleInit(void);
|
||||
static void MachineSetWobble_SetCB(struct Sprite * sprite);
|
||||
static void MachineSetWobble_SetCB(struct Sprite *sprite);
|
||||
static bool8 MachineSetWobbleCBIsRunning(void);
|
||||
static void SpriteCB_MachineSetWobble(struct Sprite * sprite);
|
||||
static void SpriteCB_MachineSetWobble(struct Sprite *sprite);
|
||||
static void StartZoomOutAnimForUseTM(u8 closeness);
|
||||
static void CreateStarSprites(struct PokemonSpecialAnimScene * scene);
|
||||
static bool8 AnyStarSpritesActive(void);
|
||||
static void SpriteCB_Star(struct Sprite * sprite);
|
||||
static void SpriteCB_Star(struct Sprite *sprite);
|
||||
static void PSAScene_SeedRandomInTask(struct PokemonSpecialAnimScene * scene);
|
||||
static void StopMakingOutwardSpiralDots(void);
|
||||
static void Task_UseItem_OutwardSpiralDots(u8 taskId);
|
||||
static u16 PSAScene_RandomFromTask(u8 taskId);
|
||||
static void SpriteCallback_UseItem_OutwardSpiralDots(struct Sprite * sprite);
|
||||
static void SpriteCallback_UseItem_OutwardSpiralDots(struct Sprite *sprite);
|
||||
static void LoadOutwardSpiralDotsGfx(void);
|
||||
static bool32 IsOutwardSpiralDotsTaskRunning(void);
|
||||
static void Task_LevelUpVerticalSprites(u8 taskId);
|
||||
static void CreateLevelUpVerticalSprite(u8 taskId, s16 *data);
|
||||
static void SpriteCB_LevelUpVertical(struct Sprite * sprite);
|
||||
static void SpriteCB_LevelUpVertical(struct Sprite *sprite);
|
||||
|
||||
static const u16 sBgPals_PSA_Any[] = INCBIN_U16("graphics/pokemon_special_anim/unk_845963C.gbapal");
|
||||
static const u16 sBgPals_PSA_Anim4[] = INCBIN_U16("graphics/pokemon_special_anim/unk_845965C.gbapal");
|
||||
@@ -642,9 +642,9 @@ void PSA_CreateMonSpriteAtCloseness(u8 closeness)
|
||||
u16 species = GetMonData(pokemon, MON_DATA_SPECIES);
|
||||
u32 personality = GetMonData(pokemon, MON_DATA_PERSONALITY);
|
||||
u8 r1 = Menu2_GetMonSpriteAnchorCoord(species, personality, 2);
|
||||
void * r6;
|
||||
void * r9;
|
||||
void * r4;
|
||||
void *r6;
|
||||
void *r9;
|
||||
void *r4;
|
||||
u8 spriteId;
|
||||
|
||||
if (r1 != 0xFF)
|
||||
@@ -717,7 +717,7 @@ bool8 PSA_IsZoomTaskActive(void)
|
||||
static void Task_ZoomAnim(u8 taskId)
|
||||
{
|
||||
s16 *data = gTasks[taskId].data;
|
||||
struct Sprite * sprite = (void *)GetWordTaskArg(taskId, tOff_MonSprite);
|
||||
struct Sprite *sprite = (void *)GetWordTaskArg(taskId, tOff_MonSprite);
|
||||
switch (tState)
|
||||
{
|
||||
case 0:
|
||||
@@ -754,14 +754,14 @@ static void Task_ZoomAnim(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
static void SetSpriteWithCloseness(struct Sprite * sprite, u8 closeness)
|
||||
static void SetSpriteWithCloseness(struct Sprite *sprite, u8 closeness)
|
||||
{
|
||||
sprite->data[0] = 0;
|
||||
sprite->data[1] = 0;
|
||||
sprite->data[2] = closeness;
|
||||
}
|
||||
|
||||
static bool8 IsZoomSpriteCBActive(struct Sprite * sprite)
|
||||
static bool8 IsZoomSpriteCBActive(struct Sprite *sprite)
|
||||
{
|
||||
return sprite->callback != SpriteCallbackDummy;
|
||||
}
|
||||
@@ -779,7 +779,7 @@ static u16 GetYPosByScale(u16 pos)
|
||||
return v += scene->monSpriteY1;
|
||||
}
|
||||
|
||||
static void MonSpriteZoom_UpdateYPos(struct Sprite * sprite, u8 closeness)
|
||||
static void MonSpriteZoom_UpdateYPos(struct Sprite *sprite, u8 closeness)
|
||||
{
|
||||
if (closeness > 3)
|
||||
closeness = 3;
|
||||
@@ -788,7 +788,7 @@ static void MonSpriteZoom_UpdateYPos(struct Sprite * sprite, u8 closeness)
|
||||
sprite->y = GetYPosByScale(sAffineScales[closeness]);
|
||||
}
|
||||
|
||||
static void ItemSpriteZoom_UpdateYPos(struct Sprite * sprite, u8 closeness)
|
||||
static void ItemSpriteZoom_UpdateYPos(struct Sprite *sprite, u8 closeness)
|
||||
{
|
||||
MonSpriteZoom_UpdateYPos(sprite, closeness);
|
||||
sprite->x2 = GetSpriteOffsetByScale(sprite->data[6] - 32, closeness);
|
||||
@@ -811,7 +811,7 @@ static void StopMonWiggleAnim(struct PokemonSpecialAnimScene * scene)
|
||||
scene->monSprite->callback = SpriteCallbackDummy;
|
||||
}
|
||||
|
||||
static void SpriteCallback_MonSpriteWiggle(struct Sprite * sprite)
|
||||
static void SpriteCallback_MonSpriteWiggle(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[7]++;
|
||||
if (sprite->data[7] > sprite->data[0])
|
||||
@@ -901,10 +901,10 @@ void CreateItemIconSpriteAtMaxCloseness(u16 itemId)
|
||||
}
|
||||
}
|
||||
|
||||
static struct Sprite * PSA_CreateItemIconObject(u16 itemId)
|
||||
static struct Sprite *PSA_CreateItemIconObject(u16 itemId)
|
||||
{
|
||||
u8 spriteId;
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
spriteId = AddItemIconObject(1, 1, itemId);
|
||||
if (spriteId == MAX_SPRITES)
|
||||
return NULL;
|
||||
@@ -925,7 +925,7 @@ bool8 PSA_IsItemUseOnMonAnimActive(void)
|
||||
static void Task_ItemUseOnMonAnim(u8 taskId)
|
||||
{
|
||||
s16 *data = gTasks[taskId].data;
|
||||
struct Sprite * sprite = (void *)GetWordTaskArg(taskId, tOff_ItemSprite);
|
||||
struct Sprite *sprite = (void *)GetWordTaskArg(taskId, tOff_ItemSprite);
|
||||
switch (tState)
|
||||
{
|
||||
case 0:
|
||||
@@ -987,7 +987,7 @@ static void Task_ItemUseOnMonAnim(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
static void CreateSprites_UseItem_OutwardSpiralDots(u8 taskId, s16 *data, struct Sprite * sprite)
|
||||
static void CreateSprites_UseItem_OutwardSpiralDots(u8 taskId, s16 *data, struct Sprite *sprite)
|
||||
{
|
||||
int x = sprite->x + sprite->x2 - 4;
|
||||
int y = sprite->y + sprite->y2 - 4;
|
||||
@@ -1008,7 +1008,7 @@ static void CreateSprites_UseItem_OutwardSpiralDots(u8 taskId, s16 *data, struct
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCB_OutwardSpiralDots(struct Sprite * sprite)
|
||||
static void SpriteCB_OutwardSpiralDots(struct Sprite *sprite)
|
||||
{
|
||||
s16 *data = sprite->data;
|
||||
if (data[0] < 16)
|
||||
@@ -1036,7 +1036,7 @@ void PSA_UseItem_CleanUpForCancel(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void InitItemIconSpriteState(struct PokemonSpecialAnimScene * scene, struct Sprite * sprite, u8 closeness)
|
||||
static void InitItemIconSpriteState(struct PokemonSpecialAnimScene * scene, struct Sprite *sprite, u8 closeness)
|
||||
{
|
||||
u16 species, x, y;
|
||||
u32 personality;
|
||||
@@ -1103,7 +1103,7 @@ static void MachineSetWobbleInit(void)
|
||||
MachineSetWobble_SetCB(scene->itemIconSprite);
|
||||
}
|
||||
|
||||
static void MachineSetWobble_SetCB(struct Sprite * sprite)
|
||||
static void MachineSetWobble_SetCB(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[0] = 0;
|
||||
sprite->data[1] = 0;
|
||||
@@ -1116,7 +1116,7 @@ static bool8 MachineSetWobbleCBIsRunning(void)
|
||||
return scene->monSprite->callback != SpriteCallbackDummy;
|
||||
}
|
||||
|
||||
static void SpriteCB_MachineSetWobble(struct Sprite * sprite)
|
||||
static void SpriteCB_MachineSetWobble(struct Sprite *sprite)
|
||||
{
|
||||
switch (sprite->data[0])
|
||||
{
|
||||
@@ -1206,7 +1206,7 @@ static u8 AnyStarSpritesActive(void)
|
||||
return PSA_GetSceneWork()->field_0002;
|
||||
}
|
||||
|
||||
static void SpriteCB_Star(struct Sprite * sprite)
|
||||
static void SpriteCB_Star(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[0]++;
|
||||
if (sprite->data[0] < 10)
|
||||
@@ -1266,7 +1266,7 @@ static void Task_UseItem_OutwardSpiralDots(u8 taskId)
|
||||
if (tTimer == 0)
|
||||
{
|
||||
u32 spriteId, x, y, x2, y2, ampl;
|
||||
struct Sprite * sprite = PSA_GetSceneWork()->itemIconSprite;
|
||||
struct Sprite *sprite = PSA_GetSceneWork()->itemIconSprite;
|
||||
x = sprite->x + sprite->x2;
|
||||
y = sprite->y + sprite->y2;
|
||||
ampl = (PSAScene_RandomFromTask(taskId) % 21) + 70;
|
||||
@@ -1308,7 +1308,7 @@ static u16 PSAScene_RandomFromTask(u8 taskId)
|
||||
return state >> 16;
|
||||
}
|
||||
|
||||
static void SpriteCallback_UseItem_OutwardSpiralDots(struct Sprite * sprite)
|
||||
static void SpriteCallback_UseItem_OutwardSpiralDots(struct Sprite *sprite)
|
||||
{
|
||||
int x;
|
||||
int y;
|
||||
@@ -1448,7 +1448,7 @@ static void CreateLevelUpVerticalSprite(u8 taskId, s16 *data)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCB_LevelUpVertical(struct Sprite * sprite)
|
||||
static void SpriteCB_LevelUpVertical(struct Sprite *sprite)
|
||||
{
|
||||
sprite->tsYsubpixel -= sprite->tsSpeed;
|
||||
sprite->y2 = sprite->tsYsubpixel >> 4;
|
||||
|
||||
+145
-99
@@ -15,14 +15,18 @@
|
||||
#include "constants/field_weather.h"
|
||||
#include "constants/help_system.h"
|
||||
|
||||
struct PSS_MenuStringPtrs
|
||||
{
|
||||
const u8 *text;
|
||||
const u8 *desc;
|
||||
// PC main menu options
|
||||
enum {
|
||||
OPTION_WITHDRAW,
|
||||
OPTION_DEPOSIT,
|
||||
OPTION_MOVE_MONS,
|
||||
OPTION_MOVE_ITEMS,
|
||||
OPTION_EXIT,
|
||||
OPTIONS_COUNT
|
||||
};
|
||||
|
||||
static EWRAM_DATA u8 sPreviousBoxOption = 0;
|
||||
static EWRAM_DATA struct UnkPSSStruct_2002370 *sBoxSelectionPopupSpriteManager = NULL;
|
||||
static EWRAM_DATA struct ChooseBoxMenu *sBoxSelectionPopupSpriteManager = NULL;
|
||||
|
||||
static void PSS_CreatePCMenu(u8 whichMenu, s16 *windowIdPtr);
|
||||
static void sub_808C9C4(u8 curBox);
|
||||
@@ -31,7 +35,7 @@ static void UpdateBoxNameAndCountSprite_WraparoundRight(void);
|
||||
static void UpdateBoxNameAndCountSprite_WraparoundLeft(void);
|
||||
static void PrintBoxNameAndCountToSprite(void);
|
||||
static void PrintToSpriteWithTagUnk0240(const u8 *a0, u16 x, u16 y);
|
||||
static void sub_808CD64(struct Sprite * sprite);
|
||||
static void sub_808CD64(struct Sprite *sprite);
|
||||
|
||||
// Forward declarations
|
||||
|
||||
@@ -39,12 +43,15 @@ static const u16 sBoxSelectionPopupPalette[];
|
||||
static const u16 sBoxSelectionPopupCenterTiles[];
|
||||
static const u16 sBoxSelectionPopupSidesTiles[];
|
||||
|
||||
static const struct PSS_MenuStringPtrs sUnknown_83CDA20[] = {
|
||||
{gText_WithdrawPokemon, gText_WithdrawMonDescription},
|
||||
{gText_DepositPokemon, gText_DepositMonDescription },
|
||||
{gText_MovePokemon, gText_MoveMonDescription },
|
||||
{gText_MoveItems, gText_MoveItemsDescription },
|
||||
{gText_SeeYa, gText_SeeYaDescription }
|
||||
struct {
|
||||
const u8 *text;
|
||||
const u8 *desc;
|
||||
} static const sMainMenuTexts[OPTIONS_COUNT] = {
|
||||
[OPTION_WITHDRAW] = {gText_WithdrawPokemon, gText_WithdrawMonDescription},
|
||||
[OPTION_DEPOSIT] = {gText_DepositPokemon, gText_DepositMonDescription},
|
||||
[OPTION_MOVE_MONS] = {gText_MovePokemon, gText_MoveMonDescription},
|
||||
[OPTION_MOVE_ITEMS] = {gText_MoveItems, gText_MoveItemsDescription},
|
||||
[OPTION_EXIT] = {gText_SeeYa, gText_SeeYaDescription}
|
||||
};
|
||||
|
||||
void DrawTextWindowAndBufferTiles(const u8 *string, void *dst, u8 zero1, u8 zero2, u8 *buffer, s32 bytesToBuffer)
|
||||
@@ -60,7 +67,7 @@ void DrawTextWindowAndBufferTiles(const u8 *string, void *dst, u8 zero1, u8 zero
|
||||
windowId = AddWindow(&winTemplate);
|
||||
FillWindowPixelBuffer(windowId, PIXEL_FILL(zero2));
|
||||
tileData1 = (u8 *)GetWindowAttribute(windowId, WINDOW_TILE_DATA);
|
||||
tileData2 = (winTemplate.width * 32) + tileData1;
|
||||
tileData2 = (winTemplate.width * TILE_SIZE_4BPP) + tileData1;
|
||||
|
||||
if (!zero1)
|
||||
txtColor[0] = TEXT_COLOR_TRANSPARENT;
|
||||
@@ -223,7 +230,8 @@ static void sub_808C25C(u16 *dest, u16 dest_left, u16 dest_top, const u16 *src,
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_808C2D8(u16 *dest, u16 dest_left, u16 dest_top, u16 width, u16 height)
|
||||
// Unused
|
||||
static void UnusedWriteRectDma(u16 *dest, u16 dest_left, u16 dest_top, u16 width, u16 height)
|
||||
{
|
||||
u16 i;
|
||||
|
||||
@@ -233,109 +241,138 @@ static void sub_808C2D8(u16 *dest, u16 dest_left, u16 dest_top, u16 width, u16 h
|
||||
Dma3FillLarge16_(0, dest, width);
|
||||
}
|
||||
|
||||
static void Task_PokemonStorageSystemPC(u8 taskId)
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// SECTION: Main menu
|
||||
//
|
||||
// The below functions generally handle the PC main menu where the main
|
||||
// options can be selected (Withdraw, Deposit, etc.), as well as exiting
|
||||
// Pokémon Storage back to this menu.
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
||||
enum {
|
||||
STATE_LOAD,
|
||||
STATE_FADE_IN,
|
||||
STATE_HANDLE_INPUT,
|
||||
STATE_ERROR_MSG,
|
||||
STATE_ENTER_PC,
|
||||
};
|
||||
|
||||
#define tState data[0]
|
||||
#define tSelectedOption data[1]
|
||||
#define tInput data[2]
|
||||
#define tNextOption data[3]
|
||||
#define tWindowId data[15]
|
||||
|
||||
static void Task_PCMainMenu(u8 taskId)
|
||||
{
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
switch (task->data[0])
|
||||
switch (task->tState)
|
||||
{
|
||||
case 0:
|
||||
case STATE_LOAD:
|
||||
SetHelpContext(HELPCONTEXT_BILLS_PC);
|
||||
PSS_CreatePCMenu(task->data[1], &task->data[15]);
|
||||
PSS_CreatePCMenu(task->tSelectedOption, &task->tWindowId);
|
||||
LoadStdWindowFrameGfx();
|
||||
DrawDialogueFrame(0, 0);
|
||||
DrawDialogueFrame(0, FALSE);
|
||||
FillWindowPixelBuffer(0, PIXEL_FILL(1));
|
||||
AddTextPrinterParameterized2(0, 2, sUnknown_83CDA20[task->data[1]].desc, TEXT_SKIP_DRAW, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
|
||||
AddTextPrinterParameterized2(0, 2, sMainMenuTexts[task->tSelectedOption].desc, TEXT_SKIP_DRAW, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
|
||||
CopyWindowToVram(0, COPYWIN_FULL);
|
||||
CopyWindowToVram(task->data[15], COPYWIN_FULL);
|
||||
task->data[0]++;
|
||||
CopyWindowToVram(task->tWindowId, COPYWIN_FULL);
|
||||
task->tState++;
|
||||
break;
|
||||
case 1:
|
||||
case STATE_FADE_IN:
|
||||
if (IsWeatherNotFadingIn())
|
||||
{
|
||||
task->data[0]++;
|
||||
task->tState++;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
task->data[2] = Menu_ProcessInput();
|
||||
switch(task->data[2])
|
||||
case STATE_HANDLE_INPUT:
|
||||
task->tInput = Menu_ProcessInput();
|
||||
switch(task->tInput)
|
||||
{
|
||||
case MENU_NOTHING_CHOSEN:
|
||||
task->data[3] = task->data[1];
|
||||
if (JOY_NEW(DPAD_UP) && --task->data[3] < 0)
|
||||
task->data[3] = 4;
|
||||
task->tNextOption = task->tSelectedOption;
|
||||
if (JOY_NEW(DPAD_UP) && --task->tNextOption < 0)
|
||||
task->tNextOption = OPTIONS_COUNT - 1;
|
||||
if (JOY_NEW(DPAD_DOWN) && ++task->tNextOption > OPTIONS_COUNT - 1)
|
||||
task->tNextOption = 0;
|
||||
|
||||
if (JOY_NEW(DPAD_DOWN) && ++task->data[3] > 4)
|
||||
task->data[3] = 0;
|
||||
if (task->data[1] != task->data[3])
|
||||
if (task->tSelectedOption != task->tNextOption)
|
||||
{
|
||||
task->data[1] = task->data[3];
|
||||
task->tSelectedOption = task->tNextOption;
|
||||
FillWindowPixelBuffer(0, PIXEL_FILL(1));
|
||||
AddTextPrinterParameterized2(0, 2, sUnknown_83CDA20[task->data[1]].desc, 0, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
|
||||
AddTextPrinterParameterized2(0, 2, sMainMenuTexts[task->tSelectedOption].desc, 0, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
|
||||
}
|
||||
break;
|
||||
case MENU_B_PRESSED:
|
||||
case 4:
|
||||
case OPTION_EXIT:
|
||||
ClearStdWindowAndFrame(0, TRUE);
|
||||
ClearStdWindowAndFrame(task->data[15], TRUE);
|
||||
ClearStdWindowAndFrame(task->tWindowId, TRUE);
|
||||
ScriptContext2_Disable();
|
||||
EnableBothScriptContexts();
|
||||
DestroyTask(taskId);
|
||||
break;
|
||||
default:
|
||||
if (task->data[2] == 0 && CountPartyMons() == PARTY_SIZE)
|
||||
if (task->tInput == 0 && CountPartyMons() == PARTY_SIZE)
|
||||
{
|
||||
// Can't withdraw
|
||||
FillWindowPixelBuffer(0, PIXEL_FILL(1));
|
||||
AddTextPrinterParameterized2(0, 2, gText_PartyFull, 0, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
|
||||
task->data[0] = 3;
|
||||
task->tState = 3;
|
||||
}
|
||||
else if (task->data[2] == 1 && CountPartyMons() == 1)
|
||||
else if (task->tInput == 1 && CountPartyMons() == 1)
|
||||
{
|
||||
// Can't deposit
|
||||
FillWindowPixelBuffer(0, PIXEL_FILL(1));
|
||||
AddTextPrinterParameterized2(0, 2, gText_JustOnePkmn, 0, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
|
||||
task->data[0] = 3;
|
||||
task->tState = STATE_ERROR_MSG;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Enter PC
|
||||
FadeScreen(FADE_TO_BLACK, 0);
|
||||
task->data[0] = 4;
|
||||
task->tState = STATE_ENTER_PC;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
case STATE_ERROR_MSG:
|
||||
// Printed "can't do PC option message"
|
||||
// Wait for new input after message
|
||||
if (JOY_NEW(A_BUTTON | B_BUTTON))
|
||||
{
|
||||
FillWindowPixelBuffer(0, PIXEL_FILL(1));
|
||||
AddTextPrinterParameterized2(0, 2, sUnknown_83CDA20[task->data[1]].desc, 0, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
|
||||
task->data[0] = 2;
|
||||
AddTextPrinterParameterized2(0, 2, sMainMenuTexts[task->tSelectedOption].desc, 0, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
|
||||
task->tState = STATE_HANDLE_INPUT;
|
||||
}
|
||||
else if (JOY_NEW(DPAD_UP))
|
||||
{
|
||||
if (--task->data[1] < 0)
|
||||
task->data[1] = 4;
|
||||
if (--task->tSelectedOption < 0)
|
||||
task->tSelectedOption = 4;
|
||||
Menu_MoveCursor(-1);
|
||||
task->data[1] = Menu_GetCursorPos();
|
||||
task->tSelectedOption = Menu_GetCursorPos();
|
||||
FillWindowPixelBuffer(0, PIXEL_FILL(1));
|
||||
AddTextPrinterParameterized2(0, 2, sUnknown_83CDA20[task->data[1]].desc, 0, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
|
||||
task->data[0] = 2;
|
||||
AddTextPrinterParameterized2(0, 2, sMainMenuTexts[task->tSelectedOption].desc, 0, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
|
||||
task->tState = STATE_HANDLE_INPUT;
|
||||
}
|
||||
else if (JOY_NEW(DPAD_DOWN))
|
||||
{
|
||||
if (++task->data[1] > 3)
|
||||
task->data[1] = 0;
|
||||
if (++task->tSelectedOption > 3)
|
||||
task->tSelectedOption = 0;
|
||||
Menu_MoveCursor(1);
|
||||
task->data[1] = Menu_GetCursorPos();
|
||||
task->tSelectedOption = Menu_GetCursorPos();
|
||||
FillWindowPixelBuffer(0, PIXEL_FILL(1));
|
||||
AddTextPrinterParameterized2(0, 2, sUnknown_83CDA20[task->data[1]].desc, 0, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
|
||||
task->data[0] = 2;
|
||||
AddTextPrinterParameterized2(0, 2, sMainMenuTexts[task->tSelectedOption].desc, 0, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
|
||||
task->tState = STATE_HANDLE_INPUT;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
case STATE_ENTER_PC:
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
CleanupOverworldWindowsAndTilemaps();
|
||||
Cb2_EnterPSS(task->data[2]);
|
||||
Cb2_EnterPSS(task->tInput);
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
break;
|
||||
@@ -344,22 +381,22 @@ static void Task_PokemonStorageSystemPC(u8 taskId)
|
||||
|
||||
void ShowPokemonStorageSystemPC(void)
|
||||
{
|
||||
u8 taskId = CreateTask(Task_PokemonStorageSystemPC, 80);
|
||||
gTasks[taskId].data[0] = 0;
|
||||
gTasks[taskId].data[1] = 0;
|
||||
u8 taskId = CreateTask(Task_PCMainMenu, 80);
|
||||
gTasks[taskId].tState = 0;
|
||||
gTasks[taskId].tSelectedOption = 0;
|
||||
ScriptContext2_Enable();
|
||||
}
|
||||
|
||||
static void FieldCb_ReturnToPcMenu(void)
|
||||
static void FieldTask_ReturnToPcMenu(void)
|
||||
{
|
||||
u8 taskId;
|
||||
MainCallback vblankCb = gMain.vblankCallback;
|
||||
|
||||
SetVBlankCallback(NULL);
|
||||
taskId = CreateTask(Task_PokemonStorageSystemPC, 80);
|
||||
gTasks[taskId].data[0] = 0;
|
||||
gTasks[taskId].data[1] = sPreviousBoxOption;
|
||||
Task_PokemonStorageSystemPC(taskId);
|
||||
taskId = CreateTask(Task_PCMainMenu, 80);
|
||||
gTasks[taskId].tState = 0;
|
||||
gTasks[taskId].tSelectedOption = sPreviousBoxOption;
|
||||
Task_PCMainMenu(taskId);
|
||||
SetVBlankCallback(vblankCb);
|
||||
FadeInFromBlack();
|
||||
}
|
||||
@@ -380,15 +417,15 @@ static void PSS_CreatePCMenu(u8 whichMenu, s16 *windowIdPtr)
|
||||
windowId = AddWindow(&sUnknown_83CDA48);
|
||||
|
||||
DrawStdWindowFrame(windowId, FALSE);
|
||||
PrintTextArray(windowId, 2, GetMenuCursorDimensionByFont(2, 0), 2, 16, NELEMS(sUnknown_83CDA20), (void *)sUnknown_83CDA20);
|
||||
Menu_InitCursor(windowId, 2, 0, 2, 16, NELEMS(sUnknown_83CDA20), whichMenu);
|
||||
PrintTextArray(windowId, 2, GetMenuCursorDimensionByFont(2, 0), 2, 16, NELEMS(sMainMenuTexts), (void *)sMainMenuTexts);
|
||||
Menu_InitCursor(windowId, 2, 0, 2, 16, NELEMS(sMainMenuTexts), whichMenu);
|
||||
*windowIdPtr = windowId;
|
||||
}
|
||||
|
||||
void Cb2_ExitPSS(void)
|
||||
void CB2_ExitPokeStorage(void)
|
||||
{
|
||||
sPreviousBoxOption = GetCurrentBoxOption();
|
||||
gFieldCallback = FieldCb_ReturnToPcMenu;
|
||||
gFieldCallback = FieldTask_ReturnToPcMenu;
|
||||
SetMainCallback2(CB2_ReturnToField);
|
||||
}
|
||||
|
||||
@@ -407,13 +444,22 @@ void ResetPokemonStorageSystem(void)
|
||||
u8 *dest = StringCopy(GetBoxNamePtr(boxId), gText_Box);
|
||||
ConvertIntToDecimalStringN(dest, boxId + 1, STR_CONV_MODE_LEFT_ALIGN, 2);
|
||||
}
|
||||
|
||||
for (boxId = 0; boxId < TOTAL_BOXES_COUNT; boxId++)
|
||||
{
|
||||
SetBoxWallpaper(boxId, boxId % 4);
|
||||
}
|
||||
SetBoxWallpaper(boxId, boxId % (MAX_DEFAULT_WALLPAPER + 1));
|
||||
}
|
||||
|
||||
void LoadBoxSelectionPopupSpriteGfx(struct UnkPSSStruct_2002370 *a0, u16 tileTag, u16 palTag, u8 a3, bool32 loadPal)
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// SECTION: Choose Box menu
|
||||
//
|
||||
// The below functions handle the popup menu that allows the player to cycle
|
||||
// through the boxes and select one. Used when storing Pokémon in Deposit mode
|
||||
// and for the Jump feature.
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
||||
void LoadChooseBoxMenuGfx(struct ChooseBoxMenu *a0, u16 tileTag, u16 palTag, u8 a3, bool32 loadPal)
|
||||
{
|
||||
struct SpritePalette palette = {
|
||||
sBoxSelectionPopupPalette, palTag
|
||||
@@ -429,18 +475,18 @@ void LoadBoxSelectionPopupSpriteGfx(struct UnkPSSStruct_2002370 *a0, u16 tileTag
|
||||
|
||||
LoadSpriteSheets(sheets);
|
||||
sBoxSelectionPopupSpriteManager = a0;
|
||||
a0->tilesTag = tileTag;
|
||||
a0->tileTag = tileTag;
|
||||
a0->paletteTag = palTag;
|
||||
a0->subpriority = a3;
|
||||
a0->loadPal = loadPal;
|
||||
a0->loadedPalette = loadPal;
|
||||
}
|
||||
|
||||
void FreeBoxSelectionPopupSpriteGfx(void)
|
||||
{
|
||||
if (sBoxSelectionPopupSpriteManager->loadPal)
|
||||
if (sBoxSelectionPopupSpriteManager->loadedPalette)
|
||||
FreeSpritePaletteByTag(sBoxSelectionPopupSpriteManager->paletteTag);
|
||||
FreeSpriteTilesByTag(sBoxSelectionPopupSpriteManager->tilesTag);
|
||||
FreeSpriteTilesByTag(sBoxSelectionPopupSpriteManager->tilesTag + 1);
|
||||
FreeSpriteTilesByTag(sBoxSelectionPopupSpriteManager->tileTag);
|
||||
FreeSpriteTilesByTag(sBoxSelectionPopupSpriteManager->tileTag + 1);
|
||||
}
|
||||
|
||||
void sub_808C940(u8 curBox)
|
||||
@@ -529,43 +575,43 @@ static void sub_808C9C4(u8 curBox)
|
||||
const u8 gUnknown_83CDA94[] = _("/30");
|
||||
|
||||
sBoxSelectionPopupSpriteManager->curBox = curBox;
|
||||
template.tileTag = sBoxSelectionPopupSpriteManager->tilesTag;
|
||||
template.tileTag = sBoxSelectionPopupSpriteManager->tileTag;
|
||||
template.paletteTag = sBoxSelectionPopupSpriteManager->paletteTag;
|
||||
|
||||
spriteId = CreateSprite(&template, 160, 96, 0);
|
||||
sBoxSelectionPopupSpriteManager->unk_0000 = gSprites + spriteId;
|
||||
sBoxSelectionPopupSpriteManager->menuSprite = gSprites + spriteId;
|
||||
|
||||
// Manual subsprites
|
||||
oamData.shape = SPRITE_SHAPE(8x32);
|
||||
oamData.size = SPRITE_SIZE(8x32);
|
||||
template.tileTag = sBoxSelectionPopupSpriteManager->tilesTag + 1;
|
||||
template.tileTag = sBoxSelectionPopupSpriteManager->tileTag + 1;
|
||||
template.anims = gUnknown_83CDA70;
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
u16 r5;
|
||||
spriteId = CreateSprite(&template, 124, 80, sBoxSelectionPopupSpriteManager->subpriority);
|
||||
sBoxSelectionPopupSpriteManager->unk_0004[i] = gSprites + spriteId;
|
||||
sBoxSelectionPopupSpriteManager->menuSideSprites[i] = gSprites + spriteId;
|
||||
r5 = 0;
|
||||
if (i & 2)
|
||||
{
|
||||
sBoxSelectionPopupSpriteManager->unk_0004[i]->x = 196;
|
||||
sBoxSelectionPopupSpriteManager->menuSideSprites[i]->x = 196;
|
||||
r5 = 2;
|
||||
}
|
||||
if (i & 1)
|
||||
{
|
||||
sBoxSelectionPopupSpriteManager->unk_0004[i]->y = 112;
|
||||
sBoxSelectionPopupSpriteManager->unk_0004[i]->oam.size = SPRITE_SIZE(8x16);
|
||||
sBoxSelectionPopupSpriteManager->menuSideSprites[i]->y = 112;
|
||||
sBoxSelectionPopupSpriteManager->menuSideSprites[i]->oam.size = SPRITE_SIZE(8x16);
|
||||
r5++;
|
||||
}
|
||||
StartSpriteAnim(sBoxSelectionPopupSpriteManager->unk_0004[i], r5);
|
||||
StartSpriteAnim(sBoxSelectionPopupSpriteManager->menuSideSprites[i], r5);
|
||||
}
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
sBoxSelectionPopupSpriteManager->unk_0020[i] = sub_809223C(72 * i + 0x7c, 0x58, i, 0, sBoxSelectionPopupSpriteManager->subpriority);
|
||||
if (sBoxSelectionPopupSpriteManager->unk_0020[i])
|
||||
sBoxSelectionPopupSpriteManager->arrowSprites[i] = sub_809223C(72 * i + 0x7c, 0x58, i, 0, sBoxSelectionPopupSpriteManager->subpriority);
|
||||
if (sBoxSelectionPopupSpriteManager->arrowSprites[i])
|
||||
{
|
||||
sBoxSelectionPopupSpriteManager->unk_0020[i]->data[0] = (i == 0 ? -1 : 1);
|
||||
sBoxSelectionPopupSpriteManager->unk_0020[i]->callback = sub_808CD64;
|
||||
sBoxSelectionPopupSpriteManager->arrowSprites[i]->data[0] = (i == 0 ? -1 : 1);
|
||||
sBoxSelectionPopupSpriteManager->arrowSprites[i]->callback = sub_808CD64;
|
||||
}
|
||||
}
|
||||
PrintBoxNameAndCountToSprite();
|
||||
@@ -576,23 +622,23 @@ static void sub_808C9C4(u8 curBox)
|
||||
static void sub_808CBA4(void)
|
||||
{
|
||||
u16 i;
|
||||
if (sBoxSelectionPopupSpriteManager->unk_0000)
|
||||
if (sBoxSelectionPopupSpriteManager->menuSprite)
|
||||
{
|
||||
DestroySprite(sBoxSelectionPopupSpriteManager->unk_0000);
|
||||
sBoxSelectionPopupSpriteManager->unk_0000 = NULL;
|
||||
DestroySprite(sBoxSelectionPopupSpriteManager->menuSprite);
|
||||
sBoxSelectionPopupSpriteManager->menuSprite = NULL;
|
||||
}
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
if (sBoxSelectionPopupSpriteManager->unk_0004[i])
|
||||
if (sBoxSelectionPopupSpriteManager->menuSideSprites[i])
|
||||
{
|
||||
DestroySprite(sBoxSelectionPopupSpriteManager->unk_0004[i]);
|
||||
sBoxSelectionPopupSpriteManager->unk_0004[i] = NULL;
|
||||
DestroySprite(sBoxSelectionPopupSpriteManager->menuSideSprites[i]);
|
||||
sBoxSelectionPopupSpriteManager->menuSideSprites[i] = NULL;
|
||||
}
|
||||
}
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
if (sBoxSelectionPopupSpriteManager->unk_0020[i])
|
||||
DestroySprite(sBoxSelectionPopupSpriteManager->unk_0020[i]);
|
||||
if (sBoxSelectionPopupSpriteManager->arrowSprites[i])
|
||||
DestroySprite(sBoxSelectionPopupSpriteManager->arrowSprites[i]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -627,7 +673,7 @@ static void PrintBoxNameAndCountToSprite(void)
|
||||
|
||||
static void PrintToSpriteWithTagUnk0240(const u8 *str, u16 x, u16 y)
|
||||
{
|
||||
u16 tileStart = GetSpriteTileStartByTag(sBoxSelectionPopupSpriteManager->tilesTag);
|
||||
u16 tileStart = GetSpriteTileStartByTag(sBoxSelectionPopupSpriteManager->tileTag);
|
||||
PrintStringToBufferCopyNow(str, (void *)(OBJ_VRAM0 + tileStart * 32 + 256 * y + 32 * x), 0x100, TEXT_COLOR_RED, TEXT_DYNAMIC_COLOR_6, TEXT_DYNAMIC_COLOR_5, sBoxSelectionPopupSpriteManager->buffer);
|
||||
}
|
||||
|
||||
|
||||
@@ -76,7 +76,7 @@ static void PSS_CreateMonMarkingSprite(void);
|
||||
static void CreateWaveformSprites(void);
|
||||
static void RefreshCursorMonData(void);
|
||||
static void BoxSetMosaic(void);
|
||||
static void SpriteCB_CursorMon_Mosaic(struct Sprite * sprite);
|
||||
static void SpriteCB_CursorMon_Mosaic(struct Sprite *sprite);
|
||||
static bool8 BoxGetMosaic(void);
|
||||
static void LoadCursorMonSprite(void);
|
||||
static void LoadCursorMonGfx(u16 species, u32 pid);
|
||||
@@ -370,7 +370,7 @@ void Cb2_EnterPSS(u8 boxOption)
|
||||
sCurrentBoxOption = boxOption;
|
||||
gPSSData = Alloc(sizeof(struct PokemonStorageSystemData));
|
||||
if (gPSSData == NULL)
|
||||
SetMainCallback2(Cb2_ExitPSS);
|
||||
SetMainCallback2(CB2_ExitPokeStorage);
|
||||
else
|
||||
{
|
||||
gPSSData->boxOption = boxOption;
|
||||
@@ -389,7 +389,7 @@ void Cb2_ReturnToPSS(void)
|
||||
ResetTasks();
|
||||
gPSSData = Alloc(sizeof(struct PokemonStorageSystemData));
|
||||
if (gPSSData == NULL)
|
||||
SetMainCallback2(Cb2_ExitPSS);
|
||||
SetMainCallback2(CB2_ExitPokeStorage);
|
||||
else
|
||||
{
|
||||
gPSSData->boxOption = sCurrentBoxOption;
|
||||
@@ -421,13 +421,13 @@ static void sub_808CF10(void)
|
||||
FreeAllSpritePalettes();
|
||||
ClearDma3Requests();
|
||||
gReservedSpriteTileCount = 0x280;
|
||||
sub_8096BE4(&gPSSData->unk_0020, gPSSData->unk_0028, 8);
|
||||
sub_8096BE4(&gPSSData->unkUtil, gPSSData->unkUtilData, 8);
|
||||
gKeyRepeatStartDelay = 20;
|
||||
ClearScheduledBgCopiesToVram();
|
||||
AllocBoxPartyPokemonDropdowns(3);
|
||||
SetBoxPartyPokemonDropdownMap2(0, 1, gUnknown_83CE6F8, 8, 4);
|
||||
SetBoxPartyPokemonDropdownMap2Pos(0, 1, 0);
|
||||
gPSSData->unk_02C7 = FALSE;
|
||||
gPSSData->closeBoxFlashing = FALSE;
|
||||
}
|
||||
|
||||
static void sub_808CF94(void)
|
||||
@@ -531,10 +531,10 @@ static void Cb_InitPSS(u8 taskId)
|
||||
|
||||
if (gPSSData->boxOption != BOX_OPTION_MOVE_ITEMS)
|
||||
{
|
||||
gPSSData->field_DA4.baseTileTag = TAG_TILE_D;
|
||||
gPSSData->field_DA4.basePaletteTag = TAG_PAL_DACE;
|
||||
SetMonMarkingsMenuPointer(&gPSSData->field_DA4);
|
||||
LoadMonMarkingsFrameGfx();
|
||||
gPSSData->markMenu.baseTileTag = TAG_TILE_D;
|
||||
gPSSData->markMenu.basePaletteTag = TAG_PAL_DACE;
|
||||
InitMonMarkingsMenu(&gPSSData->markMenu);
|
||||
BufferMonMarkingsMenuTiles();
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -622,7 +622,7 @@ static void Cb_MainPSS(u8 taskId)
|
||||
case 6:
|
||||
if (gPSSData->boxOption == BOX_OPTION_MOVE_MONS)
|
||||
{
|
||||
if (IsMonBeingMoved() && ItemIsMail(gPSSData->cursorMonItem))
|
||||
if (IsMonBeingMoved() && ItemIsMail(gPSSData->displayMonItemId))
|
||||
gPSSData->state = 5;
|
||||
else
|
||||
SetPSSCallback(Cb_HidePartyPokemon);
|
||||
@@ -680,7 +680,7 @@ static void Cb_MainPSS(u8 taskId)
|
||||
case 11:
|
||||
if (!CanMovePartyMon())
|
||||
{
|
||||
if (ItemIsMail(gPSSData->cursorMonItem))
|
||||
if (ItemIsMail(gPSSData->displayMonItemId))
|
||||
{
|
||||
gPSSData->state = 5;
|
||||
}
|
||||
@@ -911,7 +911,7 @@ static void Cb_OnSelectedMon(u8 taskId)
|
||||
PlaySE(SE_SELECT);
|
||||
if (gPSSData->boxOption != BOX_OPTION_MOVE_ITEMS)
|
||||
PrintStorageActionText(PC_TEXT_IS_SELECTED);
|
||||
else if (IsActiveItemMoving() || gPSSData->cursorMonItem != 0)
|
||||
else if (IsActiveItemMoving() || gPSSData->displayMonItemId != 0)
|
||||
PrintStorageActionText(PC_TEXT_IS_SELECTED2);
|
||||
else
|
||||
PrintStorageActionText(PC_TEXT_GIVE_TO_MON);
|
||||
@@ -971,7 +971,7 @@ static void Cb_OnSelectedMon(u8 taskId)
|
||||
{
|
||||
gPSSData->state = 3;
|
||||
}
|
||||
else if (ItemIsMail(gPSSData->cursorMonItem))
|
||||
else if (ItemIsMail(gPSSData->displayMonItemId))
|
||||
{
|
||||
gPSSData->state = 4;
|
||||
}
|
||||
@@ -987,11 +987,11 @@ static void Cb_OnSelectedMon(u8 taskId)
|
||||
{
|
||||
gPSSData->state = 3;
|
||||
}
|
||||
else if (gPSSData->cursorMonIsEgg)
|
||||
else if (gPSSData->displayMonIsEgg)
|
||||
{
|
||||
gPSSData->state = 5; // Cannot release an Egg.
|
||||
}
|
||||
else if (ItemIsMail(gPSSData->cursorMonItem))
|
||||
else if (ItemIsMail(gPSSData->displayMonItemId))
|
||||
{
|
||||
gPSSData->state = 4;
|
||||
}
|
||||
@@ -1177,7 +1177,7 @@ static void Cb_DepositMenu(u8 taskId)
|
||||
{
|
||||
case 0:
|
||||
PrintStorageActionText(PC_TEXT_DEPOSIT_IN_WHICH_BOX);
|
||||
LoadBoxSelectionPopupSpriteGfx(&gPSSData->field_1E5C, TAG_TILE_A, TAG_PAL_DAC7, 3, FALSE);
|
||||
LoadChooseBoxMenuGfx(&gPSSData->field_1E5C, TAG_TILE_A, TAG_PAL_DAC7, 3, FALSE);
|
||||
sub_808C940(gUnknown_20397B6);
|
||||
gPSSData->state++;
|
||||
break;
|
||||
@@ -1372,16 +1372,16 @@ static void Cb_ShowMarkMenu(u8 taskId)
|
||||
{
|
||||
case 0:
|
||||
PrintStorageActionText(PC_TEXT_MARK_POKE);
|
||||
gPSSData->field_DA4.markings = gPSSData->cursorMonMarkings;
|
||||
DrawMonMarkingsMenu(gPSSData->cursorMonMarkings, 0xb0, 0x10);
|
||||
gPSSData->markMenu.markings = gPSSData->displayMonMarkings;
|
||||
OpenMonMarkingsMenu(gPSSData->displayMonMarkings, 0xb0, 0x10);
|
||||
gPSSData->state++;
|
||||
break;
|
||||
case 1:
|
||||
if (!MonMarkingsHandleInput())
|
||||
if (!HandleMonMarkingsMenuInput())
|
||||
{
|
||||
TeardownMonMarkingsMenu();
|
||||
FreeMonMarkingsMenu();
|
||||
ClearBottomWindow();
|
||||
SetMonMarkings(gPSSData->field_DA4.markings);
|
||||
SetMonMarkings(gPSSData->markMenu.markings);
|
||||
RefreshCursorMonData();
|
||||
SetPSSCallback(Cb_MainPSS);
|
||||
}
|
||||
@@ -1394,7 +1394,7 @@ static void Cb_TakeItemForMoving(u8 taskId)
|
||||
switch (gPSSData->state)
|
||||
{
|
||||
case 0:
|
||||
if (!ItemIsMail(gPSSData->cursorMonItem))
|
||||
if (!ItemIsMail(gPSSData->displayMonItemId))
|
||||
{
|
||||
ClearBottomWindow();
|
||||
gPSSData->state++;
|
||||
@@ -1468,7 +1468,7 @@ static void Cb_ItemToBag(u8 taskId)
|
||||
switch (gPSSData->state)
|
||||
{
|
||||
case 0:
|
||||
if (!AddBagItem(gPSSData->cursorMonItem, 1))
|
||||
if (!AddBagItem(gPSSData->displayMonItemId, 1))
|
||||
{
|
||||
PlaySE(SE_FAILURE);
|
||||
PrintStorageActionText(PC_TEXT_BAG_FULL);
|
||||
@@ -1516,7 +1516,7 @@ static void Cb_SwitchSelectedItem(u8 taskId)
|
||||
switch (gPSSData->state)
|
||||
{
|
||||
case 0:
|
||||
if (!ItemIsMail(gPSSData->cursorMonItem))
|
||||
if (!ItemIsMail(gPSSData->displayMonItemId))
|
||||
{
|
||||
ClearBottomWindow();
|
||||
gPSSData->state++;
|
||||
@@ -1814,7 +1814,7 @@ static void Cb_JumpBox(u8 taskId)
|
||||
{
|
||||
case 0:
|
||||
PrintStorageActionText(PC_TEXT_JUMP_TO_WHICH_BOX);
|
||||
LoadBoxSelectionPopupSpriteGfx(&gPSSData->field_1E5C, TAG_TILE_A, TAG_PAL_DAC7, 3, FALSE);
|
||||
LoadChooseBoxMenuGfx(&gPSSData->field_1E5C, TAG_TILE_A, TAG_PAL_DAC7, 3, FALSE);
|
||||
sub_808C940(StorageGetCurrentBox());
|
||||
gPSSData->state++;
|
||||
break;
|
||||
@@ -2051,7 +2051,7 @@ static void Cb_ChangeScreen(u8 taskId)
|
||||
case SCREEN_CHANGE_EXIT_BOX:
|
||||
default:
|
||||
FreePSSData();
|
||||
SetMainCallback2(Cb2_ExitPSS);
|
||||
SetMainCallback2(CB2_ExitPokeStorage);
|
||||
break;
|
||||
case SCREEN_CHANGE_SUMMARY_SCREEN:
|
||||
partyMon = gPSSData->field_218C.mon;
|
||||
@@ -2163,12 +2163,12 @@ static void sub_808F078(void)
|
||||
|
||||
static void PSS_CreateMonMarkingSprite(void)
|
||||
{
|
||||
gPSSData->monMarkingSprite = CreateMonMarkingSprite_AllOff(TAG_TILE_10, TAG_PAL_DAC8, NULL);
|
||||
gPSSData->monMarkingSprite->oam.priority = 1;
|
||||
gPSSData->monMarkingSprite->subpriority = 1;
|
||||
gPSSData->monMarkingSprite->x = 40;
|
||||
gPSSData->monMarkingSprite->y = 150;
|
||||
gPSSData->monMarkingSpriteTileStart = (void *)OBJ_VRAM0 + 32 * GetSpriteTileStartByTag(TAG_TILE_10);
|
||||
gPSSData->markingComboSprite = CreateMonMarkingComboSprite(TAG_TILE_10, TAG_PAL_DAC8, NULL);
|
||||
gPSSData->markingComboSprite->oam.priority = 1;
|
||||
gPSSData->markingComboSprite->subpriority = 1;
|
||||
gPSSData->markingComboSprite->x = 40;
|
||||
gPSSData->markingComboSprite->y = 150;
|
||||
gPSSData->markingComboTilesPtr = (void *)OBJ_VRAM0 + 32 * GetSpriteTileStartByTag(TAG_TILE_10);
|
||||
}
|
||||
|
||||
static void CreateWaveformSprites(void)
|
||||
@@ -2180,13 +2180,13 @@ static void CreateWaveformSprites(void)
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
u8 spriteId = CreateSprite(&sSpriteTemplate_Waveform, i * 63 + 8, 9, 2);
|
||||
gPSSData->field_D98[i] = &gSprites[spriteId];
|
||||
gPSSData->waveformSprites[i] = &gSprites[spriteId];
|
||||
}
|
||||
}
|
||||
|
||||
static void RefreshCursorMonData(void)
|
||||
{
|
||||
LoadCursorMonGfx(gPSSData->cursorMonSpecies, gPSSData->cursorMonPersonality);
|
||||
LoadCursorMonGfx(gPSSData->displayMonSpecies, gPSSData->displayMonPersonality);
|
||||
PrintCursorMonInfo();
|
||||
sub_808F5E8();
|
||||
ScheduleBgCopyTilemapToVram(0);
|
||||
@@ -2274,7 +2274,7 @@ static void LoadCursorMonGfx(u16 species, u32 pid)
|
||||
if (species != SPECIES_NONE)
|
||||
{
|
||||
HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gPSSData->field_22C4, species, pid);
|
||||
LZ77UnCompWram(gPSSData->cursorMonPalette, gPSSData->field_2244);
|
||||
LZ77UnCompWram(gPSSData->displayMonPalette, gPSSData->field_2244);
|
||||
CpuCopy32(gPSSData->field_22C4, gPSSData->field_223C, 0x800);
|
||||
LoadPalette(gPSSData->field_2244, gPSSData->field_223A, 0x20);
|
||||
gPSSData->cursorMonSprite->invisible = FALSE;
|
||||
@@ -2294,28 +2294,28 @@ static void PrintCursorMonInfo(void)
|
||||
{
|
||||
for (i = 0, y = 0; i < 3; i++, y += 14)
|
||||
{
|
||||
AddTextPrinterParameterized(0, 2, gPSSData->cursorMonTexts[i], i == 2 ? 10 : 6, y, TEXT_SKIP_DRAW, NULL);
|
||||
AddTextPrinterParameterized(0, 2, gPSSData->displayMonTexts[i], i == 2 ? 10 : 6, y, TEXT_SKIP_DRAW, NULL);
|
||||
}
|
||||
AddTextPrinterParameterized(0, 0, gPSSData->cursorMonTexts[3], 6, y + 2, TEXT_SKIP_DRAW, NULL);
|
||||
AddTextPrinterParameterized(0, 0, gPSSData->displayMonTexts[3], 6, y + 2, TEXT_SKIP_DRAW, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
AddTextPrinterParameterized(0, 0, gPSSData->cursorMonTexts[3], 6, 0, TEXT_SKIP_DRAW, NULL);
|
||||
AddTextPrinterParameterized(0, 0, gPSSData->displayMonTexts[3], 6, 0, TEXT_SKIP_DRAW, NULL);
|
||||
for (i = 0, y = 15; i < 3; i++, y += 14)
|
||||
{
|
||||
AddTextPrinterParameterized(0, 2, gPSSData->cursorMonTexts[i], i == 2 ? 10 : 6, y, TEXT_SKIP_DRAW, NULL);
|
||||
AddTextPrinterParameterized(0, 2, gPSSData->displayMonTexts[i], i == 2 ? 10 : 6, y, TEXT_SKIP_DRAW, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
CopyWindowToVram(0, COPYWIN_GFX);
|
||||
if (gPSSData->cursorMonSpecies != SPECIES_NONE)
|
||||
if (gPSSData->displayMonSpecies != SPECIES_NONE)
|
||||
{
|
||||
RequestDma3LoadMonMarking(gPSSData->cursorMonMarkings, gPSSData->monMarkingSpriteTileStart);
|
||||
gPSSData->monMarkingSprite->invisible = FALSE;
|
||||
UpdateMonMarkingTiles(gPSSData->displayMonMarkings, gPSSData->markingComboTilesPtr);
|
||||
gPSSData->markingComboSprite->invisible = FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
gPSSData->monMarkingSprite->invisible = TRUE;
|
||||
gPSSData->markingComboSprite->invisible = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2323,17 +2323,17 @@ static void sub_808F5E8(void)
|
||||
{
|
||||
u16 i;
|
||||
|
||||
if (gPSSData->cursorMonSpecies != SPECIES_NONE)
|
||||
if (gPSSData->displayMonSpecies != SPECIES_NONE)
|
||||
{
|
||||
SetBoxPartyPokemonDropdownMap2Rect(0, 0, 0, 8, 2);
|
||||
for (i = 0; i < 2; i++)
|
||||
StartSpriteAnimIfDifferent(gPSSData->field_D98[i], i * 2 + 1);
|
||||
StartSpriteAnimIfDifferent(gPSSData->waveformSprites[i], i * 2 + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetBoxPartyPokemonDropdownMap2Rect(0, 0, 2, 8, 2);
|
||||
for (i = 0; i < 2; i++)
|
||||
StartSpriteAnim(gPSSData->field_D98[i], i * 2);
|
||||
StartSpriteAnim(gPSSData->waveformSprites[i], i * 2);
|
||||
}
|
||||
|
||||
CopyBoxPartyPokemonDropdownToBgTilemapBuffer(0);
|
||||
@@ -2342,9 +2342,9 @@ static void sub_808F5E8(void)
|
||||
|
||||
static void sub_808F68C(void)
|
||||
{
|
||||
LZ77UnCompWram(gUnknown_8E9CAEC, gPSSData->field_B0);
|
||||
LZ77UnCompWram(gUnknown_8E9CAEC, gPSSData->partyMenuTilemapBuffer);
|
||||
LoadPalette(gPSSMenu_Pal, 0x10, 0x20);
|
||||
SetBoxPartyPokemonDropdownMap2(1, 1, gPSSData->field_B0, 12, 22);
|
||||
SetBoxPartyPokemonDropdownMap2(1, 1, gPSSData->partyMenuTilemapBuffer, 12, 22);
|
||||
SetBoxPartyPokemonDropdownMap2(2, 1, gUnknown_83CE778, 9, 4);
|
||||
SetBoxPartyPokemonDropdownMap2Pos(1, 10, 0);
|
||||
SetBoxPartyPokemonDropdownMap2Pos(2, 21, 0);
|
||||
@@ -2365,29 +2365,29 @@ static void sub_808F68C(void)
|
||||
}
|
||||
|
||||
ScheduleBgCopyTilemapToVram(1);
|
||||
gPSSData->unk_02C7 = FALSE;
|
||||
gPSSData->closeBoxFlashing = FALSE;
|
||||
}
|
||||
|
||||
static void SetUpShowPartyMenu(void)
|
||||
{
|
||||
gPSSData->field_2C0 = 20;
|
||||
gPSSData->field_2C2 = 2;
|
||||
gPSSData->field_2C5 = 0;
|
||||
gPSSData->partyMenuUnused1 = 20;
|
||||
gPSSData->partyMenuY = 2;
|
||||
gPSSData->partyMenuMoveTimer = 0;
|
||||
CreatePartyMonsSprites(FALSE);
|
||||
}
|
||||
|
||||
static bool8 ShowPartyMenu(void)
|
||||
{
|
||||
if (gPSSData->field_2C5 == 20)
|
||||
if (gPSSData->partyMenuMoveTimer == 20)
|
||||
return FALSE;
|
||||
|
||||
gPSSData->field_2C0--;
|
||||
gPSSData->field_2C2++;
|
||||
gPSSData->partyMenuUnused1--;
|
||||
gPSSData->partyMenuY++;
|
||||
AdjustBoxPartyPokemonDropdownPos(1, 3, 1);
|
||||
CopyBoxPartyPokemonDropdownToBgTilemapBuffer(1);
|
||||
ScheduleBgCopyTilemapToVram(1);
|
||||
sub_8090B98(8);
|
||||
if (++gPSSData->field_2C5 == 20)
|
||||
if (++gPSSData->partyMenuMoveTimer == 20)
|
||||
{
|
||||
sInPartyMenu = TRUE;
|
||||
return FALSE;
|
||||
@@ -2400,24 +2400,24 @@ static bool8 ShowPartyMenu(void)
|
||||
|
||||
static void SetUpHidePartyMenu(void)
|
||||
{
|
||||
gPSSData->field_2C0 = 0;
|
||||
gPSSData->field_2C2 = 22;
|
||||
gPSSData->field_2C5 = 0;
|
||||
gPSSData->partyMenuUnused1 = 0;
|
||||
gPSSData->partyMenuY = 22;
|
||||
gPSSData->partyMenuMoveTimer = 0;
|
||||
if (gPSSData->boxOption == BOX_OPTION_MOVE_ITEMS)
|
||||
sub_80960C0();
|
||||
}
|
||||
|
||||
static bool8 HidePartyMenu(void)
|
||||
{
|
||||
if (gPSSData->field_2C5 != 20)
|
||||
if (gPSSData->partyMenuMoveTimer != 20)
|
||||
{
|
||||
gPSSData->field_2C0++;
|
||||
gPSSData->field_2C2--;
|
||||
gPSSData->partyMenuUnused1++;
|
||||
gPSSData->partyMenuY--;
|
||||
AdjustBoxPartyPokemonDropdownPos(1, 3, -1);
|
||||
CopyBoxPartyPokemonDropdownToBgTilemapBuffer(1);
|
||||
FillBgTilemapBufferRect_Palette0(1, 0x100, 10, gPSSData->field_2C2, 12, 1);
|
||||
FillBgTilemapBufferRect_Palette0(1, 0x100, 10, gPSSData->partyMenuY, 12, 1);
|
||||
sub_8090B98(-8);
|
||||
if (++gPSSData->field_2C5 != 20)
|
||||
if (++gPSSData->partyMenuMoveTimer != 20)
|
||||
{
|
||||
ScheduleBgCopyTilemapToVram(1);
|
||||
return TRUE;
|
||||
@@ -2450,27 +2450,27 @@ static void sub_808F90C(bool8 arg0)
|
||||
|
||||
static void sub_808F948(void)
|
||||
{
|
||||
gPSSData->unk_02C7 = TRUE;
|
||||
gPSSData->unk_02C8 = 30;
|
||||
gPSSData->unk_02C9 = TRUE;
|
||||
gPSSData->closeBoxFlashing = TRUE;
|
||||
gPSSData->closeBoxFlashTimer = 30;
|
||||
gPSSData->closeBoxFlashState = TRUE;
|
||||
}
|
||||
|
||||
static void sub_808F974(void)
|
||||
{
|
||||
if (gPSSData->unk_02C7)
|
||||
if (gPSSData->closeBoxFlashing)
|
||||
{
|
||||
gPSSData->unk_02C7 = FALSE;
|
||||
gPSSData->closeBoxFlashing = FALSE;
|
||||
sub_808F90C(TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_808F99C(void)
|
||||
{
|
||||
if (gPSSData->unk_02C7 && ++gPSSData->unk_02C8 > 30)
|
||||
if (gPSSData->closeBoxFlashing && ++gPSSData->closeBoxFlashTimer > 30)
|
||||
{
|
||||
gPSSData->unk_02C8 = 0;
|
||||
gPSSData->unk_02C9 = (gPSSData->unk_02C9 == FALSE);
|
||||
sub_808F90C(gPSSData->unk_02C9);
|
||||
gPSSData->closeBoxFlashTimer = 0;
|
||||
gPSSData->closeBoxFlashState = (gPSSData->closeBoxFlashState == FALSE);
|
||||
sub_808F90C(gPSSData->closeBoxFlashState);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2502,7 +2502,7 @@ static void sub_808FA30(u8 pos, bool8 isPartyMon)
|
||||
{
|
||||
for (j = 0; j < 4; j++)
|
||||
{
|
||||
gPSSData->field_B0[index + j] = data[j];
|
||||
gPSSData->partyMenuTilemapBuffer[index + j] = data[j];
|
||||
}
|
||||
data += 4;
|
||||
index += 12;
|
||||
@@ -2569,7 +2569,7 @@ static void PrintStorageActionText(u8 id)
|
||||
case PC_TEXT_FMT_MON_NAME_1:
|
||||
case PC_TEXT_FMT_MON_NAME_2:
|
||||
case PC_TEXT_FMT_MON_NAME_3:
|
||||
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gPSSData->cursorMonNick);
|
||||
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gPSSData->displayMonName);
|
||||
break;
|
||||
case PC_TEXT_FMT_MON_NAME_4:
|
||||
case PC_TEXT_FMT_MON_NAME_5:
|
||||
@@ -2580,7 +2580,7 @@ static void PrintStorageActionText(u8 id)
|
||||
if (IsActiveItemMoving())
|
||||
txtPtr = StringCopy(gPSSData->itemName, GetMovingItemName());
|
||||
else
|
||||
txtPtr = StringCopy(gPSSData->itemName, gPSSData->cursorMonTexts[3]);
|
||||
txtPtr = StringCopy(gPSSData->itemName, gPSSData->displayMonTexts[3]);
|
||||
|
||||
while (*(txtPtr - 1) == CHAR_SPACE)
|
||||
txtPtr--;
|
||||
@@ -2680,7 +2680,7 @@ static void sub_808FE54(u8 action)
|
||||
{
|
||||
u16 event;
|
||||
u8 fromBox = sub_8094D34();
|
||||
u16 species = gPSSData->cursorMonSpecies;
|
||||
u16 species = gPSSData->displayMonSpecies;
|
||||
u16 species2;
|
||||
u8 toBox;
|
||||
struct PssQuestLogBuffer * qlogBuffer;
|
||||
|
||||
+184
-184
@@ -9,12 +9,12 @@
|
||||
#include "task.h"
|
||||
#include "trig.h"
|
||||
|
||||
static void sub_8090324(struct Sprite * sprite);
|
||||
static void sub_8090324(struct Sprite *sprite);
|
||||
static void SetBoxSpeciesAndPersonalities(u8 boxId);
|
||||
static void sub_8090A74(struct Sprite * sprite, u16 idx);
|
||||
static void sub_8090AE0(struct Sprite * sprite);
|
||||
static void DestroyBoxMonIcon(struct Sprite * sprite);
|
||||
static void sub_80911B0(struct Sprite * sprite);
|
||||
static void sub_8090A74(struct Sprite *sprite, u16 idx);
|
||||
static void sub_8090AE0(struct Sprite *sprite);
|
||||
static void DestroyBoxMonIcon(struct Sprite *sprite);
|
||||
static void sub_80911B0(struct Sprite *sprite);
|
||||
static void sub_8091420(u8 taskId);
|
||||
static s8 sub_80916F4(u8 boxId);
|
||||
static void LoadWallpaperGfx(u8 wallpaperId, s8 direction);
|
||||
@@ -23,15 +23,15 @@ static void sub_8091984(void *buffer, const void *buffer2, s8 direction, u8 base
|
||||
static void sub_8091A24(void *buffer);
|
||||
static void sub_8091A94(u8 wallpaperId);
|
||||
static void sub_8091C48(u8 wallpaperId, s8 direction);
|
||||
static void sub_8091E84(struct Sprite * sprite);
|
||||
static void sub_8091EB8(struct Sprite * sprite);
|
||||
static void sub_8091E84(struct Sprite *sprite);
|
||||
static void sub_8091EB8(struct Sprite *sprite);
|
||||
static s16 sub_8091F60(const u8 *boxName);
|
||||
static void sub_8091E34(void);
|
||||
static void sub_8091EF0(void);
|
||||
static void sub_8091F80(void);
|
||||
static void sub_809200C(s8 direction);
|
||||
static void sub_80920AC(void);
|
||||
static void sub_8092164(struct Sprite * sprite);
|
||||
static void sub_8092164(struct Sprite *sprite);
|
||||
|
||||
static const struct OamData gUnknown_83CEC08;
|
||||
|
||||
@@ -259,16 +259,16 @@ void sub_808FFAC(void)
|
||||
|
||||
LoadMonIconPalettes();
|
||||
for (i = 0; i < MAX_MON_ICONS; i++)
|
||||
gPSSData->field_B08[i] = 0;
|
||||
gPSSData->numIconsPerSpecies[i] = 0;
|
||||
for (i = 0; i < MAX_MON_ICONS; i++)
|
||||
gPSSData->field_B58[i] = 0;
|
||||
gPSSData->iconSpeciesList[i] = 0;
|
||||
for (i = 0; i < PARTY_SIZE; i++)
|
||||
gPSSData->partySprites[i] = NULL;
|
||||
for (i = 0; i < IN_BOX_COUNT; i++)
|
||||
gPSSData->boxMonsSprites[i] = NULL;
|
||||
|
||||
gPSSData->movingMonSprite = NULL;
|
||||
gPSSData->field_78C = 0;
|
||||
gPSSData->unkUnused1 = 0;
|
||||
}
|
||||
|
||||
static u8 sub_8090058(void)
|
||||
@@ -364,7 +364,7 @@ static void sub_80902E0(struct Sprite *sprite)
|
||||
}
|
||||
else
|
||||
{
|
||||
gPSSData->field_C66--;
|
||||
gPSSData->iconScrollNumIncoming--;
|
||||
sprite->x = sprite->data[3];
|
||||
sprite->callback = SpriteCallbackDummy;
|
||||
}
|
||||
@@ -448,7 +448,7 @@ static u8 sub_80903A4(u8 row, u16 times, s16 xDelta)
|
||||
gPSSData->boxMonsSprites[boxPosition]->data[2] = xDelta;
|
||||
gPSSData->boxMonsSprites[boxPosition]->data[3] = xDest;
|
||||
gPSSData->boxMonsSprites[boxPosition]->callback = sub_80902E0;
|
||||
if (GetBoxMonDataAt(gPSSData->field_C5C, boxPosition, MON_DATA_HELD_ITEM) == 0)
|
||||
if (GetBoxMonDataAt(gPSSData->incomingBoxId, boxPosition, MON_DATA_HELD_ITEM) == 0)
|
||||
gPSSData->boxMonsSprites[boxPosition]->oam.objMode = ST_OAM_OBJ_BLEND;
|
||||
count++;
|
||||
}
|
||||
@@ -463,56 +463,56 @@ static u8 sub_80903A4(u8 row, u16 times, s16 xDelta)
|
||||
|
||||
static void sub_8090574(u8 boxId, s8 direction)
|
||||
{
|
||||
gPSSData->field_C6A = 0;
|
||||
gPSSData->field_C6B = boxId;
|
||||
gPSSData->field_C69 = direction;
|
||||
gPSSData->field_C60 = 32;
|
||||
gPSSData->field_C64 = -(6 * direction);
|
||||
gPSSData->field_C66 = 0;
|
||||
gPSSData->iconScrollState = 0;
|
||||
gPSSData->iconScrollToBoxId = boxId;
|
||||
gPSSData->iconScrollDirection = direction;
|
||||
gPSSData->iconScrollDistance = 32;
|
||||
gPSSData->iconScrollSpeed = -(6 * direction);
|
||||
gPSSData->iconScrollNumIncoming = 0;
|
||||
SetBoxSpeciesAndPersonalities(boxId);
|
||||
if (direction > 0)
|
||||
gPSSData->field_C68 = 0;
|
||||
gPSSData->iconScrollCurColumn = 0;
|
||||
else
|
||||
gPSSData->field_C68 = IN_BOX_ROWS - 1;
|
||||
gPSSData->iconScrollCurColumn = IN_BOX_ROWS - 1;
|
||||
|
||||
gPSSData->field_C62 = (24 * gPSSData->field_C68) + 100;
|
||||
sub_809029C(gPSSData->field_C64);
|
||||
gPSSData->iconScrollPos = (24 * gPSSData->iconScrollCurColumn) + 100;
|
||||
sub_809029C(gPSSData->iconScrollSpeed);
|
||||
}
|
||||
|
||||
static bool8 sub_809062C(void)
|
||||
{
|
||||
if (gPSSData->field_C60 != 0)
|
||||
gPSSData->field_C60--;
|
||||
if (gPSSData->iconScrollDistance != 0)
|
||||
gPSSData->iconScrollDistance--;
|
||||
|
||||
switch (gPSSData->field_C6A)
|
||||
switch (gPSSData->iconScrollState)
|
||||
{
|
||||
case 0:
|
||||
gPSSData->field_C62 += gPSSData->field_C64;
|
||||
if (gPSSData->field_C62 <= 64 || gPSSData->field_C62 >= 252)
|
||||
gPSSData->iconScrollPos += gPSSData->iconScrollSpeed;
|
||||
if (gPSSData->iconScrollPos <= 64 || gPSSData->iconScrollPos >= 252)
|
||||
{
|
||||
DestroyAllIconsInRow(gPSSData->field_C68);
|
||||
gPSSData->field_C62 += gPSSData->field_C69 * 24;
|
||||
gPSSData->field_C6A++;
|
||||
DestroyAllIconsInRow(gPSSData->iconScrollCurColumn);
|
||||
gPSSData->iconScrollPos += gPSSData->iconScrollDirection * 24;
|
||||
gPSSData->iconScrollState++;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
gPSSData->field_C62 += gPSSData->field_C64;
|
||||
gPSSData->field_C66 += sub_80903A4(gPSSData->field_C68, gPSSData->field_C60, gPSSData->field_C64);
|
||||
if ((gPSSData->field_C69 > 0 && gPSSData->field_C68 == IN_BOX_ROWS - 1)
|
||||
|| (gPSSData->field_C69 < 0 && gPSSData->field_C68 == 0))
|
||||
gPSSData->iconScrollPos += gPSSData->iconScrollSpeed;
|
||||
gPSSData->iconScrollNumIncoming += sub_80903A4(gPSSData->iconScrollCurColumn, gPSSData->iconScrollDistance, gPSSData->iconScrollSpeed);
|
||||
if ((gPSSData->iconScrollDirection > 0 && gPSSData->iconScrollCurColumn == IN_BOX_ROWS - 1)
|
||||
|| (gPSSData->iconScrollDirection < 0 && gPSSData->iconScrollCurColumn == 0))
|
||||
{
|
||||
gPSSData->field_C6A++;
|
||||
gPSSData->iconScrollState++;
|
||||
}
|
||||
else
|
||||
{
|
||||
gPSSData->field_C68 += gPSSData->field_C69;
|
||||
gPSSData->field_C6A = 0;
|
||||
gPSSData->iconScrollCurColumn += gPSSData->iconScrollDirection;
|
||||
gPSSData->iconScrollState = 0;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (gPSSData->field_C66 == 0)
|
||||
if (gPSSData->iconScrollNumIncoming == 0)
|
||||
{
|
||||
gPSSData->field_C60++;
|
||||
gPSSData->iconScrollDistance++;
|
||||
return FALSE;
|
||||
}
|
||||
break;
|
||||
@@ -539,7 +539,7 @@ static void SetBoxSpeciesAndPersonalities(u8 boxId)
|
||||
}
|
||||
}
|
||||
|
||||
gPSSData->field_C5C = boxId;
|
||||
gPSSData->incomingBoxId = boxId;
|
||||
}
|
||||
|
||||
void DestroyBoxMonIconAtPosition(u8 boxPosition)
|
||||
@@ -605,7 +605,7 @@ void sub_80909F4(void)
|
||||
{
|
||||
u16 i, count;
|
||||
|
||||
gPSSData->field_C5E = 0;
|
||||
gPSSData->numPartyToCompact = 0;
|
||||
for (i = 0, count = 0; i < PARTY_SIZE; i++)
|
||||
{
|
||||
if (gPSSData->partySprites[i] != NULL)
|
||||
@@ -614,7 +614,7 @@ void sub_80909F4(void)
|
||||
{
|
||||
sub_8090A74(gPSSData->partySprites[i], count);
|
||||
gPSSData->partySprites[i] = NULL;
|
||||
gPSSData->field_C5E++;
|
||||
gPSSData->numPartyToCompact++;
|
||||
}
|
||||
count++;
|
||||
}
|
||||
@@ -623,7 +623,7 @@ void sub_80909F4(void)
|
||||
|
||||
u8 sub_8090A60(void)
|
||||
{
|
||||
return gPSSData->field_C5E;
|
||||
return gPSSData->numPartyToCompact;
|
||||
}
|
||||
|
||||
static void sub_8090A74(struct Sprite *sprite, u16 partyId)
|
||||
@@ -668,7 +668,7 @@ static void sub_8090AE0(struct Sprite *sprite)
|
||||
}
|
||||
sprite->callback = SpriteCallbackDummy;
|
||||
gPSSData->partySprites[sprite->data[1]] = sprite;
|
||||
gPSSData->field_C5E--;
|
||||
gPSSData->numPartyToCompact--;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -774,44 +774,44 @@ void sub_8090D58(u8 boxId, u8 position)
|
||||
void sub_8090E08(u8 boxId, u8 position)
|
||||
{
|
||||
if (boxId == TOTAL_BOXES_COUNT) // party mon
|
||||
gPSSData->field_B00 = &gPSSData->partySprites[position];
|
||||
gPSSData->shiftMonSpritePtr = &gPSSData->partySprites[position];
|
||||
else
|
||||
gPSSData->field_B00 = &gPSSData->boxMonsSprites[position];
|
||||
gPSSData->shiftMonSpritePtr = &gPSSData->boxMonsSprites[position];
|
||||
|
||||
gPSSData->movingMonSprite->callback = SpriteCallbackDummy;
|
||||
gPSSData->field_C5D = 0;
|
||||
gPSSData->shiftTimer = 0;
|
||||
}
|
||||
|
||||
bool8 sub_8090E74(void)
|
||||
{
|
||||
if (gPSSData->field_C5D == 16)
|
||||
if (gPSSData->shiftTimer == 16)
|
||||
return FALSE;
|
||||
|
||||
gPSSData->field_C5D++;
|
||||
if (gPSSData->field_C5D & 1)
|
||||
gPSSData->shiftTimer++;
|
||||
if (gPSSData->shiftTimer & 1)
|
||||
{
|
||||
(*gPSSData->field_B00)->y--;
|
||||
(*gPSSData->shiftMonSpritePtr)->y--;
|
||||
gPSSData->movingMonSprite->y++;
|
||||
}
|
||||
|
||||
(*gPSSData->field_B00)->x2 = gSineTable[gPSSData->field_C5D * 8] / 16;
|
||||
gPSSData->movingMonSprite->x2 = -(gSineTable[gPSSData->field_C5D * 8] / 16);
|
||||
if (gPSSData->field_C5D == 8)
|
||||
(*gPSSData->shiftMonSpritePtr)->x2 = gSineTable[gPSSData->shiftTimer * 8] / 16;
|
||||
gPSSData->movingMonSprite->x2 = -(gSineTable[gPSSData->shiftTimer * 8] / 16);
|
||||
if (gPSSData->shiftTimer == 8)
|
||||
{
|
||||
gPSSData->movingMonSprite->oam.priority = (*gPSSData->field_B00)->oam.priority;
|
||||
gPSSData->movingMonSprite->subpriority = (*gPSSData->field_B00)->subpriority;
|
||||
(*gPSSData->field_B00)->oam.priority = sub_8090058();
|
||||
(*gPSSData->field_B00)->subpriority = 7;
|
||||
gPSSData->movingMonSprite->oam.priority = (*gPSSData->shiftMonSpritePtr)->oam.priority;
|
||||
gPSSData->movingMonSprite->subpriority = (*gPSSData->shiftMonSpritePtr)->subpriority;
|
||||
(*gPSSData->shiftMonSpritePtr)->oam.priority = sub_8090058();
|
||||
(*gPSSData->shiftMonSpritePtr)->subpriority = 7;
|
||||
}
|
||||
|
||||
if (gPSSData->field_C5D == 16)
|
||||
if (gPSSData->shiftTimer == 16)
|
||||
{
|
||||
struct Sprite *sprite = gPSSData->movingMonSprite;
|
||||
gPSSData->movingMonSprite = (*gPSSData->field_B00);
|
||||
*gPSSData->field_B00 = sprite;
|
||||
gPSSData->movingMonSprite = (*gPSSData->shiftMonSpritePtr);
|
||||
*gPSSData->shiftMonSpritePtr = sprite;
|
||||
|
||||
gPSSData->movingMonSprite->callback = sub_80911B0;
|
||||
(*gPSSData->field_B00)->callback = SpriteCallbackDummy;
|
||||
(*gPSSData->shiftMonSpritePtr)->callback = SpriteCallbackDummy;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
@@ -822,64 +822,64 @@ void sub_8090FC4(u8 mode, u8 position)
|
||||
switch (mode)
|
||||
{
|
||||
case MODE_PARTY:
|
||||
gPSSData->field_B04 = &gPSSData->partySprites[position];
|
||||
gPSSData->releaseMonSpritePtr = &gPSSData->partySprites[position];
|
||||
break;
|
||||
case MODE_BOX:
|
||||
gPSSData->field_B04 = &gPSSData->boxMonsSprites[position];
|
||||
gPSSData->releaseMonSpritePtr = &gPSSData->boxMonsSprites[position];
|
||||
break;
|
||||
case MODE_2:
|
||||
gPSSData->field_B04 = &gPSSData->movingMonSprite;
|
||||
gPSSData->releaseMonSpritePtr = &gPSSData->movingMonSprite;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
if (*gPSSData->field_B04 != NULL)
|
||||
if (*gPSSData->releaseMonSpritePtr != NULL)
|
||||
{
|
||||
InitSpriteAffineAnim(*gPSSData->field_B04);
|
||||
(*gPSSData->field_B04)->oam.affineMode = ST_OAM_AFFINE_NORMAL;
|
||||
(*gPSSData->field_B04)->affineAnims = gUnknown_83CEC38;
|
||||
StartSpriteAffineAnim(*gPSSData->field_B04, 0);
|
||||
InitSpriteAffineAnim(*gPSSData->releaseMonSpritePtr);
|
||||
(*gPSSData->releaseMonSpritePtr)->oam.affineMode = ST_OAM_AFFINE_NORMAL;
|
||||
(*gPSSData->releaseMonSpritePtr)->affineAnims = gUnknown_83CEC38;
|
||||
StartSpriteAffineAnim(*gPSSData->releaseMonSpritePtr, 0);
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_8091084(void)
|
||||
{
|
||||
if (*gPSSData->field_B04 == NULL || (*gPSSData->field_B04)->invisible)
|
||||
if (*gPSSData->releaseMonSpritePtr == NULL || (*gPSSData->releaseMonSpritePtr)->invisible)
|
||||
return FALSE;
|
||||
|
||||
if ((*gPSSData->field_B04)->affineAnimEnded)
|
||||
(*gPSSData->field_B04)->invisible = TRUE;
|
||||
if ((*gPSSData->releaseMonSpritePtr)->affineAnimEnded)
|
||||
(*gPSSData->releaseMonSpritePtr)->invisible = TRUE;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_80910CC(void)
|
||||
{
|
||||
if (*gPSSData->field_B04 != NULL)
|
||||
if (*gPSSData->releaseMonSpritePtr != NULL)
|
||||
{
|
||||
FreeOamMatrix((*gPSSData->field_B04)->oam.matrixNum);
|
||||
DestroyBoxMonIcon(*gPSSData->field_B04);
|
||||
*gPSSData->field_B04 = NULL;
|
||||
FreeOamMatrix((*gPSSData->releaseMonSpritePtr)->oam.matrixNum);
|
||||
DestroyBoxMonIcon(*gPSSData->releaseMonSpritePtr);
|
||||
*gPSSData->releaseMonSpritePtr = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8091114(void)
|
||||
{
|
||||
if (*gPSSData->field_B04 != NULL)
|
||||
if (*gPSSData->releaseMonSpritePtr != NULL)
|
||||
{
|
||||
(*gPSSData->field_B04)->invisible = FALSE;
|
||||
StartSpriteAffineAnim(*gPSSData->field_B04, 1);
|
||||
(*gPSSData->releaseMonSpritePtr)->invisible = FALSE;
|
||||
StartSpriteAffineAnim(*gPSSData->releaseMonSpritePtr, 1);
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_8091150(void)
|
||||
{
|
||||
if (gPSSData->field_B04 == NULL)
|
||||
if (gPSSData->releaseMonSpritePtr == NULL)
|
||||
return FALSE;
|
||||
|
||||
if ((*gPSSData->field_B04)->affineAnimEnded)
|
||||
gPSSData->field_B04 = NULL;
|
||||
if ((*gPSSData->releaseMonSpritePtr)->affineAnimEnded)
|
||||
gPSSData->releaseMonSpritePtr = NULL;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@@ -891,8 +891,8 @@ void SetMovingMonPriority(u8 priority)
|
||||
|
||||
static void sub_80911B0(struct Sprite *sprite)
|
||||
{
|
||||
sprite->x = gPSSData->field_CB4->x;
|
||||
sprite->y = gPSSData->field_CB4->y + gPSSData->field_CB4->y2 + 4;
|
||||
sprite->x = gPSSData->cursorSprite->x;
|
||||
sprite->y = gPSSData->cursorSprite->y + gPSSData->cursorSprite->y2 + 4;
|
||||
}
|
||||
|
||||
static u16 sub_80911D4(u16 species)
|
||||
@@ -902,7 +902,7 @@ static u16 sub_80911D4(u16 species)
|
||||
// Find the currently-allocated slot
|
||||
for (i = 0; i < MAX_MON_ICONS; i++)
|
||||
{
|
||||
if (gPSSData->field_B58[i] == species)
|
||||
if (gPSSData->iconSpeciesList[i] == species)
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -911,15 +911,15 @@ static u16 sub_80911D4(u16 species)
|
||||
// Find the first empty slot
|
||||
for (i = 0; i < MAX_MON_ICONS; i++)
|
||||
{
|
||||
if (gPSSData->field_B58[i] == SPECIES_NONE)
|
||||
if (gPSSData->iconSpeciesList[i] == SPECIES_NONE)
|
||||
break;
|
||||
}
|
||||
if (i == MAX_MON_ICONS)
|
||||
return 0xFFFF;
|
||||
}
|
||||
|
||||
gPSSData->field_B58[i] = species;
|
||||
gPSSData->field_B08[i]++;
|
||||
gPSSData->iconSpeciesList[i] = species;
|
||||
gPSSData->numIconsPerSpecies[i]++;
|
||||
var = 16 * i;
|
||||
CpuCopy32(GetMonIconTiles(species, TRUE), (void *)(OBJ_VRAM0) + var * 32, 0x200);
|
||||
|
||||
@@ -932,10 +932,10 @@ static void sub_8091290(u16 species)
|
||||
|
||||
for (i = 0; i < MAX_MON_ICONS; i++)
|
||||
{
|
||||
if (gPSSData->field_B58[i] == species)
|
||||
if (gPSSData->iconSpeciesList[i] == species)
|
||||
{
|
||||
if (--gPSSData->field_B08[i] == 0)
|
||||
gPSSData->field_B58[i] = 0;
|
||||
if (--gPSSData->numIconsPerSpecies[i] == 0)
|
||||
gPSSData->iconSpeciesList[i] = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -991,7 +991,7 @@ static void sub_8091420(u8 taskId)
|
||||
switch (task->data[0])
|
||||
{
|
||||
case 0:
|
||||
gPSSData->field_2D2 = 0;
|
||||
gPSSData->wallpaperOffset = 0;
|
||||
gPSSData->bg2_X = 0;
|
||||
task->data[1] = RequestDma3Fill(0, gPSSData->field_4AC4, 0x1000, DMA3_32BIT);
|
||||
break;
|
||||
@@ -1029,44 +1029,44 @@ void SetUpScrollToBox(u8 boxId)
|
||||
{
|
||||
s8 direction = sub_80916F4(boxId);
|
||||
|
||||
gPSSData->field_2CE = (direction > 0) ? 6 : -6;
|
||||
gPSSData->field_2D3 = (direction > 0) ? 1 : 2;
|
||||
gPSSData->field_2D0 = 32;
|
||||
gPSSData->field_2D4 = boxId;
|
||||
gPSSData->field_2D6 = (direction <= 0) ? 5 : 0;
|
||||
gPSSData->field_2D8 = direction;
|
||||
gPSSData->field_2DA = (direction > 0) ? 264 : 56;
|
||||
gPSSData->field_2DC = (direction <= 0) ? 5 : 0;
|
||||
gPSSData->field_2DE = 0;
|
||||
gPSSData->field_2E0 = 2;
|
||||
gPSSData->field_A64 = boxId;
|
||||
gPSSData->field_A65 = direction;
|
||||
gPSSData->field_A63 = 0;
|
||||
gPSSData->scrollSpeed = (direction > 0) ? 6 : -6;
|
||||
gPSSData->scrollUnused1 = (direction > 0) ? 1 : 2;
|
||||
gPSSData->scrollTimer = 32;
|
||||
gPSSData->scrollToBoxIdUnused = boxId;
|
||||
gPSSData->scrollUnused2 = (direction <= 0) ? 5 : 0;
|
||||
gPSSData->scrollDirectionUnused = direction;
|
||||
gPSSData->scrollUnused3 = (direction > 0) ? 264 : 56;
|
||||
gPSSData->scrollUnused4 = (direction <= 0) ? 5 : 0;
|
||||
gPSSData->scrollUnused5 = 0;
|
||||
gPSSData->scrollUnused6 = 2;
|
||||
gPSSData->scrollToBoxId = boxId;
|
||||
gPSSData->scrollDirection = direction;
|
||||
gPSSData->scrollState = 0;
|
||||
}
|
||||
|
||||
bool8 ScrollToBox(void)
|
||||
{
|
||||
bool8 var;
|
||||
|
||||
switch (gPSSData->field_A63)
|
||||
switch (gPSSData->scrollState)
|
||||
{
|
||||
case 0:
|
||||
LoadWallpaperGfx(gPSSData->field_A64, gPSSData->field_A65);
|
||||
gPSSData->field_A63++;
|
||||
LoadWallpaperGfx(gPSSData->scrollToBoxId, gPSSData->scrollDirection);
|
||||
gPSSData->scrollState++;
|
||||
case 1:
|
||||
if (!WaitForWallpaperGfxLoad())
|
||||
return TRUE;
|
||||
|
||||
sub_8090574(gPSSData->field_A64, gPSSData->field_A65);
|
||||
sub_8091C48(gPSSData->field_A64, gPSSData->field_A65);
|
||||
sub_809200C(gPSSData->field_A65);
|
||||
sub_8090574(gPSSData->scrollToBoxId, gPSSData->scrollDirection);
|
||||
sub_8091C48(gPSSData->scrollToBoxId, gPSSData->scrollDirection);
|
||||
sub_809200C(gPSSData->scrollDirection);
|
||||
break;
|
||||
case 2:
|
||||
var = sub_809062C();
|
||||
if (gPSSData->field_2D0 != 0)
|
||||
if (gPSSData->scrollTimer != 0)
|
||||
{
|
||||
gPSSData->bg2_X += gPSSData->field_2CE;
|
||||
if (--gPSSData->field_2D0 != 0)
|
||||
gPSSData->bg2_X += gPSSData->scrollSpeed;
|
||||
if (--gPSSData->scrollTimer != 0)
|
||||
return TRUE;
|
||||
sub_8091E34();
|
||||
sub_80920AC();
|
||||
@@ -1074,7 +1074,7 @@ bool8 ScrollToBox(void)
|
||||
return var;
|
||||
}
|
||||
|
||||
gPSSData->field_A63++;
|
||||
gPSSData->scrollState++;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -1105,7 +1105,7 @@ bool8 DoWallpaperGfxChange(void)
|
||||
switch (gPSSData->wallpaperChangeState)
|
||||
{
|
||||
case 0:
|
||||
BeginNormalPaletteFade(gPSSData->field_738, 1, 0, 16, RGB_WHITEALPHA);
|
||||
BeginNormalPaletteFade(gPSSData->wallpaperPalBits, 1, 0, 16, RGB_WHITEALPHA);
|
||||
gPSSData->wallpaperChangeState++;
|
||||
break;
|
||||
case 1:
|
||||
@@ -1120,7 +1120,7 @@ bool8 DoWallpaperGfxChange(void)
|
||||
if (WaitForWallpaperGfxLoad() == TRUE)
|
||||
{
|
||||
sub_8091EF0();
|
||||
BeginNormalPaletteFade(gPSSData->field_738, 1, 16, 0, RGB_WHITEALPHA);
|
||||
BeginNormalPaletteFade(gPSSData->wallpaperPalBits, 1, 16, 0, RGB_WHITEALPHA);
|
||||
gPSSData->wallpaperChangeState++;
|
||||
}
|
||||
break;
|
||||
@@ -1142,26 +1142,26 @@ static void LoadWallpaperGfx(u8 boxId, s8 direction)
|
||||
void *iconGfx;
|
||||
u32 size1, size2;
|
||||
|
||||
gPSSData->field_6F9 = 0;
|
||||
gPSSData->field_6FA = boxId;
|
||||
gPSSData->field_6FB = direction;
|
||||
if (gPSSData->field_6FB != 0)
|
||||
gPSSData->wallpaperLoadState = 0;
|
||||
gPSSData->wallpaperLoadBoxId = boxId;
|
||||
gPSSData->wallpaperLoadDir = direction;
|
||||
if (gPSSData->wallpaperLoadDir != 0)
|
||||
{
|
||||
gPSSData->field_2D2 = (gPSSData->field_2D2 == 0);
|
||||
gPSSData->wallpaperOffset = (gPSSData->wallpaperOffset == 0);
|
||||
sub_8091A24(gPSSData->field_4AC4);
|
||||
}
|
||||
|
||||
wallpaperId = GetBoxWallpaper(gPSSData->field_6FA);
|
||||
wallpaperId = GetBoxWallpaper(gPSSData->wallpaperLoadBoxId);
|
||||
wallpaperGfx = &sWallpaperTable[wallpaperId];
|
||||
LZ77UnCompWram(wallpaperGfx->tileMap, gPSSData->field_792);
|
||||
sub_8091984(gPSSData->field_4AC4, gPSSData->field_792, gPSSData->field_6FB, gPSSData->field_2D2);
|
||||
LZ77UnCompWram(wallpaperGfx->tileMap, gPSSData->wallpaperTilemap);
|
||||
sub_8091984(gPSSData->field_4AC4, gPSSData->wallpaperTilemap, gPSSData->wallpaperLoadDir, gPSSData->wallpaperOffset);
|
||||
|
||||
if (gPSSData->field_6FB != 0)
|
||||
LoadPalette(wallpaperGfx->palettes, (gPSSData->field_2D2 * 32) + 0x40, 0x40);
|
||||
if (gPSSData->wallpaperLoadDir != 0)
|
||||
LoadPalette(wallpaperGfx->palettes, (gPSSData->wallpaperOffset * 32) + 0x40, 0x40);
|
||||
else
|
||||
CpuCopy16(wallpaperGfx->palettes, &gPlttBufferUnfaded[(gPSSData->field_2D2 * 32) + 0x40], 0x40);
|
||||
CpuCopy16(wallpaperGfx->palettes, &gPlttBufferUnfaded[(gPSSData->wallpaperOffset * 32) + 0x40], 0x40);
|
||||
|
||||
DecompressAndLoadBgGfxUsingHeap(2, wallpaperGfx->tiles, 0, 256 * gPSSData->field_2D2, 0);
|
||||
DecompressAndLoadBgGfxUsingHeap(2, wallpaperGfx->tiles, 0, 256 * gPSSData->wallpaperOffset, 0);
|
||||
|
||||
CopyBgTilemapBufferToVram(2);
|
||||
}
|
||||
@@ -1221,24 +1221,24 @@ static void sub_8091A94(u8 boxId)
|
||||
|
||||
struct SpriteSheet spriteSheet = {gPSSData->field_2F8, 0x200, TAG_TILE_3};
|
||||
struct SpritePalette palettes[] = {
|
||||
{gPSSData->field_6FC, TAG_PAL_DAC9},
|
||||
{gPSSData->boxTitlePal, TAG_PAL_DAC9},
|
||||
{}
|
||||
};
|
||||
|
||||
u16 wallpaperId = GetBoxWallpaper(boxId);
|
||||
|
||||
gPSSData->field_6FC[14] = gUnknown_83D29D0[wallpaperId][0];
|
||||
gPSSData->field_6FC[15] = gUnknown_83D29D0[wallpaperId][1];
|
||||
gPSSData->boxTitlePal[14] = gUnknown_83D29D0[wallpaperId][0];
|
||||
gPSSData->boxTitlePal[15] = gUnknown_83D29D0[wallpaperId][1];
|
||||
LoadSpritePalettes(palettes);
|
||||
gPSSData->field_738 = 0x3f0;
|
||||
gPSSData->wallpaperPalBits = 0x3f0;
|
||||
|
||||
tagIndex = IndexOfSpritePaletteTag(TAG_PAL_DAC9);
|
||||
gPSSData->field_71C = 0x10e + 16 * tagIndex;
|
||||
gPSSData->field_738 |= 0x10000 << tagIndex;
|
||||
gPSSData->boxTitlePalOffset = 0x10e + 16 * tagIndex;
|
||||
gPSSData->wallpaperPalBits |= 0x10000 << tagIndex;
|
||||
|
||||
tagIndex = IndexOfSpritePaletteTag(TAG_PAL_DAC9);
|
||||
gPSSData->field_71E = 0x10e + 16 * tagIndex;
|
||||
gPSSData->field_738 |= 0x10000 << tagIndex;
|
||||
gPSSData->boxTitleAltPalOffset = 0x10e + 16 * tagIndex;
|
||||
gPSSData->wallpaperPalBits |= 0x10000 << tagIndex;
|
||||
|
||||
StringCopyPadded(gPSSData->field_21B8, GetBoxNamePtr(boxId), 0, 8);
|
||||
DrawTextWindowAndBufferTiles(gPSSData->field_21B8, gPSSData->field_2F8, 0, 0, gPSSData->field_4F8, 2);
|
||||
@@ -1248,10 +1248,10 @@ static void sub_8091A94(u8 boxId)
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
u8 spriteId = CreateSprite(&gUnknown_83D2B7C, r6 + i * 32, 28, 24);
|
||||
gPSSData->field_720[i] = &gSprites[spriteId];
|
||||
StartSpriteAnim(gPSSData->field_720[i], i);
|
||||
gPSSData->curBoxTitleSprites[i] = &gSprites[spriteId];
|
||||
StartSpriteAnim(gPSSData->curBoxTitleSprites[i], i);
|
||||
}
|
||||
gPSSData->field_6F8 = 0;
|
||||
gPSSData->boxTitleCycleId = 0;
|
||||
}
|
||||
|
||||
static void sub_8091C48(u8 boxId, s8 direction)
|
||||
@@ -1262,16 +1262,16 @@ static void sub_8091C48(u8 boxId, s8 direction)
|
||||
struct SpriteSheet spriteSheet = {gPSSData->field_2F8, 0x200, TAG_TILE_3};
|
||||
struct SpriteTemplate template = gUnknown_83D2B7C;
|
||||
|
||||
gPSSData->field_6F8 = (gPSSData->field_6F8 == 0);
|
||||
if (gPSSData->field_6F8 == 0)
|
||||
gPSSData->boxTitleCycleId = (gPSSData->boxTitleCycleId == 0);
|
||||
if (gPSSData->boxTitleCycleId == 0)
|
||||
{
|
||||
spriteSheet.tag = TAG_TILE_3;
|
||||
r8 = gPSSData->field_71C;
|
||||
r8 = gPSSData->boxTitlePalOffset;
|
||||
}
|
||||
else
|
||||
{
|
||||
spriteSheet.tag = TAG_TILE_4;
|
||||
r8 = gPSSData->field_71C;
|
||||
r8 = gPSSData->boxTitlePalOffset;
|
||||
template.tileTag = TAG_TILE_4;
|
||||
template.paletteTag = TAG_PAL_DAC9;
|
||||
}
|
||||
@@ -1288,28 +1288,28 @@ static void sub_8091C48(u8 boxId, s8 direction)
|
||||
{
|
||||
u8 spriteId = CreateSprite(&template, i * 32 + x2, 28, 24);
|
||||
|
||||
gPSSData->field_728[i] = &gSprites[spriteId];
|
||||
gPSSData->field_728[i]->data[0] = (-direction) * 6;
|
||||
gPSSData->field_728[i]->data[1] = i * 32 + x;
|
||||
gPSSData->field_728[i]->data[2] = 0;
|
||||
gPSSData->field_728[i]->callback = sub_8091E84;
|
||||
StartSpriteAnim(gPSSData->field_728[i], i);
|
||||
gPSSData->nextBoxTitleSprites[i] = &gSprites[spriteId];
|
||||
gPSSData->nextBoxTitleSprites[i]->data[0] = (-direction) * 6;
|
||||
gPSSData->nextBoxTitleSprites[i]->data[1] = i * 32 + x;
|
||||
gPSSData->nextBoxTitleSprites[i]->data[2] = 0;
|
||||
gPSSData->nextBoxTitleSprites[i]->callback = sub_8091E84;
|
||||
StartSpriteAnim(gPSSData->nextBoxTitleSprites[i], i);
|
||||
|
||||
gPSSData->field_720[i]->data[0] = (-direction) * 6;
|
||||
gPSSData->field_720[i]->data[1] = 1;
|
||||
gPSSData->field_720[i]->callback = sub_8091EB8;
|
||||
gPSSData->curBoxTitleSprites[i]->data[0] = (-direction) * 6;
|
||||
gPSSData->curBoxTitleSprites[i]->data[1] = 1;
|
||||
gPSSData->curBoxTitleSprites[i]->callback = sub_8091EB8;
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_8091E34(void)
|
||||
{
|
||||
if (gPSSData->field_6F8 == 0)
|
||||
if (gPSSData->boxTitleCycleId == 0)
|
||||
FreeSpriteTilesByTag(TAG_TILE_4);
|
||||
else
|
||||
FreeSpriteTilesByTag(TAG_TILE_3);
|
||||
|
||||
gPSSData->field_720[0] = gPSSData->field_728[0];
|
||||
gPSSData->field_720[1] = gPSSData->field_728[1];
|
||||
gPSSData->curBoxTitleSprites[0] = gPSSData->nextBoxTitleSprites[0];
|
||||
gPSSData->curBoxTitleSprites[1] = gPSSData->nextBoxTitleSprites[1];
|
||||
}
|
||||
|
||||
static void sub_8091E84(struct Sprite *sprite)
|
||||
@@ -1339,10 +1339,10 @@ static void sub_8091EF0(void)
|
||||
{
|
||||
u8 boxId = StorageGetCurrentBox();
|
||||
u8 wallpaperId = GetBoxWallpaper(boxId);
|
||||
if (gPSSData->field_6F8 == 0)
|
||||
CpuCopy16(gUnknown_83D29D0[wallpaperId], gPlttBufferUnfaded + gPSSData->field_71C, 4);
|
||||
if (gPSSData->boxTitleCycleId == 0)
|
||||
CpuCopy16(gUnknown_83D29D0[wallpaperId], gPlttBufferUnfaded + gPSSData->boxTitlePalOffset, 4);
|
||||
else
|
||||
CpuCopy16(gUnknown_83D29D0[wallpaperId], gPlttBufferUnfaded + gPSSData->field_71E, 4);
|
||||
CpuCopy16(gUnknown_83D29D0[wallpaperId], gPlttBufferUnfaded + gPSSData->boxTitleAltPalOffset, 4);
|
||||
}
|
||||
|
||||
static s16 sub_8091F60(const u8 *string)
|
||||
@@ -1363,7 +1363,7 @@ static void sub_8091F80(void)
|
||||
struct Sprite *sprite = &gSprites[spriteId];
|
||||
StartSpriteAnim(sprite, i);
|
||||
sprite->data[3] = (i == 0) ? -1 : 1;
|
||||
gPSSData->field_730[i] = sprite;
|
||||
gPSSData->arrowSprites[i] = sprite;
|
||||
}
|
||||
}
|
||||
if (IsCursorOnBox())
|
||||
@@ -1376,25 +1376,25 @@ static void sub_809200C(s8 direction)
|
||||
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
gPSSData->field_730[i]->x2 = 0;
|
||||
gPSSData->field_730[i]->data[0] = 2;
|
||||
gPSSData->arrowSprites[i]->x2 = 0;
|
||||
gPSSData->arrowSprites[i]->data[0] = 2;
|
||||
}
|
||||
if (direction < 0)
|
||||
{
|
||||
gPSSData->field_730[0]->data[1] = 29;
|
||||
gPSSData->field_730[1]->data[1] = 5;
|
||||
gPSSData->field_730[0]->data[2] = 0x48;
|
||||
gPSSData->field_730[1]->data[2] = 0x48;
|
||||
gPSSData->arrowSprites[0]->data[1] = 29;
|
||||
gPSSData->arrowSprites[1]->data[1] = 5;
|
||||
gPSSData->arrowSprites[0]->data[2] = 0x48;
|
||||
gPSSData->arrowSprites[1]->data[2] = 0x48;
|
||||
}
|
||||
else
|
||||
{
|
||||
gPSSData->field_730[0]->data[1] = 5;
|
||||
gPSSData->field_730[1]->data[1] = 29;
|
||||
gPSSData->field_730[0]->data[2] = 0xF8;
|
||||
gPSSData->field_730[1]->data[2] = 0xF8;
|
||||
gPSSData->arrowSprites[0]->data[1] = 5;
|
||||
gPSSData->arrowSprites[1]->data[1] = 29;
|
||||
gPSSData->arrowSprites[0]->data[2] = 0xF8;
|
||||
gPSSData->arrowSprites[1]->data[2] = 0xF8;
|
||||
}
|
||||
gPSSData->field_730[0]->data[7] = 0;
|
||||
gPSSData->field_730[1]->data[7] = 1;
|
||||
gPSSData->arrowSprites[0]->data[7] = 0;
|
||||
gPSSData->arrowSprites[1]->data[7] = 1;
|
||||
}
|
||||
|
||||
static void sub_80920AC(void)
|
||||
@@ -1403,9 +1403,9 @@ static void sub_80920AC(void)
|
||||
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
gPSSData->field_730[i]->x = 0x88 * i + 0x5c;
|
||||
gPSSData->field_730[i]->x2 = 0;
|
||||
gPSSData->field_730[i]->invisible = FALSE;
|
||||
gPSSData->arrowSprites[i]->x = 0x88 * i + 0x5c;
|
||||
gPSSData->arrowSprites[i]->x2 = 0;
|
||||
gPSSData->arrowSprites[i]->invisible = FALSE;
|
||||
}
|
||||
sub_80920FC(TRUE);
|
||||
}
|
||||
@@ -1418,17 +1418,17 @@ void sub_80920FC(bool8 a0)
|
||||
{
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
gPSSData->field_730[i]->data[0] = 1;
|
||||
gPSSData->field_730[i]->data[1] = 0;
|
||||
gPSSData->field_730[i]->data[2] = 0;
|
||||
gPSSData->field_730[i]->data[4] = 0;
|
||||
gPSSData->arrowSprites[i]->data[0] = 1;
|
||||
gPSSData->arrowSprites[i]->data[1] = 0;
|
||||
gPSSData->arrowSprites[i]->data[2] = 0;
|
||||
gPSSData->arrowSprites[i]->data[4] = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
gPSSData->field_730[i]->data[0] = 0;
|
||||
gPSSData->arrowSprites[i]->data[0] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1456,7 +1456,7 @@ static void sub_8092164(struct Sprite *sprite)
|
||||
sprite->data[0] = 3;
|
||||
break;
|
||||
case 3:
|
||||
sprite->x -= gPSSData->field_2CE;
|
||||
sprite->x -= gPSSData->scrollSpeed;
|
||||
if (sprite->x < 73 || sprite->x > 247)
|
||||
sprite->invisible = TRUE;
|
||||
if (--sprite->data[1] == 0)
|
||||
@@ -1467,7 +1467,7 @@ static void sub_8092164(struct Sprite *sprite)
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
sprite->x -= gPSSData->field_2CE;
|
||||
sprite->x -= gPSSData->scrollSpeed;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
+183
-183
@@ -33,7 +33,7 @@ static void SetPlacedMonData(u8 boxId, u8 cursorPos);
|
||||
static void PurgeMonOrBoxMon(u8 boxId, u8 cursorPos);
|
||||
static void SetShiftedMonData(u8 boxId, u8 cursorPos);
|
||||
static void sub_8093A10(void);
|
||||
static void SetCursorMonData(void * cursorMon, u8 mode);
|
||||
static void SetCursorMonData(void *cursorMon, u8 mode);
|
||||
static void sub_8093AAC(void);
|
||||
static u8 InBoxInput_Normal(void);
|
||||
static u8 InBoxInput_GrabbingMultiple(void);
|
||||
@@ -63,7 +63,7 @@ void sub_80922C0(void)
|
||||
sCanOnlyMove = FALSE;
|
||||
sub_8092B50();
|
||||
sub_8094AD8();
|
||||
gPSSData->field_CD6 = 1;
|
||||
gPSSData->cursorPrevHorizPos = 1;
|
||||
gPSSData->inBoxMovingMode = 0;
|
||||
sub_8093A10();
|
||||
}
|
||||
@@ -72,7 +72,7 @@ void sub_8092340(void)
|
||||
{
|
||||
sub_8094AD8();
|
||||
sub_8093AAC();
|
||||
gPSSData->field_CD6 = 1;
|
||||
gPSSData->cursorPrevHorizPos = 1;
|
||||
gPSSData->inBoxMovingMode = 0;
|
||||
if (sIsMonBeingMoved)
|
||||
{
|
||||
@@ -138,46 +138,46 @@ bool8 sub_80924A8(void)
|
||||
{
|
||||
s16 tmp;
|
||||
|
||||
if (gPSSData->field_CD0 == 0)
|
||||
if (gPSSData->cursorMoveSteps == 0)
|
||||
{
|
||||
if (gPSSData->boxOption != BOX_OPTION_MOVE_ITEMS)
|
||||
return FALSE;
|
||||
else
|
||||
return sub_809610C();
|
||||
}
|
||||
else if (--gPSSData->field_CD0 != 0)
|
||||
else if (--gPSSData->cursorMoveSteps != 0)
|
||||
{
|
||||
gPSSData->field_CBC += gPSSData->field_CC4;
|
||||
gPSSData->field_CC0 += gPSSData->field_CC8;
|
||||
gPSSData->field_CB4->x = gPSSData->field_CBC >> 8;
|
||||
gPSSData->field_CB4->y = gPSSData->field_CC0 >> 8;
|
||||
if (gPSSData->field_CB4->x > 0x100)
|
||||
gPSSData->cursorNewX += gPSSData->cursorSpeedX;
|
||||
gPSSData->cursorNewY += gPSSData->cursorSpeedY;
|
||||
gPSSData->cursorSprite->x = gPSSData->cursorNewX >> 8;
|
||||
gPSSData->cursorSprite->y = gPSSData->cursorNewY >> 8;
|
||||
if (gPSSData->cursorSprite->x > 0x100)
|
||||
{
|
||||
tmp = gPSSData->field_CB4->x - 0x100;
|
||||
gPSSData->field_CB4->x = tmp + 0x40;
|
||||
tmp = gPSSData->cursorSprite->x - 0x100;
|
||||
gPSSData->cursorSprite->x = tmp + 0x40;
|
||||
}
|
||||
if (gPSSData->field_CB4->x < 0x40)
|
||||
if (gPSSData->cursorSprite->x < 0x40)
|
||||
{
|
||||
tmp = 0x40 - gPSSData->field_CB4->x;
|
||||
gPSSData->field_CB4->x = 0x100 - tmp;
|
||||
tmp = 0x40 - gPSSData->cursorSprite->x;
|
||||
gPSSData->cursorSprite->x = 0x100 - tmp;
|
||||
}
|
||||
if (gPSSData->field_CB4->y > 0xb0)
|
||||
if (gPSSData->cursorSprite->y > 0xb0)
|
||||
{
|
||||
tmp = gPSSData->field_CB4->y - 0xb0;
|
||||
gPSSData->field_CB4->y = tmp - 0x10;
|
||||
tmp = gPSSData->cursorSprite->y - 0xb0;
|
||||
gPSSData->cursorSprite->y = tmp - 0x10;
|
||||
}
|
||||
if (gPSSData->field_CB4->y < -0x10)
|
||||
if (gPSSData->cursorSprite->y < -0x10)
|
||||
{
|
||||
tmp = -0x10 - gPSSData->field_CB4->y;
|
||||
gPSSData->field_CB4->y = 0xb0 - tmp;
|
||||
tmp = -0x10 - gPSSData->cursorSprite->y;
|
||||
gPSSData->cursorSprite->y = 0xb0 - tmp;
|
||||
}
|
||||
if (gPSSData->field_CD7 && --gPSSData->field_CD7 == 0)
|
||||
gPSSData->field_CB4->vFlip = (gPSSData->field_CB4->vFlip == FALSE);
|
||||
if (gPSSData->cursorFlipTimer && --gPSSData->cursorFlipTimer == 0)
|
||||
gPSSData->cursorSprite->vFlip = (gPSSData->cursorSprite->vFlip == FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
gPSSData->field_CB4->x = gPSSData->field_CCC;
|
||||
gPSSData->field_CB4->y = gPSSData->field_CCE;
|
||||
gPSSData->cursorSprite->x = gPSSData->cursorTargetX;
|
||||
gPSSData->cursorSprite->y = gPSSData->cursorTargetY;
|
||||
sub_80929B0();
|
||||
}
|
||||
|
||||
@@ -189,56 +189,56 @@ static void sub_8092604(u8 newCurosrArea, u8 newCursorPosition)
|
||||
u16 x, y;
|
||||
|
||||
sub_8092398(newCurosrArea, newCursorPosition, &x, &y);
|
||||
gPSSData->field_CD4 = newCurosrArea;
|
||||
gPSSData->field_CD5 = newCursorPosition;
|
||||
gPSSData->field_CCC = x;
|
||||
gPSSData->field_CCE = y;
|
||||
gPSSData->newCursorArea = newCurosrArea;
|
||||
gPSSData->newCursorPosition = newCursorPosition;
|
||||
gPSSData->cursorTargetX = x;
|
||||
gPSSData->cursorTargetY = y;
|
||||
}
|
||||
|
||||
static void sub_8092660(void)
|
||||
{
|
||||
int r7, r0;
|
||||
|
||||
if (gPSSData->field_CD2 != 0 || gPSSData->field_CD3 != 0)
|
||||
gPSSData->field_CD0 = 12;
|
||||
if (gPSSData->cursorVerticalWrap != 0 || gPSSData->cursorHorizontalWrap != 0)
|
||||
gPSSData->cursorMoveSteps = 12;
|
||||
else
|
||||
gPSSData->field_CD0 = 6;
|
||||
gPSSData->cursorMoveSteps = 6;
|
||||
|
||||
if (gPSSData->field_CD7)
|
||||
gPSSData->field_CD7 = gPSSData->field_CD0 >> 1;
|
||||
if (gPSSData->cursorFlipTimer)
|
||||
gPSSData->cursorFlipTimer = gPSSData->cursorMoveSteps >> 1;
|
||||
|
||||
switch (gPSSData->field_CD2)
|
||||
switch (gPSSData->cursorVerticalWrap)
|
||||
{
|
||||
default:
|
||||
r7 = gPSSData->field_CCE - gPSSData->field_CB4->y;
|
||||
r7 = gPSSData->cursorTargetY - gPSSData->cursorSprite->y;
|
||||
break;
|
||||
case -1:
|
||||
r7 = gPSSData->field_CCE - 0xc0 - gPSSData->field_CB4->y;
|
||||
r7 = gPSSData->cursorTargetY - 0xc0 - gPSSData->cursorSprite->y;
|
||||
break;
|
||||
case 1:
|
||||
r7 = gPSSData->field_CCE + 0xc0 - gPSSData->field_CB4->y;
|
||||
r7 = gPSSData->cursorTargetY + 0xc0 - gPSSData->cursorSprite->y;
|
||||
break;
|
||||
}
|
||||
|
||||
switch (gPSSData->field_CD3)
|
||||
switch (gPSSData->cursorHorizontalWrap)
|
||||
{
|
||||
default:
|
||||
r0 = gPSSData->field_CCC - gPSSData->field_CB4->x;
|
||||
r0 = gPSSData->cursorTargetX - gPSSData->cursorSprite->x;
|
||||
break;
|
||||
case -1:
|
||||
r0 = gPSSData->field_CCC - 0xc0 - gPSSData->field_CB4->x;
|
||||
r0 = gPSSData->cursorTargetX - 0xc0 - gPSSData->cursorSprite->x;
|
||||
break;
|
||||
case 1:
|
||||
r0 = gPSSData->field_CCC + 0xc0 - gPSSData->field_CB4->x;
|
||||
r0 = gPSSData->cursorTargetX + 0xc0 - gPSSData->cursorSprite->x;
|
||||
break;
|
||||
}
|
||||
|
||||
r7 <<= 8;
|
||||
r0 <<= 8;
|
||||
gPSSData->field_CC4 = r0 / gPSSData->field_CD0;
|
||||
gPSSData->field_CC8 = r7 / gPSSData->field_CD0;
|
||||
gPSSData->field_CBC = gPSSData->field_CB4->x << 8;
|
||||
gPSSData->field_CC0 = gPSSData->field_CB4->y << 8;
|
||||
gPSSData->cursorSpeedX = r0 / gPSSData->cursorMoveSteps;
|
||||
gPSSData->cursorSpeedY = r7 / gPSSData->cursorMoveSteps;
|
||||
gPSSData->cursorNewX = gPSSData->cursorSprite->x << 8;
|
||||
gPSSData->cursorNewY = gPSSData->cursorSprite->y << 8;
|
||||
}
|
||||
|
||||
static void sub_80927E8(u8 newCurosrArea, u8 newCursorPosition)
|
||||
@@ -248,12 +248,12 @@ static void sub_80927E8(u8 newCurosrArea, u8 newCursorPosition)
|
||||
if (gPSSData->boxOption != BOX_OPTION_MOVE_ITEMS)
|
||||
{
|
||||
if (gPSSData->inBoxMovingMode == 0 && !sIsMonBeingMoved)
|
||||
StartSpriteAnim(gPSSData->field_CB4, 1);
|
||||
StartSpriteAnim(gPSSData->cursorSprite, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!IsActiveItemMoving())
|
||||
StartSpriteAnim(gPSSData->field_CB4, 1);
|
||||
StartSpriteAnim(gPSSData->cursorSprite, 1);
|
||||
}
|
||||
|
||||
if (gPSSData->boxOption == BOX_OPTION_MOVE_ITEMS)
|
||||
@@ -271,8 +271,8 @@ static void sub_80927E8(u8 newCurosrArea, u8 newCursorPosition)
|
||||
|
||||
if (newCurosrArea == CURSOR_AREA_IN_PARTY && sBoxCursorArea != CURSOR_AREA_IN_PARTY)
|
||||
{
|
||||
gPSSData->field_CD6 = newCurosrArea;
|
||||
gPSSData->field_CB8->invisible = TRUE;
|
||||
gPSSData->cursorPrevHorizPos = newCurosrArea;
|
||||
gPSSData->cursorShadowSprite->invisible = TRUE;
|
||||
}
|
||||
|
||||
switch (newCurosrArea)
|
||||
@@ -280,19 +280,19 @@ static void sub_80927E8(u8 newCurosrArea, u8 newCursorPosition)
|
||||
case CURSOR_AREA_IN_PARTY:
|
||||
case CURSOR_AREA_BOX:
|
||||
case CURSOR_AREA_BUTTONS:
|
||||
gPSSData->field_CB4->oam.priority = 1;
|
||||
gPSSData->field_CB8->invisible = TRUE;
|
||||
gPSSData->field_CB8->oam.priority = 1;
|
||||
gPSSData->cursorSprite->oam.priority = 1;
|
||||
gPSSData->cursorShadowSprite->invisible = TRUE;
|
||||
gPSSData->cursorShadowSprite->oam.priority = 1;
|
||||
break;
|
||||
case CURSOR_AREA_IN_BOX:
|
||||
if (gPSSData->inBoxMovingMode != 0)
|
||||
{
|
||||
gPSSData->field_CB4->oam.priority = 0;
|
||||
gPSSData->field_CB8->invisible = TRUE;
|
||||
gPSSData->cursorSprite->oam.priority = 0;
|
||||
gPSSData->cursorShadowSprite->invisible = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
gPSSData->field_CB4->oam.priority = 2;
|
||||
gPSSData->cursorSprite->oam.priority = 2;
|
||||
if (sBoxCursorArea == CURSOR_AREA_IN_BOX && sIsMonBeingMoved)
|
||||
SetMovingMonPriority(2);
|
||||
}
|
||||
@@ -302,17 +302,17 @@ static void sub_80927E8(u8 newCurosrArea, u8 newCursorPosition)
|
||||
|
||||
static void sub_80929B0(void)
|
||||
{
|
||||
sBoxCursorArea = gPSSData->field_CD4;
|
||||
sBoxCursorPosition = gPSSData->field_CD5;
|
||||
sBoxCursorArea = gPSSData->newCursorArea;
|
||||
sBoxCursorPosition = gPSSData->newCursorPosition;
|
||||
if (gPSSData->boxOption != BOX_OPTION_MOVE_ITEMS)
|
||||
{
|
||||
if (gPSSData->inBoxMovingMode == 0 && !sIsMonBeingMoved)
|
||||
StartSpriteAnim(gPSSData->field_CB4, 1);
|
||||
StartSpriteAnim(gPSSData->cursorSprite, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!IsActiveItemMoving())
|
||||
StartSpriteAnim(gPSSData->field_CB4, 1);
|
||||
StartSpriteAnim(gPSSData->cursorSprite, 1);
|
||||
}
|
||||
|
||||
sub_8093A10();
|
||||
@@ -325,16 +325,16 @@ static void sub_80929B0(void)
|
||||
sub_80920FC(TRUE);
|
||||
break;
|
||||
case CURSOR_AREA_IN_PARTY:
|
||||
gPSSData->field_CB8->subpriority = 13;
|
||||
gPSSData->cursorShadowSprite->subpriority = 13;
|
||||
SetMovingMonPriority(1);
|
||||
break;
|
||||
case CURSOR_AREA_IN_BOX:
|
||||
if (gPSSData->inBoxMovingMode == 0)
|
||||
{
|
||||
gPSSData->field_CB4->oam.priority = 1;
|
||||
gPSSData->field_CB8->oam.priority = 2;
|
||||
gPSSData->field_CB8->subpriority = 21;
|
||||
gPSSData->field_CB8->invisible = FALSE;
|
||||
gPSSData->cursorSprite->oam.priority = 1;
|
||||
gPSSData->cursorShadowSprite->oam.priority = 2;
|
||||
gPSSData->cursorShadowSprite->subpriority = 21;
|
||||
gPSSData->cursorShadowSprite->invisible = FALSE;
|
||||
SetMovingMonPriority(2);
|
||||
}
|
||||
break;
|
||||
@@ -355,8 +355,8 @@ void sub_8092AE4(void)
|
||||
if (partyCount >= PARTY_SIZE)
|
||||
partyCount = PARTY_SIZE - 1;
|
||||
}
|
||||
if (gPSSData->field_CB4->vFlip)
|
||||
gPSSData->field_CD7 = 1;
|
||||
if (gPSSData->cursorSprite->vFlip)
|
||||
gPSSData->cursorFlipTimer = 1;
|
||||
sub_80927E8(CURSOR_AREA_IN_PARTY, partyCount);
|
||||
}
|
||||
|
||||
@@ -414,13 +414,13 @@ static bool8 MonPlaceChange_Move(void)
|
||||
case 0:
|
||||
if (sIsMonBeingMoved)
|
||||
return FALSE;
|
||||
StartSpriteAnim(gPSSData->field_CB4, 2);
|
||||
StartSpriteAnim(gPSSData->cursorSprite, 2);
|
||||
gPSSData->monPlaceChangeState++;
|
||||
break;
|
||||
case 1:
|
||||
if (!sub_8092E20())
|
||||
{
|
||||
StartSpriteAnim(gPSSData->field_CB4, 3);
|
||||
StartSpriteAnim(gPSSData->cursorSprite, 3);
|
||||
MoveMon();
|
||||
gPSSData->monPlaceChangeState++;
|
||||
}
|
||||
@@ -443,7 +443,7 @@ static bool8 MonPlaceChange_Place(void)
|
||||
case 0:
|
||||
if (!sub_8092E20())
|
||||
{
|
||||
StartSpriteAnim(gPSSData->field_CB4, 2);
|
||||
StartSpriteAnim(gPSSData->cursorSprite, 2);
|
||||
PlaceMon();
|
||||
gPSSData->monPlaceChangeState++;
|
||||
}
|
||||
@@ -451,7 +451,7 @@ static bool8 MonPlaceChange_Place(void)
|
||||
case 1:
|
||||
if (!sub_8092E54())
|
||||
{
|
||||
StartSpriteAnim(gPSSData->field_CB4, 0);
|
||||
StartSpriteAnim(gPSSData->cursorSprite, 0);
|
||||
gPSSData->monPlaceChangeState++;
|
||||
}
|
||||
break;
|
||||
@@ -470,23 +470,23 @@ static bool8 MonPlaceChange_Shift(void)
|
||||
switch (sBoxCursorArea)
|
||||
{
|
||||
case CURSOR_AREA_IN_PARTY:
|
||||
gPSSData->field_D91 = TOTAL_BOXES_COUNT;
|
||||
gPSSData->shiftBoxId = TOTAL_BOXES_COUNT;
|
||||
break;
|
||||
case CURSOR_AREA_IN_BOX:
|
||||
gPSSData->field_D91 = StorageGetCurrentBox();
|
||||
gPSSData->shiftBoxId = StorageGetCurrentBox();
|
||||
break;
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
StartSpriteAnim(gPSSData->field_CB4, 2);
|
||||
sub_8090E08(gPSSData->field_D91, sBoxCursorPosition);
|
||||
StartSpriteAnim(gPSSData->cursorSprite, 2);
|
||||
sub_8090E08(gPSSData->shiftBoxId, sBoxCursorPosition);
|
||||
gPSSData->monPlaceChangeState++;
|
||||
break;
|
||||
case 1:
|
||||
if (!sub_8090E74())
|
||||
{
|
||||
StartSpriteAnim(gPSSData->field_CB4, 3);
|
||||
SetShiftedMonData(gPSSData->field_D91, sBoxCursorPosition);
|
||||
StartSpriteAnim(gPSSData->cursorSprite, 3);
|
||||
SetShiftedMonData(gPSSData->shiftBoxId, sBoxCursorPosition);
|
||||
gPSSData->monPlaceChangeState++;
|
||||
}
|
||||
break;
|
||||
@@ -509,13 +509,13 @@ static bool8 sub_8092E10(void)
|
||||
|
||||
static bool8 sub_8092E20(void)
|
||||
{
|
||||
switch (gPSSData->field_CB4->y2)
|
||||
switch (gPSSData->cursorSprite->y2)
|
||||
{
|
||||
default:
|
||||
gPSSData->field_CB4->y2++;
|
||||
gPSSData->cursorSprite->y2++;
|
||||
break;
|
||||
case 0:
|
||||
gPSSData->field_CB4->y2++;
|
||||
gPSSData->cursorSprite->y2++;
|
||||
break;
|
||||
case 8:
|
||||
return FALSE;
|
||||
@@ -526,12 +526,12 @@ static bool8 sub_8092E20(void)
|
||||
|
||||
static bool8 sub_8092E54(void)
|
||||
{
|
||||
switch (gPSSData->field_CB4->y2)
|
||||
switch (gPSSData->cursorSprite->y2)
|
||||
{
|
||||
case 0:
|
||||
return FALSE;
|
||||
default:
|
||||
gPSSData->field_CB4->y2--;
|
||||
gPSSData->cursorSprite->y2--;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -656,13 +656,13 @@ bool8 TryStorePartyMonInBox(u8 boxId)
|
||||
if (boxId == StorageGetCurrentBox())
|
||||
sub_80901EC(boxPosition);
|
||||
|
||||
StartSpriteAnim(gPSSData->field_CB4, 1);
|
||||
StartSpriteAnim(gPSSData->cursorSprite, 1);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_8093174(void)
|
||||
{
|
||||
StartSpriteAnim(gPSSData->field_CB4, 0);
|
||||
StartSpriteAnim(gPSSData->cursorSprite, 0);
|
||||
sub_8093A10();
|
||||
}
|
||||
|
||||
@@ -678,14 +678,14 @@ void sub_8093194(void)
|
||||
mode = MODE_BOX;
|
||||
|
||||
sub_8090FC4(mode, sBoxCursorPosition);
|
||||
StringCopy(gPSSData->field_21E0, gPSSData->cursorMonNick);
|
||||
StringCopy(gPSSData->field_21E0, gPSSData->displayMonName);
|
||||
}
|
||||
|
||||
bool8 sub_80931EC(void)
|
||||
{
|
||||
if (!sub_8091084())
|
||||
{
|
||||
StartSpriteAnim(gPSSData->field_CB4, 0);
|
||||
StartSpriteAnim(gPSSData->cursorSprite, 0);
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
@@ -718,7 +718,7 @@ void ReleaseMon(void)
|
||||
void sub_8093264(void)
|
||||
{
|
||||
if (sIsMonBeingMoved)
|
||||
StartSpriteAnim(gPSSData->field_CB4, 3);
|
||||
StartSpriteAnim(gPSSData->cursorSprite, 3);
|
||||
}
|
||||
|
||||
void InitCanReleaseMonVars(void)
|
||||
@@ -914,7 +914,7 @@ s16 CompactPartySlots(void)
|
||||
|
||||
void SetMonMarkings(u8 markings)
|
||||
{
|
||||
gPSSData->cursorMonMarkings = markings;
|
||||
gPSSData->displayMonMarkings = markings;
|
||||
if (sIsMonBeingMoved)
|
||||
{
|
||||
SetMonData(&gPSSData->movingMon, MON_DATA_MARKINGS, &markings);
|
||||
@@ -942,7 +942,7 @@ bool8 CanShiftMon(void)
|
||||
{
|
||||
if (sBoxCursorArea == CURSOR_AREA_IN_PARTY && CountPartyAliveNonEggMonsExcept(sBoxCursorPosition) == 0)
|
||||
{
|
||||
if (gPSSData->cursorMonIsEgg || GetMonData(&gPSSData->movingMon, MON_DATA_HP) == 0)
|
||||
if (gPSSData->displayMonIsEgg || GetMonData(&gPSSData->movingMon, MON_DATA_HP) == 0)
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
@@ -1009,94 +1009,94 @@ static void SetCursorMonData(void *pokemon, u8 mode)
|
||||
u16 gender;
|
||||
bool8 sanityIsBagEgg;
|
||||
|
||||
gPSSData->cursorMonItem = 0;
|
||||
gPSSData->displayMonItemId = 0;
|
||||
gender = MON_MALE;
|
||||
sanityIsBagEgg = FALSE;
|
||||
if (mode == MODE_PARTY)
|
||||
{
|
||||
struct Pokemon *mon = (struct Pokemon *)pokemon;
|
||||
|
||||
gPSSData->cursorMonSpecies = GetMonData(mon, MON_DATA_SPECIES2);
|
||||
if (gPSSData->cursorMonSpecies != SPECIES_NONE)
|
||||
gPSSData->displayMonSpecies = GetMonData(mon, MON_DATA_SPECIES2);
|
||||
if (gPSSData->displayMonSpecies != SPECIES_NONE)
|
||||
{
|
||||
sanityIsBagEgg = GetMonData(mon, MON_DATA_SANITY_IS_BAD_EGG);
|
||||
if (sanityIsBagEgg)
|
||||
gPSSData->cursorMonIsEgg = TRUE;
|
||||
gPSSData->displayMonIsEgg = TRUE;
|
||||
else
|
||||
gPSSData->cursorMonIsEgg = GetMonData(mon, MON_DATA_IS_EGG);
|
||||
gPSSData->displayMonIsEgg = GetMonData(mon, MON_DATA_IS_EGG);
|
||||
|
||||
GetMonData(mon, MON_DATA_NICKNAME, gPSSData->cursorMonNick);
|
||||
StringGetEnd10(gPSSData->cursorMonNick);
|
||||
gPSSData->cursorMonLevel = GetMonData(mon, MON_DATA_LEVEL);
|
||||
gPSSData->cursorMonMarkings = GetMonData(mon, MON_DATA_MARKINGS);
|
||||
gPSSData->cursorMonPersonality = GetMonData(mon, MON_DATA_PERSONALITY);
|
||||
gPSSData->cursorMonPalette = GetMonFrontSpritePal(mon);
|
||||
GetMonData(mon, MON_DATA_NICKNAME, gPSSData->displayMonName);
|
||||
StringGetEnd10(gPSSData->displayMonName);
|
||||
gPSSData->displayMonLevel = GetMonData(mon, MON_DATA_LEVEL);
|
||||
gPSSData->displayMonMarkings = GetMonData(mon, MON_DATA_MARKINGS);
|
||||
gPSSData->displayMonPersonality = GetMonData(mon, MON_DATA_PERSONALITY);
|
||||
gPSSData->displayMonPalette = GetMonFrontSpritePal(mon);
|
||||
gender = GetMonGender(mon);
|
||||
gPSSData->cursorMonItem = GetMonData(mon, MON_DATA_HELD_ITEM);
|
||||
gPSSData->displayMonItemId = GetMonData(mon, MON_DATA_HELD_ITEM);
|
||||
}
|
||||
}
|
||||
else if (mode == MODE_BOX)
|
||||
{
|
||||
struct BoxPokemon *boxMon = (struct BoxPokemon *)pokemon;
|
||||
|
||||
gPSSData->cursorMonSpecies = GetBoxMonData(pokemon, MON_DATA_SPECIES2);
|
||||
if (gPSSData->cursorMonSpecies != SPECIES_NONE)
|
||||
gPSSData->displayMonSpecies = GetBoxMonData(pokemon, MON_DATA_SPECIES2);
|
||||
if (gPSSData->displayMonSpecies != SPECIES_NONE)
|
||||
{
|
||||
u32 otId = GetBoxMonData(boxMon, MON_DATA_OT_ID);
|
||||
sanityIsBagEgg = GetBoxMonData(boxMon, MON_DATA_SANITY_IS_BAD_EGG);
|
||||
if (sanityIsBagEgg)
|
||||
gPSSData->cursorMonIsEgg = TRUE;
|
||||
gPSSData->displayMonIsEgg = TRUE;
|
||||
else
|
||||
gPSSData->cursorMonIsEgg = GetBoxMonData(boxMon, MON_DATA_IS_EGG);
|
||||
gPSSData->displayMonIsEgg = GetBoxMonData(boxMon, MON_DATA_IS_EGG);
|
||||
|
||||
|
||||
GetBoxMonData(boxMon, MON_DATA_NICKNAME, gPSSData->cursorMonNick);
|
||||
StringGetEnd10(gPSSData->cursorMonNick);
|
||||
gPSSData->cursorMonLevel = GetLevelFromBoxMonExp(boxMon);
|
||||
gPSSData->cursorMonMarkings = GetBoxMonData(boxMon, MON_DATA_MARKINGS);
|
||||
gPSSData->cursorMonPersonality = GetBoxMonData(boxMon, MON_DATA_PERSONALITY);
|
||||
gPSSData->cursorMonPalette = GetMonSpritePalFromSpeciesAndPersonality(gPSSData->cursorMonSpecies, otId, gPSSData->cursorMonPersonality);
|
||||
gender = GetGenderFromSpeciesAndPersonality(gPSSData->cursorMonSpecies, gPSSData->cursorMonPersonality);
|
||||
gPSSData->cursorMonItem = GetBoxMonData(boxMon, MON_DATA_HELD_ITEM);
|
||||
GetBoxMonData(boxMon, MON_DATA_NICKNAME, gPSSData->displayMonName);
|
||||
StringGetEnd10(gPSSData->displayMonName);
|
||||
gPSSData->displayMonLevel = GetLevelFromBoxMonExp(boxMon);
|
||||
gPSSData->displayMonMarkings = GetBoxMonData(boxMon, MON_DATA_MARKINGS);
|
||||
gPSSData->displayMonPersonality = GetBoxMonData(boxMon, MON_DATA_PERSONALITY);
|
||||
gPSSData->displayMonPalette = GetMonSpritePalFromSpeciesAndPersonality(gPSSData->displayMonSpecies, otId, gPSSData->displayMonPersonality);
|
||||
gender = GetGenderFromSpeciesAndPersonality(gPSSData->displayMonSpecies, gPSSData->displayMonPersonality);
|
||||
gPSSData->displayMonItemId = GetBoxMonData(boxMon, MON_DATA_HELD_ITEM);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
gPSSData->cursorMonSpecies = SPECIES_NONE;
|
||||
gPSSData->cursorMonItem = 0;
|
||||
gPSSData->displayMonSpecies = SPECIES_NONE;
|
||||
gPSSData->displayMonItemId = 0;
|
||||
}
|
||||
|
||||
if (gPSSData->cursorMonSpecies == SPECIES_NONE)
|
||||
if (gPSSData->displayMonSpecies == SPECIES_NONE)
|
||||
{
|
||||
StringFill(gPSSData->cursorMonNick, CHAR_SPACE, 5);
|
||||
StringFill(gPSSData->cursorMonTexts[0], CHAR_SPACE, 8);
|
||||
StringFill(gPSSData->cursorMonTexts[1], CHAR_SPACE, 8);
|
||||
StringFill(gPSSData->cursorMonTexts[2], CHAR_SPACE, 8);
|
||||
StringFill(gPSSData->cursorMonTexts[3], CHAR_SPACE, 8);
|
||||
StringFill(gPSSData->displayMonName, CHAR_SPACE, 5);
|
||||
StringFill(gPSSData->displayMonTexts[0], CHAR_SPACE, 8);
|
||||
StringFill(gPSSData->displayMonTexts[1], CHAR_SPACE, 8);
|
||||
StringFill(gPSSData->displayMonTexts[2], CHAR_SPACE, 8);
|
||||
StringFill(gPSSData->displayMonTexts[3], CHAR_SPACE, 8);
|
||||
}
|
||||
else if (gPSSData->cursorMonIsEgg)
|
||||
else if (gPSSData->displayMonIsEgg)
|
||||
{
|
||||
if (sanityIsBagEgg)
|
||||
StringCopyPadded(gPSSData->cursorMonTexts[0], gPSSData->cursorMonNick, CHAR_SPACE, 5);
|
||||
StringCopyPadded(gPSSData->displayMonTexts[0], gPSSData->displayMonName, CHAR_SPACE, 5);
|
||||
else
|
||||
StringCopyPadded(gPSSData->cursorMonTexts[0], gText_EggNickname, CHAR_SPACE, 8);
|
||||
StringCopyPadded(gPSSData->displayMonTexts[0], gText_EggNickname, CHAR_SPACE, 8);
|
||||
|
||||
StringFill(gPSSData->cursorMonTexts[1], CHAR_SPACE, 8);
|
||||
StringFill(gPSSData->cursorMonTexts[2], CHAR_SPACE, 8);
|
||||
StringFill(gPSSData->cursorMonTexts[3], CHAR_SPACE, 8);
|
||||
StringFill(gPSSData->displayMonTexts[1], CHAR_SPACE, 8);
|
||||
StringFill(gPSSData->displayMonTexts[2], CHAR_SPACE, 8);
|
||||
StringFill(gPSSData->displayMonTexts[3], CHAR_SPACE, 8);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gPSSData->cursorMonSpecies == SPECIES_NIDORAN_F || gPSSData->cursorMonSpecies == SPECIES_NIDORAN_M)
|
||||
if (gPSSData->displayMonSpecies == SPECIES_NIDORAN_F || gPSSData->displayMonSpecies == SPECIES_NIDORAN_M)
|
||||
gender = MON_GENDERLESS;
|
||||
|
||||
StringCopyPadded(gPSSData->cursorMonTexts[0], gPSSData->cursorMonNick, CHAR_SPACE, 5);
|
||||
StringCopyPadded(gPSSData->displayMonTexts[0], gPSSData->displayMonName, CHAR_SPACE, 5);
|
||||
|
||||
txtPtr = gPSSData->cursorMonTexts[1];
|
||||
txtPtr = gPSSData->displayMonTexts[1];
|
||||
*(txtPtr)++ = CHAR_SLASH;
|
||||
StringCopyPadded(txtPtr, gSpeciesNames[gPSSData->cursorMonSpecies], CHAR_SPACE, 5);
|
||||
StringCopyPadded(txtPtr, gSpeciesNames[gPSSData->displayMonSpecies], CHAR_SPACE, 5);
|
||||
|
||||
txtPtr = gPSSData->cursorMonTexts[2];
|
||||
txtPtr = gPSSData->displayMonTexts[2];
|
||||
*(txtPtr)++ = EXT_CTRL_CODE_BEGIN;
|
||||
*(txtPtr)++ = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW;
|
||||
switch (gender)
|
||||
@@ -1130,14 +1130,14 @@ static void SetCursorMonData(void *pokemon, u8 mode)
|
||||
*(txtPtr++) = CHAR_EXTRA_SYMBOL;
|
||||
*(txtPtr++) = 5; // LV_2
|
||||
|
||||
txtPtr = ConvertIntToDecimalStringN(txtPtr, gPSSData->cursorMonLevel, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
txtPtr = ConvertIntToDecimalStringN(txtPtr, gPSSData->displayMonLevel, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
txtPtr[0] = CHAR_SPACE;
|
||||
txtPtr[1] = EOS;
|
||||
|
||||
if (gPSSData->cursorMonItem != 0)
|
||||
StringCopyPadded(gPSSData->cursorMonTexts[3], ItemId_GetName(gPSSData->cursorMonItem), CHAR_SPACE, 8);
|
||||
if (gPSSData->displayMonItemId != 0)
|
||||
StringCopyPadded(gPSSData->displayMonTexts[3], ItemId_GetName(gPSSData->displayMonItemId), CHAR_SPACE, 8);
|
||||
else
|
||||
StringFill(gPSSData->cursorMonTexts[3], CHAR_SPACE, 8);
|
||||
StringFill(gPSSData->displayMonTexts[3], CHAR_SPACE, 8);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1165,9 +1165,9 @@ static u8 InBoxInput_Normal(void)
|
||||
{
|
||||
cursorArea = sBoxCursorArea;
|
||||
cursorPosition = sBoxCursorPosition;
|
||||
gPSSData->field_CD2 = 0;
|
||||
gPSSData->field_CD3 = 0;
|
||||
gPSSData->field_CD7 = 0;
|
||||
gPSSData->cursorVerticalWrap = 0;
|
||||
gPSSData->cursorHorizontalWrap = 0;
|
||||
gPSSData->cursorFlipTimer = 0;
|
||||
if (JOY_REPT(DPAD_UP))
|
||||
{
|
||||
retVal = TRUE;
|
||||
@@ -1191,8 +1191,8 @@ static u8 InBoxInput_Normal(void)
|
||||
cursorArea = CURSOR_AREA_BUTTONS;
|
||||
cursorPosition -= IN_BOX_COUNT;
|
||||
cursorPosition /= 3;
|
||||
gPSSData->field_CD2 = 1;
|
||||
gPSSData->field_CD7 = 1;
|
||||
gPSSData->cursorVerticalWrap = 1;
|
||||
gPSSData->cursorFlipTimer = 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -1205,7 +1205,7 @@ static u8 InBoxInput_Normal(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
gPSSData->field_CD3 = -1;
|
||||
gPSSData->cursorHorizontalWrap = -1;
|
||||
cursorPosition += (IN_BOX_ROWS - 1);
|
||||
}
|
||||
break;
|
||||
@@ -1219,7 +1219,7 @@ static u8 InBoxInput_Normal(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
gPSSData->field_CD3 = 1;
|
||||
gPSSData->cursorHorizontalWrap = 1;
|
||||
cursorPosition -= (IN_BOX_ROWS - 1);
|
||||
}
|
||||
break;
|
||||
@@ -1355,12 +1355,12 @@ static u8 InBoxInput_GrabbingMultiple(void)
|
||||
if (sub_8095AA0() == sBoxCursorPosition)
|
||||
{
|
||||
gPSSData->inBoxMovingMode = 0;
|
||||
gPSSData->field_CB8->invisible = FALSE;
|
||||
gPSSData->cursorShadowSprite->invisible = FALSE;
|
||||
return 22;
|
||||
}
|
||||
else
|
||||
{
|
||||
sIsMonBeingMoved = (gPSSData->cursorMonSpecies != SPECIES_NONE);
|
||||
sIsMonBeingMoved = (gPSSData->displayMonSpecies != SPECIES_NONE);
|
||||
gPSSData->inBoxMovingMode = 2;
|
||||
sMovingMonOrigBoxId = StorageGetCurrentBox();
|
||||
return 23;
|
||||
@@ -1460,9 +1460,9 @@ static u8 HandleInput_InParty(void)
|
||||
{
|
||||
cursorArea = sBoxCursorArea;
|
||||
cursorPosition = sBoxCursorPosition;
|
||||
gPSSData->field_CD3 = 0;
|
||||
gPSSData->field_CD2 = 0;
|
||||
gPSSData->field_CD7 = 0;
|
||||
gPSSData->cursorHorizontalWrap = 0;
|
||||
gPSSData->cursorVerticalWrap = 0;
|
||||
gPSSData->cursorFlipTimer = 0;
|
||||
gotoBox = FALSE;
|
||||
retVal = 0;
|
||||
|
||||
@@ -1485,7 +1485,7 @@ static u8 HandleInput_InParty(void)
|
||||
else if (JOY_REPT(DPAD_LEFT) && sBoxCursorPosition != 0)
|
||||
{
|
||||
retVal = 1;
|
||||
gPSSData->field_CD6 = sBoxCursorPosition;
|
||||
gPSSData->cursorPrevHorizPos = sBoxCursorPosition;
|
||||
cursorPosition = 0;
|
||||
break;
|
||||
}
|
||||
@@ -1494,7 +1494,7 @@ static u8 HandleInput_InParty(void)
|
||||
if (sBoxCursorPosition == 0)
|
||||
{
|
||||
retVal = 1;
|
||||
cursorPosition = gPSSData->field_CD6;
|
||||
cursorPosition = gPSSData->cursorPrevHorizPos;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1580,16 +1580,16 @@ static u8 HandleInput_OnBox(void)
|
||||
|
||||
do
|
||||
{
|
||||
gPSSData->field_CD3 = 0;
|
||||
gPSSData->field_CD2 = 0;
|
||||
gPSSData->field_CD7 = 0;
|
||||
gPSSData->cursorHorizontalWrap = 0;
|
||||
gPSSData->cursorVerticalWrap = 0;
|
||||
gPSSData->cursorFlipTimer = 0;
|
||||
|
||||
if (JOY_REPT(DPAD_UP))
|
||||
{
|
||||
retVal = 1;
|
||||
cursorArea = CURSOR_AREA_BUTTONS;
|
||||
cursorPosition = 0;
|
||||
gPSSData->field_CD7 = 1;
|
||||
gPSSData->cursorFlipTimer = 1;
|
||||
break;
|
||||
}
|
||||
else if (JOY_REPT(DPAD_DOWN))
|
||||
@@ -1654,20 +1654,20 @@ static u8 HandleInput_OnButtons(void)
|
||||
{
|
||||
cursorArea = sBoxCursorArea;
|
||||
cursorPosition = sBoxCursorPosition;
|
||||
gPSSData->field_CD3 = 0;
|
||||
gPSSData->field_CD2 = 0;
|
||||
gPSSData->field_CD7 = 0;
|
||||
gPSSData->cursorHorizontalWrap = 0;
|
||||
gPSSData->cursorVerticalWrap = 0;
|
||||
gPSSData->cursorFlipTimer = 0;
|
||||
|
||||
if (JOY_REPT(DPAD_UP))
|
||||
{
|
||||
retVal = 1;
|
||||
cursorArea = CURSOR_AREA_IN_BOX;
|
||||
gPSSData->field_CD2 = -1;
|
||||
gPSSData->cursorVerticalWrap = -1;
|
||||
if (sBoxCursorPosition == 0)
|
||||
cursorPosition = IN_BOX_COUNT - 1 - 5;
|
||||
else
|
||||
cursorPosition = IN_BOX_COUNT - 1;
|
||||
gPSSData->field_CD7 = 1;
|
||||
gPSSData->cursorFlipTimer = 1;
|
||||
break;
|
||||
}
|
||||
else if (JOY_REPT(DPAD_DOWN | START_BUTTON))
|
||||
@@ -1675,7 +1675,7 @@ static u8 HandleInput_OnButtons(void)
|
||||
retVal = 1;
|
||||
cursorArea = CURSOR_AREA_BOX;
|
||||
cursorPosition = 0;
|
||||
gPSSData->field_CD7 = 1;
|
||||
gPSSData->cursorFlipTimer = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1816,21 +1816,21 @@ static bool8 sub_809494C(void)
|
||||
|
||||
static bool8 sub_8094A0C(void)
|
||||
{
|
||||
if (gPSSData->cursorMonSpecies == SPECIES_EGG)
|
||||
if (gPSSData->displayMonSpecies == SPECIES_EGG)
|
||||
return FALSE;
|
||||
|
||||
if (!IsActiveItemMoving())
|
||||
{
|
||||
if (gPSSData->cursorMonItem == ITEM_NONE)
|
||||
if (gPSSData->displayMonItemId == ITEM_NONE)
|
||||
{
|
||||
if (gPSSData->cursorMonSpecies == SPECIES_NONE)
|
||||
if (gPSSData->displayMonSpecies == SPECIES_NONE)
|
||||
return FALSE;
|
||||
|
||||
SetMenuText(PC_TEXT_GIVE2);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!ItemIsMail(gPSSData->cursorMonItem))
|
||||
if (!ItemIsMail(gPSSData->displayMonItemId))
|
||||
{
|
||||
SetMenuText(PC_TEXT_TAKE);
|
||||
SetMenuText(PC_TEXT_BAG);
|
||||
@@ -1840,16 +1840,16 @@ static bool8 sub_8094A0C(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gPSSData->cursorMonItem == ITEM_NONE)
|
||||
if (gPSSData->displayMonItemId == ITEM_NONE)
|
||||
{
|
||||
if (gPSSData->cursorMonSpecies == SPECIES_NONE)
|
||||
if (gPSSData->displayMonSpecies == SPECIES_NONE)
|
||||
return FALSE;
|
||||
|
||||
SetMenuText(PC_TEXT_GIVE);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ItemIsMail(gPSSData->cursorMonItem) == TRUE)
|
||||
if (ItemIsMail(gPSSData->displayMonItemId) == TRUE)
|
||||
return FALSE;
|
||||
|
||||
SetMenuText(PC_TEXT_SWITCH);
|
||||
@@ -1862,8 +1862,8 @@ static bool8 sub_8094A0C(void)
|
||||
|
||||
static void sub_8094AB8(struct Sprite *sprite)
|
||||
{
|
||||
sprite->x = gPSSData->field_CB4->x;
|
||||
sprite->y = gPSSData->field_CB4->y + 20;
|
||||
sprite->x = gPSSData->cursorSprite->x;
|
||||
sprite->y = gPSSData->cursorSprite->y + 20;
|
||||
}
|
||||
|
||||
static void sub_8094AD8(void)
|
||||
@@ -1940,22 +1940,22 @@ static void sub_8094AD8(void)
|
||||
|
||||
LoadSpriteSheets(spriteSheets);
|
||||
LoadSpritePalettes(spritePalettes);
|
||||
gPSSData->field_CD8[0] = IndexOfSpritePaletteTag(TAG_PAL_WAVEFORM);
|
||||
gPSSData->field_CD8[1] = IndexOfSpritePaletteTag(TAG_PAL_DAC7);
|
||||
gPSSData->cursorPalNums[0] = IndexOfSpritePaletteTag(TAG_PAL_WAVEFORM);
|
||||
gPSSData->cursorPalNums[1] = IndexOfSpritePaletteTag(TAG_PAL_DAC7);
|
||||
|
||||
sub_8092398(sBoxCursorArea, sBoxCursorPosition, &x, &y);
|
||||
spriteId = CreateSprite(&gSpriteTemplate_857BA50, x, y, 6);
|
||||
if (spriteId != MAX_SPRITES)
|
||||
{
|
||||
gPSSData->field_CB4 = &gSprites[spriteId];
|
||||
gPSSData->field_CB4->oam.paletteNum = gPSSData->field_CD8[sCanOnlyMove];
|
||||
gPSSData->field_CB4->oam.priority = 1;
|
||||
gPSSData->cursorSprite = &gSprites[spriteId];
|
||||
gPSSData->cursorSprite->oam.paletteNum = gPSSData->cursorPalNums[sCanOnlyMove];
|
||||
gPSSData->cursorSprite->oam.priority = 1;
|
||||
if (sIsMonBeingMoved)
|
||||
StartSpriteAnim(gPSSData->field_CB4, 3);
|
||||
StartSpriteAnim(gPSSData->cursorSprite, 3);
|
||||
}
|
||||
else
|
||||
{
|
||||
gPSSData->field_CB4 = NULL;
|
||||
gPSSData->cursorSprite = NULL;
|
||||
}
|
||||
|
||||
if (sBoxCursorArea == CURSOR_AREA_IN_PARTY)
|
||||
@@ -1972,21 +1972,21 @@ static void sub_8094AD8(void)
|
||||
spriteId = CreateSprite(&gSpriteTemplate_857BA68, 0, 0, subpriority);
|
||||
if (spriteId != MAX_SPRITES)
|
||||
{
|
||||
gPSSData->field_CB8 = &gSprites[spriteId];
|
||||
gPSSData->field_CB8->oam.priority = priority;
|
||||
gPSSData->cursorShadowSprite = &gSprites[spriteId];
|
||||
gPSSData->cursorShadowSprite->oam.priority = priority;
|
||||
if (sBoxCursorArea)
|
||||
gPSSData->field_CB8->invisible = 1;
|
||||
gPSSData->cursorShadowSprite->invisible = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
gPSSData->field_CB8 = NULL;
|
||||
gPSSData->cursorShadowSprite = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_8094C84(void)
|
||||
{
|
||||
sCanOnlyMove = !sCanOnlyMove;
|
||||
gPSSData->field_CB4->oam.paletteNum = gPSSData->field_CD8[sCanOnlyMove];
|
||||
gPSSData->cursorSprite->oam.paletteNum = gPSSData->cursorPalNums[sCanOnlyMove];
|
||||
}
|
||||
|
||||
u8 GetBoxCursorPosition(void)
|
||||
@@ -2010,7 +2010,7 @@ void sub_8094CD4(u8 *arg0, u8 *arg1)
|
||||
|
||||
void sub_8094D14(u8 animNum)
|
||||
{
|
||||
StartSpriteAnim(gPSSData->field_CB4, animNum);
|
||||
StartSpriteAnim(gPSSData->cursorSprite, animNum);
|
||||
}
|
||||
|
||||
u8 sub_8094D34(void)
|
||||
@@ -2020,7 +2020,7 @@ u8 sub_8094D34(void)
|
||||
|
||||
void sub_8094D40(void)
|
||||
{
|
||||
gPSSData->field_CB4->oam.priority = 1;
|
||||
gPSSData->cursorSprite->oam.priority = 1;
|
||||
}
|
||||
|
||||
void sub_8094D60(void)
|
||||
|
||||
@@ -87,13 +87,13 @@ void AddMenu(void)
|
||||
gPSSData->menuWindow.height = 2 * gPSSData->menuItemsCount;
|
||||
gPSSData->menuWindow.tilemapLeft = 29 - gPSSData->menuWindow.width;
|
||||
gPSSData->menuWindow.tilemapTop = 15 - gPSSData->menuWindow.height;
|
||||
gPSSData->field_CB0 = AddWindow(&gPSSData->menuWindow);
|
||||
ClearWindowTilemap(gPSSData->field_CB0);
|
||||
DrawStdFrameWithCustomTileAndPalette(gPSSData->field_CB0, FALSE, 0x00b, 14);
|
||||
PrintTextArray(gPSSData->field_CB0, 1, 8, 2, 16, gPSSData->menuItemsCount, (void *)gPSSData->menuItems);
|
||||
Menu_InitCursor(gPSSData->field_CB0, 1, 0, 2, 16, gPSSData->menuItemsCount, 0);
|
||||
gPSSData->menuWindowId = AddWindow(&gPSSData->menuWindow);
|
||||
ClearWindowTilemap(gPSSData->menuWindowId);
|
||||
DrawStdFrameWithCustomTileAndPalette(gPSSData->menuWindowId, FALSE, 0x00b, 14);
|
||||
PrintTextArray(gPSSData->menuWindowId, 1, 8, 2, 16, gPSSData->menuItemsCount, (void *)gPSSData->menuItems);
|
||||
Menu_InitCursor(gPSSData->menuWindowId, 1, 0, 2, 16, gPSSData->menuItemsCount, 0);
|
||||
ScheduleBgCopyTilemapToVram(0);
|
||||
gPSSData->field_CAE = 0;
|
||||
gPSSData->menuUnusedField = 0;
|
||||
}
|
||||
|
||||
bool8 sub_8094F90(void)
|
||||
@@ -142,6 +142,6 @@ s16 sub_8094F94(void)
|
||||
|
||||
void sub_8095024(void)
|
||||
{
|
||||
ClearStdWindowAndFrameToTransparent(gPSSData->field_CB0, TRUE);
|
||||
RemoveWindow(gPSSData->field_CB0);
|
||||
ClearStdWindowAndFrameToTransparent(gPSSData->menuWindowId, TRUE);
|
||||
RemoveWindow(gPSSData->menuWindowId);
|
||||
}
|
||||
|
||||
@@ -20,13 +20,13 @@ static void sub_8096624(u8 id, bool8 show);
|
||||
static const u32 *GetItemIconPic(u16 itemId);
|
||||
static const u32 *GetItemIconPalette(u16 itemId);
|
||||
static void sub_8096898(u32 x);
|
||||
static void sub_809692C(struct Sprite * sprite);
|
||||
static void sub_8096958(struct Sprite * sprite);
|
||||
static void sub_80969BC(struct Sprite * sprite);
|
||||
static void sub_80969F4(struct Sprite * sprite);
|
||||
static void sub_8096A74(struct Sprite * sprite);
|
||||
static void sub_8096B10(struct Sprite * sprite);
|
||||
static void sub_8096BAC(struct Sprite * sprite);
|
||||
static void sub_809692C(struct Sprite *sprite);
|
||||
static void sub_8096958(struct Sprite *sprite);
|
||||
static void sub_80969BC(struct Sprite *sprite);
|
||||
static void sub_80969F4(struct Sprite *sprite);
|
||||
static void sub_8096A74(struct Sprite *sprite);
|
||||
static void sub_8096B10(struct Sprite *sprite);
|
||||
static void sub_8096BAC(struct Sprite *sprite);
|
||||
|
||||
static const u32 gUnknown_83D35DC[] = INCBIN_U32("graphics/interface/pss_unk_83D35DC.4bpp");
|
||||
|
||||
@@ -215,7 +215,7 @@ void Item_FromMonToMoving(u8 cursorArea, u8 cursorPos)
|
||||
SetPartyMonIconObjMode(cursorPos, ST_OAM_OBJ_BLEND);
|
||||
}
|
||||
|
||||
gPSSData->movingItem = gPSSData->cursorMonItem;
|
||||
gPSSData->movingItem = gPSSData->displayMonItemId;
|
||||
}
|
||||
|
||||
void sub_8095E2C(u16 item)
|
||||
@@ -560,7 +560,7 @@ void PrintItemDescription(void)
|
||||
if (IsActiveItemMoving())
|
||||
description = ItemId_GetDescription(gPSSData->movingItem);
|
||||
else
|
||||
description = ItemId_GetDescription(gPSSData->cursorMonItem);
|
||||
description = ItemId_GetDescription(gPSSData->displayMonItemId);
|
||||
|
||||
FillWindowPixelBuffer(2, PIXEL_FILL(1));
|
||||
AddTextPrinterParameterized5(2, 2, description, 2, 0, 0, NULL, 0, 0);
|
||||
@@ -660,9 +660,9 @@ static void sub_8096958(struct Sprite *sprite)
|
||||
|
||||
static void sub_80969BC(struct Sprite *sprite)
|
||||
{
|
||||
sprite->x = gPSSData->field_CB4->x + 4;
|
||||
sprite->y = gPSSData->field_CB4->y + gPSSData->field_CB4->y2 + 8;
|
||||
sprite->oam.priority = gPSSData->field_CB4->oam.priority;
|
||||
sprite->x = gPSSData->cursorSprite->x + 4;
|
||||
sprite->y = gPSSData->cursorSprite->y + gPSSData->cursorSprite->y2 + 8;
|
||||
sprite->oam.priority = gPSSData->cursorSprite->oam.priority;
|
||||
}
|
||||
|
||||
static void sub_80969F4(struct Sprite *sprite)
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
#include "gflib.h"
|
||||
#include "pokemon_storage_system_internal.h"
|
||||
|
||||
static EWRAM_DATA struct UnkStruct_2000020 *gUnknown_203982C = NULL;
|
||||
static EWRAM_DATA struct UnkUtil *gUnknown_203982C = NULL;
|
||||
|
||||
static void sub_8096CDC(struct UnkStruct_2000028 *unkStruct);
|
||||
static void sub_8096D70(struct UnkStruct_2000028 *unkStruct);
|
||||
static void sub_8096CDC(struct UnkUtilData *unkStruct);
|
||||
static void sub_8096D70(struct UnkUtilData *unkStruct);
|
||||
|
||||
void sub_8096BE4(struct UnkStruct_2000020 *arg0, struct UnkStruct_2000028 *arg1, u32 arg2)
|
||||
void sub_8096BE4(struct UnkUtil *arg0, struct UnkUtilData *arg1, u32 arg2)
|
||||
{
|
||||
gUnknown_203982C = arg0;
|
||||
arg0->unk_00 = arg1;
|
||||
@@ -23,7 +23,7 @@ void sub_8096BF8(void)
|
||||
{
|
||||
for (i = 0; i < gUnknown_203982C->unk_04; i++)
|
||||
{
|
||||
struct UnkStruct_2000028 *unkStruct = &gUnknown_203982C->unk_00[i];
|
||||
struct UnkUtilData *unkStruct = &gUnknown_203982C->unk_00[i];
|
||||
unkStruct->unk_0c(unkStruct);
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ void sub_8096BF8(void)
|
||||
|
||||
static bool8 sub_8096C40(u8 *dest, u16 dLeft, u16 dTop, const u8 *src, u16 sLeft, u16 sTop, u16 width, u16 height, u16 unkArg)
|
||||
{
|
||||
struct UnkStruct_2000028 *unkStruct;
|
||||
struct UnkUtilData *unkStruct;
|
||||
|
||||
if (gUnknown_203982C->unk_04 >= gUnknown_203982C->unk_05)
|
||||
return FALSE;
|
||||
@@ -48,7 +48,7 @@ static bool8 sub_8096C40(u8 *dest, u16 dLeft, u16 dTop, const u8 *src, u16 sLeft
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void sub_8096CDC(struct UnkStruct_2000028 *unkStruct)
|
||||
static void sub_8096CDC(struct UnkUtilData *unkStruct)
|
||||
{
|
||||
u16 i;
|
||||
|
||||
@@ -62,7 +62,7 @@ static void sub_8096CDC(struct UnkStruct_2000028 *unkStruct)
|
||||
|
||||
static bool8 sub_8096D14(void *dest, u16 dLeft, u16 dTop, u16 width, u16 height)
|
||||
{
|
||||
struct UnkStruct_2000028 *unkStruct;
|
||||
struct UnkUtilData *unkStruct;
|
||||
|
||||
if (gUnknown_203982C->unk_04 >= gUnknown_203982C->unk_05)
|
||||
return FALSE;
|
||||
@@ -75,7 +75,7 @@ static bool8 sub_8096D14(void *dest, u16 dLeft, u16 dTop, u16 width, u16 height)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void sub_8096D70(struct UnkStruct_2000028 *unkStruct)
|
||||
static void sub_8096D70(struct UnkUtilData *unkStruct)
|
||||
{
|
||||
u16 i;
|
||||
|
||||
|
||||
@@ -129,7 +129,7 @@ static void SwapMonMoveSlots(void);
|
||||
static void SwapBoxMonMoveSlots(void);
|
||||
static void UpdateCurrentMonBufferFromPartyOrBox(struct Pokemon * mon);
|
||||
static void PokeSum_SetMonPicSpriteCallback(u16 spriteId);
|
||||
static void SpriteCB_MoveSelectionCursor(struct Sprite * sprite);
|
||||
static void SpriteCB_MoveSelectionCursor(struct Sprite *sprite);
|
||||
static void UpdateMonStatusIconObj(void);
|
||||
static void UpdateHpBarObjs(void);
|
||||
static void UpdateExpBarObjs(void);
|
||||
@@ -238,7 +238,7 @@ struct PokemonSummaryScreenData
|
||||
} monList;
|
||||
|
||||
MainCallback savedCallback;
|
||||
struct Sprite * markingSprite;
|
||||
struct Sprite *markingSprite;
|
||||
|
||||
u8 ALIGNED(4) lastPageFlipDirection; /* 0x3300 */
|
||||
u8 ALIGNED(4) unk3304; /* 0x3304 */
|
||||
@@ -264,7 +264,7 @@ struct Struct203B144
|
||||
|
||||
struct ExpBarObjs
|
||||
{
|
||||
struct Sprite * sprites[11]; /* 0x00 */
|
||||
struct Sprite *sprites[11]; /* 0x00 */
|
||||
u16 xpos[11]; /* 0x2c */
|
||||
u16 tileTag; /* 0x42 */
|
||||
u16 palTag; /* 0x44 */
|
||||
@@ -272,7 +272,7 @@ struct ExpBarObjs
|
||||
|
||||
struct HpBarObjs
|
||||
{
|
||||
struct Sprite * sprites[10]; /* 0x00 */
|
||||
struct Sprite *sprites[10]; /* 0x00 */
|
||||
u16 xpos[10]; /* 0x28 */
|
||||
u16 tileTag; /* 0x3c */
|
||||
u16 palTag; /* 0x3e */
|
||||
@@ -287,7 +287,7 @@ struct MonPicBounceState
|
||||
|
||||
struct MoveSelectionCursor
|
||||
{
|
||||
struct Sprite * sprite; /* 0x00 */
|
||||
struct Sprite *sprite; /* 0x00 */
|
||||
u16 whichSprite; /* 0x04 */
|
||||
u16 tileTag; /* 0x06 */
|
||||
u16 palTag; /* 0x08 */
|
||||
@@ -295,21 +295,21 @@ struct MoveSelectionCursor
|
||||
|
||||
struct MonStatusIconObj
|
||||
{
|
||||
struct Sprite * sprite; /* 0x00 */
|
||||
struct Sprite *sprite; /* 0x00 */
|
||||
u16 tileTag; /* 0x04 */
|
||||
u16 palTag; /* 0x06 */
|
||||
};
|
||||
|
||||
struct PokerusIconObj
|
||||
{
|
||||
struct Sprite * sprite; /* 0x00 */
|
||||
struct Sprite *sprite; /* 0x00 */
|
||||
u16 tileTag; /* 0x04 */
|
||||
u16 palTag; /* 0x06 */
|
||||
};
|
||||
|
||||
struct ShinyStarObjData
|
||||
{
|
||||
struct Sprite * sprite; /* 0x00 */
|
||||
struct Sprite *sprite; /* 0x00 */
|
||||
u16 tileTag; /* 0x04 */
|
||||
u16 palTag; /* 0x06 */
|
||||
};
|
||||
@@ -3914,7 +3914,7 @@ static void Task_InputHandler_SelectOrForgetMove(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCB_PokeSum_MonPicSprite(struct Sprite * sprite)
|
||||
static void SpriteCB_PokeSum_MonPicSprite(struct Sprite *sprite)
|
||||
{
|
||||
if (sMonSummaryScreen->numMonPicBounces >= 2)
|
||||
return;
|
||||
@@ -3954,7 +3954,7 @@ static void SpriteCB_PokeSum_MonPicSprite(struct Sprite * sprite)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCB_PokeSum_EggPicShake(struct Sprite * sprite)
|
||||
static void SpriteCB_PokeSum_EggPicShake(struct Sprite *sprite)
|
||||
{
|
||||
if (sMonSummaryScreen->numMonPicBounces >= 2)
|
||||
return;
|
||||
@@ -4001,7 +4001,7 @@ static void SpriteCB_PokeSum_EggPicShake(struct Sprite * sprite)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCB_MonPicDummy(struct Sprite * sprite)
|
||||
static void SpriteCB_MonPicDummy(struct Sprite *sprite)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -4187,7 +4187,7 @@ static void CreateMoveSelectionCursorObjs(u16 tileTag, u16 palTag)
|
||||
{
|
||||
u8 i;
|
||||
u8 spriteId;
|
||||
void * gfxBufferPtrs[2];
|
||||
void *gfxBufferPtrs[2];
|
||||
gfxBufferPtrs[0] = AllocZeroed(0x20 * 64);
|
||||
gfxBufferPtrs[1] = AllocZeroed(0x20 * 64);
|
||||
|
||||
@@ -4245,7 +4245,7 @@ static void ShoworHideMoveSelectionCursor(bool8 invisible)
|
||||
sMoveSelectionCursorObjs[i]->sprite->invisible = invisible;
|
||||
}
|
||||
|
||||
static void SpriteCB_MoveSelectionCursor(struct Sprite * sprite)
|
||||
static void SpriteCB_MoveSelectionCursor(struct Sprite *sprite)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
@@ -4304,7 +4304,7 @@ static void DestroyMoveSelectionCursorObjs(void)
|
||||
static void CreateMonStatusIconObj(u16 tileTag, u16 palTag)
|
||||
{
|
||||
u16 spriteId;
|
||||
void * gfxBufferPtr;
|
||||
void *gfxBufferPtr;
|
||||
|
||||
sStatusIcon = AllocZeroed(sizeof(struct MonStatusIconObj));
|
||||
gfxBufferPtr = AllocZeroed(0x20 * 32);
|
||||
@@ -4394,7 +4394,7 @@ static void CreateHpBarObjs(u16 tileTag, u16 palTag)
|
||||
{
|
||||
u8 i;
|
||||
u8 spriteId;
|
||||
void * gfxBufferPtr;
|
||||
void *gfxBufferPtr;
|
||||
u32 curHp;
|
||||
u32 maxHp;
|
||||
u8 hpBarPalTagOffset = 0;
|
||||
@@ -4554,7 +4554,7 @@ static void CreateExpBarObjs(u16 tileTag, u16 palTag)
|
||||
{
|
||||
u8 i;
|
||||
u8 spriteId;
|
||||
void * gfxBufferPtr;
|
||||
void *gfxBufferPtr;
|
||||
|
||||
sExpBarObjs = AllocZeroed(sizeof(struct ExpBarObjs));
|
||||
gfxBufferPtr = AllocZeroed(0x20 * 12);
|
||||
@@ -4685,7 +4685,7 @@ static void ShowOrHideExpBarObjs(u8 invisible)
|
||||
static void CreatePokerusIconObj(u16 tileTag, u16 palTag)
|
||||
{
|
||||
u16 spriteId;
|
||||
void * gfxBufferPtr;
|
||||
void *gfxBufferPtr;
|
||||
|
||||
sPokerusIconObj = AllocZeroed(sizeof(struct PokerusIconObj));
|
||||
gfxBufferPtr = AllocZeroed(0x20 * 1);
|
||||
@@ -4770,7 +4770,7 @@ static void HideShowPokerusIcon(bool8 invisible)
|
||||
static void CreateShinyStarObj(u16 tileTag, u16 palTag)
|
||||
{
|
||||
u16 spriteId;
|
||||
void * gfxBufferPtr;
|
||||
void *gfxBufferPtr;
|
||||
|
||||
sShinyStarObjData = AllocZeroed(sizeof(struct ShinyStarObjData));
|
||||
gfxBufferPtr = AllocZeroed(0x20 * 2);
|
||||
@@ -4881,7 +4881,7 @@ static void PokeSum_CreateMonMarkingsSprite(void)
|
||||
u32 markings = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MARKINGS);
|
||||
|
||||
DestroySpriteAndFreeResources(sMonSummaryScreen->markingSprite);
|
||||
sMonSummaryScreen->markingSprite = CreateMonMarkingSprite_SelectCombo(TAG_PSS_UNK_8C, TAG_PSS_UNK_8C, sMonMarkingSpritePalette);
|
||||
sMonSummaryScreen->markingSprite = CreateMonMarkingAllCombosSprite(TAG_PSS_UNK_8C, TAG_PSS_UNK_8C, sMonMarkingSpritePalette);
|
||||
|
||||
if (sMonSummaryScreen->markingSprite != NULL)
|
||||
{
|
||||
|
||||
+1
-1
@@ -1017,7 +1017,7 @@ static void sub_80B3D78(u8 taskId)
|
||||
break;
|
||||
case 1:
|
||||
task->data[1] -= 4;
|
||||
task->data[2] = 256 - (gSineTable[task->data[1]] >> 1);;
|
||||
task->data[2] = 256 - (gSineTable[task->data[1]] >> 1);
|
||||
SetSpriteRotScale(task->data[15], task->data[2], task->data[2], 0);
|
||||
SetBattlerSpriteYOffsetFromOtherYScale(task->data[15], task->data[13]);
|
||||
if (task->data[1] == 0)
|
||||
|
||||
+8
-8
@@ -153,7 +153,7 @@ static const u16 sUnknown_8456638[] = INCBIN_U16("graphics/unknown/unknown_84566
|
||||
|
||||
static const u8 sQuestLogTextLineYCoords[] = {17, 10, 3};
|
||||
|
||||
void SetQuestLogRecordAndPlaybackPointers(void * oldPointer)
|
||||
void SetQuestLogRecordAndPlaybackPointers(void *oldPointer)
|
||||
{
|
||||
ptrdiff_t offset = (void *)gSaveBlock1Ptr - oldPointer;
|
||||
if (gUnknown_203AE04)
|
||||
@@ -201,10 +201,10 @@ void RunQuestLogCB(void)
|
||||
sQuestLogCB();
|
||||
}
|
||||
|
||||
bool8 sub_8110944(const void * a0, size_t cmdSize)
|
||||
bool8 sub_8110944(const void *a0, size_t cmdSize)
|
||||
{
|
||||
void * r2 = gSaveBlock1Ptr->questLog[sCurrentSceneNum].script;
|
||||
void * r0 = gSaveBlock1Ptr->questLog[sCurrentSceneNum].end;
|
||||
void *r2 = gSaveBlock1Ptr->questLog[sCurrentSceneNum].script;
|
||||
void *r0 = gSaveBlock1Ptr->questLog[sCurrentSceneNum].end;
|
||||
r0 -= cmdSize;
|
||||
if ((const void *)a0 < r2 || (const void *)a0 > r0)
|
||||
return FALSE;
|
||||
@@ -213,8 +213,8 @@ bool8 sub_8110944(const void * a0, size_t cmdSize)
|
||||
|
||||
bool8 WillCommandOfSizeFitInSav1Record(u16 *cursor, size_t size)
|
||||
{
|
||||
void * start = gSaveBlock1Ptr->questLog[sCurrentSceneNum].script;
|
||||
void * end = gSaveBlock1Ptr->questLog[sCurrentSceneNum].end;
|
||||
void *start = gSaveBlock1Ptr->questLog[sCurrentSceneNum].script;
|
||||
void *end = gSaveBlock1Ptr->questLog[sCurrentSceneNum].end;
|
||||
end -= size;
|
||||
if ((void *)cursor < start || (void *)cursor > end)
|
||||
return FALSE;
|
||||
@@ -1645,9 +1645,9 @@ static const struct FlagOrVarRecord sDummyFlagOrVarRecord = {
|
||||
0x7FFF
|
||||
};
|
||||
|
||||
void * QuestLogGetFlagOrVarPtr(bool8 isFlag, u16 idx)
|
||||
void *QuestLogGetFlagOrVarPtr(bool8 isFlag, u16 idx)
|
||||
{
|
||||
void * response;
|
||||
void *response;
|
||||
if (sQuestLogCursor == 0)
|
||||
return NULL;
|
||||
if (sQuestLogCursor >= sNumEventsInLogEntry)
|
||||
|
||||
+8
-8
@@ -116,7 +116,7 @@ struct GpuWindowParams
|
||||
struct SwitchMapMenuCursorSubsprite
|
||||
{
|
||||
u8 tiles[0x400];
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
u16 tileTag;
|
||||
u16 palTag;
|
||||
s16 x;
|
||||
@@ -176,7 +176,7 @@ struct DungeonMapPreview
|
||||
struct MapEdge
|
||||
{
|
||||
u16 tiles[0x200];
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
s16 x;
|
||||
s16 y;
|
||||
u16 tileTag;
|
||||
@@ -210,7 +210,7 @@ struct MapCursor
|
||||
u16 selectedMapsec;
|
||||
u16 selectedMapsecType;
|
||||
u16 selectedDungeonType;
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
u16 tileTag;
|
||||
u16 palTag;
|
||||
u16 tiles[0x80];
|
||||
@@ -220,7 +220,7 @@ struct PlayerIcon
|
||||
{
|
||||
s16 x;
|
||||
s16 y;
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
u16 tileTag;
|
||||
u16 palTag;
|
||||
u16 tiles[0x40];
|
||||
@@ -230,7 +230,7 @@ struct MapIconSprite
|
||||
{
|
||||
u32 unused;
|
||||
u8 region;
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
u16 tileTag;
|
||||
u16 palTag;
|
||||
};
|
||||
@@ -2277,7 +2277,7 @@ static bool8 HandleSwitchMapInput(void)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void SpriteCB_SwitchMapCursor(struct Sprite * sprite)
|
||||
static void SpriteCB_SwitchMapCursor(struct Sprite *sprite)
|
||||
{
|
||||
sprite->y = sSwitchMapMenu->highlight.top + 16;
|
||||
}
|
||||
@@ -2619,7 +2619,7 @@ static bool8 UpdateDungeonMapPreview(bool8 a0)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void SpriteCB_MapEdge(struct Sprite * sprite)
|
||||
static void SpriteCB_MapEdge(struct Sprite *sprite)
|
||||
{
|
||||
|
||||
}
|
||||
@@ -3112,7 +3112,7 @@ static bool8 MoveMapEdgesInward(void)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void SpriteCB_MapCursor(struct Sprite * sprite)
|
||||
static void SpriteCB_MapCursor(struct Sprite *sprite)
|
||||
{
|
||||
if (sMapCursor->moveCounter != 0)
|
||||
{
|
||||
|
||||
+6
-6
@@ -18,7 +18,7 @@
|
||||
|
||||
#define PALTAG_FERRY_WAKE 3000
|
||||
|
||||
static EWRAM_DATA void * sBg3TilemapBuffer = NULL;
|
||||
static EWRAM_DATA void *sBg3TilemapBuffer = NULL;
|
||||
|
||||
static void CB2_SetUpSeagallopScene(void);
|
||||
static void VBlankCB_SeaGallop(void);
|
||||
@@ -34,9 +34,9 @@ static void ResetBGPos(void);
|
||||
static void LoadFerrySpriteResources(void);
|
||||
static void FreeFerrySpriteResources(void);
|
||||
static void CreateFerrySprite(void);
|
||||
static void SpriteCB_Ferry(struct Sprite * sprite);
|
||||
static void SpriteCB_Ferry(struct Sprite *sprite);
|
||||
static void CreateWakeSprite(s16 x);
|
||||
static void SpriteCB_Wake(struct Sprite * sprite);
|
||||
static void SpriteCB_Wake(struct Sprite *sprite);
|
||||
static bool8 GetDirectionOfTravel(void);
|
||||
|
||||
static const u16 sWaterTiles[] = INCBIN_U16("graphics/seagallop/water.4bpp");
|
||||
@@ -328,7 +328,7 @@ static void Task_Seagallop_3(void)
|
||||
|
||||
static void ResetGPU(void)
|
||||
{
|
||||
void * dest = (void *) VRAM;
|
||||
void *dest = (void *) VRAM;
|
||||
DmaClearLarge16(3, dest, VRAM_SIZE, 0x1000);
|
||||
|
||||
DmaClear32(3, (void *)OAM, OAM_SIZE);
|
||||
@@ -410,7 +410,7 @@ static void CreateFerrySprite(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCB_Ferry(struct Sprite * sprite)
|
||||
static void SpriteCB_Ferry(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[1] += sprite->data[0];
|
||||
sprite->x2 = sprite->data[1] >> 4;
|
||||
@@ -437,7 +437,7 @@ static void CreateWakeSprite(s16 x)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCB_Wake(struct Sprite * sprite)
|
||||
static void SpriteCB_Wake(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->animEnded)
|
||||
{
|
||||
|
||||
+7
-7
@@ -75,10 +75,10 @@ struct SlotMachineState
|
||||
struct SlotMachineGfxManager
|
||||
{
|
||||
u32 field_00[3];
|
||||
struct Sprite * reelIconSprites[3][5];
|
||||
struct Sprite * creditDigitSprites[4];
|
||||
struct Sprite * payoutDigitSprites[4];
|
||||
struct Sprite * clefairySprites[2];
|
||||
struct Sprite *reelIconSprites[3][5];
|
||||
struct Sprite *creditDigitSprites[4];
|
||||
struct Sprite *payoutDigitSprites[4];
|
||||
struct Sprite *clefairySprites[2];
|
||||
vu16 * reelIconAffineParamPtr;
|
||||
};
|
||||
|
||||
@@ -1743,7 +1743,7 @@ static void InitGfxManager(struct SlotMachineGfxManager * manager)
|
||||
|
||||
static void CreateReelIconSprites(void)
|
||||
{
|
||||
struct Sprite * sprite;
|
||||
struct Sprite *sprite;
|
||||
s32 i, j;
|
||||
s32 spriteId;
|
||||
s32 animId;
|
||||
@@ -1781,12 +1781,12 @@ static void UpdateReelIconSprites(const s16 * reelPosPtr, const s16 * yposPtr)
|
||||
sSlotMachineGfxManager->reelIconSprites[i][j]->y2 = ypos;
|
||||
{
|
||||
s32 animId = sReelIconAnimByReelAndPos[i][reelPos];
|
||||
struct Sprite * sprite = sSlotMachineGfxManager->reelIconSprites[i][j];
|
||||
struct Sprite *sprite = sSlotMachineGfxManager->reelIconSprites[i][j];
|
||||
StartSpriteAnim(sprite, animId);
|
||||
}
|
||||
{
|
||||
s32 animId = sReelIconAnimByReelAndPos[i][reelPos];
|
||||
struct Sprite * sprite = sSlotMachineGfxManager->reelIconSprites[i][j];
|
||||
struct Sprite *sprite = sSlotMachineGfxManager->reelIconSprites[i][j];
|
||||
StartSpriteAnim(sprite, animId);
|
||||
}
|
||||
sSlotMachineGfxManager->reelIconSprites[i][j]->oam.paletteNum = IndexOfSpritePaletteTag(sReelIconPaletteTags[sReelIconAnimByReelAndPos[i][reelPos]]);
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
#include "decompress.h"
|
||||
#include "util.h"
|
||||
|
||||
static void SmokescreenImpact_Callback(struct Sprite * sprite);
|
||||
static void SmokescreenImpact_Callback(struct Sprite *sprite);
|
||||
|
||||
extern const struct CompressedSpriteSheet gSmokescreenImpactSpriteSheet;
|
||||
extern const struct CompressedSpritePalette gSmokescreenImpactSpritePalette;
|
||||
|
||||
+4
-4
@@ -14,9 +14,9 @@ static void Task_SSAnneInit(u8 taskId);
|
||||
static void Task_SSAnneRun(u8 taskId);
|
||||
static void Task_SSAnneFinish(u8 taskId);
|
||||
static void CreateWakeBehindBoat(void);
|
||||
static void WakeSpriteCallback(struct Sprite * sprite);
|
||||
static void WakeSpriteCallback(struct Sprite *sprite);
|
||||
static void CreateSmokeSprite(void);
|
||||
static void SmokeSpriteCallback(struct Sprite * sprite);
|
||||
static void SmokeSpriteCallback(struct Sprite *sprite);
|
||||
|
||||
static const u16 sWakeTiles[] = INCBIN_U16("graphics/ss_anne/unk_8479838.4bpp");
|
||||
static const u16 sSmokeTiles[] = INCBIN_U16("graphics/ss_anne/unk_8479A38.4bpp");
|
||||
@@ -156,7 +156,7 @@ static void CreateWakeBehindBoat(void)
|
||||
gSprites[spriteId].oam.paletteNum = 10;
|
||||
}
|
||||
|
||||
static void WakeSpriteCallback(struct Sprite * sprite)
|
||||
static void WakeSpriteCallback(struct Sprite *sprite)
|
||||
{
|
||||
u8 objectEventId;
|
||||
struct ObjectEvent * boatObject;
|
||||
@@ -191,7 +191,7 @@ static void CreateSmokeSprite(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void SmokeSpriteCallback(struct Sprite * sprite)
|
||||
static void SmokeSpriteCallback(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[0]++;
|
||||
sprite->x2 = sprite->data[0] / 4;
|
||||
|
||||
+3
-3
@@ -781,7 +781,7 @@ static void TTVcmd_ClearBg2TeachyTvGraphic(u8 taskId)
|
||||
static void TTVcmd_NpcMoveAndSetupTextPrinter(u8 taskId)
|
||||
{
|
||||
s16 * data = gTasks[taskId].data;
|
||||
struct Sprite * spriteAddr = &gSprites[data[1]];
|
||||
struct Sprite *spriteAddr = &gSprites[data[1]];
|
||||
if (data[2] != 35)
|
||||
++data[2];
|
||||
else {
|
||||
@@ -1220,8 +1220,8 @@ static void TeachyTvLoadBg3Map(u16 *buffer)
|
||||
u8 * mapTilesRowBuffer;
|
||||
u16 i, j, k;
|
||||
u16 currentBlockIdx;
|
||||
void * tilesetsBuffer;
|
||||
void * palIndicesBuffer;
|
||||
void *tilesetsBuffer;
|
||||
void *palIndicesBuffer;
|
||||
u16 numMapTilesRows = 0;
|
||||
const struct MapLayout *layout = &Route1_Layout;
|
||||
u16 * blockIndicesBuffer = AllocZeroed(0x800);
|
||||
|
||||
+1
-1
@@ -275,7 +275,7 @@ void CopyGlyphToWindow(struct TextPrinter *textPrinter)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8003614(void * tileData, u16 currentX, u16 currentY, u16 width, u16 height)
|
||||
void sub_8003614(void *tileData, u16 currentX, u16 currentY, u16 width, u16 height)
|
||||
{
|
||||
int r0, r1;
|
||||
u8 r2;
|
||||
|
||||
@@ -51,7 +51,7 @@ const struct TextWindowGraphics gUserFrames[] = {
|
||||
{gUnknown_84717CC, gUnknown_8471A2C}
|
||||
}; // NELEMS = 10
|
||||
|
||||
const struct TextWindowGraphics * GetUserFrameGraphicsInfo(u8 idx)
|
||||
const struct TextWindowGraphics *GetWindowFrameTilesPal(u8 idx)
|
||||
{
|
||||
if (idx >= 20) // if (idx >= NELEMS(gUserFrames))
|
||||
return &gUserFrames[0];
|
||||
|
||||
+5
-5
@@ -54,7 +54,7 @@ static void UpdateScanlineEffectRegBuffer(s16 a0);
|
||||
static void ScheduleStopScanlineEffect(void);
|
||||
static void LoadMainTitleScreenPalsAndResetBgs(void);
|
||||
static void CB2_FadeOutTransitionToSaveClearScreen(void);
|
||||
static void SpriteCallback_TitleScreenFlameOrLeaf(struct Sprite * sprite);
|
||||
static void SpriteCallback_TitleScreenFlameOrLeaf(struct Sprite *sprite);
|
||||
static void CB2_FadeOutTransitionToBerryFix(void);
|
||||
static void LoadSpriteGfxAndPals(void);
|
||||
static void Task_FlameOrLeafSpawner(u8 taskId);
|
||||
@@ -65,7 +65,7 @@ static void SetPalOnOrCreateBlankSprite(bool32 a0);
|
||||
static u8 CreateSlashSprite(void);
|
||||
static void ScheduleHideSlashSprite(u8 spriteId);
|
||||
static bool32 IsSlashSpriteHidden(u8 spriteId);
|
||||
static void SpriteCallback_Slash(struct Sprite * sprite);
|
||||
static void SpriteCallback_Slash(struct Sprite *sprite);
|
||||
|
||||
// bg3
|
||||
static const u8 sBorderBgTiles[] = INCBIN_U8("graphics/title_screen/border_bg.4bpp.lz");
|
||||
@@ -909,7 +909,7 @@ static void LoadSpriteGfxAndPals(void)
|
||||
LoadSpritePalettes(sSpritePals);
|
||||
}
|
||||
|
||||
static void SpriteCallback_TitleScreenFlameOrLeaf(struct Sprite * sprite)
|
||||
static void SpriteCallback_TitleScreenFlameOrLeaf(struct Sprite *sprite)
|
||||
{
|
||||
s16 * data = sprite->data;
|
||||
sprite->data[0] -= data[1];
|
||||
@@ -1044,7 +1044,7 @@ static void CreateFlameOrLeafSprite(s32 y0, s32 x1, s32 y1)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCallback_LG_8079800(struct Sprite * sprite)
|
||||
static void SpriteCallback_LG_8079800(struct Sprite *sprite)
|
||||
{
|
||||
sprite->x -= 7;
|
||||
if (sprite->x < -16)
|
||||
@@ -1170,7 +1170,7 @@ static bool32 IsSlashSpriteHidden(u8 spriteId)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void SpriteCallback_Slash(struct Sprite * sprite)
|
||||
static void SpriteCallback_Slash(struct Sprite *sprite)
|
||||
{
|
||||
switch (sprite->data[0])
|
||||
{
|
||||
|
||||
+7
-7
@@ -61,7 +61,7 @@ struct UnkStruct_203B11C
|
||||
static EWRAM_DATA struct UnkStruct_203B10C sTMCaseStaticResources = {};
|
||||
static EWRAM_DATA struct UnkStruct_203B118 * sTMCaseDynamicResources = NULL;
|
||||
static EWRAM_DATA struct UnkStruct_203B11C * sPokedudePackBackup = NULL;
|
||||
static EWRAM_DATA void * sTilemapBuffer = NULL; // tilemap buffer
|
||||
static EWRAM_DATA void *sTilemapBuffer = NULL; // tilemap buffer
|
||||
static EWRAM_DATA struct ListMenuItem * sListMenuItemsBuffer = NULL;
|
||||
static EWRAM_DATA u8 (* sListMenuStringsBuffer)[29] = NULL;
|
||||
static EWRAM_DATA u16 * sTMSpritePaletteBuffer = NULL;
|
||||
@@ -121,11 +121,11 @@ static void HandleCreateYesNoMenu(u8 taskId, const struct YesNoFuncTable * ptrs)
|
||||
static u8 AddTMContextMenu(u8 * a0, u8 a1);
|
||||
static void RemoveTMContextMenu(u8 * a0);
|
||||
static u8 CreateTMSprite(u16 itemId);
|
||||
static void SetTMSpriteAnim(struct Sprite * sprite, u8 var);
|
||||
static void SetTMSpriteAnim(struct Sprite *sprite, u8 var);
|
||||
static void TintTMSpriteByType(u8 type);
|
||||
static void UpdateTMSpritePosition(struct Sprite * sprite, u8 var);
|
||||
static void UpdateTMSpritePosition(struct Sprite *sprite, u8 var);
|
||||
static void InitSelectedTMSpriteData(u8 a0, u16 itemId);
|
||||
static void SpriteCB_MoveTMSpriteInCase(struct Sprite * sprite);
|
||||
static void SpriteCB_MoveTMSpriteInCase(struct Sprite *sprite);
|
||||
static void LoadTMTypePalettes(void);
|
||||
|
||||
static const struct BgTemplate sBGTemplates[] = {
|
||||
@@ -1439,7 +1439,7 @@ static u8 CreateTMSprite(u16 itemId)
|
||||
}
|
||||
}
|
||||
|
||||
static void SetTMSpriteAnim(struct Sprite * sprite, u8 idx)
|
||||
static void SetTMSpriteAnim(struct Sprite *sprite, u8 idx)
|
||||
{
|
||||
if (idx >= 50)
|
||||
StartSpriteAnim(sprite, 1);
|
||||
@@ -1457,7 +1457,7 @@ static void TintTMSpriteByType(u8 type)
|
||||
}
|
||||
}
|
||||
|
||||
static void UpdateTMSpritePosition(struct Sprite * sprite, u8 var)
|
||||
static void UpdateTMSpritePosition(struct Sprite *sprite, u8 var)
|
||||
{
|
||||
s32 x, y;
|
||||
if (var == 0xFF)
|
||||
@@ -1486,7 +1486,7 @@ static void InitSelectedTMSpriteData(u8 spriteId, u16 itemId)
|
||||
gSprites[spriteId].callback = SpriteCB_MoveTMSpriteInCase;
|
||||
}
|
||||
|
||||
static void SpriteCB_MoveTMSpriteInCase(struct Sprite * sprite)
|
||||
static void SpriteCB_MoveTMSpriteInCase(struct Sprite *sprite)
|
||||
{
|
||||
switch (sprite->data[1])
|
||||
{
|
||||
|
||||
+20
-20
@@ -112,12 +112,12 @@ struct TradeAnimationResources {
|
||||
|
||||
static EWRAM_DATA struct TradeAnimationResources * sTradeData = NULL;
|
||||
|
||||
static void SpriteCB_TradeGlowCable(struct Sprite * sprite);
|
||||
static void SpriteCB_TradeGlowWireless(struct Sprite * sprite);
|
||||
static void SpriteCB_TradeGlowCore(struct Sprite * sprite);
|
||||
static void SpriteCB_GameLinkCableEnd_Outbound(struct Sprite * sprite);
|
||||
static void SpriteCB_GameLinkCableEnd_Inbound(struct Sprite * sprite);
|
||||
static void SpriteCB_TradeGBAScreen(struct Sprite * sprite);
|
||||
static void SpriteCB_TradeGlowCable(struct Sprite *sprite);
|
||||
static void SpriteCB_TradeGlowWireless(struct Sprite *sprite);
|
||||
static void SpriteCB_TradeGlowCore(struct Sprite *sprite);
|
||||
static void SpriteCB_GameLinkCableEnd_Outbound(struct Sprite *sprite);
|
||||
static void SpriteCB_GameLinkCableEnd_Inbound(struct Sprite *sprite);
|
||||
static void SpriteCB_TradeGBAScreen(struct Sprite *sprite);
|
||||
static void TradeAnimInit_LoadGfx(void);
|
||||
static void CB2_RunTradeAnim_InGameTrade(void);
|
||||
static void SetTradeSequenceBgGpuRegs(u8 idx);
|
||||
@@ -126,10 +126,10 @@ static void TradeBufferOTnameAndNicknames(void);
|
||||
static u8 DoTradeAnim(void);
|
||||
static u8 DoTradeAnim_Cable(void);
|
||||
static u8 DoTradeAnim_Wireless(void);
|
||||
static void SpriteCB_TradePokeball_Default(struct Sprite * sprite);
|
||||
static void SpriteCB_TradePokeball_Outbound(struct Sprite * sprite);
|
||||
static void SpriteCB_TradePokeball_Outbound2(struct Sprite * sprite);
|
||||
static void SpriteCB_TradePokeball_Inbound(struct Sprite * sprite);
|
||||
static void SpriteCB_TradePokeball_Default(struct Sprite *sprite);
|
||||
static void SpriteCB_TradePokeball_Outbound(struct Sprite *sprite);
|
||||
static void SpriteCB_TradePokeball_Outbound2(struct Sprite *sprite);
|
||||
static void SpriteCB_TradePokeball_Inbound(struct Sprite *sprite);
|
||||
static void BufferInGameTradeMonName(void);
|
||||
static void GetInGameTradeMail(struct Mail * mail, const struct InGameTrade * inGameTrade);
|
||||
static void CB2_RunTradeAnim_LinkTrade(void);
|
||||
@@ -591,7 +591,7 @@ static const u8 sWirelessSignalAnimParams[][2] = {
|
||||
};
|
||||
|
||||
// Sprite callback for link cable trade glow
|
||||
static void SpriteCB_TradeGlowCable(struct Sprite * sprite)
|
||||
static void SpriteCB_TradeGlowCable(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[0]++;
|
||||
if (sprite->data[0] == 10)
|
||||
@@ -602,7 +602,7 @@ static void SpriteCB_TradeGlowCable(struct Sprite * sprite)
|
||||
}
|
||||
|
||||
// Sprite callback for wireless trade glow
|
||||
static void SpriteCB_TradeGlowWireless(struct Sprite * sprite)
|
||||
static void SpriteCB_TradeGlowWireless(struct Sprite *sprite)
|
||||
{
|
||||
if (!sprite->invisible)
|
||||
{
|
||||
@@ -616,7 +616,7 @@ static void SpriteCB_TradeGlowWireless(struct Sprite * sprite)
|
||||
}
|
||||
|
||||
// Palette flash for trade glow core
|
||||
static void SpriteCB_TradeGlowCore(struct Sprite * sprite)
|
||||
static void SpriteCB_TradeGlowCore(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[1] == 0)
|
||||
{
|
||||
@@ -628,7 +628,7 @@ static void SpriteCB_TradeGlowCore(struct Sprite * sprite)
|
||||
}
|
||||
|
||||
// Move down for 10 frames
|
||||
static void SpriteCB_GameLinkCableEnd_Outbound(struct Sprite * sprite)
|
||||
static void SpriteCB_GameLinkCableEnd_Outbound(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[0]++;
|
||||
sprite->y2++;
|
||||
@@ -637,7 +637,7 @@ static void SpriteCB_GameLinkCableEnd_Outbound(struct Sprite * sprite)
|
||||
}
|
||||
|
||||
// Move up for 10 frames
|
||||
static void SpriteCB_GameLinkCableEnd_Inbound(struct Sprite * sprite)
|
||||
static void SpriteCB_GameLinkCableEnd_Inbound(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[0]++;
|
||||
sprite->y2--;
|
||||
@@ -646,7 +646,7 @@ static void SpriteCB_GameLinkCableEnd_Inbound(struct Sprite * sprite)
|
||||
}
|
||||
|
||||
// Play a sound every 15 frames
|
||||
static void SpriteCB_TradeGBAScreen(struct Sprite * sprite)
|
||||
static void SpriteCB_TradeGBAScreen(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[0]++;
|
||||
if (sprite->data[0] == 15)
|
||||
@@ -2326,7 +2326,7 @@ static void HandleLinkDataReceive(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCB_TradePokeball_Default(struct Sprite * sprite)
|
||||
static void SpriteCB_TradePokeball_Default(struct Sprite *sprite)
|
||||
{
|
||||
sprite->y += sprite->data[0] / 10;
|
||||
sprite->data[5] += sprite->data[1];
|
||||
@@ -2347,7 +2347,7 @@ static void SpriteCB_TradePokeball_Default(struct Sprite * sprite)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCB_TradePokeball_Outbound(struct Sprite * sprite)
|
||||
static void SpriteCB_TradePokeball_Outbound(struct Sprite *sprite)
|
||||
{
|
||||
sprite->y2 += sTradeBallVerticalVelocityTable[sprite->data[0]];
|
||||
if (sprite->data[0] == 22)
|
||||
@@ -2362,7 +2362,7 @@ static void SpriteCB_TradePokeball_Outbound(struct Sprite * sprite)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCB_TradePokeball_Outbound2(struct Sprite * sprite)
|
||||
static void SpriteCB_TradePokeball_Outbound2(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[1] == 20)
|
||||
StartSpriteAffineAnim(sprite, 1);
|
||||
@@ -2379,7 +2379,7 @@ static void SpriteCB_TradePokeball_Outbound2(struct Sprite * sprite)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCB_TradePokeball_Inbound(struct Sprite * sprite)
|
||||
static void SpriteCB_TradePokeball_Inbound(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[2] == 0)
|
||||
{
|
||||
|
||||
+1
-1
@@ -40,7 +40,7 @@ static bool8 TrainerSeeFunc_OffscreenAboveTrainerCreateCameraObj(u8 taskId, stru
|
||||
static bool8 TrainerSeeFunc_OffscreenAboveTrainerCameraObjMoveUp(u8 taskId, struct Task * task, struct ObjectEvent * trainerObj);
|
||||
static bool8 TrainerSeeFunc_OffscreenAboveTrainerCameraObjMoveDown(u8 taskId, struct Task * task, struct ObjectEvent * trainerObj);
|
||||
static void Task_DestroyTrainerApproachTask(u8 taskId);
|
||||
static void SpriteCB_TrainerIcons(struct Sprite * sprite);
|
||||
static void SpriteCB_TrainerIcons(struct Sprite *sprite);
|
||||
static void SetIconSpriteData(struct Sprite *sprite, u16 fldEffId, u8 spriteAnimNum);
|
||||
|
||||
static const u16 sGfx_Emoticons[] = INCBIN_U16("graphics/misc/emoticons.4bpp");
|
||||
|
||||
@@ -16,8 +16,8 @@ struct UnionRoomChat3
|
||||
|
||||
static EWRAM_DATA struct UnionRoomChat3 *sWork = NULL;
|
||||
|
||||
static void SpriteCB_TextEntryCursor(struct Sprite * sprite);
|
||||
static void SpriteCB_CharacterSelectCursor(struct Sprite * sprite);
|
||||
static void SpriteCB_TextEntryCursor(struct Sprite *sprite);
|
||||
static void SpriteCB_CharacterSelectCursor(struct Sprite *sprite);
|
||||
|
||||
static const u16 sUnionRoomChatInterfacePal[] = INCBIN_U16("graphics/union_room_chat/unk_845AC14.gbapal");
|
||||
static const u32 sSelectorCursorGfxTiles[] = INCBIN_U32("graphics/union_room_chat/unk_845AC34.4bpp.lz");
|
||||
|
||||
+8
-8
@@ -6,21 +6,21 @@
|
||||
#include "global.h"
|
||||
#include "huff.h"
|
||||
|
||||
static int cmp_tree(const void * a0, const void * b0) {
|
||||
static int cmp_tree(const void *a0, const void *b0) {
|
||||
return ((struct HuffData *)a0)->value - ((struct HuffData *)b0)->value;
|
||||
}
|
||||
|
||||
typedef int (*cmpfun)(const void *, const void *);
|
||||
|
||||
int msort_r(void * data, size_t count, size_t size, cmpfun cmp, void * buffer) {
|
||||
int msort_r(void *data, size_t count, size_t size, cmpfun cmp, void *buffer) {
|
||||
/*
|
||||
* Out-of-place mergesort (stable sort)
|
||||
* Returns 1 on success, 0 on failure
|
||||
*/
|
||||
void * leftPtr;
|
||||
void * rightPtr;
|
||||
void * leftEnd;
|
||||
void * rightEnd;
|
||||
void *leftPtr;
|
||||
void *rightPtr;
|
||||
void *leftEnd;
|
||||
void *rightEnd;
|
||||
int i;
|
||||
|
||||
switch (count) {
|
||||
@@ -85,8 +85,8 @@ int msort_r(void * data, size_t count, size_t size, cmpfun cmp, void * buffer) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
int msort(void * data, size_t count, size_t size, cmpfun cmp) {
|
||||
void * buffer = malloc(count * size);
|
||||
int msort(void *data, size_t count, size_t size, cmpfun cmp) {
|
||||
void *buffer = malloc(count * size);
|
||||
if (buffer == NULL) return 0;
|
||||
int result = msort_r(data, count, size, cmp, buffer);
|
||||
free(buffer);
|
||||
|
||||
Reference in New Issue
Block a user