Shipwright/soh/src/code/z_kanfont.c
Baoulettes a5df9dddf0
Use Macro for __FILE__ & __LINE__ when possible (#559)
* First batch some overlay

* Almost all overlay

* effect & gamestate

* kaleido stuffs

* more overlay

* more left over from code folder

* remaining hardcoded line and file

* Open & Close _DISP __FILE__ & __LINE__ clean up

* Some if (1) {} remove

* LOG_xxxx __FILE__ , __LINE__ cleaned

* ASSERT macro __FILE__ __LINE__

* mtx without line/file in functions

* " if (1) {} " & "if (0) {}" and tab/white place

* LogUtils as macro

* GameState_, GameAlloc_, SystemArena_ & ZeldaArena_

* Revert "GameState_, GameAlloc_, SystemArena_ & ZeldaArena_"

This reverts commit 0d85caaf7e.

* Like last commit but as macro

* Fix matrix not using macros

* use function not macro

* DebugArena_* functions
GameAlloc_MallocDebug
BgCheck_PosErrorCheck as macros
removed issues with ; in macro file
2022-07-05 19:29:34 -04:00

227 lines
7.8 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "global.h"
#include <string.h>
#include "message_data_static.h"
#include "textures/nes_font_static/nes_font_static.h"
#include "textures/message_static/message_static.h"
static const char* fntTbl[] =
{
gMsgChar20SpaceTex,
gMsgChar21ExclamationMarkTex,
gMsgChar22QuotationMarkTex,
gMsgChar23NumberSignTex,
gMsgChar24DollarSignTex,
gMsgChar25PercentSignTex,
gMsgChar26AmpersandTex,
gMsgChar27ApostropheTex,
gMsgChar28LeftParenthesesTex,
gMsgChar29RightParenthesesTex,
gMsgChar2AAsteriskTex,
gMsgChar2BPlusSignTex,
gMsgChar2CCommaTex,
gMsgChar2DHyphenMinusTex,
gMsgChar2EFullStopTex,
gMsgChar2FSolidusTex,
gMsgChar30Digit0Tex,
gMsgChar31Digit1Tex,
gMsgChar32Digit2Tex,
gMsgChar33Digit3Tex,
gMsgChar34Digit4Tex,
gMsgChar35Digit5Tex,
gMsgChar36Digit6Tex,
gMsgChar37Digit7Tex,
gMsgChar38Digit8Tex,
gMsgChar39Digit9Tex,
gMsgChar3AColonTex,
gMsgChar3BSemicolonTex,
gMsgChar3CLessThanSignTex,
gMsgChar3DEqualsSignTex,
gMsgChar3EGreaterThanSignTex,
gMsgChar3FQuestionMarkTex,
gMsgChar40CommercialAtTex,
gMsgChar41LatinCapitalLetterATex,
gMsgChar42LatinCapitalLetterBTex,
gMsgChar43LatinCapitalLetterCTex,
gMsgChar44LatinCapitalLetterDTex,
gMsgChar45LatinCapitalLetterETex,
gMsgChar46LatinCapitalLetterFTex,
gMsgChar47LatinCapitalLetterGTex,
gMsgChar48LatinCapitalLetterHTex,
gMsgChar49LatinCapitalLetterITex,
gMsgChar4ALatinCapitalLetterJTex,
gMsgChar4BLatinCapitalLetterKTex,
gMsgChar4CLatinCapitalLetterLTex,
gMsgChar4DLatinCapitalLetterMTex,
gMsgChar4ELatinCapitalLetterNTex,
gMsgChar4FLatinCapitalLetterOTex,
gMsgChar50LatinCapitalLetterPTex,
gMsgChar51LatinCapitalLetterQTex,
gMsgChar52LatinCapitalLetterRTex,
gMsgChar53LatinCapitalLetterSTex,
gMsgChar54LatinCapitalLetterTTex,
gMsgChar55LatinCapitalLetterUTex,
gMsgChar56LatinCapitalLetterVTex,
gMsgChar57LatinCapitalLetterWTex,
gMsgChar58LatinCapitalLetterXTex,
gMsgChar59LatinCapitalLetterYTex,
gMsgChar5ALatinCapitalLetterZTex,
gMsgChar5BLeftSquareBracketTex,
gMsgChar5CYenSignTex,
gMsgChar5DRightSquareBracketTex,
gMsgChar5ECircumflexAccentTex,
gMsgChar5FLowLineTex,
gMsgChar60GraveAccentTex,
gMsgChar61LatinSmallLetterATex,
gMsgChar62LatinSmallLetterBTex,
gMsgChar63LatinSmallLetterCTex,
gMsgChar64LatinSmallLetterDTex,
gMsgChar65LatinSmallLetterETex,
gMsgChar66LatinSmallLetterFTex,
gMsgChar67LatinSmallLetterGTex,
gMsgChar68LatinSmallLetterHTex,
gMsgChar69LatinSmallLetterITex,
gMsgChar6ALatinSmallLetterJTex,
gMsgChar6BLatinSmallLetterKTex,
gMsgChar6CLatinSmallLetterLTex,
gMsgChar6DLatinSmallLetterMTex,
gMsgChar6ELatinSmallLetterNTex,
gMsgChar6FLatinSmallLetterOTex,
gMsgChar70LatinSmallLetterPTex,
gMsgChar71LatinSmallLetterQTex,
gMsgChar72LatinSmallLetterRTex,
gMsgChar73LatinSmallLetterSTex,
gMsgChar74LatinSmallLetterTTex,
gMsgChar75LatinSmallLetterUTex,
gMsgChar76LatinSmallLetterVTex,
gMsgChar77LatinSmallLetterWTex,
gMsgChar78LatinSmallLetterXTex,
gMsgChar79LatinSmallLetterYTex,
gMsgChar7ALatinSmallLetterZTex,
gMsgChar7BLeftCurlyBracketTex,
gMsgChar7CVerticalLineTex,
gMsgChar7DRightCurlyBracketTex,
gMsgChar7ETildeTex,
gMsgChar7FBlankTex,
gMsgChar80LatinCapitalLetterAWithGraveTex,
gMsgChar81LatinCapitalLetterIWithCircumflexTex,
gMsgChar82LatinCapitalLetterAWithCircumflexTex,
gMsgChar83LatinCapitalLetterAWithDiaeresisTex,
gMsgChar84LatinCapitalLetterCWithCedillaTex,
gMsgChar85LatinCapitalLetterEWithGraveTex,
gMsgChar86LatinCapitalLetterEWithAcuteTex,
gMsgChar87LatinCapitalLetterEWithCircumflexTex,
gMsgChar88LatinCapitalLetterEWithDiaeresisTex,
gMsgChar89LatinCapitalLetterIWithDiaeresisTex,
gMsgChar8ALatinCapitalLetterOWithCircumflexTex,
gMsgChar8BLatinCapitalLetterOWithDiaeresisTex,
gMsgChar8CLatinCapitalLetterUWithGraveTex,
gMsgChar8DLatinCapitalLetterUWithCircumflexTex,
gMsgChar8ELatinCapitalLetterUWithDiaeresisTex,
gMsgChar8FLatinSmallLetterSharpSTex,
gMsgChar90LatinSmallLetterAWithGraveTex,
gMsgChar91LatinSmallLetterAWithAcuteTex,
gMsgChar92LatinSmallLetterAWithCircumflexTex,
gMsgChar93LatinSmallLetterAWithDiaeresisTex,
gMsgChar94LatinSmallLetterCWithCedillaTex,
gMsgChar95LatinSmallLetterEWithGraveTex,
gMsgChar96LatinSmallLetterEWithAcuteTex,
gMsgChar97LatinSmallLetterEWithCircumflexTex,
gMsgChar98LatinSmallLetterEWithDiaeresisTex,
gMsgChar99LatinSmallLetterIWithDiaeresisTex,
gMsgChar9ALatinSmallLetterOWithCircumflexTex,
gMsgChar9BLatinSmallLetterOWithDiaeresisTex,
gMsgChar9CLatinSmallLetterUWithGraveTex,
gMsgChar9DLatinSmallLetterUWithCircumflexTex,
gMsgChar9ELatinSmallLetterUWithDiaeresisTex,
gMsgChar9FButtonATex,
gMsgCharA0ButtonBTex,
gMsgCharA1ButtonCTex,
gMsgCharA2ButtonLTex,
gMsgCharA3ButtonRTex,
gMsgCharA4ButtonZTex,
gMsgCharA5ButtonCUpTex,
gMsgCharA6ButtonCDownTex,
gMsgCharA7ButtonCLeftTex,
gMsgCharA8ButtonCRightTex,
gMsgCharA9ZTargetSignTex,
gMsgCharAAControlStickTex,
gMsgCharABControlPadTex,
};
const char* msgStaticTbl[] =
{
gDefaultMessageBackgroundTex,
gSignMessageBackgroundTex,
gNoteStaffMessageBackgroundTex,
gFadingMessageBackgroundTex,
gMessageContinueTriangleTex,
gMessageEndSquareTex,
gMessageArrowTex
};
void func_8006EE50(Font* font, u16 arg1, u16 arg2) {
}
/**
* Loads a texture from nes_font_static for the requested `character` into the character texture buffer
* at `codePointIndex`. The value of `character` is the ASCII codepoint subtract ' '/0x20.
*/
void Font_LoadChar(Font* font, u8 character, u16 codePointIndex) {
//DmaMgr_SendRequest1(&font->charTexBuf[codePointIndex],
//&_nes_font_staticSegmentRomStart[character * FONT_CHAR_TEX_SIZE], FONT_CHAR_TEX_SIZE,
//__FILE__, __LINE__);
if (character < 0x8B)
memcpy(&font->charTexBuf[codePointIndex], ResourceMgr_LoadTexByName(fntTbl[character]), FONT_CHAR_TEX_SIZE);
}
/**
* Loads a message box icon from message_static, such as the ending triangle/square or choice arrow into the
* icon buffer.
* The different icons are given in the MessageBoxIcon enum.
*/
void Font_LoadMessageBoxIcon(Font* font, u16 icon) {
memcpy(font->iconBuf, ResourceMgr_LoadTexByName(msgStaticTbl[4 + icon]), FONT_CHAR_TEX_SIZE);
}
/**
* Loads a full set of character textures based on their ordering in the message with text id 0xFFFC into
* the font buffer.
*/
void Font_LoadOrderedFont(Font* font) {
size_t len;
size_t jj;
s32 fontStatic;
u8* fontBuf;
s32 codePointIndex;
s32 fontBufIndex;
s32 offset;
len = strlen(_message_0xFFFC_nes);
memcpy(font->msgBuf, _message_0xFFFC_nes, len);
osSyncPrintf("msg_data=%x, msg_data0=%x jj=%x\n", font->msgOffset, font->msgLength, jj = len);
len = jj;
for (fontBufIndex = 0, codePointIndex = 0; font->msgBuf[codePointIndex] != MESSAGE_END; codePointIndex++) {
if (codePointIndex > len) {
osSyncPrintf(" エラー!!! error───\n");
return;
}
if (font->msgBuf[codePointIndex] != MESSAGE_NEWLINE) {
fontBuf = font->fontBuf + fontBufIndex * 8;
fontStatic = _nes_font_staticSegmentRomStart;
osSyncPrintf("nes_mes_buf[%d]=%d\n", codePointIndex, font->msgBuf[codePointIndex]);
offset = (font->msgBuf[codePointIndex] - '\x20') * FONT_CHAR_TEX_SIZE;
memcpy(fontBuf, ResourceMgr_LoadTexByName(fntTbl[offset / FONT_CHAR_TEX_SIZE]), FONT_CHAR_TEX_SIZE);
//DmaMgr_SendRequest1(fontBuf, fontStatic + offset, FONT_CHAR_TEX_SIZE, __FILE__, __LINE__);
fontBufIndex += FONT_CHAR_TEX_SIZE / 8;
}
}
}