diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/fieldmap.h | 19 | ||||
-rw-r--r-- | include/menu.h | 66 | ||||
-rw-r--r-- | include/string_util.h | 24 | ||||
-rw-r--r-- | include/text.h | 32 |
4 files changed, 109 insertions, 32 deletions
diff --git a/include/fieldmap.h b/include/fieldmap.h index d1da5a7e4..6a0074153 100644 --- a/include/fieldmap.h +++ b/include/fieldmap.h @@ -16,8 +16,8 @@ struct Tileset struct MapData { - u32 width; - u32 height; + s32 width; + s32 height; void *border; void *map; struct Tileset *primaryTileset; @@ -37,6 +37,14 @@ struct MapObjectTemplate u8 filler_14[0x4]; }; +struct WarpEvent +{ + s16 x, y; + s8 warpId; + s8 mapGroup; + s8 mapNum; +}; + struct MapEvents { u8 mapObjectCount; @@ -45,7 +53,7 @@ struct MapEvents u8 bgEventCount; struct MapObjectTemplate *mapObjects; - void *warps; + struct WarpEvent *warps; void *coordEvents; void *bgEvents; }; @@ -55,7 +63,10 @@ struct MapHeader struct MapData *mapData; struct MapEvents *events; u8 *mapScripts; - // TODO: rest of struct + void *connections; + u16 music; + u16 mapDataId; + u8 filler_14[0x8]; }; struct MapObject diff --git a/include/menu.h b/include/menu.h new file mode 100644 index 000000000..f6c6e6851 --- /dev/null +++ b/include/menu.h @@ -0,0 +1,66 @@ +#ifndef GUARD_MENU_H +#define GUARD_MENU_H + +#include "text.h" + +void InitMenuWindow(struct WindowConfig *); +void MultistepInitMenuWindowBegin(struct WindowConfig *); +bool32 MultistepInitMenuWindowContinue(void); +void unref_sub_8071DA4(struct WindowConfig *, u16); +void MenuLoadTextWindowGraphics_OverrideFrameType(u8); +void MenuLoadTextWindowGraphics(void); +void BasicInitMenuWindow(struct WindowConfig *); +void MenuPrint(u8 *, u8, u8); +void MenuZeroFillWindowRect(u8, u8, u8, u8); +void MenuFillWindowRectWithBlankTile(u8, u8, u8, u8); +void MenuZeroFillScreen(void); +void MenuDrawTextWindow(u8, u8, u8, u8); +void sub_8071F40(u8 *); +void sub_8071F60(u8, u8, u8, u8); +u16 unref_sub_8071F98(u8, u8); +void unref_sub_8071FBC(u16, u8, u8, u8, u8); +void MenuDisplayMessageBox(void); +void MenuPrintMessage(const u8 *, u8, u8); +void sub_8072044(const u8 *); +void MenuSetText(const u8 *); +u8 MenuUpdateWindowText(void); +u8 unref_sub_8072098(void); +void sub_80720B0(void); +u8 MoveMenuCursor(s8); +u8 MoveMenuCursorNoWrap(s8); +u8 GetMenuCursorPos(void); +s8 ProcessMenuInput(void); +s8 ProcessMenuInputNoWrap(void); +u8 MoveMenuCursor3(s8); +u8 MoveMenuCursor4(s8); +void sub_807274C(u8, u8, u8, u8, u8 * const [][2], u8, u32); +s8 sub_80727CC(void); +u8 sub_807288C(u8); +void PrintMenuItems(u8, u8, u8, u8 * const [][2]); +void PrintMenuItemsReordered(u8, u8, u8, u8 * const [][2], u8*); +void InitYesNoMenu(u8, u8, u8); +void DisplayYesNoMenu(u8, u8, u32); +s8 ProcessMenuInputNoWrap_(void); +u8 sub_80729D8(u8 *, u8, u16, u8); +u8 sub_8072A18(u8 *, u8, u16, u8, u32); +u8 unref_sub_8072A5C(u8 *, u8 *, u8, u16, u8, u32); +int sub_8072AB0(u8 *, u8, u16, u8, u8, u32); +void sub_8072B4C(u8 *, u8, u8); +void sub_8072B80(u8 *, u8, u8, u8 *); +void sub_8072BD8(u8 *, u8, u8, u16); +u8 *sub_8072C14(u8 *, s32, u8, u8); +u8 *sub_8072C44(u8 *, s32, u8, u8); +u8 *sub_8072C74(u8 *, u8 *, u8, u8); +u8 sub_8072CA4(u8 *s); +u8 sub_8072CBC(void); +void sub_8072CD4(u8 *, u8 *, u8 *); +u32 MenuUpdateWindowText_OverrideLineLength(u8); +struct Window * unref_sub_8072D0C(void); +u8 InitMenu(u8, u8, u8, u8, u8, u8); +void RedrawMenuCursor(u8, u8); +void unref_sub_8072DC0(void); +void sub_8072DCC(u8); +void sub_8072DDC(u8); +void sub_8072DEC(void); + +#endif // GUARD_MENU_H diff --git a/include/string_util.h b/include/string_util.h index d64bb08cc..fd7d39045 100644 --- a/include/string_util.h +++ b/include/string_util.h @@ -10,25 +10,25 @@ enum StringConvertMode STR_CONV_MODE_LEADING_ZEROS }; -u8 *StringCopy10(u8 *dest, u8 *src); +u8 *StringCopy10(u8 *dest, const u8 *src); u8 *StringGetEnd10(u8 *str); -u8 *StringCopy8(u8 *dest, u8 *src); -u8 *StringCopy(u8 *dest, u8 *src); -u8 *StringAppend(u8 *dest, u8 *src); -u8 *StringCopyN(u8 *dest, u8 *src, u8 n); -u8 *StringAppendN(u8 *dest, u8 *src, u8 n); -u16 StringLength(u8 *str); -s32 StringCompare(u8 *str1, u8 *str2); -s32 StringCompareN(u8 *str1, u8 *str2, u32 n); +u8 *StringCopy8(u8 *dest, const u8 *src); +u8 *StringCopy(u8 *dest, const u8 *src); +u8 *StringAppend(u8 *dest, const u8 *src); +u8 *StringCopyN(u8 *dest, const u8 *src, u8 n); +u8 *StringAppendN(u8 *dest, const u8 *src, u8 n); +u16 StringLength(const u8 *str); +s32 StringCompare(const u8 *str1, const u8 *str2); +s32 StringCompareN(const u8 *str1, const u8 *str2, u32 n); u8 *ConvertIntToDecimalStringN(u8 *dest, s32 value, enum StringConvertMode mode, u8 n); u8 *ConvertIntToDecimalStringN_DigitWidth6(u8 *dest, s32 value, enum StringConvertMode mode, u8 n); u8 *ConvertIntToHexStringN(u8 *dest, s32 value, enum StringConvertMode mode, u8 n); u8 *ConvertIntToDecimalString(u8 *dest, s32 value); -u8 *StringExpandPlaceholders(u8 *dest, u8 *src); -u8 *StringBraille(u8 *dest, u8 *src); +u8 *StringExpandPlaceholders(u8 *dest, const u8 *src); +u8 *StringBraille(u8 *dest, const u8 *src); u8 *GetExpandedPlaceholder(u32 id); u8 *StringFill(u8 *dest, u8 c, u16 n); -u8 *StringCopyPadded(u8 *dest, u8 *src, u8 c, u16 n); +u8 *StringCopyPadded(u8 *dest, const u8 *src, u8 c, u16 n); u8 *StringFillWithTerminator(u8 *dest, u16 n); #endif // GUARD_STRING_UTIL_H diff --git a/include/text.h b/include/text.h index 19c9b3040..bfad8e938 100644 --- a/include/text.h +++ b/include/text.h @@ -60,7 +60,7 @@ struct Window u16 tileDataStartOffset; u16 tileDataOffset; u16 textIndex; - u8 *text; + const u8 *text; u8 *tileData; u16 *tilemap; struct WindowConfig *config; @@ -136,18 +136,18 @@ u16 InitWindowTileData(struct Window *win, u16 startOffset); u32 MultistepInitWindowTileData(struct Window *win, u16 startOffset); bool32 MultistepLoadFont(void); void InitWindowFromConfig(struct Window *win, struct WindowConfig *winConfig); -void InitWindow(struct Window *win, u8 *text, u16 tileDataStartOffset, u8 left, u8 top); -void sub_8002E4C(struct Window *win, u8 *text, u16 tileDataStartOffset, u8 left, u16 top, u32 a6); -void sub_8002E90(struct Window *win, u8 *text); -void sub_8002EB0(struct Window *win, u8 *text, u16 tileDataStartOffset, u8 left, u8 top); +void InitWindow(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u8 top); +void sub_8002E4C(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u16 top, u32 a6); +void sub_8002E90(struct Window *win, const u8 *text); +void sub_8002EB0(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u8 top); u8 sub_8002F44(struct Window *win); u8 sub_8003418(struct Window *win); -u8 sub_8003460(struct Window *win, u8 *text, u16 tileDataStartOffset, u8 left, u8 top); +u8 sub_8003460(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u8 top); u8 sub_8003490(struct Window *win, u8 c, u16 tileDataStartOffset, u8 left, u8 top); void sub_80034D4(u8 *tileData, u8 *text); u8 sub_80034EC(u8 *str); u8 *sub_8003504(u8 *dest, s32 value, u8 alignAmount, u8 alignType); -u8 *sub_8003558(u8 *dest, u8 *src, u8 alignAmount, u8 alignType); +u8 *sub_8003558(u8 *dest, const u8 *src, u8 alignAmount, u8 alignType); u8 sub_80035AC(struct Window *win); u8 sub_800374C(struct Window *win); u8 sub_8003778(struct Window *win); @@ -164,18 +164,18 @@ void FillWindowRectWithBlankTile(struct Window *win, u8 left, u8 top, u8 right, u8 GetExtCtrlCodeLength(u8 code); u8 *AlignInt1(struct Window *win, u8 *dest, s32 value, u8 alignAmount, u8 alignType); u8 *AlignInt2(struct Window *win, u8 *dest, s32 value, u8 alignAmount, u8 alignType); -u8 *AlignString(struct Window *win, u8 *dest, u8 *src, u8 alignAmount, u8 alignType); -u8 GetStringWidth(struct Window *win, u8 *s); -u8 sub_8004D04(struct Window *win, u8 *text, u16 tileDataStartOffset, u8 left, u16 top, u32 a6); -u8 sub_8004D38(struct Window *win, u8 *text, u16 tileDataStartOffset, u8 left, u8 top); -u8 sub_8004DB0(struct Window *win, u8 *text, u16 tileDataStartOffset, u8 left, u8 top, u16 a6); +u8 *AlignString(struct Window *win, u8 *dest, const u8 *src, u8 alignAmount, u8 alignType); +u8 GetStringWidth(struct Window *win, const u8 *s); +u8 sub_8004D04(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u16 top, u32 a6); +u8 sub_8004D38(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u8 top); +u8 sub_8004DB0(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u8 top, u16 a6); u8 sub_8004E24(struct Window *win); void sub_8004E28(struct Window *win, u8 *foreground, u8 *background, u8 *shadow); -void sub_8004E3C(struct WindowConfig *winConfig, u8 *tileData, u8 *text); -u8 GetStringWidthGivenWindowConfig(struct WindowConfig *winConfig, u8 *s); +void sub_8004E3C(struct WindowConfig *winConfig, u8 *tileData, const u8 *text); +u8 GetStringWidthGivenWindowConfig(struct WindowConfig *winConfig, const u8 *s); void ConvertInternationalString(u8 *s, u8 language); void SkipExtCtrlCodes(u8 *str); -s32 StringCompareWithoutExtCtrlCodes(u8 *str1, u8 *str2); -u8 sub_8004FD0(struct Window *win, u8 *dest, u8 *src, u16 tileDataStartOffset, u8 left, u16 top, u8 width, u32 a8); +s32 StringCompareWithoutExtCtrlCodes(const u8 *str1, const u8 *str2); +u8 sub_8004FD0(struct Window *win, u8 *dest, const u8 *src, u16 tileDataStartOffset, u8 left, u16 top, u8 width, u32 a8); #endif // GUARD_TEXT_H |