pokeplatinum/include/underground/text_printer.h
scbroede d1e71999e5
Some checks are pending
build / build (push) Waiting to run
underground cleanup pass (#961)
2026-02-21 15:49:30 -08:00

74 lines
4.5 KiB
C

#ifndef POKEPLATINUM_UNDERGROUND_TEXT_PRINTER_H
#define POKEPLATINUM_UNDERGROUND_TEXT_PRINTER_H
#include "constants/field_base_tiles.h"
#include "generated/goods.h"
#include "generated/traps.h"
#include "bg_window.h"
#include "list_menu.h"
#include "message.h"
#include "string_template.h"
#include "sys_task_manager.h"
#include "trainer_info.h"
typedef void (*UndergroundTextPrinterCallback)(int);
typedef struct UndergroundTextPrinter {
String *mainString;
String *formatString;
Window window;
BgConfig *bgConfig;
UndergroundTextPrinterCallback callback;
SysTask *sysTask;
MessageLoader *msgLoader;
StringTemplate *template;
int bankID;
int printerID;
enum HeapID heapID;
int renderDelay;
int callbackParam;
u16 windowBaseTile;
u16 messageBoxTile;
BOOL messageBoxActive : 1;
BOOL formattingNeeded : 1;
BOOL dummy : 1;
} UndergroundTextPrinter;
#define UG_TEXT_BASE_TILE_MESSAGE_WINDOW (BASE_TILE_SCROLLING_MESSAGE_BOX - 73 - MESSAGE_WINDOW_TILE_COUNT)
const ListMenuTemplate *UndergroundTextPrinter_GetListMenuTemplate(void);
UndergroundTextPrinter *UndergroundTextPrinter_New(int bankID, enum HeapID heapID, BgConfig *bgConfig, int renderDelay, int stringSize);
void UndergroundTextPrinter_Free(UndergroundTextPrinter *textPrinter);
void UndergroundTextPrinter_ChangeMessageLoaderBank(UndergroundTextPrinter *textPrinter, int bankID, enum MessageLoaderMode loaderMode);
void UndergroundTextPrinter_SetBackground(UndergroundTextPrinter *textPrinter, BgConfig *bgConfig, u16 messageBoxBaseTile, u16 windowBaseTile);
MessageLoader *UndergroundTextPrinter_GetMessageLoader(UndergroundTextPrinter *textPrinter);
int UndergroundTextPrinter_PrintText(UndergroundTextPrinter *textPrinter, int entryID, BOOL sysTaskManaged, UndergroundTextPrinterCallback callback);
int UndergroundTextPrinter_PrintTextInstant(UndergroundTextPrinter *textPrinter, int entryID, BOOL sysTaskManaged, UndergroundTextPrinterCallback callback);
int UndergroundTextPrinter_PrintTextWithCallbackParam(UndergroundTextPrinter *textPrinter, int entryID, BOOL sysTaskManaged, UndergroundTextPrinterCallback callback, int callbackParam);
void UndergroundTextPrinter_SetDummyField(UndergroundTextPrinter *textPrinter);
void UndergroundTextPrinter_EraseMessageBoxWindow(UndergroundTextPrinter *textPrinter);
void UndergroundTextPrinter_SetPlayerNameIndex1(UndergroundTextPrinter *textPrinter, TrainerInfo *trainerInfo);
void UndergroundTextPrinter_SetPlayerNameIndex0(UndergroundTextPrinter *textPrinter, TrainerInfo *trainerInfo);
void UndergroundTextPrinter_SetUndergroundItemNameWithArticle(UndergroundTextPrinter *textPrinter, int item);
void UndergroundTextPrinter_SetUndergroundTrapName(UndergroundTextPrinter *textPrinter, int trap);
void UndergroundTextPrinter_SetUndergroundQuestion(UndergroundTextPrinter *textPrinter, int question);
void UndergroundTextPrinter_SetUndergroundAnswer(UndergroundTextPrinter *textPrinter, int answer);
void UndergroundTextPrinter_SetUndergroundAnswerWithIndex(UndergroundTextPrinter *textPrinter, int index, int answer);
void UndergroundTextPrinter_SetUndergroundGoodsName(UndergroundTextPrinter *textPrinter, enum Good goodID);
void UndergroundTextPrinter_SetSingleDigitNumber(UndergroundTextPrinter *textPrinter, int index, int num);
void UndergroundTextPrinter_SetTwoDigitNumber(UndergroundTextPrinter *textPrinter, int num);
void UndergroundTextPrinter_SetTwoDigitNumberWithIndex(UndergroundTextPrinter *textPrinter, int index, int num);
void UndergroundTextPrinter_SetNumber(UndergroundTextPrinter *textPrinter, int num);
void UndergroundTextPrinter_SetUndergroundItemName(UndergroundTextPrinter *textPrinter, int index, int itemID);
void UndergroundTextPrinter_SetUndergroundTrapNameWithIndex(UndergroundTextPrinter *textPrinter, int index, enum Trap trapID);
void UndergroundTextPrinter_SetGoodNameWithIndex(UndergroundTextPrinter *textPrinter, int index, enum Good goodID);
void UndergroundTextPrinter_SetUndergroundItemNameWithArticleWithIndex(UndergroundTextPrinter *textPrinter, int index, int itemID);
void UndergroundTextPrinter_SetUndergroundTrapNameWithArticle(UndergroundTextPrinter *textPrinter, int index, enum Trap trapID);
void UndergroundTextPrinter_CapitalizeArgAtIndex(UndergroundTextPrinter *textPrinter, int index);
void UndergroundTextPrinter_RemovePrinter(UndergroundTextPrinter *textPrinter);
BOOL UndergroundTextPrinter_IsPrinterActive(UndergroundTextPrinter *textPrinter);
void UndergroundTextPrinter_ClearPrinterID(UndergroundTextPrinter *textPrinter);
#endif // POKEPLATINUM_UNDERGROUND_TEXT_PRINTER_H