summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/battle_frontier_1.h7
-rw-r--r--include/dma3.h2
-rw-r--r--include/gba/defines.h3
-rw-r--r--include/global.h2
-rw-r--r--include/graphics.h6
-rw-r--r--include/menu.h34
-rw-r--r--include/menu_helpers.h4
-rw-r--r--include/new_menu_helpers.h25
-rw-r--r--include/region_map.h1
-rw-r--r--include/strings.h3
-rw-r--r--include/text.h22
-rw-r--r--include/window.h2
12 files changed, 60 insertions, 51 deletions
diff --git a/include/battle_frontier_1.h b/include/battle_frontier_1.h
new file mode 100644
index 000000000..5483b28ef
--- /dev/null
+++ b/include/battle_frontier_1.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_BATTLE_FRONTIER_1_H
+#define GUARD_BATTLE_FRONTIER_1_H
+
+bool32 sub_8196094(void);
+void sub_8196080(const u8 *str);
+
+#endif // GUARD_BATTLE_FRONTIER_1_H
diff --git a/include/dma3.h b/include/dma3.h
index d58e41850..19a69ea80 100644
--- a/include/dma3.h
+++ b/include/dma3.h
@@ -5,6 +5,6 @@ void ClearDma3Requests(void);
void ProcessDma3Requests(void);
s16 RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode);
s16 RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode);
-int CheckForSpaceForDma3Request(s16 index);
+s16 CheckForSpaceForDma3Request(s16 index);
#endif // GUARD_DMA3_H
diff --git a/include/gba/defines.h b/include/gba/defines.h
index 5c07347ce..1eed6303d 100644
--- a/include/gba/defines.h
+++ b/include/gba/defines.h
@@ -39,6 +39,9 @@
#define BG_CHAR_ADDR(n) (BG_VRAM + (BG_CHAR_SIZE * (n)))
#define BG_SCREEN_ADDR(n) (BG_VRAM + (BG_SCREEN_SIZE * (n)))
+#define BG_TILE_H_FLIP(n) (0x400 + (n))
+#define BG_TILE_V_FLIP(n) (0x800 + (n))
+
// text-mode BG
#define OBJ_VRAM0 (VRAM + 0x10000)
#define OBJ_VRAM0_SIZE 0x8000
diff --git a/include/global.h b/include/global.h
index c575d40cd..0e5615eb0 100644
--- a/include/global.h
+++ b/include/global.h
@@ -24,7 +24,7 @@
#define INCBIN_S32 {0}
#endif // __APPLE__
-#define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0]))
+#define ARRAY_COUNT(array) (size_t)(sizeof(array) / sizeof((array)[0]))
// useful math macros
diff --git a/include/graphics.h b/include/graphics.h
index 0635ef5cc..39662c8c1 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -2713,4 +2713,10 @@ extern const u8 gRaySceneHushBg_Pal[];
extern const u8 gRaySceneHushBg_Gfx[];
extern const u8 gRaySceneHushRing_Gfx[];
+//menu graphics
+extern const u16 gFireRedMenuElements1_Pal[16];
+extern const u16 gFireRedMenuElements2_Pal[16];
+extern const u16 gFireRedMenuElements3_Pal[16];
+extern const u8 gFireRedMenuElements_Gfx[];
+
#endif //GUARD_GRAPHICS_H
diff --git a/include/menu.h b/include/menu.h
index e5f705cae..2046f7d2b 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -1,6 +1,7 @@
#ifndef GUARD_MENU_H
#define GUARD_MENU_H
+#include "task.h"
#include "text.h"
#include "window.h"
@@ -16,28 +17,47 @@ struct MenuAction
} func;
};
-void box_print(u8, u8, u8, u8, const void *, s8, const u8 *);
+void sub_81971D0(void);
+void sub_8197200(void);
+u16 sub_8197224(void);
+void sub_81973A4(void);
+void NewMenuHelpers_DrawDialogueFrame(u8, u8);
+void sub_819746C(u8 windowId, bool8 copyToVram);
+void NewMenuHelpers_DrawStdWindowFrame(u8, u8);
+u16 AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 fgColor, u8 bgColor, u8 shadowColor);
+void DisplayItemMessageOnField(u8 taskId, const u8 *src, TaskFunc callback);
+void sub_8197434(u8 a0, u8 a1);
+void SetStandardWindowBorderStyle(u8 a0, u8 a1);
+void sub_8197930(void);
+u8 GetPlayerTextSpeed(void);
+void sub_81978B0(u16 arg0);
+
+void box_print(u8 windowId, u8 fontId, u8 left, u8 top, const u8 *color, s8 speed, const u8 *str);
void sub_8198070(u8 windowId, bool8 copyToVram);
void SetWindowTemplateFields(struct WindowTemplate* template, u8 priority, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 palNum, u16 baseBlock);
void SetWindowBorderStyle(u8 windowId, bool8 copyToVram, u16 tileStart, u8 palette);
void schedule_bg_copy_tilemap_to_vram(u8 bgNum);
-void PrintMenuTable(u8 idx, u8 nstrs, const struct MenuAction *strs);
-void InitMenuInUpperLeftCornerPlaySoundWhenAPressed(u8 idx, u8 nstrs,u8);
+void PrintMenuTable(u8 windowId, u8 itemCount, const struct MenuAction *strs);
+u8 InitMenuInUpperLeftCornerPlaySoundWhenAPressed(u8 windowId, u8 numItems, u8 initialCursorPos);
u8 GetMenuCursorPos(void);
s8 ProcessMenuInput(void);
s8 ProcessMenuInputNoWrapAround(void);
void blit_move_info_icon(u8 winId, u8 a2, u16 x, u16 y);
void reset_temp_tile_data_buffers(void);
-int decompress_and_copy_tile_data_to_vram(u8 bg_id, const void *src, int size, u16 offset, u8 mode);
+void *decompress_and_copy_tile_data_to_vram(u8 bgId, const void *src, int size, u16 offset, u8 mode);
bool8 free_temp_tile_data_buffers_if_possible(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
+struct WindowTemplate sub_8198A50(u8, u8, u8, u8, u8, u8, u16);
void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos);
s8 ProcessMenuInputNoWrap_(void);
void do_scheduled_bg_tilemap_copies_to_vram(void);
void clear_scheduled_bg_copies_to_vram(void);
-void AddTextPrinterParameterized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const struct TextColor *color, s8 speed, const u8 *str);
-void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a2, u16 a3);
+void AddTextPrinterParameterized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const u8 *color, s8 speed, const u8 *str);
+void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a2, u8 a3);
void sub_81995E4(u8 windowId, u8 optionsNo, const struct MenuAction *actions, const u8 *actionIds);
void sub_8197DF8(u8 windowId, bool8 copyToVram);
+u16 sub_8198AA4(u8, u8, u8, u8, u8, u8, u16);
+void *malloc_and_decompress(const void *src, int *sizeOut);
+u16 copy_decompressed_tile_data_to_vram(u8 bgId, const void *src, u16 size, u16 offset, u8 mode);
+void AddTextPrinterForMessage(bool8 allowSkippingDelayWithButtonPress);
#endif // GUARD_MENU_H
diff --git a/include/menu_helpers.h b/include/menu_helpers.h
index a91c89645..048a4aa43 100644
--- a/include/menu_helpers.h
+++ b/include/menu_helpers.h
@@ -1,6 +1,8 @@
#ifndef GUARD_MENU_HELPERS_H
#define GUARD_MENU_HELPERS_H
+#include "task.h"
+
// Exported type declarations
struct YesNoFuncTable
@@ -28,5 +30,7 @@ void sub_81223FC(u8 *a0, u8 count, u8 a2);
void sub_8122448(u8 *a0, u8 count, u16 x, u16 y);
void DisplayMessageAndContinueTask(u8 taskId, u8 arg1, u16 arg2, u8 arg3, u8 arg4, u8 textSpeed, const u8 *string, void *taskFunc);
void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *template, u8 arg2, u8 arg3, u8 arg4, u16 tileStart, u8 palette, const struct YesNoFuncTable *yesNo);
+u8 GetLRKeysState(void);
+u8 sub_812210C(void);
#endif //GUARD_MENU_HELPERS_H
diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h
deleted file mode 100644
index bcbb1147d..000000000
--- a/include/new_menu_helpers.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef GUARD_NEW_MENU_HELPERS_H
-#define GUARD_NEW_MENU_HELPERS_H
-
-#include "text.h"
-#include "task.h"
-
-void sub_81971D0(void);
-void sub_8197200(void);
-void sub_81973A4(void);
-void sub_81973C4(u8, u8);
-void sub_819746C(u8 windowId, bool8 copyToVram);
-void sub_81973FC(u8, u8);
-u16 AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 speed, void ( *callback)(u16, struct TextPrinter *), u8 fgColor, u8 bgColor, u8 shadowColor);
-void DisplayItemMessageOnField(u8 taskId, const u8 *src, TaskFunc callback);
-void sub_8197434(u8 a0, u8 a1);
-void SetStandardWindowBorderStyle(u8 a0, u8 a1);
-void sub_8197930(void);
-u8 GetPlayerTextSpeed(void);
-void sub_81978B0(u16 arg0);
-u16 sub_8197224(void);
-int sub_8196094(void);
-void sub_8196080(u8*);
-void AddTextPrinterForMessage(u8);
-
-#endif // GUARD_NEW_MENU_HELPERS_H
diff --git a/include/region_map.h b/include/region_map.h
index e8cc80f82..af331ad81 100644
--- a/include/region_map.h
+++ b/include/region_map.h
@@ -93,5 +93,6 @@ void CreateRegionMapPlayerIcon(u16 x, u16 y);
void CreateRegionMapCursor(u16 tileTag, u16 paletteTag);
u8 *GetMapName(u8 *, u16, u16);
bool32 sub_8124668(u8 mapSecId);
+u8 *sub_81245DC(u8 *dest, u16 mapSecId);
#endif //GUARD_REGION_MAP_H
diff --git a/include/strings.h b/include/strings.h
index a8ea7ee46..6d569e57a 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -215,6 +215,9 @@ extern const u8 gText_ButtonMode[];
extern const u8 gText_MaleSymbol[];
extern const u8 gText_FemaleSymbol[];
+extern const u8 gText_SelectorArrow3[];
+extern const u8 gText_YesNo[];
+
// mystery event menu text
extern const u8 gText_EventSafelyLoaded[];
extern const u8 gText_LoadErrorEndingSession[];
diff --git a/include/text.h b/include/text.h
index b5fc5b58a..e073c3762 100644
--- a/include/text.h
+++ b/include/text.h
@@ -75,6 +75,10 @@
#define CHAR_NEWLINE 0xFE
#define EOS 0xFF // end of string
+#define EXT_CTRL_CODE_COLOR 0x1
+#define EXT_CTRL_CODE_HIGHLIGHT 0x2
+#define EXT_CTRL_CODE_SHADOW 0x3
+
#define TEXT_COLOR_TRANSPARENT 0x0
#define TEXT_COLOR_WHITE 0x1
#define TEXT_COLOR_DARK_GREY 0x2
@@ -116,7 +120,7 @@ struct TextSubPrinter // TODO: Better name
u8 letterSpacing;
u8 lineSpacing;
u8 fontColor_l:4; // 0xC
- u8 fontColor_h:4;
+ u8 fgColor:4;
u8 bgColor:4;
u8 shadowColor:4;
};
@@ -149,7 +153,7 @@ struct FontInfo
u8 letterSpacing;
u8 lineSpacing;
u8 fontColor_l:4;
- u8 fontColor_h:4;
+ u8 fgColor:4;
u8 bgColor:4;
u8 shadowColor:4;
};
@@ -178,20 +182,6 @@ typedef struct {
extern TextFlags gTextFlags;
-struct __attribute__((packed)) TextColor
-{
- u8 fgColor;
- u8 bgColor;
- u8 shadowColor;
-};
-
-struct AlignedTextColor // because sometimes it's necessary
-{
- u8 fgColor;
- u8 bgColor;
- u8 shadowColor;
-};
-
extern u8 gStringVar1[];
extern u8 gStringVar2[];
extern u8 gStringVar3[];
diff --git a/include/window.h b/include/window.h
index b630cd316..07c642a09 100644
--- a/include/window.h
+++ b/include/window.h
@@ -52,7 +52,7 @@ void PutWindowTilemap(u8 windowId);
void PutWindowRectTilemapOverridePalette(u8 windowId, u8 x, u8 y, u8 width, u8 height, u8 palette);
void ClearWindowTilemap(u8 windowId);
void PutWindowRectTilemap(u8 windowId, u8 x, u8 y, u8 width, u8 height);
-void BlitBitmapToWindow(u8 windowId, u8 *pixels, u16 x, u16 y, u16 width, u16 height);
+void BlitBitmapToWindow(u8 windowId, const u8 *pixels, u16 x, u16 y, u16 width, u16 height);
void BlitBitmapRectToWindow(u8 windowId, const u8 *pixels, u16 srcX, u16 srcY, u16 srcWidth, int srcHeight, u16 destX, u16 destY, u16 rectWidth, u16 rectHeight);
void FillWindowPixelRect(u8 windowId, u8 fillValue, u16 x, u16 y, u16 width, u16 height);
void CopyToWindowPixelBuffer(u8 windowId, const u8 *src, u16 size, u16 tileOffset);