From 2fd4f339b42c010191c199772b09ac34c580de94 Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Tue, 23 Mar 2021 12:11:10 -0500 Subject: Miscellaneous Work (Again) (#31) * move some personality data from asm to C * combine personality_test files and add my close attempt at RedrawPartnerSelectionMenu * decomp some more wonder mail funcs and label some more data * lots of data splitting and move some to src * split out more dungeon data * continue splitting out more dungeon data * doc rescue team rank/pts funcs/data and exclusive pokemon ewram * doc more sound things and decomp a func * decomp LoadTeamRankBadge and label some data members * split out rescue team and text util stuff * forgot a constant * match a few funcs and clean up a few * cleaned up sub_80A28B4 --- src/text_util.c | 148 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 src/text_util.c (limited to 'src/text_util.c') diff --git a/src/text_util.c b/src/text_util.c new file mode 100644 index 0000000..02c4239 --- /dev/null +++ b/src/text_util.c @@ -0,0 +1,148 @@ +#include "global.h" + +#define NUM_POKEMON_TYPES 18 + +extern const char gNoneText[]; +extern const char gNormalText[]; +extern const char gFireText[]; +extern const char gWaterText[]; +extern const char gGrassText[]; +extern const char gElectricText[]; +extern const char gIceText[]; +extern const char gFightingText[]; +extern const char gPoisonText[]; +extern const char gGroundText[]; +extern const char gFlyingText[]; +extern const char gPsychicText[]; +extern const char gBugText[]; +extern const char gRockText[]; +extern const char gGhostText[]; +extern const char gDragonText[]; +extern const char gDarkText[]; +extern const char gSteelText[]; + +const char * const gUnformattedTypeStrings[NUM_POKEMON_TYPES] = +{ + gNoneText, + gNormalText, + gFireText, + gWaterText, + gGrassText, + gElectricText, + gIceText, + gFightingText, + gPoisonText, + gGroundText, + gFlyingText, + gPsychicText, + gBugText, + gRockText, + gGhostText, + gDragonText, + gDarkText, + gSteelText, +}; + +#include "data/unformatted_type_names.h" + +extern const char * gFormattedTypeStrings[NUM_POKEMON_TYPES]; // formatted type names + + +extern u8 *gAbilityNames[]; +extern u8 *AbilityDescriptions[]; +extern u8 gUnknown_810AC7C[]; +extern u8 gUnknown_810AC6A[]; + +extern u32 gUnknown_810983C[26]; // TODO: verify size later + +u32 ReturnIntFromChar(u8 r0) +{ + return r0; +} + +u32 ReturnIntFromChar2(u8 r0) +{ + return r0; +} + +// Unused +void sub_8092290(u8 *buffer, u8 *string) +{ + while( *string != '\0' ) { + *buffer++ = ReturnIntFromChar2(*string++); + } + *buffer = 0; // append a 0 +} + +void sub_80922B4(u8 *buffer, u8 *string, s32 size) +{ + while(1) + { + if(size-- < 1 || *string == '\0') + { + break; + } + *buffer++ = ReturnIntFromChar2(*string++); + } + *buffer = 0; // append a 0 +} + +u32 sub_80922E4(u32 r0) +{ + return gUnknown_810983C[r0]; +} + +void CopyStringtoBuffer(u8 *buffer, u8 *string) +{ + while( *string != '\0' ) { + *buffer++ = *string++; + } + *buffer = 0; // append a 0 +} + +void BoundedCopyStringtoBuffer(u8 *buffer, u8 *string, s32 size) +{ + while( 1 ) { + if (size-- < 1) { + break; + } + if (*string == '\0') { + *buffer = 0; // append a 0 and break + break; + } + // NOTE: *buffer++ = *string++ cases register flip + *buffer = *string; + buffer++; + string++; + } +} + +const char *GetUnformattedTypeString(u8 type) +{ + return gUnformattedTypeStrings[type]; +} + +const char * GetFormattedTypeString(u8 type) +{ + return gFormattedTypeStrings[type]; +} + +u8 sub_8092354(u8 index) +{ + return gUnknown_810AC7C[index]; +} + +u8 sub_8092364(u8 index) +{ + return gUnknown_810AC6A[index]; +} + +void sub_8092374(char *buffer, u8 index) +{ + strncpy(buffer, gAbilityNames[index], 0x50); +} + +u8 *GetAbilityDescription(u8 index) +{ + return AbilityDescriptions[index]; +} -- cgit v1.2.3