mirror of
				https://github.com/TES3MP/TES3MP.git
				synced 2025-11-03 19:13:31 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			781 lines
		
	
	
		
			29 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			781 lines
		
	
	
		
			29 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#ifndef OPENMW_ACTORAPI_HPP
 | 
						|
#define OPENMW_ACTORAPI_HPP
 | 
						|
 | 
						|
#define ACTORAPI \
 | 
						|
    {"ReadReceivedActorList",                  ActorFunctions::ReadReceivedActorList},\
 | 
						|
    {"ReadCellActorList",                      ActorFunctions::ReadCellActorList},\
 | 
						|
    \
 | 
						|
    {"ClearActorList",                         ActorFunctions::ClearActorList},\
 | 
						|
    {"SetActorListPid",                        ActorFunctions::SetActorListPid},\
 | 
						|
    \
 | 
						|
    {"CopyReceivedActorListToStore",           ActorFunctions::CopyReceivedActorListToStore},\
 | 
						|
    \
 | 
						|
    {"GetActorListSize",                       ActorFunctions::GetActorListSize},\
 | 
						|
    {"GetActorListAction",                     ActorFunctions::GetActorListAction},\
 | 
						|
    \
 | 
						|
    {"GetActorCell",                           ActorFunctions::GetActorCell},\
 | 
						|
    {"GetActorRefId",                          ActorFunctions::GetActorRefId},\
 | 
						|
    {"GetActorRefNum",                         ActorFunctions::GetActorRefNum},\
 | 
						|
    {"GetActorMpNum",                          ActorFunctions::GetActorMpNum},\
 | 
						|
    \
 | 
						|
    {"GetActorPosX",                           ActorFunctions::GetActorPosX},\
 | 
						|
    {"GetActorPosY",                           ActorFunctions::GetActorPosY},\
 | 
						|
    {"GetActorPosZ",                           ActorFunctions::GetActorPosZ},\
 | 
						|
    {"GetActorRotX",                           ActorFunctions::GetActorRotX},\
 | 
						|
    {"GetActorRotY",                           ActorFunctions::GetActorRotY},\
 | 
						|
    {"GetActorRotZ",                           ActorFunctions::GetActorRotZ},\
 | 
						|
    \
 | 
						|
    {"GetActorHealthBase",                     ActorFunctions::GetActorHealthBase},\
 | 
						|
    {"GetActorHealthCurrent",                  ActorFunctions::GetActorHealthCurrent},\
 | 
						|
    {"GetActorHealthModified",                 ActorFunctions::GetActorHealthModified},\
 | 
						|
    {"GetActorMagickaBase",                    ActorFunctions::GetActorMagickaBase},\
 | 
						|
    {"GetActorMagickaCurrent",                 ActorFunctions::GetActorMagickaCurrent},\
 | 
						|
    {"GetActorMagickaModified",                ActorFunctions::GetActorMagickaModified},\
 | 
						|
    {"GetActorFatigueBase",                    ActorFunctions::GetActorFatigueBase},\
 | 
						|
    {"GetActorFatigueCurrent",                 ActorFunctions::GetActorFatigueCurrent},\
 | 
						|
    {"GetActorFatigueModified",                ActorFunctions::GetActorFatigueModified},\
 | 
						|
    \
 | 
						|
    {"GetActorEquipmentItemRefId",             ActorFunctions::GetActorEquipmentItemRefId},\
 | 
						|
    {"GetActorEquipmentItemCount",             ActorFunctions::GetActorEquipmentItemCount},\
 | 
						|
    {"GetActorEquipmentItemCharge",            ActorFunctions::GetActorEquipmentItemCharge},\
 | 
						|
    {"GetActorEquipmentItemEnchantmentCharge", ActorFunctions::GetActorEquipmentItemEnchantmentCharge},\
 | 
						|
    \
 | 
						|
    {"DoesActorHavePlayerKiller",              ActorFunctions::DoesActorHavePlayerKiller},\
 | 
						|
    {"GetActorKillerPid",                      ActorFunctions::GetActorKillerPid},\
 | 
						|
    {"GetActorKillerRefId",                    ActorFunctions::GetActorKillerRefId},\
 | 
						|
    {"GetActorKillerRefNum",                   ActorFunctions::GetActorKillerRefNum},\
 | 
						|
    {"GetActorKillerMpNum",                    ActorFunctions::GetActorKillerMpNum},\
 | 
						|
    {"GetActorKillerName",                     ActorFunctions::GetActorKillerName},\
 | 
						|
    \
 | 
						|
    {"DoesActorHavePosition",                  ActorFunctions::DoesActorHavePosition},\
 | 
						|
    {"DoesActorHaveStatsDynamic",              ActorFunctions::DoesActorHaveStatsDynamic},\
 | 
						|
    \
 | 
						|
    {"SetActorListCell",                       ActorFunctions::SetActorListCell},\
 | 
						|
    {"SetActorListAction",                     ActorFunctions::SetActorListAction},\
 | 
						|
    \
 | 
						|
    {"SetActorCell",                           ActorFunctions::SetActorCell},\
 | 
						|
    {"SetActorRefId",                          ActorFunctions::SetActorRefId},\
 | 
						|
    {"SetActorRefNum",                         ActorFunctions::SetActorRefNum},\
 | 
						|
    {"SetActorMpNum",                          ActorFunctions::SetActorMpNum},\
 | 
						|
    \
 | 
						|
    {"SetActorPosition",                       ActorFunctions::SetActorPosition},\
 | 
						|
    {"SetActorRotation",                       ActorFunctions::SetActorRotation},\
 | 
						|
    \
 | 
						|
    {"SetActorHealthBase",                     ActorFunctions::SetActorHealthBase},\
 | 
						|
    {"SetActorHealthCurrent",                  ActorFunctions::SetActorHealthCurrent},\
 | 
						|
    {"SetActorHealthModified",                 ActorFunctions::SetActorHealthModified},\
 | 
						|
    {"SetActorMagickaBase",                    ActorFunctions::SetActorMagickaBase},\
 | 
						|
    {"SetActorMagickaCurrent",                 ActorFunctions::SetActorMagickaCurrent},\
 | 
						|
    {"SetActorMagickaModified",                ActorFunctions::SetActorMagickaModified},\
 | 
						|
    {"SetActorFatigueBase",                    ActorFunctions::SetActorFatigueBase},\
 | 
						|
    {"SetActorFatigueCurrent",                 ActorFunctions::SetActorFatigueCurrent},\
 | 
						|
    {"SetActorFatigueModified",                ActorFunctions::SetActorFatigueModified},\
 | 
						|
    \
 | 
						|
    {"SetActorSound",                          ActorFunctions::SetActorSound},\
 | 
						|
    \
 | 
						|
    {"SetActorAIAction",                       ActorFunctions::SetActorAIAction},\
 | 
						|
    {"SetActorAITargetToPlayer",               ActorFunctions::SetActorAITargetToPlayer},\
 | 
						|
    {"SetActorAITargetToObject",               ActorFunctions::SetActorAITargetToObject},\
 | 
						|
    {"SetActorAICoordinates",                  ActorFunctions::SetActorAICoordinates},\
 | 
						|
    {"SetActorAIDistance",                     ActorFunctions::SetActorAIDistance},\
 | 
						|
    {"SetActorAIDuration",                     ActorFunctions::SetActorAIDuration},\
 | 
						|
    {"SetActorAIRepetition",                   ActorFunctions::SetActorAIRepetition},\
 | 
						|
    \
 | 
						|
    {"EquipActorItem",                         ActorFunctions::EquipActorItem},\
 | 
						|
    {"UnequipActorItem",                       ActorFunctions::UnequipActorItem},\
 | 
						|
    \
 | 
						|
    {"AddActor",                               ActorFunctions::AddActor},\
 | 
						|
    \
 | 
						|
    {"SendActorList",                          ActorFunctions::SendActorList},\
 | 
						|
    {"SendActorAuthority",                     ActorFunctions::SendActorAuthority},\
 | 
						|
    {"SendActorPosition",                      ActorFunctions::SendActorPosition},\
 | 
						|
    {"SendActorStatsDynamic",                  ActorFunctions::SendActorStatsDynamic},\
 | 
						|
    {"SendActorEquipment",                     ActorFunctions::SendActorEquipment},\
 | 
						|
    {"SendActorSpeech",                        ActorFunctions::SendActorSpeech},\
 | 
						|
    {"SendActorAI",                            ActorFunctions::SendActorAI},\
 | 
						|
    {"SendActorCellChange",                    ActorFunctions::SendActorCellChange},\
 | 
						|
    \
 | 
						|
    {"ReadLastActorList",                      ActorFunctions::ReadLastActorList},\
 | 
						|
    {"InitializeActorList",                    ActorFunctions::InitializeActorList},\
 | 
						|
    {"CopyLastActorListToStore",               ActorFunctions::CopyLastActorListToStore},\
 | 
						|
    {"GetActorRefNumIndex",                    ActorFunctions::GetActorRefNumIndex},\
 | 
						|
    {"GetActorKillerRefNumIndex",              ActorFunctions::GetActorKillerRefNumIndex},\
 | 
						|
    {"SetActorRefNumIndex",                    ActorFunctions::SetActorRefNumIndex}
 | 
						|
 | 
						|
class ActorFunctions
 | 
						|
{
 | 
						|
public:
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Use the last actor list received by the server as the one being read.
 | 
						|
    *
 | 
						|
    * \return void
 | 
						|
    */
 | 
						|
    static void ReadReceivedActorList() noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \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
 | 
						|
    */
 | 
						|
    static void ReadCellActorList(const char* cellDescription) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Clear the data from the actor list stored on the server.
 | 
						|
    *
 | 
						|
    * \return void
 | 
						|
    */
 | 
						|
    static void ClearActorList() noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Set the pid attached to the ActorList.
 | 
						|
    *
 | 
						|
    * \param pid The player ID to whom the actor list should be attached.
 | 
						|
    * \return void
 | 
						|
    */
 | 
						|
    static void SetActorListPid(unsigned short pid) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \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
 | 
						|
    */
 | 
						|
    static void CopyReceivedActorListToStore() noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Get the number of indexes in the read actor list.
 | 
						|
    *
 | 
						|
    * \return The number of indexes.
 | 
						|
    */
 | 
						|
    static unsigned int GetActorListSize() noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \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).
 | 
						|
    */
 | 
						|
    static unsigned char GetActorListAction() noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Get the cell description of the actor at a certain index in the read actor list.
 | 
						|
    *
 | 
						|
    * \param index The index of the actor.
 | 
						|
    * \return The cell description.
 | 
						|
    */
 | 
						|
    static const char *GetActorCell(unsigned int index) noexcept;
 | 
						|
    
 | 
						|
    /**
 | 
						|
    * \brief Get the refId of the actor at a certain index in the read actor list.
 | 
						|
    *
 | 
						|
    * \param index The index of the actor.
 | 
						|
    * \return The refId.
 | 
						|
    */
 | 
						|
    static const char *GetActorRefId(unsigned int index) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Get the refNum of the actor at a certain index in the read actor list.
 | 
						|
    *
 | 
						|
    * \param index The index of the actor.
 | 
						|
    * \return The refNum.
 | 
						|
    */
 | 
						|
    static unsigned int GetActorRefNum(unsigned int index) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Get the mpNum of the actor at a certain index in the read actor list.
 | 
						|
    *
 | 
						|
    * \param index The index of the actor.
 | 
						|
    * \return The mpNum.
 | 
						|
    */
 | 
						|
    static unsigned int GetActorMpNum(unsigned int index) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Get the X position of the actor at a certain index in the read actor list.
 | 
						|
    *
 | 
						|
    * \param index The index of the actor.
 | 
						|
    * \return The X position.
 | 
						|
    */
 | 
						|
    static double GetActorPosX(unsigned int index) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Get the Y position of the actor at a certain index in the read actor list.
 | 
						|
    *
 | 
						|
    * \param index The index of the actor.
 | 
						|
    * \return The Y position.
 | 
						|
    */
 | 
						|
    static double GetActorPosY(unsigned int index) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Get the Z position of the actor at a certain index in the read actor list.
 | 
						|
    *
 | 
						|
    * \param index The index of the actor.
 | 
						|
    * \return The Z position.
 | 
						|
    */
 | 
						|
    static double GetActorPosZ(unsigned int index) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Get the X rotation of the actor at a certain index in the read actor list.
 | 
						|
    *
 | 
						|
    * \param index The index of the actor.
 | 
						|
    * \return The X rotation.
 | 
						|
    */
 | 
						|
    static double GetActorRotX(unsigned int index) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Get the Y rotation of the actor at a certain index in the read actor list.
 | 
						|
    *
 | 
						|
    * \param index The index of the actor.
 | 
						|
    * \return The Y rotation.
 | 
						|
    */
 | 
						|
    static double GetActorRotY(unsigned int index) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Get the Z rotation of the actor at a certain index in the read actor list.
 | 
						|
    *
 | 
						|
    * \param index The index of the actor.
 | 
						|
    * \return The Z rotation.
 | 
						|
    */
 | 
						|
    static double GetActorRotZ(unsigned int index) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Get the base health of the actor at a certain index in the read actor list.
 | 
						|
    *
 | 
						|
    * \param index The index of the actor.
 | 
						|
    * \return The base health.
 | 
						|
    */
 | 
						|
    static double GetActorHealthBase(unsigned int index) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Get the current health of the actor at a certain index in the read actor list.
 | 
						|
    *
 | 
						|
    * \param index The index of the actor.
 | 
						|
    * \return The current health.
 | 
						|
    */
 | 
						|
    static double GetActorHealthCurrent(unsigned int index) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Get the modified health of the actor at a certain index in the read actor list.
 | 
						|
    *
 | 
						|
    * \param index The index of the actor.
 | 
						|
    * \return The modified health.
 | 
						|
    */
 | 
						|
    static double GetActorHealthModified(unsigned int index) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Get the base magicka of the actor at a certain index in the read actor list.
 | 
						|
    *
 | 
						|
    * \param index The index of the actor.
 | 
						|
    * \return The base magicka.
 | 
						|
    */
 | 
						|
    static double GetActorMagickaBase(unsigned int index) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Get the current magicka of the actor at a certain index in the read actor list.
 | 
						|
    *
 | 
						|
    * \param index The index of the actor.
 | 
						|
    * \return The current magicka.
 | 
						|
    */
 | 
						|
    static double GetActorMagickaCurrent(unsigned int index) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Get the modified magicka of the actor at a certain index in the read actor list.
 | 
						|
    *
 | 
						|
    * \param index The index of the actor.
 | 
						|
    * \return The modified magicka.
 | 
						|
    */
 | 
						|
    static double GetActorMagickaModified(unsigned int index) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Get the base fatigue of the actor at a certain index in the read actor list.
 | 
						|
    *
 | 
						|
    * \param index The index of the actor.
 | 
						|
    * \return The base fatigue.
 | 
						|
    */
 | 
						|
    static double GetActorFatigueBase(unsigned int index) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Get the current fatigue of the actor at a certain index in the read actor list.
 | 
						|
    *
 | 
						|
    * \param index The index of the actor.
 | 
						|
    * \return The current fatigue.
 | 
						|
    */
 | 
						|
    static double GetActorFatigueCurrent(unsigned int index) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Get the modified fatigue of the actor at a certain index in the read actor list.
 | 
						|
    *
 | 
						|
    * \param index The index of the actor.
 | 
						|
    * \return The modified fatigue.
 | 
						|
    */
 | 
						|
    static double GetActorFatigueModified(unsigned int index) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \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.
 | 
						|
    *
 | 
						|
    * \param index The index of the actor.
 | 
						|
    * \param slot The slot of the equipment item.
 | 
						|
    * \return The refId.
 | 
						|
    */
 | 
						|
    static const char *GetActorEquipmentItemRefId(unsigned int index, unsigned short slot) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \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.
 | 
						|
    *
 | 
						|
    * \param index The index of the actor.
 | 
						|
    * \param slot The slot of the equipment item.
 | 
						|
    * \return The item count.
 | 
						|
    */
 | 
						|
    static int GetActorEquipmentItemCount(unsigned int index, unsigned short slot) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \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.
 | 
						|
    *
 | 
						|
    * \param index The index of the actor.
 | 
						|
    * \param slot The slot of the equipment item.
 | 
						|
    * \return The charge.
 | 
						|
    */
 | 
						|
    static int GetActorEquipmentItemCharge(unsigned int index, unsigned short slot) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \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.
 | 
						|
    *
 | 
						|
    * \param index The index of the actor.
 | 
						|
    * \param slot The slot of the equipment item.
 | 
						|
    * \return The enchantment charge.
 | 
						|
    */
 | 
						|
    static double GetActorEquipmentItemEnchantmentCharge(unsigned int index, unsigned short slot) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Check whether the killer of the actor at a certain index in the read actor list is a player.
 | 
						|
    *
 | 
						|
    * \param index The index of the actor.
 | 
						|
    * \return Whether the actor was killed by a player.
 | 
						|
    */
 | 
						|
    static bool DoesActorHavePlayerKiller(unsigned int index) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Get the player ID of the killer of the actor at a certain index in the read actor list.
 | 
						|
    *
 | 
						|
    * \param index The index of the actor.
 | 
						|
    * \return The player ID of the killer.
 | 
						|
    */
 | 
						|
    static int GetActorKillerPid(unsigned int index) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Get the refId of the actor killer of the actor at a certain index in the read actor list.
 | 
						|
    *
 | 
						|
    * \param index The index of the actor.
 | 
						|
    * \return The refId of the killer.
 | 
						|
    */
 | 
						|
    static const char *GetActorKillerRefId(unsigned int index) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Get the refNum of the actor killer of the actor at a certain index in the read actor list.
 | 
						|
    *
 | 
						|
    * \param index The index of the actor.
 | 
						|
    * \return The refNum of the killer.
 | 
						|
    */
 | 
						|
    static unsigned int GetActorKillerRefNum(unsigned int index) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Get the mpNum of the actor killer of the actor at a certain index in the read actor list.
 | 
						|
    *
 | 
						|
    * \param index The index of the actor.
 | 
						|
    * \return The mpNum of the killer.
 | 
						|
    */
 | 
						|
    static unsigned int GetActorKillerMpNum(unsigned int index) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Get the name of the actor killer of the actor at a certain index in the read actor list.
 | 
						|
    *
 | 
						|
    * \param index The index of the actor.
 | 
						|
    * \return The name of the killer.
 | 
						|
    */
 | 
						|
    static const char *GetActorKillerName(unsigned int index) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \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.
 | 
						|
    *
 | 
						|
    * \param index The index of the actor.
 | 
						|
    * \return Whether the read actor list contains positional data.
 | 
						|
    */
 | 
						|
    static bool DoesActorHavePosition(unsigned int index) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \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.
 | 
						|
    *
 | 
						|
    * \param index The index of the actor.
 | 
						|
    * \return Whether the read actor list contains dynamic stats data.
 | 
						|
    */
 | 
						|
    static bool DoesActorHaveStatsDynamic(unsigned int index) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \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
 | 
						|
    */
 | 
						|
    static void SetActorListCell(const char* cellDescription) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \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
 | 
						|
    */
 | 
						|
    static void SetActorListAction(unsigned char action) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \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
 | 
						|
    */
 | 
						|
    static void SetActorCell(const char* cellDescription) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Set the refId of the temporary actor stored on the server.
 | 
						|
    *
 | 
						|
    * \param refId The refId.
 | 
						|
    * \return void
 | 
						|
    */
 | 
						|
    static void SetActorRefId(const char* refId) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Set the refNum of the temporary actor stored on the server.
 | 
						|
    *
 | 
						|
    * \param refNum The refNum.
 | 
						|
    * \return void
 | 
						|
    */
 | 
						|
    static void SetActorRefNum(int refNum) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Set the mpNum of the temporary actor stored on the server.
 | 
						|
    *
 | 
						|
    * \param mpNum The mpNum.
 | 
						|
    * \return void
 | 
						|
    */
 | 
						|
    static void SetActorMpNum(int mpNum) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \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
 | 
						|
    */
 | 
						|
    static void SetActorPosition(double x, double y, double z) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \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
 | 
						|
    */
 | 
						|
    static void SetActorRotation(double x, double y, double z) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Set the base health of the temporary actor stored on the server.
 | 
						|
    *
 | 
						|
    * \param value The new value.
 | 
						|
    * \return void
 | 
						|
    */
 | 
						|
    static void SetActorHealthBase(double value) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Set the current health of the temporary actor stored on the server.
 | 
						|
    *
 | 
						|
    * \param value The new value.
 | 
						|
    * \return void
 | 
						|
    */
 | 
						|
    static void SetActorHealthCurrent(double value) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Set the modified health of the temporary actor stored on the server.
 | 
						|
    *
 | 
						|
    * \param value The new value.
 | 
						|
    * \return void
 | 
						|
    */
 | 
						|
    static void SetActorHealthModified(double value) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Set the base magicka of the temporary actor stored on the server.
 | 
						|
    *
 | 
						|
    * \param value The new value.
 | 
						|
    * \return void
 | 
						|
    */
 | 
						|
    static void SetActorMagickaBase(double value) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Set the current magicka of the temporary actor stored on the server.
 | 
						|
    *
 | 
						|
    * \param value The new value.
 | 
						|
    * \return void
 | 
						|
    */
 | 
						|
    static void SetActorMagickaCurrent(double value) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Set the modified magicka of the temporary actor stored on the server.
 | 
						|
    *
 | 
						|
    * \param value The new value.
 | 
						|
    * \return void
 | 
						|
    */
 | 
						|
    static void SetActorMagickaModified(double value) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Set the base fatigue of the temporary actor stored on the server.
 | 
						|
    *
 | 
						|
    * \param value The new value.
 | 
						|
    * \return void
 | 
						|
    */
 | 
						|
    static void SetActorFatigueBase(double value) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Set the current fatigue of the temporary actor stored on the server.
 | 
						|
    *
 | 
						|
    * \param value The new value.
 | 
						|
    * \return void
 | 
						|
    */
 | 
						|
    static void SetActorFatigueCurrent(double value) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Set the modified fatigue of the temporary actor stored on the server.
 | 
						|
    *
 | 
						|
    * \param value The new value.
 | 
						|
    * \return void
 | 
						|
    */
 | 
						|
    static void SetActorFatigueModified(double value) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Set the sound of the temporary actor stored on the server.
 | 
						|
    *
 | 
						|
    * \param sound The sound.
 | 
						|
    * \return void
 | 
						|
    */
 | 
						|
    static void SetActorSound(const char* sound) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Set the AI action of the temporary actor stored on the server.
 | 
						|
    *
 | 
						|
    * \param action The new action.
 | 
						|
    * \return void
 | 
						|
    */
 | 
						|
    static void SetActorAIAction(unsigned int action) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Set a player as the AI target of the temporary actor stored on the server.
 | 
						|
    *
 | 
						|
    * \param pid The player ID.
 | 
						|
    * \return void
 | 
						|
    */
 | 
						|
    static void SetActorAITargetToPlayer(unsigned short pid) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Set another object as the AI target of the temporary actor stored on the server.
 | 
						|
    *
 | 
						|
    * \param refNum The refNum of the target object.
 | 
						|
    * \param mpNum The mpNum of the target object.
 | 
						|
    * \return void
 | 
						|
    */
 | 
						|
    static void SetActorAITargetToObject(int refNum, int mpNum) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \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
 | 
						|
    */
 | 
						|
    static void SetActorAICoordinates(double x, double y, double z) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Set the distance of the AI package associated with the current AI action.
 | 
						|
    *
 | 
						|
    * \param duration The distance of the package.
 | 
						|
    * \return void
 | 
						|
    */
 | 
						|
    static void SetActorAIDistance(unsigned int distance) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Set the duration of the AI package associated with the current AI action.
 | 
						|
    *
 | 
						|
    * \param duration The duration of the package.
 | 
						|
    * \return void
 | 
						|
    */
 | 
						|
    static void SetActorAIDuration(unsigned int duration) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \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
 | 
						|
    */
 | 
						|
    static void SetActorAIRepetition(bool shouldRepeat) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \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.
 | 
						|
    * \param enchantmentCharge The enchantment charge of the item.
 | 
						|
    * \return void
 | 
						|
    */
 | 
						|
    static void EquipActorItem(unsigned short slot, const char* refId, unsigned int count, int charge, double enchantmentCharge = -1) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \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
 | 
						|
    */
 | 
						|
    static void UnequipActorItem(unsigned short slot) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \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
 | 
						|
    */
 | 
						|
    static void AddActor() noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Send an ActorList packet.
 | 
						|
    *
 | 
						|
    * It is sent only to the player for whom the current actor list was initialized.
 | 
						|
    *
 | 
						|
    * \return void
 | 
						|
    */
 | 
						|
    static void SendActorList() noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \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
 | 
						|
    */
 | 
						|
    static void SendActorAuthority() noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Send an ActorPosition 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
 | 
						|
    */
 | 
						|
    static void SendActorPosition(bool sendToOtherVisitors, bool skipAttachedPlayer) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Send an ActorStatsDynamic 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
 | 
						|
    */
 | 
						|
    static void SendActorStatsDynamic(bool sendToOtherVisitors, bool skipAttachedPlayer) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Send an ActorEquipment 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
 | 
						|
    */
 | 
						|
    static void SendActorEquipment(bool sendToOtherVisitors, bool skipAttachedPlayer) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \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
 | 
						|
    */
 | 
						|
    static void SendActorSpeech(bool sendToOtherVisitors, bool skipAttachedPlayer) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Send an ActorAI 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
 | 
						|
    */
 | 
						|
    static void SendActorAI(bool sendToOtherVisitors, bool skipAttachedPlayer) noexcept;
 | 
						|
 | 
						|
    /**
 | 
						|
    * \brief Send an ActorCellChange 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
 | 
						|
    */
 | 
						|
    static void SendActorCellChange(bool sendToOtherVisitors, bool skipAttachedPlayer) noexcept;
 | 
						|
 | 
						|
 | 
						|
    // All methods below are deprecated versions of methods from above
 | 
						|
 | 
						|
    static void ReadLastActorList() noexcept;
 | 
						|
    static void InitializeActorList(unsigned short pid) noexcept;
 | 
						|
    static void CopyLastActorListToStore() noexcept;
 | 
						|
    static unsigned int GetActorRefNumIndex(unsigned int index) noexcept;
 | 
						|
    static unsigned int GetActorKillerRefNumIndex(unsigned int index) noexcept;
 | 
						|
    static void SetActorRefNumIndex(int refNum) noexcept;
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
#endif //OPENMW_ACTORAPI_HPP
 |