False.Genesis 605fbd2df5 * added the remaining base classes Object, Corpse, DynamicObject & WorldObject; added updating those classes
* there is still a problem/exception with UPDATETYPE_OUT_OF_RANGE_OBJECTS, need to fix this later.
* 100% working objects system, now need to add functions to the objects. (made a start with Player/Unit::GetGender())
2007-02-25 22:04:15 +00:00

208 lines
5.9 KiB
C++

#ifndef _PLAYER_H
#define _PLAYER_H
#include <vector>
#include "WorldPacket.h"
#include "SysDefs.h"
#include "Unit.h"
#define PLAYER_SLOT_START 0
#define EQUIPMENT_SLOT_START 0
#define EQUIPMENT_SLOT_HEAD 0
#define EQUIPMENT_SLOT_NECK 1
#define EQUIPMENT_SLOT_SHOULDERS 2
#define EQUIPMENT_SLOT_BODY 3
#define EQUIPMENT_SLOT_CHEST 4
#define EQUIPMENT_SLOT_WAIST 5
#define EQUIPMENT_SLOT_LEGS 6
#define EQUIPMENT_SLOT_FEET 7
#define EQUIPMENT_SLOT_WRISTS 8
#define EQUIPMENT_SLOT_HANDS 9
#define EQUIPMENT_SLOT_FINGER1 10
#define EQUIPMENT_SLOT_FINGER2 11
#define EQUIPMENT_SLOT_TRINKET1 12
#define EQUIPMENT_SLOT_TRINKET2 13
#define EQUIPMENT_SLOT_BACK 14
#define EQUIPMENT_SLOT_MAINHAND 15
#define EQUIPMENT_SLOT_OFFHAND 16
#define EQUIPMENT_SLOT_RANGED 17
#define EQUIPMENT_SLOT_TABARD 18
#define EQUIPMENT_SLOT_END 19
#define INVENTORY_SLOT_BAG_0 255
#define INVENTORY_SLOT_BAG_START 19
#define INVENTORY_SLOT_BAG_1 19
#define INVENTORY_SLOT_BAG_2 20
#define INVENTORY_SLOT_BAG_3 21
#define INVENTORY_SLOT_BAG_4 22
#define INVENTORY_SLOT_BAG_END 23
#define INVENTORY_SLOT_ITEM_START 23
#define INVENTORY_SLOT_ITEM_1 23
#define INVENTORY_SLOT_ITEM_2 24
#define INVENTORY_SLOT_ITEM_3 25
#define INVENTORY_SLOT_ITEM_4 26
#define INVENTORY_SLOT_ITEM_5 27
#define INVENTORY_SLOT_ITEM_6 28
#define INVENTORY_SLOT_ITEM_7 29
#define INVENTORY_SLOT_ITEM_8 30
#define INVENTORY_SLOT_ITEM_9 31
#define INVENTORY_SLOT_ITEM_10 32
#define INVENTORY_SLOT_ITEM_11 33
#define INVENTORY_SLOT_ITEM_12 34
#define INVENTORY_SLOT_ITEM_13 35
#define INVENTORY_SLOT_ITEM_14 36
#define INVENTORY_SLOT_ITEM_15 37
#define INVENTORY_SLOT_ITEM_16 38
#define INVENTORY_SLOT_ITEM_END 39
#define BANK_SLOT_ITEM_START 39
#define BANK_SLOT_ITEM_1 39
#define BANK_SLOT_ITEM_2 40
#define BANK_SLOT_ITEM_3 41
#define BANK_SLOT_ITEM_4 42
#define BANK_SLOT_ITEM_5 43
#define BANK_SLOT_ITEM_6 44
#define BANK_SLOT_ITEM_7 45
#define BANK_SLOT_ITEM_8 46
#define BANK_SLOT_ITEM_9 47
#define BANK_SLOT_ITEM_10 48
#define BANK_SLOT_ITEM_11 49
#define BANK_SLOT_ITEM_12 50
#define BANK_SLOT_ITEM_13 51
#define BANK_SLOT_ITEM_14 52
#define BANK_SLOT_ITEM_15 53
#define BANK_SLOT_ITEM_16 54
#define BANK_SLOT_ITEM_17 55
#define BANK_SLOT_ITEM_18 56
#define BANK_SLOT_ITEM_19 57
#define BANK_SLOT_ITEM_20 58
#define BANK_SLOT_ITEM_21 59
#define BANK_SLOT_ITEM_22 60
#define BANK_SLOT_ITEM_23 61
#define BANK_SLOT_ITEM_24 62
#define BANK_SLOT_ITEM_END 63
#define BANK_SLOT_BAG_START 63
#define BANK_SLOT_BAG_1 63
#define BANK_SLOT_BAG_2 64
#define BANK_SLOT_BAG_3 65
#define BANK_SLOT_BAG_4 66
#define BANK_SLOT_BAG_5 67
#define BANK_SLOT_BAG_6 68
#define BANK_SLOT_BAG_END 69
// strored in m_buybackitems
#define BUYBACK_SLOT_START 69
#define BUYBACK_SLOT_1 69
#define BUYBACK_SLOT_2 70
#define BUYBACK_SLOT_3 71
#define BUYBACK_SLOT_4 72
#define BUYBACK_SLOT_5 73
#define BUYBACK_SLOT_6 74
#define BUYBACK_SLOT_7 75
#define BUYBACK_SLOT_8 76
#define BUYBACK_SLOT_9 77
#define BUYBACK_SLOT_10 78
#define BUYBACK_SLOT_11 79
#define BUYBACK_SLOT_12 80
#define BUYBACK_SLOT_END 81
#define KEYRING_SLOT_START 81
#define KEYRING_SLOT_END 97
// last+1 slot for item stored (in any way in player m_items data)
#define PLAYER_SLOT_END 97
#define PLAYER_SLOTS_COUNT (PLAYER_SLOT_END - PLAYER_SLOT_START)
#define TRADE_SLOT_COUNT 7
#define TRADE_SLOT_TRADED_COUNT 6
#define TRADE_SLOT_NONTRADED 6
enum MovementFlags
{
MOVEMENTFLAG_FORWARD = 0x1,
MOVEMENTFLAG_BACKWARD = 0x2,
MOVEMENTFLAG_STRAFE_LEFT = 0x4,
MOVEMENTFLAG_STRAFE_RIGHT = 0x8,
MOVEMENTFLAG_LEFT = 0x10,
MOVEMENTFLAG_RIGHT = 0x20,
MOVEMENTFLAG_PITCH_UP = 0x40,
MOVEMENTFLAG_PITCH_DOWN = 0x80,
MOVEMENTFLAG_WALK = 0x100,
MOVEMENTFLAG_JUMPING = 0x2000,
MOVEMENTFLAG_FALLING = 0x4000,
MOVEMENTFLAG_SWIMMING = 0x200000,
MOVEMENTFLAG_ONTRANSPORT = 0x2000000,
MOVEMENTFLAG_SPLINE = 0x4000000
};
struct PlayerEnumItem
{
uint32 displayId;
uint8 inventorytype;
};
class PlayerEnum {
public:
uint64 _guid;
std::string _name;
uint8 _race;
uint8 _class;
uint8 _gender;
uint8 _bytes1;
uint8 _bytes2;
uint8 _bytes3;
uint8 _bytes4;
uint8 _bytesx;
uint8 _level;
uint32 _zoneId;
uint32 _mapId;
float _x;
float _y;
float _z;
uint32 _guildId;
uint8 _flags;
uint32 _petInfoId;
uint32 _petLevel;
uint32 _petFamilyId;
PlayerEnumItem _items[20];
private:
};
class Player : public Unit
{
public:
Player();
void Create(uint64);
uint8 GetGender() { return GetUInt32Value(PLAYER_BYTES_3); }
private:
};
// class about the character that is used to login.
// needs to store known spells, action buttons,...
// basically everything that is needed to play.
class MyCharacter : public Player
{
public:
MyCharacter();
/*void SetActionButtons(WorldPacket &data);
void SetSpells(WorldPacket &data);
void CastSpell(uint32 spellId, uint64 target);
void HandleCastResultOpcode(WorldPacket &packet);*/
private:
};
#endif