summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorjiangzhengwenjz <jiangzhengwenjzw@qq.com>2019-07-03 12:40:04 +0800
committerjiangzhengwenjz <jiangzhengwenjzw@qq.com>2019-07-07 01:46:05 +0800
commit503086bc7df2a832f49da321287e6b12b8e138fa (patch)
tree6f66f51376a6067e186f156ca7da60169606855e /include
parentd97925df0edcac9212ba827b31ff75c7968703f3 (diff)
finished menu_indicators
Diffstat (limited to 'include')
-rw-r--r--include/field_poison.h2
-rw-r--r--include/graphics.h16
-rw-r--r--include/list_menu.h30
-rw-r--r--include/menu_indicators.h53
-rw-r--r--include/pokemon.h4
-rw-r--r--include/sprite.h28
6 files changed, 107 insertions, 26 deletions
diff --git a/include/field_poison.h b/include/field_poison.h
index 4887fa27a..97d5f59ed 100644
--- a/include/field_poison.h
+++ b/include/field_poison.h
@@ -6,7 +6,7 @@
enum {
FLDPSN_NONE,
FLDPSN_PSN,
- FLDPSN_FNT
+ FLDPSN_FNT,
};
void ExecuteWhiteOut(void);
diff --git a/include/graphics.h b/include/graphics.h
index 1b2913164..e12a6755b 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -202,11 +202,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 +266,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 +297,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..5614580eb 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,6 +61,15 @@ struct ListMenu {
u8 unk_1F;
};
+struct ListMenuWindowRect
+{
+ u8 x;
+ u8 y;
+ u8 width;
+ u8 height;
+ u8 palNum;
+};
+
extern struct ListMenuTemplate gUnknown_03006310;
extern struct ListMenuTemplate gMultiuseListMenuTemplate;
diff --git a/include/menu_indicators.h b/include/menu_indicators.h
index 76f25224c..fb6b65ecc 100644
--- a/include/menu_indicators.h
+++ b/include/menu_indicators.h
@@ -7,6 +7,18 @@
// Exported RAM declarations
+struct ScrollIndicatorPair
+{
+ u8 field_0;
+ u16 *scrollOffset;
+ u16 fullyUpThreshold;
+ u16 fullyDownThreshold;
+ u8 topSpriteId;
+ u8 bottomSpriteId;
+ u16 tileTag;
+ u16 palTag;
+};
+
struct ScrollArrowsTemplate
{
u8 firstArrowType;
@@ -22,9 +34,48 @@ struct ScrollArrowsTemplate
u8 palNum;
};
+struct ScrollIndicatorTemplate
+{
+ u8 animNum:4;
+ u8 bounceDir:4;
+ u8 multiplier;
+ s16 frequency;
+};
+
+struct CursorStruct
+{
+ u8 left;
+ u8 top;
+ u16 rowWidth;
+ u16 rowHeight;
+ u16 tileTag;
+ u16 palTag;
+ u8 palNum;
+};
+
+struct RedOutlineCursor
+{
+ struct SubspriteTable subspriteTable;
+ struct Subsprite *subspritesPtr;
+ u8 spriteId;
+ u16 tileTag;
+ u16 palTag;
+};
+
+struct RedArrowCursor
+{
+ u8 spriteId;
+ u16 tileTag;
+ u16 palTag;
+};
+
// Exported ROM declarations
-u8 AddScrollIndicatorArrowPairParameterized(u8, u8, u8, u8, s32, u16, u16, u16 *);
+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);
#endif //GUARD_MENU_INDICATORS_H
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/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);