#ifndef GIFMANAGER_H #define GIFMANAGER_H #include "decomp.h" #include "mxtypes.h" #include #include struct GifData { public: const char* m_name; LPDIRECTDRAWSURFACE m_surface; LPDIRECTDRAWPALETTE m_palette; LPDIRECT3DRMTEXTURE2 m_texture; MxU8* m_data; }; struct GifMapEntry { public: GifMapEntry* m_right; GifMapEntry* m_parent; GifMapEntry* m_left; const char* m_key; GifData* m_value; }; class GifMap { public: GifMapEntry* FindNode(const char*& string); inline GifData* Get(const char* string) { GifData* ret = NULL; GifMapEntry* entry = FindNode(string); if (((m_unk4 == entry || strcmp(string, entry->m_key) > 0) ? m_unk4 : entry) != entry) ret = entry->m_value; return ret; } undefined4 m_unk0; GifMapEntry* m_unk4; }; // VTABLE: LEGO1 0x100d86d4 class GifManagerBase { public: // STUB: LEGO1 0x1005a310 virtual ~GifManagerBase() {} // vtable+00 inline GifData* Get(const char* name) { return m_unk8.Get(name); } protected: undefined4 m_unk0; undefined4 m_unk4; GifMap m_unk8; }; // VTABLE: LEGO1 0x100d86fc class GifManager : public GifManagerBase { public: // STUB: LEGO1 0x1005a580 virtual ~GifManager() {} // vtable+00 protected: undefined m_unk[0x1c]; }; #endif // GIFMANAGER_H