mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-08-13 17:03:47 -04:00
a5df9dddf0
* 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
227 lines
7.8 KiB
C
227 lines
7.8 KiB
C
#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!! エラー!!! 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;
|
||
}
|
||
}
|
||
}
|