Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
JUTConsole.h
Go to the documentation of this file.
1#ifndef JUTCONSOLE_H
2#define JUTCONSOLE_H
3
7#include <cstdarg>
8
9class JUTConsole;
10
11extern "C" void JUTConsole_print_f_va_(JUTConsole*, const char*, va_list);
12extern "C" void JUTSetReportConsole(JUTConsole*);
14extern "C" void JUTSetWarningConsole(JUTConsole*);
16extern "C" void JUTWarningConsole_f_va(const char*, va_list);
17extern "C" void JUTReportConsole_f_va(const char*, va_list);
18extern "C" void JUTReportConsole_f(const char*, ...);
19extern "C" void JUTWarningConsole(const char* message);
20extern "C" void JUTWarningConsole_f(const char* message, ...);
21extern "C" void JUTReportConsole(const char* message);
22
27class JUTConsole : public JKRDisposer {
28public:
34
36 /* 0x0 */ OUTPUT_NONE,
37 /* 0x1 */ OUTPUT_OSREPORT,
38 /* 0x2 */ OUTPUT_CONSOLE,
40 };
41
42 static JUTConsole* create(unsigned int, void*, u32);
43 static JUTConsole* create(unsigned int, unsigned int, JKRHeap*);
44 JUTConsole(unsigned int, unsigned int, bool);
45 static size_t getObjectSizeFromBufferSize(unsigned int, unsigned int);
46 static size_t getLineFromObjectSize(u32, unsigned int);
47 void clear();
49 void print_f(char const*, ...);
50 void print(char const*);
51 void dumpToTerminal(unsigned int);
52 void scroll(int);
53 int getUsedLine() const;
54 int getLineOffset() const;
55
56 virtual ~JUTConsole();
57
58 void setOutput(unsigned int output) { mOutput = output; }
59 void setPosition(int x, int y) {
60 mPositionX = x;
61 mPositionY = y;
62 }
64 mFontSizeX = x;
65 mFontSizeY = y;
66 }
67 void setHeight(unsigned int height) {
68 mHeight = height;
69 if (mHeight > mMaxLines) {
71 }
72 }
73
74 void setFont(JUTFont* p_font) {
75 // Fakematch...? Fixes GCN but breaks Wii. TODO: Test after Wii flags are fixed.
76 p_font = mFont = p_font;
77 setFontSize(p_font->getWidth(), p_font->getHeight());
78 }
79
80 u32 getOutput() const { return mOutput; }
81 int getPositionY() const { return mPositionY; }
82 int getPositionX() const { return mPositionX; }
83 u32 getHeight() const { return mHeight; }
84
85 bool isVisible() const { return mVisible; }
86 void setVisible(bool visible) { mVisible = visible; }
87
88 u8 getLineAttr(int param_0) const { return mBuf[(field_0x20 + 2) * param_0]; }
89 void setLineAttr(int param_0, u8 param_1) { mBuf[(field_0x20 + 2) * param_0] = param_1; }
90 u8* getLinePtr(int param_0) const { return &mBuf[(field_0x20 + 2) * param_0] + 1; }
91 int diffIndex(int param_0, int param_1) const {
92 int result;
93 int diff = param_1 - param_0;
94 if (diff >= 0) {
95 result = diff;
96 } else {
97 result = diff + mMaxLines;
98 }
99 return result;
100 }
101
102 int prevIndex(int index) const {
103 return --index < 0 ? index = mMaxLines - 1 : index;
104 }
105
106 int nextIndex(int index) const { return (++index >= mMaxLines) ? index = 0 : index; }
107
110 void print_f_va(const char* fmt, va_list args) { JUTConsole_print_f_va_(this, fmt, args); }
111
113 /* 0x20 */ unsigned int field_0x20;
114 /* 0x24 */ int mMaxLines;
115 /* 0x28 */ u8* mBuf;
116 /* 0x2C */ bool field_0x2c;
117 /* 0x30 */ int field_0x30;
118 /* 0x34 */ int field_0x34;
119 /* 0x38 */ int field_0x38;
120 /* 0x3C */ int field_0x3c;
121 /* 0x40 */ int mPositionX;
122 /* 0x44 */ int mPositionY;
123 /* 0x48 */ u32 mHeight;
124 /* 0x4C */ JUTFont* mFont;
125 /* 0x50 */ f32 mFontSizeX;
126 /* 0x54 */ f32 mFontSizeY;
127 /* 0x58 */ int mOutput;
130 /* 0x64 */ int field_0x64;
131 /* 0x68 */ bool mVisible;
132 /* 0x69 */ bool field_0x69;
133 /* 0x6A */ bool field_0x6a;
134 /* 0x6B */ bool field_0x6b;
135}; // Size: 0x6C
136
142public:
147 void draw() const;
148 void drawDirect(bool) const;
150
152
153 static JUTConsoleManager* const getManager() { return sManager; }
154
156
157#ifdef __MWERKS__
158 typedef JGadget::TLinkList<JUTConsole, -offsetof(JUTConsole, mListNode)> ConsoleList;
159#else
160 // clangd does not support offsetof in template arguments.
162#endif
163
164private:
168}; // Size: 0x14
169
170#endif /* JUTCONSOLE_H */
void JUTWarningConsole_f(const char *message,...)
Definition JUTConsole.cpp:546
void JUTSetReportConsole(JUTConsole *)
Definition JUTConsole.cpp:480
JUTConsole * JUTGetWarningConsole()
Definition JUTConsole.cpp:494
void JUTReportConsole_f(const char *,...)
Definition JUTConsole.cpp:513
void JUTWarningConsole(const char *message)
Definition JUTConsole.cpp:555
void JUTReportConsole(const char *message)
Definition JUTConsole.cpp:527
JUTConsole * JUTGetReportConsole()
Definition JUTConsole.cpp:484
void JUTReportConsole_f_va(const char *, va_list)
Definition JUTConsole.cpp:498
void JUTConsole_print_f_va_(JUTConsole *, const char *, va_list)
Definition JUTConsole.cpp:293
void JUTSetWarningConsole(JUTConsole *)
Definition JUTConsole.cpp:490
void JUTWarningConsole_f_va(const char *, va_list)
Definition JUTConsole.cpp:531
Definition JKRDisposer.h:12
Definition JKRHeap.h:23
Definition JUTConsole.h:141
void removeConsole(JUTConsole *)
Definition JUTConsole.cpp:418
void drawDirect(bool) const
Definition JUTConsole.cpp:452
void setDirectConsole(JUTConsole *)
Definition JUTConsole.cpp:467
JGadget::TLinkList< JUTConsole, -offsetof(JUTConsole, mListNode)> ConsoleList
Definition JUTConsole.h:158
JUTConsole * mDirectConsole
Definition JUTConsole.h:167
JUTConsoleManager()
Definition JUTConsole.cpp:391
static JUTConsoleManager *const getManager()
Definition JUTConsole.h:153
JUTConsole * getDirectConsole() const
Definition JUTConsole.h:151
static JUTConsoleManager * sManager
Definition JUTConsole.h:155
ConsoleList soLink_
Definition JUTConsole.h:165
static JUTConsoleManager * createManager(JKRHeap *)
Definition JUTConsole.cpp:396
void draw() const
Definition JUTConsole.cpp:438
JUTConsole * mActiveConsole
Definition JUTConsole.h:166
void appendConsole(JUTConsole *)
Definition JUTConsole.cpp:407
Definition JUTConsole.h:27
int field_0x30
Definition JUTConsole.h:117
void setHeight(unsigned int height)
Definition JUTConsole.h:67
u8 getLineAttr(int param_0) const
Definition JUTConsole.h:88
void scrollToFirstLine()
Definition JUTConsole.h:109
int diffIndex(int param_0, int param_1) const
Definition JUTConsole.h:91
int field_0x34
Definition JUTConsole.h:118
void print_f_va(const char *fmt, va_list args)
Definition JUTConsole.h:110
void clear()
Definition JUTConsole.cpp:89
int getPositionX() const
Definition JUTConsole.h:82
u32 getOutput() const
Definition JUTConsole.h:80
bool isVisible() const
Definition JUTConsole.h:85
int getUsedLine() const
Definition JUTConsole.cpp:381
void doDraw(JUTConsole::EConsoleType) const
Definition JUTConsole.cpp:103
void setLineAttr(int param_0, u8 param_1)
Definition JUTConsole.h:89
u8 * getLinePtr(int param_0) const
Definition JUTConsole.h:90
f32 mFontSizeY
Definition JUTConsole.h:126
JGadget::TLinkListNode mListNode
Definition JUTConsole.h:112
int prevIndex(int index) const
Definition JUTConsole.h:102
OutputFlag
Definition JUTConsole.h:35
@ OUTPUT_NONE
Definition JUTConsole.h:36
@ OUTPUT_OSREPORT
Definition JUTConsole.h:37
@ OUTPUT_OSR_AND_CONSOLE
Definition JUTConsole.h:39
@ OUTPUT_CONSOLE
Definition JUTConsole.h:38
bool field_0x2c
Definition JUTConsole.h:116
bool field_0x69
Definition JUTConsole.h:132
void scroll(int)
Definition JUTConsole.cpp:354
int mPositionY
Definition JUTConsole.h:122
u32 mHeight
Definition JUTConsole.h:123
u32 getHeight() const
Definition JUTConsole.h:83
bool mVisible
Definition JUTConsole.h:131
u8 * mBuf
Definition JUTConsole.h:115
int field_0x64
Definition JUTConsole.h:130
void setVisible(bool visible)
Definition JUTConsole.h:86
int nextIndex(int index) const
Definition JUTConsole.h:106
void print(char const *)
Definition JUTConsole.cpp:226
static size_t getObjectSizeFromBufferSize(unsigned int, unsigned int)
Definition JUTConsole.cpp:78
virtual ~JUTConsole()
Definition JUTConsole.cpp:73
void scrollToLastLine()
Definition JUTConsole.h:108
static size_t getLineFromObjectSize(u32, unsigned int)
Definition JUTConsole.cpp:83
unsigned int field_0x20
Definition JUTConsole.h:113
JUtility::TColor field_0x5c
Definition JUTConsole.h:128
int mOutput
Definition JUTConsole.h:127
int getLineOffset() const
Definition JUTConsole.cpp:386
void setFontSize(f32 x, f32 y)
Definition JUTConsole.h:63
int field_0x3c
Definition JUTConsole.h:120
int field_0x38
Definition JUTConsole.h:119
bool field_0x6a
Definition JUTConsole.h:133
static JUTConsole * create(unsigned int, void *, u32)
Definition JUTConsole.cpp:29
bool field_0x6b
Definition JUTConsole.h:134
int mMaxLines
Definition JUTConsole.h:114
void setFont(JUTFont *p_font)
Definition JUTConsole.h:74
f32 mFontSizeX
Definition JUTConsole.h:125
EConsoleType
Definition JUTConsole.h:29
@ CONSOLE_TYPE_2
Definition JUTConsole.h:32
@ CONSOLE_TYPE_0
Definition JUTConsole.h:30
@ CONSOLE_TYPE_1
Definition JUTConsole.h:31
int getPositionY() const
Definition JUTConsole.h:81
void print_f(char const *,...)
Definition JUTConsole.cpp:217
void setPosition(int x, int y)
Definition JUTConsole.h:59
int mPositionX
Definition JUTConsole.h:121
void setOutput(unsigned int output)
Definition JUTConsole.h:58
void dumpToTerminal(unsigned int)
Definition JUTConsole.cpp:301
JUTFont * mFont
Definition JUTConsole.h:124
JUtility::TColor field_0x60
Definition JUTConsole.h:129
JUTConsole(unsigned int, unsigned int, bool)
Definition JUTConsole.cpp:44
Definition JUTFont.h:69
virtual s32 getHeight() const =0
virtual s32 getWidth() const =0
static void message(do_class *i_this)
Definition d_a_do.cpp:2182
static u8 index[20][3]
Definition GXDraw.c:434
double x double x
Definition e_atan2.c:58
double x double y
Definition e_atan2.c:58
int diff
Definition e_fmod.c:41
unsigned long u32
Definition types.h:12
float f32
Definition types.h:25
unsigned char u8
Definition types.h:8
Definition linklist.h:11
Definition TColor.h:12