Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
DynamicLink.h
Go to the documentation of this file.
1#ifndef DYNAMICLINK_H
2#define DYNAMICLINK_H
3
4#include <dolphin/os.h>
6#include "global.h"
7
8class JKRArchive;
9class JKRFileCache;
11
13 /* 0x00 */ u16 mLinkCount;
14 /* 0x02 */ u16 mDoLinkCount;
17
18 /* 0x0C */ /*vtable*/
20 virtual const char* getModuleName() const { return NULL; };
21 virtual int getModuleSize() const { return 0; };
22 virtual const char* getModuleTypeString() const {return "Base";};
23#if __MWERKS__ && __MWERKS__ < 0x4200
24 // This is illegal function overloading, but MWCC for GC allows it. MWCC for Wii does not.
25 virtual void dump();
26#endif
27 static void dump();
28 static void dump(char*);
29
30 virtual void dump2() {};
31 virtual bool do_load() {return true;};
32 virtual BOOL do_load_async() {return true;};
33 virtual bool do_unload() {return true;};
34 virtual BOOL do_link() {return TRUE;};
35 virtual bool do_unlink() {return true; };
37 BOOL link();
38 BOOL unlink();
40 bool force_unlink();
42
43 static inline DynamicModuleControlBase* getFirstClass() { return mFirst; }
45 bool isLinked() const { return mLinkCount != 0; }
46
47 #if DEBUG
48 static void resetDoLinkCount() {} // TODO
49 static void dumpTag() {} // TODO
50 #endif
51
54
55 #if DEBUG
56 static u8 verbose;
57 #endif
58
59 #if PLATFORM_WII || PLATFORM_SHIELD
60 static JKRHeap* getHeap() { return m_heap; }
61
62 static JKRHeap* m_heap;
63 #endif
64};
65
67 virtual const char* getModuleName() const { return mName; };
69 virtual int getModuleSize() const;
70 virtual const char* getModuleTypeString() const;
71 // virtual void dump();
72 virtual void dump2();
73 virtual bool do_load();
74 virtual BOOL do_load_async();
75 virtual bool do_unload();
76 virtual BOOL do_link();
77 virtual bool do_unlink();
78 DynamicModuleControl(char const*);
79 static JKRArchive* mountCallback(void*);
80 static bool initialize();
81 static bool callback(void*);
82
84 /* 0x14 */ void* mBss;
85 /* 0x18 */ u32 unk_24;
86 /* 0x1c */ const char* mName;
87 /* 0x20 */ u8 mResourceType;
88 /* 0x21 */ u8 unk_33;
89 /* 0x22 */ u16 mChecksum;
90 /* 0x24 */ s32 mSize;
92
96};
97
98#endif /* DYNAMICLINK_H */
Definition JKRArchive.h:57
Definition JKRFileCache.h:12
Definition JKRHeap.h:20
Definition m_Do_dvd_thread.h:98
int BOOL
Definition types.h:33
unsigned long u32
Definition types.h:12
unsigned short int u16
Definition types.h:10
signed long s32
Definition types.h:11
unsigned char u8
Definition types.h:8
Definition DynamicLink.h:12
static DynamicModuleControlBase * mLast
Definition DynamicLink.h:53
virtual void dump()
Definition DynamicLink.cpp:96
BOOL load_async()
Definition DynamicLink.cpp:81
virtual BOOL do_link()
Definition DynamicLink.h:34
DynamicModuleControlBase()
Definition DynamicLink.cpp:37
DynamicModuleControlBase * getNextClass()
Definition DynamicLink.h:44
static void dumpTag()
Definition DynamicLink.h:49
virtual bool do_unload()
Definition DynamicLink.h:33
virtual const char * getModuleTypeString() const
Definition DynamicLink.h:22
static u8 verbose
Definition DynamicLink.h:56
DynamicModuleControlBase * mPrev
Definition DynamicLink.h:15
virtual ~DynamicModuleControlBase()
Definition DynamicLink.cpp:19
virtual bool do_unlink()
Definition DynamicLink.h:35
static void resetDoLinkCount()
Definition DynamicLink.h:48
virtual int getModuleSize() const
Definition DynamicLink.h:21
virtual const char * getModuleName() const
Definition DynamicLink.h:20
static DynamicModuleControlBase * getFirstClass()
Definition DynamicLink.h:43
virtual void dump2()
Definition DynamicLink.h:30
virtual bool do_load()
Definition DynamicLink.h:31
BOOL link()
Definition DynamicLink.cpp:51
bool force_unlink()
Definition DynamicLink.cpp:88
u16 mDoLinkCount
Definition DynamicLink.h:14
DynamicModuleControlBase * mNext
Definition DynamicLink.h:16
static JKRHeap * getHeap()
Definition DynamicLink.h:60
bool isLinked() const
Definition DynamicLink.h:45
static JKRHeap * m_heap
Definition DynamicLink.h:62
virtual BOOL do_load_async()
Definition DynamicLink.h:32
static DynamicModuleControlBase * mFirst
Definition DynamicLink.h:52
static void dump(char *)
u16 mLinkCount
Definition DynamicLink.h:13
static JKRHeap * createHeap(u32, JKRHeap *)
BOOL unlink()
Definition DynamicLink.cpp:67
Definition DynamicLink.h:66
OSModuleHeader * mModule
Definition DynamicLink.h:83
virtual BOOL do_link()
Definition DynamicLink.cpp:323
virtual const char * getModuleName() const
Definition DynamicLink.h:67
mDoDvdThd_callback_c * mAsyncLoadCallback
Definition DynamicLink.h:91
const char * mName
Definition DynamicLink.h:86
static u32 sAllocBytes
Definition DynamicLink.h:93
virtual ~DynamicModuleControl()
Definition DynamicLink.h:68
virtual int getModuleSize() const
Definition DynamicLink.cpp:439
u8 unk_33
Definition DynamicLink.h:88
virtual bool do_unlink()
Definition DynamicLink.cpp:419
u8 mResourceType
Definition DynamicLink.h:87
void * mBss
Definition DynamicLink.h:84
virtual void dump2()
Definition DynamicLink.cpp:314
virtual bool do_load()
Definition DynamicLink.cpp:185
virtual BOOL do_load_async()
Definition DynamicLink.cpp:284
static JKRFileCache * sFileCache
Definition DynamicLink.h:95
u16 mChecksum
Definition DynamicLink.h:89
static bool callback(void *)
Definition DynamicLink.cpp:170
static JKRArchive * mountCallback(void *)
Definition DynamicLink.cpp:149
static bool initialize()
Definition DynamicLink.cpp:162
static JKRArchive * sArchive
Definition DynamicLink.h:94
DynamicModuleControl(char const *)
Definition DynamicLink.cpp:129
virtual bool do_unload()
Definition DynamicLink.cpp:306
u32 unk_24
Definition DynamicLink.h:85
s32 mSize
Definition DynamicLink.h:90
virtual const char * getModuleTypeString() const
Definition DynamicLink.cpp:451
Definition OSModule.h:44