Skip to content

Instantly share code, notes, and snippets.

@sofar
Created April 21, 2017 22:26
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save sofar/21b8d3b70a83103c9c0cb9bf59bbaf21 to your computer and use it in GitHub Desktop.
all of mt's struct holes
struct _IO_FILE {
int _flags; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
char * _IO_read_ptr; /* 8 8 */
char * _IO_read_end; /* 16 8 */
char * _IO_read_base; /* 24 8 */
char * _IO_write_base; /* 32 8 */
char * _IO_write_ptr; /* 40 8 */
char * _IO_write_end; /* 48 8 */
char * _IO_buf_base; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
char * _IO_buf_end; /* 64 8 */
char * _IO_save_base; /* 72 8 */
char * _IO_backup_base; /* 80 8 */
char * _IO_save_end; /* 88 8 */
class _IO_marker * _markers; /* 96 8 */
class _IO_FILE * _chain; /* 104 8 */
int _fileno; /* 112 4 */
int _flags2; /* 116 4 */
__off_t _old_offset; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
short unsigned int _cur_column; /* 128 2 */
signed char _vtable_offset; /* 130 1 */
char _shortbuf[1]; /* 131 1 */
/* XXX 4 bytes hole, try to pack */
_IO_lock_t * _lock; /* 136 8 */
__off64_t _offset; /* 144 8 */
void * __pad1; /* 152 8 */
void * __pad2; /* 160 8 */
void * __pad3; /* 168 8 */
void * __pad4; /* 176 8 */
size_t __pad5; /* 184 8 */
/* --- cacheline 3 boundary (192 bytes) --- */
int _mode; /* 192 4 */
char _unused2[20]; /* 196 20 */
/* size: 216, cachelines: 4, members: 29 */
/* sum members: 208, holes: 2, sum holes: 8 */
/* last cacheline: 24 bytes */
};
struct typedef __va_list_tag __va_list_tag {
unsigned int gp_offset; /* 0 4 */
unsigned int fp_offset; /* 4 4 */
void * overflow_arg_area; /* 8 8 */
void * reg_save_area; /* 16 8 */
/* size: 24, cachelines: 1, members: 4 */
/* last cacheline: 24 bytes */
};
struct tm {
int tm_sec; /* 0 4 */
int tm_min; /* 4 4 */
int tm_hour; /* 8 4 */
int tm_mday; /* 12 4 */
int tm_mon; /* 16 4 */
int tm_year; /* 20 4 */
int tm_wday; /* 24 4 */
int tm_yday; /* 28 4 */
int tm_isdst; /* 32 4 */
/* XXX 4 bytes hole, try to pack */
long int tm_gmtoff; /* 40 8 */
const char * tm_zone; /* 48 8 */
/* size: 56, cachelines: 1, members: 11 */
/* sum members: 52, holes: 1, sum holes: 4 */
/* last cacheline: 56 bytes */
};
struct lconv {
char * decimal_point; /* 0 8 */
char * thousands_sep; /* 8 8 */
char * grouping; /* 16 8 */
char * int_curr_symbol; /* 24 8 */
char * currency_symbol; /* 32 8 */
char * mon_decimal_point; /* 40 8 */
char * mon_thousands_sep; /* 48 8 */
char * mon_grouping; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
char * positive_sign; /* 64 8 */
char * negative_sign; /* 72 8 */
char int_frac_digits; /* 80 1 */
char frac_digits; /* 81 1 */
char p_cs_precedes; /* 82 1 */
char p_sep_by_space; /* 83 1 */
char n_cs_precedes; /* 84 1 */
char n_sep_by_space; /* 85 1 */
char p_sign_posn; /* 86 1 */
char n_sign_posn; /* 87 1 */
char int_p_cs_precedes; /* 88 1 */
char int_p_sep_by_space; /* 89 1 */
char int_n_cs_precedes; /* 90 1 */
char int_n_sep_by_space; /* 91 1 */
char int_p_sign_posn; /* 92 1 */
char int_n_sign_posn; /* 93 1 */
/* size: 96, cachelines: 2, members: 24 */
/* padding: 2 */
/* last cacheline: 32 bytes */
};
struct timespec {
__time_t tv_sec; /* 0 8 */
__syscall_slong_t tv_nsec; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
};
struct __pthread_internal_list {
class __pthread_internal_list * __prev; /* 0 8 */
class __pthread_internal_list * __next; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
};
struct _IO_marker {
class _IO_marker * _next; /* 0 8 */
class _IO_FILE * _sbuf; /* 8 8 */
int _pos; /* 16 4 */
/* size: 24, cachelines: 1, members: 3 */
/* padding: 4 */
/* last cacheline: 24 bytes */
};
class ILogOutput {
public:
int ()(void) * * _vptr.ILogOutput; /* 0 8 */
void ~ILogOutput(class ILogOutput *, int);
void ILogOutput(class ILogOutput *, );
void ILogOutput(class ILogOutput *, const class ILogOutput &);
void ILogOutput(class ILogOutput *);
virtual void logRaw(class ILogOutput *, enum LogLevel, const string &);
virtual void log(class ILogOutput *, enum LogLevel, const string &, const string &, const string &, const string &);
/* vtable has 2 entries: {
[0] = logRaw((null)),
[1] = log((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
};
class Logger {
class vector<ILogOutput*, std::allocator<ILogOutput*> > m_outputs[6]; /* 0 144 */
/* --- cacheline 2 boundary (128 bytes) was 16 bytes ago --- */
volatile volatile bool m_silenced_levels; /* 144 6 */
/* XXX 2 bytes hole, try to pack */
class map<std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::thread::id>, std::allocator<std::pair<const std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > m_thread_names; /* 152 48 */
/* --- cacheline 3 boundary (192 bytes) was 8 bytes ago --- */
Mutex m_mutex; /* 200 40 */
bool m_trace_enabled; /* 240 1 */
public:
void addOutput(class Logger *, class ILogOutput *);
void addOutput(class Logger *, class ILogOutput *, enum LogLevel);
void addOutputMasked(class Logger *, class ILogOutput *, LogLevelMask);
void addOutputMaxLevel(class Logger *, class ILogOutput *, enum LogLevel);
LogLevelMask removeOutput(class Logger *, class ILogOutput *);
void setLevelSilenced(class Logger *, enum LogLevel, bool);
void registerThread(class Logger *, const string &);
void deregisterThread(class Logger *);
void log(class Logger *, enum LogLevel, const string &);
void logRaw(class Logger *, enum LogLevel, const string &);
void setTraceEnabled(class Logger *, bool);
bool getTraceEnabled(class Logger *);
enum LogLevel stringToLevel(const string &);
stringconst getLevelLabel(enum LogLevel);
void logToOutputsRaw(class Logger *, enum LogLevel, const string &);
void logToOutputs(class Logger *, enum LogLevel, const string &, const string &, const string &, const string &);
stringconst getThreadName(class Logger *);
/* size: 248, cachelines: 4, members: 5 */
/* sum members: 239, holes: 1, sum holes: 2 */
/* padding: 7 */
/* last cacheline: 56 bytes */
};
class StreamLogOutput : public ICombinedLogOutput {
public:
/* class ICombinedLogOutput <ancestor>; */ /* 0 8 */
ostream &const m_stream; /* 8 8 */
void StreamLogOutput(class StreamLogOutput *, ostream &);
virtual void logRaw(class StreamLogOutput *, enum LogLevel, const string &);
/* vtable has 1 entries: {
[0] = logRaw((null)),
} */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
/* BRAIN FART ALERT! 16 != 8 + 0(holes), diff = 8 */
};
class MainMenuManager : public IMenuManager {
public:
/* class IMenuManager <ancestor>; */ /* 0 8 */
class list<irr::gui::IGUIElement*, std::allocator<irr::gui::IGUIElement*> > m_stack; /* 8 24 */
void MainMenuManager(class MainMenuManager *, );
void MainMenuManager(class MainMenuManager *, const class MainMenuManager &);
void MainMenuManager(class MainMenuManager *);
virtual void createdMenu(class MainMenuManager *, class IGUIElement *);
virtual void deletingMenu(class MainMenuManager *, class IGUIElement *);
virtual bool preprocessEvent(class MainMenuManager *, const class SEvent &);
u32 menuCount(class MainMenuManager *);
bool pausesGame(class MainMenuManager *);
void ~MainMenuManager(class MainMenuManager *, int);
/* vtable has 3 entries: {
[0] = createdMenu((null)),
[1] = deletingMenu((null)),
[2] = preprocessEvent((null)),
} */
/* size: 32, cachelines: 1, members: 2 */
/* last cacheline: 32 bytes */
/* BRAIN FART ALERT! 32 != 24 + 0(holes), diff = 8 */
};
class MainGameCallback : public IGameCallback {
public:
/* class IGameCallback <ancestor>; */ /* 0 8 */
bool disconnect_requested; /* 8 1 */
bool changepassword_requested; /* 9 1 */
bool changevolume_requested; /* 10 1 */
bool keyconfig_requested; /* 11 1 */
bool shutdown_requested; /* 12 1 */
bool keyconfig_changed; /* 13 1 */
/* XXX 2 bytes hole, try to pack */
class IrrlichtDevice * device; /* 16 8 */
void MainGameCallback(class MainGameCallback *, );
void MainGameCallback(class MainGameCallback *, const class MainGameCallback &);
void MainGameCallback(class MainGameCallback *, class IrrlichtDevice *);
virtual void exitToOS(class MainGameCallback *);
virtual void disconnect(class MainGameCallback *);
virtual void changePassword(class MainGameCallback *);
virtual void changeVolume(class MainGameCallback *);
virtual void keyConfig(class MainGameCallback *);
virtual void signalKeyConfigChange(class MainGameCallback *);
/* vtable has 6 entries: {
[0] = exitToOS((null)),
[2] = disconnect((null)),
[3] = changePassword((null)),
[4] = changeVolume((null)),
[1] = keyConfig((null)),
[5] = signalKeyConfigChange((null)),
} */
/* size: 24, cachelines: 1, members: 8 */
/* sum members: 14, holes: 1, sum holes: 2 */
/* last cacheline: 24 bytes */
/* BRAIN FART ALERT! 24 != 14 + 2(holes), diff = 8 */
};
struct in6_addr {
union {
uint8_t __u6_addr8[16]; /* 16 */
uint16_t __u6_addr16[8]; /* 16 */
uint32_t __u6_addr32[4]; /* 16 */
};
union {
uint8_t __u6_addr8[16]; /* 16 */
uint16_t __u6_addr16[8]; /* 16 */
uint32_t __u6_addr32[4]; /* 16 */
} __in6_u; /* 0 16 */
/* size: 16, cachelines: 1, members: 1 */
/* last cacheline: 16 bytes */
};
class SharedBuffer<unsigned char> {
unsigned char * data; /* 0 8 */
unsigned int m_size; /* 8 4 */
/* XXX 4 bytes hole, try to pack */
unsigned int * refcount; /* 16 8 */
public:
void SharedBuffer(class SharedBuffer<unsigned char> *);
void SharedBuffer(class SharedBuffer<unsigned char> *, unsigned int);
void SharedBuffer(class SharedBuffer<unsigned char> *, const class SharedBuffer<unsigned char> &);
class SharedBuffer<unsigned char> & operator=(class SharedBuffer<unsigned char> *, const class SharedBuffer<unsigned char> &);
void SharedBuffer(class SharedBuffer<unsigned char> *, const unsigned char *, unsigned int);
void SharedBuffer(class SharedBuffer<unsigned char> *, const class Buffer<unsigned char> &);
void ~SharedBuffer(class SharedBuffer<unsigned char> *, int);
unsigned char & operator[](const class SharedBuffer<unsigned char> *, unsigned int);
unsigned char * operator*(const class SharedBuffer<unsigned char> *);
unsigned int getSize(const class SharedBuffer<unsigned char> *);
class Buffer<unsigned char> operator Buffer<unsigned char>(const class SharedBuffer<unsigned char> *);
void drop(class SharedBuffer<unsigned char> *);
/* size: 24, cachelines: 1, members: 3 */
/* sum members: 20, holes: 1, sum holes: 4 */
/* last cacheline: 24 bytes */
};
class Buffer<unsigned char> {
unsigned char * data; /* 0 8 */
unsigned int m_size; /* 8 4 */
public:
void Buffer(class Buffer<unsigned char> *);
void Buffer(class Buffer<unsigned char> *, unsigned int);
void Buffer(class Buffer<unsigned char> *, const class Buffer<unsigned char> &);
void Buffer(class Buffer<unsigned char> *, const unsigned char *, unsigned int);
void ~Buffer(class Buffer<unsigned char> *, int);
class Buffer<unsigned char> & operator=(class Buffer<unsigned char> *, const class Buffer<unsigned char> &);
unsigned char & operator[](const class Buffer<unsigned char> *, unsigned int);
unsigned char * operator*(const class Buffer<unsigned char> *);
unsigned int getSize(const class Buffer<unsigned char> *);
void drop(class Buffer<unsigned char> *);
/* size: 16, cachelines: 1, members: 2 */
/* padding: 4 */
/* last cacheline: 16 bytes */
};
struct FlagDesc {
const char * name; /* 0 8 */
u32 flag; /* 8 4 */
/* size: 16, cachelines: 1, members: 2 */
/* padding: 4 */
/* last cacheline: 16 bytes */
};
struct timezone {
int tz_minuteswest; /* 0 4 */
int tz_dsttime; /* 4 4 */
/* size: 8, cachelines: 1, members: 2 */
/* last cacheline: 8 bytes */
};
class Settings {
SettingEntries m_settings; /* 0 56 */
SettingEntries m_defaults; /* 56 56 */
/* --- cacheline 1 boundary (64 bytes) was 48 bytes ago --- */
SettingsCallbackMap m_callbacks; /* 112 56 */
/* --- cacheline 2 boundary (128 bytes) was 40 bytes ago --- */
Mutex m_callback_mutex; /* 168 40 */
/* --- cacheline 3 boundary (192 bytes) was 16 bytes ago --- */
Mutex m_mutex; /* 208 40 */
public:
void Settings(class Settings *);
void ~Settings(class Settings *, int);
class Settings & operator+=(class Settings *, const class Settings &);
class Settings & operator=(class Settings *, const class Settings &);
bool readConfigFile(class Settings *, const char *);
bool updateConfigFile(class Settings *, const char *);
bool parseCommandLine(class Settings *, int, char * *, class map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ValueSpec, std::less<std::__cxx11::b);
bool parseConfigLines(class Settings *, istream &, const string &);
void writeLines(const class Settings *, ostream &, u32);
enum SettingsParseEvent parseConfigObject(class Settings *, const string &, const string &, string &, string &);
bool updateConfigObject(class Settings *, istream &, ostream &, const string &, u32);
bool checkNameValid(const string &);
bool checkValueValid(const string &);
string getMultiline(istream &, size_t *);
void printEntry(ostream &, const string &, const class SettingsEntry &, u32);
const class SettingsEntry & getEntry(const class Settings *, const string &);
class Settings * getGroup(const class Settings *, const string &);
const string & get(const class Settings *, const string &);
bool getBool(const class Settings *, const string &);
u16 getU16(const class Settings *, const string &);
s16 getS16(const class Settings *, const string &);
s32 getS32(const class Settings *, const string &);
u64 getU64(const class Settings *, const string &);
float getFloat(const class Settings *, const string &);
v2f getV2F(const class Settings *, const string &);
v3f getV3F(const class Settings *, const string &);
u32 getFlagStr(const class Settings *, const string &, const class FlagDesc *, u32 *);
bool getStruct(const class Settings *, const string &, const string &, void *, size_t);
bool getNoiseParams(const class Settings *, const string &, class NoiseParams &);
bool getNoiseParamsFromValue(const class Settings *, const string &, class NoiseParams &);
bool getNoiseParamsFromGroup(const class Settings *, const string &, class NoiseParams &);
class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basi getNames(const class Settings *);
bool exists(const class Settings *, const string &);
bool getEntryNoEx(const class Settings *, const string &, class SettingsEntry &);
bool getGroupNoEx(const class Settings *, const string &, class Settings * &);
bool getNoEx(const class Settings *, const string &, string &);
bool getFlag(const class Settings *, const string &);
bool getU16NoEx(const class Settings *, const string &, u16 &);
bool getS16NoEx(const class Settings *, const string &, s16 &);
bool getS32NoEx(const class Settings *, const string &, s32 &);
bool getU64NoEx(const class Settings *, const string &, u64 &);
bool getFloatNoEx(const class Settings *, const string &, float &);
bool getV2FNoEx(const class Settings *, const string &, v2f &);
bool getV3FNoEx(const class Settings *, const string &, v3f &);
bool getFlagStrNoEx(const class Settings *, const string &, u32 &, class FlagDesc *);
bool setEntry(class Settings *, const string &, const void *, bool, bool);
bool set(class Settings *, const string &, const string &);
bool setDefault(class Settings *, const string &, const string &);
bool setGroup(class Settings *, const string &, class Settings *);
bool setGroupDefault(class Settings *, const string &, class Settings *);
bool setBool(class Settings *, const string &, bool);
bool setS16(class Settings *, const string &, s16);
bool setU16(class Settings *, const string &, u16);
bool setS32(class Settings *, const string &, s32);
bool setU64(class Settings *, const string &, u64);
bool setFloat(class Settings *, const string &, float);
bool setV2F(class Settings *, const string &, v2f);
bool setV3F(class Settings *, const string &, v3f);
bool setFlagStr(class Settings *, const string &, u32, const class FlagDesc *, u32);
bool setNoiseParams(class Settings *, const string &, const class NoiseParams &, bool);
bool setStruct(class Settings *, const string &, const string &, void *);
bool remove(class Settings *, const string &);
void clear(class Settings *);
void clearDefaults(class Settings *);
void updateValue(class Settings *, const class Settings &, const string &);
void update(class Settings *, const class Settings &);
void registerChangedCallback(class Settings *, const string &, SettingsChangedCallback, void *);
void deregisterChangedCallback(class Settings *, const string &, SettingsChangedCallback, void *);
void updateNoLock(class Settings *, const class Settings &);
void clearNoLock(class Settings *);
void clearDefaultsNoLock(class Settings *);
void doCallbacks(const class Settings *, const string &);
/* size: 248, cachelines: 4, members: 5 */
/* last cacheline: 56 bytes */
};
struct NoiseParams {
float offset; /* 0 4 */
float scale; /* 4 4 */
v3f spread; /* 8 12 */
s32 seed; /* 20 4 */
u16 octaves; /* 24 2 */
/* XXX 2 bytes hole, try to pack */
float persist; /* 28 4 */
float lacunarity; /* 32 4 */
u32 flags; /* 36 4 */
void NoiseParams(class NoiseParams *);
void NoiseParams(class NoiseParams *, float, float, v3f, s32, u16, float, float, u32);
/* size: 40, cachelines: 1, members: 8 */
/* sum members: 38, holes: 1, sum holes: 2 */
/* last cacheline: 40 bytes */
};
struct FrameSpec {
u32 texture_id; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
class ITexture * texture; /* 8 8 */
class ITexture * normal_texture; /* 16 8 */
class ITexture * flags_texture; /* 24 8 */
void FrameSpec(class FrameSpec *);
/* size: 32, cachelines: 1, members: 4 */
/* sum members: 28, holes: 1, sum holes: 4 */
/* last cacheline: 32 bytes */
};
struct SubgameSpec {
string id; /* 0 32 */
string path; /* 32 32 */
/* --- cacheline 1 boundary (64 bytes) --- */
string gamemods_path; /* 64 32 */
class set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > addon_mods_paths; /* 96 48 */
/* --- cacheline 2 boundary (128 bytes) was 16 bytes ago --- */
string name; /* 144 32 */
string menuicon_path; /* 176 32 */
void SubgameSpec(class SubgameSpec *, const string &, const string &, const string &, const class set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_, const string &, const string &);
bool isValid(const class SubgameSpec *);
class SubgameSpec & operator=(class SubgameSpec *, const class SubgameSpec &);
class SubgameSpec & operator=(class SubgameSpec *, );
void ~SubgameSpec(class SubgameSpec *, int);
/* size: 208, cachelines: 4, members: 6 */
/* last cacheline: 16 bytes */
};
struct WorldSpec {
string path; /* 0 32 */
string name; /* 32 32 */
/* --- cacheline 1 boundary (64 bytes) --- */
string gameid; /* 64 32 */
void WorldSpec(class WorldSpec *, const string &, const string &, const string &);
bool isValid(const class WorldSpec *);
class WorldSpec & operator=(class WorldSpec *, const class WorldSpec &);
void ~WorldSpec(class WorldSpec *, int);
/* size: 96, cachelines: 2, members: 3 */
/* last cacheline: 32 bytes */
};
struct StaticObject {
u8 type; /* 0 1 */
/* XXX 3 bytes hole, try to pack */
v3f pos; /* 4 12 */
string data; /* 16 32 */
void StaticObject(class StaticObject *);
void StaticObject(class StaticObject *, u8, v3f, const string &);
void serialize(class StaticObject *, ostream &);
void deSerialize(class StaticObject *, istream &, u8);
/* size: 48, cachelines: 1, members: 3 */
/* sum members: 45, holes: 1, sum holes: 3 */
/* last cacheline: 48 bytes */
};
struct SettingsEntry {
string value; /* 0 32 */
class Settings * group; /* 32 8 */
bool is_group; /* 40 1 */
void SettingsEntry(class SettingsEntry *);
void SettingsEntry(class SettingsEntry *, const string &);
void SettingsEntry(class SettingsEntry *, class Settings *);
/* size: 48, cachelines: 1, members: 3 */
/* padding: 7 */
/* last cacheline: 48 bytes */
};
struct MainMenuDataForScript {
bool reconnect_requested; /* 0 1 */
/* XXX 7 bytes hole, try to pack */
string errormessage; /* 8 32 */
void MainMenuDataForScript(class MainMenuDataForScript *);
void ~MainMenuDataForScript(class MainMenuDataForScript *, int);
/* size: 40, cachelines: 1, members: 2 */
/* sum members: 33, holes: 1, sum holes: 7 */
/* last cacheline: 40 bytes */
};
struct MainMenuData {
string servername; /* 0 32 */
string serverdescription; /* 32 32 */
/* --- cacheline 1 boundary (64 bytes) --- */
string address; /* 64 32 */
string port; /* 96 32 */
/* --- cacheline 2 boundary (128 bytes) --- */
string name; /* 128 32 */
string password; /* 160 32 */
/* --- cacheline 3 boundary (192 bytes) --- */
bool do_reconnect; /* 192 1 */
bool enable_public; /* 193 1 */
/* XXX 2 bytes hole, try to pack */
int selected_world; /* 196 4 */
bool simple_singleplayer_mode; /* 200 1 */
/* XXX 7 bytes hole, try to pack */
struct MainMenuDataForScript script_data; /* 208 40 */
void MainMenuData(class MainMenuData *);
void ~MainMenuData(class MainMenuData *, int);
/* size: 248, cachelines: 4, members: 11 */
/* sum members: 239, holes: 2, sum holes: 9 */
/* last cacheline: 56 bytes */
};
class KeyType {
enum T {
FORWARD = 0,
BACKWARD = 1,
LEFT = 2,
RIGHT = 3,
JUMP = 4,
SPECIAL1 = 5,
SNEAK = 6,
AUTORUN = 7,
ESC = 8,
DROP = 9,
INVENTORY = 10,
CHAT = 11,
CMD = 12,
CMD_LOCAL = 13,
CONSOLE = 14,
MINIMAP = 15,
FREEMOVE = 16,
FASTMOVE = 17,
NOCLIP = 18,
CINEMATIC = 19,
SCREENSHOT = 20,
TOGGLE_HUD = 21,
TOGGLE_CHAT = 22,
TOGGLE_FORCE_FOG_OFF = 23,
TOGGLE_UPDATE_CAMERA = 24,
TOGGLE_DEBUG = 25,
TOGGLE_PROFILER = 26,
CAMERA_MODE = 27,
INCREASE_VIEWING_RANGE = 28,
DECREASE_VIEWING_RANGE = 29,
RANGESELECT = 30,
ZOOM = 31,
QUICKTUNE_NEXT = 32,
QUICKTUNE_PREV = 33,
QUICKTUNE_INC = 34,
QUICKTUNE_DEC = 35,
DEBUG_STACKS = 36,
MOUSE_L = 37,
MOUSE_R = 38,
SCROLL_UP = 39,
SCROLL_DOWN = 40,
INTERNAL_ENUM_COUNT = 41,
};
/* size: 1, cachelines: 0, members: 0 */
/* last cacheline: 1 bytes */
};
struct JoystickAxisLayout {
u16 axis_id; /* 0 2 */
/* XXX 2 bytes hole, try to pack */
int invert; /* 4 4 */
/* size: 8, cachelines: 1, members: 2 */
/* sum members: 6, holes: 1, sum holes: 2 */
/* last cacheline: 8 bytes */
};
struct JoystickLayout {
class vector<JoystickButtonCmb, std::allocator<JoystickButtonCmb> > button_keys; /* 0 24 */
class vector<JoystickAxisCmb, std::allocator<JoystickAxisCmb> > axis_keys; /* 24 24 */
struct JoystickAxisLayout axes[4]; /* 48 32 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
s16 axes_dead_border; /* 80 2 */
void ~JoystickLayout(class JoystickLayout *, int);
/* size: 88, cachelines: 2, members: 4 */
/* padding: 6 */
/* last cacheline: 24 bytes */
};
class JoystickController {
public:
f32 doubling_dtime; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
struct JoystickLayout m_layout; /* 8 88 */
/* XXX last struct has 6 bytes of padding */
/* --- cacheline 1 boundary (64 bytes) was 32 bytes ago --- */
s16 m_axes_vals[4]; /* 96 8 */
u8 m_joystick_id; /* 104 1 */
/* XXX 7 bytes hole, try to pack */
class bitset<41ul> m_pressed_keys; /* 112 8 */
f32 m_internal_time; /* 120 4 */
f32 m_past_pressed_time[41]; /* 124 164 */
/* --- cacheline 4 boundary (256 bytes) was 32 bytes ago --- */
class bitset<41ul> m_past_pressed_keys; /* 288 8 */
class bitset<41ul> m_past_released_keys; /* 296 8 */
void JoystickController(class JoystickController *);
void onJoystickConnect(class JoystickController *, const class vector<irr::SJoystickInfo, std::allocator<irr::SJoystickInfo> > &);
bool handleEvent(class JoystickController *, const class SJoystickEvent &);
void clear(class JoystickController *);
bool wasKeyDown(class JoystickController *, GameKeyType);
bool getWasKeyDown(class JoystickController *, GameKeyType);
void clearWasKeyDown(class JoystickController *, GameKeyType);
bool wasKeyReleased(class JoystickController *, GameKeyType);
bool getWasKeyReleased(class JoystickController *, GameKeyType);
void clearWasKeyReleased(class JoystickController *, GameKeyType);
bool isKeyDown(class JoystickController *, GameKeyType);
s16 getAxis(class JoystickController *, enum JoystickAxis);
s16 getAxisWithoutDead(class JoystickController *, enum JoystickAxis);
void setLayoutFromControllerName(class JoystickController *, const string &);
void ~JoystickController(class JoystickController *, int);
/* size: 304, cachelines: 5, members: 9 */
/* sum members: 293, holes: 2, sum holes: 11 */
/* paddings: 1, sum paddings: 6 */
/* last cacheline: 48 bytes */
};
class KeyPress {
protected:
enum EKEY_CODE Key; /* 0 4 */
wchar_t Char; /* 4 4 */
string m_name; /* 8 32 */
public:
void KeyPress(class KeyPress *);
void KeyPress(class KeyPress *, const char *);
void KeyPress(class KeyPress *, const class SKeyInput &, bool);
bool operator==(const class KeyPress *, const class KeyPress &);
const char * sym(const class KeyPress *);
const char * name(const class KeyPress *);
protected:
bool valid_kcode(enum EKEY_CODE);
public:
void KeyPress(class KeyPress *, const class KeyPress &);
void ~KeyPress(class KeyPress *, int);
/* size: 40, cachelines: 1, members: 3 */
/* last cacheline: 40 bytes */
};
class EnrichedString {
wstring m_string; /* 0 32 */
class vector<irr::video::SColor, std::allocator<irr::video::SColor> > m_colors; /* 32 24 */
bool m_has_background; /* 56 1 */
/* XXX 3 bytes hole, try to pack */
class SColor m_background; /* 60 4 */
public:
void EnrichedString(class EnrichedString *);
void EnrichedString(class EnrichedString *, const wstring &, const class SColor &);
void EnrichedString(class EnrichedString *, const wchar_t *, const class SColor &);
void EnrichedString(class EnrichedString *, const wstring &, const class vector<irr::video::SColor, std::allocator<irr::video::SColor> > &);
void operator=(class EnrichedString *, const wchar_t *);
void addAtEnd(class EnrichedString *, const wstring &, const class SColor &);
void addChar(class EnrichedString *, const class EnrichedString &, size_t);
void addCharNoColor(class EnrichedString *, wchar_t);
class EnrichedString substr(const class EnrichedString *, size_t, size_t);
class EnrichedString operator+(const class EnrichedString *, const class EnrichedString &);
void operator+=(class EnrichedString *, const class EnrichedString &);
const wchar_t * c_str(const class EnrichedString *);
const class vector<irr::video::SColor, std::allocator<irr::video::SColor> > & getColors(const class EnrichedString *);
const wstring & getString(const class EnrichedString *);
bool operator==(const class EnrichedString *, const class EnrichedString &);
bool operator!=(const class EnrichedString *, const class EnrichedString &);
void clear(class EnrichedString *);
bool empty(const class EnrichedString *);
size_t size(const class EnrichedString *);
bool hasBackground(const class EnrichedString *);
class SColor getBackground(const class EnrichedString *);
/* size: 64, cachelines: 1, members: 4 */
/* sum members: 61, holes: 1, sum holes: 3 */
};
struct ChatLine {
f32 age; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
class EnrichedString name; /* 8 64 */
/* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
class EnrichedString text; /* 72 64 */
void ChatLine(class ChatLine *, const wstring &, const wstring &);
void ChatLine(class ChatLine *, const class EnrichedString &, const class EnrichedString &);
/* size: 136, cachelines: 3, members: 3 */
/* sum members: 132, holes: 1, sum holes: 4 */
/* last cacheline: 8 bytes */
};
struct ChatFormattedFragment {
class EnrichedString text; /* 0 64 */
/* --- cacheline 1 boundary (64 bytes) --- */
u32 column; /* 64 4 */
/* size: 72, cachelines: 2, members: 2 */
/* padding: 4 */
/* last cacheline: 8 bytes */
};
struct ChatFormattedLine {
class vector<ChatFormattedFragment, std::allocator<ChatFormattedFragment> > fragments; /* 0 24 */
bool first; /* 24 1 */
/* size: 32, cachelines: 1, members: 2 */
/* padding: 7 */
/* last cacheline: 32 bytes */
};
class ChatBuffer {
u32 m_scrollback; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
class vector<ChatLine, std::allocator<ChatLine> > m_unformatted; /* 8 24 */
u32 m_cols; /* 32 4 */
u32 m_rows; /* 36 4 */
s32 m_scroll; /* 40 4 */
/* XXX 4 bytes hole, try to pack */
class vector<ChatFormattedLine, std::allocator<ChatFormattedLine> > m_formatted; /* 48 24 */
/* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
struct ChatFormattedLine m_empty_formatted_line; /* 72 32 */
/* XXX last struct has 7 bytes of padding */
public:
void ChatBuffer(class ChatBuffer *, u32);
void ~ChatBuffer(class ChatBuffer *, int);
void addLine(class ChatBuffer *, wstring, wstring);
void clear(class ChatBuffer *);
u32 getLineCount(const class ChatBuffer *);
u32 getScrollback(const class ChatBuffer *);
const class ChatLine & getLine(const class ChatBuffer *, u32);
void step(class ChatBuffer *, f32);
void deleteOldest(class ChatBuffer *, u32);
void deleteByAge(class ChatBuffer *, f32);
u32 getColumns(const class ChatBuffer *);
u32 getRows(const class ChatBuffer *);
void reformat(class ChatBuffer *, u32, u32);
const class ChatFormattedLine & getFormattedLine(const class ChatBuffer *, u32);
void scroll(class ChatBuffer *, s32);
void scrollAbsolute(class ChatBuffer *, s32);
void scrollBottom(class ChatBuffer *);
void scrollTop(class ChatBuffer *);
u32 formatChatLine(const class ChatBuffer *, const class ChatLine &, u32, class vector<ChatFormattedLine, std::allocator<ChatFormattedLine> > &);
protected:
s32 getTopScrollPos(const class ChatBuffer *);
s32 getBottomScrollPos(const class ChatBuffer *);
/* size: 104, cachelines: 2, members: 7 */
/* sum members: 96, holes: 2, sum holes: 8 */
/* paddings: 1, sum paddings: 7 */
/* last cacheline: 40 bytes */
};
class ChatPrompt {
enum CursorOp {
CURSOROP_MOVE = 0,
CURSOROP_SELECT = 1,
CURSOROP_DELETE = 2,
};
enum CursorOpDir {
CURSOROP_DIR_LEFT = 0,
CURSOROP_DIR_RIGHT = 1,
};
enum CursorOpScope {
CURSOROP_SCOPE_CHARACTER = 0,
CURSOROP_SCOPE_WORD = 1,
CURSOROP_SCOPE_LINE = 2,
CURSOROP_SCOPE_SELECTION = 3,
};
wstring m_prompt; /* 0 32 */
wstring m_line; /* 32 32 */
/* --- cacheline 1 boundary (64 bytes) --- */
class vector<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::allocator<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > > m_history; /* 64 24 */
u32 m_history_index; /* 88 4 */
u32 m_history_limit; /* 92 4 */
s32 m_cols; /* 96 4 */
s32 m_view; /* 100 4 */
s32 m_cursor; /* 104 4 */
s32 m_cursor_len; /* 108 4 */
s32 m_nick_completion_start; /* 112 4 */
s32 m_nick_completion_end; /* 116 4 */
public:
void ChatPrompt(class ChatPrompt *, const wstring &, u32);
void ~ChatPrompt(class ChatPrompt *, int);
void input(class ChatPrompt *, wchar_t);
void input(class ChatPrompt *, const wstring &);
void addToHistory(class ChatPrompt *, wstring);
wstring getLine(const class ChatPrompt *);
wstring getSelection(const class ChatPrompt *);
void clear(class ChatPrompt *);
wstring replace(class ChatPrompt *, wstring);
void historyPrev(class ChatPrompt *);
void historyNext(class ChatPrompt *);
void nickCompletion(class ChatPrompt *, const class list<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::, bool);
void reformat(class ChatPrompt *, u32);
wstring getVisiblePortion(const class ChatPrompt *);
s32 getVisibleCursorPosition(const class ChatPrompt *);
s32 getCursorLength(const class ChatPrompt *);
void cursorOperation(class ChatPrompt *, enum CursorOp, enum CursorOpDir, enum CursorOpScope);
protected:
void clampView(class ChatPrompt *);
/* size: 120, cachelines: 2, members: 11 */
/* last cacheline: 56 bytes */
};
class ChatBackend {
class ChatBuffer m_console_buffer; /* 0 104 */
/* --- cacheline 1 boundary (64 bytes) was 40 bytes ago --- */
class ChatBuffer m_recent_buffer; /* 104 104 */
/* --- cacheline 3 boundary (192 bytes) was 16 bytes ago --- */
class ChatPrompt m_prompt; /* 208 120 */
public:
void ChatBackend(class ChatBackend *);
void ~ChatBackend(class ChatBackend *, int);
void addMessage(class ChatBackend *, wstring, wstring);
void addUnparsedMessage(class ChatBackend *, wstring);
class ChatBuffer & getConsoleBuffer(class ChatBackend *);
class ChatBuffer & getRecentBuffer(class ChatBackend *);
class EnrichedString getRecentChat(class ChatBackend *);
class ChatPrompt & getPrompt(class ChatBackend *);
void reformat(class ChatBackend *, u32, u32);
void clearRecentChat(class ChatBackend *);
void step(class ChatBackend *, float);
void scroll(class ChatBackend *, s32);
void scrollPageDown(class ChatBackend *);
void scrollPageUp(class ChatBackend *);
/* size: 328, cachelines: 6, members: 3 */
/* last cacheline: 8 bytes */
};
class TimeTaker {
const char * m_name; /* 0 8 */
u32 m_time1; /* 8 4 */
bool m_running; /* 12 1 */
/* XXX 3 bytes hole, try to pack */
enum TimePrecision m_precision; /* 16 4 */
/* XXX 4 bytes hole, try to pack */
u32 * m_result; /* 24 8 */
public:
void TimeTaker(class TimeTaker *, const char *, u32 *, enum TimePrecision);
void ~TimeTaker(class TimeTaker *, int);
u32 stop(class TimeTaker *, bool);
u32 getTimerTime(class TimeTaker *);
/* size: 32, cachelines: 1, members: 5 */
/* sum members: 25, holes: 2, sum holes: 7 */
/* last cacheline: 32 bytes */
};
class Profiler {
Mutex m_mutex; /* 0 40 */
class map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, float, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, float> > > m_data; /* 40 48 */
/* --- cacheline 1 boundary (64 bytes) was 24 bytes ago --- */
class map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> > > m_avgcounts; /* 88 48 */
/* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */
class map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, float, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, float> > > m_graphvalues; /* 136 48 */
typedef struct map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, float, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, float> > > GraphValues;
public:
void Profiler(class Profiler *);
void add(class Profiler *, const string &, float);
void avg(class Profiler *, const string &, float);
void clear(class Profiler *);
void print(class Profiler *, ostream &);
float getValue(const class Profiler *, const string &);
void printPage(class Profiler *, ostream &, u32, u32);
void graphAdd(class Profiler *, const string &, float);
void graphGet(class Profiler *, GraphValues &);
void remove(class Profiler *, const string &);
/* size: 184, cachelines: 3, members: 4 */
/* last cacheline: 56 bytes */
};
class FontEngine {
class Settings * m_settings; /* 0 8 */
class IGUIEnvironment * m_env; /* 8 8 */
class map<unsigned int, irr::gui::IGUIFont*, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, irr::gui::IGUIFont*> > > m_font_cache[5]; /* 16 240 */
/* --- cacheline 4 boundary (256 bytes) --- */
unsigned int m_default_size[5]; /* 256 20 */
enum FontMode m_currentMode; /* 276 4 */
enum FontMode m_lastMode; /* 280 4 */
unsigned int m_lastSize; /* 284 4 */
class IGUIFont * m_lastFont; /* 288 8 */
public:
void FontEngine(class FontEngine *, class Settings *, class IGUIEnvironment *);
void ~FontEngine(class FontEngine *, int);
class IGUIFont * getFont(class FontEngine *, unsigned int, enum FontMode);
unsigned int getTextHeight(class FontEngine *, unsigned int, enum FontMode);
unsigned int getTextWidth(class FontEngine *, const string &, unsigned int, enum FontMode);
unsigned int getTextWidth(class FontEngine *, const wstring &, unsigned int, enum FontMode);
unsigned int getLineHeight(class FontEngine *, unsigned int, enum FontMode);
unsigned int getDefaultFontSize(class FontEngine *);
void initialize(class FontEngine *, class Settings *, class IGUIEnvironment *);
void readSettings(class FontEngine *);
void FontEngine(class FontEngine *);
void updateFontCache(class FontEngine *);
void initFont(class FontEngine *, unsigned int, enum FontMode);
void initSimpleFont(class FontEngine *, unsigned int, enum FontMode);
void updateSkin(class FontEngine *);
void cleanCache(class FontEngine *);
/* size: 296, cachelines: 5, members: 8 */
/* last cacheline: 40 bytes */
};
struct GameParams {
u16 socket_port; /* 0 2 */
/* XXX 6 bytes hole, try to pack */
string world_path; /* 8 32 */
struct SubgameSpec game_spec; /* 40 208 */
/* --- cacheline 3 boundary (192 bytes) was 56 bytes ago --- */
bool is_dedicated_server; /* 248 1 */
/* size: 256, cachelines: 4, members: 4 */
/* sum members: 243, holes: 1, sum holes: 6 */
/* padding: 7 */
};
class ClientLauncher {
protected:
bool list_video_modes; /* 0 1 */
bool skip_main_menu; /* 1 1 */
bool use_freetype; /* 2 1 */
bool random_input; /* 3 1 */
/* XXX 4 bytes hole, try to pack */
string address; /* 8 32 */
string playername; /* 40 32 */
/* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
string password; /* 72 32 */
class IrrlichtDevice * device; /* 104 8 */
class InputHandler * input; /* 112 8 */
class MyEventReceiver * receiver; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
class IGUISkin * skin; /* 128 8 */
class IGUIFont * font; /* 136 8 */
class ISceneManager * smgr; /* 144 8 */
struct SubgameSpec gamespec; /* 152 208 */
/* --- cacheline 5 boundary (320 bytes) was 40 bytes ago --- */
struct WorldSpec worldspec; /* 360 96 */
/* --- cacheline 7 boundary (448 bytes) was 8 bytes ago --- */
bool simple_singleplayer_mode; /* 456 1 */
/* XXX 7 bytes hole, try to pack */
string current_playername; /* 464 32 */
string current_password; /* 496 32 */
/* --- cacheline 8 boundary (512 bytes) was 16 bytes ago --- */
string current_address; /* 528 32 */
int current_port; /* 560 4 */
public:
void ClientLauncher(class ClientLauncher *);
void ~ClientLauncher(class ClientLauncher *, int);
bool run(class ClientLauncher *, class GameParams &, const class Settings &);
protected:
void init_args(class ClientLauncher *, class GameParams &, const class Settings &);
bool init_engine(class ClientLauncher *);
void init_input(class ClientLauncher *);
bool launch_game(class ClientLauncher *, string &, bool, class GameParams &, const class Settings &);
void main_menu(class ClientLauncher *, class MainMenuData *);
bool create_engine_device(class ClientLauncher *);
void speed_tests(class ClientLauncher *);
bool print_video_modes(class ClientLauncher *);
/* size: 568, cachelines: 9, members: 20 */
/* sum members: 553, holes: 2, sum holes: 11 */
/* padding: 4 */
/* last cacheline: 56 bytes */
};
class InputHandler {
public:
int ()(void) * * _vptr.InputHandler; /* 0 8 */
class JoystickController joystick; /* 8 304 */
void InputHandler(class InputHandler *, const class InputHandler &);
void InputHandler(class InputHandler *);
virtual void ~InputHandler(class InputHandler *, int);
virtual bool isKeyDown(class InputHandler *, const class KeyPress &);
virtual bool wasKeyDown(class InputHandler *, const class KeyPress &);
virtual void listenForKey(class InputHandler *, const class KeyPress &);
virtual void dontListenForKeys(class InputHandler *);
virtual v2s32 getMousePos(class InputHandler *);
virtual void setMousePos(class InputHandler *, s32, s32);
virtual bool getLeftState(class InputHandler *);
virtual bool getRightState(class InputHandler *);
virtual bool getLeftClicked(class InputHandler *);
virtual bool getRightClicked(class InputHandler *);
virtual void resetLeftClicked(class InputHandler *);
virtual void resetRightClicked(class InputHandler *);
virtual bool getLeftReleased(class InputHandler *);
virtual bool getRightReleased(class InputHandler *);
virtual void resetLeftReleased(class InputHandler *);
virtual void resetRightReleased(class InputHandler *);
virtual s32 getMouseWheel(class InputHandler *);
virtual void step(class InputHandler *, float);
virtual void clear(class InputHandler *);
/* vtable has 19 entries: {
[2] = isKeyDown((null)),
[3] = wasKeyDown((null)),
[4] = listenForKey((null)),
[5] = dontListenForKeys((null)),
[6] = getMousePos((null)),
[7] = setMousePos((null)),
[8] = getLeftState((null)),
[9] = getRightState((null)),
[10] = getLeftClicked((null)),
[11] = getRightClicked((null)),
[12] = resetLeftClicked((null)),
[13] = resetRightClicked((null)),
[14] = getLeftReleased((null)),
[15] = getRightReleased((null)),
[16] = resetLeftReleased((null)),
[17] = resetRightReleased((null)),
[18] = getMouseWheel((null)),
[19] = step((null)),
[20] = clear((null)),
} */
/* size: 312, cachelines: 5, members: 2 */
/* last cacheline: 56 bytes */
};
class MyEventReceiver : public IEventReceiver {
public:
/* class IEventReceiver <ancestor>; */ /* 0 8 */
bool leftclicked; /* 8 1 */
bool rightclicked; /* 9 1 */
bool leftreleased; /* 10 1 */
bool rightreleased; /* 11 1 */
bool left_active; /* 12 1 */
bool middle_active; /* 13 1 */
bool right_active; /* 14 1 */
/* XXX 1 byte hole, try to pack */
s32 mouse_wheel; /* 16 4 */
/* XXX 4 bytes hole, try to pack */
class JoystickController * joystick; /* 24 8 */
class KeyList keyIsDown; /* 32 32 */
/* XXX last struct has 24 bytes of padding */
/* --- cacheline 1 boundary (64 bytes) --- */
class KeyList keyWasDown; /* 64 32 */
/* XXX last struct has 24 bytes of padding */
class KeyList keysListenedFor; /* 96 32 */
/* XXX last struct has 24 bytes of padding */
void MyEventReceiver(class MyEventReceiver *, );
void MyEventReceiver(class MyEventReceiver *, const class MyEventReceiver &);
virtual bool OnEvent(class MyEventReceiver *, const class SEvent &);
bool IsKeyDown(const class MyEventReceiver *, const class KeyPress &);
bool WasKeyDown(class MyEventReceiver *, const class KeyPress &);
void listenForKey(class MyEventReceiver *, const class KeyPress &);
void dontListenForKeys(class MyEventReceiver *);
s32 getMouseWheel(class MyEventReceiver *);
void clearInput(class MyEventReceiver *);
void MyEventReceiver(class MyEventReceiver *);
virtual void ~MyEventReceiver(class MyEventReceiver *, int);
/* vtable has 1 entries: {
[2] = OnEvent((null)),
} */
/* size: 128, cachelines: 2, members: 13 */
/* sum members: 115, holes: 2, sum holes: 5 */
/* paddings: 3, sum paddings: 72 */
/* BRAIN FART ALERT! 128 != 115 + 5(holes), diff = 8 */
};
class TimeGetter {
public:
int ()(void) * * _vptr.TimeGetter; /* 0 8 */
void ~TimeGetter(class TimeGetter *, int);
void TimeGetter(class TimeGetter *, );
void TimeGetter(class TimeGetter *, const class TimeGetter &);
void TimeGetter(class TimeGetter *);
virtual u32 getTime(class TimeGetter *, enum TimePrecision);
/* vtable has 1 entries: {
[0] = getTime((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
};
class IrrlichtTimeGetter : public TimeGetter {
public:
/* class TimeGetter <ancestor>; */ /* 0 8 */
class IrrlichtDevice * m_device; /* 8 8 */
void IrrlichtTimeGetter(class IrrlichtTimeGetter *, );
void IrrlichtTimeGetter(class IrrlichtTimeGetter *, const class IrrlichtTimeGetter &);
void IrrlichtTimeGetter(class IrrlichtTimeGetter *, class IrrlichtDevice *);
virtual u32 getTime(class IrrlichtTimeGetter *, enum TimePrecision);
/* vtable has 1 entries: {
[0] = getTime((null)),
} */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
/* BRAIN FART ALERT! 16 != 8 + 0(holes), diff = 8 */
};
class RandomInputHandler : public InputHandler {
public:
/* class InputHandler <ancestor>; */ /* 0 312 */
/* --- cacheline 4 boundary (256 bytes) was 56 bytes ago --- */
class KeyList keydown; /* 312 32 */
/* XXX last struct has 24 bytes of padding */
/* --- cacheline 5 boundary (320 bytes) was 24 bytes ago --- */
v2s32 mousepos; /* 344 8 */
v2s32 mousespeed; /* 352 8 */
bool leftdown; /* 360 1 */
bool rightdown; /* 361 1 */
bool leftclicked; /* 362 1 */
bool rightclicked; /* 363 1 */
bool leftreleased; /* 364 1 */
bool rightreleased; /* 365 1 */
void RandomInputHandler(class RandomInputHandler *, );
void RandomInputHandler(class RandomInputHandler *, const class RandomInputHandler &);
void RandomInputHandler(class RandomInputHandler *);
virtual bool isKeyDown(class RandomInputHandler *, const class KeyPress &);
virtual bool wasKeyDown(class RandomInputHandler *, const class KeyPress &);
virtual v2s32 getMousePos(class RandomInputHandler *);
virtual void setMousePos(class RandomInputHandler *, s32, s32);
virtual bool getLeftState(class RandomInputHandler *);
virtual bool getRightState(class RandomInputHandler *);
virtual bool getLeftClicked(class RandomInputHandler *);
virtual bool getRightClicked(class RandomInputHandler *);
virtual void resetLeftClicked(class RandomInputHandler *);
virtual void resetRightClicked(class RandomInputHandler *);
virtual bool getLeftReleased(class RandomInputHandler *);
virtual bool getRightReleased(class RandomInputHandler *);
virtual void resetLeftReleased(class RandomInputHandler *);
virtual void resetRightReleased(class RandomInputHandler *);
virtual s32 getMouseWheel(class RandomInputHandler *);
virtual void step(class RandomInputHandler *, float);
s32 Rand(class RandomInputHandler *, s32, s32);
virtual void ~RandomInputHandler(class RandomInputHandler *, int);
/* vtable has 16 entries: {
[2] = isKeyDown((null)),
[3] = wasKeyDown((null)),
[6] = getMousePos((null)),
[7] = setMousePos((null)),
[8] = getLeftState((null)),
[9] = getRightState((null)),
[10] = getLeftClicked((null)),
[11] = getRightClicked((null)),
[12] = resetLeftClicked((null)),
[13] = resetRightClicked((null)),
[14] = getLeftReleased((null)),
[15] = getRightReleased((null)),
[16] = resetLeftReleased((null)),
[17] = resetRightReleased((null)),
[18] = getMouseWheel((null)),
[19] = step((null)),
} */
/* size: 368, cachelines: 6, members: 10 */
/* padding: 2 */
/* paddings: 1, sum paddings: 24 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 368 != 54 + 0(holes), diff = 314 */
};
class KeyList : protected list<KeyPress, std::allocator<KeyPress> > {
protected:
/* class list<KeyPress, std::allocator<KeyPress> > <ancestor>; */ /* 8 24 */
public:
int ()(void) * * _vptr.KeyList; /* 0 8 */
typedef iterator iterator;
typedef const_iterator const_iterator;
void KeyList(class KeyList *, );
void KeyList(class KeyList *, const class KeyList &);
void KeyList(class KeyList *);
void ~KeyList(class KeyList *, int);
virtual const_iterator find(const class KeyList *, const class KeyPress &);
virtual iterator find(class KeyList *, const class KeyPress &);
void clear(class KeyList *);
void set(class KeyList *, const class KeyPress &);
void unset(class KeyList *, const class KeyPress &);
void toggle(class KeyList *, const class KeyPress &);
bool operator[](const class KeyList *, const class KeyPress &);
/* vtable has 2 entries: {
[0] = find((null)),
[1] = find((null)),
} */
/* size: 32, cachelines: 1, members: 2 */
/* padding: 24 */
/* last cacheline: 32 bytes */
};
class RealInputHandler : public InputHandler {
public:
/* class InputHandler <ancestor>; */ /* 0 312 */
/* --- cacheline 4 boundary (256 bytes) was 56 bytes ago --- */
class IrrlichtDevice * m_device; /* 312 8 */
/* --- cacheline 5 boundary (320 bytes) --- */
class MyEventReceiver * m_receiver; /* 320 8 */
v2s32 m_mousepos; /* 328 8 */
void RealInputHandler(class RealInputHandler *, );
void RealInputHandler(class RealInputHandler *, const class RealInputHandler &);
void RealInputHandler(class RealInputHandler *, class IrrlichtDevice *, class MyEventReceiver *);
virtual bool isKeyDown(class RealInputHandler *, const class KeyPress &);
virtual bool wasKeyDown(class RealInputHandler *, const class KeyPress &);
virtual void listenForKey(class RealInputHandler *, const class KeyPress &);
virtual void dontListenForKeys(class RealInputHandler *);
virtual v2s32 getMousePos(class RealInputHandler *);
virtual void setMousePos(class RealInputHandler *, s32, s32);
virtual bool getLeftState(class RealInputHandler *);
virtual bool getRightState(class RealInputHandler *);
virtual bool getLeftClicked(class RealInputHandler *);
virtual bool getRightClicked(class RealInputHandler *);
virtual void resetLeftClicked(class RealInputHandler *);
virtual void resetRightClicked(class RealInputHandler *);
virtual bool getLeftReleased(class RealInputHandler *);
virtual bool getRightReleased(class RealInputHandler *);
virtual void resetLeftReleased(class RealInputHandler *);
virtual void resetRightReleased(class RealInputHandler *);
virtual s32 getMouseWheel(class RealInputHandler *);
virtual void clear(class RealInputHandler *);
virtual void ~RealInputHandler(class RealInputHandler *, int);
/* vtable has 18 entries: {
[2] = isKeyDown((null)),
[3] = wasKeyDown((null)),
[4] = listenForKey((null)),
[5] = dontListenForKeys((null)),
[6] = getMousePos((null)),
[7] = setMousePos((null)),
[8] = getLeftState((null)),
[9] = getRightState((null)),
[10] = getLeftClicked((null)),
[11] = getRightClicked((null)),
[12] = resetLeftClicked((null)),
[13] = resetRightClicked((null)),
[14] = getLeftReleased((null)),
[15] = getRightReleased((null)),
[16] = resetLeftReleased((null)),
[17] = resetRightReleased((null)),
[18] = getMouseWheel((null)),
[20] = clear((null)),
} */
/* size: 336, cachelines: 6, members: 4 */
/* last cacheline: 16 bytes */
/* BRAIN FART ALERT! 336 != 24 + 0(holes), diff = 312 */
};
class BaseException : public exception {
public:
/* class exception <ancestor>; */ /* 0 0 */
/* XXX 8 bytes hole, try to pack */
protected:
string m_s; /* 8 32 */
public:
void BaseException(class BaseException *, const class BaseException &);
void BaseException(class BaseException *, const string &);
virtual void ~BaseException(class BaseException *, int);
virtual const char * what(const class BaseException *);
/* vtable has 1 entries: {
[2] = what((null)),
} */
/* size: 40, cachelines: 1, members: 2 */
/* sum members: 32, holes: 1, sum holes: 8 */
/* last cacheline: 40 bytes */
};
class IGameCallback {
public:
int ()(void) * * _vptr.IGameCallback; /* 0 8 */
void ~IGameCallback(class IGameCallback *, int);
void IGameCallback(class IGameCallback *, );
void IGameCallback(class IGameCallback *, const class IGameCallback &);
void IGameCallback(class IGameCallback *);
virtual void exitToOS(class IGameCallback *);
virtual void keyConfig(class IGameCallback *);
virtual void disconnect(class IGameCallback *);
virtual void changePassword(class IGameCallback *);
virtual void changeVolume(class IGameCallback *);
virtual void signalKeyConfigChange(class IGameCallback *);
/* vtable has 6 entries: {
[0] = exitToOS((null)),
[1] = keyConfig((null)),
[2] = disconnect((null)),
[3] = changePassword((null)),
[4] = changeVolume((null)),
[5] = signalKeyConfigChange((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
};
class IMenuManager {
public:
int ()(void) * * _vptr.IMenuManager; /* 0 8 */
void ~IMenuManager(class IMenuManager *, int);
void IMenuManager(class IMenuManager *, );
void IMenuManager(class IMenuManager *, const class IMenuManager &);
void IMenuManager(class IMenuManager *);
virtual void createdMenu(class IMenuManager *, class IGUIElement *);
virtual void deletingMenu(class IMenuManager *, class IGUIElement *);
/* vtable has 2 entries: {
[0] = createdMenu((null)),
[1] = deletingMenu((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
};
class GUIModalMenu : public IGUIElement {
public:
/* class IGUIElement <ancestor>; */ /* 0 320 */
/* XXX last struct has 36 bytes of padding */
protected:
/* --- cacheline 4 boundary (256 bytes) was 28 bytes ago --- */
v2u32 m_screensize_old; /* 284 8 */
/* XXX 4 bytes hole, try to pack */
class IMenuManager * m_menumgr; /* 296 8 */
bool m_allow_focus_removal; /* 304 1 */
public:
void GUIModalMenu(class GUIModalMenu *, int, const void * *, class IGUIEnvironment *, class IGUIElement *, s32, class IMenuManager *);
virtual void ~GUIModalMenu(class GUIModalMenu *, int, const void * *);
void allowFocusRemoval(class GUIModalMenu *, bool);
bool canTakeFocus(class GUIModalMenu *, class IGUIElement *);
virtual void draw(class GUIModalMenu *);
void quitMenu(class GUIModalMenu *);
void removeChildren(class GUIModalMenu *);
virtual void regenerateGui(class GUIModalMenu *, v2u32);
virtual void drawMenu(class GUIModalMenu *);
virtual bool preprocessEvent(class GUIModalMenu *, const class SEvent &);
virtual bool OnEvent(class GUIModalMenu *, const class SEvent &);
virtual bool pausesGame(class GUIModalMenu *);
/* vtable has 6 entries: {
[8] = draw((null)),
[34] = regenerateGui((null)),
[35] = drawMenu((null)),
[36] = preprocessEvent((null)),
[2] = OnEvent((null)),
[37] = pausesGame((null)),
} */
/* size: 344, cachelines: 6, members: 4 */
/* sum members: 17, holes: 1, sum holes: 4 */
/* padding: 39 */
/* paddings: 1, sum paddings: 36 */
/* last cacheline: 24 bytes */
/* BRAIN FART ALERT! 344 != 17 + 4(holes), diff = 323 */
};
class ICombinedLogOutput : public ILogOutput {
public:
/* class ILogOutput <ancestor>; */ /* 0 8 */
void ~ICombinedLogOutput(class ICombinedLogOutput *, int);
void ICombinedLogOutput(class ICombinedLogOutput *, );
void ICombinedLogOutput(class ICombinedLogOutput *, const class ICombinedLogOutput &);
void ICombinedLogOutput(class ICombinedLogOutput *);
virtual void log(class ICombinedLogOutput *, enum LogLevel, const string &, const string &, const string &, const string &);
/* vtable has 1 entries: {
[1] = log((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
/* BRAIN FART ALERT! 8 != 0 + 0(holes), diff = 8 */
};
struct JoystickButtonCmb : JoystickCombination {
/* struct JoystickCombination <ancestor>; */ /* 0 16 */
/* XXX last struct has 4 bytes of padding */
u32 filter_mask; /* 12 4 */
u32 compare_mask; /* 16 4 */
class JoystickButtonCmb & operator=(class JoystickButtonCmb *, );
class JoystickButtonCmb & operator=(class JoystickButtonCmb *, const class JoystickButtonCmb &);
void ~JoystickButtonCmb(class JoystickButtonCmb *, int);
void JoystickButtonCmb(class JoystickButtonCmb *, );
void JoystickButtonCmb(class JoystickButtonCmb *, const class JoystickButtonCmb &);
void JoystickButtonCmb(class JoystickButtonCmb *);
void JoystickButtonCmb(class JoystickButtonCmb *, GameKeyType, u32, u32);
virtual bool isTriggered(const class JoystickButtonCmb *, const class SJoystickEvent &);
/* vtable has 1 entries: {
[0] = isTriggered((null)),
} */
/* size: 24, cachelines: 1, members: 3 */
/* padding: 4 */
/* paddings: 1, sum paddings: 4 */
/* last cacheline: 24 bytes */
/* BRAIN FART ALERT! 24 != 8 + 0(holes), diff = 16 */
};
struct JoystickAxisCmb : JoystickCombination {
/* struct JoystickCombination <ancestor>; */ /* 0 16 */
/* XXX last struct has 4 bytes of padding */
u16 axis_to_compare; /* 12 2 */
/* XXX 2 bytes hole, try to pack */
int direction; /* 16 4 */
s16 thresh; /* 20 2 */
class JoystickAxisCmb & operator=(class JoystickAxisCmb *, );
class JoystickAxisCmb & operator=(class JoystickAxisCmb *, const class JoystickAxisCmb &);
void ~JoystickAxisCmb(class JoystickAxisCmb *, int);
void JoystickAxisCmb(class JoystickAxisCmb *, );
void JoystickAxisCmb(class JoystickAxisCmb *, const class JoystickAxisCmb &);
void JoystickAxisCmb(class JoystickAxisCmb *);
void JoystickAxisCmb(class JoystickAxisCmb *, GameKeyType, u16, int, s16);
virtual bool isTriggered(const class JoystickAxisCmb *, const class SJoystickEvent &);
/* vtable has 1 entries: {
[0] = isTriggered((null)),
} */
/* size: 24, cachelines: 1, members: 4 */
/* sum members: 8, holes: 1, sum holes: 2 */
/* padding: 2 */
/* paddings: 1, sum paddings: 4 */
/* last cacheline: 24 bytes */
/* BRAIN FART ALERT! 24 != 8 + 2(holes), diff = 14 */
};
struct JoystickCombination {
int ()(void) * * _vptr.JoystickCombination; /* 0 8 */
GameKeyType key; /* 8 4 */
class JoystickCombination & operator=(class JoystickCombination *, );
class JoystickCombination & operator=(class JoystickCombination *, const class JoystickCombination &);
void ~JoystickCombination(class JoystickCombination *, int);
void JoystickCombination(class JoystickCombination *, );
void JoystickCombination(class JoystickCombination *, const class JoystickCombination &);
void JoystickCombination(class JoystickCombination *);
virtual bool isTriggered(const class JoystickCombination *, const class SJoystickEvent &);
/* vtable has 1 entries: {
[0] = isTriggered((null)),
} */
/* size: 16, cachelines: 1, members: 2 */
/* padding: 4 */
/* last cacheline: 16 bytes */
};
struct TextureFromMeshParams {
class IMesh * mesh; /* 0 8 */
class dimension2d<unsigned int> dim; /* 8 8 */
string rtt_texture_name; /* 16 32 */
bool delete_texture_on_shutdown; /* 48 1 */
/* XXX 3 bytes hole, try to pack */
v3f camera_position; /* 52 12 */
/* --- cacheline 1 boundary (64 bytes) --- */
v3f camera_lookat; /* 64 12 */
class CMatrix4<float> camera_projection_matrix; /* 76 64 */
/* --- cacheline 2 boundary (128 bytes) was 12 bytes ago --- */
class SColorf ambient_light; /* 140 16 */
v3f light_position; /* 156 12 */
class SColorf light_color; /* 168 16 */
f32 light_radius; /* 184 4 */
void ~TextureFromMeshParams(class TextureFromMeshParams *, int);
void TextureFromMeshParams(class TextureFromMeshParams *);
/* size: 192, cachelines: 3, members: 11 */
/* sum members: 185, holes: 1, sum holes: 3 */
/* padding: 4 */
};
class Semaphore {
sem_t semaphore; /* 0 32 */
public:
void Semaphore(class Semaphore *, int);
void ~Semaphore(class Semaphore *, int);
void post(class Semaphore *, unsigned int);
void wait(class Semaphore *);
bool wait(class Semaphore *, unsigned int);
void Semaphore(class Semaphore *, const class Semaphore &);
class Semaphore & operator=(class Semaphore *, const class Semaphore &);
/* size: 32, cachelines: 1, members: 1 */
/* last cacheline: 32 bytes */
};
class ITextureSource : public ISimpleTextureSource {
public:
/* class ISimpleTextureSource <ancestor>; */ /* 0 8 */
void ITextureSource(class ITextureSource *, const class ITextureSource &);
void ITextureSource(class ITextureSource *);
virtual void ~ITextureSource(class ITextureSource *, int);
virtual u32 getTextureId(class ITextureSource *, const string &);
virtual string getTextureName(class ITextureSource *, u32);
virtual class ITexture * getTexture(class ITextureSource *, u32);
virtual class ITexture * getTexture(class ITextureSource *, const string &, u32 *);
virtual class ITexture * getTextureForMesh(class ITextureSource *, const string &, u32 *);
virtual Palette * getPalette(class ITextureSource *, const string &);
virtual class IrrlichtDevice * getDevice(class ITextureSource *);
virtual bool isKnownSourceImage(class ITextureSource *, const string &);
virtual class ITexture * generateTextureFromMesh(class ITextureSource *, const class TextureFromMeshParams &);
virtual class ITexture * getNormalTexture(class ITextureSource *, const string &);
virtual class SColor getTextureAverageColor(class ITextureSource *, const string &);
virtual class ITexture * getShaderFlagsTexture(class ITextureSource *, bool);
/* vtable has 12 entries: {
[3] = getTextureId((null)),
[4] = getTextureName((null)),
[5] = getTexture((null)),
[2] = getTexture((null)),
[6] = getTextureForMesh((null)),
[7] = getPalette((null)),
[8] = getDevice((null)),
[9] = isKnownSourceImage((null)),
[10] = generateTextureFromMesh((null)),
[11] = getNormalTexture((null)),
[12] = getTextureAverageColor((null)),
[13] = getShaderFlagsTexture((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
/* BRAIN FART ALERT! 8 != 0 + 0(holes), diff = 8 */
};
class BasicStrfnd<char> {
typedef struct basic_string<char, std::char_traits<char>, std::allocator<char> > String;
/* tag__fprintf: const_type tag not supported! */;
String str; /* 0 32 */
size_t pos; /* 32 8 */
public:
void BasicStrfnd(class BasicStrfnd<char> *, const String &);
void start(class BasicStrfnd<char> *, const String &);
size_t where(class BasicStrfnd<char> *);
void to(class BasicStrfnd<char> *, size_t);
bool at_end(class BasicStrfnd<char> *);
String what(class BasicStrfnd<char> *);
String next(class BasicStrfnd<char> *, const String &);
String next_esc(class BasicStrfnd<char> *, const String &, char);
void skip_over(class BasicStrfnd<char> *, const String &);
void ~BasicStrfnd(class BasicStrfnd<char> *, int);
/* size: 40, cachelines: 1, members: 2 */
/* last cacheline: 40 bytes */
};
class MutexedMap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > {
class map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > m_values; /* 0 48 */
Mutex m_mutex; /* 48 40 */
public:
void MutexedMap(class MutexedMap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<ch);
void set(class MutexedMap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<ch, const class basic_string<char, std::char_traits<char>, std::allocator<char> > &, const class basic_string<char, std::char_traits<char>, std::allocator<char> > &);
bool get(const class MutexedMap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_str, const class basic_string<char, std::char_traits<char>, std::allocator<char> > &, class basic_string<char, std::char_traits<char>, std::allocator<char> > *);
class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basi getValues(const class MutexedMap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_str);
void clear(class MutexedMap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<ch);
void ~MutexedMap(class MutexedMap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<ch, int);
/* size: 88, cachelines: 2, members: 2 */
/* last cacheline: 24 bytes */
};
struct TextureInfo {
string name; /* 0 32 */
class ITexture * texture; /* 32 8 */
void TextureInfo(class TextureInfo *, const string &, class ITexture *);
void TextureInfo(class TextureInfo *, );
void TextureInfo(class TextureInfo *, const class TextureInfo &);
void ~TextureInfo(class TextureInfo *, int);
/* size: 40, cachelines: 1, members: 2 */
/* last cacheline: 40 bytes */
};
class SourceImageCache {
class map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, irr::video::IImage*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, irr::video::IImage*> > > m_images; /* 0 48 */
public:
void ~SourceImageCache(class SourceImageCache *, int);
void insert(class SourceImageCache *, const string &, class IImage *, bool, class IVideoDriver *);
class IImage * get(class SourceImageCache *, const string &);
class IImage * getOrLoad(class SourceImageCache *, const string &, class IrrlichtDevice *);
void SourceImageCache(class SourceImageCache *);
/* size: 48, cachelines: 1, members: 1 */
/* last cacheline: 48 bytes */
};
class MutexedMap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool> {
class map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool> > > m_values; /* 0 48 */
Mutex m_mutex; /* 48 40 */
public:
void MutexedMap(class MutexedMap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool> *);
void set(class MutexedMap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool> *, const class basic_string<char, std::char_traits<char>, std::allocator<char> > &, const bool &);
bool get(const class MutexedMap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool> *, const class basic_string<char, std::char_traits<char>, std::allocator<char> > &, bool *);
class vector<bool, std::allocator<bool> > getValues(const class MutexedMap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool> *);
void clear(class MutexedMap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool> *);
void ~MutexedMap(class MutexedMap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool> *, int);
/* size: 88, cachelines: 2, members: 2 */
/* last cacheline: 24 bytes */
};
class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, unsigned char> {
public:
class basic_string<char, std::char_traits<char>, std::allocator<char> > key; /* 0 32 */
class list<CallerInfo<unsigned char, unsigned char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int>, std::allocator<CallerInfo<unsigned char, unsigned char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int> > > callers; /* 32 24 */
void GetRequest(class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, );
void ~GetRequest(class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, , int);
void GetRequest(class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, , class basic_string<char, std::char_traits<char>, std::allocator<char> >);
void GetRequest(class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, , const class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned );
/* size: 56, cachelines: 1, members: 2 */
/* last cacheline: 56 bytes */
};
class MutexedQueue<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, unsigned char> > {
protected:
class deque<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, unsigned char>, std::allocator<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, unsigned char> > > m_queue; /* 0 80 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
Mutex m_mutex; /* 80 40 */
class Semaphore m_signal; /* 120 32 */
public:
void MutexedQueue(class MutexedQueue<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, un);
bool empty(const class MutexedQueue<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned i);
void push_back(class MutexedQueue<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, un, class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, );
class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, pop_frontNoEx(class MutexedQueue<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, un, u32);
class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, pop_front(class MutexedQueue<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, un, u32);
class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, pop_frontNoEx(class MutexedQueue<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, un);
class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, pop_back(class MutexedQueue<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, un, u32);
class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, pop_backNoEx(class MutexedQueue<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, un, u32);
class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, pop_backNoEx(class MutexedQueue<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, un);
protected:
Mutex & getMutex(class MutexedQueue<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, un);
class deque<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned getQueue(class MutexedQueue<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, un);
public:
void ~MutexedQueue(class MutexedQueue<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, un, int);
/* size: 152, cachelines: 3, members: 3 */
/* last cacheline: 24 bytes */
};
class RequestQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, unsigned char> {
class MutexedQueue<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, unsigned char> > m_queue; /* 0 152 */
public:
bool empty(class RequestQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char);
void add(class RequestQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, class basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned char, class ResultQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char,);
class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, pop(class RequestQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, unsigned int);
class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, pop(class RequestQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char);
void pushResult(class RequestQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, , unsigned int);
void ~RequestQueue(class RequestQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, int);
void RequestQueue(class RequestQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char);
/* size: 152, cachelines: 3, members: 1 */
/* last cacheline: 24 bytes */
};
class ResultQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, unsigned char> : public MutexedQueue<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, unsigned char> > {
public:
/* class MutexedQueue<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, unsigned char> > <ancestor>; */ /* 0 152 */
void ~ResultQueue(class ResultQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char,, int);
void ResultQueue(class ResultQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char,);
/* size: 152, cachelines: 3, members: 1 */
/* last cacheline: 24 bytes */
/* BRAIN FART ALERT! 152 != 0 + 0(holes), diff = 152 */
};
class GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, unsigned char> {
public:
class basic_string<char, std::char_traits<char>, std::allocator<char> > key; /* 0 32 */
unsigned int item; /* 32 4 */
struct pair<unsigned char, unsigned char> caller; /* 36 2 */
void GetResult(class GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, u);
void GetResult(class GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, u, const class GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned c);
void GetResult(class GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, u, );
void ~GetResult(class GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, u, int);
/* size: 40, cachelines: 1, members: 3 */
/* padding: 2 */
/* last cacheline: 40 bytes */
};
class MutexedQueue<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, unsigned char> > {
protected:
class deque<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, unsigned char>, std::allocator<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, unsigned char> > > m_queue; /* 0 80 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
Mutex m_mutex; /* 80 40 */
class Semaphore m_signal; /* 120 32 */
public:
void MutexedQueue(class MutexedQueue<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, uns);
bool empty(const class MutexedQueue<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned in);
void push_back(class MutexedQueue<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, uns, class GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, u);
class GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, u pop_frontNoEx(class MutexedQueue<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, uns, u32);
class GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, u pop_front(class MutexedQueue<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, uns, u32);
class GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, u pop_frontNoEx(class MutexedQueue<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, uns);
class GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, u pop_back(class MutexedQueue<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, uns, u32);
class GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, u pop_backNoEx(class MutexedQueue<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, uns, u32);
class GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, u pop_backNoEx(class MutexedQueue<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, uns);
protected:
Mutex & getMutex(class MutexedQueue<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, uns);
class deque<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned c getQueue(class MutexedQueue<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, uns);
public:
void ~MutexedQueue(class MutexedQueue<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, uns, int);
/* size: 152, cachelines: 3, members: 3 */
/* last cacheline: 24 bytes */
};
class CallerInfo<unsigned char, unsigned char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int> {
public:
unsigned char caller; /* 0 1 */
unsigned char data; /* 1 1 */
/* XXX 6 bytes hole, try to pack */
class ResultQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, dest; /* 8 8 */
/* size: 16, cachelines: 1, members: 3 */
/* sum members: 10, holes: 1, sum holes: 6 */
/* last cacheline: 16 bytes */
};
class TextureSource : public IWritableTextureSource {
public:
/* class IWritableTextureSource <ancestor>; */ /* 0 8 */
threadid_t m_main_thread; /* 8 8 */
class IrrlichtDevice * m_device; /* 16 8 */
class SourceImageCache m_sourcecache; /* 24 48 */
/* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
class MutexedMap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool> m_source_image_existence; /* 72 88 */
/* --- cacheline 2 boundary (128 bytes) was 32 bytes ago --- */
class vector<TextureInfo, std::allocator<TextureInfo> > m_textureinfo_cache; /* 160 24 */
class map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int> > > m_name_to_id; /* 184 48 */
/* --- cacheline 3 boundary (192 bytes) was 40 bytes ago --- */
Mutex m_textureinfo_cache_mutex; /* 232 40 */
/* --- cacheline 4 boundary (256 bytes) was 16 bytes ago --- */
class RequestQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, unsigned char> m_get_texture_queue; /* 272 152 */
/* --- cacheline 6 boundary (384 bytes) was 40 bytes ago --- */
class vector<irr::video::ITexture*, std::allocator<irr::video::ITexture*> > m_texture_trash; /* 424 24 */
/* --- cacheline 7 boundary (448 bytes) --- */
class unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<irr::video::SColor, std::allocator<irr::video::SColor> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<irr::video::SColor, std::allocator<irr::video::SColor> > > > > m_palettes; /* 448 56 */
bool m_setting_trilinear_filter; /* 504 1 */
bool m_setting_bilinear_filter; /* 505 1 */
bool m_setting_anisotropic_filter; /* 506 1 */
void TextureSource(class TextureSource *, const class TextureSource &);
void TextureSource(class TextureSource *, class IrrlichtDevice *);
virtual void ~TextureSource(class TextureSource *, int);
virtual u32 getTextureId(class TextureSource *, const string &);
virtual string getTextureName(class TextureSource *, u32);
virtual class ITexture * getTexture(class TextureSource *, u32);
virtual class ITexture * getTexture(class TextureSource *, const string &, u32 *);
virtual class ITexture * getTextureForMesh(class TextureSource *, const string &, u32 *);
virtual Palette * getPalette(class TextureSource *, const string &);
virtual class IrrlichtDevice * getDevice(class TextureSource *);
virtual bool isKnownSourceImage(class TextureSource *, const string &);
virtual void processQueue(class TextureSource *);
virtual void insertSourceImage(class TextureSource *, const string &, class IImage *);
virtual void rebuildImagesAndTextures(class TextureSource *);
virtual class ITexture * generateTextureFromMesh(class TextureSource *, const class TextureFromMeshParams &);
virtual class ITexture * getNormalTexture(class TextureSource *, const string &);
virtual class SColor getTextureAverageColor(class TextureSource *, const string &);
virtual class ITexture * getShaderFlagsTexture(class TextureSource *, bool);
u32 generateTexture(class TextureSource *, const string &);
bool generateImagePart(class TextureSource *, string, class IImage * &);
class IImage * generateImage(class TextureSource *, const string &);
/* vtable has 15 entries: {
[3] = getTextureId((null)),
[4] = getTextureName((null)),
[5] = getTexture((null)),
[2] = getTexture((null)),
[6] = getTextureForMesh((null)),
[7] = getPalette((null)),
[8] = getDevice((null)),
[9] = isKnownSourceImage((null)),
[14] = processQueue((null)),
[15] = insertSourceImage((null)),
[16] = rebuildImagesAndTextures((null)),
[10] = generateTextureFromMesh((null)),
[11] = getNormalTexture((null)),
[12] = getTextureAverageColor((null)),
[13] = getShaderFlagsTexture((null)),
} */
/* size: 512, cachelines: 8, members: 14 */
/* padding: 5 */
/* BRAIN FART ALERT! 512 != 499 + 0(holes), diff = 13 */
};
class IWritableTextureSource : public ITextureSource {
public:
/* class ITextureSource <ancestor>; */ /* 0 8 */
void IWritableTextureSource(class IWritableTextureSource *, const class IWritableTextureSource &);
void IWritableTextureSource(class IWritableTextureSource *);
virtual void ~IWritableTextureSource(class IWritableTextureSource *, int);
virtual u32 getTextureId(class IWritableTextureSource *, const string &);
virtual string getTextureName(class IWritableTextureSource *, u32);
virtual class ITexture * getTexture(class IWritableTextureSource *, u32);
virtual class ITexture * getTexture(class IWritableTextureSource *, const string &, u32 *);
virtual class IrrlichtDevice * getDevice(class IWritableTextureSource *);
virtual bool isKnownSourceImage(class IWritableTextureSource *, const string &);
virtual class ITexture * generateTextureFromMesh(class IWritableTextureSource *, const class TextureFromMeshParams &);
virtual void processQueue(class IWritableTextureSource *);
virtual void insertSourceImage(class IWritableTextureSource *, const string &, class IImage *);
virtual void rebuildImagesAndTextures(class IWritableTextureSource *);
virtual class ITexture * getNormalTexture(class IWritableTextureSource *, const string &);
virtual class SColor getTextureAverageColor(class IWritableTextureSource *, const string &);
virtual class ITexture * getShaderFlagsTexture(class IWritableTextureSource *, bool);
/* vtable has 13 entries: {
[3] = getTextureId((null)),
[4] = getTextureName((null)),
[5] = getTexture((null)),
[2] = getTexture((null)),
[8] = getDevice((null)),
[9] = isKnownSourceImage((null)),
[10] = generateTextureFromMesh((null)),
[14] = processQueue((null)),
[15] = insertSourceImage((null)),
[16] = rebuildImagesAndTextures((null)),
[11] = getNormalTexture((null)),
[12] = getTextureAverageColor((null)),
[13] = getShaderFlagsTexture((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
/* BRAIN FART ALERT! 8 != 0 + 0(holes), diff = 8 */
};
class ISimpleTextureSource {
public:
int ()(void) * * _vptr.ISimpleTextureSource; /* 0 8 */
void ISimpleTextureSource(class ISimpleTextureSource *, const class ISimpleTextureSource &);
void ISimpleTextureSource(class ISimpleTextureSource *);
virtual void ~ISimpleTextureSource(class ISimpleTextureSource *, int);
virtual class ITexture * getTexture(class ISimpleTextureSource *, const string &, u32 *);
/* vtable has 1 entries: {
[2] = getTexture((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
};
class ItemNotFoundException : public BaseException {
public:
/* class BaseException <ancestor>; */ /* 0 40 */
void ItemNotFoundException(class ItemNotFoundException *, );
void ItemNotFoundException(class ItemNotFoundException *, const class ItemNotFoundException &);
void ItemNotFoundException(class ItemNotFoundException *, const string &);
virtual void ~ItemNotFoundException(class ItemNotFoundException *, int);
/* size: 40, cachelines: 1, members: 1 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 40 != 0 + 0(holes), diff = 40 */
};
struct FT_MemoryRec_ {
void * user; /* 0 8 */
FT_Alloc_Func alloc; /* 8 8 */
FT_Free_Func free; /* 16 8 */
FT_Realloc_Func realloc; /* 24 8 */
/* size: 32, cachelines: 1, members: 4 */
/* last cacheline: 32 bytes */
};
struct FT_StreamRec_ {
unsigned char * base; /* 0 8 */
long unsigned int size; /* 8 8 */
long unsigned int pos; /* 16 8 */
FT_StreamDesc descriptor; /* 24 8 */
FT_StreamDesc pathname; /* 32 8 */
FT_Stream_IoFunc read; /* 40 8 */
FT_Stream_CloseFunc close; /* 48 8 */
FT_Memory memory; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
unsigned char * cursor; /* 64 8 */
unsigned char * limit; /* 72 8 */
/* size: 80, cachelines: 2, members: 10 */
/* last cacheline: 16 bytes */
};
struct FT_Vector_ {
FT_Pos x; /* 0 8 */
FT_Pos y; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
};
struct FT_BBox_ {
FT_Pos xMin; /* 0 8 */
FT_Pos yMin; /* 8 8 */
FT_Pos xMax; /* 16 8 */
FT_Pos yMax; /* 24 8 */
/* size: 32, cachelines: 1, members: 4 */
/* last cacheline: 32 bytes */
};
struct FT_Bitmap_ {
unsigned int rows; /* 0 4 */
unsigned int width; /* 4 4 */
int pitch; /* 8 4 */
/* XXX 4 bytes hole, try to pack */
unsigned char * buffer; /* 16 8 */
short unsigned int num_grays; /* 24 2 */
unsigned char pixel_mode; /* 26 1 */
unsigned char palette_mode; /* 27 1 */
/* XXX 4 bytes hole, try to pack */
void * palette; /* 32 8 */
/* size: 40, cachelines: 1, members: 8 */
/* sum members: 32, holes: 2, sum holes: 8 */
/* last cacheline: 40 bytes */
};
struct FT_Outline_ {
short int n_contours; /* 0 2 */
short int n_points; /* 2 2 */
/* XXX 4 bytes hole, try to pack */
FT_Vector * points; /* 8 8 */
char * tags; /* 16 8 */
short int * contours; /* 24 8 */
int flags; /* 32 4 */
/* size: 40, cachelines: 1, members: 6 */
/* sum members: 32, holes: 1, sum holes: 4 */
/* padding: 4 */
/* last cacheline: 40 bytes */
};
struct FT_Generic_ {
void * data; /* 0 8 */
FT_Generic_Finalizer finalizer; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
};
struct FT_ListNodeRec_ {
FT_ListNode prev; /* 0 8 */
FT_ListNode next; /* 8 8 */
void * data; /* 16 8 */
/* size: 24, cachelines: 1, members: 3 */
/* last cacheline: 24 bytes */
};
struct FT_ListRec_ {
FT_ListNode head; /* 0 8 */
FT_ListNode tail; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
};
struct FT_Glyph_Metrics_ {
FT_Pos width; /* 0 8 */
FT_Pos height; /* 8 8 */
FT_Pos horiBearingX; /* 16 8 */
FT_Pos horiBearingY; /* 24 8 */
FT_Pos horiAdvance; /* 32 8 */
FT_Pos vertBearingX; /* 40 8 */
FT_Pos vertBearingY; /* 48 8 */
FT_Pos vertAdvance; /* 56 8 */
/* size: 64, cachelines: 1, members: 8 */
};
struct FT_Bitmap_Size_ {
FT_Short height; /* 0 2 */
FT_Short width; /* 2 2 */
/* XXX 4 bytes hole, try to pack */
FT_Pos size; /* 8 8 */
FT_Pos x_ppem; /* 16 8 */
FT_Pos y_ppem; /* 24 8 */
/* size: 32, cachelines: 1, members: 5 */
/* sum members: 28, holes: 1, sum holes: 4 */
/* last cacheline: 32 bytes */
};
struct FT_FaceRec_ {
FT_Long num_faces; /* 0 8 */
FT_Long face_index; /* 8 8 */
FT_Long face_flags; /* 16 8 */
FT_Long style_flags; /* 24 8 */
FT_Long num_glyphs; /* 32 8 */
FT_String * family_name; /* 40 8 */
FT_String * style_name; /* 48 8 */
FT_Int num_fixed_sizes; /* 56 4 */
/* XXX 4 bytes hole, try to pack */
/* --- cacheline 1 boundary (64 bytes) --- */
FT_Bitmap_Size * available_sizes; /* 64 8 */
FT_Int num_charmaps; /* 72 4 */
/* XXX 4 bytes hole, try to pack */
FT_CharMap * charmaps; /* 80 8 */
FT_Generic generic; /* 88 16 */
FT_BBox bbox; /* 104 32 */
/* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */
FT_UShort units_per_EM; /* 136 2 */
FT_Short ascender; /* 138 2 */
FT_Short descender; /* 140 2 */
FT_Short height; /* 142 2 */
FT_Short max_advance_width; /* 144 2 */
FT_Short max_advance_height; /* 146 2 */
FT_Short underline_position; /* 148 2 */
FT_Short underline_thickness; /* 150 2 */
FT_GlyphSlot glyph; /* 152 8 */
FT_Size size; /* 160 8 */
FT_CharMap charmap; /* 168 8 */
FT_Driver driver; /* 176 8 */
FT_Memory memory; /* 184 8 */
/* --- cacheline 3 boundary (192 bytes) --- */
FT_Stream stream; /* 192 8 */
FT_ListRec sizes_list; /* 200 16 */
FT_Generic autohint; /* 216 16 */
void * extensions; /* 232 8 */
FT_Face_Internal internal; /* 240 8 */
/* size: 248, cachelines: 4, members: 31 */
/* sum members: 240, holes: 2, sum holes: 8 */
/* last cacheline: 56 bytes */
};
struct FT_SizeRec_ {
FT_Face face; /* 0 8 */
FT_Generic generic; /* 8 16 */
FT_Size_Metrics metrics; /* 24 56 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
FT_Size_Internal internal; /* 80 8 */
/* size: 88, cachelines: 2, members: 4 */
/* last cacheline: 24 bytes */
};
struct FT_GlyphSlotRec_ {
FT_Library library; /* 0 8 */
FT_Face face; /* 8 8 */
FT_GlyphSlot next; /* 16 8 */
FT_UInt reserved; /* 24 4 */
/* XXX 4 bytes hole, try to pack */
FT_Generic generic; /* 32 16 */
FT_Glyph_Metrics metrics; /* 48 64 */
/* --- cacheline 1 boundary (64 bytes) was 48 bytes ago --- */
FT_Fixed linearHoriAdvance; /* 112 8 */
FT_Fixed linearVertAdvance; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
FT_Vector advance; /* 128 16 */
FT_Glyph_Format format; /* 144 4 */
/* XXX 4 bytes hole, try to pack */
FT_Bitmap bitmap; /* 152 40 */
/* --- cacheline 3 boundary (192 bytes) --- */
FT_Int bitmap_left; /* 192 4 */
FT_Int bitmap_top; /* 196 4 */
FT_Outline outline; /* 200 40 */
FT_UInt num_subglyphs; /* 240 4 */
/* XXX 4 bytes hole, try to pack */
FT_SubGlyph subglyphs; /* 248 8 */
/* --- cacheline 4 boundary (256 bytes) --- */
void * control_data; /* 256 8 */
long int control_len; /* 264 8 */
FT_Pos lsb_delta; /* 272 8 */
FT_Pos rsb_delta; /* 280 8 */
void * other; /* 288 8 */
FT_Slot_Internal internal; /* 296 8 */
/* size: 304, cachelines: 5, members: 22 */
/* sum members: 292, holes: 3, sum holes: 12 */
/* last cacheline: 48 bytes */
};
struct FT_CharMapRec_ {
FT_Face face; /* 0 8 */
FT_Encoding encoding; /* 8 4 */
FT_UShort platform_id; /* 12 2 */
FT_UShort encoding_id; /* 14 2 */
/* size: 16, cachelines: 1, members: 4 */
/* last cacheline: 16 bytes */
};
struct FT_Size_Metrics_ {
FT_UShort x_ppem; /* 0 2 */
FT_UShort y_ppem; /* 2 2 */
/* XXX 4 bytes hole, try to pack */
FT_Fixed x_scale; /* 8 8 */
FT_Fixed y_scale; /* 16 8 */
FT_Pos ascender; /* 24 8 */
FT_Pos descender; /* 32 8 */
FT_Pos height; /* 40 8 */
FT_Pos max_advance; /* 48 8 */
/* size: 56, cachelines: 1, members: 8 */
/* sum members: 52, holes: 1, sum holes: 4 */
/* last cacheline: 56 bytes */
};
class NetworkPacket {
class vector<unsigned char, std::allocator<unsigned char> > m_data; /* 0 24 */
u32 m_datasize; /* 24 4 */
u32 m_read_offset; /* 28 4 */
u16 m_command; /* 32 2 */
u16 m_peer_id; /* 34 2 */
public:
void NetworkPacket(class NetworkPacket *, u16, u32, u16);
void NetworkPacket(class NetworkPacket *, u16, u32);
void NetworkPacket(class NetworkPacket *);
void ~NetworkPacket(class NetworkPacket *, int);
void putRawPacket(class NetworkPacket *, u8 *, u32, u16);
u32 getSize(class NetworkPacket *);
u16 getPeerId(class NetworkPacket *);
u16 getCommand(class NetworkPacket *);
u32const getRemainingBytes(const class NetworkPacket *);
const char * getRemainingString(class NetworkPacket *);
const char * getString(class NetworkPacket *, u32);
void putRawString(class NetworkPacket *, const char *, u32);
void putRawString(class NetworkPacket *, const string &);
class NetworkPacket & operator>>(class NetworkPacket *, string &);
class NetworkPacket & operator<<(class NetworkPacket *, const string &);
void putLongString(class NetworkPacket *, const string &);
class NetworkPacket & operator>>(class NetworkPacket *, wstring &);
class NetworkPacket & operator<<(class NetworkPacket *, const wstring &);
string readLongString(class NetworkPacket *);
char getChar(class NetworkPacket *, u32);
class NetworkPacket & operator>>(class NetworkPacket *, char &);
class NetworkPacket & operator<<(class NetworkPacket *, char);
class NetworkPacket & operator>>(class NetworkPacket *, bool &);
class NetworkPacket & operator<<(class NetworkPacket *, bool);
u8 getU8(class NetworkPacket *, u32);
class NetworkPacket & operator>>(class NetworkPacket *, u8 &);
class NetworkPacket & operator<<(class NetworkPacket *, u8);
u8 * getU8Ptr(class NetworkPacket *, u32);
u16 getU16(class NetworkPacket *, u32);
class NetworkPacket & operator>>(class NetworkPacket *, u16 &);
class NetworkPacket & operator<<(class NetworkPacket *, u16);
class NetworkPacket & operator>>(class NetworkPacket *, u32 &);
class NetworkPacket & operator<<(class NetworkPacket *, u32);
class NetworkPacket & operator>>(class NetworkPacket *, u64 &);
class NetworkPacket & operator<<(class NetworkPacket *, u64);
class NetworkPacket & operator>>(class NetworkPacket *, float &);
class NetworkPacket & operator<<(class NetworkPacket *, float);
class NetworkPacket & operator>>(class NetworkPacket *, v2f &);
class NetworkPacket & operator<<(class NetworkPacket *, v2f);
class NetworkPacket & operator>>(class NetworkPacket *, v3f &);
class NetworkPacket & operator<<(class NetworkPacket *, v3f);
class NetworkPacket & operator>>(class NetworkPacket *, s16 &);
class NetworkPacket & operator<<(class NetworkPacket *, s16);
class NetworkPacket & operator>>(class NetworkPacket *, s32 &);
class NetworkPacket & operator<<(class NetworkPacket *, s32);
class NetworkPacket & operator>>(class NetworkPacket *, v2s32 &);
class NetworkPacket & operator<<(class NetworkPacket *, v2s32);
class NetworkPacket & operator>>(class NetworkPacket *, v3s16 &);
class NetworkPacket & operator<<(class NetworkPacket *, v3s16);
class NetworkPacket & operator>>(class NetworkPacket *, v3s32 &);
class NetworkPacket & operator<<(class NetworkPacket *, v3s32);
class NetworkPacket & operator>>(class NetworkPacket *, class SColor &);
class NetworkPacket & operator<<(class NetworkPacket *, class SColor);
class Buffer<unsigned char> oldForgePacket(class NetworkPacket *);
void checkReadOffset(class NetworkPacket *, u32, u32);
void checkDataSize(class NetworkPacket *, u32);
/* size: 40, cachelines: 1, members: 5 */
/* padding: 4 */
/* last cacheline: 40 bytes */
};
struct ToClientCommandHandler {
const char * name; /* 0 8 */
enum ToClientConnectionState state; /* 8 4 */
/* XXX 4 bytes hole, try to pack */
struct {
void (*__pfn)(class Client *, class NetworkPacket *); /* 16 8 */
long int __delta; /* 24 8 */
} handler; /* 16 16 */
/* size: 32, cachelines: 1, members: 3 */
/* sum members: 28, holes: 1, sum holes: 4 */
/* last cacheline: 32 bytes */
};
struct ServerCommandFactory {
const char * name; /* 0 8 */
u8 channel; /* 8 1 */
bool reliable; /* 9 1 */
/* size: 16, cachelines: 1, members: 3 */
/* padding: 6 */
/* last cacheline: 16 bytes */
};
struct SimpleSoundSpec {
string name; /* 0 32 */
float gain; /* 32 4 */
void SimpleSoundSpec(class SimpleSoundSpec *, const string &, float);
bool exists(const class SimpleSoundSpec *);
/* size: 40, cachelines: 1, members: 2 */
/* padding: 4 */
/* last cacheline: 40 bytes */
};
struct TileLayer {
class ITexture * texture; /* 0 8 */
u32 texture_id; /* 8 4 */
class SColor color; /* 12 4 */
u8 material_type; /* 16 1 */
u8 material_flags; /* 17 1 */
/* XXX 2 bytes hole, try to pack */
u32 shader_id; /* 20 4 */
class ITexture * normal_texture; /* 24 8 */
class ITexture * flags_texture; /* 32 8 */
u16 animation_frame_length_ms; /* 40 2 */
u8 animation_frame_count; /* 42 1 */
bool has_color; /* 43 1 */
/* XXX 4 bytes hole, try to pack */
class vector<FrameSpec, std::allocator<FrameSpec> > frames; /* 48 24 */
void TileLayer(class TileLayer *);
bool operator==(const class TileLayer *, const class TileLayer &);
bool operator!=(const class TileLayer *, const class TileLayer &);
void applyMaterialOptions(const class TileLayer *, class SMaterial &);
void applyMaterialOptionsWithShaders(const class TileLayer *, class SMaterial &);
bool isTileable(const class TileLayer *);
/* size: 72, cachelines: 2, members: 12 */
/* sum members: 66, holes: 2, sum holes: 6 */
/* last cacheline: 8 bytes */
};
struct TileSpec {
u8 rotation; /* 0 1 */
u8 emissive_light; /* 1 1 */
/* XXX 6 bytes hole, try to pack */
struct TileLayer layers[2]; /* 8 144 */
void TileSpec(class TileSpec *);
bool isTileable(const class TileSpec *, const class TileSpec &);
/* size: 152, cachelines: 3, members: 3 */
/* sum members: 146, holes: 1, sum holes: 6 */
/* last cacheline: 24 bytes */
};
struct ItemDefinition {
enum ItemType type; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
string name; /* 8 32 */
string description; /* 40 32 */
/* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
string inventory_image; /* 72 32 */
string wield_image; /* 104 32 */
/* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */
string palette_image; /* 136 32 */
class SColor color; /* 168 4 */
v3f wield_scale; /* 172 12 */
u16 stack_max; /* 184 2 */
bool usable; /* 186 1 */
bool liquids_pointable; /* 187 1 */
/* XXX 4 bytes hole, try to pack */
/* --- cacheline 3 boundary (192 bytes) --- */
class ToolCapabilities * tool_capabilities; /* 192 8 */
ItemGroupList groups; /* 200 56 */
/* --- cacheline 4 boundary (256 bytes) --- */
struct SimpleSoundSpec sound_place; /* 256 40 */
/* XXX last struct has 4 bytes of padding */
struct SimpleSoundSpec sound_place_failed; /* 296 40 */
/* XXX last struct has 4 bytes of padding */
/* --- cacheline 5 boundary (320 bytes) was 16 bytes ago --- */
f32 range; /* 336 4 */
/* XXX 4 bytes hole, try to pack */
string node_placement_prediction; /* 344 32 */
void ItemDefinition(class ItemDefinition *);
void ItemDefinition(class ItemDefinition *, const class ItemDefinition &);
class ItemDefinition & operator=(class ItemDefinition *, const class ItemDefinition &);
void ~ItemDefinition(class ItemDefinition *, int);
void reset(class ItemDefinition *);
void serialize(const class ItemDefinition *, ostream &, u16);
void deSerialize(class ItemDefinition *, istream &);
private:
void resetInitial(class ItemDefinition *);
/* size: 376, cachelines: 6, members: 17 */
/* sum members: 364, holes: 3, sum holes: 12 */
/* paddings: 2, sum paddings: 8 */
/* last cacheline: 56 bytes */
};
struct ItemStack {
string name; /* 0 32 */
u16 count; /* 32 2 */
u16 wear; /* 34 2 */
/* XXX 4 bytes hole, try to pack */
class ItemStackMetadata metadata; /* 40 64 */
/* XXX last struct has 64 bytes of padding */
void ItemStack(class ItemStack *);
void ItemStack(class ItemStack *, const string &, u16, u16, class IItemDefManager *);
void ~ItemStack(class ItemStack *, int);
void serialize(const class ItemStack *, ostream &);
void deSerialize(class ItemStack *, istream &, class IItemDefManager *);
void deSerialize(class ItemStack *, const string &, class IItemDefManager *);
string getItemString(const class ItemStack *);
bool empty(const class ItemStack *);
void clear(class ItemStack *);
void add(class ItemStack *, u16);
void remove(class ItemStack *, u16);
u16 getStackMax(const class ItemStack *, class IItemDefManager *);
u16 freeSpace(const class ItemStack *, class IItemDefManager *);
bool isKnown(const class ItemStack *, class IItemDefManager *);
const class ItemDefinition & getDefinition(const class ItemStack *, class IItemDefManager *);
const class ToolCapabilities & getToolCapabilities(const class ItemStack *, class IItemDefManager *);
bool addWear(class ItemStack *, s32, class IItemDefManager *);
class ItemStack addItem(class ItemStack *, const class ItemStack &, class IItemDefManager *);
bool itemFits(const class ItemStack *, const class ItemStack &, class ItemStack *, class IItemDefManager *);
class ItemStack takeItem(class ItemStack *, u32);
class ItemStack peekItem(const class ItemStack *, u32);
/* size: 104, cachelines: 2, members: 4 */
/* sum members: 100, holes: 1, sum holes: 4 */
/* paddings: 1, sum paddings: 64 */
/* last cacheline: 40 bytes */
};
class ItemStackMetadata : public Metadata {
public:
/* class Metadata <ancestor>; */ /* 0 0 */
void ItemStackMetadata(class ItemStackMetadata *, );
void ItemStackMetadata(class ItemStackMetadata *, const class ItemStackMetadata &);
void ItemStackMetadata(class ItemStackMetadata *);
void serialize(const class ItemStackMetadata *, ostream &);
void deSerialize(class ItemStackMetadata *, istream &);
virtual void ~ItemStackMetadata(class ItemStackMetadata *, int);
/* size: 64, cachelines: 1, members: 1 */
/* padding: 64 */
};
class IItemDefManager {
public:
int ()(void) * * _vptr.IItemDefManager; /* 0 8 */
void IItemDefManager(class IItemDefManager *, const class IItemDefManager &);
void IItemDefManager(class IItemDefManager *);
virtual void ~IItemDefManager(class IItemDefManager *, int);
virtual const class ItemDefinition & get(const class IItemDefManager *, const string &);
virtual const string & getAlias(const class IItemDefManager *, const string &);
virtual void getAll(const class IItemDefManager *, class set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string);
virtual bool isKnown(const class IItemDefManager *, const string &);
virtual class ITexture * getInventoryTexture(const class IItemDefManager *, const string &, class Client *);
virtual class ItemMesh * getWieldMesh(const class IItemDefManager *, const string &, class Client *);
virtual Palette * getPalette(const class IItemDefManager *, const string &, class Client *);
virtual class SColor getItemstackColor(const class IItemDefManager *, const class ItemStack &, class Client *);
virtual void serialize(class IItemDefManager *, ostream &, u16);
/* vtable has 9 entries: {
[2] = get((null)),
[3] = getAlias((null)),
[4] = getAll((null)),
[5] = isKnown((null)),
[6] = getInventoryTexture((null)),
[7] = getWieldMesh((null)),
[8] = getPalette((null)),
[9] = getItemstackColor((null)),
[10] = serialize((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
};
class InventoryList {
class vector<ItemStack, std::allocator<ItemStack> > m_items; /* 0 24 */
string m_name; /* 24 32 */
u32 m_size; /* 56 4 */
u32 m_width; /* 60 4 */
/* --- cacheline 1 boundary (64 bytes) --- */
class IItemDefManager * m_itemdef; /* 64 8 */
public:
void InventoryList(class InventoryList *, const string &, u32, class IItemDefManager *);
void ~InventoryList(class InventoryList *, int);
void clearItems(class InventoryList *);
void setSize(class InventoryList *, u32);
void setWidth(class InventoryList *, u32);
void setName(class InventoryList *, const string &);
void serialize(const class InventoryList *, ostream &);
void deSerialize(class InventoryList *, istream &);
void InventoryList(class InventoryList *, const class InventoryList &);
class InventoryList & operator=(class InventoryList *, const class InventoryList &);
bool operator==(const class InventoryList *, const class InventoryList &);
bool operator!=(const class InventoryList *, const class InventoryList &);
const string & getName(const class InventoryList *);
u32 getSize(const class InventoryList *);
u32 getWidth(const class InventoryList *);
u32 getUsedSlots(const class InventoryList *);
u32 getFreeSlots(const class InventoryList *);
const class ItemStack & getItem(const class InventoryList *, u32);
class ItemStack & getItem(class InventoryList *, u32);
class ItemStack changeItem(class InventoryList *, u32, const class ItemStack &);
void deleteItem(class InventoryList *, u32);
class ItemStack addItem(class InventoryList *, const class ItemStack &);
class ItemStack addItem(class InventoryList *, u32, const class ItemStack &);
bool itemFits(const class InventoryList *, u32, const class ItemStack &, class ItemStack *);
bool roomForItem(const class InventoryList *, const class ItemStack &);
bool containsItem(const class InventoryList *, const class ItemStack &);
class ItemStack removeItem(class InventoryList *, const class ItemStack &);
class ItemStack takeItem(class InventoryList *, u32, u32);
u32 moveItem(class InventoryList *, u32, class InventoryList *, u32, u32, bool, bool *);
void moveItemSomewhere(class InventoryList *, u32, class InventoryList *, u32);
/* size: 72, cachelines: 2, members: 5 */
/* last cacheline: 8 bytes */
};
class Inventory {
class vector<InventoryList*, std::allocator<InventoryList*> > m_lists; /* 0 24 */
class IItemDefManager * m_itemdef; /* 24 8 */
bool m_dirty; /* 32 1 */
public:
void ~Inventory(class Inventory *, int);
void clear(class Inventory *);
void clearContents(class Inventory *);
void Inventory(class Inventory *, class IItemDefManager *);
void Inventory(class Inventory *, const class Inventory &);
class Inventory & operator=(class Inventory *, const class Inventory &);
bool operator==(const class Inventory *, const class Inventory &);
bool operator!=(const class Inventory *, const class Inventory &);
void serialize(const class Inventory *, ostream &);
void deSerialize(class Inventory *, istream &);
class InventoryList * addList(class Inventory *, const string &, u32);
class InventoryList * getList(class Inventory *, const string &);
const class InventoryList * getList(const class Inventory *, const string &);
class vector<const InventoryList*, std::allocator<const InventoryList*> > getLists(class Inventory *);
bool deleteList(class Inventory *, const string &);
class ItemStack addItem(class Inventory *, const string &, const class ItemStack &);
bool checkModified(const class Inventory *);
void setModified(class Inventory *, bool);
s32const getListIndex(const class Inventory *, const string &);
/* size: 40, cachelines: 1, members: 3 */
/* padding: 7 */
/* last cacheline: 40 bytes */
};
struct TileAnimationParams {
union {
struct {
int aspect_w; /* 0 4 */
int aspect_h; /* 4 4 */
float length; /* 8 4 */
} vertical_frames; /* 12 */
struct {
int frames_w; /* 0 4 */
int frames_h; /* 4 4 */
float frame_length; /* 8 4 */
} sheet_2d; /* 12 */
};
enum TileAnimationType type; /* 0 4 */
union {
struct {
int aspect_w; /* 4 4 */
int aspect_h; /* 8 4 */
float length; /* 12 4 */
} vertical_frames; /* 12 */
struct {
int frames_w; /* 4 4 */
int frames_h; /* 8 4 */
float frame_length; /* 12 4 */
} sheet_2d; /* 12 */
}; /* 4 12 */
void serialize(const class TileAnimationParams *, ostream &, u16);
void deSerialize(class TileAnimationParams *, istream &, u16);
void determineParams(const class TileAnimationParams *, v2u32, int *, int *, v2u32 *);
void getTextureModifer(const class TileAnimationParams *, ostream &, v2u32, int);
v2f getTextureCoords(const class TileAnimationParams *, v2u32, int);
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
};
struct ClientEvent {
union {
struct {
u8 amount; /* 0 1 */
} player_damage; /* 1 */
struct {
f32 pitch; /* 0 4 */
f32 yaw; /* 4 4 */
} player_force_move; /* 8 */
struct {
bool set_camera_point_target; /* 0 1 */
/* XXX 3 bytes hole, try to pack */
f32 camera_point_target_x; /* 4 4 */
f32 camera_point_target_y; /* 8 4 */
f32 camera_point_target_z; /* 12 4 */
} deathscreen; /* 16 */
struct {
string * formspec; /* 0 8 */
string * formname; /* 8 8 */
} show_formspec; /* 16 */
struct {
v3f * pos; /* 0 8 */
v3f * vel; /* 8 8 */
v3f * acc; /* 16 8 */
f32 expirationtime; /* 24 4 */
f32 size; /* 28 4 */
bool collisiondetection; /* 32 1 */
bool collision_removal; /* 33 1 */
bool vertical; /* 34 1 */
/* XXX 5 bytes hole, try to pack */
string * texture; /* 40 8 */
struct TileAnimationParams animation; /* 48 16 */
/* --- cacheline 1 boundary (64 bytes) --- */
u8 glow; /* 64 1 */
} spawn_particle; /* 72 */
struct {
u16 amount; /* 0 2 */
/* XXX 2 bytes hole, try to pack */
f32 spawntime; /* 4 4 */
v3f * minpos; /* 8 8 */
v3f * maxpos; /* 16 8 */
v3f * minvel; /* 24 8 */
v3f * maxvel; /* 32 8 */
v3f * minacc; /* 40 8 */
v3f * maxacc; /* 48 8 */
f32 minexptime; /* 56 4 */
f32 maxexptime; /* 60 4 */
f32 minsize; /* 64 4 */
f32 maxsize; /* 68 4 */
bool collisiondetection; /* 72 1 */
bool collision_removal; /* 73 1 */
u16 attached_id; /* 74 2 */
bool vertical; /* 76 1 */
/* XXX 3 bytes hole, try to pack */
string * texture; /* 80 8 */
u32 id; /* 88 4 */
struct TileAnimationParams animation; /* 92 16 */
u8 glow; /* 108 1 */
} add_particlespawner; /* 112 */
struct {
u32 id; /* 0 4 */
} delete_particlespawner; /* 4 */
struct {
u32 id; /* 0 4 */
u8 type; /* 4 1 */
/* XXX 3 bytes hole, try to pack */
v2f * pos; /* 8 8 */
string * name; /* 16 8 */
v2f * scale; /* 24 8 */
string * text; /* 32 8 */
u32 number; /* 40 4 */
u32 item; /* 44 4 */
u32 dir; /* 48 4 */
/* XXX 4 bytes hole, try to pack */
v2f * align; /* 56 8 */
v2f * offset; /* 64 8 */
v3f * world_pos; /* 72 8 */
v2s32 * size; /* 80 8 */
} hudadd; /* 88 */
struct {
u32 id; /* 0 4 */
} hudrm; /* 4 */
struct {
u32 id; /* 0 4 */
enum HudElementStat stat; /* 4 4 */
v2f * v2fdata; /* 8 8 */
string * sdata; /* 16 8 */
u32 data; /* 24 4 */
/* XXX 4 bytes hole, try to pack */
v3f * v3fdata; /* 32 8 */
v2s32 * v2s32data; /* 40 8 */
} hudchange; /* 48 */
struct {
class SColor * bgcolor; /* 0 8 */
string * type; /* 8 8 */
class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basi params; /* 16 8 */
} set_sky; /* 24 */
struct {
bool do_override; /* 0 1 */
/* XXX 3 bytes hole, try to pack */
float ratio_f; /* 4 4 */
} override_day_night_ratio; /* 8 */
};
enum ClientEventType type; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
union {
struct {
u8 amount; /* 8 1 */
} player_damage; /* 1 */
struct {
f32 pitch; /* 8 4 */
f32 yaw; /* 12 4 */
} player_force_move; /* 8 */
struct {
bool set_camera_point_target; /* 8 1 */
/* XXX 3 bytes hole, try to pack */
f32 camera_point_target_x; /* 12 4 */
f32 camera_point_target_y; /* 16 4 */
f32 camera_point_target_z; /* 20 4 */
} deathscreen; /* 16 */
struct {
string * formspec; /* 8 8 */
string * formname; /* 16 8 */
} show_formspec; /* 16 */
struct {
v3f * pos; /* 8 8 */
v3f * vel; /* 16 8 */
v3f * acc; /* 24 8 */
f32 expirationtime; /* 32 4 */
f32 size; /* 36 4 */
bool collisiondetection; /* 40 1 */
bool collision_removal; /* 41 1 */
bool vertical; /* 42 1 */
/* XXX 5 bytes hole, try to pack */
string * texture; /* 48 8 */
struct TileAnimationParams animation; /* 56 16 */
u8 glow; /* 72 1 */
} spawn_particle; /* 72 */
struct {
u16 amount; /* 8 2 */
/* XXX 2 bytes hole, try to pack */
f32 spawntime; /* 12 4 */
v3f * minpos; /* 16 8 */
v3f * maxpos; /* 24 8 */
v3f * minvel; /* 32 8 */
v3f * maxvel; /* 40 8 */
v3f * minacc; /* 48 8 */
v3f * maxacc; /* 56 8 */
f32 minexptime; /* 64 4 */
f32 maxexptime; /* 68 4 */
f32 minsize; /* 72 4 */
f32 maxsize; /* 76 4 */
bool collisiondetection; /* 80 1 */
bool collision_removal; /* 81 1 */
u16 attached_id; /* 82 2 */
bool vertical; /* 84 1 */
/* XXX 3 bytes hole, try to pack */
string * texture; /* 88 8 */
u32 id; /* 96 4 */
struct TileAnimationParams animation; /* 100 16 */
u8 glow; /* 116 1 */
} add_particlespawner; /* 112 */
struct {
u32 id; /* 8 4 */
} delete_particlespawner; /* 4 */
struct {
u32 id; /* 8 4 */
u8 type; /* 12 1 */
/* XXX 3 bytes hole, try to pack */
v2f * pos; /* 16 8 */
string * name; /* 24 8 */
v2f * scale; /* 32 8 */
string * text; /* 40 8 */
u32 number; /* 48 4 */
u32 item; /* 52 4 */
u32 dir; /* 56 4 */
/* XXX 4 bytes hole, try to pack */
v2f * align; /* 64 8 */
v2f * offset; /* 72 8 */
v3f * world_pos; /* 80 8 */
v2s32 * size; /* 88 8 */
} hudadd; /* 88 */
struct {
u32 id; /* 8 4 */
} hudrm; /* 4 */
struct {
u32 id; /* 8 4 */
enum HudElementStat stat; /* 12 4 */
v2f * v2fdata; /* 16 8 */
string * sdata; /* 24 8 */
u32 data; /* 32 4 */
/* XXX 4 bytes hole, try to pack */
v3f * v3fdata; /* 40 8 */
v2s32 * v2s32data; /* 48 8 */
} hudchange; /* 48 */
struct {
class SColor * bgcolor; /* 8 8 */
string * type; /* 16 8 */
class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basi params; /* 24 8 */
} set_sky; /* 24 */
struct {
bool do_override; /* 8 1 */
/* XXX 3 bytes hole, try to pack */
float ratio_f; /* 12 4 */
} override_day_night_ratio; /* 8 */
}; /* 8 112 */
/* size: 120, cachelines: 2, members: 2 */
/* sum members: 116, holes: 1, sum holes: 4 */
/* last cacheline: 56 bytes */
};
struct MapNode {
u16 param0; /* 0 2 */
u8 param1; /* 2 1 */
u8 param2; /* 3 1 */
void MapNode(class MapNode *);
void MapNode(class MapNode *, content_t, u8, u8);
void MapNode(class MapNode *, class INodeDefManager *, const string &, u8, u8);
bool operator==(class MapNode *, const class MapNode &);
content_t getContent(const class MapNode *);
void setContent(class MapNode *, content_t);
u8 getParam1(const class MapNode *);
void setParam1(class MapNode *, u8);
u8 getParam2(const class MapNode *);
void setParam2(class MapNode *, u8);
void getColor(const class MapNode *, const class ContentFeatures &, class SColor *);
void setLight(class MapNode *, enum LightBank, u8, const class ContentFeatures &);
void setLight(class MapNode *, enum LightBank, u8, class INodeDefManager *);
bool isLightDayNightEq(const class MapNode *, class INodeDefManager *);
u8 getLight(const class MapNode *, enum LightBank, class INodeDefManager *);
u8 getLightRaw(const class MapNode *, enum LightBank, const class ContentFeatures &);
u8 getLightNoChecks(const class MapNode *, enum LightBank, const class ContentFeatures *);
bool getLightBanks(const class MapNode *, u8 &, u8 &, class INodeDefManager *);
u8 getLightBlend(const class MapNode *, u32, class INodeDefManager *);
u8 getFaceDir(const class MapNode *, class INodeDefManager *);
u8 getWallMounted(const class MapNode *, class INodeDefManager *);
v3s16 getWallMountedDir(const class MapNode *, class INodeDefManager *);
void rotateAlongYAxis(class MapNode *, class INodeDefManager *, enum Rotation);
u8 getNeighbors(class MapNode *, v3s16, class Map *);
void getNodeBoxes(class MapNode *, class INodeDefManager *, class vector<irr::core::aabbox3d<float>, std::allocator<irr::core::aabbox3d<float> > > *, u8);
void getSelectionBoxes(class MapNode *, class INodeDefManager *, class vector<irr::core::aabbox3d<float>, std::allocator<irr::core::aabbox3d<float> > > *, u8);
void getCollisionBoxes(class MapNode *, class INodeDefManager *, class vector<irr::core::aabbox3d<float>, std::allocator<irr::core::aabbox3d<float> > > *, u8);
u8 getMaxLevel(const class MapNode *, class INodeDefManager *);
u8 getLevel(const class MapNode *, class INodeDefManager *);
u8 setLevel(class MapNode *, class INodeDefManager *, s8);
u8 addLevel(class MapNode *, class INodeDefManager *, s8);
u32 serializedLength(u8);
void serialize(class MapNode *, u8 *, u8);
void deSerialize(class MapNode *, u8 *, u8);
void serializeBulk(ostream &, int, const class MapNode *, u32, u8, u8, bool);
void deSerializeBulk(istream &, int, class MapNode *, u32, u8, u8, bool);
private:
void deSerialize_pre22(class MapNode *, u8 *, u8);
/* size: 4, cachelines: 1, members: 3 */
/* last cacheline: 4 bytes */
};
struct ContentFeatures {
struct TileSpec tiles[6]; /* 0 912 */
/* --- cacheline 14 boundary (896 bytes) was 16 bytes ago --- */
struct TileSpec special_tiles[6]; /* 912 912 */
/* --- cacheline 28 boundary (1792 bytes) was 32 bytes ago --- */
u8 solidness; /* 1824 1 */
u8 visual_solidness; /* 1825 1 */
bool backface_culling; /* 1826 1 */
bool has_on_construct; /* 1827 1 */
bool has_on_destruct; /* 1828 1 */
bool has_after_destruct; /* 1829 1 */
/* XXX 2 bytes hole, try to pack */
string name; /* 1832 32 */
/* --- cacheline 29 boundary (1856 bytes) was 8 bytes ago --- */
ItemGroupList groups; /* 1864 56 */
/* --- cacheline 30 boundary (1920 bytes) --- */
enum ContentParamType param_type; /* 1920 4 */
enum ContentParamType2 param_type_2; /* 1924 4 */
enum NodeDrawType drawtype; /* 1928 4 */
/* XXX 4 bytes hole, try to pack */
string mesh; /* 1936 32 */
class IMesh * mesh_ptr[24]; /* 1968 192 */
/* --- cacheline 33 boundary (2112 bytes) was 48 bytes ago --- */
class SColor minimap_color; /* 2160 4 */
float visual_scale; /* 2164 4 */
struct TileDef tiledef[6]; /* 2168 336 */
/* --- cacheline 39 boundary (2496 bytes) was 8 bytes ago --- */
struct TileDef tiledef_overlay[6]; /* 2504 336 */
/* --- cacheline 44 boundary (2816 bytes) was 24 bytes ago --- */
struct TileDef tiledef_special[6]; /* 2840 336 */
/* --- cacheline 49 boundary (3136 bytes) was 40 bytes ago --- */
u8 alpha; /* 3176 1 */
/* XXX 3 bytes hole, try to pack */
class SColor color; /* 3180 4 */
string palette_name; /* 3184 32 */
/* --- cacheline 50 boundary (3200 bytes) was 16 bytes ago --- */
class vector<irr::video::SColor, std::allocator<irr::video::SColor> > * palette; /* 3216 8 */
u8 waving; /* 3224 1 */
u8 connect_sides; /* 3225 1 */
/* XXX 6 bytes hole, try to pack */
class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > connects_to; /* 3232 24 */
class set<short unsigned int, std::less<short unsigned int>, std::allocator<short unsigned int> > connects_to_ids; /* 3256 48 */
/* --- cacheline 51 boundary (3264 bytes) was 40 bytes ago --- */
class SColor post_effect_color; /* 3304 4 */
u8 leveled; /* 3308 1 */
bool light_propagates; /* 3309 1 */
bool sunlight_propagates; /* 3310 1 */
u8 light_source; /* 3311 1 */
bool is_ground_content; /* 3312 1 */
bool walkable; /* 3313 1 */
bool pointable; /* 3314 1 */
bool diggable; /* 3315 1 */
bool climbable; /* 3316 1 */
bool buildable_to; /* 3317 1 */
bool rightclickable; /* 3318 1 */
/* XXX 1 byte hole, try to pack */
u32 damage_per_second; /* 3320 4 */
enum LiquidType liquid_type; /* 3324 4 */
/* --- cacheline 52 boundary (3328 bytes) --- */
string liquid_alternative_flowing; /* 3328 32 */
string liquid_alternative_source; /* 3360 32 */
/* --- cacheline 53 boundary (3392 bytes) --- */
u8 liquid_viscosity; /* 3392 1 */
bool liquid_renewable; /* 3393 1 */
u8 liquid_range; /* 3394 1 */
u8 drowning; /* 3395 1 */
bool floodable; /* 3396 1 */
/* XXX 3 bytes hole, try to pack */
struct NodeBox node_box; /* 3400 248 */
/* --- cacheline 57 boundary (3648 bytes) --- */
struct NodeBox selection_box; /* 3648 248 */
/* --- cacheline 60 boundary (3840 bytes) was 56 bytes ago --- */
struct NodeBox collision_box; /* 3896 248 */
/* --- cacheline 64 boundary (4096 bytes) was 48 bytes ago --- */
struct SimpleSoundSpec sound_footstep; /* 4144 40 */
/* XXX last struct has 4 bytes of padding */
/* --- cacheline 65 boundary (4160 bytes) was 24 bytes ago --- */
struct SimpleSoundSpec sound_dig; /* 4184 40 */
/* XXX last struct has 4 bytes of padding */
/* --- cacheline 66 boundary (4224 bytes) --- */
struct SimpleSoundSpec sound_dug; /* 4224 40 */
/* XXX last struct has 4 bytes of padding */
bool legacy_facedir_simple; /* 4264 1 */
bool legacy_wallmounted; /* 4265 1 */
void ContentFeatures(class ContentFeatures *);
void ~ContentFeatures(class ContentFeatures *, int);
void reset(class ContentFeatures *);
void serialize(const class ContentFeatures *, ostream &, u16);
void deSerialize(class ContentFeatures *, istream &);
void serializeOld(const class ContentFeatures *, ostream &, u16);
void deSerializeOld(class ContentFeatures *, istream &, int);
void correctAlpha(class ContentFeatures *);
bool isLiquid(const class ContentFeatures *);
bool sameLiquid(const class ContentFeatures *, const class ContentFeatures &);
int getGroup(const class ContentFeatures *, const string &);
void fillTileAttribs(class ContentFeatures *, class ITextureSource *, class TileLayer *, class TileDef *, u32, bool, bool, u8);
void updateTextures(class ContentFeatures *, class ITextureSource *, class IShaderSource *, class IMeshManipulator *, class Client *, const class TextureSettings &);
/* size: 4272, cachelines: 67, members: 57 */
/* sum members: 4247, holes: 6, sum holes: 19 */
/* padding: 6 */
/* paddings: 3, sum paddings: 12 */
/* last cacheline: 48 bytes */
};
class INodeDefManager {
public:
int ()(void) * * _vptr.INodeDefManager; /* 0 8 */
void INodeDefManager(class INodeDefManager *, const class INodeDefManager &);
void INodeDefManager(class INodeDefManager *);
virtual void ~INodeDefManager(class INodeDefManager *, int);
virtual const class ContentFeatures & get(const class INodeDefManager *, content_t);
virtual const class ContentFeatures & get(const class INodeDefManager *, const class MapNode &);
virtual bool getId(const class INodeDefManager *, const string &, content_t &);
virtual content_t getId(const class INodeDefManager *, const string &);
virtual bool getIds(const class INodeDefManager *, const string &, class set<short unsigned int, std::less<short unsigned int>, std::allocator<short unsigned int> > &);
virtual const class ContentFeatures & get(const class INodeDefManager *, const string &);
virtual void serialize(const class INodeDefManager *, ostream &, u16);
virtual bool getNodeRegistrationStatus(const class INodeDefManager *);
virtual void pendNodeResolve(class INodeDefManager *, class NodeResolver *);
virtual bool cancelNodeResolveCallback(class INodeDefManager *, class NodeResolver *);
virtual bool nodeboxConnects(class INodeDefManager *, class MapNode, class MapNode, u8);
virtual class aabbox3d<short int> getSelectionBoxIntUnion(const class INodeDefManager *);
/* vtable has 12 entries: {
[2] = get((null)),
[3] = get((null)),
[4] = getId((null)),
[5] = getId((null)),
[6] = getIds((null)),
[7] = get((null)),
[8] = serialize((null)),
[9] = getNodeRegistrationStatus((null)),
[10] = pendNodeResolve((null)),
[11] = cancelNodeResolveCallback((null)),
[12] = nodeboxConnects((null)),
[13] = getSelectionBoxIntUnion((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
};
struct MeshMakeData {
class VoxelManipulator m_vmanip; /* 0 0 */
/* XXX 40 bytes hole, try to pack */
v3s16 m_blockpos; /* 40 6 */
v3s16 m_crack_pos_relative; /* 46 6 */
bool m_smooth_lighting; /* 52 1 */
bool m_show_hud; /* 53 1 */
/* XXX 2 bytes hole, try to pack */
class Client * m_client; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
bool m_use_shaders; /* 64 1 */
bool m_use_tangent_vertices; /* 65 1 */
void MeshMakeData(class MeshMakeData *, class Client *, bool, bool);
void fillBlockDataBegin(class MeshMakeData *, const v3s16 &);
void fillBlockData(class MeshMakeData *, const v3s16 &, class MapNode *);
void fill(class MeshMakeData *, class MapBlock *);
void fillSingleNode(class MeshMakeData *, class MapNode *);
void setCrack(class MeshMakeData *, int, v3s16);
void setSmoothLighting(class MeshMakeData *, bool);
/* size: 72, cachelines: 2, members: 8 */
/* sum members: 24, holes: 2, sum holes: 42 */
/* padding: 6 */
/* last cacheline: 8 bytes */
};
class MapBlock {
public:
class MapBlockMesh * mesh; /* 0 8 */
class NodeMetadataList m_node_metadata; /* 8 48 */
class NodeTimerList m_node_timers; /* 56 112 */
/* --- cacheline 2 boundary (128 bytes) was 40 bytes ago --- */
class StaticObjectList m_static_objects; /* 168 72 */
/* Bitfield combined with previous fields */
static u32const ystride = 16; /* 0 0 */
static u32const zstride = 256; /* 0 0 */
static u32const nodecount = 4096; /* 0 0 */
/* --- cacheline 3 boundary (192 bytes) was 48 bytes ago --- */
class Map * m_parent; /* 240 8 */
v3s16 m_pos; /* 248 6 */
v3s16 m_pos_relative; /* 254 6 */
/* XXX 4 bytes hole, try to pack */
/* --- cacheline 4 boundary (256 bytes) was 8 bytes ago --- */
class IGameDef * m_gamedef; /* 264 8 */
class MapNode * data; /* 272 8 */
u32 m_modified; /* 280 4 */
u32 m_modified_reason; /* 284 4 */
bool is_underground; /* 288 1 */
/* XXX 1 byte hole, try to pack */
u16 m_lighting_complete; /* 290 2 */
bool m_day_night_differs; /* 292 1 */
bool m_day_night_differs_expired; /* 293 1 */
bool m_generated; /* 294 1 */
/* XXX 1 byte hole, try to pack */
u32 m_timestamp; /* 296 4 */
u32 m_disk_timestamp; /* 300 4 */
float m_usage_timer; /* 304 4 */
int m_refcount; /* 308 4 */
void MapBlock(class MapBlock *, class Map *, v3s16, class IGameDef *, bool);
void ~MapBlock(class MapBlock *, int);
class Map * getParent(class MapBlock *);
void reallocate(class MapBlock *);
class MapNode * getData(class MapBlock *);
void raiseModified(class MapBlock *, u32, u32);
u32 getModified(class MapBlock *);
u32 getModifiedReason(class MapBlock *);
string getModifiedReasonString(class MapBlock *);
void resetModified(class MapBlock *);
bool isDummy(class MapBlock *);
void unDummify(class MapBlock *);
bool getIsUnderground(class MapBlock *);
void setIsUnderground(class MapBlock *, bool);
void setLightingComplete(class MapBlock *, u16);
u16 getLightingComplete(class MapBlock *);
void setLightingComplete(class MapBlock *, enum LightBank, u8, bool);
bool isLightingComplete(class MapBlock *, enum LightBank, u8);
bool isGenerated(class MapBlock *);
void setGenerated(class MapBlock *, bool);
v3s16 getPos(class MapBlock *);
v3s16 getPosRelative(class MapBlock *);
class aabbox3d<short int> getBox(class MapBlock *);
bool isValidPosition(class MapBlock *, s16, s16, s16);
bool isValidPosition(class MapBlock *, v3s16);
class MapNode getNode(class MapBlock *, s16, s16, s16, bool *);
class MapNode getNode(class MapBlock *, v3s16, bool *);
class MapNode getNodeNoEx(class MapBlock *, v3s16);
void setNode(class MapBlock *, s16, s16, s16, class MapNode &);
void setNode(class MapBlock *, v3s16, class MapNode &);
class MapNode getNodeNoCheck(class MapBlock *, s16, s16, s16, bool *);
class MapNode getNodeNoCheck(class MapBlock *, v3s16, bool *);
const class MapNode & getNodeUnsafe(class MapBlock *, s16, s16, s16);
const class MapNode & getNodeUnsafe(class MapBlock *, v3s16 &);
void setNodeNoCheck(class MapBlock *, s16, s16, s16, class MapNode &);
void setNodeNoCheck(class MapBlock *, v3s16, class MapNode &);
bool isValidPositionParent(class MapBlock *, v3s16);
class MapNode getNodeParent(class MapBlock *, v3s16, bool *);
void setNodeParent(class MapBlock *, v3s16, class MapNode &);
void drawbox(class MapBlock *, s16, s16, s16, s16, s16, s16, class MapNode);
bool propagateSunlight(class MapBlock *, class set<irr::core::vector3d<short int>, std::less<irr::core::vector3d<short int> >, std::allocator<irr::core::vector3d<short , bool, bool *);
void copyTo(class MapBlock *, class VoxelManipulator &);
void copyFrom(class MapBlock *, class VoxelManipulator &);
void actuallyUpdateDayNightDiff(class MapBlock *);
void expireDayNightDiff(class MapBlock *);
bool getDayNightDiff(class MapBlock *);
s16 getGroundLevel(class MapBlock *, v2s16);
void setTimestamp(class MapBlock *, u32);
void setTimestampNoChangedFlag(class MapBlock *, u32);
u32 getTimestamp(class MapBlock *);
u32 getDiskTimestamp(class MapBlock *);
void resetUsageTimer(class MapBlock *);
void incrementUsageTimer(class MapBlock *, float);
float getUsageTimer(class MapBlock *);
void refGrab(class MapBlock *);
void refDrop(class MapBlock *);
int refGet(class MapBlock *);
class NodeTimer getNodeTimer(class MapBlock *, v3s16);
void removeNodeTimer(class MapBlock *, v3s16);
void setNodeTimer(class MapBlock *, const class NodeTimer &);
void clearNodeTimers(class MapBlock *);
void serialize(class MapBlock *, ostream &, u8, bool);
void deSerialize(class MapBlock *, istream &, u8, bool);
void serializeNetworkSpecific(class MapBlock *, ostream &);
void deSerializeNetworkSpecific(class MapBlock *, istream &);
void deSerialize_pre22(class MapBlock *, istream &, u8, bool);
class MapNode & getNodeRef(class MapBlock *, s16, s16, s16);
class MapNode & getNodeRef(class MapBlock *, v3s16 &);
/* size: 312, cachelines: 5, members: 20, static members: 3 */
/* sum members: 374, holes: 3, sum holes: 6 */
/* last cacheline: 56 bytes */
/* BRAIN FART ALERT! 312 != 374 + 6(holes), diff = -68 */
};
class MapBlockMesh {
class IMesh * m_mesh[2]; /* 0 16 */
class MinimapMapblock * m_minimap_mapblock; /* 16 8 */
class Client * m_client; /* 24 8 */
class IVideoDriver * m_driver; /* 32 8 */
class ITextureSource * m_tsrc; /* 40 8 */
class IShaderSource * m_shdrsrc; /* 48 8 */
bool m_enable_shaders; /* 56 1 */
bool m_use_tangent_vertices; /* 57 1 */
bool m_enable_vbo; /* 58 1 */
bool m_has_animation; /* 59 1 */
int m_animation_force_timer; /* 60 4 */
/* --- cacheline 1 boundary (64 bytes) --- */
int m_last_crack; /* 64 4 */
/* XXX 4 bytes hole, try to pack */
class map<std::pair<unsigned char, unsigned int>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::pair<unsigned char, unsigned int> >, std::allocator<std::pair<const std::pair<unsigned char, unsigned int>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > m_crack_materials; /* 72 48 */
class map<std::pair<unsigned char, unsigned int>, TileLayer, std::less<std::pair<unsigned char, unsigned int> >, std::allocator<std::pair<const std::pair<unsigned char, unsigned int>, TileLayer> > > m_animation_tiles; /* 120 48 */
/* --- cacheline 2 boundary (128 bytes) was 40 bytes ago --- */
class map<std::pair<unsigned char, unsigned int>, int, std::less<std::pair<unsigned char, unsigned int> >, std::allocator<std::pair<const std::pair<unsigned char, unsigned int>, int> > > m_animation_frames; /* 168 48 */
/* --- cacheline 3 boundary (192 bytes) was 24 bytes ago --- */
class map<std::pair<unsigned char, unsigned int>, int, std::less<std::pair<unsigned char, unsigned int> >, std::allocator<std::pair<const std::pair<unsigned char, unsigned int>, int> > > m_animation_frame_offsets; /* 216 48 */
/* --- cacheline 4 boundary (256 bytes) was 8 bytes ago --- */
u32 m_last_daynight_ratio; /* 264 4 */
/* XXX 4 bytes hole, try to pack */
class map<std::pair<unsigned char, unsigned int>, std::map<unsigned int, irr::video::SColor, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, irr::video::SColor> > >, std::less<std::pair<unsigned char, unsigned int> >, std::allocator<std::pair<const std::pair<unsigned char, unsigned int>, std::map<unsigned int, irr::video::SColor, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, irr::video::SColor> > > > > > m_daynight_diffs; /* 272 48 */
/* --- cacheline 5 boundary (320 bytes) --- */
v3s16 m_camera_offset; /* 320 6 */
public:
void MapBlockMesh(class MapBlockMesh *, class MeshMakeData *, v3s16);
void ~MapBlockMesh(class MapBlockMesh *, int);
bool animate(class MapBlockMesh *, bool, float, int, u32);
class IMesh * getMesh(class MapBlockMesh *);
class IMesh * getMesh(class MapBlockMesh *, u8);
class MinimapMapblock * moveMinimapMapblock(class MapBlockMesh *);
bool isAnimationForced(const class MapBlockMesh *);
void decreaseAnimationForceTimer(class MapBlockMesh *);
void updateCameraOffset(class MapBlockMesh *, v3s16);
/* size: 328, cachelines: 6, members: 19 */
/* sum members: 318, holes: 2, sum holes: 8 */
/* padding: 2 */
/* last cacheline: 8 bytes */
};
struct MinimapMapblock {
struct MinimapPixel data[256]; /* 0 2048 */
void getMinimapNodes(class MinimapMapblock *, class VoxelManipulator *, v3s16);
/* size: 2048, cachelines: 32, members: 1 */
};
class IShaderSource {
public:
int ()(void) * * _vptr.IShaderSource; /* 0 8 */
void IShaderSource(class IShaderSource *, const class IShaderSource &);
void IShaderSource(class IShaderSource *);
virtual void ~IShaderSource(class IShaderSource *, int);
virtual u32 getShaderIdDirect(class IShaderSource *, const string &, u8, u8);
virtual class ShaderInfo getShaderInfo(class IShaderSource *, u32);
virtual u32 getShader(class IShaderSource *, const string &, u8, u8);
/* vtable has 3 entries: {
[2] = getShaderIdDirect((null)),
[3] = getShaderInfo((null)),
[4] = getShader((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
};
class FileCache {
string m_dir; /* 0 32 */
public:
void FileCache(class FileCache *, const string &);
bool update(class FileCache *, const string &, const string &);
bool load(class FileCache *, const string &, ostream &);
bool loadByPath(class FileCache *, const string &, ostream &);
bool updateByPath(class FileCache *, const string &, const string &);
/* size: 32, cachelines: 1, members: 1 */
/* last cacheline: 32 bytes */
};
class ClientMediaDownloader {
struct FileStatus {
bool received; /* 0 1 */
/* XXX 7 bytes hole, try to pack */
string sha1; /* 8 32 */
s32 current_remote; /* 40 4 */
/* XXX 4 bytes hole, try to pack */
class vector<int, std::allocator<int> > available_remotes; /* 48 24 */
/* size: 72, cachelines: 2, members: 4 */
/* sum members: 61, holes: 2, sum holes: 11 */
/* last cacheline: 8 bytes */
};
struct RemoteServerStatus {
string baseurl; /* 0 32 */
s32 active_count; /* 32 4 */
bool request_by_filename; /* 36 1 */
/* size: 40, cachelines: 1, members: 3 */
/* padding: 3 */
/* last cacheline: 40 bytes */
};
class map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ClientMediaDownloader::FileStatus*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ClientMediaDownloader::FileStatus*> > > m_files; /* 0 48 */
class vector<ClientMediaDownloader::RemoteServerStatus*, std::allocator<ClientMediaDownloader::RemoteServerStatus*> > m_remotes; /* 48 24 */
/* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
class FileCache m_media_cache; /* 72 32 */
bool m_initial_step_done; /* 104 1 */
/* XXX 3 bytes hole, try to pack */
s32 m_uncached_count; /* 108 4 */
s32 m_uncached_received_count; /* 112 4 */
/* XXX 4 bytes hole, try to pack */
long unsigned int m_httpfetch_caller; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
long unsigned int m_httpfetch_next_id; /* 128 8 */
long int m_httpfetch_timeout; /* 136 8 */
s32 m_httpfetch_active; /* 144 4 */
s32 m_httpfetch_active_limit; /* 148 4 */
s32 m_outstanding_hash_sets; /* 152 4 */
/* XXX 4 bytes hole, try to pack */
class map<long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<long unsigned int>, std::allocator<std::pair<long unsigned int const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > m_remote_file_transfers; /* 160 48 */
/* --- cacheline 3 boundary (192 bytes) was 16 bytes ago --- */
string m_name_bound; /* 208 32 */
public:
void ClientMediaDownloader(class ClientMediaDownloader *);
void ~ClientMediaDownloader(class ClientMediaDownloader *, int);
float getProgress(const class ClientMediaDownloader *);
bool isStarted(const class ClientMediaDownloader *);
bool isDone(const class ClientMediaDownloader *);
void addFile(class ClientMediaDownloader *, const string &, const string &);
void addRemoteServer(class ClientMediaDownloader *, const string &);
void step(class ClientMediaDownloader *, class Client *);
void conventionalTransferDone(class ClientMediaDownloader *, const string &, const string &, class Client *);
void initialStep(class ClientMediaDownloader *, class Client *);
void remoteHashSetReceived(class ClientMediaDownloader *, const class HTTPFetchResult &);
void remoteMediaReceived(class ClientMediaDownloader *, const class HTTPFetchResult &, class Client *);
s32 selectRemoteServer(class ClientMediaDownloader *, class FileStatus *);
void startRemoteMediaTransfers(class ClientMediaDownloader *);
void startConventionalTransfers(class ClientMediaDownloader *, class Client *);
bool checkAndLoad(class ClientMediaDownloader *, const string &, const string &, const string &, bool, class Client *);
string serializeRequiredHashSet(class ClientMediaDownloader *);
void deSerializeHashSet(const string &, class set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string);
/* size: 240, cachelines: 4, members: 14 */
/* sum members: 229, holes: 3, sum holes: 11 */
/* last cacheline: 48 bytes */
};
class NodeTimer {
public:
f32 timeout; /* 0 4 */
f32 elapsed; /* 4 4 */
v3s16 position; /* 8 6 */
void NodeTimer(class NodeTimer *);
void NodeTimer(class NodeTimer *, const v3s16 &);
void NodeTimer(class NodeTimer *, f32, f32, v3s16);
void ~NodeTimer(class NodeTimer *, int);
void serialize(const class NodeTimer *, ostream &);
void deSerialize(class NodeTimer *, istream &);
/* size: 16, cachelines: 1, members: 3 */
/* padding: 2 */
/* last cacheline: 16 bytes */
};
class NodeTimerList {
class multimap<double, NodeTimer, std::less<double>, std::allocator<std::pair<double const, NodeTimer> > > m_timers; /* 0 48 */
class map<irr::core::vector3d<short int>, std::_Rb_tree_iterator<std::pair<double const, NodeTimer> >, std::less<irr::core::vector3d<short int> >, std::allocator<std::pair<const irr::core::vector3d<short int>, std::_Rb_tree_iterator<std::pair<double const, NodeTimer> > > > > m_iterators; /* 48 48 */
/* --- cacheline 1 boundary (64 bytes) was 32 bytes ago --- */
double m_next_trigger_time; /* 96 8 */
double m_time; /* 104 8 */
public:
void NodeTimerList(class NodeTimerList *);
void ~NodeTimerList(class NodeTimerList *, int);
void serialize(const class NodeTimerList *, ostream &, u8);
void deSerialize(class NodeTimerList *, istream &, u8);
class NodeTimer get(class NodeTimerList *, const v3s16 &);
void remove(class NodeTimerList *, v3s16);
void insert(class NodeTimerList *, class NodeTimer);
void set(class NodeTimerList *, const class NodeTimer &);
void clear(class NodeTimerList *);
double getNextTriggerTime(class NodeTimerList *);
class vector<NodeTimer, std::allocator<NodeTimer> > step(class NodeTimerList *, float);
/* size: 112, cachelines: 2, members: 4 */
/* last cacheline: 48 bytes */
};
class StaticObjectList {
public:
class vector<StaticObject, std::allocator<StaticObject> > m_stored; /* 0 24 */
class map<short unsigned int, StaticObject, std::less<short unsigned int>, std::allocator<std::pair<short unsigned int const, StaticObject> > > m_active; /* 24 48 */
void insert(class StaticObjectList *, u16, class StaticObject);
void remove(class StaticObjectList *, u16);
void serialize(class StaticObjectList *, ostream &);
void deSerialize(class StaticObjectList *, istream &);
/* size: 72, cachelines: 2, members: 2 */
/* last cacheline: 8 bytes */
};
class NodeMetadataList {
class map<irr::core::vector3d<short int>, NodeMetadata*, std::less<irr::core::vector3d<short int> >, std::allocator<std::pair<const irr::core::vector3d<short int>, NodeMetadata*> > > m_data; /* 0 48 */
public:
void ~NodeMetadataList(class NodeMetadataList *, int);
void serialize(const class NodeMetadataList *, ostream &);
void deSerialize(class NodeMetadataList *, istream &, class IItemDefManager *);
class vector<irr::core::vector3d<short int>, std::allocator<irr::core::vector3d<short int> > > getAllKeys(class NodeMetadataList *);
class NodeMetadata * get(class NodeMetadataList *, v3s16);
void remove(class NodeMetadataList *, v3s16);
void set(class NodeMetadataList *, v3s16, class NodeMetadata *);
void clear(class NodeMetadataList *);
int countNonEmpty(const class NodeMetadataList *);
/* size: 48, cachelines: 1, members: 1 */
/* last cacheline: 48 bytes */
};
struct NodeBox {
enum NodeBoxType type; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
class vector<irr::core::aabbox3d<float>, std::allocator<irr::core::aabbox3d<float> > > fixed; /* 8 24 */
aabb3f wall_top; /* 32 24 */
aabb3f wall_bottom; /* 56 24 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
aabb3f wall_side; /* 80 24 */
class vector<irr::core::aabbox3d<float>, std::allocator<irr::core::aabbox3d<float> > > connect_top; /* 104 24 */
/* --- cacheline 2 boundary (128 bytes) --- */
class vector<irr::core::aabbox3d<float>, std::allocator<irr::core::aabbox3d<float> > > connect_bottom; /* 128 24 */
class vector<irr::core::aabbox3d<float>, std::allocator<irr::core::aabbox3d<float> > > connect_front; /* 152 24 */
class vector<irr::core::aabbox3d<float>, std::allocator<irr::core::aabbox3d<float> > > connect_left; /* 176 24 */
/* --- cacheline 3 boundary (192 bytes) was 8 bytes ago --- */
class vector<irr::core::aabbox3d<float>, std::allocator<irr::core::aabbox3d<float> > > connect_back; /* 200 24 */
class vector<irr::core::aabbox3d<float>, std::allocator<irr::core::aabbox3d<float> > > connect_right; /* 224 24 */
void NodeBox(class NodeBox *);
void reset(class NodeBox *);
void serialize(const class NodeBox *, ostream &, u16);
void deSerialize(class NodeBox *, istream &);
/* size: 248, cachelines: 4, members: 11 */
/* sum members: 244, holes: 1, sum holes: 4 */
/* last cacheline: 56 bytes */
};
class TextureSettings {
public:
enum LeavesStyle leaves_style; /* 0 4 */
bool opaque_water; /* 4 1 */
bool connected_glass; /* 5 1 */
bool use_normal_texture; /* 6 1 */
bool enable_mesh_cache; /* 7 1 */
bool enable_minimap; /* 8 1 */
void TextureSettings(class TextureSettings *);
void readSettings(class TextureSettings *);
/* size: 12, cachelines: 1, members: 6 */
/* padding: 3 */
/* last cacheline: 12 bytes */
};
struct TileDef {
string name; /* 0 32 */
bool backface_culling; /* 32 1 */
bool tileable_horizontal; /* 33 1 */
bool tileable_vertical; /* 34 1 */
bool has_color; /* 35 1 */
class SColor color; /* 36 4 */
struct TileAnimationParams animation; /* 40 16 */
void TileDef(class TileDef *);
void serialize(const class TileDef *, ostream &, u16);
void deSerialize(class TileDef *, istream &, u8, enum NodeDrawType);
/* size: 56, cachelines: 1, members: 7 */
/* last cacheline: 56 bytes */
};
struct MinimapPixel {
struct MapNode n; /* 0 4 */
u16 height; /* 4 2 */
u16 air_count; /* 6 2 */
/* size: 8, cachelines: 1, members: 3 */
/* last cacheline: 8 bytes */
};
struct EnumString {
int num; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
const char * str; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* sum members: 12, holes: 1, sum holes: 4 */
/* last cacheline: 16 bytes */
};
class SerializationError : public BaseException {
public:
/* class BaseException <ancestor>; */ /* 0 40 */
void SerializationError(class SerializationError *, );
void SerializationError(class SerializationError *, const class SerializationError &);
void SerializationError(class SerializationError *, const string &);
virtual void ~SerializationError(class SerializationError *, int);
/* size: 40, cachelines: 1, members: 1 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 40 != 0 + 0(holes), diff = 40 */
};
struct ShaderInfo {
int ()(void) * * _vptr.ShaderInfo; /* 0 8 */
string name; /* 8 32 */
enum E_MATERIAL_TYPE base_material; /* 40 4 */
enum E_MATERIAL_TYPE material; /* 44 4 */
u8 drawtype; /* 48 1 */
u8 material_type; /* 49 1 */
/* XXX 2 bytes hole, try to pack */
s32 user_data; /* 52 4 */
void ShaderInfo(class ShaderInfo *, const class ShaderInfo &);
void ShaderInfo(class ShaderInfo *);
virtual void ~ShaderInfo(class ShaderInfo *, int);
/* size: 56, cachelines: 1, members: 7 */
/* sum members: 54, holes: 1, sum holes: 2 */
/* last cacheline: 56 bytes */
};
class PacketError : public BaseException {
public:
/* class BaseException <ancestor>; */ /* 0 40 */
void PacketError(class PacketError *, const string &);
virtual void ~PacketError(class PacketError *, int);
/* size: 40, cachelines: 1, members: 1 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 40 != 0 + 0(holes), diff = 40 */
};
struct in_addr {
in_addr_t s_addr; /* 0 4 */
/* size: 4, cachelines: 1, members: 1 */
/* last cacheline: 4 bytes */
};
struct sockaddr_in {
sa_family_t sin_family; /* 0 2 */
in_port_t sin_port; /* 2 2 */
struct in_addr sin_addr; /* 4 4 */
unsigned char sin_zero[8]; /* 8 8 */
/* size: 16, cachelines: 1, members: 4 */
/* last cacheline: 16 bytes */
};
struct sockaddr_in6 {
sa_family_t sin6_family; /* 0 2 */
in_port_t sin6_port; /* 2 2 */
uint32_t sin6_flowinfo; /* 4 4 */
struct in6_addr sin6_addr; /* 8 16 */
uint32_t sin6_scope_id; /* 24 4 */
/* size: 28, cachelines: 1, members: 5 */
/* last cacheline: 28 bytes */
};
class IPv6AddressBytes {
public:
u8 bytes[16]; /* 0 16 */
void IPv6AddressBytes(class IPv6AddressBytes *);
/* size: 16, cachelines: 1, members: 1 */
/* last cacheline: 16 bytes */
};
class Address {
union {
struct sockaddr_in ipv4; /* 16 */
struct sockaddr_in6 ipv6; /* 28 */
};
unsigned int m_addr_family; /* 0 4 */
union {
struct sockaddr_in ipv4; /* 16 */
struct sockaddr_in6 ipv6; /* 28 */
} m_address; /* 4 28 */
u16 m_port; /* 32 2 */
public:
void Address(class Address *);
void Address(class Address *, u32, u16);
void Address(class Address *, u8, u8, u8, u8, u16);
void Address(class Address *, const class IPv6AddressBytes *, u16);
bool operator==(class Address *, const class Address &);
bool operator!=(class Address *, const class Address &);
void Resolve(class Address *, const char *);
class sockaddr_in getAddress(const class Address *);
short unsigned int getPort(const class Address *);
void setAddress(class Address *, u32);
void setAddress(class Address *, u8, u8, u8, u8);
void setAddress(class Address *, const class IPv6AddressBytes *);
class sockaddr_in6 getAddress6(const class Address *);
int getFamily(const class Address *);
bool isIPv6(const class Address *);
bool isZero(const class Address *);
void setPort(class Address *, short unsigned int);
void print(const class Address *, ostream *);
string serializeString(const class Address *);
/* size: 36, cachelines: 1, members: 3 */
/* padding: 2 */
/* last cacheline: 36 bytes */
};
class UDPSocket {
int m_handle; /* 0 4 */
int m_timeout_ms; /* 4 4 */
int m_addr_family; /* 8 4 */
public:
void UDPSocket(class UDPSocket *);
void UDPSocket(class UDPSocket *, bool);
void ~UDPSocket(class UDPSocket *, int);
void Bind(class UDPSocket *, class Address);
bool init(class UDPSocket *, bool, bool);
void Send(class UDPSocket *, const class Address &, const void *, int);
int Receive(class UDPSocket *, class Address &, void *, int);
int GetHandle(class UDPSocket *);
void setTimeoutMs(class UDPSocket *, int);
bool WaitData(class UDPSocket *, int);
/* size: 12, cachelines: 1, members: 3 */
/* last cacheline: 12 bytes */
};
class MutexedQueue<con::ConnectionCommand> {
protected:
class deque<con::ConnectionCommand, std::allocator<con::ConnectionCommand> > m_queue; /* 0 80 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
Mutex m_mutex; /* 80 40 */
class Semaphore m_signal; /* 120 32 */
public:
void MutexedQueue(class MutexedQueue<con::ConnectionCommand> *);
bool empty(const class MutexedQueue<con::ConnectionCommand> *);
void push_back(class MutexedQueue<con::ConnectionCommand> *, class ConnectionCommand);
class ConnectionCommand pop_frontNoEx(class MutexedQueue<con::ConnectionCommand> *, u32);
class ConnectionCommand pop_front(class MutexedQueue<con::ConnectionCommand> *, u32);
class ConnectionCommand pop_frontNoEx(class MutexedQueue<con::ConnectionCommand> *);
class ConnectionCommand pop_back(class MutexedQueue<con::ConnectionCommand> *, u32);
class ConnectionCommand pop_backNoEx(class MutexedQueue<con::ConnectionCommand> *, u32);
class ConnectionCommand pop_backNoEx(class MutexedQueue<con::ConnectionCommand> *);
protected:
Mutex & getMutex(class MutexedQueue<con::ConnectionCommand> *);
class deque<con::ConnectionCommand, std::allocator<con::ConnectionCommand> > & getQueue(class MutexedQueue<con::ConnectionCommand> *);
public:
void ~MutexedQueue(class MutexedQueue<con::ConnectionCommand> *, int);
/* size: 152, cachelines: 3, members: 3 */
/* last cacheline: 24 bytes */
};
class MutexedQueue<con::ConnectionEvent> {
protected:
class deque<con::ConnectionEvent, std::allocator<con::ConnectionEvent> > m_queue; /* 0 80 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
Mutex m_mutex; /* 80 40 */
class Semaphore m_signal; /* 120 32 */
public:
void MutexedQueue(class MutexedQueue<con::ConnectionEvent> *);
bool empty(const class MutexedQueue<con::ConnectionEvent> *);
void push_back(class MutexedQueue<con::ConnectionEvent> *, class ConnectionEvent);
class ConnectionEvent pop_frontNoEx(class MutexedQueue<con::ConnectionEvent> *, u32);
class ConnectionEvent pop_front(class MutexedQueue<con::ConnectionEvent> *, u32);
class ConnectionEvent pop_frontNoEx(class MutexedQueue<con::ConnectionEvent> *);
class ConnectionEvent pop_back(class MutexedQueue<con::ConnectionEvent> *, u32);
class ConnectionEvent pop_backNoEx(class MutexedQueue<con::ConnectionEvent> *, u32);
class ConnectionEvent pop_backNoEx(class MutexedQueue<con::ConnectionEvent> *);
protected:
Mutex & getMutex(class MutexedQueue<con::ConnectionEvent> *);
class deque<con::ConnectionEvent, std::allocator<con::ConnectionEvent> > & getQueue(class MutexedQueue<con::ConnectionEvent> *);
public:
void ~MutexedQueue(class MutexedQueue<con::ConnectionEvent> *, int);
/* size: 152, cachelines: 3, members: 3 */
/* last cacheline: 24 bytes */
};
class ScopeProfiler {
class Profiler * m_profiler; /* 0 8 */
string m_name; /* 8 32 */
class TimeTaker * m_timer; /* 40 8 */
enum ScopeProfilerType m_type; /* 48 4 */
public:
void ScopeProfiler(class ScopeProfiler *, class Profiler *, const string &, enum ScopeProfilerType);
void ScopeProfiler(class ScopeProfiler *, class Profiler *, const char *, enum ScopeProfilerType);
void ~ScopeProfiler(class ScopeProfiler *, int);
/* size: 56, cachelines: 1, members: 4 */
/* padding: 4 */
/* last cacheline: 56 bytes */
};
class SendFailedException : public BaseException {
public:
/* class BaseException <ancestor>; */ /* 0 40 */
void SendFailedException(class SendFailedException *, const string &);
virtual void ~SendFailedException(class SendFailedException *, int);
/* size: 40, cachelines: 1, members: 1 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 40 != 0 + 0(holes), diff = 40 */
};
class SocketException : public BaseException {
public:
/* class BaseException <ancestor>; */ /* 0 40 */
void SocketException(class SocketException *, const string &);
virtual void ~SocketException(class SocketException *, int);
/* size: 40, cachelines: 1, members: 1 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 40 != 0 + 0(holes), diff = 40 */
};
class AlreadyExistsException : public BaseException {
public:
/* class BaseException <ancestor>; */ /* 0 40 */
void AlreadyExistsException(class AlreadyExistsException *, const string &);
virtual void ~AlreadyExistsException(class AlreadyExistsException *, int);
/* size: 40, cachelines: 1, members: 1 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 40 != 0 + 0(holes), diff = 40 */
};
struct ToServerCommandHandler {
stringconst name; /* 0 32 */
enum ToServerConnectionState state; /* 32 4 */
/* XXX 4 bytes hole, try to pack */
struct {
void (*__pfn)(class Server *, class NetworkPacket *); /* 40 8 */
long int __delta; /* 48 8 */
} handler; /* 40 16 */
void ~ToServerCommandHandler(class ToServerCommandHandler *, int);
void ToServerCommandHandler(class ToServerCommandHandler *, const class ToServerCommandHandler &);
/* size: 56, cachelines: 1, members: 3 */
/* sum members: 52, holes: 1, sum holes: 4 */
/* last cacheline: 56 bytes */
};
struct ClientCommandFactory {
const char * name; /* 0 8 */
u8 channel; /* 8 1 */
bool reliable; /* 9 1 */
/* size: 16, cachelines: 1, members: 3 */
/* padding: 6 */
/* last cacheline: 16 bytes */
};
class MapSettingsManager {
public:
class MapgenParams * mapgen_params; /* 0 8 */
string m_map_meta_path; /* 8 32 */
class Settings * m_map_settings; /* 40 8 */
class Settings * m_user_settings; /* 48 8 */
void MapSettingsManager(class MapSettingsManager *, class Settings *, const string &);
void ~MapSettingsManager(class MapSettingsManager *, int);
bool getMapSetting(class MapSettingsManager *, const string &, string *);
bool getMapSettingNoiseParams(class MapSettingsManager *, const string &, class NoiseParams *);
bool setMapSetting(class MapSettingsManager *, const string &, const string &, bool);
bool setMapSettingNoiseParams(class MapSettingsManager *, const string &, const class NoiseParams *, bool);
bool loadMapMeta(class MapSettingsManager *);
bool saveMapMeta(class MapSettingsManager *);
class MapgenParams * makeMapgenParams(class MapSettingsManager *);
/* size: 56, cachelines: 1, members: 4 */
/* last cacheline: 56 bytes */
};
struct HudElement {
enum HudElementType type; /* 0 4 */
v2f pos; /* 4 8 */
/* XXX 4 bytes hole, try to pack */
string name; /* 16 32 */
v2f scale; /* 48 8 */
string text; /* 56 32 */
/* --- cacheline 1 boundary (64 bytes) was 24 bytes ago --- */
u32 number; /* 88 4 */
u32 item; /* 92 4 */
u32 dir; /* 96 4 */
v2f align; /* 100 8 */
v2f offset; /* 108 8 */
v3f world_pos; /* 116 12 */
/* --- cacheline 2 boundary (128 bytes) --- */
v2s32 size; /* 128 8 */
/* size: 136, cachelines: 3, members: 12 */
/* sum members: 132, holes: 1, sum holes: 4 */
/* last cacheline: 8 bytes */
};
struct ToolCapabilities {
float full_punch_interval; /* 0 4 */
int max_drop_level; /* 4 4 */
ToolGCMap groupcaps; /* 8 56 */
/* --- cacheline 1 boundary (64 bytes) --- */
DamageGroup damageGroups; /* 64 56 */
void ToolCapabilities(class ToolCapabilities *, float, int, const ToolGCMap &, const DamageGroup &);
void serialize(const class ToolCapabilities *, ostream &, u16);
void deSerialize(class ToolCapabilities *, istream &);
void ~ToolCapabilities(class ToolCapabilities *, int);
void ToolCapabilities(class ToolCapabilities *, const class ToolCapabilities &);
/* size: 120, cachelines: 2, members: 4 */
/* last cacheline: 56 bytes */
};
struct InventoryLocation {
enum Type {
UNDEFINED = 0,
CURRENT_PLAYER = 1,
PLAYER = 2,
NODEMETA = 3,
DETACHED = 4,
};
enum Type type; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
string name; /* 8 32 */
v3s16 p; /* 40 6 */
void InventoryLocation(class InventoryLocation *);
void setUndefined(class InventoryLocation *);
void setCurrentPlayer(class InventoryLocation *);
void setPlayer(class InventoryLocation *, const string &);
void setNodeMeta(class InventoryLocation *, v3s16);
void setDetached(class InventoryLocation *, const string &);
bool operator==(const class InventoryLocation *, const class InventoryLocation &);
bool operator!=(const class InventoryLocation *, const class InventoryLocation &);
void applyCurrentPlayer(class InventoryLocation *, const string &);
string dump(const class InventoryLocation *);
void serialize(const class InventoryLocation *, ostream &);
void deSerialize(class InventoryLocation *, istream &);
void deSerialize(class InventoryLocation *, string);
/* size: 48, cachelines: 1, members: 3 */
/* sum members: 42, holes: 1, sum holes: 4 */
/* padding: 2 */
/* last cacheline: 48 bytes */
};
class RemotePlayer : public Player {
public:
/* class Player <ancestor>; */ /* 0 328 */
/* --- cacheline 5 boundary (320 bytes) was 8 bytes ago --- */
u16 protocol_version; /* 328 2 */
/* XXX 6 bytes hole, try to pack */
class PlayerSAO * m_sao; /* 336 8 */
bool m_dirty; /* 344 1 */
/* XXX 3 bytes hole, try to pack */
/* Bitfield combined with previous fields */
static bool m_setting_cache_loaded /* 0 0 */
static float m_setting_chat_message_limit_per_10sec /* 0 0 */
static u16 m_setting_chat_message_limit_trigger_kick /* 0 0 */
u32 m_last_chat_message_sent; /* 348 4 */
float m_chat_message_allowance; /* 352 4 */
u16 m_message_rate_overhead; /* 356 2 */
bool m_day_night_ratio_do_override; /* 358 1 */
/* XXX 1 byte hole, try to pack */
float m_day_night_ratio; /* 360 4 */
/* XXX 4 bytes hole, try to pack */
string hud_hotbar_image; /* 368 32 */
/* --- cacheline 6 boundary (384 bytes) was 16 bytes ago --- */
string hud_hotbar_selected_image; /* 400 32 */
string m_sky_type; /* 432 32 */
/* --- cacheline 7 boundary (448 bytes) was 16 bytes ago --- */
class SColor m_sky_bgcolor; /* 464 4 */
/* XXX 4 bytes hole, try to pack */
class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > m_sky_params; /* 472 24 */
void RemotePlayer(class RemotePlayer *, const char *, class IItemDefManager *);
virtual void ~RemotePlayer(class RemotePlayer *, int);
void save(class RemotePlayer *, string, class IGameDef *);
void deSerialize(class RemotePlayer *, istream &, const string &, class PlayerSAO *);
class PlayerSAO * getPlayerSAO(class RemotePlayer *);
void setPlayerSAO(class RemotePlayer *, class PlayerSAO *);
enum RemotePlayerChatResultconst canSendChatMessage(class RemotePlayer *);
void setHotbarItemcount(class RemotePlayer *, s32);
s32 getHotbarItemcount(const class RemotePlayer *);
void overrideDayNightRatio(class RemotePlayer *, bool, float);
void getDayNightRatio(class RemotePlayer *, bool *, float *);
void setHotbarImage(class RemotePlayer *, const string &);
string getHotbarImage(const class RemotePlayer *);
void setHotbarSelectedImage(class RemotePlayer *, const string &);
const string & getHotbarSelectedImage(const class RemotePlayer *);
void setSky(class RemotePlayer *, const class SColor &, const string &, const class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11);
void getSky(class RemotePlayer *, class SColor *, string *, class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basi);
bool checkModified(const class RemotePlayer *);
void setModified(class RemotePlayer *, bool);
void setLocalAnimations(class RemotePlayer *, v2s32 *, float);
void getLocalAnimations(class RemotePlayer *, v2s32 *, float *);
void setDirty(class RemotePlayer *, bool);
void serialize(class RemotePlayer *, ostream &);
void serializeExtraAttributes(class RemotePlayer *, string &);
/* size: 496, cachelines: 8, members: 14, static members: 3 */
/* sum members: 277, holes: 5, sum holes: 18 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 496 != 277 + 18(holes), diff = 201 */
};
class RemoteClient {
public:
u16 peer_id; /* 0 2 */
u8 serialization_version; /* 2 1 */
/* XXX 1 byte hole, try to pack */
u16 net_proto_version; /* 4 2 */
/* XXX 2 bytes hole, try to pack */
string enc_pwd; /* 8 32 */
bool create_player_on_auth_success; /* 40 1 */
/* XXX 3 bytes hole, try to pack */
enum AuthMechanism chosen_mech; /* 44 4 */
void * auth_data; /* 48 8 */
u32 allowed_auth_mechs; /* 56 4 */
u32 allowed_sudo_mechs; /* 60 4 */
/* --- cacheline 1 boundary (64 bytes) --- */
float m_time_from_building; /* 64 4 */
/* XXX 4 bytes hole, try to pack */
class set<short unsigned int, std::less<short unsigned int>, std::allocator<short unsigned int> > m_known_objects; /* 72 48 */
u8 m_pending_serialization_version; /* 120 1 */
/* XXX 3 bytes hole, try to pack */
enum ClientState m_state; /* 124 4 */
/* --- cacheline 2 boundary (128 bytes) --- */
class set<irr::core::vector3d<short int>, std::less<irr::core::vector3d<short int> >, std::allocator<irr::core::vector3d<short int> > > m_blocks_sent; /* 128 48 */
s16 m_nearest_unsent_d; /* 176 2 */
v3s16 m_last_center; /* 178 6 */
float m_nearest_unsent_reset_timer; /* 184 4 */
/* XXX 4 bytes hole, try to pack */
/* --- cacheline 3 boundary (192 bytes) --- */
class map<irr::core::vector3d<short int>, float, std::less<irr::core::vector3d<short int> >, std::allocator<std::pair<const irr::core::vector3d<short int>, float> > > m_blocks_sending; /* 192 48 */
class set<irr::core::vector3d<short int>, std::less<irr::core::vector3d<short int> >, std::allocator<irr::core::vector3d<short int> > > m_blocks_modified; /* 240 48 */
/* --- cacheline 4 boundary (256 bytes) was 32 bytes ago --- */
u32 m_excess_gotblocks; /* 288 4 */
float m_nothing_to_send_pause_timer; /* 292 4 */
string m_name; /* 296 32 */
/* --- cacheline 5 boundary (320 bytes) was 8 bytes ago --- */
u8 m_version_major; /* 328 1 */
u8 m_version_minor; /* 329 1 */
u8 m_version_patch; /* 330 1 */
/* XXX 5 bytes hole, try to pack */
string m_full_version; /* 336 32 */
u16 m_deployed_compression; /* 368 2 */
/* XXX 2 bytes hole, try to pack */
u32const m_connection_time; /* 372 4 */
bool isSudoMechAllowed(class RemoteClient *, enum AuthMechanism);
bool isMechAllowed(class RemoteClient *, enum AuthMechanism);
void RemoteClient(class RemoteClient *);
void ~RemoteClient(class RemoteClient *, int);
void GetNextBlocks(class RemoteClient *, class ServerEnvironment *, class EmergeManager *, float, class vector<PrioritySortedBlockTransfer, std::allocator<PrioritySortedBlockTransfer> > &);
void GotBlock(class RemoteClient *, v3s16);
void SentBlock(class RemoteClient *, v3s16);
void SetBlockNotSent(class RemoteClient *, v3s16);
void SetBlocksNotSent(class RemoteClient *, class map<irr::core::vector3d<short int>, MapBlock*, std::less<irr::core::vector3d<short int> >, std::allocator<std::pair<const);
void ResendBlockIfOnWire(class RemoteClient *, v3s16);
s32 SendingCount(class RemoteClient *);
void PrintInfo(class RemoteClient *, ostream &);
enum ClientState getState(const class RemoteClient *);
string getName(const class RemoteClient *);
void setName(class RemoteClient *, const string &);
void notifyEvent(class RemoteClient *, enum ClientStateEvent);
void setPendingSerializationVersion(class RemoteClient *, u8);
void setDeployedCompressionMode(class RemoteClient *, u16);
void confirmSerializationVersion(class RemoteClient *);
u32 uptime(class RemoteClient *);
void setVersionInfo(class RemoteClient *, u8, u8, u8, const string &);
u8 getMajor(const class RemoteClient *);
u8 getMinor(const class RemoteClient *);
u8 getPatch(const class RemoteClient *);
string getVersion(const class RemoteClient *);
/* size: 376, cachelines: 6, members: 28 */
/* sum members: 352, holes: 8, sum holes: 24 */
/* last cacheline: 56 bytes */
};
class EmergeManager {
public:
class INodeDefManager * ndef; /* 0 8 */
bool enable_mapgen_debug_info; /* 8 1 */
/* XXX 3 bytes hole, try to pack */
u32 gen_notify_on; /* 12 4 */
class set<unsigned int, std::less<unsigned int>, std::allocator<unsigned int> > gen_notify_on_deco_ids; /* 16 48 */
/* --- cacheline 1 boundary (64 bytes) --- */
class MapgenParams * mgparams; /* 64 8 */
class MapSettingsManager * map_settings_mgr; /* 72 8 */
class BiomeManager * biomemgr; /* 80 8 */
class OreManager * oremgr; /* 88 8 */
class DecorationManager * decomgr; /* 96 8 */
class SchematicManager * schemmgr; /* 104 8 */
class vector<Mapgen*, std::allocator<Mapgen*> > m_mapgens; /* 112 24 */
/* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */
class vector<EmergeThread*, std::allocator<EmergeThread*> > m_threads; /* 136 24 */
bool m_threads_active; /* 160 1 */
/* XXX 7 bytes hole, try to pack */
Mutex m_queue_mutex; /* 168 40 */
/* --- cacheline 3 boundary (192 bytes) was 16 bytes ago --- */
class map<irr::core::vector3d<short int>, BlockEmergeData, std::less<irr::core::vector3d<short int> >, std::allocator<std::pair<const irr::core::vector3d<short int>, BlockEmergeData> > > m_blocks_enqueued; /* 208 48 */
/* --- cacheline 4 boundary (256 bytes) --- */
class unordered_map<short unsigned int, short unsigned int, std::hash<short unsigned int>, std::equal_to<short unsigned int>, std::allocator<std::pair<short unsigned int const, short unsigned int> > > m_peer_queue_count; /* 256 56 */
u16 m_qlimit_total; /* 312 2 */
u16 m_qlimit_diskonly; /* 314 2 */
u16 m_qlimit_generate; /* 316 2 */
void EmergeManager(class EmergeManager *, class Server *);
void ~EmergeManager(class EmergeManager *, int);
bool initMapgens(class EmergeManager *, class MapgenParams *);
void startThreads(class EmergeManager *);
void stopThreads(class EmergeManager *);
bool isRunning(class EmergeManager *);
bool enqueueBlockEmerge(class EmergeManager *, u16, v3s16, bool, bool);
bool enqueueBlockEmergeEx(class EmergeManager *, v3s16, u16, u16, EmergeCompletionCallback, void *);
v3s16 getContainingChunk(class EmergeManager *, v3s16);
class Mapgen * getCurrentMapgen(class EmergeManager *);
class Biome * getBiomeAtPoint(class EmergeManager *, v3s16);
int getSpawnLevelAtPoint(class EmergeManager *, v2s16);
int getGroundLevelAtPoint(class EmergeManager *, v2s16);
bool isBlockUnderground(class EmergeManager *, v3s16);
v3s16 getContainingChunk(v3s16, s16);
class EmergeThread * getOptimalThread(class EmergeManager *);
bool pushBlockEmergeData(class EmergeManager *, v3s16, u16, u16, EmergeCompletionCallback, void *, bool *);
bool popBlockEmergeData(class EmergeManager *, v3s16, class BlockEmergeData *);
void EmergeManager(class EmergeManager *, const class EmergeManager &);
class EmergeManager & operator=(class EmergeManager *, const class EmergeManager &);
/* size: 320, cachelines: 5, members: 19 */
/* sum members: 308, holes: 2, sum holes: 10 */
/* padding: 2 */
};
struct PlayerControl {
bool up; /* 0 1 */
bool down; /* 1 1 */
bool left; /* 2 1 */
bool right; /* 3 1 */
bool jump; /* 4 1 */
bool aux1; /* 5 1 */
bool sneak; /* 6 1 */
bool zoom; /* 7 1 */
bool LMB; /* 8 1 */
bool RMB; /* 9 1 */
/* XXX 2 bytes hole, try to pack */
float pitch; /* 12 4 */
float yaw; /* 16 4 */
float sidew_move_joystick_axis; /* 20 4 */
float forw_move_joystick_axis; /* 24 4 */
void PlayerControl(class PlayerControl *);
void PlayerControl(class PlayerControl *, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, float, float, float, float);
/* size: 28, cachelines: 1, members: 14 */
/* sum members: 26, holes: 1, sum holes: 2 */
/* last cacheline: 28 bytes */
};
struct ServerSoundParams {
enum Type {
SSP_LOCAL = 0,
SSP_POSITIONAL = 1,
SSP_OBJECT = 2,
};
float gain; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
string to_player; /* 8 32 */
enum Type type; /* 40 4 */
v3f pos; /* 44 12 */
u16 object; /* 56 2 */
/* XXX 2 bytes hole, try to pack */
float max_hear_distance; /* 60 4 */
/* --- cacheline 1 boundary (64 bytes) --- */
bool loop; /* 64 1 */
void ServerSoundParams(class ServerSoundParams *);
v3f getPos(const class ServerSoundParams *, class ServerEnvironment *, bool *);
void ~ServerSoundParams(class ServerSoundParams *, int);
/* size: 72, cachelines: 2, members: 7 */
/* sum members: 59, holes: 2, sum holes: 6 */
/* padding: 7 */
/* last cacheline: 8 bytes */
};
struct ServerPlayingSound {
struct ServerSoundParams params; /* 0 72 */
/* XXX last struct has 7 bytes of padding */
/* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
class unordered_set<short unsigned int, std::hash<short unsigned int>, std::equal_to<short unsigned int>, std::allocator<short unsigned int> > clients; /* 72 56 */
void ~ServerPlayingSound(class ServerPlayingSound *, int);
/* size: 128, cachelines: 2, members: 2 */
/* paddings: 1, sum paddings: 7 */
};
class LagPool {
float m_pool; /* 0 4 */
float m_max; /* 4 4 */
public:
void LagPool(class LagPool *);
void setMax(class LagPool *, float);
void add(class LagPool *, float);
void empty(class LagPool *);
bool grab(class LagPool *, float);
/* size: 8, cachelines: 1, members: 2 */
/* last cacheline: 8 bytes */
};
struct BlockEmergeData {
u16 peer_requested; /* 0 2 */
u16 flags; /* 2 2 */
/* XXX 4 bytes hole, try to pack */
EmergeCallbackList callbacks; /* 8 24 */
/* size: 32, cachelines: 1, members: 3 */
/* sum members: 28, holes: 1, sum holes: 4 */
/* last cacheline: 32 bytes */
};
struct RollbackNode {
string name; /* 0 32 */
int param1; /* 32 4 */
int param2; /* 36 4 */
string meta; /* 40 32 */
bool operator==(class RollbackNode *, const class RollbackNode &);
bool operator!=(class RollbackNode *, const class RollbackNode &);
void RollbackNode(class RollbackNode *);
void RollbackNode(class RollbackNode *, class Map *, v3s16, class IGameDef *);
class RollbackNode & operator=(class RollbackNode *, const class RollbackNode &);
void ~RollbackNode(class RollbackNode *, int);
/* size: 72, cachelines: 2, members: 4 */
/* last cacheline: 8 bytes */
};
struct RollbackAction {
enum Type {
TYPE_NOTHING = 0,
TYPE_SET_NODE = 1,
TYPE_MODIFY_INVENTORY_STACK = 2,
};
enum Type type; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
time_t unix_time; /* 8 8 */
string actor; /* 16 32 */
bool actor_is_guess; /* 48 1 */
/* XXX 1 byte hole, try to pack */
v3s16 p; /* 50 6 */
struct RollbackNode n_old; /* 56 72 */
/* --- cacheline 2 boundary (128 bytes) --- */
struct RollbackNode n_new; /* 128 72 */
/* --- cacheline 3 boundary (192 bytes) was 8 bytes ago --- */
string inventory_location; /* 200 32 */
string inventory_list; /* 232 32 */
/* --- cacheline 4 boundary (256 bytes) was 8 bytes ago --- */
u32 inventory_index; /* 264 4 */
bool inventory_add; /* 268 1 */
/* XXX 3 bytes hole, try to pack */
struct ItemStack inventory_stack; /* 272 104 */
void RollbackAction(class RollbackAction *);
void setSetNode(class RollbackAction *, v3s16, const class RollbackNode &, const class RollbackNode &);
void setModifyInventoryStack(class RollbackAction *, const string &, const string &, int, bool, const class ItemStack &);
string toString(const class RollbackAction *);
bool isImportant(const class RollbackAction *, class IGameDef *);
bool getPosition(const class RollbackAction *, v3s16 *);
bool applyRevert(const class RollbackAction *, class Map *, class InventoryManager *, class IGameDef *);
void ~RollbackAction(class RollbackAction *, int);
/* size: 376, cachelines: 6, members: 12 */
/* sum members: 368, holes: 3, sum holes: 8 */
/* last cacheline: 56 bytes */
};
class InventoryManager {
public:
int ()(void) * * _vptr.InventoryManager; /* 0 8 */
class InventoryManager & operator=(class InventoryManager *, const class InventoryManager &);
void InventoryManager(class InventoryManager *);
virtual void ~InventoryManager(class InventoryManager *, int);
virtual class Inventory * getInventory(class InventoryManager *, const class InventoryLocation &);
virtual void setInventoryModified(class InventoryManager *, const class InventoryLocation &, bool);
virtual void inventoryAction(class InventoryManager *, class InventoryAction *);
/* vtable has 3 entries: {
[2] = getInventory((null)),
[3] = setInventoryModified((null)),
[4] = inventoryAction((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
};
class RollbackScopeActor {
class IRollbackManager * rollback; /* 0 8 */
string old_actor; /* 8 32 */
bool old_actor_guess; /* 40 1 */
public:
void RollbackScopeActor(class RollbackScopeActor *, class IRollbackManager *, const string &, bool);
void ~RollbackScopeActor(class RollbackScopeActor *, int);
/* size: 48, cachelines: 1, members: 3 */
/* padding: 7 */
/* last cacheline: 48 bytes */
};
class IRollbackManager {
public:
int ()(void) * * _vptr.IRollbackManager; /* 0 8 */
virtual void reportAction(class IRollbackManager *, const class RollbackAction &);
virtual string getActor(class IRollbackManager *);
virtual bool isActorGuess(class IRollbackManager *);
virtual void setActor(class IRollbackManager *, const string &, bool);
virtual string getSuspect(class IRollbackManager *, v3s16, float, float);
virtual void ~IRollbackManager(class IRollbackManager *, int);
virtual void flush(class IRollbackManager *);
virtual class list<RollbackAction, std::allocator<RollbackAction> > getNodeActors(class IRollbackManager *, v3s16, int, time_t, int);
virtual class list<RollbackAction, std::allocator<RollbackAction> > getRevertActions(class IRollbackManager *, const string &, time_t);
/* vtable has 8 entries: {
[0] = reportAction((null)),
[1] = getActor((null)),
[2] = isActorGuess((null)),
[3] = setActor((null)),
[4] = getSuspect((null)),
[7] = flush((null)),
[8] = getNodeActors((null)),
[9] = getRevertActions((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
};
struct ToolGroupCap {
class unordered_map<int, float, std::hash<int>, std::equal_to<int>, std::allocator<std::pair<int const, float> > > times; /* 0 56 */
int maxlevel; /* 56 4 */
int uses; /* 60 4 */
void ToolGroupCap(class ToolGroupCap *);
bool getTime(const class ToolGroupCap *, int, float *);
void ~ToolGroupCap(class ToolGroupCap *, int);
void ToolGroupCap(class ToolGroupCap *, const class ToolGroupCap &);
/* size: 64, cachelines: 1, members: 3 */
};
struct DigParams {
bool diggable; /* 0 1 */
/* XXX 3 bytes hole, try to pack */
float time; /* 4 4 */
u16 wear; /* 8 2 */
/* XXX 6 bytes hole, try to pack */
string main_group; /* 16 32 */
void DigParams(class DigParams *, bool, float, u16, const string &);
class DigParams & operator=(class DigParams *, );
void ~DigParams(class DigParams *, int);
/* size: 48, cachelines: 1, members: 4 */
/* sum members: 39, holes: 2, sum holes: 9 */
/* last cacheline: 48 bytes */
};
struct PointedThing {
enum PointedThingType type; /* 0 4 */
v3s16 node_undersurface; /* 4 6 */
v3s16 node_abovesurface; /* 10 6 */
v3s16 node_real_undersurface; /* 16 6 */
/* XXX 2 bytes hole, try to pack */
v3f intersection_point; /* 24 12 */
v3s16 intersection_normal; /* 36 6 */
s16 object_id; /* 42 2 */
void PointedThing(class PointedThing *);
string dump(const class PointedThing *);
void serialize(const class PointedThing *, ostream &);
void deSerialize(class PointedThing *, istream &);
bool operator==(const class PointedThing *, const class PointedThing &);
bool operator!=(const class PointedThing *, const class PointedThing &);
void PointedThing(class PointedThing *, const class PointedThing &);
/* size: 44, cachelines: 1, members: 7 */
/* sum members: 42, holes: 1, sum holes: 2 */
/* last cacheline: 44 bytes */
};
class Player {
public:
int ()(void) * * _vptr.Player; /* 0 8 */
v3f eye_offset_first; /* 8 12 */
v3f eye_offset_third; /* 20 12 */
class Inventory inventory; /* 32 40 */
/* XXX last struct has 7 bytes of padding */
/* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
f32 movement_acceleration_default; /* 72 4 */
f32 movement_acceleration_air; /* 76 4 */
f32 movement_acceleration_fast; /* 80 4 */
f32 movement_speed_walk; /* 84 4 */
f32 movement_speed_crouch; /* 88 4 */
f32 movement_speed_fast; /* 92 4 */
f32 movement_speed_climb; /* 96 4 */
f32 movement_speed_jump; /* 100 4 */
f32 movement_liquid_fluidity; /* 104 4 */
f32 movement_liquid_fluidity_smooth; /* 108 4 */
f32 movement_liquid_sink; /* 112 4 */
f32 movement_gravity; /* 116 4 */
v2s32 local_animations[4]; /* 120 32 */
/* --- cacheline 2 boundary (128 bytes) was 24 bytes ago --- */
float local_animation_speed; /* 152 4 */
u16 peer_id; /* 156 2 */
/* XXX 2 bytes hole, try to pack */
string inventory_formspec; /* 160 32 */
/* --- cacheline 3 boundary (192 bytes) --- */
struct PlayerControl control; /* 192 28 */
u32 keyPressed; /* 220 4 */
u32 hud_flags; /* 224 4 */
s32 hud_hotbar_itemcount; /* 228 4 */
protected:
char m_name[20]; /* 232 20 */
v3f m_speed; /* 252 12 */
/* --- cacheline 4 boundary (256 bytes) was 8 bytes ago --- */
class vector<HudElement*, std::allocator<HudElement*> > hud; /* 264 24 */
Mutex m_mutex; /* 288 40 */
public:
void Player(class Player *, const char *, class IItemDefManager *);
virtual void ~Player(class Player *, int);
virtual void move(class Player *, f32, class Environment *, f32);
virtual void move(class Player *, f32, class Environment *, f32, class vector<CollisionInfo, std::allocator<CollisionInfo> > *);
v3f getSpeed(class Player *);
void setSpeed(class Player *, v3f);
const char * getName(const class Player *);
u32 getFreeHudID(class Player *);
const class PlayerControl & getPlayerControl(class Player *);
class HudElement * getHud(class Player *, u32);
u32 addHud(class Player *, class HudElement *);
class HudElement * removeHud(class Player *, u32);
void clearHud(class Player *);
/* vtable has 2 entries: {
[2] = move((null)),
[3] = move((null)),
} */
/* size: 328, cachelines: 6, members: 28 */
/* sum members: 326, holes: 1, sum holes: 2 */
/* paddings: 1, sum paddings: 7 */
/* last cacheline: 8 bytes */
};
struct InventoryAction {
int ()(void) * * _vptr.InventoryAction; /* 0 8 */
void InventoryAction(class InventoryAction *, const class InventoryAction &);
void InventoryAction(class InventoryAction *);
class InventoryAction * deSerialize(istream &);
virtual u16 getType(const class InventoryAction *);
virtual void serialize(const class InventoryAction *, ostream &);
virtual void apply(class InventoryAction *, class InventoryManager *, class ServerActiveObject *, class IGameDef *);
virtual void clientApply(class InventoryAction *, class InventoryManager *, class IGameDef *);
virtual void ~InventoryAction(class InventoryAction *, int);
/* vtable has 4 entries: {
[0] = getType((null)),
[1] = serialize((null)),
[2] = apply((null)),
[3] = clientApply((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
};
class StackUnroller {
lua_State * m_lua; /* 0 8 */
int m_original_top; /* 8 4 */
public:
void StackUnroller(class StackUnroller *, lua_State *);
void ~StackUnroller(class StackUnroller *, int);
/* size: 16, cachelines: 1, members: 2 */
/* padding: 4 */
/* last cacheline: 16 bytes */
};
class LockChecker {
int * m_lock_recursion_counter; /* 0 8 */
int m_original_level; /* 8 4 */
/* XXX 4 bytes hole, try to pack */
threadid_t * m_owning_thread; /* 16 8 */
public:
void LockChecker(class LockChecker *, int *, threadid_t *);
void ~LockChecker(class LockChecker *, int);
/* size: 24, cachelines: 1, members: 3 */
/* sum members: 20, holes: 1, sum holes: 4 */
/* last cacheline: 24 bytes */
};
class ClientScripting : virtual public ScriptApiBase, public ScriptApiSecurity, public ScriptApiClient {
public:
/* --- cacheline 67108863 boundary (4294967232 bytes) was 63 bytes ago --- */
/* class ScriptApiBase <ancestor>; */ /* 4294967295 0 */
/* class ScriptApiSecurity <ancestor>; */ /* 0 136 */
/* XXX last struct has 128 bytes of padding */
/* class ScriptApiClient <ancestor>; */ /* 8 136 */
/* XXX last struct has 128 bytes of padding */
void ClientScripting(class ClientScripting *, int, const void * *, );
void ClientScripting(class ClientScripting *, int, const void * *, const class ClientScripting &);
void ClientScripting(class ClientScripting *, int, const void * *, class Client *);
void on_client_ready(class ClientScripting *, class LocalPlayer *);
virtual void InitializeModApi(class ClientScripting *, lua_State *, int);
virtual void ~ClientScripting(class ClientScripting *, int, const void * *);
/* vtable has 1 entries: {
[2] = InitializeModApi((null)),
} */
/* size: 144, cachelines: 3, members: 3 */
/* paddings: 2, sum paddings: 256 */
/* last cacheline: 16 bytes */
/* BRAIN FART ALERT! 144 != 0 + 0(holes), diff = 144 */
};
class ScriptApiSecurity : virtual public ScriptApiBase {
public:
/* --- cacheline 67108863 boundary (4294967232 bytes) was 63 bytes ago --- */
/* class ScriptApiBase <ancestor>; */ /* 4294967295 0 */
int ()(void) * * _vptr.ScriptApiSecurity; /* 0 8 */
void ScriptApiSecurity(class ScriptApiSecurity *, int, const void * *, );
void ScriptApiSecurity(class ScriptApiSecurity *, int, const void * *, const class ScriptApiSecurity &);
void ScriptApiSecurity(class ScriptApiSecurity *, int, const void * *);
int backupGlobals(class ScriptApiSecurity *, lua_State *);
void initializeSecurity(class ScriptApiSecurity *);
void initializeSecurityClient(class ScriptApiSecurity *);
bool isSecure(lua_State *);
bool safeLoadFile(lua_State *, const char *);
bool checkPath(lua_State *, const char *, bool, bool *);
int sl_g_dofile(lua_State *);
int sl_g_load(lua_State *);
int sl_g_loadfile(lua_State *);
int sl_g_loadstring(lua_State *);
int sl_g_require(lua_State *);
int sl_io_open(lua_State *);
int sl_io_input(lua_State *);
int sl_io_output(lua_State *);
int sl_io_lines(lua_State *);
int sl_os_rename(lua_State *);
int sl_os_remove(lua_State *);
virtual void ~ScriptApiSecurity(class ScriptApiSecurity *, int, const void * *);
/* size: 136, cachelines: 3, members: 2 */
/* padding: 128 */
/* last cacheline: 8 bytes */
};
class ScriptApiClient : virtual public ScriptApiBase {
public:
/* --- cacheline 67108863 boundary (4294967232 bytes) was 63 bytes ago --- */
/* class ScriptApiBase <ancestor>; */ /* 4294967295 0 */
int ()(void) * * _vptr.ScriptApiClient; /* 0 8 */
void ScriptApiClient(class ScriptApiClient *, int, const void * *, );
void ScriptApiClient(class ScriptApiClient *, int, const void * *, const class ScriptApiClient &);
void ScriptApiClient(class ScriptApiClient *, int, const void * *);
void on_shutdown(class ScriptApiClient *);
void on_connect(class ScriptApiClient *);
bool on_sending_message(class ScriptApiClient *, const string &);
bool on_receiving_message(class ScriptApiClient *, const string &);
void on_damage_taken(class ScriptApiClient *, int32_t);
void on_hp_modification(class ScriptApiClient *, int32_t);
void on_death(class ScriptApiClient *);
void environment_step(class ScriptApiClient *, float);
void on_formspec_input(class ScriptApiClient *, const string &, const StringMap &);
bool on_dignode(class ScriptApiClient *, v3s16, class MapNode);
bool on_punchnode(class ScriptApiClient *, v3s16, class MapNode);
void setEnv(class ScriptApiClient *, class ClientEnvironment *);
virtual void ~ScriptApiClient(class ScriptApiClient *, int, const void * *);
/* size: 136, cachelines: 3, members: 2 */
/* padding: 128 */
/* last cacheline: 8 bytes */
};
struct ObjectProperties {
s16 hp_max; /* 0 2 */
bool physical; /* 2 1 */
bool collideWithObjects; /* 3 1 */
float weight; /* 4 4 */
aabb3f collisionbox; /* 8 24 */
string visual; /* 32 32 */
/* --- cacheline 1 boundary (64 bytes) --- */
string mesh; /* 64 32 */
v2f visual_size; /* 96 8 */
class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > textures; /* 104 24 */
/* --- cacheline 2 boundary (128 bytes) --- */
class vector<irr::video::SColor, std::allocator<irr::video::SColor> > colors; /* 128 24 */
v2s16 spritediv; /* 152 4 */
v2s16 initial_sprite_basepos; /* 156 4 */
bool is_visible; /* 160 1 */
bool makes_footstep_sound; /* 161 1 */
/* XXX 2 bytes hole, try to pack */
float automatic_rotate; /* 164 4 */
f32 stepheight; /* 168 4 */
bool automatic_face_movement_dir; /* 172 1 */
/* XXX 3 bytes hole, try to pack */
f32 automatic_face_movement_dir_offset; /* 176 4 */
bool backface_culling; /* 180 1 */
/* XXX 3 bytes hole, try to pack */
string nametag; /* 184 32 */
/* --- cacheline 3 boundary (192 bytes) was 24 bytes ago --- */
class SColor nametag_color; /* 216 4 */
f32 automatic_face_movement_max_rotation_per_sec; /* 220 4 */
string infotext; /* 224 32 */
/* --- cacheline 4 boundary (256 bytes) --- */
string wield_item; /* 256 32 */
void ObjectProperties(class ObjectProperties *);
string dump(class ObjectProperties *);
void serialize(const class ObjectProperties *, ostream &);
void deSerialize(class ObjectProperties *, istream &);
/* size: 288, cachelines: 5, members: 24 */
/* sum members: 280, holes: 3, sum holes: 8 */
/* last cacheline: 32 bytes */
};
struct luaL_Reg {
const char * name; /* 0 8 */
lua_CFunction func; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
};
class ModApiBase {
public:
class ScriptApiBase * getScriptApiBase(lua_State *);
class Server * getServer(lua_State *);
class Client * getClient(lua_State *);
class IGameDef * getGameDef(lua_State *);
class Environment * getEnv(lua_State *);
class GUIEngine * getGuiEngine(lua_State *);
string getCurrentModPath(lua_State *);
bool registerFunction(lua_State *, const char *, lua_CFunction, int);
/* size: 1, cachelines: 0, members: 0 */
/* last cacheline: 1 bytes */
};
class ObjectRef : public ModApiBase {
public:
/* class ModApiBase <ancestor>; */ /* 0 0 */
class ServerActiveObject * m_object; /* 0 8 */
static charconst className[0] /* 0 0 */
static luaL_Regconst methods[0] /* 0 0 */
class ObjectRef * checkobject(lua_State *, int);
class ServerActiveObject * getobject(class ObjectRef *);
class LuaEntitySAO * getluaobject(class ObjectRef *);
class PlayerSAO * getplayersao(class ObjectRef *);
class RemotePlayer * getplayer(class ObjectRef *);
int gc_object(lua_State *);
int l_remove(lua_State *);
int l_get_pos(lua_State *);
int l_set_pos(lua_State *);
int l_move_to(lua_State *);
int l_punch(lua_State *);
int l_right_click(lua_State *);
int l_set_hp(lua_State *);
int l_get_hp(lua_State *);
int l_get_inventory(lua_State *);
int l_get_wield_list(lua_State *);
int l_get_wield_index(lua_State *);
int l_get_wielded_item(lua_State *);
int l_set_wielded_item(lua_State *);
int l_set_armor_groups(lua_State *);
int l_get_armor_groups(lua_State *);
int l_set_physics_override(lua_State *);
int l_get_physics_override(lua_State *);
int l_set_animation(lua_State *);
int l_get_animation(lua_State *);
int l_set_bone_position(lua_State *);
int l_get_bone_position(lua_State *);
int l_set_attach(lua_State *);
int l_get_attach(lua_State *);
int l_set_detach(lua_State *);
int l_set_properties(lua_State *);
int l_get_properties(lua_State *);
int l_is_player(lua_State *);
int l_set_velocity(lua_State *);
int l_get_velocity(lua_State *);
int l_set_acceleration(lua_State *);
int l_get_acceleration(lua_State *);
int l_set_yaw(lua_State *);
int l_get_yaw(lua_State *);
int l_set_texture_mod(lua_State *);
int l_get_texture_mod(lua_State *);
int l_set_sprite(lua_State *);
int l_get_entity_name(lua_State *);
int l_get_luaentity(lua_State *);
int l_is_player_connected(lua_State *);
int l_get_player_name(lua_State *);
int l_get_player_velocity(lua_State *);
int l_get_look_dir(lua_State *);
int l_get_look_pitch(lua_State *);
int l_get_look_yaw(lua_State *);
int l_get_look_vertical(lua_State *);
int l_get_look_horizontal(lua_State *);
int l_set_look_vertical(lua_State *);
int l_set_look_horizontal(lua_State *);
int l_set_look_pitch(lua_State *);
int l_set_look_yaw(lua_State *);
int l_set_breath(lua_State *);
int l_get_breath(lua_State *);
int l_set_attribute(lua_State *);
int l_get_attribute(lua_State *);
int l_set_inventory_formspec(lua_State *);
int l_get_inventory_formspec(lua_State *);
int l_get_player_control(lua_State *);
int l_get_player_control_bits(lua_State *);
int l_hud_add(lua_State *);
int l_hud_remove(lua_State *);
int l_hud_change(lua_State *);
u32 hud_get_next_id(lua_State *);
int l_hud_get(lua_State *);
int l_hud_set_flags(lua_State *);
int l_hud_get_flags(lua_State *);
int l_hud_set_hotbar_itemcount(lua_State *);
int l_hud_get_hotbar_itemcount(lua_State *);
int l_hud_set_hotbar_image(lua_State *);
int l_hud_get_hotbar_image(lua_State *);
int l_hud_set_hotbar_selected_image(lua_State *);
int l_hud_get_hotbar_selected_image(lua_State *);
int l_set_sky(lua_State *);
int l_get_sky(lua_State *);
int l_override_day_night_ratio(lua_State *);
int l_get_day_night_ratio(lua_State *);
int l_set_local_animation(lua_State *);
int l_get_local_animation(lua_State *);
int l_set_eye_offset(lua_State *);
int l_get_eye_offset(lua_State *);
int l_set_nametag_attributes(lua_State *);
int l_get_nametag_attributes(lua_State *);
void ObjectRef(class ObjectRef *, class ServerActiveObject *);
void ~ObjectRef(class ObjectRef *, int);
void create(lua_State *, class ServerActiveObject *);
void set_null(lua_State *);
void Register(lua_State *);
/* size: 8, cachelines: 1, members: 2, static members: 2 */
/* last cacheline: 8 bytes */
};
class LuaItemStack : public ModApiBase {
public:
/* class ModApiBase <ancestor>; */ /* 0 0 */
struct ItemStack m_stack; /* 0 104 */
static charconst className[0] /* 0 0 */
static luaL_Regconst methods[0] /* 0 0 */
int gc_object(lua_State *);
int l_is_empty(lua_State *);
int l_get_name(lua_State *);
int l_set_name(lua_State *);
int l_get_count(lua_State *);
int l_set_count(lua_State *);
int l_get_wear(lua_State *);
int l_set_wear(lua_State *);
int l_get_meta(lua_State *);
int l_get_metadata(lua_State *);
int l_set_metadata(lua_State *);
int l_clear(lua_State *);
int l_replace(lua_State *);
int l_to_string(lua_State *);
int l_to_table(lua_State *);
int l_get_stack_max(lua_State *);
int l_get_free_space(lua_State *);
int l_is_known(lua_State *);
int l_get_definition(lua_State *);
int l_get_tool_capabilities(lua_State *);
int l_add_wear(lua_State *);
int l_add_item(lua_State *);
int l_item_fits(lua_State *);
int l_take_item(lua_State *);
int l_peek_item(lua_State *);
void LuaItemStack(class LuaItemStack *, const class ItemStack &);
void ~LuaItemStack(class LuaItemStack *, int);
const class ItemStack & getItem(const class LuaItemStack *);
class ItemStack & getItem(class LuaItemStack *);
int create_object(lua_State *);
int create(lua_State *, const class ItemStack &);
class LuaItemStack * checkobject(lua_State *, int);
void Register(lua_State *);
/* size: 104, cachelines: 2, members: 2, static members: 2 */
/* last cacheline: 40 bytes */
};
struct HitParams {
s16 hp; /* 0 2 */
s16 wear; /* 2 2 */
void HitParams(class HitParams *, s16, s16);
/* size: 4, cachelines: 1, members: 2 */
/* last cacheline: 4 bytes */
};
class ActiveObject {
public:
int ()(void) * * _vptr.ActiveObject; /* 0 8 */
protected:
u16 m_id; /* 8 2 */
public:
void ActiveObject(class ActiveObject *, u16);
u16 getId(class ActiveObject *);
void setId(class ActiveObject *, u16);
virtual enum ActiveObjectType getType(const class ActiveObject *);
virtual bool getCollisionBox(const class ActiveObject *, aabb3f *);
virtual bool collideWithObjects(const class ActiveObject *);
/* vtable has 3 entries: {
[0] = getType((null)),
[1] = getCollisionBox((null)),
[2] = collideWithObjects((null)),
} */
/* size: 16, cachelines: 1, members: 2 */
/* padding: 6 */
/* last cacheline: 16 bytes */
};
class LuaError : public ModError {
public:
/* class ModError <ancestor>; */ /* 0 40 */
void LuaError(class LuaError *, );
void LuaError(class LuaError *, const class LuaError &);
void LuaError(class LuaError *, const string &);
virtual void ~LuaError(class LuaError *, int);
/* size: 40, cachelines: 1, members: 1 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 40 != 0 + 0(holes), diff = 40 */
};
class ModError : public BaseException {
public:
/* class BaseException <ancestor>; */ /* 0 40 */
void ModError(class ModError *, );
void ModError(class ModError *, const class ModError &);
void ModError(class ModError *, const string &);
virtual void ~ModError(class ModError *, int);
/* size: 40, cachelines: 1, members: 1 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 40 != 0 + 0(holes), diff = 40 */
};
struct LuaJobInfo {
string serializedFunction; /* 0 32 */
string serializedParams; /* 32 32 */
/* --- cacheline 1 boundary (64 bytes) --- */
string serializedResult; /* 64 32 */
unsigned int id; /* 96 4 */
bool valid; /* 100 1 */
void LuaJobInfo(class LuaJobInfo *);
void LuaJobInfo(class LuaJobInfo *, const class LuaJobInfo &);
class LuaJobInfo & operator=(class LuaJobInfo *, const class LuaJobInfo &);
void ~LuaJobInfo(class LuaJobInfo *, int);
/* size: 104, cachelines: 2, members: 5 */
/* padding: 3 */
/* last cacheline: 40 bytes */
};
class AsyncWorkerThread : public Thread, public ScriptApiBase {
public:
/* class Thread <ancestor>; */ /* 0 0 */
/* XXX 144 bytes hole, try to pack */
/* --- cacheline 2 boundary (128 bytes) was 16 bytes ago --- */
/* class ScriptApiBase <ancestor>; */ /* 144 0 */
/* XXX 128 bytes hole, try to pack */
/* --- cacheline 4 boundary (256 bytes) was 16 bytes ago --- */
class AsyncEngine * jobDispatcher; /* 272 8 */
void AsyncWorkerThread(class AsyncWorkerThread *, const class AsyncWorkerThread &);
void AsyncWorkerThread(class AsyncWorkerThread *, class AsyncEngine *, const string &);
virtual void ~AsyncWorkerThread(class AsyncWorkerThread *, int);
virtual void * run(class AsyncWorkerThread *);
/* vtable has 1 entries: {
[2] = run((null)),
} */
/* size: 280, cachelines: 5, members: 3 */
/* sum members: 8, holes: 2, sum holes: 272 */
/* last cacheline: 24 bytes */
};
class AsyncEngine {
bool initDone; /* 0 1 */
/* XXX 7 bytes hole, try to pack */
class unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int (*)(lua_State*), std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int (*)(lua_State*)> > > functionList; /* 8 56 */
/* --- cacheline 1 boundary (64 bytes) --- */
unsigned int jobIdCounter; /* 64 4 */
/* XXX 4 bytes hole, try to pack */
Mutex jobQueueMutex; /* 72 40 */
class deque<LuaJobInfo, std::allocator<LuaJobInfo> > jobQueue; /* 112 80 */
/* --- cacheline 3 boundary (192 bytes) --- */
Mutex resultQueueMutex; /* 192 40 */
class deque<LuaJobInfo, std::allocator<LuaJobInfo> > resultQueue; /* 232 80 */
/* --- cacheline 4 boundary (256 bytes) was 56 bytes ago --- */
class vector<AsyncWorkerThread*, std::allocator<AsyncWorkerThread*> > workerThreads; /* 312 24 */
/* --- cacheline 5 boundary (320 bytes) was 16 bytes ago --- */
class Semaphore jobQueueCounter; /* 336 32 */
public:
void AsyncEngine(class AsyncEngine *);
void ~AsyncEngine(class AsyncEngine *, int);
bool registerFunction(class AsyncEngine *, const char *, lua_CFunction);
void initialize(class AsyncEngine *, unsigned int);
unsigned int queueAsyncJob(class AsyncEngine *, const string &, const string &);
void step(class AsyncEngine *, lua_State *);
void pushFinishedJobs(class AsyncEngine *, lua_State *);
protected:
class LuaJobInfo getJob(class AsyncEngine *);
void putJobResult(class AsyncEngine *, const class LuaJobInfo &);
void prepareEnvironment(class AsyncEngine *, lua_State *, int);
/* size: 368, cachelines: 6, members: 9 */
/* sum members: 357, holes: 2, sum holes: 11 */
/* last cacheline: 48 bytes */
};
class ScriptApiBase {
public:
int ()(void) * * _vptr.ScriptApiBase; /* 0 8 */
protected:
RecursiveMutex m_luastackmutex; /* 8 40 */
string m_last_run_mod; /* 48 32 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
bool m_secure; /* 80 1 */
/* XXX 3 bytes hole, try to pack */
int m_lock_recursion_count; /* 84 4 */
threadid_t m_owning_thread; /* 88 8 */
lua_State * m_luastack; /* 96 8 */
class IGameDef * m_gamedef; /* 104 8 */
class Environment * m_environment; /* 112 8 */
class GUIEngine * m_guiengine; /* 120 8 */
public:
void ScriptApiBase(class ScriptApiBase *, const class ScriptApiBase &);
void ScriptApiBase(class ScriptApiBase *);
virtual void ~ScriptApiBase(class ScriptApiBase *, int);
void loadMod(class ScriptApiBase *, const string &, const string &);
void loadScript(class ScriptApiBase *, const string &);
void runCallbacksRaw(class ScriptApiBase *, int, enum RunCallbacksMode, const char *);
void addObjectReference(class ScriptApiBase *, class ServerActiveObject *);
void removeObjectReference(class ScriptApiBase *, class ServerActiveObject *);
class IGameDef * getGameDef(class ScriptApiBase *);
class Server * getServer(class ScriptApiBase *);
class Client * getClient(class ScriptApiBase *);
string getOrigin(class ScriptApiBase *);
void setOriginDirect(class ScriptApiBase *, const char *);
void setOriginFromTableRaw(class ScriptApiBase *, int, const char *);
protected:
lua_State * getStack(class ScriptApiBase *);
void realityCheck(class ScriptApiBase *);
void scriptError(class ScriptApiBase *, int, const char *);
void stackDump(class ScriptApiBase *, ostream &);
void setGameDef(class ScriptApiBase *, class IGameDef *);
class Environment * getEnv(class ScriptApiBase *);
void setEnv(class ScriptApiBase *, class Environment *);
class GUIEngine * getGuiEngine(class ScriptApiBase *);
void setGuiEngine(class ScriptApiBase *, class GUIEngine *);
void objectrefGetOrCreate(class ScriptApiBase *, lua_State *, class ServerActiveObject *);
void objectrefGet(class ScriptApiBase *, lua_State *, u16);
int luaPanic(lua_State *);
/* size: 128, cachelines: 2, members: 10 */
/* sum members: 125, holes: 1, sum holes: 3 */
};
class ModNameStorer {
lua_State * L; /* 0 8 */
public:
void ModNameStorer(class ModNameStorer *, lua_State *, const string &);
void ~ModNameStorer(class ModNameStorer *, int);
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
};
class ActiveBlockModifier {
public:
int ()(void) * * _vptr.ActiveBlockModifier; /* 0 8 */
void ActiveBlockModifier(class ActiveBlockModifier *, const class ActiveBlockModifier &);
void ActiveBlockModifier(class ActiveBlockModifier *);
virtual void ~ActiveBlockModifier(class ActiveBlockModifier *, int);
virtual class set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string getTriggerContents(class ActiveBlockModifier *);
virtual class set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string getRequiredNeighbors(class ActiveBlockModifier *);
virtual float getTriggerInterval(class ActiveBlockModifier *);
virtual u32 getTriggerChance(class ActiveBlockModifier *);
virtual bool getSimpleCatchUp(class ActiveBlockModifier *);
virtual void trigger(class ActiveBlockModifier *, class ServerEnvironment *, v3s16, class MapNode);
virtual void trigger(class ActiveBlockModifier *, class ServerEnvironment *, v3s16, class MapNode, u32, u32);
/* vtable has 7 entries: {
[2] = getTriggerContents((null)),
[3] = getRequiredNeighbors((null)),
[4] = getTriggerInterval((null)),
[5] = getTriggerChance((null)),
[6] = getSimpleCatchUp((null)),
[7] = trigger((null)),
[8] = trigger((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
};
struct LoadingBlockModifierDef {
int ()(void) * * _vptr.LoadingBlockModifierDef; /* 0 8 */
class set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > trigger_contents; /* 8 48 */
string name; /* 56 32 */
/* --- cacheline 1 boundary (64 bytes) was 24 bytes ago --- */
bool run_at_every_load; /* 88 1 */
void LoadingBlockModifierDef(class LoadingBlockModifierDef *, const class LoadingBlockModifierDef &);
void LoadingBlockModifierDef(class LoadingBlockModifierDef *);
virtual void ~LoadingBlockModifierDef(class LoadingBlockModifierDef *, int);
virtual void trigger(class LoadingBlockModifierDef *, class ServerEnvironment *, v3s16, class MapNode);
/* vtable has 1 entries: {
[2] = trigger((null)),
} */
/* size: 96, cachelines: 2, members: 4 */
/* padding: 7 */
/* last cacheline: 32 bytes */
};
struct ScriptCallbackState {
class ServerScripting * script; /* 0 8 */
int callback_ref; /* 8 4 */
int args_ref; /* 12 4 */
unsigned int refcount; /* 16 4 */
/* XXX 4 bytes hole, try to pack */
string origin; /* 24 32 */
/* size: 56, cachelines: 1, members: 5 */
/* sum members: 52, holes: 1, sum holes: 4 */
/* last cacheline: 56 bytes */
};
class MutexedVariable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > {
public:
class basic_string<char, std::char_traits<char>, std::allocator<char> > m_value; /* 0 32 */
Mutex m_mutex; /* 32 40 */
void MutexedVariable(class MutexedVariable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > *, const class basic_string<char, std::char_traits<char>, std::allocator<char> > &);
class basic_string<char, std::char_traits<char>, std::allocator<char> > get(class MutexedVariable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > *);
void set(class MutexedVariable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > *, const class basic_string<char, std::char_traits<char>, std::allocator<char> > &);
/* size: 72, cachelines: 2, members: 2 */
/* last cacheline: 8 bytes */
};
class ScriptApiNode : virtual public ScriptApiBase, public ScriptApiNodemeta {
public:
/* --- cacheline 67108863 boundary (4294967232 bytes) was 63 bytes ago --- */
/* class ScriptApiBase <ancestor>; */ /* 4294967295 0 */
/* class ScriptApiNodemeta <ancestor>; */ /* 0 0 */
static struct EnumString es_DrawType[18] /* 0 0 */
static struct EnumString es_ContentParamType[3] /* 0 0 */
static struct EnumString es_ContentParamType2[13] /* 0 0 */
static struct EnumString es_LiquidType[4] /* 0 0 */
static struct EnumString es_NodeBoxType[6] /* 0 0 */
void ScriptApiNode(class ScriptApiNode *, int, const void * *, const class ScriptApiNode &);
void ScriptApiNode(class ScriptApiNode *, int, const void * *);
virtual void ~ScriptApiNode(class ScriptApiNode *, int, const void * *);
bool node_on_punch(class ScriptApiNode *, v3s16, class MapNode, class ServerActiveObject *, class PointedThing);
bool node_on_dig(class ScriptApiNode *, v3s16, class MapNode, class ServerActiveObject *);
void node_on_construct(class ScriptApiNode *, v3s16, class MapNode);
void node_on_destruct(class ScriptApiNode *, v3s16, class MapNode);
void node_after_destruct(class ScriptApiNode *, v3s16, class MapNode);
bool node_on_timer(class ScriptApiNode *, v3s16, class MapNode, f32);
void node_on_receive_fields(class ScriptApiNode *, v3s16, const string &, const StringMap &, class ServerActiveObject *);
void node_falling_update(class ScriptApiNode *, v3s16);
void node_falling_update_single(class ScriptApiNode *, v3s16);
/* size: 136, cachelines: 3, members: 2, static members: 5 */
/* padding: 136 */
/* last cacheline: 8 bytes */
};
class ScriptApiItem : virtual public ScriptApiBase {
public:
/* --- cacheline 67108863 boundary (4294967232 bytes) was 63 bytes ago --- */
/* class ScriptApiBase <ancestor>; */ /* 4294967295 0 */
int ()(void) * * _vptr.ScriptApiItem; /* 0 8 */
void ScriptApiItem(class ScriptApiItem *, int, const void * *, );
void ScriptApiItem(class ScriptApiItem *, int, const void * *, const class ScriptApiItem &);
void ScriptApiItem(class ScriptApiItem *, int, const void * *);
bool item_OnDrop(class ScriptApiItem *, class ItemStack &, class ServerActiveObject *, v3f);
bool item_OnPlace(class ScriptApiItem *, class ItemStack &, class ServerActiveObject *, const class PointedThing &);
bool item_OnUse(class ScriptApiItem *, class ItemStack &, class ServerActiveObject *, const class PointedThing &);
bool item_OnSecondaryUse(class ScriptApiItem *, class ItemStack &, class ServerActiveObject *);
bool item_OnCraft(class ScriptApiItem *, class ItemStack &, class ServerActiveObject *, const class InventoryList *, const class InventoryLocation &);
bool item_CraftPredict(class ScriptApiItem *, class ItemStack &, class ServerActiveObject *, const class InventoryList *, const class InventoryLocation &);
protected:
bool getItemCallback(class ScriptApiItem *, const char *, const char *);
void pushPointedThing(class ScriptApiItem *, const class PointedThing &);
public:
virtual void ~ScriptApiItem(class ScriptApiItem *, int, const void * *);
/* size: 136, cachelines: 3, members: 2 */
/* padding: 128 */
/* last cacheline: 8 bytes */
};
class ScriptApiNodemeta : virtual public ScriptApiBase, public ScriptApiItem {
public:
/* --- cacheline 67108863 boundary (4294967232 bytes) was 63 bytes ago --- */
/* class ScriptApiBase <ancestor>; */ /* 4294967295 0 */
/* class ScriptApiItem <ancestor>; */ /* 0 136 */
/* XXX last struct has 128 bytes of padding */
void ScriptApiNodemeta(class ScriptApiNodemeta *, int, const void * *, const class ScriptApiNodemeta &);
void ScriptApiNodemeta(class ScriptApiNodemeta *, int, const void * *);
virtual void ~ScriptApiNodemeta(class ScriptApiNodemeta *, int, const void * *);
int nodemeta_inventory_AllowMove(class ScriptApiNodemeta *, v3s16, const string &, int, const string &, int, int, class ServerActiveObject *);
int nodemeta_inventory_AllowPut(class ScriptApiNodemeta *, v3s16, const string &, int, class ItemStack &, class ServerActiveObject *);
int nodemeta_inventory_AllowTake(class ScriptApiNodemeta *, v3s16, const string &, int, class ItemStack &, class ServerActiveObject *);
void nodemeta_inventory_OnMove(class ScriptApiNodemeta *, v3s16, const string &, int, const string &, int, int, class ServerActiveObject *);
void nodemeta_inventory_OnPut(class ScriptApiNodemeta *, v3s16, const string &, int, class ItemStack &, class ServerActiveObject *);
void nodemeta_inventory_OnTake(class ScriptApiNodemeta *, v3s16, const string &, int, class ItemStack &, class ServerActiveObject *);
/* size: 136, cachelines: 3, members: 2 */
/* paddings: 1, sum paddings: 128 */
/* last cacheline: 8 bytes */
/* BRAIN FART ALERT! 136 != 0 + 0(holes), diff = 136 */
};
class ScriptApiPlayer : virtual public ScriptApiBase {
public:
/* --- cacheline 67108863 boundary (4294967232 bytes) was 63 bytes ago --- */
/* class ScriptApiBase <ancestor>; */ /* 4294967295 0 */
int ()(void) * * _vptr.ScriptApiPlayer; /* 0 8 */
virtual void ~ScriptApiPlayer(class ScriptApiPlayer *, int, const void * *);
void on_newplayer(class ScriptApiPlayer *, class ServerActiveObject *);
void on_dieplayer(class ScriptApiPlayer *, class ServerActiveObject *);
bool on_respawnplayer(class ScriptApiPlayer *, class ServerActiveObject *);
bool on_prejoinplayer(class ScriptApiPlayer *, const string &, const string &, string *);
void on_joinplayer(class ScriptApiPlayer *, class ServerActiveObject *);
void on_leaveplayer(class ScriptApiPlayer *, class ServerActiveObject *, bool);
void on_cheat(class ScriptApiPlayer *, class ServerActiveObject *, const string &);
bool on_punchplayer(class ScriptApiPlayer *, class ServerActiveObject *, class ServerActiveObject *, float, const class ToolCapabilities *, v3f, s16);
s16 on_player_hpchange(class ScriptApiPlayer *, class ServerActiveObject *, s16);
void on_playerReceiveFields(class ScriptApiPlayer *, class ServerActiveObject *, const string &, const StringMap &);
/* size: 136, cachelines: 3, members: 2 */
/* padding: 128 */
/* last cacheline: 8 bytes */
};
struct ModSpec {
string name; /* 0 32 */
string path; /* 32 32 */
/* --- cacheline 1 boundary (64 bytes) --- */
class unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > depends; /* 64 56 */
class unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > optdepends; /* 120 56 */
/* --- cacheline 2 boundary (128 bytes) was 48 bytes ago --- */
class unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > unsatisfied_depends; /* 176 56 */
/* --- cacheline 3 boundary (192 bytes) was 40 bytes ago --- */
bool part_of_modpack; /* 232 1 */
bool is_modpack; /* 233 1 */
/* XXX 6 bytes hole, try to pack */
class map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ModSpec, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ModSpec> > > modpack_content; /* 240 48 */
void ModSpec(class ModSpec *, const string &, const string &);
void ~ModSpec(class ModSpec *, int);
void ModSpec(class ModSpec *, const class ModSpec &);
/* size: 288, cachelines: 5, members: 8 */
/* sum members: 282, holes: 1, sum holes: 6 */
/* last cacheline: 32 bytes */
};
class LuaAreaStore : public ModApiBase {
public:
/* class ModApiBase <ancestor>; */ /* 0 0 */
static charconst className[0] /* 0 0 */
static luaL_Regconst methods[0] /* 0 0 */
class AreaStore * as; /* 0 8 */
int gc_object(lua_State *);
int l_get_area(lua_State *);
int l_get_areas_for_pos(lua_State *);
int l_get_areas_in_area(lua_State *);
int l_insert_area(lua_State *);
int l_reserve(lua_State *);
int l_remove_area(lua_State *);
int l_set_cache_params(lua_State *);
int l_to_string(lua_State *);
int l_to_file(lua_State *);
int l_from_string(lua_State *);
int l_from_file(lua_State *);
void LuaAreaStore(class LuaAreaStore *);
void LuaAreaStore(class LuaAreaStore *, const string &);
void ~LuaAreaStore(class LuaAreaStore *, int);
int create_object(lua_State *);
class LuaAreaStore * checkobject(lua_State *, int);
void Register(lua_State *);
/* size: 8, cachelines: 1, members: 2, static members: 2 */
/* last cacheline: 8 bytes */
};
class AreaStore {
public:
int ()(void) * * _vptr.AreaStore; /* 0 8 */
typedef struct map<unsigned int, Area, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, Area> > > AreaMap;
protected:
AreaMap areas_map; /* 8 48 */
bool m_cache_enabled; /* 56 1 */
u8 m_cacheblock_radius; /* 57 1 */
/* XXX 6 bytes hole, try to pack */
/* --- cacheline 1 boundary (64 bytes) --- */
class LRUCache<irr::core::vector3d<short int>, std::vector<Area*, std::allocator<Area*> > > m_res_cache; /* 64 96 */
/* --- cacheline 2 boundary (128 bytes) was 32 bytes ago --- */
u32 m_next_id; /* 160 4 */
public:
void AreaStore(class AreaStore *, const class AreaStore &);
void AreaStore(class AreaStore *);
virtual void ~AreaStore(class AreaStore *, int);
class AreaStore * getOptimalImplementation(void);
virtual void reserve(class AreaStore *, size_t);
size_t size(const class AreaStore *);
virtual bool insertArea(class AreaStore *, class Area *);
virtual bool removeArea(class AreaStore *, u32);
void getAreasForPos(class AreaStore *, class vector<Area*, std::allocator<Area*> > *, v3s16);
virtual void getAreasInArea(class AreaStore *, class vector<Area*, std::allocator<Area*> > *, v3s16, v3s16, bool);
void setCacheParams(class AreaStore *, bool, u8, size_t);
const class Area * getArea(const class AreaStore *, u32);
void serialize(const class AreaStore *, ostream &);
void deserialize(class AreaStore *, istream &);
protected:
void invalidateCache(class AreaStore *);
virtual void getAreasForPosImpl(class AreaStore *, class vector<Area*, std::allocator<Area*> > *, v3s16);
u32 getNextId(class AreaStore *);
void cacheMiss(void *, const v3s16 &, class vector<Area*, std::allocator<Area*> > *);
/* vtable has 5 entries: {
[2] = reserve((null)),
[3] = insertArea((null)),
[4] = removeArea((null)),
[5] = getAreasInArea((null)),
[6] = getAreasForPosImpl((null)),
} */
/* size: 168, cachelines: 3, members: 6 */
/* sum members: 158, holes: 1, sum holes: 6 */
/* padding: 4 */
/* last cacheline: 40 bytes */
};
struct Area {
u32 id; /* 0 4 */
v3s16 minedge; /* 4 6 */
v3s16 maxedge; /* 10 6 */
string data; /* 16 32 */
void Area(class Area *);
void Area(class Area *, const v3s16 &, const v3s16 &);
void ~Area(class Area *, int);
/* size: 48, cachelines: 1, members: 4 */
/* last cacheline: 48 bytes */
};
class LRUCache<irr::core::vector3d<short int>, std::vector<Area*, std::allocator<Area*> > > {
void (*m_cache_miss)(void *, const class vector3d<short int> &, class vector<Area*, std::allocator<Area*> > *); /* 0 8 */
void * m_cache_miss_data; /* 8 8 */
size_t m_limit; /* 16 8 */
typedef struct map<irr::core::vector3d<short int>, std::pair<std::_List_iterator<irr::core::vector3d<short int> >, std::vector<Area*, std::allocator<Area*> > >, std::less<irr::core::vector3d<short int> >, std::allocator<std::pair<const irr::core::vector3d<short int>, std::pair<std::_List_iterator<irr::core::vector3d<short int> >, std::vector<Area*, std::allocator<Area*> > > > > > cache_type;
cache_type m_map; /* 24 48 */
/* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
class list<irr::core::vector3d<short int>, std::allocator<irr::core::vector3d<short int> > > m_queue; /* 72 24 */
public:
void LRUCache(class LRUCache<irr::core::vector3d<short int>, std::vector<Area*, std::allocator<Area*> > > *, size_t, void (*)(void *, const class vector3d<short int> &, class vector<Area*, std::allocator<Area*> > *), void *);
void setLimit(class LRUCache<irr::core::vector3d<short int>, std::vector<Area*, std::allocator<Area*> > > *, size_t);
void invalidate(class LRUCache<irr::core::vector3d<short int>, std::vector<Area*, std::allocator<Area*> > > *);
const class vector<Area*, std::allocator<Area*> > * lookupCache(class LRUCache<irr::core::vector3d<short int>, std::vector<Area*, std::allocator<Area*> > > *, class vector3d<short int>);
/* size: 96, cachelines: 2, members: 5 */
/* last cacheline: 32 bytes */
};
class ModApiClient : public ModApiBase {
public:
/* class ModApiBase <ancestor>; */ /* 0 0 */
int l_get_current_modname(lua_State *);
int l_display_chat_message(lua_State *);
int l_get_player_names(lua_State *);
int l_show_formspec(lua_State *);
int l_send_respawn(lua_State *);
int l_disconnect(lua_State *);
int l_gettext(lua_State *);
int l_get_last_run_mod(lua_State *);
int l_set_last_run_mod(lua_State *);
int l_get_node(lua_State *);
int l_get_node_or_nil(lua_State *);
int l_get_wielded_item(lua_State *);
int l_get_meta(lua_State *);
int l_sound_play(lua_State *);
int l_sound_stop(lua_State *);
int l_get_protocol_version(lua_State *);
void Initialize(lua_State *, int);
/* size: 1, cachelines: 1, members: 1 */
/* padding: 1 */
/* last cacheline: 1 bytes */
};
class ISoundManager {
public:
int ()(void) * * _vptr.ISoundManager; /* 0 8 */
virtual void ~ISoundManager(class ISoundManager *, int);
virtual bool loadSoundFile(class ISoundManager *, const string &, const string &);
virtual bool loadSoundData(class ISoundManager *, const string &, const string &);
virtual void updateListener(class ISoundManager *, v3f, v3f, v3f, v3f);
virtual void setListenerGain(class ISoundManager *, float);
virtual int playSound(class ISoundManager *, const string &, bool, float);
virtual int playSoundAt(class ISoundManager *, const string &, bool, float, v3f);
virtual void stopSound(class ISoundManager *, int);
virtual bool soundExists(class ISoundManager *, int);
virtual void updateSoundPosition(class ISoundManager *, int, v3f);
int playSound(class ISoundManager *, const class SimpleSoundSpec &, bool);
int playSoundAt(class ISoundManager *, const class SimpleSoundSpec &, bool, v3f);
/* vtable has 9 entries: {
[2] = loadSoundFile((null)),
[3] = loadSoundData((null)),
[4] = updateListener((null)),
[5] = setListenerGain((null)),
[6] = playSound((null)),
[7] = playSoundAt((null)),
[8] = stopSound((null)),
[9] = soundExists((null)),
[10] = updateSoundPosition((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
};
class ModApiCraft : public ModApiBase {
public:
/* class ModApiBase <ancestor>; */ /* 0 0 */
static struct EnumString es_CraftMethod[0] /* 0 0 */
int l_register_craft(lua_State *);
int l_get_craft_recipe(lua_State *);
int l_get_all_craft_recipes(lua_State *);
int l_get_craft_result(lua_State *);
int l_clear_craft(lua_State *);
bool readCraftReplacements(lua_State *, int, class CraftReplacements &);
bool readCraftRecipeShapeless(lua_State *, int, class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basi);
bool readCraftRecipeShaped(lua_State *, int, int &, class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basi);
void Initialize(lua_State *, int);
/* size: 1, cachelines: 1, members: 1, static members: 1 */
/* padding: 1 */
/* last cacheline: 1 bytes */
};
struct CraftReplacements {
class vector<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > pairs; /* 0 24 */
void CraftReplacements(class CraftReplacements *);
void CraftReplacements(class CraftReplacements *, const class vector<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::bas);
string dump(const class CraftReplacements *);
void CraftReplacements(class CraftReplacements *, const class CraftReplacements &);
void ~CraftReplacements(class CraftReplacements *, int);
/* size: 24, cachelines: 1, members: 1 */
/* last cacheline: 24 bytes */
};
struct CraftInput {
enum CraftMethod method; /* 0 4 */
unsigned int width; /* 4 4 */
class vector<ItemStack, std::allocator<ItemStack> > items; /* 8 24 */
void CraftInput(class CraftInput *);
void CraftInput(class CraftInput *, enum CraftMethod, unsigned int, const class vector<ItemStack, std::allocator<ItemStack> > &);
string dump(const class CraftInput *);
void ~CraftInput(class CraftInput *, int);
/* size: 32, cachelines: 1, members: 3 */
/* last cacheline: 32 bytes */
};
struct CraftOutput {
string item; /* 0 32 */
float time; /* 32 4 */
void CraftOutput(class CraftOutput *);
void CraftOutput(class CraftOutput *, const string &, float);
string dump(const class CraftOutput *);
void ~CraftOutput(class CraftOutput *, int);
/* size: 40, cachelines: 1, members: 2 */
/* padding: 4 */
/* last cacheline: 40 bytes */
};
class CraftDefinition {
public:
int ()(void) * * _vptr.CraftDefinition; /* 0 8 */
void CraftDefinition(class CraftDefinition *, const class CraftDefinition &);
void CraftDefinition(class CraftDefinition *);
virtual void ~CraftDefinition(class CraftDefinition *, int);
virtual string getName(const class CraftDefinition *);
virtual bool check(const class CraftDefinition *, const class CraftInput &, class IGameDef *);
virtual class CraftOutput getOutput(const class CraftDefinition *, const class CraftInput &, class IGameDef *);
virtual class CraftInput getInput(const class CraftDefinition *, const class CraftOutput &, class IGameDef *);
virtual void decrementInput(const class CraftDefinition *, class CraftInput &, class vector<ItemStack, std::allocator<ItemStack> > &, class IGameDef *);
virtual enum CraftHashType getHashType(const class CraftDefinition *);
virtual u64 getHash(const class CraftDefinition *, enum CraftHashType);
virtual void initHash(class CraftDefinition *, class IGameDef *);
virtual string dump(const class CraftDefinition *);
/* vtable has 9 entries: {
[2] = getName((null)),
[3] = check((null)),
[4] = getOutput((null)),
[5] = getInput((null)),
[6] = decrementInput((null)),
[7] = getHashType((null)),
[8] = getHash((null)),
[9] = initHash((null)),
[10] = dump((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
};
class IWritableCraftDefManager : public ICraftDefManager {
public:
/* class ICraftDefManager <ancestor>; */ /* 0 8 */
void IWritableCraftDefManager(class IWritableCraftDefManager *);
virtual void ~IWritableCraftDefManager(class IWritableCraftDefManager *, int);
virtual bool getCraftResult(const class IWritableCraftDefManager *, class CraftInput &, class CraftOutput &, class vector<ItemStack, std::allocator<ItemStack> > &, bool, class IGameDef *);
virtual class vector<CraftDefinition*, std::allocator<CraftDefinition*> > getCraftRecipes(const class IWritableCraftDefManager *, class CraftOutput &, class IGameDef *, unsigned int);
virtual bool clearCraftRecipesByOutput(class IWritableCraftDefManager *, const class CraftOutput &, class IGameDef *);
virtual bool clearCraftRecipesByInput(class IWritableCraftDefManager *, enum CraftMethod, unsigned int, const class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11, class IGameDef *);
virtual string dump(const class IWritableCraftDefManager *);
virtual void registerCraft(class IWritableCraftDefManager *, class CraftDefinition *, class IGameDef *);
virtual void clear(class IWritableCraftDefManager *);
virtual void initHashes(class IWritableCraftDefManager *, class IGameDef *);
/* vtable has 8 entries: {
[2] = getCraftResult((null)),
[3] = getCraftRecipes((null)),
[5] = clearCraftRecipesByOutput((null)),
[6] = clearCraftRecipesByInput((null)),
[4] = dump((null)),
[7] = registerCraft((null)),
[8] = clear((null)),
[9] = initHashes((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
/* BRAIN FART ALERT! 8 != 0 + 0(holes), diff = 8 */
};
class ICraftDefManager {
public:
int ()(void) * * _vptr.ICraftDefManager; /* 0 8 */
void ICraftDefManager(class ICraftDefManager *, const class ICraftDefManager &);
void ICraftDefManager(class ICraftDefManager *);
virtual void ~ICraftDefManager(class ICraftDefManager *, int);
virtual bool getCraftResult(const class ICraftDefManager *, class CraftInput &, class CraftOutput &, class vector<ItemStack, std::allocator<ItemStack> > &, bool, class IGameDef *);
virtual class vector<CraftDefinition*, std::allocator<CraftDefinition*> > getCraftRecipes(const class ICraftDefManager *, class CraftOutput &, class IGameDef *, unsigned int);
virtual string dump(const class ICraftDefManager *);
/* vtable has 3 entries: {
[2] = getCraftResult((null)),
[3] = getCraftRecipes((null)),
[4] = dump((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
};
class VoxelArea {
public:
v3s16 MinEdge; /* 0 6 */
v3s16 MaxEdge; /* 6 6 */
void VoxelArea(class VoxelArea *);
void VoxelArea(class VoxelArea *, v3s16, v3s16);
void VoxelArea(class VoxelArea *, v3s16);
void addArea(class VoxelArea *, const class VoxelArea &);
void addPoint(class VoxelArea *, const v3s16 &);
void pad(class VoxelArea *, const v3s16 &);
v3s16 getExtent(const class VoxelArea *);
bool hasEmptyExtent(const class VoxelArea *);
s32 getVolume(const class VoxelArea *);
bool contains(const class VoxelArea *, const class VoxelArea &);
bool contains(const class VoxelArea *, v3s16);
bool contains(const class VoxelArea *, s32);
bool operator==(const class VoxelArea *, const class VoxelArea &);
class VoxelArea operator+(const class VoxelArea *, v3s16);
class VoxelArea operator-(const class VoxelArea *, v3s16);
void diff(class VoxelArea *, const class VoxelArea &, class list<VoxelArea, std::allocator<VoxelArea> > &);
s32 index(const class VoxelArea *, s16, s16, s16);
s32 index(const class VoxelArea *, v3s16);
void add_x(class VoxelArea *, const v3s16 &, u32 &, s16);
void add_y(class VoxelArea *, const v3s16 &, u32 &, s16);
void add_z(class VoxelArea *, const v3s16 &, u32 &, s16);
void add_p(class VoxelArea *, const v3s16 &, u32 &, v3s16);
void print(const class VoxelArea *, ostream &);
/* size: 12, cachelines: 1, members: 2 */
/* last cacheline: 12 bytes */
};
class Noise {
public:
struct NoiseParams np; /* 0 40 */
s32 seed; /* 40 4 */
u32 sx; /* 44 4 */
u32 sy; /* 48 4 */
u32 sz; /* 52 4 */
float * noise_buf; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
float * gradient_buf; /* 64 8 */
float * persist_buf; /* 72 8 */
float * result; /* 80 8 */
void Noise(class Noise *, class NoiseParams *, s32, u32, u32, u32);
void ~Noise(class Noise *, int);
void setSize(class Noise *, u32, u32, u32);
void setSpreadFactor(class Noise *, v3f);
void setOctaves(class Noise *, int);
void gradientMap2D(class Noise *, float, float, float, float, s32);
void gradientMap3D(class Noise *, float, float, float, float, float, float, s32);
float * perlinMap2D(class Noise *, float, float, float *);
float * perlinMap3D(class Noise *, float, float, float, float *);
float * perlinMap2D_PO(class Noise *, float, float, float, float, float *);
float * perlinMap3D_PO(class Noise *, float, float, float, float, float, float, float *);
void allocBuffers(class Noise *);
void resizeNoiseBuf(class Noise *, bool);
void updateResults(class Noise *, float, float *, float *, size_t);
/* size: 88, cachelines: 2, members: 9 */
/* last cacheline: 24 bytes */
};
class ModApiEnvMod : public ModApiBase {
public:
/* class ModApiBase <ancestor>; */ /* 0 0 */
static struct EnumString es_ClearObjectsMode[0] /* 0 0 */
int l_set_node(lua_State *);
int l_add_node(lua_State *);
int l_remove_node(lua_State *);
int l_swap_node(lua_State *);
int l_get_node(lua_State *);
int l_get_node_or_nil(lua_State *);
int l_get_node_light(lua_State *);
int l_place_node(lua_State *);
int l_dig_node(lua_State *);
int l_punch_node(lua_State *);
int l_get_node_max_level(lua_State *);
int l_get_node_level(lua_State *);
int l_set_node_level(lua_State *);
int l_add_node_level(lua_State *);
int l_find_nodes_with_meta(lua_State *);
int l_get_meta(lua_State *);
int l_get_node_timer(lua_State *);
int l_add_entity(lua_State *);
int l_add_item(lua_State *);
int l_get_player_by_name(lua_State *);
int l_get_objects_inside_radius(lua_State *);
int l_set_timeofday(lua_State *);
int l_get_timeofday(lua_State *);
int l_get_gametime(lua_State *);
int l_get_day_count(lua_State *);
int l_find_node_near(lua_State *);
int l_find_nodes_in_area(lua_State *);
int l_find_nodes_in_area_under_air(lua_State *);
int l_fix_light(lua_State *);
int l_emerge_area(lua_State *);
int l_delete_area(lua_State *);
int l_get_perlin(lua_State *);
int l_get_perlin_map(lua_State *);
int l_get_voxel_manip(lua_State *);
int l_clear_objects(lua_State *);
int l_spawn_tree(lua_State *);
int l_line_of_sight(lua_State *);
int l_find_path(lua_State *);
int l_transforming_liquid_add(lua_State *);
int l_forceload_block(lua_State *);
int l_forceload_free_block(lua_State *);
void Initialize(lua_State *, int);
void InitializeClient(lua_State *, int);
/* size: 1, cachelines: 1, members: 1, static members: 1 */
/* padding: 1 */
/* last cacheline: 1 bytes */
};
class LuaPerlinNoise : public ModApiBase {
public:
/* class ModApiBase <ancestor>; */ /* 0 0 */
struct NoiseParams np; /* 0 40 */
static charconst className[0] /* 0 0 */
static luaL_Regconst methods[0] /* 0 0 */
int gc_object(lua_State *);
int l_get2d(lua_State *);
int l_get3d(lua_State *);
void LuaPerlinNoise(class LuaPerlinNoise *, class NoiseParams *);
void ~LuaPerlinNoise(class LuaPerlinNoise *, int);
int create_object(lua_State *);
class LuaPerlinNoise * checkobject(lua_State *, int);
void Register(lua_State *);
/* size: 40, cachelines: 1, members: 2, static members: 2 */
/* last cacheline: 40 bytes */
};
class LuaPerlinNoiseMap : public ModApiBase {
public:
/* class ModApiBase <ancestor>; */ /* 0 0 */
struct NoiseParams np; /* 0 40 */
class Noise * noise; /* 40 8 */
bool m_is3d; /* 48 1 */
/* Bitfield combined with previous fields */
static charconst className[0] /* 0 0 */
static luaL_Regconst methods[0] /* 0 0 */
int gc_object(lua_State *);
int l_get2dMap(lua_State *);
int l_get2dMap_flat(lua_State *);
int l_get3dMap(lua_State *);
int l_get3dMap_flat(lua_State *);
int l_calc2dMap(lua_State *);
int l_calc3dMap(lua_State *);
int l_getMapSlice(lua_State *);
void LuaPerlinNoiseMap(class LuaPerlinNoiseMap *, class NoiseParams *, s32, v3s16);
void ~LuaPerlinNoiseMap(class LuaPerlinNoiseMap *, int);
int create_object(lua_State *);
class LuaPerlinNoiseMap * checkobject(lua_State *, int);
void Register(lua_State *);
/* size: 56, cachelines: 1, members: 4, static members: 2 */
/* padding: 7 */
/* last cacheline: 56 bytes */
/* BRAIN FART ALERT! 56 != 56 + 0(holes), diff = 0 */
};
class LuaVoxelManip : public ModApiBase {
public:
/* class ModApiBase <ancestor>; */ /* 0 0 */
class map<irr::core::vector3d<short int>, MapBlock*, std::less<irr::core::vector3d<short int> >, std::allocator<std::pair<const irr::core::vector3d<short int>, MapBlock*> > > modified_blocks; /* 0 48 */
bool is_mapgen_vm; /* 48 1 */
/* XXX 7 bytes hole, try to pack */
/* Bitfield combined with previous fields */
static charconst className[0] /* 0 0 */
static luaL_Regconst methods[0] /* 0 0 */
class MMVManip * vm; /* 56 8 */
int gc_object(lua_State *);
int l_read_from_map(lua_State *);
int l_get_data(lua_State *);
int l_set_data(lua_State *);
int l_write_to_map(lua_State *);
int l_get_node_at(lua_State *);
int l_set_node_at(lua_State *);
int l_update_map(lua_State *);
int l_update_liquids(lua_State *);
int l_calc_lighting(lua_State *);
int l_set_lighting(lua_State *);
int l_get_light_data(lua_State *);
int l_set_light_data(lua_State *);
int l_get_param2_data(lua_State *);
int l_set_param2_data(lua_State *);
int l_was_modified(lua_State *);
int l_get_emerged_area(lua_State *);
void LuaVoxelManip(class LuaVoxelManip *, class MMVManip *, bool);
void LuaVoxelManip(class LuaVoxelManip *, class Map *, v3s16, v3s16);
void LuaVoxelManip(class LuaVoxelManip *, class Map *);
void ~LuaVoxelManip(class LuaVoxelManip *, int);
int create_object(lua_State *);
class LuaVoxelManip * checkobject(lua_State *, int);
void Register(lua_State *);
/* size: 64, cachelines: 1, members: 4, static members: 2 */
/* sum members: 64, holes: 1, sum holes: 7 */
/* BRAIN FART ALERT! 64 != 64 + 7(holes), diff = -7 */
};
struct MapEditEvent {
enum MapEditEventType type; /* 0 4 */
v3s16 p; /* 4 6 */
struct MapNode n; /* 10 4 */
/* XXX 2 bytes hole, try to pack */
class set<irr::core::vector3d<short int>, std::less<irr::core::vector3d<short int> >, std::allocator<irr::core::vector3d<short int> > > modified_blocks; /* 16 48 */
/* --- cacheline 1 boundary (64 bytes) --- */
u16 already_known_by_peer; /* 64 2 */
void MapEditEvent(class MapEditEvent *);
class MapEditEvent * clone(class MapEditEvent *);
class VoxelArea getArea(class MapEditEvent *);
void ~MapEditEvent(class MapEditEvent *, int);
/* size: 72, cachelines: 2, members: 5 */
/* sum members: 64, holes: 1, sum holes: 2 */
/* padding: 6 */
/* last cacheline: 8 bytes */
};
class LuaLBM : public LoadingBlockModifierDef {
public:
/* struct LoadingBlockModifierDef <ancestor>; */ /* 0 96 */
/* XXX last struct has 7 bytes of padding */
/* --- cacheline 1 boundary (64 bytes) was 28 bytes ago --- */
int m_id; /* 92 4 */
void LuaLBM(class LuaLBM *, lua_State *, int, const class set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_, const string &, bool);
virtual void trigger(class LuaLBM *, class ServerEnvironment *, v3s16, class MapNode);
virtual void ~LuaLBM(class LuaLBM *, int);
/* vtable has 1 entries: {
[2] = trigger((null)),
} */
/* size: 96, cachelines: 2, members: 2 */
/* paddings: 1, sum paddings: 7 */
/* last cacheline: 32 bytes */
/* BRAIN FART ALERT! 96 != 4 + 0(holes), diff = 92 */
};
class LuaABM : public ActiveBlockModifier {
public:
/* class ActiveBlockModifier <ancestor>; */ /* 0 8 */
int m_id; /* 8 4 */
/* XXX 4 bytes hole, try to pack */
class set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > m_trigger_contents; /* 16 48 */
/* --- cacheline 1 boundary (64 bytes) --- */
class set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > m_required_neighbors; /* 64 48 */
float m_trigger_interval; /* 112 4 */
u32 m_trigger_chance; /* 116 4 */
bool m_simple_catch_up; /* 120 1 */
void LuaABM(class LuaABM *, lua_State *, int, const class set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_, const class set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_, float, u32, bool);
virtual class set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string getTriggerContents(class LuaABM *);
virtual class set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string getRequiredNeighbors(class LuaABM *);
virtual float getTriggerInterval(class LuaABM *);
virtual u32 getTriggerChance(class LuaABM *);
virtual bool getSimpleCatchUp(class LuaABM *);
virtual void trigger(class LuaABM *, class ServerEnvironment *, v3s16, class MapNode, u32, u32);
virtual void ~LuaABM(class LuaABM *, int);
/* vtable has 6 entries: {
[2] = getTriggerContents((null)),
[3] = getRequiredNeighbors((null)),
[4] = getTriggerInterval((null)),
[5] = getTriggerChance((null)),
[6] = getSimpleCatchUp((null)),
[8] = trigger((null)),
} */
/* size: 128, cachelines: 2, members: 7 */
/* sum members: 109, holes: 1, sum holes: 4 */
/* padding: 7 */
/* BRAIN FART ALERT! 128 != 109 + 4(holes), diff = 15 */
};
struct lua_Debug {
int event; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
const char * name; /* 8 8 */
const char * namewhat; /* 16 8 */
const char * what; /* 24 8 */
const char * source; /* 32 8 */
int currentline; /* 40 4 */
int nups; /* 44 4 */
int linedefined; /* 48 4 */
int lastlinedefined; /* 52 4 */
char short_src[60]; /* 56 60 */
/* --- cacheline 1 boundary (64 bytes) was 52 bytes ago --- */
int i_ci; /* 116 4 */
/* size: 120, cachelines: 2, members: 11 */
/* sum members: 116, holes: 1, sum holes: 4 */
/* last cacheline: 56 bytes */
};
class ModApiHttp : public ModApiBase {
public:
/* class ModApiBase <ancestor>; */ /* 0 0 */
void read_http_fetch_request(lua_State *, class HTTPFetchRequest &);
void push_http_fetch_result(lua_State *, class HTTPFetchResult &, bool);
int l_http_fetch_async(lua_State *);
int l_http_fetch_async_get(lua_State *);
int l_request_http_api(lua_State *);
void Initialize(lua_State *, int);
/* size: 1, cachelines: 1, members: 1 */
/* padding: 1 */
/* last cacheline: 1 bytes */
};
struct HTTPFetchRequest {
string url; /* 0 32 */
long unsigned int caller; /* 32 8 */
long unsigned int request_id; /* 40 8 */
long int timeout; /* 48 8 */
long int connect_timeout; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
bool multipart; /* 64 1 */
/* XXX 7 bytes hole, try to pack */
StringMap post_fields; /* 72 56 */
/* --- cacheline 2 boundary (128 bytes) --- */
string post_data; /* 128 32 */
class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > extra_headers; /* 160 24 */
string useragent; /* 184 32 */
void HTTPFetchRequest(class HTTPFetchRequest *);
void ~HTTPFetchRequest(class HTTPFetchRequest *, int);
/* size: 216, cachelines: 4, members: 10 */
/* sum members: 209, holes: 1, sum holes: 7 */
/* last cacheline: 24 bytes */
};
struct HTTPFetchResult {
bool succeeded; /* 0 1 */
bool timeout; /* 1 1 */
/* XXX 6 bytes hole, try to pack */
long int response_code; /* 8 8 */
string data; /* 16 32 */
long unsigned int caller; /* 48 8 */
long unsigned int request_id; /* 56 8 */
void HTTPFetchResult(class HTTPFetchResult *);
void HTTPFetchResult(class HTTPFetchResult *, const class HTTPFetchRequest &);
void ~HTTPFetchResult(class HTTPFetchResult *, int);
/* size: 64, cachelines: 1, members: 6 */
/* sum members: 58, holes: 1, sum holes: 6 */
};
class InvRef : public ModApiBase {
public:
/* class ModApiBase <ancestor>; */ /* 0 0 */
struct InventoryLocation m_loc; /* 0 48 */
/* XXX last struct has 2 bytes of padding */
static charconst className[0] /* 0 0 */
static luaL_Regconst methods[0] /* 0 0 */
class InvRef * checkobject(lua_State *, int);
class Inventory * getinv(lua_State *, class InvRef *);
class InventoryList * getlist(lua_State *, class InvRef *, const char *);
void reportInventoryChange(lua_State *, class InvRef *);
int gc_object(lua_State *);
int l_is_empty(lua_State *);
int l_get_size(lua_State *);
int l_get_width(lua_State *);
int l_set_size(lua_State *);
int l_set_width(lua_State *);
int l_get_stack(lua_State *);
int l_set_stack(lua_State *);
int l_get_list(lua_State *);
int l_set_list(lua_State *);
int l_get_lists(lua_State *);
int l_set_lists(lua_State *);
int l_add_item(lua_State *);
int l_room_for_item(lua_State *);
int l_contains_item(lua_State *);
int l_remove_item(lua_State *);
int l_get_location(lua_State *);
void InvRef(class InvRef *, const class InventoryLocation &);
void ~InvRef(class InvRef *, int);
void create(lua_State *, const class InventoryLocation &);
void createPlayer(lua_State *, class RemotePlayer *);
void createNodeMeta(lua_State *, v3s16);
void Register(lua_State *);
/* size: 48, cachelines: 1, members: 2, static members: 2 */
/* paddings: 1, sum paddings: 2 */
/* last cacheline: 48 bytes */
};
class ModApiInventory : public ModApiBase {
public:
/* class ModApiBase <ancestor>; */ /* 0 0 */
int l_create_detached_inventory_raw(lua_State *);
int l_get_inventory(lua_State *);
void Initialize(lua_State *, int);
/* size: 1, cachelines: 1, members: 1 */
/* padding: 1 */
/* last cacheline: 1 bytes */
};
class ModApiItemMod : public ModApiBase {
public:
/* class ModApiBase <ancestor>; */ /* 0 0 */
int l_register_item_raw(lua_State *);
int l_unregister_item_raw(lua_State *);
int l_register_alias_raw(lua_State *);
int l_get_content_id(lua_State *);
int l_get_name_from_content_id(lua_State *);
void Initialize(lua_State *, int);
/* size: 1, cachelines: 1, members: 1 */
/* padding: 1 */
/* last cacheline: 1 bytes */
};
class IWritableNodeDefManager : public INodeDefManager {
public:
/* class INodeDefManager <ancestor>; */ /* 0 8 */
void IWritableNodeDefManager(class IWritableNodeDefManager *);
virtual void ~IWritableNodeDefManager(class IWritableNodeDefManager *, int);
virtual class IWritableNodeDefManager * clone(class IWritableNodeDefManager *);
virtual const class ContentFeatures & get(const class IWritableNodeDefManager *, content_t);
virtual const class ContentFeatures & get(const class IWritableNodeDefManager *, const class MapNode &);
virtual bool getId(const class IWritableNodeDefManager *, const string &, content_t &);
virtual content_t getId(const class IWritableNodeDefManager *, const string &);
virtual bool getIds(const class IWritableNodeDefManager *, const string &, class set<short unsigned int, std::less<short unsigned int>, std::allocator<short unsigned int> > &);
virtual const class ContentFeatures & get(const class IWritableNodeDefManager *, const string &);
virtual content_t set(class IWritableNodeDefManager *, const string &, const class ContentFeatures &);
virtual content_t allocateDummy(class IWritableNodeDefManager *, const string &);
virtual void removeNode(class IWritableNodeDefManager *, const string &);
virtual void updateAliases(class IWritableNodeDefManager *, class IItemDefManager *);
virtual void applyTextureOverrides(class IWritableNodeDefManager *, const string &);
virtual void updateTextures(class IWritableNodeDefManager *, class IGameDef *, void (*)(void *, u32, u32), void *);
virtual void serialize(const class IWritableNodeDefManager *, ostream &, u16);
virtual void deSerialize(class IWritableNodeDefManager *, istream &);
virtual bool getNodeRegistrationStatus(const class IWritableNodeDefManager *);
virtual void setNodeRegistrationStatus(class IWritableNodeDefManager *, bool);
virtual void pendNodeResolve(class IWritableNodeDefManager *, class NodeResolver *);
virtual bool cancelNodeResolveCallback(class IWritableNodeDefManager *, class NodeResolver *);
virtual void runNodeResolveCallbacks(class IWritableNodeDefManager *);
virtual void resetNodeResolveState(class IWritableNodeDefManager *);
virtual void mapNodeboxConnections(class IWritableNodeDefManager *);
virtual class aabbox3d<short int> getSelectionBoxIntUnion(const class IWritableNodeDefManager *);
/* vtable has 23 entries: {
[14] = clone((null)),
[2] = get((null)),
[3] = get((null)),
[4] = getId((null)),
[5] = getId((null)),
[6] = getIds((null)),
[7] = get((null)),
[15] = set((null)),
[16] = allocateDummy((null)),
[17] = removeNode((null)),
[18] = updateAliases((null)),
[19] = applyTextureOverrides((null)),
[20] = updateTextures((null)),
[8] = serialize((null)),
[21] = deSerialize((null)),
[9] = getNodeRegistrationStatus((null)),
[22] = setNodeRegistrationStatus((null)),
[10] = pendNodeResolve((null)),
[11] = cancelNodeResolveCallback((null)),
[23] = runNodeResolveCallbacks((null)),
[24] = resetNodeResolveState((null)),
[25] = mapNodeboxConnections((null)),
[13] = getSelectionBoxIntUnion((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
/* BRAIN FART ALERT! 8 != 0 + 0(holes), diff = 8 */
};
class IWritableItemDefManager : public IItemDefManager {
public:
/* class IItemDefManager <ancestor>; */ /* 0 8 */
void IWritableItemDefManager(class IWritableItemDefManager *);
virtual void ~IWritableItemDefManager(class IWritableItemDefManager *, int);
virtual const class ItemDefinition & get(const class IWritableItemDefManager *, const string &);
virtual const string & getAlias(const class IWritableItemDefManager *, const string &);
virtual void getAll(const class IWritableItemDefManager *, class set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string);
virtual bool isKnown(const class IWritableItemDefManager *, const string &);
virtual class ITexture * getInventoryTexture(const class IWritableItemDefManager *, const string &, class Client *);
virtual class ItemMesh * getWieldMesh(const class IWritableItemDefManager *, const string &, class Client *);
virtual void clear(class IWritableItemDefManager *);
virtual void registerItem(class IWritableItemDefManager *, const class ItemDefinition &);
virtual void unregisterItem(class IWritableItemDefManager *, const string &);
virtual void registerAlias(class IWritableItemDefManager *, const string &, const string &);
virtual void serialize(class IWritableItemDefManager *, ostream &, u16);
virtual void deSerialize(class IWritableItemDefManager *, istream &);
virtual void processQueue(class IWritableItemDefManager *, class IGameDef *);
/* vtable has 13 entries: {
[2] = get((null)),
[3] = getAlias((null)),
[4] = getAll((null)),
[5] = isKnown((null)),
[6] = getInventoryTexture((null)),
[7] = getWieldMesh((null)),
[11] = clear((null)),
[12] = registerItem((null)),
[13] = unregisterItem((null)),
[14] = registerAlias((null)),
[10] = serialize((null)),
[15] = deSerialize((null)),
[16] = processQueue((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
/* BRAIN FART ALERT! 8 != 0 + 0(holes), diff = 8 */
};
class ItemStackMetaRef : public MetaDataRef {
public:
/* class MetaDataRef <ancestor>; */ /* 0 0 */
/* XXX 8 bytes hole, try to pack */
class ItemStack * istack; /* 8 8 */
/* Bitfield combined with previous fields */
static const char const className /* 0 0 */
static const luaL_Reg const methods /* 0 0 */
void ItemStackMetaRef(class ItemStackMetaRef *, const class ItemStackMetaRef &);
class ItemStackMetaRef * checkobject(lua_State *, int);
virtual class Metadata * getmeta(class ItemStackMetaRef *, bool);
virtual void clearMeta(class ItemStackMetaRef *);
virtual void reportMetadataChange(class ItemStackMetaRef *);
int gc_object(lua_State *);
void ItemStackMetaRef(class ItemStackMetaRef *, class ItemStack *);
virtual void ~ItemStackMetaRef(class ItemStackMetaRef *, int);
void create(lua_State *, class ItemStack *);
void Register(lua_State *);
/* vtable has 3 entries: {
[3] = getmeta((null)),
[4] = clearMeta((null)),
[2] = reportMetadataChange((null)),
} */
/* size: 16, cachelines: 1, members: 2, static members: 2 */
/* sum members: 8, holes: 1, sum holes: 8 */
/* last cacheline: 16 bytes */
};
class LuaLocalPlayer : public ModApiBase {
public:
/* class ModApiBase <ancestor>; */ /* 0 0 */
static charconst className[0] /* 0 0 */
static luaL_Regconst methods[0] /* 0 0 */
class LocalPlayer * m_localplayer; /* 0 8 */
int gc_object(lua_State *);
int l_get_velocity(lua_State *);
int l_get_hp(lua_State *);
int l_get_name(lua_State *);
int l_is_teleported(lua_State *);
int l_is_attached(lua_State *);
int l_is_touching_ground(lua_State *);
int l_is_in_liquid(lua_State *);
int l_is_in_liquid_stable(lua_State *);
int l_get_liquid_viscosity(lua_State *);
int l_is_climbing(lua_State *);
int l_swimming_vertical(lua_State *);
int l_get_physics_override(lua_State *);
int l_get_override_pos(lua_State *);
int l_get_last_pos(lua_State *);
int l_get_last_velocity(lua_State *);
int l_get_last_look_vertical(lua_State *);
int l_get_last_look_horizontal(lua_State *);
int l_get_key_pressed(lua_State *);
int l_get_breath(lua_State *);
int l_get_look_dir(lua_State *);
int l_get_look_horizontal(lua_State *);
int l_get_look_vertical(lua_State *);
int l_get_pos(lua_State *);
int l_get_eye_pos(lua_State *);
int l_get_eye_offset(lua_State *);
int l_get_movement_acceleration(lua_State *);
int l_get_movement_speed(lua_State *);
int l_get_movement(lua_State *);
void LuaLocalPlayer(class LuaLocalPlayer *, class LocalPlayer *);
void ~LuaLocalPlayer(class LuaLocalPlayer *, int);
void create(lua_State *, class LocalPlayer *);
class LuaLocalPlayer * checkobject(lua_State *, int);
class LocalPlayer * getobject(class LuaLocalPlayer *);
class LocalPlayer * getobject(lua_State *, int);
void Register(lua_State *);
/* size: 8, cachelines: 1, members: 2, static members: 2 */
/* last cacheline: 8 bytes */
};
class ModApiMainMenu : public ModApiBase {
public:
/* class ModApiBase <ancestor>; */ /* 0 0 */
string getTextData(lua_State *, string);
int getIntegerData(lua_State *, string, bool &);
int getBoolData(lua_State *, string, bool &);
bool isMinetestPath(string);
int l_start(lua_State *);
int l_close(lua_State *);
int l_create_world(lua_State *);
int l_delete_world(lua_State *);
int l_get_worlds(lua_State *);
int l_get_games(lua_State *);
int l_get_mapgen_names(lua_State *);
int l_get_favorites(lua_State *);
int l_delete_favorite(lua_State *);
int l_gettext(lua_State *);
int l_show_keys_menu(lua_State *);
int l_show_file_open_dialog(lua_State *);
int l_set_topleft_text(lua_State *);
int l_set_clouds(lua_State *);
int l_get_textlist_index(lua_State *);
int l_get_table_index(lua_State *);
int l_set_background(lua_State *);
int l_update_formspec(lua_State *);
int l_get_screen_info(lua_State *);
int l_get_mainmenu_path(lua_State *);
int l_get_modpath(lua_State *);
int l_get_gamepath(lua_State *);
int l_get_texturepath(lua_State *);
int l_get_texturepath_share(lua_State *);
int l_create_dir(lua_State *);
int l_delete_dir(lua_State *);
int l_copy_dir(lua_State *);
int l_extract_zip(lua_State *);
int l_get_modstore_details(lua_State *);
int l_get_modstore_list(lua_State *);
int l_download_file(lua_State *);
int l_get_video_drivers(lua_State *);
int l_get_video_modes(lua_State *);
int l_get_min_supp_proto(lua_State *);
int l_get_max_supp_proto(lua_State *);
int l_do_async_callback(lua_State *);
void Initialize(lua_State *, int);
void InitializeAsync(class AsyncEngine &);
/* size: 1, cachelines: 1, members: 1 */
/* padding: 1 */
/* last cacheline: 1 bytes */
};
struct ModLicenseInfo {
int id; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
string shortinfo; /* 8 32 */
string url; /* 40 32 */
void ~ModLicenseInfo(class ModLicenseInfo *, int);
/* size: 72, cachelines: 2, members: 3 */
/* sum members: 68, holes: 1, sum holes: 4 */
/* last cacheline: 8 bytes */
};
struct ModAuthorInfo {
int id; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
string username; /* 8 32 */
void ~ModAuthorInfo(class ModAuthorInfo *, int);
/* size: 40, cachelines: 1, members: 2 */
/* sum members: 36, holes: 1, sum holes: 4 */
/* last cacheline: 40 bytes */
};
struct ModStoreMod {
int id; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
string title; /* 8 32 */
string basename; /* 40 32 */
/* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
struct ModAuthorInfo author; /* 72 40 */
float rating; /* 112 4 */
bool valid; /* 116 1 */
void ~ModStoreMod(class ModStoreMod *, int);
/* size: 120, cachelines: 2, members: 6 */
/* sum members: 113, holes: 1, sum holes: 4 */
/* padding: 3 */
/* last cacheline: 56 bytes */
};
struct ModStoreCategoryInfo {
int id; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
string name; /* 8 32 */
void ~ModStoreCategoryInfo(class ModStoreCategoryInfo *, int);
/* size: 40, cachelines: 1, members: 2 */
/* sum members: 36, holes: 1, sum holes: 4 */
/* last cacheline: 40 bytes */
};
struct ModStoreVersionEntry {
int id; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
string date; /* 8 32 */
string file; /* 40 32 */
/* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
bool approved; /* 72 1 */
/* XXX 3 bytes hole, try to pack */
int mtversion; /* 76 4 */
void ~ModStoreVersionEntry(class ModStoreVersionEntry *, int);
/* size: 80, cachelines: 2, members: 5 */
/* sum members: 73, holes: 2, sum holes: 7 */
/* last cacheline: 16 bytes */
};
struct ModStoreTitlePic {
int id; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
string file; /* 8 32 */
string description; /* 40 32 */
/* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
int mod; /* 72 4 */
void ~ModStoreTitlePic(class ModStoreTitlePic *, int);
/* size: 80, cachelines: 2, members: 4 */
/* sum members: 72, holes: 1, sum holes: 4 */
/* padding: 4 */
/* last cacheline: 16 bytes */
};
struct ModStoreModDetails {
class vector<ModStoreCategoryInfo, std::allocator<ModStoreCategoryInfo> > categories; /* 0 24 */
struct ModAuthorInfo author; /* 24 40 */
/* --- cacheline 1 boundary (64 bytes) --- */
struct ModLicenseInfo license; /* 64 72 */
/* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */
struct ModStoreTitlePic titlepic; /* 136 80 */
/* XXX last struct has 4 bytes of padding */
/* --- cacheline 3 boundary (192 bytes) was 24 bytes ago --- */
int id; /* 216 4 */
/* XXX 4 bytes hole, try to pack */
string title; /* 224 32 */
/* --- cacheline 4 boundary (256 bytes) --- */
string basename; /* 256 32 */
string description; /* 288 32 */
/* --- cacheline 5 boundary (320 bytes) --- */
string repository; /* 320 32 */
float rating; /* 352 4 */
/* XXX 4 bytes hole, try to pack */
class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > depends; /* 360 24 */
/* --- cacheline 6 boundary (384 bytes) --- */
class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > softdeps; /* 384 24 */
string download_url; /* 408 32 */
string screenshot_url; /* 440 32 */
/* --- cacheline 7 boundary (448 bytes) was 24 bytes ago --- */
class vector<ModStoreVersionEntry, std::allocator<ModStoreVersionEntry> > versions; /* 472 24 */
bool valid; /* 496 1 */
void ~ModStoreModDetails(class ModStoreModDetails *, int);
/* size: 504, cachelines: 8, members: 16 */
/* sum members: 489, holes: 2, sum holes: 8 */
/* padding: 7 */
/* paddings: 1, sum paddings: 4 */
/* last cacheline: 56 bytes */
};
class FormspecFormSource : public IFormSource {
public:
/* class IFormSource <ancestor>; */ /* 0 8 */
string m_formspec; /* 8 32 */
void FormspecFormSource(class FormspecFormSource *, const string &);
virtual void ~FormspecFormSource(class FormspecFormSource *, int);
void setForm(class FormspecFormSource *, const string &);
virtual string getForm(class FormspecFormSource *);
/* vtable has 1 entries: {
[2] = getForm((null)),
} */
/* size: 40, cachelines: 1, members: 2 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 40 != 32 + 0(holes), diff = 8 */
};
class IFormSource {
public:
int ()(void) * * _vptr.IFormSource; /* 0 8 */
void IFormSource(class IFormSource *, const class IFormSource &);
void IFormSource(class IFormSource *);
virtual void ~IFormSource(class IFormSource *, int);
virtual string getForm(class IFormSource *);
virtual string resolveText(class IFormSource *, string);
/* vtable has 2 entries: {
[2] = getForm((null)),
[3] = resolveText((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
};
struct TextDest {
int ()(void) * * _vptr.TextDest; /* 0 8 */
string m_formname; /* 8 32 */
virtual void ~TextDest(class TextDest *, int);
virtual void gotText(class TextDest *, wstring);
virtual void gotText(class TextDest *, const StringMap &);
virtual void setFormName(class TextDest *, string);
/* vtable has 3 entries: {
[2] = gotText((null)),
[3] = gotText((null)),
[4] = setFormName((null)),
} */
/* size: 40, cachelines: 1, members: 2 */
/* last cacheline: 40 bytes */
};
class SettingNotFoundException : public BaseException {
public:
/* class BaseException <ancestor>; */ /* 0 40 */
void SettingNotFoundException(class SettingNotFoundException *, const string &);
virtual void ~SettingNotFoundException(class SettingNotFoundException *, int);
/* size: 40, cachelines: 1, members: 1 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 40 != 0 + 0(holes), diff = 40 */
};
class ModApiMapgen : public ModApiBase {
public:
/* class ModApiBase <ancestor>; */ /* 0 0 */
static struct EnumString es_BiomeTerrainType[0] /* 0 0 */
static struct EnumString es_DecorationType[0] /* 0 0 */
static struct EnumString es_MapgenObject[0] /* 0 0 */
static struct EnumString es_OreType[0] /* 0 0 */
static struct EnumString es_Rotation[0] /* 0 0 */
static struct EnumString es_SchematicFormatType[0] /* 0 0 */
static struct EnumString es_NodeResolveMethod[0] /* 0 0 */
int l_get_biome_id(lua_State *);
int l_get_mapgen_object(lua_State *);
int l_get_mapgen_params(lua_State *);
int l_set_mapgen_params(lua_State *);
int l_get_mapgen_setting(lua_State *);
int l_set_mapgen_setting(lua_State *);
int l_get_mapgen_setting_noiseparams(lua_State *);
int l_set_mapgen_setting_noiseparams(lua_State *);
int l_set_noiseparams(lua_State *);
int l_get_noiseparams(lua_State *);
int l_set_gen_notify(lua_State *);
int l_get_gen_notify(lua_State *);
int l_register_biome(lua_State *);
int l_register_decoration(lua_State *);
int l_register_ore(lua_State *);
int l_register_schematic(lua_State *);
int l_clear_registered_biomes(lua_State *);
int l_clear_registered_decorations(lua_State *);
int l_clear_registered_schematics(lua_State *);
int l_generate_ores(lua_State *);
int l_generate_decorations(lua_State *);
int l_clear_registered_ores(lua_State *);
int l_create_schematic(lua_State *);
int l_place_schematic(lua_State *);
int l_place_schematic_on_vmanip(lua_State *);
int l_serialize_schematic(lua_State *);
void Initialize(lua_State *, int);
/* size: 1, cachelines: 1, members: 1, static members: 7 */
/* padding: 1 */
/* last cacheline: 1 bytes */
};
class DecorationManager : public ObjDefManager {
public:
/* class ObjDefManager <ancestor>; */ /* 0 0 */
void DecorationManager(class DecorationManager *, class IGameDef *);
virtual void ~DecorationManager(class DecorationManager *, int);
virtual const char * getObjectTitle(const class DecorationManager *);
class Decoration * create(enum DecorationType);
size_t placeAllDecos(class DecorationManager *, class Mapgen *, u32, v3s16, v3s16);
/* vtable has 1 entries: {
[2] = getObjectTitle((null)),
} */
/* size: 48, cachelines: 1, members: 1 */
/* padding: 48 */
/* last cacheline: 48 bytes */
};
class ObjDef {
public:
int ()(void) * * _vptr.ObjDef; /* 0 8 */
u32 index; /* 8 4 */
u32 uid; /* 12 4 */
ObjDefHandle handle; /* 16 4 */
/* XXX 4 bytes hole, try to pack */
string name; /* 24 32 */
void ObjDef(class ObjDef *, const class ObjDef &);
void ObjDef(class ObjDef *);
virtual void ~ObjDef(class ObjDef *, int);
/* size: 56, cachelines: 1, members: 5 */
/* sum members: 52, holes: 1, sum holes: 4 */
/* last cacheline: 56 bytes */
};
class MetaDataRef : public ModApiBase {
public:
/* class ModApiBase <ancestor>; */ /* 0 0 */
int ()(void) * * _vptr.MetaDataRef; /* 0 8 */
virtual void ~MetaDataRef(class MetaDataRef *, int);
protected:
class MetaDataRef * checkobject(lua_State *, int);
virtual void reportMetadataChange(class MetaDataRef *);
virtual class Metadata * getmeta(class MetaDataRef *, bool);
virtual void clearMeta(class MetaDataRef *);
virtual void handleToTable(class MetaDataRef *, lua_State *, class Metadata *);
virtual bool handleFromTable(class MetaDataRef *, lua_State *, int, class Metadata *);
int l_get_string(lua_State *);
int l_set_string(lua_State *);
int l_get_int(lua_State *);
int l_set_int(lua_State *);
int l_get_float(lua_State *);
int l_set_float(lua_State *);
int l_to_table(lua_State *);
int l_from_table(lua_State *);
int l_equals(lua_State *);
/* vtable has 5 entries: {
[2] = reportMetadataChange((null)),
[3] = getmeta((null)),
[4] = clearMeta((null)),
[5] = handleToTable((null)),
[6] = handleFromTable((null)),
} */
/* size: 8, cachelines: 1, members: 2 */
/* last cacheline: 8 bytes */
};
class LuaMinimap : public ModApiBase {
public:
/* class ModApiBase <ancestor>; */ /* 0 0 */
static charconst className[0] /* 0 0 */
static luaL_Regconst methods[0] /* 0 0 */
class Minimap * m_minimap; /* 0 8 */
int gc_object(lua_State *);
int l_get_pos(lua_State *);
int l_set_pos(lua_State *);
int l_get_angle(lua_State *);
int l_set_angle(lua_State *);
int l_get_mode(lua_State *);
int l_set_mode(lua_State *);
int l_show(lua_State *);
int l_hide(lua_State *);
int l_set_shape(lua_State *);
int l_get_shape(lua_State *);
void LuaMinimap(class LuaMinimap *, class Minimap *);
void ~LuaMinimap(class LuaMinimap *, int);
void create(lua_State *, class Minimap *);
class LuaMinimap * checkobject(lua_State *, int);
class Minimap * getobject(class LuaMinimap *);
void Register(lua_State *);
/* size: 8, cachelines: 1, members: 2, static members: 2 */
/* last cacheline: 8 bytes */
};
class Minimap {
public:
class IVideoDriver * driver; /* 0 8 */
class Client * client; /* 8 8 */
class MinimapData * data; /* 16 8 */
class ITextureSource * m_tsrc; /* 24 8 */
class IShaderSource * m_shdrsrc; /* 32 8 */
class INodeDefManager * m_ndef; /* 40 8 */
class MinimapUpdateThread * m_minimap_update_thread; /* 48 8 */
SMeshBuffer * m_meshbuffer; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
bool m_enable_shaders; /* 64 1 */
/* XXX 1 byte hole, try to pack */
u16 m_surface_mode_scan_height; /* 66 2 */
f32 m_angle; /* 68 4 */
Mutex m_mutex; /* 72 40 */
class list<irr::core::vector2d<float>, std::allocator<irr::core::vector2d<float> > > m_active_markers; /* 112 24 */
void Minimap(class Minimap *, class IrrlichtDevice *, class Client *);
void ~Minimap(class Minimap *, int);
void addBlock(class Minimap *, v3s16, class MinimapMapblock *);
v3f getYawVec(class Minimap *);
void setPos(class Minimap *, v3s16);
v3s16 getPos(const class Minimap *);
void setAngle(class Minimap *, f32);
f32 getAngle(const class Minimap *);
void setMinimapMode(class Minimap *, enum MinimapMode);
enum MinimapMode getMinimapMode(const class Minimap *);
void toggleMinimapShape(class Minimap *);
void setMinimapShape(class Minimap *, enum MinimapShape);
enum MinimapShape getMinimapShape(class Minimap *);
class ITexture * getMinimapTexture(class Minimap *);
void blitMinimapPixelsToImageRadar(class Minimap *, class IImage *);
void blitMinimapPixelsToImageSurface(class Minimap *, class IImage *, class IImage *);
SMeshBuffer * getMinimapMeshBuffer(class Minimap *);
void updateActiveMarkers(class Minimap *);
void drawMinimap(class Minimap *);
/* size: 136, cachelines: 3, members: 13 */
/* sum members: 135, holes: 1, sum holes: 1 */
/* last cacheline: 8 bytes */
};
struct MinimapData {
bool is_radar; /* 0 1 */
/* XXX 3 bytes hole, try to pack */
enum MinimapMode mode; /* 4 4 */
v3s16 pos; /* 8 6 */
v3s16 old_pos; /* 14 6 */
u16 scan_height; /* 20 2 */
u16 map_size; /* 22 2 */
struct MinimapPixel minimap_scan[262144]; /* 24 2097152 */
/* --- cacheline 32768 boundary (2097152 bytes) was 24 bytes ago --- */
bool map_invalidated; /* 2097176 1 */
bool minimap_shape_round; /* 2097177 1 */
/* XXX 6 bytes hole, try to pack */
class IImage * minimap_image; /* 2097184 8 */
class IImage * heightmap_image; /* 2097192 8 */
class IImage * minimap_mask_round; /* 2097200 8 */
class IImage * minimap_mask_square; /* 2097208 8 */
/* --- cacheline 32769 boundary (2097216 bytes) --- */
class ITexture * texture; /* 2097216 8 */
class ITexture * heightmap_texture; /* 2097224 8 */
class ITexture * minimap_overlay_round; /* 2097232 8 */
class ITexture * minimap_overlay_square; /* 2097240 8 */
class ITexture * player_marker; /* 2097248 8 */
class ITexture * object_marker_red; /* 2097256 8 */
/* size: 2097264, cachelines: 32770, members: 19 */
/* sum members: 2097255, holes: 2, sum holes: 9 */
/* last cacheline: 48 bytes */
};
class NodeMetaRef : public MetaDataRef {
public:
/* class MetaDataRef <ancestor>; */ /* 0 0 */
/* XXX 8 bytes hole, try to pack */
v3s16 m_p; /* 8 6 */
/* XXX 2 bytes hole, try to pack */
class ServerEnvironment * m_env; /* 16 8 */
class Metadata * m_meta; /* 24 8 */
bool m_is_local; /* 32 1 */
/* Bitfield combined with previous fields */
static const char const className /* 0 0 */
static const luaL_Reg const methodsServer /* 0 0 */
static const luaL_Reg const methodsClient /* 0 0 */
void NodeMetaRef(class NodeMetaRef *, const class NodeMetaRef &);
class NodeMetaRef * checkobject(lua_State *, int);
virtual class Metadata * getmeta(class NodeMetaRef *, bool);
virtual void clearMeta(class NodeMetaRef *);
virtual void reportMetadataChange(class NodeMetaRef *);
virtual void handleToTable(class NodeMetaRef *, lua_State *, class Metadata *);
virtual bool handleFromTable(class NodeMetaRef *, lua_State *, int, class Metadata *);
int gc_object(lua_State *);
int l_get_inventory(lua_State *);
void NodeMetaRef(class NodeMetaRef *, v3s16, class ServerEnvironment *);
void NodeMetaRef(class NodeMetaRef *, class Metadata *);
virtual void ~NodeMetaRef(class NodeMetaRef *, int);
void create(lua_State *, v3s16, class ServerEnvironment *);
void createClient(lua_State *, class Metadata *);
void RegisterCommon(lua_State *);
void Register(lua_State *);
void RegisterClient(lua_State *);
/* vtable has 5 entries: {
[3] = getmeta((null)),
[4] = clearMeta((null)),
[2] = reportMetadataChange((null)),
[5] = handleToTable((null)),
[6] = handleFromTable((null)),
} */
/* size: 40, cachelines: 1, members: 5, static members: 3 */
/* sum members: 30, holes: 2, sum holes: 10 */
/* padding: 7 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 40 != 30 + 10(holes), diff = 0 */
};
class NodeTimerRef : public ModApiBase {
public:
/* class ModApiBase <ancestor>; */ /* 0 0 */
v3s16 m_p; /* 0 6 */
/* XXX 2 bytes hole, try to pack */
class ServerEnvironment * m_env; /* 8 8 */
/* Bitfield combined with previous fields */
static charconst className[0] /* 0 0 */
static luaL_Regconst methods[0] /* 0 0 */
int gc_object(lua_State *);
class NodeTimerRef * checkobject(lua_State *, int);
int l_set(lua_State *);
int l_start(lua_State *);
int l_stop(lua_State *);
int l_is_started(lua_State *);
int l_get_timeout(lua_State *);
int l_get_elapsed(lua_State *);
void NodeTimerRef(class NodeTimerRef *, v3s16, class ServerEnvironment *);
void ~NodeTimerRef(class NodeTimerRef *, int);
void create(lua_State *, v3s16, class ServerEnvironment *);
void set_null(lua_State *);
void Register(lua_State *);
/* size: 16, cachelines: 1, members: 3, static members: 2 */
/* sum members: 14, holes: 1, sum holes: 2 */
/* last cacheline: 16 bytes */
};
class PseudoRandom {
public:
static u32const RANDOM_RANGE = 32767; /* 0 0 */
int m_next; /* 0 4 */
void PseudoRandom(class PseudoRandom *, int);
void seed(class PseudoRandom *, int);
int next(class PseudoRandom *);
int range(class PseudoRandom *, int, int);
/* size: 4, cachelines: 1, members: 1, static members: 1 */
/* last cacheline: 4 bytes */
};
class PcgRandom {
public:
static s32const RANDOM_MIN = 18446744071562067968; /* 0 0 */
static s32const RANDOM_MAX = 2147483647; /* 0 0 */
static u32const RANDOM_RANGE = 18446744073709551615; /* 0 0 */
u64 m_state; /* 0 8 */
u64 m_inc; /* 8 8 */
void PcgRandom(class PcgRandom *, u64, u64);
void seed(class PcgRandom *, u64, u64);
u32 next(class PcgRandom *);
u32 range(class PcgRandom *, u32);
s32 range(class PcgRandom *, s32, s32);
void bytes(class PcgRandom *, void *, size_t);
s32 randNormalDist(class PcgRandom *, s32, s32, int);
/* size: 16, cachelines: 1, members: 2, static members: 3 */
/* last cacheline: 16 bytes */
};
class LuaPseudoRandom : public ModApiBase {
public:
/* class ModApiBase <ancestor>; */ /* 0 0 */
class PseudoRandom m_pseudo; /* 0 4 */
static charconst className[0] /* 0 0 */
static luaL_Regconst methods[0] /* 0 0 */
int gc_object(lua_State *);
int l_next(lua_State *);
void LuaPseudoRandom(class LuaPseudoRandom *, s32);
int create_object(lua_State *);
class LuaPseudoRandom * checkobject(lua_State *, int);
void Register(lua_State *);
/* size: 4, cachelines: 1, members: 2, static members: 2 */
/* last cacheline: 4 bytes */
};
class LuaPcgRandom : public ModApiBase {
public:
/* class ModApiBase <ancestor>; */ /* 0 0 */
class PcgRandom m_rnd; /* 0 16 */
static charconst className[0] /* 0 0 */
static luaL_Regconst methods[0] /* 0 0 */
int gc_object(lua_State *);
int l_next(lua_State *);
int l_rand_normal_dist(lua_State *);
void LuaPcgRandom(class LuaPcgRandom *, u64);
void LuaPcgRandom(class LuaPcgRandom *, u64, u64);
int create_object(lua_State *);
class LuaPcgRandom * checkobject(lua_State *, int);
void Register(lua_State *);
/* size: 16, cachelines: 1, members: 2, static members: 2 */
/* last cacheline: 16 bytes */
};
class LuaSecureRandom : public ModApiBase {
public:
/* class ModApiBase <ancestor>; */ /* 0 0 */
static size_tconst RAND_BUF_SIZE = 2048; /* 0 0 */
static charconst className[0] /* 0 0 */
static luaL_Regconst methods[0] /* 0 0 */
u32 m_rand_idx; /* 0 4 */
char m_rand_buf[2048]; /* 4 2048 */
int gc_object(lua_State *);
int l_next_bytes(lua_State *);
bool fillRandBuf(class LuaSecureRandom *);
int create_object(lua_State *);
class LuaSecureRandom * checkobject(lua_State *, int);
void Register(lua_State *);
/* size: 2052, cachelines: 33, members: 3, static members: 3 */
/* last cacheline: 4 bytes */
};
class InvalidNoiseParamsException : public BaseException {
public:
/* class BaseException <ancestor>; */ /* 0 40 */
void InvalidNoiseParamsException(class InvalidNoiseParamsException *);
void InvalidNoiseParamsException(class InvalidNoiseParamsException *, const string &);
virtual void ~InvalidNoiseParamsException(class InvalidNoiseParamsException *, int);
/* size: 40, cachelines: 1, members: 1 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 40 != 0 + 0(holes), diff = 40 */
};
class ModApiParticles : public ModApiBase {
public:
/* class ModApiBase <ancestor>; */ /* 0 0 */
int l_add_particle(lua_State *);
int l_add_particlespawner(lua_State *);
int l_delete_particlespawner(lua_State *);
void Initialize(lua_State *, int);
/* size: 1, cachelines: 1, members: 1 */
/* padding: 1 */
/* last cacheline: 1 bytes */
};
class ModApiRollback : public ModApiBase {
public:
/* class ModApiBase <ancestor>; */ /* 0 0 */
int l_rollback_get_node_actions(lua_State *);
int l_rollback_revert_actions_by(lua_State *);
void Initialize(lua_State *, int);
/* size: 1, cachelines: 1, members: 1 */
/* padding: 1 */
/* last cacheline: 1 bytes */
};
class ModApiServer : public ModApiBase {
public:
/* class ModApiBase <ancestor>; */ /* 0 0 */
int l_request_shutdown(lua_State *);
int l_get_server_status(lua_State *);
int l_get_server_uptime(lua_State *);
int l_get_worldpath(lua_State *);
int l_is_singleplayer(lua_State *);
int l_get_current_modname(lua_State *);
int l_get_modpath(lua_State *);
int l_get_modnames(lua_State *);
int l_print(lua_State *);
int l_chat_send_all(lua_State *);
int l_chat_send_player(lua_State *);
int l_show_formspec(lua_State *);
int l_sound_play(lua_State *);
int l_sound_stop(lua_State *);
int l_get_player_privs(lua_State *);
int l_get_player_ip(lua_State *);
int l_get_player_information(lua_State *);
int l_get_ban_list(lua_State *);
int l_get_ban_description(lua_State *);
int l_ban_player(lua_State *);
int l_unban_player_or_ip(lua_State *);
int l_kick_player(lua_State *);
int l_notify_authentication_modified(lua_State *);
int l_get_last_run_mod(lua_State *);
int l_set_last_run_mod(lua_State *);
int l_cause_error(lua_State *);
void Initialize(lua_State *, int);
/* size: 1, cachelines: 1, members: 1 */
/* padding: 1 */
/* last cacheline: 1 bytes */
};
class LuaSettings : public ModApiBase {
public:
/* class ModApiBase <ancestor>; */ /* 0 0 */
static charconst className[0] /* 0 0 */
static luaL_Regconst methods[0] /* 0 0 */
bool m_write_allowed; /* 0 1 */
/* XXX 7 bytes hole, try to pack */
class Settings * m_settings; /* 8 8 */
string m_filename; /* 16 32 */
int gc_object(lua_State *);
int l_get(lua_State *);
int l_get_bool(lua_State *);
int l_set(lua_State *);
int l_remove(lua_State *);
int l_get_names(lua_State *);
int l_write(lua_State *);
int l_to_table(lua_State *);
void LuaSettings(class LuaSettings *, const char *, bool);
void ~LuaSettings(class LuaSettings *, int);
int create_object(lua_State *);
class LuaSettings * checkobject(lua_State *, int);
void Register(lua_State *);
/* size: 48, cachelines: 1, members: 4, static members: 2 */
/* sum members: 41, holes: 1, sum holes: 7 */
/* last cacheline: 48 bytes */
};
class ModApiSound : public ModApiBase {
public:
/* class ModApiBase <ancestor>; */ /* 0 0 */
int l_sound_play(lua_State *);
int l_sound_stop(lua_State *);
void Initialize(lua_State *, int);
/* size: 1, cachelines: 1, members: 1 */
/* padding: 1 */
/* last cacheline: 1 bytes */
};
class ModApiStorage : public ModApiBase {
public:
/* class ModApiBase <ancestor>; */ /* 0 0 */
protected:
int l_get_mod_storage(lua_State *);
public:
void Initialize(lua_State *, int);
/* size: 1, cachelines: 1, members: 1 */
/* padding: 1 */
/* last cacheline: 1 bytes */
};
class StorageRef : public MetaDataRef {
public:
/* class MetaDataRef <ancestor>; */ /* 0 0 */
/* XXX 8 bytes hole, try to pack */
class ModMetadata * m_object; /* 8 8 */
/* Bitfield combined with previous fields */
static const char const className /* 0 0 */
static const luaL_Reg const methods /* 0 0 */
void StorageRef(class StorageRef *, const class StorageRef &);
virtual class Metadata * getmeta(class StorageRef *, bool);
virtual void clearMeta(class StorageRef *);
int gc_object(lua_State *);
void StorageRef(class StorageRef *, class ModMetadata *);
virtual void ~StorageRef(class StorageRef *, int);
void Register(lua_State *);
void create(lua_State *, class ModMetadata *);
class StorageRef * checkobject(lua_State *, int);
class ModMetadata * getobject(class StorageRef *);
/* vtable has 2 entries: {
[3] = getmeta((null)),
[4] = clearMeta((null)),
} */
/* size: 16, cachelines: 1, members: 2, static members: 2 */
/* sum members: 8, holes: 1, sum holes: 8 */
/* last cacheline: 16 bytes */
};
class ModApiUtil : public ModApiBase {
public:
/* class ModApiBase <ancestor>; */ /* 0 0 */
int l_log(lua_State *);
int l_get_us_time(lua_State *);
int l_setting_set(lua_State *);
int l_setting_get(lua_State *);
int l_setting_setbool(lua_State *);
int l_setting_getbool(lua_State *);
int l_setting_save(lua_State *);
int l_parse_json(lua_State *);
int l_write_json(lua_State *);
int l_get_dig_params(lua_State *);
int l_get_hit_params(lua_State *);
int l_check_password_entry(lua_State *);
int l_get_password_hash(lua_State *);
int l_is_yes(lua_State *);
int l_get_builtin_path(lua_State *);
int l_compress(lua_State *);
int l_decompress(lua_State *);
int l_mkdir(lua_State *);
int l_get_dir_list(lua_State *);
int l_request_insecure_environment(lua_State *);
int l_encode_base64(lua_State *);
int l_decode_base64(lua_State *);
int l_get_version(lua_State *);
void Initialize(lua_State *, int);
void InitializeClient(lua_State *, int);
void InitializeAsync(class AsyncEngine &);
/* size: 1, cachelines: 1, members: 1 */
/* padding: 1 */
/* last cacheline: 1 bytes */
};
class MainMenuScripting : virtual public ScriptApiBase, public ScriptApiMainMenu {
public:
/* --- cacheline 67108863 boundary (4294967232 bytes) was 63 bytes ago --- */
/* class ScriptApiBase <ancestor>; */ /* 4294967295 0 */
/* class ScriptApiMainMenu <ancestor>; */ /* 0 136 */
/* XXX last struct has 128 bytes of padding */
class AsyncEngine asyncEngine; /* 8 368 */
void MainMenuScripting(class MainMenuScripting *, int, const void * *, );
void MainMenuScripting(class MainMenuScripting *, int, const void * *, const class MainMenuScripting &);
void MainMenuScripting(class MainMenuScripting *, int, const void * *, class GUIEngine *);
void step(class MainMenuScripting *);
unsigned int queueAsync(class MainMenuScripting *, const string &, const string &);
void initializeModApi(class MainMenuScripting *, lua_State *, int);
virtual void ~MainMenuScripting(class MainMenuScripting *, int, const void * *);
/* size: 504, cachelines: 8, members: 3 */
/* padding: 128 */
/* paddings: 1, sum paddings: 128 */
/* last cacheline: 56 bytes */
/* BRAIN FART ALERT! 504 != 368 + 0(holes), diff = 136 */
};
class ScriptApiMainMenu : virtual public ScriptApiBase {
public:
/* --- cacheline 67108863 boundary (4294967232 bytes) was 63 bytes ago --- */
/* class ScriptApiBase <ancestor>; */ /* 4294967295 0 */
int ()(void) * * _vptr.ScriptApiMainMenu; /* 0 8 */
void ScriptApiMainMenu(class ScriptApiMainMenu *, int, const void * *, );
void ScriptApiMainMenu(class ScriptApiMainMenu *, int, const void * *, const class ScriptApiMainMenu &);
void ScriptApiMainMenu(class ScriptApiMainMenu *, int, const void * *);
void setMainMenuData(class ScriptApiMainMenu *, class MainMenuDataForScript *);
void handleMainMenuEvent(class ScriptApiMainMenu *, string);
void handleMainMenuButtons(class ScriptApiMainMenu *, const StringMap &);
virtual void ~ScriptApiMainMenu(class ScriptApiMainMenu *, int, const void * *);
/* size: 136, cachelines: 3, members: 2 */
/* padding: 128 */
/* last cacheline: 8 bytes */
};
class ServerScripting : virtual public ScriptApiBase, public ScriptApiDetached, public ScriptApiEntity, public ScriptApiEnv, public ScriptApiNode, public ScriptApiPlayer, public ScriptApiServer, public ScriptApiSecurity {
public:
/* --- cacheline 67108863 boundary (4294967232 bytes) was 63 bytes ago --- */
/* class ScriptApiBase <ancestor>; */ /* 4294967295 0 */
/* class ScriptApiDetached <ancestor>; */ /* 0 136 */
/* XXX last struct has 128 bytes of padding */
/* class ScriptApiEntity <ancestor>; */ /* 8 136 */
/* XXX last struct has 128 bytes of padding */
/* class ScriptApiEnv <ancestor>; */ /* 16 136 */
/* XXX last struct has 128 bytes of padding */
/* class ScriptApiNode <ancestor>; */ /* 24 0 */
/* XXX 8 bytes hole, try to pack */
/* class ScriptApiPlayer <ancestor>; */ /* 32 0 */
/* XXX 8 bytes hole, try to pack */
/* class ScriptApiServer <ancestor>; */ /* 40 136 */
/* XXX last struct has 128 bytes of padding */
/* class ScriptApiSecurity <ancestor>; */ /* 48 136 */
/* XXX last struct has 128 bytes of padding */
void ServerScripting(class ServerScripting *, int, const void * *, );
void ServerScripting(class ServerScripting *, int, const void * *, const class ServerScripting &);
void ServerScripting(class ServerScripting *, int, const void * *, class Server *);
void InitializeModApi(class ServerScripting *, lua_State *, int);
virtual void ~ServerScripting(class ServerScripting *, int, const void * *);
/* size: 184, cachelines: 3, members: 8 */
/* sum members: 0, holes: 2, sum holes: 16 */
/* paddings: 5, sum paddings: 640 */
/* last cacheline: 56 bytes */
/* BRAIN FART ALERT! 184 != 0 + 16(holes), diff = 168 */
};
class ScriptApiDetached : virtual public ScriptApiBase {
public:
/* --- cacheline 67108863 boundary (4294967232 bytes) was 63 bytes ago --- */
/* class ScriptApiBase <ancestor>; */ /* 4294967295 0 */
int ()(void) * * _vptr.ScriptApiDetached; /* 0 8 */
void ScriptApiDetached(class ScriptApiDetached *, int, const void * *, );
void ScriptApiDetached(class ScriptApiDetached *, int, const void * *, const class ScriptApiDetached &);
void ScriptApiDetached(class ScriptApiDetached *, int, const void * *);
int detached_inventory_AllowMove(class ScriptApiDetached *, const string &, const string &, int, const string &, int, int, class ServerActiveObject *);
int detached_inventory_AllowPut(class ScriptApiDetached *, const string &, const string &, int, class ItemStack &, class ServerActiveObject *);
int detached_inventory_AllowTake(class ScriptApiDetached *, const string &, const string &, int, class ItemStack &, class ServerActiveObject *);
void detached_inventory_OnMove(class ScriptApiDetached *, const string &, const string &, int, const string &, int, int, class ServerActiveObject *);
void detached_inventory_OnPut(class ScriptApiDetached *, const string &, const string &, int, class ItemStack &, class ServerActiveObject *);
void detached_inventory_OnTake(class ScriptApiDetached *, const string &, const string &, int, class ItemStack &, class ServerActiveObject *);
bool getDetachedInventoryCallback(class ScriptApiDetached *, const string &, const char *);
virtual void ~ScriptApiDetached(class ScriptApiDetached *, int, const void * *);
/* size: 136, cachelines: 3, members: 2 */
/* padding: 128 */
/* last cacheline: 8 bytes */
};
class ScriptApiEntity : virtual public ScriptApiBase {
public:
/* --- cacheline 67108863 boundary (4294967232 bytes) was 63 bytes ago --- */
/* class ScriptApiBase <ancestor>; */ /* 4294967295 0 */
int ()(void) * * _vptr.ScriptApiEntity; /* 0 8 */
void ScriptApiEntity(class ScriptApiEntity *, int, const void * *, );
void ScriptApiEntity(class ScriptApiEntity *, int, const void * *, const class ScriptApiEntity &);
void ScriptApiEntity(class ScriptApiEntity *, int, const void * *);
bool luaentity_Add(class ScriptApiEntity *, u16, const char *);
void luaentity_Activate(class ScriptApiEntity *, u16, const string &, u32);
void luaentity_Remove(class ScriptApiEntity *, u16);
string luaentity_GetStaticdata(class ScriptApiEntity *, u16);
void luaentity_GetProperties(class ScriptApiEntity *, u16, class ObjectProperties *);
void luaentity_Step(class ScriptApiEntity *, u16, float);
bool luaentity_Punch(class ScriptApiEntity *, u16, class ServerActiveObject *, float, const class ToolCapabilities *, v3f, s16);
void luaentity_Rightclick(class ScriptApiEntity *, u16, class ServerActiveObject *);
virtual void ~ScriptApiEntity(class ScriptApiEntity *, int, const void * *);
/* size: 136, cachelines: 3, members: 2 */
/* padding: 128 */
/* last cacheline: 8 bytes */
};
class ScriptApiEnv : virtual public ScriptApiBase {
public:
/* --- cacheline 67108863 boundary (4294967232 bytes) was 63 bytes ago --- */
/* class ScriptApiBase <ancestor>; */ /* 4294967295 0 */
int ()(void) * * _vptr.ScriptApiEnv; /* 0 8 */
void ScriptApiEnv(class ScriptApiEnv *, int, const void * *, );
void ScriptApiEnv(class ScriptApiEnv *, int, const void * *, const class ScriptApiEnv &);
void ScriptApiEnv(class ScriptApiEnv *, int, const void * *);
void environment_Step(class ScriptApiEnv *, float);
void environment_OnGenerated(class ScriptApiEnv *, v3s16, v3s16, u32);
void player_event(class ScriptApiEnv *, class ServerActiveObject *, const string &);
void on_emerge_area_completion(class ScriptApiEnv *, v3s16, int, class ScriptCallbackState *);
void initializeEnvironment(class ScriptApiEnv *, class ServerEnvironment *);
virtual void ~ScriptApiEnv(class ScriptApiEnv *, int, const void * *);
/* size: 136, cachelines: 3, members: 2 */
/* padding: 128 */
/* last cacheline: 8 bytes */
};
class ScriptApiServer : virtual public ScriptApiBase {
public:
/* --- cacheline 67108863 boundary (4294967232 bytes) was 63 bytes ago --- */
/* class ScriptApiBase <ancestor>; */ /* 4294967295 0 */
int ()(void) * * _vptr.ScriptApiServer; /* 0 8 */
void ScriptApiServer(class ScriptApiServer *, int, const void * *, );
void ScriptApiServer(class ScriptApiServer *, int, const void * *, const class ScriptApiServer &);
void ScriptApiServer(class ScriptApiServer *, int, const void * *);
bool on_chat_message(class ScriptApiServer *, const string &, const string &);
void on_shutdown(class ScriptApiServer *);
bool getAuth(class ScriptApiServer *, const string &, string *, class set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string);
void createAuth(class ScriptApiServer *, const string &, const string &);
bool setPassword(class ScriptApiServer *, const string &, const string &);
void getAuthHandler(class ScriptApiServer *);
void readPrivileges(class ScriptApiServer *, int, class set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string);
virtual void ~ScriptApiServer(class ScriptApiServer *, int, const void * *);
/* size: 136, cachelines: 3, members: 2 */
/* padding: 128 */
/* last cacheline: 8 bytes */
};
class Event {
class condition_variable cv; /* 0 48 */
Mutex mutex; /* 48 40 */
/* --- cacheline 1 boundary (64 bytes) was 24 bytes ago --- */
bool notified; /* 88 1 */
public:
void Event(class Event *);
void wait(class Event *);
void signal(class Event *);
/* size: 96, cachelines: 2, members: 3 */
/* padding: 7 */
/* last cacheline: 32 bytes */
};
struct timeval {
__time_t tv_sec; /* 0 8 */
__suseconds_t tv_usec; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
};
struct sched_param {
int __sched_priority; /* 0 4 */
/* size: 4, cachelines: 1, members: 1 */
/* last cacheline: 4 bytes */
};
class Thread {
public:
int ()(void) * * _vptr.Thread; /* 0 8 */
protected:
string m_name; /* 8 32 */
void * m_retval; /* 40 8 */
bool m_joinable; /* 48 1 */
Atomic m_request_stop; /* 49 1 */
Atomic m_running; /* 50 1 */
/* XXX 5 bytes hole, try to pack */
Mutex m_mutex; /* 56 40 */
/* --- cacheline 1 boundary (64 bytes) was 32 bytes ago --- */
Mutex m_start_finished_mutex; /* 96 40 */
/* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */
class thread * m_thread_obj; /* 136 8 */
public:
void Thread(class Thread *, const string &);
virtual void ~Thread(class Thread *, int);
bool start(class Thread *);
bool stop(class Thread *);
bool kill(class Thread *);
bool wait(class Thread *);
bool isCurrentThread(class Thread *);
bool isRunning(class Thread *);
bool stopRequested(class Thread *);
threadid_t getThreadId(class Thread *);
threadhandle_t getThreadHandle(class Thread *);
bool getReturnValue(class Thread *, void * *);
bool bindToProcessor(class Thread *, unsigned int);
bool setPriority(class Thread *, int);
void setName(const string &);
unsigned int getNumberOfProcessors(void);
protected:
virtual void * run(class Thread *);
void * threadProc(void *);
void Thread(class Thread *, const class Thread &);
class Thread & operator=(class Thread *, const class Thread &);
/* vtable has 1 entries: {
[2] = run((null)),
} */
/* size: 144, cachelines: 3, members: 9 */
/* sum members: 139, holes: 1, sum holes: 5 */
/* last cacheline: 16 bytes */
};
class DebugStacker {
class DebugStack * m_stack; /* 0 8 */
bool m_overflowed; /* 8 1 */
public:
void DebugStacker(class DebugStacker *, const char *);
void ~DebugStacker(class DebugStacker *, int);
/* size: 16, cachelines: 1, members: 2 */
/* padding: 7 */
/* last cacheline: 16 bytes */
};
class TestManager {
public:
class vector<TestBase*, std::allocator<TestBase*> > & getTestModules(void);
void registerTestModule(class TestBase *);
/* size: 1, cachelines: 0, members: 0 */
/* last cacheline: 1 bytes */
};
class TestGameDef : public IGameDef {
public:
/* class IGameDef <ancestor>; */ /* 0 8 */
class IItemDefManager * m_itemdef; /* 8 8 */
class INodeDefManager * m_nodedef; /* 16 8 */
class ICraftDefManager * m_craftdef; /* 24 8 */
class ITextureSource * m_texturesrc; /* 32 8 */
class IShaderSource * m_shadersrc; /* 40 8 */
class ISoundManager * m_soundmgr; /* 48 8 */
class MtEventManager * m_eventmgr; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
class ISceneManager * m_scenemgr; /* 64 8 */
class IRollbackManager * m_rollbackmgr; /* 72 8 */
class EmergeManager * m_emergemgr; /* 80 8 */
void TestGameDef(class TestGameDef *, const class TestGameDef &);
void TestGameDef(class TestGameDef *);
void ~TestGameDef(class TestGameDef *, int);
virtual class IItemDefManager * getItemDefManager(class TestGameDef *);
virtual class INodeDefManager * getNodeDefManager(class TestGameDef *);
virtual class ICraftDefManager * getCraftDefManager(class TestGameDef *);
class ITextureSource * getTextureSource(class TestGameDef *);
class IShaderSource * getShaderSource(class TestGameDef *);
class ISoundManager * getSoundManager(class TestGameDef *);
virtual class MtEventManager * getEventManager(class TestGameDef *);
class ISceneManager * getSceneManager(class TestGameDef *);
virtual class IRollbackManager * getRollbackManager(class TestGameDef *);
class EmergeManager * getEmergeManager(class TestGameDef *);
class IAnimatedMesh * getMesh(class TestGameDef *, const string &);
bool checkLocalPrivilege(class TestGameDef *, const string &);
virtual u16 allocateUnknownNodeId(class TestGameDef *, const string &);
void defineSomeNodes(class TestGameDef *);
virtual const class vector<ModSpec, std::allocator<ModSpec> > & getMods(const class TestGameDef *);
virtual const class ModSpec * getModSpec(const class TestGameDef *, const string &);
virtual string getModStoragePath(const class TestGameDef *);
virtual bool registerModStorage(class TestGameDef *, class ModMetadata *);
virtual void unregisterModStorage(class TestGameDef *, const string &);
/* vtable has 11 entries: {
[0] = getItemDefManager((null)),
[1] = getNodeDefManager((null)),
[2] = getCraftDefManager((null)),
[4] = getEventManager((null)),
[5] = getRollbackManager((null)),
[3] = allocateUnknownNodeId((null)),
[6] = getMods((null)),
[7] = getModSpec((null)),
[9] = getModStoragePath((null)),
[10] = registerModStorage((null)),
[11] = unregisterModStorage((null)),
} */
/* size: 88, cachelines: 2, members: 11 */
/* last cacheline: 24 bytes */
/* BRAIN FART ALERT! 88 != 80 + 0(holes), diff = 8 */
};
class IGameDef {
public:
int ()(void) * * _vptr.IGameDef; /* 0 8 */
void ~IGameDef(class IGameDef *, int);
void IGameDef(class IGameDef *, );
void IGameDef(class IGameDef *, const class IGameDef &);
void IGameDef(class IGameDef *);
virtual class IItemDefManager * getItemDefManager(class IGameDef *);
virtual class INodeDefManager * getNodeDefManager(class IGameDef *);
virtual class ICraftDefManager * getCraftDefManager(class IGameDef *);
virtual u16 allocateUnknownNodeId(class IGameDef *, const string &);
virtual class MtEventManager * getEventManager(class IGameDef *);
virtual class IRollbackManager * getRollbackManager(class IGameDef *);
class IItemDefManager * idef(class IGameDef *);
class INodeDefManager * ndef(class IGameDef *);
class ICraftDefManager * cdef(class IGameDef *);
class MtEventManager * event(class IGameDef *);
class IRollbackManager * rollback(class IGameDef *);
virtual const class vector<ModSpec, std::allocator<ModSpec> > & getMods(const class IGameDef *);
virtual const class ModSpec * getModSpec(const class IGameDef *, const string &);
virtual string getWorldPath(const class IGameDef *);
virtual string getModStoragePath(const class IGameDef *);
virtual bool registerModStorage(class IGameDef *, class ModMetadata *);
virtual void unregisterModStorage(class IGameDef *, const string &);
/* vtable has 12 entries: {
[0] = getItemDefManager((null)),
[1] = getNodeDefManager((null)),
[2] = getCraftDefManager((null)),
[3] = allocateUnknownNodeId((null)),
[4] = getEventManager((null)),
[5] = getRollbackManager((null)),
[6] = getMods((null)),
[7] = getModSpec((null)),
[8] = getWorldPath((null)),
[9] = getModStoragePath((null)),
[10] = registerModStorage((null)),
[11] = unregisterModStorage((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
};
class TestFailedException : public exception {
public:
/* class exception <ancestor>; */ /* 0 0 */
void TestFailedException(class TestFailedException *, );
void TestFailedException(class TestFailedException *, const class TestFailedException &);
void TestFailedException(class TestFailedException *);
virtual void ~TestFailedException(class TestFailedException *, int);
/* size: 8, cachelines: 1, members: 1 */
/* padding: 8 */
/* last cacheline: 8 bytes */
};
class TestBase {
public:
int ()(void) * * _vptr.TestBase; /* 0 8 */
u32 num_tests_failed; /* 8 4 */
u32 num_tests_run; /* 12 4 */
string m_test_dir; /* 16 32 */
void ~TestBase(class TestBase *, int);
void TestBase(class TestBase *, );
void TestBase(class TestBase *, const class TestBase &);
void TestBase(class TestBase *);
bool testModule(class TestBase *, class IGameDef *);
string getTestTempDirectory(class TestBase *);
string getTestTempFile(class TestBase *);
virtual void runTests(class TestBase *, class IGameDef *);
virtual const char * getName(class TestBase *);
/* vtable has 2 entries: {
[0] = runTests((null)),
[1] = getName((null)),
} */
/* size: 48, cachelines: 1, members: 4 */
/* last cacheline: 48 bytes */
};
class TestAreaStore : public TestBase {
public:
/* class TestBase <ancestor>; */ /* 0 48 */
void TestAreaStore(class TestAreaStore *, );
void TestAreaStore(class TestAreaStore *, const class TestAreaStore &);
void TestAreaStore(class TestAreaStore *);
virtual const char * getName(class TestAreaStore *);
virtual void runTests(class TestAreaStore *, class IGameDef *);
void genericStoreTest(class TestAreaStore *, class AreaStore *);
void testVectorStore(class TestAreaStore *);
void testSpatialStore(class TestAreaStore *);
void testSerialization(class TestAreaStore *);
void ~TestAreaStore(class TestAreaStore *, int);
/* vtable has 2 entries: {
[1] = getName((null)),
[0] = runTests((null)),
} */
/* size: 48, cachelines: 1, members: 1 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 48 != 0 + 0(holes), diff = 48 */
};
class TestCollision : public TestBase {
public:
/* class TestBase <ancestor>; */ /* 0 48 */
void TestCollision(class TestCollision *, );
void TestCollision(class TestCollision *, const class TestCollision &);
void TestCollision(class TestCollision *);
virtual const char * getName(class TestCollision *);
virtual void runTests(class TestCollision *, class IGameDef *);
void testAxisAlignedCollision(class TestCollision *);
void ~TestCollision(class TestCollision *, int);
/* vtable has 2 entries: {
[1] = getName((null)),
[0] = runTests((null)),
} */
/* size: 48, cachelines: 1, members: 1 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 48 != 0 + 0(holes), diff = 48 */
};
class TestCompression : public TestBase {
public:
/* class TestBase <ancestor>; */ /* 0 48 */
void TestCompression(class TestCompression *, );
void TestCompression(class TestCompression *, const class TestCompression &);
void TestCompression(class TestCompression *);
virtual const char * getName(class TestCompression *);
virtual void runTests(class TestCompression *, class IGameDef *);
void testRLECompression(class TestCompression *);
void testZlibCompression(class TestCompression *);
void testZlibLargeData(class TestCompression *);
void ~TestCompression(class TestCompression *, int);
/* vtable has 2 entries: {
[1] = getName((null)),
[0] = runTests((null)),
} */
/* size: 48, cachelines: 1, members: 1 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 48 != 0 + 0(holes), diff = 48 */
};
class PrngException : public BaseException {
public:
/* class BaseException <ancestor>; */ /* 0 40 */
void PrngException(class PrngException *, );
void PrngException(class PrngException *, const class PrngException &);
void PrngException(class PrngException *, const string &);
virtual void ~PrngException(class PrngException *, int);
/* size: 40, cachelines: 1, members: 1 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 40 != 0 + 0(holes), diff = 40 */
};
class TestConnection : public TestBase {
public:
/* class TestBase <ancestor>; */ /* 0 48 */
void TestConnection(class TestConnection *, );
void TestConnection(class TestConnection *, const class TestConnection &);
void TestConnection(class TestConnection *);
virtual const char * getName(class TestConnection *);
virtual void runTests(class TestConnection *, class IGameDef *);
void testHelpers(class TestConnection *);
void testConnectSendReceive(class TestConnection *);
void ~TestConnection(class TestConnection *, int);
/* vtable has 2 entries: {
[1] = getName((null)),
[0] = runTests((null)),
} */
/* size: 48, cachelines: 1, members: 1 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 48 != 0 + 0(holes), diff = 48 */
};
struct Handler : PeerHandler {
/* class PeerHandler <ancestor>; */ /* 0 8 */
s32 count; /* 8 4 */
u16 last_id; /* 12 2 */
/* XXX 2 bytes hole, try to pack */
const char * name; /* 16 8 */
void Handler(class Handler *, );
void Handler(class Handler *, const class Handler &);
void Handler(class Handler *, const char *);
virtual void peerAdded(class Handler *, class Peer *);
virtual void deletingPeer(class Handler *, class Peer *, bool);
virtual void ~Handler(class Handler *, int);
/* vtable has 2 entries: {
[2] = peerAdded((null)),
[3] = deletingPeer((null)),
} */
/* size: 24, cachelines: 1, members: 4 */
/* sum members: 14, holes: 1, sum holes: 2 */
/* last cacheline: 24 bytes */
/* BRAIN FART ALERT! 24 != 14 + 2(holes), diff = 8 */
};
class ResolveError : public BaseException {
public:
/* class BaseException <ancestor>; */ /* 0 40 */
void ResolveError(class ResolveError *, const string &);
virtual void ~ResolveError(class ResolveError *, int);
/* size: 40, cachelines: 1, members: 1 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 40 != 0 + 0(holes), diff = 40 */
};
class TestFilePath : public TestBase {
public:
/* class TestBase <ancestor>; */ /* 0 48 */
void TestFilePath(class TestFilePath *, );
void TestFilePath(class TestFilePath *, const class TestFilePath &);
void TestFilePath(class TestFilePath *);
virtual const char * getName(class TestFilePath *);
virtual void runTests(class TestFilePath *, class IGameDef *);
void testIsDirDelimiter(class TestFilePath *);
void testPathStartsWith(class TestFilePath *);
void testRemoveLastPathComponent(class TestFilePath *);
void testRemoveLastPathComponentWithTrailingDelimiter(class TestFilePath *);
void testRemoveRelativePathComponent(class TestFilePath *);
void ~TestFilePath(class TestFilePath *, int);
/* vtable has 2 entries: {
[1] = getName((null)),
[0] = runTests((null)),
} */
/* size: 48, cachelines: 1, members: 1 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 48 != 0 + 0(holes), diff = 48 */
};
class TestInventory : public TestBase {
public:
/* class TestBase <ancestor>; */ /* 0 48 */
static const char * serialized_inventory /* 0 0 */
static const char * serialized_inventory_2 /* 0 0 */
void TestInventory(class TestInventory *, );
void TestInventory(class TestInventory *, const class TestInventory &);
void TestInventory(class TestInventory *);
virtual const char * getName(class TestInventory *);
virtual void runTests(class TestInventory *, class IGameDef *);
void testSerializeDeserialize(class TestInventory *, class IItemDefManager *);
void ~TestInventory(class TestInventory *, int);
/* vtable has 2 entries: {
[1] = getName((null)),
[0] = runTests((null)),
} */
/* size: 48, cachelines: 1, members: 1, static members: 2 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 48 != 0 + 0(holes), diff = 48 */
};
class TestKeycode : public TestBase {
public:
/* class TestBase <ancestor>; */ /* 0 48 */
void TestKeycode(class TestKeycode *, );
void TestKeycode(class TestKeycode *, const class TestKeycode &);
void TestKeycode(class TestKeycode *);
virtual const char * getName(class TestKeycode *);
virtual void runTests(class TestKeycode *, class IGameDef *);
void testCreateFromString(class TestKeycode *);
void testCreateFromSKeyInput(class TestKeycode *);
void testCompare(class TestKeycode *);
void ~TestKeycode(class TestKeycode *, int);
/* vtable has 2 entries: {
[1] = getName((null)),
[0] = runTests((null)),
} */
/* size: 48, cachelines: 1, members: 1 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 48 != 0 + 0(holes), diff = 48 */
};
class TestMapSettingsManager : public TestBase {
public:
/* class TestBase <ancestor>; */ /* 0 48 */
void TestMapSettingsManager(class TestMapSettingsManager *, );
void TestMapSettingsManager(class TestMapSettingsManager *, const class TestMapSettingsManager &);
void TestMapSettingsManager(class TestMapSettingsManager *);
virtual const char * getName(class TestMapSettingsManager *);
void makeUserConfig(class TestMapSettingsManager *, class Settings *);
string makeMetaFile(class TestMapSettingsManager *, bool);
virtual void runTests(class TestMapSettingsManager *, class IGameDef *);
void testMapSettingsManager(class TestMapSettingsManager *);
void testMapMetaSaveLoad(class TestMapSettingsManager *);
void testMapMetaFailures(class TestMapSettingsManager *);
void ~TestMapSettingsManager(class TestMapSettingsManager *, int);
/* vtable has 2 entries: {
[1] = getName((null)),
[0] = runTests((null)),
} */
/* size: 48, cachelines: 1, members: 1 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 48 != 0 + 0(holes), diff = 48 */
};
class TestMapNode : public TestBase {
public:
/* class TestBase <ancestor>; */ /* 0 48 */
void TestMapNode(class TestMapNode *, );
void TestMapNode(class TestMapNode *, const class TestMapNode &);
void TestMapNode(class TestMapNode *);
virtual const char * getName(class TestMapNode *);
virtual void runTests(class TestMapNode *, class IGameDef *);
void testNodeProperties(class TestMapNode *, class INodeDefManager *);
void ~TestMapNode(class TestMapNode *, int);
/* vtable has 2 entries: {
[1] = getName((null)),
[0] = runTests((null)),
} */
/* size: 48, cachelines: 1, members: 1 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 48 != 0 + 0(holes), diff = 48 */
};
class TestNodeDef : public TestBase {
public:
/* class TestBase <ancestor>; */ /* 0 48 */
void TestNodeDef(class TestNodeDef *, );
void TestNodeDef(class TestNodeDef *, const class TestNodeDef &);
void TestNodeDef(class TestNodeDef *);
virtual const char * getName(class TestNodeDef *);
virtual void runTests(class TestNodeDef *, class IGameDef *);
void testContentFeaturesSerialization(class TestNodeDef *);
void ~TestNodeDef(class TestNodeDef *, int);
/* vtable has 2 entries: {
[1] = getName((null)),
[0] = runTests((null)),
} */
/* size: 48, cachelines: 1, members: 1 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 48 != 0 + 0(holes), diff = 48 */
};
class TestNodeResolver : public TestBase {
public:
/* class TestBase <ancestor>; */ /* 0 48 */
void TestNodeResolver(class TestNodeResolver *, );
void TestNodeResolver(class TestNodeResolver *, const class TestNodeResolver &);
void TestNodeResolver(class TestNodeResolver *);
virtual const char * getName(class TestNodeResolver *);
virtual void runTests(class TestNodeResolver *, class IGameDef *);
void testNodeResolving(class TestNodeResolver *, class IWritableNodeDefManager *);
void testPendingResolveCancellation(class TestNodeResolver *, class IWritableNodeDefManager *);
void testDirectResolveMethod(class TestNodeResolver *, class IWritableNodeDefManager *);
void testNoneResolveMethod(class TestNodeResolver *, class IWritableNodeDefManager *);
void ~TestNodeResolver(class TestNodeResolver *, int);
/* vtable has 2 entries: {
[1] = getName((null)),
[0] = runTests((null)),
} */
/* size: 48, cachelines: 1, members: 1 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 48 != 0 + 0(holes), diff = 48 */
};
class Foobaz : public NodeResolver {
public:
/* class NodeResolver <ancestor>; */ /* 0 0 */
/* XXX 74 bytes hole, try to pack */
/* --- cacheline 1 boundary (64 bytes) was 10 bytes ago --- */
content_t test_content1; /* 74 2 */
content_t test_content2; /* 76 2 */
void Foobaz(class Foobaz *, );
void Foobaz(class Foobaz *, const class Foobaz &);
void Foobaz(class Foobaz *);
virtual void resolveNodeNames(class Foobaz *);
virtual void ~Foobaz(class Foobaz *, int);
/* vtable has 1 entries: {
[2] = resolveNodeNames((null)),
} */
/* size: 80, cachelines: 2, members: 3 */
/* sum members: 4, holes: 1, sum holes: 74 */
/* padding: 2 */
/* last cacheline: 16 bytes */
};
class Foobar : public NodeResolver {
public:
/* class NodeResolver <ancestor>; */ /* 0 0 */
/* XXX 74 bytes hole, try to pack */
/* --- cacheline 1 boundary (64 bytes) was 10 bytes ago --- */
content_t test_nr_node1; /* 74 2 */
content_t test_nr_node2; /* 76 2 */
content_t test_nr_node3; /* 78 2 */
content_t test_nr_node4; /* 80 2 */
content_t test_nr_node5; /* 82 2 */
/* XXX 4 bytes hole, try to pack */
class vector<short unsigned int, std::allocator<short unsigned int> > test_nr_list; /* 88 24 */
class vector<short unsigned int, std::allocator<short unsigned int> > test_nr_list_group; /* 112 24 */
/* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */
class vector<short unsigned int, std::allocator<short unsigned int> > test_nr_list_required; /* 136 24 */
class vector<short unsigned int, std::allocator<short unsigned int> > test_nr_list_empty; /* 160 24 */
void Foobar(class Foobar *, );
void Foobar(class Foobar *, const class Foobar &);
void Foobar(class Foobar *);
virtual void resolveNodeNames(class Foobar *);
virtual void ~Foobar(class Foobar *, int);
/* vtable has 1 entries: {
[2] = resolveNodeNames((null)),
} */
/* size: 184, cachelines: 3, members: 10 */
/* sum members: 106, holes: 2, sum holes: 78 */
/* last cacheline: 56 bytes */
};
class TestNoise : public TestBase {
public:
/* class TestBase <ancestor>; */ /* 0 48 */
static const float const expected_2d_results /* 0 0 */
static const float const expected_3d_results /* 0 0 */
void TestNoise(class TestNoise *, );
void TestNoise(class TestNoise *, const class TestNoise &);
void TestNoise(class TestNoise *);
virtual const char * getName(class TestNoise *);
virtual void runTests(class TestNoise *, class IGameDef *);
void testNoise2dPoint(class TestNoise *);
void testNoise2dBulk(class TestNoise *);
void testNoise3dPoint(class TestNoise *);
void testNoise3dBulk(class TestNoise *);
void testNoiseInvalidParams(class TestNoise *);
void ~TestNoise(class TestNoise *, int);
/* vtable has 2 entries: {
[1] = getName((null)),
[0] = runTests((null)),
} */
/* size: 48, cachelines: 1, members: 1, static members: 2 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 48 != 0 + 0(holes), diff = 48 */
};
class TestObjDef : public TestBase {
public:
/* class TestBase <ancestor>; */ /* 0 48 */
void TestObjDef(class TestObjDef *, );
void TestObjDef(class TestObjDef *, const class TestObjDef &);
void TestObjDef(class TestObjDef *);
virtual const char * getName(class TestObjDef *);
virtual void runTests(class TestObjDef *, class IGameDef *);
void testHandles(class TestObjDef *);
void testAddGetSetClear(class TestObjDef *);
void ~TestObjDef(class TestObjDef *, int);
/* vtable has 2 entries: {
[1] = getName((null)),
[0] = runTests((null)),
} */
/* size: 48, cachelines: 1, members: 1 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 48 != 0 + 0(holes), diff = 48 */
};
class TestPlayer : public TestBase {
public:
/* class TestBase <ancestor>; */ /* 0 48 */
void TestPlayer(class TestPlayer *, );
void TestPlayer(class TestPlayer *, const class TestPlayer &);
void TestPlayer(class TestPlayer *);
virtual const char * getName(class TestPlayer *);
virtual void runTests(class TestPlayer *, class IGameDef *);
void testSave(class TestPlayer *, class IGameDef *);
void testLoad(class TestPlayer *, class IGameDef *);
void ~TestPlayer(class TestPlayer *, int);
/* vtable has 2 entries: {
[1] = getName((null)),
[0] = runTests((null)),
} */
/* size: 48, cachelines: 1, members: 1 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 48 != 0 + 0(holes), diff = 48 */
};
class TestProfiler : public TestBase {
public:
/* class TestBase <ancestor>; */ /* 0 48 */
void TestProfiler(class TestProfiler *, );
void TestProfiler(class TestProfiler *, const class TestProfiler &);
void TestProfiler(class TestProfiler *);
virtual const char * getName(class TestProfiler *);
virtual void runTests(class TestProfiler *, class IGameDef *);
void testProfilerAverage(class TestProfiler *);
void ~TestProfiler(class TestProfiler *, int);
/* vtable has 2 entries: {
[1] = getName((null)),
[0] = runTests((null)),
} */
/* size: 48, cachelines: 1, members: 1 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 48 != 0 + 0(holes), diff = 48 */
};
class TestRandom : public TestBase {
public:
/* class TestBase <ancestor>; */ /* 0 48 */
static const int const expected_pseudorandom_results /* 0 0 */
static const u32 const expected_pcgrandom_results /* 0 0 */
static const u8 const expected_pcgrandom_bytes_result /* 0 0 */
static const u8 const expected_pcgrandom_bytes_result2 /* 0 0 */
void TestRandom(class TestRandom *, );
void TestRandom(class TestRandom *, const class TestRandom &);
void TestRandom(class TestRandom *);
virtual const char * getName(class TestRandom *);
virtual void runTests(class TestRandom *, class IGameDef *);
void testPseudoRandom(class TestRandom *);
void testPseudoRandomRange(class TestRandom *);
void testPcgRandom(class TestRandom *);
void testPcgRandomRange(class TestRandom *);
void testPcgRandomBytes(class TestRandom *);
void testPcgRandomNormalDist(class TestRandom *);
void ~TestRandom(class TestRandom *, int);
/* vtable has 2 entries: {
[1] = getName((null)),
[0] = runTests((null)),
} */
/* size: 48, cachelines: 1, members: 1, static members: 4 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 48 != 0 + 0(holes), diff = 48 */
};
class TestSchematic : public TestBase {
public:
/* class TestBase <ancestor>; */ /* 0 48 */
static const content_t const test_schem1_data /* 0 0 */
static const content_t const test_schem2_data /* 0 0 */
static const u8 const test_schem2_prob /* 0 0 */
static const char * expected_lua_output /* 0 0 */
void TestSchematic(class TestSchematic *, );
void TestSchematic(class TestSchematic *, const class TestSchematic &);
void TestSchematic(class TestSchematic *);
virtual const char * getName(class TestSchematic *);
virtual void runTests(class TestSchematic *, class IGameDef *);
void testMtsSerializeDeserialize(class TestSchematic *, class INodeDefManager *);
void testLuaTableSerialize(class TestSchematic *, class INodeDefManager *);
void testFileSerializeDeserialize(class TestSchematic *, class INodeDefManager *);
void ~TestSchematic(class TestSchematic *, int);
/* vtable has 2 entries: {
[1] = getName((null)),
[0] = runTests((null)),
} */
/* size: 48, cachelines: 1, members: 1, static members: 4 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 48 != 0 + 0(holes), diff = 48 */
};
class BufReader {
public:
const u8 * data; /* 0 8 */
size_t size; /* 8 8 */
size_t pos; /* 16 8 */
void BufReader(class BufReader *, const u8 *, size_t);
bool getU8NoEx(class BufReader *, u8 *);
bool getU16NoEx(class BufReader *, u16 *);
bool getU32NoEx(class BufReader *, u32 *);
bool getU64NoEx(class BufReader *, u64 *);
bool getS8NoEx(class BufReader *, s8 *);
bool getS16NoEx(class BufReader *, s16 *);
bool getS32NoEx(class BufReader *, s32 *);
bool getS64NoEx(class BufReader *, s64 *);
bool getF1000NoEx(class BufReader *, f32 *);
bool getV2S16NoEx(class BufReader *, v2s16 *);
bool getV3S16NoEx(class BufReader *, v3s16 *);
bool getV2S32NoEx(class BufReader *, v2s32 *);
bool getV3S32NoEx(class BufReader *, v3s32 *);
bool getV2F1000NoEx(class BufReader *, v2f *);
bool getV3F1000NoEx(class BufReader *, v3f *);
bool getARGB8NoEx(class BufReader *, class SColor *);
bool getStringNoEx(class BufReader *, string *);
bool getWideStringNoEx(class BufReader *, wstring *);
bool getLongStringNoEx(class BufReader *, string *);
bool getRawDataNoEx(class BufReader *, void *, size_t);
u8 getU8(class BufReader *);
u16 getU16(class BufReader *);
u32 getU32(class BufReader *);
u64 getU64(class BufReader *);
s8 getS8(class BufReader *);
s16 getS16(class BufReader *);
s32 getS32(class BufReader *);
s64 getS64(class BufReader *);
f32 getF1000(class BufReader *);
v2s16 getV2S16(class BufReader *);
v3s16 getV3S16(class BufReader *);
v2s32 getV2S32(class BufReader *);
v3s32 getV3S32(class BufReader *);
v2f getV2F1000(class BufReader *);
v3f getV3F1000(class BufReader *);
class SColor getARGB8(class BufReader *);
string getString(class BufReader *);
wstring getWideString(class BufReader *);
string getLongString(class BufReader *);
void getRawData(class BufReader *, void *, size_t);
size_t remaining(class BufReader *);
/* size: 24, cachelines: 1, members: 3 */
/* last cacheline: 24 bytes */
};
class TestSerialization : public TestBase {
public:
/* class TestBase <ancestor>; */ /* 0 48 */
string teststring2; /* 48 32 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
wstring teststring2_w; /* 80 32 */
string teststring2_w_encoded; /* 112 32 */
/* Bitfield combined with previous fields */
static const u8 const test_serialized_data /* 0 0 */
void TestSerialization(class TestSerialization *, );
void TestSerialization(class TestSerialization *, const class TestSerialization &);
void TestSerialization(class TestSerialization *);
virtual const char * getName(class TestSerialization *);
virtual void runTests(class TestSerialization *, class IGameDef *);
void buildTestStrings(class TestSerialization *);
void testSerializeString(class TestSerialization *);
void testSerializeWideString(class TestSerialization *);
void testSerializeLongString(class TestSerialization *);
void testSerializeJsonString(class TestSerialization *);
void testSerializeHex(class TestSerialization *);
void testDeSerializeString(class TestSerialization *);
void testDeSerializeWideString(class TestSerialization *);
void testDeSerializeLongString(class TestSerialization *);
void testStreamRead(class TestSerialization *);
void testStreamWrite(class TestSerialization *);
void testVecPut(class TestSerialization *);
void testStringLengthLimits(class TestSerialization *);
void testBufReader(class TestSerialization *);
void ~TestSerialization(class TestSerialization *, int);
/* vtable has 2 entries: {
[1] = getName((null)),
[0] = runTests((null)),
} */
/* size: 144, cachelines: 3, members: 4, static members: 1 */
/* last cacheline: 16 bytes */
/* BRAIN FART ALERT! 144 != 96 + 0(holes), diff = 48 */
};
class TestSettings : public TestBase {
public:
/* class TestBase <ancestor>; */ /* 0 48 */
static const char * config_text_before /* 0 0 */
static stringconst config_text_after /* 0 0 */
void TestSettings(class TestSettings *, );
void TestSettings(class TestSettings *, const class TestSettings &);
void TestSettings(class TestSettings *);
virtual const char * getName(class TestSettings *);
virtual void runTests(class TestSettings *, class IGameDef *);
void testAllSettings(class TestSettings *);
void ~TestSettings(class TestSettings *, int);
/* vtable has 2 entries: {
[1] = getName((null)),
[0] = runTests((null)),
} */
/* size: 48, cachelines: 1, members: 1, static members: 2 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 48 != 0 + 0(holes), diff = 48 */
};
class TestSocket : public TestBase {
public:
/* class TestBase <ancestor>; */ /* 0 48 */
static intconst port = 30003; /* 0 0 */
void TestSocket(class TestSocket *, );
void TestSocket(class TestSocket *, const class TestSocket &);
void TestSocket(class TestSocket *);
virtual const char * getName(class TestSocket *);
virtual void runTests(class TestSocket *, class IGameDef *);
void testIPv4Socket(class TestSocket *);
void testIPv6Socket(class TestSocket *);
void ~TestSocket(class TestSocket *, int);
/* vtable has 2 entries: {
[1] = getName((null)),
[0] = runTests((null)),
} */
/* size: 48, cachelines: 1, members: 1, static members: 1 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 48 != 0 + 0(holes), diff = 48 */
};
class TestThreading : public TestBase {
public:
/* class TestBase <ancestor>; */ /* 0 48 */
void TestThreading(class TestThreading *, );
void TestThreading(class TestThreading *, const class TestThreading &);
void TestThreading(class TestThreading *);
virtual const char * getName(class TestThreading *);
virtual void runTests(class TestThreading *, class IGameDef *);
void testStartStopWait(class TestThreading *);
void testThreadKill(class TestThreading *);
void testAtomicSemaphoreThread(class TestThreading *);
void ~TestThreading(class TestThreading *, int);
/* vtable has 2 entries: {
[1] = getName((null)),
[0] = runTests((null)),
} */
/* size: 48, cachelines: 1, members: 1 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 48 != 0 + 0(holes), diff = 48 */
};
class AtomicTestThread : public Thread {
public:
/* class Thread <ancestor>; */ /* 0 0 */
/* XXX 144 bytes hole, try to pack */
/* --- cacheline 2 boundary (128 bytes) was 16 bytes ago --- */
Atomic &const val; /* 144 8 */
class Semaphore &const trigger; /* 152 8 */
void AtomicTestThread(class AtomicTestThread *, );
void AtomicTestThread(class AtomicTestThread *, const class AtomicTestThread &);
void AtomicTestThread(class AtomicTestThread *, Atomic &, class Semaphore &);
virtual void * run(class AtomicTestThread *);
virtual void ~AtomicTestThread(class AtomicTestThread *, int);
/* vtable has 1 entries: {
[2] = run((null)),
} */
/* size: 160, cachelines: 3, members: 3 */
/* sum members: 16, holes: 1, sum holes: 144 */
/* last cacheline: 32 bytes */
};
class SimpleTestThread : public Thread {
public:
/* class Thread <ancestor>; */ /* 0 0 */
/* XXX 144 bytes hole, try to pack */
/* --- cacheline 2 boundary (128 bytes) was 16 bytes ago --- */
unsigned int m_interval; /* 144 4 */
void SimpleTestThread(class SimpleTestThread *, );
void SimpleTestThread(class SimpleTestThread *, const class SimpleTestThread &);
void SimpleTestThread(class SimpleTestThread *, unsigned int);
virtual void * run(class SimpleTestThread *);
virtual void ~SimpleTestThread(class SimpleTestThread *, int);
/* vtable has 1 entries: {
[2] = run((null)),
} */
/* size: 152, cachelines: 3, members: 2 */
/* sum members: 4, holes: 1, sum holes: 144 */
/* padding: 4 */
/* last cacheline: 24 bytes */
};
class TestUtilities : public TestBase {
public:
/* class TestBase <ancestor>; */ /* 0 48 */
void TestUtilities(class TestUtilities *, );
void TestUtilities(class TestUtilities *, const class TestUtilities &);
void TestUtilities(class TestUtilities *);
virtual const char * getName(class TestUtilities *);
virtual void runTests(class TestUtilities *, class IGameDef *);
void testAngleWrapAround(class TestUtilities *);
void testLowercase(class TestUtilities *);
void testTrim(class TestUtilities *);
void testIsYes(class TestUtilities *);
void testRemoveStringEnd(class TestUtilities *);
void testUrlEncode(class TestUtilities *);
void testUrlDecode(class TestUtilities *);
void testPadString(class TestUtilities *);
void testStartsWith(class TestUtilities *);
void testStrEqual(class TestUtilities *);
void testStringTrim(class TestUtilities *);
void testStrToIntConversion(class TestUtilities *);
void testStringReplace(class TestUtilities *);
void testStringAllowed(class TestUtilities *);
void testAsciiPrintableHelper(class TestUtilities *);
void testUTF8(class TestUtilities *);
void testRemoveEscapes(class TestUtilities *);
void testWrapRows(class TestUtilities *);
void testIsNumber(class TestUtilities *);
void testIsPowerOfTwo(class TestUtilities *);
void testMyround(class TestUtilities *);
void ~TestUtilities(class TestUtilities *, int);
/* vtable has 2 entries: {
[1] = getName((null)),
[0] = runTests((null)),
} */
/* size: 48, cachelines: 1, members: 1 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 48 != 0 + 0(holes), diff = 48 */
};
class TestVoxelAlgorithms : public TestBase {
public:
/* class TestBase <ancestor>; */ /* 0 48 */
void TestVoxelAlgorithms(class TestVoxelAlgorithms *, );
void TestVoxelAlgorithms(class TestVoxelAlgorithms *, const class TestVoxelAlgorithms &);
void TestVoxelAlgorithms(class TestVoxelAlgorithms *);
virtual const char * getName(class TestVoxelAlgorithms *);
virtual void runTests(class TestVoxelAlgorithms *, class IGameDef *);
void testPropogateSunlight(class TestVoxelAlgorithms *, class INodeDefManager *);
void testClearLightAndCollectSources(class TestVoxelAlgorithms *, class INodeDefManager *);
void testVoxelLineIterator(class TestVoxelAlgorithms *, class INodeDefManager *);
void ~TestVoxelAlgorithms(class TestVoxelAlgorithms *, int);
/* vtable has 2 entries: {
[1] = getName((null)),
[0] = runTests((null)),
} */
/* size: 48, cachelines: 1, members: 1 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 48 != 0 + 0(holes), diff = 48 */
};
class InvalidPositionException : public BaseException {
public:
/* class BaseException <ancestor>; */ /* 0 40 */
void InvalidPositionException(class InvalidPositionException *, );
void InvalidPositionException(class InvalidPositionException *, const class InvalidPositionException &);
void InvalidPositionException(class InvalidPositionException *);
void InvalidPositionException(class InvalidPositionException *, const string &);
virtual void ~InvalidPositionException(class InvalidPositionException *, int);
/* size: 40, cachelines: 1, members: 1 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 40 != 0 + 0(holes), diff = 40 */
};
class TestVoxelManipulator : public TestBase {
public:
/* class TestBase <ancestor>; */ /* 0 48 */
void TestVoxelManipulator(class TestVoxelManipulator *, );
void TestVoxelManipulator(class TestVoxelManipulator *, const class TestVoxelManipulator &);
void TestVoxelManipulator(class TestVoxelManipulator *);
virtual const char * getName(class TestVoxelManipulator *);
virtual void runTests(class TestVoxelManipulator *, class IGameDef *);
void testVoxelArea(class TestVoxelManipulator *);
void testVoxelManipulator(class TestVoxelManipulator *, class INodeDefManager *);
void ~TestVoxelManipulator(class TestVoxelManipulator *, int);
/* vtable has 2 entries: {
[1] = getName((null)),
[0] = runTests((null)),
} */
/* size: 48, cachelines: 1, members: 1 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 48 != 0 + 0(holes), diff = 48 */
};
class VectorAreaStore : public AreaStore {
public:
/* class AreaStore <ancestor>; */ /* 0 168 */
/* XXX last struct has 4 bytes of padding */
/* --- cacheline 2 boundary (128 bytes) was 40 bytes ago --- */
class vector<Area*, std::allocator<Area*> > m_areas; /* 168 24 */
void VectorAreaStore(class VectorAreaStore *, );
void VectorAreaStore(class VectorAreaStore *, const class VectorAreaStore &);
void VectorAreaStore(class VectorAreaStore *);
virtual void reserve(class VectorAreaStore *, size_t);
virtual bool insertArea(class VectorAreaStore *, class Area *);
virtual bool removeArea(class VectorAreaStore *, u32);
virtual void getAreasInArea(class VectorAreaStore *, class vector<Area*, std::allocator<Area*> > *, v3s16, v3s16, bool);
protected:
virtual void getAreasForPosImpl(class VectorAreaStore *, class vector<Area*, std::allocator<Area*> > *, v3s16);
public:
virtual void ~VectorAreaStore(class VectorAreaStore *, int);
/* vtable has 5 entries: {
[2] = reserve((null)),
[3] = insertArea((null)),
[4] = removeArea((null)),
[5] = getAreasInArea((null)),
[6] = getAreasForPosImpl((null)),
} */
/* size: 192, cachelines: 3, members: 2 */
/* paddings: 1, sum paddings: 4 */
/* BRAIN FART ALERT! 192 != 24 + 0(holes), diff = 168 */
};
class SHA1 {
Uint32 H0; /* 0 4 */
Uint32 H1; /* 4 4 */
Uint32 H2; /* 8 4 */
Uint32 H3; /* 12 4 */
Uint32 H4; /* 16 4 */
unsigned char bytes[64]; /* 20 64 */
/* --- cacheline 1 boundary (64 bytes) was 20 bytes ago --- */
int unprocessedBytes; /* 84 4 */
Uint32 size; /* 88 4 */
void process(class SHA1 *);
public:
void SHA1(class SHA1 *);
void ~SHA1(class SHA1 *, int);
void addBytes(class SHA1 *, const char *, int);
unsigned char * getDigest(class SHA1 *);
Uint32 lrot(Uint32, int);
void storeBigEndianUint32(unsigned char *, Uint32);
void hexPrinter(unsigned char *, int);
/* size: 92, cachelines: 2, members: 8 */
/* last cacheline: 28 bytes */
};
class FacePositionCache {
static class unordered_map<short unsigned int, std::vector<irr::core::vector3d<short int>, std::allocator<irr::core::vector3d<short int> > >, std::hash<short unsigned int>, std::equal_to<short unsigned int>, std::allocator<std::pair<short unsigned int const, std::vector<irr::core::vector3d<short int>, std::allocator<irr::core::vector3d<short int> > > > > > m_cache /* 0 0 */
static Mutex m_cache_mutex /* 0 0 */
public:
class vector<irr::core::vector3d<short int>, std::allocator<irr::core::vector3d<short int> > > getFacePositions(u16);
void generateFacePosition(u16);
/* size: 1, cachelines: 0, members: 0, static members: 2 */
/* last cacheline: 1 bytes */
};
class Buffer<char> {
char * data; /* 0 8 */
unsigned int m_size; /* 8 4 */
public:
void Buffer(class Buffer<char> *);
void Buffer(class Buffer<char> *, unsigned int);
void Buffer(class Buffer<char> *, const class Buffer<char> &);
void Buffer(class Buffer<char> *, const char *, unsigned int);
void ~Buffer(class Buffer<char> *, int);
class Buffer<char> & operator=(class Buffer<char> *, const class Buffer<char> &);
char & operator[](const class Buffer<char> *, unsigned int);
char * operator*(const class Buffer<char> *);
unsigned int getSize(const class Buffer<char> *);
void drop(class Buffer<char> *);
/* size: 16, cachelines: 1, members: 2 */
/* padding: 4 */
/* last cacheline: 16 bytes */
};
struct SHA256state_st {
unsigned int h[8]; /* 0 32 */
unsigned int Nl; /* 32 4 */
unsigned int Nh; /* 36 4 */
unsigned int data[16]; /* 40 64 */
/* --- cacheline 1 boundary (64 bytes) was 40 bytes ago --- */
unsigned int num; /* 104 4 */
unsigned int md_len; /* 108 4 */
/* size: 112, cachelines: 2, members: 6 */
/* last cacheline: 48 bytes */
};
struct SHAstate_st {
unsigned int h0; /* 0 4 */
unsigned int h1; /* 4 4 */
unsigned int h2; /* 8 4 */
unsigned int h3; /* 12 4 */
unsigned int h4; /* 16 4 */
unsigned int Nl; /* 20 4 */
unsigned int Nh; /* 24 4 */
unsigned int data[16]; /* 28 64 */
/* --- cacheline 1 boundary (64 bytes) was 28 bytes ago --- */
unsigned int num; /* 92 4 */
/* size: 96, cachelines: 2, members: 9 */
/* last cacheline: 32 bytes */
};
struct NGHex {
const char * n_hex; /* 0 8 */
const char * g_hex; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
};
struct SRPVerifier {
SRP_HashAlgorithm hash_alg; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
NGConstant * ng; /* 8 8 */
char * username; /* 16 8 */
unsigned char * bytes_B; /* 24 8 */
int authenticated; /* 32 4 */
unsigned char M[64]; /* 36 64 */
/* --- cacheline 1 boundary (64 bytes) was 36 bytes ago --- */
unsigned char H_AMK[64]; /* 100 64 */
/* --- cacheline 2 boundary (128 bytes) was 36 bytes ago --- */
unsigned char session_key[64]; /* 164 64 */
/* size: 232, cachelines: 4, members: 8 */
/* sum members: 224, holes: 1, sum holes: 4 */
/* padding: 4 */
/* last cacheline: 40 bytes */
};
struct SRPUser {
SRP_HashAlgorithm hash_alg; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
NGConstant * ng; /* 8 8 */
mpz_t a; /* 16 16 */
mpz_t A; /* 32 16 */
mpz_t S; /* 48 16 */
/* --- cacheline 1 boundary (64 bytes) --- */
unsigned char * bytes_A; /* 64 8 */
int authenticated; /* 72 4 */
/* XXX 4 bytes hole, try to pack */
char * username; /* 80 8 */
char * username_verifier; /* 88 8 */
unsigned char * password; /* 96 8 */
size_t password_len; /* 104 8 */
unsigned char M[64]; /* 112 64 */
/* --- cacheline 2 boundary (128 bytes) was 48 bytes ago --- */
unsigned char H_AMK[64]; /* 176 64 */
/* --- cacheline 3 boundary (192 bytes) was 48 bytes ago --- */
unsigned char session_key[64]; /* 240 64 */
/* size: 304, cachelines: 5, members: 14 */
/* sum members: 296, holes: 2, sum holes: 8 */
/* last cacheline: 48 bytes */
};
class Buffer<wchar_t> {
wchar_t * data; /* 0 8 */
unsigned int m_size; /* 8 4 */
public:
void Buffer(class Buffer<wchar_t> *);
void Buffer(class Buffer<wchar_t> *, unsigned int);
void Buffer(class Buffer<wchar_t> *, const class Buffer<wchar_t> &);
void Buffer(class Buffer<wchar_t> *, const wchar_t *, unsigned int);
void ~Buffer(class Buffer<wchar_t> *, int);
class Buffer<wchar_t> & operator=(class Buffer<wchar_t> *, const class Buffer<wchar_t> &);
wchar_t & operator[](const class Buffer<wchar_t> *, unsigned int);
wchar_t * operator*(const class Buffer<wchar_t> *);
unsigned int getSize(const class Buffer<wchar_t> *);
void drop(class Buffer<wchar_t> *);
/* size: 16, cachelines: 1, members: 2 */
/* padding: 4 */
/* last cacheline: 16 bytes */
};
class SharedBuffer<char> {
char * data; /* 0 8 */
unsigned int m_size; /* 8 4 */
/* XXX 4 bytes hole, try to pack */
unsigned int * refcount; /* 16 8 */
public:
void SharedBuffer(class SharedBuffer<char> *);
void SharedBuffer(class SharedBuffer<char> *, unsigned int);
void SharedBuffer(class SharedBuffer<char> *, const class SharedBuffer<char> &);
class SharedBuffer<char> & operator=(class SharedBuffer<char> *, const class SharedBuffer<char> &);
void SharedBuffer(class SharedBuffer<char> *, const char *, unsigned int);
void SharedBuffer(class SharedBuffer<char> *, const class Buffer<char> &);
void ~SharedBuffer(class SharedBuffer<char> *, int);
char & operator[](const class SharedBuffer<char> *, unsigned int);
char * operator*(const class SharedBuffer<char> *);
unsigned int getSize(const class SharedBuffer<char> *);
class Buffer<char> operator Buffer<char>(const class SharedBuffer<char> *);
void drop(class SharedBuffer<char> *);
/* size: 24, cachelines: 1, members: 3 */
/* sum members: 20, holes: 1, sum holes: 4 */
/* last cacheline: 24 bytes */
};
struct ColorContainer {
class map<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, std::less<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int> > > colors; /* 0 48 */
void ColorContainer(class ColorContainer *);
void ~ColorContainer(class ColorContainer *, int);
/* size: 48, cachelines: 1, members: 1 */
/* last cacheline: 48 bytes */
};
class BanManager {
Mutex m_mutex; /* 0 40 */
string m_banfilepath; /* 40 32 */
/* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
StringMap m_ips; /* 72 56 */
/* --- cacheline 2 boundary (128 bytes) --- */
bool m_modified; /* 128 1 */
public:
void BanManager(class BanManager *, const string &);
void ~BanManager(class BanManager *, int);
void load(class BanManager *);
void save(class BanManager *);
bool isIpBanned(class BanManager *, const string &);
string getBanDescription(class BanManager *, const string &);
string getBanName(class BanManager *, const string &);
void add(class BanManager *, const string &, const string &);
void remove(class BanManager *, const string &);
bool isModified(class BanManager *);
/* size: 136, cachelines: 3, members: 4 */
/* padding: 7 */
/* last cacheline: 8 bytes */
};
struct Nametag {
class ISceneNode * parent_node; /* 0 8 */
string nametag_text; /* 8 32 */
class SColor nametag_color; /* 40 4 */
void Nametag(class Nametag *, class ISceneNode *, const string &, const class SColor &);
void ~Nametag(class Nametag *, int);
/* size: 48, cachelines: 1, members: 3 */
/* padding: 4 */
/* last cacheline: 48 bytes */
};
class Camera {
class ISceneNode * m_playernode; /* 0 8 */
class ISceneNode * m_headnode; /* 8 8 */
class ICameraSceneNode * m_cameranode; /* 16 8 */
class ISceneManager * m_wieldmgr; /* 24 8 */
class WieldMeshSceneNode * m_wieldnode; /* 32 8 */
class MapDrawControl &const m_draw_control; /* 40 8 */
class Client * m_client; /* 48 8 */
class IVideoDriver * m_driver; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
v3f m_camera_position; /* 64 12 */
v3f m_camera_direction; /* 76 12 */
v3s16 m_camera_offset; /* 88 6 */
/* XXX 2 bytes hole, try to pack */
f32 m_aspect; /* 96 4 */
f32 m_fov_x; /* 100 4 */
f32 m_fov_y; /* 104 4 */
f32 m_view_bobbing_anim; /* 108 4 */
s32 m_view_bobbing_state; /* 112 4 */
f32 m_view_bobbing_speed; /* 116 4 */
f32 m_view_bobbing_fall; /* 120 4 */
f32 m_digging_anim; /* 124 4 */
/* --- cacheline 2 boundary (128 bytes) --- */
s32 m_digging_button; /* 128 4 */
f32 m_wield_change_timer; /* 132 4 */
struct ItemStack m_wield_item_next; /* 136 104 */
/* --- cacheline 3 boundary (192 bytes) was 48 bytes ago --- */
enum CameraMode m_camera_mode; /* 240 4 */
f32 m_cache_fall_bobbing_amount; /* 244 4 */
f32 m_cache_view_bobbing_amount; /* 248 4 */
f32 m_cache_fov; /* 252 4 */
/* --- cacheline 4 boundary (256 bytes) --- */
f32 m_cache_zoom_fov; /* 256 4 */
bool m_cache_view_bobbing; /* 260 1 */
/* XXX 3 bytes hole, try to pack */
class list<Nametag*, std::allocator<Nametag*> > m_nametags; /* 264 24 */
public:
void Camera(class Camera *, class ISceneManager *, class MapDrawControl &, class Client *);
void ~Camera(class Camera *, int);
class ISceneNode * getPlayerNode(const class Camera *);
class ISceneNode * getHeadNode(const class Camera *);
class ICameraSceneNode * getCameraNode(const class Camera *);
v3f getPosition(const class Camera *);
v3f getDirection(const class Camera *);
v3s16 getOffset(const class Camera *);
f32 getFovX(const class Camera *);
f32 getFovY(const class Camera *);
f32 getFovMax(const class Camera *);
bool successfullyCreated(class Camera *, string &);
void step(class Camera *, f32);
void update(class Camera *, class LocalPlayer *, f32, f32, f32, class ClientEnvironment &);
void updateViewingRange(class Camera *);
void setDigging(class Camera *, s32);
void wield(class Camera *, const class ItemStack &);
void drawWieldedTool(class Camera *, matrix4 *);
void toggleCameraMode(class Camera *);
enum CameraMode getCameraMode(class Camera *);
class Nametag * addNametag(class Camera *, class ISceneNode *, string, class SColor);
void removeNametag(class Camera *, class Nametag *);
const class list<Nametag*, std::allocator<Nametag*> > & getNametags(class Camera *);
void drawNametags(class Camera *);
/* size: 288, cachelines: 5, members: 29 */
/* sum members: 283, holes: 2, sum holes: 5 */
/* last cacheline: 32 bytes */
};
struct MapDrawControl {
bool range_all; /* 0 1 */
/* XXX 3 bytes hole, try to pack */
float wanted_range; /* 4 4 */
u32 wanted_max_blocks; /* 8 4 */
bool show_wireframe; /* 12 1 */
/* XXX 3 bytes hole, try to pack */
u32 blocks_drawn; /* 16 4 */
u32 blocks_would_have_drawn; /* 20 4 */
float farthest_drawn; /* 24 4 */
void MapDrawControl(class MapDrawControl *);
/* size: 28, cachelines: 1, members: 7 */
/* sum members: 22, holes: 2, sum holes: 6 */
/* last cacheline: 28 bytes */
};
struct ItemPartColor {
bool override_base; /* 0 1 */
/* XXX 3 bytes hole, try to pack */
class SColor color; /* 4 4 */
void ItemPartColor(class ItemPartColor *);
void ItemPartColor(class ItemPartColor *, bool, class SColor);
/* size: 8, cachelines: 1, members: 2 */
/* sum members: 5, holes: 1, sum holes: 3 */
/* last cacheline: 8 bytes */
};
struct ItemMesh {
class IMesh * mesh; /* 0 8 */
class vector<ItemPartColor, std::allocator<ItemPartColor> > buffer_colors; /* 8 24 */
void ItemMesh(class ItemMesh *);
/* size: 32, cachelines: 1, members: 2 */
/* last cacheline: 32 bytes */
};
class MtEvent {
public:
int ()(void) * * _vptr.MtEvent; /* 0 8 */
void MtEvent(class MtEvent *, const class MtEvent &);
void MtEvent(class MtEvent *);
virtual void ~MtEvent(class MtEvent *, int);
virtual const char * getType(const class MtEvent *);
class MtEvent * checkIs(class MtEvent *, const string &);
/* vtable has 1 entries: {
[2] = getType((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
};
class MtEventManager {
public:
int ()(void) * * _vptr.MtEventManager; /* 0 8 */
virtual void ~MtEventManager(class MtEventManager *, int);
virtual void put(class MtEventManager *, class MtEvent *);
virtual void reg(class MtEventManager *, const char *, event_receive_func, void *);
virtual void dereg(class MtEventManager *, const char *, event_receive_func, void *);
virtual void reg(class MtEventManager *, class MtEventReceiver *, const char *);
virtual void dereg(class MtEventManager *, class MtEventReceiver *, const char *);
/* vtable has 5 entries: {
[2] = put((null)),
[3] = reg((null)),
[4] = dereg((null)),
[5] = reg((null)),
[6] = dereg((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
};
class MtEventReceiver {
public:
int ()(void) * * _vptr.MtEventReceiver; /* 0 8 */
virtual void ~MtEventReceiver(class MtEventReceiver *, int);
virtual void onEvent(class MtEventReceiver *, class MtEvent *);
/* vtable has 1 entries: {
[2] = onEvent((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
};
class SimpleTriggerEvent : public MtEvent {
public:
/* class MtEvent <ancestor>; */ /* 0 8 */
const char * type; /* 8 8 */
void SimpleTriggerEvent(class SimpleTriggerEvent *, );
void SimpleTriggerEvent(class SimpleTriggerEvent *, const class SimpleTriggerEvent &);
void SimpleTriggerEvent(class SimpleTriggerEvent *, const char *);
virtual const char * getType(const class SimpleTriggerEvent *);
virtual void ~SimpleTriggerEvent(class SimpleTriggerEvent *, int);
/* vtable has 1 entries: {
[2] = getType((null)),
} */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
/* BRAIN FART ALERT! 16 != 8 + 0(holes), diff = 8 */
};
struct GenNotifyEvent {
enum GenNotifyType type; /* 0 4 */
v3s16 pos; /* 4 6 */
/* XXX 2 bytes hole, try to pack */
u32 id; /* 12 4 */
/* size: 16, cachelines: 1, members: 3 */
/* sum members: 14, holes: 1, sum holes: 2 */
/* last cacheline: 16 bytes */
};
class GenerateNotifier {
u32 m_notify_on; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
class set<unsigned int, std::less<unsigned int>, std::allocator<unsigned int> > * m_notify_on_deco_ids; /* 8 8 */
class list<GenNotifyEvent, std::allocator<GenNotifyEvent> > m_notify_events; /* 16 24 */
public:
void GenerateNotifier(class GenerateNotifier *);
void GenerateNotifier(class GenerateNotifier *, u32, class set<unsigned int, std::less<unsigned int>, std::allocator<unsigned int> > *);
void setNotifyOn(class GenerateNotifier *, u32);
void setNotifyOnDecoIds(class GenerateNotifier *, class set<unsigned int, std::less<unsigned int>, std::allocator<unsigned int> > *);
bool addEvent(class GenerateNotifier *, enum GenNotifyType, v3s16, u32);
void getEvents(class GenerateNotifier *, class map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<irr::core::vector3d<shor, bool);
/* size: 40, cachelines: 1, members: 3 */
/* sum members: 36, holes: 1, sum holes: 4 */
/* last cacheline: 40 bytes */
};
class CavesNoiseIntersection {
class INodeDefManager * m_ndef; /* 0 8 */
class BiomeManager * m_bmgr; /* 8 8 */
v3s16 m_csize; /* 16 6 */
/* XXX 2 bytes hole, try to pack */
float m_cave_width; /* 24 4 */
u16 m_ystride; /* 28 2 */
u16 m_zstride_1d; /* 30 2 */
class Noise * noise_cave1; /* 32 8 */
class Noise * noise_cave2; /* 40 8 */
public:
void CavesNoiseIntersection(class CavesNoiseIntersection *, class INodeDefManager *, class BiomeManager *, v3s16, class NoiseParams *, class NoiseParams *, s32, float);
void ~CavesNoiseIntersection(class CavesNoiseIntersection *, int);
void generateCaves(class CavesNoiseIntersection *, class MMVManip *, v3s16, v3s16, u8 *);
/* size: 48, cachelines: 1, members: 8 */
/* sum members: 46, holes: 1, sum holes: 2 */
/* last cacheline: 48 bytes */
};
class CavernsNoise {
class INodeDefManager * m_ndef; /* 0 8 */
v3s16 m_csize; /* 8 6 */
/* XXX 2 bytes hole, try to pack */
float m_cavern_limit; /* 16 4 */
float m_cavern_taper; /* 20 4 */
float m_cavern_threshold; /* 24 4 */
u16 m_ystride; /* 28 2 */
u16 m_zstride_1d; /* 30 2 */
class Noise * noise_cavern; /* 32 8 */
content_t c_water_source; /* 40 2 */
content_t c_lava_source; /* 42 2 */
public:
void CavernsNoise(class CavernsNoise *, class INodeDefManager *, v3s16, class NoiseParams *, s32, float, float, float);
void ~CavernsNoise(class CavernsNoise *, int);
bool generateCaverns(class CavernsNoise *, class MMVManip *, v3s16, v3s16);
/* size: 48, cachelines: 1, members: 10 */
/* sum members: 42, holes: 1, sum holes: 2 */
/* padding: 4 */
/* last cacheline: 48 bytes */
};
class CavesRandomWalk {
public:
class MMVManip * vm; /* 0 8 */
class INodeDefManager * ndef; /* 8 8 */
class GenerateNotifier * gennotify; /* 16 8 */
s16 * heightmap; /* 24 8 */
s32 seed; /* 32 4 */
int water_level; /* 36 4 */
int lava_depth; /* 40 4 */
/* XXX 4 bytes hole, try to pack */
class NoiseParams * np_caveliquids; /* 48 8 */
u16 ystride; /* 56 2 */
s16 min_tunnel_diameter; /* 58 2 */
s16 max_tunnel_diameter; /* 60 2 */
u16 tunnel_routepoints; /* 62 2 */
/* --- cacheline 1 boundary (64 bytes) --- */
int part_max_length_rs; /* 64 4 */
bool large_cave; /* 68 1 */
bool large_cave_is_flat; /* 69 1 */
bool flooded; /* 70 1 */
/* XXX 1 byte hole, try to pack */
s16 max_stone_y; /* 72 2 */
v3s16 node_min; /* 74 6 */
v3s16 node_max; /* 80 6 */
/* XXX 2 bytes hole, try to pack */
v3f orp; /* 88 12 */
v3s16 of; /* 100 6 */
v3s16 ar; /* 106 6 */
s16 rs; /* 112 2 */
/* XXX 2 bytes hole, try to pack */
v3f main_direction; /* 116 12 */
/* --- cacheline 2 boundary (128 bytes) --- */
s16 route_y_min; /* 128 2 */
s16 route_y_max; /* 130 2 */
/* XXX 4 bytes hole, try to pack */
class PseudoRandom * ps; /* 136 8 */
content_t c_water_source; /* 144 2 */
content_t c_lava_source; /* 146 2 */
void CavesRandomWalk(class CavesRandomWalk *, class INodeDefManager *, class GenerateNotifier *, s32, int, content_t, content_t);
void makeCave(class CavesRandomWalk *, class MMVManip *, v3s16, v3s16, class PseudoRandom *, bool, int, s16 *);
void makeTunnel(class CavesRandomWalk *, bool);
void carveRoute(class CavesRandomWalk *, v3f, float, bool);
bool isPosAboveSurface(class CavesRandomWalk *, v3s16);
/* size: 152, cachelines: 3, members: 29 */
/* sum members: 135, holes: 5, sum holes: 13 */
/* padding: 4 */
/* last cacheline: 24 bytes */
};
class CavesV6 {
public:
class MMVManip * vm; /* 0 8 */
class INodeDefManager * ndef; /* 8 8 */
class GenerateNotifier * gennotify; /* 16 8 */
class PseudoRandom * ps; /* 24 8 */
class PseudoRandom * ps2; /* 32 8 */
s16 * heightmap; /* 40 8 */
content_t c_water_source; /* 48 2 */
content_t c_lava_source; /* 50 2 */
int water_level; /* 52 4 */
u16 ystride; /* 56 2 */
s16 min_tunnel_diameter; /* 58 2 */
s16 max_tunnel_diameter; /* 60 2 */
u16 tunnel_routepoints; /* 62 2 */
/* --- cacheline 1 boundary (64 bytes) --- */
int part_max_length_rs; /* 64 4 */
bool large_cave; /* 68 1 */
bool large_cave_is_flat; /* 69 1 */
v3s16 node_min; /* 70 6 */
v3s16 node_max; /* 76 6 */
/* XXX 2 bytes hole, try to pack */
v3f orp; /* 84 12 */
v3s16 of; /* 96 6 */
v3s16 ar; /* 102 6 */
s16 rs; /* 108 2 */
/* XXX 2 bytes hole, try to pack */
v3f main_direction; /* 112 12 */
s16 route_y_min; /* 124 2 */
s16 route_y_max; /* 126 2 */
void CavesV6(class CavesV6 *, class INodeDefManager *, class GenerateNotifier *, int, content_t, content_t);
void makeCave(class CavesV6 *, class MMVManip *, v3s16, v3s16, class PseudoRandom *, class PseudoRandom *, bool, int, s16 *);
void makeTunnel(class CavesV6 *, bool);
void carveRoute(class CavesV6 *, v3f, float, bool, bool);
s16 getSurfaceFromHeightmap(class CavesV6 *, v3s16);
/* size: 128, cachelines: 2, members: 25 */
/* sum members: 124, holes: 2, sum holes: 4 */
};
class BasicStrfnd<wchar_t> {
typedef struct basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > String;
/* tag__fprintf: const_type tag not supported! */;
String str; /* 0 32 */
size_t pos; /* 32 8 */
public:
void BasicStrfnd(class BasicStrfnd<wchar_t> *, const String &);
void start(class BasicStrfnd<wchar_t> *, const String &);
size_t where(class BasicStrfnd<wchar_t> *);
void to(class BasicStrfnd<wchar_t> *, size_t);
bool at_end(class BasicStrfnd<wchar_t> *);
String what(class BasicStrfnd<wchar_t> *);
String next(class BasicStrfnd<wchar_t> *, const String &);
String next_esc(class BasicStrfnd<wchar_t> *, const String &, wchar_t);
void skip_over(class BasicStrfnd<wchar_t> *, const String &);
void ~BasicStrfnd(class BasicStrfnd<wchar_t> *, int);
/* size: 40, cachelines: 1, members: 2 */
/* last cacheline: 40 bytes */
};
class IntervalLimiter {
protected:
float m_accumulator; /* 0 4 */
public:
void IntervalLimiter(class IntervalLimiter *);
bool step(class IntervalLimiter *, float, float);
/* size: 4, cachelines: 1, members: 1 */
/* last cacheline: 4 bytes */
};
struct ClientEnvEvent {
union {
struct {
u8 amount; /* 0 1 */
bool send_to_server; /* 1 1 */
} player_damage; /* 2 */
struct {
u16 amount; /* 0 2 */
} player_breath; /* 2 */
};
enum ClientEnvEventType type; /* 0 4 */
union {
struct {
u8 amount; /* 4 1 */
bool send_to_server; /* 5 1 */
} player_damage; /* 2 */
struct {
u16 amount; /* 4 2 */
} player_breath; /* 2 */
}; /* 4 2 */
/* size: 8, cachelines: 1, members: 2 */
/* padding: 2 */
/* last cacheline: 8 bytes */
};
class Client : public PeerHandler, public InventoryManager, public IGameDef {
public:
/* class PeerHandler <ancestor>; */ /* 0 8 */
/* class InventoryManager <ancestor>; */ /* 8 8 */
/* class IGameDef <ancestor>; */ /* 16 8 */
float m_packetcounter_timer; /* 24 4 */
float m_connection_reinit_timer; /* 28 4 */
float m_avg_rtt_timer; /* 32 4 */
float m_playerpos_send_timer; /* 36 4 */
float m_ignore_damage_timer; /* 40 4 */
class IntervalLimiter m_map_timer_and_unload_interval; /* 44 4 */
class IWritableTextureSource * m_tsrc; /* 48 8 */
class IWritableShaderSource * m_shsrc; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
class IWritableItemDefManager * m_itemdef; /* 64 8 */
class IWritableNodeDefManager * m_nodedef; /* 72 8 */
class ISoundManager * m_sound; /* 80 8 */
class MtEventManager * m_event; /* 88 8 */
class MeshUpdateThread m_mesh_update_thread; /* 96 0 */
/* XXX 520 bytes hole, try to pack */
/* --- cacheline 9 boundary (576 bytes) was 40 bytes ago --- */
class ClientEnvironment m_env; /* 616 0 */
/* XXX 368 bytes hole, try to pack */
/* --- cacheline 2063 boundary (132032 bytes) was 24 bytes ago --- */
class ParticleManager m_particle_manager; /* 132056 160 */
/* --- cacheline 2065 boundary (132160 bytes) was 56 bytes ago --- */
class Connection m_con; /* 132216 936 */
/* --- cacheline 2080 boundary (133120 bytes) was 32 bytes ago --- */
class IrrlichtDevice * m_device; /* 133152 8 */
class Camera * m_camera; /* 133160 8 */
class Minimap * m_minimap; /* 133168 8 */
bool m_minimap_disabled_by_server; /* 133176 1 */
u8 m_server_ser_ver; /* 133177 1 */
u8 m_proto_ver; /* 133178 1 */
/* XXX 1 byte hole, try to pack */
u16 m_playeritem; /* 133180 2 */
bool m_inventory_updated; /* 133182 1 */
/* XXX 1 byte hole, try to pack */
/* --- cacheline 2081 boundary (133184 bytes) --- */
class Inventory * m_inventory_from_server; /* 133184 8 */
float m_inventory_from_server_age; /* 133192 4 */
/* XXX 4 bytes hole, try to pack */
class PacketCounter m_packetcounter; /* 133200 48 */
/* --- cacheline 2082 boundary (133248 bytes) --- */
float m_animation_time; /* 133248 4 */
int m_crack_level; /* 133252 4 */
v3s16 m_crack_pos; /* 133256 6 */
/* XXX 2 bytes hole, try to pack */
class queue<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::deque<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::allocator<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > > > m_chat_queue; /* 133264 80 */
/* --- cacheline 2083 boundary (133312 bytes) was 32 bytes ago --- */
u32 m_sudo_auth_methods; /* 133344 4 */
/* XXX 4 bytes hole, try to pack */
u64 m_map_seed; /* 133352 8 */
string m_playername; /* 133360 32 */
/* --- cacheline 2084 boundary (133376 bytes) was 16 bytes ago --- */
string m_password; /* 133392 32 */
string m_new_password; /* 133424 32 */
/* --- cacheline 2085 boundary (133440 bytes) was 16 bytes ago --- */
enum AuthMechanism m_chosen_auth_mech; /* 133456 4 */
/* XXX 4 bytes hole, try to pack */
void * m_auth_data; /* 133464 8 */
bool m_access_denied; /* 133472 1 */
bool m_access_denied_reconnect; /* 133473 1 */
/* XXX 6 bytes hole, try to pack */
string m_access_denied_reason; /* 133480 32 */
/* --- cacheline 2086 boundary (133504 bytes) was 8 bytes ago --- */
class queue<ClientEvent, std::deque<ClientEvent, std::allocator<ClientEvent> > > m_client_event_queue; /* 133512 80 */
/* --- cacheline 2087 boundary (133568 bytes) was 24 bytes ago --- */
bool m_itemdef_received; /* 133592 1 */
bool m_nodedef_received; /* 133593 1 */
/* XXX 6 bytes hole, try to pack */
class ClientMediaDownloader * m_media_downloader; /* 133600 8 */
bool m_time_of_day_set; /* 133608 1 */
/* XXX 3 bytes hole, try to pack */
float m_last_time_of_day_f; /* 133612 4 */
float m_time_of_day_update_timer; /* 133616 4 */
float m_recommended_send_interval; /* 133620 4 */
float m_removed_sounds_check_timer; /* 133624 4 */
/* XXX 4 bytes hole, try to pack */
/* --- cacheline 2088 boundary (133632 bytes) --- */
class unordered_map<int, int, std::hash<int>, std::equal_to<int>, std::allocator<std::pair<int const, int> > > m_sounds_server_to_client; /* 133632 56 */
class unordered_map<int, int, std::hash<int>, std::equal_to<int>, std::allocator<std::pair<int const, int> > > m_sounds_client_to_server; /* 133688 56 */
/* --- cacheline 2089 boundary (133696 bytes) was 48 bytes ago --- */
class unordered_map<int, short unsigned int, std::hash<int>, std::equal_to<int>, std::allocator<std::pair<int const, short unsigned int> > > m_sounds_to_objects; /* 133744 56 */
/* --- cacheline 2090 boundary (133760 bytes) was 40 bytes ago --- */
class unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > m_privileges; /* 133800 56 */
/* --- cacheline 2091 boundary (133824 bytes) was 32 bytes ago --- */
class unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, Inventory*, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, Inventory*> > > m_detached_inventories; /* 133856 56 */
/* --- cacheline 2092 boundary (133888 bytes) was 24 bytes ago --- */
StringMap m_mesh_data; /* 133912 56 */
/* --- cacheline 2093 boundary (133952 bytes) was 16 bytes ago --- */
enum LocalClientState m_state; /* 133968 4 */
/* XXX 4 bytes hole, try to pack */
class Database * m_localdb; /* 133976 8 */
class IntervalLimiter m_localdb_save_interval; /* 133984 4 */
u16 m_cache_save_interval; /* 133988 2 */
/* XXX 2 bytes hole, try to pack */
class ClientScripting * m_script; /* 133992 8 */
bool m_modding_enabled; /* 134000 1 */
/* XXX 7 bytes hole, try to pack */
class unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ModMetadata*, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ModMetadata*> > > m_mod_storages; /* 134008 56 */
/* --- cacheline 2094 boundary (134016 bytes) was 48 bytes ago --- */
float m_mod_storage_save_timer; /* 134064 4 */
/* XXX 4 bytes hole, try to pack */
class GameUIFlags * m_game_ui_flags; /* 134072 8 */
/* --- cacheline 2095 boundary (134080 bytes) --- */
bool m_shutdown; /* 134080 1 */
void Client(class Client *, class IrrlichtDevice *, const char *, const string &, class MapDrawControl &, class IWritableTextureSource *, class IWritableShaderSource *, class IWritableItemDefManager *, class IWritableNodeDefManager *, class ISoundManager *, class MtEventManager *, bool, class GameUIFlags *);
virtual void ~Client(class Client *, int);
void initMods(class Client *);
void Stop(class Client *);
bool isShutdown(class Client *);
void connect(class Client *, class Address, const string &, bool);
void step(class Client *, float);
void handleCommand(class Client *, class NetworkPacket *);
void handleCommand_Null(class Client *, class NetworkPacket *);
void handleCommand_Deprecated(class Client *, class NetworkPacket *);
void handleCommand_Hello(class Client *, class NetworkPacket *);
void handleCommand_AuthAccept(class Client *, class NetworkPacket *);
void handleCommand_AcceptSudoMode(class Client *, class NetworkPacket *);
void handleCommand_DenySudoMode(class Client *, class NetworkPacket *);
void handleCommand_InitLegacy(class Client *, class NetworkPacket *);
void handleCommand_AccessDenied(class Client *, class NetworkPacket *);
void handleCommand_RemoveNode(class Client *, class NetworkPacket *);
void handleCommand_AddNode(class Client *, class NetworkPacket *);
void handleCommand_BlockData(class Client *, class NetworkPacket *);
void handleCommand_Inventory(class Client *, class NetworkPacket *);
void handleCommand_TimeOfDay(class Client *, class NetworkPacket *);
void handleCommand_ChatMessage(class Client *, class NetworkPacket *);
void handleCommand_ActiveObjectRemoveAdd(class Client *, class NetworkPacket *);
void handleCommand_ActiveObjectMessages(class Client *, class NetworkPacket *);
void handleCommand_Movement(class Client *, class NetworkPacket *);
void handleCommand_HP(class Client *, class NetworkPacket *);
void handleCommand_Breath(class Client *, class NetworkPacket *);
void handleCommand_MovePlayer(class Client *, class NetworkPacket *);
void handleCommand_PlayerItem(class Client *, class NetworkPacket *);
void handleCommand_DeathScreen(class Client *, class NetworkPacket *);
void handleCommand_AnnounceMedia(class Client *, class NetworkPacket *);
void handleCommand_Media(class Client *, class NetworkPacket *);
void handleCommand_ToolDef(class Client *, class NetworkPacket *);
void handleCommand_NodeDef(class Client *, class NetworkPacket *);
void handleCommand_CraftItemDef(class Client *, class NetworkPacket *);
void handleCommand_ItemDef(class Client *, class NetworkPacket *);
void handleCommand_PlaySound(class Client *, class NetworkPacket *);
void handleCommand_StopSound(class Client *, class NetworkPacket *);
void handleCommand_Privileges(class Client *, class NetworkPacket *);
void handleCommand_InventoryFormSpec(class Client *, class NetworkPacket *);
void handleCommand_DetachedInventory(class Client *, class NetworkPacket *);
void handleCommand_ShowFormSpec(class Client *, class NetworkPacket *);
void handleCommand_SpawnParticle(class Client *, class NetworkPacket *);
void handleCommand_AddParticleSpawner(class Client *, class NetworkPacket *);
void handleCommand_DeleteParticleSpawner(class Client *, class NetworkPacket *);
void handleCommand_HudAdd(class Client *, class NetworkPacket *);
void handleCommand_HudRemove(class Client *, class NetworkPacket *);
void handleCommand_HudChange(class Client *, class NetworkPacket *);
void handleCommand_HudSetFlags(class Client *, class NetworkPacket *);
void handleCommand_HudSetParam(class Client *, class NetworkPacket *);
void handleCommand_HudSetSky(class Client *, class NetworkPacket *);
void handleCommand_OverrideDayNightRatio(class Client *, class NetworkPacket *);
void handleCommand_LocalPlayerAnimations(class Client *, class NetworkPacket *);
void handleCommand_EyeOffset(class Client *, class NetworkPacket *);
void handleCommand_SrpBytesSandB(class Client *, class NetworkPacket *);
void ProcessData(class Client *, class NetworkPacket *);
void Send(class Client *, class NetworkPacket *);
void interact(class Client *, u8, const class PointedThing &);
void sendNodemetaFields(class Client *, v3s16, const string &, const StringMap &);
void sendInventoryFields(class Client *, const string &, const StringMap &);
void sendInventoryAction(class Client *, class InventoryAction *);
void sendChatMessage(class Client *, const wstring &);
void sendChangePassword(class Client *, const string &, const string &);
void sendDamage(class Client *, u8);
void sendBreath(class Client *, u16);
void sendRespawn(class Client *);
void sendReady(class Client *);
class ClientEnvironment & getEnv(class Client *);
class ITextureSource * tsrc(class Client *);
class ISoundManager * sound(class Client *);
const string & getBuiltinLuaPath(void);
const string & getClientModsLuaPath(void);
virtual const class vector<ModSpec, std::allocator<ModSpec> > & getMods(const class Client *);
virtual const class ModSpec * getModSpec(const class Client *, const string &);
void removeNode(class Client *, v3s16);
class MapNode getNode(class Client *, v3s16, bool *);
void addNode(class Client *, v3s16, class MapNode, bool);
void setPlayerControl(class Client *, class PlayerControl &);
void selectPlayerItem(class Client *, u16);
u16 getPlayerItem(const class Client *);
bool getLocalInventoryUpdated(class Client *);
void getLocalInventory(class Client *, class Inventory &);
virtual class Inventory * getInventory(class Client *, const class InventoryLocation &);
virtual void inventoryAction(class Client *, class InventoryAction *);
const class list<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11:: getConnectedPlayerNames(class Client *);
float getAnimationTime(class Client *);
int getCrackLevel(class Client *);
v3s16 getCrackPos(class Client *);
void setCrack(class Client *, int, v3s16);
u16 getHP(class Client *);
bool checkPrivilege(const class Client *, const string &);
bool getChatMessage(class Client *, wstring &);
void typeChatMessage(class Client *, const wstring &);
u64 getMapSeed(class Client *);
void addUpdateMeshTask(class Client *, v3s16, bool, bool);
void addUpdateMeshTaskWithEdge(class Client *, v3s16, bool, bool);
void addUpdateMeshTaskForNode(class Client *, v3s16, bool, bool);
void updateCameraOffset(class Client *, v3s16);
class ClientEvent getClientEvent(class Client *);
bool accessDenied(const class Client *);
bool reconnectRequested(const class Client *);
void setFatalError(class Client *, const string &);
const string & accessDeniedReason(const class Client *);
bool itemdefReceived(class Client *);
bool nodedefReceived(class Client *);
bool mediaReceived(class Client *);
u8 getProtoVersion(class Client *);
bool connectedToServer(class Client *);
float mediaReceiveProgress(class Client *);
void afterContentReceived(class Client *, class IrrlichtDevice *);
float getRTT(class Client *);
float getCurRate(class Client *);
class Minimap * getMinimap(class Client *);
void setCamera(class Client *, class Camera *);
class Camera * getCamera(class Client *);
bool shouldShowMinimap(const class Client *);
virtual class IItemDefManager * getItemDefManager(class Client *);
virtual class INodeDefManager * getNodeDefManager(class Client *);
virtual class ICraftDefManager * getCraftDefManager(class Client *);
class ITextureSource * getTextureSource(class Client *);
virtual class IShaderSource * getShaderSource(class Client *);
class IShaderSource * shsrc(class Client *);
class ISceneManager * getSceneManager(class Client *);
virtual u16 allocateUnknownNodeId(class Client *, const string &);
virtual class ISoundManager * getSoundManager(class Client *);
virtual class MtEventManager * getEventManager(class Client *);
virtual class ParticleManager * getParticleManager(class Client *);
bool checkLocalPrivilege(class Client *, const string &);
virtual class IAnimatedMesh * getMesh(class Client *, const string &);
virtual string getModStoragePath(const class Client *);
virtual bool registerModStorage(class Client *, class ModMetadata *);
virtual void unregisterModStorage(class Client *, const string &);
bool loadMedia(class Client *, const string &, const string &);
void request_media(class Client *, const class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11);
void received_media(class Client *);
enum LocalClientState getState(class Client *);
void makeScreenshot(class Client *, class IrrlichtDevice *);
void pushToChatQueue(class Client *, const wstring &);
class ClientScripting * getScript(class Client *);
boolconst moddingEnabled(const class Client *);
void pushToEventQueue(class Client *, const class ClientEvent &);
void showGameChat(class Client *, bool);
void showGameHud(class Client *, bool);
void showMinimap(class Client *, bool);
void showProfiler(class Client *, bool);
void showGameFog(class Client *, bool);
void showGameDebug(class Client *, bool);
virtual void peerAdded(class Client *, class Peer *);
virtual void deletingPeer(class Client *, class Peer *, bool);
void initLocalMapSaving(class Client *, const class Address &, const string &, bool);
void ReceiveAll(class Client *);
void Receive(class Client *);
void sendPlayerPos(class Client *);
void sendPlayerItem(class Client *, u16);
void deleteAuthData(class Client *);
enum AuthMechanism choseAuthMech(u32);
void sendLegacyInit(class Client *, const char *, const char *);
void sendInit(class Client *, const string &);
void startAuth(class Client *, enum AuthMechanism);
void sendDeletedBlocks(class Client *, class vector<irr::core::vector3d<short int>, std::allocator<irr::core::vector3d<short int> > > &);
void sendGotBlocks(class Client *, v3s16);
void sendRemovedSounds(class Client *, class vector<int, std::allocator<int> > &);
string getPlayerName(class Client *);
void Client(class Client *, const class Client &);
class Client & operator=(class Client *, const class Client &);
/* vtable has 18 entries: {
[4] = getMods((null)),
[5] = getModSpec((null)),
[6] = getInventory((null)),
[7] = inventoryAction((null)),
[8] = getItemDefManager((null)),
[9] = getNodeDefManager((null)),
[10] = getCraftDefManager((null)),
[11] = getShaderSource((null)),
[12] = allocateUnknownNodeId((null)),
[13] = getSoundManager((null)),
[14] = getEventManager((null)),
[15] = getParticleManager((null)),
[16] = getMesh((null)),
[17] = getModStoragePath((null)),
[18] = registerModStorage((null)),
[19] = unregisterModStorage((null)),
[2] = peerAdded((null)),
[3] = deletingPeer((null)),
} */
/* size: 134088, cachelines: 2096, members: 69 */
/* sum members: 2045, holes: 16, sum holes: 940 */
/* padding: 7 */
/* last cacheline: 8 bytes */
/* BRAIN FART ALERT! 134088 != 2045 + 940(holes), diff = 131103 */
};
class ParticleSpawner {
class ParticleManager * m_particlemanager; /* 0 8 */
float m_time; /* 8 4 */
/* XXX 4 bytes hole, try to pack */
class IGameDef * m_gamedef; /* 16 8 */
class ISceneManager * m_smgr; /* 24 8 */
class LocalPlayer * m_player; /* 32 8 */
u16 m_amount; /* 40 2 */
/* XXX 2 bytes hole, try to pack */
float m_spawntime; /* 44 4 */
v3f m_minpos; /* 48 12 */
v3f m_maxpos; /* 60 12 */
/* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
v3f m_minvel; /* 72 12 */
v3f m_maxvel; /* 84 12 */
v3f m_minacc; /* 96 12 */
v3f m_maxacc; /* 108 12 */
float m_minexptime; /* 120 4 */
float m_maxexptime; /* 124 4 */
/* --- cacheline 2 boundary (128 bytes) --- */
float m_minsize; /* 128 4 */
float m_maxsize; /* 132 4 */
class ITexture * m_texture; /* 136 8 */
class vector<float, std::allocator<float> > m_spawntimes; /* 144 24 */
bool m_collisiondetection; /* 168 1 */
bool m_collision_removal; /* 169 1 */
bool m_vertical; /* 170 1 */
/* XXX 1 byte hole, try to pack */
u16 m_attached_id; /* 172 2 */
/* XXX 2 bytes hole, try to pack */
struct TileAnimationParams m_animation; /* 176 16 */
/* --- cacheline 3 boundary (192 bytes) --- */
u8 m_glow; /* 192 1 */
public:
void ParticleSpawner(class ParticleSpawner *, class IGameDef *, class ISceneManager *, class LocalPlayer *, u16, float, v3f, v3f, v3f, v3f, v3f, v3f, float, float, float, float, bool, bool, u16, bool, class ITexture *, u32, const class TileAnimationParams &, u8, class ParticleManager *);
void ~ParticleSpawner(class ParticleSpawner *, int);
void step(class ParticleSpawner *, float, class ClientEnvironment *);
bool get_expired(class ParticleSpawner *);
/* size: 200, cachelines: 4, members: 25 */
/* sum members: 184, holes: 4, sum holes: 9 */
/* padding: 7 */
/* last cacheline: 8 bytes */
};
class ParticleManager {
class vector<Particle*, std::allocator<Particle*> > m_particles; /* 0 24 */
class map<unsigned int, ParticleSpawner*, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, ParticleSpawner*> > > m_particle_spawners; /* 24 48 */
/* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
class ClientEnvironment * m_env; /* 72 8 */
Mutex m_particle_list_lock; /* 80 40 */
Mutex m_spawner_list_lock; /* 120 40 */
public:
void ParticleManager(class ParticleManager *, class ClientEnvironment *);
void ~ParticleManager(class ParticleManager *, int);
void step(class ParticleManager *, float);
void handleParticleEvent(class ParticleManager *, class ClientEvent *, class Client *, class ISceneManager *, class LocalPlayer *);
void addDiggingParticles(class ParticleManager *, class IGameDef *, class ISceneManager *, class LocalPlayer *, v3s16, const class MapNode &, const class ContentFeatures &);
void addPunchingParticles(class ParticleManager *, class IGameDef *, class ISceneManager *, class LocalPlayer *, v3s16, const class MapNode &, const class ContentFeatures &);
void addNodeParticle(class ParticleManager *, class IGameDef *, class ISceneManager *, class LocalPlayer *, v3s16, const class MapNode &, const class ContentFeatures &);
protected:
void addParticle(class ParticleManager *, class Particle *);
void stepParticles(class ParticleManager *, float);
void stepSpawners(class ParticleManager *, float);
void clearAll(class ParticleManager *);
/* size: 160, cachelines: 3, members: 5 */
/* last cacheline: 32 bytes */
};
struct MeshUpdateResult {
v3s16 p; /* 0 6 */
/* XXX 2 bytes hole, try to pack */
class MapBlockMesh * mesh; /* 8 8 */
bool ack_block_to_server; /* 16 1 */
void MeshUpdateResult(class MeshUpdateResult *);
void MeshUpdateResult(class MeshUpdateResult *, const class MeshUpdateResult &);
/* size: 24, cachelines: 1, members: 3 */
/* sum members: 15, holes: 1, sum holes: 2 */
/* padding: 7 */
/* last cacheline: 24 bytes */
};
class MutexedQueue<MeshUpdateResult> {
protected:
class deque<MeshUpdateResult, std::allocator<MeshUpdateResult> > m_queue; /* 0 80 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
Mutex m_mutex; /* 80 40 */
class Semaphore m_signal; /* 120 32 */
public:
void MutexedQueue(class MutexedQueue<MeshUpdateResult> *);
bool empty(const class MutexedQueue<MeshUpdateResult> *);
void push_back(class MutexedQueue<MeshUpdateResult> *, class MeshUpdateResult);
class MeshUpdateResult pop_frontNoEx(class MutexedQueue<MeshUpdateResult> *, u32);
class MeshUpdateResult pop_front(class MutexedQueue<MeshUpdateResult> *, u32);
class MeshUpdateResult pop_frontNoEx(class MutexedQueue<MeshUpdateResult> *);
class MeshUpdateResult pop_back(class MutexedQueue<MeshUpdateResult> *, u32);
class MeshUpdateResult pop_backNoEx(class MutexedQueue<MeshUpdateResult> *, u32);
class MeshUpdateResult pop_backNoEx(class MutexedQueue<MeshUpdateResult> *);
protected:
Mutex & getMutex(class MutexedQueue<MeshUpdateResult> *);
class deque<MeshUpdateResult, std::allocator<MeshUpdateResult> > & getQueue(class MutexedQueue<MeshUpdateResult> *);
public:
void ~MutexedQueue(class MutexedQueue<MeshUpdateResult> *, int);
/* size: 152, cachelines: 3, members: 3 */
/* last cacheline: 24 bytes */
};
class PacketCounter {
class map<short unsigned int, short unsigned int, std::less<short unsigned int>, std::allocator<std::pair<short unsigned int const, short unsigned int> > > m_packets; /* 0 48 */
public:
void PacketCounter(class PacketCounter *);
void add(class PacketCounter *, u16);
void clear(class PacketCounter *);
void print(class PacketCounter *, ostream &);
void ~PacketCounter(class PacketCounter *, int);
/* size: 48, cachelines: 1, members: 1 */
/* last cacheline: 48 bytes */
};
class ModConfiguration {
class vector<ModSpec, std::allocator<ModSpec> > m_unsatisfied_mods; /* 0 24 */
class vector<ModSpec, std::allocator<ModSpec> > m_sorted_mods; /* 24 24 */
class unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > m_name_conflicts; /* 48 56 */
public:
bool isConsistent(const class ModConfiguration *);
class vector<ModSpec, std::allocator<ModSpec> > getMods(class ModConfiguration *);
const class vector<ModSpec, std::allocator<ModSpec> > & getUnsatisfiedMods(const class ModConfiguration *);
void printUnsatisfiedModsError(const class ModConfiguration *);
protected:
void ModConfiguration(class ModConfiguration *, const string &);
void addModsInPath(class ModConfiguration *, const string &);
void addMods(class ModConfiguration *, const class vector<ModSpec, std::allocator<ModSpec> > &);
void checkConflictsAndDeps(class ModConfiguration *);
void resolveDependencies(class ModConfiguration *);
void ModConfiguration(class ModConfiguration *);
public:
void ~ModConfiguration(class ModConfiguration *, int);
/* size: 104, cachelines: 2, members: 3 */
/* last cacheline: 40 bytes */
};
class ClientModConfiguration : public ModConfiguration {
public:
/* class ModConfiguration <ancestor>; */ /* 0 104 */
void ClientModConfiguration(class ClientModConfiguration *, const string &);
void ~ClientModConfiguration(class ClientModConfiguration *, int);
/* size: 104, cachelines: 2, members: 1 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 104 != 0 + 0(holes), diff = 104 */
};
struct GameUIFlags {
bool show_chat; /* 0 1 */
bool show_hud; /* 1 1 */
bool show_minimap; /* 2 1 */
bool force_fog_off; /* 3 1 */
bool show_debug; /* 4 1 */
bool show_profiler_graph; /* 5 1 */
bool disable_camera_update; /* 6 1 */
/* size: 7, cachelines: 1, members: 7 */
/* last cacheline: 7 bytes */
};
struct TextureUpdateArgs {
class IrrlichtDevice * device; /* 0 8 */
class IGUIEnvironment * guienv; /* 8 8 */
u32 last_time_ms; /* 16 4 */
u16 last_percent; /* 20 2 */
/* XXX 2 bytes hole, try to pack */
const wchar_t * text_base; /* 24 8 */
class ITextureSource * tsrc; /* 32 8 */
/* size: 40, cachelines: 1, members: 6 */
/* sum members: 38, holes: 1, sum holes: 2 */
/* last cacheline: 40 bytes */
};
class IWritableShaderSource : public IShaderSource {
public:
/* class IShaderSource <ancestor>; */ /* 0 8 */
void IWritableShaderSource(class IWritableShaderSource *);
virtual void ~IWritableShaderSource(class IWritableShaderSource *, int);
virtual u32 getShaderIdDirect(class IWritableShaderSource *, const string &, u8, u8);
virtual class ShaderInfo getShaderInfo(class IWritableShaderSource *, u32);
virtual u32 getShader(class IWritableShaderSource *, const string &, u8, u8);
virtual void processQueue(class IWritableShaderSource *);
virtual void insertSourceShader(class IWritableShaderSource *, const string &, const string &, const string &);
virtual void rebuildShaders(class IWritableShaderSource *);
virtual void addShaderConstantSetterFactory(class IWritableShaderSource *, class IShaderConstantSetterFactory *);
/* vtable has 7 entries: {
[2] = getShaderIdDirect((null)),
[3] = getShaderInfo((null)),
[4] = getShader((null)),
[5] = processQueue((null)),
[6] = insertSourceShader((null)),
[7] = rebuildShaders((null)),
[8] = addShaderConstantSetterFactory((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
/* BRAIN FART ALERT! 8 != 0 + 0(holes), diff = 8 */
};
class Database {
public:
int ()(void) * * _vptr.Database; /* 0 8 */
void Database(class Database *, const class Database &);
void Database(class Database *);
virtual void ~Database(class Database *, int);
virtual void beginSave(class Database *);
virtual void endSave(class Database *);
virtual bool saveBlock(class Database *, const v3s16 &, const string &);
virtual void loadBlock(class Database *, const v3s16 &, string *);
virtual bool deleteBlock(class Database *, const v3s16 &);
s64 getBlockAsInteger(const v3s16 &);
v3s16 getIntegerAsBlock(s64);
virtual void listAllLoadableBlocks(class Database *, class vector<irr::core::vector3d<short int>, std::allocator<irr::core::vector3d<short int> > > &);
virtual bool initialized(const class Database *);
/* vtable has 7 entries: {
[2] = beginSave((null)),
[3] = endSave((null)),
[4] = saveBlock((null)),
[5] = loadBlock((null)),
[6] = deleteBlock((null)),
[7] = listAllLoadableBlocks((null)),
[8] = initialized((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
};
class IShaderConstantSetterFactory {
public:
int ()(void) * * _vptr.IShaderConstantSetterFactory; /* 0 8 */
virtual void ~IShaderConstantSetterFactory(class IShaderConstantSetterFactory *, int);
virtual class IShaderConstantSetter * create(class IShaderConstantSetterFactory *);
/* vtable has 1 entries: {
[2] = create((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
};
class IShaderConstantSetter {
public:
int ()(void) * * _vptr.IShaderConstantSetter; /* 0 8 */
virtual void ~IShaderConstantSetter(class IShaderConstantSetter *, int);
virtual void onSetConstants(class IShaderConstantSetter *, class IMaterialRendererServices *, bool);
/* vtable has 1 entries: {
[2] = onSetConstants((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
};
class UpdateThread : public Thread {
public:
/* class Thread <ancestor>; */ /* 0 0 */
/* XXX 144 bytes hole, try to pack */
/* --- cacheline 2 boundary (128 bytes) was 16 bytes ago --- */
class Semaphore m_update_sem; /* 144 32 */
void UpdateThread(class UpdateThread *, const class UpdateThread &);
void UpdateThread(class UpdateThread *, const string &);
virtual void ~UpdateThread(class UpdateThread *, int);
void deferUpdate(class UpdateThread *);
void stop(class UpdateThread *);
virtual void * run(class UpdateThread *);
protected:
virtual void doUpdate(class UpdateThread *);
/* vtable has 2 entries: {
[2] = run((null)),
[3] = doUpdate((null)),
} */
/* size: 176, cachelines: 3, members: 2 */
/* sum members: 32, holes: 1, sum holes: 144 */
/* last cacheline: 48 bytes */
};
struct DistanceSortedActiveObject {
class ClientActiveObject * obj; /* 0 8 */
f32 d; /* 8 4 */
void DistanceSortedActiveObject(class DistanceSortedActiveObject *, class ClientActiveObject *, f32);
bool operator<(const class DistanceSortedActiveObject *, const class DistanceSortedActiveObject &);
/* size: 16, cachelines: 1, members: 2 */
/* padding: 4 */
/* last cacheline: 16 bytes */
};
class ClientSimpleObject {
public:
int ()(void) * * _vptr.ClientSimpleObject; /* 0 8 */
bool m_to_be_removed; /* 8 1 */
void ClientSimpleObject(class ClientSimpleObject *);
virtual void ~ClientSimpleObject(class ClientSimpleObject *, int);
virtual void step(class ClientSimpleObject *, float);
/* vtable has 1 entries: {
[2] = step((null)),
} */
/* size: 16, cachelines: 1, members: 2 */
/* padding: 7 */
/* last cacheline: 16 bytes */
};
class ClientEnvironment : public Environment {
public:
/* class Environment <ancestor>; */ /* 0 0 */
/* XXX 104 bytes hole, try to pack */
/* --- cacheline 1 boundary (64 bytes) was 40 bytes ago --- */
u16 attachement_parent_ids[65536]; /* 104 131072 */
/* --- cacheline 2049 boundary (131136 bytes) was 40 bytes ago --- */
class ClientMap * m_map; /* 131176 8 */
class LocalPlayer * m_local_player; /* 131184 8 */
class ISceneManager * m_smgr; /* 131192 8 */
/* --- cacheline 2050 boundary (131200 bytes) --- */
class ITextureSource * m_texturesource; /* 131200 8 */
class Client * m_client; /* 131208 8 */
class ClientScripting * m_script; /* 131216 8 */
class IrrlichtDevice * m_irr; /* 131224 8 */
class unordered_map<short unsigned int, ClientActiveObject*, std::hash<short unsigned int>, std::equal_to<short unsigned int>, std::allocator<std::pair<short unsigned int const, ClientActiveObject*> > > m_active_objects; /* 131232 56 */
/* --- cacheline 2051 boundary (131264 bytes) was 24 bytes ago --- */
class vector<ClientSimpleObject*, std::allocator<ClientSimpleObject*> > m_simple_objects; /* 131288 24 */
class queue<ClientEnvEvent, std::deque<ClientEnvEvent, std::allocator<ClientEnvEvent> > > m_client_event_queue; /* 131312 80 */
/* --- cacheline 2053 boundary (131392 bytes) --- */
class IntervalLimiter m_active_object_light_update_interval; /* 131392 4 */
class IntervalLimiter m_lava_hurt_interval; /* 131396 4 */
class IntervalLimiter m_drowning_interval; /* 131400 4 */
class IntervalLimiter m_breathing_interval; /* 131404 4 */
class list<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > m_player_names; /* 131408 24 */
v3s16 m_camera_offset; /* 131432 6 */
void ClientEnvironment(class ClientEnvironment *, const class ClientEnvironment &);
void ClientEnvironment(class ClientEnvironment *, class ClientMap *, class ISceneManager *, class ITextureSource *, class Client *, class IrrlichtDevice *);
virtual void ~ClientEnvironment(class ClientEnvironment *, int);
virtual class Map & getMap(class ClientEnvironment *);
class ClientMap & getClientMap(class ClientEnvironment *);
class Client * getGameDef(class ClientEnvironment *);
void setScript(class ClientEnvironment *, class ClientScripting *);
virtual void step(class ClientEnvironment *, float);
virtual void setLocalPlayer(class ClientEnvironment *, class LocalPlayer *);
class LocalPlayer * getLocalPlayer(class ClientEnvironment *);
void addSimpleObject(class ClientEnvironment *, class ClientSimpleObject *);
class GenericCAO * getGenericCAO(class ClientEnvironment *, u16);
class ClientActiveObject * getActiveObject(class ClientEnvironment *, u16);
u16 addActiveObject(class ClientEnvironment *, class ClientActiveObject *);
void addActiveObject(class ClientEnvironment *, u16, u8, const string &);
void removeActiveObject(class ClientEnvironment *, u16);
void processActiveObjectMessage(class ClientEnvironment *, u16, const string &);
void damageLocalPlayer(class ClientEnvironment *, u8, bool);
void updateLocalPlayerBreath(class ClientEnvironment *, u16);
void getActiveObjects(class ClientEnvironment *, v3f, f32, class vector<DistanceSortedActiveObject, std::allocator<DistanceSortedActiveObject> > &);
class ClientEnvEvent getClientEvent(class ClientEnvironment *);
class ClientActiveObject * getSelectedActiveObject(class ClientEnvironment *, const class line3d<float> &, v3f *, v3s16 *);
class PointedThing getPointedThing(class ClientEnvironment *, class line3d<float>, bool, bool);
const class list<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11:: getPlayerNames(class ClientEnvironment *);
void addPlayerName(class ClientEnvironment *, const string &);
void removePlayerName(class ClientEnvironment *, const string &);
void updateCameraOffset(class ClientEnvironment *, v3s16);
v3s16 getCameraOffset(const class ClientEnvironment *);
/* vtable has 3 entries: {
[3] = getMap((null)),
[2] = step((null)),
[5] = setLocalPlayer((null)),
} */
/* size: 131440, cachelines: 2054, members: 18 */
/* sum members: 131334, holes: 1, sum holes: 104 */
/* padding: 2 */
/* last cacheline: 48 bytes */
};
struct CollisionInfo {
enum CollisionType type; /* 0 4 */
v3s16 node_p; /* 4 6 */
bool bouncy; /* 10 1 */
/* XXX 1 byte hole, try to pack */
v3f old_speed; /* 12 12 */
v3f new_speed; /* 24 12 */
void CollisionInfo(class CollisionInfo *);
/* size: 36, cachelines: 1, members: 5 */
/* sum members: 35, holes: 1, sum holes: 1 */
/* last cacheline: 36 bytes */
};
struct PrioritySortedBlockTransfer {
float priority; /* 0 4 */
v3s16 pos; /* 4 6 */
u16 peer_id; /* 10 2 */
void PrioritySortedBlockTransfer(class PrioritySortedBlockTransfer *, float, v3s16, u16);
bool operator<(const class PrioritySortedBlockTransfer *, const class PrioritySortedBlockTransfer &);
void PrioritySortedBlockTransfer(class PrioritySortedBlockTransfer *, const class PrioritySortedBlockTransfer &);
/* size: 12, cachelines: 1, members: 3 */
/* last cacheline: 12 bytes */
};
class ClientInterface {
class Connection * m_con; /* 0 8 */
Mutex m_clients_mutex; /* 8 40 */
class unordered_map<short unsigned int, RemoteClient*, std::hash<short unsigned int>, std::equal_to<short unsigned int>, std::allocator<std::pair<short unsigned int const, RemoteClient*> > > m_clients; /* 48 56 */
/* --- cacheline 1 boundary (64 bytes) was 40 bytes ago --- */
class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > m_clients_names; /* 104 24 */
/* --- cacheline 2 boundary (128 bytes) --- */
class ServerEnvironment * m_env; /* 128 8 */
Mutex m_env_mutex; /* 136 40 */
float m_print_info_timer; /* 176 4 */
/* Bitfield combined with previous fields */
static const char * statenames[0] /* 0 0 */
public:
void ClientInterface(class ClientInterface *, class Connection *);
void ~ClientInterface(class ClientInterface *, int);
void step(class ClientInterface *, float);
class vector<short unsigned int, std::allocator<short unsigned int> > getClientIDs(class ClientInterface *, enum ClientState);
const class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11 getPlayerNames(const class ClientInterface *);
void send(class ClientInterface *, u16, u8, class NetworkPacket *, bool);
void sendToAll(class ClientInterface *, class NetworkPacket *);
void DeleteClient(class ClientInterface *, u16);
void CreateClient(class ClientInterface *, u16);
class RemoteClient * getClientNoEx(class ClientInterface *, u16, enum ClientState);
class RemoteClient * lockedGetClientNoEx(class ClientInterface *, u16, enum ClientState);
enum ClientState getClientState(class ClientInterface *, u16);
void setPlayerName(class ClientInterface *, u16, string);
u16 getProtocolVersion(class ClientInterface *, u16);
void setClientVersion(class ClientInterface *, u16, u8, u8, u8, string);
void event(class ClientInterface *, u16, enum ClientStateEvent);
void setEnv(class ClientInterface *, class ServerEnvironment *);
string state2Name(enum ClientState);
protected:
void lock(class ClientInterface *);
void unlock(class ClientInterface *);
class unordered_map<short unsigned int, RemoteClient*, std::hash<short unsigned int>, std::equal_to<short unsigned int>, std::a getClientList(class ClientInterface *);
void UpdatePlayerList(class ClientInterface *);
/* size: 184, cachelines: 3, members: 7, static members: 1 */
/* padding: 4 */
/* last cacheline: 56 bytes */
/* BRAIN FART ALERT! 184 != 184 + 0(holes), diff = 0 */
};
class ClientStateError : public BaseException {
public:
/* class BaseException <ancestor>; */ /* 0 40 */
void ClientStateError(class ClientStateError *, );
void ClientStateError(class ClientStateError *, const class ClientStateError &);
void ClientStateError(class ClientStateError *, const string &);
virtual void ~ClientStateError(class ClientStateError *, int);
/* size: 40, cachelines: 1, members: 1 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 40 != 0 + 0(holes), diff = 40 */
};
struct MeshBufList {
u8 layer; /* 0 1 */
/* XXX 7 bytes hole, try to pack */
class SMaterial m; /* 8 176 */
/* XXX last struct has 6 bytes of padding */
/* --- cacheline 2 boundary (128 bytes) was 56 bytes ago --- */
class vector<irr::scene::IMeshBuffer*, std::allocator<irr::scene::IMeshBuffer*> > bufs; /* 184 24 */
void MeshBufList(class MeshBufList *, const class MeshBufList &);
void ~MeshBufList(class MeshBufList *, int);
void MeshBufList(class MeshBufList *);
/* size: 208, cachelines: 4, members: 3 */
/* sum members: 201, holes: 1, sum holes: 7 */
/* paddings: 1, sum paddings: 6 */
/* last cacheline: 16 bytes */
};
struct MeshBufListList {
class vector<MeshBufList, std::allocator<MeshBufList> > lists; /* 0 24 */
void clear(class MeshBufListList *);
void add(class MeshBufListList *, class IMeshBuffer *, u8);
void ~MeshBufListList(class MeshBufListList *, int);
void MeshBufListList(class MeshBufListList *);
/* size: 24, cachelines: 1, members: 1 */
/* last cacheline: 24 bytes */
};
class ClientMap : public Map, public ISceneNode {
public:
/* class Map <ancestor>; */ /* 0 0 */
/* XXX 288 bytes hole, try to pack */
/* --- cacheline 4 boundary (256 bytes) was 32 bytes ago --- */
/* class ISceneNode <ancestor>; */ /* 288 264 */
/* XXX last struct has 26 bytes of padding */
/* --- cacheline 8 boundary (512 bytes) was 16 bytes ago --- */
class Client * m_client; /* 528 8 */
aabb3f m_box; /* 536 24 */
class MapDrawControl &const m_control; /* 560 8 */
v3f m_camera_position; /* 568 12 */
/* --- cacheline 9 boundary (576 bytes) was 4 bytes ago --- */
v3f m_camera_direction; /* 580 12 */
f32 m_camera_fov; /* 592 4 */
v3s16 m_camera_offset; /* 596 6 */
/* XXX 6 bytes hole, try to pack */
class map<irr::core::vector3d<short int>, MapBlock*, std::less<irr::core::vector3d<short int> >, std::allocator<std::pair<const irr::core::vector3d<short int>, MapBlock*> > > m_drawlist; /* 608 48 */
/* --- cacheline 10 boundary (640 bytes) was 16 bytes ago --- */
class set<irr::core::vector2d<short int>, std::less<irr::core::vector2d<short int> >, std::allocator<irr::core::vector2d<short int> > > m_last_drawn_sectors; /* 656 48 */
/* --- cacheline 11 boundary (704 bytes) --- */
bool m_cache_trilinear_filter; /* 704 1 */
bool m_cache_bilinear_filter; /* 705 1 */
bool m_cache_anistropic_filter; /* 706 1 */
void ClientMap(class ClientMap *, int, const void * *, const class ClientMap &);
void ClientMap(class ClientMap *, int, const void * *, class Client *, class MapDrawControl &, class ISceneNode *, class ISceneManager *, s32);
virtual void ~ClientMap(class ClientMap *, int, const void * *);
virtual s32 mapType(const class ClientMap *);
virtual void drop(class ClientMap *);
void updateCamera(class ClientMap *, v3f, v3f, f32, v3s16);
virtual class MapSector * emergeSector(class ClientMap *, v2s16);
virtual void OnRegisterSceneNode(class ClientMap *);
virtual void render(class ClientMap *);
virtual const aabb3f & getBoundingBox(const class ClientMap *);
void getBlocksInViewRange(class ClientMap *, v3s16, v3s16 *, v3s16 *);
void updateDrawList(class ClientMap *, class IVideoDriver *);
void renderMap(class ClientMap *, class IVideoDriver *, s32);
int getBackgroundBrightness(class ClientMap *, float, u32, int, bool *);
void renderPostFx(class ClientMap *, enum CameraMode);
virtual void PrintInfo(class ClientMap *, ostream &);
const class MapDrawControl & getControl(const class ClientMap *);
f32 getCameraFov(const class ClientMap *);
/* vtable has 7 entries: {
[2] = mapType((null)),
[3] = drop((null)),
[4] = emergeSector((null)),
[13] = OnRegisterSceneNode((null)),
[14] = render((null)),
[15] = getBoundingBox((null)),
[12] = PrintInfo((null)),
} */
/* size: 736, cachelines: 12, members: 14 */
/* sum members: 173, holes: 2, sum holes: 294 */
/* padding: 29 */
/* paddings: 1, sum paddings: 26 */
/* last cacheline: 32 bytes */
/* BRAIN FART ALERT! 736 != 173 + 294(holes), diff = 269 */
};
class ClientActiveObject : public ActiveObject {
public:
/* class ActiveObject <ancestor>; */ /* 0 16 */
/* XXX last struct has 6 bytes of padding */
protected:
class Client * m_client; /* 16 8 */
class ClientEnvironment * m_env; /* 24 8 */
/* Bitfield combined with previous fields */
static class unordered_map<short unsigned int, ClientActiveObject* (*)(Client*, ClientEnvironment*), std::hash<short unsigned int>, std::equal_to<short unsigned int>, std::allocator<std::pair<short unsigned int const, ClientActiveObject* (*)(Client*, ClientEnvironment*)> > > m_types /* 0 0 */
typedef class ClientActiveObject * (*Factory)(class Client *, class ClientEnvironment *);
public:
void ClientActiveObject(class ClientActiveObject *, const class ClientActiveObject &);
void ClientActiveObject(class ClientActiveObject *, u16, class Client *, class ClientEnvironment *);
virtual void ~ClientActiveObject(class ClientActiveObject *, int);
virtual void addToScene(class ClientActiveObject *, class ISceneManager *, class ITextureSource *, class IrrlichtDevice *);
virtual void removeFromScene(class ClientActiveObject *, bool);
virtual void updateLight(class ClientActiveObject *, u8);
virtual void updateLightNoCheck(class ClientActiveObject *, u8);
virtual v3s16 getLightPosition(class ClientActiveObject *);
virtual aabb3f * getSelectionBox(class ClientActiveObject *);
virtual bool getCollisionBox(const class ClientActiveObject *, aabb3f *);
virtual bool collideWithObjects(const class ClientActiveObject *);
virtual v3f getPosition(class ClientActiveObject *);
virtual float getYaw(const class ClientActiveObject *);
virtual class ISceneNode * getSceneNode(class ClientActiveObject *);
virtual class IMeshSceneNode * getMeshSceneNode(class ClientActiveObject *);
virtual class IAnimatedMeshSceneNode * getAnimatedMeshSceneNode(class ClientActiveObject *);
virtual class WieldMeshSceneNode * getWieldMeshSceneNode(class ClientActiveObject *);
virtual class IBillboardSceneNode * getSpriteSceneNode(class ClientActiveObject *);
virtual bool isPlayer(const class ClientActiveObject *);
virtual bool isLocalPlayer(const class ClientActiveObject *);
virtual void setAttachments(class ClientActiveObject *);
virtual bool doShowSelectionBox(class ClientActiveObject *);
virtual void updateCameraOffset(class ClientActiveObject *, v3s16);
virtual void step(class ClientActiveObject *, float, class ClientEnvironment *);
virtual void processMessage(class ClientActiveObject *, const string &);
virtual string infoText(class ClientActiveObject *);
virtual string debugInfoText(class ClientActiveObject *);
virtual void initialize(class ClientActiveObject *, const string &);
class ClientActiveObject * create(enum ActiveObjectType, class Client *, class ClientEnvironment *);
virtual bool directReportPunch(class ClientActiveObject *, v3f, const class ItemStack *, float);
protected:
void registerType(u16, Factory);
/* vtable has 26 entries: {
[5] = addToScene((null)),
[6] = removeFromScene((null)),
[7] = updateLight((null)),
[8] = updateLightNoCheck((null)),
[9] = getLightPosition((null)),
[10] = getSelectionBox((null)),
[1] = getCollisionBox((null)),
[2] = collideWithObjects((null)),
[11] = getPosition((null)),
[12] = getYaw((null)),
[13] = getSceneNode((null)),
[14] = getMeshSceneNode((null)),
[15] = getAnimatedMeshSceneNode((null)),
[16] = getWieldMeshSceneNode((null)),
[17] = getSpriteSceneNode((null)),
[18] = isPlayer((null)),
[19] = isLocalPlayer((null)),
[20] = setAttachments((null)),
[21] = doShowSelectionBox((null)),
[22] = updateCameraOffset((null)),
[23] = step((null)),
[24] = processMessage((null)),
[25] = infoText((null)),
[26] = debugInfoText((null)),
[27] = initialize((null)),
[28] = directReportPunch((null)),
} */
/* size: 32, cachelines: 1, members: 3, static members: 1 */
/* paddings: 1, sum paddings: 6 */
/* last cacheline: 32 bytes */
/* BRAIN FART ALERT! 32 != 16 + 0(holes), diff = 16 */
};
class Clouds : public ISceneNode {
public:
/* class ISceneNode <ancestor>; */ /* 0 264 */
/* XXX last struct has 26 bytes of padding */
/* --- cacheline 3 boundary (192 bytes) was 48 bytes ago --- */
class SMaterial m_material; /* 240 176 */
/* XXX last struct has 6 bytes of padding */
/* --- cacheline 6 boundary (384 bytes) was 32 bytes ago --- */
aabb3f m_box; /* 416 24 */
s16 m_passed_cloud_y; /* 440 2 */
/* XXX 2 bytes hole, try to pack */
float m_cloud_y; /* 444 4 */
/* --- cacheline 7 boundary (448 bytes) --- */
u16 m_cloud_radius_i; /* 448 2 */
bool m_enable_3d; /* 450 1 */
/* XXX 1 byte hole, try to pack */
class SColorf m_color; /* 452 16 */
u32 m_seed; /* 468 4 */
v2f m_camera_pos; /* 472 8 */
float m_time; /* 480 4 */
v3s16 m_camera_offset; /* 484 6 */
void Clouds(class Clouds *, int, const void * *, const class Clouds &);
void Clouds(class Clouds *, int, const void * *, class ISceneNode *, class ISceneManager *, s32, u32, s16);
virtual void ~Clouds(class Clouds *, int, const void * *);
virtual void OnRegisterSceneNode(class Clouds *);
virtual void render(class Clouds *);
virtual const aabb3f & getBoundingBox(const class Clouds *);
virtual u32 getMaterialCount(const class Clouds *);
virtual class SMaterial & getMaterial(class Clouds *, u32);
void step(class Clouds *, float);
void update(class Clouds *, v2f, class SColorf);
void updateCameraOffset(class Clouds *, v3s16);
void readSettings(class Clouds *);
/* vtable has 5 entries: {
[4] = OnRegisterSceneNode((null)),
[6] = render((null)),
[10] = getBoundingBox((null)),
[27] = getMaterialCount((null)),
[26] = getMaterial((null)),
} */
/* size: 520, cachelines: 9, members: 12 */
/* sum members: 247, holes: 2, sum holes: 3 */
/* padding: 30 */
/* paddings: 2, sum paddings: 32 */
/* last cacheline: 8 bytes */
/* BRAIN FART ALERT! 520 != 247 + 3(holes), diff = 270 */
};
struct collisionMoveResult {
bool touching_ground; /* 0 1 */
bool collides; /* 1 1 */
bool collides_xz; /* 2 1 */
bool standing_on_unloaded; /* 3 1 */
bool standing_on_object; /* 4 1 */
/* XXX 3 bytes hole, try to pack */
class vector<CollisionInfo, std::allocator<CollisionInfo> > collisions; /* 8 24 */
void collisionMoveResult(class collisionMoveResult *);
void ~collisionMoveResult(class collisionMoveResult *, int);
/* size: 32, cachelines: 1, members: 6 */
/* sum members: 29, holes: 1, sum holes: 3 */
/* last cacheline: 32 bytes */
};
struct NearbyCollisionInfo {
bool is_unloaded; /* 0 1 */
bool is_step_up; /* 1 1 */
bool is_object; /* 2 1 */
/* XXX 1 byte hole, try to pack */
int bouncy; /* 4 4 */
v3s16 position; /* 8 6 */
/* XXX 2 bytes hole, try to pack */
aabb3f box; /* 16 24 */
void NearbyCollisionInfo(class NearbyCollisionInfo *, bool, bool, int, const v3s16 &, const aabb3f &);
void NearbyCollisionInfo(class NearbyCollisionInfo *, );
void NearbyCollisionInfo(class NearbyCollisionInfo *, const class NearbyCollisionInfo &);
/* size: 40, cachelines: 1, members: 6 */
/* sum members: 37, holes: 2, sum holes: 3 */
/* last cacheline: 40 bytes */
};
struct SmoothTranslator {
v3f vect_old; /* 0 12 */
v3f vect_show; /* 12 12 */
v3f vect_aim; /* 24 12 */
f32 anim_counter; /* 36 4 */
f32 anim_time; /* 40 4 */
f32 anim_time_counter; /* 44 4 */
bool aim_is_end; /* 48 1 */
void SmoothTranslator(class SmoothTranslator *);
void init(class SmoothTranslator *, v3f);
void sharpen(class SmoothTranslator *);
void update(class SmoothTranslator *, v3f, bool, float);
void translate(class SmoothTranslator *, f32);
bool is_moving(class SmoothTranslator *);
/* size: 52, cachelines: 1, members: 7 */
/* padding: 3 */
/* last cacheline: 52 bytes */
};
struct PunchDamageResult {
bool did_punch; /* 0 1 */
/* XXX 3 bytes hole, try to pack */
int damage; /* 4 4 */
int wear; /* 8 4 */
void PunchDamageResult(class PunchDamageResult *);
/* size: 12, cachelines: 1, members: 3 */
/* sum members: 9, holes: 1, sum holes: 3 */
/* last cacheline: 12 bytes */
};
class TestCAO : public ClientActiveObject {
public:
/* class ClientActiveObject <ancestor>; */ /* 0 0 */
/* XXX 32 bytes hole, try to pack */
class IMeshSceneNode * m_node; /* 32 8 */
v3f m_position; /* 40 12 */
void TestCAO(class TestCAO *, const class TestCAO &);
void TestCAO(class TestCAO *, class Client *, class ClientEnvironment *);
virtual void ~TestCAO(class TestCAO *, int);
virtual enum ActiveObjectType getType(const class TestCAO *);
class ClientActiveObject * create(class Client *, class ClientEnvironment *);
virtual void addToScene(class TestCAO *, class ISceneManager *, class ITextureSource *, class IrrlichtDevice *);
virtual void removeFromScene(class TestCAO *, bool);
virtual void updateLight(class TestCAO *, u8);
virtual v3s16 getLightPosition(class TestCAO *);
void updateNodePos(class TestCAO *);
virtual void step(class TestCAO *, float, class ClientEnvironment *);
virtual void processMessage(class TestCAO *, const string &);
virtual bool getCollisionBox(const class TestCAO *, aabb3f *);
/* vtable has 8 entries: {
[0] = getType((null)),
[5] = addToScene((null)),
[6] = removeFromScene((null)),
[7] = updateLight((null)),
[9] = getLightPosition((null)),
[23] = step((null)),
[24] = processMessage((null)),
[1] = getCollisionBox((null)),
} */
/* size: 56, cachelines: 1, members: 3 */
/* sum members: 20, holes: 1, sum holes: 32 */
/* padding: 4 */
/* last cacheline: 56 bytes */
};
class ItemCAO : public ClientActiveObject {
public:
/* class ClientActiveObject <ancestor>; */ /* 0 0 */
/* XXX 32 bytes hole, try to pack */
aabb3f m_selection_box; /* 32 24 */
class IMeshSceneNode * m_node; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
v3f m_position; /* 64 12 */
/* XXX 4 bytes hole, try to pack */
string m_itemstring; /* 80 32 */
string m_infotext; /* 112 32 */
void ItemCAO(class ItemCAO *, const class ItemCAO &);
void ItemCAO(class ItemCAO *, class Client *, class ClientEnvironment *);
virtual void ~ItemCAO(class ItemCAO *, int);
virtual enum ActiveObjectType getType(const class ItemCAO *);
class ClientActiveObject * create(class Client *, class ClientEnvironment *);
virtual void addToScene(class ItemCAO *, class ISceneManager *, class ITextureSource *, class IrrlichtDevice *);
virtual void removeFromScene(class ItemCAO *, bool);
virtual void updateLight(class ItemCAO *, u8);
virtual v3s16 getLightPosition(class ItemCAO *);
void updateNodePos(class ItemCAO *);
void updateInfoText(class ItemCAO *);
void updateTexture(class ItemCAO *);
virtual void step(class ItemCAO *, float, class ClientEnvironment *);
virtual void processMessage(class ItemCAO *, const string &);
virtual void initialize(class ItemCAO *, const string &);
virtual aabb3f * getSelectionBox(class ItemCAO *);
virtual v3f getPosition(class ItemCAO *);
virtual float getYaw(const class ItemCAO *);
virtual string infoText(class ItemCAO *);
virtual bool getCollisionBox(const class ItemCAO *, aabb3f *);
/* vtable has 13 entries: {
[0] = getType((null)),
[5] = addToScene((null)),
[6] = removeFromScene((null)),
[7] = updateLight((null)),
[9] = getLightPosition((null)),
[23] = step((null)),
[24] = processMessage((null)),
[27] = initialize((null)),
[10] = getSelectionBox((null)),
[11] = getPosition((null)),
[12] = getYaw((null)),
[25] = infoText((null)),
[1] = getCollisionBox((null)),
} */
/* size: 144, cachelines: 3, members: 6 */
/* sum members: 108, holes: 2, sum holes: 36 */
/* last cacheline: 16 bytes */
};
class GenericCAO : public ClientActiveObject {
public:
/* class ClientActiveObject <ancestor>; */ /* 0 0 */
/* XXX 32 bytes hole, try to pack */
string m_name; /* 32 32 */
/* --- cacheline 1 boundary (64 bytes) --- */
bool m_is_player; /* 64 1 */
bool m_is_local_player; /* 65 1 */
/* XXX 6 bytes hole, try to pack */
struct ObjectProperties m_prop; /* 72 288 */
/* --- cacheline 5 boundary (320 bytes) was 40 bytes ago --- */
class ISceneManager * m_smgr; /* 360 8 */
class IrrlichtDevice * m_irr; /* 368 8 */
class Client * m_client; /* 376 8 */
/* --- cacheline 6 boundary (384 bytes) --- */
aabb3f m_selection_box; /* 384 24 */
class IMeshSceneNode * m_meshnode; /* 408 8 */
class IAnimatedMeshSceneNode * m_animated_meshnode; /* 416 8 */
class WieldMeshSceneNode * m_wield_meshnode; /* 424 8 */
class IBillboardSceneNode * m_spritenode; /* 432 8 */
class Nametag * m_nametag; /* 440 8 */
/* --- cacheline 7 boundary (448 bytes) --- */
v3f m_position; /* 448 12 */
v3f m_velocity; /* 460 12 */
v3f m_acceleration; /* 472 12 */
float m_yaw; /* 484 4 */
s16 m_hp; /* 488 2 */
/* XXX 2 bytes hole, try to pack */
struct SmoothTranslator pos_translator; /* 492 52 */
/* XXX last struct has 3 bytes of padding */
/* --- cacheline 8 boundary (512 bytes) was 32 bytes ago --- */
v2f m_tx_size; /* 544 8 */
v2s16 m_tx_basepos; /* 552 4 */
bool m_initial_tx_basepos_set; /* 556 1 */
bool m_tx_select_horiz_by_yawpitch; /* 557 1 */
/* XXX 2 bytes hole, try to pack */
v2s32 m_animation_range; /* 560 8 */
int m_animation_speed; /* 568 4 */
int m_animation_blend; /* 572 4 */
/* --- cacheline 9 boundary (576 bytes) --- */
bool m_animation_loop; /* 576 1 */
/* XXX 7 bytes hole, try to pack */
class unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, irr::core::vector2d<irr::core::vector3d<float> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, irr::core::vector2d<irr::core::vector3d<float> > > > > m_bone_position; /* 584 56 */
/* --- cacheline 10 boundary (640 bytes) --- */
string m_attachment_bone; /* 640 32 */
v3f m_attachment_position; /* 672 12 */
v3f m_attachment_rotation; /* 684 12 */
bool m_attached_to_local; /* 696 1 */
/* XXX 3 bytes hole, try to pack */
int m_anim_frame; /* 700 4 */
/* --- cacheline 11 boundary (704 bytes) --- */
int m_anim_num_frames; /* 704 4 */
float m_anim_framelength; /* 708 4 */
float m_anim_timer; /* 712 4 */
/* XXX 4 bytes hole, try to pack */
ItemGroupList m_armor_groups; /* 720 56 */
/* --- cacheline 12 boundary (768 bytes) was 8 bytes ago --- */
float m_reset_textures_timer; /* 776 4 */
/* XXX 4 bytes hole, try to pack */
string m_previous_texture_modifier; /* 784 32 */
string m_current_texture_modifier; /* 816 32 */
/* --- cacheline 13 boundary (832 bytes) was 16 bytes ago --- */
bool m_visuals_expired; /* 848 1 */
/* XXX 3 bytes hole, try to pack */
float m_step_distance_counter; /* 852 4 */
u8 m_last_light; /* 856 1 */
bool m_is_visible; /* 857 1 */
/* XXX 6 bytes hole, try to pack */
class vector<short unsigned int, std::allocator<short unsigned int> > m_children; /* 864 24 */
void GenericCAO(class GenericCAO *, const class GenericCAO &);
void GenericCAO(class GenericCAO *, class Client *, class ClientEnvironment *);
virtual void ~GenericCAO(class GenericCAO *, int);
class ClientActiveObject * create(class Client *, class ClientEnvironment *);
virtual enum ActiveObjectType getType(const class GenericCAO *);
virtual void initialize(class GenericCAO *, const string &);
void processInitData(class GenericCAO *, const string &);
class ClientActiveObject * getParent(class GenericCAO *);
virtual bool getCollisionBox(const class GenericCAO *, aabb3f *);
virtual bool collideWithObjects(const class GenericCAO *);
virtual aabb3f * getSelectionBox(class GenericCAO *);
virtual v3f getPosition(class GenericCAO *);
virtual float getYaw(const class GenericCAO *);
virtual class ISceneNode * getSceneNode(class GenericCAO *);
virtual class IMeshSceneNode * getMeshSceneNode(class GenericCAO *);
virtual class IAnimatedMeshSceneNode * getAnimatedMeshSceneNode(class GenericCAO *);
virtual class WieldMeshSceneNode * getWieldMeshSceneNode(class GenericCAO *);
virtual class IBillboardSceneNode * getSpriteSceneNode(class GenericCAO *);
virtual bool isPlayer(const class GenericCAO *);
virtual bool isLocalPlayer(const class GenericCAO *);
bool isVisible(const class GenericCAO *);
void setVisible(class GenericCAO *, bool);
void setChildrenVisible(class GenericCAO *, bool);
virtual void setAttachments(class GenericCAO *);
virtual void removeFromScene(class GenericCAO *, bool);
virtual void addToScene(class GenericCAO *, class ISceneManager *, class ITextureSource *, class IrrlichtDevice *);
void expireVisuals(class GenericCAO *);
virtual void updateLight(class GenericCAO *, u8);
virtual void updateLightNoCheck(class GenericCAO *, u8);
virtual v3s16 getLightPosition(class GenericCAO *);
void updateNodePos(class GenericCAO *);
virtual void step(class GenericCAO *, float, class ClientEnvironment *);
void updateTexturePos(class GenericCAO *);
void updateTextures(class GenericCAO *, const string &);
void updateAnimation(class GenericCAO *);
void updateBonePosition(class GenericCAO *);
void updateAttachments(class GenericCAO *);
virtual void processMessage(class GenericCAO *, const string &);
virtual bool directReportPunch(class GenericCAO *, v3f, const class ItemStack *, float);
virtual string debugInfoText(class GenericCAO *);
virtual string infoText(class GenericCAO *);
/* vtable has 25 entries: {
[0] = getType((null)),
[27] = initialize((null)),
[1] = getCollisionBox((null)),
[2] = collideWithObjects((null)),
[10] = getSelectionBox((null)),
[11] = getPosition((null)),
[12] = getYaw((null)),
[13] = getSceneNode((null)),
[14] = getMeshSceneNode((null)),
[15] = getAnimatedMeshSceneNode((null)),
[16] = getWieldMeshSceneNode((null)),
[17] = getSpriteSceneNode((null)),
[18] = isPlayer((null)),
[19] = isLocalPlayer((null)),
[20] = setAttachments((null)),
[6] = removeFromScene((null)),
[5] = addToScene((null)),
[7] = updateLight((null)),
[8] = updateLightNoCheck((null)),
[9] = getLightPosition((null)),
[23] = step((null)),
[24] = processMessage((null)),
[28] = directReportPunch((null)),
[26] = debugInfoText((null)),
[25] = infoText((null)),
} */
/* size: 888, cachelines: 14, members: 46 */
/* sum members: 819, holes: 10, sum holes: 69 */
/* paddings: 1, sum paddings: 3 */
/* last cacheline: 56 bytes */
};
class SmokePuffCSO : public ClientSimpleObject {
public:
/* class ClientSimpleObject <ancestor>; */ /* 0 16 */
/* XXX last struct has 7 bytes of padding */
float m_age; /* 12 4 */
class IBillboardSceneNode * m_spritenode; /* 16 8 */
void SmokePuffCSO(class SmokePuffCSO *, const class SmokePuffCSO &);
void SmokePuffCSO(class SmokePuffCSO *, class ISceneManager *, class ClientEnvironment *, v3f, v2f);
virtual void ~SmokePuffCSO(class SmokePuffCSO *, int);
virtual void step(class SmokePuffCSO *, float);
/* vtable has 1 entries: {
[2] = step((null)),
} */
/* size: 24, cachelines: 1, members: 3 */
/* paddings: 1, sum paddings: 7 */
/* last cacheline: 24 bytes */
/* BRAIN FART ALERT! 24 != 12 + 0(holes), diff = 12 */
};
struct LightFrame {
f32 lightsA[8]; /* 0 32 */
f32 lightsB[8]; /* 32 32 */
/* size: 64, cachelines: 1, members: 2 */
};
class MapblockMeshGenerator {
struct NeighborData {
f32 level; /* 0 4 */
content_t content; /* 4 2 */
bool is_same_liquid; /* 6 1 */
bool top_is_same_liquid; /* 7 1 */
/* size: 8, cachelines: 1, members: 4 */
/* last cacheline: 8 bytes */
};
/* tag__fprintf: const_type tag not supported! */;
public:
class MeshMakeData * data; /* 0 8 */
class MeshCollector * collector; /* 8 8 */
class INodeDefManager * nodedef; /* 16 8 */
class ISceneManager * smgr; /* 24 8 */
class IMeshManipulator * meshmanip; /* 32 8 */
bool enable_mesh_cache; /* 40 1 */
/* XXX 1 byte hole, try to pack */
v3s16 blockpos_nodes; /* 42 6 */
v3s16 p; /* 48 6 */
/* XXX 2 bytes hole, try to pack */
v3f origin; /* 56 12 */
/* --- cacheline 1 boundary (64 bytes) was 4 bytes ago --- */
struct MapNode n; /* 68 4 */
const class ContentFeatures * f; /* 72 8 */
u16 light; /* 80 2 */
/* XXX 2 bytes hole, try to pack */
struct LightFrame frame; /* 84 64 */
/* --- cacheline 2 boundary (128 bytes) was 20 bytes ago --- */
class SColor color; /* 148 4 */
struct TileSpec tile; /* 152 152 */
/* --- cacheline 4 boundary (256 bytes) was 48 bytes ago --- */
float scale; /* 304 4 */
bool top_is_same_liquid; /* 308 1 */
/* XXX 3 bytes hole, try to pack */
struct TileSpec tile_liquid; /* 312 152 */
/* --- cacheline 7 boundary (448 bytes) was 16 bytes ago --- */
struct TileSpec tile_liquid_top; /* 464 152 */
/* --- cacheline 9 boundary (576 bytes) was 40 bytes ago --- */
content_t c_flowing; /* 616 2 */
content_t c_source; /* 618 2 */
class SColor color_liquid_top; /* 620 4 */
struct NeighborData liquid_neighbors[3][3]; /* 624 72 */
/* --- cacheline 10 boundary (640 bytes) was 56 bytes ago --- */
f32 corner_levels[2][2]; /* 696 16 */
/* Bitfield combined with previous fields */
static stringconst raillike_groupname /* 0 0 */
/* --- cacheline 11 boundary (704 bytes) was 8 bytes ago --- */
int raillike_group; /* 712 4 */
enum PlantlikeStyle draw_style; /* 716 4 */
v3f offset; /* 720 12 */
int rotate_degree; /* 732 4 */
bool random_offset_Y; /* 736 1 */
/* XXX 3 bytes hole, try to pack */
int face_num; /* 740 4 */
void getSmoothLightFrame(class MapblockMeshGenerator *);
u16 blendLight(class MapblockMeshGenerator *, const v3f &);
class SColor blendLightColor(class MapblockMeshGenerator *, const v3f &);
class SColor blendLightColor(class MapblockMeshGenerator *, const v3f &, const v3f &);
void useTile(class MapblockMeshGenerator *, int, bool);
void useDefaultTile(class MapblockMeshGenerator *, bool);
class TileSpec getTile(class MapblockMeshGenerator *, const v3s16 &);
void drawQuad(class MapblockMeshGenerator *, v3f *, const v3s16 &);
void drawCuboid(class MapblockMeshGenerator *, const aabb3f &, class TileSpec *, int, const u16 *, const f32 *);
void generateCuboidTextureCoords(class MapblockMeshGenerator *, const aabb3f &, f32 *);
void drawAutoLightedCuboid(class MapblockMeshGenerator *, aabb3f, const f32 *, class TileSpec *, int);
void prepareLiquidNodeDrawing(class MapblockMeshGenerator *, bool);
void getLiquidNeighborhood(class MapblockMeshGenerator *, bool);
void resetCornerLevels(class MapblockMeshGenerator *);
void calculateCornerLevels(class MapblockMeshGenerator *);
f32 getCornerLevel(class MapblockMeshGenerator *, int, int);
void drawLiquidSides(class MapblockMeshGenerator *, bool);
void drawLiquidTop(class MapblockMeshGenerator *, bool);
bool isSameRail(class MapblockMeshGenerator *, v3s16);
void drawPlantlikeQuad(class MapblockMeshGenerator *, float, float, bool);
void drawFirelikeQuad(class MapblockMeshGenerator *, float, float, float, float);
void drawLiquidNode(class MapblockMeshGenerator *, bool);
void drawGlasslikeNode(class MapblockMeshGenerator *);
void drawGlasslikeFramedNode(class MapblockMeshGenerator *);
void drawAllfacesNode(class MapblockMeshGenerator *);
void drawTorchlikeNode(class MapblockMeshGenerator *);
void drawSignlikeNode(class MapblockMeshGenerator *);
void drawPlantlikeNode(class MapblockMeshGenerator *);
void drawFirelikeNode(class MapblockMeshGenerator *);
void drawFencelikeNode(class MapblockMeshGenerator *);
void drawRaillikeNode(class MapblockMeshGenerator *);
void drawNodeboxNode(class MapblockMeshGenerator *);
void drawMeshNode(class MapblockMeshGenerator *);
void errorUnknownDrawtype(class MapblockMeshGenerator *);
void drawNode(class MapblockMeshGenerator *);
void MapblockMeshGenerator(class MapblockMeshGenerator *, class MeshMakeData *, class MeshCollector *);
void generate(class MapblockMeshGenerator *);
/* size: 744, cachelines: 12, members: 30, static members: 1 */
/* sum members: 761, holes: 5, sum holes: 11 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 744 != 761 + 11(holes), diff = -28 */
};
struct MeshCollector {
class vector<PreMeshBuffer, std::allocator<PreMeshBuffer> > prebuffers[2]; /* 0 48 */
bool m_use_tangent_vertices; /* 48 1 */
void MeshCollector(class MeshCollector *, bool);
void append(class MeshCollector *, const class TileSpec &, const class S3DVertex *, u32, const u16 *, u32);
void append(class MeshCollector *, const class TileLayer &, const class S3DVertex *, u32, const u16 *, u32, u8);
void append(class MeshCollector *, const class TileSpec &, const class S3DVertex *, u32, const u16 *, u32, v3f, class SColor, u8);
void append(class MeshCollector *, const class TileLayer &, const class S3DVertex *, u32, const u16 *, u32, v3f, class SColor, u8, u8);
void applyTileColors(class MeshCollector *);
/* size: 56, cachelines: 1, members: 2 */
/* padding: 7 */
/* last cacheline: 56 bytes */
};
struct PreMeshBuffer {
struct TileLayer layer; /* 0 72 */
/* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
class vector<short unsigned int, std::allocator<short unsigned int> > indices; /* 72 24 */
class vector<irr::video::S3DVertex, std::allocator<irr::video::S3DVertex> > vertices; /* 96 24 */
class vector<irr::video::S3DVertexTangents, std::allocator<irr::video::S3DVertexTangents> > tangent_vertices; /* 120 24 */
/* size: 144, cachelines: 3, members: 4 */
/* last cacheline: 16 bytes */
};
class NameIdMapping {
class unordered_map<short unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<short unsigned int>, std::equal_to<short unsigned int>, std::allocator<std::pair<short unsigned int const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > m_id_to_name; /* 0 56 */
class unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, short unsigned int, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, short unsigned int> > > m_name_to_id; /* 56 56 */
public:
void serialize(const class NameIdMapping *, ostream &);
void deSerialize(class NameIdMapping *, istream &);
void clear(class NameIdMapping *);
void set(class NameIdMapping *, u16, const string &);
void removeId(class NameIdMapping *, u16);
void eraseName(class NameIdMapping *, const string &);
bool getName(const class NameIdMapping *, u16, string &);
bool getId(const class NameIdMapping *, const string &, u16 &);
u16 size(const class NameIdMapping *);
/* size: 112, cachelines: 2, members: 2 */
/* last cacheline: 48 bytes */
};
struct ActiveObjectMessage {
u16 id; /* 0 2 */
bool reliable; /* 2 1 */
/* XXX 5 bytes hole, try to pack */
string datastring; /* 8 32 */
void ActiveObjectMessage(class ActiveObjectMessage *, u16, bool, const string &);
void ActiveObjectMessage(class ActiveObjectMessage *, const class ActiveObjectMessage &);
void ~ActiveObjectMessage(class ActiveObjectMessage *, int);
/* size: 40, cachelines: 1, members: 3 */
/* sum members: 35, holes: 1, sum holes: 5 */
/* last cacheline: 40 bytes */
};
class TestSAO : public ServerActiveObject {
public:
/* class ServerActiveObject <ancestor>; */ /* 0 0 */
/* XXX 184 bytes hole, try to pack */
/* --- cacheline 2 boundary (128 bytes) was 56 bytes ago --- */
float m_timer1; /* 184 4 */
float m_age; /* 188 4 */
void TestSAO(class TestSAO *, );
void TestSAO(class TestSAO *, const class TestSAO &);
void TestSAO(class TestSAO *, class ServerEnvironment *, v3f);
virtual enum ActiveObjectType getType(const class TestSAO *);
class ServerActiveObject * create(class ServerEnvironment *, v3f, const string &);
virtual void step(class TestSAO *, float, bool);
virtual bool getCollisionBox(const class TestSAO *, aabb3f *);
virtual bool collideWithObjects(const class TestSAO *);
virtual void ~TestSAO(class TestSAO *, int);
/* vtable has 4 entries: {
[0] = getType((null)),
[13] = step((null)),
[1] = getCollisionBox((null)),
[2] = collideWithObjects((null)),
} */
/* size: 192, cachelines: 3, members: 3 */
/* sum members: 8, holes: 1, sum holes: 184 */
};
class LuaEntitySAO : public UnitSAO {
public:
/* class UnitSAO <ancestor>; */ /* 0 752 */
/* XXX last struct has 7 bytes of padding */
/* --- cacheline 11 boundary (704 bytes) was 48 bytes ago --- */
string m_init_name; /* 752 32 */
/* --- cacheline 12 boundary (768 bytes) was 16 bytes ago --- */
string m_init_state; /* 784 32 */
bool m_registered; /* 816 1 */
/* XXX 3 bytes hole, try to pack */
v3f m_velocity; /* 820 12 */
/* --- cacheline 13 boundary (832 bytes) --- */
v3f m_acceleration; /* 832 12 */
float m_last_sent_yaw; /* 844 4 */
v3f m_last_sent_position; /* 848 12 */
v3f m_last_sent_velocity; /* 860 12 */
float m_last_sent_position_timer; /* 872 4 */
float m_last_sent_move_precision; /* 876 4 */
string m_current_texture_modifier; /* 880 32 */
void LuaEntitySAO(class LuaEntitySAO *, const class LuaEntitySAO &);
void LuaEntitySAO(class LuaEntitySAO *, class ServerEnvironment *, v3f, const string &, const string &);
virtual void ~LuaEntitySAO(class LuaEntitySAO *, int);
virtual enum ActiveObjectType getType(const class LuaEntitySAO *);
virtual enum ActiveObjectType getSendType(const class LuaEntitySAO *);
virtual void addedToEnvironment(class LuaEntitySAO *, u32);
class ServerActiveObject * create(class ServerEnvironment *, v3f, const string &);
virtual void step(class LuaEntitySAO *, float, bool);
virtual string getClientInitializationData(class LuaEntitySAO *, u16);
virtual void getStaticData(const class LuaEntitySAO *, string *);
virtual int punch(class LuaEntitySAO *, v3f, const class ToolCapabilities *, class ServerActiveObject *, float);
virtual void rightClick(class LuaEntitySAO *, class ServerActiveObject *);
virtual void setPos(class LuaEntitySAO *, const v3f &);
virtual void moveTo(class LuaEntitySAO *, v3f, bool);
virtual float getMinimumSavedMovement(class LuaEntitySAO *);
virtual string getDescription(class LuaEntitySAO *);
virtual void setHP(class LuaEntitySAO *, s16);
virtual s16 getHP(const class LuaEntitySAO *);
void setVelocity(class LuaEntitySAO *, v3f);
v3f getVelocity(class LuaEntitySAO *);
void setAcceleration(class LuaEntitySAO *, v3f);
v3f getAcceleration(class LuaEntitySAO *);
void setTextureMod(class LuaEntitySAO *, const string &);
string getTextureMod(const class LuaEntitySAO *);
void setSprite(class LuaEntitySAO *, v2s16, int, float, bool);
string getName(class LuaEntitySAO *);
virtual bool getCollisionBox(const class LuaEntitySAO *, aabb3f *);
virtual bool collideWithObjects(const class LuaEntitySAO *);
string getPropertyPacket(class LuaEntitySAO *);
void sendPosition(class LuaEntitySAO *, bool, bool);
/* vtable has 16 entries: {
[0] = getType((null)),
[5] = getSendType((null)),
[6] = addedToEnvironment((null)),
[13] = step((null)),
[14] = getClientInitializationData((null)),
[15] = getStaticData((null)),
[17] = punch((null)),
[18] = rightClick((null)),
[9] = setPos((null)),
[10] = moveTo((null)),
[11] = getMinimumSavedMovement((null)),
[12] = getDescription((null)),
[19] = setHP((null)),
[20] = getHP((null)),
[1] = getCollisionBox((null)),
[2] = collideWithObjects((null)),
} */
/* size: 912, cachelines: 15, members: 12 */
/* sum members: 157, holes: 1, sum holes: 3 */
/* paddings: 1, sum paddings: 7 */
/* last cacheline: 16 bytes */
/* BRAIN FART ALERT! 912 != 157 + 3(holes), diff = 752 */
};
class PlayerSAO : public UnitSAO {
public:
/* class UnitSAO <ancestor>; */ /* 0 752 */
/* XXX last struct has 7 bytes of padding */
/* --- cacheline 11 boundary (704 bytes) was 48 bytes ago --- */
class RemotePlayer * m_player; /* 752 8 */
u16 m_peer_id; /* 760 2 */
/* XXX 6 bytes hole, try to pack */
/* --- cacheline 12 boundary (768 bytes) --- */
class Inventory * m_inventory; /* 768 8 */
s16 m_damage; /* 776 2 */
/* XXX 2 bytes hole, try to pack */
class LagPool m_dig_pool; /* 780 8 */
class LagPool m_move_pool; /* 788 8 */
v3f m_last_good_position; /* 796 12 */
float m_time_from_last_teleport; /* 808 4 */
float m_time_from_last_punch; /* 812 4 */
v3s16 m_nocheat_dig_pos; /* 816 6 */
/* XXX 2 bytes hole, try to pack */
float m_nocheat_dig_time; /* 824 4 */
class IntervalLimiter m_breathing_interval; /* 828 4 */
/* --- cacheline 13 boundary (832 bytes) --- */
class IntervalLimiter m_drowning_interval; /* 832 4 */
class IntervalLimiter m_node_hurt_interval; /* 836 4 */
int m_wield_index; /* 840 4 */
bool m_position_not_sent; /* 844 1 */
/* XXX 3 bytes hole, try to pack */
class set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > m_privs; /* 848 48 */
/* --- cacheline 14 boundary (896 bytes) --- */
bool m_is_singleplayer; /* 896 1 */
/* XXX 1 byte hole, try to pack */
u16 m_breath; /* 898 2 */
f32 m_pitch; /* 900 4 */
f32 m_fov; /* 904 4 */
s16 m_wanted_range; /* 908 2 */
/* XXX 2 bytes hole, try to pack */
PlayerAttributes m_extra_attributes; /* 912 56 */
/* --- cacheline 15 boundary (960 bytes) was 8 bytes ago --- */
bool m_extended_attributes_modified; /* 968 1 */
/* XXX 3 bytes hole, try to pack */
float m_physics_override_speed; /* 972 4 */
float m_physics_override_jump; /* 976 4 */
float m_physics_override_gravity; /* 980 4 */
bool m_physics_override_sneak; /* 984 1 */
bool m_physics_override_sneak_glitch; /* 985 1 */
bool m_physics_override_new_move; /* 986 1 */
bool m_physics_override_sent; /* 987 1 */
void PlayerSAO(class PlayerSAO *, const class PlayerSAO &);
void PlayerSAO(class PlayerSAO *, class ServerEnvironment *, u16, bool);
virtual void ~PlayerSAO(class PlayerSAO *, int);
virtual enum ActiveObjectType getType(const class PlayerSAO *);
virtual enum ActiveObjectType getSendType(const class PlayerSAO *);
virtual string getDescription(class PlayerSAO *);
virtual void addedToEnvironment(class PlayerSAO *, u32);
virtual void removingFromEnvironment(class PlayerSAO *);
virtual bool isStaticAllowed(const class PlayerSAO *);
virtual string getClientInitializationData(class PlayerSAO *, u16);
virtual void getStaticData(const class PlayerSAO *, string *);
virtual void step(class PlayerSAO *, float, bool);
void setBasePosition(class PlayerSAO *, const v3f &);
virtual void setPos(class PlayerSAO *, const v3f &);
virtual void moveTo(class PlayerSAO *, v3f, bool);
virtual void setYaw(class PlayerSAO *, float);
void setYawAndSend(class PlayerSAO *, float);
void setPitch(class PlayerSAO *, float);
void setPitchAndSend(class PlayerSAO *, float);
f32 getPitch(const class PlayerSAO *);
f32 getRadPitch(const class PlayerSAO *);
f32 getRadPitchDep(const class PlayerSAO *);
void setFov(class PlayerSAO *, float);
f32 getFov(const class PlayerSAO *);
void setWantedRange(class PlayerSAO *, s16);
s16 getWantedRange(const class PlayerSAO *);
virtual int punch(class PlayerSAO *, v3f, const class ToolCapabilities *, class ServerActiveObject *, float);
virtual void rightClick(class PlayerSAO *, class ServerActiveObject *);
virtual void setHP(class PlayerSAO *, s16);
void setHPRaw(class PlayerSAO *, s16);
s16 readDamage(class PlayerSAO *);
u16 getBreath(const class PlayerSAO *);
void setBreath(class PlayerSAO *, u16, bool);
virtual class Inventory * getInventory(class PlayerSAO *);
virtual const class Inventory * getInventory(const class PlayerSAO *);
virtual class InventoryLocation getInventoryLocation(const class PlayerSAO *);
virtual string getWieldList(const class PlayerSAO *);
virtual class ItemStack getWieldedItem(const class PlayerSAO *);
class ItemStack getWieldedItemOrHand(const class PlayerSAO *);
virtual bool setWieldedItem(class PlayerSAO *, const class ItemStack &);
virtual int getWieldIndex(const class PlayerSAO *);
void setWieldIndex(class PlayerSAO *, int);
void setExtendedAttribute(class PlayerSAO *, const string &, const string &);
bool getExtendedAttribute(class PlayerSAO *, const string &, string *);
const PlayerAttributes & getExtendedAttributes(class PlayerSAO *);
bool extendedAttributesModified(const class PlayerSAO *);
void setExtendedAttributeModified(class PlayerSAO *, bool);
void disconnected(class PlayerSAO *);
class RemotePlayer * getPlayer(class PlayerSAO *);
u16 getPeerID(const class PlayerSAO *);
v3f getLastGoodPosition(const class PlayerSAO *);
float resetTimeFromLastPunch(class PlayerSAO *);
void noCheatDigStart(class PlayerSAO *, v3s16);
v3s16 getNoCheatDigPos(class PlayerSAO *);
float getNoCheatDigTime(class PlayerSAO *);
void noCheatDigEnd(class PlayerSAO *);
class LagPool & getDigPool(class PlayerSAO *);
bool checkMovementCheat(class PlayerSAO *);
void updatePrivileges(class PlayerSAO *, const class set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_, bool);
virtual bool getCollisionBox(const class PlayerSAO *, aabb3f *);
virtual bool collideWithObjects(const class PlayerSAO *);
void initialize(class PlayerSAO *, class RemotePlayer *, const class set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_);
v3f getEyePosition(const class PlayerSAO *);
v3f getEyeOffset(const class PlayerSAO *);
string getPropertyPacket(class PlayerSAO *);
void unlinkPlayerSessionAndSave(class PlayerSAO *);
/* vtable has 24 entries: {
[0] = getType((null)),
[5] = getSendType((null)),
[12] = getDescription((null)),
[6] = addedToEnvironment((null)),
[7] = removingFromEnvironment((null)),
[16] = isStaticAllowed((null)),
[14] = getClientInitializationData((null)),
[15] = getStaticData((null)),
[13] = step((null)),
[9] = setPos((null)),
[10] = moveTo((null)),
[43] = setYaw((null)),
[17] = punch((null)),
[18] = rightClick((null)),
[19] = setHP((null)),
[35] = getInventory((null)),
[36] = getInventory((null)),
[37] = getInventoryLocation((null)),
[39] = getWieldList((null)),
[41] = getWieldedItem((null)),
[42] = setWieldedItem((null)),
[40] = getWieldIndex((null)),
[1] = getCollisionBox((null)),
[2] = collideWithObjects((null)),
} */
/* size: 992, cachelines: 16, members: 32 */
/* sum members: 217, holes: 7, sum holes: 19 */
/* padding: 4 */
/* paddings: 1, sum paddings: 7 */
/* last cacheline: 32 bytes */
/* BRAIN FART ALERT! 992 != 217 + 19(holes), diff = 756 */
};
class UnitSAO : public ServerActiveObject {
public:
/* class ServerActiveObject <ancestor>; */ /* 0 0 */
/* XXX 184 bytes hole, try to pack */
protected:
/* --- cacheline 2 boundary (128 bytes) was 56 bytes ago --- */
s16 m_hp; /* 184 2 */
/* XXX 2 bytes hole, try to pack */
float m_yaw; /* 188 4 */
/* --- cacheline 3 boundary (192 bytes) --- */
bool m_properties_sent; /* 192 1 */
/* XXX 7 bytes hole, try to pack */
struct ObjectProperties m_prop; /* 200 288 */
/* --- cacheline 7 boundary (448 bytes) was 40 bytes ago --- */
ItemGroupList m_armor_groups; /* 488 56 */
/* --- cacheline 8 boundary (512 bytes) was 32 bytes ago --- */
bool m_armor_groups_sent; /* 544 1 */
/* XXX 3 bytes hole, try to pack */
v2f m_animation_range; /* 548 8 */
float m_animation_speed; /* 556 4 */
float m_animation_blend; /* 560 4 */
bool m_animation_loop; /* 564 1 */
bool m_animation_sent; /* 565 1 */
/* XXX 2 bytes hole, try to pack */
class unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, irr::core::vector2d<irr::core::vector3d<float> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, irr::core::vector2d<irr::core::vector3d<float> > > > > m_bone_position; /* 568 56 */
/* --- cacheline 9 boundary (576 bytes) was 48 bytes ago --- */
bool m_bone_position_sent; /* 624 1 */
/* XXX 3 bytes hole, try to pack */
int m_attachment_parent_id; /* 628 4 */
class unordered_set<int, std::hash<int>, std::equal_to<int>, std::allocator<int> > m_attachment_child_ids; /* 632 56 */
/* --- cacheline 10 boundary (640 bytes) was 48 bytes ago --- */
string m_attachment_bone; /* 688 32 */
/* --- cacheline 11 boundary (704 bytes) was 16 bytes ago --- */
v3f m_attachment_position; /* 720 12 */
v3f m_attachment_rotation; /* 732 12 */
bool m_attachment_sent; /* 744 1 */
public:
void UnitSAO(class UnitSAO *, const class UnitSAO &);
void UnitSAO(class UnitSAO *, class ServerEnvironment *, v3f);
virtual void ~UnitSAO(class UnitSAO *, int);
virtual void setYaw(class UnitSAO *, float);
float getYaw(const class UnitSAO *);
f32 getRadYaw(const class UnitSAO *);
f32 getRadYawDep(const class UnitSAO *);
virtual s16 getHP(const class UnitSAO *);
bool isDead(const class UnitSAO *);
bool isAttached(const class UnitSAO *);
virtual void setArmorGroups(class UnitSAO *, const ItemGroupList &);
virtual const ItemGroupList & getArmorGroups(class UnitSAO *);
virtual void setAnimation(class UnitSAO *, v2f, float, float, bool);
virtual void getAnimation(class UnitSAO *, v2f *, float *, float *, bool *);
virtual void setBonePosition(class UnitSAO *, const string &, v3f, v3f);
virtual void getBonePosition(class UnitSAO *, const string &, v3f *, v3f *);
virtual void setAttachment(class UnitSAO *, int, const string &, v3f, v3f);
virtual void getAttachment(class UnitSAO *, int *, string *, v3f *, v3f *);
virtual void addAttachmentChild(class UnitSAO *, int);
virtual void removeAttachmentChild(class UnitSAO *, int);
virtual const class unordered_set<int, std::hash<int>, std::equal_to<int>, std::allocator<int> > & getAttachmentChildIds(class UnitSAO *);
virtual class ObjectProperties * accessObjectProperties(class UnitSAO *);
virtual void notifyObjectPropertiesModified(class UnitSAO *);
/* vtable has 15 entries: {
[43] = setYaw((null)),
[20] = getHP((null)),
[21] = setArmorGroups((null)),
[22] = getArmorGroups((null)),
[24] = setAnimation((null)),
[25] = getAnimation((null)),
[26] = setBonePosition((null)),
[27] = getBonePosition((null)),
[28] = setAttachment((null)),
[29] = getAttachment((null)),
[30] = addAttachmentChild((null)),
[31] = removeAttachmentChild((null)),
[32] = getAttachmentChildIds((null)),
[33] = accessObjectProperties((null)),
[34] = notifyObjectPropertiesModified((null)),
} */
/* size: 752, cachelines: 12, members: 20 */
/* sum members: 544, holes: 6, sum holes: 201 */
/* padding: 7 */
/* last cacheline: 48 bytes */
};
class CCraftDefManager : public IWritableCraftDefManager {
public:
/* class IWritableCraftDefManager <ancestor>; */ /* 0 8 */
class vector<std::map<long unsigned int, std::vector<CraftDefinition*, std::allocator<CraftDefinition*> >, std::less<long unsigned int>, std::allocator<std::pair<long unsigned int const, std::vector<CraftDefinition*, std::allocator<CraftDefinition*> > > > >, std::allocator<std::map<long unsigned int, std::vector<CraftDefinition*, std::allocator<CraftDefinition*> >, std::less<long unsigned int>, std::allocator<std::pair<long unsigned int const, std::vector<CraftDefinition*, std::allocator<CraftDefinition*> > > > > > > m_craft_defs; /* 8 24 */
class map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<CraftDefinition*, std::allocator<CraftDefinition*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<CraftDefinition*, std::allocator<CraftDefinition*> > > > > m_output_craft_definitions; /* 32 48 */
void CCraftDefManager(class CCraftDefManager *, const class CCraftDefManager &);
void CCraftDefManager(class CCraftDefManager *);
virtual void ~CCraftDefManager(class CCraftDefManager *, int);
virtual bool getCraftResult(const class CCraftDefManager *, class CraftInput &, class CraftOutput &, class vector<ItemStack, std::allocator<ItemStack> > &, bool, class IGameDef *);
virtual class vector<CraftDefinition*, std::allocator<CraftDefinition*> > getCraftRecipes(const class CCraftDefManager *, class CraftOutput &, class IGameDef *, unsigned int);
virtual bool clearCraftRecipesByOutput(class CCraftDefManager *, const class CraftOutput &, class IGameDef *);
virtual bool clearCraftRecipesByInput(class CCraftDefManager *, enum CraftMethod, unsigned int, const class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11, class IGameDef *);
virtual string dump(const class CCraftDefManager *);
virtual void registerCraft(class CCraftDefManager *, class CraftDefinition *, class IGameDef *);
virtual void clear(class CCraftDefManager *);
virtual void initHashes(class CCraftDefManager *, class IGameDef *);
/* vtable has 8 entries: {
[2] = getCraftResult((null)),
[3] = getCraftRecipes((null)),
[5] = clearCraftRecipesByOutput((null)),
[6] = clearCraftRecipesByInput((null)),
[4] = dump((null)),
[7] = registerCraft((null)),
[8] = clear((null)),
[9] = initHashes((null)),
} */
/* size: 80, cachelines: 2, members: 3 */
/* last cacheline: 16 bytes */
/* BRAIN FART ALERT! 80 != 72 + 0(holes), diff = 8 */
};
class CraftDefinitionFuel : public CraftDefinition {
public:
/* class CraftDefinition <ancestor>; */ /* 0 8 */
string recipe; /* 8 32 */
string recipe_name; /* 40 32 */
/* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
bool hash_inited; /* 72 1 */
/* XXX 3 bytes hole, try to pack */
float burntime; /* 76 4 */
struct CraftReplacements replacements; /* 80 24 */
void CraftDefinitionFuel(class CraftDefinitionFuel *);
void CraftDefinitionFuel(class CraftDefinitionFuel *, const string &, float, const class CraftReplacements &);
virtual void ~CraftDefinitionFuel(class CraftDefinitionFuel *, int);
virtual string getName(const class CraftDefinitionFuel *);
virtual bool check(const class CraftDefinitionFuel *, const class CraftInput &, class IGameDef *);
virtual class CraftOutput getOutput(const class CraftDefinitionFuel *, const class CraftInput &, class IGameDef *);
virtual class CraftInput getInput(const class CraftDefinitionFuel *, const class CraftOutput &, class IGameDef *);
virtual void decrementInput(const class CraftDefinitionFuel *, class CraftInput &, class vector<ItemStack, std::allocator<ItemStack> > &, class IGameDef *);
virtual enum CraftHashType getHashType(const class CraftDefinitionFuel *);
virtual u64 getHash(const class CraftDefinitionFuel *, enum CraftHashType);
virtual void initHash(class CraftDefinitionFuel *, class IGameDef *);
virtual string dump(const class CraftDefinitionFuel *);
/* vtable has 9 entries: {
[2] = getName((null)),
[3] = check((null)),
[4] = getOutput((null)),
[5] = getInput((null)),
[6] = decrementInput((null)),
[7] = getHashType((null)),
[8] = getHash((null)),
[9] = initHash((null)),
[10] = dump((null)),
} */
/* size: 104, cachelines: 2, members: 6 */
/* sum members: 93, holes: 1, sum holes: 3 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 104 != 93 + 3(holes), diff = 8 */
};
class CraftDefinitionCooking : public CraftDefinition {
public:
/* class CraftDefinition <ancestor>; */ /* 0 8 */
string output; /* 8 32 */
string recipe; /* 40 32 */
/* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
string recipe_name; /* 72 32 */
bool hash_inited; /* 104 1 */
/* XXX 3 bytes hole, try to pack */
float cooktime; /* 108 4 */
struct CraftReplacements replacements; /* 112 24 */
void CraftDefinitionCooking(class CraftDefinitionCooking *);
void CraftDefinitionCooking(class CraftDefinitionCooking *, const string &, const string &, float, const class CraftReplacements &);
virtual void ~CraftDefinitionCooking(class CraftDefinitionCooking *, int);
virtual string getName(const class CraftDefinitionCooking *);
virtual bool check(const class CraftDefinitionCooking *, const class CraftInput &, class IGameDef *);
virtual class CraftOutput getOutput(const class CraftDefinitionCooking *, const class CraftInput &, class IGameDef *);
virtual class CraftInput getInput(const class CraftDefinitionCooking *, const class CraftOutput &, class IGameDef *);
virtual void decrementInput(const class CraftDefinitionCooking *, class CraftInput &, class vector<ItemStack, std::allocator<ItemStack> > &, class IGameDef *);
virtual enum CraftHashType getHashType(const class CraftDefinitionCooking *);
virtual u64 getHash(const class CraftDefinitionCooking *, enum CraftHashType);
virtual void initHash(class CraftDefinitionCooking *, class IGameDef *);
virtual string dump(const class CraftDefinitionCooking *);
/* vtable has 9 entries: {
[2] = getName((null)),
[3] = check((null)),
[4] = getOutput((null)),
[5] = getInput((null)),
[6] = decrementInput((null)),
[7] = getHashType((null)),
[8] = getHash((null)),
[9] = initHash((null)),
[10] = dump((null)),
} */
/* size: 136, cachelines: 3, members: 7 */
/* sum members: 125, holes: 1, sum holes: 3 */
/* last cacheline: 8 bytes */
/* BRAIN FART ALERT! 136 != 125 + 3(holes), diff = 8 */
};
class CraftDefinitionToolRepair : public CraftDefinition {
public:
/* class CraftDefinition <ancestor>; */ /* 0 8 */
float additional_wear; /* 8 4 */
void CraftDefinitionToolRepair(class CraftDefinitionToolRepair *);
void CraftDefinitionToolRepair(class CraftDefinitionToolRepair *, float);
virtual void ~CraftDefinitionToolRepair(class CraftDefinitionToolRepair *, int);
virtual string getName(const class CraftDefinitionToolRepair *);
virtual bool check(const class CraftDefinitionToolRepair *, const class CraftInput &, class IGameDef *);
virtual class CraftOutput getOutput(const class CraftDefinitionToolRepair *, const class CraftInput &, class IGameDef *);
virtual class CraftInput getInput(const class CraftDefinitionToolRepair *, const class CraftOutput &, class IGameDef *);
virtual void decrementInput(const class CraftDefinitionToolRepair *, class CraftInput &, class vector<ItemStack, std::allocator<ItemStack> > &, class IGameDef *);
virtual enum CraftHashType getHashType(const class CraftDefinitionToolRepair *);
virtual u64 getHash(const class CraftDefinitionToolRepair *, enum CraftHashType);
virtual void initHash(class CraftDefinitionToolRepair *, class IGameDef *);
virtual string dump(const class CraftDefinitionToolRepair *);
/* vtable has 9 entries: {
[2] = getName((null)),
[3] = check((null)),
[4] = getOutput((null)),
[5] = getInput((null)),
[6] = decrementInput((null)),
[7] = getHashType((null)),
[8] = getHash((null)),
[9] = initHash((null)),
[10] = dump((null)),
} */
/* size: 16, cachelines: 1, members: 2 */
/* padding: 4 */
/* last cacheline: 16 bytes */
/* BRAIN FART ALERT! 16 != 4 + 0(holes), diff = 12 */
};
class CraftDefinitionShapeless : public CraftDefinition {
public:
/* class CraftDefinition <ancestor>; */ /* 0 8 */
string output; /* 8 32 */
class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > recipe; /* 40 24 */
/* --- cacheline 1 boundary (64 bytes) --- */
class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > recipe_names; /* 64 24 */
bool hash_inited; /* 88 1 */
/* XXX 7 bytes hole, try to pack */
struct CraftReplacements replacements; /* 96 24 */
void CraftDefinitionShapeless(class CraftDefinitionShapeless *);
void CraftDefinitionShapeless(class CraftDefinitionShapeless *, const string &, const class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11, const class CraftReplacements &);
virtual void ~CraftDefinitionShapeless(class CraftDefinitionShapeless *, int);
virtual string getName(const class CraftDefinitionShapeless *);
virtual bool check(const class CraftDefinitionShapeless *, const class CraftInput &, class IGameDef *);
virtual class CraftOutput getOutput(const class CraftDefinitionShapeless *, const class CraftInput &, class IGameDef *);
virtual class CraftInput getInput(const class CraftDefinitionShapeless *, const class CraftOutput &, class IGameDef *);
virtual void decrementInput(const class CraftDefinitionShapeless *, class CraftInput &, class vector<ItemStack, std::allocator<ItemStack> > &, class IGameDef *);
virtual enum CraftHashType getHashType(const class CraftDefinitionShapeless *);
virtual u64 getHash(const class CraftDefinitionShapeless *, enum CraftHashType);
virtual void initHash(class CraftDefinitionShapeless *, class IGameDef *);
virtual string dump(const class CraftDefinitionShapeless *);
/* vtable has 9 entries: {
[2] = getName((null)),
[3] = check((null)),
[4] = getOutput((null)),
[5] = getInput((null)),
[6] = decrementInput((null)),
[7] = getHashType((null)),
[8] = getHash((null)),
[9] = initHash((null)),
[10] = dump((null)),
} */
/* size: 120, cachelines: 2, members: 6 */
/* sum members: 105, holes: 1, sum holes: 7 */
/* last cacheline: 56 bytes */
/* BRAIN FART ALERT! 120 != 105 + 7(holes), diff = 8 */
};
class CraftDefinitionShaped : public CraftDefinition {
public:
/* class CraftDefinition <ancestor>; */ /* 0 8 */
string output; /* 8 32 */
unsigned int width; /* 40 4 */
/* XXX 4 bytes hole, try to pack */
class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > recipe; /* 48 24 */
/* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > recipe_names; /* 72 24 */
bool hash_inited; /* 96 1 */
/* XXX 7 bytes hole, try to pack */
struct CraftReplacements replacements; /* 104 24 */
void CraftDefinitionShaped(class CraftDefinitionShaped *);
void CraftDefinitionShaped(class CraftDefinitionShaped *, const string &, unsigned int, const class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11, const class CraftReplacements &);
virtual void ~CraftDefinitionShaped(class CraftDefinitionShaped *, int);
virtual string getName(const class CraftDefinitionShaped *);
virtual bool check(const class CraftDefinitionShaped *, const class CraftInput &, class IGameDef *);
virtual class CraftOutput getOutput(const class CraftDefinitionShaped *, const class CraftInput &, class IGameDef *);
virtual class CraftInput getInput(const class CraftDefinitionShaped *, const class CraftOutput &, class IGameDef *);
virtual void decrementInput(const class CraftDefinitionShaped *, class CraftInput &, class vector<ItemStack, std::allocator<ItemStack> > &, class IGameDef *);
virtual enum CraftHashType getHashType(const class CraftDefinitionShaped *);
virtual u64 getHash(const class CraftDefinitionShaped *, enum CraftHashType);
virtual void initHash(class CraftDefinitionShaped *, class IGameDef *);
virtual string dump(const class CraftDefinitionShaped *);
/* vtable has 9 entries: {
[2] = getName((null)),
[3] = check((null)),
[4] = getOutput((null)),
[5] = getInput((null)),
[6] = decrementInput((null)),
[7] = getHashType((null)),
[8] = getHash((null)),
[9] = initHash((null)),
[10] = dump((null)),
} */
/* size: 128, cachelines: 2, members: 7 */
/* sum members: 109, holes: 2, sum holes: 11 */
/* BRAIN FART ALERT! 128 != 109 + 11(holes), diff = 8 */
};
class Database_Dummy : public Database {
public:
/* class Database <ancestor>; */ /* 0 8 */
class map<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<long int>, std::allocator<std::pair<long int const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > m_database; /* 8 48 */
virtual bool saveBlock(class Database_Dummy *, const v3s16 &, const string &);
virtual void loadBlock(class Database_Dummy *, const v3s16 &, string *);
virtual bool deleteBlock(class Database_Dummy *, const v3s16 &);
virtual void listAllLoadableBlocks(class Database_Dummy *, class vector<irr::core::vector3d<short int>, std::allocator<irr::core::vector3d<short int> > > &);
virtual void ~Database_Dummy(class Database_Dummy *, int);
/* vtable has 4 entries: {
[4] = saveBlock((null)),
[5] = loadBlock((null)),
[6] = deleteBlock((null)),
[7] = listAllLoadableBlocks((null)),
} */
/* size: 56, cachelines: 1, members: 2 */
/* last cacheline: 56 bytes */
/* BRAIN FART ALERT! 56 != 48 + 0(holes), diff = 8 */
};
class Database_LevelDB : public Database {
public:
/* class Database <ancestor>; */ /* 0 8 */
class DB * m_database; /* 8 8 */
void Database_LevelDB(class Database_LevelDB *, const class Database_LevelDB &);
void Database_LevelDB(class Database_LevelDB *, const string &);
virtual void ~Database_LevelDB(class Database_LevelDB *, int);
virtual bool saveBlock(class Database_LevelDB *, const v3s16 &, const string &);
virtual void loadBlock(class Database_LevelDB *, const v3s16 &, string *);
virtual bool deleteBlock(class Database_LevelDB *, const v3s16 &);
virtual void listAllLoadableBlocks(class Database_LevelDB *, class vector<irr::core::vector3d<short int>, std::allocator<irr::core::vector3d<short int> > > &);
/* vtable has 4 entries: {
[4] = saveBlock((null)),
[5] = loadBlock((null)),
[6] = deleteBlock((null)),
[7] = listAllLoadableBlocks((null)),
} */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
/* BRAIN FART ALERT! 16 != 8 + 0(holes), diff = 8 */
};
class DatabaseException : public BaseException {
public:
/* class BaseException <ancestor>; */ /* 0 40 */
void DatabaseException(class DatabaseException *, );
void DatabaseException(class DatabaseException *, const class DatabaseException &);
void DatabaseException(class DatabaseException *, const string &);
virtual void ~DatabaseException(class DatabaseException *, int);
/* size: 40, cachelines: 1, members: 1 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 40 != 0 + 0(holes), diff = 40 */
};
class Database_SQLite3 : public Database {
public:
/* class Database <ancestor>; */ /* 0 8 */
bool m_initialized; /* 8 1 */
/* XXX 7 bytes hole, try to pack */
string m_savedir; /* 16 32 */
sqlite3 * m_database; /* 48 8 */
sqlite3_stmt * m_stmt_read; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
sqlite3_stmt * m_stmt_write; /* 64 8 */
sqlite3_stmt * m_stmt_list; /* 72 8 */
sqlite3_stmt * m_stmt_delete; /* 80 8 */
sqlite3_stmt * m_stmt_begin; /* 88 8 */
sqlite3_stmt * m_stmt_end; /* 96 8 */
s64 m_busy_handler_data[2]; /* 104 16 */
void Database_SQLite3(class Database_SQLite3 *, const class Database_SQLite3 &);
void Database_SQLite3(class Database_SQLite3 *, const string &);
virtual void ~Database_SQLite3(class Database_SQLite3 *, int);
virtual void beginSave(class Database_SQLite3 *);
virtual void endSave(class Database_SQLite3 *);
virtual bool saveBlock(class Database_SQLite3 *, const v3s16 &, const string &);
virtual void loadBlock(class Database_SQLite3 *, const v3s16 &, string *);
virtual bool deleteBlock(class Database_SQLite3 *, const v3s16 &);
virtual void listAllLoadableBlocks(class Database_SQLite3 *, class vector<irr::core::vector3d<short int>, std::allocator<irr::core::vector3d<short int> > > &);
virtual bool initialized(const class Database_SQLite3 *);
void openDatabase(class Database_SQLite3 *);
void createDatabase(class Database_SQLite3 *);
void verifyDatabase(class Database_SQLite3 *);
void bindPos(class Database_SQLite3 *, sqlite3_stmt *, const v3s16 &, int);
int busyHandler(void *, int);
/* vtable has 7 entries: {
[2] = beginSave((null)),
[3] = endSave((null)),
[4] = saveBlock((null)),
[5] = loadBlock((null)),
[6] = deleteBlock((null)),
[7] = listAllLoadableBlocks((null)),
[8] = initialized((null)),
} */
/* size: 120, cachelines: 2, members: 11 */
/* sum members: 105, holes: 1, sum holes: 7 */
/* last cacheline: 56 bytes */
/* BRAIN FART ALERT! 120 != 105 + 7(holes), diff = 8 */
};
class FileNotGoodException : public BaseException {
public:
/* class BaseException <ancestor>; */ /* 0 40 */
void FileNotGoodException(class FileNotGoodException *, );
void FileNotGoodException(class FileNotGoodException *, const class FileNotGoodException &);
void FileNotGoodException(class FileNotGoodException *, const string &);
virtual void ~FileNotGoodException(class FileNotGoodException *, int);
/* size: 40, cachelines: 1, members: 1 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 40 != 0 + 0(holes), diff = 40 */
};
struct DebugStack {
threadid_t threadid; /* 0 8 */
char stack[50][300]; /* 8 15000 */
/* --- cacheline 234 boundary (14976 bytes) was 32 bytes ago --- */
int stack_i; /* 15008 4 */
int stack_max_i; /* 15012 4 */
void DebugStack(class DebugStack *, threadid_t);
void print(class DebugStack *, FILE *, bool);
void print(class DebugStack *, ostream &, bool);
/* size: 15016, cachelines: 235, members: 4 */
/* last cacheline: 40 bytes */
};
class Hud {
public:
class IVideoDriver * driver; /* 0 8 */
class ISceneManager * smgr; /* 8 8 */
class IGUIEnvironment * guienv; /* 16 8 */
class Client * client; /* 24 8 */
class LocalPlayer * player; /* 32 8 */
class Inventory * inventory; /* 40 8 */
class ITextureSource * tsrc; /* 48 8 */
class SColor crosshair_argb; /* 56 4 */
class SColor selectionbox_argb; /* 60 4 */
/* --- cacheline 1 boundary (64 bytes) --- */
bool use_crosshair_image; /* 64 1 */
/* XXX 7 bytes hole, try to pack */
string hotbar_image; /* 72 32 */
bool use_hotbar_image; /* 104 1 */
/* XXX 7 bytes hole, try to pack */
string hotbar_selected_image; /* 112 32 */
/* --- cacheline 2 boundary (128 bytes) was 16 bytes ago --- */
bool use_hotbar_selected_image; /* 144 1 */
/* XXX 3 bytes hole, try to pack */
float m_hud_scaling; /* 148 4 */
v3s16 m_camera_offset; /* 152 6 */
/* XXX 2 bytes hole, try to pack */
v2u32 m_screensize; /* 160 8 */
v2s32 m_displaycenter; /* 168 8 */
s32 m_hotbar_imagesize; /* 176 4 */
s32 m_padding; /* 180 4 */
class SColor hbar_colors[4]; /* 184 16 */
/* --- cacheline 3 boundary (192 bytes) was 8 bytes ago --- */
class vector<irr::core::aabbox3d<float>, std::allocator<irr::core::aabbox3d<float> > > m_selection_boxes; /* 200 24 */
class vector<irr::core::aabbox3d<float>, std::allocator<irr::core::aabbox3d<float> > > m_halo_boxes; /* 224 24 */
v3f m_selection_pos; /* 248 12 */
/* --- cacheline 4 boundary (256 bytes) was 4 bytes ago --- */
v3f m_selection_pos_with_offset; /* 260 12 */
class IMesh * m_selection_mesh; /* 272 8 */
class SColor m_selection_mesh_color; /* 280 4 */
v3f m_selected_face_normal; /* 284 12 */
class SMaterial m_selection_material; /* 296 176 */
/* XXX last struct has 6 bytes of padding */
/* --- cacheline 7 boundary (448 bytes) was 24 bytes ago --- */
bool m_use_selection_mesh; /* 472 1 */
void Hud(class Hud *, class IVideoDriver *, class ISceneManager *, class IGUIEnvironment *, class Client *, class LocalPlayer *, class Inventory *);
void ~Hud(class Hud *, int);
void drawHotbar(class Hud *, u16);
void resizeHotbar(class Hud *);
void drawCrosshair(class Hud *);
void drawSelectionMesh(class Hud *);
void updateSelectionMesh(class Hud *, const v3s16 &);
class vector<irr::core::aabbox3d<float>, std::allocator<irr::core::aabbox3d<float> > > * getSelectionBoxes(class Hud *);
void setSelectionPos(class Hud *, const v3f &, const v3s16 &);
v3f getSelectionPos(const class Hud *);
void setSelectionMeshColor(class Hud *, const class SColor &);
void setSelectedFaceNormal(class Hud *, const v3f &);
void drawLuaElements(class Hud *, const v3s16 &);
void drawStatbar(class Hud *, v2s32, u16, u16, string, s32, v2s32, v2s32);
void drawItems(class Hud *, v2s32, v2s32, s32, s32, class InventoryList *, u16, u16);
void drawItem(class Hud *, const class ItemStack &, const class rect<int> &, bool);
/* size: 480, cachelines: 8, members: 30 */
/* sum members: 454, holes: 4, sum holes: 19 */
/* padding: 7 */
/* paddings: 1, sum paddings: 6 */
/* last cacheline: 32 bytes */
};
struct DungeonParams {
s32 seed; /* 0 4 */
content_t c_water; /* 4 2 */
content_t c_river_water; /* 6 2 */
content_t c_wall; /* 8 2 */
content_t c_alt_wall; /* 10 2 */
content_t c_stair; /* 12 2 */
bool diagonal_dirs; /* 14 1 */
bool only_in_ground; /* 15 1 */
v3s16 holesize; /* 16 6 */
u16 corridor_len_min; /* 22 2 */
u16 corridor_len_max; /* 24 2 */
v3s16 room_size_min; /* 26 6 */
v3s16 room_size_max; /* 32 6 */
v3s16 room_size_large_min; /* 38 6 */
v3s16 room_size_large_max; /* 44 6 */
u16 rooms_min; /* 50 2 */
u16 rooms_max; /* 52 2 */
s16 y_min; /* 54 2 */
s16 y_max; /* 56 2 */
/* XXX 2 bytes hole, try to pack */
enum GenNotifyType notifytype; /* 60 4 */
/* --- cacheline 1 boundary (64 bytes) --- */
struct NoiseParams np_density; /* 64 40 */
struct NoiseParams np_alt_wall; /* 104 40 */
void DungeonParams(class DungeonParams *);
/* size: 144, cachelines: 3, members: 22 */
/* sum members: 142, holes: 1, sum holes: 2 */
/* last cacheline: 16 bytes */
};
class DungeonGen {
public:
class MMVManip * vm; /* 0 8 */
class INodeDefManager * ndef; /* 8 8 */
class GenerateNotifier * gennotify; /* 16 8 */
u32 blockseed; /* 24 4 */
class PseudoRandom random; /* 28 4 */
v3s16 csize; /* 32 6 */
content_t c_torch; /* 38 2 */
struct DungeonParams dp; /* 40 144 */
/* --- cacheline 2 boundary (128 bytes) was 56 bytes ago --- */
v3s16 m_pos; /* 184 6 */
v3s16 m_dir; /* 190 6 */
void DungeonGen(class DungeonGen *, class INodeDefManager *, class GenerateNotifier *, class DungeonParams *);
void generate(class DungeonGen *, class MMVManip *, u32, v3s16, v3s16);
void makeDungeon(class DungeonGen *, v3s16);
void makeRoom(class DungeonGen *, v3s16, v3s16);
void makeCorridor(class DungeonGen *, v3s16, v3s16, v3s16 &, v3s16 &);
void makeDoor(class DungeonGen *, v3s16, v3s16);
void makeFill(class DungeonGen *, v3s16, v3s16, u8, class MapNode, u8);
void makeHole(class DungeonGen *, v3s16);
bool findPlaceForDoor(class DungeonGen *, v3s16 &, v3s16 &);
bool findPlaceForRoomDoor(class DungeonGen *, v3s16, v3s16 &, v3s16 &, v3s16 &);
void randomizeDir(class DungeonGen *);
/* size: 200, cachelines: 4, members: 10 */
/* padding: 4 */
/* last cacheline: 8 bytes */
};
class UniqueQueue<irr::core::vector3d<short int> > {
class set<irr::core::vector3d<short int>, std::less<irr::core::vector3d<short int> >, std::allocator<irr::core::vector3d<short int> > > m_set; /* 0 48 */
class queue<irr::core::vector3d<short int>, std::deque<irr::core::vector3d<short int>, std::allocator<irr::core::vector3d<short int> > > > m_queue; /* 48 80 */
public:
bool push_back(class UniqueQueue<irr::core::vector3d<short int> > *, const class vector3d<short int> &);
void pop_front(class UniqueQueue<irr::core::vector3d<short int> > *);
const class vector3d<short int> & front(const class UniqueQueue<irr::core::vector3d<short int> > *);
u32 size(const class UniqueQueue<irr::core::vector3d<short int> > *);
void ~UniqueQueue(class UniqueQueue<irr::core::vector3d<short int> > *, int);
void UniqueQueue(class UniqueQueue<irr::core::vector3d<short int> > *);
/* size: 128, cachelines: 2, members: 2 */
};
struct BlockMakeData {
class MMVManip * vmanip; /* 0 8 */
u64 seed; /* 8 8 */
v3s16 blockpos_min; /* 16 6 */
v3s16 blockpos_max; /* 22 6 */
v3s16 blockpos_requested; /* 28 6 */
/* XXX 6 bytes hole, try to pack */
class UniqueQueue<irr::core::vector3d<short int> > transforming_liquid; /* 40 128 */
/* --- cacheline 2 boundary (128 bytes) was 40 bytes ago --- */
class INodeDefManager * nodedef; /* 168 8 */
void BlockMakeData(class BlockMakeData *);
void ~BlockMakeData(class BlockMakeData *, int);
/* size: 176, cachelines: 3, members: 7 */
/* sum members: 170, holes: 1, sum holes: 6 */
/* last cacheline: 48 bytes */
};
class EmergeThread : public Thread {
public:
/* class Thread <ancestor>; */ /* 0 0 */
/* XXX 144 bytes hole, try to pack */
/* --- cacheline 2 boundary (128 bytes) was 16 bytes ago --- */
bool enable_mapgen_debug_info; /* 144 1 */
/* XXX 3 bytes hole, try to pack */
int id; /* 148 4 */
class Server * m_server; /* 152 8 */
class ServerMap * m_map; /* 160 8 */
class EmergeManager * m_emerge; /* 168 8 */
class Mapgen * m_mapgen; /* 176 8 */
class Event m_queue_event; /* 184 96 */
/* XXX last struct has 7 bytes of padding */
/* --- cacheline 4 boundary (256 bytes) was 24 bytes ago --- */
class queue<irr::core::vector3d<short int>, std::deque<irr::core::vector3d<short int>, std::allocator<irr::core::vector3d<short int> > > > m_block_queue; /* 280 80 */
void EmergeThread(class EmergeThread *, const class EmergeThread &);
void EmergeThread(class EmergeThread *, class Server *, int);
virtual void ~EmergeThread(class EmergeThread *, int);
virtual void * run(class EmergeThread *);
void signal(class EmergeThread *);
bool pushBlock(class EmergeThread *, v3s16);
void cancelPendingItems(class EmergeThread *);
void runCompletionCallbacks(v3s16, enum EmergeAction, const EmergeCallbackList &);
bool popBlockEmerge(class EmergeThread *, v3s16 *, class BlockEmergeData *);
enum EmergeAction getBlockOrStartGen(class EmergeThread *, v3s16, bool, class MapBlock * *, class BlockMakeData *);
class MapBlock * finishGen(class EmergeThread *, v3s16, class BlockMakeData *, class map<irr::core::vector3d<short int>, MapBlock*, std::less<irr::core::vector3d<short int> >, std::allocator<std::pair<const);
/* vtable has 1 entries: {
[2] = run((null)),
} */
/* size: 360, cachelines: 6, members: 9 */
/* sum members: 213, holes: 2, sum holes: 147 */
/* paddings: 1, sum paddings: 7 */
/* last cacheline: 40 bytes */
};
class MapEditEventAreaIgnorer {
class VoxelArea * m_ignorevariable; /* 0 8 */
public:
void MapEditEventAreaIgnorer(class MapEditEventAreaIgnorer *, class VoxelArea *, const class VoxelArea &);
void ~MapEditEventAreaIgnorer(class MapEditEventAreaIgnorer *, int);
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
};
class VersionMismatchException : public BaseException {
public:
/* class BaseException <ancestor>; */ /* 0 40 */
void VersionMismatchException(class VersionMismatchException *, const string &);
virtual void ~VersionMismatchException(class VersionMismatchException *, int);
/* size: 40, cachelines: 1, members: 1 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 40 != 0 + 0(holes), diff = 40 */
};
class Environment {
public:
int ()(void) * * _vptr.Environment; /* 0 8 */
u32 m_added_objects; /* 8 4 */
protected:
GenericAtomic m_time_of_day_speed; /* 12 4 */
u32 m_time_of_day; /* 16 4 */
float m_time_of_day_f; /* 20 4 */
float m_time_conversion_skew; /* 24 4 */
bool m_enable_day_night_ratio_override; /* 28 1 */
/* XXX 3 bytes hole, try to pack */
u32 m_day_night_ratio_override; /* 32 4 */
Atomic m_day_count; /* 36 4 */
bool m_cache_enable_shaders; /* 40 1 */
/* XXX 3 bytes hole, try to pack */
float m_cache_active_block_mgmt_interval; /* 44 4 */
float m_cache_abm_interval; /* 48 4 */
float m_cache_nodetimer_interval; /* 52 4 */
class IGameDef * m_gamedef; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
Mutex m_time_lock; /* 64 40 */
public:
void Environment(class Environment *, class IGameDef *);
virtual void ~Environment(class Environment *, int);
virtual void step(class Environment *, f32);
virtual class Map & getMap(class Environment *);
u32 getDayNightRatio(class Environment *);
virtual void setTimeOfDay(class Environment *, u32);
u32 getTimeOfDay(class Environment *);
float getTimeOfDayF(class Environment *);
void stepTimeOfDay(class Environment *, float);
void setTimeOfDaySpeed(class Environment *, float);
void setDayNightRatioOverride(class Environment *, bool, u32);
u32 getDayCount(class Environment *);
class IGameDef * getGameDef(class Environment *);
void Environment(class Environment *, const class Environment &);
class Environment & operator=(class Environment *, const class Environment &);
/* vtable has 3 entries: {
[2] = step((null)),
[3] = getMap((null)),
[4] = setTimeOfDay((null)),
} */
/* size: 104, cachelines: 2, members: 15 */
/* sum members: 98, holes: 2, sum holes: 6 */
/* last cacheline: 40 bytes */
};
class EventManager : public MtEventManager {
struct FuncSpec {
event_receive_func f; /* 0 8 */
void * d; /* 8 8 */
void FuncSpec(class FuncSpec *, event_receive_func, void *);
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
};
/* tag__fprintf: const_type tag not supported! */;
struct Dest {
class list<EventManager::FuncSpec, std::allocator<EventManager::FuncSpec> > funcs; /* 0 24 */
class Dest & operator=(class Dest *, const class Dest &);
void ~Dest(class Dest *, int);
void Dest(class Dest *);
/* size: 24, cachelines: 1, members: 1 */
/* last cacheline: 24 bytes */
};
/* tag__fprintf: const_type tag not supported! */;
public:
/* class MtEventManager <ancestor>; */ /* 0 8 */
class map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, EventManager::Dest, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, EventManager::Dest> > > m_dest; /* 8 48 */
void EventManager(class EventManager *, const class EventManager &);
void EventManager(class EventManager *);
void receiverReceive(class MtEvent *, void *);
virtual void ~EventManager(class EventManager *, int);
virtual void put(class EventManager *, class MtEvent *);
virtual void reg(class EventManager *, const char *, event_receive_func, void *);
virtual void dereg(class EventManager *, const char *, event_receive_func, void *);
virtual void reg(class EventManager *, class MtEventReceiver *, const char *);
virtual void dereg(class EventManager *, class MtEventReceiver *, const char *);
/* vtable has 5 entries: {
[2] = put((null)),
[3] = reg((null)),
[4] = dereg((null)),
[5] = reg((null)),
[6] = dereg((null)),
} */
/* size: 56, cachelines: 1, members: 2 */
/* last cacheline: 56 bytes */
/* BRAIN FART ALERT! 56 != 48 + 0(holes), diff = 8 */
};
struct QuicktuneValue {
union {
struct {
float current; /* 0 4 */
float min; /* 4 4 */
float max; /* 8 4 */
} value_QVT_FLOAT; /* 12 */
};
enum QuicktuneValueType type; /* 0 4 */
union {
struct {
float current; /* 4 4 */
float min; /* 8 4 */
float max; /* 12 4 */
} value_QVT_FLOAT; /* 12 */
}; /* 4 12 */
bool modified; /* 16 1 */
void QuicktuneValue(class QuicktuneValue *);
string getString(class QuicktuneValue *);
void relativeAdd(class QuicktuneValue *, float);
/* size: 20, cachelines: 1, members: 3 */
/* padding: 3 */
/* last cacheline: 20 bytes */
};
class QuicktuneShortcutter {
class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > m_names; /* 0 24 */
u32 m_selected_i; /* 24 4 */
/* XXX 4 bytes hole, try to pack */
string m_message; /* 32 32 */
public:
bool hasMessage(class QuicktuneShortcutter *);
string getMessage(class QuicktuneShortcutter *);
string getSelectedName(class QuicktuneShortcutter *);
void next(class QuicktuneShortcutter *);
void prev(class QuicktuneShortcutter *);
void inc(class QuicktuneShortcutter *);
void dec(class QuicktuneShortcutter *);
void QuicktuneShortcutter(class QuicktuneShortcutter *);
void ~QuicktuneShortcutter(class QuicktuneShortcutter *, int);
/* size: 64, cachelines: 1, members: 3 */
/* sum members: 60, holes: 1, sum holes: 4 */
};
class ProfilerGraph {
struct Piece {
GraphValues values; /* 0 48 */
class Piece & operator=(class Piece *, );
void Piece(class Piece *, const class Piece &);
void ~Piece(class Piece *, int);
void Piece(class Piece *);
/* size: 48, cachelines: 1, members: 1 */
/* last cacheline: 48 bytes */
};
/* tag__fprintf: const_type tag not supported! */;
struct Meta {
float min; /* 0 4 */
float max; /* 4 4 */
class SColor color; /* 8 4 */
void Meta(class Meta *, float, class SColor);
/* size: 12, cachelines: 1, members: 3 */
/* last cacheline: 12 bytes */
};
/* tag__fprintf: const_type tag not supported! */;
class deque<ProfilerGraph::Piece, std::allocator<ProfilerGraph::Piece> > m_log; /* 0 80 */
public:
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
u32 m_log_max_size; /* 80 4 */
void ProfilerGraph(class ProfilerGraph *);
void put(class ProfilerGraph *, const GraphValues &);
void draw(const class ProfilerGraph *, s32, s32, class IVideoDriver *, class IGUIFont *);
void ~ProfilerGraph(class ProfilerGraph *, int);
/* size: 88, cachelines: 2, members: 2 */
/* padding: 4 */
/* last cacheline: 24 bytes */
};
class SoundMaker {
class ISoundManager * m_sound; /* 0 8 */
class INodeDefManager * m_ndef; /* 8 8 */
public:
float m_player_step_timer; /* 16 4 */
/* XXX 4 bytes hole, try to pack */
struct SimpleSoundSpec m_player_step_sound; /* 24 40 */
/* XXX last struct has 4 bytes of padding */
/* --- cacheline 1 boundary (64 bytes) --- */
struct SimpleSoundSpec m_player_leftpunch_sound; /* 64 40 */
/* XXX last struct has 4 bytes of padding */
struct SimpleSoundSpec m_player_rightpunch_sound; /* 104 40 */
/* XXX last struct has 4 bytes of padding */
void SoundMaker(class SoundMaker *, class ISoundManager *, class INodeDefManager *);
void playPlayerStep(class SoundMaker *);
void viewBobbingStep(class MtEvent *, void *);
void playerRegainGround(class MtEvent *, void *);
void playerJump(class MtEvent *, void *);
void cameraPunchLeft(class MtEvent *, void *);
void cameraPunchRight(class MtEvent *, void *);
void nodeDug(class MtEvent *, void *);
void playerDamage(class MtEvent *, void *);
void playerFallingDamage(class MtEvent *, void *);
void registerReceiver(class SoundMaker *, class MtEventManager *);
void step(class SoundMaker *, float);
void ~SoundMaker(class SoundMaker *, int);
/* size: 144, cachelines: 3, members: 6 */
/* sum members: 140, holes: 1, sum holes: 4 */
/* paddings: 3, sum paddings: 12 */
/* last cacheline: 16 bytes */
};
class CachedShaderSetting<float, 4ul> {
const char * m_name; /* 0 8 */
float m_sent[4]; /* 8 16 */
bool has_been_set; /* 24 1 */
bool is_pixel; /* 25 1 */
protected:
void CachedShaderSetting(class CachedShaderSetting<float, 4ul> *, const char *, bool);
public:
void set(class CachedShaderSetting<float, 4ul> *, const float *, class IMaterialRendererServices *);
/* size: 32, cachelines: 1, members: 4 */
/* padding: 6 */
/* last cacheline: 32 bytes */
};
class CachedPixelShaderSetting<float, 4ul> : public CachedShaderSetting<float, 4ul> {
public:
/* class CachedShaderSetting<float, 4ul> <ancestor>; */ /* 0 32 */
/* XXX last struct has 6 bytes of padding */
void CachedPixelShaderSetting(class CachedPixelShaderSetting<float, 4ul> *, const char *);
/* size: 32, cachelines: 1, members: 1 */
/* paddings: 1, sum paddings: 6 */
/* last cacheline: 32 bytes */
/* BRAIN FART ALERT! 32 != 0 + 0(holes), diff = 32 */
};
class CachedShaderSetting<float, 1ul> {
const char * m_name; /* 0 8 */
float m_sent[1]; /* 8 4 */
bool has_been_set; /* 12 1 */
bool is_pixel; /* 13 1 */
protected:
void CachedShaderSetting(class CachedShaderSetting<float, 1ul> *, const char *, bool);
public:
void set(class CachedShaderSetting<float, 1ul> *, const float *, class IMaterialRendererServices *);
/* size: 16, cachelines: 1, members: 4 */
/* padding: 2 */
/* last cacheline: 16 bytes */
};
class CachedPixelShaderSetting<float, 1ul> : public CachedShaderSetting<float, 1ul> {
public:
/* class CachedShaderSetting<float, 1ul> <ancestor>; */ /* 0 16 */
/* XXX last struct has 2 bytes of padding */
void CachedPixelShaderSetting(class CachedPixelShaderSetting<float, 1ul> *, const char *);
/* size: 16, cachelines: 1, members: 1 */
/* paddings: 1, sum paddings: 2 */
/* last cacheline: 16 bytes */
/* BRAIN FART ALERT! 16 != 0 + 0(holes), diff = 16 */
};
class CachedVertexShaderSetting<float, 1ul> : public CachedShaderSetting<float, 1ul> {
public:
/* class CachedShaderSetting<float, 1ul> <ancestor>; */ /* 0 16 */
/* XXX last struct has 2 bytes of padding */
void CachedVertexShaderSetting(class CachedVertexShaderSetting<float, 1ul> *, const char *);
/* size: 16, cachelines: 1, members: 1 */
/* paddings: 1, sum paddings: 2 */
/* last cacheline: 16 bytes */
/* BRAIN FART ALERT! 16 != 0 + 0(holes), diff = 16 */
};
class CachedShaderSetting<float, 3ul> {
const char * m_name; /* 0 8 */
float m_sent[3]; /* 8 12 */
bool has_been_set; /* 20 1 */
bool is_pixel; /* 21 1 */
protected:
void CachedShaderSetting(class CachedShaderSetting<float, 3ul> *, const char *, bool);
public:
void set(class CachedShaderSetting<float, 3ul> *, const float *, class IMaterialRendererServices *);
/* size: 24, cachelines: 1, members: 4 */
/* padding: 2 */
/* last cacheline: 24 bytes */
};
class CachedPixelShaderSetting<float, 3ul> : public CachedShaderSetting<float, 3ul> {
public:
/* class CachedShaderSetting<float, 3ul> <ancestor>; */ /* 0 24 */
/* XXX last struct has 2 bytes of padding */
void CachedPixelShaderSetting(class CachedPixelShaderSetting<float, 3ul> *, const char *);
/* size: 24, cachelines: 1, members: 1 */
/* paddings: 1, sum paddings: 2 */
/* last cacheline: 24 bytes */
/* BRAIN FART ALERT! 24 != 0 + 0(holes), diff = 24 */
};
class CachedVertexShaderSetting<float, 3ul> : public CachedShaderSetting<float, 3ul> {
public:
/* class CachedShaderSetting<float, 3ul> <ancestor>; */ /* 0 24 */
/* XXX last struct has 2 bytes of padding */
void CachedVertexShaderSetting(class CachedVertexShaderSetting<float, 3ul> *, const char *);
/* size: 24, cachelines: 1, members: 1 */
/* paddings: 1, sum paddings: 2 */
/* last cacheline: 24 bytes */
/* BRAIN FART ALERT! 24 != 0 + 0(holes), diff = 24 */
};
class CachedShaderSetting<int, 1ul> {
const char * m_name; /* 0 8 */
int m_sent[1]; /* 8 4 */
bool has_been_set; /* 12 1 */
bool is_pixel; /* 13 1 */
protected:
void CachedShaderSetting(class CachedShaderSetting<int, 1ul> *, const char *, bool);
public:
void set(class CachedShaderSetting<int, 1ul> *, const int *, class IMaterialRendererServices *);
/* size: 16, cachelines: 1, members: 4 */
/* padding: 2 */
/* last cacheline: 16 bytes */
};
class CachedPixelShaderSetting<int, 1ul> : public CachedShaderSetting<int, 1ul> {
public:
/* class CachedShaderSetting<int, 1ul> <ancestor>; */ /* 0 16 */
/* XXX last struct has 2 bytes of padding */
void CachedPixelShaderSetting(class CachedPixelShaderSetting<int, 1ul> *, const char *);
/* size: 16, cachelines: 1, members: 1 */
/* paddings: 1, sum paddings: 2 */
/* last cacheline: 16 bytes */
/* BRAIN FART ALERT! 16 != 0 + 0(holes), diff = 16 */
};
class GameGlobalShaderConstantSetter : public IShaderConstantSetter {
public:
/* class IShaderConstantSetter <ancestor>; */ /* 0 8 */
class Sky * m_sky; /* 8 8 */
bool * m_force_fog_off; /* 16 8 */
f32 * m_fog_range; /* 24 8 */
bool m_fog_enabled; /* 32 1 */
/* XXX 7 bytes hole, try to pack */
class CachedPixelShaderSetting<float, 4ul> m_sky_bg_color; /* 40 32 */
/* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
class CachedPixelShaderSetting<float, 1ul> m_fog_distance; /* 72 16 */
class CachedVertexShaderSetting<float, 1ul> m_animation_timer_vertex; /* 88 16 */
class CachedPixelShaderSetting<float, 1ul> m_animation_timer_pixel; /* 104 16 */
class CachedPixelShaderSetting<float, 3ul> m_day_light; /* 120 24 */
/* --- cacheline 2 boundary (128 bytes) was 16 bytes ago --- */
class CachedPixelShaderSetting<float, 3ul> m_eye_position_pixel; /* 144 24 */
class CachedVertexShaderSetting<float, 3ul> m_eye_position_vertex; /* 168 24 */
/* --- cacheline 3 boundary (192 bytes) --- */
class CachedPixelShaderSetting<float, 3ul> m_minimap_yaw; /* 192 24 */
class CachedPixelShaderSetting<int, 1ul> m_base_texture; /* 216 16 */
class CachedPixelShaderSetting<int, 1ul> m_normal_texture; /* 232 16 */
class CachedPixelShaderSetting<int, 1ul> m_texture_flags; /* 248 16 */
/* --- cacheline 4 boundary (256 bytes) was 8 bytes ago --- */
class Client * m_client; /* 264 8 */
void GameGlobalShaderConstantSetter(class GameGlobalShaderConstantSetter *, const class GameGlobalShaderConstantSetter &);
void onSettingsChange(class GameGlobalShaderConstantSetter *, const string &);
void settingsCallback(const string &, void *);
void setSky(class GameGlobalShaderConstantSetter *, class Sky *);
void GameGlobalShaderConstantSetter(class GameGlobalShaderConstantSetter *, class Sky *, bool *, f32 *, class Client *);
virtual void ~GameGlobalShaderConstantSetter(class GameGlobalShaderConstantSetter *, int);
virtual void onSetConstants(class GameGlobalShaderConstantSetter *, class IMaterialRendererServices *, bool);
/* vtable has 1 entries: {
[2] = onSetConstants((null)),
} */
/* size: 272, cachelines: 5, members: 17 */
/* sum members: 257, holes: 1, sum holes: 7 */
/* last cacheline: 16 bytes */
/* BRAIN FART ALERT! 272 != 257 + 7(holes), diff = 8 */
};
struct KeyCache {
class KeyPress key[41]; /* 0 1640 */
/* --- cacheline 25 boundary (1600 bytes) was 40 bytes ago --- */
class InputHandler * handler; /* 1640 8 */
void KeyCache(class KeyCache *);
void populate(class KeyCache *);
void populate_nonchanging(class KeyCache *);
void ~KeyCache(class KeyCache *, int);
/* size: 1648, cachelines: 26, members: 2 */
/* last cacheline: 48 bytes */
};
struct FpsControl {
u32 last_time; /* 0 4 */
u32 busy_time; /* 4 4 */
u32 sleep_time; /* 8 4 */
/* size: 12, cachelines: 1, members: 3 */
/* last cacheline: 12 bytes */
};
struct CameraOrientation {
f32 camera_yaw; /* 0 4 */
f32 camera_pitch; /* 4 4 */
/* size: 8, cachelines: 1, members: 2 */
/* last cacheline: 8 bytes */
};
struct GameRunData {
u16 dig_index; /* 0 2 */
u16 new_playeritem; /* 2 2 */
struct PointedThing pointed_old; /* 4 44 */
bool digging; /* 48 1 */
bool ldown_for_dig; /* 49 1 */
bool left_punch; /* 50 1 */
bool update_wielded_item_trigger; /* 51 1 */
bool reset_jump_timer; /* 52 1 */
/* XXX 3 bytes hole, try to pack */
float nodig_delay_timer; /* 56 4 */
float dig_time; /* 60 4 */
/* --- cacheline 1 boundary (64 bytes) --- */
float dig_time_complete; /* 64 4 */
float repeat_rightclick_timer; /* 68 4 */
float object_hit_delay_timer; /* 72 4 */
float time_from_last_punch; /* 76 4 */
class ClientActiveObject * selected_object; /* 80 8 */
float jump_timer; /* 88 4 */
float damage_flash; /* 92 4 */
float update_draw_list_timer; /* 96 4 */
float statustext_time; /* 100 4 */
f32 fog_range; /* 104 4 */
v3f update_draw_list_last_cam_dir; /* 108 12 */
u32 profiler_current_page; /* 120 4 */
u32 profiler_max_page; /* 124 4 */
/* --- cacheline 2 boundary (128 bytes) --- */
float time_of_day; /* 128 4 */
float time_of_day_smooth; /* 132 4 */
void GameRunData(class GameRunData *);
/* size: 136, cachelines: 3, members: 25 */
/* sum members: 133, holes: 1, sum holes: 3 */
/* last cacheline: 8 bytes */
};
struct Jitter {
f32 max; /* 0 4 */
f32 min; /* 4 4 */
f32 avg; /* 8 4 */
f32 counter; /* 12 4 */
f32 max_sample; /* 16 4 */
f32 min_sample; /* 20 4 */
f32 max_fraction; /* 24 4 */
/* size: 28, cachelines: 1, members: 7 */
/* last cacheline: 28 bytes */
};
struct RunStats {
u32 drawtime; /* 0 4 */
struct Jitter dtime_jitter; /* 4 28 */
struct Jitter busy_time_jitter; /* 32 28 */
/* size: 60, cachelines: 1, members: 3 */
/* last cacheline: 60 bytes */
};
class Game {
class InputHandler * input; /* 0 8 */
class Client * client; /* 8 8 */
class Server * server; /* 16 8 */
class IWritableTextureSource * texture_src; /* 24 8 */
class IWritableShaderSource * shader_src; /* 32 8 */
class IWritableItemDefManager * itemdef_manager; /* 40 8 */
class IWritableNodeDefManager * nodedef_manager; /* 48 8 */
class GameOnDemandSoundFetcher soundfetcher; /* 56 56 */
/* --- cacheline 1 boundary (64 bytes) was 48 bytes ago --- */
class ISoundManager * sound; /* 112 8 */
bool sound_is_dummy; /* 120 1 */
/* XXX 7 bytes hole, try to pack */
/* --- cacheline 2 boundary (128 bytes) --- */
class SoundMaker * soundmaker; /* 128 8 */
class ChatBackend * chat_backend; /* 136 8 */
class GUIFormSpecMenu * current_formspec; /* 144 8 */
string cur_formname; /* 152 32 */
class EventManager * eventmgr; /* 184 8 */
/* --- cacheline 3 boundary (192 bytes) --- */
class QuicktuneShortcutter * quicktune; /* 192 8 */
class GUIChatConsole * gui_chat_console; /* 200 8 */
class MapDrawControl * draw_control; /* 208 8 */
class Camera * camera; /* 216 8 */
class Clouds * clouds; /* 224 8 */
class Sky * sky; /* 232 8 */
class Inventory * local_inventory; /* 240 8 */
class Hud * hud; /* 248 8 */
/* --- cacheline 4 boundary (256 bytes) --- */
class Minimap * mapper; /* 256 8 */
struct GameRunData runData; /* 264 136 */
/* --- cacheline 6 boundary (384 bytes) was 16 bytes ago --- */
struct GameUIFlags flags; /* 400 7 */
/* XXX 1 byte hole, try to pack */
class IrrlichtDevice * device; /* 408 8 */
class IVideoDriver * driver; /* 416 8 */
class ISceneManager * smgr; /* 424 8 */
bool * kill; /* 432 8 */
string * error_message; /* 440 8 */
/* --- cacheline 7 boundary (448 bytes) --- */
bool * reconnect_requested; /* 448 8 */
class ISceneNode * skybox; /* 456 8 */
bool random_input; /* 464 1 */
bool simple_singleplayer_mode; /* 465 1 */
/* XXX 2 bytes hole, try to pack */
int crack_animation_length; /* 468 4 */
class IGUIStaticText * guitext; /* 472 8 */
class IGUIStaticText * guitext2; /* 480 8 */
class IGUIStaticText * guitext_info; /* 488 8 */
class IGUIStaticText * guitext_status; /* 496 8 */
class IGUIStaticText * guitext_chat; /* 504 8 */
/* --- cacheline 8 boundary (512 bytes) --- */
class IGUIStaticText * guitext_profiler; /* 512 8 */
wstring infotext; /* 520 32 */
wstring m_statustext; /* 552 32 */
/* --- cacheline 9 boundary (576 bytes) was 8 bytes ago --- */
struct KeyCache keycache; /* 584 1648 */
/* --- cacheline 34 boundary (2176 bytes) was 56 bytes ago --- */
class IntervalLimiter profiler_interval; /* 2232 4 */
bool m_cache_doubletap_jump; /* 2236 1 */
bool m_cache_enable_clouds; /* 2237 1 */
bool m_cache_enable_joysticks; /* 2238 1 */
bool m_cache_enable_particles; /* 2239 1 */
/* --- cacheline 35 boundary (2240 bytes) --- */
bool m_cache_enable_fog; /* 2240 1 */
bool m_cache_enable_noclip; /* 2241 1 */
bool m_cache_enable_free_move; /* 2242 1 */
/* XXX 1 byte hole, try to pack */
f32 m_cache_mouse_sensitivity; /* 2244 4 */
f32 m_cache_joystick_frustum_sensitivity; /* 2248 4 */
f32 m_repeat_right_click_time; /* 2252 4 */
f32 m_cache_cam_smoothing; /* 2256 4 */
f32 m_cache_fog_start; /* 2260 4 */
bool m_invert_mouse; /* 2264 1 */
bool m_first_loop_after_window_activation; /* 2265 1 */
bool m_camera_offset_changed; /* 2266 1 */
public:
void Game(class Game *);
void ~Game(class Game *, int);
bool startup(class Game *, bool *, bool, class InputHandler *, class IrrlichtDevice *, const string &, const string &, const string &, string *, u16, string &, bool *, class ChatBackend *, const class SubgameSpec &, bool);
void run(class Game *);
void shutdown(class Game *);
protected:
void extendedResourceCleanup(class Game *);
bool init(class Game *, const string &, string *, u16, const class SubgameSpec &);
bool initSound(class Game *);
bool createSingleplayerServer(class Game *, const string &, const class SubgameSpec &, u16, string *);
bool createClient(class Game *, const string &, const string &, string *, u16);
bool initGui(class Game *);
bool connectToServer(class Game *, const string &, const string &, string *, u16, bool *, bool *);
bool getServerContent(class Game *, bool *);
void updateInteractTimers(class Game *, f32);
bool checkConnection(class Game *);
bool handleCallbacks(class Game *);
void processQueues(class Game *);
void updateProfilers(class Game *, const class RunStats &, const class FpsControl &, f32);
void addProfilerGraphs(class Game *, const class RunStats &, const class FpsControl &, f32);
void updateStats(class Game *, class RunStats *, const class FpsControl &, f32);
void processUserInput(class Game *, f32);
void processKeyInput(class Game *);
void processItemSelection(class Game *, u16 *);
void dropSelectedItem(class Game *);
void openInventory(class Game *);
void openConsole(class Game *, float, const wchar_t *);
void toggleFreeMove(class Game *);
void toggleFreeMoveAlt(class Game *);
void toggleFast(class Game *);
void toggleNoClip(class Game *);
void toggleCinematic(class Game *);
void toggleAutorun(class Game *);
void toggleChat(class Game *);
void toggleHud(class Game *);
void toggleMinimap(class Game *, bool);
void toggleFog(class Game *);
void toggleDebug(class Game *);
void toggleUpdateCamera(class Game *);
void toggleProfiler(class Game *);
void increaseViewRange(class Game *);
void decreaseViewRange(class Game *);
void toggleFullViewRange(class Game *);
void updateCameraDirection(class Game *, class CameraOrientation *, float);
void updateCameraOrientation(class Game *, class CameraOrientation *, float);
void updatePlayerControl(class Game *, const class CameraOrientation &);
void step(class Game *, f32 *);
void processClientEvents(class Game *, class CameraOrientation *);
void updateCamera(class Game *, u32, f32);
void updateSound(class Game *, f32);
void processPlayerInteraction(class Game *, f32, bool, bool);
class PointedThing updatePointedThing(class Game *, const class line3d<float> &, bool, bool, const v3s16 &);
void handlePointingAtNothing(class Game *, const class ItemStack &);
void handlePointingAtNode(class Game *, const class PointedThing &, const class ItemDefinition &, const class ToolCapabilities &, f32);
void handlePointingAtObject(class Game *, const class PointedThing &, const class ItemStack &, const v3f &, bool);
void handleDigging(class Game *, const class PointedThing &, const v3s16 &, const class ToolCapabilities &, f32);
void updateFrame(class Game *, class ProfilerGraph *, class RunStats *, f32, const class CameraOrientation &);
void updateGui(class Game *, const class RunStats &, f32, const class CameraOrientation &);
void updateProfilerGraphs(class Game *, class ProfilerGraph *);
void limitFps(class Game *, class FpsControl *, f32 *);
void showOverlayMessage(class Game *, const wchar_t *, float, int, bool);
void settingChangedCallback(const string &, void *);
void readSettings(class Game *);
bool getLeftClicked(class Game *);
bool getRightClicked(class Game *);
bool isLeftPressed(class Game *);
bool isRightPressed(class Game *);
bool getLeftReleased(class Game *);
bool isKeyDown(class Game *, GameKeyType);
bool wasKeyDown(class Game *, GameKeyType);
void showPauseMenu(class Game *);
/* size: 2272, cachelines: 36, members: 61 */
/* sum members: 2256, holes: 4, sum holes: 11 */
/* padding: 5 */
/* last cacheline: 32 bytes */
};
class GameOnDemandSoundFetcher : public OnDemandSoundFetcher {
public:
/* class OnDemandSoundFetcher <ancestor>; */ /* 0 8 */
class set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > m_fetched; /* 8 48 */
void ~GameOnDemandSoundFetcher(class GameOnDemandSoundFetcher *, int);
void GameOnDemandSoundFetcher(class GameOnDemandSoundFetcher *, );
void GameOnDemandSoundFetcher(class GameOnDemandSoundFetcher *, const class GameOnDemandSoundFetcher &);
void GameOnDemandSoundFetcher(class GameOnDemandSoundFetcher *);
virtual void fetchSounds(class GameOnDemandSoundFetcher *, const string &, class set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string, class set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string);
/* vtable has 1 entries: {
[0] = fetchSounds((null)),
} */
/* size: 56, cachelines: 1, members: 2 */
/* last cacheline: 56 bytes */
/* BRAIN FART ALERT! 56 != 48 + 0(holes), diff = 8 */
};
class GameGlobalShaderConstantSetterFactory : public IShaderConstantSetterFactory {
public:
/* class IShaderConstantSetterFactory <ancestor>; */ /* 0 8 */
class Sky * m_sky; /* 8 8 */
bool * m_force_fog_off; /* 16 8 */
f32 * m_fog_range; /* 24 8 */
class Client * m_client; /* 32 8 */
class vector<GameGlobalShaderConstantSetter*, std::allocator<GameGlobalShaderConstantSetter*> > created_nosky; /* 40 24 */
void GameGlobalShaderConstantSetterFactory(class GameGlobalShaderConstantSetterFactory *, );
void GameGlobalShaderConstantSetterFactory(class GameGlobalShaderConstantSetterFactory *, const class GameGlobalShaderConstantSetterFactory &);
void GameGlobalShaderConstantSetterFactory(class GameGlobalShaderConstantSetterFactory *, bool *, f32 *, class Client *);
void setSky(class GameGlobalShaderConstantSetterFactory *, class Sky *);
virtual class IShaderConstantSetter * create(class GameGlobalShaderConstantSetterFactory *);
virtual void ~GameGlobalShaderConstantSetterFactory(class GameGlobalShaderConstantSetterFactory *, int);
/* vtable has 1 entries: {
[2] = create((null)),
} */
/* size: 64, cachelines: 1, members: 6 */
/* BRAIN FART ALERT! 64 != 56 + 0(holes), diff = 8 */
};
class OnDemandSoundFetcher {
public:
int ()(void) * * _vptr.OnDemandSoundFetcher; /* 0 8 */
void ~OnDemandSoundFetcher(class OnDemandSoundFetcher *, int);
void OnDemandSoundFetcher(class OnDemandSoundFetcher *, );
void OnDemandSoundFetcher(class OnDemandSoundFetcher *, const class OnDemandSoundFetcher &);
void OnDemandSoundFetcher(class OnDemandSoundFetcher *);
virtual void fetchSounds(class OnDemandSoundFetcher *, const string &, class set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string, class set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string);
/* vtable has 1 entries: {
[0] = fetchSounds((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
};
class NodeDugEvent : public MtEvent {
public:
/* class MtEvent <ancestor>; */ /* 0 8 */
v3s16 p; /* 8 6 */
struct MapNode n; /* 14 4 */
void NodeDugEvent(class NodeDugEvent *, );
void NodeDugEvent(class NodeDugEvent *, const class NodeDugEvent &);
void NodeDugEvent(class NodeDugEvent *, v3s16, class MapNode);
virtual const char * getType(const class NodeDugEvent *);
virtual void ~NodeDugEvent(class NodeDugEvent *, int);
/* vtable has 1 entries: {
[2] = getType((null)),
} */
/* size: 24, cachelines: 1, members: 3 */
/* padding: 6 */
/* last cacheline: 24 bytes */
/* BRAIN FART ALERT! 24 != 10 + 0(holes), diff = 14 */
};
class PlayerInventoryFormSource : public IFormSource {
public:
/* class IFormSource <ancestor>; */ /* 0 8 */
class Client * m_client; /* 8 8 */
void PlayerInventoryFormSource(class PlayerInventoryFormSource *, );
void PlayerInventoryFormSource(class PlayerInventoryFormSource *, const class PlayerInventoryFormSource &);
void PlayerInventoryFormSource(class PlayerInventoryFormSource *, class Client *);
virtual string getForm(class PlayerInventoryFormSource *);
virtual void ~PlayerInventoryFormSource(class PlayerInventoryFormSource *, int);
/* vtable has 1 entries: {
[2] = getForm((null)),
} */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
/* BRAIN FART ALERT! 16 != 8 + 0(holes), diff = 8 */
};
class NodeMetadataFormSource : public IFormSource {
public:
/* class IFormSource <ancestor>; */ /* 0 8 */
class ClientMap * m_map; /* 8 8 */
v3s16 m_p; /* 16 6 */
void NodeMetadataFormSource(class NodeMetadataFormSource *, );
void NodeMetadataFormSource(class NodeMetadataFormSource *, const class NodeMetadataFormSource &);
void NodeMetadataFormSource(class NodeMetadataFormSource *, class ClientMap *, v3s16);
virtual string getForm(class NodeMetadataFormSource *);
virtual string resolveText(class NodeMetadataFormSource *, string);
virtual void ~NodeMetadataFormSource(class NodeMetadataFormSource *, int);
/* vtable has 2 entries: {
[2] = getForm((null)),
[3] = resolveText((null)),
} */
/* size: 24, cachelines: 1, members: 3 */
/* padding: 2 */
/* last cacheline: 24 bytes */
/* BRAIN FART ALERT! 24 != 14 + 0(holes), diff = 10 */
};
struct LocalFormspecHandler : TextDest {
/* struct TextDest <ancestor>; */ /* 0 40 */
class Client * m_client; /* 40 8 */
void LocalFormspecHandler(class LocalFormspecHandler *, );
void LocalFormspecHandler(class LocalFormspecHandler *, const class LocalFormspecHandler &);
void LocalFormspecHandler(class LocalFormspecHandler *, const string &);
void LocalFormspecHandler(class LocalFormspecHandler *, const string &, class Client *);
virtual void gotText(class LocalFormspecHandler *, const StringMap &);
virtual void ~LocalFormspecHandler(class LocalFormspecHandler *, int);
/* vtable has 1 entries: {
[3] = gotText((null)),
} */
/* size: 48, cachelines: 1, members: 2 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 48 != 8 + 0(holes), diff = 40 */
};
struct TextDestPlayerInventory : TextDest {
/* struct TextDest <ancestor>; */ /* 0 40 */
class Client * m_client; /* 40 8 */
void TextDestPlayerInventory(class TextDestPlayerInventory *, );
void TextDestPlayerInventory(class TextDestPlayerInventory *, const class TextDestPlayerInventory &);
void TextDestPlayerInventory(class TextDestPlayerInventory *, class Client *);
void TextDestPlayerInventory(class TextDestPlayerInventory *, class Client *, const string &);
virtual void gotText(class TextDestPlayerInventory *, const StringMap &);
virtual void ~TextDestPlayerInventory(class TextDestPlayerInventory *, int);
/* vtable has 1 entries: {
[3] = gotText((null)),
} */
/* size: 48, cachelines: 1, members: 2 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 48 != 8 + 0(holes), diff = 40 */
};
struct TextDestNodeMetadata : TextDest {
/* struct TextDest <ancestor>; */ /* 0 40 */
v3s16 m_p; /* 40 6 */
/* XXX 2 bytes hole, try to pack */
class Client * m_client; /* 48 8 */
void TextDestNodeMetadata(class TextDestNodeMetadata *, );
void TextDestNodeMetadata(class TextDestNodeMetadata *, const class TextDestNodeMetadata &);
void TextDestNodeMetadata(class TextDestNodeMetadata *, v3s16, class Client *);
void gotText(class TextDestNodeMetadata *, const wstring &);
virtual void gotText(class TextDestNodeMetadata *, const StringMap &);
virtual void ~TextDestNodeMetadata(class TextDestNodeMetadata *, int);
/* vtable has 1 entries: {
[3] = gotText((null)),
} */
/* size: 56, cachelines: 1, members: 3 */
/* sum members: 14, holes: 1, sum holes: 2 */
/* last cacheline: 56 bytes */
/* BRAIN FART ALERT! 56 != 14 + 2(holes), diff = 40 */
};
class ServerError : public BaseException {
public:
/* class BaseException <ancestor>; */ /* 0 40 */
void ServerError(class ServerError *, const string &);
virtual void ~ServerError(class ServerError *, int);
/* size: 40, cachelines: 1, members: 1 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 40 != 0 + 0(holes), diff = 40 */
};
class LogOutputBuffer : public ICombinedLogOutput {
public:
/* class ICombinedLogOutput <ancestor>; */ /* 0 8 */
class queue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::deque<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > m_buffer; /* 8 80 */
/* --- cacheline 1 boundary (64 bytes) was 24 bytes ago --- */
class Logger &const m_logger; /* 88 8 */
void LogOutputBuffer(class LogOutputBuffer *, const class LogOutputBuffer &);
void LogOutputBuffer(class LogOutputBuffer *, class Logger &, enum LogLevel);
void ~LogOutputBuffer(class LogOutputBuffer *, int);
virtual void logRaw(class LogOutputBuffer *, enum LogLevel, const string &);
bool empty(class LogOutputBuffer *);
string get(class LogOutputBuffer *);
/* vtable has 1 entries: {
[0] = logRaw((null)),
} */
/* size: 96, cachelines: 2, members: 3 */
/* last cacheline: 32 bytes */
/* BRAIN FART ALERT! 96 != 88 + 0(holes), diff = 8 */
};
class GUIChatConsole : public IGUIElement {
public:
/* class IGUIElement <ancestor>; */ /* 0 320 */
/* XXX last struct has 36 bytes of padding */
/* --- cacheline 4 boundary (256 bytes) was 32 bytes ago --- */
class ChatBackend * m_chat_backend; /* 288 8 */
class Client * m_client; /* 296 8 */
class IMenuManager * m_menumgr; /* 304 8 */
v2u32 m_screensize; /* 312 8 */
/* --- cacheline 5 boundary (320 bytes) --- */
u32 m_animate_time_old; /* 320 4 */
bool m_open; /* 324 1 */
bool m_close_on_enter; /* 325 1 */
/* XXX 2 bytes hole, try to pack */
s32 m_height; /* 328 4 */
f32 m_desired_height; /* 332 4 */
f32 m_desired_height_fraction; /* 336 4 */
f32 m_height_speed; /* 340 4 */
u32 m_open_inhibited; /* 344 4 */
u32 m_cursor_blink; /* 348 4 */
f32 m_cursor_blink_speed; /* 352 4 */
f32 m_cursor_height; /* 356 4 */
class ITexture * m_background; /* 360 8 */
class SColor m_background_color; /* 368 4 */
/* XXX 4 bytes hole, try to pack */
class IGUIFont * m_font; /* 376 8 */
/* --- cacheline 6 boundary (384 bytes) --- */
v2u32 m_fontsize; /* 384 8 */
void GUIChatConsole(class GUIChatConsole *, int, const void * *, const class GUIChatConsole &);
void GUIChatConsole(class GUIChatConsole *, int, const void * *, class IGUIEnvironment *, class IGUIElement *, s32, class ChatBackend *, class Client *, class IMenuManager *);
virtual void ~GUIChatConsole(class GUIChatConsole *, int, const void * *);
void openConsole(class GUIChatConsole *, f32);
bool isOpen(const class GUIChatConsole *);
bool isOpenInhibited(const class GUIChatConsole *);
void closeConsole(class GUIChatConsole *);
void closeConsoleAtOnce(class GUIChatConsole *);
void setCloseOnEnter(class GUIChatConsole *, bool);
f32 getDesiredHeight(const class GUIChatConsole *);
void replaceAndAddToHistory(class GUIChatConsole *, wstring);
void setCursor(class GUIChatConsole *, bool, bool, f32, f32);
virtual void draw(class GUIChatConsole *);
bool canTakeFocus(class GUIChatConsole *, class IGUIElement *);
virtual bool OnEvent(class GUIChatConsole *, const class SEvent &);
virtual void setVisible(class GUIChatConsole *, bool);
void reformatConsole(class GUIChatConsole *);
void recalculateConsolePosition(class GUIChatConsole *);
void animate(class GUIChatConsole *, u32);
void drawBackground(class GUIChatConsole *);
void drawText(class GUIChatConsole *);
void drawPrompt(class GUIChatConsole *);
/* vtable has 3 entries: {
[8] = draw((null)),
[2] = OnEvent((null)),
[12] = setVisible((null)),
} */
/* size: 424, cachelines: 7, members: 20 */
/* sum members: 98, holes: 2, sum holes: 6 */
/* padding: 32 */
/* paddings: 1, sum paddings: 36 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 424 != 98 + 6(holes), diff = 320 */
};
class GUIEngine {
struct clouddata {
f32 dtime; /* 0 4 */
u32 lasttime; /* 4 4 */
class Clouds * clouds; /* 8 8 */
class ICameraSceneNode * camera; /* 16 8 */
/* size: 24, cachelines: 1, members: 4 */
/* last cacheline: 24 bytes */
};
public:
int ()(void) * * _vptr.GUIEngine; /* 0 8 */
class IrrlichtDevice * m_device; /* 8 8 */
class IGUIElement * m_parent; /* 16 8 */
class IMenuManager * m_menumanager; /* 24 8 */
class ISceneManager * m_smgr; /* 32 8 */
class MainMenuData * m_data; /* 40 8 */
class ISimpleTextureSource * m_texture_source; /* 48 8 */
class ISoundManager * m_sound_manager; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
class FormspecFormSource * m_formspecgui; /* 64 8 */
class TextDestGuiEngine * m_buttonhandler; /* 72 8 */
class GUIFormSpecMenu * m_menu; /* 80 8 */
bool &const m_kill; /* 88 8 */
bool m_startgame; /* 96 1 */
/* XXX 7 bytes hole, try to pack */
class MainMenuScripting * m_script; /* 104 8 */
string m_scriptdir; /* 112 32 */
/* --- cacheline 2 boundary (128 bytes) was 16 bytes ago --- */
image_definition m_textures[4]; /* 144 64 */
/* --- cacheline 3 boundary (192 bytes) was 16 bytes ago --- */
class IGUIStaticText * m_irr_toplefttext; /* 208 8 */
class EnrichedString m_toplefttext; /* 216 64 */
/* --- cacheline 4 boundary (256 bytes) was 24 bytes ago --- */
bool m_clouds_enabled; /* 280 1 */
/* XXX 7 bytes hole, try to pack */
struct clouddata m_cloud; /* 288 24 */
void GUIEngine(class GUIEngine *, const class GUIEngine &);
void GUIEngine(class GUIEngine *, class IrrlichtDevice *, class JoystickController *, class IGUIElement *, class IMenuManager *, class ISceneManager *, class MainMenuData *, bool &);
virtual void ~GUIEngine(class GUIEngine *, int);
class MainMenuScripting * getScriptIface(class GUIEngine *);
string getScriptDir(class GUIEngine *);
unsigned int queueAsync(class GUIEngine *, const string &, const string &);
bool loadMainMenuScript(class GUIEngine *);
void run(class GUIEngine *);
void updateTopLeftTextSize(class GUIEngine *);
void drawBackground(class GUIEngine *, class IVideoDriver *);
void drawOverlay(class GUIEngine *, class IVideoDriver *);
void drawHeader(class GUIEngine *, class IVideoDriver *);
void drawFooter(class GUIEngine *, class IVideoDriver *);
bool setTexture(class GUIEngine *, texture_layer, string, bool, unsigned int);
bool downloadFile(const string &, const string &);
void setTopleftText(class GUIEngine *, const string &);
void cloudInit(class GUIEngine *);
void cloudPreProcess(class GUIEngine *);
void cloudPostProcess(class GUIEngine *);
s32 playSound(class GUIEngine *, class SimpleSoundSpec, bool);
void stopSound(class GUIEngine *, s32);
/* size: 312, cachelines: 5, members: 20 */
/* sum members: 298, holes: 2, sum holes: 14 */
/* last cacheline: 56 bytes */
};
class TextDestGuiEngine : public TextDest {
public:
/* struct TextDest <ancestor>; */ /* 0 40 */
class GUIEngine * m_engine; /* 40 8 */
void TextDestGuiEngine(class TextDestGuiEngine *, );
void TextDestGuiEngine(class TextDestGuiEngine *, const class TextDestGuiEngine &);
void TextDestGuiEngine(class TextDestGuiEngine *, class GUIEngine *);
virtual void gotText(class TextDestGuiEngine *, const StringMap &);
void gotText(class TextDestGuiEngine *, const wstring &);
virtual void ~TextDestGuiEngine(class TextDestGuiEngine *, int);
/* vtable has 1 entries: {
[3] = gotText((null)),
} */
/* size: 48, cachelines: 1, members: 2 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 48 != 8 + 0(holes), diff = 40 */
};
class MenuMusicFetcher : public OnDemandSoundFetcher {
public:
/* class OnDemandSoundFetcher <ancestor>; */ /* 0 8 */
class set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > m_fetched; /* 8 48 */
void ~MenuMusicFetcher(class MenuMusicFetcher *, int);
void MenuMusicFetcher(class MenuMusicFetcher *, );
void MenuMusicFetcher(class MenuMusicFetcher *, const class MenuMusicFetcher &);
void MenuMusicFetcher(class MenuMusicFetcher *);
virtual void fetchSounds(class MenuMusicFetcher *, const string &, class set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string, class set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string);
/* vtable has 1 entries: {
[0] = fetchSounds((null)),
} */
/* size: 56, cachelines: 1, members: 2 */
/* last cacheline: 56 bytes */
/* BRAIN FART ALERT! 56 != 48 + 0(holes), diff = 8 */
};
class MenuTextureSource : public ISimpleTextureSource {
public:
/* class ISimpleTextureSource <ancestor>; */ /* 0 8 */
class IVideoDriver * m_driver; /* 8 8 */
class set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > m_to_delete; /* 16 48 */
void MenuTextureSource(class MenuTextureSource *, const class MenuTextureSource &);
void MenuTextureSource(class MenuTextureSource *, class IVideoDriver *);
virtual void ~MenuTextureSource(class MenuTextureSource *, int);
virtual class ITexture * getTexture(class MenuTextureSource *, const string &, u32 *);
/* vtable has 1 entries: {
[2] = getTexture((null)),
} */
/* size: 64, cachelines: 1, members: 3 */
/* BRAIN FART ALERT! 64 != 56 + 0(holes), diff = 8 */
};
class GUIFileSelectMenu : public GUIModalMenu {
public:
/* class GUIModalMenu <ancestor>; */ /* 0 344 */
/* XXX last struct has 39 bytes of padding */
/* --- cacheline 4 boundary (256 bytes) was 56 bytes ago --- */
wstring m_title; /* 312 32 */
/* --- cacheline 5 boundary (320 bytes) was 24 bytes ago --- */
bool m_accepted; /* 344 1 */
/* XXX 7 bytes hole, try to pack */
class IGUIElement * m_parent; /* 352 8 */
string m_selectedPath; /* 360 32 */
/* --- cacheline 6 boundary (384 bytes) was 8 bytes ago --- */
class IGUIFileOpenDialog * m_fileOpenDialog; /* 392 8 */
bool m_running; /* 400 1 */
/* XXX 7 bytes hole, try to pack */
class TextDest * m_text_dst; /* 408 8 */
string m_formname; /* 416 32 */
void GUIFileSelectMenu(class GUIFileSelectMenu *, int, const void * *, const class GUIFileSelectMenu &);
void GUIFileSelectMenu(class GUIFileSelectMenu *, int, const void * *, class IGUIEnvironment *, class IGUIElement *, s32, class IMenuManager *, string, string);
virtual void ~GUIFileSelectMenu(class GUIFileSelectMenu *, int, const void * *);
void removeChildren(class GUIFileSelectMenu *);
virtual void regenerateGui(class GUIFileSelectMenu *, v2u32);
virtual void drawMenu(class GUIFileSelectMenu *);
virtual bool OnEvent(class GUIFileSelectMenu *, const class SEvent &);
bool isRunning(class GUIFileSelectMenu *);
void setTextDest(class GUIFileSelectMenu *, class TextDest *);
void acceptInput(class GUIFileSelectMenu *);
/* vtable has 3 entries: {
[34] = regenerateGui((null)),
[35] = drawMenu((null)),
[2] = OnEvent((null)),
} */
/* size: 480, cachelines: 8, members: 9 */
/* sum members: 122, holes: 2, sum holes: 14 */
/* padding: 32 */
/* paddings: 1, sum paddings: 39 */
/* last cacheline: 32 bytes */
/* BRAIN FART ALERT! 480 != 122 + 14(holes), diff = 344 */
};
class GUIFormSpecMenu : public GUIModalMenu {
struct ItemSpec {
struct InventoryLocation inventoryloc; /* 0 48 */
/* XXX last struct has 2 bytes of padding */
string listname; /* 48 32 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
s32 i; /* 80 4 */
void ItemSpec(class ItemSpec *);
void ItemSpec(class ItemSpec *, const class InventoryLocation &, const string &, s32);
bool isValid(const class ItemSpec *);
void ItemSpec(class ItemSpec *, const class ItemSpec &);
void ~ItemSpec(class ItemSpec *, int);
/* size: 88, cachelines: 2, members: 3 */
/* padding: 4 */
/* paddings: 1, sum paddings: 2 */
/* last cacheline: 24 bytes */
};
/* tag__fprintf: const_type tag not supported! */;
struct ListDrawSpec {
struct InventoryLocation inventoryloc; /* 0 48 */
/* XXX last struct has 2 bytes of padding */
string listname; /* 48 32 */
v2s32 pos; /* 80 8 */
v2s32 geom; /* 88 8 */
s32 start_item_i; /* 96 4 */
void ListDrawSpec(class ListDrawSpec *);
void ListDrawSpec(class ListDrawSpec *, const class InventoryLocation &, const string &, v2s32, v2s32, s32);
void ListDrawSpec(class ListDrawSpec *, const class ListDrawSpec &);
void ListDrawSpec(class ListDrawSpec *, );
void ~ListDrawSpec(class ListDrawSpec *, int);
/* size: 104, cachelines: 2, members: 5 */
/* padding: 4 */
/* paddings: 1, sum paddings: 2 */
/* last cacheline: 40 bytes */
};
/* tag__fprintf: const_type tag not supported! */;
struct ListRingSpec {
struct InventoryLocation inventoryloc; /* 0 48 */
/* XXX last struct has 2 bytes of padding */
string listname; /* 48 32 */
void ListRingSpec(class ListRingSpec *);
void ListRingSpec(class ListRingSpec *, const class InventoryLocation &, const string &);
void ListRingSpec(class ListRingSpec *, const class ListRingSpec &);
void ListRingSpec(class ListRingSpec *, );
void ~ListRingSpec(class ListRingSpec *, int);
/* size: 80, cachelines: 2, members: 2 */
/* paddings: 1, sum paddings: 2 */
/* last cacheline: 16 bytes */
};
/* tag__fprintf: const_type tag not supported! */;
struct ImageDrawSpec {
string name; /* 0 32 */
string item_name; /* 32 32 */
class IGUIButton * parent_button; /* 64 8 */
v2s32 pos; /* 72 8 */
v2s32 geom; /* 80 8 */
bool scale; /* 88 1 */
bool clip; /* 89 1 */
void ImageDrawSpec(class ImageDrawSpec *);
void ImageDrawSpec(class ImageDrawSpec *, const string &, const string &, class IGUIButton *, const v2s32 &, const v2s32 &);
void ImageDrawSpec(class ImageDrawSpec *, const string &, const string &, const v2s32 &, const v2s32 &);
void ImageDrawSpec(class ImageDrawSpec *, const string &, const v2s32 &, const v2s32 &, bool);
void ImageDrawSpec(class ImageDrawSpec *, const string &, const v2s32 &);
void ImageDrawSpec(class ImageDrawSpec *, const class ImageDrawSpec &);
void ImageDrawSpec(class ImageDrawSpec *, );
void ~ImageDrawSpec(class ImageDrawSpec *, int);
/* size: 96, cachelines: 2, members: 7 */
/* padding: 6 */
/* last cacheline: 32 bytes */
};
/* tag__fprintf: const_type tag not supported! */;
struct FieldSpec {
string fname; /* 0 32 */
wstring flabel; /* 32 32 */
wstring fdefault; /* 64 32 */
int fid; /* 96 4 */
bool send; /* 100 1 */
/* XXX 3 bytes hole, try to pack */
FormspecFieldType ftype; /* 104 4 */
bool is_exit; /* 108 1 */
/* XXX 3 bytes hole, try to pack */
class rect<int> rect; /* 112 16 */
void FieldSpec(class FieldSpec *);
void FieldSpec(class FieldSpec *, const string &, const wstring &, const wstring &, int);
void FieldSpec(class FieldSpec *, );
void FieldSpec(class FieldSpec *, const class FieldSpec &);
void ~FieldSpec(class FieldSpec *, int);
/* size: 128, cachelines: 2, members: 8 */
/* sum members: 122, holes: 2, sum holes: 6 */
};
/* tag__fprintf: const_type tag not supported! */;
struct BoxDrawSpec {
v2s32 pos; /* 0 8 */
v2s32 geom; /* 8 8 */
class SColor color; /* 16 4 */
void BoxDrawSpec(class BoxDrawSpec *, v2s32, v2s32, class SColor);
void BoxDrawSpec(class BoxDrawSpec *, const class BoxDrawSpec &);
/* size: 20, cachelines: 1, members: 3 */
/* last cacheline: 20 bytes */
};
/* tag__fprintf: const_type tag not supported! */;
struct TooltipSpec {
wstring tooltip; /* 0 32 */
class SColor bgcolor; /* 32 4 */
class SColor color; /* 36 4 */
void TooltipSpec(class TooltipSpec *);
void TooltipSpec(class TooltipSpec *, string, class SColor, class SColor);
class TooltipSpec & operator=(class TooltipSpec *, );
void ~TooltipSpec(class TooltipSpec *, int);
/* size: 40, cachelines: 1, members: 3 */
/* last cacheline: 40 bytes */
};
struct StaticTextSpec {
wstring text; /* 0 32 */
class rect<int> rect; /* 32 16 */
class IGUIButton * parent_button; /* 48 8 */
void StaticTextSpec(class StaticTextSpec *);
void StaticTextSpec(class StaticTextSpec *, const wstring &, const class rect<int> &);
void StaticTextSpec(class StaticTextSpec *, const wstring &, const class rect<int> &, class IGUIButton *);
void StaticTextSpec(class StaticTextSpec *, const class StaticTextSpec &);
void StaticTextSpec(class StaticTextSpec *, );
void ~StaticTextSpec(class StaticTextSpec *, int);
/* size: 56, cachelines: 1, members: 3 */
/* last cacheline: 56 bytes */
};
/* tag__fprintf: const_type tag not supported! */;
struct {
bool explicit_size; /* 0 1 */
v2f invsize; /* 4 8 */
v2s32 size; /* 12 8 */
v2f32 offset; /* 20 8 */
v2f32 anchor; /* 28 8 */
class rect<int> rect; /* 36 16 */
v2s32 basepos; /* 52 8 */
v2u32 screensize; /* 60 8 */
string focused_fieldname; /* 72 32 */
TableOptions table_options; /* 104 24 */
/* --- cacheline 2 boundary (128 bytes) --- */
TableColumns table_columns; /* 128 24 */
class unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, GUITable::DynamicData, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, GUITable::DynamicData> > > table_dyndata; /* 152 56 */
void ~parserData(parserData *, int);
void parserData(parserData *);
/* size: 208, cachelines: 4, members: 12 */
/* last cacheline: 16 bytes */
/* BRAIN FART ALERT! 208 != 201 + 0(holes), diff = 7 */
};
struct {
bool key_up; /* 0 1 */
bool key_down; /* 1 1 */
bool key_enter; /* 2 1 */
bool key_escape; /* 3 1 */
/* size: 4, cachelines: 1, members: 4 */
/* last cacheline: 4 bytes */
};
struct clickpos {
v2s32 pos; /* 0 8 */
s32 time; /* 8 4 */
void clickpos(class clickpos *);
/* size: 12, cachelines: 1, members: 2 */
/* last cacheline: 12 bytes */
};
public:
/* class GUIModalMenu <ancestor>; */ /* 0 344 */
/* XXX last struct has 39 bytes of padding */
/* --- cacheline 4 boundary (256 bytes) was 49 bytes ago --- */
bool doPause; /* 305 1 */
/* XXX 2 bytes hole, try to pack */
protected:
v2s32 padding; /* 308 8 */
v2s32 spacing; /* 316 8 */
/* --- cacheline 5 boundary (320 bytes) was 4 bytes ago --- */
v2s32 imgsize; /* 324 8 */
v2s32 offset; /* 332 8 */
v2s32 pos_offset; /* 340 8 */
/* XXX 4 bytes hole, try to pack */
class stack<irr::core::vector2d<int>, std::deque<irr::core::vector2d<int>, std::allocator<irr::core::vector2d<int> > > > container_stack; /* 352 80 */
/* --- cacheline 6 boundary (384 bytes) was 48 bytes ago --- */
class IrrlichtDevice * m_device; /* 432 8 */
class InventoryManager * m_invmgr; /* 440 8 */
/* --- cacheline 7 boundary (448 bytes) --- */
class ISimpleTextureSource * m_tsrc; /* 448 8 */
class Client * m_client; /* 456 8 */
string m_formspec_string; /* 464 32 */
struct InventoryLocation m_current_inventory_location; /* 496 48 */
/* XXX last struct has 2 bytes of padding */
/* --- cacheline 8 boundary (512 bytes) was 32 bytes ago --- */
class vector<GUIFormSpecMenu::ListDrawSpec, std::allocator<GUIFormSpecMenu::ListDrawSpec> > m_inventorylists; /* 544 24 */
class vector<GUIFormSpecMenu::ListRingSpec, std::allocator<GUIFormSpecMenu::ListRingSpec> > m_inventory_rings; /* 568 24 */
/* --- cacheline 9 boundary (576 bytes) was 16 bytes ago --- */
class vector<GUIFormSpecMenu::ImageDrawSpec, std::allocator<GUIFormSpecMenu::ImageDrawSpec> > m_backgrounds; /* 592 24 */
class vector<GUIFormSpecMenu::ImageDrawSpec, std::allocator<GUIFormSpecMenu::ImageDrawSpec> > m_images; /* 616 24 */
/* --- cacheline 10 boundary (640 bytes) --- */
class vector<GUIFormSpecMenu::ImageDrawSpec, std::allocator<GUIFormSpecMenu::ImageDrawSpec> > m_itemimages; /* 640 24 */
class vector<GUIFormSpecMenu::BoxDrawSpec, std::allocator<GUIFormSpecMenu::BoxDrawSpec> > m_boxes; /* 664 24 */
class unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool> > > field_close_on_enter; /* 688 56 */
/* --- cacheline 11 boundary (704 bytes) was 40 bytes ago --- */
class vector<GUIFormSpecMenu::FieldSpec, std::allocator<GUIFormSpecMenu::FieldSpec> > m_fields; /* 744 24 */
/* --- cacheline 12 boundary (768 bytes) --- */
class vector<GUIFormSpecMenu::StaticTextSpec, std::allocator<GUIFormSpecMenu::StaticTextSpec> > m_static_texts; /* 768 24 */
class vector<std::pair<GUIFormSpecMenu::FieldSpec, GUITable*>, std::allocator<std::pair<GUIFormSpecMenu::FieldSpec, GUITable*> > > m_tables; /* 792 24 */
class vector<std::pair<GUIFormSpecMenu::FieldSpec, irr::gui::IGUICheckBox*>, std::allocator<std::pair<GUIFormSpecMenu::FieldSpec, irr::gui::IGUICheckBox*> > > m_checkboxes; /* 816 24 */
/* --- cacheline 13 boundary (832 bytes) was 8 bytes ago --- */
class map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, GUIFormSpecMenu::TooltipSpec, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, GUIFormSpecMenu::TooltipSpec> > > m_tooltips; /* 840 48 */
class vector<std::pair<GUIFormSpecMenu::FieldSpec, irr::gui::IGUIScrollBar*>, std::allocator<std::pair<GUIFormSpecMenu::FieldSpec, irr::gui::IGUIScrollBar*> > > m_scrollbars; /* 888 24 */
/* --- cacheline 14 boundary (896 bytes) was 16 bytes ago --- */
class vector<std::pair<GUIFormSpecMenu::FieldSpec, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::pair<GUIFormSpecMenu::FieldSpec, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > > m_dropdowns; /* 912 24 */
class ItemSpec * m_selected_item; /* 936 8 */
u32 m_selected_amount; /* 944 4 */
bool m_selected_dragging; /* 948 1 */
/* XXX 3 bytes hole, try to pack */
struct ItemStack m_selected_content_guess; /* 952 104 */
/* --- cacheline 16 boundary (1024 bytes) was 32 bytes ago --- */
struct InventoryLocation m_selected_content_guess_inventory; /* 1056 48 */
/* XXX last struct has 2 bytes of padding */
/* --- cacheline 17 boundary (1088 bytes) was 16 bytes ago --- */
v2s32 m_pointer; /* 1104 8 */
v2s32 m_old_pointer; /* 1112 8 */
class IGUIStaticText * m_tooltip_element; /* 1120 8 */
u32 m_tooltip_show_delay; /* 1128 4 */
s32 m_hovered_time; /* 1132 4 */
s32 m_old_tooltip_id; /* 1136 4 */
/* XXX 4 bytes hole, try to pack */
wstring m_old_tooltip; /* 1144 32 */
/* --- cacheline 18 boundary (1152 bytes) was 24 bytes ago --- */
bool m_rmouse_auto_place; /* 1176 1 */
bool m_allowclose; /* 1177 1 */
bool m_lock; /* 1178 1 */
/* XXX 1 byte hole, try to pack */
v2u32 m_lockscreensize; /* 1180 8 */
bool m_bgfullscreen; /* 1188 1 */
bool m_slotborder; /* 1189 1 */
/* XXX 2 bytes hole, try to pack */
class SColor m_bgcolor; /* 1192 4 */
class SColor m_slotbg_n; /* 1196 4 */
class SColor m_slotbg_h; /* 1200 4 */
class SColor m_slotbordercolor; /* 1204 4 */
class SColor m_default_tooltip_bgcolor; /* 1208 4 */
class SColor m_default_tooltip_color; /* 1212 4 */
/* --- cacheline 19 boundary (1216 bytes) --- */
class IFormSource * m_form_src; /* 1216 8 */
class TextDest * m_text_dst; /* 1224 8 */
unsigned int m_formspec_version; /* 1232 4 */
/* XXX 4 bytes hole, try to pack */
string m_focused_element; /* 1240 32 */
class JoystickController * m_joystick; /* 1272 8 */
typedef class fs_key_pendig;
/* --- cacheline 20 boundary (1280 bytes) --- */
fs_key_pendig current_keys_pending; /* 1280 4 */
/* XXX 4 bytes hole, try to pack */
string current_field_enter_pending; /* 1288 32 */
struct clickpos m_doubleclickdetect[2]; /* 1320 24 */
/* --- cacheline 21 boundary (1344 bytes) --- */
int m_btn_height; /* 1344 4 */
/* XXX 4 bytes hole, try to pack */
class IGUIFont * m_font; /* 1352 8 */
bool m_remap_dbl_click; /* 1360 1 */
typedef class parserData;
public:
void GUIFormSpecMenu(class GUIFormSpecMenu *, int, const void * *, const class GUIFormSpecMenu &);
void GUIFormSpecMenu(class GUIFormSpecMenu *, int, const void * *, class IrrlichtDevice *, class JoystickController *, class IGUIElement *, s32, class IMenuManager *, class Client *, class ISimpleTextureSource *, class IFormSource *, class TextDest *, bool);
virtual void ~GUIFormSpecMenu(class GUIFormSpecMenu *, int, const void * *);
void setFormSpec(class GUIFormSpecMenu *, const string &, class InventoryLocation);
void setFormSource(class GUIFormSpecMenu *, class IFormSource *);
void setTextDest(class GUIFormSpecMenu *, class TextDest *);
void allowClose(class GUIFormSpecMenu *, bool);
void lockSize(class GUIFormSpecMenu *, bool, v2u32);
void removeChildren(class GUIFormSpecMenu *);
void setInitialFocus(class GUIFormSpecMenu *);
void setFocus(class GUIFormSpecMenu *, const string &);
virtual void regenerateGui(class GUIFormSpecMenu *, v2u32);
class ItemSpec getItemAtPos(const class GUIFormSpecMenu *, v2s32);
void drawList(class GUIFormSpecMenu *, const class ListDrawSpec &, int, bool &);
void drawSelectedItem(class GUIFormSpecMenu *);
virtual void drawMenu(class GUIFormSpecMenu *);
void updateSelectedItem(class GUIFormSpecMenu *);
class ItemStack verifySelectedItem(class GUIFormSpecMenu *);
void acceptInput(class GUIFormSpecMenu *, FormspecQuitMode);
virtual bool preprocessEvent(class GUIFormSpecMenu *, const class SEvent &);
virtual bool OnEvent(class GUIFormSpecMenu *, const class SEvent &);
virtual bool pausesGame(class GUIFormSpecMenu *);
class GUITable * getTable(class GUIFormSpecMenu *, const string &);
class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basi getDropDownValues(class GUIFormSpecMenu *, const string &);
protected:
v2s32 getBasePos(const class GUIFormSpecMenu *);
void parseElement(class GUIFormSpecMenu *, parserData *, string);
void parseSize(class GUIFormSpecMenu *, parserData *, const string &);
void parseContainer(class GUIFormSpecMenu *, parserData *, const string &);
void parseContainerEnd(class GUIFormSpecMenu *, parserData *);
void parseList(class GUIFormSpecMenu *, parserData *, const string &);
void parseListRing(class GUIFormSpecMenu *, parserData *, const string &);
void parseCheckbox(class GUIFormSpecMenu *, parserData *, const string &);
void parseImage(class GUIFormSpecMenu *, parserData *, const string &);
void parseItemImage(class GUIFormSpecMenu *, parserData *, const string &);
void parseButton(class GUIFormSpecMenu *, parserData *, const string &, const string &);
void parseBackground(class GUIFormSpecMenu *, parserData *, const string &);
void parseTableOptions(class GUIFormSpecMenu *, parserData *, const string &);
void parseTableColumns(class GUIFormSpecMenu *, parserData *, const string &);
void parseTable(class GUIFormSpecMenu *, parserData *, const string &);
void parseTextList(class GUIFormSpecMenu *, parserData *, const string &);
void parseDropDown(class GUIFormSpecMenu *, parserData *, const string &);
void parseFieldCloseOnEnter(class GUIFormSpecMenu *, parserData *, const string &);
void parsePwdField(class GUIFormSpecMenu *, parserData *, const string &);
void parseField(class GUIFormSpecMenu *, parserData *, const string &, const string &);
void parseSimpleField(class GUIFormSpecMenu *, parserData *, class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basi);
void parseTextArea(class GUIFormSpecMenu *, parserData *, class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basi, const string &);
void parseLabel(class GUIFormSpecMenu *, parserData *, const string &);
void parseVertLabel(class GUIFormSpecMenu *, parserData *, const string &);
void parseImageButton(class GUIFormSpecMenu *, parserData *, const string &, const string &);
void parseItemImageButton(class GUIFormSpecMenu *, parserData *, const string &);
void parseTabHeader(class GUIFormSpecMenu *, parserData *, const string &);
void parseBox(class GUIFormSpecMenu *, parserData *, const string &);
void parseBackgroundColor(class GUIFormSpecMenu *, parserData *, const string &);
void parseListColors(class GUIFormSpecMenu *, parserData *, const string &);
void parseTooltip(class GUIFormSpecMenu *, parserData *, const string &);
bool parseVersionDirect(class GUIFormSpecMenu *, const string &);
bool parseSizeDirect(class GUIFormSpecMenu *, parserData *, const string &);
void parseScrollBar(class GUIFormSpecMenu *, parserData *, const string &);
bool parsePositionDirect(class GUIFormSpecMenu *, parserData *, const string &);
void parsePosition(class GUIFormSpecMenu *, parserData *, const string &);
bool parseAnchorDirect(class GUIFormSpecMenu *, parserData *, const string &);
void parseAnchor(class GUIFormSpecMenu *, parserData *, const string &);
void tryClose(class GUIFormSpecMenu *);
bool DoubleClickDetection(class GUIFormSpecMenu *, class SEvent);
wstring getLabelByID(class GUIFormSpecMenu *, s32);
string getNameByID(class GUIFormSpecMenu *, s32);
/* vtable has 5 entries: {
[34] = regenerateGui((null)),
[35] = drawMenu((null)),
[36] = preprocessEvent((null)),
[2] = OnEvent((null)),
[37] = pausesGame((null)),
} */
/* size: 1400, cachelines: 22, members: 63 */
/* sum members: 1028, holes: 9, sum holes: 28 */
/* padding: 39 */
/* paddings: 3, sum paddings: 43 */
/* last cacheline: 56 bytes */
/* BRAIN FART ALERT! 1400 != 1028 + 28(holes), diff = 344 */
};
struct key_setting {
int id; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
const wchar_t * button_name; /* 8 8 */
class KeyPress key; /* 16 40 */
string setting_name; /* 56 32 */
/* --- cacheline 1 boundary (64 bytes) was 24 bytes ago --- */
class IGUIButton * button; /* 88 8 */
void key_setting(class key_setting *);
void ~key_setting(class key_setting *, int);
/* size: 96, cachelines: 2, members: 5 */
/* sum members: 92, holes: 1, sum holes: 4 */
/* last cacheline: 32 bytes */
};
class GUIKeyChangeMenu : public GUIModalMenu {
public:
/* class GUIModalMenu <ancestor>; */ /* 0 344 */
/* XXX last struct has 39 bytes of padding */
/* --- cacheline 4 boundary (256 bytes) was 49 bytes ago --- */
bool shift_down; /* 305 1 */
/* XXX 2 bytes hole, try to pack */
s32 activeKey; /* 308 4 */
class vector<KeyPress, std::allocator<KeyPress> > key_used; /* 312 24 */
/* --- cacheline 5 boundary (320 bytes) was 16 bytes ago --- */
class IGUIStaticText * key_used_text; /* 336 8 */
class vector<key_setting*, std::allocator<key_setting*> > key_settings; /* 344 24 */
void GUIKeyChangeMenu(class GUIKeyChangeMenu *, int, const void * *, const class GUIKeyChangeMenu &);
void GUIKeyChangeMenu(class GUIKeyChangeMenu *, int, const void * *, class IGUIEnvironment *, class IGUIElement *, s32, class IMenuManager *);
virtual void ~GUIKeyChangeMenu(class GUIKeyChangeMenu *, int, const void * *);
void removeChildren(class GUIKeyChangeMenu *);
virtual void regenerateGui(class GUIKeyChangeMenu *, v2u32);
virtual void drawMenu(class GUIKeyChangeMenu *);
bool acceptInput(class GUIKeyChangeMenu *);
virtual bool OnEvent(class GUIKeyChangeMenu *, const class SEvent &);
void init_keys(class GUIKeyChangeMenu *);
bool resetMenu(class GUIKeyChangeMenu *);
void add_key(class GUIKeyChangeMenu *, int, const wchar_t *, const string &);
/* vtable has 3 entries: {
[34] = regenerateGui((null)),
[35] = drawMenu((null)),
[2] = OnEvent((null)),
} */
/* size: 400, cachelines: 7, members: 6 */
/* sum members: 61, holes: 1, sum holes: 2 */
/* padding: 32 */
/* paddings: 1, sum paddings: 39 */
/* last cacheline: 16 bytes */
/* BRAIN FART ALERT! 400 != 61 + 2(holes), diff = 337 */
};
class GUIPasswordChange : public GUIModalMenu {
public:
/* class GUIModalMenu <ancestor>; */ /* 0 344 */
/* XXX last struct has 39 bytes of padding */
/* --- cacheline 4 boundary (256 bytes) was 56 bytes ago --- */
class Client * m_client; /* 312 8 */
void GUIPasswordChange(class GUIPasswordChange *, int, const void * *, const class GUIPasswordChange &);
void GUIPasswordChange(class GUIPasswordChange *, int, const void * *, class IGUIEnvironment *, class IGUIElement *, s32, class IMenuManager *, class Client *);
virtual void ~GUIPasswordChange(class GUIPasswordChange *, int, const void * *);
void removeChildren(class GUIPasswordChange *);
virtual void regenerateGui(class GUIPasswordChange *, v2u32);
virtual void drawMenu(class GUIPasswordChange *);
bool acceptInput(class GUIPasswordChange *);
virtual bool OnEvent(class GUIPasswordChange *, const class SEvent &);
/* vtable has 3 entries: {
[34] = regenerateGui((null)),
[35] = drawMenu((null)),
[2] = OnEvent((null)),
} */
/* size: 352, cachelines: 6, members: 2 */
/* padding: 32 */
/* paddings: 1, sum paddings: 39 */
/* last cacheline: 32 bytes */
/* BRAIN FART ALERT! 352 != 8 + 0(holes), diff = 344 */
};
class GUITable : public IGUIElement {
struct DynamicData {
s32 selected; /* 0 4 */
s32 scrollpos; /* 4 4 */
s32 keynav_time; /* 8 4 */
/* XXX 4 bytes hole, try to pack */
stringw keynav_buffer; /* 16 24 */
class set<int, std::less<int>, std::allocator<int> > opened_trees; /* 40 48 */
void DynamicData(class DynamicData *);
void ~DynamicData(class DynamicData *, int);
/* size: 88, cachelines: 2, members: 5 */
/* sum members: 84, holes: 1, sum holes: 4 */
/* last cacheline: 24 bytes */
};
/* tag__fprintf: const_type tag not supported! */;
struct Option {
string name; /* 0 32 */
string value; /* 32 32 */
void Option(class Option *, const string &, const string &);
void Option(class Option *, const class Option &);
void ~Option(class Option *, int);
/* size: 64, cachelines: 1, members: 2 */
};
/* tag__fprintf: const_type tag not supported! */;
struct TableColumn {
string type; /* 0 32 */
class vector<GUITable::Option, std::allocator<GUITable::Option> > options; /* 32 24 */
void TableColumn(class TableColumn *, );
void TableColumn(class TableColumn *, const class TableColumn &);
void ~TableColumn(class TableColumn *, int);
void TableColumn(class TableColumn *);
/* size: 56, cachelines: 1, members: 2 */
/* last cacheline: 56 bytes */
};
/* tag__fprintf: const_type tag not supported! */;
enum ColumnType {
COLUMN_TYPE_TEXT = 0,
COLUMN_TYPE_IMAGE = 1,
COLUMN_TYPE_COLOR = 2,
COLUMN_TYPE_INDENT = 3,
COLUMN_TYPE_TREE = 4,
};
struct Cell {
s32 xmin; /* 0 4 */
s32 xmax; /* 4 4 */
s32 xpos; /* 8 4 */
enum ColumnType content_type; /* 12 4 */
s32 content_index; /* 16 4 */
s32 tooltip_index; /* 20 4 */
class SColor color; /* 24 4 */
bool color_defined; /* 28 1 */
/* XXX 3 bytes hole, try to pack */
s32 reported_column; /* 32 4 */
void Cell(class Cell *);
/* size: 36, cachelines: 1, members: 9 */
/* sum members: 33, holes: 1, sum holes: 3 */
/* last cacheline: 36 bytes */
};
/* tag__fprintf: const_type tag not supported! */;
struct Row {
class Cell * cells; /* 0 8 */
s32 cellcount; /* 8 4 */
s32 indent; /* 12 4 */
s32 visible_index; /* 16 4 */
/* size: 24, cachelines: 1, members: 4 */
/* padding: 4 */
/* last cacheline: 24 bytes */
};
/* tag__fprintf: const_type tag not supported! */;
public:
/* class IGUIElement <ancestor>; */ /* 0 320 */
/* XXX last struct has 36 bytes of padding */
protected:
/* --- cacheline 4 boundary (256 bytes) was 32 bytes ago --- */
class ISimpleTextureSource * m_tsrc; /* 288 8 */
class vector<GUITable::Row, std::allocator<GUITable::Row> > m_rows; /* 296 24 */
/* --- cacheline 5 boundary (320 bytes) --- */
class vector<int, std::allocator<int> > m_visible_rows; /* 320 24 */
bool m_is_textlist; /* 344 1 */
bool m_has_tree_column; /* 345 1 */
/* XXX 2 bytes hole, try to pack */
s32 m_selected; /* 348 4 */
s32 m_sel_column; /* 352 4 */
bool m_sel_doubleclick; /* 356 1 */
/* XXX 3 bytes hole, try to pack */
s32 m_keynav_time; /* 360 4 */
/* XXX 4 bytes hole, try to pack */
stringw m_keynav_buffer; /* 368 24 */
/* --- cacheline 6 boundary (384 bytes) was 8 bytes ago --- */
bool m_border; /* 392 1 */
/* XXX 3 bytes hole, try to pack */
class SColor m_color; /* 396 4 */
class SColor m_background; /* 400 4 */
class SColor m_highlight; /* 404 4 */
class SColor m_highlight_text; /* 408 4 */
s32 m_rowheight; /* 412 4 */
class IGUIFont * m_font; /* 416 8 */
class IGUIScrollBar * m_scrollbar; /* 424 8 */
class vector<irr::core::string<wchar_t, irr::core::irrAllocator<wchar_t> >, std::allocator<irr::core::string<wchar_t, irr::core::irrAllocator<wchar_t> > > > m_strings; /* 432 24 */
/* --- cacheline 7 boundary (448 bytes) was 8 bytes ago --- */
class vector<irr::video::ITexture*, std::allocator<irr::video::ITexture*> > m_images; /* 456 24 */
class map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> > > m_alloc_strings; /* 480 48 */
/* --- cacheline 8 boundary (512 bytes) was 16 bytes ago --- */
class map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> > > m_alloc_images; /* 528 48 */
typedef struct vector<GUITable::Option, std::allocator<GUITable::Option> > TableOptions;
/* tag__fprintf: const_type tag not supported! */;
typedef struct vector<GUITable::TableColumn, std::allocator<GUITable::TableColumn> > TableColumns;
/* tag__fprintf: const_type tag not supported! */;
public:
void GUITable(class GUITable *, int, const void * *, const class GUITable &);
void GUITable(class GUITable *, int, const void * *, class IGUIEnvironment *, class IGUIElement *, s32, class rect<int>, class ISimpleTextureSource *);
virtual void ~GUITable(class GUITable *, int, const void * *);
class Option splitOption(const string &);
void setTextList(class GUITable *, const class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11, bool);
void setTable(class GUITable *, const TableOptions &, const TableColumns &, class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basi);
void clear(class GUITable *);
string checkEvent(class GUITable *);
s32 getSelected(const class GUITable *);
void setSelected(class GUITable *, s32);
class DynamicData getDynamicData(const class GUITable *);
void setDynamicData(class GUITable *, const class DynamicData &);
virtual const c8 * getTypeName(const class GUITable *);
virtual void updateAbsolutePosition(class GUITable *);
virtual void draw(class GUITable *);
virtual bool OnEvent(class GUITable *, const class SEvent &);
protected:
s32 allocString(class GUITable *, const string &);
s32 allocImage(class GUITable *, const string &);
void allocationComplete(class GUITable *);
void drawCell(class GUITable *, const class Cell *, class SColor, const class rect<int> &, const class rect<int> &);
const class Row * getRow(const class GUITable *, s32);
bool doesRowStartWith(const class GUITable *, const class Row *, const stringw &);
s32 getRowAt(const class GUITable *, s32, bool &);
s32 getCellAt(const class GUITable *, s32, s32);
void autoScroll(class GUITable *);
void updateScrollBar(class GUITable *);
void sendTableEvent(class GUITable *, s32, bool);
void getOpenedTrees(const class GUITable *, class set<int, std::less<int>, std::allocator<int> > &);
void setOpenedTrees(class GUITable *, const class set<int, std::less<int>, std::allocator<int> > &);
void openTree(class GUITable *, s32);
void closeTree(class GUITable *, s32);
void toggleVisibleTree(class GUITable *, s32, int, bool);
void alignContent(class Cell *, s32, s32, s32);
/* vtable has 4 entries: {
[28] = getTypeName((null)),
[3] = updateAbsolutePosition((null)),
[8] = draw((null)),
[2] = OnEvent((null)),
} */
/* size: 608, cachelines: 10, members: 23 */
/* sum members: 276, holes: 4, sum holes: 12 */
/* padding: 32 */
/* paddings: 1, sum paddings: 36 */
/* last cacheline: 32 bytes */
/* BRAIN FART ALERT! 608 != 276 + 12(holes), diff = 320 */
};
class GUIVolumeChange : public GUIModalMenu {
public:
/* class GUIModalMenu <ancestor>; */ /* 0 344 */
/* XXX last struct has 39 bytes of padding */
void GUIVolumeChange(class GUIVolumeChange *, int, const void * *, const class GUIVolumeChange &);
void GUIVolumeChange(class GUIVolumeChange *, int, const void * *, class IGUIEnvironment *, class IGUIElement *, s32, class IMenuManager *);
virtual void ~GUIVolumeChange(class GUIVolumeChange *, int, const void * *);
void removeChildren(class GUIVolumeChange *);
virtual void regenerateGui(class GUIVolumeChange *, v2u32);
virtual void drawMenu(class GUIVolumeChange *);
virtual bool OnEvent(class GUIVolumeChange *, const class SEvent &);
virtual bool pausesGame(class GUIVolumeChange *);
/* vtable has 4 entries: {
[34] = regenerateGui((null)),
[35] = drawMenu((null)),
[2] = OnEvent((null)),
[37] = pausesGame((null)),
} */
/* size: 344, cachelines: 6, members: 1 */
/* paddings: 1, sum paddings: 39 */
/* last cacheline: 24 bytes */
/* BRAIN FART ALERT! 344 != 0 + 0(holes), diff = 344 */
};
struct curl_httppost {
class curl_httppost * next; /* 0 8 */
char * name; /* 8 8 */
long int namelength; /* 16 8 */
char * contents; /* 24 8 */
long int contentslength; /* 32 8 */
char * buffer; /* 40 8 */
long int bufferlength; /* 48 8 */
char * contenttype; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
class curl_slist * contentheader; /* 64 8 */
class curl_httppost * more; /* 72 8 */
long int flags; /* 80 8 */
char * showfilename; /* 88 8 */
void * userp; /* 96 8 */
curl_off_t contentlen; /* 104 8 */
/* size: 112, cachelines: 2, members: 14 */
/* last cacheline: 48 bytes */
};
struct curl_slist {
char * data; /* 0 8 */
class curl_slist * next; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
};
struct CURLMsg {
union {
void * whatever; /* 8 */
CURLcode result; /* 4 */
};
CURLMSG msg; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
CURL * easy_handle; /* 8 8 */
union {
void * whatever; /* 8 */
CURLcode result; /* 4 */
} data; /* 16 8 */
/* size: 24, cachelines: 1, members: 3 */
/* sum members: 20, holes: 1, sum holes: 4 */
/* last cacheline: 24 bytes */
};
class CurlHandlePool {
class list<void*, std::allocator<void*> > handles; /* 0 24 */
public:
void CurlHandlePool(class CurlHandlePool *);
void ~CurlHandlePool(class CurlHandlePool *, int);
CURL * alloc(class CurlHandlePool *);
void free(class CurlHandlePool *, CURL *);
/* size: 24, cachelines: 1, members: 1 */
/* last cacheline: 24 bytes */
};
class HTTPFetchOngoing {
class CurlHandlePool * pool; /* 0 8 */
CURL * curl; /* 8 8 */
CURLM * multi; /* 16 8 */
struct HTTPFetchRequest request; /* 24 216 */
/* --- cacheline 3 boundary (192 bytes) was 48 bytes ago --- */
struct HTTPFetchResult result; /* 240 64 */
/* --- cacheline 4 boundary (256 bytes) was 48 bytes ago --- */
ostringstream oss; /* 304 0 */
/* XXX 376 bytes hole, try to pack */
/* --- cacheline 10 boundary (640 bytes) was 40 bytes ago --- */
class curl_slist * http_header; /* 680 8 */
class curl_httppost * post; /* 688 8 */
public:
void HTTPFetchOngoing(class HTTPFetchOngoing *, const class HTTPFetchRequest &, class CurlHandlePool *);
void ~HTTPFetchOngoing(class HTTPFetchOngoing *, int);
CURLcode start(class HTTPFetchOngoing *, CURLM *);
const class HTTPFetchResult * complete(class HTTPFetchOngoing *, CURLcode);
const class HTTPFetchRequest & getRequest(const class HTTPFetchOngoing *);
const CURL * getEasyHandle(const class HTTPFetchOngoing *);
/* size: 696, cachelines: 11, members: 8 */
/* sum members: 320, holes: 1, sum holes: 376 */
/* last cacheline: 56 bytes */
};
class CurlFetchThread : public Thread {
enum RequestType {
RT_FETCH = 0,
RT_CLEAR = 1,
RT_WAKEUP = 2,
};
struct Request {
enum RequestType type; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
struct HTTPFetchRequest fetch_request; /* 8 216 */
/* --- cacheline 3 boundary (192 bytes) was 32 bytes ago --- */
class Event * event; /* 224 8 */
void Request(class Request *, );
void Request(class Request *, const class Request &);
void ~Request(class Request *, int);
void Request(class Request *);
/* size: 232, cachelines: 4, members: 3 */
/* sum members: 228, holes: 1, sum holes: 4 */
/* last cacheline: 40 bytes */
};
/* tag__fprintf: const_type tag not supported! */;
public:
/* class Thread <ancestor>; */ /* 0 0 */
/* XXX 144 bytes hole, try to pack */
protected:
CURLM * m_multi; /* 144 8 */
class MutexedQueue<CurlFetchThread::Request> m_requests; /* 152 152 */
/* --- cacheline 4 boundary (256 bytes) was 48 bytes ago --- */
size_t m_parallel_limit; /* 304 8 */
class vector<HTTPFetchOngoing*, std::allocator<HTTPFetchOngoing*> > m_all_ongoing; /* 312 24 */
/* --- cacheline 5 boundary (320 bytes) was 16 bytes ago --- */
class list<HTTPFetchRequest, std::allocator<HTTPFetchRequest> > m_queued_fetches; /* 336 24 */
public:
void CurlFetchThread(class CurlFetchThread *, );
void CurlFetchThread(class CurlFetchThread *, const class CurlFetchThread &);
void CurlFetchThread(class CurlFetchThread *, int);
void requestFetch(class CurlFetchThread *, const class HTTPFetchRequest &);
void requestClear(class CurlFetchThread *, long unsigned int, class Event *);
void requestWakeUp(class CurlFetchThread *);
protected:
void processRequest(class CurlFetchThread *, const class Request &);
void processQueued(class CurlFetchThread *, class CurlHandlePool *);
void processCurlMessage(class CurlFetchThread *, CURLMsg *);
void waitForRequest(class CurlFetchThread *, long int);
void waitForIO(class CurlFetchThread *, long int);
virtual void * run(class CurlFetchThread *);
public:
virtual void ~CurlFetchThread(class CurlFetchThread *, int);
/* vtable has 1 entries: {
[2] = run((null)),
} */
/* size: 360, cachelines: 6, members: 6 */
/* sum members: 216, holes: 1, sum holes: 144 */
/* last cacheline: 40 bytes */
};
class MutexedQueue<CurlFetchThread::Request> {
protected:
class deque<CurlFetchThread::Request, std::allocator<CurlFetchThread::Request> > m_queue; /* 0 80 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
Mutex m_mutex; /* 80 40 */
class Semaphore m_signal; /* 120 32 */
public:
void MutexedQueue(class MutexedQueue<CurlFetchThread::Request> *);
bool empty(const class MutexedQueue<CurlFetchThread::Request> *);
void push_back(class MutexedQueue<CurlFetchThread::Request> *, class Request);
class Request pop_frontNoEx(class MutexedQueue<CurlFetchThread::Request> *, u32);
class Request pop_front(class MutexedQueue<CurlFetchThread::Request> *, u32);
class Request pop_frontNoEx(class MutexedQueue<CurlFetchThread::Request> *);
class Request pop_back(class MutexedQueue<CurlFetchThread::Request> *, u32);
class Request pop_backNoEx(class MutexedQueue<CurlFetchThread::Request> *, u32);
class Request pop_backNoEx(class MutexedQueue<CurlFetchThread::Request> *);
protected:
Mutex & getMutex(class MutexedQueue<CurlFetchThread::Request> *);
class deque<CurlFetchThread::Request, std::allocator<CurlFetchThread::Request> > & getQueue(class MutexedQueue<CurlFetchThread::Request> *);
public:
void ~MutexedQueue(class MutexedQueue<CurlFetchThread::Request> *, int);
/* size: 152, cachelines: 3, members: 3 */
/* last cacheline: 24 bytes */
};
struct MeshTimeInfo {
s32 time; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
class IMesh * mesh; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* sum members: 12, holes: 1, sum holes: 4 */
/* last cacheline: 16 bytes */
};
struct ICraftAction : InventoryAction {
/* struct InventoryAction <ancestor>; */ /* 0 8 */
u16 count; /* 8 2 */
/* XXX 6 bytes hole, try to pack */
struct InventoryLocation craft_inv; /* 16 48 */
/* XXX last struct has 2 bytes of padding */
void ICraftAction(class ICraftAction *, );
void ICraftAction(class ICraftAction *, const class ICraftAction &);
void ICraftAction(class ICraftAction *);
void ICraftAction(class ICraftAction *, istream &);
virtual u16 getType(const class ICraftAction *);
virtual void serialize(const class ICraftAction *, ostream &);
virtual void apply(class ICraftAction *, class InventoryManager *, class ServerActiveObject *, class IGameDef *);
virtual void clientApply(class ICraftAction *, class InventoryManager *, class IGameDef *);
virtual void ~ICraftAction(class ICraftAction *, int);
/* vtable has 4 entries: {
[0] = getType((null)),
[1] = serialize((null)),
[2] = apply((null)),
[3] = clientApply((null)),
} */
/* size: 64, cachelines: 1, members: 3 */
/* sum members: 50, holes: 1, sum holes: 6 */
/* paddings: 1, sum paddings: 2 */
/* BRAIN FART ALERT! 64 != 50 + 6(holes), diff = 8 */
};
struct IDropAction : InventoryAction {
/* struct InventoryAction <ancestor>; */ /* 0 8 */
u16 count; /* 8 2 */
/* XXX 6 bytes hole, try to pack */
struct InventoryLocation from_inv; /* 16 48 */
/* XXX last struct has 2 bytes of padding */
/* --- cacheline 1 boundary (64 bytes) --- */
string from_list; /* 64 32 */
s16 from_i; /* 96 2 */
void IDropAction(class IDropAction *, );
void IDropAction(class IDropAction *, const class IDropAction &);
void IDropAction(class IDropAction *);
void IDropAction(class IDropAction *, istream &);
virtual u16 getType(const class IDropAction *);
virtual void serialize(const class IDropAction *, ostream &);
virtual void apply(class IDropAction *, class InventoryManager *, class ServerActiveObject *, class IGameDef *);
virtual void clientApply(class IDropAction *, class InventoryManager *, class IGameDef *);
virtual void ~IDropAction(class IDropAction *, int);
/* vtable has 4 entries: {
[0] = getType((null)),
[1] = serialize((null)),
[2] = apply((null)),
[3] = clientApply((null)),
} */
/* size: 104, cachelines: 2, members: 5 */
/* sum members: 84, holes: 1, sum holes: 6 */
/* padding: 6 */
/* paddings: 1, sum paddings: 2 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 104 != 84 + 6(holes), diff = 14 */
};
struct IMoveAction : InventoryAction {
/* struct InventoryAction <ancestor>; */ /* 0 8 */
u16 count; /* 8 2 */
/* XXX 6 bytes hole, try to pack */
struct InventoryLocation from_inv; /* 16 48 */
/* XXX last struct has 2 bytes of padding */
/* --- cacheline 1 boundary (64 bytes) --- */
string from_list; /* 64 32 */
s16 from_i; /* 96 2 */
/* XXX 6 bytes hole, try to pack */
struct InventoryLocation to_inv; /* 104 48 */
/* XXX last struct has 2 bytes of padding */
/* --- cacheline 2 boundary (128 bytes) was 24 bytes ago --- */
string to_list; /* 152 32 */
s16 to_i; /* 184 2 */
bool move_somewhere; /* 186 1 */
bool caused_by_move_somewhere; /* 187 1 */
u32 move_count; /* 188 4 */
void IMoveAction(class IMoveAction *, );
void IMoveAction(class IMoveAction *, const class IMoveAction &);
void IMoveAction(class IMoveAction *);
void IMoveAction(class IMoveAction *, istream &, bool);
virtual u16 getType(const class IMoveAction *);
virtual void serialize(const class IMoveAction *, ostream &);
virtual void apply(class IMoveAction *, class InventoryManager *, class ServerActiveObject *, class IGameDef *);
virtual void clientApply(class IMoveAction *, class InventoryManager *, class IGameDef *);
virtual void ~IMoveAction(class IMoveAction *, int);
/* vtable has 4 entries: {
[0] = getType((null)),
[1] = serialize((null)),
[2] = apply((null)),
[3] = clientApply((null)),
} */
/* size: 192, cachelines: 3, members: 11 */
/* sum members: 172, holes: 2, sum holes: 12 */
/* paddings: 2, sum paddings: 4 */
/* BRAIN FART ALERT! 192 != 172 + 12(holes), diff = 8 */
};
class CItemDefManager : public IWritableItemDefManager {
struct ClientCached {
class ITexture * inventory_texture; /* 0 8 */
struct ItemMesh wield_mesh; /* 8 32 */
Palette * palette; /* 40 8 */
void ClientCached(class ClientCached *);
void ~ClientCached(class ClientCached *, int);
/* size: 48, cachelines: 1, members: 3 */
/* last cacheline: 48 bytes */
};
public:
/* class IWritableItemDefManager <ancestor>; */ /* 0 8 */
class map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ItemDefinition*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ItemDefinition*> > > m_item_definitions; /* 8 48 */
StringMap m_aliases; /* 56 56 */
/* --- cacheline 1 boundary (64 bytes) was 48 bytes ago --- */
threadid_t m_main_thread; /* 112 8 */
struct ClientCached m_dummy_clientcached; /* 120 48 */
/* --- cacheline 2 boundary (128 bytes) was 40 bytes ago --- */
class MutexedMap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached*> m_clientcached; /* 168 88 */
/* --- cacheline 4 boundary (256 bytes) --- */
class RequestQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached*, unsigned char, unsigned char> m_get_clientcached_queue; /* 256 152 */
void CItemDefManager(class CItemDefManager *, const class CItemDefManager &);
void CItemDefManager(class CItemDefManager *);
virtual void ~CItemDefManager(class CItemDefManager *, int);
virtual const class ItemDefinition & get(const class CItemDefManager *, const string &);
virtual const string & getAlias(const class CItemDefManager *, const string &);
virtual void getAll(const class CItemDefManager *, class set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string);
virtual bool isKnown(const class CItemDefManager *, const string &);
class ClientCached * createClientCachedDirect(const class CItemDefManager *, const string &, class Client *);
class ClientCached * getClientCached(const class CItemDefManager *, const string &, class Client *);
virtual class ITexture * getInventoryTexture(const class CItemDefManager *, const string &, class Client *);
virtual class ItemMesh * getWieldMesh(const class CItemDefManager *, const string &, class Client *);
virtual Palette * getPalette(const class CItemDefManager *, const string &, class Client *);
virtual class SColor getItemstackColor(const class CItemDefManager *, const class ItemStack &, class Client *);
virtual void clear(class CItemDefManager *);
virtual void registerItem(class CItemDefManager *, const class ItemDefinition &);
virtual void unregisterItem(class CItemDefManager *, const string &);
virtual void registerAlias(class CItemDefManager *, const string &, const string &);
virtual void serialize(class CItemDefManager *, ostream &, u16);
virtual void deSerialize(class CItemDefManager *, istream &);
virtual void processQueue(class CItemDefManager *, class IGameDef *);
/* vtable has 15 entries: {
[2] = get((null)),
[3] = getAlias((null)),
[4] = getAll((null)),
[5] = isKnown((null)),
[6] = getInventoryTexture((null)),
[7] = getWieldMesh((null)),
[8] = getPalette((null)),
[9] = getItemstackColor((null)),
[11] = clear((null)),
[12] = registerItem((null)),
[13] = unregisterItem((null)),
[14] = registerAlias((null)),
[10] = serialize((null)),
[15] = deSerialize((null)),
[16] = processQueue((null)),
} */
/* size: 408, cachelines: 7, members: 7 */
/* last cacheline: 24 bytes */
/* BRAIN FART ALERT! 408 != 400 + 0(holes), diff = 8 */
};
class MutexedMap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached*> {
class map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached*> > > m_values; /* 0 48 */
Mutex m_mutex; /* 48 40 */
public:
void MutexedMap(class MutexedMap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached);
void set(class MutexedMap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached, const class basic_string<char, std::char_traits<char>, std::allocator<char> > &, const class ClientCached * &);
bool get(const class MutexedMap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::Client, const class basic_string<char, std::char_traits<char>, std::allocator<char> > &, class ClientCached * *);
class vector<CItemDefManager::ClientCached*, std::allocator<CItemDefManager::ClientCached*> > getValues(const class MutexedMap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::Client);
void clear(class MutexedMap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached);
void ~MutexedMap(class MutexedMap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached, int);
/* size: 88, cachelines: 2, members: 2 */
/* last cacheline: 24 bytes */
};
class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached*, unsigned char, unsigned char> {
public:
class basic_string<char, std::char_traits<char>, std::allocator<char> > key; /* 0 32 */
class list<CallerInfo<unsigned char, unsigned char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached*>, std::allocator<CallerInfo<unsigned char, unsigned char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached*> > > callers; /* 32 24 */
void GetRequest(class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached);
void ~GetRequest(class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached, int);
void GetRequest(class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached, class basic_string<char, std::char_traits<char>, std::allocator<char> >);
void GetRequest(class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached, const class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::Client);
/* size: 56, cachelines: 1, members: 2 */
/* last cacheline: 56 bytes */
};
class MutexedQueue<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached*, unsigned char, unsigned char> > {
protected:
class deque<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached*, unsigned char, unsigned char>, std::allocator<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached*, unsigned char, unsigned char> > > m_queue; /* 0 80 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
Mutex m_mutex; /* 80 40 */
class Semaphore m_signal; /* 120 32 */
public:
void MutexedQueue(class MutexedQueue<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager:);
bool empty(const class MutexedQueue<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefMa);
void push_back(class MutexedQueue<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager:, class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached);
class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached pop_frontNoEx(class MutexedQueue<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager:, u32);
class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached pop_front(class MutexedQueue<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager:, u32);
class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached pop_frontNoEx(class MutexedQueue<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager:);
class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached pop_back(class MutexedQueue<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager:, u32);
class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached pop_backNoEx(class MutexedQueue<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager:, u32);
class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached pop_backNoEx(class MutexedQueue<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager:);
protected:
Mutex & getMutex(class MutexedQueue<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager:);
class deque<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::Client getQueue(class MutexedQueue<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager:);
public:
void ~MutexedQueue(class MutexedQueue<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager:, int);
/* size: 152, cachelines: 3, members: 3 */
/* last cacheline: 24 bytes */
};
class RequestQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached*, unsigned char, unsigned char> {
class MutexedQueue<GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached*, unsigned char, unsigned char> > m_queue; /* 0 152 */
public:
bool empty(class RequestQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCach);
void add(class RequestQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCach, class basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned char, class ResultQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCache);
class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached pop(class RequestQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCach, unsigned int);
class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached pop(class RequestQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCach);
void pushResult(class RequestQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCach, class GetRequest<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached, class ClientCached *);
void ~RequestQueue(class RequestQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCach, int);
void RequestQueue(class RequestQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCach);
/* size: 152, cachelines: 3, members: 1 */
/* last cacheline: 24 bytes */
};
class ResultQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached*, unsigned char, unsigned char> : public MutexedQueue<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached*, unsigned char, unsigned char> > {
public:
/* class MutexedQueue<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached*, unsigned char, unsigned char> > <ancestor>; */ /* 0 152 */
void ~ResultQueue(class ResultQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCache, int);
void ResultQueue(class ResultQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCache);
/* size: 152, cachelines: 3, members: 1 */
/* last cacheline: 24 bytes */
/* BRAIN FART ALERT! 152 != 0 + 0(holes), diff = 152 */
};
class GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached*, unsigned char, unsigned char> {
public:
class basic_string<char, std::char_traits<char>, std::allocator<char> > key; /* 0 32 */
class ClientCached * item; /* 32 8 */
struct pair<unsigned char, unsigned char> caller; /* 40 2 */
void GetResult(class GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached*);
void GetResult(class GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached*, const class GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientC);
void GetResult(class GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached*, );
void ~GetResult(class GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached*, int);
/* size: 48, cachelines: 1, members: 3 */
/* padding: 6 */
/* last cacheline: 48 bytes */
};
class MutexedQueue<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached*, unsigned char, unsigned char> > {
protected:
class deque<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached*, unsigned char, unsigned char>, std::allocator<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached*, unsigned char, unsigned char> > > m_queue; /* 0 80 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
Mutex m_mutex; /* 80 40 */
class Semaphore m_signal; /* 120 32 */
public:
void MutexedQueue(class MutexedQueue<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::);
bool empty(const class MutexedQueue<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefMan);
void push_back(class MutexedQueue<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::, class GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached*);
class GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached* pop_frontNoEx(class MutexedQueue<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::, u32);
class GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached* pop_front(class MutexedQueue<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::, u32);
class GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached* pop_frontNoEx(class MutexedQueue<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::);
class GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached* pop_back(class MutexedQueue<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::, u32);
class GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached* pop_backNoEx(class MutexedQueue<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::, u32);
class GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached* pop_backNoEx(class MutexedQueue<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::);
protected:
Mutex & getMutex(class MutexedQueue<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::);
class deque<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientC getQueue(class MutexedQueue<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::);
public:
void ~MutexedQueue(class MutexedQueue<GetResult<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::, int);
/* size: 152, cachelines: 3, members: 3 */
/* last cacheline: 24 bytes */
};
class CallerInfo<unsigned char, unsigned char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCached*> {
public:
unsigned char caller; /* 0 1 */
unsigned char data; /* 1 1 */
/* XXX 6 bytes hole, try to pack */
class ResultQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, CItemDefManager::ClientCache dest; /* 8 8 */
/* size: 16, cachelines: 1, members: 3 */
/* sum members: 10, holes: 1, sum holes: 6 */
/* last cacheline: 16 bytes */
};
struct table_key {
const char * Name; /* 0 8 */
enum EKEY_CODE Key; /* 8 4 */
wchar_t Char; /* 12 4 */
const char * LangName; /* 16 8 */
/* size: 24, cachelines: 1, members: 4 */
/* last cacheline: 24 bytes */
};
class UnknownKeycode : public BaseException {
public:
/* class BaseException <ancestor>; */ /* 0 40 */
void UnknownKeycode(class UnknownKeycode *, );
void UnknownKeycode(class UnknownKeycode *, const class UnknownKeycode &);
void UnknownKeycode(class UnknownKeycode *, const char *);
virtual void ~UnknownKeycode(class UnknownKeycode *, int);
/* size: 40, cachelines: 1, members: 1 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 40 != 0 + 0(holes), diff = 40 */
};
class LocalPlayer : public Player {
public:
/* class Player <ancestor>; */ /* 0 328 */
/* --- cacheline 5 boundary (320 bytes) was 8 bytes ago --- */
class ClientActiveObject * parent; /* 328 8 */
u16 hp; /* 336 2 */
bool got_teleported; /* 338 1 */
bool isAttached; /* 339 1 */
bool touching_ground; /* 340 1 */
bool in_liquid; /* 341 1 */
bool in_liquid_stable; /* 342 1 */
u8 liquid_viscosity; /* 343 1 */
bool is_climbing; /* 344 1 */
bool swimming_vertical; /* 345 1 */
/* XXX 2 bytes hole, try to pack */
float physics_override_speed; /* 348 4 */
float physics_override_jump; /* 352 4 */
float physics_override_gravity; /* 356 4 */
bool physics_override_sneak; /* 360 1 */
bool physics_override_sneak_glitch; /* 361 1 */
bool physics_override_new_move; /* 362 1 */
/* XXX 1 byte hole, try to pack */
v3f overridePosition; /* 364 12 */
v3f last_position; /* 376 12 */
/* --- cacheline 6 boundary (384 bytes) was 4 bytes ago --- */
v3f last_speed; /* 388 12 */
float last_pitch; /* 400 4 */
float last_yaw; /* 404 4 */
unsigned int last_keyPressed; /* 408 4 */
u8 last_camera_fov; /* 412 1 */
u8 last_wanted_range; /* 413 1 */
/* XXX 2 bytes hole, try to pack */
float camera_impact; /* 416 4 */
int last_animation; /* 420 4 */
float last_animation_speed; /* 424 4 */
/* XXX 4 bytes hole, try to pack */
string hotbar_image; /* 432 32 */
/* --- cacheline 7 boundary (448 bytes) was 16 bytes ago --- */
string hotbar_selected_image; /* 464 32 */
class SColor light_color; /* 496 4 */
float hurt_tilt_timer; /* 500 4 */
float hurt_tilt_strength; /* 504 4 */
v3f m_position; /* 508 12 */
/* --- cacheline 8 boundary (512 bytes) was 8 bytes ago --- */
v3s16 m_sneak_node; /* 520 6 */
/* XXX 2 bytes hole, try to pack */
f32 m_sneak_node_bb_ymax; /* 528 4 */
aabb3f m_sneak_node_bb_top; /* 532 24 */
bool m_sneak_node_exists; /* 556 1 */
bool m_need_to_get_new_sneak_node; /* 557 1 */
bool m_sneak_ladder_detected; /* 558 1 */
bool m_ledge_detected; /* 559 1 */
v3s16 m_old_node_below; /* 560 6 */
/* XXX 2 bytes hole, try to pack */
string m_old_node_below_type; /* 568 32 */
/* --- cacheline 9 boundary (576 bytes) was 24 bytes ago --- */
bool m_can_jump; /* 600 1 */
/* XXX 1 byte hole, try to pack */
u16 m_breath; /* 602 2 */
f32 m_yaw; /* 604 4 */
f32 m_pitch; /* 608 4 */
bool camera_barely_in_ceiling; /* 612 1 */
/* XXX 3 bytes hole, try to pack */
aabb3f m_collisionbox; /* 616 24 */
/* --- cacheline 10 boundary (640 bytes) --- */
class GenericCAO * m_cao; /* 640 8 */
class Client * m_client; /* 648 8 */
void LocalPlayer(class LocalPlayer *, const class LocalPlayer &);
void LocalPlayer(class LocalPlayer *, class Client *, const char *);
virtual void ~LocalPlayer(class LocalPlayer *, int);
virtual void move(class LocalPlayer *, f32, class Environment *, f32);
virtual void move(class LocalPlayer *, f32, class Environment *, f32, class vector<CollisionInfo, std::allocator<CollisionInfo> > *);
void old_move(class LocalPlayer *, f32, class Environment *, f32, class vector<CollisionInfo, std::allocator<CollisionInfo> > *);
void applyControl(class LocalPlayer *, float);
v3s16 getStandingNodePos(class LocalPlayer *);
v3s16 getFootstepNodePos(class LocalPlayer *);
class GenericCAO * getCAO(const class LocalPlayer *);
void setCAO(class LocalPlayer *, class GenericCAO *);
u32 maxHudId(const class LocalPlayer *);
u16 getBreath(const class LocalPlayer *);
void setBreath(class LocalPlayer *, u16);
v3s16 getLightPosition(const class LocalPlayer *);
void setYaw(class LocalPlayer *, f32);
f32 getYaw(const class LocalPlayer *);
void setPitch(class LocalPlayer *, f32);
f32 getPitch(const class LocalPlayer *);
void setPosition(class LocalPlayer *, const v3f &);
v3f getPosition(const class LocalPlayer *);
v3f getEyePosition(const class LocalPlayer *);
v3f getEyeOffset(const class LocalPlayer *);
void accelerateHorizontal(class LocalPlayer *, const v3f &, f32);
void accelerateVertical(class LocalPlayer *, const v3f &, f32);
/* vtable has 2 entries: {
[2] = move((null)),
[3] = move((null)),
} */
/* size: 656, cachelines: 11, members: 51 */
/* sum members: 311, holes: 8, sum holes: 17 */
/* last cacheline: 16 bytes */
/* BRAIN FART ALERT! 656 != 311 + 17(holes), diff = 328 */
};
class RawLogBuffer : public StringBuffer {
public:
/* class StringBuffer <ancestor>; */ /* 0 328 */
/* XXX last struct has 4 bytes of padding */
void RawLogBuffer(class RawLogBuffer *, );
void RawLogBuffer(class RawLogBuffer *, const class RawLogBuffer &);
void RawLogBuffer(class RawLogBuffer *);
virtual void flush(class RawLogBuffer *, const string &);
virtual void ~RawLogBuffer(class RawLogBuffer *, int);
/* vtable has 1 entries: {
[14] = flush((null)),
} */
/* size: 328, cachelines: 6, members: 1 */
/* paddings: 1, sum paddings: 4 */
/* last cacheline: 8 bytes */
/* BRAIN FART ALERT! 328 != 0 + 0(holes), diff = 328 */
};
class LogBuffer : public StringBuffer {
public:
/* class StringBuffer <ancestor>; */ /* 0 328 */
/* XXX last struct has 4 bytes of padding */
/* --- cacheline 5 boundary (320 bytes) was 8 bytes ago --- */
class Logger &const logger; /* 328 8 */
enum LogLevel level; /* 336 4 */
void LogBuffer(class LogBuffer *, );
void LogBuffer(class LogBuffer *, const class LogBuffer &);
void LogBuffer(class LogBuffer *, class Logger &, enum LogLevel);
virtual void flush(class LogBuffer *, const string &);
virtual void ~LogBuffer(class LogBuffer *, int);
/* vtable has 1 entries: {
[14] = flush((null)),
} */
/* size: 344, cachelines: 6, members: 3 */
/* padding: 4 */
/* paddings: 1, sum paddings: 4 */
/* last cacheline: 24 bytes */
/* BRAIN FART ALERT! 344 != 12 + 0(holes), diff = 332 */
};
class StringBuffer : public basic_streambuf<char, std::char_traits<char> > {
public:
/* class basic_streambuf<char, std::char_traits<char> > <ancestor>; */ /* 0 0 */
/* XXX 64 bytes hole, try to pack */
/* --- cacheline 1 boundary (64 bytes) --- */
char buffer[256]; /* 64 256 */
/* --- cacheline 5 boundary (320 bytes) --- */
int buffer_index; /* 320 4 */
void StringBuffer(class StringBuffer *, );
void StringBuffer(class StringBuffer *, const class StringBuffer &);
void StringBuffer(class StringBuffer *);
virtual int overflow(class StringBuffer *, int);
virtual void flush(class StringBuffer *, const string &);
virtual streamsize xsputn(class StringBuffer *, const char *, streamsize);
void push_back(class StringBuffer *, char);
virtual void ~StringBuffer(class StringBuffer *, int);
/* vtable has 3 entries: {
[13] = overflow((null)),
[14] = flush((null)),
[12] = xsputn((null)),
} */
/* size: 328, cachelines: 6, members: 3 */
/* sum members: 260, holes: 1, sum holes: 64 */
/* padding: 4 */
/* last cacheline: 8 bytes */
};
struct ValueSpec {
enum ValueType type; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
const char * help; /* 8 8 */
void ValueSpec(class ValueSpec *, enum ValueType, const char *);
/* size: 16, cachelines: 1, members: 2 */
/* sum members: 12, holes: 1, sum holes: 4 */
/* last cacheline: 16 bytes */
};
class ChatEvent {
public:
enum ChatEventType type; /* 0 4 */
protected:
void ChatEvent(class ChatEvent *, enum ChatEventType);
/* size: 4, cachelines: 1, members: 1 */
/* last cacheline: 4 bytes */
};
class MutexedQueue<ChatEvent*> {
protected:
class deque<ChatEvent*, std::allocator<ChatEvent*> > m_queue; /* 0 80 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
Mutex m_mutex; /* 80 40 */
class Semaphore m_signal; /* 120 32 */
public:
void MutexedQueue(class MutexedQueue<ChatEvent*> *);
bool empty(const class MutexedQueue<ChatEvent*> *);
void push_back(class MutexedQueue<ChatEvent*> *, class ChatEvent *);
class ChatEvent * pop_frontNoEx(class MutexedQueue<ChatEvent*> *, u32);
class ChatEvent * pop_front(class MutexedQueue<ChatEvent*> *, u32);
class ChatEvent * pop_frontNoEx(class MutexedQueue<ChatEvent*> *);
class ChatEvent * pop_back(class MutexedQueue<ChatEvent*> *, u32);
class ChatEvent * pop_backNoEx(class MutexedQueue<ChatEvent*> *, u32);
class ChatEvent * pop_backNoEx(class MutexedQueue<ChatEvent*> *);
protected:
Mutex & getMutex(class MutexedQueue<ChatEvent*> *);
class deque<ChatEvent*, std::allocator<ChatEvent*> > & getQueue(class MutexedQueue<ChatEvent*> *);
public:
void ~MutexedQueue(class MutexedQueue<ChatEvent*> *, int);
/* size: 152, cachelines: 3, members: 3 */
/* last cacheline: 24 bytes */
};
struct ChatInterface {
class MutexedQueue<ChatEvent*> command_queue; /* 0 152 */
/* --- cacheline 2 boundary (128 bytes) was 24 bytes ago --- */
class MutexedQueue<ChatEvent*> outgoing_queue; /* 152 152 */
void ~ChatInterface(class ChatInterface *, int);
void ChatInterface(class ChatInterface *);
/* size: 304, cachelines: 5, members: 2 */
/* last cacheline: 48 bytes */
};
class FileLogOutput : public ICombinedLogOutput {
public:
/* class ICombinedLogOutput <ancestor>; */ /* 0 8 */
ofstream m_stream; /* 8 0 */
void FileLogOutput(class FileLogOutput *, );
void FileLogOutput(class FileLogOutput *, const class FileLogOutput &);
void FileLogOutput(class FileLogOutput *);
void open(class FileLogOutput *, const string &);
virtual void logRaw(class FileLogOutput *, enum LogLevel, const string &);
void ~FileLogOutput(class FileLogOutput *, int);
/* vtable has 1 entries: {
[0] = logRaw((null)),
} */
/* size: 520, cachelines: 9, members: 2 */
/* padding: 512 */
/* last cacheline: 8 bytes */
/* BRAIN FART ALERT! 520 != 0 + 0(holes), diff = 520 */
};
class Map {
public:
int ()(void) * * _vptr.Map; /* 0 8 */
protected:
ostream &const m_dout; /* 8 8 */
class IGameDef * m_gamedef; /* 16 8 */
class set<MapEventReceiver*, std::less<MapEventReceiver*>, std::allocator<MapEventReceiver*> > m_event_receivers; /* 24 48 */
/* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
class map<irr::core::vector2d<short int>, MapSector*, std::less<irr::core::vector2d<short int> >, std::allocator<std::pair<const irr::core::vector2d<short int>, MapSector*> > > m_sectors; /* 72 48 */
class MapSector * m_sector_cache; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
v2s16 m_sector_cache_p; /* 128 4 */
/* XXX 4 bytes hole, try to pack */
class UniqueQueue<irr::core::vector3d<short int> > m_transforming_liquid; /* 136 128 */
/* --- cacheline 4 boundary (256 bytes) was 8 bytes ago --- */
class INodeDefManager * m_nodedef; /* 264 8 */
f32 m_transforming_liquid_loop_count_multiplier; /* 272 4 */
u32 m_unprocessed_count; /* 276 4 */
u32 m_inc_trending_up_start_time; /* 280 4 */
bool m_queue_size_timer_started; /* 284 1 */
public:
void Map(class Map *, ostream &, class IGameDef *);
virtual void ~Map(class Map *, int);
virtual s32 mapType(const class Map *);
virtual void drop(class Map *);
void addEventReceiver(class Map *, class MapEventReceiver *);
void removeEventReceiver(class Map *, class MapEventReceiver *);
void dispatchEvent(class Map *, class MapEditEvent *);
class MapSector * getSectorNoGenerateNoExNoLock(class Map *, v2s16);
class MapSector * getSectorNoGenerateNoEx(class Map *, v2s16);
class MapSector * getSectorNoGenerate(class Map *, v2s16);
virtual class MapSector * emergeSector(class Map *, v2s16);
virtual class MapSector * emergeSector(class Map *, v2s16, class map<irr::core::vector3d<short int>, MapBlock*, std::less<irr::core::vector3d<short int> >, std::allocator<std::pair<const);
class MapBlock * getBlockNoCreate(class Map *, v3s16);
class MapBlock * getBlockNoCreateNoEx(class Map *, v3s16);
virtual class MapBlock * emergeBlock(class Map *, v3s16, bool);
class INodeDefManager * getNodeDefManager(class Map *);
bool isNodeUnderground(class Map *, v3s16);
bool isValidPosition(class Map *, v3s16);
void setNode(class Map *, v3s16, class MapNode &);
class MapNode getNodeNoEx(class Map *, v3s16, bool *);
void addNodeAndUpdate(class Map *, v3s16, class MapNode, class map<irr::core::vector3d<short int>, MapBlock*, std::less<irr::core::vector3d<short int> >, std::allocator<std::pair<const, bool);
void removeNodeAndUpdate(class Map *, v3s16, class map<irr::core::vector3d<short int>, MapBlock*, std::less<irr::core::vector3d<short int> >, std::allocator<std::pair<const);
bool addNodeWithEvent(class Map *, v3s16, class MapNode, bool);
bool removeNodeWithEvent(class Map *, v3s16);
bool getDayNightDiff(class Map *, v3s16);
virtual void beginSave(class Map *);
virtual void endSave(class Map *);
virtual void save(class Map *, enum ModifiedState);
virtual bool saveBlock(class Map *, class MapBlock *);
virtual bool deleteBlock(class Map *, v3s16);
void timerUpdate(class Map *, float, float, u32, class vector<irr::core::vector3d<short int>, std::allocator<irr::core::vector3d<short int> > > *);
void unloadUnreferencedBlocks(class Map *, class vector<irr::core::vector3d<short int>, std::allocator<irr::core::vector3d<short int> > > *);
void deleteSectors(class Map *, class vector<irr::core::vector2d<short int>, std::allocator<irr::core::vector2d<short int> > > &);
virtual void PrintInfo(class Map *, ostream &);
void transformLiquids(class Map *, class map<irr::core::vector3d<short int>, MapBlock*, std::less<irr::core::vector3d<short int> >, std::allocator<std::pair<const);
class vector<irr::core::vector3d<short int>, std::allocator<irr::core::vector3d<short int> > > findNodesWithMetadata(class Map *, v3s16, v3s16);
class NodeMetadata * getNodeMetadata(class Map *, v3s16);
bool setNodeMetadata(class Map *, v3s16, class NodeMetadata *);
void removeNodeMetadata(class Map *, v3s16);
class NodeTimer getNodeTimer(class Map *, v3s16);
void setNodeTimer(class Map *, const class NodeTimer &);
void removeNodeTimer(class Map *, v3s16);
class map<irr::core::vector2d<short int>, MapSector*, std::less<irr::core::vector2d<short int> >, std::allocator<std::pair<cons getSectorsPtr(class Map *);
void transforming_liquid_add(class Map *, v3s16);
s32 transforming_liquid_size(class Map *);
bool isBlockOccluded(class Map *, class MapBlock *, v3s16);
protected:
bool isOccluded(class Map *, v3s16, v3s16, float, float, float, float, u32);
void Map(class Map *, const class Map &);
class Map & operator=(class Map *, const class Map &);
/* vtable has 11 entries: {
[2] = mapType((null)),
[3] = drop((null)),
[4] = emergeSector((null)),
[5] = emergeSector((null)),
[6] = emergeBlock((null)),
[7] = beginSave((null)),
[8] = endSave((null)),
[9] = save((null)),
[10] = saveBlock((null)),
[11] = deleteBlock((null)),
[12] = PrintInfo((null)),
} */
/* size: 288, cachelines: 5, members: 13 */
/* sum members: 281, holes: 1, sum holes: 4 */
/* padding: 3 */
/* last cacheline: 32 bytes */
};
class ReflowScan {
class Map * m_map; /* 0 8 */
class INodeDefManager * m_ndef; /* 8 8 */
v3s16 m_block_pos; /* 16 6 */
v3s16 m_rel_block_pos; /* 22 6 */
/* XXX 4 bytes hole, try to pack */
class UniqueQueue<irr::core::vector3d<short int> > * m_liquid_queue; /* 32 8 */
class MapBlock * m_lookup[27]; /* 40 216 */
/* --- cacheline 4 boundary (256 bytes) --- */
u32 m_lookup_state_bitset; /* 256 4 */
public:
void ReflowScan(class ReflowScan *, class Map *, class INodeDefManager *);
void scan(class ReflowScan *, class MapBlock *, class UniqueQueue<irr::core::vector3d<short int> > *);
class MapBlock * lookupBlock(class ReflowScan *, int, int, int);
bool isLiquidFlowableTo(class ReflowScan *, int, int, int);
bool isLiquidHorizontallyFlowable(class ReflowScan *, int, int, int);
void scanColumn(class ReflowScan *, int, int);
/* size: 264, cachelines: 5, members: 7 */
/* sum members: 256, holes: 1, sum holes: 4 */
/* padding: 4 */
/* last cacheline: 8 bytes */
};
class MMVManip : public VoxelManipulator {
public:
/* class VoxelManipulator <ancestor>; */ /* 0 0 */
/* XXX 40 bytes hole, try to pack */
bool m_is_dirty; /* 40 1 */
protected:
bool m_create_area; /* 41 1 */
/* XXX 6 bytes hole, try to pack */
class Map * m_map; /* 48 8 */
class map<irr::core::vector3d<short int>, unsigned char, std::less<irr::core::vector3d<short int> >, std::allocator<std::pair<const irr::core::vector3d<short int>, unsigned char> > > m_loaded_blocks; /* 56 48 */
public:
void MMVManip(class MMVManip *, const class MMVManip &);
void MMVManip(class MMVManip *, class Map *);
virtual void ~MMVManip(class MMVManip *, int);
virtual void clear(class MMVManip *);
void setMap(class MMVManip *, class Map *);
void initialEmerge(class MMVManip *, v3s16, v3s16, bool);
void blitBackAll(class MMVManip *, class map<irr::core::vector3d<short int>, MapBlock*, std::less<irr::core::vector3d<short int> >, std::allocator<std::pair<const, bool);
/* vtable has 1 entries: {
[2] = clear((null)),
} */
/* size: 104, cachelines: 2, members: 5 */
/* sum members: 58, holes: 2, sum holes: 46 */
/* last cacheline: 40 bytes */
};
struct TimeOrderedMapBlock {
class MapSector * sect; /* 0 8 */
class MapBlock * block; /* 8 8 */
void TimeOrderedMapBlock(class TimeOrderedMapBlock *, class MapSector *, class MapBlock *);
bool operator<(const class TimeOrderedMapBlock *, const class TimeOrderedMapBlock &);
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
};
struct NodeNeighbor {
struct MapNode n; /* 0 4 */
enum NeighborType t; /* 4 4 */
v3s16 p; /* 8 6 */
bool l; /* 14 1 */
void NodeNeighbor(class NodeNeighbor *);
void NodeNeighbor(class NodeNeighbor *, const class MapNode &, enum NeighborType, v3s16);
class NodeNeighbor & operator=(class NodeNeighbor *, const class NodeNeighbor &);
/* size: 16, cachelines: 1, members: 4 */
/* padding: 1 */
/* last cacheline: 16 bytes */
};
class ServerMap : public Map {
public:
/* class Map <ancestor>; */ /* 0 288 */
/* XXX last struct has 3 bytes of padding */
/* --- cacheline 4 boundary (256 bytes) was 32 bytes ago --- */
class MapSettingsManager settings_mgr; /* 288 56 */
/* --- cacheline 5 boundary (320 bytes) was 24 bytes ago --- */
class EmergeManager * m_emerge; /* 344 8 */
string m_savedir; /* 352 32 */
/* --- cacheline 6 boundary (384 bytes) --- */
bool m_map_saving_enabled; /* 384 1 */
bool m_map_metadata_changed; /* 385 1 */
/* XXX 6 bytes hole, try to pack */
class Database * dbase; /* 392 8 */
void ServerMap(class ServerMap *, const class ServerMap &);
void ServerMap(class ServerMap *, const string &, class IGameDef *, class EmergeManager *);
virtual void ~ServerMap(class ServerMap *, int);
virtual s32 mapType(const class ServerMap *);
class ServerMapSector * createSector(class ServerMap *, v2s16);
bool blockpos_over_mapgen_limit(class ServerMap *, v3s16);
bool initBlockMake(class ServerMap *, v3s16, class BlockMakeData *);
void finishBlockMake(class ServerMap *, class BlockMakeData *, class map<irr::core::vector3d<short int>, MapBlock*, std::less<irr::core::vector3d<short int> >, std::allocator<std::pair<const);
class MapBlock * createBlock(class ServerMap *, v3s16);
virtual class MapBlock * emergeBlock(class ServerMap *, v3s16, bool);
class MapBlock * getBlockOrEmerge(class ServerMap *, v3s16);
void prepareBlock(class ServerMap *, class MapBlock *);
s16 findGroundLevel(class ServerMap *, v2s16);
void createDirs(class ServerMap *, string);
string getSectorDir(class ServerMap *, v2s16, int);
v2s16 getSectorPos(class ServerMap *, const string &);
v3s16 getBlockPos(class ServerMap *, const string &, const string &);
string getBlockFilename(v3s16);
class Database * createDatabase(const string &, const string &, class Settings &);
bool loadFromFolders(class ServerMap *);
virtual void beginSave(class ServerMap *);
virtual void endSave(class ServerMap *);
virtual void save(class ServerMap *, enum ModifiedState);
void listAllLoadableBlocks(class ServerMap *, class vector<irr::core::vector3d<short int>, std::allocator<irr::core::vector3d<short int> > > &);
void listAllLoadedBlocks(class ServerMap *, class vector<irr::core::vector3d<short int>, std::allocator<irr::core::vector3d<short int> > > &);
class MapgenParams * getMapgenParams(class ServerMap *);
void saveSectorMeta(class ServerMap *, class ServerMapSector *);
class MapSector * loadSectorMeta(class ServerMap *, string, bool);
bool loadSectorMeta(class ServerMap *, v2s16);
virtual bool saveBlock(class ServerMap *, class MapBlock *);
bool saveBlock(class MapBlock *, class Database *);
void loadBlock(class ServerMap *, const string &, const string &, class MapSector *, bool);
class MapBlock * loadBlock(class ServerMap *, v3s16);
void loadBlock(class ServerMap *, string *, v3s16, class MapSector *, bool);
virtual bool deleteBlock(class ServerMap *, v3s16);
void updateVManip(class ServerMap *, v3s16);
virtual void PrintInfo(class ServerMap *, ostream &);
bool isSavingEnabled(class ServerMap *);
u64 getSeed(class ServerMap *);
s16 getWaterLevel(class ServerMap *);
bool repairBlockLight(class ServerMap *, v3s16, class map<irr::core::vector3d<short int>, MapBlock*, std::less<irr::core::vector3d<short int> >, std::allocator<std::pair<const);
/* vtable has 8 entries: {
[2] = mapType((null)),
[6] = emergeBlock((null)),
[7] = beginSave((null)),
[8] = endSave((null)),
[9] = save((null)),
[10] = saveBlock((null)),
[11] = deleteBlock((null)),
[12] = PrintInfo((null)),
} */
/* size: 400, cachelines: 7, members: 7 */
/* sum members: 106, holes: 1, sum holes: 6 */
/* paddings: 1, sum paddings: 3 */
/* last cacheline: 16 bytes */
/* BRAIN FART ALERT! 400 != 106 + 6(holes), diff = 288 */
};
class InvalidFilenameException : public BaseException {
public:
/* class BaseException <ancestor>; */ /* 0 40 */
void InvalidFilenameException(class InvalidFilenameException *, );
void InvalidFilenameException(class InvalidFilenameException *, const class InvalidFilenameException &);
void InvalidFilenameException(class InvalidFilenameException *, const string &);
virtual void ~InvalidFilenameException(class InvalidFilenameException *, int);
/* size: 40, cachelines: 1, members: 1 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 40 != 0 + 0(holes), diff = 40 */
};
struct FastFace {
struct TileLayer layer; /* 0 72 */
/* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
struct S3DVertex vertices[4]; /* 72 144 */
/* --- cacheline 3 boundary (192 bytes) was 24 bytes ago --- */
bool vertex_0_2_connected; /* 216 1 */
u8 layernum; /* 217 1 */
void FastFace(class FastFace *, const class FastFace &);
void FastFace(class FastFace *, );
void ~FastFace(class FastFace *, int);
void FastFace(class FastFace *);
/* size: 224, cachelines: 4, members: 4 */
/* padding: 6 */
/* last cacheline: 32 bytes */
};
struct MapgenParams {
int ()(void) * * _vptr.MapgenParams; /* 0 8 */
enum MapgenType mgtype; /* 8 4 */
s16 chunksize; /* 12 2 */
/* XXX 2 bytes hole, try to pack */
u64 seed; /* 16 8 */
s16 water_level; /* 24 2 */
s16 mapgen_limit; /* 26 2 */
u32 flags; /* 28 4 */
class BiomeParams * bparams; /* 32 8 */
void MapgenParams(class MapgenParams *, const class MapgenParams &);
void MapgenParams(class MapgenParams *);
virtual void ~MapgenParams(class MapgenParams *, int);
virtual void readParams(class MapgenParams *, const class Settings *);
virtual void writeParams(const class MapgenParams *, class Settings *);
/* vtable has 2 entries: {
[2] = readParams((null)),
[3] = writeParams((null)),
} */
/* size: 40, cachelines: 1, members: 8 */
/* sum members: 38, holes: 1, sum holes: 2 */
/* last cacheline: 40 bytes */
};
class Mapgen {
public:
int ()(void) * * _vptr.Mapgen; /* 0 8 */
s32 seed; /* 8 4 */
int water_level; /* 12 4 */
int mapgen_limit; /* 16 4 */
u32 flags; /* 20 4 */
bool generating; /* 24 1 */
/* XXX 3 bytes hole, try to pack */
int id; /* 28 4 */
class MMVManip * vm; /* 32 8 */
class INodeDefManager * ndef; /* 40 8 */
u32 blockseed; /* 48 4 */
/* XXX 4 bytes hole, try to pack */
s16 * heightmap; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
biome_t * biomemap; /* 64 8 */
v3s16 csize; /* 72 6 */
/* XXX 2 bytes hole, try to pack */
class BiomeGen * biomegen; /* 80 8 */
class GenerateNotifier gennotify; /* 88 40 */
void Mapgen(class Mapgen *);
void Mapgen(class Mapgen *, int, class MapgenParams *, class EmergeManager *);
virtual void ~Mapgen(class Mapgen *, int);
virtual enum MapgenType getType(const class Mapgen *);
u32 getBlockSeed(v3s16, s32);
u32 getBlockSeed2(v3s16, s32);
s16 findGroundLevelFull(class Mapgen *, v2s16);
s16 findGroundLevel(class Mapgen *, v2s16, s16, s16);
s16 findLiquidSurface(class Mapgen *, v2s16, s16, s16);
void updateHeightmap(class Mapgen *, v3s16, v3s16);
void updateLiquid(class Mapgen *, class UniqueQueue<irr::core::vector3d<short int> > *, v3s16, v3s16);
void setLighting(class Mapgen *, u8, v3s16, v3s16);
void lightSpread(class Mapgen *, class VoxelArea &, v3s16, u8);
void calcLighting(class Mapgen *, v3s16, v3s16, v3s16, v3s16, bool);
void propagateSunlight(class Mapgen *, v3s16, v3s16, bool);
void spreadLight(class Mapgen *, v3s16, v3s16);
virtual void makeChunk(class Mapgen *, class BlockMakeData *);
virtual int getGroundLevelAtPoint(class Mapgen *, v2s16);
virtual int getSpawnLevelAtPoint(class Mapgen *, v2s16);
enum MapgenType getMapgenType(const string &);
const char * getMapgenName(enum MapgenType);
class Mapgen * createMapgen(enum MapgenType, int, class MapgenParams *, class EmergeManager *);
class MapgenParams * createMapgenParams(enum MapgenType);
void getMapgenNames(class vector<char const*, std::allocator<char const*> > *, bool);
bool isLiquidHorizontallyFlowable(class Mapgen *, u32, v3s16);
void Mapgen(class Mapgen *, const class Mapgen &);
class Mapgen & operator=(class Mapgen *, const class Mapgen &);
/* vtable has 4 entries: {
[2] = getType((null)),
[3] = makeChunk((null)),
[4] = getGroundLevelAtPoint((null)),
[5] = getSpawnLevelAtPoint((null)),
} */
/* size: 128, cachelines: 2, members: 15 */
/* sum members: 119, holes: 3, sum holes: 9 */
};
struct MapgenDesc {
const char * name; /* 0 8 */
bool is_user_visible; /* 8 1 */
/* size: 16, cachelines: 1, members: 2 */
/* padding: 7 */
/* last cacheline: 16 bytes */
};
struct BiomeParams {
int ()(void) * * _vptr.BiomeParams; /* 0 8 */
s32 seed; /* 8 4 */
void BiomeParams(class BiomeParams *, const class BiomeParams &);
void BiomeParams(class BiomeParams *);
virtual void readParams(class BiomeParams *, const class Settings *);
virtual void writeParams(const class BiomeParams *, class Settings *);
virtual void ~BiomeParams(class BiomeParams *, int);
/* vtable has 2 entries: {
[0] = readParams((null)),
[1] = writeParams((null)),
} */
/* size: 16, cachelines: 1, members: 2 */
/* padding: 4 */
/* last cacheline: 16 bytes */
};
class MapgenBasic : public Mapgen {
public:
/* class Mapgen <ancestor>; */ /* 0 128 */
protected:
/* --- cacheline 2 boundary (128 bytes) --- */
class EmergeManager * m_emerge; /* 128 8 */
class BiomeManager * m_bmgr; /* 136 8 */
class Noise * noise_filler_depth; /* 144 8 */
v3s16 node_min; /* 152 6 */
v3s16 node_max; /* 158 6 */
v3s16 full_node_min; /* 164 6 */
v3s16 full_node_max; /* 170 6 */
content_t c_stone; /* 176 2 */
content_t c_desert_stone; /* 178 2 */
content_t c_sandstone; /* 180 2 */
content_t c_water_source; /* 182 2 */
content_t c_river_water_source; /* 184 2 */
content_t c_lava_source; /* 186 2 */
content_t c_cobble; /* 188 2 */
content_t c_stair_cobble; /* 190 2 */
/* --- cacheline 3 boundary (192 bytes) --- */
content_t c_mossycobble; /* 192 2 */
content_t c_stair_desert_stone; /* 194 2 */
content_t c_sandstonebrick; /* 196 2 */
content_t c_stair_sandstone_block; /* 198 2 */
int ystride; /* 200 4 */
int zstride; /* 204 4 */
int zstride_1d; /* 208 4 */
int zstride_1u1d; /* 212 4 */
u32 spflags; /* 216 4 */
struct NoiseParams np_cave1; /* 220 40 */
/* --- cacheline 4 boundary (256 bytes) was 4 bytes ago --- */
struct NoiseParams np_cave2; /* 260 40 */
struct NoiseParams np_cavern; /* 300 40 */
/* --- cacheline 5 boundary (320 bytes) was 20 bytes ago --- */
float cave_width; /* 340 4 */
float cavern_limit; /* 344 4 */
float cavern_taper; /* 348 4 */
float cavern_threshold; /* 352 4 */
public:
void MapgenBasic(class MapgenBasic *, const class MapgenBasic &);
void MapgenBasic(class MapgenBasic *, int, class MapgenParams *, class EmergeManager *);
virtual void ~MapgenBasic(class MapgenBasic *, int);
virtual void generateCaves(class MapgenBasic *, s16, s16);
virtual bool generateCaverns(class MapgenBasic *, s16);
virtual void generateDungeons(class MapgenBasic *, s16, enum MgStoneType);
virtual enum MgStoneType generateBiomes(class MapgenBasic *);
virtual void dustTopNodes(class MapgenBasic *);
/* vtable has 5 entries: {
[6] = generateCaves((null)),
[7] = generateCaverns((null)),
[8] = generateDungeons((null)),
[9] = generateBiomes((null)),
[10] = dustTopNodes((null)),
} */
/* size: 360, cachelines: 6, members: 32 */
/* padding: 4 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 360 != 228 + 0(holes), diff = 132 */
};
class BiomeGen {
public:
int ()(void) * * _vptr.BiomeGen; /* 0 8 */
biome_t * biomemap; /* 8 8 */
protected:
class BiomeManager * m_bmgr; /* 16 8 */
v3s16 m_pmin; /* 24 6 */
v3s16 m_csize; /* 30 6 */
public:
void BiomeGen(class BiomeGen *, const class BiomeGen &);
void BiomeGen(class BiomeGen *);
virtual void ~BiomeGen(class BiomeGen *, int);
virtual enum BiomeGenType getType(const class BiomeGen *);
virtual class Biome * calcBiomeAtPoint(const class BiomeGen *, v3s16);
virtual void calcBiomeNoise(class BiomeGen *, v3s16);
virtual biome_t * getBiomes(class BiomeGen *, s16 *);
virtual class Biome * getBiomeAtPoint(const class BiomeGen *, v3s16);
virtual class Biome * getBiomeAtIndex(const class BiomeGen *, size_t, s16);
/* vtable has 6 entries: {
[2] = getType((null)),
[3] = calcBiomeAtPoint((null)),
[4] = calcBiomeNoise((null)),
[5] = getBiomes((null)),
[6] = getBiomeAtPoint((null)),
[7] = getBiomeAtIndex((null)),
} */
/* size: 40, cachelines: 1, members: 5 */
/* padding: 4 */
/* last cacheline: 40 bytes */
};
struct MapgenSinglenodeParams : MapgenParams {
/* struct MapgenParams <ancestor>; */ /* 0 40 */
void MapgenSinglenodeParams(class MapgenSinglenodeParams *, const class MapgenSinglenodeParams &);
void MapgenSinglenodeParams(class MapgenSinglenodeParams *);
virtual void ~MapgenSinglenodeParams(class MapgenSinglenodeParams *, int);
virtual void readParams(class MapgenSinglenodeParams *, const class Settings *);
virtual void writeParams(const class MapgenSinglenodeParams *, class Settings *);
/* vtable has 2 entries: {
[2] = readParams((null)),
[3] = writeParams((null)),
} */
/* size: 40, cachelines: 1, members: 1 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 40 != 0 + 0(holes), diff = 40 */
};
struct MapgenFlatParams : MapgenParams {
/* struct MapgenParams <ancestor>; */ /* 0 0 */
/* XXX 40 bytes hole, try to pack */
u32 spflags; /* 40 4 */
s16 ground_level; /* 44 2 */
s16 large_cave_depth; /* 46 2 */
float cave_width; /* 48 4 */
float lake_threshold; /* 52 4 */
float lake_steepness; /* 56 4 */
float hill_threshold; /* 60 4 */
/* --- cacheline 1 boundary (64 bytes) --- */
float hill_steepness; /* 64 4 */
struct NoiseParams np_terrain; /* 68 40 */
struct NoiseParams np_filler_depth; /* 108 40 */
/* --- cacheline 2 boundary (128 bytes) was 20 bytes ago --- */
struct NoiseParams np_cave1; /* 148 40 */
struct NoiseParams np_cave2; /* 188 40 */
void MapgenFlatParams(class MapgenFlatParams *, const class MapgenFlatParams &);
void MapgenFlatParams(class MapgenFlatParams *);
virtual void ~MapgenFlatParams(class MapgenFlatParams *, int);
virtual void readParams(class MapgenFlatParams *, const class Settings *);
virtual void writeParams(const class MapgenFlatParams *, class Settings *);
/* vtable has 2 entries: {
[2] = readParams((null)),
[3] = writeParams((null)),
} */
/* size: 232, cachelines: 4, members: 13 */
/* sum members: 188, holes: 1, sum holes: 40 */
/* padding: 4 */
/* last cacheline: 40 bytes */
};
class MapgenFlat : public MapgenBasic {
public:
/* class MapgenBasic <ancestor>; */ /* 0 0 */
/* XXX 356 bytes hole, try to pack */
/* --- cacheline 5 boundary (320 bytes) was 36 bytes ago --- */
s16 ground_level; /* 356 2 */
s16 large_cave_depth; /* 358 2 */
float lake_threshold; /* 360 4 */
float lake_steepness; /* 364 4 */
float hill_threshold; /* 368 4 */
float hill_steepness; /* 372 4 */
class Noise * noise_terrain; /* 376 8 */
void MapgenFlat(class MapgenFlat *, const class MapgenFlat &);
void MapgenFlat(class MapgenFlat *, int, class MapgenFlatParams *, class EmergeManager *);
virtual void ~MapgenFlat(class MapgenFlat *, int);
virtual enum MapgenType getType(const class MapgenFlat *);
virtual void makeChunk(class MapgenFlat *, class BlockMakeData *);
virtual int getSpawnLevelAtPoint(class MapgenFlat *, v2s16);
s16 generateTerrain(class MapgenFlat *);
/* vtable has 3 entries: {
[2] = getType((null)),
[3] = makeChunk((null)),
[5] = getSpawnLevelAtPoint((null)),
} */
/* size: 384, cachelines: 6, members: 8 */
/* sum members: 28, holes: 1, sum holes: 356 */
};
struct MapgenFractalParams : MapgenParams {
/* struct MapgenParams <ancestor>; */ /* 0 0 */
/* XXX 40 bytes hole, try to pack */
u32 spflags; /* 40 4 */
float cave_width; /* 44 4 */
u16 fractal; /* 48 2 */
u16 iterations; /* 50 2 */
v3f scale; /* 52 12 */
/* --- cacheline 1 boundary (64 bytes) --- */
v3f offset; /* 64 12 */
float slice_w; /* 76 4 */
float julia_x; /* 80 4 */
float julia_y; /* 84 4 */
float julia_z; /* 88 4 */
float julia_w; /* 92 4 */
struct NoiseParams np_seabed; /* 96 40 */
/* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */
struct NoiseParams np_filler_depth; /* 136 40 */
struct NoiseParams np_cave1; /* 176 40 */
/* --- cacheline 3 boundary (192 bytes) was 24 bytes ago --- */
struct NoiseParams np_cave2; /* 216 40 */
void MapgenFractalParams(class MapgenFractalParams *, const class MapgenFractalParams &);
void MapgenFractalParams(class MapgenFractalParams *);
virtual void ~MapgenFractalParams(class MapgenFractalParams *, int);
virtual void readParams(class MapgenFractalParams *, const class Settings *);
virtual void writeParams(const class MapgenFractalParams *, class Settings *);
/* vtable has 2 entries: {
[2] = readParams((null)),
[3] = writeParams((null)),
} */
/* size: 256, cachelines: 4, members: 16 */
/* sum members: 216, holes: 1, sum holes: 40 */
};
class MapgenFractal : public MapgenBasic {
public:
/* class MapgenBasic <ancestor>; */ /* 0 0 */
/* XXX 356 bytes hole, try to pack */
/* --- cacheline 5 boundary (320 bytes) was 36 bytes ago --- */
u16 formula; /* 356 2 */
bool julia; /* 358 1 */
/* XXX 1 byte hole, try to pack */
u16 fractal; /* 360 2 */
u16 iterations; /* 362 2 */
v3f scale; /* 364 12 */
v3f offset; /* 376 12 */
/* --- cacheline 6 boundary (384 bytes) was 4 bytes ago --- */
float slice_w; /* 388 4 */
float julia_x; /* 392 4 */
float julia_y; /* 396 4 */
float julia_z; /* 400 4 */
float julia_w; /* 404 4 */
class Noise * noise_seabed; /* 408 8 */
void MapgenFractal(class MapgenFractal *, const class MapgenFractal &);
void MapgenFractal(class MapgenFractal *, int, class MapgenFractalParams *, class EmergeManager *);
virtual void ~MapgenFractal(class MapgenFractal *, int);
virtual enum MapgenType getType(const class MapgenFractal *);
virtual void makeChunk(class MapgenFractal *, class BlockMakeData *);
virtual int getSpawnLevelAtPoint(class MapgenFractal *, v2s16);
bool getFractalAtPoint(class MapgenFractal *, s16, s16, s16);
s16 generateTerrain(class MapgenFractal *);
/* vtable has 3 entries: {
[2] = getType((null)),
[3] = makeChunk((null)),
[5] = getSpawnLevelAtPoint((null)),
} */
/* size: 416, cachelines: 7, members: 13 */
/* sum members: 59, holes: 2, sum holes: 357 */
/* last cacheline: 32 bytes */
};
class MapgenSinglenode : public Mapgen {
public:
/* class Mapgen <ancestor>; */ /* 0 0 */
/* XXX 128 bytes hole, try to pack */
/* --- cacheline 2 boundary (128 bytes) --- */
u32 flags; /* 128 4 */
content_t c_node; /* 132 2 */
u8 set_light; /* 134 1 */
void MapgenSinglenode(class MapgenSinglenode *, const class MapgenSinglenode &);
void MapgenSinglenode(class MapgenSinglenode *, int, class MapgenParams *, class EmergeManager *);
virtual void ~MapgenSinglenode(class MapgenSinglenode *, int);
virtual enum MapgenType getType(const class MapgenSinglenode *);
virtual void makeChunk(class MapgenSinglenode *, class BlockMakeData *);
virtual int getSpawnLevelAtPoint(class MapgenSinglenode *, v2s16);
/* vtable has 3 entries: {
[2] = getType((null)),
[3] = makeChunk((null)),
[5] = getSpawnLevelAtPoint((null)),
} */
/* size: 136, cachelines: 3, members: 4 */
/* sum members: 7, holes: 1, sum holes: 128 */
/* padding: 1 */
/* last cacheline: 8 bytes */
};
struct MapgenV5Params : MapgenParams {
/* struct MapgenParams <ancestor>; */ /* 0 0 */
/* XXX 40 bytes hole, try to pack */
u32 spflags; /* 40 4 */
float cave_width; /* 44 4 */
s16 cavern_limit; /* 48 2 */
s16 cavern_taper; /* 50 2 */
float cavern_threshold; /* 52 4 */
struct NoiseParams np_filler_depth; /* 56 40 */
/* --- cacheline 1 boundary (64 bytes) was 32 bytes ago --- */
struct NoiseParams np_factor; /* 96 40 */
/* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */
struct NoiseParams np_height; /* 136 40 */
struct NoiseParams np_ground; /* 176 40 */
/* --- cacheline 3 boundary (192 bytes) was 24 bytes ago --- */
struct NoiseParams np_cave1; /* 216 40 */
/* --- cacheline 4 boundary (256 bytes) --- */
struct NoiseParams np_cave2; /* 256 40 */
struct NoiseParams np_cavern; /* 296 40 */
void MapgenV5Params(class MapgenV5Params *, const class MapgenV5Params &);
void MapgenV5Params(class MapgenV5Params *);
virtual void ~MapgenV5Params(class MapgenV5Params *, int);
virtual void readParams(class MapgenV5Params *, const class Settings *);
virtual void writeParams(const class MapgenV5Params *, class Settings *);
/* vtable has 2 entries: {
[2] = readParams((null)),
[3] = writeParams((null)),
} */
/* size: 336, cachelines: 6, members: 13 */
/* sum members: 296, holes: 1, sum holes: 40 */
/* last cacheline: 16 bytes */
};
class MapgenV5 : public MapgenBasic {
public:
/* class MapgenBasic <ancestor>; */ /* 0 0 */
/* XXX 360 bytes hole, try to pack */
/* --- cacheline 5 boundary (320 bytes) was 40 bytes ago --- */
class Noise * noise_factor; /* 360 8 */
class Noise * noise_height; /* 368 8 */
class Noise * noise_ground; /* 376 8 */
void MapgenV5(class MapgenV5 *, const class MapgenV5 &);
void MapgenV5(class MapgenV5 *, int, class MapgenV5Params *, class EmergeManager *);
virtual void ~MapgenV5(class MapgenV5 *, int);
virtual enum MapgenType getType(const class MapgenV5 *);
virtual void makeChunk(class MapgenV5 *, class BlockMakeData *);
virtual int getSpawnLevelAtPoint(class MapgenV5 *, v2s16);
int generateBaseTerrain(class MapgenV5 *);
/* vtable has 3 entries: {
[2] = getType((null)),
[3] = makeChunk((null)),
[5] = getSpawnLevelAtPoint((null)),
} */
/* size: 384, cachelines: 6, members: 4 */
/* sum members: 24, holes: 1, sum holes: 360 */
};
struct MapgenV6Params : MapgenParams {
/* struct MapgenParams <ancestor>; */ /* 0 0 */
/* XXX 40 bytes hole, try to pack */
u32 spflags; /* 40 4 */
float freq_desert; /* 44 4 */
float freq_beach; /* 48 4 */
struct NoiseParams np_terrain_base; /* 52 40 */
/* --- cacheline 1 boundary (64 bytes) was 28 bytes ago --- */
struct NoiseParams np_terrain_higher; /* 92 40 */
/* --- cacheline 2 boundary (128 bytes) was 4 bytes ago --- */
struct NoiseParams np_steepness; /* 132 40 */
struct NoiseParams np_height_select; /* 172 40 */
/* --- cacheline 3 boundary (192 bytes) was 20 bytes ago --- */
struct NoiseParams np_mud; /* 212 40 */
struct NoiseParams np_beach; /* 252 40 */
/* --- cacheline 4 boundary (256 bytes) was 36 bytes ago --- */
struct NoiseParams np_biome; /* 292 40 */
/* --- cacheline 5 boundary (320 bytes) was 12 bytes ago --- */
struct NoiseParams np_cave; /* 332 40 */
struct NoiseParams np_humidity; /* 372 40 */
/* --- cacheline 6 boundary (384 bytes) was 28 bytes ago --- */
struct NoiseParams np_trees; /* 412 40 */
/* --- cacheline 7 boundary (448 bytes) was 4 bytes ago --- */
struct NoiseParams np_apple_trees; /* 452 40 */
void MapgenV6Params(class MapgenV6Params *, const class MapgenV6Params &);
void MapgenV6Params(class MapgenV6Params *);
virtual void ~MapgenV6Params(class MapgenV6Params *, int);
virtual void readParams(class MapgenV6Params *, const class Settings *);
virtual void writeParams(const class MapgenV6Params *, class Settings *);
/* vtable has 2 entries: {
[2] = readParams((null)),
[3] = writeParams((null)),
} */
/* size: 496, cachelines: 8, members: 15 */
/* sum members: 452, holes: 1, sum holes: 40 */
/* padding: 4 */
/* last cacheline: 48 bytes */
};
class MapgenV6 : public Mapgen {
public:
/* class Mapgen <ancestor>; */ /* 0 0 */
/* XXX 128 bytes hole, try to pack */
/* --- cacheline 2 boundary (128 bytes) --- */
class EmergeManager * m_emerge; /* 128 8 */
int ystride; /* 136 4 */
u32 spflags; /* 140 4 */
v3s16 node_min; /* 144 6 */
v3s16 node_max; /* 150 6 */
v3s16 full_node_min; /* 156 6 */
v3s16 full_node_max; /* 162 6 */
v3s16 central_area_size; /* 168 6 */
/* XXX 2 bytes hole, try to pack */
int volume_nodes; /* 176 4 */
/* XXX 4 bytes hole, try to pack */
class Noise * noise_terrain_base; /* 184 8 */
/* --- cacheline 3 boundary (192 bytes) --- */
class Noise * noise_terrain_higher; /* 192 8 */
class Noise * noise_steepness; /* 200 8 */
class Noise * noise_height_select; /* 208 8 */
class Noise * noise_mud; /* 216 8 */
class Noise * noise_beach; /* 224 8 */
class Noise * noise_biome; /* 232 8 */
class Noise * noise_humidity; /* 240 8 */
class NoiseParams * np_cave; /* 248 8 */
/* --- cacheline 4 boundary (256 bytes) --- */
class NoiseParams * np_humidity; /* 256 8 */
class NoiseParams * np_trees; /* 264 8 */
class NoiseParams * np_apple_trees; /* 272 8 */
float freq_desert; /* 280 4 */
float freq_beach; /* 284 4 */
content_t c_stone; /* 288 2 */
content_t c_dirt; /* 290 2 */
content_t c_dirt_with_grass; /* 292 2 */
content_t c_sand; /* 294 2 */
content_t c_water_source; /* 296 2 */
content_t c_lava_source; /* 298 2 */
content_t c_gravel; /* 300 2 */
content_t c_desert_stone; /* 302 2 */
content_t c_desert_sand; /* 304 2 */
content_t c_dirt_with_snow; /* 306 2 */
content_t c_snow; /* 308 2 */
content_t c_snowblock; /* 310 2 */
content_t c_ice; /* 312 2 */
content_t c_cobble; /* 314 2 */
content_t c_mossycobble; /* 316 2 */
content_t c_stair_cobble; /* 318 2 */
/* --- cacheline 5 boundary (320 bytes) --- */
content_t c_stair_desert_stone; /* 320 2 */
void MapgenV6(class MapgenV6 *, const class MapgenV6 &);
void MapgenV6(class MapgenV6 *, int, class MapgenV6Params *, class EmergeManager *);
virtual void ~MapgenV6(class MapgenV6 *, int);
virtual enum MapgenType getType(const class MapgenV6 *);
virtual void makeChunk(class MapgenV6 *, class BlockMakeData *);
virtual int getGroundLevelAtPoint(class MapgenV6 *, v2s16);
virtual int getSpawnLevelAtPoint(class MapgenV6 *, v2s16);
float baseTerrainLevel(class MapgenV6 *, float, float, float, float);
virtual float baseTerrainLevelFromNoise(class MapgenV6 *, v2s16);
virtual float baseTerrainLevelFromMap(class MapgenV6 *, v2s16);
virtual float baseTerrainLevelFromMap(class MapgenV6 *, int);
s16 find_stone_level(class MapgenV6 *, v2s16);
bool block_is_underground(class MapgenV6 *, u64, v3s16);
s16 find_ground_level_from_noise(class MapgenV6 *, u64, v2s16, s16);
float getHumidity(class MapgenV6 *, v2s16);
float getTreeAmount(class MapgenV6 *, v2s16);
bool getHaveAppleTree(class MapgenV6 *, v2s16);
float getMudAmount(class MapgenV6 *, v2s16);
virtual float getMudAmount(class MapgenV6 *, int);
bool getHaveBeach(class MapgenV6 *, v2s16);
bool getHaveBeach(class MapgenV6 *, int);
enum BiomeV6Type getBiome(class MapgenV6 *, v2s16);
enum BiomeV6Type getBiome(class MapgenV6 *, int, v2s16);
u32 get_blockseed(class MapgenV6 *, u64, v3s16);
virtual void calculateNoise(class MapgenV6 *);
int generateGround(class MapgenV6 *);
void addMud(class MapgenV6 *);
void flowMud(class MapgenV6 *, s16 &, s16 &);
void growGrass(class MapgenV6 *);
void placeTreesAndJungleGrass(class MapgenV6 *);
virtual void generateCaves(class MapgenV6 *, int);
/* vtable has 10 entries: {
[2] = getType((null)),
[3] = makeChunk((null)),
[4] = getGroundLevelAtPoint((null)),
[5] = getSpawnLevelAtPoint((null)),
[6] = baseTerrainLevelFromNoise((null)),
[7] = baseTerrainLevelFromMap((null)),
[8] = baseTerrainLevelFromMap((null)),
[9] = getMudAmount((null)),
[10] = calculateNoise((null)),
[11] = generateCaves((null)),
} */
/* size: 328, cachelines: 6, members: 41 */
/* sum members: 188, holes: 3, sum holes: 134 */
/* padding: 6 */
/* last cacheline: 8 bytes */
};
struct MapgenV7Params : MapgenParams {
/* struct MapgenParams <ancestor>; */ /* 0 0 */
/* XXX 40 bytes hole, try to pack */
u32 spflags; /* 40 4 */
float cave_width; /* 44 4 */
float float_mount_density; /* 48 4 */
float float_mount_height; /* 52 4 */
s16 floatland_level; /* 56 2 */
s16 shadow_limit; /* 58 2 */
s16 cavern_limit; /* 60 2 */
s16 cavern_taper; /* 62 2 */
/* --- cacheline 1 boundary (64 bytes) --- */
float cavern_threshold; /* 64 4 */
struct NoiseParams np_terrain_base; /* 68 40 */
struct NoiseParams np_terrain_alt; /* 108 40 */
/* --- cacheline 2 boundary (128 bytes) was 20 bytes ago --- */
struct NoiseParams np_terrain_persist; /* 148 40 */
struct NoiseParams np_height_select; /* 188 40 */
/* --- cacheline 3 boundary (192 bytes) was 36 bytes ago --- */
struct NoiseParams np_filler_depth; /* 228 40 */
/* --- cacheline 4 boundary (256 bytes) was 12 bytes ago --- */
struct NoiseParams np_mount_height; /* 268 40 */
struct NoiseParams np_ridge_uwater; /* 308 40 */
/* --- cacheline 5 boundary (320 bytes) was 28 bytes ago --- */
struct NoiseParams np_floatland_base; /* 348 40 */
/* --- cacheline 6 boundary (384 bytes) was 4 bytes ago --- */
struct NoiseParams np_float_base_height; /* 388 40 */
struct NoiseParams np_mountain; /* 428 40 */
/* --- cacheline 7 boundary (448 bytes) was 20 bytes ago --- */
struct NoiseParams np_ridge; /* 468 40 */
struct NoiseParams np_cavern; /* 508 40 */
/* --- cacheline 8 boundary (512 bytes) was 36 bytes ago --- */
struct NoiseParams np_cave1; /* 548 40 */
/* --- cacheline 9 boundary (576 bytes) was 12 bytes ago --- */
struct NoiseParams np_cave2; /* 588 40 */
void MapgenV7Params(class MapgenV7Params *, const class MapgenV7Params &);
void MapgenV7Params(class MapgenV7Params *);
virtual void ~MapgenV7Params(class MapgenV7Params *, int);
virtual void readParams(class MapgenV7Params *, const class Settings *);
virtual void writeParams(const class MapgenV7Params *, class Settings *);
/* vtable has 2 entries: {
[2] = readParams((null)),
[3] = writeParams((null)),
} */
/* size: 632, cachelines: 10, members: 24 */
/* sum members: 588, holes: 1, sum holes: 40 */
/* padding: 4 */
/* last cacheline: 56 bytes */
};
class MapgenV7 : public MapgenBasic {
public:
/* class MapgenBasic <ancestor>; */ /* 0 0 */
/* XXX 356 bytes hole, try to pack */
/* --- cacheline 5 boundary (320 bytes) was 36 bytes ago --- */
float float_mount_density; /* 356 4 */
float float_mount_height; /* 360 4 */
s16 floatland_level; /* 364 2 */
s16 shadow_limit; /* 366 2 */
class Noise * noise_terrain_base; /* 368 8 */
class Noise * noise_terrain_alt; /* 376 8 */
/* --- cacheline 6 boundary (384 bytes) --- */
class Noise * noise_terrain_persist; /* 384 8 */
class Noise * noise_height_select; /* 392 8 */
class Noise * noise_mount_height; /* 400 8 */
class Noise * noise_ridge_uwater; /* 408 8 */
class Noise * noise_floatland_base; /* 416 8 */
class Noise * noise_float_base_height; /* 424 8 */
class Noise * noise_mountain; /* 432 8 */
class Noise * noise_ridge; /* 440 8 */
void MapgenV7(class MapgenV7 *, const class MapgenV7 &);
void MapgenV7(class MapgenV7 *, int, class MapgenV7Params *, class EmergeManager *);
virtual void ~MapgenV7(class MapgenV7 *, int);
virtual enum MapgenType getType(const class MapgenV7 *);
virtual void makeChunk(class MapgenV7 *, class BlockMakeData *);
virtual int getSpawnLevelAtPoint(class MapgenV7 *, v2s16);
float baseTerrainLevelAtPoint(class MapgenV7 *, s16, s16);
float baseTerrainLevelFromMap(class MapgenV7 *, int);
bool getMountainTerrainAtPoint(class MapgenV7 *, s16, s16, s16);
bool getMountainTerrainFromMap(class MapgenV7 *, int, int, s16);
bool getFloatlandMountainFromMap(class MapgenV7 *, int, int, s16);
void floatBaseExtentFromMap(class MapgenV7 *, s16 *, s16 *, int);
int generateTerrain(class MapgenV7 *);
void generateRidgeTerrain(class MapgenV7 *);
/* vtable has 3 entries: {
[2] = getType((null)),
[3] = makeChunk((null)),
[5] = getSpawnLevelAtPoint((null)),
} */
/* size: 448, cachelines: 7, members: 15 */
/* sum members: 92, holes: 1, sum holes: 356 */
};
struct TerrainNoise {
s16 x; /* 0 2 */
s16 z; /* 2 2 */
float terrain_height; /* 4 4 */
float * rivers; /* 8 8 */
float * valley; /* 16 8 */
float valley_profile; /* 24 4 */
/* XXX 4 bytes hole, try to pack */
float * slope; /* 32 8 */
float inter_valley_fill; /* 40 4 */
/* size: 48, cachelines: 1, members: 8 */
/* sum members: 40, holes: 1, sum holes: 4 */
/* padding: 4 */
/* last cacheline: 48 bytes */
};
struct MapgenValleysParams : MapgenParams {
/* struct MapgenParams <ancestor>; */ /* 0 0 */
/* XXX 40 bytes hole, try to pack */
u32 spflags; /* 40 4 */
s16 large_cave_depth; /* 44 2 */
s16 massive_cave_depth; /* 46 2 */
u16 altitude_chill; /* 48 2 */
u16 lava_features; /* 50 2 */
u16 river_depth; /* 52 2 */
u16 river_size; /* 54 2 */
u16 water_features; /* 56 2 */
/* XXX 2 bytes hole, try to pack */
float cave_width; /* 60 4 */
/* --- cacheline 1 boundary (64 bytes) --- */
struct NoiseParams np_cave1; /* 64 40 */
struct NoiseParams np_cave2; /* 104 40 */
/* --- cacheline 2 boundary (128 bytes) was 16 bytes ago --- */
struct NoiseParams np_filler_depth; /* 144 40 */
struct NoiseParams np_inter_valley_fill; /* 184 40 */
/* --- cacheline 3 boundary (192 bytes) was 32 bytes ago --- */
struct NoiseParams np_inter_valley_slope; /* 224 40 */
/* --- cacheline 4 boundary (256 bytes) was 8 bytes ago --- */
struct NoiseParams np_rivers; /* 264 40 */
struct NoiseParams np_massive_caves; /* 304 40 */
/* --- cacheline 5 boundary (320 bytes) was 24 bytes ago --- */
struct NoiseParams np_terrain_height; /* 344 40 */
/* --- cacheline 6 boundary (384 bytes) --- */
struct NoiseParams np_valley_depth; /* 384 40 */
struct NoiseParams np_valley_profile; /* 424 40 */
void MapgenValleysParams(class MapgenValleysParams *, const class MapgenValleysParams &);
void MapgenValleysParams(class MapgenValleysParams *);
virtual void ~MapgenValleysParams(class MapgenValleysParams *, int);
virtual void readParams(class MapgenValleysParams *, const class Settings *);
virtual void writeParams(const class MapgenValleysParams *, class Settings *);
/* vtable has 2 entries: {
[2] = readParams((null)),
[3] = writeParams((null)),
} */
/* size: 464, cachelines: 8, members: 20 */
/* sum members: 422, holes: 2, sum holes: 42 */
/* last cacheline: 16 bytes */
};
class MapgenValleys : public MapgenBasic {
public:
/* class MapgenBasic <ancestor>; */ /* 0 0 */
/* XXX 356 bytes hole, try to pack */
/* --- cacheline 5 boundary (320 bytes) was 36 bytes ago --- */
s16 large_cave_depth; /* 356 2 */
/* XXX 2 bytes hole, try to pack */
class BiomeGenOriginal * m_bgen; /* 360 8 */
bool humid_rivers; /* 368 1 */
bool use_altitude_chill; /* 369 1 */
/* XXX 2 bytes hole, try to pack */
float humidity_adjust; /* 372 4 */
s16 cave_water_max_height; /* 376 2 */
s16 lava_max_height; /* 378 2 */
float altitude_chill; /* 380 4 */
/* --- cacheline 6 boundary (384 bytes) --- */
s16 lava_features_lim; /* 384 2 */
s16 massive_cave_depth; /* 386 2 */
float river_depth_bed; /* 388 4 */
float river_size_factor; /* 392 4 */
/* XXX 4 bytes hole, try to pack */
float * tcave_cache; /* 400 8 */
s16 water_features_lim; /* 408 2 */
/* XXX 6 bytes hole, try to pack */
class Noise * noise_inter_valley_fill; /* 416 8 */
class Noise * noise_inter_valley_slope; /* 424 8 */
class Noise * noise_rivers; /* 432 8 */
class Noise * noise_cave1; /* 440 8 */
/* --- cacheline 7 boundary (448 bytes) --- */
class Noise * noise_cave2; /* 448 8 */
class Noise * noise_massive_caves; /* 456 8 */
class Noise * noise_terrain_height; /* 464 8 */
class Noise * noise_valley_depth; /* 472 8 */
class Noise * noise_valley_profile; /* 480 8 */
void MapgenValleys(class MapgenValleys *, const class MapgenValleys &);
void MapgenValleys(class MapgenValleys *, int, class MapgenValleysParams *, class EmergeManager *);
virtual void ~MapgenValleys(class MapgenValleys *, int);
virtual enum MapgenType getType(const class MapgenValleys *);
virtual void makeChunk(class MapgenValleys *, class BlockMakeData *);
virtual int getSpawnLevelAtPoint(class MapgenValleys *, v2s16);
float terrainLevelAtPoint(class MapgenValleys *, s16, s16);
void calculateNoise(class MapgenValleys *);
virtual int generateTerrain(class MapgenValleys *);
float terrainLevelFromNoise(class MapgenValleys *, class TerrainNoise *);
float adjustedTerrainLevelFromNoise(class MapgenValleys *, class TerrainNoise *);
virtual void generateCaves(class MapgenValleys *, s16, s16);
/* vtable has 5 entries: {
[2] = getType((null)),
[3] = makeChunk((null)),
[5] = getSpawnLevelAtPoint((null)),
[11] = generateTerrain((null)),
[6] = generateCaves((null)),
} */
/* size: 488, cachelines: 8, members: 24 */
/* sum members: 118, holes: 5, sum holes: 370 */
/* last cacheline: 40 bytes */
};
class MapSector {
public:
int ()(void) * * _vptr.MapSector; /* 0 8 */
bool differs_from_disk; /* 8 1 */
/* XXX 7 bytes hole, try to pack */
protected:
class unordered_map<short int, MapBlock*, std::hash<short int>, std::equal_to<short int>, std::allocator<std::pair<short int const, MapBlock*> > > m_blocks; /* 16 56 */
/* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
class Map * m_parent; /* 72 8 */
v2s16 m_pos; /* 80 4 */
/* XXX 4 bytes hole, try to pack */
class IGameDef * m_gamedef; /* 88 8 */
class MapBlock * m_block_cache; /* 96 8 */
s16 m_block_cache_y; /* 104 2 */
public:
void MapSector(class MapSector *, const class MapSector &);
void MapSector(class MapSector *, class Map *, v2s16, class IGameDef *);
virtual void ~MapSector(class MapSector *, int);
virtual u32 getId(const class MapSector *);
void deleteBlocks(class MapSector *);
v2s16 getPos(class MapSector *);
class MapBlock * getBlockNoCreateNoEx(class MapSector *, s16);
class MapBlock * createBlankBlockNoInsert(class MapSector *, s16);
class MapBlock * createBlankBlock(class MapSector *, s16);
void insertBlock(class MapSector *, class MapBlock *);
void deleteBlock(class MapSector *, class MapBlock *);
void getBlocks(class MapSector *, MapBlockVect &);
bool empty(const class MapSector *);
protected:
class MapBlock * getBlockBuffered(class MapSector *, s16);
/* vtable has 1 entries: {
[2] = getId((null)),
} */
/* size: 112, cachelines: 2, members: 8 */
/* sum members: 95, holes: 2, sum holes: 11 */
/* padding: 6 */
/* last cacheline: 48 bytes */
};
class ClientMapSector : public MapSector {
public:
/* class MapSector <ancestor>; */ /* 0 112 */
/* XXX last struct has 6 bytes of padding */
void ClientMapSector(class ClientMapSector *, const class ClientMapSector &);
void ClientMapSector(class ClientMapSector *, class Map *, v2s16, class IGameDef *);
virtual void ~ClientMapSector(class ClientMapSector *, int);
virtual u32 getId(const class ClientMapSector *);
/* vtable has 1 entries: {
[2] = getId((null)),
} */
/* size: 112, cachelines: 2, members: 1 */
/* paddings: 1, sum paddings: 6 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 112 != 0 + 0(holes), diff = 112 */
};
class ServerMapSector : public MapSector {
public:
/* class MapSector <ancestor>; */ /* 0 112 */
/* XXX last struct has 6 bytes of padding */
void ServerMapSector(class ServerMapSector *, const class ServerMapSector &);
void ServerMapSector(class ServerMapSector *, class Map *, v2s16, class IGameDef *);
virtual void ~ServerMapSector(class ServerMapSector *, int);
virtual u32 getId(const class ServerMapSector *);
void serialize(class ServerMapSector *, ostream &, u8);
class ServerMapSector * deSerialize(istream &, class Map *, v2s16, class map<irr::core::vector2d<short int>, MapSector*, std::less<irr::core::vector2d<short int> >, std::allocator<std::pair<cons, class IGameDef *);
/* vtable has 1 entries: {
[2] = getId((null)),
} */
/* size: 112, cachelines: 2, members: 1 */
/* paddings: 1, sum paddings: 6 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 112 != 0 + 0(holes), diff = 112 */
};
struct vcache {
class array<unsigned int, irr::core::irrAllocator<unsigned int> > tris; /* 0 32 */
/* XXX last struct has 4 bytes of padding */
float score; /* 32 4 */
s16 cachepos; /* 36 2 */
u16 NumActiveTris; /* 38 2 */
void ~vcache(class vcache *, int);
void vcache(class vcache *);
/* size: 40, cachelines: 1, members: 4 */
/* paddings: 1, sum paddings: 4 */
/* last cacheline: 40 bytes */
};
struct tcache {
u16 ind[3]; /* 0 6 */
/* XXX 2 bytes hole, try to pack */
float score; /* 8 4 */
bool drawn; /* 12 1 */
/* size: 16, cachelines: 1, members: 3 */
/* sum members: 11, holes: 1, sum holes: 2 */
/* padding: 3 */
/* last cacheline: 16 bytes */
};
class f_lru {
s32 cache[32]; /* 0 128 */
/* --- cacheline 2 boundary (128 bytes) --- */
class vcache * vc; /* 128 8 */
class tcache * tc; /* 136 8 */
public:
void f_lru(class f_lru *, class vcache *, class tcache *);
u32 add(class f_lru *, u16, bool);
/* size: 144, cachelines: 3, members: 3 */
/* last cacheline: 16 bytes */
};
struct CachedMapBlockData {
v3s16 p; /* 0 6 */
/* XXX 2 bytes hole, try to pack */
class MapNode * data; /* 8 8 */
int refcount_from_queue; /* 16 4 */
int last_used_timestamp; /* 20 4 */
void CachedMapBlockData(class CachedMapBlockData *);
void ~CachedMapBlockData(class CachedMapBlockData *, int);
/* size: 24, cachelines: 1, members: 4 */
/* sum members: 22, holes: 1, sum holes: 2 */
/* last cacheline: 24 bytes */
};
struct QueuedMeshUpdate {
v3s16 p; /* 0 6 */
bool ack_block_to_server; /* 6 1 */
bool urgent; /* 7 1 */
int crack_level; /* 8 4 */
v3s16 crack_pos; /* 12 6 */
/* XXX 6 bytes hole, try to pack */
class MeshMakeData * data; /* 24 8 */
void QueuedMeshUpdate(class QueuedMeshUpdate *);
void ~QueuedMeshUpdate(class QueuedMeshUpdate *, int);
/* size: 32, cachelines: 1, members: 6 */
/* sum members: 26, holes: 1, sum holes: 6 */
/* last cacheline: 32 bytes */
};
class MeshUpdateQueue {
enum UpdateMode {
FORCE_UPDATE = 0,
SKIP_UPDATE_IF_ALREADY_CACHED = 1,
};
class Client * m_client; /* 0 8 */
class vector<QueuedMeshUpdate*, std::allocator<QueuedMeshUpdate*> > m_queue; /* 8 24 */
class set<irr::core::vector3d<short int>, std::less<irr::core::vector3d<short int> >, std::allocator<irr::core::vector3d<short int> > > m_urgents; /* 32 48 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
class map<irr::core::vector3d<short int>, CachedMapBlockData*, std::less<irr::core::vector3d<short int> >, std::allocator<std::pair<const irr::core::vector3d<short int>, CachedMapBlockData*> > > m_cache; /* 80 48 */
/* --- cacheline 2 boundary (128 bytes) --- */
Mutex m_mutex; /* 128 40 */
bool m_cache_enable_shaders; /* 168 1 */
bool m_cache_use_tangent_vertices; /* 169 1 */
bool m_cache_smooth_lighting; /* 170 1 */
/* XXX 1 byte hole, try to pack */
int m_meshgen_block_cache_size; /* 172 4 */
public:
void MeshUpdateQueue(class MeshUpdateQueue *, class Client *);
void ~MeshUpdateQueue(class MeshUpdateQueue *, int);
void addBlock(class MeshUpdateQueue *, class Map *, v3s16, bool, bool);
class QueuedMeshUpdate * pop(class MeshUpdateQueue *);
u32 size(class MeshUpdateQueue *);
class CachedMapBlockData * cacheBlock(class MeshUpdateQueue *, class Map *, v3s16, enum UpdateMode, size_t *);
class CachedMapBlockData * getCachedBlock(class MeshUpdateQueue *, const v3s16 &);
void fillDataFromMapBlockCache(class MeshUpdateQueue *, class QueuedMeshUpdate *);
void cleanupCache(class MeshUpdateQueue *);
/* size: 176, cachelines: 3, members: 9 */
/* sum members: 175, holes: 1, sum holes: 1 */
/* last cacheline: 48 bytes */
};
class MeshUpdateThread : public UpdateThread {
public:
/* class UpdateThread <ancestor>; */ /* 0 176 */
/* --- cacheline 2 boundary (128 bytes) was 48 bytes ago --- */
v3s16 m_camera_offset; /* 176 6 */
/* XXX 2 bytes hole, try to pack */
class MutexedQueue<MeshUpdateResult> m_queue_out; /* 184 152 */
/* --- cacheline 5 boundary (320 bytes) was 16 bytes ago --- */
class MeshUpdateQueue m_queue_in; /* 336 176 */
/* --- cacheline 8 boundary (512 bytes) --- */
int m_generation_interval; /* 512 4 */
void MeshUpdateThread(class MeshUpdateThread *, );
void MeshUpdateThread(class MeshUpdateThread *, const class MeshUpdateThread &);
void MeshUpdateThread(class MeshUpdateThread *, class Client *);
void updateBlock(class MeshUpdateThread *, class Map *, v3s16, bool, bool);
protected:
virtual void doUpdate(class MeshUpdateThread *);
public:
virtual void ~MeshUpdateThread(class MeshUpdateThread *, int);
/* vtable has 1 entries: {
[3] = doUpdate((null)),
} */
/* size: 520, cachelines: 9, members: 5 */
/* sum members: 338, holes: 1, sum holes: 2 */
/* padding: 4 */
/* last cacheline: 8 bytes */
/* BRAIN FART ALERT! 520 != 338 + 2(holes), diff = 180 */
};
class Metadata {
public:
int ()(void) * * _vptr.Metadata; /* 0 8 */
protected:
StringMap m_stringvars; /* 8 56 */
public:
virtual void ~Metadata(class Metadata *, int);
virtual void clear(class Metadata *);
virtual bool empty(const class Metadata *);
bool operator==(const class Metadata *, const class Metadata &);
bool operator!=(const class Metadata *, const class Metadata &);
size_t size(const class Metadata *);
bool contains(const class Metadata *, const string &);
const string & getString(const class Metadata *, const string &, u16);
virtual bool setString(class Metadata *, const string &, const string &);
const StringMap & getStrings(const class Metadata *);
const string & resolveString(const class Metadata *, const string &, u16);
/* vtable has 3 entries: {
[2] = clear((null)),
[3] = empty((null)),
[4] = setString((null)),
} */
/* size: 64, cachelines: 1, members: 2 */
};
class BiomeManager : public ObjDefManager {
public:
/* class ObjDefManager <ancestor>; */ /* 0 0 */
/* XXX 48 bytes hole, try to pack */
class Server * m_server; /* 48 8 */
void BiomeManager(class BiomeManager *, const class BiomeManager &);
void BiomeManager(class BiomeManager *, class Server *);
virtual void ~BiomeManager(class BiomeManager *, int);
virtual const char * getObjectTitle(const class BiomeManager *);
class Biome * create(enum BiomeType);
class BiomeGen * createBiomeGen(class BiomeManager *, enum BiomeGenType, class BiomeParams *, v3s16);
class BiomeParams * createBiomeParams(enum BiomeGenType);
virtual void clear(class BiomeManager *);
/* vtable has 2 entries: {
[2] = getObjectTitle((null)),
[3] = clear((null)),
} */
/* size: 56, cachelines: 1, members: 2 */
/* sum members: 8, holes: 1, sum holes: 48 */
/* last cacheline: 56 bytes */
};
class Biome : public ObjDef, public NodeResolver {
public:
/* class ObjDef <ancestor>; */ /* 0 56 */
/* class NodeResolver <ancestor>; */ /* 56 0 */
/* XXX 76 bytes hole, try to pack */
/* --- cacheline 2 boundary (128 bytes) was 4 bytes ago --- */
u32 flags; /* 132 4 */
content_t c_top; /* 136 2 */
content_t c_filler; /* 138 2 */
content_t c_stone; /* 140 2 */
content_t c_water_top; /* 142 2 */
content_t c_water; /* 144 2 */
content_t c_river_water; /* 146 2 */
content_t c_riverbed; /* 148 2 */
content_t c_dust; /* 150 2 */
s16 depth_top; /* 152 2 */
s16 depth_filler; /* 154 2 */
s16 depth_water_top; /* 156 2 */
s16 depth_riverbed; /* 158 2 */
s16 y_min; /* 160 2 */
s16 y_max; /* 162 2 */
float heat_point; /* 164 4 */
float humidity_point; /* 168 4 */
void Biome(class Biome *, );
void Biome(class Biome *, const class Biome &);
void Biome(class Biome *);
virtual void resolveNodeNames(class Biome *);
virtual void ~Biome(class Biome *, int);
/* vtable has 1 entries: {
[2] = resolveNodeNames((null)),
} */
/* size: 176, cachelines: 3, members: 19 */
/* sum members: 40, holes: 1, sum holes: 76 */
/* padding: 4 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 176 != 40 + 76(holes), diff = 60 */
};
class BiomeGenOriginal : public BiomeGen {
public:
/* class BiomeGen <ancestor>; */ /* 0 40 */
/* XXX last struct has 4 bytes of padding */
float * heatmap; /* 40 8 */
float * humidmap; /* 48 8 */
class BiomeParamsOriginal * m_params; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
class Noise * noise_heat; /* 64 8 */
class Noise * noise_humidity; /* 72 8 */
class Noise * noise_heat_blend; /* 80 8 */
class Noise * noise_humidity_blend; /* 88 8 */
void BiomeGenOriginal(class BiomeGenOriginal *, const class BiomeGenOriginal &);
void BiomeGenOriginal(class BiomeGenOriginal *, class BiomeManager *, class BiomeParamsOriginal *, v3s16);
virtual void ~BiomeGenOriginal(class BiomeGenOriginal *, int);
virtual enum BiomeGenType getType(const class BiomeGenOriginal *);
virtual class Biome * calcBiomeAtPoint(const class BiomeGenOriginal *, v3s16);
virtual void calcBiomeNoise(class BiomeGenOriginal *, v3s16);
virtual biome_t * getBiomes(class BiomeGenOriginal *, s16 *);
virtual class Biome * getBiomeAtPoint(const class BiomeGenOriginal *, v3s16);
virtual class Biome * getBiomeAtIndex(const class BiomeGenOriginal *, size_t, s16);
class Biome * calcBiomeFromNoise(const class BiomeGenOriginal *, float, float, s16);
/* vtable has 6 entries: {
[2] = getType((null)),
[3] = calcBiomeAtPoint((null)),
[4] = calcBiomeNoise((null)),
[5] = getBiomes((null)),
[6] = getBiomeAtPoint((null)),
[7] = getBiomeAtIndex((null)),
} */
/* size: 96, cachelines: 2, members: 8 */
/* paddings: 1, sum paddings: 4 */
/* last cacheline: 32 bytes */
/* BRAIN FART ALERT! 96 != 56 + 0(holes), diff = 40 */
};
struct BiomeParamsOriginal : BiomeParams {
/* struct BiomeParams <ancestor>; */ /* 0 16 */
/* XXX last struct has 4 bytes of padding */
struct NoiseParams np_heat; /* 12 40 */
struct NoiseParams np_humidity; /* 52 40 */
/* --- cacheline 1 boundary (64 bytes) was 28 bytes ago --- */
struct NoiseParams np_heat_blend; /* 92 40 */
/* --- cacheline 2 boundary (128 bytes) was 4 bytes ago --- */
struct NoiseParams np_humidity_blend; /* 132 40 */
void BiomeParamsOriginal(class BiomeParamsOriginal *, );
void BiomeParamsOriginal(class BiomeParamsOriginal *, const class BiomeParamsOriginal &);
void BiomeParamsOriginal(class BiomeParamsOriginal *);
virtual void readParams(class BiomeParamsOriginal *, const class Settings *);
virtual void writeParams(const class BiomeParamsOriginal *, class Settings *);
virtual void ~BiomeParamsOriginal(class BiomeParamsOriginal *, int);
/* vtable has 2 entries: {
[0] = readParams((null)),
[1] = writeParams((null)),
} */
/* size: 176, cachelines: 3, members: 5 */
/* padding: 4 */
/* paddings: 1, sum paddings: 4 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 176 != 160 + 0(holes), diff = 16 */
};
class DecoSchematic : public Decoration {
public:
/* class Decoration <ancestor>; */ /* 0 312 */
/* --- cacheline 4 boundary (256 bytes) was 56 bytes ago --- */
enum Rotation rotation; /* 312 4 */
/* XXX 4 bytes hole, try to pack */
/* --- cacheline 5 boundary (320 bytes) --- */
class Schematic * schematic; /* 320 8 */
void DecoSchematic(class DecoSchematic *, );
void DecoSchematic(class DecoSchematic *, const class DecoSchematic &);
void DecoSchematic(class DecoSchematic *);
virtual size_t generate(class DecoSchematic *, class MMVManip *, class PcgRandom *, v3s16);
virtual int getHeight(class DecoSchematic *);
virtual void ~DecoSchematic(class DecoSchematic *, int);
/* vtable has 2 entries: {
[3] = generate((null)),
[4] = getHeight((null)),
} */
/* size: 328, cachelines: 6, members: 3 */
/* sum members: 12, holes: 1, sum holes: 4 */
/* last cacheline: 8 bytes */
/* BRAIN FART ALERT! 328 != 12 + 4(holes), diff = 312 */
};
class Decoration : public ObjDef, public NodeResolver {
public:
/* class ObjDef <ancestor>; */ /* 0 56 */
/* class NodeResolver <ancestor>; */ /* 56 0 */
/* XXX 76 bytes hole, try to pack */
/* --- cacheline 2 boundary (128 bytes) was 4 bytes ago --- */
u32 flags; /* 132 4 */
int mapseed; /* 136 4 */
/* XXX 4 bytes hole, try to pack */
class vector<short unsigned int, std::allocator<short unsigned int> > c_place_on; /* 144 24 */
s16 sidelen; /* 168 2 */
s16 y_min; /* 170 2 */
s16 y_max; /* 172 2 */
/* XXX 2 bytes hole, try to pack */
float fill_ratio; /* 176 4 */
struct NoiseParams np; /* 180 40 */
/* XXX 4 bytes hole, try to pack */
/* --- cacheline 3 boundary (192 bytes) was 32 bytes ago --- */
class vector<short unsigned int, std::allocator<short unsigned int> > c_spawnby; /* 224 24 */
s16 nspawnby; /* 248 2 */
/* XXX 6 bytes hole, try to pack */
/* --- cacheline 4 boundary (256 bytes) --- */
class unordered_set<unsigned char, std::hash<unsigned char>, std::equal_to<unsigned char>, std::allocator<unsigned char> > biomes; /* 256 56 */
void Decoration(class Decoration *, const class Decoration &);
void Decoration(class Decoration *);
virtual void ~Decoration(class Decoration *, int);
virtual void resolveNodeNames(class Decoration *);
bool canPlaceDecoration(class Decoration *, class MMVManip *, v3s16);
size_t placeDeco(class Decoration *, class Mapgen *, u32, v3s16, v3s16);
virtual size_t generate(class Decoration *, class MMVManip *, class PcgRandom *, v3s16);
virtual int getHeight(class Decoration *);
/* vtable has 3 entries: {
[2] = resolveNodeNames((null)),
[3] = generate((null)),
[4] = getHeight((null)),
} */
/* size: 312, cachelines: 5, members: 13 */
/* sum members: 164, holes: 5, sum holes: 92 */
/* last cacheline: 56 bytes */
/* BRAIN FART ALERT! 312 != 164 + 92(holes), diff = 56 */
};
class DecoSimple : public Decoration {
public:
/* class Decoration <ancestor>; */ /* 0 312 */
/* --- cacheline 4 boundary (256 bytes) was 56 bytes ago --- */
class vector<short unsigned int, std::allocator<short unsigned int> > c_decos; /* 312 24 */
/* --- cacheline 5 boundary (320 bytes) was 16 bytes ago --- */
s16 deco_height; /* 336 2 */
s16 deco_height_max; /* 338 2 */
u8 deco_param2; /* 340 1 */
void DecoSimple(class DecoSimple *, );
void DecoSimple(class DecoSimple *, const class DecoSimple &);
void DecoSimple(class DecoSimple *);
virtual void resolveNodeNames(class DecoSimple *);
virtual size_t generate(class DecoSimple *, class MMVManip *, class PcgRandom *, v3s16);
virtual int getHeight(class DecoSimple *);
virtual void ~DecoSimple(class DecoSimple *, int);
/* vtable has 3 entries: {
[2] = resolveNodeNames((null)),
[3] = generate((null)),
[4] = getHeight((null)),
} */
/* size: 344, cachelines: 6, members: 5 */
/* padding: 3 */
/* last cacheline: 24 bytes */
/* BRAIN FART ALERT! 344 != 29 + 0(holes), diff = 315 */
};
class OreVein : public Ore {
public:
/* class Ore <ancestor>; */ /* 0 288 */
static boolconst NEEDS_NOISE = 1; /* 0 0 */
/* --- cacheline 4 boundary (256 bytes) was 32 bytes ago --- */
float random_factor; /* 288 4 */
/* XXX 4 bytes hole, try to pack */
class Noise * noise2; /* 296 8 */
void OreVein(class OreVein *, const class OreVein &);
void OreVein(class OreVein *);
virtual void ~OreVein(class OreVein *, int);
virtual void generate(class OreVein *, class MMVManip *, int, u32, v3s16, v3s16, u8 *);
/* vtable has 1 entries: {
[3] = generate((null)),
} */
/* size: 304, cachelines: 5, members: 3, static members: 1 */
/* sum members: 12, holes: 1, sum holes: 4 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 304 != 12 + 4(holes), diff = 288 */
};
class Ore : public ObjDef, public NodeResolver {
public:
/* class ObjDef <ancestor>; */ /* 0 56 */
/* class NodeResolver <ancestor>; */ /* 56 0 */
/* XXX 74 bytes hole, try to pack */
static boolconst NEEDS_NOISE /* 0 0 */
/* --- cacheline 2 boundary (128 bytes) was 2 bytes ago --- */
content_t c_ore; /* 130 2 */
/* XXX 4 bytes hole, try to pack */
class vector<short unsigned int, std::allocator<short unsigned int> > c_wherein; /* 136 24 */
u32 clust_scarcity; /* 160 4 */
s16 clust_num_ores; /* 164 2 */
s16 clust_size; /* 166 2 */
s16 y_min; /* 168 2 */
s16 y_max; /* 170 2 */
u8 ore_param2; /* 172 1 */
/* XXX 3 bytes hole, try to pack */
u32 flags; /* 176 4 */
float nthresh; /* 180 4 */
struct NoiseParams np; /* 184 40 */
/* --- cacheline 3 boundary (192 bytes) was 32 bytes ago --- */
class Noise * noise; /* 224 8 */
class unordered_set<unsigned char, std::hash<unsigned char>, std::equal_to<unsigned char>, std::allocator<unsigned char> > biomes; /* 232 56 */
void Ore(class Ore *, const class Ore &);
void Ore(class Ore *);
virtual void ~Ore(class Ore *, int);
virtual void resolveNodeNames(class Ore *);
size_t placeOre(class Ore *, class Mapgen *, u32, v3s16, v3s16);
virtual void generate(class Ore *, class MMVManip *, int, u32, v3s16, v3s16, u8 *);
/* vtable has 2 entries: {
[2] = resolveNodeNames((null)),
[3] = generate((null)),
} */
/* size: 288, cachelines: 5, members: 15, static members: 1 */
/* sum members: 151, holes: 3, sum holes: 81 */
/* last cacheline: 32 bytes */
/* BRAIN FART ALERT! 288 != 151 + 81(holes), diff = 56 */
};
class OreBlob : public Ore {
public:
/* class Ore <ancestor>; */ /* 0 288 */
static boolconst NEEDS_NOISE = 1; /* 0 0 */
void OreBlob(class OreBlob *, );
void OreBlob(class OreBlob *, const class OreBlob &);
void OreBlob(class OreBlob *);
virtual void generate(class OreBlob *, class MMVManip *, int, u32, v3s16, v3s16, u8 *);
virtual void ~OreBlob(class OreBlob *, int);
/* vtable has 1 entries: {
[3] = generate((null)),
} */
/* size: 288, cachelines: 5, members: 1, static members: 1 */
/* last cacheline: 32 bytes */
/* BRAIN FART ALERT! 288 != 0 + 0(holes), diff = 288 */
};
class OrePuff : public Ore {
public:
/* class Ore <ancestor>; */ /* 0 288 */
static boolconst NEEDS_NOISE = 1; /* 0 0 */
/* --- cacheline 4 boundary (256 bytes) was 32 bytes ago --- */
struct NoiseParams np_puff_top; /* 288 40 */
/* --- cacheline 5 boundary (320 bytes) was 8 bytes ago --- */
struct NoiseParams np_puff_bottom; /* 328 40 */
class Noise * noise_puff_top; /* 368 8 */
class Noise * noise_puff_bottom; /* 376 8 */
void OrePuff(class OrePuff *, const class OrePuff &);
void OrePuff(class OrePuff *);
virtual void ~OrePuff(class OrePuff *, int);
virtual void generate(class OrePuff *, class MMVManip *, int, u32, v3s16, v3s16, u8 *);
/* vtable has 1 entries: {
[3] = generate((null)),
} */
/* size: 384, cachelines: 6, members: 5, static members: 1 */
/* BRAIN FART ALERT! 384 != 96 + 0(holes), diff = 288 */
};
class OreSheet : public Ore {
public:
/* class Ore <ancestor>; */ /* 0 288 */
static boolconst NEEDS_NOISE = 1; /* 0 0 */
/* --- cacheline 4 boundary (256 bytes) was 32 bytes ago --- */
u16 column_height_min; /* 288 2 */
u16 column_height_max; /* 290 2 */
float column_midpoint_factor; /* 292 4 */
void OreSheet(class OreSheet *, );
void OreSheet(class OreSheet *, const class OreSheet &);
void OreSheet(class OreSheet *);
virtual void generate(class OreSheet *, class MMVManip *, int, u32, v3s16, v3s16, u8 *);
virtual void ~OreSheet(class OreSheet *, int);
/* vtable has 1 entries: {
[3] = generate((null)),
} */
/* size: 296, cachelines: 5, members: 4, static members: 1 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 296 != 8 + 0(holes), diff = 288 */
};
class OreScatter : public Ore {
public:
/* class Ore <ancestor>; */ /* 0 288 */
static boolconst NEEDS_NOISE /* 0 0 */
void OreScatter(class OreScatter *, );
void OreScatter(class OreScatter *, const class OreScatter &);
void OreScatter(class OreScatter *);
virtual void generate(class OreScatter *, class MMVManip *, int, u32, v3s16, v3s16, u8 *);
virtual void ~OreScatter(class OreScatter *, int);
/* vtable has 1 entries: {
[3] = generate((null)),
} */
/* size: 288, cachelines: 5, members: 1, static members: 1 */
/* last cacheline: 32 bytes */
/* BRAIN FART ALERT! 288 != 0 + 0(holes), diff = 288 */
};
class OreManager : public ObjDefManager {
public:
/* class ObjDefManager <ancestor>; */ /* 0 0 */
void OreManager(class OreManager *, const class OreManager &);
void OreManager(class OreManager *, class IGameDef *);
virtual void ~OreManager(class OreManager *, int);
virtual const char * getObjectTitle(const class OreManager *);
class Ore * create(enum OreType);
virtual void clear(class OreManager *);
size_t placeAllOres(class OreManager *, class Mapgen *, u32, v3s16, v3s16);
/* vtable has 2 entries: {
[2] = getObjectTitle((null)),
[3] = clear((null)),
} */
/* size: 48, cachelines: 1, members: 1 */
/* padding: 48 */
/* last cacheline: 48 bytes */
};
class SchematicManager : public ObjDefManager {
public:
/* class ObjDefManager <ancestor>; */ /* 0 0 */
/* XXX 48 bytes hole, try to pack */
class Server * m_server; /* 48 8 */
void SchematicManager(class SchematicManager *, const class SchematicManager &);
void SchematicManager(class SchematicManager *, class Server *);
virtual void ~SchematicManager(class SchematicManager *, int);
virtual void clear(class SchematicManager *);
virtual const char * getObjectTitle(const class SchematicManager *);
class Schematic * create(enum SchematicType);
/* vtable has 2 entries: {
[3] = clear((null)),
[2] = getObjectTitle((null)),
} */
/* size: 56, cachelines: 1, members: 2 */
/* sum members: 8, holes: 1, sum holes: 48 */
/* last cacheline: 56 bytes */
};
class Schematic : public ObjDef, public NodeResolver {
public:
/* class ObjDef <ancestor>; */ /* 0 56 */
/* class NodeResolver <ancestor>; */ /* 56 0 */
/* XXX 80 bytes hole, try to pack */
/* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */
class vector<short unsigned int, std::allocator<short unsigned int> > c_nodes; /* 136 24 */
u32 flags; /* 160 4 */
v3s16 size; /* 164 6 */
/* XXX 6 bytes hole, try to pack */
class MapNode * schemdata; /* 176 8 */
u8 * slice_probs; /* 184 8 */
void Schematic(class Schematic *, const class Schematic &);
void Schematic(class Schematic *);
virtual void ~Schematic(class Schematic *, int);
virtual void resolveNodeNames(class Schematic *);
bool loadSchematicFromFile(class Schematic *, const string &, class INodeDefManager *, StringMap *);
bool saveSchematicToFile(class Schematic *, const string &, class INodeDefManager *);
bool getSchematicFromMap(class Schematic *, class Map *, v3s16, v3s16);
bool deserializeFromMts(class Schematic *, istream *, class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basi);
bool serializeToMts(class Schematic *, ostream *, const class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11);
bool serializeToLua(class Schematic *, ostream *, const class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11, bool, u32);
void blitToVManip(class Schematic *, class MMVManip *, v3s16, enum Rotation, bool);
bool placeOnVManip(class Schematic *, class MMVManip *, v3s16, u32, enum Rotation, bool);
void placeOnMap(class Schematic *, class ServerMap *, v3s16, u32, enum Rotation, bool);
void applyProbabilities(class Schematic *, v3s16, class vector<std::pair<irr::core::vector3d<short int>, unsigned char>, std::allocator<std::pair<irr::core::vector3d<short int>,, class vector<std::pair<short int, unsigned char>, std::allocator<std::pair<short int, unsigned char> > > *);
/* vtable has 1 entries: {
[2] = resolveNodeNames((null)),
} */
/* size: 192, cachelines: 3, members: 7 */
/* sum members: 50, holes: 2, sum holes: 86 */
/* BRAIN FART ALERT! 192 != 50 + 86(holes), diff = 56 */
};
struct MinimapModeDef {
bool is_radar; /* 0 1 */
/* XXX 1 byte hole, try to pack */
u16 scan_height; /* 2 2 */
u16 map_size; /* 4 2 */
/* size: 6, cachelines: 1, members: 3 */
/* sum members: 5, holes: 1, sum holes: 1 */
/* last cacheline: 6 bytes */
};
struct QueuedMinimapUpdate {
v3s16 pos; /* 0 6 */
/* XXX 2 bytes hole, try to pack */
class MinimapMapblock * data; /* 8 8 */
void QueuedMinimapUpdate(class QueuedMinimapUpdate *, const class QueuedMinimapUpdate &);
class QueuedMinimapUpdate & operator=(class QueuedMinimapUpdate *, const class QueuedMinimapUpdate &);
void QueuedMinimapUpdate(class QueuedMinimapUpdate *);
/* size: 16, cachelines: 1, members: 2 */
/* sum members: 14, holes: 1, sum holes: 2 */
/* last cacheline: 16 bytes */
};
class MinimapUpdateThread : public UpdateThread {
public:
/* class UpdateThread <ancestor>; */ /* 0 176 */
/* --- cacheline 2 boundary (128 bytes) was 48 bytes ago --- */
class MinimapData * data; /* 176 8 */
Mutex m_queue_mutex; /* 184 40 */
/* --- cacheline 3 boundary (192 bytes) was 32 bytes ago --- */
class deque<QueuedMinimapUpdate, std::allocator<QueuedMinimapUpdate> > m_update_queue; /* 224 80 */
/* --- cacheline 4 boundary (256 bytes) was 48 bytes ago --- */
class map<irr::core::vector3d<short int>, MinimapMapblock*, std::less<irr::core::vector3d<short int> >, std::allocator<std::pair<const irr::core::vector3d<short int>, MinimapMapblock*> > > m_blocks_cache; /* 304 48 */
void MinimapUpdateThread(class MinimapUpdateThread *, const class MinimapUpdateThread &);
void MinimapUpdateThread(class MinimapUpdateThread *);
virtual void ~MinimapUpdateThread(class MinimapUpdateThread *, int);
void getMap(class MinimapUpdateThread *, v3s16, s16, s16);
void enqueueBlock(class MinimapUpdateThread *, v3s16, class MinimapMapblock *);
bool pushBlockUpdate(class MinimapUpdateThread *, v3s16, class MinimapMapblock *);
bool popBlockUpdate(class MinimapUpdateThread *, class QueuedMinimapUpdate *);
protected:
virtual void doUpdate(class MinimapUpdateThread *);
/* vtable has 1 entries: {
[3] = doUpdate((null)),
} */
/* size: 352, cachelines: 6, members: 5 */
/* last cacheline: 32 bytes */
/* BRAIN FART ALERT! 352 != 176 + 0(holes), diff = 176 */
};
class ServerModConfiguration : public ModConfiguration {
public:
/* class ModConfiguration <ancestor>; */ /* 0 104 */
void ServerModConfiguration(class ServerModConfiguration *, const string &);
/* size: 104, cachelines: 2, members: 1 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 104 != 0 + 0(holes), diff = 104 */
};
class ModMetadata : public Metadata {
public:
/* class Metadata <ancestor>; */ /* 0 0 */
/* XXX 64 bytes hole, try to pack */
/* --- cacheline 1 boundary (64 bytes) --- */
string m_mod_name; /* 64 32 */
bool m_modified; /* 96 1 */
void ModMetadata(class ModMetadata *, const class ModMetadata &);
void ModMetadata(class ModMetadata *, const string &);
virtual void ~ModMetadata(class ModMetadata *, int);
virtual void clear(class ModMetadata *);
bool save(class ModMetadata *, const string &);
bool load(class ModMetadata *, const string &);
bool isModified(const class ModMetadata *);
const string & getModName(const class ModMetadata *);
virtual bool setString(class ModMetadata *, const string &, const string &);
/* vtable has 2 entries: {
[2] = clear((null)),
[4] = setString((null)),
} */
/* size: 104, cachelines: 2, members: 3 */
/* sum members: 33, holes: 1, sum holes: 64 */
/* padding: 7 */
/* last cacheline: 40 bytes */
};
class NodeResolver {
public:
int ()(void) * * _vptr.NodeResolver; /* 0 8 */
u32 m_nodenames_idx; /* 8 4 */
u32 m_nnlistsizes_idx; /* 12 4 */
class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > m_nodenames; /* 16 24 */
class vector<long unsigned int, std::allocator<long unsigned int> > m_nnlistsizes; /* 40 24 */
/* --- cacheline 1 boundary (64 bytes) --- */
class INodeDefManager * m_ndef; /* 64 8 */
bool m_resolve_done; /* 72 1 */
void NodeResolver(class NodeResolver *, const class NodeResolver &);
void NodeResolver(class NodeResolver *);
virtual void ~NodeResolver(class NodeResolver *, int);
virtual void resolveNodeNames(class NodeResolver *);
bool getIdFromNrBacklog(class NodeResolver *, content_t *, const string &, content_t);
bool getIdsFromNrBacklog(class NodeResolver *, class vector<short unsigned int, std::allocator<short unsigned int> > *, bool, content_t);
void nodeResolveInternal(class NodeResolver *);
/* vtable has 1 entries: {
[2] = resolveNodeNames((null)),
} */
/* size: 80, cachelines: 2, members: 7 */
/* padding: 7 */
/* last cacheline: 16 bytes */
};
class CNodeDefManager : public IWritableNodeDefManager {
public:
/* class IWritableNodeDefManager <ancestor>; */ /* 0 8 */
class vector<ContentFeatures, std::allocator<ContentFeatures> > m_content_features; /* 8 24 */
class NameIdMapping m_name_id_mapping; /* 32 112 */
/* --- cacheline 2 boundary (128 bytes) was 16 bytes ago --- */
class unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, short unsigned int, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, short unsigned int> > > m_name_id_mapping_with_aliases; /* 144 56 */
/* --- cacheline 3 boundary (192 bytes) was 8 bytes ago --- */
class unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::list<std::pair<short unsigned int, int>, std::allocator<std::pair<short unsigned int, int> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::list<std::pair<short unsigned int, int>, std::allocator<std::pair<short unsigned int, int> > > > > > m_group_to_items; /* 200 56 */
/* --- cacheline 4 boundary (256 bytes) --- */
content_t m_next_id; /* 256 2 */
/* XXX 6 bytes hole, try to pack */
class vector<NodeResolver*, std::allocator<NodeResolver*> > m_pending_resolve_callbacks; /* 264 24 */
bool m_node_registration_complete; /* 288 1 */
/* XXX 3 bytes hole, try to pack */
aabb3f m_selection_box_union; /* 292 24 */
class aabbox3d<short int> m_selection_box_int_union; /* 316 12 */
class CNodeDefManager & operator=(class CNodeDefManager *, const class CNodeDefManager &);
void CNodeDefManager(class CNodeDefManager *, const class CNodeDefManager &);
void CNodeDefManager(class CNodeDefManager *);
virtual void ~CNodeDefManager(class CNodeDefManager *, int);
void clear(class CNodeDefManager *);
virtual class IWritableNodeDefManager * clone(class CNodeDefManager *);
virtual const class ContentFeatures & get(const class CNodeDefManager *, content_t);
virtual const class ContentFeatures & get(const class CNodeDefManager *, const class MapNode &);
virtual bool getId(const class CNodeDefManager *, const string &, content_t &);
virtual content_t getId(const class CNodeDefManager *, const string &);
virtual bool getIds(const class CNodeDefManager *, const string &, class set<short unsigned int, std::less<short unsigned int>, std::allocator<short unsigned int> > &);
virtual const class ContentFeatures & get(const class CNodeDefManager *, const string &);
content_t allocateId(class CNodeDefManager *);
virtual content_t set(class CNodeDefManager *, const string &, const class ContentFeatures &);
virtual content_t allocateDummy(class CNodeDefManager *, const string &);
virtual void removeNode(class CNodeDefManager *, const string &);
virtual void updateAliases(class CNodeDefManager *, class IItemDefManager *);
virtual void applyTextureOverrides(class CNodeDefManager *, const string &);
virtual void updateTextures(class CNodeDefManager *, class IGameDef *, void (*)(void *, u32, u32), void *);
virtual void serialize(const class CNodeDefManager *, ostream &, u16);
virtual void deSerialize(class CNodeDefManager *, istream &);
virtual bool getNodeRegistrationStatus(const class CNodeDefManager *);
virtual void setNodeRegistrationStatus(class CNodeDefManager *, bool);
virtual void pendNodeResolve(class CNodeDefManager *, class NodeResolver *);
virtual bool cancelNodeResolveCallback(class CNodeDefManager *, class NodeResolver *);
virtual void runNodeResolveCallbacks(class CNodeDefManager *);
virtual void resetNodeResolveState(class CNodeDefManager *);
virtual void mapNodeboxConnections(class CNodeDefManager *);
virtual bool nodeboxConnects(class CNodeDefManager *, class MapNode, class MapNode, u8);
virtual class aabbox3d<short int> getSelectionBoxIntUnion(const class CNodeDefManager *);
void addNameIdMapping(class CNodeDefManager *, content_t, string);
void fixSelectionBoxIntUnion(class CNodeDefManager *);
/* vtable has 24 entries: {
[14] = clone((null)),
[2] = get((null)),
[3] = get((null)),
[4] = getId((null)),
[5] = getId((null)),
[6] = getIds((null)),
[7] = get((null)),
[15] = set((null)),
[16] = allocateDummy((null)),
[17] = removeNode((null)),
[18] = updateAliases((null)),
[19] = applyTextureOverrides((null)),
[20] = updateTextures((null)),
[8] = serialize((null)),
[21] = deSerialize((null)),
[9] = getNodeRegistrationStatus((null)),
[22] = setNodeRegistrationStatus((null)),
[10] = pendNodeResolve((null)),
[11] = cancelNodeResolveCallback((null)),
[23] = runNodeResolveCallbacks((null)),
[24] = resetNodeResolveState((null)),
[25] = mapNodeboxConnections((null)),
[12] = nodeboxConnects((null)),
[13] = getSelectionBoxIntUnion((null)),
} */
/* size: 328, cachelines: 6, members: 10 */
/* sum members: 311, holes: 2, sum holes: 9 */
/* last cacheline: 8 bytes */
/* BRAIN FART ALERT! 328 != 311 + 9(holes), diff = 8 */
};
class NodeMetadata : public Metadata {
public:
/* class Metadata <ancestor>; */ /* 0 0 */
/* XXX 64 bytes hole, try to pack */
/* --- cacheline 1 boundary (64 bytes) --- */
class Inventory * m_inventory; /* 64 8 */
void NodeMetadata(class NodeMetadata *, const class NodeMetadata &);
void NodeMetadata(class NodeMetadata *, class IItemDefManager *);
virtual void ~NodeMetadata(class NodeMetadata *, int);
void serialize(const class NodeMetadata *, ostream &);
void deSerialize(class NodeMetadata *, istream &);
virtual void clear(class NodeMetadata *);
virtual bool empty(const class NodeMetadata *);
class Inventory * getInventory(class NodeMetadata *);
/* vtable has 2 entries: {
[2] = clear((null)),
[3] = empty((null)),
} */
/* size: 72, cachelines: 2, members: 2 */
/* sum members: 8, holes: 1, sum holes: 64 */
/* last cacheline: 8 bytes */
};
class ObjDefManager {
public:
int ()(void) * * _vptr.ObjDefManager; /* 0 8 */
protected:
class INodeDefManager * m_ndef; /* 8 8 */
class vector<ObjDef*, std::allocator<ObjDef*> > m_objects; /* 16 24 */
enum ObjDefType m_objtype; /* 40 4 */
public:
void ObjDefManager(class ObjDefManager *, class IGameDef *, enum ObjDefType);
virtual void ~ObjDefManager(class ObjDefManager *, int);
virtual const char * getObjectTitle(const class ObjDefManager *);
virtual void clear(class ObjDefManager *);
virtual class ObjDef * getByName(const class ObjDefManager *, const string &);
virtual ObjDefHandle add(class ObjDefManager *, class ObjDef *);
virtual class ObjDef * get(const class ObjDefManager *, ObjDefHandle);
virtual class ObjDef * set(class ObjDefManager *, ObjDefHandle, class ObjDef *);
virtual u32 addRaw(class ObjDefManager *, class ObjDef *);
virtual class ObjDef * getRaw(const class ObjDefManager *, u32);
virtual class ObjDef * setRaw(class ObjDefManager *, u32, class ObjDef *);
size_t getNumObjects(const class ObjDefManager *);
enum ObjDefType getType(const class ObjDefManager *);
class INodeDefManager * getNodeDef(const class ObjDefManager *);
u32 validateHandle(const class ObjDefManager *, ObjDefHandle);
ObjDefHandle createHandle(u32, enum ObjDefType, u32);
bool decodeHandle(ObjDefHandle, u32 *, enum ObjDefType *, u32 *);
void ObjDefManager(class ObjDefManager *, const class ObjDefManager &);
class ObjDefManager & operator=(class ObjDefManager *, const class ObjDefManager &);
/* vtable has 9 entries: {
[2] = getObjectTitle((null)),
[3] = clear((null)),
[4] = getByName((null)),
[5] = add((null)),
[6] = get((null)),
[7] = set((null)),
[8] = addRaw((null)),
[9] = getRaw((null)),
[10] = setRaw((null)),
} */
/* size: 48, cachelines: 1, members: 4 */
/* padding: 4 */
/* last cacheline: 48 bytes */
};
class Particle : public ISceneNode {
public:
/* class ISceneNode <ancestor>; */ /* 0 264 */
/* XXX last struct has 26 bytes of padding */
/* --- cacheline 3 boundary (192 bytes) was 48 bytes ago --- */
struct S3DVertex m_vertices[4]; /* 240 144 */
/* --- cacheline 6 boundary (384 bytes) --- */
float m_time; /* 384 4 */
float m_expiration; /* 388 4 */
class ClientEnvironment * m_env; /* 392 8 */
class IGameDef * m_gamedef; /* 400 8 */
aabb3f m_box; /* 408 24 */
aabb3f m_collisionbox; /* 432 24 */
/* --- cacheline 7 boundary (448 bytes) was 8 bytes ago --- */
class SMaterial m_material; /* 456 176 */
/* XXX last struct has 6 bytes of padding */
/* --- cacheline 9 boundary (576 bytes) was 56 bytes ago --- */
v2f m_texpos; /* 632 8 */
/* --- cacheline 10 boundary (640 bytes) --- */
v2f m_texsize; /* 640 8 */
v3f m_pos; /* 648 12 */
v3f m_velocity; /* 660 12 */
v3f m_acceleration; /* 672 12 */
/* XXX 4 bytes hole, try to pack */
class LocalPlayer * m_player; /* 688 8 */
float m_size; /* 696 4 */
class SColor m_base_color; /* 700 4 */
/* --- cacheline 11 boundary (704 bytes) --- */
class SColor m_color; /* 704 4 */
bool m_collisiondetection; /* 708 1 */
bool m_collision_removal; /* 709 1 */
bool m_vertical; /* 710 1 */
/* XXX 1 byte hole, try to pack */
v3s16 m_camera_offset; /* 712 6 */
/* XXX 2 bytes hole, try to pack */
struct TileAnimationParams m_animation; /* 720 16 */
float m_animation_time; /* 736 4 */
int m_animation_frame; /* 740 4 */
u8 m_glow; /* 744 1 */
void Particle(class Particle *, int, const void * *, const class Particle &);
void Particle(class Particle *, int, const void * *, class IGameDef *, class ISceneManager *, class LocalPlayer *, class ClientEnvironment *, v3f, v3f, v3f, float, float, bool, bool, bool, class ITexture *, v2f, v2f, const class TileAnimationParams &, u8, class SColor);
virtual void ~Particle(class Particle *, int, const void * *);
virtual const aabb3f & getBoundingBox(const class Particle *);
virtual u32 getMaterialCount(const class Particle *);
virtual class SMaterial & getMaterial(class Particle *, u32);
virtual void OnRegisterSceneNode(class Particle *);
virtual void render(class Particle *);
void step(class Particle *, float);
bool get_expired(class Particle *);
void updateLight(class Particle *);
void updateVertices(class Particle *);
/* vtable has 5 entries: {
[10] = getBoundingBox((null)),
[27] = getMaterialCount((null)),
[26] = getMaterial((null)),
[4] = OnRegisterSceneNode((null)),
[6] = render((null)),
} */
/* size: 776, cachelines: 13, members: 26 */
/* sum members: 498, holes: 3, sum holes: 7 */
/* padding: 31 */
/* paddings: 2, sum paddings: 32 */
/* last cacheline: 8 bytes */
/* BRAIN FART ALERT! 776 != 498 + 7(holes), diff = 271 */
};
class PathCost {
public:
bool valid; /* 0 1 */
/* XXX 3 bytes hole, try to pack */
int value; /* 4 4 */
int direction; /* 8 4 */
bool updated; /* 12 1 */
void PathCost(class PathCost *);
void PathCost(class PathCost *, const class PathCost &);
class PathCost & operator=(class PathCost *, const class PathCost &);
/* size: 16, cachelines: 1, members: 4 */
/* sum members: 10, holes: 1, sum holes: 3 */
/* padding: 3 */
/* last cacheline: 16 bytes */
};
class PathGridnode {
public:
bool valid; /* 0 1 */
bool target; /* 1 1 */
bool source; /* 2 1 */
/* XXX 1 byte hole, try to pack */
int totalcost; /* 4 4 */
v3s16 sourcedir; /* 8 6 */
v3s16 pos; /* 14 6 */
class PathCost directions[4]; /* 20 64 */
/* --- cacheline 1 boundary (64 bytes) was 20 bytes ago --- */
bool is_element; /* 84 1 */
char type; /* 85 1 */
void PathGridnode(class PathGridnode *);
void PathGridnode(class PathGridnode *, const class PathGridnode &);
class PathGridnode & operator=(class PathGridnode *, const class PathGridnode &);
class PathCost getCost(class PathGridnode *, v3s16);
void setCost(class PathGridnode *, v3s16, const class PathCost &);
/* size: 88, cachelines: 2, members: 9 */
/* sum members: 85, holes: 1, sum holes: 1 */
/* padding: 2 */
/* last cacheline: 24 bytes */
};
class Pathfinder {
int m_max_index_x; /* 0 4 */
int m_max_index_y; /* 4 4 */
int m_max_index_z; /* 8 4 */
int m_searchdistance; /* 12 4 */
int m_maxdrop; /* 16 4 */
int m_maxjump; /* 20 4 */
int m_min_target_distance; /* 24 4 */
bool m_prefetch; /* 28 1 */
/* XXX 1 byte hole, try to pack */
v3s16 m_start; /* 30 6 */
v3s16 m_destination; /* 36 6 */
class aabbox3d<short int> m_limits; /* 42 12 */
/* XXX 2 bytes hole, try to pack */
class GridNodeContainer * m_nodes_container; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
class ServerEnvironment * m_env; /* 64 8 */
public:
void Pathfinder(class Pathfinder *);
void ~Pathfinder(class Pathfinder *, int);
class vector<irr::core::vector3d<short int>, std::allocator<irr::core::vector3d<short int> > > getPath(class Pathfinder *, class ServerEnvironment *, v3s16, v3s16, unsigned int, unsigned int, unsigned int, PathAlgorithm);
v3s16 getRealPos(class Pathfinder *, v3s16);
v3s16 getIndexPos(class Pathfinder *, v3s16);
class PathGridnode & getIndexElement(class Pathfinder *, v3s16);
class PathGridnode & getIdxElem(class Pathfinder *, s16, s16, s16);
v3s16 invert(class Pathfinder *, v3s16);
bool isValidIndex(class Pathfinder *, v3s16);
v3f tov3f(class Pathfinder *, v3s16);
int getXZManhattanDist(class Pathfinder *, v3s16);
v3s16 getDirHeuristic(class Pathfinder *, class vector<irr::core::vector3d<short int>, std::allocator<irr::core::vector3d<short int> > > &, class PathGridnode &);
bool buildCostmap(class Pathfinder *);
class PathCost calcCost(class Pathfinder *, v3s16, v3s16);
bool updateAllCosts(class Pathfinder *, v3s16, v3s16, int, int);
bool updateCostHeuristic(class Pathfinder *, v3s16, v3s16, int, int);
void buildPath(class Pathfinder *, class vector<irr::core::vector3d<short int>, std::allocator<irr::core::vector3d<short int> > > &, v3s16, int);
/* size: 72, cachelines: 2, members: 13 */
/* sum members: 69, holes: 2, sum holes: 3 */
/* last cacheline: 8 bytes */
};
class GridNodeContainer {
public:
int ()(void) * * _vptr.GridNodeContainer; /* 0 8 */
protected:
class Pathfinder * m_pathf; /* 8 8 */
public:
void GridNodeContainer(class GridNodeContainer *, const class GridNodeContainer &);
void GridNodeContainer(class GridNodeContainer *);
virtual class PathGridnode & access(class GridNodeContainer *, v3s16);
virtual void ~GridNodeContainer(class GridNodeContainer *, int);
protected:
void initNode(class GridNodeContainer *, v3s16, class PathGridnode *);
/* vtable has 1 entries: {
[0] = access((null)),
} */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
};
class MapGridNodeContainer : public GridNodeContainer {
public:
/* class GridNodeContainer <ancestor>; */ /* 0 16 */
class map<irr::core::vector3d<short int>, PathGridnode, std::less<irr::core::vector3d<short int> >, std::allocator<std::pair<const irr::core::vector3d<short int>, PathGridnode> > > m_nodes; /* 16 48 */
void MapGridNodeContainer(class MapGridNodeContainer *, const class MapGridNodeContainer &);
virtual void ~MapGridNodeContainer(class MapGridNodeContainer *, int);
void MapGridNodeContainer(class MapGridNodeContainer *, class Pathfinder *);
virtual class PathGridnode & access(class MapGridNodeContainer *, v3s16);
/* vtable has 1 entries: {
[0] = access((null)),
} */
/* size: 64, cachelines: 1, members: 2 */
/* BRAIN FART ALERT! 64 != 48 + 0(holes), diff = 16 */
};
class ArrayGridNodeContainer : public GridNodeContainer {
public:
/* class GridNodeContainer <ancestor>; */ /* 0 16 */
v3s16 m_dimensions; /* 16 6 */
/* XXX 2 bytes hole, try to pack */
int m_x_stride; /* 24 4 */
int m_y_stride; /* 28 4 */
class vector<PathGridnode, std::allocator<PathGridnode> > m_nodes_array; /* 32 24 */
void ArrayGridNodeContainer(class ArrayGridNodeContainer *, const class ArrayGridNodeContainer &);
virtual void ~ArrayGridNodeContainer(class ArrayGridNodeContainer *, int);
void ArrayGridNodeContainer(class ArrayGridNodeContainer *, class Pathfinder *, v3s16);
virtual class PathGridnode & access(class ArrayGridNodeContainer *, v3s16);
/* vtable has 1 entries: {
[0] = access((null)),
} */
/* size: 56, cachelines: 1, members: 5 */
/* sum members: 38, holes: 1, sum holes: 2 */
/* last cacheline: 56 bytes */
/* BRAIN FART ALERT! 56 != 38 + 2(holes), diff = 16 */
};
struct utsname {
char sysname[65]; /* 0 65 */
/* --- cacheline 1 boundary (64 bytes) was 1 bytes ago --- */
char nodename[65]; /* 65 65 */
/* --- cacheline 2 boundary (128 bytes) was 2 bytes ago --- */
char release[65]; /* 130 65 */
/* --- cacheline 3 boundary (192 bytes) was 3 bytes ago --- */
char version[65]; /* 195 65 */
/* --- cacheline 4 boundary (256 bytes) was 4 bytes ago --- */
char machine[65]; /* 260 65 */
/* --- cacheline 5 boundary (320 bytes) was 5 bytes ago --- */
char domainname[65]; /* 325 65 */
/* size: 390, cachelines: 7, members: 6 */
/* last cacheline: 6 bytes */
};
struct _XExtData {
int number; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
class _XExtData * next; /* 8 8 */
int (*free_private)(class _XExtData *); /* 16 8 */
XPointer private_data; /* 24 8 */
/* size: 32, cachelines: 1, members: 4 */
/* sum members: 28, holes: 1, sum holes: 4 */
/* last cacheline: 32 bytes */
};
struct Entity {
int id; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
string name; /* 8 32 */
void Entity(class Entity *, );
void Entity(class Entity *, const class Entity &);
void ~Entity(class Entity *, int);
/* size: 40, cachelines: 1, members: 2 */
/* sum members: 36, holes: 1, sum holes: 4 */
/* last cacheline: 40 bytes */
};
class ItemStackRow : public ItemStack {
public:
/* struct ItemStack <ancestor>; */ /* 0 104 */
/* --- cacheline 1 boundary (64 bytes) was 40 bytes ago --- */
int id; /* 104 4 */
class ItemStackRow & operator=(class ItemStackRow *, const class ItemStack &);
void ItemStackRow(class ItemStackRow *, const class ItemStackRow &);
void ~ItemStackRow(class ItemStackRow *, int);
void ItemStackRow(class ItemStackRow *);
/* size: 112, cachelines: 2, members: 2 */
/* padding: 4 */
/* last cacheline: 48 bytes */
/* BRAIN FART ALERT! 112 != 4 + 0(holes), diff = 108 */
};
struct ActionRow {
int id; /* 0 4 */
int actor; /* 4 4 */
time_t timestamp; /* 8 8 */
int type; /* 16 4 */
/* XXX 4 bytes hole, try to pack */
string location; /* 24 32 */
string list; /* 56 32 */
/* --- cacheline 1 boundary (64 bytes) was 24 bytes ago --- */
int index; /* 88 4 */
int add; /* 92 4 */
class ItemStackRow stack; /* 96 112 */
/* XXX last struct has 4 bytes of padding */
/* --- cacheline 3 boundary (192 bytes) was 16 bytes ago --- */
int nodeMeta; /* 208 4 */
int x; /* 212 4 */
int y; /* 216 4 */
int z; /* 220 4 */
int oldNode; /* 224 4 */
int oldParam1; /* 228 4 */
int oldParam2; /* 232 4 */
/* XXX 4 bytes hole, try to pack */
string oldMeta; /* 240 32 */
/* --- cacheline 4 boundary (256 bytes) was 16 bytes ago --- */
int newNode; /* 272 4 */
int newParam1; /* 276 4 */
int newParam2; /* 280 4 */
/* XXX 4 bytes hole, try to pack */
string newMeta; /* 288 32 */
/* --- cacheline 5 boundary (320 bytes) --- */
int guessed; /* 320 4 */
void ActionRow(class ActionRow *, const class ActionRow &);
void ~ActionRow(class ActionRow *, int);
void ActionRow(class ActionRow *);
/* size: 328, cachelines: 6, members: 22 */
/* sum members: 312, holes: 3, sum holes: 12 */
/* padding: 4 */
/* paddings: 1, sum paddings: 4 */
/* last cacheline: 8 bytes */
};
class RollbackManager : public IRollbackManager {
public:
/* class IRollbackManager <ancestor>; */ /* 0 8 */
class IGameDef * gamedef; /* 8 8 */
string current_actor; /* 16 32 */
bool current_actor_is_guess; /* 48 1 */
/* XXX 7 bytes hole, try to pack */
class list<RollbackAction, std::allocator<RollbackAction> > action_todisk_buffer; /* 56 24 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
class list<RollbackAction, std::allocator<RollbackAction> > action_latest_buffer; /* 80 24 */
string database_path; /* 104 32 */
/* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */
sqlite3 * db; /* 136 8 */
sqlite3_stmt * stmt_insert; /* 144 8 */
sqlite3_stmt * stmt_replace; /* 152 8 */
sqlite3_stmt * stmt_select; /* 160 8 */
sqlite3_stmt * stmt_select_range; /* 168 8 */
sqlite3_stmt * stmt_select_withActor; /* 176 8 */
sqlite3_stmt * stmt_knownActor_select; /* 184 8 */
/* --- cacheline 3 boundary (192 bytes) --- */
sqlite3_stmt * stmt_knownActor_insert; /* 192 8 */
sqlite3_stmt * stmt_knownNode_select; /* 200 8 */
sqlite3_stmt * stmt_knownNode_insert; /* 208 8 */
class vector<Entity, std::allocator<Entity> > knownActors; /* 216 24 */
class vector<Entity, std::allocator<Entity> > knownNodes; /* 240 24 */
void RollbackManager(class RollbackManager *, const class RollbackManager &);
void RollbackManager(class RollbackManager *, const string &, class IGameDef *);
virtual void ~RollbackManager(class RollbackManager *, int);
virtual void reportAction(class RollbackManager *, const class RollbackAction &);
virtual string getActor(class RollbackManager *);
virtual bool isActorGuess(class RollbackManager *);
virtual void setActor(class RollbackManager *, const string &, bool);
virtual string getSuspect(class RollbackManager *, v3s16, float, float);
virtual void flush(class RollbackManager *);
void addAction(class RollbackManager *, const class RollbackAction &);
class list<RollbackAction, std::allocator<RollbackAction> > getEntriesSince(class RollbackManager *, time_t);
virtual class list<RollbackAction, std::allocator<RollbackAction> > getNodeActors(class RollbackManager *, v3s16, int, time_t, int);
virtual class list<RollbackAction, std::allocator<RollbackAction> > getRevertActions(class RollbackManager *, const string &, time_t);
void registerNewActor(class RollbackManager *, int, const string &);
void registerNewNode(class RollbackManager *, int, const string &);
int getActorId(class RollbackManager *, const string &);
int getNodeId(class RollbackManager *, const string &);
const char * getActorName(class RollbackManager *, int);
const char * getNodeName(class RollbackManager *, int);
bool createTables(class RollbackManager *);
bool initDatabase(class RollbackManager *);
bool registerRow(class RollbackManager *, const class ActionRow &);
class list<ActionRow, std::allocator<ActionRow> >const actionRowsFromSelect(class RollbackManager *, sqlite3_stmt *);
class ActionRow actionRowFromRollbackAction(class RollbackManager *, const class RollbackAction &);
class list<RollbackAction, std::allocator<RollbackAction> >const rollbackActionsFromActionRows(class RollbackManager *, const class list<ActionRow, std::allocator<ActionRow> > &);
class list<ActionRow, std::allocator<ActionRow> >const getRowsSince(class RollbackManager *, time_t, const string &);
class list<ActionRow, std::allocator<ActionRow> >const getRowsSince_range(class RollbackManager *, time_t, v3s16, int, int);
class list<RollbackAction, std::allocator<RollbackAction> >const getActionsSince_range(class RollbackManager *, time_t, v3s16, int, int);
class list<RollbackAction, std::allocator<RollbackAction> >const getActionsSince(class RollbackManager *, time_t, const string &);
void migrate(class RollbackManager *, const string &);
float getSuspectNearness(bool, v3s16, time_t, v3s16, time_t);
/* vtable has 8 entries: {
[0] = reportAction((null)),
[1] = getActor((null)),
[2] = isActorGuess((null)),
[3] = setActor((null)),
[4] = getSuspect((null)),
[7] = flush((null)),
[8] = getNodeActors((null)),
[9] = getRevertActions((null)),
} */
/* size: 264, cachelines: 5, members: 19 */
/* sum members: 249, holes: 1, sum holes: 7 */
/* last cacheline: 8 bytes */
/* BRAIN FART ALERT! 264 != 249 + 7(holes), diff = 8 */
};
struct z_stream_s {
Bytef * next_in; /* 0 8 */
uInt avail_in; /* 8 4 */
/* XXX 4 bytes hole, try to pack */
uLong total_in; /* 16 8 */
Bytef * next_out; /* 24 8 */
uInt avail_out; /* 32 4 */
/* XXX 4 bytes hole, try to pack */
uLong total_out; /* 40 8 */
char * msg; /* 48 8 */
class internal_state * state; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
alloc_func zalloc; /* 64 8 */
free_func zfree; /* 72 8 */
voidpf opaque; /* 80 8 */
int data_type; /* 88 4 */
/* XXX 4 bytes hole, try to pack */
uLong adler; /* 96 8 */
uLong reserved; /* 104 8 */
/* size: 112, cachelines: 2, members: 14 */
/* sum members: 100, holes: 3, sum holes: 12 */
/* last cacheline: 48 bytes */
};
struct internal_state {
int dummy; /* 0 4 */
/* size: 4, cachelines: 1, members: 1 */
/* last cacheline: 4 bytes */
};
class MapEventReceiver {
public:
int ()(void) * * _vptr.MapEventReceiver; /* 0 8 */
void MapEventReceiver(class MapEventReceiver *, );
void MapEventReceiver(class MapEventReceiver *, const class MapEventReceiver &);
void MapEventReceiver(class MapEventReceiver *);
void ~MapEventReceiver(class MapEventReceiver *, int);
class MapEventReceiver & operator=(class MapEventReceiver *, );
class MapEventReceiver & operator=(class MapEventReceiver *, const class MapEventReceiver &);
virtual void onMapEditEvent(class MapEventReceiver *, class MapEditEvent *);
/* vtable has 1 entries: {
[0] = onMapEditEvent((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
};
struct ChatEventTimeInfo : ChatEvent {
/* class ChatEvent <ancestor>; */ /* 0 4 */
/* XXX 4 bytes hole, try to pack */
u64 game_time; /* 8 8 */
u32 time; /* 16 4 */
void ChatEventTimeInfo(class ChatEventTimeInfo *, u64, u32);
/* size: 24, cachelines: 1, members: 3 */
/* sum members: 12, holes: 1, sum holes: 4 */
/* padding: 4 */
/* last cacheline: 24 bytes */
/* BRAIN FART ALERT! 24 != 12 + 4(holes), diff = 8 */
};
struct ChatEventNick : ChatEvent {
/* class ChatEvent <ancestor>; */ /* 0 4 */
/* XXX 4 bytes hole, try to pack */
string nick; /* 8 32 */
void ChatEventNick(class ChatEventNick *, enum ChatEventType, const string &);
/* size: 40, cachelines: 1, members: 2 */
/* sum members: 32, holes: 1, sum holes: 4 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 40 != 32 + 4(holes), diff = 4 */
};
struct ChatEventChat : ChatEvent {
/* class ChatEvent <ancestor>; */ /* 0 4 */
/* XXX 4 bytes hole, try to pack */
string nick; /* 8 32 */
wstring evt_msg; /* 40 32 */
void ChatEventChat(class ChatEventChat *, const string &, const wstring &);
/* size: 72, cachelines: 2, members: 3 */
/* sum members: 64, holes: 1, sum holes: 4 */
/* last cacheline: 8 bytes */
/* BRAIN FART ALERT! 72 != 64 + 4(holes), diff = 4 */
};
struct MediaInfo {
string path; /* 0 32 */
string sha1_digest; /* 32 32 */
void MediaInfo(class MediaInfo *, const string &, const string &);
class MediaInfo & operator=(class MediaInfo *, );
void ~MediaInfo(class MediaInfo *, int);
/* size: 64, cachelines: 1, members: 2 */
};
class MutexedVariable<double> {
public:
double m_value; /* 0 8 */
Mutex m_mutex; /* 8 40 */
void MutexedVariable(class MutexedVariable<double> *, const double &);
double get(class MutexedVariable<double> *);
void set(class MutexedVariable<double> *, const double &);
/* size: 48, cachelines: 1, members: 2 */
/* last cacheline: 48 bytes */
};
class Server : public PeerHandler, public MapEventReceiver, public InventoryManager, public IGameDef {
public:
/* class PeerHandler <ancestor>; */ /* 0 8 */
/* class MapEventReceiver <ancestor>; */ /* 8 8 */
/* class InventoryManager <ancestor>; */ /* 16 8 */
/* class IGameDef <ancestor>; */ /* 24 8 */
class Address m_bind_addr; /* 32 36 */
/* XXX last struct has 2 bytes of padding */
/* XXX 4 bytes hole, try to pack */
/* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
Mutex m_env_mutex; /* 72 40 */
string m_path_world; /* 112 32 */
/* --- cacheline 2 boundary (128 bytes) was 16 bytes ago --- */
struct SubgameSpec m_gamespec; /* 144 208 */
/* --- cacheline 5 boundary (320 bytes) was 32 bytes ago --- */
bool m_simple_singleplayer_mode; /* 352 1 */
/* XXX 1 byte hole, try to pack */
u16 m_max_chatmessage_length; /* 354 2 */
bool m_dedicated; /* 356 1 */
/* XXX 3 bytes hole, try to pack */
class MutexedVariable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > m_async_fatal_error; /* 360 72 */
/* --- cacheline 6 boundary (384 bytes) was 48 bytes ago --- */
float m_liquid_transform_timer; /* 432 4 */
float m_liquid_transform_every; /* 436 4 */
float m_masterserver_timer; /* 440 4 */
float m_emergethread_trigger_timer; /* 444 4 */
/* --- cacheline 7 boundary (448 bytes) --- */
float m_savemap_timer; /* 448 4 */
class IntervalLimiter m_map_timer_and_unload_interval; /* 452 4 */
class ServerEnvironment * m_env; /* 456 8 */
class Connection m_con; /* 464 936 */
/* --- cacheline 21 boundary (1344 bytes) was 56 bytes ago --- */
class BanManager * m_banmanager; /* 1400 8 */
/* --- cacheline 22 boundary (1408 bytes) --- */
class IRollbackManager * m_rollback; /* 1408 8 */
bool m_enable_rollback_recording; /* 1416 1 */
/* XXX 7 bytes hole, try to pack */
class EmergeManager * m_emerge; /* 1424 8 */
class ServerScripting * m_script; /* 1432 8 */
class IWritableItemDefManager * m_itemdef; /* 1440 8 */
class IWritableNodeDefManager * m_nodedef; /* 1448 8 */
class IWritableCraftDefManager * m_craftdef; /* 1456 8 */
class EventManager * m_event; /* 1464 8 */
/* --- cacheline 23 boundary (1472 bytes) --- */
class vector<ModSpec, std::allocator<ModSpec> > m_mods; /* 1472 24 */
float m_step_dtime; /* 1496 4 */
/* XXX 4 bytes hole, try to pack */
Mutex m_step_dtime_mutex; /* 1504 40 */
/* --- cacheline 24 boundary (1536 bytes) was 8 bytes ago --- */
float m_lag; /* 1544 4 */
/* XXX 4 bytes hole, try to pack */
class ServerThread * m_thread; /* 1552 8 */
float m_time_of_day_send_timer; /* 1560 4 */
/* XXX 4 bytes hole, try to pack */
class MutexedVariable<double> m_uptime; /* 1568 48 */
/* --- cacheline 25 boundary (1600 bytes) was 16 bytes ago --- */
class ClientInterface m_clients; /* 1616 184 */
/* XXX last struct has 4 bytes of padding */
/* --- cacheline 28 boundary (1792 bytes) was 8 bytes ago --- */
class queue<con::PeerChange, std::deque<con::PeerChange, std::allocator<con::PeerChange> > > m_peer_change_queue; /* 1800 80 */
/* --- cacheline 29 boundary (1856 bytes) was 24 bytes ago --- */
bool m_shutdown_requested; /* 1880 1 */
/* XXX 7 bytes hole, try to pack */
string m_shutdown_msg; /* 1888 32 */
/* --- cacheline 30 boundary (1920 bytes) --- */
bool m_shutdown_ask_reconnect; /* 1920 1 */
/* XXX 3 bytes hole, try to pack */
float m_shutdown_timer; /* 1924 4 */
class ChatInterface * m_admin_chat; /* 1928 8 */
string m_admin_nick; /* 1936 32 */
class queue<MapEditEvent*, std::deque<MapEditEvent*, std::allocator<MapEditEvent*> > > m_unsent_map_edit_queue; /* 1968 80 */
/* --- cacheline 32 boundary (2048 bytes) --- */
bool m_ignore_map_edit_events; /* 2048 1 */
/* XXX 1 byte hole, try to pack */
class VoxelArea m_ignore_map_edit_events_area; /* 2050 12 */
u16 m_ignore_map_edit_events_peer_id; /* 2062 2 */
class unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, MediaInfo, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, MediaInfo> > > m_media; /* 2064 56 */
/* --- cacheline 33 boundary (2112 bytes) was 8 bytes ago --- */
class unordered_map<int, ServerPlayingSound, std::hash<int>, std::equal_to<int>, std::allocator<std::pair<int const, ServerPlayingSound> > > m_playing_sounds; /* 2120 56 */
/* --- cacheline 34 boundary (2176 bytes) --- */
s32 m_next_sound_id; /* 2176 4 */
/* XXX 4 bytes hole, try to pack */
class map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, Inventory*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, Inventory*> > > m_detached_inventories; /* 2184 48 */
class map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > m_detached_inventories_player; /* 2232 48 */
/* --- cacheline 35 boundary (2240 bytes) was 40 bytes ago --- */
class unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ModMetadata*, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ModMetadata*> > > m_mod_storages; /* 2280 56 */
/* --- cacheline 36 boundary (2304 bytes) was 32 bytes ago --- */
float m_mod_storage_save_timer; /* 2336 4 */
void Server(class Server *, const string &, const class SubgameSpec &, bool, bool, bool, class ChatInterface *);
virtual void ~Server(class Server *, int);
void start(class Server *, class Address);
void stop(class Server *);
void step(class Server *, float);
void AsyncRunStep(class Server *, bool);
void Receive(class Server *);
class PlayerSAO * StageTwoClientInit(class Server *, u16);
void handleCommand(class Server *, class NetworkPacket *);
void handleCommand_Null(class Server *, class NetworkPacket *);
void handleCommand_Deprecated(class Server *, class NetworkPacket *);
void handleCommand_Init(class Server *, class NetworkPacket *);
void handleCommand_Init_Legacy(class Server *, class NetworkPacket *);
void handleCommand_Init2(class Server *, class NetworkPacket *);
void handleCommand_RequestMedia(class Server *, class NetworkPacket *);
void handleCommand_ReceivedMedia(class Server *, class NetworkPacket *);
void handleCommand_ClientReady(class Server *, class NetworkPacket *);
void handleCommand_GotBlocks(class Server *, class NetworkPacket *);
void handleCommand_PlayerPos(class Server *, class NetworkPacket *);
void handleCommand_DeletedBlocks(class Server *, class NetworkPacket *);
void handleCommand_InventoryAction(class Server *, class NetworkPacket *);
void handleCommand_ChatMessage(class Server *, class NetworkPacket *);
void handleCommand_Damage(class Server *, class NetworkPacket *);
void handleCommand_Password(class Server *, class NetworkPacket *);
void handleCommand_PlayerItem(class Server *, class NetworkPacket *);
void handleCommand_Respawn(class Server *, class NetworkPacket *);
void handleCommand_Interact(class Server *, class NetworkPacket *);
void handleCommand_RemovedSounds(class Server *, class NetworkPacket *);
void handleCommand_NodeMetaFields(class Server *, class NetworkPacket *);
void handleCommand_InventoryFields(class Server *, class NetworkPacket *);
void handleCommand_FirstSrp(class Server *, class NetworkPacket *);
void handleCommand_SrpBytesA(class Server *, class NetworkPacket *);
void handleCommand_SrpBytesM(class Server *, class NetworkPacket *);
void ProcessData(class Server *, class NetworkPacket *);
void Send(class Server *, class NetworkPacket *);
void process_PlayerPos(class Server *, class RemotePlayer *, class PlayerSAO *, class NetworkPacket *);
void setTimeOfDay(class Server *, u32);
virtual void onMapEditEvent(class Server *, class MapEditEvent *);
virtual class Inventory * getInventory(class Server *, const class InventoryLocation &);
virtual void setInventoryModified(class Server *, const class InventoryLocation &, bool);
wstring getStatusString(class Server *);
double getUptime(const class Server *);
bool getShutdownRequested(const class Server *);
void requestShutdown(class Server *, const string &, bool, float);
s32 playSound(class Server *, const class SimpleSoundSpec &, const class ServerSoundParams &);
void stopSound(class Server *, s32);
class set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string getPlayerEffectivePrivs(class Server *, const string &);
bool checkPriv(class Server *, const string &, const string &);
void reportPrivsModified(class Server *, const string &);
void reportInventoryFormspecModified(class Server *, const string &);
void setIpBanned(class Server *, const string &, const string &);
void unsetIpBanned(class Server *, const string &);
string getBanDescription(class Server *, const string &);
void notifyPlayer(class Server *, const char *, const wstring &);
void notifyPlayers(class Server *, const wstring &);
void spawnParticle(class Server *, const string &, v3f, v3f, v3f, float, float, bool, bool, bool, const string &, const class TileAnimationParams &, u8);
u32 addParticleSpawner(class Server *, u16, float, v3f, v3f, v3f, v3f, v3f, v3f, float, float, float, float, bool, bool, class ServerActiveObject *, bool, const string &, const string &, const class TileAnimationParams &, u8);
void deleteParticleSpawner(class Server *, const string &, u32);
class Inventory * createDetachedInventory(class Server *, const string &, const string &);
class ServerScripting * getScriptIface(class Server *);
bool rollbackRevertActions(class Server *, const class list<RollbackAction, std::allocator<RollbackAction> > &, class list<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_);
virtual class IItemDefManager * getItemDefManager(class Server *);
virtual class INodeDefManager * getNodeDefManager(class Server *);
virtual class ICraftDefManager * getCraftDefManager(class Server *);
virtual u16 allocateUnknownNodeId(class Server *, const string &);
virtual class MtEventManager * getEventManager(class Server *);
virtual class IRollbackManager * getRollbackManager(class Server *);
virtual class EmergeManager * getEmergeManager(class Server *);
class IWritableItemDefManager * getWritableItemDefManager(class Server *);
class IWritableNodeDefManager * getWritableNodeDefManager(class Server *);
class IWritableCraftDefManager * getWritableCraftDefManager(class Server *);
virtual const class vector<ModSpec, std::allocator<ModSpec> > & getMods(const class Server *);
virtual const class ModSpec * getModSpec(const class Server *, const string &);
void getModNames(class Server *, class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basi);
string getBuiltinLuaPath(class Server *);
virtual string getWorldPath(const class Server *);
virtual string getModStoragePath(const class Server *);
bool isSingleplayer(class Server *);
void setAsyncFatalError(class Server *, const string &);
bool showFormspec(class Server *, const char *, const string &, const string &);
class Map & getMap(class Server *);
class ServerEnvironment & getEnv(class Server *);
u32 hudAdd(class Server *, class RemotePlayer *, class HudElement *);
bool hudRemove(class Server *, class RemotePlayer *, u32);
bool hudChange(class Server *, class RemotePlayer *, u32, enum HudElementStat, void *);
bool hudSetFlags(class Server *, class RemotePlayer *, u32, u32);
bool hudSetHotbarItemcount(class Server *, class RemotePlayer *, s32);
s32 hudGetHotbarItemcount(const class Server *, class RemotePlayer *);
void hudSetHotbarImage(class Server *, class RemotePlayer *, string);
string hudGetHotbarImage(class Server *, class RemotePlayer *);
void hudSetHotbarSelectedImage(class Server *, class RemotePlayer *, string);
const string & hudGetHotbarSelectedImage(const class Server *, class RemotePlayer *);
class Address getPeerAddress(class Server *, u16);
bool setLocalPlayerAnimations(class Server *, class RemotePlayer *, v2s32 *, f32);
bool setPlayerEyeOffset(class Server *, class RemotePlayer *, v3f, v3f);
bool setSky(class Server *, class RemotePlayer *, const class SColor &, const string &, const class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11);
bool overrideDayNightRatio(class Server *, class RemotePlayer *, bool, float);
virtual void peerAdded(class Server *, class Peer *);
virtual void deletingPeer(class Server *, class Peer *, bool);
void DenySudoAccess(class Server *, u16);
void DenyAccessVerCompliant(class Server *, u16, u16, enum AccessDeniedCode, const string &, bool);
void DenyAccess(class Server *, u16, enum AccessDeniedCode, const string &);
void acceptAuth(class Server *, u16, bool);
void DenyAccess_Legacy(class Server *, u16, const wstring &);
bool getClientConInfo(class Server *, u16, rtt_stat_type, float *);
bool getClientInfo(class Server *, u16, enum ClientState *, u32 *, u8 *, u16 *, u8 *, u8 *, u8 *, string *);
void printToConsoleOnly(class Server *, const string &);
void SendPlayerHPOrDie(class Server *, class PlayerSAO *);
void SendPlayerBreath(class Server *, class PlayerSAO *);
void SendInventory(class Server *, class PlayerSAO *);
void SendMovePlayer(class Server *, u16);
virtual bool registerModStorage(class Server *, class ModMetadata *);
virtual void unregisterModStorage(class Server *, const string &);
void SendMovement(class Server *, u16);
void SendHP(class Server *, u16, u8);
void SendBreath(class Server *, u16, u16);
void SendAccessDenied(class Server *, u16, enum AccessDeniedCode, const string &, bool);
void SendAccessDenied_Legacy(class Server *, u16, const wstring &);
void SendDeathscreen(class Server *, u16, bool, v3f);
void SendItemDef(class Server *, u16, class IItemDefManager *, u16);
void SendNodeDef(class Server *, u16, class INodeDefManager *, u16);
void SetBlocksNotSent(class Server *, class map<irr::core::vector3d<short int>, MapBlock*, std::less<irr::core::vector3d<short int> >, std::allocator<std::pair<const);
void SendChatMessage(class Server *, u16, const wstring &);
void SendTimeOfDay(class Server *, u16, u16, f32);
void SendPlayerHP(class Server *, u16);
void SendLocalPlayerAnimations(class Server *, u16, v2s32 *, f32);
void SendEyeOffset(class Server *, u16, v3f, v3f);
void SendPlayerPrivileges(class Server *, u16);
void SendPlayerInventoryFormspec(class Server *, u16);
void SendShowFormspecMessage(class Server *, u16, const string &, const string &);
void SendHUDAdd(class Server *, u16, u32, class HudElement *);
void SendHUDRemove(class Server *, u16, u32);
void SendHUDChange(class Server *, u16, u32, enum HudElementStat, void *);
void SendHUDSetFlags(class Server *, u16, u32, u32);
void SendHUDSetParam(class Server *, u16, u16, const string &);
void SendSetSky(class Server *, u16, const class SColor &, const string &, const class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11);
void SendOverrideDayNightRatio(class Server *, u16, bool, float);
void sendRemoveNode(class Server *, v3s16, u16, class vector<short unsigned int, std::allocator<short unsigned int> > *, float);
void sendAddNode(class Server *, v3s16, class MapNode, u16, class vector<short unsigned int, std::allocator<short unsigned int> > *, float, bool);
void setBlockNotSent(class Server *, v3s16);
void SendBlockNoLock(class Server *, u16, class MapBlock *, u8, u16);
void SendBlocks(class Server *, float);
void fillMediaCache(class Server *);
void sendMediaAnnouncement(class Server *, u16);
void sendRequestedMedia(class Server *, u16, const class vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11);
void sendDetachedInventory(class Server *, const string &, u16);
void sendDetachedInventories(class Server *, u16);
void SendAddParticleSpawner(class Server *, u16, u16, u16, float, v3f, v3f, v3f, v3f, v3f, v3f, float, float, float, float, bool, bool, u16, bool, const string &, u32, const class TileAnimationParams &, u8);
void SendDeleteParticleSpawner(class Server *, u16, u32);
void SendSpawnParticle(class Server *, u16, u16, v3f, v3f, v3f, float, float, bool, bool, bool, const string &, const class TileAnimationParams &, u8);
u32 SendActiveObjectRemoveAdd(class Server *, u16, const string &);
void SendActiveObjectMessages(class Server *, u16, const string &, bool);
void DiePlayer(class Server *, u16);
void RespawnPlayer(class Server *, u16);
void DeleteClient(class Server *, u16, enum ClientDeletionReason);
void UpdateCrafting(class Server *, class RemotePlayer *);
void handleChatInterfaceEvent(class Server *, class ChatEvent *);
wstring handleChat(class Server *, const string &, const wstring &, const wstring &, bool, class RemotePlayer *);
void handleAdminChat(class Server *, const class ChatEventChat *);
v3f findSpawnPos(class Server *);
class RemoteClient * getClient(class Server *, u16, enum ClientState);
class RemoteClient * getClientNoEx(class Server *, u16, enum ClientState);
string getPlayerName(class Server *, u16);
class PlayerSAO * getPlayerSAO(class Server *, u16);
class PlayerSAO * emergePlayer(class Server *, const char *, u16, u16);
void handlePeerChanges(class Server *);
void Server(class Server *, const class Server &);
class Server & operator=(class Server *, const class Server &);
/* vtable has 18 entries: {
[4] = onMapEditEvent((null)),
[5] = getInventory((null)),
[6] = setInventoryModified((null)),
[7] = getItemDefManager((null)),
[8] = getNodeDefManager((null)),
[9] = getCraftDefManager((null)),
[10] = allocateUnknownNodeId((null)),
[11] = getEventManager((null)),
[12] = getRollbackManager((null)),
[13] = getEmergeManager((null)),
[14] = getMods((null)),
[15] = getModSpec((null)),
[16] = getWorldPath((null)),
[17] = getModStoragePath((null)),
[2] = peerAdded((null)),
[3] = deletingPeer((null)),
[18] = registerModStorage((null)),
[19] = unregisterModStorage((null)),
} */
/* size: 2344, cachelines: 37, members: 55 */
/* sum members: 2266, holes: 11, sum holes: 42 */
/* padding: 4 */
/* paddings: 2, sum paddings: 6 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 2344 != 2266 + 42(holes), diff = 36 */
};
struct SendableMedia {
string name; /* 0 32 */
string path; /* 32 32 */
/* --- cacheline 1 boundary (64 bytes) --- */
string data; /* 64 32 */
void SendableMedia(class SendableMedia *, const string &, const string &, const string &);
void SendableMedia(class SendableMedia *, );
void ~SendableMedia(class SendableMedia *, int);
/* size: 96, cachelines: 2, members: 3 */
/* last cacheline: 32 bytes */
};
class ServerThread : public Thread {
public:
/* class Thread <ancestor>; */ /* 0 0 */
/* XXX 144 bytes hole, try to pack */
/* --- cacheline 2 boundary (128 bytes) was 16 bytes ago --- */
class Server * m_server; /* 144 8 */
void ServerThread(class ServerThread *, );
void ServerThread(class ServerThread *, const class ServerThread &);
void ServerThread(class ServerThread *, class Server *);
virtual void * run(class ServerThread *);
virtual void ~ServerThread(class ServerThread *, int);
/* vtable has 1 entries: {
[2] = run((null)),
} */
/* size: 152, cachelines: 3, members: 2 */
/* sum members: 8, holes: 1, sum holes: 144 */
/* last cacheline: 24 bytes */
};
class ClientNotFoundException : public BaseException {
public:
/* class BaseException <ancestor>; */ /* 0 40 */
void ClientNotFoundException(class ClientNotFoundException *, );
void ClientNotFoundException(class ClientNotFoundException *, const class ClientNotFoundException &);
void ClientNotFoundException(class ClientNotFoundException *, const char *);
virtual void ~ClientNotFoundException(class ClientNotFoundException *, int);
/* size: 40, cachelines: 1, members: 1 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 40 != 0 + 0(holes), diff = 40 */
};
struct ABMWithState {
class ActiveBlockModifier * abm; /* 0 8 */
float timer; /* 8 4 */
void ABMWithState(class ABMWithState *, class ActiveBlockModifier *);
/* size: 16, cachelines: 1, members: 2 */
/* padding: 4 */
/* last cacheline: 16 bytes */
};
struct LBMContentMapping {
typedef struct map<short unsigned int, std::vector<LoadingBlockModifierDef*, std::allocator<LoadingBlockModifierDef*> >, std::less<short unsigned int>, std::allocator<std::pair<short unsigned int const, std::vector<LoadingBlockModifierDef*, std::allocator<LoadingBlockModifierDef*> > > > > container_map;
container_map map; /* 0 48 */
class vector<LoadingBlockModifierDef*, std::allocator<LoadingBlockModifierDef*> > lbm_list; /* 48 24 */
void deleteContents(class LBMContentMapping *);
void addLBM(class LBMContentMapping *, class LoadingBlockModifierDef *, class IGameDef *);
const class vector<LoadingBlockModifierDef*, std::allocator<LoadingBlockModifierDef*> > * lookup(const class LBMContentMapping *, content_t);
void LBMContentMapping(class LBMContentMapping *);
void ~LBMContentMapping(class LBMContentMapping *, int);
/* size: 72, cachelines: 2, members: 2 */
/* last cacheline: 8 bytes */
};
class LBMManager {
bool m_query_mode; /* 0 1 */
/* XXX 7 bytes hole, try to pack */
class map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, LoadingBlockModifierDef*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, LoadingBlockModifierDef*> > > m_lbm_defs; /* 8 48 */
typedef struct map<unsigned int, LBMContentMapping, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, LBMContentMapping> > > lbm_lookup_map;
lbm_lookup_map m_lbm_lookup; /* 56 48 */
public:
void LBMManager(class LBMManager *);
void ~LBMManager(class LBMManager *, int);
void addLBMDef(class LBMManager *, class LoadingBlockModifierDef *);
void loadIntroductionTimes(class LBMManager *, const string &, class IGameDef *, u32);
string createIntroductionTimesString(class LBMManager *);
void applyLBMs(class LBMManager *, class ServerEnvironment *, class MapBlock *, u32);
const_iterator getLBMsIntroducedAfter(class LBMManager *, u32);
/* size: 104, cachelines: 2, members: 3 */
/* sum members: 97, holes: 1, sum holes: 7 */
/* last cacheline: 40 bytes */
};
class ServerEnvironment : public Environment {
public:
/* class Environment <ancestor>; */ /* 0 0 */
/* XXX 104 bytes hole, try to pack */
/* --- cacheline 1 boundary (64 bytes) was 40 bytes ago --- */
class ServerMap * m_map; /* 104 8 */
class ServerScripting * m_script; /* 112 8 */
class Server * m_server; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
stringconst m_path_world; /* 128 32 */
ActiveObjectMap m_active_objects; /* 160 56 */
/* --- cacheline 3 boundary (192 bytes) was 24 bytes ago --- */
class queue<ActiveObjectMessage, std::deque<ActiveObjectMessage, std::allocator<ActiveObjectMessage> > > m_active_object_messages; /* 216 80 */
/* --- cacheline 4 boundary (256 bytes) was 40 bytes ago --- */
float m_send_recommended_timer; /* 296 4 */
class IntervalLimiter m_object_management_interval; /* 300 4 */
class ActiveBlockList m_active_blocks; /* 304 96 */
/* --- cacheline 6 boundary (384 bytes) was 16 bytes ago --- */
class IntervalLimiter m_active_blocks_management_interval; /* 400 4 */
class IntervalLimiter m_active_block_modifier_interval; /* 404 4 */
class IntervalLimiter m_active_blocks_nodemetadata_interval; /* 408 4 */
int m_active_block_interval_overload_skip; /* 412 4 */
u32 m_game_time; /* 416 4 */
float m_game_time_fraction_counter; /* 420 4 */
u32 m_last_clear_objects_time; /* 424 4 */
/* XXX 4 bytes hole, try to pack */
class vector<ABMWithState, std::allocator<ABMWithState> > m_abms; /* 432 24 */
/* --- cacheline 7 boundary (448 bytes) was 8 bytes ago --- */
class LBMManager m_lbm_mgr; /* 456 104 */
/* --- cacheline 8 boundary (512 bytes) was 48 bytes ago --- */
float m_recommended_send_interval; /* 560 4 */
float m_max_lag_estimate; /* 564 4 */
class vector<RemotePlayer*, std::allocator<RemotePlayer*> > m_players; /* 568 24 */
/* --- cacheline 9 boundary (576 bytes) was 16 bytes ago --- */
class IntervalLimiter m_particle_management_interval; /* 592 4 */
/* XXX 4 bytes hole, try to pack */
class unordered_map<unsigned int, float, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, float> > > m_particle_spawners; /* 600 56 */
/* --- cacheline 10 boundary (640 bytes) was 16 bytes ago --- */
class unordered_map<unsigned int, short unsigned int, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, short unsigned int> > > m_particle_spawner_attachments; /* 656 56 */
void ServerEnvironment(class ServerEnvironment *, const class ServerEnvironment &);
void ServerEnvironment(class ServerEnvironment *, class ServerMap *, class ServerScripting *, class Server *, const string &);
virtual void ~ServerEnvironment(class ServerEnvironment *, int);
virtual class Map & getMap(class ServerEnvironment *);
class ServerMap & getServerMap(class ServerEnvironment *);
class ServerScripting * getScriptIface(class ServerEnvironment *);
class Server * getGameDef(class ServerEnvironment *);
float getSendRecommendedInterval(class ServerEnvironment *);
void kickAllPlayers(class ServerEnvironment *, enum AccessDeniedCode, const string &, bool);
void saveLoadedPlayers(class ServerEnvironment *);
void savePlayer(class ServerEnvironment *, class RemotePlayer *);
class RemotePlayer * loadPlayer(class ServerEnvironment *, const string &, class PlayerSAO *);
void addPlayer(class ServerEnvironment *, class RemotePlayer *);
void removePlayer(class ServerEnvironment *, class RemotePlayer *);
void saveMeta(class ServerEnvironment *);
void loadMeta(class ServerEnvironment *);
void loadDefaultMeta(class ServerEnvironment *);
u32 addParticleSpawner(class ServerEnvironment *, float);
u32 addParticleSpawner(class ServerEnvironment *, float, u16);
void deleteParticleSpawner(class ServerEnvironment *, u32, bool);
class ServerActiveObject * getActiveObject(class ServerEnvironment *, u16);
u16 addActiveObject(class ServerEnvironment *, class ServerActiveObject *);
void getAddedActiveObjects(class ServerEnvironment *, class PlayerSAO *, s16, s16, class set<short unsigned int, std::less<short unsigned int>, std::allocator<short unsigned int> > &, class queue<short unsigned int, std::deque<short unsigned int, std::allocator<short unsigned int> > > &);
void getRemovedActiveObjects(class ServerEnvironment *, class PlayerSAO *, s16, s16, class set<short unsigned int, std::less<short unsigned int>, std::allocator<short unsigned int> > &, class queue<short unsigned int, std::deque<short unsigned int, std::allocator<short unsigned int> > > &);
class ActiveObjectMessage getActiveObjectMessage(class ServerEnvironment *);
void activateBlock(class ServerEnvironment *, class MapBlock *, u32);
void addActiveBlockModifier(class ServerEnvironment *, class ActiveBlockModifier *);
void addLoadingBlockModifierDef(class ServerEnvironment *, class LoadingBlockModifierDef *);
bool setNode(class ServerEnvironment *, v3s16, const class MapNode &);
bool removeNode(class ServerEnvironment *, v3s16);
bool swapNode(class ServerEnvironment *, v3s16, const class MapNode &);
void getObjectsInsideRadius(class ServerEnvironment *, class vector<short unsigned int, std::allocator<short unsigned int> > &, v3f, float);
void clearObjects(class ServerEnvironment *, enum ClearObjectsMode);
virtual void step(class ServerEnvironment *, float);
bool line_of_sight(class ServerEnvironment *, v3f, v3f, float, v3s16 *);
u32 getGameTime(const class ServerEnvironment *);
void reportMaxLagEstimate(class ServerEnvironment *, float);
float getMaxLagEstimate(class ServerEnvironment *);
class set<irr::core::vector3d<short int>, std::less<irr::core::vector3d<short int> >, std::allocator<irr::core::vector3d<short getForceloadedBlocks(class ServerEnvironment *);
void setStaticForActiveObjectsInBlock(class ServerEnvironment *, v3s16, bool, v3s16);
class RemotePlayer * getPlayer(class ServerEnvironment *, u16);
class RemotePlayer * getPlayer(class ServerEnvironment *, const char *);
u16 addActiveObjectRaw(class ServerEnvironment *, class ServerActiveObject *, bool, u32);
void removeRemovedObjects(class ServerEnvironment *);
void activateObjects(class ServerEnvironment *, class MapBlock *, u32);
void deactivateFarObjects(class ServerEnvironment *, bool);
/* vtable has 2 entries: {
[3] = getMap((null)),
[2] = step((null)),
} */
/* size: 712, cachelines: 12, members: 25 */
/* sum members: 600, holes: 3, sum holes: 112 */
/* last cacheline: 8 bytes */
};
class ActiveBlockList {
public:
class set<irr::core::vector3d<short int>, std::less<irr::core::vector3d<short int> >, std::allocator<irr::core::vector3d<short int> > > m_list; /* 0 48 */
class set<irr::core::vector3d<short int>, std::less<irr::core::vector3d<short int> >, std::allocator<irr::core::vector3d<short int> > > m_forceloaded_list; /* 48 48 */
void update(class ActiveBlockList *, class vector<irr::core::vector3d<short int>, std::allocator<irr::core::vector3d<short int> > > &, s16, class set<irr::core::vector3d<short int>, std::less<irr::core::vector3d<short int> >, std::allocator<irr::core::vector3d<short , class set<irr::core::vector3d<short int>, std::less<irr::core::vector3d<short int> >, std::allocator<irr::core::vector3d<short );
bool contains(class ActiveBlockList *, v3s16);
void clear(class ActiveBlockList *);
void ~ActiveBlockList(class ActiveBlockList *, int);
void ActiveBlockList(class ActiveBlockList *);
/* size: 96, cachelines: 2, members: 2 */
/* last cacheline: 32 bytes */
};
struct ActiveABM {
class ActiveBlockModifier * abm; /* 0 8 */
int chance; /* 8 4 */
/* XXX 4 bytes hole, try to pack */
class set<short unsigned int, std::less<short unsigned int>, std::allocator<short unsigned int> > required_neighbors; /* 16 48 */
void ActiveABM(class ActiveABM *, );
void ActiveABM(class ActiveABM *, const class ActiveABM &);
void ~ActiveABM(class ActiveABM *, int);
void ActiveABM(class ActiveABM *);
/* size: 64, cachelines: 1, members: 3 */
/* sum members: 60, holes: 1, sum holes: 4 */
};
class ABMHandler {
class ServerEnvironment * m_env; /* 0 8 */
class vector<std::vector<ActiveABM, std::allocator<ActiveABM> >*, std::allocator<std::vector<ActiveABM, std::allocator<ActiveABM> >*> > m_aabms; /* 8 24 */
public:
void ABMHandler(class ABMHandler *, class vector<ABMWithState, std::allocator<ABMWithState> > &, float, class ServerEnvironment *, bool);
void ~ABMHandler(class ABMHandler *, int);
u32 countObjects(class ABMHandler *, class MapBlock *, class ServerMap *, u32 &);
void apply(class ABMHandler *, class MapBlock *);
/* size: 32, cachelines: 1, members: 2 */
/* last cacheline: 32 bytes */
};
class ServerActiveObject : public ActiveObject {
public:
/* class ActiveObject <ancestor>; */ /* 0 16 */
/* XXX last struct has 6 bytes of padding */
u16 m_known_by_count; /* 10 2 */
bool m_removed; /* 12 1 */
bool m_pending_deactivation; /* 13 1 */
bool m_static_exists; /* 14 1 */
/* XXX 1 byte hole, try to pack */
v3s16 m_static_block; /* 16 6 */
/* XXX 2 bytes hole, try to pack */
class queue<ActiveObjectMessage, std::deque<ActiveObjectMessage, std::allocator<ActiveObjectMessage> > > m_messages_out; /* 24 80 */
protected:
/* --- cacheline 1 boundary (64 bytes) was 40 bytes ago --- */
class ServerEnvironment * m_env; /* 104 8 */
v3f m_base_position; /* 112 12 */
/* XXX 4 bytes hole, try to pack */
/* --- cacheline 2 boundary (128 bytes) --- */
class unordered_set<unsigned int, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<unsigned int> > m_attached_particle_spawners; /* 128 56 */
/* Bitfield combined with previous fields */
static class map<short unsigned int, ServerActiveObject* (*)(ServerEnvironment*, irr::core::vector3d<float>, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&), std::less<short unsigned int>, std::allocator<std::pair<short unsigned int const, ServerActiveObject* (*)(ServerEnvironment*, irr::core::vector3d<float>, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)> > > m_types /* 0 0 */
typedef class ServerActiveObject * (*Factory)(class ServerEnvironment *, v3f, const string &);
public:
void ServerActiveObject(class ServerActiveObject *, const class ServerActiveObject &);
void ServerActiveObject(class ServerActiveObject *, class ServerEnvironment *, v3f);
virtual void ~ServerActiveObject(class ServerActiveObject *, int);
virtual enum ActiveObjectType getSendType(const class ServerActiveObject *);
virtual void addedToEnvironment(class ServerActiveObject *, u32);
virtual void removingFromEnvironment(class ServerActiveObject *);
virtual bool environmentDeletes(const class ServerActiveObject *);
class ServerActiveObject * create(enum ActiveObjectType, class ServerEnvironment *, u16, v3f, const string &);
v3f getBasePosition(class ServerActiveObject *);
void setBasePosition(class ServerActiveObject *, v3f);
class ServerEnvironment * getEnv(class ServerActiveObject *);
virtual void setPos(class ServerActiveObject *, const v3f &);
virtual void moveTo(class ServerActiveObject *, v3f, bool);
virtual float getMinimumSavedMovement(class ServerActiveObject *);
virtual string getDescription(class ServerActiveObject *);
virtual void step(class ServerActiveObject *, float, bool);
virtual string getClientInitializationData(class ServerActiveObject *, u16);
virtual void getStaticData(const class ServerActiveObject *, string *);
virtual bool isStaticAllowed(const class ServerActiveObject *);
virtual int punch(class ServerActiveObject *, v3f, const class ToolCapabilities *, class ServerActiveObject *, float);
virtual void rightClick(class ServerActiveObject *, class ServerActiveObject *);
virtual void setHP(class ServerActiveObject *, s16);
virtual s16 getHP(const class ServerActiveObject *);
virtual void setArmorGroups(class ServerActiveObject *, const ItemGroupList &);
virtual const ItemGroupList & getArmorGroups(class ServerActiveObject *);
virtual void setPhysicsOverride(class ServerActiveObject *, float, float, float);
virtual void setAnimation(class ServerActiveObject *, v2f, float, float, bool);
virtual void getAnimation(class ServerActiveObject *, v2f *, float *, float *, bool *);
virtual void setBonePosition(class ServerActiveObject *, const string &, v3f, v3f);
virtual void getBonePosition(class ServerActiveObject *, const string &, v3f *, v3f *);
virtual void setAttachment(class ServerActiveObject *, int, const string &, v3f, v3f);
virtual void getAttachment(class ServerActiveObject *, int *, string *, v3f *, v3f *);
virtual void addAttachmentChild(class ServerActiveObject *, int);
virtual void removeAttachmentChild(class ServerActiveObject *, int);
virtual const class unordered_set<int, std::hash<int>, std::equal_to<int>, std::allocator<int> > & getAttachmentChildIds(class ServerActiveObject *);
virtual class ObjectProperties * accessObjectProperties(class ServerActiveObject *);
virtual void notifyObjectPropertiesModified(class ServerActiveObject *);
virtual class Inventory * getInventory(class ServerActiveObject *);
virtual const class Inventory * getInventory(const class ServerActiveObject *);
virtual class InventoryLocation getInventoryLocation(const class ServerActiveObject *);
virtual void setInventoryModified(class ServerActiveObject *);
virtual string getWieldList(const class ServerActiveObject *);
virtual int getWieldIndex(const class ServerActiveObject *);
virtual class ItemStack getWieldedItem(const class ServerActiveObject *);
virtual bool setWieldedItem(class ServerActiveObject *, const class ItemStack &);
void attachParticleSpawner(class ServerActiveObject *, u32);
void detachParticleSpawner(class ServerActiveObject *, u32);
protected:
void registerType(u16, Factory);
/* vtable has 38 entries: {
[5] = getSendType((null)),
[6] = addedToEnvironment((null)),
[7] = removingFromEnvironment((null)),
[8] = environmentDeletes((null)),
[9] = setPos((null)),
[10] = moveTo((null)),
[11] = getMinimumSavedMovement((null)),
[12] = getDescription((null)),
[13] = step((null)),
[14] = getClientInitializationData((null)),
[15] = getStaticData((null)),
[16] = isStaticAllowed((null)),
[17] = punch((null)),
[18] = rightClick((null)),
[19] = setHP((null)),
[20] = getHP((null)),
[21] = setArmorGroups((null)),
[22] = getArmorGroups((null)),
[23] = setPhysicsOverride((null)),
[24] = setAnimation((null)),
[25] = getAnimation((null)),
[26] = setBonePosition((null)),
[27] = getBonePosition((null)),
[28] = setAttachment((null)),
[29] = getAttachment((null)),
[30] = addAttachmentChild((null)),
[31] = removeAttachmentChild((null)),
[32] = getAttachmentChildIds((null)),
[33] = accessObjectProperties((null)),
[34] = notifyObjectPropertiesModified((null)),
[35] = getInventory((null)),
[36] = getInventory((null)),
[37] = getInventoryLocation((null)),
[38] = setInventoryModified((null)),
[39] = getWieldList((null)),
[40] = getWieldIndex((null)),
[41] = getWieldedItem((null)),
[42] = setWieldedItem((null)),
} */
/* size: 184, cachelines: 3, members: 10, static members: 1 */
/* sum members: 167, holes: 3, sum holes: 7 */
/* paddings: 1, sum paddings: 6 */
/* last cacheline: 56 bytes */
/* BRAIN FART ALERT! 184 != 167 + 7(holes), diff = 10 */
};
class SourceShaderCache {
StringMap m_programs; /* 0 56 */
public:
void insert(class SourceShaderCache *, const string &, const string &, const string &, bool);
string get(class SourceShaderCache *, const string &, const string &);
string getOrLoad(class SourceShaderCache *, const string &, const string &);
string readFile(class SourceShaderCache *, const string &);
void ~SourceShaderCache(class SourceShaderCache *, int);
void SourceShaderCache(class SourceShaderCache *);
/* size: 56, cachelines: 1, members: 1 */
/* last cacheline: 56 bytes */
};
class CachedShaderSetting<float, 16ul> {
const char * m_name; /* 0 8 */
float m_sent[16]; /* 8 64 */
/* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
bool has_been_set; /* 72 1 */
bool is_pixel; /* 73 1 */
protected:
void CachedShaderSetting(class CachedShaderSetting<float, 16ul> *, const char *, bool);
public:
void set(class CachedShaderSetting<float, 16ul> *, const float *, class IMaterialRendererServices *);
/* size: 80, cachelines: 2, members: 4 */
/* padding: 6 */
/* last cacheline: 16 bytes */
};
class CachedVertexShaderSetting<float, 16ul> : public CachedShaderSetting<float, 16ul> {
public:
/* class CachedShaderSetting<float, 16ul> <ancestor>; */ /* 0 80 */
/* XXX last struct has 6 bytes of padding */
void CachedVertexShaderSetting(class CachedVertexShaderSetting<float, 16ul> *, const char *);
/* size: 80, cachelines: 2, members: 1 */
/* paddings: 1, sum paddings: 6 */
/* last cacheline: 16 bytes */
/* BRAIN FART ALERT! 80 != 0 + 0(holes), diff = 80 */
};
class ShaderCallback : public IShaderConstantSetCallBack {
public:
/* class IShaderConstantSetCallBack <ancestor>; */ /* 0 32 */
/* XXX last struct has 24 bytes of padding */
class vector<IShaderConstantSetter*, std::allocator<IShaderConstantSetter*> > m_setters; /* 8 24 */
void ShaderCallback(class ShaderCallback *, int, const void * *, const class ShaderCallback &);
void ShaderCallback(class ShaderCallback *, int, const void * *, const class vector<IShaderConstantSetterFactory*, std::allocator<IShaderConstantSetterFactory*> > &);
virtual void ~ShaderCallback(class ShaderCallback *, int, const void * *);
virtual void OnSetConstants(class ShaderCallback *, class IMaterialRendererServices *, s32);
/* vtable has 1 entries: {
[1] = OnSetConstants((null)),
} */
/* size: 56, cachelines: 1, members: 2 */
/* padding: 24 */
/* paddings: 1, sum paddings: 24 */
/* last cacheline: 56 bytes */
/* BRAIN FART ALERT! 56 != 24 + 0(holes), diff = 32 */
};
class ShaderSource : public IWritableShaderSource {
public:
/* class IWritableShaderSource <ancestor>; */ /* 0 8 */
threadid_t m_main_thread; /* 8 8 */
class IrrlichtDevice * m_device; /* 16 8 */
class SourceShaderCache m_sourcecache; /* 24 56 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
class vector<ShaderInfo, std::allocator<ShaderInfo> > m_shaderinfo_cache; /* 80 24 */
Mutex m_shaderinfo_cache_mutex; /* 104 40 */
/* --- cacheline 2 boundary (128 bytes) was 16 bytes ago --- */
class RequestQueue<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned char, unsigned char> m_get_shader_queue; /* 144 152 */
/* --- cacheline 4 boundary (256 bytes) was 40 bytes ago --- */
class vector<IShaderConstantSetterFactory*, std::allocator<IShaderConstantSetterFactory*> > m_setter_factories; /* 296 24 */
/* --- cacheline 5 boundary (320 bytes) --- */
class vector<ShaderCallback*, std::allocator<ShaderCallback*> > m_callbacks; /* 320 24 */
void ShaderSource(class ShaderSource *, const class ShaderSource &);
void ShaderSource(class ShaderSource *, class IrrlichtDevice *);
virtual void ~ShaderSource(class ShaderSource *, int);
virtual u32 getShaderIdDirect(class ShaderSource *, const string &, u8, u8);
virtual u32 getShader(class ShaderSource *, const string &, u8, u8);
virtual class ShaderInfo getShaderInfo(class ShaderSource *, u32);
virtual void processQueue(class ShaderSource *);
virtual void insertSourceShader(class ShaderSource *, const string &, const string &, const string &);
virtual void rebuildShaders(class ShaderSource *);
virtual void addShaderConstantSetterFactory(class ShaderSource *, class IShaderConstantSetterFactory *);
/* vtable has 7 entries: {
[2] = getShaderIdDirect((null)),
[4] = getShader((null)),
[3] = getShaderInfo((null)),
[5] = processQueue((null)),
[6] = insertSourceShader((null)),
[7] = rebuildShaders((null)),
[8] = addShaderConstantSetterFactory((null)),
} */
/* size: 344, cachelines: 6, members: 9 */
/* last cacheline: 24 bytes */
/* BRAIN FART ALERT! 344 != 336 + 0(holes), diff = 8 */
};
class MainShaderConstantSetterFactory : public IShaderConstantSetterFactory {
public:
/* class IShaderConstantSetterFactory <ancestor>; */ /* 0 8 */
void MainShaderConstantSetterFactory(class MainShaderConstantSetterFactory *, );
void MainShaderConstantSetterFactory(class MainShaderConstantSetterFactory *, const class MainShaderConstantSetterFactory &);
void MainShaderConstantSetterFactory(class MainShaderConstantSetterFactory *);
virtual class IShaderConstantSetter * create(class MainShaderConstantSetterFactory *);
virtual void ~MainShaderConstantSetterFactory(class MainShaderConstantSetterFactory *, int);
/* vtable has 1 entries: {
[2] = create((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
/* BRAIN FART ALERT! 8 != 0 + 0(holes), diff = 8 */
};
class MainShaderConstantSetter : public IShaderConstantSetter {
public:
/* class IShaderConstantSetter <ancestor>; */ /* 0 8 */
class CachedVertexShaderSetting<float, 16ul> m_world_view_proj; /* 8 80 */
/* --- cacheline 1 boundary (64 bytes) was 24 bytes ago --- */
class CachedVertexShaderSetting<float, 16ul> m_world; /* 88 80 */
void MainShaderConstantSetter(class MainShaderConstantSetter *, const class MainShaderConstantSetter &);
void MainShaderConstantSetter(class MainShaderConstantSetter *);
virtual void ~MainShaderConstantSetter(class MainShaderConstantSetter *, int);
virtual void onSetConstants(class MainShaderConstantSetter *, class IMaterialRendererServices *, bool);
/* vtable has 1 entries: {
[2] = onSetConstants((null)),
} */
/* size: 168, cachelines: 3, members: 3 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 168 != 160 + 0(holes), diff = 8 */
};
class Sky : public ISceneNode {
public:
/* class ISceneNode <ancestor>; */ /* 0 264 */
/* XXX last struct has 26 bytes of padding */
/* --- cacheline 3 boundary (192 bytes) was 48 bytes ago --- */
aabb3f m_box; /* 240 24 */
/* --- cacheline 4 boundary (256 bytes) was 8 bytes ago --- */
class SMaterial m_materials[5]; /* 264 880 */
/* --- cacheline 17 boundary (1088 bytes) was 56 bytes ago --- */
bool m_visible; /* 1144 1 */
/* XXX 3 bytes hole, try to pack */
class SColor m_fallback_bg_color; /* 1148 4 */
/* --- cacheline 18 boundary (1152 bytes) --- */
bool m_first_update; /* 1152 1 */
/* XXX 3 bytes hole, try to pack */
float m_time_of_day; /* 1156 4 */
float m_time_brightness; /* 1160 4 */
bool m_sunlight_seen; /* 1164 1 */
/* XXX 3 bytes hole, try to pack */
float m_brightness; /* 1168 4 */
float m_cloud_brightness; /* 1172 4 */
bool m_clouds_visible; /* 1176 1 */
bool m_directional_colored_fog; /* 1177 1 */
/* XXX 2 bytes hole, try to pack */
class SColorf m_bgcolor_bright_f; /* 1180 16 */
class SColorf m_skycolor_bright_f; /* 1196 16 */
class SColorf m_cloudcolor_bright_f; /* 1212 16 */
/* --- cacheline 19 boundary (1216 bytes) was 12 bytes ago --- */
class SColor m_bgcolor; /* 1228 4 */
class SColor m_skycolor; /* 1232 4 */
class SColorf m_cloudcolor_f; /* 1236 16 */
v3f m_stars[200]; /* 1252 2400 */
/* --- cacheline 57 boundary (3648 bytes) was 4 bytes ago --- */
struct S3DVertex m_star_vertices[800]; /* 3652 28800 */
/* XXX 4 bytes hole, try to pack */
/* --- cacheline 507 boundary (32448 bytes) was 8 bytes ago --- */
class ITexture * m_sun_texture; /* 32456 8 */
class ITexture * m_moon_texture; /* 32464 8 */
class ITexture * m_sun_tonemap; /* 32472 8 */
class ITexture * m_moon_tonemap; /* 32480 8 */
void Sky(class Sky *, int, const void * *, );
void Sky(class Sky *, int, const void * *, const class Sky &);
void Sky(class Sky *, int, const void * *, class ISceneNode *, class ISceneManager *, s32, class ITextureSource *);
virtual void OnRegisterSceneNode(class Sky *);
virtual void render(class Sky *);
virtual const aabb3f & getBoundingBox(const class Sky *);
virtual class SMaterial & getMaterial(class Sky *, u32);
virtual u32 getMaterialCount(const class Sky *);
void update(class Sky *, float, float, float, bool, enum CameraMode, float, float);
float getBrightness(class Sky *);
const class SColor & getBgColor(const class Sky *);
const class SColor & getSkyColor(const class Sky *);
bool getCloudsVisible(class Sky *);
const class SColorf & getCloudColor(class Sky *);
virtual void setVisible(class Sky *, bool);
void setFallbackBgColor(class Sky *, const class SColor &);
float m_horizon_blend(class Sky *);
class SColor m_mix_scolor(class Sky *, class SColor, class SColor, f32);
class SColorf m_mix_scolorf(class Sky *, class SColorf, class SColorf, f32);
virtual void ~Sky(class Sky *, int, const void * *);
/* vtable has 6 entries: {
[4] = OnRegisterSceneNode((null)),
[6] = render((null)),
[10] = getBoundingBox((null)),
[26] = getMaterial((null)),
[27] = getMaterialCount((null)),
[16] = setVisible((null)),
} */
/* size: 32512, cachelines: 508, members: 25 */
/* sum members: 32233, holes: 5, sum holes: 15 */
/* padding: 24 */
/* paddings: 1, sum paddings: 26 */
/* BRAIN FART ALERT! 32512 != 32233 + 15(holes), diff = 264 */
};
struct sockaddr {
sa_family_t sa_family; /* 0 2 */
char sa_data[14]; /* 2 14 */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
};
struct addrinfo {
int ai_flags; /* 0 4 */
int ai_family; /* 4 4 */
int ai_socktype; /* 8 4 */
int ai_protocol; /* 12 4 */
socklen_t ai_addrlen; /* 16 4 */
/* XXX 4 bytes hole, try to pack */
class sockaddr * ai_addr; /* 24 8 */
char * ai_canonname; /* 32 8 */
class addrinfo * ai_next; /* 40 8 */
/* size: 48, cachelines: 1, members: 8 */
/* sum members: 44, holes: 1, sum holes: 4 */
/* last cacheline: 48 bytes */
};
class DummySoundManager : public ISoundManager {
public:
/* class ISoundManager <ancestor>; */ /* 0 8 */
void DummySoundManager(class DummySoundManager *, );
void DummySoundManager(class DummySoundManager *, const class DummySoundManager &);
void DummySoundManager(class DummySoundManager *);
virtual bool loadSoundFile(class DummySoundManager *, const string &, const string &);
virtual bool loadSoundData(class DummySoundManager *, const string &, const string &);
virtual void updateListener(class DummySoundManager *, v3f, v3f, v3f, v3f);
virtual void setListenerGain(class DummySoundManager *, float);
virtual int playSound(class DummySoundManager *, const string &, bool, float);
virtual int playSoundAt(class DummySoundManager *, const string &, bool, float, v3f);
virtual void stopSound(class DummySoundManager *, int);
virtual bool soundExists(class DummySoundManager *, int);
virtual void updateSoundPosition(class DummySoundManager *, int, v3f);
virtual void ~DummySoundManager(class DummySoundManager *, int);
/* vtable has 9 entries: {
[2] = loadSoundFile((null)),
[3] = loadSoundData((null)),
[4] = updateListener((null)),
[5] = setListenerGain((null)),
[6] = playSound((null)),
[7] = playSoundAt((null)),
[8] = stopSound((null)),
[9] = soundExists((null)),
[10] = updateSoundPosition((null)),
} */
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
/* BRAIN FART ALERT! 8 != 0 + 0(holes), diff = 8 */
};
struct vorbis_info {
int version; /* 0 4 */
int channels; /* 4 4 */
long int rate; /* 8 8 */
long int bitrate_upper; /* 16 8 */
long int bitrate_nominal; /* 24 8 */
long int bitrate_lower; /* 32 8 */
long int bitrate_window; /* 40 8 */
void * codec_setup; /* 48 8 */
/* size: 56, cachelines: 1, members: 8 */
/* last cacheline: 56 bytes */
};
struct vorbis_dsp_state {
int analysisp; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
vorbis_info * vi; /* 8 8 */
float * * pcm; /* 16 8 */
float * * pcmret; /* 24 8 */
int pcm_storage; /* 32 4 */
int pcm_current; /* 36 4 */
int pcm_returned; /* 40 4 */
int preextrapolate; /* 44 4 */
int eofflag; /* 48 4 */
/* XXX 4 bytes hole, try to pack */
long int lW; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
long int W; /* 64 8 */
long int nW; /* 72 8 */
long int centerW; /* 80 8 */
ogg_int64_t granulepos; /* 88 8 */
ogg_int64_t sequence; /* 96 8 */
ogg_int64_t glue_bits; /* 104 8 */
ogg_int64_t time_bits; /* 112 8 */
ogg_int64_t floor_bits; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
ogg_int64_t res_bits; /* 128 8 */
void * backend_state; /* 136 8 */
/* size: 144, cachelines: 3, members: 20 */
/* sum members: 136, holes: 2, sum holes: 8 */
/* last cacheline: 16 bytes */
};
struct vorbis_block {
float * * pcm; /* 0 8 */
oggpack_buffer opb; /* 8 40 */
long int lW; /* 48 8 */
long int W; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
long int nW; /* 64 8 */
int pcmend; /* 72 4 */
int mode; /* 76 4 */
int eofflag; /* 80 4 */
/* XXX 4 bytes hole, try to pack */
ogg_int64_t granulepos; /* 88 8 */
ogg_int64_t sequence; /* 96 8 */
vorbis_dsp_state * vd; /* 104 8 */
void * localstore; /* 112 8 */
long int localtop; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
long int localalloc; /* 128 8 */
long int totaluse; /* 136 8 */
class alloc_chain * reap; /* 144 8 */
long int glue_bits; /* 152 8 */
long int time_bits; /* 160 8 */
long int floor_bits; /* 168 8 */
long int res_bits; /* 176 8 */
void * internal; /* 184 8 */
/* size: 192, cachelines: 3, members: 21 */
/* sum members: 188, holes: 1, sum holes: 4 */
};
struct alloc_chain {
void * ptr; /* 0 8 */
class alloc_chain * next; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* last cacheline: 16 bytes */
};
struct vorbis_comment {
char * * user_comments; /* 0 8 */
int * comment_lengths; /* 8 8 */
int comments; /* 16 4 */
/* XXX 4 bytes hole, try to pack */
char * vendor; /* 24 8 */
/* size: 32, cachelines: 1, members: 4 */
/* sum members: 28, holes: 1, sum holes: 4 */
/* last cacheline: 32 bytes */
};
struct OggVorbis_File {
void * datasource; /* 0 8 */
int seekable; /* 8 4 */
/* XXX 4 bytes hole, try to pack */
ogg_int64_t offset; /* 16 8 */
ogg_int64_t end; /* 24 8 */
ogg_sync_state oy; /* 32 32 */
/* --- cacheline 1 boundary (64 bytes) --- */
int links; /* 64 4 */
/* XXX 4 bytes hole, try to pack */
ogg_int64_t * offsets; /* 72 8 */
ogg_int64_t * dataoffsets; /* 80 8 */
long int * serialnos; /* 88 8 */
ogg_int64_t * pcmlengths; /* 96 8 */
vorbis_info * vi; /* 104 8 */
vorbis_comment * vc; /* 112 8 */
ogg_int64_t pcm_offset; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
int ready_state; /* 128 4 */
/* XXX 4 bytes hole, try to pack */
long int current_serialno; /* 136 8 */
int current_link; /* 144 4 */
/* XXX 4 bytes hole, try to pack */
double bittrack; /* 152 8 */
double samptrack; /* 160 8 */
ogg_stream_state os; /* 168 408 */
/* --- cacheline 9 boundary (576 bytes) --- */
vorbis_dsp_state vd; /* 576 144 */
/* --- cacheline 11 boundary (704 bytes) was 16 bytes ago --- */
vorbis_block vb; /* 720 192 */
/* --- cacheline 14 boundary (896 bytes) was 16 bytes ago --- */
ov_callbacks callbacks; /* 912 32 */
/* size: 944, cachelines: 15, members: 22 */
/* sum members: 928, holes: 4, sum holes: 16 */
/* last cacheline: 48 bytes */
};
struct SoundBuffer {
ALenum format; /* 0 4 */
ALsizei freq; /* 4 4 */
ALuint buffer_id; /* 8 4 */
/* XXX 4 bytes hole, try to pack */
class vector<char, std::allocator<char> > buffer; /* 16 24 */
void ~SoundBuffer(class SoundBuffer *, int);
void SoundBuffer(class SoundBuffer *);
/* size: 40, cachelines: 1, members: 4 */
/* sum members: 36, holes: 1, sum holes: 4 */
/* last cacheline: 40 bytes */
};
struct BufferSource {
const char * buf; /* 0 8 */
size_t cur_offset; /* 8 8 */
size_t len; /* 16 8 */
/* size: 24, cachelines: 1, members: 3 */
/* last cacheline: 24 bytes */
};
struct PlayingSound {
ALuint source_id; /* 0 4 */
bool loop; /* 4 1 */
/* size: 8, cachelines: 1, members: 2 */
/* padding: 3 */
/* last cacheline: 8 bytes */
};
class OpenALSoundManager : public ISoundManager {
public:
/* class ISoundManager <ancestor>; */ /* 0 8 */
class OnDemandSoundFetcher * m_fetcher; /* 8 8 */
ALCdevice * m_device; /* 16 8 */
ALCcontext * m_context; /* 24 8 */
int m_next_id; /* 32 4 */
/* XXX 4 bytes hole, try to pack */
class unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<SoundBuffer*, std::allocator<SoundBuffer*> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<SoundBuffer*, std::allocator<SoundBuffer*> > > > > m_buffers; /* 40 56 */
/* --- cacheline 1 boundary (64 bytes) was 32 bytes ago --- */
class unordered_map<int, PlayingSound*, std::hash<int>, std::equal_to<int>, std::allocator<std::pair<int const, PlayingSound*> > > m_sounds_playing; /* 96 56 */
/* --- cacheline 2 boundary (128 bytes) was 24 bytes ago --- */
v3f m_listener_pos; /* 152 12 */
bool m_is_initialized; /* 164 1 */
void OpenALSoundManager(class OpenALSoundManager *, const class OpenALSoundManager &);
void OpenALSoundManager(class OpenALSoundManager *, class OnDemandSoundFetcher *);
virtual void ~OpenALSoundManager(class OpenALSoundManager *, int);
void addBuffer(class OpenALSoundManager *, const string &, class SoundBuffer *);
class SoundBuffer * getBuffer(class OpenALSoundManager *, const string &);
class PlayingSound * createPlayingSound(class OpenALSoundManager *, class SoundBuffer *, bool, float);
class PlayingSound * createPlayingSoundAt(class OpenALSoundManager *, class SoundBuffer *, bool, float, v3f);
int playSoundRaw(class OpenALSoundManager *, class SoundBuffer *, bool, float);
int playSoundRawAt(class OpenALSoundManager *, class SoundBuffer *, bool, float, v3f);
void deleteSound(class OpenALSoundManager *, int);
class SoundBuffer * getFetchBuffer(class OpenALSoundManager *, const string &);
void maintain(class OpenALSoundManager *);
virtual bool loadSoundFile(class OpenALSoundManager *, const string &, const string &);
virtual bool loadSoundData(class OpenALSoundManager *, const string &, const string &);
virtual void updateListener(class OpenALSoundManager *, v3f, v3f, v3f, v3f);
virtual void setListenerGain(class OpenALSoundManager *, float);
virtual int playSound(class OpenALSoundManager *, const string &, bool, float);
virtual int playSoundAt(class OpenALSoundManager *, const string &, bool, float, v3f);
virtual void stopSound(class OpenALSoundManager *, int);
virtual bool soundExists(class OpenALSoundManager *, int);
virtual void updateSoundPosition(class OpenALSoundManager *, int, v3f);
/* vtable has 9 entries: {
[2] = loadSoundFile((null)),
[3] = loadSoundData((null)),
[4] = updateListener((null)),
[5] = setListenerGain((null)),
[6] = playSound((null)),
[7] = playSoundAt((null)),
[8] = stopSound((null)),
[9] = soundExists((null)),
[10] = updateSoundPosition((null)),
} */
/* size: 168, cachelines: 3, members: 9 */
/* sum members: 153, holes: 1, sum holes: 4 */
/* padding: 3 */
/* last cacheline: 40 bytes */
/* BRAIN FART ALERT! 168 != 153 + 4(holes), diff = 11 */
};
struct GameFindPath {
string path; /* 0 32 */
bool user_specific; /* 32 1 */
void GameFindPath(class GameFindPath *, const string &, bool);
void GameFindPath(class GameFindPath *, );
void ~GameFindPath(class GameFindPath *, int);
/* size: 40, cachelines: 1, members: 2 */
/* padding: 7 */
/* last cacheline: 40 bytes */
};
class MutexedQueue<std::pair<LogLevel, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > {
protected:
class deque<std::pair<LogLevel, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<LogLevel, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > m_queue; /* 0 80 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
Mutex m_mutex; /* 80 40 */
class Semaphore m_signal; /* 120 32 */
public:
void MutexedQueue(class MutexedQueue<std::pair<LogLevel, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > *);
bool empty(const class MutexedQueue<std::pair<LogLevel, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > );
void push_back(class MutexedQueue<std::pair<LogLevel, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > *, class pair<LogLevel, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >);
class pair<LogLevel, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > pop_frontNoEx(class MutexedQueue<std::pair<LogLevel, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > *, u32);
class pair<LogLevel, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > pop_front(class MutexedQueue<std::pair<LogLevel, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > *, u32);
class pair<LogLevel, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > pop_frontNoEx(class MutexedQueue<std::pair<LogLevel, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > *);
class pair<LogLevel, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > pop_back(class MutexedQueue<std::pair<LogLevel, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > *, u32);
class pair<LogLevel, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > pop_backNoEx(class MutexedQueue<std::pair<LogLevel, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > *, u32);
class pair<LogLevel, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > pop_backNoEx(class MutexedQueue<std::pair<LogLevel, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > *);
protected:
Mutex & getMutex(class MutexedQueue<std::pair<LogLevel, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > *);
class deque<std::pair<LogLevel, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocat getQueue(class MutexedQueue<std::pair<LogLevel, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > *);
public:
void ~MutexedQueue(class MutexedQueue<std::pair<LogLevel, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > *, int);
/* size: 152, cachelines: 3, members: 3 */
/* last cacheline: 24 bytes */
};
class TerminalChatConsole : public Thread {
struct CursesInitHelper {
class TerminalChatConsole * cons; /* 0 8 */
void CursesInitHelper(class CursesInitHelper *, class TerminalChatConsole *);
void ~CursesInitHelper(class CursesInitHelper *, int);
/* size: 8, cachelines: 1, members: 1 */
/* last cacheline: 8 bytes */
};
public:
/* class Thread <ancestor>; */ /* 0 0 */
/* XXX 144 bytes hole, try to pack */
/* --- cacheline 2 boundary (128 bytes) was 16 bytes ago --- */
int m_log_level; /* 144 4 */
/* XXX 4 bytes hole, try to pack */
string m_nick; /* 152 32 */
u8 m_utf8_bytes_to_wait; /* 184 1 */
/* XXX 7 bytes hole, try to pack */
/* --- cacheline 3 boundary (192 bytes) --- */
string m_pending_utf8_bytes; /* 192 32 */
class list<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > m_nicks; /* 224 24 */
int m_cols; /* 248 4 */
int m_rows; /* 252 4 */
/* --- cacheline 4 boundary (256 bytes) --- */
bool m_can_draw_text; /* 256 1 */
/* XXX 7 bytes hole, try to pack */
bool * m_kill_requested; /* 264 8 */
class ChatBackend m_chat_backend; /* 272 328 */
/* --- cacheline 9 boundary (576 bytes) was 24 bytes ago --- */
class ChatInterface * m_chat_interface; /* 600 8 */
class TermLogOutput m_log_output; /* 608 160 */
/* --- cacheline 12 boundary (768 bytes) --- */
bool m_esc_mode; /* 768 1 */
/* XXX 7 bytes hole, try to pack */
u64 m_game_time; /* 776 8 */
u32 m_time_of_day; /* 784 4 */
void TerminalChatConsole(class TerminalChatConsole *, );
void TerminalChatConsole(class TerminalChatConsole *, const class TerminalChatConsole &);
void TerminalChatConsole(class TerminalChatConsole *);
void setup(class TerminalChatConsole *, class ChatInterface *, bool *, const string &);
virtual void * run(class TerminalChatConsole *);
void clearKillStatus(class TerminalChatConsole *);
void stopAndWaitforThread(class TerminalChatConsole *);
void initOfCurses(class TerminalChatConsole *);
void deInitOfCurses(class TerminalChatConsole *);
void draw_text(class TerminalChatConsole *);
void typeChatMessage(class TerminalChatConsole *, const wstring &);
void handleInput(class TerminalChatConsole *, int, bool &);
void step(class TerminalChatConsole *, int);
virtual void ~TerminalChatConsole(class TerminalChatConsole *, int);
/* vtable has 1 entries: {
[2] = run((null)),
} */
/* size: 792, cachelines: 13, members: 16 */
/* sum members: 619, holes: 5, sum holes: 169 */
/* padding: 4 */
/* last cacheline: 24 bytes */
};
struct _win_st {
struct pdat {
short int _pad_y; /* 0 2 */
short int _pad_x; /* 2 2 */
short int _pad_top; /* 4 2 */
short int _pad_left; /* 6 2 */
short int _pad_bottom; /* 8 2 */
short int _pad_right; /* 10 2 */
/* size: 12, cachelines: 1, members: 6 */
/* last cacheline: 12 bytes */
};
short int _cury; /* 0 2 */
short int _curx; /* 2 2 */
short int _maxy; /* 4 2 */
short int _maxx; /* 6 2 */
short int _begy; /* 8 2 */
short int _begx; /* 10 2 */
short int _flags; /* 12 2 */
/* XXX 2 bytes hole, try to pack */
attr_t _attrs; /* 16 4 */
chtype _bkgd; /* 20 4 */
bool _notimeout; /* 24 1 */
bool _clear; /* 25 1 */
bool _leaveok; /* 26 1 */
bool _scroll; /* 27 1 */
bool _idlok; /* 28 1 */
bool _idcok; /* 29 1 */
bool _immed; /* 30 1 */
bool _sync; /* 31 1 */
bool _use_keypad; /* 32 1 */
/* XXX 3 bytes hole, try to pack */
int _delay; /* 36 4 */
class ldat * _line; /* 40 8 */
short int _regtop; /* 48 2 */
short int _regbottom; /* 50 2 */
int _parx; /* 52 4 */
int _pary; /* 56 4 */
/* XXX 4 bytes hole, try to pack */
/* --- cacheline 1 boundary (64 bytes) --- */
WINDOW * _parent; /* 64 8 */
struct pdat _pad; /* 72 12 */
short int _yoffset; /* 84 2 */
/* XXX 2 bytes hole, try to pack */
cchar_t _bkgrnd; /* 88 28 */
int _color; /* 116 4 */
/* size: 120, cachelines: 2, members: 29 */
/* sum members: 109, holes: 4, sum holes: 11 */
/* last cacheline: 56 bytes */
};
class TermLogOutput : public ILogOutput {
public:
/* class ILogOutput <ancestor>; */ /* 0 8 */
class MutexedQueue<std::pair<LogLevel, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > queue; /* 8 152 */
void TermLogOutput(class TermLogOutput *, );
void TermLogOutput(class TermLogOutput *, const class TermLogOutput &);
void TermLogOutput(class TermLogOutput *);
void ~TermLogOutput(class TermLogOutput *, int);
virtual void logRaw(class TermLogOutput *, enum LogLevel, const string &);
virtual void log(class TermLogOutput *, enum LogLevel, const string &, const string &, const string &, const string &);
/* vtable has 2 entries: {
[0] = logRaw((null)),
[1] = log((null)),
} */
/* size: 160, cachelines: 3, members: 2 */
/* last cacheline: 32 bytes */
/* BRAIN FART ALERT! 160 != 152 + 0(holes), diff = 8 */
};
class VoxelManipulator {
public:
int ()(void) * * _vptr.VoxelManipulator; /* 0 8 */
class VoxelArea m_area; /* 8 12 */
/* XXX 4 bytes hole, try to pack */
class MapNode * m_data; /* 24 8 */
u8 * m_flags; /* 32 8 */
/* Bitfield combined with previous fields */
static class MapNodeconst ContentIgnoreNode /* 0 0 */
void VoxelManipulator(class VoxelManipulator *, const class VoxelManipulator &);
void VoxelManipulator(class VoxelManipulator *);
virtual void ~VoxelManipulator(class VoxelManipulator *, int);
class MapNode getNode(class VoxelManipulator *, v3s16);
class MapNode getNodeNoEx(class VoxelManipulator *, v3s16);
class MapNode getNodeNoExNoEmerge(class VoxelManipulator *, v3s16);
class MapNode & getNodeRefUnsafe(class VoxelManipulator *, const v3s16 &);
const class MapNode & getNodeRefUnsafeCheckFlags(class VoxelManipulator *, const v3s16 &);
u8 & getFlagsRefUnsafe(class VoxelManipulator *, v3s16);
bool exists(class VoxelManipulator *, v3s16);
class MapNode & getNodeRef(class VoxelManipulator *, v3s16);
void setNode(class VoxelManipulator *, v3s16, const class MapNode &);
void setNodeNoRef(class VoxelManipulator *, v3s16, const class MapNode &);
bool setNodeNoEmerge(class VoxelManipulator *, v3s16, class MapNode);
bool setNodeNoEmerge(class VoxelManipulator *, s32, class MapNode);
virtual void clear(class VoxelManipulator *);
void print(class VoxelManipulator *, ostream &, class INodeDefManager *, enum VoxelPrintMode);
void addArea(class VoxelManipulator *, const class VoxelArea &);
void copyFrom(class VoxelManipulator *, class MapNode *, const class VoxelArea &, v3s16, v3s16, v3s16);
void copyTo(class VoxelManipulator *, class MapNode *, const class VoxelArea &, v3s16, v3s16, v3s16);
void clearFlag(class VoxelManipulator *, u8);
void unspreadLight(class VoxelManipulator *, enum LightBank, v3s16, u8, class set<irr::core::vector3d<short int>, std::less<irr::core::vector3d<short int> >, std::allocator<irr::core::vector3d<short , class INodeDefManager *);
void unspreadLight(class VoxelManipulator *, enum LightBank, class map<irr::core::vector3d<short int>, unsigned char, std::less<irr::core::vector3d<short int> >, std::allocator<std::pair<c, class set<irr::core::vector3d<short int>, std::less<irr::core::vector3d<short int> >, std::allocator<irr::core::vector3d<short , class INodeDefManager *);
void spreadLight(class VoxelManipulator *, enum LightBank, v3s16, class INodeDefManager *);
void spreadLight(class VoxelManipulator *, enum LightBank, class set<irr::core::vector3d<short int>, std::less<irr::core::vector3d<short int> >, std::allocator<irr::core::vector3d<short , class INodeDefManager *);
/* vtable has 1 entries: {
[2] = clear((null)),
} */
/* size: 40, cachelines: 1, members: 4, static members: 1 */
/* sum members: 36, holes: 1, sum holes: 4 */
/* last cacheline: 40 bytes */
};
class ExtrusionMeshCache : public IReferenceCounted {
public:
/* class IReferenceCounted <ancestor>; */ /* 0 24 */
/* XXX last struct has 4 bytes of padding */
class map<int, irr::scene::IMesh*, std::less<int>, std::allocator<std::pair<int const, irr::scene::IMesh*> > > m_extrusion_meshes; /* 24 48 */
/* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
class IMesh * m_cube; /* 72 8 */
void ExtrusionMeshCache(class ExtrusionMeshCache *, const class ExtrusionMeshCache &);
void ExtrusionMeshCache(class ExtrusionMeshCache *);
virtual void ~ExtrusionMeshCache(class ExtrusionMeshCache *, int);
class IMesh * create(class ExtrusionMeshCache *, class dimension2d<unsigned int>);
class IMesh * createCube(class ExtrusionMeshCache *);
/* size: 80, cachelines: 2, members: 3 */
/* paddings: 1, sum paddings: 4 */
/* last cacheline: 16 bytes */
/* BRAIN FART ALERT! 80 != 56 + 0(holes), diff = 24 */
};
class WieldMeshSceneNode : public ISceneNode {
public:
/* class ISceneNode <ancestor>; */ /* 0 264 */
/* XXX last struct has 26 bytes of padding */
/* --- cacheline 3 boundary (192 bytes) was 48 bytes ago --- */
class IMeshSceneNode * m_meshnode; /* 240 8 */
enum E_MATERIAL_TYPE m_material_type; /* 248 4 */
bool m_lighting; /* 252 1 */
bool m_enable_shaders; /* 253 1 */
bool m_anisotropic_filter; /* 254 1 */
bool m_bilinear_filter; /* 255 1 */
/* --- cacheline 4 boundary (256 bytes) --- */
bool m_trilinear_filter; /* 256 1 */
/* XXX 7 bytes hole, try to pack */
class vector<ItemPartColor, std::allocator<ItemPartColor> > m_colors; /* 264 24 */
class SColor m_base_color; /* 288 4 */
aabb3f m_bounding_box; /* 292 24 */
void WieldMeshSceneNode(class WieldMeshSceneNode *, int, const void * *, const class WieldMeshSceneNode &);
void WieldMeshSceneNode(class WieldMeshSceneNode *, int, const void * *, class ISceneNode *, class ISceneManager *, s32, bool);
virtual void ~WieldMeshSceneNode(class WieldMeshSceneNode *, int, const void * *);
void setCube(class WieldMeshSceneNode *, const class ContentFeatures &, v3f, class ITextureSource *);
void setExtruded(class WieldMeshSceneNode *, const string &, v3f, class ITextureSource *, u8);
void setItem(class WieldMeshSceneNode *, const class ItemStack &, class Client *);
void setColor(class WieldMeshSceneNode *, class SColor);
class IMesh * getMesh(class WieldMeshSceneNode *);
virtual void render(class WieldMeshSceneNode *);
virtual const aabb3f & getBoundingBox(const class WieldMeshSceneNode *);
void changeToMesh(class WieldMeshSceneNode *, class IMesh *);
/* vtable has 2 entries: {
[6] = render((null)),
[10] = getBoundingBox((null)),
} */
/* size: 344, cachelines: 6, members: 11 */
/* sum members: 69, holes: 1, sum holes: 7 */
/* padding: 28 */
/* paddings: 1, sum paddings: 26 */
/* last cacheline: 24 bytes */
/* BRAIN FART ALERT! 344 != 69 + 7(holes), diff = 268 */
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment