mirror of
https://github.com/VCMP-SqMod/SqMod.git
synced 2024-11-08 00:37:15 +01:00
Return entity instance instead of object.
Implement helper entity iteration functions.
This commit is contained in:
parent
45c857f439
commit
26cb65fcbc
@ -1709,12 +1709,12 @@ void Core::DeallocVehicle(int32_t id, bool destroy, int32_t header, LightObj & p
|
|||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------------------
|
||||||
LightObj & Core::NewBlip(int32_t index, int32_t world, float x, float y, float z,
|
BlipInst & Core::NewBlip(int32_t index, int32_t world, float x, float y, float z,
|
||||||
int32_t scale, uint32_t color, int32_t sprid,
|
int32_t scale, uint32_t color, int32_t spr_id,
|
||||||
int32_t header, LightObj & payload)
|
int32_t header, LightObj & payload)
|
||||||
{
|
{
|
||||||
// Request the server to create this entity
|
// Request the server to create this entity
|
||||||
const int32_t id = _Func->CreateCoordBlip(index, world, x, y, z, scale, color, sprid);
|
const int32_t id = _Func->CreateCoordBlip(index, world, x, y, z, scale, color, spr_id);
|
||||||
// See if the entity creation failed on the server
|
// See if the entity creation failed on the server
|
||||||
if (_Func->GetLastError() == vcmpErrorPoolExhausted)
|
if (_Func->GetLastError() == vcmpErrorPoolExhausted)
|
||||||
{
|
{
|
||||||
@ -1733,11 +1733,11 @@ LightObj & Core::NewBlip(int32_t index, int32_t world, float x, float y, float z
|
|||||||
inst.mFlags |= ENF_OWNED;
|
inst.mFlags |= ENF_OWNED;
|
||||||
}
|
}
|
||||||
// Now we can return the script object
|
// Now we can return the script object
|
||||||
return inst.mObj;
|
return inst;
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------------------
|
||||||
LightObj & Core::NewCheckpoint(int32_t player, int32_t world, bool sphere, float x, float y, float z,
|
CheckpointInst & Core::NewCheckpoint(int32_t player, int32_t world, bool sphere, float x, float y, float z,
|
||||||
uint8_t r, uint8_t g, uint8_t b, uint8_t a, float radius,
|
uint8_t r, uint8_t g, uint8_t b, uint8_t a, float radius,
|
||||||
int32_t header, LightObj & payload)
|
int32_t header, LightObj & payload)
|
||||||
{
|
{
|
||||||
@ -1765,11 +1765,11 @@ LightObj & Core::NewCheckpoint(int32_t player, int32_t world, bool sphere, float
|
|||||||
inst.mFlags |= ENF_OWNED;
|
inst.mFlags |= ENF_OWNED;
|
||||||
}
|
}
|
||||||
// Now we can return the script object
|
// Now we can return the script object
|
||||||
return inst.mObj;
|
return inst;
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------------------
|
||||||
LightObj & Core::NewKeyBind(int32_t slot, bool release, int32_t primary, int32_t secondary, int32_t alternative,
|
KeyBindInst & Core::NewKeyBind(int32_t slot, bool release, int32_t primary, int32_t secondary, int32_t alternative,
|
||||||
int32_t header, LightObj & payload)
|
int32_t header, LightObj & payload)
|
||||||
{
|
{
|
||||||
// Should we obtain a new keybind slot automatically?
|
// Should we obtain a new keybind slot automatically?
|
||||||
@ -1797,11 +1797,11 @@ LightObj & Core::NewKeyBind(int32_t slot, bool release, int32_t primary, int32_t
|
|||||||
inst.mFlags |= ENF_OWNED;
|
inst.mFlags |= ENF_OWNED;
|
||||||
}
|
}
|
||||||
// Now we can return the script object
|
// Now we can return the script object
|
||||||
return inst.mObj;
|
return inst;
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------------------
|
||||||
LightObj & Core::NewObject(int32_t model, int32_t world, float x, float y, float z, int32_t alpha,
|
ObjectInst & Core::NewObject(int32_t model, int32_t world, float x, float y, float z, int32_t alpha,
|
||||||
int32_t header, LightObj & payload)
|
int32_t header, LightObj & payload)
|
||||||
{
|
{
|
||||||
// Request the server to create this entity
|
// Request the server to create this entity
|
||||||
@ -1824,11 +1824,11 @@ LightObj & Core::NewObject(int32_t model, int32_t world, float x, float y, float
|
|||||||
inst.mFlags |= ENF_OWNED;
|
inst.mFlags |= ENF_OWNED;
|
||||||
}
|
}
|
||||||
// Now we can return the script object
|
// Now we can return the script object
|
||||||
return inst.mObj;
|
return inst;
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------------------
|
||||||
LightObj & Core::NewPickup(int32_t model, int32_t world, int32_t quantity,
|
PickupInst & Core::NewPickup(int32_t model, int32_t world, int32_t quantity,
|
||||||
float x, float y, float z, int32_t alpha, bool automatic,
|
float x, float y, float z, int32_t alpha, bool automatic,
|
||||||
int32_t header, LightObj & payload)
|
int32_t header, LightObj & payload)
|
||||||
{
|
{
|
||||||
@ -1852,11 +1852,11 @@ LightObj & Core::NewPickup(int32_t model, int32_t world, int32_t quantity,
|
|||||||
inst.mFlags |= ENF_OWNED;
|
inst.mFlags |= ENF_OWNED;
|
||||||
}
|
}
|
||||||
// Now we can return the script object
|
// Now we can return the script object
|
||||||
return inst.mObj;
|
return inst;
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------------------
|
||||||
LightObj & Core::NewVehicle(int32_t model, int32_t world, float x, float y, float z,
|
VehicleInst & Core::NewVehicle(int32_t model, int32_t world, float x, float y, float z,
|
||||||
float angle, int32_t primary, int32_t secondary,
|
float angle, int32_t primary, int32_t secondary,
|
||||||
int32_t header, LightObj & payload)
|
int32_t header, LightObj & payload)
|
||||||
{
|
{
|
||||||
@ -1885,7 +1885,7 @@ LightObj & Core::NewVehicle(int32_t model, int32_t world, float x, float y, floa
|
|||||||
inst.mFlags |= ENF_OWNED;
|
inst.mFlags |= ENF_OWNED;
|
||||||
}
|
}
|
||||||
// Now we can return the script object
|
// Now we can return the script object
|
||||||
return inst.mObj;
|
return inst;
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------------------
|
||||||
|
@ -62,7 +62,7 @@ private:
|
|||||||
// --------------------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------------------
|
||||||
int32_t m_State; // Current plug-in state.
|
int32_t m_State; // Current plug-in state.
|
||||||
#ifdef VCMP_ENABLE_OFFICIAL
|
#ifdef VCMP_ENABLE_OFFICIAL
|
||||||
bool m_Official; // Whether official support is enabked.
|
bool m_Official; // Whether official support is enabled.
|
||||||
#endif
|
#endif
|
||||||
HSQUIRRELVM m_VM; // Script virtual machine.
|
HSQUIRRELVM m_VM; // Script virtual machine.
|
||||||
Scripts m_Scripts; // Loaded scripts objects.
|
Scripts m_Scripts; // Loaded scripts objects.
|
||||||
@ -219,7 +219,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
/* --------------------------------------------------------------------------------------------
|
||||||
* See whether area tracking should be enabled on newlly created entities.
|
* See whether area tracking should be enabled on newly created entities.
|
||||||
*/
|
*/
|
||||||
SQMOD_NODISCARD bool AreasEnabled() const
|
SQMOD_NODISCARD bool AreasEnabled() const
|
||||||
{
|
{
|
||||||
@ -227,7 +227,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
/* --------------------------------------------------------------------------------------------
|
||||||
* Toggle whether area tracking should be enabled on newlly created entities.
|
* Toggle whether area tracking should be enabled on newly created entities.
|
||||||
*/
|
*/
|
||||||
void AreasEnabled(bool toggle)
|
void AreasEnabled(bool toggle)
|
||||||
{
|
{
|
||||||
@ -308,7 +308,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
/* --------------------------------------------------------------------------------------------
|
||||||
* Retrieve the postload signal if not complete.
|
* Retrieve the post-load signal if not complete.
|
||||||
*/
|
*/
|
||||||
SQMOD_NODISCARD LightObj & GetPostLoadEvent()
|
SQMOD_NODISCARD LightObj & GetPostLoadEvent()
|
||||||
{
|
{
|
||||||
@ -431,7 +431,7 @@ protected:
|
|||||||
VehicleInst & AllocVehicle(int32_t id, bool owned, int32_t header, LightObj & payload);
|
VehicleInst & AllocVehicle(int32_t id, bool owned, int32_t header, LightObj & payload);
|
||||||
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
/* --------------------------------------------------------------------------------------------
|
||||||
* Entity deallocator.
|
* Entity de-allocator.
|
||||||
*/
|
*/
|
||||||
void DeallocBlip(int32_t id, bool destroy, int32_t header, LightObj & payload);
|
void DeallocBlip(int32_t id, bool destroy, int32_t header, LightObj & payload);
|
||||||
void DeallocCheckpoint(int32_t id, bool destroy, int32_t header, LightObj & payload);
|
void DeallocCheckpoint(int32_t id, bool destroy, int32_t header, LightObj & payload);
|
||||||
@ -445,26 +445,26 @@ public:
|
|||||||
/* --------------------------------------------------------------------------------------------
|
/* --------------------------------------------------------------------------------------------
|
||||||
* Entity creators.
|
* Entity creators.
|
||||||
*/
|
*/
|
||||||
LightObj & NewBlip(int32_t index, int32_t world, float x, float y, float z,
|
BlipInst & NewBlip(int32_t index, int32_t world, float x, float y, float z,
|
||||||
int32_t scale, uint32_t color, int32_t sprid,
|
int32_t scale, uint32_t color, int32_t spr_id,
|
||||||
int32_t header, LightObj & payload);
|
int32_t header, LightObj & payload);
|
||||||
|
|
||||||
LightObj & NewCheckpoint(int32_t player, int32_t world, bool sphere, float x, float y, float z,
|
CheckpointInst & NewCheckpoint(int32_t player, int32_t world, bool sphere, float x, float y, float z,
|
||||||
uint8_t r, uint8_t g, uint8_t b, uint8_t a, float radius,
|
uint8_t r, uint8_t g, uint8_t b, uint8_t a, float radius,
|
||||||
int32_t header, LightObj & payload);
|
int32_t header, LightObj & payload);
|
||||||
|
|
||||||
LightObj & NewKeyBind(int32_t slot, bool release,
|
KeyBindInst & NewKeyBind(int32_t slot, bool release,
|
||||||
int32_t primary, int32_t secondary, int32_t alternative,
|
int32_t primary, int32_t secondary, int32_t alternative,
|
||||||
int32_t header, LightObj & payload);
|
int32_t header, LightObj & payload);
|
||||||
|
|
||||||
LightObj & NewObject(int32_t model, int32_t world, float x, float y, float z,
|
ObjectInst & NewObject(int32_t model, int32_t world, float x, float y, float z,
|
||||||
int32_t alpha, int32_t header, LightObj & payload);
|
int32_t alpha, int32_t header, LightObj & payload);
|
||||||
|
|
||||||
LightObj & NewPickup(int32_t model, int32_t world, int32_t quantity,
|
PickupInst & NewPickup(int32_t model, int32_t world, int32_t quantity,
|
||||||
float x, float y, float z, int32_t alpha, bool automatic,
|
float x, float y, float z, int32_t alpha, bool automatic,
|
||||||
int32_t header, LightObj & payload);
|
int32_t header, LightObj & payload);
|
||||||
|
|
||||||
LightObj & NewVehicle(int32_t model, int32_t world, float x, float y, float z,
|
VehicleInst & NewVehicle(int32_t model, int32_t world, float x, float y, float z,
|
||||||
float angle, int32_t primary, int32_t secondary,
|
float angle, int32_t primary, int32_t secondary,
|
||||||
int32_t header, LightObj & payload);
|
int32_t header, LightObj & payload);
|
||||||
|
|
||||||
@ -543,21 +543,21 @@ public:
|
|||||||
*/
|
*/
|
||||||
void EmitBlipCreated(int32_t blip, int32_t header, LightObj & payload);
|
void EmitBlipCreated(int32_t blip, int32_t header, LightObj & payload);
|
||||||
void EmitCheckpointCreated(int32_t checkpoint, int32_t header, LightObj & payload);
|
void EmitCheckpointCreated(int32_t checkpoint, int32_t header, LightObj & payload);
|
||||||
void EmitKeyBindCreated(int32_t keybind, int32_t header, LightObj & payload);
|
void EmitKeyBindCreated(int32_t key_bind, int32_t header, LightObj & payload);
|
||||||
void EmitObjectCreated(int32_t object, int32_t header, LightObj & payload);
|
void EmitObjectCreated(int32_t object, int32_t header, LightObj & payload);
|
||||||
void EmitPickupCreated(int32_t pickup, int32_t header, LightObj & payload);
|
void EmitPickupCreated(int32_t pickup, int32_t header, LightObj & payload);
|
||||||
void EmitPlayerCreated(int32_t player, int32_t header, LightObj & payload);
|
void EmitPlayerCreated(int32_t player, int32_t header, LightObj & payload);
|
||||||
void EmitVehicleCreated(int32_t vehicle, int32_t header, LightObj & payload);
|
void EmitVehicleCreated(int32_t vehicle, int32_t header, LightObj & payload);
|
||||||
void EmitBlipDestroyed(int32_t blip, int32_t header, LightObj & payload);
|
void EmitBlipDestroyed(int32_t blip, int32_t header, LightObj & payload);
|
||||||
void EmitCheckpointDestroyed(int32_t checkpoint, int32_t header, LightObj & payload);
|
void EmitCheckpointDestroyed(int32_t checkpoint, int32_t header, LightObj & payload);
|
||||||
void EmitKeyBindDestroyed(int32_t keybind, int32_t header, LightObj & payload);
|
void EmitKeyBindDestroyed(int32_t key_bind, int32_t header, LightObj & payload);
|
||||||
void EmitObjectDestroyed(int32_t object, int32_t header, LightObj & payload);
|
void EmitObjectDestroyed(int32_t object, int32_t header, LightObj & payload);
|
||||||
void EmitPickupDestroyed(int32_t pickup, int32_t header, LightObj & payload);
|
void EmitPickupDestroyed(int32_t pickup, int32_t header, LightObj & payload);
|
||||||
void EmitPlayerDestroyed(int32_t player, int32_t header, LightObj & payload);
|
void EmitPlayerDestroyed(int32_t player, int32_t header, LightObj & payload);
|
||||||
void EmitVehicleDestroyed(int32_t vehicle, int32_t header, LightObj & payload);
|
void EmitVehicleDestroyed(int32_t vehicle, int32_t header, LightObj & payload);
|
||||||
void EmitBlipCustom(int32_t blip, int32_t header, LightObj & payload);
|
void EmitBlipCustom(int32_t blip, int32_t header, LightObj & payload);
|
||||||
void EmitCheckpointCustom(int32_t checkpoint, int32_t header, LightObj & payload);
|
void EmitCheckpointCustom(int32_t checkpoint, int32_t header, LightObj & payload);
|
||||||
void EmitKeyBindCustom(int32_t keybind, int32_t header, LightObj & payload);
|
void EmitKeyBindCustom(int32_t key_bind, int32_t header, LightObj & payload);
|
||||||
void EmitObjectCustom(int32_t object, int32_t header, LightObj & payload);
|
void EmitObjectCustom(int32_t object, int32_t header, LightObj & payload);
|
||||||
void EmitPickupCustom(int32_t pickup, int32_t header, LightObj & payload);
|
void EmitPickupCustom(int32_t pickup, int32_t header, LightObj & payload);
|
||||||
void EmitPlayerCustom(int32_t player, int32_t header, LightObj & payload);
|
void EmitPlayerCustom(int32_t player, int32_t header, LightObj & payload);
|
||||||
@ -863,7 +863,7 @@ struct CoreState
|
|||||||
* Backup the current core state.
|
* Backup the current core state.
|
||||||
*/
|
*/
|
||||||
CoreState()
|
CoreState()
|
||||||
: m_State(Core::Get().GetState()), m_Start(m_Start)
|
: m_State(Core::Get().GetState()), m_Start(m_State)
|
||||||
{
|
{
|
||||||
//...
|
//...
|
||||||
}
|
}
|
||||||
@ -945,4 +945,64 @@ protected:
|
|||||||
int m_Start; // The core state at the time when this instance was created.
|
int m_Start; // The core state at the time when this instance was created.
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------------------------------------------
|
||||||
|
* Generic implementation of entity iteration.
|
||||||
|
*/
|
||||||
|
template < class T, class F > inline void ForeachEntity(std::vector< T > & vec, F cb)
|
||||||
|
{
|
||||||
|
for (auto & e : vec)
|
||||||
|
{
|
||||||
|
cb(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Entity iteration.
|
||||||
|
template < class F > inline void ForeachBlip(F f) { ForeachEntity(Core::Get().GetBlips(), std::forward< F >(f)); }
|
||||||
|
template < class F > inline void ForeachCheckpoint(F f) { ForeachEntity(Core::Get().GetCheckpoints(), std::forward< F >(f)); }
|
||||||
|
template < class F > inline void ForeachObject(F f) { ForeachEntity(Core::Get().GetObjs(), std::forward< F >(f)); }
|
||||||
|
template < class F > inline void ForeachPickup(F f) { ForeachEntity(Core::Get().GetPickups(), std::forward< F >(f)); }
|
||||||
|
template < class F > inline void ForeachPlayer(F f) { ForeachEntity(Core::Get().GetPlayers(), std::forward< F >(f)); }
|
||||||
|
template < class F > inline void ForeachVehicle(F f) { ForeachEntity(Core::Get().GetVehicles(), std::forward< F >(f)); }
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------------------------------------------
|
||||||
|
* Generic implementation of active entity iteration.
|
||||||
|
*/
|
||||||
|
template < class T, class F > inline void ForeachActiveEntity(const std::vector< T > & vec, F cb)
|
||||||
|
{
|
||||||
|
for (const auto & e : vec)
|
||||||
|
{
|
||||||
|
if (VALID_ENTITY(e.mID)) cb(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Entity iteration.
|
||||||
|
template < class F > inline void ForeachActiveBlip(F f) { ForeachActiveEntity(Core::Get().GetBlips(), std::forward< F >(f)); }
|
||||||
|
template < class F > inline void ForeachActiveCheckpoint(F f) { ForeachActiveEntity(Core::Get().GetCheckpoints(), std::forward< F >(f)); }
|
||||||
|
template < class F > inline void ForeachActiveObject(F f) { ForeachActiveEntity(Core::Get().GetObjs(), std::forward< F >(f)); }
|
||||||
|
template < class F > inline void ForeachActivePickup(F f) { ForeachActiveEntity(Core::Get().GetPickups(), std::forward< F >(f)); }
|
||||||
|
template < class F > inline void ForeachActivePlayer(F f) { ForeachActiveEntity(Core::Get().GetPlayers(), std::forward< F >(f)); }
|
||||||
|
template < class F > inline void ForeachActiveVehicle(F f) { ForeachActiveEntity(Core::Get().GetVehicles(), std::forward< F >(f)); }
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------------------------------------------
|
||||||
|
* Process the identifier of each connected player.
|
||||||
|
*/
|
||||||
|
template < class F > inline void ForeachConnectedPlayer(F f) {
|
||||||
|
for (int32_t i = 0, n = _Func->GetMaxPlayers(); i < n; ++i) f(i);
|
||||||
|
}
|
||||||
|
/* ------------------------------------------------------------------------------------------------
|
||||||
|
* Process the identifier of each connected player and count processed players.
|
||||||
|
*/
|
||||||
|
template < class F > SQMOD_NODISCARD inline int32_t ForeachConnectedPlayerCount(F f) {
|
||||||
|
int32_t c = 0;
|
||||||
|
for (int32_t i = 0, n = _Func->GetMaxPlayers(); i < n; ++i)
|
||||||
|
if (f(i)) ++c;
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
/* ------------------------------------------------------------------------------------------------
|
||||||
|
* Process the identifier of each connected player until a certain criteria is met.
|
||||||
|
*/
|
||||||
|
template < class F > SQMOD_NODISCARD inline int32_t ForeachConnectedPlayerUntil(F f) {
|
||||||
|
for (int32_t i = 0, n = _Func->GetMaxPlayers(); i < n; ++i)
|
||||||
|
if (f(i)) return i;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
} // Namespace:: SqMod
|
} // Namespace:: SqMod
|
||||||
|
@ -70,10 +70,10 @@ void Core::EmitCheckpointCreated(int32_t checkpoint, int32_t header, LightObj &
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
void Core::EmitKeyBindCreated(int32_t keybind, int32_t header, LightObj & payload)
|
void Core::EmitKeyBindCreated(int32_t key_bind, int32_t header, LightObj & payload)
|
||||||
{
|
{
|
||||||
SQMOD_CO_EV_TRACEBACK("[TRACE<] Core::KeyBindCreated(%d, %d, %s)", keybind, header, NULL_SQOBJ_(payload))
|
SQMOD_CO_EV_TRACEBACK("[TRACE<] Core::KeyBindCreated(%d, %d, %s)", keybind, header, NULL_SQOBJ_(payload))
|
||||||
(*mOnKeyBindCreated.first)(m_KeyBinds.at(static_cast< size_t >(keybind)).mObj, header, payload);
|
(*mOnKeyBindCreated.first)(m_KeyBinds.at(static_cast< size_t >(key_bind)).mObj, header, payload);
|
||||||
SQMOD_CO_EV_TRACEBACK("[TRACE>] Core::KeyBindCreated")
|
SQMOD_CO_EV_TRACEBACK("[TRACE>] Core::KeyBindCreated")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -223,7 +223,7 @@ static LightObj & Blip_CreateEx1a(int32_t world, float x, float y, float z, int3
|
|||||||
uint8_t r, uint8_t g, uint8_t b, uint8_t a, int32_t spr_id)
|
uint8_t r, uint8_t g, uint8_t b, uint8_t a, int32_t spr_id)
|
||||||
{
|
{
|
||||||
return Core::Get().NewBlip(-1, world, x, y, z, scale, SQMOD_PACK_RGBA(r, g, b, a), spr_id, // NOLINT(hicpp-signed-bitwise)
|
return Core::Get().NewBlip(-1, world, x, y, z, scale, SQMOD_PACK_RGBA(r, g, b, a), spr_id, // NOLINT(hicpp-signed-bitwise)
|
||||||
SQMOD_CREATE_DEFAULT, NullLightObj());
|
SQMOD_CREATE_DEFAULT, NullLightObj()).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LightObj & Blip_CreateEx1b(int32_t world, float x, float y, float z, int32_t scale,
|
static LightObj & Blip_CreateEx1b(int32_t world, float x, float y, float z, int32_t scale,
|
||||||
@ -231,7 +231,7 @@ static LightObj & Blip_CreateEx1b(int32_t world, float x, float y, float z, int3
|
|||||||
int32_t header, LightObj & payload)
|
int32_t header, LightObj & payload)
|
||||||
{
|
{
|
||||||
return Core::Get().NewBlip(-1, world, x, y, z, scale, SQMOD_PACK_RGBA(r, g, b, a), spr_id, // NOLINT(hicpp-signed-bitwise)
|
return Core::Get().NewBlip(-1, world, x, y, z, scale, SQMOD_PACK_RGBA(r, g, b, a), spr_id, // NOLINT(hicpp-signed-bitwise)
|
||||||
header, payload);
|
header, payload).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
@ -239,7 +239,7 @@ static LightObj & Blip_CreateEx2a(int32_t index, int32_t world, float x, float y
|
|||||||
int32_t scale, uint8_t r, uint8_t g, uint8_t b, uint8_t a, int32_t spr_id)
|
int32_t scale, uint8_t r, uint8_t g, uint8_t b, uint8_t a, int32_t spr_id)
|
||||||
{
|
{
|
||||||
return Core::Get().NewBlip(index, world, x, y, z, scale, SQMOD_PACK_RGBA(r, g, b, a), spr_id, // NOLINT(hicpp-signed-bitwise)
|
return Core::Get().NewBlip(index, world, x, y, z, scale, SQMOD_PACK_RGBA(r, g, b, a), spr_id, // NOLINT(hicpp-signed-bitwise)
|
||||||
SQMOD_CREATE_DEFAULT, NullLightObj());
|
SQMOD_CREATE_DEFAULT, NullLightObj()).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LightObj & Blip_CreateEx2b(int32_t index, int32_t world, float x, float y, float z, int32_t scale,
|
static LightObj & Blip_CreateEx2b(int32_t index, int32_t world, float x, float y, float z, int32_t scale,
|
||||||
@ -247,7 +247,7 @@ static LightObj & Blip_CreateEx2b(int32_t index, int32_t world, float x, float y
|
|||||||
int32_t header, LightObj & payload)
|
int32_t header, LightObj & payload)
|
||||||
{
|
{
|
||||||
return Core::Get().NewBlip(index, world, x, y, z, scale, SQMOD_PACK_RGBA(r, g, b, a), spr_id, // NOLINT(hicpp-signed-bitwise)
|
return Core::Get().NewBlip(index, world, x, y, z, scale, SQMOD_PACK_RGBA(r, g, b, a), spr_id, // NOLINT(hicpp-signed-bitwise)
|
||||||
header, payload);
|
header, payload).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
@ -255,14 +255,14 @@ static LightObj & Blip_Create1a(int32_t world, const Vector3 & pos, int32_t scal
|
|||||||
int32_t spr_id)
|
int32_t spr_id)
|
||||||
{
|
{
|
||||||
return Core::Get().NewBlip(-1, world, pos.x, pos.y, pos.z, scale, color.GetRGBA(), spr_id,
|
return Core::Get().NewBlip(-1, world, pos.x, pos.y, pos.z, scale, color.GetRGBA(), spr_id,
|
||||||
SQMOD_CREATE_DEFAULT, NullLightObj());
|
SQMOD_CREATE_DEFAULT, NullLightObj()).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LightObj & Blip_Create1b(int32_t world, const Vector3 & pos, int32_t scale, const Color4 & color,
|
static LightObj & Blip_Create1b(int32_t world, const Vector3 & pos, int32_t scale, const Color4 & color,
|
||||||
int32_t spr_id, int32_t header, LightObj & payload)
|
int32_t spr_id, int32_t header, LightObj & payload)
|
||||||
{
|
{
|
||||||
return Core::Get().NewBlip(-1, world, pos.x, pos.y, pos.z, scale, color.GetRGBA(), spr_id,
|
return Core::Get().NewBlip(-1, world, pos.x, pos.y, pos.z, scale, color.GetRGBA(), spr_id,
|
||||||
header, payload);
|
header, payload).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
@ -270,14 +270,14 @@ static LightObj & Blip_Create2a(int32_t index, int32_t world, const Vector3 & po
|
|||||||
const Color4 & color, int32_t spr_id)
|
const Color4 & color, int32_t spr_id)
|
||||||
{
|
{
|
||||||
return Core::Get().NewBlip(index, world, pos.x, pos.y, pos.z, scale, color.GetRGBA(), spr_id,
|
return Core::Get().NewBlip(index, world, pos.x, pos.y, pos.z, scale, color.GetRGBA(), spr_id,
|
||||||
SQMOD_CREATE_DEFAULT, NullLightObj());
|
SQMOD_CREATE_DEFAULT, NullLightObj()).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LightObj & Blip_Create2b(int32_t index, int32_t world, const Vector3 & pos, int32_t scale,
|
static LightObj & Blip_Create2b(int32_t index, int32_t world, const Vector3 & pos, int32_t scale,
|
||||||
const Color4 & color, int32_t spr_id, int32_t header, LightObj & payload)
|
const Color4 & color, int32_t spr_id, int32_t header, LightObj & payload)
|
||||||
{
|
{
|
||||||
return Core::Get().NewBlip(index, world, pos.x, pos.y, pos.z, scale, color.GetRGBA(), spr_id,
|
return Core::Get().NewBlip(index, world, pos.x, pos.y, pos.z, scale, color.GetRGBA(), spr_id,
|
||||||
header, payload);
|
header, payload).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ================================================================================================
|
// ================================================================================================
|
||||||
|
@ -474,7 +474,7 @@ static LightObj & Checkpoint_CreateEx1a(int32_t world, bool sphere, float x, flo
|
|||||||
uint8_t r, uint8_t g, uint8_t b, uint8_t a, float radius)
|
uint8_t r, uint8_t g, uint8_t b, uint8_t a, float radius)
|
||||||
{
|
{
|
||||||
return Core::Get().NewCheckpoint(-1, world, sphere, x, y, z, r, g, b, a, radius,
|
return Core::Get().NewCheckpoint(-1, world, sphere, x, y, z, r, g, b, a, radius,
|
||||||
SQMOD_CREATE_DEFAULT, NullLightObj());
|
SQMOD_CREATE_DEFAULT, NullLightObj()).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LightObj & Checkpoint_CreateEx1b(int32_t world, bool sphere, float x, float y, float z,
|
static LightObj & Checkpoint_CreateEx1b(int32_t world, bool sphere, float x, float y, float z,
|
||||||
@ -482,7 +482,7 @@ static LightObj & Checkpoint_CreateEx1b(int32_t world, bool sphere, float x, flo
|
|||||||
int32_t header, LightObj & payload)
|
int32_t header, LightObj & payload)
|
||||||
{
|
{
|
||||||
return Core::Get().NewCheckpoint(-1, world, sphere, x, y, z, r, g, b, a,
|
return Core::Get().NewCheckpoint(-1, world, sphere, x, y, z, r, g, b, a,
|
||||||
radius, header, payload);
|
radius, header, payload).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
@ -491,14 +491,14 @@ static LightObj & Checkpoint_Create1a(int32_t world, bool sphere, const Vector3
|
|||||||
{
|
{
|
||||||
return Core::Get().NewCheckpoint(-1, world, sphere, pos.x, pos.y, pos.z,
|
return Core::Get().NewCheckpoint(-1, world, sphere, pos.x, pos.y, pos.z,
|
||||||
color.r, color.g, color.b, color.a, radius,
|
color.r, color.g, color.b, color.a, radius,
|
||||||
SQMOD_CREATE_DEFAULT, NullLightObj());
|
SQMOD_CREATE_DEFAULT, NullLightObj()).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LightObj & Checkpoint_Create1b(int32_t world, bool sphere, const Vector3 & pos,
|
static LightObj & Checkpoint_Create1b(int32_t world, bool sphere, const Vector3 & pos,
|
||||||
const Color4 & color, float radius, int32_t header, LightObj & payload)
|
const Color4 & color, float radius, int32_t header, LightObj & payload)
|
||||||
{
|
{
|
||||||
return Core::Get().NewCheckpoint(-1, world, sphere, pos.x, pos.y, pos.z,
|
return Core::Get().NewCheckpoint(-1, world, sphere, pos.x, pos.y, pos.z,
|
||||||
color.r, color.g, color.b, color.a, radius, header, payload);
|
color.r, color.g, color.b, color.a, radius, header, payload).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ================================================================================================
|
// ================================================================================================
|
||||||
|
@ -151,26 +151,26 @@ static LightObj & KeyBind_CreateEx1a(int32_t slot, bool release, int32_t primary
|
|||||||
int32_t alternative)
|
int32_t alternative)
|
||||||
{
|
{
|
||||||
return Core::Get().NewKeyBind(slot, release, primary, secondary, alternative,
|
return Core::Get().NewKeyBind(slot, release, primary, secondary, alternative,
|
||||||
SQMOD_CREATE_DEFAULT, NullLightObj());
|
SQMOD_CREATE_DEFAULT, NullLightObj()).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LightObj & KeyBind_CreateEx1b(int32_t slot, bool release, int32_t primary, int32_t secondary,
|
static LightObj & KeyBind_CreateEx1b(int32_t slot, bool release, int32_t primary, int32_t secondary,
|
||||||
int32_t alternative, int32_t header, LightObj & payload)
|
int32_t alternative, int32_t header, LightObj & payload)
|
||||||
{
|
{
|
||||||
return Core::Get().NewKeyBind(slot, release, primary, secondary, alternative, header, payload);
|
return Core::Get().NewKeyBind(slot, release, primary, secondary, alternative, header, payload).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
static LightObj & KeyBind_Create1a(bool release, int32_t primary, int32_t secondary, int32_t alternative)
|
static LightObj & KeyBind_Create1a(bool release, int32_t primary, int32_t secondary, int32_t alternative)
|
||||||
{
|
{
|
||||||
return Core::Get().NewKeyBind(-1, release, primary, secondary, alternative,
|
return Core::Get().NewKeyBind(-1, release, primary, secondary, alternative,
|
||||||
SQMOD_CREATE_DEFAULT, NullLightObj());
|
SQMOD_CREATE_DEFAULT, NullLightObj()).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LightObj & KeyBind_Create1b(bool release, int32_t primary, int32_t secondary, int32_t alternative,
|
static LightObj & KeyBind_Create1b(bool release, int32_t primary, int32_t secondary, int32_t alternative,
|
||||||
int32_t header, LightObj & payload)
|
int32_t header, LightObj & payload)
|
||||||
{
|
{
|
||||||
return Core::Get().NewKeyBind(-1, release, primary, secondary, alternative, header, payload);
|
return Core::Get().NewKeyBind(-1, release, primary, secondary, alternative, header, payload).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
@ -838,26 +838,26 @@ void CObject::RotateByEulerZ(float z) const
|
|||||||
static LightObj & Object_CreateEx1a(int32_t model, int32_t world, float x, float y, float z,
|
static LightObj & Object_CreateEx1a(int32_t model, int32_t world, float x, float y, float z,
|
||||||
int32_t alpha)
|
int32_t alpha)
|
||||||
{
|
{
|
||||||
return Core::Get().NewObject(model, world, x, y, z, alpha, SQMOD_CREATE_DEFAULT, NullLightObj());
|
return Core::Get().NewObject(model, world, x, y, z, alpha, SQMOD_CREATE_DEFAULT, NullLightObj()).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LightObj & Object_CreateEx1b(int32_t model, int32_t world, float x, float y, float z,
|
static LightObj & Object_CreateEx1b(int32_t model, int32_t world, float x, float y, float z,
|
||||||
int32_t alpha, int32_t header, LightObj & payload)
|
int32_t alpha, int32_t header, LightObj & payload)
|
||||||
{
|
{
|
||||||
return Core::Get().NewObject(model, world, x, y, z, alpha, header, payload);
|
return Core::Get().NewObject(model, world, x, y, z, alpha, header, payload).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
static LightObj & Object_Create1a(int32_t model, int32_t world, const Vector3 & pos, int32_t alpha)
|
static LightObj & Object_Create1a(int32_t model, int32_t world, const Vector3 & pos, int32_t alpha)
|
||||||
{
|
{
|
||||||
return Core::Get().NewObject(model, world, pos.x, pos.y, pos.z, alpha,
|
return Core::Get().NewObject(model, world, pos.x, pos.y, pos.z, alpha,
|
||||||
SQMOD_CREATE_DEFAULT, NullLightObj());
|
SQMOD_CREATE_DEFAULT, NullLightObj()).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LightObj & Object_Create1b(int32_t model, int32_t world, const Vector3 & pos, int32_t alpha,
|
static LightObj & Object_Create1b(int32_t model, int32_t world, const Vector3 & pos, int32_t alpha,
|
||||||
int32_t header, LightObj & payload)
|
int32_t header, LightObj & payload)
|
||||||
{
|
{
|
||||||
return Core::Get().NewObject(model, world, pos.x, pos.y, pos.z, alpha, header, payload);
|
return Core::Get().NewObject(model, world, pos.x, pos.y, pos.z, alpha, header, payload).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ================================================================================================
|
// ================================================================================================
|
||||||
|
@ -453,14 +453,14 @@ static LightObj & Pickup_CreateEx1a(int32_t model, int32_t world, int32_t quanti
|
|||||||
float x, float y, float z, int32_t alpha, bool automatic)
|
float x, float y, float z, int32_t alpha, bool automatic)
|
||||||
{
|
{
|
||||||
return Core::Get().NewPickup(model, world, quantity, x, y, z, alpha, automatic,
|
return Core::Get().NewPickup(model, world, quantity, x, y, z, alpha, automatic,
|
||||||
SQMOD_CREATE_DEFAULT, NullLightObj());
|
SQMOD_CREATE_DEFAULT, NullLightObj()).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LightObj & Pickup_CreateEx1b(int32_t model, int32_t world, int32_t quantity,
|
static LightObj & Pickup_CreateEx1b(int32_t model, int32_t world, int32_t quantity,
|
||||||
float x, float y, float z, int32_t alpha, bool automatic,
|
float x, float y, float z, int32_t alpha, bool automatic,
|
||||||
int32_t header, LightObj & payload)
|
int32_t header, LightObj & payload)
|
||||||
{
|
{
|
||||||
return Core::Get().NewPickup(model, world, quantity, x, y, z, alpha, automatic, header, payload);
|
return Core::Get().NewPickup(model, world, quantity, x, y, z, alpha, automatic, header, payload).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
@ -468,14 +468,14 @@ static LightObj & Pickup_Create1a(int32_t model, int32_t world, int32_t quantity
|
|||||||
int32_t alpha, bool automatic)
|
int32_t alpha, bool automatic)
|
||||||
{
|
{
|
||||||
return Core::Get().NewPickup(model, world, quantity, pos.x, pos.y, pos.z, alpha, automatic,
|
return Core::Get().NewPickup(model, world, quantity, pos.x, pos.y, pos.z, alpha, automatic,
|
||||||
SQMOD_CREATE_DEFAULT, NullLightObj());
|
SQMOD_CREATE_DEFAULT, NullLightObj()).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LightObj & Pickup_Create1b(int32_t model, int32_t world, int32_t quantity, const Vector3 & pos,
|
static LightObj & Pickup_Create1b(int32_t model, int32_t world, int32_t quantity, const Vector3 & pos,
|
||||||
int32_t alpha, bool automatic, int32_t header, LightObj & payload)
|
int32_t alpha, bool automatic, int32_t header, LightObj & payload)
|
||||||
{
|
{
|
||||||
return Core::Get().NewPickup(model, world, quantity, pos.x, pos.y, pos.z, alpha, automatic,
|
return Core::Get().NewPickup(model, world, quantity, pos.x, pos.y, pos.z, alpha, automatic,
|
||||||
header, payload);
|
header, payload).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ================================================================================================
|
// ================================================================================================
|
||||||
|
@ -1527,7 +1527,7 @@ LightObj & CPlayer::CreateCheckpointEx1a(int32_t world, bool sphere, float x, fl
|
|||||||
Validate();
|
Validate();
|
||||||
// Perform the requested operation
|
// Perform the requested operation
|
||||||
return Core::Get().NewCheckpoint(m_ID, world, sphere, x, y, z, r, g, b, a, radius,
|
return Core::Get().NewCheckpoint(m_ID, world, sphere, x, y, z, r, g, b, a, radius,
|
||||||
SQMOD_CREATE_DEFAULT, NullLightObj());
|
SQMOD_CREATE_DEFAULT, NullLightObj()).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
@ -1539,7 +1539,7 @@ LightObj & CPlayer::CreateCheckpointEx1b(int32_t world, bool sphere, float x, fl
|
|||||||
Validate();
|
Validate();
|
||||||
// Perform the requested operation
|
// Perform the requested operation
|
||||||
return Core::Get().NewCheckpoint(m_ID, world, sphere, x, y, z, r, g, b, a,
|
return Core::Get().NewCheckpoint(m_ID, world, sphere, x, y, z, r, g, b, a,
|
||||||
radius, header, payload);
|
radius, header, payload).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
@ -1551,7 +1551,7 @@ LightObj & CPlayer::CreateCheckpoint1a(int32_t world, bool sphere, const Vector3
|
|||||||
// Perform the requested operation
|
// Perform the requested operation
|
||||||
return Core::Get().NewCheckpoint(m_ID, world, sphere, pos.x, pos.y, pos.z,
|
return Core::Get().NewCheckpoint(m_ID, world, sphere, pos.x, pos.y, pos.z,
|
||||||
color.r, color.g, color.b, color.a, radius,
|
color.r, color.g, color.b, color.a, radius,
|
||||||
SQMOD_CREATE_DEFAULT, NullLightObj());
|
SQMOD_CREATE_DEFAULT, NullLightObj()).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
@ -1562,7 +1562,7 @@ LightObj & CPlayer::CreateCheckpoint1b(int32_t world, bool sphere, const Vector3
|
|||||||
Validate();
|
Validate();
|
||||||
// Perform the requested operation
|
// Perform the requested operation
|
||||||
return Core::Get().NewCheckpoint(m_ID, world, sphere, pos.x, pos.y, pos.z,
|
return Core::Get().NewCheckpoint(m_ID, world, sphere, pos.x, pos.y, pos.z,
|
||||||
color.r, color.g, color.b, color.a, radius, header, payload);
|
color.r, color.g, color.b, color.a, radius, header, payload).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
@ -1993,14 +1993,14 @@ static LightObj & Vehicle_CreateEx1a(int32_t model, int32_t world, float x, floa
|
|||||||
int32_t primary, int32_t secondary)
|
int32_t primary, int32_t secondary)
|
||||||
{
|
{
|
||||||
return Core::Get().NewVehicle(model, world, x, y, z, angle, primary, secondary,
|
return Core::Get().NewVehicle(model, world, x, y, z, angle, primary, secondary,
|
||||||
SQMOD_CREATE_DEFAULT, NullLightObj());
|
SQMOD_CREATE_DEFAULT, NullLightObj()).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LightObj & Vehicle_CreateEx1b(int32_t model, int32_t world, float x, float y, float z, float angle,
|
static LightObj & Vehicle_CreateEx1b(int32_t model, int32_t world, float x, float y, float z, float angle,
|
||||||
int32_t primary, int32_t secondary, int32_t header, LightObj & payload)
|
int32_t primary, int32_t secondary, int32_t header, LightObj & payload)
|
||||||
{
|
{
|
||||||
return Core::Get().NewVehicle(model, world, x, y, z, angle, primary, secondary,
|
return Core::Get().NewVehicle(model, world, x, y, z, angle, primary, secondary,
|
||||||
header, payload);
|
header, payload).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
@ -2008,14 +2008,14 @@ static LightObj & Vehicle_Create1a(int32_t model, int32_t world, const Vector3 &
|
|||||||
int32_t primary, int32_t secondary)
|
int32_t primary, int32_t secondary)
|
||||||
{
|
{
|
||||||
return Core::Get().NewVehicle(model, world, pos.x, pos.y, pos.z, angle, primary, secondary,
|
return Core::Get().NewVehicle(model, world, pos.x, pos.y, pos.z, angle, primary, secondary,
|
||||||
SQMOD_CREATE_DEFAULT, NullLightObj());
|
SQMOD_CREATE_DEFAULT, NullLightObj()).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LightObj & Vehicle_Create1b(int32_t model, int32_t world, const Vector3 & pos, float angle,
|
static LightObj & Vehicle_Create1b(int32_t model, int32_t world, const Vector3 & pos, float angle,
|
||||||
int32_t primary, int32_t secondary, int32_t header, LightObj & payload)
|
int32_t primary, int32_t secondary, int32_t header, LightObj & payload)
|
||||||
{
|
{
|
||||||
return Core::Get().NewVehicle(model, world, pos.x, pos.y, pos.z, angle, primary, secondary,
|
return Core::Get().NewVehicle(model, world, pos.x, pos.y, pos.z, angle, primary, secondary,
|
||||||
header, payload);
|
header, payload).mObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ================================================================================================
|
// ================================================================================================
|
||||||
|
Loading…
Reference in New Issue
Block a user