diff options
| author | Roman971 <32455037+Roman971@users.noreply.github.com> | 2021-11-28 14:48:17 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-11-28 08:48:17 -0500 |
| commit | 54d77c71f17f530e6bf0c9d75fb76cf3f951da17 (patch) | |
| tree | 2a902dd78f6affe604be583f8cb8dae5de814954 /src/code | |
| parent | 1fa6e3874b7283ec493466176c77d5ea85b4e76a (diff) | |
Improve gfxprint documentation and strings (#1028)
* Improve gfxprint documentation and strings
* Add GFXP_UNUSED_CHAR and rename bss variable
Diffstat (limited to 'src/code')
| -rw-r--r-- | src/code/db_camera.c | 140 | ||||
| -rw-r--r-- | src/code/gfxprint.c | 183 | ||||
| -rw-r--r-- | src/code/z_debug.c | 34 | ||||
| -rw-r--r-- | src/code/z_kankyo.c | 15 | ||||
| -rw-r--r-- | src/code/z_moji.c | 2 |
5 files changed, 188 insertions, 186 deletions
diff --git a/src/code/db_camera.c b/src/code/db_camera.c index f686a7f37..51112b781 100644 --- a/src/code/db_camera.c +++ b/src/code/db_camera.c @@ -3,71 +3,75 @@ static GlobalContext* sGlobalCtx; -char* D_8012CEE0[] = { "\x8Cキ-フレ-ム\x8Dガ" }; -const char* D_8012CEE4 = "\x8Dタリマセン。"; -const char* D_8012CEE8 = "\x8Dサイセイデキマセン"; -const char* D_8012CEEC = "\x8Dサイセイシュウリョウ"; -const char* D_8012CEF0 = "\x8Dサイセイチュウ!"; - -const char* D_8012CEF4 = "DEMO CAMERA TOOL"; -const char* D_8012CEF8[] = { "\x8Dモウハイリマセン", "\x8Dトウロク テンメ", "\x8Dヘンコウ / " }; -const char* D_8012CF04 = "> >"; -const char* D_8012CF08 = "< <"; -const char* D_8012CF0C = "< >"; -const char* D_8012CF10 = "\x8C*プレイヤ-*"; -const char* D_8012CF14 = "\x8C\Eモ-ド\x8D ソウタイ"; -const char* D_8012CF18[] = { "\x8C\Eモ-ド\x8Dゼッタイ", "\x8Dガメン\x8C デモ", "\x8Dガメン フツウ" }; -const char* D_8012CF24[] = { "\x8DPジカン MAX", "\x8Cリンク\x8D キオク", "\x8Cリンク\x8D ムシ" }; -const char* D_8012CF30 = "\x8D*ミテルイチ*"; -const char* D_8012CF34 = "\x8C*カメラ\x8Dイチ*"; -const char* D_8012CF38 = "DEBUG CAMERA"; -const char* D_8012CF3C = "\x8Cセンタ-/ロック"; -const char* D_8012CF40 = "\x8Cセンタ-/フリ-"; - -const char* D_8012CF44 = "DEMO CONTROL"; -const char* D_8012CF48 = "\x8Cメモリ\x8Dガタリマセン"; -const char* D_8012CF4C = "p"; -const char* D_8012CF50[] = { "e", "s", "l", "c" }; - -const char* D_8012CF60[] = { "\x8Cメモリパック" }; // "Mempak" -const char* D_8012CF64 = "\x8Cセーブ"; // "Save" -const char* D_8012CF68 = "\x8Cロード"; // "Load" -const char* D_8012CF6C = "\x8Cクリア-"; // "Clear" -const char* D_8012CF70 = "\x8Dヲヌカナイデネ"; - -const char* D_8012CF74 = "FREE BYTE"; -const char* D_8012CF78 = "NEED BYTE"; -const char* D_8012CF7C = "\x8C*メモリ-パック*"; -const char* D_8012CF80 = "\x8Dヲミツケラレマセン"; -char* D_8012CF84 = "\x8Cファイル \x8Dヲ"; -const char* D_8012CF88[] = { "\x8Dシテモイイデスカ?", "\x8Dゲンザイヘンシュウチュウノ", "\x8Cファイル\x8Dハハキサレマス" }; -const char* D_8012CF94 = "\x8Dハイ"; -const char* D_8012CF98 = "\x8Dイイエ"; -const char* D_8012CF9C[] = { "\x8Dシテイマス", "\x8Dウワガキ" }; -const char* D_8012CFA4 = "\x8Dシマシタ"; -const char* D_8012CFA8 = "USE BYTE"; -const char* D_8012CFAC = "\x8Dニシッパイ"; - -const char* D_8012CFB0 = "\x8C\Eモ-ド\x8D コテイ"; -char D_8012CFB4[] = "\x8Cフレ-ム "; -char D_8012CFC4[] = "\x8Cキ- / "; -char D_8012CFD0[] = "\x8D(センタ-テン)\0\0\0\0\0"; -char D_8012CFE4[] = "\x8D(ゲンテン)\0\0\0\0\0\0"; -char D_8012CFF8[] = "\x8C(プレイヤ-)\0\0\0\0\0"; -char D_8012D00C[] = "\x8D(イチアワセ)\0\0\0\0\0\0"; -char D_8012D020[] = "\x8D(セッテイ)\0\0\0\0\0\0\0\0"; -char D_8012D034[] = "\x8D(キャッカン)\0\0\0\0\0\0"; -char D_8012D048[] = "\x8CポイントNo. \0\0\0"; -char D_8012D05C[] = "\x8Dガカク \0\0\0"; -char D_8012D070[] = "\x8CNフレ-ム \0\0\0\0"; -char D_8012D084[] = "\x8DZカイテン \0\0\0"; -char D_8012D098[] = "\x8Cモ-ド \0\0\0\0"; -char D_8012D0AC[] = " R\x8Dチュウシン \0\0\0"; - -char D_8012D0C0[] = "\x8DPジカン \0\0"; -char D_8012D0D4[] = "\x8Dキョリ \0"; -char D_8012D0E4[] = "\x8DXカイテン \0\0"; -char D_8012D0F8[] = "\x8DYカイテン \0\0"; +// TODO: cleanup these arrays and UB access +char* D_8012CEE0[] = { GFXP_KATAKANA "キ-フレ-ム" GFXP_HIRAGANA "ガ" }; +char* D_8012CEE4 = GFXP_HIRAGANA "タリマセン。"; +char* D_8012CEE8 = GFXP_HIRAGANA "サイセイデキマセン"; +char* D_8012CEEC = GFXP_HIRAGANA "サイセイシュウリョウ"; +char* D_8012CEF0 = GFXP_HIRAGANA "サイセイチュウ!"; + +char* D_8012CEF4 = "DEMO CAMERA TOOL"; +char* D_8012CEF8[] = { GFXP_HIRAGANA "モウハイリマセン", GFXP_HIRAGANA "トウロク テンメ", GFXP_HIRAGANA "ヘンコウ / " }; +char* D_8012CF04 = "> >"; +char* D_8012CF08 = "< <"; +char* D_8012CF0C = "< >"; +char* D_8012CF10 = GFXP_KATAKANA "*プレイヤ-*"; +char* D_8012CF14 = GFXP_KATAKANA "Eモ-ド" GFXP_HIRAGANA " ソウタイ"; +char* D_8012CF18[] = { GFXP_KATAKANA "Eモ-ド" GFXP_HIRAGANA "ゼッタイ", GFXP_HIRAGANA "ガメン" GFXP_KATAKANA " デモ", + GFXP_HIRAGANA "ガメン フツウ" }; +char* D_8012CF24[] = { GFXP_HIRAGANA "Pジカン MAX", GFXP_KATAKANA "リンク" GFXP_HIRAGANA " キオク", + GFXP_KATAKANA "リンク" GFXP_HIRAGANA " ムシ" }; +char* D_8012CF30 = GFXP_HIRAGANA "*ミテルイチ*"; +char* D_8012CF34 = GFXP_KATAKANA "*カメラ" GFXP_HIRAGANA "イチ*"; +char* D_8012CF38 = "DEBUG CAMERA"; +char* D_8012CF3C = GFXP_KATAKANA "センタ-/ロック"; +char* D_8012CF40 = GFXP_KATAKANA "センタ-/フリ-"; + +char* D_8012CF44 = "DEMO CONTROL"; +char* D_8012CF48 = GFXP_KATAKANA "メモリ" GFXP_HIRAGANA "ガタリマセン"; +char* D_8012CF4C = "p"; +char* D_8012CF50[] = { "e", "s", "l", "c" }; + +char* D_8012CF60[] = { GFXP_KATAKANA "メモリパック" }; // "Mempak" +char* D_8012CF64 = GFXP_KATAKANA "セーブ"; // "Save" +char* D_8012CF68 = GFXP_KATAKANA "ロード"; // "Load" +char* D_8012CF6C = GFXP_KATAKANA "クリア-"; // "Clear" +char* D_8012CF70 = GFXP_HIRAGANA "ヲヌカナイデネ"; + +char* D_8012CF74 = "FREE BYTE"; +char* D_8012CF78 = "NEED BYTE"; +char* D_8012CF7C = GFXP_KATAKANA "*メモリ-パック*"; +char* D_8012CF80 = GFXP_HIRAGANA "ヲミツケラレマセン"; +char* D_8012CF84 = GFXP_KATAKANA "ファイル " GFXP_HIRAGANA "ヲ"; +char* D_8012CF88[] = { GFXP_HIRAGANA "シテモイイデスカ?", GFXP_HIRAGANA "ゲンザイヘンシュウチュウノ", + GFXP_KATAKANA "ファイル" GFXP_HIRAGANA "ハハキサレマス" }; +char* D_8012CF94 = GFXP_HIRAGANA "ハイ"; +char* D_8012CF98 = GFXP_HIRAGANA "イイエ"; +char* D_8012CF9C[] = { GFXP_HIRAGANA "シテイマス", GFXP_HIRAGANA "ウワガキ" }; +char* D_8012CFA4 = GFXP_HIRAGANA "シマシタ"; +char* D_8012CFA8 = "USE BYTE"; +char* D_8012CFAC = GFXP_HIRAGANA "ニシッパイ"; + +char* D_8012CFB0 = GFXP_KATAKANA "Eモ-ド" GFXP_HIRAGANA " コテイ"; +char D_8012CFB4[] = GFXP_KATAKANA "フレ-ム "; +char D_8012CFC4[] = GFXP_KATAKANA "キ- / "; +char D_8012CFD0[] = GFXP_HIRAGANA "(センタ-テン)\0\0\0\0\0"; +char D_8012CFE4[] = GFXP_HIRAGANA "(ゲンテン)\0\0\0\0\0\0"; +char D_8012CFF8[] = GFXP_KATAKANA "(プレイヤ-)\0\0\0\0\0"; +char D_8012D00C[] = GFXP_HIRAGANA "(イチアワセ)\0\0\0\0\0\0"; +char D_8012D020[] = GFXP_HIRAGANA "(セッテイ)\0\0\0\0\0\0\0\0"; +char D_8012D034[] = GFXP_HIRAGANA "(キャッカン)\0\0\0\0\0\0"; +char D_8012D048[] = GFXP_KATAKANA "ポイントNo. \0\0\0"; +char D_8012D05C[] = GFXP_HIRAGANA "ガカク \0\0\0"; +char D_8012D070[] = GFXP_KATAKANA "Nフレ-ム \0\0\0\0"; +char D_8012D084[] = GFXP_HIRAGANA "Zカイテン \0\0\0"; +char D_8012D098[] = GFXP_KATAKANA "モ-ド \0\0\0\0"; +char D_8012D0AC[] = " R" GFXP_HIRAGANA "チュウシン \0\0\0"; + +char D_8012D0C0[] = GFXP_HIRAGANA "Pジカン \0\0"; +char D_8012D0D4[] = GFXP_HIRAGANA "キョリ \0"; +char D_8012D0E4[] = GFXP_HIRAGANA "Xカイテン \0\0"; +char D_8012D0F8[] = GFXP_HIRAGANA "Yカイテン \0\0"; #define ACTION_E 0 #define ACTION_SAVE 1 @@ -1713,9 +1717,9 @@ void DbCamera_PrintAllCuts(Camera* cam) { osSyncPrintf("@@@\n@@@\n@@@/* ****** spline point data ** finish! ***** */\n@@@\n"); } -char D_8012D114[] = "\x8Cフレ-ム "; -char D_8012D128[] = "\x8Cト-タル "; -char D_8012D13C[] = "\x8Cキ- / "; +char D_8012D114[] = GFXP_KATAKANA "フレ-ム "; +char D_8012D128[] = GFXP_KATAKANA "ト-タル "; +char D_8012D13C[] = GFXP_KATAKANA "キ- / "; s32 func_800B91B0(Camera* cam, DbCamera* dbCamera) { s32 pointCount; diff --git a/src/code/gfxprint.c b/src/code/gfxprint.c index b526de9be..3917d440a 100644 --- a/src/code/gfxprint.c +++ b/src/code/gfxprint.c @@ -1,9 +1,5 @@ #include "global.h" -// .bss -u8 D_801755F0; - -// .data u16 sGfxPrintFontTLUT[64] = { 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, @@ -12,12 +8,12 @@ u16 sGfxPrintFontTLUT[64] = { 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, }; -u16 sGfxPrintUnkTLUT[16] = { +u16 sGfxPrintRainbowTLUT[16] = { 0xF801, 0xFBC1, 0xFFC1, 0x07C1, 0x0421, 0x003F, 0x803F, 0xF83F, 0xF801, 0xFBC1, 0xFFC1, 0x07C1, 0x0421, 0x003F, 0x803F, 0xF83F, }; -u8 sGfxPrintUnkData[8] = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77 }; +u8 sGfxPrintRainbowData[8] = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77 }; u8 sGfxPrintFontData[(16 * 256) / 2] = { 0x00, 0xDF, 0xFD, 0x00, 0x0A, 0xEE, 0xFF, 0xA0, 0x0D, 0xF2, 0x2D, 0xD0, 0x06, 0x61, 0x1D, 0xC0, 0x01, 0x12, 0x2D, @@ -130,38 +126,41 @@ u8 sGfxPrintFontData[(16 * 256) / 2] = { 0x1B, 0xAA, 0x40, 0x21, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; -void GfxPrint_InitDlist(GfxPrint* this) { +// Can be used to set GFXP_FLAG_ENLARGE by default +static u8 sDefaultSpecialFlags; + +void GfxPrint_Setup(GfxPrint* this) { s32 width = 16; s32 height = 256; s32 i; - gDPPipeSync(this->dlist++); - gDPSetOtherMode(this->dlist++, + gDPPipeSync(this->dList++); + gDPSetOtherMode(this->dList++, G_AD_DISABLE | G_CD_DISABLE | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_IA16 | G_TL_TILE | G_TD_CLAMP | G_TP_NONE | G_CYC_1CYCLE | G_PM_NPRIMITIVE, G_AC_NONE | G_ZS_PRIM | G_RM_XLU_SURF | G_RM_XLU_SURF2); - gDPSetCombineMode(this->dlist++, G_CC_DECALRGBA, G_CC_DECALRGBA); - gDPLoadTextureBlock_4b(this->dlist++, sGfxPrintFontData, G_IM_FMT_CI, width, height, 0, G_TX_NOMIRROR | G_TX_WRAP, + gDPSetCombineMode(this->dList++, G_CC_DECALRGBA, G_CC_DECALRGBA); + gDPLoadTextureBlock_4b(this->dList++, sGfxPrintFontData, G_IM_FMT_CI, width, height, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - gDPLoadTLUT(this->dlist++, 64, 256, sGfxPrintFontTLUT); + gDPLoadTLUT(this->dList++, 64, 256, sGfxPrintFontTLUT); for (i = 1; i < 4; i++) { - gDPSetTile(this->dlist++, G_IM_FMT_CI, G_IM_SIZ_4b, 1, 0, i * 2, i, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, + gDPSetTile(this->dList++, G_IM_FMT_CI, G_IM_SIZ_4b, 1, 0, i * 2, i, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD); - gDPSetTileSize(this->dlist++, i * 2, 0, 0, 60, 1020); + gDPSetTileSize(this->dList++, i * 2, 0, 0, 60, 1020); } - gDPSetColor(this->dlist++, G_SETPRIMCOLOR, this->color.rgba); + gDPSetColor(this->dList++, G_SETPRIMCOLOR, this->color.rgba); - gDPLoadMultiTile_4b(this->dlist++, sGfxPrintUnkData, 0, 1, G_IM_FMT_CI, 2, 8, 0, 0, 1, 7, 4, + gDPLoadMultiTile_4b(this->dList++, sGfxPrintRainbowData, 0, 1, G_IM_FMT_CI, 2, 8, 0, 0, 1, 7, 4, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 1, 3, G_TX_NOLOD, G_TX_NOLOD); - gDPLoadTLUT(this->dlist++, 16, 320, sGfxPrintUnkTLUT); + gDPLoadTLUT(this->dList++, 16, 320, sGfxPrintRainbowTLUT); for (i = 1; i < 4; i++) { - gDPSetTile(this->dlist++, G_IM_FMT_CI, G_IM_SIZ_4b, 1, 0, i * 2 + 1, 4, G_TX_NOMIRROR | G_TX_WRAP, 3, + gDPSetTile(this->dList++, G_IM_FMT_CI, G_IM_SIZ_4b, 1, 0, i * 2 + 1, 4, G_TX_NOMIRROR | G_TX_WRAP, 3, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 1, G_TX_NOLOD); - gDPSetTileSize(this->dlist++, i * 2 + 1, 0, 0, 4, 28); + gDPSetTileSize(this->dList++, i * 2 + 1, 0, 0, 4, 28); } } @@ -170,64 +169,64 @@ void GfxPrint_SetColor(GfxPrint* this, u32 r, u32 g, u32 b, u32 a) { this->color.g = g; this->color.b = b; this->color.a = a; - gDPPipeSync(this->dlist++); - gDPSetColor(this->dlist++, G_SETPRIMCOLOR, this->color.rgba); + gDPPipeSync(this->dList++); + gDPSetColor(this->dList++, G_SETPRIMCOLOR, this->color.rgba); } void GfxPrint_SetPosPx(GfxPrint* this, s32 x, s32 y) { - this->posX = this->baseX + (x << 2); - this->posY = this->baseY + (y << 2); + this->posX = this->baseX + (x * 4); + this->posY = this->baseY + (y * 4); } void GfxPrint_SetPos(GfxPrint* this, s32 x, s32 y) { - GfxPrint_SetPosPx(this, x << 3, y << 3); + GfxPrint_SetPosPx(this, x * 8, y * 8); } void GfxPrint_SetBasePosPx(GfxPrint* this, s32 x, s32 y) { - this->baseX = x << 2; - this->baseY = y << 2; + this->baseX = x * 4; + this->baseY = y * 4; } void GfxPrint_PrintCharImpl(GfxPrint* this, u8 c) { u32 tile = (c & 0xFF) * 2; - if (this->flag & GFXPRINT_UPDATE_MODE) { - this->flag &= ~GFXPRINT_UPDATE_MODE; + if (this->flags & GFXP_FLAG_UPDATE) { + this->flags &= ~GFXP_FLAG_UPDATE; - gDPPipeSync(this->dlist++); - if (this->flag & GFXPRINT_USE_RGBA16) { - gDPSetTextureLUT(this->dlist++, G_TT_RGBA16); - gDPSetCycleType(this->dlist++, G_CYC_2CYCLE); - gDPSetRenderMode(this->dlist++, G_RM_OPA_CI, G_RM_XLU_SURF2); - gDPSetCombineMode(this->dlist++, G_CC_INTERFERENCE, G_CC_PASS2); + gDPPipeSync(this->dList++); + if (this->flags & GFXP_FLAG_RAINBOW) { + gDPSetTextureLUT(this->dList++, G_TT_RGBA16); + gDPSetCycleType(this->dList++, G_CYC_2CYCLE); + gDPSetRenderMode(this->dList++, G_RM_OPA_CI, G_RM_XLU_SURF2); + gDPSetCombineMode(this->dList++, G_CC_INTERFERENCE, G_CC_PASS2); } else { - gDPSetTextureLUT(this->dlist++, G_TT_IA16); - gDPSetCycleType(this->dlist++, G_CYC_1CYCLE); - gDPSetRenderMode(this->dlist++, G_RM_XLU_SURF, G_RM_XLU_SURF2); - gDPSetCombineMode(this->dlist++, G_CC_MODULATEIDECALA_PRIM, G_CC_MODULATEIDECALA_PRIM); + gDPSetTextureLUT(this->dList++, G_TT_IA16); + gDPSetCycleType(this->dList++, G_CYC_1CYCLE); + gDPSetRenderMode(this->dList++, G_RM_XLU_SURF, G_RM_XLU_SURF2); + gDPSetCombineMode(this->dList++, G_CC_MODULATEIDECALA_PRIM, G_CC_MODULATEIDECALA_PRIM); } } - if (this->flag & GFXPRINT_FLAG4) { - gDPSetColor(this->dlist++, G_SETPRIMCOLOR, 0); + if (this->flags & GFXP_FLAG_SHADOW) { + gDPSetColor(this->dList++, G_SETPRIMCOLOR, 0); - if (this->flag & GFXPRINT_FLAG64) { - gSPTextureRectangle(this->dlist++, (this->posX + 4) << 1, (this->posY + 4) << 1, (this->posX + 4 + 32) << 1, + if (this->flags & GFXP_FLAG_ENLARGE) { + gSPTextureRectangle(this->dList++, (this->posX + 4) << 1, (this->posY + 4) << 1, (this->posX + 4 + 32) << 1, (this->posY + 4 + 32) << 1, tile, (u16)(c & 4) * 64, (u16)(c >> 3) * 256, 1 << 9, 1 << 9); } else { - gSPTextureRectangle(this->dlist++, this->posX + 4, this->posY + 4, this->posX + 4 + 32, this->posY + 4 + 32, + gSPTextureRectangle(this->dList++, this->posX + 4, this->posY + 4, this->posX + 4 + 32, this->posY + 4 + 32, tile, (u16)(c & 4) * 64, (u16)(c >> 3) * 256, 1 << 10, 1 << 10); } - gDPSetColor(this->dlist++, G_SETPRIMCOLOR, this->color.rgba); + gDPSetColor(this->dList++, G_SETPRIMCOLOR, this->color.rgba); } - if (this->flag & GFXPRINT_FLAG64) { - gSPTextureRectangle(this->dlist++, (this->posX) << 1, (this->posY) << 1, (this->posX + 32) << 1, + if (this->flags & GFXP_FLAG_ENLARGE) { + gSPTextureRectangle(this->dList++, (this->posX) << 1, (this->posY) << 1, (this->posX + 32) << 1, (this->posY + 32) << 1, tile, (u16)(c & 4) * 64, (u16)(c >> 3) * 256, 1 << 9, 1 << 9); } else { - gSPTextureRectangle(this->dlist++, this->posX, this->posY, this->posX + 32, this->posY + 32, tile, + gSPTextureRectangle(this->dList++, this->posX, this->posY, this->posX + 32, this->posY + 32, tile, (u16)(c & 4) * 64, (u16)(c >> 3) * 256, 1 << 10, 1 << 10); } @@ -238,11 +237,11 @@ void GfxPrint_PrintChar(GfxPrint* this, u8 c) { u8 charParam = c; if (c == ' ') { - this->posX += 0x20; - } else if (c > 0x20 && c < 0x7F) { + this->posX += 32; + } else if (c > ' ' && c < 0x7F) { GfxPrint_PrintCharImpl(this, charParam); } else if (c >= 0xA0 && c < 0xE0) { - if (this->flag & GFXPRINT_FLAG1) { + if (this->flags & GFXP_FLAG_HIRAGANA) { if (c < 0xC0) { charParam = c - 0x20; } else { @@ -252,91 +251,94 @@ void GfxPrint_PrintChar(GfxPrint* this, u8 c) { GfxPrint_PrintCharImpl(this, charParam); } else { switch (c) { - case 0: + case '\0': break; case '\n': - this->posY += 0x20; + this->posY += 32; case '\r': this->posX = this->baseX; break; case '\t': do { - GfxPrint_PrintCharImpl(this, 0x20); + GfxPrint_PrintCharImpl(this, ' '); } while ((this->posX - this->baseX) % 256); break; - case 0x8D: - this->flag |= GFXPRINT_FLAG1; + case GFXP_HIRAGANA_CHAR: + this->flags |= GFXP_FLAG_HIRAGANA; break; - case 0x8C: - this->flag &= ~GFXPRINT_FLAG1; + case GFXP_KATAKANA_CHAR: + this->flags &= ~GFXP_FLAG_HIRAGANA; break; - case 0x8B: - this->flag |= GFXPRINT_USE_RGBA16; - this->flag |= GFXPRINT_UPDATE_MODE; + case GFXP_RAINBOW_ON_CHAR: + this->flags |= GFXP_FLAG_RAINBOW; + this->flags |= GFXP_FLAG_UPDATE; break; - case 0x8A: - this->flag &= ~GFXPRINT_USE_RGBA16; - this->flag |= GFXPRINT_UPDATE_MODE; + case GFXP_RAINBOW_OFF_CHAR: + this->flags &= ~GFXP_FLAG_RAINBOW; + this->flags |= GFXP_FLAG_UPDATE; break; - case 0x8E: + case GFXP_UNUSED_CHAR: default: break; } } } -void GfxPrint_PrintStringWithSize(GfxPrint* this, const void* buffer, size_t charSize, size_t charCount) { +void GfxPrint_PrintStringWithSize(GfxPrint* this, const void* buffer, u32 charSize, u32 charCount) { const char* str = (const char*)buffer; - size_t count = charSize * charCount; + u32 count = charSize * charCount; - while (count) { - GfxPrint_PrintChar(this, *str++); + while (count != 0) { + GfxPrint_PrintChar(this, *(str++)); count--; } } void GfxPrint_PrintString(GfxPrint* this, const char* str) { - while (*str) { + while (*str != '\0') { GfxPrint_PrintChar(this, *(str++)); } } -GfxPrint* GfxPrint_Callback(GfxPrint* this, const char* str, size_t size) { +void* GfxPrint_Callback(void* arg, const char* str, u32 size) { + GfxPrint* this = arg; + GfxPrint_PrintStringWithSize(this, str, sizeof(char), size); + return this; } void GfxPrint_Init(GfxPrint* this) { - this->flag &= ~GFXPRINT_OPEN; + this->flags &= ~GFXP_FLAG_OPEN; - this->callback = &GfxPrint_Callback; - this->dlist = NULL; + this->callback = GfxPrint_Callback; + this->dList = NULL; this->posX = 0; this->posY = 0; this->baseX = 0; this->baseY = 0; this->color.rgba = 0; - this->flag &= ~GFXPRINT_FLAG1; - this->flag &= ~GFXPRINT_USE_RGBA16; - this->flag |= GFXPRINT_FLAG4; - this->flag |= GFXPRINT_UPDATE_MODE; + this->flags &= ~GFXP_FLAG_HIRAGANA; + this->flags &= ~GFXP_FLAG_RAINBOW; + this->flags |= GFXP_FLAG_SHADOW; + this->flags |= GFXP_FLAG_UPDATE; - if ((D_801755F0 & GFXPRINT_FLAG64)) { - this->flag |= GFXPRINT_FLAG64; //? dsdx/dtdy + if (sDefaultSpecialFlags & GFXP_FLAG_ENLARGE) { + this->flags |= GFXP_FLAG_ENLARGE; } else { - this->flag &= ~GFXPRINT_FLAG64; + this->flags &= ~GFXP_FLAG_ENLARGE; } } void GfxPrint_Destroy(GfxPrint* this) { } -void GfxPrint_Open(GfxPrint* this, Gfx* dlist) { - if (!(this->flag & GFXPRINT_OPEN)) { - this->flag |= GFXPRINT_OPEN; - this->dlist = dlist; - GfxPrint_InitDlist(this); +void GfxPrint_Open(GfxPrint* this, Gfx* dList) { + if (!(this->flags & GFXP_FLAG_OPEN)) { + this->flags |= GFXP_FLAG_OPEN; + this->dList = dList; + GfxPrint_Setup(this); } else { osSyncPrintf("gfxprint_open:2重オープンです\n"); } @@ -345,15 +347,16 @@ void GfxPrint_Open(GfxPrint* this, Gfx* dlist) { Gfx* GfxPrint_Close(GfxPrint* this) { Gfx* ret; - this->flag &= ~GFXPRINT_OPEN; - gDPPipeSync(this->dlist++); - ret = this->dlist; - this->dlist = NULL; + this->flags &= ~GFXP_FLAG_OPEN; + gDPPipeSync(this->dList++); + ret = this->dList; + this->dList = NULL; + return ret; } s32 GfxPrint_VPrintf(GfxPrint* this, const char* fmt, va_list args) { - return PrintUtils_VPrintf((PrintCallback*)&this->callback, fmt, args); + return PrintUtils_VPrintf(&this->callback, fmt, args); } s32 GfxPrint_Printf(GfxPrint* this, const char* fmt, ...) { diff --git a/src/code/z_debug.c b/src/code/z_debug.c index 21b0fee3e..2949f0ef9 100644 --- a/src/code/z_debug.c +++ b/src/code/z_debug.c @@ -79,7 +79,7 @@ void func_8006376C(u8 x, u8 y, u8 colorId, const char* text) { } // Draw Text -void func_80063828(GfxPrint* gfxPrint) { +void func_80063828(GfxPrint* printer) { s32 i; Color_RGBA8* color; PrintTextBuffer* buffer; @@ -92,9 +92,9 @@ void func_80063828(GfxPrint* gfxPrint) { text = buffer->text; color = &printTextColors[buffer->colorId]; - GfxPrint_SetColor(gfxPrint, color->r, color->g, color->b, color->a); - GfxPrint_SetPos(gfxPrint, buffer->x, buffer->y); - GfxPrint_Printf(gfxPrint, "%s", text); + GfxPrint_SetColor(printer, color->r, color->g, color->b, color->a); + GfxPrint_SetPos(printer, buffer->x, buffer->y); + GfxPrint_Printf(printer, "%s", text); i += 1; } while (i < D_8011E0B0); } @@ -186,7 +186,7 @@ void func_8006390C(Input* input) { } // Draw Memory Viewer -void func_80063C04(GfxPrint* gfxPrint) { +void func_80063C04(GfxPrint* printer) { s32 i; s32 page = (gGameInfo->regPage * REG_PER_PAGE) - REG_PER_PAGE; s32 regGroup = (gGameInfo->regGroup * REG_PAGES + gGameInfo->regPage) * REG_PER_PAGE - REG_PER_PAGE; @@ -197,16 +197,16 @@ void func_80063C04(GfxPrint* gfxPrint) { name[0] = 'R'; name[1] = regChar[gGameInfo->regGroup]; // r_group type char name[2] = '\0'; - GfxPrint_SetColor(gfxPrint, 0, 128, 128, 128); + GfxPrint_SetColor(printer, 0, 128, 128, 128); for (i = 0; i != REG_PER_PAGE; i++) { if (i == gGameInfo->regCur) { - GfxPrint_SetColor(gfxPrint, 0, 255, 255, 255); + GfxPrint_SetColor(printer, 0, 255, 255, 255); } - GfxPrint_SetPos(gfxPrint, 3, i + 5); - GfxPrint_Printf(gfxPrint, "%s%02d%6d", &name, page + i, gGameInfo->data[i + regGroup]); + GfxPrint_SetPos(printer, 3, i + 5); + GfxPrint_Printf(printer, "%s%02d%6d", &name, page + i, gGameInfo->data[i + regGroup]); if (i == gGameInfo->regCur) { - GfxPrint_SetColor(gfxPrint, 0, 128, 128, 128); + GfxPrint_SetColor(printer, 0, 128, 128, 128); } } } @@ -214,27 +214,27 @@ void func_80063C04(GfxPrint* gfxPrint) { void func_80063D7C(GraphicsContext* gfxCtx) { Gfx* sp7C; Gfx* sp78; - GfxPrint gfxPrint; + GfxPrint printer; Gfx* tempRet; OPEN_DISPS(gfxCtx, "../z_debug.c", 628); - GfxPrint_Init(&gfxPrint); + GfxPrint_Init(&printer); sp78 = POLY_OPA_DISP; tempRet = Graph_GfxPlusOne(POLY_OPA_DISP); gSPDisplayList(OVERLAY_DISP++, tempRet); - GfxPrint_Open(&gfxPrint, tempRet); + GfxPrint_Open(&printer, tempRet); if ((OREG(0) == 1) || (OREG(0) == 8)) { - func_80063828(&gfxPrint); + func_80063828(&printer); } if (gGameInfo->regPage != 0) { - func_80063C04(&gfxPrint); + func_80063C04(&printer); } D_8011E0B0 = 0; - sp7C = GfxPrint_Close(&gfxPrint); + sp7C = GfxPrint_Close(&printer); gSPEndDisplayList(sp7C++); Graph_BranchDlist(sp78, sp7C); POLY_OPA_DISP = sp7C; @@ -243,5 +243,5 @@ void func_80063D7C(GraphicsContext* gfxCtx) { CLOSE_DISPS(gfxCtx, "../z_debug.c", 664); - GfxPrint_Destroy(&gfxPrint); + GfxPrint_Destroy(&printer); } diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c index 8136ae000..736666ffc 100644 --- a/src/code/z_kankyo.c +++ b/src/code/z_kankyo.c @@ -777,8 +777,7 @@ void Environment_DisableUnderwaterLights(GlobalContext* globalCtx) { void Environment_PrintDebugInfo(GlobalContext* globalCtx, Gfx** gfx) { GfxPrint printer; - u32 time; - s32 pad; + s32 pad[2]; GfxPrint_Init(&printer); GfxPrint_Open(&printer, *gfx); @@ -793,8 +792,7 @@ void Environment_PrintDebugInfo(GlobalContext* globalCtx, Gfx** gfx) { GfxPrint_Printf(&printer, "%s", "ZELDATIME "); GfxPrint_SetColor(&printer, 255, 255, 255, 64); - time = gSaveContext.dayTime; - GfxPrint_Printf(&printer, "%02d", (u8)(24 * 60 / (f32)0x10000 * time / 60.0f)); + GfxPrint_Printf(&printer, "%02d", (u8)(24 * 60 / (f32)0x10000 * ((void)0, gSaveContext.dayTime) / 60.0f)); if ((gSaveContext.dayTime & 0x1F) >= 0x10 || gTimeIncrement >= 6) { GfxPrint_Printf(&printer, "%s", ":"); @@ -802,16 +800,14 @@ void Environment_PrintDebugInfo(GlobalContext* globalCtx, Gfx** gfx) { GfxPrint_Printf(&printer, "%s", " "); } - time = gSaveContext.dayTime; - GfxPrint_Printf(&printer, "%02d", (s16)(24 * 60 / (f32)0x10000 * time) % 60); + GfxPrint_Printf(&printer, "%02d", (s16)(24 * 60 / (f32)0x10000 * ((void)0, gSaveContext.dayTime)) % 60); GfxPrint_SetColor(&printer, 255, 255, 55, 64); GfxPrint_SetPos(&printer, 22, 9); GfxPrint_Printf(&printer, "%s", "VRBOXTIME "); GfxPrint_SetColor(&printer, 255, 255, 255, 64); - time = ((void)0, gSaveContext.skyboxTime); - GfxPrint_Printf(&printer, "%02d", (u8)(24 * 60 / (f32)0x10000 * time / 60.0f)); + GfxPrint_Printf(&printer, "%02d", (u8)(24 * 60 / (f32)0x10000 * ((void)0, gSaveContext.skyboxTime) / 60.0f)); if ((((void)0, gSaveContext.skyboxTime) & 0x1F) >= 0x10 || gTimeIncrement >= 6) { GfxPrint_Printf(&printer, "%s", ":"); @@ -819,8 +815,7 @@ void Environment_PrintDebugInfo(GlobalContext* globalCtx, Gfx** gfx) { GfxPrint_Printf(&printer, "%s", " "); } - time = ((void)0, gSaveContext.skyboxTime); - GfxPrint_Printf(&printer, "%02d", (s16)(45.0f / 2048.0f * time) % 60); + GfxPrint_Printf(&printer, "%02d", (s16)(24 * 60 / (f32)0x10000 * ((void)0, gSaveContext.skyboxTime)) % 60); GfxPrint_SetColor(&printer, 55, 255, 255, 64); GfxPrint_SetPos(&printer, 22, 6); diff --git a/src/code/z_moji.c b/src/code/z_moji.c index 9c5103146..270908237 100644 --- a/src/code/z_moji.c +++ b/src/code/z_moji.c @@ -82,7 +82,7 @@ void Moji_DrawChar(GraphicsContext* gfxCtx, char c) { /** * Does not work as is in most cases. * Can work if the render mode, combiner and possibly other settings are set correctly. - * For example this works with the render mode used in `GfxPrint_InitDlist`, + * For example this works with the render mode used in `GfxPrint_Setup`, * and `G_CC_MODULATEI_PRIM` for both combiner cycles. */ void Moji_DrawString(GraphicsContext* gfxCtx, const char* str) { |
