forked from mirror/openmw-tes3mp
Use LibFFI for Public & Timer APIs Use "PlayerId" type instead "unsigned short" Add GetPluginDir() function
92 lines
3.5 KiB
C
92 lines
3.5 KiB
C
#ifndef OPENMW_SPELLAPI_HPP
|
|
#define OPENMW_SPELLAPI_HPP
|
|
|
|
#include "../api.h"
|
|
|
|
#define SPELLAPI \
|
|
{"ClearSpellbookChanges", SpellFunctions::ClearSpellbookChanges},\
|
|
\
|
|
{"GetSpellbookChangesSize", SpellFunctions::GetSpellbookChangesSize},\
|
|
{"GetSpellbookChangesAction", SpellFunctions::GetSpellbookChangesAction},\
|
|
\
|
|
{"SetSpellbookChangesAction", SpellFunctions::SetSpellbookChangesAction},\
|
|
{"AddSpell", SpellFunctions::AddSpell},\
|
|
\
|
|
{"GetSpellId", SpellFunctions::GetSpellId},\
|
|
\
|
|
{"SendSpellbookChanges", SpellFunctions::SendSpellbookChanges},\
|
|
\
|
|
{"InitializeSpellbookChanges", SpellFunctions::InitializeSpellbookChanges}
|
|
|
|
NAMESPACE_BEGIN(SpellFunctions)
|
|
/**
|
|
* \brief Clear the last recorded spellbook changes for a player.
|
|
*
|
|
* This is used to initialize the sending of new PlayerSpellbook packets.
|
|
*
|
|
* \param pid The player ID whose spellbook changes should be used.
|
|
* \return void
|
|
*/
|
|
API_FUNCTION void CDECL ClearSpellbookChanges(PlayerId pid) NOEXCEPT;
|
|
|
|
/**
|
|
* \brief Get the number of indexes in a player's latest spellbook changes.
|
|
*
|
|
* \param pid The player ID whose spellbook changes should be used.
|
|
* \return The number of indexes.
|
|
*/
|
|
API_FUNCTION unsigned int CDECL GetSpellbookChangesSize(PlayerId pid) NOEXCEPT;
|
|
|
|
/**
|
|
* \brief Get the action type used in a player's latest spellbook changes.
|
|
*
|
|
* \param pid The player ID whose spellbook changes should be used.
|
|
* \return The action type (0 for SET, 1 for ADD, 2 for REMOVE).
|
|
*/
|
|
API_FUNCTION unsigned int CDECL GetSpellbookChangesAction(PlayerId pid) NOEXCEPT;
|
|
|
|
/**
|
|
* \brief Set the action type in a player's spellbook changes.
|
|
*
|
|
* \param pid The player ID whose spellbook changes should be used.
|
|
* \param action The action (0 for SET, 1 for ADD, 2 for REMOVE).
|
|
* \return void
|
|
*/
|
|
API_FUNCTION void CDECL SetSpellbookChangesAction(PlayerId pid, unsigned char action) NOEXCEPT;
|
|
|
|
/**
|
|
* \brief Add a new spell to the spellbook changes for a player.
|
|
*
|
|
* \param pid The player ID whose spellbook changes should be used.
|
|
* \param spellId The spellId of the spell.
|
|
* \return void
|
|
*/
|
|
API_FUNCTION void CDECL AddSpell(PlayerId pid, const char* spellId) NOEXCEPT;
|
|
|
|
/**
|
|
* \brief Get the spellId at a certain index in a player's latest spellbook changes.
|
|
*
|
|
* \param pid The player ID whose spellbook changes should be used.
|
|
* \param index The index of the spell.
|
|
* \return The spellId.
|
|
*/
|
|
API_FUNCTION const char *CDECL GetSpellId(PlayerId pid, unsigned int index) NOEXCEPT;
|
|
|
|
/**
|
|
* \brief Send a PlayerSpellbook packet with a player's recorded spellbook changes.
|
|
*
|
|
* \param pid The player ID whose spellbook changes should be used.
|
|
* \param sendToOtherPlayers Whether this packet should be sent to players 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
|
|
*/
|
|
API_FUNCTION void CDECL SendSpellbookChanges(PlayerId pid, bool sendToOtherPlayers, bool skipAttachedPlayer) NOEXCEPT;
|
|
|
|
// All methods below are deprecated versions of methods from above
|
|
|
|
API_FUNCTION void CDECL InitializeSpellbookChanges(PlayerId pid) NOEXCEPT;
|
|
NAMESPACE_END()
|
|
|
|
#endif //OPENMW_SPELLAPI_HPP
|