ff_u_v_mousecurs
Set SetObjectMouseCursor on the object to prevent default mouse icons.
Useful for example on doors that are plot, locked, and only for decor.
List of keywords: DEFAULT, WALK, NOWALK, ATTACK, NOATTACK, TALK, NOTALK, FOLLOW, EXAMINE, NOEXAMINE, TRANSITION, DOOR, USE, NOUSE, MAGIC, NOMAGIC, DISARM, NODISARM, ACTION, NOACTION, LOCK, NOLOCK, PUSHPIN, CREATE, NOCREATE, KILL, NOKILL, HEAL, NOHEAL, RUNARROW, WALKARROW, PICKUP
Variables
ENABLE__FF_U_V_MOUSECURSOR: (string) (opt-out) Set to “N” on module to disable.
MOUSECURSOR: (string) Set to “” (skips the event) or a value DEFAULT, ACTION, ATTACK, …
Source code
// @code
#include "ff_i_core"
const string ENABLE__FF_U_V_MOUSECURSOR = "ENABLE__FF_U_V_MOUSECURSOR";
const string MOUSECURSOR = "MOUSECURSOR";
// -----------------------------------------------------------------------------
//! @brief Apply the MOUSECURSOR variable on oObject to set its mouse cursor icon.
//! @param oObject An object.
void SetDiscovery(object oObject);
void SetDiscovery(object oObject)
{
if (!GetIsObjectValid(oObject))
return;
string sVariable = GetLocalString(oObject, MOUSECURSOR);
if (sVariable == "")
return;
sVariable = GetStringUpperCase(sVariable);
sVariable = GetStringReplace(sVariable, "MOUSECURSOR_", "");
if (FALSE) {}
else if (sVariable == "DEFAULT") { SetObjectMouseCursor(oObject, MOUSECURSOR_DEFAULT); }
else if (sVariable == "WALK") { SetObjectMouseCursor(oObject, MOUSECURSOR_WALK); }
else if (sVariable == "NOWALK") { SetObjectMouseCursor(oObject, MOUSECURSOR_NOWALK); }
else if (sVariable == "ATTACK") { SetObjectMouseCursor(oObject, MOUSECURSOR_ATTACK); }
else if (sVariable == "NOATTACK") { SetObjectMouseCursor(oObject, MOUSECURSOR_NOATTACK); }
else if (sVariable == "TALK") { SetObjectMouseCursor(oObject, MOUSECURSOR_TALK); }
else if (sVariable == "NOTALK") { SetObjectMouseCursor(oObject, MOUSECURSOR_NOTALK); }
else if (sVariable == "FOLLOW") { SetObjectMouseCursor(oObject, MOUSECURSOR_FOLLOW); }
else if (sVariable == "EXAMINE") { SetObjectMouseCursor(oObject, MOUSECURSOR_EXAMINE); }
else if (sVariable == "NOEXAMINE") { SetObjectMouseCursor(oObject, MOUSECURSOR_NOEXAMINE); }
else if (sVariable == "TRANSITION"){ SetObjectMouseCursor(oObject, MOUSECURSOR_TRANSITION); }
else if (sVariable == "DOOR") { SetObjectMouseCursor(oObject, MOUSECURSOR_DOOR); }
else if (sVariable == "USE") { SetObjectMouseCursor(oObject, MOUSECURSOR_USE); }
else if (sVariable == "NOUSE") { SetObjectMouseCursor(oObject, MOUSECURSOR_NOUSE); }
else if (sVariable == "MAGIC") { SetObjectMouseCursor(oObject, MOUSECURSOR_MAGIC); }
else if (sVariable == "NOMAGIC") { SetObjectMouseCursor(oObject, MOUSECURSOR_NOMAGIC); }
else if (sVariable == "DISARM") { SetObjectMouseCursor(oObject, MOUSECURSOR_DISARM); }
else if (sVariable == "NODISARM") { SetObjectMouseCursor(oObject, MOUSECURSOR_NODISARM); }
else if (sVariable == "ACTION") { SetObjectMouseCursor(oObject, MOUSECURSOR_ACTION); }
else if (sVariable == "NOACTION") { SetObjectMouseCursor(oObject, MOUSECURSOR_NOACTION); }
else if (sVariable == "LOCK") { SetObjectMouseCursor(oObject, MOUSECURSOR_LOCK); }
else if (sVariable == "NOLOCK") { SetObjectMouseCursor(oObject, MOUSECURSOR_NOLOCK); }
else if (sVariable == "PUSHPIN") { SetObjectMouseCursor(oObject, MOUSECURSOR_PUSHPIN); }
else if (sVariable == "CREATE") { SetObjectMouseCursor(oObject, MOUSECURSOR_CREATE); }
else if (sVariable == "NOCREATE") { SetObjectMouseCursor(oObject, MOUSECURSOR_NOCREATE); }
else if (sVariable == "KILL") { SetObjectMouseCursor(oObject, MOUSECURSOR_KILL); }
else if (sVariable == "NOKILL") { SetObjectMouseCursor(oObject, MOUSECURSOR_NOKILL); }
else if (sVariable == "HEAL") { SetObjectMouseCursor(oObject, MOUSECURSOR_HEAL); }
else if (sVariable == "NOHEAL") { SetObjectMouseCursor(oObject, MOUSECURSOR_NOHEAL); }
else if (sVariable == "RUNARROW") { SetObjectMouseCursor(oObject, MOUSECURSOR_RUNARROW); }
else if (sVariable == "WALKARROW") { SetObjectMouseCursor(oObject, MOUSECURSOR_WALKARROW); }
else if (sVariable == "PICKUP") { SetObjectMouseCursor(oObject, MOUSECURSOR_PICKUP); }
else if (GetStringIsInt(sVariable))
{
int iVariable = StringToInt(sVariable);
SetObjectMouseCursor(oObject, iVariable);
}
else
LogError("Object " + GetObjectInfo(oObject) + " mousecursor (variable: 'MOUSECURSOR', value: '" + sVariable + "') is invalid");
}
// -----------------------------------------------------------------------------
void main()
{
if (!GetModuleFlag(ENABLE__FF_U_V_MOUSECURSOR, TRUE))
return;
string sEvent = GetCurrentEvent();
if (sEvent == ON_REGISTER)
SubscribeToEvent(ON_OBJECT_CREATED, __FILE__);
else if (sEvent == ON_OBJECT_CREATED)
SetDiscovery(OBJECT_SELF);
}