mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-24 16:51:15 +00:00
65 lines
1.3 KiB
C++
65 lines
1.3 KiB
C++
#ifndef GIFMANAGER_H
|
|
#define GIFMANAGER_H
|
|
|
|
#include "decomp.h"
|
|
#include "mxtypes.h"
|
|
#include "ddraw.h"
|
|
#include "d3drmobj.h"
|
|
|
|
struct GifData {
|
|
public:
|
|
const char *m_name;
|
|
LPDIRECTDRAWSURFACE m_surface;
|
|
LPDIRECTDRAWPALETTE m_palette;
|
|
LPDIRECT3DRMTEXTURE2 m_texture;
|
|
MxU8 *data;
|
|
};
|
|
|
|
struct GifMapEntry {
|
|
public:
|
|
GifMapEntry *right;
|
|
GifMapEntry *parent;
|
|
GifMapEntry *left;
|
|
const char *key;
|
|
GifData *value;
|
|
};
|
|
|
|
extern GifMapEntry *DAT_100f0100;
|
|
|
|
class GifMap
|
|
{
|
|
public:
|
|
GifMapEntry *GifMap::FindNode(const char *&string);
|
|
inline GifData *Get(const char *string) {
|
|
GifData *ret = NULL;
|
|
GifMapEntry *entry = FindNode(string);
|
|
if (((m_unk4 == entry || strcmp(string, entry->key) > 0) ? m_unk4 : entry) != entry) {
|
|
ret = entry->value;
|
|
}
|
|
return ret;
|
|
}
|
|
undefined4 m_unk0;
|
|
GifMapEntry *m_unk4;
|
|
};
|
|
|
|
//VTABLE 100d86d4
|
|
class GifManagerBase {
|
|
public:
|
|
//OFFSET: LEGO1 0x1005a310 STUB
|
|
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 100d86fc
|
|
class GifManager : public GifManagerBase {
|
|
//OFFSET: LEGO1 0x1005a580 STUB
|
|
virtual ~GifManager() {} // vtable+00
|
|
protected:
|
|
undefined m_unk[0x1c];
|
|
};
|
|
|
|
#endif // GIFMANAGER_H
|