//FTTFont - [2020-06-22 11:41:46]
#ifndef _FTTFONT_H_
#define _FTTFONT_H_

#include "CFTTTexLoadOptions.h"
#include "FontDef.h"
#include "CFTTTexture.h"

/*
001FC764 FTTFont_IsInit()
001FC770 FTTFont_Init(int)
001FC7EC FTTFont_Shutdown()
001FC838 FTTFont_Reset()
001FC874 FTTFont_FreeAllFonts()
001FC894 FTTFont_GetFontVerticalSpacing(ushort)
001FC8A8 FTTFont_SetFontVerticalSpacing(ushort,float)
001FC8BC FTTFont_GetFontYOffset(ushort)
001FC8D0 FTTFont_SetFontYOffset(ushort,float)
001FC8E4 FTTFont_AddFont(ushort,char const*,CFTTTexLoadOptions const&,int,int)
001FC928 FTTFont_FreeFont(ushort)
001FC968 FTTFont_SetFont(ushort)
001FC990 FTTFont_GetFont()
001FC9C4 FTTFont_SetAlign(EFontAlign)
001FC9E4 FTTFont_SetColour(uint,uint)
001FC9FC FTTFont_SetScale(float,float)
001FCA34 FTTFont_SetGlyphScale(float)
001FCA50 FTTFont_GetScale(float *)
001FCA68 FTTFont_OverrideSDFShader(int)
001FCA88 FTTFont_Print(float,float,char const*)
001FCAD0 FTTFont_Printf(float,float,char const*,...)
001FCB34 FTTFont_PrintRot(float,float,float,float,float,char const*)
001FCB94 FTTFont_PrintRotf(float,float,float,float,float,char const*,...)
001FCC08 FTTFont_PrintWrap(float,float,EFontWrapType,float,float,char const*)
001FCC64 FTTFont_PrintWrapf(float,float,EFontWrapType,float,float,char const*,...)
001FCCD8 FTTFont_PrintWrapRot(float,float,EFontWrapType,float,float,float,float,float,char const*)
001FCD54 FTTFont_PrintWrapRotf(float,float,EFontWrapType,float,float,float,float,float,char const*,...)
001FCDEC FTTFont_PrintUnicode(float,float,wchar_t const*)
001FCE1C FTTFont_PrintfUnicode(float,float,wchar_t const*,...)
001FCE88 FTTFont_PrintRotUnicode(float,float,float,float,float,wchar_t const*)
001FCEC0 FTTFont_PrintRotfUnicode(float,float,float,float,float,wchar_t const*,...)
001FCF30 FTTFont_PrintWrapUnicode(float,float,EFontWrapType,float,float,wchar_t const*)
001FCF68 FTTFont_PrintWrapfUnicode(float,float,EFontWrapType,float,float,wchar_t const*,...)
001FCFD8 FTTFont_PrintWrapRotUnicode(float,float,EFontWrapType,float,float,float,float,float,wchar_t const*)
001FD020 FTTFont_PrintWrapRotfUnicode(float,float,EFontWrapType,float,float,float,float,float,wchar_t const*,...)
001FD0B0 FTTFont_GetTextDimensions(char const*)
001FD0EC FTTFont_GetTextDimensionsf(char const*,...)
001FD154 FTTFont_GetTextDimensionsWrap(EFontWrapType,float,char const*)
001FD198 FTTFont_GetTextDimensionsWrapf(EFontWrapType,float,char const*,...)
001FD1FC FTTFont_GetTextWidth(char const*)
001FD238 FTTFont_GetTextWidthf(char const*,...)
001FD2A0 FTTFont_GetUnicodeTextDimensions(wchar_t const*)
001FD2C4 FTTFont_GetUnicodeTextDimensionsf(wchar_t const*,...)
001FD32C FTTFont_GetUnicodeTextDimensionsWrap(EFontWrapType,float,wchar_t const*)
001FD350 FTTFont_GetUnicodeTextDimensionsWrapf(EFontWrapType,float,wchar_t const*,...)
001FD3AC FTTFont_GetUnicodeTextWidth(wchar_t const*)
001FD3D0 FTTFont_GetUnicodeTextWidthf(wchar_t const*,...)
001FD444 FTTFont_GetCharWidth(char)
001FD458 FTTFont_GetUnicodeCharWidth(wchar_t)
001FD46C FTTFont_GetUnicodeCharAdvance(wchar_t,wchar_t)
001FD484 FTTFont_GetNumTexturePages(ushort)
001FD498 FTTFont_GetTexture(ushort,ushort)
001FD4B0 FTTFont_GetCustomGlyphChar(wchar_t const*)
001FD4C4 FTTFont_GetGlyphEscapeChars(int &)
001FD4D8 FTTFont_RemoveCurrencySymbols(wchar_t *)
001FD548 FTTFont_RemoveSpecialCharacters(wchar_t *,bool)
001FD59C FTTFont_RemoveAccent(wchar_t,bool)
*/

//001FC764
uchar FTTFont_IsInit();

//001FC770
void FTTFont_Init(int);

//001FC7EC
void FTTFont_Shutdown();

//001FC838
void FTTFont_Reset();

//001FC874
void FTTFont_FreeAllFonts();

//001FC894
float FTTFont_GetFontVerticalSpacing(ushort);

//001FC8A8
void FTTFont_SetFontVerticalSpacing(ushort, float);

//001FC8BC
float FTTFont_GetFontYOffset(ushort);

//001FC8D0
void FTTFont_SetFontYOffset(ushort, float);

//001FC8E4
int FTTFont_AddFont(ushort, char const *, CFTTTexLoadOptions const &, int, int);

//001FC928
int FTTFont_FreeFont(ushort);

//001FC968
void FTTFont_SetFont(ushort);

//001FC990
int FTTFont_GetFont();

//001FC9C4
void FTTFont_SetAlign(EFontAlign);

//001FC9E4
void FTTFont_SetColour(uint, uint);

//001FC9FC
void FTTFont_SetScale(float, float);

//001FCA34
void FTTFont_SetGlyphScale(float);

//001FCA50
float FTTFont_GetScale(float *);

//001FCA68
void FTTFont_OverrideSDFShader(int);

//001FCA88
void FTTFont_Print(float, float, char const *);

//001FCAD0
void FTTFont_Printf(float, float, char const *, ...);

//001FCB34
void FTTFont_PrintRot(float, float, float, float, float, char const *);

//001FCB94
void FTTFont_PrintRotf(float, float, float, float, float, char const *, ...);

//001FCC08
void FTTFont_PrintWrap(float, float, EFontWrapType, float, float, char const *);

//001FCC64
void FTTFont_PrintWrapf(float, float, EFontWrapType, float, float, char const *, ...);

//001FCCD8
void FTTFont_PrintWrapRot(float, float, EFontWrapType, float, float, float, float, float, char const *);

//001FCD54
void FTTFont_PrintWrapRotf(float, float, EFontWrapType, float, float, float, float, float, char const *, ...);

//001FCDEC
void FTTFont_PrintUnicode(float, float, wchar_t const *);

//001FCE1C
void FTTFont_PrintfUnicode(float, float, wchar_t const *, ...);

//001FCE88
void FTTFont_PrintRotUnicode(float, float, float, float, float, wchar_t const *);

//001FCEC0
void FTTFont_PrintRotfUnicode(float, float, float, float, float, wchar_t const *, ...);

//001FCF30
void FTTFont_PrintWrapUnicode(float, float, EFontWrapType, float, float, wchar_t const *);

//001FCF68
void FTTFont_PrintWrapfUnicode(float, float, EFontWrapType, float, float, wchar_t const *, ...);

//001FCFD8
void FTTFont_PrintWrapRotUnicode(float f0, float f1, EFontWrapType eType2, float f3, float f4, float f5, float f6, float f7, wchar_t const *pWBuf8);

//001FD020
void FTTFont_PrintWrapRotfUnicode(float, float, EFontWrapType, float, float, float, float, float, wchar_t const *, ...);

//001FD0B0
TextDimensions FTTFont_GetTextDimensions(char const *);

//001FD0EC
void FTTFont_GetTextDimensionsf(char const *, ...);

//001FD154
void FTTFont_GetTextDimensionsWrap(EFontWrapType, float, char const *);

//001FD198
void FTTFont_GetTextDimensionsWrapf(EFontWrapType, float, char const *, ...);

//001FD1FC
void FTTFont_GetTextWidth(char const *);

//001FD238
void FTTFont_GetTextWidthf(char const *, ...);

//001FD2A0
TextDimensions FTTFont_GetUnicodeTextDimensions(wchar_t const *);

//001FD2C4
void FTTFont_GetUnicodeTextDimensionsf(wchar_t const *, ...);

//001FD32C
TextDimensions FTTFont_GetUnicodeTextDimensionsWrap(EFontWrapType, float, wchar_t const *);

//001FD350
void FTTFont_GetUnicodeTextDimensionsWrapf(EFontWrapType, float, wchar_t const *, ...);

//001FD3AC
float FTTFont_GetUnicodeTextWidth(wchar_t const *);

//001FD3D0
void FTTFont_GetUnicodeTextWidthf(wchar_t const *, ...);

//001FD444
void FTTFont_GetCharWidth(char);

//001FD458
void FTTFont_GetUnicodeCharWidth(wchar_t);

//001FD46C
void FTTFont_GetUnicodeCharAdvance(wchar_t, wchar_t);

//001FD484
void FTTFont_GetNumTexturePages(ushort);

CFTTTexture* FTTFont_GetTexture(ushort us_r0, ushort us_r1);                                                                                  //001FD498 0.25h
wchar_t FTTFont_GetCustomGlyphChar(wchar_t const * p_wc_r0);                                                                         //001FD4B0 0.25h
wchar_t** FTTFont_GetGlyphEscapeChars(int & d_r0);                                                                                  //001FD4C4 0.25h
void FTTFont_RemoveCurrencySymbols(wchar_t * p_wc_r0);                                                                            //001FD4D8 2h
bool FTTFont_RemoveSpecialCharacters(wchar_t * p_wc_r0, bool b_r1);                                                                    //001FD548 1h


//001FD59C
wchar_t FTTFont_RemoveAccent(wchar_t, bool);

#endif  //_FTTFONT_H_
