Document and clean up string_template.c

This commit is contained in:
Rachel
2024-04-08 00:11:51 -07:00
parent 69ea0c0d56
commit ecd9ac0022
4 changed files with 544 additions and 762 deletions

View File

@@ -6,8 +6,8 @@ enum HeapId {
HEAP_ID_SAVE,
HEAP_ID_DEBUG,
HEAP_ID_APPLICATION,
HEAP_ID_BATTLE = 5,
HEAP_ID_FIELD,
HEAP_ID_BATTLE,
HEAP_ID_POKETCH_MAIN = 7,
HEAP_ID_POKETCH_APP,

View File

@@ -2,7 +2,91 @@
#define POKEPLATINUM_CONSTANTS_MESSAGE_BANKS_H
enum ArchiveMessageBank {
MESSAGE_BANK_BALL_SEAL_NAMES = 12,
MESSAGE_BANK_BALL_SEAL_NAMES_PLURAL,
MESSAGE_BANK_FRONTIER_TRAINER_NAMES = 21,
MESSAGE_BANK_NATURE_NAMES = 202,
MESSAGE_BANK_CONTEST_TEXT = 204,
MESSAGE_BANK_CONTEST_JUDGE_NAMES = 207,
MESSAGE_BANK_COMMON_STRINGS = 213,
MESSAGE_BANK_STATUS_CONDITION_NAMES = 219,
MESSAGE_BANK_COMMON_STRINGS_2 = 361,
MESSAGE_BANK_FURNITURE_NAMES = 371,
MESSAGE_BANK_GYM_NAMES = 378,
MESSAGE_BANK_CONTEST_ACCESSORY_NAMES = 386,
MESSAGE_BANK_CONTEST_ACCESSORY_NAMES_WITH_ARTICLES,
MESSAGE_BANK_CONTEST_BACKDROP_NAMES,
MESSAGE_BANK_ITEM_NAMES = 392,
MESSAGE_BANK_ITEM_NAMES_WITH_ARTICLES,
MESSAGE_BANK_ITEM_NAMES_PLURAL,
MESSAGE_BANK_BAG_POCKET_NAMES_WITH_ICONS = 396,
MESSAGE_BANK_SPECIES_NAMES = 412,
MESSAGE_BANK_SPECIES_NAMES_WITH_ARTICLES,
MESSAGE_BANK_MONTH_NAMES,
MESSAGE_BANK_LOCATION_NAMES = 433,
MESSAGE_BANK_MYSTERY_GIFT_EVENT_NAMES,
MESSAGE_BANK_SPECIAL_MET_LOCATION_NAMES,
MESSAGE_BANK_POKETCH_APP_NAMES = 457,
MESSAGE_BANK_POFFIN_NAMES = 465,
MESSAGE_BANK_RIBBON_NAMES = 535,
MESSAGE_BANK_POKEMON_STAT_NAMES = 551,
MESSAGE_BANK_COUNTERPART_NAMES = 553,
MESSAGE_BANK_FLAVOR_NAMES = 606,
MESSAGE_BANK_TIMES_OF_DAY = 608,
MESSAGE_BANK_ABILITY_NAMES = 610,
MESSAGE_BANK_NPC_TRAINER_NAMES = 618,
MESSAGE_BANK_TRAINER_CLASS_NAMES,
MESSAGE_BANK_TRAINER_CLASS_NAMES_WITH_ARTICLES,
MESSAGE_BANK_POKEMON_TYPE_NAMES = 624,
MESSAGE_BANK_UNDERGROUND_GOODS = 626,
MESSAGE_BANK_UNDERGROUND_GOODS_WITH_ARTICLES,
MESSAGE_BANK_UNDERGROUND_ITEM_NAMES,
MESSAGE_BANK_UNDERGROUND_ITEM_NAMES_WITH_ARTICLES,
MESSAGE_BANK_UNDERGROUND_TRAP_NAMES,
MESSAGE_BANK_UNDERGROUND_TRAP_NAMES_WITH_ARTICLES,
MESSAGE_BANK_UNDERGROUND_ANSWERS,
MESSAGE_BANK_UNDERGROUND_QUESTIONS,
MESSAGE_BANK_MOVE_NAMES = 647,
MESSAGE_BANK_PLAZA_EVENT_NAMES = 649,
MESSAGE_BANK_PLAZA_MINIGAME_NAMES = 651,
MESSAGE_BANK_PLAZA_ITEM_NAMES,
MESSAGE_BANK_GREETINGS_EN = 663,
MESSAGE_BANK_GREETINGS_FR,
MESSAGE_BANK_GREETINGS_DE,
MESSAGE_BANK_GREETINGS_IT,
MESSAGE_BANK_GREETINGS_JP,
MESSAGE_BANK_GREETINGS_ES,
MESSAGE_BANK_COUNTRY_NAMES = 694,
};
#endif // POKEPLATINUM_CONSTANTS_MESSAGE_BANKS_H
#endif // POKEPLATINUM_CONSTANTS_MESSAGE_BANKS_H

View File

@@ -1,91 +1,116 @@
#ifndef POKEPLATINUM_STRING_TEMPLATE_H
#define POKEPLATINUM_STRING_TEMPLATE_H
#include "consts/generated/c/abilities.h"
#include "consts/generated/c/gender.h"
#include "consts/generated/c/moves.h"
#include "pokemon.h"
#include "savedata.h"
#include "strbuf.h"
#include "trainer_info.h"
#include "pokemon.h"
#include "struct_decls/struct_020797DC_decl.h"
#include "struct_defs/trainer_data.h"
#include "savedata.h"
#include "enums.h"
typedef struct StringTemplate StringTemplate;
#define STRING_TEMPLATE_DEFAULT_MAX_ARGS 8
#define STRING_TEMPLATE_DEFAULT_MAX_LENGTH 32
StringTemplate * StringTemplate_Default(u32 param0);
StringTemplate * StringTemplate_New(u32 param0, u32 param1, u32 param2);
void StringTemplate_Free(StringTemplate * param0);
void StringTemplate_SetStrbuf(StringTemplate * param0, u32 param1, const Strbuf *param2, u32 param3, BOOL param4, u32 param5);
void StringTemplate_SetPlayerName(StringTemplate * param0, u32 param1, const TrainerInfo * param2);
void StringTemplate_SetRivalName(StringTemplate * param0, u32 param1, const SaveData * param2);
void StringTemplate_SetCounterpartName(StringTemplate * param0, u32 param1, const SaveData * param2);
void StringTemplate_SetSpeciesName(StringTemplate * param0, u32 param1, BoxPokemon * param2);
void StringTemplate_SetSpeciesNameWithArticle(StringTemplate * param0, u32 param1, BoxPokemon * param2);
void StringTemplate_SetSpeciesNameWithArticleByID(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetNickname(StringTemplate * param0, u32 param1, BoxPokemon * param2);
void StringTemplate_SetOTName(StringTemplate * param0, u32 param1, BoxPokemon * param2);
void StringTemplate_SetNumber(StringTemplate * param0, u32 param1, s32 param2, u32 param3, int param4, int param5);
void StringTemplate_SetMoveName(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetRibbonName(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetAbilityName(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetNatureName(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetItemName(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetItemNameWithArticle(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetItemNamePlural(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetBagPocketName(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetPokemonTypeName(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetPokemonStatName(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetStatusConditionName(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetFlavorName(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetLocationName(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetPoketchAppName(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetTrainerClassName(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetTrainerClassNameWithArticle(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetTrainerClassNameBattle(StringTemplate * param0, u32 param1, TrainerData * param2);
void StringTemplate_SetTrainerName(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetFrontierTrainerName(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetTrainerNameBattle(StringTemplate * param0, u32 param1, TrainerData * param2);
void StringTemplate_SetUndergroundItemName(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetUndergroundItemNameWithArticle(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetUndergroundTrapName(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetUndergroundTrapNameWithArticle(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetContestJudgeName(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetContestRankName(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetContestTypeName(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetUndergroundQuestion(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetUndergroundAnswer(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetUndergroundGoodsName(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetUndergroundGoodsNameWithArticle(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetGenderMarker(StringTemplate * param0, u32 param1, u8 param2);
void StringTemplate_SetPCBoxName(StringTemplate * param0, u32 param1, const PCBoxes * param2, u32 param3);
void StringTemplate_SetGymName(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetTimeOfDay(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetCountryName(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetCityName(StringTemplate * param0, u32 param1, u32 param2, u32 param3);
void StringTemplate_SetCustomMessageWord(StringTemplate * param0, u32 param1, u16 param2);
void StringTemplate_SetBallSealName(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetBallSealNamePlural(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetMetLocationName(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetPoffinName(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetContestAccessoryName(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetContestAccessoryNameWithArticle(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetContestBackdropName(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetUnionGroupName(StringTemplate * param0, SaveData * param1, int param2, int param3, int param4);
void StringTemplate_SetPlazaMinigameName(StringTemplate * param0, u32 param1, enum PlazaMinigame param2);
void StringTemplate_SetPlazaEventName(StringTemplate * param0, u32 param1, int param2);
void StringTemplate_SetPlazaItemName(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetJPGreeting(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetENGreeting(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetFRGreeting(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetITGreeting(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetDEGreeting(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetESGreeting(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetFurniture(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_SetMonthName(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_CapitalizeArgAtIndex(StringTemplate * param0, u32 param1);
void StringTemplate_SetDepartmentStoreFloor(StringTemplate * param0, u32 param1, u32 param2);
void StringTemplate_Format(const StringTemplate * param0, Strbuf *param1, const Strbuf *param2);
void StringTemplate_ClearArgs(StringTemplate * param0);
typedef struct StringTemplateArgHeader {
u8 unused_00;
u8 unused_01;
u8 unused_02;
u8 unused_03;
} StringTemplateArgHeader;
typedef struct StringTemplateArg {
StringTemplateArgHeader header;
Strbuf *strbuf;
} StringTemplateArg;
typedef struct StringTemplate {
u32 maxArgs;
u32 heapID;
StringTemplateArg *args;
Strbuf *templateBuf;
} StringTemplate;
StringTemplate *StringTemplate_Default(u32 heapID);
StringTemplate *StringTemplate_New(u32 maxArgs, u32 maxLen, u32 heapID);
void StringTemplate_Free(StringTemplate *template);
void StringTemplate_SetStrbuf(StringTemplate *template, u32 idx, const Strbuf *argVal, u32 unused3, BOOL unused4, u32 unused5);
void StringTemplate_SetPlayerName(StringTemplate *template, u32 idx, const TrainerInfo *playerInfo);
void StringTemplate_SetRivalName(StringTemplate *template, u32 idx, const SaveData *save);
void StringTemplate_SetCounterpartName(StringTemplate *template, u32 idx, const SaveData *save);
void StringTemplate_SetSpeciesName(StringTemplate *template, u32 idx, BoxPokemon *boxMon);
void StringTemplate_SetSpeciesNameWithArticle(StringTemplate *template, u32 idx, BoxPokemon *boxMon);
void StringTemplate_SetSpeciesNameWithArticleByID(StringTemplate *template, u32 idx, u32 species);
void StringTemplate_SetNickname(StringTemplate *template, u32 idx, BoxPokemon *boxMon);
void StringTemplate_SetOTName(StringTemplate *template, u32 idx, BoxPokemon *boxMon);
void StringTemplate_SetNumber(StringTemplate *template, u32 idx, int num, u32 maxDigits, enum PaddingMode paddingMode, enum CharsetMode charsetMode);
void StringTemplate_SetMoveName(StringTemplate *template, u32 idx, enum Move move);
void StringTemplate_SetRibbonName(StringTemplate *template, u32 idx, u32 ribbon);
void StringTemplate_SetAbilityName(StringTemplate *template, u32 idx, enum Ability ability);
void StringTemplate_SetNatureName(StringTemplate *template, u32 idx, u32 nature);
void StringTemplate_SetItemName(StringTemplate *template, u32 idx, u32 item);
void StringTemplate_SetItemNameWithArticle(StringTemplate *template, u32 idx, u32 item);
void StringTemplate_SetItemNamePlural(StringTemplate *template, u32 idx, u32 item);
void StringTemplate_SetBagPocketName(StringTemplate *template, u32 idx, u32 pocket);
void StringTemplate_SetPokemonTypeName(StringTemplate *template, u32 idx, u32 type);
void StringTemplate_SetPokemonStatName(StringTemplate *template, u32 idx, u32 stat);
void StringTemplate_SetStatusConditionName(StringTemplate *template, u32 idx, u32 status);
void StringTemplate_SetFlavorName(StringTemplate *template, u32 idx, u32 flavor);
void StringTemplate_SetLocationName(StringTemplate *template, u32 idx, u32 location);
void StringTemplate_SetPoketchAppName(StringTemplate *template, u32 idx, u32 app);
void StringTemplate_SetTrainerClassName(StringTemplate *template, u32 idx, u32 trainerClass);
void StringTemplate_SetTrainerClassNameWithArticle(StringTemplate *template, u32 idx, u32 trainerClass);
void StringTemplate_SetTrainerClassNameBattle(StringTemplate *template, u32 idx, TrainerData *trainerData);
void StringTemplate_SetTrainerName(StringTemplate *template, u32 idx, u32 trainerID);
void StringTemplate_SetFrontierTrainerName(StringTemplate *template, u32 idx, u32 trainerID);
void StringTemplate_SetTrainerNameBattle(StringTemplate *template, u32 idx, TrainerData *trainerData);
void StringTemplate_SetUndergroundItemName(StringTemplate *template, u32 idx, u32 item);
void StringTemplate_SetUndergroundItemNameWithArticle(StringTemplate *template, u32 idx, u32 item);
void StringTemplate_SetUndergroundTrapName(StringTemplate *template, u32 idx, u32 trap);
void StringTemplate_SetUndergroundTrapNameWithArticle(StringTemplate *template, u32 idx, u32 trap);
void StringTemplate_SetContestJudgeName(StringTemplate *template, u32 idx, u32 judge);
void StringTemplate_SetContestRankName(StringTemplate *template, u32 idx, u32 rank);
void StringTemplate_SetContestTypeName(StringTemplate *template, u32 idx, u32 type);
void StringTemplate_SetUndergroundQuestion(StringTemplate *template, u32 idx, u32 question);
void StringTemplate_SetUndergroundAnswer(StringTemplate *template, u32 idx, u32 answer);
void StringTemplate_SetUndergroundGoodsName(StringTemplate *template, u32 idx, u32 goods);
void StringTemplate_SetUndergroundGoodsNameWithArticle(StringTemplate *template, u32 idx, u32 goods);
void StringTemplate_SetGenderMarker(StringTemplate *template, u32 idx, enum Gender gender);
void StringTemplate_SetPCBoxName(StringTemplate *template, u32 idx, const PCBoxes *boxes, u32 boxIdx);
void StringTemplate_SetGymName(StringTemplate *template, u32 idx, u32 gym);
void StringTemplate_SetTimeOfDay(StringTemplate *template, u32 idx, u32 timeOfDay);
void StringTemplate_SetCountryName(StringTemplate *template, u32 idx, u32 country);
void StringTemplate_SetCityName(StringTemplate *template, u32 idx, u32 country, u32 city);
void StringTemplate_SetCustomMessageWord(StringTemplate *template, u32 idx, u16 customMessageWord);
void StringTemplate_SetBallSealName(StringTemplate *template, u32 idx, u32 ballSeal);
void StringTemplate_SetBallSealNamePlural(StringTemplate *template, u32 idx, u32 ballSeal);
void StringTemplate_SetMetLocationName(StringTemplate *template, u32 idx, u32 location);
void StringTemplate_SetPoffinName(StringTemplate *template, u32 idx, u32 poffin);
void StringTemplate_SetContestAccessoryName(StringTemplate *template, u32 idx, u32 accessory);
void StringTemplate_SetContestAccessoryNameWithArticle(StringTemplate *template, u32 idx, u32 accessory);
void StringTemplate_SetContestBackdropName(StringTemplate *template, u32 idx, u32 backdrop);
void StringTemplate_SetUnionGroupName(StringTemplate *template, SaveData *save, int groupID, int idx, int nameType);
void StringTemplate_SetPlazaMinigameName(StringTemplate *template, u32 idx, enum PlazaMinigame minigame);
void StringTemplate_SetPlazaEventName(StringTemplate *template, u32 idx, int event);
void StringTemplate_SetPlazaItemName(StringTemplate *template, u32 idx, u32 item);
void StringTemplate_SetJPGreeting(StringTemplate *template, u32 idx, u32 greeting);
void StringTemplate_SetENGreeting(StringTemplate *template, u32 idx, u32 greeting);
void StringTemplate_SetFRGreeting(StringTemplate *template, u32 idx, u32 greeting);
void StringTemplate_SetITGreeting(StringTemplate *template, u32 idx, u32 greeting);
void StringTemplate_SetDEGreeting(StringTemplate *template, u32 idx, u32 greeting);
void StringTemplate_SetESGreeting(StringTemplate *template, u32 idx, u32 greeting);
void StringTemplate_SetFurniture(StringTemplate *template, u32 idx, u32 furniture);
void StringTemplate_SetMonthName(StringTemplate *template, u32 idx, u32 month);
void StringTemplate_SetDepartmentStoreFloor(StringTemplate *template, u32 idx, u32 floor);
void StringTemplate_CapitalizeArgAtIndex(StringTemplate *template, u32 idx);
void StringTemplate_Format(const StringTemplate *template, Strbuf *dst, const Strbuf *fmtString);
void StringTemplate_ClearArgs(StringTemplate *template);
#endif // POKEPLATINUM_STRING_TEMPLATE_H

File diff suppressed because it is too large Load Diff