summaryrefslogtreecommitdiff
path: root/src/code/z_debug.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/code/z_debug.c')
-rw-r--r--src/code/z_debug.c70
1 files changed, 38 insertions, 32 deletions
diff --git a/src/code/z_debug.c b/src/code/z_debug.c
index ac4de7bf9..630cfc1ba 100644
--- a/src/code/z_debug.c
+++ b/src/code/z_debug.c
@@ -5,7 +5,7 @@ typedef struct {
u8 y;
u8 colorIndex;
char text[21];
-} PrintTextBufferEntry; // size = 0x18
+} DbCameraTextBufferEntry; // size = 0x18
typedef struct {
u16 hold;
@@ -14,17 +14,19 @@ typedef struct {
RegEditor* gRegEditor;
-PrintTextBufferEntry sDebugPrintTextBuffer[22];
-s16 sDebugPrintTextBufferNumUsed = 0;
-Color_RGBA8 sDebugPrintTextColors[] = {
- { 255, 255, 32, 192 }, // 0
- { 255, 150, 128, 192 }, // 1
- { 128, 96, 0, 64 }, // 2
- { 192, 128, 16, 128 }, // 3
- { 255, 192, 32, 128 }, // 4
- { 230, 230, 220, 64 }, // 5
- { 128, 150, 255, 128 }, // 6
- { 128, 255, 32, 128 }, // 7
+DbCameraTextBufferEntry sDbCameraTextBuffer[22];
+
+s16 sDbCameraTextEntryCount = 0;
+
+Color_RGBA8 sDbCameraTextColors[] = {
+ { 255, 255, 32, 192 }, // DBCAMERA_TEXT_YELLOW
+ { 255, 150, 128, 192 }, // DBCAMERA_TEXT_PEACH
+ { 128, 96, 0, 64 }, // DBCAMERA_TEXT_BROWN
+ { 192, 128, 16, 128 }, // DBCAMERA_TEXT_ORANGE
+ { 255, 192, 32, 128 }, // DBCAMERA_TEXT_GOLD
+ { 230, 230, 220, 64 }, // DBCAMERA_TEXT_WHITE
+ { 128, 150, 255, 128 }, // DBCAMERA_TEXT_BLUE
+ { 128, 255, 32, 128 }, // DBCAMERA_TEXT_GREEN
};
InputCombo sRegGroupInputCombos[REG_GROUPS] = {
@@ -106,18 +108,16 @@ void Regs_Init(void) {
}
}
-// Called when free movement is active.
-void func_8006375C(s32 arg0, s32 arg1, const char* text) {
+// Function is stubbed. Name is assumed by similarities in signature to `DbCamera_ScreenTextColored` and usage.
+void DbCamera_ScreenText(u8 x, u8 y, const char* text) {
}
-// Store text during Update, to be drawn later during Draw
-void func_8006376C(u8 x, u8 y, u8 colorIndex, const char* text) {
- PrintTextBufferEntry* entry;
+void DbCamera_ScreenTextColored(u8 x, u8 y, u8 colorIndex, const char* text) {
+ DbCameraTextBufferEntry* entry = &sDbCameraTextBuffer[sDbCameraTextEntryCount];
char* textDest;
s16 charCount;
- entry = &sDebugPrintTextBuffer[sDebugPrintTextBufferNumUsed];
- if (sDebugPrintTextBufferNumUsed < ARRAY_COUNT(sDebugPrintTextBuffer)) {
+ if (sDbCameraTextEntryCount < ARRAY_COUNT(sDbCameraTextBuffer)) {
entry->x = x;
entry->y = y;
entry->colorIndex = colorIndex;
@@ -125,34 +125,38 @@ void func_8006376C(u8 x, u8 y, u8 colorIndex, const char* text) {
// Copy text into the entry, truncating if needed
charCount = 0;
textDest = entry->text;
+
while ((*textDest++ = *text++) != '\0') {
if (charCount++ > (ARRAY_COUNT(entry->text) - 1)) {
break;
}
}
+
*textDest = '\0';
- sDebugPrintTextBufferNumUsed++;
+ sDbCameraTextEntryCount++;
}
}
-// Draw text previously stored by calls to `func_8006376C`
-void func_80063828(GfxPrint* printer) {
+void DbCamera_DrawScreenText(GfxPrint* printer) {
s32 i;
Color_RGBA8* color;
- PrintTextBufferEntry* entry;
+ DbCameraTextBufferEntry* entry;
- for (i = 0; i < sDebugPrintTextBufferNumUsed; i++) {
- entry = &sDebugPrintTextBuffer[i];
+ for (i = 0; i < sDbCameraTextEntryCount; i++) {
+ entry = &sDbCameraTextBuffer[i];
+ color = &sDbCameraTextColors[entry->colorIndex];
- color = &sDebugPrintTextColors[entry->colorIndex];
GfxPrint_SetColor(printer, color->r, color->g, color->b, color->a);
GfxPrint_SetPos(printer, entry->x, entry->y);
GfxPrint_Printf(printer, "%s", entry->text);
}
}
-// Process inputs to control the reg editor
+/**
+ * Updates the state of the Reg Editor according to user input.
+ * Also contains a controller rumble test that can be interfaced with via related REGs.
+*/
void Regs_UpdateEditor(Input* input) {
s32 dPadInputCur;
s32 pageDataStart = ((gRegEditor->regGroup * REG_PAGES) + gRegEditor->regPage - 1) * REGS_PER_PAGE;
@@ -160,6 +164,7 @@ void Regs_UpdateEditor(Input* input) {
s32 i;
dPadInputCur = input->cur.button & (BTN_DUP | BTN_DLEFT | BTN_DRIGHT | BTN_DDOWN);
+
if (CHECK_BTN_ALL(input->cur.button, BTN_L) || CHECK_BTN_ALL(input->cur.button, BTN_R) ||
CHECK_BTN_ALL(input->cur.button, BTN_START)) {
@@ -188,7 +193,6 @@ void Regs_UpdateEditor(Input* input) {
case 4:
case 5:
case 6:
-
if (dPadInputCur == gRegEditor->dPadInputPrev) {
gRegEditor->inputRepeatTimer--;
if (gRegEditor->inputRepeatTimer < 0) {
@@ -239,7 +243,6 @@ void Regs_UpdateEditor(Input* input) {
}
}
-// Draw the reg editor
void Regs_DrawEditor(GfxPrint* printer) {
s32 i;
s32 pageStart = (gRegEditor->regPage - 1) * REGS_PER_PAGE;
@@ -267,7 +270,10 @@ void Regs_DrawEditor(GfxPrint* printer) {
}
}
-void func_80063D7C(GraphicsContext* gfxCtx) {
+/**
+ * Draws the Reg Editor and Debug Camera text on screen
+ */
+void Debug_DrawText(GraphicsContext* gfxCtx) {
Gfx* gfx;
Gfx* opaStart;
GfxPrint printer;
@@ -282,14 +288,14 @@ void func_80063D7C(GraphicsContext* gfxCtx) {
GfxPrint_Open(&printer, gfx);
if ((OREG(0) == 1) || (OREG(0) == 8)) {
- func_80063828(&printer);
+ DbCamera_DrawScreenText(&printer);
}
if (gRegEditor->regPage != 0) {
Regs_DrawEditor(&printer);
}
- sDebugPrintTextBufferNumUsed = 0;
+ sDbCameraTextEntryCount = 0;
gfx = GfxPrint_Close(&printer);
gSPEndDisplayList(gfx++);