EN6_PRC8/_module/nss/nwnx_player_qbs.nss
Jaysyn904 a6f6db7303 Initial commit
Initial commit.  Updated release archive.
2024-06-13 15:08:33 -04:00

208 lines
7.0 KiB
Plaintext

/// @addtogroup player
/// @{
/// @file nwnx_player_qbs.nss
/// @brief Helper script for quickbar management.
#include "nwnx_player"
/// @name Quickbar Slot Types
/// @anchor qbs_types
/// @{
const int NWNX_PLAYER_QBS_TYPE_EMPTY = 0;
const int NWNX_PLAYER_QBS_TYPE_ITEM = 1;
const int NWNX_PLAYER_QBS_TYPE_SPELL = 2;
const int NWNX_PLAYER_QBS_TYPE_SKILL = 3;
const int NWNX_PLAYER_QBS_TYPE_FEAT = 4;
const int NWNX_PLAYER_QBS_TYPE_DIALOG = 6;
const int NWNX_PLAYER_QBS_TYPE_ATTACK = 7;
const int NWNX_PLAYER_QBS_TYPE_EMOTE = 8;
const int NWNX_PLAYER_QBS_TYPE_ITEM_PROPERTY_CASTSPELL = 9;
const int NWNX_PLAYER_QBS_TYPE_MODE_TOGGLE = 10;
const int NWNX_PLAYER_QBS_TYPE_COMMAND = 18;
const int NWNX_PLAYER_QBS_TYPE_POSSESS_FAMILIAR = 38;
const int NWNX_PLAYER_QBS_TYPE_ASSOCIATE_COMMAND = 39;
const int NWNX_PLAYER_QBS_TYPE_EXAMINE = 40;
const int NWNX_PLAYER_QBS_TYPE_BARTER = 41;
const int NWNX_PLAYER_QBS_TYPE_QUICK_CHAT = 42;
const int NWNX_PLAYER_QBS_TYPE_CANCELPOLYMORPH = 43;
const int NWNX_PLAYER_QBS_TYPE_SPELLLIKEABILITY = 44;
/// @}
/// Create an empty QBS of given type
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_Empty(int type = NWNX_PLAYER_QBS_TYPE_EMPTY);
/// Create a QBS for using an item
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_UseItem(object oItem, int nPropertyID = 0);
/// Create a QBS for equipping an item
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_EquipItem(object oItem, object oSecondaryItem = OBJECT_INVALID);
/// Create a QBS for casting a spell
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_CastSpell(int nSpell, int nClassIndex = 0, int nMetamagic = METAMAGIC_NONE, int nDomainLevel = -1);
/// Create a QBS for using a skill
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_UseSkill(int nSkill);
/// Create a QBS for using a feat
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_UseFeat(int nFeat);
/// Create a QBS for starting a dialog
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_StartDialog();
/// Create a QBS for attacking
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_Attack();
/// Create a QBS for emoting
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_Emote(int nEmote);
/// Create a QBS for toggling a mode
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_ToggleMode(int nMode);
/// Create a QBS for examining
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_Examine();
/// Create a QBS for bartering
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_Barter();
/// Create a QBS for quickchat command
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_QuickChat(int nCommand);
/// Create a QBS for examining
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_PossessFamiliar();
/// Create a QBS for casting a spell
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_UseSpecialAbility(int nSpell, int nCasterLevel);
/// Create a QBS for running a command
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_Command(string sCommandLabel, string sCommandLine);
/// @}
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_Empty(int type = NWNX_PLAYER_QBS_TYPE_EMPTY)
{
struct NWNX_Player_QuickBarSlot qbs;
qbs.nObjectType = type;
qbs.oItem = OBJECT_INVALID;
qbs.oSecondaryItem = OBJECT_INVALID;
qbs.nMultiClass = 0;
qbs.sResRef = "";
qbs.sCommandLabel = "";
qbs.sCommandLine = "";
qbs.sToolTip = "";
qbs.nINTParam1 = 0;
qbs.nMetaType = 0;
qbs.nDomainLevel = 0;
qbs.nAssociateType = 0;
qbs.oAssociate = OBJECT_INVALID;
return qbs;
}
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_UseItem(object oItem, int nPropertyID = 0)
{
struct NWNX_Player_QuickBarSlot qbs = NWNX_Player_QBS_Empty(NWNX_PLAYER_QBS_TYPE_ITEM);
qbs.oItem = oItem;
qbs.nINTParam1 = nPropertyID;
return qbs;
}
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_EquipItem(object oItem, object oSecondaryItem = OBJECT_INVALID)
{
struct NWNX_Player_QuickBarSlot qbs = NWNX_Player_QBS_Empty(NWNX_PLAYER_QBS_TYPE_ITEM);
qbs.oItem = oItem;
qbs.oSecondaryItem = oSecondaryItem;
return qbs;
}
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_CastSpell(int nSpell, int nClassIndex = 0, int nMetamagic = METAMAGIC_NONE, int nDomainLevel = -1)
{
struct NWNX_Player_QuickBarSlot qbs = NWNX_Player_QBS_Empty(NWNX_PLAYER_QBS_TYPE_SPELL);
qbs.nINTParam1 = nSpell;
qbs.nMultiClass = nClassIndex;
qbs.nMetaType = nMetamagic;
qbs.nDomainLevel = nDomainLevel;
return qbs;
}
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_UseSkill(int nSkill)
{
struct NWNX_Player_QuickBarSlot qbs = NWNX_Player_QBS_Empty(NWNX_PLAYER_QBS_TYPE_SKILL);
qbs.nINTParam1 = nSkill;
return qbs;
}
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_UseFeat(int nFeat)
{
struct NWNX_Player_QuickBarSlot qbs = NWNX_Player_QBS_Empty(NWNX_PLAYER_QBS_TYPE_FEAT);
qbs.nINTParam1 = nFeat;
return qbs;
}
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_StartDialog()
{
return NWNX_Player_QBS_Empty(NWNX_PLAYER_QBS_TYPE_DIALOG);
}
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_Attack()
{
return NWNX_Player_QBS_Empty(NWNX_PLAYER_QBS_TYPE_ATTACK);
}
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_Emote(int nEmote)
{
struct NWNX_Player_QuickBarSlot qbs = NWNX_Player_QBS_Empty(NWNX_PLAYER_QBS_TYPE_EMOTE);
qbs.nINTParam1 = nEmote;
return qbs;
}
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_ToggleMode(int nMode)
{
struct NWNX_Player_QuickBarSlot qbs = NWNX_Player_QBS_Empty(NWNX_PLAYER_QBS_TYPE_MODE_TOGGLE);
qbs.nINTParam1 = nMode;
return qbs;
}
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_Examine()
{
return NWNX_Player_QBS_Empty(NWNX_PLAYER_QBS_TYPE_EXAMINE);
}
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_Barter()
{
return NWNX_Player_QBS_Empty(NWNX_PLAYER_QBS_TYPE_BARTER);
}
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_QuickChat(int nCommand)
{
struct NWNX_Player_QuickBarSlot qbs = NWNX_Player_QBS_Empty(NWNX_PLAYER_QBS_TYPE_QUICK_CHAT);
qbs.nINTParam1 = nCommand;
return qbs;
}
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_PossessFamiliar()
{
return NWNX_Player_QBS_Empty(NWNX_PLAYER_QBS_TYPE_POSSESS_FAMILIAR);
}
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_UseSpecialAbility(int nSpell, int nCasterLevel)
{
struct NWNX_Player_QuickBarSlot qbs = NWNX_Player_QBS_Empty(NWNX_PLAYER_QBS_TYPE_SPELL);
qbs.nINTParam1 = nSpell;
qbs.nDomainLevel = nCasterLevel;
return qbs;
}
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_Command(string sCommandLabel, string sCommandLine)
{
struct NWNX_Player_QuickBarSlot qbs = NWNX_Player_QBS_Empty(NWNX_PLAYER_QBS_TYPE_COMMAND);
qbs.sCommandLabel = sCommandLabel;
qbs.sCommandLine = sCommandLine;
return qbs;
}