diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/constants/flags.h | 3 | ||||
-rw-r--r-- | include/dynamic_placeholder_text_util.h | 12 | ||||
-rw-r--r-- | include/event_scripts.h | 5 | ||||
-rw-r--r-- | include/field_poison.h | 10 | ||||
-rw-r--r-- | include/field_screen_effect.h | 1 | ||||
-rw-r--r-- | include/graphics.h | 19 | ||||
-rw-r--r-- | include/list_menu.h | 52 | ||||
-rw-r--r-- | include/menu.h | 7 | ||||
-rw-r--r-- | include/menu_indicators.h | 24 | ||||
-rw-r--r-- | include/overworld.h | 7 | ||||
-rw-r--r-- | include/pokemon.h | 4 | ||||
-rw-r--r-- | include/safari_zone.h | 4 | ||||
-rw-r--r-- | include/shop.h | 11 | ||||
-rw-r--r-- | include/sprite.h | 28 | ||||
-rw-r--r-- | include/strings.h | 1 | ||||
-rw-r--r-- | include/task.h | 1 | ||||
-rw-r--r-- | include/unk_text_util.h | 11 |
17 files changed, 129 insertions, 71 deletions
diff --git a/include/constants/flags.h b/include/constants/flags.h index 209e68aee..de9a98b43 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -2,6 +2,7 @@ #define GUARD_CONSTANTS_FLAGS_H // Sys Flags Maybe +#define FLAG_SYS_SAFARI_MODE 0x800 #define FLAG_WHITE_FLUTE_ACTIVE 0x803 #define FLAG_BLACK_FLUTE_ACTIVE 0x804 @@ -1436,7 +1437,7 @@ #define FLAG_SYS_USE_STRENGTH (CODE_FLAGS + 0x29) #define FLAG_SYS_WEATHER_CTRL (CODE_FLAGS + 0x2A) #define FLAG_SYS_CYCLING_ROAD (CODE_FLAGS + 0x2B) -#define FLAG_SYS_SAFARI_MODE (CODE_FLAGS + 0x2C) +#define FLAG_0x88C (CODE_FLAGS + 0x2C) #define FLAG_SYS_CRUISE_MODE (CODE_FLAGS + 0x2D) #define FLAG_0x88E (CODE_FLAGS + 0x2E) diff --git a/include/dynamic_placeholder_text_util.h b/include/dynamic_placeholder_text_util.h new file mode 100644 index 000000000..31cfe8d30 --- /dev/null +++ b/include/dynamic_placeholder_text_util.h @@ -0,0 +1,12 @@ +#ifndef GUARD_UNK_TEXT_UTIL_H +#define GUARD_UNK_TEXT_UTIL_H + +#include "global.h" + +void DynamicPlaceholderTextUtil_Reset(void); +void DynamicPlaceholderTextUtil_SetPlaceholderPtr(u8 idx, const u8 *ptr); +u8 *DynamicPlaceholderTextUtil_ExpandPlaceholders(u8 *dest, const u8 *src); +const u8 *DynamicPlaceholderTextUtil_GetPlaceholderPtr(u8 idx); +u8 GetColorFromTextColorTable(u16 graphicId); + +#endif //GUARD_UNK_TEXT_UTIL_H diff --git a/include/event_scripts.h b/include/event_scripts.h index 917269de4..91612c06b 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -1148,4 +1148,9 @@ extern const u8 EventScript_FldEffStrength[]; extern const u8 EventScript_FailSweetScent[]; extern const u8 EventScript_FldEffRockSmash[]; +extern const u8 EventScript_SafariTimesUp[]; +extern const u8 EventScript_SafariRetire[]; +extern const u8 EventScript_SafariWarpOut[]; +extern const u8 EventScript_SafariOutOfBalls[]; + #endif //GUARD_EVENT_SCRIPTS_H diff --git a/include/field_poison.h b/include/field_poison.h index fcfb71cf5..4887fa27a 100644 --- a/include/field_poison.h +++ b/include/field_poison.h @@ -3,19 +3,13 @@ #include "global.h" -// Exported type declarations - -// Exported RAM declarations - -// Exported ROM declarations - enum { FLDPSN_NONE, FLDPSN_PSN, FLDPSN_FNT }; -void sub_80F972C(void); -unsigned int overworld_poison(void); +void ExecuteWhiteOut(void); +s32 DoPoisonFieldEffect(void); #endif //GUARD_FIELD_POISON_H diff --git a/include/field_screen_effect.h b/include/field_screen_effect.h index 14d7e5d81..d1fde7eac 100644 --- a/include/field_screen_effect.h +++ b/include/field_screen_effect.h @@ -6,5 +6,6 @@ void sub_80AF79C(void); void sub_807F028(u8); void sub_80B0244(void); +void sub_807E3EC(void); #endif // GUARD_FIELD_SCREEN_EFFECT_H diff --git a/include/graphics.h b/include/graphics.h index 1b2913164..e8503609e 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -32,6 +32,9 @@ extern const u8 gInterfacePal_LuxuryBall[]; extern const u8 gInterfaceGfx_PremierBall[]; extern const u8 gInterfacePal_PremierBall[]; extern const u8 gOpenPokeballGfx[]; +extern const u8 gFireRedMenuElements_Gfx[]; +extern const u16 gFireRedMenuElements1_Pal[]; +extern const u16 gFireRedMenuElements2_Pal[]; extern const u8 gItemIcon_QuestionMark[]; extern const u8 gItemIconPalette_QuestionMark[]; @@ -202,11 +205,11 @@ extern const u8 gItemPcBgPals[]; extern const u8 gItemPcTilemap[]; // item_menu_icons -extern const u8 gUnknown_8E8362C[]; -extern const u8 gUnknown_8E83DBC[]; -extern const u8 gUnknown_8E84560[]; -extern const u8 gFile_graphics_interface_bag_swap_sheet[]; -extern const u8 gFile_graphics_interface_bag_swap_palette[]; +extern const u32 gUnknown_8E8362C[]; +extern const u32 gUnknown_8E83DBC[]; +extern const u32 gUnknown_8E84560[]; +extern const u32 gFile_graphics_interface_bag_swap_sheet[]; +extern const u32 gFile_graphics_interface_bag_swap_palette[]; extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; extern const u8 gFile_graphics_items_icons_master_ball_sheet[]; @@ -266,12 +269,10 @@ 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_icons_powder_sheet[]; +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[]; -extern const u8 gFile_graphics_items_icons_powder_sheet[]; extern const u8 gFile_graphics_items_icon_palettes_heal_powder_palette[]; extern const u8 gFile_graphics_items_icons_revival_herb_sheet[]; extern const u8 gFile_graphics_items_icon_palettes_revival_herb_palette[]; @@ -299,7 +300,7 @@ extern const u8 gFile_graphics_items_icons_berry_juice_sheet[]; extern const u8 gFile_graphics_items_icon_palettes_berry_juice_palette[]; extern const u8 gFile_graphics_items_icons_sacred_ash_sheet[]; extern const u8 gFile_graphics_items_icon_palettes_sacred_ash_palette[]; -extern const u8 gFile_graphics_items_icons_powder_sheet[]; +extern const u32 gFile_graphics_items_icons_powder_sheet[]; extern const u8 gFile_graphics_items_icon_palettes_shoal_salt_palette[]; extern const u8 gFile_graphics_items_icons_shoal_shell_sheet[]; extern const u8 gFile_graphics_items_icon_palettes_shell_palette[]; diff --git a/include/list_menu.h b/include/list_menu.h index 290b1d925..df53bb529 100644 --- a/include/list_menu.h +++ b/include/list_menu.h @@ -4,9 +4,21 @@ #include "global.h" #include "window.h" -// Exported type declarations +#define LIST_NOTHING_CHOSEN -1 +#define LIST_CANCEL -2 +#define LIST_HEADER -3 -// Exported RAM declarations +#define LIST_NO_MULTIPLE_SCROLL 0 +#define LIST_MULTIPLE_SCROLL_DPAD 1 +#define LIST_MULTIPLE_SCROLL_L_R 2 + +enum +{ + SCROLL_ARROW_LEFT, + SCROLL_ARROW_RIGHT, + SCROLL_ARROW_UP, + SCROLL_ARROW_DOWN, +}; struct ListMenuItem { @@ -38,8 +50,9 @@ struct ListMenuTemplate u8 cursorKind:2; // x40, x80 }; -struct ListMenu { - struct ListMenuTemplate _template; +struct ListMenu +{ + struct ListMenuTemplate template; u16 scrollOffset; u16 selectedRow; u8 unk_1C; @@ -48,20 +61,27 @@ struct ListMenu { u8 unk_1F; }; -extern struct ListMenuTemplate gUnknown_03006310; -extern struct ListMenuTemplate gMultiuseListMenuTemplate; +struct ListMenuWindowRect +{ + u8 x; + u8 y; + u8 width; + u8 height; + u8 palNum; +}; -// Exported ROM declarations +extern struct ListMenuTemplate gMultiuseListMenuTemplate; -u8 ListMenuInit(struct ListMenuTemplate *template, u16 a1, u16 a2); -s32 ListMenuHandleInput(u8 id); -void ListMenuGetScrollAndRow(u8 a0, u16 *a1, u16 *a2); -void sub_81AE6C8(u8 a0, u16 *a1, u16 *a2); -void DestroyListMenu(u8, u16 *, u16 *); -u16 ListMenuGetYCoordForPrintingArrowCursor(u8); -void sub_8107D38(u8, u8); s32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const struct ListMenuTemplate *listMenuTemplate, u8 arg2, u16 tileNum, u16 palNum); -void ListMenuDefaultCursorMoveFunc(s32, u8, struct ListMenu *); -void sub_8107BD0(u8 taskId, u8 attr, s32 value); +u8 ListMenuInit(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow); +u8 ListMenuInitInRect(struct ListMenuTemplate *listMenuTemplate, struct ListMenuWindowRect *rect, u16 scrollOffset, u16 selectedRow); +s32 ListMenu_ProcessInput(u8 listTaskId); +void DestroyListMenuTask(u8 listTaskId, u16 *scrollOffset, u16 *selectedRow); +void RedrawListMenu(u8 listTaskId); +void ListMenuGetScrollAndRow(u8 listTaskId, u16 *scrollOffset, u16 *selectedRow); +u16 ListMenuGetYCoordForPrintingArrowCursor(u8 listTaskId); +void ListMenuOverrideSetColors(u8 cursorPal, u8 fillValue, u8 cursorShadowPal); +void ListMenuDefaultCursorMoveFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list); +void ListMenuSetUnkIndicatorsStructField(u8 taskId, u8 field, s32 value); #endif //GUARD_LIST_MENU_H diff --git a/include/menu.h b/include/menu.h index 3231587de..19efc3ad9 100644 --- a/include/menu.h +++ b/include/menu.h @@ -27,12 +27,10 @@ void InitMenuInUpperLeftCornerPlaySoundWhenAPressed(u8 idx, u8 nstrs,u8); u8 GetMenuCursorPos(void); s8 ProcessMenuInput(void); s8 ProcessMenuInputNoWrapAround(void); -void blit_move_info_icon(u8 winId, u8 a2, u16 x, u16 y); void ResetTempTileDataBuffers(void); void *DecompressAndCopyTileDataToVram(u8 bg_id, const void *src, u32 size, u16 offset, u8 mode); bool8 FreeTempTileDataBuffersIfPossible(void); u64 sub_8198A50(struct WindowTemplate*, u8, u8, u8, u8, u8, u8, u16); // returns something but it isn't used, fix when menu.s is decomp'd -//void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos); s8 Menu_ProcessInputNoWrapClearOnChoose(void); void DoScheduledBgTilemapCopiesToVram(void); void ClearScheduledBgCopiesToVram(void); @@ -54,4 +52,9 @@ void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 l void ClearMenuWindow_BorderThickness2(u8 windowId, u8 a1); void PrintTextArray(u8, u8, u8, u8, u8, u8, const struct MenuAction *); +void sub_8107CD8(u8 palOffset, u16 speciesId); +void sub_8107CF8(u8 windowId, u16 speciesId, u32 personality, u16 x, u16 y); +void sub_8107D38(u8, u8); +void BlitMoveInfoIcon(u8 windowId, u8 iconId, u16 x, u16 y); + #endif // GUARD_MENU_H diff --git a/include/menu_indicators.h b/include/menu_indicators.h index 76f25224c..fbcee2590 100644 --- a/include/menu_indicators.h +++ b/include/menu_indicators.h @@ -3,10 +3,6 @@ #include "global.h" -// Exported type declarations - -// Exported RAM declarations - struct ScrollArrowsTemplate { u8 firstArrowType; @@ -22,9 +18,25 @@ struct ScrollArrowsTemplate u8 palNum; }; -// Exported ROM declarations -u8 AddScrollIndicatorArrowPairParameterized(u8, u8, u8, u8, s32, u16, u16, u16 *); +struct CursorStruct +{ + u8 left; + u8 top; + u16 rowWidth; + u16 rowHeight; + u16 tileTag; + u16 palTag; + u8 palNum; +}; + +u8 AddScrollIndicatorArrowPairParameterized(u32 arrowType, s32 commonPos, s32 firstPos, s32 secondPos, s32 fullyDownThreshold, s32 tileTag, s32 palTag, u16 *scrollOffset); u8 AddScrollIndicatorArrowPair(const struct ScrollArrowsTemplate * template, u16 * a1); void RemoveScrollIndicatorArrowPair(u8); +u8 ListMenuAddCursorObjectInternal(struct CursorStruct *cursor, u32 cursorKind); +u8 ListMenuAddRedOutlineCursorObject(struct CursorStruct *cursor); +void ListMenuUpdateRedOutlineCursorObject(u8 taskId, u16 x, u16 y); +void ListMenuRemoveRedOutlineCursorObject(u8 taskId); +void ListMenuRemoveCursorObject(u8 taskId, u32 cursorKind); +void ListMenuUpdateCursorObject(u8 taskId, u16 x, u16 y, u32 cursorKind); #endif //GUARD_MENU_INDICATORS_H diff --git a/include/overworld.h b/include/overworld.h index 4c6f3de8b..799389353 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -2,7 +2,6 @@ #define GUARD_ROM4_H #include "global.h" - #include "main.h" struct UnkPlayerStruct @@ -69,8 +68,8 @@ void FieldObjectMoveDestCoords(struct MapObject *, u32, s16 *, s16 *); void sub_8086230(void); void CB2_ReturnToField(void); bool32 sub_8087598(void); -void c2_exit_to_overworld_1_continue_scripts_restart_music(void); -void warp_in(void); +void CB2_ReturnToFieldContinueScriptPlayMapMusic(void); +void WarpIntoMap(void); u8 get_map_light_level_by_bank_and_number(s8 mapGroup, s8 mapNum); void sub_8086194(void); void sub_8084CCC(u8 spawn); @@ -111,7 +110,7 @@ bool8 Overworld_MapTypeAllowsTeleportAndFly(u8 mapType); void Overworld_ResetStateAfterTeleport(void); void Overworld_FadeOutMapMusic(void); -void sub_805671C(void); +void CB2_LoadMap(void); bool8 sub_8055FC4(void); bool8 is_light_level_8_or_9(u8 mapType); bool32 sub_8055C9C(void); diff --git a/include/pokemon.h b/include/pokemon.h index ed0108159..558eedc67 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -625,8 +625,8 @@ u32 CanMonLearnTMHM(struct Pokemon *, u8); u32 CanSpeciesLearnTMHM(u16 species, u8 tm); u8 GetMoveRelearnerMoves(struct Pokemon *mon, u16 *moves); void ClearBattleMonForms(void); -const u8 *GetMonFrontSpritePal(struct Pokemon *mon); -const u8 *GetFrontSpritePalFromSpeciesAndPersonality(u16, u32, u32); +const u32 *GetMonFrontSpritePal(struct Pokemon *mon); +const u32 *GetFrontSpritePalFromSpeciesAndPersonality(u16, u32, u32); const struct CompressedSpritePalette *sub_80409C8(u16, u32, u32); bool8 IsOtherTrainer(u32, u8 *); void SetWildMonHeldItem(void); diff --git a/include/safari_zone.h b/include/safari_zone.h index b20555a8c..feaa93ed0 100644 --- a/include/safari_zone.h +++ b/include/safari_zone.h @@ -4,6 +4,7 @@ #include "global.h" extern u8 gNumSafariBalls; +extern u16 gSafariZoneStepCounter; bool32 GetSafariZoneFlag(void); void SetSafariZoneFlag(void); @@ -15,7 +16,4 @@ void ExitSafariMode(void); bool8 SafariZoneTakeStep(void); void SafariZoneRetirePrompt(void); -struct Pokeblock *SafariZoneGetActivePokeblock(void); -void SafariZoneActivatePokeblockFeeder(u8 pokeblock_index); - #endif // GUARD_SAFARI_ZONE_H diff --git a/include/shop.h b/include/shop.h index 05f5160e6..481fd6c76 100644 --- a/include/shop.h +++ b/include/shop.h @@ -2,6 +2,7 @@ #define GUARD_SHOP_H #include "global.h" +#include "menu_helpers.h" extern EWRAM_DATA struct ItemSlot gUnknown_02039F80[3]; @@ -9,5 +10,15 @@ void CreatePokemartMenu(const u16 *); void CreateDecorationShop1Menu(const u16 *); void CreateDecorationShop2Menu(const u16 *); void sub_809C09C(u16, u16, u8); +u8 sub_809B56C(void); + +// buy_menu_helper +void BuyMenuInitWindows(bool32 isSellingTM); +void BuyMenuDrawMoneyBox(void); +void BuyMenuPrint(u8 windowId, u8 font, const u8 *text, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, s8 speed, u8 color); +void BuyMenuDisplayMessage(u8 taskId, const u8 *text, TaskFunc callback); +void BuyMenuQuantityBoxNormalBorder(u8 windowId, bool8 copyToVram); +void BuyMenuQuantityBoxThinBorder(u8 windowId, bool8 copyToVram); +void BuyMenuConfirmPurchase(u8 taskId, const struct YesNoFuncTable *yesNo); #endif // GUARD_SHOP_H diff --git a/include/sprite.h b/include/sprite.h index 5fa85ee21..27e5dc852 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -4,28 +4,30 @@ #include "global.h" #define MAX_SPRITES 64 +#define SPRITE_INVALID_TAG 0xFFFF struct SpriteSheet { - const u8 *data; // Raw uncompressed pixel data + const void *data; // Raw uncompressed pixel data u16 size; u16 tag; }; struct CompressedSpriteSheet { - const u8 *data; // LZ77 compressed pixel data + const u32 *data; // LZ77 compressed pixel data u16 size; // Uncompressed size of pixel data u16 tag; }; struct SpriteFrameImage { - const u8 *data; + const void *data; u16 size; }; #define obj_frame_tiles(ptr) {.data = (u8 *)ptr, .size = sizeof ptr} +#define overworld_frame(ptr, width, height, frame) {.data = (u8 *)ptr + (width * height * frame * 64)/2, .size = (width * height * 64)/2} struct SpritePalette { @@ -35,7 +37,7 @@ struct SpritePalette struct CompressedSpritePalette { - const u8 *data; // LZ77 compressed palette data + const u32 *data; // LZ77 compressed palette data u16 tag; }; @@ -102,6 +104,12 @@ struct AffineAnimJumpCmd u16 target; }; +struct AffineAnimEndCmdAlt +{ + s16 type; + u16 val; +}; + union AffineAnimCmd { s16 type; @@ -126,6 +134,8 @@ union AffineAnimCmd {.loop = {.type = AFFINEANIMCMDTYPE_LOOP, .count = _count}} #define AFFINEANIMCMD_JUMP(_target) \ {.jump = {.type = AFFINEANIMCMDTYPE_JUMP, .target = _target}} +#define AFFINEANIMCMD_END_ALT(_val) \ + {.end = {.type = AFFINEANIMCMDTYPE_END, .val = _val}} struct AffineAnimState { @@ -163,6 +173,8 @@ struct SubspriteTable struct Sprite; +typedef void (*SpriteCallback)(struct Sprite *); + struct SpriteTemplate { u16 tileTag; @@ -171,7 +183,7 @@ struct SpriteTemplate const union AnimCmd *const *anims; const struct SpriteFrameImage *images; const union AffineAnimCmd *const *affineAnims; - void (*callback)(struct Sprite *); + SpriteCallback callback; }; struct Sprite @@ -182,7 +194,7 @@ struct Sprite /*0x10*/ const union AffineAnimCmd *const *affineAnims; /*0x14*/ const struct SpriteTemplate *template; /*0x18*/ const struct SubspriteTable *subspriteTables; - /*0x1C*/ void (*callback)(struct Sprite *); + /*0x1C*/ SpriteCallback callback; /*0x20*/ struct Coords16 pos1; /*0x24*/ struct Coords16 pos2; @@ -232,14 +244,12 @@ struct OamMatrix s16 d; }; -typedef void (*SpriteCallback)(struct Sprite *); - extern const struct OamData gDummyOamData; extern const union AnimCmd *const gDummySpriteAnimTable[]; extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[]; extern s16 gSpriteCoordOffsetX; extern s16 gSpriteCoordOffsetY; - +extern const struct SpriteTemplate gDummySpriteTemplate; extern struct Sprite gSprites[]; void ResetSpriteData(void); diff --git a/include/strings.h b/include/strings.h index 1aa858e82..55c178b0d 100644 --- a/include/strings.h +++ b/include/strings.h @@ -91,6 +91,7 @@ extern const u8 gText_PkmnFainted3[]; extern const u8 gText_Coins[]; extern const u8 gText_EggNickname[]; extern const u8 gText_Pokemon[]; +extern const u8 gText_PkmnFainted3[]; extern const u8 gOtherText_Use[]; extern const u8 gOtherText_Give[]; diff --git a/include/task.h b/include/task.h index cd3deb544..834bb5655 100644 --- a/include/task.h +++ b/include/task.h @@ -4,6 +4,7 @@ #include "global.h" #define NUM_TASKS 16 +#define TASK_NONE 0xFF typedef void (*TaskFunc)(u8 taskId); diff --git a/include/unk_text_util.h b/include/unk_text_util.h deleted file mode 100644 index 750c0541e..000000000 --- a/include/unk_text_util.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef GUARD_UNK_TEXT_UTIL_H -#define GUARD_UNK_TEXT_UTIL_H - -#include "global.h" - -void UnkTextUtil_Reset(void); -void UnkTextUtil_SetPtrI(u8 idx, const u8 *ptr); -u8 *UnkTextUtil_StringExpandPlaceholders(u8 *dest, const u8 *src); -const u8 *UnkTextUtil_GetPtrI(u8 idx); - -#endif //GUARD_UNK_TEXT_UTIL_H |