Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
console.h
Go to the documentation of this file.
1#ifndef NW4R_DB_CONSOLE_H
2#define NW4R_DB_CONSOLE_H
3
4#include <revolution/types.h>
5
6#include "assert.h"
7#include "../ut/CharWriter.h"
9
10namespace nw4hbm {
11 namespace db {
12 namespace detail {
13 struct ConsoleHead {
14 /* 0x00 */ u8* textBuf;
15 /* 0x04 */ u16 width;
16 /* 0x06 */ u16 height;
17 /* 0x08 */ u16 priority;
18 /* 0x0A */ u16 attr;
19 /* 0x0C */ u16 printTop;
20 /* 0x0E */ u16 printXPos;
21 /* 0x10 */ u16 printTopUsed;
22 /* 0x12 */ u16 ringTop;
23 /* 0x14 */ s32 ringTopLineCnt;
24 /* 0x18 */ s32 viewTopLine;
25 /* 0x1C */ s16 viewPosX;
26 /* 0x1E */ s16 viewPosY;
27 /* 0x20 */ u16 viewLines;
28 /* 0x22 */ bool isVisible;
29 /* 0x23 */ u8 padding_[1];
31 /* 0x28 */ ConsoleHead* next;
32 };
33 } // namespace detail
34
41
43
44 typedef void (*VisitStringCallback)(detail::ConsoleHead* console, u8* r4, long r5, u32 r6);
45
46 detail::ConsoleHead* Console_Create(void* buffer, u16 width, u16 height, u16 viewHeight,
47 u16 priority, u16 attr);
55 const char* format, std::va_list vlist);
57 const char* format);
58 void Console_Printf(detail::ConsoleHead* console, const char* format, ...);
59 void Console_PrintfD(detail::ConsoleHead* console, const char* format, ...);
60 void Console_PrintfT(detail::ConsoleHead* console, const char* format, ...);
64
65 static long Console_SetViewBaseLine(detail::ConsoleHead* console, long line);
67
68 static void Console_VPrintf(detail::ConsoleHead* console, const char* format, std::va_list vlist);
69
71 long baseLine = Console_GetTotalLines(console) - Console_GetViewHeight(console);
72
73 if (baseLine < 0)
74 baseLine = 0;
75
76 Console_SetViewBaseLine(console, baseLine);
77
78 return baseLine;
79 }
80
82 NW4R_ASSERT_CHECK_NULL(434, console);
83 return console->viewLines;
84 }
85
86 static bool Console_SetVisible(detail::ConsoleHead* console, bool isVisible) {
87 NW4R_ASSERT_CHECK_NULL(497, console);
88
89 bool before = console->isVisible;
90 console->isVisible = isVisible;
91 return before;
92 }
93
94 static long Console_SetViewBaseLine(detail::ConsoleHead* console, long line) {
95 NW4R_ASSERT_CHECK_NULL(557, console);
96 long before = console->viewTopLine;
97 console->viewTopLine = line;
98 return before;
99 }
100
101 } // namespace db
102} // namespace nw4hbm
103
104#endif
Definition TextWriterBase.h:22
Attr_c attr
Definition d_a_obj_ladder.cpp:88
static OSTime buffer
Definition ai.c:24
unsigned long u32
Definition types.h:12
signed short int s16
Definition types.h:9
unsigned short int u16
Definition types.h:10
signed long s32
Definition types.h:11
unsigned char u8
Definition types.h:8
void Console_VFPrintf(ConsoleOutputType type, detail::ConsoleHead *console, const char *format, std::va_list vlist)
static long Console_SetViewBaseLine(detail::ConsoleHead *console, long line)
Definition console.h:94
detail::ConsoleHead * ConsoleHandle
Definition console.h:42
void Console_Printf(detail::ConsoleHead *console, const char *format,...)
void Console_Destroy(detail::ConsoleHead *console)
void Console_Clear(detail::ConsoleHead *console)
detail::ConsoleHead * Console_Create(void *buffer, u16 width, u16 height, u16 viewHeight, u16 priority, u16 attr)
void Console_PrintfD(detail::ConsoleHead *console, const char *format,...)
static bool Console_SetVisible(detail::ConsoleHead *console, bool isVisible)
Definition console.h:86
void(* VisitStringCallback)(detail::ConsoleHead *console, u8 *r4, long r5, u32 r6)
Definition console.h:44
ConsoleOutputType
Definition console.h:35
@ CONSOLE_OUTPUT_NONE
Definition console.h:36
@ CONSOLE_OUTPUT_ALL
Definition console.h:39
@ CONSOLE_OUTPUT_DISPLAY
Definition console.h:38
@ CONSOLE_OUTPUT_TERMINAL
Definition console.h:37
void Console_Draw(detail::ConsoleHead *console, ut::TextWriterBase< char > &writer)
u16 Console_ChangePriority(detail::ConsoleHead *console, u16 r4)
long Console_GetTotalLines(detail::ConsoleHead *console)
static u16 Console_GetViewHeight(detail::ConsoleHead *console)
Definition console.h:81
void Console_DrawDirectAll()
void Console_DrawDirect(detail::ConsoleHead *console)
static void Console_VPrintf(detail::ConsoleHead *console, const char *format, std::va_list vlist)
static long Console_ShowLatestLine(detail::ConsoleHead *console)
Definition console.h:70
void Console_FPrintf(ConsoleOutputType type, detail::ConsoleHead *console, const char *format)
void Console_VisitString(detail::ConsoleHead *console, VisitStringCallback visitor)
void Console_PrintfT(detail::ConsoleHead *console, const char *format,...)
void Console_DrawAll()
Definition HBMAnmController.h:6
Definition console.h:13
u16 width
Definition console.h:15
u16 priority
Definition console.h:17
s16 viewPosY
Definition console.h:26
u16 height
Definition console.h:16
ConsoleHead * next
Definition console.h:31
s16 viewPosX
Definition console.h:25
bool isVisible
Definition console.h:28
s32 ringTopLineCnt
Definition console.h:23
u16 printTop
Definition console.h:19
u16 attr
Definition console.h:18
u8 padding_[1]
Definition console.h:29
u16 printXPos
Definition console.h:20
u8 * textBuf
Definition console.h:14
u16 printTopUsed
Definition console.h:21
u16 ringTop
Definition console.h:22
ut::TextWriterBase< char > * writer
Definition console.h:30
u16 viewLines
Definition console.h:27
s32 viewTopLine
Definition console.h:24