forked from mirror/openmw-tes3mp
c075496748
Add serverside script functions for determining the killers of both players and actors. Use unsigned ints for script functions returning an object or actor's refNumIndex or mpNum. Remove updateDeadState() from LocalPlayer and make its code part of updateStatsDynamic() for simplicity.
90 lines
1.5 KiB
C++
90 lines
1.5 KiB
C++
#ifndef OPENMW_BASEACTOR_HPP
|
|
#define OPENMW_BASEACTOR_HPP
|
|
|
|
#include <components/esm/loadcell.hpp>
|
|
|
|
#include <components/openmw-mp/Base/BaseStructs.hpp>
|
|
|
|
#include <RakNetTypes.h>
|
|
|
|
namespace mwmp
|
|
{
|
|
class BaseActor
|
|
{
|
|
public:
|
|
|
|
BaseActor()
|
|
{
|
|
hasPositionData = false;
|
|
hasStatsDynamicData = false;
|
|
}
|
|
|
|
std::string refId;
|
|
int refNumIndex;
|
|
int mpNum;
|
|
|
|
ESM::Position position;
|
|
ESM::Position direction;
|
|
|
|
ESM::Cell cell;
|
|
|
|
unsigned int movementFlags;
|
|
char drawState;
|
|
bool isFlying;
|
|
|
|
std::string sound;
|
|
|
|
SimpleCreatureStats creatureStats;
|
|
|
|
Animation animation;
|
|
Attack attack;
|
|
|
|
Target killer;
|
|
|
|
bool hasAiTarget;
|
|
Target aiTarget;
|
|
unsigned int aiAction;
|
|
|
|
bool hasPositionData;
|
|
bool hasStatsDynamicData;
|
|
|
|
Item equipmentItems[19];
|
|
};
|
|
|
|
class BaseActorList
|
|
{
|
|
public:
|
|
|
|
BaseActorList()
|
|
{
|
|
|
|
}
|
|
|
|
enum ACTOR_ACTION
|
|
{
|
|
SET = 0,
|
|
ADD = 1,
|
|
REMOVE = 2,
|
|
REQUEST = 3
|
|
};
|
|
|
|
enum AI_ACTION
|
|
{
|
|
FOLLOW = 0
|
|
};
|
|
|
|
RakNet::RakNetGUID guid;
|
|
|
|
std::vector<BaseActor> baseActors;
|
|
|
|
unsigned int count;
|
|
|
|
ESM::Cell cell;
|
|
|
|
unsigned char action; // 0 - Clear and set in entirety, 1 - Add item, 2 - Remove item, 3 - Request items
|
|
|
|
bool isValid;
|
|
};
|
|
}
|
|
|
|
#endif //OPENMW_BASEACTOR_HPP
|