JUTConsole closer

This commit is contained in:
Jasper St. Pierre
2023-09-24 11:58:08 -07:00
parent 1e3a1cc8b1
commit 76f4e19cdc
3 changed files with 87 additions and 53 deletions
+25 -3
View File
@@ -20,9 +20,8 @@ struct TNodeLinkList {
struct iterator {
iterator(TLinkListNode* pNode) { node = pNode; }
iterator(const iterator& iter) { *this = iter; }
iterator& operator++() {
node = node->getNext();
return *this;
operator bool() const {
return node != NULL;
}
TLinkListNode* node;
@@ -31,6 +30,9 @@ struct TNodeLinkList {
struct const_iterator {
const_iterator(TLinkListNode* pNode) { node = pNode; }
const_iterator(const const_iterator& iter) { *this = iter; }
operator bool() const {
return node != NULL;
}
TLinkListNode* node;
};
@@ -53,11 +55,17 @@ struct TNodeLinkList {
return iter;
}
const_iterator begin() const {
const_iterator iter(ocObject_.mNext);
return iter;
}
~TNodeLinkList();
iterator erase(JGadget::TNodeLinkList::iterator, JGadget::TNodeLinkList::iterator);
iterator erase(JGadget::TNodeLinkList::iterator);
void splice(JGadget::TNodeLinkList::iterator, JGadget::TNodeLinkList&,
JGadget::TNodeLinkList::iterator);
iterator Find(const JGadget::TLinkListNode*);
iterator Insert(JGadget::TNodeLinkList::iterator, JGadget::TLinkListNode*);
iterator Erase(JGadget::TLinkListNode*);
void Remove(JGadget::TLinkListNode*);
@@ -74,6 +82,14 @@ struct TLinkList : public TNodeLinkList {
iterator(TNodeLinkList::iterator iter) : TNodeLinkList::iterator(iter) {}
};
struct const_iterator : TNodeLinkList::const_iterator {
const_iterator(TNodeLinkList::const_iterator iter) : TNodeLinkList::const_iterator(iter) {}
const_iterator& operator++() {
node = node->getNext();
return *this;
}
};
TLinkListNode* Element_toNode(T* element) const { return &element->ocObject_; }
void Insert(TLinkList::iterator iter, T* element) {
@@ -98,6 +114,12 @@ struct TLinkList : public TNodeLinkList {
return iter;
}
TLinkList::const_iterator begin() const {
TNodeLinkList::const_iterator node_iter = TNodeLinkList::begin();
TLinkList::const_iterator iter(node_iter);
return iter;
}
void Push_back(T* element) {
TLinkList::iterator iter(TLinkList::end());
this->Insert(iter, element);
+27 -27
View File
@@ -10,8 +10,8 @@
class JUTConsole : public JKRDisposer {
public:
enum EConsoleType {
CONSOLE_TYPE_0 = 0,
CONSOLE_TYPE_1 = 1,
ACTIVE = 0,
INACTIVE = 1,
CONSOLE_TYPE_2 = 2,
};
@@ -22,21 +22,21 @@ public:
/* 0x3 */ OUTPUT_OSR_AND_CONSOLE,
};
/* 802E73E4 */ static JUTConsole* create(unsigned int, void*, u32);
/* 802E7354 */ static JUTConsole* create(unsigned int, unsigned int, JKRHeap*);
/* 802E746C */ JUTConsole(unsigned int, unsigned int, bool);
/* 802E75CC */ static size_t getObjectSizeFromBufferSize(unsigned int, unsigned int);
/* 802E75DC */ static size_t getLineFromObjectSize(u32, unsigned int);
/* 802E75EC */ void clear();
/* 802E7648 */ void doDraw(JUTConsole::EConsoleType) const;
/* 802E7BB8 */ void print_f(char const*, ...);
/* 802E7C38 */ void print(char const*);
/* 802E7F7C */ void dumpToTerminal(unsigned int);
/* 802E80A8 */ void scroll(int);
/* 802E8184 */ int getUsedLine() const;
/* 802E81A8 */ int getLineOffset() const;
static JUTConsole* create(unsigned int, void*, u32);
static JUTConsole* create(unsigned int, unsigned int, JKRHeap*);
JUTConsole(unsigned int, unsigned int, bool);
static size_t getObjectSizeFromBufferSize(unsigned int, unsigned int);
static size_t getLineFromObjectSize(u32, unsigned int);
void clear();
void doDraw(JUTConsole::EConsoleType) const;
void print_f(char const*, ...);
void print(char const*);
void dumpToTerminal(unsigned int);
void scroll(int);
int getUsedLine() const;
int getLineOffset() const;
/* 802E755C */ virtual ~JUTConsole();
virtual ~JUTConsole();
void setOutput(unsigned int output) { mOutput = output; }
void setPosition(int x, int y) {
@@ -89,16 +89,16 @@ public:
void scrollToLastLine() { scroll(mMaxLines); }
void scrollToFirstLine() { scroll(-mMaxLines); }
private:
public:
/* 0x18 */ JGadget::TLinkListNode mListNode;
private:
/* 0x20 */ u32 field_0x20;
/* 0x24 */ int mMaxLines;
/* 0x24 */ s32 mMaxLines;
/* 0x28 */ u8* mBuf;
/* 0x2C */ bool field_0x2c;
/* 0x30 */ int field_0x30;
/* 0x34 */ int field_0x34;
/* 0x30 */ s32 field_0x30;
/* 0x34 */ s32 field_0x34;
/* 0x38 */ int field_0x38;
/* 0x3C */ int field_0x3c;
/* 0x40 */ int mPositionX;
@@ -118,13 +118,13 @@ private:
class JUTConsoleManager {
public:
/* 802E81CC */ JUTConsoleManager();
/* 802E81F4 */ static JUTConsoleManager* createManager(JKRHeap*);
/* 802E8240 */ void appendConsole(JUTConsole*);
/* 802E82B0 */ void removeConsole(JUTConsole*);
/* 802E8384 */ void draw() const;
/* 802E8450 */ void drawDirect(bool) const;
/* 802E84C4 */ void setDirectConsole(JUTConsole*);
JUTConsoleManager();
static JUTConsoleManager* createManager(JKRHeap*);
void appendConsole(JUTConsole*);
void removeConsole(JUTConsole*);
void draw() const;
void drawDirect(bool) const;
void setDirectConsole(JUTConsole*);
JUTConsole* getDirectConsole() const { return mDirectConsole; }