2017-04-09 09:28:38 +00:00
|
|
|
#ifndef OPENMW_ACTORAPI_HPP
|
|
|
|
#define OPENMW_ACTORAPI_HPP
|
2017-04-09 09:24:33 +00:00
|
|
|
|
2019-01-15 12:26:11 +00:00
|
|
|
#include "../api.h"
|
2019-01-15 11:41:58 +00:00
|
|
|
|
2019-01-15 12:26:11 +00:00
|
|
|
NAMESPACE_BEGIN(ActorFunctions)
|
2017-07-25 15:07:09 +00:00
|
|
|
/**
|
|
|
|
* \brief Use the last actor list received by the server as the one being read.
|
|
|
|
*
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL ReadReceivedActorList() NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Use the temporary actor list stored for a cell as the one being read.
|
|
|
|
*
|
|
|
|
* This type of actor list is used to store actor positions and dynamic stats and is deleted
|
|
|
|
* when the cell is unloaded.
|
|
|
|
*
|
|
|
|
* \param cellDescription The description of the cell whose actor list should be read.
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL ReadCellActorList(const char* cellDescription) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
[General] Implement RecordDynamic packet, part 1
Spell, potion, enchantment, creature, NPC, armor, book, clothing, miscellaneous and weapon record data can now be sent in a RecordDynamic packet. Additionally, the packets include data related to associated magical effects (for spells, potions and enchantments), data related to default inventory contents (for creatures and NPCs) and data related to body parts affected (for armor and clothing).
The server now has associated script functions for setting most of the details of the above, with the main exception being individual creature and NPC stats.
Records can either be created entirely from scratch or can use an existing record (set via the baseId variable) as a starting point for their values. In the latter case, only the values that are specifically set override the starting values. Creature and NPC records also have an inventoryBaseId that can be used on top of the baseId to base their inventories on another existing record.
The client's RecordHelper class has been heavily expanded to allow for the above mentioned functionality.
When players create spells, potions and enchantments as part of regular gameplay, they send RecordDynamic packets that provide the server with the complete details of the records that should be created. When they create enchantments, they also provide the server with armor, book, clothing and weapon records corresponding to the items they've enchanted.
This functionality added by this packet was originally supposed to be exclusive to the rewrite, but I've gone ahead and tried to provide it for the pre-rewrite in a way that can mostly be reused for the rewrite.
2018-07-30 07:56:26 +00:00
|
|
|
* \brief Clear the data from the actor list stored on the server.
|
2017-07-25 15:07:09 +00:00
|
|
|
*
|
2018-07-12 22:04:41 +00:00
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL ClearActorList() NOEXCEPT;
|
2018-07-12 22:04:41 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Set the pid attached to the ActorList.
|
2017-07-25 15:07:09 +00:00
|
|
|
*
|
|
|
|
* \param pid The player ID to whom the actor list should be attached.
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SetActorListPid(PlayerId pid) NOEXCEPT;
|
2018-07-12 22:04:41 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Take the contents of the read-only actor list last received by the
|
|
|
|
* server from a player and move its contents to the stored object list
|
|
|
|
* that can be sent by the server.
|
|
|
|
*
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL CopyReceivedActorListToStore() NOEXCEPT;
|
2017-04-09 09:24:33 +00:00
|
|
|
|
2017-07-25 15:07:09 +00:00
|
|
|
/**
|
|
|
|
* \brief Get the number of indexes in the read actor list.
|
|
|
|
*
|
|
|
|
* \return The number of indexes.
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION unsigned int CDECL GetActorListSize() NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Get the action type used in the read actor list.
|
|
|
|
*
|
|
|
|
* \return The action type (0 for SET, 1 for ADD, 2 for REMOVE, 3 for REQUEST).
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION unsigned char CDECL GetActorListAction() NOEXCEPT;
|
2017-04-10 03:15:03 +00:00
|
|
|
|
2017-07-25 15:07:09 +00:00
|
|
|
/**
|
|
|
|
* \brief Get the cell description of the actor at a certain index in the read actor list.
|
|
|
|
*
|
2018-07-24 17:14:51 +00:00
|
|
|
* \param index The index of the actor.
|
2017-07-25 15:07:09 +00:00
|
|
|
* \return The cell description.
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION const char *CDECL GetActorCell(unsigned int index) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Get the refId of the actor at a certain index in the read actor list.
|
|
|
|
*
|
2018-07-24 17:14:51 +00:00
|
|
|
* \param index The index of the actor.
|
2017-07-25 15:07:09 +00:00
|
|
|
* \return The refId.
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION const char *CDECL GetActorRefId(unsigned int index) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
2018-07-13 01:12:03 +00:00
|
|
|
* \brief Get the refNum of the actor at a certain index in the read actor list.
|
2017-07-25 15:07:09 +00:00
|
|
|
*
|
2018-07-24 17:14:51 +00:00
|
|
|
* \param index The index of the actor.
|
2018-07-13 01:12:03 +00:00
|
|
|
* \return The refNum.
|
2017-07-25 15:07:09 +00:00
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION unsigned int CDECL GetActorRefNum(unsigned int index) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Get the mpNum of the actor at a certain index in the read actor list.
|
|
|
|
*
|
2018-07-24 17:14:51 +00:00
|
|
|
* \param index The index of the actor.
|
2017-07-25 15:07:09 +00:00
|
|
|
* \return The mpNum.
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION unsigned int CDECL GetActorMpNum(unsigned int index) NOEXCEPT;
|
2017-04-28 22:15:19 +00:00
|
|
|
|
2017-07-25 15:07:09 +00:00
|
|
|
/**
|
|
|
|
* \brief Get the X position of the actor at a certain index in the read actor list.
|
|
|
|
*
|
2018-07-24 17:14:51 +00:00
|
|
|
* \param index The index of the actor.
|
2017-07-25 15:07:09 +00:00
|
|
|
* \return The X position.
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION double CDECL GetActorPosX(unsigned int index) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Get the Y position of the actor at a certain index in the read actor list.
|
|
|
|
*
|
2018-07-24 17:14:51 +00:00
|
|
|
* \param index The index of the actor.
|
2017-07-25 15:07:09 +00:00
|
|
|
* \return The Y position.
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION double CDECL GetActorPosY(unsigned int index) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Get the Z position of the actor at a certain index in the read actor list.
|
|
|
|
*
|
2018-07-24 17:14:51 +00:00
|
|
|
* \param index The index of the actor.
|
2017-07-25 15:07:09 +00:00
|
|
|
* \return The Z position.
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION double CDECL GetActorPosZ(unsigned int index) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Get the X rotation of the actor at a certain index in the read actor list.
|
|
|
|
*
|
2018-07-24 17:14:51 +00:00
|
|
|
* \param index The index of the actor.
|
2017-07-25 15:07:09 +00:00
|
|
|
* \return The X rotation.
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION double CDECL GetActorRotX(unsigned int index) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Get the Y rotation of the actor at a certain index in the read actor list.
|
|
|
|
*
|
2018-07-24 17:14:51 +00:00
|
|
|
* \param index The index of the actor.
|
2017-07-25 15:07:09 +00:00
|
|
|
* \return The Y rotation.
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION double CDECL GetActorRotY(unsigned int index) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Get the Z rotation of the actor at a certain index in the read actor list.
|
|
|
|
*
|
2018-07-24 17:14:51 +00:00
|
|
|
* \param index The index of the actor.
|
2017-07-25 15:07:09 +00:00
|
|
|
* \return The Z rotation.
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION double CDECL GetActorRotZ(unsigned int index) NOEXCEPT;
|
2017-04-10 03:15:03 +00:00
|
|
|
|
2017-07-25 15:07:09 +00:00
|
|
|
/**
|
|
|
|
* \brief Get the base health of the actor at a certain index in the read actor list.
|
|
|
|
*
|
2018-07-24 17:14:51 +00:00
|
|
|
* \param index The index of the actor.
|
2017-07-25 15:07:09 +00:00
|
|
|
* \return The base health.
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION double CDECL GetActorHealthBase(unsigned int index) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Get the current health of the actor at a certain index in the read actor list.
|
|
|
|
*
|
2018-07-24 17:14:51 +00:00
|
|
|
* \param index The index of the actor.
|
2017-07-25 15:07:09 +00:00
|
|
|
* \return The current health.
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION double CDECL GetActorHealthCurrent(unsigned int index) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Get the modified health of the actor at a certain index in the read actor list.
|
|
|
|
*
|
2018-07-24 17:14:51 +00:00
|
|
|
* \param index The index of the actor.
|
2017-07-25 15:07:09 +00:00
|
|
|
* \return The modified health.
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION double CDECL GetActorHealthModified(unsigned int index) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Get the base magicka of the actor at a certain index in the read actor list.
|
|
|
|
*
|
2018-07-24 17:14:51 +00:00
|
|
|
* \param index The index of the actor.
|
2017-07-25 15:07:09 +00:00
|
|
|
* \return The base magicka.
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION double CDECL GetActorMagickaBase(unsigned int index) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Get the current magicka of the actor at a certain index in the read actor list.
|
|
|
|
*
|
2018-07-24 17:14:51 +00:00
|
|
|
* \param index The index of the actor.
|
2017-07-25 15:07:09 +00:00
|
|
|
* \return The current magicka.
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION double CDECL GetActorMagickaCurrent(unsigned int index) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Get the modified magicka of the actor at a certain index in the read actor list.
|
|
|
|
*
|
2018-07-24 17:14:51 +00:00
|
|
|
* \param index The index of the actor.
|
2017-07-25 15:07:09 +00:00
|
|
|
* \return The modified magicka.
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION double CDECL GetActorMagickaModified(unsigned int index) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Get the base fatigue of the actor at a certain index in the read actor list.
|
|
|
|
*
|
2018-07-24 17:14:51 +00:00
|
|
|
* \param index The index of the actor.
|
2017-07-25 15:07:09 +00:00
|
|
|
* \return The base fatigue.
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION double CDECL GetActorFatigueBase(unsigned int index) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Get the current fatigue of the actor at a certain index in the read actor list.
|
|
|
|
*
|
2018-07-24 17:14:51 +00:00
|
|
|
* \param index The index of the actor.
|
2017-07-25 15:07:09 +00:00
|
|
|
* \return The current fatigue.
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION double CDECL GetActorFatigueCurrent(unsigned int index) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Get the modified fatigue of the actor at a certain index in the read actor list.
|
|
|
|
*
|
2018-07-24 17:14:51 +00:00
|
|
|
* \param index The index of the actor.
|
2017-07-25 15:07:09 +00:00
|
|
|
* \return The modified fatigue.
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION double CDECL GetActorFatigueModified(unsigned int index) NOEXCEPT;
|
2017-04-28 22:15:19 +00:00
|
|
|
|
2017-07-25 15:07:09 +00:00
|
|
|
/**
|
|
|
|
* \brief Get the refId of the item in a certain slot of the equipment of the actor at a
|
|
|
|
* certain index in the read actor list.
|
|
|
|
*
|
2018-07-24 17:14:51 +00:00
|
|
|
* \param index The index of the actor.
|
2017-07-25 15:07:09 +00:00
|
|
|
* \param slot The slot of the equipment item.
|
|
|
|
* \return The refId.
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION const char *CDECL GetActorEquipmentItemRefId(unsigned int index, unsigned short slot) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Get the count of the item in a certain slot of the equipment of the actor at a
|
|
|
|
* certain index in the read actor list.
|
|
|
|
*
|
2018-07-24 17:14:51 +00:00
|
|
|
* \param index The index of the actor.
|
2017-07-25 15:07:09 +00:00
|
|
|
* \param slot The slot of the equipment item.
|
|
|
|
* \return The item count.
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION int CDECL GetActorEquipmentItemCount(unsigned int index, unsigned short slot) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Get the charge of the item in a certain slot of the equipment of the actor at a
|
|
|
|
* certain index in the read actor list.
|
|
|
|
*
|
2018-07-24 17:14:51 +00:00
|
|
|
* \param index The index of the actor.
|
2017-07-25 15:07:09 +00:00
|
|
|
* \param slot The slot of the equipment item.
|
|
|
|
* \return The charge.
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION int CDECL GetActorEquipmentItemCharge(unsigned int index, unsigned short slot) NOEXCEPT;
|
2017-05-26 19:54:51 +00:00
|
|
|
|
2017-12-23 11:16:38 +00:00
|
|
|
/**
|
|
|
|
* \brief Get the enchantment charge of the item in a certain slot of the equipment of the actor at a
|
|
|
|
* certain index in the read actor list.
|
|
|
|
*
|
2018-07-24 17:14:51 +00:00
|
|
|
* \param index The index of the actor.
|
2017-12-23 11:16:38 +00:00
|
|
|
* \param slot The slot of the equipment item.
|
|
|
|
* \return The enchantment charge.
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION double CDECL GetActorEquipmentItemEnchantmentCharge(unsigned int index, unsigned short slot) NOEXCEPT;
|
2017-12-23 11:16:38 +00:00
|
|
|
|
2018-06-27 18:47:55 +00:00
|
|
|
/**
|
2018-07-05 19:24:51 +00:00
|
|
|
* \brief Check whether the killer of the actor at a certain index in the read actor list is a player.
|
2018-06-27 18:47:55 +00:00
|
|
|
*
|
2018-07-24 17:14:51 +00:00
|
|
|
* \param index The index of the actor.
|
2018-07-05 19:24:51 +00:00
|
|
|
* \return Whether the actor was killed by a player.
|
2018-06-27 18:47:55 +00:00
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION bool CDECL DoesActorHavePlayerKiller(unsigned int index) NOEXCEPT;
|
2018-07-05 19:24:51 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Get the player ID of the killer of the actor at a certain index in the read actor list.
|
|
|
|
*
|
2018-07-24 17:14:51 +00:00
|
|
|
* \param index The index of the actor.
|
2018-07-05 19:24:51 +00:00
|
|
|
* \return The player ID of the killer.
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION int CDECL GetActorKillerPid(unsigned int index) NOEXCEPT;
|
2018-07-05 19:24:51 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Get the refId of the actor killer of the actor at a certain index in the read actor list.
|
|
|
|
*
|
2018-07-24 17:14:51 +00:00
|
|
|
* \param index The index of the actor.
|
2018-07-05 19:24:51 +00:00
|
|
|
* \return The refId of the killer.
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION const char *CDECL GetActorKillerRefId(unsigned int index) NOEXCEPT;
|
2018-07-05 19:24:51 +00:00
|
|
|
|
|
|
|
/**
|
2018-07-13 01:12:03 +00:00
|
|
|
* \brief Get the refNum of the actor killer of the actor at a certain index in the read actor list.
|
2018-07-05 19:24:51 +00:00
|
|
|
*
|
2018-07-24 17:14:51 +00:00
|
|
|
* \param index The index of the actor.
|
2018-07-13 01:12:03 +00:00
|
|
|
* \return The refNum of the killer.
|
2018-07-05 19:24:51 +00:00
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION unsigned int CDECL GetActorKillerRefNum(unsigned int index) NOEXCEPT;
|
2018-07-05 19:24:51 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Get the mpNum of the actor killer of the actor at a certain index in the read actor list.
|
|
|
|
*
|
2018-07-24 17:14:51 +00:00
|
|
|
* \param index The index of the actor.
|
2018-07-05 19:24:51 +00:00
|
|
|
* \return The mpNum of the killer.
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION unsigned int CDECL GetActorKillerMpNum(unsigned int index) NOEXCEPT;
|
2018-07-05 19:24:51 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Get the name of the actor killer of the actor at a certain index in the read actor list.
|
|
|
|
*
|
2018-07-24 17:14:51 +00:00
|
|
|
* \param index The index of the actor.
|
2018-07-05 19:24:51 +00:00
|
|
|
* \return The name of the killer.
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION const char *CDECL GetActorKillerName(unsigned int index) NOEXCEPT;
|
2018-06-27 18:47:55 +00:00
|
|
|
|
2017-07-25 15:07:09 +00:00
|
|
|
/**
|
|
|
|
* \brief Check whether there is any positional data for the actor at a certain index in
|
|
|
|
* the read actor list.
|
|
|
|
*
|
|
|
|
* This is only useful when reading the actor list data recorded for a particular cell.
|
|
|
|
*
|
2018-07-24 17:14:51 +00:00
|
|
|
* \param index The index of the actor.
|
2017-07-25 15:07:09 +00:00
|
|
|
* \return Whether the read actor list contains positional data.
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION bool CDECL DoesActorHavePosition(unsigned int index) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Check whether there is any dynamic stats data for the actor at a certain index in
|
|
|
|
* the read actor list.
|
|
|
|
*
|
|
|
|
* This is only useful when reading the actor list data recorded for a particular cell.
|
|
|
|
*
|
2018-07-24 17:14:51 +00:00
|
|
|
* \param index The index of the actor.
|
2017-07-25 15:07:09 +00:00
|
|
|
* \return Whether the read actor list contains dynamic stats data.
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION bool CDECL DoesActorHaveStatsDynamic(unsigned int index) NOEXCEPT;
|
2017-05-01 17:55:36 +00:00
|
|
|
|
2017-07-25 15:07:09 +00:00
|
|
|
/**
|
|
|
|
* \brief Set the cell of the temporary actor list stored on the server.
|
|
|
|
*
|
|
|
|
* The cell is determined to be an exterior cell if it fits the pattern of a number followed
|
|
|
|
* by a comma followed by another number.
|
|
|
|
*
|
|
|
|
* \param cellDescription The description of the cell.
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SetActorListCell(const char* cellDescription) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Set the action type of the temporary actor list stored on the server.
|
|
|
|
*
|
|
|
|
* \param action The action type (0 for SET, 1 for ADD, 2 for REMOVE, 3 for REQUEST).
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SetActorListAction(unsigned char action) NOEXCEPT;
|
2017-04-10 03:15:03 +00:00
|
|
|
|
2017-07-25 15:07:09 +00:00
|
|
|
/**
|
|
|
|
* \brief Set the cell of the temporary actor stored on the server.
|
|
|
|
*
|
|
|
|
* Used for ActorCellChange packets, where a specific actor's cell now differs from that of the
|
|
|
|
* actor list.
|
|
|
|
*
|
|
|
|
* The cell is determined to be an exterior cell if it fits the pattern of a number followed
|
|
|
|
* by a comma followed by another number.
|
|
|
|
*
|
|
|
|
* \param cellDescription The description of the cell.
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SetActorCell(const char* cellDescription) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Set the refId of the temporary actor stored on the server.
|
|
|
|
*
|
|
|
|
* \param refId The refId.
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SetActorRefId(const char* refId) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
2018-07-13 01:12:03 +00:00
|
|
|
* \brief Set the refNum of the temporary actor stored on the server.
|
2017-07-25 15:07:09 +00:00
|
|
|
*
|
2018-07-13 01:12:03 +00:00
|
|
|
* \param refNum The refNum.
|
2017-07-25 15:07:09 +00:00
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SetActorRefNum(int refNum) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Set the mpNum of the temporary actor stored on the server.
|
|
|
|
*
|
|
|
|
* \param mpNum The mpNum.
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SetActorMpNum(int mpNum) NOEXCEPT;
|
2017-04-28 23:10:14 +00:00
|
|
|
|
2017-07-25 15:07:09 +00:00
|
|
|
/**
|
|
|
|
* \brief Set the position of the temporary actor stored on the server.
|
|
|
|
*
|
|
|
|
* \param x The X position.
|
|
|
|
* \param y The Y position.
|
|
|
|
* \param z The Z position.
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SetActorPosition(double x, double y, double z) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Set the rotation of the temporary actor stored on the server.
|
|
|
|
*
|
|
|
|
* \param x The X rotation.
|
|
|
|
* \param y The Y rotation.
|
|
|
|
* \param z The Z rotation.
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SetActorRotation(double x, double y, double z) NOEXCEPT;
|
2017-04-10 03:15:03 +00:00
|
|
|
|
2017-07-25 15:07:09 +00:00
|
|
|
/**
|
|
|
|
* \brief Set the base health of the temporary actor stored on the server.
|
|
|
|
*
|
|
|
|
* \param value The new value.
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SetActorHealthBase(double value) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Set the current health of the temporary actor stored on the server.
|
|
|
|
*
|
|
|
|
* \param value The new value.
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SetActorHealthCurrent(double value) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Set the modified health of the temporary actor stored on the server.
|
|
|
|
*
|
|
|
|
* \param value The new value.
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SetActorHealthModified(double value) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Set the base magicka of the temporary actor stored on the server.
|
|
|
|
*
|
|
|
|
* \param value The new value.
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SetActorMagickaBase(double value) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Set the current magicka of the temporary actor stored on the server.
|
|
|
|
*
|
|
|
|
* \param value The new value.
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SetActorMagickaCurrent(double value) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Set the modified magicka of the temporary actor stored on the server.
|
|
|
|
*
|
|
|
|
* \param value The new value.
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SetActorMagickaModified(double value) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Set the base fatigue of the temporary actor stored on the server.
|
|
|
|
*
|
|
|
|
* \param value The new value.
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SetActorFatigueBase(double value) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Set the current fatigue of the temporary actor stored on the server.
|
|
|
|
*
|
|
|
|
* \param value The new value.
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SetActorFatigueCurrent(double value) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Set the modified fatigue of the temporary actor stored on the server.
|
|
|
|
*
|
|
|
|
* \param value The new value.
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SetActorFatigueModified(double value) NOEXCEPT;
|
2017-04-28 23:10:14 +00:00
|
|
|
|
2018-08-13 17:39:03 +00:00
|
|
|
/**
|
|
|
|
* \brief Set the sound of the temporary actor stored on the server.
|
|
|
|
*
|
|
|
|
* \param sound The sound.
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SetActorSound(const char* sound) NOEXCEPT;
|
2018-08-13 17:39:03 +00:00
|
|
|
|
2018-05-12 03:29:11 +00:00
|
|
|
/**
|
|
|
|
* \brief Set the AI action of the temporary actor stored on the server.
|
|
|
|
*
|
|
|
|
* \param action The new action.
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SetActorAIAction(unsigned int action) NOEXCEPT;
|
2018-05-12 03:29:11 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Set a player as the AI target of the temporary actor stored on the server.
|
|
|
|
*
|
|
|
|
* \param pid The player ID.
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SetActorAITargetToPlayer(PlayerId pid) NOEXCEPT;
|
2018-05-12 03:29:11 +00:00
|
|
|
|
|
|
|
/**
|
2018-07-10 04:07:37 +00:00
|
|
|
* \brief Set another object as the AI target of the temporary actor stored on the server.
|
2018-05-12 03:29:11 +00:00
|
|
|
*
|
2018-07-13 01:12:03 +00:00
|
|
|
* \param refNum The refNum of the target object.
|
2018-07-10 04:07:37 +00:00
|
|
|
* \param mpNum The mpNum of the target object.
|
2018-05-12 03:29:11 +00:00
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SetActorAITargetToObject(int refNum, int mpNum) NOEXCEPT;
|
2018-05-12 03:29:11 +00:00
|
|
|
|
2018-07-10 02:07:58 +00:00
|
|
|
/**
|
|
|
|
* \brief Set the coordinates for the AI package associated with the current AI action.
|
|
|
|
*
|
|
|
|
* \param x The X coordinate.
|
|
|
|
* \param y The Y coordinate.
|
|
|
|
* \param z The Z coordinate.
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SetActorAICoordinates(double x, double y, double z) NOEXCEPT;
|
2018-07-10 02:07:58 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Set the distance of the AI package associated with the current AI action.
|
|
|
|
*
|
|
|
|
* \param duration The distance of the package.
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SetActorAIDistance(unsigned int distance) NOEXCEPT;
|
2018-07-10 02:07:58 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Set the duration of the AI package associated with the current AI action.
|
|
|
|
*
|
|
|
|
* \param duration The duration of the package.
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SetActorAIDuration(unsigned int duration) NOEXCEPT;
|
2018-07-10 02:07:58 +00:00
|
|
|
|
2018-07-10 20:18:32 +00:00
|
|
|
/**
|
|
|
|
* \brief Set whether the current AI package should be repeated.
|
|
|
|
*
|
|
|
|
* Note: This only has an effect on the WANDER package.
|
|
|
|
*
|
|
|
|
* \param shouldRepeat Whether the package should be repeated.
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SetActorAIRepetition(bool shouldRepeat) NOEXCEPT;
|
2018-07-10 20:18:32 +00:00
|
|
|
|
2017-07-25 15:07:09 +00:00
|
|
|
/**
|
|
|
|
* \brief Equip an item in a certain slot of the equipment of the temporary actor stored
|
|
|
|
* on the server.
|
|
|
|
*
|
|
|
|
* \param slot The equipment slot.
|
|
|
|
* \param refId The refId of the item.
|
|
|
|
* \param count The count of the item.
|
|
|
|
* \param charge The charge of the item.
|
2017-12-23 11:16:38 +00:00
|
|
|
* \param enchantmentCharge The enchantment charge of the item.
|
2017-07-25 15:07:09 +00:00
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL EquipActorItem(unsigned short slot, const char* refId, unsigned int count, int charge, double enchantmentCharge = -1) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Unequip the item in a certain slot of the equipment of the temporary actor stored
|
|
|
|
* on the server.
|
|
|
|
*
|
|
|
|
* \param slot The equipment slot.
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL UnequipActorItem(unsigned short slot) NOEXCEPT;
|
2017-05-26 21:57:40 +00:00
|
|
|
|
2017-07-25 15:07:09 +00:00
|
|
|
/**
|
|
|
|
* \brief Add a copy of the server's temporary actor to the server's temporary actor list.
|
|
|
|
*
|
|
|
|
* In the process, the server's temporary actor will automatically be cleared so a new
|
|
|
|
* one can be set up.
|
|
|
|
*
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL AddActor() NOEXCEPT;
|
2017-04-09 13:32:44 +00:00
|
|
|
|
2017-07-25 15:07:09 +00:00
|
|
|
/**
|
|
|
|
* \brief Send an ActorList packet.
|
|
|
|
*
|
|
|
|
* It is sent only to the player for whom the current actor list was initialized.
|
|
|
|
*
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SendActorList() NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Send an ActorAuthority packet.
|
|
|
|
*
|
|
|
|
* The player for whom the current actor list was initialized is recorded in the server memory
|
|
|
|
* as the new actor authority for the actor list's cell.
|
|
|
|
*
|
|
|
|
* The packet is sent to that player as well as all other players who have the cell loaded.
|
|
|
|
*
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SendActorAuthority() NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Send an ActorPosition packet.
|
|
|
|
*
|
2018-07-12 22:25:43 +00:00
|
|
|
* \param sendToOtherVisitors Whether this packet should be sent to cell visitors other
|
|
|
|
* than the player attached to the packet (false by default).
|
|
|
|
* \param skipAttachedPlayer Whether the packet should skip being sent to the player attached
|
|
|
|
* to the packet (false by default).
|
2017-07-25 15:07:09 +00:00
|
|
|
*
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SendActorPosition(bool sendToOtherVisitors, bool skipAttachedPlayer) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Send an ActorStatsDynamic packet.
|
|
|
|
*
|
2018-07-12 22:25:43 +00:00
|
|
|
* \param sendToOtherVisitors Whether this packet should be sent to cell visitors other
|
|
|
|
* than the player attached to the packet (false by default).
|
|
|
|
* \param skipAttachedPlayer Whether the packet should skip being sent to the player attached
|
|
|
|
* to the packet (false by default).
|
2017-07-25 15:07:09 +00:00
|
|
|
*
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SendActorStatsDynamic(bool sendToOtherVisitors, bool skipAttachedPlayer) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Send an ActorEquipment packet.
|
|
|
|
*
|
2018-07-12 22:25:43 +00:00
|
|
|
* \param sendToOtherVisitors Whether this packet should be sent to cell visitors other
|
|
|
|
* than the player attached to the packet (false by default).
|
|
|
|
* \param skipAttachedPlayer Whether the packet should skip being sent to the player attached
|
|
|
|
* to the packet (false by default).
|
2017-07-25 15:07:09 +00:00
|
|
|
*
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SendActorEquipment(bool sendToOtherVisitors, bool skipAttachedPlayer) NOEXCEPT;
|
2017-07-25 15:07:09 +00:00
|
|
|
|
2018-08-13 17:39:03 +00:00
|
|
|
/**
|
|
|
|
* \brief Send an ActorSpeech packet.
|
|
|
|
*
|
|
|
|
* \param sendToOtherVisitors Whether this packet should be sent to cell visitors other
|
|
|
|
* than the player attached to the packet (false by default).
|
|
|
|
* \param skipAttachedPlayer Whether the packet should skip being sent to the player attached
|
|
|
|
* to the packet (false by default).
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SendActorSpeech(bool sendToOtherVisitors, bool skipAttachedPlayer) NOEXCEPT;
|
2018-08-13 17:39:03 +00:00
|
|
|
|
2018-05-12 03:29:11 +00:00
|
|
|
/**
|
|
|
|
* \brief Send an ActorAI packet.
|
|
|
|
*
|
2018-07-11 19:17:00 +00:00
|
|
|
* \param sendToOtherVisitors Whether this packet should be sent to cell visitors other
|
|
|
|
* than the player attached to the packet (false by default).
|
2018-07-12 22:25:43 +00:00
|
|
|
* \param skipAttachedPlayer Whether the packet should skip being sent to the player attached
|
|
|
|
* to the packet (false by default).
|
2018-05-12 03:29:11 +00:00
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SendActorAI(bool sendToOtherVisitors, bool skipAttachedPlayer) NOEXCEPT;
|
2018-05-12 03:29:11 +00:00
|
|
|
|
2017-07-25 15:07:09 +00:00
|
|
|
/**
|
|
|
|
* \brief Send an ActorCellChange packet.
|
|
|
|
*
|
2018-07-12 22:25:43 +00:00
|
|
|
* \param sendToOtherVisitors Whether this packet should be sent to cell visitors other
|
|
|
|
* than the player attached to the packet (false by default).
|
|
|
|
* \param skipAttachedPlayer Whether the packet should skip being sent to the player attached
|
|
|
|
* to the packet (false by default).
|
2017-07-25 15:07:09 +00:00
|
|
|
*
|
|
|
|
* \return void
|
|
|
|
*/
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL SendActorCellChange(bool sendToOtherVisitors, bool skipAttachedPlayer) NOEXCEPT;
|
2018-07-12 22:04:41 +00:00
|
|
|
|
|
|
|
|
|
|
|
// All methods below are deprecated versions of methods from above
|
|
|
|
|
2019-01-16 15:52:22 +00:00
|
|
|
API_FUNCTION void CDECL ReadLastActorList() NOEXCEPT;
|
|
|
|
API_FUNCTION void CDECL InitializeActorList(PlayerId pid) NOEXCEPT;
|
|
|
|
API_FUNCTION void CDECL CopyLastActorListToStore() NOEXCEPT;
|
|
|
|
API_FUNCTION unsigned int CDECL GetActorRefNumIndex(unsigned int index) NOEXCEPT;
|
|
|
|
API_FUNCTION unsigned int CDECL GetActorKillerRefNumIndex(unsigned int index) NOEXCEPT;
|
|
|
|
API_FUNCTION void CDECL SetActorRefNumIndex(int refNum) NOEXCEPT;
|
2019-01-15 12:26:11 +00:00
|
|
|
NAMESPACE_END()
|
2017-04-09 09:24:33 +00:00
|
|
|
|
|
|
|
|
2017-04-09 09:28:38 +00:00
|
|
|
#endif //OPENMW_ACTORAPI_HPP
|