mirror of
https://github.com/VCMP-SqMod/SqMod.git
synced 2025-02-07 21:37:14 +01:00
Implement pickup option change event and expose the functions to use it.
Fix bitflags declaration for circular locks (huge mistake here).
This commit is contained in:
parent
1e24f55e94
commit
877e1a38cc
@ -160,6 +160,7 @@ static const EnumElement g_EventEnum[] = {
|
|||||||
{_SC("PickupAlpha"), EVT_PICKUPALPHA},
|
{_SC("PickupAlpha"), EVT_PICKUPALPHA},
|
||||||
{_SC("PickupAutomatic"), EVT_PICKUPAUTOMATIC},
|
{_SC("PickupAutomatic"), EVT_PICKUPAUTOMATIC},
|
||||||
{_SC("PickupAutoTimer"), EVT_PICKUPAUTOTIMER},
|
{_SC("PickupAutoTimer"), EVT_PICKUPAUTOTIMER},
|
||||||
|
{_SC("PickupOption"), EVT_PICKUPOPTION},
|
||||||
{_SC("CheckpointEntered"), EVT_CHECKPOINTENTERED},
|
{_SC("CheckpointEntered"), EVT_CHECKPOINTENTERED},
|
||||||
{_SC("CheckpointExited"), EVT_CHECKPOINTEXITED},
|
{_SC("CheckpointExited"), EVT_CHECKPOINTEXITED},
|
||||||
{_SC("CheckpointWorld"), EVT_CHECKPOINTWORLD},
|
{_SC("CheckpointWorld"), EVT_CHECKPOINTWORLD},
|
||||||
@ -360,6 +361,13 @@ static const EnumElement g_VehicleOptionEnum[] = {
|
|||||||
{_SC("Max"), vcmpVehicleOptionSiren}
|
{_SC("Max"), vcmpVehicleOptionSiren}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
static const EnumElement g_PickupOptionEnum[] = {
|
||||||
|
{_SC("Unknown"), SQMOD_UNKNOWN},
|
||||||
|
{_SC("SingleUse "), vcmpPickupOptionSingleUse},
|
||||||
|
{_SC("Max"), vcmpPickupOptionSingleUse}
|
||||||
|
};
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
static const EnumElement g_BodyPartEnum[] = {
|
static const EnumElement g_BodyPartEnum[] = {
|
||||||
{_SC("Unknown"), SQMOD_UNKNOWN},
|
{_SC("Unknown"), SQMOD_UNKNOWN},
|
||||||
@ -1134,6 +1142,7 @@ static const EnumElements g_EnumList[] = {
|
|||||||
{_SC("SqServerOption"), g_ServerOptionEnum},
|
{_SC("SqServerOption"), g_ServerOptionEnum},
|
||||||
{_SC("SqPlayerOption"), g_PlayerOptionEnum},
|
{_SC("SqPlayerOption"), g_PlayerOptionEnum},
|
||||||
{_SC("SqVehicleOption"), g_VehicleOptionEnum},
|
{_SC("SqVehicleOption"), g_VehicleOptionEnum},
|
||||||
|
{_SC("SqPickupOption"), g_PickupOptionEnum},
|
||||||
{_SC("SqBodyPart"), g_BodyPartEnum},
|
{_SC("SqBodyPart"), g_BodyPartEnum},
|
||||||
{_SC("SqPlayerState"), g_PlayerStateEnum},
|
{_SC("SqPlayerState"), g_PlayerStateEnum},
|
||||||
{_SC("SqPlayerAction"), g_PlayerActionEnum},
|
{_SC("SqPlayerAction"), g_PlayerActionEnum},
|
||||||
|
@ -21,7 +21,7 @@ namespace SqMod {
|
|||||||
enum CoreCircularLocks
|
enum CoreCircularLocks
|
||||||
{
|
{
|
||||||
CCL_RELOAD_SCRIPTS = (1 << 0),
|
CCL_RELOAD_SCRIPTS = (1 << 0),
|
||||||
CCL_EMIT_SERVER_OPTION = (2 << 0)
|
CCL_EMIT_SERVER_OPTION = (1 << 1)
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------------------------------
|
/* ------------------------------------------------------------------------------------------------
|
||||||
@ -400,6 +400,7 @@ protected:
|
|||||||
SignalPair mOnAlpha;
|
SignalPair mOnAlpha;
|
||||||
SignalPair mOnAutomatic;
|
SignalPair mOnAutomatic;
|
||||||
SignalPair mOnAutoTimer;
|
SignalPair mOnAutoTimer;
|
||||||
|
SignalPair mOnOption;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
/* --------------------------------------------------------------------------------------------
|
||||||
@ -1185,6 +1186,7 @@ public:
|
|||||||
void EmitPickupAlpha(Int32 pickup_id, Int32 old_alpha, Int32 new_alpha);
|
void EmitPickupAlpha(Int32 pickup_id, Int32 old_alpha, Int32 new_alpha);
|
||||||
void EmitPickupAutomatic(Int32 pickup_id, bool old_status, bool new_status);
|
void EmitPickupAutomatic(Int32 pickup_id, bool old_status, bool new_status);
|
||||||
void EmitPickupAutoTimer(Int32 pickup_id, Int32 old_timer, Int32 new_timer);
|
void EmitPickupAutoTimer(Int32 pickup_id, Int32 old_timer, Int32 new_timer);
|
||||||
|
void EmitPickupOption(Int32 pickup_id, Int32 option_id, bool value, Int32 header, LightObj & payload);
|
||||||
void EmitObjectReport(Int32 object_id, bool old_status, bool new_status, bool touched);
|
void EmitObjectReport(Int32 object_id, bool old_status, bool new_status, bool touched);
|
||||||
void EmitPlayerHealth(Int32 player_id, Float32 old_health, Float32 new_health);
|
void EmitPlayerHealth(Int32 player_id, Float32 old_health, Float32 new_health);
|
||||||
void EmitPlayerArmour(Int32 player_id, Float32 old_armour, Float32 new_armour);
|
void EmitPlayerArmour(Int32 player_id, Float32 old_armour, Float32 new_armour);
|
||||||
@ -1337,6 +1339,7 @@ public:
|
|||||||
SignalPair mOnPickupAlpha;
|
SignalPair mOnPickupAlpha;
|
||||||
SignalPair mOnPickupAutomatic;
|
SignalPair mOnPickupAutomatic;
|
||||||
SignalPair mOnPickupAutoTimer;
|
SignalPair mOnPickupAutoTimer;
|
||||||
|
SignalPair mOnPickupOption;
|
||||||
SignalPair mOnCheckpointEntered;
|
SignalPair mOnCheckpointEntered;
|
||||||
SignalPair mOnCheckpointExited;
|
SignalPair mOnCheckpointExited;
|
||||||
SignalPair mOnCheckpointWorld;
|
SignalPair mOnCheckpointWorld;
|
||||||
|
@ -768,6 +768,15 @@ void Core::EmitPickupAutoTimer(Int32 pickup_id, Int32 old_timer, Int32 new_timer
|
|||||||
(*mOnPickupAutoTimer.first)(_pickup.mObj, old_timer, new_timer);
|
(*mOnPickupAutoTimer.first)(_pickup.mObj, old_timer, new_timer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
void Core::EmitPickupOption(Int32 pickup_id, Int32 option_id, bool value,
|
||||||
|
Int32 header, LightObj & payload)
|
||||||
|
{
|
||||||
|
PickupInst & _pickup = m_Pickups.at(pickup_id);
|
||||||
|
(*_pickup.mOnOption.first)(option_id, value, header, payload);
|
||||||
|
(*mOnPickupOption.first)(_pickup.mObj, option_id, value, header, payload);
|
||||||
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
void Core::EmitObjectReport(Int32 object_id, bool old_status, bool new_status, bool touched)
|
void Core::EmitObjectReport(Int32 object_id, bool old_status, bool new_status, bool touched)
|
||||||
{
|
{
|
||||||
|
@ -541,6 +541,7 @@ void Core::PickupInst::InitEvents()
|
|||||||
InitSignalPair(mOnAlpha, mEvents, "Alpha");
|
InitSignalPair(mOnAlpha, mEvents, "Alpha");
|
||||||
InitSignalPair(mOnAutomatic, mEvents, "Automatic");
|
InitSignalPair(mOnAutomatic, mEvents, "Automatic");
|
||||||
InitSignalPair(mOnAutoTimer, mEvents, "AutoTimer");
|
InitSignalPair(mOnAutoTimer, mEvents, "AutoTimer");
|
||||||
|
InitSignalPair(mOnOption, mEvents, "Option");
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
@ -555,6 +556,7 @@ void Core::PickupInst::DropEvents()
|
|||||||
ResetSignalPair(mOnAlpha);
|
ResetSignalPair(mOnAlpha);
|
||||||
ResetSignalPair(mOnAutomatic);
|
ResetSignalPair(mOnAutomatic);
|
||||||
ResetSignalPair(mOnAutoTimer);
|
ResetSignalPair(mOnAutoTimer);
|
||||||
|
ResetSignalPair(mOnOption);
|
||||||
mEvents.Release();
|
mEvents.Release();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -144,6 +144,7 @@ void Core::InitEvents()
|
|||||||
InitSignalPair(mOnPickupAlpha, m_Events, "PickupAlpha");
|
InitSignalPair(mOnPickupAlpha, m_Events, "PickupAlpha");
|
||||||
InitSignalPair(mOnPickupAutomatic, m_Events, "PickupAutomatic");
|
InitSignalPair(mOnPickupAutomatic, m_Events, "PickupAutomatic");
|
||||||
InitSignalPair(mOnPickupAutoTimer, m_Events, "PickupAutoTimer");
|
InitSignalPair(mOnPickupAutoTimer, m_Events, "PickupAutoTimer");
|
||||||
|
InitSignalPair(mOnPickupOption, m_Events, "PickupOption");
|
||||||
InitSignalPair(mOnCheckpointEntered, m_Events, "CheckpointEntered");
|
InitSignalPair(mOnCheckpointEntered, m_Events, "CheckpointEntered");
|
||||||
InitSignalPair(mOnCheckpointExited, m_Events, "CheckpointExited");
|
InitSignalPair(mOnCheckpointExited, m_Events, "CheckpointExited");
|
||||||
InitSignalPair(mOnCheckpointWorld, m_Events, "CheckpointWorld");
|
InitSignalPair(mOnCheckpointWorld, m_Events, "CheckpointWorld");
|
||||||
@ -278,6 +279,7 @@ void Core::DropEvents()
|
|||||||
ResetSignalPair(mOnPickupAlpha);
|
ResetSignalPair(mOnPickupAlpha);
|
||||||
ResetSignalPair(mOnPickupAutomatic);
|
ResetSignalPair(mOnPickupAutomatic);
|
||||||
ResetSignalPair(mOnPickupAutoTimer);
|
ResetSignalPair(mOnPickupAutoTimer);
|
||||||
|
ResetSignalPair(mOnPickupOption);
|
||||||
ResetSignalPair(mOnCheckpointEntered);
|
ResetSignalPair(mOnCheckpointEntered);
|
||||||
ResetSignalPair(mOnCheckpointExited);
|
ResetSignalPair(mOnCheckpointExited);
|
||||||
ResetSignalPair(mOnCheckpointWorld);
|
ResetSignalPair(mOnCheckpointWorld);
|
||||||
|
@ -13,7 +13,7 @@ namespace SqMod {
|
|||||||
enum CheckpointCircularLocks
|
enum CheckpointCircularLocks
|
||||||
{
|
{
|
||||||
CHECKPOINTCL_EMIT_CHECKPOINT_WORLD = (1 << 0),
|
CHECKPOINTCL_EMIT_CHECKPOINT_WORLD = (1 << 0),
|
||||||
CHECKPOINTCL_EMIT_CHECKPOINT_RADIUS = (2 << 0)
|
CHECKPOINTCL_EMIT_CHECKPOINT_RADIUS = (1 << 1)
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------------------------------
|
/* ------------------------------------------------------------------------------------------------
|
||||||
|
@ -132,6 +132,60 @@ bool CPickup::IsStreamedFor(CPlayer & player) const
|
|||||||
return _Func->IsPickupStreamedForPlayer(m_ID, player.GetID());
|
return _Func->IsPickupStreamedForPlayer(m_ID, player.GetID());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
bool CPickup::GetOption(Int32 option_id) const
|
||||||
|
{
|
||||||
|
// Attempt to obtain the current value of the specified option
|
||||||
|
const bool value = _Func->GetPickupOption(m_ID, static_cast< vcmpPickupOption >(option_id));
|
||||||
|
// Check for errors
|
||||||
|
if (_Func->GetLastError() == vcmpErrorArgumentOutOfBounds)
|
||||||
|
{
|
||||||
|
STHROWF("Invalid option identifier: %d", option_id);
|
||||||
|
}
|
||||||
|
// Return the requested value
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
void CPickup::SetOption(Int32 option_id, bool toggle)
|
||||||
|
{
|
||||||
|
// Attempt to obtain the current value of the specified option
|
||||||
|
const bool value = _Func->GetPickupOption(m_ID, static_cast< vcmpPickupOption >(option_id));
|
||||||
|
// Attempt to modify the current value of the specified option
|
||||||
|
if (_Func->SetPickupOption(m_ID, static_cast< vcmpPickupOption >(option_id),
|
||||||
|
toggle) == vcmpErrorArgumentOutOfBounds)
|
||||||
|
{
|
||||||
|
STHROWF("Invalid option identifier: %d", option_id);
|
||||||
|
}
|
||||||
|
else if (!(m_CircularLocks & PICKUPCL_EMIT_PICKUP_OPTION))
|
||||||
|
{
|
||||||
|
// Prevent this event from triggering while executed
|
||||||
|
BitGuardU32 bg(m_CircularLocks, PICKUPCL_EMIT_PICKUP_OPTION);
|
||||||
|
// Now forward the event call
|
||||||
|
Core::Get().EmitPickupOption(m_ID, option_id, value, 0, NullLightObj());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
void CPickup::SetOptionEx(Int32 option_id, bool toggle, Int32 header, LightObj & payload)
|
||||||
|
{
|
||||||
|
// Attempt to obtain the current value of the specified option
|
||||||
|
const bool value = _Func->GetPickupOption(m_ID, static_cast< vcmpPickupOption >(option_id));
|
||||||
|
// Attempt to modify the current value of the specified option
|
||||||
|
if (_Func->SetPickupOption(m_ID, static_cast< vcmpPickupOption >(option_id),
|
||||||
|
toggle) == vcmpErrorArgumentOutOfBounds)
|
||||||
|
{
|
||||||
|
STHROWF("Invalid option identifier: %d", option_id);
|
||||||
|
}
|
||||||
|
else if (!(m_CircularLocks & PICKUPCL_EMIT_PICKUP_OPTION))
|
||||||
|
{
|
||||||
|
// Prevent this event from triggering while executed
|
||||||
|
BitGuardU32 bg(m_CircularLocks, PICKUPCL_EMIT_PICKUP_OPTION);
|
||||||
|
// Now forward the event call
|
||||||
|
Core::Get().EmitPickupOption(m_ID, option_id, value, header, payload);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
Int32 CPickup::GetWorld() const
|
Int32 CPickup::GetWorld() const
|
||||||
{
|
{
|
||||||
@ -469,6 +523,9 @@ void Register_CPickup(HSQUIRRELVM vm)
|
|||||||
.Prop(_SC("PosZ"), &CPickup::GetPositionZ, &CPickup::SetPositionZ)
|
.Prop(_SC("PosZ"), &CPickup::GetPositionZ, &CPickup::SetPositionZ)
|
||||||
// Member Methods
|
// Member Methods
|
||||||
.Func(_SC("StreamedFor"), &CPickup::IsStreamedFor)
|
.Func(_SC("StreamedFor"), &CPickup::IsStreamedFor)
|
||||||
|
.Func(_SC("GetOption"), &CPickup::GetOption)
|
||||||
|
.Func(_SC("SetOption"), &CPickup::SetOption)
|
||||||
|
.Func(_SC("SetOptionEx"), &CPickup::SetOptionEx)
|
||||||
.Func(_SC("Refresh"), &CPickup::Refresh)
|
.Func(_SC("Refresh"), &CPickup::Refresh)
|
||||||
.Func(_SC("SetPos"), &CPickup::SetPositionEx)
|
.Func(_SC("SetPos"), &CPickup::SetPositionEx)
|
||||||
.Func(_SC("SetPosition"), &CPickup::SetPositionEx)
|
.Func(_SC("SetPosition"), &CPickup::SetPositionEx)
|
||||||
|
@ -12,10 +12,11 @@ namespace SqMod {
|
|||||||
*/
|
*/
|
||||||
enum PickupCircularLocks
|
enum PickupCircularLocks
|
||||||
{
|
{
|
||||||
PICKUPCL_EMIT_PICKUP_WORLD = (1 << 0),
|
PICKUPCL_EMIT_PICKUP_OPTION = (1 << 0),
|
||||||
PICKUPCL_EMIT_PICKUP_ALPHA = (2 << 0),
|
PICKUPCL_EMIT_PICKUP_WORLD = (1 << 1),
|
||||||
PICKUPCL_EMIT_PICKUP_AUTOMATIC = (3 << 0),
|
PICKUPCL_EMIT_PICKUP_ALPHA = (1 << 2),
|
||||||
PICKUPCL_EMIT_PICKUP_AUTOTIMER = (4 << 0)
|
PICKUPCL_EMIT_PICKUP_AUTOMATIC = (1 << 3),
|
||||||
|
PICKUPCL_EMIT_PICKUP_AUTOTIMER = (1 << 4)
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------------------------------
|
/* ------------------------------------------------------------------------------------------------
|
||||||
@ -188,6 +189,21 @@ public:
|
|||||||
*/
|
*/
|
||||||
bool IsStreamedFor(CPlayer & player) const;
|
bool IsStreamedFor(CPlayer & player) const;
|
||||||
|
|
||||||
|
/* --------------------------------------------------------------------------------------------
|
||||||
|
* Retrieve the current option value of the managed pickup entity.
|
||||||
|
*/
|
||||||
|
bool GetOption(Int32 option_id) const;
|
||||||
|
|
||||||
|
/* --------------------------------------------------------------------------------------------
|
||||||
|
* Modify the current option value of the managed pickup entity.
|
||||||
|
*/
|
||||||
|
void SetOption(Int32 option_id, bool toggle);
|
||||||
|
|
||||||
|
/* --------------------------------------------------------------------------------------------
|
||||||
|
* Modify the current option value of the managed pickup entity.
|
||||||
|
*/
|
||||||
|
void SetOptionEx(Int32 option_id, bool toggle, Int32 header, LightObj & payload);
|
||||||
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
/* --------------------------------------------------------------------------------------------
|
||||||
* Retrieve the world in which the managed pickup entity exists.
|
* Retrieve the world in which the managed pickup entity exists.
|
||||||
*/
|
*/
|
||||||
|
@ -14,15 +14,15 @@ namespace SqMod {
|
|||||||
enum PlayerCircularLocks
|
enum PlayerCircularLocks
|
||||||
{
|
{
|
||||||
PLAYERCL_EMIT_PLAYER_OPTION = (1 << 0),
|
PLAYERCL_EMIT_PLAYER_OPTION = (1 << 0),
|
||||||
PLAYERCL_EMIT_PLAYER_ADMIN = (2 << 0),
|
PLAYERCL_EMIT_PLAYER_ADMIN = (1 << 1),
|
||||||
PLAYERCL_EMIT_PLAYER_WORLD = (3 << 0),
|
PLAYERCL_EMIT_PLAYER_WORLD = (1 << 2),
|
||||||
PLAYERCL_EMIT_PLAYER_TEAM = (4 << 0),
|
PLAYERCL_EMIT_PLAYER_TEAM = (1 << 3),
|
||||||
PLAYERCL_EMIT_PLAYER_SKIN = (5 << 0),
|
PLAYERCL_EMIT_PLAYER_SKIN = (1 << 4),
|
||||||
PLAYERCL_EMIT_PLAYER_MONEY = (6 << 0),
|
PLAYERCL_EMIT_PLAYER_MONEY = (1 << 5),
|
||||||
PLAYERCL_EMIT_PLAYER_SCORE = (7 << 0),
|
PLAYERCL_EMIT_PLAYER_SCORE = (1 << 6),
|
||||||
PLAYERCL_EMIT_PLAYER_WANTED_LEVEL = (8 << 0),
|
PLAYERCL_EMIT_PLAYER_WANTED_LEVEL = (1 << 7),
|
||||||
PLAYERCL_EMIT_PLAYER_IMMUNITY = (9 << 0),
|
PLAYERCL_EMIT_PLAYER_IMMUNITY = (1 << 8),
|
||||||
PLAYERCL_EMIT_PLAYER_ALPHA = (10 << 0)
|
PLAYERCL_EMIT_PLAYER_ALPHA = (1 << 9)
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------------------------------
|
/* ------------------------------------------------------------------------------------------------
|
||||||
|
@ -13,13 +13,13 @@ namespace SqMod {
|
|||||||
enum VehicleCircularLocks
|
enum VehicleCircularLocks
|
||||||
{
|
{
|
||||||
VEHICLECL_EMIT_VEHICLE_OPTION = (1 << 0),
|
VEHICLECL_EMIT_VEHICLE_OPTION = (1 << 0),
|
||||||
VEHICLECL_EMIT_VEHICLE_WORLD = (2 << 0),
|
VEHICLECL_EMIT_VEHICLE_WORLD = (1 << 1),
|
||||||
VEHICLECL_EMIT_VEHICLE_IMMUNITY = (3 << 0),
|
VEHICLECL_EMIT_VEHICLE_IMMUNITY = (1 << 2),
|
||||||
VEHICLECL_EMIT_VEHICLE_PARTSTATUS = (4 << 0),
|
VEHICLECL_EMIT_VEHICLE_PARTSTATUS = (1 << 3),
|
||||||
VEHICLECL_EMIT_VEHICLE_TYRESTATUS = (5 << 0),
|
VEHICLECL_EMIT_VEHICLE_TYRESTATUS = (1 << 4),
|
||||||
VEHICLECL_EMIT_VEHICLE_DAMAGEDATA = (6 << 0),
|
VEHICLECL_EMIT_VEHICLE_DAMAGEDATA = (1 << 5),
|
||||||
VEHICLECL_EMIT_VEHICLE_RADIO = (7 << 0),
|
VEHICLECL_EMIT_VEHICLE_RADIO = (1 << 6),
|
||||||
VEHICLECL_EMIT_VEHICLE_HANDLINGRULE = (8 << 0)
|
VEHICLECL_EMIT_VEHICLE_HANDLINGRULE = (1 << 7)
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------------------------------
|
/* ------------------------------------------------------------------------------------------------
|
||||||
|
@ -381,6 +381,7 @@ enum EventType
|
|||||||
EVT_PICKUPALPHA,
|
EVT_PICKUPALPHA,
|
||||||
EVT_PICKUPAUTOMATIC,
|
EVT_PICKUPAUTOMATIC,
|
||||||
EVT_PICKUPAUTOTIMER,
|
EVT_PICKUPAUTOTIMER,
|
||||||
|
EVT_PICKUPOPTION,
|
||||||
EVT_CHECKPOINTENTERED,
|
EVT_CHECKPOINTENTERED,
|
||||||
EVT_CHECKPOINTEXITED,
|
EVT_CHECKPOINTEXITED,
|
||||||
EVT_CHECKPOINTWORLD,
|
EVT_CHECKPOINTWORLD,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user