diff options
author | PikalaxALT <PikalaxALT@users.noreply.github.com> | 2019-10-31 09:31:33 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-31 09:31:33 -0400 |
commit | c6cd74fed25cbb6e2fa0296960fbcda795311b06 (patch) | |
tree | 05ae3de2bc0130040d48e800fe4e962f2a818aef /include | |
parent | 922411abebd56d0f5d6072bad4924c909c8e2c27 (diff) | |
parent | 2b0bcdcad9336defc82f50a329b12e631b1f33ce (diff) |
Merge pull request #120 from PikalaxALT/trade
Trade
Diffstat (limited to 'include')
-rw-r--r-- | include/berry_powder.h | 1 | ||||
-rw-r--r-- | include/constants/flags.h | 8 | ||||
-rw-r--r-- | include/constants/region_map.h | 2 | ||||
-rw-r--r-- | include/decompress.h | 2 | ||||
-rw-r--r-- | include/gba/defines.h | 1 | ||||
-rw-r--r-- | include/graphics.h | 8 | ||||
-rw-r--r-- | include/international_string_util.h | 25 | ||||
-rw-r--r-- | include/item.h | 2 | ||||
-rw-r--r-- | include/link.h | 8 | ||||
-rw-r--r-- | include/link_rfu.h | 2 | ||||
-rw-r--r-- | include/load_save.h | 4 | ||||
-rw-r--r-- | include/mevent.h | 1 | ||||
-rw-r--r-- | include/overworld.h | 3 | ||||
-rw-r--r-- | include/party_menu.h | 2 | ||||
-rw-r--r-- | include/pokeball.h | 2 | ||||
-rw-r--r-- | include/pokemon_icon.h | 11 | ||||
-rw-r--r-- | include/pokemon_storage_system.h | 1 | ||||
-rw-r--r-- | include/pokemon_summary_screen.h | 4 | ||||
-rw-r--r-- | include/quest_log.h | 1 | ||||
-rw-r--r-- | include/save_failed_screen.h | 6 | ||||
-rw-r--r-- | include/strings.h | 26 | ||||
-rw-r--r-- | include/trade.h | 5 | ||||
-rw-r--r-- | include/trade_scene.h | 17 | ||||
-rw-r--r-- | include/util.h | 3 |
24 files changed, 101 insertions, 44 deletions
diff --git a/include/berry_powder.h b/include/berry_powder.h index f0e77c44b..d944ae44d 100644 --- a/include/berry_powder.h +++ b/include/berry_powder.h @@ -3,5 +3,6 @@ u32 GetBerryPowder(void); void SetBerryPowder(u32 *powder, u32 amount); +void sub_815EE6C(u32 newKey); #endif //GUARD_BERRY_POWDER_H diff --git a/include/constants/flags.h b/include/constants/flags.h index 082e12f87..bd356064c 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -1,7 +1,7 @@ #ifndef GUARD_CONSTANTS_FLAGS_H #define GUARD_CONSTANTS_FLAGS_H -// TODO: Get correct names and numbers +#include "constants/trainers.h" #define FLAG_TEMP_1 0x001 #define FLAG_TEMP_2 0x002 @@ -1309,10 +1309,8 @@ #define FLAG_TRAINER_FLAG_START 0x500 -#define TRAINERS_FLAG_NO 0x2E7 // 743 -#define TRAINER_FLAGS_WORDS 0x300 - -#define SYS_FLAGS (FLAG_TRAINER_FLAG_START + TRAINER_FLAGS_WORDS) // 0x800 +// Vanilla: SYS_FLAGS = 0x800 +#define SYS_FLAGS (FLAG_TRAINER_FLAG_START + ((NUM_TRAINERS) + 31) / 32 * 32) // SYSTEM FLAGS diff --git a/include/constants/region_map.h b/include/constants/region_map.h index 527acf2c9..0957a72ee 100644 --- a/include/constants/region_map.h +++ b/include/constants/region_map.h @@ -200,4 +200,6 @@ #define MAPSEC_SPECIAL_AREA 0xC4 #define MAPSEC_NONE 0xC5 +#define MAPSEC_IN_GAME_TRADE 0xFE + #endif //GUARD_CONSTANTS_REGION_MAP_H diff --git a/include/decompress.h b/include/decompress.h index 03080fe48..3f3a02d7b 100644 --- a/include/decompress.h +++ b/include/decompress.h @@ -23,9 +23,7 @@ void DecompressPicFromTable_2(const struct CompressedSpriteSheet *src, void* buf void DecompressPicFromTable_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void* buffer, s32 species); void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality); -void HandleLoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality); void HandleLoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality); -void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality); void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic); void LoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic); diff --git a/include/gba/defines.h b/include/gba/defines.h index 65561f10a..8c92d7b64 100644 --- a/include/gba/defines.h +++ b/include/gba/defines.h @@ -76,6 +76,7 @@ #define RGB_BLACK RGB(0, 0, 0) #define RGB_WHITE RGB(31, 31, 31) +#define RGB_WHITEALPHA (0xFFFF) #define NAKED __attribute__((naked)) #define UNUSED __attribute__((unused)) diff --git a/include/graphics.h b/include/graphics.h index 638351be4..56a51e67c 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4214,4 +4214,12 @@ extern const u8 gMonIcon_Unown_ExclamationMark[]; extern const u8 gMonIcon_Unown_QuestionMark[]; extern const u8 gMonIcon_QuestionMark[]; +// trade +extern const u16 gTradeMenu_Pal[]; +extern const u16 gTradeButtons_Pal[]; +extern const u16 gTradeMenu_Gfx[]; +extern const u16 gUnknown_8E9E9FC[]; +extern const u16 gTradeButtons_Gfx[]; +extern const u16 gTradeMenuMonBox_Tilemap[]; + #endif //GUARD_GRAPHICS_H diff --git a/include/international_string_util.h b/include/international_string_util.h deleted file mode 100644 index 2b922676d..000000000 --- a/include/international_string_util.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef GUARD_INTERNATIONAL_STRING_UTIL_H -#define GUARD_INTERNATIONAL_STRING_UTIL_H - -#include "global.h" - -#include "menu.h" - -void sub_81DB52C(const u8 *src); -void TVShowConvertInternationalString(u8 *dest, const u8 *src, u8 language); -s32 GetStringCenterAlignXOffset(s32 fontId, const u8 *str, s32 totalWidth); -s32 GetStringRightAlignXOffset(s32 fontId, const u8 *str, s32 totalWidth); -s32 GetStringCenterAlignXOffsetWithLetterSpacing(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing); -s32 GetStringWidthDifference(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing); -s32 GetMaxWidthInMenuTable(const struct MenuAction *str, s32 arg1); -s32 sub_81DB3D8(const struct MenuAction *str, u8* arg1, s32 arg2); -// sub_81DB41C -// CopyMonCategoryText -// sub_81DB494 -// sub_81DB4DC -// sub_81DB554 -// sub_81DB5AC -u32 sub_81DB604(const u8 *); -// sub_81DB620 - -#endif // GUARD_INTERNATIONAL_STRING_UTIL_H diff --git a/include/item.h b/include/item.h index dd6271d13..ccc9cd3bb 100644 --- a/include/item.h +++ b/include/item.h @@ -72,10 +72,12 @@ u16 BagGetQuantityByPocketPosition(u8 pocketId, u16 itemId); bool8 itemid_is_unique(u16 itemId); void BagPocketCompaction(struct ItemSlot * slots, u8 capacity); u16 GetPcItemQuantity(u16 *); +void SetBagPocketsPointers(void); void ItemPcCompaction(void); void RemoveItemFromPC(u16 itemId, u16 quantity); void SortAndCompactBagPocket(struct BagPocket * pocket); u8 CountItemsInPC(void); +void ApplyNewEncryptionKeyToBagItems_(u32 newKey); #endif // GUARD_ITEM_H diff --git a/include/link.h b/include/link.h index 7c4b871de..9465f0404 100644 --- a/include/link.h +++ b/include/link.h @@ -181,7 +181,7 @@ extern u32 gLinkStatus; extern u16 gBlockRecvBuffer[MAX_RFU_PLAYERS][BLOCK_BUFFER_SIZE / 2]; extern u16 gSendCmd[CMD_LENGTH]; extern u8 gShouldAdvanceLinkState; -extern struct LinkPlayer gLinkPlayers[]; +extern struct LinkPlayer gLinkPlayers[MAX_RFU_PLAYERS]; extern u16 word_3002910[]; extern bool8 gReceivedRemoteLinkPlayers; extern bool8 gLinkVSyncDisabled; @@ -212,6 +212,7 @@ u8 GetBlockReceivedStatus(void); void ResetBlockReceivedFlags(void); void ResetBlockReceivedFlag(u8); void SetLinkDebugValues(u32, u32); +u8 GetSavedPlayerCount(void); u8 GetLinkPlayerCount_2(void); bool8 IsLinkMaster(void); void CB2_LinkError(void); @@ -232,10 +233,10 @@ bool8 sub_800A520(void); bool8 sub_8010500(void); void sub_800DFB4(u8, u8); void sub_800AB9C(void); -void sub_800B488(void); +void sub_800B1F4(void); void sub_8009734(void); void sub_800A620(void); -void sub_8011BD0(void); +void sub_80FBB4C(void); u8 sub_800ABAC(void); u8 sub_800ABBC(void); void sub_800AAC0(void); @@ -257,5 +258,6 @@ void ClearLinkCallback_2(void); void sub_80FA42C(void); void sub_800B284(struct LinkPlayer * linkPlayer); bool8 IsWirelessAdapterConnected(void); +bool8 sub_800A474(u8 a0); #endif // GUARD_LINK_H diff --git a/include/link_rfu.h b/include/link_rfu.h index f5aa682e6..6e6e5f7a3 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -39,6 +39,8 @@ bool32 sub_80FAEF0(void); bool32 IsRfuRecvQueueEmpty(void); u32 GetRfuRecvQueueLength(void); void sub_80F8DC0(void); +void sub_80FBB20(void); +bool8 sub_80FA484(bool32 a0); void var_800D_set_xB(void); #endif //GUARD_LINK_RFU_H diff --git a/include/load_save.h b/include/load_save.h index 2406b5f03..6162c30b9 100644 --- a/include/load_save.h +++ b/include/load_save.h @@ -26,7 +26,7 @@ void ApplyNewEncryptionKeyToAllEncryptedData(u32 encryptionKey); void ApplyNewEncryptionKeyToBagItems(u32 encryptionKey); void ApplyNewEncryptionKeyToWord(u32 * word, u32 encryptionKey); void ApplyNewEncryptionKeyToHword(u16 * hword, u32 encryptionKey); -void sav2_gender2_inplace_and_xFE(void); -void sub_804C1C0(void); +void ClearContinueGameWarpStatus2(void); +void SetContinueGameWarpStatusToDynamicWarp(void); #endif // GUARD_LOAD_SAVE_H diff --git a/include/mevent.h b/include/mevent.h index 98d184f60..6b67aa27c 100644 --- a/include/mevent.h +++ b/include/mevent.h @@ -68,5 +68,6 @@ bool32 WonderCard_Test_Unk_08_6(void); u32 MENews_GetInput(u16 input); void sub_8143D24(void); u16 sub_81445C0(u32 command); +void sub_8144714(u32 a0, u32 a1); #endif //GUARD_MEVENT_H diff --git a/include/overworld.h b/include/overworld.h index 805ddc8a0..36c890eb5 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -142,5 +142,8 @@ bool32 sub_8058318(void); void CB2_ReturnToStartMenu(void); void CB2_WhiteOut(void); +void c2_8056854(void); +void sub_8054F38(u32 newKey); +void sub_8055778(int); #endif //GUARD_OVERWORLD_H diff --git a/include/party_menu.h b/include/party_menu.h index 53731bee6..c07371a5d 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -82,9 +82,11 @@ void OpenPartyMenuInBattle(u8 arg); void sub_8127EC4(u8 battlerId, u8 unk, u8 arrayIndex); bool8 IsMultiBattle(void); void sub_8126EDC(void); +void sub_812256C(u8 *partyCount, u8 (*icons)[6], u8 side); void PartyMenuInit_FromPlayerPc(void); void CB2_PartyMenuFromStartMenu(void); void sub_8128198(void); void sub_8127FF4(u8 slot, u8 slot2); +void LoadHeldItemIcons(void); #endif // GUARD_PARTY_MENU_H diff --git a/include/pokeball.h b/include/pokeball.h index ee0478eab..884ded22e 100644 --- a/include/pokeball.h +++ b/include/pokeball.h @@ -25,7 +25,7 @@ enum u8 DoPokeballSendOutAnimation(s16 pan, u8 kindOfThrow); void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 bank, u8 x, u8 y, u8 oamPriority, u8 subpriortiy, u8 g, u32 h); -u8 sub_804BB98(u8 monSpriteId, u8 bank, u8 x, u8 y, u8 oamPriority, u8 subpriortiy, u8 g, u32 h); +u8 CreateTradePokeballSprite(u8 monSpriteId, u8 bank, u8 x, u8 y, u8 oamPriority, u8 subpriortiy, u8 g, u32 h); u8 sub_807671C(u8 a, u8 b, u8 x, u8 y, u8 oamPriority, u8 subPriority, u8 g, u32 h); void sub_8076918(u8 bank); void DoHitAnimHealthboxEffect(u8 bank); diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h index 52d374041..cfc3c18f0 100644 --- a/include/pokemon_icon.h +++ b/include/pokemon_icon.h @@ -8,17 +8,20 @@ const u8 *GetMonIconTiles(u16 iconSpecies, bool32 extra); const u16 *GetValidMonIconPalettePtr(u16 speciesId); u16 sub_80D2E84(u16 speciesId); void sub_80D2F68(u16 iconId); -u8 sub_80D2D78(u16 iconId, void callback(struct Sprite *), u16 x, u16 y, u16 a4, u8 a5); +u8 sub_80D2D78(u16 iconId, SpriteCallback callback, u16 x, u16 y, u16 a4, u8 a5); void sub_80D2FF0(u16 iconId); -void sub_80D2EF8(struct Sprite *sprite); +void sub_80D2EF8(struct Sprite * sprite); void LoadMonIconPalettes(void); void FreeMonIconPalettes(void); u16 MailSpeciesToIconSpecies(u16); -u8 CreateMonIcon_HandleDeoxys(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, bool32 extra); +u8 CreateMonIcon_HandleDeoxys(u16 species, SpriteCallback callback, s16 x, s16 y, u8 subpriority, bool32 extra); void DestroyMonIcon(struct Sprite *); u16 GetUnownLetterByPersonality(u32 personality); -u8 UpdateMonIconFrame(struct Sprite *sprite); +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); void LoadMonIconPalette(u16 iconId); void FreeMonIconPalette(u16 iconId); +void MonIcon_SetAnim(struct Sprite * sprite, u8 animNum); #endif // GUARD_POKEMON_ICON_H diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 6790fb775..81f50e1e9 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -16,5 +16,6 @@ u8 * GetBoxNamePtr(u8 boxId); void sub_808CE60(void); void ResetPokemonStorageSystem(void); u8 StorageGetCurrentBox(void); +void PSS_RenderTextToVramViaBuffer(const u8 *name, u8 *a1, u8 a2, u8 a3, u8 *buffer, u8 a5); #endif // GUARD_POKEMON_STORAGE_SYSTEM_H diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h index 7b250b647..b800e3d30 100644 --- a/include/pokemon_summary_screen.h +++ b/include/pokemon_summary_screen.h @@ -8,7 +8,6 @@ extern u8 gLastViewedMonIndex; extern const u8 *const gMoveDescriptionPointers[]; extern const u8 *const gNatureNamePointers[]; -void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void)); void ShowSelectMovePokemonSummaryScreen(struct Pokemon *, u8, u8, MainCallback, u16); void ShowPokemonSummaryScreenSet40EF(u8 mode, struct BoxPokemon *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void)); u8 sub_8138B2C(void); @@ -33,4 +32,7 @@ enum PokemonSummaryScreenPage PSS_PAGE_CONTEST_MOVES, }; +s32 sub_8138B20(void); +void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, void (*callback)(void), u8 a4); + #endif // GUARD_POKEMON_SUMMARY_SCREEN_H diff --git a/include/quest_log.h b/include/quest_log.h index 8165486ce..3f6c94de5 100644 --- a/include/quest_log.h +++ b/include/quest_log.h @@ -46,6 +46,7 @@ void sub_811231C(void); void sub_81139BC(void); void *QuestLogGetFlagOrVarPtr(bool8 isFlag, u16 idx); void QuestLogSetFlagOrVar(bool8 isFlag, u16 idx, u16 value); +void sub_8110840(void *oldSave); extern u8 gUnknown_203ADFA; diff --git a/include/save_failed_screen.h b/include/save_failed_screen.h new file mode 100644 index 000000000..feffa2014 --- /dev/null +++ b/include/save_failed_screen.h @@ -0,0 +1,6 @@ +#ifndef GUARD_SAVE_FAILED_SCREEN_H +#define GUARD_SAVE_FAILED_SCREEN_H + +extern void DoSaveFailedScreen(u8 saveType); // save_failed_screen + +#endif //GUARD_SAVE_FAILED_SCREEN_H diff --git a/include/strings.h b/include/strings.h index 9304b225d..7231755c5 100644 --- a/include/strings.h +++ b/include/strings.h @@ -660,4 +660,30 @@ extern const u8 gText_FiveIsland[]; extern const u8 gText_SixIsland[]; extern const u8 gText_SevenIsland[]; +// trade +extern const u8 gUnknown_841E0A5[]; +extern const u8 gText_XWillBeSentToY[]; +extern const u8 gText_ByeByeVar1[]; +extern const u8 gText_XSentOverY[]; +extern const u8 gText_TakeGoodCareOfX[]; +extern const u8 gUnknown_841E325[]; +extern const u8 gTradeText_Cancel[]; +extern const u8 gTradeText_ChooseAPokemon[]; +extern const u8 gTradeText_Summary[]; +extern const u8 gTradeText_Trade[]; +extern const u8 gTradeText_CancelTrade[]; +extern const u8 gTradeText_PressBButtonToExit[]; +extern const u8 gUnknown_841E10A[]; +extern const u8 gUnknown_841E112[]; +extern const u8 gUnknown_841E118[]; +extern const u8 gUnknown_841E145[]; +extern const u8 gUnknown_841E16B[]; +extern const u8 gUnknown_8417094[]; +extern const u8 gUnknown_841E199[]; +extern const u8 gUnknown_841E1C5[]; +extern const u8 gUnknown_84170BC[]; +extern const u8 gUnknown_84170E0[]; +extern const u8 gUnknown_84170FC[]; +extern const u8 gUnknown_841E09F[]; + #endif //GUARD_STRINGS_H diff --git a/include/trade.h b/include/trade.h index 02ed7d8c4..257357053 100644 --- a/include/trade.h +++ b/include/trade.h @@ -1,6 +1,11 @@ #ifndef GUARD_TRADE_H #define GUARD_TRADE_H +extern struct MailStruct gLinkPartnerMail[6]; +extern u8 gSelectedTradeMonPositions[2]; + +extern const u16 gUnknown_826601C[]; +void CB2_ReturnFromLinkTrade(void); s32 sub_804FB34(void); #endif //GUARD_TRADE_H diff --git a/include/trade_scene.h b/include/trade_scene.h new file mode 100644 index 000000000..13cb1a56c --- /dev/null +++ b/include/trade_scene.h @@ -0,0 +1,17 @@ +#ifndef GUARD_TRADE_SCENE_H +#define GUARD_TRADE_SCENE_H + +void CB2_InitTradeAnim_LinkTrade(void); +void CreateInGameTradePokemon(void); +void DoInGameTradeScene(void); +void DrawTextOnTradeWindow(u8 windowId, const u8 *str, s8 speed); +u16 GetInGameTradeSpeciesInfo(void); +u16 GetTradeSpecies(void); +void sub_805049C(void); +void sub_80504B0(void); +void LoadTradeAnimGfx(void); + +extern const u16 gUnknown_826601C[]; +extern const struct WindowTemplate gUnknown_826D1CC; + +#endif //GUARD_TRADE_SCENE_H diff --git a/include/util.h b/include/util.h index 3884ab21c..ef1c15faa 100644 --- a/include/util.h +++ b/include/util.h @@ -14,7 +14,8 @@ void LoadWordFromTwoHalfwords(u16 *, u32 *); int CountTrailingZeroBits(u32 value); u16 CalcCRC16(const u8 *data, u32 length); u16 CalcCRC16WithTable(const u8 *data, u32 length); -u32 CalcByteArraySum(const u8* data, u32 length); +u32 CalcByteArraySum(const u8 *data, u32 length); void BlendPalette(u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor); +void DoBgAffineSet(struct BgAffineDstData * dest, u32 texX, u32 texY, s16 srcX, s16 srcY, s16 sx, s16 sy, u16 alpha); #endif // GUARD_UTIL_H |