diff options
author | Diegoisawesome <Diegoisawesome@users.noreply.github.com> | 2018-01-23 23:37:45 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-23 23:37:45 -0600 |
commit | e5596be256349f957f0543f4aa45fad9d1bb801a (patch) | |
tree | 74b09008c3abe75f255fbfdc5ec11e63dff5120b /include | |
parent | f57340b729d741acae17213c9c748738fcc1dcb3 (diff) | |
parent | b8b0431477b841162b48b30afb46bb31c11960a0 (diff) |
Merge pull request #185 from Diegoisawesome/master
Decompile naming_screen
Diffstat (limited to 'include')
-rw-r--r-- | include/field_effect.h | 1 | ||||
-rw-r--r-- | include/field_player_avatar.h | 1 | ||||
-rw-r--r-- | include/field_specials.h | 2 | ||||
-rw-r--r-- | include/gba/macro.h | 21 | ||||
-rw-r--r-- | include/main.h | 2 | ||||
-rw-r--r-- | include/naming_screen.h | 89 | ||||
-rw-r--r-- | include/new_menu_helpers.h | 2 | ||||
-rw-r--r-- | include/pokemon_icon.h | 2 | ||||
-rw-r--r-- | include/strings.h | 3 | ||||
-rw-r--r-- | include/text.h | 7 |
10 files changed, 124 insertions, 6 deletions
diff --git a/include/field_effect.h b/include/field_effect.h index 1fdcbe22c..7395270f9 100644 --- a/include/field_effect.h +++ b/include/field_effect.h @@ -78,5 +78,6 @@ void FieldEffectStop(struct Sprite *sprite, u8 id); u8 CreateTrainerSprite(u8 trainerSpriteID, s16 x, s16 y, u8 subpriority, u8 *buffer); void sub_80B7FC8(void); void FieldEffectActiveListRemove(u8 id); +void MultiplyInvertedPaletteRGBComponents(u16, u8, u8, u8); #endif //GUARD_FIELD_EFFECTS_H diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h index cc4c65448..af602245b 100644 --- a/include/field_player_avatar.h +++ b/include/field_player_avatar.h @@ -34,5 +34,6 @@ void sub_808BCE8(void); void sub_808D074(u8); void GetXYCoordsOneStepInFrontOfPlayer(s16 *xPtr, s16 *yPtr); +u8 GetRivalAvatarGraphicsIdByStateIdAndGender(u8, u8); #endif //GUARD_FIELD_PLAYER_AVATAR_H diff --git a/include/field_specials.h b/include/field_specials.h index 1f8fbf147..dd72bdd13 100644 --- a/include/field_specials.h +++ b/include/field_specials.h @@ -2,5 +2,7 @@ #define GUARD_FIELD_SPECIALS_H u8 GetLeadMonIndex(void); +u8 sub_813B260(void); +u16 get_unknown_box_id(void); #endif // GUARD_FIELD_SPECIALS_H diff --git a/include/gba/macro.h b/include/gba/macro.h index ad4820bcf..3b35a1946 100644 --- a/include/gba/macro.h +++ b/include/gba/macro.h @@ -122,6 +122,27 @@ #define DmaFillLarge32(dmaNum, value, dest, size, block) DmaFillLarge(dmaNum, value, dest, size, block, 32) +#define DmaClearLarge(dmaNum, dest, size, block, bit) \ +{ \ + void *_dest = dest; \ + u32 _size = size; \ + while (1) \ + { \ + DmaFill##bit(dmaNum, 0, _dest, (block)); \ + _dest += (block); \ + _size -= (block); \ + if (_size <= (block)) \ + { \ + DmaFill##bit(dmaNum, 0, _dest, _size); \ + break; \ + } \ + } \ +} + +#define DmaClearLarge16(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 16) + +#define DmaClearLarge32(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 32) + #define DmaCopyDefvars(dmaNum, src, dest, size, bit) \ { \ const void *_src = src; \ diff --git a/include/main.h b/include/main.h index e283d1754..40a2580a2 100644 --- a/include/main.h +++ b/include/main.h @@ -60,5 +60,7 @@ void SetSerialCallback(IntrCallback callback); void InitFlashTimer(void); void DoSoftReset(void); void ClearPokemonCrySongs(void); +void StartTimer1(void); +void SeedRngAndSetTrainerId(void); #endif // GUARD_MAIN_H diff --git a/include/naming_screen.h b/include/naming_screen.h index 3d69b834f..b04cb19b6 100644 --- a/include/naming_screen.h +++ b/include/naming_screen.h @@ -1,12 +1,89 @@ #ifndef GUARD_NAMING_SCREEN_H #define GUARD_NAMING_SCREEN_H -#define NAMING_SCREEN_PLAYER 0 -#define NAMING_SCREEN_BOX 1 -#define NAMING_SCREEN_CAUGHT_MON 2 -#define NAMING_SCREEN_3 3 -#define NAMING_SCREEN_WALDA 4 +#include "main.h" -void DoNamingScreen(u8 caseId, u8* dst, u16 monSpecies, u8 monGender, u32 monPersonality, void (*callback)(void)); +#define KBEVENT_NONE 0 +#define KBEVENT_PRESSED_A 5 +#define KBEVENT_PRESSED_B 6 +#define KBEVENT_PRESSED_SELECT 8 +#define KBEVENT_PRESSED_START 9 + +enum +{ + NAMING_SCREEN_PLAYER, + NAMING_SCREEN_BOX, + NAMING_SCREEN_CAUGHT_MON, + NAMING_SCREEN_3, + NAMING_SCREEN_WALDA, +}; + +struct NamingScreenTemplate +{ + u8 copyExistingString; + u8 maxChars; + u8 iconFunction; + u8 addGenderIcon; + u8 initialPage; + u8 unused; + const u8 *title; +}; + +struct NamingScreenData { + /*0x0*/ u8 tilemapBuffer1[0x800]; + /*0x800*/ u8 tilemapBuffer2[0x800]; + /*0x800*/ u8 tilemapBuffer3[0x800]; + /*0x1800*/ u8 textBuffer[0x10]; + /*0x1810*/ u8 tileBuffer[0x600]; + /*0x1E10*/ u8 state; + /*0x1E11*/ u8 windows[5]; + /*0x1E16*/ u16 inputCharBaseXPos; + /*0x1E18*/ u16 bg1vOffset; + /*0x1E1A*/ u16 bg2vOffset; + /*0x1E1C*/ u16 bg1Priority; + /*0x1E1E*/ u16 bg2Priority; + /*0x1E20*/ u8 bgToReveal; + /*0x1E21*/ u8 bgToHide; + /*0x1E22*/ u8 currentPage; + /*0x1E23*/ u8 cursorSpriteId; + /*0x1E24*/ u8 selectBtnFrameSpriteId; + /*0x1E25*/ u8 keyRepeatStartDelayCopy; + /*0x1E28*/ const struct NamingScreenTemplate *template; + /*0x1E2C*/ u8 templateNum; + /*0x1E30*/ u8 *destBuffer; + /*0x1E34*/ u16 monSpecies; + /*0x1E36*/ u16 monGender; + /*0x1E38*/ u32 monPersonality; + /*0x1E3C*/ MainCallback returnCallback; +}; + +enum +{ + PAGE_UPPER, + PAGE_LOWER, + PAGE_OTHERS, +}; + +enum +{ + MAIN_STATE_BEGIN_FADE_IN, + MAIN_STATE_WAIT_FADE_IN, + MAIN_STATE_HANDLE_INPUT, + MAIN_STATE_MOVE_TO_OK_BUTTON, + MAIN_STATE_START_PAGE_SWAP, + MAIN_STATE_WAIT_PAGE_SWAP, + MAIN_STATE_6, + MAIN_STATE_UPDATE_SENT_TO_PC_MESSAGE, + MAIN_STATE_BEGIN_FADE_OUT, +}; + +enum +{ + INPUT_STATE_DISABLED, + INPUT_STATE_ENABLED, + INPUT_STATE_2, +}; + +void DoNamingScreen(u8 templateNum, u8 *destBuffer, u16 monSpecies, u16 monGender, u32 monPersonality, MainCallback returnCallback); #endif // GUARD_NAMING_SCREEN_H diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h index dad819c51..5a4abeb85 100644 --- a/include/new_menu_helpers.h +++ b/include/new_menu_helpers.h @@ -4,6 +4,8 @@ #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); diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h index e0a9aa0c5..e7fc81ce4 100644 --- a/include/pokemon_icon.h +++ b/include/pokemon_icon.h @@ -5,9 +5,11 @@ const u8 *GetMonIconPtr(u16 speciesId, u32 personality, u32 frameNo); const u16 *GetValidMonIconPalettePtr(u16 speciesId); u16 GetUnownLetterByPersonality(u32 personality); u16 sub_80D2E84(u16 speciesId); +void sub_80D2F04(void); void sub_80D2F68(u16 iconId); u8 sub_80D2D78(u16 iconId, void callback(struct Sprite *), u16 x, u16 y, u16 a4, u8 a5); void sub_80D2FF0(u16 iconId); void sub_80D2EF8(struct Sprite *sprite); +u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality, int a7); #endif // GUARD_POKEMON_ICON_H diff --git a/include/strings.h b/include/strings.h index 8af8e629e..806a2e405 100644 --- a/include/strings.h +++ b/include/strings.h @@ -199,4 +199,7 @@ extern const u8 gText_Frame[]; extern const u8 gText_OptionMenuCancel[]; extern const u8 gText_ButtonMode[]; +extern const u8 gText_MaleSymbol[]; +extern const u8 gText_FemaleSymbol[]; + #endif //GUARD_STRINGS_H diff --git a/include/text.h b/include/text.h index 289c7d2b5..b5fc5b58a 100644 --- a/include/text.h +++ b/include/text.h @@ -185,6 +185,13 @@ struct __attribute__((packed)) TextColor u8 shadowColor; }; +struct AlignedTextColor // because sometimes it's necessary +{ + u8 fgColor; + u8 bgColor; + u8 shadowColor; +}; + extern u8 gStringVar1[]; extern u8 gStringVar2[]; extern u8 gStringVar3[]; |