mirror of
https://github.com/VCMP-SqMod/SqMod.git
synced 2024-11-08 08:47:17 +01:00
Minor changes in the entity types code style.
This commit is contained in:
parent
a5b353b104
commit
5c81af5026
@ -95,11 +95,15 @@ void CBlip::BindEvent(Int32 evid, Object & env, Function & func) const
|
||||
Function & event = _Core->GetBlipEvent(m_ID, evid);
|
||||
// Is the specified callback function null?
|
||||
if (func.IsNull())
|
||||
{
|
||||
event.Release(); // Then release the current callback
|
||||
}
|
||||
// Assign the specified environment and function
|
||||
else
|
||||
{
|
||||
event = Function(env.GetVM(), env, func.GetFunc());
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
Int32 CBlip::GetWorld() const
|
||||
@ -285,8 +289,10 @@ static const Object & Blip_FindByID(Int32 id)
|
||||
{
|
||||
// Does the identifier match the specified one?
|
||||
if (itr->mID == id)
|
||||
{
|
||||
return itr->mObj; // Stop searching and return this entity
|
||||
}
|
||||
}
|
||||
// Unable to locate a blip matching the specified identifier
|
||||
return NullObject();
|
||||
}
|
||||
@ -294,8 +300,10 @@ static const Object & Blip_FindByID(Int32 id)
|
||||
static const Object & Blip_FindByTag(CSStr tag)
|
||||
{
|
||||
// Perform a validity check on the specified tag
|
||||
if (!tag || *tag == 0)
|
||||
if (!tag || *tag == '\0')
|
||||
{
|
||||
SqThrowF("The specified blip tag is invalid: null/empty");
|
||||
}
|
||||
// Obtain the ends of the entity pool
|
||||
Core::Blips::const_iterator itr = _Core->GetBlips().cbegin();
|
||||
Core::Blips::const_iterator end = _Core->GetBlips().cend();
|
||||
@ -304,8 +312,10 @@ static const Object & Blip_FindByTag(CSStr tag)
|
||||
{
|
||||
// Does this entity even exist and does the tag match the specified one?
|
||||
if (itr->mInst != nullptr && itr->mInst->GetTag().compare(tag) == 0)
|
||||
{
|
||||
return itr->mObj; // Stop searching and return this entity
|
||||
}
|
||||
}
|
||||
// Unable to locate a blip matching the specified tag
|
||||
return NullObject();
|
||||
}
|
||||
@ -315,7 +325,9 @@ static const Object & Blip_FindBySprID(Int32 sprid)
|
||||
{
|
||||
// Perform a range check on the specified identifier
|
||||
if (sprid < 0)
|
||||
{
|
||||
SqThrowF("The specified sprite identifier is invalid: %d", sprid);
|
||||
}
|
||||
// Obtain the ends of the entity pool
|
||||
Core::Blips::const_iterator itr = _Core->GetBlips().cbegin();
|
||||
Core::Blips::const_iterator end = _Core->GetBlips().cend();
|
||||
@ -324,8 +336,10 @@ static const Object & Blip_FindBySprID(Int32 sprid)
|
||||
{
|
||||
// Does the identifier match the specified one?
|
||||
if (itr->mSprID == sprid)
|
||||
{
|
||||
return itr->mObj; // Stop searching and return this entity
|
||||
}
|
||||
}
|
||||
// Unable to locate a blip matching the specified identifier
|
||||
return NullObject();
|
||||
}
|
||||
|
@ -75,8 +75,10 @@ public:
|
||||
void Validate() const
|
||||
{
|
||||
if (INVALID_ENTITY(m_ID))
|
||||
{
|
||||
SqThrowF("Invalid blip reference [%s]", m_Tag.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
/* --------------------------------------------------------------------------------------------
|
||||
* Used by the script engine to compare two instances of this type.
|
||||
|
@ -108,18 +108,24 @@ void CCheckpoint::BindEvent(Int32 evid, Object & env, Function & func) const
|
||||
Function & event = _Core->GetCheckpointEvent(m_ID, evid);
|
||||
// Is the specified callback function null?
|
||||
if (func.IsNull())
|
||||
{
|
||||
event.Release(); // Then release the current callback
|
||||
}
|
||||
// Assign the specified environment and function
|
||||
else
|
||||
{
|
||||
event = Function(env.GetVM(), env, func.GetFunc());
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
bool CCheckpoint::IsStreamedFor(CPlayer & player) const
|
||||
{
|
||||
// Is the specified player even valid?
|
||||
if (!player.IsActive())
|
||||
{
|
||||
SqThrowF("Invalid player argument: null");
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Return the requested information
|
||||
@ -448,7 +454,9 @@ static const Object & Checkpoint_FindByID(Int32 id)
|
||||
{
|
||||
// Perform a range check on the specified identifier
|
||||
if (INVALID_ENTITYEX(id, SQMOD_CHECKPOINT_POOL))
|
||||
{
|
||||
SqThrowF("The specified checkpoint identifier is invalid: %d", id);
|
||||
}
|
||||
// Obtain the ends of the entity pool
|
||||
Core::Checkpoints::const_iterator itr = _Core->GetCheckpoints().cbegin();
|
||||
Core::Checkpoints::const_iterator end = _Core->GetCheckpoints().cend();
|
||||
@ -457,8 +465,10 @@ static const Object & Checkpoint_FindByID(Int32 id)
|
||||
{
|
||||
// Does the identifier match the specified one?
|
||||
if (itr->mID == id)
|
||||
{
|
||||
return itr->mObj; // Stop searching and return this entity
|
||||
}
|
||||
}
|
||||
// Unable to locate a checkpoint matching the specified identifier
|
||||
return NullObject();
|
||||
}
|
||||
@ -466,8 +476,10 @@ static const Object & Checkpoint_FindByID(Int32 id)
|
||||
static const Object & Checkpoint_FindByTag(CSStr tag)
|
||||
{
|
||||
// Perform a validity check on the specified tag
|
||||
if (!tag || *tag == 0)
|
||||
if (!tag || *tag == '\0')
|
||||
{
|
||||
SqThrowF("The specified checkpoint tag is invalid: null/empty");
|
||||
}
|
||||
// Obtain the ends of the entity pool
|
||||
Core::Checkpoints::const_iterator itr = _Core->GetCheckpoints().cbegin();
|
||||
Core::Checkpoints::const_iterator end = _Core->GetCheckpoints().cend();
|
||||
@ -476,8 +488,10 @@ static const Object & Checkpoint_FindByTag(CSStr tag)
|
||||
{
|
||||
// Does this entity even exist and does the tag match the specified one?
|
||||
if (itr->mInst != nullptr && itr->mInst->GetTag().compare(tag) == 0)
|
||||
{
|
||||
return itr->mObj; // Stop searching and return this entity
|
||||
}
|
||||
}
|
||||
// Unable to locate a checkpoint matching the specified tag
|
||||
return NullObject();
|
||||
}
|
||||
|
@ -82,8 +82,10 @@ public:
|
||||
void Validate() const
|
||||
{
|
||||
if (INVALID_ENTITY(m_ID))
|
||||
{
|
||||
SqThrowF("Invalid checkpoint reference [%s]", m_Tag.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
/* --------------------------------------------------------------------------------------------
|
||||
* Used by the script engine to compare two instances of this type.
|
||||
|
@ -107,18 +107,24 @@ void CForcefield::BindEvent(Int32 evid, Object & env, Function & func) const
|
||||
Function & event = _Core->GetForcefieldEvent(m_ID, evid);
|
||||
// Is the specified callback function null?
|
||||
if (func.IsNull())
|
||||
{
|
||||
event.Release(); // Then release the current callback
|
||||
}
|
||||
// Assign the specified environment and function
|
||||
else
|
||||
{
|
||||
event = Function(env.GetVM(), env, func.GetFunc());
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
bool CForcefield::IsStreamedFor(CPlayer & player) const
|
||||
{
|
||||
// Is the specified player even valid?
|
||||
if (!player.IsActive())
|
||||
{
|
||||
SqThrowF("Invalid player argument: null");
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Return the requested information
|
||||
@ -422,7 +428,9 @@ static const Object & Forcefield_FindByID(Int32 id)
|
||||
{
|
||||
// Perform a range check on the specified identifier
|
||||
if (INVALID_ENTITYEX(id, SQMOD_FORCEFIELD_POOL))
|
||||
{
|
||||
SqThrowF("The specified forcefield identifier is invalid: %d", id);
|
||||
}
|
||||
// Obtain the ends of the entity pool
|
||||
Core::Forcefields::const_iterator itr = _Core->GetForcefields().cbegin();
|
||||
Core::Forcefields::const_iterator end = _Core->GetForcefields().cend();
|
||||
@ -431,8 +439,10 @@ static const Object & Forcefield_FindByID(Int32 id)
|
||||
{
|
||||
// Does the identifier match the specified one?
|
||||
if (itr->mID == id)
|
||||
{
|
||||
return itr->mObj; // Stop searching and return this entity
|
||||
}
|
||||
}
|
||||
// Unable to locate a forcefield matching the specified identifier
|
||||
return NullObject();
|
||||
}
|
||||
@ -440,8 +450,10 @@ static const Object & Forcefield_FindByID(Int32 id)
|
||||
static const Object & Forcefield_FindByTag(CSStr tag)
|
||||
{
|
||||
// Perform a validity check on the specified tag
|
||||
if (!tag || *tag == 0)
|
||||
if (!tag || *tag == '\0')
|
||||
{
|
||||
SqThrowF("The specified forcefield tag is invalid: null/empty");
|
||||
}
|
||||
// Obtain the ends of the entity pool
|
||||
Core::Forcefields::const_iterator itr = _Core->GetForcefields().cbegin();
|
||||
Core::Forcefields::const_iterator end = _Core->GetForcefields().cend();
|
||||
@ -450,8 +462,10 @@ static const Object & Forcefield_FindByTag(CSStr tag)
|
||||
{
|
||||
// Does this entity even exist and does the tag match the specified one?
|
||||
if (itr->mInst != nullptr && itr->mInst->GetTag().compare(tag) == 0)
|
||||
{
|
||||
return itr->mObj; // Stop searching and return this entity
|
||||
}
|
||||
}
|
||||
// Unable to locate a forcefield matching the specified tag
|
||||
return NullObject();
|
||||
}
|
||||
|
@ -82,8 +82,10 @@ public:
|
||||
void Validate() const
|
||||
{
|
||||
if (INVALID_ENTITY(m_ID))
|
||||
{
|
||||
SqThrowF("Invalid forcefield reference [%s]", m_Tag.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
/* --------------------------------------------------------------------------------------------
|
||||
* Used by the script engine to compare two instances of this type.
|
||||
|
@ -95,11 +95,15 @@ void CKeybind::BindEvent(Int32 evid, Object & env, Function & func) const
|
||||
Function & event = _Core->GetKeybindEvent(m_ID, evid);
|
||||
// Is the specified callback function null?
|
||||
if (func.IsNull())
|
||||
{
|
||||
event.Release(); // Then release the current callback
|
||||
}
|
||||
// Assign the specified environment and function
|
||||
else
|
||||
{
|
||||
event = Function(env.GetVM(), env, func.GetFunc());
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
Int32 CKeybind::GetFirst() const
|
||||
@ -169,7 +173,9 @@ static const Object & Keybind_FindByID(Int32 id)
|
||||
{
|
||||
// Perform a range check on the specified identifier
|
||||
if (INVALID_ENTITYEX(id, SQMOD_KEYBIND_POOL))
|
||||
{
|
||||
SqThrowF("The specified keybind identifier is invalid: %d", id);
|
||||
}
|
||||
// Obtain the ends of the entity pool
|
||||
Core::Keybinds::const_iterator itr = _Core->GetKeybinds().cbegin();
|
||||
Core::Keybinds::const_iterator end = _Core->GetKeybinds().cend();
|
||||
@ -178,8 +184,10 @@ static const Object & Keybind_FindByID(Int32 id)
|
||||
{
|
||||
// Does the identifier match the specified one?
|
||||
if (itr->mID == id)
|
||||
{
|
||||
return itr->mObj; // Stop searching and return this entity
|
||||
}
|
||||
}
|
||||
// Unable to locate a keybind matching the specified identifier
|
||||
return NullObject();
|
||||
}
|
||||
@ -187,8 +195,10 @@ static const Object & Keybind_FindByID(Int32 id)
|
||||
static const Object & Keybind_FindByTag(CSStr tag)
|
||||
{
|
||||
// Perform a validity check on the specified tag
|
||||
if (!tag || *tag == 0)
|
||||
if (!tag || *tag == '\0')
|
||||
{
|
||||
SqThrowF("The specified keybind tag is invalid: null/empty");
|
||||
}
|
||||
// Obtain the ends of the entity pool
|
||||
Core::Keybinds::const_iterator itr = _Core->GetKeybinds().cbegin();
|
||||
Core::Keybinds::const_iterator end = _Core->GetKeybinds().cend();
|
||||
@ -197,8 +207,10 @@ static const Object & Keybind_FindByTag(CSStr tag)
|
||||
{
|
||||
// Does this entity even exist and does the tag match the specified one?
|
||||
if (itr->mInst != nullptr && itr->mInst->GetTag().compare(tag) == 0)
|
||||
{
|
||||
return itr->mObj; // Stop searching and return this entity
|
||||
}
|
||||
}
|
||||
// Unable to locate a keybind matching the specified tag
|
||||
return NullObject();
|
||||
}
|
||||
|
@ -75,8 +75,10 @@ public:
|
||||
void Validate() const
|
||||
{
|
||||
if (INVALID_ENTITY(m_ID))
|
||||
{
|
||||
SqThrowF("Invalid keybind reference [%s]", m_Tag.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
/* --------------------------------------------------------------------------------------------
|
||||
* Used by the script engine to compare two instances of this type.
|
||||
|
@ -102,18 +102,24 @@ void CObject::BindEvent(Int32 evid, Object & env, Function & func) const
|
||||
Function & event = _Core->GetObjectEvent(m_ID, evid);
|
||||
// Is the specified callback function null?
|
||||
if (func.IsNull())
|
||||
{
|
||||
event.Release(); // Then release the current callback
|
||||
}
|
||||
// Assign the specified environment and function
|
||||
else
|
||||
{
|
||||
event = Function(env.GetVM(), env, func.GetFunc());
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
bool CObject::IsStreamedFor(CPlayer & player) const
|
||||
{
|
||||
// Is the specified player even valid?
|
||||
if (!player.IsActive())
|
||||
{
|
||||
SqThrowF("Invalid player argument: null");
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Return the requested information
|
||||
@ -569,7 +575,9 @@ static const Object & Object_FindByID(Int32 id)
|
||||
{
|
||||
// Perform a range check on the specified identifier
|
||||
if (INVALID_ENTITYEX(id, SQMOD_OBJECT_POOL))
|
||||
{
|
||||
SqThrowF("The specified object identifier is invalid: %d", id);
|
||||
}
|
||||
// Obtain the ends of the entity pool
|
||||
Core::Objects::const_iterator itr = _Core->GetObjects().cbegin();
|
||||
Core::Objects::const_iterator end = _Core->GetObjects().cend();
|
||||
@ -578,8 +586,10 @@ static const Object & Object_FindByID(Int32 id)
|
||||
{
|
||||
// Does the identifier match the specified one?
|
||||
if (itr->mID == id)
|
||||
{
|
||||
return itr->mObj; // Stop searching and return this entity
|
||||
}
|
||||
}
|
||||
// Unable to locate a object matching the specified identifier
|
||||
return NullObject();
|
||||
}
|
||||
@ -587,7 +597,7 @@ static const Object & Object_FindByID(Int32 id)
|
||||
static const Object & Object_FindByTag(CSStr tag)
|
||||
{
|
||||
// Perform a validity check on the specified tag
|
||||
if (!tag || *tag == 0)
|
||||
if (!tag || *tag == '\0')
|
||||
SqThrowF("The specified object tag is invalid: null/empty");
|
||||
// Obtain the ends of the entity pool
|
||||
Core::Objects::const_iterator itr = _Core->GetObjects().cbegin();
|
||||
@ -597,8 +607,10 @@ static const Object & Object_FindByTag(CSStr tag)
|
||||
{
|
||||
// Does this entity even exist and does the tag match the specified one?
|
||||
if (itr->mInst != nullptr && itr->mInst->GetTag().compare(tag) == 0)
|
||||
{
|
||||
return itr->mObj; // Stop searching and return this entity
|
||||
}
|
||||
}
|
||||
// Unable to locate a object matching the specified tag
|
||||
return NullObject();
|
||||
}
|
||||
|
@ -79,8 +79,10 @@ public:
|
||||
void Validate() const
|
||||
{
|
||||
if (INVALID_ENTITY(m_ID))
|
||||
{
|
||||
SqThrowF("Invalid object reference [%s]", m_Tag.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
/* --------------------------------------------------------------------------------------------
|
||||
* Used by the script engine to compare two instances of this type.
|
||||
|
@ -100,18 +100,24 @@ void CPickup::BindEvent(Int32 evid, Object & env, Function & func) const
|
||||
Function & event = _Core->GetPickupEvent(m_ID, evid);
|
||||
// Is the specified callback function null?
|
||||
if (func.IsNull())
|
||||
{
|
||||
event.Release(); // Then release the current callback
|
||||
}
|
||||
// Assign the specified environment and function
|
||||
else
|
||||
{
|
||||
event = Function(env.GetVM(), env, func.GetFunc());
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
bool CPickup::IsStreamedFor(CPlayer & player) const
|
||||
{
|
||||
// Is the specified player even valid?
|
||||
if (!player.IsActive())
|
||||
{
|
||||
SqThrowF("Invalid player argument: null");
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Return the requested information
|
||||
@ -355,7 +361,9 @@ static const Object & Pickup_FindByID(Int32 id)
|
||||
{
|
||||
// Perform a range check on the specified identifier
|
||||
if (INVALID_ENTITYEX(id, SQMOD_PICKUP_POOL))
|
||||
{
|
||||
SqThrowF("The specified pickup identifier is invalid: %d", id);
|
||||
}
|
||||
// Obtain the ends of the entity pool
|
||||
Core::Pickups::const_iterator itr = _Core->GetPickups().cbegin();
|
||||
Core::Pickups::const_iterator end = _Core->GetPickups().cend();
|
||||
@ -364,8 +372,10 @@ static const Object & Pickup_FindByID(Int32 id)
|
||||
{
|
||||
// Does the identifier match the specified one?
|
||||
if (itr->mID == id)
|
||||
{
|
||||
return itr->mObj; // Stop searching and return this entity
|
||||
}
|
||||
}
|
||||
// Unable to locate a pickup matching the specified identifier
|
||||
return NullObject();
|
||||
}
|
||||
@ -373,8 +383,10 @@ static const Object & Pickup_FindByID(Int32 id)
|
||||
static const Object & Pickup_FindByTag(CSStr tag)
|
||||
{
|
||||
// Perform a validity check on the specified tag
|
||||
if (!tag || *tag == 0)
|
||||
if (!tag || *tag == '0')
|
||||
{
|
||||
SqThrowF("The specified pickup tag is invalid: null/empty");
|
||||
}
|
||||
// Obtain the ends of the entity pool
|
||||
Core::Pickups::const_iterator itr = _Core->GetPickups().cbegin();
|
||||
Core::Pickups::const_iterator end = _Core->GetPickups().cend();
|
||||
@ -383,8 +395,10 @@ static const Object & Pickup_FindByTag(CSStr tag)
|
||||
{
|
||||
// Does this entity even exist and does the tag match the specified one?
|
||||
if (itr->mInst != nullptr && itr->mInst->GetTag().compare(tag) == 0)
|
||||
{
|
||||
return itr->mObj; // Stop searching and return this entity
|
||||
}
|
||||
}
|
||||
// Unable to locate a pickup matching the specified tag
|
||||
return NullObject();
|
||||
}
|
||||
|
@ -78,8 +78,10 @@ public:
|
||||
void Validate() const
|
||||
{
|
||||
if (INVALID_ENTITY(m_ID))
|
||||
{
|
||||
SqThrowF("Invalid pickup reference [%s]", m_Tag.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
/* --------------------------------------------------------------------------------------------
|
||||
* Used by the script engine to compare two instances of this type.
|
||||
|
@ -99,11 +99,15 @@ void CPlayer::BindEvent(Int32 evid, Object & env, Function & func) const
|
||||
Function & event = _Core->GetPlayerEvent(m_ID, evid);
|
||||
// Is the specified callback function null?
|
||||
if (func.IsNull())
|
||||
{
|
||||
event.Release(); // Then release the current callback
|
||||
}
|
||||
// Assign the specified environment and function
|
||||
else
|
||||
{
|
||||
event = Function(env.GetVM(), env, func.GetFunc());
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
bool CPlayer::IsStreamedFor(CPlayer & player) const
|
||||
@ -992,7 +996,9 @@ void CPlayer::SetSpectator(CPlayer & target) const
|
||||
{
|
||||
// Is the specified player even valid?
|
||||
if (!target.IsActive())
|
||||
{
|
||||
SqThrowF("Invalid player argument: null");
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Perform the requested operation
|
||||
@ -1075,7 +1081,9 @@ void CPlayer::Embark(CVehicle & vehicle) const
|
||||
{
|
||||
// Is the specified vehicle even valid?
|
||||
if (!vehicle.IsActive())
|
||||
{
|
||||
SqThrowF("Invalid vehicle argument: null");
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Perform the requested operation
|
||||
@ -1087,7 +1095,9 @@ void CPlayer::Embark(CVehicle & vehicle, Int32 slot, bool allocate, bool warp) c
|
||||
{
|
||||
// Is the specified vehicle even valid?
|
||||
if (!vehicle.IsActive())
|
||||
{
|
||||
SqThrowF("Invalid vehicle argument: null");
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Perform the requested operation
|
||||
@ -1135,7 +1145,9 @@ CSStr CPlayer::GetMessagePrefix(Uint32 index) const
|
||||
{
|
||||
// Perform a range check on the specified prefix index
|
||||
if (index >= SQMOD_PLAYER_MSG_PREFIXES)
|
||||
{
|
||||
SqThrowF("Prefix index is out of range: %u >= %d", index, SQMOD_PLAYER_MSG_PREFIXES);
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Return the requested information
|
||||
@ -1147,7 +1159,9 @@ void CPlayer::SetMessagePrefix(Uint32 index, CSStr prefix) const
|
||||
{
|
||||
// Perform a range check on the specified prefix index
|
||||
if (index >= SQMOD_PLAYER_MSG_PREFIXES)
|
||||
{
|
||||
SqThrowF("Prefix index is out of range: %u >= %d", index, SQMOD_PLAYER_MSG_PREFIXES);
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Perform the requested operation
|
||||
@ -1268,10 +1282,14 @@ SQInteger CPlayer::Msg(HSQUIRRELVM vm)
|
||||
const Int32 top = sq_gettop(vm);
|
||||
// Was the message color specified?
|
||||
if (top <= 1)
|
||||
{
|
||||
return sq_throwerror(vm, "Missing message color");
|
||||
}
|
||||
// Was the message value specified?
|
||||
else if (top <= 2)
|
||||
{
|
||||
return sq_throwerror(vm, "Missing message value");
|
||||
}
|
||||
// The player instance
|
||||
CPlayer * player = nullptr;
|
||||
// The message color
|
||||
@ -1289,10 +1307,14 @@ SQInteger CPlayer::Msg(HSQUIRRELVM vm)
|
||||
}
|
||||
// Do we have a valid player instance?
|
||||
if (!player)
|
||||
{
|
||||
return sq_throwerror(vm, "Invalid player instance");
|
||||
}
|
||||
// Do we have a valid player identifier?
|
||||
else if (!player->IsActive())
|
||||
{
|
||||
return sq_throwerror(vm, "Invalid player reference");
|
||||
}
|
||||
// Do we have enough values to call the format function?
|
||||
else if (top > 3)
|
||||
{
|
||||
@ -1302,7 +1324,9 @@ SQInteger CPlayer::Msg(HSQUIRRELVM vm)
|
||||
SQRESULT ret = sqstd_format(vm, 3, &len, &msg);
|
||||
// Did the format failed?
|
||||
if (SQ_FAILED(ret))
|
||||
{
|
||||
return ret; // Propagate the exception
|
||||
}
|
||||
// Send the resulted message string
|
||||
_Func->SendClientMessage(player->GetID(), color.GetRGBA(), "%s", msg);
|
||||
}
|
||||
@ -1312,7 +1336,9 @@ SQInteger CPlayer::Msg(HSQUIRRELVM vm)
|
||||
Var< CSStr > msg(vm, 3);
|
||||
// See if the obtained value is a valid message
|
||||
if (!msg.value)
|
||||
{
|
||||
return sq_throwerror(vm, "Unable to retrieve the message");
|
||||
}
|
||||
// Send the resulted message string
|
||||
_Func->SendClientMessage(player->GetID(), color.GetRGBA(), "%s", msg.value);
|
||||
}
|
||||
@ -1326,10 +1352,14 @@ SQInteger CPlayer::MsgP(HSQUIRRELVM vm)
|
||||
const Int32 top = sq_gettop(vm);
|
||||
// Was the index of the message prefix specified?
|
||||
if (top <= 1)
|
||||
{
|
||||
return sq_throwerror(vm, "Missing prefix index");
|
||||
}
|
||||
// Was the message value specified?
|
||||
else if (top <= 2)
|
||||
{
|
||||
return sq_throwerror(vm, "Missing message value");
|
||||
}
|
||||
// The player instance
|
||||
CPlayer * player = nullptr;
|
||||
// The prefix index
|
||||
@ -1347,14 +1377,20 @@ SQInteger CPlayer::MsgP(HSQUIRRELVM vm)
|
||||
}
|
||||
// Do we have a valid player instance?
|
||||
if (!player)
|
||||
{
|
||||
return sq_throwerror(vm, "Invalid player instance");
|
||||
}
|
||||
// Do we have a valid player identifier?
|
||||
else if (!player->IsActive())
|
||||
{
|
||||
return sq_throwerror(vm, "Invalid player reference");
|
||||
}
|
||||
// Perform a range check on the specified prefix index
|
||||
else if (index > SQMOD_PLAYER_MSG_PREFIXES)
|
||||
{
|
||||
return sq_throwerror(vm, ToStrF("Prefix index is out of range: %u > %u",
|
||||
index, SQMOD_PLAYER_MSG_PREFIXES));
|
||||
}
|
||||
// Do we have enough values to call the format function?
|
||||
else if (top > 3)
|
||||
{
|
||||
@ -1364,7 +1400,9 @@ SQInteger CPlayer::MsgP(HSQUIRRELVM vm)
|
||||
SQRESULT ret = sqstd_format(vm, 3, &len, &msg);
|
||||
// Did the format failed?
|
||||
if (SQ_FAILED(ret))
|
||||
{
|
||||
return ret; // Propagate the exception
|
||||
}
|
||||
// Retrieve the associated player structure
|
||||
const auto & splayer = _Core->GetPlayer(player->GetID());
|
||||
// Send the resulted message string
|
||||
@ -1377,7 +1415,9 @@ SQInteger CPlayer::MsgP(HSQUIRRELVM vm)
|
||||
Var< CSStr > msg(vm, 3);
|
||||
// See if the obtained value is a valid message
|
||||
if (!msg.value)
|
||||
{
|
||||
return sq_throwerror(vm, "Unable to retrieve the message");
|
||||
}
|
||||
// Retrieve the associated player structure
|
||||
const auto & splayer = _Core->GetPlayer(player->GetID());
|
||||
// Send the resulted message string
|
||||
@ -1394,10 +1434,14 @@ SQInteger CPlayer::MsgEx(HSQUIRRELVM vm)
|
||||
const Int32 top = sq_gettop(vm);
|
||||
// Was the message color specified?
|
||||
if (top <= 3)
|
||||
{
|
||||
return sq_throwerror(vm, "Missing message color");
|
||||
}
|
||||
// Was the message value specified?
|
||||
else if (top <= 4)
|
||||
{
|
||||
return sq_throwerror(vm, "Missing message value");
|
||||
}
|
||||
// The player instance
|
||||
CPlayer * player = nullptr;
|
||||
// The message color
|
||||
@ -1417,10 +1461,14 @@ SQInteger CPlayer::MsgEx(HSQUIRRELVM vm)
|
||||
}
|
||||
// Do we have a valid player instance?
|
||||
if (!player)
|
||||
{
|
||||
return sq_throwerror(vm, "Invalid player instance");
|
||||
}
|
||||
// Do we have a valid player identifier?
|
||||
else if (!player->IsActive())
|
||||
{
|
||||
return sq_throwerror(vm, "Invalid player reference");
|
||||
}
|
||||
// Do we have enough values to call the format function?
|
||||
else if (top > 5)
|
||||
{
|
||||
@ -1430,7 +1478,9 @@ SQInteger CPlayer::MsgEx(HSQUIRRELVM vm)
|
||||
SQRESULT ret = sqstd_format(vm, 5, &len, &msg);
|
||||
// Did the format failed?
|
||||
if (SQ_FAILED(ret))
|
||||
{
|
||||
return ret; // Propagate the exception
|
||||
}
|
||||
// Send the resulted message string
|
||||
_Func->SendClientMessage(player->GetID(), SQMOD_PACK_RGBA(r, g, b, 0), "%s", msg);
|
||||
}
|
||||
@ -1440,7 +1490,9 @@ SQInteger CPlayer::MsgEx(HSQUIRRELVM vm)
|
||||
Var< CSStr > msg(vm, 5);
|
||||
// See if the obtained value is a valid message
|
||||
if (!msg.value)
|
||||
{
|
||||
return sq_throwerror(vm, "Unable to retrieve the message");
|
||||
}
|
||||
// Send the resulted message string
|
||||
_Func->SendClientMessage(player->GetID(), SQMOD_PACK_RGBA(r, g, b, 0), "%s", msg.value);
|
||||
}
|
||||
@ -1454,7 +1506,9 @@ SQInteger CPlayer::Message(HSQUIRRELVM vm)
|
||||
const Int32 top = sq_gettop(vm);
|
||||
// Was the message value specified?
|
||||
if (top <= 1)
|
||||
{
|
||||
return sq_throwerror(vm, "Missing message value");
|
||||
}
|
||||
// The player instance
|
||||
CPlayer * player = nullptr;
|
||||
// Attempt to extract the argument values
|
||||
@ -1469,10 +1523,14 @@ SQInteger CPlayer::Message(HSQUIRRELVM vm)
|
||||
}
|
||||
// Do we have a valid player instance?
|
||||
if (!player)
|
||||
{
|
||||
return sq_throwerror(vm, "Invalid player instance");
|
||||
}
|
||||
// Do we have a valid player identifier?
|
||||
else if (!player->IsActive())
|
||||
{
|
||||
return sq_throwerror(vm, "Invalid player reference");
|
||||
}
|
||||
// Do we have enough values to call the format function?
|
||||
else if (top > 2)
|
||||
{
|
||||
@ -1482,7 +1540,9 @@ SQInteger CPlayer::Message(HSQUIRRELVM vm)
|
||||
SQRESULT ret = sqstd_format(vm, 2, &len, &msg);
|
||||
// Did the format failed?
|
||||
if (SQ_FAILED(ret))
|
||||
{
|
||||
return ret; // Propagate the exception
|
||||
}
|
||||
// Send the resulted message string
|
||||
_Func->SendClientMessage(player->GetID(),
|
||||
_Core->GetPlayer(player->GetID()).mMessageColor, "%s", msg);
|
||||
@ -1493,7 +1553,9 @@ SQInteger CPlayer::Message(HSQUIRRELVM vm)
|
||||
Var< CSStr > msg(vm, 2);
|
||||
// See if the obtained value is a valid message
|
||||
if (!msg.value)
|
||||
{
|
||||
return sq_throwerror(vm, "Unable to retrieve the message");
|
||||
}
|
||||
// Send the resulted message string
|
||||
_Func->SendClientMessage(player->GetID(),
|
||||
_Core->GetPlayer(player->GetID()).mMessageColor, "%s", msg.value);
|
||||
@ -1508,7 +1570,9 @@ SQInteger CPlayer::Announce(HSQUIRRELVM vm)
|
||||
const Int32 top = sq_gettop(vm);
|
||||
// Was the announcement value specified?
|
||||
if (top <= 1)
|
||||
{
|
||||
return sq_throwerror(vm, "Missing announcement value");
|
||||
}
|
||||
// The player instance
|
||||
CPlayer * player = nullptr;
|
||||
// Attempt to extract the argument values
|
||||
@ -1523,10 +1587,14 @@ SQInteger CPlayer::Announce(HSQUIRRELVM vm)
|
||||
}
|
||||
// Do we have a valid player instance?
|
||||
if (!player)
|
||||
{
|
||||
return sq_throwerror(vm, "Invalid player instance");
|
||||
}
|
||||
// Do we have a valid player identifier?
|
||||
else if (!player->IsActive())
|
||||
{
|
||||
return sq_throwerror(vm, "Invalid player reference");
|
||||
}
|
||||
// Do we have enough values to call the format function?
|
||||
else if (top > 2)
|
||||
{
|
||||
@ -1536,7 +1604,9 @@ SQInteger CPlayer::Announce(HSQUIRRELVM vm)
|
||||
SQRESULT ret = sqstd_format(vm, 2, &len, &msg);
|
||||
// Did the format failed?
|
||||
if (SQ_FAILED(ret))
|
||||
{
|
||||
return ret; // Propagate the exception
|
||||
}
|
||||
// Send the resulted announcement string
|
||||
_Func->SendGameMessage(player->GetID(),
|
||||
_Core->GetPlayer(player->GetID()).mAnnounceStyle, "%s", msg);
|
||||
@ -1547,7 +1617,9 @@ SQInteger CPlayer::Announce(HSQUIRRELVM vm)
|
||||
Var< CSStr > msg(vm, 2);
|
||||
// See if the obtained value is a valid announcement
|
||||
if (!msg.value)
|
||||
{
|
||||
return sq_throwerror(vm, "Unable to retrieve the announcement");
|
||||
}
|
||||
// Send the resulted announcement string
|
||||
_Func->SendGameMessage(player->GetID(),
|
||||
_Core->GetPlayer(player->GetID()).mAnnounceStyle, "%s", msg.value);
|
||||
@ -1562,10 +1634,14 @@ SQInteger CPlayer::AnnounceEx(HSQUIRRELVM vm)
|
||||
const Int32 top = sq_gettop(vm);
|
||||
// Was the announcement style specified?
|
||||
if (top <= 1)
|
||||
{
|
||||
return sq_throwerror(vm, "Missing announcement style");
|
||||
}
|
||||
// Was the announcement value specified?
|
||||
else if (top <= 2)
|
||||
{
|
||||
return sq_throwerror(vm, "Missing announcement value");
|
||||
}
|
||||
// The player instance
|
||||
CPlayer * player = nullptr;
|
||||
// The announcement style
|
||||
@ -1583,10 +1659,14 @@ SQInteger CPlayer::AnnounceEx(HSQUIRRELVM vm)
|
||||
}
|
||||
// Do we have a valid player instance?
|
||||
if (!player)
|
||||
{
|
||||
return sq_throwerror(vm, "Invalid player instance");
|
||||
}
|
||||
// Do we have a valid player identifier?
|
||||
else if (!player->IsActive())
|
||||
{
|
||||
return sq_throwerror(vm, "Invalid player reference");
|
||||
}
|
||||
// Do we have enough values to call the format function?
|
||||
else if (top > 3)
|
||||
{
|
||||
@ -1596,7 +1676,9 @@ SQInteger CPlayer::AnnounceEx(HSQUIRRELVM vm)
|
||||
SQRESULT ret = sqstd_format(vm, 3, &len, &msg);
|
||||
// Did the format failed?
|
||||
if (SQ_FAILED(ret))
|
||||
{
|
||||
return ret; // Propagate the exception
|
||||
}
|
||||
// Send the resulted announcement string
|
||||
_Func->SendGameMessage(player->GetID(), style, "%s", msg);
|
||||
}
|
||||
@ -1606,7 +1688,9 @@ SQInteger CPlayer::AnnounceEx(HSQUIRRELVM vm)
|
||||
Var< CSStr > msg(vm, 3);
|
||||
// See if the obtained value is a valid announcement
|
||||
if (!msg.value)
|
||||
{
|
||||
return sq_throwerror(vm, "Unable to retrieve the announcement");
|
||||
}
|
||||
// Send the resulted announcement string
|
||||
_Func->SendGameMessage(player->GetID(), style, "%s", msg.value);
|
||||
}
|
||||
@ -1619,7 +1703,9 @@ static const Object & Player_FindByID(Int32 id)
|
||||
{
|
||||
// Perform a range check on the specified identifier
|
||||
if (INVALID_ENTITYEX(id, SQMOD_PLAYER_POOL))
|
||||
{
|
||||
SqThrowF("The specified player identifier is invalid: %d", id);
|
||||
}
|
||||
// Obtain the ends of the entity pool
|
||||
Core::Players::const_iterator itr = _Core->GetPlayers().cbegin();
|
||||
Core::Players::const_iterator end = _Core->GetPlayers().cend();
|
||||
@ -1628,8 +1714,10 @@ static const Object & Player_FindByID(Int32 id)
|
||||
{
|
||||
// Does the identifier match the specified one?
|
||||
if (itr->mID == id)
|
||||
{
|
||||
return itr->mObj; // Stop searching and return this entity
|
||||
}
|
||||
}
|
||||
// Unable to locate a player matching the specified identifier
|
||||
return NullObject();
|
||||
}
|
||||
@ -1637,8 +1725,10 @@ static const Object & Player_FindByID(Int32 id)
|
||||
static const Object & Player_FindByTag(CSStr tag)
|
||||
{
|
||||
// Perform a validity check on the specified tag
|
||||
if (!tag || *tag == 0)
|
||||
if (!tag || *tag == '\0')
|
||||
{
|
||||
SqThrowF("The specified player tag is invalid: null/empty");
|
||||
}
|
||||
// Obtain the ends of the entity pool
|
||||
Core::Players::const_iterator itr = _Core->GetPlayers().cbegin();
|
||||
Core::Players::const_iterator end = _Core->GetPlayers().cend();
|
||||
@ -1647,8 +1737,10 @@ static const Object & Player_FindByTag(CSStr tag)
|
||||
{
|
||||
// Does this entity even exist and does the tag match the specified one?
|
||||
if (itr->mInst != nullptr && itr->mInst->GetTag().compare(tag) == 0)
|
||||
{
|
||||
return itr->mObj; // Stop searching and return this entity
|
||||
}
|
||||
}
|
||||
// Unable to locate a player matching the specified tag
|
||||
return NullObject();
|
||||
}
|
||||
|
@ -82,8 +82,10 @@ public:
|
||||
void Validate() const
|
||||
{
|
||||
if (INVALID_ENTITY(m_ID))
|
||||
{
|
||||
SqThrowF("Invalid player reference [%s]", m_Tag.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
/* --------------------------------------------------------------------------------------------
|
||||
* Used by the script engine to compare two instances of this type.
|
||||
|
@ -97,11 +97,15 @@ void CSprite::BindEvent(Int32 evid, Object & env, Function & func) const
|
||||
Function & event = _Core->GetSpriteEvent(m_ID, evid);
|
||||
// Is the specified callback function null?
|
||||
if (func.IsNull())
|
||||
{
|
||||
event.Release(); // Then release the current callback
|
||||
}
|
||||
// Assign the specified environment and function
|
||||
else
|
||||
{
|
||||
event = Function(env.GetVM(), env, func.GetFunc());
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
void CSprite::ShowAll() const
|
||||
@ -117,7 +121,9 @@ void CSprite::ShowFor(CPlayer & player) const
|
||||
{
|
||||
// Is the specified player even valid?
|
||||
if (!player.IsActive())
|
||||
{
|
||||
SqThrowF("Invalid player argument: null");
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Perform the requested operation
|
||||
@ -130,7 +136,9 @@ void CSprite::ShowRange(Int32 first, Int32 last) const
|
||||
{
|
||||
// Validate the specified range
|
||||
if (first > last)
|
||||
{
|
||||
SqThrowF("Invalid player range: %d > %d", first, last);
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Perform the requested operation
|
||||
@ -138,10 +146,12 @@ void CSprite::ShowRange(Int32 first, Int32 last) const
|
||||
{
|
||||
// Is the currently processed player even connected?
|
||||
if (_Func->IsPlayerConnected(first))
|
||||
{
|
||||
// Then show this textdraw on his client
|
||||
_Func->ShowSprite(m_ID, first);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
void CSprite::HideAll() const
|
||||
@ -157,7 +167,9 @@ void CSprite::HideFor(CPlayer & player) const
|
||||
{
|
||||
// Is the specified player even valid?
|
||||
if (!player.IsActive())
|
||||
{
|
||||
SqThrowF("Invalid player argument: null");
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Perform the requested operation
|
||||
@ -169,7 +181,9 @@ void CSprite::HideRange(Int32 first, Int32 last) const
|
||||
{
|
||||
// Validate the specified range
|
||||
if (first > last)
|
||||
{
|
||||
SqThrowF("Invalid player range: %d > %d", first, last);
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Perform the requested operation
|
||||
@ -177,10 +191,12 @@ void CSprite::HideRange(Int32 first, Int32 last) const
|
||||
{
|
||||
// Is the currently processed player even connected?
|
||||
if (_Func->IsPlayerConnected(first))
|
||||
{
|
||||
// Then hide this textdraw on his client
|
||||
_Func->HideSprite(m_ID, first);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
void CSprite::SetPositionAll(const Vector2i & pos) const
|
||||
@ -205,7 +221,9 @@ void CSprite::SetPositionFor(CPlayer & player, const Vector2i & pos) const
|
||||
{
|
||||
// Is the specified player even valid?
|
||||
if (!player.IsActive())
|
||||
{
|
||||
SqThrowF("Invalid player argument: null");
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Perform the requested operation
|
||||
@ -217,7 +235,9 @@ void CSprite::SetPositionForEx(CPlayer & player, Int32 x, Int32 y) const
|
||||
{
|
||||
// Is the specified player even valid?
|
||||
if (!player.IsActive())
|
||||
{
|
||||
SqThrowF("Invalid player argument: null");
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Perform the requested operation
|
||||
@ -229,7 +249,9 @@ void CSprite::SetPositionRange(Int32 first, Int32 last, const Vector2i & pos) co
|
||||
{
|
||||
// Validate the specified range
|
||||
if (first > last)
|
||||
{
|
||||
SqThrowF("Invalid player range: %d > %d", first, last);
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Perform the requested operation
|
||||
@ -237,10 +259,12 @@ void CSprite::SetPositionRange(Int32 first, Int32 last, const Vector2i & pos) co
|
||||
{
|
||||
// Is the currently processed player even connected?
|
||||
if (_Func->IsPlayerConnected(first))
|
||||
{
|
||||
// Then move this textdraw on his client
|
||||
_Func->MoveSprite(m_ID, first, pos.x, pos.y);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
void CSprite::SetCenterAll(const Vector2i & pos) const
|
||||
@ -265,7 +289,9 @@ void CSprite::SetCenterFor(CPlayer & player, const Vector2i & pos) const
|
||||
{
|
||||
// Is the specified player even valid?
|
||||
if (!player.IsActive())
|
||||
{
|
||||
SqThrowF("Invalid player argument: null");
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Perform the requested operation
|
||||
@ -277,7 +303,9 @@ void CSprite::SetCenterForEx(CPlayer & player, Int32 x, Int32 y) const
|
||||
{
|
||||
// Is the specified player even valid?
|
||||
if (!player.IsActive())
|
||||
{
|
||||
SqThrowF("Invalid player argument: null");
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Perform the requested operation
|
||||
@ -289,7 +317,9 @@ void CSprite::SetCenterRange(Int32 first, Int32 last, const Vector2i & pos) cons
|
||||
{
|
||||
// Validate the specified range
|
||||
if (first > last)
|
||||
{
|
||||
SqThrowF("Invalid player range: %d > %d", first, last);
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Perform the requested operation
|
||||
@ -297,10 +327,12 @@ void CSprite::SetCenterRange(Int32 first, Int32 last, const Vector2i & pos) cons
|
||||
{
|
||||
// Is the currently processed player even connected?
|
||||
if (_Func->IsPlayerConnected(first))
|
||||
{
|
||||
// Then center this textdraw on his client
|
||||
_Func->SetSpriteCenter(m_ID, first, pos.x, pos.y);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
void CSprite::SetRotationAll(Float32 rot) const
|
||||
@ -316,7 +348,9 @@ void CSprite::SetRotationFor(CPlayer & player, Float32 rot) const
|
||||
{
|
||||
// Is the specified player even valid?
|
||||
if (!player.IsActive())
|
||||
{
|
||||
SqThrowF("Invalid player argument: null");
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Perform the requested operation
|
||||
@ -328,7 +362,9 @@ void CSprite::SetRotationRange(Int32 first, Int32 last, Float32 rot) const
|
||||
{
|
||||
// Validate the specified range
|
||||
if (first > last)
|
||||
{
|
||||
SqThrowF("Invalid player range: %d > %d", first, last);
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Perform the requested operation
|
||||
@ -336,10 +372,12 @@ void CSprite::SetRotationRange(Int32 first, Int32 last, Float32 rot) const
|
||||
{
|
||||
// Is the currently processed player even connected?
|
||||
if (_Func->IsPlayerConnected(first))
|
||||
{
|
||||
// Then rotate this textdraw on his client
|
||||
_Func->RotateSprite(m_ID, first, rot);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
void CSprite::SetAlphaAll(Uint8 alpha) const
|
||||
@ -355,7 +393,9 @@ void CSprite::SetAlphaFor(CPlayer & player, Uint8 alpha) const
|
||||
{
|
||||
// Is the specified player even valid?
|
||||
if (!player.IsActive())
|
||||
{
|
||||
SqThrowF("Invalid player argument: null");
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Perform the requested operation
|
||||
@ -367,7 +407,9 @@ void CSprite::SetAlphaRange(Int32 first, Int32 last, Uint8 alpha) const
|
||||
{
|
||||
// Validate the specified range
|
||||
if (first > last)
|
||||
{
|
||||
SqThrowF("Invalid player range: %d > %d", first, last);
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Perform the requested operation
|
||||
@ -375,10 +417,12 @@ void CSprite::SetAlphaRange(Int32 first, Int32 last, Uint8 alpha) const
|
||||
{
|
||||
// Is the currently processed player even connected?
|
||||
if (_Func->IsPlayerConnected(first))
|
||||
{
|
||||
// Then colorize this textdraw on his client
|
||||
_Func->SetSpriteAlpha(m_ID, first, alpha);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
const String & CSprite::GetFilePath() const
|
||||
@ -454,7 +498,9 @@ static const Object & Sprite_FindByID(Int32 id)
|
||||
{
|
||||
// Perform a range check on the specified identifier
|
||||
if (INVALID_ENTITYEX(id, SQMOD_SPRITE_POOL))
|
||||
{
|
||||
SqThrowF("The specified sprite identifier is invalid: %d", id);
|
||||
}
|
||||
// Obtain the ends of the entity pool
|
||||
Core::Sprites::const_iterator itr = _Core->GetSprites().cbegin();
|
||||
Core::Sprites::const_iterator end = _Core->GetSprites().cend();
|
||||
@ -463,8 +509,10 @@ static const Object & Sprite_FindByID(Int32 id)
|
||||
{
|
||||
// Does the identifier match the specified one?
|
||||
if (itr->mID == id)
|
||||
{
|
||||
return itr->mObj; // Stop searching and return this entity
|
||||
}
|
||||
}
|
||||
// Unable to locate a sprite matching the specified identifier
|
||||
return NullObject();
|
||||
}
|
||||
@ -472,8 +520,10 @@ static const Object & Sprite_FindByID(Int32 id)
|
||||
static const Object & Sprite_FindByTag(CSStr tag)
|
||||
{
|
||||
// Perform a validity check on the specified tag
|
||||
if (!tag || *tag == 0)
|
||||
if (!tag || *tag == '\0')
|
||||
{
|
||||
SqThrowF("The specified sprite tag is invalid: null/empty");
|
||||
}
|
||||
// Obtain the ends of the entity pool
|
||||
Core::Sprites::const_iterator itr = _Core->GetSprites().cbegin();
|
||||
Core::Sprites::const_iterator end = _Core->GetSprites().cend();
|
||||
@ -482,8 +532,10 @@ static const Object & Sprite_FindByTag(CSStr tag)
|
||||
{
|
||||
// Does this entity even exist and does the tag match the specified one?
|
||||
if (itr->mInst != nullptr && itr->mInst->GetTag().compare(tag) == 0)
|
||||
{
|
||||
return itr->mObj; // Stop searching and return this entity
|
||||
}
|
||||
}
|
||||
// Unable to locate a sprite matching the specified tag
|
||||
return NullObject();
|
||||
}
|
||||
|
@ -75,8 +75,10 @@ public:
|
||||
void Validate() const
|
||||
{
|
||||
if (INVALID_ENTITY(m_ID))
|
||||
{
|
||||
SqThrowF("Invalid sprite reference [%s]", m_Tag.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
/* --------------------------------------------------------------------------------------------
|
||||
* Used by the script engine to compare two instances of this type.
|
||||
|
@ -97,11 +97,15 @@ void CTextdraw::BindEvent(Int32 evid, Object & env, Function & func) const
|
||||
Function & event = _Core->GetTextdrawEvent(m_ID, evid);
|
||||
// Is the specified callback function null?
|
||||
if (func.IsNull())
|
||||
{
|
||||
event.Release(); // Then release the current callback
|
||||
}
|
||||
// Assign the specified environment and function
|
||||
else
|
||||
{
|
||||
event = Function(env.GetVM(), env, func.GetFunc());
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
void CTextdraw::ShowAll() const
|
||||
@ -117,7 +121,9 @@ void CTextdraw::ShowFor(CPlayer & player) const
|
||||
{
|
||||
// Is the specified player even valid?
|
||||
if (!player.IsActive())
|
||||
{
|
||||
SqThrowF("Invalid player argument: null");
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Perform the requested operation
|
||||
@ -129,7 +135,9 @@ void CTextdraw::ShowRange(Int32 first, Int32 last) const
|
||||
{
|
||||
// Validate the specified range
|
||||
if (first > last)
|
||||
{
|
||||
SqThrowF("Invalid player range: %d > %d", first, last);
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Perform the requested operation
|
||||
@ -137,10 +145,12 @@ void CTextdraw::ShowRange(Int32 first, Int32 last) const
|
||||
{
|
||||
// Is the currently processed player even connected?
|
||||
if (_Func->IsPlayerConnected(first))
|
||||
{
|
||||
// Then show this textdraw on his client
|
||||
_Func->ShowTextdraw(m_ID, first);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
void CTextdraw::HideAll() const
|
||||
@ -156,7 +166,9 @@ void CTextdraw::HideFor(CPlayer & player) const
|
||||
{
|
||||
// Is the specified player even valid?
|
||||
if (!player.IsActive())
|
||||
{
|
||||
SqThrowF("Invalid player argument: null");
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Perform the requested operation
|
||||
@ -168,7 +180,9 @@ void CTextdraw::HideRange(Int32 first, Int32 last) const
|
||||
{
|
||||
// Validate the specified range
|
||||
if (first > last)
|
||||
{
|
||||
SqThrowF("Invalid player range: %d > %d", first, last);
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Perform the requested operation
|
||||
@ -176,10 +190,12 @@ void CTextdraw::HideRange(Int32 first, Int32 last) const
|
||||
{
|
||||
// Is the currently processed player even connected?
|
||||
if (_Func->IsPlayerConnected(first))
|
||||
{
|
||||
// Then hide this textdraw on his client
|
||||
_Func->HideTextdraw(m_ID, first);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
void CTextdraw::SetPositionAll(const Vector2i & pos) const
|
||||
@ -204,7 +220,9 @@ void CTextdraw::SetPositionFor(CPlayer & player, const Vector2i & pos) const
|
||||
{
|
||||
// Is the specified player even valid?
|
||||
if (!player.IsActive())
|
||||
{
|
||||
SqThrowF("Invalid player argument: null");
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Perform the requested operation
|
||||
@ -216,7 +234,9 @@ void CTextdraw::SetPositionForEx(CPlayer & player, Int32 x, Int32 y) const
|
||||
{
|
||||
// Is the specified player even valid?
|
||||
if (!player.IsActive())
|
||||
{
|
||||
SqThrowF("Invalid player argument: null");
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Perform the requested operation
|
||||
@ -228,7 +248,9 @@ void CTextdraw::SetPositionRange(Int32 first, Int32 last, const Vector2i & pos)
|
||||
{
|
||||
// Validate the specified range
|
||||
if (first > last)
|
||||
{
|
||||
SqThrowF("Invalid player range: %d > %d", first, last);
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Perform the requested operation
|
||||
@ -236,10 +258,12 @@ void CTextdraw::SetPositionRange(Int32 first, Int32 last, const Vector2i & pos)
|
||||
{
|
||||
// Is the currently processed player even connected?
|
||||
if (_Func->IsPlayerConnected(first))
|
||||
{
|
||||
// Then move this textdraw on his client
|
||||
_Func->MoveTextdraw(m_ID, first, pos.x, pos.y);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
void CTextdraw::SetColorAll(const Color4 & col) const
|
||||
@ -264,7 +288,9 @@ void CTextdraw::SetColorFor(CPlayer & player, const Color4 & col) const
|
||||
{
|
||||
// Is the specified player even valid?
|
||||
if (!player.IsActive())
|
||||
{
|
||||
SqThrowF("Invalid player argument: null");
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Perform the requested operation
|
||||
@ -276,7 +302,9 @@ void CTextdraw::SetColorForEx(CPlayer & player, Uint8 r, Uint8 g, Uint8 b, Uint8
|
||||
{
|
||||
// Is the specified player even valid?
|
||||
if (!player.IsActive())
|
||||
{
|
||||
SqThrowF("Invalid player argument: null");
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Perform the requested operation
|
||||
@ -288,7 +316,9 @@ void CTextdraw::SetColorRange(Int32 first, Int32 last, const Color4 & col) const
|
||||
{
|
||||
// Validate the specified range
|
||||
if (first > last)
|
||||
{
|
||||
SqThrowF("Invalid player range: %d > %d", first, last);
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Perform the requested operation
|
||||
@ -296,10 +326,12 @@ void CTextdraw::SetColorRange(Int32 first, Int32 last, const Color4 & col) const
|
||||
{
|
||||
// Is the currently processed player even connected?
|
||||
if (_Func->IsPlayerConnected(first))
|
||||
{
|
||||
// Then colorize this textdraw on his client
|
||||
_Func->SetTextdrawColour(m_ID, first, color);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
const String & CTextdraw::GetText() const
|
||||
@ -379,7 +411,9 @@ static const Object & Textdraw_FindByID(Int32 id)
|
||||
{
|
||||
// Perform a range check on the specified identifier
|
||||
if (INVALID_ENTITYEX(id, SQMOD_TEXTDRAW_POOL))
|
||||
{
|
||||
SqThrowF("The specified textdraw identifier is invalid: %d", id);
|
||||
}
|
||||
// Obtain the ends of the entity pool
|
||||
Core::Textdraws::const_iterator itr = _Core->GetTextdraws().cbegin();
|
||||
Core::Textdraws::const_iterator end = _Core->GetTextdraws().cend();
|
||||
@ -388,8 +422,10 @@ static const Object & Textdraw_FindByID(Int32 id)
|
||||
{
|
||||
// Does the identifier match the specified one?
|
||||
if (itr->mID == id)
|
||||
{
|
||||
return itr->mObj; // Stop searching and return this entity
|
||||
}
|
||||
}
|
||||
// Unable to locate a textdraw matching the specified identifier
|
||||
return NullObject();
|
||||
}
|
||||
@ -397,8 +433,10 @@ static const Object & Textdraw_FindByID(Int32 id)
|
||||
static const Object & Textdraw_FindByTag(CSStr tag)
|
||||
{
|
||||
// Perform a validity check on the specified tag
|
||||
if (!tag || *tag == 0)
|
||||
if (!tag || *tag == '\0')
|
||||
{
|
||||
SqThrowF("The specified textdraw tag is invalid: null/empty");
|
||||
}
|
||||
// Obtain the ends of the entity pool
|
||||
Core::Textdraws::const_iterator itr = _Core->GetTextdraws().cbegin();
|
||||
Core::Textdraws::const_iterator end = _Core->GetTextdraws().cend();
|
||||
@ -407,8 +445,10 @@ static const Object & Textdraw_FindByTag(CSStr tag)
|
||||
{
|
||||
// Does this entity even exist and does the tag match the specified one?
|
||||
if (itr->mInst != nullptr && itr->mInst->GetTag().compare(tag) == 0)
|
||||
{
|
||||
return itr->mObj; // Stop searching and return this entity
|
||||
}
|
||||
}
|
||||
// Unable to locate a textdraw matching the specified tag
|
||||
return NullObject();
|
||||
}
|
||||
|
@ -75,8 +75,10 @@ public:
|
||||
void Validate() const
|
||||
{
|
||||
if (INVALID_ENTITY(m_ID))
|
||||
{
|
||||
SqThrowF("Invalid textdraw reference [%s]", m_Tag.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
/* --------------------------------------------------------------------------------------------
|
||||
* Used by the script engine to compare two instances of this type.
|
||||
|
@ -103,18 +103,24 @@ void CVehicle::BindEvent(Int32 evid, Object & env, Function & func) const
|
||||
Function & event = _Core->GetVehicleEvent(m_ID, evid);
|
||||
// Is the specified callback function null?
|
||||
if (func.IsNull())
|
||||
{
|
||||
event.Release(); // Then release the current callback
|
||||
}
|
||||
// Assign the specified environment and function
|
||||
else
|
||||
{
|
||||
event = Function(env.GetVM(), env, func.GetFunc());
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
bool CVehicle::IsStreamedFor(CPlayer & player) const
|
||||
{
|
||||
// Is the specified player even valid?
|
||||
if (!player.IsActive())
|
||||
{
|
||||
SqThrowF("Invalid player argument: null");
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Return the requested information
|
||||
@ -929,7 +935,9 @@ void CVehicle::Embark(CPlayer & player) const
|
||||
{
|
||||
// Is the specified player even valid?
|
||||
if (!player.IsActive())
|
||||
{
|
||||
SqThrowF("Invalid player argument: null");
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Perform the requested operation
|
||||
@ -941,7 +949,9 @@ void CVehicle::Embark(CPlayer & player, Int32 slot, bool allocate, bool warp) co
|
||||
{
|
||||
// Is the specified player even valid?
|
||||
if (!player.IsActive())
|
||||
{
|
||||
SqThrowF("Invalid player argument: null");
|
||||
}
|
||||
// Validate the managed identifier
|
||||
Validate();
|
||||
// Perform the requested operation
|
||||
@ -1224,7 +1234,9 @@ static const Object & Vehicle_FindByID(Int32 id)
|
||||
{
|
||||
// Perform a range check on the specified identifier
|
||||
if (INVALID_ENTITYEX(id, SQMOD_VEHICLE_POOL))
|
||||
{
|
||||
SqThrowF("The specified vehicle identifier is invalid: %d", id);
|
||||
}
|
||||
// Obtain the ends of the entity pool
|
||||
Core::Vehicles::const_iterator itr = _Core->GetVehicles().cbegin();
|
||||
Core::Vehicles::const_iterator end = _Core->GetVehicles().cend();
|
||||
@ -1233,8 +1245,10 @@ static const Object & Vehicle_FindByID(Int32 id)
|
||||
{
|
||||
// Does the identifier match the specified one?
|
||||
if (itr->mID == id)
|
||||
{
|
||||
return itr->mObj; // Stop searching and return this entity
|
||||
}
|
||||
}
|
||||
// Unable to locate a vehicle matching the specified identifier
|
||||
return NullObject();
|
||||
}
|
||||
@ -1242,8 +1256,10 @@ static const Object & Vehicle_FindByID(Int32 id)
|
||||
static const Object & Vehicle_FindByTag(CSStr tag)
|
||||
{
|
||||
// Perform a validity check on the specified tag
|
||||
if (!tag || *tag == 0)
|
||||
if (!tag || *tag == '\0')
|
||||
{
|
||||
SqThrowF("The specified vehicle tag is invalid: null/empty");
|
||||
}
|
||||
// Obtain the ends of the entity pool
|
||||
Core::Vehicles::const_iterator itr = _Core->GetVehicles().cbegin();
|
||||
Core::Vehicles::const_iterator end = _Core->GetVehicles().cend();
|
||||
@ -1252,8 +1268,10 @@ static const Object & Vehicle_FindByTag(CSStr tag)
|
||||
{
|
||||
// Does this entity even exist and does the tag match the specified one?
|
||||
if (itr->mInst != nullptr && itr->mInst->GetTag().compare(tag) == 0)
|
||||
{
|
||||
return itr->mObj; // Stop searching and return this entity
|
||||
}
|
||||
}
|
||||
// Unable to locate a vehicle matching the specified tag
|
||||
return NullObject();
|
||||
}
|
||||
|
@ -80,8 +80,10 @@ public:
|
||||
void Validate() const
|
||||
{
|
||||
if (INVALID_ENTITY(m_ID))
|
||||
{
|
||||
SqThrowF("Invalid vehicle reference [%s]", m_Tag.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
/* --------------------------------------------------------------------------------------------
|
||||
* Used by the script engine to compare two instances of this type.
|
||||
|
@ -22,36 +22,82 @@ static Object & GetVehicle(Int32 id) { return _Core->GetVehicle(id).mObj; }
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
static bool DelBlip(Int32 id, Int32 header, Object & payload)
|
||||
{ return _Core->DelBlip(id, header, payload); }
|
||||
{
|
||||
return _Core->DelBlip(id, header, payload);
|
||||
}
|
||||
|
||||
static bool DelCheckpoint(Int32 id, Int32 header, Object & payload)
|
||||
{ return _Core->DelCheckpoint(id, header, payload); }
|
||||
{
|
||||
return _Core->DelCheckpoint(id, header, payload);
|
||||
}
|
||||
|
||||
static bool DelForcefield(Int32 id, Int32 header, Object & payload)
|
||||
{ return _Core->DelForcefield(id, header, payload); }
|
||||
{
|
||||
return _Core->DelForcefield(id, header, payload);
|
||||
}
|
||||
|
||||
static bool DelKeybind(Int32 id, Int32 header, Object & payload)
|
||||
{ return _Core->DelKeybind(id, header, payload); }
|
||||
{
|
||||
return _Core->DelKeybind(id, header, payload);
|
||||
}
|
||||
|
||||
static bool DelObject(Int32 id, Int32 header, Object & payload)
|
||||
{ return _Core->DelObject(id, header, payload); }
|
||||
{
|
||||
return _Core->DelObject(id, header, payload);
|
||||
}
|
||||
|
||||
static bool DelPickup(Int32 id, Int32 header, Object & payload)
|
||||
{ return _Core->DelPickup(id, header, payload); }
|
||||
{
|
||||
return _Core->DelPickup(id, header, payload);
|
||||
}
|
||||
|
||||
static bool DelSprite(Int32 id, Int32 header, Object & payload)
|
||||
{ return _Core->DelSprite(id, header, payload); }
|
||||
{
|
||||
return _Core->DelSprite(id, header, payload);
|
||||
}
|
||||
|
||||
static bool DelTextdraw(Int32 id, Int32 header, Object & payload)
|
||||
{ return _Core->DelTextdraw(id, header, payload); }
|
||||
{
|
||||
return _Core->DelTextdraw(id, header, payload);
|
||||
}
|
||||
|
||||
static bool DelVehicle(Int32 id, Int32 header, Object & payload)
|
||||
{ return _Core->DelVehicle(id, header, payload); }
|
||||
{
|
||||
return _Core->DelVehicle(id, header, payload);
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
static bool BindEvent(Int32 id, Object & env, Function & func)
|
||||
{ return _Core->BindEvent(id, env, func); }
|
||||
{
|
||||
return _Core->BindEvent(id, env, func);
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
static Int32 GetState() { return _Core->GetState(); }
|
||||
static void SetState(Int32 value) { return _Core->SetState(value); }
|
||||
static Int32 GetState()
|
||||
{
|
||||
return _Core->GetState();
|
||||
}
|
||||
|
||||
static void SetState(Int32 value)
|
||||
{
|
||||
return _Core->SetState(value);
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
static CSStr GetOption(CSStr name) { return _Core->GetOption(name); }
|
||||
static CSStr GetOptionOr(CSStr name, CSStr value) { return _Core->GetOption(name, value); }
|
||||
static void SetOption(CSStr name, CSStr value) { return _Core->SetOption(name, value); }
|
||||
static CSStr GetOption(CSStr name)
|
||||
{
|
||||
return _Core->GetOption(name);
|
||||
}
|
||||
|
||||
static CSStr GetOptionOr(CSStr name, CSStr value)
|
||||
{
|
||||
return _Core->GetOption(name, value);
|
||||
}
|
||||
|
||||
static void SetOption(CSStr name, CSStr value)
|
||||
{
|
||||
return _Core->SetOption(name, value);
|
||||
}
|
||||
|
||||
// ================================================================================================
|
||||
void Register_Core(HSQUIRRELVM vm)
|
||||
@ -92,7 +138,9 @@ template < Uint8 L, bool S > static SQInteger LogBasicMessage(HSQUIRRELVM vm)
|
||||
const Int32 top = sq_gettop(vm);
|
||||
// Was the message value specified?
|
||||
if (top <= 1)
|
||||
{
|
||||
return sq_throwerror(vm, "Missing message value");
|
||||
}
|
||||
// Do we have enough values to call the format function?
|
||||
else if (top > 2)
|
||||
{
|
||||
@ -102,7 +150,9 @@ template < Uint8 L, bool S > static SQInteger LogBasicMessage(HSQUIRRELVM vm)
|
||||
SQRESULT ret = sqstd_format(vm, 2, &len, &msg);
|
||||
// Did the format failed?
|
||||
if (SQ_FAILED(ret))
|
||||
{
|
||||
return ret; // Propagate the exception
|
||||
}
|
||||
// Log the resulted string value
|
||||
_Log->Message(L, S, "%s", msg);
|
||||
}
|
||||
@ -112,7 +162,9 @@ template < Uint8 L, bool S > static SQInteger LogBasicMessage(HSQUIRRELVM vm)
|
||||
Var< CSStr > msg(vm, 2);
|
||||
// See if the obtained value is a valid string
|
||||
if (!msg.value)
|
||||
{
|
||||
return sq_throwerror(vm, "Unable to retrieve the value");
|
||||
}
|
||||
// Log the resulted string value
|
||||
_Log->Message(L, S, "%s", msg.value);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user