161 lines
4.6 KiB
C++
161 lines
4.6 KiB
C++
#ifndef CREATURE_H
|
|
#define CREATURE_H
|
|
|
|
#include "../IDA/types.h"
|
|
#include "../common/IntVector2.h"
|
|
#include "../common/LongVector3.h"
|
|
#include "../common/FloatVector3.h"
|
|
#include "../common/ByteRGBA.h"
|
|
#include "../msvc/vector.h"
|
|
#include "ItemStack.h"
|
|
|
|
namespace cube {
|
|
class Creature {
|
|
|
|
// cube::Creature::EntityData
|
|
class EntityData {
|
|
|
|
// cube::Creature::EntityData::Appearance
|
|
class Appearance {
|
|
public:
|
|
__int16 field_78;
|
|
ByteRGBA hair_color;
|
|
char padding_7E;
|
|
char padding_7F;
|
|
unsigned int flags2;
|
|
float graphics_scale;
|
|
float hitbox_scale;
|
|
float physics_scale;
|
|
__int16 head_model;
|
|
__int16 hair_model;
|
|
__int16 hands_model;
|
|
__int16 feet_model;
|
|
__int16 chest_model;
|
|
__int16 tail_model;
|
|
__int16 shoulder_model;
|
|
__int16 wings_model;
|
|
float head_scale;
|
|
float chest_scale;
|
|
float hands_scale;
|
|
float feet_scale;
|
|
float unknown_scale;
|
|
float weapon_scale;
|
|
float tail_scale;
|
|
float shoulder_scale;
|
|
float wing_scale;
|
|
float chest_rotation;
|
|
FloatVector3 hands_rotation;
|
|
float feet_rotation;
|
|
float wings_rotation;
|
|
float unknown_rotation;
|
|
FloatVector3 chest_position;
|
|
FloatVector3 head_position;
|
|
FloatVector3 hands_position;
|
|
FloatVector3 feet_position;
|
|
FloatVector3 unknown_position;
|
|
FloatVector3 wings_position;
|
|
};
|
|
|
|
|
|
public:
|
|
LongVector3 position;
|
|
float pitch;
|
|
float roll;
|
|
float yaw;
|
|
FloatVector3 velocity;
|
|
FloatVector3 acceleration;
|
|
FloatVector3 retreat;
|
|
float head_rotation;
|
|
unsigned int flags;
|
|
char hostility_type;
|
|
char field_51;
|
|
char field_52;
|
|
char field_53;
|
|
int race;
|
|
BYTE current_ability;
|
|
char field_59;
|
|
char field_5A;
|
|
char field_5B;
|
|
float time_since_ability;
|
|
int hit_combo;
|
|
float time_since_hit;
|
|
cube::Creature::EntityData::Appearance appearance;
|
|
__int16 binary_toggles;
|
|
char field_11A;
|
|
char field_11B;
|
|
float roll_time;
|
|
float stun_time;
|
|
float unknown_time;
|
|
float slowed_time;
|
|
float sprint_time;
|
|
int field_130;
|
|
unsigned int level;
|
|
int XP;
|
|
unsigned __int8 classType;
|
|
char specialization;
|
|
char char_13E;
|
|
char char_13F;
|
|
IntVector2 current_region;
|
|
char charge;
|
|
_BYTE gap149[27];
|
|
FloatVector3 attack_rotation;
|
|
float HP;
|
|
float block_power;
|
|
float MP;
|
|
float stealth;
|
|
float float_180;
|
|
float speed;
|
|
float light_radius;
|
|
_BYTE gap18C[60];
|
|
cube::Item last_special_item;
|
|
cube::Item head;
|
|
cube::Item amulet;
|
|
cube::Item chest_armor;
|
|
cube::Item feet_armor;
|
|
cube::Item hands_armor;
|
|
cube::Item shoulder_armor;
|
|
cube::Item left_weapon;
|
|
cube::Item right_weapon;
|
|
cube::Item left_ring;
|
|
cube::Item right_ring;
|
|
cube::Item pet;
|
|
char name[16];
|
|
__int64 field_958;
|
|
char field_960;
|
|
char field_961;
|
|
char field_962;
|
|
char field_963;
|
|
int field_964;
|
|
__int64 field_968;
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
void *vtable;
|
|
__int64 id;
|
|
cube::Creature::EntityData entity_data;
|
|
_BYTE gap968[112];
|
|
msvc::vector<msvc::vector<cube::ItemStack>> inventory_tabs;
|
|
_BYTE gapA08[164];
|
|
int gold;
|
|
_BYTE gapAB0[172];
|
|
int climbing_speed;
|
|
int swimming_speed;
|
|
int diving_skill;
|
|
int riding_speed;
|
|
int hang_gliding_speed;
|
|
int sailing_speed;
|
|
int lamp_diameter;
|
|
_BYTE gapB78[2687];
|
|
char end;
|
|
|
|
static cube::Creature* Create(__int64 id);
|
|
cube::Creature* ctor(__int64* id);
|
|
};
|
|
}
|
|
|
|
#endif // CREATURE_H
|