mirror of
https://github.com/Mauler125/r5sdk.git
synced 2025-02-09 19:15:03 +01:00
Revert "LiveAPI: make code compatible with coroutines"
This reverts commit 9b2034d897e68e2c8677df739e14c77a59901652. Squirrel coroutines cannot stop during native code execution, it can only happen after a native call has been completed which means that commit 9b2034d897e68e2c8677df739e14c77a59901652 is unnecessary. Revert back to using static objects as this is a lot more performant than allocating/freeing the message each time an event occurs.
This commit is contained in:
parent
8339c44c25
commit
24bce8ee73
@ -26,6 +26,75 @@
|
|||||||
#define LIVEAPI_SHA512_HASH_SIZE 64
|
#define LIVEAPI_SHA512_HASH_SIZE 64
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
███████╗██╗ ██╗███████╗███╗ ██╗████████╗ ███╗ ███╗███████╗███████╗███████╗ █████╗ ██████╗ ███████╗███████╗
|
||||||
|
██╔════╝██║ ██║██╔════╝████╗ ██║╚══██╔══╝ ████╗ ████║██╔════╝██╔════╝██╔════╝██╔══██╗██╔════╝ ██╔════╝██╔════╝
|
||||||
|
█████╗ ██║ ██║█████╗ ██╔██╗ ██║ ██║ ██╔████╔██║█████╗ ███████╗███████╗███████║██║ ███╗█████╗ ███████╗
|
||||||
|
██╔══╝ ╚██╗ ██╔╝██╔══╝ ██║╚██╗██║ ██║ ██║╚██╔╝██║██╔══╝ ╚════██║╚════██║██╔══██║██║ ██║██╔══╝ ╚════██║
|
||||||
|
███████╗ ╚████╔╝ ███████╗██║ ╚████║ ██║ ██║ ╚═╝ ██║███████╗███████║███████║██║ ██║╚██████╔╝███████╗███████║
|
||||||
|
╚══════╝ ╚═══╝ ╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚══════╝
|
||||||
|
NOTE: messages are statically allocated to save on runtime overhead, each message is cleared after usage.
|
||||||
|
*/
|
||||||
|
|
||||||
|
static rtech::liveapi::AmmoUsed s_ammoUsed;
|
||||||
|
static rtech::liveapi::ArenasItemDeselected s_arenasItemDeselected;
|
||||||
|
static rtech::liveapi::ArenasItemSelected s_arenasItemSelected;
|
||||||
|
static rtech::liveapi::BannerCollected s_bannerCollected;
|
||||||
|
static rtech::liveapi::BlackMarketAction s_blackMarketAction;
|
||||||
|
//static rtech::liveapi::ChangeCamera s_changeCamera;
|
||||||
|
static rtech::liveapi::CharacterSelected s_characterSelected;
|
||||||
|
//static rtech::liveapi::CustomMatch_CreateLobby s_customMatch_CreateLobby;
|
||||||
|
//static rtech::liveapi::CustomMatch_GetLobbyPlayers s_customMatch_GetLobbyPlayers;
|
||||||
|
//static rtech::liveapi::CustomMatch_GetSettings s_customMatch_GetSettings;
|
||||||
|
//static rtech::liveapi::CustomMatch_JoinLobby s_customMatch_JoinLobby;
|
||||||
|
//static rtech::liveapi::CustomMatch_KickPlayer s_customMatch_KickPlayer;
|
||||||
|
//static rtech::liveapi::CustomMatch_LeaveLobby s_customMatch_LeaveLobby;
|
||||||
|
//static rtech::liveapi::CustomMatch_LobbyPlayers s_customMatch_LobbyPlayers;
|
||||||
|
//static rtech::liveapi::CustomMatch_SendChat s_customMatch_SendChat;
|
||||||
|
//static rtech::liveapi::CustomMatch_SetMatchmaking s_customMatch_SetMatchmaking;
|
||||||
|
//static rtech::liveapi::CustomMatch_SetReady s_customMatch_SetReady;
|
||||||
|
//static rtech::liveapi::CustomMatch_SetSettings s_customMatch_SetSettings;
|
||||||
|
//static rtech::liveapi::CustomMatch_SetTeam s_customMatch_SetTeam;
|
||||||
|
//static rtech::liveapi::CustomMatch_SetTeamName s_customMatch_SetTeamName;
|
||||||
|
static rtech::liveapi::CustomEvent s_customEvent;
|
||||||
|
static rtech::liveapi::GameStateChanged s_gameStateChanged;
|
||||||
|
static rtech::liveapi::GibraltarShieldAbsorbed s_gibraltarShieldAbsorbed;
|
||||||
|
static rtech::liveapi::GrenadeThrown s_grenadeThrown;
|
||||||
|
static rtech::liveapi::Init s_init;
|
||||||
|
static rtech::liveapi::InventoryDrop s_inventoryDrop;
|
||||||
|
static rtech::liveapi::InventoryPickUp s_inventoryPickUp;
|
||||||
|
static rtech::liveapi::InventoryUse s_inventoryUse;
|
||||||
|
static rtech::liveapi::LegendUpgradeSelected s_legendUpgradeSelected;
|
||||||
|
static rtech::liveapi::LiveAPIEvent s_liveAPIEvent;
|
||||||
|
static rtech::liveapi::MatchSetup s_matchSetup;
|
||||||
|
static rtech::liveapi::MatchStateEnd s_matchStateEnd;
|
||||||
|
static rtech::liveapi::ObserverAnnotation s_observerAnnotation;
|
||||||
|
static rtech::liveapi::ObserverSwitched s_observerSwitched;
|
||||||
|
//static rtech::liveapi::PauseToggle s_pauseToggle;
|
||||||
|
static rtech::liveapi::PlayerAbilityUsed s_playerAbilityUsed;
|
||||||
|
static rtech::liveapi::PlayerAssist s_playerAssist;
|
||||||
|
static rtech::liveapi::PlayerConnected s_playerConnected;
|
||||||
|
static rtech::liveapi::PlayerDamaged s_playerDamaged;
|
||||||
|
static rtech::liveapi::PlayerDisconnected s_playerDisconnected;
|
||||||
|
static rtech::liveapi::PlayerDowned s_playerDowned;
|
||||||
|
static rtech::liveapi::PlayerKilled s_playerKilled;
|
||||||
|
static rtech::liveapi::PlayerRespawnTeam s_playerRespawnTeam;
|
||||||
|
static rtech::liveapi::PlayerRevive s_playerRevive;
|
||||||
|
static rtech::liveapi::PlayerStatChanged s_playerStatChanged;
|
||||||
|
static rtech::liveapi::PlayerUpgradeTierChanged s_playerUpgradeTierChanged;
|
||||||
|
//static rtech::liveapi::Request s_request;
|
||||||
|
//static rtech::liveapi::RequestStatus s_requestStatus;
|
||||||
|
//static rtech::liveapi::Response s_response;
|
||||||
|
static rtech::liveapi::RevenantForgedShadowDamaged s_revenantForgedShadowDamaged;
|
||||||
|
static rtech::liveapi::RingFinishedClosing s_ringFinishedClosing;
|
||||||
|
static rtech::liveapi::RingStartClosing s_ringStartClosing;
|
||||||
|
static rtech::liveapi::SquadEliminated s_squadEliminated;
|
||||||
|
static rtech::liveapi::WarpGateUsed s_warpGateUsed;
|
||||||
|
static rtech::liveapi::WeaponSwitched s_weaponSwitched;
|
||||||
|
static rtech::liveapi::WraithPortal s_wraithPortal;
|
||||||
|
static rtech::liveapi::ZiplineUsed s_ziplineUsed;
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
███████╗███╗ ██╗██╗ ██╗███╗ ███╗███████╗██████╗ █████╗ ████████╗██╗ ██████╗ ███╗ ██╗███████╗
|
███████╗███╗ ██╗██╗ ██╗███╗ ███╗███████╗██████╗ █████╗ ████████╗██╗ ██████╗ ███╗ ██╗███████╗
|
||||||
██╔════╝████╗ ██║██║ ██║████╗ ████║██╔════╝██╔══██╗██╔══██╗╚══██╔══╝██║██╔═══██╗████╗ ██║██╔════╝
|
██╔════╝████╗ ██║██║ ██║████╗ ████║██╔════╝██╔══██╗██╔══██╗╚══██╔══╝██║██╔═══██╗████╗ ██║██╔════╝
|
||||||
@ -1883,110 +1952,16 @@ static bool LiveAPI_HandleCustomEvent(HSQUIRRELVM const v, const SQObject& obj,
|
|||||||
|
|
||||||
static void LiveAPI_SendEvent(const google::protobuf::Message* const msg)
|
static void LiveAPI_SendEvent(const google::protobuf::Message* const msg)
|
||||||
{
|
{
|
||||||
rtech::liveapi::LiveAPIEvent envelope;
|
s_liveAPIEvent.set_event_size(msg->ByteSize());
|
||||||
|
s_liveAPIEvent.mutable_gamemessage()->PackFrom(*msg);
|
||||||
|
|
||||||
envelope.set_event_size(msg->ByteSize());
|
LiveAPISystem()->LogEvent(&s_liveAPIEvent, &s_liveAPIEvent.gamemessage());
|
||||||
envelope.mutable_gamemessage()->PackFrom(*msg);
|
s_liveAPIEvent.Clear();
|
||||||
|
|
||||||
LiveAPISystem()->LogEvent(&envelope, &envelope.gamemessage());
|
|
||||||
}
|
|
||||||
|
|
||||||
static google::protobuf::Message* LiveAPI_AllocMessage(const eLiveAPI_EventTypes eventType)
|
|
||||||
{
|
|
||||||
switch (eventType)
|
|
||||||
{
|
|
||||||
case eLiveAPI_EventTypes::init:
|
|
||||||
return new rtech::liveapi::Init();
|
|
||||||
case eLiveAPI_EventTypes::matchSetup:
|
|
||||||
return new rtech::liveapi::MatchSetup();
|
|
||||||
case eLiveAPI_EventTypes::ammoUsed:
|
|
||||||
return new rtech::liveapi::AmmoUsed();
|
|
||||||
case eLiveAPI_EventTypes::arenasItemDeselected:
|
|
||||||
return new rtech::liveapi::ArenasItemDeselected();
|
|
||||||
case eLiveAPI_EventTypes::arenasItemSelected:
|
|
||||||
return new rtech::liveapi::ArenasItemSelected();
|
|
||||||
case eLiveAPI_EventTypes::bannerCollected:
|
|
||||||
return new rtech::liveapi::BannerCollected();
|
|
||||||
case eLiveAPI_EventTypes::customEvent:
|
|
||||||
return new rtech::liveapi::CustomEvent();
|
|
||||||
case eLiveAPI_EventTypes::inventoryPickUp:
|
|
||||||
return new rtech::liveapi::InventoryPickUp();
|
|
||||||
case eLiveAPI_EventTypes::inventoryDrop:
|
|
||||||
return new rtech::liveapi::InventoryDrop();
|
|
||||||
case eLiveAPI_EventTypes::inventoryUse:
|
|
||||||
return new rtech::liveapi::InventoryUse();
|
|
||||||
case eLiveAPI_EventTypes::gameStateChanged:
|
|
||||||
return new rtech::liveapi::GameStateChanged();
|
|
||||||
case eLiveAPI_EventTypes::matchStateEnd:
|
|
||||||
return new rtech::liveapi::MatchStateEnd();
|
|
||||||
case eLiveAPI_EventTypes::characterSelected:
|
|
||||||
return new rtech::liveapi::CharacterSelected();
|
|
||||||
case eLiveAPI_EventTypes::warpGateUsed:
|
|
||||||
return new rtech::liveapi::WarpGateUsed();
|
|
||||||
case eLiveAPI_EventTypes::wraithPortal:
|
|
||||||
return new rtech::liveapi::WraithPortal();
|
|
||||||
case eLiveAPI_EventTypes::playerConnected:
|
|
||||||
return new rtech::liveapi::PlayerConnected();
|
|
||||||
case eLiveAPI_EventTypes::playerRevive:
|
|
||||||
return new rtech::liveapi::PlayerRevive();
|
|
||||||
case eLiveAPI_EventTypes::playerDisconnected:
|
|
||||||
return new rtech::liveapi::PlayerDisconnected();
|
|
||||||
case eLiveAPI_EventTypes::playerDamaged:
|
|
||||||
return new rtech::liveapi::PlayerDamaged();
|
|
||||||
case eLiveAPI_EventTypes::playerDowned:
|
|
||||||
return new rtech::liveapi::PlayerDowned();
|
|
||||||
case eLiveAPI_EventTypes::playerKilled:
|
|
||||||
return new rtech::liveapi::PlayerKilled();
|
|
||||||
case eLiveAPI_EventTypes::playerAssist:
|
|
||||||
return new rtech::liveapi::PlayerAssist();
|
|
||||||
case eLiveAPI_EventTypes::playerRespawnTeam:
|
|
||||||
return new rtech::liveapi::PlayerRespawnTeam();
|
|
||||||
case eLiveAPI_EventTypes::playerStatChanged:
|
|
||||||
return new rtech::liveapi::PlayerStatChanged();
|
|
||||||
case eLiveAPI_EventTypes::playerUpgradeTierChanged:
|
|
||||||
return new rtech::liveapi::PlayerUpgradeTierChanged();
|
|
||||||
case eLiveAPI_EventTypes::legendUpgradeSelected:
|
|
||||||
return new rtech::liveapi::LegendUpgradeSelected();
|
|
||||||
case eLiveAPI_EventTypes::gibraltarShieldAbsorbed:
|
|
||||||
return new rtech::liveapi::GibraltarShieldAbsorbed();
|
|
||||||
case eLiveAPI_EventTypes::revenantForgedShadowDamaged:
|
|
||||||
return new rtech::liveapi::RevenantForgedShadowDamaged();
|
|
||||||
case eLiveAPI_EventTypes::ringStartClosing:
|
|
||||||
return new rtech::liveapi::RingStartClosing();
|
|
||||||
case eLiveAPI_EventTypes::ringFinishedClosing:
|
|
||||||
return new rtech::liveapi::RingFinishedClosing();
|
|
||||||
case eLiveAPI_EventTypes::squadEliminated:
|
|
||||||
return new rtech::liveapi::SquadEliminated();
|
|
||||||
case eLiveAPI_EventTypes::ziplineUsed:
|
|
||||||
return new rtech::liveapi::ZiplineUsed();
|
|
||||||
case eLiveAPI_EventTypes::grenadeThrown:
|
|
||||||
return new rtech::liveapi::GrenadeThrown();
|
|
||||||
case eLiveAPI_EventTypes::playerAbilityUsed:
|
|
||||||
return new rtech::liveapi::PlayerAbilityUsed();
|
|
||||||
case eLiveAPI_EventTypes::weaponSwitched:
|
|
||||||
return new rtech::liveapi::WeaponSwitched();
|
|
||||||
case eLiveAPI_EventTypes::blackMarketAction:
|
|
||||||
return new rtech::liveapi::BlackMarketAction();
|
|
||||||
case eLiveAPI_EventTypes::observerSwitched:
|
|
||||||
return new rtech::liveapi::ObserverSwitched();
|
|
||||||
case eLiveAPI_EventTypes::observerAnnotation:
|
|
||||||
return new rtech::liveapi::ObserverAnnotation();
|
|
||||||
default:
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool LiveAPI_HandleEventByCategory(HSQUIRRELVM const v, const SQTable* const table, const eLiveAPI_EventTypes eventType)
|
static bool LiveAPI_HandleEventByCategory(HSQUIRRELVM const v, const SQTable* const table, const eLiveAPI_EventTypes eventType)
|
||||||
{
|
{
|
||||||
google::protobuf::Message* const msg = LiveAPI_AllocMessage(eventType);
|
google::protobuf::Message* msg = nullptr;
|
||||||
|
|
||||||
if (!msg)
|
|
||||||
{
|
|
||||||
v_SQVM_RaiseError(v, "Event type \"%d\" not found.", eventType);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ranLoop = false;
|
|
||||||
|
|
||||||
SQ_FOR_EACH_TABLE(table, i)
|
SQ_FOR_EACH_TABLE(table, i)
|
||||||
{
|
{
|
||||||
@ -1995,15 +1970,8 @@ static bool LiveAPI_HandleEventByCategory(HSQUIRRELVM const v, const SQTable* co
|
|||||||
if (sq_isnull(node.key))
|
if (sq_isnull(node.key))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
ranLoop = true;
|
|
||||||
|
|
||||||
if (!LiveAPI_CheckSwitchType(v, node.key))
|
if (!LiveAPI_CheckSwitchType(v, node.key))
|
||||||
{
|
|
||||||
Assert(msg);
|
|
||||||
delete msg;
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
const SQInteger fieldNum = _integer(node.key);
|
const SQInteger fieldNum = _integer(node.key);
|
||||||
const SQObjectPtr& obj = node.val;
|
const SQObjectPtr& obj = node.val;
|
||||||
@ -2013,146 +1981,179 @@ static bool LiveAPI_HandleEventByCategory(HSQUIRRELVM const v, const SQTable* co
|
|||||||
switch (eventType)
|
switch (eventType)
|
||||||
{
|
{
|
||||||
case eLiveAPI_EventTypes::init:
|
case eLiveAPI_EventTypes::init:
|
||||||
ret = LiveAPI_HandleInitEvent(reinterpret_cast<rtech::liveapi::Init*>(msg), eventType);
|
msg = &s_init;
|
||||||
|
ret = LiveAPI_HandleInitEvent(&s_init, eventType);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::matchSetup:
|
case eLiveAPI_EventTypes::matchSetup:
|
||||||
ret = LiveAPI_HandleMatchSetup(v, obj, reinterpret_cast<rtech::liveapi::MatchSetup*>(msg), eventType, fieldNum);
|
msg = &s_matchSetup;
|
||||||
|
ret = LiveAPI_HandleMatchSetup(v, obj, &s_matchSetup, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::ammoUsed:
|
case eLiveAPI_EventTypes::ammoUsed:
|
||||||
ret = LiveAPI_HandleAmmoUsed(v, obj, reinterpret_cast<rtech::liveapi::AmmoUsed*>(msg), eventType, fieldNum);
|
msg = &s_ammoUsed;
|
||||||
|
ret = LiveAPI_HandleAmmoUsed(v, obj, &s_ammoUsed, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::arenasItemDeselected:
|
case eLiveAPI_EventTypes::arenasItemDeselected:
|
||||||
ret = LiveAPI_HandleInventoryChange(v, obj, reinterpret_cast<rtech::liveapi::ArenasItemDeselected*>(msg), eventType, fieldNum);
|
msg = &s_arenasItemDeselected;
|
||||||
|
ret = LiveAPI_HandleInventoryChange(v, obj, &s_arenasItemDeselected, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::arenasItemSelected:
|
case eLiveAPI_EventTypes::arenasItemSelected:
|
||||||
ret = LiveAPI_HandleInventoryChange(v, obj, reinterpret_cast<rtech::liveapi::ArenasItemSelected*>(msg), eventType, fieldNum);
|
msg = &s_arenasItemSelected;
|
||||||
|
ret = LiveAPI_HandleInventoryChange(v, obj, &s_arenasItemSelected, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::bannerCollected:
|
case eLiveAPI_EventTypes::bannerCollected:
|
||||||
ret = LiveAPI_HandleBannerCollected(v, obj, reinterpret_cast<rtech::liveapi::BannerCollected*>(msg), eventType, fieldNum);
|
msg = &s_bannerCollected;
|
||||||
|
ret = LiveAPI_HandleBannerCollected(v, obj, &s_bannerCollected, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::customEvent:
|
case eLiveAPI_EventTypes::customEvent:
|
||||||
ret = LiveAPI_HandleCustomEvent(v, obj, reinterpret_cast<rtech::liveapi::CustomEvent*>(msg), eventType, fieldNum);
|
msg = &s_customEvent;
|
||||||
|
ret = LiveAPI_HandleCustomEvent(v, obj, &s_customEvent, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::inventoryPickUp:
|
case eLiveAPI_EventTypes::inventoryPickUp:
|
||||||
ret = LiveAPI_HandleInventoryChange(v, obj, reinterpret_cast<rtech::liveapi::InventoryPickUp*>(msg), eventType, fieldNum);
|
msg = &s_inventoryPickUp;
|
||||||
|
ret = LiveAPI_HandleInventoryChange(v, obj, &s_inventoryPickUp, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::inventoryDrop:
|
case eLiveAPI_EventTypes::inventoryDrop:
|
||||||
ret = LiveAPI_HandleInventoryDrop(v, obj, reinterpret_cast<rtech::liveapi::InventoryDrop*>(msg), eventType, fieldNum);
|
msg = &s_inventoryDrop;
|
||||||
|
ret = LiveAPI_HandleInventoryDrop(v, obj, &s_inventoryDrop, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::inventoryUse:
|
case eLiveAPI_EventTypes::inventoryUse:
|
||||||
ret = LiveAPI_HandleInventoryChange(v, obj, reinterpret_cast<rtech::liveapi::InventoryUse*>(msg), eventType, fieldNum);
|
msg = &s_inventoryUse;
|
||||||
|
ret = LiveAPI_HandleInventoryChange(v, obj, &s_inventoryUse, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::gameStateChanged:
|
case eLiveAPI_EventTypes::gameStateChanged:
|
||||||
ret = LiveAPI_HandleGameStateChanged(v, obj, reinterpret_cast<rtech::liveapi::GameStateChanged*>(msg), eventType, fieldNum);
|
msg = &s_gameStateChanged;
|
||||||
|
ret = LiveAPI_HandleGameStateChanged(v, obj, &s_gameStateChanged, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::matchStateEnd:
|
case eLiveAPI_EventTypes::matchStateEnd:
|
||||||
ret = LiveAPI_HandleMatchStateEnd(v, obj, reinterpret_cast<rtech::liveapi::MatchStateEnd*>(msg), eventType, fieldNum);
|
msg = &s_matchStateEnd;
|
||||||
|
ret = LiveAPI_HandleMatchStateEnd(v, obj, &s_matchStateEnd, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::characterSelected:
|
case eLiveAPI_EventTypes::characterSelected:
|
||||||
ret = LiveAPI_HandleSimplePlayerMessage(v, obj, reinterpret_cast<rtech::liveapi::CharacterSelected*>(msg), eventType, fieldNum);
|
msg = &s_characterSelected;
|
||||||
|
ret = LiveAPI_HandleSimplePlayerMessage(v, obj, &s_characterSelected, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::warpGateUsed:
|
case eLiveAPI_EventTypes::warpGateUsed:
|
||||||
ret = LiveAPI_HandleSimplePlayerMessage(v, obj, reinterpret_cast<rtech::liveapi::WarpGateUsed*>(msg), eventType, fieldNum);
|
msg = &s_warpGateUsed;
|
||||||
|
ret = LiveAPI_HandleSimplePlayerMessage(v, obj, &s_warpGateUsed, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::wraithPortal:
|
case eLiveAPI_EventTypes::wraithPortal:
|
||||||
ret = LiveAPI_HandleSimplePlayerMessage(v, obj, reinterpret_cast<rtech::liveapi::WraithPortal*>(msg), eventType, fieldNum);
|
msg = &s_wraithPortal;
|
||||||
|
ret = LiveAPI_HandleSimplePlayerMessage(v, obj, &s_wraithPortal, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::playerConnected:
|
case eLiveAPI_EventTypes::playerConnected:
|
||||||
ret = LiveAPI_HandleSimplePlayerMessage(v, obj, reinterpret_cast<rtech::liveapi::PlayerConnected*>(msg), eventType, fieldNum);
|
msg = &s_playerConnected;
|
||||||
|
ret = LiveAPI_HandleSimplePlayerMessage(v, obj, &s_playerConnected, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::playerRevive:
|
case eLiveAPI_EventTypes::playerRevive:
|
||||||
ret = LiveAPI_HandlePlayerRevive(v, obj, reinterpret_cast<rtech::liveapi::PlayerRevive*>(msg), eventType, fieldNum);
|
msg = &s_playerRevive;
|
||||||
|
ret = LiveAPI_HandlePlayerRevive(v, obj, &s_playerRevive, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::playerDisconnected:
|
case eLiveAPI_EventTypes::playerDisconnected:
|
||||||
ret = LiveAPI_HandlePlayerDisconnected(v, obj, reinterpret_cast<rtech::liveapi::PlayerDisconnected*>(msg), eventType, fieldNum);
|
msg = &s_playerDisconnected;
|
||||||
|
ret = LiveAPI_HandlePlayerDisconnected(v, obj, &s_playerDisconnected, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::playerDamaged:
|
case eLiveAPI_EventTypes::playerDamaged:
|
||||||
ret = LiveAPI_HandlePlayerDamaged(v, obj, reinterpret_cast<rtech::liveapi::PlayerDamaged*>(msg), eventType, fieldNum);
|
msg = &s_playerDamaged;
|
||||||
|
ret = LiveAPI_HandlePlayerDamaged(v, obj, &s_playerDamaged, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::playerDowned:
|
case eLiveAPI_EventTypes::playerDowned:
|
||||||
ret = LiveAPI_HandlePlayerDowned(v, obj, reinterpret_cast<rtech::liveapi::PlayerDowned*>(msg), eventType, fieldNum);
|
msg = &s_playerDowned;
|
||||||
|
ret = LiveAPI_HandlePlayerDowned(v, obj, &s_playerDowned, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::playerKilled:
|
case eLiveAPI_EventTypes::playerKilled:
|
||||||
ret = LiveAPI_HandlePlayerKilled(v, obj, reinterpret_cast<rtech::liveapi::PlayerKilled*>(msg), eventType, fieldNum);
|
msg = &s_playerKilled;
|
||||||
|
ret = LiveAPI_HandlePlayerKilled(v, obj, &s_playerKilled, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::playerAssist:
|
case eLiveAPI_EventTypes::playerAssist:
|
||||||
ret = LiveAPI_HandlePlayerAssist(v, obj, reinterpret_cast<rtech::liveapi::PlayerAssist*>(msg), eventType, fieldNum);
|
msg = &s_playerAssist;
|
||||||
|
ret = LiveAPI_HandlePlayerAssist(v, obj, &s_playerAssist, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::playerRespawnTeam:
|
case eLiveAPI_EventTypes::playerRespawnTeam:
|
||||||
ret = LiveAPI_HandlePlayerRespawnTeam(v, obj, reinterpret_cast<rtech::liveapi::PlayerRespawnTeam*>(msg), eventType, fieldNum);
|
msg = &s_playerRespawnTeam;
|
||||||
|
ret = LiveAPI_HandlePlayerRespawnTeam(v, obj, &s_playerRespawnTeam, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::playerStatChanged:
|
case eLiveAPI_EventTypes::playerStatChanged:
|
||||||
ret = LiveAPI_HandlePlayerStatChanged(v, obj, reinterpret_cast<rtech::liveapi::PlayerStatChanged*>(msg), eventType, fieldNum);
|
msg = &s_playerStatChanged;
|
||||||
|
ret = LiveAPI_HandlePlayerStatChanged(v, obj, &s_playerStatChanged, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::playerUpgradeTierChanged:
|
case eLiveAPI_EventTypes::playerUpgradeTierChanged:
|
||||||
ret = LiveAPI_HandlePlayerUpgradeTierChanged(v, obj, reinterpret_cast<rtech::liveapi::PlayerUpgradeTierChanged*>(msg), eventType, fieldNum);
|
msg = &s_playerUpgradeTierChanged;
|
||||||
|
ret = LiveAPI_HandlePlayerUpgradeTierChanged(v, obj, &s_playerUpgradeTierChanged, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::legendUpgradeSelected:
|
case eLiveAPI_EventTypes::legendUpgradeSelected:
|
||||||
ret = LiveAPI_HandleLegendUpgradeSelected(v, obj, reinterpret_cast<rtech::liveapi::LegendUpgradeSelected*>(msg), eventType, fieldNum);
|
msg = &s_legendUpgradeSelected;
|
||||||
|
ret = LiveAPI_HandleLegendUpgradeSelected(v, obj, &s_legendUpgradeSelected, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::gibraltarShieldAbsorbed:
|
case eLiveAPI_EventTypes::gibraltarShieldAbsorbed:
|
||||||
ret = LiveAPI_HandleAbilityDamaged(v, obj, reinterpret_cast<rtech::liveapi::GibraltarShieldAbsorbed*>(msg), eventType, fieldNum);
|
msg = &s_gibraltarShieldAbsorbed;
|
||||||
|
ret = LiveAPI_HandleAbilityDamaged(v, obj, &s_gibraltarShieldAbsorbed, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::revenantForgedShadowDamaged:
|
case eLiveAPI_EventTypes::revenantForgedShadowDamaged:
|
||||||
ret = LiveAPI_HandleAbilityDamaged(v, obj, reinterpret_cast<rtech::liveapi::RevenantForgedShadowDamaged*>(msg), eventType, fieldNum);
|
msg = &s_revenantForgedShadowDamaged;
|
||||||
|
ret = LiveAPI_HandleAbilityDamaged(v, obj, &s_revenantForgedShadowDamaged, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::ringStartClosing:
|
case eLiveAPI_EventTypes::ringStartClosing:
|
||||||
ret = LiveAPI_HandleDeathFieldStartClosing(v, obj, reinterpret_cast<rtech::liveapi::RingStartClosing*>(msg), eventType, fieldNum);
|
msg = &s_ringStartClosing;
|
||||||
|
ret = LiveAPI_HandleDeathFieldStartClosing(v, obj, &s_ringStartClosing, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::ringFinishedClosing:
|
case eLiveAPI_EventTypes::ringFinishedClosing:
|
||||||
ret = LiveAPI_HandleRingFinishedClosing(v, obj, reinterpret_cast<rtech::liveapi::RingFinishedClosing*>(msg), eventType, fieldNum);
|
msg = &s_ringFinishedClosing;
|
||||||
|
ret = LiveAPI_HandleRingFinishedClosing(v, obj, &s_ringFinishedClosing, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::squadEliminated:
|
case eLiveAPI_EventTypes::squadEliminated:
|
||||||
ret = LiveAPI_HandleSquadEliminated(v, obj, reinterpret_cast<rtech::liveapi::SquadEliminated*>(msg), eventType, fieldNum);
|
msg = &s_squadEliminated;
|
||||||
|
ret = LiveAPI_HandleSquadEliminated(v, obj, &s_squadEliminated, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::ziplineUsed:
|
case eLiveAPI_EventTypes::ziplineUsed:
|
||||||
ret = LiveAPI_HandleLinkedEntityEvent(v, obj, reinterpret_cast<rtech::liveapi::ZiplineUsed*>(msg), eventType, fieldNum);
|
msg = &s_ziplineUsed;
|
||||||
|
ret = LiveAPI_HandleLinkedEntityEvent(v, obj, &s_ziplineUsed, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::grenadeThrown:
|
case eLiveAPI_EventTypes::grenadeThrown:
|
||||||
ret = LiveAPI_HandleLinkedEntityEvent(v, obj, reinterpret_cast<rtech::liveapi::GrenadeThrown*>(msg), eventType, fieldNum);
|
msg = &s_grenadeThrown;
|
||||||
|
ret = LiveAPI_HandleLinkedEntityEvent(v, obj, &s_grenadeThrown, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::playerAbilityUsed:
|
case eLiveAPI_EventTypes::playerAbilityUsed:
|
||||||
ret = LiveAPI_HandleLinkedEntityEvent(v, obj, reinterpret_cast<rtech::liveapi::PlayerAbilityUsed*>(msg), eventType, fieldNum);
|
msg = &s_playerAbilityUsed;
|
||||||
|
ret = LiveAPI_HandleLinkedEntityEvent(v, obj, &s_playerAbilityUsed, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::weaponSwitched:
|
case eLiveAPI_EventTypes::weaponSwitched:
|
||||||
ret = LiveAPI_HandleWeaponSwitchedEvent(v, obj, reinterpret_cast<rtech::liveapi::WeaponSwitched*>(msg), eventType, fieldNum);
|
msg = &s_weaponSwitched;
|
||||||
|
ret = LiveAPI_HandleWeaponSwitchedEvent(v, obj, &s_weaponSwitched, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::blackMarketAction:
|
case eLiveAPI_EventTypes::blackMarketAction:
|
||||||
ret = LiveAPI_HandleBlackMarketActionEvent(v, obj, reinterpret_cast<rtech::liveapi::BlackMarketAction*>(msg), eventType, fieldNum);
|
msg = &s_blackMarketAction;
|
||||||
|
ret = LiveAPI_HandleBlackMarketActionEvent(v, obj, &s_blackMarketAction, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::observerSwitched:
|
case eLiveAPI_EventTypes::observerSwitched:
|
||||||
ret = LiveAPI_HandleObserverSwitched(v, obj, reinterpret_cast<rtech::liveapi::ObserverSwitched*>(msg), eventType, fieldNum);
|
msg = &s_observerSwitched;
|
||||||
|
ret = LiveAPI_HandleObserverSwitched(v, obj, &s_observerSwitched, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
case eLiveAPI_EventTypes::observerAnnotation:
|
case eLiveAPI_EventTypes::observerAnnotation:
|
||||||
ret = LiveAPI_HandleObserverAnnotation(v, obj, reinterpret_cast<rtech::liveapi::ObserverAnnotation*>(msg), eventType, fieldNum);
|
msg = &s_observerAnnotation;
|
||||||
|
ret = LiveAPI_HandleObserverAnnotation(v, obj, &s_observerAnnotation, eventType, fieldNum);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
// LiveAPI_AllocMessage() will fail if the user provided an invalid
|
v_SQVM_RaiseError(v, "Event type \"%d\" not found.", eventType);
|
||||||
// event type, if you reached this there is a code bug somewhere.
|
return false;
|
||||||
UNREACHABLE();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ret)
|
if (!ret)
|
||||||
{
|
{
|
||||||
Assert(msg);
|
Assert(msg);
|
||||||
delete msg;
|
|
||||||
|
|
||||||
|
msg->Clear();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ranLoop) // Script bug, e.g. giving an empty table (either completely empty or filled with null)
|
if (!msg) // Script bug, e.g. giving an empty table (either completely empty or filled with null)
|
||||||
{
|
{
|
||||||
v_SQVM_RaiseError(v, "Empty table on event type \"%d\".", eventType);
|
v_SQVM_RaiseError(v, "Empty table on event type \"%d\".", eventType);
|
||||||
|
|
||||||
Assert(msg);
|
|
||||||
delete msg;
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
LiveAPI_SendEvent(msg);
|
LiveAPI_SendEvent(msg);
|
||||||
delete msg;
|
msg->Clear();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user