Synced src/mon_markings.c and partly synced PSS

This commit is contained in:
Eduardo Quezada
2022-07-30 02:22:59 -04:00
parent 4a60396428
commit 60ce72fa5a
88 changed files with 1742 additions and 1590 deletions
+2 -2
View File
@@ -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);
+1 -1
View File
@@ -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
+2 -2
View File
@@ -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);
+3 -3
View File
@@ -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
+15 -15
View File
@@ -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
+1 -1
View File
@@ -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
View File
@@ -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[];
+1 -1
View File
@@ -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
View File
@@ -190,7 +190,7 @@ struct Link
struct BlockRequest
{
void * address;
void *address;
u32 size;
};
+1 -1
View File
@@ -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);
+3 -3
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
+1 -1
View File
@@ -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);
+1 -1
View File
@@ -4,7 +4,7 @@
struct PAM_TaskData
{
struct SubspriteTable subsprites;
void * buffer;
void *buffer;
u8 unk_0C;
u8 spr_id;
u16 tilesTag;
+2 -2
View File
@@ -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);
+2 -2
View File
@@ -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];
+1
View File
@@ -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);
+112 -105
View File
@@ -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
View File
@@ -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 -3
View File
@@ -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
+1 -1
View File
@@ -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)
+18 -18
View File
@@ -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;
+7 -7
View File
@@ -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);
+3 -3
View File
@@ -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
View File
@@ -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;
+1 -1
View File
@@ -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;
+6 -6
View File
@@ -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
View File
@@ -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;
+22 -22
View File
@@ -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
View File
@@ -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)
{
+4 -4
View File
@@ -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
View File
@@ -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)
{
+7 -7
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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++)
+3 -3
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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)
+3 -3
View File
@@ -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);
}
+3 -3
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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[];
+1 -1
View File
@@ -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
View File
@@ -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 = &image;
DestroySprite(sprite);
}
void SetPartyHPBarSprite(struct Sprite * sprite, u8 animNum)
void SetPartyHPBarSprite(struct Sprite *sprite, u8 animNum)
{
sprite->animNum = animNum;
sprite->animDelayCounter = 0;
+35 -35
View File
@@ -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
View File
@@ -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);
}
+77 -77
View File
@@ -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
View File
@@ -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
View File
@@ -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)
+8 -8
View File
@@ -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);
}
+12 -12
View File
@@ -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)
+9 -9
View File
@@ -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;
+19 -19
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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;
+1 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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");
+2 -2
View File
@@ -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
View File
@@ -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);